From 900ce0fddef8387872223eaf175d9656983f6cb0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Nov 2026 02:35:39 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=B6=20Sync=202026-11-13=2002:35:39?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clashoo/Makefile | 10 +- cloudflared-next/Makefile | 4 +- crypto-hw-eip93-mt7621/Makefile | 4 +- gately/Makefile | 13 +- gately/files/gately.config | 7 - gately/files/gately.init | 99 --- luci-app-adguardhome/.upstream_meta | 2 +- luci-app-adguardhome/po/fr/adguardhome.po | 4 +- luci-app-adguardhome/po/ja/adguardhome.po | 17 +- luci-app-adguardhome/po/lt/adguardhome.po | 8 +- luci-app-adguardhome/po/ta/adguardhome.po | 168 +++++ luci-app-adguardhome/po/vi/adguardhome.po | 168 +++++ .../po/zh_Hans/adguardhome.po | 10 +- .../po/zh_Hant/adguardhome.po | 27 +- luci-app-flowproxy/Makefile | 4 +- .../resources/view/flowproxy/flowproxy.js | 113 ++- luci-app-flowproxy/po/templates/flowproxy.pot | 39 + luci-app-flowproxy/po/zh_Hans/flowproxy.po | 15 + luci-app-flowproxy/root/etc/config/flowproxy | 7 +- luci-app-flowproxy/root/etc/init.d/flowproxy | 174 ++++- .../root/usr/share/flowproxy/common.sh | 407 ++++++++-- .../root/usr/share/flowproxy/generate_nft.sh | 6 +- .../root/usr/share/flowproxy/watchdog.sh | 124 ++-- .../root/usr/share/rpcd/ucode/luci.flowproxy | 75 +- luci-app-footstrap-files/Makefile | 2 +- .../po/zh-cn | 0 .../po/zh_Hans/footstrap-files.po | 409 +++++++++++ luci-app-gately/Makefile | 79 +- .../luci-static/resources/view/gately/log.js | 44 -- .../resources/view/gately/settings.js | 62 -- .../resources/view/gately/status.js | 184 ----- luci-app-gately/po/templates/gately.pot | 122 --- luci-app-gately/po/zh_Hans/gately.po | 122 --- .../root/etc/uci-defaults/66_luci-gately | 17 - .../share/luci/menu.d/luci-app-gately.json | 37 - .../usr/share/rpcd/acl.d/luci-app-gately.json | 23 - .../root/usr/share/rpcd/ucode/luci.gately | 181 ----- luci-app-open-box/Makefile | 4 +- luci-app-passwall/Makefile | 2 +- .../root/usr/share/passwall/test.sh | 2 + luci-app-passwall2/Makefile | 2 +- .../root/usr/share/passwall2/test.sh | 2 + luci-app-quickstart/Makefile | 3 +- .../quickstart/FastnetInstallDialog.js | 1 + .../htdocs/luci-static/quickstart/app.js | 7 + .../luci-static/quickstart/card-runtime-v1.js | 8 + .../quickstart/device-icons/access-point.webp | Bin 0 -> 4230 bytes .../device-icons/air-conditioner.webp | Bin 0 -> 6092 bytes .../quickstart/device-icons/camera.webp | Bin 0 -> 6400 bytes .../quickstart/device-icons/computer.webp | Bin 0 -> 2068 bytes .../quickstart/device-icons/desktop.webp | Bin 0 -> 8140 bytes .../quickstart/device-icons/door-lock.webp | Bin 0 -> 6568 bytes .../quickstart/device-icons/e-reader.webp | Bin 0 -> 7696 bytes .../quickstart/device-icons/game-console.webp | Bin 0 -> 6856 bytes .../quickstart/device-icons/gaming.webp | Bin 0 -> 5996 bytes .../device-icons/handheld-game.webp | Bin 0 -> 6626 bytes .../quickstart/device-icons/home-server.webp | Bin 0 -> 5648 bytes .../quickstart/device-icons/laptop.webp | Bin 0 -> 6140 bytes .../quickstart/device-icons/manifest.json | 37 + .../device-icons/network-bridge.webp | Bin 0 -> 11714 bytes .../device-icons/network-switch.webp | Bin 0 -> 5644 bytes .../quickstart/device-icons/network.webp | Bin 0 -> 3876 bytes .../quickstart/device-icons/phone.webp | Bin 0 -> 3924 bytes .../quickstart/device-icons/printer.webp | Bin 0 -> 3924 bytes .../quickstart/device-icons/projector.webp | Bin 0 -> 5658 bytes .../quickstart/device-icons/robot-vacuum.webp | Bin 0 -> 8206 bytes .../quickstart/device-icons/sensor.webp | Bin 0 -> 6900 bytes .../quickstart/device-icons/set-top-box.webp | Bin 0 -> 4060 bytes .../quickstart/device-icons/smart-bulb.webp | Bin 0 -> 5950 bytes .../quickstart/device-icons/smart-home.webp | Bin 0 -> 3984 bytes .../device-icons/smart-speaker.webp | Bin 0 -> 11188 bytes .../quickstart/device-icons/storage.webp | Bin 0 -> 4990 bytes .../quickstart/device-icons/tablet.webp | Bin 0 -> 1976 bytes .../quickstart/device-icons/thermostat.webp | Bin 0 -> 5730 bytes .../quickstart/device-icons/tv.webp | Bin 0 -> 3020 bytes .../quickstart/device-icons/unknown.webp | Bin 0 -> 5560 bytes .../quickstart/device-icons/wearable.webp | Bin 0 -> 7032 bytes .../luci-static/quickstart/i18n/en.json | 2 +- .../htdocs/luci-static/quickstart/index.js | 4 +- .../luci-static/quickstart/installClient.js | 1 + .../htdocs/luci-static/quickstart/style.css | 2 +- .../htdocs/luci-static/quickstart/vendor.js | 66 +- .../luasrc/view/quickstart/main.htm | 8 +- .../root/usr/share/doc/quickstart/NOTICE | 18 + luci-app-trafficctl/Makefile | 4 +- luci-app-upnp/po/zh_Hans/upnp.po | 692 +++++++++++------- v2raya/Makefile | 2 +- v2raya/files/v2raya.init | 0 88 files changed, 2145 insertions(+), 1509 deletions(-) delete mode 100644 gately/files/gately.config delete mode 100644 gately/files/gately.init create mode 100644 luci-app-adguardhome/po/ta/adguardhome.po create mode 100644 luci-app-adguardhome/po/vi/adguardhome.po rename {luci-app-gately => luci-app-footstrap-files}/po/zh-cn (100%) create mode 100644 luci-app-footstrap-files/po/zh_Hans/footstrap-files.po delete mode 100644 luci-app-gately/htdocs/luci-static/resources/view/gately/log.js delete mode 100644 luci-app-gately/htdocs/luci-static/resources/view/gately/settings.js delete mode 100644 luci-app-gately/htdocs/luci-static/resources/view/gately/status.js delete mode 100644 luci-app-gately/po/templates/gately.pot delete mode 100644 luci-app-gately/po/zh_Hans/gately.po delete mode 100644 luci-app-gately/root/etc/uci-defaults/66_luci-gately delete mode 100644 luci-app-gately/root/usr/share/luci/menu.d/luci-app-gately.json delete mode 100644 luci-app-gately/root/usr/share/rpcd/acl.d/luci-app-gately.json delete mode 100644 luci-app-gately/root/usr/share/rpcd/ucode/luci.gately create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/FastnetInstallDialog.js create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/app.js create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/card-runtime-v1.js create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/access-point.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/air-conditioner.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/camera.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/computer.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/desktop.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/door-lock.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/e-reader.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/game-console.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/gaming.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/handheld-game.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/home-server.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/laptop.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/manifest.json create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/network-bridge.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/network-switch.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/network.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/phone.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/printer.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/projector.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/robot-vacuum.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/sensor.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/set-top-box.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/smart-bulb.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/smart-home.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/smart-speaker.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/storage.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/tablet.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/thermostat.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/tv.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/unknown.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/wearable.webp create mode 100644 luci-app-quickstart/htdocs/luci-static/quickstart/installClient.js create mode 100644 luci-app-quickstart/root/usr/share/doc/quickstart/NOTICE mode change 100644 => 100755 v2raya/files/v2raya.init diff --git a/clashoo/Makefile b/clashoo/Makefile index 3bed61f45..2eb045782 100644 --- a/clashoo/Makefile +++ b/clashoo/Makefile @@ -1,18 +1,18 @@ include $(TOPDIR)/rules.mk PKG_NAME:=clashoo -PKG_UPSTREAM_VERSION:=1.19.33 +PKG_UPSTREAM_VERSION:=1.19.34 PKG_UPSTREAM_TAG:=v$(PKG_UPSTREAM_VERSION) -PKG_SHORT_SHA:=3f27ef3 +PKG_SHORT_SHA:=0455d0d -PKG_VERSION:=2026.11.04.$(PKG_UPSTREAM_VERSION) -PKG_RELEASE:=29 +PKG_VERSION:=2026.11.12.$(PKG_UPSTREAM_VERSION) +PKG_RELEASE:=30 PKG_SOURCE:=$(PKG_NAME)-stable-$(PKG_UPSTREAM_TAG)-$(PKG_SHORT_SHA).tar.gz PKG_SOURCE_SUBDIR:=$(PKG_NAME)-stable-$(PKG_UPSTREAM_TAG)-$(PKG_SHORT_SHA) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR) PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-clashoo/releases/download/mihomo-src -PKG_SOURCE_VERSION:=9c2b2fb5a0056be386050e68dbfa12f99ad81416 +PKG_SOURCE_VERSION:=6fc13a30bff74e8781714defe9aae70ae50574ed PKG_HASH:=skip PKG_BUILD_VERSION:=$(PKG_UPSTREAM_TAG) diff --git a/cloudflared-next/Makefile b/cloudflared-next/Makefile index 08d3315a3..d9c28a29f 100644 --- a/cloudflared-next/Makefile +++ b/cloudflared-next/Makefile @@ -5,8 +5,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=cloudflared-next -PKG_VERSION:=2026.10.7 -PKG_RELEASE:=10 +PKG_VERSION:=2026.11.0 +PKG_RELEASE:=11 # Architecture mapping for pre-built binaries ifeq ($(ARCH),x86_64) diff --git a/crypto-hw-eip93-mt7621/Makefile b/crypto-hw-eip93-mt7621/Makefile index 6b1de78d4..48e91d463 100644 --- a/crypto-hw-eip93-mt7621/Makefile +++ b/crypto-hw-eip93-mt7621/Makefile @@ -2,12 +2,12 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=crypto-hw-eip93-mt7621 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/denisyuriev/crypto-hw-eip93-mt7621.git PKG_SOURCE_DATE:=2026-11-05 -PKG_SOURCE_VERSION:=2da09654402ff62fef66cb9380619caf211116f3 +PKG_SOURCE_VERSION:=b8afd5f5c5ecdb5c8642f89d3008f4ad04fd36c9 PKG_MIRROR_HASH:=skip PKG_LICENSE:=GPL-2.0 diff --git a/gately/Makefile b/gately/Makefile index b6bee283c..39b1a6991 100644 --- a/gately/Makefile +++ b/gately/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gately PKG_VERSION:=0.6.6 -PKG_RELEASE:=33 +PKG_RELEASE:=34 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/wangwanjie/gately/tar.gz/v$(PKG_VERSION)? @@ -48,11 +48,6 @@ define Package/gately/description Web Terminal, scheduled tasks, and more in a single binary. endef -define Package/gately/conffiles -/etc/gately/ -/etc/config/gately -endef - define Build/Compile ( \ export HOME="$(PKG_BUILD_DIR)/web/.home" ; \ @@ -67,12 +62,6 @@ endef define Package/gately/install $(call GoPackage/Package/Install/Bin,$(1)) - - $(INSTALL_DIR) $(1)/etc/gately - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_CONF) $(CURDIR)/files/gately.config $(1)/etc/config/gately - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) $(CURDIR)/files/gately.init $(1)/etc/init.d/gately endef $(eval $(call GoBinPackage,gately)) diff --git a/gately/files/gately.config b/gately/files/gately.config deleted file mode 100644 index 7b91b2fb9..000000000 --- a/gately/files/gately.config +++ /dev/null @@ -1,7 +0,0 @@ -config gately 'main' - option enabled '0' - option configdir '/etc/gately' - option initial_password 'admin123456' - option admin_port '16680' - option admin_safe_url '' - option admin_internet '0' diff --git a/gately/files/gately.init b/gately/files/gately.init deleted file mode 100644 index 4da762832..000000000 --- a/gately/files/gately.init +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/sh /etc/rc.common -# Gately OpenWrt procd init script - -START=99 -STOP=10 -USE_PROCD=1 - -PROG=/usr/bin/gately - -sync_gately_config() { - local configdir="$1" - local admin_port="$2" - local admin_safe_url="$3" - local admin_internet="$4" - local initial_password="$5" - - mkdir -p "$configdir" - chmod 700 "$configdir" - - if [ -x /usr/bin/ucode ]; then - GATELY_CFG_DIR="$configdir" \ - GATELY_PORT="$admin_port" \ - GATELY_SAFE_URL="$admin_safe_url" \ - GATELY_INTERNET="$admin_internet" \ - /usr/bin/ucode -e ' - import { access, readfile, writefile, chmod } from "fs"; - let dir = getenv("GATELY_CFG_DIR") || "/etc/gately"; - let port = trim(getenv("GATELY_PORT") || "16680"); - let safe = trim(getenv("GATELY_SAFE_URL") || ""); - let inet = (getenv("GATELY_INTERNET") === "1"); - if (length(safe) > 0 && substr(safe, 0, 1) !== "/") { - safe = "/" + safe; - } - let path = dir + "/gately.json"; - let cfg = {}; - if (access(path, "r")) { - try { cfg = json(readfile(path) || "{}"); } catch (e) { cfg = {}; } - } - cfg.listen = ":" + port; - cfg.safePath = safe; - cfg.lanOnly = !inet; - writefile(path, sprintf("%.2J\n", cfg)); - chmod(path, 0600); - ' 2>/dev/null - fi - - local pw_stamp="$configdir/.last_initial_password" - local old_pw="" - [ -f "$pw_stamp" ] && old_pw="$(cat "$pw_stamp" 2>/dev/null)" - if [ ! -f "$configdir/account.json" ] || [ "$initial_password" != "$old_pw" ]; then - rm -f "$configdir/account.json" "$configdir/auth.json" - printf '%s' "$initial_password" > "$pw_stamp" - chmod 600 "$pw_stamp" - fi -} - -start_service() { - config_load gately - - local enabled configdir applydir initial_password admin_port admin_safe_url admin_internet - config_get_bool enabled main enabled 0 - config_get configdir main configdir '/etc/gately' - config_get applydir main applydir '' - config_get initial_password main initial_password 'admin123456' - config_get admin_port main admin_port '16680' - config_get admin_safe_url main admin_safe_url '' - config_get_bool admin_internet main admin_internet 0 - - sync_gately_config "$configdir" "$admin_port" "$admin_safe_url" "$admin_internet" "$initial_password" - - [ "$enabled" -eq 1 ] || return 0 - - procd_open_instance gately - procd_set_param command "$PROG" -c "$configdir" -listen ":$admin_port" - [ -n "$applydir" ] && procd_append_param command -apply "$applydir" - [ -n "$initial_password" ] && procd_set_param env GATELY_INITIAL_PASSWORD="$initial_password" - - # 进程异常退出后自动拉起:阈值 3600 秒内最多 5 次,间隔 5 秒 - procd_set_param respawn 3600 5 5 - procd_set_param limits nofile="65535 65535" - procd_set_param stdout 1 - procd_set_param stderr 1 - procd_set_param file /etc/config/gately "$configdir/gately.json" - procd_close_instance -} - -stop_service() { - rm -f /tmp/gately_info_cache 2>/dev/null -} - -reload_service() { - stop - sleep 1 - start -} - -service_triggers() { - procd_add_reload_trigger "gately" -} diff --git a/luci-app-adguardhome/.upstream_meta b/luci-app-adguardhome/.upstream_meta index d3d4844c2..49c6fb96e 100644 --- a/luci-app-adguardhome/.upstream_meta +++ b/luci-app-adguardhome/.upstream_meta @@ -1,2 +1,2 @@ -9a62efcc5a063d43d7871c8e2c5bea2dad83eb47 +18b646c37aee3bb27acc61fefc73fa6c19a7fc05 e192c5983e50169ed984d48b094798869a0a780b diff --git a/luci-app-adguardhome/po/fr/adguardhome.po b/luci-app-adguardhome/po/fr/adguardhome.po index f1f624bc7..32ee2d845 100644 --- a/luci-app-adguardhome/po/fr/adguardhome.po +++ b/luci-app-adguardhome/po/fr/adguardhome.po @@ -7,7 +7,7 @@ msgstr "" "Language-Team: French \n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"PO-Revision-Date: 2026-11-06 10:40+0000\n" +"PO-Revision-Date: 2026-11-06 18:30+0000\n" "X-Generator: Weblate 2026.11.2.dev0\n" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:244 @@ -113,7 +113,7 @@ msgstr "En cours d'exécution" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:122 msgid "Service Status" -msgstr "" +msgstr "Statut du service" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:180 msgid "Service group" diff --git a/luci-app-adguardhome/po/ja/adguardhome.po b/luci-app-adguardhome/po/ja/adguardhome.po index 9985daa1a..d226a8bc8 100644 --- a/luci-app-adguardhome/po/ja/adguardhome.po +++ b/luci-app-adguardhome/po/ja/adguardhome.po @@ -3,9 +3,12 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Language: ja\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"Last-Translator: Martin Olmer \n" +"Language-Team: Japanese \n" "Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2026-11-06 17:40+0000\n" +"X-Generator: Weblate 2026.11.2.dev0\n" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:244 msgid "" @@ -22,7 +25,7 @@ msgstr "" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:137 #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:199 msgid "Advanced Settings" -msgstr "" +msgstr "詳細設定" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:146 msgid "Configuration file" @@ -50,7 +53,7 @@ msgstr "" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:129 msgid "General Settings" -msgstr "" +msgstr "一般設定" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:138 msgid "" @@ -106,11 +109,11 @@ msgstr "" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:23 msgid "Running" -msgstr "" +msgstr "実行中" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:122 msgid "Service Status" -msgstr "" +msgstr "サービスの状態" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:180 msgid "Service group" @@ -142,7 +145,7 @@ msgstr "" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:119 msgid "Version" -msgstr "" +msgstr "バージョン" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:160 msgid "Will be owned by the service user." diff --git a/luci-app-adguardhome/po/lt/adguardhome.po b/luci-app-adguardhome/po/lt/adguardhome.po index 737eabaf1..e25a36c6c 100644 --- a/luci-app-adguardhome/po/lt/adguardhome.po +++ b/luci-app-adguardhome/po/lt/adguardhome.po @@ -3,13 +3,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Language: lt\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: Martin Olmer \n" +"Last-Translator: Martin Olmer \n" "Language-Team: Lithuanian \n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "(n%100<10 || n%100>=20) ? 1 : 2);\n" -"PO-Revision-Date: 2026-08-28 12:25+0000\n" -"X-Generator: Weblate 2026.9.dev0\n" +"PO-Revision-Date: 2026-11-06 20:32+0000\n" +"X-Generator: Weblate 2026.11.2.dev0\n" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:244 msgid "" @@ -146,7 +146,7 @@ msgstr "" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:119 msgid "Version" -msgstr "" +msgstr "Versija" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:160 msgid "Will be owned by the service user." diff --git a/luci-app-adguardhome/po/ta/adguardhome.po b/luci-app-adguardhome/po/ta/adguardhome.po new file mode 100644 index 000000000..e24735c43 --- /dev/null +++ b/luci-app-adguardhome/po/ta/adguardhome.po @@ -0,0 +1,168 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Language: ta\n" +"Content-Transfer-Encoding: 8bit\n" +"Last-Translator: Martin Olmer \n" +"Language-Team: Tamil \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"PO-Revision-Date: 2026-11-07 09:30+0000\n" +"X-Generator: Weblate 2026.11.2.dev0\n" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:244 +msgid "" +"A soft memory cap for the Go runtime, allowing the garbage collector to run " +"more frequently as usage approaches the limit to prevent Out-of-Memory (OOM) " +"kills." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:113 +#: applications/luci-app-adguardhome/root/usr/share/luci/menu.d/luci-app-adguardhome.json:3 +msgid "AdGuard Home" +msgstr "AdGuard Home" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:137 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:199 +msgid "Advanced Settings" +msgstr "மேம்பட்ட அமைப்புகள்" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:146 +msgid "Configuration file" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:89 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:147 +msgid "" +"Configuration file must be stored in its own directory, and not in '/etc'." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:159 +msgid "Directory where filters, logs, and statistics are stored." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:132 +msgid "File System Access" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:133 +msgid "" +"Files and directories that AdGuard Home should have read-only or read-write " +"access to." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:129 +msgid "General Settings" +msgstr "பொது அமைப்புகள்" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:138 +msgid "" +"Go environment variables that tune garbage collector and memory management." +msgstr "" + +#: applications/luci-app-adguardhome/root/usr/share/rpcd/acl.d/luci-app-adguardhome.json:3 +msgid "Grant permissions for the AdGuard Home LuCI app" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:181 +msgid "Group the service runs under." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:149 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:161 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:171 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:181 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:217 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:232 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:247 +msgid "If empty, defaults to" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:139 +msgid "Modify at your own risk." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:24 +msgid "Not running" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:148 +msgid "Parent directory will be owned by the service user." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:83 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:99 +msgid "Path must be absolute." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:86 +msgid "Path must not end with a slash." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:207 +msgid "Read-only access" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:208 +msgid "Read-write access" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:23 +msgid "Running" +msgstr "இயங்கும்" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:122 +msgid "Service Status" +msgstr "பணி நிலை" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:180 +msgid "Service group" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:170 +msgid "Service user" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:230 +msgid "" +"The maximum number of operating system threads that can execute user-level " +"Go code simultaneously." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:215 +msgid "" +"Tunes the garbage collector's aggressiveness by setting the percentage of " +"heap growth allowed before the next collection cycle triggers." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:171 +msgid "User the service runs under." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:191 +msgid "Verbose logging" +msgstr "சொற்களஞ்சியம் பதிவு" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:119 +msgid "Version" +msgstr "பதிப்பு" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:160 +msgid "Will be owned by the service user." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:158 +msgid "Working directory" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:247 +msgid "unset" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:217 +msgid "unset and 100" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:232 +msgid "unset and matching the number of CPUs" +msgstr "" diff --git a/luci-app-adguardhome/po/vi/adguardhome.po b/luci-app-adguardhome/po/vi/adguardhome.po new file mode 100644 index 000000000..b43b57ff5 --- /dev/null +++ b/luci-app-adguardhome/po/vi/adguardhome.po @@ -0,0 +1,168 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Language: vi\n" +"Content-Transfer-Encoding: 8bit\n" +"Last-Translator: Martin Olmer \n" +"Language-Team: Vietnamese \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"PO-Revision-Date: 2026-11-08 11:58+0000\n" +"X-Generator: Weblate 2026.11.2.dev0\n" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:244 +msgid "" +"A soft memory cap for the Go runtime, allowing the garbage collector to run " +"more frequently as usage approaches the limit to prevent Out-of-Memory (OOM) " +"kills." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:113 +#: applications/luci-app-adguardhome/root/usr/share/luci/menu.d/luci-app-adguardhome.json:3 +msgid "AdGuard Home" +msgstr "AdGuard Home" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:137 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:199 +msgid "Advanced Settings" +msgstr "Cài đặt Nâng cao" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:146 +msgid "Configuration file" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:89 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:147 +msgid "" +"Configuration file must be stored in its own directory, and not in '/etc'." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:159 +msgid "Directory where filters, logs, and statistics are stored." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:132 +msgid "File System Access" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:133 +msgid "" +"Files and directories that AdGuard Home should have read-only or read-write " +"access to." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:129 +msgid "General Settings" +msgstr "Các cài đặt chung" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:138 +msgid "" +"Go environment variables that tune garbage collector and memory management." +msgstr "" + +#: applications/luci-app-adguardhome/root/usr/share/rpcd/acl.d/luci-app-adguardhome.json:3 +msgid "Grant permissions for the AdGuard Home LuCI app" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:181 +msgid "Group the service runs under." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:149 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:161 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:171 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:181 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:217 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:232 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:247 +msgid "If empty, defaults to" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:139 +msgid "Modify at your own risk." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:24 +msgid "Not running" +msgstr "Không Chạy" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:148 +msgid "Parent directory will be owned by the service user." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:83 +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:99 +msgid "Path must be absolute." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:86 +msgid "Path must not end with a slash." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:207 +msgid "Read-only access" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:208 +msgid "Read-write access" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:23 +msgid "Running" +msgstr "Đang chạy" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:122 +msgid "Service Status" +msgstr "Trạng thái dịch vụ" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:180 +msgid "Service group" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:170 +msgid "Service user" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:230 +msgid "" +"The maximum number of operating system threads that can execute user-level " +"Go code simultaneously." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:215 +msgid "" +"Tunes the garbage collector's aggressiveness by setting the percentage of " +"heap growth allowed before the next collection cycle triggers." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:171 +msgid "User the service runs under." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:191 +msgid "Verbose logging" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:119 +msgid "Version" +msgstr "Phiên bản" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:160 +msgid "Will be owned by the service user." +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:158 +msgid "Working directory" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:247 +msgid "unset" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:217 +msgid "unset and 100" +msgstr "" + +#: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:232 +msgid "unset and matching the number of CPUs" +msgstr "" diff --git a/luci-app-adguardhome/po/zh_Hans/adguardhome.po b/luci-app-adguardhome/po/zh_Hans/adguardhome.po index cd6c5c445..3db937705 100644 --- a/luci-app-adguardhome/po/zh_Hans/adguardhome.po +++ b/luci-app-adguardhome/po/zh_Hans/adguardhome.po @@ -3,13 +3,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Language: zh_Hans\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: Aethersailor " -"\n" +"Last-Translator: Hosted Weblate user 54392 " +"\n" "Language-Team: Chinese (Simplified Han script) \n" "Plural-Forms: nplurals=1; plural=0;\n" -"PO-Revision-Date: 2026-10-23 08:23+0000\n" -"X-Generator: Weblate 2026.11.dev0\n" +"PO-Revision-Date: 2026-11-08 07:34+0000\n" +"X-Generator: Weblate 2026.11.2.dev0\n" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:244 msgid "" @@ -56,7 +56,7 @@ msgstr "允许 AdGuard Home 以只读或读写方式访问的文件和目录。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:129 msgid "General Settings" -msgstr "通用设置" +msgstr "常规设置" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:138 msgid "" diff --git a/luci-app-adguardhome/po/zh_Hant/adguardhome.po b/luci-app-adguardhome/po/zh_Hant/adguardhome.po index f142997bb..8f6446137 100644 --- a/luci-app-adguardhome/po/zh_Hant/adguardhome.po +++ b/luci-app-adguardhome/po/zh_Hant/adguardhome.po @@ -3,15 +3,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Language: zh_Hant\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: CHU KING FUNG " -"\n" +"Last-Translator: TCP \n" "Language-Team: Chinese (Traditional Han script) \n" "Plural-Forms: nplurals=1; plural=0;\n" -"PO-Revision-Date: 2026-11-05 09:05+0000\n" -"X-Generator: Weblate 2026.11.1.dev0\n" +"PO-Revision-Date: 2026-11-10 18:59+0000\n" +"X-Generator: Weblate 2026.11.2.dev0\n" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:244 +#, fuzzy msgid "" "A soft memory cap for the Go runtime, allowing the garbage collector to run " "more frequently as usage approaches the limit to prevent Out-of-Memory (OOM) " @@ -36,11 +36,13 @@ msgstr "配置檔案" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:89 #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:147 +#, fuzzy msgid "" "Configuration file must be stored in its own directory, and not in '/etc'." msgstr "設定檔必須儲存於獨立的目錄中,而非「/etc」目錄內。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:159 +#, fuzzy msgid "Directory where filters, logs, and statistics are stored." msgstr "用於儲存篩選器、日誌和統計資料的目錄。" @@ -49,6 +51,7 @@ msgid "File System Access" msgstr "檔案系統存取" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:133 +#, fuzzy msgid "" "Files and directories that AdGuard Home should have read-only or read-write " "access to." @@ -59,15 +62,18 @@ msgid "General Settings" msgstr "一般設定" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:138 +#, fuzzy msgid "" "Go environment variables that tune garbage collector and memory management." msgstr "用於調整垃圾回收器與記憶體管理的 Go 環境變數。" #: applications/luci-app-adguardhome/root/usr/share/rpcd/acl.d/luci-app-adguardhome.json:3 +#, fuzzy msgid "Grant permissions for the AdGuard Home LuCI app" msgstr "授予 AdGuard Home LuCI 應用程式權限" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:181 +#, fuzzy msgid "Group the service runs under." msgstr "該服務所屬的群組。" @@ -90,6 +96,7 @@ msgid "Not running" msgstr "未執行" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:148 +#, fuzzy msgid "Parent directory will be owned by the service user." msgstr "父目錄的所有權將歸屬於服務使用者。" @@ -99,14 +106,17 @@ msgid "Path must be absolute." msgstr "必須為絕對路徑。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:86 +#, fuzzy msgid "Path must not end with a slash." msgstr "路徑末尾不得以斜線結尾。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:207 +#, fuzzy msgid "Read-only access" msgstr "唯讀存取權限" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:208 +#, fuzzy msgid "Read-write access" msgstr "讀寫存取權限" @@ -127,12 +137,14 @@ msgid "Service user" msgstr "服務使用者" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:230 +#, fuzzy msgid "" "The maximum number of operating system threads that can execute user-level " "Go code simultaneously." msgstr "作業系統中可同時執行使用者層級 Go 程式碼的執行緒最大數量。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:215 +#, fuzzy msgid "" "Tunes the garbage collector's aggressiveness by setting the percentage of " "heap growth allowed before the next collection cycle triggers." @@ -141,18 +153,20 @@ msgstr "" "積極程度。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:171 +#, fuzzy msgid "User the service runs under." msgstr "該服務所屬的使用者。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:191 msgid "Verbose logging" -msgstr "詳細記錄" +msgstr "詳細紀錄" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:119 msgid "Version" msgstr "版本" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:160 +#, fuzzy msgid "Will be owned by the service user." msgstr "將由服務使用者擁有。" @@ -161,13 +175,16 @@ msgid "Working directory" msgstr "工作目錄" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:247 +#, fuzzy msgid "unset" msgstr "取消設定" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:217 +#, fuzzy msgid "unset and 100" msgstr "取消設定和 100" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:232 +#, fuzzy msgid "unset and matching the number of CPUs" msgstr "取消設定並與 CPU 數量相符" diff --git a/luci-app-flowproxy/Makefile b/luci-app-flowproxy/Makefile index eb3eb7558..76d0db09e 100644 --- a/luci-app-flowproxy/Makefile +++ b/luci-app-flowproxy/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-flowproxy PKG_VERSION:=1.0.3 -PKG_RELEASE:=7 +PKG_RELEASE:=8 LUCI_TITLE:=LuCI Support for FlowProxy Traffic Diversion LUCI_DEPENDS:=+luci-base +nftables +ip-full +iputils-arping @@ -16,6 +16,8 @@ define Package/$(PKG_NAME)/postinst #!/bin/sh [ -n "$${IPKG_INSTROOT}" ] || { /etc/init.d/rpcd restart + /etc/init.d/flowproxy enable >/dev/null 2>&1 + /etc/init.d/flowproxy start >/dev/null 2>&1 } exit 0 endef diff --git a/luci-app-flowproxy/htdocs/luci-static/resources/view/flowproxy/flowproxy.js b/luci-app-flowproxy/htdocs/luci-static/resources/view/flowproxy/flowproxy.js index 201c8aff4..7df7819f6 100644 --- a/luci-app-flowproxy/htdocs/luci-static/resources/view/flowproxy/flowproxy.js +++ b/luci-app-flowproxy/htdocs/luci-static/resources/view/flowproxy/flowproxy.js @@ -200,6 +200,24 @@ return L.view.extend({ o.default = '0'; o.rmempty = false; + o = s.taboption('settings', form.Value, 'monitor_interval', _('Probe interval (seconds)')); + o.datatype = 'and(uinteger,min(2))'; + o.default = '5'; + o.rmempty = false; + o.depends('monitor_enabled', '1'); + + o = s.taboption('settings', form.Value, 'monitor_fail_threshold', _('Failure threshold')); + o.datatype = 'and(uinteger,min(1))'; + o.default = '3'; + o.rmempty = false; + o.depends('monitor_enabled', '1'); + + o = s.taboption('settings', form.Value, 'monitor_recover_threshold', _('Recovery threshold')); + o.datatype = 'and(uinteger,min(1))'; + o.default = '2'; + o.rmempty = false; + o.depends('monitor_enabled', '1'); + o = s.taboption('settings', form.Value, 'proxy_server_ip_addr', _('Proxy server IP address')); o.datatype = 'ip4addr'; o.rmempty = true; o.placeholder = '192.168.1.254'; @@ -208,9 +226,9 @@ return L.view.extend({ var enabled = s.formvalue('global', 'enabled') || uci.get('flowproxy', 'global', 'enabled'); if (enabled === '1') { var ipVal = s.formvalue('global', 'proxy_server_ip_addr') || uci.get('flowproxy', 'global', 'proxy_server_ip_addr'); - var ifaceVal = s.formvalue('global', 'interface') || uci.get('flowproxy', 'global', 'interface'); + var ifaceVal = s.formvalue('global', 'interface') || uci.get('flowproxy', 'global', 'interface') || 'auto'; - if (ipVal && ifaceVal) { + if (ipVal) { var ipInCidr = function(ipStr, cidrStr) { if (!cidrStr || cidrStr.indexOf(':') !== -1 || !ipStr || ipStr.indexOf(':') !== -1) return false; var parts = cidrStr.split('/'); @@ -231,30 +249,69 @@ return L.view.extend({ return (ipNum & mask) === (cidrNum & mask); }; - var target_iface = null; - for (var i = 0; i < ifaces.length; i++) { - var dev = ifaces[i].getL3Device() || ifaces[i].getDevice(); - if ((dev && dev.getName() === ifaceVal) || ifaces[i].getName() === ifaceVal) { - target_iface = ifaces[i]; - break; + if (ifaceVal === 'auto') { + var allIps = []; + for (var i = 0; i < ifaces.length; i++) { + if (ifaces[i].getName() === 'loopback') continue; + var netIps = ifaces[i].getIPAddrs ? ifaces[i].getIPAddrs() : []; + for (var k = 0; k < netIps.length; k++) { + if (allIps.indexOf(netIps[k]) === -1) allIps.push(netIps[k]); + } } - } - - if (target_iface) { - var ips = target_iface.getIPAddrs(); - if (ips && ips.length > 0) { - var inSubnet = false; - for (var j = 0; j < ips.length; j++) { - if (ipInCidr(ipVal, ips[j])) { - inSubnet = true; + for (var dIdx = 0; dIdx < devices.length; dIdx++) { + if (devices[dIdx].getName() === 'lo') continue; + var devIps = devices[dIdx].getIPAddrs ? devices[dIdx].getIPAddrs() : []; + for (var dk = 0; dk < devIps.length; dk++) { + if (allIps.indexOf(devIps[dk]) === -1) allIps.push(devIps[dk]); + } + } + if (allIps.length > 0) { + var matchedAny = false; + for (var mIdx = 0; mIdx < allIps.length; mIdx++) { + if (ipInCidr(ipVal, allIps[mIdx])) { + matchedAny = true; break; } } - if (!inSubnet) { - ui.addNotification(null, E('p', _('The proxy server IP address must be within the subnet of the selected interface (%s).').format(ips.join(', '))), 'danger'); + if (!matchedAny) { + ui.addNotification(null, E('p', _('The proxy server IP address must be within a local interface subnet (%s).').format(allIps.join(', '))), 'danger'); return Promise.reject(new Error('Proxy IP subnet mismatch')); } } + } else { + var target_iface = null; + for (var i = 0; i < ifaces.length; i++) { + var dev = ifaces[i].getL3Device() || ifaces[i].getDevice(); + if ((dev && dev.getName() === ifaceVal) || ifaces[i].getName() === ifaceVal) { + target_iface = ifaces[i]; + break; + } + } + if (!target_iface) { + for (var dIdx2 = 0; dIdx2 < devices.length; dIdx2++) { + if (devices[dIdx2].getName() === ifaceVal) { + target_iface = devices[dIdx2]; + break; + } + } + } + + if (target_iface && target_iface.getIPAddrs) { + var ips = target_iface.getIPAddrs(); + if (ips && ips.length > 0) { + var inSubnet = false; + for (var j = 0; j < ips.length; j++) { + if (ipInCidr(ipVal, ips[j])) { + inSubnet = true; + break; + } + } + if (!inSubnet) { + ui.addNotification(null, E('p', _('The proxy server IP address must be within the subnet of the selected interface (%s).').format(ips.join(', '))), 'danger'); + return Promise.reject(new Error('Proxy IP subnet mismatch')); + } + } + } } } } @@ -265,12 +322,22 @@ return L.view.extend({ o.datatype = 'port'; o.default = '5353'; o.rmempty = false; o = s.taboption('settings', form.ListValue, 'interface', _('Proxy server interface')); + o.value('auto', _('Auto detect')); devices.forEach(function(d) { o.value(d.getName(), d.getName()); }); - o.default = 'br-lan'; + o.default = 'auto'; + o.rmempty = false; - s.taboption('settings', form.Value, 'traffic_mark', _('Traffic Mark')).datatype = 'or(uinteger, hex)'; - s.taboption('settings', form.Value, 'routing_table', _('Routing Table ID')).datatype = 'and(uinteger,range(1, 4294967295))'; - s.taboption('settings', form.Value, 'rule_priority', _('Rule Priority')).datatype = 'and(uinteger,range(0, 4294967295))'; + o = s.taboption('settings', form.Value, 'traffic_mark', _('Traffic Mark')); + o.datatype = 'or(uinteger, hex)'; + o.default = '0x666'; + + o = s.taboption('settings', form.Value, 'routing_table', _('Routing Table ID')); + o.datatype = 'and(uinteger,range(1, 4294967295))'; + o.default = '888'; + + o = s.taboption('settings', form.Value, 'rule_priority', _('Rule Priority')); + o.datatype = 'and(uinteger,range(0, 4294967295))'; + o.default = '10000'; // --- Rules --- var nftsets = uci.sections('flowproxy', 'nftset').map(function(ss) { return '@' + ss['.name']; }); diff --git a/luci-app-flowproxy/po/templates/flowproxy.pot b/luci-app-flowproxy/po/templates/flowproxy.pot index 0ba959bb8..d1a3daa79 100644 --- a/luci-app-flowproxy/po/templates/flowproxy.pot +++ b/luci-app-flowproxy/po/templates/flowproxy.pot @@ -232,3 +232,42 @@ msgstr "" msgid "degraded (direct fallback)" msgstr "" +msgid "Probe interval (seconds)" +msgstr "" + +msgid "Failure threshold" +msgstr "" + +msgid "Recovery threshold" +msgstr "" + +msgid "Proxy server interface" +msgstr "" + +msgid "Rule Priority" +msgstr "" + +msgid "Restart" +msgstr "" + +msgid "Restarting FlowProxy service..." +msgstr "" + +msgid "FlowProxy service restarted successfully." +msgstr "" + +msgid "Failed to restart FlowProxy service." +msgstr "" + +msgid "RPC error: %s" +msgstr "" + +msgid "The proxy server IP address must be within the subnet of the selected interface (%s)." +msgstr "" + +msgid "The proxy server IP address must be within a local interface subnet (%s)." +msgstr "" + +msgid "Auto detect" +msgstr "" + diff --git a/luci-app-flowproxy/po/zh_Hans/flowproxy.po b/luci-app-flowproxy/po/zh_Hans/flowproxy.po index 1a57368c6..c43cfe214 100644 --- a/luci-app-flowproxy/po/zh_Hans/flowproxy.po +++ b/luci-app-flowproxy/po/zh_Hans/flowproxy.po @@ -256,3 +256,18 @@ msgstr "启用代理服务器监控" msgid "degraded (direct fallback)" msgstr "已降级 (回退直连状态)" +msgid "Probe interval (seconds)" +msgstr "探测间隔 (秒)" + +msgid "Failure threshold" +msgstr "故障判定次数" + +msgid "Recovery threshold" +msgstr "恢复判定次数" + +msgid "Auto detect" +msgstr "自动检测" + +msgid "The proxy server IP address must be within a local interface subnet (%s)." +msgstr "代理服务器 IP 地址必须在本地网络接口的子网网段之内 (%s)。" + diff --git a/luci-app-flowproxy/root/etc/config/flowproxy b/luci-app-flowproxy/root/etc/config/flowproxy index b2af3b5fb..0e16a7bdc 100644 --- a/luci-app-flowproxy/root/etc/config/flowproxy +++ b/luci-app-flowproxy/root/etc/config/flowproxy @@ -3,12 +3,15 @@ config flowproxy 'global' option tcp_enabled '1' option udp_enabled '1' option proxy_server_ip_addr '' - option interface 'br-lan' + option interface 'auto' option traffic_mark '0x666' option routing_table '888' - option rule_priority '1000' + option rule_priority '10000' option dns_proxy_enabled '0' option monitor_enabled '0' + option monitor_interval '5' + option monitor_fail_threshold '3' + option monitor_recover_threshold '2' option proxy_server_dns_port '5353' option log_level 'info' option log_size '1024' diff --git a/luci-app-flowproxy/root/etc/init.d/flowproxy b/luci-app-flowproxy/root/etc/init.d/flowproxy index 0e780f639..a4d275603 100755 --- a/luci-app-flowproxy/root/etc/init.d/flowproxy +++ b/luci-app-flowproxy/root/etc/init.d/flowproxy @@ -8,16 +8,57 @@ USE_PROCD=1 . /usr/share/flowproxy/common.sh _stop_unlocked() { + local mode="$1" log_msg info "Stopping FlowProxy..." + local wd_pid=$(cat "$WD_PID_FILE" 2>/dev/null) # 强制先移除标记,防止状态误报及旧守护进程继续动作 - rm -f "$STATE_FILE" "$DEGRADED_FILE" "$GEN_FILE" + rm -f "$STATE_FILE" "$DEGRADED_FILE" "$GEN_FILE" "$TARGET_FILE" "$WD_CFG_FILE" "$WD_PID_FILE" + if [ -n "$wd_pid" ] && kill -0 "$wd_pid" 2>/dev/null; then + kill -TERM "$wd_pid" 2>/dev/null + fi delete_route delete_nft - cleanup_dns + if [ "$mode" != "preserve_dns" ]; then + cleanup_dns + fi rm -f "$NFT_CONF" log_msg info "FlowProxy service stopped" } +_get_watchdog_gen() { + local force_new="$1" + local proxy_ip=$(uci -q get "$UCI_CONFIG.global.proxy_server_ip_addr") + local probe_iface=$(resolve_proxy_iface "" "$proxy_ip") + local interval=$(uci -q get "$UCI_CONFIG.global.monitor_interval" || echo 5) + local fail_th=$(uci -q get "$UCI_CONFIG.global.monitor_fail_threshold" || echo 3) + local rec_th=$(uci -q get "$UCI_CONFIG.global.monitor_recover_threshold" || echo 2) + + local cur_cfg="${proxy_ip}|${probe_iface}|${interval}|${fail_th}|${rec_th}" + local old_cfg=$(cat "$WD_CFG_FILE" 2>/dev/null) + local old_gen=$(cat "$GEN_FILE" 2>/dev/null) + + if [ "$force_new" != "1" ] && [ -n "$old_gen" ] && [ "$cur_cfg" = "$old_cfg" ]; then + echo "$old_gen" + return + fi + + local new_gen="$(date +%s)-$$" + echo "$cur_cfg" > "$WD_CFG_FILE" + echo "$new_gen" > "$GEN_FILE" + echo "$new_gen" +} + +_register_watchdog_instance() { + local gen="$1" + local monitor_enabled=$(uci -q get "$UCI_CONFIG.global.monitor_enabled" || echo 0) + if [ "$monitor_enabled" = "1" ]; then + procd_open_instance "watchdog" + procd_set_param command /usr/share/flowproxy/watchdog.sh "$gen" + procd_set_param respawn 3600 5 0 + procd_close_instance + fi +} + _start_unlocked() { local enabled=$(uci -q get "$UCI_CONFIG.global.enabled") @@ -27,59 +68,136 @@ _start_unlocked() { return 0 fi + check_env || { _stop_unlocked; return 1; } + check_config || { _stop_unlocked; return 1; } + + local proxy_ip=$(uci -q get "$UCI_CONFIG.global.proxy_server_ip_addr") + local probe_iface=$(resolve_proxy_iface "" "$proxy_ip") + local monitor_enabled=$(uci -q get "$UCI_CONFIG.global.monitor_enabled" || echo 0) + local dns_proxy_enabled=$(uci -q get "$UCI_CONFIG.global.dns_proxy_enabled" || echo 0) + + local cur_target="${proxy_ip}|${probe_iface}" + local old_target=$(cat "$TARGET_FILE" 2>/dev/null) + local is_reload="${FLOWPROXY_RELOAD:-0}" + local force_gen="1" + [ "$is_reload" = "1" ] && force_gen="0" + + # 1. 热降级状态下的 reload(且目标旁路由 IP 与接口未变更):保持直连回退,仅刷新缓存与同步 DNS 开关 + if [ "$is_reload" = "1" ] && [ "$monitor_enabled" = "1" ] && [ -f "$DEGRADED_FILE" ] && [ -f "$STATE_FILE" ] && [ "$cur_target" = "$old_target" ]; then + log_msg info "Reload triggered while in hot-degraded mode; preserving direct fallback and refreshing rule cache" + generate_nft_cache || rm -f "$NFT_CONF" + delete_route "quiet" + delete_nft + if [ "$dns_proxy_enabled" = "1" ]; then + _backup_dns_if_needed + else + cleanup_dns + fi + + local gen=$(_get_watchdog_gen "0") + _register_watchdog_instance "$gen" + return 0 + fi + + # 2. 开启监控时的启动/重启/目标变更预探测:若旁路由当前不可达,直接进入热降级直连待命,避免启动制造断网黑洞 + local need_initial_probe=1 + if [ "$is_reload" = "1" ] && [ -f "$STATE_FILE" ] && [ ! -f "$DEGRADED_FILE" ] && [ "$cur_target" = "$old_target" ]; then + need_initial_probe=0 + fi + + if [ "$monitor_enabled" = "1" ] && [ "$need_initial_probe" = "1" ]; then + if ! check_proxy_alive "$proxy_ip" "$probe_iface"; then + log_msg warn "Proxy server $proxy_ip unreachable via $probe_iface; entering hot-degraded mode (direct fallback)" + generate_nft_cache || { _stop_unlocked; return 1; } + echo "$cur_target" > "$TARGET_FILE" + touch "$DEGRADED_FILE" "$STATE_FILE" + delete_route "quiet" + delete_nft + if [ "$dns_proxy_enabled" = "1" ]; then + _backup_dns_if_needed || { _stop_unlocked; return 1; } + restore_dnsmasq_from_backup || { _stop_unlocked; return 1; } + else + cleanup_dns + fi + + local gen=$(_get_watchdog_gen "$force_gen") + _register_watchdog_instance "$gen" + return 0 + fi + fi + + # 3. 常规激活启动或在线重载 log_msg info "Starting FlowProxy..." - check_env || return 1 - check_config || return 1 - apply_nft_rules || return 1 - add_route || { delete_nft; return 1; } - setup_dns + apply_nft_rules || { _stop_unlocked; return 1; } + add_route || { _stop_unlocked; return 1; } + setup_dns || { _stop_unlocked; return 1; } rm -f "$DEGRADED_FILE" + echo "$cur_target" > "$TARGET_FILE" touch "$STATE_FILE" - local gen="$(date +%s)-$$" - echo "$gen" > "$GEN_FILE" - - local monitor_enabled=$(uci -q get "$UCI_CONFIG.global.monitor_enabled" || echo 0) - if [ "$monitor_enabled" = "1" ]; then - procd_open_instance "watchdog" - procd_set_param command /usr/share/flowproxy/watchdog.sh "$gen" - procd_set_param respawn 3600 5 5 - procd_close_instance - fi + local gen=$(_get_watchdog_gen "$force_gen") + _register_watchdog_instance "$gen" log_msg info "FlowProxy service started successfully" return 0 } start_service() { - acquire_lock + acquire_lock || { FLOWPROXY_START_RET=1; return 1; } _start_unlocked local ret=$? + FLOWPROXY_START_RET=$ret release_lock return $ret } stop_service() { - acquire_lock - _stop_unlocked + acquire_lock || return 1 + if [ "${FLOWPROXY_PRESERVE_DNS:-0}" = "1" ]; then + _stop_unlocked "preserve_dns" + else + _stop_unlocked + fi local ret=$? release_lock return $ret } -restart_service() { - acquire_lock - _stop_unlocked - _start_unlocked - local ret=$? - release_lock - return $ret +restart() { + trap '' TERM + FLOWPROXY_PRESERVE_DNS=1 + export FLOWPROXY_PRESERVE_DNS + stop "$@" + FLOWPROXY_PRESERVE_DNS=0 + FLOWPROXY_START_RET=0 + start "$@" + return ${FLOWPROXY_START_RET:-0} } reload_service() { - restart_service + FLOWPROXY_RELOAD=1 + export FLOWPROXY_RELOAD + FLOWPROXY_START_RET=0 + start "$@" + local ret=${FLOWPROXY_START_RET:-$?} + FLOWPROXY_RELOAD=0 + return $ret +} + +service_stopped() { + # 正常停止服务后重新注册空 procd 服务对象,确保 LuCI 保存配置时的 config.change 触发器不丢失 + if [ "${FLOWPROXY_PRESERVE_DNS:-0}" != "1" ]; then + local i=0 + while [ "$i" -lt 20 ]; do + ubus call service list '{"name":"flowproxy"}' 2>/dev/null | grep -q '"running":[[:space:]]*true' || break + usleep 50000 2>/dev/null || sleep 1 + i=$((i + 1)) + done + procd_open_service "$(basename ${basescript:-$initscript})" "$initscript" + procd_close_service + fi } service_triggers() { diff --git a/luci-app-flowproxy/root/usr/share/flowproxy/common.sh b/luci-app-flowproxy/root/usr/share/flowproxy/common.sh index 300e55bc7..67bac1af0 100755 --- a/luci-app-flowproxy/root/usr/share/flowproxy/common.sh +++ b/luci-app-flowproxy/root/usr/share/flowproxy/common.sh @@ -9,6 +9,9 @@ STATE_FILE="/var/run/flowproxy.running" DEGRADED_FILE="/var/run/flowproxy.degraded" GEN_FILE="/var/run/flowproxy.gen" MARK_FILE="/var/run/flowproxy.mark" +TARGET_FILE="/var/run/flowproxy.target" +WD_CFG_FILE="/var/run/flowproxy.wd_cfg" +WD_PID_FILE="/var/run/flowproxy.wd_pid" LOCK_FILE="/var/lock/flowproxy.lock" get_level_weight() { @@ -49,31 +52,56 @@ log_msg() { } acquire_lock() { + local max_wait="${1:-30}" [ "${FLOWPROXY_LOCKED:-0}" = "1" ] && return 0 mkdir -p "$(dirname "$LOCK_FILE")" if command -v flock >/dev/null 2>&1; then exec 9>"$LOCK_FILE" - flock -x 9 + local wait_cnt=0 + while ! flock -x -n 9 2>/dev/null; do + if [ "$wait_cnt" -ge "$max_wait" ]; then + exec 9>&- 2>/dev/null + return 1 + fi + wait_cnt=$((wait_cnt + 1)) + sleep 1 + done + FLOWPROXY_LOCK_METHOD="flock" + FLOWPROXY_LOCKED=1 + return 0 else local wait_cnt=0 while ! mkdir "${LOCK_FILE}.d" 2>/dev/null; do + local lock_pid=$(cat "${LOCK_FILE}.d/pid" 2>/dev/null) + if [ -n "$lock_pid" ] && [ "$lock_pid" != "$$" ] && ! kill -0 "$lock_pid" 2>/dev/null; then + log_msg warn "Removing stale lock held by dead PID $lock_pid" + rm -rf "${LOCK_FILE}.d" + continue + fi + if [ "$wait_cnt" -ge "$max_wait" ]; then + log_msg error "Timed out waiting for lock ${LOCK_FILE}.d" + return 1 + fi wait_cnt=$((wait_cnt + 1)) - [ "$wait_cnt" -ge 50 ] && break sleep 1 done + echo "$$" > "${LOCK_FILE}.d/pid" + FLOWPROXY_LOCK_METHOD="mkdir" + FLOWPROXY_LOCKED=1 + return 0 fi - FLOWPROXY_LOCKED=1 - return 0 } release_lock() { [ "${FLOWPROXY_LOCKED:-0}" != "1" ] && return 0 - if command -v flock >/dev/null 2>&1; then + if [ "${FLOWPROXY_LOCK_METHOD:-}" = "flock" ]; then flock -u 9 2>/dev/null - exec 9>&- - else + exec 9>&- 2>/dev/null + elif [ "${FLOWPROXY_LOCK_METHOD:-}" = "mkdir" ]; then + rm -f "${LOCK_FILE}.d/pid" 2>/dev/null rmdir "${LOCK_FILE}.d" 2>/dev/null fi + FLOWPROXY_LOCK_METHOD="" FLOWPROXY_LOCKED=0 return 0 } @@ -90,10 +118,16 @@ check_env() { check_config() { local proxy_server_ip_addr=$(uci -q get "$UCI_CONFIG.global.proxy_server_ip_addr") [ -z "$proxy_server_ip_addr" ] && { log_msg error "proxy_server_ip_addr not configured"; return 1; } + local tcp_enabled=$(uci -q get "$UCI_CONFIG.global.tcp_enabled"); tcp_enabled="${tcp_enabled:-1}" + local udp_enabled=$(uci -q get "$UCI_CONFIG.global.udp_enabled"); udp_enabled="${udp_enabled:-1}" + if [ "$tcp_enabled" != "1" ] && [ "$udp_enabled" != "1" ]; then + log_msg error "Both TCP and UDP diversion are disabled" + return 1 + fi return 0 } -apply_nft_rules() { +generate_nft_cache() { log_msg info "Generating nftables configuration..." local conf_level=$(uci -q get "$UCI_CONFIG.global.log_level" || echo "info") @@ -112,17 +146,10 @@ apply_nft_rules() { fi rm -f "$err_file" - if [ $ret -eq 0 ]; then - log_msg info "Applying nftables rules from $NFT_CONF" - # 确保内核支持 inet 表 - nft delete table inet flowproxy 2>/dev/null - if nft -f "$NFT_CONF"; then - return 0 - else - log_msg error "nftables rules application failed (syntax error)" - return 1 - fi + if [ $ret -eq 0 ] && [ -s "$NFT_CONF" ]; then + return 0 else + rm -f "$NFT_CONF" log_msg error "Failed to generate nftables config" return 1 fi @@ -132,6 +159,19 @@ apply_nft_rules() { fi } +apply_nft_rules() { + generate_nft_cache || return 1 + log_msg info "Applying nftables rules from $NFT_CONF" + # 确保内核支持 inet 表 + nft delete table inet flowproxy 2>/dev/null + if nft -f "$NFT_CONF"; then + return 0 + else + log_msg error "nftables rules application failed (syntax error)" + return 1 + fi +} + restore_nft_rules() { if [ -s "$NFT_CONF" ]; then log_msg info "Restoring nftables rules from cached $NFT_CONF" @@ -144,37 +184,198 @@ restore_nft_rules() { apply_nft_rules } +resolve_master_iface() { + local iface="$1" + if [ -L "/sys/class/net/$iface/master" ]; then + local master_path=$(readlink "/sys/class/net/$iface/master" 2>/dev/null) + local master_name=$(basename "$master_path" 2>/dev/null) + [ -n "$master_name" ] && { echo "$master_name"; return; } + fi + echo "$iface" +} + +detect_iface_by_ip() { + local target_ip="$1" + [ -z "$target_ip" ] && return 1 + + # 1. 优先通过本地接口 IPv4 子网掩码最长前缀匹配(不受策略路由 ip rule 干扰) + local matched_dev + matched_dev=$(ip -o -4 addr show 2>/dev/null | awk -v tip="$target_ip" ' + function ip2int(ip, a, n) { + n = split(ip, a, ".") + if (n != 4) return -1 + return ((a[1] * 256 + a[2]) * 256 + a[3]) * 256 + a[4] + } + BEGIN { + t = ip2int(tip) + best_plen = -1 + best_dev = "" + } + t >= 0 { + dev = $2 + sub(/@.*/, "", dev) + if (dev == "lo") next + for (i = 3; i <= NF; i++) { + if ($i == "inet" && (i + 1) <= NF) { + split($(i + 1), cidr, "/") + addr = ip2int(cidr[1]) + plen = (cidr[2] != "") ? int(cidr[2]) : 32 + if (addr < 0 || plen < 0 || plen > 32) continue + if (plen == 0) { + if (plen > best_plen) { + best_plen = plen + best_dev = dev + } + } else { + factor = 2 ^ (32 - plen) + if (int(t / factor) == int(addr / factor)) { + if (plen > best_plen) { + best_plen = plen + best_dev = dev + } + } + } + } + } + } + END { + if (best_dev != "") print best_dev + } + ') + if [ -n "$matched_dev" ]; then + echo "$matched_dev" + return 0 + fi + + # 2. 兜底:通过内核路由查询直连出接口 + local route_line route_dev + route_line=$(ip -4 route get "$target_ip" 2>/dev/null | head -n 1) + case "$route_line" in + *" via "*) ;; + *) + route_dev=$(echo "$route_line" | awk '{for(i=1;i<=NF;i++) if($i=="dev") {print $(i+1); exit}}') + if [ -n "$route_dev" ] && [ "$route_dev" != "lo" ]; then + echo "$route_dev" + return 0 + fi + ;; + esac + return 1 +} + +resolve_proxy_iface() { + local conf_iface="$1" + local proxy_ip="$2" + [ -z "$conf_iface" ] && conf_iface=$(uci -q get "$UCI_CONFIG.global.interface") + [ -z "$proxy_ip" ] && proxy_ip=$(uci -q get "$UCI_CONFIG.global.proxy_server_ip_addr") + conf_iface="${conf_iface:-auto}" + + local resolved="" + if [ "$conf_iface" = "auto" ]; then + resolved=$(detect_iface_by_ip "$proxy_ip") + if [ -z "$resolved" ]; then + log_msg warn "Unable to auto-detect interface for ${proxy_ip:-empty}, falling back to br-lan" + resolved="br-lan" + fi + else + resolved="$conf_iface" + fi + + resolve_master_iface "$resolved" +} + +_run_probe_cmd() { + if [ -n "${MY_GEN:-}" ]; then + [ "${STOP_REQUESTED:-0}" -eq 1 ] && return 1 + "$@" >/dev/null 2>&1 & + SLEEP_PID=$! + wait "$SLEEP_PID" 2>/dev/null + local ret=$? + SLEEP_PID="" + [ "${STOP_REQUESTED:-0}" -eq 1 ] && return 1 + return $ret + else + "$@" >/dev/null 2>&1 + return $? + fi +} + +iface_supports_arp() { + local iface="$1" + [ -d "/sys/class/net/$iface" ] || return 1 + local flags=$(cat "/sys/class/net/$iface/flags" 2>/dev/null) + [ -z "$flags" ] && return 0 + # IFF_NOARP(0x80) | IFF_POINTOPOINT(0x10) | IFF_LOOPBACK(0x8) = 0x98 + if [ $((flags & 0x98)) -ne 0 ]; then + return 1 + fi + return 0 +} + +check_proxy_alive() { + local ip="$1" + local iface="$2" + + # 1. 支持 ARP 的二层接口优先使用 arping:同网段旁路由正常及禁 Ping 场景均在毫秒级返回 + # 若二层 ARP 明确超时无应答,不再执行冗余 ping(避免额外阻塞及污染邻居表) + if iface_supports_arp "$iface"; then + if command -v arping >/dev/null 2>&1; then + if _run_probe_cmd arping -f -q -c 2 -w 2 -I "$iface" "$ip"; then + return 0 + fi + return 1 + fi + + # 无 arping 二进制时的内核邻居表探测兜底 + if _run_probe_cmd ping -c 1 -W 1 -I "$iface" "$ip"; then + return 0 + fi + ip neigh flush to "$ip" dev "$iface" >/dev/null 2>&1 + _run_probe_cmd ping -c 1 -W 1 -I "$iface" "$ip" + if ip neigh show to "$ip" dev "$iface" 2>/dev/null | grep -qE "REACHABLE|DELAY|PROBE"; then + return 0 + fi + return 1 + fi + + # 2. 非 ARP / 三层点对点虚拟接口使用 ICMP Ping 探测 + if _run_probe_cmd ping -c 1 -W 1 -I "$iface" "$ip"; then + return 0 + fi + return 1 +} + add_route() { local proxy_server_ip_addr=$(uci -q get "$UCI_CONFIG.global.proxy_server_ip_addr") - local interface=$(uci -q get "$UCI_CONFIG.global.interface"); interface="${interface:-br-lan}" + local interface=$(resolve_proxy_iface "" "$proxy_server_ip_addr") local traffic_mark=$(uci -q get "$UCI_CONFIG.global.traffic_mark"); traffic_mark="${traffic_mark:-0x666}" local routing_table=$(uci -q get "$UCI_CONFIG.global.routing_table"); routing_table="${routing_table:-888}" - local rule_priority=$(uci -q get "$UCI_CONFIG.global.rule_priority"); rule_priority="${rule_priority:-1000}" + local rule_priority=$(uci -q get "$UCI_CONFIG.global.rule_priority"); rule_priority="${rule_priority:-10000}" # 1. 先尝试用旧记录清理一次,防止由于配置变更导致的残留 delete_route "quiet" log_msg info "Setting up routing table $routing_table and rule for mark $traffic_mark with priority $rule_priority..." - # 2. 记录当前使用的标记值、路由表 ID 和优先级 - echo "$traffic_mark:$routing_table:$rule_priority" > "$MARK_FILE" - - # 3. 再次确保新标记和表的规则是干净的 + # 2. 确保新标记和表的规则是干净的 while ip rule del fwmark "$traffic_mark" lookup "$routing_table" 2>/dev/null; do :; done ip route flush table "$routing_table" 2>/dev/null - # 4. 添加路由和策略 + # 3. 添加路由和策略,成功后再记录状态文件 local err if ! err=$(ip route add default via "$proxy_server_ip_addr" dev "$interface" table "$routing_table" 2>&1); then + rm -f "$MARK_FILE" log_msg error "Failed to add default route: $err" return 1 fi + echo "$traffic_mark:$routing_table:$rule_priority" > "$MARK_FILE" err=$(ip rule add fwmark "$traffic_mark" lookup "$routing_table" priority "$rule_priority" 2>&1) if [ $? -eq 0 ]; then log_msg info "Route added: via $proxy_server_ip_addr dev $interface table $routing_table for mark $traffic_mark with priority $rule_priority" return 0 else log_msg error "Failed to add ip rule: $err" + delete_route return 1 fi } @@ -194,7 +395,7 @@ delete_route() { local curr_mark=$(uci -q get "$UCI_CONFIG.global.traffic_mark"); curr_mark="${curr_mark:-0x666}" local curr_table=$(uci -q get "$UCI_CONFIG.global.routing_table"); curr_table="${curr_table:-888}" - local curr_prio=$(uci -q get "$UCI_CONFIG.global.rule_priority"); curr_prio="${curr_prio:-1000}" + local curr_prio=$(uci -q get "$UCI_CONFIG.global.rule_priority"); curr_prio="${curr_prio:-10000}" [ "$quiet" != "quiet" ] && log_msg info "Cleaning up FlowProxy routes (Atomic Mode)..." @@ -218,7 +419,7 @@ delete_route() { # 执行清理:先清旧值,再清当前值 (防止残留) safe_del_rule "$old_mark" "$old_table" "$old_prio" - [ "$old_mark" != "$curr_mark" ] || [ "$old_table" != "$curr_table" ] && \ + [ "$old_mark" != "$curr_mark" ] || [ "$old_table" != "$curr_table" ] || [ "$old_prio" != "$curr_prio" ] && \ safe_del_rule "$curr_mark" "$curr_table" "$curr_prio" } @@ -227,6 +428,81 @@ delete_nft() { log_msg info "Removed nftables table 'flowproxy'" } +_norm_server_list() { + local raw="$1" + local out="" s + for s in $(echo "$raw" | tr ',' ' '); do + [ -n "$s" ] && out="${out:+$out }$s" + done + echo "$out" +} + +_restart_dnsmasq_unlocked() { + if [ "${FLOWPROXY_LOCK_METHOD:-}" = "flock" ]; then + /etc/init.d/dnsmasq restart 9>&- + else + /etc/init.d/dnsmasq restart + fi +} + +_backup_dns_if_needed() { + if ! uci -q get "$UCI_CONFIG.dns_backup" >/dev/null; then + local old_noresolv=$(uci -q get dhcp.@dnsmasq[0].noresolv) + local old_dns_redirect=$(uci -q get dhcp.@dnsmasq[0].dns_redirect) + local old_servers=$(uci -q get dhcp.@dnsmasq[0].server | tr '\n ' ',,' | sed 's/,,*/,/g; s/^,//; s/,$//') + + log_msg debug "Backing up DNS: noresolv=${old_noresolv:-empty}, redirect=${old_dns_redirect:-empty}, servers=${old_servers:-empty}" + + uci set "$UCI_CONFIG.dns_backup=dns_backup" + [ -n "$old_noresolv" ] && uci set "$UCI_CONFIG.dns_backup.noresolv=$old_noresolv" + [ -n "$old_dns_redirect" ] && uci set "$UCI_CONFIG.dns_backup.dns_redirect=$old_dns_redirect" + [ -n "$old_servers" ] && uci set "$UCI_CONFIG.dns_backup.servers=$old_servers" + uci commit "$UCI_CONFIG" || return 1 + fi + return 0 +} + +_apply_dnsmasq_config() { + local target_noresolv="$1" + local target_redirect="$2" + local target_servers_norm="$3" + local delete_redirect_if_empty="$4" + + local cur_noresolv=$(uci -q get dhcp.@dnsmasq[0].noresolv) + local cur_redirect=$(uci -q get dhcp.@dnsmasq[0].dns_redirect) + local cur_servers=$(_norm_server_list "$(uci -q get dhcp.@dnsmasq[0].server)") + + local redirect_match=0 + if [ "$delete_redirect_if_empty" = "1" ] && [ -z "$target_redirect" ]; then + [ -z "$cur_redirect" ] && redirect_match=1 + else + [ "$cur_redirect" = "$target_redirect" ] && redirect_match=1 + fi + + if [ "$cur_noresolv" = "$target_noresolv" ] && [ "$redirect_match" = "1" ] && [ "$cur_servers" = "$target_servers_norm" ]; then + log_msg debug "DNS configuration already matches target, skipping commit and dnsmasq restart" + return 0 + fi + + uci set dhcp.@dnsmasq[0].noresolv="$target_noresolv" + if [ -n "$target_redirect" ]; then + uci set dhcp.@dnsmasq[0].dns_redirect="$target_redirect" + elif [ "$delete_redirect_if_empty" = "1" ]; then + uci -q delete dhcp.@dnsmasq[0].dns_redirect + fi + + uci -q delete dhcp.@dnsmasq[0].server + if [ -n "$target_servers_norm" ]; then + local s + for s in $target_servers_norm; do + [ -n "$s" ] && uci add_list dhcp.@dnsmasq[0].server="$s" + done + fi + + uci commit dhcp || return 1 + _restart_dnsmasq_unlocked +} + setup_dns() { local enabled=$(uci -q get "$UCI_CONFIG.global.enabled") local dns_proxy_enabled=$(uci -q get "$UCI_CONFIG.global.dns_proxy_enabled") @@ -236,93 +512,64 @@ setup_dns() { # Only apply DNS proxy if BOTH main service and DNS proxy are enabled if [ "${enabled:-0}" != "1" ] || [ "${dns_proxy_enabled:-0}" != "1" ]; then cleanup_dns - return 0 + return $? fi [ -z "$proxy_server_ip_addr" ] && { log_msg error "proxy_server_ip_addr not configured, cannot setup DNS"; return 1; } log_msg info "Setting up DNS redirection to $proxy_server_ip_addr#$proxy_server_dns_port..." - # Persistent backup in UCI - if ! uci -q get "$UCI_CONFIG.dns_backup" >/dev/null; then - local old_noresolv=$(uci -q get dhcp.@dnsmasq[0].noresolv) - local old_dns_redirect=$(uci -q get dhcp.@dnsmasq[0].dns_redirect) - local old_servers=$(uci -q get dhcp.@dnsmasq[0].server | tr '\n' ',' | sed 's/,$//') + _backup_dns_if_needed || return 1 - log_msg debug "Backing up DNS: noresolv=${old_noresolv:-empty}, redirect=${old_dns_redirect:-empty}, servers=${old_servers:-empty}" - - uci set "$UCI_CONFIG.dns_backup=dns_backup" - [ -n "$old_noresolv" ] && uci set "$UCI_CONFIG.dns_backup.noresolv=$old_noresolv" - [ -n "$old_dns_redirect" ] && uci set "$UCI_CONFIG.dns_backup.dns_redirect=$old_dns_redirect" - [ -n "$old_servers" ] && uci set "$UCI_CONFIG.dns_backup.servers=$old_servers" - uci commit "$UCI_CONFIG" - fi - - log_msg debug "Applying new DNS: noresolv=1, redirect=0, server=$proxy_server_ip_addr#$proxy_server_dns_port" - uci set dhcp.@dnsmasq[0].noresolv='1' - uci set dhcp.@dnsmasq[0].dns_redirect='0' - - # Delete current servers and add our proxy - uci -q delete dhcp.@dnsmasq[0].server - uci add_list dhcp.@dnsmasq[0].server="$proxy_server_ip_addr#$proxy_server_dns_port" - - uci commit dhcp - /etc/init.d/dnsmasq restart + log_msg debug "Applying DNS target: noresolv=1, redirect=0, server=$proxy_server_ip_addr#$proxy_server_dns_port" + _apply_dnsmasq_config "1" "0" "${proxy_server_ip_addr}#${proxy_server_dns_port}" "0" } -cleanup_dns() { +restore_dnsmasq_from_backup() { if uci -q get "$UCI_CONFIG.dns_backup" >/dev/null; then - log_msg info "Restoring original DNS configuration..." + log_msg info "Restoring original DNS configuration to dnsmasq..." local noresolv=$(uci -q get "$UCI_CONFIG.dns_backup.noresolv") local dns_redirect=$(uci -q get "$UCI_CONFIG.dns_backup.dns_redirect") local servers=$(uci -q get "$UCI_CONFIG.dns_backup.servers") + local servers_norm=$(_norm_server_list "$servers") - log_msg debug "Restoring DNS values: noresolv=${noresolv:-0}, redirect=${dns_redirect:-1}, servers=${servers:-empty}" + noresolv="${noresolv:-0}" + log_msg debug "Restoring DNS values: noresolv=$noresolv, redirect=${dns_redirect:-empty}, servers=${servers_norm:-empty}" - # Restore noresolv (default to 0 if not backed up) - [ -n "$noresolv" ] && uci set dhcp.@dnsmasq[0].noresolv="$noresolv" || uci set dhcp.@dnsmasq[0].noresolv="0" + _apply_dnsmasq_config "$noresolv" "$dns_redirect" "$servers_norm" "1" || return 1 + fi + return 0 +} - # Restore dns_redirect (only restore if it originally existed, avoid polluting config) - if [ -n "$dns_redirect" ]; then - uci set dhcp.@dnsmasq[0].dns_redirect="$dns_redirect" - else - uci -q delete dhcp.@dnsmasq[0].dns_redirect - fi - - # Restore servers correctly splitting comma-separated list - uci -q delete dhcp.@dnsmasq[0].server - if [ -n "$servers" ]; then - for s in $(echo "$servers" | tr ',' ' '); do - [ -n "$s" ] && uci add_list dhcp.@dnsmasq[0].server="$s" - done - fi - - uci commit dhcp +cleanup_dns() { + if uci -q get "$UCI_CONFIG.dns_backup" >/dev/null; then + restore_dnsmasq_from_backup || return 1 uci delete "$UCI_CONFIG.dns_backup" uci commit "$UCI_CONFIG" - /etc/init.d/dnsmasq restart fi + return 0 } do_degrade() { local proxy_ip=$(uci -q get "$UCI_CONFIG.global.proxy_server_ip_addr") - log_msg warn "Proxy server ${proxy_ip:-unknown} unreachable, degrading FlowProxy to direct mode..." + log_msg warn "Proxy server ${proxy_ip:-unknown} unreachable, hot-degrading FlowProxy to direct mode..." # 先写入降级标记,避免 RPCD 状态自愈误删 STATE_FILE touch "$DEGRADED_FILE" delete_route delete_nft - cleanup_dns - log_msg warn "FlowProxy degraded to direct mode (monitoring remains active)" + # 热降级:仅从 flowproxy.dns_backup 读取并还原 dnsmasq,保留 UCI 备份不改写 flowproxy + restore_dnsmasq_from_backup + log_msg warn "FlowProxy hot-degraded to direct mode (monitoring remains active)" } do_recover() { local proxy_ip=$(uci -q get "$UCI_CONFIG.global.proxy_server_ip_addr") - log_msg info "Proxy server ${proxy_ip:-unknown} is online, recovering FlowProxy..." + log_msg info "Proxy server ${proxy_ip:-unknown} is online, hot-recovering FlowProxy..." restore_nft_rules || return 1 add_route || { delete_nft; return 1; } - setup_dns + setup_dns || { restore_dnsmasq_from_backup; delete_route; delete_nft; return 1; } rm -f "$DEGRADED_FILE" - log_msg info "FlowProxy recovered to active proxy mode" + log_msg info "FlowProxy hot-recovered to active proxy mode" return 0 } diff --git a/luci-app-flowproxy/root/usr/share/flowproxy/generate_nft.sh b/luci-app-flowproxy/root/usr/share/flowproxy/generate_nft.sh index dcf0e1f18..9a2165fb5 100755 --- a/luci-app-flowproxy/root/usr/share/flowproxy/generate_nft.sh +++ b/luci-app-flowproxy/root/usr/share/flowproxy/generate_nft.sh @@ -7,7 +7,11 @@ CONFIG="flowproxy" NFT_TABLE="flowproxy" -OUTPUT_FILE="/tmp/flowproxy/nft.conf" +if [ "$FLOWPROXY_PREVIEW" = "1" ]; then + OUTPUT_FILE="/tmp/flowproxy/nft.preview.conf" +else + OUTPUT_FILE="/tmp/flowproxy/nft.conf" +fi mkdir -p "$(dirname "$OUTPUT_FILE")" diff --git a/luci-app-flowproxy/root/usr/share/flowproxy/watchdog.sh b/luci-app-flowproxy/root/usr/share/flowproxy/watchdog.sh index 21a31a7c2..9f499b22b 100755 --- a/luci-app-flowproxy/root/usr/share/flowproxy/watchdog.sh +++ b/luci-app-flowproxy/root/usr/share/flowproxy/watchdog.sh @@ -27,16 +27,6 @@ interruptible_sleep() { return 0 } -resolve_probe_iface() { - local iface="$1" - if [ -L "/sys/class/net/$iface/master" ]; then - local master_path=$(readlink "/sys/class/net/$iface/master" 2>/dev/null) - local master_name=$(basename "$master_path" 2>/dev/null) - [ -n "$master_name" ] && { echo "$master_name"; return; } - fi - echo "$iface" -} - get_uint_or_default() { local val="$1" local def="$2" @@ -56,41 +46,12 @@ is_context_valid() { return 0 } -check_proxy_alive() { - local ip="$1" - local iface="$2" - - # 1. ICMP Ping (首次成功即毫秒级返回;失败则补测一次防单包抖动) - if ping -c 1 -W 1 -I "$iface" "$ip" >/dev/null 2>&1; then - return 0 - fi - if [ "$STOP_REQUESTED" -eq 1 ]; then - return 0 - fi - if ping -c 1 -W 1 -I "$iface" "$ip" >/dev/null 2>&1; then - return 0 - fi - - # 2. ARP 互补探测 (防止旁路由禁 Ping 误报) - if command -v arping >/dev/null 2>&1; then - if arping -f -q -c 2 -w 1 -I "$iface" "$ip" >/dev/null 2>&1; then - return 0 - fi - else - ip neigh flush to "$ip" dev "$iface" >/dev/null 2>&1 - ping -c 1 -W 1 -I "$iface" "$ip" >/dev/null 2>&1 - if ip neigh show to "$ip" dev "$iface" 2>/dev/null | grep -qE "REACHABLE|DELAY|PROBE"; then - return 0 - fi - fi - - return 1 +is_nft_active() { + nft list tables inet 2>/dev/null | grep -q "^table inet ${UCI_CONFIG}$" } proxy_ip=$(uci -q get "$UCI_CONFIG.global.proxy_server_ip_addr") -conf_iface=$(uci -q get "$UCI_CONFIG.global.interface") -conf_iface="${conf_iface:-br-lan}" -probe_iface=$(resolve_probe_iface "$conf_iface") +probe_iface=$(resolve_proxy_iface "" "$proxy_ip") interval=$(get_uint_or_default "$(uci -q get "$UCI_CONFIG.global.monitor_interval")" 5 2) fail_threshold=$(get_uint_or_default "$(uci -q get "$UCI_CONFIG.global.monitor_fail_threshold")" 3 1) @@ -98,9 +59,10 @@ recover_threshold=$(get_uint_or_default "$(uci -q get "$UCI_CONFIG.global.monito [ -z "$proxy_ip" ] && exit 0 +echo "$$" > "$WD_PID_FILE" log_msg info "Watchdog started (target=$proxy_ip, iface=$probe_iface, interval=${interval}s, fail=$fail_threshold, recover=$recover_threshold)" -# 启动后先等待一个探测周期,确保主服务完全进入稳定运行态 +# 启动阶段已由 init 完成首次状态建立,进入常规周期轮询 interruptible_sleep "$interval" || exit 0 [ -f "$DEGRADED_FILE" ] && state="degraded" || state="online" @@ -108,33 +70,48 @@ fail_count=0 ok_count=0 while is_context_valid; do + [ -f "$DEGRADED_FILE" ] && state="degraded" || state="online" + probe_start=$(date +%s) if check_proxy_alive "$proxy_ip" "$probe_iface"; then fail_count=0 if [ "$state" = "degraded" ]; then ok_count=$((ok_count + 1)) log_msg debug "Watchdog: probe succeeded ($ok_count/$recover_threshold)" if [ "$ok_count" -ge "$recover_threshold" ]; then - acquire_lock - if ! is_context_valid; then - release_lock - break - fi - if [ -f "$DEGRADED_FILE" ]; then - if do_recover; then + if acquire_lock 0; then + if ! is_context_valid; then + release_lock + break + fi + if [ -f "$DEGRADED_FILE" ]; then + if do_recover; then + state="online" + ok_count=0 + fail_count=0 + else + log_msg error "Watchdog: recovery failed, staying in degraded mode" + fi + else state="online" ok_count=0 - fail_count=0 - else - log_msg error "Watchdog: recovery failed, staying in degraded mode" fi + release_lock else - state="online" - ok_count=0 + log_msg warn "Watchdog: failed to acquire lock for recovery, retrying next cycle" fi - release_lock fi else ok_count=0 + # 在线状态下若内核 nft 表被外部清空,自动自愈恢复 + if ! is_nft_active; then + if acquire_lock 0; then + if is_context_valid && [ ! -f "$DEGRADED_FILE" ] && ! is_nft_active; then + log_msg warn "Watchdog: nftables table missing while online, restoring rules..." + restore_nft_rules && add_route + fi + release_lock + fi + fi fi else [ "$STOP_REQUESTED" -eq 1 ] && break @@ -143,29 +120,38 @@ while is_context_valid; do fail_count=$((fail_count + 1)) log_msg warn "Watchdog: probe failed ($fail_count/$fail_threshold) for $proxy_ip via $probe_iface" if [ "$fail_count" -ge "$fail_threshold" ]; then - acquire_lock - if ! is_context_valid; then + if acquire_lock 0; then + if ! is_context_valid; then + release_lock + break + fi + if [ ! -f "$DEGRADED_FILE" ]; then + do_degrade + state="degraded" + fail_count=0 + ok_count=0 + else + state="degraded" + fail_count=0 + fi release_lock - break - fi - if [ ! -f "$DEGRADED_FILE" ]; then - do_degrade - state="degraded" - fail_count=0 - ok_count=0 else - state="degraded" - fail_count=0 + log_msg warn "Watchdog: failed to acquire lock for degrade, retrying next cycle" fi - release_lock fi else fail_count=0 fi fi - interruptible_sleep "$interval" || break + probe_end=$(date +%s) + elapsed=$((probe_end - probe_start)) + [ "$elapsed" -lt 0 ] && elapsed=0 + sleep_secs=$((interval - elapsed)) + [ "$sleep_secs" -lt 1 ] && sleep_secs=1 + interruptible_sleep "$sleep_secs" || break done +[ "$(cat "$WD_PID_FILE" 2>/dev/null)" = "$$" ] && rm -f "$WD_PID_FILE" log_msg info "Watchdog stopped" exit 0 diff --git a/luci-app-flowproxy/root/usr/share/rpcd/ucode/luci.flowproxy b/luci-app-flowproxy/root/usr/share/rpcd/ucode/luci.flowproxy index 5e0b3aebb..04d0544c7 100755 --- a/luci-app-flowproxy/root/usr/share/rpcd/ucode/luci.flowproxy +++ b/luci-app-flowproxy/root/usr/share/rpcd/ucode/luci.flowproxy @@ -7,6 +7,7 @@ import { connect } from 'ubus'; const UCI_CONFIG = 'flowproxy'; const STATE_FILE = '/var/run/flowproxy.running'; const DEGRADED_FILE = '/var/run/flowproxy.degraded'; +const GEN_FILE = '/var/run/flowproxy.gen'; const IP_CACHE = '/tmp/flowproxy/lan_ip.cache'; const LOG_FILE = '/var/log/flowproxy.log'; const NFT_TABLE = 'flowproxy'; @@ -19,30 +20,27 @@ function safe_trim(str) { const methods = { get_status: { call: function() { - // 1. 快速探测 + let uci_cursor = cursor(); + let monitor_enabled = int(uci_cursor.get(UCI_CONFIG, 'global', 'monitor_enabled') || '0'); + + // 1. 快速探测与 procd 实例核验 let is_running = access(STATE_FILE, 'f'); let is_degraded = access(DEGRADED_FILE, 'f'); - - // 2. 自愈:检查内核状态并同步标记文件 - let tcp_active = (system('nft list chain inet ' + NFT_TABLE + ' LAN_MARKFLOW_TCP >/dev/null 2>&1') === 0); - let udp_active = (system('nft list chain inet ' + NFT_TABLE + ' LAN_MARKFLOW_UDP >/dev/null 2>&1') === 0); - let real_running = (tcp_active || udp_active); - - if (real_running && !is_running) { - try { writefile(STATE_FILE, ''); } catch(e) {} - } else if (!real_running && is_running && !is_degraded) { - try { system('rm -f ' + STATE_FILE); } catch(e) {} - } - - // 3. IP 获取 (带缓存) + let has_gen = access(GEN_FILE, 'f'); + let watchdog_running = false; let lan_ip = readfile(IP_CACHE) || ''; - if (!lan_ip) { - try { - let ubus_conn = connect(); - if (ubus_conn) { + + try { + let ubus_conn = connect(); + if (ubus_conn) { + let svc = ubus_conn.call('service', 'list', { name: UCI_CONFIG }); + if (svc?.[UCI_CONFIG]?.instances?.watchdog?.running) { + watchdog_running = true; + } + + if (!lan_ip) { let ifaces = ubus_conn.call('network.interface', 'dump'); if (type(ifaces?.interface) === 'array') { - // 优先寻找名为 'lan' 的接口,或者寻找拥有 ipv4 地址的第一个非回环接口 let fallback_ip = ''; for (let iface in ifaces.interface) { if (iface.interface === 'lan' && iface['ipv4-address']?.[0]?.address) { @@ -55,22 +53,41 @@ const methods = { } if (!lan_ip) lan_ip = fallback_ip; } - if (lan_ip) { system('mkdir -p /tmp/flowproxy'); writefile(IP_CACHE, lan_ip); } - ubus_conn.disconnect(); } - } catch (e) {} + ubus_conn.disconnect(); + } + } catch (e) {} + + // 2. 自愈:检查内核状态并同步标记文件 + let tcp_active = (system('nft list chain inet ' + NFT_TABLE + ' LAN_MARKFLOW_TCP >/dev/null 2>&1') === 0); + let udp_active = (system('nft list chain inet ' + NFT_TABLE + ' LAN_MARKFLOW_UDP >/dev/null 2>&1') === 0); + let real_running = (tcp_active || udp_active); + + let in_startup_grace = false; + if (is_running) { + let st = stat(STATE_FILE); + let now = time(); + if (st && st.mtime && (now - st.mtime) >= 0 && (now - st.mtime) < 5) { + in_startup_grace = true; + } } - let uci_cursor = cursor(); + if (real_running && !is_running && has_gen) { + try { writefile(STATE_FILE, ''); } catch(e) {} + is_running = true; + } else if (!real_running && !watchdog_running && !in_startup_grace && (is_running || is_degraded)) { + try { system('rm -f ' + STATE_FILE + ' ' + DEGRADED_FILE); } catch(e) {} + is_running = false; + is_degraded = false; + } let proxy_server_ip_addr = uci_cursor.get(UCI_CONFIG, 'global', 'proxy_server_ip_addr') || ''; - let dns_running = (uci_cursor.get(UCI_CONFIG, 'dns_backup') ? 1 : 0); - let monitor_enabled = int(uci_cursor.get(UCI_CONFIG, 'global', 'monitor_enabled') || '0'); - let degraded_active = (is_degraded && is_running && !real_running) ? 1 : 0; + let degraded_active = (!real_running && is_degraded && is_running && monitor_enabled && (watchdog_running || in_startup_grace)) ? 1 : 0; + let dns_running = (real_running && uci_cursor.get(UCI_CONFIG, 'dns_backup')) ? 1 : 0; return { running: (real_running || degraded_active) ? 1 : 0, @@ -81,7 +98,7 @@ const methods = { proxy_server_ip_addr: proxy_server_ip_addr, proxy_server_dns_port: uci_cursor.get(UCI_CONFIG, 'global', 'proxy_server_dns_port') || '5353', lan_ip: safe_trim(lan_ip), - interface: uci_cursor.get(UCI_CONFIG, 'global', 'interface') || 'br-lan', + interface: uci_cursor.get(UCI_CONFIG, 'global', 'interface') || 'auto', traffic_mark: uci_cursor.get(UCI_CONFIG, 'global', 'traffic_mark') || '0x666', nft: { tcp: tcp_active ? 1 : 0, udp: udp_active ? 1 : 0 } }; @@ -124,7 +141,9 @@ const methods = { call: function() { system('mkdir -p /tmp/flowproxy'); system('FLOWPROXY_PREVIEW=1 /usr/share/flowproxy/generate_nft.sh 2>&1'); - return { config: safe_trim(readfile('/tmp/flowproxy/nft.conf') || '') }; + let preview = safe_trim(readfile('/tmp/flowproxy/nft.preview.conf') || ''); + system('rm -f /tmp/flowproxy/nft.preview.conf'); + return { config: preview }; } }, diff --git a/luci-app-footstrap-files/Makefile b/luci-app-footstrap-files/Makefile index 0322fbc86..ee4a5e15d 100644 --- a/luci-app-footstrap-files/Makefile +++ b/luci-app-footstrap-files/Makefile @@ -17,7 +17,7 @@ LUCI_NAME:=luci-app-footstrap-files FOOTSTRAP_VERSION?= ifneq ($(FOOTSTRAP_VERSION),) PKG_VERSION:=$(FOOTSTRAP_VERSION) -PKG_RELEASE:=2 +PKG_RELEASE:=3 endif LUCI_TITLE:=A file manager for the Footstrap theme diff --git a/luci-app-gately/po/zh-cn b/luci-app-footstrap-files/po/zh-cn similarity index 100% rename from luci-app-gately/po/zh-cn rename to luci-app-footstrap-files/po/zh-cn diff --git a/luci-app-footstrap-files/po/zh_Hans/footstrap-files.po b/luci-app-footstrap-files/po/zh_Hans/footstrap-files.po new file mode 100644 index 000000000..241d7f8d9 --- /dev/null +++ b/luci-app-footstrap-files/po/zh_Hans/footstrap-files.po @@ -0,0 +1,409 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1694 +msgid "%d item(s) to copy" +msgstr "要复制 %d 个项目" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1694 +msgid "%d item(s) to move" +msgstr "要移动 %d 个项目" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1279 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1706 +msgid "%d selected" +msgstr "已选择 %d 个" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:987 +msgid "%s could not be removed (%s). Delete it and everything inside?" +msgstr "%s 无法移除(%s)。要删除它及其内部的所有内容吗?" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:978 +msgid "%s is a directory. Delete it and everything inside?" +msgstr "%s 是一个目录。要删除它及其内部的所有内容吗?" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:608 +msgid "%s is not text; opening it as hex." +msgstr "%s 不是文本文件;将以十六进制方式打开。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1168 +msgid "%s was not moved" +msgstr "%s 未被移动" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:931 +msgid "%s was not pasted" +msgstr "%s 未被粘贴" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:947 +msgid "A name may not contain a slash." +msgstr "名称不能包含斜杠。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:449 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:508 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:559 +msgid "Actions" +msgstr "操作" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:864 +msgid "Apply" +msgstr "应用" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:852 +msgid "Apply to everything inside" +msgstr "应用到内部所有内容" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:856 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1696 +msgid "Cancel" +msgstr "取消" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:883 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:884 +msgid "Cannot change %s" +msgstr "无法更改 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:874 +msgid "Cannot change permissions" +msgstr "无法更改权限" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1002 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1003 +msgid "Cannot create directory" +msgstr "无法创建目录" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1011 +msgid "Cannot create file" +msgstr "无法创建文件" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:991 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:992 +msgid "Cannot delete %s" +msgstr "无法删除 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:574 +msgid "Cannot download %s" +msgstr "无法下载 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:589 +msgid "Cannot edit %s" +msgstr "无法编辑 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1171 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1172 +msgid "Cannot move %s" +msgstr "无法移动 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:747 +msgid "Cannot open %s" +msgstr "无法打开 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:695 +msgid "Cannot open the editor" +msgstr "无法打开编辑器" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:923 +msgid "Cannot paste" +msgstr "无法粘贴" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:934 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:935 +msgid "Cannot paste %s" +msgstr "无法粘贴 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:349 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:368 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:696 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:777 +msgid "Cannot read %s" +msgstr "无法读取 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:947 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:951 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:952 +msgid "Cannot rename %s" +msgstr "无法重命名 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:807 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:826 +msgid "Cannot save %s" +msgstr "无法保存 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1035 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1038 +msgid "Cannot upload %s" +msgstr "无法上传 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:661 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:769 +msgid "Close" +msgstr "关闭" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1280 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1301 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1708 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1722 +msgid "Copy" +msgstr "复制" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:517 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1283 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1304 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1710 +msgid "Delete" +msgstr "删除" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:976 +msgid "Delete %d item(s)? This cannot be undone." +msgstr "删除 %d 个项目?此操作无法撤销。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1724 +msgid "Delete selected" +msgstr "删除所选" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:445 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:498 +msgid "Directory" +msgstr "目录" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1711 +msgid "Done" +msgstr "完成" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:511 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1292 +msgid "Download" +msgstr "下载" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:509 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1287 +msgid "Edit" +msgstr "编辑" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:498 +msgid "File" +msgstr "文件" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1783 +msgid "Files" +msgstr "文件" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:649 +msgid "Find and replace" +msgstr "查找和替换" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1686 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1717 +msgid "Go" +msgstr "前往" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1770 +msgid "List" +msgstr "列表" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1740 +msgid "Long press a file for actions" +msgstr "长按文件以进行操作" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:448 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:504 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:558 +msgid "Modified" +msgstr "修改时间" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1281 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1302 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1709 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1723 +msgid "Move" +msgstr "移动" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1162 +msgid "Move %d item(s) to %s?" +msgstr "要将 %d 个项目移动到 %s 吗?" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1163 +msgid "Moving %d item(s)…" +msgstr "正在移动 %d 个项目…" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:440 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:481 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:554 +msgid "Name" +msgstr "名称" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:999 +msgid "New directory name:" +msgstr "新目录名称:" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1317 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1721 +msgid "New file" +msgstr "新建文件" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1007 +msgid "New file name:" +msgstr "新文件名称:" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1316 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1720 +msgid "New folder" +msgstr "新建文件夹" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:894 +msgid "Nothing selected" +msgstr "未选择任何内容" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1287 +msgid "Open" +msgstr "打开" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1291 +msgid "Open as hex" +msgstr "以十六进制打开" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:848 +msgid "Owner (user:group)" +msgstr "所有者(用户:组)" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1318 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1695 +msgid "Paste here" +msgstr "粘贴到此处" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1748 +msgid "Path" +msgstr "路径" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:447 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:500 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:557 +msgid "Permissions" +msgstr "权限" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:844 +msgid "Permissions (octal)" +msgstr "权限(八进制)" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:874 +msgid "Permissions must be three or four octal digits, e.g. 644." +msgstr "权限必须为三到四位八进制数字,例如 644。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:513 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1294 +msgid "Properties" +msgstr "属性" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:842 +msgid "Properties of %s" +msgstr "%s 的属性" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1321 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1719 +msgid "Refresh" +msgstr "刷新" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:515 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1293 +msgid "Rename" +msgstr "重命名" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:945 +msgid "Rename \"%s\" to:" +msgstr "将“%s”重命名为:" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:656 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:764 +msgid "Save" +msgstr "保存" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:805 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:823 +msgid "Saved." +msgstr "已保存。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:788 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:817 +msgid "Saving…" +msgstr "正在保存…" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:797 +msgid "Saving… %d%%" +msgstr "正在保存… %d%%" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1298 +msgid "Select" +msgstr "选择" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:487 +msgid "Select %s" +msgstr "选择 %s" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1299 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1320 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1707 +msgid "Select all" +msgstr "全选" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:446 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:499 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:556 +msgid "Size" +msgstr "大小" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:932 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1169 +msgid "Something with that name is already here, and nothing is overwritten." +msgstr "已存在同名项目,且未覆盖任何内容。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:923 +msgid "Source and destination are the same directory." +msgstr "源目录和目标目录相同。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:590 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:748 +msgid "The file is %.1f MB; this editor opens files up to 1 MB." +msgstr "该文件为 %.1f MB;此编辑器最多可打开 1 MB 的文件。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:532 +msgid "This directory is empty." +msgstr "此目录为空。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:894 +msgid "Tick the files you want first." +msgstr "请先勾选您需要的文件。" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1770 +msgid "Tiles" +msgstr "平铺" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:445 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:498 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:555 +msgid "Type" +msgstr "类型" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1687 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1718 +msgid "Up" +msgstr "上级" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1728 +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1731 +msgid "Upload" +msgstr "上传" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1037 +msgid "Uploaded %d of %d…" +msgstr "已上传 %d/%d…" + +#: htdocs/luci-static/resources/view/footstrap-files/browser.js:1026 +msgid "Uploading %d file(s)…" +msgstr "正在上传 %d 个文件…" diff --git a/luci-app-gately/Makefile b/luci-app-gately/Makefile index af914890c..d565447e9 100644 --- a/luci-app-gately/Makefile +++ b/luci-app-gately/Makefile @@ -1,23 +1,74 @@ -# SPDX-License-Identifier: GPL-3.0-only -# -# Copyright (C) 2026 OpenWrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-gately +PKG_VERSION:=0.6.6 +PKG_RELEASE:=4 -LUCI_TITLE:=LuCI Support for Gately -LUCI_DEPENDS:=+gately +PKG_MAINTAINER:=wangwanjie +PKG_LICENSE:=Apache-2.0 -define Package/$(PKG_NAME)/prerm +PKG_SOURCE:=gately-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/wangwanjie/gately/tar.gz/refs/tags/v$(PKG_VERSION)? +PKG_HASH:=skip + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-app-gately + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=LuCI support for Gately + URL:=https://github.com/wangwanjie/gately + DEPENDS:=+luci-base +gately + PKGARCH:=all +endef + +define Package/luci-app-gately/description + LuCI support for Gately: service status, start / stop, start on boot, + admin port and a shortcut to the Gately admin interface. +endef + +define Package/luci-app-gately/conffiles +/etc/config/gately +/etc/gately +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR)/_core + tar -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip-components=1 \ + gately-$(PKG_VERSION)/deploy/openwrt/luci \ + gately-$(PKG_VERSION)/deploy/openwrt/gately.init +endef + +define Build/Configure +endef + +define Build/Compile +endef + +# 2. 安装与打包:铺装 LuCI 页面、rpcd 脚本以及 procd 启动脚本 +define Package/luci-app-gately/install + $(CP) $(PKG_BUILD_DIR)/deploy/openwrt/luci/root/* $(1)/ + chmod 0755 $(1)/usr/libexec/rpcd/luci.gately + + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) $(PKG_BUILD_DIR)/deploy/openwrt/gately.init $(1)/etc/init.d/gately + + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + $(STAGING_DIR_HOSTPKG)/bin/po2lmo $(PKG_BUILD_DIR)/deploy/openwrt/luci/po/zh-cn/gately.po $(1)/usr/lib/lua/luci/i18n/gately.zh-cn.lmo +endef + +define Package/luci-app-gately/postinst #!/bin/sh -rm -f /tmp/gately_info_cache 2>/dev/null +if [ ! -f "$${IPKG_INSTROOT}/etc/config/gately" ]; then + mkdir -p "$${IPKG_INSTROOT}/etc/config" + printf "\nconfig gately 'main'\n" > "$${IPKG_INSTROOT}/etc/config/gately" +fi +[ -n "${IPKG_INSTROOT}" ] || { rm -f /tmp/luci-indexcache.* + rm -rf /tmp/luci-modulecache/ + /etc/init.d/rpcd reload 2>/dev/null +} exit 0 endef -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature +$(eval $(call BuildPackage,luci-app-gately)) diff --git a/luci-app-gately/htdocs/luci-static/resources/view/gately/log.js b/luci-app-gately/htdocs/luci-static/resources/view/gately/log.js deleted file mode 100644 index 161ba8497..000000000 --- a/luci-app-gately/htdocs/luci-static/resources/view/gately/log.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; -'require view'; -'require rpc'; -'require poll'; -'require dom'; -'require ui'; - -var callGetLog = rpc.declare({ object: 'luci.gately', method: 'get_log', expect: { } }); - -return view.extend({ - render: function() { - var logView = E('textarea', { - id: 'logView', - style: 'width:100%; height:500px; background:#f4f4f4; color:#333; padding:10px; border:1px solid #ccc; font-family:monospace;', - readonly: true - }, [ _('Loading logs...') ]); - - var container = E('div', { class: 'cbi-map' }, [ - E('h2', {}, _('Gately') + ' - ' + _('Log')), - E('div', { class: 'cbi-map-descr' }, _('Real-time query of the Gately running logs to diagnose DDNS updates, STUN traversal, and reverse proxy rules.')), - E('fieldset', { class: 'cbi-section' }, [ - E('legend', {}, _('Logs')), - E('div', { class: 'cbi-section-node' }, logView) - ]) - ]); - - poll.add(function() { - return callGetLog().then(function(res) { - var textarea = document.getElementById('logView'); - if (textarea && res && typeof(res.log) === 'string') { - var isAtBottom = (textarea.scrollHeight - textarea.clientHeight <= textarea.scrollTop + 1); - textarea.value = res.log || _('No log available.'); - if (isAtBottom) textarea.scrollTop = textarea.scrollHeight; - } - }); - }, 5); - - return container; - }, - - handleSaveApply: null, - handleSave: null, - handleReset: null -}); diff --git a/luci-app-gately/htdocs/luci-static/resources/view/gately/settings.js b/luci-app-gately/htdocs/luci-static/resources/view/gately/settings.js deleted file mode 100644 index 5b88a8bf6..000000000 --- a/luci-app-gately/htdocs/luci-static/resources/view/gately/settings.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; -'require view'; -'require form'; - -return view.extend({ - render: function() { - var m, s, o; - - m = new form.Map('gately', _('Gately Settings'), _('Gately is an open-source, auditable network gateway toolkit (Lucky alternative) integrating DDNS, STUN, port forwarding, reverse proxy, ACME certificates, and WAF.')); - - s = m.section(form.NamedSection, 'main', 'gately', _('Global Settings')); - s.anonymous = true; - s.addremove = false; - - o = s.option(form.Flag, 'enabled', _('Enable')); - o.rmempty = false; - - o = s.option(form.Value, 'configdir', _('Config Directory Path')); - o.rmempty = false; - o.default = '/etc/gately'; - o.placeholder = '/etc/gately'; - - o = s.option(form.Value, 'initial_password', _('Initial Admin Password')); - o.password = true; - o.rmempty = false; - o.default = 'admin123456'; - o.placeholder = 'admin123456'; - o.datatype = 'minlength(8)'; - o.description = _('Admin password (at least 8 characters, default: admin123456). Modifying this and clicking Save & Apply will update the admin password immediately.'); - - s = m.section(form.TypedSection, 'gately', _('Admin Panel Settings')); - s.anonymous = true; - s.addremove = false; - - o = s.option(form.Value, 'admin_port', _('Admin Web Listen Port')); - o.datatype = 'port'; - o.rmempty = false; - o.default = '16680'; - o.placeholder = '16680'; - - o = s.option(form.Value, 'admin_safe_url', _('Admin Safe URL')); - o.placeholder = '/secret-entry'; - o.validate = function(section_id, value) { - if (!value) return true; - var v = value.trim(); - if (v.charAt(0) !== '/') v = '/' + v; - if (v.length < 4) { - return _('Safe URL must be at least 3 characters after "/"'); - } - if (v === '/api' || v.indexOf('/api/') === 0 || v.indexOf('/assets') === 0 || /[ ?#]/.test(v)) { - return _('Safe URL cannot start with /api or /assets, nor contain spaces, ? or #'); - } - return true; - }; - - o = s.option(form.Flag, 'admin_internet', _('Allow Internet Access')); - o.rmempty = false; - o.default = '0'; - - return m.render(); - } -}); diff --git a/luci-app-gately/htdocs/luci-static/resources/view/gately/status.js b/luci-app-gately/htdocs/luci-static/resources/view/gately/status.js deleted file mode 100644 index 06d5ef68e..000000000 --- a/luci-app-gately/htdocs/luci-static/resources/view/gately/status.js +++ /dev/null @@ -1,184 +0,0 @@ -'use strict'; -'require view'; -'require rpc'; -'require ui'; -'require dom'; -'require poll'; - -var callGetInfo = rpc.declare({ object: 'luci.gately', method: 'get_info', expect: { } }); -var callGetStatus = rpc.declare({ object: 'luci.gately', method: 'get_status', expect: { } }); -var callService = rpc.declare({ object: 'luci.gately', method: 'service', params: ['action'], expect: { } }); - -return view.extend({ - load: function() { - return callGetInfo(); - }, - - handleSaveApply: null, - handleSave: null, - handleReset: null, - - handleServiceAction: function(action) { - ui.showModal(null, [ E('p', { class: 'spinning' }, _('Executing service action...')) ]); - var self = this; - var startTime = Date.now(); - var shouldBeRunning = (action === 'start' || action === 'restart'); - - return callService(action).then(function() { - function waitForReady() { - if (Date.now() - startTime > 20000) { - ui.hideModal(); - ui.addNotification(null, E('p', _('Operation timeout, please refresh the page')), 'error'); - return; - } - callGetStatus().then(function(res) { - var isRunning = res && res.state && res.state !== 'stopped'; - if (shouldBeRunning ? isRunning : !isRunning) { - ui.hideModal(); - ui.addNotification(null, E('p', _('Service action executed successfully')), 'info'); - self.updateStatus(res); - if (isRunning) { - callGetInfo().then(function(info) { - self.updateInfo(info); - }); - } - } else { - setTimeout(waitForReady, 500); - } - }); - } - waitForReady(); - }); - }, - - updateStatus: function(res) { - var statusEl = document.getElementById('_status'); - if (statusEl) { - var isRunning = res && res.running; - dom.content(statusEl, [ - E('span', { 'style': 'color:' + (isRunning ? 'green' : 'red') + ';font-weight:bold;' }, - isRunning ? _('Running') : _('Not Running') - ), - ' ', - E('button', { - 'class': 'cbi-button cbi-button-' + (isRunning ? 'reset' : 'apply'), - 'click': ui.createHandlerFn(this, function() { - return this.handleServiceAction(isRunning ? 'stop' : 'start'); - }) - }, isRunning ? _('Stop') : _('Start')), - ' ', - E('button', { - 'class': 'cbi-button cbi-button-action', - 'click': ui.createHandlerFn(this, function() { - return this.handleServiceAction('restart'); - }) - }, _('Restart')) - ]); - } - }, - - updateInfo: function(info) { - if (!info) return; - var gatelyInfo = {}; - try { gatelyInfo = JSON.parse(info.gatelyInfo || '{}'); } catch(e) {} - - var el; - el = document.getElementById('_gatelyVersion'); - if (el) dom.content(el, gatelyInfo.Version || '-'); - - el = document.getElementById('_gatelyArch'); - if (el) dom.content(el, info.gatelyArch || '-'); - - el = document.getElementById('_gatelyUser'); - if (el) dom.content(el, info.adminUser || 'admin'); - - el = document.getElementById('_gatelyPassword'); - if (el) dom.content(el, info.adminPassword || 'admin123456'); - - if (info.running && info.adminPort) { - var url = 'http://' + window.location.hostname + ':' + info.adminPort + (info.adminSafeUrl || ''); - el = document.getElementById('_gatelyAdminLink'); - if (el) dom.content(el, E('a', { href: url, target: '_blank', style: 'font-weight:bold; color:blue;' }, url)); - } else { - el = document.getElementById('_gatelyAdminLink'); - if (el) dom.content(el, E('em', {}, _('Service not running'))); - } - }, - - render: function(info) { - var running = info.running; - - var container = E('div', { class: 'cbi-map' }, [ - E('h2', {}, _('Gately') + ' - ' + _('Overview')), - E('div', { class: 'cbi-map-descr' }, _('Overview of your Gately network gateway service status, real-time statistics, and control settings.')) - ]); - - var gatelyInfo = {}; - try { gatelyInfo = JSON.parse(info.gatelyInfo || '{}'); } catch(e) {} - - var adminLinkContent; - if (running && info.adminPort) { - var url = 'http://' + window.location.hostname + ':' + info.adminPort + (info.adminSafeUrl || ''); - adminLinkContent = E('a', { href: url, target: '_blank', style: 'font-weight:bold; color:blue;' }, url); - } else if (running) { - adminLinkContent = E('em', {}, _('Loading...')); - } else { - adminLinkContent = E('em', {}, _('Service not running')); - } - - container.appendChild( - E('fieldset', { class: 'cbi-section' }, [ - E('legend', {}, _('Service Status')), - E('div', { class: 'cbi-section-node' }, [ - E('table', { class: 'table' }, [ - E('tr', { class: 'tr' }, [ - E('td', { class: 'td left', width: '33%' }, _('Current Status')), - E('td', { class: 'td left', id: '_status' }, E('em', {}, _('Loading...'))) - ]) - ]) - ]) - ]) - ); - - var infoSection = E('fieldset', { class: 'cbi-section' }, [ - E('legend', {}, _('Application Information')), - E('div', { class: 'cbi-section-node' }, [ - E('table', { class: 'table cbi-section-table' }, [ - E('tr', { class: 'tr' }, [ - E('td', { class: 'td left', width: '33%' }, _('Version')), - E('td', { class: 'td left', id: '_gatelyVersion' }, gatelyInfo.Version || '-') - ]), - E('tr', { class: 'tr' }, [ - E('td', { class: 'td left' }, _('Architecture')), - E('td', { class: 'td left', id: '_gatelyArch' }, info.gatelyArch || '-') - ]), - E('tr', { class: 'tr' }, [ - E('td', { class: 'td left' }, _('Admin Account')), - E('td', { class: 'td left', id: '_gatelyUser' }, info.adminUser || 'admin') - ]), - E('tr', { class: 'tr' }, [ - E('td', { class: 'td left' }, _('Admin Password')), - E('td', { class: 'td left', id: '_gatelyPassword' }, info.adminPassword || 'admin123456') - ]), - E('tr', { class: 'tr' }, [ - E('td', { class: 'td left' }, _('Admin Panel')), - E('td', { class: 'td left', id: '_gatelyAdminLink' }, adminLinkContent) - ]) - ]) - ]) - ]); - - container.appendChild(infoSection); - this.updateStatus(info); - - var self = this; - poll.add(function() { - return callGetInfo().then(function(res) { - self.updateStatus(res); - self.updateInfo(res); - }); - }, 5); - - return container; - } -}); diff --git a/luci-app-gately/po/templates/gately.pot b/luci-app-gately/po/templates/gately.pot deleted file mode 100644 index ddbd3c5e6..000000000 --- a/luci-app-gately/po/templates/gately.pot +++ /dev/null @@ -1,122 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8\n" - -msgid "Gately" -msgstr "" - -msgid "Overview" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "Log" -msgstr "" - -msgid "Overview of your Gately network gateway service status, real-time statistics, and control settings." -msgstr "" - -msgid "Service Status" -msgstr "" - -msgid "Current Status" -msgstr "" - -msgid "Loading..." -msgstr "" - -msgid "Running" -msgstr "" - -msgid "Not Running" -msgstr "" - -msgid "Start" -msgstr "" - -msgid "Stop" -msgstr "" - -msgid "Restart" -msgstr "" - -msgid "Service not running" -msgstr "" - -msgid "Application Information" -msgstr "" - -msgid "Version" -msgstr "" - -msgid "Architecture" -msgstr "" - -msgid "Admin Account" -msgstr "" - -msgid "Admin Password" -msgstr "" - -msgid "Admin Panel" -msgstr "" - -msgid "Executing service action..." -msgstr "" - -msgid "Operation timeout, please refresh the page" -msgstr "" - -msgid "Service action executed successfully" -msgstr "" - -msgid "Gately Settings" -msgstr "" - -msgid "Gately is an open-source, auditable network gateway toolkit (Lucky alternative) integrating DDNS, STUN, port forwarding, reverse proxy, ACME certificates, and WAF." -msgstr "" - -msgid "Global Settings" -msgstr "" - -msgid "Enable" -msgstr "" - -msgid "Config Directory Path" -msgstr "" - -msgid "Initial Admin Password" -msgstr "" - -msgid "Admin password (at least 8 characters, default: admin123456). Modifying this and clicking Save & Apply will update the admin password immediately." -msgstr "" - -msgid "Admin Panel Settings" -msgstr "" - -msgid "Admin Web Listen Port" -msgstr "" - -msgid "Admin Safe URL" -msgstr "" - -msgid "Safe URL must be at least 3 characters after \"/\"" -msgstr "" - -msgid "Safe URL cannot start with /api or /assets, nor contain spaces, ? or #" -msgstr "" - -msgid "Allow Internet Access" -msgstr "" - -msgid "Real-time query of the Gately running logs to diagnose DDNS updates, STUN traversal, and reverse proxy rules." -msgstr "" - -msgid "Logs" -msgstr "" - -msgid "Loading logs..." -msgstr "" - -msgid "No log available." -msgstr "" diff --git a/luci-app-gately/po/zh_Hans/gately.po b/luci-app-gately/po/zh_Hans/gately.po deleted file mode 100644 index 70b6a26b1..000000000 --- a/luci-app-gately/po/zh_Hans/gately.po +++ /dev/null @@ -1,122 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8\n" - -msgid "Gately" -msgstr "Gately 网关" - -msgid "Overview" -msgstr "状态总览" - -msgid "Settings" -msgstr "常规设置" - -msgid "Log" -msgstr "运行日志" - -msgid "Overview of your Gately network gateway service status, real-time statistics, and control settings." -msgstr "查看 Gately 网络网关工具集的运行状态、版本信息及管理面板入口。" - -msgid "Service Status" -msgstr "服务状态" - -msgid "Current Status" -msgstr "当前状态" - -msgid "Loading..." -msgstr "加载中..." - -msgid "Running" -msgstr "运行中" - -msgid "Not Running" -msgstr "未运行" - -msgid "Start" -msgstr "启动" - -msgid "Stop" -msgstr "停止" - -msgid "Restart" -msgstr "重启" - -msgid "Service not running" -msgstr "服务未运行" - -msgid "Application Information" -msgstr "程序信息" - -msgid "Version" -msgstr "当前版本" - -msgid "Architecture" -msgstr "系统架构" - -msgid "Admin Account" -msgstr "管理员账号" - -msgid "Admin Password" -msgstr "管理员密码" - -msgid "Admin Panel" -msgstr "管理后台" - -msgid "Executing service action..." -msgstr "正在执行服务操作..." - -msgid "Operation timeout, please refresh the page" -msgstr "操作超时,请刷新页面重试" - -msgid "Service action executed successfully" -msgstr "服务操作执行成功" - -msgid "Gately Settings" -msgstr "Gately 设置" - -msgid "Gately is an open-source, auditable network gateway toolkit (Lucky alternative) integrating DDNS, STUN, port forwarding, reverse proxy, ACME certificates, and WAF." -msgstr "Gately 是开源、可审计的网络网关工具集(Lucky 的开源替代),集成 DDNS、STUN 穿透、端口转发、反向代理、SSL 证书与 WAF 防火墙。" - -msgid "Global Settings" -msgstr "全局设置" - -msgid "Enable" -msgstr "启用服务" - -msgid "Config Directory Path" -msgstr "配置目录路径" - -msgid "Initial Admin Password" -msgstr "初始管理员密码" - -msgid "Admin password (at least 8 characters, default: admin123456). Modifying this and clicking Save & Apply will update the admin password immediately." -msgstr "管理员密码(至少 8 位字符,默认:admin123456)。修改此项并点击“保存并应用”将立即更新 admin 密码。" - -msgid "Admin Panel Settings" -msgstr "管理后台设置" - -msgid "Admin Web Listen Port" -msgstr "管理后台监听端口" - -msgid "Admin Safe URL" -msgstr "安全入口路径 (SafePath)" - -msgid "Safe URL must be at least 3 characters after \"/\"" -msgstr "安全入口在“/”之后至少需要 3 个字符" - -msgid "Safe URL cannot start with /api or /assets, nor contain spaces, ? or #" -msgstr "安全入口不能以 /api 或 /assets 开头,且不能包含空格、? 或 #" - -msgid "Allow Internet Access" -msgstr "允许外网访问管理后台" - -msgid "Real-time query of the Gately running logs to diagnose DDNS updates, STUN traversal, and reverse proxy rules." -msgstr "实时查询 Gately 运行日志,方便排查 DDNS 更新、STUN 穿透及反向代理规则执行情况。" - -msgid "Logs" -msgstr "日志内容" - -msgid "Loading logs..." -msgstr "正在加载日志..." - -msgid "No log available." -msgstr "暂无日志记录。" diff --git a/luci-app-gately/root/etc/uci-defaults/66_luci-gately b/luci-app-gately/root/etc/uci-defaults/66_luci-gately deleted file mode 100644 index 40161724f..000000000 --- a/luci-app-gately/root/etc/uci-defaults/66_luci-gately +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete gately.main.listen - commit gately -EOF - -[ -z "$(uci -q get gately.main.configdir)" ] && uci -q set gately.main.configdir='/etc/gately' -[ -z "$(uci -q get gately.main.initial_password)" ] && uci -q set gately.main.initial_password='admin123456' -[ -z "$(uci -q get gately.main.admin_port)" ] && uci -q set gately.main.admin_port='16680' -[ -z "$(uci -q get gately.main.admin_internet)" ] && uci -q set gately.main.admin_internet='0' -uci -q commit gately - -rm -f /tmp/luci-indexcache* 2>/dev/null -rm -f /tmp/luci-modulecache/* 2>/dev/null -rm -f /tmp/gately_info_cache 2>/dev/null -exit 0 diff --git a/luci-app-gately/root/usr/share/luci/menu.d/luci-app-gately.json b/luci-app-gately/root/usr/share/luci/menu.d/luci-app-gately.json deleted file mode 100644 index 998bc6359..000000000 --- a/luci-app-gately/root/usr/share/luci/menu.d/luci-app-gately.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "admin/services/gately": { - "title": "Gately", - "order": 60, - "action": { - "type": "firstchild" - }, - "depends": { - "acl": [ "luci-app-gately" ], - "uci": { "gately": true } - } - }, - "admin/services/gately/status": { - "title": "Overview", - "order": 10, - "action": { - "type": "view", - "path": "gately/status" - } - }, - "admin/services/gately/settings": { - "title": "Settings", - "order": 20, - "action": { - "type": "view", - "path": "gately/settings" - } - }, - "admin/services/gately/log": { - "title": "Log", - "order": 30, - "action": { - "type": "view", - "path": "gately/log" - } - } -} diff --git a/luci-app-gately/root/usr/share/rpcd/acl.d/luci-app-gately.json b/luci-app-gately/root/usr/share/rpcd/acl.d/luci-app-gately.json deleted file mode 100644 index c46dbdeb4..000000000 --- a/luci-app-gately/root/usr/share/rpcd/acl.d/luci-app-gately.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "luci-app-gately": { - "description": "Grant UCI and UBUS access for luci-app-gately", - "read": { - "ubus": { - "luci.gately": [ "get_info", "get_status", "get_log" ] - }, - "uci": [ "gately" ], - "file": { - "/etc/init.d/gately": [ "exec" ] - } - }, - "write": { - "ubus": { - "luci.gately": [ "service" ] - }, - "uci": [ "gately" ], - "file": { - "/tmp/gately_info_cache": [ "write" ] - } - } - } -} diff --git a/luci-app-gately/root/usr/share/rpcd/ucode/luci.gately b/luci-app-gately/root/usr/share/rpcd/ucode/luci.gately deleted file mode 100644 index 5de4eae09..000000000 --- a/luci-app-gately/root/usr/share/rpcd/ucode/luci.gately +++ /dev/null @@ -1,181 +0,0 @@ -#!/usr/bin/ucode - -'use strict'; - -import { access, popen, readfile } from 'fs'; -import { cursor } from 'uci'; - -const BIN_PATH = '/usr/bin/gately'; -const INIT_SCRIPT = '/etc/init.d/gately'; - -function get_uci_config() { - let c = cursor(); - c.load('gately'); - let enabled = c.get('gately', 'main', 'enabled') || '0'; - let configdir = c.get('gately', 'main', 'configdir') || '/etc/gately'; - let initial_password = c.get('gately', 'main', 'initial_password') || 'admin123456'; - let admin_port = c.get('gately', 'main', 'admin_port') || '16680'; - let admin_safe_url = c.get('gately', 'main', 'admin_safe_url') || ''; - let admin_internet = c.get('gately', 'main', 'admin_internet') || '0'; - return { - enabled: (enabled === '1'), - configdir: configdir, - initial_password: initial_password, - admin_port: admin_port, - admin_safe_url: admin_safe_url, - admin_internet: (admin_internet === '1') - }; -} - -function is_running() { - let p = popen('pgrep -f "^/usr/bin/gately" 2>/dev/null'); - if (!p) return { running: false, pid: null }; - let line = trim(p.read('line') || ''); - p.close(); - if (length(line) > 0) { - return { running: true, pid: line }; - } - return { running: false, pid: null }; -} - -function get_version_info() { - if (!access(BIN_PATH, 'x')) { - return { version: '-', commit: '-', go: '-' }; - } - let p = popen(BIN_PATH + ' -version 2>/dev/null'); - if (!p) { - return { version: '-', commit: '-', go: '-' }; - } - let raw = trim(p.read('all') || ''); - p.close(); - let parsed = {}; - try { - parsed = json(raw); - } catch (e) { - parsed = { version: raw || '-' }; - } - return parsed; -} - -function get_arch() { - let p = popen('uname -m 2>/dev/null'); - if (!p) return '-'; - let arch = trim(p.read('line') || '-'); - p.close(); - return arch; -} - -function read_gately_json(configdir) { - let path = configdir + '/gately.json'; - if (!access(path, 'r')) { - return {}; - } - let content = readfile(path); - if (!content) return {}; - try { - return json(content); - } catch (e) { - return {}; - } -} - -function read_account_json(configdir) { - let path = configdir + '/account.json'; - if (!access(path, 'r')) { - return {}; - } - let content = readfile(path); - if (!content) return {}; - try { - return json(content); - } catch (e) { - return {}; - } -} - -function parse_port_from_listen(listen_str) { - if (!listen_str) return '16680'; - let idx = rindex(listen_str, ':'); - if (idx >= 0 && idx < length(listen_str) - 1) { - return substr(listen_str, idx + 1); - } - return listen_str; -} - -const methods = { - get_status: { - call: function() { - let st = is_running(); - return { - running: st.running, - pid: st.pid, - state: st.running ? 'running' : 'stopped' - }; - } - }, - - get_info: { - call: function() { - let uci_cfg = get_uci_config(); - let st = is_running(); - let ver = get_version_info(); - let arch = get_arch(); - let settings = read_gately_json(uci_cfg.configdir); - let account = read_account_json(uci_cfg.configdir); - - let admin_port = uci_cfg.admin_port || parse_port_from_listen(settings.listen) || '16680'; - let safe_path = uci_cfg.admin_safe_url || settings.safePath || ''; - if (length(safe_path) > 0 && substr(safe_path, 0, 1) !== '/') { - safe_path = '/' + safe_path; - } - let admin_user = account.username || 'admin'; - let admin_password = uci_cfg.initial_password || 'admin123456'; - - return { - running: st.running, - pid: st.pid, - gatelyArch: arch, - adminUser: admin_user, - adminPassword: admin_password, - gatelyInfo: sprintf('%J', { - Version: ver.version || '-', - Commit: ver.commit || '-', - Go: ver.go || '-' - }), - adminPort: admin_port, - adminSafeUrl: safe_path - }; - } - }, - - get_log: { - call: function() { - let p = popen('logread -e gately 2>/dev/null | tail -n 300'); - let content = ''; - if (p) { - content = p.read('all') || ''; - p.close(); - } - return { - log: content - }; - } - }, - - service: { - args: { action: 'action' }, - call: function(req) { - let action = req.args?.action; - if (action === 'restart' || action === 'reload') { - let res = system(INIT_SCRIPT + ' stop >/dev/null 2>&1; sleep 1; ' + INIT_SCRIPT + ' start >/dev/null 2>&1'); - return { result: (res === 0), ret: res }; - } else if (action === 'start' || action === 'stop') { - let res = system(INIT_SCRIPT + ' ' + action + ' >/dev/null 2>&1'); - return { result: (res === 0), ret: res }; - } - return { result: false, ret: -1, error: 'Invalid service action' }; - } - } -}; - -return { 'luci.gately': methods }; diff --git a/luci-app-open-box/Makefile b/luci-app-open-box/Makefile index 388b4b8f6..39db5b991 100644 --- a/luci-app-open-box/Makefile +++ b/luci-app-open-box/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-open-box -PKG_VERSION:=0.1.425 -PKG_RELEASE:=74 +PKG_VERSION:=0.1.429 +PKG_RELEASE:=75 PKG_MAINTAINER:=liandu2024 PKG_LICENSE:=GPL-3.0-or-later diff --git a/luci-app-passwall/Makefile b/luci-app-passwall/Makefile index 9daa096b3..c92f8589e 100644 --- a/luci-app-passwall/Makefile +++ b/luci-app-passwall/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall PKG_VERSION:=26.11.11 -PKG_RELEASE:=376 +PKG_RELEASE:=377 PKG_PO_VERSION:=$(PKG_VERSION) PKG_CONFIG_DEPENDS:= \ diff --git a/luci-app-passwall/root/usr/share/passwall/test.sh b/luci-app-passwall/root/usr/share/passwall/test.sh index 141bcc05f..a2bfbfcae 100755 --- a/luci-app-passwall/root/usr/share/passwall/test.sh +++ b/luci-app-passwall/root/usr/share/passwall/test.sh @@ -73,6 +73,8 @@ url_test_node() { fi sleep 2s probeUrl=$(config_n_get @global_other[0] url_test_url https://www.google.com/generate_204) + # 预热代理链路,减轻首次请求的冷启动影响,提高部分节点的测试成功率和延迟稳定性 + curl --connect-timeout 3 --max-time 5 -o /dev/null -I -sk "$@" -x "$curlx" "$probeUrl" >/dev/null 2>&1 result=$(curl --connect-timeout 3 --max-time 5 -o /dev/null -I -sk -w "%{http_code}:%{time_pretransfer}:%{time_starttransfer}" "$@" -x "$curlx" "${probeUrl}") || result=0 # 结束 SS 插件进程 if [ "$_type" != "socks" ]; then diff --git a/luci-app-passwall2/Makefile b/luci-app-passwall2/Makefile index eb0d16fc2..12f359e49 100644 --- a/luci-app-passwall2/Makefile +++ b/luci-app-passwall2/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-passwall2 PKG_VERSION:=26.11.11 -PKG_RELEASE:=177 +PKG_RELEASE:=178 PKG_PO_VERSION:=$(PKG_VERSION) PKG_CONFIG_DEPENDS:= \ diff --git a/luci-app-passwall2/root/usr/share/passwall2/test.sh b/luci-app-passwall2/root/usr/share/passwall2/test.sh index 375a11d0d..28f0a9309 100755 --- a/luci-app-passwall2/root/usr/share/passwall2/test.sh +++ b/luci-app-passwall2/root/usr/share/passwall2/test.sh @@ -51,6 +51,8 @@ url_test_node() { local curlx="socks5h://127.0.0.1:${_tmp_port}" sleep 2s local probeUrl=$(config_n_get @global_other[0] url_test_url https://www.google.com/generate_204) + # Warm up the proxy connection to reduce cold-start effects on latency tests. + curl --connect-timeout 3 --max-time 5 -o /dev/null -I -sk -x "$curlx" "$probeUrl" >/dev/null 2>&1 result=$(curl --connect-timeout 3 --max-time 5 -o /dev/null -I -skL -w "%{http_code}:%{time_pretransfer}" -x ${curlx} "${probeUrl}") # End the SS plugin process local pid_file="${TMP_PATH}/url_test_${node_id}_plugin.pid" diff --git a/luci-app-quickstart/Makefile b/luci-app-quickstart/Makefile index 9649ffff8..bfd2f5e00 100644 --- a/luci-app-quickstart/Makefile +++ b/luci-app-quickstart/Makefile @@ -9,7 +9,7 @@ LUCI_TITLE:=LuCI support for quickstart LUCI_DEPENDS:=+quickstart +luci-app-ttyd +luci-i18n-ttyd-zh-cn LUCI_PKGARCH:=all -PKG_VERSION:=0.12.10-r1 +PKG_VERSION:=0.17.1-rc20261028-r1 # PKG_RELEASE MUST be empty for luci.mk PKG_RELEASE:= @@ -19,4 +19,3 @@ LUCI_MINIFY_JS:=0 include $(TOPDIR)/feeds/luci/luci.mk # call BuildPackage - OpenWrt buildroot signature - diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/FastnetInstallDialog.js b/luci-app-quickstart/htdocs/luci-static/quickstart/FastnetInstallDialog.js new file mode 100644 index 000000000..d06102115 --- /dev/null +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/FastnetInstallDialog.js @@ -0,0 +1 @@ +import{defineComponent as N,computed as c,openBlock as d,createBlock as y,withCtx as I,createElementVNode as e,createVNode as k,toDisplayString as l,createElementBlock as r,createTextVNode as h,createCommentVNode as g}from"/luci-static/quickstart/card-runtime-v1.js";import{N as F,_ as p,n as w}from"./app.js?v=txJtMzYh";import"./vendor.js?v=B46K-l76";const C={class:"fastnet-install","data-fastnet-install-dialog":""},_={class:"fastnet-install-product"},$={class:"fastnet-install-icon"},B={class:"fastnet-install-badge"},V={class:"fastnet-install-description",role:"status"},D={key:0,class:"fastnet-install-error",role:"alert"},U={key:1,class:"fastnet-install-note"},q={class:"fastnet-install-footer"},M={class:"fastnet-install-links"},R={href:"/cgi-bin/luci/admin/store",target:"_blank",rel:"noopener"},T=["disabled"],x={class:"fastnet-install-actions"},A=["disabled","aria-busy"],E={key:0,class:"fastnet-install-spinner","aria-hidden":"true"},P=N({__name:"FastnetInstallDialog",props:{state:{},installing:{type:Boolean},error:{}},emits:["close","install","recheck"],setup(s){const n=s,f=window.vue_lang==="en",t=(o,a)=>f?a:o,i=c(()=>n.installing||n.state==="installing"),m=c(()=>i.value?t("正在安装","Installing"):n.state==="checking"?t("检查中","Checking"):n.state==="update_required"?t("需要更新","Update needed"):n.state==="unknown"?t("待确认","Unconfirmed"):n.state==="failed"?t("安装未完成","Incomplete"):t("尚未安装","Not installed")),v=c(()=>i.value?t("正在安装 FastNet,完成后即可添加外网测速卡片。","Installing FastNet. You can add the Internet speed card once it is ready."):n.state==="checking"?t("正在确认插件和安装状态,请稍候。","Checking the plugin and installation status."):n.state==="update_required"?t("当前插件版本尚未提供可用卡片,请先升级或修复 FastNet。","Update or repair FastNet to make this card available."):n.state==="unknown"?t("暂时无法确认安装状态,请重新读取或到软件中心检查。","Reload the installation status or check FastNet in the software center."):n.state==="failed"?t("FastNet 安装未完成,请检查软件源后重试。","FastNet installation did not complete. Check the package source and retry."):t("添加外网测速模块前,需要先安装 FastNet 插件。","Install FastNet before adding the Internet speed module.")),b=c(()=>n.installing?t("正在安装","Installing"):n.state==="checking"?t("正在检查","Checking"):n.state==="installing"?t("查看安装进度","View progress"):n.state==="update_required"?t("升级或修复","Update or repair"):n.state==="failed"?t("重试安装","Retry installation"):t("安装插件","Install plugin"));return(o,a)=>(d(),y(F,{title:t("安装 FastNet 插件","Install FastNet"),onClose:a[3]||(a[3]=u=>o.$emit("close"))},{default:I(()=>[e("div",C,[e("div",_,[e("span",$,[k(p,{name:"activity"})]),e("div",null,[a[4]||(a[4]=e("strong",null,"FastNet",-1)),e("p",null,l(t("外网速率 · NAT · IPv6","Internet speed · NAT · IPv6")),1)]),e("span",B,l(m.value),1)]),e("p",V,l(v.value),1),s.error?(d(),r("div",D,[a[5]||(a[5]=e("span",{"aria-hidden":"true"},"!",-1)),e("p",null,l(s.error),1)])):(d(),r("div",U,[k(p,{name:i.value?"clock":"check"},null,8,["name"]),e("p",null,l(i.value?t("可以关闭此窗口,安装会在后台继续。","You can close this window. Installation continues in the background."):t("安装后再选择卡片位置,不会自动开始测速。","Choose a card position after installation. No speed test starts automatically.")),1)])),e("div",q,[e("div",M,[e("a",R,[h(l(t("软件中心","Software center")),1),a[6]||(a[6]=e("svg",{viewBox:"0 0 16 16","aria-hidden":"true"},[e("path",{d:"M9 3h4v4M13 3 6 10M7 3H3v10h10V9"})],-1))]),s.installing?g("",!0):(d(),r("button",{key:0,type:"button",onClick:a[0]||(a[0]=u=>o.$emit("recheck")),disabled:s.state==="checking","data-recheck-card-install":""},l(t("重新读取","Reload status")),9,T))]),e("div",x,[e("button",{type:"button",class:"fastnet-install-back",onClick:a[1]||(a[1]=u=>o.$emit("close"))},l(t("返回","Back")),1),s.state!=="unknown"?(d(),r("button",{key:0,type:"button",class:"fastnet-install-primary",disabled:s.installing||s.state==="checking","aria-busy":i.value||s.state==="checking",onClick:a[2]||(a[2]=u=>o.$emit("install")),"data-confirm-card-install":""},[i.value||s.state==="checking"?(d(),r("span",E)):g("",!0),h(l(b.value),1)],8,A)):g("",!0)])])])]),_:1},8,["title"]))}}),W=w(P,[["__scopeId","data-v-a66b8b77"]]);export{W as default}; diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/app.js b/luci-app-quickstart/htdocs/luci-static/quickstart/app.js new file mode 100644 index 000000000..6fb60cc4a --- /dev/null +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/app.js @@ -0,0 +1,7 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["luci-static/quickstart/FastnetInstallDialog.js","luci-static/quickstart/app.js","luci-static/quickstart/vendor.js","luci-static/quickstart/installClient.js"])))=>i.map(i=>d[i]); +var kr=Object.defineProperty,wr=Object.defineProperties;var $r=Object.getOwnPropertyDescriptors;var ms=Object.getOwnPropertySymbols;var _l=Object.prototype.hasOwnProperty,yl=Object.prototype.propertyIsEnumerable;var fs=Math.pow,co=(s,t,n)=>t in s?kr(s,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[t]=n,ye=(s,t)=>{for(var n in t||(t={}))_l.call(t,n)&&co(s,n,t[n]);if(ms)for(var n of ms(t))yl.call(t,n)&&co(s,n,t[n]);return s},Ne=(s,t)=>wr(s,$r(t));var kl=(s,t)=>{var n={};for(var l in s)_l.call(s,l)&&t.indexOf(l)<0&&(n[l]=s[l]);if(s!=null&&ms)for(var l of ms(s))t.indexOf(l)<0&&yl.call(s,l)&&(n[l]=s[l]);return n};var Nn=(s,t,n)=>co(s,typeof t!="symbol"?t+"":t,n);var B=(s,t,n)=>new Promise((l,u)=>{var c=v=>{try{p(n.next(v))}catch(h){u(h)}},r=v=>{try{p(n.throw(v))}catch(h){u(h)}},p=v=>v.done?l(v.value):Promise.resolve(v.value).then(c,r);p((n=n.apply(s,t)).next())});import{defineComponent as X,computed as R,openBlock as i,createElementBlock as d,normalizeStyle as pt,createElementVNode as e,toDisplayString as a,unref as o,createCommentVNode as T,resolveComponent as At,createVNode as G,renderSlot as Ct,withDirectives as W,vModelCheckbox as gt,createBlock as Y,withCtx as pe,ref as x,watch as We,onMounted as nt,Fragment as V,renderList as oe,vModelSelect as Be,vModelText as Oe,createStaticVNode as Hn,shallowRef as Na,nextTick as ot,onUnmounted as lt,Teleport as Fo,withModifiers as Ge,normalizeClass as _e,withKeys as Qt,reactive as Xe,readonly as Cr,markRaw as Kn,onErrorCaptured as Sr,resolveDynamicComponent as Aa,mergeProps as Zl,inject as ba,Transition as fn,createApp as cn,createTextVNode as ue,provide as ma,TransitionGroup as xr,toRef as uo,onBeforeUnmount as ga,vShow as Bs,vModelRadio as Mt,createSlots as Pr,defineAsyncComponent as Tr,h as vo,isRef as Mr,Suspense as Er,render as Us,withAsyncContext as Ir,useCssVars as Dr,vModelDynamic as Lr}from"/luci-static/quickstart/card-runtime-v1.js";import{a as Ar,c as Nr,d as Fs,u as Yl,i as Or,b as zr,e as qr,f as Ql,g as Xl,h as Rr,j as ei,k as as,l as ta,o as ti,m as Vr,n as ss,p as Br,q as Ur,r as Fr}from"./vendor.js?v=B46K-l76";const Bn={language:void 0,numberFormat:new Intl.NumberFormat("en",{notation:"compact"})},tj=s=>B(null,null,function*(){const t=window.vue_lang||(navigator.language.toLowerCase().startsWith("zh")?"zh-cn":"en");let n={};const l=window.vue_lang_data||(t==="zh-cn"?"":`/luci-static/quickstart/i18n/${t}.json`);if(l)try{const r=yield Ar({url:l,method:"GET"});r.data&&(n=r.data)}catch(r){console.log(r)}const u=Nr({defaultLanguage:t,mutedLanguages:["zh-cn"],translations:n,setGlobalProperties:!1,provideDirective:!1,provideComponent:!1});s.use(u),Bn.language=u;const{$gettext:c}=u;window.$i18n=c;try{Bn.numberFormat=new Intl.NumberFormat(t,{notation:"compact"})}catch(r){console.error("Intl.NumberFormat unsupported lang",t,r)}}),Ae=()=>{if(Bn.language)return Bn.language;throw new Error("I18N Uninitialized!")},Hs=()=>({$gettext:(s,t,n)=>{if(Bn.language)return Bn.language.$gettext(s,t,n);throw new Error("I18N Uninitialized!")},$ngettext:(s,t,n,l,u)=>{if(Bn.language)return Bn.language.$ngettext(s,t,n,l,u);throw new Error("I18N Uninitialized!")}}),bs=s=>typeof s=="number"?Bn.numberFormat.format(s):"?",{$gettext:Hr}=Hs(),ni=(s,t)=>B(null,null,function*(){return new Promise((n,l)=>B(null,null,function*(){try{const u=yield fetch(s,t);if(Math.floor(u.status/100)!=2)throw u.status+" "+u.statusText;const c=ye({},u);c.data=yield u.json(),n(c)}catch(u){const c=u;l(Hr("网络异常:")+((c==null?void 0:c.message)||u))}}))});class Ho{constructor(t){Nn(this,"config",{baseURL:"",headers:{}});Nn(this,"useRequest",t=>t);Nn(this,"useResponse",t=>t);Nn(this,"useError",t=>t);t.baseURL&&(this.config.baseURL=t.baseURL),t.headers&&(this.config.headers=t.headers)}static create(t){return new Ho(t)}Do(t,n){return B(this,null,function*(){return new Promise((l,u)=>B(this,null,function*(){try{const c=this.useRequest({baseURL:this.config.baseURL,headers:this.config.headers});t=`${c.baseURL||""}${t}`,n.headers==null&&(n.headers={}),c.headers&&(n.headers=ye({},c.headers));const p=yield fetch(t,n),v=ye({},p);v.data=yield p.json(),l(this.useResponse(v))}catch(c){this.useError(c),u(c)}}))})}TEXT(t,n){return B(this,null,function*(){return new Promise((l,u)=>B(this,null,function*(){try{const c=this.useRequest({baseURL:this.config.baseURL,headers:this.config.headers});t=`${c.baseURL||""}${t}`,n.headers==null&&(n.headers={}),c.headers&&(n.headers=ye({},c.headers));const p=yield fetch(t,n),v=ye({},p);v.data=yield p.text(),l(v)}catch(c){this.useError(c),u(c)}}))})}interceptors(){const t=this;return{requset:{use(n){t.useRequest=n}},response:{use(n,l){t.useResponse=n,l&&(t.useError=l)}}}}}const ai=Ho.create({});ai.interceptors().requset.use((s=>s));ai.interceptors().response.use((s=>(s.data&&s.data.success==null&&s.data.success==0,s)));const{$gettext:si}=Hs(),Gr="/cgi-bin/luci/istore",jr="/cgi-bin/luci/admin";let Ms=!1;const Pe=(s,t)=>{if(!["GET","HEAD","OPTIONS"].includes((t.method||"GET").toUpperCase())){const n=new Headers(t.headers);n.has("Content-Type")||n.set("Content-Type","application/json"),t=Ne(ye({},t),{headers:n})}return s.indexOf("//")==-1&&(s=`${Gr}${s}`),ni(s,t).then(n=>(n!=null&&n.data&&n.data.success==-1001&&n.data.error=="Forbidden"&&(Ms||(Ms=!0,alert(si("登录过期,请重新登录")),location.reload())),n))},Wr=(s,t)=>(s.indexOf("//")==-1&&(s=`${jr}${s}`),ni(s,t).then(n=>(n!=null&&n.data&&n.data.success==-1001&&n.data.error=="Forbidden"&&(Ms||(Ms=!0,alert(si("登录过期,请重新登录")),location.reload())),n))),Jr={Statistics:{GET(){return Pe("/u/network/statistics/",{method:"GET"})}},Status:{GET(){return Pe("/u/network/status/",{method:"GET"})}},Device:{List:{GET(){return Pe("/network/device/list/",{method:"GET"})}}},Homebox:{Enable:{POST(){return Pe("/network/homebox/enable/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"}})}}},CheckPublickNet:{POST(s){return Pe("/network/checkPublicNet/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},GetInterfaceConfig:{GET(){return Pe("/network/interface/config/",{method:"GET",headers:{"Content-Type":"application/json;charset=utf-8"}})}},POSTInterfaceConfig:{POST(s){return Pe("/network/interface/config/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},PortList:{GET(){return Pe("/network/port/list/",{method:"GET",headers:{"Content-Type":"application/json;charset=utf-8"}})}}},Kr={Version:{GET(){return Pe("/u/system/version/",{method:"GET"})}},CheckUpdate:{GET(){return Pe("/system/check-update/",{method:"GET"})}},AutoCheckUpdate:{POST(s){return Pe("/system/auto-check-update/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Reboot:{POST(){return Pe("/system/reboot/",{method:"POST"})}},Status:{GET(){return Pe("/system/status/",{method:"GET"})}}},Zr={Disk:{Status:{GET(){return Pe("/nas/disk/status/",{method:"GET"})}},Erase:{POST(s){return Pe("/nas/disk/erase",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Init:{POST:s=>Pe("/nas/disk/init/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})},InitRest:{POST:s=>Pe("/nas/disk/initrest/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})},Partition:{Format:{POST:s=>Pe("/nas/disk/partition/format",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})},Mount:{POST:s=>Pe("/nas/disk/partition/mount",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}}},Service:{Status:{GET(){return Pe("/u/nas/service/status/",{method:"GET"})}}},Linkease:{Enable:{POST(){return Pe("/u/nas/linkease/enable",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"}})}}},Sandbox:{POST(s){return Pe("/nas/sandbox/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},GetSandbox:{GET(){return Pe("/nas/sandbox/",{method:"GET"})}},SandboxDisks:{GET(){return Pe("/nas/sandbox/disks/",{method:"GET"})}},SandboxCommit:{POST(){return Pe("/u/nas/sandbox/commit/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify({})})}},SandboxReset:{POST(){return Pe("/nas/sandbox/reset/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"}})}},SandboxExit:{POST(){return Pe("/nas/sandbox/exit/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"}})}}},Yr={User:{List:{GET(){return Pe("/share/user/list/",{method:"GET"})}},Create:{POST(s){return Pe("/share/user/create/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Update:{POST(s){return Pe("/share/user/update/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}}},Service:{List:{GET(){return Pe("/share/service/list/",{method:"GET"})}},Create:{POST(s){return Pe("/share/service/create/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Update:{POST(s){return Pe("/share/service/update/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}}}},Qr={Check:{POST(s){return Pe("/app/check/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Install:{POST(s){return Pe("/app/install/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}}},Xr={Pppoe:{GET(){return Pe("/guide/pppoe/",{method:"GET"})},POST(s){return Pe("/guide/pppoe/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},DnsConfig:{GET(){return Pe("/guide/dns-config/",{method:"GET"})},POST(s){return Pe("/guide/dns-config/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},DhcpClient:{POST(s){return Pe("/guide/dhcp-client/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},ClientModel:{GET(){return Pe("/guide/client-mode/",{method:"GET"})},POST(s){return Pe("/guide/client-mode/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},GatewayRouter:{POST(s){return Pe("/guide/gateway-router/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},DockerStatus:{GET(){return Pe("/guide/docker/status/",{method:"GET"})}},DockerPartitionList:{GET(){return Pe("/guide/docker/partition/list/",{method:"GET"})}},DockerTransfer:{POST(s){return Pe("/guide/docker/transfer/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},DockerSwitch:{POST(s){return Pe("/guide/docker/switch/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},DownloadService:{Status:{GET(){return Pe("/guide/download-service/status/",{method:"GET"})}}},DownloadPartition:{List:{GET(){return Pe("/guide/download/partition/list/",{method:"GET"})}}},Aria2Init:{POST(s){return Pe("/guide/aria2/init/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},qbitorrentInit:{POST(s){return Pe("/guide/qbittorrent/init/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},transmissionInit:{POST(s){return Pe("/guide/transmission/init/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},GetLan:{GET(){return Pe("/guide/lan/",{method:"GET"})}},LanIp:{POST(s){return Pe("/guide/lan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},SoftSource:{POST(s){return Pe("/guide/soft-source/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},GetSoftSource:{GET(){return Pe("/guide/soft-source/",{method:"GET"})}},SoftSourceList:{GET(){return Pe("/guide/soft-source/list/",{method:"GET"})}},PostDdns:{POST(s){return Pe("/u/guide/ddns/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},GetDdns:{GET(){return Pe("/u/guide/ddns/",{method:"GET"})}},Ddnsto:{POST(s){return Pe("/guide/ddnsto/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},DdntoConfig:{GET(){return Pe("/guide/ddnsto/config/",{method:"GET"})}},DdnstoAddress:{POST(s){return Pe("/guide/ddnsto/address/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}}},ec={Create:{POST(s){return Pe("/raid/create/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Delete:{POST(s){return Pe("/raid/delete/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Add:{POST(s){return Pe("/raid/add/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Remove:{POST(s){return Pe("/raid/remove/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Recover:{POST(s){return Pe("/raid/recover/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Detail:{POST(s){return Pe("/raid/detail/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},List:{GET(){return Pe("/raid/list/",{method:"GET"})}},CreateList:{GET(){return Pe("/raid/create/list/",{method:"GET"})}},Autofix:{POST(){return Pe("/raid/autofix/",{method:"POST"})}}},tc={Log:{GET(){return Pe("/smart/log/",{method:"GET"})}},List:{GET(){return Pe("/u/smart/list/",{method:"GET"})}},Config:{GET(){return Pe("/smart/config/",{method:"GET"})},POST(s){return Pe("/smart/config/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}},Test:{POST(s){return Pe("/u/smart/test/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})},Result:{POST(s){return Pe("/smart/test/result/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}}},Attribute:{Result:{POST(s){return Pe("/smart/attribute/result/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}}},Extend:{Result:{POST(s){return Pe("/smart/extend/result/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(s)})}}}},nc={List:{GET(){return Pe("/wireless/list-iface/",{method:"GET"})}},Switch:{POST(s){return Pe("/wireless/enable-iface/",{body:JSON.stringify(s),method:"POST"})}},Power:{POST(s){return Pe("/wireless/set-device-power/",{body:JSON.stringify(s),method:"POST"})}},Edit:{POST(s){return Pe("/wireless/edit-iface/",{body:JSON.stringify(s),method:"POST"})}},Setup:{POST(s){return Pe("/wireless/setup/",{body:JSON.stringify(s),method:"POST"})}}},ac={getInstalled:{GET(){return Wr("/store/installed/",{method:"GET"})}},needSetup:{GET(){return Pe("/guide/need/setup/",{method:"GET"})}},setPassword:{POST(s){return Pe("/system/setPassword/",{body:JSON.stringify(s),method:"POST"})}},completeGuide:{POST(){return Pe("/guide/finish/setup/",{method:"POST"})}}},sc=Pe,Gs=s=>{const t=(n,l)=>{if(s==="all"&&(!["/lanctrl/v2/devices/","/lanctrl/v2/device-traffic/"].includes(n.split("?")[0])||l.method!=="GET"))return Promise.reject(new Error("请选择设备所属的局域网"));const u=n.includes("?")?"&":"?";return sc(s?`${n}${u}network=${encodeURIComponent(s)}`:n,l)};return{routerContextV2:{GET(){return t("/lanctrl/v2/router-context/",{method:"GET"})}},lanDeviceMigrationV2:{PLAN(){return t("/lanctrl/v2/migration/plan/",{method:"GET"})},APPLY(n){return t("/lanctrl/v2/migration/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},rateLimitMigrationV2:{PLAN(){return t("/lanctrl/v2/rate-limit-migration/plan/",{method:"GET"})},APPLY(n){return t("/lanctrl/v2/rate-limit-migration/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},ROLLBACK(n){return t("/lanctrl/v2/rate-limit-migration/rollback/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},capabilityActionV2:{PLAN(n){return t("/lanctrl/v2/capability-action/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},APPLY(n){return t("/lanctrl/v2/capability-action/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},deviceInventoryV2:{GET(){return t("/lanctrl/v2/devices/",{method:"GET"})},POST(n){return t("/lanctrl/v2/devices/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},deviceClassificationV2:{GET(n){return t(`/lanctrl/v2/device-classification/?deviceId=${encodeURIComponent(n)}`,{method:"GET"})},POST(n){return t("/lanctrl/v2/device-classification/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},deviceProfileV2:{GET(n){return t(`/lanctrl/v2/device-profile/?deviceId=${encodeURIComponent(n)}`,{method:"GET"})},POST(n){return t("/lanctrl/v2/device-profile/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},deviceTrafficV2:{GET(){return t("/lanctrl/v2/device-traffic/",{method:"GET"})}},devicePolicyV2:{GET(n){return t(`/lanctrl/v2/device-policy/?deviceId=${encodeURIComponent(n)}`,{method:"GET"})},POST(n){return t("/lanctrl/v2/device-policy/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},deviceNetworkPolicyV2:{GET(n){return t(`/lanctrl/v2/device-network-policy/?deviceId=${encodeURIComponent(n)}`,{method:"GET"})},PLAN(n){return t("/lanctrl/v2/device-network-policy/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},APPLY(n){return t("/lanctrl/v2/device-network-policy/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},deviceRestrictionsV2:{PLAN(n){return t("/lanctrl/v2/device-restrictions/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},APPLY(n){return t("/lanctrl/v2/device-restrictions/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},rateLimitSettingsV2:{PLAN(n){return t("/lanctrl/v2/rate-limit-settings/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},APPLY(n){return t("/lanctrl/v2/rate-limit-settings/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},gatewayTargetsV2:{GET(){return t("/lanctrl/v2/gateway-targets/",{method:"GET"})}},gatewayTargetV2:{PLAN(n){return t("/lanctrl/v2/gateway-target/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},APPLY(n){return t("/lanctrl/v2/gateway-target/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},REFERENCES(n){return t(`/lanctrl/v2/gateway-target-references/?targetId=${encodeURIComponent(n)}`,{method:"GET"})}},lanDhcpSettingsV2:{GET(){return t("/lanctrl/v2/lan-dhcp-settings/",{method:"GET"})},PLAN(n){return t("/lanctrl/v2/lan-dhcp-settings/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},APPLY(n){return t("/lanctrl/v2/lan-dhcp-settings/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},floatingGatewayV2:{GET(){return t("/lanctrl/v2/floating-gateway/",{method:"GET"})},PLAN(n){return t("/lanctrl/v2/floating-gateway/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},APPLY(n){return t("/lanctrl/v2/floating-gateway/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},DRILL(){return t("/lanctrl/v2/floating-gateway/drill-plan/",{method:"GET"})}},networkRulesV2:{GET(){return t("/lanctrl/v2/network-rules/",{method:"GET"})},PLAN(n){return t("/lanctrl/v2/network-rules/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},APPLY(n){return t("/lanctrl/v2/network-rules/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},deviceGroupsV2:{GET(){return t("/lanctrl/v2/device-groups/",{method:"GET"})},POST(n){return t("/lanctrl/v2/device-groups/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},trafficInsightsV2:{GET(n,l){return t(`/lanctrl/v2/traffic-insights/?deviceId=${encodeURIComponent(n)}&range=${encodeURIComponent(l)}`,{method:"GET"})},QUOTA(n){return t("/lanctrl/v2/traffic-quota/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},advancedNetworkV2:{GET(n){return t(`/lanctrl/v2/advanced-network/?deviceId=${encodeURIComponent(n)}`,{method:"GET"})},PROBE(n){return t("/lanctrl/v2/management-probe/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},WEBHOOK(n){return t("/lanctrl/v2/network-webhook/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},EXPORT(){return t("/lanctrl/v2/policy-bundle/",{method:"GET"})},IMPORT_PLAN(n){return t("/lanctrl/v2/policy-import/plan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})},IMPORT_APPLY(n){return t("/lanctrl/v2/policy-import/apply/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(n)})}},devicePolicyRulesV2:{GET(){return t("/lanctrl/v2/device-policy/rules/",{method:"GET"})}},listDevices:{GET(){return t("/lanctrl/listDevices/",{method:"GET"})}},staticDeviceConfig:{POST(n){return t("/lanctrl/staticDeviceConfig/",{body:JSON.stringify(n),method:"POST"})}},globalConfigs:{GET(n){return t("/lanctrl/globalConfigs/",{method:"GET",signal:n})}},speedLimitConfig:{POST(n){return t("/lanctrl/speedLimitConfig/",{body:JSON.stringify(n),method:"POST"})}},listStaticDevices:{GET(){return t("/lanctrl/listStaticDevices/",{method:"GET"})}},listSpeedLimitedDevices:{GET(){return t("/lanctrl/listSpeedLimitedDevices/",{method:"GET"})}},dhcpGatewayConfig:{POST(n){return t("/lanctrl/dhcpGatewayConfig/",{body:JSON.stringify(n),method:"POST"})}},dhcpTagsConfig:{POST(n){return t("/lanctrl/dhcpTagsConfig/",{body:JSON.stringify(n),method:"POST"})}},enableSpeedLimit:{POST(n){return t("/lanctrl/enableSpeedLimit/",{body:JSON.stringify(n),method:"POST"})}},enableFloatGateway:{POST(n){return t("/lanctrl/enableFloatGateway/",{body:JSON.stringify(n),method:"POST"})}},speedsForDevices:{GET(){return t("/lanctrl/speedsForDevices/",{method:"GET"})}},speedsForOneDevice:{POST(n){return t("/lanctrl/speedsForOneDevice/",{body:JSON.stringify(n),method:"POST"})}}}},oi=Gs(),oc={GET(){return Pe("/system/module-settings/",{method:"GET"})},POST(s){return Pe("/system/module-settings/",{body:JSON.stringify(s),method:"POST"})}},lc=Object.freeze(Object.defineProperty({__proto__:null,App:Qr,DeviceMangement:oi,Guide:Xr,GuidePage:ac,ModuleSettings:oc,Nas:Zr,Network:Jr,Quickwifi:nc,Raid:ec,Share:Yr,Smart:tc,System:Kr,createDeviceManagement:Gs},Symbol.toStringTag,{value:"Module"})),we=ye({},lc),li=Fs("app",{state:()=>({portitemStyle:{show:!1,left:0,top:0,portitem:{name:"",macAddress:"",linkSpeed:"",linkState:"",rx_packets:"",tx_packets:"",interfaceNames:[],master:"",duplex:""}}})}),ic=Fs("nas",{state:()=>({webdav:{}})}),os=Fs("network",{state:()=>({status:{},deviceList:{}}),getters:{},actions:{updateNetworkStatus(s){this.status=s},requestDeviceList(){we.Network.Device.List.GET().then(s=>{if(s!=null&&s.data){const{result:t}=s==null?void 0:s.data;t&&(this.deviceList=t)}})},incrTime(){this.status.uptimeStamp&&this.status.uptimeStamp++}}}),Oa=Fs("system",{state:()=>({version:{},checkUpdate:null,updateChecked:!1,systemStatus:{}}),getters:{},actions:{incrTime(){var s;(s=this.systemStatus)!=null&&s.uptime&&this.systemStatus.uptime++},requestVersion(){we.System.Version.GET().then(s=>{var t;(t=s==null?void 0:s.data)!=null&&t.result&&(this.version=s.data.result)})},requestCheckUpdate(){this.updateChecked||(this.updateChecked=!0,we.System.CheckUpdate.GET().then(s=>{var t;(t=s==null?void 0:s.data)!=null&&t.result&&(this.checkUpdate=s.data.result)}).finally(()=>{this.checkUpdate==null&&(this.checkUpdate={needUpdate:!1,msg:"skip"})}))},updateSystemStatus(s){this.systemStatus=s}}}),rc=X({__name:"index",setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=li(),u=R(()=>l.portitemStyle.portitem),c=R(()=>l.portitemStyle.show),r=R(()=>({bottom:`calc(100% - ${l.portitemStyle.top}px)`,left:`${l.portitemStyle.left}px`})),p=g=>{switch(g){case"full":return t("全双工");case"half":return t("半双工")}},v=g=>{l.portitemStyle.show=!0},h=g=>{l.portitemStyle.show=!1};return(g,b)=>c.value?(i(),d("div",{key:0,class:"disk-item-tooltip",style:pt(r.value),onMouseenter:v,onMouseleave:h},[e("div",null,a(p(u.value.duplex)),1),e("div",null,a(o(t)("名称:"))+a(u.value.name||"--"),1),e("div",null,a(o(t)("MAC:"))+a(u.value.macAddress||"--"),1),e("div",null,a(o(t)("接收:"))+a(u.value.rx_packets||"--"),1),e("div",null,a(o(t)("发送:"))+a(u.value.tx_packets||"--"),1)],36)):T("",!0)}}),le=(s,t)=>{const n=s.__vccOpts||s;for(const[l,u]of t)n[l]=u;return n},cc=le(rc,[["__scopeId","data-v-4cfdbcec"]]),dc={id:"main"},uc=X({__name:"App",setup(s){return(t,n)=>{const l=At("router-view");return i(),d("div",dc,[G(l),G(cc)])}}}),nj=le(uc,[["__scopeId","data-v-425e333d"]]),vc={},pc={t:"1640593669834",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"54870",width:"128",height:"128"};function hc(s,t){return i(),d("svg",pc,[...t[0]||(t[0]=[e("path",{d:"M148.7872 57.4464h177.152c64.9216 0 118.0672 53.1456 118.0672 118.0672v295.2192H148.7872C83.8656 470.7328 30.72 417.5872 30.72 352.5632v-177.152C30.72 110.592 83.8656 57.4464 148.7872 57.4464z m0 531.3536h295.2192v295.2192c0 64.9216-53.1456 118.0672-118.0672 118.0672h-177.152C83.8656 1001.984 30.72 948.9408 30.72 883.9168v-177.152C30.72 641.9456 83.8656 588.8 148.7872 588.8z m0 0M768.7168 559.2064L562.0736 346.7264c-23.6544-17.7152-35.4304-53.1456-35.4304-82.6368s11.776-59.0848 35.4304-82.6368L686.08 57.4464C733.2864 10.24 810.0864 10.24 851.3536 57.4464l124.0064 124.0064c23.6544 23.6544 35.4304 53.1456 35.4304 82.6368s-11.776 59.0848-35.4304 82.6368L768.7168 559.2064z m0-478.208c-17.7152 0-29.4912 5.9392-41.3696 17.7152l-123.904 124.0064c-11.776 11.776-17.7152 23.6544-17.7152 41.3696s5.9392 29.4912 17.7152 41.3696l165.2736 165.2736 165.2736-165.2736c11.776-11.776 17.7152-23.6544 17.7152-41.3696s-5.9392-29.4912-17.7152-41.3696L809.984 98.7136c-11.776-11.776-23.552-17.7152-41.2672-17.7152z m0 0","p-id":"54871"},null,-1),e("path",{d:"M562.0736 588.8h295.2192c64.9216 0 118.0672 53.1456 118.0672 118.0672v177.152c0 64.9216-53.1456 118.0672-118.0672 118.0672h-177.152c-64.9216 0-118.0672-53.1456-118.0672-118.0672V588.8z m0 0","p-id":"54872"},null,-1)])])}const aj=le(vc,[["render",hc]]),mc={},fc={t:"1640598743438",class:"icon",viewBox:"0 0 1036 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"65341",width:"128",height:"128"};function bc(s,t){return i(),d("svg",fc,[...t[0]||(t[0]=[e("path",{d:"M984.177778 432.355556l-45.511111 0c-22.755556 0-45.511111-17.066667-51.2-39.822222l-28.444444-68.266667C847.644444 312.888889 853.333333 284.444444 870.4 267.377778l34.133333-34.133333c17.066667-17.066667 17.066667-39.822222 0-56.888889l-56.888889-56.888889c-17.066667-17.066667-39.822222-17.066667-56.888889 0l-34.133333 34.133333C739.555556 170.666667 711.111111 176.355556 694.044444 164.977778L625.777778 136.533333c-22.755556-5.688889-39.822222-28.444444-39.822222-51.2L585.955556 39.822222c0-22.755556-17.066667-39.822222-39.822222-39.822222L472.177778 0C449.422222 0 432.355556 17.066667 432.355556 39.822222l0 45.511111c0 22.755556-17.066667 45.511111-39.822222 51.2L329.955556 164.977778C312.888889 176.355556 284.444444 170.666667 267.377778 153.6L233.244444 119.466667c-17.066667-17.066667-39.822222-17.066667-56.888889 0l-56.888889 56.888889c-17.066667 17.066667-17.066667 39.822222 0 56.888889l34.133333 34.133333C170.666667 284.444444 176.355556 312.888889 164.977778 329.955556L136.533333 398.222222C130.844444 415.288889 108.088889 432.355556 85.333333 432.355556l-45.511111 0C17.066667 432.355556 0 449.422222 0 472.177778l0 79.644444c0 22.755556 17.066667 39.822222 39.822222 39.822222l45.511111 0c22.755556 0 45.511111 17.066667 51.2 39.822222l28.444444 68.266667C176.355556 711.111111 170.666667 739.555556 153.6 756.622222l-34.133333 34.133333c-17.066667 17.066667-17.066667 39.822222 0 56.888889l56.888889 56.888889c17.066667 17.066667 39.822222 17.066667 56.888889 0l34.133333-34.133333C284.444444 853.333333 312.888889 847.644444 329.955556 859.022222L398.222222 887.466667c22.755556 5.688889 39.822222 28.444444 39.822222 51.2l0 45.511111c0 22.755556 17.066667 39.822222 39.822222 39.822222l79.644444 0c22.755556 0 39.822222-17.066667 39.822222-39.822222l0-45.511111c0-22.755556 17.066667-45.511111 39.822222-51.2l68.266667-28.444444c17.066667-11.377778 45.511111-5.688889 62.577778 11.377778l34.133333 34.133333c17.066667 17.066667 39.822222 17.066667 56.888889 0l56.888889-56.888889c17.066667-17.066667 17.066667-39.822222 0-56.888889l-34.133333-34.133333c-17.066667-17.066667-17.066667-45.511111-11.377778-62.577778l28.444444-68.266667c5.688889-22.755556 28.444444-39.822222 51.2-39.822222l45.511111 0c22.755556 0 39.822222-17.066667 39.822222-39.822222L1035.377778 472.177778C1024 449.422222 1006.933333 432.355556 984.177778 432.355556L984.177778 432.355556zM711.111111 512c0 108.088889-91.022222 199.111111-199.111111 199.111111-108.088889 0-199.111111-85.333333-199.111111-199.111111 0-108.088889 85.333333-199.111111 199.111111-199.111111C620.088889 312.888889 711.111111 403.911111 711.111111 512L711.111111 512zM711.111111 512","p-id":"65342"},null,-1)])])}const sj=le(mc,[["render",bc]]),gc={},_c={t:"1640599890701",class:"icon",viewBox:"0 0 1565 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"76947",width:"128",height:"128"};function yc(s,t){return i(),d("svg",_c,[...t[0]||(t[0]=[e("path",{d:"M1206.477959 299.331595c-27.357038 0-53.867311 3.354494-79.465683 9.151581C1078.518669 130.792698 916.428217 0 723.365689 0 492.068443 0 304.575027 187.493416 304.575027 418.790662c0 16.055976 1.074741 31.786273 2.865975 47.386299-9.184149-0.911901-18.400865-1.40042-27.812989-1.40042C125.191018 464.743973 0 589.934991 0 744.371987c0 154.469563 125.191018 279.628013 279.595446 279.628013 59.990077 0 221.233764 0 394.527575 0l0-302.295274L496.986197 721.704726l285.457668-339.031868 285.457668 339.031868-177.136823 0 0 302.295274c139.748871 0 262.204185 0 315.71325 0 197.947713 0 358.40977-168.34349 358.40977-366.291203S1404.425673 299.331595 1206.477959 299.331595z","p-id":"76948"},null,-1)])])}const oj=le(gc,[["render",yc]]),kc={},wc={t:"1640599792937",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"68605",width:"128",height:"128"};function $c(s,t){return i(),d("svg",wc,[...t[0]||(t[0]=[e("path",{d:"M512 825.6c-211.2 0-377.6-57.6-377.6-128l0 0L134.4 896l0 0c6.4 70.4 172.8 128 377.6 128 204.8 0 371.2-57.6 377.6-128l0 0 0-204.8 0 0C889.6 768 723.2 825.6 512 825.6L512 825.6z","p-id":"68606"},null,-1),e("path",{d:"M512 544c-211.2 0-377.6-57.6-377.6-128l0 0 0 204.8 0 0c6.4 70.4 172.8 128 377.6 128 204.8 0 371.2-57.6 377.6-128l0 0L889.6 416l0 0C889.6 486.4 723.2 544 512 544L512 544z","p-id":"68607"},null,-1),e("path",{d:"M889.6 128 889.6 128c0-70.4-166.4-128-377.6-128C300.8 0 134.4 57.6 134.4 128l0 0 0 0 0 204.8 0 0c6.4 70.4 172.8 128 377.6 128 204.8 0 371.2-57.6 377.6-128l0 0L889.6 128 889.6 128 889.6 128zM512 217.6c-153.6 0-281.6-44.8-281.6-96 0-51.2 128-96 281.6-96 153.6 0 281.6 44.8 281.6 96C793.6 179.2 665.6 217.6 512 217.6L512 217.6z","p-id":"68608"},null,-1)])])}const lj=le(kc,[["render",$c]]),Cc={},Sc={t:"1640575557247",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4211",width:"128",height:"128"};function xc(s,t){return i(),d("svg",Sc,[...t[0]||(t[0]=[e("path",{d:"M560 800l-10.464-416h-75.072L464 800h96z m-14.144-493.984c9.44-9.312 14.144-20.672 14.144-34.016 0-13.6-4.704-24.992-14.144-34.208A46.784 46.784 0 0 0 512 224c-13.12 0-24.448 4.608-33.856 13.792A45.856 45.856 0 0 0 464 272c0 13.344 4.704 24.704 14.144 34.016 9.408 9.312 20.704 13.984 33.856 13.984 13.12 0 24.448-4.672 33.856-13.984zM512 32C246.912 32 32 246.912 32 512c0 265.088 214.912 480 480 480 265.088 0 480-214.912 480-480 0-265.088-214.912-480-480-480z m0 64c229.76 0 416 186.24 416 416s-186.24 416-416 416S96 741.76 96 512 282.24 96 512 96z","p-id":"4212"},null,-1)])])}const ij=le(Cc,[["render",xc]]),Pc={},Tc={t:"1640681742480",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"80687",width:"128",height:"128"};function Mc(s,t){return i(),d("svg",Tc,[...t[0]||(t[0]=[e("path",{d:"M899.892468 123.889088c0-44.342099-36.286708-80.620486-80.624646-80.620486H204.728017C160.385918 43.268602 124.107532 79.546988 124.107532 123.889088v802.847056c0 44.342099 36.278386 80.620486 80.620485 80.620486h614.539805c44.337938 0 80.624646-36.278386 80.624646-80.620486V123.889088z",fill:"#D0D0DB","p-id":"80688"},null,-1),e("path",{d:"M169.8768 977.7772V174.930143c0-44.342099 36.278386-80.620486 80.620486-80.620485h614.539804c9.936092 0 19.426974 1.905666 28.239639 5.23434-11.525534-30.507298-40.996782-52.389169-75.398629-52.389169H203.342457c-44.342099 0-80.620486 36.278386-80.620486 80.620486v802.851217c0 34.410168 21.881871 63.873094 52.385008 75.381985A79.730065 79.730065 0 0 1 169.8768 977.7772z",fill:"#FFFFFF","p-id":"80689"},null,-1),e("path",{d:"M820.657543 40.497481H206.117739c-44.342099 0-80.620486 36.278386-80.620486 80.620485v802.847057c0 44.342099 36.278386 80.620486 80.620486 80.620486h614.539804c44.337938 0 80.624646-36.278386 80.624647-80.620486V121.117966c0-44.342099-36.286708-80.620486-80.624647-80.620485z m19.60173 828.785749c0 40.846992-33.43237 74.279362-74.287684 74.279361H199.780776c-40.855313 0-74.279362-33.424048-74.279362-74.279361V129.593603c0-40.855313 33.424048-74.279362 74.279362-74.279362h566.203296c40.842831 0 74.283522 33.424048 74.283522 74.279362l-0.008321 739.689627z",fill:"#6E6E96","p-id":"80690"},null,-1),e("path",{d:"M815.106979 1024H200.567175C146.933914 1024 103.303319 980.369405 103.303319 926.736144V123.889088C103.303319 70.255827 146.933914 26.625232 200.567175 26.625232h614.539804c53.633261 0 97.268017 43.630595 97.268017 97.263856v802.847056c0 53.633261-43.634756 97.263856-97.268017 97.263856zM200.567175 59.911972C165.287391 59.911972 136.590059 88.609303 136.590059 123.889088v802.847056c0 35.279784 28.697331 63.977115 63.977116 63.977115h614.539804c35.279784 0 63.981276-28.697331 63.981276-63.977115V123.889088c0-35.279784-28.701492-63.977115-63.981276-63.977116H200.567175z",fill:"#6E6E96","p-id":"80691"},null,-1),e("path",{d:"M301.946104 941.515457h429.985632v65.841173H301.946104z",fill:"#8A8AA1","p-id":"80692"},null,-1),e("path",{d:"M731.931736 1024H301.946104a16.64337 16.64337 0 0 1-16.64337-16.64337V941.515457a16.64337 16.64337 0 0 1 16.64337-16.64337h429.985632a16.64337 16.64337 0 0 1 16.64337 16.64337v65.841173a16.64337 16.64337 0 0 1-16.64337 16.64337z m-413.342262-33.286741h396.698892v-32.554432H318.589474v32.554432z",fill:"#6E6E96","p-id":"80693"},null,-1),e("path",{d:"M337.230049 960.318304h20.804213v47.038326h-20.804213zM386.565159 960.318304h20.804213v47.038326h-20.804213zM435.891948 960.318304h20.804213v47.038326h-20.804213zM485.231219 960.318304h20.804213v47.038326h-20.804213zM534.558008 960.318304h20.804213v47.038326h-20.804213zM583.897279 960.318304h20.804213v47.038326h-20.804213zM633.224068 960.318304h20.804213v47.038326h-20.804213zM682.563339 960.318304h20.804213v47.038326h-20.804213z",fill:"#FFE599","p-id":"80694"},null,-1),e("path",{d:"M219.153659 140.794591m-26.874883 0a26.874882 26.874882 0 1 0 53.749765 0 26.874882 26.874882 0 1 0-53.749765 0Z",fill:"#ADADD1","p-id":"80695"},null,-1),e("path",{d:"M219.153659 184.312843c-23.995579 0-43.518252-19.522673-43.518253-43.518252s19.522673-43.518252 43.518253-43.518253 43.518252 19.522673 43.518252 43.518253-19.522673 43.518252-43.518252 43.518252z m0-53.749764c-5.642103 0-10.231512 4.589409-10.231512 10.231512s4.589409 10.231512 10.231512 10.231512 10.231512-4.589409 10.231511-10.231512-4.589409-10.231512-10.231511-10.231512z",fill:"#6E6E96","p-id":"80696"},null,-1),e("path",{d:"M801.28466 140.794591m-26.870721 0a26.870721 26.870721 0 1 0 53.741442 0 26.870721 26.870721 0 1 0-53.741442 0Z",fill:"#ADADD1","p-id":"80697"},null,-1),e("path",{d:"M801.28466 184.308683c-23.995579 0-43.514092-19.518512-43.514091-43.514092s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514092z m0-53.741443c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"80698"},null,-1),e("path",{d:"M801.280499 905.23291m-26.870721 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"80699"},null,-1),e("path",{d:"M801.280499 948.747001c-23.995579 0-43.514092-19.518512-43.514091-43.514091s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"80700"},null,-1),e("path",{d:"M219.153659 905.23291m-26.870722 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"80701"},null,-1),e("path",{d:"M219.153659 948.747001c-23.995579 0-43.514092-19.518512-43.514092-43.514091s19.518512-43.514092 43.514092-43.514092 43.514092 19.518512 43.514091 43.514092-19.522673 43.514092-43.514091 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"80702"},null,-1),e("path",{d:"M520.972857 777.43263c-142.542145 0-258.508988-115.971004-258.508988-258.52147a16.64337 16.64337 0 0 1 33.28674 0c0 124.19699 101.033579 225.23473 225.222248 225.23473s225.222248-101.03774 225.222248-225.23473c0-124.188668-101.033579-225.218087-225.222248-225.218087a16.64337 16.64337 0 0 1 0-33.286741c142.542145 0 258.508988 115.966843 258.508988 258.504828 0 142.550466-115.966843 258.521471-258.508988 258.52147z",fill:"#6E6E96","p-id":"80703"},null,-1),e("path",{d:"M520.968696 518.919481m-83.312551 0a83.312551 83.312551 0 1 0 166.625102 0 83.312551 83.312551 0 1 0-166.625102 0Z",fill:"#A9A9BA","p-id":"80704"},null,-1),e("path",{d:"M520.968696 618.875402c-55.114521 0-99.955921-44.83724-99.955921-99.95176 0-55.118682 44.8414-99.955921 99.955921-99.955921s99.95176 44.8414 99.95176 99.955921c0 55.11036-44.83724 99.95176-99.95176 99.95176z m0-166.625101c-36.761044 0-66.669181 29.908136-66.66918 66.66918s29.908136 66.66502 66.66918 66.66502 66.66502-29.908136 66.66502-66.66502c0-36.761044-29.903976-66.669181-66.66502-66.66918z",fill:"#6E6E96","p-id":"80705"},null,-1),e("path",{d:"M301.946104 941.515457h429.985632v36.977408H301.946104z",fill:"#6E6E96","p-id":"80706"},null,-1)])])}const rj=le(Pc,[["render",Mc]]),Ec={},Ic={t:"1640775712185",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2996",width:"128",height:"128"};function Dc(s,t){return i(),d("svg",Ic,[...t[0]||(t[0]=[e("path",{d:"M894.185422 128.023792 129.814578 445.743994 445.99982 577.744353 571.860343 893.929596Z","p-id":"2997"},null,-1)])])}const cj=le(Ec,[["render",Dc]]),Lc={class:"progress"},Ac=X({__name:"index",props:{value:{type:Number,required:!0},text:{type:String}},setup(s){const t=s,n=R(()=>t.value<60?"#2fc867":t.value<75?"#fdd835":t.value<90?"#f97316":"#dc2626");return(l,u)=>(i(),d("div",Lc,[e("div",{class:"progress-value",style:pt({width:`${s.value}%`,backgroundColor:n.value})},[e("span",null,a(s.text),1)],4),Ct(l.$slots,"default",{},void 0,!0)]))}}),Nc=le(Ac,[["__scopeId","data-v-65fc8e99"]]),Oc={},zc={height:"32",width:"64",t:"1649907260906",viewBox:"-8 248 1045 537",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2793","xmlns:xlink":"http://www.w3.org/1999/xlink"};function qc(s,t){return i(),d("svg",zc,[...t[0]||(t[0]=[e("path",{d:"M764.904497 251.418146 259.086289 251.418146c-143.076626 0-259.065314 115.989711-259.065314 259.065314 0 143.077649 115.988688 259.063267 259.065314 259.063267l505.818207 0c143.074579 0 259.063267-115.985618 259.063267-259.063267C1023.967764 367.407857 907.980099 251.418146 764.904497 251.418146zM764.904497 747.164974c-130.507356 0-236.682537-106.175181-236.682537-236.682537S634.397141 273.798876 764.904497 273.798876s236.683561 106.176205 236.683561 236.683561S895.411853 747.164974 764.904497 747.164974z","p-id":"2794",fill:"#52C41A"},null,-1)])])}const Rc=le(Oc,[["render",qc]]),Vc={},Bc={height:"32",width:"64",t:"1649907515643",viewBox:"-8 248 1045 537",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2971","xmlns:xlink":"http://www.w3.org/1999/xlink"};function Uc(s,t){return i(),d("svg",Bc,[...t[0]||(t[0]=[e("path",{d:"M764.867148 249.793136 259.0735 249.793136c-143.070486 0-259.052011 115.984594-259.052011 259.052011 0 143.07151 115.982548 259.050987 259.052011 259.050987l505.793648 0c143.067416 0 259.050987-115.979478 259.050987-259.050987C1023.917112 365.778754 907.933541 249.793136 764.867148 249.793136zM259.0735 745.516428c-130.501216 0-236.671281-106.172111-236.671281-236.671281 0-130.501216 106.170065-236.671281 236.671281-236.671281S495.744781 378.344954 495.744781 508.84617C495.744781 639.34534 389.574716 745.516428 259.0735 745.516428z","p-id":"2972",fill:"#999"},null,-1)])])}const Fc=le(Vc,[["render",Uc]]),Hc={class:"checkbox_switch"},Gc={class:"checkbox_switch_on"},jc={class:"checkbox_switch_off"},Wc=X({__name:"index",props:{modelValue:{type:Boolean,required:!0}},emits:["update:modelValue"],setup(s,{emit:t}){const n=s,l=t,u=R({get:()=>n.modelValue.valueOf(),set:c=>l("update:modelValue",c)});return(c,r)=>(i(),d("label",Hc,[W(e("input",{type:"checkbox","onUpdate:modelValue":r[0]||(r[0]=p=>u.value=p)},null,512),[[gt,u.value]]),e("span",Gc,[G(Rc)]),e("span",jc,[G(Fc)]),Ct(c.$slots,"default",{},void 0,!0)]))}}),Jc=le(Wc,[["__scopeId","data-v-ffd6a79a"]]),Kc={},Zc={t:"1641369474206",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7685",width:"128",height:"128"};function Yc(s,t){return i(),d("svg",Zc,[...t[0]||(t[0]=[e("path",{d:"M757.76 637.44l-218.88 245.76c-14.72 16.64-40.32 16.64-54.4 0L265.6 637.44C244.48 613.76 261.12 576 293.12 576l437.76 0C762.24 576 779.52 613.76 757.76 637.44z","p-id":"7686"},null,-1)])])}const dj=le(Kc,[["render",Yc]]),Qc={},Xc={t:"1641369492518",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7831",width:"128",height:"128"};function ed(s,t){return i(),d("svg",Xc,[...t[0]||(t[0]=[e("path",{d:"M758.4 385.92 539.52 140.16c-14.72-16.64-40.32-16.64-54.4 0L266.24 385.92C244.48 409.6 261.76 448 293.12 448l437.76 0C762.88 448 779.52 409.6 758.4 385.92z","p-id":"7832"},null,-1)])])}const uj=le(Qc,[["render",ed]]),td={};function nd(s,t){return i(),d("article",null,[Ct(s.$slots,"default",{},void 0,!0)])}const ad=le(td,[["render",nd],["__scopeId","data-v-ba023651"]]),sd={class:"cover"},od={class:"thumbnail"},ld=X({__name:"item",emits:["click"],setup(s,{emit:t}){const n=t,l=()=>{n("click")};return(u,c)=>(i(),Y(ad,null,{default:pe(()=>[e("a",{onClick:l},[e("div",sd,[e("div",od,[Ct(u.$slots,"default",{},void 0,!0)])])])]),_:3}))}}),vj=le(ld,[["__scopeId","data-v-46fa4d41"]]),id={class:"select-editable"},rd={selected:"",value:""},cd=["value"],dd={value:"useInput"},ud=["placeholder"],vd=X({__name:"index",props:{modelValue:{type:String,required:!0},title:{type:String,default:""},options:{type:Array,default:[]}},emits:["update:modelValue"],setup(s,{emit:t}){const{$gettext:n,$ngettext:l}=Ae(),u=s,c=x(""),r=x(""),p=t,v=R({get:()=>u.modelValue.valueOf(),set:m=>p("update:modelValue",m)}),h=m=>{m===c.value||c.value==="useInput"&&m===r.value||(m===""||u.options.some(f=>f.key===m)?c.value=m:(r.value=m,c.value="useInput"))};We(()=>u.modelValue,m=>{h(m)}),nt(()=>{const m=v.value;h(m)});const g=m=>{c.value==="useInput"?v.value=r.value:v.value=c.value},b=m=>{v.value=r.value};return(m,f)=>(i(),d("label",null,[e("div",id,[W(e("select",{"onUpdate:modelValue":f[0]||(f[0]=k=>c.value=k),autocomplete:"off",onChange:g},[e("option",rd,a(o(n)("请选择%{title}",{title:s.title})),1),(i(!0),d(V,null,oe(s.options,(k,$)=>(i(),d("option",{value:k.key,key:$},a(k.value||k.key),9,cd))),128)),e("option",dd,a(o(n)("- -自定义- -")),1)],544),[[Be,c.value,void 0,{trim:!0}]]),c.value=="useInput"?W((i(),d("input",{key:0,type:"text","onUpdate:modelValue":f[1]||(f[1]=k=>r.value=k),required:"",placeholder:o(n)("请输入%{title}",{title:s.title}),onChange:b},null,40,ud)),[[Oe,r.value,void 0,{trim:!0}]]):T("",!0)])]))}}),Ta=le(vd,[["__scopeId","data-v-eb59d03b"]]),pd={t:"1631799919469",class:"icon",viewBox:"0 0 1047 1047",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"3453",width:"128",height:"128"},hd=X({__name:"loading",props:{size:{type:[Number,String],default:50},color:{type:String,default:"#fff"}},setup(s){const t=n=>{if(n==null)return;if(typeof n=="number")return n+"px";const l=n.toString();return parseInt(l)+""==l?l+"px":l};return(n,l)=>(i(),d("div",{class:"quick-loading",style:pt({width:t(s.size),height:t(s.size)})},[(i(),d("svg",pd,[e("path",{d:"M522.695111 1.991111c-26.339556 0.170667-47.416889 21.475556-47.672889 48.753778-0.284444 26.453333-0.056889 52.963556-0.056889 79.445333 0 27.249778-0.369778 54.528 0.113778 81.777778 0.483556 27.050667 22.016 47.132444 49.351111 46.904889a47.786667 47.786667 0 0 0 47.729778-47.445333c0.284444-53.76 0.284444-107.52-0.028444-161.251556-0.170667-27.676444-21.902222-48.355556-49.436445-48.184889m-195.896889 88.092445c-8.334222-14.222222-21.646222-21.276444-38.314666-21.333334-35.128889 0-56.576 36.949333-38.968889 68.152889a11616.995556 11616.995556 0 0 0 78.961777 137.614222 44.942222 44.942222 0 0 0 61.838223 16.896c21.304889-12.202667 29.667556-38.968889 17.379555-60.871111-26.453333-47.104-53.560889-93.866667-80.896-140.458666m-228.693333 234.524444c44.316444 25.799111 88.746667 51.342222 133.176889 76.970667 6.712889 3.896889 13.681778 6.912 21.703111 6.428444 20.138667 0.142222 35.953778-11.946667 41.301333-31.573333 5.006222-18.261333-2.673778-36.721778-20.224-46.990222-44.629333-26.026667-89.372444-51.882667-134.115555-77.710223-22.528-12.999111-47.815111-7.025778-59.818667 13.909334-12.231111 21.248-4.977778 45.624889 17.948444 58.965333m34.161778 235.975111c26.396444 0 52.821333 0.199111 79.217778-0.085333 23.409778-0.256 39.139556-16.412444 38.798222-39.139556-0.341333-21.617778-16.924444-37.347556-39.594666-37.376-51.655111-0.056889-103.310222-0.056889-154.965334 0.028445-24.177778 0.056889-40.704 15.985778-40.561778 38.684444 0.142222 22.186667 16.583111 37.745778 40.192 37.859556 25.656889 0.142222 51.285333 0.028444 76.913778 0m151.722667 100.238222a34.247111 34.247111 0 0 0-46.876445-12.942222 13764.778667 13764.778667 0 0 0-139.008 80.583111c-11.093333 6.485333-16.327111 16.867556-16.497777 25.372444 0.085333 30.549333 27.249778 47.957333 50.403555 35.072 47.160889-26.197333 93.724444-53.475556 140.145778-80.924444 17.180444-10.154667 21.504-30.378667 11.832889-47.160889m91.875555 101.660444c-14.250667-4.067556-27.619556 1.422222-35.84 15.644445a24375.466667 24375.466667 0 0 0-77.312 134.485333c-10.012444 17.550222-5.859556 35.669333 9.784889 45.027556 16.014222 9.557333 34.247111 4.039111 44.714667-13.994667 25.543111-44.088889 50.915556-88.263111 76.373333-132.352 3.299556-5.745778 5.688889-11.690667 5.745778-14.933333 0-17.834667-9.272889-29.866667-23.466667-33.877334m147.456 44.288c-16.384 0.085333-27.306667 11.918222-27.448888 30.151111-0.142222 25.372444-0.028444 50.716444-0.028445 76.060445h-0.085333c0 26.112-0.113778 52.252444 0.056889 78.364444 0.113778 18.261333 11.064889 30.065778 27.448889 30.208 16.952889 0.142222 28.046222-11.832889 28.103111-30.748444 0.113778-51.086222 0.142222-102.172444 0.056889-153.258667 0-18.773333-11.207111-30.862222-28.103112-30.776889m177.208889-26.112c-7.509333-12.8-21.902222-16.014222-33.792-8.874666a23.722667 23.722667 0 0 0-8.533333 32.995555c26.282667 46.279111 52.906667 92.330667 79.644444 138.353778 4.494222 7.765333 11.633778 11.946667 20.906667 11.804444 18.545778-0.142222 30.520889-19.342222 21.219556-35.868444-26.026667-46.392889-52.650667-92.444444-79.473778-138.410667m239.957333-41.187555c-45.283556-26.254222-90.595556-52.48-135.964444-78.648889-4.693333-2.702222-9.728-4.323556-15.36-2.958222-9.102222 2.247111-14.933333 8.049778-16.497778 17.095111-1.877333 10.894222 3.84 18.204444 12.885333 23.438222 29.809778 17.180444 59.562667 34.417778 89.344 51.598222 15.217778 8.789333 30.236444 17.976889 45.738667 26.225778 14.677333 7.793778 31.061333-2.048 31.061333-18.033778-0.056889-8.448-4.096-14.592-11.207111-18.716444m48.867556-234.638222c-24.888889-0.085333-49.749333 0-74.609778 0v-0.085334c-25.258667 0-50.517333-0.056889-75.776 0.028445-13.425778 0.056889-20.963556 6.343111-21.162667 17.294222-0.199111 11.150222 7.082667 17.521778 20.679111 17.550222 50.488889 0.113778 100.977778 0.142222 151.495112 0.085333 13.368889 0 21.191111-6.485333 21.390222-17.152 0.227556-10.808889-8.106667-17.664-22.016-17.720888m-187.960889-127.146667c45.084444-26.026667 90.140444-52.110222 135.168-78.222222 4.864-2.844444 8.248889-6.855111 8.135111-12.942223-0.142222-11.036444-11.207111-17.436444-21.504-11.548444-45.511111 26.055111-90.851556 52.394667-136.135111 78.819556-7.68 4.494222-10.524444 11.52-5.575111 19.569777 4.835556 7.850667 12.088889 8.817778 19.911111 4.323556m-122.311111-115.114667c5.205333-0.256 8.220444-3.413333 10.609778-7.651555 4.920889-8.647111 10.040889-17.208889 14.990222-25.827556 20.48-35.555556 40.931556-71.025778 61.297778-106.609778 5.091556-8.874667 3.015111-16.668444-4.778667-18.517333-7.68-1.848889-10.894222 3.697778-14.051556 9.159111l-68.778666 119.495111c-2.844444 4.977778-6.030222 9.870222-8.305778 15.104-3.128889 7.196444 1.678222 14.648889 9.045333 14.848","p-id":"3454",style:pt({fill:s.color})},null,4)]))],4))}}),md=le(hd,[["__scopeId","data-v-95233f61"]]),fd={},bd={t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""};function gd(s,t){return i(),d("svg",bd,[...t[0]||(t[0]=[e("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""},null,-1)])])}const _d=le(fd,[["render",gd]]),yd={},kd={width:"128",height:"128",viewBox:"0 0 50 50",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function wd(s,t){return i(),d("svg",kd,[...t[0]||(t[0]=[Hn('',1)])])}const $d=le(yd,[["render",wd]]),Cd=["href","title"],Sd=X({__name:"index",props:{type:{}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=R(()=>{switch(l.type){case"disk":return"https://www.linkease.com/rd/8myYAEVA/";case"store":return"https://www.linkease.com/rd/1F58VUTT/";case"docker":return"https://www.linkease.com/rd/2Q28MDtf/";case"download":return"https://www.linkease.com/rd/1tJo1KX-/";case"ddns":return"https://www.linkease.com/rd/3yFiX5-X/";case"network-interface":return"https://www.linkease.com/rd/3ca51a3G/"}});return(c,r)=>(i(),d("a",{href:u.value,target:"_blank",title:o(t)("跳转教程")},[...r[0]||(r[0]=[e("svg",{t:"1684144670421",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4343"},[e("path",{d:"M512 74.666667c241.066667 0 437.333333 196.266667 437.333333 437.333333S753.066667 949.333333 512 949.333333 74.666667 753.066667 74.666667 512 270.933333 74.666667 512 74.666667zM512 704c-23.466667 0-42.666667 19.2-42.666667 42.666667s19.2 42.666667 42.666667 42.666666 42.666667-19.2 42.666667-42.666666-19.2-42.666667-42.666667-42.666667z m0-458.666667c-76.8 0-138.666667 61.866667-138.666667 138.666667 0 17.066667 14.933333 32 32 32s32-14.933333 32-32c0-40.533333 34.133333-74.666667 74.666667-74.666667s74.666667 34.133333 74.666667 74.666667c0 2.133333 0 6.4-2.133334 10.666667-6.4 14.933333-19.2 32-40.533333 51.2-10.666667 10.666667-21.333333 19.2-34.133333 27.733333-2.133333 2.133333-6.4 4.266667-8.533334 6.4l-6.4 4.266667c-8.533333 6.4-14.933333 17.066667-14.933333 27.733333v108.8c2.133333 17.066667 14.933333 29.866667 32 29.866667h2.133333c17.066667-2.133333 29.866667-14.933333 29.866667-32v-89.6l12.8-10.666667c10.666667-8.533333 19.2-17.066667 29.866667-25.6 27.733333-25.6 46.933333-49.066667 57.6-74.666667 4.266667-10.666667 6.4-23.466667 6.4-34.133333 0-76.8-61.866667-138.666667-138.666667-138.666667z",fill:"#666666","p-id":"4344"})],-1)])],8,Cd))}}),xd=le(Sd,[["__scopeId","data-v-b6321046"]]),Pd={install:s=>{s.component("icon-loading",md),s.component("icon-success",_d),s.component("icon-error",$d),s.component("GlHelp",xd)}},Go="quickstart.theme.preference",ii="(prefers-color-scheme: dark)",xo=new Set;let an=null,qn="light",Za=null,wl=null,$l=!1;function jo(s){return s==="system"||s==="normal"?"system":s==="light"||s==="dark"?s:null}function Td(s,t){return s==="system"?t?"dark":"light":s}function Md(s){return s==="system"?"normal":s}function Ed(){try{return jo(window.localStorage.getItem(Go))}catch(s){return null}}function ri(){return jo(document.body.getAttribute("theme"))||"system"}function ci(s){try{window.localStorage.setItem(Go,s)}catch(t){}}function Id(){const s={preference:an,effective:qn};xo.forEach(t=>t(s)),window.dispatchEvent(new CustomEvent("quickstart-theme-change",{detail:s}))}function ls(s=!1){var l;const t=Td(an,(l=Za==null?void 0:Za.matches)!=null?l:window.matchMedia(ii).matches),n=t!==qn;qn=t,document.body.dataset.quickstartTheme=qn,document.documentElement.dataset.quickstartTheme=qn,document.documentElement.style.colorScheme=qn,(n||s)&&Id()}function Wo(){const s=Md(an);document.body.getAttribute("theme")!==s&&document.body.setAttribute("theme",s)}function Dd(){an==="system"&&ls()}function Ld(){const s=ri();s!==an&&(an=s,ci(s),ls(!0))}function Ad(s){if(s.key!==Go)return;const t=jo(s.newValue)||"system";t!==an&&(an=t,Wo(),ls(!0))}function js(){return $l?{preference:an,effective:qn}:($l=!0,Za=window.matchMedia(ii),an=Ed()||ri(),Wo(),ls(!0),Za.addEventListener("change",Dd),wl=new MutationObserver(Ld),wl.observe(document.body,{attributes:!0,attributeFilter:["theme"]}),window.addEventListener("storage",Ad),{preference:an,effective:qn})}function di(){return js().preference}function Ws(){return js().effective}function Nd(s){return js(),an=s,ci(s),Wo(),ls(!0),{preference:an,effective:qn}}function is(s){const t=js();return xo.add(s),s(t),()=>xo.delete(s)}const $s=()=>Ws()==="dark",Od="modulepreload",zd=function(s){return"/"+s},Cl={},Po=function(t,n,l){let u=Promise.resolve();if(n&&n.length>0){let v=function(h){return Promise.all(h.map(g=>Promise.resolve(g).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),p=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));u=v(n.map(h=>{if(h=zd(h),h in Cl)return;Cl[h]=!0;const g=h.endsWith(".css"),b=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${h}"]${b}`))return;const m=document.createElement("link");if(m.rel=g?"stylesheet":Od,g||(m.as="script"),m.crossOrigin="",m.href=h,p&&m.setAttribute("nonce",p),document.head.appendChild(m),g)return new Promise((f,k)=>{m.addEventListener("load",f),m.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${h}`)))})}))}function c(r){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=r,window.dispatchEvent(p),!p.defaultPrevented)throw r}return u.then(r=>{for(const p of r||[])p.status==="rejected"&&c(p.reason);return t().catch(c)})},ui=Symbol("quickstart-card-installer"),qd="quickstart-card-v1",vi=/^plugin\.[a-z][a-z0-9-]{0,47}$/,Jo=s=>s!==null&&typeof s=="object"&&!Array.isArray(s),Sl=(s,t)=>Jo(s)&&Object.keys(s).length===t.length&&t.every(n=>Object.prototype.hasOwnProperty.call(s,n)),xl=(s,t,n)=>Number.isInteger(s)&&s>=t&&s<=n;function pi(s){const t=s,n=()=>{throw new Error("invalid_card_manifest")};Sl(t,["schemaVersion","id","title","glyph","abi","version","entry","apiBase","forms","stacked"])||n(),(t.schemaVersion!==1||t.abi!==qd||typeof t.id!="string"||!vi.test(t.id))&&n(),(typeof t.title!="string"||!t.title.trim()||Array.from(t.title).length>64||/[\x00-\x1f\x7f]/.test(t.title))&&n(),(typeof t.version!="string"||!/^[A-Za-z0-9.+-]{1,64}$/.test(t.version)||typeof t.glyph!="string"||!/^[a-z-]{1,32}$/.test(t.glyph))&&n(),(typeof t.entry!="string"||!/^\/luci-static\/[a-z][a-z0-9-]*\/(?:[a-zA-Z0-9_-]+\/)*[a-zA-Z0-9_-]+\.[a-f0-9]{8,64}\.js$/.test(t.entry))&&n(),(typeof t.apiBase!="string"||!/^\/cgi-bin\/luci\/admin\/services\/[a-z][a-z0-9-]*\/card$/.test(t.apiBase))&&n(),(!Jo(t.forms)||!Object.keys(t.forms).length||Object.keys(t.forms).some(l=>!["standard","summary"].includes(l)))&&n();for(const l of Object.values(t.forms))(!Sl(l,["minWidth","minHeight"])||!xl(l.minWidth,240,1200)||!xl(l.minHeight,100,1600))&&n();return(!Array.isArray(t.stacked)||new Set(t.stacked).size!==t.stacked.length||t.stacked.some(l=>l!=="summary"||!t.forms[l]))&&n(),new TextEncoder().encode(JSON.stringify(t)).length>8192&&n(),JSON.parse(JSON.stringify(t))}function Rd(s){if(!Array.isArray(s)||s.length>32||new TextEncoder().encode(JSON.stringify(s)).length>65536)throw new Error("invalid_card_registry");const t=new Map;for(const n of s)Jo(n)&&typeof n.id=="string"&&t.set(n.id,(t.get(n.id)||0)+1);return s.flatMap(n=>{try{const l=pi(n);return t.get(l.id)===1?[l]:[]}catch(l){return[]}})}const hi=[{id:"plugin.fastnet",zh:"外网测速",en:"Internet speed",glyph:"activity",description:"检测外网速率、NAT 和 IPv6",package:"app-meta-fastnet",minWidth:280,minHeight:260,singleHeight:280}],Es=new Map;function Is(s){return Es.get(s)}function Vd(s){Es.clear();for(const t of s)Es.set(t.id,t)}function mi(s){const t=hi.find(u=>u.id===s),n=Es.get(s),l=(n==null?void 0:n.forms.standard)||(n==null?void 0:n.forms.summary);return{id:s,zh:(n==null?void 0:n.title)||(t==null?void 0:t.zh)||"插件模块",en:(t==null?void 0:t.en)||(n==null?void 0:n.title)||"Plugin module",glyph:(n==null?void 0:n.glyph)||(t==null?void 0:t.glyph)||"grid",minWidth:(l==null?void 0:l.minWidth)||(t==null?void 0:t.minWidth)||240,minHeight:(l==null?void 0:l.minHeight)||(t==null?void 0:t.minHeight)||260,singleHeight:(l==null?void 0:l.minHeight)||(t==null?void 0:t.singleHeight)||280,extra:!0}}const To=new Map;function Bd(s){if(To.clear(),!!Array.isArray(s))for(const t of s.slice(0,32))t&&/^plugin\.[a-z][a-z0-9-]{0,47}$/.test(t.id)&&["unsupported_abi","unsupported_protocol"].includes(t.code)&&To.set(t.id,t.code)}function Ka(s){return To.has(s)}function Ud(s=fetch){let t,n;return{read(l=!1){if(t)return t;if(n&&!l)return Promise.resolve(n);const u=new AbortController,c=setTimeout(()=>u.abort(),8e3);return t=B(null,null,function*(){var h;const r=yield s("/cgi-bin/luci/istore/home/v1/cards/",{credentials:"same-origin",signal:u.signal,cache:"no-store"});if(!r.ok||!((h=r.headers.get("Content-Type"))!=null&&h.includes("application/json")))throw Error("card_discovery_unavailable");const p=yield r.text();if(new TextEncoder().encode(p).length>65536)throw Error("card_registry_too_large");const v=JSON.parse(p);if(v.schemaVersion!==1)throw Error("card_registry_incompatible");return n=Rd(v.cards),Vd(n),Bd(v.issues),n}).finally(()=>{clearTimeout(c),t=void 0}),t}}}const Fd=Ud(),Mo=Na([]),Eo=Na(""),Io=Na("unknown");function Hd(s=!1){return B(this,null,function*(){try{Mo.value=yield Fd.read(s),Io.value="ready",Eo.value=""}catch(t){Io.value="unavailable",Eo.value="无法确认插件注册信息"}return Mo.value})}function Ko(){return{cards:Mo,error:Eo,state:Io,discover:Hd}}const Gd={viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.65","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},jd=["d"],Qe=X({__name:"HomeGlyph",props:{name:{}},setup(s){const t={activity:["M2 12h4l3-8 5 16 3-8h5"],devices:["M3 3h13v10H3z M7 17h5 M9 13v4 M17 8h4v12h-7v-4 M17 17h1"],network:["M9 3h6v5H9z M3 16h6v5H3z M15 16h6v5h-6z M12 8v4 M6 16v-4h12v4"],disk:["M5 3h14v18H5z M8 7h8 M8 11h8 M16 17h.01"],layers:["m12 3 10 5-10 5L2 8z M2 12l10 5 10-5 M2 16l10 5 10-5"],chip:["M6 6h12v12H6z M9 9h6v6H9z M9 2v4 M15 2v4 M9 18v4 M15 18v4 M2 9h4 M2 15h4 M18 9h4 M18 15h4"],grid:["M3 3h7v7H3z M14 3h7v7h-7z M3 14h7v7H3z M14 14h7v7h-7z"],arrow:["M5 12h14 M14 7l5 5-5 5"],tune:["M4 7h16 M4 17h16 M8 4v6 M16 14v6"],shield:["m12 2 8 3v6c0 5-5 9-8 11-3-2-8-6-8-11V5z M8 11l3 3 5-6"],globe:["M2 12h20 M12 2c6 6 6 14 0 20-6-6-6-14 0-20 M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20"],terminal:["m5 7 5 5-5 5 M13 17h6"],download:["M12 3v12 M7 10l5 5 5-5 M3 16v5h18v-5"],folder:["M3 6h7l2 3h9v11H3z"],check:["m5 12 4 4L19 6"],clock:["M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18","M12 7v5l3 2"],power:["M12 3v9","M6.5 5.5a9 9 0 1 0 11 0"]};return(n,l)=>(i(),d("svg",Gd,[(i(!0),d(V,null,oe(t[s.name]||t.grid,(u,c)=>(i(),d("path",{key:c,d:u},null,8,jd))),128))]))}}),Wd={class:"widget-action-icon","data-widget-action-icon":"","aria-hidden":"true"},Jd={class:"widget-action-label","data-widget-action-label":""},Kd=X({__name:"WidgetPrimaryAction",props:{icon:{}},emits:["click"],setup(s){return(t,n)=>(i(),d("button",{type:"button",class:"widget-primary-action","data-widget-primary-action":"",onClick:n[0]||(n[0]=l=>t.$emit("click",l))},[e("span",Wd,[Ct(t.$slots,"icon",{},()=>[G(Qe,{name:s.icon},null,8,["name"])],!0)]),e("span",Jd,[Ct(t.$slots,"default",{},void 0,!0)])]))}}),_a=le(Kd,[["__scopeId","data-v-2a34e862"]]),Zd=["aria-label"],Yd={key:0},Qd={class:"network-dialog-actions"},Xd=["href"],eu=["aria-label"],tu={class:"network-dialog-body"},nu=X({__name:"NetworkWidgetDialog",props:{title:{},wide:{type:Boolean},headerAction:{}},emits:["close"],setup(s,{emit:t}){const n=t,l=window.vue_lang==="en",u=x(null);let c=null,r="";const p=()=>{var h;return Array.from(((h=u.value)==null?void 0:h.querySelectorAll('button:not(:disabled),a[href],input:not(:disabled),select:not(:disabled),iframe,[tabindex="0"]'))||[]).filter(g=>g.getClientRects().length)};function v(h){var g;if(h.key==="Escape")h.preventDefault(),h.stopPropagation(),n("close");else if(h.key==="Tab"){const b=p(),m=b[0],f=b[b.length-1];m?h.shiftKey&&(document.activeElement===m||document.activeElement===u.value)?(h.preventDefault(),f.focus()):!h.shiftKey&&(document.activeElement===f||document.activeElement===u.value)&&(h.preventDefault(),m.focus()):(h.preventDefault(),(g=u.value)==null||g.focus())}}return nt(()=>B(null,null,function*(){var h;c=document.activeElement,r=document.body.style.overflow,document.body.style.overflow="hidden",yield ot(),(h=u.value)==null||h.focus()})),lt(()=>{document.body.style.overflow=r,c!=null&&c.isConnected&&c.focus({preventScroll:!0})}),(h,g)=>(i(),Y(Fo,{to:"body"},[e("div",{class:"network-dialog-shade",onClick:g[1]||(g[1]=Ge(b=>h.$emit("close"),["self"]))},[e("section",{ref_key:"element",ref:u,class:_e(["network-dialog home-semantic-colors",{"network-dialog-wide":s.wide}]),role:"dialog","aria-modal":"true","aria-label":s.title,tabindex:"-1",onKeydown:v},[e("header",null,[e("div",null,[s.wide?T("",!0):(i(),d("small",Yd,"QUICKSTART")),e("h2",null,a(s.title),1)]),e("div",Qd,[s.headerAction?(i(),d("a",{key:0,"data-network-dialog-open":"",href:s.headerAction.href,target:"_blank",rel:"noopener"},a(s.headerAction.label)+" ↗",9,Xd)):T("",!0),e("button",{"data-network-dialog-close":"",onClick:g[0]||(g[0]=b=>h.$emit("close")),"aria-label":l?"Close details":"关闭详情"},"×",8,eu)])]),e("div",tu,[Ct(h.$slots,"default",{},void 0,!0)])],42,Zd)])]))}}),na=le(nu,[["__scopeId","data-v-5faf698a"]]),au=["aria-label","aria-expanded","onKeydown"],su=["aria-label"],ou=["disabled","data-widget-menu-item","onClick"],lu=X({__name:"WidgetMenu",props:{label:{},items:{}},emits:["select"],setup(s,{emit:t}){const n=t,l=x(!1),u=x(null),c=x(null);function r(){return B(this,null,function*(){var b,m;l.value=!0,yield ot(),(m=(b=u.value)==null?void 0:b.querySelector("[role=menuitem]:not(:disabled)"))==null||m.focus()})}function p(){l.value?l.value=!1:r()}function v(b){var m;l.value=!1,(m=c.value)==null||m.focus({preventScroll:!0}),n("select",b)}function h(b){var m,f,k;if(b.key==="Escape")b.preventDefault(),b.stopPropagation(),l.value=!1,(m=c.value)==null||m.focus({preventScroll:!0});else if(["ArrowDown","ArrowUp","Home","End"].includes(b.key)){b.preventDefault();const $=Array.from(((f=u.value)==null?void 0:f.querySelectorAll("[role=menuitem]:not(:disabled)"))||[]),w=$.indexOf(document.activeElement);(k=$[b.key==="Home"?0:b.key==="End"?$.length-1:(w+(b.key==="ArrowDown"?1:-1)+$.length)%$.length])==null||k.focus()}else b.key==="Tab"&&(l.value=!1)}function g(b){var m;(m=u.value)!=null&&m.contains(b.target)||(l.value=!1)}return nt(()=>document.addEventListener("click",g)),lt(()=>document.removeEventListener("click",g)),(b,m)=>s.items.length?(i(),d("div",{key:0,class:"widget-menu",ref_key:"root",ref:u},[e("button",{ref_key:"trigger",ref:c,type:"button",class:"widget-menu-trigger","aria-label":s.label,"aria-haspopup":"menu","aria-expanded":l.value,onClick:p,onKeydown:Qt(Ge(r,["prevent"]),["down"]),"data-widget-more":""},"⋮",40,au),l.value?(i(),d("div",{key:0,class:"widget-menu-options",role:"menu","aria-label":s.label,onKeydown:h},[(i(!0),d(V,null,oe(s.items,f=>(i(),d("button",{key:f.id,type:"button",role:"menuitem",disabled:f.disabled,"data-widget-menu-item":f.id,onClick:k=>v(f.id)},a(f.label),9,ou))),128))],40,su)):T("",!0)],512)):T("",!0)}}),za=le(lu,[["__scopeId","data-v-a230b604"]]);class Pl extends Error{constructor(n,l="card_request_failed"){super(l);Nn(this,"status");this.status=n}}function iu(s,t,n,l={}){const u=Xe({preference:di(),effective:Ws()}),c=Xe({form:n}),r=Na(null),p=is(m=>Object.assign(u,m)),v=new Set;let h=!1;function g(k){return B(this,arguments,function*(m,f={}){var C,y,P,_,D,E;if(h)throw new Error("card_unmounted");if(!/^\/[A-Za-z0-9_-]+(?:\/[A-Za-z0-9_-]+)*\/?(?:\?[^#\x00-\x1f\x7f]*)?$/.test(m))throw new Error("invalid_card_path");const $=new AbortController;v.add($);const w=()=>$.abort();(C=f.signal)==null||C.addEventListener("abort",w,{once:!0}),(y=f.signal)!=null&&y.aborted&&w();const S=setTimeout(w,8e3);try{const A=new Headers(f.headers);f.body&&A.set("Content-Type","application/json");const U=((_=(P=window.L)==null?void 0:P.env)==null?void 0:_.token)||window.luci_token||window.token;let q=s+m;if(U&&f.method==="POST"){A.set("X-CSRF-Token",String(U));const F=q.indexOf("?"),Z=F<0?q:q.slice(0,F),Q=new URLSearchParams(F<0?"":q.slice(F+1));Q.set("token",String(U)),q=Z+"?"+Q.toString()}const z=yield fetch(q,Ne(ye({},f),{headers:A,signal:$.signal,credentials:"same-origin",cache:"no-store",redirect:"manual"}));if(z.type==="opaqueredirect")throw new Pl(401);if(!z.ok)throw new Pl(z.status);if(!((D=z.headers.get("Content-Type"))!=null&&D.includes("application/json")))throw new Error("invalid_card_response");const N=yield z.text();if(new TextEncoder().encode(N).length>8192)throw new Error("card_response_too_large");return JSON.parse(N)}finally{clearTimeout(S),v.delete($),(E=f.signal)==null||E.removeEventListener("abort",w)}})}function b(){var f;const m=r.value;r.value=null,(f=m==null?void 0:m.onClose)==null||f.call(m)}return{context:{theme:Cr(u),get form(){return c.form},apiBase:s,locale:t,request:g,components:l,openDetails(m,f={},k={}){h||(r.value=ye({component:m,props:f},k))}},details:r,closeDetails:b,setForm(m){c.form=m},dispose(){h=!0,p();for(const m of v)m.abort();v.clear(),r.value=null}}}const ru=s=>import(s);function cu(s=ru,t=15e3){const n=new Map,l=new Map;return function(c){const r=pi(c),p=r.entry,v=n.get(p);if(v)return v;const h=l.get(p)||0;if(h>3)return Promise.reject(new Error("card_reload_required"));let g;const b=new Promise((k,$)=>{g=setTimeout(()=>$(new Error("card_load_timeout")),t)}),m=h?p+"?qs-card-retry="+h:p,f=Promise.race([Promise.resolve().then(()=>s(m)),b]).then(k=>{const $=k.default;if(k.apiVersion!==1||!$||!(typeof $=="function"||typeof $=="object"&&(typeof $.setup=="function"||typeof $.render=="function")))throw new Error("card_export_incompatible");return k.default}).catch(k=>{throw n.delete(p),l.set(p,h+1),k}).finally(()=>clearTimeout(g));return n.set(p,f),f}}const du=cu(),uu=["aria-busy","data-card-state"],vu=["role"],pu=X({__name:"CardShell",props:{manifest:{},form:{},rediscover:{type:Function}},setup(s){const t=s,n=R(()=>window.vue_lang==="en"?mi(t.manifest.id).en:t.manifest.title),l=x(null),u=Na(null),c=x("waiting"),r=iu(t.manifest.apiBase,window.vue_lang||"zh-cn",t.form,{PrimaryAction:Kn(_a),Menu:Kn(za)});We(()=>t.form,f=>r.setForm(f));let p=!0,v=0,h=!1,g;function b(){return B(this,arguments,function*(f=t.manifest){const k=++v;c.value="loading";try{const $=yield du(f);p&&v===k&&(u.value=Kn($),c.value="ready")}catch($){if(!p||v!==k)return;if(!h&&t.rediscover){h=!0;try{const w=yield t.rediscover();if(p&&v===k&&w&&w.entry!==f.entry){yield b(w);return}}catch(w){}}p&&v===k&&(c.value="error")}})}function m(){u.value=null,b()}return Sr(()=>(u.value=null,c.value="error",!1)),nt(()=>{g=new IntersectionObserver(f=>{f.some(k=>k.isIntersecting)&&(g==null||g.disconnect(),b())},{rootMargin:"100px"}),l.value&&g.observe(l.value)}),lt(()=>{p=!1,v++,g==null||g.disconnect(),r.dispose()}),(f,k)=>(i(),d("section",{ref_key:"root",ref:l,class:"qs-card-shell","aria-busy":c.value==="loading","data-card-state":c.value},[u.value?(i(),Y(Aa(u.value),{key:0,context:o(r).context},null,8,["context"])):(i(),d("div",{key:1,class:"qs-card-placeholder",role:c.value==="error"?"status":void 0},[e("h2",null,a(n.value),1),e("p",null,a(c.value==="error"?"卡片暂时无法加载":"正在准备卡片…"),1),c.value==="error"?(i(),d("button",{key:0,onClick:m},"重试")):T("",!0)],8,vu)),o(r).details.value?(i(),Y(na,{key:2,title:n.value,wide:o(r).details.value.wide,"header-action":o(r).details.value.headerAction,onClose:k[1]||(k[1]=$=>o(r).closeDetails())},{default:pe(()=>[(i(),Y(Aa(o(r).details.value.component),Zl(o(r).details.value.props,{onClose:k[0]||(k[0]=$=>o(r).closeDetails())}),null,16))]),_:1},8,["title","wide","header-action"])):T("",!0)],8,uu))}}),Un=[{id:"traffic",zh:"网络流量",en:"Network traffic",glyph:"activity",minWidth:440,minHeight:280,singleHeight:300},{id:"connection",zh:"网络连接",en:"Connection & IP",glyph:"network",minWidth:300,minHeight:220,singleHeight:240},{id:"networkInterface",zh:"网络接口",en:"Network interfaces",glyph:"network",minWidth:280,minHeight:260,singleHeight:280,extra:!0},{id:"applications",zh:"应用工具",en:"Apps & tools",glyph:"grid",minWidth:240,minHeight:176,singleHeight:240},{id:"devices",zh:"设备列表",en:"LAN devices",glyph:"devices",minWidth:400,minHeight:300,singleHeight:340},{id:"system",zh:"系统信息",en:"System information",glyph:"chip",minWidth:260,minHeight:260,singleHeight:280},{id:"storage",zh:"磁盘信息",en:"Disks",glyph:"disk",minWidth:380,minHeight:280,singleHeight:330},{id:"sharing",zh:"存储服务",en:"Storage services",glyph:"folder",minWidth:280,minHeight:280,singleHeight:300},{id:"docker",zh:"Docker",en:"Docker",glyph:"layers",minWidth:280,minHeight:250,singleHeight:260,extra:!0},{id:"downloads",zh:"下载服务",en:"Downloads",glyph:"download",minWidth:280,minHeight:250,singleHeight:260,extra:!0},{id:"remote",zh:"远程域名",en:"Remote access",glyph:"globe",minWidth:280,minHeight:250,singleHeight:280,extra:!0}],rn=s=>s.startsWith("plugin.")?mi(s):Un.find(t=>t.id===s),Js=Symbol("quickstart-home-widget");function fa(s,t){const n=ba(Js,void 0);return n&&We(()=>({value:n.data[s],physical:s==="raid"?n.data.disks:void 0,bounded:n.bounded()}),l=>{l.value&&t(l.value)},{immediate:!0}),!!n}function qa(){return ba(Js,void 0)}const hu={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},mu=["fill"],fu=X({__name:"flow",props:{color:{type:String,default:"#2c2c2c"}},setup(s){return(t,n)=>(i(),d("svg",hu,[e("path",{d:"M879.674 544.51l-158.254-0.221c-8.534 2.287-17.305-2.776-19.588-11.307l-23.862-75.877-74.742 350.891c0 0-1.523 18.507-11.518 18.507s-26.9 0.281-26.9 0.281c-8.259 2.213-16.748-2.687-18.961-10.949l-92.741-457.648-70.305 330.634c-2.261 8.291-11.94 15.206-20.385 12.986l-24.876 0.339c-8.723 2.293-17.685-2.789-20.023-11.349L270.629 544.51 143.993 544.51c-8.831 0-15.993-7.159-15.993-15.993l0-31.986c0-8.831 7.162-15.993 15.993-15.993l157.429-0.516c9.565-0.304 17.685 0.788 20.023 9.351l24.386 76.092 68.642-358.907c0 0 3.4-10.894 14.397-10.894 10.994 0 34.107-0.448 34.107-0.448 8.262-2.213 16.751 2.687 18.965 10.949l91.912 454.126 67.948-326.182c2.213-8.262 8.707-15.161 16.965-12.948l27.316-0.333c8.531-2.287 17.301 2.776 19.588 11.31l46.665 148.4 127.337 0c8.835 0 15.993 7.162 15.993 15.993l0 31.986C895.667 537.352 888.508 544.51 879.674 544.51z","p-id":"5314",fill:s.color},null,8,mu)]))}}),{$gettext:Ua,$ngettext:gs}=Hs(),bu=s=>{},gu=()=>new Date().getTime(),_u=(s=0)=>{if(!Number.isFinite(s)||s<0)return"0 B";const t=1e3;if(s=t;r/=t)n*=t,l++;let u=[" KB"," MB"," GB"," TB"," PB"," EB"];return(s/100/(n/100)).toFixed(1)+u[l]},yu=s=>{if(s==null)return 0;if(s<1e4)return s;let n=parseInt(`${s/1e4}`),l=s%1e4;return`${n}万${l}`},ku=s=>{if(s)try{var t=new Date(s),n=t.getHours(),l=t.getMinutes(),u=t.getSeconds();return n<10&&(n=`0${n}`),l<10&&(l=`0${l}`),u<10&&(u=`0${u}`),`${n}:${l}:${u}`}catch(c){}return""},wu=s=>{if(s){let t=Math.floor(s/86400),n=Math.floor(s/3600)%24,l=Math.floor(s/60)%60,u=s%60;return(t>0?gs("%{ days }天","%{ days }天",t,{days:bs(t)}):"")+gs("%{ hours }小时","%{ hours }小时",n,{hours:bs(n)})+gs("%{ minutes }分","%{ minutes }分",l,{minutes:bs(l)})+gs("%{ seconds }秒","%{ seconds }秒",u,{seconds:bs(u)})}},$u=s=>/^\d+\.\d+\.\d+\.\d+$/.test(s),Cu=s=>s.length<3?Ua("用户名太短"):s.toLowerCase()!=s?Ua("用户名只能为小写"):new RegExp("^\\d").exec(s)?Ua("用户名不能以数字开头"):new RegExp("^_").exec(s)?Ua("用户名不能以_开头"):new RegExp("^[a-z0-9_]+$").exec(s)?!0:Ua("非法的用户名"),Su=(s,t)=>{let n=!0,l=null;const u=()=>{l=null,n&&s().finally(()=>{n&&(l=setTimeout(u,t))})};return l=setTimeout(u,0),()=>{n=!1,l!=null&&clearTimeout(l)}},xu=Object.freeze(Object.defineProperty({__proto__:null,UnixDate:gu,byteToSize:_u,checkIsIP:$u,checkSmabaUserName:Cu,dateForm:ku,easyInterval:Su,formatDate:bu,numberToSum:yu,stampForm:wu},Symbol.toStringTag,{value:"Module"})),Fn=ye({},xu),Pu={class:"title_box"},Tu={class:"display_flex"},Mu={class:"network_tag"},Eu={class:"tag_item"},Iu={class:"tag_item"},Du={class:"speed"},Lu={class:"speed_item"},Au={style:{color:"#1596fd"}},Nu={class:"speed_item"},Ou={style:{color:"#00a63e"}},zu=X({__name:"NetworkFlow",setup(s){const{$gettext:t}=Ae();Yl([Or,zr,qr,Ql,Xl,Rr]);const n=x(),l=q=>{var N;const z=(N=n.value)==null?void 0:N[q];return!z||z.startTime==0?"":h(z.startTime*1e3)+"-"+h(z.endTime*1e3)},u=R(()=>{var z;let q=[];return(z=n.value)==null||z.forEach(N=>{q.push({value:N.uploadSpeed})}),q}),c=R(()=>{var z;let q=[];return(z=n.value)==null||z.forEach(N=>{q.push({value:N.downloadSpeed})}),q}),r=R(()=>{var z;let q="";if(n.value){let N=((z=n.value)==null?void 0:z.length)||0;if(N>0){let F=n.value[N-1];q=g(F.uploadSpeed)+"/s"}}return q}),p=R(()=>{var z;let q="";if(n.value){let N=((z=n.value)==null?void 0:z.length)||0;if(N>0){let F=n.value[N-1];q=g(F.downloadSpeed)+"/s"}}return q});R(()=>{var z;let q=[];return(z=n.value)==null||z.forEach(N=>{q.push({value:N.downloadSpeed+N.uploadSpeed})}),q});const v=()=>B(null,null,function*(){var q;try{const z=yield we.Network.Statistics.GET();if(z.data&&(q=z.data.result)!=null&&q.items){const N=z.data.result.slots||10;if(z.data.result.items.lengthN?n.value=z.data.result.items.slice(N-z.data.result.items.length):n.value=z.data.result.items}}catch(z){console.log(z)}}),h=Fn.dateForm,g=Fn.byteToSize,b=x(),m=x();let f=null,k=null,$=null,w=null;const S=q=>{const z=$s();return k=z?"dark":"light",f=ei(q,z?"dark":"v5"),f.setOption({animation:!1,backgroundColor:z?"#2c2c2c":"#fff",color:["transparent","transparent"],tooltip:{trigger:"axis",formatter:N=>{if(Array.isArray(N)){let F="";N.length>0&&(F=l(N[0].axisValue));for(let Z=0;Z${N[Z].seriesName}: ${g(N[Z].value)}/s`;return F.toString()}else{const F=N;return`${l(F.axisValue)}
${F.seriesName}: ${g(F.value)}/s`}}},xAxis:{type:"category",boundaryGap:!1,splitLine:{lineStyle:{color:["#999"]},show:!1},name:"",show:!1,nameGap:0,nameTextStyle:{height:0,lineHeight:0,padding:0}},title:{text:"",textStyle:{fontSize:12,color:z?"#cccccc":"rgba(0, 0, 0, 0.6)"},top:"10px",left:"10px"},yAxis:{type:"value",name:"",minInterval:1e4,interval:1e3,axisLabel:{formatter:function(N,F){return`${g(N)}/s`},color:"#fff",show:!1},nameTextStyle:{color:"#fff"},splitLine:{lineStyle:{color:["#999"]},show:!1}},series:[{name:t("下载"),data:c.value,type:"line",symbol:"none",showSymbol:!1,symbolSize:0,smooth:!0,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(32, 199, 247, 1)"},{offset:1,color:"rgba(32, 199, 247, 0.1)"}],global:!1}}},{name:t("上传"),data:u.value,type:"line",symbol:"none",showSymbol:!1,symbolSize:0,smooth:!0,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(85, 58, 254, 1)"},{offset:1,color:"rgba(85, 58, 254, 0.1)"}],global:!1}}}],grid:{left:"2%",right:"2%",bottom:"0%",top:"10%",containLabel:!0}}),f},C=()=>{if(!f||!b.value)return;const q=Math.max(b.value.clientWidth,50),z=Math.max(b.value.clientHeight,50);f.resize({width:q,height:z})};let y=!1,P;const _=fa("traffic",q=>{const z=Math.max(1,Math.min(60,q.slots||10)),N=q.items.slice(-z);n.value=[...Array.from({length:Math.max(0,z-N.length)},()=>({downloadSpeed:0,uploadSpeed:0,startTime:0,endTime:0})),...N]});function D(){var q;f&&(f.setOption({xAxis:{data:((q=n.value)==null?void 0:q.map((z,N)=>N))||[]},series:[{name:t("下载"),data:c.value},{name:t("上传"),data:u.value}]}),C())}function E(){!f||!b.value||(f.dispose(),f=null,S(b.value),D())}We(n,D);function A(){return B(this,null,function*(){if(y)try{document.hidden||(yield v()),y&&D()}finally{y&&(P=window.setTimeout(A,5e3))}})}let U=()=>{};return nt(()=>{y=!0,U=is(z=>{f&&k!==z.effective&&E()});const q=()=>B(null,null,function*(){_||(yield v()),!(!y||!b.value)&&(S(b.value),C(),w=C,window.addEventListener("resize",w),$=new ResizeObserver(C),m.value&&$.observe(m.value),$.observe(b.value),_||(P=window.setTimeout(A,5e3)))});P=window.setTimeout(()=>{q()},_?0:900)}),lt(()=>{y=!1,window.clearTimeout(P),U(),f==null||f.dispose(),f=null,w&&window.removeEventListener("resize",w),$==null||$.disconnect()}),(q,z)=>(i(),d("div",{class:"network_container",ref_key:"containerRef",ref:m},[e("div",Pu,[e("div",Tu,[G(fu,{color:"#20c7f7",class:"icon"}),e("span",null,a(o(t)("网络流量")),1)]),e("div",null,[e("div",Mu,[e("div",Eu,[z[0]||(z[0]=e("div",{class:"tag_dn"},null,-1)),e("span",null,a(o(t)("下载")),1)]),e("div",Iu,[z[1]||(z[1]=e("div",{class:"tag_up"},null,-1)),e("span",null,a(o(t)("上传")),1)])])])]),e("div",Du,[e("div",Lu,[e("span",null,a(o(t)("下载速度")),1),e("div",Au,a(p.value),1)]),e("div",Nu,[e("span",null,a(o(t)("上传速度")),1),e("div",Ou,a(r.value),1)])]),e("div",{ref_key:"el",ref:b,class:"echart"},null,512)],512))}}),qu=le(zu,[["__scopeId","data-v-cd24141c"]]),fi=["computer","phone","tablet","tv","network","smart-home","camera","gaming","storage","printer","wearable","unknown","desktop","laptop","smart-speaker","smart-bulb","thermostat","sensor","door-lock","robot-vacuum","air-conditioner","projector","set-top-box","game-console","handheld-game","home-server","network-switch","access-point","network-bridge","e-reader"],po=s=>typeof s=="string"&&fi.includes(s),Tl={computer:"通用电脑",phone:"手机",tablet:"平板电脑",tv:"电视",network:"无线路由器","smart-home":"智能家居",camera:"摄像头",gaming:"游戏设备",storage:"网络存储",printer:"打印机",wearable:"穿戴设备",unknown:"未知设备",desktop:"台式电脑",laptop:"笔记本电脑","smart-speaker":"智能音箱","smart-bulb":"智能灯",thermostat:"温控器",sensor:"传感器","door-lock":"智能门锁","robot-vacuum":"扫地机器人","air-conditioner":"空调",projector:"投影仪","set-top-box":"电视盒子","game-console":"游戏主机","handheld-game":"掌上游戏机","home-server":"家庭服务器","network-switch":"网络交换机","access-point":"无线接入点","network-bridge":"网络桥接器","e-reader":"电子阅读器"},bi=s=>`/luci-static/quickstart/device-icons/${s==="unknown"?"computer":s}.webp`,Ml=s=>bi(s),Ru=["aria-label","title"],Vu=["src"],Bu=X({__name:"deviceSceneIcon",props:{scene:{},label:{},iconKey:{}},setup(s){const t=s,n=Ml("computer"),l=()=>t.iconKey?bi(t.iconKey):Ml(t.scene),u=x(l());We(()=>[t.scene,t.iconKey],()=>{u.value=l()});const c=()=>{u.value=n};return(r,p)=>(i(),d("span",{class:"device-scene-icon",role:"img","aria-label":s.label,title:s.label},[e("img",{src:u.value,alt:"","aria-hidden":"true",decoding:"async",loading:"lazy",onError:c},null,40,Vu)],8,Ru))}}),Da=le(Bu,[["__scopeId","data-v-4334b243"]]),Ds=(s,t)=>({phone:t("手机"),computer:t("电脑"),tablet:t("平板"),tv:t("电视与影音"),network:t("网络设备"),"smart-home":t("智能家居"),camera:t("摄像头"),gaming:t("游戏设备"),storage:t("存储与服务器"),printer:t("打印机"),wearable:t("穿戴设备"),unknown:t("未知设备")})[s],Do=(s,t)=>{const n=s.displayName||s.hostname||"";return n||(s.brand?`${s.brand} ${s.classification.source==="fallback"?t("设备"):Ds(s.scene,t)}`:t("未命名设备"))},Lo=(s,t)=>s.presenceState==="never_seen"?t("尚未上线"):s.online?t("在线"):t("离线"),Uu=(s,t)=>{const n=r=>r.find(p=>p.family===4&&p.primary)||r.find(p=>p.family===4)||r.find(p=>p.primary)||r[0],l=r=>r.length>20?`${r.slice(0,6)}…${r.slice(-9)}`:r,u=n(s.addresses.current);if(u)return{kind:"current",text:l(u.address),description:`${t("当前IP")}:${u.address}`};const c=n(s.addresses.historical);return c?{kind:"historical",text:`${t("历史")} ${l(c.address)}`,description:`${t("历史地址")}:${c.address}`}:s.mac?{kind:"mac",text:s.mac,description:`${t("MAC地址")}:${s.mac}`}:{kind:"identity",text:`ID · ${s.deviceId.slice(-8)}`,description:`${t("地址待确认")} · ID:${s.deviceId}`}};let _s=0;const Fu={props:{type:String,message:String|Function,Close:Function,countdown:Number},data(){return{show:!1,remain:0}},mounted(){if(window.setTimeout(()=>{this.show=!0},0),this.countdown){this.remain=this.countdown;const s=()=>{this.show&&this.remain>0&&(this.remain=this.remain-1,_s=window.setTimeout(s,1e3))};_s=window.setTimeout(s,1e3)}},computed:{Message(){return this.message+(this.countdown?" "+this.remain+"s":"")}},methods:{Stop(){this.type!="loading"&&(this.show=!1,_s!=0&&clearTimeout(_s),this.Close())}}},Hu={key:0,class:"loading icon"},Gu={key:1,class:"success icon"},ju={key:2,class:"error icon"},Wu={key:3,class:"warning icon"};function Ju(s,t,n,l,u,c){return i(),Y(fn,{name:"el-fade-in-linear"},{default:pe(()=>[u.show?(i(),d("div",{key:0,class:"toast",onClick:t[0]||(t[0]=r=>c.Stop())},[n.type=="loading"?(i(),d("div",Hu,[...t[1]||(t[1]=[e("svg",{t:"1631799919469",class:"icon",viewBox:"0 0 1047 1047",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"3453",width:"128",height:"128"},[e("path",{d:"M522.695111 1.991111c-26.339556 0.170667-47.416889 21.475556-47.672889 48.753778-0.284444 26.453333-0.056889 52.963556-0.056889 79.445333 0 27.249778-0.369778 54.528 0.113778 81.777778 0.483556 27.050667 22.016 47.132444 49.351111 46.904889a47.786667 47.786667 0 0 0 47.729778-47.445333c0.284444-53.76 0.284444-107.52-0.028444-161.251556-0.170667-27.676444-21.902222-48.355556-49.436445-48.184889m-195.896889 88.092445c-8.334222-14.222222-21.646222-21.276444-38.314666-21.333334-35.128889 0-56.576 36.949333-38.968889 68.152889a11616.995556 11616.995556 0 0 0 78.961777 137.614222 44.942222 44.942222 0 0 0 61.838223 16.896c21.304889-12.202667 29.667556-38.968889 17.379555-60.871111-26.453333-47.104-53.560889-93.866667-80.896-140.458666m-228.693333 234.524444c44.316444 25.799111 88.746667 51.342222 133.176889 76.970667 6.712889 3.896889 13.681778 6.912 21.703111 6.428444 20.138667 0.142222 35.953778-11.946667 41.301333-31.573333 5.006222-18.261333-2.673778-36.721778-20.224-46.990222-44.629333-26.026667-89.372444-51.882667-134.115555-77.710223-22.528-12.999111-47.815111-7.025778-59.818667 13.909334-12.231111 21.248-4.977778 45.624889 17.948444 58.965333m34.161778 235.975111c26.396444 0 52.821333 0.199111 79.217778-0.085333 23.409778-0.256 39.139556-16.412444 38.798222-39.139556-0.341333-21.617778-16.924444-37.347556-39.594666-37.376-51.655111-0.056889-103.310222-0.056889-154.965334 0.028445-24.177778 0.056889-40.704 15.985778-40.561778 38.684444 0.142222 22.186667 16.583111 37.745778 40.192 37.859556 25.656889 0.142222 51.285333 0.028444 76.913778 0m151.722667 100.238222a34.247111 34.247111 0 0 0-46.876445-12.942222 13764.778667 13764.778667 0 0 0-139.008 80.583111c-11.093333 6.485333-16.327111 16.867556-16.497777 25.372444 0.085333 30.549333 27.249778 47.957333 50.403555 35.072 47.160889-26.197333 93.724444-53.475556 140.145778-80.924444 17.180444-10.154667 21.504-30.378667 11.832889-47.160889m91.875555 101.660444c-14.250667-4.067556-27.619556 1.422222-35.84 15.644445a24375.466667 24375.466667 0 0 0-77.312 134.485333c-10.012444 17.550222-5.859556 35.669333 9.784889 45.027556 16.014222 9.557333 34.247111 4.039111 44.714667-13.994667 25.543111-44.088889 50.915556-88.263111 76.373333-132.352 3.299556-5.745778 5.688889-11.690667 5.745778-14.933333 0-17.834667-9.272889-29.866667-23.466667-33.877334m147.456 44.288c-16.384 0.085333-27.306667 11.918222-27.448888 30.151111-0.142222 25.372444-0.028444 50.716444-0.028445 76.060445h-0.085333c0 26.112-0.113778 52.252444 0.056889 78.364444 0.113778 18.261333 11.064889 30.065778 27.448889 30.208 16.952889 0.142222 28.046222-11.832889 28.103111-30.748444 0.113778-51.086222 0.142222-102.172444 0.056889-153.258667 0-18.773333-11.207111-30.862222-28.103112-30.776889m177.208889-26.112c-7.509333-12.8-21.902222-16.014222-33.792-8.874666a23.722667 23.722667 0 0 0-8.533333 32.995555c26.282667 46.279111 52.906667 92.330667 79.644444 138.353778 4.494222 7.765333 11.633778 11.946667 20.906667 11.804444 18.545778-0.142222 30.520889-19.342222 21.219556-35.868444-26.026667-46.392889-52.650667-92.444444-79.473778-138.410667m239.957333-41.187555c-45.283556-26.254222-90.595556-52.48-135.964444-78.648889-4.693333-2.702222-9.728-4.323556-15.36-2.958222-9.102222 2.247111-14.933333 8.049778-16.497778 17.095111-1.877333 10.894222 3.84 18.204444 12.885333 23.438222 29.809778 17.180444 59.562667 34.417778 89.344 51.598222 15.217778 8.789333 30.236444 17.976889 45.738667 26.225778 14.677333 7.793778 31.061333-2.048 31.061333-18.033778-0.056889-8.448-4.096-14.592-11.207111-18.716444m48.867556-234.638222c-24.888889-0.085333-49.749333 0-74.609778 0v-0.085334c-25.258667 0-50.517333-0.056889-75.776 0.028445-13.425778 0.056889-20.963556 6.343111-21.162667 17.294222-0.199111 11.150222 7.082667 17.521778 20.679111 17.550222 50.488889 0.113778 100.977778 0.142222 151.495112 0.085333 13.368889 0 21.191111-6.485333 21.390222-17.152 0.227556-10.808889-8.106667-17.664-22.016-17.720888m-187.960889-127.146667c45.084444-26.026667 90.140444-52.110222 135.168-78.222222 4.864-2.844444 8.248889-6.855111 8.135111-12.942223-0.142222-11.036444-11.207111-17.436444-21.504-11.548444-45.511111 26.055111-90.851556 52.394667-136.135111 78.819556-7.68 4.494222-10.524444 11.52-5.575111 19.569777 4.835556 7.850667 12.088889 8.817778 19.911111 4.323556m-122.311111-115.114667c5.205333-0.256 8.220444-3.413333 10.609778-7.651555 4.920889-8.647111 10.040889-17.208889 14.990222-25.827556 20.48-35.555556 40.931556-71.025778 61.297778-106.609778 5.091556-8.874667 3.015111-16.668444-4.778667-18.517333-7.68-1.848889-10.894222 3.697778-14.051556 9.159111l-68.778666 119.495111c-2.844444 4.977778-6.030222 9.870222-8.305778 15.104-3.128889 7.196444 1.678222 14.648889 9.045333 14.848","p-id":"3454"})],-1)])])):n.type=="success"?(i(),d("div",Gu,[...t[2]||(t[2]=[e("svg",{t:"1632451272305",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2204",width:"128",height:"128"},[e("path",{d:"M1001.305115 275.874141 431.461709 845.718571c-28.221762 28.221762-73.977875 28.221762-102.20066 0L22.661116 539.116591c-28.222785-28.221762-28.222785-73.979922 0-102.20066 28.221762-28.221762 73.977875-28.221762 102.20066 0l255.500115 255.502162 518.743588-518.743588c28.221762-28.221762 73.977875-28.221762 102.199637 0C1029.5279 201.89422 1029.5279 247.65238 1001.305115 275.874141z","p-id":"2205"})],-1)])])):n.type=="error"?(i(),d("div",ju,[...t[3]||(t[3]=[e("svg",{t:"1632451325789",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2204",width:"128",height:"128"},[e("path",{d:"M823.04 840.32 524.16 540.16l296.32-294.4c12.8-12.8 12.8-33.28 0-45.44-12.8-12.8-33.28-12.8-46.08 0L478.08 494.08 184.96 200.32c-12.8-12.8-33.28-12.8-45.44 0s-12.8 33.28 0 45.44l292.48 293.76-302.72 300.8c-12.8 12.8-12.8 33.28 0 45.44 12.8 12.8 33.28 12.8 46.08 0l302.72-300.16 299.52 300.16c12.8 12.8 33.28 12.8 45.44 0C835.2 873.6 835.2 853.12 823.04 840.32z","p-id":"2205"})],-1)])])):n.type=="warning"?(i(),d("div",Wu,[...t[4]||(t[4]=[e("svg",{t:"1632451401172",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"1638",width:"128",height:"128"},[e("path",{d:"M512 1021.45211835a60.32985613 60.32985613 0 1 1 60.32985613-60.32985611 60.32985613 60.32985613 0 0 1-60.32985613 60.32985611z m86.85823451-924.97400238L572.32985613 719.80283775a60.32985613 60.32985613 0 0 1-120.65971226 0l-26.52837838-623.32472178c-0.16758294-2.22885301-0.28489098-4.49122263-0.284891-6.78710881a87.14312551 87.14312551 0 0 1 174.28625102 0c0 2.2958862-0.11730806 4.5582558-0.284891 6.78710881z","p-id":"1639"})],-1)])])):T("",!0),e("div",{class:"message",onClick:Ge(()=>{},["stop"])},a(c.Message),1)])):T("",!0)]),_:1})}const Ku=le(Fu,[["render",Ju],["__scopeId","data-v-1bb2b3b2"]]),Ya=new Map,Ra=s=>{const t=cn(Ku,Ne(ye({},s),{Close:()=>{l()}})),n=document.createElement("div");document.body.append(n),t.mount(n);const l=()=>{n.remove(),Ya.get(t._uid)&&Ya.delete(t._uid)};return s.type=="loading"&&Ya.set(t._uid,{Close:l}),(s==null?void 0:s.duration)==0||((s==null?void 0:s.duration)>0?setTimeout(()=>{l()},s==null?void 0:s.duration):setTimeout(()=>{l()},3e3)),{Close:l}},ne=s=>Ra(s);ne.Loading=(s,t)=>Ra({type:"loading",message:s||"加载中...",duration:0,countdown:t||0});ne.Success=s=>Ra({type:"success",message:s});ne.Error=s=>Ra({type:"error",message:s,duration:0});ne.Warning=s=>Ra({type:"warning",message:s});ne.Message=s=>Ra({message:s});ne.Clear=()=>{Ya.forEach((s,t)=>{s.Close(),Ya.delete(t)})};const{$gettext:Ma}=Hs(),Xt={installApp:(s,t)=>new Promise((n,l)=>{let u=0;we.App.Install.POST({name:s}).then(()=>{const c=setTimeout(()=>{u==0&&(u=1,n(!1))},(t||60)*1e3),r=()=>{u==0&&we.App.Check.POST({name:s}).then(p=>{if(u==0&&p!=null&&p.data){const{result:v}=p.data;if((v==null?void 0:v.status)=="installed"){clearTimeout(c),u=1,n(!0);return}}}).catch(p=>{}).finally(()=>{u==0&&setTimeout(r,3e3)})};setTimeout(r,3e3)}).catch(c=>{u==0&&(u=1,l(Ma("安装失败,")+c))})}),checkAndInstallApp:(s,t,n,l)=>B(null,null,function*(){if(l&&!l())return!1;let u=ne.Loading(Ma("检查中..."));try{const c=yield we.App.Check.POST({name:s});if(u.Close(),l&&!l())return!1;if(c!=null&&c.data){const{result:r,error:p}=c.data;if(p)ne.Warning(p);else if(r){if(r.status=="installed")return!0;if(confirm(Ma("检测到你尚未安装 %{name} 插件,是否安装?",{name:t}))){u=ne.Loading(Ma("正在安装中..."));const v=yield Xt.installApp(n||s);if(u.Close(),v)return!0;ne.Error(Ma("安装失败或超时,请检查软件源或稍候重试"))}}else ne.Warning(Ma("检查插件状态失败"))}return!1}catch(c){return u.Close(),ne.Warning(c),!1}}),installAndGo:(s,t,n,l)=>B(null,null,function*(){(yield Xt.checkAndInstallApp(s,t,l))&&(location.href=n)})},Zu=["data-device-form"],Yu={class:"device-header-actions widget-action-group"},Qu={class:"inventory-heading"},Xu=["aria-label"],e1={key:0,class:"module-state"},t1={key:1,class:"module-state"},n1={key:1},a1={key:2,class:"module-state"},s1={key:1},o1={key:0,class:"module-notice"},l1={key:1,class:"canvas-devices"},i1=["onClick","data-canvas-device","title","aria-label"],r1=["data-device-address","title"],c1={dir:"ltr"},d1={key:4,class:"module-notice"},u1={class:"inventory-footer"},v1=X({__name:"DeviceWidget",props:{data:{},errors:{},devices:{},contextualActions:{type:Boolean},summaryLimit:{},diskLimit:{},summary:{type:Boolean}},emits:["navigate","device","retry"],setup(s,{emit:t}){const n=s,l=t,u=window.vue_lang==="en",c=(y,P)=>u?P:y,r=y=>u&&{手机:"Phone",电脑:"Computer",平板:"Tablet",电视与影音:"TV & media",网络设备:"Network",智能家居:"Smart home",摄像头:"Camera",游戏设备:"Gaming",存储与服务器:"Storage & server",打印机:"Printer",穿戴设备:"Wearable",未知设备:"Unknown device",未命名设备:"Unnamed device",在线:"Online",离线:"Offline",尚未上线:"Not yet seen",设备:"Device",当前IP:"Current IP",历史:"Prev.",历史地址:"Previous address",MAC地址:"MAC address",地址待确认:"Address unconfirmed"}[y]||y,p=R(()=>{var y;return n.devices.slice(0,(y=n.summaryLimit)!=null?y:6)}),v=R(()=>p.value.map(y=>{const P=Uu(y,r),_=[y.brand,y.classification.source==="fallback"?c("类型待确认","Type unconfirmed"):Ds(y.scene,r)].filter(Boolean).join(" · ");return{device:y,address:P,description:[Do(y,r),P.description,_,h(y)].join(" · ")}}));function h(y){return n.errors.inventory?c("上次记录","Last recorded"):Lo(y,r)}const g=R(()=>!n.data.inventory&&!n.errors.inventory),b=R(()=>n.errors.inventory==="permission"?c("登录或读取权限失效","Session or access expired"):c("设备清单暂不可用","Device inventory unavailable")),m=R(()=>{var y,P;return((P=(y=n.data.inventory)==null?void 0:y.health)==null?void 0:P.state)&&n.data.inventory.health.state!=="ready"}),f=R(()=>c("部分设备观测信息暂不完整。","Some device observations are incomplete.")),k=R(()=>{var y,P,_,D;return(y=n.data.routerContext)!=null&&y.multiLAN?c("地址与路线设置按各局域网分别管理。","Address and path settings are managed per LAN."):(_=(P=n.data.routerContext)==null?void 0:P.routeEditability)!=null&&_.editable?c("本机负责此局域网地址分配,可在设备详情设置固定地址与上网路线。","This router allocates LAN addresses. Configure reservations and Internet paths in device details."):((D=n.data.routerContext)==null?void 0:D.dhcpAuthority)==="external_observed"?c("本机不负责此局域网地址分配;固定地址与上网路线请到分配地址的主路由设置。","This router does not allocate LAN addresses. Use the allocating router for reservations and Internet paths."):c("地址分配方尚不明确;固定地址与上网路线暂为只读。","Address allocator unconfirmed. Reservations and Internet paths are read only.")}),$=R(()=>{var y;return((y=n.data.lanNetworks)==null?void 0:y.length)===1?n.data.lanNetworks[0].networkId:"all"}),w=y=>l("navigate",n.data.lanNetworks&&!n.data.lanLegacy?`${y}?network=${encodeURIComponent($.value)}`:y);function S(y){l("navigate",`/devicemanagement?device=${encodeURIComponent(y.deviceId)}&network=${encodeURIComponent(y.networkId||$.value)}`)}function C(){return B(this,null,function*(){(yield Xt.checkAndInstallApp("luci-app-oaf",c("应用过滤","App filtering")))&&window.location.assign("/cgi-bin/luci/admin/services/appfilter")})}return(y,P)=>(i(),d("article",{class:_e(["canvas-module module-devices",{"is-device-summary":s.summary}]),"data-device-form":s.summary?"summary":"standard","data-canvas-module":"devices"},[e("header",null,[e("div",null,[G(Qe,{name:"devices"}),e("h2",null,a(c("设备列表","Devices")),1)]),e("div",Yu,[G(_a,{icon:"devices",onClick:P[0]||(P[0]=_=>w("/devicemanagement")),"data-canvas-view-all":""},{default:pe(()=>[ue(a(c("查看全部","View all")),1)]),_:1}),G(za,{label:c("设备更多操作","More device actions"),items:[{id:"parental",label:c("家长控制","Parental controls")}],onSelect:C},null,8,["label","items"])])]),e("div",Qu,[e("strong",null,[ue(a(g.value||!s.devices.length&&s.errors.inventory?"—":s.devices.filter(_=>_.online).length),1),e("span",null,a(s.errors.inventory&&s.devices.length?c("上次在线","previously online"):c("在线","online")),1)]),e("small",null,a(g.value||!s.devices.length&&s.errors.inventory?c("数量待确认","Count unconfirmed"):`${s.devices.length} ${c("台 · 本次开机发现","discovered this boot")}`),1),e("button",{onClick:P[1]||(P[1]=_=>y.$emit("retry")),"aria-label":c("刷新设备","Refresh devices"),"data-refresh-inventory":""},"↻",8,Xu)]),g.value?(i(),d("div",e1,[(i(!0),d(V,null,oe(s.summary?1:3,_=>(i(),d("div",{class:"skeleton",key:_}))),128)),e("span",null,a(c("正在读取设备清单","Loading devices")),1)])):s.errors.inventory&&!s.devices.length?(i(),d("div",t1,[s.summary?T("",!0):(i(),Y(Qe,{key:0,name:"devices"})),e("strong",null,a(b.value),1),s.summary?T("",!0):(i(),d("p",n1,a(c("其他首页模块仍可使用。","Other modules remain available.")),1)),e("button",{onClick:P[2]||(P[2]=_=>y.$emit("retry"))},a(c("重试","Retry")),1)])):s.devices.length?(i(),d(V,{key:3},[s.errors.inventory?(i(),d("p",o1,a(c("上次快照 · 当前状态待确认","Previous snapshot · Current state unconfirmed")),1)):T("",!0),s.summary?T("",!0):(i(),d("div",l1,[(i(!0),d(V,null,oe(v.value,({device:_,address:D,description:E})=>(i(),d("button",{key:`${_.networkId}:${_.deviceId}`,onClick:A=>S(_),"data-canvas-device":_.deviceId,title:E,"aria-label":E},[G(Da,{scene:_.scene,"icon-key":_.iconKey,label:o(Ds)(_.scene,r)},null,8,["scene","icon-key","label"]),e("span",null,[e("strong",null,a(o(Do)(_,r)),1),e("small",{class:"device-address","data-device-address":D.kind,title:D.description},[e("bdi",c1,a(D.text),1)],8,r1)]),e("span",{class:_e(["device-online",{offline:!_.online}])},[P[4]||(P[4]=e("i",null,null,-1)),ue(a(s.errors.inventory?c("上次记录","Last recorded"):o(Lo)(_,r)),1)],2)],8,i1))),128))]))],64)):(i(),d("div",a1,[s.summary?T("",!0):(i(),Y(Qe,{key:0,name:"devices"})),e("strong",null,a(c("暂未发现设备","No devices discovered")),1),s.summary?T("",!0):(i(),d("p",s1,a(c("本局域网设备上线后会自动出现。","Devices appear when observed on this LAN.")),1)),s.summary?T("",!0):(i(),d("button",{key:2,onClick:P[3]||(P[3]=_=>w("/devicemanagement"))},a(c("添加或查看设备","Add or view devices")),1))])),m.value?(i(),d("p",d1,a(f.value)+" "+a(c("设备清单仍可使用。","Inventory remains available.")),1)):T("",!0),e("footer",u1,[e("small",null,a(c("仅显示本机观察到的设备","Only devices observed by this router")),1),e("details",null,[e("summary",null,a(c("地址与路线权限","Address & path permissions")),1),e("p",null,a(k.value),1)])])],10,Zu))}}),p1=le(v1,[["__scopeId","data-v-3d9c87f1"]]),On=Xe({app:null,status:"idle",source:"home"});let Qa,Ls,Zn;function h1(s,t,n){return Qa=s,Ls=t,Zn=n,()=>{Qa===s&&(Zn==null||Zn(),Qa=void 0,Ls=void 0,Zn=void 0)}}function m1(s,t){return Qa?(Qa(s,t),!0):!1}function Ao(s,t="home"){return Ls?(Ls(s,t),!0):!1}function gi(){Zn==null||Zn()}const es=[{id:"files",zh:"文件管理",en:"Files",detail:"磁盘与文件",detailEn:"Disks & files",glyph:"folder",path:"/cgi-bin/luci/admin/services/linkease/file/",kind:"builtin",tone:"blue"},{id:"docker",zh:"Docker",en:"Docker",detail:"容器管理",detailEn:"Containers",glyph:"layers",path:"",kind:"app",tone:"blue"},{id:"qbittorrent",zh:"qBittorrent",en:"qBittorrent",detail:"下载管理",detailEn:"Downloads",glyph:"download",path:"",kind:"app",tone:"teal"},{id:"ddnsto",zh:"DDNSTO",en:"DDNSTO",detail:"远程访问",detailEn:"Remote access",glyph:"globe",path:"",kind:"app",tone:"violet"},{id:"linkease",zh:"易有云",en:"LinkEase",detail:"文件与远程",detailEn:"Files & remote access",glyph:"folder",path:"",kind:"app",tone:"teal"},{id:"fastnet",zh:"网络测速",en:"Speed test",detail:"FastNet",detailEn:"FastNet",glyph:"activity",path:"",kind:"app",tone:"blue"},{id:"oaf",zh:"家长控制",en:"Parental controls",detail:"应用过滤",detailEn:"App filtering",glyph:"shield",path:"",kind:"app",tone:"violet"},{id:"devices",zh:"局域网设备",en:"LAN devices",detail:"设备与策略",detailEn:"Devices & policies",glyph:"devices",path:"/devicemanagement",kind:"builtin",tone:"blue"},{id:"network",zh:"网络向导",en:"Network setup",detail:"网络配置",detailEn:"Network configuration",glyph:"network",path:"/network",kind:"builtin",tone:"teal"}],As=[{id:"tool-lan",zh:"内网配置",en:"LAN settings",detail:"地址与DHCP",detailEn:"Address & DHCP",glyph:"network",path:"",kind:"tool",tone:"blue",tool:"lan"},{id:"tool-terminal",zh:"终端",en:"Terminal",detail:"命令行",detailEn:"Command line",glyph:"terminal",path:"",kind:"tool",tone:"teal",tool:"terminal"},{id:"tool-firmware",zh:"固件更新",en:"Firmware update",detail:"升级与自动检查",detailEn:"Update & auto-check",glyph:"download",path:"/cgi-bin/luci/admin/system/ota",kind:"tool",tone:"violet",tool:"firmware"},{id:"tool-dns",zh:"DNS配置",en:"DNS settings",detail:"网络解析",detailEn:"Name resolution",glyph:"globe",path:"",kind:"tool",tone:"teal",tool:"dns"},{id:"tool-source",zh:"软件源配置",en:"Software sources",detail:"软件包镜像",detailEn:"Package mirrors",glyph:"layers",path:"",kind:"tool",tone:"violet",tool:"source"},{id:"tool-sandbox",zh:"开启沙箱",en:"Enable sandbox",detail:"隔离实验环境",detailEn:"Experiment environment",glyph:"shield",path:"",kind:"tool",tone:"blue",tool:"sandbox"},{id:"tool-logs",zh:"日志查看",en:"System logs",detail:"系统日志",detailEn:"System events",glyph:"folder",path:"/cgi-bin/luci/admin/status/logs",kind:"tool",tone:"teal",tool:"logs"},{id:"tool-maintenance",zh:"系统维护",en:"Maintenance",detail:"系统维护工具",detailEn:"System maintenance",glyph:"tune",path:"/cgi-bin/luci/admin/store/pages/maintance",kind:"tool",tone:"blue",tool:"maintenance"}],f1=As.map(s=>s.id);function ho(s){if(!s||typeof s!="object")return null;const t=s;return t.v!==1||typeof t.id!="string"||!/^[a-zA-Z0-9][a-zA-Z0-9_.+-]{0,127}$/.test(t.id)||typeof t.scroll!="number"||!Number.isFinite(t.scroll)?null:ye(ye({v:1,id:t.id,scroll:Math.max(0,Math.min(1e6,t.scroll))},t.restoration==="auto"||t.restoration==="manual"?{restoration:t.restoration}:{}),t.source==="traffic"&&t.id==="fastnet"?{source:"traffic"}:{})}function Fa(s){if(s.panel!=="applications")return null;const t=["all","apps","tools","links"].includes(String(s.tab))&&typeof s.tab=="string"?s.tab:"all",n=typeof s.page=="string"&&/^[1-9][0-9]{0,2}$/.test(s.page)?Number(s.page):1;return{tab:t,page:n}}function mo(s,t){const n=ye({},s);return delete n.panel,delete n.tab,delete n.page,t?Ne(ye({},n),{panel:"applications",tab:t.tab,page:String(Math.max(1,Math.min(999,Math.floor(t.page)||1)))}):n}function El(s){const t=s&&typeof s=="object"?s:{},n=(l,u)=>typeof l=="string"?l.replace(/[\u0000-\u001f]/g,"").slice(0,u):"";return ye({v:1,search:n(t.search,256),scroll:typeof t.scroll=="number"&&Number.isFinite(t.scroll)?Math.max(0,Math.min(1e6,t.scroll)):0,focus:n(t.focus,128)},typeof t.from=="string"&&t.from.startsWith("/")&&t.from.length<=2048?{from:t.from}:{})}function b1(s){const t=as(),n=ta(),l=x(!1);let u=!1,c=!1,r=!1,p=null,v=0,h=Promise.resolve();const g=()=>{var D;return El((D=window.history.state)==null?void 0:D.qsLauncher)};function b(D){const E=g(),A=document.querySelector(".applications-browser-body");return Ne(ye({},E),{search:s.search.value,scroll:(A==null?void 0:A.scrollTop)||0,focus:D!=null?D:E.focus})}function m(D){!s.enabled||!s.opened.value||window.history.replaceState(Ne(ye({},window.history.state),{qsLauncher:b(D)}),"")}function f(){return B(this,null,function*(){var U;if(!p||!s.opened.value)return;const D=p;if(yield ot(),!s.opened.value||p!==D)return;const E=document.querySelector(".applications-browser-body");E&&(E.scrollTop=D.scroll);const A=D.focus?document.querySelector('[data-open-app="'+CSS.escape(D.focus)+'"]'):null;A&&A.focus({preventScroll:!0}),s.settled()&&(p=null,!A&&D.focus&&((U=document.querySelector(".application-search input"))==null||U.focus({preventScroll:!0})))})}function k(){return B(this,null,function*(){if(!u||!s.enabled)return;const D=++v,E=n.path==="/"?Fa(n.query):null;l.value=!0;try{if(!E){p=null,s.opened.value&&s.hide();return}p=g(),yield s.show(r,E,p),r=!1,D===v&&(yield f())}finally{D===v&&(l.value=!1)}})}function $(){if(!s.enabled||!u||c||l.value||!s.opened.value||!Fa(n.query))return h;const D={tab:s.tab.value,page:s.page.value},E=b();return h=h.catch(()=>{}).then(()=>B(null,null,function*(){if(!u||c||!s.opened.value||!Fa(n.query))return;const A=mo(n.query,D);n.query.tab!==A.tab||n.query.page!==A.page?yield t.replace({query:A,state:{qsLauncher:E}}):window.history.replaceState(Ne(ye({},window.history.state),{qsLauncher:E}),"")})),h}function w(D){return B(this,null,function*(){if(!s.enabled)return;if(r=D,Fa(n.query)){yield k();return}const E=Ne(ye({},El(null)),{from:n.fullPath});yield t.push({query:mo(n.query,{tab:"all",page:1}),state:{qsLauncher:E}})})}function S(){return B(this,null,function*(){var D;if(!s.enabled)return!0;c=!0;try{yield h.catch(()=>{});const E=g();return E.from&&((D=window.history.state)==null?void 0:D.back)===E.from?yield new Promise(A=>{const U=t.afterEach(()=>{U(),clearTimeout(q),A()}),q=window.setTimeout(()=>{U(),A()},1500);t.back()}):yield t.replace({query:mo(n.query,null)}),yield ot(),!s.opened.value}finally{c=!1}})}function C(D){return B(this,null,function*(){yield $(),m(D)})}function y(){return s.enabled?s.saving()?!1:!s.dirty.value||s.confirm():!0}ti(y),Vr(D=>D.path==="/"&&Fa(D.query)?!0:y()),We(()=>n.fullPath,()=>{k()},{flush:"post"}),We([s.tab,s.search,s.page],()=>{$()},{flush:"post"}),We(()=>[s.settled(),s.currentPage()],()=>{s.enabled&&(f(),s.settled()&&s.opened.value&&!l.value&&s.page.value!==s.currentPage()&&(s.page.value=s.currentPage()))},{flush:"post"});const P=()=>m(),_=()=>{s.enabled&&s.opened.value&&(p=g(),f())};return nt(()=>{u=!0,s.enabled&&(window.addEventListener("pagehide",P),window.addEventListener("pageshow",_),k())}),lt(()=>{u=!1,v++,window.removeEventListener("pagehide",P),window.removeEventListener("pageshow",_)}),{applying:l,open:w,close:S,remember:C,persist:$}}function No(s){if(!s||typeof s!="object"||Array.isArray(s))throw new Error("error");return s}function Ns(s){return typeof s=="string"&&/^\/(?!\/)/.test(s)&&s.length<=2048&&!/[\u0000-\u0020\u007f\\]/.test(s)?s:""}function g1(s){const t=Number(s);if(!/^[0-9]{1,5}$/.test(s)||t<1||t>65535)throw new Error("error");return t}function _1(s,t){const n=s.web;if(typeof n!="string"||!n||n.length>2048||/[\u0000-\u0020\u007f\\]/.test(n))throw new Error("error");const l=new URL(t);let u;const c=n.match(/^:([0-9]{1,5})(\/.*)?$/);if(c){if(s.protocol!=="http"&&s.protocol!=="https")throw new Error("error");const r=g1(c[1]);if(s.port!==void 0&&Number(s.port)!==r)throw new Error("error");u=new URL(l.origin),u.protocol=s.protocol+":",u.port=String(r);const p=new URL(c[2]||"/",u.origin);if(p.origin!==u.origin)throw new Error("error");u=p}else if(Ns(n))u=new URL(n,l.origin);else{if(!/^https?:\/\//.test(n))throw new Error("error");u=new URL(n)}if(!["http:","https:"].includes(u.protocol)||u.username||u.password)throw new Error("error");if(u.hostname!==l.hostname&&(/^(localhost|0\.0\.0\.0|127\.)/.test(u.hostname)||["[::1]","[::]"].includes(u.hostname)))throw new Error("error");return u.href}function y1(s,t,n){const l=No(t),u=l.errors,c=!!u&&typeof u=="object"&&Object.keys(u).length===0;if(l.code!==200||!Array.isArray(l.status)||!c||l.status.length!==1)throw new Error("error");const r=No(l.status[0]);if(r.app!==s.id||typeof r.running!="boolean")throw new Error("error");if(r.running===!0&&r.deployed!==!1&&r.web)return{target:_1(r,n),direct:!0};const p=Ns(s.path)||Ns(r.href);if(!p)throw new Error("no-entry");return{target:p,direct:!1}}function Zo(u,c,r){return B(this,arguments,function*(s,t,n,l=fetch){if(s.kind!=="app"||!/^[a-zA-Z0-9][a-zA-Z0-9_.+-]{0,127}$/.test(s.id))throw new Error("error");if(!s.entryScript){const f=Ns(s.path);if(!f)throw new Error("no-entry");return{target:f,direct:!1}}const p={credentials:"same-origin",cache:"no-store",signal:n},v=f=>B(null,null,function*(){if(!f.ok)throw new Error([401,403].includes(f.status)?"permission":"error");return No(yield f.json())}),h=yield v(yield l("/cgi-bin/luci/admin/store/token",Ne(ye({},p),{method:"GET"})));if(typeof h.token!="string"||!h.token||h.token.length>256||/[\u0000-\u0020]/.test(h.token))throw new Error("error");const g=new URL(t).hostname,b=new URLSearchParams({token:h.token,package:s.id,hostname:g,update:"1"}),m=yield l("/cgi-bin/luci/admin/store/entrysh",Ne(ye({},p),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:b}));return y1(s,yield v(m),t)})}function k1(u,c,r){return B(this,arguments,function*(s,t,n,l=fetch){return(yield Zo(s,t,n,l)).target})}const w1="/cgi-bin/luci/admin/services/fastnet";function $1(s,t,n,l,u){return B(this,null,function*(){const c=()=>{if(l.aborted)throw new DOMException("Aborted","AbortError")};if(c(),t!=="ready")throw new Error(t==="permission"?"permission":t==="timeout"?"timeout":"error");const r=s.find(v=>v.id==="fastnet");if(r!=null&&r.entryScript){const v=yield(u.resolve||Zo)(r,n,l);if(c(),v.direct)return v.target}if(c(),r&&!u.confirm())return null;c();const p=yield u.install();return c(),p?w1:null})}function C1(s){return s.kind==="app"&&/^[a-zA-Z0-9][a-zA-Z0-9_.+-]{0,127}$/.test(s.id)?"/luci-static/resources/app-icons/"+encodeURIComponent(s.id)+".png":""}const S1=["data-app-artwork","src"],x1=X({__name:"ApplicationArtwork",props:{app:{}},setup(s){const t=s,n=R(()=>C1(t.app)),l=x(!1);return We(n,()=>{l.value=!1}),(u,c)=>n.value&&!l.value?(i(),d("img",{key:0,class:"application-artwork","data-app-artwork":s.app.id,src:n.value,alt:"","aria-hidden":"true",draggable:"false",loading:"lazy",decoding:"async",referrerpolicy:"no-referrer",onError:c[0]||(c[0]=r=>l.value=!0)},null,40,S1)):(i(),Y(Qe,{key:1,name:s.app.glyph,"data-app-artwork":s.app.id},null,8,["name","data-app-artwork"]))}}),Cs=le(x1,[["__scopeId","data-v-a6133c23"]]),Ss=48,P1=["globe","folder","layers","network","shield","download","terminal","grid"];function T1(s,t,n=""){try{const l=new URL(s.trim()).href;return t.find(u=>u.id!==n&&u.path&&(()=>{try{return new URL(u.path).href===l}catch(c){return!1}})())}catch(l){return}}function M1(s,t,n){const l=new Map;for(const c of s)l.has(c.id)||l.set(c.id,c);const u=[];for(const c of t)u.some(r=>r.id===c)||(u.push(l.get(c)||n(c)),l.delete(c));return[...u,...l.values()]}function E1(s,t,n,l){const u=t.trim().toLocaleLowerCase(),c=s.filter(v=>(n==="all"||(n==="tools"?v.kind==="tool"||v.kind==="builtin":n==="links"?v.kind==="link":v.kind==="app"))&&[v.zh,v.en,v.detail,v.detailEn,v.path].some(h=>h.toLocaleLowerCase().includes(u))),r=Math.max(1,Math.ceil(c.length/Ss)),p=Math.max(1,Math.min(r,l));return{total:c.length,pages:r,current:p,entries:c.slice((p-1)*Ss,p*Ss)}}function I1(s){if(!Array.isArray(s))throw new Error("error");const t=new Set([...As,...es.filter(u=>u.kind==="builtin")].map(u=>u.id)),n=new Set,l=[];for(const u of s){if(!u||typeof u!="object"||typeof u.name!="string"||!/^[a-zA-Z0-9][a-zA-Z0-9_.+-]{0,127}$/.test(u.name))throw new Error("error");if(t.has(u.name)||n.has(u.name))continue;n.add(u.name);const c=es.find(h=>h.id===u.name),r=(h,g)=>typeof h=="string"&&h.trim()?h.slice(0,256):g,p=typeof u.entry=="string"&&/^\/(?!\/)/.test(u.entry)&&!/[\u0000-\u001f\\]/.test(u.entry)?u.entry:"",v=Array.isArray(u.flags)&&u.flags.includes("entrysh")&&typeof u.uci=="string"&&/^[a-zA-Z0-9_-]+$/.test(u.uci);l.push({id:u.name,zh:r(u.title,u.name),en:r(u.title_en,u.name),detail:r(u.description,""),detailEn:r(u.description_en,""),path:p,kind:"app",entryScript:v,glyph:(c==null?void 0:c.glyph)||"grid",tone:(c==null?void 0:c.tone)||"blue"})}return l}const D1="/cgi-bin/luci/admin/store/installed";function L1(n){return B(this,arguments,function*(s,t=fetch){const l=yield t(D1,{method:"GET",credentials:"same-origin",cache:"no-store",signal:s});if(!l.ok)throw new Error([401,403].includes(l.status)?"permission":"error");return I1(yield l.json())})}const Oo=["connection","networkInterface","system","sharing","docker","downloads","remote"],A1=Un.map(s=>({id:s.id,forms:s.id==="applications"?["grid","strip"]:s.id==="devices"||Oo.includes(s.id)?["standard","summary"]:["standard"],stacked:Oo.includes(s.id)})),aa=s=>{var t,n,l;return s.startsWith("plugin.")?{id:s,forms:Object.keys(((t=Is(s))==null?void 0:t.forms)||{standard:1,summary:1}),stacked:(l=(n=Is(s))==null?void 0:n.stacked.includes("summary"))!=null?l:!0}:A1.find(u=>u.id===s)};function Yo(s=2){return Object.fromEntries(Un.map(t=>[t.id,{mode:"auto",iconRows:0,ruleVersion:s}]))}function Ks(s,t){return!t||t.ruleVersion!==void 0&&![0,1,2].includes(t.ruleVersion)||!["auto",...s.startsWith("plugin.")?["standard","summary"]:aa(s).forms].includes(t.mode)||![0,1,2,3].includes(t.iconRows)||s!=="applications"&&t.iconRows!==0?"preference":""}function zo(s,t){var n,l;return{stacked:t==="summary"&&(Oo.includes(s)||s.startsWith("plugin.")&&((l=(n=Is(s))==null?void 0:n.stacked.includes("summary"))!=null?l:!0))||s==="connection"&&t==="standard",stretch:s==="traffic"||s==="connection"&&t==="standard",contentLimit:s==="networkInterface"?2:s==="storage"?3:s==="sharing"?2:void 0}}function N1(s,t,n){if(s.startsWith("plugin.")){const l=aa(s).forms,u=n.role==="stacked"?"summary":"standard";return l.includes(u)?u:l[0]||u}return t.ruleVersion===0?n.role==="stacked"?"summary":s==="applications"?"grid":"standard":t.ruleVersion===1&&n.role==="stacked"?"summary":s==="connection"?"standard":n.role==="stacked"||s==="system"&&n.width<560?"summary":s==="applications"?"grid":"standard"}function Kt(s,t,n){var $,w,S;const l=aa(s),u=rn(s),c=Math.min(s==="applications"?24:6,Math.max(0,n.favoriteCount)),r=n.role,p=t.mode==="auto"?N1(s,t,n):t.mode;let v=Ks(s,t)||(r==="stacked"&&!zo(s,p).stacked?"compact":l.forms.includes(p)?"":"form"),h=n.mobile||p==="summary"&&s==="devices"?240:u.minWidth,g=r==="stacked"&&p==="summary"?148:p==="summary"?s==="devices"?n.width<450?280:260:176:u.minHeight;if(s==="networkInterface"&&p==="summary"&&(($=t.ruleVersion)!=null?$:2)>=2&&(g=136),s.startsWith("plugin.")){const C=(w=Is(s))==null?void 0:w.forms[p];h=n.mobile?240:(C==null?void 0:C.minWidth)||(p==="summary"?240:u.minWidth),g=(C==null?void 0:C.minHeight)||(p==="summary"?148:u.minHeight)}let b=1,m=1,f=1,k=g;if(s==="applications"){const C=Math.max(1,Math.min(n.width<450?2:6,Math.floor((n.width-32+12)/112))),y=p==="strip"?1:t.iconRows;b=y?Math.min(C,Math.max(1,Math.ceil(c/y))):Math.min(C,Math.max(1,Math.ceil(c/Math.max(1,Math.ceil(c/C)))));const P=Math.max(1,Math.ceil(c/b)),_=y||(C<=2?4:3),D=p==="strip"?56:82,E=D+12;m=Math.min(_,P),k=94+m*D+(m-1)*12,g=y?k:176;const A=Math.max(0,Math.floor((n.height-94+12)/E));m=Math.max(0,Math.min(m,A)),f=m*b}else s==="devices"&&(b=n.width>=650?3:n.width>=450?2:1,m=n.height<330?1:b===1&&n.height>=370?3:2,f=p==="summary"?0:Math.min(6,m*b));return!v&&n.widthMath.max(0,...v.cards.map(h=>h?Math.min(t,Os(h,n[h],v.cards.length===2).minWidth):Math.min(t,260)))),u=Array(s.columns.length).fill(0),c=[];let r=[],p=0;l.forEach((v,h)=>{r.length&&p+v+18*r.length>t&&(c.push(r),r=[],p=0),r.push(h),p+=v}),r.length&&c.push(r);for(const v of c){let h=t-18*(v.length-1),g=[...v];for(;g.length;){const b=g.reduce((f,k)=>f+s.columns[k].weight,0),m=g.filter(f=>h*s.columns[f].weight/b!m.includes(f))}}return u}function _i(s,t,n=1160,l=4){const u=qo(s,n,t);let c=0,r="";if(s.heightMode){for(let p=0;pp.cards.forEach((h,g)=>{if(!h)return;const b=p.cards.length===2,m=Kt(h,t[h],{width:u[v],height:1e5,role:b?"stacked":s.columns.some(f=>f.cards.length===2)?"large":"ordinary",favoriteCount:l,mobile:n<650});m.issue&&!m.issue.startsWith("height:")&&(r=m.issue),c=Math.max(c,b?m.minHeight/((g===0?p.split:100-p.split)/100)+18:m.minHeight)})),{height:Math.ceil(c),issue:r}}const ys=["connection","networkInterface","system","sharing","docker","downloads","remote"],yi=Un.map(s=>({id:s.id,minWidth:s.minWidth,minHeight:s.minHeight,mobileMinWidth:240,stacked:ys.includes(s.id),compactHeight:ys.includes(s.id)?148:0,specs:ys.includes(s.id)||s.id==="applications"?["full","standard","compact"]:["full","standard"],summary:s.id==="applications"?"launch-grid":ys.includes(s.id)?"summary":"standard",forms:aa(s.id).forms})),Ro=s=>s.startsWith("plugin.")?Ne(ye({},rn(s)),{mobileMinWidth:240,stacked:!0,compactHeight:148,specs:["full","standard","compact"],summary:"summary",forms:aa(s).forms}):yi.find(t=>t.id===s),Vo=1600,xs=(s,t,n)=>Math.max(t,Math.min(Math.max(t,n),s));function O1(s,t,n){const l=Math.max(0,s-18),u=t[0]||0,c=Math.max(u,l-(t[1]||0)),r=xs(l*(n!=null?n:50)/100,u,c);return{upper:r,lower:Math.max(t[1]||0,l-r),min:u,max:c,available:l}}function z1(s){return s.minHeight!==void 0&&(!Number.isFinite(s.minHeight)||s.minHeight<1||s.minHeight>Vo)?"row-space":s.columns.some(t=>t.upperShare!==void 0&&(t.cards.length!==2||!Number.isFinite(t.upperShare)||t.upperShare<=0||t.upperShare>=100))?"stack-share":""}function ki(s){return rt(s).map(t=>Ne(ye({},t),{heightMode:t.columns.some(n=>n.cards.includes("traffic"))?"chart":"content"}))}const Yn=[{id:"single",zh:"整行",en:"Single",slots:[1]},{id:"pair",zh:"两列",en:"Two columns",slots:[1,1]},{id:"triple",zh:"三列",en:"Three columns",slots:[1,1,1]},{id:"left-big",zh:"左单右双",en:"Single left, stacked right",slots:[1,2]},{id:"right-big",zh:"左双右单",en:"Stacked left, single right",slots:[2,1]}];yi.filter(s=>s.stacked).map(s=>s.id);const rt=s=>JSON.parse(JSON.stringify(s));let q1=0;function Rn(s=[],t="single",n=320,l="row-"+ ++q1){let u=0;const c=Yn.find(r=>r.id===t).slots.map((r,p)=>({weight:t==="triple"?[34,33,33][p]:t==="single"?100:p===0?60:40,split:50,cards:Array.from({length:r},()=>s[u++]||null)}));return{id:l,template:t,height:n,columns:c}}const R1=()=>[Rn(["traffic","connection","networkInterface"],"left-big",320,"network"),Ne(ye({},Rn(["devices","applications"],"pair",340,"devices")),{columns:[{weight:50,cards:["devices"],split:50},{weight:50,cards:["applications"],split:50}]}),Ne(ye({},Rn(["storage","sharing"],"pair",330,"storage")),{columns:[{weight:50,cards:["storage"],split:50},{weight:50,cards:["sharing"],split:50}]}),Rn(["docker","downloads","remote"],"triple",280,"services"),Rn(["system"],"single",280,"system")],Yt=s=>s.flatMap(t=>t.columns.flatMap(n=>n.cards.filter(l=>!!l)));function V1(s,t,n=4,l=!1,u){const c=[],r=p=>u&&["connection","networkInterface"].includes(p)&&u[p].mode==="summary"?Kt(p,u[p],{width:t,height:1e4,role:"ordinary",favoriteCount:n,mobile:!0}).minHeight:u&&p==="applications"?Math.max(rn(p).singleHeight,Kt(p,u[p],{width:t,height:1e4,role:"ordinary",favoriteCount:n,mobile:!0}).minHeight):u&&p==="devices"&&u[p].mode==="summary"?Kt(p,u[p],{width:t,height:1e4,role:"ordinary",favoriteCount:n,mobile:!0}).minHeight:rn(p).singleHeight;for(const p of s){let v=[];const h=b=>Math.max(...b.cards.map(m=>m?u?Os(m,u[m],b.cards.length===2).minWidth:rn(m).minWidth:260)),g=()=>{v.length&&(t<650&&v.length===1?v[0].cards.forEach((b,m)=>c.push({id:p.id+"-"+(b||"empty-"+v[0].source+"-"+m),source:p.id,height:b?r(b):148,natural:!!p.heightMode,chartHeight:b==="traffic"?300:void 0,columns:[Ne(ye({},v[0]),{cards:[b],slots:[v[0].slots[m]],compact:!1})]})):c.push({id:p.id+"-"+v[0].source,source:p.id,height:p.height,natural:!!p.heightMode,chartHeight:v.some(b=>b.cards.includes("traffic"))?320:void 0,columns:v}),v=[])};p.columns.forEach((b,m)=>{const f=b.cards.map((w,S)=>l||w?S:-1).filter(w=>w>=0),k=f.map(w=>b.cards[w]);if(!k.length)return;const $={source:m,cards:k,slots:f,weight:b.weight,split:b.split,compact:b.cards.length>1};v.length&&v.reduce((w,S)=>w+h(S),0)+h($)+v.length*18>t&&g(),v.push($)}),g()}return c}function Vn(s,t){for(const n of s)for(let l=0;l=0)return{row:n.id,column:l,slot:u}}}function Il(s,t){var n,l;return(l=(n=s.find(u=>u.id===t.row))==null?void 0:n.columns[t.column])==null?void 0:l.cards[t.slot]}function B1(s){return Math.ceil(Math.max(0,...s.columns.flatMap(t=>t.cards.map((n,l)=>{if(!n)return 0;const u=t.cards.length===2,c=u?Ro(n).compactHeight:Ro(n).minHeight;return u?c/((l===0?t.split:100-t.split)/100)+18:c}))))}function rs(s){const t=Yt(s);if(new Set(t).size!==t.length)return{issue:"duplicate"};for(const n of s){const l=z1(n);if(l)return{issue:l,row:n.id};const u=Yn.find(r=>r.id===n.template);if(!u||n.columns.length!==u.slots.length||n.columns.some((r,p)=>r.cards.length!==u.slots[p]||r.weight<=0||r.split<=0||r.split>=100)||Math.abs(n.columns.reduce((r,p)=>r+p.weight,0)-100)>.01)return{issue:"structure",row:n.id};if(n.columns.some(r=>r.cards.length===2&&r.cards.some(p=>p&&!aa(p).forms.some(v=>zo(p,v).stacked))))return{issue:"compact",row:n.id};const c=B1(n);if(!n.heightMode&&n.heightp.id===t.row))==null?void 0:r.columns[t.column];if(!u||t.slot<0||t.slot>=u.cards.length)return{rows:s,issue:"target",changed:!1,hidden:[]};const c=u.cards[t.slot];if(c===n)return ea(s,l);if(n){const p=Vn(l,n);p&&(l.find(v=>v.id===p.row).columns[p.column].cards[p.slot]=null)}return u.cards[t.slot]=n,ea(s,l,c?[c]:[])}function U1(s,t,n,l,u){const c=rt(s),r=c.findIndex(m=>m.id===t),p=c[r];if(!p)return{rows:s,issue:"target",changed:!1,hidden:[]};const v=Yt([p]),h=Yn.find(m=>m.id===n).slots.reduce((m,f)=>m+f,0);if(v.length>h&&!l)return{rows:s,issue:"choose-retained",changed:!1,hidden:[]};const g=l||v;if(g.length>h||new Set(g).size!==g.length||g.some(m=>!v.includes(m)))return{rows:s,issue:"retained",changed:!1,hidden:[]};if(!l&&(p.template==="left-big"&&n==="right-big"||p.template==="right-big"&&n==="left-big"))return p.template=n,p.columns.reverse(),ea(s,c);const b=Rn(g,n==="right-big"?"left-big":n,p.height,p.id);return p.minHeight!==void 0&&(b.minHeight=p.minHeight),n==="right-big"&&(b.template=n,b.columns.reverse()),c[r]=b,ea(s,c,v.filter(m=>!g.includes(m)))}function F1(s,t,n){const l=rt(s),u=l.find(c=>c.id===t);if(!u)return{rows:s,issue:"target",changed:!1,hidden:[]};if(n.height!==void 0&&(u.height=n.height),n.weights){if(n.weights.length!==u.columns.length)return{rows:s,issue:"structure",changed:!1,hidden:[]};u.columns.forEach((c,r)=>c.weight=n.weights[r])}if(n.column!==void 0&&n.split!==void 0){if(!u.columns[n.column])return{rows:s,issue:"target",changed:!1,hidden:[]};u.columns[n.column].split=n.split}return ea(s,l)}function H1(s,t,n){const l=rt(s),u=l.findIndex(c=>c.id===t);if(u<0||n&&!l.some(c=>c.id===n))return{rows:s,issue:"target",changed:!1,hidden:[]};if(t!==n){const[c]=l.splice(u,1);l.splice(n?l.findIndex(r=>r.id===n):l.length,0,c)}return ea(s,l)}function wi(s,t,n){const l=rt(s);if(n&&!l.some(p=>p.id===n))return{rows:s,issue:"target",changed:!1,hidden:[]};const u=Vn(l,t);u&&(l.find(p=>p.id===u.row).columns[u.column].cards[u.slot]=null);let c=1;for(;l.some(p=>p.id==="slot-row-"+c);)c++;const r=Rn([t],"single",Math.max(280,Ro(t).minHeight),"slot-row-"+c);return l.splice(n?l.findIndex(p=>p.id===n):l.length,0,r),ea(s,l)}function G1(s,t,n,l){const u=rt(s),c=u.find(p=>p.id===n);if(!c||!["single","pair"].includes(c.template))return{rows:s,issue:"capacity",changed:!1,hidden:[]};const r=Vn(u,t);return(r==null?void 0:r.row)===n?{rows:s,issue:"same-row",changed:!1,hidden:[]}:(r&&(u.find(p=>p.id===r.row).columns[r.column].cards[r.slot]=null),c.columns.splice(l,0,{cards:[t],weight:1,split:50}),c.template=c.columns.length===2?"pair":"triple",c.columns.forEach((p,v)=>p.weight=c.columns.length===2?50:[34,33,33][v]),ea(s,u))}function j1(s,t=()=>!0,n=rs){const l=rt(s).filter(r=>Yt([r]).length),u=[];l.forEach((r,p)=>{const v=Yt([r]);if(!r.columns.some(f=>f.cards.some(k=>!k)))return;if(r.columns.some(f=>f.cards.length===2)&&!(v.length===1&&r.columns.some(f=>f.cards.length===1&&f.cards[0]))){u.push({row:r.id,issue:"incomplete-stack"});return}const b=v.length===1?"single":"pair",m=Rn(v,b,r.height,r.id);if(m.heightMode=r.heightMode,r.minHeight!==void 0&&(m.minHeight=r.minHeight),b==="pair"&&m.columns.forEach(f=>f.weight=50),v.some(f=>!t(f,m))){u.push({row:r.id,issue:"hard-spec"});return}l[p]=m});const c=n(l);return c.issue&&u.push({row:c.row||"",issue:c.issue,requiredHeight:c.requiredHeight}),u.length?{rows:l,issue:u[0].issue,changed:!1,hidden:[],problems:u,problemRow:u[0].row,requiredHeight:u[0].requiredHeight}:{rows:l,issue:"",hidden:[],changed:JSON.stringify(s)!==JSON.stringify(l),problems:u}}const $i=128*1024;class Lt extends Error{constructor(n,l=n){super(l);Nn(this,"code");this.code=n,this.name="HomeConfigError"}}const jt=()=>{throw new Lt("invalid")},ua=(s,t,n=t)=>{(!s||typeof s!="object"||Array.isArray(s)||Object.keys(s).some(l=>!t.includes(l))||n.some(l=>!Object.prototype.hasOwnProperty.call(s,l)))&&jt()},Ha=(s,t,n)=>typeof s=="number"&&Number.isFinite(s)&&s>=t&&s<=n,Dl=/^[A-Za-z0-9][A-Za-z0-9_.+-]{0,127}$/,Ll=/^user-link:[A-Za-z0-9_-]{1,64}$/,W1=["globe","folder","layers","network","shield","download","terminal","grid"];function ts(s,t){const n=t;if((!n||typeof n!="object"||!Number.isInteger(n.schemaVersion))&&jt(),n.schemaVersion>(s==="layout"?4:1))throw new Lt("future");if(new TextEncoder().encode(JSON.stringify(n)).length>$i&&jt(),s==="layout"){ua(n,["schemaVersion","rows","widgetPreferences"]),(![3,4].includes(n.schemaVersion)||!Array.isArray(n.rows)||n.rows.length>32)&&jt();const u=Un.map(p=>p.id),c=Object.keys(n.widgetPreferences||{}).filter(p=>vi.test(p));(c.length>32||n.schemaVersion===3&&c.length)&&jt(),ua(n.widgetPreferences,[...u,...c]);for(const p of[...u,...c]){const v=n.widgetPreferences[p];ua(v,["mode","iconRows","ruleVersion"]),(Ks(p,v)||!Number.isInteger(v.iconRows)||!Number.isInteger(v.ruleVersion))&&jt()}const r=new Set;for(const p of n.rows){ua(p,["id","template","height","heightMode","minHeight","columns"],["id","template","height","heightMode","columns"]),(typeof p.id!="string"||!Dl.test(p.id)||r.has(p.id)||!Ha(p.height,1,1600)||!["content","chart"].includes(p.heightMode)||p.minHeight!==void 0&&!Ha(p.minHeight,1,1600)||!Array.isArray(p.columns)||p.columns.length<1||p.columns.length>3)&&jt(),r.add(p.id);for(const v of p.columns){ua(v,["weight","cards","split","upperShare"],["weight","cards","split"]),(!Ha(v.weight,.01,100)||!Ha(v.split,.01,99.99)||v.upperShare!==void 0&&!Ha(v.upperShare,.01,99.99)||!Array.isArray(v.cards)||v.cards.length<1||v.cards.length>2)&&jt();for(const h of v.cards)h!==null&&(!u.includes(h)&&!(n.schemaVersion===4&&c.includes(h))&&jt(),v.cards.length===2&&Kt(h,n.widgetPreferences[h],{width:1e3,height:1e5,role:"stacked",favoriteCount:8,natural:!0}).issue&&jt())}}rs(n.rows).issue&&jt()}else{ua(n,["schemaVersion","favorites","links"]),(n.schemaVersion!==1||!Array.isArray(n.favorites)||n.favorites.length>24||!Array.isArray(n.links)||n.links.length>64)&&jt();const u=new Set;for(const r of n.links){ua(r,["id","name","url","glyph"]),(typeof r.id!="string"||!Ll.test(r.id)||u.has(r.id)||typeof r.name!="string"||r.name!==r.name.trim()||!r.name||Array.from(r.name).length>64||/[\u0000-\u001f\u007f-\u009f]/.test(r.name)||typeof r.url!="string"||!/^https?:\/\//.test(r.url)||new TextEncoder().encode(r.url).length>2048||/[\u0000-\u0020\u007f\\]/.test(r.url)||!W1.includes(r.glyph))&&jt();try{const p=new URL(r.url);(!["http:","https:"].includes(p.protocol)||!p.hostname||p.username||p.password)&&jt()}catch(p){jt()}u.add(r.id)}const c=new Set;for(const r of n.favorites)(typeof r!="string"||c.has(r)||!(Dl.test(r)||Ll.test(r)&&u.has(r)))&&jt(),c.add(r)}const l=JSON.parse(JSON.stringify(n));return s==="layout"&&(l.schemaVersion=4),l}function J1(s){const t=Xe({status:"loading",apps:[],sandbox:"unknown"}),n=new Map,l={get favorites(){return s.launcher.value.favorites}},u={get entries(){return s.launcher.value.links.map(y=>({id:y.id,zh:y.name,en:y.name,path:y.url,glyph:y.glyph,detail:"用户添加的链接",detailEn:"Custom link",kind:"link",tone:"teal"}))}};let c,r=!0,p;function v(){return p=h()}function h(){return B(this,null,function*(){c==null||c.abort();const y=new AbortController;c=y,t.status="loading";let P=!1;const _=window.setTimeout(()=>{P=!0,y.abort()},8e3);try{const D=yield L1(y.signal);if(r&&c===y){for(const E of t.apps)l.favorites.includes(E.id)&&n.set(E.id,E);for(const E of n.keys())l.favorites.includes(E)||n.delete(E);t.apps=D,t.status="ready"}}catch(D){r&&c===y&&(t.status=P?"timeout":D instanceof Error&&D.message==="permission"?"permission":"error")}finally{window.clearTimeout(_)}})}function g(){return B(this,null,function*(){var _;const y=new AbortController,P=window.setTimeout(()=>y.abort(),8e3);try{const D=yield fetch("/cgi-bin/luci/istore/nas/sandbox/",{signal:y.signal,credentials:"same-origin",cache:"no-store"}),E=yield D.json();r&&D.ok&&(E.success===void 0||E.success===0)&&!E.error&&(t.sandbox=((_=E.result)==null?void 0:_.status)||"unknown")}catch(D){}finally{window.clearTimeout(P)}})}function b(y){return[...As,...t.apps,...u.entries,...n.values(),...es].find(P=>P.id===y)||{id:y,zh:"不可用入口",en:"Unavailable shortcut",detail:y,detailEn:y,glyph:"grid",path:"",kind:"app",tone:"blue"}}function m(y){var _;if(y.kind==="link")return u.entries.some(D=>D.id===y.id)?"available":"unknown";if(y.kind==="app")return t.status==="ready"?t.apps.some(D=>D.id===y.id)?y.path||y.entryScript?"available":"no-entry":"uninstalled":t.status==="permission"?"permission":"unknown";const P={terminal:"ttyd",firmware:"ota",sandbox:"sandbox"}[y.tool||""];return P&&!((_=window.quickstart_features)!=null&&_.includes(P))?"unsupported":y.tool==="sandbox"?t.sandbox==="unsupport"?"unsupported":t.sandbox==="unknown"?"unknown":"available":"available"}const f=R(()=>M1([...As,...es.filter(y=>y.kind==="builtin"),...t.apps,...u.entries],l.favorites,b));function k(y){return B(this,null,function*(){yield s.save("launcher",Ne(ye({},s.launcher.value),{favorites:y}))})}function $(y){return B(this,null,function*(){const P=s.launcher.value;if(y.id&&!P.links.some(q=>q.id===y.id))return{error:"missing"};if(!y.id&&P.links.length>=64)return{error:"limit"};if(y.pin&&!P.favorites.includes(y.id||"")&&P.favorites.length>=24)return{error:"pins"};const _=y.id||"user-link:"+Array.from(crypto.getRandomValues(new Uint8Array(16)),q=>q.toString(16).padStart(2,"0")).join(""),D=y.name.trim(),E=y.url.trim(),A={id:_,name:D,url:E,glyph:y.glyph},U={schemaVersion:1,links:[...P.links.filter(q=>q.id!==_),A],favorites:y.pin&&!P.favorites.includes(_)?[...P.favorites,_]:[...P.favorites]};try{ts("launcher",U)}catch(q){return{error:!D||Array.from(D).length>64?"name":"url"}}return yield s.save("launcher",U),{entry:b(_)}})}function w(y){return B(this,null,function*(){const P=s.launcher.value;yield s.save("launcher",Ne(ye({},P),{links:P.links.filter(_=>_.id!==y),favorites:P.favorites.filter(_=>_!==y)}))})}const S=Oa();let C;return nt(()=>{var y,P,_;v(),g(),!((P=(y=window.quickstart_configs)==null?void 0:y.update)!=null&&P.disable)&&((_=window.quickstart_features)!=null&&_.includes("ota"))&&(C=window.setTimeout(()=>{document.hidden||S.requestCheckUpdate()},1100))}),lt(()=>{r=!1,c==null||c.abort(),window.clearTimeout(C)}),{state:t,catalogue:f,resolve:b,resolveEntry:b,entryAvailability:m,homeApplicationSession:l,linkSession:u,saveLink:$,deleteLink:w,saveFavorites:k,retry:v,waitForRead:()=>p||Promise.resolve(),begin:()=>s.begin("launcher"),editable:()=>s.editable("launcher"),saving:()=>s.state.launcher.saving,preferencesLoading:()=>s.state.launcher.loading}}const Ci=Symbol("quickstart-home-launcher");function K1(s){const t=J1(s);return ma(Ci,t),t}function ns(){const s=ba(Ci);if(!s)throw new Error("Launcher owner missing");return s}const Z1=["data-shortcut-drag"],Y1={class:"launcher-preview-heading"},Q1={class:"launcher-editor-instructions",id:"launcher-sort-help"},X1=["data-editor-shortcut"],e2=["aria-label","aria-pressed","data-shortcut-handle","onPointerdown","onKeydown"],t2=["data-remove-shortcut","aria-label","disabled","onClick"],n2={key:1,class:"launcher-empty-preview"},a2={class:"launcher-sr-only",role:"status","aria-live":"polite"},s2=X({__name:"LauncherFavoriteGrid",props:{ids:{},columns:{},limit:{}},emits:["reorder","remove"],setup(s,{emit:t}){const{resolveEntry:n}=ns(),l=s,u=t,c=window.vue_lang==="en",r=(N,F)=>c?F:N,p=n,v=N=>{const F=p(N);return r(F.zh,F.en)},h=x(null),g=x(""),b=R(()=>Math.max(2,Math.min(4,l.columns))),m=R(()=>{if(!h.value)return l.ids;const N=h.value.origin.filter(F=>F!==h.value.id);return N.splice(h.value.target,0,h.value.id),N});let f=0,k=0,$=null;function w(){f&&cancelAnimationFrame(f),f=0,$=null}function S(){var F;const N=h.value;h.value=null,w(),(N==null?void 0:N.pointer)!==void 0&&((F=N.handle)!=null&&F.hasPointerCapture(N.pointer))&&N.handle.releasePointerCapture(N.pointer)}function C(N){ot(()=>{const F=document.querySelector(`[data-shortcut-handle="${CSS.escape(N)}"]`);F==null||F.focus({preventScroll:!0}),F==null||F.scrollIntoView({block:"nearest"})})}function y(){const N=h.value;if(!N)return;const F=[...m.value],Z=F.some((Q,ce)=>N.origin[ce]!==Q);S(),Z&&(u("reorder",F),g.value=v(N.id)+r("已移动到第"," moved to position ")+(F.indexOf(N.id)+1)+r("位","")),C(N.id)}function P(N,F){if(N.button!==0||h.value)return;N.preventDefault();const Z=N.currentTarget.closest(".launcher-editor-preview");$=Z.closest(".applications-browser-body");const Q=Array.from(Z.querySelectorAll("[data-editor-shortcut]")).map(ce=>{const ve=ce.getBoundingClientRect();return{x:ve.x,y:ve.y,width:ve.width,height:ve.height}});h.value={id:F,origin:[...l.ids],target:l.ids.indexOf(F),pointer:N.pointerId,x:N.clientX,y:N.clientY,handle:Z,slots:Q,scrollStart:($==null?void 0:$.scrollTop)||0},Z.setPointerCapture(N.pointerId),k=N.clientY,f=requestAnimationFrame(A)}function _(N,F){const Z=h.value;if(!(Z!=null&&Z.slots))return;const Q=F+(($==null?void 0:$.scrollTop)||0)-(Z.scrollStart||0);let ce=1/0,ve=Z.target;Z.slots.forEach((O,de)=>{const K=fs((N-O.x-O.width/2)/O.width,2)+fs((Q-O.y-O.height/2)/O.height,2);KN.bottom-36?8:0;F&&($.scrollTop+=F,_(h.value.x,k))}f=requestAnimationFrame(A)}}function U(N,F){var Z,Q;if(!h.value&&[" ","Enter"].includes(N.key)){N.preventDefault(),h.value={id:F,origin:[...l.ids],target:l.ids.indexOf(F),x:0,y:0},g.value=r("已拿起","Picked up ")+v(F);return}if(!(((Z=h.value)==null?void 0:Z.pointer)!==void 0||((Q=h.value)==null?void 0:Q.id)!==F)){if([" ","Enter"].includes(N.key))N.preventDefault(),y();else if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(N.key)){N.preventDefault();const ce=N.key==="ArrowLeft"?-1:N.key==="ArrowRight"?1:N.key==="ArrowUp"?-b.value:b.value;h.value.target=N.key==="Home"?0:N.key==="End"?l.ids.length-1:Math.max(0,Math.min(l.ids.length-1,h.value.target+ce)),g.value=r("目标位置","Target position ")+(h.value.target+1),C(F)}}}function q(N){if(N.key==="Escape"&&h.value){N.preventDefault(),N.stopImmediatePropagation();const F=h.value.id;S(),C(F)}}function z(){document.hidden&&S()}return We(()=>l.ids,S),We(()=>l.columns,S),nt(()=>{window.addEventListener("keydown",q,!0),window.addEventListener("blur",S),window.addEventListener("resize",S),document.addEventListener("visibilitychange",z)}),lt(()=>{S(),window.removeEventListener("keydown",q,!0),window.removeEventListener("blur",S),window.removeEventListener("resize",S),document.removeEventListener("visibilitychange",z)}),(N,F)=>(i(),d("div",{class:"launcher-editor-preview","data-shortcut-drag":h.value?"active":void 0,onPointermove:D,onPointerup:E,onPointercancel:S,onLostpointercapture:S},[e("div",Y1,[e("strong",null,a(r("首页快捷入口","Home shortcuts")),1),e("span",null,a(s.ids.length)+" / "+a(s.limit),1)]),e("p",Q1,a(r("拖动手柄调整顺序,点击 × 移除入口。键盘:空格拿起,方向键移动,回车放下。","Drag a handle to reorder; × removes a shortcut. Keyboard: Space to pick up, arrows to move, Enter to drop.")),1),s.ids.length?(i(),Y(xr,{key:0,name:"shortcut",tag:"div",class:"launcher-edit-grid",style:pt({gridTemplateColumns:"repeat("+b.value+",minmax(0,1fr))"})},{default:pe(()=>[(i(!0),d(V,null,oe(m.value,Z=>{var Q,ce;return i(),d("div",{key:Z,class:_e(["launcher-edit-tile",{picked:((Q=h.value)==null?void 0:Q.id)===Z,target:h.value&&m.value.indexOf(Z)===h.value.target}]),"data-editor-shortcut":Z},[e("button",{type:"button",class:"launcher-drag-handle","aria-label":r("移动","Move ")+v(Z),"aria-describedby":"launcher-sort-help","aria-pressed":((ce=h.value)==null?void 0:ce.id)===Z,"data-shortcut-handle":Z,onPointerdown:ve=>P(ve,Z),onKeydown:ve=>U(ve,Z)},[...F[0]||(F[0]=[e("span",{"aria-hidden":"true"},"⠿",-1)])],40,e2),e("button",{type:"button",class:"launcher-remove","data-remove-shortcut":Z,"aria-label":r("移除","Remove ")+v(Z),disabled:!!h.value,onClick:ve=>N.$emit("remove",Z)},"×",8,t2),e("span",{class:_e(["application-icon",o(p)(Z).tone])},[G(Cs,{app:o(p)(Z)},null,8,["app"])],2),e("strong",null,a(v(Z)),1)],10,X1)}),128))]),_:1},8,["style"])):(i(),d("p",n2,a(r("从下方添加一个入口,首页就从这里开始。","Add a shortcut below to make this space yours.")),1)),e("span",a2,a(g.value),1)],40,Z1))}}),o2=le(s2,[["__scopeId","data-v-15a93888"]]);function l2(s,t,n=()=>!0){const l=ta();let u,c,r=0,p=!1,v,h,g="",b=0;const m=x([]),f=["pointerdown","touchstart","wheel","keydown"];function k(){const _=ye({},window.history.state);delete _.qsHomeEntry,window.history.replaceState(_,"")}function $(){p=!1,u==null||u.disconnect(),u=void 0,window.clearTimeout(c),c=void 0,cancelAnimationFrame(r),r=0,g="",b=0,m.value=[];for(const _ of f)document.removeEventListener(_,w,!0);if(v!==void 0&&(window.history.scrollRestoration=v,v=void 0),h){const _=document.documentElement.style;h.value?_.setProperty("overflow-anchor",h.value,h.priority):_.removeProperty("overflow-anchor"),h=void 0}}function w(){p&&(k(),$())}function S(){p&&!r&&(r=requestAnimationFrame(C))}function C(){var F;if(r=0,!p)return;if(l.path!=="/"||l.query.panel){$();return}if(!t())return;const _=ho((F=window.history.state)==null?void 0:F.qsHomeEntry);if(!_){$();return}const D=document.querySelector(_.source==="traffic"?"[data-home-speed]":'[data-favorite-app="'+CSS.escape(_.id)+'"]');if(!D){g="",b=0;return}const E=D.closest("[data-layout-card]"),A=document.querySelectorAll(".canvas-home [data-layout-card]"),U=E==null?void 0:E.getBoundingClientRect().top,q=Array.from(A).filter(Z=>U===void 0||Z.getBoundingClientRect().top<=U+1).map(Z=>Z.dataset.layoutCard);if(q.join("|")!==m.value.join("|")&&(m.value=q),!n(q)){g="",b=0;return}const z=D.getBoundingClientRect(),N=JSON.stringify([z.top+window.scrollY,z.left+window.scrollX,z.width,z.height]);if(b=N===g?b+1:0,g=N,b<2||document.documentElement.scrollHeight-window.innerHeight<_.scroll){S();return}window.scrollTo({top:_.scroll,behavior:"auto"}),D.focus({preventScroll:!0}),k(),$()}function y(){var E;if(!s)return;$();const _=ho((E=window.history.state)==null?void 0:E.qsHomeEntry);if(!_)return;p=!0,v=_.restoration||window.history.scrollRestoration,window.history.scrollRestoration="manual";const D=document.documentElement.style;h={value:D.getPropertyValue("overflow-anchor"),priority:D.getPropertyPriority("overflow-anchor")},D.setProperty("overflow-anchor","none","important");for(const A of f)document.addEventListener(A,w,{capture:!0,passive:!0});u=new MutationObserver(S),u.observe(document.querySelector(".canvas-home")||document.body,{childList:!0,subtree:!0}),c=window.setTimeout(()=>{k(),$()},1e4),S()}function P(_,D){if(!s)return;const E=ho({v:1,id:_,source:D,scroll:window.scrollY,restoration:window.history.scrollRestoration});E&&(window.history.replaceState(Ne(ye({},window.history.state),{qsHomeEntry:E}),""),window.history.scrollRestoration="manual")}return We(()=>[t(),n(m.value),l.fullPath],()=>{s&&S()},{flush:"post"}),nt(()=>{s&&(y(),window.addEventListener("pageshow",y))}),lt(()=>{p=!1,$(),window.removeEventListener("pageshow",y)}),{remember:P}}const i2=["aria-busy","inert"],r2={class:"link-intro"},c2=["placeholder"],d2={class:"link-icon-options"},u2=["onClick","aria-pressed","aria-label"],v2={key:0,class:"link-pin"},p2=["disabled"],h2={key:1,class:"link-intro"},m2={key:2,class:"link-notice","data-link-duplicate":""},f2={key:3,role:"alert",class:"link-error","data-link-error":""},b2={key:4,class:"link-delete-confirm",role:"alert","data-link-delete-confirm":""},g2=["disabled"],_2=["disabled"],y2=X({__name:"LauncherLinkForm",props:{initial:{},entries:{}},emits:["cancel","saved"],setup(s,{emit:t}){var S,C,y,P;const{homeApplicationSession:n,saveLink:l,deleteLink:u,saving:c}=ns(),r=s,p=t,v=(_,D)=>window.vue_lang==="en"?D:_,h=Xe({id:(S=r.initial)==null?void 0:S.id,name:((C=r.initial)==null?void 0:C.zh)||"",url:((y=r.initial)==null?void 0:y.path)||"",glyph:((P=r.initial)==null?void 0:P.glyph)||"globe",pin:!1}),g=x(""),b=x(!1),m=x(null),f=R(()=>T1(h.url,r.entries,h.id)),k=R(()=>({name:v("请输入1~64字名称。","Enter a name of 1–64 characters."),url:v("请输入有效HTTP(S)地址,不含空白或登录凭据。","Use a valid HTTP(S) address without whitespace or credentials."),icon:v("请选择内置图标。","Choose a built-in icon."),limit:v("已达到64条链接上限,请先删除不再使用的链接。","64-link limit reached. Remove an unused link first."),pins:v("首页已固定24项,请取消同时固定或先移除一项。","Homepage has 24 pins. Uncheck pin or remove one first."),missing:v("链接已不存在,请返回重试。","This link no longer exists. Return and retry.")})[g.value]||g.value);function $(){return B(this,null,function*(){if(!c())try{const _=yield l(h);if(_.error){g.value=_.error;return}p("saved",v("链接已保存","Link saved"),_.entry.id)}catch(_){g.value=_ instanceof Error?_.message:v("保存失败","Save failed")}})}function w(){return B(this,null,function*(){if(!c())try{r.initial&&(yield u(r.initial.id)),p("saved",v("链接已删除","Link deleted"))}catch(_){g.value=_ instanceof Error?_.message:v("删除失败","Delete failed")}})}return nt(()=>B(null,null,function*(){var _;yield ot(),(_=m.value)==null||_.focus()})),(_,D)=>(i(),d("form",{"aria-busy":o(c)(),inert:o(c)(),class:"launchpad-link-form",onSubmit:Ge($,["prevent"]),"data-link-form":""},[e("p",r2,a(v("把常用的服务或网站收进来。保存到此路由器,刷新后保留。","Keep a service or website here. Saved on this router and retained after reload.")),1),e("label",null,[ue(a(v("名称","Name")),1),W(e("input",{ref_key:"nameInput",ref:m,"onUpdate:modelValue":D[0]||(D[0]=E=>h.name=E),maxlength:"64",required:"",autocomplete:"off","data-link-name":"",placeholder:v("例如:家庭 NAS","For example: Home NAS")},null,8,c2),[[Oe,h.name]])]),e("label",null,[ue(a(v("地址","Address")),1),W(e("input",{"onUpdate:modelValue":D[1]||(D[1]=E=>h.url=E),maxlength:"2048",required:"",autocomplete:"off",inputmode:"url","data-link-url":"",placeholder:"https://"},null,512),[[Oe,h.url]]),e("small",null,a(v("支持 HTTP / HTTPS,在新标签页打开。","HTTP / HTTPS. Opens in a new tab.")),1)]),e("fieldset",null,[e("legend",null,a(v("图标","Icon")),1),e("div",d2,[(i(!0),d(V,null,oe(o(P1),E=>(i(),d("button",{type:"button",key:E,onClick:A=>h.glyph=E,"aria-pressed":h.glyph===E,"aria-label":v("图标:","Icon: ")+E},[G(Qe,{name:E},null,8,["name"])],8,u2))),128))])]),s.initial?T("",!0):(i(),d("label",v2,[W(e("input",{"onUpdate:modelValue":D[2]||(D[2]=E=>h.pin=E),type:"checkbox",disabled:o(n).favorites.length>=24,"data-link-pin":""},null,8,p2),[[gt,h.pin]]),ue(a(v("同时固定到首页","Also pin to homepage")),1),e("small",null,a(o(n).favorites.length)+" / 24",1)])),!s.initial&&o(n).favorites.length>=24?(i(),d("p",h2,a(v("首页已满,仍可添加到全部入口。","Homepage full. You can still add this link to All.")),1)):T("",!0),f.value?(i(),d("p",m2,a(v("已有相同地址:","An entry already uses this address: "))+a(v(f.value.zh,f.value.en))+a(v("。可取消后使用原入口,也可保留为独立链接。",". Cancel to reuse it, or save a separate link.")),1)):T("",!0),g.value?(i(),d("p",f2,a(k.value),1)):T("",!0),b.value?(i(),d("div",b2,[e("p",null,a(v("删除此链接?如已固定,也会从首页移除;不会卸载应用或关闭服务。","Delete this link and its homepage pin? Apps and services are unaffected.")),1),e("button",{type:"button",onClick:w,"data-link-confirm-delete":""},a(v("确认删除","Confirm delete")),1),e("button",{type:"button",onClick:D[3]||(D[3]=E=>b.value=!1)},a(v("保留","Keep")),1)])):T("",!0),e("footer",null,[s.initial&&!b.value?(i(),d("button",{key:0,disabled:o(c)(),type:"button",class:"link-delete",onClick:D[4]||(D[4]=E=>b.value=!0),"data-link-delete":""},a(v("删除链接","Delete link")),9,g2)):T("",!0),D[6]||(D[6]=e("span",null,null,-1)),e("button",{type:"button",onClick:D[5]||(D[5]=E=>_.$emit("cancel"))},a(v("取消","Cancel")),1),e("button",{type:"submit",disabled:o(c)(),class:"link-save","data-link-save":""},a(v("保存链接","Save link")),9,_2)])],40,i2))}}),k2=le(y2,[["__scopeId","data-v-2b884351"]]);function Zs(){const s=new Set;let t=!0;return lt(()=>{t=!1;for(const n of s)window.clearTimeout(n);s.clear()}),(n,l=0)=>{if(!t)return 0;const u=window.setTimeout(()=>{s.delete(u),t&&n()},l);return s.add(u),u}}const w2={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none",width:"128",height:"128"},$2=["fill"],C2=X({__name:"close",props:{color:{type:String,default:"#000000"}},setup(s){return(t,n)=>(i(),d("svg",w2,[e("path",{d:"M511.232 438.8352L112.9984 40.6016A51.2 51.2 0 0 0 40.6016 112.9984L438.784 511.232 40.6016 909.4656a51.2 51.2 0 1 0 72.3968 72.448l398.2336-398.2848 398.2336 398.2848a51.2 51.2 0 1 0 72.448-72.448l-398.2848-398.2336 398.2848-398.2336A51.2 51.2 0 0 0 909.4656 40.6016L511.232 438.784z","p-id":"1217",fill:s.color},null,8,$2)]))}}),S2={id:"actioner"},x2={key:0,class:"action-container"},P2={class:"action-container_header"},T2={class:"title"},M2=["title"],E2={class:"action-container_body"},I2=X({__name:"index",props:{Close:{type:Function},type:{type:Number},title:String},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(!1);nt(()=>{u.value=!0,document.body.setAttribute("lock-scroll","true")}),lt(()=>{document.body.removeAttribute("lock-scroll")});const c=()=>{l.Close&&(u.value=!1,setTimeout(()=>{l.Close&&l.Close()},300))};return(r,p)=>(i(),d("div",S2,[e("div",{class:"bg",onClick:c}),s.type!=null?Ct(r.$slots,"default",{},void 0,!0,0):(i(),d(V,{key:1},[u.value?(i(),d("div",x2,[e("div",P2,[p[0]||(p[0]=e("div",null,null,-1)),e("div",T2,a(s.title),1),e("button",{class:"close",title:o(t)("关闭"),onClick:c},[G(C2)],8,M2)]),e("div",E2,[Ct(r.$slots,"default",{},void 0,!0)])])):T("",!0)],64))]))}}),D2=le(I2,[["__scopeId","data-v-20b7104a"]]),Nt=X({__name:"modal",props:{Close:{type:Function},type:{type:Number},title:String},setup(s){return(t,n)=>(i(),Y(D2,{Close:s.Close,type:s.type,title:s.title},{default:pe(()=>[Ct(t.$slots,"default")]),_:3},8,["Close","type","title"]))}}),Si=/\d+\.\d+\.\d+\.\d+/,L2=s=>Si.test(s)&&ss.IPv4.isValid(s),Qn=s=>{const t=ss.IPv4.parse(s).toByteArray();return t[0]<<24|t[1]<<16|t[2]<<8|t[3]},Al=s=>ss.fromByteArray([s>>24&255,s>>16&255,s>>8&255,s&255]).toString(),A2=s=>{if(!Si.test(s)||!ss.IPv4.isIPv4(s))return!1;let t=0,n=Qn(s);for(let l=31;l>=0&&(n&1<{let u=Qn(s)&Qn(t),c=Qn(n),r=Qn(l),v=~Qn(t);return cu+1&&r{let n=Qn(t),l=Qn(s)&n,u=~n,c;return u>=105?(c=l|u-5,l=l|100):u>=3?(c=l|u-1,l=l|2):(l=l|1,c=l),[Al(l),Al(c)]},z2=s=>ss.IPv4.subnetMaskFromPrefixLength(s).toString(),wn={isValidMask:A2,isValidIPv4:L2,isValidMaskRange:N2,calcMaskRange:O2,prefixToMask:z2},q2={class:"actioner-dns_header"},R2={class:"actioner-dns_body"},V2={class:"label-item"},B2={class:"label-item_key"},U2={class:"label-item_value"},F2={class:"label-item"},H2={class:"label-item_key"},G2={class:"label-item_value"},j2={key:0,class:"chose_dhcp"},W2={key:0,class:"dhcp_info"},J2={key:1,class:"dhcp_info"},K2={class:"label-item"},Z2={class:"label-item_key"},Y2={class:"label-item_value"},Q2={class:"label-item"},X2={class:"label-item_key"},e0={class:"label-item_value"},t0={class:"actioner-dns_footer"},n0=["disabled"],a0={key:1,class:"actioner-dns"},s0={class:"actioner-dns_header"},o0={class:"actioner-dns_body"},l0={key:0,class:"setting_status"},i0={class:"config-message"},r0=["href"],c0={key:1,class:"setting_status"},d0={class:"config-message"},u0={key:2,class:"setting_status"},v0={class:"config-message"},p0=X({__name:"index",props:{Close:{type:Function,required:!0}},setup(s){const t=Zs(),{$gettext:n,$ngettext:l}=Ae(),u=s,c=x(0),r=x({lanIp:"",netMask:"255.255.255.0",enableDhcp:!1,dhcpStart:"",dhcpEnd:""});x("");const p=x(!1);x(!0),x(!1);const v=x(""),h=x(2),g=x(!1),b=x("timeout");let m=!0;we.Guide.GetLan.GET().then(C=>{C.data.result&&(g.value=C.data.result.enableDhcp||!1,C.data.result.enableDhcp=!1,r.value=C.data.result,C.data.result.lanIp!==location.hostname&&(m=!1))});const k=()=>{const C=r.value;if(!wn.isValidIPv4(C.lanIp)){ne.Warning(n("IPv4地址格式错误"));return}if(!wn.isValidMask(C.netMask)){ne.Warning(n("IPv4子网掩码格式错误"));return}const y=wn.calcMaskRange(C.lanIp,C.netMask);C.dhcpStart=y[0],C.dhcpEnd=y[1],r.value=C},$=()=>{const C=r.value;if(!wn.isValidIPv4(C.lanIp)){ne.Warning(n("IPv4地址格式错误"));return}if(!wn.isValidMask(C.netMask)){ne.Warning(n("IPv4子网掩码格式错误"));return}if(C.enableDhcp&&!(wn.isValidIPv4(C.dhcpStart)&&wn.isValidIPv4(C.dhcpEnd)&&wn.isValidMaskRange(C.lanIp,C.netMask,C.dhcpStart,C.dhcpEnd))){ne.Warning(n("DHCP的IP池格式错误或超出子网范围"));return}const y=ne.Loading(n("正在配置…请稍等"),30);let P=0;const _=E=>{b.value=E,c.value=1,P=1,y.Close()},D=()=>{const E=new Date().getTime()+3e4,A=m?location.protocol+"//"+C.lanIp+(location.port?":"+location.port:""):location.origin,U=A+"/luci-static/resources/icons/loading.gif",q=()=>{P==0&&(new Date().getTime()>E?_("timeout"):t(N,2e3))},z=()=>{P==0&&(v.value=A+location.pathname,_("success"),t(()=>{h.value=1},1e3),t(()=>{location.href=v.value},2e3))},N=()=>{if(P!=0)return;console.log("check online ",U);const F=new Image;F.onload=z,F.onerror=q,F.src=U};t(N,5e3)};we.Guide.LanIp.POST(C).then(E=>{var A;if(E!=null&&E.data){if((E.data.success||0)==0)return;if((A=E.data)!=null&&A.error)throw E.data.error}throw n("未知错误")}).catch(E=>{P==0&&(_("fail"),ne.Error(E))}),D(),t(()=>{P==0&&_("timeout")},3e4)},w=C=>{C.preventDefault(),u.Close&&u.Close()},S=C=>{location.reload()};return(C,y)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[c.value==0?(i(),d("form",{key:0,class:"actioner-dns",onSubmit:Ge($,["prevent"])},[e("div",q2,[e("span",null,a(o(n)("内网配置")),1)]),e("div",R2,[e("div",V2,[e("div",B2,[e("span",null,a(o(n)("IPv4地址")),1)]),e("div",U2,[W(e("input",{type:"text",placeholder:"192.168.100.1",required:"","onUpdate:modelValue":y[0]||(y[0]=P=>r.value.lanIp=P),onChange:k},null,544),[[Oe,r.value.lanIp,void 0,{trim:!0}]])])]),e("div",F2,[e("div",H2,[e("span",null,a(o(n)("IPv4子网掩码")),1)]),e("div",G2,[W(e("input",{type:"text",placeholder:"255.255.255.0",required:"","onUpdate:modelValue":y[1]||(y[1]=P=>r.value.netMask=P),onChange:k},null,544),[[Oe,r.value.netMask,void 0,{trim:!0}]])])]),g.value?(i(),d("div",j2,[G(Jc,{modelValue:r.value.enableDhcp,"onUpdate:modelValue":y[2]||(y[2]=P=>r.value.enableDhcp=P)},{default:pe(()=>[r.value.enableDhcp?(i(),d("span",W2,a(o(n)("修改DHCP服务")),1)):(i(),d("span",J2,a(o(n)("保持DHCP服务设置")),1))]),_:1},8,["modelValue"])])):T("",!0),r.value.enableDhcp?(i(),d(V,{key:1},[e("div",K2,[e("div",Z2,[e("span",null,a(o(n)("IP池起始地址")),1)]),e("div",Y2,[W(e("input",{type:"text",placeholder:"192.168.100.100",required:"","onUpdate:modelValue":y[3]||(y[3]=P=>r.value.dhcpStart=P)},null,512),[[Oe,r.value.dhcpStart,void 0,{trim:!0}]])])]),e("div",Q2,[e("div",X2,[e("span",null,a(o(n)("IP池结束地址")),1)]),e("div",e0,[W(e("input",{type:"text",placeholder:"192.168.100.100",required:"","onUpdate:modelValue":y[4]||(y[4]=P=>r.value.dhcpEnd=P)},null,512),[[Oe,r.value.dhcpEnd,void 0,{trim:!0}]])])])],64)):T("",!0)]),e("div",t0,[e("button",{class:"cbi-button cbi-button-apply app-btn",disabled:p.value},a(o(n)("确认")),9,n0),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:w},a(o(n)("取消")),1)])],32)):c.value==1?(i(),d("div",a0,[e("div",s0,[e("span",null,a(o(n)("更换配置")),1)]),e("div",o0,[b.value=="success"?(i(),d("div",l0,[y[5]||(y[5]=e("div",{class:"success_icon"},[e("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128"},[e("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063"})])],-1)),e("div",i0,a(o(n)("配置成功")),1),e("a",{href:v.value,class:"NewAdress"},a(o(n)("%{ countdown }s后 跳转新地址",{countdown:""+h.value})),9,r0)])):b.value=="fail"?(i(),d("div",c0,[y[6]||(y[6]=e("div",{class:"success_icon"},[e("svg",{t:"1642063200324",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5898",width:"128",height:"128"},[e("path",{d:"M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z",fill:"#E84335","p-id":"5899"})])],-1)),e("div",d0,a(o(n)("配置失败")),1),e("p",null,a(o(n)("请尝试重新配置")),1),e("button",{class:"cbi-button cbi-button-apply app-btn",onClick:S},a(o(n)("我知道了")),1)])):b.value=="timeout"?(i(),d("div",u0,[y[7]||(y[7]=e("div",{class:"success_icon"},[e("svg",{width:"128px",height:"128px",viewBox:"0 0 128 128",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},[e("g",{id:"icon_yellow",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e("g",{id:"Icon/Warning"},[e("rect",{id:"矩形",fill:"#000000","fill-rule":"nonzero",opacity:"0",x:"0",y:"0",width:"128",height:"128"}),e("path",{d:"M64,8 C33.075,8 8,33.075 8,64 C8,94.925 33.075,120 64,120 C94.925,120 120,94.925 120,64 C120,33.075 94.925,8 64,8 Z M60,37 C60,36.45 60.45,36 61,36 L67,36 C67.55,36 68,36.45 68,37 L68,71 C68,71.55 67.55,72 67,72 L61,72 C60.45,72 60,71.55 60,71 L60,37 Z M64,92 C60.6875,92 58,89.3125 58,86 C58,82.6875 60.6875,80 64,80 C67.3125,80 70,82.6875 70,86 C70,89.3125 67.3125,92 64,92 Z",id:"形状",fill:"#FAAD14"})])])])],-1)),e("div",v0,a(o(n)("配置超时")),1),e("p",null,a(o(n)("路由器 IP 可能已经修改成功。若刷新页面失败,请重新连接路由器,否则请尝试重新配置。")),1),e("button",{class:"cbi-button cbi-button-apply app-btn",onClick:S},a(o(n)("刷新页面")),1)])):T("",!0)])])):T("",!0)]),_:1},8,["Close"]))}}),h0=le(p0,[["__scopeId","data-v-e56d6503"]]),m0={class:"actioner-dns_header"},f0={class:"actioner-dns_body"},b0={class:"label-item"},g0={class:"label-item_key"},_0={class:"label-item_value"},y0=["disabled"],k0={value:"manual"},w0={class:"label-item"},$0={class:"label-item_key"},C0={class:"label-item_value"},S0=["placeholder","onUpdate:modelValue"],x0={class:"label-item_key"},P0={class:"label-item_value"},T0=["placeholder","onUpdate:modelValue"],M0={key:1,class:"label-message"},E0={class:"actioner-dns_footer"},I0=["disabled"],D0={key:1,class:"actioner-dns"},L0={class:"actioner-dns_header"},A0={class:"actioner-dns_body"},N0={class:"config-message"},O0={class:"actioner-dns_footer"},z0=X({__name:"index",props:{Close:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(0),c=os(),r=c.status,p=R(()=>c.status.proto!="static"),v=()=>{let $=r.dnsList||[];for($=$.filter(w=>w);$.length<2;)$.push("");return $},h=x({interfaceName:r.defaultInterface||"",dnsProto:r.dnsProto||"manual",manualDnsIp:v()}),g=x(""),b=x(!1),m=()=>B(null,null,function*(){g.value="";let $={};switch(h.value.dnsProto){case"auto":break;case"manual":if($.manualDnsIp=[],!h.value.manualDnsIp[0]){ne.Error(t("至少需要填写一个DNS"));return}$.manualDnsIp=h.value.manualDnsIp.filter(S=>S);break}$.dnsProto=h.value.dnsProto,$.interfaceName=h.value.interfaceName;const w=ne.Loading(t("配置中..."));try{const S=yield we.Guide.DnsConfig.POST($);if(S!=null&&S.data){const{success:C,error:y}=S==null?void 0:S.data;y&&(g.value=y),(C==null||C==0)&&(ne.Success(t("配置成功")),u.value=1)}}catch(S){g.value=S}w.Close()}),f=$=>{$.preventDefault(),l.Close&&l.Close()},k=$=>{location.reload()};return($,w)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[u.value==0?(i(),d("form",{key:0,class:"actioner-dns",onSubmit:Ge(m,["prevent"])},[e("div",m0,[e("span",null,a(o(t)("DNS配置")),1)]),e("div",f0,[e("div",b0,[e("div",g0,[e("span",null,a(o(t)("DNS选项")),1)]),e("div",_0,[W(e("select",{"onUpdate:modelValue":w[0]||(w[0]=S=>h.value.dnsProto=S)},[e("option",{value:"auto",disabled:!p.value},a(o(t)("自动获取DNS")),9,y0),e("option",k0,a(o(t)("自定义DNS")),1)],512),[[Be,h.value.dnsProto]])])]),h.value.dnsProto=="manual"?(i(!0),d(V,{key:0},oe(h.value.manualDnsIp,(S,C)=>(i(),d("div",w0,[C==0?(i(),d(V,{key:0},[e("div",$0,[e("span",null,a(o(t)("DNS服务器地址")),1)]),e("div",C0,[W(e("input",{type:"text",placeholder:o(t)("请输入DNS地址"),required:"","onUpdate:modelValue":y=>h.value.manualDnsIp[C]=y},null,8,S0),[[Oe,h.value.manualDnsIp[C],void 0,{trim:!0}]])])],64)):(i(),d(V,{key:1},[e("div",x0,a(o(t)("备用DNS服务器地址")),1),e("div",P0,[W(e("input",{type:"text",placeholder:o(t)("备用DNS地址"),"onUpdate:modelValue":y=>h.value.manualDnsIp[C]=y},null,8,T0),[[Oe,h.value.manualDnsIp[C],void 0,{trim:!0}]])])],64))]))),256)):T("",!0),g.value?(i(),d("div",M0,a(g.value),1)):T("",!0)]),e("div",E0,[e("button",{class:"cbi-button cbi-button-apply app-btn",disabled:b.value},a(o(t)("确认")),9,I0),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:f},a(o(t)("取消")),1)])],32)):u.value==1?(i(),d("div",D0,[e("div",L0,[e("span",null,a(o(t)("DNS配置")),1)]),e("div",A0,[e("div",N0,a(o(t)("DNS配置已保存")),1)]),e("div",O0,[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:k},a(o(t)("完成")),1)])])):T("",!0)]),_:1},8,["Close"]))}}),xi=le(z0,[["__scopeId","data-v-c9250761"]]),q0={},R0={width:"82px",height:"82px",viewBox:"0 0 82 82",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function V0(s,t){return i(),d("svg",R0,[...t[0]||(t[0]=[Hn('',1)])])}const Qo=le(q0,[["render",V0]]),B0={class:"actioner-dns_header"},U0={class:"actioner-dns_body"},F0={class:"label-item"},H0={class:"label-item_key"},G0={class:"label-item_value"},j0={class:"item_info"},W0={class:"label-item"},J0={class:"label-item_key"},K0={class:"label-item_value"},Z0={selected:"true",value:""},Y0=["value"],Q0={class:"actioner-dns_footer"},X0=["disabled"],e6={key:1,class:"actioner-dns"},t6={class:"actioner-dns_header"},n6={class:"softsource_tit"},a6={class:"actioner-dns_body"},s6={class:"finished"},o6={class:"successed"},l6={class:"btns"},i6=X({__name:"index",props:{Close:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(0),c=x(""),r=x(),p=x();we.Guide.SoftSourceList.GET().then(m=>{var f,k;if((f=m==null?void 0:m.data)!=null&&f.result){const $=(k=m==null?void 0:m.data)==null?void 0:k.result;p.value=$}}).then(()=>we.Guide.GetSoftSource.GET()).then(m=>{var f,k;if((f=m==null?void 0:m.data)!=null&&f.result){const $=m.data.result;r.value=$.softSource,(k=p.value)!=null&&k.softSourceList.find(w=>w.identity==$.softSource.identity)&&(c.value=$.softSource.identity)}});const h=m=>{m.preventDefault(),l.Close&&l.Close()},g=m=>{const f=ne.Loading(t("正在切换中..."));we.Guide.SoftSource.POST({softSourceIdentity:c.value}).then(k=>{if(k!=null&&k.data){if((k.data.success||0)==0){u.value=1;return}else if(k.data.error)throw k.data.error}throw t("未知错误")}).catch(k=>{ne.Error(k)}).finally(()=>f.Close())},b=m=>{m.preventDefault(),location.reload()};return(m,f)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>{var k,$;return[u.value==0?(i(),d("form",{key:0,class:"actioner-dns",onSubmit:Ge(g,["prevent"])},[e("div",B0,[e("span",null,a(o(t)("软件源配置")),1)]),e("div",U0,[e("div",F0,[e("div",H0,[e("span",null,a(o(t)("当前软件源")),1)]),e("div",G0,[e("p",j0,a((k=r.value)==null?void 0:k.name),1)])]),e("div",W0,[e("div",J0,[e("span",null,a(o(t)("切换软件源")),1)]),e("div",K0,[W(e("select",{name:"",id:"","onUpdate:modelValue":f[0]||(f[0]=w=>c.value=w)},[e("option",Z0,a(o(t)("请选择软件源")),1),(i(!0),d(V,null,oe(($=p.value)==null?void 0:$.softSourceList,(w,S)=>(i(),d("option",{value:w.identity,key:S},a(w.name),9,Y0))),128))],512),[[Be,c.value,void 0,{trim:!0}]])])])]),e("div",Q0,[e("button",{class:"cbi-button cbi-button-apply app-btn",disabled:c.value==""},a(o(t)("确认")),9,X0),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:h},a(o(t)("取消")),1)])],32)):T("",!0),u.value==1?(i(),d("form",e6,[e("div",t6,[e("span",n6,a(o(t)("软件源配置")),1)]),e("div",a6,[e("div",s6,[G(Qo)]),e("p",o6,a(o(t)("配置成功!")),1),e("div",l6,[e("button",{class:"cbi-button cbi-button-apply softsource_successed",onClick:b},a(o(t)("确定")),1)])])])):T("",!0)]}),_:1},8,["Close"]))}}),Pi=le(i6,[["__scopeId","data-v-c1ba9558"]]),r6={},c6={width:"14px",height:"14px",viewBox:"0 0 14 14",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function d6(s,t){return i(),d("svg",c6,[...t[0]||(t[0]=[e("g",{id:"icon_alert",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e("g",{id:"Icon/Warning"},[e("rect",{id:"矩形",fill:"#000000","fill-rule":"nonzero",opacity:"0",x:"0",y:"0",width:"14",height:"14"}),e("path",{d:"M7,0.875 C3.61757813,0.875 0.875,3.61757813 0.875,7 C0.875,10.3824219 3.61757813,13.125 7,13.125 C10.3824219,13.125 13.125,10.3824219 13.125,7 C13.125,3.61757813 10.3824219,0.875 7,0.875 Z M6.5625,4.046875 C6.5625,3.98671875 6.61171875,3.9375 6.671875,3.9375 L7.328125,3.9375 C7.38828125,3.9375 7.4375,3.98671875 7.4375,4.046875 L7.4375,7.765625 C7.4375,7.82578125 7.38828125,7.875 7.328125,7.875 L6.671875,7.875 C6.61171875,7.875 6.5625,7.82578125 6.5625,7.765625 L6.5625,4.046875 Z M7,10.0625 C6.63769531,10.0625 6.34375,9.76855469 6.34375,9.40625 C6.34375,9.04394531 6.63769531,8.75 7,8.75 C7.36230469,8.75 7.65625,9.04394531 7.65625,9.40625 C7.65625,9.76855469 7.36230469,10.0625 7,10.0625 Z",id:"形状",fill:"#FAAD14"})])],-1)])])}const Sn=le(r6,[["render",d6]]),u6={key:0,class:"actioner-dns"},v6={class:"actioner-dns_header"},p6={class:"actioner-dns_body"},h6={class:"sandbox_info"},m6={key:0,class:"disk_loading_icon"},f6={class:"disk_loading_info"},b6={key:1,class:"disk_tips"},g6={class:"label-item"},_6={class:"label-item_key"},y6={class:"label-item_value"},k6={value:""},w6=["value"],$6={class:"label-item"},C6={class:"label-item_key"},S6={class:"label-item_value"},x6={selected:"true",value:""},P6=["value","disabled"],T6={class:"sandbox_tips"},M6={class:"sandbox_info timeout"},E6={class:"sandbox_roboot_tips"},I6={class:"sandbox_roboot_refresh"},D6={key:0,class:"actioner-dns_footer"},L6=["disabled"],A6={key:1,class:"actioner-tips"},N6={class:"actioner-tips_header"},O6={class:"actioner-tips_body"},z6={class:"sandbox_info"},q6={class:"actioner-tips_footer"},R6={key:2,class:"actioner-tips"},V6={class:"actioner-tips_header"},B6={class:"actioner-tips_body"},U6={class:"sandbox_info"},F6={class:"actioner-tips_footer"},H6=X({__name:"index",props:{Close:{type:Function,required:!0}},setup(s){const t=Zs(),{$gettext:n,$ngettext:l}=Ae(),u=s,c=x(0);x("disk");const r=x(""),p=x(3),v=x(""),h=x([]),g=x(""),b=x(null);we.Nas.SandboxDisks.GET().then(P=>{var _;if(P!=null&&P.data&&(_=P.data)!=null&&_.result){b.value=P.data.result;return}throw n("加载磁盘信息失败")}).catch(P=>{r.value=P,c.value=3});const f=()=>we.System.Reboot.POST().then(P=>{var _;if(!(P!=null&&P.data&&(((_=P==null?void 0:P.data)==null?void 0:_.success)||0)==0))throw n("未知错误")}),k=P=>{var _,D;g.value="",h.value=v.value&&((D=(_=b.value)==null?void 0:_.disks.find(E=>E.path==v.value))==null?void 0:D.childrens)||[]},$=()=>{p.value>0&&(p.value-=1,t($,1e3))},w=P=>{P.preventDefault(),u.Close&&u.Close()},S=()=>{new Promise((P,_)=>{const D="/luci-static/resources/icons/loading.gif",E=()=>{t(A,2e3)},A=()=>{const U=new Image;U.onload=P,U.onerror=E,U.src=D};t(A,1e4)}).then(()=>{t(()=>{location.reload()},2e3)})},C=P=>{const _=ne.Loading(n("配置沙箱重启中..."));we.Nas.Sandbox.POST({path:g.value}).then(D=>{var E;if(D!=null&&D.data){if((D.data.success||0)==0)return c.value=2,t($,1e3),f();if((E=D.data)!=null&&E.error)throw D.data.error}throw n("未知错误")}).then(S).catch(D=>ne.Warning(D)).finally(()=>_.Close())},y=()=>{c.value=0};return(P,_)=>{const D=At("icon-loading");return i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[c.value==0||c.value==2?(i(),d("div",u6,[e("div",v6,[e("span",null,a(o(n)("沙箱模式配置向导")),1)]),e("div",p6,[e("p",h6,a(o(n)("一个简易沙箱,方便用来实验系统配置和程序,方便开发未完成的软件,但不保护 Docker 和硬盘的数据")),1),c.value==0?(i(),d(V,{key:0},[b.value?T("",!0):(i(),d("div",m6,[G(D,{size:38,color:"currentColor"}),e("span",f6,a(o(n)("正在加载中...")),1)])),b.value&&b.value.disks.length==0?(i(),d("div",b6,[G(Sn),e("span",null,a(o(n)("检测不到挂载的磁盘信息,请先插上磁盘,建议使用U盘或者移动硬盘,方便装卸")),1)])):T("",!0),b.value&&b.value.disks.length>0?(i(),d(V,{key:2},[e("div",g6,[e("div",_6,[e("span",null,a(o(n)("目标磁盘(建议选择U盘或者移动硬盘,方便装卸)")),1)]),e("div",y6,[W(e("select",{name:"",id:"",onChange:k,"onUpdate:modelValue":_[0]||(_[0]=E=>v.value=E)},[e("option",k6,a(o(n)("请选择目标磁盘")),1),(i(!0),d(V,null,oe(b.value.disks,(E,A)=>(i(),d("option",{value:E.path,key:A},a(E.venderModel)+"("+a(E.size)+") ",9,w6))),128))],544),[[Be,v.value]])])]),e("div",$6,[e("div",C6,[e("span",null,a(o(n)("目标分区(分区大小须大于2G,将此分区作为外部 overlay 使用)")),1)]),e("div",S6,[W(e("select",{name:"",id:"","onUpdate:modelValue":_[1]||(_[1]=E=>g.value=E)},[e("option",x6,a(o(n)("请选择目标分区")),1),(i(!0),d(V,null,oe(h.value,(E,A)=>(i(),d("option",{value:E.path,key:A,disabled:E.sizeInt<(1<<30)*1||E.isSystemRoot},a(E.name)+"("+a(E.filesystem||o(n)("未格式化"))+")"+a(E.total),9,P6))),128))],512),[[Be,g.value]])])]),e("div",T6,[G(Sn),e("span",null,a(o(n)("此操作会将会删除该分区全部数据")),1)])],64)):T("",!0)],64)):T("",!0),c.value==2?(i(),d(V,{key:1},[e("p",M6,[ue(a(o(n)("即将重启设备"))+" ",1),e("span",null,"("+a(p.value)+"s)",1)]),e("p",E6,[ue(a(o(n)("等待设备重启,重启完成后")),1),e("span",I6,a(o(n)("请刷新界面")),1)])],64)):T("",!0)]),c.value==0?(i(),d("div",D6,[e("button",{class:"cbi-button cbi-button-apply app-btn",disabled:!g.value,onClick:_[2]||(_[2]=E=>c.value=1)},a(o(n)("开启沙箱")),9,L6),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:w},a(o(n)("取消")),1)])):T("",!0)])):T("",!0),c.value==1?(i(),d("div",A6,[e("div",N6,[e("span",null,a(o(n)("温馨提示")),1)]),e("div",O6,[e("p",z6,a(o(n)("此操作会将会删除该分区全部数据,并格式化成EXT4,随后自动重启进入沙箱模式,是否继续?")),1)]),e("div",q6,[e("button",{class:"cbi-button cbi-button-apply app-btn",onClick:C},a(o(n)("继续")),1),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:y},a(o(n)("取消")),1)])])):T("",!0),c.value==3?(i(),d("div",R6,[e("div",V6,[e("span",null,a(o(n)("错误")),1)]),e("div",B6,[e("p",U6,a(r.value),1)]),e("div",F6,[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:y},a(o(n)("取消")),1)])])):T("",!0)]),_:1},8,["Close"])}}}),G6=le(H6,[["__scopeId","data-v-4239794c"]]),j6={key:0,class:"actioner-dns"},W6={class:"actioner-dns_header"},J6={class:"actioner-dns_body"},K6={class:"sandbox_info"},Z6={class:"sandbox_environment"},Y6={class:"sandbox_environment_info"},Q6={class:"sandbox_environment_reboot"},X6=["innerHTML"],ev={class:"actioner-dns_footer"},tv=["disabled"],nv=["disabled"],av=["disabled"],sv=X({__name:"index",props:{Close:{type:Function,required:!0}},setup(s){const t=Zs(),{$gettext:n,$ngettext:l}=Ae(),u=s,c=x(0),r=x(!1),p=()=>{new Promise((m,f)=>{const k="/luci-static/resources/icons/loading.gif",$=()=>{t(w,2e3)},w=()=>{const S=new Image;S.onload=m,S.onerror=$,S.src=k};t(w,1e4)}).then(()=>{t(()=>{location.reload()},2e3)})},v=()=>{r.value=!0;const m=ne.Loading(n("提交中..."));we.Nas.SandboxCommit.POST().then(f=>{var k,$;if(f!=null&&f.data)if((((k=f==null?void 0:f.data)==null?void 0:k.success)||0)==0){ne.Loading(n("设备重启中..."));return}else($=f==null?void 0:f.data)!=null&&$.error&&alert(f.data.error);throw n("未知错误")}).then(p).catch(f=>{ne.Error(f),r.value=!1}).finally(()=>m.Close())},h=()=>{r.value=!0;const m=ne.Loading(n("重置中..."));we.Nas.SandboxReset.POST().then(f=>{var k,$;if(f!=null&&f.data)if((((k=f==null?void 0:f.data)==null?void 0:k.success)||0)==0){ne.Loading(n("设备重启中... 若页面长时间未刷新可能需要手动填写地址"));return}else($=f==null?void 0:f.data)!=null&&$.error&&alert(f.data.error);throw n("未知错误")}).then(p).catch(f=>{ne.Error(f),r.value=!1}).finally(()=>m.Close())},g=()=>{if(!confirm(n("确定放弃沙箱中的数据?再次进入沙箱需要重新格式化相应磁盘分区")))return;r.value=!0;const m=ne.Loading(n("执行中..."));we.Nas.SandboxExit.POST().then(f=>{var k,$;if(f!=null&&f.data)if((((k=f==null?void 0:f.data)==null?void 0:k.success)||0)==0){ne.Loading(n("设备重启中... 若页面长时间未刷新可能需要手动填写地址"));return}else($=f==null?void 0:f.data)!=null&&$.error&&alert(f.data.error);throw n("未知错误")}).then(p).catch(f=>{ne.Error(f),r.value=!1}).finally(()=>m.Close())},b=m=>{m.preventDefault(),u.Close&&u.Close()};return(m,f)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[c.value==0?(i(),d("div",j6,[e("div",W6,[e("span",null,a(o(n)("沙箱模式配置向导")),1)]),e("div",J6,[e("p",K6,a(o(n)("一个简易沙箱,方便用来实验系统配置和程序,方便开发未完成的软件,但不保护 Docker 和硬盘的数据")),1),e("div",Z6,[e("p",null,a(o(n)("当前处于沙箱环境:")),1),e("p",null,a(o(n)("1、点击“提交”可将变更合并到非沙箱环境")),1),e("p",null,a(o(n)("2、点击“重置”可将沙箱恢复到初始状态")),1),e("p",null,a(o(n)("3、点击“退出”可退出沙箱环境,并放弃沙箱中的数据")),1)]),e("div",Y6,[ue(a(o(n)("以上操作都将重启设备,设备重启完成后会自动刷新页面。如果 IP 变化可能需要")),1),e("span",Q6,a(o(n)("手动在地址栏输入地址")),1),e("p",{class:"sandbox_environment_tex",innerHTML:o(n)("如需临时退出沙箱环境,请将设备关机后拔出相关磁盘,启动前插入相关磁盘可再次进入沙箱。
注意临时退出沙箱环境以后升级固件会导致之前的沙箱数据无效",{},!0)},null,8,X6)])]),e("div",ev,[e("button",{class:"cbi-button cbi-button-apply app-btn",onClick:v,disabled:r.value},a(o(n)("提交")),9,tv),e("button",{class:"cbi-button cbi-button-apply app-btn",onClick:h,disabled:r.value},a(o(n)("重置")),9,nv),e("button",{class:"cbi-button cbi-button-apply app-btn",onClick:g,disabled:r.value},a(o(n)("退出")),9,av),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:b},a(o(n)("取消")),1)])])):T("",!0)]),_:1},8,["Close"]))}}),ov=le(sv,[["__scopeId","data-v-79f9b13d"]]),lv=["data-launcher-action"],iv={key:0,role:"status"},rv=["href","target"],cv={key:3,class:"launcher-firmware-options"},dv=["checked","disabled"],uv={key:0},vv={role:"status"},pv=X({__name:"LauncherToolAction",props:{app:{}},emits:["close"],setup(s,{emit:t}){var _,D;const{entryAvailability:n,state:l}=ns(),u=s,c=t,r=window.vue_lang==="en",p=(E,A)=>r?A:E,v=Oa(),h=os(),g=R(()=>p(u.app.zh,u.app.en)),b=()=>c("close"),m=R(()=>{var E;return n(u.app)!=="available"?n(u.app)==="unsupported"?p("当前固件不支持此功能。","This firmware does not support this tool."):p("功能状态暂不可用,请稍后重试。","Tool status is unavailable. Try again later."):u.app.tool==="dns"&&!((E=h.status)!=null&&E.proto)?p("网络信息尚未就绪,请稍后重试。","Network details are not ready. Try again later."):""}),f={lan:Kn(h0),dns:Kn(xi),source:Kn(Pi),sandbox:Kn(G6)},k=R(()=>u.app.tool==="sandbox"&&l.sandbox==="running"?Kn(ov):f[u.app.tool||""]),$=R(()=>{var E,A,U,q;return u.app.tool==="terminal"?`${(A=(E=window.quickstart_configs)==null?void 0:E.ttyd)!=null&&A.ssl?"https":"http"}://${window.location.hostname}:${((q=(U=window.quickstart_configs)==null?void 0:U.ttyd)==null?void 0:q.port)||7681}/`:u.app.path}),w=x(!((D=(_=window.quickstart_configs)==null?void 0:_.update)!=null&&D.disable)),S=x(!1),C=x("");let y=!0;function P(E){return B(this,null,function*(){if(!S.value){S.value=!0,C.value="";try{const A=yield we.System.AutoCheckUpdate.POST({enable:E});if(A.data.success!==0||A.data.error)throw new Error(A.data.error);w.value=E,y&&(window.quickstart_configs.update=Ne(ye({},window.quickstart_configs.update),{disable:!E}),C.value=p("设置已保存","Setting saved"),E&&v.requestCheckUpdate())}catch(A){C.value=p("保存失败,请重试","Could not save. Try again.")}finally{S.value=!1}}})}return lt(()=>{y=!1}),(E,A)=>(i(),Y(na,{title:g.value,onClose:A[1]||(A[1]=U=>E.$emit("close"))},{default:pe(()=>{var U;return[e("div",{class:"launcher-tool-action","data-launcher-action":s.app.tool},[m.value?(i(),d("p",iv,a(m.value),1)):k.value?(i(),Y(Aa(k.value),{key:1,Close:b})):(i(),d("a",{key:2,href:$.value,target:s.app.tool==="terminal"?"_blank":void 0,rel:"noopener noreferrer","data-tool-destination":""},a(p("打开","Open"))+" "+a(g.value),9,rv)),s.app.tool==="firmware"&&!m.value?(i(),d("div",cv,[e("label",null,[e("input",{type:"checkbox",checked:w.value,disabled:S.value,onChange:A[0]||(A[0]=q=>P(q.target.checked))},null,40,dv),ue(a(p("自动检查更新","Automatically check for updates")),1)]),(U=o(v).checkUpdate)!=null&&U.needUpdate?(i(),d("span",uv,a(p("有可用更新","Update available")),1)):T("",!0),e("span",vv,a(C.value),1)])):T("",!0)],8,lv)]}),_:1},8,["title"]))}}),hv=le(pv,[["__scopeId","data-v-c89ea4d3"]]),mv=["data-app-form"],fv={class:"applications-heading"},bv={class:"applications-actions widget-action-group"},gv={key:0,class:"applications-state"},_v=["data-app-columns","data-app-capacity"],yv=["onClick","title","data-favorite-app","data-availability","aria-busy"],kv={key:0,class:"home-entry-spinner","aria-hidden":"true"},wv=["aria-label"],$v={key:0},Cv={key:0,class:"home-entry-announcement",role:"status"},Sv={key:1,class:"home-entry-error",role:"status","data-home-entry-state":""},xv=["aria-label"],Pv={key:3,class:"applications-fallback","data-applications-fallback":""},Tv=["onClick","data-home-entry"],Mv=["aria-label","data-shortcut-history"],Ev=["aria-label"],Iv=["inert"],Dv={class:"launcher-editor-toolbar"},Lv=["disabled"],Av={class:"launcher-library-heading"},Nv={class:"application-search"},Ov=["placeholder","aria-label"],zv={class:"launchpad-controls"},qv=["aria-label"],Rv=["aria-pressed","data-category","onClick"],Vv={key:0,class:"launchpad-library-actions"},Bv=["disabled"],Uv=["aria-pressed"],Fv={key:1,class:"applications-state launchpad-status",role:"status","data-applications-state":""},Hv=["aria-busy"],Gv={class:"launchpad-result-line"},jv={"data-library-total":""},Wv={key:3,class:"applications-state"},Jv={key:0},Kv={key:4,class:"application-catalogue"},Zv=["onClick","disabled","aria-pressed","aria-label","data-select-app"],Yv={key:5,class:"launchpad-grid","data-launchpad-grid":""},Qv=["onClick","title","aria-label","data-open-app","data-unavailable-shortcut","data-availability","data-browser-tool"],Xv=["aria-label"],e3={key:0},t3=["onClick","data-edit-link","aria-label"],n3=["aria-label"],a3=["disabled"],s3={"data-library-page":""},o3=["disabled"],l3={key:7,class:"application-limit"},i3={key:8,class:"browser-fallback"},r3=["onClick","data-browser-quick"],c3={key:9,class:"launchpad-notice",role:"status"},d3={key:0},u3=["disabled"],v3=["disabled"],p3={"data-shortcut-unavailable":""},h3=X({__name:"HomeApplications",props:{collapsed:{type:Boolean},hostOnly:{type:Boolean},fallbackEntries:{},contained:{type:Boolean},preference:{},natural:{type:Boolean},network:{},returnReady:{type:Function}},emits:["navigate","close"],setup(s,{emit:t}){const{entryAvailability:n,homeApplicationSession:l,linkSession:u,saving:c}=ns(),r=s,p=t,v=x(null),h=x(600),g=x(240),b=R(()=>Kt("applications",r.preference||{mode:"auto",iconRows:0},{width:h.value,height:r.natural?1e5:g.value,role:"ordinary",favoriteCount:ge.value.length,mobile:h.value<650,natural:r.natural})),m=R(()=>b.value.columns),f=R(()=>b.value.capacity);let k;const $=window.vue_lang==="en",w=(be,Te)=>$?Te:be,S=x("all"),C=x(!1),y=x(!1),P=x(""),_=x([]),D=x([]),E=x(1),A=[{id:"all",zh:"全部",en:"All"},{id:"apps",zh:"已安装应用",en:"Apps"},{id:"tools",zh:"系统工具",en:"Tools"},{id:"links",zh:"链接",en:"Links"}],U=x(!1),q=x(),z=x(null),N=x(!1),F=x(""),Z=R(()=>u.entries.length),Q=x(window.innerWidth<650?2:4),ce=ns(),ve=R(()=>ce.state.status),O=ce.catalogue,de=x(null),K=x(null),xe=Oa(),j=uo(On,"app"),re=uo(On,"status"),$e=uo(On,"source");let qe,De=0,Ke=!0,at=!1;const st=l2(!!r.hostOnly,()=>!ce.preferencesLoading()&&ce.state.status!=="loading",be=>{var Te,ie;return(ie=(Te=r.returnReady)==null?void 0:Te.call(r,be))!=null?ie:!0}),et=R(()=>re.value==="timeout"?w("打开应用超时,请重试。","Opening timed out. Please retry."):re.value==="permission"?w("没有解析入口的权限,请重新登录后重试。","No permission to resolve this entry. Sign in and retry."):w("暂时无法打开,请重试或打开配置。","Unable to open now. Retry or open settings."));function Ze(){at&&(De++,qe==null||qe.abort(),qe=void 0,re.value="idle",j.value=null,at=!1)}function it(){return B(this,null,function*(){var ie,Ye,je;const be=$e.value==="traffic",Te=$e.value==="home"?(ie=j.value)==null?void 0:ie.id:void 0;gi(),Ze(),yield ot(),be?(Ye=document.querySelector("[data-home-speed]"))==null||Ye.focus({preventScroll:!0}):Te&&((je=document.querySelector('[data-favorite-app="'+CSS.escape(Te)+'"]'))==null||je.focus({preventScroll:!0}))})}function he(){j.value&&St(j.value)}function H(){if(!j.value)return;const be=Ne(ye({},j.value),{entryScript:!1});$e.value==="home"&&!r.collapsed&&Ao(be)||J(be,$e.value)}function J(be,Te="browser"){return B(this,null,function*(){var ka;if(re.value==="loading"&&((ka=j.value)==null?void 0:ka.id)===be.id&&$e.value===Te)return;Ze(),at=!0;const ie=De,Ye=new AbortController;qe=Ye,j.value=be,$e.value=Te;const je=()=>Ke&&ie===De&&!Ye.signal.aborted&&(Te==="browser"?C.value:!C.value&&!document.querySelector(".ordered-editing")&&(Te==="traffic"?!!document.querySelector("[data-home-speed]"):l.favorites.includes(be.id)&&!!document.querySelector('[data-favorite-app="'+CSS.escape(be.id)+'"]')));let vt=!1,bn;const gn=()=>{bn=window.setTimeout(()=>{vt=!0,Ye.abort()},5e3)};(be.entryScript||Te==="traffic")&&(re.value="loading");try{let Rt;if(Te==="traffic"){if(ce.state.status==="loading"?yield ce.waitForRead():ce.state.status!=="ready"&&(yield ce.retry()),!je()){ie===De&&Ze();return}Rt=yield $1(ce.state.apps,ce.state.status,window.location.href,Ye.signal,{resolve:(...oa)=>B(null,null,function*(){gn();try{return yield Zo(...oa)}finally{window.clearTimeout(bn)}}),confirm:()=>je()&&window.confirm(w("FastNet暂未就绪,是否继续检查安装并打开配置?","FastNet is not ready. Continue with the installation check and open settings?")),install:()=>B(null,null,function*(){return je()?Xt.checkAndInstallApp("app-meta-fastnet","FastNet",void 0,je):!1})})}else be.entryScript&&gn(),Rt=yield k1(be,window.location.href,Ye.signal);if(!Rt){ie===De&&Ze();return}if(!je()){ie===De&&Ze();return}Te==="browser"?yield wt.remember(be.id):st.remember(be.id,Te==="traffic"?"traffic":void 0),je()?window.location.assign(Rt):ie===De&&Ze()}catch(Rt){Ke&&ie===De&&(re.value=vt?"timeout":Rt instanceof Error&&["permission","timeout"].includes(Rt.message)?Rt.message:"error")}finally{window.clearTimeout(bn)}})}const ge=R(()=>l.favorites.map(ce.resolve)),ze=R(()=>ve.value==="permission"?w("没有读取应用目录的权限,系统工具仍可使用。","No permission to read apps. System tools remain available."):ve.value==="timeout"?w("读取应用清单超时,请点击重试。系统工具仍可使用。","Loading applications timed out. Select Retry. System tools remain available."):ve.value==="error"?w("应用清单暂不可用,系统工具仍可使用。","Apps unavailable. System tools remain available."):ve.value==="loading"?w("正在读取应用清单…","Loading applications…"):w("还没有安装扩展应用,去软件中心发现更多。","No additional apps installed. Explore the software center."));function Fe(be){const Te=n(be);return Te==="uninstalled"?w("应用已卸载","App uninstalled"):Te==="permission"?w("无访问权限","No access"):Te==="unsupported"?w("固件不支持","Unsupported"):Te==="no-entry"?w("暂无可用入口","No verified entry"):w("状态待确认","Status unknown")}const Ee=R(()=>E1(O.value.map(be=>ce.resolve(be.id)),P.value,S.value,E.value)),dt=R(()=>Ee.value.entries);We([P,S],()=>{wt!=null&&wt.applying.value||(E.value=1)});function tt(be){var Te;E.value=be,(Te=document.querySelector(".applications-browser-body"))==null||Te.scrollTo({top:0})}function kt(be){return B(this,null,function*(){var Te;y.value||!ce.begin()||(q.value=be,U.value=!0,F.value="",yield ot(),(Te=document.querySelector(".applications-browser-body"))==null||Te.scrollTo({top:0}))})}function ct(){return B(this,null,function*(){var be;c()||(U.value=!1,q.value=void 0,yield ot(),(be=document.querySelector("[data-add-link]"))==null||be.focus())})}function Tt(be,Te){return B(this,null,function*(){var Ye;yield ct(),F.value=be,P.value="",S.value="links",yield ot();const ie=Te?O.value.filter(je=>je.kind==="link").findIndex(je=>je.id===Te):-1;E.value=ie>=0?Math.floor(ie/Ss)+1:Ee.value.current,yield ot(),Te&&((Ye=document.querySelector('[data-open-app="'+Te+'"]'))==null||Ye.focus())})}const ut=os();function St(be){return B(this,null,function*(){if(be.kind==="app"&&!r.collapsed&&Ao(be))return;if(be.kind==="app"&&n(be)==="available"){yield J(be);return}if(be.id==="files"){if(C.value&&!(yield Ue()))return;Xt.installAndGo("luci-app-linkease",w("易有云","LinkEase"),"/cgi-bin/luci/admin/services/linkease/file/","app-meta-linkease");return}const Te=r.network||Ft;if(be.kind==="builtin"){yield wt==null?void 0:wt.remember(be.id),p("navigate",be.path);return}if(!(C.value&&!(yield Ue()))){if(be.kind==="tool"){Te&&ut.updateNetworkStatus(ye({},Te)),de.value=be;return}if(n(be)!=="available"){K.value=be;return}if(be.kind==="link"){window.open(be.path,"_blank","noopener,noreferrer");return}}})}function ht(be){return B(this,null,function*(){if(n(be)!=="available"){K.value=be;return}yield J(be,"home")})}let xt=null,en="",qt=[],Ft,Ht;function ke(){ce.begin()&&(Ze(),y.value=!0,U.value=!1,N.value=!1,F.value="",_.value=[...l.favorites],D.value=[])}function Se(be){return B(this,null,function*(){be&&!ce.editable()||!r.collapsed&&m1(be,r.network)||document.querySelector(".ordered-editing")||(r.hostOnly?yield wt==null?void 0:wt.open(be):yield ae(be,{tab:"all",page:1},{search:""}))})}function ae(be,Te,ie){return B(this,null,function*(){var je;if(C.value){S.value=Te.tab,P.value=ie.search,E.value=Te.page,be&&ke();return}if(document.querySelector("[data-applications-browser]"))return;Ze(),xt=document.activeElement,be&&ce.begin(),y.value=be,P.value=ie.search,S.value=Te.tab,E.value=Te.page,U.value=!1,N.value=!1,F.value="",_.value=[...l.favorites],D.value=[],en=document.body.style.overflow,document.body.style.overflow="hidden",C.value=!0,yield ot();const Ye=document.querySelector(".canvas-home");qt=Array.from((Ye==null?void 0:Ye.children)||[]).filter(vt=>vt instanceof HTMLElement&&!vt.matches(".applications-browser,.applications-backdrop")&&!vt.hasAttribute("inert")),qt.forEach(vt=>vt.setAttribute("inert","")),(je=document.querySelector(".applications-close"))==null||je.focus()})}function He(){qt.forEach(be=>be.removeAttribute("inert")),qt=[],document.body.style.overflow=en}function Re(){Ze(),C.value=!1,U.value=!1,He(),_.value=[],D.value=[],Ft=void 0;const be=xt!=null&&xt.isConnected?xt:document.querySelector("[data-applications-hub] [data-all-apps]");be==null||be.focus({preventScroll:!0}),xt=null,p("close")}function Ue(){return B(this,null,function*(){var be;return c()?!1:r.hostOnly?(be=wt==null?void 0:wt.close())!=null?be:!1:Gt.value&&!window.confirm(w("尚有未保存的入口修改,确定放弃?","Discard unsaved shortcut changes?"))?!1:(Re(),!0)})}function Et(){return B(this,null,function*(){if(!c())try{yield ce.saveFavorites([..._.value]),Ue()}catch(be){F.value=be instanceof Error?be.message:w("保存失败,草稿保留","Save failed; draft retained")}})}function Pt(be){const Te=[...new Set(be)].slice(0,24);Te.join("|")!==_.value.join("|")&&(D.value=[...D.value.slice(-29),[..._.value]],_.value=Te)}function Ot(){D.value.length&&(_.value=D.value.pop())}function _t(be){_.value.includes(be)?Pt(_.value.filter(Te=>Te!==be)):_.value.length<24&&Pt([..._.value,be])}function dn(be){return B(this,null,function*(){Gt.value||c()||(yield wt==null?void 0:wt.remember(),p("navigate",be))})}const Gt=R(()=>C.value&&(U.value||y.value&&_.value.join("|")!==l.favorites.join("|")));function un(be){(Gt.value||c())&&(be.preventDefault(),be.returnValue="")}const wt=b1({enabled:!!r.hostOnly,opened:C,tab:S,page:E,search:P,dirty:Gt,saving:c,show:ae,hide:Re,confirm:()=>window.confirm(w("尚有未保存的入口修改,确定离开?","Leave without saving shortcut changes?")),settled:()=>ce.state.status!=="loading"&&!ce.preferencesLoading(),currentPage:()=>Ee.value.current});function sa(be){if(!C.value){be.key==="Escape"&&$e.value!=="browser"&&re.value!=="idle"&&(be.preventDefault(),be.stopImmediatePropagation(),it());return}if(be.key==="Escape"){be.preventDefault(),be.stopImmediatePropagation(),U.value?ct():Ue();return}if(be.key==="Tab"){const Te=Array.from(document.querySelectorAll(".applications-browser button:not(:disabled),.applications-browser input:not(:disabled)")).filter(je=>je.getClientRects().length),ie=Te[0],Ye=Te[Te.length-1];be.shiftKey&&document.activeElement===ie?(be.preventDefault(),Ye==null||Ye.focus()):!be.shiftKey&&document.activeElement===Ye&&(be.preventDefault(),ie==null||ie.focus())}}function tn(){Q.value=window.innerWidth<650?2:4}function Zt(){document.hidden&&(Ze(),de.value=null,K.value=null,z.value=null)}return nt(()=>window.addEventListener("pagehide",Ze)),lt(()=>{Ke=!1,Ze(),window.removeEventListener("pagehide",Ze)}),nt(()=>{window.addEventListener("beforeunload",un),r.collapsed&&(Ht=h1((be,Te)=>{Ft=Te,Se(be)},(be,Te)=>{Te==="traffic"?J(be,"traffic"):ht(be)},Ze)),document.addEventListener("keydown",sa,!0),document.addEventListener("visibilitychange",Zt),window.addEventListener("resize",tn),v.value&&(k=new ResizeObserver(()=>{const be=v.value.getBoundingClientRect();h.value=be.width,g.value=be.height}),k.observe(v.value))}),lt(()=>{window.removeEventListener("beforeunload",un),Ht==null||Ht(),k==null||k.disconnect(),document.removeEventListener("keydown",sa,!0),document.removeEventListener("visibilitychange",Zt),window.removeEventListener("resize",tn),C.value&&He()}),(be,Te)=>(i(),d(V,null,[s.collapsed?s.hostOnly?T("",!0):(i(),d("button",{key:1,class:"applications-collapsed",onClick:Te[3]||(Te[3]=ie=>Se(!1)),"data-open-applications":""},[G(Qe,{name:"grid"}),ue(a(w("应用工具","Apps & tools")),1)])):(i(),d("section",{key:0,ref_key:"hub",ref:v,class:_e(["home-applications fluid-applications",{"applications-strip":b.value.id==="strip"}]),"data-app-form":b.value.id,"data-applications-hub":""},[e("header",fv,[e("div",null,[G(Qe,{name:"grid"}),e("h2",null,a(w("应用工具","Apps & tools")),1)]),e("div",bv,[G(_a,{icon:"grid",onClick:Te[0]||(Te[0]=ie=>Se(!1)),"data-all-apps":""},{default:pe(()=>[ue(a(w("查看全部","All")),1)]),_:1}),G(za,{label:w("应用与工具更多操作","More app and tool actions"),items:[{id:"favorites",label:w("编辑快捷入口","Edit shortcuts")}],onSelect:Te[1]||(Te[1]=ie=>Se(!0))},null,8,["label","items"])])]),ge.value.length?(i(),d("div",{key:1,class:"applications-favorites",style:pt({gridTemplateColumns:"repeat("+m.value+", minmax(0,1fr))"}),"data-app-columns":m.value,"data-app-capacity":f.value},[(i(!0),d(V,null,oe(ge.value.slice(0,f.value),ie=>{var Ye,je,vt;return i(),d("button",{key:ie.id,onClick:bn=>St(ie),title:w(ie.zh,ie.en)+(o(n)(ie)==="available"?"":" · "+Fe(ie)),"data-favorite-app":ie.id,"data-availability":o(n)(ie),"aria-busy":$e.value==="home"&&((Ye=j.value)==null?void 0:Ye.id)===ie.id&&re.value==="loading"},[e("span",{class:_e(["application-icon",ie.tone])},[G(Cs,{app:ie},null,8,["app"]),$e.value==="home"&&((je=j.value)==null?void 0:je.id)===ie.id&&re.value==="loading"?(i(),d("i",kv)):T("",!0),ie.tool==="firmware"&&((vt=o(xe).checkUpdate)!=null&&vt.needUpdate)?(i(),d("i",{key:1,class:"launcher-update-dot","aria-label":w("有可用更新","Update available")},null,8,wv)):T("",!0)],2),e("span",null,[e("strong",null,a(w(ie.zh,ie.en)),1),o(n)(ie)!=="available"?(i(),d("small",$v,a(Fe(ie)),1)):T("",!0)])],8,yv)}),128))],12,_v)):(i(),d("div",gv,[G(Qe,{name:"grid"}),e("span",null,a(w("把常用应用放在这里","Keep your favorite apps here")),1),e("button",{onClick:Te[2]||(Te[2]=ie=>Se(!0))},a(w("选择应用","Choose apps")),1)])),$e.value==="home"&&j.value&&ge.value.some(ie=>{var Ye;return ie.id===((Ye=j.value)==null?void 0:Ye.id)})&&re.value!=="idle"?(i(),d(V,{key:2},[re.value==="loading"?(i(),d("span",Cv,a(w("正在打开:","Opening: ")+w(j.value.zh,j.value.en)),1)):(i(),d("div",Sv,[e("span",null,a(w(j.value.zh,j.value.en))+" · "+a(et.value),1),e("div",null,[e("button",{onClick:he,"data-home-entry-retry":""},a(w("重试","Retry")),1),j.value.path?(i(),d("button",{key:0,onClick:H,"data-home-entry-config":""},a(w("打开配置","Open settings")),1)):T("",!0),e("button",{onClick:it,"aria-label":w("关闭提示","Dismiss"),"data-home-entry-dismiss":""},"×",8,xv)])]))],64)):T("",!0),s.fallbackEntries.length?(i(),d("div",Pv,[e("span",null,a(w("快捷操作","Quick actions")),1),(i(!0),d(V,null,oe(s.fallbackEntries,ie=>(i(),d("button",{key:ie.path,onClick:Ye=>dn(ie.path),"data-home-entry":ie.path},[G(Qe,{name:ie.glyph},null,8,["name"]),ue(a(w(ie.zh,ie.en)),1),G(Qe,{name:"arrow"})],8,Tv))),128))])):T("",!0)],10,mv)),C.value?(i(),Y(Fo,{key:2,to:".canvas-home"},[e("div",{class:"applications-backdrop",onClick:Ue}),e("section",{class:_e(["applications-browser launchpad-browser",{"launchpad-editor":y.value,"launchpad-form":U.value}]),role:"dialog","aria-modal":"true","aria-label":U.value?w("链接设置","Link settings"):y.value?w("编辑快捷入口","Edit shortcuts"):w("全部应用与工具","All apps and tools"),"data-applications-browser":"","data-shortcut-history":D.value.length},[e("header",null,[e("div",null,[e("span",null,a(U.value?"YOUR SPACE":y.value?w("首页常用入口","YOUR FAVORITES"):"APPS & TOOLS"),1),e("h2",null,a(U.value?q.value?w("编辑链接","Edit link"):w("添加链接","Add a link"):y.value?w("留下常用的,刚刚好","A place for your favorites"):w("你的应用与工具","Your apps & tools")),1)]),e("button",{class:"applications-close",onClick:Te[4]||(Te[4]=ie=>U.value?ct():Ue()),"aria-label":U.value?w("返回全部入口","Return to all entries"):w("关闭应用面板","Close apps")},a(U.value?"←":"×"),9,Ev)]),e("div",{class:"applications-browser-body",inert:o(c)()},[U.value?(i(),Y(k2,{key:0,initial:q.value,entries:o(O),onCancel:ct,onSaved:Tt},null,8,["initial","entries"])):(i(),d(V,{key:1},[y.value?(i(),d(V,{key:0},[G(o2,{ids:_.value,columns:Q.value,limit:24,onRemove:_t,onReorder:Pt},null,8,["ids","columns"]),e("div",Dv,[e("button",{onClick:Ot,disabled:!D.value.length,"data-shortcut-undo":""},"↶ "+a(w("撤销","Undo")),9,Lv),e("button",{onClick:Te[5]||(Te[5]=ie=>Pt(o(f1))),"data-shortcut-restore":""},a(w("恢复默认八项","Restore eight defaults")),1)]),e("h3",Av,a(w("添加快捷入口","Add shortcuts")),1)],64)):T("",!0),e("label",Nv,[G(Qe,{name:"grid"}),W(e("input",{"onUpdate:modelValue":Te[6]||(Te[6]=ie=>P.value=ie),placeholder:w("搜索应用或系统工具","Search apps or system tools"),"aria-label":w("搜索应用或系统工具","Search apps or system tools")},null,8,Ov),[[Oe,P.value]])]),e("div",zv,[e("div",{class:"browser-category-tabs",role:"group","aria-label":w("入口分类","Shortcut categories")},[(i(),d(V,null,oe(A,ie=>e("button",{key:ie.id,"aria-pressed":S.value===ie.id,"data-category":ie.id,onClick:Ye=>S.value=ie.id},a(w(ie.zh,ie.en)),9,Rv)),64))],8,qv),y.value?T("",!0):(i(),d("div",Vv,[e("button",{onClick:Te[7]||(Te[7]=ie=>kt()),disabled:!o(ce).editable(),"data-add-link":""},"+ "+a(w("添加链接","Add link")),9,Bv),Z.value?(i(),d("button",{key:0,"aria-pressed":N.value,onClick:Te[8]||(Te[8]=ie=>N.value=!N.value),"data-manage-links":""},a(N.value?w("完成","Done"):w("管理链接","Manage links")),9,Uv)):T("",!0)]))]),ve.value!=="ready"?(i(),d("div",Fv,[e("span",null,a(ze.value),1),["error","permission","timeout"].includes(ve.value)?(i(),d("button",{key:0,onClick:Te[9]||(Te[9]=(...ie)=>o(ce).retry&&o(ce).retry(...ie))},a(w("重试","Retry")),1)):T("",!0)])):T("",!0),j.value&&re.value!=="idle"?(i(),d("div",{key:2,class:"applications-state launchpad-status",role:"status","data-entry-state":"","aria-busy":re.value==="loading"},[e("span",null,a(re.value==="loading"?w("正在打开:","Opening: ")+w(j.value.zh,j.value.en):w(j.value.zh,j.value.en)+" · "+et.value),1),re.value!=="loading"?(i(),d(V,{key:0},[e("button",{onClick:he},a(w("重试","Retry")),1),j.value.path?(i(),d("button",{key:0,onClick:H,"data-entry-config":""},a(w("打开配置","Open settings")),1)):T("",!0)],64)):T("",!0)],8,Hv)):T("",!0),e("div",Gv,[e("span",null,[ue(a(y.value?w("可添加的入口","Available shortcuts"):w("所有入口","Your library"))+" ",1),e("strong",jv,a(Ee.value.total),1)])]),dt.value.length?y.value?(i(),d("div",Kv,[(i(!0),d(V,null,oe(dt.value,ie=>(i(),d("div",{key:ie.id},[e("span",{class:_e(["application-icon",ie.tone])},[G(Cs,{app:ie},null,8,["app"])],2),e("div",null,[e("strong",null,a(w(ie.zh,ie.en)),1),e("small",null,a(o(n)(ie)!=="available"?Fe(ie):w(ie.detail,ie.detailEn)),1)]),e("button",{onClick:Ye=>_t(ie.id),disabled:!_.value.includes(ie.id)&&(_.value.length>=24||o(n)(ie)!=="available"),"aria-pressed":_.value.includes(ie.id),"aria-label":w("选择","Select ")+w(ie.zh,ie.en),"data-select-app":ie.id},a(_.value.includes(ie.id)?"✓":"+"),9,Zv)]))),128))])):(i(),d("div",Yv,[(i(!0),d(V,null,oe(dt.value,ie=>(i(),d("div",{key:ie.id,class:"launchpad-tile"},[e("button",{class:"launchpad-open",onClick:Ye=>St(ie),title:w(ie.zh,ie.en)+(o(n)(ie)==="available"?"":" · "+Fe(ie)),"aria-label":(o(n)(ie)==="available"?w("打开","Open "):w("查看原因:","View reason: "))+w(ie.zh,ie.en),"data-open-app":ie.id,"data-unavailable-shortcut":o(n)(ie)!=="available"?ie.id:void 0,"data-availability":o(n)(ie),"data-browser-tool":ie.kind==="tool"?ie.id:void 0},[e("span",{class:_e(["application-icon",ie.tone])},[G(Cs,{app:ie},null,8,["app"]),o(l).favorites.includes(ie.id)?(i(),d("i",{key:0,class:"launchpad-pin","aria-label":w("已固定到首页","Pinned to home")},null,8,Xv)):T("",!0)],2),e("strong",null,a(w(ie.zh,ie.en)),1),o(n)(ie)!=="available"?(i(),d("small",e3,a(Fe(ie)),1)):T("",!0)],8,Qv),N.value&&ie.kind==="link"?(i(),d("button",{key:0,class:"launchpad-link-edit",onClick:Ye=>kt(ie),"data-edit-link":ie.id,"aria-label":w("编辑链接:","Edit link: ")+w(ie.zh,ie.en)},a(w("编辑","Edit")),9,t3)):T("",!0)]))),128))])):(i(),d("div",Wv,[ve.value==="ready"||S.value==="tools"||S.value==="links"?(i(),d("span",Jv,a(S.value==="apps"&&ve.value==="ready"&&!o(ce).state.apps.length?w("没有已安装的扩展应用,可前往软件中心。","No additional apps installed. Explore the software center."):w("没有匹配的入口,试试其他关键词。","No matching entries. Try another search.")),1)):T("",!0)])),Ee.value.pages>1?(i(),d("nav",{key:6,class:"launchpad-pagination","aria-label":w("入口分页","Library pages")},[e("button",{disabled:Ee.value.current===1,onClick:Te[10]||(Te[10]=ie=>tt(Ee.value.current-1)),"data-library-prev":""},a(w("上一页","Previous")),9,a3),e("span",s3,a(Ee.value.current)+" / "+a(Ee.value.pages),1),e("button",{disabled:Ee.value.current===Ee.value.pages,onClick:Te[11]||(Te[11]=ie=>tt(Ee.value.current+1)),"data-library-next":""},a(w("下一页","Next")),9,o3)],8,n3)):T("",!0),y.value&&_.value.length>=24?(i(),d("p",l3,a(w("已保存24个,请先移除一个再添加。","24 selected. Remove a shortcut to add another.")),1)):T("",!0),!y.value&&!s.collapsed&&s.fallbackEntries.length?(i(),d("div",i3,[e("h3",null,a(w("快捷操作","Quick actions")),1),(i(!0),d(V,null,oe(s.fallbackEntries,ie=>(i(),d("button",{key:ie.path,onClick:Ye=>dn(ie.path),"data-browser-quick":ie.path},[G(Qe,{name:ie.glyph},null,8,["name"]),ue(a(w(ie.zh,ie.en)),1),G(Qe,{name:"arrow"})],8,r3))),128))])):T("",!0),F.value?(i(),d("p",c3,a(F.value),1)):T("",!0)],64))],8,Iv),U.value?T("",!0):(i(),d("footer",d3,[y.value?(i(),d(V,{key:0},[e("button",{onClick:Ue},a(w("取消","Cancel")),1),e("button",{class:"applications-save",disabled:o(c)(),onClick:Et},a(w("保存到首页","Save to home"))+" · "+a(_.value.length)+"/24",9,u3)],64)):(i(),d(V,{key:1},[e("button",{onClick:ke,disabled:!o(ce).editable(),"data-manage-favorites":""},a(w("编辑快捷入口","Edit shortcuts")),9,v3),e("button",{class:"software-center",onClick:Te[12]||(Te[12]=ie=>dn("/cgi-bin/luci/admin/store/pages/store")),"data-browser-software-center":""},[ue(a(w("软件中心","Software center")),1),G(Qe,{name:"arrow"})])],64))]))],10,Mv)])):T("",!0),de.value?(i(),Y(hv,{key:3,app:de.value,onClose:Te[13]||(Te[13]=ie=>de.value=null)},null,8,["app"])):T("",!0),K.value?(i(),Y(na,{key:4,title:w("入口暂不可用","Shortcut unavailable"),onClose:Te[14]||(Te[14]=ie=>K.value=null)},{default:pe(()=>[e("div",p3,[e("p",null,a(w(K.value.zh,K.value.en))+" · "+a(Fe(K.value)),1),e("p",null,a(w("入口保留在原位置,你可以在编辑快捷入口中移除。","The shortcut stays in place. You can remove it in Edit shortcuts.")),1)])]),_:1},8,["title"])):T("",!0)],64))}}),Ti=le(h3,[["__scopeId","data-v-3519060e"]]);function m3(s,t=""){if(t)return"unavailable";if(!s)return"loading";const n=s.networkInfo;return["netSuccess","dnsFailed","softSourceFailed","netFailed","netDetecting"].includes(n||"")?n:"unknown"}const f3={netSuccess:["网络连接正常","Connection normal"],dnsFailed:["DNS错误","DNS error"],softSourceFailed:["软件源错误","Software source error"],netFailed:["未联网","Not connected"],netDetecting:["检测中…","Checking…"],unknown:["连接状态待确认","Connection unconfirmed"],loading:["正在读取连接","Loading connection"],unavailable:["连接信息暂不可用","Connection unavailable"]},b3=s=>s==="pppoe"?["拨号上网","PPPoE"]:s==="static"?["静态网络","Static"]:s==="dhcp"?["DHCP","DHCP"]:[(s==null?void 0:s.toUpperCase())||"—",(s==null?void 0:s.toUpperCase())||"—"],g3=s=>s==="manual"?["手动配置","Manual"]:s==="auto"?["自动获取","Automatic"]:["来源待确认","Source unknown"];function Nl(s,t=0){const n=s==null?void 0:s.uptimeStamp;return typeof n=="number"&&Number.isFinite(n)&&n>=0?Math.floor(n)+Math.max(0,Math.floor(t)):null}function _3(s,t=!1){if(s===null)return"—";const n=Math.floor(s/86400),l=Math.floor(s%86400/3600),u=Math.floor(s%3600/60);return t?`${n?n+"d ":""}${l}h ${u}m`:`${n?n+"天 ":""}${l}小时 ${u}分`}function La(s){return s==="UP"?"up":s==="DOWN"?"down":"unknown"}function y3(s){return{total:s.length,up:s.filter(t=>La(t.linkState)==="up").length,down:s.filter(t=>La(t.linkState)==="down").length,unknown:s.filter(t=>La(t.linkState)==="unknown").length}}function k3(s){const t=x(!1),n=x(!1),l={};function u(v){(v==="ipv4"?t:n).value=!1;const h=l[v];h!==void 0&&clearTimeout(h),delete l[v]}function c(){u("ipv4"),u("ipv6")}function r(v){const h=v==="ipv4"?t:n;h.value?u(v):(h.value=!0,l[v]=setTimeout(()=>u(v),6e4))}function p(){document.hidden&&c()}return document.addEventListener("visibilitychange",p),We(s,c),lt(()=>{c(),document.removeEventListener("visibilitychange",p)}),{ipv4:t,ipv6:n,toggle:r,hideAll:c}}const w3={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},$3=["fill"],zs=X({__name:"DNS",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",w3,[e("path",{d:"M512 96c229.76 0 416 186.24 416 416S741.76 928 512 928 96 741.76 96 512 282.24 96 512 96z m-32 448l-127.317333 0.021333c0.896 20.48 2.624 40.405333 5.12 59.669334l1.984 14.293333 2.474666 15.253333c19.754667 112.896 65.728 197.738667 117.76 222.997334L480 544z m191.317333 0.021333L544 544v312.234667c50.858667-24.725333 95.936-106.368 116.373333-215.509334l1.365334-7.488 2.474666-15.232a701.013333 701.013333 0 0 0 7.104-73.984z m-382.698666 0H161.429333c11.648 129.066667 92.992 238.08 206.101334 289.066667-22.122667-34.282667-40.362667-76.416-53.76-124.032l-3.029334-11.093333-3.52-14.165334-3.242666-14.464a744.490667 744.490667 0 0 1-15.36-125.312z m573.952 0H735.36a752.661333 752.661333 0 0 1-12.672 112.128l-2.688 13.184-3.242667 14.464-3.52 14.186667c-13.653333 52.138667-32.96 98.197333-56.789333 135.104 113.109333-50.986667 194.453333-160 206.08-289.066667zM367.530667 190.890667l-2.858667 1.301333C253.013333 243.733333 172.970667 352 161.429333 480h127.189334c1.536-39.04 5.866667-76.693333 12.672-112.149333l2.688-13.184 3.242666-14.464 3.52-14.186667c13.653333-52.138667 32.96-98.197333 56.789334-135.104zM480 167.765333c-50.709333 24.618667-95.68 105.898667-116.202667 214.592l-1.536 8.405334-2.474666 15.232a701.034667 701.034667 0 0 0-7.104 74.005333H480V167.765333z m176.469333 23.146667l2.56 4.053333c20.906667 33.429333 38.229333 73.984 51.093334 119.552l3.136 11.52 3.52 14.165334 3.242666 14.464c8.362667 39.253333 13.632 81.408 15.36 125.333333h127.189334c-11.626667-129.088-92.970667-238.101333-206.101334-289.066667zM544 167.765333L544 480h127.317333a707.136 707.136 0 0 0-5.333333-61.376l-1.770667-12.629333-2.474666-15.232c-19.754667-112.874667-65.706667-197.717333-117.717334-222.997334z","p-id":"4600",fill:s.color},null,8,$3)]))}}),C3={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},S3=["fill"],x3=["fill"],P3=X({__name:"success",props:{color:{type:String,default:"#00a63e"}},setup(s){return(t,n)=>(i(),d("svg",C3,[e("path",{d:"M986.112 179.2c-12.288-12.288-31.744-12.288-44.032 0l-472.064 471.04-180.224-180.224c-12.288-12.288-31.744-12.288-44.032 0-12.288 12.288-12.288 31.744 0 44.032l202.752 201.728c6.144 6.144 12.288 9.216 22.528 9.216 9.216 0 15.36-3.072 22.528-9.216l494.592-492.544c10.24-12.288 10.24-31.744-2.048-44.032z",fill:s.color,"p-id":"11312"},null,8,S3),e("path",{d:"M1024 548.864c0-17.408-14.336-31.744-31.744-31.744-17.408 0-31.744 14.336-31.744 31.744C941.056 779.264 747.52 959.488 513.024 959.488 265.216 959.488 64.512 759.808 64.512 512c0-247.808 200.704-447.488 448.512-447.488 69.632 0 135.168 15.36 194.56 44.032h1.024c4.096 1.024 7.168 2.048 11.264 2.048 17.408 0 31.744-14.336 31.744-31.744 0-12.288-7.168-23.552-17.408-28.672C665.6 17.408 590.848 0 513.024 0 229.376 0 0 229.376 0 512s229.376 512 513.024 512c270.336 0 491.52-208.896 510.976-475.136z",fill:s.color,"p-id":"11313"},null,8,x3)]))}}),T3={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},M3=["fill"],E3=["fill"],I3=["fill"],Mi=X({__name:"topology",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",T3,[e("path",{d:"M298.894222 482.417778c-35.271111 0-65.649778 12.231111-90.624 36.636444-25.031111 24.462222-37.603556 54.158222-37.603555 88.746667v87.153778h60.359111V607.857778c0-18.318222 6.599111-33.848889 19.854222-46.762667a65.991111 65.991111 0 0 1 48.014222-19.456h426.382222c18.887111 0 34.759111 6.428444 48.014223 19.399111 13.312 13.027556 19.854222 28.444444 19.854222 46.819556v87.04h60.359111v-87.04c0-34.702222-12.572444-64.341333-37.546667-88.746667a125.098667 125.098667 0 0 0-90.680889-36.750222H298.894222z",fill:s.color,"p-id":"8894"},null,8,M3),e("path",{d:"M488.049778 334.734222h47.900444V512h-47.900444V334.734222z",fill:s.color,"p-id":"8895"},null,8,E3),e("path",{d:"M597.333333 142.222222v170.666667h-170.666666v-170.666667h170.666666z m-170.666666-56.888889a56.888889 56.888889 0 0 0-56.888889 56.888889v170.666667a56.888889 56.888889 0 0 0 56.888889 56.888889h170.666666a56.888889 56.888889 0 0 0 56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 0-56.888889-56.888889h-170.666666zM284.444444 711.111111H113.777778v170.666667h170.666666v-170.666667z m-170.666666-56.888889h170.666666a56.888889 56.888889 0 0 1 56.888889 56.888889v170.666667a56.888889 56.888889 0 0 1-56.888889 56.888889H113.777778a56.888889 56.888889 0 0 1-56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 1 56.888889-56.888889zM910.222222 711.111111v170.666667h-170.666666v-170.666667h170.666666z m-170.666666-56.888889a56.888889 56.888889 0 0 0-56.888889 56.888889v170.666667a56.888889 56.888889 0 0 0 56.888889 56.888889h170.666666a56.888889 56.888889 0 0 0 56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 0-56.888889-56.888889h-170.666666z",fill:s.color,"p-id":"8896"},null,8,I3)]))}}),D3={width:"32",height:"32",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},L3=["fill"],A3=X({__name:"openEyes",props:{color:{type:String,default:"#2c2c2c"}},setup(s){return(t,n)=>(i(),d("svg",D3,[e("path",{d:"M512 298.666667c-162.133333 0-285.866667 68.266667-375.466667 213.333333 89.6 145.066667 213.333333 213.333333 375.466667 213.333333s285.866667-68.266667 375.466667-213.333333c-89.6-145.066667-213.333333-213.333333-375.466667-213.333333z m0 469.333333c-183.466667 0-328.533333-85.333333-426.666667-256 98.133333-170.666667 243.2-256 426.666667-256s328.533333 85.333333 426.666667 256c-98.133333 170.666667-243.2 256-426.666667 256z m0-170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333s-38.4-85.333333-85.333333-85.333333-85.333333 38.4-85.333333 85.333333 38.4 85.333333 85.333333 85.333333z m0 42.666667c-72.533333 0-128-55.466667-128-128s55.466667-128 128-128 128 55.466667 128 128-55.466667 128-128 128z",fill:s.color,"p-id":"5225"},null,8,L3)]))}}),N3={width:"32",height:"32",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},O3=["fill"],z3=X({__name:"closeEyes",props:{color:{type:String,default:"#2c2c2c"}},setup(s){return(t,n)=>(i(),d("svg",N3,[e("path",{d:"M332.8 729.6l34.133333-34.133333c42.666667 12.8 93.866667 21.333333 145.066667 21.333333 162.133333 0 285.866667-68.266667 375.466667-213.333333-46.933333-72.533333-102.4-128-166.4-162.133334l29.866666-29.866666c72.533333 42.666667 132.266667 106.666667 183.466667 192-98.133333 170.666667-243.2 256-426.666667 256-59.733333 4.266667-119.466667-8.533333-174.933333-29.866667z m-115.2-64c-51.2-38.4-93.866667-93.866667-132.266667-157.866667 98.133333-170.666667 243.2-256 426.666667-256 38.4 0 76.8 4.266667 110.933333 12.8l-34.133333 34.133334c-25.6-4.266667-46.933333-4.266667-76.8-4.266667-162.133333 0-285.866667 68.266667-375.466667 213.333333 34.133333 51.2 72.533333 93.866667 115.2 128l-34.133333 29.866667z m230.4-46.933333l29.866667-29.866667c8.533333 4.266667 21.333333 4.266667 29.866666 4.266667 46.933333 0 85.333333-38.4 85.333334-85.333334 0-12.8 0-21.333333-4.266667-29.866666l29.866667-29.866667c12.8 17.066667 17.066667 38.4 17.066666 64 0 72.533333-55.466667 128-128 128-17.066667-4.266667-38.4-12.8-59.733333-21.333333zM384 499.2c4.266667-68.266667 55.466667-119.466667 123.733333-123.733333 0 4.266667-123.733333 123.733333-123.733333 123.733333zM733.866667 213.333333l29.866666 29.866667-512 512-34.133333-29.866667L733.866667 213.333333z",fill:s.color,"p-id":"5534"},null,8,O3)]))}}),q3=["data-network-action"],R3=X({__name:"NetworkBusinessAction",props:{kind:{}},emits:["close"],setup(s,{emit:t}){const n=t,l=window.vue_lang==="en",u=(r,p)=>l?p:r,c=()=>n("close");return(r,p)=>(i(),Y(na,{title:s.kind==="dns"?u("DNS配置","DNS settings"):u("软件源配置","Software source settings"),onClose:p[0]||(p[0]=v=>r.$emit("close"))},{default:pe(()=>[e("div",{class:"network-business-action","data-network-action":s.kind},[s.kind==="dns"?(i(),Y(xi,{key:0,Close:c})):(i(),Y(Pi,{key:1,Close:c}))],8,q3)]),_:1},8,["title"]))}}),V3=le(R3,[["__scopeId","data-v-03262619"]]),B3=["data-connection-state"],U3={class:"network-header-actions widget-action-group"},F3={class:"connection-status"},H3={class:"connection-status-text"},G3={key:0},j3=["data-connection-remedy"],W3=["title","aria-label"],J3={key:0,class:"network-snapshot-note"},K3={key:1,class:"connection-addresses"},Z3=["data-address-value","title"],Y3=["data-reveal","aria-pressed","aria-label","title","onClick"],Q3={key:1,class:"connection-address-meta"},X3={class:"connection-dns-group"},e4={class:"connection-dns"},t4={class:"connection-address-meta"},n4={key:2},a4=["title"],s4={"data-connection-uptime":""},o4={class:"connection-full-details","data-connection-full-details":""},l4={class:"network-detail-status"},i4={key:0,class:"network-snapshot-note"},r4=["data-detail-address"],c4=["data-detail-reveal","aria-pressed","aria-label","onClick"],d4={key:0},u4={key:1},v4=["disabled"],p4=["disabled"],h4={key:0},m4={class:"network-privacy-note"},f4={class:"network-detail-actions"},b4=X({__name:"NetworkConnectionCard",props:{data:{},error:{},summary:{type:Boolean}},emits:["navigate","retry"],setup(s,{emit:t}){const n=s,l=t,u=window.vue_lang==="en",c=(ve,O)=>u?O:ve,r=ve=>ve[u?1:0],p=R(()=>m3(n.data,n.error)),v=R(()=>r(f3[p.value])),h=R(()=>{var ve;return r(b3((ve=n.data)==null?void 0:ve.proto))}),g=R(()=>{var ve;return r(g3((ve=n.data)==null?void 0:ve.dnsProto))}),b=k3(R(()=>{var ve,O;return JSON.stringify([(ve=n.data)==null?void 0:ve.ipv4addr,(O=n.data)==null?void 0:O.ipv6addr,n.summary])})),m=["ipv4","ipv6"],f=ve=>(ve==="ipv4"?b.ipv4:b.ipv6).value,k=ve=>{var O,de;return ve==="ipv4"?(O=n.data)==null?void 0:O.ipv4addr:(de=n.data)==null?void 0:de.ipv6addr},$=ve=>(f(ve)?c("隐藏","Hide "):c("显示60秒:","Show for 60s: "))+ve.toUpperCase(),w=R(()=>{var ve;return(((ve=n.data)==null?void 0:ve.dnsList)||[]).filter(O=>typeof O=="string"&&O.length)}),S=x(0),C=R(()=>w.value.slice(S.value*20,S.value*20+20)),y=x(!1),P=x(null),_=R(()=>p.value==="dnsFailed"?"dns":p.value==="softSourceFailed"?"source":null);function D(){y.value=!1,b.hideAll(),S.value=0}function E(ve){D(),l("navigate",ve)}const A=os();function U(ve){var O;ve&&(D(),A.updateNetworkStatus(Ne(ye({},n.data),{dnsList:[...((O=n.data)==null?void 0:O.dnsList)||[]]})),P.value=ve)}let q=Date.now(),z;const N=x(Date.now()),F=R(()=>Nl(n.data,n.error?0:(N.value-q)/1e3)),Z=R(()=>_3(F.value,u)+(F.value===null?"":u?` ${F.value%60}s`:`${F.value%60}秒`));function Q(){z!==void 0&&clearInterval(z),z=void 0,!document.hidden&&Nl(n.data)!==null&&!n.error&&(z=setInterval(()=>N.value=Date.now(),1e3))}function ce(){document.hidden&&(D(),P.value=null),N.value=Date.now(),Q()}return We(()=>n.data,()=>{q=Date.now(),N.value=q,Q()}),We(()=>n.error,Q),We(()=>n.summary,()=>{D(),P.value=null}),We(()=>w.value.length,()=>S.value=0),nt(()=>{Q(),document.addEventListener("visibilitychange",ce)}),lt(()=>{z!==void 0&&clearInterval(z),document.removeEventListener("visibilitychange",ce)}),(ve,O)=>{var de;return i(),d("section",{class:_e(["network-business-card connection-business",{summary:s.summary}]),"data-connection-card":"","data-connection-state":p.value},[e("header",null,[e("h2",null,[s.summary?(i(),Y(Qe,{key:0,name:"network"})):(i(),Y(zs,{key:1,color:"currentColor"})),ue(a(s.summary?c("网络连接","Connection"):c("网络连接","Connection & IP")),1)]),e("div",U3,[G(_a,{icon:"devices","data-connection-wizard":"",onClick:O[0]||(O[0]=K=>ve.$emit("navigate","/network"))},{icon:pe(()=>[G(Mi,{color:"currentColor"})]),default:pe(()=>[ue(a(c("网络向导","Network setup")),1)]),_:1}),G(za,{label:c("网络连接更多操作","More connection actions"),items:[{id:"connection-details",label:c("连接详情","Connection details")}],onSelect:O[1]||(O[1]=K=>y.value=!0)},null,8,["label","items"])])]),e("div",F3,[e("span",{class:_e(["connection-status-mark",p.value])},[!s.summary&&p.value==="netSuccess"?(i(),Y(P3,{key:0,color:"currentColor"})):(i(),Y(Qe,{key:1,name:p.value==="netSuccess"?"check":"network"},null,8,["name"]))],2),e("div",H3,[e("strong",null,a(v.value),1),s.summary?(i(),d("small",G3,a(((de=s.data)==null?void 0:de.defaultInterface)||"—")+" · "+a(h.value),1)):T("",!0)]),_.value?(i(),d("button",{key:0,class:"connection-remedy","data-connection-remedy":_.value,onClick:O[2]||(O[2]=K=>U(_.value))},a(_.value==="dns"?c("DNS配置","DNS settings"):c("软件源配置","Source settings")),9,j3)):s.error?(i(),d("button",{key:1,"data-connection-retry":"",onClick:O[3]||(O[3]=K=>ve.$emit("retry"))},a(c("重试","Retry")),1)):T("",!0),s.summary?T("",!0):(i(),d("span",{key:2,class:_e(["connection-uptime-badge",{normal:p.value==="netSuccess"}]),title:c("接口在线时长,不代表互联网持续可用","Interface uptime, not continuous Internet availability"),"aria-label":c("接口在线时长:","Interface uptime: ")+Z.value,"data-connection-uptime":""},a(Z.value),11,W3))]),s.error&&s.data?(i(),d("p",J3,a(c("上次快照 · 当前连接状态待确认","Previous snapshot · Current state unconfirmed")),1)):T("",!0),s.summary?T("",!0):(i(),d("dl",K3,[(i(),d(V,null,oe(m,K=>{var xe;return e("div",{key:K,class:"connection-address-group"},[e("dt",null,a(K==="ipv4"?"IPv4"+((xe=s.data)!=null&&xe.defaultInterface?"("+s.data.defaultInterface+")":""):"IPv6"),1),e("dd",null,[e("span",{"data-address-value":K,title:f(K)?k(K):void 0},a(k(K)?f(K)?k(K):"••••••••••":c("暂无地址","No address")),9,Z3),k(K)?(i(),d("button",{key:0,class:"connection-reveal","data-reveal":K,"aria-pressed":f(K),"aria-label":$(K),title:$(K),onClick:j=>o(b).toggle(K)},[f(K)?(i(),Y(z3,{key:0,color:"currentColor"})):(i(),Y(A3,{key:1,color:"currentColor"}))],8,Y3)):T("",!0),K==="ipv4"?(i(),d("span",Q3,a(h.value),1)):T("",!0)])])}),64)),e("div",X3,[O[11]||(O[11]=e("dt",null,"DNS",-1)),e("dd",e4,[e("span",null,a(w.value.slice(0,2).join(" · ")||"—"),1),w.value.length>2?(i(),d("button",{key:0,onClick:O[4]||(O[4]=K=>y.value=!0)},"+"+a(w.value.length-2),1)):T("",!0),e("span",t4,a(g.value),1)])])])),s.summary?(i(),d("footer",n4,[e("span",{title:c("接口在线时长,不代表互联网持续可用","Interface uptime, not continuous Internet availability")},[e("small",null,a(c("接口在线","Interface uptime")),1),e("b",s4,a(Z.value),1)],8,a4)])):T("",!0),y.value?(i(),Y(na,{key:3,title:c("网络连接和IP地址","Connection & IP addresses"),onClose:D},{default:pe(()=>{var K,xe;return[e("div",o4,[e("p",l4,a(v.value),1),s.error?(i(),d("p",i4,a(c("读取失败;以下为上次信息(若有),不能证明当前连接正常。","Read failed; previous information, if any, does not establish current connectivity.")),1)):T("",!0),e("dl",null,[e("div",null,[e("dt",null,a(c("当前接口","Current interface")),1),e("dd",null,a(((K=s.data)==null?void 0:K.defaultInterface)||"—"),1)]),e("div",null,[e("dt",null,a(c("上网协议","Protocol")),1),e("dd",null,a(h.value),1)]),e("div",null,[e("dt",null,a(c("接口在线时长","Interface uptime")),1),e("dd",null,a(Z.value),1)]),(i(),d(V,null,oe(m,j=>e("div",{key:j},[e("dt",null,a(j==="ipv4"?"IPv4":"IPv6"),1),e("dd",null,[e("span",{"data-detail-address":j},a(k(j)?f(j)?k(j):"••••••••••":c("暂无地址","No address")),9,r4),k(j)?(i(),d("button",{key:0,"data-detail-reveal":j,"aria-pressed":f(j),"aria-label":$(j),onClick:re=>o(b).toggle(j)},a(f(j)?c("隐藏","Hide"):c("显示60秒","Show for 60s")),9,c4)):T("",!0)])])),64)),e("div",null,[e("dt",null,a(c("DNS来源","DNS source")),1),e("dd",null,a(g.value),1)]),e("div",null,[e("dt",null,a(c("DNS地址","DNS addresses")),1),e("dd",null,[w.value.length?T("",!0):(i(),d("span",d4,"—")),(i(!0),d(V,null,oe(C.value,(j,re)=>(i(),d("span",{key:re,"data-detail-dns":""},a(j),1))),128)),w.value.length>20?(i(),d("nav",u4,[e("button",{disabled:S.value===0,onClick:O[5]||(O[5]=j=>S.value--)},a(c("上一页","Previous")),9,v4),e("span",null,a(S.value+1)+" / "+a(Math.ceil(w.value.length/20)),1),e("button",{disabled:(S.value+1)*20>=w.value.length,onClick:O[6]||(O[6]=j=>S.value++)},a(c("下一页","Next")),9,p4)])):T("",!0)])]),(xe=s.data)!=null&&xe.gateway?(i(),d("div",h4,[e("dt",null,a(c("本机出口网关","Router outbound gateway")),1),e("dd",null,[ue(a(s.data.gateway),1),e("small",null,a(c("详情补充;不是局域网设备上网路线设置","Additional detail; not the LAN device Internet Path setting")),1)])])):T("",!0)]),e("p",m4,a(c("IPv4/IPv6独立显示60秒;关闭详情或切换形态后恢复隐藏。","IPv4 / IPv6 reveal independently for 60s. Closing details or changing form hides them.")),1),e("div",f4,[e("button",{onClick:O[7]||(O[7]=j=>E("/devicemanagement"))},a(c("设备管理","Device management")),1),_.value?(i(),d("button",{key:0,onClick:O[8]||(O[8]=j=>U(_.value))},a(_.value==="dns"?c("DNS配置","DNS settings"):c("软件源配置","Software source settings")),1)):T("",!0),s.error?(i(),d("button",{key:1,onClick:O[9]||(O[9]=j=>ve.$emit("retry"))},a(c("重试","Retry")),1)):T("",!0)])])]}),_:1},8,["title"])):T("",!0),P.value?(i(),Y(V3,{key:4,kind:P.value,onClose:O[10]||(O[10]=K=>P.value=null)},null,8,["kind"])):T("",!0)],10,B3)}}}),g4=le(b4,[["__scopeId","data-v-d478a1e1"]]),_4=["data-interface-form"],y4={class:"network-header-actions widget-action-group"},k4={key:0,class:"network-widget-message"},w4={key:0},$4={key:0,class:"interface-totals"},C4={key:1,class:"network-widget-empty"},S4={key:2,class:"interface-list"},x4=["data-port","onClick"],P4={class:"interface-name"},T4={class:"interface-link-state"},M4={key:0},E4={key:1},I4={class:"interface-full-details","data-interface-details":""},D4={key:0,class:"network-snapshot-note"},L4={key:0},A4={key:1},N4={class:"interface-detail-list"},O4=["data-detail-port","onClick"],z4={key:2},q4=["disabled"],R4=["disabled"],V4={class:"network-detail-actions"},B4=X({__name:"NetworkInterfaceCard",props:{data:{},error:{},summary:{type:Boolean},legacySummary:{type:Boolean}},emits:["navigate","retry"],setup(s){const t=s,n=window.vue_lang==="en",l=(S,C)=>n?C:S,u=R(()=>{var S;return((S=t.data)==null?void 0:S.ports)||[]}),c=R(()=>y3(u.value)),r=x(!1),p=x(""),v=x(0),h=R(()=>u.value.find(S=>S.name===p.value)),g=R(()=>u.value.slice(v.value*20,v.value*20+20)),b=S=>La(S)==="up"?l("已连接","Connected"):La(S)==="down"?l("未连接","Disconnected"):l("状态待确认","State unknown"),m=[["name","名称","Name"],["interfaceNames","关联逻辑接口","Logical interfaces"],["linkState","链路状态","Link state"],["linkSpeed","协商速率","Negotiated speed"],["macAddress","MAC","MAC"],["duplex","双工","Duplex"],["rx_packets","接收包数","Received packets"],["tx_packets","发送包数","Sent packets"]];function f(S){const C=h.value;return C?S==="linkState"?b(C.linkState):S==="interfaceNames"?(C.interfaceNames||[]).join(" / ")||"—":S==="duplex"?C.duplex==="full"?l("全双工","Full duplex"):C.duplex==="half"?l("半双工","Half duplex"):"—":C[S]||"—":"—"}function k(S){p.value=S,r.value=!0}function $(){p.value="",v.value=0,r.value=!0}function w(){r.value=!1,p.value="",v.value=0}return We(()=>t.summary,w),We(h,S=>{p.value&&!S&&(p.value="")}),We(()=>u.value.length,()=>{v.value=Math.min(v.value,Math.max(0,Math.ceil(u.value.length/20)-1)),p.value&&!h.value&&(p.value="")}),(S,C)=>(i(),d("section",{class:_e(["network-business-card interface-business",{summary:s.summary,"compact-ports":s.summary&&!s.legacySummary}]),"data-interface-form":s.summary?s.legacySummary?"legacy-summary":"compact-ports":"standard","data-network-interface":""},[e("header",null,[e("h2",null,[G(Qe,{name:"network"}),ue(a(l("网络接口","Network interfaces")),1)]),e("div",y4,[G(_a,{icon:"tune","data-interface-config":"",onClick:C[0]||(C[0]=y=>S.$emit("navigate","/interfaceconfig"))},{default:pe(()=>[ue(a(l("接口配置","Configure")),1)]),_:1}),G(za,{label:l("网络接口更多操作","More interface actions"),items:[{id:"interfaces-all",label:l("查看全部","View all")+(u.value.length?" · "+u.value.length:"")}],onSelect:$},null,8,["label","items"])])]),s.error||!s.data?(i(),d("div",k4,[e("strong",null,a(s.error?l("接口信息暂不可用","Interface information unavailable"):l("正在读取接口","Loading interfaces")),1),s.error&&s.data?(i(),d("small",w4,a(l("上次快照,当前状态待确认","Previous snapshot; current state unconfirmed")),1)):T("",!0),s.error?(i(),d("button",{key:1,onClick:C[1]||(C[1]=y=>S.$emit("retry"))},a(l("重试","Retry")),1)):T("",!0)])):(i(),d(V,{key:1},[!s.summary||s.legacySummary?(i(),d("div",$4,[e("strong",null,[ue(a(c.value.up),1),e("small",null,"/ "+a(c.value.total),1)]),e("span",null,a(l("端口已连接","ports connected")),1),e("small",null,a(l("链路状态","Link state")),1)])):T("",!0),u.value.length?!s.summary||!s.legacySummary?(i(),d("div",S4,[(i(!0),d(V,null,oe(u.value.slice(0,2),y=>(i(),d("button",{key:y.name,"data-port":y.name,onClick:P=>k(y.name)},[e("span",{class:_e(["interface-link-mark",o(La)(y.linkState)])},[G(Qe,{name:"network"})],2),e("span",P4,[e("strong",null,a(y.name),1),e("small",null,a((y.interfaceNames||[]).join(" / ")||l("未关联逻辑接口","No logical interface")),1)]),e("span",T4,[e("strong",null,a(b(y.linkState)),1),y.linkSpeed?(i(),d("small",M4,a(y.linkSpeed),1)):(i(),d("small",E4,a(l("速率待确认","Speed unknown")),1))]),G(Qe,{name:"arrow"})],8,x4))),128))])):T("",!0):(i(),d("p",C4,a(l("暂未读取到网络接口","No interfaces returned")),1))],64)),e("footer",null,[e("small",null,a(l("端口连接不代表互联网可用","Link state does not establish Internet access")),1)]),r.value?(i(),Y(na,{key:2,title:p.value?l("端口详情","Port details")+" · "+p.value:l("网络接口状态","Network interfaces"),onClose:w},{default:pe(()=>[e("div",I4,[s.error&&s.data?(i(),d("p",D4,a(l("上次快照 · 当前接口状态待确认","Previous snapshot · Current link state unconfirmed")),1)):T("",!0),h.value?(i(),d(V,{key:1},[e("button",{class:"network-back",onClick:C[2]||(C[2]=y=>p.value="")},"← "+a(l("全部接口","All interfaces")),1),e("dl",null,[(i(),d(V,null,oe(m,y=>e("div",{key:y[0]},[e("dt",null,a(l(y[1],y[2])),1),e("dd",null,a(f(y[0])),1)])),64))])],64)):(i(),d(V,{key:2},[s.data?u.value.length?T("",!0):(i(),d("p",A4,a(l("暂未读取到网络接口","No interfaces returned")),1)):(i(),d("p",L4,a(s.error?l("接口信息暂不可用","Interface information unavailable"):l("正在读取接口","Loading interfaces")),1)),e("div",N4,[(i(!0),d(V,null,oe(g.value,y=>(i(),d("button",{key:y.name,"data-detail-port":y.name,onClick:P=>p.value=y.name},[e("strong",null,a(y.name),1),e("span",null,a((y.interfaceNames||[]).join(" / ")||"—"),1),e("small",null,a(b(y.linkState))+" · "+a(y.linkSpeed||l("速率待确认","Speed unknown")),1),G(Qe,{name:"arrow"})],8,O4))),128))]),u.value.length>20?(i(),d("nav",z4,[e("button",{disabled:v.value===0,onClick:C[3]||(C[3]=y=>v.value--)},a(l("上一页","Previous")),9,q4),e("span",null,a(v.value+1)+" / "+a(Math.ceil(u.value.length/20)),1),e("button",{disabled:(v.value+1)*20>=u.value.length,onClick:C[4]||(C[4]=y=>v.value++)},a(l("下一页","Next")),9,R4)])):T("",!0)],64)),e("div",V4,[e("button",{onClick:C[5]||(C[5]=y=>{w(),S.$emit("navigate","/interfaceconfig")})},a(l("配置网络接口","Configure network interfaces")),1),s.error?(i(),d("button",{key:0,onClick:C[6]||(C[6]=y=>S.$emit("retry"))},a(l("重试","Retry")),1)):T("",!0)])])]),_:1},8,["title"])):T("",!0)],10,_4))}}),U4=le(B4,[["__scopeId","data-v-d7f98cf8"]]),F4={class:"reusable-card",role:"group"},H4={class:"card-header"},G4={class:"left"},j4={class:"title"},W4={key:0,class:"settings-btn"},J4={class:"dropdown-menu"},K4={class:"card-body"},Z4={__name:"Card",props:{title:{type:String,required:!0},homeMenu:{type:Array,default:()=>[]},homeCustomMenu:{type:Boolean,default:!1},showSettings:{type:Boolean,default:!0},isSettingsMenuOpen:{type:Boolean,default:!1}},emits:["settings","update:isSettingsMenuOpen"],setup(s,{emit:t}){const n=qa();function l(h){const g=c.homeMenu[Number(h)];g!=null&&g.action?g.action():g!=null&&g.href&&window.location.assign(g.href)}const{$gettext:u}=Ae();nt(()=>document.addEventListener("click",p)),ga(()=>document.removeEventListener("click",p));const c=s,r=R({get:()=>c.isSettingsMenuOpen,set:h=>v("update:isSettingsMenuOpen",h)}),p=h=>{h.target.closest(".settings-wrapper")||(r.value=!1)},v=t;return(h,g)=>(i(),d("div",F4,[e("div",H4,[e("div",G4,[Ct(h.$slots,"icon",{},void 0,!0),e("div",j4,a(s.title),1)]),e("div",{class:_e(["settings-wrapper",{"widget-action-group":o(n)&&!s.homeCustomMenu}])},[s.showSettings?(i(),d("div",W4,[Ct(h.$slots,"settings",{},void 0,!0)])):T("",!0),o(n)&&!s.homeCustomMenu&&s.homeMenu.length?(i(),Y(za,{key:1,label:s.title+o(u)("更多操作"),items:s.homeMenu.map((b,m)=>({id:String(m),label:b.label})),onSelect:l},null,8,["label","items"])):T("",!0),o(n)?T("",!0):(i(),Y(fn,{key:2,name:"fade",persisted:""},{default:pe(()=>[W(e("div",J4,[Ct(h.$slots,"settings-menu",{},void 0,!0)],512),[[Bs,r.value]])]),_:3}))],2)]),e("div",K4,[Ct(h.$slots,"default",{},void 0,!0)])]))}},ya=le(Z4,[["__scopeId","data-v-5fc49e13"]]),Y4={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Q4=["fill"],X4=["fill"],Ol=X({__name:"disk1",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",Y4,[e("path",{d:"M554.688 682.624a42.688 42.688 0 0 0 0 85.376h0.448a42.688 42.688 0 1 0 0-85.376h-0.448zM767.488 682.624a42.688 42.688 0 0 0 0 85.376H768a42.688 42.688 0 1 0 0-85.376h-0.512z",fill:s.color,"p-id":"5230"},null,8,Q4),e("path",{d:"M465.28 96h93.44c59.456 0 106.88 0 144.96 4.48 39.36 4.48 72.128 14.08 100.992 35.584 28.8 21.44 47.424 50.112 63.104 86.464 15.232 35.2 28.8 80.64 45.952 137.6l52.48 174.848c1.28 4.48 2.752 9.28 3.584 14.336v0.32l0.192 1.216c0.64 5.12 0.64 10.048 0.64 14.72v3.392c0 72.704 0 130.304-5.632 175.68-5.824 46.592-18.112 84.736-45.952 115.84-4.992 5.568-10.304 10.88-15.936 15.872-31.104 27.84-69.184 40.128-115.84 45.952-45.312 5.696-102.912 5.696-175.616 5.696H412.352c-72.704 0-130.304 0-175.68-5.696-46.592-5.824-84.672-18.112-115.84-45.888a202.944 202.944 0 0 1-15.872-16c-27.84-31.04-40.128-69.12-45.952-115.84-5.696-45.312-5.696-102.912-5.696-175.616v-3.328c0-4.672 0-9.664 0.704-14.784v-0.32l0.192-1.216c0.832-5.056 2.24-9.856 3.584-14.272l52.48-174.912c17.088-56.96 30.72-102.4 45.952-137.6 15.68-36.352 34.304-65.024 63.104-86.4 28.8-21.504 61.632-31.104 100.992-35.712C358.4 96 405.76 96 465.28 96zM327.68 164.032c-33.152 3.84-53.632 11.072-70.144 23.36-16.512 12.288-29.376 29.824-42.56 60.48-13.568 31.424-26.176 73.28-43.968 132.544l-42.688 142.272h767.36l-42.688-142.272c-17.792-59.264-30.4-101.12-43.968-132.48-13.184-30.72-26.048-48.256-42.56-60.544-16.512-12.288-36.992-19.52-70.144-23.36C662.336 160 618.624 160 556.736 160H467.328c-61.952 0-105.6 0-139.648 4.032zM122.496 736.64c5.056 40.128 14.528 63.616 30.144 81.088 3.456 3.84 7.04 7.488 10.88 10.88 17.536 15.68 40.96 25.088 81.152 30.144 40.96 5.12 94.464 5.184 169.92 5.184h194.816c75.456 0 129.024 0 169.92-5.184 40.128-5.056 63.616-14.464 81.152-30.08 3.84-3.456 7.424-7.104 10.88-10.944 15.616-17.536 25.088-40.96 30.08-81.088 4.672-37.248 5.12-84.928 5.248-150.016H117.312c0.064 65.088 0.512 112.768 5.184 150.016z",fill:s.color,"p-id":"5231"},null,8,X4)]))}}),ep={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},tp=["fill"],np=X({__name:"folder",props:{color:{type:String,default:"#0a0a0a"}},setup(s){return(t,n)=>(i(),d("svg",ep,[e("path",{d:"M912 208H427.872l-50.368-94.176A63.936 63.936 0 0 0 321.056 80H112c-35.296 0-64 28.704-64 64v736c0 35.296 28.704 64 64 64h800c35.296 0 64-28.704 64-64v-608c0-35.296-28.704-64-64-64z m-800-64h209.056l68.448 128H912v97.984c-0.416 0-0.8-0.128-1.216-0.128H113.248c-0.416 0-0.8 0.128-1.248 0.128V144z m0 736v-96l1.248-350.144 798.752 1.216V784h0.064v96H112z",fill:s.color,"p-id":"5094"},null,8,tp)]))}}),ap={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},sp=["fill"],op=X({__name:"finance",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",ap,[e("path",{d:"M136.12 251.958a83.054 83.054 0 0 1-0.12-4.458c0-32.903 19.447-58.344 41.115-75.981 21.984-17.893 51.365-32.231 84.13-43.511C327.163 105.315 415.641 92 511.5 92c95.859 0 184.337 13.315 250.255 36.008 32.765 11.28 62.146 25.618 84.13 43.511 20.221 16.458 38.506 39.713 40.86 69.485l0.255 0.002v532.88c0 32.888-19.031 58.62-40.776 76.719-21.978 18.294-51.385 32.976-84.207 44.53C696.011 918.373 607.438 932 511.5 932c-95.938 0-184.511-13.627-250.517-36.865-32.822-11.554-62.229-26.236-84.207-44.53C155.031 832.506 136 806.774 136 773.886V251.96l0.12-0.002z m79.88-4.459v0.002c0 0.016-0.003 0.151 0.098 0.491 0.112 0.379 0.397 1.16 1.103 2.347 1.479 2.49 4.55 6.323 10.415 11.096 11.97 9.743 31.722 20.293 59.67 29.914C342.796 310.459 422.067 323 511.5 323c89.433 0 168.704-12.541 224.214-31.651 27.948-9.621 47.7-20.171 59.67-29.914 5.865-4.773 8.936-8.606 10.415-11.096 0.706-1.187 0.991-1.968 1.103-2.347 0.088-0.297 0.097-0.437 0.098-0.479v-0.014-0.012c-0.001-0.042-0.01-0.182-0.098-0.479-0.112-0.379-0.397-1.16-1.103-2.347-1.479-2.49-4.55-6.323-10.415-11.096-11.97-9.743-31.722-20.293-59.67-29.914C680.204 184.541 600.933 172 511.5 172c-89.433 0-168.704 12.541-224.214 31.651-27.948 9.621-47.7 20.171-59.67 29.914-5.865 4.773-8.936 8.606-10.415 11.096-0.706 1.187-0.991 1.968-1.103 2.347-0.101 0.34-0.098 0.475-0.098 0.491z m591 100.656c-13.955 7.052-29.194 13.311-45.245 18.837C695.837 389.685 607.359 403 511.5 403c-95.859 0-184.337-13.315-250.255-36.008-16.051-5.526-31.29-11.785-45.245-18.837v85.359c0.001 0.042 0.01 0.182 0.098 0.478 0.112 0.379 0.397 1.16 1.103 2.347 1.479 2.489 4.55 6.323 10.415 11.096 11.97 9.743 31.722 20.293 59.67 29.914C342.796 496.459 422.067 509 511.5 509c89.433 0 168.704-12.541 224.214-31.651 27.948-9.621 47.7-20.171 59.67-29.914 5.865-4.773 8.936-8.607 10.415-11.096 0.706-1.187 0.991-1.968 1.103-2.347 0.088-0.297 0.097-0.437 0.098-0.479v-85.358z m-45.245 204.837C695.837 575.685 607.359 589 511.5 589c-95.859 0-184.337-13.315-250.255-36.008-16.051-5.526-31.29-11.785-45.245-18.837v70.359c0.001 0.041 0.01 0.182 0.098 0.478 0.112 0.379 0.397 1.16 1.103 2.347 1.479 2.489 4.55 6.323 10.415 11.096 11.97 9.743 31.722 20.293 59.67 29.914C342.796 667.459 422.067 680 511.5 680c89.433 0 168.704-12.541 224.214-31.651 27.948-9.621 47.7-20.171 59.67-29.914 5.865-4.773 8.936-8.607 10.415-11.096 0.706-1.187 0.991-1.968 1.103-2.347 0.088-0.297 0.097-0.437 0.098-0.479v-70.358c-13.955 7.052-29.194 13.311-45.245 18.837zM807 705.155c-13.955 7.052-29.194 13.311-45.245 18.837C695.837 746.685 607.359 760 511.5 760c-95.859 0-184.337-13.315-250.255-36.008-16.051-5.526-31.29-11.785-45.245-18.837V773.894c0 0.181-0.003 1.283 1.399 3.695 1.555 2.675 4.69 6.646 10.556 11.529 11.976 9.968 31.701 20.738 59.594 30.557C342.97 839.186 422.146 852 511.5 852c89.354 0 168.53-12.814 223.951-32.325 27.893-9.819 47.618-20.589 59.594-30.557 5.866-4.883 9.001-8.854 10.556-11.529 1.402-2.412 1.399-3.514 1.399-3.695v-68.739z",fill:s.color,"p-id":"9960"},null,8,sp)]))}}),lp={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},ip=["fill"],Ei=X({__name:"memory",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",lp,[e("path",{d:"M827.84 886.4H187.9184375c-32.2659375 0-53.76-21.51375-53.76-53.784375V714.28625a53.889375 53.889375 0 0 1 53.76-53.784375h639.9215625a53.8940625 53.8940625 0 0 1 53.76 53.784375v118.35375a53.8940625 53.8940625 0 0 1-53.76 53.76z m-5.375625-172.11375H187.9184375v118.35375h634.5309375V714.28625z m-570 32.664375a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.865-26.88z m78.3403125 0a26.88 26.88 0 1 1-26.60625 27.1678125 26.88 26.88 0 0 1 26.5875-27.16875z m78.6 0a26.88 26.88 0 1 1-26.60625 27.1678125 26.88 26.88 0 0 1 26.5875-27.16875zM827.215625 624.9490625H187.2846875c-32.2603125 0-53.76-21.51375-53.76-53.784375V452.8353125a53.8940625 53.8940625 0 0 1 53.76-53.784375H827.196875a53.8940625 53.8940625 0 0 1 53.76 53.784375v118.329375a53.8940625 53.8940625 0 0 1-53.76 53.784375z m-5.38125-172.11375H187.285625v118.329375H821.815625V452.8353125z m-569.994375 31.9921875a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.88-26.88z m77.889375 0a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.8565625-26.88z m76.963125-0.403125a26.88 26.88 0 1 1-26.60625 27.1678125 26.88 26.88 0 0 1 26.5875-27.163125z m419.7890625-120.744375H186.56c-32.2509375 0-53.76-21.5278125-53.76-53.7984375V191.5521875a53.8940625 53.8940625 0 0 1 53.76-53.784375h639.9215625a53.8940625 53.8940625 0 0 1 53.76 53.784375v118.329375a53.8940625 53.8940625 0 0 1-53.76 53.7984375z m-5.3615625-172.1278125H186.56v118.329375h634.56V191.5521875z m-570.0140625 32.2753125a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.88-26.88z m78.6046875 0a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.8753125-26.88z m78.6046875 0a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.8846875-26.88z",fill:s.color,"p-id":"19012"},null,8,ip)]))}}),rp={},cp={width:"18px",height:"18px",viewBox:"0 0 18 18",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function dp(s,t){return i(),d("svg",cp,[...t[0]||(t[0]=[Hn('',1)])])}const zl=le(rp,[["render",dp]]),up={},vp={width:"18px",height:"18px",viewBox:"0 0 18 18",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function pp(s,t){return i(),d("svg",vp,[...t[0]||(t[0]=[Hn('',1)])])}const hp=le(up,[["render",pp]]),mp={class:"action-header"},fp={class:"action-header_title"},bp={class:"action-body"},gp={class:"disk-info"},_p={key:0,class:"disk-info_mount-name"},yp={key:1,class:"disk-info_mount-name"},kp={key:0,class:"label-item"},wp={class:"label-item_key"},$p={class:"label-item_path"},Cp={class:"label-item"},Sp={class:"label-item_key"},xp={class:"label-item_value"},Pp=["disabled"],Tp={key:0,value:""},Mp={value:"format"},Ep={key:1,value:"default"},Ip={class:"label-item_value"},Dp={key:0,class:"msg"},Lp={key:1,class:"msg"},Ap={class:"action-footer"},Np=["disabled"],Op=["disabled"],zp={key:1,class:"action result"},qp={class:"action-body"},Rp={class:"action-body_msg"},Vp={key:0,class:"action-body_info"},Bp={key:1,class:"action-body_info"},Up={class:"btns"},Fp=X({__name:"index",props:{action:String,disk:{type:Object,required:!0},mount:{type:Object},Close:{type:Function},Cancel:{type:Function},Next:{type:Function}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.Close&&l.Close()},c=y=>{y.preventDefault(),l.Cancel&&l.Cancel(),u()},r=y=>{l.Next&&l.Next(y),u()},p=x(!1),v=x(0),h=y=>{v.value=y},g=x(l.action=="nas"?"":"format"),b=x(),m=x(),f=()=>{switch(g.value){case"format":$();return;case"default":k();return;default:ne.Warning(t("请选择选项"));return}},k=()=>{let y="";const P=l.mount;if(P!=null&&P.mountPoint!=null&&(y=P.mountPoint),y!=""){r(y);return}ne.Warning(t("无法识别路径"))},$=()=>{const y=l.disk,P=l.mount;if(P){const _=P.mountPoint||P.path;if(!confirm(t("警告:格式化会清空 %{partname} 分区数据,请你谨慎操作",{partname:_||""}))||!confirm(t("是否确定格式化 %{partname}?",{partname:_||""})))return;S(P);return}if(y){if(!confirm(t("警告:该操作将初始化 %{model} 硬盘并创建分区,请你谨慎操作",{model:y.venderModel||""}))||!confirm(t("是否确定初始化?")))return;w(y);return}ne.Warning(t("无法识别数据"))},w=y=>B(null,null,function*(){if(y.name==null||y.path==""){ne.Warning(t("获取不到设备名称"));return}if(y.path==null||y.path==""){ne.Warning(t("获取不到设备路径"));return}p.value=!0;const P=ne.Loading(t("初始化中..."));try{const _=yield we.Nas.Disk.Init.POST({name:y.name,path:y.path});if(_!=null&&_.data){const{result:D,error:E}=_==null?void 0:_.data;E&&ne.Warning(E),D&&(D.errorInfo?ne.Warning(D.errorInfo):(ne.Success(t("初始化成功")),D.childrens&&D.childrens.length>0&&(m.value=D.childrens[0]),b.value=D,h(1)))}}catch(_){ne.Error(_)}P.Close(),p.value=!1}),S=y=>B(null,null,function*(){if(y.path==null||y.path==""){ne.Warning(t("获取不到分区路径"));return}p.value=!0;const P=ne.Loading(t("格式化中..."));try{const _=yield we.Nas.Disk.Partition.Format.POST({path:y.path,uuid:y.uuid,mountPoint:y.mountPoint});if(_!=null&&_.data){const{result:D,error:E}=_==null?void 0:_.data;E&&ne.Warning(E),D&&(ne.Success(t("格式化成功")),m.value=D,h(1))}}catch(_){ne.Error(_)}P.Close(),p.value=!1}),C=()=>{if(m.value&&m.value.mountPoint){r(m.value.mountPoint);return}ne.Warning(t("读取结果失败"))};return(y,P)=>(i(),Y(Nt,{type:1},{default:pe(()=>[G(fn,{name:"rotate",mode:"out-in"},{default:pe(()=>{var _;return[v.value==0?(i(),d("form",{key:0,class:"action format",onSubmit:Ge(f,["prevent"])},[e("div",mp,[e("div",fp,a(o(t)("硬盘配置")),1)]),e("div",bp,[e("div",gp,[P[1]||(P[1]=e("div",{class:"disk-info_icon"},[e("svg",{t:"1642589762094",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"11301",width:"128",height:"128"},[e("path",{d:"M899.892468 123.889088c0-44.342099-36.286708-80.620486-80.624646-80.620486H204.728017C160.385918 43.268602 124.107532 79.546988 124.107532 123.889088v802.847056c0 44.342099 36.278386 80.620486 80.620485 80.620486h614.539805c44.337938 0 80.624646-36.278386 80.624646-80.620486V123.889088z",fill:"#D0D0DB","p-id":"11302"}),e("path",{d:"M169.8768 977.7772V174.930143c0-44.342099 36.278386-80.620486 80.620486-80.620485h614.539804c9.936092 0 19.426974 1.905666 28.239639 5.23434-11.525534-30.507298-40.996782-52.389169-75.398629-52.389169H203.342457c-44.342099 0-80.620486 36.278386-80.620486 80.620486v802.851217c0 34.410168 21.881871 63.873094 52.385008 75.381985A79.730065 79.730065 0 0 1 169.8768 977.7772z",fill:"#FFFFFF","p-id":"11303"}),e("path",{d:"M820.657543 40.497481H206.117739c-44.342099 0-80.620486 36.278386-80.620486 80.620485v802.847057c0 44.342099 36.278386 80.620486 80.620486 80.620486h614.539804c44.337938 0 80.624646-36.278386 80.624647-80.620486V121.117966c0-44.342099-36.286708-80.620486-80.624647-80.620485z m19.60173 828.785749c0 40.846992-33.43237 74.279362-74.287684 74.279361H199.780776c-40.855313 0-74.279362-33.424048-74.279362-74.279361V129.593603c0-40.855313 33.424048-74.279362 74.279362-74.279362h566.203296c40.842831 0 74.283522 33.424048 74.283522 74.279362l-0.008321 739.689627z",fill:"#6E6E96","p-id":"11304"}),e("path",{d:"M815.106979 1024H200.567175C146.933914 1024 103.303319 980.369405 103.303319 926.736144V123.889088C103.303319 70.255827 146.933914 26.625232 200.567175 26.625232h614.539804c53.633261 0 97.268017 43.630595 97.268017 97.263856v802.847056c0 53.633261-43.634756 97.263856-97.268017 97.263856zM200.567175 59.911972C165.287391 59.911972 136.590059 88.609303 136.590059 123.889088v802.847056c0 35.279784 28.697331 63.977115 63.977116 63.977115h614.539804c35.279784 0 63.981276-28.697331 63.981276-63.977115V123.889088c0-35.279784-28.701492-63.977115-63.981276-63.977116H200.567175z",fill:"#6E6E96","p-id":"11305"}),e("path",{d:"M301.946104 941.515457h429.985632v65.841173H301.946104z",fill:"#8A8AA1","p-id":"11306"}),e("path",{d:"M731.931736 1024H301.946104a16.64337 16.64337 0 0 1-16.64337-16.64337V941.515457a16.64337 16.64337 0 0 1 16.64337-16.64337h429.985632a16.64337 16.64337 0 0 1 16.64337 16.64337v65.841173a16.64337 16.64337 0 0 1-16.64337 16.64337z m-413.342262-33.286741h396.698892v-32.554432H318.589474v32.554432z",fill:"#6E6E96","p-id":"11307"}),e("path",{d:"M337.230049 960.318304h20.804213v47.038326h-20.804213zM386.565159 960.318304h20.804213v47.038326h-20.804213zM435.891948 960.318304h20.804213v47.038326h-20.804213zM485.231219 960.318304h20.804213v47.038326h-20.804213zM534.558008 960.318304h20.804213v47.038326h-20.804213zM583.897279 960.318304h20.804213v47.038326h-20.804213zM633.224068 960.318304h20.804213v47.038326h-20.804213zM682.563339 960.318304h20.804213v47.038326h-20.804213z",fill:"#FFE599","p-id":"11308"}),e("path",{d:"M219.153659 140.794591m-26.874883 0a26.874882 26.874882 0 1 0 53.749765 0 26.874882 26.874882 0 1 0-53.749765 0Z",fill:"#ADADD1","p-id":"11309"}),e("path",{d:"M219.153659 184.312843c-23.995579 0-43.518252-19.522673-43.518253-43.518252s19.522673-43.518252 43.518253-43.518253 43.518252 19.522673 43.518252 43.518253-19.522673 43.518252-43.518252 43.518252z m0-53.749764c-5.642103 0-10.231512 4.589409-10.231512 10.231512s4.589409 10.231512 10.231512 10.231512 10.231512-4.589409 10.231511-10.231512-4.589409-10.231512-10.231511-10.231512z",fill:"#6E6E96","p-id":"11310"}),e("path",{d:"M801.28466 140.794591m-26.870721 0a26.870721 26.870721 0 1 0 53.741442 0 26.870721 26.870721 0 1 0-53.741442 0Z",fill:"#ADADD1","p-id":"11311"}),e("path",{d:"M801.28466 184.308683c-23.995579 0-43.514092-19.518512-43.514091-43.514092s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514092z m0-53.741443c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11312"}),e("path",{d:"M801.280499 905.23291m-26.870721 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"11313"}),e("path",{d:"M801.280499 948.747001c-23.995579 0-43.514092-19.518512-43.514091-43.514091s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11314"}),e("path",{d:"M219.153659 905.23291m-26.870722 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"11315"}),e("path",{d:"M219.153659 948.747001c-23.995579 0-43.514092-19.518512-43.514092-43.514091s19.518512-43.514092 43.514092-43.514092 43.514092 19.518512 43.514091 43.514092-19.522673 43.514092-43.514091 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11316"}),e("path",{d:"M520.972857 777.43263c-142.542145 0-258.508988-115.971004-258.508988-258.52147a16.64337 16.64337 0 0 1 33.28674 0c0 124.19699 101.033579 225.23473 225.222248 225.23473s225.222248-101.03774 225.222248-225.23473c0-124.188668-101.033579-225.218087-225.222248-225.218087a16.64337 16.64337 0 0 1 0-33.286741c142.542145 0 258.508988 115.966843 258.508988 258.504828 0 142.550466-115.966843 258.521471-258.508988 258.52147z",fill:"#6E6E96","p-id":"11317"}),e("path",{d:"M520.968696 518.919481m-83.312551 0a83.312551 83.312551 0 1 0 166.625102 0 83.312551 83.312551 0 1 0-166.625102 0Z",fill:"#A9A9BA","p-id":"11318"}),e("path",{d:"M520.968696 618.875402c-55.114521 0-99.955921-44.83724-99.955921-99.95176 0-55.118682 44.8414-99.955921 99.955921-99.955921s99.95176 44.8414 99.95176 99.955921c0 55.11036-44.83724 99.95176-99.95176 99.95176z m0-166.625101c-36.761044 0-66.669181 29.908136-66.66918 66.66918s29.908136 66.66502 66.66918 66.66502 66.66502-29.908136 66.66502-66.66502c0-36.761044-29.903976-66.669181-66.66502-66.66918z",fill:"#6E6E96","p-id":"11319"}),e("path",{d:"M301.946104 941.515457h429.985632v36.977408H301.946104z",fill:"#6E6E96","p-id":"11320"})])],-1)),s.mount?(i(),d("div",_p,[e("span",null,"【"+a(s.mount.total)+"】",1),e("span",null,a(s.mount.mountPoint||s.mount.path),1)])):s.disk?(i(),d("div",yp,[e("span",null,"【"+a(s.disk.size)+"】",1),e("span",null,a(s.disk.venderModel),1)])):T("",!0)]),s.mount?(i(),d("div",kp,[e("div",wp,[e("span",null,a(o(t)("目标分区")),1)]),e("div",$p,a(s.mount.mountPoint||s.mount.path)+"("+a(s.mount.total)+")",1)])):T("",!0),e("div",Cp,[e("div",Sp,[e("span",null,a(o(t)("格式化选项")),1)]),e("div",xp,[W(e("select",{"onUpdate:modelValue":P[0]||(P[0]=D=>g.value=D),required:"",disabled:s.action=="disk"},[s.mount!=null?(i(),d("option",Tp,a(o(t)("请选择选项")),1)):T("",!0),e("option",Mp,a(o(t)("格式化")),1),s.mount!=null?(i(),d("option",Ep,a(o(t)("不格式化,使用原文件系统")),1)):T("",!0)],8,Pp),[[Be,g.value]])]),e("div",Ip,[g.value=="format"?(i(),d("p",Dp,a(o(t)("格式化为EXT4文件系统")),1)):g.value=="default"?(i(),d("p",Lp)):T("",!0)])])]),e("div",Ap,[P[2]||(P[2]=e("div",{class:"auto"},null,-1)),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:c,type:"button",disabled:p.value},a(o(t)("返回")),9,Np),e("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:p.value},a(o(t)("下一步")),9,Op)])],32)):v.value==1?(i(),d("div",zp,[e("div",qp,[P[3]||(P[3]=e("div",{class:"action-body_icon"},[e("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[e("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})])],-1)),e("div",Rp,a(o(t)("格式化成功")),1),b.value?(i(),d("div",Vp,[ue(a(o(t)("已经成功格式化磁盘"))+" "+a(b.value.venderModel)+" "+a(o(t)("并挂载到"))+" ",1),e("a",null,a((_=m.value)==null?void 0:_.mountPoint),1)])):T("",!0),m.value?(i(),d("div",Bp,[ue(a(o(t)("已经成功初始化分区"))+" ",1),e("a",null,a(m.value.mountPoint),1)])):T("",!0),e("div",Up,[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",type:"button",onClick:C},a(s.action=="nas"?o(t)("下一步"):o(t)("完成")),1)])])])):T("",!0)]}),_:1})]),_:1}))}}),Hp=le(Fp,[["__scopeId","data-v-eacbb72a"]]),Xo=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(Hp,Ne(ye({},s),{Close:()=>{l()}}));n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},Gp={class:"action-body"},jp={class:"disk-info"},Wp={key:0,class:"disk-info_mount-name"},Jp={key:1,class:"disk-info_mount-name"},Kp={key:0,class:"label-item"},Zp={class:"label-item_key"},Yp={class:"label-item_path"},Qp={class:"label-item"},Xp={class:"label-item_key"},e8={class:"label-item_value"},t8={class:"action-footer"},n8=["disabled"],a8=["disabled"],s8={key:1,class:"action result"},o8={class:"action-body"},l8={class:"action-body_msg"},i8=["innerHTML"],r8={class:"btns"},c8=X({__name:"index",props:{action:String,disk:{type:Object,required:!0},mount:{type:Object},Close:{type:Function},Cancel:{type:Function},Next:{type:Function}},setup(s){var $;const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.Close&&l.Close()},c=w=>{w.preventDefault(),l.Cancel&&l.Cancel(),u()},r=w=>{l.Next&&l.Next(w),u()},p=x(!1),v=x(0),h=x("/mnt/data_"+(($=l==null?void 0:l.mount)==null?void 0:$.name)),g=w=>{v.value=w};x(l.mount?"":"format"),x();const b=x(),m=()=>B(null,null,function*(){const w=l.mount;if(w==null){ne.Warning(t("获取不到分区"));return}if(w.path==null||w.path==""){ne.Warning(t("获取不到分区路径"));return}if(w.uuid==null||w.uuid==""){ne.Warning(t("获取不到分区ID"));return}p.value=!0;const S=ne.Loading(t("挂载中..."));try{const C=yield we.Nas.Disk.Partition.Mount.POST({path:w.path,uuid:w.uuid,mountPoint:h.value});if(C!=null&&C.data){const{result:y,error:P}=C==null?void 0:C.data;P&&ne.Warning(P),y&&(ne.Success(t("挂载成功")),b.value=y,g(1))}}catch(C){ne.Error(C)}S.Close(),p.value=!1}),f=()=>{if(b.value&&b.value.mountPoint){r(b.value.mountPoint);return}ne.Warning(t("读取结果失败"))},k=()=>{};return(w,S)=>(i(),Y(Nt,{type:1},{default:pe(()=>[G(fn,{name:"rotate",mode:"out-in"},{default:pe(()=>{var C,y;return[v.value==0?(i(),d("form",{key:0,class:"action format",onSubmit:Ge(k,["prevent"])},[S[3]||(S[3]=e("div",{class:"action-header"},[e("div",{class:"action-header_title"})],-1)),e("div",Gp,[e("div",jp,[S[1]||(S[1]=e("div",{class:"disk-info_icon"},[e("svg",{t:"1642589762094",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"11301",width:"128",height:"128"},[e("path",{d:"M899.892468 123.889088c0-44.342099-36.286708-80.620486-80.624646-80.620486H204.728017C160.385918 43.268602 124.107532 79.546988 124.107532 123.889088v802.847056c0 44.342099 36.278386 80.620486 80.620485 80.620486h614.539805c44.337938 0 80.624646-36.278386 80.624646-80.620486V123.889088z",fill:"#D0D0DB","p-id":"11302"}),e("path",{d:"M169.8768 977.7772V174.930143c0-44.342099 36.278386-80.620486 80.620486-80.620485h614.539804c9.936092 0 19.426974 1.905666 28.239639 5.23434-11.525534-30.507298-40.996782-52.389169-75.398629-52.389169H203.342457c-44.342099 0-80.620486 36.278386-80.620486 80.620486v802.851217c0 34.410168 21.881871 63.873094 52.385008 75.381985A79.730065 79.730065 0 0 1 169.8768 977.7772z",fill:"#FFFFFF","p-id":"11303"}),e("path",{d:"M820.657543 40.497481H206.117739c-44.342099 0-80.620486 36.278386-80.620486 80.620485v802.847057c0 44.342099 36.278386 80.620486 80.620486 80.620486h614.539804c44.337938 0 80.624646-36.278386 80.624647-80.620486V121.117966c0-44.342099-36.286708-80.620486-80.624647-80.620485z m19.60173 828.785749c0 40.846992-33.43237 74.279362-74.287684 74.279361H199.780776c-40.855313 0-74.279362-33.424048-74.279362-74.279361V129.593603c0-40.855313 33.424048-74.279362 74.279362-74.279362h566.203296c40.842831 0 74.283522 33.424048 74.283522 74.279362l-0.008321 739.689627z",fill:"#6E6E96","p-id":"11304"}),e("path",{d:"M815.106979 1024H200.567175C146.933914 1024 103.303319 980.369405 103.303319 926.736144V123.889088C103.303319 70.255827 146.933914 26.625232 200.567175 26.625232h614.539804c53.633261 0 97.268017 43.630595 97.268017 97.263856v802.847056c0 53.633261-43.634756 97.263856-97.268017 97.263856zM200.567175 59.911972C165.287391 59.911972 136.590059 88.609303 136.590059 123.889088v802.847056c0 35.279784 28.697331 63.977115 63.977116 63.977115h614.539804c35.279784 0 63.981276-28.697331 63.981276-63.977115V123.889088c0-35.279784-28.701492-63.977115-63.981276-63.977116H200.567175z",fill:"#6E6E96","p-id":"11305"}),e("path",{d:"M301.946104 941.515457h429.985632v65.841173H301.946104z",fill:"#8A8AA1","p-id":"11306"}),e("path",{d:"M731.931736 1024H301.946104a16.64337 16.64337 0 0 1-16.64337-16.64337V941.515457a16.64337 16.64337 0 0 1 16.64337-16.64337h429.985632a16.64337 16.64337 0 0 1 16.64337 16.64337v65.841173a16.64337 16.64337 0 0 1-16.64337 16.64337z m-413.342262-33.286741h396.698892v-32.554432H318.589474v32.554432z",fill:"#6E6E96","p-id":"11307"}),e("path",{d:"M337.230049 960.318304h20.804213v47.038326h-20.804213zM386.565159 960.318304h20.804213v47.038326h-20.804213zM435.891948 960.318304h20.804213v47.038326h-20.804213zM485.231219 960.318304h20.804213v47.038326h-20.804213zM534.558008 960.318304h20.804213v47.038326h-20.804213zM583.897279 960.318304h20.804213v47.038326h-20.804213zM633.224068 960.318304h20.804213v47.038326h-20.804213zM682.563339 960.318304h20.804213v47.038326h-20.804213z",fill:"#FFE599","p-id":"11308"}),e("path",{d:"M219.153659 140.794591m-26.874883 0a26.874882 26.874882 0 1 0 53.749765 0 26.874882 26.874882 0 1 0-53.749765 0Z",fill:"#ADADD1","p-id":"11309"}),e("path",{d:"M219.153659 184.312843c-23.995579 0-43.518252-19.522673-43.518253-43.518252s19.522673-43.518252 43.518253-43.518253 43.518252 19.522673 43.518252 43.518253-19.522673 43.518252-43.518252 43.518252z m0-53.749764c-5.642103 0-10.231512 4.589409-10.231512 10.231512s4.589409 10.231512 10.231512 10.231512 10.231512-4.589409 10.231511-10.231512-4.589409-10.231512-10.231511-10.231512z",fill:"#6E6E96","p-id":"11310"}),e("path",{d:"M801.28466 140.794591m-26.870721 0a26.870721 26.870721 0 1 0 53.741442 0 26.870721 26.870721 0 1 0-53.741442 0Z",fill:"#ADADD1","p-id":"11311"}),e("path",{d:"M801.28466 184.308683c-23.995579 0-43.514092-19.518512-43.514091-43.514092s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514092z m0-53.741443c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11312"}),e("path",{d:"M801.280499 905.23291m-26.870721 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"11313"}),e("path",{d:"M801.280499 948.747001c-23.995579 0-43.514092-19.518512-43.514091-43.514091s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11314"}),e("path",{d:"M219.153659 905.23291m-26.870722 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"11315"}),e("path",{d:"M219.153659 948.747001c-23.995579 0-43.514092-19.518512-43.514092-43.514091s19.518512-43.514092 43.514092-43.514092 43.514092 19.518512 43.514091 43.514092-19.522673 43.514092-43.514091 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11316"}),e("path",{d:"M520.972857 777.43263c-142.542145 0-258.508988-115.971004-258.508988-258.52147a16.64337 16.64337 0 0 1 33.28674 0c0 124.19699 101.033579 225.23473 225.222248 225.23473s225.222248-101.03774 225.222248-225.23473c0-124.188668-101.033579-225.218087-225.222248-225.218087a16.64337 16.64337 0 0 1 0-33.286741c142.542145 0 258.508988 115.966843 258.508988 258.504828 0 142.550466-115.966843 258.521471-258.508988 258.52147z",fill:"#6E6E96","p-id":"11317"}),e("path",{d:"M520.968696 518.919481m-83.312551 0a83.312551 83.312551 0 1 0 166.625102 0 83.312551 83.312551 0 1 0-166.625102 0Z",fill:"#A9A9BA","p-id":"11318"}),e("path",{d:"M520.968696 618.875402c-55.114521 0-99.955921-44.83724-99.955921-99.95176 0-55.118682 44.8414-99.955921 99.955921-99.955921s99.95176 44.8414 99.95176 99.955921c0 55.11036-44.83724 99.95176-99.95176 99.95176z m0-166.625101c-36.761044 0-66.669181 29.908136-66.66918 66.66918s29.908136 66.66502 66.66918 66.66502 66.66502-29.908136 66.66502-66.66502c0-36.761044-29.903976-66.669181-66.66502-66.66918z",fill:"#6E6E96","p-id":"11319"}),e("path",{d:"M301.946104 941.515457h429.985632v36.977408H301.946104z",fill:"#6E6E96","p-id":"11320"})])],-1)),s.mount?(i(),d("div",Wp,[e("span",null,"【"+a(s.mount.total)+"】",1),e("span",null,a(s.mount.mountPoint),1)])):s.disk?(i(),d("div",Jp,[e("span",null,"【"+a(s.disk.size)+"】",1),e("span",null,a(s.disk.venderModel),1)])):T("",!0)]),s.mount?(i(),d("div",Kp,[e("div",Zp,[e("span",null,a(o(t)("目标分区")),1)]),e("div",Yp,a(s.mount.path)+"("+a(s.mount.total)+","+a((y=(C=s.mount)==null?void 0:C.filesystem)==null?void 0:y.toUpperCase())+")",1)])):T("",!0),e("div",Qp,[e("div",Xp,[e("span",null,a(o(t)("挂载点")),1)]),e("div",e8,[W(e("input",{type:"text","onUpdate:modelValue":S[0]||(S[0]=P=>h.value=P)},null,512),[[Oe,h.value,void 0,{trim:!0}]])])])]),e("div",t8,[S[2]||(S[2]=e("div",{class:"auto"},null,-1)),e("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:p.value,onClick:m},a(o(t)("确定")),9,n8),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:c,type:"button",disabled:p.value},a(o(t)("返回")),9,a8)])],32)):v.value==1?(i(),d("div",s8,[e("div",o8,[S[4]||(S[4]=e("div",{class:"action-body_icon"},[e("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[e("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})])],-1)),e("div",l8,a(o(t)("挂载成功")),1),b.value?(i(),d("div",{key:0,class:"action-body_info",innerHTML:o(t)("已成功将分区 %{dev} 挂载到 %{mount}",{dev:b.value.path||"",mount:b.value.mountPoint||""})},null,8,i8)):T("",!0),e("div",r8,[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",type:"button",onClick:f},a(s.action=="nas"?o(t)("完成"):o(t)("下一步")),1)])])])):T("",!0)]}),_:1})]),_:1}))}}),d8=le(c8,[["__scopeId","data-v-7ca3ba11"]]),Ii=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(d8,Ne(ye({},s),{Close:()=>{l()}}));n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},u8={class:"disk-content"},v8={class:"disk-item"},p8={class:"disk-item_name"},h8={key:0},m8={key:1},f8={key:2},b8={class:"disk_value"},g8={class:"disk-item_value"},_8={class:"value-data"},y8={key:0,class:"disk-item"},k8={class:"disk-item_name"},w8={key:0},$8=["href"],C8={key:0},S8={class:"disk_status"},x8={key:0,class:"disk_status_item"},P8={key:0,class:"tooltip-trigger disk_tip"},T8={class:"tooltip-text tooltip-top"},M8={class:"disk_dir_tip"},E8={class:"disk_status_item"},I8={key:0,class:"tooltip-trigger disk_tip"},D8={class:"tooltip-text tooltip-top"},L8={class:"disk_dir_tip"},A8=X({__name:"item",props:{part:{type:Object,required:!0},disk:{type:Object,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=R(()=>l.part.filesystem=="No FileSystem"),c=R(()=>l.part.filesystem&&["ntfs","vfat","exfat"].indexOf(l.part.filesystem)>=0),r=R(()=>l.part.mountPoint&&l.part.isReadOnly&&l.part.filesystem!="swap"),p=R(()=>u.value||!l.part.isSystemRoot&&(r.value||c.value||!l.part.mountPoint&&l.part.filesystem=="swap")),v=function(){Xo({action:"disk",disk:l.disk,mount:l.part,Cancel:()=>{},Next:f=>{location.reload()}})},h=()=>{Ii({action:"nas",disk:l.disk,mount:l.part,Cancel:()=>{},Next:()=>{location.reload()}})},g=()=>B(null,null,function*(){const f=ne.Loading(t("处理中..."));try{const k=yield we.Nas.Disk.InitRest.POST({name:l.disk.name,path:l.disk.path});if(k!=null&&k.data){const{result:$,error:w}=k==null?void 0:k.data;w&&ne.Warning(w),$&&(ne.Success(t("挂载成功")),location.reload())}}catch(k){ne.Error(k)}f.Close()}),b=R(()=>l.part.filesystem=="Free Space"),m=R(()=>{const f=l.part.mountPoint?l.part.mountPoint:"";return f.indexOf("/mnt/")==0?"/cgi-bin/luci/admin/services/linkease/file/?path=/"+f.substring(5):"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+f});return(f,k)=>{var w;const $=At("progress-item");return i(),d("div",u8,[e("li",v8,[e("div",p8,[b.value?(i(),d("span",h8,a(o(t)("未分区")),1)):(i(),d("span",m8,a(s.part.name)+a(s.part.mountPoint?"":u.value?o(t)("(未格式化)"):o(t)("(未挂载)")),1)),s.part.isSystemRoot?(i(),d("span",f8,a(o(t)("(系统分区)")),1)):T("",!0)]),e("div",b8,[e("div",g8,[e("div",_8,[G($,{value:b.value||!s.part.usage?0:s.part.usage,text:b.value?o(t)("未分区(%{total})",{total:s.part.total||""}):(s.part.mountPoint&&s.part.filesystem!="swap"?s.part.used:o(t)("未知"))+"/"+(s.part.total||""),style:{backgroundColor:"#767676"}},null,8,["value","text"])])]),b.value?(i(),d("button",{key:0,class:"cbi-button cbi-button-apply",onClick:g},a(o(t)("分区并格式化")),1)):p.value?(i(),d("button",{key:1,class:"cbi-button cbi-button-apply",onClick:v},a(o(t)("格式化分区")),1)):T("",!0)])]),!b.value&&!u.value?(i(),d("li",y8,[e("span",k8,[s.part.mountPoint?(i(),d(V,{key:0},[s.part.filesystem=="swap"?(i(),d("span",w8,a(o(t)("已挂载为交换区")),1)):(i(),d("a",{key:1,href:m.value,target:"_blank"},a(s.part.mountPoint),9,$8))],64)):(i(),d(V,{key:1},[s.part.filesystem=="swap"?(i(),d("span",C8,a(o(t)("不支持挂载")),1)):(i(),d("span",{key:1,class:"value-data buttondiv",onClick:h},a(o(t)("手动挂载")),1))],64))]),e("div",S8,[s.part.mountPoint&&s.part.filesystem!="swap"?(i(),d("div",x8,[e("div",null,a(o(t)("可读写状态:"))+a(s.part.isReadOnly?o(t)("只读"):o(t)("读写")),1),r.value?(i(),d("div",P8,[G(Sn),e("div",T8,[e("div",M8,a(o(t)("此分区为只读状态,可能无法写入数据")),1)])])):T("",!0)])):T("",!0),e("div",E8,[e("div",null,a(o(t)("文件系统:"))+a((w=s.part.filesystem)==null?void 0:w.toUpperCase()),1),!s.part.isSystemRoot&&c.value?(i(),d("div",I8,[G(Sn),e("div",D8,[e("span",L8,a(o(t)("此文件系统不支持Docker等应用数据,建议格式化成EXT4文件系统")),1)])])):T("",!0)])])])):T("",!0)])}}}),N8=le(A8,[["__scopeId","data-v-ae00b3e7"]]),O8={key:0,class:"action"},z8={class:"title"},q8={class:"app-container_info"},R8={class:"app-container_body"},V8={class:"action-footer"},B8=X({__name:"index",props:{disk:{type:Object,required:!0},Close:{type:Function},Cancel:{type:Function},Next:{type:Function}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(0),c=()=>{l.Close&&l.Close()},r=p=>{p.preventDefault(),l.Cancel&&l.Cancel(),c()};return(p,v)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[G(fn,{name:"rotate",mode:"out-in"},{default:pe(()=>[u.value==0?(i(),d("div",O8,[e("h2",z8,a(o(t)("分区信息"))+" - "+a((s.disk.name||"?")+(s.disk.isSystemRoot?o(t)("(系统盘)"):"")),1),e("ul",null,[e("li",null,[e("div",q8,[e("span",null,a(o(t)("分区 / 挂载点")),1),e("span",null,a(o(t)("容量")),1)]),e("div",R8,[(i(!0),d(V,null,oe(s.disk.childrens,(h,g)=>(i(),Y(N8,{key:g,part:h,disk:s.disk},null,8,["part","disk"]))),128))])])]),e("div",V8,[v[0]||(v[0]=e("div",{class:"auto"},null,-1)),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:r,type:"button"},a(o(t)("返回")),1)])])):T("",!0)]),_:1})]),_:1},8,["Close"]))}}),U8=le(B8,[["__scopeId","data-v-27fc3117"]]),F8=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(U8,Ne(ye({},s),{Close:()=>{l()}}));n.component("progress-item",Nc),n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},H8={class:"progress-bar-wrapper"},G8={key:0,class:"percentage-text"},j8={__name:"index",props:{percentage:{type:Number,default:0,validator:s=>s>=0&&s<=100},color:{type:String,default:"#4CAF50"},backgroundColor:{type:String,default:"#e0e0e0"},height:{type:[String,Number],default:"20px"},borderRadius:{type:[String,Number],default:"4px"},showPercentage:{type:Boolean,default:!0},gradient:{type:Boolean,default:!1},gradientColors:{type:String,default:"linear-gradient(90deg, #4CAF50, #45a049)"},duration:{type:Number,default:1e3}},setup(s){const t=s,n=R(()=>({height:typeof t.height=="number"?`${t.height}px`:t.height,borderRadius:typeof t.borderRadius=="number"?`${t.borderRadius}px`:t.borderRadius,backgroundColor:t.backgroundColor,overflow:"hidden"})),l=R(()=>{const u={height:"100%",width:`${t.percentage}%`,borderRadius:typeof t.borderRadius=="number"?`${t.borderRadius}px`:t.borderRadius,transition:`width ${t.duration}ms cubic-bezier(0.4, 0, 0.2, 1)`,position:"relative",overflow:"hidden"};return t.gradient?Ne(ye({},u),{background:t.gradientColors}):Ne(ye({},u),{background:t.color})});return(u,c)=>(i(),d("div",H8,[e("div",{class:"progress-bar",style:pt(n.value)},[e("div",{class:"progress-fill",style:pt(l.value)},[s.showPercentage?(i(),d("span",G8,a(Math.round(s.percentage))+"% ",1)):T("",!0)],4)],4)]))}},Di=le(j8,[["__scopeId","data-v-b80ff621"]]),W8={key:0,class:"disk-item error"},J8=["title"],K8={class:"disk-item_value"},Z8={class:"value-data"},Y8={class:"error"},Q8={key:1,class:"disk-item"},X8=["title"],eh={key:0,class:"disk_value"},th={class:"value-data"},nh={href:"/cgi-bin/luci/admin/nas/smart"},ah={class:"error"},sh={key:1,class:"disk_value"},oh={class:"disk-item_value"},lh={class:"value-data"},ih={class:"disk-item-tooltip"},rh={class:"disk_icon"},ch={key:0,class:"tooltip-trigger"},dh={class:"disk_tip"},uh={class:"tooltip-text tooltip-top"},vh={class:"disk_dir_tip"},ph={key:1,class:"tooltip-trigger"},hh={class:"disk_tip"},mh={class:"tooltip-text tooltip-top"},fh={class:"disk_dir_tip"},bh={key:2,class:"disk-item load"},gh=["title"],_h={class:"disk_value"},yh={class:"disk-item_value"},kh={class:"value-data"},wh={key:3,class:"disk-item load"},$h=["title"],Ch={class:"disk_value"},Sh={key:0,class:"disk-item_value"},xh={class:"value-data"},Ph={class:"disk_icon"},Th=X({__name:"DiskItem",props:{disk:{type:Object,required:!0},smartWarning:{type:Boolean}},setup(s){const{$gettext:t}=Ae(),n=s,l=R(()=>n.disk.errorInfo?"error":n.disk.isSystemRoot?"success":n.disk.childrens==null||n.disk.childrens.length==0||n.disk.childrens.length==1&&n.disk.childrens[0].filesystem=="No FileSystem"?"load":n.disk.childrens.filter(g=>g.mountPoint).length==0?"unmounted":"success"),u=R(()=>{const g=n.disk;let b=g.name;return g.size&&(b+=`【${g.size}】`),g.venderModel&&(b+=`(${g.venderModel})`),b}),c=R(()=>{var b;const g=n.disk;return!g.isSystemRoot&&(((b=g.childrens)==null?void 0:b.filter(m=>m.isReadOnly&&m.filesystem!="swap").length)||0)>0}),r=()=>{Xo({action:"disk",disk:n.disk,Cancel:()=>{},Next:()=>{location.reload()}})},p=()=>{F8({action:"disk",disk:n.disk,Cancel:()=>{},Next:()=>{location.reload()}})},v=()=>{const g=n.disk,b=g.childrens||[];Ii({action:"nas",disk:g,mount:b[0],Cancel:()=>{},Next:()=>{location.reload()}})},h=g=>g<60?"#2fc867":g<75?"#fdd835":g<90?"#f97316":"#dc2626";return(g,b)=>{var m,f,k,$,w,S;return l.value=="error"?(i(),d("li",W8,[e("div",{class:"disk-item_name",title:u.value},[e("span",null,a(u.value),1)],8,J8),e("div",K8,[e("div",Z8,[e("span",Y8,a(s.disk.errorInfo),1)])])])):l.value=="success"?(i(),d("li",Q8,[e("div",{class:"disk-item_name",title:u.value},[e("span",null,a(u.value),1)],8,X8),s.disk.smartWarning&&s.smartWarning?(i(),d("div",eh,[e("div",th,[e("a",nh,[e("span",ah,a(o(t)("S.M.A.R.T异常")),1)])])])):(i(),d("div",sh,[e("div",oh,[e("div",lh,[G(Di,{percentage:s.disk.usage||0,showPercentage:!1,height:"10px",borderRadius:"10px",color:h(s.disk.usage||0),backgroundColor:"#f4f5f7"},null,8,["percentage","color"]),e("div",null,[e("span",null,a(o(t)("使用率"))+":"+a(s.disk.usage||0)+"%",1),e("span",null,a(o(t)("已使用"))+":"+a(s.disk.used),1)])]),e("div",ih,[e("span",null,a(o(t)("仅统计已挂载分区")),1)])]),e("div",rh,[s.disk.isDockerRoot&&s.disk.isSystemRoot&&s.disk.usage&&s.disk.usage>=90?(i(),d("span",ch,[e("span",dh,[G(Sn)]),e("div",null,[e("div",uh,[e("span",vh,a(o(t)("您的系统空间已不足,检测到您的Docker根目录位于系统根目录上,可能会影响系统的正常运行,建议使用Docker迁移向导将Docker根目录迁移到外置硬盘上。")),1)])])])):T("",!0),c.value?(i(),d("span",ph,[e("span",hh,[G(Sn)]),e("div",null,[e("div",mh,[e("span",fh,a(o(t)("分区存在异常,点击分区列表查看错误")),1)])])])):T("",!0),c.value&&(((m=s.disk.childrens)==null?void 0:m.length)||0)==1?(i(),d("span",{key:2,class:"disk_infoicon",onClick:b[0]||(b[0]=C=>r())},[G(hp)])):T("",!0),(((f=s.disk.childrens)==null?void 0:f.length)||0)>0?(i(),d("span",{key:3,class:"disk_infoicon",onClick:b[1]||(b[1]=C=>p())},[G(zl,{style:{color:"var(--app-container_title-color)"}})])):T("",!0)])]))])):l.value=="load"?(i(),d("li",bh,[e("div",{class:"disk-item_name",title:u.value},[e("span",null,a(u.value),1)],8,gh),e("div",_h,[e("div",yh,[e("div",kh,[e("button",{onClick:b[2]||(b[2]=C=>r())},a(o(t)("格式化并挂载")),1)])])])])):l.value=="unmounted"?(i(),d("li",wh,[e("div",{class:"disk-item_name",title:u.value},[e("span",null,a(u.value),1)],8,$h),e("div",Ch,[(((k=s.disk.childrens)==null?void 0:k.length)||0)==1?(i(),d("div",Sh,[e("div",xh,[((w=($=s.disk.childrens)==null?void 0:$[0])==null?void 0:w.filesystem)=="swap"?(i(),d("button",{key:0,onClick:b[3]||(b[3]=C=>p())},a(o(t)("查看详情")),1)):(i(),d("button",{key:1,onClick:b[4]||(b[4]=C=>v())},a(o(t)("手动挂载")),1))])])):T("",!0),e("div",Ph,[(((S=s.disk.childrens)==null?void 0:S.length)||0)>1?(i(),d("span",{key:0,class:"disk_infoicon",onClick:b[5]||(b[5]=C=>p())},[G(zl,{style:{color:"var(--app-container_title-color)"}})])):T("",!0)])])])):T("",!0)}}}),fo=le(Th,[["__scopeId","data-v-34cf4556"]]),Mh={href:"/cgi-bin/luci/admin/nas/raid"},Eh={href:"/cgi-bin/luci/admin/system/diskman"},Ih={href:"/cgi-bin/luci/admin/system/mounts"},Dh={class:"content"},Lh={key:0,class:"disk_loading_icon"},Ah={class:"disk_loading_info"},Nh={class:"item",style:{"margin-top":"4px","padding-bottom":"0"}},Oh={class:"icon_box"},zh={class:"info"},qh={class:"name"},Rh={class:"schedule"},Vh={key:0,class:"line"},Bh={key:1,class:"item"},Uh={class:"icon_box",style:{background:"#f3e8ff"}},Fh={class:"info"},Hh={class:"name"},Gh={class:"schedule"},jh={key:2,class:"item"},Wh={class:"icon_box",style:{background:"#dbfce7"}},Jh={class:"info"},Kh={class:"name"},Zh={class:"schedule"},Yh=X({__name:"DiskInfo",setup(s){const{$gettext:t}=Ae(),n=x(!1),l=Xe({disks:null,raidList:null}),u=()=>{we.Nas.Disk.Status.GET().then(v=>{var h;if((h=v==null?void 0:v.data)!=null&&h.result){const g=v.data.result;l.disks=g.disks||[]}})},c=()=>B(null,null,function*(){try{const v=yield we.Raid.List.GET();if(v!=null&&v.data){const{success:h,error:g,result:b}=v.data;if(b&&(l.raidList=b.disks||[]),g)throw g}}catch(v){console.log(v)}}),r=qa();fa("raid",v=>{var h,g;return l.raidList=r!=null&&r.bounded()?(v.disks||[]).slice(0,Math.max(0,3-(((g=(h=r.data.disks)==null?void 0:h.disks)==null?void 0:g.length)||0))):v.disks||[]})||c(),fa("disks",v=>l.disks=r!=null&&r.bounded()?(v.disks||[]).slice(0,3):v.disks||[])||u();const p=()=>{Xt.installAndGo("luci-app-linkease",t("易有云"),"/cgi-bin/luci/admin/services/linkease/file/","app-meta-linkease")};return(v,h)=>{const g=At("icon-loading");return i(),Y(ya,{"home-menu":[{label:o(t)("RAID管理"),href:"/cgi-bin/luci/admin/nas/raid"},{label:"S.M.A.R.T.",href:"/cgi-bin/luci/admin/nas/smart"},{label:o(t)("磁盘管理"),href:"/cgi-bin/luci/admin/system/diskman"},{label:o(t)("挂载点"),href:"/cgi-bin/luci/admin/system/mounts"}],title:o(t)("磁盘信息"),style:{width:"100%",display:"block"},"is-settings-menu-open":n.value,"onUpdate:isSettingsMenuOpen":h[0]||(h[0]=b=>n.value=b)},{icon:pe(()=>[G(Ol,{color:"#45556c",class:"icon"})]),settings:pe(()=>[e("button",{type:"button",class:"btn_settings",onClick:p},[G(np,{color:"#0a0a0a",class:"icon1 interfaceIcon",style:{"margin-right":"6px"}}),e("span",null,a(o(t)("文件管理")),1)])]),"settings-menu":pe(()=>[e("div",null,[e("a",Mh,a(o(t)("RAID管理")),1)]),h[1]||(h[1]=e("div",null,[e("a",{href:"/cgi-bin/luci/admin/nas/smart"},"S.M.A.R.T.")],-1)),e("div",null,[e("a",Eh,a(o(t)("磁盘管理")),1)]),e("div",null,[e("a",Ih,a(o(t)("挂载点")),1)])]),default:pe(()=>{var b,m,f,k;return[e("div",Dh,[!l.disks&&!l.raidList?(i(),d("div",Lh,[G(g,{size:38,color:"#888888"}),e("span",Ah,a(o(t)("正在获取磁盘信息...")),1)])):T("",!0),l.disks?(i(),d(V,{key:1},[e("div",Nh,[e("div",Oh,[G(Ol,{color:"#2b6cfc",class:"icon"})]),e("div",zh,[e("div",qh,[e("div",null,a(o(t)("系统根目录")),1)]),e("div",Rh,[(i(!0),d(V,null,oe((b=l.disks)==null?void 0:b.filter($=>$.isSystemRoot),($,w)=>(i(),Y(fo,{key:w,disk:$},null,8,["disk"]))),128))])])]),((m=l.disks)==null?void 0:m.filter($=>!$.isSystemRoot).length)>0?(i(),d("div",Vh)):T("",!0),((f=l.disks)==null?void 0:f.filter($=>!$.isSystemRoot).length)>0?(i(),d("div",Bh,[e("div",Uh,[G(op,{class:"icon"})]),e("div",Fh,[e("div",Hh,[e("div",null,a(o(t)("已挂载磁盘")),1)]),e("div",Gh,[(i(!0),d(V,null,oe((k=l.disks)==null?void 0:k.filter($=>!$.isSystemRoot),($,w)=>(i(),Y(fo,{key:w,disk:$,smartWarning:!0},null,8,["disk"]))),128))])])])):T("",!0)],64)):T("",!0),l.raidList&&l.raidList.length>0?(i(),d("div",jh,[e("div",Wh,[G(Ei,{color:"#0bab47",class:"icon"})]),e("div",Jh,[e("div",Kh,[e("div",null,a(o(t)("RAID设备")),1)]),e("div",Zh,[(i(!0),d(V,null,oe(l.raidList,($,w)=>(i(),Y(fo,{key:w,disk:$},null,8,["disk"]))),128))])])])):T("",!0)])]}),_:1},8,["home-menu","title","is-settings-menu-open"])}}}),Qh=le(Yh,[["__scopeId","data-v-52dc6f12"]]);function Ys(){const s=qa(),t=new Set;let n=!0;return lt(()=>{n=!1;for(const l of t)l.Close();t.clear()}),(l,u)=>{let c;return c=l(Ne(ye({},u),{onClosed:()=>{c&&t.delete(c),n&&(s==null||s.invalidate())}})),t.add(c),c}}const Xh={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},e5=["fill"],t5=["fill"],n5=X({__name:"share",props:{color:{type:String,default:"#222222"}},setup(s){return(t,n)=>(i(),d("svg",Xh,[e("path",{d:"M746 112c82.84 0 150 67.16 150 150S828.84 412 746 412 596 344.84 596 262 663.16 112 746 112z m0 48C689.668 160 644 205.668 644 262S689.668 364 746 364 848 318.332 848 262 802.332 160 746 160zM746 612c82.84 0 150 67.16 150 150S828.84 912 746 912 596 844.84 596 762s67.16-150 150-150z m0 48c-56.332 0-102 45.668-102 102s45.668 102 102 102 102-45.668 102-102-45.668-102-102-102zM262 364c82.84 0 150 67.16 150 150S344.84 664 262 664 112 596.84 112 514 179.16 364 262 364z m0 48C205.668 412 160 457.668 160 514S205.668 616 262 616 364 570.332 364 514 318.332 412 262 412z",fill:s.color,"p-id":"5059"},null,8,e5),e("path",{d:"M337.7 442.744l293.488-169.62 40.464 70.16-293.484 169.62zM387.708 526.728l277.02 160.12-40.468 70.156-277.02-160.12z",fill:s.color,"p-id":"5060"},null,8,t5)]))}}),a5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},s5=["fill"],o5=X({__name:"cloud",props:{color:{type:String,default:"#155dfc"}},setup(s){return(t,n)=>(i(),d("svg",a5,[e("path",{d:"M716.8 750.933333c47.786667 0 95.573333-27.306667 119.466667-68.266666 23.893333-40.96 23.893333-95.573333 0-136.533334-23.893333-40.96-68.266667-68.266667-119.466667-68.266666-10.24 0-17.066667-3.413333-23.893333-10.24-6.826667-6.826667-10.24-13.653333-10.24-23.893334 0-95.573333-75.093333-170.666667-170.666667-170.666666s-170.666667 75.093333-170.666667 170.666666v6.826667c81.92 23.893333 136.533333 95.573333 136.533334 180.906667 0 13.653333-6.826667 23.893333-17.066667 30.72-10.24 6.826667-23.893333 6.826667-34.133333 0-10.24-6.826667-17.066667-17.066667-17.066667-30.72 0-64.853333-54.613333-119.466667-119.466667-119.466667S170.666667 566.613333 170.666667 631.466667 225.28 750.933333 290.133333 750.933333H716.8zM296.96 819.2c-102.4 3.413333-187.733333-75.093333-194.56-177.493333-3.413333-102.4 75.093333-191.146667 177.493333-194.56 0-126.293333 95.573333-228.693333 221.866667-238.933334 122.88-6.826667 232.106667 81.92 249.173333 208.213334 105.813333 17.066667 180.906667 112.64 170.666667 218.453333-10.24 102.4-98.986667 184.32-204.8 184.32H296.96z",fill:s.color,"p-id":"8044"},null,8,s5)]))}}),l5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},i5=["fill"],r5=X({__name:"setting",props:{color:{type:String,default:"#0a0a0a"}},setup(s){return(t,n)=>(i(),d("svg",l5,[e("path",{d:"M680.64 960a61.184 61.184 0 0 1-44.864-19.072c-14.72-16.192-61.568-58.24-99.84-58.24-38.016 0-85.504 42.24-99.2 57.088a61.184 61.184 0 0 1-67.328 14.08l-1.28-0.448-116.352-65.088-1.152-0.832a55.872 55.872 0 0 1-18.752-67.456c0.064-0.192 10.752-24.768 10.752-47.232a123.52 123.52 0 0 0-123.392-123.328h-4.864c-19.52 0-35.392-17.28-40.448-44.096C73.6 603.2 64 552.384 64 512.384c0-40.064 9.536-90.88 9.92-92.992 5.12-27.136 21.376-44.544 41.152-44.096h4.16A123.52 123.52 0 0 0 242.56 251.904c0-22.4-10.688-46.976-10.816-47.232a55.68 55.68 0 0 1 18.944-67.392l1.216-0.832L374.72 68.992l1.28-0.576a62.336 62.336 0 0 1 67.2 13.888c14.528 15.296 60.48 54.848 97.664 54.848 36.8 0 82.496-38.784 96.96-53.76a62.336 62.336 0 0 1 67.264-13.44l1.28 0.64 118.592 65.92 1.152 0.768a55.808 55.808 0 0 1 18.816 67.456c-0.064 0.192-10.752 24.768-10.752 47.168a123.52 123.52 0 0 0 123.392 123.392h4.096c19.84-0.448 36.096 16.96 41.216 44.096 0.384 2.112 9.92 52.928 9.92 92.992 0 40-9.536 90.88-9.92 92.992-5.12 27.136-21.376 44.48-41.216 44.096h-4.096A123.52 123.52 0 0 0 834.176 772.8c0 22.4 10.688 47.04 10.752 47.232a55.808 55.808 0 0 1-18.816 67.456l-1.216 0.832-120.64 66.624-1.28 0.576a56.32 56.32 0 0 1-22.4 4.48z m-3.648-56.832a7.68 7.68 0 0 0 3.84 0.96l112.704-62.336c-2.688-6.272-15.168-36.992-15.168-68.928a179.456 179.456 0 0 1 169.856-179.008c1.344-7.552 8.768-49.792 8.768-81.472 0-31.68-7.424-73.92-8.768-81.472a179.456 179.456 0 0 1-169.856-179.008c0-32 12.48-62.72 15.168-68.992L682.688 121.28h-0.448c-1.92 0-3.648 0.64-4.288 1.088-1.856 1.92-17.92 18.24-40.96 34.432-34.24 24.064-66.56 36.224-96.064 36.224-29.888 0-62.464-12.416-96.832-36.928a313.792 313.792 0 0 1-41.216-35.072 8.832 8.832 0 0 0-4.736-1.152l-114.816 63.104c2.752 6.4 15.168 36.992 15.168 68.928A179.456 179.456 0 0 1 128.64 430.912c-1.344 7.552-8.768 49.792-8.768 81.472 0 31.68 7.424 73.92 8.768 81.408A179.456 179.456 0 0 1 298.496 772.8c0 32.128-12.544 62.912-15.232 69.12L392 902.72a7.68 7.68 0 0 0 3.84-0.896c2.048-2.24 18.304-19.456 41.6-36.608 34.944-25.536 68.032-38.464 98.56-38.464 30.72 0 64.064 13.184 99.2 39.232 23.488 17.472 39.744 34.944 41.792 37.184zM536.32 676.032a164.48 164.48 0 0 1-164.288-164.288A164.48 164.48 0 0 1 536.32 347.52a164.48 164.48 0 0 1 164.352 164.288A164.48 164.48 0 0 1 536.32 676.096z m0-272.64c-59.776 0-108.352 48.64-108.352 108.352 0 59.776 48.64 108.416 108.352 108.416 59.84 0 108.416-48.64 108.416-108.416 0-59.776-48.64-108.416-108.416-108.416z",fill:s.color,"p-id":"4508"},null,8,i5)]))}}),c5={class:"app-container_samba"},d5={key:0,class:"sambas-item"},u5={class:"sambas-item_name"},v5={class:"sambas-item_value"},p5={class:"sambas-item"},h5={class:"sambas-item_name tit"},m5={class:"sambas-item_value tit"},f5={class:"samba-item"},b5=["data-label"],g5=["title","data-label"],_5=["href"],y5=X({__name:"samba",props:{sambas:{type:Array}},setup(s){const{$gettext:t}=Ae(),n=window.location.hostname;return(l,u)=>{var c;return i(),d("ul",c5,[s.sambas?(i(),d("li",d5,[e("div",u5,[e("span",null,a(o(t)("当前状态:")),1)]),e("div",v5,[e("span",null,a((c=s.sambas)!=null&&c.length?o(t)("已启用"):o(t)("未启用")),1)])])):T("",!0),e("li",p5,[e("div",h5,[e("span",null,a(o(t)("地址")),1)]),e("div",m5,[e("span",null,a(o(t)("目录")),1)])]),(i(!0),d(V,null,oe(s.sambas,r=>(i(),d("li",f5,[e("div",{class:"samba-item_name","data-label":o(t)("地址")},[e("span",null,"smb://"+a(o(n))+"/"+a(r.shareName),1)],8,b5),e("div",{class:"samba-item_value",title:r.path,"data-label":o(t)("目录")},[e("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+r.path},a(r.path),9,_5)],8,g5)]))),256))])}}}),k5=le(y5,[["__scopeId","data-v-da89cb4d"]]),w5={class:"webdav-item"},$5={class:"webdav-item_name"},C5={class:"webdav-item_value"},S5={key:0,class:"webdav-item"},x5={class:"webdav-item_name"},P5={class:"webdav-item_value"},T5=["href"],M5={key:1,class:"webdav-item"},E5={class:"webdav-item_name"},I5={class:"webdav-item_value"},D5=["href"],L5=X({__name:"webdav",props:{webdav:{type:Object}},setup(s){const{$gettext:t}=Ae(),n=s,l=R(()=>{var u;return`http://${location.hostname}:${((u=n.webdav)==null?void 0:u.port)||"8080"}`});return(u,c)=>{var r,p,v,h,g;return i(),d(V,null,[e("li",w5,[e("div",$5,[e("span",null,a(o(t)("当前状态:")),1)]),e("div",C5,[e("span",null,a((r=s.webdav)!=null&&r.path?o(t)("已启用"):o(t)("未启用")),1)])]),(p=s.webdav)!=null&&p.path?(i(),d("li",S5,[e("div",x5,[e("span",null,a(o(t)("挂载路径:")),1)]),e("div",P5,[e("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+((v=s.webdav)==null?void 0:v.path)},a((h=s.webdav)==null?void 0:h.path),9,T5)])])):T("",!0),(g=s.webdav)!=null&&g.path?(i(),d("li",M5,[e("div",E5,[e("span",null,a(o(t)("服务路径:")),1)]),e("div",I5,[e("a",{href:l.value,target:"_blank",rel:"noopener noreferrer"},a(l.value),9,D5)])])):T("",!0)],64)}}}),A5=le(L5,[["__scopeId","data-v-714283d0"]]),N5={class:"disk-item"},O5={class:"disk-item_f"},z5={class:"disk-item_venderModel"},q5={class:"disk-item_used"},R5={class:"disk-item-r"},V5={class:"disk-children"},B5=["onClick"],U5={key:0},F5={key:1},H5=X({__name:"item",props:{disk:{type:Object,required:!0},currDisk:{type:Object},currMountPoint:{type:Object},onDisk:{type:Function,required:!0}},setup(s){var r,p;const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(!1);l.currDisk!=null&&((r=l.currDisk)==null?void 0:r.venderModel)==((p=l.disk)==null?void 0:p.venderModel)&&(u.value=!0);const c=v=>{u.value=!u.value,l.onDisk(v,null)};return(v,h)=>{var g;return i(),d("ul",N5,[e("li",{class:_e(["disk-info",{on:s.disk.venderModel==((g=s.currDisk)==null?void 0:g.venderModel),nopoint:s.disk.childrens==null||s.disk.childrens.length==0}]),onClick:h[0]||(h[0]=b=>c(s.disk))},[h[1]||(h[1]=e("div",{class:"disk-item_icon"},[e("svg",{t:"1642563338465",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2216",width:"128",height:"128"},[e("path",{d:"M998.4 711.68l-119.467-512c-6.826-42.667-42.666-75.093-87.04-76.8H232.107c-44.374 1.707-80.214 35.84-87.04 78.507L25.6 711.68c-5.12 13.653-6.827 29.013-6.827 42.667 0 76.8 63.147 139.946 141.654 139.946H865.28c78.507 0 141.653-63.146 141.653-139.946 0-13.654-3.413-29.014-8.533-42.667zM394.24 366.933c1.707-51.2 56.32-92.16 124.587-92.16S640 315.733 640 365.227c44.373-1.707 81.92 23.893 83.627 58.026s-34.134 63.147-78.507 64.854h-6.827l-245.76 1.706c-44.373 0-80.213-27.306-80.213-59.733 0-35.84 37.547-63.147 81.92-63.147z m471.04 459.094H160.427c-39.254 0-69.974-30.72-69.974-69.974s32.427-69.973 69.974-69.973H865.28c39.253 0 69.973 30.72 69.973 69.973 1.707 37.547-30.72 69.974-69.973 69.974z m-35.84-92.16c-11.947 0-22.187 8.533-23.893 20.48 0 11.946 8.533 22.186 20.48 23.893h3.413c11.947 0 22.187-10.24 22.187-22.187 0-13.653-8.534-22.186-22.187-22.186z m-46.08 22.186c0-25.6 20.48-46.08 46.08-46.08s46.08 20.48 46.08 46.08-20.48 46.08-46.08 46.08-46.08-20.48-46.08-46.08z","p-id":"2217"})])],-1)),e("div",O5,[e("div",z5,a(s.disk.venderModel),1),e("div",q5,a(s.disk.used)+"/"+a(s.disk.size),1)]),h[2]||(h[2]=e("div",{class:"auto"},null,-1)),e("div",R5,a(s.disk.path),1)],2),W(e("div",V5,[(i(!0),d(V,null,oe(s.disk.childrens,b=>{var m,f;return i(),d("li",{class:_e(["disk-children_item",{on:b.uuid==((m=s.currMountPoint)==null?void 0:m.uuid)&&b.path==((f=s.currMountPoint)==null?void 0:f.path)}]),onClick:k=>s.onDisk(s.disk,b)},[h[3]||(h[3]=e("div",{class:"disk-item_icon"},[e("svg",{t:"1642563581459",class:"icon",viewBox:"0 0 1228 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7132",width:"128",height:"128"},[e("path",{d:"M525.2096 145.3568c1.9968-45.568-35.6864-99.1232-57.4976-99.1232H57.4976C15.872 79.9232 17.8176 145.408 17.8176 145.408h507.392z",fill:"#ECC049","p-id":"7133"}),e("path",{d:"M21.8112 143.36L19.8144 825.1392c0 75.3152 75.3152 152.576 150.6304 152.576h887.9104c75.264 0 150.6304-75.264 150.6304-152.576V297.984c0-75.264-75.3152-152.576-150.6304-152.576h-434.0224L21.8112 143.36z",fill:"#FFD658","p-id":"7134"})])],-1)),b.mountPoint?(i(),d("span",U5," 【"+a(b.filesystem)+"】 "+a(b.mountPoint)+" ("+a(b.used)+"/"+a(b.total)+") ["+a(b.uuid)+"] ",1)):(i(),d("span",F5," 【"+a(b.filesystem)+"】 "+a(b.mountPoint||b.path||o(t)("未挂载磁盘"))+" ["+a(b.uuid)+"] ",1))],10,B5)}),256))],512),[[Bs,u.value]])])}}}),ql=le(H5,[["__scopeId","data-v-9144a2f1"]]),G5={class:"action list"},j5={class:"action-header"},W5={class:"action-header_title"},J5={class:"action-body"},K5={class:"disk-list"},Z5={class:"action-msg"},Y5={href:"/cgi-bin/luci/admin/system/diskman"},Q5={class:"action-footer"},X5=X({__name:"index",props:{Cancel:{type:Function},Next:{type:Function},Close:{type:Function}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(!0),c=Xe({disks:[],raids:[]});B(null,null,function*(){const k=yield Promise.all([we.Nas.Disk.Status.GET(),we.Raid.List.GET()]);try{if(k[0]){const $=k[0];$!=null&&$.data.result&&(c.disks=($==null?void 0:$.data.result.disks)||[])}if(k[1]){const $=k[1];$.data.result&&(c.raids=$.data.result.disks||[])}}catch($){ne.Warning($)}});const p=x(),v=x(),h=(k,$)=>{p.value=k,v.value=$},g=()=>{l.Close&&l.Close()},b=()=>{l.Cancel&&l.Cancel(),g()},m=k=>{l.Next&&l.Next(k),g()},f=()=>{if(p.value==null){ne.Warning(t("请选择目标硬盘"));return}if(p.value.childrens!=null&&p.value.childrens.length>0&&v.value==null){ne.Warning(t("请选择硬盘分区"));return}if(v.value!=null&&(v.value.mountPoint==null||v.value.mountPoint=="")){ne.Warning(t("该分区尚未挂载,请先去挂载"));return}u.value=!1,Xo({action:"nas",disk:p.value,mount:v.value,Cancel:()=>{u.value=!0},Next:k=>{m(k)}})};return(k,$)=>u.value?(i(),Y(Nt,{key:0,type:1},{default:pe(()=>[G(fn,{name:"rotate",mode:"out-in"},{default:pe(()=>[e("div",G5,[e("div",j5,[e("div",W5,a(o(t)("请选择一个硬盘或分区")),1)]),e("div",J5,[e("div",K5,[(i(!0),d(V,null,oe(c.disks,w=>(i(),Y(ql,{disk:w,onDisk:h,currDisk:p.value,currMountPoint:v.value},null,8,["disk","currDisk","currMountPoint"]))),256)),(i(!0),d(V,null,oe(c.raids,w=>(i(),Y(ql,{disk:w,onDisk:h,currDisk:p.value,currMountPoint:v.value},null,8,["disk","currDisk","currMountPoint"]))),256))])]),e("div",Z5,[e("span",null,[ue(a(o(t)("想要更精确的配置?请前往"))+" ",1),e("a",Y5,a(o(t)("高级设置")),1)])]),e("div",Q5,[$[0]||($[0]=e("div",{class:"auto"},null,-1)),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:b,type:"button"},a(o(t)("返回")),1),e("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:f,type:"button"},a(o(t)("下一步")),1)])])]),_:1})]),_:1})):T("",!0)}}),em=le(X5,[["__scopeId","data-v-e55e171a"]]),tm=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(em,Ne(ye({},s),{Close:()=>{l()}}));n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},nm={class:"action"},am={class:"action-body"},sm={class:"title"},om={class:"info"},lm=["href"],im={class:"btns"},rm=X({__name:"index",props:{Close:Function},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(""),c=R(()=>`http://${location.hostname}:${u.value}`);we.Nas.Linkease.Enable.POST().then(v=>{var h,g;(h=v==null?void 0:v.data)!=null&&h.result&&(u.value=((g=v.data.result)==null?void 0:g.port)||"")});const p=()=>{l.Close&&l.Close(),location.reload()};return(v,h)=>(i(),Y(Nt,{type:1},{default:pe(()=>[G(fn,{name:"rotate",mode:"out-in"},{default:pe(()=>[e("div",nm,[e("div",am,[h[0]||(h[0]=e("div",{class:"icon"},[e("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[e("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})])],-1)),e("h2",sm,a(o(t)("服务已启动")),1),e("div",om,[e("span",null,a(o(t)("前往")),1),e("a",{href:c.value,target:"_blank",rel:"noopener noreferrer"},a(c.value),9,lm),e("span",null,a(o(t)("继续配置")),1)]),e("div",im,[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:p},a(o(t)("关闭")),1)])])])]),_:1})]),_:1}))}}),cm=le(rm,[["__scopeId","data-v-6a8f7fd7"]]),dm=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(cm,Ne(ye({},s),{Close:()=>{l()}}));n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},um={class:"action-header"},vm={class:"action-header_title"},pm={class:"action-body"},hm={class:"label-item"},mm={class:"label-item_key"},fm={class:"label-item_value"},bm=["value"],gm={class:"label-item"},_m={class:"label-item_key"},ym={class:"label-item_value"},km=["placeholder"],wm={class:"label-item"},$m={class:"label-item_key"},Cm={class:"label-item_value"},Sm=["placeholder"],xm={class:"label-item"},Pm={class:"label-item_key"},Tm={class:"label-item_value"},Mm={class:"protocol-item"},Em={class:"protocol-item_key"},Im={class:"protocol-item_value"},Dm={class:"action-footer"},Lm=["disabled"],Am=["disabled"],Nm=X({__name:"index",props:{rootPath:{type:String,required:!0},Close:Function},setup(s){const t=Zs(),{$gettext:n}=Ae(),l=s,u=m=>{m.preventDefault(),l.Close&&l.Close()},c=x(!1),r=x({shareName:"",username:"",password:"",rootPath:l.rootPath,samba:!0,webdav:!0}),p=m=>m==""?(ne.Warning(n("共享名称不能为空")),!1):m.length>15?(ne.Warning(n("共享名称不能超过15个字符")),!1):/^[a-z][a-z0-9_-]*$/.test(m)?!0:(ne.Warning(n("共享名称需以小写字母开头,仅支持小写字母、数字、下划线和中划线")),!1),v=()=>B(null,null,function*(){if(c.value)return;const m=r.value;if(m.rootPath==""){ne.Warning(n("共享路径不能为空"));return}if(!p(m.shareName))return;if(m.username==""){ne.Warning(n("用户名不能为空"));return}if(m.password==""){ne.Warning(n("密码不能为空"));return}if(!m.samba&&!m.webdav){ne.Warning(n("请至少选择一种共享协议"));return}const f=Fn.checkSmabaUserName(m.username);if(f!==!0){ne.Warning(`${f}`);return}yield b(m)}),h=m=>{var k;const f=(k=m==null?void 0:m.data)==null?void 0:k.error;if(f)throw f},g=(m,f)=>{const k=m.map(w=>ye({},w)),$=k.find(w=>w.userName==f);return $?($.ro=!1,$.rw=!0):k.push({userName:f,rw:!0}),k},b=m=>B(null,null,function*(){var $,w,S,C;c.value=!0;const f=ne.Loading(n("创建中..."));let k=!1;try{const y=yield we.Share.Service.List.GET();h(y);const _=(((w=($=y==null?void 0:y.data)==null?void 0:$.result)==null?void 0:w.services)||[]).find(N=>N.name==m.shareName);if(_&&_.path!=m.rootPath){ne.Warning(n("共享名称已存在且路径不同,请更换共享名"));return}const D=m.username,E=yield we.Share.User.List.GET();h(E);const U=(((C=(S=E==null?void 0:E.data)==null?void 0:S.result)==null?void 0:C.users)||[]).find(N=>N.userName==D);if(U)U.password&&U.password!=m.password&&ne.Warning(n("用户名已存在,将复用原密码"));else{const N={userName:D,password:m.password},F=yield we.Share.User.Create.POST(N);h(F)}const q={name:m.shareName,path:m.rootPath,samba:!!(_!=null&&_.samba||m.samba),webdav:!!(_!=null&&_.webdav||m.webdav),users:_?g(_.users||[],D):[{userName:D,rw:!0}]},z=_?yield we.Share.Service.Update.POST(q):yield we.Share.Service.Create.POST(q);h(z),ne.Success(n("创建成功")),k=!0,t(()=>{location.reload()},1e3)}catch(y){ne.Error(y)}finally{f.Close(),k||(c.value=!1)}});return(m,f)=>(i(),Y(Nt,{type:1},{default:pe(()=>[G(fn,{name:"rotate",mode:"out-in"},{default:pe(()=>[e("form",{class:"action",onSubmit:Ge(v,["prevent"])},[e("div",um,[e("div",vm,a(o(n)("局域网文件共享配置")),1)]),e("div",pm,[e("div",hm,[e("div",mm,[e("span",null,a(o(n)("服务目录路径")),1)]),e("div",fm,[e("input",{type:"text",value:r.value.rootPath,disabled:"",required:"",style:{backgroundColor:"#eee"}},null,8,bm)])]),e("div",gm,[e("div",_m,[e("span",null,a(o(n)("共享名(建议使用英文字母)")),1)]),e("div",ym,[W(e("input",{type:"text","onUpdate:modelValue":f[0]||(f[0]=k=>r.value.shareName=k),required:"",placeholder:o(n)("共享名称")},null,8,km),[[Oe,r.value.shareName,void 0,{trim:!0}]])])]),e("div",wm,[e("div",$m,[e("span",null,a(o(n)("用户名")),1)]),e("div",Cm,[W(e("input",{type:"text",required:"",placeholder:o(n)("账号用户名"),"onUpdate:modelValue":f[1]||(f[1]=k=>r.value.username=k)},null,8,Sm),[[Oe,r.value.username,void 0,{trim:!0}]])])]),e("div",xm,[e("div",Pm,[e("span",null,a(o(n)("密码")),1)]),e("div",Tm,[W(e("input",{type:"password","onUpdate:modelValue":f[2]||(f[2]=k=>r.value.password=k),required:""},null,512),[[Oe,r.value.password,void 0,{trim:!0}]])])]),e("div",Mm,[e("div",Em,a(o(n)("共享协议")),1),e("div",Im,[e("label",null,[W(e("input",{type:"checkbox","onUpdate:modelValue":f[3]||(f[3]=k=>r.value.samba=k)},null,512),[[gt,r.value.samba]]),e("span",null,a(o(n)("Samba")),1)]),e("label",null,[W(e("input",{type:"checkbox","onUpdate:modelValue":f[4]||(f[4]=k=>r.value.webdav=k)},null,512),[[gt,r.value.webdav]]),e("span",null,a(o(n)("WebDAV")),1)])])])]),e("div",Dm,[f[5]||(f[5]=e("div",{class:"auto"},null,-1)),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:u,disabled:c.value},a(o(n)("关闭")),9,Lm),e("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:c.value},a(o(n)("创建")),9,Am)])],32)]),_:1})]),_:1}))}}),Om=le(Nm,[["__scopeId","data-v-b209fad6"]]),zm=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(Om,Ne(ye({},s),{Close:()=>{l()}}));n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},qm=s=>!Array.isArray(window.quickstart_features)||window.quickstart_features.indexOf(s)!=-1,Rm={key:0,class:"action"},Vm={class:"title"},Bm={class:"desc"},Um={value:"linkease"},Fm={value:"unishare"},Hm=["innerHTML"],Gm={class:"btns"},jm=["disabled"],Wm=X({__name:"index",props:{setup:Number,Close:{type:Function,required:!0}},setup(s){const{$gettext:t}=Ae(),n=s,l=x(!0),u=x("unishare"),c=x(!1),r=x(n.setup||0),p=()=>{n.Close&&n.Close()},v=()=>B(null,null,function*(){switch(u.value){case"unishare":yield g();break;case"linkease":yield h();break}}),h=()=>B(null,null,function*(){c.value=!0,(yield Xt.checkAndInstallApp("linkease",t("易有云"),"app-meta-linkease"))&&m(),c.value=!1}),g=()=>B(null,null,function*(){c.value=!0;const k=[{pkg:"luci-app-unishare",app:t("统一文件共享")},{pkg:"unishare",app:"UniShare"},{pkg:"samba4-server",app:"Samba"},{pkg:"webdav2",app:"WebDAV"}];for(const $ of k)if(!(yield Xt.checkAndInstallApp($.pkg,$.app))){c.value=!1;return}b(),c.value=!1}),b=()=>{c.value=!1,l.value=!1,tm({Cancel:()=>{l.value=!0},Next:k=>{u.value==="unishare"&&f(k)}})},m=()=>{dm({}),p()},f=k=>{zm({rootPath:k}),p()};return(k,$)=>l.value?(i(),Y(Nt,{key:0,Close:s.Close,type:1},{default:pe(()=>[G(fn,{name:"rotate",mode:"out-in"},{default:pe(()=>[r.value==0?(i(),d("div",Rm,[e("h2",Vm,a(o(t)("欢迎使用 NAS 配置向导")),1),e("h3",Bm,a(o(t)("请选择需要添加的NAS服务")),1),e("form",null,[e("label",null,[W(e("select",{"onUpdate:modelValue":$[0]||($[0]=w=>u.value=w)},[e("option",Um,a(o(t)("跨设备共享(易有云)")),1),e("option",Fm,a(o(t)("局域网文件共享(Samba + WebDAV)")),1)],512),[[Be,u.value]])])]),o(qm)("unishare")?(i(),d("div",{key:0,class:"tips",innerHTML:o(t)("如需对 Samba 或 WebDAV 进行更细致的权限控制,请使用“%{unishare}”",{unishare:''+o(t)("统一文件共享")+""},!0)},null,8,Hm)):T("",!0),e("div",Gm,[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:v,type:"button",disabled:c.value},a(o(t)("下一步")),9,jm),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:p,type:"button"},a(o(t)("取消")),1)])])):T("",!0)]),_:1})]),_:1},8,["Close"])):T("",!0)}}),Jm=le(Wm,[["__scopeId","data-v-a0cd5b5e"]]);function Qs(s,t={}){const v=t,{onClosed:n}=v,l=kl(v,["onClosed"]),u=document.createElement("div");document.body.appendChild(u);let c=!1;const r=cn(s,Ne(ye({},l),{Close:p}));function p(){c||(c=!0,r.unmount(),u.remove(),n==null||n())}try{r.mount(u)}catch(h){throw u.remove(),h}return{Close:p}}const Li=s=>Qs(Jm,s),Km={class:"app-container_linkease"},Zm={class:"linkease-item"},Ym={class:"linkease-item_name"},Qm={class:"linkease-item_value"},Xm={key:0,class:"configure"},ef={key:0,class:"linkease-item"},tf={class:"linkease-item_name"},nf={class:"linkease-item_value"},af=["href"],sf={href:"https://www.linkease.com",target:"_blank"},of=X({__name:"linkease",props:{linkease:{type:Object}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=R(()=>{var r;return`http://${location.hostname}:${(r=l.linkease)==null?void 0:r.port}`}),c=()=>{Li({setup:0})};return(r,p)=>{var v,h,g;return i(),d("ul",Km,[e("li",Zm,[e("div",Ym,[e("span",null,a(o(t)("当前状态:")),1)]),e("div",Qm,[(v=s.linkease)!=null&&v.enabel?(i(),d("span",Xm,a(o(t)("已配置")),1)):(i(),d("span",{key:1,class:"configure enabel",onClick:p[0]||(p[0]=b=>c())},a(o(t)("未配置")),1))])]),(h=s.linkease)!=null&&h.enabel?(i(),d(V,{key:0},[(g=s.linkease)!=null&&g.port?(i(),d("li",ef,[e("div",tf,[e("span",null,a(o(t)("服务地址:")),1)]),e("div",nf,[e("a",{href:u.value,target:"_blank",rel:"noopener noreferrer"},a(u.value),9,af)])])):T("",!0)],64)):T("",!0),e("div",null,[e("a",sf,a(o(t)("下载易有云客户端,随时随地相册备份、远程访问")),1)])])}}}),lf=le(of,[["__scopeId","data-v-e3dffc59"]]),rf={href:"/cgi-bin/luci/admin/nas/unishare"},cf={class:"content"},df={class:"tab"},uf=["aria-pressed"],vf={class:"title"},pf={key:0},hf={key:1},mf=["aria-pressed"],ff=["aria-pressed"],bf=X({__name:"index",setup(s){const t=Ys(),{$gettext:n}=Ae(),l=x(),u=ic(),c=x(!1),r=()=>{we.Nas.Service.Status.GET().then(f=>{var k;if((k=f==null?void 0:f.data)!=null&&k.result){const $=f.data.result;l.value=$,g(),$.webdav&&(u.webdav=$.webdav)}})},p=()=>{t(Li,{setup:0})},v=x(0),h=x(!1),g=()=>{var $,w,S,C,y,P;if(h.value)return;const k=[!!((w=($=l.value)==null?void 0:$.linkease)!=null&&w.enabel),!!((C=(S=l.value)==null?void 0:S.sambas)!=null&&C.length),!!((P=(y=l.value)==null?void 0:y.webdav)!=null&&P.path)].findIndex(Boolean);v.value=k===-1?0:k},b=f=>{v.value=f,h.value=!0},m=qa();return fa("sharing",f=>{var k;l.value=m!=null&&m.bounded()?Ne(ye({},f),{sambas:(k=f.sambas)==null?void 0:k.slice(0,2)}):f,g(),f.webdav&&(u.webdav=f.webdav)})||r(),(f,k)=>(i(),Y(ya,{"home-menu":[{label:o(n)("统一共享高级配置"),href:"/cgi-bin/luci/admin/nas/unishare"}],title:o(n)("存储服务"),style:{width:"100%",height:"100%",display:"block"},"is-settings-menu-open":c.value,"onUpdate:isSettingsMenuOpen":k[3]||(k[3]=$=>c.value=$)},{icon:pe(()=>[G(n5,{color:"#4f39f6",class:"icon"})]),settings:pe(()=>[e("button",{type:"button",class:"btn_settings",onClick:p},[G(r5,{color:"#0a0a0a",class:"icon1 settings-icon",style:{"margin-right":"6px"}}),e("span",null,a(o(n)("存储配置")),1)])]),"settings-menu":pe(()=>[e("div",null,[e("a",rf,a(o(n)("统一共享高级配置")),1)])]),default:pe(()=>{var $,w,S,C,y,P,_,D,E;return[e("div",cf,[e("div",df,[e("button",{type:"button","aria-pressed":v.value==0,class:_e(["item cloud",{active:v.value==0}]),onClick:k[0]||(k[0]=A=>b(0))},[G(o5,{color:"#155dfc",class:"icon2"}),e("div",vf,a(o(n)("易有云")),1),(w=($=l.value)==null?void 0:$.linkease)!=null&&w.enabel?(i(),d("span",pf,a(o(n)("已配置")),1)):(i(),d("span",hf,a(o(n)("未配置")),1))],10,uf),e("button",{type:"button","aria-pressed":v.value==1,class:_e(["item memory",{active:v.value==1}]),onClick:k[1]||(k[1]=A=>b(1))},[G(Ei,{color:"#0bab47",class:"icon2"}),k[4]||(k[4]=e("div",{class:"title"},"SAMBA",-1)),e("span",null,a((C=(S=l.value)==null?void 0:S.sambas)!=null&&C.length?o(n)("已启用"):o(n)("未启用")),1)],10,mf),e("button",{type:"button","aria-pressed":v.value==2,class:_e(["item network",{active:v.value==2}]),onClick:k[2]||(k[2]=A=>b(2))},[G(zs,{color:"#9810fa",class:"icon2"}),k[5]||(k[5]=e("div",{class:"title"},"WEBDAV",-1)),e("span",null,a((P=(y=l.value)==null?void 0:y.webdav)!=null&&P.path?o(n)("已启用"):o(n)("未启用")),1)],10,ff)]),v.value==0?(i(),Y(lf,{key:0,linkease:(_=l.value)==null?void 0:_.linkease},null,8,["linkease"])):v.value==1?(i(),Y(k5,{key:1,sambas:(D=l.value)==null?void 0:D.sambas},null,8,["sambas"])):v.value==2?(i(),Y(A5,{key:2,webdav:(E=l.value)==null?void 0:E.webdav},null,8,["webdav"])):T("",!0)])]}),_:1},8,["home-menu","title","is-settings-menu-open"]))}}),gf=le(bf,[["__scopeId","data-v-15d076d8"]]),_f={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},yf=["fill"],Rl=X({__name:"docker",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",_f,[e("path",{d:"M473.950316 63.164632l488.070737 234.226526v414.234947l-337.92 200.111158-502.837895-295.019789V223.447579l352.687158-160.282947zM200.434526 306.661053V571.284211l383.892211 225.28V510.113684L200.434526 306.661053z m682.253474 82.728421l-219.082105 120.400842v286.396631l219.082105-129.670736V389.335579z m-409.761684-238.753685L258.910316 247.915789l364.759579 193.374316 212.075789-116.520421-362.819368-174.08z",fill:s.color,"p-id":"6174"},null,8,yf)]))}}),kf={class:"app-container_docker service-docker"},wf={class:"docker-item"},$f={class:"docker-item_name"},Cf={key:0,class:"docker-item_value"},Sf={key:0,class:"docker-item_value"},xf={class:"configure"},Pf={key:1,class:"docker-item_value"},Tf={class:"input-switch"},Mf=["aria-label","value","disabled"],Ef={key:0,class:"status-icon"},If={key:1,class:"status-icon",style:{background:"#e9ebef",color:"#4a5565"}},Df={key:0,class:"content service-root"},Lf={class:"docker-item_name"},Af={class:"docker_box"},Nf={class:"path"},Of={key:0},zf={class:"tooltip-trigger"},qf={class:"docker_tip"},Rf={class:"tooltip-text tooltip-top"},Vf={class:"docker_dir_tip"},Bf=X({__name:"status",props:{docker:{type:Object}},setup(s){var v;const{$gettext:t,$ngettext:n}=Ae(),l=(h,g)=>window.vue_lang==="en"?g:h,u=s,c=R(()=>{var h;return((h=u.docker)==null?void 0:h.status)!="not installed"}),r=Xe({enable:((v=u.docker)==null?void 0:v.status)=="running",disabled:!1}),p=()=>B(null,null,function*(){r.disabled=!0;try{const h=yield we.Guide.DockerSwitch.POST({enable:r.enable});if(h!=null&&h.data){const{success:g,error:b}=h.data;if(b)throw r.enable=!r.enable,b;(g||0)==0}}catch(h){ne.Warning(`${h}`)}finally{r.disabled=!1}});return(h,g)=>{var b,m,f,k;return i(),d("ul",kf,[e("li",wf,[e("div",$f,[e("span",null,a(l("运行状态","Status")),1)]),["running","stopped","not installed"].includes(((b=u.docker)==null?void 0:b.status)||"")?(i(),d(V,{key:1},[c.value?(i(),d("div",Pf,[e("label",Tf,[W(e("input",{type:"checkbox",class:"docker-switch-input",role:"switch","aria-label":l("启用 Docker","Enable Docker"),value:!r.enable,"onUpdate:modelValue":g[0]||(g[0]=$=>r.enable=$),disabled:r.disabled,onChange:p},null,40,Mf),[[gt,r.enable]]),e("span",{class:_e(r.enable?"enable":"close")},[...g[1]||(g[1]=[e("em",null,null,-1)])],2)]),r.enable?(i(),d("span",Ef,a(o(t)("运行中")),1)):T("",!0),r.enable?T("",!0):(i(),d("span",If,a(l("未运行","Stopped")),1))])):(i(),d("div",Sf,[e("span",xf,a(o(t)("未安装")),1)]))],64)):(i(),d("div",Cf,a(l("状态未知","Unknown")),1))]),((m=s.docker)==null?void 0:m.status)=="running"?(i(),d("li",Df,[e("div",Lf,[e("span",null,a(l("根目录","Root directory")),1)]),e("div",Af,[e("div",Nf,a((f=s.docker)==null?void 0:f.path),1),(k=s.docker)!=null&&k.errorInfo?(i(),d("span",Of,[e("span",zf,[e("span",qf,[G(Sn)]),e("div",null,[e("div",Rf,[e("span",Vf,a(s.docker.errorInfo),1)])])])])):T("",!0)])])):T("",!0)])}}}),Uf=le(Bf,[["__scopeId","data-v-9874651a"]]),Ff={},Hf={width:"128px",height:"128px",viewBox:"0 0 128 128",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function Gf(s,t){return i(),d("svg",Hf,[...t[0]||(t[0]=[e("g",{id:"icon_yellow",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e("g",{id:"Icon/Warning"},[e("rect",{id:"矩形",fill:"#000000","fill-rule":"nonzero",opacity:"0",x:"0",y:"0",width:"128",height:"128"}),e("path",{d:"M64,8 C33.075,8 8,33.075 8,64 C8,94.925 33.075,120 64,120 C94.925,120 120,94.925 120,64 C120,33.075 94.925,8 64,8 Z M60,37 C60,36.45 60.45,36 61,36 L67,36 C67.55,36 68,36.45 68,37 L68,71 C68,71.55 67.55,72 67,72 L61,72 C60.45,72 60,71.55 60,71 L60,37 Z M64,92 C60.6875,92 58,89.3125 58,86 C58,82.6875 60.6875,80 64,80 C67.3125,80 70,82.6875 70,86 C70,89.3125 67.3125,92 64,92 Z",id:"形状",fill:"#FAAD14"})])],-1)])])}const jf=le(Ff,[["render",Gf]]),Wf={key:0,class:"action"},Jf={class:"title"},Kf={class:"desc"},Zf={class:"roots"},Yf={class:"roots_tit"},Qf={class:"root"},Xf={class:"move"},e7={class:"roots_tit"},t7={key:0},n7={class:"select-editable"},a7={selected:"",value:null},s7=["value"],o7={value:"useInput"},l7=["placeholder"],i7={key:1,class:"tips"},r7={class:"tips_content"},c7={class:"tip"},d7={key:0,class:"btns"},u7={key:1,class:"btns"},v7={key:1,class:"action docker_success"},p7={class:"title"},h7={class:"finished"},m7={class:"successed"},f7={class:"btns"},b7={key:2,class:"action docker_download"},g7={class:"title"},_7={class:"finished"},y7={class:"successed"},k7={class:"docker_moves"},w7={class:"moves change"},$7={for:"move"},C7={class:"moves"},S7={for:"cover"},x7={class:"btns"},P7=X({__name:"index",props:{rootPath:{type:String,required:!0},Close:Function},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=x(),u=x(),c=x(0),r=x("null"),p=x(""),v=x(),h=x(!1),g=x(""),b=s;we.Nas.Disk.Status.GET().then(y=>{y!=null&&y.data.result&&(v.value=y==null?void 0:y.data.result)}),we.Guide.DockerStatus.GET().then(y=>{var P;if((P=y==null?void 0:y.data)!=null&&P.result){const _=y.data.result;l.value=_}}),we.Guide.DockerPartitionList.GET().then(y=>{var P;if((P=y==null?void 0:y.data)!=null&&P.result){const _=y.data.result;u.value=_}});const f=y=>{let P=r.value;if(P=="useInput"&&(P=p.value),P==null||P=="null"||P=="")return;const _=ne.Loading(t("正在迁移中..."));we.Guide.DockerTransfer.POST({path:P,force:y,overwriteDir:!!g.value}).then(D=>{var E;if(D!=null&&D.data){if((D.data.success||0)==0){if((E=D.data.result)!=null&&E.emptyPathWarning){h.value=!0,c.value=2;return}c.value=1;return}else if(D.data.error)throw D.data.error}throw t("未知错误")}).catch(D=>{ne.Error(D)}).finally(()=>_.Close())},k=()=>{h.value=!1,f(!1)},$=y=>{y.preventDefault(),b.Close&&b.Close()},w=y=>{y.preventDefault(),location.reload()},S=y=>{y.preventDefault(),c.value=0},C=y=>{y.preventDefault(),f(!0)};return(y,P)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>{var _,D,E,A,U,q;return[c.value==0?(i(),d("div",Wf,[e("h2",Jf,a(o(t)("Docker迁移向导")),1),e("p",Kf,a(o(t)("当系统根目录空间不足时,可将Docker根目录迁移到外置硬盘,以保证系统的正常运行(目标分区不支持NTFS,FAT等文件系统)")),1),e("div",Zf,[e("span",Yf,a(o(t)("Docker根目录:")),1),e("span",Qf,a((_=l.value)==null?void 0:_.path),1)]),e("div",Xf,[e("span",e7,a(o(t)("迁移到:")),1),(E=(D=u.value)==null?void 0:D.partitionList)!=null&&E.length?(i(),d("div",t7,[e("form",{onSubmit:Ge(k,["prevent"])},[e("label",null,[e("div",n7,[W(e("select",{"onUpdate:modelValue":P[0]||(P[0]=z=>r.value=z)},[e("option",a7,a(o(t)("请选择迁移路径")),1),(i(!0),d(V,null,oe((A=u.value)==null?void 0:A.partitionList,(z,N)=>(i(),d("option",{value:z,key:N},a(z),9,s7))),128)),e("option",o7,a(o(t)("- -自定义- -")),1)],512),[[Be,r.value,void 0,{trim:!0}]]),r.value=="useInput"?W((i(),d("input",{key:0,type:"text","onUpdate:modelValue":P[1]||(P[1]=z=>p.value=z),required:"",placeholder:o(t)("请输入迁移路径")},null,8,l7)),[[Oe,p.value,void 0,{trim:!0}]]):T("",!0)])])],32)])):u.value?(i(),d("div",i7,[e("div",r7,[G(Sn),e("span",c7,a(o(t)("检测到您还没有挂载外置硬盘或分区小于8GB,需要您接上硬盘并格式化或手动挂载硬盘后,再执行Docker迁移向导,将Docker迁移到目标硬盘。")),1)])])):T("",!0)]),(q=(U=u.value)==null?void 0:U.partitionList)!=null&&q.length?(i(),d("div",d7,[e("button",{class:"cbi-button cbi-button-apply",onClick:k},a(o(t)("确定")),1),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:$},a(o(t)("取消")),1)])):(i(),d("div",u7,[e("button",{class:"cbi-button cbi-button-apply",onClick:$},a(o(t)("确定")),1)]))])):c.value==1?(i(),d("div",v7,[e("h2",p7,a(o(t)("Docker迁移向导")),1),e("div",h7,[G(Qo)]),e("p",m7,a(o(t)("迁移成功!")),1),e("div",f7,[e("button",{class:"cbi-button cbi-button-apply",onClick:w},a(o(t)("确定")),1)])])):c.value==2?(i(),d("div",b7,[e("h2",g7,a(o(t)("Docker迁移向导")),1),e("div",_7,[G(jf)]),e("p",y7,a(o(t)("该目标路径不为空")),1),e("div",k7,[e("div",w7,[W(e("input",{type:"radio",id:"move",name:"moves","onUpdate:modelValue":P[2]||(P[2]=z=>g.value=z),value:""},null,512),[[Mt,g.value]]),e("label",$7,a(o(t)("更换目录(不覆盖目标路径,仅将Docker目录修改为目标路径)")),1)]),e("div",C7,[W(e("input",{type:"radio",id:"cover",name:"moves","onUpdate:modelValue":P[3]||(P[3]=z=>g.value=z),value:"true"},null,512),[[Mt,g.value]]),e("label",S7,a(o(t)("覆盖迁移(覆盖目标路径,继续迁移会清空该目标路径下的文件)")),1)])]),e("div",x7,[h.value?(i(),d("button",{key:0,class:"cbi-button cbi-button-apply",onClick:C},a(o(t)("确定")),1)):T("",!0),e("button",{class:"cbi-button cbi-button-apply",onClick:S},a(o(t)("返回")),1),h.value?T("",!0):(i(),d("button",{key:1,class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:w},a(o(t)("取消")),1))])])):T("",!0)]}),_:1},8,["Close"]))}}),T7=le(P7,[["__scopeId","data-v-e4c2ce97"]]),M7=s=>Qs(T7,{onClosed:s==null?void 0:s.onClosed}),E7={href:"/cgi-bin/luci/admin/services/dockerman/overview"},I7={key:0,class:"content"},D7={key:1,class:"content",style:{display:"flex","justify-content":"center"}},L7=X({__name:"Docker",setup(s){const t=Ys(),{$gettext:n}=Ae(),l=x(!1),u=x(),c=x(!1),r=()=>{t(M7,{setup:0})},p=()=>{we.Guide.DockerStatus.GET().then(v=>{var h;if((h=v==null?void 0:v.data)!=null&&h.result){const g=v.data.result;u.value=g}}).finally(()=>{l.value=!0})};if(!fa("docker",v=>{u.value=v,l.value=!0})){const v=setTimeout(p,1100);lt(()=>clearTimeout(v))}return(v,h)=>{var b,m;const g=At("icon-loading");return i(),Y(ya,{"home-menu":((b=u.value)==null?void 0:b.status)==="running"?[{label:o(n)("Docker高级配置"),href:"/cgi-bin/luci/admin/services/dockerman/overview"}]:[],title:"Docker",showSettings:!0,onFooterClick:r,style:{width:"100%",height:"100%",display:"block"},"is-settings-menu-open":c.value,"onUpdate:isSettingsMenuOpen":h[0]||(h[0]=f=>c.value=f)},Pr({icon:pe(()=>[G(Rl,{color:"#155dfc",class:"icon"})]),settings:pe(()=>[e("button",{type:"button",class:"btn_settings",onClick:r},[G(Rl,{color:"#0a0a0a",class:"icon1 dockerIcon",style:{"margin-right":"6px"}}),e("span",null,a(o(n)("数据迁移")),1)])]),default:pe(()=>[l.value?(i(),d("div",I7,[G(Uf,{docker:u.value},null,8,["docker"])])):(i(),d("div",D7,[G(g,{size:40,color:"currentColor"})]))]),_:2},[((m=u.value)==null?void 0:m.status)==="running"?{name:"settings-menu",fn:pe(()=>[e("div",null,[e("a",E7,a(o(n)("Docker高级配置")),1)])]),key:"0"}:void 0]),1032,["home-menu","is-settings-menu-open"])}}}),A7=le(L7,[["__scopeId","data-v-18542fda"]]),zn=s=>s==="running"?"running":s==="stopped"?"stopped":s==="not installed"?"notInstalled":"unknown",Jn=s=>s==="Stopped"?"stopped":s==="Disabled"?"disabled":s!=null&&s.trim()?"configured":"notConfigured",N7={running:["运行中","Running"],stopped:["未运行","Stopped"],notInstalled:["未安装","Not installed"],unknown:["状态未知","Unknown"],configured:["已配置","Configured"],disabled:["未启用","Disabled"],notConfigured:["未配置","Not configured"]},$n=(s,t)=>N7[s][t?1:0];function O7(s,t){const n={stopped:["服务尚未启动,可在下载管理中配置。","The service is stopped. Configure it in Download management."],notInstalled:["尚未安装此服务,可在下载管理中配置。","This service is not installed. Configure it in Download management."],unknown:["尚未取得此服务的状态,可在下载管理中查看。","The service status is unknown. Check Download management."]},l=zn(s);return l==="running"?"":n[l][t?1:0]}const z7={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},q7=["fill"],R7=["fill"],V7=["fill"],Ia=X({__name:"download1",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",z7,[e("path",{d:"M665.6 911.36H358.4c-76.8 0-117.76 0-153.6-20.48-30.72-15.36-56.32-40.96-71.68-71.68-20.48-35.84-20.48-76.8-20.48-153.6v-51.2c0-20.48 15.36-40.96 40.96-40.96s40.96 15.36 40.96 40.96v51.2c0 61.44 0 97.28 10.24 117.76 10.24 15.36 20.48 30.72 40.96 40.96 20.48 10.24 56.32 10.24 117.76 10.24h307.2c61.44 0 97.28 0 117.76-10.24 15.36-10.24 30.72-20.48 40.96-40.96 10.24-20.48 10.24-56.32 10.24-117.76v-51.2c0-20.48 15.36-40.96 40.96-40.96s40.96 15.36 40.96 40.96v51.2c0 76.8 0 117.76-20.48 153.6-15.36 30.72-40.96 56.32-71.68 71.68-35.84 20.48-76.8 20.48-153.6 20.48z","p-id":"4906",fill:s.color},null,8,q7),e("path",{d:"M512 645.12c-10.24 0-15.36 0-20.48-10.24l-204.8-204.8c-10.24-10.24-10.24-30.72 0-46.08s30.72-10.24 46.08 0l184.32 184.32 184.32-184.32c10.24-10.24 30.72-10.24 46.08 0 10.24 10.24 10.24 30.72 0 46.08l-204.8 204.8c-5.12 5.12-15.36 10.24-20.48 10.24z","p-id":"4907",fill:s.color},null,8,R7),e("path",{d:"M512 645.12c-15.36 0-30.72-15.36-30.72-30.72V153.6c0-15.36 15.36-30.72 30.72-30.72s30.72 15.36 30.72 30.72v460.8c0 15.36-15.36 30.72-30.72 30.72z","p-id":"4908",fill:s.color},null,8,V7)]))}}),B7={class:"app-container_aria2"},U7={class:"aria2-item"},F7={class:"aria2-item_name"},H7={class:"aria2-item_value"},G7=["href"],j7={class:"aria2-item"},W7={class:"aria2-item_name"},J7={class:"aria2-item_value"},K7=["href"],Z7={class:"aria2-item"},Y7={class:"aria2-item_name right"},Q7={class:"aria2-item_value"},X7=["href"],e9={class:"use-url_app"},t9={href:"https://doc.linkease.com/zh/guide/linkease_app/tutorial.html#%E8%BF%9C%E7%A8%8B%E4%B8%8B%E8%BD%BD",target:"_blank"},n9=X({__name:"aria2",props:{aria2:{type:Object}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=R(()=>{var r;return`${location.origin}${(r=l.aria2)==null?void 0:r.webPath}`}),c=R(()=>{var v,h,g;let r=(v=l.aria2)==null?void 0:v.rpcToken;r?r=encodeURIComponent(btoa(r)):r="";const p=encodeURIComponent(location.hostname);return`${location.origin}${(h=l.aria2)==null?void 0:h.webPath}/#!/settings/rpc/set/http/${p}/${(g=l.aria2)==null?void 0:g.rpcPort}/jsonrpc/${r}`});return(r,p)=>{var v,h,g;return i(),d("ul",B7,[((v=s.aria2)==null?void 0:v.status)=="running"?(i(),d(V,{key:0},[e("li",U7,[e("div",F7,[e("span",null,a(o(t)("下载目录:")),1)]),e("div",H7,[e("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+((h=s.aria2)==null?void 0:h.downloadPath)},a((g=s.aria2)==null?void 0:g.downloadPath),9,G7)])]),e("li",j7,[e("div",W7,[e("span",null,a(o(t)("网络地址:")),1)]),e("div",J7,[e("a",{href:u.value,target:"_blank",rel:"noopener noreferrer"},a(u.value),9,K7)])]),e("li",Z7,[e("div",Y7,[e("span",null,a(o(t)("认证失败?")),1)]),e("div",Q7,[e("a",{href:c.value,target:"_blank",rel:"noopener noreferrer"},a(o(t)("点此自动配置 AriaNg")),9,X7)])])],64)):T("",!0),e("div",e9,[e("a",t9,a(o(t)("使用易有云APP,随时随地远程下载")),1)])])}}}),a9=le(n9,[["__scopeId","data-v-79be9404"]]),s9={class:"app-container_qbittorrent"},o9={class:"qbittorrent-item"},l9={class:"qbittorrent-item_name"},i9={class:"qbittorrent-item_value"},r9=["href"],c9={class:"qbittorrent-item"},d9={class:"qbittorrent-item_name"},u9={class:"qbittorrent-item_value"},v9=["href"],p9={class:"qbittorrent-item"},h9={class:"qbittorrent-item_name right"},m9={class:"qbittorrent-item_value"},f9=X({__name:"qbittorrent",props:{qbittorrent:{type:Object}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=R(()=>{var c;return`http://${location.hostname}${(c=l.qbittorrent)==null?void 0:c.webPath}`});return(c,r)=>{var p,v,h;return i(),d("ul",s9,[((p=s.qbittorrent)==null?void 0:p.status)=="running"?(i(),d(V,{key:0},[e("li",o9,[e("div",l9,[e("span",null,a(o(t)("下载目录:")),1)]),e("div",i9,[e("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+((v=s.qbittorrent)==null?void 0:v.downloadPath)},a((h=s.qbittorrent)==null?void 0:h.downloadPath),9,r9)])]),e("li",c9,[e("div",d9,[e("span",null,a(o(t)("网络地址:")),1)]),e("div",u9,[e("a",{href:u.value,target:"_blank",rel:"noopener noreferrer"},a(u.value),9,v9)])]),e("li",p9,[e("div",h9,[e("span",null,a(o(t)("默认用户名:"))+"admin",1)]),e("div",m9,[e("span",null,a(o(t)("默认密码:"))+"adminadmin",1)])])],64)):T("",!0)])}}}),b9=le(f9,[["__scopeId","data-v-498cb646"]]),g9={class:"app-container_transmission"},_9={class:"transmission-item"},y9={class:"transmission-item_name"},k9={class:"transmission-item_value"},w9=["href"],$9={class:"transmission-item"},C9={class:"transmission-item_name"},S9={class:"transmission-item_value"},x9=["href"],P9=X({__name:"transmission",props:{transmission:{type:Object}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=R(()=>{var c;return`http://${location.hostname}${(c=l.transmission)==null?void 0:c.webPath}`});return(c,r)=>{var p,v,h;return i(),d("ul",g9,[((p=s.transmission)==null?void 0:p.status)=="running"?(i(),d(V,{key:0},[e("li",_9,[e("div",y9,[e("span",null,a(o(t)("下载目录:")),1)]),e("div",k9,[e("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+((v=s.transmission)==null?void 0:v.downloadPath)},a((h=s.transmission)==null?void 0:h.downloadPath),9,w9)])]),e("li",$9,[e("div",C9,[e("span",null,a(o(t)("网络地址:")),1)]),e("div",S9,[e("a",{href:u.value,target:"_blank",rel:"noopener noreferrer"},a(u.value),9,x9)])])],64)):T("",!0)])}}}),T9=le(P9,[["__scopeId","data-v-55991749"]]),M9={},E9={width:"14px",height:"14px",viewBox:"0 0 14 14",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function I9(s,t){return i(),d("svg",E9,[...t[0]||(t[0]=[e("path",{d:"M7,0.875 C3.61757813,0.875 0.875,3.61757813 0.875,7 C0.875,10.3824219 3.61757813,13.125 7,13.125 C10.3824219,13.125 13.125,10.3824219 13.125,7 C13.125,3.61757813 10.3824219,0.875 7,0.875 Z M6.5625,4.046875 C6.5625,3.98671875 6.61171875,3.9375 6.671875,3.9375 L7.328125,3.9375 C7.38828125,3.9375 7.4375,3.98671875 7.4375,4.046875 L7.4375,7.765625 C7.4375,7.82578125 7.38828125,7.875 7.328125,7.875 L6.671875,7.875 C6.61171875,7.875 6.5625,7.82578125 6.5625,7.765625 L6.5625,4.046875 Z M7,10.0625 C6.63769531,10.0625 6.34375,9.76855469 6.34375,9.40625 C6.34375,9.04394531 6.63769531,8.75 7,8.75 C7.36230469,8.75 7.65625,9.04394531 7.65625,9.40625 C7.65625,9.76855469 7.36230469,10.0625 7,10.0625 Z",id:"形状","fill-opacity":"0.65"},null,-1)])])}const va=le(M9,[["render",I9]]),D9={key:0,class:"action"},L9={class:"title"},A9={class:"load_service input_row"},N9={class:"left"},O9={class:"radios"},z9={class:"radios"},q9={class:"radios"},R9={class:"input_row"},V9={class:"left"},B9={class:"tooltip-trigger"},U9={class:"tooltip-text tooltip-top"},F9={class:"dowload_dir_tip"},H9={class:"myinput_wrap"},G9={class:"input_row"},j9={class:"left"},W9={class:"tooltip-trigger"},J9={class:"tooltip-text tooltip-top"},K9={class:"dowload_dir_tip"},Z9={class:"myinput_wrap"},Y9={class:"input_row"},Q9={class:"left"},X9={class:"tooltip-trigger"},eb={class:"tooltip-text tooltip-bottom"},tb={class:"dowload_rpc_tip"},nb=["placeholder"],ab={class:"input_row"},sb={class:""},ob={class:"radios"},lb={for:"default"},ib={class:"radios"},rb={for:"add"},cb={class:"input_row"},db={class:"myinput_wrap Tracker_input"},ub=["placeholder"],vb={class:"input_row"},pb={class:"left"},hb={class:"tooltip-trigger"},mb={class:"tooltip-text tooltip-top"},fb={class:"dowload_dir_tip"},bb={class:"myinput_wrap"},gb={class:"input_row"},_b={class:"left"},yb={class:"tooltip-trigger"},kb={class:"tooltip-text tooltip-top"},wb={class:"dowload_dir_tip"},$b={class:"myinput_wrap"},Cb={class:"input_row"},Sb={class:"left"},xb={class:"tooltip-trigger"},Pb={class:"tooltip-text tooltip-top"},Tb={class:"dowload_dir_tip"},Mb={class:"myinput_wrap"},Eb={class:"input_row"},Ib={class:"left"},Db={class:"tooltip-trigger"},Lb={class:"tooltip-text tooltip-top"},Ab={class:"dowload_dir_tip"},Nb={class:"myinput_wrap"},Ob={class:"btns"},zb={key:1,class:"action"},qb={class:"title"},Rb={class:"finished"},Vb={class:"successed"},Bb={class:"btns"},Ub=X({__name:"index",props:{services:{type:Object,required:!0},partitionList:{type:Array,required:!0},defaultTab:{type:String,required:!1},Close:Function},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=x(""),u=x(""),c=x(""),r=x(""),p=x("default"),v=x("Aria2"),h=x(""),g=x(""),b=x(""),m=x(""),f=x([]),k=x([]),$=s,w=x(0);nt(()=>{var q,z,N,F,Z,Q,ce,ve,O,de;switch($.defaultTab){case"aria2":v.value="Aria2";break;case"qbittorrent":v.value="qBittorrent";break;case"transmission":v.value="Transmission";break}f.value=$.partitionList.map(K=>({key:K})),k.value=$.partitionList.filter(K=>K.startsWith("/mnt/")).map(K=>K.replace(/(\/mnt\/[^/]+).*/,"$1")),c.value=((q=$.services.aria2)==null?void 0:q.configPath)||"";const D=((z=$.services.aria2)==null?void 0:z.downloadPath)||((N=$.services.qbittorrent)==null?void 0:N.downloadPath)||((F=$.services.transmission)==null?void 0:F.downloadPath);D&&(r.value=D);const E=(Z=$.services.aria2)==null?void 0:Z.rpcToken;E&&(l.value=E),h.value=((Q=$.services.qbittorrent)==null?void 0:Q.configPath)||"";const A=((ce=$.services.qbittorrent)==null?void 0:ce.downloadPath)||D||((ve=$.services.transmission)==null?void 0:ve.downloadPath);A&&(g.value=A),b.value=((O=$.services.transmission)==null?void 0:O.configPath)||"";const U=((de=$.services.transmission)==null?void 0:de.downloadPath)||D||A;U&&(m.value=U)});const S=()=>{let D=c.value,E=r.value;D==null||D==""||E==null||E==""||B(null,null,function*(){if(yield Xt.checkAndInstallApp("app-meta-aria2","Aria2")){const U=ne.Loading(t("配置中..."));we.Guide.Aria2Init.POST({configPath:D,downloadPath:E,rpcToken:l.value,btTracker:p.value=="add"?u.value:""}).then(q=>{var z;if(q!=null&&q.data){if((q.data.success||0)==0){w.value=1;return}else if((z=q.data)!=null&&z.error)throw q.data.error}throw t("未知错误")}).catch(q=>ne.Error(q)).finally(()=>U.Close())}})},C=()=>{let D=h.value,E=g.value;D==null||D==""||E==null||E==""||B(null,null,function*(){if(yield Xt.checkAndInstallApp("app-meta-qbittorrent","qBittorrent")){const U=ne.Loading(t("配置中..."));we.Guide.qbitorrentInit.POST({configPath:D,downloadPath:E}).then(q=>{var z;if(q!=null&&q.data){if((q.data.success||0)==0){w.value=1;return}else if((z=q.data)!=null&&z.error)throw q.data.error}throw t("未知错误")}).catch(q=>ne.Error(q)).finally(()=>U.Close())}})},y=()=>{let D=b.value,E=m.value;D==null||D==""||E==null||E==""||B(null,null,function*(){if(yield Xt.checkAndInstallApp("app-meta-transmission","Transmission")){const U=ne.Loading(t("配置中..."));we.Guide.transmissionInit.POST({configPath:D,downloadPath:E}).then(q=>{var z;if(q!=null&&q.data){if((q.data.success||0)==0){w.value=1;return}else if((z=q.data)!=null&&z.error)throw q.data.error}throw t("未知错误")}).catch(q=>ne.Error(q)).finally(()=>U.Close())}})},P=D=>{D.preventDefault(),$.Close&&$.Close()},_=D=>{D.preventDefault(),location.reload()};return(D,E)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[w.value==0?(i(),d("div",D9,[e("h2",L9,a(o(t)("下载服务配置向导")),1),e("ul",null,[e("li",null,[e("div",A9,[e("div",N9,[e("span",null,a(o(t)("下载服务:")),1)]),e("div",O9,[W(e("input",{type:"radio",value:"Aria2","onUpdate:modelValue":E[0]||(E[0]=A=>v.value=A),name:"download",id:"Aria2"},null,512),[[Mt,v.value]]),E[13]||(E[13]=e("label",{for:"Aria2"},"Aria2",-1))]),e("div",z9,[W(e("input",{type:"radio",value:"qBittorrent","onUpdate:modelValue":E[1]||(E[1]=A=>v.value=A),name:"download",id:"qB"},null,512),[[Mt,v.value]]),E[14]||(E[14]=e("label",{for:"qB"},"qBittorrent",-1))]),e("div",q9,[W(e("input",{type:"radio",value:"Transmission","onUpdate:modelValue":E[2]||(E[2]=A=>v.value=A),name:"download",id:"Tr"},null,512),[[Mt,v.value]]),E[15]||(E[15]=e("label",{for:"Tr"},"Transmission",-1))])])])]),v.value=="Aria2"?(i(),d("form",{key:0,onSubmit:Ge(S,["prevent"])},[e("ul",null,[e("li",null,[e("div",R9,[e("div",V9,[e("span",B9,[G(va),e("div",null,[e("div",U9,[e("span",F9,a(o(t)("用于放置配置文件的目录。例如:/mnt/sda1/Configs/aria2;请勿使用 /tmp 或 /var ,以免重启以后任务丢失")),1)])])]),e("span",null,a(o(t)("配置目录:")),1)]),e("div",H9,[G(Ta,{modelValue:c.value,"onUpdate:modelValue":E[3]||(E[3]=A=>c.value=A),modelModifiers:{trim:!0},title:o(t)("配置目录"),options:k.value.concat("/root").map(A=>({key:A+"/Configs/aria2"}))},null,8,["modelValue","title","options"])])])]),e("li",null,[e("div",G9,[e("div",j9,[e("span",W9,[G(va),e("div",null,[e("div",J9,[e("span",K9,a(o(t)("用于放置下载文件的目录。例如:/mnt/sda1/download")),1)])])]),e("span",null,a(o(t)("下载目录:")),1)]),e("div",Z9,[G(Ta,{modelValue:r.value,"onUpdate:modelValue":E[4]||(E[4]=A=>r.value=A),modelModifiers:{trim:!0},title:o(t)("下载目录"),options:f.value},null,8,["modelValue","title","options"])])])]),e("li",null,[e("div",Y9,[e("div",Q9,[e("span",X9,[G(va),e("div",null,[e("div",eb,[e("span",tb,a(o(t)("用于远程访问的令牌。")),1)])])]),e("span",null,a(o(t)("RPC 令牌:")),1)]),W(e("input",{type:"text",class:"RPC_input",placeholder:o(t)("请输入RPC令牌"),"onUpdate:modelValue":E[5]||(E[5]=A=>l.value=A)},null,8,nb),[[Oe,l.value,void 0,{trim:!0}]])])]),e("li",null,[e("div",ab,[e("div",sb,[e("span",null,a(o(t)("附加的 BT Tracker:")),1)]),e("div",ob,[W(e("input",{type:"radio",value:"default",name:"BT",id:"default","onUpdate:modelValue":E[6]||(E[6]=A=>p.value=A)},null,512),[[Mt,p.value]]),e("label",lb,a(o(t)("默认")),1)]),e("div",ib,[W(e("input",{type:"radio",value:"add",name:"BT",id:"add","onUpdate:modelValue":E[7]||(E[7]=A=>p.value=A)},null,512),[[Mt,p.value]]),e("label",rb,a(o(t)("自己添加")),1)])])]),e("li",null,[e("div",cb,[E[16]||(E[16]=e("div",{class:"left"},null,-1)),e("div",db,[p.value=="add"?W((i(),d("textarea",{key:0,"onUpdate:modelValue":E[8]||(E[8]=A=>u.value=A),rows:"4",placeholder:o(t)("请输入BT Tracker服务器地址,多个地址使用换行或者英文逗号分隔")},null,8,ub)),[[Oe,u.value,void 0,{trim:!0}]]):T("",!0)])])])])],32)):T("",!0),v.value=="qBittorrent"?(i(),d("form",{key:1,onSubmit:Ge(C,["prevent"])},[e("ul",null,[e("li",null,[e("div",vb,[e("div",pb,[e("span",hb,[G(va),e("div",null,[e("div",mb,[e("span",fb,a(o(t)("用于放置配置文件的目录。例如:/mnt/sda1/Configs/qb;请勿使用 /tmp 或 /var ,以免重启以后任务丢失")),1)])])]),e("span",null,a(o(t)("配置目录:")),1)]),e("div",bb,[G(Ta,{modelValue:h.value,"onUpdate:modelValue":E[9]||(E[9]=A=>h.value=A),modelModifiers:{trim:!0},title:o(t)("配置目录"),options:k.value.concat("/root").map(A=>({key:A+"/Configs/qb"}))},null,8,["modelValue","title","options"])])])]),e("li",null,[e("div",gb,[e("div",_b,[e("span",yb,[G(va),e("div",null,[e("div",kb,[e("span",wb,a(o(t)("用于放置下载文件的目录。例如:/mnt/sda1/download")),1)])])]),e("span",null,a(o(t)("下载目录:")),1)]),e("div",$b,[G(Ta,{modelValue:g.value,"onUpdate:modelValue":E[10]||(E[10]=A=>g.value=A),modelModifiers:{trim:!0},title:o(t)("下载目录"),options:f.value},null,8,["modelValue","title","options"])])])])])],32)):T("",!0),v.value=="Transmission"?(i(),d("form",{key:2,onSubmit:Ge(y,["prevent"])},[e("ul",null,[e("li",null,[e("div",Cb,[e("div",Sb,[e("span",xb,[G(va),e("div",null,[e("div",Pb,[e("span",Tb,a(o(t)("用于放置配置文件的目录。例如:/mnt/sda1/Configs/tr;请勿使用 /tmp 或 /var ,以免重启以后任务丢失")),1)])])]),e("span",null,a(o(t)("配置目录:")),1)]),e("div",Mb,[G(Ta,{modelValue:b.value,"onUpdate:modelValue":E[11]||(E[11]=A=>b.value=A),modelModifiers:{trim:!0},title:o(t)("配置目录"),options:k.value.concat("/root").map(A=>({key:A+"/Configs/transmission"}))},null,8,["modelValue","title","options"])])])]),e("li",null,[e("div",Eb,[e("div",Ib,[e("span",Db,[G(va),e("div",null,[e("div",Lb,[e("span",Ab,a(o(t)("用于放置下载文件的目录。例如:/mnt/sda1/download")),1)])])]),e("span",null,a(o(t)("下载目录:")),1)]),e("div",Nb,[G(Ta,{modelValue:m.value,"onUpdate:modelValue":E[12]||(E[12]=A=>m.value=A),modelModifiers:{trim:!0},title:o(t)("下载目录"),options:f.value},null,8,["modelValue","title","options"])])])])])],32)):T("",!0),e("div",Ob,[v.value=="Aria2"?(i(),d("button",{key:0,class:"cbi-button cbi-button-apply",onClick:S},a(o(t)("启用")),1)):T("",!0),v.value=="qBittorrent"?(i(),d("button",{key:1,class:"cbi-button cbi-button-apply",onClick:C},a(o(t)("启用")),1)):T("",!0),v.value=="Transmission"?(i(),d("button",{key:2,class:"cbi-button cbi-button-apply",onClick:y},a(o(t)("启用")),1)):T("",!0),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:P},a(o(t)("取消")),1)])])):w.value==1?(i(),d("div",zb,[e("h2",qb,a(o(t)("%{status}下载服务配置向导",{status:v.value})),1),e("div",Rb,[G(Qo)]),e("p",Vb,a(o(t)("配置成功!")),1),e("div",Bb,[e("button",{class:"cbi-button cbi-button-apply",onClick:_},a(o(t)("确定")),1)])])):T("",!0)]),_:1},8,["Close"]))}}),Fb=le(Ub,[["__scopeId","data-v-aaa01e06"]]),Hb=s=>Qs(Fb,s),Gb={class:"content service-downloads"},jb={class:"tab"},Wb=["aria-pressed"],Jb=["data-service-state"],Kb=["aria-pressed"],Zb=["data-service-state"],Yb=["aria-pressed"],Qb=["data-service-state"],Xb={key:0,class:"service-idle"},eg=X({__name:"DownloadService",setup(s){const t=window.vue_lang==="en",n=Ys(),{$gettext:l}=Ae(),u=x(!1),c=x("aria2"),r=x(!1),p=C=>{c.value=C,r.value=!0},v=x(),h=()=>{if(r.value)return;const y=["aria2","qbittorrent","transmission"].find(P=>{var _,D;return((D=(_=v.value)==null?void 0:_[P])==null?void 0:D.status)==="running"});c.value=y||"aria2"},g=()=>{we.Guide.DownloadService.Status.GET().then(C=>{var y;if((y=C==null?void 0:C.data)!=null&&y.result){const P=C.data.result;v.value=P,h()}})};if(!fa("download",C=>{v.value=C,h()})){const C=setTimeout(g,800);lt(()=>clearTimeout(C))}x(!1);const b=x(!1),m=()=>{b.value=!b.value},f=()=>{we.Guide.DownloadPartition.List.GET().then(C=>{var P,_;let y=[];(_=(P=C==null?void 0:C.data)==null?void 0:P.result)!=null&&_.partitionList&&(y=C.data.result.partitionList),n(Hb,{services:v.value,partitionList:y,defaultTab:c.value})})},k=(C,y,P)=>B(null,null,function*(){m(),Xt.installAndGo(C,y,P)}),$=()=>{k("app-meta-aria2","Aria2","/cgi-bin/luci/admin/services/aria2")},w=()=>{k("app-meta-qbittorrent","qBittorrent","/cgi-bin/luci/admin/nas/qBittorrent")},S=()=>{k("app-meta-transmission","Transmission","/cgi-bin/luci/admin/services/transmission")};return(C,y)=>(i(),Y(ya,{"home-menu":[{label:o(l)("Aria2高级配置"),action:$},{label:o(l)("qBittorrent高级配置"),action:w},{label:o(l)("Transmission高级配置"),action:S}],title:o(l)("下载服务"),showSettings:!0,onFooterClick:f,style:{width:"100%",height:"100%",display:"block"},"is-settings-menu-open":u.value,"onUpdate:isSettingsMenuOpen":y[3]||(y[3]=P=>u.value=P)},{icon:pe(()=>[G(Ia,{color:"#00a63e",class:"icon"})]),settings:pe(()=>[e("button",{type:"button",class:"btn_settings",onClick:f},[G(Ia,{color:"#0a0a0a",class:"icon1 downloadIcon",style:{"margin-right":"6px"}}),e("span",null,a(o(l)("下载管理")),1)])]),"settings-menu":pe(()=>[e("div",null,[e("a",{onClick:$},a(o(l)("Aria2高级配置")),1)]),e("div",null,[e("a",{onClick:w},a(o(l)("qBittorrent高级配置")),1)]),e("div",null,[e("a",{onClick:S},a(o(l)("Transmission高级配置")),1)])]),default:pe(()=>{var P,_,D,E,A,U,q,z,N,F,Z,Q,ce,ve,O,de,K,xe,j;return[e("div",Gb,[e("div",jb,[e("button",{type:"button","aria-pressed":c.value=="aria2",class:_e(["item cloud",{active:c.value=="aria2"}]),onClick:y[0]||(y[0]=re=>p("aria2"))},[G(Ia,{color:"#f54900",class:"icon2"}),y[4]||(y[4]=e("div",{class:"title"},"Aria2",-1)),e("span",{"data-service-state":o(zn)((_=(P=v.value)==null?void 0:P.aria2)==null?void 0:_.status)},a(o($n)(o(zn)((E=(D=v.value)==null?void 0:D.aria2)==null?void 0:E.status),t)),9,Jb)],10,Wb),e("button",{type:"button","aria-pressed":c.value=="qbittorrent",class:_e(["item memory",{active:c.value=="qbittorrent"}]),onClick:y[1]||(y[1]=re=>p("qbittorrent"))},[G(Ia,{color:"#4a5565",class:"icon2"}),y[5]||(y[5]=e("div",{class:"title"},"qBittorrent",-1)),e("span",{"data-service-state":o(zn)((U=(A=v.value)==null?void 0:A.qbittorrent)==null?void 0:U.status)},a(o($n)(o(zn)((z=(q=v.value)==null?void 0:q.qbittorrent)==null?void 0:z.status),t)),9,Zb)],10,Kb),e("button",{type:"button","aria-pressed":c.value=="transmission",class:_e(["item network",{active:c.value=="transmission"}]),onClick:y[2]||(y[2]=re=>p("transmission"))},[G(Ia,{color:"#009689",class:"icon2"}),y[6]||(y[6]=e("div",{class:"title"},"Transmission",-1)),e("span",{"data-service-state":o(zn)((F=(N=v.value)==null?void 0:N.transmission)==null?void 0:F.status)},a(o($n)(o(zn)((Q=(Z=v.value)==null?void 0:Z.transmission)==null?void 0:Q.status),t)),9,Qb)],10,Yb)]),((ve=(ce=v.value)==null?void 0:ce[c.value])==null?void 0:ve.status)!=="running"?(i(),d("p",Xb,a(o(O7)((de=(O=v.value)==null?void 0:O[c.value])==null?void 0:de.status,t)),1)):T("",!0),c.value=="aria2"?(i(),Y(a9,{key:1,aria2:(K=v.value)==null?void 0:K.aria2},null,8,["aria2"])):c.value=="qbittorrent"?(i(),Y(b9,{key:2,qbittorrent:(xe=v.value)==null?void 0:xe.qbittorrent},null,8,["qbittorrent"])):c.value=="transmission"?(i(),Y(T9,{key:3,transmission:(j=v.value)==null?void 0:j.transmission},null,8,["transmission"])):T("",!0)])]}),_:1},8,["home-menu","title","is-settings-menu-open"]))}}),tg=le(eg,[["__scopeId","data-v-a1c9e38b"]]),ng={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},ag=["fill"],bo=X({__name:"earth",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",ng,[e("path",{d:"M584.675 134.868C561.143 130.36 536.847 128 512 128a392 392 0 0 0-3.783 0.018l-24.19 169.685A32 32 0 0 1 466.68 321.8l-99.807 49.992-50.81 127.247a32 32 0 0 1-24.45 19.697l-162.145 27.069c8.105 92.926 49.308 176.368 111.754 238.473L223.089 657.52c-2.323-16.238 8.01-31.603 23.924-35.578l226.491-56.558a32 32 0 0 1 30.368 8.407l96.768 96.662a8 8 0 0 0 8.728 1.726l150.425-62.602 31.42-0.772c17.669-0.434 32.343 13.536 32.777 31.204 0.007 0.262 0.01 0.524 0.01 0.786v95.11c45.314-63.03 72-140.351 72-223.906 0-40.5-6.27-79.535-17.891-116.188l-103.215 27.656a32 32 0 0 1-23.36-2.684l-127.842-68.287a32 32 0 0 1-16.712-24.553l-22.305-193.076z m58.509 16.124l18.31 159.176 109.262 56.623 86.458-23.166c-43.44-88.897-120.207-158.532-214.03-192.633z m-336.132 685.8C366.357 874.295 436.644 896 512 896c94.536 0 181.093-34.162 248-90.814V683.96a8 8 0 0 0-11.074-7.386l-138.21 57.53a32 32 0 0 1-34.913-6.903l-99.24-99.132a8 8 0 0 0-7.592-2.102l-178.437 44.563a8 8 0 0 0-5.981 8.894l22.499 157.37zM128.65 489.473l140.726-23.504 49.219-123.244a32 32 0 0 1 15.386-16.744l96.748-48.46 20.65-144.762C275.347 160.675 139.137 308.212 128.65 489.47zM512 960C264.576 960 64 759.424 64 512S264.576 64 512 64s448 200.576 448 448-200.576 448-448 448z",fill:s.color,"p-id":"8679"},null,8,ag)]))}}),sg={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},og=["fill"],lg=["fill"],ig=["fill"],rg=X({__name:"router1",props:{color:{type:String,default:"#4a5565"}},setup(s){return(t,n)=>(i(),d("svg",sg,[e("path",{d:"M909.1 499.1h-797c-27.5 0-50 22.5-50 50v351.5c0 27.5 22.5 50 50 50h797c27.5 0 50-22.5 50-50V549.1c0-27.5-22.5-50-50-50z m-14 387.5h-769V563.1h769v323.5z",fill:s.color,"p-id":"19594"},null,8,og),e("path",{d:"M191.932 734.691a63 63 0 1 0 124.375-20.173 63 63 0 1 0-124.375 20.173zM395.56 774.136a63 63 0 1 0 89.093-89.097 63 63 0 1 0-89.094 89.097zM702.8 296.6c-19.4 0-35.2 8.4-35.2 18.7v198c0 10.3 15.9 18.7 35.2 18.7 19.4 0 35.2-8.4 35.2-18.7v-198c0.1-10.3-15.8-18.7-35.2-18.7z",fill:s.color,"p-id":"19595"},null,8,lg),e("path",{d:"M701.8 218.6c-49.7 0-93.2 31.8-117.7 79.5h41.5c19.3-24.3 46.3-39.5 76.2-39.5 29.9 0 56.9 15.2 76.2 39.5h41.5c-24.4-47.7-68-79.5-117.7-79.5z m5.3-45.5c41.1 0 78.3 15.2 104.8 39.5H869c-33.7-47.7-93.7-79.5-162-79.5s-128.3 31.8-162 79.5h57.1c26.6-24.3 63.8-39.5 105-39.5z",fill:s.color,"p-id":"19596"},null,8,ig)]))}}),cg={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},dg=["fill"],Vl=X({__name:"edit",props:{color:{type:String,default:"#0a0a0a"}},setup(s){return(t,n)=>(i(),d("svg",cg,[e("path",{d:"M526.41 117.029v58.514a7.314 7.314 0 0 1-7.315 7.314H219.429a36.571 36.571 0 0 0-35.987 29.989l-0.585 6.583V804.57a36.571 36.571 0 0 0 29.989 35.987l6.583 0.585H804.57a36.571 36.571 0 0 0 35.987-29.989l0.585-6.583v-317.44a7.314 7.314 0 0 1 7.314-7.314h58.514a7.314 7.314 0 0 1 7.315 7.314v317.44a109.714 109.714 0 0 1-99.182 109.203l-10.533 0.512H219.43a109.714 109.714 0 0 1-109.203-99.182l-0.512-10.533V219.43a109.714 109.714 0 0 1 99.182-109.203l10.533-0.512h299.666a7.314 7.314 0 0 1 7.314 7.315z m307.345 31.817l41.4 41.399a7.314 7.314 0 0 1 0 10.313L419.985 655.726a7.314 7.314 0 0 1-10.313 0l-41.399-41.4a7.314 7.314 0 0 1 0-10.312l455.168-455.168a7.314 7.314 0 0 1 10.313 0z","p-id":"4497",fill:s.color},null,8,dg)]))}}),ug={class:"actioner-container"},vg={class:"actioner-container_header"},pg={class:"actioner-container_body"},hg={class:"label-item"},mg={class:"label_info"},fg={class:"label-item"},bg={class:"label_info"},gg={class:"label-item"},_g={class:"label_info"},yg={class:"label-item"},kg={class:"label_info"},wg={class:"actioner-container_footer"},$g=X({__name:"setup-index",props:{onSetup:{type:Function,required:!0},active:{type:String,default:"ddnsto"}},emits:["update:active"],setup(s,{emit:t}){const{$gettext:n,$ngettext:l}=Ae(),u=s,c=t,r=()=>{u.onSetup()},p=x(u.active),v=()=>{switch(c("update:active",p.value),p.value){case"ddnsto":u.onSetup("ddnsto");break;case"ali":u.onSetup("ddns-ali");break;case"dnspod":u.onSetup("ddns-dnspod");break;case"oray":u.onSetup("ddns-oray");break}};return(h,g)=>(i(),d("div",ug,[e("div",vg,[e("span",null,a(o(n)("域名配置向导")),1)]),e("div",pg,[e("div",hg,[e("label",null,[W(e("input",{type:"radio","onUpdate:modelValue":g[0]||(g[0]=b=>p.value=b),value:"ddnsto"},null,512),[[Mt,p.value]]),e("span",null,a(o(n)("DDNSTO")),1)]),e("p",mg,a(o(n)("DDNSTO 是一个不需要公网IP也可以在外网访问的穿透域名服务,一个浏览器搞定内网穿透,远程访问Openwrt、远程终端、远程桌面...")),1)]),e("div",fg,[e("label",null,[W(e("input",{type:"radio","onUpdate:modelValue":g[1]||(g[1]=b=>p.value=b),value:"ali"},null,512),[[Mt,p.value]]),e("span",null,a(o(n)("阿里云")),1)]),e("p",bg,a(o(n)("为拥有动态IP的主机配置一个固定的可访问域名")),1)]),e("div",gg,[e("label",null,[W(e("input",{type:"radio","onUpdate:modelValue":g[2]||(g[2]=b=>p.value=b),value:"dnspod"},null,512),[[Mt,p.value]]),e("span",null,a(o(n)("Dnspod")),1)]),e("p",_g,a(o(n)("为拥有动态IP的主机配置一个固定的可访问域名")),1)]),e("div",yg,[e("label",null,[W(e("input",{type:"radio","onUpdate:modelValue":g[3]||(g[3]=b=>p.value=b),value:"oray"},null,512),[[Mt,p.value]]),e("span",null,a(o(n)("花生壳")),1)]),e("p",kg,a(o(n)("为拥有动态IP的主机配置一个固定的可访问域名")),1)])]),e("div",wg,[e("div",{class:"close",onClick:r},a(o(n)("取消")),1),e("div",{class:"next",onClick:v},a(o(n)("下一步")),1)])]))}}),Cg=le($g,[["__scopeId","data-v-99e65ae9"]]),Sg={class:"actioner-container"},xg={class:"actioner-container_body"},Pg={class:"body-title"},Tg={class:"body-tips"},Mg={class:"body-info"},Eg=["href"],Ig={href:"/cgi-bin/luci/admin/services/ddns",target:"_blank"},Dg={class:"actioner-container_footer"},Lg=X({__name:"setup-ddns-success",props:{target:{type:String,required:!0},onSetup:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=()=>{localStorage.setItem("firstOpen",JSON.stringify(!0)),location.reload()};return(u,c)=>(i(),d("div",Sg,[e("div",xg,[c[0]||(c[0]=e("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[e("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})],-1)),e("div",Pg,a(o(t)("添加成功")),1),e("p",Tg,a(o(t)("请稍等1分钟生效后再使用。")),1),e("div",Mg,[e("span",null,a(o(t)("访问地址:")),1),e("a",{href:s.target,target:"_blank",rel:"noopener noreferrer"},a(s.target),9,Eg)]),e("div",null,[e("span",null,a(o(t)("可前往")),1),e("a",Ig,a(o(t)("服务-动态DNS")),1),e("span",null,a(o(t)("查看更多详情")),1)])]),e("div",Dg,[e("div",{class:"close",onClick:l},a(o(t)("关闭")),1)])]))}}),Ag=le(Lg,[["__scopeId","data-v-ea162d2f"]]),Ng={class:"actioner-container"},Og={class:"actioner-container_header"},zg={class:"actioner-container_footer"},qg=X({__name:"setup-ddnsto-login",props:{onSetup:{type:Function,required:!0},onDdnstoConfig:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.onSetup()},c=r=>{if(r.data.auth=="ddnsto"){const p=r.data.sign,v=r.data.token;p&&v&&(removeEventListener("message",c),l.onDdnstoConfig(p,v),l.onSetup("ddnsto-run"))}};return nt(()=>{window.addEventListener("message",c)}),lt(()=>{removeEventListener("message",c)}),(r,p)=>(i(),d("div",Ng,[e("div",Og,[e("span",null,a(o(t)("域名配置向导")),1)]),p[0]||(p[0]=e("div",{class:"actioner-container_body ddnsto-login"},[e("iframe",{src:"https://www.kooldns.cn/bind/#/auth?send=1&source=openwrt&callback=*"})],-1)),e("div",zg,[e("div",{class:"close",onClick:u},a(o(t)("取消")),1)])]))}}),Rg=le(qg,[["__scopeId","data-v-ce7dc31a"]]),Vg={class:"actioner-container"},Bg={class:"actioner-container_header"},Ug={class:"actioner-container_body ddnsto-bind"},Fg=["src"],Hg=X({__name:"setup-ddnsto-bind",props:{onSetup:{type:Function,required:!0},config:{type:Object,required:!0},domain:{type:String,required:!0}},emits:["update:domain"],setup(s,{emit:t}){const{$gettext:n,$ngettext:l}=Ae(),u=s,c=t,r=R(()=>{const{domain:h,token:g,sign:b,routerId:m,netaddr:f}=u.config,k=encodeURIComponent(h),$=encodeURIComponent(f);return`https://www.kooldns.cn/bind/#/domain?domain=${k}&sign=${b}&token=${g}&routerId=${m}&netaddr=${$}`}),p=h=>{if(h.data){const{auth:g,url:b}=h.data;g==="ddnsto"&&b&&v(b)}},v=h=>B(null,null,function*(){var g;try{const b=yield we.Guide.DdnstoAddress.POST({address:h});b!=null&&b.data&&(((g=b==null?void 0:b.data)==null?void 0:g.success)||0)==0&&(c("update:domain",h),u.onSetup("ddnsto-save"))}catch(b){}});return nt(()=>{window.addEventListener("message",p)}),lt(()=>{removeEventListener("message",p)}),(h,g)=>(i(),d("div",Vg,[e("div",Bg,[e("span",null,a(o(n)("域名配置向导")),1)]),e("div",Ug,[e("iframe",{src:r.value},null,8,Fg)])]))}}),Gg=le(Hg,[["__scopeId","data-v-8084ff19"]]),jg={class:"actioner-container"},Wg={class:"actioner-container_body"},Jg={class:"body-title"},Kg={class:"body-tips"},Zg={class:"body-info"},Yg=["href"],Qg={href:"https://www.ddnsto.com/app/#/devices",target:"_blank"},Xg={class:"actioner-container_footer"},e_=X({__name:"setup-ddnsto-save",props:{onSetup:{type:Function,required:!0},target:{type:String,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=()=>{localStorage.setItem("firstOpen",JSON.stringify(!0)),location.reload()};return(u,c)=>(i(),d("div",jg,[e("div",Wg,[c[0]||(c[0]=e("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[e("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})],-1)),e("div",Jg,a(o(t)("添加成功")),1),e("p",Kg,a(o(t)("请稍等1分钟生效后再使用。")),1),e("div",Zg,[e("span",null,a(o(t)("访问地址:")),1),e("a",{href:s.target,target:"_blank",rel:"noopener noreferrer"},a(s.target),9,Yg)]),e("div",null,[e("span",null,a(o(t)("可前往")),1),e("a",Qg,a(o(t)("DDNSTO控制台")),1),e("span",null,a(o(t)("查看更多详情")),1)])]),e("div",Xg,[e("div",{class:"close",onClick:l},a(o(t)("关闭")),1)])]))}}),t_=le(e_,[["__scopeId","data-v-82ebe368"]]),n_={class:"actioner-container"},a_={class:"actioner-container_header"},s_={class:"actioner-container_body"},o_={class:"actioner-container_footer"},l_=X({__name:"setup-ddnsto-install",props:{onSetup:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.onSetup()},c=()=>B(null,null,function*(){if(v.value)return;v.value=!0;const g=ne.Loading(t("安装中..."));try{if(yield Xt.installApp("app-meta-ddnsto",30)){l.onSetup("ddnsto-login");return}else r.value=t("安装失败")}catch(b){r.value=b}finally{g.Close()}v.value=!1}),r=x(t("正在检测中...")),p=x(!1),v=x(!1);return B(null,null,function*(){try{const g=yield we.App.Check.POST({name:"ddnsto"});if(g!=null&&g.data){const{result:b,error:m}=g.data;if(m){r.value=m;return}if(b){if(b.status=="installed"){l.onSetup("ddnsto-login");return}b.status=="uninstalled"&&(r.value=t("需要安装DDNSTO插件,点击“确定”开始安装"))}}}catch(g){r.value=g}p.value=!0}),(g,b)=>(i(),d("div",n_,[e("div",a_,[e("span",null,a(o(t)("域名配置向导")),1)]),e("div",s_,[e("span",null,a(r.value),1)]),e("div",o_,[p.value?(i(),d(V,{key:0},[e("div",{class:"close",onClick:u},a(o(t)("取消")),1),e("div",{class:"next",onClick:c},a(o(t)("确定")),1)],64)):T("",!0)])]))}}),i_=le(l_,[["__scopeId","data-v-11e7f6d6"]]),r_={class:"actioner-container"},c_={class:"actioner-container_header"},d_={class:"actioner-container_body"},u_=X({__name:"setup-ddnsto-run",props:{onSetup:{type:Function,required:!0},token:{type:String,required:!0},onDdnstoLocalConfig:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(t("正在检测插件是否已启动..."));(g=>B(null,null,function*(){var b;try{const m=yield we.Guide.Ddnsto.POST({token:l.token});m!=null&&m.data&&(m.data.error&&(u.value=m.data.error),(((b=m==null?void 0:m.data)==null?void 0:b.success)||0)==0&&p())}catch(m){u.value=m}}))(l.token);const r=x(),p=()=>{const g=()=>B(null,null,function*(){if((yield v())===!0){h();return}r.value=window.setTimeout(g,2e3)});g()},v=()=>B(null,null,function*(){try{const g=yield we.App.Check.POST({name:"ddnsto",checkRunning:!0});if(g!=null&&g.data){g.data.error&&(u.value=g.data.error);const b=g.data.result;if((b==null?void 0:b.status)=="running")return!0}}catch(g){u.value=g}return!1});lt(()=>{r.value&&clearInterval(r.value)});const h=()=>B(null,null,function*(){var g;try{const b=yield we.Guide.DdntoConfig.GET();if(b!=null&&b.data&&(b.data.error&&(u.value=b.data.error),(((g=b==null?void 0:b.data)==null?void 0:g.success)||0)==0&&b.data.result)){const m=b.data.result;l.onDdnstoLocalConfig(m.netAddr,m.deviceId),l.onSetup("ddnsto-bind")}}catch(b){u.value=b}});return(g,b)=>(i(),d("div",r_,[e("div",c_,[e("span",null,a(o(t)("域名配置向导")),1)]),e("div",d_,a(u.value),1)]))}}),v_=le(u_,[["__scopeId","data-v-cc67b1f4"]]),p_={class:"action-main"},h_=X({__name:"index",props:{Close:{type:Function,required:!0},url:{type:String,required:!0}},setup(s){const t=s,n=x("ddnsto-install"),l=v=>{v!=null?n.value=v:u()},u=()=>{t.Close&&t.Close()},c=Xe({sign:"",token:"",domain:t.url,netaddr:"",routerId:""}),r=(v,h)=>{c.sign=v,c.token=h},p=(v,h)=>{c.netaddr=v,c.routerId=h};return(v,h)=>(i(),Y(Nt,{type:1},{default:pe(()=>[e("div",p_,[n.value=="ddnsto-install"?(i(),Y(i_,{key:0,onSetup:l})):n.value=="ddnsto-login"?(i(),Y(Rg,{key:1,onSetup:l,onDdnstoConfig:r})):n.value=="ddnsto-run"?(i(),Y(v_,{key:2,onSetup:l,token:c.token,onDdnstoLocalConfig:p},null,8,["token"])):n.value=="ddnsto-bind"?(i(),Y(Gg,{key:3,onSetup:l,config:{token:c.token,sign:c.sign,domain:c.domain,netaddr:c.netaddr,routerId:c.routerId},domain:c.domain,"onUpdate:domain":h[0]||(h[0]=g=>c.domain=g)},null,8,["config","domain"])):n.value=="ddnsto-save"?(i(),Y(t_,{key:4,onSetup:l,target:c.domain},null,8,["target"])):T("",!0)])]),_:1}))}}),m_=le(h_,[["__scopeId","data-v-d55b4654"]]),f_=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(m_,Ne(ye({},s),{Close:()=>{l()}}));n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},b_={class:"action"},g_={class:"action-header"},__={class:"action-body"},y_={class:"action-footer"},k_=X({__name:"index",props:{Close:Function,next:{type:Function},clear:{type:Function},continuer:{type:Function},nextTitle:{type:String},clearTitle:{type:String},continuerTitle:{type:String},title:{type:String},content:{type:String}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.next&&l.next(),l.Close&&l.Close()},c=()=>{l.clear&&l.clear(),l.Close&&l.Close()},r=()=>{l.continuer&&l.continuer(),l.Close&&l.Close()};return(p,v)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[e("div",b_,[e("div",g_,a(s.title||o(t)("提示")),1),e("div",__,a(s.content),1),e("div",y_,[s.clear?(i(),d("div",{key:0,class:"clear",onClick:c},a(s.clearTitle||o(t)("返回")),1)):T("",!0),e("div",{class:"next",onClick:u},a(s.nextTitle||o(t)("确定")),1),s.continuer?(i(),d("div",{key:1,class:"next",onClick:r},a(s.continuerTitle||o(t)("继续保存")),1)):T("",!0)])])]),_:1},8,["Close"]))}}),w_=le(k_,[["__scopeId","data-v-ceabb82b"]]),qs=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(w_,Ne(ye({},s),{Close:()=>{l()}}));n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},$_={class:"actioner-container"},C_={class:"actioner-container_header"},S_={key:0,class:"title_info"},x_={href:"https://doc.linkease.com/zh/guide/istoreos/basic/domain.html#%E9%98%BF%E9%87%8C%E4%BA%91",target:"_blank"},P_={key:1,class:"title_info"},T_={href:"https://doc.linkease.com/zh/guide/istoreos/basic/domain.html#dnspod",target:"_blank"},M_={key:2,class:"title_info"},E_={href:"https://doc.linkease.com/zh/guide/istoreos/basic/domain.html#%E8%8A%B1%E7%94%9F%E5%A3%B3",target:"_blank"},I_={class:"label-item"},D_={class:"label-item_key"},L_={class:"label-item_value"},A_={value:"ipv4"},N_={value:"ipv6"},O_={class:"label_tips"},z_={class:"info"},q_={class:"label-item"},R_={class:"label-item_key"},V_={class:"label-item_value"},B_={class:"label-item"},U_={class:"label-item_key"},F_={class:"label-item_value"},H_=["placeholder"],G_={class:"label-item"},j_={class:"label-item_key"},W_={class:"label-item_value"},J_=["placeholder"],K_={class:"actioner-container_footer"},Z_=["disabled"],Y_=X({__name:"setup-ddns",props:{name:{type:String,default:"ali"},onSetup:{type:Function,required:!0},target:{type:String,required:!0}},emits:["update:target"],setup(s,{emit:t}){const{$gettext:n,$ngettext:l}=Ae(),u=s,c=t,r=x("ipv4"),p=x(u.name),v=x(""),h=x(""),g=x(""),b=x(!1),m=()=>{u.onSetup("index")},f=()=>{b.value=!0;const S=ne.Loading(n("检测中..."));we.Network.CheckPublickNet.POST({ipVersion:r.value}).then(C=>{var y,P;if(C!=null&&C.data){if((y=C==null?void 0:C.data)!=null&&y.error){ne.Warning(C==null?void 0:C.data.error);return}if((((P=C==null?void 0:C.data)==null?void 0:P.success)||0)==0){const _=C.data.result;_&&_.address?w():k();return}}throw n("未知错误")}).catch(C=>{ne.Error(C)}).finally(()=>{S.Close(),b.value=!1})},k=()=>{qs({title:n("温馨提示"),nextTitle:n("使用DDNSTO"),continuerTitle:n("继续保存"),content:n("检测到您的wan口没有公网IP或者IPv6地址,可以使用DDNSTO配置远程域名访问"),next(){$()},continuer(){w()},clear(){}})},$=()=>{u.onSetup("ddnsto")},w=()=>{b.value=!0;const S=ne.Loading(n("配置中..."));we.Guide.PostDdns.POST({ipVersion:r.value,serviceName:p.value,domain:v.value,userName:h.value,password:g.value}).then(C=>{if(C!=null&&C.data){const{error:y,scope:P,success:_}=C.data;if(y=="-100"&&P=="guide.ddns"){qs({title:n("温馨提示"),content:n("检测到你有未保存的配置,可前往页面右上角点击查看,保存并应用或者恢复配置后继续"),next(){}});return}if(y){ne.Warning(y);return}if((_||0)==0){c("update:target",v.value),u.onSetup("ddns-success");return}}throw n("未知错误")}).catch(C=>{ne.Error(C)}).finally(()=>{S.Close(),b.value=!1})};return(S,C)=>(i(),d("div",$_,[e("form",{class:"actioner-dns",onSubmit:Ge(f,["prevent"])},[e("div",C_,[e("span",null,a(o(n)("域名配置向导")),1)]),e("div",{class:_e(["actioner-container_body",s.name])},[s.name=="ali"?(i(),d("div",S_,[e("p",null,a(o(n)("阿里云")),1),e("span",null,a(o(n)("为拥有动态IP的主机配置一个固定的可访问域名")),1),e("a",x_,a(o(n)("查看教程"))+">>",1)])):s.name=="dnspod"?(i(),d("div",P_,[e("p",null,a(o(n)("dnspod")),1),e("span",null,a(o(n)("为拥有动态IP的主机配置一个固定的可访问域名")),1),e("a",T_,a(o(n)("查看教程"))+">>",1)])):s.name=="oray"?(i(),d("div",M_,[e("p",null,a(o(n)("花生壳")),1),e("span",null,a(o(n)("为拥有动态IP的主机配置一个固定的可访问域名")),1),e("a",E_,a(o(n)("查看教程"))+">>",1)])):T("",!0),e("div",I_,[e("div",D_,[e("span",null,a(o(n)("IP地址版本:")),1)]),e("div",L_,[W(e("select",{name:"",id:"","onUpdate:modelValue":C[0]||(C[0]=y=>r.value=y)},[e("option",A_,a(o(n)("IPv4地址")),1),e("option",N_,a(o(n)("IPv6地址")),1)],512),[[Be,r.value]])]),e("div",O_,[C[4]||(C[4]=Hn('',1)),e("span",z_,a(o(n)("设定哪一个 IP 地址(IPv4 或 IPv6)会被发送给 DDNS 提供商")),1)])]),e("div",q_,[e("div",R_,[e("span",null,a(o(n)("域名:")),1)]),e("div",V_,[W(e("input",{type:"text",placeholder:"myhost.example.com","onUpdate:modelValue":C[1]||(C[1]=y=>v.value=y),required:""},null,512),[[Oe,v.value,void 0,{trim:!0}]])])]),e("div",B_,[e("div",U_,[e("span",null,a(o(n)("用户名:")),1)]),e("div",F_,[W(e("input",{type:"text","onUpdate:modelValue":C[2]||(C[2]=y=>h.value=y),placeholder:o(n)("请输入用户名"),required:""},null,8,H_),[[Oe,h.value,void 0,{trim:!0}]])])]),e("div",G_,[e("div",j_,[e("span",null,a(o(n)("密码:")),1)]),e("div",W_,[W(e("input",{type:"password","onUpdate:modelValue":C[3]||(C[3]=y=>g.value=y),placeholder:o(n)("请输入密码"),required:""},null,8,J_),[[Oe,g.value,void 0,{trim:!0}]])])])],2),e("div",K_,[e("div",{class:"close",onClick:m,type:"button"},a(o(n)("返回")),1),e("button",{class:"next save",type:"submit",disabled:b.value},a(o(n)("保存")),9,Z_)])],32)]))}}),go=le(Y_,[["__scopeId","data-v-9817991d"]]),Q_={class:"action-main"},X_=X({__name:"index",props:{Close:{type:Function,required:!0},url:{type:String,required:!0}},setup(s){const t=s,n=x(""),l=x("index"),u=v=>{if(v!=null){if(v=="ddnsto"){c();return}l.value=v}else r()},c=()=>{r(),f_({url:t.url})},r=()=>{t.Close&&t.Close()},p=x("ddnsto");return(v,h)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[e("div",Q_,[l.value=="index"?(i(),Y(Cg,{key:0,onSetup:u,active:p.value,"onUpdate:active":h[0]||(h[0]=g=>p.value=g)},null,8,["active"])):l.value=="ddns-ali"?(i(),Y(go,{key:1,onSetup:u,target:n.value,"onUpdate:target":h[1]||(h[1]=g=>n.value=g),name:"ali"},null,8,["target"])):l.value=="ddns-dnspod"?(i(),Y(go,{key:2,onSetup:u,target:n.value,"onUpdate:target":h[2]||(h[2]=g=>n.value=g),name:"dnspod"},null,8,["target"])):l.value=="ddns-oray"?(i(),Y(go,{key:3,onSetup:u,target:n.value,"onUpdate:target":h[3]||(h[3]=g=>n.value=g),name:"oray"},null,8,["target"])):l.value=="ddns-success"?(i(),Y(Ag,{key:4,onSetup:u,target:n.value},null,8,["target"])):T("",!0)])]),_:1},8,["Close"]))}}),ey=le(X_,[["__scopeId","data-v-8c90412c"]]),ty=s=>Qs(ey,s),ny={class:"content service-remote"},ay={class:"tab"},sy=["aria-pressed"],oy=["data-service-state"],ly=["aria-pressed"],iy=["data-service-state"],ry=["aria-pressed"],cy=["data-service-state"],dy={key:0,class:"remote-details"},uy={class:"remote-address-heading"},vy={class:"remote-console",href:"https://www.kooldns.cn/app/#/devices",target:"_blank",rel:"noopener noreferrer"},py=["href","title"],hy={key:1,class:"service-idle"},my={class:"remote-description"},fy={key:1,class:"remote-details"},by={class:"remote-address-heading"},gy=["aria-label"],_y={key:0,class:"service-idle"},yy=["href"],ky={class:"remote-description"},wy={key:2,class:"remote-details"},$y={class:"remote-address-heading"},Cy=["aria-label"],Sy={key:0,class:"service-idle"},xy=["href"],Py={class:"remote-description"},Ty=X({__name:"RemoteDomain",setup(s){const t=window.vue_lang==="en",n=(C,y)=>t?y:C,l=Ys(),{$gettext:u}=Ae(),c=x(0),r=x(!1),p=C=>{c.value=C,r.value=!0},v=C=>!!(C&&C!=="Stopped"&&C!=="Disabled"),h=()=>{if(r.value)return;const y=[{index:0,active:!!m.value.ddnstoDomain},{index:1,active:v(m.value.ipv4Domain)},{index:2,active:v(m.value.ipv6Domain)}].find(P=>P.active);c.value=y?y.index:0};let g=!1,b;const m=x({}),f=function(){g&&(document.hidden?Promise.resolve():we.Guide.GetDdns.GET().then(C=>{var y;C!=null&&C.data&&(((y=C==null?void 0:C.data)==null?void 0:y.success)||0)==0&&C.data.result&&(m.value=C.data.result,h())})).then(()=>{g&&(b=window.setTimeout(f,3e3))})},k=fa("remote",C=>{m.value=C,h()});nt(()=>{k||(g=!0,b=window.setTimeout(f,1100))}),lt(()=>{b!==void 0&&window.clearTimeout(b),g=!1});const $=()=>{l(ty,{url:m.value.ddnstoDomain})},w=R(()=>{const C=m.value.ipv4Domain;return!C||C=="Stopped"||C=="Disabled"?C:`http://${C}`}),S=R(()=>{const C=m.value.ipv6Domain;return!C||C=="Stopped"||C=="Disabled"?C:`http://${C}`});return(C,y)=>(i(),Y(ya,{title:o(u)("远程域名"),showSettings:!0,style:{width:"100%",height:"100%",display:"block"}},{icon:pe(()=>[G(bo,{color:"#00a63e",class:"icon"})]),settings:pe(()=>[e("button",{type:"button",class:"btn_settings",onClick:$},[G(bo,{color:"#0a0a0a",class:"icon1 earthIcon",style:{"margin-right":"6px"}}),ue(a(o(u)("域名配置")),1)])]),default:pe(()=>{var P,_,D,E,A,U,q,z,N,F;return[e("div",ny,[e("div",ay,[e("button",{type:"button","aria-pressed":c.value==0,class:_e(["item cloud",{active:c.value==0}]),onClick:y[0]||(y[0]=Z=>p(0))},[G(bo,{color:"#155dfc",class:"icon2"}),y[3]||(y[3]=e("div",{class:"title"},"DDNSTO",-1)),e("span",{"data-service-state":o(Jn)((P=m.value)==null?void 0:P.ddnstoDomain)},a(o($n)(o(Jn)((_=m.value)==null?void 0:_.ddnstoDomain),t)),9,oy)],10,sy),w.value?(i(),d("button",{key:0,type:"button","aria-pressed":c.value==1,class:_e(["item memory",{active:c.value==1}]),onClick:y[1]||(y[1]=Z=>p(1))},[G(Mi,{color:"#00a63e",class:"icon2"}),y[4]||(y[4]=e("div",{class:"title"},"IPv4",-1)),e("span",{"data-service-state":o(Jn)((D=m.value)==null?void 0:D.ipv4Domain)},a(o($n)(o(Jn)((E=m.value)==null?void 0:E.ipv4Domain),t)),9,iy)],10,ly)):T("",!0),S.value?(i(),d("button",{key:1,type:"button","aria-pressed":c.value==2,class:_e(["item network",{active:c.value==2}]),onClick:y[2]||(y[2]=Z=>p(2))},[G(rg,{class:"icon2"}),y[5]||(y[5]=e("div",{class:"title"},"IPv6",-1)),e("span",{"data-service-state":o(Jn)((A=m.value)==null?void 0:A.ipv6Domain)},a(o($n)(o(Jn)((U=m.value)==null?void 0:U.ipv6Domain),t)),9,cy)],10,ry)):T("",!0)]),c.value==0?(i(),d("div",dy,[e("div",uy,[e("span",null,a(n("访问地址","Access address")),1),e("a",vy,a(o(u)("控制台")),1)]),(q=m.value)!=null&&q.ddnstoDomain?(i(),d("a",{key:0,class:"remote-address",href:(z=m.value)==null?void 0:z.ddnstoDomain,target:"_blank",rel:"noopener noreferrer",title:(N=m.value)==null?void 0:N.ddnstoDomain},a((F=m.value)==null?void 0:F.ddnstoDomain),9,py)):(i(),d("p",hy,a(n("尚未配置访问地址。","No access address is configured.")),1)),e("p",my,a(o(u)("智能内网穿透服务")),1)])):T("",!0),c.value==1?(i(),d("div",fy,[e("div",by,[e("span",null,"IPv4 "+a(n("访问地址","Access address")),1),w.value?(i(),d("a",{key:0,class:"remote-console",href:"/cgi-bin/luci/admin/services/ddns","aria-label":n("配置 IPv4 动态域名","Configure IPv4 DDNS")},[G(Vl,{class:"icon3"}),ue(a(n("配置","Configure")),1)],8,gy)):T("",!0)]),w.value=="Stopped"||w.value=="Disabled"?(i(),d("p",_y,a(n("尚无可用访问地址,请检查域名配置。","No access address is available. Check domain settings.")),1)):(i(),d("a",{key:1,class:"remote-address",href:w.value,target:"_blank",rel:"noopener noreferrer"},a(w.value),9,yy)),e("p",ky,a(o(u)("动态域名解析")),1)])):T("",!0),c.value==2?(i(),d("div",wy,[e("div",$y,[e("span",null,"IPv6 "+a(n("访问地址","Access address")),1),S.value?(i(),d("a",{key:0,class:"remote-console",href:"/cgi-bin/luci/admin/services/ddns","aria-label":n("配置 IPv6 动态域名","Configure IPv6 DDNS")},[G(Vl,{class:"icon3"}),ue(a(n("配置","Configure")),1)],8,Cy)):T("",!0)]),S.value=="Stopped"||S.value=="Disabled"?(i(),d("p",Sy,a(n("尚无可用访问地址,请检查域名配置。","No access address is available. Check domain settings.")),1)):(i(),d("a",{key:1,class:"remote-address",href:S.value,target:"_blank",rel:"noopener noreferrer"},a(S.value),9,xy)),e("p",Py,a(o(u)("动态域名解析")),1)])):T("",!0)])]}),_:1},8,["title"]))}}),My=le(Ty,[["__scopeId","data-v-72b8c1d6"]]),Ey={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Iy=["fill"],Dy=["fill"],Ai=X({__name:"chip",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",Ey,[e("path",{d:"M577.78 355.55H449.62c-52.93 0-96 43.07-96 96V579.7c0 52.93 43.07 96 96 96h128.15c52.93 0 96-43.07 96-96V451.55c0.01-52.93-43.06-96-95.99-96z m32 224.15c0 17.64-14.36 32-32 32H449.62c-17.65 0-32-14.36-32-32V451.55c0-17.65 14.35-32 32-32h128.15c17.64 0 32 14.35 32 32V579.7z",fill:s.color,"p-id":"5378"},null,8,Iy),e("path",{d:"M927.33 547.13c17.67 0 32-14.33 32-32s-14.33-32-32-32h-62.44V355.2h62.44c17.67 0 32-14.33 32-32s-14.33-32-32-32h-64.37c-10.34-64.43-61.3-115.45-125.69-125.87v-64.19c0-17.67-14.33-32-32-32s-32 14.33-32 32v62.22H545.34v-62.22c0-17.67-14.33-32-32-32s-32 14.33-32 32v62.22H353.2v-62.22c0-17.67-14.33-32-32-32s-32 14.33-32 32v64.16c-64.46 10.37-115.49 61.42-125.83 125.9H99.14c-17.67 0-32 14.33-32 32s14.33 32 32 32h62.3v127.93h-62.3c-17.67 0-32 14.33-32 32s14.33 32 32 32h62.3v128.14h-62.3c-17.67 0-32 14.33-32 32s14.33 32 32 32h64.28c10.45 64.34 61.42 115.25 125.79 125.61v64.46c0 17.67 14.33 32 32 32s32-14.33 32-32v-62.51h128.14v62.51c0 17.67 14.33 32 32 32s32-14.33 32-32v-62.51h127.93v62.51c0 17.67 14.33 32 32 32s32-14.33 32-32v-64.48c64.3-10.41 115.2-61.29 125.64-125.58h64.42c17.67 0 32-14.33 32-32s-14.33-32-32-32H864.9V547.13h62.43zM800.89 714.82c0 48.52-39.48 88-88 88H313.44c-48.52 0-88-39.48-88-88V315.36c0-48.52 39.48-88 88-88H712.9c48.52 0 88 39.48 88 88v399.46z",fill:s.color,"p-id":"5379"},null,8,Dy)]))}}),Ly={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Ay=["fill"],Ny=X({__name:"temperature",props:{color:{type:String,default:"#ef4444"}},setup(s){return(t,n)=>(i(),d("svg",Ly,[e("path",{d:"M520 75c72.899 0 132.133 58.543 133.31 131.209l0.018 2.206v399.237C700.759 646.978 729 705.514 729 768.714c0 84.846-50.493 157.892-123.051 190.69C579.509 971.959 549.966 979 518.85 979c-57.133 0-108.962-23.737-146.008-61.784C334.65 879.324 311 826.783 311 768.714c0-63.27 28.313-121.806 75.67-161.065l0.002-399.234C386.672 134.732 446.365 75 520 75z m0 59.807c-40.22 0-72.9 32.3-73.55 72.39l-0.01 1.218v403.457c4.008 12.048-0.02 25.747-10.721 33.573l-0.619 0.441c-40.008 27.753-64.332 73.214-64.332 122.828 0 82.472 66.813 149.33 149.232 149.33s149.232-66.858 149.232-149.33c0-47.591-22.367-91.397-59.645-119.44l-1.134-0.846a29.773 29.773 0 0 1-10.972-15.751 29.763 29.763 0 0 1-3.913-14.111l-0.008-0.706V208.415c0-40.653-32.934-73.608-73.56-73.608z m-2.299 236.926c4.41 0 8.66 0.69 12.647 1.968 16.826 4.965 29.19 20.52 29.19 38.81l0.002 240.184c47.972 17.182 82.294 63.07 82.294 116.982 0 6.94-0.568 13.747-1.662 20.376-6.746 60.536-58.728 108.02-121.321 108.02-47.223 0-88.407-27.027-108.683-66.296-10.557-18.27-16.6-39.479-16.6-62.1 0-54.083 34.542-100.093 82.754-117.145l0.002-239.422c0-22.852 18.525-41.377 41.377-41.377z",fill:s.color,"p-id":"4599"},null,8,Ay)]))}}),Oy={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},zy=["fill"],Ni=X({__name:"lightning",props:{color:{type:String,default:"#222222"}},setup(s){return(t,n)=>(i(),d("svg",Oy,[e("path",{d:"M760.1 64l-150 262.7-41 71.8c-6.1 10.7 1.6 23.9 13.9 23.9h104.7c13.9 0 21.2 16.6 11.8 26.9L410.8 761.9l59.5-178.5 21.1-63.2c3.5-10.4-4.3-21.1-15.2-21.1H277.8c-11.6 0-19.4-12-14.6-22.6l179-393.8c5.2-11.4 16.6-18.8 29.1-18.8h288.8M450.8 0c-25.1 0-47.9 14.7-58.3 37.5L194.7 472.7c-19.3 42.4 11.7 90.5 58.3 90.5h145.5c5.5 0 9.3 5.3 7.6 10.5L256 1024l515.3-558.2c37.8-41 8.8-107.4-47-107.4h-44.8c-6.1 0-10-6.6-6.9-12L870.4 0H450.8z","p-id":"4712",fill:s.color},null,8,zy)]))}}),qy={key:0,class:"center-content"},Ry=X({__name:"PieChart",props:{value:{},color:{},icon:{},label:{},width:{},height:{}},setup(s){Yl([Br,Ql,Xl]);const t=s,n=x(null);let l=null,u=null;function c(h,g){return{tooltip:{show:!1},series:[{type:"pie",radius:["75%","90%"],avoidLabelOverlap:!1,label:{show:!1},labelLine:{show:!1},z:1,zlevel:0,data:[{value:h,itemStyle:{color:g||"#409EFF"}},{value:Math.max(0,100-h),itemStyle:{color:$s()?"#414b59":"#f0f0f0"}}]}]}}const r=()=>{n.value&&(u=$s()?"dark":"light",l=l!=null?l:ei(n.value,u==="dark"?"dark":"v5"),l.setOption(c(t.value,t.color)))};nt(()=>B(null,null,function*(){yield ot(),r(),v=is(h=>{l&&u!==h.effective&&(l.dispose(),l=null,r())}),window.addEventListener("resize",p)}));function p(){l==null||l.resize()}We(()=>[t.value,t.color],()=>{l?l.setOption({series:[{z:1,zlevel:0,data:[{value:t.value,itemStyle:{color:t.color||"#409EFF"}},{value:Math.max(0,100-t.value),itemStyle:{color:$s()?"#414b59":"#f0f0f0"}}]}]}):r()},{immediate:!0});let v=()=>{};return ga(()=>{window.removeEventListener("resize",p),v(),l==null||l.dispose(),l=null}),(h,g)=>(i(),d("div",{class:"pie-chart-wrapper",style:pt({width:s.width||"120px",height:s.height||"120px"})},[e("div",{ref_key:"chartDom",ref:n,class:"chart-dom"},null,512),s.icon||s.label?(i(),d("div",qy,[s.icon==="chip"?(i(),Y(Ai,{key:0,color:s.color,class:"center-icon"},null,8,["color"])):s.icon==="temperature"?(i(),Y(Ny,{key:1,color:s.color,class:"center-icon"},null,8,["color"])):s.icon==="lightning"?(i(),Y(Ni,{key:2,color:s.color,class:"center-icon"},null,8,["color"])):T("",!0),s.label?(i(),d("div",{key:3,class:"center-label",style:pt({color:s.color})},a(s.label),5)):T("",!0)])):T("",!0)],4))}}),_o=le(Ry,[["__scopeId","data-v-ab88bb4d"]]),Vy={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},By=["fill"],Rs=X({__name:"computer",props:{color:{type:String,default:"#0a0a0a"}},setup(s){return(t,n)=>(i(),d("svg",Vy,[e("path",{d:"M868.95177918 215.34678468H274.11312994c-10.26749627 0-19.00277466 3.6151618-26.30943653 10.88910739-7.22487113 7.23032433-10.89456058 15.97650768-10.89456059 26.20583515v370.75858453c0 10.24023245 3.66968946 18.95370022 10.89456059 26.22764579 7.30666259 7.22487113 16.04194099 10.86184429 26.30943653 10.86184429h594.83864924c10.28385442 0 19.04094415-3.63697315 26.28217344-10.86184429 7.30120941-7.27394558 10.9218244-15.98741334 10.92182439-26.22764579V252.44172722c0-10.2293275-3.62061501-18.97551083-10.92727686-26.20583516-7.23577681-7.27394558-15.99286582-10.8891081-26.27672097-10.88910738M274.09131931 141.21142578h594.83864924c30.77522572 0 57.07375657 10.86729676 78.86287773 32.59643853 21.78912116 21.74004671 32.66187112 47.91861806 32.66187114 78.62841045v370.76403699c0 30.68798176-10.87274996 56.91562756-32.66187114 78.63386293-21.78912116 21.72914105-48.08765274 32.59643853-78.86287773 32.59643851H608.68737796v74.15716953h111.5465602c10.26204379 0 19.03003849 3.6151618 26.28217344 10.8891081 7.29030445 7.22487113 10.91091874 15.97650768 10.91091872 26.20583518 0 10.24023245-3.62061501 18.98641651-10.91637192 26.20038195-7.25213496 7.28485125-16.01467717 10.90001305-26.27672024 10.90001379H422.80370787c-10.27840195 0-19.0191328-3.6151618-26.30943728-10.90001379-7.25213496-7.21396618-10.89456058-15.96014952-10.89456056-26.20038195 0-10.23477998 3.6478781-18.97551083 10.89456056-26.20583518 7.29030445-7.27394558 16.03103531-10.8891081 26.30943728-10.8891081h111.53565452v-74.15716953H274.09131931c-30.79703633 0-57.09011544-10.86729676-78.86287845-32.59643851C173.43931968 680.11593931 162.54475911 653.88829351 162.54475911 623.20031175V252.44172722C162.54475911 221.72648236 173.43931968 195.54791102 195.22844086 173.80786431 217.00665706 152.07872254 243.29428298 141.21142578 274.09131931 141.21142578","p-id":"6454",fill:s.color},null,8,By)]))}}),Uy={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Fy=["fill"],Hy=["fill"],Gy=X({__name:"system1",props:{color:{type:String,default:"#333333"}},setup(s){return(t,n)=>(i(),d("svg",Uy,[e("path",{d:"M512 458.67c-8.66 0-15.69 7.02-15.69 15.69v125.49c0 8.66 7.02 15.69 15.69 15.69s15.69-7.02 15.69-15.69v-125.5c0-8.66-7.03-15.68-15.69-15.68z m-31.37-26.98h62.75c8.66 0 15.69-7.02 15.69-15.69 0-8.66-7.02-15.69-15.69-15.69h-15.69V296.78c0-8.66-7.02-15.69-15.69-15.69s-15.69 7.02-15.69 15.69v103.53h-15.69c-8.66 0-15.69 7.02-15.69 15.69 0.01 8.66 7.03 15.69 15.7 15.69z m219.61 53.33c-8.66 0-15.69 7.02-15.69 15.69V601.1c0 8.66 7.02 15.69 15.69 15.69s15.69-7.02 15.69-15.69v-99.76c0.35-8.66-6.39-15.95-15.05-16.3-0.22-0.02-0.43-0.02-0.64-0.02z m-31.38-27.61h62.75c8.66 0 15.69-7.02 15.69-15.69 0-8.66-7.02-15.69-15.69-15.69h-14.43V296.78c0-8.66-7.02-15.69-15.69-15.69s-15.69 7.02-15.69 15.69v125.49h-16.94c-8.66 0-15.69 7.02-15.69 15.69 0 8.66 7.02 15.69 15.69 15.69v3.76z m-376.47 32.63h62.75c8.66 0 15.69-7.02 15.69-15.69s-7.02-15.69-15.69-15.69h-15.69V296.78c0-8.66-7.02-15.69-15.69-15.69-8.66 0-15.69 7.02-15.69 15.69v161.88h-15.69c-8.66 0-15.69 7.02-15.69 15.69s7.04 15.69 15.7 15.69z m31.37 32c-8.66 0-15.69 7.02-15.69 15.69v62.75c0 8.66 7.02 15.69 15.69 15.69 8.66 0 15.69-7.02 15.69-15.69v-62.75c0-8.67-7.02-15.69-15.69-15.69z",fill:s.color,"p-id":"15217"},null,8,Fy),e("path",{d:"M870 116.39H154c-49.71 0-90 40.29-90 90v485.1c0 49.71 40.29 90 90 90h716c49.71 0 90-40.29 90-90v-485.1c0-49.7-40.29-90-90-90z m50 565.1c0 33.14-26.86 60-60 60H164c-33.14 0-60-26.86-60-60v-465.1c0-33.14 26.86-60 60-60h696c33.14 0 60 26.86 60 60v465.1zM680.24 907.61H343.76c-11.05 0-20-8.95-20-20s8.95-20 20-20h336.48c11.05 0 20 8.95 20 20 0 11.04-8.96 20-20 20z",fill:s.color,"p-id":"15218"},null,8,Hy)]))}}),jy={key:0,class:"system-read-announcement",role:"status"},Wy={key:1,class:"system-read-error",role:"status"},Oi=X({__name:"SystemReadState",props:{loading:{type:Boolean},error:{}},emits:["retry"],setup(s){const t=(n,l)=>window.vue_lang==="en"?l:n;return(n,l)=>s.loading?(i(),d("span",jy,a(t("正在读取系统信息","Loading system information")),1)):s.error?(i(),d("div",Wy,[e("span",null,a(s.error),1),e("button",{type:"button",onClick:l[0]||(l[0]=u=>n.$emit("retry"))},a(t("重试","Retry")),1)])):T("",!0)}}),Jy={href:"/cgi-bin/luci/admin/system/flash"},Ky={href:"/cgi-bin/luci/admin/store/pages/maintance"},Zy=["aria-hidden","inert"],Yy={class:"chart_box"},Qy={class:"chart"},Xy={class:"chart"},ek={class:"chart"},tk={class:"system-facts","data-system-facts":""},nk={class:"system-fact-list"},ak={class:"system-fact system-fact--wide system-fact--model","data-system-fact":"model"},sk={class:"system-fact-label"},ok={class:"system-fact-value"},lk={class:"system-fact system-fact--wide system-fact--firmware","data-system-fact":"firmware"},ik={class:"system-fact-label"},rk={class:"system-fact-value"},ck={class:"system-kernel"},dk={class:"system-fact","data-system-fact":"time"},uk={class:"system-fact-label"},vk={class:"system-fact-value"},pk={class:"system-fact","data-system-fact":"uptime"},hk={class:"system-fact-label"},mk={class:"system-fact-value"},fk=X({__name:"SystemInfo",props:{loading:{type:Boolean},readError:{}},emits:["retry"],setup(s){const{$gettext:t}=Ae(),n=Oa(),l=qa(),u=R(()=>l?l.data.version:n.version),c=R(()=>l?l.data.system:n.systemStatus),r=x(!1),p=R(()=>{var S;return((S=c.value)==null?void 0:S.cpuUsage)||0}),v=R(()=>{var S;return((S=c.value)==null?void 0:S.cpuTemperature)||0}),h=R(()=>{var C;return 100-(((C=c.value)==null?void 0:C.memAvailablePercentage)||100)}),g=R(()=>{const S=p.value;return S<76?"#3b82f6":S>=76&&S<96?"#f59e0b":"#ef4444"}),b=R(()=>v.value<=115?"#22c55e":"#f97316"),m=R(()=>{const S=h.value;return S<76?"#8b5cf6":S>=76&&S<96?"#fb923c":"#b91c1c"}),f=()=>{location.href="/cgi-bin/luci/admin/status/overview"},k=Fn.stampForm;nt(()=>{});const $=()=>{r.value=!r.value},w=()=>{$(),Xt.installAndGo("app-meta-netdata","NetData","/cgi-bin/luci/admin/status/netdata")};return(S,C)=>(i(),Y(ya,{class:_e(["system-read-card",{"system-read-pending":s.loading}]),"aria-busy":s.loading||void 0,"data-system-loading":s.loading||void 0,"home-menu":[{label:o(t)("系统监控"),action:w},{label:o(t)("备份升级"),href:"/cgi-bin/luci/admin/system/flash"},{label:o(t)("插件备份"),href:"/cgi-bin/luci/admin/store/pages/maintance"}],title:o(t)("系统信息"),showFooter:!1,style:{width:"100%",height:"100%",display:"block"}},{icon:pe(()=>[G(Rs,{class:"icon computerIcon"})]),settings:pe(()=>[e("button",{type:"button",class:"btn_settings",onClick:f},[G(Rs,{color:"#0a0a0a",class:"icon2 computerIcon",style:{"margin-right":"6px"}}),e("span",null,a(o(t)("信息概览")),1)])]),"settings-menu":pe(()=>[e("div",null,[e("a",{onClick:w},a(o(t)("系统监控")),1)]),e("div",null,[e("a",Jy,a(o(t)("备份升级")),1)]),e("div",null,[e("a",Ky,a(o(t)("插件备份")),1)])]),default:pe(()=>{var y,P,_,D;return[e("div",{class:"content system-composition","aria-hidden":s.loading||void 0,inert:s.loading},[e("div",Yy,[e("div",Qy,[G(_o,{value:p.value,color:g.value,icon:"chip",label:c.value?`${p.value}%`:"—",width:"150px",height:"150px"},null,8,["value","color","label"]),e("div",null,a(o(t)("CPU使用率")),1)]),e("div",Xy,[G(_o,{value:v.value/1.5,color:b.value,icon:"temperature",label:c.value?`${v.value}℃`:"—",width:"150px",height:"150px"},null,8,["value","color","label"]),e("div",null,a(o(t)("CPU温度")),1)]),e("div",ek,[G(_o,{value:h.value,color:m.value,icon:"lightning",label:c.value?`${h.value}%`:"—",width:"150px",height:"150px"},null,8,["value","color","label"]),e("div",null,a(o(t)("内存使用率")),1)])]),e("div",tk,[e("dl",nk,[e("div",ak,[e("dt",sk,[G(Ai,{color:"currentColor","aria-hidden":"true"}),e("span",null,a(o(t)("设备型号")),1)]),e("dd",ok,a(((y=u.value)==null?void 0:y.model)||"—"),1)]),e("div",lk,[e("dt",ik,[G(Gy,{color:"currentColor","aria-hidden":"true"}),e("span",null,a(o(t)("固件版本")),1)]),e("dd",rk,[ue(a(((P=u.value)==null?void 0:P.firmwareVersion)||"—"),1),e("small",ck,a(o(t)("内核"))+" "+a(((_=u.value)==null?void 0:_.kernelVersion)||"—"),1)])]),e("div",dk,[e("dt",uk,[G(Qe,{name:"clock"}),e("span",null,a(o(t)("系统时间")),1)]),e("dd",vk,a(((D=c.value)==null?void 0:D.localtime)||"—"),1)]),e("div",pk,[e("dt",hk,[G(Qe,{name:"power"}),e("span",null,a(o(t)("已启动")),1)]),e("dd",mk,a(c.value?o(k)(c.value.uptime):"—"),1)])])])],8,Zy),G(Oi,{loading:s.loading,error:s.readError,onRetry:C[0]||(C[0]=E=>S.$emit("retry"))},null,8,["loading","error"])]}),_:1},8,["class","aria-busy","data-system-loading","home-menu","title"]))}}),Bl=le(fk,[["__scopeId","data-v-bcd79f60"]]),bk={class:"system-overview-actions widget-action-group"},gk=["aria-hidden","inert"],_k=["data-system-metric"],yk=["aria-hidden"],kk={"data-system-uptime":""},wk=X({__name:"SystemOverview",props:{loading:{type:Boolean},readError:{}},emits:["details","retry"],setup(s){const t=window.vue_lang==="en",n=(h,g)=>t?g:h,l=Oa(),u=qa(),c=R(()=>u?u.data.system:l.systemStatus),r=R(()=>{const h=c.value,g=(h==null?void 0:h.cpuUsage)||0,b=(h==null?void 0:h.cpuTemperature)||0,m=100-((h==null?void 0:h.memAvailablePercentage)||100);return[{id:"cpu",label:n("CPU使用率","CPU usage"),value:g,unit:"%",percent:Math.max(0,Math.min(100,g)),color:g<76?"#3b82f6":g<96?"#f59e0b":"#ef4444"},{id:"temperature",label:n("CPU温度","CPU temp"),value:b,unit:"℃",percent:Math.max(0,Math.min(100,b/1.5)),color:b<=115?"#22c55e":"#f97316"},{id:"memory",label:n("内存使用率","Memory"),value:m,unit:"%",percent:Math.max(0,Math.min(100,m)),color:m<76?"#8b5cf6":m<96?"#fb923c":"#b91c1c"}]}),p=R(()=>c.value?Fn.stampForm(c.value.uptime):"—");function v(){window.location.assign("/cgi-bin/luci/admin/status/overview")}return(h,g)=>(i(),Y(ya,{"home-custom-menu":"",title:n("系统信息","System information"),class:_e(["system-overview system-read-card",{"system-read-pending":s.loading}]),"aria-busy":s.loading||void 0,"data-system-loading":s.loading||void 0,"data-system-form":"summary"},{icon:pe(()=>[G(Rs,{class:"icon"})]),settings:pe(()=>[e("div",bk,[G(_a,{icon:"chip",class:"system-overview-primary",onClick:v,"data-system-overview":""},{icon:pe(()=>[G(Rs,{color:"currentColor"})]),default:pe(()=>[ue(a(n("信息概览","Overview")),1)]),_:1})])]),default:pe(()=>[e("div",{class:"system-overview-metrics","aria-hidden":s.loading||void 0,inert:s.loading},[(i(!0),d(V,null,oe(r.value,b=>(i(),d("div",{key:b.id,"data-system-metric":b.id},[e("span",null,a(b.label),1),e("strong",null,[ue(a(c.value?b.value:"—"),1),e("small",null,a(c.value?b.unit:""),1)]),e("i",null,[e("b",{style:pt({width:(c.value?b.percent:0)+"%",background:b.color})},null,4)])],8,_k))),128))],8,gk),e("p",{class:"system-overview-uptime","aria-hidden":s.loading||void 0},[e("span",null,a(n("已启动","Uptime")),1),e("strong",kk,a(p.value),1)],8,yk),G(Oi,{loading:s.loading,error:s.readError,onRetry:g[0]||(g[0]=b=>h.$emit("retry"))},null,8,["loading","error"])]),_:1},8,["title","class","aria-busy","data-system-loading"]))}}),$k=le(wk,[["__scopeId","data-v-7c48e3cd"]]),Ck=["data-business-surface"],Sk={key:0,class:"native-partial",role:"status"},xk={key:1,class:"native-read-state",role:"status"},Pk={key:0,class:"native-partial",role:"status"},Tk={key:2,class:"native-read-state",role:"status"},Mk={key:3,class:"native-partial",role:"status","data-projection-warning":""},yo=X({__name:"BusinessSurface",props:{id:{},data:{},errors:{},unbounded:{type:Boolean},compact:{type:Boolean}},emits:["retry","details"],setup(s,{emit:t}){const n=s,l=t,u=x(null);ma(Js,{data:n.data,bounded:()=>!n.unbounded,details:()=>l("details"),invalidate:()=>l("retry")});const c=window.vue_lang==="en",r=(y,P)=>c?P:y,p=x(!document.hidden),v=()=>p.value=!document.hidden,h={storage:Qh,sharing:gf,docker:A7,downloads:tg,remote:My,system:Bl},g=R(()=>h[n.id]),b={storage:["disks","raid"],sharing:["sharing"],docker:["docker"],downloads:["download"],remote:["remote"],system:["system","version"]},m=R(()=>b[n.id]),f={storage:r("磁盘信息","Disk information"),sharing:r("存储服务","Storage services"),docker:"Docker",downloads:r("下载服务","Download services"),remote:r("远程域名","Remote domains"),system:r("系统信息","System information")},k=R(()=>f[n.id]),$=R(()=>m.value.every(y=>n.errors[y]&&!n.data[y])),w=R(()=>m.value.some(y=>n.errors[y])),S=R(()=>m.value.every(y=>n.data[y]||n.errors[y])),C=R(()=>{var _,D;if(n.id!=="storage")return"";const y=n.errors.disks?[]:((_=n.data.disks)==null?void 0:_.disks)||[],P=n.errors.raid?[]:((D=n.data.raid)==null?void 0:D.disks)||[];return[...y,...P].slice(3).some(E=>{var A;return E.errorInfo||E.smartWarning||((A=E.childrens)==null?void 0:A.some(U=>U.isReadOnly&&U.filesystem!=="swap"))})?r("有未展开的磁盘异常。","Additional disks have warnings."):""});return nt(()=>document.addEventListener("visibilitychange",v)),lt(()=>document.removeEventListener("visibilitychange",v)),(y,P)=>(i(),d("div",{ref_key:"surface",ref:u,class:_e(["native-business-surface",["native-"+s.id,{unbounded:s.unbounded,"native-compact":s.compact}]]),"data-business-surface":s.id},[s.id==="system"?(i(),d(V,{key:0},[S.value&&w.value&&!$.value?(i(),d("p",Sk,[ue(a(r("部分信息读取失败,以下为已取得的快照,当前状态待确认。","Some information is unavailable. Showing previous snapshots; current state is unconfirmed."))+" ",1),e("button",{onClick:P[0]||(P[0]=_=>y.$emit("retry"))},a(r("重试","Retry")),1)])):T("",!0),(i(),Y(Aa(s.compact?$k:Bl),{loading:!S.value,"read-error":$.value?r("读取失败,其他组件仍可使用","Unavailable; other widgets remain usable"):void 0,onDetails:P[1]||(P[1]=_=>y.$emit("details")),onRetry:P[2]||(P[2]=_=>y.$emit("retry"))},null,40,["loading","read-error"]))],64)):$.value?(i(),d("div",xk,[ue(a(k.value)+" · "+a(r("读取失败,其他组件仍可使用","Unavailable; other widgets remain usable")),1),e("button",{onClick:P[3]||(P[3]=_=>y.$emit("retry"))},a(r("重试","Retry")),1)])):(i(),d(V,{key:2},[w.value?(i(),d("p",Pk,[ue(a(r("部分信息读取失败,以下为已取得的快照,当前状态待确认。","Some information is unavailable. Showing previous snapshots; current state is unconfirmed."))+" ",1),e("button",{onClick:P[4]||(P[4]=_=>y.$emit("retry"))},a(r("重试","Retry")),1)])):T("",!0),S.value&&p.value?(i(),Y(Aa(g.value),{key:1})):(i(),d("div",Tk,a(k.value)+" · "+a(r("读取中…","Loading…")),1))],64)),S.value&&!s.unbounded&&C.value?(i(),d("p",Mk,[ue(a(C.value)+" ",1),e("button",{onClick:P[5]||(P[5]=_=>y.$emit("details")),"data-projection-warning-open":""},a(r("查看异常","View warnings")),1)])):T("",!0)],10,Ck))}}),Ek=["data-native-widget","data-system-presentation"],Ik={key:0,role:"status"},Dk=X({__name:"BusinessCard",props:{id:{},data:{},errors:{},summary:{type:Boolean}},emits:["retry"],setup(s){const t=s,n=x(!1),l=window.vue_lang==="en",u=(b,m)=>l?m:b,c={storage:["磁盘信息","Disk information"],sharing:["存储服务","Storage services"],docker:["Docker","Docker"],downloads:["下载服务","Download services"],remote:["远程域名","Remote domains"],system:["系统信息","System information"]},r=R(()=>u(...c[t.id])),p={storage:"disks",downloads:"download"},v=R(()=>p[t.id]||t.id),h=R(()=>t.id==="storage"?t.errors.disks&&t.errors.raid:t.errors[v.value]||t.id==="system"&&t.errors.version),g=R(()=>{var m,f,k,$,w,S,C,y,P,_;const b=t.data;return t.id==="system"&&!b.system?[u("读取中","Loading")]:t.id==="system"?[u("CPU使用率","CPU usage")+" "+(((m=b.system)==null?void 0:m.cpuUsage)||0)+"% · "+u("CPU温度","CPU temperature")+" "+(((f=b.system)==null?void 0:f.cpuTemperature)||0)+"℃",u("内存使用率","Memory usage")+" "+(100-(((k=b.system)==null?void 0:k.memAvailablePercentage)||100))+"%",(($=b.version)==null?void 0:$.firmwareVersion)||u("读取中","Loading")]:t.id==="storage"?[`${t.errors.disks||!b.disks?"—":((w=b.disks.disks)==null?void 0:w.length)||0} ${u("块磁盘","disks")} · RAID ${t.errors.raid||!b.raid?"—":((S=b.raid.disks)==null?void 0:S.length)||0}`,...t.errors.disks||t.errors.raid?[u("部分磁盘信息暂不可用","Some disk information is unavailable")]:[]]:t.id==="sharing"?b.sharing?[`易有云 · ${(C=b.sharing.linkease)!=null&&C.enabel?u("已配置","Configured"):u("未配置","Not configured")}`,`SAMBA · ${(y=b.sharing.sambas)!=null&&y.length?u("已启用","Enabled"):u("未启用","Disabled")}`,`WEBDAV · ${(P=b.sharing.webdav)!=null&&P.path?u("已启用","Enabled"):u("未启用","Disabled")}`]:[u("读取中","Loading")]:t.id==="docker"?[b.docker?$n(zn(b.docker.status),l):u("读取中","Loading"),((_=b.docker)==null?void 0:_.status)==="running"?b.docker.path:""].filter(Boolean):t.id==="downloads"?["aria2","qbittorrent","transmission"].map(D=>{var E;return`${D} · ${b.download?$n(zn((E=b.download[D])==null?void 0:E.status),l):u("读取中","Loading")}`}):b.remote?["DDNSTO · "+$n(Jn(b.remote.ddnstoDomain),l),...["ipv4Domain","ipv6Domain"].filter(D=>b.remote[D]).map(D=>D.slice(0,4).toUpperCase()+" · "+$n(Jn(b.remote[D]),l)+(["Stopped","Disabled"].includes(b.remote[D])?"":" · "+b.remote[D]))]:[u("读取中","Loading")]});return(b,m)=>(i(),d("section",{class:_e(["native-business-card",{"native-summary":s.summary&&s.id!=="system"}]),"data-native-widget":s.id,"data-system-presentation":s.id==="system"?s.summary?"summary":"standard":void 0},[s.id==="system"&&!n.value?(i(),Y(yo,{key:0,id:s.id,data:s.data,errors:s.errors,compact:s.summary,onDetails:m[0]||(m[0]=f=>n.value=!0),onRetry:m[1]||(m[1]=f=>b.$emit("retry"))},null,8,["id","data","errors","compact"])):s.summary?(i(),d(V,{key:1},[e("header",null,[e("h2",null,[G(Qe,{name:o(rn)(s.id).glyph},null,8,["name"]),ue(a(r.value),1)])]),h.value?(i(),d("p",Ik,[ue(a(u("信息暂不可用","Information unavailable"))+" ",1),e("button",{onClick:m[2]||(m[2]=f=>b.$emit("retry"))},a(u("重试","Retry")),1)])):(i(!0),d(V,{key:1},oe(g.value,f=>(i(),d("p",{key:f},a(f),1))),128))],64)):n.value?T("",!0):(i(),Y(yo,{key:2,id:s.id,data:s.data,errors:s.errors,onDetails:m[3]||(m[3]=f=>n.value=!0),onRetry:m[4]||(m[4]=f=>b.$emit("retry"))},null,8,["id","data","errors"])),n.value?(i(),Y(na,{key:3,title:r.value,onClose:m[6]||(m[6]=f=>n.value=!1)},{default:pe(()=>[G(yo,{id:s.id,data:s.data,errors:s.errors,unbounded:"",onRetry:m[5]||(m[5]=f=>b.$emit("retry"))},null,8,["id","data","errors"])]),_:1},8,["title"])):T("",!0)],10,Ek))}}),Lk=le(Dk,[["__scopeId","data-v-66e01d0f"]]),Ak=["inert","data-layout-card","data-natural-card","data-presentation","data-chart-stretch"],Nk={class:"traffic-header-actions widget-action-group"},Ok={key:1,class:"speed-announcement",role:"status"},zk={key:2,class:"speed-error",role:"status","data-speed-error":""},qk=["aria-label"],Rk={key:3,class:"layout-data-notice"},Vk={key:1,class:"qs-card-placeholder","data-missing-plugin":"",role:"status"},Bk=X({__name:"HomeWidget",props:{id:{},data:{},errors:{},devices:{},theme:{},contained:{type:Boolean},preference:{},natural:{type:Boolean},role:{},chartStretch:{type:Boolean},editing:{type:Boolean}},emits:["navigate","device","retry"],setup(s,{emit:t}){const n=s,l=Ko(),u=R(()=>l.cards.value.find(_=>_.id===n.id)),c=R(()=>window.vue_lang==="en"?rn(n.id).en:rn(n.id).zh);function r(){return B(this,null,function*(){return(yield l.discover(!0)).find(_=>_.id===n.id)})}ma(Js,{data:n.data,bounded:()=>!0,details:()=>{},invalidate:()=>b("retry")});const p=R(()=>On.source==="traffic"&&On.status==="loading"),v=R(()=>On.source==="traffic"&&!["idle","loading"].includes(On.status));function h(){Ao(es.find(_=>_.id==="fastnet"),"traffic")}function g(){var _,D;gi(),(D=(_=k.value)==null?void 0:_.querySelector("[data-home-speed]"))==null||D.focus({preventScroll:!0})}const b=t,m=window.vue_lang==="en",f=(_,D)=>m?D:_,k=x(null),$=x(600),w=x(320),S=R(()=>Kt(n.id,n.preference||{mode:"auto",iconRows:0},{width:$.value,height:n.natural?1e5:w.value,role:n.role||"ordinary",favoriteCount:4,mobile:$.value<650,natural:n.natural})),C=x(!document.hidden),y=()=>C.value=!document.hidden;let P;return nt(()=>{n.id==="traffic"&&document.addEventListener("visibilitychange",y),P=new ResizeObserver(_=>{$.value=_[0].contentRect.width,w.value=_[0].contentRect.height}),k.value&&P.observe(k.value)}),lt(()=>{P==null||P.disconnect(),document.removeEventListener("visibilitychange",y)}),(_,D)=>(i(),d("div",{class:_e(["layout-widget",["widget-"+s.id,{narrow:$.value<450,medium:$.value<650,short:!s.natural&&w.value<310}]]),ref_key:"element",ref:k,inert:s.editing,"data-layout-card":s.id,"data-natural-card":s.natural||void 0,"data-presentation":S.value.id,"data-chart-stretch":s.id==="traffic"&&s.chartStretch||void 0},[s.id==="traffic"?(i(),d(V,{key:0},[C.value?(i(),Y(qu,{key:s.theme})):T("",!0),e("div",Nk,[G(_a,{icon:"activity",class:"layout-speed","data-home-speed":"",onClick:h,disabled:p.value,"aria-busy":p.value,"aria-label":f("网络测速","Network speed test")},{default:pe(()=>[ue(a(f("测速","Test")),1)]),_:1},8,["disabled","aria-busy","aria-label"])]),p.value?(i(),d("span",Ok,a(f("正在打开FastNet","Opening FastNet")),1)):T("",!0),v.value?(i(),d("div",zk,[e("span",null,a(o(On).status==="timeout"?f("打开测速超时,请重试。","Opening speed test timed out. Please retry."):o(On).status==="permission"?f("无访问权限,请重新登录后重试。","No permission. Sign in and retry."):f("暂时无法打开测速,请重试。","Unable to open speed test. Please retry.")),1),e("div",null,[e("button",{onClick:h,"data-speed-retry":""},a(f("重试","Retry")),1),e("button",{onClick:g,"data-speed-dismiss":"","aria-label":f("关闭提示","Dismiss")},"×",8,qk)])])):T("",!0),s.errors.traffic?(i(),d("span",Rk,a(f("流量采样暂不可用","Traffic sampling unavailable")),1)):T("",!0)],64)):s.id==="connection"?(i(),Y(g4,{key:1,data:s.data.network,error:s.errors.network,summary:S.value.id==="summary",onNavigate:D[0]||(D[0]=E=>_.$emit("navigate",E)),onRetry:D[1]||(D[1]=E=>_.$emit("retry"))},null,8,["data","error","summary"])):s.id==="networkInterface"?(i(),Y(U4,{key:2,"legacy-summary":S.value.legacy,data:s.data.ports,error:s.errors.ports,summary:S.value.id==="summary",onNavigate:D[2]||(D[2]=E=>_.$emit("navigate",E)),onRetry:D[3]||(D[3]=E=>_.$emit("retry"))},null,8,["legacy-summary","data","error","summary"])):s.id==="applications"?(i(),Y(Ti,{key:3,collapsed:!1,"fallback-entries":[],contained:s.contained,preference:s.preference,natural:s.natural,network:s.data.network,onNavigate:D[4]||(D[4]=E=>_.$emit("navigate",E))},null,8,["contained","preference","natural","network"])):["storage","sharing","docker","downloads","remote","system"].includes(s.id)?(i(),Y(Lk,{key:4,id:s.id,data:s.data,errors:s.errors,summary:S.value.id==="summary",onRetry:D[5]||(D[5]=E=>_.$emit("retry"))},null,8,["id","data","errors","summary"])):s.id.startsWith("plugin.")?(i(),d(V,{key:5},[u.value&&u.value.forms[S.value.id]?(i(),Y(pu,{key:u.value.entry,manifest:u.value,form:S.value.id==="summary"?"summary":"standard",rediscover:r},null,8,["manifest","form"])):(i(),d("section",Vk,[e("h2",null,a(c.value),1),e("p",null,a(u.value?f("此形态暂不可用,请在显示设置中调整","This form is unavailable. Change display settings."):o(l).state.value==="unavailable"?f("无法确认插件状态,请重试读取","Plugin status unavailable; reload to retry"):o(Ka)(s.id)?f("此卡片需要升级 Quickstart,原位置已保留","Update Quickstart to display this card. Position retained."):f("插件未安装或需要升级,原位置已保留","Plugin missing or needs updating. Position retained.")),1),e("button",{onClick:D[6]||(D[6]=E=>o(l).discover(!0))},a(f("重新读取","Reload")),1)]))],64)):(i(),Y(p1,{key:6,data:s.data,errors:s.errors,devices:s.devices,summary:S.value.id==="summary","summary-limit":s.id==="devices"?S.value.capacity:void 0,"disk-limit":s.contained?4:void 0,"contextual-actions":"",onNavigate:D[7]||(D[7]=E=>_.$emit("navigate",E)),onDevice:D[8]||(D[8]=E=>_.$emit("device",E)),onRetry:D[9]||(D[9]=E=>_.$emit("retry"))},null,8,["data","errors","devices","summary","summary-limit","disk-limit"]))],10,Ak))}}),Uk=le(Bk,[["__scopeId","data-v-81b7a52a"]]),Fk=["data-notice-kind","onKeydown"],Hk=["aria-label","title"],Gk=X({__name:"LayoutNotice",props:{notice:{},editing:{type:Boolean}},emits:["dismiss"],setup(s,{emit:t}){const n=s,l=t,u=window.vue_lang==="en",c=x(null),r=x(null),p=x(!1),v=x({left:"0px",width:"0px"});let h,g=0,b,m=!0,f=!1,k=!1;function $(){h!==void 0&&clearTimeout(h),h=void 0}function w(){if($(),!m||!n.notice.message||n.notice.kind!=="info"||f||k)return;const A=n.notice.id;h=setTimeout(()=>{h=void 0,m&&A===n.notice.id&&l("dismiss",A)},3e3)}function S(){k=!0,$()}function C(){ot(()=>{var A;m&&(k=!!((A=c.value)!=null&&A.contains(document.activeElement)),w())})}function y(A){A.pointerType==="mouse"&&(f=!0,$())}function P(A){A.pointerType==="mouse"&&(f=!1,w())}function _(){var q;const A=document.activeElement===r.value,U=(q=c.value)==null?void 0:q.closest("[data-ordered-home]");l("dismiss",n.notice.id),A&&ot(()=>{var z;return(z=U==null?void 0:U.querySelector(n.editing?".direct-toolbar button:not(:disabled)":"[data-home-settings]"))==null?void 0:z.focus({preventScroll:!0})})}function D(){var N;const A=(N=c.value)==null?void 0:N.closest("[data-ordered-home]");if(!A)return;const U=A.getBoundingClientRect(),q=Math.max(0,U.left),z=Math.min(innerWidth,U.right);v.value={left:q+"px",width:Math.max(0,z-q)+"px"},p.value=z>q}function E(){g||(g=requestAnimationFrame(()=>{g=0,D()}))}return We(()=>n.notice,()=>{var A,U,q;f=matchMedia("(hover: hover)").matches&&!!((U=(A=c.value)==null?void 0:A.querySelector(".layout-notice"))!=null&&U.matches(":hover")),k=!!((q=c.value)!=null&&q.contains(document.activeElement)),w()},{immediate:!0,flush:"post"}),nt(()=>{var U,q,z;D(),b=new ResizeObserver(E);const A=(U=c.value)==null?void 0:U.closest("[data-ordered-home]");A&&b.observe(A),window.addEventListener("resize",E),document.addEventListener("scroll",E,!0),(q=window.visualViewport)==null||q.addEventListener("resize",E),(z=window.visualViewport)==null||z.addEventListener("scroll",E)}),lt(()=>{var A,U;m=!1,$(),cancelAnimationFrame(g),b==null||b.disconnect(),window.removeEventListener("resize",E),document.removeEventListener("scroll",E,!0),(A=window.visualViewport)==null||A.removeEventListener("resize",E),(U=window.visualViewport)==null||U.removeEventListener("scroll",E)}),(A,U)=>(i(),d("div",{ref_key:"host",ref:c,class:_e(["layout-notice-host",{"layout-notice-editing":s.editing}]),style:pt(v.value),"data-layout-notice-host":""},[s.notice.message&&p.value?(i(),d("div",{key:0,class:_e(["layout-notice","layout-notice-"+s.notice.kind]),role:"status","aria-live":"polite","aria-atomic":"true","data-layout-notice":"","data-notice-kind":s.notice.kind,onClick:U[0]||(U[0]=Ge(()=>{},["stop"])),onPointerenter:y,onPointerleave:P,onFocusin:S,onFocusout:C,onKeydown:Qt(Ge(_,["stop","prevent"]),["esc"])},[e("span",null,a(s.notice.message),1),e("button",{ref_key:"closeButton",ref:r,type:"button","aria-label":u?"Dismiss notification":"关闭提示",title:u?"Dismiss notification":"关闭提示",onClick:_,"data-layout-notice-close":""},"×",8,Hk)],42,Fk)):T("",!0)],6))}}),jk=le(Gk,[["__scopeId","data-v-a2691b75"]]);function Wk(){const s=x({id:0,message:"",kind:"info"});function t(u,c="info"){s.value={id:s.value.id+1,message:u,kind:c}}function n(u){(u===void 0||u===s.value.id)&&t("")}const l=R({get:()=>s.value.message,set:u=>t(u)});return{noticeState:s,notice:l,showNotice:t,dismissNotice:n}}const Jk=["aria-label"],Kk={key:0},Zk=X({__name:"HomeBootstrap",setup(s){const t=window.vue_lang==="en"?"Loading homepage…":"正在加载首页…",n=x(!1);let l;return nt(()=>{l=window.setTimeout(()=>n.value=!0,800)}),lt(()=>window.clearTimeout(l)),(u,c)=>(i(),d("section",{class:"home-bootstrap",role:"status","aria-busy":"true","aria-label":o(t),"data-home-bootstrap":""},[c[0]||(c[0]=e("div",{class:"home-bootstrap-lines","aria-hidden":"true"},[e("i"),e("i"),e("i")],-1)),n.value?(i(),d("p",Kk,a(o(t)),1)):T("",!0)],8,Jk))}}),Yk=le(Zk,[["__scopeId","data-v-dd3adf7c"]]);function Qk(s,t,n,l){const u=x({});let c=0,r=!1,p=0;function v(){if(c=0,!r||document.hidden||l()||!s.value)return;const g={};for(const b of t.value){const m=Array.from(s.value.children).find(w=>w.dataset.orderedRow===b.id);if(!m)continue;const f=document.documentElement.style,k=f.getPropertyValue("overflow-anchor"),$=f.getPropertyPriority("overflow-anchor");f.setProperty("overflow-anchor","none","important");try{m.setAttribute("data-size-measuring","");const w=Array.from(m.querySelectorAll(":scope > .ordered-column")).map(S=>Array.from(S.querySelectorAll(":scope > .ordered-card")).map(C=>Math.ceil(C.getBoundingClientRect().height)));g[b.id]={height:Math.ceil(Math.max(b.chartHeight||0,...w.map(S=>S.reduce((C,y)=>C+y,0)+Math.max(0,S.length-1)*18))),columns:w}}finally{m.removeAttribute("data-size-measuring"),k?f.setProperty("overflow-anchor",k,$):f.removeProperty("overflow-anchor")}}p++,JSON.stringify(g)!==JSON.stringify(u.value)&&(u.value=g)}function h(){r&&!document.hidden&&!l()&&!c&&(c=requestAnimationFrame(v))}return We(n,h,{deep:!0,flush:"post"}),nt(()=>{r=!0,document.addEventListener("visibilitychange",h),h()}),lt(()=>{r=!1,c&&cancelAnimationFrame(c),c=0,document.removeEventListener("visibilitychange",h)}),{sizes:u,schedule:h,debug:()=>({passes:p,pending:!!c,count:Object.keys(u.value).length})}}const Xk={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none",width:"32",height:"32"},ew=["fill"],tw=["fill"],nw=["fill"],aw=["fill"],sw=X({__name:"module",props:{color:{type:String,default:"#ffffff"}},setup(s){return(t,n)=>(i(),d("svg",Xk,[e("path",{d:"M384 480 96 480C44.8 480 0 435.2 0 384L0 96C0 44.8 44.8 0 96 0L384 0c51.2 0 96 44.8 96 96L480 384C480 435.2 435.2 480 384 480z",fill:s.color,"p-id":"6495"},null,8,ew),e("path",{d:"M384 1024 96 1024C44.8 1024 0 979.2 0 928L0 640c0-51.2 44.8-96 96-96L384 544c51.2 0 96 44.8 96 96l0 281.6C480 979.2 435.2 1024 384 1024z",fill:s.color,"p-id":"6496"},null,8,tw),e("path",{d:"M787.2 1024 787.2 1024c-134.4 0-243.2-108.8-243.2-236.8l0 0c0-134.4 108.8-236.8 236.8-236.8l0 0c134.4 0 236.8 108.8 236.8 236.8l0 0C1024 915.2 915.2 1024 787.2 1024z",fill:s.color,"p-id":"6497"},null,8,nw),e("path",{d:"M928 480 640 480C588.8 480 544 435.2 544 384L544 96C544 44.8 588.8 0 640 0l281.6 0C979.2 0 1024 44.8 1024 96L1024 384C1024 435.2 979.2 480 928 480z",fill:s.color,"p-id":"6498"},null,8,aw)]))}}),ow=["data-theme-preference","data-effective-theme"],lw=["aria-label","title"],iw={key:0,viewBox:"0 0 24 24","aria-hidden":"true","data-theme-icon":"system"},rw={key:0,class:"system-state"},cw={key:1,class:"system-state",d:"M13.8 7.2a3.2 3.2 0 1 0 2.1 4.9 2.7 2.7 0 0 1-2.1-4.9Z"},dw={key:1,viewBox:"0 0 24 24","aria-hidden":"true","data-theme-icon":"light"},uw={key:2,viewBox:"0 0 24 24","aria-hidden":"true","data-theme-icon":"dark"},vw=["aria-label"],pw=["aria-checked","onClick"],hw={key:0},mw={"aria-hidden":"true"},fw=X({__name:"ThemeSelector",setup(s){const t=window.vue_lang==="en",n=(m,f)=>t?f:m,l=[{value:"system",zh:"跟随系统",en:"Use system setting"},{value:"light",zh:"浅色",en:"Light"},{value:"dark",zh:"深色",en:"Dark"}],u=x(null),c=x(di()),r=x(Ws()),p=R(()=>{const m=l.find(f=>f.value===c.value);return n(m.zh,m.en)}),v=R(()=>r.value==="dark"?n("深色","Dark"):n("浅色","Light")),h=R(()=>c.value==="system"?n("主题:","Theme: ")+p.value+n(",当前:","; current: ")+v.value:n("主题:","Theme: ")+p.value);let g=()=>{};function b(m){var f;Nd(m),(f=u.value)==null||f.removeAttribute("open")}return nt(()=>{g=is(m=>{c.value=m.preference,r.value=m.effective})}),lt(()=>g()),(m,f)=>(i(),d("details",{ref_key:"menu",ref:u,class:"theme-selector","data-theme-selector":"","data-theme-preference":c.value,"data-effective-theme":r.value},[e("summary",{"aria-label":h.value,title:h.value},[c.value==="system"?(i(),d("svg",iw,[f[1]||(f[1]=e("rect",{x:"2.5",y:"3",width:"19",height:"14",rx:"2"},null,-1)),f[2]||(f[2]=e("path",{d:"M8 21h8M10 17v4m4-4v4"},null,-1)),r.value==="light"?(i(),d("g",rw,[...f[0]||(f[0]=[e("circle",{cx:"12",cy:"10",r:"2"},null,-1),e("path",{d:"M12 6.5v1M12 12.5v1M8.5 10h1M14.5 10h1"},null,-1)])])):(i(),d("path",cw))])):c.value==="light"?(i(),d("svg",dw,[...f[3]||(f[3]=[e("circle",{cx:"12",cy:"12",r:"3.5"},null,-1),e("path",{d:"M12 2v2M12 20v2M4.93 4.93l1.42 1.42M17.65 17.65l1.42 1.42M2 12h2M20 12h2M4.93 19.07l1.42-1.42M17.65 6.35l1.42-1.42"},null,-1)])])):(i(),d("svg",uw,[...f[4]||(f[4]=[e("path",{d:"M20.2 15.4A8.5 8.5 0 1 1 8.6 3.8a6.7 6.7 0 0 0 11.6 11.6Z"},null,-1)])]))],8,lw),e("div",{class:"theme-menu",role:"radiogroup","aria-label":n("主题模式","Theme mode")},[e("strong",null,a(n("主题","Theme")),1),(i(),d(V,null,oe(l,k=>e("button",{key:k.value,type:"button",role:"radio","aria-checked":c.value===k.value,class:_e({selected:c.value===k.value}),onClick:$=>b(k.value)},[e("span",null,a(n(k.zh,k.en)),1),k.value==="system"?(i(),d("small",hw,a(n("当前:","Current: "))+a(r.value==="dark"?n("深色","Dark"):n("浅色","Light")),1)):T("",!0),e("i",mw,a(c.value===k.value?"✓":""),1)],10,pw)),64)),e("p",null,a(n("此选择保存在当前浏览器,并与 LuCI 主题同步。","Saved in this browser and synchronized with the LuCI theme.")),1)],8,vw)],8,ow))}}),bw=le(fw,[["__scopeId","data-v-190180e9"]]),gw=["aria-label"],_w=["aria-label"],yw={class:"direct-panel-body"},Wn=X({__name:"DirectEditPanel",props:{title:{}},emits:["close"],setup(s,{emit:t}){const n=t,l=x(null),u=window.vue_lang==="en";let c=null;function r(p){if(p.key==="Escape"&&(p.stopPropagation(),n("close")),p.key==="Tab"){const v=Array.from(l.value.querySelectorAll("button:not(:disabled),select,input,a[href]")).filter(b=>b.getClientRects().length),h=v[0],g=v[v.length-1];p.shiftKey&&document.activeElement===h?(p.preventDefault(),g==null||g.focus()):!p.shiftKey&&document.activeElement===g&&(p.preventDefault(),h==null||h.focus())}}return nt(()=>B(null,null,function*(){var p,v;c=document.activeElement,yield ot(),(v=(p=l.value)==null?void 0:p.querySelector("button"))==null||v.focus()})),lt(()=>{c!=null&&c.isConnected&&c.focus({preventScroll:!0})}),(p,v)=>(i(),d(V,null,[e("div",{class:"direct-panel-backdrop",onClick:v[0]||(v[0]=h=>n("close"))}),e("section",{ref_key:"element",ref:l,class:"direct-panel",role:"dialog","aria-modal":"true","aria-label":s.title,onKeydown:r},[e("header",null,[e("h2",null,a(s.title),1),e("button",{onClick:v[1]||(v[1]=h=>n("close")),"aria-label":u?"Close panel":"关闭面板"},"×",8,_w)]),e("div",yw,[Ct(p.$slots,"default")]),e("footer",null,[Ct(p.$slots,"actions",{},()=>[e("button",{onClick:v[2]||(v[2]=h=>n("close"))},a(u?"Back to home":"返回首页"),1)])])],40,gw)],64))}}),kw={class:"presentation-settings"},ww={class:"direct-panel-note"},$w={class:"presentation-forms","aria-label":"展示形态"},Cw=["aria-pressed","data-presentation-form","onClick"],Sw={key:0,class:"presentation-options"},xw=["aria-pressed","data-icon-rows","onClick"],Pw=X({__name:"PresentationSettings",props:{id:{},value:{}},emits:["update"],setup(s,{emit:t}){const n=s,l=t,u=R(()=>["auto",...aa(n.id).forms]),c=[0,1,2,3],r=window.vue_lang==="en",p=(g,b)=>r?b:g,v=g=>n.id==="system"&&g==="standard"?p("完整信息","Complete information"):n.id==="system"&&g==="summary"?p("紧凑概览","Compact overview"):{auto:p("自动推荐","Automatic"),standard:p("标准","Standard"),summary:p("摘要","Summary"),grid:p("图标网格","Icon grid"),strip:p("启动条","Launch strip")}[g]||g;function h(g){l("update",Ne(ye(ye({},n.value),g),{ruleVersion:2}))}return(g,b)=>(i(),d("div",kw,[e("p",ww,a(p("选择形态与排布,页面同步预览;采用前不会改变草稿。","Preview a form and layout. Your draft changes only when adopted.")),1),e("div",$w,[(i(!0),d(V,null,oe(u.value,m=>(i(),d("button",{key:m,"aria-pressed":s.value.mode===m,"data-presentation-form":m,onClick:f=>h({mode:m})},[e("span",{class:_e(["presentation-mini",m])},[...b[0]||(b[0]=[e("i",null,null,-1),e("i",null,null,-1),e("i",null,null,-1)])],2),ue(a(v(m)),1)],8,Cw))),128))]),s.id==="applications"&&s.value.mode!=="strip"?(i(),d("section",Sw,[e("h3",null,a(p("图标排布","Icon layout")),1),e("div",null,[(i(),d(V,null,oe(c,m=>e("button",{key:m,"aria-pressed":s.value.iconRows===m,"data-icon-rows":m,onClick:f=>h({iconRows:m})},a([p("自动","Auto"),p("单行","One row"),p("双行","Two rows"),p("三行","Three rows")][m]),9,xw)),64))]),e("p",null,a(p("条目较少时采用均衡排布,超过容量的常用项仍在全部面板。","Fewer items stay balanced. Items beyond capacity remain in All.")),1)])):T("",!0)]))}}),Xa=(s,t=Yo(),n=0)=>({schemaVersion:4,revision:n,rows:ki(s),widgetPreferences:Object.fromEntries(Object.entries(t).map(([l,u])=>{var c;return[l,Ne(ye({},rt(u)),{ruleVersion:(c=u.ruleVersion)!=null?c:2})]}))}),Cn=s=>JSON.stringify([s.rows,s.widgetPreferences]);function ks(s,t,n){const l=rs(s);if(l.issue&&!l.issue.startsWith("height:"))return l;for(const u of Un)if(Ks(u.id,t[u.id]))return{issue:"preference"};for(const u of s){const c=_i(u,t,n.width,n.favoriteCount);if(c.issue)return{issue:c.issue,row:u.id};if(!u.heightMode&&c.height>u.height)return{issue:"height:"+c.height,row:u.id,requiredHeight:c.height}}return{issue:""}}function pa(s,t,n,l=s.widgetPreferences,u=!0){const c=Xa(t.candidateRows||t.rows,l,s.revision),r=[];let p=t.issue&&!t.issue.startsWith("height:")?t.issue:"";const v=rs(c.rows);v.issue&&!v.issue.startsWith("height:")&&(p=v.issue);for(const g of Un)Ks(g.id,l[g.id])&&(p="preference");for(const g of c.rows){const b=_i(g,l,n.width,n.favoriteCount);b.issue&&(p=b.issue),!g.heightMode&&b.height>g.height&&(u?(r.push({row:g.id,from:g.height,to:b.height}),g.height=b.height):p="height:"+b.height)}const h=Cn(s)!==Cn(c);return h&&(c.revision=s.revision+1),{status:p?"blocked":r.length?"needs-confirmation":"ready",issue:p,baseRevision:s.revision,baseFingerprint:Cn(s),contextKey:JSON.stringify(n),next:c,adjustments:r,hidden:t.hidden,changed:h}}function ws(s,t,n){const l=s.revision!==t.baseRevision||Cn(s)!==t.baseFingerprint||JSON.stringify(n)!==t.contextKey;return l||t.status==="blocked"?{document:s,issue:l?"stale-plan":t.issue}:{document:rt(t.next),issue:""}}function ko(s,t,n,l){const u=rt(s.widgetPreferences),c=t.candidateRows||t.rows;for(const r of c)for(const p of r.columns)for(const v of p.cards){if(!v)continue;const h=p.cards.length===2&&Kt(v,u[v],{width:1e3,height:1e5,role:"stacked",favoriteCount:n.favoriteCount,natural:!0}).issue==="compact";aa(v).forms.includes("summary")&&(v===l||h)&&(u[v]=Ne(ye({},u[v]),{mode:"summary",ruleVersion:2}))}return Cn(Xa(s.rows,u))===Cn(s)?null:pa(s,t,n,u)}const Ga=s=>s.kind==="slot"?`slot:${s.row}:${s.column}:${s.slot}`:s.kind==="beside"?`beside:${s.row}:${s.index}`:`edge:${s.before||"end"}`;function Tw(s){return s.flatMap(t=>[{kind:"edge",before:t.id},...t.columns.flatMap((n,l)=>n.cards.map((u,c)=>({kind:"slot",row:t.id,column:l,slot:c}))),...Array.from({length:t.columns.length+1},(n,l)=>({kind:"beside",row:t.id,index:l}))]).concat([{kind:"edge",before:null}])}function wo(s,t,n){const l=u=>({rows:s,issue:u,changed:!1,hidden:[]});return t.kind==="card"&&!Vn(s,t.id)?l("target"):n.kind==="slot"?Bo(s,n,t.id):n.kind==="beside"?G1(s,t.id,n.row,n.index):wi(s,t.id,n.before)}function Mw(s){const t=Na(null),n=x(!1),l=R(()=>!!t.value);let u,c,r=0,p=!1;function v(){p=!0,setTimeout(()=>p=!1,0)}function h(){var _,D;const P=u;u=void 0,c!==void 0&&cancelAnimationFrame(c),c=void 0,r=0,window.removeEventListener("pointermove",$),window.removeEventListener("pointerup",w),window.removeEventListener("pointercancel",b),window.removeEventListener("blur",b),window.removeEventListener("resize",b),P==null||P.element.removeEventListener("lostpointercapture",b),(D=P==null?void 0:(_=P.element).hasPointerCapture)!=null&&D.call(_,P.pointer)&&P.element.releasePointerCapture(P.pointer),t.value=null,n.value=!1}function g(P=!1){const _=t.value;h(),_&&(v(),P&&s.announce(_.from,_.to,!0))}function b(){g(!0)}function m(){var P;return!!(u&&s.enabled()&&((P=s.root())!=null&&P.isConnected)&&s.root().clientWidth===u.width&&innerWidth===u.viewport[0]&&innerHeight===u.viewport[1]&&JSON.stringify(s.rows())===u.hash)}function f(){if(!u||!m()){g(!0);return}const P=u,_=P.boxes.filter(Q=>Q.id!==P.id),D=_.filter(Q=>P.y+scrollY>Q.top+Q.height/2).length,E=[..._];E.splice(D,0,P.boxes[P.from]);const A={};let U=P.boxes[0].top,q=U;for(const Q of E)Q.id===P.id?q=U:A[Q.id]=U-Q.top,U+=Q.height+Q.gap;const z=P.boxes[P.from],N=P.boxes[P.boxes.length-1],F=Math.max(P.boxes[0].top-z.top,Math.min(N.top+N.height-z.height-z.top,P.y-P.startY+scrollY-P.scroll)),Z=t.value;(!Z||Z.to!==D||Z.dy!==F)&&(t.value={id:P.id,from:P.from,to:D,dy:F,height:P.boxes[P.from].height,top:q-P.rootTop,offsets:A},(!Z||Z.to!==D)&&s.announce(P.from,D))}function k(P){if(c=void 0,!u||!t.value)return;if(!m()){g(!0);return}const _=document.querySelector(".direct-toolbar"),D=Math.max(8,((_==null?void 0:_.getBoundingClientRect().bottom)||0)+12),E=innerHeight-24,A=72,U=s.root().getBoundingClientRect(),q=u.x,z=r?Math.min(.032,(P-r)/1e3):0;r=P;const N=u.yE-A?Math.min(1,Math.max(0,(u.y-E+A)/A)):0;q>=U.left&&q<=U.right&&N&&window.scrollTo(0,Math.max(0,Math.min(u.maxScroll,scrollY+Math.sign(N)*N*N*720*z))),f(),u&&(c=requestAnimationFrame(k))}function $(P){!u||P.pointerId!==u.pointer||(u.x=P.clientX,u.y=P.clientY,!(!t.value&&Math.abs(P.clientY-u.startY)<6)&&(P.preventDefault(),f(),u&&c===void 0&&(c=requestAnimationFrame(k))))}function w(P){var A;if(!u||P.pointerId!==u.pointer)return;const _=(A=s.root())==null?void 0:A.getBoundingClientRect(),D=m()&&_&&P.clientX>=_.left&&P.clientX<=_.right&&P.clientY>=0&&P.clientY<=innerHeight;u.y=P.clientY,t.value&&D&&f();const E=t.value;h(),E&&(v(),D?s.commit(E.id,E.to):s.announce(E.from,E.to,!0))}function S(P,_){var z;if(P.button!==0||P.isPrimary===!1||!s.enabled())return;s.beforeStart(),h(),p=!1;const D=s.root();if(!D)return;const E=Array.from(D.querySelectorAll("[data-overview-row]")),A=E.map(N=>{const F=N.getBoundingClientRect();return{id:N.dataset.overviewRow,top:F.top+scrollY,height:F.height,gap:parseFloat(getComputedStyle(N).marginBottom)||0}}),U=A.findIndex(N=>N.id===_);if(U<0)return;const q=P.currentTarget;q.focus({preventScroll:!0}),u={pointer:P.pointerId,id:_,from:U,x:P.clientX,y:P.clientY,startY:P.clientY,scroll:scrollY,maxScroll:Math.max(0,document.documentElement.scrollHeight-innerHeight),hash:JSON.stringify(s.rows()),boxes:A,rootTop:D.getBoundingClientRect().top+scrollY,width:D.clientWidth,viewport:[innerWidth,innerHeight],element:q},n.value=!0,(z=q.setPointerCapture)==null||z.call(q,P.pointerId),q.addEventListener("lostpointercapture",b),window.addEventListener("pointermove",$,{passive:!1}),window.addEventListener("pointerup",w),window.addEventListener("pointercancel",b),window.addEventListener("blur",b),window.addEventListener("resize",b)}function C(P){const _=t.value;return _?P===_.id?{transform:`translate3d(0,${_.dy}px,0)`,zIndex:80,transition:"none",pointerEvents:"none"}:{transform:`translate3d(0,${_.offsets[P]||0}px,0)`,pointerEvents:"none"}:{}}function y(){const P=p;return p=!1,P}return{preview:t,busy:n,active:l,start:S,cancel:g,style:C,consumeClick:y,debug:()=>{var P,_,D;return{pending:n.value,active:l.value,id:(P=t.value)==null?void 0:P.id,from:(_=t.value)==null?void 0:_.from,to:(D=t.value)==null?void 0:D.to,frame:c!==void 0}}}}const Ew={class:"home-top","data-home-top":""},Iw={class:"home-top-actions"},Dw={href:"https://www.istoreos.com/",target:"_blank",rel:"noopener noreferrer"},Lw=["disabled","aria-pressed","aria-label","title"],Aw=["inert"],Nw={class:"direct-edit-label"},Ow=["aria-pressed"],zw=["disabled"],qw={class:"direct-toolbar-end"},Rw={class:"presentation-result","data-display-preview":""},Vw={key:0,role:"status"},Bw={key:1,class:"presentation-impact"},Uw=["disabled"],Fw={class:"direct-panel-note"},Hw={class:"presentation-impact","data-adaptation-preview":""},Gw={key:0},jw={class:"presentation-help"},Ww={class:"slot-confirm"},Jw={class:"direct-panel-note"},Kw={class:"ordered-width"},Zw=["max","value"],Yw={class:"direct-panel-note"},Qw=["data-target-option","aria-disabled","onClick"],Xw={key:0},e$={key:6,class:"direct-moving-bar",role:"status"},t$={class:"ordered-template-list","aria-label":"行布局样式"},n$=["onClick","aria-pressed","data-template"],a$={key:0,class:"slot-change-preview","data-structure-preview":""},s$={key:0},o$=["checked","onChange","data-retain"],l$={key:2},i$={key:3},r$={key:4,role:"status"},c$={key:5,role:"status"},d$={key:6,"data-structure-adaptations":""},u$={class:"slot-confirm"},v$=["disabled"],p$={class:"direct-panel-note","data-natural-height-note":""},h$={key:1,class:"direct-ratio-presets"},m$=["onClick","aria-pressed","data-width-preset"],f$={class:"ordered-row-actions"},b$={class:"ordered-editor-hint"},g$={class:"direct-panel-note"},_$=["data-finish-row"],y$=["onClick"],k$={class:"slot-confirm"},w$=["disabled"],$$={class:"slot-overview-heading"},C$={role:"status"},S$=["data-overview-row"],x$=["data-placement","onClick","aria-label"],P$=["onPointerdown","onClick","onKeydown","data-row-handle","aria-label","title"],T$=["data-row-menu"],M$=["aria-label"],E$=["onClick","disabled"],I$=["onClick","disabled"],D$=["onClick","disabled"],L$=["onClick","disabled"],A$=["onClick","data-select-row"],N$=["onPointerdown","onClick","data-drag-card"],O$=["title"],z$=["data-overview-form"],q$={class:"slot-overview-actions"},R$=["onClick","data-move-card"],V$=["onClick","aria-label"],B$=["onClick","data-module-menu","aria-label"],U$=["data-overview-empty","onClick"],F$=["data-placement","aria-label","aria-disabled","onClick"],H$=["data-placement","aria-label","aria-disabled","onClick"],G$=["data-ordered-row","data-row-source"],j$=["data-placement","onClick"],W$={key:1,class:"direct-row-tools"},J$=["onClick","aria-label","data-select-row"],K$=["data-ordered-column"],Z$=["data-ordered-card"],Y$={key:0,class:"ordered-card-controls slot-card-tools"},Q$=["onClick","aria-label","data-display-settings"],X$=["onClick","aria-label","data-replace-module"],eC=["onClick","aria-label","data-hide-module"],tC=["onClick","data-empty-slot"],nC=["data-placement","aria-label","aria-disabled","onClick"],aC={key:0},sC=["aria-label","aria-valuenow","aria-valuemin","aria-valuemax","onPointerdown","onKeydown","title"],oC=["aria-valuenow","aria-valuemin","aria-valuemax","aria-label","onPointerdown","onKeydown"],lC={key:0},iC=["aria-label","aria-valuenow","aria-valuemin","aria-valuemax","onPointerdown","onKeydown","title"],rC={key:4,class:"row-size-hint",role:"status","data-size-hint":""},cC={key:2,class:"ordered-empty"},dC={class:"direct-panel-note"},uC={class:"slot-module-list"},vC=["onClick","disabled","aria-pressed","data-choice","data-fit"],pC={key:0,class:"slot-change-preview","data-choice-preview":""},hC={key:0},mC={key:1},fC={class:"presentation-impact"},bC=["aria-pressed"],gC=["disabled"],_C={key:1,class:"slot-confirm"},yC=X({__name:"HomeLayout",props:{config:{},data:{},errors:{},theme:{},favoriteIds:{},canEdit:{type:Boolean},externalBusy:{type:Boolean},bootstrapping:{type:Boolean},persist:{type:Function}},emits:["navigate","device","editing","visible"],setup(s,{emit:t}){var bl;const n=Tr({loader:()=>Po(()=>import("./FastnetInstallDialog.js?v=Bkzq9Ozt"),__vite__mapDeps([0,1,2])),timeout:8e3,errorComponent:{inheritAttrs:!1,setup:()=>()=>vo(na,{title:"FastNet",onClose:w},()=>[vo("p",{role:"alert"},r("安装窗口加载失败,请刷新页面后重试。","The installation window could not load. Refresh and retry.")),vo("button",{type:"button",onClick:w,style:{padding:"8px 16px",border:"1px solid var(--qs-card-line)",borderRadius:"8px",background:"var(--qs-card-soft)",color:"inherit"}},r("返回","Back"))])}}),l=s,u=t,c=window.vue_lang==="en",r=(M,L)=>c?L:M,p=M=>r(rn(M).zh,rn(M).en),v=Ko(),h=ba(ui,null),g=x(null),b=x(!1),m=x(""),f=x("checking");let k=0,$;function w(){return B(this,null,function*(){var L;const M=g.value;k++,$==null||$.abort(),g.value=null,m.value="",b.value=!1,M&&(yield ot(),yield ot(),(L=document.querySelector('[data-choice="'+M+'"]'))==null||L.focus({preventScroll:!0}))})}function S(M){g.value=null,Ft.value=vt(),Ht.value=je(),ct.value=M,qt.value=!1}function C(){return B(this,null,function*(){if(!h||!g.value)return;const M=++k,L=g.value;$==null||$.abort(),$=new AbortController,f.value="checking",m.value="";try{const I=yield h.inspect(L,$.signal);if(M!==k)return;if(I==="ready"){if(yield v.discover(!0),M!==k)return;if(!D(L)){S(L);return}f.value="unknown"}else f.value=I}catch(I){M===k&&(f.value="unknown",m.value=I instanceof Error?I.message:String(I))}})}function y(M){if(!Ka(M)){if(D(M)){g.value=M,C();return}ct.value=M,qt.value=!1}}function P(){return B(this,null,function*(){if(!h||!g.value||b.value||!["uninstalled","update_required","failed","installing"].includes(f.value))return;const M=g.value,L=k;b.value=!0,m.value="",$==null||$.abort(),$=new AbortController;try{if(yield h.install(M,$.signal),yield v.discover(!0),L!==k)return;if(D(M))throw Error(r("插件安装后仍未注册卡片,请升级或修复插件。","Plugin did not register a card; update or repair it."));S(M)}catch(I){L===k&&(f.value="unknown",m.value=I instanceof Error?I.message:String(I))}finally{L===k&&(b.value=!1)}})}const _=R(()=>[...Un,...Array.from(new Set([...hi.map(M=>M.id),...v.cards.value.map(M=>M.id),...Object.keys(l.config.widgetPreferences).filter(M=>M.startsWith("plugin."))])).map(M=>rn(M))]),D=M=>M.startsWith("plugin.")&&!v.cards.value.some(L=>L.id===M),E=R(()=>l.config.rows),A=R(()=>l.config.widgetPreferences);R(()=>l.theme);const U=l.data,q=l.errors,z=x(!1),N={get favorites(){return l.favoriteIds}},{noticeState:F,notice:Z,showNotice:Q,dismissNotice:ce}=Wk(),ve=x(!1),O=x(rt(E.value)),de=x(rt(A.value)),K=x(0),xe=x([]),j=x(((bl=O.value[0])==null?void 0:bl.id)||""),re=x(0),$e=R(()=>ve.value?O.value:E.value),qe=R(()=>Yt($e.value));R(()=>Un.filter(M=>!qe.value.includes(M.id))),We(qe,M=>u("visible",M),{immediate:!0});const De=R(()=>O.value.findIndex(M=>M.id===j.value)),Ke=R(()=>O.value[De.value]),at=R(()=>{var I,te;const M=((I=Ke.value)==null?void 0:I.columns.length)===3?[[34,33,33],[50,25,25],[25,50,25]]:[[50,50],[60,40],[65,35],[40,60]],L=((te=Ke.value)==null?void 0:te.columns.map(Ie=>Ie.weight))||[];return M.some(Ie=>Ie.join("/")===L.join("/"))?M:[L,...M]}),st=x(null),et=x(null),Ze=x(null),it=x(1160),he=x(0),H=R(()=>l.bootstrapping||!he.value),J=R(()=>H.value?[]:V1(Et.value,he.value,N.favorites.length,ve.value,Pt.value)),ge=x(null),ze=x(!1),Fe=x(null),Ee=x(""),dt=x(null),tt=x(null),kt=x(""),ct=x(null),Tt=x(null),ut=x([]),St=x(null),ht=x(!1),xt=x(null),en=x(null),qt=x(!1),Ft=x(null),Ht=x(null),ke=x(null),Se=x("applications"),ae=x({mode:"auto",iconRows:0}),He=x(null),Re=x(null),Ue=R(()=>{if(!He.value||!Re.value)return null;const M=rt(He.value.widgetPreferences);return M[Se.value]=rt(ae.value),pa(He.value,{rows:He.value.rows,issue:"",hidden:[]},Re.value,M)}),Et=R(()=>{var M;return ve.value&&Ee.value==="display"&&((M=Ue.value)==null?void 0:M.status)!=="blocked"&&Ue.value?Ue.value.next.rows:$e.value}),Pt=R(()=>{var M;return ve.value&&Ee.value==="display"&&((M=Ue.value)==null?void 0:M.status)!=="blocked"&&Ue.value?Ue.value.next.widgetPreferences:ve.value?de.value:A.value}),Ot=Qk(et,J,()=>[J.value,Pt.value,U,q,ht.value],()=>ht.value||!!H.value),_t=x("");function dn(M){return M?"stacked":"ordinary"}function Gt(M){return Et.value.find(L=>L.id===M.source)}function un(M){const L=Gt(M);return he.value>=650&&L&&M.columns.length===L.columns.length&&M.columns.every(I=>I.cards.length===L.columns[I.source].cards.length)}function wt(M){return ve.value&&!bt.value&&!ht.value&&M.source===j.value&&un(M)}function sa(M){const L=Gt(M);return un(M)&&(L.minHeight!==void 0||L.columns.some(I=>I.upperShare!==void 0))}function tn(M){var L;return Math.max(((L=Ot.sizes.value[M.id])==null?void 0:L.height)||M.chartHeight||M.height,un(M)&&Gt(M).minHeight||0)}function Zt(M,L){var Ve;const I=((Ve=Ot.sizes.value[M.id])==null?void 0:Ve.columns[L])||[148,148],te=M.columns[L],Ie=Gt(M).columns[te.source].upperShare,me=tn(M)-18,Le=te.cards.map(Je=>Je&&Kt(Je,Pt.value[Je],{width:1e3,height:1e5,role:"stacked",favoriteCount:4,natural:!0}).stretch),Me=Le[0]?me-I[1]:Le[1]?I[0]:I[0]+Math.max(0,me-I[0]-I[1])/2;return O1(tn(M),I,Ie!=null?Ie:Me/me*100)}function be(M){var L;return(L=et.value)==null?void 0:L.querySelector('[data-ordered-row="'+M.id+'"]')}function Te(M,L){return Zt(M,L).upper+9}function ie(M,L,I){if(un(M)&&L.cards.length===2&&Gt(M).columns[L.source].upperShare!==void 0&&Ot.sizes.value[M.id]){const te=Zt(M,I);return{gridTemplateRows:te.upper+"px "+te.lower+"px"}}return vr(L)}function Ye(){Ut(),ca(M=>{const L=M.find(I=>I.id===j.value);return L&&(delete L.minHeight,L.columns.forEach(I=>delete I.upperShare)),M}),_t.value=""}function je(){return{width:Math.max(240,he.value),favoriteCount:N.favorites.length,favoritesKey:N.favorites.join("|")}}function vt(){return Xa(O.value,de.value,K.value)}const bn=R(()=>{if(!Ue.value||!Re.value)return"";const M=Ue.value.next.rows,L=M.find(me=>Yt([me]).includes(Se.value));if(!L)return"";const I=L.columns.findIndex(me=>me.cards.includes(Se.value)),te=qo(L,Re.value.width,Ue.value.next.widgetPreferences)[I],Ie=Kt(Se.value,ae.value,{width:te,height:1e5,role:L.columns[I].cards.length===2?"stacked":"ordinary",favoriteCount:Re.value.favoriteCount,mobile:Re.value.width<650,natural:!0});return(Se.value==="applications"?Ie.columns+r("列 × "," columns × ")+Ie.rows+r("行"," rows")+" · ":"")+Math.round(te)+r("px 宽 · 自适应高度","px wide · Content height")});function gn(M){return B(this,null,function*(){var L,I;En("display"),Se.value=M,ae.value=rt(de.value[M]),He.value=vt(),Re.value=je(),ht.value=!1,yield ot(),(I=(L=et.value)==null?void 0:L.querySelector(`[data-display-settings="${M}"]`))==null||I.scrollIntoView({block:"center"})})}function ka(M,L){tt.value=ye({kind:"slot"},L),ke.value=M,En("module-actions")}function Rt(M){var I;if(z.value)return!1;const L=vt();return Cn(L)===Cn(M)?!1:(xe.value=[...xe.value.slice(-29),L],O.value=rt(M.rows),de.value=rt(M.widgetPreferences),K.value++,M.rows.some(te=>te.id===j.value)||(j.value=((I=M.rows[0])==null?void 0:I.id)||""),Z.value="",!0)}function oa(){if(!Ue.value)return;const M=ws(vt(),Ue.value,je());if(M.issue){In(M.issue);return}Rt(M.document),ft()}const Gn=M=>({auto:r("自动推荐","Automatic"),standard:r("标准","Standard"),summary:r("摘要","Summary"),grid:r("图标网格","Icon grid"),strip:r("启动条","Launch strip")})[M]||M;function wa(M){return Object.keys(M.next.widgetPreferences).filter(L=>JSON.stringify(de.value[L])!==JSON.stringify(M.next.widgetPreferences[L]))}function Va(M,L){const I=pa(vt(),M,je()),te=ko(vt(),M,je(),L);return{direct:I,alternative:te}}function cs(M,L){const{direct:I,alternative:te}=Va(M,L);if(I.status==="blocked"&&(!te||te.status==="blocked"))return In(I.issue),!1;if(I.status==="ready")return Rt(I.next);const Ie=I.status==="blocked"?te:I;return En("adapt"),xt.value=Ie,en.value=I.status==="blocked"?null:te,!1}function eo(){if(!xt.value)return;const M=ws(vt(),xt.value,je());if(M.issue){In(M.issue);return}Rt(M.document),ft()}function to(M){return j1(M,()=>!0,L=>ks(L,de.value,je()))}const ee=Mw({rows:()=>O.value,root:()=>Ze.value,enabled:()=>ve.value&&ht.value&&!Ee.value,beforeStart:()=>{var M;Ut(),dt.value=null,(M=Ze.value)==null||M.querySelectorAll("details[open]").forEach(L=>L.removeAttribute("open"))},commit:(M,L)=>{fe(M,L)},announce:(M,L,I)=>{Z.value=I?r("已取消排序,布局未改变。","Sort cancelled. Layout unchanged."):r("第","Row ")+(M+1)+r("行 → 第"," → position ")+(L+1)+r("位,松手放置。","; release to place.")}});function se(M){ee.consumeClick()||(j.value=M,dt.value=null)}function fe(M,L,I=!1){return B(this,null,function*(){var Ve,Je,$t;Ut(),(Ve=Ze.value)==null||Ve.querySelectorAll("details[open]").forEach(Dt=>Dt.removeAttribute("open"));const te=O.value.filter(Dt=>Dt.id!==M);if(O.value.findIndex(Dt=>Dt.id===M)<0||L<0||L>te.length)return;const me=H1(O.value,M,((Je=te[L])==null?void 0:Je.id)||null),Le=no(me);j.value=M,Z.value=Le?r("整行位置已调整,可撤销。","Row reordered. Undo is available."):r("位置未改变。","Position unchanged."),yield ot();const Me=($t=Ze.value)==null?void 0:$t.querySelector(`[data-row-handle="${M}"]`);Me==null||Me.focus({preventScroll:!0}),I&&(Me==null||Me.scrollIntoView({block:"nearest"}))})}function mt(M,L,I){if(!M.altKey)return;const te=M.key==="ArrowUp"?I-1:M.key==="ArrowDown"?I+1:M.key==="Home"?0:M.key==="End"?O.value.length-1:void 0;te!==void 0&&(M.preventDefault(),fe(L,te,!0))}function vn(){Ut(),ft(),ht.value=!ht.value,window.scrollTo({top:0})}function _n(M){return B(this,null,function*(){var L,I,te;Ut(),ht.value=!1,dt.value=M,j.value=((L=Vn(O.value,M))==null?void 0:L.row)||"",yield ot(),(te=(I=et.value)==null?void 0:I.querySelector(`[data-replace-module="${M}"]`))==null||te.scrollIntoView({block:"center"})})}function la(M,L){return L?L===M.columns.length?"100%":M.columns.slice(0,L).reduce((I,te)=>I+te.weight,0)+"%":"0%"}function Pn(M){if(!M)return r("移除空行","Remove empty row");const L=Yn.find(I=>I.id===M.template);return r(L.zh,L.en)+" · "+Yt([M]).map(p).join(" / ")+" · "+r("自适应高度","Content height")}function ia(){if(St.value&&!St.value.issue){const M=St.value.rows;ft(),al(M)}}function Ce(M){return B(this,null,function*(){var L,I;j.value=M,En("row"),yield ot(),(I=(L=et.value)==null?void 0:L.querySelector(`[data-row-source="${M}"]`))==null||I.scrollIntoView({block:"center"})})}const Tn=R(()=>{var M;return((M=Yn.find(L=>L.id===Tt.value))==null?void 0:M.slots.reduce((L,I)=>L+I,0))||0}),ds=R(()=>{const M=Yn.find(L=>L.id===Tt.value);return M?r(M.zh,M.en):""}),pn=R(()=>{if(!Tt.value)return{rows:O.value,issue:"",changed:!1,hidden:[]};const M=U1(O.value,j.value,Tt.value,Yt([Ke.value]).length>Tn.value?ut.value:void 0);if(M.issue&&!M.issue.startsWith("height:"))return M;const L=ki(M.candidateRows||M.rows),I=ks(L,de.value,je());if(I.issue){const te=ko(vt(),M,je());return Ne(ye({},M),{issue:te&&te.status!=="blocked"&&!I.issue.startsWith("height:")?"":I.issue,requiresAdaptation:!!te&&te.status!=="blocked"&&!I.issue.startsWith("height:"),requiredHeight:I.requiredHeight,problemRow:I.row})}return Ne(ye({},M),{rows:L,candidateRows:void 0,issue:"",requiredHeight:void 0,changed:JSON.stringify(L)!==JSON.stringify(O.value)})});function $a(M){var I;const L=O.value.findIndex(te=>te.id===M.row);return r("第","Row ")+(L+1)+r("行 · 第"," · Column ")+(M.column+1)+(((I=O.value[L])==null?void 0:I.columns[M.column].cards.length)===2?M.slot===0?r("列上方"," top"):r("列下方"," bottom"):r("列",""))}function Ba(M){if(Ka(M))return r("需要升级 Quickstart","Update Quickstart");if(D(M))return v.state.value!=="ready"?r("正在确认插件状态,暂不可添加","Plugin status unknown; adding unavailable"):r("需要先安装或升级插件","Install or update the plugin first");const L=Vn(O.value,M);return L?r("已在首页 · 移到这里 · ","On home · Move here · ")+$a(L):r("未展示 · 添加","Hidden · Add")}function jn(M){var I,te;const L=((I=Ft.value)==null?void 0:I.rows)||O.value;return((te=tt.value)==null?void 0:te.kind)==="slot"?Bo(L,tt.value,M):wi(L,M,null)}function hn(M){const L=Ft.value||vt(),I=ye({},L.widgetPreferences);return I[M]||(I[M]={mode:"auto",iconRows:0,ruleVersion:2}),pa(L,jn(M),Ht.value||je(),I)}function sn(M){const L=Ft.value||vt();return M.startsWith("plugin.")&&!L.widgetPreferences[M]?pa(L,jn(M),Ht.value||je(),Ne(ye({},L.widgetPreferences),{[M]:{mode:"summary",iconRows:0,ruleVersion:2}})):ko(L,jn(M),Ht.value||je(),M)}function us(M){return hn(M).status!=="blocked"||!!sn(M)&&sn(M).status!=="blocked"}function ra(M){const L=hn(M);return L.status==="blocked"&&us(M)?"needs-confirmation":L.status}const nn=R(()=>ct.value?qt.value||hn(ct.value).status==="blocked"?sn(ct.value):hn(ct.value):null);function Mn(M){Ut(),tt.value=(M==null?void 0:M.kind)==="slot"?M:null,ct.value=null,qt.value=!1,En("slot"),Ft.value=vt(),Ht.value=je()}function Ji(){const M=nn.value;if(!M)return;const L=ws(vt(),M,je());if(L.issue){In(L.issue);return}Rt(L.document),ft()}function Ki(){const M=tt.value?Il(O.value,tt.value):null;ft(),M&&ao(M)}function no(M){return cs(M)}function Zi(M){ut.value=ut.value.includes(M)?ut.value.filter(L=>L!==M):[...ut.value,M]}const vs=R(()=>{const M=Va(pn.value);return M.direct.status==="blocked"&&M.alternative||M.direct});function Yi(){const M=vs.value;if(!M||M.status==="blocked")return;const L=ws(vt(),M,je());if(L.issue){In(L.issue);return}Rt(L.document),Tt.value=null}function Qi(){const M=pa(vt(),{rows:R1(),issue:"",hidden:[]},je(),Yo());M.status!=="blocked"&&Rt(M.next)}function Xi(M){const L=J.value.find(me=>me.columns.some(Le=>Le.cards.includes(M))),I=L==null?void 0:L.columns.find(me=>me.cards.includes(M));if(!L||!I)return"";const te=qo({id:L.id,height:L.height,columns:L.columns},he.value,Pt.value)[L.columns.indexOf(I)],Ie=Kt(M,Pt.value[M],{width:te,height:1e5,role:I.compact?"stacked":"ordinary",favoriteCount:4,natural:!0});return Gn(Ie.id)}function En(M){Ut(),Ee.value=M,dt.value=null,Tt.value=null}function ft(){const M=Ee.value==="display"?Se.value:null;Ee.value="",He.value=null,Re.value=null,xt.value=null,en.value=null,Ft.value=null,Ht.value=null,M&&ot(()=>{var L,I;return(I=(L=et.value)==null?void 0:L.querySelector(`[data-display-settings="${M}"]`))==null?void 0:I.focus({preventScroll:!0})})}function er(M){var L;if(Ot.schedule(),!kn&&!M.target.closest("button,input,select,a,summary,.direct-panel,.ordered-library")){const I=ve.value&&((L=M.target.closest("[data-row-source]"))==null?void 0:L.dataset.rowSource)||"";I!==j.value&&(_t.value=""),j.value=I,dt.value=null}}function tl(){var M;!l.canEdit||l.externalBusy||z.value||(u("editing",!0),O.value=rt(E.value),de.value=rt(A.value),K.value++,xe.value=[],ve.value=!0,ht.value=!1,j.value=((M=O.value[0])==null?void 0:M.id)||"",dt.value=null,Z.value="",_t.value="")}function nl(){var M;z.value||(u("editing",!1),Ut(),ft(),ze.value=!1,ve.value=!1,ht.value=!1,O.value=rt(E.value),de.value=rt(A.value),K.value++,Z.value=r("已取消,保留路由器上已保存的布局。","Cancelled. The saved router layout is unchanged."),(M=ge.value)==null||M.focus())}function tr(){if(z.value)return;Ut();const M=to(O.value);if(M.issue||M.changed){St.value=M,En("finish");return}al(M.rows)}function al(M){return B(this,null,function*(){var I;const L=ks(M,de.value,je());if(L.issue){In(L.issue);return}if(!z.value){z.value=!0,Q(r("正在保存…","Saving…"),"progress");try{yield l.persist({schemaVersion:4,rows:rt(M),widgetPreferences:rt(de.value)}),O.value=rt(M),ft(),ze.value=!1,ve.value=!1,ht.value=!1,u("editing",!1),Z.value=r("首页布局已保存。","Homepage layout saved."),(I=ge.value)==null||I.focus()}catch(te){Q(te.message||r("保存失败,草稿仍保留。","Save failed. Your draft is kept."),"error")}finally{z.value=!1}}})}function In(M){Q(Dn(M),"error")}function ca(M){const L=vt(),I=M(rt(O.value)),te=pa(L,{rows:I,issue:"",hidden:[]},je(),de.value,!1);return te.status==="blocked"?(In(te.issue),!1):Rt(te.next)}function nr(){var L;Ut(),ft();const M=xe.value.pop();M&&(O.value=rt(M.rows),de.value=rt(M.widgetPreferences),K.value++,M.rows.some(I=>I.id===j.value)||(j.value=((L=M.rows[0])==null?void 0:L.id)||""),Z.value=r("已撤销上一次布局修改。","Last layout change undone."))}function ar(M){Tt.value=M;const L=Yn.find(I=>I.id===M).slots.reduce((I,te)=>I+te,0);ut.value=Yt([Ke.value]).slice(0,L)}function sr(M){no(F1(O.value,j.value,{weights:M}))}function ao(M){return B(this,null,function*(){var te,Ie,me;const L=Vn(O.value,M);if(!L)return;j.value=L.row,no(Bo(O.value,L,null)),dt.value=null,yield ot();const I=`slot:${L.row}:${L.column}:${L.slot}`;ht.value?(te=document.querySelector(`[data-overview-empty="${I}"]`))==null||te.focus({preventScroll:!0}):(me=(Ie=et.value)==null?void 0:Ie.querySelector(`[data-empty-slot="${I}"]`))==null||me.focus({preventScroll:!0})})}function sl(){const M=Rn();ca(L=>[...L,M]),j.value=M.id}function or(){ca(M=>M.filter(L=>L.id!==j.value)),ft()}function lr(){ca(()=>[])}function ir(M,L){kn||(j.value=M,dt.value=dt.value===L?null:L,Z.value="")}const bt=x(null),da=x(""),Ca=x(null),so=R(()=>Tw(O.value)),oo=R(()=>bt.value?p(bt.value.id):"");function Dn(M){return M==="compact"?r("此形态不支持上下位置,请换形态或选择普通位置。","This form does not support a stacked position. Change form or position."):M==="retained"||M==="choose-retained"?r("请按槽位数量选择保留模块。","Choose modules within this layout’s capacity."):M==="incomplete-stack"?r("上下组合仍有空位,请补齐或更换行布局。","Fill the stacked slots or choose another layout."):M==="hard-spec"?r("整理后的规格不适配,请更换布局。","The simplified layout does not fit."):M==="capacity"?r("此行无法继续插入,请选择新行或更换布局。","This row is full. Use a new row or change its layout."):M==="structure"?r("比例合计须为100%,且与布局槽位一致。","Proportions must total 100% and match the layout."):M==="row-target"?r("整行请放到行间","Move whole rows between rows"):M==="target"?r("目标已变化,请重新选择","Destination changed; choose again"):M.startsWith("height:")?r("需要行高至少 ","Needs row height of at least ")+M.split(":")[1]+" px":M.startsWith("width:")?r("需要更宽的槽位:","Needs a wider slot: ")+M.split(":")[1]+" px":r("无法采用此组合:","Cannot use this layout: ")+M}function It(M){var Me,Ve;const L=M.kind!=="edge"?O.value.findIndex(Je=>Je.id===M.row):M.before?O.value.findIndex(Je=>Je.id===M.before):O.value.length,I=M.kind==="slot"?$a(M):M.kind==="beside"?r("并排插入第","Insert beside row ")+(L+1)+r("行",""):M.before?r("第","Before row ")+(L+1)+r("行之前",""):r("页面末尾","End of page"),te=M.kind==="slot"?(Ve=(Me=O.value[L])==null?void 0:Me.columns[M.column])==null?void 0:Ve.cards[M.slot]:null,Ie=bt.value?Va(wo(O.value,bt.value,M),bt.value.id):null,me=M.kind==="edge"?r("独占新行","New single row"):M.kind==="beside"?r("预览扩列","Preview new column"):te?r("替换","Replace ")+p(te)+r(",原模块隐藏","; current module will be hidden"):r("移入空位","Move into empty slot"),Le=Ie&&(Ie.direct.status!=="blocked"||Ie.alternative&&Ie.alternative.status!=="blocked");return{label:I+" · "+me+(Ie&&Le&&Ie.direct.status!=="ready"?r(" · 调整后可放入"," · Adjust to fit"):""),issue:Ie&&!Le?Ie.direct.issue:""}}const ol=R(()=>{const M=so.value.find(te=>Ga(te)===da.value);if(!M)return r("选择位置;来源空位会保留,可撤销。","Choose a destination. The source slot stays empty; undo is available.");const L=It(M);if(L.issue)return Dn(L.issue);const I=bt.value?wo(O.value,bt.value,M).rows:[];return L.label+(M.kind!=="edge"?" → "+Pn(I.find(te=>te.id===M.row)):"")});function ll(M){var I;if(!bt.value)return;const L=(I=M.target.closest("[data-placement]"))==null?void 0:I.dataset.placement;L&&(da.value=L)}const yn=(M,L,I)=>({kind:"slot",row:M.source,column:L.source,slot:L.slots[I]}),lo=(M,L,I)=>Ga(yn(M,L,I)),rr=M=>{var L;return((L=J.value.find(I=>I.source===M.source))==null?void 0:L.id)===M.id};function il(M){if(kn){kn=!1;return}ee.cancel(),zt==null||zt(),ht.value=!0,bt.value=M,Ee.value="",Z.value=""}function cr(){return B(this,null,function*(){var L,I;const M=bt.value;Vt==null||Vt(),Sa(),Z.value=r("已取消移动,布局未改变。","Move cancelled. Layout unchanged."),yield ot(),M&&((I=(L=Ze.value)==null?void 0:L.querySelector(`[data-drag-card="${M.id}"]`))==null||I.focus({preventScroll:!0}))})}function Sa(){bt.value=null,da.value="",Ca.value=null,Ee.value==="targets"&&(Ee.value="")}function Ln(M){return B(this,null,function*(){var me,Le;if(!bt.value)return;const L=It(M);if(L.issue){In(L.issue);return}const I=bt.value,te=wo(O.value,I,M),Ie=cs(te,I.id);Ee.value!=="adapt"&&Sa(),Ie&&(Z.value=r("位置已调整,可撤销。","Position updated. Undo is available.")),yield ot(),Ee.value!=="adapt"&&((Le=(me=Ze.value)==null?void 0:me.querySelector(`[data-drag-card="${I.id}"]`))==null||Le.focus({preventScroll:!0}))})}let Vt,kn=!1;function dr(M,L){if(M.button!==0||M.isPrimary===!1||zt||Ee.value)return;ee.cancel(),Vt==null||Vt();const I={x:M.clientX,y:M.clientY},te=M.pointerId,Ie=[innerWidth,innerHeight];let me=!1;const Le=$t=>{var Dt,Wt,Jt;$t.pointerId===te&&(!me&&Math.hypot($t.clientX-I.x,$t.clientY-I.y)<6||(me||(il(L),me=!0),$t.preventDefault(),Ca.value={x:Math.max(((Dt=et.value)==null?void 0:Dt.getBoundingClientRect().left)||0,Math.min(innerWidth-180,$t.clientX+12)),y:Math.max(0,Math.min(innerHeight-80,$t.clientY+12))},da.value=((Jt=(Wt=document.elementFromPoint($t.clientX,$t.clientY))==null?void 0:Wt.closest("[data-placement]"))==null?void 0:Jt.dataset.placement)||""))},Me=()=>{window.removeEventListener("pointermove",Le),window.removeEventListener("pointerup",Je),window.removeEventListener("pointercancel",Ve),window.removeEventListener("blur",Ve),Vt=void 0},Ve=()=>{Me(),me&&(kn=!0,setTimeout(()=>kn=!1,0),Sa())},Je=$t=>{if($t.pointerId===te&&(Me(),me)){if(kn=!0,setTimeout(()=>kn=!1,0),Ie[0]!==innerWidth||Ie[1]!==innerHeight){Sa();return}const Dt=so.value.find(Wt=>Ga(Wt)===da.value);Dt?Ln(Dt):Sa(),Ca.value=null}};Vt=Ve,window.addEventListener("pointermove",Le,{passive:!1}),window.addEventListener("pointerup",Je),window.addEventListener("pointercancel",Ve),window.addEventListener("blur",Ve)}function ur(M){return{height:sa(M)&&Ot.sizes.value[M.id]?tn(M)+"px":M.natural?"auto":M.height+"px",minHeight:M.chartHeight?M.chartHeight+"px":void 0,"--natural-chart-height":(M.chartHeight||320)+"px",gridTemplateColumns:M.columns.map(L=>"minmax("+Math.min(he.value,Math.max(...L.cards.map(I=>I?Os(I,Pt.value[I],L.cards.length===2).minWidth:260)))+"px,"+L.weight+"fr)").join(" ")}}function vr(M){if(M.cards.length===1)return{gridTemplateRows:"auto"};const L=M.cards.map(I=>I&&Kt(I,Pt.value[I],{width:1e3,height:1e5,role:"stacked",favoriteCount:4,natural:!0}).stretch);return{gridTemplateRows:L[0]?"minmax(min-content,1fr) max-content":L[1]?"max-content minmax(min-content,1fr)":"auto auto"}}function pr(M){var L;return sa(M)||M.columns.length>1&&M.columns.some(I=>I.compact)&&(((L=Pt.value.traffic.ruleVersion)!=null?L:2)>=2||M.columns.some(I=>I.compact&&I.cards.some(te=>{var Ie;return te&&(((Ie=Pt.value[te].ruleVersion)!=null?Ie:2)>=2||Kt(te,Pt.value[te],{width:1e3,height:1e5,role:"stacked",favoriteCount:4,natural:!0}).stretch)})))}function hr(M,L){var Ie;const I=(Ie=et.value)==null?void 0:Ie.querySelector('[data-ordered-row="'+M.id+'"]'),te=I==null?void 0:I.querySelectorAll(".ordered-column");return!I||!(te!=null&&te[L])?0:te[L].getBoundingClientRect().right-I.getBoundingClientRect().left+9}let zt,xa=!1;function mr(M){xa&&(xa=!1,M.detail>0&&(M.preventDefault(),M.stopImmediatePropagation()))}function io(M,L,I){var Wt;if(M.button!==0)return;M.preventDefault(),zt==null||zt();const te=M.clientX,Ie=M.clientY,me=M.pointerId,Le=[innerWidth,innerHeight,(Wt=et.value)==null?void 0:Wt.clientWidth];let Me=!1;const Ve=Jt=>{if(Jt.pointerId!==me)return;const An=Jt.clientX-te,gl=Jt.clientY-Ie;Me||(Me=Math.hypot(An,gl)>3),Me&&L(An,gl)},Je=Jt=>{window.removeEventListener("pointermove",Ve),window.removeEventListener("pointerup",$t),window.removeEventListener("pointercancel",Dt),window.removeEventListener("blur",Dt),zt=void 0,Me&&(xa=!0,kn=!0,setTimeout(()=>kn=!1,0)),I(Jt),kt.value=""},$t=Jt=>{var An;Jt.pointerId===me&&Je(Le[0]!==innerWidth||Le[1]!==innerHeight||Le[2]!==((An=et.value)==null?void 0:An.clientWidth))},Dt=()=>Je(!0);zt=Dt,window.addEventListener("pointermove",Ve),window.addEventListener("pointerup",$t),window.addEventListener("pointercancel",Dt),window.addEventListener("blur",Dt)}function ro(M,L){if(L){O.value=M;return}const I=ks(O.value,de.value,je()).issue;if(I){O.value=M,In(I);return}JSON.stringify(M)!==JSON.stringify(O.value)&&(xe.value=[...xe.value.slice(-29),Xa(M,de.value,K.value)],K.value++)}function ps(M,L){const I=M.columns.reduce((Le,Me)=>Le+Me.weight,0),te=M.columns[L].weight+M.columns[L+1].weight,Ie=he.value-18*(M.columns.length-1),me=Le=>Math.max(...Le.cards.map(Me=>Me?Os(Me,de.value[Me],Le.cards.length===2).minWidth:260));return[Math.ceil(me(M.columns[L])/Ie*I*10)/10,Math.floor((te-me(M.columns[L+1])/Ie*I)*10)/10]}function fr(M,L,I){if(M.button!==0||M.isPrimary===!1||zt||Vt||ee.busy.value)return;const te=rt(O.value),Ie=O.value.find(Wt=>Wt.id===L.source),me=L.columns[I].source,Le=L.columns[I+1].source,Me=Ie.columns[me].weight,Ve=Me+Ie.columns[Le].weight,Je=he.value-18*(L.columns.length-1),$t=L.columns.reduce((Wt,Jt)=>Wt+Jt.weight,0),Dt=ps(L,I);kt.value=Ie.id,io(M,Wt=>{const Jt=Math.round((Me+Wt/Je*$t)/5)*5,An=Math.max(Dt[0],Math.min(Dt[1],Jt));Ie.columns[me].weight=An,Ie.columns[Le].weight=Number((Ve-An).toFixed(1)),An!==Jt&&(Z.value=r("已到卡片最小宽度。","Card minimum width reached."))},Wt=>ro(te,Wt))}function rl(M,L,I){Ut(),j.value=M.source;const te=ps(M,L);ca(Ie=>{const me=Ie.find($t=>$t.id===M.source),Le=M.columns[L].source,Me=M.columns[L+1].source,Ve=me.columns[Le].weight+me.columns[Me].weight,Je=Math.max(te[0],Math.min(te[1],me.columns[Le].weight+I));return me.columns[Le].weight=Je,me.columns[Me].weight=Number((Ve-Je).toFixed(1)),Ie})}function br(){_t.value=r("已到内容最小高度,可拉高整行增加调整空间。","Content minimum reached. Drag the row’s bottom edge for more room.")}function cl(M,L){var Ie;const I=((Ie=Ot.sizes.value[M.id])==null?void 0:Ie.height)||tn(M),te=xs(Math.round(L),I,Math.max(I,Vo));return _t.value=te!==Math.round(L)?LLe.id===L.source),Ie=((me=be(L))==null?void 0:me.getBoundingClientRect().height)||tn(L);kt.value=te.id,_t.value="",io(M,(Le,Me)=>{const Ve=cl(L,Ie+Me);Ve!==Math.round(Ie)?te.minHeight=Ve:I.find(Je=>Je.id===te.id).minHeight===void 0?delete te.minHeight:te.minHeight=I.find(Je=>Je.id===te.id).minHeight},Le=>{ro(I,Le),Le&&(_t.value="")})}function dl(M,L){var Ie;Ut();const I=((Ie=be(M))==null?void 0:Ie.getBoundingClientRect().height)||tn(M),te=cl(M,I+L);te!==Math.round(I)&&ca(me=>(me.find(Le=>Le.id===M.source).minHeight=te,me))}function ul(M,L,I,te,Ie){const me=Zt(M,L),Le=xs(I+te,me.min,me.max);return Le!==I+te?br():_t.value="",Math.abs(Le-I)<.5?!1:(Ie.find(Me=>Me.id===M.source).columns[M.columns[L].source].upperShare=Number(xs(Le/me.available*100,.01,99.99).toFixed(4)),!0)}function _r(M,L,I){var Le,Me;if(M.button!==0||M.isPrimary===!1||zt||Vt||ee.busy.value)return;const te=rt(O.value),Ie=(Le=be(L))==null?void 0:Le.querySelectorAll(":scope > .ordered-column")[I],me=((Me=Ie==null?void 0:Ie.querySelector(":scope > .ordered-card"))==null?void 0:Me.getBoundingClientRect().height)||Zt(L,I).upper;kt.value=L.source,_t.value="",io(M,(Ve,Je)=>{const $t=rt(te);ul(L,I,me,Je,$t),O.value=$t},Ve=>{ro(te,Ve),Ve&&(_t.value="")})}function vl(M,L,I){var me,Le;Ut();const te=(me=be(M))==null?void 0:me.querySelectorAll(":scope > .ordered-column")[L],Ie=((Le=te==null?void 0:te.querySelector(":scope > .ordered-card"))==null?void 0:Le.getBoundingClientRect().height)||Zt(M,L).upper;ca(Me=>(ul(M,L,Ie,I,Me),Me))}let hs=null;We(ze,M=>B(null,null,function*(){var L,I;M?(Ut(),Ee.value="",dt.value=null,hs=document.activeElement,yield ot(),(I=(L=Fe.value)==null?void 0:L.querySelector("button"))==null||I.focus()):hs==null||hs.focus({preventScroll:!0})}));function yr(){ze.value=!1,tt.value=null}function pl(M){if(M.key==="Escape"&&g.value){M.preventDefault(),M.stopImmediatePropagation(),w();return}if(M.key==="Escape"&&(ee.busy.value||bt.value||Vt||zt)){M.preventDefault(),M.stopImmediatePropagation();const L=bt.value;Ut(),L&&ot(()=>{var I,te;return(te=(I=Ze.value)==null?void 0:I.querySelector(`[data-drag-card="${L.id}"]`))==null?void 0:te.focus({preventScroll:!0})}),Z.value=r("已取消操作,布局未改变。","Action cancelled. Layout unchanged.")}else M.key==="Escape"&&(ze.value||Ee.value)&&(M.preventDefault(),M.stopImmediatePropagation(),ze.value?yr():ft())}function Ut(){ee.cancel(),Vt==null||Vt(),zt==null||zt(),Sa()}function hl(){Ut(),["display","adapt","slot"].includes(Ee.value)&&(ft(),Z.value=r("预览条件已变化,请重新选择。","Preview conditions changed. Choose again."))}We(()=>l.config,()=>{ve.value&&(Z.value=r("已读取当前保存版本,编辑草稿仍保留。","Saved version reloaded. Your editing draft is retained."))}),We(K,()=>{Vt==null||Vt(),ee.cancel()});let Pa;const ml=R(()=>ve.value&&Cn(vt())!==Cn(Xa(l.config.rows,l.config.widgetPreferences)));function fl(M){(ml.value||z.value)&&(M.preventDefault(),M.returnValue="")}return ti(()=>!ml.value&&!z.value||window.confirm(r("尚有未保存的首页修改,确定离开?","Leave without saving homepage changes?"))),nt(()=>{window.addEventListener("beforeunload",fl),window.addEventListener("keydown",pl,!0),window.addEventListener("resize",hl),Pa=new ResizeObserver(M=>{for(const L of M)L.target===st.value&&(it.value=L.contentRect.width),L.target===et.value&&(he.value=L.contentRect.width);Ot.schedule()}),st.value&&Pa.observe(st.value),et.value&&Pa.observe(et.value)}),lt(()=>{k++,$==null||$.abort(),Pa==null||Pa.disconnect(),Ut(),window.removeEventListener("beforeunload",fl),window.removeEventListener("keydown",pl,!0),window.removeEventListener("resize",hl),zt==null||zt()}),(M,L)=>(i(),d("main",{class:_e(["canvas-home layout-design-home ordered-home natural-home home-semantic-colors",{"ordered-editing":ve.value,"slot-overview-active":ht.value}]),"data-ordered-home":"",onPointerdownCapture:L[23]||(L[23]=I=>Mr(xa)?xa.value=!1:xa=!1),onClickCapture:mr,onClick:er},[e("div",Ew,[e("div",Iw,[e("a",Dw,a(r("iStoreOS官网","iStoreOS website")),1),G(bw),e("button",{ref_key:"editButton",ref:ge,class:"home-module-settings",onClick:L[0]||(L[0]=I=>ve.value?nl():tl()),disabled:H.value||!s.canEdit||s.externalBusy||z.value,"aria-pressed":ve.value,"aria-label":r("自定义首页","Customize home"),title:r("模块设置","Module settings"),"data-home-settings":""},[G(sw,{color:"#fff"})],8,Lw)])]),Ct(M.$slots,"status",{},void 0,!0),ve.value?(i(),d("section",{key:0,inert:z.value,class:"direct-toolbar","aria-label":"首页布局编辑器"},[e("span",Nw,[L[24]||(L[24]=e("i",null,null,-1)),ue(a(r("整理首页","Arrange home")),1)]),e("button",{onClick:L[1]||(L[1]=I=>Mn(null)),"data-open-library":""},"+ "+a(r("添加模块","Add module")),1),e("button",{onClick:vn,"aria-pressed":ht.value,"data-overview":""},a(ht.value?r("真实页面","Real page"):r("布局总览","Overview")),9,Ow),e("button",{onClick:nr,disabled:!xe.value.length,"data-undo":""},[L[25]||(L[25]=ue("↶ ",-1)),e("span",null,a(r("撤销","Undo")),1)],8,zw),e("button",{onClick:L[2]||(L[2]=I=>En("more"))},a(r("更多","More"))+" ···",1),e("div",qw,[e("button",{onClick:nl,"data-cancel":""},a(r("取消","Cancel")),1),e("button",{onClick:tr,class:"primary","data-apply":""},a(r("完成","Done")),1)])],8,Aw)):T("",!0),Ee.value==="display"&&Ue.value?(i(),Y(Wn,{key:1,title:p(Se.value)+" · "+r("显示设置","Display settings"),onClose:ft},{actions:pe(()=>[e("button",{class:"primary",disabled:Ue.value.status==="blocked",onClick:oa,"data-adopt-display":""},a(r("采用设置","Adopt settings")),9,Uw)]),default:pe(()=>[G(Pw,{id:Se.value,value:ae.value,onUpdate:L[3]||(L[3]=I=>ae.value=I)},null,8,["id","value"]),e("section",Rw,[e("strong",null,a(r("当前实际呈现","Actual presentation")),1),e("p",null,a(bn.value),1),Ue.value.status==="blocked"?(i(),d("p",Vw,a(Dn(Ue.value.issue)),1)):(i(),d("ul",Bw)),e("p",null,a(r("只调整此模块的展示;常用项清单与业务设置不变。","Only the display changes. Favorites and business settings stay intact.")),1)])]),_:1},8,["title"])):T("",!0),Ee.value==="module-actions"&&ke.value?(i(),Y(Wn,{key:2,title:p(ke.value),onClose:ft},{default:pe(()=>[e("button",{class:"direct-panel-action",onClick:L[4]||(L[4]=I=>ke.value&&gn(ke.value)),"data-edit-display":""},a(r("显示设置","Display settings")),1),e("button",{class:"direct-panel-action",onClick:L[5]||(L[5]=I=>Mn(tt.value))},a(r("替换模块","Replace module")),1),e("button",{class:"direct-panel-action",onClick:L[6]||(L[6]=I=>{ke.value&&ao(ke.value),ft()})},a(r("从首页移除","Hide module")),1)]),_:1},8,["title"])):T("",!0),Ee.value==="adapt"&&xt.value?(i(),Y(Wn,{key:3,title:r("放入前调整","Adjust before placing"),onClose:ft},{actions:pe(()=>[e("div",Ww,[e("button",{onClick:L[8]||(L[8]=I=>ft()),"data-cancel-adaptation":""},a(r("取消","Cancel")),1),e("button",{class:"primary",onClick:eo,"data-confirm-adaptation":""},a(r("采用调整并放入","Adjust and place")),1)])]),default:pe(()=>[e("p",Fw,a(r("确认以下调整后一起放入;取消时布局保持不变。","Review the changes before placing. Cancel keeps your layout intact.")),1),e("ul",Hw,[(i(!0),d(V,null,oe(wa(xt.value),I=>(i(),d("li",{key:I},a(p(I))+" · "+a(Gn(de.value[I].mode))+" → "+a(Gn(xt.value.next.widgetPreferences[I].mode)),1))),128)),xt.value.hidden.length?(i(),d("li",Gw,a(r("将隐藏:","Will hide: "))+a(xt.value.hidden.map(p).join("、")),1)):T("",!0)]),en.value&&en.value.status!=="blocked"?(i(),d("button",{key:0,onClick:L[7]||(L[7]=I=>{xt.value=en.value,en.value=null}),"data-adaptation-summary":""},a(r("改用摘要方案","Use summary alternative")),1)):T("",!0),e("p",jw,a(r("位置和展示设置将一起提交,可一次撤销。","Position and display form one undoable change.")),1)]),_:1},8,["title"])):T("",!0),Ee.value==="more"?(i(),Y(Wn,{key:4,title:r("预览与恢复","Preview and restore"),onClose:ft},{default:pe(()=>[e("p",Jw,a(r("布局保存到此路由器,所有登录者共用。恢复推荐先进入草稿。","Saved on this router for everyone. Restore changes the draft first.")),1),e("button",{class:"direct-panel-action",onClick:L[9]||(L[9]=I=>{Qi(),ft()}),"data-reset":""},a(r("恢复推荐布局","Restore recommended")),1),e("button",{class:"direct-panel-action",onClick:L[10]||(L[10]=I=>{sl(),Ee.value="row"}),"data-add-row":""},"+ "+a(r("添加空行","Add empty row")),1),e("button",{class:"direct-panel-action",onClick:L[11]||(L[11]=I=>{lr(),ft()})},a(r("全部收起","Hide all")),1),e("div",Kw,[e("label",null,[ue(a(r("内容预览宽度","Content preview width")),1),e("input",{type:"range",min:"292",max:Math.max(292,it.value),step:"1",value:Math.min(re.value||it.value,it.value),onInput:L[12]||(L[12]=I=>re.value=Number(I.target.value)),"aria-label":"内容预览宽度"},null,40,Zw),e("output",null,a(Math.round(he.value))+"px",1)]),e("button",{onClick:L[13]||(L[13]=I=>re.value=0)},a(r("自动宽度","Auto width")),1),e("span",null,a(r("缩窄不改写你的布局,变宽后恢复","Narrow previews preserve the wide layout")),1)])]),_:1},8,["title"])):T("",!0),Ee.value==="targets"&&bt.value?(i(),Y(Wn,{key:5,title:r("移动到哪里","Choose a destination"),onClose:ft},{default:pe(()=>[e("p",Yw,a(oo.value)+" · "+a(r("选择目标,确认前不会改变布局。","Choose a destination. Nothing changes until confirmed.")),1),(i(!0),d(V,null,oe(so.value,I=>(i(),d("button",{key:o(Ga)(I),class:"direct-target-option","data-target-option":o(Ga)(I),"aria-disabled":!!It(I).issue,onClick:te=>Ln(I)},[e("span",null,a(It(I).label),1),It(I).issue?(i(),d("small",Xw,a(Dn(It(I).issue)),1)):T("",!0)],8,Qw))),128))]),_:1},8,["title"])):T("",!0),bt.value?(i(),d("div",e$,[e("span",null,[ue(a(oo.value)+" ",1),e("small",null,a(r("选择位置","Choose destination")),1)]),e("button",{onClick:L[14]||(L[14]=I=>Ee.value="targets")},a(r("目标列表","Destinations")),1),e("button",{onClick:cr},a(r("取消移动","Cancel move")),1)])):T("",!0),Ca.value?(i(),d("div",{key:7,class:"direct-drag-ghost",style:pt({left:Ca.value.x+"px",top:Ca.value.y+"px"})},[ue("⠿ "+a(oo.value),1),e("small",null,a(ol.value),1)],4)):T("",!0),Ee.value==="row"?(i(),Y(Wn,{key:8,title:r("这一行的布局","This row’s layout"),onClose:ft},{default:pe(()=>[Ke.value?(i(),d(V,{key:0},[e("div",t$,[(i(!0),d(V,null,oe(o(Yn),I=>(i(),d("button",{key:I.id,onClick:te=>ar(I.id),class:_e({active:Ke.value.template===I.id}),"aria-pressed":Ke.value.template===I.id,"data-template":I.id},[e("span",{class:_e(["ordered-miniature",I.id])},[(i(!0),d(V,null,oe(I.slots,(te,Ie)=>(i(),d("i",{key:Ie},[(i(!0),d(V,null,oe(te,me=>(i(),d("b",{key:me}))),128))]))),128))],2),ue(a(r(I.zh,I.en)),1)],10,n$))),128))]),Tt.value?(i(),d("section",a$,[e("h3",null,a(r("布局预览","Layout preview"))+" · "+a(ds.value),1),o(Yt)([Ke.value]).length>Tn.value?(i(),d("p",s$,a(r("请选择保留的模块;未保留项仅从首页隐藏。","Choose what to keep. Other modules will only be hidden.")),1)):T("",!0),o(Yt)([Ke.value]).length>Tn.value?(i(!0),d(V,{key:1},oe(o(Yt)([Ke.value]),I=>(i(),d("label",{key:I,class:"slot-retained"},[e("input",{type:"checkbox",checked:ut.value.includes(I),onChange:te=>Zi(I),"data-retain":I},null,40,o$),ue(a(p(I)),1)]))),128)):(i(),d("p",l$,a(o(Yt)([Ke.value]).map(p).join(" · ")),1)),pn.value.hidden.length?(i(),d("p",i$,a(r("将隐藏:","Will hide: "))+a(pn.value.hidden.map(p).join("、")),1)):T("",!0),pn.value.issue?(i(),d("p",r$,a(Dn(pn.value.issue)),1)):T("",!0),pn.value.requiresAdaptation?(i(),d("p",c$,a(r("采用此布局将同时调整以下形态,可一次撤销。","This layout also changes the following forms in one undoable step.")),1)):T("",!0),pn.value.requiresAdaptation&&vs.value?(i(),d("ul",d$,[(i(!0),d(V,null,oe(wa(vs.value),I=>(i(),d("li",{key:I},a(p(I))+" · "+a(Gn(de.value[I].mode))+" → "+a(Gn(vs.value.next.widgetPreferences[I].mode)),1))),128))])):T("",!0),e("div",u$,[e("button",{onClick:L[15]||(L[15]=I=>Tt.value=null)},a(r("取消更改","Cancel change")),1),e("button",{disabled:!!pn.value.issue,onClick:Yi,"data-confirm-structure":"",class:"primary"},a(r("采用此布局","Use layout")),9,v$)])])):T("",!0),e("p",p$,a(r("默认随内容等高。拖动上下分隔线分配空间,拉行底边增加空间。","Content sets the default height. Drag the stack divider to share space, or the row’s bottom edge to add space.")),1),e("button",{class:"direct-panel-action",onClick:Ye,"data-reset-row-space":""},a(r("恢复自动高度与分配","Restore automatic height and allocation")),1),Ke.value.columns.length>1?(i(),d("div",h$,[e("small",null,a(r("列宽比例","Column proportions")),1),(i(!0),d(V,null,oe(at.value,I=>(i(),d("button",{key:I.join("/"),onClick:te=>sr(I),"aria-pressed":Ke.value.columns.map(te=>te.weight).join("/")===I.join("/"),"data-width-preset":I.join("/")},[(i(!0),d(V,null,oe(I,(te,Ie)=>(i(),d("i",{key:Ie,style:pt({flex:te})},null,4))),128)),e("span",null,a(I.join(" / ")),1)],8,m$))),128))])):T("",!0),e("div",f$,[e("button",{onClick:or,"data-hide-row":""},a(r("收起整行","Hide row")),1)]),e("p",b$,a(r("内容最小尺寸始终保留。调整后可一次撤销。","Content minimums are always preserved. Each adjustment can be undone.")),1)],64)):T("",!0)]),_:1},8,["title"])):T("",!0),G(jk,{notice:o(F),editing:ve.value,onDismiss:o(ce)},null,8,["notice","editing","onDismiss"]),Ee.value==="finish"&&St.value?(i(),Y(Wn,{key:9,title:r("完成前整理","Review before finishing"),onClose:ft},{default:pe(()=>[e("p",g$,a(r("仅整理本次留下的空位,不合并不同行。确认前首页布局不变。","Only empty slots are simplified. Rows are never merged. Nothing is applied until you confirm.")),1),(i(!0),d(V,null,oe(O.value,I=>(i(),d("div",{key:I.id,class:"slot-finish-row","data-finish-row":I.id},[e("strong",null,a(r("第","Row ")+(O.value.indexOf(I)+1)+r("行","")),1),e("small",null,a(Pn(I))+" → "+a(Pn(St.value.rows.find(te=>te.id===I.id))),1)],8,_$))),128)),(i(!0),d(V,null,oe(St.value.problems,I=>(i(),d("section",{key:I.row,class:"slot-change-preview","data-finish-problem":""},[e("p",null,a(r("第","Row ")+(O.value.findIndex(te=>te.id===I.row)+1)+r("行:"," · "))+a(Dn(I.issue)),1),e("button",{onClick:te=>Ce(I.row),"data-fix-row":""},a(r("定位并修改布局","Locate and fix layout")),9,y$)]))),128)),e("div",k$,[e("button",{onClick:L[16]||(L[16]=I=>ft()),"data-cancel-finish":""},a(r("继续编辑","Keep editing")),1),e("button",{disabled:!!St.value.issue,onClick:ia,"data-confirm-finish":"",class:"primary"},a(r("确认整理并完成","Confirm and finish")),9,w$)])]),_:1},8,["title"])):T("",!0),ve.value&&ht.value?(i(),d("section",{key:10,ref_key:"overviewElement",ref:Ze,class:_e(["slot-overview",{"row-sort-active":o(ee).active.value}]),"data-layout-overview":"",onPointerover:ll,onFocusin:ll},[e("div",$$,[e("h2",null,a(r("把首页排成你喜欢的样子","Make room for what matters")),1),e("p",C$,a(bt.value?ol.value:r("拖动行标题排列整行;点选或拖动模块名称调整模块。","Drag a row title to reorder rows; select or drag a module name to move modules.")),1)]),o(ee).preview.value?(i(),d("div",{key:0,class:"row-sort-placeholder","data-row-placeholder":"",style:pt({top:o(ee).preview.value.top+"px",height:o(ee).preview.value.height+"px"})},[e("span",null,a(r("放到这里","Drop here"))+" · "+a(o(ee).preview.value.to+1),1)],4)):T("",!0),(i(!0),d(V,null,oe(O.value,(I,te)=>{var Ie;return i(),d("section",{key:I.id,class:_e(["slot-overview-row",{"row-sort-source":((Ie=o(ee).preview.value)==null?void 0:Ie.id)===I.id}]),style:pt(o(ee).style(I.id)),"data-overview-row":I.id},[bt.value?(i(),d("button",{key:0,class:"slot-overview-gap","data-placement":"edge:"+I.id,onClick:me=>Ln({kind:"edge",before:I.id}),"aria-label":It({kind:"edge",before:I.id}).label},[e("span",null,"+ "+a(It({kind:"edge",before:I.id}).label),1)],8,x$)):T("",!0),e("header",null,[e("button",{class:"row-sort-handle",onPointerdown:me=>o(ee).start(me,I.id),onClick:me=>se(I.id),onKeydown:me=>mt(me,I.id,te),"data-row-handle":I.id,"aria-label":r("拖动整行","Drag row")+" "+(te+1),title:r("拖动排序;Alt + 上下键或 Home / End","Drag to sort; Alt + arrows or Home / End")},[L[26]||(L[26]=e("span",{"aria-hidden":"true"},"⠿",-1)),e("strong",null,a(r("第","Row ")+(te+1)+r("行","")),1)],40,P$),e("span",null,a(r("自适应高度","Content height"))+" · "+a(I.columns.map(me=>me.weight).join(" / ")),1),e("details",{class:"row-sort-menu","data-row-menu":I.id},[e("summary",{"aria-label":r("整行操作","Row actions")+" "+(te+1)},"···",8,M$),e("div",null,[e("button",{onClick:me=>fe(I.id,te-1,!0),disabled:te===0,"data-row-up":""},a(r("上移","Move up")),9,E$),e("button",{onClick:me=>fe(I.id,te+1,!0),disabled:te===O.value.length-1,"data-row-down":""},a(r("下移","Move down")),9,I$),e("button",{onClick:me=>fe(I.id,0,!0),disabled:te===0,"data-row-first":""},a(r("置顶","Move to first")),9,D$),e("button",{onClick:me=>fe(I.id,O.value.length-1,!0),disabled:te===O.value.length-1,"data-row-last":""},a(r("置底","Move to last")),9,L$)])],8,T$),e("button",{onClick:me=>{j.value=I.id,En("row")},"data-select-row":I.id},a(r("布局","Layout"))+" ▦",9,A$)]),e("div",{class:_e(["slot-overview-grid",{stacked:I.columns.some(me=>me.cards.length===2)}]),style:pt({gridTemplateColumns:I.columns.map(me=>"minmax(0,"+me.weight+"fr)").join(" "),height:I.columns.some(me=>me.cards.length===2)?"184px":"88px"})},[(i(!0),d(V,null,oe(I.columns,(me,Le)=>(i(),d("div",{key:Le,class:"slot-overview-column",style:pt({gridTemplateRows:me.cards.length===1?"minmax(0,1fr)":"repeat(2,minmax(0,1fr))"})},[(i(!0),d(V,null,oe(me.cards,(Me,Ve)=>(i(),d("div",{key:Ve,class:_e(["slot-overview-card",{chosen:dt.value===Me,drop:da.value==="slot:"+I.id+":"+Le+":"+Ve}])},[Me?(i(),d(V,{key:0},[e("button",{class:"slot-overview-name",onPointerdown:Je=>dr(Je,{kind:"card",id:Me}),onClick:Je=>ir(I.id,Me),"data-drag-card":Me},[G(Qe,{name:o(rn)(Me).glyph},null,8,["name"]),e("span",{class:"overview-module-title",title:p(Me)},a(p(Me)),9,O$),e("small",{class:"overview-form-label","data-overview-form":Me},a(Xi(Me)),9,z$)],40,N$),e("div",q$,[dt.value===Me?(i(),d("button",{key:0,onClick:Je=>il({kind:"card",id:Me}),"data-move-card":Me},a(r("移动","Move")),9,R$)):(i(),d("button",{key:1,onClick:Je=>_n(Me),"aria-label":r("查看","Preview ")+p(Me)},"↗",8,V$)),e("button",{onClick:Je=>ka(Me,{row:I.id,column:Le,slot:Ve}),"data-module-menu":Me,"aria-label":r("模块操作","Module actions ")+p(Me)},"···",8,B$)])],64)):(i(),d("button",{key:1,class:"slot-overview-empty","data-overview-empty":"slot:"+I.id+":"+Le+":"+Ve,onClick:Je=>Mn({kind:"slot",row:I.id,column:Le,slot:Ve})},"+ "+a(r("添加","Add")),9,U$)),bt.value?(i(),d("button",{key:2,class:"slot-overview-drop","data-placement":"slot:"+I.id+":"+Le+":"+Ve,"aria-label":It({kind:"slot",row:I.id,column:Le,slot:Ve}).label,"aria-disabled":!!It({kind:"slot",row:I.id,column:Le,slot:Ve}).issue,onClick:Je=>Ln({kind:"slot",row:I.id,column:Le,slot:Ve})},[e("span",null,a(Me?p(Me):r("空位","Empty")),1),e("small",null,a(It({kind:"slot",row:I.id,column:Le,slot:Ve}).issue?Dn(It({kind:"slot",row:I.id,column:Le,slot:Ve}).issue):r("放入此处","Place here")),1)],8,F$)):T("",!0)],2))),128))],4))),128)),bt.value?(i(!0),d(V,{key:0},oe(I.columns.length+1,me=>(i(),d("button",{key:me,class:"slot-overview-insert",style:pt({left:la(I,me-1)}),"data-placement":"beside:"+I.id+":"+(me-1),"aria-label":It({kind:"beside",row:I.id,index:me-1}).label,"aria-disabled":!!It({kind:"beside",row:I.id,index:me-1}).issue,onClick:Le=>Ln({kind:"beside",row:I.id,index:me-1})},[...L[27]||(L[27]=[e("span",null,"+",-1)])],12,H$))),128)):T("",!0)],6)],14,S$)}),128)),bt.value?(i(),d("button",{key:1,class:"slot-overview-end","data-placement":"edge:end",onClick:L[17]||(L[17]=I=>Ln({kind:"edge",before:null}))},"+ "+a(r("放到最后","Place at end")),1)):T("",!0),O.value.length?T("",!0):(i(),d("button",{key:2,class:"slot-overview-end",onClick:L[18]||(L[18]=I=>sl())},"+ "+a(r("添加空行","Add empty row")),1))],34)):T("",!0),e("div",{class:_e(["lab-available",{"slot-parked":ht.value}]),ref_key:"availableElement",ref:st},[e("div",{class:"lab-content ordered-content",ref_key:"contentElement",ref:et,style:pt({maxWidth:re.value?re.value+"px":void 0})},[H.value?(i(),Y(Yk,{key:0})):T("",!0),(i(!0),d(V,null,oe(J.value,I=>{var te,Ie;return i(),d("section",{key:I.id,class:_e(["ordered-row",{selected:ve.value&&I.source===j.value}]),style:pt(ur(I)),"data-ordered-row":I.id,"data-row-source":I.source},[bt.value&&rr(I)?(i(),d("button",{key:0,class:"direct-gap-target","data-placement":"edge:"+I.source,onClick:me=>Ln({kind:"edge",before:I.source})},"+ "+a(r("独占新行 / 整行移到这里","New row / move row here")),9,j$)):T("",!0),ve.value?(i(),d("div",W$,[e("button",{onClick:me=>{j.value=I.source,En("row")},"aria-label":r("第","Row ")+(O.value.findIndex(me=>me.id===I.source)+1)+r("行布局"," layout"),"data-select-row":I.source},a(r("布局","Layout"))+" ▦",9,J$)])):T("",!0),(i(!0),d(V,null,oe(I.columns,(me,Le)=>(i(),d("div",{key:me.source,class:"ordered-column",style:pt(ie(I,me,Le)),"data-ordered-column":Le},[(i(!0),d(V,null,oe(me.cards,(Me,Ve)=>(i(),d("div",{key:Me||"empty-"+Ve,class:_e(["ordered-card",{drop:da.value===lo(I,me,Ve),chosen:dt.value===Me}]),"data-ordered-card":Me||void 0},[Me?(i(),d(V,{key:0},[ve.value?(i(),d("div",Y$,[e("button",{onClick:Je=>gn(Me),"aria-label":p(Me)+r("显示设置"," display settings"),"data-display-settings":Me},"⚙",8,Q$),e("button",{onClick:Je=>Mn(yn(I,me,Ve)),"aria-label":r("替换","Replace ")+p(Me),"data-replace-module":Me},a(r("替换","Replace")),9,X$),e("button",{onClick:Je=>ao(Me),"aria-label":r("从首页移除","Hide ")+p(Me),"data-hide-module":Me},"×",8,eC)])):T("",!0),Ct(M.$slots,"widget",{id:Me,role:dn(me.compact),chartStretch:pr(I),preference:Pt.value[Me],natural:I.natural,editing:ve.value},void 0,!0)],64)):(i(),d("button",{key:1,class:"direct-empty-slot",onClick:Je=>Mn(yn(I,me,Ve)),"data-empty-slot":lo(I,me,Ve)},"+ "+a(r("添加模块","Add module")),9,tC)),bt.value?(i(),d("button",{key:2,class:_e(["direct-placement",{invalid:It(yn(I,me,Ve)).issue}]),"data-placement":lo(I,me,Ve),"aria-label":It(yn(I,me,Ve)).label,"aria-disabled":!!It(yn(I,me,Ve)).issue,onClick:Je=>Ln(yn(I,me,Ve))},[e("span",null,[ue(a(It(yn(I,me,Ve)).label),1),It(yn(I,me,Ve)).issue?(i(),d("small",aC,a(Dn(It(yn(I,me,Ve)).issue)),1)):T("",!0)])],10,nC)):T("",!0)],10,Z$))),128)),wt(I)&&me.cards.length===2?(i(),d("button",{key:0,class:"row-stack-grip",role:"separator","aria-orientation":"horizontal","aria-label":r("调整上下空间","Adjust stacked card space"),"aria-valuenow":Math.round(Zt(I,Le).upper),"aria-valuemin":Math.round(Zt(I,Le).min),"aria-valuemax":Math.round(Zt(I,Le).max),style:pt({top:Te(I,Le)+"px"}),onPointerdown:Me=>_r(Me,I,Le),onKeydown:[Qt(Ge(Me=>vl(I,Le,-16),["prevent"]),["up"]),Qt(Ge(Me=>vl(I,Le,16),["prevent"]),["down"])],title:r("拖动分配上下空间;↑ ↓ 微调","Drag to share space; ↑ ↓ to adjust"),"data-stack-grip":""},[...L[28]||(L[28]=[e("span",null,"•••",-1)])],44,sC)):T("",!0)],12,K$))),128)),wt(I)&&I.columns.length>1?(i(!0),d(V,{key:2},oe(I.columns.slice(0,-1),(me,Le)=>(i(),d("button",{key:Le,class:"ordered-column-handle",role:"separator",tabindex:"0","aria-orientation":"vertical","aria-valuenow":I.columns[Le].weight,"aria-valuemin":ps(I,Le)[0],"aria-valuemax":ps(I,Le)[1],style:pt({left:"clamp(9px,"+hr(I,Le)+"px,calc(100% - 9px))"}),"aria-label":r("调整列宽","Adjust column widths")+" "+(Le+1),onPointerdown:Me=>fr(Me,I,Le),onKeydown:[Qt(Ge(Me=>rl(I,Le,-5),["prevent"]),["left"]),Qt(Ge(Me=>rl(I,Le,5),["prevent"]),["right"])]},[L[29]||(L[29]=e("span",null,"⋮",-1)),kt.value===I.source?(i(),d("output",lC,a(I.columns.map(Me=>Me.weight).join(" / ")),1)):T("",!0)],44,oC))),128)):T("",!0),wt(I)?(i(),d("button",{key:3,class:"row-bottom-grip",role:"separator","aria-orientation":"horizontal","aria-label":r("调整整行空间","Adjust row space"),"aria-valuenow":Math.round(tn(I)),"aria-valuemin":((te=o(Ot).sizes.value[I.id])==null?void 0:te.height)||0,"aria-valuemax":Math.max(o(Vo),((Ie=o(Ot).sizes.value[I.id])==null?void 0:Ie.height)||0),onPointerdown:me=>gr(me,I),onKeydown:[Qt(Ge(me=>dl(I,-32),["prevent"]),["up"]),Qt(Ge(me=>dl(I,32),["prevent"]),["down"])],title:r("拖动行底边增加空间;↑ ↓ 微调","Drag the bottom edge for more room; ↑ ↓ to adjust"),"data-row-space-grip":""},[...L[30]||(L[30]=[e("span",null,"•••",-1)])],40,iC)):T("",!0),wt(I)&&_t.value?(i(),d("span",rC,a(_t.value),1)):T("",!0)],14,G$)}),128)),bt.value?(i(),d("button",{key:1,class:"direct-last-target","data-placement":"edge:end",onClick:L[19]||(L[19]=I=>Ln({kind:"edge",before:null}))},"+ "+a(r("放到最后,独占新行 / 整行移到最后","New row at end / move row to end")),1)):T("",!0),!H.value&&!J.value.length?(i(),d("section",cC,[G(Qe,{name:"grid"}),e("h2",null,a(r("首页,由你安排","A home of your own")),1),e("p",null,a(r("添加常看的模块,也可以随时恢复推荐布局。","Add the things you check most, or restore the recommended layout.")),1),e("button",{onClick:L[20]||(L[20]=I=>ve.value?Mn(null):tl())},a(r("添加模块","Add modules")),1)])):T("",!0)],4)],2),g.value?(i(),Y(o(n),{key:11,state:f.value,installing:b.value,error:m.value,onClose:w,onInstall:P,onRecheck:C},null,8,["state","installing","error"])):T("",!0),Ct(M.$slots,"launcher",{},void 0,!0),Ee.value==="slot"&&!g.value?(i(),Y(Wn,{key:12,title:tt.value?r("选择槽位模块","Choose module"):r("添加一行模块","Add module in a new row"),onClose:ft},{actions:pe(()=>{var I,te;return[ct.value?(i(),d("section",pC,[e("h3",null,a(p(ct.value))+" → "+a(tt.value?$a(tt.value):r("页面末尾新行","New row at end")),1),o(Vn)(O.value,ct.value)?(i(),d("p",hC,a(r("将从原位置移到这里,不创建副本。","Moves from its current position; no duplicate.")),1)):T("",!0),jn(ct.value).hidden.length?(i(),d("p",mC,a(jn(ct.value).hidden.map(p).join("、"))+a(r("将从首页隐藏,设置保留。"," will be hidden. Settings are kept.")),1)):T("",!0),e("ul",fC,[(i(!0),d(V,null,oe(nn.value?wa(nn.value):[],Ie=>(i(),d("li",{key:Ie},a(p(Ie))+" → "+a(Gn(nn.value.next.widgetPreferences[Ie].mode)),1))),128))]),sn(ct.value)&&sn(ct.value).status!=="blocked"?(i(),d("button",{key:2,onClick:L[21]||(L[21]=Ie=>qt.value=!qt.value),"aria-pressed":qt.value,"data-placement-summary":""},a(qt.value?r("保持原形态","Keep current form"):r("选择摘要方案","Choose summary alternative")),9,bC)):T("",!0),e("button",{class:"primary",disabled:((I=nn.value)==null?void 0:I.status)==="blocked",onClick:Ji,"data-confirm-choice":""},a(((te=nn.value)==null?void 0:te.status)==="needs-confirmation"||nn.value&&wa(nn.value).length?r("放入并采用调整","Place with adjustments"):r("确认放置","Place module")),9,gC)])):(i(),d("div",_C,[tt.value&&o(Il)(O.value,tt.value)?(i(),d("button",{key:0,onClick:Ki,"data-remove-pending":""},a(r("从首页移除","Hide module")),1)):T("",!0),e("button",{onClick:L[22]||(L[22]=Ie=>ft())},a(r("返回首页","Back to home")),1)]))]}),default:pe(()=>[e("p",dC,a(r("选择后先预览;已有模块会移到这里,原位置留空。","Preview before confirming. Existing modules move here and leave their old slot empty.")),1),e("div",uC,[(i(!0),d(V,null,oe(_.value,I=>(i(),d("button",{key:I.id,onClick:te=>y(I.id),disabled:o(Ka)(I.id)||D(I.id)?o(Ka)(I.id)||!o(h)||o(v).state.value!=="ready":!us(I.id),"aria-pressed":ct.value===I.id,"data-choice":I.id,"data-fit":ra(I.id)},[G(Qe,{name:I.glyph},null,8,["name"]),e("span",null,[ue(a(p(I.id)),1),e("small",null,a(ra(I.id)==="blocked"?Dn(hn(I.id).issue):ra(I.id)==="needs-confirmation"?r("调整后可放入 · ","Adjust to fit · ")+Ba(I.id):Ba(I.id)),1)]),e("span",null,a(o(Vn)(O.value,I.id)?"↗":"+"),1)],8,vC))),128))])]),_:1},8,["title"])):T("",!0)],34))}}),kC=le(yC,[["__scopeId","data-v-af0f0c55"]]),Ul=/^[a-f0-9]{32}:[1-9][0-9]{0,19}$/,Vs=(s,t)=>{if(s===t)return!0;if(!s||!t||typeof s!="object"||typeof t!="object"||Array.isArray(s)!==Array.isArray(t))return!1;const n=Object.keys(s),l=Object.keys(t);return n.length===l.length&&n.every(u=>Object.prototype.hasOwnProperty.call(t,u)&&Vs(s[u],t[u]))},Fl=Vs;function wC(s=fetch,t=8e3){function n(u,c,r,p=""){return B(this,null,function*(){const v=new AbortController,h=setTimeout(()=>v.abort(),t);try{const g=yield s("/cgi-bin/luci/istore/home/v1/"+u+"/"+p,{method:c,credentials:"same-origin",cache:"no-store",signal:v.signal,headers:r?{"Content-Type":"application/json"}:void 0,body:r?JSON.stringify(r):void 0});if(!g.ok)throw new Lt(g.status===409?"conflict":g.status===401||g.status===403?"forbidden":g.status===404&&c==="GET"?"unsupported":g.status===422?"invalid":g.status===423?"readonly":"unavailable");const b=yield g.text();if(new TextEncoder().encode(b).length>$i+4096)throw new Lt("invalid");let m;try{m=JSON.parse(b)}catch($){throw new Lt("invalid")}if((m==null?void 0:m.success)!==0||m!=null&&m.error)throw new Lt((m==null?void 0:m.success)===-1001?"forbidden":"unavailable");const f=m.result;if(!f||!["missing","saved","backup","damaged","future"].includes(f.state))throw new Lt("invalid");const k=["saved","backup"].includes(f.state);if(k&&(!Ul.test(f.version)||!f.value)||f.state==="missing"&&(f.version!=="missing"||f.value!==void 0)||["future","damaged"].includes(f.state)&&f.value!==void 0)throw new Lt("invalid");return{state:f.state,version:f.version||"",value:k?ts(u,f.value):void 0,recoveryVersion:typeof f.recoveryVersion=="string"&&/^[a-f0-9]{64}$/.test(f.recoveryVersion)?f.recoveryVersion:void 0}}catch(g){throw g instanceof Lt?g:new Lt("unavailable")}finally{clearTimeout(h)}})}return{read:u=>n(u,"GET"),recover(u,c,r=!1){return B(this,null,function*(){if(!/^[a-f0-9]{64}$/.test(c))throw new Lt("invalid");try{return yield n(u,"POST",{expectedRecovery:c},r?"reset-damaged/":"restore/")}catch(p){throw p instanceof Lt&&p.code!=="unavailable"?p:new Lt("uncertain")}})},save(u,c,r){return B(this,null,function*(){const p=ts(u,r);if(c!=="missing"&&!Ul.test(c))throw new Lt("invalid");try{const v=yield n(u,"POST",{expectedVersion:c,value:p});if(v.state!=="saved"||!Vs(v.value,p))throw new Lt("uncertain");return v}catch(v){if(v instanceof Lt&&!["unavailable","uncertain"].includes(v.code))throw v;try{const h=yield n(u,"GET");if(h.state==="saved"&&Vs(h.value,p))return h}catch(h){}throw new Lt("uncertain")}})}}}const $C={schemaVersion:4,rows:[{id:"network",template:"left-big",height:320,heightMode:"chart",columns:[{weight:60,split:50,cards:["traffic"]},{weight:40,split:50,cards:["connection","networkInterface"]}]},{id:"devices",template:"pair",height:340,heightMode:"content",columns:[{weight:50,split:50,cards:["devices"]},{weight:50,split:50,cards:["applications"]}]},{id:"storage",template:"pair",height:330,heightMode:"content",columns:[{weight:50,split:50,cards:["storage"]},{weight:50,split:50,cards:["sharing"]}]},{id:"services",template:"triple",height:280,heightMode:"content",columns:[{weight:34,split:50,cards:["docker"]},{weight:33,split:50,cards:["downloads"]},{weight:33,split:50,cards:["remote"]}]},{id:"system",template:"single",height:280,heightMode:"content",columns:[{weight:100,split:50,cards:["system"]}]}],widgetPreferences:{traffic:{mode:"auto",iconRows:0,ruleVersion:2},connection:{mode:"auto",iconRows:0,ruleVersion:2},networkInterface:{mode:"auto",iconRows:0,ruleVersion:2},devices:{mode:"auto",iconRows:0,ruleVersion:2},applications:{mode:"auto",iconRows:0,ruleVersion:2},storage:{mode:"auto",iconRows:0,ruleVersion:2},sharing:{mode:"auto",iconRows:0,ruleVersion:2},docker:{mode:"auto",iconRows:0,ruleVersion:2},downloads:{mode:"auto",iconRows:0,ruleVersion:2},remote:{mode:"auto",iconRows:0,ruleVersion:2},system:{mode:"auto",iconRows:0,ruleVersion:2}}},CC={schemaVersion:1,favorites:["tool-lan","tool-terminal","tool-firmware","tool-dns","tool-source","tool-sandbox","tool-logs","tool-maintenance"],links:[]},zi={layout:$C,launcher:CC},SC=()=>ts("layout",zi.layout),xC=()=>ts("launcher",zi.launcher),ja=s=>{const t=window.vue_lang==="en",n=s instanceof Lt?s.code:"unavailable";return n==="unsupported"?t?"This backend does not support homepage configuration. Showing defaults; saving is unavailable.":"当前后端不支持首页配置,暂用默认内容,无法保存。":{conflict:["另一窗口已保存。草稿仍保留;请先取消编辑并重新读取,再合并修改。","Another window saved. Keep your draft, then cancel and reload before merging."],forbidden:["登录已失效或没有权限,请重新登录。","Session expired or access denied. Sign in again."],future:["配置来自更新版本,当前页面只读。","Configuration requires a newer version. This page is read only."],readonly:["配置需要恢复,当前禁止覆盖。","Configuration needs recovery; overwriting is disabled."],uncertain:["保存结果尚未确认,草稿已保留。请重试读取,勿重复提交。","Save outcome is unconfirmed. Draft retained. Reload to confirm before submitting again."],invalid:["配置结构不兼容,未保存。","Configuration is incompatible and was not saved."],unavailable:["暂时无法读取路由器配置,正在临时展示内置首页。","Router configuration is unavailable. Showing built-in defaults temporarily."]}[n][t?1:0]};function PC(){const s=wC(),t=x(SC()),n=x(xC()),l=Xe({layout:{loading:!0,saving:!1,error:"",uncertain:!1},launcher:{loading:!0,saving:!1,error:"",uncertain:!1}}),u={},c={};function r(m,f){l[m].snapshot=f,f.value&&(m==="layout"?t.value=f.value:n.value=f.value)}function p(m){return B(this,null,function*(){const f=l[m];if(!f.saving){f.loading=!0,f.error="";try{const k=yield s.read(m);r(m,k),c[m]&&k.state==="saved"&&Fl(c[m],k.value)&&(u[m]=k.version,delete c[m]),f.uncertain=!1}catch(k){f.error=ja(k)}finally{f.loading=!1}}})}function v(m){var k;const f=l[m];return!f.loading&&!f.saving&&!f.error&&!f.uncertain&&((k=f.snapshot)==null?void 0:k.state)==="saved"}function h(m){return v(m)?(u[m]=l[m].snapshot.version,!0):!1}function g(m,f){return B(this,null,function*(){var w;const k=l[m],$=u[m];if(!$||!v(m))throw new Error(k.error||ja(new Lt("readonly")));if(((w=k.snapshot)==null?void 0:w.version)===$&&Fl(k.snapshot.value,f)){delete c[m];return}k.saving=!0;try{r(m,yield s.save(m,$,f)),u[m]=k.snapshot.version,k.error="",delete c[m]}catch(S){throw S instanceof Lt&&S.code==="uncertain"&&(k.uncertain=!0,c[m]=JSON.parse(JSON.stringify(f))),k.error=ja(S),new Error(ja(S))}finally{k.saving=!1}})}nt(()=>{p("layout"),p("launcher")});function b(m){return B(this,null,function*(){var k;const f=l[m];if(!(!((k=f.snapshot)!=null&&k.recoveryVersion)||!["backup","damaged"].includes(f.snapshot.state)||f.loading||f.saving)){f.saving=!0;try{r(m,yield s.recover(m,f.snapshot.recoveryVersion,f.snapshot.state==="damaged")),f.error="",f.uncertain=!1}catch($){f.error=ja($)}finally{f.saving=!1}}})}return{layout:t,launcher:n,state:l,begin:h,save:g,recover:b,read:p,editable:v,layoutEditable:R(()=>v("layout")),launcherEditable:R(()=>v("launcher"))}}class on extends Error{constructor(n,l){super(n);Nn(this,"code");this.code=l}}function qi(){return B(this,arguments,function*(s=fetch){var l;const t=new AbortController,n=setTimeout(()=>t.abort(),8e3);try{const u=yield s("/cgi-bin/luci/istore/lanctrl/v2/networks/",{credentials:"same-origin",signal:t.signal});if(u.status===404||u.status===501)return{networks:[{networkId:"lan",displayName:"lan",device:"",state:"legacy"}],legacy:!0};if(u.status===401)throw new on("登录已过期,请重新登录","permission");if(u.status===403)throw new on("没有读取局域网列表的权限","permission");if(!u.ok)throw new on("局域网服务暂不可用,请重试","unavailable");let c;try{c=yield u.json()}catch(p){throw new on("局域网列表格式不正确,请重试","invalid")}if(!c||typeof c!="object")throw new on("局域网列表格式不正确,请重试","invalid");if(c.success===-1001)throw new on("登录已过期,请重新登录","permission");if(c.error||c.success!==void 0&&c.success!==0||!Array.isArray((l=c.result)==null?void 0:l.networks))throw new on("局域网列表不可用,请重试","invalid");const r=c.result.networks;if(r.some(p=>!p||!/^[a-zA-Z0-9_][a-zA-Z0-9_.-]{0,31}$/.test(p.networkId)||typeof p.displayName!="string")||new Set(r.map(p=>p.networkId)).size!==r.length)throw new on("局域网列表格式不正确,请重试","invalid");return{networks:r,legacy:!1}}catch(u){const c=u==null?void 0:u.name;throw t.signal.aborted||c==="TimeoutError"||c==="AbortError"?new on("局域网列表读取超时,请重试","timeout"):u instanceof on?u:new on("无法连接路由器,请检查网络后重试","unavailable")}finally{clearTimeout(n)}})}const TC=s=>{const t=!!String(s.displayName||s.hostname||"").trim();return{showBrandInMeta:t&&!!s.brand,metaMode:s.classification.source==="fallback"?"pending":!t&&s.brand?"classification-source":"category"}},ln=s=>String(s||"").trim().toLowerCase(),MC=[{brand:"ASUS",patterns:[/\basustek\b/i,/\basus\b/i]},{brand:"Apple",patterns:[/\bapple(?:,? inc\.?)?\b/i]},{brand:"Samsung",patterns:[/\bsamsung\b/i]},{brand:"Xiaomi",patterns:[/\bxiaomi\b/i,/北京小米/i]},{brand:"HUAWEI",patterns:[/\bhuawei\b/i,/华为/i]}],Uo=s=>{var n;const t=String(s||"").trim().normalize("NFKC");return((n=MC.find(l=>l.patterns.some(u=>u.test(t))))==null?void 0:n.brand)||""},EC=[{scene:"storage",patterns:[/\bnas\b/i,/\bserver\b/i,/storage/i,/truenas/i,/openmediavault/i,/synology/i,/qnap/i,/群晖/i,/威联通/i]},{scene:"camera",patterns:[/camera/i,/webcam/i,/doorbell/i,/\bipc[-_ ]/i,/cctv/i,/摄像头/i,/监控/i,/门铃/i]},{scene:"gaming",patterns:[/gaming/i,/game[-_ ]?console/i,/playstation/i,/\bps[345]\b/i,/xbox/i,/nintendo/i,/steam[-_ ]?deck/i,/游戏/i,/主机/i]},{scene:"printer",patterns:[/printer/i,/laserjet/i,/deskjet/i,/officejet/i,/打印机/i,/一体机/i]},{scene:"wearable",patterns:[/smart[-_ ]?watch/i,/fitness[-_ ]?(band|tracker)/i,/wearable/i,/watch/i,/手表/i,/手环/i]},{scene:"tv",patterns:[/(^|[-_ ])tv($|[-_ ])/i,/television/i,/smart[-_ ]?tv/i,/chromecast/i,/streaming[-_ ]?(box|stick)/i,/电视/i,/投影/i]},{scene:"tablet",patterns:[/tablet/i,/\bipad\b/i,/e[-_ ]?reader/i,/kindle/i,/平板/i,/阅读器/i]},{scene:"phone",patterns:[/phone/i,/iphone/i,/android/i,/mobile/i,/pixel[-_ ]?\d/i,/手机/i]},{scene:"network",patterns:[/router/i,/gateway/i,/openwrt/i,/access[-_ ]?point/i,/\bmesh\b/i,/repeater/i,/\bswitch\b/i,/路由/i,/网关/i,/交换机/i,/无线接入点/i]},{scene:"smart-home",patterns:[/smart[-_ ]?home/i,/home[-_ ]?assistant/i,/speaker/i,/thermostat/i,/sensor/i,/vacuum/i,/air[-_ ]?purifier/i,/light[-_ ]?(bulb|strip)/i,/smart[-_ ]?plug/i,/智能家居/i,/音箱/i,/传感器/i,/扫地/i,/灯泡/i,/插座/i]},{scene:"computer",patterns:[/desktop/i,/laptop/i,/notebook/i,/workstation/i,/macbook/i,/imac/i,/windows/i,/ubuntu/i,/\bpc\b/i,/电脑/i,/笔记本/i,/工作站/i]}],IC=s=>{var u;const t=[s.displayName,s.hostname].filter(Boolean).join(" ").normalize("NFKC"),n=(u=EC.find(c=>c.patterns.some(r=>r.test(t))))==null?void 0:u.scene;if(n)return n;const l=`${t} ${s.vendor||""}`.normalize("NFKC");return/\b(?:rt|gt)-?ax\d+[a-z0-9-]*\b|\bzenwifi\b|\brouter\b|\bgateway\b|\baccess[-_ ]?point\b|\bmesh\b|\brepeater\b|路由|网关|交换机/i.test(l)||Uo(s.vendor)==="ASUS"?"network":"unknown"},DC=new Set(["phone","computer","tablet","tv","network","smart-home","camera","gaming","storage","printer","wearable"]),LC=new Set(["model","hostname","manufacturer_default","fallback","manual"]),AC=new Set(["high","medium","low"]),NC=s=>{const t=s.classification;if(t&&DC.has(t.category)&&LC.has(t.source)&&AC.has(t.confidence))return{brand:String(t.brand||"").trim(),manufacturer:String(t.manufacturer||s.vendor||"").trim(),category:t.category,source:t.source,confidence:t.confidence};const n=IC(s),l=n==="unknown"?"computer":n;return{brand:Uo(s.vendor),manufacturer:String(s.vendor||"").trim(),category:l,source:n==="unknown"?"fallback":Uo(s.vendor)==="ASUS"&&l==="network"&&!String(s.displayName||s.hostname||"").trim()?"manufacturer_default":"hostname",confidence:n==="unknown"?"low":"medium"}},OC=s=>{const t=(s==null?void 0:s.staticAssigned)||{};return!!(t.hostname||t.tagName||t.tagTitle||t.bindIP||t.action==="modify")},zC=s=>{var n;const t=[];return OC(s)&&t.push("static"),(n=s==null?void 0:s.speedLimit)!=null&&n.enabled&&t.push(s.speedLimit.networkAccess===!1?"blocked":"limited"),t},qC=s=>{const t=new Map,n=(l,u)=>{if(!l)return;const c=t.get(l)||new Set;c.add(u),t.set(l,c)};for(const l of s)n(l.deviceId?`device:${l.deviceId}`:"",l.kind),n(l.mac?`mac:${ln(l.mac)}`:"",l.kind),n(l.ip?`ip:${ln(l.ip)}`:"",l.kind);return t},RC=(s,t)=>{const n=new Set,l=[`device:${s.deviceId}`,`mac:${ln(s.mac)}`,...s.addresses.current.map(c=>`ip:${ln(c.address)}`)];for(const c of l)for(const r of t.get(c)||[])n.add(r);const u=[];return n.has("static")&&u.push("static"),n.has("route")&&u.push("route"),n.has("speed")&&u.push("limited"),n.has("access")&&u.push("blocked"),u},Ps=(s,t=[],n,l)=>{const u=new Map(t.map(r=>[ln(r.mac),r])),c=l?qC(l):void 0;return s.map(r=>{var b;const p=u.get(ln(r.mac)),v=r.addresses.current.find(m=>m.primary)||r.addresses.current[0]||r.addresses.historical[0],h=c?RC(r,c):zC(p),g=NC(r);return Ne(ye({},r),{scene:g.category,brand:g.brand,classification:g,iconKey:(b=r.icon)==null?void 0:b.assetKey,displayName:r.displayName||"",primaryAddress:(v==null?void 0:v.address)||"",extraAddressCount:Math.max(0,r.addresses.current.length+r.addresses.historical.length-(v?1:0)),controlled:h.length>0,policyLabels:h,uploadSpeedStr:(p==null?void 0:p.uploadSpeedStr)||"",downloadSpeedStr:(p==null?void 0:p.downloadSpeedStr)||"",legacy:p})})},VC=(s,t,n,l,u={})=>{const c=ln(n);return[...s.filter(p=>{if(t==="online"&&!p.online||t==="controlled"&&!p.controlled||u.connection&&u.connection!=="all"&&p.connection.kind!==u.connection||u.brand&&ln(p.brand)!==ln(u.brand)||u.policy==="none"&&p.policyLabels.length>0||u.policy&&u.policy!=="all"&&u.policy!=="none"&&!p.policyLabels.includes(u.policy))return!1;if(!c)return!0;const v=[...p.addresses.current,...p.addresses.historical].map(h=>h.address);return[p.displayName,p.hostname,p.mac,p.vendor,p.brand,...v].some(h=>ln(h).includes(c))})].sort((p,v)=>l==="name"?ln(p.displayName||p.hostname||p.mac).localeCompare(ln(v.displayName||v.hostname||v.mac)):p.online!==v.online?p.online?-1:1:Date.parse(v.lastSeenAt)-Date.parse(p.lastSeenAt)||p.deviceId.localeCompare(v.deviceId))},BC=s=>({all:s.length,online:s.filter(t=>t.online).length,controlled:s.filter(t=>t.controlled).length}),UC=(s,t)=>{const n=t.trim();if(!n)return[{text:s,matched:!1}];const l=s.toLowerCase(),u=n.toLowerCase(),c=[];let r=0;for(;rr&&c.push({text:s.slice(r,p),matched:!1}),c.push({text:s.slice(p,p+n.length),matched:!0}),r=p+n.length}return c.length?c:[{text:s,matched:!1}]},mn=s=>!!s&&typeof s=="object"&&!Array.isArray(s),$o=s=>t=>mn(t)&&Array.isArray(t[s])&&t[s].length<=4096,Wa=[{id:"network",widgets:[],path:"/u/network/status/",seconds:5,validate:mn},{id:"ports",widgets:["networkInterface"],path:"/network/port/list/",seconds:10,validate:$o("ports")},{id:"traffic",widgets:["traffic"],path:"/u/network/statistics/",seconds:5,validate:$o("items")},{id:"inventory",widgets:["devices"],path:"/lanctrl/v2/devices/",seconds:30,validate:$o("devices")},{id:"routerContext",widgets:["devices"],path:"/lanctrl/v2/router-context/",seconds:30,validate:mn},{id:"disks",widgets:["storage"],path:"/nas/disk/status/",seconds:60,validate:mn},{id:"raid",widgets:["storage"],path:"/raid/list/",seconds:60,validate:mn},{id:"sharing",widgets:["sharing"],path:"/u/nas/service/status/",seconds:60,validate:mn},{id:"docker",widgets:["docker"],path:"/guide/docker/status/",seconds:60,validate:mn},{id:"download",widgets:["downloads"],path:"/guide/download-service/status/",seconds:60,validate:mn},{id:"remote",widgets:["remote"],path:"/u/guide/ddns/",seconds:3,validate:mn},{id:"system",widgets:["system"],path:"/system/status/",seconds:5,validate:mn},{id:"version",widgets:["system"],path:"/u/system/version/",seconds:0,validate:mn}];function FC(s){const t=Xe({}),n=Xe({}),l=Xe({}),u=new Map,c=new Map,r=os(),p=Oa();let v=!1,h,g=0;const b=C=>!C.widgets.length||C.widgets.some(y=>s.value.includes(y));function m(C){var y;window.clearTimeout(c.get(C)),c.delete(C),(y=u.get(C))==null||y.abort(),u.delete(C)}function f(C){return B(this,null,function*(){if(!v||document.hidden||!b(C)||u.has(C.id))return;window.clearTimeout(c.get(C.id)),c.delete(C.id);const y=new AbortController;u.set(C.id,y);const P=window.setTimeout(()=>y.abort(),8e3);try{let _=C.path;if(C.id==="inventory"||C.id==="routerContext"){Date.now()-g>=3e4&&(h=void 0,g=Date.now());const U=yield h||(h=qi().catch(z=>{throw h=void 0,z}));t.lanNetworks=U.networks,t.lanLegacy=U.legacy;const q=U.networks.length===1?U.networks[0].networkId:"all";if(C.id==="routerContext"&&q==="all"){v&&(t.routerContext={multiLAN:!0},n[C.id]="",l[C.id]=Date.now());return}U.legacy||(_+="?network="+encodeURIComponent(q))}const D=yield fetch("/cgi-bin/luci/istore"+_,{credentials:"same-origin",cache:"no-store",signal:y.signal});if(!D.ok)throw new Error(D.status===401||D.status===403?"permission":"unavailable");const E=yield D.text();if(E.length>2*1024*1024)throw new Error("invalid");const A=JSON.parse(E);if(A.error||A.success!==void 0&&A.success!==0||!C.validate(A.result))throw new Error(A.success===-1001?"permission":"invalid");if(!v||u.get(C.id)!==y||!b(C))return;t[C.id]=C.id==="traffic"?Ne(ye({},A.result),{items:A.result.items.slice(-60)}):A.result,n[C.id]="",l[C.id]=Date.now(),C.id==="network"&&r.updateNetworkStatus(ye({},t.network)),C.id==="system"&&p.updateSystemStatus(ye({},t.system)),C.id==="version"&&(p.version=ye({},t.version))}catch(_){v&&u.get(C.id)===y&&(n[C.id]=_ instanceof on&&_.code==="permission"||_ instanceof Error&&_.message==="permission"?"permission":"unavailable")}finally{window.clearTimeout(P),u.get(C.id)===y&&(u.delete(C.id),v&&!document.hidden&&b(C)&&C.seconds&&c.set(C.id,window.setTimeout(()=>{f(C)},C.seconds*1e3)))}})}function k(C=!1){for(const y of Wa)b(y)?(C||!c.has(y.id)&&!u.has(y.id)&&(y.seconds>0||!l[y.id]&&!n[y.id]))&&f(y):m(y.id)}function $(){for(const C of Wa)m(C.id);document.hidden||k(!0)}function w(C){for(const y of Wa)(!C||y.widgets.includes(C))&&f(y)}function S(C){return Wa.every(y=>!(y.id==="network"?["traffic","connection","devices"]:y.widgets).some(_=>C.includes(_))||t[y.id]!==void 0||!!n[y.id])}return We(()=>[...s.value].sort().join(","),()=>k()),nt(()=>{v=!0,k(),document.addEventListener("visibilitychange",$)}),lt(()=>{v=!1;for(const C of Wa)m(C.id);document.removeEventListener("visibilitychange",$)}),{data:t,errors:n,updated:l,devices:R(()=>{var C;return Ps(((C=t.inventory)==null?void 0:C.devices)||[])}),invalidate:w,initialSettled:S}}const HC=["data-config-domain"],GC={class:"home-config-message"},jC={class:"home-config-actions"},WC=["onClick"],JC=["disabled","onClick"],KC=["aria-label","onClick"],ZC=X({__name:"index",setup(s){ma(ui,{inspect:(y,P)=>Po(()=>import("./installClient.js?v=DjM-4PhF"),__vite__mapDeps([3,1,2])).then(_=>_.cardInstaller.inspect(y,P)),install:(y,P)=>Po(()=>import("./installClient.js?v=DjM-4PhF"),__vite__mapDeps([3,1,2])).then(_=>_.cardInstaller.install(y,P))});const t=x(null),n=PC();K1(n);const l=FC(R(()=>t.value||Yt(n.layout.value.rows))),u=x(!1);We(()=>!n.state.layout.loading&&!n.state.launcher.loading,y=>{y&&(u.value=!0)},{immediate:!0});const c=as(),r=x(!1),p=x(Ws()),v=["layout","launcher"],h=Xe({layout:!1,launcher:!1});for(const y of v)We(()=>{var P,_;return[n.state[y].loading,n.state[y].error,(P=n.state[y].snapshot)==null?void 0:P.state,(_=n.state[y].snapshot)==null?void 0:_.version]},()=>{h[y]=!1});const g=(y,P)=>window.vue_lang==="en"?P:y;function b(y){var _;const P=n.state[y];return(y==="layout"?g("首页布局:","Homepage: "):g("应用工具:","Apps & tools: "))+(P.loading?g("正在校验路由器配置…","Checking router configuration…"):P.error||{backup:g("原文件异常,临时使用有效备份;请恢复后编辑。","Original file invalid. Showing valid backup; restore before editing."),damaged:g("配置损坏,临时显示默认内容,未覆盖原文件。","Configuration damaged. Showing defaults without replacing the file."),future:g("配置来自更新版本,当前页面只读。","Configuration requires a newer version. This page is read only."),missing:g("配置尚未初始化,请重试。","Configuration not initialized. Retry.")}[((_=P.snapshot)==null?void 0:_.state)||""]||"")}function m(y){window.confirm(g("将保留损坏文件,恢复此项配置;其他设置不变。确定继续?","Keep the damaged file and restore this setting? Other settings are unchanged."))&&n.recover(y)}function f(y){r.value=y,y&&n.begin("layout")}const k=y=>n.save("layout",y);function $(y){return!n.state.layout.loading&&l.initialSettled(y)}function w(y){r.value||(y.startsWith("/cgi-bin/")?window.location.assign(y):c.push(y))}function S(y){r.value||c.push({path:"/devicemanagement",query:{device:y}})}let C=()=>{};return nt(()=>{Ko().discover(),C=is(y=>p.value=y.effective)}),lt(()=>C()),(y,P)=>(i(),Y(kC,{bootstrapping:!u.value,config:o(n).layout.value,data:o(l).data,errors:o(l).errors,theme:p.value,"favorite-ids":o(n).launcher.value.favorites,"can-edit":o(n).layoutEditable.value,"external-busy":o(n).state.launcher.saving,persist:k,onEditing:f,onVisible:P[0]||(P[0]=_=>t.value=_),onNavigate:w,onDevice:S},{status:pe(()=>[(i(),d(V,null,oe(v,_=>{var D,E,A;return W(e("div",{key:_,class:"home-config-state","data-config-domain":_,role:"status"},[e("span",GC,a(b(_)),1),e("div",jC,[!o(n).state[_].loading&&!o(n).state[_].saving?(i(),d("button",{key:0,type:"button","data-retry-config":"",onClick:U=>o(n).read(_)},a(g("重新读取","Reload")),9,WC)):T("",!0),!r.value&&["backup","damaged"].includes(((D=o(n).state[_].snapshot)==null?void 0:D.state)||"")?(i(),d("button",{key:1,type:"button",disabled:o(n).state[_].saving,onClick:U=>m(_)},a(((E=o(n).state[_].snapshot)==null?void 0:E.state)==="backup"?g("恢复有效备份","Restore valid backup"):g("保留损坏文件并恢复默认","Keep damaged file and restore defaults")),9,JC)):T("",!0)]),e("button",{type:"button",class:"home-config-close","data-dismiss-config-notice":"","aria-label":_==="layout"?g("关闭首页布局提示","Dismiss homepage layout notice"):g("关闭应用工具提示","Dismiss apps and tools notice"),onClick:U=>h[_]=!0},[...P[1]||(P[1]=[e("svg",{viewBox:"0 0 20 20","aria-hidden":"true"},[e("path",{d:"m5 5 10 10M15 5 5 15"})],-1)])],8,KC)],8,HC),[[Bs,u.value&&!h[_]&&!o(n).state[_].loading&&(o(n).state[_].error||((A=o(n).state[_].snapshot)==null?void 0:A.state)!=="saved")]])}),64))]),widget:pe(_=>[G(Uk,Zl(_,{data:o(l).data,errors:o(l).errors,devices:o(l).devices.value,theme:p.value,contained:"",onNavigate:w,onDevice:S,onRetry:D=>o(l).invalidate(_.id)}),null,16,["data","errors","devices","theme","onRetry"])]),launcher:pe(()=>[G(Ti,{collapsed:"","host-only":"","fallback-entries":[],network:o(l).data.network,"return-ready":$,onNavigate:w},null,8,["network"])]),_:1},8,["bootstrapping","config","data","errors","theme","favorite-ids","can-edit","external-busy"]))}}),YC=le(ZC,[["__scopeId","data-v-05fbd43c"]]),QC={};function XC(s,t){const n=At("router-view");return i(),Y(n)}const eS=le(QC,[["render",XC]]),tS={},nS={width:"136px",height:"136px",viewBox:"0 0 136 136",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function aS(s,t){return i(),d("svg",nS,[...t[0]||(t[0]=[Hn('',2)])])}const sS=le(tS,[["render",aS]]),oS={},lS={width:"136px",height:"136px",viewBox:"0 0 136 136",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function iS(s,t){return i(),d("svg",lS,[...t[0]||(t[0]=[Hn('',2)])])}const rS=le(oS,[["render",iS]]),cS={},dS={width:"136px",height:"136px",viewBox:"0 0 136 136",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"};function uS(s,t){return i(),d("svg",dS,[...t[0]||(t[0]=[Hn('',2)])])}const vS=le(cS,[["render",uS]]),pS={id:"page"},hS={class:"title"},mS={class:"desc"},fS={class:"network-containers"},bS={class:"network-container_item"},gS={class:"cover"},_S={class:"thumbnail"},yS={class:"network-container_item"},kS={class:"cover"},wS={class:"thumbnail"},$S={class:"network-container_item"},CS={class:"cover"},SS={class:"thumbnail"},xS=["innerHTML"],PS=X({__name:"index",setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=t("没找到想要的配置?请使用%{link}",{link:''+t("高级模式")+""},!0);return(u,c)=>{const r=At("router-link");return i(),d("div",pS,[e("div",hS,a(o(t)("欢迎使用网络配置向导")),1),e("div",mS,a(o(t)("选择一种连接方式以开始")),1),e("div",fS,[e("div",bS,[G(r,{to:"/network/pppoe"},{default:pe(()=>[e("div",gS,[e("div",_S,[G(rS),e("span",null,a(o(t)("宽带拨号连接")),1)])])]),_:1})]),e("div",yS,[G(r,{to:"/network/dhcp"},{default:pe(()=>[e("div",kS,[e("div",wS,[G(sS),e("span",null,a(o(t)("连接现有路由器")),1)])])]),_:1})]),e("div",$S,[G(r,{to:"/network/gateway"},{default:pe(()=>[e("div",CS,[e("div",SS,[G(vS),e("span",null,a(o(t)("配置为旁路由")),1)])])]),_:1})])]),e("div",{class:"info",innerHTML:o(l)},null,8,xS)])}}}),TS=le(PS,[["__scopeId","data-v-67dfa1ab"]]),MS={key:0,id:"page"},ES={class:"title"},IS={class:"desc"},DS={class:"network-message"},LS=["innerHTML"],AS={class:"label-key"},NS=["placeholder","disabled"],OS={class:"label-key"},zS=["placeholder","disabled"],qS={key:0,class:"chose_dhcp"},RS={class:"dhcp_info"},VS={key:1,class:"msg"},BS={class:"btns"},US=["disabled"],FS=["onClick"],HS={key:1,id:"page"},GS={class:"title"},jS={class:"btns"},WS=["onClick"],JS=["onClick"],KS=X({__name:"index",setup(s){const{$gettext:t,$ngettext:n}=Ae(),u=ta().query.type,c=t("由于您的设备没有 WAN 口,无法使用本设置向导,具体请看%{link}",{link:''+t("链接")+""},!0),r=x(0),p=x({}),v=x(""),h=x(!1),g=x(0),b=x(!1);B(null,null,function*(){var k,$;h.value=!0;try{const w=yield Promise.all([we.Guide.Pppoe.GET(),we.Guide.GetLan.GET()]);if(w[0].data){const{success:S,error:C,result:y}=w[0].data;y&&(y.enableLanDhcp=!1,p.value=y),S==-1011&&(h.value=!0,g.value=S)}(k=w[1].data)!=null&&k.result&&((($=w[1].data)==null?void 0:$.result).enableDhcp||(b.value=!0,p.value.enableLanDhcp=!0))}catch(w){v.value=w}g.value==0&&(h.value=!1)});const f=()=>B(null,null,function*(){const k=p.value.account||"",$=p.value.password||"";if(k==""){v.value=t("账号不能为空");return}if($==""){v.value=t("密码不能为空");return}h.value=!0;const w=ne.Loading(t("配置中..."));try{const S=yield we.Guide.Pppoe.POST({account:k,password:$});if(S!=null&&S.data){const{error:C,success:y}=S.data;C&&(v.value=C),(y==null||y==0)&&(ne.Success(t("配置成功")),r.value=1)}}catch(S){v.value=S}h.value=!1,w.Close()});return(k,$)=>{const w=At("switch-box"),S=At("router-link");return r.value==0?(i(),d("div",MS,[e("h2",ES,a(o(t)("配置宽带账号")),1),e("h3",IS,a(o(t)("请确保您已将路由 WAN 口连接到光猫")),1),e("div",DS,[g.value==-1011?(i(),d("li",{key:0,innerHTML:o(c)},null,8,LS)):T("",!0)]),e("form",{onSubmit:Ge(f,["prevent"])},[e("label",null,[e("div",AS,[e("span",null,a(o(t)("宽带账号")),1)]),W(e("input",{type:"text","onUpdate:modelValue":$[0]||($[0]=C=>p.value.account=C),placeholder:o(t)("宽带账号"),required:"",disabled:h.value},null,8,NS),[[Oe,p.value.account,void 0,{trim:!0}]])]),e("label",null,[e("div",OS,[e("span",null,a(o(t)("密码")),1)]),W(e("input",{type:"password","onUpdate:modelValue":$[1]||($[1]=C=>p.value.password=C),placeholder:o(t)("宽带密码"),required:"",disabled:h.value},null,8,zS),[[Oe,p.value.password,void 0,{trim:!0}]])]),b.value?(i(),d("div",qS,[G(w,{modelValue:p.value.enableLanDhcp,"onUpdate:modelValue":$[2]||($[2]=C=>p.value.enableLanDhcp=C)},{default:pe(()=>[e("span",RS,a(o(t)("启用LAN口DHCP服务(用于从旁路由模式恢复成默认状态)")),1)]),_:1},8,["modelValue"])])):T("",!0),v.value?(i(),d("div",VS,a(v.value),1)):T("",!0),e("div",BS,[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:h.value},a(o(t)("保存配置")),9,US),G(S,{to:o(u)=="index"?"/":"/network",custom:""},{default:pe(({navigate:C})=>[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:C},a(o(t)("返回")),9,FS)]),_:1},8,["to"])])],32)])):r.value==1?(i(),d("div",HS,[e("h2",GS,a(o(t)("配置成功")),1),e("div",jS,[G(S,{to:"/",custom:""},{default:pe(({navigate:C})=>[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:C},a(o(t)("进入控制台")),9,WS)]),_:1}),G(S,{to:o(u)=="index"?"/":"/network",custom:""},{default:pe(({navigate:C})=>[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:C},a(o(t)("返回")),9,JS)]),_:1},8,["to"])])])):T("",!0)}}}),ZS=le(KS,[["__scopeId","data-v-f91feaff"]]),YS={key:0,id:"page"},QS={class:"title"},XS={class:"desc"},ex={class:"network-message"},tx=["innerHTML"],nx={class:"label-key"},ax={value:"dhcp"},sx={value:"static"},ox={class:"label-key"},lx=["placeholder","disabled"],ix={key:0,class:"msg"},rx={class:"label-key"},cx=["placeholder","disabled"],dx={key:1,class:"msg"},ux={class:"label-key"},vx=["placeholder","disabled"],px={class:"label-key"},hx=["disabled"],mx={value:"manual"},fx={class:"label-key"},bx=["onUpdate:modelValue","placeholder","disabled"],gx={class:"label-key"},_x=["placeholder","disabled"],yx={class:"label-key"},kx=["placeholder","disabled"],wx={key:2,class:"chose_dhcp"},$x={class:"dhcp_info"},Cx={key:3,class:"msgs"},Sx={class:"btns"},xx=["disabled"],Px=["onClick"],Tx={key:1,id:"page"},Mx={class:"title"},Ex={class:"btns"},Ix=["onClick"],Dx=["onClick"],Lx=X({__name:"index",setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=t("由于您的设备没有 WAN 口,无法使用本设置向导,具体请看%{link}",{link:''+t("链接")+""},!0),u=x(0),c=x({}),r=x(""),p=x(""),v=x(""),h=x(!1),g=x(""),b=x(""),m=x(0),f=Fn.checkIsIP,k=x(!1),w=ta().query.type;B(null,null,function*(){var D,E;h.value=!0;try{const A=yield Promise.all([we.Guide.ClientModel.GET(),we.Guide.GetLan.GET()]);if(A[0]){const U=A[0];if(U.data){const{success:q,error:z,result:N}=U.data;N&&(N.wanProto!="dhcp"&&N.wanProto!="static"&&(N.wanProto="dhcp",N.dnsProto="auto"),N.enableLanDhcp=!1,c.value=N),q==-1011&&(m.value=q,h.value=!0)}}(D=A[1].data)!=null&&D.result&&(((E=A[1].data)==null?void 0:E.result).enableDhcp||(k.value=!0,c.value.enableLanDhcp=!0))}catch(A){r.value=A}m.value==0&&(h.value=!1)});const C=D=>{D.target.value=="static"?((c.value.staticIp==null||c.value.staticIp=="")&&(c.value.staticIp="192.168.1.100"),(c.value.subnetMask==null||c.value.subnetMask=="")&&(c.value.subnetMask="255.255.255.0"),c.value.dnsProto=="auto"&&setTimeout(()=>c.value.dnsProto="manual",0)):c.value.dnsProto=="manual"&&setTimeout(()=>c.value.dnsProto="auto",0)},y=D=>{const E=D.target;if(E.value==""){g.value="";return}f(E.value)?g.value="":g.value=t("请输入合法的IP地址")},P=D=>{const E=D.target;if(E.value==""){b.value="";return}f(E.value)?b.value="":b.value=t("请输入合法的地址")},_=()=>B(null,null,function*(){const D={};switch(c.value.wanProto){case"dhcp":break;case"static":D.staticIp=c.value.staticIp,D.subnetMask=c.value.subnetMask,D.gateway=c.value.gateway||"";break}switch(c.value.dnsProto){case"auto":break;case"manual":D.manualDnsIp=[],c.value.manualDnsIp!=null&&c.value.manualDnsIp.length>0?D.manualDnsIp=c.value.manualDnsIp:(D.manualDnsIp.push(p.value),v.value&&D.manualDnsIp.push(v.value));break}D.dnsProto=c.value.dnsProto,D.wanProto=c.value.wanProto,D.enableLanDhcp=c.value.enableLanDhcp;const E=ne.Loading(t("配置中...."));h.value=!0;try{const A=yield we.Guide.ClientModel.POST(D);if(A!=null&&A.data){const{success:U,error:q}=A==null?void 0:A.data;q&&(r.value=q),(U==null||U==0)&&(ne.Success(t("配置成功")),u.value=1)}}catch(A){r.value=A}h.value=!1,E.Close()});return(D,E)=>{const A=At("switch-box"),U=At("router-link");return u.value==0?(i(),d("div",YS,[e("h2",QS,a(o(t)("配置互联网")),1),e("h3",XS,a(o(t)("请确保您已将本设备 WAN 口连接到上级路由器局域网( LAN )接口")),1),e("div",ex,[m.value==-1011?(i(),d("li",{key:0,innerHTML:o(l)},null,8,tx)):T("",!0)]),e("form",{onSubmit:Ge(_,["prevent"])},[e("label",null,[e("div",nx,[e("span",null,a(o(t)("WAN 接口配置方式")),1)]),W(e("select",{"onUpdate:modelValue":E[0]||(E[0]=q=>c.value.wanProto=q),onInput:C},[e("option",ax,a(o(t)("自动获取IP地址(DHCP)")),1),e("option",sx,a(o(t)("静态IP地址")),1)],544),[[Be,c.value.wanProto]])]),c.value.wanProto=="static"?(i(),d(V,{key:0},[e("label",null,[e("div",ox,[e("span",null,a(o(t)("IP地址")),1)]),W(e("input",{type:"text","onUpdate:modelValue":E[1]||(E[1]=q=>c.value.staticIp=q),placeholder:o(t)("静态IP地址"),required:"",disabled:h.value,onInput:y},null,40,lx),[[Oe,c.value.staticIp,void 0,{trim:!0}]])]),g.value?(i(),d("p",ix,a(g.value),1)):T("",!0),e("label",null,[e("div",rx,[e("span",null,a(o(t)("子网掩码")),1)]),W(e("input",{type:"text","onUpdate:modelValue":E[2]||(E[2]=q=>c.value.subnetMask=q),placeholder:o(t)("子网掩码"),required:"",disabled:h.value,onInput:P},null,40,cx),[[Oe,c.value.subnetMask,void 0,{trim:!0}]])]),b.value?(i(),d("p",dx,a(b.value),1)):T("",!0),e("label",null,[e("div",ux,[e("span",null,a(o(t)("网关地址")),1)]),W(e("input",{type:"text","onUpdate:modelValue":E[3]||(E[3]=q=>c.value.gateway=q),placeholder:o(t)("网关地址"),required:"",disabled:h.value},null,8,vx),[[Oe,c.value.gateway,void 0,{trim:!0}]])])],64)):T("",!0),e("label",null,[e("div",px,[e("span",null,a(o(t)("DNS 配置方式")),1)]),W(e("select",{"onUpdate:modelValue":E[4]||(E[4]=q=>c.value.dnsProto=q)},[e("option",{value:"auto",disabled:c.value.wanProto=="static"},a(o(t)("自动获取(DHCP)")),9,hx),e("option",mx,a(o(t)("手工配置")),1)],512),[[Be,c.value.dnsProto]])]),c.value.dnsProto=="manual"?(i(),d(V,{key:1},[c.value.manualDnsIp!=null&&c.value.manualDnsIp.length>0?(i(!0),d(V,{key:0},oe(c.value.manualDnsIp,(q,z)=>(i(),d("label",null,[e("div",fx,[e("span",null,a(o(t)("DNS服务器")),1)]),W(e("input",{type:"text","onUpdate:modelValue":N=>c.value.manualDnsIp[z]=N,placeholder:o(t)("DNS服务器"),required:"",disabled:h.value},null,8,bx),[[Oe,c.value.manualDnsIp[z],void 0,{trim:!0}]])]))),256)):(i(),d(V,{key:1},[e("label",null,[e("div",gx,[e("span",null,a(o(t)("DNS服务器")),1)]),W(e("input",{type:"text","onUpdate:modelValue":E[5]||(E[5]=q=>p.value=q),placeholder:o(t)("DNS服务器"),required:"",disabled:h.value},null,8,_x),[[Oe,p.value,void 0,{trim:!0}]])]),e("label",null,[e("div",yx,a(o(t)("备用DNS服务器")),1),W(e("input",{type:"text","onUpdate:modelValue":E[6]||(E[6]=q=>v.value=q),placeholder:o(t)("备用DNS服务器"),disabled:h.value},null,8,kx),[[Oe,v.value,void 0,{trim:!0}]])])],64))],64)):T("",!0),k.value?(i(),d("div",wx,[G(A,{modelValue:c.value.enableLanDhcp,"onUpdate:modelValue":E[7]||(E[7]=q=>c.value.enableLanDhcp=q)},{default:pe(()=>[e("span",$x,a(o(t)("启用LAN口DHCP服务(用于从旁路由模式恢复成默认状态)")),1)]),_:1},8,["modelValue"])])):T("",!0),r.value?(i(),d("div",Cx,a(r.value),1)):T("",!0),e("div",Sx,[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:h.value},a(o(t)("保存配置")),9,xx),G(U,{to:o(w)=="index"?"/":"/network",custom:""},{default:pe(({navigate:q})=>[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:q},a(o(t)("返回")),9,Px)]),_:1},8,["to"])])],32)])):u.value==1?(i(),d("div",Tx,[e("h2",Mx,a(o(t)("配置成功")),1),e("div",Ex,[G(U,{to:"/",custom:""},{default:pe(({navigate:q})=>[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:q},a(o(t)("进入控制台")),9,Ix)]),_:1}),G(U,{to:o(w)=="index"?"/":"/network",custom:""},{default:pe(({navigate:q})=>[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:q},a(o(t)("返回")),9,Dx)]),_:1},8,["to"])])])):T("",!0)}}}),Ax=le(Lx,[["__scopeId","data-v-dc3ea120"]]),Nx={key:0,id:"page"},Ox={class:"title"},zx={class:"btns"},qx=["onClick"],Rx={key:1,id:"page"},Vx={class:"title"},Bx={class:"desc"},Ux={class:"label-key"},Fx={class:"label-value"},Hx={disabled:"",style:{backgroundColor:"rgba(215, 215, 215, 1)",color:"#333"}},Gx={class:"label-key"},jx=["placeholder"],Wx={class:"label-key"},Jx=["placeholder"],Kx={class:"label-key"},Zx=["placeholder"],Yx={class:"label-key"},Qx=["placeholder"],Xx={key:0,class:"msgs"},eP={class:"switch_inline"},tP={key:0,class:"switch_info"},nP={key:1,class:"switch_info"},aP={class:"switch_inline"},sP={class:"switch_info"},oP={class:"switch_inline"},lP={class:"switch_info"},iP={class:"btns"},rP={class:"cbi-button cbi-button-apply app-btn app-next"},cP=["onClick"],dP={key:2,id:"page"},uP={class:"title"},vP={class:"desc"},pP={class:"btns"},hP={key:3,id:"page"},mP={class:"title"},fP=["disabled"],bP={style:{"text-align":"left"}},gP={class:"btns"},_P=["disabled"],yP=["onClick"],kP=X({__name:"index",setup(s){const{$gettext:t,$ngettext:n}=Ae(),u=ta().query.type,c=x(0),r=x(""),p=x(!1),v=R(()=>{var $,w,S;return!(($=g.value)!=null&&$.ipv4addr&&((w=g.value)!=null&&w.ipv4mask)&&((S=g.value)!=null&&S.gateway))}),h=x({subnetMask:"255.255.255.0",staticDnsIp:"223.5.5.5",staticLanIp:"",gateway:"",enableDhcp:!0,dhcp6c:!1,enableNat:!1}),g=x(),b=()=>{p.value=!0,we.Network.Status.GET().then($=>{if($!=null&&$.data){const{result:w}=$==null?void 0:$.data;w&&(g.value=w)}}).finally(()=>{p.value=!1})},m=$=>{var w,S,C,y,P;$&&(h.value.staticLanIp=((w=g.value)==null?void 0:w.ipv4addr)||"",h.value.subnetMask=((S=g.value)==null?void 0:S.ipv4mask)&&wn.prefixToMask(g.value.ipv4mask)||"",h.value.gateway=((C=g.value)==null?void 0:C.gateway)||"",h.value.staticDnsIp=((y=g.value)==null?void 0:y.dnsList)&&((P=g.value)==null?void 0:P.dnsList[0])||"223.5.5.5"),c.value=1},f=$=>{window.location.href=location.protocol+"//"+h.value.staticLanIp+(location.port?":"+location.port:"")},k=()=>B(null,null,function*(){const $=h.value,w=ne.Loading(t("配置中..."));try{const S=yield we.Guide.GatewayRouter.POST($);if(S!=null&&S.data){const{success:C,error:y}=S==null?void 0:S.data;if(y&&(r.value=y),C==null||C==0){setTimeout(()=>{c.value=2,w.Close()},5e3);return}}}catch(S){r.value=S}w.Close()});return($,w)=>{var y,P,_,D;const S=At("router-link"),C=At("switch-box");return c.value==0?(i(),d("div",Nx,[e("h2",Ox,a(o(t)("旁路由配置前的准备工作")),1),e("code",null,[ue(a(o(t)("旁路由模式,也叫单臂路由模式。"))+" ",1),e("p",null,a(o(t)("您可以用上一级路由(主路由)拨号,然后用本路由来实现一些高级功能。")),1),w[10]||(w[10]=e("br",null,null,-1)),e("p",null,a(o(t)("本向导支持自动或手动配置:")),1),e("p",null,a(o(t)("点击“自动配置”按钮开始自动配置向导;")),1),e("p",null,a(o(t)("手动配置则需自行获取主路由器的IP地址(例如 192.168.2.1 )和子网掩码,记录以备后续填写,点击“手动配置”按钮,切换到参数配置页,按实际情况自行填写。")),1)]),e("div",zx,[e("button",{class:"cbi-button cbi-button-success app-btn app-next",onClick:w[0]||(w[0]=E=>c.value=3)},a(o(t)("自动配置...")),1),e("button",{class:"cbi-button cbi-button-neutral app-btn app-next",onClick:w[1]||(w[1]=E=>m(!1))},a(o(t)("手动配置...")),1),G(S,{to:o(u)=="index"?"/":"/network",custom:""},{default:pe(({navigate:E})=>[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:E},a(o(t)("返回")),9,qx)]),_:1},8,["to"])])])):c.value==1?(i(),d("div",Rx,[e("h2",Vx,a(o(t)("配置旁路由网络")),1),e("h3",Bx,a(o(t)("现在,请你配置旁路由信息")),1),e("form",{onSubmit:Ge(k,["prevent"])},[e("label",null,[e("div",Ux,[e("span",null,a(o(t)("LAN 接口配置方式")),1)]),e("div",Fx,[e("select",Hx,[e("option",null,a(o(t)("旁路由模式仅支持静态IP地址")),1)])])]),e("label",null,[e("div",Gx,[e("span",null,a(o(t)("IP 地址")),1)]),W(e("input",{type:"text","onUpdate:modelValue":w[2]||(w[2]=E=>h.value.staticLanIp=E),placeholder:o(t)("IP地址"),required:""},null,8,jx),[[Oe,h.value.staticLanIp,void 0,{trim:!0}]])]),e("label",null,[e("div",Wx,[e("span",null,a(o(t)("子网掩码")),1)]),W(e("input",{type:"text","onUpdate:modelValue":w[3]||(w[3]=E=>h.value.subnetMask=E),placeholder:o(t)("子网掩码"),required:""},null,8,Jx),[[Oe,h.value.subnetMask,void 0,{trim:!0}]])]),e("label",null,[e("div",Kx,[e("span",null,a(o(t)("网关地址")),1)]),W(e("input",{type:"text","onUpdate:modelValue":w[4]||(w[4]=E=>h.value.gateway=E),placeholder:o(t)("网关地址"),required:""},null,8,Zx),[[Oe,h.value.gateway,void 0,{trim:!0}]])]),e("label",null,[e("div",Yx,[e("span",null,a(o(t)("DNS服务器")),1)]),W(e("input",{type:"text","onUpdate:modelValue":w[5]||(w[5]=E=>h.value.staticDnsIp=E),placeholder:o(t)("223.5.5.5"),required:""},null,8,Qx),[[Oe,h.value.staticDnsIp,void 0,{trim:!0}]])]),r.value?(i(),d("div",Xx,a(r.value),1)):T("",!0),e("div",eP,[G(C,{modelValue:h.value.enableDhcp,"onUpdate:modelValue":w[6]||(w[6]=E=>h.value.enableDhcp=E)},{default:pe(()=>[h.value.enableDhcp?(i(),d("span",tP,a(o(t)("提供 DHCPv4 服务(需要关闭主路由 DHCP 服务)")),1)):(i(),d("span",nP,a(o(t)("提供 DHCPv4 服务")),1))]),_:1},8,["modelValue"])]),e("div",aP,[G(C,{modelValue:h.value.dhcp6c,"onUpdate:modelValue":w[7]||(w[7]=E=>h.value.dhcp6c=E)},{default:pe(()=>[e("span",sP,a(o(t)("自动获取 IPV6(即开启 DHCPv6 客户端)")),1)]),_:1},8,["modelValue"])]),e("div",oP,[G(C,{modelValue:h.value.enableNat,"onUpdate:modelValue":w[8]||(w[8]=E=>h.value.enableNat=E)},{default:pe(()=>[e("span",lP,a(o(t)("开启 NAT(可修复某些无线热点不能访问外网问题)")),1)]),_:1},8,["modelValue"])]),e("div",iP,[e("button",rP,a(o(t)("保存配置")),1),G(S,{to:o(u)=="index"?"/":"/network",custom:""},{default:pe(({navigate:E})=>[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:E},a(o(t)("返回")),9,cP)]),_:1},8,["to"])])],32)])):c.value==2?(i(),d("div",dP,[e("h2",uP,a(o(t)("配置成功")),1),e("h3",vP,a(o(t)("现在,将本路由WAN口断开,将其中一个LAN口与主路由连接,并将当前浏览器设备连接到主路由。点击“进入控制台”浏览器将跳转到新的路由IP")),1),e("div",pP,[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:f},a(o(t)("进入控制台")),1)])])):c.value==3?(i(),d("div",hP,[e("h2",mP,a(o(t)("旁路由自动配置")),1),e("code",null,a(o(t)("首先确认主路由开启了 DHCP 服务,确认本路由 WAN 口是 DHCP 客户端模式(默认即是,如果不是可使用“连接现有路由器”向导改成 DHCP 客户端),然后将本路由 WAN 口与主路由的 LAN 连接,以自动获取配置。")),1),ue(" "+a(o(t)("1. 满足上述条件以后,点击“当前 IPv4 上游信息”以刷新当前连接信息,成功以后,“自动填写”按钮将被激活。(失败可再次点击)"))+" ",1),e("button",{class:_e(["cbi-button cbi-button-neutral",v.value?"cbi-button-neutral":"cbi-button-success"]),disabled:p.value,onClick:b},[ue(a(o(t)("当前 IPv4 上游信息(点此刷新)"))+" ",1),e("p",bP,[e("ul",null,[e("li",null,a(o(t)("IP 地址: "))+a((y=g.value)==null?void 0:y.ipv4addr),1),e("li",null,a(o(t)("子网掩码: "))+a(((P=g.value)==null?void 0:P.ipv4mask)&&o(wn).prefixToMask(g.value.ipv4mask)),1),e("li",null,a(o(t)("网关地址: "))+a((_=g.value)==null?void 0:_.gateway),1),e("li",null,a(o(t)("DNS服务器: "))+a(((D=g.value)==null?void 0:D.dnsList)&&g.value.dnsList[0]||(v.value?"":o(t)("(无DNS服务器,请之后自行填写公共DNS服务器,例如 223.5.5.5)"))),1)])])],10,fP),ue(" "+a(o(t)("2. 点击“自动填写”,将切换到参数页并自动填写。此时依然可以自行调整参数。"))+" ",1),e("div",gP,[e("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:v.value,onClick:w[9]||(w[9]=E=>m(!0))},a(o(t)("自动填写..."))+a(v.value?o(t)("(请先获取IPv4上游信息)"):""),9,_P),G(S,{to:o(u)=="index"?"/":"/network",custom:""},{default:pe(({navigate:E})=>[e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:E},a(o(t)("返回")),9,yP)]),_:1},8,["to"])])])):T("",!0)}}}),wP=le(kP,[["__scopeId","data-v-c4ce32be"]]),$P={class:"actioner-container"},CP={class:"actioner-container_header"},SP={class:"actioner-container_body"},xP={class:"label-item"},PP={class:"label-item_key"},TP={class:"label-item_value"},MP=["value"],EP={class:"label-item_tips"},IP={class:"label-item"},DP={class:"label-item_key"},LP={key:0,class:"label-item_value"},AP={class:"msg-warning"},NP={key:1,class:"label-item_value"},OP=["value"],zP={key:1,class:"msg-warning"},qP={class:"label-item_tips"},RP={class:"actioner-container_footer"},VP=["disabled"],BP=["disabled"],UP={key:1,class:"actioner-container_body setup-loading"},FP={class:"actioner-container_body setup-error"},HP={class:"actioner-container_footer"},GP=["disabled"],jP={class:"actioner-container_body setup-success"},WP={class:"body-title"},JP={class:"actioner-container_footer"},KP=X({__name:"setup-create",props:{Close:{type:Function,required:!0},success:{type:Function}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.Close()},c=()=>{l.success&&l.success()},r=x("init"),p=x(""),v=[{name:"jbod",title:t("JBOD (线性)"),info:t("至少需要2块硬盘,将多个硬盘合并为单个存储空间,其容量等于所有硬盘容量的总和。不提供数据冗余。"),select:2},{name:"raid0",title:t("RAID 0 (条带)"),info:t("至少需要2块硬盘,“区块延展”功能是将数据分成多个块,并将数据块分散到组成的多个硬盘上以提高性能的过程。不提供数据冗余。"),select:2},{name:"raid1",title:t("RAID 1 (镜像)"),info:t("至少需要2块硬盘,同时向所有硬盘写入相同的数据。提供数据冗余。"),select:2},{name:"raid5",title:"RAID 5 ",info:t("至少需要3块硬盘,执行段落分块延展,并对分布到所有组成硬盘上的数据执行奇偶校验,从而提供比 RAID 1 更有效的数据冗余。"),select:3},{name:"raid6",title:"RAID 6 ",info:t("至少需要4块硬盘,执行两个层级的数据奇偶校验以存储等于 2 个硬盘容量的冗余数据,提供比 RAID 5 更大程度的数据冗余。"),select:4},{name:"raid10",title:"RAID 10",info:t("至少需要4块硬盘,提供 RAID 0 的性能和 RAID 1 的数据保护级别,将硬盘组合进镜像数据的由两个硬盘组成的组。"),select:4}],h=x("raid5"),g=x([]),b=S=>{let C="";return v.forEach(y=>{y.name===S&&(C=y.info)}),C},m=x(!1),f=Xe({loading:!1,members:[]}),k=S=>{};B(null,null,function*(){f.loading=!0;try{const S=yield we.Raid.CreateList.GET();if(S!=null&&S.data){const{success:C,error:y,result:P}=S.data;if(P&&(f.members=P.members||[]),y)throw y}}catch(S){console.log(S)}finally{f.loading=!1}});const w=()=>B(null,null,function*(){const S=v.filter(y=>y.name===h.value)[0],C=g.value;if(!S){ne.Warning(t("请选择raid类型"));return}if(C.length==0){ne.Warning(t("请选择磁盘"));return}if(S.select>C.length){ne.Warning(t("请选择至少%{min}块磁盘",{min:""+S.select}));return}if(confirm(t("是否立即创建 %{name}?选择的硬盘所有分区将会被清除,此操作可能会导致硬盘数据丢失,请谨慎操作。",{name:S.name}))&&confirm(t("确定创建 %{name}?该操作不可逆,请谨慎操作",{name:S.name}))){m.value=!0,r.value="loading";try{const y=yield we.Raid.Create.POST({level:S.name,devicePaths:C});if(y.data){const{success:P,error:_,result:D}=y.data;if(_)throw _;(P||0)==0&&(r.value="success",c())}}catch(y){p.value=y,r.value="error"}finally{m.value=!1}}});return(S,C)=>{const y=At("icon-loading"),P=At("icon-error"),_=At("icon-success");return i(),d("div",$P,[e("div",CP,[e("span",null,a(o(t)("RAID创建向导")),1)]),r.value=="init"?(i(),d(V,{key:0},[e("div",SP,[e("p",null,a(o(t)("RAID磁盘阵列是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。")),1),e("div",xP,[e("div",PP,[e("span",null,a(o(t)("RAID级别:")),1)]),e("div",TP,[W(e("select",{"onUpdate:modelValue":C[0]||(C[0]=D=>h.value=D),onChange:k},[(i(),d(V,null,oe(v,D=>e("option",{value:D.name},a(D.title),9,MP)),64))],544),[[Be,h.value]])]),e("div",EP,[G(Sn),ue(" "+a(b(h.value)),1)])]),e("div",IP,[e("div",DP,[e("span",null,a(o(t)("磁盘阵列成员:")),1)]),f.loading?(i(),d("div",LP,[e("span",AP,a(o(t)("检测中...")),1)])):(i(),d("div",NP,[f.members.length>0?(i(!0),d(V,{key:0},oe(f.members,D=>(i(),d("label",null,[W(e("input",{type:"checkbox","onUpdate:modelValue":C[1]||(C[1]=E=>g.value=E),value:D.path},null,8,OP),[[gt,g.value]]),ue(" 【"+a(D.model)+"】"+a(D.name)+" "+a(D.path)+" ["+a(D.sizeStr)+"] ",1)]))),256)):(i(),d("span",zP,a(o(t)("检测不到可用磁盘阵列成员")),1))])),e("div",qP,[G(Sn),ue(" "+a(o(t)("选择将要用于创建 RAID 的硬盘,通过 USB 接入的设备不会在列表中显示(USB接入不稳定)。")),1)])])]),e("div",RP,[e("div",{class:"close",onClick:u,disabled:m.value},a(o(t)("取消")),9,VP),e("div",{class:"next",onClick:w,disabled:m.value},a(o(t)("创建")),9,BP)])],64)):r.value=="loading"?(i(),d("div",UP,[G(y,{size:60,color:"#666"}),e("span",null,a(o(t)("正在创建中...")),1)])):r.value=="error"?(i(),d(V,{key:2},[e("div",FP,[G(P),e("span",null,a(p.value),1)]),e("div",HP,[e("div",{class:"close",onClick:u},a(o(t)("关闭")),1),e("div",{class:"next",onClick:w,disabled:m.value},a(o(t)("重新创建")),9,GP)])],64)):r.value=="success"?(i(),d(V,{key:3},[e("div",jP,[G(_),e("div",WP,a(o(t)("创建成功")),1)]),e("div",JP,[e("div",{class:"close",onClick:u},a(o(t)("关闭")),1)])],64)):T("",!0)])}}}),ZP=le(KP,[["__scopeId","data-v-fb4bf57d"]]),YP={class:"actioner-container"},QP={class:"actioner-container_body"},XP=["value"],eT={class:"actioner-container_footer"},tT=X({__name:"setup-info",props:{Close:{type:Function,required:!0},raid:{type:Object,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.Close()},c=x("");return we.Raid.Detail.POST({path:l.raid.path}).then(p=>{if(p.data){const{result:v,error:h}=p.data;h?c.value=h:c.value=(v==null?void 0:v.detail)||""}}).catch(p=>{c.value=p.message}),(p,v)=>(i(),d("div",YP,[e("div",QP,[e("textarea",{value:c.value},null,8,XP)]),e("div",eT,[e("div",{class:"close",onClick:u},a(o(t)("关闭")),1)])]))}}),nT=le(tT,[["__scopeId","data-v-4d9db7d4"]]),aT={class:"actioner-container"},sT={class:"actioner-container_header"},oT={class:"actioner-container_body"},lT={class:"label-item"},iT={class:"label-item_key"},rT={class:"label-item_value"},cT={disabled:""},dT={class:"label-item"},uT={class:"label-item_key"},vT={key:0,class:"label-item_value"},pT={class:"msg-warning"},hT={key:1,class:"label-item_value"},mT=["value"],fT={key:1,class:"msg-warning"},bT={class:"actioner-container_footer"},gT=["disabled"],_T=["disabled"],yT=X({__name:"setup-edit",props:{Close:{type:Function,required:!0},raid:{type:Object,required:!0},success:{type:Function}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.Close()},c=()=>{l.success&&l.success()},r=()=>B(null,null,function*(){const b=h.value;if(b==""){ne.Warning(t("请选择要添加的硬盘"));return}v.value=!0;const m=ne.Loading(t("保存中..."));try{const f=yield we.Raid.Add.POST({path:l.raid.path,memberPath:b});if(f.data){const{error:k,success:$}=f.data;if(k)throw k;($||0)==0&&(ne.Success(t("保存成功")),c(),u())}}catch(f){ne.Error(`${f}`)}finally{v.value=!1,m.Close()}}),p=Xe({loading:!1,members:[]}),v=x(!1),h=x("");return B(null,null,function*(){p.loading=!0,v.value=!0;try{const b=yield we.Raid.CreateList.GET();if(b!=null&&b.data){const{success:m,error:f,result:k}=b.data;if(k&&(p.members=k.members||[]),f)throw f}}catch(b){console.log(b)}finally{v.value=!1,p.loading=!1}}),(b,m)=>(i(),d("div",aT,[e("div",sT,[e("span",null,"RAID - "+a(s.raid.name)+" "+a(o(t)("修改")),1)]),e("div",oT,[e("div",lT,[e("div",iT,a(o(t)("设备")),1),e("div",rT,[e("select",cT,[e("option",null,a(s.raid.name)+"_"+a(s.raid.venderModel)+" ("+a(s.raid.path)+","+a(s.raid.level)+","+a(s.raid.size)+") ",1)])])]),e("div",dT,[e("div",uT,a(o(t)("选择硬盘(选择被添加到RAID的硬盘):")),1),p.loading?(i(),d("div",vT,[e("span",pT,a(o(t)("检测中...")),1)])):(i(),d("div",hT,[p.members.length>0?(i(!0),d(V,{key:0},oe(p.members,f=>(i(),d("label",null,[W(e("input",{type:"radio","onUpdate:modelValue":m[0]||(m[0]=k=>h.value=k),value:f.path},null,8,mT),[[Mt,h.value]]),ue(" 【"+a(f.model)+"】"+a(f.name)+" "+a(f.path)+" ["+a(f.sizeStr)+"] ",1)]))),256)):(i(),d("span",fT,a(o(t)("检测不到可用磁盘阵列成员")),1))]))])]),e("div",bT,[e("div",{class:"close",onClick:u,disabled:v.value},a(o(t)("取消")),9,gT),e("div",{class:"next",onClick:r,disabled:v.value},a(o(t)("保存")),9,_T)])]))}}),kT=le(yT,[["__scopeId","data-v-a6a43b80"]]),wT={class:"actioner-container"},$T={class:"actioner-container_header"},CT={class:"actioner-container_body"},ST={class:"label-item"},xT={class:"label-item_key"},PT={class:"label-item_value"},TT={disabled:""},MT={class:"label-item"},ET={class:"label-item_key"},IT={class:"label-item_value"},DT=["value"],LT={class:"actioner-container_footer"},AT=["disabled"],NT=["disabled"],OT=X({__name:"setup-remove",props:{Close:{type:Function,required:!0},raid:{type:Object,required:!0},success:{type:Function}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.Close()},c=()=>{l.success&&l.success()},r=()=>B(null,null,function*(){const h=v.value;if(h==""){ne.Warning(t("请选择要删除的硬盘"));return}p.value=!0;const g=ne.Loading(t("保存中..."));try{const b=yield we.Raid.Remove.POST({path:l.raid.path,memberPath:h});if(b.data){const{error:m,success:f}=b.data;if(m)throw m;(f||0)==0&&(ne.Success(t("保存成功")),c(),u())}}catch(b){ne.Error(`${b}`)}finally{p.value=!1,g.Close()}}),p=x(!1),v=x("");return(h,g)=>(i(),d("div",wT,[e("div",$T,[e("span",null,"RAID - "+a(s.raid.name)+" "+a(o(t)("移除")),1)]),e("div",CT,[e("div",ST,[e("div",xT,a(o(t)("设备")),1),e("div",PT,[e("select",TT,[e("option",null,a(s.raid.name)+"_"+a(s.raid.venderModel)+" ("+a(s.raid.path)+","+a(s.raid.level)+","+a(s.raid.size)+") ",1)])])]),e("div",MT,[e("div",ET,a(o(t)("选择硬盘(选择要从RAID阵列中删除的硬盘):")),1),e("div",IT,[(i(!0),d(V,null,oe(s.raid.members,b=>(i(),d("label",null,[W(e("input",{type:"radio","onUpdate:modelValue":g[0]||(g[0]=m=>v.value=m),value:b},null,8,DT),[[Mt,v.value]]),ue(" "+a(b),1)]))),256))])])]),e("div",LT,[e("div",{class:"close",onClick:u,disabled:p.value},a(o(t)("取消")),9,AT),e("div",{class:"next",onClick:r,disabled:p.value},a(o(t)("保存")),9,NT)])]))}}),zT=le(OT,[["__scopeId","data-v-f58fb3c5"]]),qT={class:"actioner-container"},RT={class:"actioner-container_header"},VT={class:"actioner-container_body"},BT={class:"label-item"},UT={class:"label-item_key"},FT={class:"label-item_value"},HT={disabled:""},GT={class:"label-item"},jT={class:"label-item_key"},WT={key:0,class:"label-item_value"},JT={class:"msg-warning"},KT={key:1,class:"label-item_value"},ZT=["value"],YT={key:1,class:"msg-warning"},QT={class:"actioner-container_footer"},XT=["disabled"],eM=["disabled"],tM=X({__name:"setup-recover",props:{Close:{type:Function,required:!0},raid:{type:Object,required:!0},success:{type:Function}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=()=>{l.Close()},c=()=>{l.success&&l.success()},r=()=>B(null,null,function*(){const b=h.value;if(b==""){ne.Warning(t("请选择要添加的硬盘"));return}v.value=!0;const m=ne.Loading(t("保存中..."));try{const f=yield we.Raid.Recover.POST({path:l.raid.path,memberPath:b});if(f.data){const{error:k,success:$}=f.data;if(k)throw k;($||0)==0&&(ne.Success(t("保存成功")),c(),u())}}catch(f){ne.Error(`${f}`)}finally{v.value=!1,m.Close()}}),p=Xe({loading:!1,members:[]}),v=x(!1),h=x("");return B(null,null,function*(){p.loading=!0,v.value=!0;try{const b=yield we.Raid.CreateList.GET();if(b!=null&&b.data){const{success:m,error:f,result:k}=b.data;if(k&&(p.members=k.members||[]),f)throw f}}catch(b){console.log(b)}finally{v.value=!1,p.loading=!1}}),(b,m)=>(i(),d("div",qT,[e("div",RT,[e("span",null,"RAID - "+a(s.raid.name)+" "+a(o(t)("恢复")),1)]),e("div",VT,[e("div",BT,[e("div",UT,a(o(t)("设备")),1),e("div",FT,[e("select",HT,[e("option",null,a(s.raid.name)+"_"+a(s.raid.venderModel)+" ("+a(s.raid.path)+","+a(s.raid.level)+","+a(s.raid.size)+") ",1)])])]),e("div",GT,[e("div",jT,a(o(t)("选择硬盘(选择空闲的硬盘恢复RAID设备):")),1),p.loading?(i(),d("div",WT,[e("span",JT,a(o(t)("检测中...")),1)])):(i(),d("div",KT,[p.members.length>0?(i(!0),d(V,{key:0},oe(p.members,f=>(i(),d("label",null,[W(e("input",{type:"radio","onUpdate:modelValue":m[0]||(m[0]=k=>h.value=k),value:f.path},null,8,ZT),[[Mt,h.value]]),ue(" 【"+a(f.model)+"】"+a(f.name)+" "+a(f.path)+" ["+a(f.sizeStr)+"] ",1)]))),256)):(i(),d("span",YT,a(o(t)("检测不到可用磁盘阵列成员")),1))]))])]),e("div",QT,[e("div",{class:"close",onClick:u,disabled:v.value},a(o(t)("取消")),9,XT),e("div",{class:"next",onClick:r,disabled:v.value},a(o(t)("保存")),9,eM)])]))}}),nM=le(tM,[["__scopeId","data-v-3b6f47ef"]]),aM={class:"action-main"},sM=X({__name:"index",props:{Close:{type:Function,required:!0},setup:{type:String,default:"create"},raid:{type:Object},success:{type:Function}},setup(s){return(t,n)=>(i(),Y(Nt,{type:2},{default:pe(()=>[e("div",aM,[s.setup=="create"?(i(),Y(ZP,{key:0,Close:s.Close},null,8,["Close"])):s.setup=="info"&&s.raid!=null?(i(),Y(nT,{key:1,Close:s.Close,raid:s.raid,success:s.success},null,8,["Close","raid","success"])):s.setup=="edit"&&s.raid!=null?(i(),Y(kT,{key:2,Close:s.Close,raid:s.raid,success:s.success},null,8,["Close","raid","success"])):s.setup=="remove"&&s.raid!=null?(i(),Y(zT,{key:3,Close:s.Close,raid:s.raid,success:s.success},null,8,["Close","raid","success"])):s.setup=="recover"&&s.raid!=null?(i(),Y(nM,{key:4,Close:s.Close,raid:s.raid,success:s.success},null,8,["Close","raid","success"])):T("",!0)])]),_:1}))}}),oM=le(sM,[["__scopeId","data-v-11e639c1"]]),Ja=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(oM,Ne(ye({},s),{Close:()=>{l()}}));n.use(Pd),n.mount(t);const l=()=>{n.unmount(),t.remove()};return{Close:l}},lM={id:"page"},iM={name:"content"},rM={class:"cbi-map-descr"},cM={style:{color:"#f5365b","margin-top":"10px"}},dM={style:{color:"#f5365b","margin-top":"10px"}},uM={class:"btns"},vM=["disabled"],pM={class:"cbi-section cbi-tblsection",id:"cbi-nfs-mount"},hM={class:"table cbi-section-table"},mM={style:{}},fM={class:"tr cbi-section-table-titles anonymous"},bM={class:"th cbi-section-table-cell","data-widget":"value"},gM={class:"th cbi-section-table-cell","data-widget":"value"},_M={class:"th cbi-section-table-cell","data-widget":"value"},yM={class:"th cbi-section-table-cell","data-widget":"value"},kM={class:"th cbi-section-table-cell","data-widget":"value"},wM={class:"th cbi-section-table-cell","data-widget":"value"},$M={class:"th cbi-section-table-cell","data-widget":"value"},CM={class:"th cbi-section-table-cell","data-widget":"value"},SM={class:"tr cbi-section-table-row"},xM={class:"td cbi-value-field"},PM={class:"td cbi-value-field"},TM=["title"],MM={class:"item-status"},EM={key:0,class:"item-status item-status-detail"},IM={class:"td cbi-value-field"},DM={class:"td cbi-value-field"},LM={class:"td cbi-value-field"},AM={class:"td cbi-value-field"},NM={key:1,href:"/cgi-bin/luci/admin/quickstart/"},OM={class:"td cbi-section-table-cell nowrap cbi-section-actions"},zM=["title","disabled","onClick"],qM=["title","disabled","onClick"],RM=["title","onClick"],VM=["title","onClick"],BM=["title","onClick"],UM=X({__name:"index",setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=Xe({disksList:[]}),u=()=>B(null,null,function*(){try{const w=yield we.Raid.List.GET();if(w!=null&&w.data){const{success:S,error:C,result:y}=w.data;if(y&&(l.disksList=y.disks||[]),C)throw C}}catch(w){console.log(w)}}),c=Fn.easyInterval(u,5e3);ga(()=>{c()});const r=w=>{switch(w.level){case"raid0":case"jbod":return!0}return w.status.indexOf("degraded")!=-1||w.status.indexOf("resyncing(")!=-1},p=w=>{let S=[];return w.childrens&&w.childrens.forEach(C=>{C.mountPoint&&S.push(`${C.name}(${C.mountPoint})`)}),S},v=()=>B(null,null,function*(){Ja({setup:"create",success:()=>{u()}})}),h=w=>{Ja({setup:"info",raid:w})},g=w=>B(null,null,function*(){if(w.childrens&&w.childrens.length>0&&w.childrens.filter(y=>y.mountPoint).length>0){qs({content:t("删除 RAID 设备之前请先卸载文件系统"),nextTitle:t("去卸载"),next:()=>{location.href="/cgi-bin/luci/admin/system/mounts"},clearTitle:t("取消"),clear:()=>{}});return}if(!confirm(t("确定要删除 %{name} 该磁盘阵列吗?删除操作可能会导致数据丢失,请谨慎操作。删除成功后,如需另外组RAID,建议稍等几分钟后再试。",{name:w.name}))||!confirm(t("确定要删除 %{name} 吗?",{name:w.name})))return;const S=ne.Loading(t("删除中..."));try{const C=yield we.Raid.Delete.POST({path:w.path,members:w.members});if(C.data){const{success:y,error:P}=C.data;if(P)throw P;(y||0)==0&&(ne.Success(t("删除成功")),u())}}catch(C){ne.Error(`${C}`)}finally{S.Close()}}),b=w=>{Ja({setup:"edit",raid:w,success:()=>{u()}})},m=w=>{Ja({setup:"remove",raid:w,success:()=>{u()}})},f=w=>{Ja({setup:"recover",raid:w,success:()=>{u()}})},k=x(!1),$=()=>{qs({content:t("将扫描磁盘里 RAID 的磁盘阵列配置并恢复,确定要恢复 RAID 磁盘阵列吗?"),nextTitle:t("确定"),next:()=>B(null,null,function*(){k.value=!0;const w=ne.Loading(t("扫描中..."));try{const S=yield we.Raid.Autofix.POST();if(S.data){const{error:C,success:y}=S.data;if(C)throw C;(y||0)==0&&(ne.Success(t("恢复完成")),u())}}catch(S){ne.Error(`${S}`)}finally{w.Close(),k.value=!1}}),clearTitle:t("取消"),clear:()=>{}})};return(w,S)=>(i(),d("div",lM,[e("h2",iM,a(o(t)("RAID管理")),1),e("div",rM,[e("p",null,a(o(t)("RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。")),1),e("p",cM," * "+a(o(t)("RAID功能正在公测中,使用过程中如造成数据丢失等问题,概不负责,请谨慎使用。")),1),e("p",dM," * "+a(o(t)("如果由于系统重置或重启导致的RAID设备丢失可以尝试通过下方'扫描恢复RAID'按钮恢复")),1)]),e("div",uM,[e("button",{class:"btn cbi-button cbi-button-apply",onClick:S[0]||(S[0]=C=>v())},a(o(t)("创建RAID")),1),e("button",{class:"btn cbi-button cbi-button-apply",onClick:S[1]||(S[1]=C=>$()),disabled:k.value},a(o(t)("扫描恢复RAID")),9,vM)]),e("div",null,[e("div",pM,[e("table",hM,[e("tbody",mM,[e("tr",fM,[e("th",bM,a(o(t)("名称")),1),e("th",gM,a(o(t)("设备")),1),e("th",_M,a(o(t)("状态")),1),e("th",yM,a(o(t)("级别")),1),e("th",kM,a(o(t)("容量")),1),e("th",wM,a(o(t)("成员")),1),e("th",$M,a(o(t)("挂载信息")),1),e("th",CM,a(o(t)("操作")),1)]),(i(!0),d(V,null,oe(l.disksList,C=>(i(),d("tr",SM,[e("td",xM,[e("b",null,a(C.name),1)]),e("td",PM,[e("b",null,a(C.path),1)]),e("td",{class:"td cbi-value-field",title:C.status+(C.rebuildStatus||"")},[e("b",MM,a(C.status),1),C.rebuildStatus?(i(),d("b",EM," … ")):T("",!0)],8,TM),e("td",IM,[e("b",null,a(C.level),1)]),e("td",DM,[e("b",null,a(C.size),1)]),e("td",LM,[(i(!0),d(V,null,oe(C.members,y=>(i(),d("b",null,[ue(a(y)+" ",1),S[2]||(S[2]=e("br",null,null,-1))]))),256))]),e("td",AM,[p(C).length>0?(i(!0),d(V,{key:0},oe(p(C),y=>(i(),d("b",null,[ue(a(y)+" ",1),S[3]||(S[3]=e("br",null,null,-1))]))),256)):(i(),d("a",NM,a(o(t)("去挂载")),1))]),e("td",OM,[e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("扩充"),disabled:r(C),onClick:y=>b(C)},a(o(t)("扩充")),9,zM),e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("移除"),disabled:r(C),onClick:y=>m(C)},a(o(t)("移除")),9,qM),e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("恢复"),onClick:y=>f(C)},a(o(t)("恢复")),9,RM),e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("详情"),onClick:y=>h(C)},a(o(t)("详情")),9,VM),e("button",{class:"cbi-button cbi-button-remove",title:o(t)("如果您在RAID磁盘阵列中创建了文件系统,先卸载文件系统,后删除文件系统删除操作可能会导致数据丢失,请谨慎操作。"),onClick:y=>g(C)},a(o(t)("删除")),9,BM)])]))),256))])])])])]))}}),FM=le(UM,[["__scopeId","data-v-dcf60521"]]),HM={id:"page"},GM={class:"cbi-map-descr"},jM={class:"tabs"},WM=["href","onClick"],JM=X({__name:"index",setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=[{to:"/smart",name:t("常规设置")},{to:"/smart/task",name:t("计划任务")},{to:"/smart/log",name:t("查看日志")}],u=x(!1),c=Xe({global:{enable:!1,powermode:"never",tmpDiff:0,tmpMax:0},devices:[],tasks:[]}),r=h=>{const{global:g,devices:b,tasks:m}=h;g&&(c.global.enable=g.enable||!1,c.global.powermode=g.powermode||"never"),c.devices=b||[],c.tasks=m||[]};B(null,null,function*(){try{const h=yield we.Smart.Config.GET();if(h.data){const{result:g}=h.data;g&&r(g)}}catch(h){}finally{u.value=!0}});const v=h=>B(null,null,function*(){const g=ne.Loading(t("保存中..."));try{const b=yield we.Smart.Config.POST(h);if(b.data){console.log(b.data);const{success:m,error:f,result:k}=b.data;if(f)throw f;(m||0)==0&&(ne.Success(t("保存成功")),k&&r(k))}}catch(b){ne.Error(`${b}`)}finally{g.Close()}});return(h,g)=>{const b=At("router-link"),m=At("router-view");return i(),d("div",HM,[g[0]||(g[0]=e("h2",{name:"content"},"S.M.A.R.T.",-1)),e("div",GM,[e("p",null,a(o(t)("S.M.A.R.T.,全称为“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”,")),1),e("p",null,a(o(t)("是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、")),1),e("p",null,a(o(t)("电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将要或已超出预设安全值的安全范围,")),1),e("p",null,a(o(t)("就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬盘数据的安全。")),1)]),e("ul",jM,[(i(),d(V,null,oe(l,f=>G(b,{to:f.to,custom:"",key:f.to},{default:pe(({route:k,href:$,navigate:w,isActive:S,isExactActive:C})=>[e("li",{class:_e({"active cbi-tab":S&&C})},[e("a",{href:$,onClick:w},a(f.name),9,WM)],2)]),_:2},1032,["to"])),64))]),u.value?(i(),Y(m,{key:0,name:"default"},{default:pe(({Component:f,route:k})=>[(i(),Y(Er,null,{default:pe(()=>[(i(),Y(Aa(f),{key:k.path,config:c,saveData:v},null,8,["config"]))]),_:2},1024))]),_:1})):T("",!0)])}}}),KM=le(JM,[["__scopeId","data-v-c748d4fd"]]),ZM={class:"action-main"},YM=X({__name:"app",setup(s){return(t,n)=>(i(),Y(Nt,{type:2},{default:pe(()=>[e("div",ZM,[Ct(t.$slots,"default",{},void 0,!0)])]),_:3}))}}),Xs=le(YM,[["__scopeId","data-v-9bd81e00"]]),QM={class:"actioner-container"},XM={class:"actioner-container_header"},eE={class:"actioner-container_body"},tE={class:"cbi-value"},nE={class:"cbi-value-title"},aE={class:"cbi-value-field"},sE={class:"cbi-value-description"},oE={class:"cbi-value"},lE={class:"cbi-value-title"},iE={class:"cbi-value-field"},rE={class:"cbi-checkbox"},cE={value:-1},dE={value:0},uE=["value"],vE={class:"cbi-value-description"},pE={class:"cbi-value"},hE={class:"cbi-value-title"},mE={class:"cbi-value-field"},fE={class:"cbi-checkbox"},bE={value:-1},gE={value:0},_E=["value"],yE={class:"cbi-value-description"},kE={class:"actioner-container_footer"},wE=["disabled"],$E=["disabled"],CE=X({__name:"edit-disk",props:{close:{type:Function,required:!0},disk:{type:Object,required:!0},device:{type:Object},next:{type:Function,required:!0}},setup(s){var v,h,g;const{$gettext:t,$ngettext:n}=Ae(),l=s;console.log(l.device);const u=x(!1),c=Xe({tmpDiff:((v=l.device)==null?void 0:v.tmpDiff)||0,tmpMax:((h=l.device)==null?void 0:h.tmpMax)||0,devicePath:((g=l.device)==null?void 0:g.devicePath)||""}),r=()=>{u.value=!0,l.close()},p=()=>B(null,null,function*(){u.value=!0;try{yield l.next({tmpDiff:c.tmpDiff,tmpMax:c.tmpMax,devicePath:c.devicePath}),u.value=!1,r()}catch(b){}});return(b,m)=>(i(),Y(Xs,null,{default:pe(()=>[e("div",QM,[e("div",XM,[e("span",null," S.M.A.R.T. » "+a(o(t)("设备"))+" » "+a(s.disk.path),1)]),e("div",eE,[e("div",tE,[e("label",nE,a(o(t)("磁盘")),1),e("div",aE,[e("div",sE,a(s.disk.model)+" [ "+a(s.disk.path)+","+a(s.disk.sizeStr)+" ] ",1)])]),e("div",oE,[e("label",lE,a(o(t)("温度监测(差异)")),1),e("div",iE,[e("div",rE,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":m[0]||(m[0]=f=>c.tmpDiff=f)},[e("option",cE,a(o(t)("使用全局配置")),1),e("option",dE,a(o(t)("禁用")),1),(i(),d(V,null,oe(20,f=>e("option",{value:f},a(f)+"°C",9,uE)),64))],512),[[Be,c.tmpDiff,void 0,{number:!0}]])]),e("div",vE,a(o(t)("自上次报告以来温度变化至少 N 度,则需报告.")),1)])]),e("div",pE,[e("label",hE,a(o(t)("温度监测(最大)")),1),e("div",mE,[e("div",fE,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":m[1]||(m[1]=f=>c.tmpMax=f)},[e("option",bE,a(o(t)("使用全局配置")),1),e("option",gE,a(o(t)("禁用")),1),(i(),d(V,null,oe(20,f=>e("option",{value:f*5},a(f*5)+"°C",9,_E)),64))],512),[[Be,c.tmpMax,void 0,{number:!0}]])]),e("div",yE,a(o(t)("如果温度大于或等于 N 摄氏度则报告.")),1)])])]),e("div",kE,[e("button",{class:"close",onClick:r,disabled:u.value},a(o(t)("取消")),9,wE),e("button",{class:"next",onClick:p,disabled:u.value},a(o(t)("保存")),9,$E)])])]),_:1}))}}),SE={class:"actioner-container"},xE={class:"actioner-container_header"},PE={class:"actioner-container_body"},TE={class:"cbi-value"},ME={class:"cbi-value-title"},EE={class:"cbi-value-field"},IE={class:"cbi-checkbox"},DE={value:""},LE=["value"],AE={class:"cbi-value"},NE={class:"cbi-value-title"},OE={class:"cbi-value-field"},zE={class:"cbi-checkbox"},qE={value:"short"},RE={value:"long"},VE={value:"conveyance"},BE={value:"offline"},UE={class:"cbi-value"},FE={class:"cbi-value-title"},HE={class:"cbi-value-field"},GE={class:"cbi-checkbox"},jE=["value"],WE={class:"cbi-value-description"},JE={class:"cbi-value"},KE={class:"cbi-value-title"},ZE={class:"cbi-value-field"},YE={class:"cbi-checkbox"},QE=["value"],XE={class:"cbi-value-description"},eI={class:"cbi-value"},tI={class:"cbi-value-title"},nI={class:"cbi-value-field"},aI={class:"cbi-checkbox"},sI=["value"],oI={class:"cbi-value-description"},lI={class:"actioner-container_footer"},iI=["disabled"],rI=["disabled"],cI=X({__name:"add-task",props:{close:{type:Function,required:!0},config:{type:Object,required:!0},next:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(!1),c=Xe({type:"short",devicePath:"",month:"*",dayPerMonth:"*",hour:"*"}),r=x([]);B(null,null,function*(){try{const g=yield we.Smart.List.GET();if(g.data){const{result:b,error:m}=g.data;b&&b.disks&&(r.value=b.disks)}}catch(g){}});const v=()=>{u.value=!0,l.close()},h=()=>B(null,null,function*(){if(c.devicePath==""){ne.Warning(t("请选择磁盘"));return}u.value=!0;try{yield l.next(c),v()}catch(g){}finally{u.value=!1}});return(g,b)=>(i(),Y(Xs,null,{default:pe(()=>[e("div",SE,[e("div",xE,[e("span",null,a(o(t)("创建计划任务")),1)]),e("div",PE,[e("div",TE,[e("label",ME,a(o(t)("磁盘")),1),e("div",EE,[e("div",IE,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":b[0]||(b[0]=m=>c.devicePath=m)},[e("option",DE,a(o(t)("选择磁盘")),1),(i(!0),d(V,null,oe(r.value,m=>(i(),d("option",{value:m.path},a(m.model)+" [ "+a(m.path)+","+a(m.sizeStr)+" ] ",9,LE))),256))],512),[[Be,c.devicePath,void 0,{trim:!0}]])])])]),e("div",AE,[e("label",NE,a(o(t)("类型")),1),e("div",OE,[e("div",zE,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":b[1]||(b[1]=m=>c.type=m)},[e("option",qE,a(o(t)("短暂自检")),1),e("option",RE,a(o(t)("长时自检")),1),e("option",VE,a(o(t)("传输时自检")),1),e("option",BE,a(o(t)("离线时自检")),1)],512),[[Be,c.type,void 0,{trim:!0}]])])])]),e("div",UE,[e("label",FE,a(o(t)("小时")),1),e("div",HE,[e("div",GE,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":b[2]||(b[2]=m=>c.hour=m)},[b[5]||(b[5]=e("option",{value:"*"},"*",-1)),(i(),d(V,null,oe(24,(m,f)=>e("option",{value:`${f}`},a(f),9,jE)),64))],512),[[Be,c.hour,void 0,{trim:!0}]])]),e("div",WE,a(o(t)("* 表示每小时")),1)])]),e("div",JE,[e("label",KE,a(o(t)("天")),1),e("div",ZE,[e("div",YE,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":b[3]||(b[3]=m=>c.dayPerMonth=m)},[b[6]||(b[6]=e("option",{value:"*"},"*",-1)),(i(),d(V,null,oe(31,m=>e("option",{value:`${m}`},a(m),9,QE)),64))],512),[[Be,c.dayPerMonth,void 0,{trim:!0}]])]),e("div",XE,a(o(t)("* 表示每天")),1)])]),e("div",eI,[e("label",tI,a(o(t)("月")),1),e("div",nI,[e("div",aI,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":b[4]||(b[4]=m=>c.month=m)},[b[7]||(b[7]=e("option",{value:"*"},"*",-1)),(i(),d(V,null,oe(12,(m,f)=>e("option",{value:`${m}`},a(m),9,sI)),64))],512),[[Be,c.month,void 0,{trim:!0}]])]),e("div",oI,a(o(t)("* 表示每月")),1)])])]),e("div",lI,[e("button",{class:"close",onClick:v,disabled:u.value},a(o(t)("取消")),9,iI),e("button",{class:"next",onClick:h,disabled:u.value},a(o(t)("保存")),9,rI)])])]),_:1}))}}),dI={class:"actioner-container"},uI={class:"actioner-container_header"},vI={class:"actioner-container_body"},pI=["value"],hI={class:"actioner-container_footer"},mI=["disabled"],fI=["disabled"],bI=X({__name:"test-task",props:{close:{type:Function,required:!0},task:{type:Object,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(!1),c=x(""),r=x(""),p=x(""),v=()=>B(null,null,function*(){c.value+=".";try{const m=yield we.Smart.Test.Result.POST({type:"selftest",devicePath:l.task.devicePath||""});if(m.data){const{result:f,error:k}=m.data;f&&f.result&&(p.value=f.result),k&&(p.value=k)}}catch(m){m&&(p.value=m)}}),h=Fn.easyInterval(v,5e3);ga(()=>{h()});const g=()=>{u.value=!0,h(),l.close()},b=()=>B(null,null,function*(){u.value=!0;try{const m=yield we.Smart.Test.POST({type:l.task.type||"short",devicePath:l.task.devicePath||""});if(m.data){const{success:f,error:k,result:$}=m.data;k&&(r.value=k),$&&$.result&&(r.value=$.result)}}catch(m){r.value=m}});return(m,f)=>(i(),Y(Xs,null,{default:pe(()=>[e("div",dI,[e("div",uI,[e("span",null,a(o(t)("运行调试")),1)]),e("div",vI,[e("textarea",{value:r.value+` +`+p.value+` +`+c.value,disabled:""},null,8,pI)]),e("div",hI,[e("div",{class:"close",onClick:g,disabled:u.value},a(o(t)("关闭")),9,mI),u.value?T("",!0):(i(),d("div",{key:0,class:"next",onClick:b,disabled:u.value},a(o(t)("运行")),9,fI))])])]),_:1}))}}),gI=le(bI,[["__scopeId","data-v-3fabbd23"]]),_I={class:"actioner-container"},yI={class:"actioner-container_header"},kI={class:"tabs"},wI={class:"actioner-container_body"},$I={key:0,class:"table"},CI={class:"tr"},SI={class:"td left"},xI={class:"td left"},PI={class:"tr"},TI={class:"td left"},MI={class:"td left"},EI={class:"tr"},II={class:"td left"},DI={class:"td left"},LI=["value"],AI=["value"],NI=["value"],OI={class:"actioner-container_footer"},zI=["disabled"],qI=X({__name:"disk-info",props:{close:{type:Function,required:!0},disk:{type:Object,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(!1),c=x("info"),r=m=>{switch(c.value=m,m){case"info":break;case"attribute":g();break;case"log":h();break;case"extend":b();break}},p=()=>{u.value=!0,l.close()},v=Xe({log:"",attribute:"",extend:""}),h=()=>B(null,null,function*(){try{const m=yield we.Smart.Test.Result.POST({type:"selftest",devicePath:l.disk.path||""});if(m.data){const{result:f,error:k}=m.data;f&&f.result&&(v.log=f.result),k&&(v.log=k)}}catch(m){v.log=m}}),g=()=>B(null,null,function*(){try{const m=yield we.Smart.Attribute.Result.POST({devicePath:l.disk.path||""});if(m.data){const{result:f,error:k}=m.data;f&&f.result&&(v.attribute=f.result),k&&(v.attribute=k)}}catch(m){v.attribute=m}}),b=()=>B(null,null,function*(){try{const m=yield we.Smart.Extend.Result.POST({devicePath:l.disk.path||""});if(m.data){const{result:f,error:k}=m.data;f&&f.result&&(v.extend=f.result),k&&(v.extend=k)}}catch(m){v.extend=m}});return(m,f)=>(i(),Y(Xs,null,{default:pe(()=>[e("div",_I,[e("div",yI,[e("ul",kI,[e("li",{class:_e({"active cbi-tab":c.value=="info"}),onClick:f[0]||(f[0]=k=>r("info"))},[e("a",null,a(o(t)("设备信息")),1)],2),e("li",{class:_e({"active cbi-tab":c.value=="attribute"}),onClick:f[1]||(f[1]=k=>r("attribute"))},[e("a",null,a(o(t)("属性")),1)],2),e("li",{class:_e({"active cbi-tab":c.value=="log"}),onClick:f[2]||(f[2]=k=>r("log"))},[e("a",null,a(o(t)("自检日志")),1)],2),e("li",{class:_e({"active cbi-tab":c.value=="extend"}),onClick:f[3]||(f[3]=k=>r("extend"))},[e("a",null,a(o(t)("扩展信息")),1)],2)])]),e("div",wI,[c.value=="info"?(i(),d("table",$I,[e("tr",CI,[e("td",SI,a(o(t)("设备")),1),e("td",xI,a(s.disk.path),1)]),e("tr",PI,[e("td",TI,a(o(t)("型号")),1),e("td",MI,a(s.disk.model),1)]),e("tr",EI,[e("td",II,a(o(t)("序号")),1),e("td",DI,a(s.disk.serial),1)])])):c.value=="attribute"?(i(),d("textarea",{key:1,disabled:"",value:v.attribute},null,8,LI)):c.value=="log"?(i(),d("textarea",{key:2,disabled:"",value:v.log},null,8,AI)):c.value=="extend"?(i(),d("textarea",{key:3,disabled:"",value:v.extend},null,8,NI)):T("",!0)]),e("div",OI,[e("div",{class:"close",onClick:p,disabled:u.value},a(o(t)("关闭")),9,zI)])])]),_:1}))}}),RI=le(qI,[["__scopeId","data-v-ba5f9eb4"]]),VI=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=G(CE,Ne(ye({},s),{close:()=>{l()}})),l=()=>{t.remove()};Us(n,t)},BI=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=G(cI,Ne(ye({},s),{close:()=>{l()}})),l=()=>{t.remove()};Us(n,t)},UI=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=G(gI,Ne(ye({},s),{close:()=>{l()}})),l=()=>{t.remove()};Us(n,t)},FI=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=G(RI,Ne(ye({},s),{close:()=>{l()}})),l=()=>{t.remove()};Us(n,t)},HI={class:"cbi-section"},GI={class:"cbi-value"},jI={class:"cbi-value-title"},WI={class:"cbi-value-field"},JI={class:"cbi-checkbox"},KI=["value"],ZI={class:"cbi-value"},YI={class:"cbi-value-title"},QI={class:"cbi-value-field"},XI={class:"cbi-checkbox"},eD={value:"never"},tD={value:"sleep"},nD={value:"standby"},aD={value:"idle"},sD={class:"cbi-value-description"},oD={class:"cbi-value"},lD={class:"cbi-value-title"},iD={class:"cbi-value-field"},rD={class:"cbi-checkbox"},cD={value:0},dD=["value"],uD={class:"cbi-value-description"},vD={class:"cbi-value"},pD={class:"cbi-value-title"},hD={class:"cbi-value-field"},mD={class:"cbi-checkbox"},fD={value:0},bD=["value"],gD={class:"cbi-value-description"},_D={class:"cbi-section cbi-tblsection",id:"cbi-nfs-mount"},yD={class:"table cbi-section-table"},kD={class:"tr cbi-section-table-titles anonymous"},wD={class:"th cbi-section-table-cell","data-widget":"value"},$D={class:"th cbi-section-table-cell","data-widget":"value"},CD={class:"th cbi-section-table-cell","data-widget":"value"},SD={class:"th cbi-section-table-cell","data-widget":"value"},xD={class:"th cbi-section-table-cell","data-widget":"value"},PD={class:"th cbi-section-table-cell","data-widget":"value"},TD={class:"th cbi-section-table-cell","data-widget":"value"},MD={class:"th cbi-section-table-cell","data-widget":"value"},ED={class:"tr cbi-section-table-row"},ID={class:"td cbi-value-field"},DD={class:"td cbi-value-field"},LD={class:"td cbi-value-field"},AD={class:"td cbi-value-field"},ND={class:"td cbi-value-field"},OD={class:"td cbi-value-field"},zD={class:"td cbi-value-field"},qD={class:"td cbi-value-field"},RD=["title","onClick"],VD=["title","onClick"],BD={class:"cbi-page-actions control-group"},UD=["value"],FD=X({__name:"index",props:{config:{type:Object,required:!0},saveData:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=Xe(l.config),c=()=>{u.global.tmpDiff=l.config.global.tmpDiff||0,u.global.tmpMax=l.config.global.tmpMax||0,u.global.enable=l.config.global.enable||!1,u.global.powermode=l.config.global.powermode||"never",u.devices=l.config.devices||[],u.tasks=l.config.tasks||[]},r=x([]),p=()=>B(null,null,function*(){try{const m=yield we.Smart.List.GET();if(m.data){const{result:f,error:k}=m.data;f&&f.disks&&(r.value=f.disks||[])}}catch(m){}}),v=Fn.easyInterval(p,5e3);ga(()=>{v()});const h=()=>B(null,null,function*(){yield l.saveData({global:u.global,devices:l.config.devices,tasks:l.config.tasks}),c()}),g=m=>{FI({disk:m})},b=(m,f)=>B(null,null,function*(){let k=null,$=-1;if(u.devices){for(let w=0;wB(null,null,function*(){w.tmpDiff==-1&&(w.tmpDiff=u.global.tmpDiff),w.tmpMax==-1&&(w.tmpMax=u.global.tmpMax),w.devicePath==""&&(w.devicePath=m.path);let S=[...u.devices];$>=0&&(S[$]=w);const C=new Map;S.forEach(y=>{y.devicePath!=null&&C.set(y.devicePath,null)});for(let y=0;y(i(),d(V,null,[e("fieldset",HI,[e("div",GI,[e("label",jI,a(o(t)("启用")),1),e("div",WI,[e("div",JI,[W(e("input",{type:"checkbox","onUpdate:modelValue":f[0]||(f[0]=k=>u.global.enable=k),value:!u.global.enable},null,8,KI),[[gt,u.global.enable]])])])]),e("div",ZI,[e("label",YI,a(o(t)("电源模式")),1),e("div",QI,[e("div",XI,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":f[1]||(f[1]=k=>u.global.powermode=k)},[e("option",eD,a(o(t)("总是")),1),e("option",tD,a(o(t)("睡眠")),1),e("option",nD,a(o(t)("待机")),1),e("option",aD,a(o(t)("闲置")),1)],512),[[Be,u.global.powermode,void 0,{trim:!0}]])]),e("div",sD,[e("span",null,a(o(t)("测试时磁盘会转动,请选择合适的模式来控制磁盘转动。")),1),f[4]||(f[4]=e("br",null,null,-1)),e("span",null,"* "+a(o(t)("总是-无论是什么功耗模式下都测试(检查)磁盘,当检查时,这可能会使停转的磁盘开始转动。")),1),f[5]||(f[5]=e("br",null,null,-1)),e("span",null,"* "+a(o(t)("睡眠-处于睡眠模式下不检查设备。")),1),f[6]||(f[6]=e("br",null,null,-1)),e("span",null,"* "+a(o(t)("待机-处于待机和睡眠模式下不检查设备。此模式下磁盘一般不旋转,如果你不想每次检查都转动磁盘,那么这个模式比较适合。")),1),f[7]||(f[7]=e("br",null,null,-1)),e("span",null,"* "+a(o(t)("闲置-处于待机、睡眠、闲置模式下不检查设备,在闲置状态下,大多数磁盘还在转动,所以这可能不适合你。")),1)])])]),e("div",oD,[e("label",lD,a(o(t)("温度监测(差异)")),1),e("div",iD,[e("div",rD,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":f[2]||(f[2]=k=>u.global.tmpDiff=k)},[e("option",cD,a(o(t)("禁用")),1),(i(),d(V,null,oe(15,k=>e("option",{value:k},a(k)+"°C",9,dD)),64))],512),[[Be,u.global.tmpDiff,void 0,{number:!0}]])]),e("div",uD,a(o(t)("自上次报告以来温度变化至少 N 度,则需报告.")),1)])]),e("div",vD,[e("label",pD,a(o(t)("温度监测(最大)")),1),e("div",hD,[e("div",mD,[W(e("select",{class:"cbi-input-select","onUpdate:modelValue":f[3]||(f[3]=k=>u.global.tmpMax=k)},[e("option",fD,a(o(t)("禁用")),1),(i(),d(V,null,oe(20,k=>e("option",{value:k*5},a(k*5)+"°C",9,bD)),64))],512),[[Be,u.global.tmpMax,void 0,{number:!0}]])]),e("div",gD,a(o(t)("如果温度大于或等于 N 摄氏度则报告.")),1)])])]),e("div",_D,[e("table",yD,[e("thead",null,[e("tr",kD,[e("th",wD,a(o(t)("设备")),1),e("th",$D,a(o(t)("型号")),1),e("th",CD,a(o(t)("序号")),1),e("th",SD,a(o(t)("容量")),1),e("th",xD,a(o(t)("温度")),1),e("th",PD,a(o(t)("状态")),1),e("th",TD,a(o(t)("健康")),1),e("th",MD,a(o(t)("操作")),1)])]),e("tbody",null,[(i(!0),d(V,null,oe(r.value,(k,$)=>(i(),d("tr",ED,[e("td",ID,[e("b",null,a(k.path),1)]),e("td",DD,[e("b",null,a(k.model),1)]),e("td",LD,[e("b",null,a(k.serial),1)]),e("td",AD,[e("b",null,a(k.sizeStr),1)]),e("td",ND,[e("b",null,a(k.temp),1)]),e("td",OD,[e("b",null,a(k.status),1)]),e("td",zD,[e("b",null,a(k.health),1)]),e("td",qD,[e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("编辑"),onClick:w=>b(k)},a(o(t)("编辑")),9,RD),e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("详情"),onClick:w=>g(k)},a(o(t)("详情")),9,VD)])]))),256))])])]),e("span",BD,[e("input",{class:"btn cbi-button cbi-button-apply",type:"button",value:o(t)("保存并应用"),onClick:h},null,8,UD)])],64))}}),HD={class:"cbi-section cbi-tblsection",id:"cbi-nfs-mount"},GD={class:"table cbi-section-table"},jD={class:"tr cbi-section-table-titles anonymous"},WD={class:"th cbi-section-table-cell","data-widget":"value"},JD={class:"th cbi-section-table-cell","data-widget":"value"},KD={class:"th cbi-section-table-cell","data-widget":"value"},ZD={class:"th cbi-section-table-cell","data-widget":"value"},YD={class:"tr cbi-section-table-row"},QD={class:"td cbi-value-field"},XD={class:"td cbi-value-field"},eL={class:"td cbi-value-field"},tL={class:"td cbi-value-field"},nL=["title","onClick"],aL=["title","onClick"],sL=X({__name:"index",props:{config:{type:Object,required:!0},saveData:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=Xe(l.config),c=h=>{switch(h){case"short":return t("短暂自检");case"long":return t("长时自检");case"conveyance":return t("传输时自检");case"offline":return t("离线时自检");default:return t("未知")}},r=()=>{BI({config:l.config,disks:[],next:h=>B(null,null,function*(){yield l.saveData({tasks:[...u.tasks,h],global:l.config.global,devices:l.config.devices}),u.tasks=l.config.tasks||[]})})},p=h=>B(null,null,function*(){const g=[...u.tasks];g.splice(h,1),yield l.saveData({tasks:g,global:l.config.global,devices:l.config.devices}),u.tasks=l.config.tasks||[]}),v=h=>{UI({task:h})};return(h,g)=>(i(),d(V,null,[e("button",{class:"btn cbi-button cbi-button-apply",onClick:g[0]||(g[0]=b=>r())},a(o(t)("新建")),1),e("div",HD,[e("table",GD,[e("thead",null,[e("tr",jD,[e("th",WD,a(o(t)("设备")),1),e("th",JD,a(o(t)("类型")),1),e("th",KD,a(o(t)("调度")),1),e("th",ZD,a(o(t)("功能")),1)])]),e("tbody",null,[(i(!0),d(V,null,oe(u.tasks,(b,m)=>(i(),d("tr",YD,[e("td",QD,[e("b",null,a(b.devicePath),1)]),e("td",XD,[e("b",null,a(c(b.type)),1)]),e("td",eL,[e("b",null,a(b.month)+"/"+a(b.dayPerMonth)+"/"+a(b.hour),1)]),e("td",tL,[e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("调试"),onClick:f=>v(b)},a(o(t)("预览")),9,nL),e("button",{class:"cbi-button cbi-button-remove",title:o(t)("删除"),onClick:f=>p(m)},a(o(t)("删除")),9,aL)])]))),256))])])])],64))}}),oL={class:"cbi-section"},lL=["value"],iL=X({__name:"index",setup(s){return B(this,null,function*(){let t,n;const l=x(""),u=()=>B(null,null,function*(){try{const c=yield we.Smart.Log.GET();if(c.data){const{result:r,error:p}=c.data;r&&r.result&&(l.value=r.result),p&&(l.value=p)}}catch(c){l.value=c}});return[t,n]=Ir(()=>u()),yield t,n(),(c,r)=>(i(),d("fieldset",oL,[e("textarea",{value:l.value,disabled:""},null,8,lL)]))})}}),rL=le(iL,[["__scopeId","data-v-a79be366"]]),cL={class:"app-container_status-label_text"},dL={class:"text_status"},uL={class:"text_info"},vL={class:"app-container_status-label_text"},pL={class:"text_info"},hL=X({__name:"item",props:{item:{type:Object,required:!0},transform:{type:Number,default:0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=li(),u=s,c=x(null),r=v=>{const h=v.target,{left:g,top:b}=h.getBoundingClientRect();l.portitemStyle.show=!0,l.portitemStyle.left=g,l.portitemStyle.top=b,l.portitemStyle.portitem=u.item},p=v=>{l.portitemStyle.show=!1};return(v,h)=>(i(),d("div",{class:"app-container_status-label_bg",style:pt(`transform: translateX(${s.transform}px);`),ref_key:"el",ref:c,onMouseenter:r,onMouseleave:p},[s.item.linkState=="DOWN"?(i(),d(V,{key:0},[h[0]||(h[0]=e("div",{class:"app-container_status-label_iconer"},[e("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:v":"https://vecta.io/nano",width:"48",height:"38",viewBox:"0 0 12.7 10.05"},[e("defs",null,[e("filter",{id:"A","color-interpolation-filters":"sRGB"},[e("feColorMatrix",{result:"A",values:"2 -0.5 -0.5 0 0 -0.5 2 -0.5 0 0 -0.5 -0.5 2 0 0 0 0 0 1 0 "}),e("feColorMatrix",{values:"0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"}),e("feColorMatrix",{in:"A",values:"2 -0.5 -0.5 0 0 -0.5 2 -0.5 0 0 -0.5 -0.5 2 0 0 0 0 0 1 0 "})]),e("path",{id:"B",d:"M80.56 75.75h3.91v22.79h-3.91z"})]),e("g",{transform:"translate(0 -286.95)"},[e("rect",{x:".21",y:"287.25",width:"12.33",height:"9.5",ry:".57",fill:"#e6e6e6",stroke:"#e6e6e6","stroke-linejoin":"round","stroke-width":".37","paint-order":"normal"}),e("path",{transform:"matrix(.105 0 0 .0989 -6.0834 280.6)",d:"M73.96 75.66h89.41c2.31 0 4.17 1.86 4.17 4.17v52.65h-21.74v9.41h-8.69v12.59h-36.87v-12.59h-8.69v-9.41H69.79V79.83c0-2.31 1.86-4.17 4.17-4.17z",fill:"#999",filter:"url(#A)",stroke:"#999","stroke-width":"2.5"}),e("g",{transform:"matrix(.1048 0 0 .1048 -6.0999 280.7)",fill:"#fff",filter:"url(#A)",stroke:"#fff"},[e("use",{"xlink:href":"#B"}),e("use",{"xlink:href":"#B",x:"73.04"}),e("use",{"xlink:href":"#B",x:"52.17"}),e("use",{"xlink:href":"#B",x:"41.74"}),e("use",{"xlink:href":"#B",x:"31.3"}),e("use",{"xlink:href":"#B",x:"20.87"}),e("use",{"xlink:href":"#B",x:"10.43"}),e("use",{"xlink:href":"#B",x:"62.61"})]),e("rect",{x:"1.24",y:"294.55",width:"1.6",height:"1.38",ry:".11",fill:"#ccc",stroke:"#ccc","stroke-width":".22","paint-order":"normal"})])])],-1)),e("div",cL,[e("div",dL,a(o(t)("已断开")),1),e("div",uL,a(s.item.name)+" "+a(s.item.interfaceNames?`(${s.item.interfaceNames.join(",").toLocaleUpperCase()})`:""),1)])],64)):(i(),d(V,{key:1},[h[1]||(h[1]=e("div",{class:"app-container_status-label_iconer"},[e("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"48",height:"38",viewBox:"0 0 12.7 10.05","xmlns:v":"https://vecta.io/nano"},[e("defs",null,[e("filter",{id:"A","color-interpolation-filters":"sRGB"},[e("feColorMatrix",{result:"A",values:"2 -0.5 -0.5 0 0 -0.5 2 -0.5 0 0 -0.5 -0.5 2 0 0 0 0 0 1 0 "}),e("feColorMatrix",{values:"0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"}),e("feColorMatrix",{in:"A",values:"2 -0.5 -0.5 0 0 -0.5 2 -0.5 0 0 -0.5 -0.5 2 0 0 0 0 0 1 0 "})]),e("path",{id:"B",d:"M80.56 75.75h3.91v22.79h-3.91z"})]),e("g",{transform:"translate(-.03 -287.07)"},[e("rect",{x:".24",y:"287.36",width:"12.33",height:"9.5",ry:".57",fill:"#e6e6e6",stroke:"#e6e6e6","stroke-linejoin":"round","stroke-width":".37","paint-order":"normal"}),e("path",{transform:"matrix(.105 0 0 .0989 -6.0532 280.72)",d:"M73.96 75.66h89.41c2.31 0 4.17 1.86 4.17 4.17v52.65h-21.74v9.41h-8.69v12.59h-36.87v-12.59h-8.69v-9.41H69.79V79.83c0-2.31 1.86-4.17 4.17-4.17z",fill:"#4d4d4d",filter:"url(#A)",stroke:"#4d4d4d","stroke-width":"2.5"}),e("g",{transform:"matrix(.1048 0 0 .1048 -6.0697 280.81)",fill:"#fff",filter:"url(#A)",stroke:"#fff"},[e("use",{"xlink:href":"#B"}),e("use",{"xlink:href":"#B",x:"73.04"}),e("use",{"xlink:href":"#B",x:"52.17"}),e("use",{"xlink:href":"#B",x:"41.74"}),e("use",{"xlink:href":"#B",x:"31.3"}),e("use",{"xlink:href":"#B",x:"20.87"}),e("use",{"xlink:href":"#B",x:"10.43"}),e("use",{"xlink:href":"#B",x:"62.61"})]),e("rect",{x:"1.27",y:"294.67",width:"1.6",height:"1.38",ry:".11",fill:"#55d400",stroke:"#55d400","stroke-width":".22","paint-order":"normal"})])])],-1)),e("div",vL,[e("div",null,a(s.item.linkSpeed),1),e("div",pL,a(s.item.name)+" "+a(s.item.interfaceNames?`(${s.item.interfaceNames.join(",").toLocaleUpperCase()})`:""),1)])],64))],36))}}),mL=le(hL,[["__scopeId","data-v-73c93936"]]),fL={},bL={t:"1659511092204",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2332","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"200",height:"200"};function gL(s,t){return i(),d("svg",bL,[...t[0]||(t[0]=[e("path",{d:"M514.048 62.464q93.184 0 175.616 35.328t143.872 96.768 96.768 143.872 35.328 175.616q0 94.208-35.328 176.128t-96.768 143.36-143.872 96.768-175.616 35.328q-94.208 0-176.64-35.328t-143.872-96.768-96.768-143.36-35.328-176.128q0-93.184 35.328-175.616t96.768-143.872 143.872-96.768 176.64-35.328zM772.096 576.512q26.624 0 45.056-18.944t18.432-45.568-18.432-45.056-45.056-18.432l-192.512 0 0-192.512q0-26.624-18.944-45.568t-45.568-18.944-45.056 18.944-18.432 45.568l0 192.512-192.512 0q-26.624 0-45.056 18.432t-18.432 45.056 18.432 45.568 45.056 18.944l192.512 0 0 191.488q0 26.624 18.432 45.568t45.056 18.944 45.568-18.944 18.944-45.568l0-191.488 192.512 0z","p-id":"2333"},null,-1)])])}const Hl=le(fL,[["render",gL]]),_L={class:"actioner-dns_header"},yL={key:0},kL={key:1},wL={class:"actioner-dns_body"},$L={class:"label-item"},CL={class:"label-item_key"},SL={class:"label-item_value"},xL={class:"label-item"},PL={class:"label-item_key"},TL={class:"label-item_value"},ML={value:"dhcp"},EL={key:0,value:"pppoe"},IL={value:"static"},DL={class:"actioner-dns_footer"},LL=["disabled"],AL=X({__name:"index",props:{Close:{type:Function,required:!0},e:{type:String,required:!0},name:{type:String,required:!0},inface:{type:Object,required:!0},next:{type:Function,required:!0}},setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=s,u=x(!1),c=x(l.inface),r=()=>B(null,null,function*(){ne.Loading(t("配置中...")).Close(),l.next(c.value),p()}),p=()=>{l.Close&&l.Close()};return(v,h)=>(i(),Y(Nt,{Close:s.Close,type:1},{default:pe(()=>[e("form",{class:"actioner-dns",onSubmit:Ge(r,["prevent"])},[e("div",_L,[s.name=="wan"?(i(),d("span",yL,a(s.e=="edit"?o(t)("编辑WAN"):o(t)("添加WAN")),1)):(i(),d("span",kL,a(s.e=="edit"?o(t)("编辑LAN"):o(t)("添加LAN")),1))]),e("div",wL,[e("div",$L,[e("div",CL,[e("span",null,a(o(t)("名称")),1)]),e("div",SL,[e("span",null,a(c.value.name.toLocaleUpperCase()),1)])]),e("div",xL,[e("div",PL,[e("span",null,a(o(t)("协议(网络获取方式)")),1)]),e("div",TL,[W(e("select",{"onUpdate:modelValue":h[0]||(h[0]=g=>c.value.proto=g)},[e("option",ML,a(o(t)("DHCP客户端")),1),s.name=="wan"?(i(),d("option",EL,"PPPoE")):T("",!0),e("option",IL,a(o(t)("静态地址")),1)],512),[[Be,c.value.proto]])])])]),e("div",DL,[e("button",{class:"cbi-button cbi-button-apply app-btn",disabled:u.value},a(o(t)("保存")),9,LL),e("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:p},a(o(t)("取消")),1)])],32)]),_:1},8,["Close"]))}}),NL=le(AL,[["__scopeId","data-v-4db2be2b"]]),Gl=s=>{const t=document.createElement("div");document.body.appendChild(t);const n=cn(NL,Ne(ye({},s),{Close:()=>{l()}}));n.mount(t);const l=()=>{n.unmount(),t.remove()}},OL={id:"page"},zL={name:"content"},qL={class:"container"},RL={class:"table-wrapper"},VL={class:"table-header"},BL={class:"interface-device-flex"},UL={class:"table-body"},FL=["name","value","onUpdate:modelValue","onInput"],HL={class:"table-cell name-col"},GL={class:"table-cell action-col"},jL=["title","onClick"],WL=["onClick"],JL={class:"table-cell action-col"},KL=["name","value","onUpdate:modelValue","onInput"],ZL={class:"table-cell name-col"},YL={class:"table-cell action-col"},QL=["title","onClick"],XL=["onClick"],eA={class:"table-cell action-col"},tA={class:"cbi-page-actions control-group"},nA=["value","disabled"],aA=X({__name:"index",setup(s){const{$gettext:t,$ngettext:n}=Ae(),l=Xe({devices:[],interfaces:[]}),u=x(!1),c=Xe({lan:[],wan:[]});we.Network.GetInterfaceConfig.GET().then(f=>{if(f.data){const{result:k}=f.data;if(k){l.devices=k.devices||[],l.interfaces=k.interfaces||[];for(let $=0;${f=="wan"?c.wan.splice(k,1):f=="lan"&&c.lan.splice(k,1)},v=(f,k)=>{if(k==null){let $=f=="wan"?c.wan.length:c.lan.length;$==6&&f=="wan"&&$++,Gl({e:"add",name:f,inface:{name:f+`${$}`,proto:"dhcp",ipv4Addr:"",ipv6Addr:"",portName:"",deviceNames:[],ports:[],firewallType:f},next:w=>{f=="wan"?c.wan.push(w):c.lan.push(w),ne.Message(t("请在保存以后前往'网络-接口'页面配置接口详细参数"))}})}else Gl({e:"edit",name:f,inface:f=="wan"?c.wan[k]:c.lan[k],next:$=>{f=="wan"?c.wan[k]=$:c.lan[k]=$}})},h=(f,k)=>f?f.indexOf(k):-1,g=(f,k)=>{const w=f.target.value;for(let C=0;C{const w=f.target.value;for(let S=0;SB(null,null,function*(){u.value=!0;const f=[];for(let $=0;$(i(),d("div",OL,[e("h2",zL,a(o(t)("网口配置")),1),e("div",qL,[e("div",RL,[e("div",VL,[(i(!0),d(V,null,oe(l.devices,$=>(i(),d("div",{class:"header-cell device-col",key:$.name},[e("div",BL,[G(mL,{item:$},null,8,["item"])])]))),128)),k[2]||(k[2]=e("div",{class:"header-cell spacer-col"},null,-1)),k[3]||(k[3]=e("div",{class:"header-cell"},null,-1)),k[4]||(k[4]=e("div",{class:"header-cell action-col"},null,-1))]),e("div",UL,[(i(!0),d(V,null,oe(c.lan,($,w)=>(i(),d("div",{key:w,class:"table-row"},[(i(!0),d(V,null,oe(l.devices,S=>(i(),d("div",{class:"table-cell device-col",key:S.name},[W(e("input",{type:"checkbox",name:S.name,value:S.name,"onUpdate:modelValue":C=>$.deviceNames=C,onInput:C=>g(C,w)},null,40,FL),[[gt,$.deviceNames]])]))),128)),k[5]||(k[5]=e("div",{class:"table-cell spacer-col"},null,-1)),e("div",HL,[e("b",null,a($.name),1)]),e("div",GL,[e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("编辑"),onClick:S=>v("lan",w)},a(o(t)("编辑")),9,jL),w!==0?(i(),d("button",{key:0,class:"cbi-button cbi-button-remove",onClick:S=>p("lan",w)},a(o(t)("删除")),9,WL)):T("",!0)])]))),128)),e("div",{class:"table-row add-row",onClick:k[0]||(k[0]=$=>v("lan"))},[(i(!0),d(V,null,oe(l.devices,$=>(i(),d("div",{class:"table-cell device-col",key:$.name}))),128)),k[6]||(k[6]=e("div",{class:"table-cell spacer-col"},null,-1)),k[7]||(k[7]=e("div",{class:"table-cell name-col"},null,-1)),e("div",JL,[G(Hl,{class:"icon"})])]),(i(!0),d(V,null,oe(c.wan,($,w)=>(i(),d("div",{key:w,class:"table-row"},[(i(!0),d(V,null,oe(l.devices,S=>(i(),d("div",{class:"table-cell device-col",key:S.name},[W(e("input",{type:"checkbox",name:S.name,value:S.name,"onUpdate:modelValue":C=>$.deviceNames=C,onInput:C=>b(C,w)},null,40,KL),[[gt,$.deviceNames]])]))),128)),k[8]||(k[8]=e("div",{class:"table-cell spacer-col"},null,-1)),e("div",ZL,[e("b",null,a($.name),1)]),e("div",YL,[e("button",{class:"btn cbi-button cbi-button-apply",title:o(t)("编辑"),onClick:S=>v("wan",w)},a(o(t)("编辑")),9,QL),w!==0?(i(),d("button",{key:0,class:"cbi-button cbi-button-remove",onClick:S=>p("wan",w)},a(o(t)("删除")),9,XL)):T("",!0)])]))),128)),e("div",{class:"table-row add-row",onClick:k[1]||(k[1]=$=>v("wan"))},[(i(!0),d(V,null,oe(l.devices,$=>(i(),d("div",{class:"table-cell device-col",key:$.name}))),128)),k[9]||(k[9]=e("div",{class:"table-cell spacer-col"},null,-1)),k[10]||(k[10]=e("div",{class:"table-cell name-col"},null,-1)),e("div",eA,[G(Hl,{class:"icon"})])])])])]),e("div",tA,[e("input",{class:"btn cbi-button cbi-button-apply",type:"button",value:o(t)("保存并应用"),onClick:m,disabled:u.value},null,8,nA)])]))}}),sA=le(aA,[["__scopeId","data-v-b7e9dfd4"]]),oA=s=>`${s.networkId||""}\0${s.deviceId}`,Ri=Symbol("lan-context"),Vi=Symbol("lan-client"),Bi=()=>ba(Ri,{networks:[]}),xn=()=>ba(Vi,oi),Ui=X({__name:"lanScope",props:{networkId:{},networks:{},legacy:{type:Boolean}},setup(s){const t=s;return ma(Vi,Gs(t.legacy?void 0:t.networkId)),ma(Ri,{networkId:t.networkId,networks:t.networks,legacy:t.legacy}),(n,l)=>Ct(n.$slots,"default")}}),lA=["role"],iA={class:"page-state__icon","aria-hidden":"true"},rA={key:0,class:"page-state__spinner"},cA={key:1},dA={key:2},uA={key:3},vA={class:"page-state__body"},pA={key:0},hA=X({__name:"pageState",props:{kind:{default:"info"},title:{},description:{default:""},actionLabel:{default:""}},emits:["action"],setup(s){return(t,n)=>(i(),d("div",{class:_e(["page-state",`page-state--${s.kind}`]),role:s.kind==="error"?"alert":"status"},[e("div",iA,[s.kind==="loading"?(i(),d("span",rA)):s.kind==="error"?(i(),d("span",cA,"!")):s.kind==="unavailable"?(i(),d("span",dA,"–")):(i(),d("span",uA,"○"))]),e("div",vA,[e("strong",null,a(s.title),1),s.description?(i(),d("span",pA,a(s.description),1)):T("",!0)]),s.actionLabel?(i(),d("button",{key:0,type:"button",onClick:n[0]||(n[0]=l=>t.$emit("action"))},a(s.actionLabel),1)):T("",!0)],10,lA))}}),yt=le(hA,[["__scopeId","data-v-60af56b6"]]),mA=X({__name:"loadError",props:{message:{},retry:{type:Boolean,default:!0}},emits:["retry"],setup(s){const{$gettext:t}=Ae();return(n,l)=>(i(),Y(yt,{kind:"error",title:o(t)("加载失败"),description:s.message,"action-label":s.retry?o(t)("重新加载"):"",onAction:l[0]||(l[0]=u=>n.$emit("retry"))},null,8,["title","description","action-label"]))}}),fA=["computer","phone","tablet","tv","network","smart-home","camera","gaming","storage","printer","wearable"],bA=s=>s.trim(),gA=s=>{const t=bA(s);return Array.from(t).length<=64&&new TextEncoder().encode(t).length<=256&&!/[\u0000-\u001f\u007f]/.test(t)},_A=(s,t)=>{var n,l;return((l=(n=s==null?void 0:s.capabilities)==null?void 0:n[t])==null?void 0:l.state)==="available"},yA=(s,t)=>{var l;const n=(l=s==null?void 0:s.capabilities)==null?void 0:l[t];return!n||n.state==="available"?"":n.reason==="selected_provider_unavailable"?"已安装限速服务,但当前执行方式不可用;请到局域网设置选择并预览。":n.reason==="dependency_not_installed"||n.state==="not_installed"?"所需组件尚未安装":n.state==="disabled"?"请先在全局设置中启用该能力":n.reason||"当前暂不可用"},kA=s=>{const t=[];return s.static.enabled&&t.push("static"),s.access.networkAccess?s.speed.enabled&&t.push("limited"):t.push("blocked"),t},Fi=s=>String(s||"").trim().toLowerCase(),wA=s=>{const t=Fi(s);return t===""||/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(t)},Ts=(s,t="")=>({dependency_not_installed:"所需组件尚未安装",conflict:"该设置与现有规则冲突",validation_failed:"请检查填写内容",apply_failed:"应用失败,原设置已恢复",rolled_back:"应用失败,原设置已恢复,可以重试",recovery_required:"自动恢复未完成,请按提示处理",transaction_unavailable:"暂时无法安全保存,请稍后重试",effect_record_failed:"配置已写入,但状态记录需要恢复",address_conflict:"该地址已分配给其他设备,请选择一个未占用地址后重试",gateway_outside_lan:"该网关不在当前局域网,请检查网关 IP 或选择其他路线",gateway_unreachable:"暂时无法连接该网关,请确认设备已开机并接入当前局域网后重试"})[s]||t||"保存失败",$A=s=>({pending_renewal:"等待设备重新获取地址",lease_observed_unverifiable:"已观察到新租约,终端网关与 DNS 无法验证",unverifiable:"服务器配置可读,终端效果无法验证",observation_error:"暂时无法读取续租状态",failed:"配置应用失败"})[s]||"状态未知",CA={class:"profile-editor"},SA={class:"profile-preview"},xA={key:0},PA=["placeholder"],TA={key:0,class:"scope-note"},MA={class:"two-columns"},EA=["placeholder"],IA=["value"],DA={class:"auto-icon"},LA={class:"auto-icon"},AA=["aria-label"],NA=["title"],OA=["value"],zA={class:"actions"},qA=["disabled"],RA=["disabled"],VA=X({__name:"deviceProfileEditor",props:{device:{}},emits:["saved"],setup(s,{emit:t}){const n=Ne(ye({},we),{DeviceMangement:xn()}),l=s,u=t,{$gettext:c}=Ae(),r=fA,p=x(),v=x(!0),h=x(!1),g=x(""),b=x(""),m=x("success"),f=x(""),k=x(""),$=x("computer"),w=x("auto"),S=x("computer"),C=x("persistent"),y=R(()=>!gA(f.value)||Array.from(k.value).length>64),P=R(()=>{var Q;return k.value||((Q=p.value)==null?void 0:Q.classification.brand)||""}),_=R(()=>{var ce,ve;const Q=(ve=(ce=p.value)==null?void 0:ce.icon)==null?void 0:ve.assetKey;return po(Q)?Q:po($.value)?$.value:"computer"}),D=R(()=>w.value==="manual"?S.value:_.value),E=Q=>c(Tl[Q]||Tl.computer),A=Q=>({phone:c("手机"),computer:c("电脑"),tablet:c("平板"),tv:c("电视与影音"),network:c("网络设备"),"smart-home":c("智能家居"),camera:c("摄像头"),gaming:c("游戏设备"),storage:c("存储与服务器"),printer:c("打印机"),wearable:c("穿戴设备"),unknown:c("未知设备")})[Q],U=Q=>({desktop:"computer",laptop:"computer","smart-speaker":"smart-home","smart-bulb":"smart-home",thermostat:"smart-home",sensor:"smart-home","door-lock":"smart-home","robot-vacuum":"smart-home","air-conditioner":"smart-home",projector:"tv","set-top-box":"tv","game-console":"gaming","handheld-game":"gaming","home-server":"storage","network-switch":"network","access-point":"network","network-bridge":"network","e-reader":"tablet"})[Q]||Q,q=Q=>{if(Q.error)throw Object.assign(new Error(Q.error.message),{code:Q.error.code});if(!Q.profile)throw new Error(c("设备资料不可用"));p.value=Q.profile,f.value=Q.profile.alias||"",k.value=Q.profile.manualBrand||"",$.value=Q.profile.manualCategory||Q.profile.classification.category,w.value=Q.profile.icon.mode;const ce=Q.profile.icon.preferenceKey||Q.profile.icon.assetKey;S.value=po(ce)?ce:"computer",C.value=Q.profile.scope,u("saved",{alias:f.value,classification:Q.profile.classification,iconKey:Q.profile.icon.assetKey})},z=()=>B(null,null,function*(){var Q;v.value=!0,g.value="",b.value="";try{q((Q=(yield n.DeviceMangement.deviceProfileV2.GET(l.device.deviceId)).data)==null?void 0:Q.result)}catch(ce){g.value=(ce==null?void 0:ce.message)||c("读取设备资料失败")}finally{v.value=!1}}),N=(Q,ce)=>B(null,null,function*(){var ve;h.value=!0,b.value="";try{const de=(ve=(yield n.DeviceMangement.deviceProfileV2.POST(ye({deviceId:l.device.deviceId,idempotencyKey:`${l.device.deviceId}:profile:${Date.now()}`},Q))).data)==null?void 0:ve.result;q(de),m.value="success",b.value=de.changed?ce:c("设置没有变化")}catch(O){m.value="error",b.value=O!=null&&O.code?c(Ts(O.code,O==null?void 0:O.message)):(O==null?void 0:O.message)||c("保存失败,请稍后重试")}finally{h.value=!1}}),F=()=>{var Q,ce;y.value||N(ye(Ne(ye({action:"patch",alias:f.value.trim(),brand:k.value.trim()},(Q=p.value)!=null&&Q.manualCategory||$.value!==((ce=p.value)==null?void 0:ce.classification.category)?{category:$.value}:{}),{iconMode:w.value}),w.value==="manual"?{iconKey:S.value}:{}),c("设备资料已更新"))},Z=()=>N({action:"reset"},c("已恢复系统自动推荐"));return We(()=>l.device.deviceId,z,{immediate:!0}),(Q,ce)=>{var ve;return i(),d("div",CA,[v.value?(i(),Y(yt,{key:0,kind:"loading",title:o(c)("正在读取设备资料")},null,8,["title"])):g.value?(i(),Y(yt,{key:1,kind:"error",title:o(c)("设备资料读取失败"),description:g.value,"action-label":o(c)("重新加载"),onAction:z},null,8,["title","description","action-label"])):p.value?(i(),d(V,{key:2},[e("div",SA,[G(Da,{scene:$.value,"icon-key":D.value,label:E(D.value)},null,8,["scene","icon-key","label"]),e("div",null,[e("strong",null,a(f.value||s.device.hostname||o(c)("未命名设备")),1),e("span",null,[P.value?(i(),d("b",xA,a(P.value),1)):T("",!0),P.value?(i(),d(V,{key:1},[ue(" · ")],64)):T("",!0),ue(a(A($.value)),1)]),e("small",null,a(w.value==="manual"?o(c)("已选择自定义图标"):o(c)("图标由品牌和类型自动推荐")),1)])]),e("label",null,[e("span",null,a(o(c)("设备备注名")),1),W(e("input",{"onUpdate:modelValue":ce[0]||(ce[0]=O=>f.value=O),maxlength:"64",placeholder:o(c)("例如:客厅电视")},null,8,PA),[[Oe,f.value]])]),e("small",null,a(o(c)("支持中文,只用于设备管理显示,不会写入网络主机名。")),1),C.value==="boot"?(i(),d("small",TA,a(o(c)("该设备身份仅本次开机有效,重启后资料可能需要重新确认。")),1)):T("",!0),e("div",MA,[e("label",null,[e("span",null,a(o(c)("品牌(可选)")),1),W(e("input",{"onUpdate:modelValue":ce[1]||(ce[1]=O=>k.value=O),maxlength:"64",placeholder:((ve=p.value.classification)==null?void 0:ve.brand)||o(c)("例如:ASUS")},null,8,EA),[[Oe,k.value,void 0,{trim:!0}]])]),e("label",null,[e("span",null,a(o(c)("设备类型")),1),W(e("select",{"onUpdate:modelValue":ce[2]||(ce[2]=O=>$.value=O)},[(i(!0),d(V,null,oe(o(r),O=>(i(),d("option",{key:O,value:O},a(A(O)),9,IA))),128))],512),[[Be,$.value]])])]),e("fieldset",null,[e("legend",null,a(o(c)("设备图标")),1),e("label",DA,[W(e("input",{"onUpdate:modelValue":ce[3]||(ce[3]=O=>w.value=O),type:"radio",value:"auto"},null,512),[[Mt,w.value]]),ue(a(o(c)("自动推荐"))+" ",1),e("small",null,a(o(c)("优先依据品牌,其次依据设备类型")),1)]),e("label",LA,[W(e("input",{"onUpdate:modelValue":ce[4]||(ce[4]=O=>w.value=O),type:"radio",value:"manual"},null,512),[[Mt,w.value]]),ue(a(o(c)("自行选择")),1)]),w.value==="manual"?(i(),d("div",{key:0,class:"icon-grid",role:"radiogroup","aria-label":o(c)("选择设备图标")},[(i(!0),d(V,null,oe(o(fi),O=>(i(),d("label",{key:O,class:_e({selected:S.value===O}),title:E(O)},[W(e("input",{"onUpdate:modelValue":ce[5]||(ce[5]=de=>S.value=de),type:"radio",name:"device-icon",value:O},null,8,OA),[[Mt,S.value]]),G(Da,{scene:U(O),"icon-key":O,label:E(O)},null,8,["scene","icon-key","label"]),e("span",null,a(E(O)),1)],10,NA))),128))],8,AA)):T("",!0)]),b.value?(i(),d("p",{key:1,class:_e(["feedback",m.value]),role:"status"},a(b.value),3)):T("",!0),e("div",zA,[e("button",{type:"button",class:"secondary",disabled:h.value,onClick:Z},a(o(c)("恢复全部自动推荐")),9,qA),e("button",{type:"button",disabled:h.value||y.value,onClick:F},a(h.value?o(c)("正在保存…"):o(c)("保存设备资料")),9,RA)])],64)):T("",!0)])}}}),BA=le(VA,[["__scopeId","data-v-a7373828"]]),Hi=[{id:"quickstart-native",key:"device_speed_limit",pkg:"quickstart-netpolicy",provider:"quickstart-native",zh:"智能设备限速",en:"Smart device limits",descriptionZh:"按设备身份管理 IPv4 与 IPv6 限速;是否就绪以组件检查为准。",descriptionEn:"Device-based IPv4 and IPv6 limits; readiness is checked separately."},{id:"eqos",key:"compat_speed_limit",pkg:"luci-app-eqos",provider:"eqos",zh:"兼容限速",en:"Compatible limits",descriptionZh:"按固定 IPv4 执行,适合使用现有兼容限速设置。",descriptionEn:"Limits by stable IPv4 address using the existing compatible settings."},{id:"floatip",key:"floating_gateway",pkg:"app-meta-floatip",provider:"",zh:"浮动网关",en:"Failover gateway",descriptionZh:"提供主备网关入口;节点职责、虚拟地址与实际持有者在设置中确认。",descriptionEn:"A shared gateway entry; configure node roles and verify the virtual IP holder in settings."}];class Bt extends Error{constructor(n){super(n);Nn(this,"code");this.code=n}}const Xn=s=>s&&typeof s=="object"&&!Array.isArray(s),Gi=["available","disabled","not_installed","unsupported","error"];function UA(s){if(!Xn(s)||s.schemaVersion!==1||typeof s.currentProvider!="string"||!Array.isArray(s.components)||s.components.length!==3)throw new Bt("invalid");for(const t of Hi){const n=s.components.filter(u=>(u==null?void 0:u.id)===t.id),l=n[0];if(n.length!==1||l.capabilityKey!==t.key||l.package!==t.pkg||l.provider!==t.provider&&!(t.provider===""&&l.provider===void 0)||typeof l.selected!="boolean"||!Xn(l.status)||!Gi.includes(l.status.state)||l.operation!==void 0&&!["running","pending"].includes(l.operation))throw new Bt("invalid");if(l.status.actions!==void 0&&(!Array.isArray(l.status.actions)||l.status.actions.some(u=>!Xn(u)||!["install","enable","retry"].includes(u.kind))))throw new Bt("invalid")}return s}function Co(s){var n;if(s.operation)return;const t=s.status.state==="not_installed"?"install":s.id==="quickstart-native"&&s.status.state==="disabled"?"enable":void 0;return t&&((n=s.status.actions)!=null&&n.some(l=>l.kind===t))?t:void 0}function FA(s=fetch,t){function n(u,c,r=!1,p){return B(this,null,function*(){const v=new AbortController,h=setTimeout(()=>v.abort(),r?45e3:1e4),g=()=>v.abort();p!=null&&p.aborted&&g(),p==null||p.addEventListener("abort",g,{once:!0});try{const b=yield s("/cgi-bin/luci/istore/lanctrl/v2/"+u+(t?"?network="+encodeURIComponent(t):""),{method:c?"POST":"GET",credentials:"same-origin",cache:"no-store",signal:v.signal,headers:c?{"Content-Type":"application/json"}:void 0,body:c?JSON.stringify(c):void 0});if(!b.ok)throw new Bt(b.status===401||b.status===403?"forbidden":b.status===404?"unsupported":"unavailable");const m=yield b.text();if(m.length>65536)throw new Bt("invalid");let f;try{f=JSON.parse(m)}catch(k){throw new Bt("invalid")}if(!Xn(f)||f.error||f.success!==void 0&&f.success!==0)throw new Bt((f==null?void 0:f.success)===-1001?"forbidden":"unavailable");if(!Xn(f.result))throw new Bt("invalid");return f.result}catch(b){throw r?new Bt(b instanceof Bt&&b.code==="forbidden"?"forbidden":"uncertain"):b instanceof Bt?b:new Bt("unavailable")}finally{clearTimeout(h),p==null||p.removeEventListener("abort",g)}})}return{read(u){return B(this,null,function*(){return UA(yield n("feature-components/",void 0,!1,u))})},plan(u,c,r){return B(this,null,function*(){const v=(yield n("capability-action/plan/",{capabilityKey:u.capabilityKey,action:c,draftToken:"components:"+u.id},!1,r)).plan;if(!Xn(v)||v.capabilityKey!==u.capabilityKey||v.action!==c||typeof v.canApply!="boolean"||v.requiresConfirmation!==!0)throw new Bt("invalid");if(v.error)throw new Bt(v.error.code||"unavailable");if(!Xn(v.current)||v.current.state!==(c==="install"?"not_installed":"disabled")||v.target!==(c==="install"?u.package:u.capabilityKey)||!v.canApply||c==="install"&&(!Number.isFinite(v.requiredFreeBytes)||v.requiredFreeBytes<0||!Number.isFinite(v.availableFreeBytes)||v.availableFreeByteswindow.vue_lang==="en"?re:j,c=Bi(),r=FA(fetch,c.legacy?void 0:c.networkId),p=x(),v=x(!1),h=x(""),g=x(""),b=x(""),m=x(),f=x(),k=x();let $=!1,w=0,S=0,C=!1,y,P,_=null,D="",E=[];const A=j=>Hi.find(re=>re.id===j),U=j=>{const re=A(j);return u(re.zh,re.en)},q=j=>{const re=A(j);return u(re.descriptionZh,re.descriptionEn)},z=j=>({dependency_not_installed:u("尚未安装此组件。","This component is not installed."),service_stopped:u("组件已安装,尚未运行。","Installed; the component is not running."),engine_unavailable:u("服务未就绪,请检查运行情况。","The service is not ready; check its status."),interface_not_supported:u("组件版本与当前接口不兼容。","The component version is incompatible."),kernel_not_supported:u("当前系统内核不支持。","The current kernel is unsupported."),status_unavailable:u("暂时无法确认状态,请重新检查。","Status is unavailable; check again.")})[j]||u("当前不可用,请检查组件或固件。","Unavailable; check the component and firmware."),N=j=>j.operation?u(j.operation==="running"?"正在处理":"结果待确认",j.operation==="running"?"Working":"Outcome unconfirmed"):{available:j.id==="floatip"?u("已启用","Enabled"):u("已就绪","Ready"),disabled:u("未启用","Not enabled"),not_installed:u("未安装","Not installed"),unsupported:u("不兼容","Unsupported"),error:u("需要检查","Needs attention")}[j.status.state],F=j=>{const re=j instanceof Bt?j.code:"unavailable";return{forbidden:u("登录已失效或没有操作权限,请重新登录。","Session expired or access denied. Sign in again."),unsupported:u("当前后端不支持组件管理,请更新后端后重试。","This backend does not support component management. Update it and retry."),invalid:u("组件信息不完整,未执行操作,请重新检查。","Component information is invalid. Check again before proceeding."),uncertain:u("操作结果尚未确认。请先检查状态,不要重复安装或启用。","Outcome unconfirmed. Check status before installing or enabling again."),component_busy:u("另一个组件操作正在进行,请检查状态。","Another component action is running. Check its status."),component_pending:u("组件操作结果待确认,请检查状态。","Component outcome is pending. Check its status."),install_pending:u("安装结果待确认,请检查状态。","Installation outcome is pending. Check its status."),enable_pending:u("启用结果待确认,请检查状态。","Enabling outcome is pending. Check its status."),insufficient_space:u("可用空间不足,无法安装组件。","There is not enough free storage to install this component."),conflict:u("组件状态已变化,请重新检查后确认。","Component state changed. Check it again before confirming.")}[re]||u("操作未完成,请检查软件源、组件和固件后重试。","The action could not finish. Check sources, component and firmware, then retry.")};function Z(j=!1){return B(this,null,function*(){if(v.value)return;const re=++w;y=new AbortController,v.value=!0,h.value="";try{const $e=yield r.read(y.signal);if($||re!==w)return;p.value=$e,j&&l("updated")}catch($e){!$&&re===w&&(h.value=F($e))}finally{!$&&re===w&&(v.value=!1)}})}function Q(j){return B(this,null,function*(){if(b.value||v.value||h.value)return;const re=Co(j);if(!re)return;const $e=++S;P=new AbortController,b.value="plan",m.value=void 0,g.value="";try{const qe=yield r.plan(j,re,P.signal);!$&&n.open&&$e===S&&(m.value=qe)}catch(qe){!$&&$e===S&&(g.value=F(qe),Z())}finally{$||(b.value="")}})}function ce(){return B(this,null,function*(){if(!m.value||b.value)return;const j=m.value;b.value=j.action,g.value="";try{yield r.apply(j),$||(g.value=u("操作已完成,请以重新检查的组件状态为准。","Action finished. Check the updated component state."))}catch(re){$||(g.value=F(re))}finally{$||(b.value="",m.value=void 0,yield Z(!0))}})}const ve=j=>n.allowConfigure!==!1&&!j.operation&&(j.status.state==="available"||j.id==="floatip"&&j.status.state==="disabled");function O(j){l("configure",j.id),de()}function de(){S++,P==null||P.abort(),y==null||y.abort(),w++,v.value=!1,m.value=void 0,l("close")}function K(j){if(n.open){if(j.key==="Escape")j.preventDefault(),j.stopImmediatePropagation(),de();else if(j.key==="Tab"){const re=Array.from(k.value.querySelectorAll('button:not(:disabled),[href],input,select,[tabindex="0"]')).filter(De=>De.getClientRects().length>0&&getComputedStyle(De).visibility!=="hidden"),$e=re[0],qe=re[re.length-1];if(!$e)return;j.shiftKey&&(document.activeElement===$e||document.activeElement===k.value)?(j.preventDefault(),qe.focus()):!j.shiftKey&&document.activeElement===qe&&(j.preventDefault(),$e.focus())}}}function xe(){if(C){C=!1,document.removeEventListener("keydown",K,!0);for(const j of E)j.value?j.node.setAttribute("inert",""):j.node.removeAttribute("inert");E=[],document.body.style.overflow=D,_!=null&&_.isConnected&&_.focus({preventScroll:!0})}}return We(b,j=>l("busy",!!j)),We(()=>n.open,j=>B(null,null,function*(){var $e,qe;if(!j){xe();return}if(C=!0,_=document.activeElement,D=document.body.style.overflow,document.body.style.overflow="hidden",document.addEventListener("keydown",K,!0),yield ot(),$||!n.open)return;let re=f.value;for(;re&&re.parentElement;){for(const De of Array.from(re.parentElement.children))De!==re&&De instanceof HTMLElement&&!["SCRIPT","STYLE"].includes(De.tagName)&&(E.push({node:De,value:De.hasAttribute("inert")}),De.setAttribute("inert",""));if(re.parentElement===document.body)break;re=re.parentElement}if(($e=k.value)==null||$e.focus({preventScroll:!0}),yield Z(),yield ot(),!$&&n.open&&n.focusId){const De=(qe=k.value)==null?void 0:qe.querySelector('[data-feature-component="'+n.focusId+'"]');De==null||De.focus({preventScroll:!0}),De==null||De.scrollIntoView({block:"nearest"})}}),{immediate:!0}),ga(()=>{$=!0,w++,y==null||y.abort(),P==null||P.abort(),n.open&&xe()}),(j,re)=>(i(),Y(Fo,{to:"body"},[W(e("div",{ref_key:"overlay",ref:f,class:"feature-overlay device-feature-surface",onClick:Ge(de,["self"]),"data-feature-overlay":""},[e("section",{ref_key:"panel",ref:k,class:"feature-drawer",role:"dialog","aria-modal":"true","aria-label":u("功能组件","Feature components"),tabindex:"-1","data-feature-components":""},[e("div",GA,[e("div",null,[e("h2",null,a(u("功能组件","Feature components")),1),e("p",null,a(u("按需准备组件,再选择需要的功能。","Prepare components, then choose how to use them.")),1)]),e("button",{class:"feature-close",type:"button",onClick:de,"aria-label":u("关闭功能组件","Close feature components"),"data-close-components":""},"×",8,jA)]),e("div",WA,[e("span",null,a(u("安装与启用不会自动切换当前限速方式。","Installing or enabling does not switch the selected limit mode.")),1),e("button",{type:"button",disabled:v.value,onClick:Z,"data-check-components":""},a(v.value?u("正在检查…","Checking…"):u("重新检查","Check again")),9,JA)]),g.value?(i(),d("p",KA,[e("span",null,a(g.value),1),e("button",{type:"button",onClick:re[0]||(re[0]=$e=>g.value=""),"aria-label":u("关闭提示","Dismiss message")},"×",8,ZA)])):T("",!0),h.value?(i(),d("p",YA,a(h.value),1)):T("",!0),v.value&&!p.value?(i(),d("p",QA,a(u("正在读取组件状态…","Reading component status…")),1)):T("",!0),p.value?(i(),d("div",{key:3,class:"feature-list","aria-busy":v.value},[(i(!0),d(V,null,oe(p.value.components,$e=>{var qe,De;return i(),d("article",{key:$e.id,class:_e(["feature-item",{target:s.focusId===$e.id}]),"data-feature-component":$e.id,tabindex:"-1"},[e("div",tN,[e("div",null,[e("h3",null,[G(Qe,{name:$e.id==="floatip"?"network":"activity"},null,8,["name"]),ue(a(U($e.id)),1)]),e("div",nN,[$e.id==="quickstart-native"?(i(),d("span",aN,a(u("推荐","Recommended")),1)):T("",!0),$e.selected?(i(),d("span",sN,a(u("当前使用","Currently selected")),1)):T("",!0)])]),e("span",{class:_e(["feature-state",$e.status.state])},a(N($e)),3)]),e("p",null,a(q($e.id)),1),$e.status.reason?(i(),d("p",oN,a(z($e.status.reason)),1)):T("",!0),e("div",lN,[o(Co)($e)?(i(),d("button",{key:0,class:"primary",type:"button",disabled:v.value||!!b.value||!!h.value,onClick:Ke=>Q($e),"data-prepare-component":$e.id},a(o(Co)($e)==="enable"?u("查看并启用","Review and enable"):u("查看并安装","Review and install")),9,iN)):$e.operation?(i(),d("button",{key:1,type:"button",disabled:v.value,onClick:Z},a(u("检查状态","Check status")),9,rN)):T("",!0),ve($e)?(i(),d("button",{key:2,type:"button",disabled:!!b.value||v.value||!!h.value,onClick:Ke=>O($e),"data-configure-component":$e.id},a($e.provider&&!$e.selected?u("预览切换","Review switch"):u("查看设置","View settings")),9,cN)):T("",!0)]),m.value&&m.value.capabilityKey===$e.capabilityKey?(i(),d("section",{key:1,class:"feature-confirm","aria-label":u("确认组件操作","Confirm component action"),"data-component-confirm":""},[e("h4",null,a(m.value.action==="install"?u("安装组件","Install component"):u("启用组件","Enable component")),1),e("dl",null,[e("div",null,[e("dt",null,a(u("组件","Component")),1),e("dd",null,a($e.package),1)]),m.value.action==="install"?(i(),d("div",uN,[e("dt",null,a(u("最低可用空间","Minimum free space")),1),e("dd",null,a(Math.ceil((m.value.requiredFreeBytes||0)/1048576))+" MB",1)])):T("",!0)]),e("p",null,a(m.value.action==="install"?u("安装会更新软件源,包脚本可能启动组件服务。当前执行方式和未提交设置会保留。","Installation updates package sources; package scripts may start the component. The selected mode and unsaved settings are retained."):u("将启动组件并设置开机启用,可能恢复该组件已有规则。当前限速方式的切换仍需另行确认。","Starts the component and enables it at boot; existing component rules may resume. Switching the selected limit mode needs a separate confirmation.")),1),m.value.operationScope==="system"||(((qe=m.value.affectedNetworks)==null?void 0:qe.length)||0)>1?(i(),d("p",vN,a(u("此操作影响局域网:","Affected LANs: "))+a(((De=m.value.affectedNetworks)==null?void 0:De.join(", "))||u("全部局域网","All LANs")),1)):T("",!0),e("div",pN,[e("button",{type:"button",disabled:!!b.value,onClick:re[1]||(re[1]=Ke=>m.value=void 0)},a(u("取消","Cancel")),9,hN),e("button",{class:"primary",type:"button",disabled:!!b.value,onClick:ce,"data-confirm-component":""},a(b.value?u("正在处理…","Working…"):m.value.action==="install"?u("确认安装","Confirm installation"):u("确认启用","Confirm enabling")),9,mN)])],8,dN)):T("",!0)],10,eN)}),128))],8,XA)):T("",!0),b.value?(i(),d("p",fN,a(u("操作已提交。关闭面板不会取消操作,请勿重复提交。","Action submitted. Closing this panel does not cancel it; do not submit it again.")),1)):T("",!0),s.allowConfigure===!1?(i(),d("p",bN,a(u("执行方式和网关配置可在“局域网设置”中调整。","Change the limit mode and gateway configuration in LAN settings.")),1)):T("",!0)],8,HA)],512),[[Bs,s.open]])]))}}),ji=le(gN,[["__scopeId","data-v-9f3d4c66"]]),_N={class:"policy-panel"},yN={key:1,class:"policy-plan","aria-live":"polite"},kN={key:0},wN=["disabled"],$N={key:2,class:"policy-card"},CN={class:"policy-card__heading"},SN={class:"policy-toggle"},xN=["disabled"],PN={key:0,class:"policy-reason"},TN={key:1,class:"policy-reason"},MN=["disabled"],EN=["value","disabled"],IN=["aria-label"],DN={key:0,class:"attention",role:"status"},LN={key:1},AN=["disabled"],NN={class:"field-hint"},ON={key:0,class:"field-error",role:"alert"},zN={class:"checkbox-line"},qN=["disabled"],RN={key:3,class:"policy-card"},VN={class:"policy-card__heading"},BN={class:"policy-toggle"},UN=["disabled"],FN=["disabled"],HN={key:0,class:"policy-reason"},GN={key:0},jN={key:1,class:"field-grid"},WN=["disabled"],JN={key:4,class:"policy-card"},KN={class:"policy-card__heading"},ZN={key:0,class:"policy-reason"},YN=["disabled"],QN=X({__name:"devicePolicyPanel",props:{device:{},mode:{default:"all"}},emits:["saved"],setup(s,{emit:t}){const n=Ne(ye({},we),{DeviceMangement:xn()}),l=s,u=R(()=>l.mode),c=t,{$gettext:r}=Ae(),p=x(!1),v=H=>({"已安装限速服务,但当前执行方式不可用;请到局域网设置选择并预览。":r("已安装限速服务,但当前执行方式不可用;请到局域网设置选择并预览。"),所需组件尚未安装:r("所需组件尚未安装"),请先在全局设置中启用该能力:r("请先在全局设置中启用该能力"),当前暂不可用:r("当前暂不可用"),该设置与现有规则冲突:r("该设置与现有规则冲突"),请检查填写内容:r("请检查填写内容"),"应用失败,原设置已恢复":r("应用失败,原设置已恢复"),"应用失败,原设置已恢复,可以重试":r("应用失败,原设置已恢复,可以重试"),"自动恢复未完成,请按提示处理":r("自动恢复未完成,请按提示处理"),"暂时无法安全保存,请稍后重试":r("暂时无法安全保存,请稍后重试"),"配置已写入,但状态记录需要恢复":r("配置已写入,但状态记录需要恢复"),保存失败:r("保存失败"),等待设备重新获取地址:r("等待设备重新获取地址"),"已观察到新租约,终端网关与 DNS 无法验证":r("已观察到新租约,终端网关与 DNS 无法验证"),"服务器配置可读,终端效果无法验证":r("服务器配置可读,终端效果无法验证"),暂时无法读取续租状态:r("暂时无法读取续租状态"),配置应用失败:r("配置应用失败"),状态未知:r("状态未知"),"该地址已分配给其他设备,请选择一个未占用地址后重试":r("该地址已分配给其他设备,请选择一个未占用地址后重试"),"该网关不在当前局域网,请检查网关 IP 或选择其他路线":r("该网关不在当前局域网,请检查网关 IP 或选择其他路线"),"暂时无法连接该网关,请确认设备已开机并接入当前局域网后重试":r("暂时无法连接该网关,请确认设备已开机并接入当前局域网后重试")})[H]||H,h=x(!0),g=x(""),b=x(""),m=x(""),f=x("success"),k=x(null),$=x(),w=x(),S=x(),C={enabled:!1,assignedIP:"",bindIP:!1,hostname:""},y=x({deviceId:"",static:ye({},C),path:{targetId:"",effect:{desired:{targetId:"",static:ye({},C)},applied:{targetId:"",configVersion:"",state:"server_configuration_observed"},observed:{state:"unverifiable",reason:"not_loaded"},needsAttention:!1}},targets:[],version:""}),P=x(null),_=Xe({enabled:!1,assignedIP:"",bindIP:!1,hostname:"",targetId:""}),D=Xe({enabled:!1,uploadSpeed:100,downloadSpeed:1e3}),E=()=>{k.value&&(Object.assign(_,{enabled:y.value.static.enabled,assignedIP:y.value.static.assignedIP||k.value.currentIPv4||"",bindIP:y.value.static.bindIP,hostname:y.value.static.hostname||"",targetId:y.value.path.targetId}),Object.assign(D,{enabled:k.value.speed.enabled,uploadSpeed:k.value.speed.uploadSpeed||100,downloadSpeed:k.value.speed.downloadSpeed||1e3}))},A=()=>B(null,null,function*(){var H,J,ge,ze,Fe,Ee,dt,tt,kt,ct,Tt;h.value=!0,g.value="",m.value="";try{const[ut,St,ht]=yield Promise.all([n.DeviceMangement.devicePolicyV2.GET(l.device.deviceId),n.DeviceMangement.deviceNetworkPolicyV2.GET(l.device.deviceId),n.DeviceMangement.routerContextV2.GET().catch(()=>null)]);if((J=(H=ut.data)==null?void 0:H.result)!=null&&J.error)throw new Error(ut.data.result.error.message);if((ze=(ge=St.data)==null?void 0:ge.result)!=null&&ze.error)throw new Error(St.data.result.error.message);if(!((Ee=(Fe=ut.data)==null?void 0:Fe.result)!=null&&Ee.policy)||!((tt=(dt=St.data)==null?void 0:dt.result)!=null&&tt.policy))throw new Error(r("设备策略不可用"));k.value=ut.data.result.policy,y.value=St.data.result.policy,P.value=((kt=ht==null?void 0:ht.data)==null?void 0:kt.result)||null,E(),re()}catch(ut){g.value=((Tt=(ct=ut==null?void 0:ut.response)==null?void 0:ct.data)==null?void 0:Tt.error)||(ut==null?void 0:ut.message)||r("读取结果失败")}finally{h.value=!1}}),U=H=>_A(k.value,H),q=H=>v(yA(k.value,H)),z=R(()=>!wA(_.hostname)),N=R(()=>{var H,J;return((J=(H=P.value)==null?void 0:H.routeEditability)==null?void 0:J.editable)===!1}),F=R(()=>{var H,J;return{verified:r("限速已生效"),loaded_unverified:r("限速已加载,效果待验证"),configured_not_loaded:r("限速已保存,服务尚未加载"),configured_unstable:r("限速地址不稳定"),configured_wrong_node:r("限速规则不在实际上网节点"),needs_address_reservation:r("需先预留当前地址"),unavailable:r("当前节点无法执行限速"),ready:r("可以设置限速"),inactive:r("未设置限速")}[((J=(H=k.value)==null?void 0:H.rateLimit)==null?void 0:J.state)||"inactive"]||r("限速状态待确认")}),Z=R(()=>{var H,J,ge,ze;return((J=(H=k.value)==null?void 0:H.rateLimit)==null?void 0:J.executionNode)==="local"?r("由本机执行"):(ze=(ge=k.value)==null?void 0:ge.rateLimit)!=null&&ze.gateway?`${r("应由上网网关执行")} · ${k.value.rateLimit.gateway}`:r("执行节点待确认")}),Q=R(()=>{var ge;const H=(ge=k.value)==null?void 0:ge.rateLimit;if(!H)return[];const J=[];return["stable","stable_identity"].includes(H.addressState)||J.push(r("当前实现按 IPv4 限速,预留当前地址后规则才不会漂移。")),H.ipv6State==="unsupported"&&J.push(r("这台设备的 IPv6 流量暂不受此限速约束。")),H.offloadState==="risk"&&J.push(r("检测到流量卸载,部分流量可能绕过限速。")),J}),ce=R(()=>{var H,J;return{external_dhcp_authority:r("本机当前不负责地址分配,请到实际分配地址的路由器上修改。"),multiple_dhcp_evidence:r("局域网角色需要确认"),multiple_external_dhcp_servers:r("局域网角色需要确认"),dhcp_authority_not_detected:r("当前仅提供查看与引导,不会自动修改其他设备。"),local_dhcp_unhealthy:r("当前无法读取地址分配状态,其他设置仍可使用。"),router_context_unavailable:r("暂时无法判断局域网角色")}[(J=(H=P.value)==null?void 0:H.routeEditability)==null?void 0:J.reason]||r("本机当前不负责地址分配,请到实际分配地址的路由器上修改。")}),ve=H=>H.kind==="default"||H.name==="跟随网络默认"?r("默认路线"):H.kind==="self"&&H.name==="本机路由"?r("本机路由"):H.kind==="bypass"&&H.name==="旁路由"?r("旁路由"):H.kind==="floating"&&H.name==="浮动网关"?r("浮动网关"):H.name==="自定义网关"?r("自定义网关"):H.name,O=R(()=>v($A(y.value.path.effect.observed.state))),de=R(()=>{const H=y.value.targets.find(J=>{var ge;return J.id===((ge=y.value.path.effect.desired)==null?void 0:ge.targetId)});return H?ve(H):r("默认路线")}),K=()=>{if(!k.value)return[];const H=kA(k.value);return y.value.path.targetId&&y.value.path.targetId!=="default"&&!H.includes("route")&&H.splice(k.value.static.enabled?1:0,0,"route"),H},xe=R(()=>{var H;return((H=y.value.path.effect.applied)==null?void 0:H.state)==="server_configuration_observed"?r("已写入"):r("等待确认")}),j=R(()=>`quickstart.device-policy-draft.${l.device.deviceId}`),re=()=>{try{const H=JSON.parse(sessionStorage.getItem(j.value)||"{}");H.speed&&Object.assign(D,H.speed)}catch(H){}},$e=R(()=>{var H;return S.value==="network"?r("将同时检查地址、上网路线、DNS 和 DHCP 分配权。"):((H=w.value)==null?void 0:H.kind)==="access"?r("将修改这台设备的联网权限。"):r("将修改这台设备的最高速度。")}),qe=H=>({address:r("地址预留"),internet_path:r("上网路线"),speed:r("设备限速"),access:r("联网权限")})[H]||H,De=()=>{$.value=void 0,w.value=void 0,S.value=void 0},Ke=(H,J)=>B(null,null,function*(){var ge;b.value="restriction-plan",m.value="";try{const ze={deviceId:l.device.deviceId,kind:H,idempotencyKey:`${l.device.deviceId}:${H}:${Date.now()}`,[H]:J},Fe=(ge=(yield n.DeviceMangement.deviceRestrictionsV2.PLAN(ze)).data)==null?void 0:ge.result;if(Fe!=null&&Fe.error)throw Object.assign(new Error(Fe.error.message),{code:Fe.error.code});if(!(Fe!=null&&Fe.canApply))throw new Error(r("当前不能应用这项修改"));$.value=Fe,w.value=ze,S.value="restrictions"}catch(ze){f.value="error",m.value=v(Ts(ze==null?void 0:ze.code,ze==null?void 0:ze.message))}finally{b.value=""}}),at=()=>B(null,null,function*(){var H;if(!z.value){b.value="network-plan",m.value="";try{const J={deviceId:l.device.deviceId,idempotencyKey:`${l.device.deviceId}:network:${Date.now()}`,static:{enabled:_.enabled,assignedIP:_.enabled?_.assignedIP:"",bindIP:_.enabled&&_.bindIP,hostname:_.enabled?Fi(_.hostname):""},targetId:_.targetId},ge=(H=(yield n.DeviceMangement.deviceNetworkPolicyV2.PLAN(J)).data)==null?void 0:H.result;if(ge!=null&&ge.error)throw Object.assign(new Error(ge.error.message),{code:ge.error.code});if(!(ge!=null&&ge.canApply))throw new Error(r("当前不能应用这项修改"));$.value=ge,w.value=J,S.value="network"}catch(J){f.value="error",m.value=v(Ts(J==null?void 0:J.code,J==null?void 0:J.message))}finally{b.value=""}}}),st=()=>B(null,null,function*(){var H,J;if(!(!$.value||!w.value||!S.value)){b.value="apply",m.value="";try{const ge=Ne(ye({},w.value),{expectedVersion:$.value.version});if(S.value==="network"){const ze=(H=(yield n.DeviceMangement.deviceNetworkPolicyV2.APPLY(ge)).data)==null?void 0:H.result;if(ze!=null&&ze.error)throw Object.assign(new Error(ze.error.message),{code:ze.error.code});if(!(ze!=null&&ze.policy))throw new Error(r("设备策略不可用"));y.value=ze.policy,k.value&&Object.assign(k.value.static,ze.policy.static),m.value=ze.changed?r("配置已保存,等待设备重新获取地址"):r("设置没有变化")}else{const ze=(J=(yield n.DeviceMangement.deviceRestrictionsV2.APPLY(ge)).data)==null?void 0:J.result;if(ze!=null&&ze.error)throw Object.assign(new Error(ze.error.message),{code:ze.error.code});if(!(ze!=null&&ze.policy))throw new Error(r("设备策略不可用"));k.value=ze.policy,m.value=ze.changed?r("已保存并生效"):r("设置没有变化")}f.value="success",De(),E(),k.value&&c("saved",K())}catch(ge){f.value="error",m.value=v(Ts(ge==null?void 0:ge.code,ge==null?void 0:ge.message))}finally{b.value=""}}}),et=()=>Ke("speed",ye({},D)),Ze=()=>{p.value=!0},it=()=>B(null,null,function*(){var H,J,ge,ze;try{const Fe=yield n.DeviceMangement.devicePolicyV2.GET(l.device.deviceId),Ee=(J=(H=Fe.data)==null?void 0:H.result)==null?void 0:J.policy;if((ge=Fe.data)!=null&&ge.error||(ze=Fe.data)!=null&&ze.success&&Fe.data.success!==0||!(Ee!=null&&Ee.capabilities)||!k.value)throw new Error("invalid_policy_observation");k.value.capabilities=Ee.capabilities,k.value.rateLimit=Ee.rateLimit}catch(Fe){f.value="error",m.value=r("组件观察未更新,输入内容仍保留,请稍后重试。")}}),he=()=>{if(!k.value)return;const H=!k.value.access.networkAccess;Ke("access",{networkAccess:H})};return We(()=>l.device.deviceId,A,{immediate:!0}),(H,J)=>(i(),d("div",_N,[h.value?(i(),Y(yt,{key:0,kind:"loading",title:o(r)("正在读取设备策略")},null,8,["title"])):g.value?(i(),Y(yt,{key:1,kind:"error",title:o(r)("策略读取失败"),description:g.value,"action-label":o(r)("重新加载"),onAction:A},null,8,["title","description","action-label"])):k.value?(i(),d(V,{key:2},[m.value?(i(),d("div",{key:0,class:_e(["policy-feedback",f.value]),role:"status"},a(m.value),3)):T("",!0),$.value?(i(),d("section",yN,[e("div",null,[e("strong",null,a(o(r)("确认这次修改")),1),e("small",null,a($e.value),1)]),e("ul",null,[(i(!0),d(V,null,oe($.value.changes,ge=>(i(),d("li",{key:ge.kind},a(qe(ge.kind)),1))),128))]),$.value.requiresRenewal?(i(),d("p",kN,a(o(r)("保存后设备需要重新获取地址,实际生效前会保持等待状态。")),1)):T("",!0),e("p",null,a(o(r)("预计重载"))+":"+a($.value.reloadServices.join("、")||o(r)("无需重载服务"))+" · "+a(o(r)("失败时恢复原设置")),1),e("div",null,[e("button",{type:"button",class:"secondary",onClick:De},a(o(r)("取消")),1),e("button",{type:"button",disabled:b.value!=="",onClick:st},a(b.value?o(r)("正在应用…"):o(r)("确认应用")),9,wN)])])):T("",!0),u.value==="all"||u.value==="network"?(i(),d("section",$N,[e("div",CN,[e("div",null,[e("strong",null,a(o(r)("地址与上网路线")),1),e("small",null,a(o(r)("固定设备地址,并选择它通过哪台路由器上网")),1)]),e("label",SN,[W(e("input",{"onUpdate:modelValue":J[0]||(J[0]=ge=>_.enabled=ge),type:"checkbox",disabled:!U("static")||N.value},null,8,xN),[[gt,_.enabled]]),e("span",null,a(o(r)("地址预留"))+" · "+a(_.enabled?o(r)("已启用"):o(r)("未启用")),1)])]),N.value?(i(),d("p",PN,a(ce.value),1)):T("",!0),q("static")?(i(),d("p",TN,a(q("static")),1)):(i(),d(V,{key:2},[e("label",null,[e("span",null,a(o(r)("上网路线")),1),W(e("select",{"onUpdate:modelValue":J[1]||(J[1]=ge=>_.targetId=ge),disabled:N.value||y.value.targets.length===0},[(i(!0),d(V,null,oe(y.value.targets,ge=>(i(),d("option",{key:ge.id,value:ge.id,disabled:!ge.supported},a(ve(ge))+a(ge.gateway?` · ${ge.gateway}`:"")+a(ge.supported?"":o(r)("(不可用)")),9,EN))),128))],8,MN),[[Be,_.targetId]])]),e("div",{class:"effect-flow","aria-label":o(r)("上网路线状态")},[e("span",null,[e("small",null,a(o(r)("想要的路线")),1),ue(a(de.value),1)]),e("span",null,[e("small",null,a(o(r)("路由器配置")),1),ue(a(xe.value),1)]),e("span",null,[e("small",null,a(o(r)("实际生效情况")),1),ue(a(O.value),1)])],8,IN),y.value.path.effect.needsAttention?(i(),d("small",DN,a(o(r)("设置已保存,但设备可能需要断开并重新连接后才会使用新路线。")),1)):T("",!0),_.enabled?(i(),d("label",LN,[e("span",null,a(o(r)("IPv4 地址")),1),W(e("input",{"onUpdate:modelValue":J[2]||(J[2]=ge=>_.assignedIP=ge),inputmode:"decimal",placeholder:"192.168.100.50",disabled:N.value},null,8,AN),[[Oe,_.assignedIP,void 0,{trim:!0}]])])):T("",!0),e("details",null,[e("summary",null,a(o(r)("高级选项")),1),e("label",null,[e("span",null,a(o(r)("DHCP 主机名(可选)")),1),W(e("input",{"onUpdate:modelValue":J[3]||(J[3]=ge=>_.hostname=ge),maxlength:"63",autocomplete:"off",autocapitalize:"none",spellcheck:"false"},null,512),[[Oe,_.hostname,void 0,{trim:!0}]])]),e("small",NN,a(o(r)("用于局域网名称解析,仅支持英文、数字和中间连字符;与可使用中文的设备备注名分开保存")),1),z.value?(i(),d("small",ON,a(o(r)("请输入 1~63 位英文、数字或中间连字符,不能以连字符开头或结尾")),1)):T("",!0),e("label",zN,[W(e("input",{"onUpdate:modelValue":J[4]||(J[4]=ge=>_.bindIP=ge),type:"checkbox"},null,512),[[gt,_.bindIP]]),ue(a(o(r)("绑定 MAC 与 IPv4")),1)])]),e("button",{type:"button",disabled:N.value||b.value!==""||z.value||!_.targetId,onClick:at},a(b.value==="network-plan"?o(r)("正在检查…"):o(r)("预览地址与上网路线")),9,qN)],64))])):T("",!0),u.value==="all"||u.value==="restrictions"?(i(),d("section",RN,[e("div",VN,[e("div",null,[e("strong",null,a(o(r)("设备限速")),1),e("small",null,a(o(r)("限制这台设备的最高速率")),1)]),e("label",BN,[W(e("input",{"onUpdate:modelValue":J[5]||(J[5]=ge=>D.enabled=ge),type:"checkbox",disabled:!U("speed")},null,8,UN),[[gt,D.enabled]]),e("span",null,a(D.enabled?o(r)("已启用"):o(r)("未启用")),1)])]),e("button",{type:"button",class:"policy-components-entry",disabled:b.value!=="",onClick:Ze,"data-device-components":""},a(o(r)("管理限速组件")),9,FN),q("speed")?(i(),d("div",HN,[e("span",null,a(q("speed")),1)])):(i(),d(V,{key:1},[k.value.rateLimit?(i(),d("div",{key:0,class:_e(["enforcement-card",k.value.rateLimit.state])},[e("div",null,[e("strong",null,a(F.value),1),e("small",null,a(Z.value),1)]),Q.value.length?(i(),d("ul",GN,[(i(!0),d(V,null,oe(Q.value,ge=>(i(),d("li",{key:ge},a(ge),1))),128))])):T("",!0)],2)):T("",!0),D.enabled?(i(),d("div",jN,[e("label",null,[e("span",null,a(o(r)("上传上限(Mbit/s)")),1),W(e("input",{"onUpdate:modelValue":J[6]||(J[6]=ge=>D.uploadSpeed=ge),type:"number",min:"1"},null,512),[[Oe,D.uploadSpeed,void 0,{number:!0}]])]),e("label",null,[e("span",null,a(o(r)("下载上限(Mbit/s)")),1),W(e("input",{"onUpdate:modelValue":J[7]||(J[7]=ge=>D.downloadSpeed=ge),type:"number",min:"1"},null,512),[[Oe,D.downloadSpeed,void 0,{number:!0}]])])])):T("",!0),e("button",{type:"button",disabled:b.value!==""||D.enabled&&k.value.rateLimit&&!k.value.rateLimit.canApply,onClick:et},a(b.value==="restriction-plan"?o(r)("正在检查…"):o(r)("预览限速")),9,WN)],64))])):T("",!0),u.value==="all"||u.value==="restrictions"?(i(),d("section",JN,[e("div",KN,[e("div",null,[e("strong",null,a(o(r)("联网权限")),1),e("small",null,a(k.value.access.networkAccess?o(r)("当前允许访问互联网"):o(r)("当前已断开互联网")),1)]),e("span",{class:_e(["access-state",k.value.access.networkAccess?"allowed":"blocked"])},a(k.value.access.networkAccess?o(r)("允许"):o(r)("已断网")),3)]),q("access")?(i(),d("p",ZN,a(q("access")),1)):(i(),d("button",{key:1,type:"button",class:_e({danger:k.value.access.networkAccess}),disabled:b.value!=="",onClick:he},a(b.value==="restriction-plan"?o(r)("正在检查…"):k.value.access.networkAccess?o(r)("预览断开网络"):o(r)("预览恢复联网")),11,YN))])):T("",!0)],64)):T("",!0),G(ji,{open:p.value,"focus-id":"quickstart-native","allow-configure":!1,onClose:J[8]||(J[8]=ge=>p.value=!1),onUpdated:it},null,8,["open"])]))}}),jl=le(QN,[["__scopeId","data-v-8b1e95bf"]]),XN={class:"usage-policy","aria-labelledby":"usage-policy-title"},eO={class:"policy-heading"},tO={id:"usage-policy-title"},nO=["disabled"],aO={key:1,class:"feedback error",role:"alert"},sO={key:0,class:"feedback",role:"status"},oO={class:"effective-card"},lO={class:"timezone"},iO={class:"check"},rO={key:0,class:"schedule-editor"},cO={value:"block"},dO={value:"limit"},uO={key:0,class:"columns"},vO=["aria-label"],pO=["value"],hO={class:"columns"},mO={class:"check"},fO={key:0,class:"quota-editor"},bO={value:"daily"},gO={value:"weekly"},_O={value:"monthly"},yO={value:"notify"},kO={value:"block"},wO=["aria-label"],$O=["disabled"],CO={key:2,class:"actions"},SO=X({__name:"deviceUsagePolicyEditor",props:{deviceId:{}},setup(s){const t=Ne(ye({},we),{DeviceMangement:xn()}),n=s,{$gettext:l}=Ae(),u=l("限制累计用量"),c=x(!0),r=x(!1),p=x(""),v=x(""),h=x("success"),g=x(!1),b=x(""),m=x(""),f=x({}),k=x(null),$=x([]),w=x("device-rest"),S=Xe({scheduleEnabled:!1,scheduleAction:"block",scheduleUpload:20,scheduleDownload:100,days:[1,2,3,4,5],start:"22:00",end:"07:00",quotaEnabled:!1,quotaPeriod:"monthly",quotaGB:10,quotaAction:"notify"}),C=R(()=>[{value:1,label:l("一")},{value:2,label:l("二")},{value:3,label:l("三")},{value:4,label:l("四")},{value:5,label:l("五")},{value:6,label:l("六")},{value:0,label:l("日")}]),y=O=>{const[de,K]=O.split(":").map(Number);return de*60+K},P=O=>`${String(Math.floor(O/60)).padStart(2,"0")}:${String(O%60).padStart(2,"0")}`,_=O=>O?new Date(O).toLocaleString([],{weekday:"short",hour:"2-digit",minute:"2-digit"}):l("暂无计划"),D=R(()=>k.value?k.value.networkAccess?l("允许联网"):l("已暂停联网"):l("系统默认")),E=R(()=>{var K;return(((K=k.value)==null?void 0:K.sources)||[]).filter(xe=>xe!=="system_default").map(xe=>{var j;return xe==="global"?l("默认规则"):xe==="device"?l("本设备"):xe.startsWith("group:")?((j=$.value.find(re=>re.id===xe.slice(6)))==null?void 0:j.name)||l("设备分组"):xe}).join(" → ")||l("系统默认")}),A=R(()=>{var O;return _(((O=k.value)==null?void 0:O.nextScheduleAt)||"")}),U=R(()=>{const O=[S.scheduleEnabled?`${S.scheduleAction==="limit"?l("时段限速"):l("休息时段")} ${S.start}–${S.end}`:l("不设置时段规则")];return O.push(S.quotaEnabled?`${S.quotaGB} GB · ${q(S.quotaPeriod)}`:l("不设置流量额度")),O.join(";")}),q=O=>({daily:l("每天"),weekly:l("每周"),monthly:l("每月")})[O]||O,z=O=>{var xe,j,re,$e,qe,De,Ke,at;b.value=(O==null?void 0:O.version)||"",m.value=(O==null?void 0:O.timezone)||"",$.value=(O==null?void 0:O.groups)||[],k.value=((O==null?void 0:O.effective)||[]).find(st=>st.deviceId===n.deviceId)||null;const de=((xe=O==null?void 0:O.devicePolicies)==null?void 0:xe[n.deviceId])||{};f.value=Ne(ye({},de),{schedules:[...de.schedules||[]]});const K=f.value.schedules.find(st=>(st==null?void 0:st.action)==="block"||(st==null?void 0:st.action)==="limit");w.value=(K==null?void 0:K.id)||"device-schedule",S.scheduleEnabled=!!(K!=null&&K.enabled),S.days=(j=K==null?void 0:K.days)!=null&&j.length?[...K.days]:[1,2,3,4,5],S.start=K?P(K.startMinute):"22:00",S.end=K?P(K.endMinute):"07:00",S.scheduleAction=(K==null?void 0:K.action)||"block",S.scheduleUpload=((re=K==null?void 0:K.speed)==null?void 0:re.uploadSpeed)||20,S.scheduleDownload=(($e=K==null?void 0:K.speed)==null?void 0:$e.downloadSpeed)||100,S.quotaEnabled=!!((qe=de.quota)!=null&&qe.enabled),S.quotaPeriod=((De=de.quota)==null?void 0:De.period)||"monthly",S.quotaGB=(Ke=de.quota)!=null&&Ke.limitBytes?Math.round(de.quota.limitBytes/1073741824*10)/10:10,S.quotaAction=((at=de.quota)==null?void 0:at.action)||"notify"},N=x(!1),F=()=>B(null,null,function*(){try{const O=(yield t.DeviceMangement.trafficInsightsV2.GET(n.deviceId,"today")).data.result;return!O||O.error?!1:(N.value=!!O.legacyAccessReviewRequired,!0)}catch(O){return!1}}),Z=()=>B(null,null,function*(){c.value=!0,p.value="",g.value=!1;try{const O=(yield t.DeviceMangement.deviceGroupsV2.GET()).data.result;if(O!=null&&O.error)throw new Error(O.error.message);z(O),yield F()}catch(O){p.value=(O==null?void 0:O.message)||l("读取使用规则失败")}finally{c.value=!1}}),Q=()=>{if(v.value="",S.scheduleEnabled&&!S.days.length){h.value="error",v.value=l("请至少选择一天");return}if(S.scheduleEnabled&&(!S.start||!S.end)){h.value="error",v.value=l("请填写完整时间");return}if(S.scheduleEnabled&&S.scheduleAction==="limit"&&(!S.scheduleUpload||!S.scheduleDownload)){h.value="error",v.value=l("请填写完整的时段速度上限");return}if(S.quotaEnabled&&(!Number.isFinite(S.quotaGB)||S.quotaGB<.1)){h.value="error",v.value=l("流量额度至少为 0.1 GB");return}g.value=!0},ce=()=>{const O=(f.value.schedules||[]).filter(K=>(K==null?void 0:K.id)!==w.value);S.scheduleEnabled&&O.push({id:w.value,enabled:!0,days:[...S.days],startMinute:y(S.start),endMinute:y(S.end),action:S.scheduleAction,speed:S.scheduleAction==="limit"?{enabled:!0,uploadSpeed:S.scheduleUpload,downloadSpeed:S.scheduleDownload}:void 0});const de=Ne(ye({},f.value),{schedules:O,quota:S.quotaEnabled?{enabled:!0,period:S.quotaPeriod,limitBytes:Math.round(S.quotaGB*1073741824),action:S.quotaAction}:void 0});return de.access===void 0&&de.speed===void 0&&!de.targetId&&!de.quota&&!de.schedules.length?null:de},ve=()=>B(null,null,function*(){r.value=!0,v.value="";try{const O=(yield t.DeviceMangement.deviceGroupsV2.POST({action:"set_device_policy",deviceId:n.deviceId,devicePolicy:ce(),expectedVersion:b.value})).data.result;if(O!=null&&O.error)throw new Error(O.error.message);z(O),g.value=!1,h.value="success",v.value=(yield F())?l("使用规则已应用"):l("规则已应用,上网状态暂无法确认,请刷新检查")}catch(O){h.value="error",v.value=(O==null?void 0:O.message)||l("保存失败,原设置未改变")}finally{r.value=!1}});return We(()=>n.deviceId,Z,{immediate:!0}),(O,de)=>(i(),d("section",XN,[e("div",eO,[e("div",null,[e("h5",tO,a(o(l)("计划与额度")),1),e("p",null,a(o(l)("只为这台设备设置休息时段和累计流量额度;单设备设置优先于分组和默认规则。")),1)]),e("button",{type:"button",disabled:c.value,onClick:Z},a(o(l)("刷新")),9,nO)]),c.value?(i(),Y(yt,{key:0,kind:"loading",title:o(l)("正在读取使用规则")},null,8,["title"])):p.value?(i(),d("p",aO,[ue(a(p.value)+" ",1),e("button",{type:"button",onClick:Z},a(o(l)("重试")),1)])):(i(),d(V,{key:2},[N.value?(i(),d("p",sO,a(o(l)("旧版断网限制仍保留,取消额度或周期重置不会自动恢复上网。确认后,请使用“预览恢复联网”恢复。")),1)):T("",!0),e("div",oO,[e("span",null,[e("small",null,a(o(l)("当前生效")),1),e("strong",null,a(D.value),1)]),e("span",null,[e("small",null,a(o(l)("规则来源")),1),e("strong",null,a(E.value),1)]),e("span",null,[e("small",null,a(o(l)("下次变化")),1),e("strong",null,a(A.value),1)])]),e("p",lO,a(o(l)("按路由器时间执行"))+" · "+a(m.value||"—"),1),e("fieldset",null,[e("legend",null,a(o(l)("休息时段")),1),e("label",iO,[W(e("input",{"onUpdate:modelValue":de[0]||(de[0]=K=>S.scheduleEnabled=K),type:"checkbox"},null,512),[[gt,S.scheduleEnabled]]),ue(" "+a(o(l)("在指定时段执行规则")),1)]),S.scheduleEnabled?(i(),d("div",rO,[e("label",null,[e("span",null,a(o(l)("时段内执行")),1),W(e("select",{"onUpdate:modelValue":de[1]||(de[1]=K=>S.scheduleAction=K)},[e("option",cO,a(o(l)("暂停联网")),1),e("option",dO,a(o(l)("限制速度")),1)],512),[[Be,S.scheduleAction]])]),S.scheduleAction==="limit"?(i(),d("div",uO,[e("label",null,[e("span",null,a(o(l)("上传 Mbit/s")),1),W(e("input",{"onUpdate:modelValue":de[2]||(de[2]=K=>S.scheduleUpload=K),type:"number",min:"1"},null,512),[[Oe,S.scheduleUpload,void 0,{number:!0}]])]),e("label",null,[e("span",null,a(o(l)("下载 Mbit/s")),1),W(e("input",{"onUpdate:modelValue":de[3]||(de[3]=K=>S.scheduleDownload=K),type:"number",min:"1"},null,512),[[Oe,S.scheduleDownload,void 0,{number:!0}]])])])):T("",!0),e("div",{class:"days",role:"group","aria-label":o(l)("执行日期")},[(i(!0),d(V,null,oe(C.value,K=>(i(),d("label",{key:K.value,class:_e({selected:S.days.includes(K.value)})},[W(e("input",{"onUpdate:modelValue":de[4]||(de[4]=xe=>S.days=xe),type:"checkbox",value:K.value},null,8,pO),[[gt,S.days]]),ue(a(K.label),1)],2))),128))],8,vO),e("div",hO,[e("label",null,[e("span",null,a(o(l)("开始")),1),W(e("input",{"onUpdate:modelValue":de[5]||(de[5]=K=>S.start=K),type:"time"},null,512),[[Oe,S.start]])]),e("label",null,[e("span",null,a(o(l)("结束")),1),W(e("input",{"onUpdate:modelValue":de[6]||(de[6]=K=>S.end=K),type:"time"},null,512),[[Oe,S.end]])])]),e("small",null,a(o(l)("结束时间早于开始时间时,会自动跨到第二天。")),1)])):T("",!0)]),e("fieldset",null,[e("legend",null,a(o(l)("流量额度")),1),e("label",mO,[W(e("input",{"onUpdate:modelValue":de[7]||(de[7]=K=>S.quotaEnabled=K),type:"checkbox"},null,512),[[gt,S.quotaEnabled]]),ue(" "+a(o(u)),1)]),S.quotaEnabled?(i(),d("div",fO,[e("label",null,[e("span",null,a(o(l)("周期")),1),W(e("select",{"onUpdate:modelValue":de[8]||(de[8]=K=>S.quotaPeriod=K)},[e("option",bO,a(o(l)("每天")),1),e("option",gO,a(o(l)("每周")),1),e("option",_O,a(o(l)("每月")),1)],512),[[Be,S.quotaPeriod]])]),e("label",null,[e("span",null,a(o(l)("额度 GB")),1),W(e("input",{"onUpdate:modelValue":de[9]||(de[9]=K=>S.quotaGB=K),type:"number",min:"0.1",max:"100000",step:"0.1"},null,512),[[Oe,S.quotaGB,void 0,{number:!0}]])]),e("label",null,[e("span",null,a(o(l)("达到后")),1),W(e("select",{"onUpdate:modelValue":de[10]||(de[10]=K=>S.quotaAction=K)},[e("option",yO,a(o(l)("仅提醒")),1),e("option",kO,a(o(l)("暂停联网")),1)],512),[[Be,S.quotaAction]])])])):T("",!0)]),g.value?(i(),d("div",{key:1,class:"preview",role:"dialog","aria-label":o(l)("保存前预览")},[e("strong",null,a(o(l)("确认这次修改")),1),e("span",null,a(U.value),1),e("small",null,a(o(l)("应用后会立即重新计算这台设备的最终规则;失败时保留原设置。")),1),e("div",null,[e("button",{type:"button",onClick:de[11]||(de[11]=K=>g.value=!1)},a(o(l)("返回修改")),1),e("button",{class:"primary",type:"button",disabled:r.value,onClick:ve},a(r.value?o(l)("正在应用…"):o(l)("确认并应用")),9,$O)])],8,wO)):(i(),d("div",CO,[e("button",{class:"primary",type:"button",onClick:Q},a(o(l)("预览影响")),1)])),v.value?(i(),d("p",{key:3,class:_e(["feedback",h.value]),role:"status"},a(v.value),3)):T("",!0)],64))]))}}),xO=le(SO,[["__scopeId","data-v-b4b287b0"]]),el=(s,t="")=>{if(!Number.isFinite(s)||s<0)return"—";const n=["B","KB","MB","GB","TB"];let l=s,u=0;for(;l>=1e3&&u=100?0:l>=10?1:2;return`${l.toFixed(c)} ${n[u]}${t}`},PO=(s,t,n="采集中")=>{if(!s||s.state==="warming_up")return n;const l=t==="up"?s.uploadSpeed:s.downloadSpeed;return el(l,"/s")},TO=s=>Math.min(3e4,3e3*fs(2,Math.max(0,s-1))),MO=(s,t=n=>n.deviceId)=>new Map(s.map(n=>[t(n),n])),EO={class:"insights-panel"},IO={class:"insights-heading"},DO={class:"range-tabs",role:"tablist"},LO=["onClick"],AO={key:1,class:"message error"},NO={key:0,class:"message",role:"status"},OO={class:"totals"},zO=["aria-label"],qO=["title"],RO={key:2,class:"muted"},VO={class:"capability"},BO={class:"enable"},UO={value:"daily"},FO={value:"weekly"},HO={value:"monthly"},GO={value:"notify"},jO={value:"block"},WO=["disabled"],JO=X({__name:"trafficInsightsPanel",props:{deviceId:{},quotaEditable:{type:Boolean,default:!0}},setup(s){const t=Ne(ye({},we),{DeviceMangement:xn()}),n=s,{$gettext:l}=Ae(),u=x("today"),c=x(!0),r=x(!1),p=x(""),v=x({}),h=x(!1),g=x(""),b=x("success"),m=Xe({enabled:!1,period:"monthly",gigabytes:10,action:"notify"}),f=R(()=>[{value:"today",label:l("今天")},{value:"week",label:l("本周")},{value:"month",label:l("本月")}]),k=E=>el(E||0),$=R(()=>{var E,A,U;return Math.min(100,Math.round((((E=v.value.quota)==null?void 0:E.usedBytes)||0)*100/Math.max(1,((U=(A=v.value.quota)==null?void 0:A.quota)==null?void 0:U.limitBytes)||1)))}),w=E=>({daily:l("每日额度"),weekly:l("每周额度"),monthly:l("每月额度")})[E]||E,S=E=>E.reason==="hardware_offload_enabled"?l("受硬件卸载限制"):E.state==="available"?l("可用"):E.state==="unsupported"?l("不支持"):l("未安装"),C=E=>{const A=Math.max(1,...(v.value.buckets||[]).map(U=>U.uploadBytes+U.downloadBytes));return Math.max(4,Math.round((E.uploadBytes+E.downloadBytes)*100/A))},y=()=>{var A;const E=(A=v.value.quota)==null?void 0:A.quota;m.enabled=!!(E!=null&&E.enabled),E&&(m.period=E.period,m.gigabytes=Math.round(E.limitBytes/1073741824*10)/10,m.action=E.action)},P=()=>B(null,null,function*(){var E;c.value=!0,p.value="";try{const A=yield t.DeviceMangement.trafficInsightsV2.GET(n.deviceId,u.value);if((E=A.data.result)!=null&&E.error)throw new Error(A.data.result.error.message);v.value=A.data.result||{},y()}catch(A){p.value=(A==null?void 0:A.message)||l("历史用量读取失败")}finally{c.value=!1}}),_=E=>{u.value!==E&&(u.value=E,P())},D=()=>B(null,null,function*(){var E;r.value=!0,g.value="";try{const A=yield t.DeviceMangement.trafficInsightsV2.QUOTA({deviceId:n.deviceId,enabled:m.enabled,period:m.period,limitBytes:Math.round(m.gigabytes*1073741824),action:m.action});if((E=A.data.result)!=null&&E.error)throw new Error(A.data.result.error.message);b.value="success",g.value=l("流量额度已保存"),yield P()}catch(A){b.value="error",g.value=(A==null?void 0:A.message)||l("保存失败")}finally{r.value=!1}});return P(),(E,A)=>{var U,q,z;return i(),d("div",EO,[e("div",IO,[e("div",null,[e("strong",null,a(o(l)("历史用量")),1),e("small",null,a(o(l)("这是累计流量额度,不是速度上限或定时限速。")),1)]),n.quotaEditable?(i(),d("button",{key:0,type:"button",onClick:A[0]||(A[0]=N=>h.value=!h.value)},a(h.value?o(l)("收起额度"):o(l)("设置额度")),1)):T("",!0)]),e("div",DO,[(i(!0),d(V,null,oe(f.value,N=>(i(),d("button",{key:N.value,type:"button",class:_e({active:u.value===N.value}),onClick:F=>_(N.value)},a(N.label),11,LO))),128))]),c.value?(i(),Y(yt,{key:0,kind:"loading",title:o(l)("正在读取历史用量")},null,8,["title"])):p.value?(i(),d("p",AO,[ue(a(p.value)+" ",1),e("button",{type:"button",onClick:P},a(o(l)("重试")),1)])):(i(),d(V,{key:2},[v.value.legacyAccessReviewRequired?(i(),d("p",NO,a(o(l)("旧版断网限制仍保留,取消额度或周期重置不会自动恢复上网。确认后,请使用“预览恢复联网”恢复。")),1)):T("",!0),e("div",OO,[e("span",null,[e("small",null,a(o(l)("上传")),1),ue(a(k(v.value.uploadBytes)),1)]),e("span",null,[e("small",null,a(o(l)("下载")),1),ue(a(k(v.value.downloadBytes)),1)]),e("span",null,[e("small",null,a(o(l)("合计")),1),ue(a(k((v.value.uploadBytes||0)+(v.value.downloadBytes||0))),1)])]),(U=v.value.buckets)!=null&&U.length?(i(),d("div",{key:1,class:"history-chart","aria-label":o(l)("历史流量趋势")},[(i(!0),d(V,null,oe(v.value.buckets,N=>(i(),d("i",{key:N.start,style:pt({height:C(N)+"%"}),title:`${new Date(N.start).toLocaleString()} · ${k(N.uploadBytes+N.downloadBytes)}`},null,12,qO))),128))],8,zO)):(i(),d("p",RO,a(o(l)("正在积累历史数据,首次使用后会按小时形成趋势。")),1)),(q=v.value.quota)!=null&&q.quota?(i(),d("div",{key:3,class:_e(["quota-status",{exceeded:v.value.quota.exceeded}])},[e("span",null,a(w(v.value.quota.quota.period))+" · "+a(k(v.value.quota.usedBytes))+" / "+a(k(v.value.quota.quota.limitBytes)),1),e("strong",null,a(v.value.quota.exceeded?o(l)("已达到额度"):$.value+"%"),1)],2)):T("",!0),e("p",VO,[ue(a(o(l)("本地轻量统计"))+" · "+a(o(l)("每 5 分钟最多写入一次")),1),((z=v.value.bandix)==null?void 0:z.state)!=="not_installed"?(i(),d(V,{key:0},[ue(" · Bandix: "+a(S(v.value.bandix)),1)],64)):T("",!0)])],64)),n.quotaEditable&&h.value?(i(),d("form",{key:3,class:"quota-form",onSubmit:Ge(D,["prevent"])},[e("label",BO,[W(e("input",{"onUpdate:modelValue":A[1]||(A[1]=N=>m.enabled=N),type:"checkbox"},null,512),[[gt,m.enabled]]),ue(a(o(l)("启用流量额度")),1)]),m.enabled?(i(),d(V,{key:0},[e("label",null,[e("span",null,a(o(l)("周期")),1),W(e("select",{"onUpdate:modelValue":A[2]||(A[2]=N=>m.period=N)},[e("option",UO,a(o(l)("每天")),1),e("option",FO,a(o(l)("每周")),1),e("option",HO,a(o(l)("每月")),1)],512),[[Be,m.period]])]),e("label",null,[e("span",null,a(o(l)("额度(GB)")),1),W(e("input",{"onUpdate:modelValue":A[3]||(A[3]=N=>m.gigabytes=N),type:"number",min:"0.1",max:"100000",step:"0.1",required:""},null,512),[[Oe,m.gigabytes,void 0,{number:!0}]])]),e("label",null,[e("span",null,a(o(l)("达到后")),1),W(e("select",{"onUpdate:modelValue":A[4]||(A[4]=N=>m.action=N)},[e("option",GO,a(o(l)("仅提醒")),1),e("option",jO,a(o(l)("暂停联网")),1)],512),[[Be,m.action]])])],64)):T("",!0),e("button",{class:"save",type:"submit",disabled:r.value},a(r.value?o(l)("正在保存…"):o(l)("保存额度")),9,WO),g.value?(i(),d("p",{key:1,class:_e(["message",b.value])},a(g.value),3)):T("",!0)],32)):T("",!0)])}}}),KO=le(JO,[["__scopeId","data-v-3a828794"]]),ZO={key:1,class:"message error"},YO={key:2,class:"advanced-body"},QO={class:"capabilities"},XO={key:0},ez={class:"probe-actions"},tz=["disabled"],nz=["disabled"],az={class:"bounded-note"},sz={key:0},oz={key:1},lz={class:"webhook-toggle"},iz=["placeholder"],rz={class:"webhook-actions"},cz=["disabled"],dz={key:0},uz={class:"bundle-actions"},vz={key:0,class:"import-plan"},pz=["disabled"],hz=X({__name:"advancedNetworkTools",props:{device:{}},setup(s){const t=Ne(ye({},we),{DeviceMangement:xn()}),n=s,{$gettext:l}=Ae(),u=x(!1),c=x(!1),r=x(""),p=x({}),v=x([]),h=x(!1),g=x(""),b=x("success"),m=x(!1),f=x(!1),k=x(""),$=x(!1),w=x(""),S=x("success"),C=x(null),y=x(null),P=x(!1),_=x(""),D=x("success"),E=R(()=>{var xe,j,re,$e,qe,De;return((re=(j=(xe=n.device.addresses)==null?void 0:xe.current)==null?void 0:j.find(Ke=>Ke.family===4))==null?void 0:re.address)||((De=(qe=($e=n.device.addresses)==null?void 0:$e.current)==null?void 0:qe[0])==null?void 0:De.address)||""}),A=xe=>({ipv6_reservation:l("IPv6 地址策略"),connection_insights:l("连接洞察"),dns_insights:l("DNS 洞察"),management_probe:l("管理入口探测"),segmentation:l("来宾 / IoT 分段"),multi_wan:l("多 WAN 策略"),identification_updates:l("识别规则更新")})[xe]||xe,U=xe=>({available:l("可用"),disabled:l("未启用"),not_installed:l("未安装"),unsupported:l("不支持"),error:l("异常")})[xe]||l("异常"),q=xe=>({firmware_contract_not_verified:l("当前固件尚未验证,未展示假控件"),bandix_not_installed:l("安装兼容的 Bandix 后才可用"),adapter_contract_not_verified:l("已检测到 Bandix,但当前固件尚未启用经验证的连接洞察适配器"),dns_privacy_default:l("默认不采集或记录 DNS 名称"),segmentation_adapter_not_installed:l("未安装分段适配器"),multi_wan_adapter_not_installed:l("未安装多 WAN 适配器"),built_in_rules_only:l("当前仅使用内置可回滚规则"),hardware_offload_enabled:l("硬件卸载已开启,统计可能不完整")})[xe.reason]||xe.detail||"",z=xe=>({policy_changed:l("策略变更"),address_conflict:l("地址冲突"),gateway_failover:l("网关切换"),probe:l("入口探测"),new_device:l("发现新设备"),device_online:l("设备上线"),device_offline:l("设备离线"),quota_exceeded:l("额度已用尽")})[xe]||xe,N=xe=>({device:l("设备状态"),device_policy:l("设备控制"),device_network_policy:l("地址与路线"),address_reservation:l("地址保留"),gateway_assignment:l("上网路线"),floating_gateway:l("浮动网关"),device_groups:l("设备分组"),network_rules:l("网络规则"),traffic_quota:l("流量额度"),management_probe:l("管理入口"),policy_bundle:l("策略备份")})[xe]||xe,F=xe=>xe==="Import replaces device groups and traffic quotas only; address, route, speed and firewall rules are unchanged."?l("只会替换设备分组、设备例外与流量额度;地址、路线、限速和防火墙规则保持不变。"):xe,Z=()=>B(null,null,function*(){var xe,j,re,$e;u.value=!0,r.value="";try{const qe=yield t.DeviceMangement.advancedNetworkV2.GET(n.device.deviceId);if((xe=qe.data.result)!=null&&xe.error)throw new Error(qe.data.result.error.message);p.value=((j=qe.data.result)==null?void 0:j.capabilities)||{},v.value=((re=qe.data.result)==null?void 0:re.events)||[];const De=(($e=qe.data.result)==null?void 0:$e.webhook)||{};m.value=!!De.enabled,f.value=De.url==="configured",c.value=!0}catch(qe){r.value=(qe==null?void 0:qe.message)||l("高级能力读取失败")}finally{u.value=!1}}),Q=xe=>{xe.target.open&&!c.value&&!u.value&&Z()},ce=(xe,j)=>B(null,null,function*(){h.value=!0,g.value="";try{const $e=(yield t.DeviceMangement.advancedNetworkV2.PROBE({deviceId:n.device.deviceId,address:E.value,scheme:xe,port:j})).data.result;if($e!=null&&$e.error)throw new Error($e.error.message);b.value="success",g.value=`${l("可访问")} · ${$e.url} · HTTP ${$e.statusCode} · ${$e.durationMs} ms`}catch(re){b.value="error",g.value=(re==null?void 0:re.message)||l("该入口当前不可访问")}finally{h.value=!1}}),ve=()=>B(null,null,function*(){var xe;$.value=!0,w.value="";try{const j=yield t.DeviceMangement.advancedNetworkV2.WEBHOOK(m.value?{enabled:!0,url:k.value,events:["new_device","gateway_failover"]}:{enabled:!1});if((xe=j.data.result)!=null&&xe.error)throw new Error(j.data.result.error.message);S.value="success",w.value=m.value?l("通知已启用"):l("通知已关闭"),f.value=m.value,k.value=""}catch(j){S.value="error",w.value=(j==null?void 0:j.message)||l("通知设置保存失败")}finally{$.value=!1}}),O=()=>B(null,null,function*(){var xe;try{const j=yield t.DeviceMangement.advancedNetworkV2.EXPORT();if((xe=j.data.result)!=null&&xe.error)throw new Error(j.data.result.error.message);const re=new Blob([JSON.stringify(j.data.result.bundle,null,2)],{type:"application/json"}),$e=document.createElement("a");$e.href=URL.createObjectURL(re),$e.download=`quickstart-policy-${new Date().toISOString().slice(0,10)}.json`,$e.click(),URL.revokeObjectURL($e.href)}catch(j){D.value="error",_.value=(j==null?void 0:j.message)||l("导出失败")}}),de=xe=>B(null,null,function*(){var j,re;C.value=null,_.value="";try{const $e=(j=xe.target.files)==null?void 0:j[0];if(!$e)return;const qe=JSON.parse(yield $e.text()),De=yield t.DeviceMangement.advancedNetworkV2.IMPORT_PLAN({bundle:qe});if((re=De.data.result)!=null&&re.error)throw new Error(De.data.result.error.message);y.value=qe,C.value=De.data.result.plan}catch($e){D.value="error",_.value=($e==null?void 0:$e.message)||l("策略包预检失败,未写入任何配置")}}),K=()=>B(null,null,function*(){var xe;if(!(!y.value||!C.value||!window.confirm(l("确认恢复这个策略包?现有分组和额度会被替换。")))){P.value=!0;try{const j=yield t.DeviceMangement.advancedNetworkV2.IMPORT_APPLY({bundle:y.value,planChecksum:C.value.checksum,expectedGroupVersion:C.value.groupVersion,confirmed:!0});if((xe=j.data.result)!=null&&xe.error)throw new Error(j.data.result.error.message);D.value="success",_.value=l("策略包已恢复"),C.value=null,yield Z()}catch(j){D.value="error",_.value=(j==null?void 0:j.message)||l("恢复失败,原配置已回滚")}finally{P.value=!1}}});return(xe,j)=>(i(),d("details",{class:"advanced-tools",onToggle:Q},[e("summary",null,[ue(a(o(l)("高级网络工具")),1),e("small",null,a(o(l)("按需诊断、审计和策略备份")),1)]),u.value?(i(),Y(yt,{key:0,kind:"loading",title:o(l)("正在读取高级能力")},null,8,["title"])):r.value?(i(),d("p",ZO,[ue(a(r.value)+" ",1),e("button",{type:"button",onClick:Z},a(o(l)("重试")),1)])):c.value?(i(),d("div",YO,[e("section",null,[e("h5",null,a(o(l)("能力与兼容性")),1),e("div",QO,[(i(!0),d(V,null,oe(p.value,(re,$e)=>(i(),d("div",{key:$e},[e("span",null,a(A($e)),1),e("b",{class:_e(re.state)},a(U(re.state)),3),e("small",null,a(q(re)),1)]))),128))])]),E.value?(i(),d("section",XO,[e("h5",null,a(o(l)("设备管理入口")),1),e("p",null,a(o(l)("只探测设备当前局域网地址和常用管理端口;不会扫描其他地址,也不会跟随跳转。")),1),e("div",ez,[e("button",{type:"button",disabled:h.value,onClick:j[0]||(j[0]=re=>ce("http",80))},"HTTP · 80",8,tz),e("button",{type:"button",disabled:h.value,onClick:j[1]||(j[1]=re=>ce("https",443))},"HTTPS · 443",8,nz)]),g.value?(i(),d("p",{key:0,class:_e(["message",b.value])},a(g.value),3)):T("",!0)])):T("",!0),e("section",null,[e("h5",null,a(o(l)("最近变更")),1),e("p",az,a(o(l)("最近变更仅在展开后读取,记录数量有上限。")),1),v.value.length?(i(),d("ul",sz,[(i(!0),d(V,null,oe(v.value,re=>(i(),d("li",{key:re.id},[e("span",null,a(z(re.action))+" · "+a(N(re.resource)),1),e("time",null,a(new Date(re.at).toLocaleString()),1)]))),128))])):(i(),d("p",oz,a(o(l)("暂无与此设备有关的审计事件")),1))]),e("section",null,[e("h5",null,a(o(l)("新设备与网关切换通知")),1),e("p",null,a(o(l)("此设置对本路由器全部设备生效。可选 Webhook 默认关闭,只发送事件类型、时间和设备标识,不发送 DNS 内容。")),1),e("label",lz,[W(e("input",{"onUpdate:modelValue":j[2]||(j[2]=re=>m.value=re),type:"checkbox"},null,512),[[gt,m.value]]),ue(a(m.value?o(l)("启用通知"):o(l)("不启用通知")),1)]),m.value?W((i(),d("input",{key:0,"onUpdate:modelValue":j[3]||(j[3]=re=>k.value=re),class:"webhook-url",type:"url",inputmode:"url",placeholder:f.value?o(l)("已配置;如需更换请输入新地址"):"https://example.com/webhook"},null,8,iz)),[[Oe,k.value,void 0,{trim:!0}]]):T("",!0),e("div",rz,[e("button",{type:"button",disabled:$.value||m.value&&!k.value,onClick:ve},a($.value?o(l)("正在保存…"):o(l)("保存通知设置")),9,cz),f.value&&m.value?(i(),d("small",dz,a(o(l)("现有地址已隐藏;更换时需重新输入。")),1)):T("",!0)]),w.value?(i(),d("p",{key:1,class:_e(["message",S.value])},a(w.value),3)):T("",!0)]),e("section",null,[e("h5",null,a(o(l)("策略备份与恢复")),1),e("p",null,a(o(l)("导出和恢复设备分组、单设备例外与流量额度;地址、路线、限速和防火墙规则不会被替换。")),1),e("div",uz,[e("button",{type:"button",onClick:O},a(o(l)("导出策略包")),1),e("label",null,[e("span",null,a(o(l)("选择策略包")),1),e("input",{type:"file",accept:"application/json,.json",onChange:de},null,32)])]),C.value?(i(),d("div",vz,[e("strong",null,a(o(l)("预检通过")),1),e("span",null,a(C.value.groupCount)+" "+a(o(l)("个分组"))+" · "+a(C.value.devicePolicyCount)+" "+a(o(l)("个设备例外"))+" · "+a(C.value.quotaCount)+" "+a(o(l)("个额度")),1),(i(!0),d(V,null,oe(C.value.warnings,re=>(i(),d("small",{key:re},a(F(re)),1))),128)),e("button",{type:"button",class:"danger",disabled:P.value,onClick:K},a(P.value?o(l)("正在恢复…"):o(l)("确认恢复")),9,pz)])):T("",!0),_.value?(i(),d("p",{key:1,class:_e(["message",D.value])},a(_.value),3)):T("",!0)])])):T("",!0)],32))}}),mz=le(hz,[["__scopeId","data-v-7f9d9207"]]),Ea=s=>typeof s=="string"&&s.trim()?s.trim():"",fz=(s,t)=>{var u;if(typeof s=="string")return Ea(s)||t;if(!s||typeof s!="object")return t;const n=s,l=(u=n.response)==null?void 0:u.data;return typeof l=="string"?Ea(l)||t:Ea(l==null?void 0:l.error)||Ea(l==null?void 0:l.message)||Ea(n.error)||Ea(n.message)||t},bz=["aria-label"],gz={class:"device-toolbar"},_z=["aria-label"],yz=["onClick"],kz={class:"device-center__tools"},wz={class:"device-search"},$z={class:"sr-only"},Cz=["placeholder"],Sz=["aria-label"],xz={value:"recent"},Pz={value:"name"},Tz=["disabled","aria-label"],Mz={class:"filter-panel"},Ez={key:0},Iz={class:"filter-panel__controls"},Dz={value:"all"},Lz={value:"lan"},Az={value:"unknown"},Nz={value:""},Oz=["value"],zz={value:"all"},qz={value:"none"},Rz={value:"static"},Vz={value:"route"},Bz={value:"limited"},Uz={value:"blocked"},Fz=["placeholder"],Hz=["disabled"],Gz={key:0,role:"alert"},jz={key:1,class:"telemetry-notice",role:"status"},Wz={key:6,class:"device-table-wrap"},Jz={class:"device-table"},Kz=["data-device-id","onClick","onKeydown"],Zz={class:"device-identity"},Yz=["title"],Qz={key:0},Xz={key:0,class:"network-label"},eq=["title"],tq={key:0},nq={class:"device-address"},aq={class:"mono"},sq={key:0},oq={class:"traffic-upload"},lq={class:"traffic-download"},iq={class:"policy-action"},rq={class:"policy-list"},cq={key:0,class:"muted"},dq=["onClick"],uq=["data-device-id","onClick","onKeydown"],vq={class:"device-card__top"},pq={class:"device-identity"},hq=["title"],mq={key:0,class:"network-label"},fq={class:"identity-meta"},bq={key:0},gq={class:"device-card__facts"},_q={class:"mono"},yq={class:"traffic-upload"},kq={class:"traffic-download"},wq=["aria-label"],$q={class:"drawer-header"},Cq={class:"device-identity"},Sq={class:"identity-meta"},xq={key:0},Pq=["aria-label"],Tq={key:0,class:"network-label"},Mq={class:"drawer-summary",role:"status"},Eq={class:"mono"},Iq={key:1,class:"context-notice",role:"status"},Dq=["aria-label"],Lq=["onClick"],Aq={key:2,class:"drawer-section"},Nq=["aria-label"],Oq={class:"chart-legend"},zq={key:3,class:"drawer-section"},qq={class:"technical-details"},Rq={class:"mono"},Vq={key:0},Bq={key:4,class:"drawer-section"},Uq={class:"technical-details"},Fq={key:0,class:"address-list"},Hq=["title","onClick"],Gq={key:1,class:"muted"},jq={key:2},Wq={class:"address-list"},Jq=["title","onClick"],Kq={key:5,class:"drawer-section"},Zq=["aria-label"],Yq={class:"mono"},Qq=X({__name:"deviceCenterList",setup(s){const t=Bi(),n=t.networkId==="all",l=oA,u=ke=>{var Se;return((Se=t.networks.find(ae=>ae.networkId===ke.networkId))==null?void 0:Se.displayName)||v("待确认归属")},c=Ne(ye({},we),{DeviceMangement:xn()}),r=ta(),p=as(),{$gettext:v}=Ae(),h=x([]),g=x({state:"ready",reasons:[]}),b=x(!0),m=x(!1),f=x(!1),k=x(""),$=x({alias:"",mac:""}),w=x(""),S=x(r.query.filter==="all"?"all":"online"),C=x("recent"),y=x(""),P=x({connection:"all",brand:"",policy:"all"}),_=x(null),D=x(null),E=x("overview"),A=x(""),U=x(new Map),q=x("warming_up"),z=x({});let N,F=0,Z=!1,Q=null,ce="";const ve=R(()=>BC(h.value)),O=R(()=>VC(h.value,S.value,y.value,C.value,P.value)),de=R(()=>[...new Set(h.value.map(ke=>ke.brand).filter(Boolean))].sort((ke,Se)=>ke.localeCompare(Se))),K=R(()=>+(P.value.connection!=="all")+ +!!P.value.brand+ +(P.value.policy!=="all")),xe=R(()=>!_.value||O.value.some(ke=>l(ke)===l(_.value))),j=R(()=>[{value:"online",label:v("在线")},{value:"all",label:v("全部")},{value:"controlled",label:v("已设置")}]),re=R(()=>[{id:"overview",label:v("概览")},{id:"profile",label:v("设备资料")},{id:"network",label:v("网络与上网")},{id:"management",label:v("使用管理")}]),$e=()=>B(null,null,function*(){var ke,Se;b.value=!0,w.value="";try{const[ae,He]=yield Promise.all([c.DeviceMangement.deviceInventoryV2.GET(),n?Promise.resolve(null):c.DeviceMangement.networkRulesV2.GET().catch(()=>null)]),Re=ae.data;if(!(Re!=null&&Re.result))throw(Re==null?void 0:Re.error)||v("设备清单不可用");const Ue=Re.result.devices||[],Et=(Se=(ke=He==null?void 0:He.data)==null?void 0:ke.result)==null?void 0:Se.rules;if(n){const Pt=yield Promise.all(t.networks.map(Ot=>B(null,null,function*(){var dn,Gt;const _t=yield Gs(Ot.networkId).networkRulesV2.GET().catch(()=>null);return Ps(Ue.filter(un=>un.networkId===Ot.networkId),[],void 0,(Gt=(dn=_t==null?void 0:_t.data)==null?void 0:dn.result)==null?void 0:Gt.rules)})));h.value=[...Pt.flat(),...Ps(Ue.filter(Ot=>!t.networks.some(_t=>_t.networkId===Ot.networkId)))]}else h.value=Ps(Ue,[],void 0,Et);xt(U.value),g.value=Re.result.health||{state:"ready",reasons:[]},_.value&&(_.value=h.value.find(Pt=>l(Pt)===l(_.value))||null)}catch(ae){w.value=fz(ae,`${v("读取结果失败")},${v("请刷新界面")}`)}finally{b.value=!1}}),qe=ke=>Do(ke,v),De=ke=>Lo(ke,v),Ke=ke=>ke.presenceState==="never_seen"?"never-seen":ke.online?"online":"offline",at=ke=>ke==="wifi"?"Wi-Fi":v(ke==="lan"?"有线":"未知"),st=ke=>Ds(ke,v),et=ke=>{const Se=Ze(ke);return Se.metaMode==="pending"?v("类型待确认"):Se.metaMode==="classification-source"?it(ke.classification.source):st(ke.scene)},Ze=ke=>TC(ke),it=ke=>({model:v("型号特征"),hostname:v("设备名称"),manufacturer_default:v("厂商默认类型"),fallback:v("安全回退"),manual:v("手动设置")})[ke],he=ke=>({high:v("高"),medium:v("中"),low:v("低")})[ke],H=ke=>({static:v("静态地址"),route:v("已指定路线"),limited:v("已限速"),blocked:v("已断网")})[ke]||ke,J=(ke,Se)=>PO(ke.telemetry,Se,v("采集中")),ge=(ke,Se)=>!ke.telemetry||ke.telemetry.state==="warming_up"?v("采集中"):el(Se==="up"?ke.telemetry.uploadBytes:ke.telemetry.downloadBytes),ze=(ke,Se)=>{const ae=z.value[ke]||[],He=Math.max(1,...ae.flatMap(Re=>[Re.up,Re.down]));return Math.max(3,Math.round(Se*100/He))},Fe=ke=>UC(ke,y.value),Ee=()=>{P.value={connection:"all",brand:"",policy:"all"}},dt=()=>{S.value="all",y.value="",Ee()},tt=ke=>B(null,null,function*(){var Se;Q=document.activeElement,ce=l(ke),_.value=ke,E.value="overview",(r.query.device!==ke.deviceId||r.query.deviceNetwork!==ke.networkId)&&p.replace({query:Ne(ye({},r.query),{device:ke.deviceId,deviceNetwork:ke.networkId})}),yield ot(),(Se=D.value)==null||Se.focus()}),kt=()=>B(null,null,function*(){var Se;_.value=null,r.query.device&&p.replace({query:Ne(ye({},r.query),{device:void 0,deviceNetwork:void 0})}),yield ot();const ke=Array.from(document.querySelectorAll("[data-device-id]")).find(ae=>ae.dataset.deviceId===ce&&ae.offsetParent!==null);(Se=Q!=null&&Q.isConnected?Q:ke)==null||Se.focus(),Q=null,ce=""}),ct=ke=>{_.value&&(_.value.policyLabels=ke,_.value.controlled=ke.length>0)},Tt=ke=>{if(!_.value)return;const Se=l(_.value);h.value=h.value.map(ae=>l(ae)===Se?Ne(ye({},ae),{displayName:ke.alias||ae.hostname||"",classification:ke.classification,scene:ke.classification.category,brand:ke.classification.brand,iconKey:ke.iconKey}):ae),_.value=h.value.find(ae=>l(ae)===Se)||null},ut=ke=>B(null,null,function*(){try{yield navigator.clipboard.writeText(ke)}catch(Se){const ae=document.createElement("textarea");ae.value=ke,ae.style.position="fixed",ae.style.opacity="0",document.body.appendChild(ae),ae.select(),document.execCommand("copy"),ae.remove()}A.value=ke,window.setTimeout(()=>{A.value===ke&&(A.value="")},1500)}),St=()=>B(null,null,function*(){var ke,Se,ae,He;f.value=!0,k.value="";try{const Re=yield c.DeviceMangement.deviceInventoryV2.POST(ye({},$.value));if(!((ke=Re.data)!=null&&ke.result))throw new Error(((Se=Re.data)==null?void 0:Se.error)||v("添加失败"));$.value={alias:"",mac:""},m.value=!1,yield $e(),S.value="all"}catch(Re){k.value=((He=(ae=Re==null?void 0:Re.response)==null?void 0:ae.data)==null?void 0:He.error)||(Re==null?void 0:Re.message)||v("添加失败,请检查 MAC 地址")}finally{f.value=!1}}),ht=ke=>{const Se=new Date(ke);return Number.isNaN(Se.getTime())?ke:Se.toLocaleString()},xt=ke=>{for(const Se of h.value)Se.telemetry=ke.get(l(Se));_.value&&(_.value=h.value.find(Se=>l(Se)===l(_.value))||null)},en=ke=>{const Se=ye({},z.value);for(const ae of ke)ae.state==="ready"&&(Se[l(ae)]=[...Se[l(ae)]||[],{up:ae.uploadSpeed,down:ae.downloadSpeed}].slice(-20));z.value=Se},qt=ke=>{N!==void 0&&window.clearTimeout(N),N=void 0,!Z&&!document.hidden&&(N=window.setTimeout(Ft,ke))},Ft=()=>B(null,null,function*(){var ke,Se,ae;if(!document.hidden)try{const He=yield c.DeviceMangement.deviceTrafficV2.GET();if(!((ke=He.data)!=null&&ke.result))throw((Se=He.data)==null?void 0:Se.error)||new Error("telemetry unavailable");const Re=He.data.result.items||[];U.value=MO(Re,l),q.value=((ae=He.data.result.health)==null?void 0:ae.state)||"ready",F=0,xt(U.value),en(Re),qt(3e3)}catch(He){q.value="partial",F++,qt(TO(F))}}),Ht=()=>{if(document.hidden){N!==void 0&&window.clearTimeout(N),N=void 0;return}Ft()};return We(()=>r.query.device,ke=>{ke||(_.value=null)}),nt(()=>B(null,null,function*(){if(yield $e(),Z)return;const ke=typeof r.query.device=="string"?r.query.device:"";if(ke){const Se=h.value.filter(He=>He.deviceId===ke&&(!r.query.deviceNetwork||He.networkId===r.query.deviceNetwork)),ae=Se.length===1?Se[0]:void 0;ae&&(S.value="all",yield tt(ae))}document.addEventListener("visibilitychange",Ht),Ft()})),lt(()=>{Z=!0,document.removeEventListener("visibilitychange",Ht),N!==void 0&&window.clearTimeout(N)}),(ke,Se)=>(i(),d("section",{class:"device-center","aria-label":o(v)("设备")},[e("div",gz,[e("nav",{class:"device-filters","aria-label":o(v)("设备筛选")},[(i(!0),d(V,null,oe(j.value,ae=>(i(),d("button",{key:ae.value,type:"button",class:_e({active:S.value===ae.value}),onClick:He=>S.value=ae.value},[ue(a(ae.label)+" ",1),e("span",null,a(ve.value[ae.value]),1)],10,yz))),128))],8,_z),e("div",kz,[e("label",wz,[e("span",$z,a(o(v)("搜索设备")),1),W(e("input",{"onUpdate:modelValue":Se[0]||(Se[0]=ae=>y.value=ae),type:"search",placeholder:o(v)("搜索名称、IP、MAC 或厂商")},null,8,Cz),[[Oe,y.value,void 0,{trim:!0}]])]),W(e("select",{"onUpdate:modelValue":Se[1]||(Se[1]=ae=>C.value=ae),"aria-label":o(v)("排序方式")},[e("option",xz,a(o(v)("最近活跃")),1),e("option",Pz,a(o(v)("按名称")),1)],8,Sz),[[Be,C.value]]),e("button",{class:"icon-button",type:"button",disabled:b.value,onClick:$e,"aria-label":o(v)("刷新")},"↻",8,Tz),n?T("",!0):(i(),d("button",{key:0,class:"add-device",type:"button",onClick:Se[2]||(Se[2]=ae=>m.value=!m.value)},a(m.value?o(v)("取消添加"):o(v)("添加设备")),1))]),e("details",Mz,[e("summary",null,[ue(a(o(v)("更多筛选")),1),K.value?(i(),d("small",Ez,a(K.value),1)):T("",!0)]),e("div",Iz,[e("label",null,[e("span",null,a(o(v)("连接方式")),1),W(e("select",{"onUpdate:modelValue":Se[3]||(Se[3]=ae=>P.value.connection=ae)},[e("option",Dz,a(o(v)("全部连接")),1),e("option",Lz,a(o(v)("有线")),1),Se[9]||(Se[9]=e("option",{value:"wifi"},"Wi-Fi",-1)),e("option",Az,a(o(v)("未知")),1)],512),[[Be,P.value.connection]])]),e("label",null,[e("span",null,a(o(v)("品牌")),1),W(e("select",{"onUpdate:modelValue":Se[4]||(Se[4]=ae=>P.value.brand=ae)},[e("option",Nz,a(o(v)("全部品牌")),1),(i(!0),d(V,null,oe(de.value,ae=>(i(),d("option",{key:ae,value:ae},a(ae),9,Oz))),128))],512),[[Be,P.value.brand]])]),e("label",null,[e("span",null,a(o(v)("策略状态")),1),W(e("select",{"onUpdate:modelValue":Se[5]||(Se[5]=ae=>P.value.policy=ae)},[e("option",zz,a(o(v)("全部策略")),1),e("option",qz,a(o(v)("无策略")),1),e("option",Rz,a(o(v)("静态地址")),1),e("option",Vz,a(o(v)("已指定路线")),1),e("option",Bz,a(o(v)("已限速")),1),e("option",Uz,a(o(v)("已断网")),1)],512),[[Be,P.value.policy]])]),K.value?(i(),d("button",{key:0,type:"button",class:"clear-filters",onClick:Ee},a(o(v)("清除筛选")),1)):T("",!0)])])]),m.value?(i(),d("form",{key:0,class:"add-device-form",onSubmit:Ge(St,["prevent"])},[e("div",null,[e("strong",null,a(o(v)("添加尚未上线的设备")),1),e("small",null,a(o(v)("保存 MAC 和备注,设备首次出现后会自动合并,不会创建孤立规则。")),1)]),e("label",null,[e("span",null,a(o(v)("设备备注")),1),W(e("input",{"onUpdate:modelValue":Se[6]||(Se[6]=ae=>$.value.alias=ae),maxlength:"64",placeholder:o(v)("例如:孩子的电脑")},null,8,Fz),[[Oe,$.value.alias,void 0,{trim:!0}]])]),e("label",null,[Se[10]||(Se[10]=e("span",null,"MAC",-1)),W(e("input",{"onUpdate:modelValue":Se[7]||(Se[7]=ae=>$.value.mac=ae),required:"",autocomplete:"off",placeholder:"AA:BB:CC:DD:EE:FF"},null,512),[[Oe,$.value.mac,void 0,{trim:!0}]])]),e("button",{type:"submit",disabled:f.value},a(f.value?o(v)("正在添加…"):o(v)("确认添加")),9,Hz),k.value?(i(),d("p",Gz,a(k.value),1)):T("",!0)],32)):T("",!0),q.value==="partial"||q.value==="stale"?(i(),d("div",jz,a(q.value==="stale"?o(v)("流量数据更新延迟,正在恢复采样"):o(v)("流量采样暂不可用,设备清单仍可正常使用")),1)):T("",!0),b.value?(i(),Y(yt,{key:2,kind:"loading",title:o(v)("正在加载设备"),description:o(v)("正在整理设备身份和在线状态…")},null,8,["title","description"])):w.value?(i(),Y(mA,{key:3,message:w.value,onRetry:$e},null,8,["message"])):g.value.state==="partial"?(i(),Y(yt,{key:4,kind:"info",title:o(v)("部分设备信息暂不可用"),description:o(v)("设备清单仍可使用,缺失的信息会在数据源恢复后自动补齐。")},null,8,["title","description"])):T("",!0),!b.value&&!w.value&&O.value.length===0?(i(),Y(yt,{key:5,kind:"empty",title:y.value?o(v)("没有匹配的设备"):o(v)("当前筛选下没有设备"),description:y.value?o(v)("请尝试名称、IP、MAC 或厂商的其他关键词。"):o(v)("可以切换到“全部”查看本次开机发现过的设备。"),"action-label":S.value==="online"&&ve.value.all>0&&!y.value&&!K.value?o(v)("查看全部设备"):"",onAction:Se[8]||(Se[8]=ae=>S.value="all")},null,8,["title","description","action-label"])):T("",!0),!b.value&&!w.value&&O.value.length?(i(),d("div",Wz,[e("table",Jz,[Se[11]||(Se[11]=e("colgroup",null,[e("col",{class:"identity-column"}),e("col",{class:"address-column"}),e("col",{class:"status-column"}),e("col",{class:"connection-column"}),e("col",{class:"traffic-column"}),e("col")],-1)),e("thead",null,[e("tr",null,[e("th",null,a(o(v)("设备")),1),e("th",null,a(o(v)("地址")),1),e("th",null,a(o(v)("状态")),1),e("th",null,a(o(v)("连接")),1),e("th",null,a(o(v)("实时流量")),1),e("th",null,a(o(v)("策略与操作")),1)])]),e("tbody",null,[(i(!0),d(V,null,oe(O.value,ae=>{var He;return i(),d("tr",{key:o(l)(ae),"data-device-id":o(l)(ae),tabindex:"0",onClick:Re=>tt(ae),onKeydown:[Qt(Ge(Re=>tt(ae),["prevent"]),["enter"]),Qt(Ge(Re=>tt(ae),["prevent"]),["space"])]},[e("td",null,[e("div",Zz,[G(Da,{scene:ae.scene,"icon-key":ae.iconKey,label:st(ae.scene)},null,8,["scene","icon-key","label"]),e("div",null,[e("strong",{title:qe(ae)},[(i(!0),d(V,null,oe(Fe(qe(ae)),(Re,Ue)=>(i(),d(V,{key:Ue},[Re.matched?(i(),d("mark",Qz,a(Re.text),1)):(i(),d(V,{key:1},[ue(a(Re.text),1)],64))],64))),128))],8,Yz),n?(i(),d("small",Xz,a(u(ae)),1)):T("",!0),e("span",{class:"identity-meta",title:ae.brand||et(ae)},[Ze(ae).showBrandInMeta?(i(),d("b",tq,a(ae.brand),1)):T("",!0),Ze(ae).showBrandInMeta?(i(),d(V,{key:1},[ue(" · ")],64)):T("",!0),ue(a(et(ae)),1)],8,eq)])])]),e("td",nq,[e("span",aq,a(ae.primaryAddress||"—"),1),ae.extraAddressCount?(i(),d("small",sq,"+"+a(ae.extraAddressCount),1)):T("",!0)]),e("td",null,[e("span",{class:_e(["status-pill",Ke(ae)])},a(De(ae)),3)]),e("td",null,a(at(ae.connection.kind)),1),e("td",null,[e("div",{class:_e(["traffic",{"traffic-ready":((He=ae.telemetry)==null?void 0:He.state)==="ready"}])},[e("span",oq,"↑ "+a(J(ae,"up")),1),e("span",lq,"↓ "+a(J(ae,"down")),1)],2)]),e("td",null,[e("div",iq,[e("div",rq,[(i(!0),d(V,null,oe(ae.policyLabels,Re=>(i(),d("span",{key:Re},a(H(Re)),1))),128)),ae.policyLabels.length===0?(i(),d("span",cq,a(o(v)("无策略")),1)):T("",!0)]),e("button",{type:"button",onClick:Ge(Re=>tt(ae),["stop"])},a(o(v)("详情")),9,dq)])])],40,Kz)}),128))])]),(i(!0),d(V,null,oe(O.value,ae=>{var He;return i(),d("article",{key:`card-${o(l)(ae)}`,"data-device-id":o(l)(ae),class:"device-card",tabindex:"0",onClick:Re=>tt(ae),onKeydown:[Qt(Ge(Re=>tt(ae),["prevent"]),["enter"]),Qt(Ge(Re=>tt(ae),["prevent"]),["space"])]},[e("div",vq,[e("div",pq,[G(Da,{scene:ae.scene,"icon-key":ae.iconKey,label:st(ae.scene)},null,8,["scene","icon-key","label"]),e("div",null,[e("strong",{title:qe(ae)},a(qe(ae)),9,hq),n?(i(),d("small",mq,a(u(ae)),1)):T("",!0),e("span",fq,[Ze(ae).showBrandInMeta?(i(),d("b",bq,a(ae.brand),1)):T("",!0),Ze(ae).showBrandInMeta?(i(),d(V,{key:1},[ue(" · ")],64)):T("",!0),ue(a(et(ae)),1)])])]),e("span",{class:_e(["status-pill",Ke(ae)])},a(De(ae)),3)]),e("div",gq,[e("span",null,[e("small",null,a(o(v)("地址")),1),e("span",_q,a(ae.primaryAddress||"—"),1)]),e("span",null,[e("small",null,a(o(v)("连接")),1),ue(a(at(ae.connection.kind)),1)]),e("span",{class:_e({"traffic-ready":((He=ae.telemetry)==null?void 0:He.state)==="ready"})},[e("small",null,a(o(v)("实时流量")),1),e("span",null,[e("span",yq,"↑ "+a(J(ae,"up")),1),Se[12]||(Se[12]=ue(" · ",-1)),e("span",kq,"↓ "+a(J(ae,"down")),1)])],2),e("span",null,[e("small",null,a(o(v)("策略")),1),ue(a(ae.policyLabels.length?ae.policyLabels.map(H).join(" · "):o(v)("无策略")),1)])])],40,uq)}),128))])):T("",!0),_.value?(i(),d("div",{key:7,class:"drawer-backdrop",onClick:Ge(kt,["self"])},[!n||o(t).networks.some(ae=>{var He;return ae.networkId===((He=_.value)==null?void 0:He.networkId)})?(i(),Y(Ui,{key:o(l)(_.value),"network-id":_.value.networkId||o(t).networkId,networks:o(t).networks,legacy:o(t).legacy},{default:pe(()=>{var ae,He,Re;return[e("aside",{ref_key:"drawer",ref:D,class:"device-drawer",role:"dialog","aria-modal":"true",tabindex:"-1","aria-label":o(v)("设备详情"),onKeydown:Qt(kt,["esc"])},[e("div",$q,[e("div",Cq,[G(Da,{scene:_.value.scene,"icon-key":_.value.iconKey,label:st(_.value.scene)},null,8,["scene","icon-key","label"]),e("div",null,[e("h3",null,a(qe(_.value)),1),e("span",Sq,[Ze(_.value).showBrandInMeta?(i(),d("b",xq,a(_.value.brand),1)):T("",!0),Ze(_.value).showBrandInMeta?(i(),d(V,{key:1},[ue(" · ")],64)):T("",!0),ue(a(et(_.value)),1)])])]),e("button",{type:"button",class:"drawer-close",onClick:kt,"aria-label":o(v)("关闭")},"×",8,Pq)]),n?(i(),d("p",Tq,a(o(v)("所在局域网"))+" · "+a(u(_.value)),1)):T("",!0),e("div",Mq,[e("span",null,[e("small",null,a(o(v)("状态")),1),ue(a(De(_.value)),1)]),e("span",null,[e("small",null,a(o(v)("主要地址")),1),e("b",Eq,a(_.value.primaryAddress||"—"),1)]),e("span",null,[e("small",null,a(o(v)("连接")),1),ue(a(at(_.value.connection.kind)),1)])]),xe.value?T("",!0):(i(),d("div",Iq,[e("span",null,a(o(v)("此设备不在当前筛选结果中")),1),e("button",{type:"button",onClick:dt},a(o(v)("清除筛选")),1)])),e("nav",{class:"drawer-tabs","aria-label":o(v)("设备详情区域")},[(i(!0),d(V,null,oe(re.value,Ue=>(i(),d("button",{key:Ue.id,type:"button",class:_e({active:E.value===Ue.id}),onClick:Et=>E.value=Ue.id},a(Ue.label),11,Lq))),128))],8,Dq),E.value==="overview"?(i(),d("div",Aq,[e("h4",null,a(o(v)("概览")),1),e("dl",null,[e("div",null,[e("dt",null,a(o(v)("当前速率")),1),e("dd",null,"↑ "+a(J(_.value,"up"))+" · ↓ "+a(J(_.value,"down")),1)]),e("div",null,[e("dt",null,a(o(v)("本次开机")),1),e("dd",null,"↑ "+a(ge(_.value,"up"))+" · ↓ "+a(ge(_.value,"down")),1)]),e("div",null,[e("dt",null,a(o(v)("连接数")),1),e("dd",null,a(((ae=_.value.telemetry)==null?void 0:ae.state)==="warming_up"||!_.value.telemetry?o(v)("采集中"):_.value.telemetry.connectionCount),1)])]),(He=z.value[o(l)(_.value)])!=null&&He.length?(i(),d("div",{key:0,class:"traffic-chart","aria-label":o(v)("近期流量趋势")},[(i(!0),d(V,null,oe(z.value[o(l)(_.value)],(Ue,Et)=>(i(),d("span",{key:Et,class:"traffic-chart__bar"},[e("i",{class:"upload",style:pt({height:`${ze(o(l)(_.value),Ue.up)}%`})},null,4),e("i",{class:"download",style:pt({height:`${ze(o(l)(_.value),Ue.down)}%`})},null,4)]))),128))],8,Nq)):T("",!0),e("small",Oq,[e("span",null,"↑ "+a(o(v)("上传")),1),e("span",null,"↓ "+a(o(v)("下载")),1)]),(i(),Y(KO,{key:_.value.deviceId,"device-id":_.value.deviceId,"quota-editable":!1},null,8,["device-id"])),(i(),Y(mz,{key:`advanced-${_.value.deviceId}`,device:_.value},null,8,["device"]))])):T("",!0),E.value==="profile"?(i(),d("div",zq,[e("h4",null,a(o(v)("设备资料")),1),G(BA,{device:_.value,onSaved:Tt},null,8,["device"]),e("details",qq,[e("summary",null,a(o(v)("识别与技术信息")),1),e("dl",null,[e("div",null,[e("dt",null,a(o(v)("原始厂商")),1),e("dd",null,a(_.value.classification.manufacturer||"—"),1)]),e("div",null,[e("dt",null,a(o(v)("原始主机名")),1),e("dd",null,a(_.value.hostname||"—"),1)]),e("div",null,[e("dt",null,a(o(v)("识别依据")),1),e("dd",null,a(it(_.value.classification.source)),1)]),e("div",null,[e("dt",null,a(o(v)("识别可信度")),1),e("dd",null,a(he(_.value.classification.confidence)),1)]),e("div",null,[Se[13]||(Se[13]=e("dt",null,"MAC",-1)),e("dd",Rq,a(_.value.mac||"—"),1)]),((Re=_.value.identity)==null?void 0:Re.scope)==="boot"?(i(),d("div",Vq,[e("dt",null,a(o(v)("身份稳定性")),1),e("dd",null,a(o(v)("本次开机")),1)])):T("",!0),e("div",null,[e("dt",null,a(o(v)("最近出现")),1),e("dd",null,a(ht(_.value.lastSeenAt)),1)])])])])):T("",!0),E.value==="network"?(i(),d("div",Bq,[e("h4",null,a(o(v)("网络与上网")),1),(i(),Y(jl,{key:`network-${_.value.deviceId}`,device:_.value,mode:"network",onSaved:ct},null,8,["device"])),e("details",Uq,[e("summary",null,a(o(v)("地址详情")),1),e("h4",null,a(o(v)("当前地址")),1),_.value.addresses.current.length?(i(),d("div",Fq,[(i(!0),d(V,null,oe(_.value.addresses.current,Ue=>(i(),d("button",{key:Ue.address,type:"button",class:"address-copy",title:o(v)("复制地址"),onClick:Et=>ut(Ue.address)},[e("code",null,a(Ue.address),1),e("span",null,a(A.value===Ue.address?o(v)("已复制"):o(v)("复制")),1)],8,Hq))),128))])):(i(),d("span",Gq,a(o(v)("当前没有地址")),1)),_.value.addresses.historical.length?(i(),d("h4",jq,a(o(v)("历史地址")),1)):T("",!0),e("div",Wq,[(i(!0),d(V,null,oe(_.value.addresses.historical,Ue=>(i(),d("button",{key:Ue.address,type:"button",class:"address-copy",title:o(v)("复制地址"),onClick:Et=>ut(Ue.address)},[e("code",null,a(Ue.address),1),e("span",null,a(A.value===Ue.address?o(v)("已复制"):o(v)("复制")),1)],8,Jq))),128))])])])):T("",!0),E.value==="management"?(i(),d("div",Kq,[e("h4",null,a(o(v)("使用管理")),1),(i(),Y(jl,{key:`restrictions-${_.value.deviceId}`,device:_.value,mode:"restrictions",onSaved:ct},null,8,["device"])),(i(),Y(xO,{key:`usage-policy-${_.value.deviceId}`,"device-id":_.value.deviceId},null,8,["device-id"]))])):T("",!0)],40,wq)]}),_:1},8,["network-id","networks","legacy"])):(i(),d("aside",{key:1,ref_key:"drawer",ref:D,class:"device-drawer",role:"dialog","aria-modal":"true",tabindex:"-1","aria-label":o(v)("设备详情"),onKeydown:Qt(kt,["esc"])},[e("h3",null,a(qe(_.value)),1),e("p",null,a(o(v)("归属尚未确认,暂时无法修改此设备")),1),e("p",Yq,a(_.value.mac),1),(i(!0),d(V,null,oe([..._.value.addresses.current,..._.value.addresses.historical],ae=>(i(),d("p",{key:ae.address,class:"mono"},a(ae.address),1))),128)),e("button",{type:"button",onClick:kt},a(o(v)("关闭")),1)],40,Zq))])):T("",!0)],8,bz))}}),Xq=le(Qq,[["__scopeId","data-v-6ca35503"]]),eR={class:"group-panel","aria-labelledby":"device-groups-title"},tR={class:"group-header"},nR={id:"device-groups-title"},aR={class:"header-actions"},sR={class:"evaluation"},oR={key:2,class:"group-grid"},lR={class:"group-card-title"},iR={class:"priority"},rR={class:"member-preview"},cR={class:"card-actions"},dR=["onClick"],uR=["onClick"],vR={key:3,class:"effective-explanation"},pR={class:"effective-list"},hR={class:"editor-heading"},mR=["aria-label"],fR={key:0,class:"form-grid"},bR=["placeholder"],gR={key:1,class:"advanced-group"},_R={key:2},yR=["placeholder"],kR={class:"device-options"},wR=["value"],$R={key:0},CR={class:"rules-grid"},SR={value:"inherit"},xR={value:"allow"},PR={value:"block"},TR={value:""},MR=["value","disabled"],ER={class:"check"},IR={key:0,class:"inline-fields"},DR={class:"check"},LR={key:1,class:"inline-fields quota"},AR={value:"daily"},NR={value:"weekly"},OR={value:"monthly"},zR={value:"notify"},qR={value:"block"},RR={class:"check"},VR={key:0,class:"schedule-box"},BR={value:"block"},UR={value:"limit"},FR={key:0,class:"inline-fields"},HR={class:"days"},GR=["value"],jR={class:"inline-fields"},WR=["aria-label"],JR={key:0},KR={key:1},ZR=["disabled"],YR={key:4,class:"feedback error"},QR={key:5,class:"editor-actions"},XR={class:"primary",type:"submit"},eV=X({__name:"deviceGroupsPanel",setup(s){const t=Ne(ye({},we),{DeviceMangement:xn()}),{$gettext:n}=Ae(),l=x(!0),u=x(!1),c=x(""),r=x(""),p=x(""),v=x(""),h=x(""),g=x(!1),b=x(!1),m=x(!1),f=x(""),k=x(!1),$=x([]),w=x([]),S=x([]),C=x([]),y=x(),P=()=>({id:"",name:"",priority:10,access:"inherit",members:[],targetId:"",speedEnabled:!1,upload:100,download:1e3,quotaEnabled:!1,quotaPeriod:"monthly",quotaGB:10,quotaAction:"notify",scheduleEnabled:!1,scheduleAction:"block",scheduleUpload:20,scheduleDownload:100,days:[1,2,3,4,5],start:"22:00",end:"07:00"}),_=Xe(P()),D=R(()=>[{value:1,label:n("一")},{value:2,label:n("二")},{value:3,label:n("三")},{value:4,label:n("四")},{value:5,label:n("五")},{value:6,label:n("六")},{value:0,label:n("日")}]),E=R(()=>{const he=f.value.toLowerCase();return w.value.filter(H=>!he||[H.displayName,H.hostname,H.mac,...H.ipv4||[]].some(J=>String(J||"").toLowerCase().includes(he)))}),A=he=>{const[H,J]=he.split(":").map(Number);return H*60+J},U=he=>`${String(Math.floor(he/60)).padStart(2,"0")}:${String(he%60).padStart(2,"0")}`,q=he=>he?new Date(he).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"—",z=he=>{const H=w.value.find(J=>J.deviceId===he);return(H==null?void 0:H.displayName)||(H==null?void 0:H.hostname)||he},N=he=>he.kind==="default"||he.name==="跟随网络默认"?n("默认路线"):he.kind==="self"&&he.name==="本机路由"?n("本机路由"):he.kind==="bypass"&&he.name==="旁路由"?n("旁路由"):he.kind==="floating"&&he.name==="浮动网关"?n("浮动网关"):he.name==="自定义网关"?n("自定义网关"):he.name,F=he=>he.slice(0,3).map(z).join("、")+(he.length>3?` +${he.length-3}`:"")||n("尚未选择设备"),Z=he=>{var H,J;return(J=(H=S.value.find(ge=>ge.deviceId===he))==null?void 0:H.sources)==null?void 0:J.includes("device")},Q=R(()=>_.members.filter(Z).length),ce=(he=[])=>he.slice(1).map(H=>{var J;return H==="global"?n("默认规则"):H==="device"?n("单设备例外"):H.startsWith("group:")?((J=$.value.find(ge=>ge.id===H.slice(6)))==null?void 0:J.name)||n("设备分组"):H}).join(" → ")||n("系统默认"),ve=he=>{var J,ge;const H=[he.networkAccess?n("允许联网"):n("暂停联网")];return(J=he.speed)!=null&&J.enabled&&H.push(n("已限速")),he.targetId&&he.targetId!=="default"&&H.push(n("已指定路线")),(ge=he.quota)!=null&&ge.enabled&&H.push(n("有流量额度")),H.join(" · ")},O=he=>{var J,ge,ze;const H=[];if((he==null?void 0:he.access)===!1?H.push(n("暂停联网")):(he==null?void 0:he.access)===!0&&H.push(n("允许联网")),(J=he==null?void 0:he.speed)!=null&&J.enabled&&H.push(n("速度上限")),he!=null&&he.targetId&&H.push(n("指定路线")),(ge=he==null?void 0:he.quota)!=null&&ge.enabled&&H.push(n("流量额度")),(ze=he==null?void 0:he.schedules)!=null&&ze.length){const Fe=he.schedules[0];H.push(`${Fe.action==="limit"?n("时段限速"):n("休息时段")} ${U(Fe.startMinute)}–${U(Fe.endMinute)}`)}return H.join(" · ")||n("仅分组,不覆盖设备设置")},de=R(()=>O(st())),K=he=>({all_success:n("批量规则已应用"),partial:n("部分设备需要处理"),failed:n("批量规则未应用")})[he]||n("批量检查完成"),xe=()=>Object.assign(_,P()),j=()=>{xe(),g.value=!0,b.value=!1,m.value=!1,k.value=!1,r.value=""},re=()=>{xe(),qe($e.value),g.value=!0,m.value=!0,b.value=!1,k.value=!1},$e=x(null),qe=he=>{var J,ge,ze,Fe,Ee,dt,tt,kt,ct,Tt;if(!he)return;_.access=he.access===!0?"allow":he.access===!1?"block":"inherit",_.targetId=he.targetId||"",_.speedEnabled=!!((J=he.speed)!=null&&J.enabled),_.upload=((ge=he.speed)==null?void 0:ge.uploadSpeed)||100,_.download=((ze=he.speed)==null?void 0:ze.downloadSpeed)||1e3,_.quotaEnabled=!!((Fe=he.quota)!=null&&Fe.enabled),_.quotaPeriod=((Ee=he.quota)==null?void 0:Ee.period)||"monthly",_.quotaGB=(dt=he.quota)!=null&&dt.limitBytes?he.quota.limitBytes/1073741824:10,_.quotaAction=((tt=he.quota)==null?void 0:tt.action)||"notify";const H=(kt=he.schedules)==null?void 0:kt[0];_.scheduleEnabled=!!H,H&&(_.scheduleAction=H.action||"block",_.scheduleUpload=((ct=H.speed)==null?void 0:ct.uploadSpeed)||20,_.scheduleDownload=((Tt=H.speed)==null?void 0:Tt.downloadSpeed)||100,_.days=[...H.days],_.start=U(H.startMinute),_.end=U(H.endMinute))},De=he=>{xe(),Object.assign(_,{id:he.id,name:he.name,priority:he.priority,members:[...he.members]}),qe(he.policy),g.value=!0,b.value=!0,m.value=!1,k.value=!1,r.value=""},Ke=()=>{g.value=!1,k.value=!1,r.value=""},at=()=>{if(r.value="",!(!m.value&&!_.name)){if(_.scheduleEnabled&&!_.days.length){r.value=n("请至少选择一天");return}if(_.scheduleEnabled&&_.scheduleAction==="limit"&&(!_.scheduleUpload||!_.scheduleDownload)){r.value=n("请填写完整的时段速度上限");return}k.value=!0}},st=()=>{const he=_.access==="inherit"?void 0:_.access==="allow",H=_.scheduleEnabled?[{id:"schedule",enabled:!0,days:[..._.days],startMinute:A(_.start),endMinute:A(_.end),action:_.scheduleAction,speed:_.scheduleAction==="limit"?{enabled:!0,uploadSpeed:_.scheduleUpload,downloadSpeed:_.scheduleDownload}:void 0}]:[];return{access:he,targetId:_.targetId||void 0,speed:_.speedEnabled?{enabled:!0,uploadSpeed:_.upload,downloadSpeed:_.download}:void 0,quota:_.quotaEnabled?{enabled:!0,period:_.quotaPeriod,limitBytes:Math.round(_.quotaGB*1073741824),action:_.quotaAction}:void 0,schedules:H}},et=()=>B(null,null,function*(){u.value=!0,r.value="";try{const he=m.value?{action:"set_global_policy",expectedVersion:p.value,globalPolicy:st()}:{action:"upsert_group",expectedVersion:p.value,group:{id:_.id||`group_${Date.now().toString(36)}`,name:_.name,priority:_.priority,members:[..._.members],policy:st()}},H=(yield t.DeviceMangement.deviceGroupsV2.POST(he)).data.result;if(H!=null&&H.error)throw new Error(H.error.message);g.value=!1,k.value=!1,yield it()}catch(he){r.value=(he==null?void 0:he.message)||n("保存失败")}finally{u.value=!1}}),Ze=he=>B(null,null,function*(){if(window.confirm(`${n("删除分组")}“${he.name}”? +${n("设备和单设备例外不会被删除。")}`))try{const H=(yield t.DeviceMangement.deviceGroupsV2.POST({action:"delete_group",groupId:he.id,expectedVersion:p.value})).data.result;if(H!=null&&H.error)throw new Error(H.error.message);yield it()}catch(H){c.value=(H==null?void 0:H.message)||n("删除失败")}}),it=()=>B(null,null,function*(){var he,H,J;l.value=!0,c.value="";try{const[ge,ze,Fe]=yield Promise.all([t.DeviceMangement.deviceGroupsV2.GET(),t.DeviceMangement.deviceInventoryV2.GET(),t.DeviceMangement.gatewayTargetsV2.GET().catch(()=>null)]),Ee=ge.data.result;if(Ee!=null&&Ee.error)throw new Error(Ee.error.message);$.value=(Ee==null?void 0:Ee.groups)||[],$e.value=(Ee==null?void 0:Ee.globalPolicy)||null,S.value=(Ee==null?void 0:Ee.effective)||[],p.value=(Ee==null?void 0:Ee.version)||"",v.value=(Ee==null?void 0:Ee.timezone)||"",h.value=(Ee==null?void 0:Ee.nextEvaluationAt)||"",y.value=Ee==null?void 0:Ee.lastBatch,w.value=((he=ze.data.result)==null?void 0:he.devices)||[],C.value=((J=(H=Fe==null?void 0:Fe.data)==null?void 0:H.result)==null?void 0:J.targets)||[]}catch(ge){c.value=(ge==null?void 0:ge.message)||n("读取设备分组失败")}finally{l.value=!1}});return it(),(he,H)=>(i(),d("section",eR,[e("header",tR,[e("div",null,[e("h2",nR,a(o(n)("分组与计划")),1),e("p",null,a(o(n)("把需要相同安排的设备放在一起,一次设置联网、速度、路线、时段或流量额度。")),1)]),e("div",aR,[e("button",{type:"button",onClick:re},a(o(n)("默认规则")),1),e("button",{type:"button",class:"primary",onClick:j},a(o(n)("新建分组")),1)])]),l.value?(i(),Y(yt,{key:0,kind:"loading",title:o(n)("正在读取设备分组")},null,8,["title"])):c.value?(i(),Y(yt,{key:1,kind:"error",title:o(n)("设备分组读取失败"),description:c.value,"action-label":o(n)("重新加载"),onAction:it},null,8,["title","description","action-label"])):(i(),d(V,{key:2},[e("div",sR,[e("span",null,a(o(n)("按路由器时间执行"))+" · "+a(v.value||"—"),1),e("span",null,a(o(n)("下次检查"))+" "+a(q(h.value)),1)]),y.value&&y.value.status!=="unchanged"?(i(),d("div",{key:0,class:_e(["batch-result",y.value.status]),role:"status"},[e("strong",null,a(K(y.value.status)),1),e("span",null,a(o(n)("成功"))+" "+a(y.value.applied)+" · "+a(o(n)("跳过"))+" "+a(y.value.skipped)+" · "+a(o(n)("失败"))+" "+a(y.value.failed),1)],2)):T("",!0),!$.value.length&&!g.value?(i(),Y(yt,{key:1,kind:"empty",title:o(n)("还没有设备分组"),description:o(n)("例如创建“儿童设备”,设置晚间暂停联网和每月流量额度。")},null,8,["title","description"])):(i(),d("div",oR,[(i(!0),d(V,null,oe($.value,J=>(i(),d("article",{key:J.id,class:"group-card"},[e("div",lR,[e("div",null,[e("strong",null,a(J.name),1),e("span",null,a(J.members.length)+" "+a(o(n)("台设备")),1)]),e("span",iR,"P"+a(J.priority),1)]),e("p",null,a(O(J.policy)),1),e("div",rR,a(F(J.members)),1),e("div",cR,[e("button",{type:"button",onClick:ge=>De(J)},a(o(n)("编辑")),9,dR),e("button",{type:"button",class:"danger-link",onClick:ge=>Ze(J)},a(o(n)("删除")),9,uR)])]))),128))])),S.value.length?(i(),d("details",vR,[e("summary",null,[ue(a(o(n)("查看最终生效结果与来源"))+" ",1),e("small",null,a(Math.min(S.value.length,50))+" / "+a(S.value.length),1)]),e("div",pR,[(i(!0),d(V,null,oe(S.value.slice(0,50),J=>(i(),d("div",{key:J.deviceId},[e("span",null,[e("strong",null,a(z(J.deviceId)),1),e("small",null,a(ve(J)),1)]),e("em",null,a(ce(J.sources)),1)]))),128))])])):T("",!0),g.value?(i(),d("form",{key:4,class:"editor",onSubmit:Ge(at,["prevent"])},[e("div",hR,[e("div",null,[e("h3",null,a(m.value?o(n)("默认规则"):b.value?o(n)("编辑分组"):o(n)("新建分组")),1),e("p",null,a(m.value?o(n)("只为没有更具体规则的设备提供默认值。"):o(n)("单设备例外始终优先;多个分组冲突时,优先级较高的生效。")),1)]),e("button",{type:"button",class:"close",onClick:Ke,"aria-label":o(n)("关闭")},"×",8,mR)]),m.value?T("",!0):(i(),d("div",fR,[e("label",null,[e("span",null,a(o(n)("分组名称")),1),W(e("input",{"onUpdate:modelValue":H[0]||(H[0]=J=>_.name=J),maxlength:"64",required:"",placeholder:o(n)("例如:儿童设备")},null,8,bR),[[Oe,_.name,void 0,{trim:!0}]])])])),m.value?T("",!0):(i(),d("details",gR,[e("summary",null,a(o(n)("高级设置")),1),e("label",null,[e("span",null,a(o(n)("优先级")),1),W(e("input",{"onUpdate:modelValue":H[1]||(H[1]=J=>_.priority=J),type:"number",min:"0",max:"999"},null,512),[[Oe,_.priority,void 0,{number:!0}]]),e("small",null,a(o(n)("单设备例外始终优先;多个分组冲突时,优先级较高的生效。")),1)])])),m.value?T("",!0):(i(),d("fieldset",_R,[e("legend",null,[ue(a(o(n)("选择设备"))+" ",1),e("small",null,a(o(n)("已选择"))+" "+a(_.members.length)+" "+a(o(n)("台设备")),1)]),W(e("input",{"onUpdate:modelValue":H[2]||(H[2]=J=>f.value=J),class:"device-search",type:"search",placeholder:o(n)("搜索名称、IP 或 MAC")},null,8,yR),[[Oe,f.value,void 0,{trim:!0}]]),e("div",kR,[(i(!0),d(V,null,oe(E.value,J=>{var ge;return i(),d("label",{key:J.deviceId},[W(e("input",{"onUpdate:modelValue":H[3]||(H[3]=ze=>_.members=ze),type:"checkbox",value:J.deviceId},null,8,wR),[[gt,_.members]]),e("span",null,[e("strong",null,a(J.displayName||J.hostname||o(n)("未命名设备")),1),e("small",null,a(((ge=J.ipv4)==null?void 0:ge[0])||J.mac||J.deviceId),1)]),Z(J.deviceId)?(i(),d("em",$R,a(o(n)("有单设备例外")),1)):T("",!0)])}),128))])])),e("fieldset",null,[e("legend",null,a(o(n)("共同规则")),1),e("div",CR,[e("label",null,[e("span",null,a(o(n)("联网权限")),1),W(e("select",{"onUpdate:modelValue":H[4]||(H[4]=J=>_.access=J)},[e("option",SR,a(o(n)("不设置")),1),e("option",xR,a(o(n)("允许联网")),1),e("option",PR,a(o(n)("暂停联网")),1)],512),[[Be,_.access]])]),e("label",null,[e("span",null,a(o(n)("上网路线")),1),W(e("select",{"onUpdate:modelValue":H[5]||(H[5]=J=>_.targetId=J)},[e("option",TR,a(o(n)("不设置")),1),(i(!0),d(V,null,oe(C.value,J=>(i(),d("option",{key:J.id,value:J.id,disabled:!J.supported},a(N(J))+a(J.supported?"":o(n)("(不可用)")),9,MR))),128))],512),[[Be,_.targetId]])]),e("label",ER,[W(e("input",{"onUpdate:modelValue":H[6]||(H[6]=J=>_.speedEnabled=J),type:"checkbox"},null,512),[[gt,_.speedEnabled]]),ue(a(o(n)("速度上限")),1)]),_.speedEnabled?(i(),d("div",IR,[e("label",null,[e("span",null,a(o(n)("上传 Mbit/s")),1),W(e("input",{"onUpdate:modelValue":H[7]||(H[7]=J=>_.upload=J),type:"number",min:"1"},null,512),[[Oe,_.upload,void 0,{number:!0}]])]),e("label",null,[e("span",null,a(o(n)("下载 Mbit/s")),1),W(e("input",{"onUpdate:modelValue":H[8]||(H[8]=J=>_.download=J),type:"number",min:"1"},null,512),[[Oe,_.download,void 0,{number:!0}]])])])):T("",!0),e("label",DR,[W(e("input",{"onUpdate:modelValue":H[9]||(H[9]=J=>_.quotaEnabled=J),type:"checkbox"},null,512),[[gt,_.quotaEnabled]]),ue(a(o(n)("流量额度")),1)]),_.quotaEnabled?(i(),d("div",LR,[e("label",null,[e("span",null,a(o(n)("周期")),1),W(e("select",{"onUpdate:modelValue":H[10]||(H[10]=J=>_.quotaPeriod=J)},[e("option",AR,a(o(n)("每天")),1),e("option",NR,a(o(n)("每周")),1),e("option",OR,a(o(n)("每月")),1)],512),[[Be,_.quotaPeriod]])]),e("label",null,[e("span",null,a(o(n)("额度 GB")),1),W(e("input",{"onUpdate:modelValue":H[11]||(H[11]=J=>_.quotaGB=J),type:"number",min:"0.1",step:"0.1"},null,512),[[Oe,_.quotaGB,void 0,{number:!0}]])]),e("label",null,[e("span",null,a(o(n)("达到后")),1),W(e("select",{"onUpdate:modelValue":H[12]||(H[12]=J=>_.quotaAction=J)},[e("option",zR,a(o(n)("仅提醒")),1),e("option",qR,a(o(n)("暂停联网")),1)],512),[[Be,_.quotaAction]])])])):T("",!0)])]),e("fieldset",null,[e("legend",null,a(o(n)("休息时段")),1),e("label",RR,[W(e("input",{"onUpdate:modelValue":H[13]||(H[13]=J=>_.scheduleEnabled=J),type:"checkbox"},null,512),[[gt,_.scheduleEnabled]]),ue(" "+a(o(n)("在指定时段执行规则")),1)]),_.scheduleEnabled?(i(),d("div",VR,[e("label",null,[e("span",null,a(o(n)("时段内执行")),1),W(e("select",{"onUpdate:modelValue":H[14]||(H[14]=J=>_.scheduleAction=J)},[e("option",BR,a(o(n)("暂停联网")),1),e("option",UR,a(o(n)("限制速度")),1)],512),[[Be,_.scheduleAction]])]),_.scheduleAction==="limit"?(i(),d("div",FR,[e("label",null,[e("span",null,a(o(n)("上传 Mbit/s")),1),W(e("input",{"onUpdate:modelValue":H[15]||(H[15]=J=>_.scheduleUpload=J),type:"number",min:"1"},null,512),[[Oe,_.scheduleUpload,void 0,{number:!0}]])]),e("label",null,[e("span",null,a(o(n)("下载 Mbit/s")),1),W(e("input",{"onUpdate:modelValue":H[16]||(H[16]=J=>_.scheduleDownload=J),type:"number",min:"1"},null,512),[[Oe,_.scheduleDownload,void 0,{number:!0}]])])])):T("",!0),e("div",HR,[(i(!0),d(V,null,oe(D.value,J=>(i(),d("label",{key:J.value,class:_e({selected:_.days.includes(J.value)})},[W(e("input",{"onUpdate:modelValue":H[17]||(H[17]=ge=>_.days=ge),type:"checkbox",value:J.value},null,8,GR),[[gt,_.days]]),ue(a(J.label),1)],2))),128))]),e("div",jR,[e("label",null,[e("span",null,a(o(n)("开始")),1),W(e("input",{"onUpdate:modelValue":H[18]||(H[18]=J=>_.start=J),type:"time"},null,512),[[Oe,_.start]])]),e("label",null,[e("span",null,a(o(n)("结束")),1),W(e("input",{"onUpdate:modelValue":H[19]||(H[19]=J=>_.end=J),type:"time"},null,512),[[Oe,_.end]])])]),e("small",null,a(o(n)("结束时间早于开始时间时,会自动跨到第二天。")),1)])):T("",!0)]),k.value?(i(),d("div",{key:3,class:"preview-card",role:"dialog","aria-label":o(n)("保存前预览")},[e("strong",null,a(o(n)("确认这次调整")),1),m.value?T("",!0):(i(),d("span",JR,a(o(n)("影响设备"))+":"+a(_.members.length),1)),e("span",null,a(de.value),1),Q.value?(i(),d("p",KR,a(Q.value)+" "+a(o(n)("台设备有单设备例外,最终值仍以例外为准。")),1)):T("",!0),e("div",null,[e("button",{type:"button",onClick:H[20]||(H[20]=J=>k.value=!1)},a(o(n)("返回修改")),1),e("button",{type:"button",class:"primary",disabled:u.value,onClick:et},a(u.value?o(n)("正在应用…"):o(n)("确认并应用")),9,ZR)])],8,WR)):T("",!0),r.value?(i(),d("p",YR,a(r.value),1)):T("",!0),k.value?T("",!0):(i(),d("div",QR,[e("button",{type:"button",onClick:Ke},a(o(n)("取消")),1),e("button",XR,a(o(n)("预览影响")),1)]))],32)):T("",!0)],64))]))}}),tV=le(eV,[["__scopeId","data-v-2a77cd21"]]),nV={class:"floating-wizard"},aV={key:2,class:"capability-card"},sV={class:"status-card"},oV={key:0,class:"configured-card"},lV=["aria-label"],iV={key:0,class:"wizard-card"},rV={class:"toggle-line"},cV={class:"role-grid"},dV={key:1,class:"wizard-card form-grid"},uV={key:2,class:"wizard-card review-card"},vV={key:0},pV={key:0},hV={key:1,class:"warning"},mV={key:2,class:"hint"},fV={class:"wizard-actions"},bV=["disabled"],gV=["disabled"],_V=["disabled"],yV=["disabled"],kV={key:3,class:"drill-box"},wV={key:0,class:"hint"},$V=X({__name:"floatingGatewayWizard",emits:["install"],setup(s){const t=Ne(ye({},we),{DeviceMangement:xn()}),{$gettext:n}=Ae(),l=x(!0),u=x(!1),c=x(!1),r=x(!0),p=x(""),v=x(""),h=x("success"),g=x(""),b=x(1),m=x(""),f=x(null),k=Xe({capability:"",state:"disabled",holder:"none",peerState:"unverifiable",externalState:"unverifiable"}),$=Xe({enabled:!1,role:"preferred",virtualIP:"",peerIPs:[],healthURL:"",healthTimeoutSec:5}),w=R({get:()=>$.peerIPs.join(", "),set:Z=>{$.peerIPs=Z.split(/[,,\s]+/).map(Q=>Q.trim()).filter(Boolean)}}),S=R(()=>!!($.virtualIP||$.peerIPs.length)),C=R(()=>$.role==="takeover"?n("故障接管节点"):n("优先服务节点")),y=R(()=>({disabled:n("未启用"),starting:n("等待状态确认"),healthy:n("运行正常"),degraded:n("部分异常"),failover:n("正在接管"),error:n("运行异常")})[k.state]||n("未知")),P=R(()=>({local:n("当前节点"),peer:n("对端节点"),none:n("无人持有"),unknown:n("等待确认")})[k.holder]||n("等待确认")),_=Z=>({reachable:n("可达"),unreachable:n("不可达"),healthy:n("正常"),failed:n("失败"),unverifiable:n("尚未验证")})[Z]||n("尚未验证"),D=Z=>[n("节点职责"),n("地址与检测"),n("预检与应用")][Z-1],E=Z=>({change_enabled_state:n("更改启用状态"),change_node_responsibility:n("更改节点职责"),change_virtual_ip:n("更改虚拟 IP"),change_peer_nodes:n("更改对端节点"),change_health_check:n("更改健康检测")})[Z]||Z,A=()=>({config:ye({},$),expectedVersion:m.value}),U=()=>{r.value=!0,b.value=1,f.value=null,v.value=""},q=()=>B(null,null,function*(){var Z,Q,ce,ve,O;l.value=!0,p.value="";try{const{data:de}=yield t.DeviceMangement.floatingGatewayV2.GET();if((Z=de.result)!=null&&Z.error)throw new Error(de.result.error.message);Object.assign(k,((Q=de.result)==null?void 0:Q.status)||{}),Object.assign($,((ce=de.result)==null?void 0:ce.config)||{}),m.value=((O=(ve=de.result)==null?void 0:ve.plan)==null?void 0:O.version)||"",r.value=!S.value}catch(de){p.value=(de==null?void 0:de.message)||n("读取结果失败")}finally{l.value=!1}}),z=()=>B(null,null,function*(){var Z,Q;if(b.value<2){b.value++;return}b.value=3,u.value=!0,f.value=null;try{const{data:ce}=yield t.DeviceMangement.floatingGatewayV2.PLAN(A());f.value=(Z=ce.result)==null?void 0:Z.plan,m.value=((Q=f.value)==null?void 0:Q.version)||m.value}catch(ce){h.value="error",v.value=(ce==null?void 0:ce.message)||n("预检失败")}finally{u.value=!1}}),N=()=>B(null,null,function*(){var Z,Q,ce,ve,O,de,K,xe,j;c.value=!0,v.value="";try{const{data:re}=yield t.DeviceMangement.floatingGatewayV2.APPLY(A());if((Z=re.result)!=null&&Z.error||(ce=(Q=re.result)==null?void 0:Q.plan)!=null&&ce.error)throw new Error(((O=(ve=re.result)==null?void 0:ve.error)==null?void 0:O.message)||((xe=(K=(de=re.result)==null?void 0:de.plan)==null?void 0:K.error)==null?void 0:xe.message));h.value="success",v.value=(j=re.result)!=null&&j.changed?n("配置已保存,请在双端完成后验证实际持有者"):n("配置没有变化"),yield q()}catch(re){h.value="error",v.value=(re==null?void 0:re.message)||n("应用失败,原配置已恢复")}finally{c.value=!1}}),F=()=>B(null,null,function*(){var Z,Q;try{const{data:ce}=yield t.DeviceMangement.floatingGatewayV2.DRILL();g.value=((Q=(Z=ce.result)==null?void 0:Z.error)==null?void 0:Q.message)||n("演练计划已就绪")}catch(ce){g.value=(ce==null?void 0:ce.message)||n("无法生成演练计划")}});return q(),(Z,Q)=>{var ce,ve,O,de;return i(),d("div",nV,[l.value?(i(),Y(yt,{key:0,kind:"loading",title:o(n)("正在读取浮动网关状态")},null,8,["title"])):p.value?(i(),Y(yt,{key:1,kind:"error",title:o(n)("浮动网关状态不可用"),description:p.value,"action-label":o(n)("重新加载"),onAction:q},null,8,["title","description","action-label"])):k.capability==="not_installed"?(i(),d("div",aV,[e("strong",null,a(o(n)("尚未安装浮动网关组件")),1),e("span",null,a(o(n)("安装后可让两台路由器共同提供一个稳定的虚拟网关。")),1),e("button",{type:"button",onClick:Q[0]||(Q[0]=K=>Z.$emit("install"))},a(o(n)("立即安装")),1)])):(i(),d(V,{key:3},[e("div",sV,[e("div",null,[e("small",null,a(o(n)("运行状态")),1),e("strong",null,a(y.value),1)]),e("div",null,[e("small",null,a(o(n)("虚拟 IP 持有者")),1),e("strong",null,a(P.value),1)]),e("div",null,[e("small",null,a(o(n)("对端状态")),1),e("strong",null,a(_(k.peerState)),1)]),e("div",null,[e("small",null,a(o(n)("外网检测")),1),e("strong",null,a(_(k.externalState)),1)])]),S.value&&!r.value?(i(),d("section",oV,[e("div",null,[e("small",null,a(o(n)("虚拟网关 IPv4")),1),e("strong",null,a($.virtualIP||"—"),1)]),e("div",null,[e("small",null,a(o(n)("节点职责")),1),e("strong",null,a(C.value),1)]),e("div",null,[e("small",null,a(o(n)("对端节点 IPv4")),1),e("strong",null,a(w.value||"—"),1)]),e("button",{type:"button",class:"secondary",onClick:U},a(o(n)("编辑")),1)])):(i(),d(V,{key:1},[e("ol",{class:"wizard-steps","aria-label":o(n)("配置步骤")},[(i(),d(V,null,oe(3,K=>e("li",{key:K,class:_e({active:b.value===K,done:b.value>K})},[e("b",null,a(K),1),e("span",null,a(D(K)),1)],2)),64))],8,lV),b.value===1?(i(),d("section",iV,[e("label",rV,[W(e("input",{"onUpdate:modelValue":Q[1]||(Q[1]=K=>$.enabled=K),type:"checkbox"},null,512),[[gt,$.enabled]]),e("span",null,a(o(n)("启用浮动网关")),1)]),e("p",null,a(o(n)("两台节点必须配置相同的虚拟 IP,并选择互补的职责。")),1),e("div",cV,[e("label",{class:_e({selected:$.role==="preferred"})},[W(e("input",{"onUpdate:modelValue":Q[2]||(Q[2]=K=>$.role=K),type:"radio",value:"preferred"},null,512),[[Mt,$.role]]),e("strong",null,a(o(n)("优先服务节点")),1),e("small",null,a(o(n)("正常情况下提供虚拟网关")),1)],2),e("label",{class:_e({selected:$.role==="takeover"})},[W(e("input",{"onUpdate:modelValue":Q[3]||(Q[3]=K=>$.role=K),type:"radio",value:"takeover"},null,512),[[Mt,$.role]]),e("strong",null,a(o(n)("故障接管节点")),1),e("small",null,a(o(n)("优先节点不可达时接管")),1)],2)])])):b.value===2?(i(),d("section",dV,[e("label",null,[e("span",null,a(o(n)("虚拟网关 IPv4")),1),W(e("input",{"onUpdate:modelValue":Q[4]||(Q[4]=K=>$.virtualIP=K),inputmode:"decimal",placeholder:"192.168.100.3"},null,512),[[Oe,$.virtualIP,void 0,{trim:!0}]])]),e("label",null,[e("span",null,a(o(n)("对端节点 IPv4")),1),W(e("input",{"onUpdate:modelValue":Q[5]||(Q[5]=K=>w.value=K),inputmode:"decimal",placeholder:"192.168.100.2"},null,512),[[Oe,w.value,void 0,{trim:!0}]]),e("small",null,a(o(n)("多个地址用逗号分隔")),1)]),e("label",null,[e("span",null,a(o(n)("外网检测地址(可选)")),1),W(e("input",{"onUpdate:modelValue":Q[6]||(Q[6]=K=>$.healthURL=K),type:"url",placeholder:"https://example.com/health"},null,512),[[Oe,$.healthURL,void 0,{trim:!0}]])]),e("label",null,[e("span",null,a(o(n)("检测超时(秒)")),1),W(e("input",{"onUpdate:modelValue":Q[7]||(Q[7]=K=>$.healthTimeoutSec=K),type:"number",min:"1",max:"30"},null,512),[[Oe,$.healthTimeoutSec,void 0,{number:!0}]])])])):(i(),d("section",uV,[u.value?(i(),Y(yt,{key:0,kind:"loading",title:o(n)("正在预检配置")},null,8,["title"])):f.value?(i(),d(V,{key:1},[e("div",{class:_e(["review-state",f.value.error?"error":"ready"])},[e("strong",null,a(f.value.error?o(n)("预检未通过"):f.value.changed?o(n)("可以安全应用"):o(n)("配置没有变化")),1),f.value.error?(i(),d("span",vV,a(f.value.error.message),1)):T("",!0)],2),(ce=f.value.changes)!=null&&ce.length?(i(),d("ul",pV,[(i(!0),d(V,null,oe(f.value.changes,K=>(i(),d("li",{key:K},a(E(K)),1))),128))])):T("",!0),(ve=f.value.affectedDevices)!=null&&ve.length?(i(),d("p",hV,a(o(n)("已有设备使用该虚拟网关,请先迁移这些设备。"))+"("+a(f.value.affectedDevices.length)+")",1)):T("",!0),f.value.requiresDrill?(i(),d("p",mV,a(o(n)("应用后建议在维护窗口执行受控切换演练。")),1)):T("",!0)],64)):T("",!0)])),e("div",fV,[S.value&&b.value===1?(i(),d("button",{key:0,type:"button",class:"secondary",disabled:c.value,onClick:Q[8]||(Q[8]=K=>r.value=!1)},a(o(n)("取消")),9,bV)):T("",!0),b.value>1?(i(),d("button",{key:1,type:"button",class:"secondary",disabled:c.value,onClick:Q[9]||(Q[9]=K=>b.value--)},a(o(n)("上一步")),9,gV)):T("",!0),b.value<3?(i(),d("button",{key:2,type:"button",disabled:c.value,onClick:z},a(o(n)("下一步")),9,_V)):(i(),d("button",{key:3,type:"button",disabled:c.value||u.value||!!((O=f.value)!=null&&O.error)||!((de=f.value)!=null&&de.changed),onClick:N},a(c.value?o(n)("正在应用…"):o(n)("应用配置")),9,yV))])],64)),v.value?(i(),d("div",{key:2,class:_e(["feedback",h.value])},a(v.value),3)):T("",!0),$.enabled?(i(),d("details",kV,[e("summary",null,a(o(n)("故障切换演练")),1),e("p",null,a(o(n)("演练会短暂改变网关持有者,必须先完成双端配对校验。系统不会自动开始。")),1),e("button",{type:"button",class:"secondary",onClick:F},a(o(n)("查看演练计划")),1),g.value?(i(),d("p",wV,a(g.value),1)):T("",!0)])):T("",!0)],64))])}}}),CV=le($V,[["__scopeId","data-v-aec64bba"]]),SV={class:"rules-hub","aria-labelledby":"network-rules-title"},xV={class:"rules-header"},PV={id:"network-rules-title"},TV={class:"rule-toolbar"},MV=["placeholder"],EV={value:""},IV={value:"static"},DV={value:"route"},LV={value:"speed"},AV={value:"access"},NV={value:""},OV={value:"active"},zV={value:"orphaned"},qV={value:"unreachable"},RV={value:"unsupported"},VV={key:0,class:"selection-bar"},BV=["disabled"],UV={key:2,class:"rules-table-wrap"},FV=["checked","aria-label"],HV=["checked","onChange","aria-label"],GV={class:"kind-pill"},jV={key:0,class:"next-action"},WV=["onClick"],JV={key:3,class:"rule-cards"},KV={class:"rule-select"},ZV=["checked","onChange","aria-label"],YV={class:"rule-identity"},QV={class:"rule-result"},XV={class:"kind-pill"},eB={key:0,class:"next-action"},tB=["onClick"],nB=X({__name:"networkRulesHub",setup(s){const t=Ne(ye({},we),{DeviceMangement:xn()}),{$gettext:n}=Ae(),l=x(!0),u=x(!1),c=x(""),r=x(""),p=x(""),v=x(""),h=x(""),g=x(""),b=x("success"),m=x([]),f=x(new Set),k=R(()=>{const z=r.value.toLowerCase();return m.value.filter(N=>(!p.value||N.kind===p.value)&&(!v.value||N.status===v.value)&&(!z||[N.displayName,N.mac,N.ip,N.summary].some(F=>String(F||"").toLowerCase().includes(z))))}),$=R(()=>k.value.length>0&&k.value.every(z=>f.value.has(z.id))),w=z=>({static:n("地址预留"),route:n("上网路线"),speed:n("设备限速"),access:n("联网权限")})[z]||z,S=z=>({active:n("正常"),orphaned:n("离线或孤立"),unreachable:n("网关不可达"),unsupported:n("需要修复")})[z]||z,C=z=>({restore_default_or_choose:n("恢复默认路线,或在设备详情中选择其他可用路线"),check_gateway_or_restore_default:n("确认网关设备已开机并接入当前局域网;仍不可达时恢复默认路线"),restore_default_or_edit:n("恢复默认路线,或编辑路线后重新应用")})[z]||n("请在设备详情中检查这条路线"),y=z=>{let N=String(z||"—");for(const[F,Z]of[["跟随网络默认",n("默认路线")],["本机路由",n("本机路由")],["旁路由",n("旁路由")],["浮动网关",n("浮动网关")],["自定义网关",n("自定义网关")]])N=N.replace(F,Z);return N},P=z=>{const N=new Set(f.value);N.has(z)?N.delete(z):N.size<128&&N.add(z),f.value=N},_=()=>{const z=new Set(f.value),N=$.value;for(const F of k.value)N?z.delete(F.id):z.size<128&&z.add(F.id);f.value=z},D=()=>B(null,null,function*(){var z,N,F;l.value=!0,c.value="";try{const{data:Z}=yield t.DeviceMangement.networkRulesV2.GET();if((z=Z.result)!=null&&z.error)throw new Error(Z.result.error.message);m.value=((N=Z.result)==null?void 0:N.rules)||[],h.value=((F=Z.result)==null?void 0:F.version)||"",f.value=new Set([...f.value].filter(Q=>m.value.some(ce=>ce.id===Q)))}catch(Z){c.value=(Z==null?void 0:Z.message)||n("读取结果失败")}finally{l.value=!1}}),E=(z,N)=>B(null,null,function*(){var Z;g.value="";const F={action:"delete",ruleIds:z,expectedVersion:h.value};try{const Q=(Z=(yield t.DeviceMangement.networkRulesV2.PLAN(F)).data.result)==null?void 0:Z.plan;if(Q!=null&&Q.error)throw new Error(Q.error.message);if(!window.confirm(`${N} +${n("影响规则")}:${Q.affectedCount} +${n("失败时将恢复")}:${Q.rollbackScope.join("、")}`))return;u.value=!0;const ce=(yield t.DeviceMangement.networkRulesV2.APPLY(F)).data.result;if(ce!=null&&ce.error)throw new Error(ce.error.message);b.value="success",g.value=n("规则已删除"),f.value=new Set,yield D()}catch(Q){b.value="error",g.value=(Q==null?void 0:Q.message)||n("删除失败,原配置已恢复")}finally{u.value=!1}}),A=()=>E([...f.value],n("确认删除所选规则?")),U=z=>z.kind==="route"&&["unreachable","unsupported"].includes(z.status),q=z=>E([z.id],n("恢复默认路线?设备重新获取地址后生效。"));return D(),(z,N)=>(i(),d("section",SV,[e("div",xV,[e("div",null,[e("h2",PV,a(o(n)("规则台账")),1),e("p",null,a(o(n)("集中检查离线、孤立或需要修复的规则;新设置请从对应设备详情进入。")),1)])]),l.value?(i(),Y(yt,{key:0,kind:"loading",title:o(n)("正在读取网络规则")},null,8,["title"])):c.value?(i(),Y(yt,{key:1,kind:"error",title:o(n)("网络规则读取失败"),description:c.value,"action-label":o(n)("重新加载"),onAction:D},null,8,["title","description","action-label"])):(i(),d(V,{key:2},[e("div",TV,[W(e("input",{"onUpdate:modelValue":N[0]||(N[0]=F=>r.value=F),type:"search",placeholder:o(n)("搜索设备、MAC、IP 或规则")},null,8,MV),[[Oe,r.value,void 0,{trim:!0}]]),W(e("select",{"onUpdate:modelValue":N[1]||(N[1]=F=>p.value=F)},[e("option",EV,a(o(n)("全部类型")),1),e("option",IV,a(o(n)("地址预留")),1),e("option",DV,a(o(n)("上网路线")),1),e("option",LV,a(o(n)("设备限速")),1),e("option",AV,a(o(n)("联网权限")),1)],512),[[Be,p.value]]),W(e("select",{"onUpdate:modelValue":N[2]||(N[2]=F=>v.value=F)},[e("option",NV,a(o(n)("全部状态")),1),e("option",OV,a(o(n)("正常")),1),e("option",zV,a(o(n)("离线或孤立")),1),e("option",qV,a(o(n)("网关不可达")),1),e("option",RV,a(o(n)("需要修复")),1)],512),[[Be,v.value]])]),f.value.size?(i(),d("div",VV,[e("span",null,a(o(n)("已选择"))+" "+a(f.value.size)+" / 128",1),e("button",{type:"button",class:"danger",disabled:u.value,onClick:A},a(u.value?o(n)("正在应用…"):o(n)("删除所选规则")),9,BV)])):T("",!0),k.value.length?(i(),d("div",UV,[e("table",null,[e("thead",null,[e("tr",null,[e("th",null,[e("input",{type:"checkbox",checked:$.value,onChange:_,"aria-label":o(n)("选择当前结果")},null,40,FV)]),e("th",null,a(o(n)("设备")),1),e("th",null,a(o(n)("规则类型")),1),e("th",null,a(o(n)("最终设置")),1),e("th",null,a(o(n)("状态")),1)])]),e("tbody",null,[(i(!0),d(V,null,oe(k.value,F=>(i(),d("tr",{key:F.id,class:_e({orphaned:F.orphaned})},[e("td",null,[e("input",{type:"checkbox",checked:f.value.has(F.id),onChange:Z=>P(F.id),"aria-label":`${o(n)("选择")} ${F.displayName}`},null,40,HV)]),e("td",null,[e("strong",null,a(F.displayName||o(n)("未命名设备")),1),e("small",null,a(F.mac||F.ip||"—"),1)]),e("td",null,[e("span",GV,a(w(F.kind)),1)]),e("td",null,[ue(a(y(F.summary)),1),F.nextAction?(i(),d("small",jV,a(C(F.nextAction)),1)):T("",!0)]),e("td",null,[e("span",{class:_e(["state-pill",F.status])},a(S(F.status)),3),U(F)?(i(),d("button",{key:0,type:"button",class:"repair",onClick:Z=>q(F)},a(o(n)("恢复默认路线")),9,WV)):T("",!0)])],2))),128))])])])):(i(),Y(yt,{key:1,kind:"empty",title:o(n)("没有匹配的网络规则"),description:o(n)("可从设备详情添加地址、路线和使用限制。")},null,8,["title","description"])),k.value.length?(i(),d("div",JV,[(i(!0),d(V,null,oe(k.value,F=>(i(),d("article",{key:`card-${F.id}`,class:_e({orphaned:F.orphaned})},[e("label",KV,[e("input",{type:"checkbox",checked:f.value.has(F.id),onChange:Z=>P(F.id),"aria-label":`${o(n)("选择")} ${F.displayName}`},null,40,ZV)]),e("div",YV,[e("strong",null,a(F.displayName||o(n)("未命名设备")),1),e("small",null,a(F.mac||F.ip||"—"),1)]),e("span",{class:_e(["state-pill",F.status])},a(S(F.status)),3),e("div",QV,[e("span",XV,a(w(F.kind)),1),e("span",null,a(y(F.summary)),1)]),F.nextAction?(i(),d("p",eB,a(C(F.nextAction)),1)):T("",!0),U(F)?(i(),d("button",{key:1,type:"button",class:"repair",onClick:Z=>q(F)},a(o(n)("恢复默认路线")),9,tB)):T("",!0)],2))),128))])):T("",!0),g.value?(i(),d("p",{key:4,class:_e(["feedback",b.value])},a(g.value),3)):T("",!0)],64))]))}}),aB=le(nB,[["__scopeId","data-v-c463c3c8"]]),sB=new Set(["available","disabled","not_installed","unsupported","error"]),oB={internetAccess:"internet_access",speedLimit:"device_speed_limit",floatGateway:"floating_gateway",trafficInsights:"traffic_insights"},So=(s,t)=>{var l,u,c,r;const n=(r=(u=(l=s==null?void 0:s.capabilities)==null?void 0:l.items)==null?void 0:u[oB[t]])!=null?r:(c=s==null?void 0:s.capabilities)==null?void 0:c[t];return n!=null&&n.state?sB.has(n.state)?n:{state:"error",reason:"capability_state_unknown"}:{state:"error",reason:"capability_missing"}},ha=s=>!!s&&typeof s=="object"&&!Array.isArray(s),Wi=s=>ha(s)&&!s.error&&(s.success===void 0||s.success===0),lB=s=>{if(!Wi(s))return;const t=s.result;if(!ha(t)||t.error||typeof t.editable!="boolean")return;const n=t.settings;if(!(!ha(n)||typeof n.enabled!="boolean"||!["poolStart","poolEnd","leaseTime","defaultTargetId"].every(l=>typeof n[l]=="string")))return t},Wl=s=>{var u,c,r,p;if(!Wi(s))throw new Error("invalid_service_snapshot");const t=s.result,n=t==null?void 0:t.speedLimit,l=(p=(c=(u=t==null?void 0:t.capabilities)==null?void 0:u.items)==null?void 0:c.device_speed_limit)!=null?p:(r=t==null?void 0:t.capabilities)==null?void 0:r.speedLimit;if(!ha(t)||!ha(n)||typeof n.provider!="string"||!Array.isArray(n.providers)||!n.providers.every(v=>ha(v)&&typeof v.id=="string"&&typeof v.available=="boolean"&&typeof v.installed=="boolean")||!ha(l)||!["available","disabled","not_installed","unsupported","error"].includes(l.state))throw new Error("invalid_service_snapshot");return{speedLimit:n,capability:l}},iB=["aria-label"],rB={class:"context-state"},cB={key:0,class:"migration-card","aria-labelledby":"migration-title"},dB={class:"migration-heading"},uB={id:"migration-title"},vB={class:"migration-body"},pB={key:0,class:"migration-more"},hB={key:1,class:"migration-warning"},mB={class:"migration-actions"},fB=["disabled"],bB={key:1,class:"migration-read-error",role:"status"},gB={class:"settings-navigation"},_B=["aria-label"],yB=["onClick"],kB=["disabled"],wB={key:2,class:"settings-stack"},$B={class:"setting-card dhcp-card"},CB={class:"card-heading"},SB={key:0},xB={key:0,class:"switch-line"},PB=["disabled"],TB={key:1,class:"context-state"},MB={key:0,class:"local-config-summary"},EB={class:"config-address"},IB={key:1,class:"setting-hint config-origin"},DB=["aria-expanded"],LB=["disabled"],AB={class:"two-columns"},NB=["placeholder"],OB=["placeholder"],zB=["placeholder"],qB=["value"],RB=["disabled"],VB={key:2,class:"impact-preview","aria-live":"polite"},BB={key:0},UB={key:1},FB={key:2},HB={key:3,class:"field-error"},GB={class:"preview-actions"},jB=["disabled"],WB=["aria-busy"],JB={class:"card-heading"},KB={class:"current-speed-provider"},ZB={class:"speed-component-entry"},YB=["disabled"],QB={key:0,class:"capability-action",role:"status"},XB={class:"switch-line"},eU={key:0,class:"two-columns"},tU={class:"setting-hint"},nU={key:1,class:"service-ready"},aU={key:2,class:"setting-hint"},sU=["disabled"],oU={key:2,class:"impact-preview","aria-live":"polite"},lU={key:0,class:"field-error"},iU={class:"preview-actions"},rU=["disabled"],cU={class:"speed-check-actions"},dU=["disabled"],uU=["open"],vU=["value","disabled"],pU={key:0,class:"legacy-migration","aria-labelledby":"rate-migration-title"},hU={id:"rate-migration-title"},mU=["disabled"],fU={key:0,class:"migration-review","aria-live":"polite"},bU={key:0,class:"field-error"},gU={key:1,class:"checkbox-line"},_U={class:"preview-actions"},yU=["disabled"],kU=["disabled"],wU={key:3,class:"settings-stack"},$U={class:"setting-card"},CU={class:"card-heading"},SU=["disabled"],xU={key:0,class:"state-message"},PU=["placeholder"],TU={value:"bypass"},MU={value:"custom"},EU=["disabled"],IU={key:2,class:"route-list"},DU={class:"route-actions"},LU=["disabled","onClick"],AU=["disabled","onClick"],NU={key:4,class:"impact-preview","aria-live":"polite"},OU={key:0},zU={key:1},qU={key:2},RU={key:3},VU={value:""},BU=["value"],UU={key:4,class:"field-error"},FU={class:"preview-actions"},HU=["disabled"],GU={class:"setting-card"},jU={class:"card-heading"},WU=["disabled"],JU={key:0,class:"capability-action"},Jl="quickstart.lan-settings-draft.v1",KU=X({__name:"lanSettingsPanel",setup(s){const t=Ne(ye({},we),{DeviceMangement:xn()}),{$gettext:n}=Ae(),l=n("启用设备限速"),u=(()=>{try{return JSON.parse(sessionStorage.getItem(Jl)||"{}")}catch(ee){return{}}})(),c=x(!0),r=x(""),p=x(""),v=x(!1),h=x(!1),g=x(""),b=x("success"),m=x(!1),f=x(),k=ee=>{f.value=ee,m.value=!0},$=x(["services","routes","rules"].includes(u.section)?u.section:"services"),w=x(),S=x({}),C=x({state:"error"}),y=x({state:"error"}),P=x(),_=x(!1),D=x(),E=x(!1),A=x(""),U=x(!1),q=Xe({enabled:!0,poolStart:"",poolEnd:"",leaseTime:"12h",defaultTargetId:"self"}),z=Xe({enabled:!1,upload:100,download:1e3,provider:""}),N=x(),F=x(),Z=x(),Q=x(!1),ce=x(!1),ve=x(),O=x(!1),de=x(""),K=x(!0);let xe,j=0,re;const $e=()=>{j++,xe==null||xe.abort(),window.clearTimeout(re),xe=void 0,re=void 0,O.value=!1};ga($e);const qe=x(!!u.routeEditor),De=Xe({targetId:"",name:u.routeName||"",kind:u.routeKind==="custom"?"custom":"bypass",gateway:u.routeGateway||""}),Ke=x([]),at=x(),st=x(),et=x(""),Ze=R(()=>[{id:"services",label:n("网络服务")},{id:"routes",label:n("上网路线")},{id:"rules",label:n("规则台账")}]),it=R(()=>{var ee;return!!((ee=N.value)!=null&&ee.editable&&N.value.settings)}),he=R(()=>Ke.value.filter(ee=>ee.kind==="bypass"||ee.kind==="custom")),H=R(()=>{var ee,se;return Array.isArray((se=(ee=S.value)==null?void 0:ee.speedLimit)==null?void 0:se.providers)?S.value.speedLimit.providers:[]}),J=R(()=>H.value.filter(ee=>ee.id!=="bandix"||z.provider==="bandix")),ge=R(()=>H.value.find(ee=>ee.id===z.provider)),ze=R(()=>H.value.find(ee=>ee.id==="bandix")),Fe=R(()=>{var ee,se;return((se=(ee=S.value)==null?void 0:ee.speedLimit)==null?void 0:se.provider)||""}),Ee=R(()=>{var ee;return!!((ee=ge.value)!=null&&ee.available)}),dt=R(()=>H.value.find(ee=>ee.id==="quickstart-native")),tt=ee=>({"quickstart-native":n("智能设备限速(推荐)"),bandix:n("现有 Bandix(仅用于迁移)"),eqos:n("兼容模式(按 IPv4)")})[ee]||ee,kt=ee=>({dependency_not_installed:n("未安装"),kernel_not_supported:n("系统内核不支持"),engine_unavailable:n("服务未运行"),interface_not_supported:n("版本不兼容")})[ee]||n("当前不可用"),ct=R(()=>C.value.reason==="selected_provider_unavailable"?n("已安装限速服务,但当前执行方式不可用。"):z.provider==="quickstart-native"?n("Quickstart 限速服务未就绪。请安装或启动服务后重新检查;系统不会自动改用其他方式。"):n("当前执行方式不可用,请先安装或启用对应服务。")),Tt=R(()=>z.provider==="quickstart-native"?n("按设备身份同时覆盖 IPv4 与 IPv6,并验证规则是否真正生效。"):z.provider==="bandix"?n("仅用于查看和迁移现有规则,不再作为新规则的默认执行方式。"):n("资源占用较低,按固定 IPv4 执行。")),ut=R(()=>{var ee,se;return!!((se=(ee=w.value)==null?void 0:ee.routeEditability)!=null&&se.editable)}),St=R(()=>{var ee,se;return((se=(ee=at.value)==null?void 0:ee.error)==null?void 0:se.code)==="replacement_required"}),ht=R(()=>Ke.value.filter(ee=>{var se,fe;return ee.supported&&ee.id!==((fe=(se=at.value)==null?void 0:se.target)==null?void 0:fe.id)})),xt=R(()=>{var ee;return{local:n("本机负责局域网地址分配"),external_observed:n("检测到其他设备负责地址分配"),none_detected:n("尚未检测到地址分配服务"),ambiguous:n("局域网角色需要确认"),error:n("暂时无法判断局域网角色")}[(ee=w.value)==null?void 0:ee.dhcpAuthority]||n("局域网角色待确认")}),en=R(()=>{var ee,se,fe,mt;return(se=(ee=w.value)==null?void 0:ee.routeEditability)!=null&&se.editable?n("可在设备详情中设置上网路线。"):{local_dhcp_unhealthy:n("当前无法读取地址分配状态,其他设置仍可使用。"),multiple_dhcp_evidence:n("局域网角色需要确认"),external_dhcp_authority:n("检测到其他设备负责地址分配,请在负责地址分配的路由器上管理相关设置。"),multiple_external_dhcp_servers:n("局域网角色需要确认"),dhcp_authority_not_detected:n("当前仅提供查看与引导,不会自动修改其他设备。"),router_context_unavailable:n("暂时无法判断局域网角色")}[(mt=(fe=w.value)==null?void 0:fe.routeEditability)==null?void 0:mt.reason]||n("当前仅提供查看与引导,不会自动修改其他设备。")}),qt=R(()=>[it.value?n("地址配置可编辑"):n("地址配置只读"),ut.value?n("路线可编辑"):n("路线只读"),n("其他服务按各自权限管理")].join(" · ")),Ft=ee=>({bypass:n("旁路由"),custom:n("指定网关")})[ee]||n("自定义路线"),Ht=ee=>({router:n("路由器地址"),floating_gateway:n("浮动网关"),gateway_node:n("网关节点"),address_reservation:n("固定地址")})[ee]||n("受保护地址"),ke=ee=>({available:n("可用"),disabled:n("未启用"),not_installed:n("未安装"),unsupported:n("不支持"),error:n("需要检查")})[ee]||n("未知"),Se=ee=>({alias:n("设备资料"),hostname:n("局域网主机名"),static:n("地址预留"),route:n("上网路线"),speed:n("设备限速"),access:n("联网权限"),floating_gateway:n("浮动网关")})[ee]||n("设备规则"),ae=ee=>({adopt:n("可以接管"),normalize:n("将安全整理"),conflict:n("存在冲突"),unresolved:n("需要确认")})[ee]||n("需要确认"),He=ee=>ee.kind==="default"||ee.name==="跟随网络默认"?n("默认路线"):ee.kind==="self"?n("本机路由"):ee.kind==="bypass"&&ee.name==="旁路由"?n("旁路由"):ee.kind==="floating"&&ee.name==="浮动网关"?n("浮动网关"):ee.name==="自定义网关"?n("自定义网关"):ee.name,Re=ee=>{if(!ee)return"—";for(const[se,fe]of[["本机路由",n("本机路由")],["旁路由",n("旁路由")],["浮动网关",n("浮动网关")],["自定义网关",n("自定义网关")]])if(ee===se||ee.startsWith(`${se} ·`))return ee.replace(se,fe);return ee};We([$,qe,()=>De.name,()=>De.kind,()=>De.gateway],()=>sessionStorage.setItem(Jl,JSON.stringify({section:$.value,routeEditor:qe.value,routeName:De.name,routeKind:De.kind,routeGateway:De.gateway})));const Et=()=>B(null,null,function*(){var ee,se,fe,mt,vn,_n,la,Pn,ia,Ce,Tn,ds,pn,$a,Ba,jn;$e(),c.value=!0,r.value="";try{const[hn,sn,us,ra,nn]=yield Promise.all([t.DeviceMangement.routerContextV2.GET(),t.DeviceMangement.globalConfigs.GET().catch(()=>{}),t.DeviceMangement.gatewayTargetsV2.GET(),t.DeviceMangement.lanDhcpSettingsV2.GET().catch(()=>{}),t.DeviceMangement.lanDeviceMigrationV2.PLAN().catch(()=>{})]);w.value=(ee=hn.data)==null?void 0:ee.result,S.value=((se=sn==null?void 0:sn.data)==null?void 0:se.result)||{},Ke.value=((mt=(fe=us.data)==null?void 0:fe.result)==null?void 0:mt.targets)||[],N.value=lB(ra==null?void 0:ra.data),P.value=(_n=(vn=nn==null?void 0:nn.data)==null?void 0:vn.result)==null?void 0:_n.plan,_.value=!nn,C.value=So(S.value,"speedLimit"),y.value=So(S.value,"floatGateway"),(la=N.value)!=null&&la.settings&&Object.assign(q,N.value.settings),z.enabled=!!((ia=(Pn=S.value)==null?void 0:Pn.speedLimit)!=null&&ia.enabled),z.upload=((Tn=(Ce=S.value)==null?void 0:Ce.speedLimit)==null?void 0:Tn.uploadSpeed)||100,z.download=((pn=(ds=S.value)==null?void 0:ds.speedLimit)==null?void 0:pn.downloadSpeed)||1e3,z.provider=((Ba=($a=S.value)==null?void 0:$a.speedLimit)==null?void 0:Ba.provider)||((jn=H.value.find(Mn=>Mn.available))==null?void 0:jn.id)||"";try{Wl(sn==null?void 0:sn.data),K.value=!0,de.value=""}catch(Mn){K.value=!1,de.value=n("检查失败,状态未更新。请重试,草稿已保留。")}}catch(hn){r.value=(hn==null?void 0:hn.message)||n("读取结果失败")}finally{c.value=!1}}),Pt=ee=>{ce.value=ee.target.open},Ot=()=>B(null,null,function*(){var ee,se;ce.value=!0,yield ot(),(ee=ve.value)==null||ee.focus({preventScroll:!0}),(se=ve.value)==null||se.scrollIntoView({block:"nearest"})}),_t=()=>B(null,null,function*(){if(O.value||p.value||v.value||U.value)return;const ee=++j,se=new AbortController;xe=se,O.value=!0,de.value="";let fe=!1;const mt=window.setTimeout(()=>{fe=!0,se.abort()},1e4);re=mt;try{const vn=yield t.DeviceMangement.globalConfigs.GET(se.signal);if(ee!==j)return;if(se.signal.aborted)throw new Error("aborted_service_check");const _n=Wl(vn.data);S.value=Ne(ye(ye({},S.value),vn.data.result),{speedLimit:_n.speedLimit}),y.value=So(S.value,"floatGateway"),C.value=_n.capability,K.value=!0}catch(vn){if(ee!==j)return;K.value=!1,de.value=n(fe?"检查超时,请重试。草稿已保留。":"检查失败,状态未更新。请重试,草稿已保留。")}finally{window.clearTimeout(mt),ee===j&&(O.value=!1,xe=void 0,re=void 0)}}),dn=()=>{F.value=void 0},Gt=(ee=!1)=>B(null,null,function*(){var se;p.value="dhcp-plan",g.value="";try{const fe=(se=(yield t.DeviceMangement.lanDhcpSettingsV2.PLAN({settings:ye({},q),confirmDisable:ee,idempotencyKey:`lan-dhcp-${Date.now().toString(36)}`})).data)==null?void 0:se.result;F.value=fe,fe!=null&&fe.error&&fe.error.code!=="confirmation_required"&&(b.value="error",g.value=fe.error.message)}catch(fe){b.value="error",g.value=(fe==null?void 0:fe.message)||n("无法预览地址分配设置")}finally{p.value=""}}),un=()=>Gt(!1),wt=()=>Gt(!0),sa=()=>B(null,null,function*(){var ee,se;if((ee=F.value)!=null&&ee.canApply){p.value="dhcp-apply",g.value="";try{const fe=(se=(yield t.DeviceMangement.lanDhcpSettingsV2.APPLY({settings:ye({},q),confirmDisable:!q.enabled,expectedVersion:F.value.version,idempotencyKey:`lan-dhcp-${F.value.version}`})).data)==null?void 0:se.result;if(fe!=null&&fe.error)throw new Error(fe.error.message);b.value="success",g.value=fe.changed?n("地址分配设置已保存"):n("设置没有变化"),dn(),yield Et()}catch(fe){b.value="error",g.value=(fe==null?void 0:fe.message)||n("应用失败,原设置已恢复")}finally{p.value=""}}}),tn=()=>({enabled:z.provider==="eqos"?z.enabled:!0,uploadSpeed:z.upload,downloadSpeed:z.download,provider:z.provider}),Zt=()=>B(null,null,function*(){var ee;if(!(z.enabled&&(!z.upload||!z.download))){p.value="speed-plan",g.value="";try{const se=(ee=(yield t.DeviceMangement.rateLimitSettingsV2.PLAN({settings:tn(),idempotencyKey:`rate-limit-${Date.now().toString(36)}`})).data)==null?void 0:ee.result;Z.value=se,se!=null&&se.error&&(b.value="error",g.value=se.error.message)}catch(se){b.value="error",g.value=(se==null?void 0:se.message)||n("无法预览限速服务设置")}finally{p.value=""}}}),be=()=>B(null,null,function*(){var ee,se;if((ee=Z.value)!=null&&ee.canApply){p.value="speed-apply",g.value="";try{const fe=(se=(yield t.DeviceMangement.rateLimitSettingsV2.APPLY({settings:tn(),expectedVersion:Z.value.version,idempotencyKey:`rate-limit-${Z.value.version}`})).data)==null?void 0:se.result;if(fe!=null&&fe.error)throw Object.assign(new Error(fe.error.message),{code:fe.error.code});b.value="success",g.value=fe!=null&&fe.changed?n("限速服务设置已应用"):n("设置没有变化"),Z.value=void 0,yield Et()}catch(fe){b.value="error",g.value=(fe==null?void 0:fe.code)==="rolled_back"?n("应用失败,原设置已恢复"):(fe==null?void 0:fe.message)||n("应用失败,原设置已恢复")}finally{p.value=""}}}),Te=ee=>`${Math.round((ee.uploadBitsPerSecond||0)/1e6)} ↑ · ${Math.round((ee.downloadBitsPerSecond||0)/1e6)} ↓ Mbit/s`,ie=ee=>({convert:n("可以迁移"),unsupported:n("不支持"),conflict:n("存在冲突")})[ee.disposition]||n("需要确认"),Ye=()=>B(null,null,function*(){var ee;U.value=!0,g.value="",E.value=!1;try{const se=(ee=(yield t.DeviceMangement.rateLimitMigrationV2.PLAN()).data)==null?void 0:ee.result;if(se!=null&&se.error)throw new Error(se.error.message);D.value=se==null?void 0:se.plan}catch(se){b.value="error",g.value=(se==null?void 0:se.message)||n("无法扫描现有规则")}finally{U.value=!1}}),je=()=>B(null,null,function*(){var ee,se;if(!(!((ee=D.value)!=null&&ee.canApply)||!E.value)){U.value=!0,g.value="";try{const fe=(se=(yield t.DeviceMangement.rateLimitMigrationV2.APPLY({expectedVersion:D.value.version,plan:D.value})).data)==null?void 0:se.result;if(fe!=null&&fe.error)throw Object.assign(new Error(fe.error.message),{code:fe.error.code});A.value=(fe==null?void 0:fe.migrationId)||"",b.value="success",g.value=n("规则已写入并验证,执行方式已切换"),yield Et()}catch(fe){b.value="error",g.value=(fe==null?void 0:fe.code)==="target_unavailable"?n("请先手动停止 Bandix,并启动 Quickstart 限速服务后重试。"):(fe==null?void 0:fe.message)||n("迁移失败,原设置已保留")}finally{U.value=!1}}}),vt=()=>B(null,null,function*(){var ee;if(A.value){U.value=!0,g.value="";try{const se=(ee=(yield t.DeviceMangement.rateLimitMigrationV2.ROLLBACK({migrationId:A.value})).data)==null?void 0:ee.result;if(se!=null&&se.error)throw new Error(se.error.message);b.value="success",g.value=n("已恢复迁移前设置"),A.value="",D.value=void 0,yield Et()}catch(se){b.value="error",g.value=(se==null?void 0:se.message)||n("恢复失败,请按提示处理")}finally{U.value=!1}}}),bn=()=>{qe.value=!1,De.targetId="",De.name="",De.kind="bypass",De.gateway=""},gn=()=>{at.value=void 0,st.value=void 0,et.value=""},ka=()=>{if(gn(),qe.value){bn();return}qe.value=!0,De.targetId="",De.name="",De.kind="bypass",De.gateway=""},Rt=ee=>{gn(),qe.value=!0,De.targetId=ee.id,De.name=ee.name,De.kind=ee.kind==="custom"?"custom":"bypass",De.gateway=ee.gateway||""},oa=ee=>B(null,null,function*(){var se,fe;p.value="route-plan",g.value="";try{const mt=(se=(yield t.DeviceMangement.gatewayTargetV2.PLAN(ee)).data)==null?void 0:se.result;at.value=mt,st.value=ee,((fe=mt==null?void 0:mt.error)==null?void 0:fe.code)!=="replacement_required"&&(mt!=null&&mt.error)&&(g.value=mt.error.message)}catch(mt){b.value="error",g.value=(mt==null?void 0:mt.message)||n("无法预览这次修改")}finally{p.value=""}}),Gn=()=>B(null,null,function*(){return oa({action:De.targetId?"update":"create",targetId:De.targetId||void 0,name:De.name,kind:De.kind,gateway:De.gateway,idempotencyKey:`route-${Date.now().toString(36)}`})}),wa=ee=>B(null,null,function*(){bn(),et.value="",yield oa({action:"delete",targetId:ee.id,idempotencyKey:`route-delete-${Date.now().toString(36)}`})}),Va=()=>B(null,null,function*(){!st.value||!et.value||(yield oa(Ne(ye({},st.value),{replacementTargetId:et.value})))}),cs=()=>B(null,null,function*(){var ee,se;if(!(!((ee=at.value)!=null&&ee.canApply)||!st.value)){p.value="route-apply",g.value="";try{const fe=(se=(yield t.DeviceMangement.gatewayTargetV2.APPLY(Ne(ye({},st.value),{expectedVersion:at.value.version}))).data)==null?void 0:se.result;if(fe!=null&&fe.error)throw new Error(fe.error.message);b.value="success",g.value=fe!=null&&fe.changed?n("上网路线已更新"):n("上网路线没有变化"),gn(),bn(),yield Et()}catch(fe){b.value="error",g.value=(fe==null?void 0:fe.message)||n("应用失败,原设置已保留")}finally{p.value=""}}}),eo=()=>B(null,null,function*(){var ee,se;if(!(!((ee=P.value)!=null&&ee.canApply)||!window.confirm(n("确认接管现有设置?接管前会创建快照,失败时自动恢复。")))){h.value=!0,g.value="";try{const fe=(se=(yield t.DeviceMangement.lanDeviceMigrationV2.APPLY({expectedVersion:P.value.version})).data)==null?void 0:se.result;if(fe!=null&&fe.error)throw Object.assign(new Error(fe.error.message),{code:fe.error.code});b.value="success",g.value=fe!=null&&fe.changed?n("现有设置已安全接管"):n("现有设置无需重复接管"),yield Et()}catch(fe){b.value="error",g.value=(fe==null?void 0:fe.code)==="rolled_back"?n("接管失败,原设置已恢复,可以重试"):(fe==null?void 0:fe.code)==="recovery_required"?n("自动恢复未完成,请按提示处理"):(fe==null?void 0:fe.message)||n("接管失败,原设置已保留")}finally{h.value=!1}}}),to=ee=>B(null,null,function*(){if(ee==="floatip"){$.value="routes";return}$.value="services",yield _t();const se=H.value.find(fe=>fe.id===ee);!(se!=null&&se.available)||!K.value||(ee!==Fe.value&&(z.provider=ee,yield Zt()),yield Ot())});return Et(),(ee,se)=>{var fe,mt,vn,_n,la,Pn,ia;return i(),d("section",{class:"lan-settings","aria-label":o(n)("局域网设置")},[c.value||r.value?(i(),d("button",{key:0,type:"button",class:"components-fallback",onClick:se[0]||(se[0]=Ce=>k()),"data-open-components":""},[G(Qe,{name:"layers"}),ue(a(o(n)("功能组件")),1)])):T("",!0),c.value?(i(),Y(yt,{key:1,kind:"loading",title:o(n)("正在读取局域网设置")},null,8,["title"])):r.value?(i(),Y(yt,{key:2,kind:"error",title:o(n)("局域网设置读取失败"),description:r.value,"action-label":o(n)("重新加载"),onAction:Et},null,8,["title","description","action-label"])):(i(),d(V,{key:3},[e("article",{class:_e(["context-card",(fe=w.value)==null?void 0:fe.topologyPosition])},[e("div",null,[e("strong",null,a(xt.value),1),e("span",null,a(qt.value),1)]),e("span",rB,a(o(n)("权限说明")),1)],2),P.value&&!P.value.alreadyApplied&&((mt=P.value.items)!=null&&mt.length)?(i(),d("details",cB,[e("summary",dB,[e("div",null,[e("h3",uB,a(o(n)("发现现有设备设置")),1),e("p",null,a(o(n)("先预览并接管现有设置,之后只使用当前设备管理界面维护。")),1)]),e("strong",null,a(P.value.items.length)+" "+a(o(n)("项")),1)]),e("div",vB,[e("ul",null,[(i(!0),d(V,null,oe(P.value.items.slice(0,5),Ce=>(i(),d("li",{key:Ce.id},[e("span",null,a(Se(Ce.kind)),1),e("b",null,a(Re(Ce.summary)),1),e("em",{class:_e(Ce.disposition)},a(ae(Ce.disposition)),3)]))),128))]),P.value.items.length>5?(i(),d("p",pB,a(o(n)("其余设置会在同一次安全接管中处理。")),1)):T("",!0),P.value.canApply?T("",!0):(i(),d("p",hB,a(o(n)("发现冲突或无法识别的设置,当前不会写入任何配置。请先在规则台账中处理。")),1)),e("div",mB,[e("button",{type:"button",onClick:se[1]||(se[1]=Ce=>$.value="rules")},a(o(n)("查看规则台账")),1),e("button",{class:"primary",type:"button",disabled:!P.value.canApply||h.value,onClick:eo},a(h.value?o(n)("正在接管…"):o(n)("确认接管现有设置")),9,fB)])])])):_.value?(i(),d("p",bB,a(o(n)("暂时无法检查现有设置,不影响其他局域网设置。")),1)):T("",!0),e("div",gB,[e("nav",{class:"settings-nav","aria-label":o(n)("设置区域")},[(i(!0),d(V,null,oe(Ze.value,Ce=>(i(),d("button",{key:Ce.id,type:"button",class:_e({active:$.value===Ce.id}),onClick:Tn=>$.value=Ce.id},a(Ce.label),11,yB))),128))],8,_B),e("button",{type:"button",class:"components-entry",disabled:!!p.value||O.value,onClick:se[2]||(se[2]=Ce=>k()),"data-open-components":""},[G(Qe,{name:"layers"}),ue(a(o(n)("功能组件")),1)],8,kB)]),$.value==="services"?(i(),d("div",wB,[e("article",$B,[e("div",CB,[e("div",null,[e("h3",null,[G(Qe,{name:"network"}),ue(a(o(n)("地址分配服务")),1)]),it.value?(i(),d("p",SB,a(o(n)("由本机为局域网设备分配地址。关闭后,设备应由其他路由器分配地址。")),1)):T("",!0)]),it.value?(i(),d("label",xB,[W(e("input",{"onUpdate:modelValue":se[3]||(se[3]=Ce=>q.enabled=Ce),type:"checkbox",disabled:!it.value},null,8,PB),[[gt,q.enabled]]),ue(a(q.enabled?o(n)("已开启"):o(n)("已关闭")),1)])):(i(),d("span",TB,a(o(n)("配置只读")),1))]),N.value?(i(),d(V,{key:0},[it.value?T("",!0):(i(),d("dl",MB,[e("div",null,[e("dt",null,a(o(n)("本机配置")),1),e("dd",null,a(N.value.settings.enabled?o(n)("已开启"):o(n)("已关闭")),1)]),e("div",null,[e("dt",null,a(o(n)("地址池")),1),e("dd",EB,a(N.value.settings.poolStart||"—")+" – "+a(N.value.settings.poolEnd||"—"),1)]),e("div",null,[e("dt",null,a(o(n)("地址租期")),1),e("dd",null,a(N.value.settings.leaseTime||"—"),1)])])),it.value?T("",!0):(i(),d("p",IB,a(o(n)("以下为本机保存的配置,不代表其他路由器当前生效的配置。")),1)),it.value?T("",!0):(i(),d("button",{key:2,class:"config-disclosure",type:"button","aria-expanded":Q.value,"aria-controls":"lan-local-config",onClick:se[4]||(se[4]=Ce=>Q.value=!Q.value)},[G(Qe,{name:"arrow"}),ue(a(o(n)("查看本机配置")),1)],8,DB)),it.value||Q.value?(i(),d("fieldset",{key:3,id:"lan-local-config",disabled:!it.value},[e("div",AB,[e("label",null,[e("span",null,a(o(n)("地址池起始地址")),1),W(e("input",{"onUpdate:modelValue":se[5]||(se[5]=Ce=>q.poolStart=Ce),inputmode:"decimal",placeholder:it.value?"192.168.1.100":"—"},null,8,NB),[[Oe,q.poolStart,void 0,{trim:!0}]])]),e("label",null,[e("span",null,a(o(n)("地址池结束地址")),1),W(e("input",{"onUpdate:modelValue":se[6]||(se[6]=Ce=>q.poolEnd=Ce),inputmode:"decimal",placeholder:it.value?"192.168.1.249":"—"},null,8,OB),[[Oe,q.poolEnd,void 0,{trim:!0}]])])]),e("label",null,[e("span",null,a(o(n)("地址租期")),1),W(e("input",{"onUpdate:modelValue":se[7]||(se[7]=Ce=>q.leaseTime=Ce),placeholder:it.value?"12h":"—"},null,8,zB),[[Oe,q.leaseTime,void 0,{trim:!0}]])]),e("label",null,[e("span",null,a(o(n)("默认上网路线")),1),W(e("select",{"onUpdate:modelValue":se[8]||(se[8]=Ce=>q.defaultTargetId=Ce)},[(i(!0),d(V,null,oe(Ke.value.filter(Ce=>Ce.supported&&Ce.id!=="default"&&Ce.gateway),Ce=>(i(),d("option",{key:Ce.id,value:Ce.id},a(He(Ce))+a(Ce.gateway?` · ${Ce.gateway}`:""),9,qB))),128))],512),[[Be,q.defaultTargetId]])])],8,LB)):T("",!0),it.value?(i(),d("button",{key:4,class:"primary",type:"button",disabled:!it.value||p.value==="dhcp-plan",onClick:un},a(p.value==="dhcp-plan"?o(n)("正在检查…"):o(n)("预览地址分配设置")),9,RB)):T("",!0)],64)):(i(),Y(yt,{key:1,kind:"unavailable",title:o(n)("本机配置暂不可用"),description:o(n)("未能读取可靠的地址分配配置,其他服务仍可使用。")},null,8,["title","description"])),F.value?(i(),d("section",VB,[e("h4",null,a(o(n)("地址分配影响")),1),q.enabled?T("",!0):(i(),d("p",BB,a(o(n)("关闭后预计影响设备"))+":"+a(F.value.affectedDevices),1)),F.value.recoveryGuidance?(i(),d("p",UB,a(o(n)("恢复路径"))+":"+a(o(n)("通过路由器局域网地址重新进入,并重新开启地址分配;或先确认外部 DHCP 已就绪。")),1)):T("",!0),F.value.conflicts.length?(i(),d("ul",FB,[(i(!0),d(V,null,oe(F.value.conflicts,Ce=>(i(),d("li",{key:`${Ce.kind}:${Ce.address}`},a(Ce.address)+" · "+a(Ht(Ce.kind)),1))),128))])):T("",!0),F.value.error&&F.value.error.code!=="confirmation_required"?(i(),d("p",HB,a(F.value.error.message),1)):T("",!0),e("div",GB,[e("button",{type:"button",onClick:dn},a(o(n)("取消")),1),((vn=F.value.error)==null?void 0:vn.code)==="confirmation_required"?(i(),d("button",{key:0,class:"danger-link",type:"button",onClick:wt},a(o(n)("我已了解影响,继续")),1)):(i(),d("button",{key:1,class:"primary",type:"button",disabled:!F.value.canApply||p.value==="dhcp-apply",onClick:sa},a(p.value==="dhcp-apply"?o(n)("正在应用…"):o(n)("确认应用")),9,jB))])])):T("",!0)]),e("article",{class:"setting-card speed-card","aria-busy":O.value},[e("div",JB,[e("div",null,[e("h3",null,[G(Qe,{name:"activity"}),ue(a(o(n)("设备限速服务")),1)]),e("p",null,a(o(n)("为设备设置最高上传和下载速度;联网权限不依赖此服务。")),1)]),e("span",{class:_e(["capability-pill",K.value?C.value.state:"error"])},a(K.value?ke(C.value.state):o(n)("状态未更新")),3)]),e("p",KB,a(o(n)("当前方式"))+":"+a(tt(Fe.value)),1),e("div",ZB,[e("span",null,a(o(n)("智能设备限速(推荐)"))+" · "+a((_n=dt.value)!=null&&_n.available?o(n)("已就绪"):dt.value?kt(dt.value.reason):o(n)("状态待确认")),1),e("button",{type:"button",disabled:!!p.value||O.value,onClick:se[9]||(se[9]=Ce=>k("quickstart-native")),"data-manage-speed-component":""},a(((la=dt.value)==null?void 0:la.reason)==="dependency_not_installed"?o(n)("查看并安装"):o(n)("管理组件")),9,YB)]),!Ee.value||!K.value?(i(),d("div",QB,[e("p",null,a(de.value||ct.value),1)])):T("",!0),Ee.value?(i(),d(V,{key:1},[z.provider==="eqos"?(i(),d(V,{key:0},[e("label",XB,[W(e("input",{"onUpdate:modelValue":se[10]||(se[10]=Ce=>z.enabled=Ce),type:"checkbox"},null,512),[[gt,z.enabled]]),ue(a(o(l)),1)]),z.enabled?(i(),d("div",eU,[e("label",null,[e("span",null,a(o(n)("总上传带宽(Mbit/s)")),1),W(e("input",{"onUpdate:modelValue":se[11]||(se[11]=Ce=>z.upload=Ce),type:"number",min:"1"},null,512),[[Oe,z.upload,void 0,{number:!0}]])]),e("label",null,[e("span",null,a(o(n)("总下载带宽(Mbit/s)")),1),W(e("input",{"onUpdate:modelValue":se[12]||(se[12]=Ce=>z.download=Ce),type:"number",min:"1"},null,512),[[Oe,z.download,void 0,{number:!0}]])])])):T("",!0),e("p",tU,a(o(n)("总带宽用于计算设备限速队列,不会自动平均分配给每台设备。")),1)],64)):z.provider==="quickstart-native"&&K.value?(i(),d("p",nU,a(o(n)("服务已就绪,请在设备详情中为需要的设备设置速度上限。")),1)):z.provider==="bandix"?(i(),d("p",aU,a(o(n)("现有 Bandix 仅用于迁移,请先完成下方步骤。")),1)):T("",!0),z.provider==="eqos"||z.provider!==Fe.value?(i(),d("button",{key:3,class:"primary",type:"button",disabled:p.value==="speed-plan"||!Ee.value||O.value||!K.value,onClick:Zt},a(p.value==="speed-plan"?o(n)("正在检查…"):o(n)("预览限速服务设置")),9,sU)):T("",!0)],64)):T("",!0),Z.value?(i(),d("section",oU,[e("h4",null,a(o(n)("限速服务影响")),1),e("p",null,a((Pn=Z.value.changes)!=null&&Pn.length?o(n)("将更新限速执行方式,现有规则保持不变。"):o(n)("设置没有变化。")),1),Z.value.error?(i(),d("p",lU,a(Z.value.error.message),1)):T("",!0),e("div",iU,[e("button",{type:"button",onClick:se[13]||(se[13]=Ce=>Z.value=void 0)},a(o(n)("取消")),1),e("button",{class:"primary",type:"button",disabled:!Z.value.canApply||p.value==="speed-apply"||O.value||!K.value||!Ee.value,onClick:be},a(p.value==="speed-apply"?o(n)("正在应用…"):o(n)("确认应用")),9,rU)])])):T("",!0),e("div",cU,[e("button",{type:"button",class:"speed-recheck",disabled:O.value||!!p.value||v.value||U.value,onClick:_t},a(O.value?o(n)("正在检查…"):o(n)("重新检查")),9,dU),!Ee.value||!K.value?(i(),d("button",{key:0,type:"button",class:"speed-inspect",onClick:Ot},a(o(n)("查看执行方式")),1)):T("",!0)]),e("details",{class:"advanced-group",open:ce.value,onToggle:Pt},[e("summary",null,a(o(n)("高级:执行方式与迁移")),1),e("label",null,[e("span",null,a(o(n)("执行方式")),1),W(e("select",{ref_key:"speedProviderControl",ref:ve,"onUpdate:modelValue":se[14]||(se[14]=Ce=>z.provider=Ce),onChange:se[15]||(se[15]=Ce=>Z.value=void 0)},[(i(!0),d(V,null,oe(J.value,Ce=>(i(),d("option",{key:Ce.id,value:Ce.id,disabled:!Ce.available},a(tt(Ce.id))+a(Ce.available?"":` · ${kt(Ce.reason)}`),9,vU))),128))],544),[[Be,z.provider]]),e("small",null,a(Tt.value),1)]),(ia=ze.value)!=null&&ia.installed&&z.provider==="bandix"?(i(),d("section",pU,[e("h4",hU,a(o(n)("迁移现有 Bandix 规则")),1),e("p",null,a(o(n)("先扫描并逐条检查;不会自动停止、卸载或改写 Bandix。")),1),e("button",{type:"button",disabled:U.value,onClick:Ye},a(U.value?o(n)("正在扫描…"):o(n)("扫描现有规则")),9,mU),D.value?(i(),d("div",fU,[e("ul",null,[(i(!0),d(V,null,oe(D.value.items,Ce=>(i(),d("li",{key:`${Ce.id}:${Ce.mac}`},[e("span",null,a(Ce.mac),1),e("b",null,a(Te(Ce)),1),e("em",{class:_e(Ce.disposition)},a(ie(Ce)),3)]))),128))]),D.value.canApply?(i(),d("label",gU,[W(e("input",{"onUpdate:modelValue":se[16]||(se[16]=Ce=>E.value=Ce),type:"checkbox"},null,512),[[gt,E.value]]),ue(a(o(n)("我已手动停止 Bandix,并启动 Quickstart 限速服务")),1)])):(i(),d("p",bU,a(o(n)("存在不支持或冲突的规则,全部处理完成前不会迁移。")),1)),e("div",_U,[e("button",{class:"primary",type:"button",disabled:!D.value.canApply||!E.value||U.value,onClick:je},a(o(n)("确认迁移并验证")),9,yU)])])):T("",!0),A.value?(i(),d("button",{key:1,class:"danger-link",type:"button",disabled:U.value,onClick:vt},a(o(n)("恢复迁移前设置")),9,kU)):T("",!0)])):T("",!0)],40,uU)],8,WB)])):$.value==="routes"?(i(),d("div",wU,[e("article",$U,[e("div",CU,[e("div",null,[e("h3",null,a(o(n)("自定义上网路线")),1),e("p",null,a(o(n)("把复杂网络工作交给旁路由或指定网关,设备可在详情中选择路线。DNS 跟随路线。")),1)]),e("button",{type:"button",disabled:!ut.value,onClick:ka},a(qe.value?o(n)("取消"):o(n)("添加路线")),9,SU)]),ut.value?T("",!0):(i(),d("p",xU,a(en.value),1)),qe.value?(i(),d("form",{key:1,class:"route-form",onSubmit:Ge(Gn,["prevent"])},[e("label",null,[e("span",null,a(o(n)("路线名称")),1),W(e("input",{"onUpdate:modelValue":se[17]||(se[17]=Ce=>De.name=Ce),maxlength:"64",required:"",placeholder:o(n)("例如:旁路由")},null,8,PU),[[Oe,De.name,void 0,{trim:!0}]])]),e("label",null,[e("span",null,a(o(n)("路线类型")),1),W(e("select",{"onUpdate:modelValue":se[18]||(se[18]=Ce=>De.kind=Ce)},[e("option",TU,a(o(n)("旁路由")),1),e("option",MU,a(o(n)("指定网关")),1)],512),[[Be,De.kind]])]),e("label",null,[e("span",null,a(o(n)("网关地址")),1),W(e("input",{"onUpdate:modelValue":se[19]||(se[19]=Ce=>De.gateway=Ce),inputmode:"decimal",required:"",placeholder:"192.168.1.2"},null,512),[[Oe,De.gateway,void 0,{trim:!0}]])]),e("button",{class:"primary",type:"submit",disabled:p.value==="route-plan"},a(p.value==="route-plan"?o(n)("正在检查…"):De.targetId?o(n)("预览修改"):o(n)("预览添加")),9,EU)],32)):T("",!0),he.value.length?(i(),d("div",IU,[(i(!0),d(V,null,oe(he.value,Ce=>(i(),d("div",{key:Ce.id},[e("span",null,[e("strong",null,a(He(Ce)),1),e("small",null,a(Ce.gateway||"—")+" · "+a(Ft(Ce.kind)),1)]),e("div",DU,[e("button",{type:"button",disabled:!ut.value,onClick:Tn=>Rt(Ce)},a(o(n)("编辑")),9,LU),e("button",{type:"button",class:"danger-link",disabled:!ut.value,onClick:Tn=>wa(Ce)},a(o(n)("删除")),9,AU)])]))),128))])):(i(),Y(yt,{key:3,kind:"empty",title:o(n)("还没有自定义上网路线"),description:o(n)("设备默认通过本机上网;需要时再添加旁路由或指定网关。")},null,8,["title","description"])),at.value?(i(),d("section",NU,[e("h4",null,a(o(n)("影响范围")),1),at.value.action==="delete"?(i(),d("p",OU,a(o(n)("受影响设备"))+":"+a(at.value.referenceSummary.devices)+" · "+a(o(n)("受影响分组"))+":"+a(at.value.referenceSummary.groups),1)):(i(),d("p",zU,a(at.value.action==="create"?o(n)("将添加一条可供设备和分组选择的路线。"):o(n)("将更新路线名称和网关,已有引用会继续保留。")),1)),at.value.referenceSummary.globalPolicy||at.value.referenceSummary.lanDefault?(i(),d("p",qU,a(o(n)("同时影响全局或局域网默认路线。")),1)):T("",!0),St.value?(i(),d("label",RU,[e("span",null,a(o(n)("替代路线")),1),W(e("select",{"onUpdate:modelValue":se[20]||(se[20]=Ce=>et.value=Ce),onChange:Va},[e("option",VU,a(o(n)("请选择")),1),(i(!0),d(V,null,oe(ht.value,Ce=>(i(),d("option",{key:Ce.id,value:Ce.id},a(He(Ce))+a(Ce.gateway?` · ${Ce.gateway}`:""),9,BU))),128))],544),[[Be,et.value]])])):T("",!0),at.value.error&&!St.value?(i(),d("p",UU,a(at.value.error.message),1)):T("",!0),e("div",FU,[e("button",{type:"button",onClick:gn},a(o(n)("取消")),1),e("button",{class:"primary",type:"button",disabled:!at.value.canApply||p.value==="route-apply",onClick:cs},a(p.value==="route-apply"?o(n)("正在应用…"):o(n)("确认应用")),9,HU)])])):T("",!0)]),e("article",GU,[e("div",jU,[e("div",null,[e("h3",null,a(o(n)("浮动网关")),1),e("p",null,a(o(n)("主路由与旁路由共享一个稳定入口,旁路由异常时自动切回主路由。")),1)]),e("span",{class:_e(["capability-pill",y.value.state])},a(ke(y.value.state)),3)]),e("button",{type:"button",class:"floating-component-entry",disabled:!!p.value,onClick:se[21]||(se[21]=Ce=>k("floatip")),"data-manage-float-component":""},a(y.value.state==="not_installed"?o(n)("查看并安装"):o(n)("管理组件")),9,WU),y.value.state==="not_installed"?(i(),d("div",JU,[e("p",null,a(o(n)("只有浮动网关功能会被锁定,设备和其他路线仍可管理。")),1)])):(i(),Y(CV,{key:1}))])])):(i(),Y(aB,{key:4})),g.value?(i(),d("p",{key:5,class:_e(["feedback",b.value]),role:"status"},a(g.value),3)):T("",!0)],64)),G(ji,{open:m.value,"focus-id":f.value,onClose:se[22]||(se[22]=Ce=>m.value=!1),onBusy:se[23]||(se[23]=Ce=>v.value=Ce),onUpdated:_t,onConfigure:to},null,8,["open","focus-id"])],8,iB)}}}),ZU=le(KU,[["__scopeId","data-v-0801e069"]]),YU=["aria-label"],QU=["aria-label"],XU={key:0,role:"status"},eF={key:1,role:"alert"},tF={key:2,role:"alert"},nF={key:0,class:"network-sidebar"},aF=["aria-label"],sF=["aria-current"],oF=["data-network","aria-current","onClick"],lF={class:"workspace-panel"},iF={key:0,class:"lan-selector"},rF=["value"],cF={value:"all"},dF=["value"],uF={key:1,class:"scope-heading"},vF=["aria-label"],pF=["id","aria-selected","onClick"],hF=["aria-labelledby"],mF={key:0,class:"scope-notice",role:"status"},fF={key:1,class:"scope-placeholder",role:"status"},bF=X({__name:"index",setup(s){const{$gettext:t}=Ae(),n=ta(),l=as(),u=x([]),c=x(!0),r=x(""),p=x(!1),v=x(""),h=R(()=>typeof n.query.network=="string"?n.query.network:v.value),g=R(()=>u.value.find(P=>P.networkId===h.value)),b=R(()=>u.value.length>1);function m(P){var _,D;return P.state==="down"?t("未连接"):((_=P.ipv4Prefixes)==null?void 0:_[0])||((D=P.ipv6Prefixes)==null?void 0:D[0])||(P.readOnlyReason?t("暂时只读"):t("局域网"))}const f=R(()=>{var P,_;return((P=g.value)==null?void 0:P.readOnlyReason)==="network_down"?t("此局域网尚未连接,网络设置暂时只读"):((_=g.value)==null?void 0:_.readOnlyReason)==="shared_network_device"?t("此局域网与其他网络共用连接,请先确认独立的网络配置"):t("此局域网的地址或连接尚未就绪,网络设置暂时只读")}),k=R(()=>h.value==="all"&&!p.value||!!g.value),$=R(()=>["groups","settings"].includes(String(n.query.tab))?String(n.query.tab):"devices");function w(P){try{localStorage.setItem("quickstart.lan",P)}catch(_){}l.replace({query:Ne(ye({},n.query),{network:P,device:void 0})})}function S(P){l.replace({query:Ne(ye({},n.query),{tab:P})})}function C(){return B(this,null,function*(){c.value=!0,r.value="";try{const P=yield qi();u.value=P.networks,p.value=P.legacy;let _="";try{_=localStorage.getItem("quickstart.lan")||""}catch(D){}v.value=P.networks.length===1?P.networks[0].networkId:_==="all"||P.networks.some(D=>D.networkId===_)?_:"all"}catch(P){r.value=P instanceof Error?t(P.message):t("局域网列表不可用")}finally{c.value=!1}})}nt(C);const y=R(()=>[{id:"devices",icon:"devices",label:t("设备")},{id:"groups",icon:"layers",label:t("分组与计划")},{id:"settings",icon:"tune",label:t("局域网设置")}]);return(P,_)=>{var E,A;const D=At("router-link");return i(),d("main",{id:"page",class:"device-management","aria-label":o(t)("局域网设备管理")},[e("nav",{class:"breadcrumbs","aria-label":o(t)("面包屑")},[G(D,{to:"/"},{default:pe(()=>[ue(a(o(t)("首页")),1)]),_:1}),_[3]||(_[3]=e("span",{"aria-hidden":"true"},"›",-1)),e("span",null,a(o(t)("局域网设备管理")),1)],8,QU),c.value?(i(),d("p",XU,a(o(t)("正在读取局域网…")),1)):r.value?(i(),d("p",eF,[ue(a(r.value)+" ",1),e("button",{type:"button",onClick:C},a(o(t)("重试")),1)])):T("",!0),!c.value&&!r.value&&!k.value?(i(),d("p",tF,[ue(a(o(t)("此局域网已不存在或不可访问"))+" ",1),e("button",{type:"button",onClick:_[0]||(_[0]=U=>w(u.value.length===1?u.value[0].networkId:"all"))},a(o(t)("返回设备列表")),1)])):T("",!0),!c.value&&!r.value&&k.value?(i(),d("div",{key:3,class:_e(["device-workspace",{"has-network-nav":b.value}])},[b.value?(i(),d("aside",nF,[e("h2",null,a(o(t)("网络范围")),1),e("nav",{class:"network-navigation","aria-label":o(t)("选择局域网")},[e("button",{type:"button","data-network":"all","aria-current":h.value==="all"?"true":void 0,onClick:_[1]||(_[1]=U=>w("all"))},[G(Qe,{name:"layers"}),e("span",null,[e("strong",null,a(o(t)("全部局域网")),1),e("small",null,a(o(t)("设备总览")),1)])],8,sF),_[4]||(_[4]=e("div",{class:"network-divider"},null,-1)),(i(!0),d(V,null,oe(u.value,U=>(i(),d("button",{key:U.networkId,type:"button","data-network":U.networkId,"aria-current":h.value===U.networkId?"true":void 0,onClick:q=>w(U.networkId)},[G(Qe,{name:"network"}),e("span",null,[e("strong",null,a(U.displayName),1),e("small",null,a(m(U)),1)])],8,oF))),128))],8,aF),e("p",null,a(o(t)("网络配置请前往系统网络设置")),1)])):T("",!0),e("div",lF,[b.value?(i(),d("label",iF,[ue(a(o(t)("局域网"))+" ",1),e("select",{value:h.value,onChange:_[2]||(_[2]=U=>w(U.target.value))},[e("option",cF,a(o(t)("全部局域网")),1),(i(!0),d(V,null,oe(u.value,U=>(i(),d("option",{key:U.networkId,value:U.networkId},a(U.displayName),9,dF))),128))],40,rF)])):T("",!0),b.value?(i(),d("div",uF,[e("h1",null,a(((E=g.value)==null?void 0:E.displayName)||o(t)("全部局域网")),1),e("p",null,a(g.value?o(t)("此网络的设备、分组与设置"):o(t)("查看各个局域网中的设备")),1)])):T("",!0),e("nav",{class:"primary-tabs",role:"tablist","aria-label":o(t)("局域网设备管理")},[(i(!0),d(V,null,oe(y.value,U=>(i(),d("button",{id:`lan-tab-${U.id}`,key:U.id,type:"button",role:"tab","aria-controls":"lan-panel","aria-selected":$.value===U.id,class:_e({active:$.value===U.id}),onClick:q=>S(U.id)},[G(Qe,{name:U.icon},null,8,["name"]),ue(a(U.label),1)],10,pF))),128))],8,vF),e("section",{id:"lan-panel",class:"primary-content",role:"tabpanel","aria-labelledby":`lan-tab-${$.value}`},[(A=g.value)!=null&&A.readOnlyReason?(i(),d("p",mF,a(f.value),1)):T("",!0),h.value==="all"&&$.value!=="devices"?(i(),d("p",fF,a(o(t)("请选择一个局域网,管理分组、计划和网络设置")),1)):(i(),Y(Ui,{key:`${h.value}:${$.value}:${p.value}`,"network-id":h.value,networks:u.value,legacy:p.value},{default:pe(()=>[$.value==="devices"?(i(),Y(Xq,{key:0})):$.value==="groups"?(i(),Y(tV,{key:1})):(i(),Y(ZU,{key:2}))]),_:1},8,["network-id","networks","legacy"]))],8,hF)])],2)):T("",!0)],8,YU)}}}),gF=le(bF,[["__scopeId","data-v-443a52ed"]]),_F={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},yF=["fill"],kF=["fill"],wF=["fill"],Kl=X({__name:"wifi",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",_F,[e("path",{d:"M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6c-3.2 2.8-3.6 7.8-0.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4 0.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-0.9l36-42.9c2.8-3.3 2.4-8.3-0.9-11.2zM840.4 480.4C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4c-3.4 2.8-3.8 7.9-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3z","p-id":"5126",fill:s.color},null,8,yF),e("path",{d:"M957.1 341.4C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4-3.5 2.8-4 7.9-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3z","p-id":"5127",fill:s.color},null,8,kF),e("path",{d:"M512 778m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z","p-id":"5128",fill:s.color},null,8,wF)]))}}),$F={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},CF=["fill"],SF=["fill"],xF=X({__name:"time",props:{color:{type:String,default:"#ffa847"}},setup(s){return(t,n)=>(i(),d("svg",$F,[e("path",{d:"M640.825806 900.129032c-18.167742 6.606452-37.987097 9.909677-57.806451 13.212903-26.425806 4.954839-44.593548 29.729032-41.290323 56.154839 4.954839 26.425806 29.729032 44.593548 56.154839 41.290323 24.774194-3.303226 47.896774-9.909677 71.019355-16.516129 26.425806-8.258065 41.290323-36.335484 33.032258-62.761291s-34.683871-39.63871-61.109678-31.380645zM974.451613 576.412903c-26.425806-6.606452-52.851613 9.909677-61.109678 36.335484-4.954839 19.819355-11.56129 37.987097-18.167741 56.154839-9.909677 24.774194 1.651613 54.503226 26.425806 64.412903 24.774194 9.909677 54.503226-1.651613 64.412903-26.425806 9.909677-23.122581 16.516129-46.245161 23.122581-69.367742 6.606452-28.077419-8.258065-54.503226-34.683871-61.109678zM814.245161 791.122581c-13.212903 14.864516-28.077419 28.077419-42.941935 39.638709-21.470968 16.516129-24.774194 47.896774-8.258065 69.367742 16.516129 21.470968 47.896774 24.774194 69.367742 8.258065 19.819355-14.864516 37.987097-31.380645 54.503226-49.548387 18.167742-19.819355 18.167742-51.2-1.651613-69.367742s-51.2-18.167742-71.019355 1.651613zM526.864516 341.883871c-28.077419 0-49.548387 21.470968-49.548387 49.548387v122.219355c0 14.864516 6.606452 28.077419 18.167742 37.987097l117.264516 97.445161c21.470968 18.167742 52.851613 14.864516 69.367742-6.606452s14.864516-52.851613-6.606452-69.367742l-99.096774-82.580645v-99.096774c0-26.425806-21.470968-49.548387-49.548387-49.548387z",fill:s.color,"p-id":"4722"},null,8,CF),e("path",{d:"M910.03871 327.019355c28.077419 1.651613 51.2-18.167742 52.851613-46.245161l9.909677-142.03871c1.651613-28.077419-18.167742-51.2-46.245161-52.851613-28.077419-1.651613-51.2 18.167742-52.851613 46.245161v16.516129c-1.651613-1.651613-3.303226-3.303226-4.954839-3.303226-1.651613-3.303226-4.954839-4.954839-6.606452-8.258064-18.167742-16.516129-36.335484-31.380645-57.806451-46.245161-1.651613-1.651613-4.954839-3.303226-6.606452-3.303226-46.245161-31.380645-99.096774-54.503226-155.251613-69.367742-1.651613 0-3.303226-1.651613-4.954838-1.651613-8.258065-1.651613-14.864516-3.303226-23.122581-4.954839h-1.651613c-6.606452-1.651613-13.212903-3.303226-21.470968-3.303225-4.954839-1.651613-11.56129-1.651613-16.516129-1.651613-3.303226 0-6.606452-1.651613-9.909677-1.651613h-1.651613C307.2-19.819355 69.367742 153.6 18.167742 412.903226c-52.851613 275.819355 125.522581 541.729032 401.341935 594.580645 26.425806 4.954839 52.851613-11.56129 57.806452-39.63871 4.954839-26.425806-11.56129-52.851613-39.63871-57.806451h-1.651613c-19.819355-3.303226-37.987097-9.909677-56.154838-16.516129h-3.303226c-44.593548-16.516129-84.232258-39.63871-118.916129-67.716129l-4.954839-4.954839c-14.864516-13.212903-29.729032-26.425806-41.290322-41.290323-1.651613-1.651613-3.303226-3.303226-6.606452-4.954838-28.077419-33.032258-51.2-71.019355-67.716129-112.309678 0-3.303226-1.651613-6.606452-1.651613-8.258064-6.606452-18.167742-13.212903-37.987097-16.516129-56.154839 0-3.303226-1.651613-6.606452-3.303226-9.909677-8.258065-41.290323-9.909677-82.580645-4.954838-125.522581 1.651613-3.303226 1.651613-6.606452 3.303225-9.909678 3.303226-19.819355 6.606452-37.987097 13.212904-57.806451 1.651613-3.303226 1.651613-6.606452 1.651612-9.909678 13.212903-41.290323 33.032258-80.929032 57.806452-115.612903 3.303226-1.651613 4.954839-4.954839 6.606452-6.606451 11.56129-14.864516 24.774194-29.729032 39.638709-44.593549 1.651613-1.651613 3.303226-4.954839 4.954839-6.606451 33.032258-31.380645 71.019355-56.154839 112.309677-74.322581 1.651613 0 3.303226 0 3.303226-1.651613 18.167742-8.258065 37.987097-14.864516 56.154839-19.819355 1.651613 0 1.651613-1.651613 3.303226-1.651613 47.896774-13.212903 100.748387-16.516129 153.6-9.909677 3.303226 0 6.606452 1.651613 9.909677 1.651613 6.606452 1.651613 11.56129 1.651613 18.167742 3.303226 80.929032 16.516129 153.6 54.503226 209.754839 112.309677l-29.729032-1.651613c-28.077419-1.651613-51.2 18.167742-52.851613 46.245161-1.651613 28.077419 18.167742 51.2 46.245161 52.851613l142.03871 8.258065z",fill:s.color,"p-id":"4723"},null,8,SF)]))}}),PF={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},TF=["fill"],MF=["fill"],EF=X({__name:"log",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",PF,[e("path",{d:"M762 942H262c-71.68 0-130-58.32-130-130V212c0-71.68 58.32-130 130-130h350c16.56 0 30 13.43 30 30v151.56c0 38.59 31.41 70 70 70h150c16.56 0 30 13.43 30 30V812c0 71.68-58.32 130-130 130zM262 142c-38.59 0-70 31.41-70 70v600c0 38.59 31.41 70 70 70h500c38.59 0 70-31.41 70-70V393.57H712c-71.68 0-130-58.32-130-130V142H262z","p-id":"13142",fill:s.color},null,8,TF),e("path",{d:"M862 393.57H712c-71.68 0-130-58.32-130-130V112c0-12.15 7.32-23.11 18.55-27.73a29.938 29.938 0 0 1 32.71 6.59l250 251.56c8.55 8.59 11.07 21.47 6.43 32.67s-15.58 18.48-27.69 18.48zM642 184.75v78.82c0 38.59 31.41 70 70 70h77.89L642 184.75zM487 379.5H312c-16.57 0-30-13.43-30-30s13.43-30 30-30h175c16.57 0 30 13.43 30 30s-13.43 30-30 30zM712 542H312c-16.57 0-30-13.43-30-30s13.43-30 30-30h400c16.56 0 30 13.43 30 30s-13.44 30-30 30zM712 704.5H312c-16.57 0-30-13.44-30-30s13.43-30 30-30h400c16.56 0 30 13.44 30 30s-13.44 30-30 30z","p-id":"13143",fill:s.color},null,8,MF)]))}}),IF={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},DF=["fill"],LF=X({__name:"upload",props:{color:{type:String,default:"#9810f9"}},setup(s){return(t,n)=>(i(),d("svg",IF,[e("path",{d:"M914.285714 548.571429a36.571429 36.571429 0 0 1 36.571429 36.571428v219.428572a146.285714 146.285714 0 0 1-146.285714 146.285714H219.428571a146.285714 146.285714 0 0 1-146.285714-146.285714v-219.428572a36.571429 36.571429 0 1 1 73.142857 0v219.428572a73.142857 73.142857 0 0 0 67.657143 72.96L219.428571 877.714286h585.142858a73.142857 73.142857 0 0 0 72.96-67.657143L877.714286 804.571429v-219.428572a36.571429 36.571429 0 0 1 36.571428-36.571428zM537.307429 83.858286l258.596571 258.596571a36.571429 36.571429 0 1 1-51.712 51.712L548.571429 198.509714 548.571429 634.733714a36.571429 36.571429 0 1 1-73.142858 0V197.485714L278.674286 394.166857a36.571429 36.571429 0 1 1-51.712-51.712l258.596571-258.596571a36.571429 36.571429 0 0 1 51.712 0z",fill:s.color,"p-id":"9077"},null,8,DF)]))}}),AF={class:"modal-header"},NF={class:"modal-title"},OF={class:"modal-content"},zF={key:0,class:"modal-footer"},qF=X({__name:"index",props:{modelValue:{type:Boolean},title:{default:"提示"},showClose:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!1},footerShow:{type:Boolean,default:!0},width:{default:"500px"}},emits:["update:modelValue","confirm","cancel","close"],setup(s,{expose:t,emit:n}){Dr(m=>({v45d231e9:c.value}));const{$gettext:l}=Ae(),u=s,c=R(()=>typeof u.width=="number"?`${u.width}px`:u.width),r=n,p=x(u.modelValue);We(()=>u.modelValue,m=>{p.value=m}),We(p,m=>{r("update:modelValue",m),m||r("close")}),R(()=>typeof u.width=="number"?`${u.width}px`:u.width);const v=()=>{p.value=!1},h=()=>{u.closeOnClickOverlay&&b()},g=()=>{r("confirm")},b=()=>{r("cancel"),v()};return t({show:()=>p.value=!0,hide:()=>p.value=!1}),(m,f)=>(i(),Y(fn,{name:"fade"},{default:pe(()=>[p.value?(i(),d("div",{key:0,class:"modal-overlay",onClick:Ge(h,["self"])},[G(fn,{name:"slide"},{default:pe(()=>[e("div",{class:"modal-container",style:pt({maxWidth:c.value})},[e("div",AF,[e("h3",NF,a(o(l)(s.title)),1),s.showClose?(i(),d("button",{key:0,class:"modal-close",onClick:b,"aria-label":"Close"}," × ")):T("",!0)]),e("div",OF,[Ct(m.$slots,"default")]),s.footerShow?(i(),d("div",zF,[Ct(m.$slots,"footer",{},()=>[e("button",{class:"modal-button cancel",onClick:b},a(o(l)("取消")),1),e("button",{class:"modal-button confirm",onClick:g},a(o(l)("保存")),1)])])):T("",!0)],4)]),_:3})])):T("",!0)]),_:3}))}}),RF={class:"item_container"},VF={class:"item"},BF={class:"item_title"},UF={class:"tip"},FF={class:"item"},HF={class:"item_title"},GF={class:"select_box"},jF={value:null,disabled:"",selected:""},WF=["value"],JF={class:"start_btn"},KF={key:0,class:"progress"},ZF={class:"item"},YF={class:"item_title"},QF={class:"log_info"},XF={class:"item"},eH={class:"item_title"},tH={class:"result_box"},nH={class:"result"},aH={class:"result_item"},sH={class:"speed_title"},oH={class:"result_item"},lH={class:"speed_title"},iH=X({__name:"item",setup(s){const{$gettext:t}=Ae(),n=x(!1),l=x([{title:"SpeedTest.Net",describe:"全球标准网速测试服务",value:"SpeedTest"},{title:"CDN节点测试",describe:"测试到主要CDN节点的连接速度",value:"CDN"},{title:"UST高校节点",describe:"中科大教育网节点测试",value:"UST"},{title:"NAT类型测速",describe:"检测网络NAT类型和连通性",value:"NAT"}]),u=x(null),c=x(!1),r=()=>{u.value&&(c.value=!0)};return(p,v)=>(i(),d(V,null,[e("div",RF,[e("div",VF,[e("div",BF,[G(Kl,{color:"#155dfc",class:"icon"}),e("span",null,a(o(t)("内网测速")),1)]),e("p",null,a(o(t)("检测本地网络环境,获取内网访问地址")),1),e("div",{class:"wifi_btn",onClick:v[0]||(v[0]=h=>n.value=!0)},[e("div",null,[G(Kl,{color:"#ffffff",class:"icon1"}),e("span",null,a(o(t)("开始内网测速")),1)])]),e("p",UF,a(o(t)("点击按钮获取内网测速地址,通过访问这些地址来测试内网连接速度")),1)]),e("div",FF,[e("div",HF,[G(zs,{color:"#2bb55e",class:"icon"}),e("span",null,a(o(t)("内网测速")),1)]),e("p",null,a(o(t)("选择测速节点,进行网络速度和连接质量测试")),1),e("div",GF,[e("div",null,a(o(t)("选择测速节点")),1),W(e("select",{"onUpdate:modelValue":v[1]||(v[1]=h=>u.value=h),id:"node",required:"",class:_e({"is-placeholder":!u.value})},[e("option",jF,a(o(t)("请选择测速节点")),1),(i(!0),d(V,null,oe(l.value,h=>(i(),d("option",{value:h},a(h.title)+" - "+a(h.describe),9,WF))),256))],2),[[Be,u.value]])]),e("div",{class:_e(["wifi_btn m-20",{"is-bg":!u.value||c.value}]),onClick:r},[e("div",JF,[c.value?(i(),d("span",{key:0,class:_e(["icon3-wrap",{"is-rotating":c.value}])},[G(xF,{color:"#ffffff",class:"icon3"})],2)):(i(),Y(zs,{key:1,color:"#ffffff",class:"icon2"})),e("span",null,a(o(t)("开始测速")),1)])],2),c.value?(i(),d("div",KF,[e("p",null,[ue(a(o(t)("测速进度"))+" ",1),v[3]||(v[3]=e("span",null,"25%",-1))]),G(Di,{percentage:25,showPercentage:!1,height:"10px",borderRadius:"10px",color:"#030213",backgroundColor:"#cdccd0"})])):T("",!0)]),e("div",ZF,[e("div",YF,[G(EF,{color:"#ff6900",class:"icon2"}),e("span",null,a(o(t)("测速日志")),1)]),e("p",null,a(o(t)("实时测速过程记录")),1),e("div",QF,[(i(),d(V,null,oe(20,h=>e("p",null,"[17:00:20] 正在连接到测试服务器...")),64))])]),e("div",XF,[e("div",eH,[G(Ni,{color:"#9865ff",class:"icon2"}),e("span",null,a(o(t)("测速结果")),1)]),e("p",null,a(o(t)("测速节点"))+":CDN节点 (北京)",1),e("div",tH,[e("div",nH,[e("div",aH,[G(Ia,{color:"#155dfc",class:"icon_speed"}),v[4]||(v[4]=e("div",{class:"speed_value"},"105.5",-1)),v[5]||(v[5]=e("span",{class:"unit"},"Mbps",-1)),v[6]||(v[6]=e("span",{class:"status status_bg1"},"优秀",-1)),e("div",sH,a(o(t)("下载速度")),1)]),e("div",oH,[G(LF,{color:"#00a63e",class:"icon_speed1"}),v[7]||(v[7]=e("div",{class:"speed_value"},"105.5",-1)),v[8]||(v[8]=e("span",{class:"unit"},"Mbps",-1)),v[9]||(v[9]=e("span",{class:"status status_bg2"},"良好",-1)),e("div",lH,a(o(t)("上传速度")),1)])]),v[10]||(v[10]=Hn('
18 ms
良好延迟
18 ms
延迟
',2))])])]),G(qF,{modelValue:n.value,"onUpdate:modelValue":v[2]||(v[2]=h=>n.value=h),title:"内网访问地址",width:"550px",footerShow:!1,"show-close":!0},{default:pe(()=>[...v[11]||(v[11]=[e("div",{class:"custom-content"},[e("p",null,"以下是检测到的内网地址,请点击访问进行测速"),e("div",{class:"address_box"},[e("span",null,"http://192.168.1.1"),e("div",null,"访问")]),e("div",{class:"address_box"},[e("span",null,"http://192.168.1.1"),e("div",null,"访问")]),e("div",{class:"address_box"},[e("span",null,"http://192.168.1.1"),e("div",null,"访问")]),e("div",{class:"address_box"},[e("span",null,"http://192.168.1.1"),e("div",null,"访问")]),e("div",{class:"address_box"},[e("span",null,"http://192.168.1.1"),e("div",null,"访问")])],-1)])]),_:1},8,["modelValue"])],64))}}),rH=le(iH,[["__scopeId","data-v-c397f762"]]),cH={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},dH=["fill"],uH=X({__name:"signal",props:{color:{type:String,default:"#155dfc"}},setup(s){return(t,n)=>(i(),d("svg",cH,[e("path",{d:"M0 855.04a64.896 64.896 0 0 1 129.792 0v55.637333a64.896 64.896 0 0 1-129.792 0V855.04zM213.248 669.610667a64.896 64.896 0 0 1 129.792 0v241.066666a64.896 64.896 0 0 1-129.792 0v-241.066666zM426.496 484.181333a64.896 64.896 0 0 1 129.792 0v426.496a64.896 64.896 0 1 1-129.792 0v-426.496zM639.701333 298.752a64.896 64.896 0 1 1 129.792 0v611.925333a64.896 64.896 0 0 1-129.792 0V298.752zM852.949333 113.322667a64.896 64.896 0 0 1 129.792 0v797.354666a64.896 64.896 0 0 1-129.792 0V113.322667z",fill:s.color,"p-id":"11967"},null,8,dH)]))}}),vH={id:"page"},pH={style:{"text-align":"left",display:"flex","align-items":"center","margin-bottom":"20px","padding-top":"4px"}},hH={style:{"text-decoration":"none",color:"var(--breadcrumbs-tit-color1)","line-height":"1.5em"}},mH={class:"container",style:{color:"black"}},fH={class:"title"},bH=X({__name:"index",setup(s){const{$gettext:t}=Ae();return(n,l)=>{const u=At("router-link");return i(),d(V,null,[e("div",vH,[e("div",pH,[G(u,{to:"/",style:{"text-decoration":"none",color:"var(--breadcrumbs-tit-color)","line-height":"1.5em","margin-right":"4px"}},{default:pe(()=>[ue(a(o(t)("首页")),1)]),_:1}),l[0]||(l[0]=e("svg",{width:"20",height:"20",viewBox:"0 0 100 100",xmlns:"http://www.w3.org/2000/svg"},[e("path",{d:"M20 30 L50 50 L20 70",stroke:"#d6dbf8","stroke-width":"8","stroke-linecap":"round",fill:"none"})],-1)),e("a",hH,a(o(t)("网络测速")),1)])]),e("div",mH,[e("div",fH,[e("div",null,[G(uH,{class:"icon"}),l[1]||(l[1]=e("span",null,"网络测速工具",-1))]),l[2]||(l[2]=e("p",null,"专业的网络连接速度检测工具,支持内网和外网测速",-1))]),G(rH)])],64)}}}),gH=le(bH,[["__scopeId","data-v-1fb34484"]]),_H={class:"form-item"},yH={class:"label-name"},kH={class:"label-value switch_label"},wH={class:"label-flex pc-radio"},$H=["disabled"],CH=["disabled"],SH={key:0,class:"form-item"},xH={class:"label-name"},PH={class:"label-value"},TH=["disabled"],MH={value:100},EH={value:70},IH={value:50},DH={value:30},LH={key:0,class:"select-arrow"},AH={class:"form-item"},NH={class:"label-name"},OH={class:"label-value"},zH=["disabled","placeholder"],qH={class:"form-item"},RH={class:"label-name"},VH={class:"label-value"},BH=["disabled"],UH=["value"],FH={key:0,class:"select-arrow"},HH={class:"form-item"},GH={class:"label-name"},jH={class:"label-value"},WH=["type","disabled","placeholder"],JH={key:0,class:"seeIcon",viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg"},KH={key:1,class:"seeIcon",viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg"},ZH={class:"form-item"},YH={class:"label-name"},QH={class:"label-value"},XH=["disabled"],eG={value:!1},tG={value:!0},nG={key:0,class:"select-arrow"},aG={key:1,class:"form-item"},sG={class:"label-name"},oG={class:"label-value"},lG=["disabled"],iG=["value"],rG={key:0,class:"select-arrow"},cG={key:2,class:"form-item"},dG={class:"label-name"},uG={class:"label-value"},vG=["disabled"],pG={key:0,value:"auto"},hG={key:1,value:"80"},mG={key:2,value:"160"},fG={key:0,class:"select-arrow"},bG={key:3,class:"form-item"},gG={class:"label-name"},_G={class:"label-value"},yG=["disabled"],kG={value:0},wG=["value"],$G=["disabled"],CG={value:0},SG={key:2,class:"select-arrow"},xG={key:4,class:"form-item"},PG={class:"label-name"},TG={class:"label-value"},MG=["placeholder","disabled"],EG={class:"label-btns"},IG=["disabled"],DG=X({__name:"form",props:{data:{}},emits:["getData"],setup(s,{emit:t}){const{$gettext:n,$ngettext:l}=Ae(),u=s,c=x(Object.assign({},u.data)),r=t,p=ba("disabled"),v=x(!0),h=()=>{p.value||(c.value.disabled=!c.value.disabled)};We(()=>c.value.disabled,k=>{b()});const g=()=>B(null,null,function*(){if(c.value.txpower===u.data.txpower)return;const k=ne.Loading("配置中...");try{const{data:$}=yield we.Quickwifi.Power.POST({device:c.value.device||"",txpower:c.value.txpower||0}),{error:w,success:S}=$;if(w)throw w;(S==null||S==0)&&ne.Success("配置完成")}catch($){throw ne.Error("配置失败,请重试"),$}finally{k.Close()}}),b=()=>B(null,null,function*(){const k=ne.Loading("配置中...");try{const{data:$}=yield we.Quickwifi.Switch.POST({ifaceName:c.value.ifaceName||"",enable:!c.value.disabled}),{error:w,success:S}=$;if(w)throw w;(S==null||S==0)&&ne.Success("配置完成")}catch($){throw console.error("请求出错:",$),ne.Error("配置失败,请重试"),$}finally{k.Close()}}),m=()=>B(null,null,function*(){const k=ye({},c.value);delete k.encryptSelects,delete k.hwmodeSelects,delete k.disabled,delete k.txpower;const{data:$}=yield we.Quickwifi.Edit.POST(k),{error:w,success:S}=$;if(w)throw w;(S==null||S==0)&&ne.Success("配置完成")}),f=()=>B(null,null,function*(){if(p.value)return;p.value=!0;const k=ne.Loading("配置中...");try{yield m(),yield r("getData")}catch($){const w=ne.Error(`${$}`);setTimeout(()=>{w.Close()},2e3)}finally{k.Close(),p.value=!1}});return(k,$)=>(i(),d("form",{class:"form-container",onSubmit:Ge(f,["prevent"])},[e("div",_H,[e("div",yH,[e("span",null,a(o(n)("启用Wi-Fi")),1)]),e("div",kH,[e("div",wH,[e("label",null,[W(e("input",{type:"radio",value:!1,"onUpdate:modelValue":$[0]||($[0]=w=>c.value.disabled=w),disabled:o(p)},null,8,$H),[[Mt,c.value.disabled]]),ue(" "+a(o(n)("开启")),1)]),e("label",null,[W(e("input",{type:"radio",value:!0,"onUpdate:modelValue":$[1]||($[1]=w=>c.value.disabled=w),disabled:o(p)},null,8,CH),[[Mt,c.value.disabled]]),ue(" "+a(o(n)("关闭")),1)])]),e("div",{class:"mobile-switch",onClick:h},[e("div",{class:_e(["switch-core",{"is-checked":!c.value.disabled,"is-disabled":o(p)}])},[...$[13]||($[13]=[e("div",{class:"switch-button"},null,-1)])],2)])])]),c.value.isGuest?T("",!0):(i(),d("div",SH,[e("div",xH,[e("span",null,a(o(n)("发射功率")),1)]),e("div",PH,[W(e("select",{"onUpdate:modelValue":$[2]||($[2]=w=>c.value.txpower=w),disabled:o(p),onChange:g},[e("option",MH,a(o(n)("最大")),1),e("option",EH,a(o(n)("高")),1),e("option",IH,a(o(n)("中")),1),e("option",DH,a(o(n)("低")),1)],40,TH),[[Be,c.value.txpower]]),o(p)?T("",!0):(i(),d("div",LH))])])),e("div",AH,[e("div",NH,[e("span",null,a(o(n)("Wi-Fi名称(SSID)")),1)]),e("div",OH,[W(e("input",{"onUpdate:modelValue":$[3]||($[3]=w=>c.value.ssid=w),disabled:o(p),placeholder:o(n)("请输入WIFI名称")},null,8,zH),[[Oe,c.value.ssid]])])]),e("div",qH,[e("div",RH,[e("span",null,a(o(n)("Wi-Fi 安全性")),1)]),e("div",VH,[W(e("select",{"onUpdate:modelValue":$[4]||($[4]=w=>c.value.encryption=w),disabled:o(p)},[(i(!0),d(V,null,oe(c.value.encryptSelects,w=>(i(),d("option",{value:w},a(w),9,UH))),256))],8,BH),[[Be,c.value.encryption]]),o(p)?T("",!0):(i(),d("div",FH))])]),e("div",HH,[e("div",GH,[e("span",null,a(o(n)("Wi-Fi 密码")),1)]),e("div",jH,[W(e("input",{"onUpdate:modelValue":$[5]||($[5]=w=>c.value.key=w),class:"password_input",type:v.value?"password":"",disabled:o(p),placeholder:o(n)("请输入WIFI密码")},null,8,WH),[[Lr,c.value.key]]),o(p)?T("",!0):(i(),d("div",{key:0,onClick:$[6]||($[6]=w=>v.value=!v.value)},[v.value?(i(),d("svg",JH,[...$[14]||($[14]=[e("path",{d:"M12 6c3.79 0 7.17 2.13 8.82 5.5-.59 1.22-1.42 2.27-2.41 3.12l1.41 1.41c1.39-1.23 2.49-2.77 3.18-4.53C21.27 7.11 17 4 12 4c-1.27 0-2.49.2-3.64.57l1.65 1.65C10.66 6.09 11.32 6 12 6zm-1.07 1.14L13 9.21c.57.25 1.03.71 1.28 1.28l2.07 2.07c.08-.34.14-.7.14-1.07C16.5 9.01 14.48 7 12 7c-.37 0-.72.05-1.07.14zM2.01 3.87l2.68 2.68C3.06 7.83 1.77 9.53 1 11.5 2.73 15.89 7 19 12 19c1.52 0 2.98-.29 4.32-.82l3.42 3.42 1.41-1.41L3.42 2.45 2.01 3.87zm7.5 7.5l2.61 2.61c-.04.01-.08.02-.12.02-1.38 0-2.5-1.12-2.5-2.5 0-.05.01-.08.01-.13zm-3.4-3.4l1.75 1.75c-.23.55-.36 1.15-.36 1.78 0 2.48 2.02 4.5 4.5 4.5.63 0 1.23-.13 1.77-.36l.98.98c-.88.24-1.8.38-2.75.38-3.79 0-7.17-2.13-8.82-5.5.7-1.43 1.72-2.61 2.93-3.53z",fill:"currentColor"},null,-1)])])):(i(),d("svg",KH,[...$[15]||($[15]=[e("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z",fill:"currentColor"},null,-1)])]))]))])]),e("div",ZH,[e("div",YH,[e("span",null,a(o(n)("SSID 可见性")),1)]),e("div",QH,[W(e("select",{"onUpdate:modelValue":$[7]||($[7]=w=>c.value.hidden=w),disabled:o(p)},[e("option",eG,a(o(n)("显示")),1),e("option",tG,a(o(n)("隐藏")),1)],8,XH),[[Be,c.value.hidden]]),o(p)?T("",!0):(i(),d("div",nG))])]),c.value.isGuest?T("",!0):(i(),d("div",aG,[e("div",sG,[e("span",null,a(o(n)("无线模式")),1)]),e("div",oG,[W(e("select",{"onUpdate:modelValue":$[8]||($[8]=w=>c.value.hwmode=w),disabled:o(p)},[(i(!0),d(V,null,oe(c.value.hwmodeSelects,w=>(i(),d("option",{value:w},a(w),9,iG))),256))],8,lG),[[Be,c.value.hwmode]]),o(p)?T("",!0):(i(),d("div",rG))])])),c.value.isGuest?T("",!0):(i(),d("div",cG,[e("div",dG,[e("span",null,a(o(n)("频宽")),1)]),e("div",uG,[W(e("select",{"onUpdate:modelValue":$[9]||($[9]=w=>c.value.htmode=w),disabled:o(p)},[$[16]||($[16]=e("option",{value:"20"},"20 MHz",-1)),$[17]||($[17]=e("option",{value:"40"},"40 MHz",-1)),c.value.band==="2g"?(i(),d("option",pG," 20/40 MHz ")):T("",!0),c.value.band==="5g"?(i(),d("option",hG," 80 MHz ")):T("",!0),c.value.band==="5g"?(i(),d("option",mG," 160 MHz ")):T("",!0)],8,vG),[[Be,c.value.htmode]]),o(p)?T("",!0):(i(),d("div",fG))])])),c.value.isGuest?T("",!0):(i(),d("div",bG,[e("div",gG,[e("span",null,a(o(n)("信道")),1)]),e("div",_G,[c.value.band==="2g"?W((i(),d("select",{key:0,"onUpdate:modelValue":$[10]||($[10]=w=>c.value.channel=w),disabled:o(p)},[e("option",kG,a(o(n)("自动")),1),(i(),d(V,null,oe(13,w=>e("option",{value:w},a(w),9,wG)),64))],8,yG)),[[Be,c.value.channel,void 0,{number:!0}]]):T("",!0),c.value.band==="5g"?W((i(),d("select",{key:1,"onUpdate:modelValue":$[11]||($[11]=w=>c.value.channel=w),disabled:o(p)},[e("option",CG,a(o(n)("自动")),1),$[18]||($[18]=e("option",{value:36},"36",-1)),$[19]||($[19]=e("option",{value:40},"40",-1)),$[20]||($[20]=e("option",{value:44},"44",-1)),$[21]||($[21]=e("option",{value:48},"48",-1)),$[22]||($[22]=e("option",{value:52},"52(DFS)",-1)),$[23]||($[23]=e("option",{value:56},"56(DFS)",-1)),$[24]||($[24]=e("option",{value:60},"60(DFS)",-1)),$[25]||($[25]=e("option",{value:64},"64(DFS)",-1)),$[26]||($[26]=e("option",{value:149},"149",-1)),$[27]||($[27]=e("option",{value:153},"153",-1)),$[28]||($[28]=e("option",{value:157},"157",-1)),$[29]||($[29]=e("option",{value:161},"161",-1))],8,$G)),[[Be,c.value.channel,void 0,{number:!0}]]):T("",!0),o(p)?T("",!0):(i(),d("div",SG))])])),c.value.isGuest?T("",!0):(i(),d("div",xG,[e("div",PG,[e("span",null,a(o(n)("网络")),1)]),e("div",TG,[W(e("input",{type:"text",placeholder:o(n)("请配置网络名称"),required:"","onUpdate:modelValue":$[12]||($[12]=w=>c.value.network=w),disabled:o(p)},null,8,MG),[[Oe,c.value.network]])])])),e("div",EG,[e("button",{class:"btn primary-btn",disabled:o(p),onClick:f},a(o(n)("保存配置")),9,IG)])],32))}}),LG=le(DG,[["__scopeId","data-v-d46f20af"]]),AG={id:"page",class:"page-container"},NG={class:"mobile-tags-container"},OG={class:"tags-wrapper"},zG={class:"tags-scroll"},qG=["onClick"],RG={class:"more-btn-wrapper"},VG={class:"page-flex"},BG={class:"page-sidebar"},UG=["onClick"],FG={class:"page-main"},HG={class:"popup-content"},GG={class:"popup-tags"},jG=["onClick"],WG={class:"popup-footer"},JG=X({__name:"index",setup(s){var $;const{$gettext:t}=Ae(),n=x(!1);ma("disabled",n);const l=x([]),u=ta(),c=as(),r=x(String(($=u==null?void 0:u.query)==null?void 0:$.tab)),p=x(!1),v=w=>{var S;return(S=w.band)==null?void 0:S.toUpperCase()},h=w=>w.isGuest?w.band+"_Guest":w.ssid,g=w=>{n.value||(r.value=h(w),p.value=!1,r.value!==u.query.tab&&c.push({query:{tab:r.value}}))},b=x(),m=w=>{n.value||(b.value=h(w))},f=()=>{p.value=!1,b.value!==u.query.tab&&c.push({query:{tab:b.value}})};We(()=>p.value,w=>{w?b.value=r.value:r.value=b.value});const k=()=>B(null,null,function*(){try{const{data:w}=yield we.Quickwifi.List.GET(),{error:S,result:C}=w;if(S)throw S;C!=null&&C.ifaces&&(l.value=C.ifaces.map(P=>Ne(ye({},P),{hidden:P.hidden||!1,disabled:P.disabled||!1,isGuest:P.isGuest||!1,channel:P.channel||0,txpower:P.txpower||0,ifaceIndex:P.ifaceIndex||0})));let y=!1;for(let P=0;P0&&g(l.value[0])}catch(w){console.log(w)}});return k(),(w,S)=>(i(),d("div",AG,[e("div",NG,[e("div",OG,[e("div",zG,[(i(!0),d(V,null,oe(l.value,C=>(i(),d("div",{key:h(C),class:_e(r.value===h(C)?"tag-item active":"tag-item"),onClick:Ge(y=>g(C),["stop"])},a(v(C))+" "+a(C.isGuest?` ${o(t)("访客")}`:"")+" Wi-Fi "+a(C.ifaceIndex?`[${C.ifaceIndex}]`:""),11,qG))),128))]),e("div",RG,[S[4]||(S[4]=e("div",{class:"fade-overlay"},null,-1)),e("div",{class:"more-btn",onClick:S[0]||(S[0]=C=>p.value=!0)},[...S[3]||(S[3]=[e("div",{class:"line"},null,-1),e("div",{class:"line"},null,-1),e("div",{class:"line"},null,-1)])])])])]),e("div",VG,[e("div",BG,[(i(!0),d(V,null,oe(l.value,C=>(i(),d("div",{key:h(C),class:_e(r.value===h(C)?"item activeItem":"item"),onClick:Ge(y=>g(C),["stop"])},a(v(C))+" "+a(C.isGuest?` ${o(t)("访客")}`:"")+" Wi-Fi "+a(C.ifaceIndex?`[${C.ifaceIndex}]`:""),11,UG))),128))]),e("div",FG,[(i(!0),d(V,null,oe(l.value,C=>(i(),d(V,{key:h(C)},[r.value===h(C)?(i(),Y(LG,{key:0,data:C,onGetData:k},null,8,["data"])):T("",!0)],64))),128))])]),p.value?(i(),d("div",{key:0,class:"popup-overlay",onClick:S[2]||(S[2]=Ge(C=>p.value=!1,["self"]))},[e("div",HG,[e("div",GG,[(i(!0),d(V,null,oe(l.value,C=>(i(),d("div",{key:h(C),class:_e(b.value===h(C)?"popup-tag-item active":"popup-tag-item"),onClick:Ge(y=>m(C),["stop"])},a(v(C))+" "+a(C.isGuest?` ${o(t)("访客")}`:"")+" Wi-Fi "+a(C.ifaceIndex?`[${C.ifaceIndex}]`:""),11,jG))),128))]),e("div",WG,[e("button",{class:"cancel-btn",onClick:S[1]||(S[1]=C=>p.value=!1)},a(o(t)("取消")),1),e("button",{class:"confirm-btn",onClick:f},a(o(t)("确定")),1)])])])):T("",!0)]))}}),KG=le(JG,[["__scopeId","data-v-aa1ba5db"]]),ZG=()=>window.vue_base||"/cgi-bin/luci/admin/quickstart",YG=Ur({history:Fr(ZG()),routes:[{name:"IndexPage",path:"/",meta:{title:"控制台"},component:YC},{name:"NetworkPage",path:"/network",meta:{title:"网络设置向导"},component:eS,children:[{path:"",component:TS},{path:"pppoe",component:ZS},{path:"dhcp",component:Ax},{path:"gateway",component:wP}]},{path:"/quickwifi",component:KG},{name:"RaidPage",path:"/raid",meta:{title:"raid向导"},component:FM},{name:"SmartPage",path:"/smart",meta:{title:"smart检测"},component:KM,children:[{path:"",component:FD},{path:"task",component:sL},{path:"log",component:rL}]},{path:"/interfaceconfig",component:sA},{path:"/devicemanagement",component:gF},{path:"/networkSpeedTest",component:gH}]});YG.beforeEach((s,t)=>(s.meta.title,!0));export{nj as A,Ta as E,na as N,aj as S,Qe as _,sj as a,oj as b,lj as c,ij as d,rj as e,cj as f,dj as g,uj as h,js as i,vj as j,Jc as k,Pd as l,tj as m,le as n,Fd as o,Nc as p,hi as q,YG as r}; diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/card-runtime-v1.js b/luci-app-quickstart/htdocs/luci-static/quickstart/card-runtime-v1.js new file mode 100644 index 000000000..4ebaff3be --- /dev/null +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/card-runtime-v1.js @@ -0,0 +1,8 @@ +/** +* vue v3.5.44 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var Zl,Yl;let ii,Se,pe,sn,on,zn,bt,qn,Ql,Nt,St,er;function Gn(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return n=>n in t}let te={},Pt=[],He=()=>{},si=()=>!1,an=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),Jn=e=>e.startsWith("onUpdate:"),ie=Object.assign,tr=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},jo=Object.prototype.hasOwnProperty,re=(e,t)=>jo.call(e,t),H=Array.isArray,G=e=>typeof e=="function",ue=e=>typeof e=="string",De=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",nr=e=>(se(e)||G(e))&&G(e.then)&&G(e.catch),ce=Object.prototype.toString,Xn=e=>ue(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Mt=Gn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Zn=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Vo=/-\w/g,me=Zn(e=>e.replace(Vo,t=>t.slice(1).toUpperCase())),Do=/\B([A-Z])/g,Ie=Zn(e=>e.replace(Do,"-$1").toLowerCase()),un=Zn(e=>e.charAt(0).toUpperCase()+e.slice(1)),cn=Zn(e=>e?`on${un(e)}`:""),ke=(e,t)=>!Object.is(e,t),Ht=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:l,value:n})},Yn=e=>{let t=parseFloat(e);return isNaN(t)?e:t},Wt=e=>{let t=ue(e)?Number(e):NaN;return isNaN(t)?e:t},Qn=()=>ii||(ii="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),Uo=Gn("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function pn(e){if(H(e)){let t={};for(let n=0;no.startsWith("/*")?"":o).split(Bo).forEach(o=>{if(o){let a=o.split($o);a.length>1&&(s[a[0].trim()]=a[1].trim())}}),s})(l):pn(l);if(r)for(let i in r)t[i]=r[i]}return t}if(ue(e)||se(e))return e}let Bo=/;(?![^(]*\))/g,$o=/:([^]+)/,Ho=/"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;function fn(e){let t="";if(ue(e))t=e;else if(H(e))for(let n=0;nqe(n,t))}let ci=e=>!!(e&&e.__v_isRef===!0),pi=e=>ue(e)?e:e==null?"":H(e)||se(e)&&(e.toString===ce||!G(e.toString))?ci(e)?pi(e.value):JSON.stringify(e,fi,2):String(e),fi=(e,t)=>{let n;if(ci(t))return fi(e,t.value);if(n=t,ce.call(n)==="[object Map]")return{[`Map(${t.size})`]:[...t.entries()].reduce((l,[r,i],s)=>(l[lr(r,s)+" =>"]=i,l),{})};{let l;if(l=t,ce.call(l)==="[object Set]")return{[`Set(${t.size})`]:[...t.values()].map(r=>lr(r))};{if(De(t))return lr(t);let r;if(se(t)&&!H(t)&&(r=t,ce.call(r)!=="[object Object]"))return String(t)}}return t},lr=(e,t="")=>{var n;return De(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};class rr{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Se&&(Se.active?(this.parent=Se,this.index=(Se.scopes||(Se.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){let t,n;if(this._isPaused=!0,this.scopes){let l=this.scopes.slice();for(t=0,n=l.length;t0&&--this._on==0){if(Se===this)Se=this.prevScope;else{let t=Se;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){let n,l;for(this._active=!1,n=0,l=this.effects.length;n0)){if(on){let t=on;for(on=void 0;t;){let n=t.next;t.next=void 0,t.flags&=-9,t=n}}for(;sn;){let t=sn;for(sn=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(l){e||(e=l)}t=n}}if(e)throw e}}function gi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function vi(e){let t,n=e.depsTail,l=n;for(;l;){let r=l.prevDep;l.version===-1?(l===n&&(n=r),ar(l),(function(i){let{prevDep:s,nextDep:o}=i;s&&(s.nextDep=o,i.prevDep=void 0),o&&(o.prevDep=s,i.nextDep=void 0)})(l)):t=l,l.dep.activeLink=l.prevActiveLink,l.prevActiveLink=void 0,l=r}e.deps=t,e.depsTail=n}function or(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(mi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function mi(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===hn)||(e.globalVersion=hn,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!or(e))))return;e.flags|=2;let t=e.dep,n=pe,l=Ge;pe=e,Ge=!0;try{gi(e);let r=e.fn(e._value);(t.version===0||ke(r,e._value))&&(e.flags|=128,e._value=r,t.version++)}catch(r){throw t.version++,r}finally{pe=n,Ge=l,vi(e),e.flags&=-3}}function ar(e,t=!1){let{dep:n,prevSub:l,nextSub:r}=e;if(l&&(l.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=l,e.nextSub=void 0),n.subs===e&&(n.subs=l,!l&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)ar(i,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function Xo(e,t){e.effect instanceof dn&&(e=e.effect.fn);let n=new dn(e);t&&ie(n,t);try{n.run()}catch(r){throw n.stop(),r}let l=n.run.bind(n);return l.effect=n,l}function Zo(e){e.effect.stop()}let Ge=!0,_i=[];function Ye(){_i.push(Ge),Ge=!1}function Qe(){let e=_i.pop();Ge=e===void 0||e}function yi(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let n=pe;pe=void 0;try{t()}finally{pe=n}}}let hn=0;class Yo{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class nl{constructor(t){this.computed=t,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(t){if(!pe||!Ge||pe===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==pe)n=this.activeLink=new Yo(pe,this),pe.deps?(n.prevDep=pe.depsTail,pe.depsTail.nextDep=n,pe.depsTail=n):pe.deps=pe.depsTail=n,(function l(r){if(r.dep.sc++,4&r.sub.flags){let i=r.dep.computed;if(i&&!r.dep.subs){i.flags|=20;for(let o=i.deps;o;o=o.nextDep)l(o)}let s=r.dep.subs;s!==r&&(r.prevSub=s,s&&(s.nextSub=r)),r.dep.subs=r}})(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){let l=n.nextDep;l.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=l),n.prevDep=pe.depsTail,n.nextDep=void 0,pe.depsTail.nextDep=n,pe.depsTail=n,pe.deps===n&&(pe.deps=l)}return n}trigger(t){this.version++,hn++,this.notify(t)}notify(t){tl++;try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{sr()}}}let ll=new WeakMap,Ft=Symbol(""),ur=Symbol(""),gn=Symbol("");function Ae(e,t,n){if(Ge&&pe){let l=ll.get(e);l||ll.set(e,l=new Map);let r=l.get(n);r||(l.set(n,r=new nl),r.map=l,r.key=n),r.track()}}function at(e,t,n,l,r,i){let s=ll.get(e);if(!s)return void hn++;let o=a=>{a&&a.trigger()};if(tl++,t==="clear")s.forEach(o);else{let a=H(e),u=a&&Xn(n);if(a&&n==="length"){let f=Number(l);s.forEach((g,v)=>{(v==="length"||v===gn||!De(v)&&v>=f)&&o(g)})}else switch((n!==void 0||s.has(void 0))&&o(s.get(n)),u&&o(s.get(gn)),t){case"add":if(a)u&&o(s.get("length"));else{let g;o(s.get(Ft)),g=e,ce.call(g)==="[object Map]"&&o(s.get(ur))}break;case"delete":if(!a){let g;o(s.get(Ft)),g=e,ce.call(g)==="[object Map]"&&o(s.get(ur))}break;case"set":let f;f=e,ce.call(f)==="[object Map]"&&o(s.get(Ft))}}sr()}function Kt(e){let t=le(e);return t===e||(Ae(t,"iterate",gn),Le(e))?t:Je(e)?tt(e)?t.map(n=>Ct(We(n))):t.map(Ct):t.map(We)}function rl(e){return Ae(e=le(e),"iterate",gn),e}function et(e,t){return Je(e)?tt(e)?Ct(We(t)):Ct(t):We(t)}let Qo={__proto__:null,[Symbol.iterator](){return cr(this,Symbol.iterator,e=>et(this,e))},concat(...e){return Kt(this).concat(...e.map(t=>H(t)?Kt(t):t))},entries(){return cr(this,"entries",e=>(e[1]=et(this,e[1]),e))},every(e,t){return ut(this,"every",e,t,void 0,arguments)},filter(e,t){return ut(this,"filter",e,t,n=>n.map(l=>et(this,l)),arguments)},find(e,t){return ut(this,"find",e,t,n=>et(this,n),arguments)},findIndex(e,t){return ut(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ut(this,"findLast",e,t,n=>et(this,n),arguments)},findLastIndex(e,t){return ut(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ut(this,"forEach",e,t,void 0,arguments)},includes(...e){return pr(this,"includes",e)},indexOf(...e){return pr(this,"indexOf",e)},join(e){return Kt(this).join(e)},lastIndexOf(...e){return pr(this,"lastIndexOf",e)},map(e,t){return ut(this,"map",e,t,void 0,arguments)},pop(){return vn(this,"pop")},push(...e){return vn(this,"push",e)},reduce(e,...t){return Ci(this,"reduce",e,t)},reduceRight(e,...t){return Ci(this,"reduceRight",e,t)},shift(){return vn(this,"shift")},some(e,t){return ut(this,"some",e,t,void 0,arguments)},splice(...e){return vn(this,"splice",e)},toReversed(){return Kt(this).toReversed()},toSorted(e){return Kt(this).toSorted(e)},toSpliced(...e){return Kt(this).toSpliced(...e)},unshift(...e){return vn(this,"unshift",e)},values(){return cr(this,"values",e=>et(this,e))}};function cr(e,t,n){let l=rl(e),r=l[t],i=r.call(l);if(l!==e&&!Le(e)){if(i[Symbol.toStringTag]==="Array Iterator"){let s=Object.create(Object.getPrototypeOf(i));return s.next=()=>bi(i.next(),n),r!==Si[t]&&Object.defineProperties(s,{return:{get(){let o=i.return;return typeof o=="function"?o.bind(i):o}},throw:{get(){let o=i.throw;return typeof o=="function"?o.bind(i):o}}}),s}i._next=i.next,i.next=()=>bi(i._next(),n)}return i}function bi(e,t){return e.done||(e.value=t(e.value)),e}let Si=Array.prototype;function ut(e,t,n,l,r,i){let s=rl(e),o=s!==e&&!Le(e),a=s[t];if(a!==Si[t]){let g=a.apply(e,i);return o?We(g):g}let u=n;s!==e&&(o?u=function(g,v){return n.call(this,et(e,g),v,e)}:n.length>2&&(u=function(g,v){return n.call(this,g,v,e)}));let f=a.call(s,u,l);return o&&r?r(f):f}function Ci(e,t,n,l){let r=rl(e),i=r!==e&&!Le(e),s=n,o=!1;r!==e&&(i?(o=l.length===0,s=function(u,f,g){return o&&(o=!1,u=et(e,u)),n.call(this,u,et(e,f),g,e)}):n.length>3&&(s=function(u,f,g){return n.call(this,u,f,g,e)}));let a=r[t](s,...l);return o?et(e,a):a}function pr(e,t,n){let l=le(e);Ae(l,"iterate",gn);let r=l[t](...n);return(r===-1||r===!1)&&mn(n[0])?(n[0]=le(n[0]),l[t](...n)):r}function vn(e,t,n=[]){Ye(),tl++;let l=le(e)[t].apply(e,n);return sr(),Qe(),l}let ea=Gn("__proto__,__v_isRef,__isVue"),xi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(De));function ta(e){De(e)||(e=String(e));let t=le(this);return Ae(t,"has",e),t.hasOwnProperty(e)}class wi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,l){if(n==="__v_skip")return t.__v_skip;let r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return l===(r?i?Oi:Ri:i?Ai:Ti).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(l)?t:void 0;let s=H(t);if(!r){let a;if(s&&(a=Qo[n]))return a;if(n==="hasOwnProperty")return ta}let o=Reflect.get(t,n,_e(t)?t:l);if((De(n)?xi.has(n):ea(n))||(r||Ae(t,"get",n),i))return o;if(_e(o)){let a=s&&Xn(n)?o:o.value;return r&&se(a)?al(a):a}return se(o)?r?al(o):ol(o):o}}class ki extends wi{constructor(t=!1){super(!1,t)}set(t,n,l,r){let i=t[n],s=H(t)&&Xn(n);if(!this._isShallow){let u=Je(i);if(Le(l)||Je(l)||(i=le(i),l=le(l)),!s&&_e(i)&&!_e(l))return u||(i.value=l),!0}let o=s?Number(n)e;function il(e){return function(){return e!=="delete"&&(e==="clear"?void 0:this)}}function sl(e,t){let n,l=(ie(n={get(r){let i=this.__v_raw,s=le(i),o=le(r);e||(ke(r,o)&&Ae(s,"get",r),Ae(s,"get",o));let{has:a}=Reflect.getPrototypeOf(s),u=t?fr:e?Ct:We;return a.call(s,r)?u(i.get(r)):a.call(s,o)?u(i.get(o)):void(i!==s&&i.get(r))},get size(){let r=this.__v_raw;return e||Ae(le(r),"iterate",Ft),r.size},has(r){let i=this.__v_raw,s=le(i),o=le(r);return e||(ke(r,o)&&Ae(s,"has",r),Ae(s,"has",o)),r===o?i.has(r):i.has(r)||i.has(o)},forEach(r,i){let s=this,o=s.__v_raw,a=le(o),u=t?fr:e?Ct:We;return e||Ae(a,"iterate",Ft),o.forEach((f,g)=>r.call(i,u(f),u(g),s))}},e?{add:il("add"),set:il("set"),delete:il("delete"),clear:il("clear")}:{add(r){let i=le(this),s=Reflect.getPrototypeOf(i),o=le(r),a=t||Le(r)||Je(r)?r:o;return s.has.call(i,a)||ke(r,a)&&s.has.call(i,r)||ke(o,a)&&s.has.call(i,o)||(i.add(a),at(i,"add",a,a)),this},set(r,i){t||Le(i)||Je(i)||(i=le(i));let s=le(this),{has:o,get:a}=Reflect.getPrototypeOf(s),u=o.call(s,r);u||(r=le(r),u=o.call(s,r));let f=a.call(s,r);return s.set(r,i),u?ke(i,f)&&at(s,"set",r,i):at(s,"add",r,i),this},delete(r){let i=le(this),{has:s,get:o}=Reflect.getPrototypeOf(i),a=s.call(i,r);a||(r=le(r),a=s.call(i,r)),o&&o.call(i,r);let u=i.delete(r);return a&&at(i,"delete",r,void 0),u},clear(){let r=le(this),i=r.size!==0,s=r.clear();return i&&at(r,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...i){let s,o=this.__v_raw,a=le(o),u=(s=a,ce.call(s)==="[object Map]"),f=r==="entries"||r===Symbol.iterator&&u,g=o[r](...i),v=t?fr:e?Ct:We;return e||Ae(a,"iterate",r==="keys"&&u?ur:Ft),ie(Object.create(g),{next(){let{value:_,done:m}=g.next();return m?{value:_,done:m}:{value:f?[v(_[0]),v(_[1])]:v(_),done:m}}})}}),n);return(r,i,s)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_isShallow"?t:i==="__v_raw"?r:Reflect.get(re(l,i)&&i in r?l:r,i,s)}let sa={get:sl(!1,!1)},oa={get:sl(!1,!0)},aa={get:sl(!0,!1)},ua={get:sl(!0,!0)},Ti=new WeakMap,Ai=new WeakMap,Ri=new WeakMap,Oi=new WeakMap;function ol(e){return Je(e)?e:ul(e,!1,na,sa,Ti)}function Ni(e){return ul(e,!1,ra,oa,Ai)}function al(e){return ul(e,!0,la,aa,Ri)}function ca(e){return ul(e,!0,ia,ua,Oi)}function ul(e,t,n,l,r){let i;if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let s=r.get(e);if(s)return s;let o=(function(u){switch(u){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}})((i=e,ce.call(i)).slice(8,-1));if(o===0)return e;let a=new Proxy(e,o===2?l:n);return r.set(e,a),a}function tt(e){return Je(e)?tt(e.__v_raw):!!(e&&e.__v_isReactive)}function Je(e){return!!(e&&e.__v_isReadonly)}function Le(e){return!!(e&&e.__v_isShallow)}function mn(e){return!!e&&!!e.__v_raw}function le(e){let t=e&&e.__v_raw;return t?le(t):e}function Pi(e){return!re(e,"__v_skip")&&Object.isExtensible(e)&&oi(e,"__v_skip",!0),e}let We=e=>se(e)?ol(e):e,Ct=e=>se(e)?al(e):e;function _e(e){return!!e&&e.__v_isRef===!0}function _n(e){return Fi(e,!1)}function Mi(e){return Fi(e,!0)}function Fi(e,t){return _e(e)?e:new pa(e,t)}class pa{constructor(t,n){this.dep=new nl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:le(t),this._value=n?t:We(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){let n=this._rawValue,l=this.__v_isShallow||Le(t)||Je(t);ke(t=l?t:le(t),n)&&(this._rawValue=t,this._value=l?t:We(t),this.dep.trigger())}}function fa(e){e.dep&&e.dep.trigger()}function yn(e){return _e(e)?e.value:e}function da(e){return G(e)?e():yn(e)}let ha={get:(e,t,n)=>t==="__v_raw"?e:yn(Reflect.get(e,t,n)),set:(e,t,n,l)=>{let r=e[t];return _e(r)&&!_e(n)?(r.value=n,!0):Reflect.set(e,t,n,l)}};function dr(e){return tt(e)?e:new Proxy(e,ha)}class ga{constructor(t){this.__v_isRef=!0,this._value=void 0;let n=this.dep=new nl,{get:l,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=l,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Ii(e){return new ga(e)}function va(e){let t=H(e)?Array(e.length):{};for(let n in e)t[n]=new Li(e,n,void 0);return t}class Li{constructor(t,n,l){this._object=t,this._defaultValue=l,this.__v_isRef=!0,this._value=void 0,this._key=De(n)?n:String(n),this._raw=le(t);let r=!0,i=t;if(!H(t)||De(this._key)||!Xn(this._key))do r=!mn(i)||Le(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let t=this._object[this._key];return this._shallow&&(t=yn(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&_e(this._raw[this._key])){let n=this._object[this._key];if(_e(n)){n.value=t;return}}this._object[this._key]=t}get dep(){var t,n;let l;return t=this._raw,n=this._key,(l=ll.get(t))&&l.get(n)}}class ma{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function _a(e,t,n){return _e(e)?e:G(e)?new ma(e):!se(e)||!(arguments.length>1)?_n(e):new Li(e,t,n)}class ya{constructor(t,n,l){this.fn=t,this.setter=n,this._value=void 0,this.dep=new nl(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=hn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=l}notify(){if(this.flags|=16,!(8&this.flags)&&pe!==this)return hi(this,!0),!0}get value(){let t=this.dep.track();return mi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}let ba={GET:"get",HAS:"has",ITERATE:"iterate"},Sa={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},cl={},pl=new WeakMap;function Ca(){return St}function ji(e,t=!1,n=St){if(n){let l=pl.get(n);l||pl.set(n,l=[]),l.push(e)}}function ct(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,_e(e))ct(e.value,t,n);else if(H(e))for(let l=0;l{ct(i,t,n)});else{let i;if(i=e,ce.call(i)==="[object Object]"){for(let s in e)ct(e[s],t,n);for(let s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&ct(e[s],t,n)}}}return e}function xa(e,t){}let wa={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"};function zt(e,t,n,l){try{return l?e(...l):e()}catch(r){It(r,t,n)}}function Ue(e,t,n,l){if(G(e)){let r=zt(e,t,n,l);return r&&nr(r)&&r.catch(i=>{It(i,t,n)}),r}if(H(e)){let r=[];for(let i=0;i=Sn(n)?Ne.push(e):Ne.splice((function(l){let r=Xe+1,i=Ne.length;for(;r>>1,o=Ne[s],a=Sn(o);a=t))continue;Ne.splice(l,1),l=e?l-1:Xe,4&r.flags&&(r.flags&=-2),r(),4&r.flags||(r.flags&=-2)}}}function hl(e,t,n=0){if(nt.length){let l=nt,r=0;if(t){l=[];for(let s=0;sSn(s)-Sn(o));if(nt.length=r,xt){for(let s=0;se.id==null?2&e.flags?-1:1/0:e.id,Ee=null,gl=null;function Cn(e){let t=Ee;return Ee=e,gl=e&&e.type.__scopeId||null,t}function ka(e){gl=e}function Ea(){gl=null}let Ta=e=>vr;function vr(e,t=Ee,n){if(!t||e._n)return e;let l=(...r)=>{let i;l._d&&jn(-1);let s=Cn(t),o=dt.length;try{i=e(...r)}finally{for(let a=dt.length;a>o;a--)Il();Cn(s),l._d&&jn(1)}return i};return l._n=!0,l._c=!0,l._d=!0,l}function Aa(e,t){if(Ee===null)return e;let n=Dn(Ee),l=e.dirs||(e.dirs=[]);for(let r=0;r1)return n&&G(t)?t.call(l&&l.proxy):t}}function Ra(){return!!(Me()||jt)}let $i=Symbol.for("v-scx"),Hi=()=>xn($i);function Oa(e,t){return wn(e,null,t)}function Na(e,t){return wn(e,null,{flush:"post"})}function Wi(e,t){return wn(e,null,{flush:"sync"})}function Gt(e,t,n){return wn(e,t,n)}function wn(e,t,n=te){let l,{immediate:r,flush:i}=n,s=ie({},n),o=t&&r||!t&&i!=="post";if(Ut){if(i==="sync"){let g=Hi();l=g.__watcherHandles||(g.__watcherHandles=[])}else if(!o){let g=()=>{};return g.stop=He,g.resume=He,g.pause=He,g}}let a=Te;s.call=(g,v,_)=>Ue(g,a,v,_);let u=!1;i==="post"?s.scheduler=g=>{g.i=a,ye(g,a&&a.suspense)}:i!=="sync"&&(u=!0,s.scheduler=(g,v)=>{v?g():hr(g)}),s.augmentJob=g=>{t&&(g.flags|=4),u&&(g.flags|=2,a&&(g.id=a.uid,g.i=a))};let f=(function(g,v,_=te){let m,x,N,M,{immediate:c,deep:h,once:y,scheduler:T,augmentJob:R,call:E}=_,P=U=>h?U:Le(U)||h===!1||h===0?ct(U,1):ct(U),F=!1,V=!1;if(_e(g)?(x=()=>g.value,F=Le(g)):tt(g)?(x=()=>P(g),F=!0):H(g)?(V=!0,F=g.some(U=>tt(U)||Le(U)),x=()=>g.map(U=>_e(U)?U.value:tt(U)?P(U):G(U)?E?E(U,2):U():void 0)):x=G(g)?v?E?()=>E(g,2):g:()=>{if(N){Ye();try{N()}finally{Qe()}}let U=St;St=m;try{return E?E(g,3,[M]):g(M)}finally{St=U}}:He,v&&h){let U=x,Q=h===!0?1/0:h;x=()=>ct(U(),Q)}let K=di(),A=()=>{m.stop(),K&&K.active&&tr(K.effects,m)};if(y&&v){let U=v;v=(...Q)=>{try{return U(...Q)}finally{A()}}}let B=V?Array(g.length).fill(cl):cl,z=U=>{if(1&m.flags&&(m.dirty||U))if(v){let Q=m.run();if(U||h||F||(V?Q.some((ee,X)=>ke(ee,B[X])):ke(Q,B))){let ee=St;Ye();try{N&&N(),St=m;let X=[Q,B===cl?void 0:V&&B[0]===cl?[]:B,M];B=Q,E?E(v,3,X):v(...X)}finally{St=ee,Qe()}}}else m.run()};return R&&R(z),(m=new dn(x)).scheduler=T?()=>T(z,!1):z,M=U=>ji(U,!1,m),N=m.onStop=()=>{let U=pl.get(m);if(U){if(E)E(U,4);else for(let Q of U)Q();pl.delete(m)}},v?c?z(!0):B=m.run():T?T(z.bind(null,!0),!0):m.run(),A.pause=m.pause.bind(m),A.resume=m.resume.bind(m),A.stop=A,A})(e,t,s);return Ut&&(l?l.push(f):o&&f()),f}function Pa(e,t,n){let l,r=this.proxy,i=ue(e)?e.includes(".")?Ki(r,e):()=>r[e]:e.bind(r,r);G(t)?l=t:(l=t.handler,n=t);let s=en(this),o=wn(i,l.bind(r),n);return s(),o}function Ki(e,t){let n=t.split(".");return()=>{let l=e;for(let r=0;re&&(e.disabled||e.disabled===""),qi=e=>"u">typeof SVGElement&&e instanceof SVGElement,Gi=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,mr=(e,t)=>{let n=e&&e.to;return ue(n)?t?t(n):null:n};function vl(e,t,n,{o:{insert:l},m:r},i=2){i===0&&(e.targetStart&&l(e.targetStart,t,n),l(e.targetAnchor,t,n),n=e.targetAnchor);let{el:s,anchor:o,shapeFlag:a,children:u,props:f}=e,g=i===2;if(g&&l(s,t,n),!wt.has(e)&&(!g||Lt(f))&&16&a)for(let v=0;v{16&R.shapeFlag&&f(R.children,E,P,r,i,s,o,a)},y=(R=t)=>{let E=Lt(R.props),P=R.target=mr(R.props,m),F=_r(P,R,x,_);P&&(s!=="svg"&&qi(P)?s="svg":s!=="mathml"&&Gi(P)&&(s="mathml"),r&&r.isCE&&(r.ce._teleportTargets||(r.ce._teleportTargets=new Set)).add(P),E||(h(R,P,F),kn(R,!1)))},T=R=>{let E=()=>{if(wt.get(R)===E){if(wt.delete(R),Lt(R.props)){let P=N(R.el)||n;h(R,P,R.anchor),kn(R,!0)}y(R)}};wt.set(R,E),ye(E,i)};if(e==null){let R,E=t.el=x(""),P=t.anchor=x("");if(_(E,n,l),_(P,n,l),(R=t.props)&&(R.defer||R.defer==="")||i&&i.pendingBranch)return void T(t);M&&(h(t,n,P),kn(t,!0)),y()}else{t.el=e.el;let R=t.anchor=e.anchor,E=wt.get(e);if(E){E.flags|=8,wt.delete(e),T(t);return}t.targetStart=e.targetStart;let P=t.target=e.target,F=t.targetAnchor=e.targetAnchor,V=Lt(e.props),K=V?n:P,A=V?R:F;if(s==="svg"||qi(P)?s="svg":(s==="mathml"||Gi(P))&&(s="mathml"),c?(v(e.dynamicChildren,c,K,r,i,s,o),$r(e,t,!0)):a||g(e,t,K,A,r,i,s,o,!1),M)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):vl(t,n,R,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let B=mr(t.props,m);B&&(t.target=B,vl(t,B,null,u,0))}else V&&vl(t,P,F,u,1);kn(t,M)}},remove(e,t,n,{um:l,o:{remove:r}},i){let{shapeFlag:s,children:o,anchor:a,targetStart:u,targetAnchor:f,target:g,props:v}=e,_=Lt(v),m=i||!_,x=wt.get(e);if(x&&(x.flags|=8,wt.delete(e)),g&&(r(u),r(f)),i&&r(a),!x&&(_||g)&&16&s)for(let N=0;N{e.isMounted=!0}),Al(()=>{e.isUnmounting=!0}),e}let ze=[Function,Array],br={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ze,onEnter:ze,onAfterEnter:ze,onEnterCancelled:ze,onBeforeLeave:ze,onLeave:ze,onAfterLeave:ze,onLeaveCancelled:ze,onBeforeAppear:ze,onAppear:ze,onAfterAppear:ze,onAppearCancelled:ze};function Ji(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==he){t=n;break}}return t}let Xi={name:"BaseTransition",props:br,setup(e,{slots:t}){let n=Me(),l=yr();return()=>{let r=t.default&&_l(t.default(),!0),i=r&&r.length?Ji(r):n.subTree?Fs():void 0;if(!i)return;let s=le(e),{mode:o}=s;if(l.isLeaving)return Sr(i);let a=ml(i);if(!a)return Sr(i);let u=Jt(a,s,l,n,g=>u=g);a.type!==he&&rt(a,u);let f=n.subTree&&ml(n.subTree);if(f&&f.type!==he&&!Ze(f,a)&&Tn(n.subTree)){let g=Jt(f,s,l,n);if(rt(f,g),o==="out-in"&&a.type!==he)return l.isLeaving=!0,g.afterLeave=()=>{l.isLeaving=!1,8&n.job.flags||n.update(),delete g.afterLeave,f=void 0},Sr(i);o==="in-out"&&a.type!==he?g.delayLeave=(v,_,m)=>{Zi(l,f)[String(f.key)]=f,v[Ke]=()=>{_(),v[Ke]=void 0,delete u.delayedLeave,f=void 0},u.delayedLeave=()=>{m(),delete u.delayedLeave,f=void 0}}:f=void 0}else f&&(f=void 0);return i}}};function Zi(e,t){let{leavingVNodes:n}=e,l=n.get(t.type);return l||(l=Object.create(null),n.set(t.type,l)),l}function Jt(e,t,n,l,r){let{appear:i,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:f,onEnterCancelled:g,onBeforeLeave:v,onLeave:_,onAfterLeave:m,onLeaveCancelled:x,onBeforeAppear:N,onAppear:M,onAfterAppear:c,onAppearCancelled:h}=t,y=String(e.key),T=Zi(n,e),R=(F,V)=>{F&&Ue(F,l,9,V)},E=(F,V)=>{let K=V[1];R(F,V),H(F)?F.every(A=>A.length<=1)&&K():F.length<=1&&K()},P={mode:s,persisted:o,beforeEnter(F){let V=a;if(!n.isMounted)if(i)V=N||a;else return;F[Ke]&&F[Ke](!0);let K=T[y];if(K&&Ze(e,K)){let A=K.el[Ke];if(!A){let B=Tn(K);A=B&&B.el[Ke]}A&&A()}R(V,[F])},enter(F){if(T[y]===e)return;let V=u,K=f,A=g;if(!n.isMounted)if(i)V=M||u,K=c||f,A=h||g;else return;let B=!1;F[En]=U=>{B||(B=!0,U?R(A,[F]):R(K,[F]),P.delayedLeave&&P.delayedLeave(),F[En]=void 0)};let z=F[En].bind(null,!1);V?E(V,[F,z]):z()},leave(F,V){let K=String(e.key);if(F[En]&&F[En](!0),n.isUnmounting)return V();R(v,[F]);let A=!1;F[Ke]=z=>{A||(A=!0,V(),z?R(x,[F]):R(m,[F]),F[Ke]=void 0,T[K]===e&&delete T[K])};let B=F[Ke].bind(null,!1);T[K]=e,_?E(_,[F,B]):B()},clone(F){let V=Jt(F,t,n,l,r);return r&&r(V),V}};return P}function Sr(e){if(An(e))return(e=it(e)).children=null,e}function ml(e){if(!An(e))return e.type.__isTeleport&&e.children?Ji(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&G(n.default))return n.default()}}function rt(e,t){if(6&e.shapeFlag&&e.component){e.transition=t;let n=e.component.subTree;rt(n.type.__isTeleport&&ml(n)||n,t)}else if(128&e.shapeFlag)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===Ce&&H(e.children)){let n=Ir(e.children,!1);n&&rt(n,t)}}function _l(e,t=!1,n){let l=[],r=0;for(let i=0;i1)for(let i=0;in.value,set:l=>n.value=l}),n}function Yi(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}let yl=new WeakMap;function Xt(e,t,n,l,r=!1){if(H(e))return void e.forEach((x,N)=>Xt(x,t&&(H(t)?t[N]:t),n,l,r));if(pt(l)&&!r){512&l.shapeFlag&&l.type.__asyncResolved&&l.component.subTree.component&&Xt(e,t,n,l.component.subTree);return}let i=4&l.shapeFlag?Dn(l.component):l.el,s=r?null:i,{i:o,r:a}=e,u=t&&t.r,f=o.refs===te?o.refs={}:o.refs,g=o.setupState,v=le(g),_=g===te?si:x=>!Yi(f,x)&&re(v,x),m=(x,N)=>!(N&&Yi(f,N));if(u!=null&&u!==a&&(Qi(t),ue(u)?(f[u]=null,_(u)&&(g[u]=null)):_e(u)&&(m(u,t.k)&&(u.value=null),t.k&&(f[t.k]=null))),G(a))zt(a,o,12,[s,f]);else{let x=ue(a),N=_e(a);if(x||N){let M=()=>{if(e.f){let c=x?_(a)?g[a]:f[a]:m()||!e.k?a.value:f[e.k];if(r)H(c)&&tr(c,i);else if(H(c))c.includes(i)||c.push(i);else if(x)f[a]=[i],_(a)&&(g[a]=f[a]);else{let h=[i];m(a,e.k)&&(a.value=h),e.k&&(f[e.k]=h)}}else x?(f[a]=s,_(a)&&(g[a]=s)):N&&(m(a,e.k)&&(a.value=s),e.k&&(f[e.k]=s))};if(s){let c=()=>{M(),yl.delete(e)};c.id=-1,yl.set(e,c),ye(c,n)}else Qi(e),M()}}}function Qi(e){let t=yl.get(e);t&&(t.flags|=8,yl.delete(e))}let es=!1,Zt=()=>{es||(console.error("Hydration completed but contains mismatches."),es=!0)},bl=e=>{if(e.nodeType===1){if(e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject")return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},Yt=e=>e.nodeType===8;function La(e){let{mt:t,p:n,o:{patchProp:l,createText:r,nextSibling:i,parentNode:s,remove:o,insert:a,createComment:u}}=e,f=(c,h,y,T,R,E=!1)=>{E=E||!!h.dynamicChildren;let P=Yt(c)&&c.data==="[",F=()=>m(c,h,y,T,R,P),{type:V,ref:K,shapeFlag:A,patchFlag:B}=h,z=c.nodeType;h.el=c,B===-2&&(E=!1,h.dynamicChildren=null);let U=null;switch(V){case kt:z!==3?h.children===""?(a(h.el=r(""),s(c),c),U=c):U=F():(c.data!==h.children&&(Zt(),c.data=h.children),U=i(c));break;case he:M(c)?(U=i(c),N(h.el=c.content.firstChild,c,y)):U=z!==8||P?F():i(c);break;case Et:if(P&&(z=(c=i(c)).nodeType),z===1||z===3){U=c;let Q=!h.children.length;for(let ee=0;ee{E=E||!!h.dynamicChildren;let{type:P,dynamicProps:F,props:V,patchFlag:K,shapeFlag:A,dirs:B,transition:z}=h,U=P==="input"||P==="option",Q=!!F;if(U||Q||K!==-1){let ne;B&<(h,null,y,"created");let ae=!1;if(M(c)){ae=Ts(null,z)&&y&&y.vnode.props&&y.vnode.props.appear;let J=c.content.firstChild;if(ae){let be=J.getAttribute("class");be&&(J.$cls=be),z.beforeEnter(J)}N(J,c,y),h.el=c=J}if(16&A&&!(V&&(V.innerHTML||V.textContent))){let J=v(c.firstChild,h,c,y,T,R,E);for(J&&!Cl(c,1)&&Zt();J;){let be=J;J=J.nextSibling,o(be)}}else if(8&A){let J=h.children;J[0]===` +`&&(c.tagName==="PRE"||c.tagName==="TEXTAREA")&&(J=J.slice(1));let{textContent:be}=c;be!==J&&be!==J.replace(/\r\n|\r/g,` +`)&&(Cl(c,0)||Zt(),c.textContent=h.children)}if(V){if(U||Q||!E||48&K){let J=c.tagName.includes("-"),be=c.namespaceURI.includes("svg")?"svg":c.namespaceURI.includes("MathML")?"mathml":void 0;for(let xe in V)if(U&&(xe.endsWith("value")||xe==="indeterminate")||an(xe)&&!Mt(xe)||xe[0]==="."||J&&!Mt(xe)||F&&F.includes(xe)){var ee,X,Y;if(ee=c,X=xe,Y=V[xe],ja.has(X)&&ee.getAttribute(X)===(Y==null?null:`${Y}`))continue;l(c,xe,null,V[xe],be,y)}}else if(V.onClick)l(c,"onClick",null,V.onClick,void 0,y);else if(4&K&&tt(V.style))for(let J in V.style)V.style[J]}(ne=V&&V.onVnodeBeforeMount)&&Ve(ne,y,h),B&<(h,null,y,"beforeMount"),((ne=V&&V.onVnodeMounted)||B||ae)&&Os(()=>{ne&&Ve(ne,y,h),ae&&z.enter(c),B&<(h,null,y,"mounted")},T)}return c.nextSibling},v=(c,h,y,T,R,E,P)=>{P=P||!!h.dynamicChildren;let F=h.children,V=F.length,K=!1;for(let A=0;A{let{slotScopeIds:P}=h;P&&(R=R?R.concat(P):P);let F=s(c),V=v(i(c),h,F,y,T,R,E);return V&&Yt(V)&&V.data==="]"?i(h.anchor=V):(Zt(),a(h.anchor=u("]"),F,V),V)},m=(c,h,y,T,R,E)=>{var P,F,V;if(P=c,F=h,Cl(P.parentElement,1)||(V=P).nodeType===1&&wr(V.getAttribute(Sl),1)||(function({props:B}){let z=B&&B[Sl];return typeof z=="string"&&wr(z,1)})(F)||Zt(),h.el=null,E){let B=x(c);for(;;){let z=i(c);if(z&&z!==B)o(z);else break}}let K=i(c),A=s(c);return o(c),n(null,h,A,K,y,T,bl(A),R),y&&(y.vnode.el=h.el,Pl(y,h.el)),K},x=(c,h="[",y="]")=>{let T=0;for(;c;)if((c=i(c))&&Yt(c)&&(c.data===h&&T++,c.data===y)){if(T===0)return i(c);T--}return c},N=(c,h,y)=>{let T=h.parentNode;T&&T.replaceChild(c,h);let R=y;for(;R;)R.vnode.el===h&&(R.vnode.el=R.subTree.el=c),R=R.parent},M=c=>c.nodeType===1&&c.tagName==="TEMPLATE";return[(c,h)=>{if(!h.hasChildNodes()){n(null,c,h),hl(),h._vnode=c;return}f(h.firstChild,c,null,null,null),hl(),h._vnode=c},f]}let ja=new Set(["src","srcset","href","poster"]),Sl="data-allow-mismatch",Va={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function Cl(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Sl);)e=e.parentElement;return wr(e&&e.getAttribute(Sl),t)}function wr(e,t){if(e==null)return!1;{if(e==="")return!0;let n=e.split(",");return!!(t===0&&n.includes("children"))||n.includes(Va[t])}}let Da=Qn().requestIdleCallback||(e=>setTimeout(e,1)),Ua=Qn().cancelIdleCallback||(e=>clearTimeout(e)),Ba=(e=1e4)=>t=>{let n=Da(t,{timeout:e});return()=>Ua(n)},$a=e=>(t,n)=>{let l=new IntersectionObserver(i=>{for(let s of i)if(s.isIntersecting){l.disconnect(),t();break}},e),r=i=>{if((function(s){let{top:o,left:a,bottom:u,right:f}=s.getBoundingClientRect(),{innerHeight:g,innerWidth:v}=window;return(o>0&&o0&&u0&&a0&&f{if(i instanceof Element)return r(i)}),()=>l.disconnect()},Ha=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},Wa=(e=[])=>(t,n)=>{ue(e)&&(e=[e]);let l=!1,r=s=>{l||(l=!0,i(),t(),s.target.dispatchEvent(new s.constructor(s.type,s)))},i=()=>{n(s=>{for(let o of e)s.removeEventListener(o,r)})};return n(s=>{for(let o of e)s.addEventListener(o,r,{once:!0})}),i},pt=e=>!!e.type.__asyncLoader;function Ka(e){let t;G(e)&&(e={loader:e});let{loader:n,loadingComponent:l,errorComponent:r,delay:i=200,hydrate:s,timeout:o,suspensible:a=!0,onError:u}=e,f=null,g=0,v=()=>{let _;return f||(_=f=n().catch(m=>{if(m=m instanceof Error?m:Error(String(m)),u)return new Promise((x,N)=>{u(m,()=>x((g++,f=null,v())),()=>N(m),g+1)});throw m}).then(m=>_!==f&&f?f:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),t=m,m)))};return Cr({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(_,m,x){let N=_.isConnected,M=!1;(m.bu||(m.bu=[])).push(()=>M=!0);let c=()=>{M||_.parentNode&&(!N||_.isConnected)&&x()},h=s?()=>{let y=s(c,T=>(function(R,E){if(Yt(R)&&R.data==="["){let P=1,F=R.nextSibling;for(;F;){if(F.nodeType===1){if(E(F)===!1)break}else if(Yt(F))if(F.data==="]"){if(--P==0)break}else F.data==="["&&P++;F=F.nextSibling}}else E(R)})(_,T));y&&(m.bum||(m.bum=[])).push(y)}:c;t?h():v().then(()=>!m.isUnmounted&&h())},get __asyncResolved(){return t},setup(){let _,m,x=Te;if(xr(x),t)return()=>xl(t,x);let N=y=>{f=null,It(y,x,13,!r)};if(a&&x.suspense||Ut)return v().then(y=>()=>xl(y,x)).catch(y=>(N(y),()=>r?fe(r,{error:y}):null));let M=_n(!1),c=_n(),h=_n(!!i);return Nn(()=>{_!=null&&clearTimeout(_),m!=null&&clearTimeout(m)}),i&&(m=setTimeout(()=>{x.isUnmounted||(h.value=!1)},i)),o!=null&&(_=setTimeout(()=>{if(!x.isUnmounted&&!M.value&&!c.value){let y=Error(`Async component timed out after ${o}ms.`);N(y),c.value=y}},o)),v().then(()=>{!x.isUnmounted&&(M.value=!0,x.parent&&An(x.parent.vnode)&&x.parent.update())}).catch(y=>{if(x.isUnmounted){f=null;return}N(y),c.value=y}),()=>M.value&&t?xl(t,x):c.value&&r?fe(r,{error:c.value}):l&&!h.value?xl(l,x):void 0}})}function xl(e,t){let{ref:n,props:l,children:r,ce:i}=t.vnode,s=fe(e,l,r);return s.ref=n,s.ce=i,delete t.vnode.ce,s}let An=e=>e.type.__isKeepAlive,za={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=Me(),l=n.ctx;if(!l.renderer)return()=>{let c=t.default&&t.default();return c&&c.length===1?c[0]:c};let r=new Map,i=new Set,s=null,o=n.suspense,{renderer:{p:a,m:u,um:f,o:{createElement:g}}}=l,v=g("div");function _(c){wl(c),f(c,n,o,!0)}function m(c){r.forEach((h,y)=>{let T=Gr(pt(h)?h.type.__asyncResolved||{}:h.type);T&&!c(T)&&x(y)})}function x(c){let h=r.get(c);!h||s&&Ze(h,s)?s&&(wl(s),h&&wl(h)):_(h),r.delete(c),i.delete(c)}l.activate=(c,h,y,T,R)=>{let E=c.component;u(c,h,y,0,o),a(E.vnode,c,h,y,E,o,T,c.slotScopeIds,R),ye(()=>{E.isDeactivated=!1,E.a&&Ht(E.a);let P=c.props&&c.props.onVnodeMounted;P&&Ve(P,E.parent,c)},o)},l.deactivate=c=>{let h=c.component;Ml(h.m),Ml(h.a),u(c,v,null,1,o),ye(()=>{h.da&&Ht(h.da);let y=c.props&&c.props.onVnodeUnmounted;y&&Ve(y,h.parent,c),h.isDeactivated=!0},o)},Gt(()=>[e.include,e.exclude],([c,h])=>{c&&m(y=>Rn(c,y)),h&&m(y=>!Rn(h,y))},{flush:"post",deep:!0});let N=null,M=()=>{N!=null&&(Fl(n.subTree.type)?ye(()=>{let c=kl(n.subTree);c.component&&r.set(N,c)},n.subTree.suspense):r.set(N,kl(n.subTree)))};return On(M),Tl(M),Al(()=>{r.forEach(c=>{let{subTree:h,suspense:y}=n,T=kl(h);if(c.type===T.type&&c.key===T.key){wl(T);let R=T.component.da;R&&ye(R,y);return}_(c)})}),()=>{if(N=null,!t.default)return s=null;let c=t.default(),h=c[0];if(c.length>1)return s=null,c;if(!ht(h)||!(4&h.shapeFlag)&&!(128&h.shapeFlag))return s=null,h;let y=kl(h);if(y.type===he)return s=null,y;let T=y.type,R=Gr(pt(y)?y.type.__asyncResolved||{}:T),{include:E,exclude:P,max:F}=e;if(E&&(!R||!Rn(E,R))||P&&R&&Rn(P,R))return y.shapeFlag&=-257,s=y,h;let V=y.key==null?T:y.key,K=r.get(V);return y.el&&(y=it(y),128&h.shapeFlag&&(h.ssContent=y)),N=V,K?(y.el=K.el,y.component=K.component,y.transition&&rt(y,y.transition),y.shapeFlag|=512,i.delete(V),i.add(V)):(i.add(V),F&&i.size>parseInt(F,10)&&x(i.values().next().value)),y.shapeFlag|=256,s=y,Fl(h.type)?h:y}}};function Rn(e,t){let n;return H(e)?e.some(l=>Rn(l,t)):ue(e)?e.split(",").includes(t):(n=e,ce.call(n)==="[object RegExp]"&&(e.lastIndex=0,e.test(t)))}function ts(e,t){ls(e,"a",t)}function ns(e,t){ls(e,"da",t)}function ls(e,t,n=Te){let l=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(El(t,l,n),n){let r=n.parent;for(;r&&r.parent;)An(r.parent.vnode)&&(function(i,s,o,a){let u=El(s,i,a,!0);Nn(()=>{tr(a[s],u)},o)})(l,t,n,r),r=r.parent}}function wl(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function kl(e){return 128&e.shapeFlag?e.ssContent:e}function El(e,t,n=Te,l=!1){if(n){let r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...s)=>{Ye();let o=en(n),a=Ue(t,n,e,s);return o(),Qe(),a});return l?r.unshift(i):r.push(i),i}}let ft=e=>(t,n=Te)=>{Ut&&e!=="sp"||El(e,(...l)=>t(...l),n)},rs=ft("bm"),On=ft("m"),kr=ft("bu"),Tl=ft("u"),Al=ft("bum"),Nn=ft("um"),is=ft("sp"),ss=ft("rtg"),os=ft("rtc");function as(e,t=Te){El("ec",e,t)}let Er="components";function qa(e,t){return Tr(Er,e,!0,t)||e}let us=Symbol.for("v-ndc");function Ga(e){return ue(e)?Tr(Er,e,!1)||e:e||us}function Ja(e){return Tr("directives",e)}function Tr(e,t,n=!0,l=!1){let r=Ee||Te;if(r){let i=r.type;if(e===Er){let o=Gr(i,!1);if(o&&(o===t||o===me(t)||o===un(me(t))))return i}let s=cs(r[e]||i[e],t)||cs(r.appContext[e],t);return!s&&l?i:s}}function cs(e,t){return e&&(e[t]||e[me(t)]||e[un(me(t))])}function Xa(e,t,n,l){let r,i=n&&n[l],s=H(e);if(s||ue(e)){let o=s&&tt(e),a=!1,u=!1;o&&(a=!Le(e),u=Je(e),e=rl(e)),r=Array(e.length);for(let f=0,g=e.length;ft(o,a,void 0,i&&i[a]));else{let o=Object.keys(e);r=Array(o.length);for(let a=0,u=o.length;a{let i=l.fn(...r);return i&&(i.key=l.key),i}:l.fn)}return e}function Ya(e,t,n,l,r,i){let s;if(n==null&&(n={}),Ee.ce||Ee.parent&&pt(Ee.parent)&&Ee.parent.ce){let u=i!=null&&n.key==null?ie({},n,{key:i}):n,f=Object.keys(u).length>0;return t!=="default"&&(u.name=t),Ln(),Ll(Ce,null,[fe("slot",u,l&&l())],f?-2:64)}let o=e[t];o&&o._c&&(o._d=!1);let a=dt.length;Ln();try{let u=o&&Ar(o(n)),f=n.key||i||u&&u.key;s=Ll(Ce,{key:(f&&!De(f)?f:`_${t}`)+(!u&&l?"_fb":"")},u||(l?l():[]),u&&e._===1?64:-2)}catch(u){for(let f=dt.length;f>a;f--)Il();throw u}finally{o&&o._c&&(o._d=!0)}return!r&&s.scopeId&&(s.slotScopeIds=[s.scopeId+"-s"]),s}function Ar(e){return e.some(t=>!ht(t)||t.type!==he&&(t.type!==Ce||!!Ar(t.children)))?e:null}function Qa(e,t){let n={};for(let l in e)n[t&&/[A-Z]/.test(l)?`on:${l}`:cn(l)]=e[l];return n}let Rr=e=>e?Vs(e)?Dn(e):Rr(e.parent):null,Pn=ie(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=>Rr(e.parent),$root:e=>Rr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Mr(e),$forceUpdate:e=>e.f||(e.f=()=>{hr(e.update)}),$nextTick:e=>e.n||(e.n=dl.bind(e.proxy)),$watch:e=>Pa.bind(e)}),Or=(e,t)=>e!==te&&!e.__isScriptSetup&&re(e,t),Nr={get({_:e},t){let n,l;if(t==="__v_skip")return!0;let{ctx:r,setupState:i,data:s,props:o,accessCache:a,type:u,appContext:f}=e;if(t[0]!=="$"){let v=a[t];if(v!==void 0)switch(v){case 1:return i[t];case 2:return s[t];case 4:return r[t];case 3:return o[t]}else{if(Or(i,t))return a[t]=1,i[t];if(s!==te&&re(s,t))return a[t]=2,s[t];if(re(o,t))return a[t]=3,o[t];if(r!==te&&re(r,t))return a[t]=4,r[t];Pr&&(a[t]=0)}}let g=Pn[t];return g?(t==="$attrs"&&Ae(e.attrs,"get",""),g(e)):(n=u.__cssModules)&&(n=n[t])?n:r!==te&&re(r,t)?(a[t]=4,r[t]):re(l=f.config.globalProperties,t)?l[t]:void 0},set({_:e},t,n){let{data:l,setupState:r,ctx:i}=e;return Or(r,t)?(r[t]=n,!0):l!==te&&re(l,t)?(l[t]=n,!0):!re(e.props,t)&&!(t[0]==="$"&&t.slice(1)in e)&&(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:l,appContext:r,props:i,type:s}},o){let a;return!!(n[o]||e!==te&&o[0]!=="$"&&re(e,o)||Or(t,o)||re(i,o)||re(l,o)||re(Pn,o)||re(r.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:re(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},eu=ie({},Nr,{get(e,t){if(t!==Symbol.unscopables)return Nr.get(e,t,e)},has:(e,t)=>t[0]!=="_"&&!Uo(t)});function tu(){return null}function nu(){return null}function lu(e){}function ru(e){}function iu(){return null}function su(){}function ou(e,t){return null}function au(){return ps().slots}function uu(){return ps().attrs}function ps(e){let t=Me();return t.setupContext||(t.setupContext=Bs(t))}function Mn(e){return H(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function cu(e,t){let n=Mn(e);for(let l in t){if(l.startsWith("__skip"))continue;let r=n[l];r?H(r)||G(r)?r=n[l]={type:r,default:t[l]}:r.default=t[l]:r===null&&(r=n[l]={default:t[l]}),r&&t[`__skip_${l}`]&&(r.skipFactory=!0)}return n}function pu(e,t){return e&&t?H(e)&&H(t)?e.concat(t):ie({},Mn(e),Mn(t)):e||t}function fu(e,t){let n={};for(let l in e)t.includes(l)||Object.defineProperty(n,l,{enumerable:!0,get:()=>e[l]});return n}function du(e){let t=Me(),n=Ut,l=e();Vn(),n&&bt(!1);let r=()=>{en(t),n&&bt(!0)},i=()=>{Me()!==t&&t.scope.off(),Vn(),n&&bt(!1)};return nr(l)&&(l=l.catch(s=>{throw r(),Promise.resolve().then(()=>Promise.resolve().then(i)),s})),[l,()=>{r(),Promise.resolve().then(i)}]}let Pr=!0;function fs(e,t,n){Ue(H(e)?e.map(l=>l.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mr(e){let t,n=e.type,{mixins:l,extends:r}=n,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:i.length||l||r?(t={},i.length&&i.forEach(u=>Rl(t,u,o,!0)),Rl(t,n,o)):t=n,se(n)&&s.set(n,t),t}function Rl(e,t,n,l=!1){let{mixins:r,extends:i}=t;for(let s in i&&Rl(e,i,n,!0),r&&r.forEach(o=>Rl(e,o,n,!0)),t)if(!(l&&s==="expose")){let o=hu[s]||n&&n[s];e[s]=o?o(e[s],t[s]):t[s]}return e}let hu={data:ds,props:hs,emits:hs,methods:Fn,computed:Fn,beforeCreate:Pe,created:Pe,beforeMount:Pe,mounted:Pe,beforeUpdate:Pe,updated:Pe,beforeDestroy:Pe,beforeUnmount:Pe,destroyed:Pe,unmounted:Pe,activated:Pe,deactivated:Pe,errorCaptured:Pe,serverPrefetch:Pe,components:Fn,directives:Fn,watch:function(e,t){if(!e)return t;if(!t)return e;let n=ie(Object.create(null),e);for(let l in t)n[l]=Pe(e[l],t[l]);return n},provide:ds,inject:function(e,t){return Fn(Fr(e),Fr(t))}};function ds(e,t){return t?e?function(){return ie(G(e)?e.call(this,this):e,G(t)?t.call(this,this):t)}:t:e}function Fr(e){if(H(e)){let t={};for(let n=0;n{let f,g,v=te;return Wi(()=>{let _=e[r];ke(f,_)&&(f=_,u())}),{get:()=>(a(),n.get?n.get(f):f),set(_){let m=n.set?n.set(_):_;if(!ke(m,f)&&!(v!==te&&ke(_,v)))return;let x=l.vnode.props,N=!!(x&&(t in x||r in x||i in x)&&(`onUpdate:${t}`in x||`onUpdate:${r}`in x||`onUpdate:${i}`in x));N||(f=_,u()),l.emit(`update:${t}`,m),ke(_,v)&&(ke(_,m)&&!ke(m,g)||N&&v!==te&&!ke(m,f))&&u(),v=_,g=m}}});return o[Symbol.iterator]=()=>{let a=0;return{next:()=>a<2?{value:a++?s||te:o,done:!1}:{done:!0}}},o}let vs=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${me(t)}Modifiers`]||e[`${Ie(t)}Modifiers`];function mu(e,t,...n){let l;if(e.isUnmounted)return;let r=e.vnode.props||te,i=n,s=t.startsWith("update:"),o=s&&vs(r,t.slice(7));o&&(o.trim&&(i=n.map(f=>ue(f)?f.trim():f)),o.number&&(i=i.map(Yn)));let a=r[l=cn(t)]||r[l=cn(me(t))];!a&&s&&(a=r[l=cn(Ie(t))]),a&&Ue(a,e,6,i);let u=r[l+"Once"];if(u){if(e.emitted){if(e.emitted[l])return}else e.emitted={};e.emitted[l]=!0,Ue(u,e,6,i)}}let _u=new WeakMap;function Ol(e,t){return!!e&&!!an(t)&&(re(e,(t=(t=t.slice(2))==="Once"?t:t.replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||re(e,Ie(t))||re(e,t))}function Nl(e){let t,n,{type:l,vnode:r,proxy:i,withProxy:s,propsOptions:[o],slots:a,attrs:u,emit:f,render:g,renderCache:v,props:_,data:m,setupState:x,ctx:N,inheritAttrs:M}=e,c=Cn(e);try{if(4&r.shapeFlag){let y=s||i;t=je(g.call(y,y,v,_,x,m,N)),n=u}else t=je(l.length>1?l(_,{attrs:u,slots:a,emit:f}):l(_,null)),n=l.props?u:yu(u)}catch(y){dt.length=0,It(y,e,1),t=fe(he)}let h=t;if(n&&M!==!1){let y=Object.keys(n),{shapeFlag:T}=h;y.length&&7&T&&(o&&y.some(Jn)&&(n=bu(n,o)),h=it(h,n,!1,!0))}return r.dirs&&((h=it(h,null,!1,!0)).dirs=h.dirs?h.dirs.concat(r.dirs):r.dirs),r.transition&&rt(h.type.__isTeleport&&ml(h)||h,r.transition),t=h,Cn(c),t}function Ir(e,t=!0){let n;for(let l=0;l{let t;for(let n in e)(n==="class"||n==="style"||an(n))&&((t||(t={}))[n]=e[n]);return t},bu=(e,t)=>{let n={};for(let l in e)Jn(l)&&l.slice(9)in t||(n[l]=e[l]);return n};function ms(e,t,n){let l=Object.keys(t);if(l.length!==Object.keys(e).length)return!0;for(let r=0;rObject.getPrototypeOf(e)===Lr;function bs(e,t,n,l){let r,[i,s]=e.propsOptions,o=!1;if(t)for(let a in t){let u;if(Mt(a))continue;let f=t[a];i&&re(i,u=me(a))?s&&s.includes(u)?(r||(r={}))[u]=f:n[u]=f:Ol(e.emitsOptions,a)||a in l&&f===l[a]||(l[a]=f,o=!0)}if(s){let a=le(n),u=r||te;for(let f=0;fe==="_"||e==="_ctx"||e==="$stable",Dr=e=>H(e)?e.map(je):[je(e)],Cu=(e,t,n)=>{if(t._n)return t;let l=vr((...r)=>Dr(t(...r)),n);return l._c=!1,l},Cs=(e,t,n)=>{let l=e._ctx;for(let r in e){if(Vr(r))continue;let i=e[r];if(G(i))t[r]=Cu(r,i,l);else if(i!=null){let s=Dr(i);t[r]=()=>s}}},xs=(e,t)=>{let n=Dr(t);e.slots.default=()=>n},ws=(e,t,n)=>{for(let l in t)(n||!Vr(l))&&(e[l]=t[l])},ye=Os;function Ur(e){return Es(e)}function ks(e){return Es(e,La)}function Es(e,t){var n;let l,r;Qn().__VUE__=!0;let{insert:i,remove:s,patchProp:o,createElement:a,createText:u,createComment:f,setText:g,setElementText:v,parentNode:_,nextSibling:m,setScopeId:x=He,insertStaticContent:N}=e,M=(p,d,S,L=null,w=null,C=null,I,k=null,O=!!d.dynamicChildren)=>{if(p===d)return;p&&!Ze(p,d)&&(L=Hn(p),J(p,w,C,!0),p=null),d.patchFlag===-2&&(O=!1,d.dynamicChildren=null),d.dynamicChildren&&p&&p.dynamicChildren&&p.dynamicChildren.hasOnce&&(d.dynamicChildren===Pt&&(d.dynamicChildren=[]),d.dynamicChildren.hasOnce=!0);let{type:b,ref:j,shapeFlag:D}=d;switch(b){case kt:c(p,d,S,L);break;case he:h(p,d,S,L);break;case Et:p==null&&y(d,S,L,I);break;case Ce:A(p,d,S,L,w,C,I,k,O);break;default:1&D?T(p,d,S,L,w,C,I,k,O):6&D?B(p,d,S,L,w,C,I,k,O):(64&D||128&D)&&b.process(p,d,S,L,w,C,I,k,O,$t)}j!=null&&w?Xt(j,p&&p.ref,C,d||p,!d):j==null&&p&&p.ref!=null&&Xt(p.ref,null,C,p,!0)},c=(p,d,S,L)=>{if(p==null)i(d.el=u(d.children),S,L);else{let w=d.el=p.el;d.children!==p.children&&g(w,d.children)}},h=(p,d,S,L)=>{p==null?i(d.el=f(d.children||""),S,L):d.el=p.el},y=(p,d,S,L)=>{[p.el,p.anchor]=N(p.children,d,S,L,p.el,p.anchor)},T=(p,d,S,L,w,C,I,k,O)=>{if(d.type==="svg"?I="svg":d.type==="math"&&(I="mathml"),p==null)R(d,S,L,w,C,I,k,O);else{let b=p.el&&p.el._isVueCE?p.el:null;try{b&&b._beginPatch(),F(p,d,w,C,I,k,O)}finally{b&&b._endPatch()}}},R=(p,d,S,L,w,C,I,k)=>{let O,b,{props:j,shapeFlag:D,transition:W,dirs:$}=p;if(O=p.el=a(p.type,C,j&&j.is,j),8&D?v(O,p.children):16&D&&P(p.children,O,null,L,w,Br(p,C),I,k),$&<(p,null,L,"created"),E(O,p,p.scopeId,I,L),j){for(let q in j)q==="value"||Mt(q)||o(O,q,null,j[q],C,L);"value"in j&&o(O,"value",null,j.value,C),(b=j.onVnodeBeforeMount)&&Ve(b,L,p)}$&<(p,null,L,"beforeMount");let Z=Ts(w,W);Z&&W.beforeEnter(O),i(O,d,S),((b=j&&j.onVnodeMounted)||Z||$)&&ye(()=>{b&&Ve(b,L,p),Z&&W.enter(O),$&<(p,null,L,"mounted")},w)},E=(p,d,S,L,w)=>{if(S&&x(p,S),L)for(let C=0;C{for(let b=O;b{let k,O=d.el=p.el,{patchFlag:b,dynamicChildren:j,dirs:D}=d;b|=16&p.patchFlag;let W=p.props||te,$=d.props||te;if(S&&Vt(S,!1),(k=$.onVnodeBeforeUpdate)&&Ve(k,S,d,p),D&<(d,p,S,"beforeUpdate"),S&&Vt(S,!0),j&&(!p.dynamicChildren||p.dynamicChildren.length!==j.length)&&(b=0,I=!1,j=null),(W.innerHTML&&$.innerHTML==null||W.textContent&&$.textContent==null)&&v(O,""),j?V(p.dynamicChildren,j,O,S,L,Br(d,w),C):I||X(p,d,O,null,S,L,Br(d,w),C,!1),b>0){if(16&b)K(O,W,$,S,w);else if(2&b&&W.class!==$.class&&o(O,"class",null,$.class,w),4&b&&o(O,"style",W.style,$.style,w),8&b){let Z=d.dynamicProps;for(let q=0;q{k&&Ve(k,S,d,p),D&<(d,p,S,"updated")},L)},V=(p,d,S,L,w,C,I)=>{for(let k=0;k{if(d!==S){if(d!==te)for(let C in d)Mt(C)||C in S||o(p,C,d[C],null,w,L);for(let C in S){if(Mt(C))continue;let I=S[C],k=d[C];I!==k&&C!=="value"&&o(p,C,k,I,w,L)}"value"in S&&o(p,"value",d.value,S.value,w)}},A=(p,d,S,L,w,C,I,k,O)=>{let b=d.el=p?p.el:u(""),j=d.anchor=p?p.anchor:u(""),{patchFlag:D,dynamicChildren:W,slotScopeIds:$}=d;$&&(k=k?k.concat($):$),p==null?(i(b,S,L),i(j,S,L),P(d.children||[],S,j,w,C,I,k,O)):D>0&&64&D&&W&&p.dynamicChildren&&p.dynamicChildren.length===W.length?(V(p.dynamicChildren,W,S,w,C,I,k),(d.key!=null||w&&d===w.subTree)&&$r(p,d,!0)):X(p,d,S,j,w,C,I,k,O)},B=(p,d,S,L,w,C,I,k,O)=>{d.slotScopeIds=k,p==null?512&d.shapeFlag?w.ctx.activate(d,S,L,I,O):z(d,S,L,w,C,I,O):U(p,d,O)},z=(p,d,S,L,w,C,I)=>{let k=p.component=js(p,L,w);if(An(p)&&(k.ctx.renderer=$t),Ds(k,!1,I),k.asyncDep){if(w&&w.registerDep(k,Q,I,C),!p.el){let O=k.subTree=fe(he);h(null,O,d,S),p.placeholder=O.el}}else Q(k,p,d,S,w,C,I)},U=(p,d,S)=>{let L=d.component=p.component;if((function(w,C,I){let{props:k,children:O,component:b}=w,{props:j,children:D,patchFlag:W}=C,$=b.emitsOptions;if(C.dirs||C.transition)return!0;if(!I||!(W>=0))return(!!O||!!D)&&(!D||!D.$stable)||k!==j&&(k?!j||ms(k,j,$):!!j);if(1024&W)return!0;if(16&W)return k?ms(k,j,$):!!j;if(8&W){let Z=C.dynamicProps;for(let q=0;q{p.scope.on();let k=p.effect=new dn(()=>{if(p.isMounted){let j,{next:D,bu:W,u:$,parent:Z,vnode:q}=p;{let Fe=(function Wn(Ot){let _t=Ot.subTree.component;if(_t)return _t.asyncDep&&!_t.asyncResolved?_t:Wn(_t)})(p);if(Fe){D&&(D.el=q.el,ee(p,D,I)),Fe.asyncDep.then(()=>{ye(()=>{p.isUnmounted||O()},w)});return}}let oe=D;Vt(p,!1),D?(D.el=q.el,ee(p,D,I)):D=q,W&&Ht(W),(j=D.props&&D.props.onVnodeBeforeUpdate)&&Ve(j,Z,D,q),Vt(p,!0);let de=Nl(p),ge=p.subTree;p.subTree=de,M(ge,de,_(ge.el),Hn(ge),p,w,C),D.el=de.el,oe===null&&Pl(p,de.el),$&&ye($,w),(j=D.props&&D.props.onVnodeUpdated)&&ye(()=>Ve(j,Z,D,q),w)}else{let j,{el:D,props:W}=d,{bm:$,m:Z,parent:q,root:oe,type:de}=p,ge=pt(d);if(Vt(p,!1),$&&Ht($),!ge&&(j=W&&W.onVnodeBeforeMount)&&Ve(j,q,d),Vt(p,!0),D&&r){let Fe=()=>{p.subTree=Nl(p),r(D,p.subTree,p,w,null)};ge&&de.__asyncHydrate?de.__asyncHydrate(D,p,Fe):Fe()}else{oe.ce&&oe.ce._hasShadowRoot()&&oe.ce._injectChildStyle(de,p.parent?p.parent.type:void 0);let Fe=p.subTree=Nl(p);M(null,Fe,S,L,p,w,C),d.el=Fe.el}if(Z&&ye(Z,w),!ge&&(j=W&&W.onVnodeMounted)){let Fe=d;ye(()=>Ve(j,q,Fe),w)}(256&d.shapeFlag||q&&pt(q.vnode)&&256&q.vnode.shapeFlag)&&p.a&&ye(p.a,w),p.isMounted=!0,d=S=L=null}});p.scope.off();let O=p.update=k.run.bind(k),b=p.job=k.runIfDirty.bind(k);b.i=p,b.id=p.uid,k.scheduler=()=>hr(b),Vt(p,!0),O()},ee=(p,d,S)=>{d.component=p;let L=p.vnode.props;p.vnode=d,p.next=null,(function(w,C,I,k){let{props:O,attrs:b,vnode:{patchFlag:j}}=w,D=le(O),[W]=w.propsOptions,$=!1;if((k||j>0)&&!(16&j)){if(8&j){let Z=w.vnode.dynamicProps;for(let q=0;q{let{vnode:k,slots:O}=w,b=!0,j=te;if(32&k.shapeFlag){let D=C._;D?I&&D===1?b=!1:ws(O,C,I):(b=!C.$stable,Cs(C,O)),j=C}else C&&(xs(w,C),j={default:1});if(b)for(let D in O)Vr(D)||j[D]!=null||delete O[D]})(p,d.children,S),Ye(),Ui(p),Qe()},X=(p,d,S,L,w,C,I,k,O=!1)=>{let b=p&&p.children,j=p?p.shapeFlag:0,D=d.children,{patchFlag:W,shapeFlag:$}=d;if(W>0){if(128&W)return void ne(b,D,S,L,w,C,I,k,O);if(256&W)return void Y(b,D,S,L,w,C,I,k,O)}8&$?(16&j&&ln(b,w,C),D!==b&&v(S,D)):16&j?16&$?ne(b,D,S,L,w,C,I,k,O):ln(b,w,C,!0):(8&j&&v(S,""),16&$&&P(D,S,L,w,C,I,k,O))},Y=(p,d,S,L,w,C,I,k,O)=>{let b;p=p||Pt,d=d||Pt;let j=p.length,D=d.length,W=Math.min(j,D);for(b=0;bD?ln(p,w,C,!0,!1,W):P(d,S,L,w,C,I,k,O,W)},ne=(p,d,S,L,w,C,I,k,O)=>{let b=0,j=d.length,D=p.length-1,W=j-1;for(;b<=D&&b<=W;){let $=p[b],Z=d[b]=O?gt(d[b]):je(d[b]);if(Ze($,Z))M($,Z,S,null,w,C,I,k,O);else break;b++}for(;b<=D&&b<=W;){let $=p[D],Z=d[W]=O?gt(d[W]):je(d[W]);if(Ze($,Z))M($,Z,S,null,w,C,I,k,O);else break;D--,W--}if(b>D){if(b<=W){let $=W+1,Z=$W)for(;b<=D;)J(p[b],w,C,!0),b++;else{let $,Z=b,q=b,oe=new Map;for(b=q;b<=W;b++){let ve=d[b]=O?gt(d[b]):je(d[b]);ve.key!=null&&oe.set(ve.key,b)}let de=0,ge=W-q+1,Fe=!1,Wn=0,Ot=Array(ge);for(b=0;b=ge){J(we,w,C,!0);continue}if(we.key!=null)ve=oe.get(we.key);else for($=q;$<=W;$++)if(Ot[$-q]===0&&Ze(we,d[$])){ve=$;break}ve===void 0?J(we,w,C,!0):(Ot[ve-q]=b+1,ve>=Wn?Wn=ve:Fe=!0,M(we,d[ve],S,null,w,C,I,k,O),de++)}let _t=Fe?(function(ve){let we,rn,Oe,yt,Jl,Xl=ve.slice(),$e=[0],Lo=ve.length;for(we=0;we>1]]0&&(Xl[we]=$e[Oe-1]),$e[Oe]=we)}}for(Oe=$e.length,yt=$e[Oe-1];Oe-- >0;)$e[Oe]=yt,yt=Xl[yt];return $e})(Ot):Pt;for($=_t.length-1,b=ge-1;b>=0;b--){let ve=q+b,we=d[ve],rn=d[ve+1],Oe=ve+1{let{el:C,type:I,transition:k,children:O,shapeFlag:b}=p;if(6&b)return void ae(p.component.subTree,d,S,L);if(128&b)return void p.suspense.move(d,S,L);if(64&b)return void I.move(p,d,S,$t);if(I===Ce){i(C,d,S);for(let j=0;j{let Z;for(;j&&j!==D;)Z=m(j),i(j,W,$),j=Z;i(D,W,$)})(p,d,S);if(L!==2&&1&b&&k)if(L===0)k.persisted&&!C[Ke]?i(C,d,S):(k.beforeEnter(C),i(C,d,S),ye(()=>k.enter(C),w));else{let{leave:j,delayLeave:D,afterLeave:W}=k,$=()=>{p.ctx.isUnmounted?s(C):i(C,d,S)},Z=()=>{let q=C._isLeaving||!!C[Ke];C._isLeaving&&C[Ke](!0),k.persisted&&!q?$():j(C,()=>{$(),W&&W()})};D?D(C,$,Z):Z()}else i(C,d,S)},J=(p,d,S,L=!1,w=!1)=>{let C,{type:I,props:k,ref:O,children:b,dynamicChildren:j,shapeFlag:D,patchFlag:W,dirs:$,cacheIndex:Z,memo:q}=p;if((W===-2||j&&j.hasOnce)&&(w=!1),O!=null&&(Ye(),Xt(O,null,S,p,!0),Qe()),Z==null||p.ctx&&p.ctx!==d||(d.renderCache[Z]=void 0),256&D)return void d.ctx.deactivate(p);let oe=1&D&&$,de=!pt(p);if(de&&(C=k&&k.onVnodeBeforeUnmount)&&Ve(C,d,p),6&D)ot(p.component,S,L);else{if(128&D)return void p.suspense.unmount(S,L);oe&<(p,null,d,"beforeUnmount"),64&D?p.type.remove(p,d,S,$t,L):j&&!j.hasOnce&&(I!==Ce||W>0&&64&W)?ln(j,d,S,!1,!0):(I===Ce&&384&W||!w&&16&D)&&ln(b,d,S),L&&be(p)}let ge=q!=null&&Z==null;(de&&(C=k&&k.onVnodeUnmounted)||oe||ge)&&ye(()=>{C&&Ve(C,d,p),oe&<(p,null,d,"unmounted"),ge&&(p.el=null)},S)},be=p=>{let{type:d,el:S,anchor:L,transition:w}=p,C=d===Ce;if(C&&!w)return void xe(S,L);if(d===Et){(({el:O,anchor:b})=>{let j;for(;O&&O!==b;)j=m(O),s(O),O=j;s(b)})(p),w&&!w.persisted&&w.afterLeave&&w.afterLeave();return}let I=C?Tn(p):p,k=()=>{C?_(S)&&xe(S,L):s(S),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(I&&1&I.shapeFlag&&w&&!w.persisted){let{leave:O,delayLeave:b}=w,j=I.el,D=()=>O(j,k);b?b(j,k,D):D()}else k()},xe=(p,d)=>{let S;for(;p!==d;)S=m(p),s(p),p=S;s(d)},ot=(p,d,S)=>{let{bum:L,scope:w,job:C,subTree:I,um:k,m:O,a:b}=p;Ml(O),Ml(b),L&&Ht(L),w.stop(),C?(C.flags|=8,J(I,p,d,S)):p.vnode.el&&I&&(I.transition=p.vnode.transition,J(I,p,d,S)),k&&ye(k,d),ye(()=>{p.isUnmounted=!0},d)},ln=(p,d,S,L=!1,w=!1,C=0)=>{for(let I=C;I{if(6&p.shapeFlag)return Hn(p.component.subTree);if(128&p.shapeFlag)return p.suspense.next();let d=m(p.anchor||p.el),S=d&&d[zi];return S?m(S):d},Gl=(p,d,S)=>{(function(L,w){if(gr)return L();let C=w===void 0?void 0:new Set(nt);L(),gr=!0;try{Ui(void 0,w),hl(void 0,C,w)}finally{gr=!1}})(()=>{p==null?d._vnode&&J(d._vnode,null,null,!0):M(d._vnode||null,p,d,null,null,null,S),d._vnode=p},p&&d._vnode?void 0:p&&p.component?p.component.uid:Ls)},$t={p:M,um:J,m:ae,r:be,mt:z,mc:P,pc:X,pbc:V,n:Hn,o:e};return t&&([l,r]=t($t)),{render:Gl,hydrate:l,createApp:(n=l,function(p,d=null){G(p)||(p=ie({},p)),d==null||se(d)||(d=null);let S=gs(),L=new WeakSet,w=[],C=!1,I=S.app={_uid:gu++,_component:p,_props:d,_container:null,_context:S,_instance:null,version:Ks,get config(){return S.config},set config(k){},use:(k,...O)=>(L.has(k)||(k&&G(k.install)?(L.add(k),k.install(I,...O)):G(k)&&(L.add(k),k(I,...O))),I),mixin:k=>(S.mixins.includes(k)||S.mixins.push(k),I),component:(k,O)=>O?(S.components[k]=O,I):S.components[k],directive:(k,O)=>O?(S.directives[k]=O,I):S.directives[k],mount(k,O,b){if(!C){let j=I._ceVNode||fe(p,d);return j.appContext=S,b===!0?b="svg":b===!1&&(b=void 0),O&&n?n(j,k):Gl(j,k,b),C=!0,I._container=k,k.__vue_app__=I,Dn(j.component)}},onUnmount(k){w.push(k)},unmount(){C&&(Ue(w,I._instance,16),Gl(null,I._container),delete I._container.__vue_app__)},provide:(k,O)=>(S.provides[k]=O,I),runWithContext(k){let O=jt;jt=I;try{return k()}finally{jt=O}}};return I})}}function Br({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 Vt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ts(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function $r(e,t,n=!1){let l=e.children,r=t.children;if(H(l)&&H(r))for(let i=0;ie.__isSuspense,Wr=0,xu={name:"Suspense",__isSuspense:!0,process(e,t,n,l,r,i,s,o,a,u){if(e==null)(function(f,g,v,_,m,x,N,M,c){let{p:h,o:{createElement:y}}=c,T=y("div"),R=f.suspense=As(f,m,_,g,T,v,x,N,M,c);h(null,R.pendingBranch=f.ssContent,T,null,_,R,x,N),R.deps>0?(In(f,"onPending"),In(f,"onFallback"),h(null,f.ssFallback,g,v,_,null,x,N),Qt(R,f.ssFallback)):R.resolve(!1,!0)})(t,n,l,r,i,s,o,a,u);else{if(i&&i.deps>0&&!e.suspense.isInFallback&&!i.isHydrating){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}(function(f,g,v,_,m,x,N,M,{p:c,um:h,o:{createElement:y}}){let T=g.suspense=f.suspense;T.vnode=g,g.el=f.el;let R=g.ssContent,E=g.ssFallback,{activeBranch:P,pendingBranch:F,isInFallback:V,isHydrating:K}=T;if(F)T.pendingBranch=R,Ze(F,R)?(T.deps++,c(F,R,K?v:T.hiddenContainer,null,m,T,x,N,M),T.deps--,T.deps<=0?T.resolve():!V||K||T.isFallbackMountPending||(c(P,E,v,_,m,null,x,N,M),Qt(T,E))):(T.pendingId=Wr++,K?(T.isHydrating=!1,T.activeBranch=F):h(F,m,T),T.deps=0,T.effects.length=0,T.hiddenContainer=y("div"),V?(c(null,R,T.hiddenContainer,null,m,T,x,N,M),T.deps<=0?T.resolve():T.isFallbackMountPending||(c(P,E,v,_,m,null,x,N,M),Qt(T,E))):P&&Ze(P,R)?(c(P,R,v,_,m,T,x,N,M),T.resolve(!0)):(c(null,R,T.hiddenContainer,null,m,T,x,N,M),T.deps<=0&&T.resolve()));else if(P&&Ze(P,R))c(P,R,v,_,m,T,x,N,M),Qt(T,R);else if(In(g,"onPending"),T.pendingBranch=R,512&R.shapeFlag?T.pendingId=R.component.suspenseId:T.pendingId=Wr++,c(null,R,T.hiddenContainer,null,m,T,x,N,M),T.deps<=0)T.resolve();else{let{timeout:A,pendingId:B}=T;A>0?setTimeout(()=>{T.pendingId===B&&T.fallback(E)},A):A===0&&T.fallback(E)}})(e,t,n,l,r,s,o,a,u)}},hydrate:function(e,t,n,l,r,i,s,o,a){let u=t.suspense=As(t,l,n,e.parentNode,document.createElement("div"),null,r,i,s,o,!0),f=a(e,u.pendingBranch=t.ssContent,n,u,i,s);return u.deps===0&&u.resolve(!1,!0),f},normalize:function(e){let{shapeFlag:t,children:n}=e,l=32&t;e.ssContent=Rs(l?n.default:n),e.ssFallback=l?Rs(n.fallback):fe(he)}};function In(e,t){let n=e.props&&e.props[t];G(n)&&n()}function As(e,t,n,l,r,i,s,o,a,u,f=!1){var g;let v,_,{p:m,m:x,um:N,n:M,o:{parentNode:c,remove:h}}=u,y=(v=(g=e).props&&g.props.suspensible)!=null&&v!==!1;y&&t&&t.pendingBranch&&(_=t.pendingId,t.deps++);let T=e.props?Wt(e.props.timeout):void 0,R=i,E={vnode:e,parent:t,parentComponent:n,namespace:s,container:l,hiddenContainer:r,deps:0,pendingId:Wr++,timeout:typeof T=="number"?T:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!f,isHydrating:f,isUnmounted:!1,effects:[],resolve(P=!1,F=!1){let{vnode:V,activeBranch:K,pendingBranch:A,pendingId:B,effects:z,parentComponent:U,container:Q,isInFallback:ee}=E,X=!1;if(E.isHydrating)E.isHydrating=!1;else if(!P){X=K&&A.transition&&A.transition.mode==="out-in";let ae=!1;X&&(K.transition.afterLeave=()=>{B===E.pendingId&&(x(A,Q,i!==R||ae?i:M(K),0),bn(z),ee&&V.ssFallback&&(V.ssFallback.el=null))}),K&&!E.isFallbackMountPending&&(c(K.el)===Q&&(i=M(K),ae=!0),N(K,U,E,!0),!X&&ee&&V.ssFallback&&ye(()=>V.ssFallback.el=null,E)),X||x(A,Q,i,0)}E.isFallbackMountPending=!1,Qt(E,A),E.pendingBranch=null,E.isInFallback=!1;let Y=E.parent,ne=!1;for(;Y;){if(Y.pendingBranch){for(let ae=0;ae{if(E.isFallbackMountPending=!1,!E.isInFallback)return;let ee=E.vnode.ssFallback;m(null,ee,A,z,K,null,B,o,a),Qt(E,ee)},Q=P.transition&&P.transition.mode==="out-in";Q&&(E.isFallbackMountPending=!0,V.transition.afterLeave=U),E.isInFallback=!0,N(V,K,null,!0),Q||U()},move(P,F,V){E.activeBranch&&x(E.activeBranch,P,F,V),E.container=P},next:()=>E.activeBranch&&M(E.activeBranch),registerDep(P,F,V,K){let A=!!E.pendingBranch;A&&E.deps++;let B=P.vnode.el;P.asyncDep.catch(z=>{It(z,P,0)}).then(z=>{if(P.isUnmounted||E.isUnmounted||E.pendingId!==P.suspenseId)return;if(Vn(),!P.scope.active){A&&--E.deps==0&&E.resolve();return}P.asyncResolved=!0;let{vnode:U}=P;qr(P,z,!1),B&&(U.el=B);let Q=!B&&P.subTree.el;F(P,U,c(B||P.subTree.el),B?null:M(P.subTree),E,K,V),Q&&(U.placeholder=null,h(Q)),Pl(P,U.el),A&&--E.deps==0&&E.resolve()})},unmount(P,F){E.isUnmounted=!0,E.activeBranch&&N(E.activeBranch,n,P,F),E.pendingBranch&&N(E.pendingBranch,n,P,F)}};return E}function Rs(e){let t;if(G(e)){let n=Dt&&e._c;n&&(e._d=!1,Ln()),e=e(),n&&(e._d=!0,t=Re,Il())}return H(e)&&(e=Ir(e)),e=je(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Os(e,t){t&&t.pendingBranch?H(e)?t.effects.push(...e):t.effects.push(e):bn(e)}function Qt(e,t){e.activeBranch=t;let{vnode:n,parentComponent:l}=e,r=t.el;for(;!r&&t.component;)r=(t=t.component.subTree).el;n.el=r,l&&l.subTree===n&&(l.vnode.el=r,Pl(l,r))}let Ce=Symbol.for("v-fgt"),kt=Symbol.for("v-txt"),he=Symbol.for("v-cmt"),Et=Symbol.for("v-stc"),dt=[],Re=null;function Ln(e=!1){dt.push(Re=e?null:[])}function Il(){dt.pop(),Re=dt[dt.length-1]||null}let Dt=1;function jn(e,t=!1){Dt+=e,e<0&&Re&&t&&(Re.hasOnce=!0)}function Ns(e){return e.dynamicChildren=Dt>0?Re||Pt:null,Il(),Dt>0&&Re&&Re.push(e),e}function wu(e,t,n,l,r,i){return Ns(Kr(e,t,n,l,r,i,!0))}function Ll(e,t,n,l,r){return Ns(fe(e,t,n,l,r,!0))}function ht(e){return!!e&&e.__v_isVNode===!0}function Ze(e,t){return e.type===t.type&&e.key===t.key}function ku(e){}let Ps=({key:e})=>e!=null?e:null,jl=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ue(e)||_e(e)||G(e)?{i:Ee,r:e,k:t,f:!!n}:e:null);function Kr(e,t=null,n=null,l=0,r=null,i=+(e!==Ce),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ps(t),ref:t&&jl(t),scopeId:gl,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:i,patchFlag:l,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ee};return o?(Vl(a,n),128&i&&e.normalize(a)):n&&(a.shapeFlag|=ue(n)?8:16),Dt>0&&!s&&Re&&(a.patchFlag>0||6&i)&&a.patchFlag!==32&&Re.push(a),a}let fe=function(e,t=null,n=null,l=0,r=null,i=!1){var s;if(e&&e!==us||(e=he),ht(e)){let a=it(e,t,!0);return n&&Vl(a,n),Dt>0&&!i&&Re&&(6&a.shapeFlag?Re[Re.indexOf(e)]=a:Re.push(a)),a.patchFlag=-2,a}if(G(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:a,style:u}=t=Ms(t);a&&!ue(a)&&(t.class=fn(a)),se(u)&&(mn(u)&&!H(u)&&(u=ie({},u)),t.style=pn(u))}let o=ue(e)?1:Fl(e)?128:e.__isTeleport?64:se(e)?4:2*!!G(e);return Kr(e,t,n,l,r,o,i,!0)};function Ms(e){return e?mn(e)||ys(e)?ie({},e):e:null}function it(e,t,n=!1,l=!1){let{props:r,ref:i,patchFlag:s,children:o,transition:a}=e,u=t?Is(r||{},t):r,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Ps(u),ref:t&&t.ref?n&&i?H(i)?i.concat(jl(t)):[i,jl(t)]:jl(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ce?s===-1?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&it(e.ssContent),ssFallback:e.ssFallback&&it(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return a&&l&&rt(f,a.clone(f)),f}function zr(e=" ",t=0){return fe(kt,null,e,t)}function Eu(e,t){let n=fe(Et,null,e);return n.staticCount=t,n}function Fs(e="",t=!1){return t?(Ln(),Ll(he,null,e)):fe(he,null,e)}function je(e){return e==null||typeof e=="boolean"?fe(he):H(e)?fe(Ce,null,e.slice()):ht(e)?gt(e):fe(kt,null,String(e))}function gt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:it(e)}function Vl(e,t){let n=0,{shapeFlag:l}=e;if(t==null)t=null;else if(H(t))n=16;else if(typeof t=="object")if(65&l){let r=t.default;r&&(r._c&&(r._d=!1),Vl(e,r()),r._c&&(r._d=!0));return}else{n=32;let r=t._;r||ys(t)?r===3&&Ee&&(Ee.slots._===1?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=Ee}else if(G(t)){if(65&l)return void Vl(e,{default:t});t={default:t,_ctx:Ee},n=32}else t=String(t),64&l?(n=16,t=[zr(t)]):n=8;e.children=t,e.shapeFlag|=n}function Is(...e){let t={};for(let n=0;n{x=!0;let[h,y]=s(c,a,!0);ie(_,h),y&&m.push(...y)};!u&&a.mixins.length&&a.mixins.forEach(M),o.extends&&M(o.extends),o.mixins&&o.mixins.forEach(M)}if(!v&&!x)return se(o)&&f.set(o,Pt),Pt;if(H(v))for(let M=0;M{let M=s(N,a,!0);M&&(m=!0,ie(_,M))};!u&&a.mixins.length&&a.mixins.forEach(x),o.extends&&x(o.extends),o.mixins&&o.mixins.forEach(x)}return v||m?(H(v)?v.forEach(x=>_[x]=null):ie(_,v),se(o)&&f.set(o,_),_):(se(o)&&f.set(o,null),null)})(l,r),emit:null,emitted:null,propsDefaults:te,inheritAttrs:l.inheritAttrs,ctx:te,data:te,props:te,attrs:te,slots:te,refs:te,setupState:te,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 i.ctx={_:i},i.root=t?t.root:i,i.emit=mu.bind(null,i),e.ce&&e.ce(i),i}let Te=null,Me=()=>Te||Ee;{let e=Qn(),t=(n,l)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(l),i=>{r.length>1?r.forEach(s=>s(i)):r[0](i)}};zn=t("__VUE_INSTANCE_SETTERS__",n=>Te=n),bt=t("__VUE_SSR_SETTERS__",n=>Ut=n)}let en=e=>{let t=Te;return zn(e),e.scope.on(),()=>{e.scope.off(),zn(t)}},Vn=()=>{Te&&Te.scope.off(),zn(null)};function Vs(e){return 4&e.vnode.shapeFlag}let Ut=!1;function Ds(e,t=!1,n=!1){t&&bt(t);let{props:l,children:r}=e.vnode,i=Vs(e);(function(u,f,g,v=!1){let _={},m=Object.create(Lr);for(let x in u.propsDefaults=Object.create(null),bs(u,f,_,m),u.propsOptions[0])x in _||(_[x]=void 0);g?u.props=v?_:Ni(_):u.type.props?u.props=_:u.props=m,u.attrs=m})(e,l,i,t);var s=n||t;let o=e.slots=Object.create(Lr);if(32&e.vnode.shapeFlag){let u=r._;u?(ws(o,r,s),s&&oi(o,"_",u,!0)):Cs(r,o)}else r&&xs(e,r);let a=i?(function(u,f){let g=u.type;u.accessCache=Object.create(null),u.proxy=new Proxy(u.ctx,Nr);let{setup:v}=g;if(v){Ye();let _=u.setupContext=v.length>1?Bs(u):null,m=en(u),x=zt(v,u,0,[u.props,_]),N=nr(x);if(Qe(),m(),(N||u.sp)&&!pt(u)&&xr(u),N){if(x.then(Vn,Vn),f)return x.then(M=>{bt(!0);try{qr(u,M,f)}finally{bt(!1)}}).catch(M=>{It(M,u,0)});u.asyncDep=x}else qr(u,x,f)}else Us(u,f)})(e,t):void 0;return t&&bt(!1),a}function qr(e,t,n){G(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=dr(t)),Us(e,n)}function Au(e){qn=e,Ql=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,eu))}}let Ru=()=>!qn;function Us(e,t,n){let l=e.type;if(!e.render){if(!t&&qn&&!l.render){let r=l.template||Mr(e).template;if(r){let{isCustomElement:i,compilerOptions:s}=e.appContext.config,{delimiters:o,compilerOptions:a}=l,u=ie(ie({isCustomElement:i,delimiters:o},s),a);l.render=qn(r,u)}}e.render=l.render||He,Ql&&Ql(e)}{let r=en(e);Ye();try{(function(i){let s=Mr(i),o=i.proxy,a=i.ctx;Pr=!1,s.beforeCreate&&fs(s.beforeCreate,i,"bc");let{data:u,computed:f,methods:g,watch:v,provide:_,inject:m,created:x,beforeMount:N,mounted:M,beforeUpdate:c,updated:h,activated:y,deactivated:T,beforeUnmount:R,unmounted:E,render:P,renderTracked:F,renderTriggered:V,errorCaptured:K,serverPrefetch:A,expose:B,inheritAttrs:z,components:U,directives:Q}=s;if(m&&(function(X,Y){for(let ne in H(X)&&(X=Fr(X)),X){let ae,J=X[ne];_e(ae=se(J)?"default"in J?xn(J.from||ne,J.default,!0):xn(J.from||ne):xn(J))?Object.defineProperty(Y,ne,{enumerable:!0,configurable:!0,get:()=>ae.value,set:be=>ae.value=be}):Y[ne]=ae}})(m,a),g)for(let X in g){let Y=g[X];G(Y)&&(a[X]=Y.bind(o))}if(u){let X=u.call(o,o);se(X)&&(i.data=ol(X))}if(Pr=!0,f)for(let X in f){let Y=f[X],ne=G(Y)?Y.bind(o,o):G(Y.get)?Y.get.bind(o,o):He,ae=$s({get:ne,set:!G(Y)&&G(Y.set)?Y.set.bind(o):He});Object.defineProperty(a,X,{enumerable:!0,configurable:!0,get:()=>ae.value,set:J=>ae.value=J})}if(v)for(let X in v)(function Y(ne,ae,J,be){let xe=be.includes(".")?Ki(J,be):()=>J[be];if(ue(ne)){let ot=ae[ne];G(ot)&&Gt(xe,ot)}else if(G(ne))Gt(xe,ne.bind(J));else if(se(ne))if(H(ne))ne.forEach(ot=>Y(ot,ae,J,be));else{let ot=G(ne.handler)?ne.handler.bind(J):ae[ne.handler];G(ot)&&Gt(xe,ot,ne)}})(v[X],a,o,X);if(_){let X=G(_)?_.call(o):_;Reflect.ownKeys(X).forEach(Y=>{Bi(Y,X[Y])})}function ee(X,Y){H(Y)?Y.forEach(ne=>X(ne.bind(o))):Y&&X(Y.bind(o))}if(x&&fs(x,i,"c"),ee(rs,N),ee(On,M),ee(kr,c),ee(Tl,h),ee(ts,y),ee(ns,T),ee(as,K),ee(os,F),ee(ss,V),ee(Al,R),ee(Nn,E),ee(is,A),H(B))if(B.length){let X=i.exposed||(i.exposed={});B.forEach(Y=>{Object.defineProperty(X,Y,{get:()=>o[Y],set:ne=>o[Y]=ne,enumerable:!0})})}else i.exposed||(i.exposed={});P&&i.render===He&&(i.render=P),z!=null&&(i.inheritAttrs=z),U&&(i.components=U),Q&&(i.directives=Q),A&&xr(i)})(e)}finally{Qe(),r()}}}let Ou={get:(e,t)=>(Ae(e,"get",""),e[t])};function Bs(e){return{attrs:new Proxy(e.attrs,Ou),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Dn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(dr(Pi(e.exposed)),{get:(t,n)=>n in t?t[n]:n in Pn?Pn[n](e):void 0,has:(t,n)=>n in t||n in Pn})):e.proxy}function Gr(e,t=!0){return G(e)?e.displayName||e.name:e.name||t&&e.__name}let $s=(e,t)=>(function(n,l=!1){let r,i;return G(n)?r=n:(r=n.get,i=n.set),new ya(r,i,l)})(e,Ut);function Hs(e,t,n){try{jn(-1);let l=arguments.length;return l!==2?(l>3?n=Array.prototype.slice.call(arguments,2):l===3&&ht(n)&&(n=[n]),fe(e,t,n)):!se(t)||H(t)?fe(e,null,t):ht(t)?fe(e,null,[t]):fe(e,t)}finally{jn(1)}}function Nu(){}function Pu(e,t,n,l){let r=n[l];if(r&&Ws(r,e))return r;let i=t();return i.memo=e.slice(),i.cacheIndex=l,n[l]=i}function Ws(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let l=0;l0&&Re&&Re.push(e),!0}let Ks="3.5.44",Mu=He,Fu=null,Iu,Lu=He,ju={createComponentInstance:js,setupComponent:Ds,renderComponentRoot:Nl,setCurrentRenderingInstance:Cn,isVNode:ht,normalizeVNode:je,getComponentPublicInstance:Dn,ensureValidVNode:Ar,pushWarningContext:function(e){},popWarningContext:function(){}},Vu=null,Du=null,Uu=null,zs="u">typeof window&&window.trustedTypes;if(zs)try{er=zs.createPolicy("vue",{createHTML:e=>e})}catch(e){}let qs=er?e=>er.createHTML(e):e=>e,vt="u">typeof document?document:null,Gs=vt&&vt.createElement("template"),Js={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,l)=>{let r=t==="svg"?vt.createElementNS("http://www.w3.org/2000/svg",e):t==="mathml"?vt.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?vt.createElement(e,{is:n}):vt.createElement(e);return e==="select"&&l&&l.multiple!=null&&r.setAttribute("multiple",l.multiple),r},createText:e=>vt.createTextNode(e),createComment:e=>vt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>vt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,l,r,i){let s=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==i&&(r=r.nextSibling););else{Gs.innerHTML=qs(l==="svg"?`${e}`:l==="mathml"?`${e}`:e);let o=Gs.content;if(l==="svg"||l==="mathml"){let a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}t.insertBefore(o,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Tt="transition",Un="animation",tn=Symbol("_vtc"),Xs={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},Zs=ie({},br,Xs),Bu=((Zl=(e,{slots:t})=>Hs(Xi,Qs(e),t)).displayName="Transition",Zl.props=Zs,Zl),Bt=(e,t=[])=>{H(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ys=e=>!!e&&(H(e)?e.some(t=>t.length>1):e.length>1);function Qs(e){let t={};for(let A in e)A in Xs||(t[A]=e[A]);if(e.css===!1)return t;let{name:n="v",type:l,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=i,appearActiveClass:u=s,appearToClass:f=o,leaveFromClass:g=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,m=(function(A){if(A==null)return null;{if(se(A))return[(function(z){return Wt(z)})(A.enter),(function(z){return Wt(z)})(A.leave)];let B=(function(z){return Wt(z)})(A);return[B,B]}})(r),x=m&&m[0],N=m&&m[1],{onBeforeEnter:M,onEnter:c,onEnterCancelled:h,onLeave:y,onLeaveCancelled:T,onBeforeAppear:R=M,onAppear:E=c,onAppearCancelled:P=h}=t,F=(A,B,z,U)=>{A._enterCancelled=U,At(A,B?f:o),At(A,B?u:s),z&&z()},V=(A,B)=>{A._isLeaving=!1,At(A,g),At(A,_),At(A,v),B&&B()},K=A=>(B,z)=>{let U=A?E:c,Q=()=>F(B,A,z);Bt(U,[B,Q]),eo(()=>{At(B,A?a:i),st(B,A?f:o),Ys(U)||to(B,l,x,Q)})};return ie(t,{onBeforeEnter(A){Bt(M,[A]),st(A,i),st(A,s)},onBeforeAppear(A){Bt(R,[A]),st(A,a),st(A,u)},onEnter:K(!1),onAppear:K(!0),onLeave(A,B){A._isLeaving=!0;let z=()=>V(A,B);st(A,g),A._enterCancelled?(st(A,v),Jr(A)):(Jr(A),st(A,v)),eo(()=>{A._isLeaving&&(At(A,g),st(A,_),Ys(y)||to(A,l,N,z))}),Bt(y,[A,z])},onEnterCancelled(A){F(A,!1,void 0,!0),Bt(h,[A])},onAppearCancelled(A){F(A,!0,void 0,!0),Bt(P,[A])},onLeaveCancelled(A){V(A),Bt(T,[A])}})}function st(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[tn]||(e[tn]=new Set)).add(t)}function At(e,t){t.split(/\s+/).forEach(l=>l&&e.classList.remove(l));let n=e[tn];n&&(n.delete(t),n.size||(e[tn]=void 0))}function eo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function to(e,t,n,l){let r=e._endId=++$u,i=()=>{r===e._endId&&l()};if(n!=null)return setTimeout(i,n);let{type:s,timeout:o,propCount:a}=no(e,t);if(!s)return l();let u=s+"end",f=0,g=()=>{e.removeEventListener(u,v),i()},v=_=>{_.target===e&&++f>=a&&g()};setTimeout(()=>{f(n[m]||"").split(", "),r=l(`${Tt}Delay`),i=l(`${Tt}Duration`),s=lo(r,i),o=l(`${Un}Delay`),a=l(`${Un}Duration`),u=lo(o,a),f=null,g=0,v=0;t===Tt?s>0&&(f=Tt,g=s,v=i.length):t===Un?u>0&&(f=Un,g=u,v=a.length):v=(f=(g=Math.max(s,u))>0?s>u?Tt:Un:null)?f===Tt?i.length:a.length:0;let _=f===Tt&&/\b(?:transform|all)(?:,|$)/.test(l(`${Tt}Property`).toString());return{type:f,timeout:g,propCount:v,hasTransform:_}}function lo(e,t){for(;e.lengthro(n)+ro(e[l])))}function ro(e){return e==="auto"?0:1e3*Number(e.slice(0,-1).replace(",","."))}function Jr(e){return(e?e.ownerDocument:document).body.offsetHeight}let Dl=Symbol("_vod"),Xr=Symbol("_vsh"),io={name:"show",beforeMount(e,{value:t},{transition:n}){e[Dl]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Bn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:l}){!t!=!n&&(l?t?(l.beforeEnter(e),Bn(e,!0),l.enter(e)):l.leave(e,()=>{Bn(e,!1)}):Bn(e,t))},beforeUnmount(e,{value:t}){Bn(e,t)}};function Bn(e,t){e.style.display=t?e[Dl]:"none",e[Xr]=!t}let so=Symbol("");function Hu(e){let t=Me();if(!t)return;let n=t.ut=(r=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(i=>Ul(i,r))},l=()=>{let r=e(t.proxy);t.ce?Ul(t.ce,r):(function i(s,o){if(128&s.shapeFlag){let a=s.suspense;s=a.activeBranch,a.pendingBranch&&!a.isHydrating&&a.effects.push(()=>{i(a.activeBranch,o)})}for(;s.component;)s=s.component.subTree;if(1&s.shapeFlag&&s.el)Ul(s.el,o);else if(s.type===Ce)s.children.forEach(a=>i(a,o));else if(s.type===Et){let{el:a,anchor:u}=s;for(;a&&(Ul(a,o),a!==u);)a=a.nextSibling}})(t.subTree,r),n(r)};kr(()=>{bn(l)}),On(()=>{Gt(l,He,{flush:"post"});let r=new MutationObserver(l);r.observe(t.subTree.el.parentNode,{childList:!0}),Nn(()=>r.disconnect())})}function Ul(e,t){if(e.nodeType===1){let l=e.style,r="";for(let i in t){var n;let s=(n=t[i])==null?"initial":typeof n=="string"?n===""?" ":n:String(n);l.setProperty(`--${i}`,s),r+=`--${i}: ${s};`}l[so]=r}}let Wu=/(?:^|;)\s*display\s*:/,Bl=/\s*!important$/;function $n(e,t,n){if(H(n))n.forEach(l=>$n(e,t,l));else if(n==null&&(n=""),t.startsWith("--"))Bl.test(n)?e.setProperty(t,n.replace(Bl,""),"important"):e.setProperty(t,n);else{let l=(function(r,i){let s=Zr[i];if(s)return s;let o=me(i);if(o!=="filter"&&o in r)return Zr[i]=o;o=un(o);for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),ho=(e,t,n,l,r,i)=>{let s=r==="svg";if(t==="class"){var o;let a;o=l,(a=e[tn])&&(o=(o?[o,...a]:[...a]).join(" ")),o==null?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else t==="style"?(function(a,u,f){let g=a.style,v=ue(f),_=!1;if(f&&!v){if(u)if(ue(u))for(let c of u.split(";")){let h=c.slice(0,c.indexOf(":")).trim();f[h]==null&&$n(g,h,"")}else for(let c in u)f[c]==null&&$n(g,c,"");for(let c in f){var m,x,N,M;c==="display"&&(_=!0);let h=f[c];h!=null?(m=a,x=c,N=!ue(u)&&u?u[c]:void 0,M=h,m.tagName==="TEXTAREA"&&(x==="width"||x==="height")&&ue(M)&&N===M||$n(g,c,h)):$n(g,c,"")}}else if(v){if(u!==f){let c=g[so];c&&(f+=";"+c),g.cssText=f,_=Wu.test(f)}}else u&&a.removeAttribute("style");Dl in a&&(v&&u===f||(a[Dl]=_?g.display:""),a[Xr]&&(g.display="none"))})(e,n,l):an(t)?Jn(t)||(function(a,u,f,g=null){let v=a[po]||(a[po]={}),_=v[u];if(f&&_)_.value=f;else{let[N,M]=(function(c){let h,y;for(;(y=c.match(Ku))&&!zu.test(c);)h||(h={}),c=c.slice(0,c.length-y[1].length),h[y[1].toLowerCase()]=!0;return[c[2]===":"?c.slice(3):Ie(c.slice(2)),h]})(u);if(f){var m,x;let c;mt(a,N,v[u]=(m=f,x=g,(c=h=>{if(h._vts){if(h._vts<=c.attached)return}else h._vts=Date.now();let y=c.value;if(H(y)){let T=h.stopImmediatePropagation;h.stopImmediatePropagation=()=>{T.call(h),h._stopped=!0};let R=y.slice(),E=[h];for(let P=0;PYr=0),Yr=Date.now()),c),M)}else _&&(a.removeEventListener(N,_,M),v[u]=void 0)}})(e,t,l,i):(t[0]==="."?(t=t.slice(1),0):t[0]==="^"?(t=t.slice(1),1):!(function(a,u,f,g){if(g)return!!(u==="innerHTML"||u==="textContent"||u in a&&fo(u)&&G(f));if(u==="spellcheck"||u==="draggable"||u==="translate"||u==="autocorrect"||u==="sandbox"&&a.tagName==="IFRAME"||u==="form"||u==="list"&&a.tagName==="INPUT"||u==="type"&&a.tagName==="TEXTAREA")return!1;if(u==="width"||u==="height"){let v=a.tagName;if(v==="IMG"||v==="VIDEO"||v==="CANVAS"||v==="SOURCE")return!1}return!(fo(u)&&ue(f))&&u in a})(e,t,l,s))?e._isVueCE&&((function(a,u){let f=a._def.props;if(!f)return!1;let g=me(u);return Array.isArray(f)?f.some(v=>me(v)===g):Object.keys(f).some(v=>me(v)===g)})(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ue(l)))?co(e,me(t),l,i,t):(t==="true-value"?e._trueValue=l:t==="false-value"&&(e._falseValue=l),uo(e,t,l,s)):(co(e,t,l),e.tagName.includes("-")||t!=="value"&&t!=="checked"&&t!=="selected"||uo(e,t,l,s,i,t!=="value"))},go={};function vo(e,t,n){let l,r=Cr(e,t);l=r,ce.call(l)==="[object Object]"&&(r=ie({},r,t));class i extends ql{constructor(o){super(r,o,n)}}return i.def=r,i}let Gu=(e,t)=>vo(e,t,Po),Ju="u">typeof HTMLElement?HTMLElement:class{};class ql extends Ju{constructor(t,n={},l=ri){super(),this._def=t,this._props=n,this._createApp=l,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&l!==ri?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(ie({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof ql){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,dl(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(let n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let l=0;l{let i;this._resolved=!0,this._pendingResolve=void 0;let{props:s,styles:o}=l;if(s&&!H(s))for(let a in s){let u=s[a];(u===Number||u&&u.type===Number)&&(a in this._props&&(this._props[a]=Wt(this._props[a])),(i||(i=Object.create(null)))[me(a)]=!0)}this._numberProps=i,this._resolveProps(l),this.shadowRoot&&this._applyStyles(o),this._connected&&this._mount(l)},n=this._def.__asyncLoader;if(n)return this._pendingResolve=n().then(l=>{l.configureApp=this._def.configureApp,t(this._def=l,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let n=this._instance&&this._instance.exposed;if(n)for(let l in n)re(this,l)||Object.defineProperty(this,l,{get:()=>yn(n[l])})}_resolveProps(t){let{props:n}=t,l=H(n)?n:Object.keys(n||{});for(let r of Object.keys(this))r[0]!=="_"&&l.includes(r)&&this._setProp(r,this[r]);for(let r of l.map(me))Object.defineProperty(this,r,{get(){return this._getProp(r)},set(i){this._setProp(r,i,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;let n=this.hasAttribute(t),l=n?this.getAttribute(t):go,r=me(t);n&&this._numberProps&&this._numberProps[r]&&(l=Wt(l)),this._setProp(r,l,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,l=!0,r=!1){if(n!==this._props[t]&&(this._dirty=!0,n===go?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),r&&this._instance&&this._update(),l)){let i=this._ob;i&&(this._processMutations(i.takeRecords()),i.disconnect()),n===!0?this.setAttribute(Ie(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(Ie(t),n+""):n||this.removeAttribute(Ie(t)),i&&i.observe(this,{attributes:!0})}}_update(){let t=this._createVNode();this._app&&(t.appContext=this._app._context),No(t,this._root)}_createVNode(){let t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));let n=fe(this._def,ie(t,this._props));return this._instance||(n.ce=l=>{this._instance=l,l.ce=this,l.isCE=!0;let r=(i,s)=>{let o;this.dispatchEvent(new CustomEvent(i,(o=s[0],ce.call(o)==="[object Object]"?ie({detail:s},s[0]):{detail:s})))};l.emit=(i,...s)=>{r(i,s),Ie(i)!==i&&r(Ie(i),s)},this._setParent()}),n}_applyStyles(t,n,l){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}let r=this._nonce,i=this.shadowRoot,s=l?this._getStyleAnchor(l)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i),o=null;for(let a=t.length-1;a>=0;a--){let u=document.createElement("style");r&&u.setAttribute("nonce",r),u.textContent=t[a],i.insertBefore(u,o||s),o=u,a===0&&(l||this._styleAnchors.set(this._def,u),n&&this._styleAnchors.set(n,u))}}_getStyleAnchor(t){if(!t)return null;let n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;n(i===void 0&&(i=n.length>0&&(function(u,f,g){let v=u.cloneNode(),_=u[tn];_&&_.forEach(N=>{N.split(/\s+/).forEach(M=>M&&v.classList.remove(M))}),g.split(/\s+/).forEach(N=>N&&v.classList.add(N)),v.style.display="none";let m=f.nodeType===1?f:f.parentNode;m.appendChild(v);let{hasTransform:x}=no(v);return m.removeChild(v),x})(n[0].el,s.vnode.el,So(e))),i);return Tl(()=>{var u,f;let g;if(Qr.delete(s),!a()){n=[],r=void 0;return}let v=So(e);n.forEach(Qu);let _=r&&(u=r,f=s.vnode.el,(g=u.find(x=>x.willMove()&&x.item.contains(f)))&&Hl(g.item,g));r=void 0,n.forEach(x=>{var N,M;return N=x,M=_,void yo.set(N,Hl(N.el,M))});let m=n.filter(ec);Jr(s.vnode.el),m.forEach(x=>{let N=x.el,M=N.style;st(N,v),M.transform=M.webkitTransform=M.transitionDuration="";let c=N[$l]=h=>{(!h||h.target===N)&&(!h||h.propertyName.endsWith("transform"))&&(N.removeEventListener("transitionend",c),N[$l]=null,At(N,v))};N.addEventListener("transitionend",c)}),n=[]}),()=>{let u=le(e),f=Qs(u),g=u.tag||Ce;if(n=[],i=void 0,l)for(let v=0;vMath.abs(a-1)&&(a=1),.01>Math.abs(u-1)&&(u=1),s.transform=s.webkitTransform=`translate(${l/a}px,${r/u}px)`,s.transitionDuration="0s",e}}function Hl(e,t){let n=e.getBoundingClientRect();return{left:n.left-(t?t.left:0),top:n.top-(t?t.top:0)}}let Rt=e=>{let t=e.props["onUpdate:modelValue"]||!1;return H(t)?n=>Ht(t,n):t};function tc(e){e.target.composing=!0}function Co(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let Be=Symbol("_assign"),Wl=Symbol("_initialValue");function ei(e,t,n){return t&&(e=e.trim()),n&&(e=Yn(e)),e}let Kl={created(e,{modifiers:{lazy:t,trim:n,number:l}},r){e.parentNode&&(e.type==="text"?e[Wl]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Wl]=e.defaultValue.replace(/\r\n?/g,` +`))),e[Be]=Rt(r);let i=l||r.props&&r.props.type==="number";mt(e,t?"change":"input",s=>{s.target.composing||e[Be](ei(e.value,n,i))}),(n||i)&&mt(e,"change",()=>{e.value=ei(e.value,n,i)}),t||(mt(e,"compositionstart",tc),mt(e,"compositionend",Co),mt(e,"change",Co))},mounted(e,{value:t,modifiers:{trim:n,number:l}}){let r=e[Wl];delete e[Wl],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[Be](ei(e.value,n,l)):e.value=t==null?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:l,trim:r,number:i}},s){if(e[Be]=Rt(s),e.composing)return;let o=(i||e.type==="number")&&!/^0\d/.test(e.value)?Yn(e.value):e.value,a=t==null?"":t;if(o===a)return;let u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(l&&t===n||r&&e.value.trim()===a)||(e.value=a)}},ti={deep:!0,created(e,t,n){e[Be]=Rt(n),mt(e,"change",()=>{let l=e._modelValue,r=nn(e),i=e.checked,s=e[Be];if(H(l)){let o=el(l,r),a=o!==-1;if(i&&!a)s(l.concat(r));else if(!i&&a){let u=[...l];u.splice(o,1),s(u)}}else{let o;if(o=l,ce.call(o)==="[object Set]"){let a=new Set(l);i?a.add(r):a.delete(r),s(a)}else s(Eo(e,i))}})},mounted:xo,beforeUpdate(e,t,n){e[Be]=Rt(n),xo(e,t,n)}};function xo(e,{value:t,oldValue:n},l){let r;if(e._modelValue=t,H(t))r=el(t,l.props.value)>-1;else{let i;if(i=t,ce.call(i)==="[object Set]")r=t.has(l.props.value);else{if(t===n)return;r=qe(t,Eo(e,!0))}}e.checked!==r&&(e.checked=r)}let ni={created(e,{value:t},n){e.checked=qe(t,n.props.value),e[Be]=Rt(n),mt(e,"change",()=>{e[Be](nn(e))})},beforeUpdate(e,{value:t,oldValue:n},l){e[Be]=Rt(l),t!==n&&(e.checked=qe(t,l.props.value))}},wo={deep:!0,created(e,{value:t,modifiers:{number:n}},l){e._modelValue=t,mt(e,"change",()=>{let r,i=Array.prototype.filter.call(e.options,u=>u.selected).map(u=>n?Yn(nn(u)):nn(u)),s=e.multiple,o=s?(r=e._modelValue,ce.call(r)==="[object Set]"?new Set(i):i):i[0],a=e._pendingValue=[s,s?H(o)?i.slice():i:o];try{e[Be](o)}finally{dl(()=>{e._pendingValue===a&&(e._pendingValue=void 0)})}}),e[Be]=Rt(l)},mounted(e,{value:t}){ko(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Be]=Rt(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,n&&n[0]===e.multiple&&(function(l,r,i){let s;if(!i||H(l))return qe(l,r);if(s=l,ce.call(s)==="[object Set]"){if(l.size!==r.length)return!1;for(let o of r)if(!l.has(o))return!1;return!0}return!1})(t,n[1],n[0])||ko(e,t)}};function ko(e,t){let n,l=e.multiple,r=H(t);if(!l||r||(n=t,ce.call(n)==="[object Set]")){for(let i=0,s=e.options.length;iString(f)===String(a)):o.selected=el(t,a)>-1}else o.selected=t.has(a);else if(qe(nn(o),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}l||e.selectedIndex===-1||(e.selectedIndex=-1)}}function nn(e){return"_value"in e?e._value:e.value}function Eo(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}let To={created(e,t,n){zl(e,t,n,null,"created")},mounted(e,t,n){zl(e,t,n,null,"mounted")},beforeUpdate(e,t,n,l){zl(e,t,n,l,"beforeUpdate")},updated(e,t,n,l){zl(e,t,n,l,"updated")}};function Ao(e,t){switch(e){case"SELECT":return wo;case"TEXTAREA":return Kl;default:switch(t){case"checkbox":return ti;case"radio":return ni;default:return Kl}}}function zl(e,t,n,l,r){let i=Ao(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,l)}let nc=["ctrl","shift","alt","meta"],lc={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)=>nc.some(n=>e[`${n}Key`]&&!t.includes(n))},rc=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),l=t.join(".");return n[l]||(n[l]=(r,...i)=>{for(let s=0;s{let n=e._withKeys||(e._withKeys={}),l=t.join(".");return n[l]||(n[l]=r=>{if(!("key"in r))return;let i=Ie(r.key);if(t.some(s=>s===i||ic[s]===i))return e(r)})},li=ie({patchProp:ho},Js),Ro=!1;function Oo(){return Nt=Ro?Nt:ks(li),Ro=!0,Nt}let No=(...e)=>{(Nt||(Nt=Ur(li))).render(...e)},oc=(...e)=>{Oo().hydrate(...e)},ri=(...e)=>{let t=(Nt||(Nt=Ur(li))).createApp(...e),{mount:n}=t;return t.mount=l=>{let r=Fo(l);if(!r)return;let i=t._component;G(i)||i.render||i.template||(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");let s=n(r,!1,Mo(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},t},Po=(...e)=>{let t=Oo().createApp(...e),{mount:n}=t;return t.mount=l=>{let r=Fo(l);if(r)return n(r,!0,Mo(r))},t};function Mo(e){return e instanceof SVGElement?"svg":typeof MathMLElement=="function"&&e instanceof MathMLElement?"mathml":void 0}function Fo(e){return ue(e)?document.querySelector(e):e}let Io=!1,ac=()=>{Io||(Io=!0,Kl.getSSRProps=({value:e})=>({value:e}),ni.getSSRProps=({value:e},t)=>{if(t.props&&qe(t.props.value,e))return{checked:!0}},ti.getSSRProps=({value:e},t)=>{if(H(e)){if(t.props&&el(e,t.props.value)>-1)return{checked:!0}}else{let n;if(n=e,ce.call(n)==="[object Set]"){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}}},To.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;let n=Ao(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)},io.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}})},uc=()=>{};const cc="quickstart-card-v1";export{Xi as BaseTransition,br as BaseTransitionPropsValidators,he as Comment,Uu as DeprecationTypes,rr as EffectScope,wa as ErrorCodes,Fu as ErrorTypeStrings,Ce as Fragment,za as KeepAlive,dn as ReactiveEffect,Et as Static,xu as Suspense,Ma as Teleport,kt as Text,ba as TrackOpTypes,Bu as Transition,Yu as TransitionGroup,Sa as TriggerOpTypes,ql as VueElement,xa as assertNumber,Ue as callWithAsyncErrorHandling,zt as callWithErrorHandling,me as camelize,un as capitalize,cc as cardRuntimeABI,it as cloneVNode,Du as compatUtils,uc as compile,$s as computed,ri as createApp,Ll as createBlock,Fs as createCommentVNode,wu as createElementBlock,Kr as createElementVNode,ks as createHydrationRenderer,fu as createPropsRestProxy,Ur as createRenderer,Po as createSSRApp,Za as createSlots,Eu as createStaticVNode,zr as createTextVNode,fe as createVNode,Ii as customRef,Ka as defineAsyncComponent,Cr as defineComponent,vo as defineCustomElement,nu as defineEmits,lu as defineExpose,su as defineModel,ru as defineOptions,tu as defineProps,Gu as defineSSRCustomElement,iu as defineSlots,Iu as devtools,Xo as effect,Go as effectScope,Me as getCurrentInstance,di as getCurrentScope,Ca as getCurrentWatcher,_l as getTransitionRawChildren,Ms as guardReactiveProps,Hs as h,It as handleError,Ra as hasInjectionContext,oc as hydrate,Ba as hydrateOnIdle,Wa as hydrateOnInteraction,Ha as hydrateOnMediaQuery,$a as hydrateOnVisible,Nu as initCustomFormatter,ac as initDirectivesForSSR,xn as inject,Ws as isMemoSame,mn as isProxy,tt as isReactive,Je as isReadonly,_e as isRef,Ru as isRuntimeOnly,Le as isShallow,ht as isVNode,Pi as markRaw,cu as mergeDefaults,pu as mergeModels,Is as mergeProps,dl as nextTick,Js as nodeOps,fn as normalizeClass,Wo as normalizeProps,pn as normalizeStyle,ts as onActivated,rs as onBeforeMount,Al as onBeforeUnmount,kr as onBeforeUpdate,ns as onDeactivated,as as onErrorCaptured,On as onMounted,os as onRenderTracked,ss as onRenderTriggered,Jo as onScopeDispose,is as onServerPrefetch,Nn as onUnmounted,Tl as onUpdated,ji as onWatcherCleanup,Ln as openBlock,ho as patchProp,Ea as popScopeId,Bi as provide,dr as proxyRefs,ka as pushScopeId,bn as queuePostFlushCb,ol as reactive,al as readonly,_n as ref,Au as registerRuntimeCompiler,No as render,Xa as renderList,Ya as renderSlot,qa as resolveComponent,Ja as resolveDirective,Ga as resolveDynamicComponent,Vu as resolveFilter,Jt as resolveTransitionHooks,jn as setBlockTracking,Lu as setDevtoolsHook,rt as setTransitionHooks,Ni as shallowReactive,ca as shallowReadonly,Mi as shallowRef,$i as ssrContextKey,ju as ssrUtils,Zo as stop,pi as toDisplayString,cn as toHandlerKey,Qa as toHandlers,le as toRaw,_a as toRef,va as toRefs,da as toValue,ku as transformVNodeArgs,fa as triggerRef,yn as unref,uu as useAttrs,Zu as useCssModule,Hu as useCssVars,mo as useHost,Fa as useId,vu as useModel,Hi as useSSRContext,Xu as useShadowRoot,au as useSlots,Ia as useTemplateRef,yr as useTransitionState,ti as vModelCheckbox,To as vModelDynamic,ni as vModelRadio,wo as vModelSelect,Kl as vModelText,io as vShow,Ks as version,Mu as warn,Gt as watch,Oa as watchEffect,Na as watchPostEffect,Wi as watchSyncEffect,du as withAsyncContext,vr as withCtx,ou as withDefaults,Aa as withDirectives,sc as withKeys,Pu as withMemo,rc as withModifiers,Ta as withScopeId}; diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/access-point.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/access-point.webp new file mode 100644 index 0000000000000000000000000000000000000000..adfd9346ed8ce38d193c21109fb083d303b1f86c GIT binary patch literal 4230 zcmV;15P9!XNk&F~5C8yIMM6+kP&il$0000G000300093006|PpND2o400Hnu+tz8@ zwr%BH2B&S?wr$(CZQHhO+qP}nRv)M(|EOQBt?H|7&biPdVgk_X|6c$1`u~3uT2~tt zvdbflU7mG&Ms|BG^VO>k%0TKjgX_D4eu;UPO z7-<1A)PRv=809k^Ff)P#(DFzUIXTQ26Hh(oA}g%5@m4$SeefZN9dhWw`|P~M`m3+7 z;H=Y3IO+golSYyN$reWv;elgKzxcX4pLF?M&%XD~uYb7;O?rO$@~y{iK6Bpn{Jo~#OdD#_8OVanZZ#OLfvb_KpxadjmNs>3R zq@KrjniK%Z7D50sAN7_bd0GwRNh0aj>y{e^AlWhqjJ(mqLnKeU!IQM4xAvJ30NVtC z$&de3k~e?i?vj2uYdV0f0l;jR{vvryr9Up35nvl2f!VL0ICqfb z^;K=$rSJCY2QX>`hS~QQ$!n}Sxl7M20We|&7I|6nTGz~7e*7?CtO)c!K9M)HQj$t@ z>BX4tUN?x)8lDuRU5zHZ#;qn6kMu))mL*%8( zT~ewE6)eo9lL1DCz`>G7M=Hpra{)$$zP`3Q(2PaEh5q30Gkh(bx4LJc?^}y%kV^R4T!@&^4O>v?yh7mAO?43c`WiO;3aCu z2oS@(mm|88ykwmng$aI&R|R!v1c2!VwV9`*FuPYt(RsN~4CYmZB!#3{yxunk^HnLn zdc9u^=C6lh@mil4%vFzA>Xj(WIHb)y#~4icXPbEhF&O`+Hgi)1h*7?1GiOA=(C>{l zvs)B!PiazVlGIG{h2wCPl5!NUL?4Y9hs9kvq$0eEa+lOVmjjH!aBt`!GQCN zD^_xss^*eQRg;#81+he>B&jy4+Iz!-vFP)>D&&&aQeJ)Sk60M6Nu{ExAIAqQ5=8%3 zREnBIs?^BNZ0fQt*VVeV)7SNj#MYf z-6hGTd<9Bp0<;(ziBa#6noAW?vL8T;lNn*hB`TrrQm9<%^W_0rw2Z*AA4v`6UIFQj zi2z!}jKJ7eOQlJwN!il(I{>6b%}8MRSEO=ODM;AP+$DE+Ny;O4S0~DLcb6BPxTH5X>j%)P-%w@%CO-B% zNyP*ME_q(LOOm@wQotp7*-7Hk8`};Ckk%eZ0^{%hj-f@_{~$@FhG-EEBkx?=;0vLYLQ{NsU$&;i?WhRpJ@p;RP1OQfW zn=q092F|?OEuSl0QU#U%?a{*)8UX-F7GI{KZg(E2D7FC-)w;$|QY}wx*1UnUO?r)LGX#{QBp=8m!#z zo@69xcUR7yFQ2{UkkzIe0cn!7c9uy5ZM5l^+4lG=?tAIO@BbL8Vv|3=`{3mVE{6dZ;GQ={~w-KP&gn?2><{PMgW}wDgXfh0X|70jYT4& zArz^+v?v6Gv$tP3@O2|(}%L>q8cR{kru!leS zs0&2h_rb|@UVe>Nb56mck=bWn3Y;qol!o2 z(`XQV>N#n_|CqoDBnl$K*%q5u=PGT%*mDxP5ddKDA>#^kZ^ITnWAyxlSMDdr{{PQM z>-^GNBu$r7l^lQdTm)3cjiHGsJAcWHH7_io6Js7)wBE00&C`e4qXru;4`5Ehg zW}bU7&MWw(P0o-yu6{_m-_AjTe4pFsh3x8{MjQ`2C7W+aw?wjO8XFejKn^HX5*jgnPa4PeJ|H&;(7 z8zPtG*^;jMWc)-xx~jyqcB<9cHGKOaVDqWuxT1I9L-0UVxRT)`DIpeWs91)U(x+6O z(uvKt-dpi&Nl6o?h|9dn5yV}6Bv5jkY0OP6sHgSjXY3G7R z=U`O>c~>U=jB8miI>~|7Ob)VOb&~_Em>p!m>m~*;0RI1uiU0rr00026M7)5@MTo=g zod^u0rW+RR&<$lJxkN7;E>(!azDR@=2Y)&X-LmvC8sT4E3DEbkJ_8fQ*Vyf&UlN$mC zJ1+*de-BG)=hqO4E_oNz671EK^c7hdj0odAEcUC7hO0 zZ$WAn!`cwAlAFv);_kl6ISdpUy#{J#Sdi{eL3K|znnSfhMl#eh+~iFoG~~3SAHkUB z`OVJyQf&b)LTVU9r03sXzeac)sglm!!R51LEmiQfx1SyTyxr4j?k|VKzoKhr!oS+g z{3a!aVyyW@&rdgO8f6a~FV8SRIYh9;X)f#3f4aL;-oguC01Y)yGlHvNA`$fLCXN+F zu~~YM6kRMsZ*6y|r01nS9dHdoXn8WWfa2HBoo7V?7FJb z7NVe$Dl4U|M4Sm$6>kkl{IN6+H>KR2bO-d8o1m_tNyXGI^q>{@$3j$v<>($O954v` zY*Zoz?R+nR&gFZfph38%n3m9NJ0fB`@lIR6j%)ySFdB^yZ^(!eOeg+#_b178w;gGX zyyCk5c8=SYn0Mhnqj9tS(MFg@t=1I)-7();7RrRFiV#EHRD{xaItT@y>|p)ZHM#h= z`PsAM`AJgKok~fA?&Kf#4kwoY2cAaI{3@sFb-XivxA4377j5626WSa3Io+50$Hjv? zqzbbcS8H63^gKib6i6=3tG0Y$LU|~jR>Y^J-lMMsdEK^|zd9RQh6Kv5g-juIuk}dH zPh>cO3ZX|2JaTB{`XR5c6x@#{-cdhXQo$SJLPx89w2oz6bHSi~91UNUl{DsLs0y_z~~M(QOQNHIlI=!^65;LNk-8Ya(X<2U;@=XT>0tJ%RCF;Ca`6 zPyPjsrrdgwaV4<-DNL&ZMb)a+{=`pm7p8cVrYdW^{^x)ue9=Jd2|T8-$t8=H2ZbUY^jX$f>H=PIP1~`AWd{Iz&90q+{tpXA`4x zorNHutsE0mnIj>dL^{bby+L3sgWnllgTpW{NppBFRT{>O2l{@54w9nVQuGX_x|;YP z$xVLSnig5+5c^n>rQz@X&lP*)$_@-dm;1nn5Z*SuFu|X{HqUK$Pm?-Y#PHHWJZ#8q zUy#(n=#<@?DI|L45M-K36ktm(#w+|%bQ*OY4f8yYcnU<6w~_|aHO(L^R-)sUPdv3E zhoO-dOFqnnv#9c2=i{^QBb}K?P9onD$ul9uWd7Z?fB z@o2w8>Vx``G?i`>oy8f{P5FHlk?ncaYyc~Q6z*i?Hv^=ed7a1hDImY94A>e&&bef4 z2qi!a;i2{(T=hdBK4yb7ca%_F^Z^V4|8zq`ApFe;^`~496OfK9h;g941Nfcum3mMS zJ!96IzOpYPgi!FPbwnfoC}p)R$0>3|N>d6(#dIEVvh0iv8L=e}zyuuV)uk0@$k^90 z6(&3EsCe<%O_}JcUue*5tqD&Ohg=Js1Rh(wMc?6ilgZQ$fPC59;fOZ@^qW4{USth* zJw4E~`X(~k;w`;={|2rIqv{h7r6U*Funs!~5CI_D6@bbXH+j4Kcb2g0Mu;nAquFcn ze%16EGM51XIwd59=4wG1tn#+gMIc(9M)6-h|tgC=1YxS9^<<}wv zvZY;Dr#>8eL236Hi;SJI(>lAxsl|5RTHqL&wpw@+>MI2ANfzz6k_H(xWsO19sOwpC zGtAHPSWGBJ4g?gR0nMn8@h%pPJX1}2cd-A^YF~ip0fkq8UM8V=V}lQXf;B5`$8+15x)j#+l`U5$c1=0<)^r zKv^m!g(77z+>D@V)zW$XQGC^p71g{JLEXOW22o?n@3xs%vG8PFz z7bp}HF+oAW!fmjFGiOT6L}zM+e8JmpytIBw^MV%Nl27L<^8|s>BMOGYztbTgYxPG^uviLm&5$+r~PY z^QT99vz@)|$=1&P(a~AwT_mgQ(old19a=D!SLvjnWeu!}8gbAJh0`&INa8zk%M+jf z;33BVub9g-C;PLVo%QL)?C|j9j9VIzI5p%Ti-$YxPYMcwl1S5|apX}e^Ht(1k9^fr zuCM^0DxG}ufBF3B;nvP%y0*G^cyLs@p(*DoS+PcZ(6YwZ236o>hyc%k21E^oya?ur zipDDD?(?q4LZR6|CLdTA&K_(}H>c~9&E3P(iw+@zkqwy!af6Cr!LY?;oJMlJLYXwy zA>no@Ws1S5`h3XCUT_taJohzE)0z}d4-aNL)5*U!H}{S&>X(z@DSR<3m9d2>11~Z} z0s*62LKPr9jDtZ8h0Fur{IrfK5jF-D^U1+%GF@KYolW=7l9~Vm?En{6sUYE2xwMQQ z5m0yroIMbTro8QKg(+Pj#F2sWV0U-2J)LY!X9p+pE?iy$A8`bnRS-`O$B|XXEkuqG z85FKb2@jE!>{Bl^B@0%N;2#VG2~|W9#455WTf`eAy2hu^ccMBsh@m$S^3jsp63^^nzCk z^@}LfO2i2`+22`T`S<$TbpM3U*^+8r7ef$%HB7O+S=;M#&lLXkwJln$P{qh-Kz8EAiA-4xv)RknyfA_ug{M4 zcK{@Ih|2Ei)sKl%aXE83n=Y^X?cbB_!%`iSvbc0|cb-y5)JkI0ak;(eKbKe6SGNw% zE2n1B*v(Scep_;S?X|!E;WvNTwm^b= zMe$Y2Skt)E5gPB#FTV1{sWDl2D|8r1{R@9}xvdYr<1~UHvg1|&l6g6M%CBDj>%ayw zxladxN#};yGkzG{7B#x-EJ#O#Z2Gvr61DjM;E>6F^tiwV)u3K1r9Zwors)qb;6S`` z2_#_wMn1NFMJ!T*(jvLLrvx?_;-ca!PBK)#$k2FuVPMoyc!Q&JrPLmATfiNOF$VHB zl;lI>M+W_x@dLH$G(~rKTnradpEi-;-Tks~I}l78Y`0$>dUI>4HAmBwK@b_Yg}w^9Uuo0YNQ*fIB{qYv;chBMJXCsXc^%W*IJ(ZYJA7v;ig5^T18iDpX8KZJt@(gfb48NTZt) zd@26&i~?zeJciUHZdV<#Gn>r7vvy`kRRmn9FYhK)}*A1936;I z|7n+bzI*~i$O;TKO_`^>W)O%V2*^bGS%JGs)7%{KVgk4+FA9kn7wYJli*8vn4OBOV zlyw)eCoh_-Jw?EC%$;-Jut6e}fq_=Z>wCsm`mr}N~*P!0hs?(Wi^OsMC=#p8lA!XF{u5ELHF;Ljd0DvCH?TX zK^gjkN;4B$QXaNydkpyPT2TAVDzu=0WISv_6@3ja6uufZzWuK`p?DmiG^Al3J>dM8 zgBr{y%H~LoVh!*|e+Zn>?|)G4mL zE1wTc4Y2&wzrcrM5*QjZ5F?mg-+dfD-rqg!a~V8S5}rqDKzGF-KN>^A4_@{u2g#Ju zKRA@HI|Bqa;LJ;(_O-L%n=L8bK4upk;l29&%H!|s(i82&HMd) zsk=1p4Tj_XcraM%_Lq9y&I0CCCwwqPFw*zNzReEcS{)k&pVrLI29}a4;MV z`*~gz3k!Y$QQh5*M-21hw|(2_rAY}OLykZ5Kqt?a#k|wWi&0VZ`@>Oj)u0#-NByE0 zCHrkSSXwH^ z-9gdmc01V|0|F29(m%ic`5&FPARsYOv#gZq_OcRkFe#ZHt-0~dK~tyOvxC@pDIZpp(l~low9+CV%_gPyT$yXf+O@X&+or@W%v+z#cJk;gfPA|7>LWLec3h z^}G23$_wX?4h~NvU^@78ue0k*C=`r!jpT4-W6m*5pp2#v1+fN6TTP(LD4tSfHpETa zWkcnyzO{Xg^&zypqn<*oo*cQttOr{gS_~phb9%_sv3De?jry>YOt$iIU?QkiAACY0 zk9tYV7?+bl2w{;yDjT^q!i+N4+67@UN=T!zqINd%p%me@i-{6dBzZanZ?eHam0%Rw zAN4#jRP*K_UB#O)GOpo804Xbwj6h-Jcyfk&q)GWoLvRTl1<0D=MMozu2Pg7`c`f|7 zs3aXtRn?Pb{PziU`09~-T0jXpr3A`so;VYk5lvzw`K8PdL30R%Do6tRW;5Y# z%Mm5j9h@eKicNfC-@Kl;lJme09H^q zAO;Ko05C@YodGHU0RRC$Ng|F#BBCJ_xfGNr1cbABzW>mjb=fTSF;u$Oz&6z!Vk2qgw@^`Eqxb?w?BX;uR4kQM> ze+MO?dUiD#iN?iO9DyhN;73u$iYe27u%>ZUT~wWB(NcPU*dnwYWXldFYbt?Lyl3?X zfoRx&+6-m7@{dLO)9aUlOCjf|$6CU8L+@}AV_O7KR9(2NZO^cqh^u^yVP!F~_+a^b z!CS;DyHJ;#_*sed9Ac`ywPsX+&*y+DlPxRV+-1NCrP2WYxRKQ`Q^r_%F!KsuK#r07 z?EF=4{cfMv6RvSr#8!t`X(bNd6D&L&T{#GEWa>O)5_^GepDxeCTE%!+;}krK`p*AR zI+6@vH3l98DNiI*CZyqMpoLPbItDOfWvuuW?z(5HsnKV2PpO!$Bcp=r5sMl2iPde) zR&qOxM0|UQ3;d+k0cby!>E@zT<9!j&x}X*RTz87DL854l)QrztQehUXFV(k8B5wkb zPMS?MSlQ>pq#W>CtZ@D=3)4+|_ymLM-S7(TYoO4}7pN*>k;Qlv?aPGVXRy;&2*lehfEol&go5pea*4cM~?{4}sC#Oxu(` z2S;%;Zcz9g9l(G9{{OJZ000000000Wg9!VH=zAuXkJnwKa^5UD(G}I|VR(NNYmGmH z=jrQ}#heII)Z@+N?0y?1E&%V8>g@@kWP=EU5V*{Pq2pdV?2G1ktHRscYc31$6Q8y5 zn(#L_y1XV0Cwh>9BqMrGcEk0#9CkeD)I}4h#*u>*7O{xhMB{Uzx}A@V_fH5v2x;Tbgj$x%iaUY&Bj0 z3jN^wp9$Z&B9m_6wow|y>%4u$&gSOs#?TGqU10FqV8}g}p+e}v;r4qXtFCrfE<62$ z(w9wMCidn3Uck{>aK^-RrLEr?hw6<%bVIqdkD=i1fWdTIq9~kf+H)NgDi^`{t3$tl zLK5ThK`(F9P4iJKg`zb(PZ%KD;Y5Sd<;PlIG9Rv#HQ=!Rk_3cc3y0=Eg(bf6vC%tH zeozS!_xl><)s#Me^O6$Zg6@8o8Ai34rP%U_yKZ6xD~5T@cf1F65OyOu2vQ*brFUy` zkHIg~$hzPe(Snka!PKD=;UD$kPc|_HyQTD%aP6SHM@r$>YBRHA`rSIpO0_K+*%T%= zO_U=F^(3$uSHC5d$v`*2Rx55gTmIx-mnf@unJu_0MdKO+9z}`Olp53pNHYu#c%4eT zdL%M|d^ZZEZ3!1N8jUPb<&6dp#gKI!z^uBLy+c+(;_*%!SxA776OK zNQ~OX6f|h3pzyI_O%KGt?C)A9FQ%ROBLX66ggI!t_NiyhJK*#HR;gsMUN3z1!0p>a z%uu*TO{m=!9ft9-ooJjg6-`;Zm`nPABYj8ZrV(yLiN}v;riA( zb@@|vzw?;(EsV2i7owOibDgwu**-lIZ~q{bqRG8FffAE9;!daj0f%N`^2ApvIB{xIu8tYS^T9Ck!Tf^v}d6RdY)|JWy;t+XK za{LlLv4W^@02fTV-nnnnb|9Jg_jF-{G$F&{f81Te;rS{qB%0yN?I9_6nJMM?Adk3; zsd6C6!!6_FDqvh(Kj^@I2u-^-%|RRm>dy2Yp|`N2p(ezs+PE^Fi{sU%K!PFdyXm(Z znzw_(oUsD-iD#Mk$fW0X`yNeW0e^80x9lcO*%?iz>c-iFKpz=oksp-<^(6w0WN4$r zOKpj`?CfacvO9}E`J@irLt8D7f<43;gYU_}>l(rX1#Ha!1-UsKH#Dz3FTe^x zYyQs^5kqe5z>9p6woly7*|TSqL94{E{SNwZllaPnl8f)#t=2pYe9L`VXjsb!wGgwA zhG$cIe%U|QFOlcnEIIr(Fmk5&%g7V?Cw7|t<%x6d)E|9Rldq3xBJ4r`}mx&O%k;+#PA+DHo8@&`#p@D4i z$m?@x97R6Psig(UN1u&H@tr!yfpdNr5N&ko>^E2i9Bh-Osj$|_@-N#YUE>-Kh$@IjbQOM1P>e=-i*0Z4u_`KY8MpY7MwG z2K{q*jIEo1u*dDtX1qt*c{`$#xsR;!ZgY%MIrmK{{d}!bL?K2AER8m6vH_jX z1@32@BO53ch~y8QjPR_*;CO8|iC4V;p%z1YAO|X3p7`!Io@F>b;Pi)8c)%>NF~^DA z%`_CQ*L%F~Mhbikq*n8JJ7wv1+7*PVv-x^bsOl{#;Sp$&M=0#o7ZR6J?p3BW>Y-)* zctP&>ovE;5o#F}@&PF1L+C^5jb7@QB!KN)z++3vEa+eJ=+wD}q;Q4&^wKkt_Ay1Ls z8yRp@3=o|j@tPPdZ=V$LTSdYzvr{m;Rn)_?5vD~F9`jN>KsgH;+7k6FRA%8-7}fe~HQ&SfqW;fe}R^5)Wb)K~oi`gqV3 z=yqL+m(Xhfd7bcdm?HeX+QX%jbuH#Ie~dQHdR4!VWI()n)Jk+0do{-Ww>y#CGx!V) zPT?hzWdp9tpxJv=N5FoC=pH7CNb6Bn?(m2iCBQQ}oMA^3v-dOELTjsX^_R(`wfYe| z+dk_EUudMv-4u-+Cf$d<+KH*4H`3MQRfgaIMMBIbhvvmFT2i;-4W|5bVo)oEf6Ka2 Sq@0)l00000000000002O9kL|= literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/camera.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/camera.webp new file mode 100644 index 0000000000000000000000000000000000000000..2bfe5ff8eeb1feb64e3b26e67fbaebe0f321d53e GIT binary patch literal 6400 zcmV+b8UN-|Nk&Ha7ytlQMM6+kP&il$0000G0002{0093006|PpNbU*%009ieZQD4~ z{$pSB^>0K>0AFc6XJ^QjjCc~JfI6i<3!J2!hnzI&c82WE(7{uB!?x|% z8~y*zD^6RB2Q6X08tBukPc z+xp-7*jxA8{YR3C9#m9RR4wW~A|}Ax_Wy1F|G)b9(ht7TqVMOkmn>hoa`}>(pZ0F_ z;++K}15j+W`k#Nd`{Ffv&OEVpLAS^91(_<%=WfqnC?piNA|hZYj(*+gu82TVuHElx zBq`2t7Dtd|R&w8}K_mXduTw|@5CKBq+6J~lGIi<8kpZG~-<>1{VJRX)a&7Zm0ioQ- z7f6U8d;}!-w2TV?1xH;X;gViR`U8O6{GRq=e*3@DRS!7ZiwL>2s_Gt3)?{bB(FL3n zFr~ZR5o_F<_LTj-epuaDP)U^zQBa<+S1nwxZTVZAic0O|4Ler`-8oHD-GTEp zl#s|9V&j2sd_yccdG$H~N5%oJY#ZQ8y(H|Q0PMU^ z`G6h1tCqeLv@X-|Q9E#Jj8aNnARM1yqsj|(U<;*uMud|JVtETX;LbRel)V&wz6x}} zW-9rNaQmaMwzfnor05xUAY6NuBk&!CbfHLy{yZLit&f;3Hgw|;Vr3(>qB@=fLhuy8 z3l@ELRmVh%z!g5Y@Qox(8TpP<0D$aY@H^KZRK}Zxoqq>lKV?iZ0IHR5?%=gQbdh79 z0KNni6uy>PQ56qeKk_=OzGa8CRndjX3yi4p95_Z5OYPQ*5r7S~B|rsm!%niLh@AV} zY$v$G6Lc;VSHzuJ-kh@LKm?evX<5}8}5O% z)zHlsha98l7Ou2Z!(cCt7NVf7B*@kSE_G7FsBoxR2b$8t9?!a};R_Ewm9?=|wpV&8 z!7}5*jC;J%M+wG^^#Er;!Q_lP`$v7%Foq&YhXs0ENzN?1Ge9*QjaPCj3{}H~5KhF; zdC1XlHB6=mhaUb+!_+W|@I0VD&R{i6%x;hg(cU06OmT9@fy}3dzbBk>uo`AMbtgPY zfYi7phNxjqm}n<`Xir>u&S0MKj&P_NW>e$>qe*_P3**;@s9}~nPwDICSDi5HDB2O> zU^UEk2M1nBcn4@fI8-YPX@?}geuZhzDO;i$dR8_UAau3mlUZ5$$A&P+4GX<9QmXq)S9HxfZgxsisf}I|@I7dP$b19N*R=8GrP|nZ> z?&DB3%nM1Oj`dq=511f94~avRk!0gbHq?p{DrT+&_n-sPQRNc73{}HC0!dh44zP<| z@HOHHHO#l6`NmnOWiCk0QeEYMA7d zJGS684@88W)G&rXhq*QgP{22ut6{W@gz}!$6%Q~_O9{sGCcpvrw8u5hz*p7K+ExB8 zu0O1X4?}4AWPyU$85CwzSHsgJ){i{MD9@KrLzQ%!Y=MWk0V>nnouGz%M?8f35nu}7 z#!p6#R-#XE$B#|WgIPf7Wyc%dxX2EQ=tT+8$Wwj;&nn_o;v|(Xc<~C)7gt2ZR32rq z25xXcy^v@W8MV=eP*y$yM_l++6J`uKOM!df4uH~PUdY!~@eTzzNC6xG4V78|rNz7m z&lXWd!BYhXNwx0ip;qMvm8&9LYIHgEfj!oosq!dmD&u7x$;f^|KEV_Dm67nTTkDBS zUwM@ij5Y_`z*EwycYK%E?pH_o{}=*}@)P}J^f}7`PIB~p;w6RLl|~0RSbvu9j7Gn5 z!&#=XOY#h_J))A5=joz;AwcRUvP?BP?dFXF681@2B&6icfG3J7#rlJuNI1;ef`WIo ziP36}OY}6DgyTmdb}Nitn~*o{qsfK`iz&v8$-YXaK4vr<`2({vvZ2v!p^eOzSjiqn zyTvy$n@On2ZbrYwHZWUBl7j4FG+f{}GW$pgnAOJUIBp7=U5G6J9(dNMxm_l+0dWLC z{!!d0`niMTt(7JKW{!+CsxCZ5c*|rD00Q#whmE?QUrUBx+OQ>0cZxC!kM3}Wyw%9m zFH0DummYSElDv`=A$fUHHKX_f?SEIVB>~a|5|aA{l{3nZd42I^k~ZQ`Y8%*-WXj5# zxl9l&*Ws5Gk`xg?vV#LjrvBcsya|qFYfjpcLDGjL^vR4J zB9keN3<$u!LBaANdVNTeF%k9-3dS;?qt;W(DTuIVVDK}^Aw}7Puzz5wG&v0}GK6y@ zN(GYQpQR8YVQB-&211@2StxLn9e#!sfgd3qh>(YS6b%xQ&&<52Nm$R;27r*KzPdLk z+%;f5$RunRZU7*&es5D!eL0>T{7)tcK|2X29E*^=u((l4#pQf{%pQ^y5f5b&SRhP@ z2+0epTa;5-u2&}RB?+;GKVe*K0U??4UGq}PihJR!{Ujld@HdQ$6CgtJ;?lZB^;B-a z4w3{!fDnj37hOR_gyh-T&qb){(Rr6i!r4y3O58z21R(iuohbD@yzDv&mnpxJbO^|` zwRDs7^J^qrFZ7eAwk#qbe|tbNcWol!F$r_YGpR(tv=(Z4 zqwpz;NO*l!z?bz=>}-exw8E$UR{(fYAMv|wBp*ngNx_V2`Y^vZBvZ*$k~ESfN7)xA z3n*le3vtMHBmuId2GZT-*yd}a&Kqt$2sCFzN^VtE$Qgd>TsA2WK5toi3Pl0Iyo>cW;JQ&v51 zbZgx=WXn~C0!z}!SHaLrf3+`f6dZGR+c{fOElH9c3)@F{q_5pR~ZjGCh>yxD73 z;;}TkhDQNhz&%~3pWO7#=Z){nZ8V;@^3yfDe75MBQdTZzlAv|3ZyI z(MJ7oc}vxJ_-(<}I5yZCs!D*KfakziP>xsbfd< z>Cot{Cu@`{kTb$KTiWy2iin7ejEahijEpe1ooEHR+q?!=P&gpu4FCXeO8}h#D*ONd z0X|hIkwzn;rXeNrYCymWiDz!%ap3t|T*&8`Z@Tbww&wYO^SAVq{xi{=sAGBB{QL1o z^^eM5@_fN5DEwU&KPdGGczqZ+px}G)3GyF4{)GQX`Vaiq{SW?c^nU>#%D=SwV0%LS zrS>`fe*f%JayfRuOSS@CuoCTnmuv*PU?tkON-B=-)R{m6SG}WCLO6KFwUYb<+C0r$ zA`VXZjJ<|(|NZ;8EJfR_&Ljh$;kw4lZF#DD~0 z^{|Qj7;lzt`TiM~Kc)PgmEQls^r)xjE~1`je~$1e;-e9kVMV>L{OSSr7`_mF?adp8zu~kG?QHT<8I1Kkte$-2HugP0($D*@A1^vGFd#{33k6@ zn!Ug+#S%z=VvF89new*2>-KY&kG<+)0~vRS0`VO27thLIbnM?D_|Mpjiq2lg4!COO zxbcKyS!zdcbRKtu{=(R@@5fzd-p2JE?OWr zZCH!UsRV_9IO5M(<~-G#%o77j%ND}tOF@fn$$?0Qd+sq^(Env0)LR0{dHGgK)WRzA zAcTIl4j21vp3`US*|j>RV&B4)u3fMa>caf?Q$gX03??eEO&!!0I4C!e1W-u++Bey1A9N z{<{!n!T| z3<~PGPFp_3DjGDYpAp504}y1w6j?0i6yoC5SVI2HH3nxBq1*e{>ZRG}`aL$m+qQc$UdFF-Zj`|%N_`8O65PW0wo9Y zreG!6W*5}7UyO;ix5qrp3>C%+a90m9KWriEC4MvoFD@@OiGH?lr(3S*7zg)c0Go2+ zcSc0GvS&kn4jk!?wPZi~y>RlF3ug1z5N?P}yY67wA{x*vd%!DMx)+jPE~iAF%ok-P zA!p|!|JRY(??C766+?ckG^))OcTTnb+y_aF$AYjw(+pI)%!{8`+ia!_`Bc(tqXOR@ zbBM!ekUY0^QpWwq>=ruA7kyfTJTI6t*y?5n_Kg&@@9tC`oq$ke;g|$2_vA|n;kaNX zA@5mAyYgypW#dL5MEa!ue!RGKw9^xL2M@r+D>pPZbw0%Peh}IQZAFG#eO^{$famho z4TTFG2;}+RHSVOw*9*M*vT(cAE$Tk}F(Ll*3Mj@!FF4|Vz0gAb`i*Ec8n>Oo3i~U+ z=l*r1+Ny5g>Fz!J*HeZCO9k}~Y=I>FL&j%Awx}_mG#EE&MZg$gufXA29yT0-j`LC| zL1T&bx?{kOg0Ci93JbYEXWihydw30B1O@L~bs9&vwvNm-KAd@@PAjIA5X^*fAWwQK z&<|s>QryiTk)i1B7RTgxdZvCA5Bkwtx&G_6sqxNj^@o~cxHT9^Jqr-F_LJnBSQ!&c z?>T3=&khZadIWXx=4*Mr9`CbEyrfp-W#K5wn#94*=XO01=dwz{mGs~)O4h=)(6K6M z4Ovf?AttwN7?v2W#V!3e80kS%kQz?whTTqS_Xh}eY%57` zeM)^=y3K&Ptqd6+?OPJZ{1LEyAQuirk#GOZ$4;AeSi~Qe9L3T9Vn#-Emxl^Vl#CT& zJN6d@zZ}!(3tj3w7lVI2{o?u0PGEu9%tR3zS1ya6qomjn7`Up>zEa{nj;U}kki)OmS*k7YI2w>M>- zWfm)LMkugt8P3|XQiV(iXTQMMJ)QJnh5_ks)~CTw_qj$lNPGQKqH)9w9w&HbpurS4 z)$->rIYfD!rEhV7zXdV{EtSxQ!^=OXbn6MPe98w+2OkN_ZDd z=kYiGg?x^p9Isj|(MWq1)xex{Hh=l@rn$Zp3I-J^$hn4LH{{YFQY1%h5V(RQQP7OCD8zs$8V16M5R`l1Dfubd~gchYOb z(08uW`Gp3_jUo}nAuef60mHaW6U*u39Ej)N_BTEl)&Z z7BNV1=K=3ll)a!5`MEljbpY?y5VPEF`^I^C?yajKb{X{yy!p%e2b$ErK4~2W{wHQ% zEC4&eD(8?)z=(O@Wh}Ts)50_M@{ZQ%7c*<7$>sl|zE7(Bi@&w1klF0?#XR#3?>|P) zNd`30Z4<52Tl@*v_J(l_uh#)&>VxI9vqkeu(9nBbx;htbI6V_2jRZPJbt9PBUK(N_ zxLPk_BlwkB_o3{Qn7r%l?uqK|!Q@-c#vL-S4zxK76)rTLBkN+=&{H;Zu<`f1dKXb) zJo9G#_dl}ki(3zm(x4(Gk zD#BsNk2M=^D_b8lCih6JEJLdT8>1RK&Sa=g071^}F#X zW*`;NGP!<7_pvvw={6En{S9(sT1rv}jz8w-@V8Lg}{%ELQR5(0R)BwZu-#REd;J@2vX3~w<_$sw~Z; zea7@pFiX@XBA7PLjM_>bQj60=ozpl&>;(ZR$t5fP(Up(Q7U+{aL#VE7jP}-Lnnj)Yz8ik^A39)$fLZ-cGwF6I7xiDbUPe4gQ1dL}G zoqu8LRo`7I<4i<>m#|fbZ#)T3P+-P%YiRadaMhmzZWd_P#{@?;;y%sr%yVF##k#)K z3mJ?jZ53AuY#8|HX*?=&n(7{1{5HhEz|8=%3@F+<8~4Q=;`qOLhp_5-?ZI~B9q+x! zvjF%nFK+mBjWWbxqi#cHW%8rR(bm-+#t-$~-&jWBM30KxgdnL}WKUizSU(I9$O&^ADZOvAxz($x= zF_z5rfds2p5g=2qI+}hz_ExBKzO3D1gIANWFRhAV)bhiUUHgx&l}d3kqzv>-doaLB zPk^z4{gPhM{J2~kq%gV5IxlvLY*-xVUxikFfPOwtqMQxyI>E(J|Ipz9Ne2^^@z`p< ODRy~`fB*mh0000lPGf}t literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/computer.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/computer.webp new file mode 100644 index 0000000000000000000000000000000000000000..9cb4841ccae12bf719011a8db0ade01deae1cede GIT binary patch literal 2068 zcmV+v2Pc>g$mvWHp31f(Bq+m73|ZSA_>Qd_reJF;!}&^@*t*_mzIwyn^1@55#- z?;U(7rPQyz&)33;m;gfm^?$ZHYyK&m4H72FMglB^mB1C*Nf;~%C1D9{G)Ng+NLau? zt|);dIopWgUwYHRFsXV%51$3-7XAAf^|?h(b1C7W`ir{`3sH!-%!yEyGM5%KOOsNGag`nUfso#N#po^As1XMIB0;u=(fAu}P zWJwXAU=D&*F364mMRN>XvXmm=c6Lz&j(})ua7n;~P;EqM?Fcxx0aOw*41s7Z(ZB6h zfZewksfVXgq;d$wK%ZJ0(AceqnbLMjnfl6lj-XMj*?OYfs1no^>?GUJyN;Aw6P---!bTt@1NKl! zCSm7)fAji-1axZIg%eDJYHS2bw#gdcp$FD~E)mTJ0hZO`zSHJa&XsH=IUI9d1)A(3-TLe&(F_ zW4GO2i{b_W1~FbEY7GK6h}X{w-Exa!nrp=5Eh+*7%zfsyf%}yaWf{=;ToG*zm_yGC z+f#oUjb<58lj|DQ0819snUae=@R*mgw>Nd`0YK+Y0I&PKMf1@bfr zY{%6=|Mh?oC5w!xX_@&VIf1;H<&zaiBQZ3;W}ZI((bjl+S@eLjtp86V_GQk!#{?Pi006N1z%jH{_0Qvop!3|-Ep;WYf8*8uVx52gYdP;qnw{W0ko>f}29)vOWI{RA}PPMEGqkf_CH>X#hp#{dc!` z7=UDyueNc-&teD`=vUs?P6!p}yp$J}`gDJQu!RVnZrMNVu2!ISx>Avn?VKuNj@$gb z&^B#>REHjn#Ok{|sVNMtDb4W(x(UQ%`X)Xc>x5)M9vR;Xq06mS5cfEqm+?h8uD)R#x+(vKdetCq0# ztKL3vomuK5{`a}uJIr>qbF2E_VfA-}y87tX=}3#jFw!q{^3ZlEfZwT$^VeodE}!yz z{nBhfQ8n@Vsg`m&e*ia4+YOXo`T7v-y>__9dhZ9$#4I# zRJH&8S)=WdNm-Blt?7ErEHt`kbGq31r=FMdrqLs&cfj2vez4?)f;C^PUh26tc0%+< z@Z#|G^DtcO3wyTRxX{fqvE3F`SnRRt^5L?Emp~NIpb$QV{>dG zyHfnU;7-T?=UB+%<`{;7Il?%f^T)Ax&1JHdCMIb<94s^Z#5yHCc|Oc?$=7OP5Xsk6 y7Ji^VEYfTb;-rj4QKP{!u^eWMo03Iyxs)SVFD|+<6X3%D00AId!5SEV0002dmGR90 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/desktop.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/desktop.webp new file mode 100644 index 0000000000000000000000000000000000000000..32fd6b478ec93235debc35e9f963d0be8e4b7175 GIT binary patch literal 8140 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 KAc6n@00003v6rg= literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/game-console.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/game-console.webp new file mode 100644 index 0000000000000000000000000000000000000000..b06286c5aaf4a71801728380eaf19de44ee1daa7 GIT binary patch literal 6856 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 CzZ}*8 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/gaming.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/gaming.webp new file mode 100644 index 0000000000000000000000000000000000000000..a1773f8af048248e1d5a5202bb2faac28672f022 GIT binary patch literal 5996 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/home-server.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/home-server.webp new file mode 100644 index 0000000000000000000000000000000000000000..a0956e92352ed5532f8bd05452ee9d159b70b7e4 GIT binary patch literal 5648 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/laptop.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/laptop.webp new file mode 100644 index 0000000000000000000000000000000000000000..10d0a91c3400e431f4384b4a34e9fede2f750d15 GIT binary patch literal 6140 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/manifest.json b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/manifest.json new file mode 100644 index 000000000..3ff0334b7 --- /dev/null +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/manifest.json @@ -0,0 +1,37 @@ +{ + "version": 2, + "license": "project-original-ai-assisted", + "reviewRequiredBeforePublicRelease": true, + "icons": [ + {"key":"computer","label":"通用电脑","category":"computer","file":"computer.webp","generated":"2026-09-24"}, + {"key":"phone","label":"手机","category":"phone","file":"phone.webp","generated":"2026-09-24"}, + {"key":"tablet","label":"平板电脑","category":"tablet","file":"tablet.webp","generated":"2026-09-24"}, + {"key":"tv","label":"电视","category":"tv","file":"tv.webp","generated":"2026-09-24"}, + {"key":"network","label":"无线路由器","category":"network","file":"network.webp","generated":"2026-09-24"}, + {"key":"smart-home","label":"智能家居","category":"smart-home","file":"smart-home.webp","generated":"2026-09-24"}, + {"key":"camera","label":"摄像头","category":"camera","file":"camera.webp","generated":"2026-09-24"}, + {"key":"gaming","label":"游戏设备","category":"gaming","file":"gaming.webp","generated":"2026-09-24"}, + {"key":"storage","label":"网络存储","category":"storage","file":"storage.webp","generated":"2026-09-24"}, + {"key":"printer","label":"打印机","category":"printer","file":"printer.webp","generated":"2026-09-24"}, + {"key":"wearable","label":"穿戴设备","category":"wearable","file":"wearable.webp","generated":"2026-09-24"}, + {"key":"unknown","label":"未知设备","category":"computer","file":"unknown.webp","generated":"2026-09-24"}, + {"key":"desktop","label":"台式电脑","category":"computer","file":"desktop.webp","generated":"2026-09-25"}, + {"key":"laptop","label":"笔记本电脑","category":"computer","file":"laptop.webp","generated":"2026-09-25"}, + {"key":"smart-speaker","label":"智能音箱","category":"smart-home","file":"smart-speaker.webp","generated":"2026-09-25"}, + {"key":"smart-bulb","label":"智能灯","category":"smart-home","file":"smart-bulb.webp","generated":"2026-09-25"}, + {"key":"thermostat","label":"温控器","category":"smart-home","file":"thermostat.webp","generated":"2026-09-25"}, + {"key":"sensor","label":"传感器","category":"smart-home","file":"sensor.webp","generated":"2026-09-25"}, + {"key":"door-lock","label":"智能门锁","category":"smart-home","file":"door-lock.webp","generated":"2026-09-25"}, + {"key":"robot-vacuum","label":"扫地机器人","category":"smart-home","file":"robot-vacuum.webp","generated":"2026-09-25"}, + {"key":"air-conditioner","label":"空调","category":"smart-home","file":"air-conditioner.webp","generated":"2026-09-25"}, + {"key":"projector","label":"投影仪","category":"tv","file":"projector.webp","generated":"2026-09-25"}, + {"key":"set-top-box","label":"电视盒子","category":"tv","file":"set-top-box.webp","generated":"2026-09-25"}, + {"key":"game-console","label":"游戏主机","category":"gaming","file":"game-console.webp","generated":"2026-09-25"}, + {"key":"handheld-game","label":"掌上游戏机","category":"gaming","file":"handheld-game.webp","generated":"2026-09-25"}, + {"key":"home-server","label":"家庭服务器","category":"storage","file":"home-server.webp","generated":"2026-09-25"}, + {"key":"network-switch","label":"网络交换机","category":"network","file":"network-switch.webp","generated":"2026-09-25"}, + {"key":"access-point","label":"无线接入点","category":"network","file":"access-point.webp","generated":"2026-09-25"}, + {"key":"network-bridge","label":"网络桥接器","category":"network","file":"network-bridge.webp","generated":"2026-09-25"}, + {"key":"e-reader","label":"电子阅读器","category":"tablet","file":"e-reader.webp","generated":"2026-09-25"} + ] +} diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/network-bridge.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/network-bridge.webp new file mode 100644 index 0000000000000000000000000000000000000000..479de5db2e3626c9f2aa870da0066fb24e0f9b1b GIT binary patch literal 11714 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

=j$=rY5u}ZdJnP{L0$Jb<*S-oOix+wa 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/network.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/network.webp new file mode 100644 index 0000000000000000000000000000000000000000..5633a0eab666ed728686f2982ab3d9cdc2d8870d GIT binary patch literal 3876 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/printer.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/printer.webp new file mode 100644 index 0000000000000000000000000000000000000000..fa871291d3a4f1198a5359d70ab1c12b2bd5d530 GIT binary patch literal 3924 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/projector.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/projector.webp new file mode 100644 index 0000000000000000000000000000000000000000..89bf82272a17f3f80ef6c34778985eda3944bf56 GIT binary patch literal 5658 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/robot-vacuum.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/robot-vacuum.webp new file mode 100644 index 0000000000000000000000000000000000000000..45a2fe0bf0c1a3477e5630129185804563e3fb3e GIT binary patch literal 8206 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 A!T$v~(nR3*HGi6fV8L1|jnYuD9+QpN#b(f&c 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/set-top-box.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/set-top-box.webp new file mode 100644 index 0000000000000000000000000000000000000000..e63beea69ff366ea1a0af654b0d699f6328d42f7 GIT binary patch literal 4060 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/smart-home.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/smart-home.webp new file mode 100644 index 0000000000000000000000000000000000000000..1ebdcf04e8da07448a6c7e08876b44be022311df GIT binary patch literal 3984 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 literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/smart-speaker.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/smart-speaker.webp new file mode 100644 index 0000000000000000000000000000000000000000..6f96eed731a17ec5055d37489705dabdebc77a77 GIT binary patch literal 11188 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 I000000BPa9hyVZp literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/tablet.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/tablet.webp new file mode 100644 index 0000000000000000000000000000000000000000..5a76f4c927450e024ce9ae232d23eb71e782e818 GIT binary patch literal 1976 zcmV;p2S@l)Nk&Gn2LJ$9MM6+kP&il$0000G00030005}~06|PpNUH+?009X_Zre79 zlJ5Th$La1pqW=>hU)0{#mLAtj;^Quqjn$RLMQBX@UqcXx~2o}4{VJLo`s=@NcE98TO8xci2M^}li-F8ZKp-wF zIF9(YiYv+j;lc}sa^xWdL;?~jn>mEtkJ&hm^?xpV}l?+3E>@t+V!mux(51ZNOZG~whC9Ln;O)henS zvJS8_;4&nYg6%f}Hc-%jK_m<@6(JI;0#>Xg_`5m?S5j+943=$}GVMd@oqPyrwG*Jl z6R?#x*?kzt6l2=mt(<(nB`Qw zyZ5HQlkfjRQ#=9H55U?v`4Euejj(tb!SuH}ad^|;;t6QA6JVcw#m@**xiHa#KoTZ> zm`?z$Y9JFm3IZs)zk(o}4_0oIPmX8_d~VC@W`_+3Qm7Jz|JcLM+{Tmu-k>UIGxBPkdGELRKG zrIg$dQabkj79k;p%Lt}_(5W}|7o}<$LG=Z=z^WNQ@w^^`_zUm7|?GnIN-QWn; z6)u2)UO1p<*U1(@M_}zT`G#1zhyrHIO9~TQK@bSwm*p)?O~Q&6{=OdY8A&#i1=a+z zDqjP9mZ}@zg%Rv^HQ=IPp)mgU!4YuT9+?Y(r9vKNh=*Q;0#fgOHsf>L>6O!|hTMV_ zYw68QTl6HDxTXc_;gpi#hTA2+80>tCG}^d|oGVvuJ(Oz?FWF#Ps{&)vE5k3=BS1lE zy&n?SK!(}8O6Ryw3wcg&%fRraN?3w_tV|8C9W)5SS%kb58DI%5UKmK$A&hF~sPK0q z-bJh)B!r?f=@IB*SSZ`Vv{7mfw9>NAirD6t2%F0Kb7H9?u-Nt`Tn$GBuJei-H`75d zMN*16kfffi4oFGy5HO=*)OqU>h4?c7o&EZGMy3X!ho}ltR(2d*Ptm%mXx&t_Zm8Ai z|ATFUd&^+QJ?W*hS=9=SQ7f1VJKk-mY&PWUf=kD^bHuwfMSqC5^5KjPBCTctes?cJPt+R4- zHtj}N1y~ChA{nSV1H6CpFLzoMwiQFBaS($6=) z(01HV|KMKAR5Ir6gM-2RCv-fA;h*zfEX#70$Wb{9PVjmxF06h)WjTzKJr1qbO=0em zYc1)Jf`>2wjzm4v)3#gH-iXm!`h+VdvE39{}uxZGFtv;9L?) z1DD9Bsr@QT{QBx^oM%6&T4>DO^9`HxLE7Oz6$wz0{rp#Dr`rhpLHg>-(3lGW(>&=Z zW?r~+f$|dylwaJW8=^RV&LIi_z-5I1GobJV3Lho-7qGAygzs1J8CBmUJ(?iqXDqYN z9!rAITKb`c<6gY`4->0T_W(yKDfCM$El!Z1$o#Rk!~d5?iE|hVgYn<`@E$E$o*eu8 z^2T^t_ve{q0A~YU28}R!=3&Aq70mxWUNLdf#BKMnjVdjpAeG2+Sk*~2r@<;~(Dp;+Ek*!9DRBj#ux_kQY zo!LolWSO99GD(0Qsn1N2(cv2{9A3Y%&fTUfwW+13CW&F{pV+CDJ6@*%4}>mL+(MYa z>h0vH;}p#J7`-hRO5cH1n4LfNo5d8XV}7|Siavu{BQyQ~)Kurh4}bd&wF@=`r0Jo= zK~hGT9E12uvsedSJaf#kd;fkp{4}!p4WSZv%HQ+X=w7}MYAtCe4WuIP9POG5hCJfC KA};oTfB*pG|EW#@ literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/thermostat.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/thermostat.webp new file mode 100644 index 0000000000000000000000000000000000000000..6b996a774fff4bc0c377c35ff3b64a23ca52a684 GIT binary patch literal 5730 zcmV-o7MIGh6kacE?k1eYt4;j{P~u z7;onsT|zTz&Z65d$q&FM0Rlkfb~nGZY~L}StaHvxqN;d0Nw*ozVC+z7}Z*9 zoj*xtKi?Se9MJgTy(FD=KDK1$ydr?dfCkUxlFmARldC%b-a@_^nWS}|C!Z+|cnN6w z6X_I4uDKBK5YYD^of3IyIN%-NdeW(poB?*OaB zf#(BWc$F@+Or-dd0Xg2|1K`|aA&QxdAIZ=J&n?Bg@HAawxB%(oU>iWbY6nk-Veup% z10WnQp7tbk$@PUi@HL%gjy91FsFST4$FA}Xq|?m}@;#-U7sX5YRXg7s>B{cb&Zfe$ z0cRZ3&Ym*TwW3o_b}i`!hmG{k@uq-mvqI;*<4%|EF4}O3YeT^Eqdjiv~Yzt#fcsu z$souW#t2s^Ud}m6=jcMp3BncG5&$V&XgNu^;@bmoO5_ybO6-hZxJeNhugSud+$9Ai zh@FgKqHv{m%i!qbWRzGrNw_k5gpiz5g)6sDKQn}@ctAh1q)XS&Of^|&b#_1w=d4xP zeo2JpG~p^JXu5C}6*NP*N(b~aUAQV4`k5_U)lB`&5)G)XpqameY(R6Q%h1m}(G03* zY9L@P{N1;}FQh_diH4IRov*DD==>eX9N}uj7DDT#xx&@VQbLfNCtddMzO3JO1~oFn z#YLB#BVDF`<_cF`L34ih&GrD5JJSQo1Vk zrwUhY@9({`djz8tlk_GfrwUhkw|=GpkgVj+_)!x^vJwHPkyC{$wnIM?g)6#EKjVZe zvQ;K3s_^D;kzo;)W2M`qpV7h<+z>7=bA)jD*Xn1eaQRki$BLI{xpo`}377nfe)Rq+6gKd%AQJ z)RWslx`A}cNv{ke+coOhT3ouiIaJP~RM`v)t*4cSl;sUbhmYvwp(r=XcQb9`k+BKO zp7OP(i?miJJknG;gHpR0k=S&Cti$Y|Coz*-x@tkdBU)Y;BxP7P##c*Gc-zLRQ*N=^ezD8(>1a|gX; z<3TP2j9&~It)$a}rJD->7?gaOwAM!_Z<*NzFkzL%0An-htpCVwPlulj(D+T#TI)43 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 U8-Bq`F6$cT000000000007=X_GXMYp literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/tv.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/tv.webp new file mode 100644 index 0000000000000000000000000000000000000000..69cf8877caef1ccff675847ceca64947ab2f4f4f GIT binary patch literal 3020 zcmV;-3p4amNk&G*3jhFDMM6+kP&il$0000G00030005}~06|PpNM!{8009ZcZ6qmD z^)lq2@X;*YJEH#+z{DXyAfS|tM)qNXVxm{JYqeq5Ax=g)KX|LxQ5wWJ7@;=mzCVF; z-@G4%=O;20w{7D{`>&nkdU-~~1Te2VChY<+CLA|0ohv_(j>^i8XIj;?ZNQX2_H{Li zm;eDmp%pGr!uHRQB>jH>%wF5Jjhk)TyGNg_vu)e9?bFz{?U~)qh~J{J)R7Ujd?Lc3 zB&%)nu$|_D8i6P54^V+mY^a5zUyVHjvXRQ^_n0d<4bMn zLk$~+i83?{K*hwFCgK0cW#v;3UN@s<`n9kO5{+;M@6Av+>w+X>;kqDW;Xxyf-9;A# zQQo?hXAru)%oBpq3-pxa4L%0|I%i@gk#vr^K{9!H=5#VrphSp-06{c($mGln-OLPy zHxbALbT9nr^_ihypL-E$nSAX_VPN;0-~omQu{mABDiU?dyFuU(oKzkHd>bh=#;7~GAO>&p zsX)fbo)Fs!m0AQQe$e<%&u9ot|1On=PyUA@`5T4+i#sg+o8&`S&xe34`5#>J;Zyu! z$7u^lJP0QLFbm@_r5!PPCsrjdKt{AG!|SQ#kbdQ%lH<|7@thSa0f5$^KW z4q5uCt4?s<0e|gGmnENfRdBmZesK2}=P-2wz716Io!VTX8=TNGJhbp(@!47O1%mP3+FKC+Ra$DLxVtOLO$ z*!(uqes0v3qV3nuX1hs>la{)wDKZxoRm^oZu2GJpk2w%`mLP zT#SwoN=r*UgB7256Du;mF18TLR^0CpSe;{p*4QSCq+b+d&t~%PJEs6BFuyz5{mKJ zjEuRP@@uaUu;hL)-pkWrDF4tSAlaljV-OZGq$02}-v1t9$fd_T-*>1CFabWdWgD+v z!m;o)d5qvS>A^xlDH^11gAEi*4Unt4dhjOOz#*$~~6iz4$NAhPf@dY3Ji`)(Le zTR71&7Nv4}c+borZMt#^OQ+JydBKdXD8|0MC?w}Q2LX!Mb(dX^n8I4D*muW0NC}?i zNx=imAbEf$nFNtWNg|2b3&2#oabiO}d1;qtnON~6C^65xV{M56UsD7RIEWM^7_s|~ z->*`7U2xtuyX@g4kW{#7ILolf;<65BowRIekEy@u73;wJ+&nx@!i+nnqlaYaFNa)I z*5Q}sY-t5-`AOTMj3W>U*}skk>s_#X_{;o~nNzHut}yGu&~Ztf*k99PvdmdlM}-@2 z4jbn@UuV3JMpR_{FLegO#gB!I{XSWxY~p4iGP3a3@__jD^!LNX)?aU?TFjk|=*Xh^ z9vXWeIzLEU{y=Hw zW6okkN|sD3|9JP6LE_WeS4=4oEpbx-{fU8lI>(-^acLHgLDXdY+%*Bir)>hdJWp<_lx;WN`nt#KS?y}Q^^<+}kn zXpElFH&tS0=E`xI_F}h#oX4)RcXnNeiwK@@o~(yC z??-@^vuus=84cIUvt!fk^qpr}p;D1O0}Q^6zxs?gNu`JADFHjoluVg1z3>I}=jkD! zSkBzQo7DXq>q7#0Yjd=(RjifWi&`ObplEnd?7(veWd866Vk~aXgZ~yQ?e+U$U8>qP zp^@8cki?x2+y%};pN+@SzT0e9hRJ(JTzG5@M6z*of?~ zUf$A%@frb8=e{`u@m>@LTU&s{1*`(f7{fudf3cnRjXrh&MSG}x?+5JIRn4MCC&_{( zs|xpC7$v)%DF5; zP2{yNALkIrto|n_zMq*!g3HhTNOg5IHKk=WX<1;cH(w2F*8bPZoyioh%O~g4+24wY2YKM+E1uJ z^N76YATb+C3nKhETOOupYC`yYr;U566H2&dbOY+FVf52pp2t}oh&2&H%7FXZbc|y| zL0JX<<96X%5&X{IZby|SmWadDa-3HqMPi89sg@*JB1%Rav(Oh zbr{M7SU5G$_^jHNY-aw7ON6it?A_Yuo^~QJ0BgV+=5Y|VazC^wrq;n2=S{yHF(Tf} zPx{FUg@BR~6SCK2OS=#8ldKP7j?Df&YQz}HCs8i_n~5w-g$gAQ6N)#+gC50R9hwuO zqF%&9|JcBGE9Lvl?Zh7Og%$ksp`YLlk&%oNKUQ4FCBeQXzi44Y|MZ+@wmQB=6A~!n z{?D4awV>Vo6xp`BGl=imCT!O7rqdKq8s|J`m@()m;5Rbj>gD2}y^rwY`Fu2$Ee~ip z6b8v_A1Vf8fl>uafB&F#GOv#+TcSr@$P0$AHNFj<;0Mx569Fl=X^pewTdUCUNHl-$ z%y%v@&yTs!R=c;GYE%CRw9HWoR_CrhRJ&7bb2@^}4rFn4psE;eBN60&`%wx{(HoD0 zdO%8%Z!M+^wuFdf;*K3Q3@(jClipPIWOzGZ2=bW$OrUJODI!xSd`5Nj1&p9(G{j08jZ`h zwm516e+4>S*ERwXb^!PDUj!mu8J!2kEH19K-tWSuOK(WX`e0Mv_k}ZnbPx`#Vaf@W zCc`{a%KAc21{L+pey0BJxSZne0S{CTS)4Zu++x|3+0 z)Y$us)Q>=6Y>uG9w}f*ENX=O}B=j$}X=|kRx7}pYp4Jum%aY?M7H8eYfno1wGk`-(Za5lLf&wmdZNIm=p0)23 zuf&mL|%1PGBA{oG$hKazA8z*2meF*KoI1zPyhe`0A+Xs-6fW6ZI literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/unknown.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/unknown.webp new file mode 100644 index 0000000000000000000000000000000000000000..13252db96a90b23756404a9192eb716d8401c6dc GIT binary patch literal 5560 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 G0002WNzoDj literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/wearable.webp b/luci-app-quickstart/htdocs/luci-static/quickstart/device-icons/wearable.webp new file mode 100644 index 0000000000000000000000000000000000000000..65498ae20a61048a76ed5d0823c9686baa10cbc4 GIT binary patch literal 7032 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 Wc6gLrN1$rL!G7x@wBP^$0001jih^GN literal 0 HcmV?d00001 diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/i18n/en.json b/luci-app-quickstart/htdocs/luci-static/quickstart/i18n/en.json index 7bd8ed4e8..4f9e891e5 100644 --- a/luci-app-quickstart/htdocs/luci-static/quickstart/i18n/en.json +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/i18n/en.json @@ -1 +1 @@ -{"en":{"- -自定义- -":"- -Custom- -","(请先获取IPv4上游信息)":"(Please obtain IPv4 upstream information first)","(未格式化)":"(Not formatted)","(未挂载)":"(Not mounted)","(无DNS服务器,请之后自行填写公共DNS服务器,例如 223.5.5.5)":"(No DNS server, please fill in the public DNS server later, such as 223.5.5.5)","(系统分区)":"(System partition)","(系统盘)":"(System disk)","* 表示每天":"* Means daily","* 表示每小时":"* Means hourly","* 表示每月":"* Means monthly","%{ countdown }s后 跳转新地址":"%{ countdown }s before redirecting to new address","%{ days }天":["%{ days } d ","%{ days } d "],"%{ hours }小时":["%{ hours } h","%{ hours } h"],"%{ minutes }分":[" %{ minutes } min"," %{ minutes } min"],"%{ seconds }秒":[" %{ seconds } sec"," %{ seconds } sec"],"%{status}下载服务配置向导":"%{status} download service configuration wizard","1、点击“提交”可将变更合并到非沙箱环境":"1. Click 'Submit' to merge changes into non-sandbox environment","1. 满足上述条件以后,点击“当前 IPv4 上游信息”以刷新当前连接信息,成功以后,“自动填写”按钮将被激活。(失败可再次点击)":"1. After the above conditions are met, click 'Current IPv4 Upstream Information' to refresh the current connection information. After success, the 'Auto Fill' button will be activated. (Click again if failed)","2、点击“重置”可将沙箱恢复到初始状态":"2. Click 'Reset' to restore the sandbox to its initial state","2. 点击“自动填写”,将切换到参数页并自动填写。此时依然可以自行调整参数。":"2. Click 'Auto-fill' to switch to the parameter page and auto-fill. Parameters can still be adjusted manually.","223.5.5.5":"223.5.5.5","3、点击“退出”可退出沙箱环境,并放弃沙箱中的数据":"3. Click 'Exit' to exit the sandbox environment and abandon the data in the sandbox","阿里云":"Aliyun","安装失败":"Installation Failed","安装失败,":"Installation Failed,","安装失败或超时,请检查软件源或稍候重试":"Installation Failed or Timed Out, Please Check Software Source or Retry Later","安装中...":"Installing...","半双工":"Half Duplex","保持DHCP服务设置":"Keep DHCP Service Settings","保存":"Save","保存并应用":"Save and Apply","保存成功":"Saved Successfully","保存配置":"Save Configuration","保存中...":"Saving...","备份升级":"Backup/Flash","备用DNS地址":"Backup DNS Address","备用DNS服务器":"Backup DNS Server","备用DNS服务器地址":"Backup DNS Server Address","本向导支持自动或手动配置:":"This wizard supports automatic or manual configuration:","编辑":"Edit","编辑LAN":"Edit LAN","编辑WAN":"Edit WAN","并挂载到":"And Mount to","访客":"visitor","拨号上网":"PPPoE","不格式化,使用原文件系统":"Do Not Format, Use Original File System","不支持挂载":"Not Supported for Mounting","操作":"Operation","测试时磁盘会转动,请选择合适的模式来控制磁盘转动。":"Disk will spin during testing, please choose the appropriate mode to control disk spinning.","测速":"Speedtest","插件备份":"APP Backup","查看磁盘管理信息":"Disk Actions","查看存储服务信息":"Actions","查看高级配置":"Acrions","查看更多详情":" to check details","查看教程":"View tutorial","查看日志":"View log","查看设备信息":"Check Clients","查看网络接口信息":"NIC Info","查看系统信息":"System Utils","查看详情":"View details","常规设置":"General Settings","成员":"Member","初始化成功":"Initialized Successfully","初始化中...":"Initializing...","处理中...":"Processing...","传输时自检":"Self-Test During Transfer","窗口 %{ item }":"Window %{ item }","创建":"Create","创建成功":"Created Successfully","创建计划任务":"Create Scheduled Task","创建中...":"Creating...","创建RAID":"Create RAID","磁盘":"Disk","磁盘管理":"Disk Manager","磁盘信息":"Disk Info","磁盘阵列成员:":"RAID array members:","此操作会将会删除该分区全部数据":"This operation will delete all data on this partition","此操作会将会删除该分区全部数据,并格式化成EXT4,随后自动重启进入沙箱模式,是否继续?":"This operation will delete all data on the partition and format it to EXT4, then automatically reboot into sandbox mode. Do you want to continue?","此分区为只读状态,可能无法写入数据":"This partition is read-only, data may not be writable","此文件系统不支持Docker等应用数据,建议格式化成EXT4文件系统":"This file system does not support Docker and other application data, it is recommended to format as EXT4 file system","存储服务":"Share","错误":"Error","带宽监控":"Bandwidth Monitor","待机":"Standby","待机-处于待机和睡眠模式下不检查设备。此模式下磁盘一般不旋转,如果你不想每次检查都转动磁盘,那么这个模式比较适合。":"Standby - The device is not checked in standby and sleep mode. In this mode, the disk generally does not rotate. If you do not want to spin the disk every time you check, then this mode is more suitable.","当前 IPv4 上游信息(点此刷新)":"Current IPv4 upstream information (click here to refresh)","当前处于沙箱环境:":"Currently in sandbox environment:","当前软件源":"Current software source","当前状态:":"Current status:","当系统根目录空间不足时,可将Docker根目录迁移到外置硬盘,以保证系统的正常运行(目标分区不支持NTFS,FAT等文件系统)":"When the system root directory space is insufficient, you can migrate the Docker root directory to an external hard disk to ensure the normal operation of the system (the target partition does not support NTFS, FAT and other file systems)","地址":"Address","登录过期,请重新登录":"Login expired, please log in again","等待设备重启,重启完成后":"Waiting for device to restart, after restart","点此自动配置 AriaNg":"Click here to auto-configure AriaNg","点击“自动配置”按钮开始自动配置向导;":"Click the 'Auto' button to start the automatic configuration wizard;","电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将要或已超出预设安全值的安全范围,":"and compared with the preset safety value set by the manufacturer. If the monitoring situation is about to or has exceeded the safety range of the preset safety value, ","电源模式":"Power mode","调度":"Schedule","调试":"Debug","读取结果失败":"Failed to read result","读写":"Read/write","短暂自检":"Short self-test","发送:":"Send:","返回":"Return","访问地址:":"Access address:","非法的用户名":"Invalid username","分区 / 挂载点":"Partition / Mount Point","分区并格式化":"Partition and Format","分区存在异常,点击分区列表查看错误":"Partition Abnormal, Click Partition List to View Errors","分区信息":"Partition Information","服务-动态DNS":"Service - Dynamic DNS","服务地址:":"Service address:","服务路径:":"Service path:","服务目录路径":"Service directory path","服务已启动":"Service started","附加的 BT Tracker:":"Additional BT Tracker:","覆盖迁移(覆盖目标路径,继续迁移会清空该目标路径下的文件)":"Overwrite migration (overwrite target path, continuing migration will clear files under the target path)","该分区尚未挂载,请先去挂载":"This partition is not yet mounted, please mount it first","该固件不支持沙箱模式":"Current firmware does not support sandbox","该目标路径不为空":"The target path is not empty","高级模式":"Advanced mode","高级设置":"Advanced settings","格式化":"Format","格式化并挂载":"Format and mount","格式化成功":"Format successful","格式化分区":"Format partition","格式化为EXT4文件系统":"Format as EXT4 file system","格式化选项":"Format options","格式化中...":"Formatting...","更换目录(不覆盖目标路径,仅将Docker目录修改为目标路径)":"Change directory (does not overwrite target path, only changes Docker directory to target path)","更换配置":"Change configuration","功能":"Function","共享路径不能为空":"Share Path Cannot Be Empty","共享名(建议使用英文字母)":"Share Name (Recommended to Use English Letters)","共享名称":"Share Name","共享名称不能为空":"Share Name Cannot Be Empty","固件版本":"Firmware Ver.","固件更新":"OTA","固件更新选项":"OTA Options","挂载成功":"Mount successful","挂载点":"Mount Points","挂载路径:":"Mount path:","挂载信息":"Mount information","挂载中...":"Mounting...","关闭":"Close","花生壳":"Oray","欢迎使用 NAS 配置向导":"Welcome to the NAS configuration wizard","欢迎使用网络配置向导":"Welcome to the network configuration wizard","恢复":"Restore","恢复完成":"Restore complete","获取不到分区":"Cannot get partition","获取不到分区路径":"Cannot get partition path","获取不到分区ID":"Cannot get partition ID","获取不到设备路径":"Cannot get device path","获取不到设备名称":"Cannot get device name","级别":"Level","即将重启设备":"Device Will Restart Soon","计划任务":"Scheduled tasks","继续":"Continue","继续保存":"Continue saving","继续配置":" to continue configuration","加载磁盘信息失败":"Load disk info failed","加载中...":"Loading...","兼容一些电视或者电视盒子":"Compatible with Some TVs or TV Boxes","检测不到挂载的磁盘信息,请先插上磁盘,建议使用U盘或者移动硬盘,方便装卸":"No mounted disk information detected, please insert a disk, recommended to use a USB drive or external hard drive for easy mounting/unmounting","检测不到可用磁盘阵列成员":"No available RAID array members detected","检测到你尚未安装 %{name} 插件,是否安装?":"Detected that you have not installed %{name} plugin, install now?","检测到你有未保存的配置,可前往页面右上角点击查看,保存并应用或者恢复配置后继续":"It is detected that you have unsaved configuration. You can go to the upper right corner of the page and click View, Save and Apply, or Restore the configuration to continue","检测到您的wan口没有公网IP或者IPv6地址,可以使用DDNSTO配置远程域名访问":"Detected that your WAN port has no public IP or IPv6 address, you can use DDNSTO to configure remote domain access","检测到您还没有挂载外置硬盘或分区小于8GB,需要您接上硬盘并格式化或手动挂载硬盘后,再执行Docker迁移向导,将Docker迁移到目标硬盘。":"It is detected that you have not mounted the external hard disk or the partition is less than 8GB. You need to connect the hard disk and format it or manually mount the hard disk, and then execute the Docker Migration Wizard to migrate Docker to the target hard disk.","检测中...":"Detecting ...","检查插件状态失败":"Failed to check plugin status","检查中...":"Checking ...","健康":"Healthy","将扫描磁盘里 RAID 的磁盘阵列配置并恢复,确定要恢复 RAID 磁盘阵列吗?":"Will Scan Disk RAID Array Configuration and Restore, Are You Sure to Restore RAID Array?","接收:":"Receive:","仅统计已挂载分区":"Only Count Mounted Partitions","进入控制台":"Enter console","进行测速":" to test speed","禁用":"Disable","警告:该操作将初始化 %{model} 硬盘并创建分区,请你谨慎操作":"Warning: This operation will initialize %{model} hard drive and create partitions, please proceed with caution","警告:格式化会清空 %{partname} 分区数据,请你谨慎操作":"Warning: Formatting will clear all data on %{partname} partition, please proceed with caution","静态地址":"Static","静态网络":"Static","静态IP地址":"Static IP Address","就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬盘数据的安全。":"the host's monitoring hardware or software can automatically warn the user and perform minor automatic repairs to ensure the safety of the hard disk data in advance.","局域网文件共享(Samba)":"Local Network File Sharing (Samba)","局域网文件共享(WebDAV)":"Local Network File Sharing (WebDAV)","开启 NAT(可修复某些无线热点不能访问外网问题)":"Enable NAT (Can Fix Some Wireless Hotspots Not Accessing the Internet Issue)","开启沙箱":"Enable Sandbox","可读写状态:":"R/W Status: ","可前往":"Can Go","控制台":"Dashboard","跨设备共享(易有云)":"Cross-device sharing (Linkease)","快速配置":"Guide","宽带拨号连接":"PPPoE","宽带密码":"PPPoE Password","宽带账号":"PPPoE Account","扩充":"Expand","扩展信息":"Extended information","类型":"Type","离线时自检":"Self-test while offline","连接现有路由器":"Connect to existing router","链接":"Link","流量统计":"Traffic","路由器 IP 可能已经修改成功。若刷新页面失败,请重新连接路由器,否则请尝试重新配置。":"The router IP may have been modified successfully. If refreshing the page fails, please reconnect to the router, otherwise try to reconfigure it.","没找到想要的配置?请使用%{link}":"Couldn't find the desired configuration? Please use %{link}","密码":"Password","密码:":"Password:","密码不能为空":"Password Cannot Be Empty","名称":"Name","名称:":"Name:","默认":"Default","默认密码:":"Default password:","默认用户名:":"Default username:","目标磁盘(建议选择U盘或者移动硬盘,方便装卸)":"Target disk (recommended to use USB drive or external hard drive for easy mounting/unmounting)","目标分区":"Target partition","目标分区(分区大小须大于2G,将此分区作为外部 overlay 使用)":"Target partition (partition size must be greater than 2G, use this partition as an external overlay)","目录":"Directory","内存使用率":"Mem. Usage","内核版本":"Kernel Ver.","内网测速":"LAN Speedtest","内网配置":"LAN Settings","您的系统空间已不足,检测到您的Docker根目录位于系统根目录上,可能会影响系统的正常运行,建议使用Docker迁移向导将Docker根目录迁移到外置硬盘上。":"Your system space is insufficient. It is detected that your Docker root directory is located on the system root directory, which may affect the normal operation of the system. It is recommended to use the Docker Migration Wizard to migrate the Docker root directory to an external hard disk.","您可以用上一级路由(主路由)拨号,然后用本路由来实现一些高级功能。":"You can dial using the upper level router (main router), and then use this router to implement some advanced functions.","旁路由模式,也叫单臂路由模式。":"Bypass routing mode, also called single-arm routing mode.","旁路由模式仅支持静态IP地址":"Bypass routing mode only supports static IP addresses","旁路由配置前的准备工作":"Preparation before bypass routing configuration","旁路由自动配置":"Bypass routing auto-configuration","配置超时":"Configuration timeout","配置成功":"Configuration successful","配置成功!":"Configuration successful!","配置互联网":"Configure internet","配置宽带账号":"Configure PPPoE account","配置目录":"Configure directory","配置目录:":"Configure directory:","配置旁路由网络":"Configure bypass router network","配置沙箱重启中...":"Configuring sandbox rebooting...","配置失败":"Configuration failed","配置为旁路由":"Configure as bypass router","配置中...":"Configuring...","配置中....":"Configuring....","启动失败":"Start failed","启用":"Enable","启用LAN口DHCP服务(用于从旁路由模式恢复成默认状态)":"Enable LAN Port DHCP Service (Used to Restore from Bypass Routing Mode to Default State)","迁移成功!":"Migration successful!","迁移到:":"Migrate to: ","前往":"Go to ","切换软件源":"Switch Software Source","请尝试重新配置":"Please try to reconfigure","请确保您已将本设备 WAN 口连接到上级路由器局域网( LAN )接口":"Please ensure that the WAN port of this device is connected to the LAN port of the upstream router","请确保您已将路由 WAN 口连接到光猫":"Please ensure that the router's WAN port is connected to the optical modem","请稍等1分钟生效后再使用。":"Please wait 1 minute for the settings to take effect before using.","请输入%{title}":"Please enter %{title}","请输入合法的地址":"Please enter a valid address","请输入合法的IP地址":"Please enter a valid IP address","请输入密码":"Please enter the password","请输入迁移路径":"Please enter the migration path","请输入用户名":"Please enter the username","请输入BT Tracker服务器地址,多个地址使用换行或者英文逗号分隔":"Please enter the BT Tracker server address, use newline or comma to separate multiple addresses","请输入DNS地址":"Please enter the DNS address","请输入RPC令牌":"Please enter the RPC token","请刷新界面":"Please refresh the interface","请选择%{title}":"Please choose %{title}","请选择磁盘":"Please select the disk","请选择目标磁盘":"Please select the target disk","请选择目标分区":"Please select the target partition","请选择目标硬盘":"Please select the target hard drive","请选择迁移路径":"Please select the migration path","请选择软件源":"Please select the software source","请选择需要添加的NAS服务":"Please select the NAS service to add","请选择选项":"Please select an option","请选择要删除的硬盘":"Please select the hard drive to delete","请选择要添加的硬盘":"Please select the hard drive to add","请选择一个硬盘或分区":"Please select a hard drive or partition","请选择硬盘分区":"Please select the hard drive partition","请选择至少%{min}块磁盘":"Please select at least %{min} disks","请选择raid类型":"Please select the RAID type","请在保存以后前往'网络-接口'页面配置接口详细参数":"Please go to the 'Network - Interface' page to configure interface details after saving","取消":"Cancel","去挂载":"Mount","去卸载":"Umount","全双工":"Full Duplex","确定":"Confirm","确定创建 %{name}?该操作不可逆,请谨慎操作":"Confirm to create %{name}? This operation is irreversible, please proceed with caution","确定放弃沙箱中的数据?再次进入沙箱需要重新格式化相应磁盘分区":"Confirm to abandon data in the sandbox? Re-entering the sandbox requires reformatting the corresponding disk partition","确定要删除 %{name} 该磁盘阵列吗?删除操作可能会导致数据丢失,请谨慎操作。删除成功后,如需另外组RAID,建议稍等几分钟后再试。":"Are you sure you want to delete the disk array %{name}? Deletion may result in data loss, so please proceed with caution. If you need to create another RAID after successful deletion, it is recommended that you wait a few minutes and try again.","确定要删除 %{name} 吗?":"Are you sure to delete %{name}?","确认":"Confirm","认证失败?":"Authentication failed?","容量":"Capacity","如果您在RAID磁盘阵列中创建了文件系统,先卸载文件系统,后删除文件系统删除操作可能会导致数据丢失,请谨慎操作。":"If you have created a file system in the RAID disk array, uninstall the file system first and then delete the file system. Deleting the file system may result in data loss, so proceed with caution.","如果温度大于或等于 N 摄氏度则报告.":"Report if Temperature is Greater Than or Equal to N Degrees Celsius.","如果由于系统重置或重启导致的RAID设备丢失可以尝试通过下方'扫描恢复RAID'按钮恢复":"If the RAID device is lost due to system reset or restart, you can try to recover it by clicking the 'Scan and Recover RAID' button below.","如需临时退出沙箱环境,请将设备关机后拔出相关磁盘,启动前插入相关磁盘可再次进入沙箱。
注意临时退出沙箱环境以后升级固件会导致之前的沙箱数据无效":"If you need to temporarily exit the sandbox environment, please shut down the device and unplug the relevant disk. Insert the relevant disk before starting to enter the sandbox again.
Note that upgrading the firmware after temporarily exiting the sandbox environment will cause the previous sandbox data to become invalid","如需对 Samba 或 WebDAV 进行更细致的权限控制,请使用“%{unishare}”":"For More Detailed Permission Control of Samba or WebDAV, Please Use '%{unishare}'","软件源错误":"Feeds Inaccessible","软件源配置":"Feeds Mirror","扫描恢复RAID":"Scan to restore RAID","扫描中...":"Scanning ...","沙箱模式配置向导":"Sandbox mode configuration wizard","沙箱已开启":"In Sandbox","删除":"Delete","删除 RAID 设备之前请先卸载文件系统":"Please Uninstall File System Before Deleting RAID Device","删除成功":"Deleted Successfully","删除中...":"Deleting...","上传":"Upload","上传:":"Upload:","设备":"Device","设备路由":"Routes","设备信息":"Device Info","设备型号":"Model","设备重启中...":"Device rebooting...","设备重启中... 若页面长时间未刷新可能需要手动填写地址":"Device rebooting... If the page does not refresh for a long time, you may need to manually enter the address","设定哪一个 IP 地址(IPv4 或 IPv6)会被发送给 DDNS 提供商":"Specify which IP address (IPv4 or IPv6) will be sent to the DDNS provider","使用全局配置":"Use Global Configuration","使用易有云APP,随时随地远程下载":"Use Linkease APP for Remote Downloads Anytime, Anywhere","使用DDNSTO":"Use DDNSTO","是否立即创建 %{name}?选择的硬盘所有分区将会被清除,此操作可能会导致硬盘数据丢失,请谨慎操作。":"Do you want to create %{name} now? All partitions of the selected hard disk will be cleared. This operation may cause hard disk data loss. Please operate with caution.","是否确定初始化?":"Are you sure to initialize?","是否确定格式化 %{partname}?":"Are you sure to format %{partname}?","是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、":"Through the detection instructions in the hard disk hardware, the operation of the hard disk hardware such as the head, disk, motor, and circuit is monitored, recorded,","手动挂载":"Manual mount","手动配置":"Manual","手动配置...":"Manual...","手动配置则需自行获取主路由器的IP地址(例如 192.168.2.1 )和子网掩码,记录以备后续填写,点击“手动配置”按钮,切换到参数配置页,按实际情况自行填写。":"For manual configuration, you need to obtain the IP address of the main router (for example, 192.168.2.1) and subnet mask, record them for later filling, click the 'Manual' button, switch to the parameter configuration page, and fill in the information according to the actual situation.","手动在地址栏输入地址":"manually enter address in the address bar","手工配置":"Manual configuration","首先确认主路由开启了 DHCP 服务,确认本路由 WAN 口是 DHCP 客户端模式(默认即是,如果不是可使用“连接现有路由器”向导改成 DHCP 客户端),然后将本路由 WAN 口与主路由的 LAN 连接,以自动获取配置。":"First, make sure that the DHCP service is turned on on the main router, and confirm that the WAN port of this router is in DHCP client mode (it is by default. If not, you can use the 'Connect to an Existing Router' wizard to change it to DHCP client). Then connect the WAN port of this router to the LAN of the main router to automatically obtain the configuration.","属性":"Attributes","刷新页面":"Refresh Page","睡眠":"Sleep","睡眠-处于睡眠模式下不检查设备。":"Sleep - Do not check devices in sleep mode.","提供 DHCPv4 服务":"Provide DHCPv4 service","提供 DHCPv4 服务(需要关闭主路由 DHCP 服务)":"Provide DHCPv4 service (need to turn off main router DHCP service)","提交":"Submit","提交中...":"Submitting...","提示":"Tip","天":"Day","添加成功":"Added successfully","添加LAN":"Add LAN","添加WAN":"Add WAN","跳转教程":"Jump to tutorial","统一文件共享":"Unified file sharing","退出":"Exit","外网测速":"Internet Speedtest","完成":"Complete","网关地址":"Gateway address","网关地址: ":"Gateway address: ","网口配置":"NIC Assignment","网络地址:":"Network address:","网络接口状态":"NIC Status","网络向导":"Network Guide","网络异常:":"Network abnormality:","为拥有动态IP的主机配置一个固定的可访问域名":"Configure a fixed accessible domain name for hosts with dynamic IPs","未安装":"Not Installed","未安装或未配置":"Uninitialized","未分区":"Unpartitioned","未分区(%{total})":"Unpartitioned (%{total})","未格式化":"Not formatted","未挂载磁盘":"Not Mounted","未联网":"Internet Down","未配置":"Not Configured","未启动":"Not Started","未启用":"Not enabled","未知":"Unknown","未知错误":"Unknown error","温度":"Temp.","温度监测(差异)":"Temperature monitoring (difference)","温度监测(最大)":"Temperature monitoring (max)","温馨提示":"Kind reminder","文件管理":"File Manager","文件系统:":"File System: ","我知道了":"Got it","无法识别路径":"Unrecognized path","无法识别数据":"Unrecognized data","系统根目录":"Rootfs","系统监控":"System Monitor","系统时间":"System Time","系统信息":"System Info","下一步":"Next","下载":"Download","下载:":"Download:","下载服务":"Download Services","下载服务:":"Download Services: ","下载服务配置向导":"Download Services Guide","下载目录":"Download Directory","下载目录:":"Download Directory:","下载目录:":"Download Directory:","下载易有云客户端,随时随地相册备份、远程访问":"Download Linkease client for anytime, anywhere photo backup, remote access","闲置":"Idle","闲置-处于待机、睡眠、闲置模式下不检查设备,在闲置状态下,大多数磁盘还在转动,所以这可能不适合你。":"Idle - Does not check devices in standby, sleep, or idle modes. Most disks are still spinning in idle mode, so this may not be suitable for you.","现在,将本路由WAN口断开,将其中一个LAN口与主路由连接,并将当前浏览器设备连接到主路由。点击“进入控制台”浏览器将跳转到新的路由IP":"Now, disconnect the WAN port of this router, connect one of the LAN ports to the main router, and connect the current browser device to the main router. Click 'Enter Console' and the browser will redirect to the new router IP","现在,请你配置旁路由信息":"Now, please configure bypass routing information","详情":"Details","想要更精确的配置?请前往":"Want more precise configuration? Please go to ","小时":"Hour","协议(网络获取方式)":"Protocol (Network Acquisition Method)","新建":"Create new","型号":"Model","修改":"Modify","修改DHCP服务":"Modify DHCP Service","需要安装DDNSTO插件,点击“确定”开始安装":"DDNSTO plugin needs to be installed, click 'OK' to start installation","序号":"Serial Number","选择磁盘":"Choose disk","选择将要用于创建 RAID 的硬盘,通过 USB 接入的设备不会在列表中显示(USB接入不稳定)。":"Select the hard disk that will be used to create the RAID. Devices connected via USB will not be displayed in the list (USB connection is unstable).","选择一种连接方式以开始":"Choose a connection method to start","选择硬盘(选择被添加到RAID的硬盘):":"Choose a hard drive (select the hard drive to be added to RAID):","选择硬盘(选择空闲的硬盘恢复RAID设备):":"Choose a hard drive (select idle hard drive to restore RAID device):","选择硬盘(选择要从RAID阵列中删除的硬盘):":"Choose a hard drive (select the hard drive to be removed from RAID array):","一个简易沙箱,方便用来实验系统配置和程序,方便开发未完成的软件,但不保护 Docker 和硬盘的数据":"A simple sandbox, convenient for experimenting with system configuration and programs, and for developing unfinished software, but does not protect Docker and hard disk data","移除":"Remove","已成功将分区 %{dev} 挂载到
%{mount}":"Successfully Mounted Partition %{dev} to %{mount}","已断开":"Disconnected","已挂载磁盘":"Mounted Disks","已挂载为交换区":"Mounted as Swap Area","已经成功初始化分区":"Partition Initialized Successfully","已经成功格式化磁盘":"Disk Formatted Successfully","已连接设备":"Connected Devices","已联网":"Internet Connected","已配置":"Configured","已启动":"Started","已启用":"Started","以上操作都将重启设备,设备重启完成后会自动刷新页面。如果 IP 变化可能需要":"The above operations will restart the device, and the page will automatically refresh after the device restarts. If the IP changes, you may need to ","易有云":"LinkEase","硬盘配置":"Hard disk configuration","用户名":"Username","用户名:":"Username:","用户名不能为空":"Username cannot be empty","用户名不能以_开头":"Username cannot start with _","用户名不能以数字开头":"Username cannot start with a number","用户名太短":"Username is too short","用户名只能为小写":"Username must be lowercase","用于放置配置文件的目录。例如:/mnt/sda1/Configs/aria2;请勿使用 /tmp 或 /var ,以免重启以后任务丢失":"The directory for storing configuration files. For example: /mnt/sda1/Configs/aria2; do not use /tmp or /var to avoid losing tasks after reboot.","用于放置配置文件的目录。例如:/mnt/sda1/Configs/qb;请勿使用 /tmp 或 /var ,以免重启以后任务丢失":"The directory for storing configuration files. For example: /mnt/sda1/Configs/qb; do not use /tmp or /var to avoid losing tasks after reboot.","用于放置配置文件的目录。例如:/mnt/sda1/Configs/tr;请勿使用 /tmp 或 /var ,以免重启以后任务丢失":"The directory for storing configuration files. For example: /mnt/sda1/Configs/tr; do not use /tmp or /var to avoid losing tasks after reboot.","用于放置下载文件的目录。例如:/mnt/sda1/download":"Directory for placing download files. For example: /mnt/sda1/download","用于远程访问的令牌。":"Token for remote access.","由于您的设备没有 WAN 口,无法使用本设置向导,具体请看%{link}":"Since your device does not have a WAN port, you cannot use this setup wizard. For details, please see %{link}","预览":"Preview","域名:":"Domain Name:","域名配置":"DDNS","域名配置向导":"DDNS Guide","远程域名":"DDNS","月":"Month","允许旧协议与身份验证(不安全)":"Allow Old Protocols and Authentication (Not Secure)","运行":"Run","运行调试":"Run debugging","长时自检":"Long self-test","账号:":"Account:","账号不能为空":"Account cannot be empty","账号用户名":"Account username","正在安装中...":"Installing...","正在创建中...":"Creating...","正在获取磁盘信息...":"Fetching Disk List...","正在加载中...":"Loading...","正在检测插件是否已启动...":"Checking if plugin has started...","正在检测中...":"Detecting ...","正在配置…请稍等":"Configuring...please wait","正在迁移中...":"Migrating...","正在切换中...":"Switching ...","执行中...":"Executing...","只读":"Read-Only","至少需要2块硬盘,“区块延展”功能是将数据分成多个块,并将数据块分散到组成的多个硬盘上以提高性能的过程。不提供数据冗余。":"At least 2 hard disks are required. The 'Block Stretch' function is the process of dividing data into multiple blocks and spreading the data blocks across multiple hard disks to improve performance. No data redundancy is provided.","至少需要2块硬盘,将多个硬盘合并为单个存储空间,其容量等于所有硬盘容量的总和。不提供数据冗余。":"At least 2 hard disks are required to combine multiple hard disks into a single storage space with a capacity equal to the sum of all hard disk capacities. No data redundancy is provided.","至少需要2块硬盘,同时向所有硬盘写入相同的数据。提供数据冗余。":"At least 2 hard drives are required, write the same data to all drives. Provides data redundancy.","至少需要3块硬盘,执行段落分块延展,并对分布到所有组成硬盘上的数据执行奇偶校验,从而提供比 RAID 1 更有效的数据冗余。":"Requires at least 3 hard disks, performs block stretching, and performs parity checking on data distributed across all component hard disks, providing more effective data redundancy than RAID 1.","至少需要4块硬盘,提供 RAID 0 的性能和 RAID 1 的数据保护级别,将硬盘组合进镜像数据的由两个硬盘组成的组。":"Requires at least 4 hard drives, provides the performance of RAID 0 and the data protection level of RAID 1, combining the hard drives into groups of two hard drives that mirror data.","至少需要4块硬盘,执行两个层级的数据奇偶校验以存储等于 2 个硬盘容量的冗余数据,提供比 RAID 5 更大程度的数据冗余。":"Requires at least 4 hard drives, performs two levels of data parity to store redundant data equal to the capacity of 2 hard drives, and provides a greater degree of data redundancy than RAID 5.","至少需要填写一个DNS":"At least one DNS must be filled in","终端":"Terminal","重新创建":"Recreate","重置":"Reset","重置中...":"Reseting…","状态":"Status","自定义DNS":"Custom DNS","自动获取":"Auto","自动获取 IPV6(即开启 DHCPv6 客户端)":"Automatically obtain IPv6 (i.e. enable DHCPv6 client)","自动获取(DHCP)":"DHCP","自动获取DNS":"Auto","自动获取IP地址(DHCP)":"Automatically obtain IP address (DHCP)","自动检查更新":"Auto check update","自动配置...":"Auto...","自动填写...":"Auto-fill...","自己添加":"Custom","自检日志":"Self-test log","自上次报告以来温度变化至少 N 度,则需报告.":"Report if temperature changes by at least N degrees since the last report.","子网掩码":"Subnet Mask","子网掩码: ":"Subnet Mask: ","总是":"Always","总是-无论是什么功耗模式下都测试(检查)磁盘,当检查时,这可能会使停转的磁盘开始转动。":"Always - Tests (checks) the disk regardless of power mode. When checking, this may spin up a stalled disk.","Aria2高级配置":"Aria2 Adv.","CPU使用率":"CPU Usage","CPU温度":"CPU Temp.","DDNSTO":"DDNSTO","DDNSTO 是一个不需要公网IP也可以在外网访问的穿透域名服务,一个浏览器搞定内网穿透,远程访问Openwrt、远程终端、远程桌面...":"DDNSTO is a domain name penetration service that can be accessed from the Internet without a public IP. A browser can handle intranet penetration and remote access to Openwrt, remote terminal, remote desktop...","DDNSTO控制台":"DDNSTO Console","DHCP的IP池格式错误或超出子网范围":"DHCP IP pool format error or out of subnet range","DHCP客户端":"DHCP Client","DNS 配置方式":"DNS Configuration Method","DNS错误":"DNS Error","DNS服务器":"DNS Server","DNS服务器: ":"DNS Server: ","DNS服务器地址":"DNS Server Address","DNS配置":"DNS Settings","DNS配置已保存":"DNS Saved","DNS选项":"DNS Options","dnspod":"dnspod","Dnspod":"Dnspod","Docker高级配置":"Docker Adv.","Docker根目录:":"Docker Root Directory: ","Docker管理":"Docker Actions","Docker迁移向导":"Docker Migration Wizard","IP 地址":"IP Address","IP 地址: ":"IP Address: ","IP池结束地址":"IP Pool End Address","IP池起始地址":"IP Pool Start Address","IP地址":"IP Address","IP地址版本:":"IP Version: ","IPv4地址":"IPv4 Address","IPv4地址格式错误":"IPv4 Address Format Error","IPv4子网掩码":"IPv4 Subnet Mask","IPv4子网掩码格式错误":"IPv4 Subnet Mask Format Error","IPv6地址":"IPv6 Address","iStoreOS官网":"iStoreOS","JBOD (线性)":"JBOD (Linear)","LAN 接口配置方式":"LAN Interface Configuration Method","LAN口未关联任何物理网口,可能导致路由器失联,是否继续操作?":"LAN port not associated with any physical network port, may cause router disconnection, continue?","MAC:":"MAC:","qBittorrent高级配置":"qBittorrent Adv.","RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。":"RAID (Redundant Array of Independent Disks) is a redundant array of independent disks, which uses multiple independent disks to form a large disk system, thereby achieving better storage performance and higher reliability than a single disk.","RAID 0 (条带)":"RAID 0 (Striping)","RAID 1 (镜像)":"RAID 1 (Mirroring)","RAID创建向导":"RAID Creation Wizard","RAID磁盘阵列是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。":"RAID disk array uses multiple independent disks together to form a large disk system, thereby achieving better storage performance and higher reliability than a single disk.","RAID功能正在公测中,使用过程中如造成数据丢失等问题,概不负责,请谨慎使用。":"The RAID function is currently in public beta testing. We are not responsible for any data loss or other issues caused during use. Please use it with caution.","RAID管理":"RAID Mananger","RAID级别:":"RAID Level:","RAID设备":"RAID","RPC 令牌:":"RPC Token:","S.M.A.R.T.,全称为“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”,":"S.M.A.R.T., the full name of which is 'Self-Monitoring Analysis and Reporting Technology', is an automatic hard disk status detection and early warning system and specification. ","S.M.A.R.T异常":"S.M.A.R.T Exception","SAMBA":"SAMBA","SAMBA高级配置":"SAMBA Adv.","Samba共享配置":"Samba Share Configuration","Transmission高级配置":"Transmission Adv.","WAN 接口配置方式":"WAN Interface Configuration Method","WEBDAV":"WEBDAV","WebDAV高级配置":"WebDAV Adv.","Webdav共享配置":"Webdav Share Configuration","限速配置":"Speed limit configuration","静态分配":"Static allocation","请输入": "Please enter","设备列表": "Equipment List","静态分配列表": "Statically allocated lists","限速设备列表": "List of speed limiting devices","全局设置": "Global Settings","对设备开启限速": "Enable speed limit for the device","点我跳转全局配置": "Click me to jump to global configuration","禁止该设备访问网络": "Block this device from accessing the network","下载速度": "Download speed","总带宽": "Total bandwidth","上传速度": "Upload speed","注解": "Comment","请选择": "Please select","MAC地址与IP绑定": "MAC address and IP binding","网关": "Gateway","接口": "Interface","标签": "Label","设备图片": "Equipment Pictures","主机名称": "Host Name","MAC地址": "MAC Address","默认网关": "default","上级路由": "parent","本设备": "myself","旁路由": "bypass","浮动网关": "floatip","请前往全局配置开启限速": "Please go to global configuration to enable speed limit","请输入正确的MAC地址": "Please enter a valid MAC address","请输入正确的IP地址": "Please enter a valid IP address","请输入正确的下载速度": "Please enter the correct download speed","请输入正确的上传速度": "Please enter the correct upload speed","请勾选要删除的数据": "Please check the data you want to delete","设备管理":"Device Management","首页":"Front Page","批量删除":"Batch Deletion","请输入搜索词":"Please enter a search term","请输入名称/IP/MAC…":"Please enter name/IP/MAC...", "显示": "Show","到": "To","条": "Strip","共": "Total","上一页": "Previous page","下一页": "Next Page","暂无数据": "No Data","IP限速": "IP speed limit","正在安装": "Installing","结果": "Result","安装成功": "Installation Successful","添加标签": "Add tags","注意:添加ID时,请勿将“odhcpd”或网络接口(例如“lan”,“wan”,“wan6”等)作为ID,此举将产生冲突。建议在ID前面加上前缀“t_”以杜绝此类冲突。": "Note: When adding an ID, do not use odhcpd or a network interface (such as lan, wan, wan6, etc.) as the ID, as this will cause a conflict. It is recommended to prefix the ID with 't_' to prevent such conflicts.","标签名称": "Tag Name","软件暂未安装": "The software is not installed yet","立即安装": "Install Now","节点角色": "Node Role","浮动网格IP": "Floating Grid IP","旁路由IP": "Bypass IP","添加": "Add to","局域网DHCP": "LAN DHCP", "是": "Yes","否": "No","禁止网络访问": "Disable network access","上传限速": "Upload speed limit","下载限速": "Download speed limit","静态IP绑定": "Static IP Binding","请选择节点角色":"Please select a node role","请输入正确的浮动网关IP地址":"Please enter the correct floating gateway IP address","请输入正确的旁路由IP地址":"Please enter the correct bypass router IP address","系统创建":"System Creation","删除失败!":"Deletion failed!","主路由":"Main Router","所有删除操作已完成":"All deletions completed","保存失败!":"Save failed!","编辑标签":"Edit Tags","温馨提示:删除设备的限速配置可能影响此设备的带宽,请谨慎操作!":"Warm reminder: Deleting the speed limit configuration of a device may affect the bandwidth of this device, please proceed with caution!","温馨提示:删除设备的静态分配可能影响此设备的联网,请谨慎操作!":"Tips: Deleting a device's static allocation may affect the device's networking, so proceed with caution!","温馨提示:删除网关标签可能影响正在使用此标签的设备,请谨慎操作!":"Warm reminder: Deleting the gateway tag may affect devices that are using this tag, please proceed with caution!","温馨提示:关闭浮动网关可能影响正在使用浮动网关的设备,请谨慎操作!":"Warm reminder: Disabling the floating gateway may affect devices that are using the floating gateway, please operate with caution!","温馨提示:关闭限速会让已配置限速的设备的带宽限制全部失效,请谨慎操作!":"Warm reminder: Turning off speed limit will invalidate all bandwidth restrictions of devices that have configured speed limit. Please operate with caution!","温馨提示:关闭DHCP可能影响局域网内设备的IP分配和联网,请谨慎操作!":"Tips: Turning off DHCP may affect the IP allocation and networking of devices in the LAN, so please operate with caution!","标题":"Title","上传限速(Mbit/s)":"Upload speed limit (Mbit/s)","下载限速(Mbit/s)":"Download speed limit (Mbit/s)","网络连接正常":"The network connection is normal","连接设备数量":"Number of connected devices","台设备":"Device","已连接":"Connected","未连接":"Not connected","配置网络接口":"NIC Assignment","使用率":"Utilization rate","可用":"Available","系统更新可用":"System update available","检测到新版本":"New version detected","包含安全修复和性能改进":"Includes security fixes and performance improvements","立即更新":"Update Now","稍后提醒":"Remind me later","网络配置引导":"Network configuration guide","智能配置":"Intelligent configuration","局域网设备管理":"LAN device management","管理网络中的所有设备":"Manage all devices on the network","推荐":"Recommend","无线网络":"Wireless network","WiFi设置与管理":"WiFi settings and management","2.4G/5G双频":"2.4G/5G dual-band","家长控制":"Parental Controls","儿童上网保护":"Child Online Protection","保护":"Protect","网络测速":"Network speed test","检测网络速度":"Detect network speed","点击测试":"Click Test","网络流量":"Network traffic","今日下载":"Download today","今日上传":"Uploaded today","峰值下载":"Peak downloads","峰值上传":"Peak upload","网络连接和IP地址":"Network connections and IP addresses","今日数据":"Today's data","网络延迟":"Network latency","信号强度":"Signal strength","日志查看":"View log","运行中":"Running","Docker容器目录":"Docker container directory","容器数量":"Number of containers","镜像数量":"Number of images","管理容器":"Managing Containers","下载管理":"Download Management","操作系统":"operating system","正常":"Normal","离线":"Offline","动态域名解析":"Dynamic DNS","智能内网穿透服务":"Intelligent intranet penetration service","配置存储服务":"Configuring storage services","内网访问地址":"Intranet access address","检测本地网络环境,获取内网访问地址":"Detect the local network environment and obtain the intranet access address","点击按钮获取内网测速地址,通过访问这些地址来测试内网连接速度":"Click the button to obtain the intranet speed test address and test the intranet connection speed by accessing these addresses","选择测速节点,进行网络速度和连接质量测试":"Select a speed test node to test network speed and connection quality","选择测速节点":"Select the speed test node","请选择测速节点":"Please select a speed test node","测速日志":"Speed ​​test log","实时测速过程记录":"Real-time speed measurement process recording","测速节点":"Speed ​​test node","测速进度":"Speed ​​test progress","至少保留一个网络接口!":"Keep at least one network interface!","系统维护":"System Maintenance","应用商店":"App Store","百款应用,自由选择":"Hundreds of apps, free to choose","内核":"Kernel Ver.","台设备在线":"Devices online","信息概览":"Information Overview","模块设置":"Module settings","快捷入口":"Quick Access","顶部快捷捷径按钮组":"Top shortcut button group","实时流量统计图表":"Real-time traffic statistics charts","联网时间和设备信息":"Network time and device information","网络接口详细信息":"Network interface details","配置模块":"Configuration module","内网配置、DNS配置等工具":"Tools for intranet configuration, DNS configuration, etc.","磁盘使用情况与容量概览":"Disk usage and capacity overview","共享与存储服务概览":"Overview of Shared and Storage Services","下载任务与服务状态":"Download Task and Service Status","远程访问域名管理":"Remote access domain management","设备系统信息概览":"Equipment System Information Overview","Docker模块":"Docker module","容器运行状态与管理":"Container runtime status and management","模块显示设置":"Module display settings","选择要在首页显示的功能模块,隐藏不常用的模块可以让界面更简洁":"Select the functional modules to display on the homepage; hiding less frequently used modules will make the interface cleaner.","已显示模块":"Modules already displayed","全部显示":"Show all","保存设置":"Save settings","个模块":"module","已使用":"Used","Docker迁移":"Docker migration","请至少保留一项!":"Please keep at least one item!"}} \ No newline at end of file +{"en":{"- -自定义- -":"- -Custom- -","(不可用)":"(not available)","(无DNS服务器,请之后自行填写公共DNS服务器,例如 223.5.5.5)":"(No DNS server, please fill in the public DNS server later, such as 223.5.5.5)","(未挂载)":"(Not mounted)","(未格式化)":"(Not formatted)","(系统分区)":"(System partition)","(系统盘)":"(System disk)","(请先获取IPv4上游信息)":"(Please obtain IPv4 upstream information first)","* 表示每天":"* Means daily","* 表示每小时":"* Means hourly","* 表示每月":"* Means monthly","%{ countdown }s后 跳转新地址":"%{ countdown }s before redirecting to new address","%{ days }天":["%{ days } d ","%{ days } d "],"%{ hours }小时":["%{ hours } h","%{ hours } h"],"%{ minutes }分":[" %{ minutes } min"," %{ minutes } min"],"%{ seconds }秒":[" %{ seconds } sec"," %{ seconds } sec"],"%{status}下载服务配置向导":"%{status} download service configuration wizard","1、点击“提交”可将变更合并到非沙箱环境":"1. Click 'Submit' to merge changes into non-sandbox environment","1. 满足上述条件以后,点击“当前 IPv4 上游信息”以刷新当前连接信息,成功以后,“自动填写”按钮将被激活。(失败可再次点击)":"1. After the above conditions are met, click 'Current IPv4 Upstream Information' to refresh the current connection information. After success, the 'Auto Fill' button will be activated. (Click again if failed)","2、点击“重置”可将沙箱恢复到初始状态":"2. Click 'Reset' to restore the sandbox to its initial state","2. 点击“自动填写”,将切换到参数页并自动填写。此时依然可以自行调整参数。":"2. Click 'Auto-fill' to switch to the parameter page and auto-fill. Parameters can still be adjusted manually.","223.5.5.5":"223.5.5.5","3、点击“退出”可退出沙箱环境,并放弃沙箱中的数据":"3. Click 'Exit' to exit the sandbox environment and abandon the data in the sandbox","Aria2高级配置":"Aria2 Adv.","CPU使用率":"CPU Usage","CPU温度":"CPU Temp.","DDNSTO":"DDNSTO","DDNSTO 是一个不需要公网IP也可以在外网访问的穿透域名服务,一个浏览器搞定内网穿透,远程访问Openwrt、远程终端、远程桌面...":"DDNSTO is a domain name penetration service that can be accessed from the Internet without a public IP. A browser can handle intranet penetration and remote access to Openwrt, remote terminal, remote desktop...","DDNSTO控制台":"DDNSTO Console","DHCP":"DHCP","DHCP 主机名(可选)":"DHCP hostname (optional)","DHCP 主机名仅支持 1~63 位英文、数字或中间连字符":"DHCP hostnames only support 1-63 digits English, numbers or middle hyphens","DHCP客户端":"DHCP Client","DHCP的IP池格式错误或超出子网范围":"DHCP IP pool format error or out of subnet range","DNS 洞察":"DNS Insights","DNS 配置方式":"DNS Configuration Method","dnspod":"dnspod","Dnspod":"Dnspod","DNS服务器":"DNS Server","DNS服务器: ":"DNS Server: ","DNS服务器地址":"DNS Server Address","DNS选项":"DNS Options","DNS配置":"DNS Settings","DNS配置已保存":"DNS Saved","DNS错误":"DNS Error","Docker根目录:":"Docker Root Directory: ","Docker迁移向导":"Docker Migration Wizard","Docker高级配置":"Docker Adv.","ID":"Id","IP":"IP","IP 地址":"IP Address","IP 地址: ":"IP Address: ","IPv4 地址":"IPv4 address","IPv4地址":"IPv4 Address","IPv4地址格式错误":"IPv4 Address Format Error","IPv4子网掩码":"IPv4 Subnet Mask","IPv4子网掩码格式错误":"IPv4 Subnet Mask Format Error","IPv6 地址策略":"IPv6 address policy","IPv6地址":"IPv6 Address","IP地址":"IP Address","IP地址版本:":"IP Version: ","IP池结束地址":"IP Pool End Address","IP池起始地址":"IP Pool Start Address","IP限速":"IP Speed Limit","iStoreOS官网":"iStoreOS","JBOD (线性)":"JBOD (Linear)","LAN 接口配置方式":"LAN Interface Configuration Method","LAN口未关联任何物理网口,可能导致路由器失联,是否继续操作?":"LAN port not associated with any physical network port, may cause router disconnection, continue?","MAC":"MAC","MAC:":"MAC:","MAC地址":"MAC address","MAC地址与IP绑定":"MAC address is tied to IP","qBittorrent高级配置":"qBittorrent Adv.","Quickstart 限速服务未就绪。请安装或启动服务后重新检查;系统不会自动改用其他方式。":"Quickstart speed limiting is not ready. Install or start the service, then check again; the system will not switch modes automatically.","RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。":"RAID (Redundant Array of Independent Disks) is a redundant array of independent disks, which uses multiple independent disks to form a large disk system, thereby achieving better storage performance and higher reliability than a single disk.","RAID 0 (条带)":"RAID 0 (Striping)","RAID 1 (镜像)":"RAID 1 (Mirroring)","RAID创建向导":"RAID Creation Wizard","RAID功能正在公测中,使用过程中如造成数据丢失等问题,概不负责,请谨慎使用。":"The RAID function is currently in public beta testing. We are not responsible for any data loss or other issues caused during use. Please use it with caution.","RAID磁盘阵列是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。":"RAID disk array uses multiple independent disks together to form a large disk system, thereby achieving better storage performance and higher reliability than a single disk.","RAID管理":"RAID Mananger","RAID级别:":"RAID Level:","RAID设备":"RAID","RPC 令牌:":"RPC Token:","S.M.A.R.T.,全称为“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”,":"S.M.A.R.T., the full name of which is 'Self-Monitoring Analysis and Reporting Technology', is an automatic hard disk status detection and early warning system and specification. ","S.M.A.R.T异常":"S.M.A.R.T Exception","Transmission高级配置":"Transmission Adv.","WAN 接口配置方式":"WAN Interface Configuration Method","一":"Mon","一个简易沙箱,方便用来实验系统配置和程序,方便开发未完成的软件,但不保护 Docker 和硬盘的数据":"A simple sandbox, convenient for experimenting with system configuration and programs, and for developing unfinished software, but does not protect Docker and hard disk data","三":"Wed","上一步":"Back","上传":"Upload","上传 Mbit/s":"Upload (Mbit/s)","上传:":"Upload:","上传上限(Mbit/s)":"Upload limit (Mbit/s)","上传速度":"Upload Speed","上传限速(Mbit/s)":"Upload speed limit (Mbit/s)","上级路由":"Upstream router","上网路线":"Internet path","上网路线已更新":"Internet path updated","上网路线没有变化":"No changes to the Internet path","上网路线状态":"Internet Route Status","下一步":"Next","下次变化":"Next change","下次检查":"Next check","下载":"Download","下载 Mbit/s":"Download (Mbit/s)","下载:":"Download:","下载上限(Mbit/s)":"Download limit (Mbit/s)","下载易有云客户端,随时随地相册备份、远程访问":"Download Linkease client for anytime, anywhere photo backup, remote access","下载服务":"Download Services","下载服务:":"Download Services: ","下载服务配置向导":"Download Services Guide","下载目录":"Download Directory","下载目录:":"Download Directory:","下载目录:":"Download Directory:","下载速度":"Download speed","下载限速(Mbit/s)":"Download Speed Limit (Mbit/s)","不可达":"Unreachable","不支持":"Unsupported","不支持挂载":"Not Supported for Mounting","不格式化,使用原文件系统":"Do Not Format, Use Original File System","不设置":"Not set","不设置时段规则":"No scheduled rule","不设置流量额度":"No data quota","两台节点必须配置相同的虚拟 IP,并选择互补的职责。":"Both nodes must be configured with the same virtual IP and select complementary responsibilities.","个分组":"groups","个设备例外":"device exceptions","个额度":"Quota","中":"Medium","为拥有动态IP的主机配置一个固定的可访问域名":"Configure a fixed accessible domain name for hosts with dynamic IPs","为设备设置最高上传和下载速度;联网权限不依赖此服务。":"Set the maximum upload and download speeds for your device; network permissions do not depend on this service.","主要地址":"Primary address","主路由与旁路由共享一个稳定入口,旁路由异常时自动切回主路由。":"The main route and the bypass route share a stable entrance, and when the bypass route is abnormal, the main route is automatically switched back.","二":"Tue","五":"Fri","仅分组,不覆盖设备设置":"Group only, do not override device settings","仅提醒":"Notify only","仅用于查看和迁移现有规则,不再作为新规则的默认执行方式。":"Only used to review and migrate existing rules; it is no longer the default mode for new rules.","仅统计已挂载分区":"Only Count Mounted Partitions","今天":"Today","以上操作都将重启设备,设备重启完成后会自动刷新页面。如果 IP 变化可能需要":"The above operations will restart the device, and the page will automatically refresh after the device restarts. If the IP changes, you may need to ","休息时段":"Downtime schedule","优先依据品牌,其次依据设备类型":"First by brand, then by device type","优先服务节点":"Priority Service Node","优先级":"Priority","优先节点不可达时接管":"Take over when priority nodes are unreachable","传输时自检":"Self-Test During Transfer","低":"Low","使用DDNSTO":"Use DDNSTO","使用全局配置":"Use Global Configuration","使用易有云APP,随时随地远程下载":"Use Linkease APP for Remote Downloads Anytime, Anywhere","使用管理":"Usage controls","使用规则已应用":"Usage rules applied","例如:ASUS":"Ex: Asus","例如:儿童设备":"Ex: Children's devices","例如:孩子的电脑":"Ex: Child's computer","例如:客厅电视":"Ex: Living room TV","例如:旁路由":"Ex: Bypass routing","例如创建“儿童设备”,设置晚间暂停联网和每月流量额度。":"For example, create a “child device” to set a nightly pause and monthly traffic limit.","保存":"Save","保存 MAC 和备注,设备首次出现后会自动合并,不会创建孤立规则。":"Save the Mac and notes, the device will be merged automatically after the first appearance, and no orphan rules will be created.","保存中...":"Saving...","保存前预览":"Review before saving","保存后设备需要重新获取地址,实际生效前会保持等待状态。":"After saving, the device needs to get the address again, and it will remain in a waiting state until it actually takes effect.","保存备注":"Save note","保存失败":"Save failed","保存失败,原设置未改变":"Save failed; the original settings are unchanged","保存失败,请检查设备存储空间后重试":"Could not save. Check available device storage and try again.","保存失败,请稍后重试":"Save failed. Try again later.","保存并应用":"Save and Apply","保存成功":"Saved Successfully","保存类型":"Save type","保存设备资料":"Save device data","保存通知设置":"Save notification settings","保存配置":"Save Configuration","保存额度":"Save Limit","保持DHCP服务设置":"Keep DHCP Service Settings","修改":"Modify","修改DHCP服务":"Modify DHCP Service","修改设备类型":"Change device type","健康":"Healthy","允许":"Allow","允许联网":"Allow Internet","先扫描并逐条检查;不会自动停止、卸载或改写 Bandix。":"Scan and review every rule first. Bandix will not be stopped, uninstalled, or modified automatically.","先预览并接管现有设置,之后只使用当前设备管理界面维护。":"Preview and take over the existing settings before using only the current device management interface for maintenance.","入口探测":"Entry detection","全双工":"Full Duplex","全局限速尚未开启":"Global speed limit has not been activated","全部":"All","全部品牌":"All brands","全部状态":"All Statuses","全部策略":"All policies","全部类型":"All types","全部连接":"All connections","六":"Sat","共享名(建议使用英文字母)":"Share Name (Recommended to Use English Letters)","共享名称":"Share Name","共享名称不能为空":"Share Name Cannot Be Empty","共享路径不能为空":"Share Path Cannot Be Empty","共同规则":"Shared rules","关闭":"Close","关闭后预计影响设备":"Estimated affected devices after disabling","其余设置会在同一次安全接管中处理。":"The rest of the settings will be handled in the same safety takeover.","兼容模式(按 IPv4)":"Compatibility mode (by IPv4)","内存使用率":"Mem. Usage","内网测速":"LAN Speedtest","内网配置":"LAN Settings","最终设置":"Final Setup","最近出现":"Recent","最近变更":"Recent Changes","最近变更仅在展开后读取,记录数量有上限。":"Recent changes load only when expanded and keep a limited number of records.","最近活跃":"Recently active","分区 / 挂载点":"Partition / Mount Point","分区信息":"Partition Information","分区存在异常,点击分区列表查看错误":"Partition Abnormal, Click Partition List to View Errors","分区并格式化":"Partition and Format","分组与计划":"Groups & schedules","分组名称":"Group name","切换软件源":"Switch Software Source","创建":"Create","创建RAID":"Create RAID","创建中...":"Creating...","创建成功":"Created Successfully","创建计划任务":"Create Scheduled Task","初始化中...":"Initializing...","初始化成功":"Initialized Successfully","删除":"Delete","删除 RAID 设备之前请先卸载文件系统":"Please Uninstall File System Before Deleting RAID Device","删除中...":"Deleting...","删除分组":"Delete Group","删除失败":"Delete failed","删除失败,原配置已恢复":"Deletion failed, original configuration restored","删除成功":"Deleted Successfully","删除所选规则":"Delete the selected rule","刷新":"Refresh","刷新页面":"Refresh Page","前往":"Go to ","前往全局设置":"Go to global settings","功能":"Function","加载失败":"Loading failed","加载磁盘信息失败":"Load disk info failed","半双工":"Half Duplex","协议(网络获取方式)":"Protocol (Network Acquisition Method)","单设备例外":"Single Device Exceptions","单设备例外始终优先;多个分组冲突时,优先级较高的生效。":"Single-device exceptions always take precedence; when multiple groups conflict, the higher priority takes effect.","即将重启设备":"Device Will Restart Soon","厂商默认类型":"Manufacturer default","历史地址":"Previous addresses","历史流量趋势":"Historical Traffic Trends","历史用量":"Usage history","历史用量读取失败":"Historical usage read failed","原始主机名":"Original hostname","原始厂商":"Original manufacturer","去卸载":"Umount","去挂载":"Mount","发现冲突或无法识别的设置,当前不会写入任何配置。请先在规则台账中处理。":"Conflicting or unrecognized settings were found and no configurations are currently being written.Please process it in the rules ledger first.","发现名称":"Discovery Name","发现新设备":"Discover new devices","发现现有设备设置":"Discover existing device settings","发送:":"Send:","取消":"Cancel","取消添加":"Cancel adding","受保护地址":"Protected Address","受影响分组":"Affected Groups","受影响设备":"Affected devices","受硬件卸载限制":"Restricted by hardware uninstallation","受限":"Restricted","只为没有更具体规则的设备提供默认值。":"Provide default values only for devices that do not have more specific rules.","只为这台设备设置休息时段和累计流量额度;单设备设置优先于分组和默认规则。":"Only set breaks and cumulative traffic limits for this device; single device settings take precedence over grouping and default rules.","只会替换设备分组、设备例外与流量额度;地址、路线、限速和防火墙规则保持不变。":"Only replaces device groupings, device exceptions, and traffic limits; addresses, routes, speed limits, and firewall rules remain the same.","只探测设备当前局域网地址和常用管理端口;不会扫描其他地址,也不会跟随跳转。":"Only the device's current LAN address and common management ports are probed; no other addresses are scanned and no jump is followed.","只有浮动网关功能会被锁定,设备和其他路线仍可管理。":"Only the floating gateway feature will be locked and devices and other routes can still be managed.","只读":"Read-Only","只读引导":"Read-only bootstrap","可从设备详情添加地址、路线和使用限制。":"You can add addresses, directions, and usage restrictions from your device details.","可以切换到“全部”查看本次开机发现过的设备。":"You can switch to \"All\" to see the devices found this time.","可以安全应用":"Can be applied safely","可以接管":"Can take over","可以设置限速":"Ready for speed limiting","可以迁移":"Ready to migrate","可前往":"Can Go","可在设备详情中设置上网路线。":"You can set your internet routes in your device details.","可用":"Available","可访问":"Accessible","可读写状态:":"R/W Status: ","可达":"Reachable","台设备":"devices","台设备有单设备例外,最终值仍以例外为准。":"There are single-device exceptions for devices, and the final value is still subject to the exception.","合计":"Total","同时影响全局或局域网默认路线。":"Affects global or local area network default routes at the same time.","名称":"Name","名称:":"Name:","否":"No","启用":"Enable","启用LAN口DHCP服务(用于从旁路由模式恢复成默认状态)":"Enable LAN Port DHCP Service (Used to Restore from Bypass Routing Mode to Default State)","启用浮动网关":"Enable Floating Gateway","启用设备限速":"Enable device speed limits","启用限速服务":"Enable speed limit service","启用限速服务?":"Enable speed limit service?","周期":"Period","品牌":"Brand","品牌(可选)":"Brand (optional)","四":"Thu","固件更新":"OTA","固件更新选项":"OTA Options","固件版本":"Firmware Ver.","固定地址":"Reserved address","固定设备地址,并选择它通过哪台路由器上网":"Fixed device address and select which router it uses to access the internet","图标由品牌和类型自动推荐":"Icons are automatically recommended by brand and type","在指定时段执行规则":"Run a rule during selected times","在线":"Online","地址":"Address","地址与上网路线":"Address and Internet Directions","地址与检测":"Address & Inspection","地址与路线":"Address & Directions","地址保留":"Address retention","地址冲突":"Address conflict","地址分配影响":"DHCP impact","地址分配服务":"DHCP service","地址分配设置已保存":"DHCP settings saved","地址池结束地址":"Pool end address","地址池起始地址":"Pool start address","地址租期":"Lease time","地址详情":"Address Details","地址预留":"Address reservation","型号":"Model","型号特征":"Model evidence","域名:":"Domain Name:","域名配置":"Domain settings","域名配置向导":"DDNS Guide","增强设备识别模式":"Enhanced device identity","处理中...":"Processing...","备份升级":"Backup/Flash","备注名最多 64 个字符,不能包含控制字符。":"The note name is a maximum of 64 characters and cannot contain control characters.","备用DNS地址":"Backup DNS Address","备用DNS服务器":"Backup DNS Server","备用DNS服务器地址":"Backup DNS Server Address","复制":"Copy","复制地址":"Copy address","外网检测":"Extranet Inspection","外网检测地址(可选)":"Extranet detection address (optional)","多 WAN 策略":"Multi-WAN Policy","多个地址用逗号分隔":"Separate multiple addresses with commas","天":"Day","失败":"Failed","失败时将恢复":"Will resume on failure","失败时恢复原设置":"Restore original settings on failure","如果您在RAID磁盘阵列中创建了文件系统,先卸载文件系统,后删除文件系统删除操作可能会导致数据丢失,请谨慎操作。":"If you have created a file system in the RAID disk array, uninstall the file system first and then delete the file system. Deleting the file system may result in data loss, so proceed with caution.","如果温度大于或等于 N 摄氏度则报告.":"Report if Temperature is Greater Than or Equal to N Degrees Celsius.","如果由于系统重置或重启导致的RAID设备丢失可以尝试通过下方'扫描恢复RAID'按钮恢复":"If the RAID device is lost due to system reset or restart, you can try to recover it by clicking the 'Scan and Recover RAID' button below.","如需临时退出沙箱环境,请将设备关机后拔出相关磁盘,启动前插入相关磁盘可再次进入沙箱。
注意临时退出沙箱环境以后升级固件会导致之前的沙箱数据无效":"If you need to temporarily exit the sandbox environment, please shut down the device and unplug the relevant disk. Insert the relevant disk before starting to enter the sandbox again.
Note that upgrading the firmware after temporarily exiting the sandbox environment will cause the previous sandbox data to become invalid","如需对 Samba 或 WebDAV 进行更细致的权限控制,请使用“%{unishare}”":"For More Detailed Permission Control of Samba or WebDAV, Please Use '%{unishare}'","子网掩码":"Subnet Mask","子网掩码: ":"Subnet Mask: ","存储与服务器":"Storage & servers","存储服务":"Storage services","存在不支持或冲突的规则,全部处理完成前不会迁移。":"Migration is blocked until every unsupported or conflicting rule is resolved.","存在冲突":"Conflict Exists","安全回退":"Safe fallback","安装中...":"Installing...","安装兼容的 Bandix 后才可用":"Available after installing compatible Bandix","安装后可让两台路由器共同提供一个稳定的虚拟网关。":"Once installed, the two routers together provide a stable virtual gateway.","安装失败":"Installation Failed","安装失败,":"Installation Failed,","安装失败,可稍后重试":"Installation failed. Try again later.","安装失败或超时,请检查软件源或稍候重试":"Installation Failed or Timed Out, Please Check Software Source or Retry Later","安装成功":"Installation successful","安装所需服务":"Install required service","安装浮动网关":"Install Floating Gateway","安装限速插件后,才能查看和配置设备限速。":"The device speed limit cannot be viewed and configured until the speed limit plugin is installed.","安装限速服务":"Install Speed Limit Service","安装限速服务?":"Install Speed Limit Service?","完成":"Complete","实时流量":"Live traffic","实际生效情况":"Observed result","容量":"Capacity","宽带密码":"PPPoE Password","宽带拨号连接":"PPPoE","宽带账号":"PPPoE Account","密码":"Password","密码:":"Password:","密码不能为空":"Password Cannot Be Empty","对端状态":"Peer status","对端节点":"Peer Node","对端节点 IPv4":"Peer node IPv4","对设备开启限速":"Turn on the speed limit for the device","导出和恢复设备分组、单设备例外与流量额度;地址、路线、限速和防火墙规则不会被替换。":"Export and restore device groupings, single-device exceptions, and traffic limits; addresses, routes, speed limits, and firewall rules are not replaced.","导出失败":"Export failed","导出策略包":"Export Policy Package","将修改这台设备的最高速度。":"This will change the maximum speed for this device.","将修改这台设备的联网权限。":"The networking permissions for this device will be modified.","将同时检查地址、上网路线、DNS 和 DHCP 分配权。":"Addresses, internet routes, DNS and DHCP allocations will be checked simultaneously.","将安全整理":"Organize security","将扫描磁盘里 RAID 的磁盘阵列配置并恢复,确定要恢复 RAID 磁盘阵列吗?":"Will Scan Disk RAID Array Configuration and Restore, Are You Sure to Restore RAID Array?","将更新路线名称和网关,已有引用会继续保留。":"Route names and gateways will be updated and existing references will continue to be retained.","将更新限速执行方式,现有规则保持不变。":"The enforcement mode will be updated and existing rules will remain unchanged.","将添加一条可供设备和分组选择的路线。":"A route will be added for devices and groups to choose from.","将重新加载限速服务,已有设备规则会按新的总带宽继续执行。":"The speed limit service will reload and existing device rules will continue with the new total bandwidth.","小时":"Hour","尚未上线":"Not yet online","尚未保存的限速输入会保留。":"Unsaved speed limit inputs are preserved.","尚未安装浮动网关组件":"Floating gateway components are not installed","尚未检测到地址分配服务":"Address Assignment Service has not been detected","尚未选择设备":"No devices selected","尚未验证":"Not verified","就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬盘数据的安全。":"the host's monitoring hardware or software can automatically warn the user and perform minor automatic repairs to ensure the safety of the hard disk data in advance.","局域网主机名":"LAN hostname","局域网角色待确认":"LAN role to be confirmed","局域网角色需要确认":"LAN Role Needs Confirmation","局域网设备管理":"LAN device management","局域网设置":"LAN settings","局域网设置读取失败":"Failed to read LAN settings","属性":"Attributes","已保存并生效":"Saved and in effect","已关闭":"Off","已写入":"Written","已启动":"Started","已启用":"Started","已复制":"Copied","已开启":"On","已恢复系统自动推荐":"System automatic recommendation restored","已恢复自动判断":"Automatic detection restored","已恢复迁移前设置":"Settings from before the migration were restored","已成功将分区 %{dev} 挂载到 %{mount}":"Successfully Mounted Partition %{dev} to %{mount}","已手动设置":"Set manually","已挂载为交换区":"Mounted as Swap Area","已挂载磁盘":"Mounted Disks","已指定路线":"Routes Assigned","已断开":"Disconnected","已断网":"Internet blocked","已暂停联网":"Internet paused","已有规则会保留,但在全局限速开启前不会生效。":"Existing rules will be retained, but will not take effect until the global speed limit is turned on.","已有设备使用该虚拟网关,请先迁移这些设备。":"This virtual gateway is already in use by an existing device, please migrate these devices first.","已检测到 Bandix,但当前固件尚未启用经验证的连接洞察适配器":"Bandix has been detected, but the current firmware has not enabled the Proven Connection Insight adapter","已经成功初始化分区":"Partition Initialized Successfully","已经成功格式化磁盘":"Disk Formatted Successfully","已观察到新租约,终端网关与 DNS 无法验证":"A new lease was observed; the device gateway and DNS cannot be verified.","已设置":"Configured","已达到额度":"Limit reached","已选择":"Selected","已选择自定义图标":"Custom Icon Selected","已配置":"Configured","已配置;如需更换请输入新地址":"Configured; enter a new address to replace","已限速":"Speed Limited","常规设置":"General Settings","平板":"Tablet","并挂载到":"And Mount to","序号":"Serial Number","应用后会立即重新计算这台设备的最终规则;失败时保留原设置。":"The final rule for this device will be recalculated as soon as it is applied; if it fails, the original settings will be preserved.","应用后建议在维护窗口执行受控切换演练。":"After application, it is recommended to perform a controlled switching exercise in the maintenance window.","应用失败,原设置已保留":"Apply failed; original settings were preserved.","应用失败,原设置已恢复":"Apply failed; original settings were restored.","应用失败,原设置已恢复,可以重试":"Apply failed; original settings were restored. You can try again.","应用失败,原配置已恢复":"App failed, original configuration restored","应用配置":"App Configuration","应由上网网关执行":"Runs on the Internet gateway","开启 NAT(可修复某些无线热点不能访问外网问题)":"Enable NAT (Can Fix Some Wireless Hotspots Not Accessing the Internet Issue)","开启沙箱":"Enable Sandbox","开始":"Start","当前 IPv4 上游信息(点此刷新)":"Current IPv4 upstream information (click here to refresh)","当前不可用":"Currently unavailable","当前不能应用这项修改":"This change cannot be applied at this time","当前仅使用内置可回滚规则":"Only built-in rollback rules are currently used","当前仅提供查看与引导,不会自动修改其他设备。":"Currently only viewing and guiding are available, no other devices are automatically modified.","当前允许访问互联网":"Internet access is currently allowed","当前固件尚未验证,未展示假控件":"The current firmware has not been verified, no fake controls are presented","当前地址":"Current addresses","当前处于沙箱环境:":"Currently in sandbox environment:","当前实现按 IPv4 限速,预留当前地址后规则才不会漂移。":"This mode limits by IPv4 address. Reserve the current address first so the rule stays with this device.","当前已断开互联网":"Currently disconnected from the internet","当前执行方式不可用,请先安装或启用对应服务。":"This enforcement mode is unavailable. Install or enable its service first.","当前无法安装,请检查存储空间和软件源。":"Unable to install at this time, please check storage space and software source.","当前无法读取地址分配状态,其他设置仍可使用。":"The address assignment status is currently unavailable; other settings remain available.","当前暂不可用":"Currently unavailable","当前没有地址":"No current address","当前状态:":"Current status:","当前生效":"Effective now","当前由其他设备负责地址分配,本页只读。":"Another device provides DHCP; this page is read-only.","当前筛选下没有设备":"No devices under current filter","当前节点":"Current Node","当前节点无法执行限速":"This node cannot enforce the speed limit","当前软件源":"Current software source","当前速率":"Current rate","当系统根目录空间不足时,可将Docker根目录迁移到外置硬盘,以保证系统的正常运行(目标分区不支持NTFS,FAT等文件系统)":"When the system root directory space is insufficient, you can migrate the Docker root directory to an external hard disk to ensure the normal operation of the system (the target partition does not support NTFS, FAT and other file systems)","影响范围":"Impact","影响规则":"Impact Rules","影响设备":"Affected devices","待机":"Standby","待机-处于待机和睡眠模式下不检查设备。此模式下磁盘一般不旋转,如果你不想每次检查都转动磁盘,那么这个模式比较适合。":"Standby - The device is not checked in standby and sleep mode. In this mode, the disk generally does not rotate. If you do not want to spin the disk every time you check, then this mode is more suitable.","总上传带宽(Mbit/s)":"Total upload bandwidth (Mbit/s)","总下载带宽(Mbit/s)":"Total download bandwidth (Mbit/s)","总带宽用于计算设备限速队列,不会自动平均分配给每台设备。":"Total bandwidth is used to calculate device queues; it is not divided equally among devices.","总是":"Always","总是-无论是什么功耗模式下都测试(检查)磁盘,当检查时,这可能会使停转的磁盘开始转动。":"Always - Tests (checks) the disk regardless of power mode. When checking, this may spin up a stalled disk.","恢复":"Restore","恢复全部自动推荐":"Restore all auto referrals","恢复失败,原配置已回滚":"Restore failed, the original configuration has been rolled back","恢复失败,请按提示处理":"Restore failed. Follow the guidance to resolve it.","恢复完成":"Restore complete","恢复自动判断":"Restore automatic detection","恢复路径":"Recovery path","恢复迁移前设置":"Restore pre-migration settings","恢复默认路线":"Restore default path","恢复默认路线,或在设备详情中选择其他可用路线":"Restore the default path, or choose another available path in device details.","恢复默认路线,或编辑路线后重新应用":"Restore the default path, or edit the path and apply it again.","恢复默认路线?设备重新获取地址后生效。":"Restore the default path? It takes effect after the device renews its address.","您可以用上一级路由(主路由)拨号,然后用本路由来实现一些高级功能。":"You can dial using the upper level router (main router), and then use this router to implement some advanced functions.","您的系统空间已不足,检测到您的Docker根目录位于系统根目录上,可能会影响系统的正常运行,建议使用Docker迁移向导将Docker根目录迁移到外置硬盘上。":"Your system space is insufficient. It is detected that your Docker root directory is located on the system root directory, which may affect the normal operation of the system. It is recommended to use the Docker Migration Wizard to migrate the Docker root directory to an external hard disk.","想要更精确的配置?请前往":"Want more precise configuration? Please go to ","想要的路线":"Desired route","成功":"Succeeded","成员":"Member","我已了解影响,继续":"I understand the impact; continue","我知道了":"Got it","所有删除操作已完成":"All deletions have been completed","所需组件尚未安装":"Required component is not installed.","手动在地址栏输入地址":"manually enter address in the address bar","手动挂载":"Manual mount","手动设置":"Manual setting","手动配置":"Manual","手动配置...":"Manual...","手动配置则需自行获取主路由器的IP地址(例如 192.168.2.1 )和子网掩码,记录以备后续填写,点击“手动配置”按钮,切换到参数配置页,按实际情况自行填写。":"For manual configuration, you need to obtain the IP address of the main router (for example, 192.168.2.1) and subnet mask, record them for later filling, click the 'Manual' button, switch to the parameter configuration page, and fill in the information according to the actual situation.","手工配置":"Manual configuration","手机":"Phone","打印机":"Printer","执行中...":"Executing...","执行方式":"Enforcement mode","执行日期":"Days","执行节点待确认":"Enforcement node not confirmed","扩充":"Expand","扩展信息":"Extended information","扫描中...":"Scanning ...","扫描恢复RAID":"Scan to restore RAID","扫描现有规则":"Scan existing rules","批量删除":"Bulk Delete","批量检查完成":"Batch Check Complete","批量规则已应用":"Bulk Rule Applied","批量规则未应用":"Bulk rule not applied","把复杂网络工作交给旁路由或指定网关,设备可在详情中选择路线。DNS 跟随路线。":"Leave complex network work to the bypass or designated gateway, and the device can choose the route in the details.DNS follows the route.","把需要相同安排的设备放在一起,一次设置联网、速度、路线、时段或流量额度。":"Put together devices that need the same setup to set up networking, speeds, routes, time periods, or traffic limits all at once.","拨号上网":"PPPoE","挂载中...":"Mounting...","挂载信息":"Mount information","挂载成功":"Mount successful","挂载点":"Mount Points","挂载路径:":"Mount path:","指定网关":"Custom gateway","指定路线":"Specify route","按名称":"Sort by name","按设备身份同时覆盖 IPv4 与 IPv6,并验证规则是否真正生效。":"Covers IPv4 and IPv6 by device identity and verifies that rules are actually enforced.","按设备身份执行,可同时覆盖 IPv4 与 IPv6;会占用更多系统资源。":"Enforces by device identity across IPv4 and IPv6, using more system resources.","按路由器时间执行":"Uses router time","按需诊断、审计和策略备份":"On-demand diagnostics, audits, and policy backups","排序方式":"Sort by","接口":"Interface","接收:":"Receive:","接管失败,原设置已保留":"Takeover failed, original settings preserved","接管失败,原设置已恢复,可以重试":"Apply failed; original settings were restored. You can try again.","控制台":"Dashboard","提交":"Submit","提交中...":"Submitting...","提供 DHCPv4 服务":"Provide DHCPv4 service","提供 DHCPv4 服务(需要关闭主路由 DHCP 服务)":"Provide DHCPv4 service (need to turn off main router DHCP service)","提示":"Tip","插件备份":"APP Backup","搜索名称、IP 或 MAC":"Search Name, IP or Mac","搜索名称、IP、MAC 或厂商":"Search name, IP, MAC, or vendor","搜索设备":"Search Devices","搜索设备、MAC、IP 或规则":"Search for a device, Mac, IP or rule","摄像头":"Camera","操作":"Operation","操作失败,请稍后重试":"The operation failed. Please try again later.","支持中文,仅用于本页面显示,不会修改 DHCP 主机名。":"Chinese is supported, only for display on this page, and the DHCP hostname will not be modified.","支持中文,只用于设备管理显示,不会写入网络主机名。":"Supports Chinese, only used for device management display, does not write network host name.","收起额度":"Collapse Limit","故障切换演练":"Failover Walkthrough","故障接管节点":"Fault takeover node","文件管理":"File Manager","文件系统:":"File System: ","新建":"Create new","新建分组":"New group","新设备与网关切换通知":"New Device and Gateway Switching Notification","旁路由":"Secondary router","旁路由模式,也叫单臂路由模式。":"Bypass routing mode, also called single-arm routing mode.","旁路由模式仅支持静态IP地址":"Bypass routing mode only supports static IP addresses","旁路由自动配置":"Bypass routing auto-configuration","旁路由配置前的准备工作":"Preparation before bypass routing configuration","无人持有":"Unowned","无法扫描现有规则":"Could not scan existing rules","无法生成演练计划":"Unable to generate walkthrough plan","无法确认限速功能状态":"Unable to confirm speed limit function status","无法识别数据":"Unrecognized data","无法识别路径":"Unrecognized path","无法预览地址分配设置":"Could not review DHCP settings","无法预览这次修改":"This edit cannot be previewed","无法预览限速服务设置":"Could not preview speed limit settings","无策略":"No policies","无需重载服务":"No need to reload services","日":"Sun","时段内执行":"During this period","时段限速":"Scheduled speed limit","易有云":"LinkEase","是":"Yes","是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、":"Through the detection instructions in the hard disk hardware, the operation of the hard disk hardware such as the head, disk, motor, and circuit is monitored, recorded,","是否确定初始化?":"Are you sure to initialize?","是否确定格式化 %{partname}?":"Are you sure to format %{partname}?","是否立即创建 %{name}?选择的硬盘所有分区将会被清除,此操作可能会导致硬盘数据丢失,请谨慎操作。":"Do you want to create %{name} now? All partitions of the selected hard disk will be cleared. This operation may cause hard disk data loss. Please operate with caution.","智能家居":"Smart home","智能设备限速(推荐)":"Smart device speed limits (recommended)","暂停联网":"Pause Internet","暂无与此设备有关的审计事件":"There are no audit events related to this device","暂无计划":"No schedule","暂无设备":"No devices yet","暂无限速规则":"No speed limit rule","暂无静态分配":"No static assignments yet","暂时无法判断局域网角色":"Unable to determine LAN role temporarily","暂时无法安全保存,请稍后重试":"Cannot save safely right now. Try again later.","暂时无法检查现有设置,不影响其他局域网设置。":"Existing settings cannot be checked at this time and will not affect other LAN settings.","暂时无法读取续租状态":"Could not read the lease renewal state.","暂时无法连接该网关,请确认设备已开机并接入当前局域网后重试":"The gateway is currently unreachable. Confirm it is powered on and connected to this LAN, then try again.","更多筛选":"More filters","更换目录(不覆盖目标路径,仅将Docker目录修改为目标路径)":"Change directory (does not overwrite target path, only changes Docker directory to target path)","更换配置":"Change configuration","更改健康检测":"Change health test","更改启用状态":"Change enablement status","更改对端节点":"Change Peer Node","更改节点职责":"Change Node Responsibilities","更改虚拟 IP":"Change Virtual IP","替代路线":"Replacement path","月":"Month","有单设备例外":"There are single device exceptions","有流量额度":"Has Traffic Limit","有线":"Ethernet","服务-动态DNS":"Service - Dynamic DNS","服务器配置可读,终端效果无法验证":"Router configuration is readable; the device result cannot be verified.","服务地址:":"Service address:","服务已启动":"Service started","服务已就绪,请在设备详情中为需要的设备设置速度上限。":"The service is ready. Set speed limits for individual devices in their details.","服务未运行":"Service is not running","服务目录路径":"Service directory path","服务路径:":"Service path:","未分区":"Unpartitioned","未分区(%{total})":"Unpartitioned (%{total})","未启动":"Not Started","未启用":"Not enabled","未命名设备":"Unnamed device","未安装":"Not Installed","未安装分段适配器":"Segmentation adapter not installed","未安装多 WAN 适配器":"Multi-WAN adapter not installed","未安装或未配置":"Uninitialized","未挂载磁盘":"Not Mounted","未格式化":"Not formatted","未知":"Unknown","未知设备":"Unknown device","未知错误":"Unknown error","未联网":"Internet Down","未设置限速":"No speed limit","未配置":"Not Configured","本向导支持自动或手动配置:":"This wizard supports automatic or manual configuration:","本周":"This week","本地轻量统计":"Local Lightweight Statistics","本月":"This month","本机当前不负责地址分配,请到实际分配地址的路由器上修改。":"This machine is not currently responsible for address assignment, please modify it on the router where the address is actually assigned.","本机负责局域网地址分配":"This machine is responsible for LAN address allocation","本机路由":"This router","本次开机":"This boot","本设备":"This device","来宾 / IoT 分段":"Guest/IoT Segmentation","查看最终生效结果与来源":"View Final Effective Results and Sources","查看当前在线和本次开机发现过的局域网设备":"View online devices and devices discovered since startup","查看教程":"View tutorial","查看日志":"View log","查看更多详情":" to check details","查看演练计划":"View Walkthrough Plan","查看规则台账":"View Rule Ledger","查看详情":"View details","标签":"Tag","标题":"Title","格式化":"Format","格式化中...":"Formatting...","格式化为EXT4文件系统":"Format as EXT4 file system","格式化分区":"Format partition","格式化并挂载":"Format and mount","格式化成功":"Format successful","格式化选项":"Format options","检查中...":"Checking ...","检查插件状态失败":"Failed to check plugin status","检测不到可用磁盘阵列成员":"No available RAID array members detected","检测不到挂载的磁盘信息,请先插上磁盘,建议使用U盘或者移动硬盘,方便装卸":"No mounted disk information detected, please insert a disk, recommended to use a USB drive or external hard drive for easy mounting/unmounting","检测中...":"Detecting ...","检测到你尚未安装 %{name} 插件,是否安装?":"Detected that you have not installed %{name} plugin, install now?","检测到你有未保存的配置,可前往页面右上角点击查看,保存并应用或者恢复配置后继续":"It is detected that you have unsaved configuration. You can go to the upper right corner of the page and click View, Save and Apply, or Restore the configuration to continue","检测到其他设备负责地址分配":"Additional Devices Detected for Address Assignment","检测到您的wan口没有公网IP或者IPv6地址,可以使用DDNSTO配置远程域名访问":"Detected that your WAN port has no public IP or IPv6 address, you can use DDNSTO to configure remote domain access","检测到您还没有挂载外置硬盘或分区小于8GB,需要您接上硬盘并格式化或手动挂载硬盘后,再执行Docker迁移向导,将Docker迁移到目标硬盘。":"It is detected that you have not mounted the external hard disk or the partition is less than 8GB. You need to connect the hard disk and format it or manually mount the hard disk, and then execute the Docker Migration Wizard to migrate Docker to the target hard disk.","检测到流量卸载,部分流量可能绕过限速。":"Traffic offloading was detected; some traffic may bypass the speed limit.","检测超时(秒)":"Detection timeout (seconds)","概览":"Overview","欢迎使用 NAS 配置向导":"Welcome to the NAS configuration wizard","欢迎使用网络配置向导":"Welcome to the network configuration wizard","正在保存…":"Saving…","正在切换中...":"Switching ...","正在创建中...":"Creating...","正在加载中...":"Loading...","正在加载全局设置":"Loading global settings","正在加载设备":"Loading devices","正在加载限速规则":"Loading Speed Limit Rules","正在加载静态分配":"Loading Static Assignments","正在处理…":"Processing...","正在安装":"Installing","正在安装…":"Installing…","正在安装中...":"Installing...","正在应用…":"Applying…","正在恢复…":"Restoring…","正在扫描…":"Scanning…","正在接管":"Taking over","正在接管…":"Taking over...","正在整理设备身份和在线状态…":"Organizing device identities and online status…","正在检查…":"Checking...","正在检测中...":"Detecting ...","正在检测插件是否已启动...":"Checking if plugin has started...","正在添加…":"Adding...","正在积累历史数据,首次使用后会按小时形成趋势。":"Historical data is accumulating and trending by the hour after first use.","正在获取磁盘信息...":"Fetching Disk List...","正在读取使用规则":"Loading usage rules","正在读取历史用量":"Reading historical usage","正在读取局域网设置":"Reading LAN settings","正在读取浮动网关状态":"Reading floating gateway status","正在读取网络规则":"Reading network rules","正在读取设备分组":"Reading device groups","正在读取设备策略":"Reading device policies","正在读取设备资料":"Reading device data","正在读取高级能力":"Reading advanced capabilities","正在迁移中...":"Migrating...","正在配置…请稍等":"Configuring...please wait","正在预检配置":"Pre-checking configuration","正常":"Normal","正常情况下提供虚拟网关":"Virtual gateway provided as normal","此分区为只读状态,可能无法写入数据":"This partition is read-only, data may not be writable","此操作会将会删除该分区全部数据":"This operation will delete all data on this partition","此操作会将会删除该分区全部数据,并格式化成EXT4,随后自动重启进入沙箱模式,是否继续?":"This operation will delete all data on the partition and format it to EXT4, then automatically reboot into sandbox mode. Do you want to continue?","此文件系统不支持Docker等应用数据,建议格式化成EXT4文件系统":"This file system does not support Docker and other application data, it is recommended to format as EXT4 file system","此设备不在当前筛选结果中":"This device is outside the current filters","此设置对本路由器全部设备生效。可选 Webhook 默认关闭,只发送事件类型、时间和设备标识,不发送 DNS 内容。":"This setting applies to all devices on this router.The optional webhook is turned off by default, only the event type, time, and device identity are sent, and DNS content is not sent.","每 5 分钟最多写入一次":"Write at most once every 5 minutes","每周":"Weekly","每周额度":"Weekly Quota","每天":"Daily","每日额度":"Daily Quota","每月":"Monthly","每月额度":"Monthly Limit","沙箱已开启":"In Sandbox","沙箱模式配置向导":"Sandbox mode configuration wizard","没找到想要的配置?请使用%{link}":"Couldn't find the desired configuration? Please use %{link}","没有匹配的网络规则":"No matching network rules","没有匹配的设备":"No matching devices","注意:添加ID时,请勿将“odhcpd”或网络接口(例如“lan”,“wan”,“wan6”等)作为ID,此举将产生冲突。建议在ID前面加上前缀“t_”以杜绝此类冲突。":"Note: When adding an ID, do not use \"odhcpd\" or network interfaces (such as \"lan\", \"wan\", \"wan6\", etc.) as IDs, as this will cause conflicts.It is recommended to prefix the ID with “t_” to prevent such conflicts.","注解":"Annotation","流量数据更新延迟,正在恢复采样":"Traffic data update delay, resuming sampling","流量统计":"Traffic","流量采样暂不可用,设备清单仍可正常使用":"Traffic sampling is temporarily unavailable, the device list can still be used normally","流量额度":"Data quota","流量额度已保存":"Traffic Limit Saved","流量额度至少为 0.1 GB":"The data quota must be at least 0.1 GB.","测试时磁盘会转动,请选择合适的模式来控制磁盘转动。":"Disk will spin during testing, please choose the appropriate mode to control disk spinning.","浮动网关":"Failover gateway","浮动网关状态不可用":"Floating Gateway Status Unavailable","添加":"Add","添加LAN":"Add LAN","添加WAN":"Add WAN","添加失败":"Failed to add","添加失败,请检查 MAC 地址":"Add failed, please check MAC address","添加尚未上线的设备":"Add devices that aren't online yet","添加成功":"Added successfully","添加标签":"Add tags","添加设备":"Add device","添加路线":"Add Route","清除备注":"Clear notes","清除筛选":"Clear filters","温度":"Temp.","温度监测(最大)":"Temperature monitoring (max)","温度监测(差异)":"Temperature monitoring (difference)","温馨提示":"Kind reminder","温馨提示:关闭DHCP可能影响局域网内设备的IP分配和联网,请谨慎操作!":"Reminder: Turning off DHCP may affect the IP allocation and networking of devices in the local area network, please be careful!","温馨提示:关闭限速会让已配置限速的设备的带宽限制全部失效,请谨慎操作!":"Reminder: Turning off the speed limit will invalidate all bandwidth limits for devices that have been configured with the speed limit, please proceed with caution!","温馨提示:删除网关标签可能影响正在使用此标签的设备,请谨慎操作!":"Reminder: Deleting the gateway label may affect devices that are using this label, please proceed with caution!","游戏设备":"Gaming device","演练会短暂改变网关持有者,必须先完成双端配对校验。系统不会自动开始。":"The drill will change the gateway holder briefly, and the double-ended pairing check must be completed first.The system will not start automatically.","演练计划已就绪":"Walkthrough Plan Ready","点击“自动配置”按钮开始自动配置向导;":"Click the 'Auto' button to start the automatic configuration wizard;","点我跳转全局配置":"Go to global settings","点此自动配置 AriaNg":"Click here to auto-configure AriaNg","版本不兼容":"Incompatible version","状态":"Status","状态未知":"Unknown status","现在,将本路由WAN口断开,将其中一个LAN口与主路由连接,并将当前浏览器设备连接到主路由。点击“进入控制台”浏览器将跳转到新的路由IP":"Now, disconnect the WAN port of this router, connect one of the LAN ports to the main router, and connect the current browser device to the main router. Click 'Enter Console' and the browser will redirect to the new router IP","现在,请你配置旁路由信息":"Now, please configure bypass routing information","现有 Bandix 仅用于迁移,请先完成下方步骤。":"The existing Bandix installation is only used for migration. Complete the steps below first.","现有 Bandix(仅用于迁移)":"Existing Bandix (migration only)","现有地址已隐藏;更换时需重新输入。":"The existing address is hidden; you will need to re-enter it when replacing it.","现有设置已安全接管":"Existing settings safely taken over","现有设置无需重复接管":"Existing settings do not need to be taken over repeatedly","用于局域网名称解析,仅支持英文、数字和中间连字符":"For LAN name resolution, only English, numbers and middle hyphens are supported","用于局域网名称解析,仅支持英文、数字和中间连字符;与可使用中文的设备备注名分开保存":"For LAN name resolution, use only letters, numbers, and interior hyphens. This is stored separately from the device note, which can use Chinese.","用于放置下载文件的目录。例如:/mnt/sda1/download":"Directory for placing download files. For example: /mnt/sda1/download","用于放置配置文件的目录。例如:/mnt/sda1/Configs/aria2;请勿使用 /tmp 或 /var ,以免重启以后任务丢失":"The directory for storing configuration files. For example: /mnt/sda1/Configs/aria2; do not use /tmp or /var to avoid losing tasks after reboot.","用于放置配置文件的目录。例如:/mnt/sda1/Configs/qb;请勿使用 /tmp 或 /var ,以免重启以后任务丢失":"The directory for storing configuration files. For example: /mnt/sda1/Configs/qb; do not use /tmp or /var to avoid losing tasks after reboot.","用于放置配置文件的目录。例如:/mnt/sda1/Configs/tr;请勿使用 /tmp 或 /var ,以免重启以后任务丢失":"The directory for storing configuration files. For example: /mnt/sda1/Configs/tr; do not use /tmp or /var to avoid losing tasks after reboot.","用于远程访问的令牌。":"Token for remote access.","用户名":"Username","用户名:":"Username:","用户名不能为空":"Username cannot be empty","用户名不能以_开头":"Username cannot start with _","用户名不能以数字开头":"Username cannot start with a number","用户名只能为小写":"Username must be lowercase","用户名太短":"Username is too short","由于您的设备没有 WAN 口,无法使用本设置向导,具体请看%{link}":"Since your device does not have a WAN port, you cannot use this setup wizard. For details, please see %{link}","由本机为局域网设备分配地址。关闭后,设备应由其他路由器分配地址。":"The LAN device is assigned an address by the machine.When turned off, the device should be assigned an address by another router.","由本机执行":"Runs on this router","由系统自动判断":"Detected automatically","电源模式":"Power mode","电视与影音":"TV & media","电脑":"Computer","电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将要或已超出预设安全值的安全范围,":"and compared with the preset safety value set by the manufacturer. If the monitoring situation is about to or has exceeded the safety range of the preset safety value, ","登录过期,请重新登录":"Login expired, please log in again","目录":"Directory","目标分区":"Target partition","目标分区(分区大小须大于2G,将此分区作为外部 overlay 使用)":"Target partition (partition size must be greater than 2G, use this partition as an external overlay)","目标磁盘(建议选择U盘或者移动硬盘,方便装卸)":"Target disk (recommended to use USB drive or external hard drive for easy mounting/unmounting)","睡眠":"Sleep","睡眠-处于睡眠模式下不检查设备。":"Sleep - Do not check devices in sleep mode.","短暂自检":"Short self-test","硬件卸载已开启,统计可能不完整":"Hardware uninstallation is on, statistics may be incomplete","硬盘配置":"Hard disk configuration","确定":"Confirm","确定创建 %{name}?该操作不可逆,请谨慎操作":"Confirm to create %{name}? This operation is irreversible, please proceed with caution","确定放弃沙箱中的数据?再次进入沙箱需要重新格式化相应磁盘分区":"Confirm to abandon data in the sandbox? Re-entering the sandbox requires reformatting the corresponding disk partition","确定要删除 %{name} 吗?":"Are you sure to delete %{name}?","确定要删除 %{name} 该磁盘阵列吗?删除操作可能会导致数据丢失,请谨慎操作。删除成功后,如需另外组RAID,建议稍等几分钟后再试。":"Are you sure you want to delete the disk array %{name}? Deletion may result in data loss, so please proceed with caution. If you need to create another RAID after successful deletion, it is recommended that you wait a few minutes and try again.","确认":"Confirm","确认删除所选规则?":"Are you sure you want to delete the selected rule?","确认删除此设备的限速配置?":"Are you sure you want to delete the speed limit configuration for this device?","确认删除此设备的静态分配?":"Are you sure you want to delete the static assignment for this device?","确认安装所需组件?":"Are you sure you want to install the required components?","确认并应用":"Confirm & apply","确认应用":"Confirm & apply","确认恢复":"Confirm Recovery","确认恢复这个策略包?现有分组和额度会被替换。":"Are you sure you want to restore this tactical package?Existing groups and credits will be replaced.","确认批量删除限速配置?":"Confirm batch deletion of speed limit configuration?","确认批量删除静态分配?":"Confirm bulk deletion of static assignments?","确认接管现有设置":"Confirm takeover of existing settings","确认接管现有设置?接管前会创建快照,失败时自动恢复。":"Are you sure you want to take over the existing settings?A snapshot is created before takeover and automatically recovered if it fails.","确认添加":"Confirm Add","确认网关设备已开机并接入当前局域网;仍不可达时恢复默认路线":"Confirm the gateway is powered on and connected to this LAN; if it remains unreachable, restore the default path.","确认迁移并验证":"Migrate and verify","确认这次修改":"Review this change","确认这次调整":"Confirm this adjustment","磁盘":"Disk","磁盘信息":"Disk information","磁盘管理":"Disk Manager","磁盘阵列成员:":"RAID array members:","禁止该设备访问网络":"Prevent this device from accessing the network","禁用":"Disable","离线":"Offline","离线或孤立":"Offline or Orphaned","离线时自检":"Self-test while offline","移除":"Remove","穿戴设备":"Wearable","窗口 %{ item }":"Window %{ item }","立即安装":"Install now","等待状态确认":"Awaiting status confirmation","等待确认":"Awaiting confirmation","等待设备重启,重启完成后":"Waiting for device to restart, after restart","等待设备重新获取地址":"Waiting for the device to renew its address.","策略":"Policies","策略与操作":"Policies & actions","策略包已恢复":"Policy package restored","策略包预检失败,未写入任何配置":"Policy package pre-check failed, no configuration written","策略变更":"Strategic Changes","策略备份":"Strategic Backups","策略备份与恢复":"Strategic Backup and Recovery","策略状态":"Policy status","策略读取失败":"Policy read failed","管理入口":"Manage entrances","管理入口探测":"Manage Entry Probes","管理本机提供的网络服务,并集中处理需要维护的设备规则。":"Manage the network services provided by the machine and centrally handle the device rules that need to be maintained.","类型":"Type","类型待确认":"Type not confirmed","系统信息":"System information","系统内核不支持":"Unsupported by this kernel","系统时间":"System Time","系统根目录":"Rootfs","系统监控":"System Monitor","系统默认":"System default","级别":"Level","组件仍在安装,稍后刷新即可继续,草稿已经保留。":"Component is still being installed, refresh later to continue, draft has been retained.","组件安装完成,草稿已恢复":"Component installed, draft restored","组件状态仍在更新,稍后刷新即可继续,草稿已经保留。":"The component state is still updating. Refresh later to continue; your draft is preserved.","终端":"Terminal","结束":"End","结束时间早于开始时间时,会自动跨到第二天。":"When the end time is earlier than the start time, it automatically spans to the next day.","结果":"Results","统一文件共享":"Unified file sharing","继续":"Continue","继续保存":"Continue saving","继续配置":" to continue configuration","编辑":"Edit","编辑LAN":"Edit LAN","编辑WAN":"Edit WAN","编辑分组":"Edit group","编辑标签":"Edit Label","网关":"Gateway","网关不可达":"Gateway unreachable","网关切换":"Gateway switching","网关地址":"Gateway address","网关地址: ":"Gateway address: ","网关节点":"Gateway Node","网口配置":"NIC Assignment","网络与上网":"Network & Internet","网络向导":"Network Guide","网络地址:":"Network address:","网络异常:":"Network abnormality:","网络接口状态":"NIC Status","网络服务":"Network services","网络规则":"Network Rules","网络规则读取失败":"Network rule read failed","网络设备":"Network device","联网权限":"Internet access","能力与兼容性":"Capabilities and compatibility","自上次报告以来温度变化至少 N 度,则需报告.":"Report if temperature changes by at least N degrees since the last report.","自动填写...":"Auto-fill...","自动恢复未完成,请按提示处理":"Automatic recovery did not finish. Follow the recovery instructions.","自动推荐":"Automatic","自动检查更新":"Auto check update","自动获取":"Auto","自动获取 IPV6(即开启 DHCPv6 客户端)":"Automatically obtain IPv6 (i.e. enable DHCPv6 client)","自动获取(DHCP)":"DHCP","自动获取DNS":"Auto","自动获取IP地址(DHCP)":"Automatically obtain IP address (DHCP)","自动配置...":"Auto...","自定义DNS":"Custom DNS","自定义上网路线":"Customize your route to the internet","自定义网关":"Custom gateway","自定义路线":"Custom path","自己添加":"Custom","自检日志":"Self-test log","自行选择":"Choose manually","至少需要2块硬盘,“区块延展”功能是将数据分成多个块,并将数据块分散到组成的多个硬盘上以提高性能的过程。不提供数据冗余。":"At least 2 hard disks are required. The 'Block Stretch' function is the process of dividing data into multiple blocks and spreading the data blocks across multiple hard disks to improve performance. No data redundancy is provided.","至少需要2块硬盘,同时向所有硬盘写入相同的数据。提供数据冗余。":"At least 2 hard drives are required, write the same data to all drives. Provides data redundancy.","至少需要2块硬盘,将多个硬盘合并为单个存储空间,其容量等于所有硬盘容量的总和。不提供数据冗余。":"At least 2 hard disks are required to combine multiple hard disks into a single storage space with a capacity equal to the sum of all hard disk capacities. No data redundancy is provided.","至少需要3块硬盘,执行段落分块延展,并对分布到所有组成硬盘上的数据执行奇偶校验,从而提供比 RAID 1 更有效的数据冗余。":"Requires at least 3 hard disks, performs block stretching, and performs parity checking on data distributed across all component hard disks, providing more effective data redundancy than RAID 1.","至少需要4块硬盘,执行两个层级的数据奇偶校验以存储等于 2 个硬盘容量的冗余数据,提供比 RAID 5 更大程度的数据冗余。":"Requires at least 4 hard drives, performs two levels of data parity to store redundant data equal to the capacity of 2 hard drives, and provides a greater degree of data redundancy than RAID 5.","至少需要4块硬盘,提供 RAID 0 的性能和 RAID 1 的数据保护级别,将硬盘组合进镜像数据的由两个硬盘组成的组。":"Requires at least 4 hard drives, provides the performance of RAID 0 and the data protection level of RAID 1, combining the hard drives into groups of two hard drives that mirror data.","至少需要可用空间":"Requires at least free space","至少需要填写一个DNS":"At least one DNS must be filled in","节点职责":"Node Responsibilities","花生壳":"Oray","获取不到分区":"Cannot get partition","获取不到分区ID":"Cannot get partition ID","获取不到分区路径":"Cannot get partition path","获取不到设备名称":"Cannot get device name","获取不到设备路径":"Cannot get device path","虚拟 IP 持有者":"Virtual IP Holder","虚拟网关 IPv4":"Virtual Gateway IPv4","覆盖迁移(覆盖目标路径,继续迁移会清空该目标路径下的文件)":"Overwrite migration (overwrite target path, continuing migration will clear files under the target path)","规则台账":"Rules ledger","规则已写入并验证,执行方式已切换":"Rules were written and verified; the enforcement mode was switched","规则已删除":"Rule deleted","规则来源":"Rule source","规则类型":"Rule Type","计划与额度":"Schedule & quota","计划任务":"Scheduled tasks","认证失败?":"Authentication failed?","认识每台设备,并用简单的方式安排它如何连接和上网。":"Know every device and easily decide how it connects and accesses the internet.","设备":"Devices","设备上线":"Device Onboarding","设备信息":"Device Info","设备信息仍可使用,请重试或检查插件状态。":"Device information is still available, please try again or check plugin status.","设备分组":"Device groups","设备分组读取失败":"Device group read failed","设备名称":"Device name","设备和单设备例外不会被删除。":"Device and single device exceptions will not be deleted.","设备图标":"Device icon","设备型号":"Model","设备备注":"Device name","设备备注名":"Device Note Name","设备备注已更新":"Device notes updated","设备已离线或身份发生变化,请刷新后重试":"The device is offline or its identity changed. Refresh and try again.","设备控制":"Device Control","设备清单不可用":"Device list unavailable","设备清单仍可使用,缺失的信息会在数据源恢复后自动补齐。":"The list of devices is still available, and the missing information will be automatically filled in when the data source is restored.","设备状态":"Device status","设备离线":"Device offline","设备策略不可用":"Device policy not available","设备筛选":"Device Screening","设备管理入口":"Device Management Portal","设备类型":"Device type","设备类型不可用":"Device type is unavailable","设备类型已更新":"Device type updated","设备规则":"Device Rules","设备详情":"Device details","设备详情区域":"Device detail sections","设备资料":"Device profile","设备资料不可用":"Device data not available","设备资料已更新":"Device information updated","设备资料读取失败":"Device data read failed","设备重启中...":"Device rebooting...","设备重启中... 若页面长时间未刷新可能需要手动填写地址":"Device rebooting... If the page does not refresh for a long time, you may need to manually enter the address","设备限速":"Device Speed Limit","设备限速服务":"Device speed limit service","设备默认通过本机上网;需要时再添加旁路由或指定网关。":"The device is connected to the Internet by default, and bypass routes or designated gateways are added when necessary.","设定哪一个 IP 地址(IPv4 或 IPv6)会被发送给 DDNS 提供商":"Specify which IP address (IPv4 or IPv6) will be sent to the DDNS provider","设置区域":"Set up area","设置已保存,但设备可能需要断开并重新连接后才会使用新路线。":"The settings have been saved, but the device may need to be disconnected and reconnected before the new route can be used.","设置没有变化":"No changes","设置没有变化。":"No changes.","设置额度":"Set Limit","访问地址:":"Access address:","识别与技术信息":"Identification & technical info","识别依据":"Detection source","识别可信度":"Detection confidence","识别规则更新":"Identify Rule Updates","该入口当前不可访问":"This portal is currently inaccessible","该分区尚未挂载,请先去挂载":"This partition is not yet mounted, please mount it first","该固件不支持沙箱模式":"Current firmware does not support sandbox","该地址已分配给其他设备,请选择一个未占用地址后重试":"This address is assigned to another device. Choose an unused address and try again.","该目标路径不为空":"The target path is not empty","该网关不在当前局域网,请检查网关 IP 或选择其他路线":"This gateway is outside the current LAN. Check its IP address or choose another path.","该设备身份仅本次开机有效,修改会在路由器重启后自动清除。":"This device identity is valid for this boot only. The change will be cleared after the router restarts.","该设备身份仅本次开机有效,备注会在路由器重启后清除。":"This device identity is valid only for this boot; its name is cleared after the router restarts.","该设备身份仅本次开机有效,重启后资料可能需要重新确认。":"This device identity is valid only for this boot; its profile may need confirmation after restart.","该设置与现有规则冲突":"This setting conflicts with an existing rule.","详情":"Details","请先在全局设置中启用该能力":"Enable this capability in LAN settings first.","请先手动停止 Bandix,并启动 Quickstart 限速服务后重试。":"Stop Bandix manually, start the Quickstart speed-limit service, and try again.","请刷新界面":"Please refresh the interface","请前往全局配置开启限速":"Please go to the global configuration to turn on the speed limit","请勾选要删除的数据":"Select the data to delete.","请在保存以后前往'网络-接口'页面配置接口详细参数":"Please go to the 'Network - Interface' page to configure interface details after saving","请在设备详情中检查这条路线":"Check this path in device details.","请填写完整时间":"Enter both start and end times","请填写完整的时段速度上限":"Enter both scheduled speed limits","请尝试名称、IP、MAC 或厂商的其他关键词。":"Try a different keyword for name, IP, Mac, or vendor.","请尝试重新配置":"Please try to reconfigure","请检查填写内容":"Check the entered values.","请确保您已将本设备 WAN 口连接到上级路由器局域网( LAN )接口":"Please ensure that the WAN port of this device is connected to the LAN port of the upstream router","请确保您已将路由 WAN 口连接到光猫":"Please ensure that the router's WAN port is connected to the optical modem","请稍候…":"Please wait...","请稍等1分钟生效后再使用。":"Please wait 1 minute for the settings to take effect before using.","请至少选择一天":"Please select at least one day","请输入":"Enter a value","请输入 1~63 位英文、数字或中间连字符,不能以连字符开头或结尾":"Please enter 1-63 digits English, number or middle hyphen, cannot start or end with a hyphen","请输入%{title}":"Please enter %{title}","请输入BT Tracker服务器地址,多个地址使用换行或者英文逗号分隔":"Please enter the BT Tracker server address, use newline or comma to separate multiple addresses","请输入DNS地址":"Please enter the DNS address","请输入RPC令牌":"Please enter the RPC token","请输入合法的IP地址":"Please enter a valid IP address","请输入合法的地址":"Please enter a valid address","请输入名称/IP/MAC…":"Please enter name/IP/Mac...","请输入密码":"Please enter the password","请输入正确的IP地址":"Enter a valid IP address.","请输入正确的MAC地址":"Please enter the correct MAC address","请输入正确的上传速度":"Please enter the correct upload speed","请输入正确的下载速度":"Please enter the correct download speed","请输入用户名":"Please enter the username","请输入迁移路径":"Please enter the migration path","请选择":"Select","请选择%{title}":"Please choose %{title}","请选择raid类型":"Please select the RAID type","请选择一个硬盘或分区":"Please select a hard drive or partition","请选择有效的设备类型":"Select a valid device type.","请选择目标分区":"Please select the target partition","请选择目标硬盘":"Please select the target hard drive","请选择目标磁盘":"Please select the target disk","请选择硬盘分区":"Please select the hard drive partition","请选择磁盘":"Please select the disk","请选择至少%{min}块磁盘":"Please select at least %{min} disks","请选择要删除的硬盘":"Please select the hard drive to delete","请选择要添加的硬盘":"Please select the hard drive to add","请选择软件源":"Please select the software source","请选择迁移路径":"Please select the migration path","请选择选项":"Please select an option","请选择需要添加的NAS服务":"Please select the NAS service to add","请重试或检查插件状态。":"Try again or check the plugin state.","读写":"Read/write","读取使用规则失败":"Failed to load usage rules","读取结果失败":"Failed to read result","读取设备分组失败":"Failed to read device group","读取设备资料失败":"Failed to read device data","调度":"Schedule","调试":"Debug","警告:格式化会清空 %{partname} 分区数据,请你谨慎操作":"Warning: Formatting will clear all data on %{partname} partition, please proceed with caution","警告:该操作将初始化 %{model} 硬盘并创建分区,请你谨慎操作":"Warning: This operation will initialize %{model} hard drive and create partitions, please proceed with caution","账号不能为空":"Account cannot be empty","账号用户名":"Account username","资源占用较低,按固定 IPv4 执行。":"Uses fewer resources and enforces limits by reserved IPv4 address.","跨设备共享(易有云)":"Cross-device sharing (Linkease)","路由器 IP 可能已经修改成功。若刷新页面失败,请重新连接路由器,否则请尝试重新配置。":"The router IP may have been modified successfully. If refreshing the page fails, please reconnect to the router, otherwise try to reconfigure it.","路由器地址":"Router address","路由器配置":"Router Configuration","路线可编辑":"Route editable","路线名称":"Route name","路线类型":"Path type","跳转教程":"Jump to tutorial","跳过":"Skip","身份稳定性":"Identity scope","软件暂未安装":"Software not yet installed","软件源配置":"Feeds Mirror","软件源错误":"Feeds Inaccessible","轻量兼容模式":"Lightweight compatibility","达到后":"When reached","迁移到:":"Migrate to: ","迁移失败,原设置已保留":"Migration failed; the original settings were preserved.","迁移成功!":"Migration successful!","迁移现有 Bandix 规则":"Migrate existing Bandix rules","运行":"Run","运行异常":"Exception running","运行正常":"Normal operation","运行状态":"Operational Status","运行调试":"Run debugging","近期流量趋势":"Recent Traffic Trends","返回":"Return","返回修改":"Back to editing","还没有自定义上网路线":"No custom internet routes yet","还没有设备分组":"No device groupings yet","这台设备的 IPv6 流量暂不受此限速约束。":"IPv6 traffic from this device is not currently covered by this speed limit.","这是累计流量额度,不是速度上限或定时限速。":"This is a cumulative flow limit, not a speed cap or timed speed limit.","进入控制台":"Enter console","进行测速":" to test speed","远程域名":"Remote domains","连接":"Connection","连接数":"Connections","连接方式":"Connection type","连接洞察":"Connect insights","连接现有路由器":"Connect to existing router","退出":"Exit","选择":"Select","选择一种连接方式以开始":"Choose a connection method to start","选择将要用于创建 RAID 的硬盘,通过 USB 接入的设备不会在列表中显示(USB接入不稳定)。":"Select the hard disk that will be used to create the RAID. Devices connected via USB will not be displayed in the list (USB connection is unstable).","选择当前结果":"Select Current Result","选择硬盘(选择空闲的硬盘恢复RAID设备):":"Choose a hard drive (select idle hard drive to restore RAID device):","选择硬盘(选择被添加到RAID的硬盘):":"Choose a hard drive (select the hard drive to be added to RAID):","选择硬盘(选择要从RAID阵列中删除的硬盘):":"Choose a hard drive (select the hard drive to be removed from RAID array):","选择磁盘":"Choose disk","选择策略包":"Select Policy Package","选择设备":"Select devices","选择设备图标":"Select a device icon","选择设备类型":"Choose device type","通知已关闭":"Notifications are off","通知已启用":"Notifications Enabled","通知设置保存失败":"Failed to save notification settings","通过路由器局域网地址重新进入,并重新开启地址分配;或先确认外部 DHCP 已就绪。":"Re-enter with the router LAN address and reopen the address assignment; or confirm that the external DHCP is ready.","速度上限":"Speed limit","部分异常":"Partially abnormal","部分设备信息暂不可用":"Some device information is temporarily unavailable","部分设备需要处理":"Some devices need to be handled","配置中...":"Configuring...","配置中....":"Configuring....","配置为旁路由":"Configure as bypass router","配置互联网":"Configure internet","配置失败":"Configuration failed","配置宽带账号":"Configure PPPoE account","配置已保存,等待设备重新获取地址":"Configuration saved, waiting for device to reacquire address","配置已保存,请在双端完成后验证实际持有者":"The configuration has been saved, please verify the actual holder after the two-end completion","配置已写入,但状态记录需要恢复":"Configuration was written, but the state record needs recovery.","配置应用失败":"Configuration apply failed.","配置成功":"Configuration successful","配置成功!":"Configuration successful!","配置旁路由网络":"Configure bypass router network","配置步骤":"Configuration Steps","配置沙箱重启中...":"Configuring sandbox rebooting...","配置没有变化":"No configuration changes","配置目录":"Configure directory","配置目录:":"Configure directory:","配置超时":"Configuration timeout","采集中":"Acquisition","重新创建":"Recreate","重新加载":"Reload","重新检查":"Check again","重置":"Reset","重置中...":"Reseting…","重试":"Retry","链接":"Link","错误":"Error","长时自检":"Long self-test","闲置":"Idle","闲置-处于待机、睡眠、闲置模式下不检查设备,在闲置状态下,大多数磁盘还在转动,所以这可能不适合你。":"Idle - Does not check devices in standby, sleep, or idle modes. Most disks are still spinning in idle mode, so this may not be suitable for you.","阿里云":"Aliyun","附加的 BT Tracker:":"Additional BT Tracker:","限制累计用量":"Limit cumulative usage","限制这台设备的最高速率":"Limit the maximum rate for this device","限制速度":"Limit speed","限速功能未安装":"Speed Limit Feature Not Installed","限速地址不稳定":"Speed limit address is unstable","限速已保存,服务尚未加载":"Speed limit saved but not loaded","限速已加载,效果待验证":"Speed limit loaded; effect not yet verified","限速已生效":"Speed limit verified","限速服务准备失败,可稍后重试":"Could not prepare the speed limit service. Try again later.","限速服务已启用,输入内容已恢复":"Speed limit service enabled; your input was restored.","限速服务已安装,请继续启用,输入内容已恢复":"Speed limit service installed. Enable it to continue; your input was restored.","限速服务影响":"Speed limit service impact","限速服务设置已应用":"Speed limit settings applied","限速状态待确认":"Speed limit status not confirmed","限速规则不在实际上网节点":"The speed limit rule is not on the active Internet gateway","限速配置":"Speed Limit Configuration","集中检查离线、孤立或需要修复的规则;新设置请从对应设备详情进入。":"Focus on checking for rules that are offline, orphaned, or need to be fixed; new settings can be accessed from the corresponding device details.","需先预留当前地址":"Reserve the current address first","需要修复":"Needs fixing","需要安装DDNSTO插件,点击“确定”开始安装":"DDNSTO plugin needs to be installed, click 'OK' to start installation","需要检查":"Needs Inspection","需要确认":"Confirmation required","静态IP地址":"Static IP Address","静态分配":"Static Assignment","静态地址":"Static","静态网络":"Static","非法的用户名":"Invalid username","面包屑":"Breadcrumbs","项":"Item","预检与应用":"Pre-inspection and application","预检失败":"Pre-check failed","预检未通过":"Pre-test failed","预检通过":"Pre-test passed","预览":"Preview","预览修改":"Review changes","预览地址与上网路线":"Review address & Internet path","预览地址分配设置":"Review DHCP settings","预览影响":"Review impact","预览恢复联网":"Review restoring Internet access","预览断开网络":"Review blocking Internet access","预览添加":"Review addition","预览限速":"Review speed limit","预览限速服务设置":"Review speed limit settings","预计重载":"Services to reload","额度 GB":"Quota (GB)","额度(GB)":"Quota (GB)","额度已用尽":"Quota exhausted","首先确认主路由开启了 DHCP 服务,确认本路由 WAN 口是 DHCP 客户端模式(默认即是,如果不是可使用“连接现有路由器”向导改成 DHCP 客户端),然后将本路由 WAN 口与主路由的 LAN 连接,以自动获取配置。":"First, make sure that the DHCP service is turned on on the main router, and confirm that the WAN port of this router is in DHCP client mode (it is by default. If not, you can use the 'Connect to an Existing Router' wizard to change it to DHCP client). Then connect the WAN port of this router to the LAN of the main router to automatically obtain the configuration.","首页":"Home","高":"High","高级:执行方式与迁移":"Advanced: enforcement mode and migration","高级:限速执行方式":"Advanced: enforcement mode","高级模式":"Advanced mode","高级网络工具":"Advanced network tools","高级能力读取失败":"Advanced Ability Read Failed","高级设置":"Advanced settings","高级选项":"Advanced options","默认":"Default","默认上网路线":"Default Internet path","默认不采集或记录 DNS 名称":"Do not collect or log DNS names by default","默认密码:":"Default password:","默认用户名:":"Default username:","默认网关":"Default Gateway","默认规则":"Default rules","默认路线":"Default path","存储配置":"Storage settings","数据迁移":"Data migration","更多操作":"More actions","完整信息":"Complete information","下载管理":"Download manager","个模块":"widgets","今日上传":"Uploaded today","今日下载":"Downloaded today","今日数据":"Today’s traffic","使用率":"Usage","保存设置":"Save settings","信号强度":"Signal strength","信息概览":"Overview","全部显示":"Show all","共":"Total","内核":"Kernel","内核版本":"Kernel version","动态域名解析":"Dynamic DNS","包含安全修复和性能改进":"Includes security fixes and performance improvements","台设备在线":"devices online","容器数量":"Containers","峰值上传":"Peak upload","峰值下载":"Peak download","已使用":"Used","已显示模块":"Visible widgets","已连接":"Connected","日志查看":"System logs","智能内网穿透服务":"Remote access service","未连接":"Disconnected","检测到新版本":"New version available","模块显示设置":"Widget visibility","稍后提醒":"Remind me later","立即更新":"Update now","系统更新可用":"System update available","系统维护":"Maintenance","统一共享高级配置":"Advanced sharing settings","网络延迟":"Network latency","网络流量":"Network traffic","网络连接和IP地址":"Connection & IP","网络连接正常":"Connection normal","至少保留一个网络接口!":"Keep at least one network interface.","设备管理":"Device management","请至少保留一项!":"Keep at least one item.","运行中":"Running","连接设备数量":"Connected devices","选择要在首页显示的功能模块,隐藏不常用的模块可以让界面更简洁":"Choose which widgets to show on your homepage.","配置网络接口":"Configure interfaces","镜像数量":"Images","已安装限速服务,但当前执行方式不可用;请到局域网设置选择并预览。":"The speed limit service is installed, but the selected enforcement mode is unavailable. Choose and preview a mode in LAN settings.","已安装限速服务,但当前执行方式不可用;请在下方高级设置中查看服务状态,选择后预览。":"The speed limit service is installed, but the selected mode is unavailable. Review service status in the advanced settings below, then choose and preview a mode.","权限说明":"Permission scope","配置只读":"Read-only configuration","本机配置":"Local configuration","地址池":"Address pool","以下为本机保存的配置,不代表其他路由器当前生效的配置。":"These settings are saved on this router; they do not describe the active configuration of another router.","查看本机配置":"View local configuration","本机配置暂不可用":"Local configuration unavailable","未能读取可靠的地址分配配置,其他服务仍可使用。":"Address configuration could not be read reliably. Other services remain available.","状态未更新":"Status not updated","查看执行方式":"Inspect enforcement mode","已安装限速服务,但当前执行方式不可用。":"The speed limit service is installed, but the selected enforcement mode is unavailable.","检测到其他设备负责地址分配,请在负责地址分配的路由器上管理相关设置。":"Another device was observed assigning addresses. Manage related settings on the router responsible for address allocation.","地址配置可编辑":"Address configuration editable","地址配置只读":"Address configuration read-only","路线只读":"Internet paths read-only","其他服务按各自权限管理":"Other services have their own permissions","检查超时,请重试。草稿已保留。":"The check timed out. Retry when ready; your draft is retained.","检查失败,状态未更新。请重试,草稿已保留。":"The check failed and status was not updated. Retry when ready; your draft is retained.","功能组件":"Feature components","当前方式":"Current mode","已就绪":"Ready","查看并安装":"Review and install","管理组件":"Manage components","管理限速组件":"Manage limit components","组件观察未更新,输入内容仍保留,请稍后重试。":"Component status was not updated. Your inputs are retained; retry later.","网络范围":"Networks","选择局域网":"Choose a LAN","设备总览":"Device overview","网络配置请前往系统网络设置":"Manage networks in system network settings","此网络的设备、分组与设置":"Devices, groups and settings for this network","查看各个局域网中的设备":"Browse devices across your local networks","暂时只读":"Read only","查看全部设备":"View all devices"}} diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/index.js b/luci-app-quickstart/htdocs/luci-static/quickstart/index.js index be36df695..061cc7001 100644 --- a/luci-app-quickstart/htdocs/luci-static/quickstart/index.js +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/index.js @@ -1,3 +1 @@ -var go=Object.defineProperty,vo=Object.defineProperties;var bo=Object.getOwnPropertyDescriptors;var xa=Object.getOwnPropertySymbols;var ho=Object.prototype.hasOwnProperty,_o=Object.prototype.propertyIsEnumerable;var We=(o,n,a)=>n in o?go(o,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[n]=a,st=(o,n)=>{for(var a in n||(n={}))ho.call(n,a)&&We(o,a,n[a]);if(xa)for(var a of xa(n))_o.call(n,a)&&We(o,a,n[a]);return o},vt=(o,n)=>vo(o,bo(n));var xo=(o,n)=>()=>(n||o((n={exports:{}}).exports,n),n.exports);var ve=(o,n,a)=>(We(o,typeof n!="symbol"?n+"":n,a),a);var L=(o,n,a)=>new Promise((l,u)=>{var d=g=>{try{k(a.next(g))}catch(p){u(p)}},c=g=>{try{k(a.throw(g))}catch(p){u(p)}},k=g=>g.done?l(g.value):Promise.resolve(g.value).then(d,c);k((a=a.apply(o,n)).next())});import{a as wo,c as ko,d as we,b as I,e as Q,u as e,o as r,f as s,g as t,t as i,n as ht,h as D,i as Y,r as _t,j as Yt,w as O,v as Rt,k as Ia,l as Z,m as V,p as E,q as $t,s as Pt,x as pt,F as U,y as tt,z as at,A as jt,B as ut,C as ct,D as ke,E as ee,T as St,G as Nt,H as lt,I as ft,J as xt,K as dt,L as gt,M as Bt,N as Xe,O as Ma,P as La,Q as Oa,R as ta,S as ea,U as Na,V as aa,W as Pe,X as yo,Y as oa,Z as ye,_ as Fo,$ as Eo,a0 as na,a1 as $o,a2 as Te,a3 as Co,a4 as Ie,a5 as Do,a6 as Bo,a7 as Yo,a8 as Ao,a9 as So,aa as zo,ab as Po,ac as To}from"./vendor.js?v=91daea62";var sT=xo(ae=>{const Io=function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))l(u);new MutationObserver(u=>{for(const d of u)if(d.type==="childList")for(const c of d.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&l(c)}).observe(document,{childList:!0,subtree:!0});function a(u){const d={};return u.integrity&&(d.integrity=u.integrity),u.referrerpolicy&&(d.referrerPolicy=u.referrerpolicy),u.crossorigin==="use-credentials"?d.credentials="include":u.crossorigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function l(u){if(u.ep)return;u.ep=!0;const d=a(u);fetch(u.href,d)}};Io();const Gt={language:void 0,numberFormat:new Intl.NumberFormat("en",{notation:"compact"})},Mo=o=>L(ae,null,function*(){const n=window.vue_lang;new Date().getTime();let a={};try{const d=yield wo({url:window.vue_lang_data,method:"GET"});d.data&&(a=d.data)}catch(d){console.log(d)}const l=ko({defaultLanguage:n,mutedLanguages:["zh-cn"],translations:a,setGlobalProperties:!1,provideDirective:!1,provideComponent:!1});o.use(l),Gt.language=l;const{$gettext:u}=l;window.$i18n=u;try{Gt.numberFormat=new Intl.NumberFormat(n,{notation:"compact"})}catch(d){console.error("Intl.NumberFormat unsupported lang",n,d)}}),J=()=>{if(Gt.language)return Gt.language;throw new Error("I18N Uninitialized!")},Me=()=>({$gettext:(o,n,a)=>{if(Gt.language)return Gt.language.$gettext(o,n,a);throw new Error("I18N Uninitialized!")},$ngettext:(o,n,a,l,u)=>{if(Gt.language)return Gt.language.$ngettext(o,n,a,l,u);throw new Error("I18N Uninitialized!")}}),De=o=>typeof o=="number"?Gt.numberFormat.format(o):"?",{$gettext:Lo,$ngettext:uT}=Me(),Va=(o,n)=>L(ae,null,function*(){return new Promise((a,l)=>L(ae,null,function*(){try{const u=yield fetch(o,n);if(Math.floor(u.status/100)!=2)throw u.status+" "+u.statusText;const d=st({},u);d.data=yield u.json(),a(d)}catch(u){const d=u;l(Lo("\u7F51\u7EDC\u5F02\u5E38\uFF1A")+((d==null?void 0:d.message)||u))}}))});class ia{constructor(n){ve(this,"config",{baseURL:"",headers:{}});ve(this,"useRequest",n=>n);ve(this,"useResponse",n=>n);ve(this,"useError",n=>n);n.baseURL&&(this.config.baseURL=n.baseURL),n.headers&&(this.config.headers=n.headers)}static create(n){return new ia(n)}Do(n,a){return L(this,null,function*(){return new Promise((l,u)=>L(this,null,function*(){try{const d=this.useRequest({baseURL:this.config.baseURL,headers:this.config.headers});n=`${d.baseURL||""}${n}`,a.headers==null&&(a.headers={}),d.headers&&(a.headers=st({},d.headers));const k=yield fetch(n,a),g=st({},k);g.data=yield k.json(),l(this.useResponse(g))}catch(d){this.useError(d),u(d)}}))})}TEXT(n,a){return L(this,null,function*(){return new Promise((l,u)=>L(this,null,function*(){try{const d=this.useRequest({baseURL:this.config.baseURL,headers:this.config.headers});n=`${d.baseURL||""}${n}`,a.headers==null&&(a.headers={}),d.headers&&(a.headers=st({},d.headers));const k=yield fetch(n,a),g=st({},k);g.data=yield k.text(),l(g)}catch(d){this.useError(d),u(d)}}))})}interceptors(){const n=this;return{requset:{use(a){n.useRequest=a}},response:{use(a,l){n.useResponse=a,l&&(n.useError=l)}}}}}const Ga=ia.create({});Ga.interceptors().requset.use(o=>o);Ga.interceptors().response.use(o=>(o.data&&o.data.success==null&&o.data.success==0,o));const{$gettext:ja,$ngettext:cT}=Me(),Oo="/cgi-bin/luci/istore",No="/cgi-bin/luci/admin";let Ae=!1;const W=(o,n)=>(o.indexOf("//")==-1&&(o=`${Oo}${o}`),Va(o,n).then(a=>(a!=null&&a.data&&a.data.success==-1001&&a.data.error=="Forbidden"&&(Ae||(Ae=!0,alert(ja("\u767B\u5F55\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55")),location.reload())),a))),Vo=(o,n)=>(o.indexOf("//")==-1&&(o=`${No}${o}`),Va(o,n).then(a=>(a!=null&&a.data&&a.data.success==-1001&&a.data.error=="Forbidden"&&(Ae||(Ae=!0,alert(ja("\u767B\u5F55\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55")),location.reload())),a))),Go={Statistics:{GET(){return W("/u/network/statistics/",{method:"GET"})}},Status:{GET(){return W("/u/network/status/",{method:"GET"})}},Device:{List:{GET(){return W("/network/device/list/",{method:"GET"})}}},Homebox:{Enable:{POST(){return W("/network/homebox/enable/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"}})}}},CheckPublickNet:{POST(o){return W("/network/checkPublicNet/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},GetInterfaceConfig:{GET(){return W("/network/interface/config/",{method:"GET",headers:{"Content-Type":"application/json;charset=utf-8"}})}},POSTInterfaceConfig:{POST(o){return W("/network/interface/config/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},PortList:{GET(){return W("/network/port/list/",{method:"GET",headers:{"Content-Type":"application/json;charset=utf-8"}})}}},jo={Version:{GET(){return W("/u/system/version/",{method:"GET"})}},CheckUpdate:{GET(){return W("/system/check-update/",{method:"GET"})}},AutoCheckUpdate:{POST(o){return W("/system/auto-check-update/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Reboot:{POST(){return W("/system/reboot/",{method:"POST"})}},Status:{GET(){return W("/system/status/",{method:"GET"})}}},Uo={Disk:{Status:{GET(){return W("/nas/disk/status/",{method:"GET"})}},Erase:{POST(o){return W("/nas/disk/erase",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Init:{POST:o=>W("/nas/disk/init/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})},InitRest:{POST:o=>W("/nas/disk/initrest/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})},Partition:{Format:{POST:o=>W("/nas/disk/partition/format",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})},Mount:{POST:o=>W("/nas/disk/partition/mount",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}}},Service:{Status:{GET(){return W("/u/nas/service/status/",{method:"GET"})}}},Samba:{Create:{POST(o){return W("/nas/samba/create",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}}},Webdav:{Create:{POST(o){return W("/nas/webdav/create",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Status:{GET(){return W("/nas/webdav/status/",{method:"GET"})}}},Linkease:{Enable:{POST(){return W("/u/nas/linkease/enable",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"}})}}},Sandbox:{POST(o){return W("/nas/sandbox/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},GetSandbox:{GET(){return W("/nas/sandbox/",{method:"GET"})}},SandboxDisks:{GET(){return W("/nas/sandbox/disks/",{method:"GET"})}},SandboxCommit:{POST(){return W("/u/nas/sandbox/commit/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify({})})}},SandboxReset:{POST(){return W("/nas/sandbox/reset/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"}})}},SandboxExit:{POST(){return W("/nas/sandbox/exit/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"}})}}},qo={Check:{POST(o){return W("/app/check/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Install:{POST(o){return W("/app/install/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}}},Ro={Pppoe:{GET(){return W("/guide/pppoe/",{method:"GET"})},POST(o){return W("/guide/pppoe/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},DnsConfig:{GET(){return W("/guide/dns-config/",{method:"GET"})},POST(o){return W("/guide/dns-config/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},DhcpClient:{POST(o){return W("/guide/dhcp-client/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},ClientModel:{GET(){return W("/guide/client-mode/",{method:"GET"})},POST(o){return W("/guide/client-mode/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},GatewayRouter:{POST(o){return W("/guide/gateway-router/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},DockerStatus:{GET(){return W("/guide/docker/status/",{method:"GET"})}},DockerPartitionList:{GET(){return W("/guide/docker/partition/list/",{method:"GET"})}},DockerTransfer:{POST(o){return W("/guide/docker/transfer/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},DockerSwitch:{POST(o){return W("/guide/docker/switch/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},DownloadService:{Status:{GET(){return W("/guide/download-service/status/",{method:"GET"})}}},DownloadPartition:{List:{GET(){return W("/guide/download/partition/list/",{method:"GET"})}}},Aria2Init:{POST(o){return W("/guide/aria2/init/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},qbitorrentInit:{POST(o){return W("/guide/qbittorrent/init/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},transmissionInit:{POST(o){return W("/guide/transmission/init/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},GetLan:{GET(){return W("/guide/lan/",{method:"GET"})}},LanIp:{POST(o){return W("/guide/lan/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},SoftSource:{POST(o){return W("/guide/soft-source/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},GetSoftSource:{GET(){return W("/guide/soft-source/",{method:"GET"})}},SoftSourceList:{GET(){return W("/guide/soft-source/list/",{method:"GET"})}},PostDdns:{POST(o){return W("/u/guide/ddns/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},GetDdns:{GET(){return W("/u/guide/ddns/",{method:"GET"})}},Ddnsto:{POST(o){return W("/guide/ddnsto/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},DdntoConfig:{GET(){return W("/guide/ddnsto/config/",{method:"GET"})}},DdnstoAddress:{POST(o){return W("/guide/ddnsto/address/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}}},Wo={Create:{POST(o){return W("/raid/create/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Delete:{POST(o){return W("/raid/delete/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Add:{POST(o){return W("/raid/add/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Remove:{POST(o){return W("/raid/remove/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Recover:{POST(o){return W("/raid/recover/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Detail:{POST(o){return W("/raid/detail/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},List:{GET(){return W("/raid/list/",{method:"GET"})}},CreateList:{GET(){return W("/raid/create/list/",{method:"GET"})}},Autofix:{POST(){return W("/raid/autofix/",{method:"POST"})}}},Ho={Log:{GET(){return W("/smart/log/",{method:"GET"})}},List:{GET(){return W("/u/smart/list/",{method:"GET"})}},Config:{GET(){return W("/smart/config/",{method:"GET"})},POST(o){return W("/smart/config/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}},Test:{POST(o){return W("/u/smart/test/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})},Result:{POST(o){return W("/smart/test/result/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}}},Attribute:{Result:{POST(o){return W("/smart/attribute/result/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}}},Extend:{Result:{POST(o){return W("/smart/extend/result/",{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(o)})}}}},Jo={List:{GET(){return W("/wireless/list-iface/",{method:"GET"})}},Switch:{POST(o){return W("/wireless/enable-iface/",{body:JSON.stringify(o),method:"POST"})}},Power:{POST(o){return W("/wireless/set-device-power/",{body:JSON.stringify(o),method:"POST"})}},Edit:{POST(o){return W("/wireless/edit-iface/",{body:JSON.stringify(o),method:"POST"})}},Setup:{POST(o){return W("/wireless/setup/",{body:JSON.stringify(o),method:"POST"})}}},Zo={getInstalled:{GET(){return Vo("/store/installed/",{method:"GET"})}},needSetup:{GET(){return W("/guide/need/setup/",{method:"GET"})}},setPassword:{POST(o){return W("/system/setPassword/",{body:JSON.stringify(o),method:"POST"})}},completeGuide:{POST(){return W("/guide/finish/setup/",{method:"POST"})}}},Ko={listDevices:{GET(){return W("/lanctrl/listDevices/",{method:"GET"})}},staticDeviceConfig:{POST(o){return W("/lanctrl/staticDeviceConfig/",{body:JSON.stringify(o),method:"POST"})}},globalConfigs:{GET(){return W("/lanctrl/globalConfigs/",{method:"GET"})}},speedLimitConfig:{POST(o){return W("/lanctrl/speedLimitConfig/",{body:JSON.stringify(o),method:"POST"})}},listStaticDevices:{GET(){return W("/lanctrl/listStaticDevices/",{method:"GET"})}},listSpeedLimitedDevices:{GET(){return W("/lanctrl/listSpeedLimitedDevices/",{method:"GET"})}},dhcpGatewayConfig:{POST(o){return W("/lanctrl/dhcpGatewayConfig/",{body:JSON.stringify(o),method:"POST"})}},dhcpTagsConfig:{POST(o){return W("/lanctrl/dhcpTagsConfig/",{body:JSON.stringify(o),method:"POST"})}},enableSpeedLimit:{POST(o){return W("/lanctrl/enableSpeedLimit/",{body:JSON.stringify(o),method:"POST"})}},enableFloatGateway:{POST(o){return W("/lanctrl/enableFloatGateway/",{body:JSON.stringify(o),method:"POST"})}},speedsForDevices:{GET(){return W("/lanctrl/speedsForDevices/",{method:"GET"})}},speedsForOneDevice:{POST(o){return W("/lanctrl/speedsForOneDevice/",{body:JSON.stringify(o),method:"POST"})}}},Qo={GET(){return W("/system/module-settings/",{method:"GET"})},POST(o){return W("/system/module-settings/",{body:JSON.stringify(o),method:"POST"})}};var Xo=Object.freeze(Object.defineProperty({__proto__:null,Network:Go,System:jo,Nas:Uo,App:qo,Guide:Ro,Raid:Wo,Smart:Ho,Quickwifi:Jo,GuidePage:Zo,DeviceMangement:Ko,ModuleSettings:Qo},Symbol.toStringTag,{value:"Module"})),G=st({},Xo);const ra=we("app",{state:()=>({portitemStyle:{show:!1,left:0,top:0,portitem:{name:"",macAddress:"",linkSpeed:"",linkState:"",rx_packets:"",tx_packets:"",interfaceNames:[],master:"",duplex:""}}})});we("guide",{});const tn=we("nas",{state:()=>({webdav:{}})}),Fe=we("network",{state:()=>({status:{},deviceList:{}}),getters:{},actions:{updateNetworkStatus(o){this.status=o},requestDeviceList(){G.Network.Device.List.GET().then(o=>{if(o!=null&&o.data){const{result:n}=o==null?void 0:o.data;n&&(this.deviceList=n)}})},incrTime(){this.status.uptimeStamp&&this.status.uptimeStamp++}}}),Le=we("system",{state:()=>({version:{},checkUpdate:null,updateChecked:!1,systemStatus:{}}),getters:{},actions:{incrTime(){var o;(o=this.systemStatus)!=null&&o.uptime&&this.systemStatus.uptime++},requestVersion(){G.System.Version.GET().then(o=>{var n;(n=o==null?void 0:o.data)!=null&&n.result&&(this.version=o.data.result)})},requestCheckUpdate(){this.updateChecked||(this.updateChecked=!0,G.System.CheckUpdate.GET().then(o=>{var n;(n=o==null?void 0:o.data)!=null&&n.result&&(this.checkUpdate=o.data.result)}).finally(()=>{this.checkUpdate==null&&(this.checkUpdate={needUpdate:!1,msg:"skip"})}))},updateSystemStatus(o){this.systemStatus=o}}});let wa=!1;const en=()=>{if(wa)return;wa=!0;let o=!0,n=!0;const a=Fe(),l=Le(),u=function(){return(!o&&document.hidden?Promise.resolve():G.System.Status.GET().then(c=>{c!=null&&c.data.result&&l.updateSystemStatus(c.data.result)})).finally(()=>{setTimeout(u,5e3),o&&(setInterval(()=>{l.incrTime()},1e3),o=!1)})},d=function(){return(!n&&document.hidden?Promise.resolve():G.Network.Status.GET().then(c=>{if(c!=null&&c.data){const{result:k}=c==null?void 0:c.data;k&&a.updateNetworkStatus(k)}})).finally(()=>{setTimeout(d,5e3),n&&(setInterval(()=>{a.incrTime()},1e3),n=!1)})};d(),a.requestDeviceList(),setTimeout(()=>{l.requestVersion(),u()},1100)};var N=(o,n)=>{const a=o.__vccOpts||o;for(const[l,u]of n)a[l]=u;return a};const an=I({setup(o){const{$gettext:n,$ngettext:a}=J(),l=ra(),u=Q(()=>l.portitemStyle.portitem),d=Q(()=>l.portitemStyle.show),c=Q(()=>({bottom:`calc(100% - ${l.portitemStyle.top}px)`,left:`${l.portitemStyle.left}px`})),k=m=>{switch(m){case"full":return n("\u5168\u53CC\u5DE5");case"half":return n("\u534A\u53CC\u5DE5")}},g=m=>{l.portitemStyle.show=!0},p=m=>{l.portitemStyle.show=!1};return(m,v)=>e(d)?(r(),s("div",{key:0,class:"disk-item-tooltip",style:ht(e(c)),onMouseenter:g,onMouseleave:p},[t("div",null,i(k(e(u).duplex)),1),t("div",null,i(e(n)("\u540D\u79F0\uFF1A"))+i(e(u).name||"--"),1),t("div",null,i(e(n)("MAC\uFF1A"))+i(e(u).macAddress||"--"),1),t("div",null,i(e(n)("\u63A5\u6536\uFF1A"))+i(e(u).rx_packets||"--"),1),t("div",null,i(e(n)("\u53D1\u9001\uFF1A"))+i(e(u).tx_packets||"--"),1)],36)):D("",!0)}});var on=N(an,[["__scopeId","data-v-0698ba82"]]);const nn={id:"main"},rn=I({setup(o){return(n,a)=>{const l=_t("router-view");return r(),s("div",nn,[Y(l),Y(on)])}}});var sn=N(rn,[["__scopeId","data-v-9bc295c2"]]);const dn={},ln={t:"1640593669834",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"54870",width:"128",height:"128"},un=t("path",{d:"M148.7872 57.4464h177.152c64.9216 0 118.0672 53.1456 118.0672 118.0672v295.2192H148.7872C83.8656 470.7328 30.72 417.5872 30.72 352.5632v-177.152C30.72 110.592 83.8656 57.4464 148.7872 57.4464z m0 531.3536h295.2192v295.2192c0 64.9216-53.1456 118.0672-118.0672 118.0672h-177.152C83.8656 1001.984 30.72 948.9408 30.72 883.9168v-177.152C30.72 641.9456 83.8656 588.8 148.7872 588.8z m0 0M768.7168 559.2064L562.0736 346.7264c-23.6544-17.7152-35.4304-53.1456-35.4304-82.6368s11.776-59.0848 35.4304-82.6368L686.08 57.4464C733.2864 10.24 810.0864 10.24 851.3536 57.4464l124.0064 124.0064c23.6544 23.6544 35.4304 53.1456 35.4304 82.6368s-11.776 59.0848-35.4304 82.6368L768.7168 559.2064z m0-478.208c-17.7152 0-29.4912 5.9392-41.3696 17.7152l-123.904 124.0064c-11.776 11.776-17.7152 23.6544-17.7152 41.3696s5.9392 29.4912 17.7152 41.3696l165.2736 165.2736 165.2736-165.2736c11.776-11.776 17.7152-23.6544 17.7152-41.3696s-5.9392-29.4912-17.7152-41.3696L809.984 98.7136c-11.776-11.776-23.552-17.7152-41.2672-17.7152z m0 0","p-id":"54871"},null,-1),cn=t("path",{d:"M562.0736 588.8h295.2192c64.9216 0 118.0672 53.1456 118.0672 118.0672v177.152c0 64.9216-53.1456 118.0672-118.0672 118.0672h-177.152c-64.9216 0-118.0672-53.1456-118.0672-118.0672V588.8z m0 0","p-id":"54872"},null,-1),pn=[un,cn];function fn(o,n){return r(),s("svg",ln,pn)}var mn=N(dn,[["render",fn]]);const gn={},vn={t:"1640598743438",class:"icon",viewBox:"0 0 1036 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"65341",width:"128",height:"128"},bn=t("path",{d:"M984.177778 432.355556l-45.511111 0c-22.755556 0-45.511111-17.066667-51.2-39.822222l-28.444444-68.266667C847.644444 312.888889 853.333333 284.444444 870.4 267.377778l34.133333-34.133333c17.066667-17.066667 17.066667-39.822222 0-56.888889l-56.888889-56.888889c-17.066667-17.066667-39.822222-17.066667-56.888889 0l-34.133333 34.133333C739.555556 170.666667 711.111111 176.355556 694.044444 164.977778L625.777778 136.533333c-22.755556-5.688889-39.822222-28.444444-39.822222-51.2L585.955556 39.822222c0-22.755556-17.066667-39.822222-39.822222-39.822222L472.177778 0C449.422222 0 432.355556 17.066667 432.355556 39.822222l0 45.511111c0 22.755556-17.066667 45.511111-39.822222 51.2L329.955556 164.977778C312.888889 176.355556 284.444444 170.666667 267.377778 153.6L233.244444 119.466667c-17.066667-17.066667-39.822222-17.066667-56.888889 0l-56.888889 56.888889c-17.066667 17.066667-17.066667 39.822222 0 56.888889l34.133333 34.133333C170.666667 284.444444 176.355556 312.888889 164.977778 329.955556L136.533333 398.222222C130.844444 415.288889 108.088889 432.355556 85.333333 432.355556l-45.511111 0C17.066667 432.355556 0 449.422222 0 472.177778l0 79.644444c0 22.755556 17.066667 39.822222 39.822222 39.822222l45.511111 0c22.755556 0 45.511111 17.066667 51.2 39.822222l28.444444 68.266667C176.355556 711.111111 170.666667 739.555556 153.6 756.622222l-34.133333 34.133333c-17.066667 17.066667-17.066667 39.822222 0 56.888889l56.888889 56.888889c17.066667 17.066667 39.822222 17.066667 56.888889 0l34.133333-34.133333C284.444444 853.333333 312.888889 847.644444 329.955556 859.022222L398.222222 887.466667c22.755556 5.688889 39.822222 28.444444 39.822222 51.2l0 45.511111c0 22.755556 17.066667 39.822222 39.822222 39.822222l79.644444 0c22.755556 0 39.822222-17.066667 39.822222-39.822222l0-45.511111c0-22.755556 17.066667-45.511111 39.822222-51.2l68.266667-28.444444c17.066667-11.377778 45.511111-5.688889 62.577778 11.377778l34.133333 34.133333c17.066667 17.066667 39.822222 17.066667 56.888889 0l56.888889-56.888889c17.066667-17.066667 17.066667-39.822222 0-56.888889l-34.133333-34.133333c-17.066667-17.066667-17.066667-45.511111-11.377778-62.577778l28.444444-68.266667c5.688889-22.755556 28.444444-39.822222 51.2-39.822222l45.511111 0c22.755556 0 39.822222-17.066667 39.822222-39.822222L1035.377778 472.177778C1024 449.422222 1006.933333 432.355556 984.177778 432.355556L984.177778 432.355556zM711.111111 512c0 108.088889-91.022222 199.111111-199.111111 199.111111-108.088889 0-199.111111-85.333333-199.111111-199.111111 0-108.088889 85.333333-199.111111 199.111111-199.111111C620.088889 312.888889 711.111111 403.911111 711.111111 512L711.111111 512zM711.111111 512","p-id":"65342"},null,-1),hn=[bn];function _n(o,n){return r(),s("svg",vn,hn)}var xn=N(gn,[["render",_n]]);const wn={},kn={t:"1640599890701",class:"icon",viewBox:"0 0 1565 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"76947",width:"128",height:"128"},yn=t("path",{d:"M1206.477959 299.331595c-27.357038 0-53.867311 3.354494-79.465683 9.151581C1078.518669 130.792698 916.428217 0 723.365689 0 492.068443 0 304.575027 187.493416 304.575027 418.790662c0 16.055976 1.074741 31.786273 2.865975 47.386299-9.184149-0.911901-18.400865-1.40042-27.812989-1.40042C125.191018 464.743973 0 589.934991 0 744.371987c0 154.469563 125.191018 279.628013 279.595446 279.628013 59.990077 0 221.233764 0 394.527575 0l0-302.295274L496.986197 721.704726l285.457668-339.031868 285.457668 339.031868-177.136823 0 0 302.295274c139.748871 0 262.204185 0 315.71325 0 197.947713 0 358.40977-168.34349 358.40977-366.291203S1404.425673 299.331595 1206.477959 299.331595z","p-id":"76948"},null,-1),Fn=[yn];function En(o,n){return r(),s("svg",kn,Fn)}var $n=N(wn,[["render",En]]);const Cn={},Dn={t:"1640599792937",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"68605",width:"128",height:"128"},Bn=t("path",{d:"M512 825.6c-211.2 0-377.6-57.6-377.6-128l0 0L134.4 896l0 0c6.4 70.4 172.8 128 377.6 128 204.8 0 371.2-57.6 377.6-128l0 0 0-204.8 0 0C889.6 768 723.2 825.6 512 825.6L512 825.6z","p-id":"68606"},null,-1),Yn=t("path",{d:"M512 544c-211.2 0-377.6-57.6-377.6-128l0 0 0 204.8 0 0c6.4 70.4 172.8 128 377.6 128 204.8 0 371.2-57.6 377.6-128l0 0L889.6 416l0 0C889.6 486.4 723.2 544 512 544L512 544z","p-id":"68607"},null,-1),An=t("path",{d:"M889.6 128 889.6 128c0-70.4-166.4-128-377.6-128C300.8 0 134.4 57.6 134.4 128l0 0 0 0 0 204.8 0 0c6.4 70.4 172.8 128 377.6 128 204.8 0 371.2-57.6 377.6-128l0 0L889.6 128 889.6 128 889.6 128zM512 217.6c-153.6 0-281.6-44.8-281.6-96 0-51.2 128-96 281.6-96 153.6 0 281.6 44.8 281.6 96C793.6 179.2 665.6 217.6 512 217.6L512 217.6z","p-id":"68608"},null,-1),Sn=[Bn,Yn,An];function zn(o,n){return r(),s("svg",Dn,Sn)}var Pn=N(Cn,[["render",zn]]);const Tn={},In={t:"1640575557247",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4211",width:"128",height:"128"},Mn=t("path",{d:"M560 800l-10.464-416h-75.072L464 800h96z m-14.144-493.984c9.44-9.312 14.144-20.672 14.144-34.016 0-13.6-4.704-24.992-14.144-34.208A46.784 46.784 0 0 0 512 224c-13.12 0-24.448 4.608-33.856 13.792A45.856 45.856 0 0 0 464 272c0 13.344 4.704 24.704 14.144 34.016 9.408 9.312 20.704 13.984 33.856 13.984 13.12 0 24.448-4.672 33.856-13.984zM512 32C246.912 32 32 246.912 32 512c0 265.088 214.912 480 480 480 265.088 0 480-214.912 480-480 0-265.088-214.912-480-480-480z m0 64c229.76 0 416 186.24 416 416s-186.24 416-416 416S96 741.76 96 512 282.24 96 512 96z","p-id":"4212"},null,-1),Ln=[Mn];function On(o,n){return r(),s("svg",In,Ln)}var Nn=N(Tn,[["render",On]]);const Vn={},Gn={t:"1640681742480",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"80687",width:"128",height:"128"},jn=t("path",{d:"M899.892468 123.889088c0-44.342099-36.286708-80.620486-80.624646-80.620486H204.728017C160.385918 43.268602 124.107532 79.546988 124.107532 123.889088v802.847056c0 44.342099 36.278386 80.620486 80.620485 80.620486h614.539805c44.337938 0 80.624646-36.278386 80.624646-80.620486V123.889088z",fill:"#D0D0DB","p-id":"80688"},null,-1),Un=t("path",{d:"M169.8768 977.7772V174.930143c0-44.342099 36.278386-80.620486 80.620486-80.620485h614.539804c9.936092 0 19.426974 1.905666 28.239639 5.23434-11.525534-30.507298-40.996782-52.389169-75.398629-52.389169H203.342457c-44.342099 0-80.620486 36.278386-80.620486 80.620486v802.851217c0 34.410168 21.881871 63.873094 52.385008 75.381985A79.730065 79.730065 0 0 1 169.8768 977.7772z",fill:"#FFFFFF","p-id":"80689"},null,-1),qn=t("path",{d:"M820.657543 40.497481H206.117739c-44.342099 0-80.620486 36.278386-80.620486 80.620485v802.847057c0 44.342099 36.278386 80.620486 80.620486 80.620486h614.539804c44.337938 0 80.624646-36.278386 80.624647-80.620486V121.117966c0-44.342099-36.286708-80.620486-80.624647-80.620485z m19.60173 828.785749c0 40.846992-33.43237 74.279362-74.287684 74.279361H199.780776c-40.855313 0-74.279362-33.424048-74.279362-74.279361V129.593603c0-40.855313 33.424048-74.279362 74.279362-74.279362h566.203296c40.842831 0 74.283522 33.424048 74.283522 74.279362l-0.008321 739.689627z",fill:"#6E6E96","p-id":"80690"},null,-1),Rn=t("path",{d:"M815.106979 1024H200.567175C146.933914 1024 103.303319 980.369405 103.303319 926.736144V123.889088C103.303319 70.255827 146.933914 26.625232 200.567175 26.625232h614.539804c53.633261 0 97.268017 43.630595 97.268017 97.263856v802.847056c0 53.633261-43.634756 97.263856-97.268017 97.263856zM200.567175 59.911972C165.287391 59.911972 136.590059 88.609303 136.590059 123.889088v802.847056c0 35.279784 28.697331 63.977115 63.977116 63.977115h614.539804c35.279784 0 63.981276-28.697331 63.981276-63.977115V123.889088c0-35.279784-28.701492-63.977115-63.981276-63.977116H200.567175z",fill:"#6E6E96","p-id":"80691"},null,-1),Wn=t("path",{d:"M301.946104 941.515457h429.985632v65.841173H301.946104z",fill:"#8A8AA1","p-id":"80692"},null,-1),Hn=t("path",{d:"M731.931736 1024H301.946104a16.64337 16.64337 0 0 1-16.64337-16.64337V941.515457a16.64337 16.64337 0 0 1 16.64337-16.64337h429.985632a16.64337 16.64337 0 0 1 16.64337 16.64337v65.841173a16.64337 16.64337 0 0 1-16.64337 16.64337z m-413.342262-33.286741h396.698892v-32.554432H318.589474v32.554432z",fill:"#6E6E96","p-id":"80693"},null,-1),Jn=t("path",{d:"M337.230049 960.318304h20.804213v47.038326h-20.804213zM386.565159 960.318304h20.804213v47.038326h-20.804213zM435.891948 960.318304h20.804213v47.038326h-20.804213zM485.231219 960.318304h20.804213v47.038326h-20.804213zM534.558008 960.318304h20.804213v47.038326h-20.804213zM583.897279 960.318304h20.804213v47.038326h-20.804213zM633.224068 960.318304h20.804213v47.038326h-20.804213zM682.563339 960.318304h20.804213v47.038326h-20.804213z",fill:"#FFE599","p-id":"80694"},null,-1),Zn=t("path",{d:"M219.153659 140.794591m-26.874883 0a26.874882 26.874882 0 1 0 53.749765 0 26.874882 26.874882 0 1 0-53.749765 0Z",fill:"#ADADD1","p-id":"80695"},null,-1),Kn=t("path",{d:"M219.153659 184.312843c-23.995579 0-43.518252-19.522673-43.518253-43.518252s19.522673-43.518252 43.518253-43.518253 43.518252 19.522673 43.518252 43.518253-19.522673 43.518252-43.518252 43.518252z m0-53.749764c-5.642103 0-10.231512 4.589409-10.231512 10.231512s4.589409 10.231512 10.231512 10.231512 10.231512-4.589409 10.231511-10.231512-4.589409-10.231512-10.231511-10.231512z",fill:"#6E6E96","p-id":"80696"},null,-1),Qn=t("path",{d:"M801.28466 140.794591m-26.870721 0a26.870721 26.870721 0 1 0 53.741442 0 26.870721 26.870721 0 1 0-53.741442 0Z",fill:"#ADADD1","p-id":"80697"},null,-1),Xn=t("path",{d:"M801.28466 184.308683c-23.995579 0-43.514092-19.518512-43.514091-43.514092s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514092z m0-53.741443c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"80698"},null,-1),ti=t("path",{d:"M801.280499 905.23291m-26.870721 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"80699"},null,-1),ei=t("path",{d:"M801.280499 948.747001c-23.995579 0-43.514092-19.518512-43.514091-43.514091s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"80700"},null,-1),ai=t("path",{d:"M219.153659 905.23291m-26.870722 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"80701"},null,-1),oi=t("path",{d:"M219.153659 948.747001c-23.995579 0-43.514092-19.518512-43.514092-43.514091s19.518512-43.514092 43.514092-43.514092 43.514092 19.518512 43.514091 43.514092-19.522673 43.514092-43.514091 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"80702"},null,-1),ni=t("path",{d:"M520.972857 777.43263c-142.542145 0-258.508988-115.971004-258.508988-258.52147a16.64337 16.64337 0 0 1 33.28674 0c0 124.19699 101.033579 225.23473 225.222248 225.23473s225.222248-101.03774 225.222248-225.23473c0-124.188668-101.033579-225.218087-225.222248-225.218087a16.64337 16.64337 0 0 1 0-33.286741c142.542145 0 258.508988 115.966843 258.508988 258.504828 0 142.550466-115.966843 258.521471-258.508988 258.52147z",fill:"#6E6E96","p-id":"80703"},null,-1),ii=t("path",{d:"M520.968696 518.919481m-83.312551 0a83.312551 83.312551 0 1 0 166.625102 0 83.312551 83.312551 0 1 0-166.625102 0Z",fill:"#A9A9BA","p-id":"80704"},null,-1),ri=t("path",{d:"M520.968696 618.875402c-55.114521 0-99.955921-44.83724-99.955921-99.95176 0-55.118682 44.8414-99.955921 99.955921-99.955921s99.95176 44.8414 99.95176 99.955921c0 55.11036-44.83724 99.95176-99.95176 99.95176z m0-166.625101c-36.761044 0-66.669181 29.908136-66.66918 66.66918s29.908136 66.66502 66.66918 66.66502 66.66502-29.908136 66.66502-66.66502c0-36.761044-29.903976-66.669181-66.66502-66.66918z",fill:"#6E6E96","p-id":"80705"},null,-1),si=t("path",{d:"M301.946104 941.515457h429.985632v36.977408H301.946104z",fill:"#6E6E96","p-id":"80706"},null,-1),di=[jn,Un,qn,Rn,Wn,Hn,Jn,Zn,Kn,Qn,Xn,ti,ei,ai,oi,ni,ii,ri,si];function li(o,n){return r(),s("svg",Gn,di)}var ui=N(Vn,[["render",li]]);const ci={},pi={t:"1640775712185",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2996",width:"128",height:"128"},fi=t("path",{d:"M894.185422 128.023792 129.814578 445.743994 445.99982 577.744353 571.860343 893.929596Z","p-id":"2997"},null,-1),mi=[fi];function gi(o,n){return r(),s("svg",pi,mi)}var vi=N(ci,[["render",gi]]);const bi={class:"progress"},hi=I({props:{value:{type:Number,required:!0},text:{type:String}},setup(o){const n=o,a=Q(()=>n.value<60?"#2fc867":n.value<75?"#fdd835":n.value<90?"#f97316":"#dc2626");return(l,u)=>(r(),s("div",bi,[t("div",{class:"progress-value",style:ht({width:`${o.value}%`,backgroundColor:e(a)})},[t("span",null,i(o.text),1)],4),Yt(l.$slots,"default",{},void 0,!0)]))}});var Ua=N(hi,[["__scopeId","data-v-bfec7a3e"]]);const _i={},xi={height:"32",width:"64",t:"1649907260906",viewBox:"-8 248 1045 537",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2793","xmlns:xlink":"http://www.w3.org/1999/xlink"},wi=t("path",{d:"M764.904497 251.418146 259.086289 251.418146c-143.076626 0-259.065314 115.989711-259.065314 259.065314 0 143.077649 115.988688 259.063267 259.065314 259.063267l505.818207 0c143.074579 0 259.063267-115.985618 259.063267-259.063267C1023.967764 367.407857 907.980099 251.418146 764.904497 251.418146zM764.904497 747.164974c-130.507356 0-236.682537-106.175181-236.682537-236.682537S634.397141 273.798876 764.904497 273.798876s236.683561 106.176205 236.683561 236.683561S895.411853 747.164974 764.904497 747.164974z","p-id":"2794",fill:"#52C41A"},null,-1),ki=[wi];function yi(o,n){return r(),s("svg",xi,ki)}var Fi=N(_i,[["render",yi]]);const Ei={},$i={height:"32",width:"64",t:"1649907515643",viewBox:"-8 248 1045 537",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2971","xmlns:xlink":"http://www.w3.org/1999/xlink"},Ci=t("path",{d:"M764.867148 249.793136 259.0735 249.793136c-143.070486 0-259.052011 115.984594-259.052011 259.052011 0 143.07151 115.982548 259.050987 259.052011 259.050987l505.793648 0c143.067416 0 259.050987-115.979478 259.050987-259.050987C1023.917112 365.778754 907.933541 249.793136 764.867148 249.793136zM259.0735 745.516428c-130.501216 0-236.671281-106.172111-236.671281-236.671281 0-130.501216 106.170065-236.671281 236.671281-236.671281S495.744781 378.344954 495.744781 508.84617C495.744781 639.34534 389.574716 745.516428 259.0735 745.516428z","p-id":"2972",fill:"#999"},null,-1),Di=[Ci];function Bi(o,n){return r(),s("svg",$i,Di)}var Yi=N(Ei,[["render",Bi]]);const Ai={class:"checkbox_switch"},Si={class:"checkbox_switch_on"},zi={class:"checkbox_switch_off"},Pi=I({props:{modelValue:{type:Boolean,required:!0}},emits:["update:modelValue"],setup(o,{emit:n}){const a=o,l=Q({get:()=>a.modelValue.valueOf(),set:u=>n("update:modelValue",u)});return(u,d)=>(r(),s("label",Ai,[O(t("input",{type:"checkbox","onUpdate:modelValue":d[0]||(d[0]=c=>Ia(l)?l.value=c:null)},null,512),[[Rt,e(l)]]),t("span",Si,[Y(Fi)]),t("span",zi,[Y(Yi)]),Yt(u.$slots,"default",{},void 0,!0)]))}});var qa=N(Pi,[["__scopeId","data-v-76324716"]]);const Ti={},Ii={t:"1641369474206",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7685",width:"128",height:"128"},Mi=t("path",{d:"M757.76 637.44l-218.88 245.76c-14.72 16.64-40.32 16.64-54.4 0L265.6 637.44C244.48 613.76 261.12 576 293.12 576l437.76 0C762.24 576 779.52 613.76 757.76 637.44z","p-id":"7686"},null,-1),Li=[Mi];function Oi(o,n){return r(),s("svg",Ii,Li)}var Ni=N(Ti,[["render",Oi]]);const Vi={},Gi={t:"1641369492518",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7831",width:"128",height:"128"},ji=t("path",{d:"M758.4 385.92 539.52 140.16c-14.72-16.64-40.32-16.64-54.4 0L266.24 385.92C244.48 409.6 261.76 448 293.12 448l437.76 0C762.88 448 779.52 409.6 758.4 385.92z","p-id":"7832"},null,-1),Ui=[ji];function qi(o,n){return r(),s("svg",Gi,Ui)}var Ri=N(Vi,[["render",qi]]);const Wi={};function Hi(o,n){return r(),s("article",null,[Yt(o.$slots,"default",{},void 0,!0)])}var Ji=N(Wi,[["render",Hi],["__scopeId","data-v-bd286d4e"]]);const Zi={class:"cover"},Ki={class:"thumbnail"},Qi=I({emits:["click"],setup(o,{emit:n}){const a=()=>{n("click")};return(l,u)=>(r(),Z(Ji,null,{default:V(()=>[t("a",{onClick:a},[t("div",Zi,[t("div",Ki,[Yt(l.$slots,"default",{},void 0,!0)])])])]),_:3}))}});var Xi=N(Qi,[["__scopeId","data-v-123deb20"]]);const tr={class:"select-editable"},er={selected:"",value:""},ar=["value"],or={value:"useInput"},nr=["placeholder"],ir=I({props:{modelValue:{type:String,required:!0},title:{type:String,default:""},options:{type:Array,default:[]}},emits:["update:modelValue"],setup(o,{emit:n}){const a=o,{$gettext:l,$ngettext:u}=J(),d=E(""),c=E(""),k=Q({get:()=>a.modelValue.valueOf(),set:v=>n("update:modelValue",v)}),g=v=>{v===d.value||d.value==="useInput"&&v===c.value||(v===""||a.options.some(b=>b.key===v)?d.value=v:(c.value=v,d.value="useInput"))};$t(()=>a.modelValue,v=>{g(v)}),Pt(()=>{const v=k.value;g(v)});const p=v=>{d.value==="useInput"?k.value=c.value:k.value=d.value},m=v=>{k.value=c.value};return(v,b)=>(r(),s("label",null,[t("div",tr,[O(t("select",{"onUpdate:modelValue":b[0]||(b[0]=y=>d.value=y),autocomplete:"off",onChange:p},[t("option",er,i(e(l)("\u8BF7\u9009\u62E9%{title}",{title:o.title})),1),(r(!0),s(U,null,tt(o.options,(y,f)=>(r(),s("option",{value:y.key,key:f},i(y.value||y.key),9,ar))),128)),t("option",or,i(e(l)("- -\u81EA\u5B9A\u4E49- -")),1)],544),[[pt,d.value,void 0,{trim:!0}]]),d.value=="useInput"?O((r(),s("input",{key:0,type:"text","onUpdate:modelValue":b[1]||(b[1]=y=>c.value=y),required:"",placeholder:e(l)("\u8BF7\u8F93\u5165%{title}",{title:o.title}),onChange:m},null,40,nr)),[[at,c.value,void 0,{trim:!0}]]):D("",!0)])]))}});var Zt=N(ir,[["__scopeId","data-v-0b6f3a7d"]]);const rr={t:"1631799919469",class:"icon",viewBox:"0 0 1047 1047",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"3453",width:"128",height:"128"},sr=I({props:{size:{type:[Number,String],default:50},color:{type:String,default:"#fff"}},setup(o){const n=a=>{if(a==null)return;if(typeof a=="number")return a+"px";const l=a.toString();return parseInt(l)+""==l?l+"px":l};return(a,l)=>(r(),s("div",{class:"quick-loading",style:ht({width:n(o.size),height:n(o.size)})},[(r(),s("svg",rr,[t("path",{d:"M522.695111 1.991111c-26.339556 0.170667-47.416889 21.475556-47.672889 48.753778-0.284444 26.453333-0.056889 52.963556-0.056889 79.445333 0 27.249778-0.369778 54.528 0.113778 81.777778 0.483556 27.050667 22.016 47.132444 49.351111 46.904889a47.786667 47.786667 0 0 0 47.729778-47.445333c0.284444-53.76 0.284444-107.52-0.028444-161.251556-0.170667-27.676444-21.902222-48.355556-49.436445-48.184889m-195.896889 88.092445c-8.334222-14.222222-21.646222-21.276444-38.314666-21.333334-35.128889 0-56.576 36.949333-38.968889 68.152889a11616.995556 11616.995556 0 0 0 78.961777 137.614222 44.942222 44.942222 0 0 0 61.838223 16.896c21.304889-12.202667 29.667556-38.968889 17.379555-60.871111-26.453333-47.104-53.560889-93.866667-80.896-140.458666m-228.693333 234.524444c44.316444 25.799111 88.746667 51.342222 133.176889 76.970667 6.712889 3.896889 13.681778 6.912 21.703111 6.428444 20.138667 0.142222 35.953778-11.946667 41.301333-31.573333 5.006222-18.261333-2.673778-36.721778-20.224-46.990222-44.629333-26.026667-89.372444-51.882667-134.115555-77.710223-22.528-12.999111-47.815111-7.025778-59.818667 13.909334-12.231111 21.248-4.977778 45.624889 17.948444 58.965333m34.161778 235.975111c26.396444 0 52.821333 0.199111 79.217778-0.085333 23.409778-0.256 39.139556-16.412444 38.798222-39.139556-0.341333-21.617778-16.924444-37.347556-39.594666-37.376-51.655111-0.056889-103.310222-0.056889-154.965334 0.028445-24.177778 0.056889-40.704 15.985778-40.561778 38.684444 0.142222 22.186667 16.583111 37.745778 40.192 37.859556 25.656889 0.142222 51.285333 0.028444 76.913778 0m151.722667 100.238222a34.247111 34.247111 0 0 0-46.876445-12.942222 13764.778667 13764.778667 0 0 0-139.008 80.583111c-11.093333 6.485333-16.327111 16.867556-16.497777 25.372444 0.085333 30.549333 27.249778 47.957333 50.403555 35.072 47.160889-26.197333 93.724444-53.475556 140.145778-80.924444 17.180444-10.154667 21.504-30.378667 11.832889-47.160889m91.875555 101.660444c-14.250667-4.067556-27.619556 1.422222-35.84 15.644445a24375.466667 24375.466667 0 0 0-77.312 134.485333c-10.012444 17.550222-5.859556 35.669333 9.784889 45.027556 16.014222 9.557333 34.247111 4.039111 44.714667-13.994667 25.543111-44.088889 50.915556-88.263111 76.373333-132.352 3.299556-5.745778 5.688889-11.690667 5.745778-14.933333 0-17.834667-9.272889-29.866667-23.466667-33.877334m147.456 44.288c-16.384 0.085333-27.306667 11.918222-27.448888 30.151111-0.142222 25.372444-0.028444 50.716444-0.028445 76.060445h-0.085333c0 26.112-0.113778 52.252444 0.056889 78.364444 0.113778 18.261333 11.064889 30.065778 27.448889 30.208 16.952889 0.142222 28.046222-11.832889 28.103111-30.748444 0.113778-51.086222 0.142222-102.172444 0.056889-153.258667 0-18.773333-11.207111-30.862222-28.103112-30.776889m177.208889-26.112c-7.509333-12.8-21.902222-16.014222-33.792-8.874666a23.722667 23.722667 0 0 0-8.533333 32.995555c26.282667 46.279111 52.906667 92.330667 79.644444 138.353778 4.494222 7.765333 11.633778 11.946667 20.906667 11.804444 18.545778-0.142222 30.520889-19.342222 21.219556-35.868444-26.026667-46.392889-52.650667-92.444444-79.473778-138.410667m239.957333-41.187555c-45.283556-26.254222-90.595556-52.48-135.964444-78.648889-4.693333-2.702222-9.728-4.323556-15.36-2.958222-9.102222 2.247111-14.933333 8.049778-16.497778 17.095111-1.877333 10.894222 3.84 18.204444 12.885333 23.438222 29.809778 17.180444 59.562667 34.417778 89.344 51.598222 15.217778 8.789333 30.236444 17.976889 45.738667 26.225778 14.677333 7.793778 31.061333-2.048 31.061333-18.033778-0.056889-8.448-4.096-14.592-11.207111-18.716444m48.867556-234.638222c-24.888889-0.085333-49.749333 0-74.609778 0v-0.085334c-25.258667 0-50.517333-0.056889-75.776 0.028445-13.425778 0.056889-20.963556 6.343111-21.162667 17.294222-0.199111 11.150222 7.082667 17.521778 20.679111 17.550222 50.488889 0.113778 100.977778 0.142222 151.495112 0.085333 13.368889 0 21.191111-6.485333 21.390222-17.152 0.227556-10.808889-8.106667-17.664-22.016-17.720888m-187.960889-127.146667c45.084444-26.026667 90.140444-52.110222 135.168-78.222222 4.864-2.844444 8.248889-6.855111 8.135111-12.942223-0.142222-11.036444-11.207111-17.436444-21.504-11.548444-45.511111 26.055111-90.851556 52.394667-136.135111 78.819556-7.68 4.494222-10.524444 11.52-5.575111 19.569777 4.835556 7.850667 12.088889 8.817778 19.911111 4.323556m-122.311111-115.114667c5.205333-0.256 8.220444-3.413333 10.609778-7.651555 4.920889-8.647111 10.040889-17.208889 14.990222-25.827556 20.48-35.555556 40.931556-71.025778 61.297778-106.609778 5.091556-8.874667 3.015111-16.668444-4.778667-18.517333-7.68-1.848889-10.894222 3.697778-14.051556 9.159111l-68.778666 119.495111c-2.844444 4.977778-6.030222 9.870222-8.305778 15.104-3.128889 7.196444 1.678222 14.648889 9.045333 14.848","p-id":"3454",style:ht({fill:o.color})},null,4)]))],4))}});var dr=N(sr,[["__scopeId","data-v-0ec4e762"]]);const lr={},ur={t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},cr=t("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""},null,-1),pr=[cr];function fr(o,n){return r(),s("svg",ur,pr)}var mr=N(lr,[["render",fr]]);const gr={},vr={width:"128",height:"128",viewBox:"0 0 50 50",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},br=jt('',1),hr=[br];function _r(o,n){return r(),s("svg",vr,hr)}var xr=N(gr,[["render",_r]]);const wr=o=>(ut("data-v-b934e2ce"),o=o(),ct(),o),kr=["href","title"],yr=wr(()=>t("svg",{t:"1684144670421",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4343"},[t("path",{d:"M512 74.666667c241.066667 0 437.333333 196.266667 437.333333 437.333333S753.066667 949.333333 512 949.333333 74.666667 753.066667 74.666667 512 270.933333 74.666667 512 74.666667zM512 704c-23.466667 0-42.666667 19.2-42.666667 42.666667s19.2 42.666667 42.666667 42.666666 42.666667-19.2 42.666667-42.666666-19.2-42.666667-42.666667-42.666667z m0-458.666667c-76.8 0-138.666667 61.866667-138.666667 138.666667 0 17.066667 14.933333 32 32 32s32-14.933333 32-32c0-40.533333 34.133333-74.666667 74.666667-74.666667s74.666667 34.133333 74.666667 74.666667c0 2.133333 0 6.4-2.133334 10.666667-6.4 14.933333-19.2 32-40.533333 51.2-10.666667 10.666667-21.333333 19.2-34.133333 27.733333-2.133333 2.133333-6.4 4.266667-8.533334 6.4l-6.4 4.266667c-8.533333 6.4-14.933333 17.066667-14.933333 27.733333v108.8c2.133333 17.066667 14.933333 29.866667 32 29.866667h2.133333c17.066667-2.133333 29.866667-14.933333 29.866667-32v-89.6l12.8-10.666667c10.666667-8.533333 19.2-17.066667 29.866667-25.6 27.733333-25.6 46.933333-49.066667 57.6-74.666667 4.266667-10.666667 6.4-23.466667 6.4-34.133333 0-76.8-61.866667-138.666667-138.666667-138.666667z",fill:"#666666","p-id":"4344"})],-1)),Fr=[yr],Er=I({props:{type:null},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=Q(()=>{switch(n.type){case"disk":return"https://www.linkease.com/rd/8myYAEVA/";case"store":return"https://www.linkease.com/rd/1F58VUTT/";case"docker":return"https://www.linkease.com/rd/2Q28MDtf/";case"download":return"https://www.linkease.com/rd/1tJo1KX-/";case"ddns":return"https://www.linkease.com/rd/3yFiX5-X/";case"network-interface":return"https://www.linkease.com/rd/3ca51a3G/"}});return(d,c)=>(r(),s("a",{href:e(u),target:"_blank",title:e(a)("\u8DF3\u8F6C\u6559\u7A0B")},Fr,8,kr))}});var $r=N(Er,[["__scopeId","data-v-b934e2ce"]]),Ra={install:o=>{o.component("icon-loading",dr),o.component("icon-success",mr),o.component("icon-error",xr),o.component("GlHelp",$r)}};const Cr={class:"reusable-card",role:"group"},Dr={class:"card-header"},Br={class:"left"},Yr={class:"title"},Ar={class:"settings-wrapper"},Sr={key:0,class:"settings-btn"},zr={class:"dropdown-menu"},Pr={class:"card-body"},Tr={props:{title:{type:String,required:!0},showSettings:{type:Boolean,default:!0},isSettingsMenuOpen:{type:Boolean,default:!1}},emits:["settings","update:isSettingsMenuOpen"],setup(o,{emit:n}){const a=o;J(),Pt(()=>document.addEventListener("click",u)),ke(()=>document.removeEventListener("click",u));const l=Q({get:()=>a.isSettingsMenuOpen,set:d=>n("update:isSettingsMenuOpen",d)}),u=d=>{d.target.closest(".settings-wrapper")||(l.value=!1)};return(d,c)=>(r(),s("div",Cr,[t("div",Dr,[t("div",Br,[Yt(d.$slots,"icon",{},void 0,!0),t("div",Yr,i(o.title),1)]),t("div",Ar,[o.showSettings?(r(),s("div",Sr,[Yt(d.$slots,"settings",{},void 0,!0)])):D("",!0),Y(St,{name:"fade"},{default:V(()=>[O(t("div",zr,[Yt(d.$slots,"settings-menu",{},void 0,!0)],512),[[ee,e(l)]])]),_:3})])]),t("div",Pr,[Yt(d.$slots,"default",{},void 0,!0)])]))}};var Wt=N(Tr,[["__scopeId","data-v-dbb174c6"]]);const Ir={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Mr=["fill"],Lr=["fill"],Or=["fill"],Kt=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",Ir,[t("path",{d:"M665.6 911.36H358.4c-76.8 0-117.76 0-153.6-20.48-30.72-15.36-56.32-40.96-71.68-71.68-20.48-35.84-20.48-76.8-20.48-153.6v-51.2c0-20.48 15.36-40.96 40.96-40.96s40.96 15.36 40.96 40.96v51.2c0 61.44 0 97.28 10.24 117.76 10.24 15.36 20.48 30.72 40.96 40.96 20.48 10.24 56.32 10.24 117.76 10.24h307.2c61.44 0 97.28 0 117.76-10.24 15.36-10.24 30.72-20.48 40.96-40.96 10.24-20.48 10.24-56.32 10.24-117.76v-51.2c0-20.48 15.36-40.96 40.96-40.96s40.96 15.36 40.96 40.96v51.2c0 76.8 0 117.76-20.48 153.6-15.36 30.72-40.96 56.32-71.68 71.68-35.84 20.48-76.8 20.48-153.6 20.48z","p-id":"4906",fill:o.color},null,8,Mr),t("path",{d:"M512 645.12c-10.24 0-15.36 0-20.48-10.24l-204.8-204.8c-10.24-10.24-10.24-30.72 0-46.08s30.72-10.24 46.08 0l184.32 184.32 184.32-184.32c10.24-10.24 30.72-10.24 46.08 0 10.24 10.24 10.24 30.72 0 46.08l-204.8 204.8c-5.12 5.12-15.36 10.24-20.48 10.24z","p-id":"4907",fill:o.color},null,8,Lr),t("path",{d:"M512 645.12c-15.36 0-30.72-15.36-30.72-30.72V153.6c0-15.36 15.36-30.72 30.72-30.72s30.72 15.36 30.72 30.72v460.8c0 15.36-15.36 30.72-30.72 30.72z","p-id":"4908",fill:o.color},null,8,Or)]))}}),Nr={},Vr={t:"1649668202191",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2338","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"28px",height:"28px"},Gr=t("path",{d:"M288 512m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z","p-id":"2339",fill:"#666"},null,-1),jr=t("path",{d:"M512 512m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z","p-id":"2340",fill:"#666"},null,-1),Ur=t("path",{d:"M736 512m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z","p-id":"2341",fill:"#666"},null,-1),qr=[Gr,jr,Ur];function Rr(o,n){return r(),s("svg",Vr,qr)}var Ee=N(Nr,[["render",Rr]]);const Wr={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none",width:"128",height:"128"},Hr=["fill"],Jr=I({props:{color:{type:String,default:"#000000"}},setup(o){return(n,a)=>(r(),s("svg",Wr,[t("path",{d:"M511.232 438.8352L112.9984 40.6016A51.2 51.2 0 0 0 40.6016 112.9984L438.784 511.232 40.6016 909.4656a51.2 51.2 0 1 0 72.3968 72.448l398.2336-398.2848 398.2336 398.2848a51.2 51.2 0 1 0 72.448-72.448l-398.2848-398.2336 398.2848-398.2336A51.2 51.2 0 0 0 909.4656 40.6016L511.232 438.784z","p-id":"1217",fill:o.color},null,8,Hr)]))}}),Zr=o=>(ut("data-v-75eeccd3"),o=o(),ct(),o),Kr={id:"actioner"},Qr={key:0,class:"action-container"},Xr={class:"action-container_header"},ts=Zr(()=>t("div",null,null,-1)),es={class:"title"},as=["title"],os={class:"action-container_body"},ns=I({props:{Close:{type:Function},type:{type:Number},title:String},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!1);Pt(()=>{u.value=!0,document.body.setAttribute("lock-scroll","true")}),Nt(()=>{document.body.removeAttribute("lock-scroll")});const d=()=>{n.Close&&(u.value=!1,setTimeout(()=>{n.Close&&n.Close()},300))};return(c,k)=>(r(),s("div",Kr,[t("div",{class:"bg",onClick:d}),o.type!=null?Yt(c.$slots,"default",{key:0},void 0,!0):(r(),s(U,{key:1},[u.value?(r(),s("div",Qr,[t("div",Xr,[ts,t("div",es,i(o.title),1),t("button",{class:"close",title:e(a)("\u5173\u95ED"),onClick:d},[Y(Jr)],8,as)]),t("div",os,[Yt(c.$slots,"default",{},void 0,!0)])])):D("",!0)],64))]))}});var is=N(ns,[["__scopeId","data-v-75eeccd3"]]);const wt=I({props:{Close:{type:Function},type:{type:Number},title:String},setup(o){return(n,a)=>(r(),Z(is,{Close:o.Close,type:o.type,title:o.title},{default:V(()=>[Yt(n.$slots,"default")]),_:3},8,["Close","type","title"]))}}),sa=o=>(ut("data-v-7732abe2"),o=o(),ct(),o),rs={class:"disk-item"},ss=sa(()=>t("div",{class:"disk-item_icon"},[t("svg",{t:"1642563338465",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2216",width:"128",height:"128"},[t("path",{d:"M998.4 711.68l-119.467-512c-6.826-42.667-42.666-75.093-87.04-76.8H232.107c-44.374 1.707-80.214 35.84-87.04 78.507L25.6 711.68c-5.12 13.653-6.827 29.013-6.827 42.667 0 76.8 63.147 139.946 141.654 139.946H865.28c78.507 0 141.653-63.146 141.653-139.946 0-13.654-3.413-29.014-8.533-42.667zM394.24 366.933c1.707-51.2 56.32-92.16 124.587-92.16S640 315.733 640 365.227c44.373-1.707 81.92 23.893 83.627 58.026s-34.134 63.147-78.507 64.854h-6.827l-245.76 1.706c-44.373 0-80.213-27.306-80.213-59.733 0-35.84 37.547-63.147 81.92-63.147z m471.04 459.094H160.427c-39.254 0-69.974-30.72-69.974-69.974s32.427-69.973 69.974-69.973H865.28c39.253 0 69.973 30.72 69.973 69.973 1.707 37.547-30.72 69.974-69.973 69.974z m-35.84-92.16c-11.947 0-22.187 8.533-23.893 20.48 0 11.946 8.533 22.186 20.48 23.893h3.413c11.947 0 22.187-10.24 22.187-22.187 0-13.653-8.534-22.186-22.187-22.186z m-46.08 22.186c0-25.6 20.48-46.08 46.08-46.08s46.08 20.48 46.08 46.08-20.48 46.08-46.08 46.08-46.08-20.48-46.08-46.08z","p-id":"2217"})])],-1)),ds={class:"disk-item_f"},ls={class:"disk-item_venderModel"},us={class:"disk-item_used"},cs=sa(()=>t("div",{class:"auto"},null,-1)),ps={class:"disk-item-r"},fs={class:"disk-children"},ms=["onClick"],gs=sa(()=>t("div",{class:"disk-item_icon"},[t("svg",{t:"1642563581459",class:"icon",viewBox:"0 0 1228 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"7132",width:"128",height:"128"},[t("path",{d:"M525.2096 145.3568c1.9968-45.568-35.6864-99.1232-57.4976-99.1232H57.4976C15.872 79.9232 17.8176 145.408 17.8176 145.408h507.392z",fill:"#ECC049","p-id":"7133"}),t("path",{d:"M21.8112 143.36L19.8144 825.1392c0 75.3152 75.3152 152.576 150.6304 152.576h887.9104c75.264 0 150.6304-75.264 150.6304-152.576V297.984c0-75.264-75.3152-152.576-150.6304-152.576h-434.0224L21.8112 143.36z",fill:"#FFD658","p-id":"7134"})])],-1)),vs={key:0},bs={key:1},hs=I({props:{disk:{type:Object,required:!0},currDisk:{type:Object},currMountPoint:{type:Object},onDisk:{type:Function,required:!0}},setup(o){var c,k;const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!1);n.currDisk!=null&&((c=n.currDisk)==null?void 0:c.venderModel)==((k=n.disk)==null?void 0:k.venderModel)&&(u.value=!0);const d=g=>{u.value=!u.value,n.onDisk(g,null)};return(g,p)=>{var m;return r(),s("ul",rs,[t("li",{class:lt(["disk-info",{on:o.disk.venderModel==((m=o.currDisk)==null?void 0:m.venderModel),nopoint:o.disk.childrens==null||o.disk.childrens.length==0}]),onClick:p[0]||(p[0]=v=>d(o.disk))},[ss,t("div",ds,[t("div",ls,i(o.disk.venderModel),1),t("div",us,i(o.disk.used)+"/"+i(o.disk.size),1)]),cs,t("div",ps,i(o.disk.path),1)],2),O(t("div",fs,[(r(!0),s(U,null,tt(o.disk.childrens,v=>{var b,y;return r(),s("li",{class:lt(["disk-children_item",{on:v.uuid==((b=o.currMountPoint)==null?void 0:b.uuid)&&v.path==((y=o.currMountPoint)==null?void 0:y.path)}]),onClick:f=>o.onDisk(o.disk,v)},[gs,v.mountPoint?(r(),s("span",vs," \u3010"+i(v.filesystem)+"\u3011 "+i(v.mountPoint)+" \uFF08"+i(v.used)+"/"+i(v.total)+"\uFF09 ["+i(v.uuid)+"] ",1)):(r(),s("span",bs," \u3010"+i(v.filesystem)+"\u3011 "+i(v.mountPoint||v.path||e(a)("\u672A\u6302\u8F7D\u78C1\u76D8"))+" ["+i(v.uuid)+"] ",1))],10,ms)}),256))],512),[[ee,u.value]])])}}});var ka=N(hs,[["__scopeId","data-v-7732abe2"]]);let Be=0;const _s={props:{type:String,message:String|Function,Close:Function,countdown:Number},data(){return{show:!1,remain:0}},mounted(){if(window.setTimeout(()=>{this.show=!0},0),this.countdown){this.remain=this.countdown;const o=()=>{this.show&&this.remain>0&&(this.remain=this.remain-1,Be=window.setTimeout(o,1e3))};Be=window.setTimeout(o,1e3)}},computed:{Message(){return this.message+(this.countdown?" "+this.remain+"s":"")}},methods:{Stop(){this.type!="loading"&&(this.show=!1,Be!=0&&clearTimeout(Be),this.Close())}}},Oe=o=>(ut("data-v-6935a479"),o=o(),ct(),o),xs={key:0,class:"loading icon"},ws=Oe(()=>t("svg",{t:"1631799919469",class:"icon",viewBox:"0 0 1047 1047",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"3453",width:"128",height:"128"},[t("path",{d:"M522.695111 1.991111c-26.339556 0.170667-47.416889 21.475556-47.672889 48.753778-0.284444 26.453333-0.056889 52.963556-0.056889 79.445333 0 27.249778-0.369778 54.528 0.113778 81.777778 0.483556 27.050667 22.016 47.132444 49.351111 46.904889a47.786667 47.786667 0 0 0 47.729778-47.445333c0.284444-53.76 0.284444-107.52-0.028444-161.251556-0.170667-27.676444-21.902222-48.355556-49.436445-48.184889m-195.896889 88.092445c-8.334222-14.222222-21.646222-21.276444-38.314666-21.333334-35.128889 0-56.576 36.949333-38.968889 68.152889a11616.995556 11616.995556 0 0 0 78.961777 137.614222 44.942222 44.942222 0 0 0 61.838223 16.896c21.304889-12.202667 29.667556-38.968889 17.379555-60.871111-26.453333-47.104-53.560889-93.866667-80.896-140.458666m-228.693333 234.524444c44.316444 25.799111 88.746667 51.342222 133.176889 76.970667 6.712889 3.896889 13.681778 6.912 21.703111 6.428444 20.138667 0.142222 35.953778-11.946667 41.301333-31.573333 5.006222-18.261333-2.673778-36.721778-20.224-46.990222-44.629333-26.026667-89.372444-51.882667-134.115555-77.710223-22.528-12.999111-47.815111-7.025778-59.818667 13.909334-12.231111 21.248-4.977778 45.624889 17.948444 58.965333m34.161778 235.975111c26.396444 0 52.821333 0.199111 79.217778-0.085333 23.409778-0.256 39.139556-16.412444 38.798222-39.139556-0.341333-21.617778-16.924444-37.347556-39.594666-37.376-51.655111-0.056889-103.310222-0.056889-154.965334 0.028445-24.177778 0.056889-40.704 15.985778-40.561778 38.684444 0.142222 22.186667 16.583111 37.745778 40.192 37.859556 25.656889 0.142222 51.285333 0.028444 76.913778 0m151.722667 100.238222a34.247111 34.247111 0 0 0-46.876445-12.942222 13764.778667 13764.778667 0 0 0-139.008 80.583111c-11.093333 6.485333-16.327111 16.867556-16.497777 25.372444 0.085333 30.549333 27.249778 47.957333 50.403555 35.072 47.160889-26.197333 93.724444-53.475556 140.145778-80.924444 17.180444-10.154667 21.504-30.378667 11.832889-47.160889m91.875555 101.660444c-14.250667-4.067556-27.619556 1.422222-35.84 15.644445a24375.466667 24375.466667 0 0 0-77.312 134.485333c-10.012444 17.550222-5.859556 35.669333 9.784889 45.027556 16.014222 9.557333 34.247111 4.039111 44.714667-13.994667 25.543111-44.088889 50.915556-88.263111 76.373333-132.352 3.299556-5.745778 5.688889-11.690667 5.745778-14.933333 0-17.834667-9.272889-29.866667-23.466667-33.877334m147.456 44.288c-16.384 0.085333-27.306667 11.918222-27.448888 30.151111-0.142222 25.372444-0.028444 50.716444-0.028445 76.060445h-0.085333c0 26.112-0.113778 52.252444 0.056889 78.364444 0.113778 18.261333 11.064889 30.065778 27.448889 30.208 16.952889 0.142222 28.046222-11.832889 28.103111-30.748444 0.113778-51.086222 0.142222-102.172444 0.056889-153.258667 0-18.773333-11.207111-30.862222-28.103112-30.776889m177.208889-26.112c-7.509333-12.8-21.902222-16.014222-33.792-8.874666a23.722667 23.722667 0 0 0-8.533333 32.995555c26.282667 46.279111 52.906667 92.330667 79.644444 138.353778 4.494222 7.765333 11.633778 11.946667 20.906667 11.804444 18.545778-0.142222 30.520889-19.342222 21.219556-35.868444-26.026667-46.392889-52.650667-92.444444-79.473778-138.410667m239.957333-41.187555c-45.283556-26.254222-90.595556-52.48-135.964444-78.648889-4.693333-2.702222-9.728-4.323556-15.36-2.958222-9.102222 2.247111-14.933333 8.049778-16.497778 17.095111-1.877333 10.894222 3.84 18.204444 12.885333 23.438222 29.809778 17.180444 59.562667 34.417778 89.344 51.598222 15.217778 8.789333 30.236444 17.976889 45.738667 26.225778 14.677333 7.793778 31.061333-2.048 31.061333-18.033778-0.056889-8.448-4.096-14.592-11.207111-18.716444m48.867556-234.638222c-24.888889-0.085333-49.749333 0-74.609778 0v-0.085334c-25.258667 0-50.517333-0.056889-75.776 0.028445-13.425778 0.056889-20.963556 6.343111-21.162667 17.294222-0.199111 11.150222 7.082667 17.521778 20.679111 17.550222 50.488889 0.113778 100.977778 0.142222 151.495112 0.085333 13.368889 0 21.191111-6.485333 21.390222-17.152 0.227556-10.808889-8.106667-17.664-22.016-17.720888m-187.960889-127.146667c45.084444-26.026667 90.140444-52.110222 135.168-78.222222 4.864-2.844444 8.248889-6.855111 8.135111-12.942223-0.142222-11.036444-11.207111-17.436444-21.504-11.548444-45.511111 26.055111-90.851556 52.394667-136.135111 78.819556-7.68 4.494222-10.524444 11.52-5.575111 19.569777 4.835556 7.850667 12.088889 8.817778 19.911111 4.323556m-122.311111-115.114667c5.205333-0.256 8.220444-3.413333 10.609778-7.651555 4.920889-8.647111 10.040889-17.208889 14.990222-25.827556 20.48-35.555556 40.931556-71.025778 61.297778-106.609778 5.091556-8.874667 3.015111-16.668444-4.778667-18.517333-7.68-1.848889-10.894222 3.697778-14.051556 9.159111l-68.778666 119.495111c-2.844444 4.977778-6.030222 9.870222-8.305778 15.104-3.128889 7.196444 1.678222 14.648889 9.045333 14.848","p-id":"3454"})],-1)),ks=[ws],ys={key:1,class:"success icon"},Fs=Oe(()=>t("svg",{t:"1632451272305",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2204",width:"128",height:"128"},[t("path",{d:"M1001.305115 275.874141 431.461709 845.718571c-28.221762 28.221762-73.977875 28.221762-102.20066 0L22.661116 539.116591c-28.222785-28.221762-28.222785-73.979922 0-102.20066 28.221762-28.221762 73.977875-28.221762 102.20066 0l255.500115 255.502162 518.743588-518.743588c28.221762-28.221762 73.977875-28.221762 102.199637 0C1029.5279 201.89422 1029.5279 247.65238 1001.305115 275.874141z","p-id":"2205"})],-1)),Es=[Fs],$s={key:2,class:"error icon"},Cs=Oe(()=>t("svg",{t:"1632451325789",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2204",width:"128",height:"128"},[t("path",{d:"M823.04 840.32 524.16 540.16l296.32-294.4c12.8-12.8 12.8-33.28 0-45.44-12.8-12.8-33.28-12.8-46.08 0L478.08 494.08 184.96 200.32c-12.8-12.8-33.28-12.8-45.44 0s-12.8 33.28 0 45.44l292.48 293.76-302.72 300.8c-12.8 12.8-12.8 33.28 0 45.44 12.8 12.8 33.28 12.8 46.08 0l302.72-300.16 299.52 300.16c12.8 12.8 33.28 12.8 45.44 0C835.2 873.6 835.2 853.12 823.04 840.32z","p-id":"2205"})],-1)),Ds=[Cs],Bs={key:3,class:"warning icon"},Ys=Oe(()=>t("svg",{t:"1632451401172",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"1638",width:"128",height:"128"},[t("path",{d:"M512 1021.45211835a60.32985613 60.32985613 0 1 1 60.32985613-60.32985611 60.32985613 60.32985613 0 0 1-60.32985613 60.32985611z m86.85823451-924.97400238L572.32985613 719.80283775a60.32985613 60.32985613 0 0 1-120.65971226 0l-26.52837838-623.32472178c-0.16758294-2.22885301-0.28489098-4.49122263-0.284891-6.78710881a87.14312551 87.14312551 0 0 1 174.28625102 0c0 2.2958862-0.11730806 4.5582558-0.284891 6.78710881z","p-id":"1639"})],-1)),As=[Ys];function Ss(o,n,a,l,u,d){return r(),Z(St,{name:"el-fade-in-linear"},{default:V(()=>[u.show?(r(),s("div",{key:0,class:"toast",onClick:n[1]||(n[1]=c=>d.Stop())},[a.type=="loading"?(r(),s("div",xs,ks)):a.type=="success"?(r(),s("div",ys,Es)):a.type=="error"?(r(),s("div",$s,Ds)):a.type=="warning"?(r(),s("div",Bs,As)):D("",!0),t("div",{class:"message",onClick:n[0]||(n[0]=ft(()=>{},["stop"]))},i(d.Message),1)])):D("",!0)]),_:1})}var zs=N(_s,[["render",Ss],["__scopeId","data-v-6935a479"]]);const _e=new Map,oe=o=>{const n=xt(zs,vt(st({},o),{Close:()=>{l()}})),a=document.createElement("div");document.body.append(a),n.mount(a);const l=()=>{a.remove(),_e.get(n._uid)&&_e.delete(n._uid)};return o.type=="loading"&&_e.set(n._uid,{Close:l}),(o==null?void 0:o.duration)==0||((o==null?void 0:o.duration)>0?setTimeout(()=>{l()},o==null?void 0:o.duration):setTimeout(()=>{l()},3e3)),{Close:l}},$=o=>oe(o);$.Loading=(o,n)=>oe({type:"loading",message:o||"\u52A0\u8F7D\u4E2D...",duration:0,countdown:n||0});$.Success=o=>oe({type:"success",message:o});$.Error=o=>oe({type:"error",message:o,duration:0});$.Warning=o=>oe({type:"warning",message:o});$.Message=o=>oe({message:o});$.Clear=()=>{_e.forEach((o,n)=>{o.Close(),_e.delete(n)})};const da=o=>(ut("data-v-d72e7026"),o=o(),ct(),o),Ps=["onSubmit"],Ts={class:"action-header"},Is={class:"action-header_title"},Ms={class:"action-body"},Ls={class:"disk-info"},Os=da(()=>t("div",{class:"disk-info_icon"},[t("svg",{t:"1642589762094",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"11301",width:"128",height:"128"},[t("path",{d:"M899.892468 123.889088c0-44.342099-36.286708-80.620486-80.624646-80.620486H204.728017C160.385918 43.268602 124.107532 79.546988 124.107532 123.889088v802.847056c0 44.342099 36.278386 80.620486 80.620485 80.620486h614.539805c44.337938 0 80.624646-36.278386 80.624646-80.620486V123.889088z",fill:"#D0D0DB","p-id":"11302"}),t("path",{d:"M169.8768 977.7772V174.930143c0-44.342099 36.278386-80.620486 80.620486-80.620485h614.539804c9.936092 0 19.426974 1.905666 28.239639 5.23434-11.525534-30.507298-40.996782-52.389169-75.398629-52.389169H203.342457c-44.342099 0-80.620486 36.278386-80.620486 80.620486v802.851217c0 34.410168 21.881871 63.873094 52.385008 75.381985A79.730065 79.730065 0 0 1 169.8768 977.7772z",fill:"#FFFFFF","p-id":"11303"}),t("path",{d:"M820.657543 40.497481H206.117739c-44.342099 0-80.620486 36.278386-80.620486 80.620485v802.847057c0 44.342099 36.278386 80.620486 80.620486 80.620486h614.539804c44.337938 0 80.624646-36.278386 80.624647-80.620486V121.117966c0-44.342099-36.286708-80.620486-80.624647-80.620485z m19.60173 828.785749c0 40.846992-33.43237 74.279362-74.287684 74.279361H199.780776c-40.855313 0-74.279362-33.424048-74.279362-74.279361V129.593603c0-40.855313 33.424048-74.279362 74.279362-74.279362h566.203296c40.842831 0 74.283522 33.424048 74.283522 74.279362l-0.008321 739.689627z",fill:"#6E6E96","p-id":"11304"}),t("path",{d:"M815.106979 1024H200.567175C146.933914 1024 103.303319 980.369405 103.303319 926.736144V123.889088C103.303319 70.255827 146.933914 26.625232 200.567175 26.625232h614.539804c53.633261 0 97.268017 43.630595 97.268017 97.263856v802.847056c0 53.633261-43.634756 97.263856-97.268017 97.263856zM200.567175 59.911972C165.287391 59.911972 136.590059 88.609303 136.590059 123.889088v802.847056c0 35.279784 28.697331 63.977115 63.977116 63.977115h614.539804c35.279784 0 63.981276-28.697331 63.981276-63.977115V123.889088c0-35.279784-28.701492-63.977115-63.981276-63.977116H200.567175z",fill:"#6E6E96","p-id":"11305"}),t("path",{d:"M301.946104 941.515457h429.985632v65.841173H301.946104z",fill:"#8A8AA1","p-id":"11306"}),t("path",{d:"M731.931736 1024H301.946104a16.64337 16.64337 0 0 1-16.64337-16.64337V941.515457a16.64337 16.64337 0 0 1 16.64337-16.64337h429.985632a16.64337 16.64337 0 0 1 16.64337 16.64337v65.841173a16.64337 16.64337 0 0 1-16.64337 16.64337z m-413.342262-33.286741h396.698892v-32.554432H318.589474v32.554432z",fill:"#6E6E96","p-id":"11307"}),t("path",{d:"M337.230049 960.318304h20.804213v47.038326h-20.804213zM386.565159 960.318304h20.804213v47.038326h-20.804213zM435.891948 960.318304h20.804213v47.038326h-20.804213zM485.231219 960.318304h20.804213v47.038326h-20.804213zM534.558008 960.318304h20.804213v47.038326h-20.804213zM583.897279 960.318304h20.804213v47.038326h-20.804213zM633.224068 960.318304h20.804213v47.038326h-20.804213zM682.563339 960.318304h20.804213v47.038326h-20.804213z",fill:"#FFE599","p-id":"11308"}),t("path",{d:"M219.153659 140.794591m-26.874883 0a26.874882 26.874882 0 1 0 53.749765 0 26.874882 26.874882 0 1 0-53.749765 0Z",fill:"#ADADD1","p-id":"11309"}),t("path",{d:"M219.153659 184.312843c-23.995579 0-43.518252-19.522673-43.518253-43.518252s19.522673-43.518252 43.518253-43.518253 43.518252 19.522673 43.518252 43.518253-19.522673 43.518252-43.518252 43.518252z m0-53.749764c-5.642103 0-10.231512 4.589409-10.231512 10.231512s4.589409 10.231512 10.231512 10.231512 10.231512-4.589409 10.231511-10.231512-4.589409-10.231512-10.231511-10.231512z",fill:"#6E6E96","p-id":"11310"}),t("path",{d:"M801.28466 140.794591m-26.870721 0a26.870721 26.870721 0 1 0 53.741442 0 26.870721 26.870721 0 1 0-53.741442 0Z",fill:"#ADADD1","p-id":"11311"}),t("path",{d:"M801.28466 184.308683c-23.995579 0-43.514092-19.518512-43.514091-43.514092s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514092z m0-53.741443c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11312"}),t("path",{d:"M801.280499 905.23291m-26.870721 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"11313"}),t("path",{d:"M801.280499 948.747001c-23.995579 0-43.514092-19.518512-43.514091-43.514091s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11314"}),t("path",{d:"M219.153659 905.23291m-26.870722 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"11315"}),t("path",{d:"M219.153659 948.747001c-23.995579 0-43.514092-19.518512-43.514092-43.514091s19.518512-43.514092 43.514092-43.514092 43.514092 19.518512 43.514091 43.514092-19.522673 43.514092-43.514091 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11316"}),t("path",{d:"M520.972857 777.43263c-142.542145 0-258.508988-115.971004-258.508988-258.52147a16.64337 16.64337 0 0 1 33.28674 0c0 124.19699 101.033579 225.23473 225.222248 225.23473s225.222248-101.03774 225.222248-225.23473c0-124.188668-101.033579-225.218087-225.222248-225.218087a16.64337 16.64337 0 0 1 0-33.286741c142.542145 0 258.508988 115.966843 258.508988 258.504828 0 142.550466-115.966843 258.521471-258.508988 258.52147z",fill:"#6E6E96","p-id":"11317"}),t("path",{d:"M520.968696 518.919481m-83.312551 0a83.312551 83.312551 0 1 0 166.625102 0 83.312551 83.312551 0 1 0-166.625102 0Z",fill:"#A9A9BA","p-id":"11318"}),t("path",{d:"M520.968696 618.875402c-55.114521 0-99.955921-44.83724-99.955921-99.95176 0-55.118682 44.8414-99.955921 99.955921-99.955921s99.95176 44.8414 99.95176 99.955921c0 55.11036-44.83724 99.95176-99.95176 99.95176z m0-166.625101c-36.761044 0-66.669181 29.908136-66.66918 66.66918s29.908136 66.66502 66.66918 66.66502 66.66502-29.908136 66.66502-66.66502c0-36.761044-29.903976-66.669181-66.66502-66.66918z",fill:"#6E6E96","p-id":"11319"}),t("path",{d:"M301.946104 941.515457h429.985632v36.977408H301.946104z",fill:"#6E6E96","p-id":"11320"})])],-1)),Ns={key:0,class:"disk-info_mount-name"},Vs={key:1,class:"disk-info_mount-name"},Gs={key:0,class:"label-item"},js={class:"label-item_key"},Us={class:"label-item_path"},qs={class:"label-item"},Rs={class:"label-item_key"},Ws={class:"label-item_value"},Hs=["disabled"],Js={key:0,value:""},Zs={value:"format"},Ks={key:1,value:"default"},Qs={class:"label-item_value"},Xs={key:0,class:"msg"},td={key:1,class:"msg"},ed={class:"action-footer"},ad=da(()=>t("div",{class:"auto"},null,-1)),od=["disabled"],nd=["disabled"],id={key:1,class:"action result"},rd={class:"action-body"},sd=da(()=>t("div",{class:"action-body_icon"},[t("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[t("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})])],-1)),dd={class:"action-body_msg"},ld={key:0,class:"action-body_info"},ud={key:1,class:"action-body_info"},cd={class:"btns"},pd=I({props:{action:String,disk:{type:Object,required:!0},mount:{type:Object},Close:{type:Function},Cancel:{type:Function},Next:{type:Function}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.Close&&n.Close()},d=x=>{x.preventDefault(),n.Cancel&&n.Cancel(),u()},c=x=>{n.Next&&n.Next(x),u()},k=E(!1),g=E(0),p=x=>{g.value=x},m=E(n.action=="nas"?"":"format"),v=E(),b=E(),y=()=>{switch(m.value){case"format":F();return;case"default":f();return;default:$.Warning(a("\u8BF7\u9009\u62E9\u9009\u9879"));return}},f=()=>{let x="";const C=n.mount;if(C!=null&&C.mountPoint!=null&&(x=C.mountPoint),x!=""){c(x);return}$.Warning(a("\u65E0\u6CD5\u8BC6\u522B\u8DEF\u5F84"))},F=()=>{const x=n.disk,C=n.mount;if(C){const S=C.mountPoint||C.path;if(!confirm(a("\u8B66\u544A\uFF1A\u683C\u5F0F\u5316\u4F1A\u6E05\u7A7A %{partname} \u5206\u533A\u6570\u636E\uFF0C\u8BF7\u4F60\u8C28\u614E\u64CD\u4F5C",{partname:S||""}))||!confirm(a("\u662F\u5426\u786E\u5B9A\u683C\u5F0F\u5316 %{partname}?",{partname:S||""})))return;h(C);return}if(x){if(!confirm(a("\u8B66\u544A\uFF1A\u8BE5\u64CD\u4F5C\u5C06\u521D\u59CB\u5316 %{model} \u786C\u76D8\u5E76\u521B\u5EFA\u5206\u533A\uFF0C\u8BF7\u4F60\u8C28\u614E\u64CD\u4F5C",{model:x.venderModel||""}))||!confirm(a("\u662F\u5426\u786E\u5B9A\u521D\u59CB\u5316?")))return;w(x);return}$.Warning(a("\u65E0\u6CD5\u8BC6\u522B\u6570\u636E"))},w=x=>L(this,null,function*(){if(x.name==null||x.path==""){$.Warning(a("\u83B7\u53D6\u4E0D\u5230\u8BBE\u5907\u540D\u79F0"));return}if(x.path==null||x.path==""){$.Warning(a("\u83B7\u53D6\u4E0D\u5230\u8BBE\u5907\u8DEF\u5F84"));return}k.value=!0;const C=$.Loading(a("\u521D\u59CB\u5316\u4E2D..."));try{const S=yield G.Nas.Disk.Init.POST({name:x.name,path:x.path});if(S!=null&&S.data){const{result:A,error:z}=S==null?void 0:S.data;z&&$.Warning(z),A&&(A.errorInfo?$.Warning(A.errorInfo):($.Success(a("\u521D\u59CB\u5316\u6210\u529F")),A.childrens&&A.childrens.length>0&&(b.value=A.childrens[0]),v.value=A,p(1)))}}catch(S){$.Error(S)}C.Close(),k.value=!1}),h=x=>L(this,null,function*(){if(x.path==null||x.path==""){$.Warning(a("\u83B7\u53D6\u4E0D\u5230\u5206\u533A\u8DEF\u5F84"));return}k.value=!0;const C=$.Loading(a("\u683C\u5F0F\u5316\u4E2D..."));try{const S=yield G.Nas.Disk.Partition.Format.POST({path:x.path,uuid:x.uuid,mountPoint:x.mountPoint});if(S!=null&&S.data){const{result:A,error:z}=S==null?void 0:S.data;z&&$.Warning(z),A&&($.Success(a("\u683C\u5F0F\u5316\u6210\u529F")),b.value=A,p(1))}}catch(S){$.Error(S)}C.Close(),k.value=!1}),_=()=>{if(b.value&&b.value.mountPoint){c(b.value.mountPoint);return}$.Warning(a("\u8BFB\u53D6\u7ED3\u679C\u5931\u8D25"))};return(x,C)=>(r(),Z(wt,{type:1},{default:V(()=>[Y(St,{name:"rotate",mode:"out-in"},{default:V(()=>{var S;return[g.value==0?(r(),s("form",{key:0,class:"action format",onSubmit:ft(y,["prevent"])},[t("div",Ts,[t("div",Is,i(e(a)("\u786C\u76D8\u914D\u7F6E")),1)]),t("div",Ms,[t("div",Ls,[Os,o.mount?(r(),s("div",Ns,[t("span",null,"\u3010"+i(o.mount.total)+"\u3011",1),t("span",null,i(o.mount.mountPoint||o.mount.path),1)])):o.disk?(r(),s("div",Vs,[t("span",null,"\u3010"+i(o.disk.size)+"\u3011",1),t("span",null,i(o.disk.venderModel),1)])):D("",!0)]),o.mount?(r(),s("div",Gs,[t("div",js,[t("span",null,i(e(a)("\u76EE\u6807\u5206\u533A")),1)]),t("div",Us,i(o.mount.mountPoint||o.mount.path)+"\uFF08"+i(o.mount.total)+"\uFF09",1)])):D("",!0),t("div",qs,[t("div",Rs,[t("span",null,i(e(a)("\u683C\u5F0F\u5316\u9009\u9879")),1)]),t("div",Ws,[O(t("select",{"onUpdate:modelValue":C[0]||(C[0]=A=>m.value=A),required:"",disabled:o.action=="disk"},[o.mount!=null?(r(),s("option",Js,i(e(a)("\u8BF7\u9009\u62E9\u9009\u9879")),1)):D("",!0),t("option",Zs,i(e(a)("\u683C\u5F0F\u5316")),1),o.mount!=null?(r(),s("option",Ks,i(e(a)("\u4E0D\u683C\u5F0F\u5316,\u4F7F\u7528\u539F\u6587\u4EF6\u7CFB\u7EDF")),1)):D("",!0)],8,Hs),[[pt,m.value]])]),t("div",Qs,[m.value=="format"?(r(),s("p",Xs,i(e(a)("\u683C\u5F0F\u5316\u4E3AEXT4\u6587\u4EF6\u7CFB\u7EDF")),1)):m.value=="default"?(r(),s("p",td)):D("",!0)])])]),t("div",ed,[ad,t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:d,type:"button",disabled:k.value},i(e(a)("\u8FD4\u56DE")),9,od),t("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:k.value},i(e(a)("\u4E0B\u4E00\u6B65")),9,nd)])],40,Ps)):g.value==1?(r(),s("div",id,[t("div",rd,[sd,t("div",dd,i(e(a)("\u683C\u5F0F\u5316\u6210\u529F")),1),v.value?(r(),s("div",ld,[dt(i(e(a)("\u5DF2\u7ECF\u6210\u529F\u683C\u5F0F\u5316\u78C1\u76D8"))+" "+i(v.value.venderModel)+" "+i(e(a)("\u5E76\u6302\u8F7D\u5230"))+" ",1),t("a",null,i((S=b.value)==null?void 0:S.mountPoint),1)])):D("",!0),b.value?(r(),s("div",ud,[dt(i(e(a)("\u5DF2\u7ECF\u6210\u529F\u521D\u59CB\u5316\u5206\u533A"))+" ",1),t("a",null,i(b.value.mountPoint),1)])):D("",!0),t("div",cd,[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",type:"button",onClick:_},i(o.action=="nas"?e(a)("\u4E0B\u4E00\u6B65"):e(a)("\u5B8C\u6210")),1)])])])):D("",!0)]}),_:1})]),_:1}))}});var fd=N(pd,[["__scopeId","data-v-d72e7026"]]),la=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(fd,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}};const md=o=>(ut("data-v-0d1b6ac8"),o=o(),ct(),o),gd={class:"action list"},vd={class:"action-header"},bd={class:"action-header_title"},hd={class:"action-body"},_d={class:"disk-list"},xd={class:"action-msg"},wd={href:"/cgi-bin/luci/admin/system/diskman"},kd={class:"action-footer"},yd=md(()=>t("div",{class:"auto"},null,-1)),Fd=I({props:{Cancel:{type:Function},Next:{type:Function},Close:{type:Function}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!0),d=gt({disks:[],raids:[]});(()=>L(this,null,function*(){const f=yield Promise.all([G.Nas.Disk.Status.GET(),G.Raid.List.GET()]);try{if(f[0]){const F=f[0];F!=null&&F.data.result&&(d.disks=(F==null?void 0:F.data.result.disks)||[])}if(f[1]){const F=f[1];F.data.result&&(d.raids=F.data.result.disks||[])}}catch(F){$.Warning(F)}}))();const k=E(),g=E(),p=(f,F)=>{k.value=f,g.value=F},m=()=>{n.Close&&n.Close()},v=()=>{n.Cancel&&n.Cancel(),m()},b=f=>{n.Next&&n.Next(f),m()},y=()=>{if(k.value==null){$.Warning(a("\u8BF7\u9009\u62E9\u76EE\u6807\u786C\u76D8"));return}if(k.value.childrens!=null&&k.value.childrens.length>0&&g.value==null){$.Warning(a("\u8BF7\u9009\u62E9\u786C\u76D8\u5206\u533A"));return}if(g.value!=null&&(g.value.mountPoint==null||g.value.mountPoint=="")){$.Warning(a("\u8BE5\u5206\u533A\u5C1A\u672A\u6302\u8F7D\uFF0C\u8BF7\u5148\u53BB\u6302\u8F7D"));return}u.value=!1,la({action:"nas",disk:k.value,mount:g.value,Cancel:()=>{u.value=!0},Next:f=>{b(f)}})};return(f,F)=>u.value?(r(),Z(wt,{key:0,type:1},{default:V(()=>[Y(St,{name:"rotate",mode:"out-in"},{default:V(()=>[t("div",gd,[t("div",vd,[t("div",bd,i(e(a)("\u8BF7\u9009\u62E9\u4E00\u4E2A\u786C\u76D8\u6216\u5206\u533A")),1)]),t("div",hd,[t("div",_d,[(r(!0),s(U,null,tt(e(d).disks,w=>(r(),Z(ka,{disk:w,onDisk:p,currDisk:k.value,currMountPoint:g.value},null,8,["disk","currDisk","currMountPoint"]))),256)),(r(!0),s(U,null,tt(e(d).raids,w=>(r(),Z(ka,{disk:w,onDisk:p,currDisk:k.value,currMountPoint:g.value},null,8,["disk","currDisk","currMountPoint"]))),256))])]),t("div",xd,[t("span",null,[dt(i(e(a)("\u60F3\u8981\u66F4\u7CBE\u786E\u7684\u914D\u7F6E\uFF1F\u8BF7\u524D\u5F80"))+" ",1),t("a",wd,i(e(a)("\u9AD8\u7EA7\u8BBE\u7F6E")),1)])]),t("div",kd,[yd,t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:v,type:"button"},i(e(a)("\u8FD4\u56DE")),1),t("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:y,type:"button"},i(e(a)("\u4E0B\u4E00\u6B65")),1)])])]),_:1})]),_:1})):D("",!0)}});var Ed=N(Fd,[["__scopeId","data-v-0d1b6ac8"]]),$d=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(Ed,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}};const Cd=o=>(ut("data-v-5f6e53be"),o=o(),ct(),o),Dd={class:"action"},Bd={class:"action-body"},Yd=Cd(()=>t("div",{class:"icon"},[t("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[t("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})])],-1)),Ad={class:"title"},Sd={class:"info"},zd=["href"],Pd={class:"btns"},Td=I({props:{Close:Function},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(""),d=Q(()=>`http://${location.hostname}:${u.value}`);(()=>{G.Nas.Linkease.Enable.POST().then(g=>{var p,m;(p=g==null?void 0:g.data)!=null&&p.result&&(u.value=((m=g.data.result)==null?void 0:m.port)||"")})})();const k=()=>{n.Close&&n.Close(),location.reload()};return(g,p)=>(r(),Z(wt,{type:1},{default:V(()=>[Y(St,{name:"rotate",mode:"out-in"},{default:V(()=>[t("div",Dd,[t("div",Bd,[Yd,t("h2",Ad,i(e(a)("\u670D\u52A1\u5DF2\u542F\u52A8")),1),t("div",Sd,[t("span",null,i(e(a)("\u524D\u5F80")),1),t("a",{href:e(d),target:"_blank",rel:"noopener noreferrer"},i(e(d)),9,zd),t("span",null,i(e(a)("\u7EE7\u7EED\u914D\u7F6E")),1)]),t("div",Pd,[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:k},i(e(a)("\u5173\u95ED")),1)])])])]),_:1})]),_:1}))}});var Id=N(Td,[["__scopeId","data-v-5f6e53be"]]),Md=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(Id,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}};const Ld=o=>(ut("data-v-2eafa10c"),o=o(),ct(),o),Od=["onSubmit"],Nd={class:"action-header"},Vd={class:"action-header_title"},Gd={class:"action-body"},jd={class:"label-item"},Ud={class:"label-item_key"},qd={class:"label-item_value"},Rd=["value"],Wd={class:"label-item"},Hd={class:"label-item_key"},Jd={class:"label-item_value"},Zd=["placeholder"],Kd={class:"label-item"},Qd={class:"label-item_key"},Xd={class:"label-item_value"},t0={class:"action-footer"},e0=Ld(()=>t("div",{class:"auto"},null,-1)),a0=["disabled"],o0=["disabled"],n0=I({props:{rootPath:{type:String,required:!0},Close:Function},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=m=>{m.preventDefault(),n.Close&&n.Close()},d=E(!1),c=E({username:"root",password:"",rootPath:n.rootPath});(()=>L(this,null,function*(){const m=$.Loading(a("\u52A0\u8F7D\u4E2D..."));d.value=!0;try{const v=yield G.Nas.Webdav.Status.GET();if(v!=null&&v.data){const{result:b,error:y}=v.data;if(y){$.Warning(y);return}b&&(b.username&&(c.value.username=b.username),b.password&&(c.value.password=b.password))}}catch(v){$.Error(v)}d.value=!1,m.Close()}))();const g=()=>{const m=c.value;if(m.rootPath==""){$.Warning(a("\u5171\u4EAB\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A"));return}if(m.username==""){$.Warning(a("\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A"));return}if(m.password==""){$.Warning(a("\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A"));return}p(m)},p=m=>L(this,null,function*(){d.value=!0;const v=$.Loading(a("\u521B\u5EFA\u4E2D..."));try{const b=yield G.Nas.Webdav.Create.POST(m);if(b!=null&&b.data){const{error:y,result:f}=b.data;y&&$.Warning(y),f&&($.Success(a("\u521B\u5EFA\u6210\u529F")),window.setTimeout(()=>{location.reload()},1e3))}}catch(b){$.Error(b)}v.Close(),d.value=!1});return(m,v)=>(r(),Z(wt,{type:1},{default:V(()=>[Y(St,{name:"rotate",mode:"out-in"},{default:V(()=>[t("form",{class:"action",onSubmit:ft(g,["prevent"])},[t("div",Nd,[t("div",Vd,i(e(a)("Webdav\u5171\u4EAB\u914D\u7F6E")),1)]),t("div",Gd,[t("div",jd,[t("div",Ud,[t("span",null,i(e(a)("\u670D\u52A1\u76EE\u5F55\u8DEF\u5F84")),1)]),t("div",qd,[t("input",{type:"text",value:c.value.rootPath,disabled:"",required:"",style:{backgroundColor:"#eee"}},null,8,Rd)])]),t("div",Wd,[t("div",Hd,[t("span",null,i(e(a)("\u7528\u6237\u540D")),1)]),t("div",Jd,[O(t("input",{type:"text",required:"",placeholder:e(a)("\u8D26\u53F7\u7528\u6237\u540D"),"onUpdate:modelValue":v[0]||(v[0]=b=>c.value.username=b)},null,8,Zd),[[at,c.value.username,void 0,{trim:!0}]])])]),t("div",Kd,[t("div",Qd,[t("span",null,i(e(a)("\u5BC6\u7801")),1)]),t("div",Xd,[O(t("input",{type:"password","onUpdate:modelValue":v[1]||(v[1]=b=>c.value.password=b)},null,512),[[at,c.value.password,void 0,{trim:!0}]])])])]),t("div",t0,[e0,t("button",{class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:u,disabled:d.value},i(e(a)("\u5173\u95ED")),9,a0),t("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:d.value},i(e(a)("\u521B\u5EFA")),9,o0)])],40,Od)]),_:1})]),_:1}))}});var i0=N(n0,[["__scopeId","data-v-2eafa10c"]]),r0=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(i0,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}};const s0={},d0={width:"14px",height:"14px",viewBox:"0 0 14 14",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},l0=t("g",{id:"icon_alert",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t("g",{id:"Icon/Warning"},[t("rect",{id:"\u77E9\u5F62",fill:"#000000","fill-rule":"nonzero",opacity:"0",x:"0",y:"0",width:"14",height:"14"}),t("path",{d:"M7,0.875 C3.61757813,0.875 0.875,3.61757813 0.875,7 C0.875,10.3824219 3.61757813,13.125 7,13.125 C10.3824219,13.125 13.125,10.3824219 13.125,7 C13.125,3.61757813 10.3824219,0.875 7,0.875 Z M6.5625,4.046875 C6.5625,3.98671875 6.61171875,3.9375 6.671875,3.9375 L7.328125,3.9375 C7.38828125,3.9375 7.4375,3.98671875 7.4375,4.046875 L7.4375,7.765625 C7.4375,7.82578125 7.38828125,7.875 7.328125,7.875 L6.671875,7.875 C6.61171875,7.875 6.5625,7.82578125 6.5625,7.765625 L6.5625,4.046875 Z M7,10.0625 C6.63769531,10.0625 6.34375,9.76855469 6.34375,9.40625 C6.34375,9.04394531 6.63769531,8.75 7,8.75 C7.36230469,8.75 7.65625,9.04394531 7.65625,9.40625 C7.65625,9.76855469 7.36230469,10.0625 7,10.0625 Z",id:"\u5F62\u72B6",fill:"#FAAD14"})])],-1),u0=[l0];function c0(o,n){return r(),s("svg",d0,u0)}var It=N(s0,[["render",c0]]);const{$gettext:be,$ngettext:Ye}=Me(),p0=o=>{},f0=()=>new Date().getTime(),m0=o=>{if(o<1e3)return`${o} B`;let a=1e3,l=0;for(let c=o/1e3;c>=1e3;c/=1e3)a*=1e3,l++;let u=[" KB"," MB"," GB"," TB"," PB"," EB"];return(o/100/(a/100)).toFixed(1)+u[l]},g0=o=>{if(o==null)return 0;if(o<1e4)return o;let a=parseInt(`${o/1e4}`),l=o%1e4;return`${a}\u4E07${l}`},v0=o=>{if(o)try{var n=new Date(o),a=n.getHours(),l=n.getMinutes(),u=n.getSeconds();return a<10&&(a=`0${a}`),l<10&&(l=`0${l}`),u<10&&(u=`0${u}`),`${a}:${l}:${u}`}catch(d){}return""},b0=o=>{if(o){let n=Math.floor(o/86400),a=Math.floor(o/3600)%24,l=Math.floor(o/60)%60,u=o%60;return(n>0?Ye("%{ days }\u5929","%{ days }\u5929",n,{days:De(n)}):"")+Ye("%{ hours }\u5C0F\u65F6","%{ hours }\u5C0F\u65F6",a,{hours:De(a)})+Ye("%{ minutes }\u5206","%{ minutes }\u5206",l,{minutes:De(l)})+Ye("%{ seconds }\u79D2","%{ seconds }\u79D2",u,{seconds:De(u)})}},h0=o=>/^\d+\.\d+\.\d+\.\d+$/.test(o),_0=o=>o.length<3?be("\u7528\u6237\u540D\u592A\u77ED"):o.toLowerCase()!=o?be("\u7528\u6237\u540D\u53EA\u80FD\u4E3A\u5C0F\u5199"):new RegExp("^\\d").exec(o)?be("\u7528\u6237\u540D\u4E0D\u80FD\u4EE5\u6570\u5B57\u5F00\u5934"):new RegExp("^_").exec(o)?be("\u7528\u6237\u540D\u4E0D\u80FD\u4EE5_\u5F00\u5934"):new RegExp("^[a-z0-9_]+$").exec(o)?!0:be("\u975E\u6CD5\u7684\u7528\u6237\u540D"),x0=(o,n)=>{let a=!0,l=null;const u=()=>{l=null,a&&o().finally(()=>{a&&(l=setTimeout(u,n))})};return l=setTimeout(u,0),()=>{a=!1,l!=null&&clearTimeout(l)}};var w0=Object.freeze(Object.defineProperty({__proto__:null,formatDate:p0,UnixDate:f0,byteToSize:m0,numberToSum:g0,dateForm:v0,stampForm:b0,checkIsIP:h0,checkSmabaUserName:_0,easyInterval:x0},Symbol.toStringTag,{value:"Module"})),Mt=st({},w0);const k0=o=>(ut("data-v-58844394"),o=o(),ct(),o),y0=["onSubmit"],F0={class:"action-header"},E0={class:"action-header_title"},$0={class:"action-body"},C0={class:"label-item"},D0={class:"label-item_key"},B0={class:"label-item_value"},Y0=["value"],A0={class:"label-item"},S0={class:"label-item_key"},z0={class:"label-item_value"},P0=["placeholder"],T0={class:"label-item"},I0={class:"label-item_key"},M0={class:"label-item_value"},L0=["placeholder"],O0={class:"label-item"},N0={class:"label-item_key"},V0={class:"label-item_value"},G0={class:"samba-item"},j0={class:"samba-item_allow"},U0={for:"allow",class:"samba-allow"},q0={class:"samba-item_tips"},R0={class:"tooltip-trigger"},W0={class:"samba_tip"},H0={class:"samba_dir_tip"},J0={class:"action-footer"},Z0=k0(()=>t("div",{class:"auto"},null,-1)),K0=["disabled"],Q0=["disabled"],X0=I({props:{rootPath:{type:String,required:!0},Close:Function},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=p=>{p.preventDefault(),n.Close&&n.Close()},d=E(!1),c=E({shareName:"",username:"",password:"",rootPath:n.rootPath,allowLegacy:!1}),k=()=>{const p=c.value;if(p.rootPath==""){$.Warning(a("\u5171\u4EAB\u8DEF\u5F84\u4E0D\u80FD\u4E3A\u7A7A"));return}if(p.shareName==""){$.Warning(a("\u5171\u4EAB\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A"));return}if(p.username==""){$.Warning(a("\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A"));return}if(p.password==""){$.Warning(a("\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A"));return}const m=Mt.checkSmabaUserName(p.username);if(m!==!0){$.Warning(`${m}`);return}g(p)},g=p=>L(this,null,function*(){d.value=!0;const m=$.Loading(a("\u521B\u5EFA\u4E2D..."));try{const v=yield G.Nas.Samba.Create.POST(p);if(v!=null&&v.data){const{error:b,result:y}=v.data;b&&$.Warning(b),y&&($.Success(a("\u521B\u5EFA\u6210\u529F")),window.setTimeout(()=>{location.reload()},1e3))}}catch(v){$.Error(v)}m.Close(),d.value=!1});return(p,m)=>(r(),Z(wt,{type:1},{default:V(()=>[Y(St,{name:"rotate",mode:"out-in"},{default:V(()=>[t("form",{class:"action",onSubmit:ft(k,["prevent"])},[t("div",F0,[t("div",E0,i(e(a)("Samba\u5171\u4EAB\u914D\u7F6E")),1)]),t("div",$0,[t("div",C0,[t("div",D0,[t("span",null,i(e(a)("\u670D\u52A1\u76EE\u5F55\u8DEF\u5F84")),1)]),t("div",B0,[t("input",{type:"text",value:c.value.rootPath,disabled:"",required:"",style:{backgroundColor:"#eee"}},null,8,Y0)])]),t("div",A0,[t("div",S0,[t("span",null,i(e(a)("\u5171\u4EAB\u540D\uFF08\u5EFA\u8BAE\u4F7F\u7528\u82F1\u6587\u5B57\u6BCD\uFF09")),1)]),t("div",z0,[O(t("input",{type:"text","onUpdate:modelValue":m[0]||(m[0]=v=>c.value.shareName=v),required:"",placeholder:e(a)("\u5171\u4EAB\u540D\u79F0")},null,8,P0),[[at,c.value.shareName,void 0,{trim:!0}]])])]),t("div",T0,[t("div",I0,[t("span",null,i(e(a)("\u7528\u6237\u540D")),1)]),t("div",M0,[O(t("input",{type:"text",required:"",placeholder:e(a)("\u8D26\u53F7\u7528\u6237\u540D"),"onUpdate:modelValue":m[1]||(m[1]=v=>c.value.username=v)},null,8,L0),[[at,c.value.username,void 0,{trim:!0}]])])]),t("div",O0,[t("div",N0,[t("span",null,i(e(a)("\u5BC6\u7801")),1)]),t("div",V0,[O(t("input",{type:"password","onUpdate:modelValue":m[2]||(m[2]=v=>c.value.password=v)},null,512),[[at,c.value.password,void 0,{trim:!0}]])])]),t("div",G0,[t("div",j0,[O(t("input",{type:"checkbox",id:"allow","onUpdate:modelValue":m[3]||(m[3]=v=>c.value.allowLegacy=v)},null,512),[[Rt,c.value.allowLegacy]]),t("label",U0,i(e(a)("\u5141\u8BB8\u65E7\u534F\u8BAE\u4E0E\u8EAB\u4EFD\u9A8C\u8BC1(\u4E0D\u5B89\u5168)")),1)]),t("div",q0,[t("span",R0,[t("span",W0,[Y(It)]),t("span",H0,i(e(a)("\u517C\u5BB9\u4E00\u4E9B\u7535\u89C6\u6216\u8005\u7535\u89C6\u76D2\u5B50")),1)])])])]),t("div",J0,[Z0,t("button",{class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:u,disabled:d.value},i(e(a)("\u5173\u95ED")),9,K0),t("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:d.value},i(e(a)("\u521B\u5EFA")),9,Q0)])],40,y0)]),_:1})]),_:1}))}});var tl=N(X0,[["__scopeId","data-v-58844394"]]),el=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(tl,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}};const{$gettext:te,$ngettext:pT}=Me(),zt={installApp:(o,n)=>new Promise((a,l)=>{let u=0;G.App.Install.POST({name:o}).then(()=>{const d=setTimeout(()=>{u==0&&(u=1,a(!1))},(n||60)*1e3),c=()=>{u==0&&G.App.Check.POST({name:o}).then(k=>{if(u==0&&k!=null&&k.data){const{result:g}=k.data;if((g==null?void 0:g.status)=="installed"){clearTimeout(d),u=1,a(!0);return}}}).catch(k=>{}).finally(()=>{u==0&&setTimeout(c,3e3)})};setTimeout(c,3e3)}).catch(d=>{u==0&&(u=1,l(te("\u5B89\u88C5\u5931\u8D25\uFF0C")+d))})}),checkAndInstallApp:(o,n,a)=>L(ae,null,function*(){let l=$.Loading(te("\u68C0\u67E5\u4E2D..."));try{const u=yield G.App.Check.POST({name:o});if(l.Close(),u!=null&&u.data){const{result:d,error:c}=u.data;if(c)$.Warning(c);else if(d){if(d.status=="installed")return!0;if(confirm(te("\u68C0\u6D4B\u5230\u4F60\u5C1A\u672A\u5B89\u88C5 %{name} \u63D2\u4EF6,\u662F\u5426\u5B89\u88C5\uFF1F",{name:n}))){l=$.Loading(te("\u6B63\u5728\u5B89\u88C5\u4E2D..."));const k=yield zt.installApp(a||o);if(l.Close(),k)return!0;$.Error(te("\u5B89\u88C5\u5931\u8D25\u6216\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u8F6F\u4EF6\u6E90\u6216\u7A0D\u5019\u91CD\u8BD5"))}}else $.Warning(te("\u68C0\u67E5\u63D2\u4EF6\u72B6\u6001\u5931\u8D25"))}return!1}catch(u){return l.Close(),$.Warning(u),!1}}),installAndGo:(o,n,a,l)=>L(ae,null,function*(){(yield zt.checkAndInstallApp(o,n,l))&&(location.href=a)})},Qt=o=>!Array.isArray(window.quickstart_features)||window.quickstart_features.indexOf(o)!=-1,al={key:0,class:"action"},ol={class:"title"},nl={class:"desc"},il={value:"linkease"},rl={value:"samba"},sl={value:"webdav"},dl=["innerHTML"],ll={class:"btns"},ul=["disabled"],cl=I({props:{setup:Number,Close:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!0),d=E("linkease"),c=E(!1),k=E(n.setup||0),g=()=>{n.Close&&n.Close()},p=()=>L(this,null,function*(){switch(d.value){case"webdav":yield m();break;case"samba":yield b();break;case"linkease":yield v();break}}),m=()=>L(this,null,function*(){c.value=!0,(yield zt.checkAndInstallApp("app-meta-gowebdav","GoWebdav"))&&y(),c.value=!1}),v=()=>L(this,null,function*(){c.value=!0,(yield zt.checkAndInstallApp("linkease",a("\u6613\u6709\u4E91"),"app-meta-linkease"))&&f(),c.value=!1}),b=()=>L(this,null,function*(){c.value=!0;const h=$.Loading(a("\u914D\u7F6E\u4E2D..."));y(),h.Close(),c.value=!1}),y=()=>{c.value=!1,u.value=!1,$d({Cancel:()=>{u.value=!0},Next:h=>{switch(d.value){case"webdav":F(h);break;case"samba":w(h);break}}})},f=()=>{Md({}),g()},F=h=>{r0({rootPath:h}),g()},w=h=>{el({rootPath:h}),g()};return(h,_)=>u.value?(r(),Z(wt,{key:0,Close:o.Close,type:1},{default:V(()=>[Y(St,{name:"rotate",mode:"out-in"},{default:V(()=>[k.value==0?(r(),s("div",al,[t("h2",ol,i(e(a)("\u6B22\u8FCE\u4F7F\u7528 NAS \u914D\u7F6E\u5411\u5BFC")),1),t("h3",nl,i(e(a)("\u8BF7\u9009\u62E9\u9700\u8981\u6DFB\u52A0\u7684NAS\u670D\u52A1")),1),t("form",null,[t("label",null,[O(t("select",{"onUpdate:modelValue":_[0]||(_[0]=x=>d.value=x)},[t("option",il,i(e(a)("\u8DE8\u8BBE\u5907\u5171\u4EAB\uFF08\u6613\u6709\u4E91\uFF09")),1),t("option",rl,i(e(a)("\u5C40\u57DF\u7F51\u6587\u4EF6\u5171\u4EAB\uFF08Samba\uFF09")),1),t("option",sl,i(e(a)("\u5C40\u57DF\u7F51\u6587\u4EF6\u5171\u4EAB\uFF08WebDAV\uFF09")),1)],512),[[pt,d.value]])])]),e(Qt)("unishare")?(r(),s("div",{key:0,class:"tips",innerHTML:e(a)("\u5982\u9700\u5BF9 Samba \u6216 WebDAV \u8FDB\u884C\u66F4\u7EC6\u81F4\u7684\u6743\u9650\u63A7\u5236\uFF0C\u8BF7\u4F7F\u7528\u201C%{unishare}\u201D",{unishare:''+e(a)("\u7EDF\u4E00\u6587\u4EF6\u5171\u4EAB")+""},!0)},null,8,dl)):D("",!0),t("div",ll,[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:p,type:"button",disabled:c.value},i(e(a)("\u4E0B\u4E00\u6B65")),9,ul),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:g,type:"button"},i(e(a)("\u53D6\u6D88")),1)])])):D("",!0)]),_:1})]),_:1},8,["Close"])):D("",!0)}});var pl=N(cl,[["__scopeId","data-v-1d64dea6"]]),Wa=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(pl,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}};const fl={class:"app-container_aria2"},ml={class:"aria2-item"},gl={class:"aria2-item_name"},vl={class:"aria2-item_value"},bl={key:0,class:"configure"},hl={key:1,class:"configure enabel"},_l={class:"aria2-item"},xl={class:"aria2-item_name"},wl={class:"aria2-item_value"},kl=["href"],yl={class:"aria2-item"},Fl={class:"aria2-item_name"},El={class:"aria2-item_value"},$l=["href"],Cl={class:"aria2-item"},Dl={class:"aria2-item_name right"},Bl={class:"aria2-item_value"},Yl=["href"],Al={class:"use-url_app"},Sl={href:"https://doc.linkease.com/zh/guide/linkease_app/tutorial.html#%E8%BF%9C%E7%A8%8B%E4%B8%8B%E8%BD%BD",target:"_blank"},zl=I({props:{aria2:{type:Object}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=Q(()=>{var c;return`${location.origin}${(c=n.aria2)==null?void 0:c.webPath}`}),d=Q(()=>{var g,p,m;let c=(g=n.aria2)==null?void 0:g.rpcToken;c?c=encodeURIComponent(btoa(c)):c="";const k=encodeURIComponent(location.hostname);return`${location.origin}${(p=n.aria2)==null?void 0:p.webPath}/#!/settings/rpc/set/http/${k}/${(m=n.aria2)==null?void 0:m.rpcPort}/jsonrpc/${c}`});return(c,k)=>{var g,p,m,v;return r(),s("ul",fl,[t("li",ml,[t("div",gl,[t("span",null,i(e(a)("\u5F53\u524D\u72B6\u6001:")),1)]),t("div",vl,[((g=o.aria2)==null?void 0:g.status)=="running"?(r(),s("span",bl,i(e(a)("\u5DF2\u542F\u52A8")),1)):(r(),s("span",hl,i(e(a)("\u672A\u542F\u52A8")),1))])]),((p=o.aria2)==null?void 0:p.status)=="running"?(r(),s(U,{key:0},[t("li",_l,[t("div",xl,[t("span",null,i(e(a)("\u4E0B\u8F7D\u76EE\u5F55:")),1)]),t("div",wl,[t("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+((m=o.aria2)==null?void 0:m.downloadPath)},i((v=o.aria2)==null?void 0:v.downloadPath),9,kl)])]),t("li",yl,[t("div",Fl,[t("span",null,i(e(a)("\u7F51\u7EDC\u5730\u5740:")),1)]),t("div",El,[t("a",{href:e(u),target:"_blank",rel:"noopener noreferrer"},i(e(u)),9,$l)])]),t("li",Cl,[t("div",Dl,[t("span",null,i(e(a)("\u8BA4\u8BC1\u5931\u8D25\uFF1F")),1)]),t("div",Bl,[t("a",{href:e(d),target:"_blank",rel:"noopener noreferrer"},i(e(a)("\u70B9\u6B64\u81EA\u52A8\u914D\u7F6E AriaNg")),9,Yl)])])],64)):D("",!0),t("div",Al,[t("a",Sl,i(e(a)("\u4F7F\u7528\u6613\u6709\u4E91APP\uFF0C\u968F\u65F6\u968F\u5730\u8FDC\u7A0B\u4E0B\u8F7D")),1)])])}}});var Pl=N(zl,[["__scopeId","data-v-27ba49f9"]]);const Tl={class:"app-container_qbittorrent"},Il={class:"qbittorrent-item"},Ml={class:"qbittorrent-item_name"},Ll={class:"qbittorrent-item_value"},Ol={key:0,class:"configure"},Nl={key:1,class:"configure enabel"},Vl={class:"qbittorrent-item"},Gl={class:"qbittorrent-item_name"},jl={class:"qbittorrent-item_value"},Ul=["href"],ql={class:"qbittorrent-item"},Rl={class:"qbittorrent-item_name"},Wl={class:"qbittorrent-item_value"},Hl=["href"],Jl={class:"qbittorrent-item"},Zl={class:"qbittorrent-item_name right"},Kl={class:"qbittorrent-item_value"},Ql=I({props:{qbittorrent:{type:Object}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=Q(()=>{var d;return`http://${location.hostname}${(d=n.qbittorrent)==null?void 0:d.webPath}`});return(d,c)=>{var k,g,p,m;return r(),s("ul",Tl,[t("li",Il,[t("div",Ml,[t("span",null,i(e(a)("\u5F53\u524D\u72B6\u6001:")),1)]),t("div",Ll,[((k=o.qbittorrent)==null?void 0:k.status)=="running"?(r(),s("span",Ol,i(e(a)("\u5DF2\u542F\u52A8")),1)):(r(),s("span",Nl,i(e(a)("\u672A\u542F\u52A8")),1))])]),((g=o.qbittorrent)==null?void 0:g.status)=="running"?(r(),s(U,{key:0},[t("li",Vl,[t("div",Gl,[t("span",null,i(e(a)("\u4E0B\u8F7D\u76EE\u5F55:")),1)]),t("div",jl,[t("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+((p=o.qbittorrent)==null?void 0:p.downloadPath)},i((m=o.qbittorrent)==null?void 0:m.downloadPath),9,Ul)])]),t("li",ql,[t("div",Rl,[t("span",null,i(e(a)("\u7F51\u7EDC\u5730\u5740:")),1)]),t("div",Wl,[t("a",{href:e(u),target:"_blank",rel:"noopener noreferrer"},i(e(u)),9,Hl)])]),t("li",Jl,[t("div",Zl,[t("span",null,i(e(a)("\u9ED8\u8BA4\u7528\u6237\u540D\uFF1A"))+"admin",1)]),t("div",Kl,[t("span",null,i(e(a)("\u9ED8\u8BA4\u5BC6\u7801\uFF1A"))+"adminadmin",1)])])],64)):D("",!0)])}}});var Xl=N(Ql,[["__scopeId","data-v-da46870e"]]);const tu={class:"app-container_transmission"},eu={class:"transmission-item"},au={class:"transmission-item_name"},ou={class:"transmission-item_value"},nu={key:0,class:"configure"},iu={key:1,class:"configure enabel"},ru={class:"transmission-item"},su={class:"transmission-item_name"},du={class:"transmission-item_value"},lu=["href"],uu={class:"transmission-item"},cu={class:"transmission-item_name"},pu={class:"transmission-item_value"},fu=["href"],mu=I({props:{transmission:{type:Object}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=Q(()=>{var d;return`http://${location.hostname}${(d=n.transmission)==null?void 0:d.webPath}`});return(d,c)=>{var k,g,p,m;return r(),s("ul",tu,[t("li",eu,[t("div",au,[t("span",null,i(e(a)("\u5F53\u524D\u72B6\u6001:")),1)]),t("div",ou,[((k=o.transmission)==null?void 0:k.status)=="running"?(r(),s("span",nu,i(e(a)("\u5DF2\u542F\u52A8")),1)):(r(),s("span",iu,i(e(a)("\u672A\u542F\u52A8")),1))])]),((g=o.transmission)==null?void 0:g.status)=="running"?(r(),s(U,{key:0},[t("li",ru,[t("div",su,[t("span",null,i(e(a)("\u4E0B\u8F7D\u76EE\u5F55:")),1)]),t("div",du,[t("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+((p=o.transmission)==null?void 0:p.downloadPath)},i((m=o.transmission)==null?void 0:m.downloadPath),9,lu)])]),t("li",uu,[t("div",cu,[t("span",null,i(e(a)("\u7F51\u7EDC\u5730\u5740:")),1)]),t("div",pu,[t("a",{href:e(u),target:"_blank",rel:"noopener noreferrer"},i(e(u)),9,fu)])])],64)):D("",!0)])}}});var gu=N(mu,[["__scopeId","data-v-562f4f7e"]]);const vu={},bu={width:"14px",height:"14px",viewBox:"0 0 14 14",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},hu=t("path",{d:"M7,0.875 C3.61757813,0.875 0.875,3.61757813 0.875,7 C0.875,10.3824219 3.61757813,13.125 7,13.125 C10.3824219,13.125 13.125,10.3824219 13.125,7 C13.125,3.61757813 10.3824219,0.875 7,0.875 Z M6.5625,4.046875 C6.5625,3.98671875 6.61171875,3.9375 6.671875,3.9375 L7.328125,3.9375 C7.38828125,3.9375 7.4375,3.98671875 7.4375,4.046875 L7.4375,7.765625 C7.4375,7.82578125 7.38828125,7.875 7.328125,7.875 L6.671875,7.875 C6.61171875,7.875 6.5625,7.82578125 6.5625,7.765625 L6.5625,4.046875 Z M7,10.0625 C6.63769531,10.0625 6.34375,9.76855469 6.34375,9.40625 C6.34375,9.04394531 6.63769531,8.75 7,8.75 C7.36230469,8.75 7.65625,9.04394531 7.65625,9.40625 C7.65625,9.76855469 7.36230469,10.0625 7,10.0625 Z",id:"\u5F62\u72B6","fill-opacity":"0.65"},null,-1),_u=[hu];function xu(o,n){return r(),s("svg",bu,_u)}var Jt=N(vu,[["render",xu]]);const wu={},ku={width:"82px",height:"82px",viewBox:"0 0 82 82",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},yu=jt('',1),Fu=[yu];function Eu(o,n){return r(),s("svg",ku,Fu)}var ua=N(wu,[["render",Eu]]);const Ne=o=>(ut("data-v-7b328460"),o=o(),ct(),o),$u={key:0,class:"action"},Cu={class:"title"},Du={class:"load_service input_row"},Bu={class:"left"},Yu={class:"radios"},Au=Ne(()=>t("label",{for:"Aria2"},"Aria2",-1)),Su={class:"radios"},zu=Ne(()=>t("label",{for:"qB"},"qBittorrent",-1)),Pu={class:"radios"},Tu=Ne(()=>t("label",{for:"Tr"},"Transmission",-1)),Iu=["onSubmit"],Mu={class:"input_row"},Lu={class:"left"},Ou={class:"tooltip-trigger"},Nu={class:"tooltip-text tooltip-top"},Vu={class:"dowload_dir_tip"},Gu={class:"myinput_wrap"},ju={class:"input_row"},Uu={class:"left"},qu={class:"tooltip-trigger"},Ru={class:"tooltip-text tooltip-top"},Wu={class:"dowload_dir_tip"},Hu={class:"myinput_wrap"},Ju={class:"input_row"},Zu={class:"left"},Ku={class:"tooltip-trigger"},Qu={class:"tooltip-text tooltip-bottom"},Xu={class:"dowload_rpc_tip"},tc=["placeholder"],ec={class:"input_row"},ac={class:""},oc={class:"radios"},nc={for:"default"},ic={class:"radios"},rc={for:"add"},sc={class:"input_row"},dc=Ne(()=>t("div",{class:"left"},null,-1)),lc={class:"myinput_wrap Tracker_input"},uc=["placeholder"],cc=["onSubmit"],pc={class:"input_row"},fc={class:"left"},mc={class:"tooltip-trigger"},gc={class:"tooltip-text tooltip-top"},vc={class:"dowload_dir_tip"},bc={class:"myinput_wrap"},hc={class:"input_row"},_c={class:"left"},xc={class:"tooltip-trigger"},wc={class:"tooltip-text tooltip-top"},kc={class:"dowload_dir_tip"},yc={class:"myinput_wrap"},Fc=["onSubmit"],Ec={class:"input_row"},$c={class:"left"},Cc={class:"tooltip-trigger"},Dc={class:"tooltip-text tooltip-top"},Bc={class:"dowload_dir_tip"},Yc={class:"myinput_wrap"},Ac={class:"input_row"},Sc={class:"left"},zc={class:"tooltip-trigger"},Pc={class:"tooltip-text tooltip-top"},Tc={class:"dowload_dir_tip"},Ic={class:"myinput_wrap"},Mc={class:"btns"},Lc={key:1,class:"action"},Oc={class:"title"},Nc={class:"finished"},Vc={class:"successed"},Gc={class:"btns"},jc=I({props:{services:{type:Object,required:!0},partitionList:{type:Array,required:!0},defaultTab:{type:String,required:!1},Close:Function},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(""),d=E(""),c=E(""),k=E(""),g=E("default"),p=E("Aria2"),m=E(""),v=E(""),b=E(""),y=E(""),f=E([]),F=E([]),w=E(0);Pt(()=>{var M,q,T,j,R,it,ot,bt,Dt,yt;switch(n.defaultTab){case"aria2":p.value="Aria2";break;case"qbittorrent":p.value="qBittorrent";break;case"transmission":p.value="Transmission";break}f.value=n.partitionList.map(Vt=>({key:Vt})),F.value=n.partitionList.filter(Vt=>Vt.startsWith("/mnt/")).map(Vt=>Vt.replace(/(\/mnt\/[^/]+).*/,"$1")),c.value=((M=n.services.aria2)==null?void 0:M.configPath)||"";const A=((q=n.services.aria2)==null?void 0:q.downloadPath)||((T=n.services.qbittorrent)==null?void 0:T.downloadPath)||((j=n.services.transmission)==null?void 0:j.downloadPath);A&&(k.value=A);const z=(R=n.services.aria2)==null?void 0:R.rpcToken;z&&(u.value=z),m.value=((it=n.services.qbittorrent)==null?void 0:it.configPath)||"";const B=((ot=n.services.qbittorrent)==null?void 0:ot.downloadPath)||A||((bt=n.services.transmission)==null?void 0:bt.downloadPath);B&&(v.value=B),b.value=((Dt=n.services.transmission)==null?void 0:Dt.configPath)||"";const H=((yt=n.services.transmission)==null?void 0:yt.downloadPath)||A||B;H&&(y.value=H)});const h=()=>{let A=c.value,z=k.value;A==null||A==""||z==null||z==""||L(this,null,function*(){if(yield zt.checkAndInstallApp("app-meta-aria2","Aria2")){const H=$.Loading(a("\u914D\u7F6E\u4E2D..."));G.Guide.Aria2Init.POST({configPath:A,downloadPath:z,rpcToken:u.value,btTracker:g.value=="add"?d.value:""}).then(M=>{var q;if(M!=null&&M.data){if((M.data.success||0)==0){w.value=1;return}else if((q=M.data)!=null&&q.error)throw M.data.error}throw a("\u672A\u77E5\u9519\u8BEF")}).catch(M=>$.Error(M)).finally(()=>H.Close())}})},_=()=>{let A=m.value,z=v.value;A==null||A==""||z==null||z==""||L(this,null,function*(){if(yield zt.checkAndInstallApp("app-meta-qbittorrent","qBittorrent")){const H=$.Loading(a("\u914D\u7F6E\u4E2D..."));G.Guide.qbitorrentInit.POST({configPath:A,downloadPath:z}).then(M=>{var q;if(M!=null&&M.data){if((M.data.success||0)==0){w.value=1;return}else if((q=M.data)!=null&&q.error)throw M.data.error}throw a("\u672A\u77E5\u9519\u8BEF")}).catch(M=>$.Error(M)).finally(()=>H.Close())}})},x=()=>{let A=b.value,z=y.value;A==null||A==""||z==null||z==""||L(this,null,function*(){if(yield zt.checkAndInstallApp("app-meta-transmission","Transmission")){const H=$.Loading(a("\u914D\u7F6E\u4E2D..."));G.Guide.transmissionInit.POST({configPath:A,downloadPath:z}).then(M=>{var q;if(M!=null&&M.data){if((M.data.success||0)==0){w.value=1;return}else if((q=M.data)!=null&&q.error)throw M.data.error}throw a("\u672A\u77E5\u9519\u8BEF")}).catch(M=>$.Error(M)).finally(()=>H.Close())}})},C=A=>{A.preventDefault(),n.Close&&n.Close()},S=A=>{A.preventDefault(),location.reload()};return(A,z)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[w.value==0?(r(),s("div",$u,[t("h2",Cu,i(e(a)("\u4E0B\u8F7D\u670D\u52A1\u914D\u7F6E\u5411\u5BFC")),1),t("ul",null,[t("li",null,[t("div",Du,[t("div",Bu,[t("span",null,i(e(a)("\u4E0B\u8F7D\u670D\u52A1\uFF1A")),1)]),t("div",Yu,[O(t("input",{type:"radio",value:"Aria2","onUpdate:modelValue":z[0]||(z[0]=B=>p.value=B),name:"download",id:"Aria2"},null,512),[[Bt,p.value]]),Au]),t("div",Su,[O(t("input",{type:"radio",value:"qBittorrent","onUpdate:modelValue":z[1]||(z[1]=B=>p.value=B),name:"download",id:"qB"},null,512),[[Bt,p.value]]),zu]),t("div",Pu,[O(t("input",{type:"radio",value:"Transmission","onUpdate:modelValue":z[2]||(z[2]=B=>p.value=B),name:"download",id:"Tr"},null,512),[[Bt,p.value]]),Tu])])])]),p.value=="Aria2"?(r(),s("form",{key:0,onSubmit:ft(h,["prevent"])},[t("ul",null,[t("li",null,[t("div",Mu,[t("div",Lu,[t("span",Ou,[Y(Jt),t("div",null,[t("div",Nu,[t("span",Vu,i(e(a)("\u7528\u4E8E\u653E\u7F6E\u914D\u7F6E\u6587\u4EF6\u7684\u76EE\u5F55\u3002\u4F8B\u5982\uFF1A/mnt/sda1/Configs/aria2\uFF1B\u8BF7\u52FF\u4F7F\u7528 /tmp \u6216 /var \uFF0C\u4EE5\u514D\u91CD\u542F\u4EE5\u540E\u4EFB\u52A1\u4E22\u5931")),1)])])]),t("span",null,i(e(a)("\u914D\u7F6E\u76EE\u5F55\uFF1A")),1)]),t("div",Gu,[Y(Zt,{modelValue:c.value,"onUpdate:modelValue":z[3]||(z[3]=B=>c.value=B),modelModifiers:{trim:!0},title:e(a)("\u914D\u7F6E\u76EE\u5F55"),options:F.value.concat("/root").map(B=>({key:B+"/Configs/aria2"}))},null,8,["modelValue","title","options"])])])]),t("li",null,[t("div",ju,[t("div",Uu,[t("span",qu,[Y(Jt),t("div",null,[t("div",Ru,[t("span",Wu,i(e(a)("\u7528\u4E8E\u653E\u7F6E\u4E0B\u8F7D\u6587\u4EF6\u7684\u76EE\u5F55\u3002\u4F8B\u5982\uFF1A/mnt/sda1/download")),1)])])]),t("span",null,i(e(a)("\u4E0B\u8F7D\u76EE\u5F55\uFF1A")),1)]),t("div",Hu,[Y(Zt,{modelValue:k.value,"onUpdate:modelValue":z[4]||(z[4]=B=>k.value=B),modelModifiers:{trim:!0},title:e(a)("\u4E0B\u8F7D\u76EE\u5F55"),options:f.value},null,8,["modelValue","title","options"])])])]),t("li",null,[t("div",Ju,[t("div",Zu,[t("span",Ku,[Y(Jt),t("div",null,[t("div",Qu,[t("span",Xu,i(e(a)("\u7528\u4E8E\u8FDC\u7A0B\u8BBF\u95EE\u7684\u4EE4\u724C\u3002")),1)])])]),t("span",null,i(e(a)("RPC \u4EE4\u724C\uFF1A")),1)]),O(t("input",{type:"text",class:"RPC_input",placeholder:e(a)("\u8BF7\u8F93\u5165RPC\u4EE4\u724C"),"onUpdate:modelValue":z[5]||(z[5]=B=>u.value=B)},null,8,tc),[[at,u.value,void 0,{trim:!0}]])])]),t("li",null,[t("div",ec,[t("div",ac,[t("span",null,i(e(a)("\u9644\u52A0\u7684 BT Tracker\uFF1A")),1)]),t("div",oc,[O(t("input",{type:"radio",value:"default",name:"BT",id:"default","onUpdate:modelValue":z[6]||(z[6]=B=>g.value=B)},null,512),[[Bt,g.value]]),t("label",nc,i(e(a)("\u9ED8\u8BA4")),1)]),t("div",ic,[O(t("input",{type:"radio",value:"add",name:"BT",id:"add","onUpdate:modelValue":z[7]||(z[7]=B=>g.value=B)},null,512),[[Bt,g.value]]),t("label",rc,i(e(a)("\u81EA\u5DF1\u6DFB\u52A0")),1)])])]),t("li",null,[t("div",sc,[dc,t("div",lc,[g.value=="add"?O((r(),s("textarea",{key:0,"onUpdate:modelValue":z[8]||(z[8]=B=>d.value=B),rows:"4",placeholder:e(a)("\u8BF7\u8F93\u5165BT Tracker\u670D\u52A1\u5668\u5730\u5740\uFF0C\u591A\u4E2A\u5730\u5740\u4F7F\u7528\u6362\u884C\u6216\u8005\u82F1\u6587\u9017\u53F7\u5206\u9694")},null,8,uc)),[[at,d.value,void 0,{trim:!0}]]):D("",!0)])])])])],40,Iu)):D("",!0),p.value=="qBittorrent"?(r(),s("form",{key:1,onSubmit:ft(_,["prevent"])},[t("ul",null,[t("li",null,[t("div",pc,[t("div",fc,[t("span",mc,[Y(Jt),t("div",null,[t("div",gc,[t("span",vc,i(e(a)("\u7528\u4E8E\u653E\u7F6E\u914D\u7F6E\u6587\u4EF6\u7684\u76EE\u5F55\u3002\u4F8B\u5982\uFF1A/mnt/sda1/Configs/qb\uFF1B\u8BF7\u52FF\u4F7F\u7528 /tmp \u6216 /var \uFF0C\u4EE5\u514D\u91CD\u542F\u4EE5\u540E\u4EFB\u52A1\u4E22\u5931")),1)])])]),t("span",null,i(e(a)("\u914D\u7F6E\u76EE\u5F55\uFF1A")),1)]),t("div",bc,[Y(Zt,{modelValue:m.value,"onUpdate:modelValue":z[9]||(z[9]=B=>m.value=B),modelModifiers:{trim:!0},title:e(a)("\u914D\u7F6E\u76EE\u5F55"),options:F.value.concat("/root").map(B=>({key:B+"/Configs/qb"}))},null,8,["modelValue","title","options"])])])]),t("li",null,[t("div",hc,[t("div",_c,[t("span",xc,[Y(Jt),t("div",null,[t("div",wc,[t("span",kc,i(e(a)("\u7528\u4E8E\u653E\u7F6E\u4E0B\u8F7D\u6587\u4EF6\u7684\u76EE\u5F55\u3002\u4F8B\u5982\uFF1A/mnt/sda1/download")),1)])])]),t("span",null,i(e(a)("\u4E0B\u8F7D\u76EE\u5F55\uFF1A")),1)]),t("div",yc,[Y(Zt,{modelValue:v.value,"onUpdate:modelValue":z[10]||(z[10]=B=>v.value=B),modelModifiers:{trim:!0},title:e(a)("\u4E0B\u8F7D\u76EE\u5F55"),options:f.value},null,8,["modelValue","title","options"])])])])])],40,cc)):D("",!0),p.value=="Transmission"?(r(),s("form",{key:2,onSubmit:ft(x,["prevent"])},[t("ul",null,[t("li",null,[t("div",Ec,[t("div",$c,[t("span",Cc,[Y(Jt),t("div",null,[t("div",Dc,[t("span",Bc,i(e(a)("\u7528\u4E8E\u653E\u7F6E\u914D\u7F6E\u6587\u4EF6\u7684\u76EE\u5F55\u3002\u4F8B\u5982\uFF1A/mnt/sda1/Configs/tr\uFF1B\u8BF7\u52FF\u4F7F\u7528 /tmp \u6216 /var \uFF0C\u4EE5\u514D\u91CD\u542F\u4EE5\u540E\u4EFB\u52A1\u4E22\u5931")),1)])])]),t("span",null,i(e(a)("\u914D\u7F6E\u76EE\u5F55\uFF1A")),1)]),t("div",Yc,[Y(Zt,{modelValue:b.value,"onUpdate:modelValue":z[11]||(z[11]=B=>b.value=B),modelModifiers:{trim:!0},title:e(a)("\u914D\u7F6E\u76EE\u5F55"),options:F.value.concat("/root").map(B=>({key:B+"/Configs/transmission"}))},null,8,["modelValue","title","options"])])])]),t("li",null,[t("div",Ac,[t("div",Sc,[t("span",zc,[Y(Jt),t("div",null,[t("div",Pc,[t("span",Tc,i(e(a)("\u7528\u4E8E\u653E\u7F6E\u4E0B\u8F7D\u6587\u4EF6\u7684\u76EE\u5F55\u3002\u4F8B\u5982\uFF1A/mnt/sda1/download")),1)])])]),t("span",null,i(e(a)("\u4E0B\u8F7D\u76EE\u5F55\uFF1A")),1)]),t("div",Ic,[Y(Zt,{modelValue:y.value,"onUpdate:modelValue":z[12]||(z[12]=B=>y.value=B),modelModifiers:{trim:!0},title:e(a)("\u4E0B\u8F7D\u76EE\u5F55"),options:f.value},null,8,["modelValue","title","options"])])])])])],40,Fc)):D("",!0),t("div",Mc,[p.value=="Aria2"?(r(),s("button",{key:0,class:"cbi-button cbi-button-apply",onClick:h},i(e(a)("\u542F\u7528")),1)):D("",!0),p.value=="qBittorrent"?(r(),s("button",{key:1,class:"cbi-button cbi-button-apply",onClick:_},i(e(a)("\u542F\u7528")),1)):D("",!0),p.value=="Transmission"?(r(),s("button",{key:2,class:"cbi-button cbi-button-apply",onClick:x},i(e(a)("\u542F\u7528")),1)):D("",!0),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:C},i(e(a)("\u53D6\u6D88")),1)])])):w.value==1?(r(),s("div",Lc,[t("h2",Oc,i(e(a)("%{status}\u4E0B\u8F7D\u670D\u52A1\u914D\u7F6E\u5411\u5BFC",{status:p.value})),1),t("div",Nc,[Y(ua)]),t("p",Vc,i(e(a)("\u914D\u7F6E\u6210\u529F\uFF01")),1),t("div",Gc,[t("button",{class:"cbi-button cbi-button-apply",onClick:S},i(e(a)("\u786E\u5B9A")),1)])])):D("",!0)]),_:1},8,["Close"]))}});var Uc=N(jc,[["__scopeId","data-v-7b328460"]]);const qc=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(Uc,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}},ca=o=>(ut("data-v-5ebde5ac"),o=o(),ct(),o),Rc={class:"content"},Wc={class:"tab"},Hc=ca(()=>t("div",{class:"title"},"Aria2",-1)),Jc={key:0},Zc={key:1},Kc=ca(()=>t("div",{class:"title"},"qBittorrent",-1)),Qc={key:0},Xc={key:1},t1=ca(()=>t("div",{class:"title"},"Transmission",-1)),e1={key:0},a1={key:1},o1=I({setup(o){const{$gettext:n}=J(),a=E(!1),l=E("aria2"),u=E(!1),d=w=>{l.value=w,u.value=!0},c=E(),k=()=>{if(u.value)return;const h=["aria2","qbittorrent","transmission"].find(_=>{var x,C;return((C=(x=c.value)==null?void 0:x[_])==null?void 0:C.status)==="running"});l.value=h||"aria2"};setTimeout(()=>{G.Guide.DownloadService.Status.GET().then(w=>{var h;if((h=w==null?void 0:w.data)!=null&&h.result){const _=w.data.result;c.value=_,k()}})},800),E(!1);const p=E(!1),m=()=>{p.value=!p.value},v=()=>{G.Guide.DownloadPartition.List.GET().then(w=>{var _,x;let h=[];(x=(_=w==null?void 0:w.data)==null?void 0:_.result)!=null&&x.partitionList&&(h=w.data.result.partitionList),qc({services:c.value,partitionList:h,defaultTab:l.value})})},b=(w,h,_)=>L(this,null,function*(){m(),zt.installAndGo(w,h,_)}),y=()=>{b("app-meta-aria2","Aria2","/cgi-bin/luci/admin/services/aria2")},f=()=>{b("app-meta-qbittorrent","qBittorrent","/cgi-bin/luci/admin/nas/qBittorrent")},F=()=>{b("app-meta-transmission","Transmission","/cgi-bin/luci/admin/services/transmission")};return(w,h)=>(r(),Z(Wt,{title:e(n)("\u4E0B\u8F7D\u670D\u52A1"),showSettings:!0,onFooterClick:v,style:{width:"100%",height:"100%",display:"block"},"is-settings-menu-open":a.value,"onUpdate:isSettingsMenuOpen":h[4]||(h[4]=_=>a.value=_)},{icon:V(()=>[Y(Kt,{color:"#00a63e",class:"icon"})]),settings:V(()=>[t("div",{class:"btn_settings",onClick:v},[Y(Kt,{color:"#0a0a0a",class:"icon1 downloadIcon",style:{"margin-right":"6px"}}),t("span",null,i(e(n)("\u4E0B\u8F7D\u7BA1\u7406")),1),Boolean(c.value)?(r(),s("div",{key:0,class:"rotation",onClick:h[0]||(h[0]=ft(_=>a.value=!a.value,["stop"]))},[Y(Ee,{class:"moreIcon"})])):D("",!0)])]),"settings-menu":V(()=>[t("div",null,[t("a",{onClick:y},i(e(n)("Aria2\u9AD8\u7EA7\u914D\u7F6E")),1)]),t("div",null,[t("a",{onClick:f},i(e(n)("qBittorrent\u9AD8\u7EA7\u914D\u7F6E")),1)]),t("div",null,[t("a",{onClick:F},i(e(n)("Transmission\u9AD8\u7EA7\u914D\u7F6E")),1)])]),default:V(()=>{var _,x,C,S,A,z,B,H,M;return[t("div",Rc,[t("div",Wc,[t("div",{class:lt(["item cloud",{active:l.value=="aria2"}]),onClick:h[1]||(h[1]=q=>d("aria2"))},[Y(Kt,{color:"#f54900",class:"icon2"}),Hc,((x=(_=c.value)==null?void 0:_.aria2)==null?void 0:x.status)=="running"?(r(),s("span",Jc,i(e(n)("\u5DF2\u542F\u7528")),1)):(r(),s("span",Zc,i(e(n)("\u672A\u542F\u7528")),1))],2),t("div",{class:lt(["item memory",{active:l.value=="qbittorrent"}]),onClick:h[2]||(h[2]=q=>d("qbittorrent"))},[Y(Kt,{color:"#4a5565",class:"icon2"}),Kc,((S=(C=c.value)==null?void 0:C.qbittorrent)==null?void 0:S.status)=="running"?(r(),s("span",Qc,i(e(n)("\u5DF2\u542F\u7528")),1)):(r(),s("span",Xc,i(e(n)("\u672A\u542F\u7528")),1))],2),t("div",{class:lt(["item network",{active:l.value=="transmission"}]),onClick:h[3]||(h[3]=q=>d("transmission"))},[Y(Kt,{color:"#009689",class:"icon2"}),t1,((z=(A=c.value)==null?void 0:A.transmission)==null?void 0:z.status)=="running"?(r(),s("span",e1,i(e(n)("\u5DF2\u542F\u7528")),1)):(r(),s("span",a1,i(e(n)("\u672A\u542F\u7528")),1))],2)]),l.value=="aria2"?(r(),Z(Pl,{key:0,aria2:(B=c.value)==null?void 0:B.aria2},null,8,["aria2"])):l.value=="qbittorrent"?(r(),Z(Xl,{key:1,qbittorrent:(H=c.value)==null?void 0:H.qbittorrent},null,8,["qbittorrent"])):l.value=="transmission"?(r(),Z(gu,{key:2,transmission:(M=c.value)==null?void 0:M.transmission},null,8,["transmission"])):D("",!0)])]}),_:1},8,["title","is-settings-menu-open"]))}});var n1=N(o1,[["__scopeId","data-v-5ebde5ac"]]);const i1={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},r1=["fill"],He=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",i1,[t("path",{d:"M584.675 134.868C561.143 130.36 536.847 128 512 128a392 392 0 0 0-3.783 0.018l-24.19 169.685A32 32 0 0 1 466.68 321.8l-99.807 49.992-50.81 127.247a32 32 0 0 1-24.45 19.697l-162.145 27.069c8.105 92.926 49.308 176.368 111.754 238.473L223.089 657.52c-2.323-16.238 8.01-31.603 23.924-35.578l226.491-56.558a32 32 0 0 1 30.368 8.407l96.768 96.662a8 8 0 0 0 8.728 1.726l150.425-62.602 31.42-0.772c17.669-0.434 32.343 13.536 32.777 31.204 0.007 0.262 0.01 0.524 0.01 0.786v95.11c45.314-63.03 72-140.351 72-223.906 0-40.5-6.27-79.535-17.891-116.188l-103.215 27.656a32 32 0 0 1-23.36-2.684l-127.842-68.287a32 32 0 0 1-16.712-24.553l-22.305-193.076z m58.509 16.124l18.31 159.176 109.262 56.623 86.458-23.166c-43.44-88.897-120.207-158.532-214.03-192.633z m-336.132 685.8C366.357 874.295 436.644 896 512 896c94.536 0 181.093-34.162 248-90.814V683.96a8 8 0 0 0-11.074-7.386l-138.21 57.53a32 32 0 0 1-34.913-6.903l-99.24-99.132a8 8 0 0 0-7.592-2.102l-178.437 44.563a8 8 0 0 0-5.981 8.894l22.499 157.37zM128.65 489.473l140.726-23.504 49.219-123.244a32 32 0 0 1 15.386-16.744l96.748-48.46 20.65-144.762C275.347 160.675 139.137 308.212 128.65 489.47zM512 960C264.576 960 64 759.424 64 512S264.576 64 512 64s448 200.576 448 448-200.576 448-448 448z",fill:o.color,"p-id":"8679"},null,8,r1)]))}}),s1={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},d1=["fill"],l1=["fill"],u1=["fill"],pa=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",s1,[t("path",{d:"M298.894222 482.417778c-35.271111 0-65.649778 12.231111-90.624 36.636444-25.031111 24.462222-37.603556 54.158222-37.603555 88.746667v87.153778h60.359111V607.857778c0-18.318222 6.599111-33.848889 19.854222-46.762667a65.991111 65.991111 0 0 1 48.014222-19.456h426.382222c18.887111 0 34.759111 6.428444 48.014223 19.399111 13.312 13.027556 19.854222 28.444444 19.854222 46.819556v87.04h60.359111v-87.04c0-34.702222-12.572444-64.341333-37.546667-88.746667a125.098667 125.098667 0 0 0-90.680889-36.750222H298.894222z",fill:o.color,"p-id":"8894"},null,8,d1),t("path",{d:"M488.049778 334.734222h47.900444V512h-47.900444V334.734222z",fill:o.color,"p-id":"8895"},null,8,l1),t("path",{d:"M597.333333 142.222222v170.666667h-170.666666v-170.666667h170.666666z m-170.666666-56.888889a56.888889 56.888889 0 0 0-56.888889 56.888889v170.666667a56.888889 56.888889 0 0 0 56.888889 56.888889h170.666666a56.888889 56.888889 0 0 0 56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 0-56.888889-56.888889h-170.666666zM284.444444 711.111111H113.777778v170.666667h170.666666v-170.666667z m-170.666666-56.888889h170.666666a56.888889 56.888889 0 0 1 56.888889 56.888889v170.666667a56.888889 56.888889 0 0 1-56.888889 56.888889H113.777778a56.888889 56.888889 0 0 1-56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 1 56.888889-56.888889zM910.222222 711.111111v170.666667h-170.666666v-170.666667h170.666666z m-170.666666-56.888889a56.888889 56.888889 0 0 0-56.888889 56.888889v170.666667a56.888889 56.888889 0 0 0 56.888889 56.888889h170.666666a56.888889 56.888889 0 0 0 56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 0-56.888889-56.888889h-170.666666z",fill:o.color,"p-id":"8896"},null,8,u1)]))}}),c1={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},p1=["fill"],f1=["fill"],m1=["fill"],g1=I({props:{color:{type:String,default:"#4a5565"}},setup(o){return(n,a)=>(r(),s("svg",c1,[t("path",{d:"M909.1 499.1h-797c-27.5 0-50 22.5-50 50v351.5c0 27.5 22.5 50 50 50h797c27.5 0 50-22.5 50-50V549.1c0-27.5-22.5-50-50-50z m-14 387.5h-769V563.1h769v323.5z",fill:o.color,"p-id":"19594"},null,8,p1),t("path",{d:"M191.932 734.691a63 63 0 1 0 124.375-20.173 63 63 0 1 0-124.375 20.173zM395.56 774.136a63 63 0 1 0 89.093-89.097 63 63 0 1 0-89.094 89.097zM702.8 296.6c-19.4 0-35.2 8.4-35.2 18.7v198c0 10.3 15.9 18.7 35.2 18.7 19.4 0 35.2-8.4 35.2-18.7v-198c0.1-10.3-15.8-18.7-35.2-18.7z",fill:o.color,"p-id":"19595"},null,8,f1),t("path",{d:"M701.8 218.6c-49.7 0-93.2 31.8-117.7 79.5h41.5c19.3-24.3 46.3-39.5 76.2-39.5 29.9 0 56.9 15.2 76.2 39.5h41.5c-24.4-47.7-68-79.5-117.7-79.5z m5.3-45.5c41.1 0 78.3 15.2 104.8 39.5H869c-33.7-47.7-93.7-79.5-162-79.5s-128.3 31.8-162 79.5h57.1c26.6-24.3 63.8-39.5 105-39.5z",fill:o.color,"p-id":"19596"},null,8,m1)]))}}),v1={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},b1=["fill"],ya=I({props:{color:{type:String,default:"#0a0a0a"}},setup(o){return(n,a)=>(r(),s("svg",v1,[t("path",{d:"M526.41 117.029v58.514a7.314 7.314 0 0 1-7.315 7.314H219.429a36.571 36.571 0 0 0-35.987 29.989l-0.585 6.583V804.57a36.571 36.571 0 0 0 29.989 35.987l6.583 0.585H804.57a36.571 36.571 0 0 0 35.987-29.989l0.585-6.583v-317.44a7.314 7.314 0 0 1 7.314-7.314h58.514a7.314 7.314 0 0 1 7.315 7.314v317.44a109.714 109.714 0 0 1-99.182 109.203l-10.533 0.512H219.43a109.714 109.714 0 0 1-109.203-99.182l-0.512-10.533V219.43a109.714 109.714 0 0 1 99.182-109.203l10.533-0.512h299.666a7.314 7.314 0 0 1 7.314 7.315z m307.345 31.817l41.4 41.399a7.314 7.314 0 0 1 0 10.313L419.985 655.726a7.314 7.314 0 0 1-10.313 0l-41.399-41.4a7.314 7.314 0 0 1 0-10.312l455.168-455.168a7.314 7.314 0 0 1 10.313 0z","p-id":"4497",fill:o.color},null,8,b1)]))}}),h1={class:"actioner-container"},_1={class:"actioner-container_header"},x1={class:"actioner-container_body"},w1={class:"label-item"},k1={class:"label_info"},y1={class:"label-item"},F1={class:"label_info"},E1={class:"label-item"},$1={class:"label_info"},C1={class:"label-item"},D1={class:"label_info"},B1={class:"actioner-container_footer"},Y1=I({props:{onSetup:{type:Function,required:!0},active:{type:String,default:"ddnsto"}},emits:["update:active"],setup(o,{emit:n}){const a=o,{$gettext:l,$ngettext:u}=J(),d=()=>{a.onSetup()},c=E(a.active),k=()=>{switch(n("update:active",c.value),c.value){case"ddnsto":a.onSetup("ddnsto");break;case"ali":a.onSetup("ddns-ali");break;case"dnspod":a.onSetup("ddns-dnspod");break;case"oray":a.onSetup("ddns-oray");break}};return(g,p)=>(r(),s("div",h1,[t("div",_1,[t("span",null,i(e(l)("\u57DF\u540D\u914D\u7F6E\u5411\u5BFC")),1)]),t("div",x1,[t("div",w1,[t("label",null,[O(t("input",{type:"radio","onUpdate:modelValue":p[0]||(p[0]=m=>c.value=m),value:"ddnsto"},null,512),[[Bt,c.value]]),t("span",null,i(e(l)("DDNSTO")),1)]),t("p",k1,i(e(l)("DDNSTO \u662F\u4E00\u4E2A\u4E0D\u9700\u8981\u516C\u7F51IP\u4E5F\u53EF\u4EE5\u5728\u5916\u7F51\u8BBF\u95EE\u7684\u7A7F\u900F\u57DF\u540D\u670D\u52A1\uFF0C\u4E00\u4E2A\u6D4F\u89C8\u5668\u641E\u5B9A\u5185\u7F51\u7A7F\u900F\uFF0C\u8FDC\u7A0B\u8BBF\u95EEOpenwrt\u3001\u8FDC\u7A0B\u7EC8\u7AEF\u3001\u8FDC\u7A0B\u684C\u9762...")),1)]),t("div",y1,[t("label",null,[O(t("input",{type:"radio","onUpdate:modelValue":p[1]||(p[1]=m=>c.value=m),value:"ali"},null,512),[[Bt,c.value]]),t("span",null,i(e(l)("\u963F\u91CC\u4E91")),1)]),t("p",F1,i(e(l)("\u4E3A\u62E5\u6709\u52A8\u6001IP\u7684\u4E3B\u673A\u914D\u7F6E\u4E00\u4E2A\u56FA\u5B9A\u7684\u53EF\u8BBF\u95EE\u57DF\u540D")),1)]),t("div",E1,[t("label",null,[O(t("input",{type:"radio","onUpdate:modelValue":p[2]||(p[2]=m=>c.value=m),value:"dnspod"},null,512),[[Bt,c.value]]),t("span",null,i(e(l)("Dnspod")),1)]),t("p",$1,i(e(l)("\u4E3A\u62E5\u6709\u52A8\u6001IP\u7684\u4E3B\u673A\u914D\u7F6E\u4E00\u4E2A\u56FA\u5B9A\u7684\u53EF\u8BBF\u95EE\u57DF\u540D")),1)]),t("div",C1,[t("label",null,[O(t("input",{type:"radio","onUpdate:modelValue":p[3]||(p[3]=m=>c.value=m),value:"oray"},null,512),[[Bt,c.value]]),t("span",null,i(e(l)("\u82B1\u751F\u58F3")),1)]),t("p",D1,i(e(l)("\u4E3A\u62E5\u6709\u52A8\u6001IP\u7684\u4E3B\u673A\u914D\u7F6E\u4E00\u4E2A\u56FA\u5B9A\u7684\u53EF\u8BBF\u95EE\u57DF\u540D")),1)])]),t("div",B1,[t("div",{class:"close",onClick:d},i(e(l)("\u53D6\u6D88")),1),t("div",{class:"next",onClick:k},i(e(l)("\u4E0B\u4E00\u6B65")),1)])]))}});var A1=N(Y1,[["__scopeId","data-v-46dd945e"]]);const S1=o=>(ut("data-v-b760733a"),o=o(),ct(),o),z1={class:"actioner-container"},P1={class:"actioner-container_body"},T1=S1(()=>t("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[t("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})],-1)),I1={class:"body-title"},M1={class:"body-tips"},L1={class:"body-info"},O1=["href"],N1={href:"/cgi-bin/luci/admin/services/ddns",target:"_blank"},V1={class:"actioner-container_footer"},G1=I({props:{target:{type:String,required:!0},onSetup:{type:Function,required:!0}},setup(o){const{$gettext:n,$ngettext:a}=J(),l=()=>{localStorage.setItem("firstOpen",JSON.stringify(!0)),location.reload()};return(u,d)=>(r(),s("div",z1,[t("div",P1,[T1,t("div",I1,i(e(n)("\u6DFB\u52A0\u6210\u529F")),1),t("p",M1,i(e(n)("\u8BF7\u7A0D\u7B491\u5206\u949F\u751F\u6548\u540E\u518D\u4F7F\u7528\u3002")),1),t("div",L1,[t("span",null,i(e(n)("\u8BBF\u95EE\u5730\u5740\uFF1A")),1),t("a",{href:o.target,target:"_blank",rel:"noopener noreferrer"},i(o.target),9,O1)]),t("div",null,[t("span",null,i(e(n)("\u53EF\u524D\u5F80")),1),t("a",N1,i(e(n)("\u670D\u52A1-\u52A8\u6001DNS")),1),t("span",null,i(e(n)("\u67E5\u770B\u66F4\u591A\u8BE6\u60C5")),1)])]),t("div",V1,[t("div",{class:"close",onClick:l},i(e(n)("\u5173\u95ED")),1)])]))}});var j1=N(G1,[["__scopeId","data-v-b760733a"]]);const U1=o=>(ut("data-v-064efd50"),o=o(),ct(),o),q1={class:"actioner-container"},R1={class:"actioner-container_header"},W1=U1(()=>t("div",{class:"actioner-container_body ddnsto-login"},[t("iframe",{src:"https://www.kooldns.cn/bind/#/auth?send=1&source=openwrt&callback=*"})],-1)),H1={class:"actioner-container_footer"},J1=I({props:{onSetup:{type:Function,required:!0},onDdnstoConfig:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.onSetup()},d=c=>{if(c.data.auth=="ddnsto"){const k=c.data.sign,g=c.data.token;k&&g&&(removeEventListener("message",d),n.onDdnstoConfig(k,g),n.onSetup("ddnsto-run"))}};return Pt(()=>{window.addEventListener("message",d)}),Nt(()=>{removeEventListener("message",d)}),(c,k)=>(r(),s("div",q1,[t("div",R1,[t("span",null,i(e(a)("\u57DF\u540D\u914D\u7F6E\u5411\u5BFC")),1)]),W1,t("div",H1,[t("div",{class:"close",onClick:u},i(e(a)("\u53D6\u6D88")),1)])]))}});var Z1=N(J1,[["__scopeId","data-v-064efd50"]]);const K1={class:"actioner-container"},Q1={class:"actioner-container_header"},X1={class:"actioner-container_body ddnsto-bind"},t2=["src"],e2=I({props:{onSetup:{type:Function,required:!0},config:{type:Object,required:!0},domain:{type:String,required:!0}},emits:["update:domain"],setup(o,{emit:n}){const a=o,{$gettext:l,$ngettext:u}=J(),d=Q(()=>{const{domain:g,token:p,sign:m,routerId:v,netaddr:b}=a.config,y=encodeURIComponent(g),f=encodeURIComponent(b);return`https://www.kooldns.cn/bind/#/domain?domain=${y}&sign=${m}&token=${p}&routerId=${v}&netaddr=${f}`}),c=g=>{if(g.data){const{auth:p,url:m}=g.data;p==="ddnsto"&&m&&k(m)}},k=g=>L(this,null,function*(){var p;try{const m=yield G.Guide.DdnstoAddress.POST({address:g});m!=null&&m.data&&(((p=m==null?void 0:m.data)==null?void 0:p.success)||0)==0&&(n("update:domain",g),a.onSetup("ddnsto-save"))}catch(m){}});return Pt(()=>{window.addEventListener("message",c)}),Nt(()=>{removeEventListener("message",c)}),(g,p)=>(r(),s("div",K1,[t("div",Q1,[t("span",null,i(e(l)("\u57DF\u540D\u914D\u7F6E\u5411\u5BFC")),1)]),t("div",X1,[t("iframe",{src:e(d)},null,8,t2)])]))}});var a2=N(e2,[["__scopeId","data-v-49c43a08"]]);const o2=o=>(ut("data-v-27f65f12"),o=o(),ct(),o),n2={class:"actioner-container"},i2={class:"actioner-container_body"},r2=o2(()=>t("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[t("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})],-1)),s2={class:"body-title"},d2={class:"body-tips"},l2={class:"body-info"},u2=["href"],c2={href:"https://www.ddnsto.com/app/#/devices",target:"_blank"},p2={class:"actioner-container_footer"},f2=I({props:{onSetup:{type:Function,required:!0},target:{type:String,required:!0}},setup(o){const{$gettext:n,$ngettext:a}=J(),l=()=>{localStorage.setItem("firstOpen",JSON.stringify(!0)),location.reload()};return(u,d)=>(r(),s("div",n2,[t("div",i2,[r2,t("div",s2,i(e(n)("\u6DFB\u52A0\u6210\u529F")),1),t("p",d2,i(e(n)("\u8BF7\u7A0D\u7B491\u5206\u949F\u751F\u6548\u540E\u518D\u4F7F\u7528\u3002")),1),t("div",l2,[t("span",null,i(e(n)("\u8BBF\u95EE\u5730\u5740\uFF1A")),1),t("a",{href:o.target,target:"_blank",rel:"noopener noreferrer"},i(o.target),9,u2)]),t("div",null,[t("span",null,i(e(n)("\u53EF\u524D\u5F80")),1),t("a",c2,i(e(n)("DDNSTO\u63A7\u5236\u53F0")),1),t("span",null,i(e(n)("\u67E5\u770B\u66F4\u591A\u8BE6\u60C5")),1)])]),t("div",p2,[t("div",{class:"close",onClick:l},i(e(n)("\u5173\u95ED")),1)])]))}});var m2=N(f2,[["__scopeId","data-v-27f65f12"]]);const g2={class:"actioner-container"},v2={class:"actioner-container_header"},b2={class:"actioner-container_body"},h2={class:"actioner-container_footer"},_2=I({props:{onSetup:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.onSetup()},d=()=>L(this,null,function*(){if(g.value)return;g.value=!0;const m=$.Loading(a("\u5B89\u88C5\u4E2D..."));try{if(yield zt.installApp("app-meta-ddnsto",30)){n.onSetup("ddnsto-login");return}else c.value=a("\u5B89\u88C5\u5931\u8D25")}catch(v){c.value=v}finally{m.Close()}g.value=!1}),c=E(a("\u6B63\u5728\u68C0\u6D4B\u4E2D...")),k=E(!1),g=E(!1);return(()=>L(this,null,function*(){try{const m=yield G.App.Check.POST({name:"ddnsto"});if(m!=null&&m.data){const{result:v,error:b}=m.data;if(b){c.value=b;return}if(v){if(v.status=="installed"){n.onSetup("ddnsto-login");return}v.status=="uninstalled"&&(c.value=a("\u9700\u8981\u5B89\u88C5DDNSTO\u63D2\u4EF6\uFF0C\u70B9\u51FB\u201C\u786E\u5B9A\u201D\u5F00\u59CB\u5B89\u88C5"))}}}catch(m){c.value=m}k.value=!0}))(),(m,v)=>(r(),s("div",g2,[t("div",v2,[t("span",null,i(e(a)("\u57DF\u540D\u914D\u7F6E\u5411\u5BFC")),1)]),t("div",b2,[t("span",null,i(c.value),1)]),t("div",h2,[k.value?(r(),s(U,{key:0},[t("div",{class:"close",onClick:u},i(e(a)("\u53D6\u6D88")),1),t("div",{class:"next",onClick:d},i(e(a)("\u786E\u5B9A")),1)],64)):D("",!0)])]))}});var x2=N(_2,[["__scopeId","data-v-210c03e8"]]);const w2={class:"actioner-container"},k2={class:"actioner-container_header"},y2={class:"actioner-container_body"},F2=I({props:{onSetup:{type:Function,required:!0},token:{type:String,required:!0},onDdnstoLocalConfig:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(a("\u6B63\u5728\u68C0\u6D4B\u63D2\u4EF6\u662F\u5426\u5DF2\u542F\u52A8..."));(m=>L(this,null,function*(){var v;try{const b=yield G.Guide.Ddnsto.POST({token:n.token});b!=null&&b.data&&(b.data.error&&(u.value=b.data.error),(((v=b==null?void 0:b.data)==null?void 0:v.success)||0)==0&&k())}catch(b){u.value=b}}))(n.token);const c=E(),k=()=>{const m=()=>L(this,null,function*(){if((yield g())===!0){p();return}c.value=window.setTimeout(m,2e3)});m()},g=()=>L(this,null,function*(){try{const m=yield G.App.Check.POST({name:"ddnsto",checkRunning:!0});if(m!=null&&m.data){m.data.error&&(u.value=m.data.error);const v=m.data.result;if((v==null?void 0:v.status)=="running")return!0}}catch(m){u.value=m}return!1});Nt(()=>{c.value&&clearInterval(c.value)});const p=()=>L(this,null,function*(){var m;try{const v=yield G.Guide.DdntoConfig.GET();if(v!=null&&v.data&&(v.data.error&&(u.value=v.data.error),(((m=v==null?void 0:v.data)==null?void 0:m.success)||0)==0&&v.data.result)){const b=v.data.result;n.onDdnstoLocalConfig(b.netAddr,b.deviceId),n.onSetup("ddnsto-bind")}}catch(v){u.value=v}});return(m,v)=>(r(),s("div",w2,[t("div",k2,[t("span",null,i(e(a)("\u57DF\u540D\u914D\u7F6E\u5411\u5BFC")),1)]),t("div",y2,i(u.value),1)]))}});var E2=N(F2,[["__scopeId","data-v-1b21487b"]]);const $2={class:"action-main"},C2=I({props:{Close:{type:Function,required:!0},url:{type:String,required:!0}},setup(o){const n=o,a=E("ddnsto-install"),l=g=>{g!=null?a.value=g:u()},u=()=>{n.Close&&n.Close()},d=gt({sign:"",token:"",domain:n.url,netaddr:"",routerId:""}),c=(g,p)=>{d.sign=g,d.token=p},k=(g,p)=>{d.netaddr=g,d.routerId=p};return(g,p)=>(r(),Z(wt,{type:1},{default:V(()=>[t("div",$2,[a.value=="ddnsto-install"?(r(),Z(x2,{key:0,onSetup:l})):a.value=="ddnsto-login"?(r(),Z(Z1,{key:1,onSetup:l,onDdnstoConfig:c})):a.value=="ddnsto-run"?(r(),Z(E2,{key:2,onSetup:l,token:e(d).token,onDdnstoLocalConfig:k},null,8,["token"])):a.value=="ddnsto-bind"?(r(),Z(a2,{key:3,onSetup:l,config:{token:e(d).token,sign:e(d).sign,domain:e(d).domain,netaddr:e(d).netaddr,routerId:e(d).routerId},domain:e(d).domain,"onUpdate:domain":p[0]||(p[0]=m=>e(d).domain=m)},null,8,["config","domain"])):a.value=="ddnsto-save"?(r(),Z(m2,{key:4,onSetup:l,target:e(d).domain},null,8,["target"])):D("",!0)])]),_:1}))}});var D2=N(C2,[["__scopeId","data-v-7a6bd385"]]);const B2=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(D2,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}},Y2={class:"action"},A2={class:"action-header"},S2=["innerHTML"],z2={class:"action-footer"},P2=I({props:{Close:Function,next:{type:Function},clear:{type:Function},continuer:{type:Function},nextTitle:{type:String},clearTitle:{type:String},continuerTitle:{type:String},title:{type:String},content:{type:String}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.next&&n.next(),n.Close&&n.Close()},d=()=>{n.clear&&n.clear(),n.Close&&n.Close()},c=()=>{n.continuer&&n.continuer(),n.Close&&n.Close()};return(k,g)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[t("div",Y2,[t("div",A2,i(o.title||e(a)("\u63D0\u793A")),1),t("div",{class:"action-body",innerHTML:o.content},null,8,S2),t("div",z2,[o.clear?(r(),s("div",{key:0,class:"clear",onClick:d},i(o.clearTitle||e(a)("\u8FD4\u56DE")),1)):D("",!0),t("div",{class:"next",onClick:u},i(o.nextTitle||e(a)("\u786E\u5B9A")),1),o.continuer?(r(),s("div",{key:1,class:"next",onClick:c},i(o.continuerTitle||e(a)("\u7EE7\u7EED\u4FDD\u5B58")),1)):D("",!0)])])]),_:1},8,["Close"]))}});var T2=N(P2,[["__scopeId","data-v-05611967"]]);const Se=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(T2,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}},I2=o=>(ut("data-v-6e29e960"),o=o(),ct(),o),M2={class:"actioner-container"},L2=["onSubmit"],O2={class:"actioner-container_header"},N2={key:0,class:"title_info"},V2={href:"https://doc.linkease.com/zh/guide/istoreos/basic/domain.html#%E9%98%BF%E9%87%8C%E4%BA%91",target:"_blank"},G2={key:1,class:"title_info"},j2={href:"https://doc.linkease.com/zh/guide/istoreos/basic/domain.html#dnspod",target:"_blank"},U2={key:2,class:"title_info"},q2={href:"https://doc.linkease.com/zh/guide/istoreos/basic/domain.html#%E8%8A%B1%E7%94%9F%E5%A3%B3",target:"_blank"},R2={class:"label-item"},W2={class:"label-item_key"},H2={class:"label-item_value"},J2={value:"ipv4"},Z2={value:"ipv6"},K2={class:"label_tips"},Q2=I2(()=>t("svg",{width:"14px",height:"14px",viewBox:"0 0 14 14",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},[t("g",{id:"icon_alert",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t("g",{id:"Icon/Warning"},[t("rect",{id:"\u77E9\u5F62",fill:"#000000","fill-rule":"nonzero",opacity:"0",x:"0",y:"0",width:"14",height:"14"}),t("path",{d:"M7,0.875 C3.61757813,0.875 0.875,3.61757813 0.875,7 C0.875,10.3824219 3.61757813,13.125 7,13.125 C10.3824219,13.125 13.125,10.3824219 13.125,7 C13.125,3.61757813 10.3824219,0.875 7,0.875 Z M6.5625,4.046875 C6.5625,3.98671875 6.61171875,3.9375 6.671875,3.9375 L7.328125,3.9375 C7.38828125,3.9375 7.4375,3.98671875 7.4375,4.046875 L7.4375,7.765625 C7.4375,7.82578125 7.38828125,7.875 7.328125,7.875 L6.671875,7.875 C6.61171875,7.875 6.5625,7.82578125 6.5625,7.765625 L6.5625,4.046875 Z M7,10.0625 C6.63769531,10.0625 6.34375,9.76855469 6.34375,9.40625 C6.34375,9.04394531 6.63769531,8.75 7,8.75 C7.36230469,8.75 7.65625,9.04394531 7.65625,9.40625 C7.65625,9.76855469 7.36230469,10.0625 7,10.0625 Z",id:"\u5F62\u72B6",fill:"#FAAD14"})])])],-1)),X2={class:"info"},t6={class:"label-item"},e6={class:"label-item_key"},a6={class:"label-item_value"},o6={class:"label-item"},n6={class:"label-item_key"},i6={class:"label-item_value"},r6=["placeholder"],s6={class:"label-item"},d6={class:"label-item_key"},l6={class:"label-item_value"},u6=["placeholder"],c6={class:"actioner-container_footer"},p6=["disabled"],f6=I({props:{name:{type:String,default:"ali"},onSetup:{type:Function,required:!0},target:{type:String,required:!0}},emits:["update:target"],setup(o,{emit:n}){const a=o,{$gettext:l,$ngettext:u}=J(),d=E("ipv4"),c=E(a.name),k=E(""),g=E(""),p=E(""),m=E(!1),v=()=>{a.onSetup("index")},b=()=>{m.value=!0;const w=$.Loading(l("\u68C0\u6D4B\u4E2D..."));G.Network.CheckPublickNet.POST({ipVersion:d.value}).then(h=>{var _,x;if(h!=null&&h.data){if((_=h==null?void 0:h.data)!=null&&_.error){$.Warning(h==null?void 0:h.data.error);return}if((((x=h==null?void 0:h.data)==null?void 0:x.success)||0)==0){const C=h.data.result;C&&C.address?F():y();return}}throw l("\u672A\u77E5\u9519\u8BEF")}).catch(h=>{$.Error(h)}).finally(()=>{w.Close(),m.value=!1})},y=()=>{Se({title:l("\u6E29\u99A8\u63D0\u793A"),nextTitle:l("\u4F7F\u7528DDNSTO"),continuerTitle:l("\u7EE7\u7EED\u4FDD\u5B58"),content:l("\u68C0\u6D4B\u5230\u60A8\u7684wan\u53E3\u6CA1\u6709\u516C\u7F51IP\u6216\u8005IPv6\u5730\u5740\uFF0C\u53EF\u4EE5\u4F7F\u7528DDNSTO\u914D\u7F6E\u8FDC\u7A0B\u57DF\u540D\u8BBF\u95EE"),next(){f()},continuer(){F()},clear(){}})},f=()=>{a.onSetup("ddnsto")},F=()=>{m.value=!0;const w=$.Loading(l("\u914D\u7F6E\u4E2D..."));G.Guide.PostDdns.POST({ipVersion:d.value,serviceName:c.value,domain:k.value,userName:g.value,password:p.value}).then(h=>{if(h!=null&&h.data){const{error:_,scope:x,success:C}=h.data;if(_=="-100"&&x=="guide.ddns"){Se({title:l("\u6E29\u99A8\u63D0\u793A"),content:l("\u68C0\u6D4B\u5230\u4F60\u6709\u672A\u4FDD\u5B58\u7684\u914D\u7F6E\uFF0C\u53EF\u524D\u5F80\u9875\u9762\u53F3\u4E0A\u89D2\u70B9\u51FB\u67E5\u770B\uFF0C\u4FDD\u5B58\u5E76\u5E94\u7528\u6216\u8005\u6062\u590D\u914D\u7F6E\u540E\u7EE7\u7EED"),next(){}});return}if(_){$.Warning(_);return}if((C||0)==0){n("update:target",k.value),a.onSetup("ddns-success");return}}throw l("\u672A\u77E5\u9519\u8BEF")}).catch(h=>{$.Error(h)}).finally(()=>{w.Close(),m.value=!1})};return(w,h)=>(r(),s("div",M2,[t("form",{class:"actioner-dns",onSubmit:ft(b,["prevent"])},[t("div",O2,[t("span",null,i(e(l)("\u57DF\u540D\u914D\u7F6E\u5411\u5BFC")),1)]),t("div",{class:lt(["actioner-container_body",o.name])},[o.name=="ali"?(r(),s("div",N2,[t("p",null,i(e(l)("\u963F\u91CC\u4E91")),1),t("span",null,i(e(l)("\u4E3A\u62E5\u6709\u52A8\u6001IP\u7684\u4E3B\u673A\u914D\u7F6E\u4E00\u4E2A\u56FA\u5B9A\u7684\u53EF\u8BBF\u95EE\u57DF\u540D")),1),t("a",V2,i(e(l)("\u67E5\u770B\u6559\u7A0B"))+">>",1)])):o.name=="dnspod"?(r(),s("div",G2,[t("p",null,i(e(l)("dnspod")),1),t("span",null,i(e(l)("\u4E3A\u62E5\u6709\u52A8\u6001IP\u7684\u4E3B\u673A\u914D\u7F6E\u4E00\u4E2A\u56FA\u5B9A\u7684\u53EF\u8BBF\u95EE\u57DF\u540D")),1),t("a",j2,i(e(l)("\u67E5\u770B\u6559\u7A0B"))+">>",1)])):o.name=="oray"?(r(),s("div",U2,[t("p",null,i(e(l)("\u82B1\u751F\u58F3")),1),t("span",null,i(e(l)("\u4E3A\u62E5\u6709\u52A8\u6001IP\u7684\u4E3B\u673A\u914D\u7F6E\u4E00\u4E2A\u56FA\u5B9A\u7684\u53EF\u8BBF\u95EE\u57DF\u540D")),1),t("a",q2,i(e(l)("\u67E5\u770B\u6559\u7A0B"))+">>",1)])):D("",!0),t("div",R2,[t("div",W2,[t("span",null,i(e(l)("IP\u5730\u5740\u7248\u672C\uFF1A")),1)]),t("div",H2,[O(t("select",{name:"",id:"","onUpdate:modelValue":h[0]||(h[0]=_=>d.value=_)},[t("option",J2,i(e(l)("IPv4\u5730\u5740")),1),t("option",Z2,i(e(l)("IPv6\u5730\u5740")),1)],512),[[pt,d.value]])]),t("div",K2,[Q2,t("span",X2,i(e(l)("\u8BBE\u5B9A\u54EA\u4E00\u4E2A IP \u5730\u5740\uFF08IPv4 \u6216 IPv6\uFF09\u4F1A\u88AB\u53D1\u9001\u7ED9 DDNS \u63D0\u4F9B\u5546")),1)])]),t("div",t6,[t("div",e6,[t("span",null,i(e(l)("\u57DF\u540D\uFF1A")),1)]),t("div",a6,[O(t("input",{type:"text",placeholder:"myhost.example.com","onUpdate:modelValue":h[1]||(h[1]=_=>k.value=_),required:""},null,512),[[at,k.value,void 0,{trim:!0}]])])]),t("div",o6,[t("div",n6,[t("span",null,i(e(l)("\u7528\u6237\u540D\uFF1A")),1)]),t("div",i6,[O(t("input",{type:"text","onUpdate:modelValue":h[2]||(h[2]=_=>g.value=_),placeholder:e(l)("\u8BF7\u8F93\u5165\u7528\u6237\u540D"),required:""},null,8,r6),[[at,g.value,void 0,{trim:!0}]])])]),t("div",s6,[t("div",d6,[t("span",null,i(e(l)("\u5BC6\u7801\uFF1A")),1)]),t("div",l6,[O(t("input",{type:"password","onUpdate:modelValue":h[3]||(h[3]=_=>p.value=_),placeholder:e(l)("\u8BF7\u8F93\u5165\u5BC6\u7801"),required:""},null,8,u6),[[at,p.value,void 0,{trim:!0}]])])])],2),t("div",c6,[t("div",{class:"close",onClick:v,type:"button"},i(e(l)("\u8FD4\u56DE")),1),t("button",{class:"next save",type:"submit",disabled:m.value},i(e(l)("\u4FDD\u5B58")),9,p6)])],40,L2)]))}});var Je=N(f6,[["__scopeId","data-v-6e29e960"]]);const m6={class:"action-main"},g6=I({props:{Close:{type:Function,required:!0},url:{type:String,required:!0}},setup(o){const n=o,a=E(""),l=E("index"),u=g=>{if(g!=null){if(g=="ddnsto"){d();return}l.value=g}else c()},d=()=>{c(),B2({url:n.url})},c=()=>{n.Close&&n.Close()},k=E("ddnsto");return(g,p)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[t("div",m6,[l.value=="index"?(r(),Z(A1,{key:0,onSetup:u,active:k.value,"onUpdate:active":p[0]||(p[0]=m=>k.value=m)},null,8,["active"])):l.value=="ddns-ali"?(r(),Z(Je,{key:1,onSetup:u,target:a.value,"onUpdate:target":p[1]||(p[1]=m=>a.value=m),name:"ali"},null,8,["target"])):l.value=="ddns-dnspod"?(r(),Z(Je,{key:2,onSetup:u,target:a.value,"onUpdate:target":p[2]||(p[2]=m=>a.value=m),name:"dnspod"},null,8,["target"])):l.value=="ddns-oray"?(r(),Z(Je,{key:3,onSetup:u,target:a.value,"onUpdate:target":p[3]||(p[3]=m=>a.value=m),name:"oray"},null,8,["target"])):l.value=="ddns-success"?(r(),Z(j1,{key:4,onSetup:u,target:a.value},null,8,["target"])):D("",!0)])]),_:1},8,["Close"]))}});var v6=N(g6,[["__scopeId","data-v-6f1d92d9"]]);const b6=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(v6,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}},Ve=o=>(ut("data-v-134135a2"),o=o(),ct(),o),h6={class:"content"},_6={class:"tab"},x6=Ve(()=>t("div",{class:"title"},"DDNSTO",-1)),w6={key:0},k6={key:1},y6=Ve(()=>t("div",{class:"title"},"IPv4",-1)),F6={key:0},E6={key:1},$6=Ve(()=>t("div",{class:"title"},"IPv6",-1)),C6={key:0},D6={key:1},B6={key:0,class:"info"},Y6={class:"status"},A6=Ve(()=>t("div",null,"DDNSTO",-1)),S6={key:0},z6={key:1,class:"offline"},P6={class:"title_box"},T6={class:"title"},I6={class:"path"},M6=["href","title"],L6={key:1},O6={class:"item_btn",href:"https://www.kooldns.cn/app/#/devices",target:"_blank"},N6={key:1,class:"info"},V6={class:"status"},G6={key:0,class:"offline"},j6={key:1},U6={class:"title_box"},q6={class:"title"},R6={class:"path"},W6={key:0},H6=["href"],J6={key:2,href:"/cgi-bin/luci/admin/services/ddns"},Z6={key:2,class:"info"},K6={class:"status"},Q6={key:0,class:"offline"},X6={key:1},t5={class:"title_box"},e5={class:"title"},a5={class:"path"},o5={key:0},n5=["href"],i5={key:2,href:"/cgi-bin/luci/admin/services/ddns"},r5=I({setup(o){const{$gettext:n}=J(),a=E(0),l=E(!1),u=f=>{a.value=f,l.value=!0},d=f=>Boolean(f&&f!=="Stopped"&&f!=="Disabled"),c=()=>{if(l.value)return;const F=[{index:0,active:Boolean(p.value.ddnstoDomain)},{index:1,active:d(p.value.ipv4Domain)},{index:2,active:d(p.value.ipv6Domain)}].find(w=>w.active);a.value=F?F.index:0};let k=!1,g;const p=E({}),m=function(){!k||(document.hidden?Promise.resolve():G.Guide.GetDdns.GET().then(f=>{var F;f!=null&&f.data&&(((F=f==null?void 0:f.data)==null?void 0:F.success)||0)==0&&f.data.result&&(p.value=f.data.result,c())})).then(()=>{!k||(g=window.setTimeout(m,3e3))})};Pt(()=>{k=!0,g=window.setTimeout(m,1100)}),Nt(()=>{g!==void 0&&window.clearTimeout(g),k=!1});const v=()=>{b6({url:p.value.ddnstoDomain})},b=Q(()=>{const f=p.value.ipv4Domain;return!f||f=="Stopped"||f=="Disabled"?f:`http://${f}`}),y=Q(()=>{const f=p.value.ipv6Domain;return!f||f=="Stopped"||f=="Disabled"?f:`http://${f}`});return(f,F)=>(r(),Z(Wt,{title:e(n)("\u8FDC\u7A0B\u57DF\u540D"),showSettings:!0,style:{width:"100%",height:"100%",display:"block"}},{icon:V(()=>[Y(He,{color:"#00a63e",class:"icon"})]),settings:V(()=>[t("div",{class:"btn_settings",onClick:v},[Y(He,{color:"#0a0a0a",class:"icon1 earthIcon",style:{"margin-right":"6px"}}),dt(" "+i(e(n)("\u57DF\u540D\u914D\u7F6E")),1)])]),default:V(()=>{var w,h,_,x,C,S;return[t("div",h6,[t("div",_6,[t("div",{class:lt(["item cloud",{active:a.value==0}]),onClick:F[0]||(F[0]=A=>u(0))},[Y(He,{color:"#155dfc",class:"icon2"}),x6,(w=p.value)!=null&&w.ddnstoDomain?(r(),s("span",w6,i(e(n)("\u6B63\u5E38")),1)):(r(),s("span",k6,i(e(n)("\u672A\u542F\u52A8")),1))],2),e(b)?(r(),s("div",{key:0,class:lt(["item memory",{active:a.value==1}]),onClick:F[1]||(F[1]=A=>u(1))},[Y(pa,{color:"#00a63e",class:"icon2"}),y6,e(b)=="Stopped"||e(b)=="Disabled"?(r(),s("span",F6,i(e(n)("\u79BB\u7EBF")),1)):(r(),s("span",E6,i(e(n)("\u6B63\u5E38")),1))],2)):D("",!0),e(y)?(r(),s("div",{key:1,class:lt(["item network",{active:a.value==2}]),onClick:F[2]||(F[2]=A=>u(2))},[Y(g1,{class:"icon2"}),$6,e(y)=="Stopped"||e(y)=="Disabled"?(r(),s("span",C6,i(e(n)("\u79BB\u7EBF")),1)):(r(),s("span",D6,i(e(n)("\u6B63\u5E38")),1))],2)):D("",!0)]),a.value==0?(r(),s("div",B6,[t("div",Y6,[A6,(h=p.value)!=null&&h.ddnstoDomain?(r(),s("span",S6,i(e(n)("\u6B63\u5E38")),1)):(r(),s("span",z6,i(e(n)("\u672A\u542F\u52A8")),1))]),t("div",P6,[t("div",T6,i(e(n)("\u667A\u80FD\u5185\u7F51\u7A7F\u900F\u670D\u52A1")),1),t("div",I6,[(_=p.value)!=null&&_.ddnstoDomain?(r(),s("a",{key:0,class:"configure",href:(x=p.value)==null?void 0:x.ddnstoDomain,target:"_blank",rel:"noopener noreferrer",title:(C=p.value)==null?void 0:C.ddnstoDomain},i((S=p.value)==null?void 0:S.ddnstoDomain),9,M6)):(r(),s("div",L6,i(e(n)("\u672A\u5B89\u88C5\u6216\u672A\u914D\u7F6E")),1)),t("span",null,[t("a",O6,i(e(n)("\u63A7\u5236\u53F0")),1)])])])])):D("",!0),a.value==1?(r(),s("div",N6,[t("div",V6,[t("div",null,i(e(n)("\u5F53\u524D\u72B6\u6001:")),1),e(b)=="Stopped"||e(b)=="Disabled"?(r(),s("span",G6,i(e(n)("\u79BB\u7EBF")),1)):(r(),s("span",j6,i(e(n)("\u6B63\u5E38")),1))]),t("div",U6,[t("div",q6,"IPv4 "+i(e(n)("\u52A8\u6001\u57DF\u540D\u89E3\u6790")),1),t("div",R6,[e(b)=="Stopped"||e(b)=="Disabled"?(r(),s("div",W6,i(e(b)),1)):(r(),s("a",{key:1,class:"configure",href:e(b),target:"_blank",rel:"noopener noreferrer"},i(e(b)),9,H6)),e(b)?(r(),s("a",J6,[Y(ya,{class:"icon3"})])):D("",!0)])])])):D("",!0),a.value==2?(r(),s("div",Z6,[t("div",K6,[t("div",null,i(e(n)("\u5F53\u524D\u72B6\u6001:")),1),e(y)=="Stopped"||e(y)=="Disabled"?(r(),s("span",Q6,i(e(n)("\u79BB\u7EBF")),1)):(r(),s("span",X6,i(e(n)("\u6B63\u5E38")),1))]),t("div",t5,[t("div",e5,"IPv6 "+i(e(n)("\u52A8\u6001\u57DF\u540D\u89E3\u6790")),1),t("div",a5,[e(y)=="Stopped"||e(y)=="Disabled"?(r(),s("div",o5,i(e(y)),1)):(r(),s("a",{key:1,class:"configure",href:e(y),target:"_blank",rel:"noopener noreferrer"},i(e(y)),9,n5)),e(y)?(r(),s("a",i5,[Y(ya,{class:"icon3"})])):D("",!0)])])])):D("",!0)])]}),_:1},8,["title"]))}});var s5=N(r5,[["__scopeId","data-v-134135a2"]]);const d5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},l5=["fill"],u5=I({props:{color:{type:String,default:"#2c2c2c"}},setup(o){return(n,a)=>(r(),s("svg",d5,[t("path",{d:"M879.674 544.51l-158.254-0.221c-8.534 2.287-17.305-2.776-19.588-11.307l-23.862-75.877-74.742 350.891c0 0-1.523 18.507-11.518 18.507s-26.9 0.281-26.9 0.281c-8.259 2.213-16.748-2.687-18.961-10.949l-92.741-457.648-70.305 330.634c-2.261 8.291-11.94 15.206-20.385 12.986l-24.876 0.339c-8.723 2.293-17.685-2.789-20.023-11.349L270.629 544.51 143.993 544.51c-8.831 0-15.993-7.159-15.993-15.993l0-31.986c0-8.831 7.162-15.993 15.993-15.993l157.429-0.516c9.565-0.304 17.685 0.788 20.023 9.351l24.386 76.092 68.642-358.907c0 0 3.4-10.894 14.397-10.894 10.994 0 34.107-0.448 34.107-0.448 8.262-2.213 16.751 2.687 18.965 10.949l91.912 454.126 67.948-326.182c2.213-8.262 8.707-15.161 16.965-12.948l27.316-0.333c8.531-2.287 17.301 2.776 19.588 11.31l46.665 148.4 127.337 0c8.835 0 15.993 7.162 15.993 15.993l0 31.986C895.667 537.352 888.508 544.51 879.674 544.51z","p-id":"5314",fill:o.color},null,8,l5)]))}}),c5=()=>{var n;const o=document.documentElement.getAttribute("data-darkmode");if(o)switch(o){case"true":return"dark";case"false":return"light"}return(n=window.matchMedia("(prefers-color-scheme: dark)"))!=null&&n.matches?"dark":"light"},Ha=()=>c5()=="dark",Ja=o=>(ut("data-v-47c7bd93"),o=o(),ct(),o),p5={class:"title_box"},f5={class:"display_flex"},m5={class:"network_tag"},g5={class:"tag_item"},v5=Ja(()=>t("div",{class:"tag_dn"},null,-1)),b5={class:"tag_item"},h5=Ja(()=>t("div",{class:"tag_up"},null,-1)),_5={class:"speed"},x5={class:"speed_item"},w5={style:{color:"#1596fd"}},k5={class:"speed_item"},y5={style:{color:"#00a63e"}},F5=I({setup(o){const{$gettext:n}=J();Xe([Ma,La,Oa,ta,ea,Na]);const a=E(),l=_=>{var C;const x=(C=a.value)==null?void 0:C[_];return!x||x.startTime==0?"":p(x.startTime*1e3)+"-"+p(x.endTime*1e3)},u=Q(()=>{var x;let _=[];return(x=a.value)==null||x.forEach(C=>{_.push({value:C.uploadSpeed})}),_}),d=Q(()=>{var x;let _=[];return(x=a.value)==null||x.forEach(C=>{_.push({value:C.downloadSpeed})}),_}),c=Q(()=>{var x;let _="";if(a.value){let C=((x=a.value)==null?void 0:x.length)||0;if(C>0){let S=a.value[C-1];_=m(S.uploadSpeed)+"/s"}}return _}),k=Q(()=>{var x;let _="";if(a.value){let C=((x=a.value)==null?void 0:x.length)||0;if(C>0){let S=a.value[C-1];_=m(S.downloadSpeed)+"/s"}}return _});Q(()=>{var x;let _=[];return(x=a.value)==null||x.forEach(C=>{_.push({value:C.downloadSpeed+C.uploadSpeed})}),_});const g=()=>L(this,null,function*(){var _;try{const x=yield G.Network.Statistics.GET();if(x.data&&(_=x.data.result)!=null&&_.items){const C=x.data.result.slots||10;if(x.data.result.items.lengthC?a.value=x.data.result.items.slice(C-x.data.result.items.length):a.value=x.data.result.items}}catch(x){console.log(x)}}),p=Mt.dateForm,m=Mt.byteToSize,v=E(),b=E();let y=null,f=null,F=null;const w=_=>{const x=Ha();return y=aa(_,x?"dark":"light"),y.setOption({animation:!1,backgroundColor:x?"#2c2c2c":"#fff",color:["transparent","transparent"],tooltip:{trigger:"axis",formatter:C=>{if(Array.isArray(C)){let S="";C.length>0&&(S=l(C[0].axisValue));for(let A=0;A${C[A].seriesName}: ${m(C[A].value)}/s`;return S.toString()}else{const S=C;return`${l(S.axisValue)}
${S.seriesName}: ${m(S.value)}/s`}}},xAxis:{type:"category",boundaryGap:!1,splitLine:{lineStyle:{color:["#999"]},show:!1},name:"",show:!1,nameGap:0,nameTextStyle:{height:0,lineHeight:0,padding:0}},title:{text:"",textStyle:{fontSize:12,color:x?"#cccccc":"rgba(0, 0, 0, 0.6)"},top:"10px",left:"10px"},yAxis:{type:"value",name:"",minInterval:1e4,interval:1e3,axisLabel:{formatter:function(C,S){return`${m(C)}/s`},color:"#fff",show:!1},nameTextStyle:{color:"#fff"},splitLine:{lineStyle:{color:["#999"]},show:!1}},series:[{name:n("\u4E0B\u8F7D"),data:d.value,type:"line",symbol:"none",showSymbol:!1,symbolSize:0,smooth:!0,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(32, 199, 247, 1)"},{offset:1,color:"rgba(32, 199, 247, 0.1)"}],global:!1}}},{name:n("\u4E0A\u4F20"),data:u.value,type:"line",symbol:"none",showSymbol:!1,symbolSize:0,smooth:!0,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(85, 58, 254, 1)"},{offset:1,color:"rgba(85, 58, 254, 0.1)"}],global:!1}}}],grid:{left:"2%",right:"2%",bottom:"0%",top:"10%",containLabel:!0}}),y},h=()=>{if(!y||!v.value)return;const _=Math.max(v.value.clientWidth,50),x=Math.max(v.value.clientHeight,50);y.resize({width:_,height:x})};return Pt(()=>{setTimeout(()=>L(this,null,function*(){if(v.value){yield g();const _=w(v.value),x=v.value;h(),F=()=>{h()},window.addEventListener("resize",F),"ResizeObserver"in window&&(f=new ResizeObserver(()=>{h()}),b.value&&f.observe(b.value),f.observe(x));const C=()=>L(this,null,function*(){if(y!=null){if(!document.hidden){if(yield g(),y==null)return;_.setOption({series:[{name:n("\u4E0B\u8F7D"),data:d.value,type:"line",areaStyle:{},smooth:!0},{name:n("\u4E0A\u4F20"),data:u.value,type:"line",areaStyle:{},smooth:!0}]}),h()}setTimeout(C,5e3)}});setTimeout(C,5e3)}}),900)}),Nt(()=>{y!=null&&(y.dispose(),y=null),F&&(window.removeEventListener("resize",F),F=null),f&&(f.disconnect(),f=null)}),(_,x)=>(r(),s("div",{class:"network_container",ref_key:"containerRef",ref:b},[t("div",p5,[t("div",f5,[Y(u5,{color:"#20c7f7",class:"icon"}),t("span",null,i(e(n)("\u7F51\u7EDC\u6D41\u91CF")),1)]),t("div",null,[t("div",m5,[t("div",g5,[v5,t("span",null,i(e(n)("\u4E0B\u8F7D")),1)]),t("div",b5,[h5,t("span",null,i(e(n)("\u4E0A\u4F20")),1)])])])]),t("div",_5,[t("div",x5,[t("span",null,i(e(n)("\u4E0B\u8F7D\u901F\u5EA6")),1),t("div",w5,i(e(k)),1)]),t("div",k5,[t("span",null,i(e(n)("\u4E0A\u4F20\u901F\u5EA6")),1),t("div",y5,i(e(c)),1)])]),t("div",{ref_key:"el",ref:v,class:"echart"},null,512)],512))}});var Fa=N(F5,[["__scopeId","data-v-47c7bd93"]]);const E5={width:"32",height:"32",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},$5=["fill"],Ea=I({props:{color:{type:String,default:"#2c2c2c"}},setup(o){return(n,a)=>(r(),s("svg",E5,[t("path",{d:"M512 298.666667c-162.133333 0-285.866667 68.266667-375.466667 213.333333 89.6 145.066667 213.333333 213.333333 375.466667 213.333333s285.866667-68.266667 375.466667-213.333333c-89.6-145.066667-213.333333-213.333333-375.466667-213.333333z m0 469.333333c-183.466667 0-328.533333-85.333333-426.666667-256 98.133333-170.666667 243.2-256 426.666667-256s328.533333 85.333333 426.666667 256c-98.133333 170.666667-243.2 256-426.666667 256z m0-170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333s-38.4-85.333333-85.333333-85.333333-85.333333 38.4-85.333333 85.333333 38.4 85.333333 85.333333 85.333333z m0 42.666667c-72.533333 0-128-55.466667-128-128s55.466667-128 128-128 128 55.466667 128 128-55.466667 128-128 128z",fill:o.color,"p-id":"5225"},null,8,$5)]))}}),C5={width:"32",height:"32",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},D5=["fill"],$a=I({props:{color:{type:String,default:"#2c2c2c"}},setup(o){return(n,a)=>(r(),s("svg",C5,[t("path",{d:"M332.8 729.6l34.133333-34.133333c42.666667 12.8 93.866667 21.333333 145.066667 21.333333 162.133333 0 285.866667-68.266667 375.466667-213.333333-46.933333-72.533333-102.4-128-166.4-162.133334l29.866666-29.866666c72.533333 42.666667 132.266667 106.666667 183.466667 192-98.133333 170.666667-243.2 256-426.666667 256-59.733333 4.266667-119.466667-8.533333-174.933333-29.866667z m-115.2-64c-51.2-38.4-93.866667-93.866667-132.266667-157.866667 98.133333-170.666667 243.2-256 426.666667-256 38.4 0 76.8 4.266667 110.933333 12.8l-34.133333 34.133334c-25.6-4.266667-46.933333-4.266667-76.8-4.266667-162.133333 0-285.866667 68.266667-375.466667 213.333333 34.133333 51.2 72.533333 93.866667 115.2 128l-34.133333 29.866667z m230.4-46.933333l29.866667-29.866667c8.533333 4.266667 21.333333 4.266667 29.866666 4.266667 46.933333 0 85.333333-38.4 85.333334-85.333334 0-12.8 0-21.333333-4.266667-29.866666l29.866667-29.866667c12.8 17.066667 17.066667 38.4 17.066666 64 0 72.533333-55.466667 128-128 128-17.066667-4.266667-38.4-12.8-59.733333-21.333333zM384 499.2c4.266667-68.266667 55.466667-119.466667 123.733333-123.733333 0 4.266667-123.733333 123.733333-123.733333 123.733333zM733.866667 213.333333l29.866666 29.866667-512 512-34.133333-29.866667L733.866667 213.333333z",fill:o.color,"p-id":"5534"},null,8,D5)]))}}),B5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Y5=["fill"],xe=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",B5,[t("path",{d:"M512 96c229.76 0 416 186.24 416 416S741.76 928 512 928 96 741.76 96 512 282.24 96 512 96z m-32 448l-127.317333 0.021333c0.896 20.48 2.624 40.405333 5.12 59.669334l1.984 14.293333 2.474666 15.253333c19.754667 112.896 65.728 197.738667 117.76 222.997334L480 544z m191.317333 0.021333L544 544v312.234667c50.858667-24.725333 95.936-106.368 116.373333-215.509334l1.365334-7.488 2.474666-15.232a701.013333 701.013333 0 0 0 7.104-73.984z m-382.698666 0H161.429333c11.648 129.066667 92.992 238.08 206.101334 289.066667-22.122667-34.282667-40.362667-76.416-53.76-124.032l-3.029334-11.093333-3.52-14.165334-3.242666-14.464a744.490667 744.490667 0 0 1-15.36-125.312z m573.952 0H735.36a752.661333 752.661333 0 0 1-12.672 112.128l-2.688 13.184-3.242667 14.464-3.52 14.186667c-13.653333 52.138667-32.96 98.197333-56.789333 135.104 113.109333-50.986667 194.453333-160 206.08-289.066667zM367.530667 190.890667l-2.858667 1.301333C253.013333 243.733333 172.970667 352 161.429333 480h127.189334c1.536-39.04 5.866667-76.693333 12.672-112.149333l2.688-13.184 3.242666-14.464 3.52-14.186667c13.653333-52.138667 32.96-98.197333 56.789334-135.104zM480 167.765333c-50.709333 24.618667-95.68 105.898667-116.202667 214.592l-1.536 8.405334-2.474666 15.232a701.034667 701.034667 0 0 0-7.104 74.005333H480V167.765333z m176.469333 23.146667l2.56 4.053333c20.906667 33.429333 38.229333 73.984 51.093334 119.552l3.136 11.52 3.52 14.165334 3.242666 14.464c8.362667 39.253333 13.632 81.408 15.36 125.333333h127.189334c-11.626667-129.088-92.970667-238.101333-206.101334-289.066667zM544 167.765333L544 480h127.317333a707.136 707.136 0 0 0-5.333333-61.376l-1.770667-12.629333-2.474666-15.232c-19.754667-112.874667-65.706667-197.717333-117.717334-222.997334z","p-id":"4600",fill:o.color},null,8,Y5)]))}}),A5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},S5=["fill"],z5=["fill"],P5=I({props:{color:{type:String,default:"#00a63e"}},setup(o){return(n,a)=>(r(),s("svg",A5,[t("path",{d:"M986.112 179.2c-12.288-12.288-31.744-12.288-44.032 0l-472.064 471.04-180.224-180.224c-12.288-12.288-31.744-12.288-44.032 0-12.288 12.288-12.288 31.744 0 44.032l202.752 201.728c6.144 6.144 12.288 9.216 22.528 9.216 9.216 0 15.36-3.072 22.528-9.216l494.592-492.544c10.24-12.288 10.24-31.744-2.048-44.032z",fill:o.color,"p-id":"11312"},null,8,S5),t("path",{d:"M1024 548.864c0-17.408-14.336-31.744-31.744-31.744-17.408 0-31.744 14.336-31.744 31.744C941.056 779.264 747.52 959.488 513.024 959.488 265.216 959.488 64.512 759.808 64.512 512c0-247.808 200.704-447.488 448.512-447.488 69.632 0 135.168 15.36 194.56 44.032h1.024c4.096 1.024 7.168 2.048 11.264 2.048 17.408 0 31.744-14.336 31.744-31.744 0-12.288-7.168-23.552-17.408-28.672C665.6 17.408 590.848 0 513.024 0 229.376 0 0 229.376 0 512s229.376 512 513.024 512c270.336 0 491.52-208.896 510.976-475.136z",fill:o.color,"p-id":"11313"},null,8,z5)]))}}),T5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},I5=["fill"],M5=I({props:{color:{type:String,default:"#e7000b"}},setup(o){return(n,a)=>(r(),s("svg",T5,[t("path",{d:"M511.9744 706.6624a57.2672 57.2672 0 0 1 56.96 57.5488c0 20.5568-10.8544 39.552-28.4672 49.8432a56.4736 56.4736 0 0 1-56.9856 0 57.6512 57.6512 0 0 1-28.4928-49.8432c0-31.7696 25.4976-57.5488 56.9856-57.5488zM190.1824 147.3024l2.4832 2.2272 614.4 614.4a30.72 30.72 0 0 1-40.96 45.696l-2.4832-2.2528-229.4528-229.504a189.6704 189.6704 0 0 0-180.864 83.8912 29.3376 29.3376 0 0 1-40.9344 7.3728 30.976 30.976 0 0 1-8.32-41.6768 248.8576 248.8576 0 0 1 170.624-109.056l-78.7968-78.7968a346.8288 346.8288 0 0 0-156.7744 112.128 29.4144 29.4144 0 0 1-50.944-8.4224 31.0784 31.0784 0 0 1 4.736-30.0544 406.9888 406.9888 0 0 1 156.1088-120.4736l-71.9872-72.0128a504.7808 504.7808 0 0 0-150.6816 120.32 29.2864 29.2864 0 0 1-41.9328 2.7904 31.0016 31.0016 0 0 1-2.9184-42.88 564.608 564.608 0 0 1 150.8608-124.928L149.2224 192.9472a30.72 30.72 0 0 1 40.96-45.6704z m321.792 211.6352a404.992 404.992 0 0 1 319.0528 154.368 30.976 30.976 0 0 1-4.3008 42.8288 29.184 29.184 0 0 1-41.9072-4.4032 345.984 345.984 0 0 0-229.7088-129.2032l-63.1552-63.104c6.656-0.3328 13.312-0.4864 20.0192-0.4864z m0-156.6976c166.1184 0 322.9952 72.448 430.4896 198.8608 10.752 12.672 9.472 31.872-2.8416 42.9312a29.184 29.184 0 0 1-42.0352-2.9184 505.344 505.344 0 0 0-385.6128-177.92 509.184 509.184 0 0 0-105.2672 11.008l-50.2272-50.2784A566.656 566.656 0 0 1 512 202.24z","p-id":"5359",fill:o.color},null,8,I5)]))}}),L5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},O5=["fill"],N5=["fill"],V5=["fill"],G5=I({props:{color:{type:String,default:"#f54900"}},setup(o){return(n,a)=>(r(),s("svg",L5,[t("path",{d:"M512 179.2l390.4 627.2H128l384-627.2m0-64c-19.2 0-44.8 12.8-51.2 32l-390.4 627.2c-25.6 44.8 6.4 96 51.2 96H896c51.2 0 83.2-57.6 51.2-96l-384-627.2c-6.4-19.2-32-32-51.2-32z",fill:o.color,"p-id":"4490"},null,8,O5),t("path",{d:"M512 640c-19.2 0-32-12.8-32-32v-192c0-19.2 12.8-32 32-32s32 12.8 32 32v192c0 19.2-12.8 32-32 32z",fill:o.color,"p-id":"4491"},null,8,N5),t("path",{d:"M512 723.2m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z",fill:o.color,"p-id":"4492"},null,8,V5)]))}}),j5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},U5=["fill"],Za=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",j5,[t("path",{d:"M511.3 116.7l339.1 193.8v387.6L511.3 891.9 172.2 698.1V310.5l339.1-193.8zM802 345.6L535.5 516.7v305.5L802 670V345.6z m-581.4 0.3V670l266.5 152.3V516.7L220.6 345.9z m434.1-87.3L401.1 405l110.3 71.4 248.9-161.5L658 256.4c-1.1 0.7-2.2 1.5-3.3 2.2z m-143.4-86L262.2 314.9l93.4 60.5c0.5-0.4 1.1-0.7 1.6-1l252.3-145.7-98.2-56.1z m0 0",fill:o.color,"p-id":"14790"},null,8,U5)]))}}),q5={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},R5=["fill"],W5=["fill"],H5=["fill"],ze=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",q5,[t("path",{d:"M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6c-3.2 2.8-3.6 7.8-0.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4 0.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-0.9l36-42.9c2.8-3.3 2.4-8.3-0.9-11.2zM840.4 480.4C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4c-3.4 2.8-3.8 7.9-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3z","p-id":"5126",fill:o.color},null,8,R5),t("path",{d:"M957.1 341.4C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4-3.5 2.8-4 7.9-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3z","p-id":"5127",fill:o.color},null,8,W5),t("path",{d:"M512 778m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z","p-id":"5128",fill:o.color},null,8,H5)]))}}),J5=["onSubmit"],Z5={class:"actioner-dns_header"},K5={class:"actioner-dns_body"},Q5={class:"label-item"},X5={class:"label-item_key"},t3={class:"label-item_value"},e3=["disabled"],a3={value:"manual"},o3={class:"label-item"},n3={class:"label-item_key"},i3={class:"label-item_value"},r3=["placeholder","onUpdate:modelValue"],s3={class:"label-item_key"},d3={class:"label-item_value"},l3=["placeholder","onUpdate:modelValue"],u3={key:1,class:"label-message"},c3={class:"actioner-dns_footer"},p3=["disabled"],f3={key:1,class:"actioner-dns"},m3={class:"actioner-dns_header"},g3={class:"actioner-dns_body"},v3={class:"config-message"},b3={class:"actioner-dns_footer"},h3=I({props:{Close:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(0),d=Fe(),c=d.status,k=Q(()=>d.status.proto!="static"),g=()=>{let F=c.dnsList||[];for(F=F.filter(w=>w);F.length<2;)F.push("");return F},p=E({interfaceName:c.defaultInterface||"",dnsProto:c.dnsProto||"manual",manualDnsIp:g()}),m=E(""),v=E(!1),b=()=>L(this,null,function*(){m.value="";let F={};switch(p.value.dnsProto){case"auto":break;case"manual":if(F.manualDnsIp=[],!p.value.manualDnsIp[0]){$.Error(a("\u81F3\u5C11\u9700\u8981\u586B\u5199\u4E00\u4E2ADNS"));return}F.manualDnsIp=p.value.manualDnsIp.filter(h=>h);break}F.dnsProto=p.value.dnsProto,F.interfaceName=p.value.interfaceName;const w=$.Loading(a("\u914D\u7F6E\u4E2D..."));try{const h=yield G.Guide.DnsConfig.POST(F);if(h!=null&&h.data){const{success:_,error:x}=h==null?void 0:h.data;x&&(m.value=x),(_==null||_==0)&&($.Success(a("\u914D\u7F6E\u6210\u529F")),u.value=1)}}catch(h){m.value=h}w.Close()}),y=F=>{F.preventDefault(),n.Close&&n.Close()},f=F=>{location.reload()};return(F,w)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[u.value==0?(r(),s("form",{key:0,class:"actioner-dns",onSubmit:ft(b,["prevent"])},[t("div",Z5,[t("span",null,i(e(a)("DNS\u914D\u7F6E")),1)]),t("div",K5,[t("div",Q5,[t("div",X5,[t("span",null,i(e(a)("DNS\u9009\u9879")),1)]),t("div",t3,[O(t("select",{"onUpdate:modelValue":w[0]||(w[0]=h=>p.value.dnsProto=h)},[t("option",{value:"auto",disabled:!e(k)},i(e(a)("\u81EA\u52A8\u83B7\u53D6DNS")),9,e3),t("option",a3,i(e(a)("\u81EA\u5B9A\u4E49DNS")),1)],512),[[pt,p.value.dnsProto]])])]),p.value.dnsProto=="manual"?(r(!0),s(U,{key:0},tt(p.value.manualDnsIp,(h,_)=>(r(),s("div",o3,[_==0?(r(),s(U,{key:0},[t("div",n3,[t("span",null,i(e(a)("DNS\u670D\u52A1\u5668\u5730\u5740")),1)]),t("div",i3,[O(t("input",{type:"text",placeholder:e(a)("\u8BF7\u8F93\u5165DNS\u5730\u5740"),required:"","onUpdate:modelValue":x=>p.value.manualDnsIp[_]=x},null,8,r3),[[at,p.value.manualDnsIp[_],void 0,{trim:!0}]])])],64)):(r(),s(U,{key:1},[t("div",s3,i(e(a)("\u5907\u7528DNS\u670D\u52A1\u5668\u5730\u5740")),1),t("div",d3,[O(t("input",{type:"text",placeholder:e(a)("\u5907\u7528DNS\u5730\u5740"),"onUpdate:modelValue":x=>p.value.manualDnsIp[_]=x},null,8,l3),[[at,p.value.manualDnsIp[_],void 0,{trim:!0}]])])],64))]))),256)):D("",!0),m.value?(r(),s("div",u3,i(m.value),1)):D("",!0)]),t("div",c3,[t("button",{class:"cbi-button cbi-button-apply app-btn",disabled:v.value},i(e(a)("\u786E\u8BA4")),9,p3),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:y},i(e(a)("\u53D6\u6D88")),1)])],40,J5)):u.value==1?(r(),s("div",f3,[t("div",m3,[t("span",null,i(e(a)("DNS\u914D\u7F6E")),1)]),t("div",g3,[t("div",v3,i(e(a)("DNS\u914D\u7F6E\u5DF2\u4FDD\u5B58")),1)]),t("div",b3,[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:f},i(e(a)("\u5B8C\u6210")),1)])])):D("",!0)]),_:1},8,["Close"]))}});var _3=N(h3,[["__scopeId","data-v-5cff2770"]]);const Ka=()=>{const o=document.createElement("div");document.body.appendChild(o);const n=xt(_3,{Close:()=>{a()}});n.mount(o);const a=()=>{n.unmount(),o.remove()};return{Close:a}},x3=["onSubmit"],w3={class:"actioner-dns_header"},k3={class:"actioner-dns_body"},y3={class:"label-item"},F3={class:"label-item_key"},E3={class:"label-item_value"},$3={class:"item_info"},C3={class:"label-item"},D3={class:"label-item_key"},B3={class:"label-item_value"},Y3={selected:"true",value:""},A3=["value"],S3={class:"actioner-dns_footer"},z3=["disabled"],P3={key:1,class:"actioner-dns"},T3={class:"actioner-dns_header"},I3={class:"softsource_tit"},M3={class:"actioner-dns_body"},L3={class:"finished"},O3={class:"successed"},N3={class:"btns"},V3=I({props:{Close:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(0),d=E(""),c=E(),k=E();(()=>{G.Guide.SoftSourceList.GET().then(b=>{var y,f;if((y=b==null?void 0:b.data)!=null&&y.result){const F=(f=b==null?void 0:b.data)==null?void 0:f.result;k.value=F}}).then(()=>G.Guide.GetSoftSource.GET()).then(b=>{var y,f;if((y=b==null?void 0:b.data)!=null&&y.result){const F=b.data.result;c.value=F.softSource,(f=k.value)!=null&&f.softSourceList.find(w=>w.identity==F.softSource.identity)&&(d.value=F.softSource.identity)}})})();const p=b=>{b.preventDefault(),n.Close&&n.Close()},m=b=>{const y=$.Loading(a("\u6B63\u5728\u5207\u6362\u4E2D..."));G.Guide.SoftSource.POST({softSourceIdentity:d.value}).then(f=>{if(f!=null&&f.data){if((f.data.success||0)==0){u.value=1;return}else if(f.data.error)throw f.data.error}throw a("\u672A\u77E5\u9519\u8BEF")}).catch(f=>{$.Error(f)}).finally(()=>y.Close())},v=b=>{b.preventDefault(),location.reload()};return(b,y)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>{var f,F;return[u.value==0?(r(),s("form",{key:0,class:"actioner-dns",onSubmit:ft(m,["prevent"])},[t("div",w3,[t("span",null,i(e(a)("\u8F6F\u4EF6\u6E90\u914D\u7F6E")),1)]),t("div",k3,[t("div",y3,[t("div",F3,[t("span",null,i(e(a)("\u5F53\u524D\u8F6F\u4EF6\u6E90")),1)]),t("div",E3,[t("p",$3,i((f=c.value)==null?void 0:f.name),1)])]),t("div",C3,[t("div",D3,[t("span",null,i(e(a)("\u5207\u6362\u8F6F\u4EF6\u6E90")),1)]),t("div",B3,[O(t("select",{name:"",id:"","onUpdate:modelValue":y[0]||(y[0]=w=>d.value=w)},[t("option",Y3,i(e(a)("\u8BF7\u9009\u62E9\u8F6F\u4EF6\u6E90")),1),(r(!0),s(U,null,tt((F=k.value)==null?void 0:F.softSourceList,(w,h)=>(r(),s("option",{value:w.identity,key:h},i(w.name),9,A3))),128))],512),[[pt,d.value,void 0,{trim:!0}]])])])]),t("div",S3,[t("button",{class:"cbi-button cbi-button-apply app-btn",disabled:d.value==""},i(e(a)("\u786E\u8BA4")),9,z3),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:p},i(e(a)("\u53D6\u6D88")),1)])],40,x3)):D("",!0),u.value==1?(r(),s("form",P3,[t("div",T3,[t("span",I3,i(e(a)("\u8F6F\u4EF6\u6E90\u914D\u7F6E")),1)]),t("div",M3,[t("div",L3,[Y(ua)]),t("p",O3,i(e(a)("\u914D\u7F6E\u6210\u529F\uFF01")),1),t("div",N3,[t("button",{class:"cbi-button cbi-button-apply softsource_successed",onClick:v},i(e(a)("\u786E\u5B9A")),1)])])])):D("",!0)]}),_:1},8,["Close"]))}});var G3=N(V3,[["__scopeId","data-v-3f8f9931"]]);const Qa=()=>{const o=document.createElement("div");document.body.appendChild(o);const n=xt(G3,{Close:()=>{a()}});n.mount(o);const a=()=>{n.unmount(),o.remove()};return{Close:a}},j3=o=>(ut("data-v-24e35542"),o=o(),ct(),o),U3={class:"info_content"},q3={key:0,class:"status_box"},R3={class:"status_name"},W3={class:"status_time"},H3={key:1,class:"status_box"},J3={class:"flex"},Z3={class:"status_name"},K3={class:"dns-btn"},Q3={class:"status_time",style:{background:"#ffe2e2",color:"#c10007"}},X3={key:2,class:"status_box"},t8={class:"flex"},e8={class:"status_name"},a8={class:"dns-btn"},o8={class:"status_time",style:{background:"#ffe2e2",color:"#c10007"}},n8={key:3,class:"status_box"},i8={class:"status_name"},r8={class:"status_time",style:{background:"#ffe2e2",color:"#c10007"}},s8={key:4,class:"status_box"},d8={class:"status_name"},l8={class:"ip_info"},u8={class:"ip_item"},c8={class:"ip_action"},p8={class:"ip_tag"},f8={key:0,class:"ip_address"},m8={key:1,class:"ip_address"},g8={class:"ip_info"},v8={class:"ip_item"},b8=j3(()=>t("div",null,"IPv6",-1)),h8={key:0,class:"ip_action"},_8={key:1,class:"ip_tag"},x8={key:0,class:"ip_address"},w8={key:1,class:"ip_address"},k8={class:"ip_info",style:{"margin-bottom":"0"}},y8={class:"ip_item"},F8={class:"ip_address"},E8=I({setup(o){const{$gettext:n}=J(),a=Fe(),l=Pe(),u="***************************************",d=()=>{const x=E(!1),C=E(60);let S=null;const A=()=>{S!==null&&(clearInterval(S),S=null)},z=()=>{C.value>0?C.value--:A()},B=()=>{A(),S=setInterval(z,1e3)};$t(C,M=>{M===0&&(x.value=!1)});const H=()=>{x.value=!x.value,x.value?(C.value=60,B()):(C.value=60,A())};return Nt(A),{isShow:x,toggle:H}},{isShow:c,toggle:k}=d(),{isShow:g,toggle:p}=d(),m=Q(()=>a.status),v=()=>{Ka()},b=()=>{Qa()};Q(()=>a.deviceList);const y=gt({portList:[],load:!1}),f=x=>{switch(x){case"pppoe":return n("\u62E8\u53F7\u4E0A\u7F51");case"static":return n("\u9759\u6001\u7F51\u7EDC");case"dhcp":return"DHCP"}return x&&x.toUpperCase()},F=x=>{switch(x){case"manual":return n("\u624B\u52A8\u914D\u7F6E");case"auto":return n("\u81EA\u52A8\u83B7\u53D6");default:return""}},w=()=>{(y.load&&document.hidden?Promise.resolve():G.Network.PortList.GET().then(x=>{if(x!=null&&x.data){const{result:C}=x==null?void 0:x.data;C&&(y.portList=C.ports||[])}})).finally(()=>{y.load=!0,setTimeout(w,1e4)})};w();const h=Mt.stampForm,_=()=>{l.push("/devicemanagement")};return(x,C)=>(r(),s("div",null,[Y(Wt,{title:e(n)("\u7F51\u7EDC\u8FDE\u63A5\u548CIP\u5730\u5740"),showSettings:!0},{settings:V(()=>[t("div",{class:"device-manage-btn",onClick:_},[Y(pa,{color:"#3a3a3a",class:"device-manage-icon"}),dt(" "+i(e(n)("\u8BBE\u5907\u7BA1\u7406")),1)])]),icon:V(()=>[Y(xe,{color:"#0a0a0a",class:"icon networkIcon"})]),default:V(()=>[t("div",U3,[e(m)!=null?(r(),s(U,{key:0},[e(m).networkInfo=="netSuccess"?(r(),s("div",q3,[t("div",R3,[Y(P5,{color:"#00a63e",class:"icon"}),t("span",null,i(e(n)("\u7F51\u7EDC\u8FDE\u63A5\u6B63\u5E38")),1)]),t("div",W3,i(e(h)(e(m).uptimeStamp)),1)])):e(m).networkInfo=="dnsFailed"?(r(),s("div",H3,[t("div",J3,[t("div",Z3,[Y(G5,{style:{width:"1.2rem",height:"1.2rem","margin-right":"4px"}}),t("span",null,i(e(n)("DNS\u9519\u8BEF")),1)]),t("div",K3,[t("button",{class:"btn-primary",onClick:v},i(e(n)("DNS\u914D\u7F6E")),1)])]),t("div",Q3,i(e(h)(e(m).uptimeStamp)),1)])):e(m).networkInfo=="softSourceFailed"?(r(),s("div",X3,[t("div",t8,[t("div",e8,[Y(Za,{color:"#9810fa",style:{width:"1.5rem",height:"1.5rem","margin-right":"4px"}}),t("span",null,i(e(n)("\u8F6F\u4EF6\u6E90\u9519\u8BEF")),1)]),t("div",a8,[t("button",{class:"btn-pink",onClick:b},i(e(n)("\u8F6F\u4EF6\u6E90\u914D\u7F6E")),1)])]),t("div",o8,i(e(h)(e(m).uptimeStamp)),1)])):e(m).networkInfo=="netFailed"?(r(),s("div",n8,[t("div",i8,[Y(M5,{style:{width:"1.2rem",height:"1.2rem","margin-right":"4px"}}),t("span",null,i(e(n)("\u672A\u8054\u7F51")),1)]),t("div",r8,i(e(h)(e(m).uptimeStamp)),1)])):(r(),s("div",s8,[t("div",d8,[Y(ze,{color:"#d08700",class:"icon"}),t("span",null,i(e(n)("\u68C0\u6D4B\u4E2D...")),1)])]))],64)):D("",!0),t("div",l8,[t("div",u8,[t("div",null,"IPv4 \uFF08"+i(e(m).defaultInterface)+"\uFF09",1),t("div",c8,[t("div",p8,i(f(e(m).proto||"")),1),e(m).ipv4addr?(r(),s("div",{key:0,class:"ip_tag",style:{cursor:"pointer"},onClick:C[0]||(C[0]=(...S)=>e(k)&&e(k)(...S))},[e(c)?(r(),Z($a,{key:0})):(r(),Z(Ea,{key:1})),dt(" "+i(e(n)("\u5DF2\u542F\u7528")),1)])):D("",!0)])]),e(m).ipv4addr?(r(),s("div",f8,i(e(c)?e(m).ipv4addr:u),1)):(r(),s("div",m8,"-"))]),t("div",g8,[t("div",v8,[b8,e(m).ipv6addr?(r(),s("div",h8,[t("div",{class:"ip_tag",style:{cursor:"pointer"},onClick:C[1]||(C[1]=(...S)=>e(p)&&e(p)(...S))},[e(g)?(r(),Z($a,{key:0})):(r(),Z(Ea,{key:1})),dt(" "+i(e(n)("\u5DF2\u542F\u7528")),1)])])):(r(),s("div",_8,i(e(n)("\u672A\u542F\u7528")),1))]),e(m).ipv6addr?(r(),s("div",x8,i(e(g)?e(m).ipv6addr:u),1)):(r(),s("div",w8,"-"))]),t("div",k8,[t("div",y8,[t("div",null,"DNS\uFF08"+i(F(e(m).dnsProto))+"\uFF09",1)]),(r(!0),s(U,null,tt(e(m).dnsList,S=>(r(),s("div",F8,i(S),1))),256))])])]),_:1},8,["title"])]))}});var $8=N(E8,[["__scopeId","data-v-24e35542"]]);const C8={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},D8=["fill"],Ca=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",C8,[t("path",{d:"M170.666667 647.253333a128.042667 128.042667 0 1 0 85.333333 0V256c0-71.850667 49.109333-128 106.666667-128S469.333333 184.149333 469.333333 256v512c0 116.650667 84.608 213.333333 192 213.333333s192-96.682667 192-213.333333V376.746667a128.042667 128.042667 0 1 0-85.333333 0V768c0 71.850667-49.109333 128-106.666667 128S554.666667 839.850667 554.666667 768V256c0-116.650667-84.608-213.333333-192-213.333333S170.666667 139.349333 170.666667 256v391.253333zM768 256a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 0 1-85.333333 0zM213.333333 810.666667a42.666667 42.666667 0 1 1 0-85.333334 42.666667 42.666667 0 0 1 0 85.333334z",fill:o.color,"p-id":"39967"},null,8,D8)]))}}),B8={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Y8=["fill"],fa=I({props:{color:{type:String,default:"#0a0a0a"}},setup(o){return(n,a)=>(r(),s("svg",B8,[t("path",{d:"M680.64 960a61.184 61.184 0 0 1-44.864-19.072c-14.72-16.192-61.568-58.24-99.84-58.24-38.016 0-85.504 42.24-99.2 57.088a61.184 61.184 0 0 1-67.328 14.08l-1.28-0.448-116.352-65.088-1.152-0.832a55.872 55.872 0 0 1-18.752-67.456c0.064-0.192 10.752-24.768 10.752-47.232a123.52 123.52 0 0 0-123.392-123.328h-4.864c-19.52 0-35.392-17.28-40.448-44.096C73.6 603.2 64 552.384 64 512.384c0-40.064 9.536-90.88 9.92-92.992 5.12-27.136 21.376-44.544 41.152-44.096h4.16A123.52 123.52 0 0 0 242.56 251.904c0-22.4-10.688-46.976-10.816-47.232a55.68 55.68 0 0 1 18.944-67.392l1.216-0.832L374.72 68.992l1.28-0.576a62.336 62.336 0 0 1 67.2 13.888c14.528 15.296 60.48 54.848 97.664 54.848 36.8 0 82.496-38.784 96.96-53.76a62.336 62.336 0 0 1 67.264-13.44l1.28 0.64 118.592 65.92 1.152 0.768a55.808 55.808 0 0 1 18.816 67.456c-0.064 0.192-10.752 24.768-10.752 47.168a123.52 123.52 0 0 0 123.392 123.392h4.096c19.84-0.448 36.096 16.96 41.216 44.096 0.384 2.112 9.92 52.928 9.92 92.992 0 40-9.536 90.88-9.92 92.992-5.12 27.136-21.376 44.48-41.216 44.096h-4.096A123.52 123.52 0 0 0 834.176 772.8c0 22.4 10.688 47.04 10.752 47.232a55.808 55.808 0 0 1-18.816 67.456l-1.216 0.832-120.64 66.624-1.28 0.576a56.32 56.32 0 0 1-22.4 4.48z m-3.648-56.832a7.68 7.68 0 0 0 3.84 0.96l112.704-62.336c-2.688-6.272-15.168-36.992-15.168-68.928a179.456 179.456 0 0 1 169.856-179.008c1.344-7.552 8.768-49.792 8.768-81.472 0-31.68-7.424-73.92-8.768-81.472a179.456 179.456 0 0 1-169.856-179.008c0-32 12.48-62.72 15.168-68.992L682.688 121.28h-0.448c-1.92 0-3.648 0.64-4.288 1.088-1.856 1.92-17.92 18.24-40.96 34.432-34.24 24.064-66.56 36.224-96.064 36.224-29.888 0-62.464-12.416-96.832-36.928a313.792 313.792 0 0 1-41.216-35.072 8.832 8.832 0 0 0-4.736-1.152l-114.816 63.104c2.752 6.4 15.168 36.992 15.168 68.928A179.456 179.456 0 0 1 128.64 430.912c-1.344 7.552-8.768 49.792-8.768 81.472 0 31.68 7.424 73.92 8.768 81.408A179.456 179.456 0 0 1 298.496 772.8c0 32.128-12.544 62.912-15.232 69.12L392 902.72a7.68 7.68 0 0 0 3.84-0.896c2.048-2.24 18.304-19.456 41.6-36.608 34.944-25.536 68.032-38.464 98.56-38.464 30.72 0 64.064 13.184 99.2 39.232 23.488 17.472 39.744 34.944 41.792 37.184zM536.32 676.032a164.48 164.48 0 0 1-164.288-164.288A164.48 164.48 0 0 1 536.32 347.52a164.48 164.48 0 0 1 164.352 164.288A164.48 164.48 0 0 1 536.32 676.096z m0-272.64c-59.776 0-108.352 48.64-108.352 108.352 0 59.776 48.64 108.416 108.352 108.416 59.84 0 108.416-48.64 108.416-108.416 0-59.776-48.64-108.416-108.416-108.416z",fill:o.color,"p-id":"4508"},null,8,Y8)]))}}),A8=["value","checked","onChange"],S8={class:"content"},z8=["onMouseenter"],P8={class:"name"},T8={key:0,class:"speed",style:{background:"#f3f4f6",color:"#4a5565"}},I8={style:{display:"flex","align-items":"center"}},M8={key:0,class:"status"},L8={key:1,class:"status"},O8={key:2,class:"speed",style:{"margin-left":"6px"}},N8=I({setup(o){const{$gettext:n}=J(),a=Pe(),l=E(!1),u=ra(),d=gt({portList:[],load:!1}),c=()=>{a.push("/interfaceconfig")},k=(h,_)=>{localStorage.setItem(h,JSON.stringify(_))},g=h=>{const _=localStorage.getItem(h);try{return _?JSON.parse(_):[]}catch(x){return[]}},p="checkedPorts",m=E(g(p)),v=E([]),b=()=>{(d.load&&document.hidden?Promise.resolve():G.Network.PortList.GET().then(h=>{if(h!=null&&h.data){const{result:_}=h==null?void 0:h.data;_&&(d.portList=_.ports||[],v.value=_.ports||[])}})).finally(()=>{d.load=!0,setTimeout(b,1e4)})};b(),$t(m,h=>{v.value=d.portList.filter(_=>h.includes(_.name)),console.log(h,"newVal"),k(p,h)});const y=(h,_)=>{_.target.checked?m.value.includes(h)||(m.value=[...m.value,h]):m.value.length>1?m.value=m.value.filter(x=>x!==h):($.Warning(n("\u81F3\u5C11\u4FDD\u7559\u4E00\u4E2A\u7F51\u7EDC\u63A5\u53E3\uFF01")),_.target.checked=!0)},f=E(null),F=(h,_)=>{u.portitemStyle.show=!0;const x=_==null?void 0:_.target;if(x){const{left:C,top:S}=x.getBoundingClientRect();u.portitemStyle.left=C,u.portitemStyle.top=S}u.portitemStyle.portitem=h},w=()=>{u.portitemStyle.show=!1};return(h,_)=>(r(),Z(Wt,{title:e(n)("\u7F51\u7EDC\u63A5\u53E3\u72B6\u6001"),showSettings:!0,"is-settings-menu-open":l.value,"onUpdate:isSettingsMenuOpen":_[0]||(_[0]=x=>l.value=x)},{icon:V(()=>[Y(Ca,{color:"#0a0a0a",class:"icon interfaceIcon"})]),settings:V(()=>[t("div",{class:"btn_settings",onClick:c},[Y(fa,{color:"#0a0a0a",class:"icon1 interfaceIcon",style:{"margin-right":"6px"}}),t("span",null,i(e(n)("\u914D\u7F6E\u7F51\u7EDC\u63A5\u53E3")),1)])]),"settings-menu":V(()=>[t("div",null,[(r(!0),s(U,null,tt(e(d).portList,x=>(r(),s("div",{key:x.name,class:"row"},[t("input",{type:"checkbox",value:x.name,checked:m.value.includes(x.name),onChange:C=>y(x.name,C)},null,40,A8),t("span",null,i(x.name),1)]))),128))])]),default:V(()=>[t("div",S8,[e(d).load?(r(!0),s(U,{key:0},tt(e(d).portList,x=>(r(),s("div",{class:"item",ref_for:!0,ref_key:"el",ref:f,onMouseenter:C=>F(x,C),onMouseleave:w},[t("div",{class:"icon_box",style:ht({backgroundColor:x.linkState=="DOWN"?"#f3f4f6":"#dbfce7"})},[Y(Ca,{color:x.linkState=="DOWN"?"#99a1af":"#00a63e",class:"icon2"},null,8,["color"])],4),t("div",null,[t("div",P8,[dt(i(x.name)+" "+i(x.interfaceNames?`(${x.interfaceNames.join(",").toLocaleUpperCase()})`:""),1),x.linkState=="DOWN"?(r(),s("div",T8,i(e(n)("\u5DF2\u65AD\u5F00")),1)):D("",!0)]),t("div",I8,[x.linkState=="DOWN"?(r(),s("div",M8,i(e(n)("\u672A\u8FDE\u63A5")),1)):(r(),s("div",L8,i(e(n)("\u5DF2\u8FDE\u63A5")),1)),x.linkSpeed?(r(),s("div",O8,i(x.linkSpeed),1)):D("",!0)])])],40,z8))),256)):D("",!0)])]),_:1},8,["title","is-settings-menu-open"]))}});var Da=N(N8,[["__scopeId","data-v-3ebe4ebd"]]);const V8={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none",width:"32",height:"32"},G8=["fill"],j8=["fill"],U8=["fill"],q8=["fill"],R8=I({props:{color:{type:String,default:"#ffffff"}},setup(o){return(n,a)=>(r(),s("svg",V8,[t("path",{d:"M384 480 96 480C44.8 480 0 435.2 0 384L0 96C0 44.8 44.8 0 96 0L384 0c51.2 0 96 44.8 96 96L480 384C480 435.2 435.2 480 384 480z",fill:o.color,"p-id":"6495"},null,8,G8),t("path",{d:"M384 1024 96 1024C44.8 1024 0 979.2 0 928L0 640c0-51.2 44.8-96 96-96L384 544c51.2 0 96 44.8 96 96l0 281.6C480 979.2 435.2 1024 384 1024z",fill:o.color,"p-id":"6496"},null,8,j8),t("path",{d:"M787.2 1024 787.2 1024c-134.4 0-243.2-108.8-243.2-236.8l0 0c0-134.4 108.8-236.8 236.8-236.8l0 0c134.4 0 236.8 108.8 236.8 236.8l0 0C1024 915.2 915.2 1024 787.2 1024z",fill:o.color,"p-id":"6497"},null,8,U8),t("path",{d:"M928 480 640 480C588.8 480 544 435.2 544 384L544 96C544 44.8 588.8 0 640 0l281.6 0C979.2 0 1024 44.8 1024 96L1024 384C1024 435.2 979.2 480 928 480z",fill:o.color,"p-id":"6498"},null,8,q8)]))}}),W8={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},H8=["fill"],J8=["fill"],Z8=["fill"],K8=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",W8,[t("path",{d:"M123.92 555.9a32 32 0 0 1-14.82-60.38l719.19-374.9a32 32 0 0 1 29.59 56.76l-719.2 374.89a31.87 31.87 0 0 1-14.76 3.63z",fill:o.color,"p-id":"5084"},null,8,H8),t("path",{d:"M608.6 957.7a32 32 0 0 1-30.6-41.27l234.64-776.34a32 32 0 0 1 61.26 18.52L639.22 935a32 32 0 0 1-30.62 22.7zM505.92 580.44c-0.68 0-1.36 0-2.05-0.07l-381.46-24.12a32 32 0 1 1 4-63.88l381.5 24.13a32 32 0 0 1-2 63.94z",fill:o.color,"p-id":"5085"},null,8,J8),t("path",{d:"M608.14 957.32a32 32 0 0 1-30.87-23.63L475 556.82a32 32 0 1 1 61.77-16.76L639 916.93a32 32 0 0 1-22.51 39.26 31.61 31.61 0 0 1-8.35 1.13z",fill:o.color,"p-id":"5086"},null,8,Z8)]))}}),Q8={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},X8=["fill"],t4=["fill"],e4=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",Q8,[t("path",{d:"M748 469.97l-283.81 248.1c-3.96 1.98-5.94 5.94-9.9 9.9-17.82 29.71-9.9 67.34 19.8 85.16 29.71 15.84 65.35 5.94 83.18-21.79L757.9 477.89c1.98-5.95-3.96-11.88-9.9-7.92z","p-id":"9627",fill:o.color},null,8,X8),t("path",{d:"M512 181.96c-247.23 0-448.35 201.13-448.35 448.34 0 63.85 13.31 125.74 39.59 183.94 10.72 23.74 38.61 34.37 62.41 23.59 23.74-10.72 34.31-38.67 23.59-62.41C168.5 729.5 158 680.67 158 630.3c0-195.18 158.8-353.99 354-353.99 195.18 0 354 158.8 354 353.99 0 50.37-10.5 99.2-31.24 145.12-10.72 23.74-0.15 51.69 23.59 62.41 6.3 2.86 12.9 4.18 19.38 4.18 17.97 0 35.17-10.32 43.03-27.76 26.26-58.2 39.59-120.09 39.59-183.94 0-247.23-201.14-448.35-448.35-448.35z","p-id":"9628",fill:o.color},null,8,t4)]))}}),a4={width:"32",height:"32",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},o4=["fill"],n4=["fill"],i4=["fill"],r4=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",a4,[t("path",{d:"M880.213333 395.093333a31.786667 31.786667 0 0 1-26.88-15.573333 385.706667 385.706667 0 0 0-91.52-104.32 32.426667 32.426667 0 0 1-5.12-45.013333 32 32 0 0 1 45.013334-5.12 449.92 449.92 0 0 1 106.666666 121.6A31.786667 31.786667 0 0 1 896 390.4a30.293333 30.293333 0 0 1-15.786667 4.693333zM165.12 395.093333A30.293333 30.293333 0 0 1 149.333333 390.4a31.786667 31.786667 0 0 1-11.093333-43.733333A450.56 450.56 0 0 1 522.666667 128a32 32 0 0 1 0 64A386.56 386.56 0 0 0 192 379.52a31.786667 31.786667 0 0 1-26.88 15.573333z","p-id":"17913",fill:o.color},null,8,o4),t("path",{d:"M565.333333 341.333333a32 32 0 0 1 0-64A101.76 101.76 0 0 0 661.333333 170.666667a101.76 101.76 0 0 0-96-106.666667 32 32 0 0 1 0-64A165.76 165.76 0 0 1 725.333333 170.666667a165.76 165.76 0 0 1-160 170.666666zM522.666667 1024C362.666667 1024 220.8 936.106667 139.946667 787.84 61.013333 776.746667 0 700.373333 0 608 0 507.946667 71.68 426.666667 160 426.666667a32 32 0 0 1 0 64C106.666667 490.666667 64 543.36 64 608S106.666667 725.333333 160 725.333333a31.786667 31.786667 0 0 1 28.586667 17.706667C256 878.933333 381.653333 960 522.666667 960a384 384 0 0 0 354.56-236.373333 31.146667 31.146667 0 0 1 14.506666-16 106.666667 106.666667 0 0 0 57.6-99.626667c0-64-42.666667-117.333333-96-117.333333a32 32 0 0 1 0-64c88.32 0 160 81.28 160 181.333333a170.666667 170.666667 0 0 1-81.706666 150.613333A448 448 0 0 1 522.666667 1024z","p-id":"17914",fill:o.color},null,8,n4),t("path",{d:"M394.666667 640a32 32 0 0 1-32-32v-42.666667a32 32 0 0 1 64 0v42.666667a32 32 0 0 1-32 32zM629.333333 640a32 32 0 0 1-32-32v-42.666667a32 32 0 0 1 64 0v42.666667a32 32 0 0 1-32 32zM512 822.186667A131.2 131.2 0 0 1 391.466667 746.666667a32 32 0 1 1 58.24-26.453334 70.186667 70.186667 0 0 0 124.586666 0A32 32 0 1 1 632.533333 746.666667 131.2 131.2 0 0 1 512 822.186667z","p-id":"17915",fill:o.color},null,8,i4)]))}}),s4={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},d4=["fill"],l4=["fill"],u4=I({props:{color:{type:String,default:"#2c2c2c"}},setup(o){return(n,a)=>(r(),s("svg",s4,[t("path",{d:"M771.328 320.896H258.986667a64 64 0 0 0-63.701334 57.856l-41.386666 427.178667a64 64 0 0 0 57.472 69.888l5.12 0.256h590.592a64 64 0 0 0 64-64l-0.170667-4.394667-35.797333-428.117333a64 64 0 0 0-63.786667-58.666667z m-512.341333 42.666667h512.341333a21.333333 21.333333 0 0 1 21.290667 19.584l35.712 427.178666 0.085333 2.688c0 10.88-9.557333 20.437333-21.333333 20.437334H217.557333l-3.072-0.170667a21.162667 21.162667 0 0 1-18.176-23.210667l41.472-427.221333a21.333333 21.333333 0 0 1 21.205334-19.285333z",fill:o.color,"p-id":"8134"},null,8,d4),t("path",{d:"M685.013333 429.312a21.333333 21.333333 0 0 1 21.333334 21.333333 194.346667 194.346667 0 1 1-388.693334 0 21.333333 21.333333 0 1 1 42.666667 0 151.68 151.68 0 0 0 303.36 0 21.333333 21.333333 0 0 1 21.333333-21.333333zM512 147.882667a194.346667 194.346667 0 0 1 194.346667 194.346666 21.333333 21.333333 0 1 1-42.666667 0 151.68 151.68 0 1 0-303.36 0 21.333333 21.333333 0 1 1-42.666667 0A194.346667 194.346667 0 0 1 512 147.882667z",fill:o.color,"p-id":"8135"},null,8,l4)]))}}),c4={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},p4=["fill"],f4=I({props:{color:{type:String,default:"#333333"}},setup(o){return(n,a)=>(r(),s("svg",c4,[t("path",{d:"M353.323071 246.407016L620.37222 510.637979l-265.320785 268.146133c-11.776208 11.775184-11.73425201 30.908964 0.091074 42.73429l0.001023 0c11.825326 11.82635 30.958082 11.867282 42.72815-2.930749L680.899758 535.559579c3.817955-4.273327 8.205892-9.321296 8.933463-12.045337 4.470825-11.112082 2.232854-24.76503301-6.710842-35.987632l-286.98213-286.98213c-11.875468-8.847505-31.096229-8.893554-42.922578 2.932796C341.393367 215.303624 341.439416 234.523361 353.323071 246.407016z","p-id":"5051",fill:o.color},null,8,p4)]))}}),m4={class:"header"},g4={class:"icon-wrapper"},v4={class:"content"},b4={class:"title"},h4={class:"subtitle"},_4={class:"footer"},x4={key:1,class:"extra"},w4={key:2,class:"extra badge"},k4={class:"extra_num"},y4={key:3,class:"badge"},F4=I({props:{card:{type:Object,required:!0}},setup(o){const{$gettext:n}=J(),a={navigation:{component:K8,props:{color:"#ffffff"}},wifi:{component:ze,props:{color:"#ffffff"}},topology:{component:pa,props:{color:"#ffffff"}},speed:{component:e4,props:{color:"#ffffff"}},baby:{component:r4,props:{color:"#ffffff"}},appStore:{component:u4,props:{color:"#ffffff"}}};return(l,u)=>(r(),s("div",{class:lt(["feature-card",o.card.color]),onClick:u[0]||(u[0]=d=>l.$emit("click",o.card))},[t("div",null,[t("div",m4,[t("div",g4,[Yt(l.$slots,"icon",{},()=>{var d;return[o.card.icon&&a[o.card.icon]?(r(),Z(oa((d=a[o.card.icon])==null?void 0:d.component),yo({key:0},a[o.card.icon].props,{class:"icon-svg"}),null,16)):D("",!0)]},!0)])]),t("div",v4,[t("div",b4,i(o.card.title),1),t("div",h4,i(o.card.subtitle),1)]),t("div",_4,[o.card.status?(r(),s("span",{key:0,class:lt(["status",{active:o.card.isActive}])},i(o.card.status),3)):D("",!0),o.card.extra?(r(),s("div",x4,i(o.card.extra),1)):D("",!0),o.card.num?(r(),s("div",w4,[t("span",k4,i(o.card.num),1),dt(" "+i(e(n)("\u53F0\u8BBE\u5907\u5728\u7EBF")),1)])):D("",!0),o.card.tag?(r(),s("span",y4,i(o.card.tag),1)):D("",!0)])]),Y(f4,{class:"right-arrow",color:"#99a1af"})],2))}});var E4=N(F4,[["__scopeId","data-v-58f520f0"]]);const $4={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},C4=["fill"],D4=["fill"],B4=["fill"],Y4=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",$4,[t("path",{d:"M298.894222 482.417778c-35.271111 0-65.649778 12.231111-90.624 36.636444-25.031111 24.462222-37.603556 54.158222-37.603555 88.746667v87.153778h60.359111V607.857778c0-18.318222 6.599111-33.848889 19.854222-46.762667a65.991111 65.991111 0 0 1 48.014222-19.456h426.382222c18.887111 0 34.759111 6.428444 48.014223 19.399111 13.312 13.027556 19.854222 28.444444 19.854222 46.819556v87.04h60.359111v-87.04c0-34.702222-12.572444-64.341333-37.546667-88.746667a125.098667 125.098667 0 0 0-90.680889-36.750222H298.894222z",fill:o.color,"p-id":"8894"},null,8,C4),t("path",{d:"M488.049778 334.734222h47.900444V512h-47.900444V334.734222z",fill:o.color,"p-id":"8895"},null,8,D4),t("path",{d:"M597.333333 142.222222v170.666667h-170.666666v-170.666667h170.666666z m-170.666666-56.888889a56.888889 56.888889 0 0 0-56.888889 56.888889v170.666667a56.888889 56.888889 0 0 0 56.888889 56.888889h170.666666a56.888889 56.888889 0 0 0 56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 0-56.888889-56.888889h-170.666666zM284.444444 711.111111H113.777778v170.666667h170.666666v-170.666667z m-170.666666-56.888889h170.666666a56.888889 56.888889 0 0 1 56.888889 56.888889v170.666667a56.888889 56.888889 0 0 1-56.888889 56.888889H113.777778a56.888889 56.888889 0 0 1-56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 1 56.888889-56.888889zM910.222222 711.111111v170.666667h-170.666666v-170.666667h170.666666z m-170.666666-56.888889a56.888889 56.888889 0 0 0-56.888889 56.888889v170.666667a56.888889 56.888889 0 0 0 56.888889 56.888889h170.666666a56.888889 56.888889 0 0 0 56.888889-56.888889v-170.666667a56.888889 56.888889 0 0 0-56.888889-56.888889h-170.666666z",fill:o.color,"p-id":"8896"},null,8,B4)]))}}),A4={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},S4=["fill"],z4=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",A4,[t("path",{d:"M853.333333 768a42.666667 42.666667 0 0 1 0 85.333333h-341.333333a42.666667 42.666667 0 0 1 0-85.333333h341.333333zM200.832 183.168L426.666667 409.002667l30.165333 30.165333a42.666667 42.666667 0 0 1 0 60.330667l-14.634667 14.634666-241.365333 241.365334a42.666667 42.666667 0 1 1-60.330667-60.330667l225.792-225.877333-225.792-225.792a42.666667 42.666667 0 0 1 60.330667-60.330667z",fill:o.color,"p-id":"5439"},null,8,S4)]))}}),P4={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},T4=["fill"],I4=["fill"],Ze=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",P4,[t("path",{d:"M531.216667 77.336366c0 0-8.147564-10.313903-16.938788-10.709923-8.791224-0.396019-18.070564 9.133008-18.070564 9.133008-96.577592 77.010955-246.112304 97.021707-345.075223 110.281709 0 0-14.838963 2.062985-22.257933 3.094478-11.189853 1.555425-21.184485 3.125177-27.569916 8.241708-6.385431 5.117554-5.999644 18.659989-5.999644 18.659989 0 476.176097 84.005252 627.530246 410.888138 736.639247 0 0 4.438079 1.619894 8.085142 1.373277 3.647063-0.042979 7.195889-1.980097 7.195889-1.980097 324.821947-108.462271 408.826176-259.857353 408.826176-736.033449 0 0-1.264806-13.920034-6.709819-18.659989-5.445012-4.739954-13.812587-6.433526-24.073278-7.864108-8.308223-1.157359-24.923646-3.473101-24.923646-3.473101C775.550465 172.782182 626.055662 152.771429 531.216667 77.336366zM486.388692 884.038318c-260.550131-96.030124-328.494593-228.237191-332.62875-628.806309-0.045025-4.400217 0.357134-6.599302 1.663896-8.667404 1.306762-2.068102 3.713578-2.836605 3.713578-2.836605 91.436502-12.233626 223.901443-29.972639 328.759629-91.828428 8.445346-4.982478 17.749246-11.634991 25.087375-11.634991 7.338129 0 15.890922 6.689353 24.289196 11.686157 103.57496 61.632709 234.845703 79.437214 327.058894 91.777263 0 0 4.41659 0.768503 5.910617 2.836605 1.494027 2.068102 2.324952 4.094248 2.309602 6.16542-2.819209 380.861264-55.186903 527.575744-329.520969 630.016881-9.733689 3.634784-19.105127 8.231475-27.533077 8.231475C507.070734 890.978381 495.039723 887.22694 486.388692 884.038318z",fill:o.color,"p-id":"5082"},null,8,T4),t("path",{d:"M763.882728 456.981942c-32.383548 146.597823-101.757568 233.810117-243.305375 299.834856-14.22191 1.440815-25.321712 13.450337-25.321712 28.051893 0 15.572674 12.624529 28.197202 28.197202 28.197202 4.321422 0 8.41567-0.972141 12.076036-2.709715l0.143263 0.393973c158.820192-71.15048 242.084571-167.561273 280.661168-345.308537 0.969071-2.781346 1.496074-5.7694 1.496074-8.881274 0-14.898315-12.07706-26.975375-26.975375-26.975375-14.898315 0-26.975375 12.07706-26.975375 26.975375C763.878634 456.701556 763.879658 456.841749 763.882728 456.981942z",fill:o.color,"p-id":"5083"},null,8,I4)]))}}),M4={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},L4=["fill"],O4=["fill"],Xa=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",M4,[t("path",{d:"M762 942H262c-71.68 0-130-58.32-130-130V212c0-71.68 58.32-130 130-130h350c16.56 0 30 13.43 30 30v151.56c0 38.59 31.41 70 70 70h150c16.56 0 30 13.43 30 30V812c0 71.68-58.32 130-130 130zM262 142c-38.59 0-70 31.41-70 70v600c0 38.59 31.41 70 70 70h500c38.59 0 70-31.41 70-70V393.57H712c-71.68 0-130-58.32-130-130V142H262z","p-id":"13142",fill:o.color},null,8,L4),t("path",{d:"M862 393.57H712c-71.68 0-130-58.32-130-130V112c0-12.15 7.32-23.11 18.55-27.73a29.938 29.938 0 0 1 32.71 6.59l250 251.56c8.55 8.59 11.07 21.47 6.43 32.67s-15.58 18.48-27.69 18.48zM642 184.75v78.82c0 38.59 31.41 70 70 70h77.89L642 184.75zM487 379.5H312c-16.57 0-30-13.43-30-30s13.43-30 30-30h175c16.57 0 30 13.43 30 30s-13.43 30-30 30zM712 542H312c-16.57 0-30-13.43-30-30s13.43-30 30-30h400c16.56 0 30 13.43 30 30s-13.44 30-30 30zM712 704.5H312c-16.57 0-30-13.44-30-30s13.43-30 30-30h400c16.56 0 30 13.44 30 30s-13.44 30-30 30z","p-id":"13143",fill:o.color},null,8,O4)]))}}),to=/\d+\.\d+\.\d+\.\d+/,N4=o=>to.test(o)&&ye.IPv4.isValid(o),qt=o=>{const n=ye.IPv4.parse(o).toByteArray();return n[0]<<24|n[1]<<16|n[2]<<8|n[3]},Ba=o=>ye.fromByteArray([o>>24&255,o>>16&255,o>>8&255,o&255]).toString(),V4=o=>{if(!to.test(o)||!ye.IPv4.isIPv4(o))return!1;let n=0,a=qt(o);for(let l=31;l>=0&&(a&1<{let u=qt(o)&qt(n),d=qt(a),c=qt(l),g=~qt(n);return du+1&&c{let a=qt(n),l=qt(o)&a,u=~a,d;return u>=105?(d=l|u-5,l=l|100):u>=3?(d=l|u-1,l=l|2):(l=l|1,d=l),[Ba(l),Ba(d)]},U4=o=>ye.IPv4.subnetMaskFromPrefixLength(o).toString();var Lt={isValidMask:V4,isValidIPv4:N4,isValidMaskRange:G4,calcMaskRange:j4,prefixToMask:U4};const ma=o=>(ut("data-v-22104807"),o=o(),ct(),o),q4=["onSubmit"],R4={class:"actioner-dns_header"},W4={class:"actioner-dns_body"},H4={class:"label-item"},J4={class:"label-item_key"},Z4={class:"label-item_value"},K4={class:"label-item"},Q4={class:"label-item_key"},X4={class:"label-item_value"},t7={key:0,class:"chose_dhcp"},e7={key:0,class:"dhcp_info"},a7={key:1,class:"dhcp_info"},o7={class:"label-item"},n7={class:"label-item_key"},i7={class:"label-item_value"},r7={class:"label-item"},s7={class:"label-item_key"},d7={class:"label-item_value"},l7={class:"actioner-dns_footer"},u7=["disabled"],c7={key:1,class:"actioner-dns"},p7={class:"actioner-dns_header"},f7={class:"actioner-dns_body"},m7={key:0,class:"setting_status"},g7=ma(()=>t("div",{class:"success_icon"},[t("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128"},[t("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063"})])],-1)),v7={class:"config-message"},b7=["href"],h7={key:1,class:"setting_status"},_7=ma(()=>t("div",{class:"success_icon"},[t("svg",{t:"1642063200324",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5898",width:"128",height:"128"},[t("path",{d:"M549.044706 512l166.189176-166.249412a26.383059 26.383059 0 0 0 0-36.98447 26.383059 26.383059 0 0 0-37.044706 0L512 475.015529l-166.249412-166.249411a26.383059 26.383059 0 0 0-36.98447 0 26.383059 26.383059 0 0 0 0 37.044706L475.015529 512l-166.249411 166.249412a26.383059 26.383059 0 0 0 0 36.98447 26.383059 26.383059 0 0 0 37.044706 0L512 548.984471l166.249412 166.249411a26.383059 26.383059 0 0 0 36.98447 0 26.383059 26.383059 0 0 0 0-37.044706L548.984471 512zM512 1024a512 512 0 1 1 0-1024 512 512 0 0 1 0 1024z",fill:"#E84335","p-id":"5899"})])],-1)),x7={class:"config-message"},w7={key:2,class:"setting_status"},k7=ma(()=>t("div",{class:"success_icon"},[t("svg",{width:"128px",height:"128px",viewBox:"0 0 128 128",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},[t("g",{id:"icon_yellow",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t("g",{id:"Icon/Warning"},[t("rect",{id:"\u77E9\u5F62",fill:"#000000","fill-rule":"nonzero",opacity:"0",x:"0",y:"0",width:"128",height:"128"}),t("path",{d:"M64,8 C33.075,8 8,33.075 8,64 C8,94.925 33.075,120 64,120 C94.925,120 120,94.925 120,64 C120,33.075 94.925,8 64,8 Z M60,37 C60,36.45 60.45,36 61,36 L67,36 C67.55,36 68,36.45 68,37 L68,71 C68,71.55 67.55,72 67,72 L61,72 C60.45,72 60,71.55 60,71 L60,37 Z M64,92 C60.6875,92 58,89.3125 58,86 C58,82.6875 60.6875,80 64,80 C67.3125,80 70,82.6875 70,86 C70,89.3125 67.3125,92 64,92 Z",id:"\u5F62\u72B6",fill:"#FAAD14"})])])])],-1)),y7={class:"config-message"},F7=I({props:{Close:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(0),d=E({lanIp:"",netMask:"255.255.255.0",enableDhcp:!1,dhcpStart:"",dhcpEnd:""});E("");const c=E(!1);E(!0),E(!1);const k=E(""),g=E(2),p=E(!1),m=E("timeout");let v=!0;(()=>{G.Guide.GetLan.GET().then(h=>{h.data.result&&(p.value=h.data.result.enableDhcp||!1,h.data.result.enableDhcp=!1,d.value=h.data.result,h.data.result.lanIp!==location.hostname&&(v=!1))})})();const y=()=>{const h=d.value;if(!Lt.isValidIPv4(h.lanIp)){$.Warning(a("IPv4\u5730\u5740\u683C\u5F0F\u9519\u8BEF"));return}if(!Lt.isValidMask(h.netMask)){$.Warning(a("IPv4\u5B50\u7F51\u63A9\u7801\u683C\u5F0F\u9519\u8BEF"));return}const _=Lt.calcMaskRange(h.lanIp,h.netMask);h.dhcpStart=_[0],h.dhcpEnd=_[1],d.value=h},f=()=>{const h=d.value;if(!Lt.isValidIPv4(h.lanIp)){$.Warning(a("IPv4\u5730\u5740\u683C\u5F0F\u9519\u8BEF"));return}if(!Lt.isValidMask(h.netMask)){$.Warning(a("IPv4\u5B50\u7F51\u63A9\u7801\u683C\u5F0F\u9519\u8BEF"));return}if(h.enableDhcp&&!(Lt.isValidIPv4(h.dhcpStart)&&Lt.isValidIPv4(h.dhcpEnd)&&Lt.isValidMaskRange(h.lanIp,h.netMask,h.dhcpStart,h.dhcpEnd))){$.Warning(a("DHCP\u7684IP\u6C60\u683C\u5F0F\u9519\u8BEF\u6216\u8D85\u51FA\u5B50\u7F51\u8303\u56F4"));return}const _=$.Loading(a("\u6B63\u5728\u914D\u7F6E\u2026\u8BF7\u7A0D\u7B49"),30);let x=0;const C=A=>{m.value=A,u.value=1,x=1,_.Close()},S=()=>{const A=new Date().getTime()+3e4,z=v?location.protocol+"//"+h.lanIp+(location.port?":"+location.port:""):location.origin,B=z+"/luci-static/resources/icons/loading.gif",H=()=>{x==0&&(new Date().getTime()>A?C("timeout"):window.setTimeout(q,2e3))},M=()=>{x==0&&(k.value=z+location.pathname,C("success"),window.setTimeout(()=>{g.value=1},1e3),window.setTimeout(()=>{location.href=k.value},2e3))},q=()=>{if(x!=0)return;console.log("check online ",B);const T=new Image;T.onload=M,T.onerror=H,T.src=B};window.setTimeout(q,5e3)};G.Guide.LanIp.POST(h).then(A=>{var z;if(A!=null&&A.data){if((A.data.success||0)==0)return;if((z=A.data)!=null&&z.error)throw A.data.error}throw a("\u672A\u77E5\u9519\u8BEF")}).catch(A=>{x==0&&(C("fail"),$.Error(A))}),S(),window.setTimeout(()=>{x==0&&C("timeout")},3e4)},F=h=>{h.preventDefault(),n.Close&&n.Close()},w=h=>{location.reload()};return(h,_)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[u.value==0?(r(),s("form",{key:0,class:"actioner-dns",onSubmit:ft(f,["prevent"])},[t("div",R4,[t("span",null,i(e(a)("\u5185\u7F51\u914D\u7F6E")),1)]),t("div",W4,[t("div",H4,[t("div",J4,[t("span",null,i(e(a)("IPv4\u5730\u5740")),1)]),t("div",Z4,[O(t("input",{type:"text",placeholder:"192.168.100.1",required:"","onUpdate:modelValue":_[0]||(_[0]=x=>d.value.lanIp=x),onChange:y},null,544),[[at,d.value.lanIp,void 0,{trim:!0}]])])]),t("div",K4,[t("div",Q4,[t("span",null,i(e(a)("IPv4\u5B50\u7F51\u63A9\u7801")),1)]),t("div",X4,[O(t("input",{type:"text",placeholder:"255.255.255.0",required:"","onUpdate:modelValue":_[1]||(_[1]=x=>d.value.netMask=x),onChange:y},null,544),[[at,d.value.netMask,void 0,{trim:!0}]])])]),p.value?(r(),s("div",t7,[Y(qa,{modelValue:d.value.enableDhcp,"onUpdate:modelValue":_[2]||(_[2]=x=>d.value.enableDhcp=x)},{default:V(()=>[d.value.enableDhcp?(r(),s("span",e7,i(e(a)("\u4FEE\u6539DHCP\u670D\u52A1")),1)):(r(),s("span",a7,i(e(a)("\u4FDD\u6301DHCP\u670D\u52A1\u8BBE\u7F6E")),1))]),_:1},8,["modelValue"])])):D("",!0),d.value.enableDhcp?(r(),s(U,{key:1},[t("div",o7,[t("div",n7,[t("span",null,i(e(a)("IP\u6C60\u8D77\u59CB\u5730\u5740")),1)]),t("div",i7,[O(t("input",{type:"text",placeholder:"192.168.100.100",required:"","onUpdate:modelValue":_[3]||(_[3]=x=>d.value.dhcpStart=x)},null,512),[[at,d.value.dhcpStart,void 0,{trim:!0}]])])]),t("div",r7,[t("div",s7,[t("span",null,i(e(a)("IP\u6C60\u7ED3\u675F\u5730\u5740")),1)]),t("div",d7,[O(t("input",{type:"text",placeholder:"192.168.100.100",required:"","onUpdate:modelValue":_[4]||(_[4]=x=>d.value.dhcpEnd=x)},null,512),[[at,d.value.dhcpEnd,void 0,{trim:!0}]])])])],64)):D("",!0)]),t("div",l7,[t("button",{class:"cbi-button cbi-button-apply app-btn",disabled:c.value},i(e(a)("\u786E\u8BA4")),9,u7),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:F},i(e(a)("\u53D6\u6D88")),1)])],40,q4)):u.value==1?(r(),s("div",c7,[t("div",p7,[t("span",null,i(e(a)("\u66F4\u6362\u914D\u7F6E")),1)]),t("div",f7,[m.value=="success"?(r(),s("div",m7,[g7,t("div",v7,i(e(a)("\u914D\u7F6E\u6210\u529F")),1),t("a",{href:k.value,class:"NewAdress"},i(e(a)("%{ countdown }s\u540E \u8DF3\u8F6C\u65B0\u5730\u5740",{countdown:""+g.value})),9,b7)])):m.value=="fail"?(r(),s("div",h7,[_7,t("div",x7,i(e(a)("\u914D\u7F6E\u5931\u8D25")),1),t("p",null,i(e(a)("\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u914D\u7F6E")),1),t("button",{class:"cbi-button cbi-button-apply app-btn",onClick:w},i(e(a)("\u6211\u77E5\u9053\u4E86")),1)])):m.value=="timeout"?(r(),s("div",w7,[k7,t("div",y7,i(e(a)("\u914D\u7F6E\u8D85\u65F6")),1),t("p",null,i(e(a)("\u8DEF\u7531\u5668 IP \u53EF\u80FD\u5DF2\u7ECF\u4FEE\u6539\u6210\u529F\u3002\u82E5\u5237\u65B0\u9875\u9762\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5\u8DEF\u7531\u5668\uFF0C\u5426\u5219\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u914D\u7F6E\u3002")),1),t("button",{class:"cbi-button cbi-button-apply app-btn",onClick:w},i(e(a)("\u5237\u65B0\u9875\u9762")),1)])):D("",!0)])])):D("",!0)]),_:1},8,["Close"]))}});var E7=N(F7,[["__scopeId","data-v-22104807"]]);const $7=()=>{const o=document.createElement("div");document.body.appendChild(o);const n=xt(E7,{Close:()=>{a()}});n.mount(o);const a=()=>{n.unmount(),o.remove()};return{Close:a}},C7={key:0,class:"actioner-dns"},D7={class:"actioner-dns_header"},B7={class:"actioner-dns_body"},Y7={class:"sandbox_info"},A7={key:0,class:"disk_loading_icon"},S7={class:"disk_loading_info"},z7={key:1,class:"disk_tips"},P7={class:"label-item"},T7={class:"label-item_key"},I7={class:"label-item_value"},M7={value:""},L7=["value"],O7={class:"label-item"},N7={class:"label-item_key"},V7={class:"label-item_value"},G7={selected:"true",value:""},j7=["value","disabled"],U7={class:"sandbox_tips"},q7={class:"sandbox_info timeout"},R7={class:"sandbox_roboot_tips"},W7={class:"sandbox_roboot_refresh"},H7={key:0,class:"actioner-dns_footer"},J7=["disabled"],Z7={key:1,class:"actioner-tips"},K7={class:"actioner-tips_header"},Q7={class:"actioner-tips_body"},X7={class:"sandbox_info"},tp={class:"actioner-tips_footer"},ep={key:2,class:"actioner-tips"},ap={class:"actioner-tips_header"},op={class:"actioner-tips_body"},np={class:"sandbox_info"},ip={class:"actioner-tips_footer"},rp=I({props:{Close:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(0);E("disk");const d=E(""),c=E(3),k=E(""),g=E([]),p=E(""),m=E(null);(()=>{G.Nas.SandboxDisks.GET().then(x=>{var C;if(x!=null&&x.data&&(C=x.data)!=null&&C.result){m.value=x.data.result;return}throw a("\u52A0\u8F7D\u78C1\u76D8\u4FE1\u606F\u5931\u8D25")}).catch(x=>{d.value=x,u.value=3})})();const b=()=>G.System.Reboot.POST().then(x=>{var C;if(!(x!=null&&x.data&&(((C=x==null?void 0:x.data)==null?void 0:C.success)||0)==0))throw a("\u672A\u77E5\u9519\u8BEF")}),y=x=>{var C,S;p.value="",g.value=k.value&&((S=(C=m.value)==null?void 0:C.disks.find(A=>A.path==k.value))==null?void 0:S.childrens)||[]},f=()=>{c.value>0&&(c.value-=1,window.setTimeout(f,1e3))},F=x=>{x.preventDefault(),n.Close&&n.Close()},w=()=>{new Promise((x,C)=>{const S="/luci-static/resources/icons/loading.gif",A=()=>{window.setTimeout(z,2e3)},z=()=>{const B=new Image;B.onload=x,B.onerror=A,B.src=S};window.setTimeout(z,1e4)}).then(()=>{window.setTimeout(()=>{location.reload()},2e3)})},h=x=>{const C=$.Loading(a("\u914D\u7F6E\u6C99\u7BB1\u91CD\u542F\u4E2D..."));G.Nas.Sandbox.POST({path:p.value}).then(S=>{var A;if(S!=null&&S.data){if((S.data.success||0)==0)return u.value=2,window.setTimeout(f,1e3),b();if((A=S.data)!=null&&A.error)throw S.data.error}throw a("\u672A\u77E5\u9519\u8BEF")}).then(w).catch(S=>$.Warning(S)).finally(()=>C.Close())},_=()=>{u.value=0};return(x,C)=>{const S=_t("icon-loading");return r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[u.value==0||u.value==2?(r(),s("div",C7,[t("div",D7,[t("span",null,i(e(a)("\u6C99\u7BB1\u6A21\u5F0F\u914D\u7F6E\u5411\u5BFC")),1)]),t("div",B7,[t("p",Y7,i(e(a)("\u4E00\u4E2A\u7B80\u6613\u6C99\u7BB1\uFF0C\u65B9\u4FBF\u7528\u6765\u5B9E\u9A8C\u7CFB\u7EDF\u914D\u7F6E\u548C\u7A0B\u5E8F\uFF0C\u65B9\u4FBF\u5F00\u53D1\u672A\u5B8C\u6210\u7684\u8F6F\u4EF6\uFF0C\u4F46\u4E0D\u4FDD\u62A4 Docker \u548C\u786C\u76D8\u7684\u6570\u636E")),1),u.value==0?(r(),s(U,{key:0},[m.value?D("",!0):(r(),s("div",A7,[Y(S,{size:38,color:"currentColor"}),t("span",S7,i(e(a)("\u6B63\u5728\u52A0\u8F7D\u4E2D...")),1)])),m.value&&m.value.disks.length==0?(r(),s("div",z7,[Y(It),t("span",null,i(e(a)("\u68C0\u6D4B\u4E0D\u5230\u6302\u8F7D\u7684\u78C1\u76D8\u4FE1\u606F\uFF0C\u8BF7\u5148\u63D2\u4E0A\u78C1\u76D8\uFF0C\u5EFA\u8BAE\u4F7F\u7528U\u76D8\u6216\u8005\u79FB\u52A8\u786C\u76D8\uFF0C\u65B9\u4FBF\u88C5\u5378")),1)])):D("",!0),m.value&&m.value.disks.length>0?(r(),s(U,{key:2},[t("div",P7,[t("div",T7,[t("span",null,i(e(a)("\u76EE\u6807\u78C1\u76D8\uFF08\u5EFA\u8BAE\u9009\u62E9U\u76D8\u6216\u8005\u79FB\u52A8\u786C\u76D8\uFF0C\u65B9\u4FBF\u88C5\u5378\uFF09")),1)]),t("div",I7,[O(t("select",{name:"",id:"",onChange:y,"onUpdate:modelValue":C[0]||(C[0]=A=>k.value=A)},[t("option",M7,i(e(a)("\u8BF7\u9009\u62E9\u76EE\u6807\u78C1\u76D8")),1),(r(!0),s(U,null,tt(m.value.disks,(A,z)=>(r(),s("option",{value:A.path,key:z},i(A.venderModel)+"\uFF08"+i(A.size)+"\uFF09 ",9,L7))),128))],544),[[pt,k.value]])])]),t("div",O7,[t("div",N7,[t("span",null,i(e(a)("\u76EE\u6807\u5206\u533A\uFF08\u5206\u533A\u5927\u5C0F\u987B\u5927\u4E8E2G\uFF0C\u5C06\u6B64\u5206\u533A\u4F5C\u4E3A\u5916\u90E8 overlay \u4F7F\u7528\uFF09")),1)]),t("div",V7,[O(t("select",{name:"",id:"","onUpdate:modelValue":C[1]||(C[1]=A=>p.value=A)},[t("option",G7,i(e(a)("\u8BF7\u9009\u62E9\u76EE\u6807\u5206\u533A")),1),(r(!0),s(U,null,tt(g.value,(A,z)=>(r(),s("option",{value:A.path,key:z,disabled:A.sizeInt<(1<<30)*1||A.isSystemRoot},i(A.name)+"\uFF08"+i(A.filesystem||e(a)("\u672A\u683C\u5F0F\u5316"))+"\uFF09"+i(A.total),9,j7))),128))],512),[[pt,p.value]])])]),t("div",U7,[Y(It),t("span",null,i(e(a)("\u6B64\u64CD\u4F5C\u4F1A\u5C06\u4F1A\u5220\u9664\u8BE5\u5206\u533A\u5168\u90E8\u6570\u636E")),1)])],64)):D("",!0)],64)):D("",!0),u.value==2?(r(),s(U,{key:1},[t("p",q7,[dt(i(e(a)("\u5373\u5C06\u91CD\u542F\u8BBE\u5907"))+" ",1),t("span",null,"\uFF08"+i(c.value)+"s\uFF09",1)]),t("p",R7,[dt(i(e(a)("\u7B49\u5F85\u8BBE\u5907\u91CD\u542F\uFF0C\u91CD\u542F\u5B8C\u6210\u540E")),1),t("span",W7,i(e(a)("\u8BF7\u5237\u65B0\u754C\u9762")),1)])],64)):D("",!0)]),u.value==0?(r(),s("div",H7,[t("button",{class:"cbi-button cbi-button-apply app-btn",disabled:!p.value,onClick:C[2]||(C[2]=A=>u.value=1)},i(e(a)("\u5F00\u542F\u6C99\u7BB1")),9,J7),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:F},i(e(a)("\u53D6\u6D88")),1)])):D("",!0)])):D("",!0),u.value==1?(r(),s("div",Z7,[t("div",K7,[t("span",null,i(e(a)("\u6E29\u99A8\u63D0\u793A")),1)]),t("div",Q7,[t("p",X7,i(e(a)("\u6B64\u64CD\u4F5C\u4F1A\u5C06\u4F1A\u5220\u9664\u8BE5\u5206\u533A\u5168\u90E8\u6570\u636E\uFF0C\u5E76\u683C\u5F0F\u5316\u6210EXT4\uFF0C\u968F\u540E\u81EA\u52A8\u91CD\u542F\u8FDB\u5165\u6C99\u7BB1\u6A21\u5F0F\uFF0C\u662F\u5426\u7EE7\u7EED\uFF1F")),1)]),t("div",tp,[t("button",{class:"cbi-button cbi-button-apply app-btn",onClick:h},i(e(a)("\u7EE7\u7EED")),1),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:_},i(e(a)("\u53D6\u6D88")),1)])])):D("",!0),u.value==3?(r(),s("div",ep,[t("div",ap,[t("span",null,i(e(a)("\u9519\u8BEF")),1)]),t("div",op,[t("p",np,i(d.value),1)]),t("div",ip,[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:_},i(e(a)("\u53D6\u6D88")),1)])])):D("",!0)]),_:1},8,["Close"])}}});var sp=N(rp,[["__scopeId","data-v-58c55341"]]);const dp=()=>{const o=document.createElement("div");document.body.appendChild(o);const n=xt(sp,{Close:()=>{a()}});n.mount(o);const a=()=>{n.unmount(),o.remove()};return{Close:a}},lp={key:0,class:"actioner-dns"},up={class:"actioner-dns_header"},cp={class:"actioner-dns_body"},pp={class:"sandbox_info"},fp={class:"sandbox_environment"},mp={class:"sandbox_environment_info"},gp={class:"sandbox_environment_reboot"},vp=["innerHTML"],bp={class:"actioner-dns_footer"},hp=["disabled"],_p=["disabled"],xp=["disabled"],wp=I({props:{Close:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(0),d=E(!1),c=()=>{new Promise((v,b)=>{const y="/luci-static/resources/icons/loading.gif",f=()=>{window.setTimeout(F,2e3)},F=()=>{const w=new Image;w.onload=v,w.onerror=f,w.src=y};window.setTimeout(F,1e4)}).then(()=>{window.setTimeout(()=>{location.reload()},2e3)})},k=()=>{d.value=!0;const v=$.Loading(a("\u63D0\u4EA4\u4E2D..."));G.Nas.SandboxCommit.POST().then(b=>{var y,f;if(b!=null&&b.data)if((((y=b==null?void 0:b.data)==null?void 0:y.success)||0)==0){$.Loading(a("\u8BBE\u5907\u91CD\u542F\u4E2D..."));return}else(f=b==null?void 0:b.data)!=null&&f.error&&alert(b.data.error);throw a("\u672A\u77E5\u9519\u8BEF")}).then(c).catch(b=>{$.Error(b),d.value=!1}).finally(()=>v.Close())},g=()=>{d.value=!0;const v=$.Loading(a("\u91CD\u7F6E\u4E2D..."));G.Nas.SandboxReset.POST().then(b=>{var y,f;if(b!=null&&b.data)if((((y=b==null?void 0:b.data)==null?void 0:y.success)||0)==0){$.Loading(a("\u8BBE\u5907\u91CD\u542F\u4E2D... \u82E5\u9875\u9762\u957F\u65F6\u95F4\u672A\u5237\u65B0\u53EF\u80FD\u9700\u8981\u624B\u52A8\u586B\u5199\u5730\u5740"));return}else(f=b==null?void 0:b.data)!=null&&f.error&&alert(b.data.error);throw a("\u672A\u77E5\u9519\u8BEF")}).then(c).catch(b=>{$.Error(b),d.value=!1}).finally(()=>v.Close())},p=()=>{if(!confirm(a("\u786E\u5B9A\u653E\u5F03\u6C99\u7BB1\u4E2D\u7684\u6570\u636E\uFF1F\u518D\u6B21\u8FDB\u5165\u6C99\u7BB1\u9700\u8981\u91CD\u65B0\u683C\u5F0F\u5316\u76F8\u5E94\u78C1\u76D8\u5206\u533A")))return;d.value=!0;const v=$.Loading(a("\u6267\u884C\u4E2D..."));G.Nas.SandboxExit.POST().then(b=>{var y,f;if(b!=null&&b.data)if((((y=b==null?void 0:b.data)==null?void 0:y.success)||0)==0){$.Loading(a("\u8BBE\u5907\u91CD\u542F\u4E2D... \u82E5\u9875\u9762\u957F\u65F6\u95F4\u672A\u5237\u65B0\u53EF\u80FD\u9700\u8981\u624B\u52A8\u586B\u5199\u5730\u5740"));return}else(f=b==null?void 0:b.data)!=null&&f.error&&alert(b.data.error);throw a("\u672A\u77E5\u9519\u8BEF")}).then(c).catch(b=>{$.Error(b),d.value=!1}).finally(()=>v.Close())},m=v=>{v.preventDefault(),n.Close&&n.Close()};return(v,b)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[u.value==0?(r(),s("div",lp,[t("div",up,[t("span",null,i(e(a)("\u6C99\u7BB1\u6A21\u5F0F\u914D\u7F6E\u5411\u5BFC")),1)]),t("div",cp,[t("p",pp,i(e(a)("\u4E00\u4E2A\u7B80\u6613\u6C99\u7BB1\uFF0C\u65B9\u4FBF\u7528\u6765\u5B9E\u9A8C\u7CFB\u7EDF\u914D\u7F6E\u548C\u7A0B\u5E8F\uFF0C\u65B9\u4FBF\u5F00\u53D1\u672A\u5B8C\u6210\u7684\u8F6F\u4EF6\uFF0C\u4F46\u4E0D\u4FDD\u62A4 Docker \u548C\u786C\u76D8\u7684\u6570\u636E")),1),t("div",fp,[t("p",null,i(e(a)("\u5F53\u524D\u5904\u4E8E\u6C99\u7BB1\u73AF\u5883\uFF1A")),1),t("p",null,i(e(a)("1\u3001\u70B9\u51FB\u201C\u63D0\u4EA4\u201D\u53EF\u5C06\u53D8\u66F4\u5408\u5E76\u5230\u975E\u6C99\u7BB1\u73AF\u5883")),1),t("p",null,i(e(a)("2\u3001\u70B9\u51FB\u201C\u91CD\u7F6E\u201D\u53EF\u5C06\u6C99\u7BB1\u6062\u590D\u5230\u521D\u59CB\u72B6\u6001")),1),t("p",null,i(e(a)("3\u3001\u70B9\u51FB\u201C\u9000\u51FA\u201D\u53EF\u9000\u51FA\u6C99\u7BB1\u73AF\u5883\uFF0C\u5E76\u653E\u5F03\u6C99\u7BB1\u4E2D\u7684\u6570\u636E")),1)]),t("div",mp,[dt(i(e(a)("\u4EE5\u4E0A\u64CD\u4F5C\u90FD\u5C06\u91CD\u542F\u8BBE\u5907\uFF0C\u8BBE\u5907\u91CD\u542F\u5B8C\u6210\u540E\u4F1A\u81EA\u52A8\u5237\u65B0\u9875\u9762\u3002\u5982\u679C IP \u53D8\u5316\u53EF\u80FD\u9700\u8981")),1),t("span",gp,i(e(a)("\u624B\u52A8\u5728\u5730\u5740\u680F\u8F93\u5165\u5730\u5740")),1),t("p",{class:"sandbox_environment_tex",innerHTML:e(a)("\u5982\u9700\u4E34\u65F6\u9000\u51FA\u6C99\u7BB1\u73AF\u5883\uFF0C\u8BF7\u5C06\u8BBE\u5907\u5173\u673A\u540E\u62D4\u51FA\u76F8\u5173\u78C1\u76D8\uFF0C\u542F\u52A8\u524D\u63D2\u5165\u76F8\u5173\u78C1\u76D8\u53EF\u518D\u6B21\u8FDB\u5165\u6C99\u7BB1\u3002
\u6CE8\u610F\u4E34\u65F6\u9000\u51FA\u6C99\u7BB1\u73AF\u5883\u4EE5\u540E\u5347\u7EA7\u56FA\u4EF6\u4F1A\u5BFC\u81F4\u4E4B\u524D\u7684\u6C99\u7BB1\u6570\u636E\u65E0\u6548",{},!0)},null,8,vp)])]),t("div",bp,[t("button",{class:"cbi-button cbi-button-apply app-btn",onClick:k,disabled:d.value},i(e(a)("\u63D0\u4EA4")),9,hp),t("button",{class:"cbi-button cbi-button-apply app-btn",onClick:g,disabled:d.value},i(e(a)("\u91CD\u7F6E")),9,_p),t("button",{class:"cbi-button cbi-button-apply app-btn",onClick:p,disabled:d.value},i(e(a)("\u9000\u51FA")),9,xp),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:m},i(e(a)("\u53D6\u6D88")),1)])])):D("",!0)]),_:1},8,["Close"]))}});var kp=N(wp,[["__scopeId","data-v-9573dc70"]]);const yp=()=>{const o=document.createElement("div");document.body.appendChild(o);const n=xt(kp,{Close:()=>{a()}});n.mount(o);const a=()=>{n.unmount(),o.remove()};return{Close:a}},Fp={class:"item_container"},Ep=["onClick","title"],$p={class:"renew"},Cp={key:0},Dp={key:1,style:{display:"inline-block","margin-left":"4px"}},Bp={class:"app-update-button-menu"},Yp=["onClick"],Ap={class:"app-update-menu-item"},Sp={key:0,class:"app-update-menu-item-loading"},zp={class:"dns_txt"},Pp={key:0,style:{display:"inline-block","margin-left":"4px"}},Tp=I({setup(o){var S,A;const{$gettext:n}=J(),a=E(!0);(A=(S=window.quickstart_configs)==null?void 0:S.update)!=null&&A.disable&&(a.value=!1);const l=E(!1),u=E(a.value),d=E(!1),c=Le(),k=Fe(),g=Q(()=>k.status),p=E(),m=()=>{Ka()};$t(u,z=>{d.value=!0,G.System.AutoCheckUpdate.POST({enable:z}).catch(B=>{$.Warning(B)}).finally(()=>{d.value=!1})});const v=()=>{window.location.href="/cgi-bin/luci/admin/system/ota"},b=()=>{window.location.href="/cgi-bin/luci/admin/status/logs"},y=()=>{window.location.href="/cgi-bin/luci/admin/services/store/pages/maintance"},f=()=>{dp()},F=()=>{yp()},w=()=>{alert(n("\u8BE5\u56FA\u4EF6\u4E0D\u652F\u6301\u6C99\u7BB1\u6A21\u5F0F"))},h=()=>{$7()},_=()=>{Qa()},x=()=>{var z,B,H,M;window.open(`${(B=(z=window.quickstart_configs)==null?void 0:z.ttyd)!=null&&B.ssl?"https":"http"}://${window.location.hostname}:${((M=(H=window.quickstart_configs)==null?void 0:H.ttyd)==null?void 0:M.port)||7681}/`,"_blank")},C=()=>{l.value=!l.value};return a.value&&setTimeout(()=>{c.requestCheckUpdate()},1100),Qt("sandbox")&&G.Nas.GetSandbox.GET().then(B=>{var H,M,q;B!=null&&B.data&&((((H=B==null?void 0:B.data)==null?void 0:H.success)||0)==0?(M=B==null?void 0:B.data)!=null&&M.result&&(p.value=B.data.result):(q=B==null?void 0:B.data)!=null&&q.error&&alert(B.data.error))}).catch(B=>$.Warning(B)),(z,B)=>{var q,T,j,R,it,ot;const H=_t("icon-loading"),M=_t("switch-box");return r(),s("div",Fp,[t("div",{class:"item",style:{backgroundColor:"#f3f7fd"},onClick:h},[Y(Y4,{color:"#2b7fff",class:"icon"}),t("span",null,i(e(n)("\u5185\u7F51\u914D\u7F6E")),1)]),e(Qt)("ttyd")?(r(),s("div",{key:0,class:"item",style:{backgroundColor:"#f4fbf7"},onClick:x},[Y(z4,{color:"#00c850",class:"icon"}),t("span",null,i(e(n)("\u7EC8\u7AEF")),1)])):D("",!0),e(Qt)("ota")?(r(),s("div",{key:1,class:"item",style:{backgroundColor:"#f9f7fd"},onClick:v},[t("span",{class:"app-update-button-more",onClick:ft(C,["stop","prevent"]),title:e(n)("\u56FA\u4EF6\u66F4\u65B0\u9009\u9879")},[Y(Ee)],8,Ep),Y(Kt,{color:"#ad46ff",class:"icon"}),t("span",$p,[(q=e(c).checkUpdate)!=null&&q.needUpdate?(r(),s("i",Cp)):D("",!0),dt(" "+i(e(n)("\u56FA\u4EF6\u66F4\u65B0"))+" ",1),a.value&&e(c).checkUpdate==null?(r(),s("span",Dp,[Y(H,{size:"1em",color:"currentColor"})])):D("",!0)]),O(t("div",Bp,[t("div",{class:"menu_background",onClick:ft(C,["stop","prevent"])},null,8,Yp),t("ul",{onClick:B[1]||(B[1]=ft(()=>{},["stop"]))},[t("li",null,[Y(M,{modelValue:u.value,"onUpdate:modelValue":B[0]||(B[0]=bt=>u.value=bt)},{default:V(()=>[t("span",Ap,i(e(n)("\u81EA\u52A8\u68C0\u67E5\u66F4\u65B0")),1)]),_:1},8,["modelValue"]),d.value?(r(),s("span",Sp,[Y(H,{size:"1em",color:"currentColor"})])):D("",!0)])])],512),[[ee,l.value]])])):D("",!0),t("div",{class:lt(["item",{"disabled-style":!((T=e(g))!=null&&T.proto)}]),style:{backgroundColor:"#f1fbfd"},onClick:m},[Y(xe,{color:"#00b8db",class:"icon"}),t("span",zp,[dt(i(e(n)("DNS\u914D\u7F6E"))+" ",1),(j=e(g))!=null&&j.proto?D("",!0):(r(),s("span",Pp,[Y(H,{size:"1em",color:"currentColor"})]))])],2),t("div",{class:"item",style:{backgroundColor:"#fbf5fa"},onClick:_},[Y(Za,{color:"#f6339a",class:"icon"}),t("span",null,i(e(n)("\u8F6F\u4EF6\u6E90\u914D\u7F6E")),1)]),e(Qt)("sandbox")?(r(),s(U,{key:2},[((R=p.value)==null?void 0:R.status)=="unsupport"?(r(),s("div",{key:0,class:"item",style:{backgroundColor:"#f9fafb"},onClick:w},[Y(Ze,{color:"#cac9cd",class:"icon"}),t("span",null,i(e(n)("\u5F00\u542F\u6C99\u7BB1")),1)])):((it=p.value)==null?void 0:it.status)=="stopped"?(r(),s("div",{key:1,class:"item",style:{backgroundColor:"#fbf4f5"},onClick:f},[Y(Ze,{color:"#fb2c36",class:"icon"}),t("span",null,i(e(n)("\u5F00\u542F\u6C99\u7BB1")),1)])):((ot=p.value)==null?void 0:ot.status)=="running"?(r(),s("div",{key:2,class:"item",style:{backgroundColor:"#dae8fd"},onClick:F},[Y(Ze,{color:"#2b7fff",class:"icon"}),t("span",null,i(e(n)("\u6C99\u7BB1\u5DF2\u5F00\u542F")),1)])):D("",!0)],64)):D("",!0),t("div",{class:"item",style:{backgroundColor:"#fcf7f2"},onClick:b},[Y(Xa,{color:"#ff6900",class:"icon"}),t("span",null,i(e(n)("\u65E5\u5FD7\u67E5\u770B")),1)]),t("div",{class:"item",style:{backgroundColor:"#eff5ff"},onClick:y},[Y(fa,{color:"#553afe",class:"icon"}),t("span",null,i(e(n)("\u7CFB\u7EDF\u7EF4\u62A4")),1)])])}}});var Ip=N(Tp,[["__scopeId","data-v-6ac226af"]]);const Mp={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Lp=["fill"],Op=["fill"],Np=I({props:{color:{type:String,default:"#222222"}},setup(o){return(n,a)=>(r(),s("svg",Mp,[t("path",{d:"M746 112c82.84 0 150 67.16 150 150S828.84 412 746 412 596 344.84 596 262 663.16 112 746 112z m0 48C689.668 160 644 205.668 644 262S689.668 364 746 364 848 318.332 848 262 802.332 160 746 160zM746 612c82.84 0 150 67.16 150 150S828.84 912 746 912 596 844.84 596 762s67.16-150 150-150z m0 48c-56.332 0-102 45.668-102 102s45.668 102 102 102 102-45.668 102-102-45.668-102-102-102zM262 364c82.84 0 150 67.16 150 150S344.84 664 262 664 112 596.84 112 514 179.16 364 262 364z m0 48C205.668 412 160 457.668 160 514S205.668 616 262 616 364 570.332 364 514 318.332 412 262 412z",fill:o.color,"p-id":"5059"},null,8,Lp),t("path",{d:"M337.7 442.744l293.488-169.62 40.464 70.16-293.484 169.62zM387.708 526.728l277.02 160.12-40.468 70.156-277.02-160.12z",fill:o.color,"p-id":"5060"},null,8,Op)]))}}),Vp={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Gp=["fill"],eo=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",Vp,[t("path",{d:"M827.84 886.4H187.9184375c-32.2659375 0-53.76-21.51375-53.76-53.784375V714.28625a53.889375 53.889375 0 0 1 53.76-53.784375h639.9215625a53.8940625 53.8940625 0 0 1 53.76 53.784375v118.35375a53.8940625 53.8940625 0 0 1-53.76 53.76z m-5.375625-172.11375H187.9184375v118.35375h634.5309375V714.28625z m-570 32.664375a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.865-26.88z m78.3403125 0a26.88 26.88 0 1 1-26.60625 27.1678125 26.88 26.88 0 0 1 26.5875-27.16875z m78.6 0a26.88 26.88 0 1 1-26.60625 27.1678125 26.88 26.88 0 0 1 26.5875-27.16875zM827.215625 624.9490625H187.2846875c-32.2603125 0-53.76-21.51375-53.76-53.784375V452.8353125a53.8940625 53.8940625 0 0 1 53.76-53.784375H827.196875a53.8940625 53.8940625 0 0 1 53.76 53.784375v118.329375a53.8940625 53.8940625 0 0 1-53.76 53.784375z m-5.38125-172.11375H187.285625v118.329375H821.815625V452.8353125z m-569.994375 31.9921875a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.88-26.88z m77.889375 0a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.8565625-26.88z m76.963125-0.403125a26.88 26.88 0 1 1-26.60625 27.1678125 26.88 26.88 0 0 1 26.5875-27.163125z m419.7890625-120.744375H186.56c-32.2509375 0-53.76-21.5278125-53.76-53.7984375V191.5521875a53.8940625 53.8940625 0 0 1 53.76-53.784375h639.9215625a53.8940625 53.8940625 0 0 1 53.76 53.784375v118.329375a53.8940625 53.8940625 0 0 1-53.76 53.7984375z m-5.3615625-172.1278125H186.56v118.329375h634.56V191.5521875z m-570.0140625 32.2753125a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.88-26.88z m78.6046875 0a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.8753125-26.88z m78.6046875 0a26.88 26.88 0 1 1-26.88 26.88 26.88 26.88 0 0 1 26.8846875-26.88z",fill:o.color,"p-id":"19012"},null,8,Gp)]))}}),jp={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Up=["fill"],qp=I({props:{color:{type:String,default:"#155dfc"}},setup(o){return(n,a)=>(r(),s("svg",jp,[t("path",{d:"M716.8 750.933333c47.786667 0 95.573333-27.306667 119.466667-68.266666 23.893333-40.96 23.893333-95.573333 0-136.533334-23.893333-40.96-68.266667-68.266667-119.466667-68.266666-10.24 0-17.066667-3.413333-23.893333-10.24-6.826667-6.826667-10.24-13.653333-10.24-23.893334 0-95.573333-75.093333-170.666667-170.666667-170.666666s-170.666667 75.093333-170.666667 170.666666v6.826667c81.92 23.893333 136.533333 95.573333 136.533334 180.906667 0 13.653333-6.826667 23.893333-17.066667 30.72-10.24 6.826667-23.893333 6.826667-34.133333 0-10.24-6.826667-17.066667-17.066667-17.066667-30.72 0-64.853333-54.613333-119.466667-119.466667-119.466667S170.666667 566.613333 170.666667 631.466667 225.28 750.933333 290.133333 750.933333H716.8zM296.96 819.2c-102.4 3.413333-187.733333-75.093333-194.56-177.493333-3.413333-102.4 75.093333-191.146667 177.493333-194.56 0-126.293333 95.573333-228.693333 221.866667-238.933334 122.88-6.826667 232.106667 81.92 249.173333 208.213334 105.813333 17.066667 180.906667 112.64 170.666667 218.453333-10.24 102.4-98.986667 184.32-204.8 184.32H296.96z",fill:o.color,"p-id":"8044"},null,8,Up)]))}}),Rp={class:"app-container_samba"},Wp={key:0,class:"sambas-item"},Hp={class:"sambas-item_name"},Jp={class:"sambas-item_value"},Zp={class:"sambas-item"},Kp={class:"sambas-item_name tit"},Qp={class:"sambas-item_value tit"},Xp={class:"samba-item"},tf={class:"samba-item_name"},ef=["title"],af=["href"],of=I({props:{sambas:{type:Array}},setup(o){const{$gettext:n,$ngettext:a}=J(),l=window.location.hostname;return(u,d)=>{var c;return r(),s("ul",Rp,[o.sambas?(r(),s("li",Wp,[t("div",Hp,[t("span",null,i(e(n)("\u5F53\u524D\u72B6\u6001:")),1)]),t("div",Jp,[t("span",null,i((c=o.sambas)!=null&&c.length?e(n)("\u5DF2\u542F\u7528"):e(n)("\u672A\u542F\u7528")),1)])])):D("",!0),t("li",Zp,[t("div",Kp,[t("span",null,i(e(n)("\u5730\u5740")),1)]),t("div",Qp,[t("span",null,i(e(n)("\u76EE\u5F55")),1)])]),(r(!0),s(U,null,tt(o.sambas,k=>(r(),s("li",Xp,[t("div",tf,[t("span",null,"smb://"+i(e(l))+"/"+i(k.shareName),1)]),t("div",{class:"samba-item_value",title:k.path},[t("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+k.path},i(k.path),9,af)],8,ef)]))),256))])}}});var nf=N(of,[["__scopeId","data-v-d0b06580"]]);const rf={class:"webdav-item"},sf={class:"webdav-item_name"},df={class:"webdav-item_value"},lf={key:0,class:"webdav-item"},uf={class:"webdav-item_name"},cf={class:"webdav-item_value"},pf=["href"],ff={key:1,class:"webdav-item"},mf={class:"webdav-item_name"},gf={class:"webdav-item_value"},vf=["href"],bf={key:2,class:"webdav-item"},hf={class:"webdav-item_name"},_f={class:"webdav-item_value"},xf=I({props:{webdav:{type:Object}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=Q(()=>{var d;return`http://${location.hostname}:${(d=n.webdav)==null?void 0:d.port}`});return(d,c)=>{var k,g,p,m,v,b,y;return r(),s(U,null,[t("li",rf,[t("div",sf,[t("span",null,i(e(a)("\u5F53\u524D\u72B6\u6001:")),1)]),t("div",df,[t("span",null,i((k=o.webdav)!=null&&k.path?e(a)("\u5DF2\u542F\u7528"):e(a)("\u672A\u542F\u7528")),1)])]),(g=o.webdav)!=null&&g.path?(r(),s("li",lf,[t("div",uf,[t("span",null,i(e(a)("\u6302\u8F7D\u8DEF\u5F84:")),1)]),t("div",cf,[t("a",{target:"_blank",href:"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+((p=o.webdav)==null?void 0:p.path)},i((m=o.webdav)==null?void 0:m.path),9,pf)])])):D("",!0),(v=o.webdav)!=null&&v.port?(r(),s("li",ff,[t("div",mf,[t("span",null,i(e(a)("\u670D\u52A1\u8DEF\u5F84:")),1)]),t("div",gf,[t("a",{href:e(u),target:"_blank",rel:"noopener noreferrer"},i(e(u)),9,vf)])])):D("",!0),(b=o.webdav)!=null&&b.username?(r(),s("li",bf,[t("div",hf,[t("span",null,i(e(a)("\u8D26\u53F7:")),1)]),t("div",_f,[t("span",null,i((y=o.webdav)==null?void 0:y.username),1)])])):D("",!0)],64)}}});var wf=N(xf,[["__scopeId","data-v-31dcf6eb"]]);const kf={class:"app-container_linkease"},yf={class:"linkease-item"},Ff={class:"linkease-item_name"},Ef={class:"linkease-item_value"},$f={key:0,class:"configure"},Cf={key:0,class:"linkease-item"},Df={class:"linkease-item_name"},Bf={class:"linkease-item_value"},Yf=["href"],Af={href:"https://www.linkease.com",target:"_blank"},Sf=I({props:{linkease:{type:Object}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=Q(()=>{var c;return`http://${location.hostname}:${(c=n.linkease)==null?void 0:c.port}`}),d=()=>{Wa({setup:0})};return(c,k)=>{var g,p,m;return r(),s("ul",kf,[t("li",yf,[t("div",Ff,[t("span",null,i(e(a)("\u5F53\u524D\u72B6\u6001:")),1)]),t("div",Ef,[(g=o.linkease)!=null&&g.enabel?(r(),s("span",$f,i(e(a)("\u5DF2\u914D\u7F6E")),1)):(r(),s("span",{key:1,class:"configure enabel",onClick:k[0]||(k[0]=v=>d())},i(e(a)("\u672A\u914D\u7F6E")),1))])]),(p=o.linkease)!=null&&p.enabel?(r(),s(U,{key:0},[(m=o.linkease)!=null&&m.port?(r(),s("li",Cf,[t("div",Df,[t("span",null,i(e(a)("\u670D\u52A1\u5730\u5740:")),1)]),t("div",Bf,[t("a",{href:e(u),target:"_blank",rel:"noopener noreferrer"},i(e(u)),9,Yf)])])):D("",!0)],64)):D("",!0),t("div",null,[t("a",Af,i(e(a)("\u4E0B\u8F7D\u6613\u6709\u4E91\u5BA2\u6237\u7AEF\uFF0C\u968F\u65F6\u968F\u5730\u76F8\u518C\u5907\u4EFD\u3001\u8FDC\u7A0B\u8BBF\u95EE")),1)])])}}});var zf=N(Sf,[["__scopeId","data-v-132ef714"]]);const ao=o=>(ut("data-v-e1182f0e"),o=o(),ct(),o),Pf={href:"/cgi-bin/luci/admin/services/samba4"},Tf={class:"content"},If={class:"tab"},Mf={class:"title"},Lf={key:0},Of={key:1},Nf=ao(()=>t("div",{class:"title"},"SAMBA",-1)),Vf=ao(()=>t("div",{class:"title"},"WEBDAV",-1)),Gf=I({setup(o){const{$gettext:n}=J(),a=E(!1);E("linkease");const l=E(),u=tn(),d=E(!1);(()=>{G.Nas.Service.Status.GET().then(f=>{var F;if((F=f==null?void 0:f.data)!=null&&F.result){const w=f.data.result;l.value=w,b(),w.webdav&&(u.webdav=w.webdav)}})})();const k=()=>{Wa({setup:0})},g=()=>{a.value=!a.value},p=()=>{g(),zt.installAndGo("app-meta-gowebdav","GoWebDAV","/cgi-bin/luci/admin/nas/gowebdav")},m=E(0),v=E(!1),b=()=>{var w,h,_,x,C,S;if(v.value)return;const F=[Boolean((h=(w=l.value)==null?void 0:w.linkease)==null?void 0:h.enabel),Boolean((x=(_=l.value)==null?void 0:_.sambas)==null?void 0:x.length),Boolean((S=(C=l.value)==null?void 0:C.webdav)==null?void 0:S.path)].findIndex(Boolean);m.value=F===-1?0:F},y=f=>{m.value=f,v.value=!0};return(f,F)=>(r(),Z(Wt,{title:e(n)("\u5B58\u50A8\u670D\u52A1"),style:{width:"100%",height:"100%",display:"block"},"is-settings-menu-open":d.value,"onUpdate:isSettingsMenuOpen":F[4]||(F[4]=w=>d.value=w)},{icon:V(()=>[Y(Np,{color:"#4f39f6",class:"icon"})]),settings:V(()=>[t("div",{class:"btn_settings",onClick:k},[Y(fa,{color:"#0a0a0a",class:"icon1 settings-icon",style:{"margin-right":"6px"}}),t("span",null,i(e(n)("\u914D\u7F6E\u5B58\u50A8\u670D\u52A1")),1),t("div",{class:"rotation",onClick:F[0]||(F[0]=ft(w=>d.value=!d.value,["stop"]))},[Y(Ee,{class:"moreIcon"})])])]),"settings-menu":V(()=>[t("div",null,[t("a",Pf,i(e(n)("SAMBA\u9AD8\u7EA7\u914D\u7F6E")),1)]),t("div",null,[t("a",{onClick:p},i(e(n)("WebDAV\u9AD8\u7EA7\u914D\u7F6E")),1)])]),default:V(()=>{var w,h,_,x,C,S,A,z,B;return[t("div",Tf,[t("div",If,[t("div",{class:lt(["item cloud",{active:m.value==0}]),onClick:F[1]||(F[1]=H=>y(0))},[Y(qp,{color:"#155dfc",class:"icon2"}),t("div",Mf,i(e(n)("\u6613\u6709\u4E91")),1),(h=(w=l.value)==null?void 0:w.linkease)!=null&&h.enabel?(r(),s("span",Lf,i(e(n)("\u5DF2\u914D\u7F6E")),1)):(r(),s("span",Of,i(e(n)("\u672A\u914D\u7F6E")),1))],2),t("div",{class:lt(["item memory",{active:m.value==1}]),onClick:F[2]||(F[2]=H=>y(1))},[Y(eo,{color:"#0bab47",class:"icon2"}),Nf,t("span",null,i((x=(_=l.value)==null?void 0:_.sambas)!=null&&x.length?e(n)("\u5DF2\u542F\u7528"):e(n)("\u672A\u542F\u7528")),1)],2),t("div",{class:lt(["item network",{active:m.value==2}]),onClick:F[3]||(F[3]=H=>y(2))},[Y(xe,{color:"#9810fa",class:"icon2"}),Vf,t("span",null,i((S=(C=l.value)==null?void 0:C.webdav)!=null&&S.path?e(n)("\u5DF2\u542F\u7528"):e(n)("\u672A\u542F\u7528")),1)],2)]),m.value==0?(r(),Z(zf,{key:0,linkease:(A=l.value)==null?void 0:A.linkease},null,8,["linkease"])):m.value==1?(r(),Z(nf,{key:1,sambas:(z=l.value)==null?void 0:z.sambas},null,8,["sambas"])):m.value==2?(r(),Z(wf,{key:2,webdav:(B=l.value)==null?void 0:B.webdav},null,8,["webdav"])):D("",!0)])]}),_:1},8,["title","is-settings-menu-open"]))}});var jf=N(Gf,[["__scopeId","data-v-e1182f0e"]]);const Uf={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},qf=["fill"],Rf=["fill"],Ya=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",Uf,[t("path",{d:"M554.688 682.624a42.688 42.688 0 0 0 0 85.376h0.448a42.688 42.688 0 1 0 0-85.376h-0.448zM767.488 682.624a42.688 42.688 0 0 0 0 85.376H768a42.688 42.688 0 1 0 0-85.376h-0.512z",fill:o.color,"p-id":"5230"},null,8,qf),t("path",{d:"M465.28 96h93.44c59.456 0 106.88 0 144.96 4.48 39.36 4.48 72.128 14.08 100.992 35.584 28.8 21.44 47.424 50.112 63.104 86.464 15.232 35.2 28.8 80.64 45.952 137.6l52.48 174.848c1.28 4.48 2.752 9.28 3.584 14.336v0.32l0.192 1.216c0.64 5.12 0.64 10.048 0.64 14.72v3.392c0 72.704 0 130.304-5.632 175.68-5.824 46.592-18.112 84.736-45.952 115.84-4.992 5.568-10.304 10.88-15.936 15.872-31.104 27.84-69.184 40.128-115.84 45.952-45.312 5.696-102.912 5.696-175.616 5.696H412.352c-72.704 0-130.304 0-175.68-5.696-46.592-5.824-84.672-18.112-115.84-45.888a202.944 202.944 0 0 1-15.872-16c-27.84-31.04-40.128-69.12-45.952-115.84-5.696-45.312-5.696-102.912-5.696-175.616v-3.328c0-4.672 0-9.664 0.704-14.784v-0.32l0.192-1.216c0.832-5.056 2.24-9.856 3.584-14.272l52.48-174.912c17.088-56.96 30.72-102.4 45.952-137.6 15.68-36.352 34.304-65.024 63.104-86.4 28.8-21.504 61.632-31.104 100.992-35.712C358.4 96 405.76 96 465.28 96zM327.68 164.032c-33.152 3.84-53.632 11.072-70.144 23.36-16.512 12.288-29.376 29.824-42.56 60.48-13.568 31.424-26.176 73.28-43.968 132.544l-42.688 142.272h767.36l-42.688-142.272c-17.792-59.264-30.4-101.12-43.968-132.48-13.184-30.72-26.048-48.256-42.56-60.544-16.512-12.288-36.992-19.52-70.144-23.36C662.336 160 618.624 160 556.736 160H467.328c-61.952 0-105.6 0-139.648 4.032zM122.496 736.64c5.056 40.128 14.528 63.616 30.144 81.088 3.456 3.84 7.04 7.488 10.88 10.88 17.536 15.68 40.96 25.088 81.152 30.144 40.96 5.12 94.464 5.184 169.92 5.184h194.816c75.456 0 129.024 0 169.92-5.184 40.128-5.056 63.616-14.464 81.152-30.08 3.84-3.456 7.424-7.104 10.88-10.944 15.616-17.536 25.088-40.96 30.08-81.088 4.672-37.248 5.12-84.928 5.248-150.016H117.312c0.064 65.088 0.512 112.768 5.184 150.016z",fill:o.color,"p-id":"5231"},null,8,Rf)]))}}),Wf={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Hf=["fill"],Jf=I({props:{color:{type:String,default:"#0a0a0a"}},setup(o){return(n,a)=>(r(),s("svg",Wf,[t("path",{d:"M912 208H427.872l-50.368-94.176A63.936 63.936 0 0 0 321.056 80H112c-35.296 0-64 28.704-64 64v736c0 35.296 28.704 64 64 64h800c35.296 0 64-28.704 64-64v-608c0-35.296-28.704-64-64-64z m-800-64h209.056l68.448 128H912v97.984c-0.416 0-0.8-0.128-1.216-0.128H113.248c-0.416 0-0.8 0.128-1.248 0.128V144z m0 736v-96l1.248-350.144 798.752 1.216V784h0.064v96H112z",fill:o.color,"p-id":"5094"},null,8,Hf)]))}}),Zf={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Kf=["fill"],Qf=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",Zf,[t("path",{d:"M136.12 251.958a83.054 83.054 0 0 1-0.12-4.458c0-32.903 19.447-58.344 41.115-75.981 21.984-17.893 51.365-32.231 84.13-43.511C327.163 105.315 415.641 92 511.5 92c95.859 0 184.337 13.315 250.255 36.008 32.765 11.28 62.146 25.618 84.13 43.511 20.221 16.458 38.506 39.713 40.86 69.485l0.255 0.002v532.88c0 32.888-19.031 58.62-40.776 76.719-21.978 18.294-51.385 32.976-84.207 44.53C696.011 918.373 607.438 932 511.5 932c-95.938 0-184.511-13.627-250.517-36.865-32.822-11.554-62.229-26.236-84.207-44.53C155.031 832.506 136 806.774 136 773.886V251.96l0.12-0.002z m79.88-4.459v0.002c0 0.016-0.003 0.151 0.098 0.491 0.112 0.379 0.397 1.16 1.103 2.347 1.479 2.49 4.55 6.323 10.415 11.096 11.97 9.743 31.722 20.293 59.67 29.914C342.796 310.459 422.067 323 511.5 323c89.433 0 168.704-12.541 224.214-31.651 27.948-9.621 47.7-20.171 59.67-29.914 5.865-4.773 8.936-8.606 10.415-11.096 0.706-1.187 0.991-1.968 1.103-2.347 0.088-0.297 0.097-0.437 0.098-0.479v-0.014-0.012c-0.001-0.042-0.01-0.182-0.098-0.479-0.112-0.379-0.397-1.16-1.103-2.347-1.479-2.49-4.55-6.323-10.415-11.096-11.97-9.743-31.722-20.293-59.67-29.914C680.204 184.541 600.933 172 511.5 172c-89.433 0-168.704 12.541-224.214 31.651-27.948 9.621-47.7 20.171-59.67 29.914-5.865 4.773-8.936 8.606-10.415 11.096-0.706 1.187-0.991 1.968-1.103 2.347-0.101 0.34-0.098 0.475-0.098 0.491z m591 100.656c-13.955 7.052-29.194 13.311-45.245 18.837C695.837 389.685 607.359 403 511.5 403c-95.859 0-184.337-13.315-250.255-36.008-16.051-5.526-31.29-11.785-45.245-18.837v85.359c0.001 0.042 0.01 0.182 0.098 0.478 0.112 0.379 0.397 1.16 1.103 2.347 1.479 2.489 4.55 6.323 10.415 11.096 11.97 9.743 31.722 20.293 59.67 29.914C342.796 496.459 422.067 509 511.5 509c89.433 0 168.704-12.541 224.214-31.651 27.948-9.621 47.7-20.171 59.67-29.914 5.865-4.773 8.936-8.607 10.415-11.096 0.706-1.187 0.991-1.968 1.103-2.347 0.088-0.297 0.097-0.437 0.098-0.479v-85.358z m-45.245 204.837C695.837 575.685 607.359 589 511.5 589c-95.859 0-184.337-13.315-250.255-36.008-16.051-5.526-31.29-11.785-45.245-18.837v70.359c0.001 0.041 0.01 0.182 0.098 0.478 0.112 0.379 0.397 1.16 1.103 2.347 1.479 2.489 4.55 6.323 10.415 11.096 11.97 9.743 31.722 20.293 59.67 29.914C342.796 667.459 422.067 680 511.5 680c89.433 0 168.704-12.541 224.214-31.651 27.948-9.621 47.7-20.171 59.67-29.914 5.865-4.773 8.936-8.607 10.415-11.096 0.706-1.187 0.991-1.968 1.103-2.347 0.088-0.297 0.097-0.437 0.098-0.479v-70.358c-13.955 7.052-29.194 13.311-45.245 18.837zM807 705.155c-13.955 7.052-29.194 13.311-45.245 18.837C695.837 746.685 607.359 760 511.5 760c-95.859 0-184.337-13.315-250.255-36.008-16.051-5.526-31.29-11.785-45.245-18.837V773.894c0 0.181-0.003 1.283 1.399 3.695 1.555 2.675 4.69 6.646 10.556 11.529 11.976 9.968 31.701 20.738 59.594 30.557C342.97 839.186 422.146 852 511.5 852c89.354 0 168.53-12.814 223.951-32.325 27.893-9.819 47.618-20.589 59.594-30.557 5.866-4.883 9.001-8.854 10.556-11.529 1.402-2.412 1.399-3.514 1.399-3.695v-68.739z",fill:o.color,"p-id":"9960"},null,8,Kf)]))}}),Xf={},t9={width:"18px",height:"18px",viewBox:"0 0 18 18",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},e9=jt('',1),a9=[e9];function o9(o,n){return r(),s("svg",t9,a9)}var Aa=N(Xf,[["render",o9]]);const n9={},i9={width:"18px",height:"18px",viewBox:"0 0 18 18",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},r9=jt('',1),s9=[r9];function d9(o,n){return r(),s("svg",i9,s9)}var l9=N(n9,[["render",d9]]);const Ge=o=>(ut("data-v-b5895698"),o=o(),ct(),o),u9=["onSubmit"],c9=Ge(()=>t("div",{class:"action-header"},[t("div",{class:"action-header_title"})],-1)),p9={class:"action-body"},f9={class:"disk-info"},m9=Ge(()=>t("div",{class:"disk-info_icon"},[t("svg",{t:"1642589762094",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"11301",width:"128",height:"128"},[t("path",{d:"M899.892468 123.889088c0-44.342099-36.286708-80.620486-80.624646-80.620486H204.728017C160.385918 43.268602 124.107532 79.546988 124.107532 123.889088v802.847056c0 44.342099 36.278386 80.620486 80.620485 80.620486h614.539805c44.337938 0 80.624646-36.278386 80.624646-80.620486V123.889088z",fill:"#D0D0DB","p-id":"11302"}),t("path",{d:"M169.8768 977.7772V174.930143c0-44.342099 36.278386-80.620486 80.620486-80.620485h614.539804c9.936092 0 19.426974 1.905666 28.239639 5.23434-11.525534-30.507298-40.996782-52.389169-75.398629-52.389169H203.342457c-44.342099 0-80.620486 36.278386-80.620486 80.620486v802.851217c0 34.410168 21.881871 63.873094 52.385008 75.381985A79.730065 79.730065 0 0 1 169.8768 977.7772z",fill:"#FFFFFF","p-id":"11303"}),t("path",{d:"M820.657543 40.497481H206.117739c-44.342099 0-80.620486 36.278386-80.620486 80.620485v802.847057c0 44.342099 36.278386 80.620486 80.620486 80.620486h614.539804c44.337938 0 80.624646-36.278386 80.624647-80.620486V121.117966c0-44.342099-36.286708-80.620486-80.624647-80.620485z m19.60173 828.785749c0 40.846992-33.43237 74.279362-74.287684 74.279361H199.780776c-40.855313 0-74.279362-33.424048-74.279362-74.279361V129.593603c0-40.855313 33.424048-74.279362 74.279362-74.279362h566.203296c40.842831 0 74.283522 33.424048 74.283522 74.279362l-0.008321 739.689627z",fill:"#6E6E96","p-id":"11304"}),t("path",{d:"M815.106979 1024H200.567175C146.933914 1024 103.303319 980.369405 103.303319 926.736144V123.889088C103.303319 70.255827 146.933914 26.625232 200.567175 26.625232h614.539804c53.633261 0 97.268017 43.630595 97.268017 97.263856v802.847056c0 53.633261-43.634756 97.263856-97.268017 97.263856zM200.567175 59.911972C165.287391 59.911972 136.590059 88.609303 136.590059 123.889088v802.847056c0 35.279784 28.697331 63.977115 63.977116 63.977115h614.539804c35.279784 0 63.981276-28.697331 63.981276-63.977115V123.889088c0-35.279784-28.701492-63.977115-63.981276-63.977116H200.567175z",fill:"#6E6E96","p-id":"11305"}),t("path",{d:"M301.946104 941.515457h429.985632v65.841173H301.946104z",fill:"#8A8AA1","p-id":"11306"}),t("path",{d:"M731.931736 1024H301.946104a16.64337 16.64337 0 0 1-16.64337-16.64337V941.515457a16.64337 16.64337 0 0 1 16.64337-16.64337h429.985632a16.64337 16.64337 0 0 1 16.64337 16.64337v65.841173a16.64337 16.64337 0 0 1-16.64337 16.64337z m-413.342262-33.286741h396.698892v-32.554432H318.589474v32.554432z",fill:"#6E6E96","p-id":"11307"}),t("path",{d:"M337.230049 960.318304h20.804213v47.038326h-20.804213zM386.565159 960.318304h20.804213v47.038326h-20.804213zM435.891948 960.318304h20.804213v47.038326h-20.804213zM485.231219 960.318304h20.804213v47.038326h-20.804213zM534.558008 960.318304h20.804213v47.038326h-20.804213zM583.897279 960.318304h20.804213v47.038326h-20.804213zM633.224068 960.318304h20.804213v47.038326h-20.804213zM682.563339 960.318304h20.804213v47.038326h-20.804213z",fill:"#FFE599","p-id":"11308"}),t("path",{d:"M219.153659 140.794591m-26.874883 0a26.874882 26.874882 0 1 0 53.749765 0 26.874882 26.874882 0 1 0-53.749765 0Z",fill:"#ADADD1","p-id":"11309"}),t("path",{d:"M219.153659 184.312843c-23.995579 0-43.518252-19.522673-43.518253-43.518252s19.522673-43.518252 43.518253-43.518253 43.518252 19.522673 43.518252 43.518253-19.522673 43.518252-43.518252 43.518252z m0-53.749764c-5.642103 0-10.231512 4.589409-10.231512 10.231512s4.589409 10.231512 10.231512 10.231512 10.231512-4.589409 10.231511-10.231512-4.589409-10.231512-10.231511-10.231512z",fill:"#6E6E96","p-id":"11310"}),t("path",{d:"M801.28466 140.794591m-26.870721 0a26.870721 26.870721 0 1 0 53.741442 0 26.870721 26.870721 0 1 0-53.741442 0Z",fill:"#ADADD1","p-id":"11311"}),t("path",{d:"M801.28466 184.308683c-23.995579 0-43.514092-19.518512-43.514091-43.514092s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514092z m0-53.741443c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11312"}),t("path",{d:"M801.280499 905.23291m-26.870721 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"11313"}),t("path",{d:"M801.280499 948.747001c-23.995579 0-43.514092-19.518512-43.514091-43.514091s19.518512-43.514092 43.514091-43.514092 43.514092 19.518512 43.514092 43.514092-19.518512 43.514092-43.514092 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11314"}),t("path",{d:"M219.153659 905.23291m-26.870722 0a26.870721 26.870721 0 1 0 53.741443 0 26.870721 26.870721 0 1 0-53.741443 0Z",fill:"#ADADD1","p-id":"11315"}),t("path",{d:"M219.153659 948.747001c-23.995579 0-43.514092-19.518512-43.514092-43.514091s19.518512-43.514092 43.514092-43.514092 43.514092 19.518512 43.514091 43.514092-19.522673 43.514092-43.514091 43.514091z m0-53.741442c-5.637942 0-10.227351 4.589409-10.227351 10.227351s4.589409 10.227351 10.227351 10.227351 10.227351-4.589409 10.227351-10.227351-4.589409-10.227351-10.227351-10.227351z",fill:"#6E6E96","p-id":"11316"}),t("path",{d:"M520.972857 777.43263c-142.542145 0-258.508988-115.971004-258.508988-258.52147a16.64337 16.64337 0 0 1 33.28674 0c0 124.19699 101.033579 225.23473 225.222248 225.23473s225.222248-101.03774 225.222248-225.23473c0-124.188668-101.033579-225.218087-225.222248-225.218087a16.64337 16.64337 0 0 1 0-33.286741c142.542145 0 258.508988 115.966843 258.508988 258.504828 0 142.550466-115.966843 258.521471-258.508988 258.52147z",fill:"#6E6E96","p-id":"11317"}),t("path",{d:"M520.968696 518.919481m-83.312551 0a83.312551 83.312551 0 1 0 166.625102 0 83.312551 83.312551 0 1 0-166.625102 0Z",fill:"#A9A9BA","p-id":"11318"}),t("path",{d:"M520.968696 618.875402c-55.114521 0-99.955921-44.83724-99.955921-99.95176 0-55.118682 44.8414-99.955921 99.955921-99.955921s99.95176 44.8414 99.95176 99.955921c0 55.11036-44.83724 99.95176-99.95176 99.95176z m0-166.625101c-36.761044 0-66.669181 29.908136-66.66918 66.66918s29.908136 66.66502 66.66918 66.66502 66.66502-29.908136 66.66502-66.66502c0-36.761044-29.903976-66.669181-66.66502-66.66918z",fill:"#6E6E96","p-id":"11319"}),t("path",{d:"M301.946104 941.515457h429.985632v36.977408H301.946104z",fill:"#6E6E96","p-id":"11320"})])],-1)),g9={key:0,class:"disk-info_mount-name"},v9={key:1,class:"disk-info_mount-name"},b9={key:0,class:"label-item"},h9={class:"label-item_key"},_9={class:"label-item_path"},x9={class:"label-item"},w9={class:"label-item_key"},k9={class:"label-item_value"},y9={class:"action-footer"},F9=Ge(()=>t("div",{class:"auto"},null,-1)),E9=["disabled"],$9=["disabled"],C9={key:1,class:"action result"},D9={class:"action-body"},B9=Ge(()=>t("div",{class:"action-body_icon"},[t("svg",{t:"1642063181211",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5062",width:"128",height:"128","data-v-cda444e0":""},[t("path",{d:"M512 85.333333c235.648 0 426.666667 191.018667 426.666667 426.666667s-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512 276.352 85.333333 512 85.333333z m-74.965333 550.4L346.453333 545.152a42.666667 42.666667 0 1 0-60.330666 60.330667l120.704 120.704a42.666667 42.666667 0 0 0 60.330666 0l301.653334-301.696a42.666667 42.666667 0 1 0-60.288-60.330667l-271.530667 271.488z",fill:"#52C41A","p-id":"5063","data-v-cda444e0":""})])],-1)),Y9={class:"action-body_msg"},A9=["innerHTML"],S9={class:"btns"},z9=I({props:{action:String,disk:{type:Object,required:!0},mount:{type:Object},Close:{type:Function},Cancel:{type:Function},Next:{type:Function}},setup(o){var F;const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.Close&&n.Close()},d=w=>{w.preventDefault(),n.Cancel&&n.Cancel(),u()},c=w=>{n.Next&&n.Next(w),u()},k=E(!1),g=E(0),p=E("/mnt/data_"+((F=n==null?void 0:n.mount)==null?void 0:F.name)),m=w=>{g.value=w};E(n.mount?"":"format"),E();const v=E(),b=()=>L(this,null,function*(){const w=n.mount;if(w==null){$.Warning(a("\u83B7\u53D6\u4E0D\u5230\u5206\u533A"));return}if(w.path==null||w.path==""){$.Warning(a("\u83B7\u53D6\u4E0D\u5230\u5206\u533A\u8DEF\u5F84"));return}if(w.uuid==null||w.uuid==""){$.Warning(a("\u83B7\u53D6\u4E0D\u5230\u5206\u533AID"));return}k.value=!0;const h=$.Loading(a("\u6302\u8F7D\u4E2D..."));try{const _=yield G.Nas.Disk.Partition.Mount.POST({path:w.path,uuid:w.uuid,mountPoint:p.value});if(_!=null&&_.data){const{result:x,error:C}=_==null?void 0:_.data;C&&$.Warning(C),x&&($.Success(a("\u6302\u8F7D\u6210\u529F")),v.value=x,m(1))}}catch(_){$.Error(_)}h.Close(),k.value=!1}),y=()=>{if(v.value&&v.value.mountPoint){c(v.value.mountPoint);return}$.Warning(a("\u8BFB\u53D6\u7ED3\u679C\u5931\u8D25"))},f=()=>{};return(w,h)=>(r(),Z(wt,{type:1},{default:V(()=>[Y(St,{name:"rotate",mode:"out-in"},{default:V(()=>{var _,x;return[g.value==0?(r(),s("form",{key:0,class:"action format",onSubmit:ft(f,["prevent"])},[c9,t("div",p9,[t("div",f9,[m9,o.mount?(r(),s("div",g9,[t("span",null,"\u3010"+i(o.mount.total)+"\u3011",1),t("span",null,i(o.mount.mountPoint),1)])):o.disk?(r(),s("div",v9,[t("span",null,"\u3010"+i(o.disk.size)+"\u3011",1),t("span",null,i(o.disk.venderModel),1)])):D("",!0)]),o.mount?(r(),s("div",b9,[t("div",h9,[t("span",null,i(e(a)("\u76EE\u6807\u5206\u533A")),1)]),t("div",_9,i(o.mount.path)+"\uFF08"+i(o.mount.total)+"\uFF0C"+i((x=(_=o.mount)==null?void 0:_.filesystem)==null?void 0:x.toUpperCase())+"\uFF09",1)])):D("",!0),t("div",x9,[t("div",w9,[t("span",null,i(e(a)("\u6302\u8F7D\u70B9")),1)]),t("div",k9,[O(t("input",{type:"text","onUpdate:modelValue":h[0]||(h[0]=C=>p.value=C)},null,512),[[at,p.value,void 0,{trim:!0}]])])])]),t("div",y9,[F9,t("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:k.value,onClick:b},i(e(a)("\u786E\u5B9A")),9,E9),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:d,type:"button",disabled:k.value},i(e(a)("\u8FD4\u56DE")),9,$9)])],40,u9)):g.value==1?(r(),s("div",C9,[t("div",D9,[B9,t("div",Y9,i(e(a)("\u6302\u8F7D\u6210\u529F")),1),v.value?(r(),s("div",{key:0,class:"action-body_info",innerHTML:e(a)("\u5DF2\u6210\u529F\u5C06\u5206\u533A %{dev} \u6302\u8F7D\u5230 %{mount}",{dev:v.value.path||"",mount:v.value.mountPoint||""},!0)},null,8,A9)):D("",!0),t("div",S9,[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",type:"button",onClick:y},i(o.action=="nas"?e(a)("\u5B8C\u6210"):e(a)("\u4E0B\u4E00\u6B65")),1)])])])):D("",!0)]}),_:1})]),_:1}))}});var P9=N(z9,[["__scopeId","data-v-b5895698"]]),oo=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(P9,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}};const T9={class:"disk-content"},I9={class:"disk-item"},M9={class:"disk-item_name"},L9={key:0},O9={key:1},N9={key:2},V9={class:"disk_value"},G9={class:"disk-item_value"},j9={class:"value-data"},U9={key:0,class:"disk-item"},q9={class:"disk-item_name"},R9={key:0},W9=["href"],H9={key:0},J9={class:"disk_status"},Z9={key:0,class:"disk_status_item"},K9={key:0,class:"tooltip-trigger disk_tip"},Q9={class:"tooltip-text tooltip-top"},X9={class:"disk_dir_tip"},tm={class:"disk_status_item"},em={key:0,class:"tooltip-trigger disk_tip"},am={class:"tooltip-text tooltip-top"},om={class:"disk_dir_tip"},nm=I({props:{part:{type:Object,required:!0},disk:{type:Object,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=Q(()=>n.part.filesystem=="No FileSystem"),d=Q(()=>n.part.filesystem&&["ntfs","vfat","exfat"].indexOf(n.part.filesystem)>=0),c=Q(()=>n.part.mountPoint&&n.part.isReadOnly&&n.part.filesystem!="swap"),k=Q(()=>u.value||!n.part.isSystemRoot&&(c.value||d.value||!n.part.mountPoint&&n.part.filesystem=="swap")),g=function(){la({action:"disk",disk:n.disk,mount:n.part,Cancel:()=>{},Next:y=>{location.reload()}})},p=()=>{oo({action:"nas",disk:n.disk,mount:n.part,Cancel:()=>{},Next:()=>{location.reload()}})},m=()=>L(this,null,function*(){const y=$.Loading(a("\u5904\u7406\u4E2D..."));try{const f=yield G.Nas.Disk.InitRest.POST({name:n.disk.name,path:n.disk.path});if(f!=null&&f.data){const{result:F,error:w}=f==null?void 0:f.data;w&&$.Warning(w),F&&($.Success(a("\u6302\u8F7D\u6210\u529F")),location.reload())}}catch(f){$.Error(f)}y.Close()}),v=Q(()=>n.part.filesystem=="Free Space"),b=Q(()=>{const y=n.part.mountPoint?n.part.mountPoint:"";return y.indexOf("/mnt/")==0?"/cgi-bin/luci/admin/services/linkease/file/?path=/"+y.substring(5):"/cgi-bin/luci/admin/services/linkease/file/?path=/root"+y});return(y,f)=>{var w;const F=_t("progress-item");return r(),s("div",T9,[t("li",I9,[t("div",M9,[e(v)?(r(),s("span",L9,i(e(a)("\u672A\u5206\u533A")),1)):(r(),s("span",O9,i(o.part.name)+i(o.part.mountPoint?"":e(u)?e(a)("\uFF08\u672A\u683C\u5F0F\u5316\uFF09"):e(a)("\uFF08\u672A\u6302\u8F7D\uFF09")),1)),o.part.isSystemRoot?(r(),s("span",N9,i(e(a)("\uFF08\u7CFB\u7EDF\u5206\u533A\uFF09")),1)):D("",!0)]),t("div",V9,[t("div",G9,[t("div",j9,[Y(F,{value:e(v)||!o.part.usage?0:o.part.usage,text:e(v)?e(a)("\u672A\u5206\u533A\uFF08%{total}\uFF09",{total:o.part.total||""}):(o.part.mountPoint&&o.part.filesystem!="swap"?o.part.used:e(a)("\u672A\u77E5"))+"/"+(o.part.total||""),style:{backgroundColor:"#767676"}},null,8,["value","text"])])]),e(v)?(r(),s("button",{key:0,class:"cbi-button cbi-button-apply",onClick:m},i(e(a)("\u5206\u533A\u5E76\u683C\u5F0F\u5316")),1)):e(k)?(r(),s("button",{key:1,class:"cbi-button cbi-button-apply",onClick:g},i(e(a)("\u683C\u5F0F\u5316\u5206\u533A")),1)):D("",!0)])]),!e(v)&&!e(u)?(r(),s("li",U9,[t("span",q9,[o.part.mountPoint?(r(),s(U,{key:0},[o.part.filesystem=="swap"?(r(),s("span",R9,i(e(a)("\u5DF2\u6302\u8F7D\u4E3A\u4EA4\u6362\u533A")),1)):(r(),s("a",{key:1,href:e(b),target:"_blank"},i(o.part.mountPoint),9,W9))],64)):(r(),s(U,{key:1},[o.part.filesystem=="swap"?(r(),s("span",H9,i(e(a)("\u4E0D\u652F\u6301\u6302\u8F7D")),1)):(r(),s("span",{key:1,class:"value-data buttondiv",onClick:p},i(e(a)("\u624B\u52A8\u6302\u8F7D")),1))],64))]),t("div",J9,[o.part.mountPoint&&o.part.filesystem!="swap"?(r(),s("div",Z9,[t("div",null,i(e(a)("\u53EF\u8BFB\u5199\u72B6\u6001\uFF1A"))+i(o.part.isReadOnly?e(a)("\u53EA\u8BFB"):e(a)("\u8BFB\u5199")),1),e(c)?(r(),s("div",K9,[Y(It),t("div",Q9,[t("div",X9,i(e(a)("\u6B64\u5206\u533A\u4E3A\u53EA\u8BFB\u72B6\u6001\uFF0C\u53EF\u80FD\u65E0\u6CD5\u5199\u5165\u6570\u636E")),1)])])):D("",!0)])):D("",!0),t("div",tm,[t("div",null,i(e(a)("\u6587\u4EF6\u7CFB\u7EDF\uFF1A"))+i((w=o.part.filesystem)==null?void 0:w.toUpperCase()),1),!o.part.isSystemRoot&&e(d)?(r(),s("div",em,[Y(It),t("div",am,[t("span",om,i(e(a)("\u6B64\u6587\u4EF6\u7CFB\u7EDF\u4E0D\u652F\u6301Docker\u7B49\u5E94\u7528\u6570\u636E\uFF0C\u5EFA\u8BAE\u683C\u5F0F\u5316\u6210EXT4\u6587\u4EF6\u7CFB\u7EDF")),1)])])):D("",!0)])])])):D("",!0)])}}});var im=N(nm,[["__scopeId","data-v-10dd00b8"]]);const rm=o=>(ut("data-v-127a3100"),o=o(),ct(),o),sm={key:0,class:"action"},dm={class:"title"},lm={class:"app-container_info"},um={class:"app-container_body"},cm={class:"action-footer"},pm=rm(()=>t("div",{class:"auto"},null,-1)),fm=I({props:{disk:{type:Object,required:!0},Close:{type:Function},Cancel:{type:Function},Next:{type:Function}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(0),d=()=>{n.Close&&n.Close()},c=k=>{k.preventDefault(),n.Cancel&&n.Cancel(),d()};return(k,g)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[Y(St,{name:"rotate",mode:"out-in"},{default:V(()=>[u.value==0?(r(),s("div",sm,[t("h2",dm,i(e(a)("\u5206\u533A\u4FE1\u606F"))+" - "+i((o.disk.name||"?")+(o.disk.isSystemRoot?e(a)("\uFF08\u7CFB\u7EDF\u76D8\uFF09"):"")),1),t("ul",null,[t("li",null,[t("div",lm,[t("span",null,i(e(a)("\u5206\u533A / \u6302\u8F7D\u70B9")),1),t("span",null,i(e(a)("\u5BB9\u91CF")),1)]),t("div",um,[(r(!0),s(U,null,tt(o.disk.childrens,(p,m)=>(r(),Z(im,{key:m,part:p,disk:o.disk},null,8,["part","disk"]))),128))])])]),t("div",cm,[pm,t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:c,type:"button"},i(e(a)("\u8FD4\u56DE")),1)])])):D("",!0)]),_:1})]),_:1},8,["Close"]))}});var mm=N(fm,[["__scopeId","data-v-127a3100"]]),gm=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(mm,vt(st({},o),{Close:()=>{l()}}));a.component("progress-item",Ua),a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}};const vm={class:"progress-bar-wrapper"},bm={key:0,class:"percentage-text"},hm={props:{percentage:{type:Number,default:0,validator:o=>o>=0&&o<=100},color:{type:String,default:"#4CAF50"},backgroundColor:{type:String,default:"#e0e0e0"},height:{type:[String,Number],default:"20px"},borderRadius:{type:[String,Number],default:"4px"},showPercentage:{type:Boolean,default:!0},gradient:{type:Boolean,default:!1},gradientColors:{type:String,default:"linear-gradient(90deg, #4CAF50, #45a049)"},duration:{type:Number,default:1e3}},setup(o){const n=o,a=Q(()=>({height:typeof n.height=="number"?`${n.height}px`:n.height,borderRadius:typeof n.borderRadius=="number"?`${n.borderRadius}px`:n.borderRadius,backgroundColor:n.backgroundColor,overflow:"hidden"})),l=Q(()=>{const u={height:"100%",width:`${n.percentage}%`,borderRadius:typeof n.borderRadius=="number"?`${n.borderRadius}px`:n.borderRadius,transition:`width ${n.duration}ms cubic-bezier(0.4, 0, 0.2, 1)`,position:"relative",overflow:"hidden"};return n.gradient?vt(st({},u),{background:n.gradientColors}):vt(st({},u),{background:n.color})});return(u,d)=>(r(),s("div",vm,[t("div",{class:"progress-bar",style:ht(e(a))},[t("div",{class:"progress-fill",style:ht(e(l))},[o.showPercentage?(r(),s("span",bm,i(Math.round(o.percentage))+"% ",1)):D("",!0)],4)],4)]))}};var no=N(hm,[["__scopeId","data-v-2e966a39"]]);const _m={key:0,class:"disk-item error"},xm=["title"],wm={class:"disk-item_value"},km={class:"value-data"},ym={class:"error"},Fm={key:1,class:"disk-item"},Em=["title"],$m={key:0,class:"disk_value"},Cm={class:"value-data"},Dm={href:"/cgi-bin/luci/admin/nas/smart"},Bm={class:"error"},Ym={key:1,class:"disk_value"},Am={class:"disk-item_value"},Sm={class:"value-data"},zm={class:"disk-item-tooltip"},Pm={class:"disk_icon"},Tm={key:0,class:"tooltip-trigger"},Im={class:"disk_tip"},Mm={class:"tooltip-text tooltip-top"},Lm={class:"disk_dir_tip"},Om={key:1,class:"tooltip-trigger"},Nm={class:"disk_tip"},Vm={class:"tooltip-text tooltip-top"},Gm={class:"disk_dir_tip"},jm={key:2,class:"disk-item load"},Um=["title"],qm={class:"disk_value"},Rm={class:"disk-item_value"},Wm={class:"value-data"},Hm={key:3,class:"disk-item load"},Jm=["title"],Zm={class:"disk_value"},Km={key:0,class:"disk-item_value"},Qm={class:"value-data"},Xm={class:"disk_icon"},tg=I({props:{disk:{type:Object,required:!0},smartWarning:{type:Boolean}},setup(o){const n=o,{$gettext:a}=J(),l=Q(()=>n.disk.errorInfo?"error":n.disk.isSystemRoot?"success":n.disk.childrens==null||n.disk.childrens.length==0||n.disk.childrens.length==1&&n.disk.childrens[0].filesystem=="No FileSystem"?"load":n.disk.childrens.filter(m=>m.mountPoint).length==0?"unmounted":"success"),u=Q(()=>{const m=n.disk;let v=m.name;return m.size&&(v+=`\u3010${m.size}\u3011`),m.venderModel&&(v+=`(${m.venderModel})`),v}),d=Q(()=>{var v;const m=n.disk;return!m.isSystemRoot&&(((v=m.childrens)==null?void 0:v.filter(b=>b.isReadOnly&&b.filesystem!="swap").length)||0)>0}),c=()=>{la({action:"disk",disk:n.disk,Cancel:()=>{},Next:()=>{location.reload()}})},k=()=>{gm({action:"disk",disk:n.disk,Cancel:()=>{},Next:()=>{location.reload()}})},g=()=>{const m=n.disk,v=m.childrens||[];oo({action:"nas",disk:m,mount:v[0],Cancel:()=>{},Next:()=>{location.reload()}})},p=m=>m<60?"#2fc867":m<75?"#fdd835":m<90?"#f97316":"#dc2626";return(m,v)=>{var b,y,f,F,w,h;return e(l)=="error"?(r(),s("li",_m,[t("div",{class:"disk-item_name",title:e(u)},[t("span",null,i(e(u)),1)],8,xm),t("div",wm,[t("div",km,[t("span",ym,i(o.disk.errorInfo),1)])])])):e(l)=="success"?(r(),s("li",Fm,[t("div",{class:"disk-item_name",title:e(u)},[t("span",null,i(e(u)),1)],8,Em),o.disk.smartWarning&&o.smartWarning?(r(),s("div",$m,[t("div",Cm,[t("a",Dm,[t("span",Bm,i(e(a)("S.M.A.R.T\u5F02\u5E38")),1)])])])):(r(),s("div",Ym,[t("div",Am,[t("div",Sm,[Y(no,{percentage:o.disk.usage||0,showPercentage:!1,height:"10px",borderRadius:"10px",color:p(o.disk.usage||0),backgroundColor:"#f4f5f7"},null,8,["percentage","color"]),t("div",null,[t("span",null,i(e(a)("\u4F7F\u7528\u7387"))+"\uFF1A"+i(o.disk.usage||0)+"%",1),t("span",null,i(e(a)("\u5DF2\u4F7F\u7528"))+"\uFF1A"+i(o.disk.used),1)])]),t("div",zm,[t("span",null,i(e(a)("\u4EC5\u7EDF\u8BA1\u5DF2\u6302\u8F7D\u5206\u533A")),1)])]),t("div",Pm,[o.disk.isDockerRoot&&o.disk.isSystemRoot&&o.disk.usage&&o.disk.usage>=90?(r(),s("span",Tm,[t("span",Im,[Y(It)]),t("div",null,[t("div",Mm,[t("span",Lm,i(e(a)("\u60A8\u7684\u7CFB\u7EDF\u7A7A\u95F4\u5DF2\u4E0D\u8DB3\uFF0C\u68C0\u6D4B\u5230\u60A8\u7684Docker\u6839\u76EE\u5F55\u4F4D\u4E8E\u7CFB\u7EDF\u6839\u76EE\u5F55\u4E0A\uFF0C\u53EF\u80FD\u4F1A\u5F71\u54CD\u7CFB\u7EDF\u7684\u6B63\u5E38\u8FD0\u884C\uFF0C\u5EFA\u8BAE\u4F7F\u7528Docker\u8FC1\u79FB\u5411\u5BFC\u5C06Docker\u6839\u76EE\u5F55\u8FC1\u79FB\u5230\u5916\u7F6E\u786C\u76D8\u4E0A\u3002")),1)])])])):D("",!0),e(d)?(r(),s("span",Om,[t("span",Nm,[Y(It)]),t("div",null,[t("div",Vm,[t("span",Gm,i(e(a)("\u5206\u533A\u5B58\u5728\u5F02\u5E38\uFF0C\u70B9\u51FB\u5206\u533A\u5217\u8868\u67E5\u770B\u9519\u8BEF")),1)])])])):D("",!0),e(d)&&(((b=o.disk.childrens)==null?void 0:b.length)||0)==1?(r(),s("span",{key:2,class:"disk_infoicon",onClick:v[0]||(v[0]=_=>c())},[Y(l9)])):D("",!0),(((y=o.disk.childrens)==null?void 0:y.length)||0)>0?(r(),s("span",{key:3,class:"disk_infoicon",onClick:v[1]||(v[1]=_=>k())},[Y(Aa,{style:{color:"var(--app-container_title-color)"}})])):D("",!0)])]))])):e(l)=="load"?(r(),s("li",jm,[t("div",{class:"disk-item_name",title:e(u)},[t("span",null,i(e(u)),1)],8,Um),t("div",qm,[t("div",Rm,[t("div",Wm,[t("button",{onClick:v[2]||(v[2]=_=>c())},i(e(a)("\u683C\u5F0F\u5316\u5E76\u6302\u8F7D")),1)])])])])):e(l)=="unmounted"?(r(),s("li",Hm,[t("div",{class:"disk-item_name",title:e(u)},[t("span",null,i(e(u)),1)],8,Jm),t("div",Zm,[(((f=o.disk.childrens)==null?void 0:f.length)||0)==1?(r(),s("div",Km,[t("div",Qm,[((w=(F=o.disk.childrens)==null?void 0:F[0])==null?void 0:w.filesystem)=="swap"?(r(),s("button",{key:0,onClick:v[3]||(v[3]=_=>k())},i(e(a)("\u67E5\u770B\u8BE6\u60C5")),1)):(r(),s("button",{key:1,onClick:v[4]||(v[4]=_=>g())},i(e(a)("\u624B\u52A8\u6302\u8F7D")),1))])])):D("",!0),t("div",Xm,[(((h=o.disk.childrens)==null?void 0:h.length)||0)>1?(r(),s("span",{key:0,class:"disk_infoicon",onClick:v[5]||(v[5]=_=>k())},[Y(Aa,{style:{color:"var(--app-container_title-color)"}})])):D("",!0)])])])):D("",!0)}}});var Ke=N(tg,[["__scopeId","data-v-6c30e665"]]);const eg=o=>(ut("data-v-6f7fe2ab"),o=o(),ct(),o),ag={href:"/cgi-bin/luci/admin/nas/raid"},og=eg(()=>t("div",null,[t("a",{href:"/cgi-bin/luci/admin/nas/smart"},"S.M.A.R.T.")],-1)),ng={href:"/cgi-bin/luci/admin/system/diskman"},ig={href:"/cgi-bin/luci/admin/system/mounts"},rg={class:"content"},sg={key:0,class:"disk_loading_icon"},dg={class:"disk_loading_info"},lg={class:"item",style:{"margin-top":"4px","padding-bottom":"0"}},ug={class:"icon_box"},cg={class:"info"},pg={class:"name"},fg={class:"schedule"},mg={key:0,class:"line"},gg={key:1,class:"item"},vg={class:"icon_box",style:{background:"#f3e8ff"}},bg={class:"info"},hg={class:"name"},_g={class:"schedule"},xg={key:2,class:"item"},wg={class:"icon_box",style:{background:"#dbfce7"}},kg={class:"info"},yg={class:"name"},Fg={class:"schedule"},Eg=I({setup(o){const{$gettext:n}=J(),a=E(!1),l=gt({disks:null,raidList:null}),u=()=>{G.Nas.Disk.Status.GET().then(k=>{var g;if((g=k==null?void 0:k.data)!=null&&g.result){const p=k.data.result;l.disks=p.disks||[]}})};(()=>L(this,null,function*(){try{const k=yield G.Raid.List.GET();if(k!=null&&k.data){const{success:g,error:p,result:m}=k.data;if(m&&(l.raidList=m.disks||[]),p)throw p}}catch(k){console.log(k)}}))(),u();const c=()=>{zt.installAndGo("luci-app-linkease",n("\u6613\u6709\u4E91"),"/cgi-bin/luci/admin/services/linkease/file/","app-meta-linkease")};return(k,g)=>{const p=_t("icon-loading");return r(),Z(Wt,{title:e(n)("\u78C1\u76D8\u4FE1\u606F"),style:{width:"100%",display:"block"},"is-settings-menu-open":a.value,"onUpdate:isSettingsMenuOpen":g[1]||(g[1]=m=>a.value=m)},{icon:V(()=>[Y(Ya,{color:"#45556c",class:"icon"})]),settings:V(()=>[t("div",{class:"btn_settings",onClick:c},[Y(Jf,{color:"#0a0a0a",class:"icon1 interfaceIcon",style:{"margin-right":"6px"}}),t("span",null,i(e(n)("\u6587\u4EF6\u7BA1\u7406")),1),t("div",{class:"rotation",onClick:g[0]||(g[0]=ft(m=>a.value=!a.value,["stop"]))},[Y(Ee,{class:"moreIcon"})])])]),"settings-menu":V(()=>[t("div",null,[t("a",ag,i(e(n)("RAID\u7BA1\u7406")),1)]),og,t("div",null,[t("a",ng,i(e(n)("\u78C1\u76D8\u7BA1\u7406")),1)]),t("div",null,[t("a",ig,i(e(n)("\u6302\u8F7D\u70B9")),1)])]),default:V(()=>{var m,v,b,y;return[t("div",rg,[!e(l).disks&&!e(l).raidList?(r(),s("div",sg,[Y(p,{size:38,color:"#888888"}),t("span",dg,i(e(n)("\u6B63\u5728\u83B7\u53D6\u78C1\u76D8\u4FE1\u606F...")),1)])):D("",!0),e(l).disks?(r(),s(U,{key:1},[t("div",lg,[t("div",ug,[Y(Ya,{color:"#2b6cfc",class:"icon"})]),t("div",cg,[t("div",pg,[t("div",null,i(e(n)("\u7CFB\u7EDF\u6839\u76EE\u5F55")),1)]),t("div",fg,[(r(!0),s(U,null,tt((m=e(l).disks)==null?void 0:m.filter(f=>f.isSystemRoot),(f,F)=>(r(),Z(Ke,{key:F,disk:f},null,8,["disk"]))),128))])])]),((v=e(l).disks)==null?void 0:v.filter(f=>!f.isSystemRoot).length)>0?(r(),s("div",mg)):D("",!0),((b=e(l).disks)==null?void 0:b.filter(f=>!f.isSystemRoot).length)>0?(r(),s("div",gg,[t("div",vg,[Y(Qf,{class:"icon"})]),t("div",bg,[t("div",hg,[t("div",null,i(e(n)("\u5DF2\u6302\u8F7D\u78C1\u76D8")),1)]),t("div",_g,[(r(!0),s(U,null,tt((y=e(l).disks)==null?void 0:y.filter(f=>!f.isSystemRoot),(f,F)=>(r(),Z(Ke,{key:F,disk:f,smartWarning:!0},null,8,["disk"]))),128))])])])):D("",!0)],64)):D("",!0),e(l).raidList&&e(l).raidList.length>0?(r(),s("div",xg,[t("div",wg,[Y(eo,{color:"#0bab47",class:"icon"})]),t("div",kg,[t("div",yg,[t("div",null,i(e(n)("RAID\u8BBE\u5907")),1)]),t("div",Fg,[(r(!0),s(U,null,tt(e(l).raidList,(f,F)=>(r(),Z(Ke,{key:F,disk:f},null,8,["disk"]))),128))])])])):D("",!0)])]}),_:1},8,["title","is-settings-menu-open"])}}});var $g=N(Eg,[["__scopeId","data-v-6f7fe2ab"]]);const Cg={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Dg=["fill"],Sa=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",Cg,[t("path",{d:"M473.950316 63.164632l488.070737 234.226526v414.234947l-337.92 200.111158-502.837895-295.019789V223.447579l352.687158-160.282947zM200.434526 306.661053V571.284211l383.892211 225.28V510.113684L200.434526 306.661053z m682.253474 82.728421l-219.082105 120.400842v286.396631l219.082105-129.670736V389.335579z m-409.761684-238.753685L258.910316 247.915789l364.759579 193.374316 212.075789-116.520421-362.819368-174.08z",fill:o.color,"p-id":"6174"},null,8,Dg)]))}}),Bg=o=>(ut("data-v-64cabc6e"),o=o(),ct(),o),Yg={class:"app-container_docker"},Ag={class:"docker-item"},Sg={class:"docker-item_name"},zg={key:0,class:"docker-item_value"},Pg={class:"configure"},Tg={key:1,class:"docker-item_value"},Ig={class:"input-switch"},Mg=["value","disabled"],Lg=Bg(()=>t("em",null,null,-1)),Og=[Lg],Ng={key:0,class:"status-icon"},Vg={key:1,class:"status-icon",style:{background:"#e9ebef",color:"#4a5565"}},Gg={key:0,class:"content"},jg={class:"docker-item_name"},Ug={class:"docker_box"},qg={class:"path"},Rg={key:0},Wg={class:"tooltip-trigger"},Hg={class:"docker_tip"},Jg={class:"tooltip-text tooltip-top"},Zg={class:"docker_dir_tip"},Kg=I({props:{docker:{type:Object}},setup(o){var k;const n=o,{$gettext:a,$ngettext:l}=J(),u=Q(()=>{var g;return((g=n.docker)==null?void 0:g.status)!="not installed"}),d=gt({enable:((k=n.docker)==null?void 0:k.status)=="running",disabled:!1}),c=()=>L(this,null,function*(){d.disabled=!0;try{const g=yield G.Guide.DockerSwitch.POST({enable:d.enable});if(g!=null&&g.data){const{success:p,error:m}=g.data;if(m)throw d.enable=!d.enable,m;(p||0)==0}}catch(g){$.Warning(`${g}`)}finally{d.disabled=!1}});return(g,p)=>{var m,v,b,y;return r(),s("ul",Yg,[t("li",Ag,[t("div",Sg,[t("span",null,i(e(a)("\u5F53\u524D\u72B6\u6001:")),1)]),(m=n.docker)!=null&&m.status?(r(),s(U,{key:0},[e(u)?(r(),s("div",Tg,[t("label",Ig,[O(t("input",{type:"checkbox",hidden:"",value:!e(d).enable,"onUpdate:modelValue":p[0]||(p[0]=f=>e(d).enable=f),disabled:e(d).disabled,onChange:c},null,40,Mg),[[Rt,e(d).enable]]),t("span",{class:lt(e(d).enable?"enable":"close")},Og,2)]),e(d).enable?(r(),s("span",Ng,i(e(a)("\u8FD0\u884C\u4E2D")),1)):D("",!0),e(d).enable?D("",!0):(r(),s("span",Vg,i(e(a)("\u672A\u542F\u7528")),1))])):(r(),s("div",zg,[t("span",Pg,i(e(a)("\u672A\u5B89\u88C5")),1)]))],64)):D("",!0)]),((v=o.docker)==null?void 0:v.status)=="running"?(r(),s("li",Gg,[t("div",jg,[t("span",{style:ht({color:"var(--app-container_title-color)"})},i(e(a)("Docker\u6839\u76EE\u5F55\uFF1A")),5)]),t("div",Ug,[t("div",qg,i((b=o.docker)==null?void 0:b.path),1),(y=o.docker)!=null&&y.errorInfo?(r(),s("span",Rg,[t("span",Wg,[t("span",Hg,[Y(It)]),t("div",null,[t("div",Jg,[t("span",Zg,i(o.docker.errorInfo),1)])])])])):D("",!0)])])):D("",!0)])}}});var Qg=N(Kg,[["__scopeId","data-v-64cabc6e"]]);const Xg={},tv={width:"128px",height:"128px",viewBox:"0 0 128 128",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},ev=t("g",{id:"icon_yellow",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t("g",{id:"Icon/Warning"},[t("rect",{id:"\u77E9\u5F62",fill:"#000000","fill-rule":"nonzero",opacity:"0",x:"0",y:"0",width:"128",height:"128"}),t("path",{d:"M64,8 C33.075,8 8,33.075 8,64 C8,94.925 33.075,120 64,120 C94.925,120 120,94.925 120,64 C120,33.075 94.925,8 64,8 Z M60,37 C60,36.45 60.45,36 61,36 L67,36 C67.55,36 68,36.45 68,37 L68,71 C68,71.55 67.55,72 67,72 L61,72 C60.45,72 60,71.55 60,71 L60,37 Z M64,92 C60.6875,92 58,89.3125 58,86 C58,82.6875 60.6875,80 64,80 C67.3125,80 70,82.6875 70,86 C70,89.3125 67.3125,92 64,92 Z",id:"\u5F62\u72B6",fill:"#FAAD14"})])],-1),av=[ev];function ov(o,n){return r(),s("svg",tv,av)}var nv=N(Xg,[["render",ov]]);const iv={key:0,class:"action"},rv={class:"title"},sv={class:"desc"},dv={class:"roots"},lv={class:"roots_tit"},uv={class:"root"},cv={class:"move"},pv={class:"roots_tit"},fv={key:0},mv=["onSubmit"],gv={class:"select-editable"},vv={selected:"",value:null},bv=["value"],hv={value:"useInput"},_v=["placeholder"],xv={key:1,class:"tips"},wv={class:"tips_content"},kv={class:"tip"},yv={key:0,class:"btns"},Fv={key:1,class:"btns"},Ev={key:1,class:"action docker_success"},$v={class:"title"},Cv={class:"finished"},Dv={class:"successed"},Bv={class:"btns"},Yv={key:2,class:"action docker_download"},Av={class:"title"},Sv={class:"finished"},zv={class:"successed"},Pv={class:"docker_moves"},Tv={class:"moves change"},Iv={for:"move"},Mv={class:"moves"},Lv={for:"cover"},Ov={class:"btns"},Nv=I({props:{rootPath:{type:String,required:!0},Close:Function},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(),d=E(),c=E(0),k=E("null"),g=E(""),p=E(),m=E(!1),v=E("");(()=>{G.Nas.Disk.Status.GET().then(x=>{x!=null&&x.data.result&&(p.value=x==null?void 0:x.data.result)}),G.Guide.DockerStatus.GET().then(x=>{var C;if((C=x==null?void 0:x.data)!=null&&C.result){const S=x.data.result;u.value=S}}),G.Guide.DockerPartitionList.GET().then(x=>{var C;if((C=x==null?void 0:x.data)!=null&&C.result){const S=x.data.result;d.value=S}})})();const y=x=>{let C=k.value;if(C=="useInput"&&(C=g.value),C==null||C=="null"||C=="")return;const S=$.Loading(a("\u6B63\u5728\u8FC1\u79FB\u4E2D..."));G.Guide.DockerTransfer.POST({path:C,force:x,overwriteDir:!!v.value}).then(A=>{var z;if(A!=null&&A.data){if((A.data.success||0)==0){if((z=A.data.result)!=null&&z.emptyPathWarning){m.value=!0,c.value=2;return}c.value=1;return}else if(A.data.error)throw A.data.error}throw a("\u672A\u77E5\u9519\u8BEF")}).catch(A=>{$.Error(A)}).finally(()=>S.Close())},f=()=>{m.value=!1,y(!1)},F=x=>{x.preventDefault(),n.Close&&n.Close()},w=x=>{x.preventDefault(),location.reload()},h=x=>{x.preventDefault(),c.value=0},_=x=>{x.preventDefault(),y(!0)};return(x,C)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>{var S,A,z,B,H,M;return[c.value==0?(r(),s("div",iv,[t("h2",rv,i(e(a)("Docker\u8FC1\u79FB\u5411\u5BFC")),1),t("p",sv,i(e(a)("\u5F53\u7CFB\u7EDF\u6839\u76EE\u5F55\u7A7A\u95F4\u4E0D\u8DB3\u65F6\uFF0C\u53EF\u5C06Docker\u6839\u76EE\u5F55\u8FC1\u79FB\u5230\u5916\u7F6E\u786C\u76D8\uFF0C\u4EE5\u4FDD\u8BC1\u7CFB\u7EDF\u7684\u6B63\u5E38\u8FD0\u884C\uFF08\u76EE\u6807\u5206\u533A\u4E0D\u652F\u6301NTFS\uFF0CFAT\u7B49\u6587\u4EF6\u7CFB\u7EDF\uFF09")),1),t("div",dv,[t("span",lv,i(e(a)("Docker\u6839\u76EE\u5F55\uFF1A")),1),t("span",uv,i((S=u.value)==null?void 0:S.path),1)]),t("div",cv,[t("span",pv,i(e(a)("\u8FC1\u79FB\u5230\uFF1A")),1),(z=(A=d.value)==null?void 0:A.partitionList)!=null&&z.length?(r(),s("div",fv,[t("form",{onSubmit:ft(f,["prevent"])},[t("label",null,[t("div",gv,[O(t("select",{"onUpdate:modelValue":C[0]||(C[0]=q=>k.value=q)},[t("option",vv,i(e(a)("\u8BF7\u9009\u62E9\u8FC1\u79FB\u8DEF\u5F84")),1),(r(!0),s(U,null,tt((B=d.value)==null?void 0:B.partitionList,(q,T)=>(r(),s("option",{value:q,key:T},i(q),9,bv))),128)),t("option",hv,i(e(a)("- -\u81EA\u5B9A\u4E49- -")),1)],512),[[pt,k.value,void 0,{trim:!0}]]),k.value=="useInput"?O((r(),s("input",{key:0,type:"text","onUpdate:modelValue":C[1]||(C[1]=q=>g.value=q),required:"",placeholder:e(a)("\u8BF7\u8F93\u5165\u8FC1\u79FB\u8DEF\u5F84")},null,8,_v)),[[at,g.value,void 0,{trim:!0}]]):D("",!0)])])],40,mv)])):d.value?(r(),s("div",xv,[t("div",wv,[Y(It),t("span",kv,i(e(a)("\u68C0\u6D4B\u5230\u60A8\u8FD8\u6CA1\u6709\u6302\u8F7D\u5916\u7F6E\u786C\u76D8\u6216\u5206\u533A\u5C0F\u4E8E8GB\uFF0C\u9700\u8981\u60A8\u63A5\u4E0A\u786C\u76D8\u5E76\u683C\u5F0F\u5316\u6216\u624B\u52A8\u6302\u8F7D\u786C\u76D8\u540E\uFF0C\u518D\u6267\u884CDocker\u8FC1\u79FB\u5411\u5BFC\uFF0C\u5C06Docker\u8FC1\u79FB\u5230\u76EE\u6807\u786C\u76D8\u3002")),1)])])):D("",!0)]),(M=(H=d.value)==null?void 0:H.partitionList)!=null&&M.length?(r(),s("div",yv,[t("button",{class:"cbi-button cbi-button-apply",onClick:f},i(e(a)("\u786E\u5B9A")),1),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:F},i(e(a)("\u53D6\u6D88")),1)])):(r(),s("div",Fv,[t("button",{class:"cbi-button cbi-button-apply",onClick:F},i(e(a)("\u786E\u5B9A")),1)]))])):c.value==1?(r(),s("div",Ev,[t("h2",$v,i(e(a)("Docker\u8FC1\u79FB\u5411\u5BFC")),1),t("div",Cv,[Y(ua)]),t("p",Dv,i(e(a)("\u8FC1\u79FB\u6210\u529F\uFF01")),1),t("div",Bv,[t("button",{class:"cbi-button cbi-button-apply",onClick:w},i(e(a)("\u786E\u5B9A")),1)])])):c.value==2?(r(),s("div",Yv,[t("h2",Av,i(e(a)("Docker\u8FC1\u79FB\u5411\u5BFC")),1),t("div",Sv,[Y(nv)]),t("p",zv,i(e(a)("\u8BE5\u76EE\u6807\u8DEF\u5F84\u4E0D\u4E3A\u7A7A")),1),t("div",Pv,[t("div",Tv,[O(t("input",{type:"radio",id:"move",name:"moves","onUpdate:modelValue":C[2]||(C[2]=q=>v.value=q),value:""},null,512),[[Bt,v.value]]),t("label",Iv,i(e(a)("\u66F4\u6362\u76EE\u5F55\uFF08\u4E0D\u8986\u76D6\u76EE\u6807\u8DEF\u5F84\uFF0C\u4EC5\u5C06Docker\u76EE\u5F55\u4FEE\u6539\u4E3A\u76EE\u6807\u8DEF\u5F84\uFF09")),1)]),t("div",Mv,[O(t("input",{type:"radio",id:"cover",name:"moves","onUpdate:modelValue":C[3]||(C[3]=q=>v.value=q),value:"true"},null,512),[[Bt,v.value]]),t("label",Lv,i(e(a)("\u8986\u76D6\u8FC1\u79FB\uFF08\u8986\u76D6\u76EE\u6807\u8DEF\u5F84\uFF0C\u7EE7\u7EED\u8FC1\u79FB\u4F1A\u6E05\u7A7A\u8BE5\u76EE\u6807\u8DEF\u5F84\u4E0B\u7684\u6587\u4EF6\uFF09")),1)])]),t("div",Ov,[m.value?(r(),s("button",{key:0,class:"cbi-button cbi-button-apply",onClick:_},i(e(a)("\u786E\u5B9A")),1)):D("",!0),t("button",{class:"cbi-button cbi-button-apply",onClick:h},i(e(a)("\u8FD4\u56DE")),1),m.value?D("",!0):(r(),s("button",{key:1,class:"cbi-button cbi-button-remove app-btn app-back",type:"button",onClick:w},i(e(a)("\u53D6\u6D88")),1))])])):D("",!0)]}),_:1},8,["Close"]))}});var Vv=N(Nv,[["__scopeId","data-v-a5cf4814"]]);const Gv=()=>{const o=document.createElement("div");document.body.appendChild(o);const n=xt(Vv,{Close:()=>{a()}});n.mount(o);const a=()=>{n.unmount(),o.remove()};return{Close:a}},jv={href:"/cgi-bin/luci/admin/services/dockerman/overview"},Uv={key:0,class:"content"},qv={key:1,class:"content",style:{display:"flex","justify-content":"center"}},Rv=I({setup(o){const{$gettext:n}=J(),a=E(!1),l=E(),u=E(!1),d=()=>{Gv()};return setTimeout(()=>{G.Guide.DockerStatus.GET().then(k=>{var g;if((g=k==null?void 0:k.data)!=null&&g.result){const p=k.data.result;l.value=p}}).finally(()=>{a.value=!0})},1100),(k,g)=>{var m;const p=_t("icon-loading");return r(),Z(Wt,{title:"Docker",showSettings:!0,onFooterClick:d,style:{width:"100%",height:"100%",display:"block"},"is-settings-menu-open":u.value,"onUpdate:isSettingsMenuOpen":g[1]||(g[1]=v=>u.value=v)},Fo({icon:V(()=>[Y(Sa,{color:"#155dfc",class:"icon"})]),settings:V(()=>{var v;return[t("div",{class:"btn_settings",onClick:d},[Y(Sa,{color:"#0a0a0a",class:"icon1 dockerIcon",style:{"margin-right":"6px"}}),t("span",null,i(e(n)("Docker\u8FC1\u79FB")),1),((v=l.value)==null?void 0:v.status)==="running"?(r(),s("div",{key:0,class:"rotation",onClick:g[0]||(g[0]=ft(b=>u.value=!u.value,["stop"]))},[Y(Ee,{class:"moreIcon"})])):D("",!0)])]}),default:V(()=>[a.value?(r(),s("div",Uv,[Y(Qg,{docker:l.value},null,8,["docker"])])):(r(),s("div",qv,[Y(p,{size:40,color:"currentColor"})]))]),_:2},[((m=l.value)==null?void 0:m.status)==="running"?{name:"settings-menu",fn:V(()=>[t("div",null,[t("a",jv,i(e(n)("Docker\u9AD8\u7EA7\u914D\u7F6E")),1)])])}:void 0]),1032,["is-settings-menu-open"])}}});var Wv=N(Rv,[["__scopeId","data-v-223e456a"]]);const Hv={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Jv=["fill"],Zv=["fill"],io=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",Hv,[t("path",{d:"M577.78 355.55H449.62c-52.93 0-96 43.07-96 96V579.7c0 52.93 43.07 96 96 96h128.15c52.93 0 96-43.07 96-96V451.55c0.01-52.93-43.06-96-95.99-96z m32 224.15c0 17.64-14.36 32-32 32H449.62c-17.65 0-32-14.36-32-32V451.55c0-17.65 14.35-32 32-32h128.15c17.64 0 32 14.35 32 32V579.7z",fill:o.color,"p-id":"5378"},null,8,Jv),t("path",{d:"M927.33 547.13c17.67 0 32-14.33 32-32s-14.33-32-32-32h-62.44V355.2h62.44c17.67 0 32-14.33 32-32s-14.33-32-32-32h-64.37c-10.34-64.43-61.3-115.45-125.69-125.87v-64.19c0-17.67-14.33-32-32-32s-32 14.33-32 32v62.22H545.34v-62.22c0-17.67-14.33-32-32-32s-32 14.33-32 32v62.22H353.2v-62.22c0-17.67-14.33-32-32-32s-32 14.33-32 32v64.16c-64.46 10.37-115.49 61.42-125.83 125.9H99.14c-17.67 0-32 14.33-32 32s14.33 32 32 32h62.3v127.93h-62.3c-17.67 0-32 14.33-32 32s14.33 32 32 32h62.3v128.14h-62.3c-17.67 0-32 14.33-32 32s14.33 32 32 32h64.28c10.45 64.34 61.42 115.25 125.79 125.61v64.46c0 17.67 14.33 32 32 32s32-14.33 32-32v-62.51h128.14v62.51c0 17.67 14.33 32 32 32s32-14.33 32-32v-62.51h127.93v62.51c0 17.67 14.33 32 32 32s32-14.33 32-32v-64.48c64.3-10.41 115.2-61.29 125.64-125.58h64.42c17.67 0 32-14.33 32-32s-14.33-32-32-32H864.9V547.13h62.43zM800.89 714.82c0 48.52-39.48 88-88 88H313.44c-48.52 0-88-39.48-88-88V315.36c0-48.52 39.48-88 88-88H712.9c48.52 0 88 39.48 88 88v399.46z",fill:o.color,"p-id":"5379"},null,8,Zv)]))}}),Kv={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},Qv=["fill"],Xv=I({props:{color:{type:String,default:"#ef4444"}},setup(o){return(n,a)=>(r(),s("svg",Kv,[t("path",{d:"M520 75c72.899 0 132.133 58.543 133.31 131.209l0.018 2.206v399.237C700.759 646.978 729 705.514 729 768.714c0 84.846-50.493 157.892-123.051 190.69C579.509 971.959 549.966 979 518.85 979c-57.133 0-108.962-23.737-146.008-61.784C334.65 879.324 311 826.783 311 768.714c0-63.27 28.313-121.806 75.67-161.065l0.002-399.234C386.672 134.732 446.365 75 520 75z m0 59.807c-40.22 0-72.9 32.3-73.55 72.39l-0.01 1.218v403.457c4.008 12.048-0.02 25.747-10.721 33.573l-0.619 0.441c-40.008 27.753-64.332 73.214-64.332 122.828 0 82.472 66.813 149.33 149.232 149.33s149.232-66.858 149.232-149.33c0-47.591-22.367-91.397-59.645-119.44l-1.134-0.846a29.773 29.773 0 0 1-10.972-15.751 29.763 29.763 0 0 1-3.913-14.111l-0.008-0.706V208.415c0-40.653-32.934-73.608-73.56-73.608z m-2.299 236.926c4.41 0 8.66 0.69 12.647 1.968 16.826 4.965 29.19 20.52 29.19 38.81l0.002 240.184c47.972 17.182 82.294 63.07 82.294 116.982 0 6.94-0.568 13.747-1.662 20.376-6.746 60.536-58.728 108.02-121.321 108.02-47.223 0-88.407-27.027-108.683-66.296-10.557-18.27-16.6-39.479-16.6-62.1 0-54.083 34.542-100.093 82.754-117.145l0.002-239.422c0-22.852 18.525-41.377 41.377-41.377z",fill:o.color,"p-id":"4599"},null,8,Qv)]))}}),tb={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},eb=["fill"],ro=I({props:{color:{type:String,default:"#222222"}},setup(o){return(n,a)=>(r(),s("svg",tb,[t("path",{d:"M760.1 64l-150 262.7-41 71.8c-6.1 10.7 1.6 23.9 13.9 23.9h104.7c13.9 0 21.2 16.6 11.8 26.9L410.8 761.9l59.5-178.5 21.1-63.2c3.5-10.4-4.3-21.1-15.2-21.1H277.8c-11.6 0-19.4-12-14.6-22.6l179-393.8c5.2-11.4 16.6-18.8 29.1-18.8h288.8M450.8 0c-25.1 0-47.9 14.7-58.3 37.5L194.7 472.7c-19.3 42.4 11.7 90.5 58.3 90.5h145.5c5.5 0 9.3 5.3 7.6 10.5L256 1024l515.3-558.2c37.8-41 8.8-107.4-47-107.4h-44.8c-6.1 0-10-6.6-6.9-12L870.4 0H450.8z","p-id":"4712",fill:o.color},null,8,eb)]))}}),ab={key:0,class:"center-content"},ob=I({props:{value:null,color:null,icon:null,label:null,width:null,height:null},setup(o){const n=o;Xe([Eo,ta,ea]);const a=E(null);let l=null;function u(k,g){return{tooltip:{show:!1},series:[{type:"pie",radius:["75%","90%"],avoidLabelOverlap:!1,label:{show:!1},labelLine:{show:!1},z:1,zlevel:0,data:[{value:k,itemStyle:{color:g||"#409EFF"}},{value:Math.max(0,100-k),itemStyle:{color:"#f0f0f0"}}]}]}}const d=()=>{!a.value||(l=l!=null?l:aa(a.value),l.setOption(u(n.value,n.color)))};Pt(()=>L(this,null,function*(){yield na(),d(),window.addEventListener("resize",c)}));function c(){l==null||l.resize()}return $t(()=>[n.value,n.color],()=>{l?l.setOption({series:[{z:1,zlevel:0,data:[{value:n.value,itemStyle:{color:n.color||"#409EFF"}},{value:Math.max(0,100-n.value),itemStyle:{color:"#f0f0f0"}}]}]}):d()},{immediate:!0}),ke(()=>{window.removeEventListener("resize",c),l==null||l.dispose(),l=null}),(k,g)=>(r(),s("div",{class:"pie-chart-wrapper",style:ht({width:o.width||"120px",height:o.height||"120px"})},[t("div",{ref_key:"chartDom",ref:a,class:"chart-dom"},null,512),o.icon||o.label?(r(),s("div",ab,[o.icon==="chip"?(r(),Z(io,{key:0,color:o.color,class:"center-icon"},null,8,["color"])):o.icon==="temperature"?(r(),Z(Xv,{key:1,color:o.color,class:"center-icon"},null,8,["color"])):o.icon==="lightning"?(r(),Z(ro,{key:2,color:o.color,class:"center-icon"},null,8,["color"])):D("",!0),o.label?(r(),s("div",{key:3,class:"center-label",style:ht({color:o.color})},i(o.label),5)):D("",!0)])):D("",!0)],4))}});var Qe=N(ob,[["__scopeId","data-v-1b4ddc16"]]);const nb={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},ib=["fill"],za=I({props:{color:{type:String,default:"#0a0a0a"}},setup(o){return(n,a)=>(r(),s("svg",nb,[t("path",{d:"M868.95177918 215.34678468H274.11312994c-10.26749627 0-19.00277466 3.6151618-26.30943653 10.88910739-7.22487113 7.23032433-10.89456058 15.97650768-10.89456059 26.20583515v370.75858453c0 10.24023245 3.66968946 18.95370022 10.89456059 26.22764579 7.30666259 7.22487113 16.04194099 10.86184429 26.30943653 10.86184429h594.83864924c10.28385442 0 19.04094415-3.63697315 26.28217344-10.86184429 7.30120941-7.27394558 10.9218244-15.98741334 10.92182439-26.22764579V252.44172722c0-10.2293275-3.62061501-18.97551083-10.92727686-26.20583516-7.23577681-7.27394558-15.99286582-10.8891081-26.27672097-10.88910738M274.09131931 141.21142578h594.83864924c30.77522572 0 57.07375657 10.86729676 78.86287773 32.59643853 21.78912116 21.74004671 32.66187112 47.91861806 32.66187114 78.62841045v370.76403699c0 30.68798176-10.87274996 56.91562756-32.66187114 78.63386293-21.78912116 21.72914105-48.08765274 32.59643853-78.86287773 32.59643851H608.68737796v74.15716953h111.5465602c10.26204379 0 19.03003849 3.6151618 26.28217344 10.8891081 7.29030445 7.22487113 10.91091874 15.97650768 10.91091872 26.20583518 0 10.24023245-3.62061501 18.98641651-10.91637192 26.20038195-7.25213496 7.28485125-16.01467717 10.90001305-26.27672024 10.90001379H422.80370787c-10.27840195 0-19.0191328-3.6151618-26.30943728-10.90001379-7.25213496-7.21396618-10.89456058-15.96014952-10.89456056-26.20038195 0-10.23477998 3.6478781-18.97551083 10.89456056-26.20583518 7.29030445-7.27394558 16.03103531-10.8891081 26.30943728-10.8891081h111.53565452v-74.15716953H274.09131931c-30.79703633 0-57.09011544-10.86729676-78.86287845-32.59643851C173.43931968 680.11593931 162.54475911 653.88829351 162.54475911 623.20031175V252.44172722C162.54475911 221.72648236 173.43931968 195.54791102 195.22844086 173.80786431 217.00665706 152.07872254 243.29428298 141.21142578 274.09131931 141.21142578","p-id":"6454",fill:o.color},null,8,ib)]))}}),rb={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},sb=["fill"],db=["fill"],lb=I({props:{color:{type:String,default:"#333333"}},setup(o){return(n,a)=>(r(),s("svg",rb,[t("path",{d:"M512 458.67c-8.66 0-15.69 7.02-15.69 15.69v125.49c0 8.66 7.02 15.69 15.69 15.69s15.69-7.02 15.69-15.69v-125.5c0-8.66-7.03-15.68-15.69-15.68z m-31.37-26.98h62.75c8.66 0 15.69-7.02 15.69-15.69 0-8.66-7.02-15.69-15.69-15.69h-15.69V296.78c0-8.66-7.02-15.69-15.69-15.69s-15.69 7.02-15.69 15.69v103.53h-15.69c-8.66 0-15.69 7.02-15.69 15.69 0.01 8.66 7.03 15.69 15.7 15.69z m219.61 53.33c-8.66 0-15.69 7.02-15.69 15.69V601.1c0 8.66 7.02 15.69 15.69 15.69s15.69-7.02 15.69-15.69v-99.76c0.35-8.66-6.39-15.95-15.05-16.3-0.22-0.02-0.43-0.02-0.64-0.02z m-31.38-27.61h62.75c8.66 0 15.69-7.02 15.69-15.69 0-8.66-7.02-15.69-15.69-15.69h-14.43V296.78c0-8.66-7.02-15.69-15.69-15.69s-15.69 7.02-15.69 15.69v125.49h-16.94c-8.66 0-15.69 7.02-15.69 15.69 0 8.66 7.02 15.69 15.69 15.69v3.76z m-376.47 32.63h62.75c8.66 0 15.69-7.02 15.69-15.69s-7.02-15.69-15.69-15.69h-15.69V296.78c0-8.66-7.02-15.69-15.69-15.69-8.66 0-15.69 7.02-15.69 15.69v161.88h-15.69c-8.66 0-15.69 7.02-15.69 15.69s7.04 15.69 15.7 15.69z m31.37 32c-8.66 0-15.69 7.02-15.69 15.69v62.75c0 8.66 7.02 15.69 15.69 15.69 8.66 0 15.69-7.02 15.69-15.69v-62.75c0-8.67-7.02-15.69-15.69-15.69z",fill:o.color,"p-id":"15217"},null,8,sb),t("path",{d:"M870 116.39H154c-49.71 0-90 40.29-90 90v485.1c0 49.71 40.29 90 90 90h716c49.71 0 90-40.29 90-90v-485.1c0-49.7-40.29-90-90-90z m50 565.1c0 33.14-26.86 60-60 60H164c-33.14 0-60-26.86-60-60v-465.1c0-33.14 26.86-60 60-60h696c33.14 0 60 26.86 60 60v465.1zM680.24 907.61H343.76c-11.05 0-20-8.95-20-20s8.95-20 20-20h336.48c11.05 0 20 8.95 20 20 0 11.04-8.96 20-20 20z",fill:o.color,"p-id":"15218"},null,8,db)]))}}),ub={href:"/cgi-bin/luci/admin/system/flash"},cb={href:"/cgi-bin/luci/admin/store/pages/maintance"},pb={class:"content"},fb={class:"chart_box"},mb={class:"chart"},gb={class:"chart"},vb={class:"chart"},bb={class:"info"},hb={class:"item1 bgcolor1"},_b={style:{"font-weight":"bold","margin-top":"2px"}},xb={class:"item1 bgcolor2"},wb={style:{"font-weight":"bold","margin-top":"2px"}},kb={class:"item"},yb={class:"item"},Fb=I({setup(o){const{$gettext:n}=J(),a=Le(),l=Q(()=>a.version),u=Q(()=>a.systemStatus),d=E(!1),c=Q(()=>{var w;return((w=u.value)==null?void 0:w.cpuUsage)||0}),k=Q(()=>{var w;return((w=u.value)==null?void 0:w.cpuTemperature)||0}),g=Q(()=>{var h;const w=((h=u.value)==null?void 0:h.memAvailablePercentage)||100;return 100-w}),p=Q(()=>{const w=c.value;return w<76?"#3b82f6":w>=76&&w<96?"#f59e0b":"#ef4444"}),m=Q(()=>k.value<=115?"#22c55e":"#f97316"),v=Q(()=>{const w=g.value;return w<76?"#8b5cf6":w>=76&&w<96?"#fb923c":"#b91c1c"}),b=()=>{location.href="/cgi-bin/luci/admin/status/overview"},y=Mt.stampForm;Pt(()=>{});const f=()=>{d.value=!d.value},F=()=>{f(),zt.installAndGo("app-meta-netdata","NetData","/cgi-bin/luci/admin/status/netdata")};return(w,h)=>(r(),Z(Wt,{title:e(n)("\u7CFB\u7EDF\u4FE1\u606F"),showFooter:!1,style:{width:"100%",height:"100%",display:"block"}},{icon:V(()=>[Y(za,{class:"icon computerIcon"})]),settings:V(()=>[t("div",{class:"btn_settings",onClick:b},[Y(za,{color:"#0a0a0a",class:"icon2 computerIcon",style:{"margin-right":"6px"}}),t("span",null,i(e(n)("\u4FE1\u606F\u6982\u89C8")),1)])]),"settings-menu":V(()=>[t("div",null,[t("a",{onClick:F},i(e(n)("\u7CFB\u7EDF\u76D1\u63A7")),1)]),t("div",null,[t("a",ub,i(e(n)("\u5907\u4EFD\u5347\u7EA7")),1)]),t("div",null,[t("a",cb,i(e(n)("\u63D2\u4EF6\u5907\u4EFD")),1)])]),default:V(()=>{var _,x,C,S,A;return[t("div",pb,[t("div",fb,[t("div",mb,[Y(Qe,{value:e(c),color:e(p),icon:"chip",label:`${e(c)}%`,width:"150px",height:"150px"},null,8,["value","color","label"]),t("div",null,i(e(n)("CPU\u4F7F\u7528\u7387")),1)]),t("div",gb,[Y(Qe,{value:e(k)/1.5,color:e(m),icon:"temperature",label:`${e(k)}\u2103`,width:"150px",height:"150px"},null,8,["value","color","label"]),t("div",null,i(e(n)("CPU\u6E29\u5EA6")),1)]),t("div",vb,[Y(Qe,{value:e(g),color:e(v),icon:"lightning",label:`${e(g)}%`,width:"150px",height:"150px"},null,8,["value","color","label"]),t("div",null,i(e(n)("\u5185\u5B58\u4F7F\u7528\u7387")),1)])]),t("div",bb,[t("div",hb,[t("div",null,[Y(io,{color:"#155dfc",class:"icon1",style:{"margin-bottom":"0"}}),t("span",null,i(e(n)("\u8BBE\u5907\u578B\u53F7")),1)]),t("span",_b,i((_=e(l))==null?void 0:_.model),1)]),t("div",xb,[t("div",null,[Y(lb,{color:"#00a63e",class:"icon1",style:{"margin-bottom":"0"}}),t("span",null,i(e(n)("\u56FA\u4EF6\u7248\u672C")),1)]),t("span",wb,i((x=e(l))==null?void 0:x.firmwareVersion)+"\uFF08"+i(e(n)("\u5185\u6838"))+"\uFF1A"+i((C=e(l))==null?void 0:C.kernelVersion)+"\uFF09",1)]),t("div",kb,[t("div",null,i(e(n)("\u7CFB\u7EDF\u65F6\u95F4"))+"\uFF1A",1),t("span",null,i((S=e(u))==null?void 0:S.localtime),1)]),t("div",yb,[t("div",null,i(e(n)("\u5DF2\u542F\u52A8"))+"\uFF1A",1),t("span",null,i(e(y)((A=e(u))==null?void 0:A.uptime)),1)])])])]}),_:1},8,["title"]))}});var Eb=N(Fb,[["__scopeId","data-v-e005287c"]]);const $b=["onClick"],Cb={class:"modal-header"},Db={class:"modal-title"},Bb={class:"modal-content"},Yb={key:0,class:"modal-footer"},Xt=I({props:{modelValue:{type:Boolean},title:{default:"\u63D0\u793A"},showClose:{type:Boolean,default:!0},closeOnClickOverlay:{type:Boolean,default:!1},footerShow:{type:Boolean,default:!0},width:{default:"500px"}},emits:["update:modelValue","confirm","cancel","close"],setup(o,{expose:n,emit:a}){const l=o;$o(v=>({"3fcd09c7":e(d)}));const{$gettext:u}=J(),d=Q(()=>typeof l.width=="number"?`${l.width}px`:l.width),c=E(l.modelValue);$t(()=>l.modelValue,v=>{c.value=v}),$t(c,v=>{a("update:modelValue",v),v||a("close")}),Q(()=>typeof l.width=="number"?`${l.width}px`:l.width);const k=()=>{c.value=!1},g=()=>{l.closeOnClickOverlay&&m()},p=()=>{a("confirm")},m=()=>{a("cancel"),k()};return n({show:()=>c.value=!0,hide:()=>c.value=!1}),(v,b)=>(r(),Z(St,{name:"fade"},{default:V(()=>[c.value?(r(),s("div",{key:0,class:"modal-overlay",onClick:ft(g,["self"])},[Y(St,{name:"slide"},{default:V(()=>[t("div",{class:"modal-container",style:ht({maxWidth:e(d)})},[t("div",Cb,[t("h3",Db,i(e(u)(o.title)),1),o.showClose?(r(),s("button",{key:0,class:"modal-close",onClick:m,"aria-label":"Close"}," \xD7 ")):D("",!0)]),t("div",Bb,[Yt(v.$slots,"default")]),o.footerShow?(r(),s("div",Yb,[Yt(v.$slots,"footer",{},()=>[t("button",{class:"modal-button cancel",onClick:m},i(e(u)("\u53D6\u6D88")),1),t("button",{class:"modal-button confirm",onClick:p},i(e(u)("\u4FDD\u5B58")),1)])])):D("",!0)],4)]),_:3})],8,$b)):D("",!0)]),_:3}))}}),Ab=o=>(ut("data-v-ca434918"),o=o(),ct(),o),Sb=Ab(()=>t("span",{class:"switch__button"},null,-1)),zb=[Sb],Pb=["checked","disabled"],Tb=I({props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},activeColor:{default:"#409EFF"},inactiveColor:{default:"#DCDFE6"}},emits:["update:modelValue","change","beforeChange"],setup(o,{emit:n}){const a=o,l=()=>{if(n("beforeChange",!a.modelValue),a.disabled)return;const u=!a.modelValue;n("update:modelValue",u),n("change",u)};return Q(()=>a.modelValue),(u,d)=>(r(),s("div",{class:lt(["switch",{"is-checked":o.modelValue,"is-disabled":o.disabled}]),onClick:l},[t("span",{class:"switch__core",style:ht({backgroundColor:o.modelValue?o.activeColor:o.inactiveColor,borderColor:o.modelValue?o.activeColor:o.inactiveColor})},zb,4),t("input",{type:"checkbox",class:"switch__input",checked:o.modelValue,disabled:o.disabled},null,8,Pb)],2))}});var Ot=N(Tb,[["__scopeId","data-v-ca434918"]]);const Ib={class:"module-settings"},Mb={class:"module-settings__header"},Lb={class:"module-settings__summary"},Ob={class:"module-settings__badge"},Nb={class:"module-settings__texts"},Vb={class:"module-settings__title"},Gb={class:"module-settings__sub"},jb={class:"module-settings__list"},Ub={class:"module-settings__info"},qb={class:"module-settings__name"},Rb={class:"module-settings__desc"},Wb={class:"module-settings__footer"},Hb=I({props:{visible:{type:Boolean},modules:null,states:null},emits:["update:visible","update:states","cancel","save"],setup(o,{emit:n}){const a=o,{$gettext:l}=J(),u=Q({get:()=>a.visible,set:b=>n("update:visible",b)}),d=()=>{const b={};return a.modules.forEach(y=>{var f,F;b[y.key]=(F=(f=a.states)==null?void 0:f[y.key])!=null?F:!0}),b},c=gt(d());$t(()=>a.visible,b=>{b&&Object.assign(c,d())}),$t(()=>a.states,()=>{Object.assign(c,d())},{deep:!0}),$t(()=>a.modules,()=>{Object.assign(c,d())},{deep:!0});const k=Q(()=>a.modules.reduce((b,y)=>c[y.key]?b+1:b,0)),g=(b,y)=>{const f=a.modules.find(F=>F.key===b);if(!!f&&!f.disabled){if(y===!1&&a.modules.reduce((w,h)=>c[h.key]?w+1:w,0)<=1)return $.Warning(l("\u8BF7\u81F3\u5C11\u4FDD\u7559\u4E00\u9879\uFF01"));c[b]=y}},p=()=>{n("cancel"),u.value=!1},m=()=>{const b=st({},a.states||{});a.modules.forEach(y=>{b[y.key]=!!c[y.key]}),n("save",b)},v=()=>{a.modules.forEach(b=>{b.disabled||(c[b.key]=!0)})};return(b,y)=>(r(),Z(Xt,{modelValue:e(u),"onUpdate:modelValue":y[0]||(y[0]=f=>Ia(u)?u.value=f:null),title:e(l)("\u6A21\u5757\u663E\u793A\u8BBE\u7F6E"),width:"640px","show-close":!0,onCancel:p,onConfirm:m},{footer:V(()=>[t("div",Wb,[t("button",{class:"module-settings__btn module-settings__btn--secondary",type:"button",onClick:p},i(e(l)("\u53D6\u6D88")),1),t("button",{class:"module-settings__btn module-settings__btn--primary",type:"button",onClick:m},i(e(l)("\u4FDD\u5B58\u8BBE\u7F6E")),1)])]),default:V(()=>[t("span",null,i(e(l)("\u9009\u62E9\u8981\u5728\u9996\u9875\u663E\u793A\u7684\u529F\u80FD\u6A21\u5757\uFF0C\u9690\u85CF\u4E0D\u5E38\u7528\u7684\u6A21\u5757\u53EF\u4EE5\u8BA9\u754C\u9762\u66F4\u7B80\u6D01")),1),t("div",Ib,[t("div",Mb,[t("div",Lb,[t("div",Ob,i(e(k)),1),t("div",Nb,[t("span",Vb,i(e(l)("\u5DF2\u663E\u793A\u6A21\u5757")),1),t("span",Gb,i(e(l)("\u5171"))+i(o.modules.length)+i(e(l)("\u4E2A\u6A21\u5757")),1)])]),t("button",{class:"module-settings__toggle-all",type:"button",onClick:v},i(e(l)("\u5168\u90E8\u663E\u793A")),1)]),t("div",jb,[(r(!0),s(U,null,tt(o.modules,f=>(r(),s("div",{key:f.key,class:lt(["module-settings__item",{"module-settings__item--disabled":f.disabled}])},[t("div",Ub,[t("div",qb,[t("span",{class:lt(["module-settings__dot",{"is-active":e(c)[f.key]}])},null,2),t("span",null,i(f.title),1)]),t("p",Rb,i(f.description),1)]),Y(Ot,{"model-value":e(c)[f.key],disabled:f.disabled,"active-color":"#553AFE","inactive-color":"#E5E6EB",onChange:F=>g(f.key,F)},null,8,["model-value","disabled","onChange"])],2))),128))])])]),_:1},8,["modelValue","title"]))}});var Jb=N(Hb,[["__scopeId","data-v-79624e8f"]]);const Zb={class:"page-container"},Kb={style:{height:"48px","text-align":"right",display:"flex","justify-content":"flex-end","align-items":"start"}},Qb={style:{display:"flex","align-items":"center"}},Xb={onclick:"void(0)",href:"https://www.istoreos.com/",target:"_blank",style:{"text-decoration":"none",color:"white","line-height":"1.5em"}},th=["title"],eh={key:0,class:"card-container"},ah={key:1,style:{"margin-top":"10px"}},oh={key:0,class:"network-stack"},nh={class:"stack-item"},ih={class:"stack-item",style:{"margin-top":"10px"}},rh={key:1,class:"network-container"},sh={key:2,class:"network-container align-c"},dh={class:"left-box"},lh={key:3,class:"other-container"},uh={class:"grid-container"},ch={key:4,class:"system"},ph=I({setup(o){var T,j;const{$gettext:n}=J(),a=Pe();en();const l=Le(),u=E(!0);(j=(T=window.quickstart_configs)==null?void 0:T.update)!=null&&j.disable&&(u.value=!1),u.value&&setTimeout(()=>{l.requestCheckUpdate()},1100);const d=Fe(),c=Q(()=>d.deviceList),k=Q(()=>{var R,it;return[{icon:"navigation",title:n("\u7F51\u7EDC\u5411\u5BFC"),subtitle:n("\u7F51\u7EDC\u914D\u7F6E\u5F15\u5BFC"),tag:n("\u667A\u80FD\u914D\u7F6E"),status:"",extra:"",color:"purple",link:"/network"},{icon:"topology",title:n("\u5C40\u57DF\u7F51\u8BBE\u5907\u7BA1\u7406"),subtitle:n("\u7BA1\u7406\u7F51\u7EDC\u4E2D\u7684\u6240\u6709\u8BBE\u5907"),badge:n("\u63A8\u8350"),status:"",num:((it=(R=c.value)==null?void 0:R.devices)==null?void 0:it.length)||0,color:"blue",link:"/devicemanagement"},{icon:"speed",title:n("\u7F51\u7EDC\u6D4B\u901F"),subtitle:n("\u68C0\u6D4B\u7F51\u7EDC\u901F\u5EA6"),status:"",color:"skyblue",link:"/networkSpeedTest"},{icon:"baby",title:n("\u5BB6\u957F\u63A7\u5236"),subtitle:n("\u513F\u7AE5\u4E0A\u7F51\u4FDD\u62A4"),badge:n("\u4FDD\u62A4"),status:"",extra:"",color:"pink",isActive:!0,alink:"/cgi-bin/luci/admin/services/appfilter"},{icon:"appStore",title:n("\u5E94\u7528\u5546\u5E97"),subtitle:n("\u767E\u6B3E\u5E94\u7528\uFF0C\u81EA\u7531\u9009\u62E9"),status:"",color:"orange",alink:"/cgi-bin/luci/admin/store/pages/store"}]}),g=R=>{if(!!R.title){if(R.icon=="speed")return m();if(R.icon=="baby")return p();R.link?a.push(R.link):R.alink&&(window.location.href=R.alink)}},p=()=>L(this,null,function*(){(yield zt.checkAndInstallApp("luci-app-oaf","\u5E94\u7528\u8FC7\u6EE4"))&&(window.location.href="/cgi-bin/luci/admin/services/appfilter")}),m=()=>L(this,null,function*(){const R="app-meta-fastnet";(yield zt.checkAndInstallApp(R,n("FastNet")))&&(window.location.href="/cgi-bin/luci/admin/services/fastnet")}),v=E(!1);(()=>L(this,null,function*(){try{const R=yield G.App.Check.POST({name:"luci-app-oaf"});if(R!=null&&R.data){const{result:it,error:ot}=R.data;ot?v.value=!1:it&&it.status=="installed"?v.value=!0:v.value=!1}}catch(R){v.value=!1}}))();const y={quickActions:!0,networkFlow:!0,networkConnection:!0,networkInterface:!0,configModule:!0,diskInfo:!0,storage:!0,docker:!0,downloadService:!0,remoteDomain:!0,systemInfo:!0},f=E({quickActions:!1,networkFlow:!1,networkConnection:!1,networkInterface:!1,configModule:!1,diskInfo:!1,storage:!1,docker:!1,downloadService:!1,remoteDomain:!1,systemInfo:!1}),F=E(!1),w=Q(()=>{const R=[{key:"quickActions",title:n("\u5FEB\u6377\u5165\u53E3"),description:n("\u9876\u90E8\u5FEB\u6377\u6377\u5F84\u6309\u94AE\u7EC4")},{key:"networkFlow",title:n("\u7F51\u7EDC\u6D41\u91CF"),description:n("\u5B9E\u65F6\u6D41\u91CF\u7EDF\u8BA1\u56FE\u8868")},{key:"networkConnection",title:n("\u7F51\u7EDC\u8FDE\u63A5\u548CIP\u5730\u5740"),description:n("\u8054\u7F51\u65F6\u95F4\u548C\u8BBE\u5907\u4FE1\u606F")},{key:"networkInterface",title:n("\u7F51\u7EDC\u63A5\u53E3\u72B6\u6001"),description:n("\u7F51\u7EDC\u63A5\u53E3\u8BE6\u7EC6\u4FE1\u606F")},{key:"configModule",title:n("\u914D\u7F6E\u6A21\u5757"),description:n("\u5185\u7F51\u914D\u7F6E\u3001DNS\u914D\u7F6E\u7B49\u5DE5\u5177")},{key:"diskInfo",title:n("\u78C1\u76D8\u4FE1\u606F"),description:n("\u78C1\u76D8\u4F7F\u7528\u60C5\u51B5\u4E0E\u5BB9\u91CF\u6982\u89C8")},{key:"storage",title:n("\u5B58\u50A8\u670D\u52A1"),description:n("\u5171\u4EAB\u4E0E\u5B58\u50A8\u670D\u52A1\u6982\u89C8")},{key:"downloadService",title:n("\u4E0B\u8F7D\u670D\u52A1"),description:n("\u4E0B\u8F7D\u4EFB\u52A1\u4E0E\u670D\u52A1\u72B6\u6001")},{key:"remoteDomain",title:n("\u8FDC\u7A0B\u57DF\u540D"),description:n("\u8FDC\u7A0B\u8BBF\u95EE\u57DF\u540D\u7BA1\u7406")},{key:"systemInfo",title:n("\u7CFB\u7EDF\u4FE1\u606F"),description:n("\u8BBE\u5907\u7CFB\u7EDF\u4FE1\u606F\u6982\u89C8")}];return Qt("dockerd")&&R.splice(7,0,{key:"docker",title:n("Docker\u6A21\u5757"),description:n("\u5BB9\u5668\u8FD0\u884C\u72B6\u6001\u4E0E\u7BA1\u7406")}),R}),h=Q(()=>f.value.networkFlow||f.value.networkConnection||f.value.networkInterface),_=Q(()=>f.value.networkConnection||f.value.networkInterface),x=Q(()=>f.value.networkFlow&&!f.value.networkConnection&&f.value.networkInterface),C=Q(()=>f.value.networkFlow&&!f.value.networkConnection&&!f.value.networkInterface),S=Q(()=>f.value.networkConnection&&!f.value.networkInterface);typeof window!="undefined"&&$t(()=>[f.value.networkConnection,f.value.networkInterface],()=>{requestAnimationFrame(()=>{window.dispatchEvent(new Event("resize"))})});const A=Q(()=>{const R=[];return f.value.diskInfo&&R.push({key:"diskInfo",component:$g}),f.value.storage&&R.push({key:"storage",component:jf}),Qt("dockerd")&&f.value.docker&&R.push({key:"docker",component:Wv}),f.value.downloadService&&R.push({key:"downloadService",component:n1}),f.value.remoteDomain&&R.push({key:"remoteDomain",component:s5}),R}),z=(R,it)=>{if(it<=0)return"100%";if(it<=2)return`calc((100% - ${(it-1)*24}px) / ${it})`;const ot=Math.min(2,it);if(RL(this,null,function*(){if(!(B.value&&Object.keys(R).some(Dt=>{var yt;return R[Dt]!==((yt=B.value)==null?void 0:yt[Dt])}))){F.value=!1;return}const ot=st(st({},f.value),R);(yield q(ot))&&(f.value=ot,F.value=!1)}),M=()=>L(this,null,function*(){var R,it;try{const ot=yield G.ModuleSettings.GET(),bt=(it=(R=ot==null?void 0:ot.data)==null?void 0:R.result)==null?void 0:it.diableDisplay;if(!bt||bt.length===0||bt.length===1&&bt[0]===""){const Dt=st({},y);f.value=Dt,B.value=st({},Dt)}else{const Dt=st({},y);bt.forEach(yt=>{yt&&yt.trim()&&yt in Dt&&(Dt[yt]=!1)}),f.value=Dt,B.value=st({},Dt)}}catch(ot){console.warn("[ModuleSettings] fetch failed",ot),f.value=st({},y),B.value=st({},y)}}),q=R=>L(this,null,function*(){try{const it=[];return Object.keys(R).forEach(ot=>{R[ot]||it.push(ot)}),yield G.ModuleSettings.POST({diableDisplay:it}),B.value=st({},R),$.Success(n("\u4FDD\u5B58\u6210\u529F")),!0}catch(it){return console.error("[ModuleSettings] save failed",it),$.Warning(n("\u4FDD\u5B58\u5931\u8D25\uFF01")),!1}});return $t(F,R=>{R&&(B.value=st({},f.value))}),M(),(R,it)=>(r(),s("div",Zb,[t("div",Kb,[t("div",Qb,[t("a",Xb,i(e(n)("iStoreOS\u5B98\u7F51")),1),t("span",{title:e(n)("\u6A21\u5757\u8BBE\u7F6E"),class:"model_btn",onClick:it[0]||(it[0]=ot=>F.value=!0)},[Y(R8,{style:{width:"16px",height:"16px"}})],8,th)])]),f.value.quickActions?(r(),s("div",eh,[(r(!0),s(U,null,tt(e(k),(ot,bt)=>(r(),s(U,{key:bt},[ot.icon!==""||v.value?(r(),Z(E4,{key:0,card:ot,onClick:g},null,8,["card"])):D("",!0)],64))),128))])):D("",!0),e(h)?(r(),s("div",ah,[e(x)?(r(),s("div",oh,[t("div",nh,[Y(Fa,{style:{"min-height":"600px"}})]),t("div",ih,[Y(Da)])])):(r(),s("div",rh,[f.value.networkFlow?(r(),s("div",{key:0,class:lt(["left-box",{"full-row":e(C)}])},[Y(Fa,{style:ht(e(C)?{minHeight:"600px"}:void 0)},null,8,["style"])],2)):D("",!0),e(_)?(r(),s("div",{key:1,class:lt(["right-box",{"single-card":e(S)}]),style:{overflow:"visible"}},[f.value.networkConnection?(r(),Z($8,{key:0,class:lt({"fill-card":e(S)})},null,8,["class"])):D("",!0),f.value.networkInterface?(r(),Z(Da,{key:1,style:ht({marginTop:f.value.networkConnection?"10px":"0px"})},null,8,["style"])):D("",!0)],2)):D("",!0)]))])):D("",!0),f.value.configModule?(r(),s("div",sh,[t("div",dh,[Y(Ip)])])):D("",!0),e(A).length?(r(),s("div",lh,[t("div",uh,[(r(!0),s(U,null,tt(e(A),(ot,bt)=>(r(),s("div",{class:"grid-item",key:ot.key,style:ht({flexBasis:z(bt,e(A).length)})},[(r(),Z(oa(ot.component)))],4))),128))])])):D("",!0),f.value.systemInfo?(r(),s("div",ch,[Y(Eb)])):D("",!0),Y(Jb,{visible:F.value,"onUpdate:visible":it[1]||(it[1]=ot=>F.value=ot),modules:e(w),states:f.value,onSave:H},null,8,["visible","modules","states"])]))}});var fh=N(ph,[["__scopeId","data-v-1f2aa331"]]);const mh={};function gh(o,n){const a=_t("router-view");return r(),Z(a)}var vh=N(mh,[["render",gh]]);const bh={},hh={width:"136px",height:"136px",viewBox:"0 0 136 136",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},_h=jt('',2),xh=[_h];function wh(o,n){return r(),s("svg",hh,xh)}var kh=N(bh,[["render",wh]]);const yh={},Fh={width:"136px",height:"136px",viewBox:"0 0 136 136",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Eh=jt('',2),$h=[Eh];function Ch(o,n){return r(),s("svg",Fh,$h)}var Dh=N(yh,[["render",Ch]]);const Bh={},Yh={width:"136px",height:"136px",viewBox:"0 0 136 136",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Ah=jt('',2),Sh=[Ah];function zh(o,n){return r(),s("svg",Yh,Sh)}var Ph=N(Bh,[["render",zh]]);const Th={id:"page"},Ih={class:"title"},Mh={class:"desc"},Lh={class:"network-containers"},Oh={class:"network-container_item"},Nh={class:"cover"},Vh={class:"thumbnail"},Gh={class:"network-container_item"},jh={class:"cover"},Uh={class:"thumbnail"},qh={class:"network-container_item"},Rh={class:"cover"},Wh={class:"thumbnail"},Hh=["innerHTML"],Jh=I({setup(o){const{$gettext:n,$ngettext:a}=J(),l=n("\u6CA1\u627E\u5230\u60F3\u8981\u7684\u914D\u7F6E\uFF1F\u8BF7\u4F7F\u7528%{link}",{link:''+n("\u9AD8\u7EA7\u6A21\u5F0F")+""},!0);return(u,d)=>{const c=_t("router-link");return r(),s("div",Th,[t("div",Ih,i(e(n)("\u6B22\u8FCE\u4F7F\u7528\u7F51\u7EDC\u914D\u7F6E\u5411\u5BFC")),1),t("div",Mh,i(e(n)("\u9009\u62E9\u4E00\u79CD\u8FDE\u63A5\u65B9\u5F0F\u4EE5\u5F00\u59CB")),1),t("div",Lh,[t("div",Oh,[Y(c,{to:"/network/pppoe"},{default:V(()=>[t("div",Nh,[t("div",Vh,[Y(Dh),t("span",null,i(e(n)("\u5BBD\u5E26\u62E8\u53F7\u8FDE\u63A5")),1)])])]),_:1})]),t("div",Gh,[Y(c,{to:"/network/dhcp"},{default:V(()=>[t("div",jh,[t("div",Uh,[Y(kh),t("span",null,i(e(n)("\u8FDE\u63A5\u73B0\u6709\u8DEF\u7531\u5668")),1)])])]),_:1})]),t("div",qh,[Y(c,{to:"/network/gateway"},{default:V(()=>[t("div",Rh,[t("div",Wh,[Y(Ph),t("span",null,i(e(n)("\u914D\u7F6E\u4E3A\u65C1\u8DEF\u7531")),1)])])]),_:1})])]),t("div",{class:"info",innerHTML:e(l)},null,8,Hh)])}}});var Zh=N(Jh,[["__scopeId","data-v-52c03678"]]);const Kh={key:0,id:"page"},Qh={class:"title"},Xh={class:"desc"},t_={class:"network-message"},e_=["innerHTML"],a_=["onSubmit"],o_={class:"label-key"},n_=["placeholder","disabled"],i_={class:"label-key"},r_=["placeholder","disabled"],s_={key:0,class:"chose_dhcp"},d_={class:"dhcp_info"},l_={key:1,class:"msg"},u_={class:"btns"},c_=["disabled"],p_=["onClick"],f_={key:1,id:"page"},m_={class:"title"},g_={class:"btns"},v_=["onClick"],b_=["onClick"],h_=I({setup(o){const{$gettext:n,$ngettext:a}=J(),u=Te().query.type,d=n("\u7531\u4E8E\u60A8\u7684\u8BBE\u5907\u6CA1\u6709 WAN \u53E3\uFF0C\u65E0\u6CD5\u4F7F\u7528\u672C\u8BBE\u7F6E\u5411\u5BFC\uFF0C\u5177\u4F53\u8BF7\u770B%{link}",{link:''+n("\u94FE\u63A5")+""},!0),c=E(0),k=E({}),g=E(""),p=E(!1),m=E(0),v=E(!1);(()=>L(this,null,function*(){var f,F;p.value=!0;try{const w=yield Promise.all([G.Guide.Pppoe.GET(),G.Guide.GetLan.GET()]);if(w[0].data){const{success:h,error:_,result:x}=w[0].data;x&&(x.enableLanDhcp=!1,k.value=x),h==-1011&&(p.value=!0,m.value=h)}(f=w[1].data)!=null&&f.result&&(((F=w[1].data)==null?void 0:F.result).enableDhcp||(v.value=!0,k.value.enableLanDhcp=!0))}catch(w){g.value=w}m.value==0&&(p.value=!1)}))();const y=()=>L(this,null,function*(){const f=k.value.account||"",F=k.value.password||"";if(f==""){g.value=n("\u8D26\u53F7\u4E0D\u80FD\u4E3A\u7A7A");return}if(F==""){g.value=n("\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A");return}p.value=!0;const w=$.Loading(n("\u914D\u7F6E\u4E2D..."));try{const h=yield G.Guide.Pppoe.POST({account:f,password:F});if(h!=null&&h.data){const{error:_,success:x}=h.data;_&&(g.value=_),(x==null||x==0)&&($.Success(n("\u914D\u7F6E\u6210\u529F")),c.value=1)}}catch(h){g.value=h}p.value=!1,w.Close()});return(f,F)=>{const w=_t("switch-box"),h=_t("router-link");return c.value==0?(r(),s("div",Kh,[t("h2",Qh,i(e(n)("\u914D\u7F6E\u5BBD\u5E26\u8D26\u53F7")),1),t("h3",Xh,i(e(n)("\u8BF7\u786E\u4FDD\u60A8\u5DF2\u5C06\u8DEF\u7531 WAN \u53E3\u8FDE\u63A5\u5230\u5149\u732B")),1),t("div",t_,[m.value==-1011?(r(),s("li",{key:0,innerHTML:e(d)},null,8,e_)):D("",!0)]),t("form",{onSubmit:ft(y,["prevent"])},[t("label",null,[t("div",o_,[t("span",null,i(e(n)("\u5BBD\u5E26\u8D26\u53F7")),1)]),O(t("input",{type:"text","onUpdate:modelValue":F[0]||(F[0]=_=>k.value.account=_),placeholder:e(n)("\u5BBD\u5E26\u8D26\u53F7"),required:"",disabled:p.value},null,8,n_),[[at,k.value.account,void 0,{trim:!0}]])]),t("label",null,[t("div",i_,[t("span",null,i(e(n)("\u5BC6\u7801")),1)]),O(t("input",{type:"password","onUpdate:modelValue":F[1]||(F[1]=_=>k.value.password=_),placeholder:e(n)("\u5BBD\u5E26\u5BC6\u7801"),required:"",disabled:p.value},null,8,r_),[[at,k.value.password,void 0,{trim:!0}]])]),v.value?(r(),s("div",s_,[Y(w,{modelValue:k.value.enableLanDhcp,"onUpdate:modelValue":F[2]||(F[2]=_=>k.value.enableLanDhcp=_)},{default:V(()=>[t("span",d_,i(e(n)("\u542F\u7528LAN\u53E3DHCP\u670D\u52A1\uFF08\u7528\u4E8E\u4ECE\u65C1\u8DEF\u7531\u6A21\u5F0F\u6062\u590D\u6210\u9ED8\u8BA4\u72B6\u6001\uFF09")),1)]),_:1},8,["modelValue"])])):D("",!0),g.value?(r(),s("div",l_,i(g.value),1)):D("",!0),t("div",u_,[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:p.value},i(e(n)("\u4FDD\u5B58\u914D\u7F6E")),9,c_),Y(h,{to:e(u)=="index"?"/":"/network",custom:""},{default:V(({navigate:_})=>[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:_},i(e(n)("\u8FD4\u56DE")),9,p_)]),_:1},8,["to"])])],40,a_)])):c.value==1?(r(),s("div",f_,[t("h2",m_,i(e(n)("\u914D\u7F6E\u6210\u529F")),1),t("div",g_,[Y(h,{to:"/",custom:""},{default:V(({navigate:_})=>[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:_},i(e(n)("\u8FDB\u5165\u63A7\u5236\u53F0")),9,v_)]),_:1}),Y(h,{to:e(u)=="index"?"/":"/network",custom:""},{default:V(({navigate:_})=>[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:_},i(e(n)("\u8FD4\u56DE")),9,b_)]),_:1},8,["to"])])])):D("",!0)}}});var __=N(h_,[["__scopeId","data-v-e187efe4"]]);const x_={key:0,id:"page"},w_={class:"title"},k_={class:"desc"},y_={class:"network-message"},F_=["innerHTML"],E_=["onSubmit"],$_={class:"label-key"},C_={value:"dhcp"},D_={value:"static"},B_={class:"label-key"},Y_=["placeholder","disabled"],A_={key:0,class:"msg"},S_={class:"label-key"},z_=["placeholder","disabled"],P_={key:1,class:"msg"},T_={class:"label-key"},I_=["placeholder","disabled"],M_={class:"label-key"},L_=["disabled"],O_={value:"manual"},N_={class:"label-key"},V_=["onUpdate:modelValue","placeholder","disabled"],G_={class:"label-key"},j_=["placeholder","disabled"],U_={class:"label-key"},q_=["placeholder","disabled"],R_={key:2,class:"chose_dhcp"},W_={class:"dhcp_info"},H_={key:3,class:"msgs"},J_={class:"btns"},Z_=["disabled"],K_=["onClick"],Q_={key:1,id:"page"},X_={class:"title"},tx={class:"btns"},ex=["onClick"],ax=["onClick"],ox=I({setup(o){const{$gettext:n,$ngettext:a}=J(),l=n("\u7531\u4E8E\u60A8\u7684\u8BBE\u5907\u6CA1\u6709 WAN \u53E3\uFF0C\u65E0\u6CD5\u4F7F\u7528\u672C\u8BBE\u7F6E\u5411\u5BFC\uFF0C\u5177\u4F53\u8BF7\u770B%{link}",{link:''+n("\u94FE\u63A5")+""},!0),u=E(0),d=E({}),c=E(""),k=E(""),g=E(""),p=E(!1),m=E(""),v=E(""),b=E(0),y=Mt.checkIsIP,f=E(!1),w=Te().query.type;(()=>L(this,null,function*(){var A,z;p.value=!0;try{const B=yield Promise.all([G.Guide.ClientModel.GET(),G.Guide.GetLan.GET()]);if(B[0]){const H=B[0];if(H.data){const{success:M,error:q,result:T}=H.data;T&&(T.wanProto!="dhcp"&&T.wanProto!="static"&&(T.wanProto="dhcp",T.dnsProto="auto"),T.enableLanDhcp=!1,d.value=T),M==-1011&&(b.value=M,p.value=!0)}}(A=B[1].data)!=null&&A.result&&(((z=B[1].data)==null?void 0:z.result).enableDhcp||(f.value=!0,d.value.enableLanDhcp=!0))}catch(B){c.value=B}b.value==0&&(p.value=!1)}))();const _=A=>{A.target.value=="static"?((d.value.staticIp==null||d.value.staticIp=="")&&(d.value.staticIp="192.168.1.100"),(d.value.subnetMask==null||d.value.subnetMask=="")&&(d.value.subnetMask="255.255.255.0"),d.value.dnsProto=="auto"&&setTimeout(()=>d.value.dnsProto="manual",0)):d.value.dnsProto=="manual"&&setTimeout(()=>d.value.dnsProto="auto",0)},x=A=>{const z=A.target;if(z.value==""){m.value="";return}y(z.value)?m.value="":m.value=n("\u8BF7\u8F93\u5165\u5408\u6CD5\u7684IP\u5730\u5740")},C=A=>{const z=A.target;if(z.value==""){v.value="";return}y(z.value)?v.value="":v.value=n("\u8BF7\u8F93\u5165\u5408\u6CD5\u7684\u5730\u5740")},S=()=>L(this,null,function*(){const A={};switch(d.value.wanProto){case"dhcp":break;case"static":A.staticIp=d.value.staticIp,A.subnetMask=d.value.subnetMask,A.gateway=d.value.gateway||"";break}switch(d.value.dnsProto){case"auto":break;case"manual":A.manualDnsIp=[],d.value.manualDnsIp!=null&&d.value.manualDnsIp.length>0?A.manualDnsIp=d.value.manualDnsIp:(A.manualDnsIp.push(k.value),g.value&&A.manualDnsIp.push(g.value));break}A.dnsProto=d.value.dnsProto,A.wanProto=d.value.wanProto,A.enableLanDhcp=d.value.enableLanDhcp;const z=$.Loading(n("\u914D\u7F6E\u4E2D...."));p.value=!0;try{const B=yield G.Guide.ClientModel.POST(A);if(B!=null&&B.data){const{success:H,error:M}=B==null?void 0:B.data;M&&(c.value=M),(H==null||H==0)&&($.Success(n("\u914D\u7F6E\u6210\u529F")),u.value=1)}}catch(B){c.value=B}p.value=!1,z.Close()});return(A,z)=>{const B=_t("switch-box"),H=_t("router-link");return u.value==0?(r(),s("div",x_,[t("h2",w_,i(e(n)("\u914D\u7F6E\u4E92\u8054\u7F51")),1),t("h3",k_,i(e(n)("\u8BF7\u786E\u4FDD\u60A8\u5DF2\u5C06\u672C\u8BBE\u5907 WAN \u53E3\u8FDE\u63A5\u5230\u4E0A\u7EA7\u8DEF\u7531\u5668\u5C40\u57DF\u7F51\uFF08 LAN \uFF09\u63A5\u53E3")),1),t("div",y_,[b.value==-1011?(r(),s("li",{key:0,innerHTML:e(l)},null,8,F_)):D("",!0)]),t("form",{onSubmit:ft(S,["prevent"])},[t("label",null,[t("div",$_,[t("span",null,i(e(n)("WAN \u63A5\u53E3\u914D\u7F6E\u65B9\u5F0F")),1)]),O(t("select",{"onUpdate:modelValue":z[0]||(z[0]=M=>d.value.wanProto=M),onInput:_},[t("option",C_,i(e(n)("\u81EA\u52A8\u83B7\u53D6IP\u5730\u5740\uFF08DHCP\uFF09")),1),t("option",D_,i(e(n)("\u9759\u6001IP\u5730\u5740")),1)],544),[[pt,d.value.wanProto]])]),d.value.wanProto=="static"?(r(),s(U,{key:0},[t("label",null,[t("div",B_,[t("span",null,i(e(n)("IP\u5730\u5740")),1)]),O(t("input",{type:"text","onUpdate:modelValue":z[1]||(z[1]=M=>d.value.staticIp=M),placeholder:e(n)("\u9759\u6001IP\u5730\u5740"),required:"",disabled:p.value,onInput:x},null,40,Y_),[[at,d.value.staticIp,void 0,{trim:!0}]])]),m.value?(r(),s("p",A_,i(m.value),1)):D("",!0),t("label",null,[t("div",S_,[t("span",null,i(e(n)("\u5B50\u7F51\u63A9\u7801")),1)]),O(t("input",{type:"text","onUpdate:modelValue":z[2]||(z[2]=M=>d.value.subnetMask=M),placeholder:e(n)("\u5B50\u7F51\u63A9\u7801"),required:"",disabled:p.value,onInput:C},null,40,z_),[[at,d.value.subnetMask,void 0,{trim:!0}]])]),v.value?(r(),s("p",P_,i(v.value),1)):D("",!0),t("label",null,[t("div",T_,[t("span",null,i(e(n)("\u7F51\u5173\u5730\u5740")),1)]),O(t("input",{type:"text","onUpdate:modelValue":z[3]||(z[3]=M=>d.value.gateway=M),placeholder:e(n)("\u7F51\u5173\u5730\u5740"),required:"",disabled:p.value},null,8,I_),[[at,d.value.gateway,void 0,{trim:!0}]])])],64)):D("",!0),t("label",null,[t("div",M_,[t("span",null,i(e(n)("DNS \u914D\u7F6E\u65B9\u5F0F")),1)]),O(t("select",{"onUpdate:modelValue":z[4]||(z[4]=M=>d.value.dnsProto=M)},[t("option",{value:"auto",disabled:d.value.wanProto=="static"},i(e(n)("\u81EA\u52A8\u83B7\u53D6\uFF08DHCP\uFF09")),9,L_),t("option",O_,i(e(n)("\u624B\u5DE5\u914D\u7F6E")),1)],512),[[pt,d.value.dnsProto]])]),d.value.dnsProto=="manual"?(r(),s(U,{key:1},[d.value.manualDnsIp!=null&&d.value.manualDnsIp.length>0?(r(!0),s(U,{key:0},tt(d.value.manualDnsIp,(M,q)=>(r(),s("label",null,[t("div",N_,[t("span",null,i(e(n)("DNS\u670D\u52A1\u5668")),1)]),O(t("input",{type:"text","onUpdate:modelValue":T=>d.value.manualDnsIp[q]=T,placeholder:e(n)("DNS\u670D\u52A1\u5668"),required:"",disabled:p.value},null,8,V_),[[at,d.value.manualDnsIp[q],void 0,{trim:!0}]])]))),256)):(r(),s(U,{key:1},[t("label",null,[t("div",G_,[t("span",null,i(e(n)("DNS\u670D\u52A1\u5668")),1)]),O(t("input",{type:"text","onUpdate:modelValue":z[5]||(z[5]=M=>k.value=M),placeholder:e(n)("DNS\u670D\u52A1\u5668"),required:"",disabled:p.value},null,8,j_),[[at,k.value,void 0,{trim:!0}]])]),t("label",null,[t("div",U_,i(e(n)("\u5907\u7528DNS\u670D\u52A1\u5668")),1),O(t("input",{type:"text","onUpdate:modelValue":z[6]||(z[6]=M=>g.value=M),placeholder:e(n)("\u5907\u7528DNS\u670D\u52A1\u5668"),disabled:p.value},null,8,q_),[[at,g.value,void 0,{trim:!0}]])])],64))],64)):D("",!0),f.value?(r(),s("div",R_,[Y(B,{modelValue:d.value.enableLanDhcp,"onUpdate:modelValue":z[7]||(z[7]=M=>d.value.enableLanDhcp=M)},{default:V(()=>[t("span",W_,i(e(n)("\u542F\u7528LAN\u53E3DHCP\u670D\u52A1\uFF08\u7528\u4E8E\u4ECE\u65C1\u8DEF\u7531\u6A21\u5F0F\u6062\u590D\u6210\u9ED8\u8BA4\u72B6\u6001\uFF09")),1)]),_:1},8,["modelValue"])])):D("",!0),c.value?(r(),s("div",H_,i(c.value),1)):D("",!0),t("div",J_,[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:p.value},i(e(n)("\u4FDD\u5B58\u914D\u7F6E")),9,Z_),Y(H,{to:e(w)=="index"?"/":"/network",custom:""},{default:V(({navigate:M})=>[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:M},i(e(n)("\u8FD4\u56DE")),9,K_)]),_:1},8,["to"])])],40,E_)])):u.value==1?(r(),s("div",Q_,[t("h2",X_,i(e(n)("\u914D\u7F6E\u6210\u529F")),1),t("div",tx,[Y(H,{to:"/",custom:""},{default:V(({navigate:M})=>[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:M},i(e(n)("\u8FDB\u5165\u63A7\u5236\u53F0")),9,ex)]),_:1}),Y(H,{to:e(w)=="index"?"/":"/network",custom:""},{default:V(({navigate:M})=>[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:M},i(e(n)("\u8FD4\u56DE")),9,ax)]),_:1},8,["to"])])])):D("",!0)}}});var nx=N(ox,[["__scopeId","data-v-5eefd6ee"]]);const ix=o=>(ut("data-v-3d6d1dea"),o=o(),ct(),o),rx={key:0,id:"page"},sx={class:"title"},dx=ix(()=>t("br",null,null,-1)),lx={class:"btns"},ux=["onClick"],cx={key:1,id:"page"},px={class:"title"},fx={class:"desc"},mx=["onSubmit"],gx={class:"label-key"},vx={class:"label-value"},bx={class:"label-key"},hx=["placeholder"],_x={class:"label-key"},xx=["placeholder"],wx={class:"label-key"},kx=["placeholder"],yx={class:"label-key"},Fx=["placeholder"],Ex={key:0,class:"msgs"},$x={class:"switch_inline"},Cx={key:0,class:"switch_info"},Dx={key:1,class:"switch_info"},Bx={class:"switch_inline"},Yx={class:"switch_info"},Ax={class:"switch_inline"},Sx={class:"switch_info"},zx={class:"btns"},Px={class:"cbi-button cbi-button-apply app-btn app-next"},Tx=["onClick"],Ix={key:2,id:"page"},Mx={class:"title"},Lx={class:"desc"},Ox={class:"btns"},Nx={key:3,id:"page"},Vx={class:"title"},Gx=["disabled"],jx={style:{"text-align":"left"}},Ux={class:"btns"},qx=["disabled"],Rx=["onClick"],Wx=I({setup(o){const{$gettext:n,$ngettext:a}=J(),u=Te().query.type,d=E(0),c=E(""),k=E(!1),g=Q(()=>{var F,w,h;return!(((F=m.value)==null?void 0:F.ipv4addr)&&((w=m.value)==null?void 0:w.ipv4mask)&&((h=m.value)==null?void 0:h.gateway))}),p=E({subnetMask:"255.255.255.0",staticDnsIp:"223.5.5.5",staticLanIp:"",gateway:"",enableDhcp:!0,dhcp6c:!1,enableNat:!1}),m=E(),v=()=>{k.value=!0,G.Network.Status.GET().then(F=>{if(F!=null&&F.data){const{result:w}=F==null?void 0:F.data;w&&(m.value=w)}}).finally(()=>{k.value=!1})},b=F=>{var w,h,_,x,C;F&&(p.value.staticLanIp=((w=m.value)==null?void 0:w.ipv4addr)||"",p.value.subnetMask=((h=m.value)==null?void 0:h.ipv4mask)&&Lt.prefixToMask(m.value.ipv4mask)||"",p.value.gateway=((_=m.value)==null?void 0:_.gateway)||"",p.value.staticDnsIp=((x=m.value)==null?void 0:x.dnsList)&&((C=m.value)==null?void 0:C.dnsList[0])||"223.5.5.5"),d.value=1},y=F=>{window.location.href=location.protocol+"//"+p.value.staticLanIp+(location.port?":"+location.port:"")},f=()=>L(this,null,function*(){const F=p.value,w=$.Loading(n("\u914D\u7F6E\u4E2D..."));try{const h=yield G.Guide.GatewayRouter.POST(F);if(h!=null&&h.data){const{success:_,error:x}=h==null?void 0:h.data;if(x&&(c.value=x),_==null||_==0){setTimeout(()=>{d.value=2,w.Close()},5e3);return}}}catch(h){c.value=h}w.Close()});return(F,w)=>{var x,C,S,A;const h=_t("router-link"),_=_t("switch-box");return d.value==0?(r(),s("div",rx,[t("h2",sx,i(e(n)("\u65C1\u8DEF\u7531\u914D\u7F6E\u524D\u7684\u51C6\u5907\u5DE5\u4F5C")),1),t("code",null,[dt(i(e(n)("\u65C1\u8DEF\u7531\u6A21\u5F0F\uFF0C\u4E5F\u53EB\u5355\u81C2\u8DEF\u7531\u6A21\u5F0F\u3002"))+" ",1),t("p",null,i(e(n)("\u60A8\u53EF\u4EE5\u7528\u4E0A\u4E00\u7EA7\u8DEF\u7531\uFF08\u4E3B\u8DEF\u7531\uFF09\u62E8\u53F7\uFF0C\u7136\u540E\u7528\u672C\u8DEF\u7531\u6765\u5B9E\u73B0\u4E00\u4E9B\u9AD8\u7EA7\u529F\u80FD\u3002")),1),dx,t("p",null,i(e(n)("\u672C\u5411\u5BFC\u652F\u6301\u81EA\u52A8\u6216\u624B\u52A8\u914D\u7F6E\uFF1A")),1),t("p",null,i(e(n)("\u70B9\u51FB\u201C\u81EA\u52A8\u914D\u7F6E\u201D\u6309\u94AE\u5F00\u59CB\u81EA\u52A8\u914D\u7F6E\u5411\u5BFC\uFF1B")),1),t("p",null,i(e(n)("\u624B\u52A8\u914D\u7F6E\u5219\u9700\u81EA\u884C\u83B7\u53D6\u4E3B\u8DEF\u7531\u5668\u7684IP\u5730\u5740\uFF08\u4F8B\u5982 192.168.2.1 \uFF09\u548C\u5B50\u7F51\u63A9\u7801\uFF0C\u8BB0\u5F55\u4EE5\u5907\u540E\u7EED\u586B\u5199\uFF0C\u70B9\u51FB\u201C\u624B\u52A8\u914D\u7F6E\u201D\u6309\u94AE\uFF0C\u5207\u6362\u5230\u53C2\u6570\u914D\u7F6E\u9875\uFF0C\u6309\u5B9E\u9645\u60C5\u51B5\u81EA\u884C\u586B\u5199\u3002")),1)]),t("div",lx,[t("button",{class:"cbi-button cbi-button-success app-btn app-next",onClick:w[0]||(w[0]=z=>d.value=3)},i(e(n)("\u81EA\u52A8\u914D\u7F6E...")),1),t("button",{class:"cbi-button cbi-button-neutral app-btn app-next",onClick:w[1]||(w[1]=z=>b(!1))},i(e(n)("\u624B\u52A8\u914D\u7F6E...")),1),Y(h,{to:e(u)=="index"?"/":"/network",custom:""},{default:V(({navigate:z})=>[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:z},i(e(n)("\u8FD4\u56DE")),9,ux)]),_:1},8,["to"])])])):d.value==1?(r(),s("div",cx,[t("h2",px,i(e(n)("\u914D\u7F6E\u65C1\u8DEF\u7531\u7F51\u7EDC")),1),t("h3",fx,i(e(n)("\u73B0\u5728\uFF0C\u8BF7\u4F60\u914D\u7F6E\u65C1\u8DEF\u7531\u4FE1\u606F")),1),t("form",{onSubmit:ft(f,["prevent"])},[t("label",null,[t("div",gx,[t("span",null,i(e(n)("LAN \u63A5\u53E3\u914D\u7F6E\u65B9\u5F0F")),1)]),t("div",vx,[t("select",{disabled:"",style:ht({backgroundColor:"rgba(215, 215, 215, 1)",color:"#333"})},[t("option",null,i(e(n)("\u65C1\u8DEF\u7531\u6A21\u5F0F\u4EC5\u652F\u6301\u9759\u6001IP\u5730\u5740")),1)],4)])]),t("label",null,[t("div",bx,[t("span",null,i(e(n)("IP \u5730\u5740")),1)]),O(t("input",{type:"text","onUpdate:modelValue":w[2]||(w[2]=z=>p.value.staticLanIp=z),placeholder:e(n)("IP\u5730\u5740"),required:""},null,8,hx),[[at,p.value.staticLanIp,void 0,{trim:!0}]])]),t("label",null,[t("div",_x,[t("span",null,i(e(n)("\u5B50\u7F51\u63A9\u7801")),1)]),O(t("input",{type:"text","onUpdate:modelValue":w[3]||(w[3]=z=>p.value.subnetMask=z),placeholder:e(n)("\u5B50\u7F51\u63A9\u7801"),required:""},null,8,xx),[[at,p.value.subnetMask,void 0,{trim:!0}]])]),t("label",null,[t("div",wx,[t("span",null,i(e(n)("\u7F51\u5173\u5730\u5740")),1)]),O(t("input",{type:"text","onUpdate:modelValue":w[4]||(w[4]=z=>p.value.gateway=z),placeholder:e(n)("\u7F51\u5173\u5730\u5740"),required:""},null,8,kx),[[at,p.value.gateway,void 0,{trim:!0}]])]),t("label",null,[t("div",yx,[t("span",null,i(e(n)("DNS\u670D\u52A1\u5668")),1)]),O(t("input",{type:"text","onUpdate:modelValue":w[5]||(w[5]=z=>p.value.staticDnsIp=z),placeholder:e(n)("223.5.5.5"),required:""},null,8,Fx),[[at,p.value.staticDnsIp,void 0,{trim:!0}]])]),c.value?(r(),s("div",Ex,i(c.value),1)):D("",!0),t("div",$x,[Y(_,{modelValue:p.value.enableDhcp,"onUpdate:modelValue":w[6]||(w[6]=z=>p.value.enableDhcp=z)},{default:V(()=>[p.value.enableDhcp?(r(),s("span",Cx,i(e(n)("\u63D0\u4F9B DHCPv4 \u670D\u52A1\uFF08\u9700\u8981\u5173\u95ED\u4E3B\u8DEF\u7531 DHCP \u670D\u52A1\uFF09")),1)):(r(),s("span",Dx,i(e(n)("\u63D0\u4F9B DHCPv4 \u670D\u52A1")),1))]),_:1},8,["modelValue"])]),t("div",Bx,[Y(_,{modelValue:p.value.dhcp6c,"onUpdate:modelValue":w[7]||(w[7]=z=>p.value.dhcp6c=z)},{default:V(()=>[t("span",Yx,i(e(n)("\u81EA\u52A8\u83B7\u53D6 IPV6\uFF08\u5373\u5F00\u542F DHCPv6 \u5BA2\u6237\u7AEF\uFF09")),1)]),_:1},8,["modelValue"])]),t("div",Ax,[Y(_,{modelValue:p.value.enableNat,"onUpdate:modelValue":w[8]||(w[8]=z=>p.value.enableNat=z)},{default:V(()=>[t("span",Sx,i(e(n)("\u5F00\u542F NAT\uFF08\u53EF\u4FEE\u590D\u67D0\u4E9B\u65E0\u7EBF\u70ED\u70B9\u4E0D\u80FD\u8BBF\u95EE\u5916\u7F51\u95EE\u9898\uFF09")),1)]),_:1},8,["modelValue"])]),t("div",zx,[t("button",Px,i(e(n)("\u4FDD\u5B58\u914D\u7F6E")),1),Y(h,{to:e(u)=="index"?"/":"/network",custom:""},{default:V(({navigate:z})=>[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:z},i(e(n)("\u8FD4\u56DE")),9,Tx)]),_:1},8,["to"])])],40,mx)])):d.value==2?(r(),s("div",Ix,[t("h2",Mx,i(e(n)("\u914D\u7F6E\u6210\u529F")),1),t("h3",Lx,i(e(n)("\u73B0\u5728\uFF0C\u5C06\u672C\u8DEF\u7531WAN\u53E3\u65AD\u5F00\uFF0C\u5C06\u5176\u4E2D\u4E00\u4E2ALAN\u53E3\u4E0E\u4E3B\u8DEF\u7531\u8FDE\u63A5\uFF0C\u5E76\u5C06\u5F53\u524D\u6D4F\u89C8\u5668\u8BBE\u5907\u8FDE\u63A5\u5230\u4E3B\u8DEF\u7531\u3002\u70B9\u51FB\u201C\u8FDB\u5165\u63A7\u5236\u53F0\u201D\u6D4F\u89C8\u5668\u5C06\u8DF3\u8F6C\u5230\u65B0\u7684\u8DEF\u7531IP")),1),t("div",Ox,[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",onClick:y},i(e(n)("\u8FDB\u5165\u63A7\u5236\u53F0")),1)])])):d.value==3?(r(),s("div",Nx,[t("h2",Vx,i(e(n)("\u65C1\u8DEF\u7531\u81EA\u52A8\u914D\u7F6E")),1),t("code",null,i(e(n)("\u9996\u5148\u786E\u8BA4\u4E3B\u8DEF\u7531\u5F00\u542F\u4E86 DHCP \u670D\u52A1\uFF0C\u786E\u8BA4\u672C\u8DEF\u7531 WAN \u53E3\u662F DHCP \u5BA2\u6237\u7AEF\u6A21\u5F0F\uFF08\u9ED8\u8BA4\u5373\u662F\uFF0C\u5982\u679C\u4E0D\u662F\u53EF\u4F7F\u7528\u201C\u8FDE\u63A5\u73B0\u6709\u8DEF\u7531\u5668\u201D\u5411\u5BFC\u6539\u6210 DHCP \u5BA2\u6237\u7AEF\uFF09\uFF0C\u7136\u540E\u5C06\u672C\u8DEF\u7531 WAN \u53E3\u4E0E\u4E3B\u8DEF\u7531\u7684 LAN \u8FDE\u63A5\uFF0C\u4EE5\u81EA\u52A8\u83B7\u53D6\u914D\u7F6E\u3002")),1),dt(" "+i(e(n)("1. \u6EE1\u8DB3\u4E0A\u8FF0\u6761\u4EF6\u4EE5\u540E\uFF0C\u70B9\u51FB\u201C\u5F53\u524D IPv4 \u4E0A\u6E38\u4FE1\u606F\u201D\u4EE5\u5237\u65B0\u5F53\u524D\u8FDE\u63A5\u4FE1\u606F\uFF0C\u6210\u529F\u4EE5\u540E\uFF0C\u201C\u81EA\u52A8\u586B\u5199\u201D\u6309\u94AE\u5C06\u88AB\u6FC0\u6D3B\u3002(\u5931\u8D25\u53EF\u518D\u6B21\u70B9\u51FB)"))+" ",1),t("button",{class:lt(["cbi-button cbi-button-neutral",e(g)?"cbi-button-neutral":"cbi-button-success"]),disabled:k.value,onClick:v},[dt(i(e(n)("\u5F53\u524D IPv4 \u4E0A\u6E38\u4FE1\u606F\uFF08\u70B9\u6B64\u5237\u65B0\uFF09"))+" ",1),t("p",jx,[t("ul",null,[t("li",null,i(e(n)("IP \u5730\u5740: "))+i((x=m.value)==null?void 0:x.ipv4addr),1),t("li",null,i(e(n)("\u5B50\u7F51\u63A9\u7801: "))+i(((C=m.value)==null?void 0:C.ipv4mask)&&e(Lt).prefixToMask(m.value.ipv4mask)),1),t("li",null,i(e(n)("\u7F51\u5173\u5730\u5740: "))+i((S=m.value)==null?void 0:S.gateway),1),t("li",null,i(e(n)("DNS\u670D\u52A1\u5668: "))+i(((A=m.value)==null?void 0:A.dnsList)&&m.value.dnsList[0]||(e(g)?"":e(n)("\uFF08\u65E0DNS\u670D\u52A1\u5668\uFF0C\u8BF7\u4E4B\u540E\u81EA\u884C\u586B\u5199\u516C\u5171DNS\u670D\u52A1\u5668\uFF0C\u4F8B\u5982 223.5.5.5\uFF09"))),1)])])],10,Gx),dt(" "+i(e(n)("2. \u70B9\u51FB\u201C\u81EA\u52A8\u586B\u5199\u201D\uFF0C\u5C06\u5207\u6362\u5230\u53C2\u6570\u9875\u5E76\u81EA\u52A8\u586B\u5199\u3002\u6B64\u65F6\u4F9D\u7136\u53EF\u4EE5\u81EA\u884C\u8C03\u6574\u53C2\u6570\u3002"))+" ",1),t("div",Ux,[t("button",{class:"cbi-button cbi-button-apply app-btn app-next",disabled:e(g),onClick:w[9]||(w[9]=z=>b(!0))},i(e(n)("\u81EA\u52A8\u586B\u5199..."))+i(e(g)?e(n)("\uFF08\u8BF7\u5148\u83B7\u53D6IPv4\u4E0A\u6E38\u4FE1\u606F\uFF09"):""),9,qx),Y(h,{to:e(u)=="index"?"/":"/network",custom:""},{default:V(({navigate:z})=>[t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:z},i(e(n)("\u8FD4\u56DE")),9,Rx)]),_:1},8,["to"])])])):D("",!0)}}});var Hx=N(Wx,[["__scopeId","data-v-3d6d1dea"]]);const Jx={class:"actioner-container"},Zx={class:"actioner-container_header"},Kx={class:"actioner-container_body"},Qx={class:"label-item"},Xx={class:"label-item_key"},tw={class:"label-item_value"},ew=["value"],aw={class:"label-item_tips"},ow={class:"label-item"},nw={class:"label-item_key"},iw={key:0,class:"label-item_value"},rw={class:"msg-warning"},sw={key:1,class:"label-item_value"},dw=["value"],lw={key:1,class:"msg-warning"},uw={class:"label-item_tips"},cw={class:"actioner-container_footer"},pw=["disabled"],fw=["disabled"],mw={key:1,class:"actioner-container_body setup-loading"},gw={class:"actioner-container_body setup-error"},vw={class:"actioner-container_footer"},bw=["disabled"],hw={class:"actioner-container_body setup-success"},_w={class:"body-title"},xw={class:"actioner-container_footer"},ww=I({props:{Close:{type:Function,required:!0},success:{type:Function}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.Close()},d=()=>{n.success&&n.success()},c=E("init"),k=E(""),g=[{name:"jbod",title:a("JBOD (\u7EBF\u6027)"),info:a("\u81F3\u5C11\u9700\u89812\u5757\u786C\u76D8\uFF0C\u5C06\u591A\u4E2A\u786C\u76D8\u5408\u5E76\u4E3A\u5355\u4E2A\u5B58\u50A8\u7A7A\u95F4\uFF0C\u5176\u5BB9\u91CF\u7B49\u4E8E\u6240\u6709\u786C\u76D8\u5BB9\u91CF\u7684\u603B\u548C\u3002\u4E0D\u63D0\u4F9B\u6570\u636E\u5197\u4F59\u3002"),select:2},{name:"raid0",title:a("RAID 0 (\u6761\u5E26)"),info:a("\u81F3\u5C11\u9700\u89812\u5757\u786C\u76D8\uFF0C\u201C\u533A\u5757\u5EF6\u5C55\u201D\u529F\u80FD\u662F\u5C06\u6570\u636E\u5206\u6210\u591A\u4E2A\u5757\uFF0C\u5E76\u5C06\u6570\u636E\u5757\u5206\u6563\u5230\u7EC4\u6210\u7684\u591A\u4E2A\u786C\u76D8\u4E0A\u4EE5\u63D0\u9AD8\u6027\u80FD\u7684\u8FC7\u7A0B\u3002\u4E0D\u63D0\u4F9B\u6570\u636E\u5197\u4F59\u3002"),select:2},{name:"raid1",title:a("RAID 1 (\u955C\u50CF)"),info:a("\u81F3\u5C11\u9700\u89812\u5757\u786C\u76D8\uFF0C\u540C\u65F6\u5411\u6240\u6709\u786C\u76D8\u5199\u5165\u76F8\u540C\u7684\u6570\u636E\u3002\u63D0\u4F9B\u6570\u636E\u5197\u4F59\u3002"),select:2},{name:"raid5",title:"RAID 5 ",info:a("\u81F3\u5C11\u9700\u89813\u5757\u786C\u76D8\uFF0C\u6267\u884C\u6BB5\u843D\u5206\u5757\u5EF6\u5C55\uFF0C\u5E76\u5BF9\u5206\u5E03\u5230\u6240\u6709\u7EC4\u6210\u786C\u76D8\u4E0A\u7684\u6570\u636E\u6267\u884C\u5947\u5076\u6821\u9A8C\uFF0C\u4ECE\u800C\u63D0\u4F9B\u6BD4 RAID 1 \u66F4\u6709\u6548\u7684\u6570\u636E\u5197\u4F59\u3002"),select:3},{name:"raid6",title:"RAID 6 ",info:a("\u81F3\u5C11\u9700\u89814\u5757\u786C\u76D8\uFF0C\u6267\u884C\u4E24\u4E2A\u5C42\u7EA7\u7684\u6570\u636E\u5947\u5076\u6821\u9A8C\u4EE5\u5B58\u50A8\u7B49\u4E8E 2 \u4E2A\u786C\u76D8\u5BB9\u91CF\u7684\u5197\u4F59\u6570\u636E\uFF0C\u63D0\u4F9B\u6BD4 RAID 5 \u66F4\u5927\u7A0B\u5EA6\u7684\u6570\u636E\u5197\u4F59\u3002"),select:4},{name:"raid10",title:"RAID 10",info:a("\u81F3\u5C11\u9700\u89814\u5757\u786C\u76D8\uFF0C\u63D0\u4F9B RAID 0 \u7684\u6027\u80FD\u548C RAID 1 \u7684\u6570\u636E\u4FDD\u62A4\u7EA7\u522B\uFF0C\u5C06\u786C\u76D8\u7EC4\u5408\u8FDB\u955C\u50CF\u6570\u636E\u7684\u7531\u4E24\u4E2A\u786C\u76D8\u7EC4\u6210\u7684\u7EC4\u3002"),select:4}],p=E("raid5"),m=E([]),v=h=>{let _="";return g.forEach(x=>{x.name===h&&(_=x.info)}),_},b=E(!1),y=gt({loading:!1,members:[]}),f=h=>{};(()=>L(this,null,function*(){y.loading=!0;try{const h=yield G.Raid.CreateList.GET();if(h!=null&&h.data){const{success:_,error:x,result:C}=h.data;if(C&&(y.members=C.members||[]),x)throw x}}catch(h){console.log(h)}finally{y.loading=!1}}))();const w=()=>L(this,null,function*(){const h=g.filter(x=>x.name===p.value)[0],_=m.value;if(!h){$.Warning(a("\u8BF7\u9009\u62E9raid\u7C7B\u578B"));return}if(_.length==0){$.Warning(a("\u8BF7\u9009\u62E9\u78C1\u76D8"));return}if(h.select>_.length){$.Warning(a("\u8BF7\u9009\u62E9\u81F3\u5C11%{min}\u5757\u78C1\u76D8",{min:""+h.select}));return}if(!!confirm(a("\u662F\u5426\u7ACB\u5373\u521B\u5EFA %{name}\uFF1F\u9009\u62E9\u7684\u786C\u76D8\u6240\u6709\u5206\u533A\u5C06\u4F1A\u88AB\u6E05\u9664\uFF0C\u6B64\u64CD\u4F5C\u53EF\u80FD\u4F1A\u5BFC\u81F4\u786C\u76D8\u6570\u636E\u4E22\u5931\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\u3002",{name:h.name}))&&!!confirm(a("\u786E\u5B9A\u521B\u5EFA %{name}\uFF1F\u8BE5\u64CD\u4F5C\u4E0D\u53EF\u9006,\u8BF7\u8C28\u614E\u64CD\u4F5C",{name:h.name}))){b.value=!0,c.value="loading";try{const x=yield G.Raid.Create.POST({level:h.name,devicePaths:_});if(x.data){const{success:C,error:S,result:A}=x.data;if(S)throw S;(C||0)==0&&(c.value="success",d())}}catch(x){k.value=x,c.value="error"}finally{b.value=!1}}});return(h,_)=>{const x=_t("icon-loading"),C=_t("icon-error"),S=_t("icon-success");return r(),s("div",Jx,[t("div",Zx,[t("span",null,i(e(a)("RAID\u521B\u5EFA\u5411\u5BFC")),1)]),c.value=="init"?(r(),s(U,{key:0},[t("div",Kx,[t("p",null,i(e(a)("RAID\u78C1\u76D8\u9635\u5217\u662F\u7528\u591A\u4E2A\u72EC\u7ACB\u7684\u78C1\u76D8\u7EC4\u6210\u5728\u4E00\u8D77\u5F62\u6210\u4E00\u4E2A\u5927\u7684\u78C1\u76D8\u7CFB\u7EDF\uFF0C\u4ECE\u800C\u5B9E\u73B0\u6BD4\u5355\u5757\u78C1\u76D8\u66F4\u597D\u7684\u5B58\u50A8\u6027\u80FD\u548C\u66F4\u9AD8\u7684\u53EF\u9760\u6027\u3002")),1),t("div",Qx,[t("div",Xx,[t("span",null,i(e(a)("RAID\u7EA7\u522B\uFF1A")),1)]),t("div",tw,[O(t("select",{"onUpdate:modelValue":_[0]||(_[0]=A=>p.value=A),onChange:f},[(r(),s(U,null,tt(g,A=>t("option",{value:A.name},i(A.title),9,ew)),64))],544),[[pt,p.value]])]),t("div",aw,[Y(It),dt(" "+i(v(p.value)),1)])]),t("div",ow,[t("div",nw,[t("span",null,i(e(a)("\u78C1\u76D8\u9635\u5217\u6210\u5458\uFF1A")),1)]),e(y).loading?(r(),s("div",iw,[t("span",rw,i(e(a)("\u68C0\u6D4B\u4E2D...")),1)])):(r(),s("div",sw,[e(y).members.length>0?(r(!0),s(U,{key:0},tt(e(y).members,A=>(r(),s("label",null,[O(t("input",{type:"checkbox","onUpdate:modelValue":_[1]||(_[1]=z=>m.value=z),value:A.path},null,8,dw),[[Rt,m.value]]),dt(" \u3010"+i(A.model)+"\u3011"+i(A.name)+" "+i(A.path)+" ["+i(A.sizeStr)+"] ",1)]))),256)):(r(),s("span",lw,i(e(a)("\u68C0\u6D4B\u4E0D\u5230\u53EF\u7528\u78C1\u76D8\u9635\u5217\u6210\u5458")),1))])),t("div",uw,[Y(It),dt(" "+i(e(a)("\u9009\u62E9\u5C06\u8981\u7528\u4E8E\u521B\u5EFA RAID \u7684\u786C\u76D8\uFF0C\u901A\u8FC7 USB \u63A5\u5165\u7684\u8BBE\u5907\u4E0D\u4F1A\u5728\u5217\u8868\u4E2D\u663E\u793A\uFF08USB\u63A5\u5165\u4E0D\u7A33\u5B9A\uFF09\u3002")),1)])])]),t("div",cw,[t("div",{class:"close",onClick:u,disabled:b.value},i(e(a)("\u53D6\u6D88")),9,pw),t("div",{class:"next",onClick:w,disabled:b.value},i(e(a)("\u521B\u5EFA")),9,fw)])],64)):c.value=="loading"?(r(),s("div",mw,[Y(x,{size:60,color:"#666"}),t("span",null,i(e(a)("\u6B63\u5728\u521B\u5EFA\u4E2D...")),1)])):c.value=="error"?(r(),s(U,{key:2},[t("div",gw,[Y(C),t("span",null,i(k.value),1)]),t("div",vw,[t("div",{class:"close",onClick:u},i(e(a)("\u5173\u95ED")),1),t("div",{class:"next",onClick:w,disabled:b.value},i(e(a)("\u91CD\u65B0\u521B\u5EFA")),9,bw)])],64)):c.value=="success"?(r(),s(U,{key:3},[t("div",hw,[Y(S),t("div",_w,i(e(a)("\u521B\u5EFA\u6210\u529F")),1)]),t("div",xw,[t("div",{class:"close",onClick:u},i(e(a)("\u5173\u95ED")),1)])],64)):D("",!0)])}}});var kw=N(ww,[["__scopeId","data-v-7cf2dd18"]]);const yw={class:"actioner-container"},Fw={class:"actioner-container_body"},Ew=["value"],$w={class:"actioner-container_footer"},Cw=I({props:{Close:{type:Function,required:!0},raid:{type:Object,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.Close()},d=E("");return(()=>{G.Raid.Detail.POST({path:n.raid.path}).then(k=>{if(k.data){const{result:g,error:p}=k.data;p?d.value=p:d.value=(g==null?void 0:g.detail)||""}}).catch(k=>{d.value=k.message})})(),(k,g)=>(r(),s("div",yw,[t("div",Fw,[t("textarea",{value:d.value},null,8,Ew)]),t("div",$w,[t("div",{class:"close",onClick:u},i(e(a)("\u5173\u95ED")),1)])]))}});var Dw=N(Cw,[["__scopeId","data-v-0ef06e27"]]);const Bw={class:"actioner-container"},Yw={class:"actioner-container_header"},Aw={class:"actioner-container_body"},Sw={class:"label-item"},zw={class:"label-item_key"},Pw={class:"label-item_value"},Tw={disabled:""},Iw={class:"label-item"},Mw={class:"label-item_key"},Lw={key:0,class:"label-item_value"},Ow={class:"msg-warning"},Nw={key:1,class:"label-item_value"},Vw=["value"],Gw={key:1,class:"msg-warning"},jw={class:"actioner-container_footer"},Uw=["disabled"],qw=["disabled"],Rw=I({props:{Close:{type:Function,required:!0},raid:{type:Object,required:!0},success:{type:Function}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.Close()},d=()=>{n.success&&n.success()},c=()=>L(this,null,function*(){const v=p.value;if(v==""){$.Warning(a("\u8BF7\u9009\u62E9\u8981\u6DFB\u52A0\u7684\u786C\u76D8"));return}g.value=!0;const b=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{const y=yield G.Raid.Add.POST({path:n.raid.path,memberPath:v});if(y.data){const{error:f,success:F}=y.data;if(f)throw f;(F||0)==0&&($.Success(a("\u4FDD\u5B58\u6210\u529F")),d(),u())}}catch(y){$.Error(`${y}`)}finally{g.value=!1,b.Close()}}),k=gt({loading:!1,members:[]}),g=E(!1),p=E("");return(()=>L(this,null,function*(){k.loading=!0,g.value=!0;try{const v=yield G.Raid.CreateList.GET();if(v!=null&&v.data){const{success:b,error:y,result:f}=v.data;if(f&&(k.members=f.members||[]),y)throw y}}catch(v){console.log(v)}finally{g.value=!1,k.loading=!1}}))(),(v,b)=>(r(),s("div",Bw,[t("div",Yw,[t("span",null,"RAID - "+i(o.raid.name)+" "+i(e(a)("\u4FEE\u6539")),1)]),t("div",Aw,[t("div",Sw,[t("div",zw,i(e(a)("\u8BBE\u5907")),1),t("div",Pw,[t("select",Tw,[t("option",null,i(o.raid.name)+"_"+i(o.raid.venderModel)+" ("+i(o.raid.path)+"\uFF0C"+i(o.raid.level)+"\uFF0C"+i(o.raid.size)+") ",1)])])]),t("div",Iw,[t("div",Mw,i(e(a)("\u9009\u62E9\u786C\u76D8\uFF08\u9009\u62E9\u88AB\u6DFB\u52A0\u5230RAID\u7684\u786C\u76D8\uFF09\uFF1A")),1),e(k).loading?(r(),s("div",Lw,[t("span",Ow,i(e(a)("\u68C0\u6D4B\u4E2D...")),1)])):(r(),s("div",Nw,[e(k).members.length>0?(r(!0),s(U,{key:0},tt(e(k).members,y=>(r(),s("label",null,[O(t("input",{type:"radio","onUpdate:modelValue":b[0]||(b[0]=f=>p.value=f),value:y.path},null,8,Vw),[[Bt,p.value]]),dt(" \u3010"+i(y.model)+"\u3011"+i(y.name)+" "+i(y.path)+" ["+i(y.sizeStr)+"] ",1)]))),256)):(r(),s("span",Gw,i(e(a)("\u68C0\u6D4B\u4E0D\u5230\u53EF\u7528\u78C1\u76D8\u9635\u5217\u6210\u5458")),1))]))])]),t("div",jw,[t("div",{class:"close",onClick:u,disabled:g.value},i(e(a)("\u53D6\u6D88")),9,Uw),t("div",{class:"next",onClick:c,disabled:g.value},i(e(a)("\u4FDD\u5B58")),9,qw)])]))}});var Ww=N(Rw,[["__scopeId","data-v-593445fb"]]);const Hw={class:"actioner-container"},Jw={class:"actioner-container_header"},Zw={class:"actioner-container_body"},Kw={class:"label-item"},Qw={class:"label-item_key"},Xw={class:"label-item_value"},tk={disabled:""},ek={class:"label-item"},ak={class:"label-item_key"},ok={class:"label-item_value"},nk=["value"],ik={class:"actioner-container_footer"},rk=["disabled"],sk=["disabled"],dk=I({props:{Close:{type:Function,required:!0},raid:{type:Object,required:!0},success:{type:Function}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.Close()},d=()=>{n.success&&n.success()},c=()=>L(this,null,function*(){const p=g.value;if(p==""){$.Warning(a("\u8BF7\u9009\u62E9\u8981\u5220\u9664\u7684\u786C\u76D8"));return}k.value=!0;const m=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{const v=yield G.Raid.Remove.POST({path:n.raid.path,memberPath:p});if(v.data){const{error:b,success:y}=v.data;if(b)throw b;(y||0)==0&&($.Success(a("\u4FDD\u5B58\u6210\u529F")),d(),u())}}catch(v){$.Error(`${v}`)}finally{k.value=!1,m.Close()}}),k=E(!1),g=E("");return(p,m)=>(r(),s("div",Hw,[t("div",Jw,[t("span",null,"RAID - "+i(o.raid.name)+" "+i(e(a)("\u79FB\u9664")),1)]),t("div",Zw,[t("div",Kw,[t("div",Qw,i(e(a)("\u8BBE\u5907")),1),t("div",Xw,[t("select",tk,[t("option",null,i(o.raid.name)+"_"+i(o.raid.venderModel)+" ("+i(o.raid.path)+"\uFF0C"+i(o.raid.level)+"\uFF0C"+i(o.raid.size)+") ",1)])])]),t("div",ek,[t("div",ak,i(e(a)("\u9009\u62E9\u786C\u76D8\uFF08\u9009\u62E9\u8981\u4ECERAID\u9635\u5217\u4E2D\u5220\u9664\u7684\u786C\u76D8\uFF09\uFF1A")),1),t("div",ok,[(r(!0),s(U,null,tt(o.raid.members,v=>(r(),s("label",null,[O(t("input",{type:"radio","onUpdate:modelValue":m[0]||(m[0]=b=>g.value=b),value:v},null,8,nk),[[Bt,g.value]]),dt(" "+i(v),1)]))),256))])])]),t("div",ik,[t("div",{class:"close",onClick:u,disabled:k.value},i(e(a)("\u53D6\u6D88")),9,rk),t("div",{class:"next",onClick:c,disabled:k.value},i(e(a)("\u4FDD\u5B58")),9,sk)])]))}});var lk=N(dk,[["__scopeId","data-v-77aa4121"]]);const uk={class:"actioner-container"},ck={class:"actioner-container_header"},pk={class:"actioner-container_body"},fk={class:"label-item"},mk={class:"label-item_key"},gk={class:"label-item_value"},vk={disabled:""},bk={class:"label-item"},hk={class:"label-item_key"},_k={key:0,class:"label-item_value"},xk={class:"msg-warning"},wk={key:1,class:"label-item_value"},kk=["value"],yk={key:1,class:"msg-warning"},Fk={class:"actioner-container_footer"},Ek=["disabled"],$k=["disabled"],Ck=I({props:{Close:{type:Function,required:!0},raid:{type:Object,required:!0},success:{type:Function}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=()=>{n.Close()},d=()=>{n.success&&n.success()},c=()=>L(this,null,function*(){const v=p.value;if(v==""){$.Warning(a("\u8BF7\u9009\u62E9\u8981\u6DFB\u52A0\u7684\u786C\u76D8"));return}g.value=!0;const b=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{const y=yield G.Raid.Recover.POST({path:n.raid.path,memberPath:v});if(y.data){const{error:f,success:F}=y.data;if(f)throw f;(F||0)==0&&($.Success(a("\u4FDD\u5B58\u6210\u529F")),d(),u())}}catch(y){$.Error(`${y}`)}finally{g.value=!1,b.Close()}}),k=gt({loading:!1,members:[]}),g=E(!1),p=E("");return(()=>L(this,null,function*(){k.loading=!0,g.value=!0;try{const v=yield G.Raid.CreateList.GET();if(v!=null&&v.data){const{success:b,error:y,result:f}=v.data;if(f&&(k.members=f.members||[]),y)throw y}}catch(v){console.log(v)}finally{g.value=!1,k.loading=!1}}))(),(v,b)=>(r(),s("div",uk,[t("div",ck,[t("span",null,"RAID - "+i(o.raid.name)+" "+i(e(a)("\u6062\u590D")),1)]),t("div",pk,[t("div",fk,[t("div",mk,i(e(a)("\u8BBE\u5907")),1),t("div",gk,[t("select",vk,[t("option",null,i(o.raid.name)+"_"+i(o.raid.venderModel)+" ("+i(o.raid.path)+"\uFF0C"+i(o.raid.level)+"\uFF0C"+i(o.raid.size)+") ",1)])])]),t("div",bk,[t("div",hk,i(e(a)("\u9009\u62E9\u786C\u76D8\uFF08\u9009\u62E9\u7A7A\u95F2\u7684\u786C\u76D8\u6062\u590DRAID\u8BBE\u5907\uFF09\uFF1A")),1),e(k).loading?(r(),s("div",_k,[t("span",xk,i(e(a)("\u68C0\u6D4B\u4E2D...")),1)])):(r(),s("div",wk,[e(k).members.length>0?(r(!0),s(U,{key:0},tt(e(k).members,y=>(r(),s("label",null,[O(t("input",{type:"radio","onUpdate:modelValue":b[0]||(b[0]=f=>p.value=f),value:y.path},null,8,kk),[[Bt,p.value]]),dt(" \u3010"+i(y.model)+"\u3011"+i(y.name)+" "+i(y.path)+" ["+i(y.sizeStr)+"] ",1)]))),256)):(r(),s("span",yk,i(e(a)("\u68C0\u6D4B\u4E0D\u5230\u53EF\u7528\u78C1\u76D8\u9635\u5217\u6210\u5458")),1))]))])]),t("div",Fk,[t("div",{class:"close",onClick:u,disabled:g.value},i(e(a)("\u53D6\u6D88")),9,Ek),t("div",{class:"next",onClick:c,disabled:g.value},i(e(a)("\u4FDD\u5B58")),9,$k)])]))}});var Dk=N(Ck,[["__scopeId","data-v-a924400c"]]);const Bk={class:"action-main"},Yk=I({props:{Close:{type:Function,required:!0},setup:{type:String,default:"create"},raid:{type:Object},success:{type:Function}},setup(o){return(n,a)=>(r(),Z(wt,{type:2},{default:V(()=>[t("div",Bk,[o.setup=="create"?(r(),Z(kw,{key:0,Close:o.Close},null,8,["Close"])):o.setup=="info"&&o.raid!=null?(r(),Z(Dw,{key:1,Close:o.Close,raid:o.raid,success:o.success},null,8,["Close","raid","success"])):o.setup=="edit"&&o.raid!=null?(r(),Z(Ww,{key:2,Close:o.Close,raid:o.raid,success:o.success},null,8,["Close","raid","success"])):o.setup=="remove"&&o.raid!=null?(r(),Z(lk,{key:3,Close:o.Close,raid:o.raid,success:o.success},null,8,["Close","raid","success"])):o.setup=="recover"&&o.raid!=null?(r(),Z(Dk,{key:4,Close:o.Close,raid:o.raid,success:o.success},null,8,["Close","raid","success"])):D("",!0)])]),_:1}))}});var Ak=N(Yk,[["__scopeId","data-v-6ef94d02"]]);const he=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(Ak,vt(st({},o),{Close:()=>{l()}}));a.use(Ra),a.mount(n);const l=()=>{a.unmount(),n.remove()};return{Close:l}},so=o=>(ut("data-v-30707fb2"),o=o(),ct(),o),Sk={id:"page"},zk={name:"content"},Pk={class:"cbi-map-descr"},Tk={style:{color:"#f5365b","margin-top":"10px"}},Ik={style:{color:"#f5365b","margin-top":"10px"}},Mk={class:"btns"},Lk=["disabled"],Ok={class:"cbi-section cbi-tblsection",id:"cbi-nfs-mount"},Nk={class:"table cbi-section-table"},Vk={style:{}},Gk={class:"tr cbi-section-table-titles anonymous"},jk={class:"th cbi-section-table-cell","data-widget":"value"},Uk={class:"th cbi-section-table-cell","data-widget":"value"},qk={class:"th cbi-section-table-cell","data-widget":"value"},Rk={class:"th cbi-section-table-cell","data-widget":"value"},Wk={class:"th cbi-section-table-cell","data-widget":"value"},Hk={class:"th cbi-section-table-cell","data-widget":"value"},Jk={class:"th cbi-section-table-cell","data-widget":"value"},Zk={class:"th cbi-section-table-cell","data-widget":"value"},Kk={class:"tr cbi-section-table-row"},Qk={class:"td cbi-value-field"},Xk={class:"td cbi-value-field"},ty=["title"],ey={class:"item-status"},ay={key:0,class:"item-status item-status-detail"},oy={class:"td cbi-value-field"},ny={class:"td cbi-value-field"},iy={class:"td cbi-value-field"},ry=so(()=>t("br",null,null,-1)),sy={class:"td cbi-value-field"},dy=so(()=>t("br",null,null,-1)),ly={key:1,href:"/cgi-bin/luci/admin/quickstart/"},uy={class:"td cbi-section-table-cell nowrap cbi-section-actions"},cy=["title","disabled","onClick"],py=["title","disabled","onClick"],fy=["title","onClick"],my=["title","onClick"],gy=["title","onClick"],vy=I({setup(o){const{$gettext:n,$ngettext:a}=J(),l=gt({disksList:[]}),u=()=>L(this,null,function*(){try{const w=yield G.Raid.List.GET();if(w!=null&&w.data){const{success:h,error:_,result:x}=w.data;if(x&&(l.disksList=x.disks||[]),_)throw _}}catch(w){console.log(w)}}),d=Mt.easyInterval(u,5e3);ke(()=>{d()});const c=w=>{switch(w.level){case"raid0":case"jbod":return!0}return w.status.indexOf("degraded")!=-1||w.status.indexOf("resyncing(")!=-1},k=w=>{let h=[];return w.childrens&&w.childrens.forEach(_=>{_.mountPoint&&h.push(`${_.name}(${_.mountPoint})`)}),h},g=()=>L(this,null,function*(){he({setup:"create",success:()=>{u()}})}),p=w=>{he({setup:"info",raid:w})},m=w=>L(this,null,function*(){if(w.childrens&&w.childrens.length>0&&w.childrens.filter(x=>x.mountPoint).length>0){Se({content:n("\u5220\u9664 RAID \u8BBE\u5907\u4E4B\u524D\u8BF7\u5148\u5378\u8F7D\u6587\u4EF6\u7CFB\u7EDF"),nextTitle:n("\u53BB\u5378\u8F7D"),next:()=>{location.href="/cgi-bin/luci/admin/system/mounts"},clearTitle:n("\u53D6\u6D88"),clear:()=>{}});return}if(!confirm(n("\u786E\u5B9A\u8981\u5220\u9664 %{name} \u8BE5\u78C1\u76D8\u9635\u5217\u5417\uFF1F\u5220\u9664\u64CD\u4F5C\u53EF\u80FD\u4F1A\u5BFC\u81F4\u6570\u636E\u4E22\u5931\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\u3002\u5220\u9664\u6210\u529F\u540E\uFF0C\u5982\u9700\u53E6\u5916\u7EC4RAID\uFF0C\u5EFA\u8BAE\u7A0D\u7B49\u51E0\u5206\u949F\u540E\u518D\u8BD5\u3002",{name:w.name}))||!confirm(n("\u786E\u5B9A\u8981\u5220\u9664 %{name} \u5417?",{name:w.name})))return;const h=$.Loading(n("\u5220\u9664\u4E2D..."));try{const _=yield G.Raid.Delete.POST({path:w.path,members:w.members});if(_.data){const{success:x,error:C}=_.data;if(C)throw C;(x||0)==0&&($.Success(n("\u5220\u9664\u6210\u529F")),u())}}catch(_){$.Error(`${_}`)}finally{h.Close()}}),v=w=>{he({setup:"edit",raid:w,success:()=>{u()}})},b=w=>{he({setup:"remove",raid:w,success:()=>{u()}})},y=w=>{he({setup:"recover",raid:w,success:()=>{u()}})},f=E(!1),F=()=>{Se({content:n("\u5C06\u626B\u63CF\u78C1\u76D8\u91CC RAID \u7684\u78C1\u76D8\u9635\u5217\u914D\u7F6E\u5E76\u6062\u590D\uFF0C\u786E\u5B9A\u8981\u6062\u590D RAID \u78C1\u76D8\u9635\u5217\u5417\uFF1F"),nextTitle:n("\u786E\u5B9A"),next:()=>L(this,null,function*(){f.value=!0;const w=$.Loading(n("\u626B\u63CF\u4E2D..."));try{const h=yield G.Raid.Autofix.POST();if(h.data){const{error:_,success:x}=h.data;if(_)throw _;(x||0)==0&&($.Success(n("\u6062\u590D\u5B8C\u6210")),u())}}catch(h){$.Error(`${h}`)}finally{w.Close(),f.value=!1}}),clearTitle:n("\u53D6\u6D88"),clear:()=>{}})};return(w,h)=>(r(),s("div",Sk,[t("h2",zk,i(e(n)("RAID\u7BA1\u7406")),1),t("div",Pk,[t("p",null,i(e(n)("RAID \uFF08 Redundant Array of Independent Disks \uFF09\u5373\u72EC\u7ACB\u78C1\u76D8\u5197\u4F59\u9635\u5217\uFF0C\u7B80\u79F0\u4E3A\u300C\u78C1\u76D8\u9635\u5217\u300D\uFF0C\u5C31\u662F\u7528\u591A\u4E2A\u72EC\u7ACB\u7684\u78C1\u76D8\u7EC4\u6210\u5728\u4E00\u8D77\u5F62\u6210\u4E00\u4E2A\u5927\u7684\u78C1\u76D8\u7CFB\u7EDF\uFF0C\u4ECE\u800C\u5B9E\u73B0\u6BD4\u5355\u5757\u78C1\u76D8\u66F4\u597D\u7684\u5B58\u50A8\u6027\u80FD\u548C\u66F4\u9AD8\u7684\u53EF\u9760\u6027\u3002")),1),t("p",Tk," * "+i(e(n)("RAID\u529F\u80FD\u6B63\u5728\u516C\u6D4B\u4E2D\uFF0C\u4F7F\u7528\u8FC7\u7A0B\u4E2D\u5982\u9020\u6210\u6570\u636E\u4E22\u5931\u7B49\u95EE\u9898\uFF0C\u6982\u4E0D\u8D1F\u8D23\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528\u3002")),1),t("p",Ik," * "+i(e(n)("\u5982\u679C\u7531\u4E8E\u7CFB\u7EDF\u91CD\u7F6E\u6216\u91CD\u542F\u5BFC\u81F4\u7684RAID\u8BBE\u5907\u4E22\u5931\u53EF\u4EE5\u5C1D\u8BD5\u901A\u8FC7\u4E0B\u65B9'\u626B\u63CF\u6062\u590DRAID'\u6309\u94AE\u6062\u590D")),1)]),t("div",Mk,[t("button",{class:"btn cbi-button cbi-button-apply",onClick:h[0]||(h[0]=_=>g())},i(e(n)("\u521B\u5EFARAID")),1),t("button",{class:"btn cbi-button cbi-button-apply",onClick:h[1]||(h[1]=_=>F()),disabled:f.value},i(e(n)("\u626B\u63CF\u6062\u590DRAID")),9,Lk)]),t("div",null,[t("div",Ok,[t("table",Nk,[t("tbody",Vk,[t("tr",Gk,[t("th",jk,i(e(n)("\u540D\u79F0")),1),t("th",Uk,i(e(n)("\u8BBE\u5907")),1),t("th",qk,i(e(n)("\u72B6\u6001")),1),t("th",Rk,i(e(n)("\u7EA7\u522B")),1),t("th",Wk,i(e(n)("\u5BB9\u91CF")),1),t("th",Hk,i(e(n)("\u6210\u5458")),1),t("th",Jk,i(e(n)("\u6302\u8F7D\u4FE1\u606F")),1),t("th",Zk,i(e(n)("\u64CD\u4F5C")),1)]),(r(!0),s(U,null,tt(e(l).disksList,_=>(r(),s("tr",Kk,[t("td",Qk,[t("b",null,i(_.name),1)]),t("td",Xk,[t("b",null,i(_.path),1)]),t("td",{class:"td cbi-value-field",title:_.status+(_.rebuildStatus||"")},[t("b",ey,i(_.status),1),_.rebuildStatus?(r(),s("b",ay," \u2026 ")):D("",!0)],8,ty),t("td",oy,[t("b",null,i(_.level),1)]),t("td",ny,[t("b",null,i(_.size),1)]),t("td",iy,[(r(!0),s(U,null,tt(_.members,x=>(r(),s("b",null,[dt(i(x)+" ",1),ry]))),256))]),t("td",sy,[k(_).length>0?(r(!0),s(U,{key:0},tt(k(_),x=>(r(),s("b",null,[dt(i(x)+" ",1),dy]))),256)):(r(),s("a",ly,i(e(n)("\u53BB\u6302\u8F7D")),1))]),t("td",uy,[t("button",{class:"btn cbi-button cbi-button-apply",title:e(n)("\u6269\u5145"),disabled:c(_),onClick:x=>v(_)},i(e(n)("\u6269\u5145")),9,cy),t("button",{class:"btn cbi-button cbi-button-apply",title:e(n)("\u79FB\u9664"),disabled:c(_),onClick:x=>b(_)},i(e(n)("\u79FB\u9664")),9,py),t("button",{class:"btn cbi-button cbi-button-apply",title:e(n)("\u6062\u590D"),onClick:x=>y(_)},i(e(n)("\u6062\u590D")),9,fy),t("button",{class:"btn cbi-button cbi-button-apply",title:e(n)("\u8BE6\u60C5"),onClick:x=>p(_)},i(e(n)("\u8BE6\u60C5")),9,my),t("button",{class:"cbi-button cbi-button-remove",title:e(n)("\u5982\u679C\u60A8\u5728RAID\u78C1\u76D8\u9635\u5217\u4E2D\u521B\u5EFA\u4E86\u6587\u4EF6\u7CFB\u7EDF\uFF0C\u5148\u5378\u8F7D\u6587\u4EF6\u7CFB\u7EDF\uFF0C\u540E\u5220\u9664\u6587\u4EF6\u7CFB\u7EDF\u5220\u9664\u64CD\u4F5C\u53EF\u80FD\u4F1A\u5BFC\u81F4\u6570\u636E\u4E22\u5931\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\u3002"),onClick:x=>m(_)},i(e(n)("\u5220\u9664")),9,gy)])]))),256))])])])])]))}});var by=N(vy,[["__scopeId","data-v-30707fb2"]]);const hy=o=>(ut("data-v-16dd0913"),o=o(),ct(),o),_y={id:"page"},xy=hy(()=>t("h2",{name:"content"},"S.M.A.R.T.",-1)),wy={class:"cbi-map-descr"},ky={class:"tabs"},yy=["href","onClick"],Fy=I({setup(o){const{$gettext:n,$ngettext:a}=J(),l=[{to:"/smart",name:n("\u5E38\u89C4\u8BBE\u7F6E")},{to:"/smart/task",name:n("\u8BA1\u5212\u4EFB\u52A1")},{to:"/smart/log",name:n("\u67E5\u770B\u65E5\u5FD7")}],u=E(!1),d=gt({global:{enable:!1,powermode:"never",tmpDiff:0,tmpMax:0},devices:[],tasks:[]}),c=p=>{const{global:m,devices:v,tasks:b}=p;m&&(d.global.enable=m.enable||!1,d.global.powermode=m.powermode||"never"),d.devices=v||[],d.tasks=b||[]};(()=>L(this,null,function*(){try{const p=yield G.Smart.Config.GET();if(p.data){const{result:m}=p.data;m&&c(m)}}catch(p){}finally{u.value=!0}}))();const g=p=>L(this,null,function*(){const m=$.Loading(n("\u4FDD\u5B58\u4E2D..."));try{const v=yield G.Smart.Config.POST(p);if(v.data){console.log(v.data);const{success:b,error:y,result:f}=v.data;if(y)throw y;(b||0)==0&&($.Success(n("\u4FDD\u5B58\u6210\u529F")),f&&c(f))}}catch(v){$.Error(`${v}`)}finally{m.Close()}});return(p,m)=>{const v=_t("router-link"),b=_t("router-view");return r(),s("div",_y,[xy,t("div",wy,[t("p",null,i(e(n)("S.M.A.R.T.\uFF0C\u5168\u79F0\u4E3A\u201CSelf-Monitoring Analysis and Reporting Technology\u201D\uFF0C\u5373\u201C\u81EA\u6211\u76D1\u6D4B\u3001\u5206\u6790\u53CA\u62A5\u544A\u6280\u672F\u201D\uFF0C")),1),t("p",null,i(e(n)("\u662F\u4E00\u79CD\u81EA\u52A8\u7684\u786C\u76D8\u72B6\u6001\u68C0\u6D4B\u4E0E\u9884\u8B66\u7CFB\u7EDF\u548C\u89C4\u8303\u3002\u901A\u8FC7\u5728\u786C\u76D8\u786C\u4EF6\u5185\u7684\u68C0\u6D4B\u6307\u4EE4\u5BF9\u786C\u76D8\u7684\u786C\u4EF6\u5982\u78C1\u5934\u3001\u76D8\u7247\u3001\u9A6C\u8FBE\u3001")),1),t("p",null,i(e(n)("\u7535\u8DEF\u7684\u8FD0\u884C\u60C5\u51B5\u8FDB\u884C\u76D1\u63A7\u3001\u8BB0\u5F55\u5E76\u4E0E\u5382\u5546\u6240\u8BBE\u5B9A\u7684\u9884\u8BBE\u5B89\u5168\u503C\u8FDB\u884C\u6BD4\u8F83\uFF0C\u82E5\u76D1\u63A7\u60C5\u51B5\u5C06\u8981\u6216\u5DF2\u8D85\u51FA\u9884\u8BBE\u5B89\u5168\u503C\u7684\u5B89\u5168\u8303\u56F4\uFF0C")),1),t("p",null,i(e(n)("\u5C31\u53EF\u4EE5\u901A\u8FC7\u4E3B\u673A\u7684\u76D1\u63A7\u786C\u4EF6\u6216\u8F6F\u4EF6\u81EA\u52A8\u5411\u7528\u6237\u4F5C\u51FA\u8B66\u544A\u5E76\u8FDB\u884C\u8F7B\u5FAE\u7684\u81EA\u52A8\u4FEE\u590D\uFF0C\u4EE5\u63D0\u524D\u4FDD\u969C\u786C\u76D8\u6570\u636E\u7684\u5B89\u5168\u3002")),1)]),t("ul",ky,[(r(),s(U,null,tt(l,y=>Y(v,{to:y.to,custom:"",key:y.to},{default:V(({route:f,href:F,navigate:w,isActive:h,isExactActive:_})=>[t("li",{class:lt({"active cbi-tab":h&&_})},[t("a",{href:F,onClick:w},i(y.name),9,yy)],2)]),_:2},1032,["to"])),64))]),u.value?(r(),Z(b,{key:0,name:"default"},{default:V(({Component:y,route:f})=>[(r(),Z(Co,null,{default:V(()=>[(r(),Z(oa(y),{key:f.path,config:e(d),saveData:g},null,8,["config"]))]),_:2},1024))]),_:1})):D("",!0)])}}});var Ey=N(Fy,[["__scopeId","data-v-16dd0913"]]);const $y={class:"action-main"},Cy=I({setup(o){return(n,a)=>(r(),Z(wt,{type:2},{default:V(()=>[t("div",$y,[Yt(n.$slots,"default",{},void 0,!0)])]),_:3}))}});var je=N(Cy,[["__scopeId","data-v-742230ae"]]);const Dy={class:"actioner-container"},By={class:"actioner-container_header"},Yy={class:"actioner-container_body"},Ay={class:"cbi-value"},Sy={class:"cbi-value-title"},zy={class:"cbi-value-field"},Py={class:"cbi-value-description"},Ty={class:"cbi-value"},Iy={class:"cbi-value-title"},My={class:"cbi-value-field"},Ly={class:"cbi-checkbox"},Oy={value:-1},Ny={value:0},Vy=["value"],Gy={class:"cbi-value-description"},jy={class:"cbi-value"},Uy={class:"cbi-value-title"},qy={class:"cbi-value-field"},Ry={class:"cbi-checkbox"},Wy={value:-1},Hy={value:0},Jy=["value"],Zy={class:"cbi-value-description"},Ky={class:"actioner-container_footer"},Qy=["disabled"],Xy=["disabled"],tF=I({props:{close:{type:Function,required:!0},disk:{type:Object,required:!0},device:{type:Object},next:{type:Function,required:!0}},setup(o){var g,p,m;const n=o,{$gettext:a,$ngettext:l}=J();console.log(n.device);const u=E(!1),d=gt({tmpDiff:((g=n.device)==null?void 0:g.tmpDiff)||0,tmpMax:((p=n.device)==null?void 0:p.tmpMax)||0,devicePath:((m=n.device)==null?void 0:m.devicePath)||""}),c=()=>{u.value=!0,n.close()},k=()=>L(this,null,function*(){u.value=!0;try{yield n.next({tmpDiff:d.tmpDiff,tmpMax:d.tmpMax,devicePath:d.devicePath}),u.value=!1,c()}catch(v){}});return(v,b)=>(r(),Z(je,null,{default:V(()=>[t("div",Dy,[t("div",By,[t("span",null," S.M.A.R.T. \xBB "+i(e(a)("\u8BBE\u5907"))+" \xBB "+i(o.disk.path),1)]),t("div",Yy,[t("div",Ay,[t("label",Sy,i(e(a)("\u78C1\u76D8")),1),t("div",zy,[t("div",Py,i(o.disk.model)+" [ "+i(o.disk.path)+"\uFF0C"+i(o.disk.sizeStr)+" ] ",1)])]),t("div",Ty,[t("label",Iy,i(e(a)("\u6E29\u5EA6\u76D1\u6D4B\uFF08\u5DEE\u5F02\uFF09")),1),t("div",My,[t("div",Ly,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":b[0]||(b[0]=y=>e(d).tmpDiff=y)},[t("option",Oy,i(e(a)("\u4F7F\u7528\u5168\u5C40\u914D\u7F6E")),1),t("option",Ny,i(e(a)("\u7981\u7528")),1),(r(),s(U,null,tt(20,y=>t("option",{value:y},i(y)+"\xB0C",9,Vy)),64))],512),[[pt,e(d).tmpDiff,void 0,{number:!0}]])]),t("div",Gy,i(e(a)("\u81EA\u4E0A\u6B21\u62A5\u544A\u4EE5\u6765\u6E29\u5EA6\u53D8\u5316\u81F3\u5C11 N \u5EA6\uFF0C\u5219\u9700\u62A5\u544A.")),1)])]),t("div",jy,[t("label",Uy,i(e(a)("\u6E29\u5EA6\u76D1\u6D4B\uFF08\u6700\u5927\uFF09")),1),t("div",qy,[t("div",Ry,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":b[1]||(b[1]=y=>e(d).tmpMax=y)},[t("option",Wy,i(e(a)("\u4F7F\u7528\u5168\u5C40\u914D\u7F6E")),1),t("option",Hy,i(e(a)("\u7981\u7528")),1),(r(),s(U,null,tt(20,y=>t("option",{value:y*5},i(y*5)+"\xB0C",9,Jy)),64))],512),[[pt,e(d).tmpMax,void 0,{number:!0}]])]),t("div",Zy,i(e(a)("\u5982\u679C\u6E29\u5EA6\u5927\u4E8E\u6216\u7B49\u4E8E N \u6444\u6C0F\u5EA6\u5219\u62A5\u544A.")),1)])])]),t("div",Ky,[t("button",{class:"close",onClick:c,disabled:u.value},i(e(a)("\u53D6\u6D88")),9,Qy),t("button",{class:"next",onClick:k,disabled:u.value},i(e(a)("\u4FDD\u5B58")),9,Xy)])])]),_:1}))}}),eF={class:"actioner-container"},aF={class:"actioner-container_header"},oF={class:"actioner-container_body"},nF={class:"cbi-value"},iF={class:"cbi-value-title"},rF={class:"cbi-value-field"},sF={class:"cbi-checkbox"},dF={value:""},lF=["value"],uF={class:"cbi-value"},cF={class:"cbi-value-title"},pF={class:"cbi-value-field"},fF={class:"cbi-checkbox"},mF={value:"short"},gF={value:"long"},vF={value:"conveyance"},bF={value:"offline"},hF={class:"cbi-value"},_F={class:"cbi-value-title"},xF={class:"cbi-value-field"},wF={class:"cbi-checkbox"},kF=t("option",{value:"*"},"*",-1),yF=["value"],FF={class:"cbi-value-description"},EF={class:"cbi-value"},$F={class:"cbi-value-title"},CF={class:"cbi-value-field"},DF={class:"cbi-checkbox"},BF=t("option",{value:"*"},"*",-1),YF=["value"],AF={class:"cbi-value-description"},SF={class:"cbi-value"},zF={class:"cbi-value-title"},PF={class:"cbi-value-field"},TF={class:"cbi-checkbox"},IF=t("option",{value:"*"},"*",-1),MF=["value"],LF={class:"cbi-value-description"},OF={class:"actioner-container_footer"},NF=["disabled"],VF=["disabled"],GF=I({props:{close:{type:Function,required:!0},config:{type:Object,required:!0},next:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!1),d=gt({type:"short",devicePath:"",month:"*",dayPerMonth:"*",hour:"*"}),c=E([]);(()=>L(this,null,function*(){try{const m=yield G.Smart.List.GET();if(m.data){const{result:v,error:b}=m.data;v&&v.disks&&(c.value=v.disks)}}catch(m){}}))();const g=()=>{u.value=!0,n.close()},p=()=>L(this,null,function*(){if(d.devicePath==""){$.Warning(a("\u8BF7\u9009\u62E9\u78C1\u76D8"));return}u.value=!0;try{yield n.next(d),g()}catch(m){}finally{u.value=!1}});return(m,v)=>(r(),Z(je,null,{default:V(()=>[t("div",eF,[t("div",aF,[t("span",null,i(e(a)("\u521B\u5EFA\u8BA1\u5212\u4EFB\u52A1")),1)]),t("div",oF,[t("div",nF,[t("label",iF,i(e(a)("\u78C1\u76D8")),1),t("div",rF,[t("div",sF,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":v[0]||(v[0]=b=>e(d).devicePath=b)},[t("option",dF,i(e(a)("\u9009\u62E9\u78C1\u76D8")),1),(r(!0),s(U,null,tt(c.value,b=>(r(),s("option",{value:b.path},i(b.model)+" [ "+i(b.path)+"\uFF0C"+i(b.sizeStr)+" ] ",9,lF))),256))],512),[[pt,e(d).devicePath,void 0,{trim:!0}]])])])]),t("div",uF,[t("label",cF,i(e(a)("\u7C7B\u578B")),1),t("div",pF,[t("div",fF,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":v[1]||(v[1]=b=>e(d).type=b)},[t("option",mF,i(e(a)("\u77ED\u6682\u81EA\u68C0")),1),t("option",gF,i(e(a)("\u957F\u65F6\u81EA\u68C0")),1),t("option",vF,i(e(a)("\u4F20\u8F93\u65F6\u81EA\u68C0")),1),t("option",bF,i(e(a)("\u79BB\u7EBF\u65F6\u81EA\u68C0")),1)],512),[[pt,e(d).type,void 0,{trim:!0}]])])])]),t("div",hF,[t("label",_F,i(e(a)("\u5C0F\u65F6")),1),t("div",xF,[t("div",wF,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":v[2]||(v[2]=b=>e(d).hour=b)},[kF,(r(),s(U,null,tt(24,(b,y)=>t("option",{value:`${y}`},i(y),9,yF)),64))],512),[[pt,e(d).hour,void 0,{trim:!0}]])]),t("div",FF,i(e(a)("* \u8868\u793A\u6BCF\u5C0F\u65F6")),1)])]),t("div",EF,[t("label",$F,i(e(a)("\u5929")),1),t("div",CF,[t("div",DF,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":v[3]||(v[3]=b=>e(d).dayPerMonth=b)},[BF,(r(),s(U,null,tt(31,b=>t("option",{value:`${b}`},i(b),9,YF)),64))],512),[[pt,e(d).dayPerMonth,void 0,{trim:!0}]])]),t("div",AF,i(e(a)("* \u8868\u793A\u6BCF\u5929")),1)])]),t("div",SF,[t("label",zF,i(e(a)("\u6708")),1),t("div",PF,[t("div",TF,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":v[4]||(v[4]=b=>e(d).month=b)},[IF,(r(),s(U,null,tt(12,(b,y)=>t("option",{value:`${b}`},i(b),9,MF)),64))],512),[[pt,e(d).month,void 0,{trim:!0}]])]),t("div",LF,i(e(a)("* \u8868\u793A\u6BCF\u6708")),1)])])]),t("div",OF,[t("button",{class:"close",onClick:g,disabled:u.value},i(e(a)("\u53D6\u6D88")),9,NF),t("button",{class:"next",onClick:p,disabled:u.value},i(e(a)("\u4FDD\u5B58")),9,VF)])])]),_:1}))}}),jF={class:"actioner-container"},UF={class:"actioner-container_header"},qF={class:"actioner-container_body"},RF=["value"],WF={class:"actioner-container_footer"},HF=["disabled"],JF=["disabled"],ZF=I({props:{close:{type:Function,required:!0},task:{type:Object,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!1),d=E(""),c=E(""),k=E(""),g=()=>L(this,null,function*(){d.value+=".";try{const b=yield G.Smart.Test.Result.POST({type:"selftest",devicePath:n.task.devicePath||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(k.value=y.result),f&&(k.value=f)}}catch(b){b&&(k.value=b)}}),p=Mt.easyInterval(g,5e3);ke(()=>{p()});const m=()=>{u.value=!0,p(),n.close()},v=()=>L(this,null,function*(){u.value=!0;try{const b=yield G.Smart.Test.POST({type:n.task.type||"short",devicePath:n.task.devicePath||""});if(b.data){const{success:y,error:f,result:F}=b.data;f&&(c.value=f),F&&F.result&&(c.value=F.result)}}catch(b){c.value=b}finally{}});return(b,y)=>(r(),Z(je,null,{default:V(()=>[t("div",jF,[t("div",UF,[t("span",null,i(e(a)("\u8FD0\u884C\u8C03\u8BD5")),1)]),t("div",qF,[t("textarea",{value:c.value+` -`+k.value+` -`+d.value,disabled:""},null,8,RF)]),t("div",WF,[t("div",{class:"close",onClick:m,disabled:u.value},i(e(a)("\u5173\u95ED")),9,HF),u.value?D("",!0):(r(),s("div",{key:0,class:"next",onClick:v,disabled:u.value},i(e(a)("\u8FD0\u884C")),9,JF))])])]),_:1}))}});var KF=N(ZF,[["__scopeId","data-v-70c3aae0"]]);const QF={class:"actioner-container"},XF={class:"actioner-container_header"},tE={class:"tabs"},eE={class:"actioner-container_body"},aE={key:0,class:"table"},oE={class:"tr"},nE={class:"td left"},iE={class:"td left"},rE={class:"tr"},sE={class:"td left"},dE={class:"td left"},lE={class:"tr"},uE={class:"td left"},cE={class:"td left"},pE=["value"],fE=["value"],mE=["value"],gE={class:"actioner-container_footer"},vE=["disabled"],bE=I({props:{close:{type:Function,required:!0},disk:{type:Object,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!1),d=E("info"),c=b=>{switch(d.value=b,b){case"info":break;case"attribute":m();break;case"log":p();break;case"extend":v();break}},k=()=>{u.value=!0,n.close()},g=gt({log:"",attribute:"",extend:""}),p=()=>L(this,null,function*(){try{const b=yield G.Smart.Test.Result.POST({type:"selftest",devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.log=y.result),f&&(g.log=f)}}catch(b){g.log=b}}),m=()=>L(this,null,function*(){try{const b=yield G.Smart.Attribute.Result.POST({devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.attribute=y.result),f&&(g.attribute=f)}}catch(b){g.attribute=b}}),v=()=>L(this,null,function*(){try{const b=yield G.Smart.Extend.Result.POST({devicePath:n.disk.path||""});if(b.data){const{result:y,error:f}=b.data;y&&y.result&&(g.extend=y.result),f&&(g.extend=f)}}catch(b){g.extend=b}});return(b,y)=>(r(),Z(je,null,{default:V(()=>[t("div",QF,[t("div",XF,[t("ul",tE,[t("li",{class:lt({"active cbi-tab":d.value=="info"}),onClick:y[0]||(y[0]=f=>c("info"))},[t("a",null,i(e(a)("\u8BBE\u5907\u4FE1\u606F")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="attribute"}),onClick:y[1]||(y[1]=f=>c("attribute"))},[t("a",null,i(e(a)("\u5C5E\u6027")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="log"}),onClick:y[2]||(y[2]=f=>c("log"))},[t("a",null,i(e(a)("\u81EA\u68C0\u65E5\u5FD7")),1)],2),t("li",{class:lt({"active cbi-tab":d.value=="extend"}),onClick:y[3]||(y[3]=f=>c("extend"))},[t("a",null,i(e(a)("\u6269\u5C55\u4FE1\u606F")),1)],2)])]),t("div",eE,[d.value=="info"?(r(),s("table",aE,[t("tr",oE,[t("td",nE,i(e(a)("\u8BBE\u5907")),1),t("td",iE,i(o.disk.path),1)]),t("tr",rE,[t("td",sE,i(e(a)("\u578B\u53F7")),1),t("td",dE,i(o.disk.model),1)]),t("tr",lE,[t("td",uE,i(e(a)("\u5E8F\u53F7")),1),t("td",cE,i(o.disk.serial),1)])])):d.value=="attribute"?(r(),s("textarea",{key:1,disabled:"",value:e(g).attribute},null,8,pE)):d.value=="log"?(r(),s("textarea",{key:2,disabled:"",value:e(g).log},null,8,fE)):d.value=="extend"?(r(),s("textarea",{key:3,disabled:"",value:e(g).extend},null,8,mE)):D("",!0)]),t("div",gE,[t("div",{class:"close",onClick:k,disabled:u.value},i(e(a)("\u5173\u95ED")),9,vE)])])]),_:1}))}});var hE=N(bE,[["__scopeId","data-v-313197ee"]]);const _E=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(tF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},xE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(GF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},wE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(KF,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},kE=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=Y(hE,vt(st({},o),{close:()=>{l()}})),l=()=>{n.remove()};Ie(a,n)},yE={class:"cbi-section"},FE={class:"cbi-value"},EE={class:"cbi-value-title"},$E={class:"cbi-value-field"},CE={class:"cbi-checkbox"},DE=["value"],BE={class:"cbi-value"},YE={class:"cbi-value-title"},AE={class:"cbi-value-field"},SE={class:"cbi-checkbox"},zE={value:"never"},PE={value:"sleep"},TE={value:"standby"},IE={value:"idle"},ME={class:"cbi-value-description"},LE=t("br",null,null,-1),OE=t("br",null,null,-1),NE=t("br",null,null,-1),VE=t("br",null,null,-1),GE={class:"cbi-value"},jE={class:"cbi-value-title"},UE={class:"cbi-value-field"},qE={class:"cbi-checkbox"},RE={value:0},WE=["value"],HE={class:"cbi-value-description"},JE={class:"cbi-value"},ZE={class:"cbi-value-title"},KE={class:"cbi-value-field"},QE={class:"cbi-checkbox"},XE={value:0},t$=["value"],e$={class:"cbi-value-description"},a$={class:"cbi-section cbi-tblsection",id:"cbi-nfs-mount"},o$={class:"table cbi-section-table"},n$={class:"tr cbi-section-table-titles anonymous"},i$={class:"th cbi-section-table-cell","data-widget":"value"},r$={class:"th cbi-section-table-cell","data-widget":"value"},s$={class:"th cbi-section-table-cell","data-widget":"value"},d$={class:"th cbi-section-table-cell","data-widget":"value"},l$={class:"th cbi-section-table-cell","data-widget":"value"},u$={class:"th cbi-section-table-cell","data-widget":"value"},c$={class:"th cbi-section-table-cell","data-widget":"value"},p$={class:"th cbi-section-table-cell","data-widget":"value"},f$={class:"tr cbi-section-table-row"},m$={class:"td cbi-value-field"},g$={class:"td cbi-value-field"},v$={class:"td cbi-value-field"},b$={class:"td cbi-value-field"},h$={class:"td cbi-value-field"},_$={class:"td cbi-value-field"},x$={class:"td cbi-value-field"},w$={class:"td cbi-value-field"},k$=["title","onClick"],y$=["title","onClick"],F$={class:"cbi-page-actions control-group"},E$=["value"],$$=I({props:{config:{type:Object,required:!0},saveData:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=gt(n.config),d=()=>{u.global.tmpDiff=n.config.global.tmpDiff||0,u.global.tmpMax=n.config.global.tmpMax||0,u.global.enable=n.config.global.enable||!1,u.global.powermode=n.config.global.powermode||"never",u.devices=n.config.devices||[],u.tasks=n.config.tasks||[]},c=E([]),k=()=>L(this,null,function*(){try{const b=yield G.Smart.List.GET();if(b.data){const{result:y,error:f}=b.data;y&&y.disks&&(c.value=y.disks||[])}}catch(b){}}),g=Mt.easyInterval(k,5e3);ke(()=>{g()});const p=()=>L(this,null,function*(){yield n.saveData({global:u.global,devices:n.config.devices,tasks:n.config.tasks}),d()}),m=b=>{kE({disk:b})},v=(b,y)=>L(this,null,function*(){let f=null,F=-1;if(u.devices){for(let w=0;wL(this,null,function*(){w.tmpDiff==-1&&(w.tmpDiff=u.global.tmpDiff),w.tmpMax==-1&&(w.tmpMax=u.global.tmpMax),w.devicePath==""&&(w.devicePath=b.path);let h=[...u.devices];F>=0&&(h[F]=w);const _=new Map;h.forEach(x=>{x.devicePath!=null&&_.set(x.devicePath,null)});for(let x=0;x(r(),s(U,null,[t("fieldset",yE,[t("div",FE,[t("label",EE,i(e(a)("\u542F\u7528")),1),t("div",$E,[t("div",CE,[O(t("input",{type:"checkbox","onUpdate:modelValue":y[0]||(y[0]=f=>e(u).global.enable=f),value:!e(u).global.enable},null,8,DE),[[Rt,e(u).global.enable]])])])]),t("div",BE,[t("label",YE,i(e(a)("\u7535\u6E90\u6A21\u5F0F")),1),t("div",AE,[t("div",SE,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":y[1]||(y[1]=f=>e(u).global.powermode=f)},[t("option",zE,i(e(a)("\u603B\u662F")),1),t("option",PE,i(e(a)("\u7761\u7720")),1),t("option",TE,i(e(a)("\u5F85\u673A")),1),t("option",IE,i(e(a)("\u95F2\u7F6E")),1)],512),[[pt,e(u).global.powermode,void 0,{trim:!0}]])]),t("div",ME,[t("span",null,i(e(a)("\u6D4B\u8BD5\u65F6\u78C1\u76D8\u4F1A\u8F6C\u52A8\uFF0C\u8BF7\u9009\u62E9\u5408\u9002\u7684\u6A21\u5F0F\u6765\u63A7\u5236\u78C1\u76D8\u8F6C\u52A8\u3002")),1),LE,t("span",null,"* "+i(e(a)("\u603B\u662F-\u65E0\u8BBA\u662F\u4EC0\u4E48\u529F\u8017\u6A21\u5F0F\u4E0B\u90FD\u6D4B\u8BD5(\u68C0\u67E5)\u78C1\u76D8\uFF0C\u5F53\u68C0\u67E5\u65F6\uFF0C\u8FD9\u53EF\u80FD\u4F1A\u4F7F\u505C\u8F6C\u7684\u78C1\u76D8\u5F00\u59CB\u8F6C\u52A8\u3002")),1),OE,t("span",null,"* "+i(e(a)("\u7761\u7720-\u5904\u4E8E\u7761\u7720\u6A21\u5F0F\u4E0B\u4E0D\u68C0\u67E5\u8BBE\u5907\u3002")),1),NE,t("span",null,"* "+i(e(a)("\u5F85\u673A-\u5904\u4E8E\u5F85\u673A\u548C\u7761\u7720\u6A21\u5F0F\u4E0B\u4E0D\u68C0\u67E5\u8BBE\u5907\u3002\u6B64\u6A21\u5F0F\u4E0B\u78C1\u76D8\u4E00\u822C\u4E0D\u65CB\u8F6C\uFF0C\u5982\u679C\u4F60\u4E0D\u60F3\u6BCF\u6B21\u68C0\u67E5\u90FD\u8F6C\u52A8\u78C1\u76D8\uFF0C\u90A3\u4E48\u8FD9\u4E2A\u6A21\u5F0F\u6BD4\u8F83\u9002\u5408\u3002")),1),VE,t("span",null,"* "+i(e(a)("\u95F2\u7F6E-\u5904\u4E8E\u5F85\u673A\u3001\u7761\u7720\u3001\u95F2\u7F6E\u6A21\u5F0F\u4E0B\u4E0D\u68C0\u67E5\u8BBE\u5907\uFF0C\u5728\u95F2\u7F6E\u72B6\u6001\u4E0B\uFF0C\u5927\u591A\u6570\u78C1\u76D8\u8FD8\u5728\u8F6C\u52A8\uFF0C\u6240\u4EE5\u8FD9\u53EF\u80FD\u4E0D\u9002\u5408\u4F60\u3002")),1)])])]),t("div",GE,[t("label",jE,i(e(a)("\u6E29\u5EA6\u76D1\u6D4B\uFF08\u5DEE\u5F02\uFF09")),1),t("div",UE,[t("div",qE,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":y[2]||(y[2]=f=>e(u).global.tmpDiff=f)},[t("option",RE,i(e(a)("\u7981\u7528")),1),(r(),s(U,null,tt(15,f=>t("option",{value:f},i(f)+"\xB0C",9,WE)),64))],512),[[pt,e(u).global.tmpDiff,void 0,{number:!0}]])]),t("div",HE,i(e(a)("\u81EA\u4E0A\u6B21\u62A5\u544A\u4EE5\u6765\u6E29\u5EA6\u53D8\u5316\u81F3\u5C11 N \u5EA6\uFF0C\u5219\u9700\u62A5\u544A.")),1)])]),t("div",JE,[t("label",ZE,i(e(a)("\u6E29\u5EA6\u76D1\u6D4B\uFF08\u6700\u5927\uFF09")),1),t("div",KE,[t("div",QE,[O(t("select",{class:"cbi-input-select","onUpdate:modelValue":y[3]||(y[3]=f=>e(u).global.tmpMax=f)},[t("option",XE,i(e(a)("\u7981\u7528")),1),(r(),s(U,null,tt(20,f=>t("option",{value:f*5},i(f*5)+"\xB0C",9,t$)),64))],512),[[pt,e(u).global.tmpMax,void 0,{number:!0}]])]),t("div",e$,i(e(a)("\u5982\u679C\u6E29\u5EA6\u5927\u4E8E\u6216\u7B49\u4E8E N \u6444\u6C0F\u5EA6\u5219\u62A5\u544A.")),1)])])]),t("div",a$,[t("table",o$,[t("thead",null,[t("tr",n$,[t("th",i$,i(e(a)("\u8BBE\u5907")),1),t("th",r$,i(e(a)("\u578B\u53F7")),1),t("th",s$,i(e(a)("\u5E8F\u53F7")),1),t("th",d$,i(e(a)("\u5BB9\u91CF")),1),t("th",l$,i(e(a)("\u6E29\u5EA6")),1),t("th",u$,i(e(a)("\u72B6\u6001")),1),t("th",c$,i(e(a)("\u5065\u5EB7")),1),t("th",p$,i(e(a)("\u64CD\u4F5C")),1)])]),t("tbody",null,[(r(!0),s(U,null,tt(c.value,(f,F)=>(r(),s("tr",f$,[t("td",m$,[t("b",null,i(f.path),1)]),t("td",g$,[t("b",null,i(f.model),1)]),t("td",v$,[t("b",null,i(f.serial),1)]),t("td",b$,[t("b",null,i(f.sizeStr),1)]),t("td",h$,[t("b",null,i(f.temp),1)]),t("td",_$,[t("b",null,i(f.status),1)]),t("td",x$,[t("b",null,i(f.health),1)]),t("td",w$,[t("button",{class:"btn cbi-button cbi-button-apply",title:e(a)("\u7F16\u8F91"),onClick:w=>v(f)},i(e(a)("\u7F16\u8F91")),9,k$),t("button",{class:"btn cbi-button cbi-button-apply",title:e(a)("\u8BE6\u60C5"),onClick:w=>m(f)},i(e(a)("\u8BE6\u60C5")),9,y$)])]))),256))])])]),t("span",F$,[t("input",{class:"btn cbi-button cbi-button-apply",type:"button",value:e(a)("\u4FDD\u5B58\u5E76\u5E94\u7528"),onClick:p},null,8,E$)])],64))}}),C$={class:"cbi-section cbi-tblsection",id:"cbi-nfs-mount"},D$={class:"table cbi-section-table"},B$={class:"tr cbi-section-table-titles anonymous"},Y$={class:"th cbi-section-table-cell","data-widget":"value"},A$={class:"th cbi-section-table-cell","data-widget":"value"},S$={class:"th cbi-section-table-cell","data-widget":"value"},z$={class:"th cbi-section-table-cell","data-widget":"value"},P$={class:"tr cbi-section-table-row"},T$={class:"td cbi-value-field"},I$={class:"td cbi-value-field"},M$={class:"td cbi-value-field"},L$={class:"td cbi-value-field"},O$=["title","onClick"],N$=["title","onClick"],V$=I({props:{config:{type:Object,required:!0},saveData:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=gt(n.config),d=p=>{switch(p){case"short":return a("\u77ED\u6682\u81EA\u68C0");case"long":return a("\u957F\u65F6\u81EA\u68C0");case"conveyance":return a("\u4F20\u8F93\u65F6\u81EA\u68C0");case"offline":return a("\u79BB\u7EBF\u65F6\u81EA\u68C0");default:return a("\u672A\u77E5")}},c=()=>{xE({config:n.config,disks:[],next:p=>L(this,null,function*(){yield n.saveData({tasks:[...u.tasks,p],global:n.config.global,devices:n.config.devices}),u.tasks=n.config.tasks||[]})})},k=p=>L(this,null,function*(){const m=[...u.tasks];m.splice(p,1),yield n.saveData({tasks:m,global:n.config.global,devices:n.config.devices}),u.tasks=n.config.tasks||[]}),g=p=>{wE({task:p})};return(p,m)=>(r(),s(U,null,[t("button",{class:"btn cbi-button cbi-button-apply",onClick:m[0]||(m[0]=v=>c())},i(e(a)("\u65B0\u5EFA")),1),t("div",C$,[t("table",D$,[t("thead",null,[t("tr",B$,[t("th",Y$,i(e(a)("\u8BBE\u5907")),1),t("th",A$,i(e(a)("\u7C7B\u578B")),1),t("th",S$,i(e(a)("\u8C03\u5EA6")),1),t("th",z$,i(e(a)("\u529F\u80FD")),1)])]),t("tbody",null,[(r(!0),s(U,null,tt(e(u).tasks,(v,b)=>(r(),s("tr",P$,[t("td",T$,[t("b",null,i(v.devicePath),1)]),t("td",I$,[t("b",null,i(d(v.type)),1)]),t("td",M$,[t("b",null,i(v.month)+"/"+i(v.dayPerMonth)+"/"+i(v.hour),1)]),t("td",L$,[t("button",{class:"btn cbi-button cbi-button-apply",title:e(a)("\u8C03\u8BD5"),onClick:y=>g(v)},i(e(a)("\u9884\u89C8")),9,O$),t("button",{class:"cbi-button cbi-button-remove",title:e(a)("\u5220\u9664"),onClick:y=>k(b)},i(e(a)("\u5220\u9664")),9,N$)])]))),256))])])])],64))}}),G$={class:"cbi-section"},j$=["value"],U$=I({setup(o){return L(this,null,function*(){let n,a;const l=E(""),u=()=>L(this,null,function*(){try{const d=yield G.Smart.Log.GET();if(d.data){const{result:c,error:k}=d.data;c&&c.result&&(l.value=c.result),k&&(l.value=k)}}catch(d){l.value=d}});return[n,a]=Do(()=>u()),yield n,a(),(d,c)=>(r(),s("fieldset",G$,[t("textarea",{value:l.value,disabled:""},null,8,j$)]))})}});var q$=N(U$,[["__scopeId","data-v-76197cba"]]);const lo=o=>(ut("data-v-02f10ac5"),o=o(),ct(),o),R$=lo(()=>t("div",{class:"app-container_status-label_iconer"},[t("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","xmlns:v":"https://vecta.io/nano",width:"48",height:"38",viewBox:"0 0 12.7 10.05"},[t("defs",null,[t("filter",{id:"A","color-interpolation-filters":"sRGB"},[t("feColorMatrix",{result:"A",values:"2 -0.5 -0.5 0 0 -0.5 2 -0.5 0 0 -0.5 -0.5 2 0 0 0 0 0 1 0 "}),t("feColorMatrix",{values:"0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"}),t("feColorMatrix",{in:"A",values:"2 -0.5 -0.5 0 0 -0.5 2 -0.5 0 0 -0.5 -0.5 2 0 0 0 0 0 1 0 "})]),t("path",{id:"B",d:"M80.56 75.75h3.91v22.79h-3.91z"})]),t("g",{transform:"translate(0 -286.95)"},[t("rect",{x:".21",y:"287.25",width:"12.33",height:"9.5",ry:".57",fill:"#e6e6e6",stroke:"#e6e6e6","stroke-linejoin":"round","stroke-width":".37","paint-order":"normal"}),t("path",{transform:"matrix(.105 0 0 .0989 -6.0834 280.6)",d:"M73.96 75.66h89.41c2.31 0 4.17 1.86 4.17 4.17v52.65h-21.74v9.41h-8.69v12.59h-36.87v-12.59h-8.69v-9.41H69.79V79.83c0-2.31 1.86-4.17 4.17-4.17z",fill:"#999",filter:"url(#A)",stroke:"#999","stroke-width":"2.5"}),t("g",{transform:"matrix(.1048 0 0 .1048 -6.0999 280.7)",fill:"#fff",filter:"url(#A)",stroke:"#fff"},[t("use",{"xlink:href":"#B"}),t("use",{"xlink:href":"#B",x:"73.04"}),t("use",{"xlink:href":"#B",x:"52.17"}),t("use",{"xlink:href":"#B",x:"41.74"}),t("use",{"xlink:href":"#B",x:"31.3"}),t("use",{"xlink:href":"#B",x:"20.87"}),t("use",{"xlink:href":"#B",x:"10.43"}),t("use",{"xlink:href":"#B",x:"62.61"})]),t("rect",{x:"1.24",y:"294.55",width:"1.6",height:"1.38",ry:".11",fill:"#ccc",stroke:"#ccc","stroke-width":".22","paint-order":"normal"})])])],-1)),W$={class:"app-container_status-label_text"},H$={class:"text_status"},J$={class:"text_info"},Z$=lo(()=>t("div",{class:"app-container_status-label_iconer"},[t("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"48",height:"38",viewBox:"0 0 12.7 10.05","xmlns:v":"https://vecta.io/nano"},[t("defs",null,[t("filter",{id:"A","color-interpolation-filters":"sRGB"},[t("feColorMatrix",{result:"A",values:"2 -0.5 -0.5 0 0 -0.5 2 -0.5 0 0 -0.5 -0.5 2 0 0 0 0 0 1 0 "}),t("feColorMatrix",{values:"0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"}),t("feColorMatrix",{in:"A",values:"2 -0.5 -0.5 0 0 -0.5 2 -0.5 0 0 -0.5 -0.5 2 0 0 0 0 0 1 0 "})]),t("path",{id:"B",d:"M80.56 75.75h3.91v22.79h-3.91z"})]),t("g",{transform:"translate(-.03 -287.07)"},[t("rect",{x:".24",y:"287.36",width:"12.33",height:"9.5",ry:".57",fill:"#e6e6e6",stroke:"#e6e6e6","stroke-linejoin":"round","stroke-width":".37","paint-order":"normal"}),t("path",{transform:"matrix(.105 0 0 .0989 -6.0532 280.72)",d:"M73.96 75.66h89.41c2.31 0 4.17 1.86 4.17 4.17v52.65h-21.74v9.41h-8.69v12.59h-36.87v-12.59h-8.69v-9.41H69.79V79.83c0-2.31 1.86-4.17 4.17-4.17z",fill:"#4d4d4d",filter:"url(#A)",stroke:"#4d4d4d","stroke-width":"2.5"}),t("g",{transform:"matrix(.1048 0 0 .1048 -6.0697 280.81)",fill:"#fff",filter:"url(#A)",stroke:"#fff"},[t("use",{"xlink:href":"#B"}),t("use",{"xlink:href":"#B",x:"73.04"}),t("use",{"xlink:href":"#B",x:"52.17"}),t("use",{"xlink:href":"#B",x:"41.74"}),t("use",{"xlink:href":"#B",x:"31.3"}),t("use",{"xlink:href":"#B",x:"20.87"}),t("use",{"xlink:href":"#B",x:"10.43"}),t("use",{"xlink:href":"#B",x:"62.61"})]),t("rect",{x:"1.27",y:"294.67",width:"1.6",height:"1.38",ry:".11",fill:"#55d400",stroke:"#55d400","stroke-width":".22","paint-order":"normal"})])])],-1)),K$={class:"app-container_status-label_text"},Q$={class:"text_info"},X$=I({props:{item:{type:Object,required:!0},transform:{type:Number,default:0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=ra(),d=E(null),c=g=>{const p=g.target,{left:m,top:v}=p.getBoundingClientRect();u.portitemStyle.show=!0,u.portitemStyle.left=m,u.portitemStyle.top=v,u.portitemStyle.portitem=n.item},k=g=>{u.portitemStyle.show=!1};return(g,p)=>(r(),s("div",{class:"app-container_status-label_bg",style:ht(`transform: translateX(${o.transform}px);`),ref_key:"el",ref:d,onMouseenter:c,onMouseleave:k},[o.item.linkState=="DOWN"?(r(),s(U,{key:0},[R$,t("div",W$,[t("div",H$,i(e(a)("\u5DF2\u65AD\u5F00")),1),t("div",J$,i(o.item.name)+" "+i(o.item.interfaceNames?`(${o.item.interfaceNames.join(",").toLocaleUpperCase()})`:""),1)])],64)):(r(),s(U,{key:1},[Z$,t("div",K$,[t("div",null,i(o.item.linkSpeed),1),t("div",Q$,i(o.item.name)+" "+i(o.item.interfaceNames?`(${o.item.interfaceNames.join(",").toLocaleUpperCase()})`:""),1)])],64))],36))}});var tC=N(X$,[["__scopeId","data-v-02f10ac5"]]);const eC={},aC={t:"1659511092204",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"2332","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"200",height:"200"},oC=t("path",{d:"M514.048 62.464q93.184 0 175.616 35.328t143.872 96.768 96.768 143.872 35.328 175.616q0 94.208-35.328 176.128t-96.768 143.36-143.872 96.768-175.616 35.328q-94.208 0-176.64-35.328t-143.872-96.768-96.768-143.36-35.328-176.128q0-93.184 35.328-175.616t96.768-143.872 143.872-96.768 176.64-35.328zM772.096 576.512q26.624 0 45.056-18.944t18.432-45.568-18.432-45.056-45.056-18.432l-192.512 0 0-192.512q0-26.624-18.944-45.568t-45.568-18.944-45.056 18.944-18.432 45.568l0 192.512-192.512 0q-26.624 0-45.056 18.432t-18.432 45.056 18.432 45.568 45.056 18.944l192.512 0 0 191.488q0 26.624 18.432 45.568t45.056 18.944 45.568-18.944 18.944-45.568l0-191.488 192.512 0z","p-id":"2333"},null,-1),nC=[oC];function iC(o,n){return r(),s("svg",aC,nC)}var Pa=N(eC,[["render",iC]]);const rC=["onSubmit"],sC={class:"actioner-dns_header"},dC={key:0},lC={key:1},uC={class:"actioner-dns_body"},cC={class:"label-item"},pC={class:"label-item_key"},fC={class:"label-item_value"},mC={class:"label-item"},gC={class:"label-item_key"},vC={class:"label-item_value"},bC={value:"dhcp"},hC={key:0,value:"pppoe"},_C={value:"static"},xC={class:"actioner-dns_footer"},wC=["disabled"],kC=I({props:{Close:{type:Function,required:!0},e:{type:String,required:!0},name:{type:String,required:!0},inface:{type:Object,required:!0},next:{type:Function,required:!0}},setup(o){const n=o,{$gettext:a,$ngettext:l}=J(),u=E(!1),d=E(n.inface),c=()=>L(this,null,function*(){$.Loading(a("\u914D\u7F6E\u4E2D...")).Close(),n.next(d.value),k()}),k=()=>{n.Close&&n.Close()};return(g,p)=>(r(),Z(wt,{Close:o.Close,type:1},{default:V(()=>[t("form",{class:"actioner-dns",onSubmit:ft(c,["prevent"])},[t("div",sC,[o.name=="wan"?(r(),s("span",dC,i(o.e=="edit"?e(a)("\u7F16\u8F91WAN"):e(a)("\u6DFB\u52A0WAN")),1)):(r(),s("span",lC,i(o.e=="edit"?e(a)("\u7F16\u8F91LAN"):e(a)("\u6DFB\u52A0LAN")),1))]),t("div",uC,[t("div",cC,[t("div",pC,[t("span",null,i(e(a)("\u540D\u79F0")),1)]),t("div",fC,[t("span",null,i(d.value.name.toLocaleUpperCase()),1)])]),t("div",mC,[t("div",gC,[t("span",null,i(e(a)("\u534F\u8BAE\uFF08\u7F51\u7EDC\u83B7\u53D6\u65B9\u5F0F\uFF09")),1)]),t("div",vC,[O(t("select",{"onUpdate:modelValue":p[0]||(p[0]=m=>d.value.proto=m)},[t("option",bC,i(e(a)("DHCP\u5BA2\u6237\u7AEF")),1),o.name=="wan"?(r(),s("option",hC,"PPPoE")):D("",!0),t("option",_C,i(e(a)("\u9759\u6001\u5730\u5740")),1)],512),[[pt,d.value.proto]])])])]),t("div",xC,[t("button",{class:"cbi-button cbi-button-apply app-btn",disabled:u.value},i(e(a)("\u4FDD\u5B58")),9,wC),t("button",{class:"cbi-button cbi-button-remove app-btn app-back",onClick:k},i(e(a)("\u53D6\u6D88")),1)])],40,rC)]),_:1},8,["Close"]))}});var yC=N(kC,[["__scopeId","data-v-c88486ac"]]);const Ta=o=>{const n=document.createElement("div");document.body.appendChild(n);const a=xt(yC,vt(st({},o),{Close:()=>{l()}}));a.mount(n);const l=()=>{a.unmount(),n.remove()}},Ut=o=>(ut("data-v-3dabb970"),o=o(),ct(),o),FC={id:"page"},EC={name:"content"},$C={class:"container"},CC={class:"table-wrapper"},DC={class:"table-header"},BC={class:"interface-device-flex"},YC=Ut(()=>t("div",{class:"header-cell spacer-col"},null,-1)),AC=Ut(()=>t("div",{class:"header-cell"},null,-1)),SC=Ut(()=>t("div",{class:"header-cell action-col"},null,-1)),zC={class:"table-body"},PC=["name","value","onUpdate:modelValue","onInput"],TC=Ut(()=>t("div",{class:"table-cell spacer-col"},null,-1)),IC={class:"table-cell name-col"},MC={class:"table-cell action-col"},LC=["title","onClick"],OC=["onClick"],NC=Ut(()=>t("div",{class:"table-cell spacer-col"},null,-1)),VC=Ut(()=>t("div",{class:"table-cell name-col"},null,-1)),GC={class:"table-cell action-col"},jC=["name","value","onUpdate:modelValue","onInput"],UC=Ut(()=>t("div",{class:"table-cell spacer-col"},null,-1)),qC={class:"table-cell name-col"},RC={class:"table-cell action-col"},WC=["title","onClick"],HC=["onClick"],JC=Ut(()=>t("div",{class:"table-cell spacer-col"},null,-1)),ZC=Ut(()=>t("div",{class:"table-cell name-col"},null,-1)),KC={class:"table-cell action-col"},QC={class:"cbi-page-actions control-group"},XC=["value","disabled"],tD=I({setup(o){const{$gettext:n,$ngettext:a}=J(),l=gt({devices:[],interfaces:[]}),u=E(!1),d=gt({lan:[],wan:[]});(()=>{G.Network.GetInterfaceConfig.GET().then(y=>{if(y.data){const{result:f}=y.data;if(f){l.devices=f.devices||[],l.interfaces=f.interfaces||[];for(let F=0;F{y=="wan"?d.wan.splice(f,1):y=="lan"&&d.lan.splice(f,1)},g=(y,f)=>{if(f==null){let F=y=="wan"?d.wan.length:d.lan.length;F==6&&y=="wan"&&F++,Ta({e:"add",name:y,inface:{name:y+`${F}`,proto:"dhcp",ipv4Addr:"",ipv6Addr:"",portName:"",deviceNames:[],ports:[],firewallType:y},next:w=>{y=="wan"?d.wan.push(w):d.lan.push(w),$.Message(n("\u8BF7\u5728\u4FDD\u5B58\u4EE5\u540E\u524D\u5F80'\u7F51\u7EDC-\u63A5\u53E3'\u9875\u9762\u914D\u7F6E\u63A5\u53E3\u8BE6\u7EC6\u53C2\u6570"))}})}else Ta({e:"edit",name:y,inface:y=="wan"?d.wan[f]:d.lan[f],next:F=>{y=="wan"?d.wan[f]=F:d.lan[f]=F}})},p=(y,f)=>y?y.indexOf(f):-1,m=(y,f)=>{const w=y.target.value;for(let _=0;_{const w=y.target.value;for(let h=0;hL(this,null,function*(){u.value=!0;const y=[];for(let F=0;F(r(),s("div",FC,[t("h2",EC,i(e(n)("\u7F51\u53E3\u914D\u7F6E")),1),t("div",$C,[t("div",CC,[t("div",DC,[(r(!0),s(U,null,tt(e(l).devices,F=>(r(),s("div",{class:"header-cell device-col",key:F.name},[t("div",BC,[Y(tC,{item:F},null,8,["item"])])]))),128)),YC,AC,SC]),t("div",zC,[(r(!0),s(U,null,tt(e(d).lan,(F,w)=>(r(),s("div",{key:w,class:"table-row"},[(r(!0),s(U,null,tt(e(l).devices,h=>(r(),s("div",{class:"table-cell device-col",key:h.name},[O(t("input",{type:"checkbox",name:h.name,value:h.name,"onUpdate:modelValue":_=>F.deviceNames=_,onInput:_=>m(_,w)},null,40,PC),[[Rt,F.deviceNames]])]))),128)),TC,t("div",IC,[t("b",null,i(F.name),1)]),t("div",MC,[t("button",{class:"btn cbi-button cbi-button-apply",title:e(n)("\u7F16\u8F91"),onClick:h=>g("lan",w)},i(e(n)("\u7F16\u8F91")),9,LC),w!==0?(r(),s("button",{key:0,class:"cbi-button cbi-button-remove",onClick:h=>k("lan",w)},i(e(n)("\u5220\u9664")),9,OC)):D("",!0)])]))),128)),t("div",{class:"table-row add-row",onClick:f[0]||(f[0]=F=>g("lan"))},[(r(!0),s(U,null,tt(e(l).devices,F=>(r(),s("div",{class:"table-cell device-col",key:F.name}))),128)),NC,VC,t("div",GC,[Y(Pa,{class:"icon"})])]),(r(!0),s(U,null,tt(e(d).wan,(F,w)=>(r(),s("div",{key:w,class:"table-row"},[(r(!0),s(U,null,tt(e(l).devices,h=>(r(),s("div",{class:"table-cell device-col",key:h.name},[O(t("input",{type:"checkbox",name:h.name,value:h.name,"onUpdate:modelValue":_=>F.deviceNames=_,onInput:_=>v(_,w)},null,40,jC),[[Rt,F.deviceNames]])]))),128)),UC,t("div",qC,[t("b",null,i(F.name),1)]),t("div",RC,[t("button",{class:"btn cbi-button cbi-button-apply",title:e(n)("\u7F16\u8F91"),onClick:h=>g("wan",w)},i(e(n)("\u7F16\u8F91")),9,WC),w!==0?(r(),s("button",{key:0,class:"cbi-button cbi-button-remove",onClick:h=>k("wan",w)},i(e(n)("\u5220\u9664")),9,HC)):D("",!0)])]))),128)),t("div",{class:"table-row add-row",onClick:f[1]||(f[1]=F=>g("wan"))},[(r(!0),s(U,null,tt(e(l).devices,F=>(r(),s("div",{class:"table-cell device-col",key:F.name}))),128)),JC,ZC,t("div",KC,[Y(Pa,{class:"icon"})])])])])]),t("div",QC,[t("input",{class:"btn cbi-button cbi-button-apply",type:"button",value:e(n)("\u4FDD\u5B58\u5E76\u5E94\u7528"),onClick:b,disabled:u.value},null,8,XC)])]))}});var eD=N(tD,[["__scopeId","data-v-3dabb970"]]);const aD={name:"CustomTable",props:{data:{type:Array,default:()=>[]},columns:{type:Array,required:!0,validator:o=>o.every(n=>n.label&&n.prop)},showSelection:{type:Boolean,default:!1},rowKey:{type:String,default:"id"},showPagination:{type:Boolean,default:!0},pageSize:{type:Number,default:10},currentPage:{type:Number,default:1},emptyText:{type:String,default:"\u6682\u65E0\u6570\u636E"},maxPagerCount:{type:Number,default:5},theadBgColor:{type:String,default:"#F8F8F8"}},emits:["selection-change","update:currentPage","page-change"],setup(o,{emit:n}){const{$gettext:a}=J(),l=E([]),u=E(!1),d=E(!1);E(null);const c=Q(()=>o.data.length),k=Q(()=>Math.ceil(c.value/o.pageSize)),g=Q(()=>{if(!o.showPagination)return o.data;const C=(o.currentPage-1)*o.pageSize,S=C+o.pageSize;return o.data.slice(C,S)}),p=Q(()=>(o.currentPage-1)*o.pageSize+1),m=Q(()=>{const C=o.currentPage*o.pageSize;return C>c.value?c.value:C}),v=Q(()=>({minWidth:`${o.columns.reduce((S,A)=>S+(parseInt(A.width)||50),o.showSelection?50:0)}px`})),b=Q(()=>{const C=[],S=Math.floor(o.maxPagerCount/2);let A=o.currentPage-S,z=o.currentPage+S;A<1&&(A=1,z=Math.min(o.maxPagerCount,k.value)),z>k.value&&(z=k.value,A=Math.max(1,z-o.maxPagerCount+1));for(let B=A;B<=z;B++)C.push(B);return C}),y=C=>({width:C.width?`${Math.max(50,parseInt(C.width))}px`:"auto",minWidth:"50px",textAlign:C.align||"center"}),f=()=>{u.value?l.value=[...g.value.map(C=>C[o.rowKey])]:l.value=[],h()},F=()=>{u.value=l.value.length===g.value.length&&g.value.length>0,h()},w=(C,S)=>{S?l.value.includes(C)||l.value.push(C):l.value=l.value.filter(A=>A!==C),F()},h=()=>{const C=o.data.filter(S=>l.value.includes(S[o.rowKey]));n("selection-change",C)},_=C=>{C<1||C>k.value||(n("update:currentPage",C),n("page-change",C))},x=()=>{d.value=window.innerWidth<=768};return $t(()=>o.data,()=>{l.value=[],u.value=!1},{deep:!0}),Pt(()=>{x(),window.addEventListener("resize",x)}),Nt(()=>{window.removeEventListener("resize",x)}),{selectedRows:l,allSelected:u,isMobile:d,total:c,totalPages:k,paginatedData:g,startItem:p,endItem:m,visiblePages:b,tableStyle:v,gettext:a,getColumnStyle:y,toggleAllSelection:f,handleSelectionChange:F,changePage:_,updateSelection:w}}},oD={class:"custom-table-container"},nD={key:0,class:"selection-header"},iD={key:0,class:"selection-cell"},rD=["checked","onChange"],sD={key:0,class:"empty-row"},dD=["colspan"],lD={key:0,class:"pagination-wrapper"},uD={class:"pagination-info"},cD={class:"pagination-controls"},pD=["disabled"],fD=["onClick"],mD=["disabled"];function gD(o,n,a,l,u,d){return r(),s("div",oD,[t("div",{class:"custom-table-wrapper",style:ht({overflowX:l.isMobile?"auto":"hidden"})},[t("table",{class:lt(["custom-table",{"has-selection":a.showSelection}]),style:ht(l.tableStyle)},[t("thead",{style:ht({background:a.theadBgColor})},[t("tr",null,[a.showSelection?(r(),s("th",nD,[O(t("input",{type:"checkbox","onUpdate:modelValue":n[0]||(n[0]=c=>l.allSelected=c),onChange:n[1]||(n[1]=(...c)=>l.toggleAllSelection&&l.toggleAllSelection(...c))},null,544),[[Rt,l.allSelected]])])):D("",!0),(r(!0),s(U,null,tt(a.columns,(c,k)=>(r(),s("th",{key:k,style:ht(l.getColumnStyle(c))},i(l.gettext(c.label)),5))),128))])],4),t("tbody",null,[(r(!0),s(U,null,tt(l.paginatedData,(c,k)=>(r(),s("tr",{key:k,class:lt({"last-row":k===l.paginatedData.length-1})},[a.showSelection?(r(),s("td",iD,[t("input",{type:"checkbox",checked:l.selectedRows.includes(c[a.rowKey]),onChange:g=>l.updateSelection(c[a.rowKey],g.target.checked)},null,40,rD)])):D("",!0),(r(!0),s(U,null,tt(a.columns,(g,p)=>(r(),s("td",{key:p,style:ht({textAlign:g.align||"center"})},[g.slot?Yt(o.$slots,g.slot,{key:0,row:c,index:k},void 0,!0):(r(),s(U,{key:1},[dt(i(c[g.prop]),1)],64))],4))),128))],2))),128)),l.paginatedData.length===0?(r(),s("tr",sD,[t("td",{colspan:a.showSelection?a.columns.length+1:a.columns.length},i(a.emptyText),9,dD)])):D("",!0)])],6)],4),a.showPagination?(r(),s("div",lD,[t("div",uD,i(l.gettext("\u663E\u793A"))+" "+i(l.startItem)+" "+i(l.gettext("\u5230"))+" "+i(l.endItem)+" "+i(l.gettext("\u6761"))+"\uFF0C"+i(l.gettext("\u5171"))+" "+i(l.total)+" "+i(l.gettext("\u6761")),1),t("div",cD,[t("button",{disabled:a.currentPage===1,onClick:n[2]||(n[2]=c=>l.changePage(a.currentPage-1))},i(l.gettext("\u4E0A\u4E00\u9875")),9,pD),(r(!0),s(U,null,tt(l.visiblePages,c=>(r(),s("button",{key:c,class:lt({active:c===a.currentPage}),onClick:k=>l.changePage(c)},i(c),11,fD))),128)),t("button",{disabled:a.currentPage===l.totalPages,onClick:n[3]||(n[3]=c=>l.changePage(a.currentPage+1))},i(l.gettext("\u4E0B\u4E00\u9875")),9,mD)])])):D("",!0)])}var Ue=N(aD,[["render",gD],["__scopeId","data-v-6c49427e"]]);const uo=o=>(ut("data-v-9eb77922"),o=o(),ct(),o),vD={style:{display:"flex","align-items":"center"}},bD={class:"search_box"},hD={class:"search_container"},_D={class:"search_input_wrapper"},xD=["onKeyup","placeholder"],wD=uo(()=>t("path",{d:"M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 0 0-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"},null,-1)),kD=[wD],yD=uo(()=>t("svg",{class:"refresh_icon",viewBox:"0 0 24 24",width:"26",height:"26"},[t("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"})],-1)),FD=[yD],ED=I({props:{showBatchDelete:{type:Boolean,default:!0},showAdd:{type:Boolean,default:!0}},emits:["refresh","batch-delete","search","handleAdd"],setup(o,{emit:n}){const a=o,{$gettext:l}=J(),u=E(""),d=E(!1),c=E(a.showBatchDelete),k=E(a.showAdd),g=()=>{n("refresh",{data:"\u8FD9\u662F\u5B50\u7EC4\u4EF6\u7684\u6570\u636E"})},p=()=>{n("search",String(u.value))},m=()=>{n("batch-delete",{data:"\u8FD9\u662F\u5B50\u7EC4\u4EF6\u7684\u6570\u636E"})},v=()=>{n("handleAdd")};return(b,y)=>(r(),s("div",vD,[k.value?(r(),s("button",{key:0,class:"del-button add-button--danger",style:{},onClick:v},[t("span",null,i(e(l)("\u6DFB\u52A0")),1)])):D("",!0),c.value?(r(),s("button",{key:1,class:"del-button del-button--danger",onClick:m},[t("span",null,i(e(l)("\u6279\u91CF\u5220\u9664")),1)])):D("",!0),t("div",bD,[t("div",hD,[t("div",_D,[O(t("input",{type:"text",onKeyup:Bo(p,["enter"]),"onUpdate:modelValue":y[0]||(y[0]=f=>u.value=f),class:"search_input",placeholder:e(l)("\u8BF7\u8F93\u5165\u540D\u79F0/IP/MAC\u2026")},null,40,xD),[[at,u.value,void 0,{trim:!0}]]),t("svg",{class:"search_icon",viewBox:"0 0 24 24",width:"24",height:"24",onClick:p},kD)]),t("button",{class:lt(["refresh_button",{rotate:d.value}]),onClick:g},FD,2)])])]))}});var ga=N(ED,[["__scopeId","data-v-9eb77922"]]);const $D={class:"flow"},CD={class:"flow-data"},DD={key:0},BD={key:1},YD=I({props:{ipParam:{type:String}},setup(o){const n=o,{$gettext:a}=J();Xe([Ma,La,Oa,ta,ea,Na]);const l=E(n.ipParam),u=E(),d=w=>{var _;const h=(_=u.value)==null?void 0:_[w];return!h||h.startTime==0?"":v(h.startTime*1e3)+"-"+v(h.endTime*1e3)},c=Q(()=>{var h;let w=[];return(h=u.value)==null||h.forEach(_=>{w.push({value:_.uploadSpeed})}),w}),k=Q(()=>{var h;let w=[];return(h=u.value)==null||h.forEach(_=>{w.push({value:_.downloadSpeed})}),w}),g=Q(()=>{var h;let w="";if(u.value){let _=((h=u.value)==null?void 0:h.length)||0;if(_>0){let x=u.value[_-1];w=b(x.uploadSpeed)+"/s"}}return w}),p=Q(()=>{var h;let w="";if(u.value){let _=((h=u.value)==null?void 0:h.length)||0;if(_>0){let x=u.value[_-1];w=b(x.downloadSpeed)+"/s"}}return w}),m=()=>L(this,null,function*(){var w;try{const h=yield G.DeviceMangement.speedsForOneDevice.POST({ip:l.value});if(h.data&&(w=h.data.result)!=null&&w.items){const _=h.data.result.slots||10;if(h.data.result.items.length<_){let x=h.data.result.items;for(;x.length<_;)x=[{downloadSpeed:0,endTime:0,startTime:0,uploadSpeed:0}].concat(x);u.value=x}else h.data.result.items.length>_?u.value=h.data.result.items.slice(_-h.data.result.items.length):u.value=h.data.result.items}}catch(h){console.log(h)}}),v=Mt.dateForm,b=Mt.byteToSize,y=E();let f=null;const F=w=>{const h=Ha();return f=aa(w,h?"dark":"light"),f.setOption({animation:!1,backgroundColor:h?"#88888822":"#fff",color:["transparent","transparent"],tooltip:{trigger:"axis",formatter:_=>{if(Array.isArray(_)){let x="";_.length>0&&(x=d(_[0].axisValue));for(let C=0;C<_.length;C++)x=`${x}
${_[C].seriesName}: ${b(_[C].value)}/s`;return x.toString()}else{const x=_;return`${d(x.axisValue)}
${x.seriesName}: ${b(x.value)}/s`}}},xAxis:{type:"category",boundaryGap:!1,splitLine:{lineStyle:{color:["#999"]},show:!1},name:"",show:!1,nameGap:0,nameTextStyle:{height:0,lineHeight:0,padding:0}},title:{text:a("\u6D41\u91CF\u7EDF\u8BA1"),textStyle:{fontSize:12,color:h?"#cccccc":"rgba(0, 0, 0, 0.6)"},top:"10px",left:"10px"},yAxis:{type:"value",name:"",minInterval:1e4,interval:1e3,axisLabel:{formatter:function(_,x){return`${b(_)}/s`},color:"#fff",show:!1},nameTextStyle:{color:"#fff"},splitLine:{lineStyle:{color:["#999"]},show:!1}},series:[{name:a("\u4E0B\u8F7D"),data:k.value,type:"line",symbol:"none",showSymbol:!1,symbolSize:0,smooth:!0,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(32, 199, 247, 1)"},{offset:1,color:"rgba(32, 199, 247, 0.1)"}],global:!1}}},{name:a("\u4E0A\u4F20"),data:c.value,type:"line",symbol:"none",showSymbol:!1,symbolSize:0,smooth:!0,areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(85, 58, 254, 1)"},{offset:1,color:"rgba(85, 58, 254, 0.1)"}],global:!1}}}],legend:{padding:0,align:"right",top:"10px",data:[{name:a("\u4E0A\u4F20"),itemStyle:{color:"rgb(85, 58, 254)"}},{name:a("\u4E0B\u8F7D"),itemStyle:{color:"rgb(32, 199, 247)"}}],textStyle:{color:h?"#cccccc":"rgba(0, 0, 0, 0.6)"},lineStyle:{color:"#333"}},grid:{left:"2%",right:"2%",bottom:"0%",top:"10%",containLabel:!0}}),f};return Pt(()=>{setTimeout(()=>L(this,null,function*(){if(y.value){yield m();const w=F(y.value),h=y.value;w.resize({width:h.clientWidth,height:h.clientHeight}),window.addEventListener("resize",()=>{w.resize({width:h.clientWidth,height:h.clientHeight})});const _=()=>L(this,null,function*(){if(f!=null){if(!document.hidden){if(yield m(),f==null)return;w.setOption({series:[{name:a("\u4E0B\u8F7D"),data:k.value,type:"line",areaStyle:{},smooth:!0},{name:a("\u4E0A\u4F20"),data:c.value,type:"line",areaStyle:{},smooth:!0}]})}setTimeout(_,5e3)}});setTimeout(_,5e3)}}),900)}),Nt(()=>{f!=null&&(f.dispose(),f=null)}),(w,h)=>(r(),s("div",$D,[t("div",{ref_key:"el",ref:y,class:"echart"},null,512),t("div",CD,[e(g)?(r(),s("span",DD,i(e(a)("\u4E0A\u4F20:"))+" "+i(e(g)),1)):D("",!0),e(p)?(r(),s("span",BD,i(e(a)("\u4E0B\u8F7D:"))+" "+i(e(p)),1)):D("",!0)])]))}});var AD=N(YD,[["__scopeId","data-v-4a18630f"]]);const $e=o=>(ut("data-v-586a633c"),o=o(),ct(),o),SD={class:"container"},zD={style:{display:"flex","justify-content":"end"}},PD=["onClick"],TD=["onClick"],ID=["onClick"],MD={class:"custom-content"},LD={class:"IP_address"},OD={class:"item_box"},ND={class:"item_left"},VD={key:0,class:"tip"},GD=["onClick"],jD={key:1},UD={class:"item_box"},qD={class:"item_left"},RD={class:"item_box"},WD={class:"item_left"},HD=["placeholder"],JD={class:"item_box"},ZD={class:"item_left"},KD=["placeholder"],QD={class:"item_box"},XD={class:"item_left"},tB=["placeholder"],eB={class:"custom-content"},aB=$e(()=>t("div",{class:"img_box"},[t("img",{src:"https://fwindex.koolcenter.com/cover/x86_64/cover.png",alt:""})],-1)),oB={class:"item_box"},nB={class:"item_left"},iB=["placeholder"],rB={class:"item_box"},sB=$e(()=>t("div",{class:"item_left"},"MAC\uFF1A",-1)),dB=["placeholder"],lB={class:"item_box"},uB={class:"item_left"},cB={key:0,value:null,disabled:""},pB=["value"],fB={class:"item_box"},mB={class:"item_left"},gB={key:0,class:"item_box"},vB=$e(()=>t("div",{class:"item_left"},"IP\uFF1A",-1)),bB=["placeholder"],hB={class:"custom-content"},_B={class:"info-content"},xB=$e(()=>t("div",{class:"img_box"},[t("img",{src:"https://fwindex.koolcenter.com/cover/x86_64/cover.png",alt:""})],-1)),wB={style:{"margin-bottom":"16px",flex:"1"}},kB={class:"item_box"},yB={class:"item_left"},FB={class:"item_box"},EB={class:"item_left"},$B={class:"item_box"},CB=$e(()=>t("div",{class:"item_left"}," MAC\uFF1A",-1)),DB={class:"item_box"},BB={class:"item_left"},YB={class:"item_box"},AB={class:"item_left"},SB={class:"item_box"},zB={class:"item_left"},PB=I({emits:["openGloba"],setup(o,{emit:n}){const{$gettext:a}=J(),l=P=>{H.hostname=P.target.value.replace(/[\u4e00-\u9fa5\s]/g,"")},u=E(null),d=()=>{c(),A(),u.value=setInterval(A,3e3)},c=()=>{u.value&&(clearInterval(u.value),u.value=null)};Pt(()=>L(this,null,function*(){yield C(),p.value.length!==0&&d()})),Nt(()=>{c()});const k=E({});(()=>L(this,null,function*(){try{const{data:P}=yield G.DeviceMangement.globalConfigs.GET();P.result&&(k.value=P.result||{})}catch(P){}}))();const p=E([]),m=E([]),v=E(!1),b=E(!1),y=E(!1),f=Q(()=>!H.dhcpGateway),F=E([{label:"\u4E3B\u673A\u540D\u79F0",prop:"hostname"},{label:"IP\u5730\u5740",prop:"ip"},{label:"MAC\u5730\u5740",prop:"mac"},{label:"\u4E0A\u4F20\u901F\u5EA6",prop:"uploadSpeedStr"},{label:"\u4E0B\u8F7D\u901F\u5EA6",prop:"downloadSpeedStr"},{label:"\u6807\u7B7E",prop:"staticAssigned",slot:"staticAssigned"},{label:"\u64CD\u4F5C",prop:"action",slot:"action"}]),w=P=>({default:a("\u9ED8\u8BA4\u7F51\u5173"),parent:a("\u4E0A\u7EA7\u8DEF\u7531"),myself:a("\u672C\u8BBE\u5907"),bypass:a("\u65C1\u8DEF\u7531"),floatip:a("\u6D6E\u52A8\u7F51\u5173")})[P]||P,h=()=>{v.value=!1,n("openGloba")},_=P=>{var X,et;if(P==!0&&!((et=(X=k.value)==null?void 0:X.speedLimit)!=null&&et.enabled))return $.Warning(a("\u8BF7\u524D\u5F80\u5168\u5C40\u914D\u7F6E\u5F00\u542F\u9650\u901F"))},x=E([]),C=()=>L(this,null,function*(){var X,et,rt;let P=$.Loading(a("\u52A0\u8F7D\u4E2D..."));try{const{data:kt}=yield G.DeviceMangement.listDevices.GET();kt.result&&(p.value=((X=kt.result)==null?void 0:X.devices)||[],m.value=((et=kt.result)==null?void 0:et.devices)||[],x.value=((rt=kt.result)==null?void 0:rt.dhcpTags)||[])}catch(kt){}finally{P.Close()}}),S=(P,X)=>{const et={};return P.forEach(rt=>{rt.ip&&(et[rt.ip]={downloadSpeedStr:rt.downloadSpeedStr||"0 B",uploadSpeedStr:rt.uploadSpeedStr||"0 B"})}),X.map(rt=>rt.ip&&et[rt.ip]?vt(st({},rt),{downloadSpeedStr:et[rt.ip].downloadSpeedStr,uploadSpeedStr:et[rt.ip].uploadSpeedStr}):vt(st({},rt),{downloadSpeedStr:rt.downloadSpeedStr||"0 B",uploadSpeedStr:rt.uploadSpeedStr||"0 B"}))},A=()=>L(this,null,function*(){try{const{data:P}=yield G.DeviceMangement.speedsForDevices.GET();P.result&&(m.value=S(P.result,m.value))}catch(P){}}),z=P=>/^[a-zA-Z\s]+$/.test(P)?P.toUpperCase():P,B=gt({ip:"",mac:"",uploadSpeed:100,downloadSpeed:1e3,networkAccess:!1,enabled:!1,comment:"",action:"add"}),H=gt({hostname:"",assignedIP:"",assignedMac:"",bindIP:!1,tagTitle:"",tagName:"",dhcpGateway:"",action:"add"}),M=E(""),q=E({}),T=(P,X)=>{var et,rt,kt,Tt,Ft,ne,ie,re,se,de,le,ue,ce,pe,fe,me;q.value=P,X===1?(B.ip=P.ip||"",B.mac=P.mac||"",B.uploadSpeed=((et=P==null?void 0:P.speedLimit)==null?void 0:et.uploadSpeed)||100,B.downloadSpeed=((rt=P==null?void 0:P.speedLimit)==null?void 0:rt.downloadSpeed)||1e3,B.networkAccess=!((kt=P==null?void 0:P.speedLimit)!=null&&kt.networkAccess)||!1,B.enabled=((Tt=P==null?void 0:P.speedLimit)==null?void 0:Tt.enabled)||!1,B.comment=((Ft=P==null?void 0:P.speedLimit)==null?void 0:Ft.comment)||"",B.action=((ne=P==null?void 0:P.speedLimit)==null?void 0:ne.action)||"add",v.value=!0):X===2?(H.hostname=((ie=P==null?void 0:P.staticAssigned)==null?void 0:ie.hostname)||"",H.assignedIP=((re=P==null?void 0:P.staticAssigned)==null?void 0:re.assignedIP)||"",H.assignedMac=((se=P==null?void 0:P.staticAssigned)==null?void 0:se.assignedMac)||"",H.bindIP=((de=P==null?void 0:P.staticAssigned)==null?void 0:de.bindIP)||!1,H.tagTitle=((le=P==null?void 0:P.staticAssigned)==null?void 0:le.tagTitle)||"",H.tagName=((ue=P==null?void 0:P.staticAssigned)==null?void 0:ue.tagName)||"",(ce=P==null?void 0:P.staticAssigned)!=null&&ce.dhcpGateway?(x.value.forEach(ge=>{var Et;ge.gateway===((Et=P==null?void 0:P.staticAssigned)==null?void 0:Et.dhcpGateway)&&(j.value=ge)}),H.dhcpGateway=((fe=P==null?void 0:P.staticAssigned)==null?void 0:fe.dhcpGateway)||x.value[0]||""):(j.value=x.value[0]||null,H.dhcpGateway=((pe=j.value)==null?void 0:pe.gateway)||""),H.action=((me=P==null?void 0:P.staticAssigned)==null?void 0:me.action)||"add",b.value=!0):X===3&&(M.value="",M.value=P.ip,y.value=!0)},j=E(x.value[0]||null),R=()=>{var P,X,et;j.value?(H.dhcpGateway=((P=j.value)==null?void 0:P.gateway)||"",H.tagName=((X=j.value)==null?void 0:X.tagName)||"",H.tagTitle=((et=j.value)==null?void 0:et.tagTitle)||""):(H.dhcpGateway="",H.tagName="",H.tagTitle="")},it=(P,X)=>X?{ip:/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,mac:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$|^([0-9A-Fa-f]{4}\.){2}([0-9A-Fa-f]{4})$/}[P].test(X.trim()):!1,ot=P=>/^([1-9]\d*(\.\d+)?|0\.\d*[1-9]\d*)$/.test(P.toString()),bt=()=>L(this,null,function*(){if(!H.hostname)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u540D\u79F0")}`);if(!H.assignedMac)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("MAC")}`);if(!it("mac",H.assignedMac))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684MAC\u5730\u5740")}`);if(!H.dhcpGateway)return $.Warning(`${a("\u8BF7\u9009\u62E9")}${a("\u7F51\u5173")}`);if(H.bindIP){if(!H.assignedIP)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("IP")}`);if(!it("ip",H.assignedIP))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684IP\u5730\u5740")}`)}else H.assignedIP="";let P=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{const{data:X}=yield G.DeviceMangement.staticDeviceConfig.POST(H);JSON.stringify(X)==="{}"?(b.value=!1,yt(),nt(),$.Success("\u4FDD\u5B58\u6210\u529F !")):$.Success((X==null?void 0:X.error)||"\u4FDD\u5B58\u5931\u8D25\uFF01")}catch(X){$.Warning(`${X==null?void 0:X.error} || ${X==null?void 0:X.message}`)}finally{P.Close()}}),Dt=()=>L(this,null,function*(){var X,et;if(!((et=(X=k.value)==null?void 0:X.speedLimit)!=null&&et.enabled))return $.Warning(a("\u8BF7\u524D\u5F80\u5168\u5C40\u914D\u7F6E\u5F00\u542F\u9650\u901F"));if(B.networkAccess)B.downloadSpeed=0,B.uploadSpeed=0;else{if(!B.downloadSpeed)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u4E0B\u8F7D\u901F\u5EA6")}`);if(!ot(B.downloadSpeed))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u4E0B\u8F7D\u901F\u5EA6")}`);if(!B.uploadSpeed)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u4E0A\u4F20\u901F\u5EA6")}`);if(!ot(B.uploadSpeed))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u4E0A\u4F20\u901F\u5EA6")}`);B.downloadSpeed=Number(B.downloadSpeed),B.uploadSpeed=Number(B.uploadSpeed)}let P=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{B.networkAccess=!B.networkAccess;const{data:rt}=yield G.DeviceMangement.speedLimitConfig.POST(B);JSON.stringify(rt)==="{}"?(v.value=!1,yt(),nt(),$.Success("\u4FDD\u5B58\u6210\u529F !")):$.Success((rt==null?void 0:rt.error)||"\u4FDD\u5B58\u5931\u8D25\uFF01")}catch(rt){$.Warning(`${rt==null?void 0:rt.error} || ${rt==null?void 0:rt.message}`)}finally{B.downloadSpeed=1e3,B.uploadSpeed=100,P.Close()}}),yt=()=>{q.value={},j.value=x.value[0]||null,H.hostname="",H.assignedIP="",H.assignedMac="",H.bindIP=!1,H.dhcpGateway="",H.tagName="",H.tagTitle="",H.action="add",B.ip="",B.mac="",B.uploadSpeed=100,B.downloadSpeed=1e3,B.networkAccess=!1,B.comment="",B.action="add"},Vt=E([]),Re=E(null),nt=()=>L(this,null,function*(){p.value=[],yield C()}),K=P=>p.value.filter(X=>{const et=X.ip.includes(P),rt=X.mac.toLowerCase().includes(P.toLowerCase());return et||rt}),At=P=>{P===""&&(m.value=p.value),m.value=K(P)},mt=()=>{if(Vt.value.length===0)return $.Warning(a("\u8BF7\u52FE\u9009\u8981\u5220\u9664\u7684\u6570\u636E")+" !")};return(P,X)=>(r(),s("div",SD,[t("div",zD,[Y(ga,{onRefresh:nt,showAdd:!1,showBatchDelete:!1,ref_key:"searchRef",ref:Re,onBatchDelete:mt,onSearch:At},null,512)]),t("div",null,[Y(Ue,{data:m.value,columns:F.value,showPagination:!1},{action:V(({row:et})=>[t("span",{style:{color:"#553AFE",cursor:"pointer"},onClick:rt=>T(et,2)},i(e(a)("\u9759\u6001\u5206\u914D")),9,PD),t("span",{style:{color:"#553AFE",cursor:"pointer",margin:"0 8px"},onClick:rt=>T(et,1)},i(e(a)("\u9650\u901F\u914D\u7F6E")),9,TD),t("span",{style:{color:"#553AFE",margin:"0 8px",cursor:"pointer"},onClick:rt=>T(et,3)},i(e(a)("\u8BE6\u60C5")),9,ID)]),staticAssigned:V(({row:et})=>{var rt,kt;return[t("span",null,i(w((rt=et==null?void 0:et.staticAssigned)==null?void 0:rt.tagTitle)||w((kt=et==null?void 0:et.staticAssigned)==null?void 0:kt.tagName)||"-"),1)]}),_:1},8,["data","columns"])]),Y(Xt,{modelValue:v.value,"onUpdate:modelValue":X[6]||(X[6]=et=>v.value=et),title:"\u9650\u901F\u914D\u7F6E","show-close":!0,onConfirm:Dt,onCancel:yt},{default:V(()=>{var et,rt,kt,Tt;return[t("div",MD,[t("div",LD,"IP: "+i(q.value.ip),1),t("div",OD,[t("div",ND,i(e(a)("\u5BF9\u8BBE\u5907\u5F00\u542F\u9650\u901F"))+"\uFF1A",1),Y(Ot,{modelValue:e(B).enabled,"onUpdate:modelValue":X[0]||(X[0]=Ft=>e(B).enabled=Ft),disabled:!((rt=(et=k.value)==null?void 0:et.speedLimit)!=null&&rt.enabled),onBeforeChange:_},null,8,["modelValue","disabled"])]),(Tt=(kt=k.value)==null?void 0:kt.speedLimit)!=null&&Tt.enabled?D("",!0):(r(),s("div",VD,[t("a",{href:"",onClick:ft(h,["prevent"])},i(e(a)("\u70B9\u6211\u8DF3\u8F6C\u5168\u5C40\u914D\u7F6E")),9,GD)])),e(B).enabled?(r(),s("div",jD,[t("div",UD,[t("div",qD,i(e(a)("\u7981\u6B62\u8BE5\u8BBE\u5907\u8BBF\u95EE\u7F51\u7EDC"))+"\uFF1A",1),Y(Ot,{modelValue:e(B).networkAccess,"onUpdate:modelValue":X[1]||(X[1]=Ft=>e(B).networkAccess=Ft),onChange:X[2]||(X[2]=()=>{})},null,8,["modelValue"])]),e(B).networkAccess?D("",!0):(r(),s(U,{key:0},[t("div",RD,[t("div",WD,i(e(a)("\u4E0B\u8F7D\u901F\u5EA6"))+"\uFF08Mbit/s\uFF09\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":X[3]||(X[3]=Ft=>e(B).downloadSpeed=Ft),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,HD),[[at,e(B).downloadSpeed,void 0,{trim:!0}]]),dt(" \xA0 "+i(e(a)("\u603B\u5E26\u5BBD")),1)]),t("div",JD,[t("div",ZD,i(e(a)("\u4E0A\u4F20\u901F\u5EA6"))+"\uFF08Mbit/s\uFF09\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":X[4]||(X[4]=Ft=>e(B).uploadSpeed=Ft),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,KD),[[at,e(B).uploadSpeed,void 0,{trim:!0}]]),dt(" \xA0 "+i(e(a)("\u603B\u5E26\u5BBD")),1)]),t("div",QD,[t("div",XD,i(e(a)("\u6CE8\u89E3"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":X[5]||(X[5]=Ft=>e(B).comment=Ft),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,tB),[[at,e(B).comment,void 0,{trim:!0}]])])],64))])):D("",!0)])]}),_:1},8,["modelValue"]),Y(Xt,{modelValue:b.value,"onUpdate:modelValue":X[12]||(X[12]=et=>b.value=et),title:"\u9759\u6001\u5206\u914D",width:"550px","show-close":!0,onConfirm:bt,onCancel:yt},{default:V(()=>[t("div",eB,[aB,t("div",oB,[t("div",nB,i(e(a)("\u540D\u79F0"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text",onInput:l,"onUpdate:modelValue":X[7]||(X[7]=et=>e(H).hostname=et),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,40,iB),[[at,e(H).hostname,void 0,{trim:!0}]])]),t("div",rB,[sB,O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":X[8]||(X[8]=et=>e(H).assignedMac=et),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,dB),[[at,e(H).assignedMac,void 0,{trim:!0}]])]),t("div",lB,[t("div",uB,i(e(a)("\u7F51\u5173"))+"\uFF1A",1),O(t("select",{"onUpdate:modelValue":X[9]||(X[9]=et=>j.value=et),onChange:R},[e(f)?(r(),s("option",cB,i(e(a)("\u8BF7\u9009\u62E9")),1)):D("",!0),(r(!0),s(U,null,tt(x.value,et=>(r(),s("option",{value:et},i(et.gateway)+"("+i(et.tagTitle?w(et.tagTitle):et.tagName?et.tagName:"-")+") ",9,pB))),256))],544),[[pt,j.value]])]),t("div",fB,[t("div",mB,i(e(a)("MAC\u5730\u5740\u4E0EIP\u7ED1\u5B9A"))+"\uFF1A",1),Y(Ot,{modelValue:e(H).bindIP,"onUpdate:modelValue":X[10]||(X[10]=et=>e(H).bindIP=et)},null,8,["modelValue"])]),e(H).bindIP?(r(),s("div",gB,[vB,O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":X[11]||(X[11]=et=>e(H).assignedIP=et),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,bB),[[at,e(H).assignedIP,void 0,{trim:!0}]])])):D("",!0)])]),_:1},8,["modelValue"]),Y(Xt,{modelValue:y.value,"onUpdate:modelValue":X[13]||(X[13]=et=>y.value=et),title:"\u8BE6\u60C5",width:"550px",footerShow:!1,"show-close":!0,onCancel:yt},{default:V(()=>{var et,rt,kt,Tt,Ft;return[t("div",hB,[t("div",_B,[xB,t("div",wB,[t("div",kB,[t("div",yB,i(e(a)("\u540D\u79F0"))+"\uFF1A",1),dt(" "+i(q.value.hostname||"-"),1)]),t("div",FB,[t("div",EB,i(e(a)("IP\u5730\u5740"))+"\uFF1A",1),dt(" "+i(q.value.ip),1)]),t("div",$B,[CB,dt(" "+i(q.value.mac),1)]),t("div",DB,[t("div",BB,i(e(a)("\u7F51\u5173"))+"\uFF1A",1),dt(" "+i(((et=q.value)==null?void 0:et.staticAssigned.dhcpGateway)||"-"),1)]),t("div",YB,[t("div",AB,i(e(a)("\u63A5\u53E3"))+"\uFF1A",1),dt(" "+i(z(q.value.intr)||"-"),1)]),t("div",SB,[t("div",zB,i(e(a)("\u6807\u7B7E"))+"\uFF1A",1),dt(" "+i(((kt=(rt=q.value)==null?void 0:rt.staticAssigned)==null?void 0:kt.tagTitle)||((Ft=(Tt=q.value)==null?void 0:Tt.staticAssigned)==null?void 0:Ft.tagName)||"-"),1)])])]),M.value?(r(),Z(AD,{key:0,ipParam:M.value},null,8,["ipParam"])):D("",!0)])]}),_:1},8,["modelValue"])]))}});var TB=N(PB,[["__scopeId","data-v-586a633c"]]);const va=o=>(ut("data-v-b2212e7c"),o=o(),ct(),o),IB={class:"container"},MB={style:{display:"flex","justify-content":"end"}},LB=["onClick"],OB=["onClick"],NB={class:"custom-content"},VB=va(()=>t("div",{class:"img_box"},[t("img",{src:"https://fwindex.koolcenter.com/cover/x86_64/cover.png",alt:""})],-1)),GB={class:"item_box"},jB={class:"item_left"},UB=["placeholder"],qB={class:"item_box"},RB=va(()=>t("div",{class:"item_left"},"MAC\uFF1A",-1)),WB=["placeholder"],HB={class:"item_box"},JB={class:"item_left"},ZB={key:0,value:null,disabled:""},KB=["value"],QB={class:"item_box"},XB={class:"item_left"},tY={key:0,class:"item_box"},eY=va(()=>t("div",{class:"item_left"},"IP\uFF1A",-1)),aY=["placeholder"],oY=I({setup(o){const{$gettext:n}=J(),a=E([]);(()=>L(this,null,function*(){var T;try{const{data:j}=yield G.DeviceMangement.globalConfigs.GET();j.result&&(a.value=((T=j.result)==null?void 0:T.dhcpTags)||[])}catch(j){}}))();const u=E([]),d=E([]),c=E(!1),k=E([{label:"\u4E3B\u673A\u540D\u79F0",prop:"hostname"},{label:"IP\u5730\u5740",prop:"assignedIP"},{label:"MAC\u5730\u5740",prop:"assignedMac"},{label:"\u9759\u6001IP\u7ED1\u5B9A",prop:"bindIP",slot:"bindIP"},{label:"\u6807\u7B7E",prop:"tagTitle",slot:"tagTitle"},{label:"\u64CD\u4F5C",prop:"action",slot:"action"}]),g=T=>({default:n("\u9ED8\u8BA4\u7F51\u5173"),parent:n("\u4E0A\u7EA7\u8DEF\u7531"),myself:n("\u672C\u8BBE\u5907"),bypass:n("\u65C1\u8DEF\u7531"),floatip:n("\u6D6E\u52A8\u7F51\u5173")})[T]||T,p=T=>{B.hostname=T.target.value.replace(/[\u4e00-\u9fa5\s]/g,"")},m=()=>L(this,null,function*(){let T=$.Loading(n("\u52A0\u8F7D\u4E2D..."));try{const{data:j}=yield G.DeviceMangement.listStaticDevices.GET();j.result&&(u.value=j.result||[],d.value=j.result||[])}catch(j){}finally{T.Close()}});m();const v=E(!0),b=E([]),y=T=>{b.value=T},f=()=>L(this,null,function*(){u.value=[];let T=$.Loading(n("\u52A0\u8F7D\u4E2D..."));yield m(),T.Close()}),F=T=>u.value.filter(j=>{const R=j.assignedIP.includes(T),it=j.assignedMac.toLowerCase().includes(T.toLowerCase());return R||it}),w=T=>{T===""&&(d.value=u.value),d.value=F(T)},h=T=>{var j;B.hostname=(T==null?void 0:T.hostname)||"",B.assignedIP=(T==null?void 0:T.assignedIP)||"",B.assignedMac=(T==null?void 0:T.assignedMac)||"",B.bindIP=(T==null?void 0:T.bindIP)||!1,B.tagTitle=(T==null?void 0:T.tagTitle)||"",B.tagName=(T==null?void 0:T.tagName)||"",T!=null&&T.dhcpGateway?(a.value.forEach(R=>{R.gateway===(T==null?void 0:T.dhcpGateway)&&(A.value=R)}),B.dhcpGateway=(T==null?void 0:T.dhcpGateway)||a.value[0]||""):(A.value=a.value[0]||null,B.dhcpGateway=((j=A.value)==null?void 0:j.gateway)||""),B.action=(T==null?void 0:T.action)||"add",c.value=!0},_=T=>L(this,null,function*(){if(confirm(n("\u6E29\u99A8\u63D0\u793A\uFF1A\u5220\u9664\u8BBE\u5907\u7684\u9759\u6001\u5206\u914D\u53EF\u80FD\u5F71\u54CD\u6B64\u8BBE\u5907\u7684\u8054\u7F51\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01"))){let j={hostname:T.hostname||"",assignedIP:T.assignedIP||"",assignedMac:T.assignedMac||"",tagTitle:T.tagTitle||"",bindIP:T.bindIP||!1,tagName:T.tagName||"",dhcpGateway:T.dhcpGateway||"",action:"delete"};x(j,1)}}),x=(T,j)=>L(this,null,function*(){let R=$.Loading(n("\u5220\u9664\u4E2D..."));try{const{data:it}=yield G.DeviceMangement.staticDeviceConfig.POST(T);return j==1&&(JSON.stringify(it)==="{}"?$.Success("\u5220\u9664\u6210\u529F !"):$.Success((it==null?void 0:it.error)||"\u5220\u9664\u5931\u8D25\uFF01"),m()),it}catch(it){}finally{R.Close()}}),C=()=>L(this,null,function*(){if(b.value.length===0)return $.Warning(n("\u8BF7\u52FE\u9009\u8981\u5220\u9664\u7684\u6570\u636E")+" !");if(confirm(n("\u6E29\u99A8\u63D0\u793A\uFF1A\u5220\u9664\u8BBE\u5907\u7684\u9759\u6001\u5206\u914D\u53EF\u80FD\u5F71\u54CD\u6B64\u8BBE\u5907\u7684\u8054\u7F51\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01")))try{const T=b.value.map(j=>{const R={hostname:j.hostname||"",assignedIP:j.assignedIP||"",assignedMac:j.assignedMac||"",tagTitle:j.tagTitle||"",bindIP:j.bindIP||!1,tagName:j.tagName||"",dhcpGateway:j.dhcpGateway||"",action:"delete"};return x(R)});yield Promise.all(T),$.Success(n("\u6240\u6709\u5220\u9664\u64CD\u4F5C\u5DF2\u5B8C\u6210")),m()}catch(T){}}),S=Q(()=>!B.dhcpGateway),A=E(null),z=()=>{var T,j,R;A.value?(B.dhcpGateway=((T=A.value)==null?void 0:T.gateway)||"",B.tagName=((j=A.value)==null?void 0:j.tagName)||"",B.tagTitle=((R=A.value)==null?void 0:R.tagTitle)||""):(B.dhcpGateway="",B.tagName="",B.tagTitle="")},B=gt({hostname:"",assignedIP:"",assignedMac:"",bindIP:!1,tagTitle:"",tagName:"",dhcpGateway:"",action:"add"}),H=(T,j)=>j?{ip:/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,mac:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$|^([0-9A-Fa-f]{4}\.){2}([0-9A-Fa-f]{4})$/}[T].test(j.trim()):!1,M=()=>L(this,null,function*(){if(!B.assignedMac)return $.Warning(`${n("\u8BF7\u8F93\u5165")}${n("MAC")}`);if(!H("mac",B.assignedMac))return $.Warning(`${n("\u8BF7\u8F93\u5165\u6B63\u786E\u7684MAC\u5730\u5740")}`);if(!B.dhcpGateway)return $.Warning(`${n("\u8BF7\u9009\u62E9")}${n("\u7F51\u5173")}`);if(B.bindIP){if(!B.assignedIP)return $.Warning(`${n("\u8BF7\u8F93\u5165")}${n("IP")}`);if(!H("ip",B.assignedIP))return $.Warning(`${n("\u8BF7\u8F93\u5165\u6B63\u786E\u7684IP\u5730\u5740")}`)}else B.assignedIP="";let T=$.Loading(n("\u4FDD\u5B58\u4E2D..."));try{const{data:j}=yield G.DeviceMangement.staticDeviceConfig.POST(B);JSON.stringify(j)==="{}"?(c.value=!1,q(),f(),$.Success("\u4FDD\u5B58\u6210\u529F !")):$.Success((j==null?void 0:j.error)||"\u4FDD\u5B58\u5931\u8D25\uFF01")}catch(j){$.Warning(`${j==null?void 0:j.error} || ${j==null?void 0:j.message}`)}finally{T.Close()}}),q=()=>{A.value=null,B.hostname="",B.assignedIP="",B.assignedMac="",B.bindIP=!1,B.dhcpGateway="",B.tagName="",B.tagTitle="",B.action="add"};return(T,j)=>(r(),s("div",IB,[t("div",MB,[Y(ga,{onHandleAdd:j[0]||(j[0]=R=>c.value=!0),onRefresh:f,onBatchDelete:C,onSearch:w})]),t("div",null,[Y(Ue,{data:d.value,columns:k.value,rowKey:"assignedMac",showSelection:v.value,showPagination:!1,onSelectionChange:y},{action:V(({row:R})=>[t("button",{class:"del-button edit-button",onClick:it=>h(R)},[t("span",null,i(e(n)("\u7F16\u8F91")),1)],8,LB),t("button",{class:"del-button del-button--danger",onClick:it=>_(R)},[t("span",null,i(e(n)("\u5220\u9664")),1)],8,OB)]),tagTitle:V(({row:R})=>[t("span",null,i(g(R==null?void 0:R.tagTitle)||g(R==null?void 0:R.tagName)||"-"),1)]),bindIP:V(({row:R})=>[t("span",null,i(R!=null&&R.bindIP?e(n)("\u662F"):e(n)("\u5426")),1)]),_:1},8,["data","columns","showSelection"])]),Y(Xt,{modelValue:c.value,"onUpdate:modelValue":j[6]||(j[6]=R=>c.value=R),title:"\u9759\u6001\u5206\u914D",width:"550px","show-close":!0,onConfirm:M,onCancel:q},{default:V(()=>[t("div",NB,[VB,t("div",GB,[t("div",jB,i(e(n)("\u540D\u79F0"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text",onInput:p,"onUpdate:modelValue":j[1]||(j[1]=R=>e(B).hostname=R),placeholder:e(n)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,40,UB),[[at,e(B).hostname,void 0,{trim:!0}]])]),t("div",qB,[RB,O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":j[2]||(j[2]=R=>e(B).assignedMac=R),placeholder:e(n)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,WB),[[at,e(B).assignedMac,void 0,{trim:!0}]])]),t("div",HB,[t("div",JB,i(e(n)("\u7F51\u5173"))+"\uFF1A",1),O(t("select",{"onUpdate:modelValue":j[3]||(j[3]=R=>A.value=R),onChange:z},[e(S)?(r(),s("option",ZB,i(e(n)("\u8BF7\u9009\u62E9")),1)):D("",!0),(r(!0),s(U,null,tt(a.value,R=>(r(),s("option",{value:R},i(R.gateway)+"("+i(R.tagTitle?g(R.tagTitle):R.tagName?R.tagName:"-")+") ",9,KB))),256))],544),[[pt,A.value]])]),t("div",QB,[t("div",XB,i(e(n)("MAC\u5730\u5740\u4E0EIP\u7ED1\u5B9A"))+"\uFF1A",1),Y(Ot,{modelValue:e(B).bindIP,"onUpdate:modelValue":j[4]||(j[4]=R=>e(B).bindIP=R)},null,8,["modelValue"])]),e(B).bindIP?(r(),s("div",tY,[eY,O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":j[5]||(j[5]=R=>e(B).assignedIP=R),placeholder:e(n)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,aY),[[at,e(B).assignedIP,void 0,{trim:!0}]])])):D("",!0)])]),_:1},8,["modelValue"])]))}});var nY=N(oY,[["__scopeId","data-v-b2212e7c"]]);const iY={class:"container"},rY={style:{display:"flex","justify-content":"end"}},sY=["onClick"],dY={class:"custom-content"},lY={class:"item_box"},uY={class:"item_left"},cY={class:"item_box"},pY={class:"item_left"},fY=["placeholder"],mY={class:"item_box"},gY={class:"item_left"},vY=["placeholder"],bY={key:0,class:"tip"},hY=["onClick"],_Y={key:1},xY={class:"item_box"},wY={class:"item_left"},kY={class:"item_box"},yY={class:"item_left"},FY=["placeholder"],EY={class:"item_box"},$Y={class:"item_left"},CY=["placeholder"],DY={class:"item_box"},BY={class:"item_left"},YY=["placeholder"],AY=I({emits:["openGloba"],setup(o,{emit:n}){const{$gettext:a}=J(),l=E({});(()=>L(this,null,function*(){try{const{data:M}=yield G.DeviceMangement.globalConfigs.GET();M.result&&(l.value=M.result||{})}catch(M){}}))();const d=E([]),c=E([]),k=E(!1),g=E([{label:"\u4E3B\u673A\u540D\u79F0",prop:"hostname"},{label:"IP\u5730\u5740",prop:"ip"},{label:"MAC\u5730\u5740",prop:"mac"},{label:"\u7981\u6B62\u7F51\u7EDC\u8BBF\u95EE",prop:"enabled",slot:"enabled"},{label:"\u4E0A\u4F20\u9650\u901F\uFF08Mbit/s\uFF09",prop:"uploadSpeed",slot:"uploadSpeed"},{label:"\u4E0B\u8F7D\u9650\u901F\uFF08Mbit/s\uFF09",prop:"downloadSpeed",slot:"downloadSpeed"},{label:"\u6CE8\u89E3",prop:"comment"},{label:"\u64CD\u4F5C",prop:"action",slot:"action"}]),p=()=>L(this,null,function*(){let M=$.Loading(a("\u52A0\u8F7D\u4E2D..."));try{const{data:q}=yield G.DeviceMangement.listSpeedLimitedDevices.GET();q.result&&(d.value=q.result||[],c.value=q.result||[])}catch(q){}finally{M.Close()}});p();const m=E(!0),v=E([]),b=M=>{v.value=M},y=()=>L(this,null,function*(){d.value=[];let M=$.Loading(a("\u52A0\u8F7D\u4E2D..."));yield p(),M.Close()}),f=M=>d.value.filter(q=>{const T=q.ip.includes(M),j=q.mac.toLowerCase().includes(M.toLowerCase());return T||j}),F=M=>{M===""&&(c.value=d.value),c.value=f(M)},w=M=>L(this,null,function*(){if(confirm(a("\u6E29\u99A8\u63D0\u793A\uFF1A\u5220\u9664\u8BBE\u5907\u7684\u9650\u901F\u914D\u7F6E\u53EF\u80FD\u5F71\u54CD\u6B64\u8BBE\u5907\u7684\u5E26\u5BBD\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01"))){let q={ip:M.ip||"",mac:M.mac||"",uploadSpeed:M.uploadSpeed||0,downloadSpeed:M.downloadSpeed||0,networkAccess:M.networkAccess||!1,comment:"",action:"delete"};h(q,1)}}),h=(M,q)=>L(this,null,function*(){let T=$.Loading(a("\u5220\u9664\u4E2D..."));try{const{data:j}=yield G.DeviceMangement.speedLimitConfig.POST(M);return q==1&&(JSON.stringify(j)==="{}"?$.Success("\u5220\u9664\u6210\u529F !"):$.Success((j==null?void 0:j.error)||"\u5220\u9664\u5931\u8D25\uFF01"),p()),j}catch(j){}finally{T.Close()}}),_=()=>L(this,null,function*(){if(v.value.length===0)return $.Warning(a("\u8BF7\u52FE\u9009\u8981\u5220\u9664\u7684\u6570\u636E")+" !");if(confirm(a("\u6E29\u99A8\u63D0\u793A\uFF1A\u5220\u9664\u8BBE\u5907\u7684\u9650\u901F\u914D\u7F6E\u53EF\u80FD\u5F71\u54CD\u6B64\u8BBE\u5907\u7684\u5E26\u5BBD\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01")))try{const M=v.value.map(q=>{const T={ip:q.ip||"",mac:q.mac||"",uploadSpeed:q.uploadSpeed||0,downloadSpeed:q.downloadSpeed||0,networkAccess:q.networkAccess||!1,comment:"",action:"delete"};return h(T)});yield Promise.all(M),$.Success(a("\u6240\u6709\u5220\u9664\u64CD\u4F5C\u5DF2\u5B8C\u6210")),p()}catch(M){}}),x=()=>{k.value=!1,n("openGloba")},C=M=>{var q,T;if(M==!0&&!((T=(q=l.value)==null?void 0:q.speedLimit)!=null&&T.enabled))return $.Warning(a("\u8BF7\u524D\u5F80\u5168\u5C40\u914D\u7F6E\u5F00\u542F\u9650\u901F"))},S=gt({ip:"",mac:"",uploadSpeed:100,downloadSpeed:1e3,networkAccess:!1,enabled:!1,comment:"",action:"add"}),A=M=>/^([1-9]\d*(\.\d+)?|0\.\d*[1-9]\d*)$/.test(M.toString()),z=(M,q)=>q?{ip:/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,mac:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$|^([0-9A-Fa-f]{4}\.){2}([0-9A-Fa-f]{4})$/}[M].test(q.trim()):!1,B=()=>L(this,null,function*(){var q,T;if(!((T=(q=l.value)==null?void 0:q.speedLimit)!=null&&T.enabled))return $.Warning(a("\u8BF7\u524D\u5F80\u5168\u5C40\u914D\u7F6E\u5F00\u542F\u9650\u901F"));if(!S.ip)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("IP")}`);if(!z("ip",S.ip))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684IP\u5730\u5740")}`);if(!S.mac)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("MAC")}`);if(!z("mac",S.mac))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684MAC\u5730\u5740")}`);if(S.networkAccess)S.downloadSpeed=0,S.uploadSpeed=0;else{if(!S.downloadSpeed)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u4E0B\u8F7D\u901F\u5EA6")}`);if(!A(S.downloadSpeed))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u4E0B\u8F7D\u901F\u5EA6")}`);if(!S.uploadSpeed)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u4E0A\u4F20\u901F\u5EA6")}`);if(!A(S.uploadSpeed))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u4E0A\u4F20\u901F\u5EA6")}`);S.downloadSpeed=Number(S.downloadSpeed),S.uploadSpeed=Number(S.uploadSpeed)}let M=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{S.networkAccess=!S.networkAccess;const{data:j}=yield G.DeviceMangement.speedLimitConfig.POST(S);JSON.stringify(j)==="{}"?(y(),$.Success("\u4FDD\u5B58\u6210\u529F !")):$.Success((j==null?void 0:j.error)||"\u4FDD\u5B58\u5931\u8D25\uFF01"),k.value=!1,H()}catch(j){$.Warning(`${j==null?void 0:j.error} || ${j==null?void 0:j.message}`)}finally{S.downloadSpeed=1e3,S.uploadSpeed=100,M.Close()}}),H=()=>{S.ip="",S.mac="",S.uploadSpeed=100,S.downloadSpeed=1e3,S.networkAccess=!1,S.comment="",S.action="add"};return(M,q)=>(r(),s("div",iY,[t("div",rY,[Y(ga,{onHandleAdd:q[0]||(q[0]=T=>k.value=!0),onRefresh:y,onBatchDelete:_,onSearch:F})]),t("div",null,[Y(Ue,{data:c.value,columns:g.value,rowKey:"mac",showSelection:m.value,showPagination:!1,onSelectionChange:b},{action:V(({row:T})=>[t("button",{class:"del-button del-button--danger",onClick:j=>w(T)},[t("span",null,i(e(a)("\u5220\u9664")),1)],8,sY)]),enabled:V(({row:T})=>[t("span",null,i(T!=null&&T.enabled?e(a)("\u662F"):e(a)("\u5426")),1)]),uploadSpeed:V(({row:T})=>[t("span",null,i((T==null?void 0:T.uploadSpeed)||"-")+" "+i(T!=null&&T.uploadSpeed?"Mbit/s":""),1)]),downloadSpeed:V(({row:T})=>[t("span",null,i((T==null?void 0:T.downloadSpeed)||"-")+" "+i(T!=null&&T.downloadSpeed?"Mbit/s":""),1)]),_:1},8,["data","columns","showSelection"])]),Y(Xt,{modelValue:k.value,"onUpdate:modelValue":q[9]||(q[9]=T=>k.value=T),title:"\u9650\u901F\u914D\u7F6E","show-close":!0,onConfirm:B,onCancel:H},{default:V(()=>{var T,j,R,it;return[t("div",dY,[t("div",lY,[t("div",uY,i(e(a)("\u5BF9\u8BBE\u5907\u5F00\u542F\u9650\u901F"))+"\uFF1A",1),Y(Ot,{modelValue:e(S).enabled,"onUpdate:modelValue":q[1]||(q[1]=ot=>e(S).enabled=ot),disabled:!((j=(T=l.value)==null?void 0:T.speedLimit)!=null&&j.enabled),onBeforeChange:C},null,8,["modelValue","disabled"])]),t("div",cY,[t("div",pY,i(e(a)("IP\u5730\u5740"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":q[2]||(q[2]=ot=>e(S).ip=ot),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,fY),[[at,e(S).ip,void 0,{trim:!0}]])]),t("div",mY,[t("div",gY,i(e(a)("MAC\u5730\u5740"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":q[3]||(q[3]=ot=>e(S).mac=ot),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,vY),[[at,e(S).mac,void 0,{trim:!0}]])]),(it=(R=l.value)==null?void 0:R.speedLimit)!=null&&it.enabled?D("",!0):(r(),s("div",bY,[t("a",{href:"",onClick:ft(x,["prevent"])},i(e(a)("\u70B9\u6211\u8DF3\u8F6C\u5168\u5C40\u914D\u7F6E")),9,hY)])),e(S).enabled?(r(),s("div",_Y,[t("div",xY,[t("div",wY,i(e(a)("\u7981\u6B62\u8BE5\u8BBE\u5907\u8BBF\u95EE\u7F51\u7EDC"))+"\uFF1A",1),Y(Ot,{modelValue:e(S).networkAccess,"onUpdate:modelValue":q[4]||(q[4]=ot=>e(S).networkAccess=ot),onChange:q[5]||(q[5]=()=>{})},null,8,["modelValue"])]),e(S).networkAccess?D("",!0):(r(),s(U,{key:0},[t("div",kY,[t("div",yY,i(e(a)("\u4E0B\u8F7D\u9650\u901F\uFF08Mbit/s\uFF09"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":q[6]||(q[6]=ot=>e(S).downloadSpeed=ot),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,FY),[[at,e(S).downloadSpeed,void 0,{trim:!0}]]),dt(" \xA0 "+i(e(a)("\u603B\u5E26\u5BBD")),1)]),t("div",EY,[t("div",$Y,i(e(a)("\u4E0A\u4F20\u9650\u901F\uFF08Mbit/s\uFF09"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":q[7]||(q[7]=ot=>e(S).uploadSpeed=ot),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,CY),[[at,e(S).uploadSpeed,void 0,{trim:!0}]]),dt(" \xA0 "+i(e(a)("\u603B\u5E26\u5BBD")),1)]),t("div",DY,[t("div",BY,i(e(a)("\u6CE8\u89E3"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":q[8]||(q[8]=ot=>e(S).comment=ot),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,YY),[[at,e(S).comment,void 0,{trim:!0}]])])],64))])):D("",!0)])]}),_:1},8,["modelValue"])]))}});var SY=N(AY,[["__scopeId","data-v-23c28a68"]]);const ba=o=>(ut("data-v-ed203952"),o=o(),ct(),o),zY={key:0,class:"dialog-overlay"},PY={class:"dialog-container"},TY={class:"dialog-title"},IY=ba(()=>t("div",{class:"loading-animation"},[t("div",{class:"spinner"})],-1)),MY={class:"dialog-message"},LY={key:0,class:"dialog-overlay"},OY={class:"dialog-container"},NY={class:"dialog-title"},VY=ba(()=>t("div",{style:{display:"flex","justify-content":"center"}},[t("svg",{t:"1752661662572",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"5921",width:"50",height:"50"},[t("path",{d:"M0 512C0 229.234759 229.234759 0 512 0s512 229.234759 512 512-229.234759 512-512 512S0 794.765241 0 512z m419.310345 194.630621a35.310345 35.310345 0 0 0 49.399172 1.271172l335.518897-311.931586a35.310345 35.310345 0 0 0-48.075035-51.729655l-309.124413 289.544827-145.125518-149.645241a35.310345 35.310345 0 1 0-50.688 49.169655l168.112552 173.320828z",fill:"#553afe","p-id":"5922"})])],-1)),GY={class:"dialog-message"},jY={key:0,class:"dialog-overlay"},UY={class:"dialog-container tag-dialog"},qY={class:"dialog-title"},RY={class:"warning-message"},WY=ba(()=>t("svg",{class:"warning-icon",viewBox:"0 0 24 24"},[t("path",{fill:"currentColor",d:"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16"})],-1)),HY={class:"input-group"},JY={for:"tagTitle"},ZY=["placeholder"],KY={class:"input-group"},QY={for:"tagName"},XY=["disabled","placeholder"],tA={class:"input-group"},eA={for:"gateway"},aA=["placeholder"],oA={class:"button-group"},nA=I({props:{title:{type:String,required:!0}},emits:["confirm","update:modelValue"],setup(o,{expose:n,emit:a}){const{$gettext:l}=J(),u=E("install"),d=E(!1),c=E(!1),k=E(!1),g=E(""),p=E(""),m=E(""),v=()=>{u.value="install",d.value=!0},b=()=>{d.value=!1},y=()=>{d.value=!1,setTimeout(()=>{c.value=!0},300)},f=()=>{c.value=!1},F=E("1"),w=()=>{u.value="tag",F.value="1",p.value="",g.value="",m.value="",k.value=!0},h=()=>{u.value="tag",F.value="2",k.value=!0},_=()=>{k.value=!1},x=A=>{p.value=A.target.value.replace(/[\u4e00-\u9fa5]/g,"")},C=(A,z)=>z?{ip:/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,mac:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$|^([0-9A-Fa-f]{4}\.){2}([0-9A-Fa-f]{4})$/}[A].test(z.trim()):!1,S=()=>{if(!C("ip",m.value.trim()))return $.Warning(`${l("\u8BF7\u8F93\u5165\u6B63\u786E\u7684IP\u5730\u5740")}`);g.value.trim()&&p.value.trim()&&m.value.trim()&&(a("confirm",{tagTitle:g.value.trim(),tagName:p.value.trim(),gateway:m.value.trim(),type:F.value}),_())};return $t(g,A=>{a("update:modelValue",A)}),$t(p,A=>{a("update:modelValue",A)}),$t(m,A=>{a("update:modelValue",A)}),n({tagTitle:g,tagName:p,gateway:m,openInstallDialog:v,showInstallResult:y,openTagDialog:w,closeTagDialog:_,cancelInstall:b,openEditTagDialog:h}),(A,z)=>(r(),s(U,null,[Y(St,{name:"fade"},{default:V(()=>[d.value&&u.value==="install"?(r(),s("div",zY,[t("div",PY,[t("div",TY,i(o.title),1),IY,t("p",MY,i(e(l)("\u6B63\u5728\u5B89\u88C5"))+"...",1),t("button",{class:"dialog-button",onClick:b},i(e(l)("\u5173\u95ED")),1)])])):D("",!0)]),_:1}),Y(St,{name:"fade"},{default:V(()=>[c.value&&u.value==="install"?(r(),s("div",LY,[t("div",OY,[t("div",NY,i(e(l)("\u7ED3\u679C")),1),VY,t("p",GY,i(e(l)("\u5B89\u88C5\u6210\u529F"))+"\uFF01",1),t("button",{class:"dialog-button",onClick:f},i(e(l)("\u786E\u5B9A")),1)])])):D("",!0)]),_:1}),Y(St,{name:"fade"},{default:V(()=>[k.value&&u.value==="tag"?(r(),s("div",jY,[t("div",UY,[t("div",qY,i(F.value==="1"?e(l)("\u6DFB\u52A0\u6807\u7B7E"):e(l)("\u7F16\u8F91\u6807\u7B7E")),1),t("div",RY,[WY,t("span",null,i(e(l)("\u6CE8\u610F\uFF1A\u6DFB\u52A0ID\u65F6\uFF0C\u8BF7\u52FF\u5C06\u201Codhcpd\u201D\u6216\u7F51\u7EDC\u63A5\u53E3\uFF08\u4F8B\u5982\u201Clan\u201D,\u201Cwan\u201D,\u201Cwan6\u201D\u7B49\uFF09\u4F5C\u4E3AID\uFF0C\u6B64\u4E3E\u5C06\u4EA7\u751F\u51B2\u7A81\u3002\u5EFA\u8BAE\u5728ID\u524D\u9762\u52A0\u4E0A\u524D\u7F00\u201Ct_\u201D\u4EE5\u675C\u7EDD\u6B64\u7C7B\u51B2\u7A81\u3002")),1)]),t("div",HY,[t("label",JY,i(e(l)("\u6807\u9898"))+"\uFF1A",1),O(t("input",{id:"tagTitle","onUpdate:modelValue":z[0]||(z[0]=B=>g.value=B),type:"text",placeholder:e(l)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,ZY),[[at,g.value]])]),t("div",KY,[t("label",QY,i(e(l)("ID"))+"\uFF1A",1),O(t("input",{id:"tagName","onUpdate:modelValue":z[1]||(z[1]=B=>p.value=B),onInput:x,disabled:F.value=="2",type:"text",placeholder:e(l)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,40,XY),[[at,p.value]])]),t("div",tA,[t("label",eA,i(e(l)("\u7F51\u5173"))+"\uFF1A",1),O(t("input",{id:"gateway","onUpdate:modelValue":z[2]||(z[2]=B=>m.value=B),type:"text",placeholder:e(l)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,aA),[[at,m.value]])]),t("div",oA,[t("button",{class:"cancel-button",onClick:_},i(e(l)("\u53D6\u6D88")),1),t("button",{class:"confirm-button",onClick:S},i(e(l)("\u786E\u5B9A")),1)])])])):D("",!0)]),_:1})],64))}});var iA=N(nA,[["__scopeId","data-v-ed203952"]]);const co=o=>(ut("data-v-102c75ea"),o=o(),ct(),o),rA={class:"tab-container"},sA={class:"tab-header"},dA=["onClick"],lA={class:"tab-content_g"},uA={key:0,class:"not_installed"},cA=co(()=>t("svg",{t:"1752659436579",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4943",width:"150",height:"150"},[t("path",{d:"M216.896 97.232l-55.792 106.24 704.784 8.928-24.352-75.888-38.496-39.28z",fill:"#FFFFFF","p-id":"4944"}),t("path",{d:"M192.016 255.968h655.968v592H192.016z",fill:"#FFFFFF","p-id":"4945"}),t("path",{d:"M921.904 187.008l-66.72-80.656a69.744 69.744 0 0 0-55.168-26.32h-576a71.296 71.296 0 0 0-55.664 26.416l-66.256 80.56a93.984 93.984 0 0 0-22.08 61.024v600a96.288 96.288 0 0 0 96 96h672a96.288 96.288 0 0 0 96-96v-600a93.984 93.984 0 0 0-22.112-61.024zM512.016 777.856L246.128 512.032h166.144v-132.976h199.392v132.976h166.128zM179.664 179.664l33.152-66.464h598.128l33.2 66.464z",fill:"#909399","p-id":"4946"})],-1)),pA={key:1},fA={class:"item_box"},mA={class:"item_left"},gA={class:"item_box"},vA={class:"item_left"},bA=["placeholder"],hA={class:"item_box"},_A={class:"item_left"},xA=["placeholder"],wA={class:"item_box"},kA={class:"item_left"},yA={key:0,class:"not_installed"},FA=co(()=>t("svg",{t:"1752659436579",class:"icon",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4943",width:"150",height:"150"},[t("path",{d:"M216.896 97.232l-55.792 106.24 704.784 8.928-24.352-75.888-38.496-39.28z",fill:"#FFFFFF","p-id":"4944"}),t("path",{d:"M192.016 255.968h655.968v592H192.016z",fill:"#FFFFFF","p-id":"4945"}),t("path",{d:"M921.904 187.008l-66.72-80.656a69.744 69.744 0 0 0-55.168-26.32h-576a71.296 71.296 0 0 0-55.664 26.416l-66.256 80.56a93.984 93.984 0 0 0-22.08 61.024v600a96.288 96.288 0 0 0 96 96h672a96.288 96.288 0 0 0 96-96v-600a93.984 93.984 0 0 0-22.112-61.024zM512.016 777.856L246.128 512.032h166.144v-132.976h199.392v132.976h166.128zM179.664 179.664l33.152-66.464h598.128l33.2 66.464z",fill:"#909399","p-id":"4946"})],-1)),EA={key:1},$A={class:"item_box"},CA={class:"item_left"},DA={class:"item_box"},BA={class:"item_left"},YA={key:0,value:"",disabled:""},AA=["value"],SA={class:"item_box"},zA={class:"item_left"},PA=["placeholder"],TA={class:"item_box"},IA={class:"item_left"},MA=["placeholder"],LA={class:"item_box"},OA={class:"item_left"},NA={style:{"margin-bottom":"16px"}},VA={class:"item_box"},GA={class:"item_left"},jA={class:"item_box"},UA={class:"item_left"},qA=["value"],RA={class:"item_box"},WA={class:"item_left"},HA={style:{display:"flex","justify-content":"end","margin-bottom":"8px"}},JA=["onClick"],ZA=["onClick"],KA=I({setup(o,{expose:n}){const{$gettext:a}=J(),l=Q(()=>!p.role),u=E([]),d=E([{label:"\u6807\u9898",prop:"tagTitle",slot:"tagTitle"},{label:"ID",prop:"tagName",slot:"tagName"},{label:"\u7F51\u5173",prop:"gateway",slot:"gateway"},{label:"\u64CD\u4F5C",prop:"action",slot:"action"}]),c=E([{name:a("\u4E3B\u8DEF\u7531"),value:"fallback"},{name:a("\u65C1\u8DEF\u7531"),value:"main"}]),k=gt({dhcpEnabled:!1,dhcpGateway:""}),g=gt({enabled:!1,uploadSpeed:"",downloadSpeed:"",installed:!0}),p=gt({enabled:!1,role:"",setIP:"",checkIP:""}),m=E({}),v=()=>L(this,null,function*(){var nt,K,At,mt,P,X,et,rt,kt,Tt,Ft,ne,ie,re,se,de,le,ue,ce,pe,fe,me,ge;try{const{data:Et}=yield G.DeviceMangement.globalConfigs.GET();if(Et.result){if(m.value=Et.result||{},k.dhcpEnabled=((K=(nt=Et.result)==null?void 0:nt.dhcpGlobal)==null?void 0:K.dhcpEnabled)||!1,(mt=(At=Et.result)==null?void 0:At.dhcpGlobal)!=null&&mt.dhcpGateway)k.dhcpGateway=(X=(P=Et.result)==null?void 0:P.dhcpGlobal)==null?void 0:X.dhcpGateway;else{const _a=(rt=(et=Et.result)==null?void 0:et.dhcpGlobal)==null?void 0:rt.gatewaySels.find(mo=>mo.title==="myself");_a?k.dhcpGateway=_a.gateway:k.dhcpGateway=""}u.value=((kt=Et.result)==null?void 0:kt.dhcpTags)||[],g.enabled=((Ft=(Tt=Et.result)==null?void 0:Tt.speedLimit)==null?void 0:Ft.enabled)||!1,g.uploadSpeed=((ie=(ne=Et.result)==null?void 0:ne.speedLimit)==null?void 0:ie.uploadSpeed)||"",g.downloadSpeed=((se=(re=Et.result)==null?void 0:re.speedLimit)==null?void 0:se.downloadSpeed)||"",p.enabled=((le=(de=Et.result)==null?void 0:de.floatGateway)==null?void 0:le.enabled)||!1,p.role=((ce=(ue=Et.result)==null?void 0:ue.floatGateway)==null?void 0:ce.role)||"",p.setIP=((fe=(pe=Et.result)==null?void 0:pe.floatGateway)==null?void 0:fe.setIP)||"",p.checkIP=((ge=(me=Et.result)==null?void 0:me.floatGateway)==null?void 0:ge.checkIP)||""}}catch(Et){}});v();const b=()=>L(this,null,function*(){let nt=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{const{data:K}=yield G.DeviceMangement.dhcpGatewayConfig.POST(k);JSON.stringify(K)==="{}"?($.Success(a("\u4FDD\u5B58\u6210\u529F")),v()):$.Success((K==null?void 0:K.error)||"\u4FDD\u5B58\u5931\u8D25\uFF01")}catch(K){$.Warning(`${K==null?void 0:K.error} || ${K==null?void 0:K.message}`)}finally{nt.Close()}}),y=(nt,K)=>L(this,null,function*(){let At=$.Loading(a("\u68C0\u67E5\u4E2D..."));try{const mt=yield G.App.Check.POST({name:nt});if(At.Close(),mt!=null&&mt.data){const{result:P,error:X}=mt.data;if(X)$.Warning(X);else{if(P)return P.status=="installed";$.Warning(a("\u68C0\u67E5\u63D2\u4EF6\u72B6\u6001\u5931\u8D25"))}}return!1}catch(mt){return At.Close(),$.Warning(mt),!1}}),f=E(!1),F=E(!1),w=()=>L(this,null,function*(){(yield y("app-meta-floatip"))&&(F.value=!0)}),h=()=>L(this,null,function*(){(yield y("app-meta-eqos"))&&(f.value=!0)});w(),h();const _=[{id:"tag",label:a("DHCP")},{id:"gateway",label:a("\u6D6E\u52A8\u7F51\u5173")},{id:"ip",label:a("IP\u9650\u901F")}],x=E("tag");n({activeTab:x});const C=nt=>{x.value=nt},S=E(),A=nt=>({default:a("\u9ED8\u8BA4\u7F51\u5173"),parent:a("\u4E0A\u7EA7\u8DEF\u7531"),myself:a("\u672C\u8BBE\u5907"),bypass:a("\u65C1\u8DEF\u7531"),floatip:a("\u6D6E\u52A8\u7F51\u5173")})[nt]||nt,z=E("app-meta-floatip"),B=Q(()=>z.value==="app-meta-floatip"?a("\u6D6E\u52A8\u7F51\u5173"):a("IP\u9650\u901F")),H=nt=>L(this,null,function*(){if(z.value=nt,S.value.openInstallDialog(),yield zt.installApp(nt))return nt=="app-meta-floatip"?w():h(),S.value.showInstallResult(),!0;S.value.cancelInstall(),$.Error(a("\u5B89\u88C5\u5931\u8D25\u6216\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u8F6F\u4EF6\u6E90\u6216\u7A0D\u5019\u91CD\u8BD5"))}),M=nt=>/^([1-9]\d*(\.\d+)?|0\.\d*[1-9]\d*)$/.test(nt.toString()),q=()=>L(this,null,function*(){if(g.enabled){if(!g.downloadSpeed)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u4E0B\u8F7D\u901F\u5EA6")}`);if(!M(g.downloadSpeed))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u4E0B\u8F7D\u901F\u5EA6")}`);if(!g.uploadSpeed)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u4E0A\u4F20\u901F\u5EA6")}`);if(!M(g.uploadSpeed))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u4E0A\u4F20\u901F\u5EA6")}`);g.downloadSpeed=Number(g.downloadSpeed),g.uploadSpeed=Number(g.uploadSpeed)}else g.downloadSpeed=0,g.uploadSpeed=0;let nt=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{const{data:K}=yield G.DeviceMangement.enableSpeedLimit.POST(g);JSON.stringify(K)==="{}"?($.Success(a("\u4FDD\u5B58\u6210\u529F")),v()):$.Success((K==null?void 0:K.error)||"\u4FDD\u5B58\u5931\u8D25\uFF01")}catch(K){$.Warning(`${K==null?void 0:K.error} || ${K==null?void 0:K.message}`)}finally{nt.Close()}}),T=(nt,K)=>K?{ip:/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\/([0-9]|[1-2][0-9]|3[0-2]))?$/,mac:/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$|^([0-9A-Fa-f]{4}\.){2}([0-9A-Fa-f]{4})$/}[nt].test(K.trim()):!1,j=()=>L(this,null,function*(){if(!p.role)return $.Warning(a("\u8BF7\u9009\u62E9\u8282\u70B9\u89D2\u8272"));if(!p.setIP)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u6D6E\u52A8\u7F51\u5173")}IP`);if(!T("ip",p.setIP))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u6D6E\u52A8\u7F51\u5173IP\u5730\u5740")}`);if(!p.checkIP)return $.Warning(`${a("\u8BF7\u8F93\u5165")}${a("\u65C1\u8DEF\u7531")}IP`);if(!T("ip",p.checkIP))return $.Warning(`${a("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u65C1\u8DEF\u7531IP\u5730\u5740")}`);let nt=$.Loading(a("\u4FDD\u5B58\u4E2D..."));try{const{data:K}=yield G.DeviceMangement.enableFloatGateway.POST(p);JSON.stringify(K)==="{}"?($.Success(a("\u4FDD\u5B58\u6210\u529F")),v()):$.Success((K==null?void 0:K.error)||"\u4FDD\u5B58\u5931\u8D25\uFF01")}catch(K){$.Warning(`${K==null?void 0:K.error} || ${K==null?void 0:K.message}`)}finally{nt.Close()}}),R=nt=>{nt||confirm(a("\u6E29\u99A8\u63D0\u793A\uFF1A\u5173\u95EDDHCP\u53EF\u80FD\u5F71\u54CD\u5C40\u57DF\u7F51\u5185\u8BBE\u5907\u7684IP\u5206\u914D\u548C\u8054\u7F51\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01"))||(k.dhcpEnabled=!0)},it=nt=>{nt||confirm(a("\u6E29\u99A8\u63D0\u793A\uFF1A\u5173\u95ED\u6D6E\u52A8\u7F51\u5173\u53EF\u80FD\u5F71\u54CD\u6B63\u5728\u4F7F\u7528\u6D6E\u52A8\u7F51\u5173\u7684\u8BBE\u5907\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01"))||(p.enabled=!0)},ot=nt=>{nt||confirm(a("\u6E29\u99A8\u63D0\u793A\uFF1A\u5173\u95ED\u9650\u901F\u4F1A\u8BA9\u5DF2\u914D\u7F6E\u9650\u901F\u7684\u8BBE\u5907\u7684\u5E26\u5BBD\u9650\u5236\u5168\u90E8\u5931\u6548\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01"))||(g.enabled=!0)},bt=nt=>L(this,null,function*(){if(confirm(a("\u6E29\u99A8\u63D0\u793A\uFF1A\u5220\u9664\u7F51\u5173\u6807\u7B7E\u53EF\u80FD\u5F71\u54CD\u6B63\u5728\u4F7F\u7528\u6B64\u6807\u7B7E\u7684\u8BBE\u5907\uFF0C\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01"))){let K=$.Loading(a("\u5220\u9664\u4E2D...")),At={action:"delete",tagTitle:nt.tagTitle||"",tagName:nt.tagName||"",dhcpOption:(nt==null?void 0:nt.dhcpOption)||[]};try{const{data:mt}=yield G.DeviceMangement.dhcpTagsConfig.POST(At);JSON.stringify(mt)==="{}"?($.Success(a("\u5220\u9664\u6210\u529F")),v()):$.Success((mt==null?void 0:mt.error)||"\u5220\u9664\u5931\u8D25\uFF01")}catch(mt){$.Warning(`${mt==null?void 0:mt.error} || ${mt==null?void 0:mt.message}`)}finally{K.Close()}}}),Dt=()=>{S.value.openTagDialog()},yt=E([]),Vt=nt=>L(this,null,function*(){yt.value=nt.dhcpOption?nt.dhcpOption:[],S.value.tagTitle=nt.tagTitle||"",S.value.tagName=nt.tagName||"",S.value.gateway=nt.gateway||"",yield na(),S.value.openEditTagDialog()}),Re=nt=>L(this,null,function*(){let K=$.Loading(a("\u4FDD\u5B58\u4E2D..."));const At=[`3,${nt.gateway}`,`6,${nt.gateway}`];let mt={action:nt.type==1?"add":"modify",tagTitle:nt.tagTitle,tagName:nt.tagName,dhcpOption:At};try{const{data:P}=yield G.DeviceMangement.dhcpTagsConfig.POST(mt);JSON.stringify(P)==="{}"?($.Success(a("\u4FDD\u5B58\u6210\u529F")),v()):$.Success((P==null?void 0:P.error)||"\u4FDD\u5B58\u5931\u8D25\uFF01")}catch(P){$.Warning(`${P==null?void 0:P.error} || ${P==null?void 0:P.message}`)}finally{K.Close()}});return(nt,K)=>{var At,mt;return r(),s("div",rA,[t("div",sA,[(r(),s(U,null,tt(_,P=>t("button",{key:P.id,class:lt(["tab-button",{active:x.value===P.id}]),onClick:X=>C(P.id)},i(P.label),11,dA)),64))]),t("div",lA,[O(t("div",null,[f.value?(r(),s("div",pA,[t("div",fA,[t("div",mA,i(e(a)("IP\u9650\u901F"))+"\uFF1A",1),Y(Ot,{modelValue:e(g).enabled,"onUpdate:modelValue":K[1]||(K[1]=P=>e(g).enabled=P),onChange:ot},null,8,["modelValue"])]),e(g).enabled?(r(),s(U,{key:0},[t("div",gA,[t("div",vA,i(e(a)("\u4E0B\u8F7D\u901F\u5EA6"))+"\uFF08Mbit/s\uFF09\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":K[2]||(K[2]=P=>e(g).downloadSpeed=P),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,bA),[[at,e(g).downloadSpeed,void 0,{trim:!0}]]),dt(" \xA0 "+i(e(a)("\u603B\u5E26\u5BBD")),1)]),t("div",hA,[t("div",_A,i(e(a)("\u4E0A\u4F20\u901F\u5EA6"))+"\uFF08Mbit/s\uFF09\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":K[3]||(K[3]=P=>e(g).uploadSpeed=P),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,xA),[[at,e(g).uploadSpeed,void 0,{trim:!0}]]),dt(" \xA0 "+i(e(a)("\u603B\u5E26\u5BBD")),1)])],64)):D("",!0),t("div",wA,[t("div",kA,[t("button",{class:"add-button add-button--danger",onClick:q},i(e(a)("\u4FDD\u5B58")),1)])])])):(r(),s("div",uA,[cA,t("span",null,i(e(a)("\u8F6F\u4EF6\u6682\u672A\u5B89\u88C5")),1),t("div",{class:"not_installed_btn",onClick:K[0]||(K[0]=P=>H("app-meta-eqos"))},i(e(a)("\u7ACB\u5373\u5B89\u88C5")),1)]))],512),[[ee,x.value==="ip"]]),O(t("div",null,[F.value?(r(),s("div",EA,[t("div",$A,[t("div",CA,i(e(a)("\u6D6E\u52A8\u7F51\u5173"))+"\uFF1A",1),Y(Ot,{modelValue:e(p).enabled,"onUpdate:modelValue":K[5]||(K[5]=P=>e(p).enabled=P),onChange:it},null,8,["modelValue"])]),t("div",DA,[t("div",BA,i(e(a)("\u8282\u70B9\u89D2\u8272"))+"\uFF1A",1),O(t("select",{"onUpdate:modelValue":K[6]||(K[6]=P=>e(p).role=P),onChange:K[7]||(K[7]=()=>{})},[e(l)?(r(),s("option",YA,i(e(a)("\u8BF7\u9009\u62E9")),1)):D("",!0),(r(!0),s(U,null,tt(c.value,P=>(r(),s("option",{value:P.value},i(P.name),9,AA))),256))],544),[[pt,e(p).role]])]),t("div",SA,[t("div",zA,i(e(a)("\u6D6E\u52A8\u7F51\u5173"))+"IP\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":K[8]||(K[8]=P=>e(p).setIP=P),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,PA),[[at,e(p).setIP,void 0,{trim:!0}]])]),t("div",TA,[t("div",IA,i(e(a)("\u65C1\u8DEF\u7531IP"))+"\uFF1A",1),O(t("input",{id:"tagName",type:"text","onUpdate:modelValue":K[9]||(K[9]=P=>e(p).checkIP=P),placeholder:e(a)("\u8BF7\u8F93\u5165")+"...",class:"tag-input"},null,8,MA),[[at,e(p).checkIP,void 0,{trim:!0}]])]),t("div",LA,[t("div",OA,[t("button",{class:"add-button add-button--danger",onClick:j},i(e(a)("\u4FDD\u5B58")),1)])])])):(r(),s("div",yA,[FA,t("span",null,i(e(a)("\u8F6F\u4EF6\u6682\u672A\u5B89\u88C5")),1),t("div",{class:"not_installed_btn",onClick:K[4]||(K[4]=P=>H("app-meta-floatip"))},i(e(a)("\u7ACB\u5373\u5B89\u88C5")),1)]))],512),[[ee,x.value==="gateway"]]),O(t("div",null,[t("div",NA,[t("div",VA,[t("div",GA,i(e(a)("\u542F\u7528"))+"DHCP\uFF1A",1),Y(Ot,{modelValue:e(k).dhcpEnabled,"onUpdate:modelValue":K[10]||(K[10]=P=>e(k).dhcpEnabled=P),onChange:R},null,8,["modelValue"])]),t("div",jA,[t("div",UA,"DHCP"+i(e(a)("\u7F51\u5173"))+"\uFF1A",1),O(t("select",{"onUpdate:modelValue":K[11]||(K[11]=P=>e(k).dhcpGateway=P),onChange:K[12]||(K[12]=()=>{})},[(r(!0),s(U,null,tt((mt=(At=m.value)==null?void 0:At.dhcpGlobal)==null?void 0:mt.gatewaySels,P=>(r(),s("option",{value:P.gateway},i(P.gateway)+" ("+i(P.title?A(P.title):"")+") ",9,qA))),256))],544),[[pt,e(k).dhcpGateway]])]),t("div",RA,[t("div",WA,[t("button",{class:"add-button add-button--danger",onClick:b},i(e(a)("\u4FDD\u5B58")),1)])])]),t("div",HA,[t("button",{class:"add-button add-button--danger",onClick:Dt},[t("span",null,i(e(a)("\u6DFB\u52A0")),1)])]),Y(Ue,{data:u.value,columns:d.value,showSelection:!1,showPagination:!1,theadBgColor:"#e8e6f9"},{action:V(({row:P})=>[P.autoCreated?D("",!0):(r(),s("span",{key:0,style:{color:"#553AFE",cursor:"pointer"},onClick:X=>Vt(P)},i(e(a)("\u7F16\u8F91")),9,JA)),P.autoCreated?D("",!0):(r(),s("span",{key:1,style:{color:"#F04134",cursor:"pointer","margin-left":"18px"},onClick:X=>bt(P)},i(e(a)("\u5220\u9664")),9,ZA))]),tagTitle:V(({row:P})=>[t("span",null,i(A(P.tagTitle)),1)]),tagName:V(({row:P})=>[t("span",null,i(P.tagName||"-"),1)]),gateway:V(({row:P})=>[t("span",null,i(P.gateway||"-"),1)]),_:1},8,["data","columns"])],512),[[ee,x.value==="tag"]])]),Y(iA,{ref_key:"tagDialogRef",ref:S,title:e(B),onConfirm:Re},null,8,["title"])])}}});var QA=N(KA,[["__scopeId","data-v-102c75ea"]]);const po=o=>(ut("data-v-39804772"),o=o(),ct(),o),XA={id:"page"},tS={style:{"text-align":"left",display:"flex","align-items":"center","margin-bottom":"20px","padding-top":"4px"}},eS=po(()=>t("svg",{width:"20",height:"20",viewBox:"0 0 100 100",xmlns:"http://www.w3.org/2000/svg"},[t("path",{d:"M20 30 L50 50 L20 70",stroke:"#d6dbf8","stroke-width":"8","stroke-linecap":"round",fill:"none"})],-1)),aS={style:{"text-decoration":"none",color:"var(--breadcrumbs-tit-color1)","line-height":"1.5em"}},oS={class:"device_container",style:{color:"black"}},nS={class:"tab-container"},iS={class:"tabs_box_g"},rS=["onClick"],sS={class:"tab-content_g"},dS={key:0,class:"content-item"},lS={key:1,class:"content-item"},uS={key:2,class:"content-item"},cS={key:3,class:"content-item"},pS=po(()=>t("div",{style:{height:"30px"}},null,-1)),fS=I({setup(o){const{$gettext:n}=J(),a=E(["\u8BBE\u5907\u5217\u8868","\u9759\u6001\u5206\u914D\u5217\u8868","\u9650\u901F\u8BBE\u5907\u5217\u8868","\u5168\u5C40\u8BBE\u7F6E"]),l=E(0),u=E(null),d=()=>L(this,null,function*(){l.value=3,yield na(),u.value&&(u.value.activeTab="ip")});return(c,k)=>{const g=_t("router-link");return r(),s(U,null,[t("div",XA,[t("div",tS,[Y(g,{to:"/",style:{"text-decoration":"none",color:"var(--breadcrumbs-tit-color)","line-height":"1.5em","margin-right":"4px"}},{default:V(()=>[dt(i(e(n)("\u9996\u9875")),1)]),_:1}),eS,t("a",aS,i(e(n)("\u8BBE\u5907\u7BA1\u7406")),1)])]),t("div",oS,[t("div",nS,[t("div",iS,[(r(!0),s(U,null,tt(a.value,(p,m)=>(r(),s("button",{key:m,onClick:v=>l.value=m,class:lt({active:l.value===m})},i(e(n)(p)),11,rS))),128))]),t("div",sS,[l.value===0?(r(),s("div",dS,[Y(TB,{onOpenGloba:d})])):D("",!0),l.value===1?(r(),s("div",lS,[Y(nY)])):D("",!0),l.value===2?(r(),s("div",uS,[Y(SY,{onOpenGloba:d})])):D("",!0),l.value===3?(r(),s("div",cS,[Y(QA,{ref_key:"configureRef",ref:u},null,512)])):D("",!0)]),pS])])],64)}}});var mS=N(fS,[["__scopeId","data-v-39804772"]]);const gS={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},vS=["fill"],bS=["fill"],hS=I({props:{color:{type:String,default:"#ffa847"}},setup(o){return(n,a)=>(r(),s("svg",gS,[t("path",{d:"M640.825806 900.129032c-18.167742 6.606452-37.987097 9.909677-57.806451 13.212903-26.425806 4.954839-44.593548 29.729032-41.290323 56.154839 4.954839 26.425806 29.729032 44.593548 56.154839 41.290323 24.774194-3.303226 47.896774-9.909677 71.019355-16.516129 26.425806-8.258065 41.290323-36.335484 33.032258-62.761291s-34.683871-39.63871-61.109678-31.380645zM974.451613 576.412903c-26.425806-6.606452-52.851613 9.909677-61.109678 36.335484-4.954839 19.819355-11.56129 37.987097-18.167741 56.154839-9.909677 24.774194 1.651613 54.503226 26.425806 64.412903 24.774194 9.909677 54.503226-1.651613 64.412903-26.425806 9.909677-23.122581 16.516129-46.245161 23.122581-69.367742 6.606452-28.077419-8.258065-54.503226-34.683871-61.109678zM814.245161 791.122581c-13.212903 14.864516-28.077419 28.077419-42.941935 39.638709-21.470968 16.516129-24.774194 47.896774-8.258065 69.367742 16.516129 21.470968 47.896774 24.774194 69.367742 8.258065 19.819355-14.864516 37.987097-31.380645 54.503226-49.548387 18.167742-19.819355 18.167742-51.2-1.651613-69.367742s-51.2-18.167742-71.019355 1.651613zM526.864516 341.883871c-28.077419 0-49.548387 21.470968-49.548387 49.548387v122.219355c0 14.864516 6.606452 28.077419 18.167742 37.987097l117.264516 97.445161c21.470968 18.167742 52.851613 14.864516 69.367742-6.606452s14.864516-52.851613-6.606452-69.367742l-99.096774-82.580645v-99.096774c0-26.425806-21.470968-49.548387-49.548387-49.548387z",fill:o.color,"p-id":"4722"},null,8,vS),t("path",{d:"M910.03871 327.019355c28.077419 1.651613 51.2-18.167742 52.851613-46.245161l9.909677-142.03871c1.651613-28.077419-18.167742-51.2-46.245161-52.851613-28.077419-1.651613-51.2 18.167742-52.851613 46.245161v16.516129c-1.651613-1.651613-3.303226-3.303226-4.954839-3.303226-1.651613-3.303226-4.954839-4.954839-6.606452-8.258064-18.167742-16.516129-36.335484-31.380645-57.806451-46.245161-1.651613-1.651613-4.954839-3.303226-6.606452-3.303226-46.245161-31.380645-99.096774-54.503226-155.251613-69.367742-1.651613 0-3.303226-1.651613-4.954838-1.651613-8.258065-1.651613-14.864516-3.303226-23.122581-4.954839h-1.651613c-6.606452-1.651613-13.212903-3.303226-21.470968-3.303225-4.954839-1.651613-11.56129-1.651613-16.516129-1.651613-3.303226 0-6.606452-1.651613-9.909677-1.651613h-1.651613C307.2-19.819355 69.367742 153.6 18.167742 412.903226c-52.851613 275.819355 125.522581 541.729032 401.341935 594.580645 26.425806 4.954839 52.851613-11.56129 57.806452-39.63871 4.954839-26.425806-11.56129-52.851613-39.63871-57.806451h-1.651613c-19.819355-3.303226-37.987097-9.909677-56.154838-16.516129h-3.303226c-44.593548-16.516129-84.232258-39.63871-118.916129-67.716129l-4.954839-4.954839c-14.864516-13.212903-29.729032-26.425806-41.290322-41.290323-1.651613-1.651613-3.303226-3.303226-6.606452-4.954838-28.077419-33.032258-51.2-71.019355-67.716129-112.309678 0-3.303226-1.651613-6.606452-1.651613-8.258064-6.606452-18.167742-13.212903-37.987097-16.516129-56.154839 0-3.303226-1.651613-6.606452-3.303226-9.909677-8.258065-41.290323-9.909677-82.580645-4.954838-125.522581 1.651613-3.303226 1.651613-6.606452 3.303225-9.909678 3.303226-19.819355 6.606452-37.987097 13.212904-57.806451 1.651613-3.303226 1.651613-6.606452 1.651612-9.909678 13.212903-41.290323 33.032258-80.929032 57.806452-115.612903 3.303226-1.651613 4.954839-4.954839 6.606452-6.606451 11.56129-14.864516 24.774194-29.729032 39.638709-44.593549 1.651613-1.651613 3.303226-4.954839 4.954839-6.606451 33.032258-31.380645 71.019355-56.154839 112.309677-74.322581 1.651613 0 3.303226 0 3.303226-1.651613 18.167742-8.258065 37.987097-14.864516 56.154839-19.819355 1.651613 0 1.651613-1.651613 3.303226-1.651613 47.896774-13.212903 100.748387-16.516129 153.6-9.909677 3.303226 0 6.606452 1.651613 9.909677 1.651613 6.606452 1.651613 11.56129 1.651613 18.167742 3.303226 80.929032 16.516129 153.6 54.503226 209.754839 112.309677l-29.729032-1.651613c-28.077419-1.651613-51.2 18.167742-52.851613 46.245161-1.651613 28.077419 18.167742 51.2 46.245161 52.851613l142.03871 8.258065z",fill:o.color,"p-id":"4723"},null,8,bS)]))}}),_S={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},xS=["fill"],wS=I({props:{color:{type:String,default:"#9810f9"}},setup(o){return(n,a)=>(r(),s("svg",_S,[t("path",{d:"M914.285714 548.571429a36.571429 36.571429 0 0 1 36.571429 36.571428v219.428572a146.285714 146.285714 0 0 1-146.285714 146.285714H219.428571a146.285714 146.285714 0 0 1-146.285714-146.285714v-219.428572a36.571429 36.571429 0 1 1 73.142857 0v219.428572a73.142857 73.142857 0 0 0 67.657143 72.96L219.428571 877.714286h585.142858a73.142857 73.142857 0 0 0 72.96-67.657143L877.714286 804.571429v-219.428572a36.571429 36.571429 0 0 1 36.571428-36.571428zM537.307429 83.858286l258.596571 258.596571a36.571429 36.571429 0 1 1-51.712 51.712L548.571429 198.509714 548.571429 634.733714a36.571429 36.571429 0 1 1-73.142858 0V197.485714L278.674286 394.166857a36.571429 36.571429 0 1 1-51.712-51.712l258.596571-258.596571a36.571429 36.571429 0 0 1 51.712 0z",fill:o.color,"p-id":"9077"},null,8,xS)]))}}),Ht=o=>(ut("data-v-cbc39b94"),o=o(),ct(),o),kS={class:"item_container"},yS={class:"item"},FS={class:"item_title"},ES={class:"tip"},$S={class:"item"},CS={class:"item_title"},DS={class:"select_box"},BS={value:null,disabled:"",selected:""},YS=["value"],AS={class:"start_btn"},SS={key:0,class:"progress"},zS=Ht(()=>t("span",null,"25%",-1)),PS={class:"item"},TS={class:"item_title"},IS={class:"log_info"},MS={class:"item"},LS={class:"item_title"},OS={class:"result_box"},NS={class:"result"},VS={class:"result_item"},GS=Ht(()=>t("div",{class:"speed_value"},"105.5",-1)),jS=Ht(()=>t("span",{class:"unit"},"Mbps",-1)),US=Ht(()=>t("span",{class:"status status_bg1"},"\u4F18\u79C0",-1)),qS={class:"speed_title"},RS={class:"result_item"},WS=Ht(()=>t("div",{class:"speed_value"},"105.5",-1)),HS=Ht(()=>t("span",{class:"unit"},"Mbps",-1)),JS=Ht(()=>t("span",{class:"status status_bg2"},"\u826F\u597D",-1)),ZS={class:"speed_title"},KS=jt('

18 ms
\u826F\u597D\u5EF6\u8FDF
18 ms
\u5EF6\u8FDF
',2),QS=Ht(()=>t("div",{class:"custom-content"},[t("p",null,"\u4EE5\u4E0B\u662F\u68C0\u6D4B\u5230\u7684\u5185\u7F51\u5730\u5740\uFF0C\u8BF7\u70B9\u51FB\u8BBF\u95EE\u8FDB\u884C\u6D4B\u901F"),t("div",{class:"address_box"},[t("span",null,"http://192.168.1.1"),t("div",null,"\u8BBF\u95EE")]),t("div",{class:"address_box"},[t("span",null,"http://192.168.1.1"),t("div",null,"\u8BBF\u95EE")]),t("div",{class:"address_box"},[t("span",null,"http://192.168.1.1"),t("div",null,"\u8BBF\u95EE")]),t("div",{class:"address_box"},[t("span",null,"http://192.168.1.1"),t("div",null,"\u8BBF\u95EE")]),t("div",{class:"address_box"},[t("span",null,"http://192.168.1.1"),t("div",null,"\u8BBF\u95EE")])],-1)),XS=I({setup(o){const{$gettext:n}=J(),a=E(!1),l=E([{title:"SpeedTest.Net",describe:"\u5168\u7403\u6807\u51C6\u7F51\u901F\u6D4B\u8BD5\u670D\u52A1",value:"SpeedTest"},{title:"CDN\u8282\u70B9\u6D4B\u8BD5",describe:"\u6D4B\u8BD5\u5230\u4E3B\u8981CDN\u8282\u70B9\u7684\u8FDE\u63A5\u901F\u5EA6",value:"CDN"},{title:"UST\u9AD8\u6821\u8282\u70B9",describe:"\u4E2D\u79D1\u5927\u6559\u80B2\u7F51\u8282\u70B9\u6D4B\u8BD5",value:"UST"},{title:"NAT\u7C7B\u578B\u6D4B\u901F",describe:"\u68C0\u6D4B\u7F51\u7EDCNAT\u7C7B\u578B\u548C\u8FDE\u901A\u6027",value:"NAT"}]),u=E(null),d=E(!1),c=()=>{!u.value||(d.value=!0)};return(k,g)=>(r(),s(U,null,[t("div",kS,[t("div",yS,[t("div",FS,[Y(ze,{color:"#155dfc",class:"icon"}),t("span",null,i(e(n)("\u5185\u7F51\u6D4B\u901F")),1)]),t("p",null,i(e(n)("\u68C0\u6D4B\u672C\u5730\u7F51\u7EDC\u73AF\u5883\uFF0C\u83B7\u53D6\u5185\u7F51\u8BBF\u95EE\u5730\u5740")),1),t("div",{class:"wifi_btn",onClick:g[0]||(g[0]=p=>a.value=!0)},[t("div",null,[Y(ze,{color:"#ffffff",class:"icon1"}),t("span",null,i(e(n)("\u5F00\u59CB\u5185\u7F51\u6D4B\u901F")),1)])]),t("p",ES,i(e(n)("\u70B9\u51FB\u6309\u94AE\u83B7\u53D6\u5185\u7F51\u6D4B\u901F\u5730\u5740\uFF0C\u901A\u8FC7\u8BBF\u95EE\u8FD9\u4E9B\u5730\u5740\u6765\u6D4B\u8BD5\u5185\u7F51\u8FDE\u63A5\u901F\u5EA6")),1)]),t("div",$S,[t("div",CS,[Y(xe,{color:"#2bb55e",class:"icon"}),t("span",null,i(e(n)("\u5185\u7F51\u6D4B\u901F")),1)]),t("p",null,i(e(n)("\u9009\u62E9\u6D4B\u901F\u8282\u70B9\uFF0C\u8FDB\u884C\u7F51\u7EDC\u901F\u5EA6\u548C\u8FDE\u63A5\u8D28\u91CF\u6D4B\u8BD5")),1),t("div",DS,[t("div",null,i(e(n)("\u9009\u62E9\u6D4B\u901F\u8282\u70B9")),1),O(t("select",{"onUpdate:modelValue":g[1]||(g[1]=p=>u.value=p),id:"node",required:"",class:lt({"is-placeholder":!u.value})},[t("option",BS,i(e(n)("\u8BF7\u9009\u62E9\u6D4B\u901F\u8282\u70B9")),1),(r(!0),s(U,null,tt(l.value,p=>(r(),s("option",{value:p},i(p.title)+" - "+i(p.describe),9,YS))),256))],2),[[pt,u.value]])]),t("div",{class:lt(["wifi_btn m-20",{"is-bg":!u.value||d.value}]),onClick:c},[t("div",AS,[d.value?(r(),s("span",{key:0,class:lt(["icon3-wrap",{"is-rotating":d.value}])},[Y(hS,{color:"#ffffff",class:"icon3"})],2)):(r(),Z(xe,{key:1,color:"#ffffff",class:"icon2"})),t("span",null,i(e(n)("\u5F00\u59CB\u6D4B\u901F")),1)])],2),d.value?(r(),s("div",SS,[t("p",null,[dt(i(e(n)("\u6D4B\u901F\u8FDB\u5EA6"))+" ",1),zS]),Y(no,{percentage:25,showPercentage:!1,height:"10px",borderRadius:"10px",color:"#030213",backgroundColor:"#cdccd0"})])):D("",!0)]),t("div",PS,[t("div",TS,[Y(Xa,{color:"#ff6900",class:"icon2"}),t("span",null,i(e(n)("\u6D4B\u901F\u65E5\u5FD7")),1)]),t("p",null,i(e(n)("\u5B9E\u65F6\u6D4B\u901F\u8FC7\u7A0B\u8BB0\u5F55")),1),t("div",IS,[(r(),s(U,null,tt(20,p=>t("p",null,"[17:00:20] \u6B63\u5728\u8FDE\u63A5\u5230\u6D4B\u8BD5\u670D\u52A1\u5668...")),64))])]),t("div",MS,[t("div",LS,[Y(ro,{color:"#9865ff",class:"icon2"}),t("span",null,i(e(n)("\u6D4B\u901F\u7ED3\u679C")),1)]),t("p",null,i(e(n)("\u6D4B\u901F\u8282\u70B9"))+"\uFF1ACDN\u8282\u70B9 (\u5317\u4EAC)",1),t("div",OS,[t("div",NS,[t("div",VS,[Y(Kt,{color:"#155dfc",class:"icon_speed"}),GS,jS,US,t("div",qS,i(e(n)("\u4E0B\u8F7D\u901F\u5EA6")),1)]),t("div",RS,[Y(wS,{color:"#00a63e",class:"icon_speed1"}),WS,HS,JS,t("div",ZS,i(e(n)("\u4E0A\u4F20\u901F\u5EA6")),1)])]),KS])])]),Y(Xt,{modelValue:a.value,"onUpdate:modelValue":g[2]||(g[2]=p=>a.value=p),title:"\u5185\u7F51\u8BBF\u95EE\u5730\u5740",width:"550px",footerShow:!1,"show-close":!0},{default:V(()=>[QS]),_:1},8,["modelValue"])],64))}});var tz=N(XS,[["__scopeId","data-v-cbc39b94"]]);const ez={width:"200",height:"200",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",fill:"none"},az=["fill"],oz=I({props:{color:{type:String,default:"#155dfc"}},setup(o){return(n,a)=>(r(),s("svg",ez,[t("path",{d:"M0 855.04a64.896 64.896 0 0 1 129.792 0v55.637333a64.896 64.896 0 0 1-129.792 0V855.04zM213.248 669.610667a64.896 64.896 0 0 1 129.792 0v241.066666a64.896 64.896 0 0 1-129.792 0v-241.066666zM426.496 484.181333a64.896 64.896 0 0 1 129.792 0v426.496a64.896 64.896 0 1 1-129.792 0v-426.496zM639.701333 298.752a64.896 64.896 0 1 1 129.792 0v611.925333a64.896 64.896 0 0 1-129.792 0V298.752zM852.949333 113.322667a64.896 64.896 0 0 1 129.792 0v797.354666a64.896 64.896 0 0 1-129.792 0V113.322667z",fill:o.color,"p-id":"11967"},null,8,az)]))}}),ha=o=>(ut("data-v-164df064"),o=o(),ct(),o),nz={id:"page"},iz={style:{"text-align":"left",display:"flex","align-items":"center","margin-bottom":"20px","padding-top":"4px"}},rz=ha(()=>t("svg",{width:"20",height:"20",viewBox:"0 0 100 100",xmlns:"http://www.w3.org/2000/svg"},[t("path",{d:"M20 30 L50 50 L20 70",stroke:"#d6dbf8","stroke-width":"8","stroke-linecap":"round",fill:"none"})],-1)),sz={style:{"text-decoration":"none",color:"var(--breadcrumbs-tit-color1)","line-height":"1.5em"}},dz={class:"container",style:{color:"black"}},lz={class:"title"},uz=ha(()=>t("span",null,"\u7F51\u7EDC\u6D4B\u901F\u5DE5\u5177",-1)),cz=ha(()=>t("p",null,"\u4E13\u4E1A\u7684\u7F51\u7EDC\u8FDE\u63A5\u901F\u5EA6\u68C0\u6D4B\u5DE5\u5177\uFF0C\u652F\u6301\u5185\u7F51\u548C\u5916\u7F51\u6D4B\u901F",-1)),pz=I({setup(o){const{$gettext:n}=J();return(a,l)=>{const u=_t("router-link");return r(),s(U,null,[t("div",nz,[t("div",iz,[Y(u,{to:"/",style:{"text-decoration":"none",color:"var(--breadcrumbs-tit-color)","line-height":"1.5em","margin-right":"4px"}},{default:V(()=>[dt(i(e(n)("\u9996\u9875")),1)]),_:1}),rz,t("a",sz,i(e(n)("\u7F51\u7EDC\u6D4B\u901F")),1)])]),t("div",dz,[t("div",lz,[t("div",null,[Y(oz,{class:"icon"}),uz]),cz]),Y(tz)])],64)}}});var fz=N(pz,[["__scopeId","data-v-164df064"]]);const Ce=o=>(ut("data-v-2b19eb04"),o=o(),ct(),o),mz=["onSubmit"],gz={class:"form-item"},vz={class:"label-name"},bz={class:"label-value switch_label"},hz={class:"label-flex pc-radio"},_z=["disabled"],xz=["disabled"],wz=Ce(()=>t("div",{class:"switch-button"},null,-1)),kz=[wz],yz={key:0,class:"form-item"},Fz={class:"label-name"},Ez={class:"label-value"},$z=["disabled"],Cz={value:100},Dz={value:70},Bz={value:50},Yz={value:30},Az={key:0,class:"select-arrow"},Sz={class:"form-item"},zz={class:"label-name"},Pz={class:"label-value"},Tz=["disabled","placeholder"],Iz={class:"form-item"},Mz={class:"label-name"},Lz={class:"label-value"},Oz=["disabled"],Nz=["value"],Vz={key:0,class:"select-arrow"},Gz={class:"form-item"},jz={class:"label-name"},Uz={class:"label-value"},qz=["type","disabled","placeholder"],Rz={key:0,class:"seeIcon",viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg"},Wz=Ce(()=>t("path",{d:"M12 6c3.79 0 7.17 2.13 8.82 5.5-.59 1.22-1.42 2.27-2.41 3.12l1.41 1.41c1.39-1.23 2.49-2.77 3.18-4.53C21.27 7.11 17 4 12 4c-1.27 0-2.49.2-3.64.57l1.65 1.65C10.66 6.09 11.32 6 12 6zm-1.07 1.14L13 9.21c.57.25 1.03.71 1.28 1.28l2.07 2.07c.08-.34.14-.7.14-1.07C16.5 9.01 14.48 7 12 7c-.37 0-.72.05-1.07.14zM2.01 3.87l2.68 2.68C3.06 7.83 1.77 9.53 1 11.5 2.73 15.89 7 19 12 19c1.52 0 2.98-.29 4.32-.82l3.42 3.42 1.41-1.41L3.42 2.45 2.01 3.87zm7.5 7.5l2.61 2.61c-.04.01-.08.02-.12.02-1.38 0-2.5-1.12-2.5-2.5 0-.05.01-.08.01-.13zm-3.4-3.4l1.75 1.75c-.23.55-.36 1.15-.36 1.78 0 2.48 2.02 4.5 4.5 4.5.63 0 1.23-.13 1.77-.36l.98.98c-.88.24-1.8.38-2.75.38-3.79 0-7.17-2.13-8.82-5.5.7-1.43 1.72-2.61 2.93-3.53z",fill:"currentColor"},null,-1)),Hz=[Wz],Jz={key:1,class:"seeIcon",viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg"},Zz=Ce(()=>t("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z",fill:"currentColor"},null,-1)),Kz=[Zz],Qz={class:"form-item"},Xz={class:"label-name"},tP={class:"label-value"},eP=["disabled"],aP={value:!1},oP={value:!0},nP={key:0,class:"select-arrow"},iP={key:1,class:"form-item"},rP={class:"label-name"},sP={class:"label-value"},dP=["disabled"],lP=["value"],uP={key:0,class:"select-arrow"},cP={key:2,class:"form-item"},pP={class:"label-name"},fP={class:"label-value"},mP=["disabled"],gP=Ce(()=>t("option",{value:"20"},"20 MHz",-1)),vP=Ce(()=>t("option",{value:"40"},"40 MHz",-1)),bP={key:0,value:"auto"},hP={key:1,value:"80"},_P={key:2,value:"160"},xP={key:0,class:"select-arrow"},wP={key:3,class:"form-item"},kP={class:"label-name"},yP={class:"label-value"},FP=["disabled"],EP={value:0},$P=["value"],CP=["disabled"],DP={value:0},BP=jt('',12),YP={key:2,class:"select-arrow"},AP={key:4,class:"form-item"},SP={class:"label-name"},zP={class:"label-value"},PP=["placeholder","disabled"],TP={class:"label-btns"},IP=["disabled"],MP=I({props:{data:null},emits:["getData"],setup(o,{emit:n}){const a=o,{$gettext:l,$ngettext:u}=J(),d=E(Object.assign({},a.data)),c=Yo("disabled"),k=E(!0),g=()=>{c.value||(d.value.disabled=!d.value.disabled)};$t(()=>d.value.disabled,y=>{m()});const p=()=>L(this,null,function*(){if(d.value.txpower===a.data.txpower)return;const y=$.Loading("\u914D\u7F6E\u4E2D...");try{const{data:f}=yield G.Quickwifi.Power.POST({device:d.value.device||"",txpower:d.value.txpower||0}),{error:F,success:w}=f;if(F)throw F;(w==null||w==0)&&$.Success("\u914D\u7F6E\u5B8C\u6210")}catch(f){throw $.Error("\u914D\u7F6E\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),f}finally{y.Close()}}),m=()=>L(this,null,function*(){const y=$.Loading("\u914D\u7F6E\u4E2D...");try{const{data:f}=yield G.Quickwifi.Switch.POST({ifaceName:d.value.ifaceName||"",enable:!d.value.disabled}),{error:F,success:w}=f;if(F)throw F;(w==null||w==0)&&$.Success("\u914D\u7F6E\u5B8C\u6210")}catch(f){throw console.error("\u8BF7\u6C42\u51FA\u9519:",f),$.Error("\u914D\u7F6E\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),f}finally{y.Close()}}),v=()=>L(this,null,function*(){const y=st({},d.value);delete y.encryptSelects,delete y.hwmodeSelects,delete y.disabled,delete y.txpower;const{data:f}=yield G.Quickwifi.Edit.POST(y),{error:F,success:w}=f;if(F)throw F;(w==null||w==0)&&$.Success("\u914D\u7F6E\u5B8C\u6210")}),b=()=>L(this,null,function*(){if(c.value)return;c.value=!0;const y=$.Loading("\u914D\u7F6E\u4E2D...");try{yield v(),yield n("getData")}catch(f){const F=$.Error(`${f}`);setTimeout(()=>{F.Close()},2e3)}finally{y.Close(),c.value=!1}});return(y,f)=>(r(),s("form",{class:"form-container",onSubmit:ft(b,["prevent"])},[t("div",gz,[t("div",vz,[t("span",null,i(e(l)("\u542F\u7528Wi-Fi")),1)]),t("div",bz,[t("div",hz,[t("label",null,[O(t("input",{type:"radio",value:!1,"onUpdate:modelValue":f[0]||(f[0]=F=>d.value.disabled=F),disabled:e(c)},null,8,_z),[[Bt,d.value.disabled]]),dt(" "+i(e(l)("\u5F00\u542F")),1)]),t("label",null,[O(t("input",{type:"radio",value:!0,"onUpdate:modelValue":f[1]||(f[1]=F=>d.value.disabled=F),disabled:e(c)},null,8,xz),[[Bt,d.value.disabled]]),dt(" "+i(e(l)("\u5173\u95ED")),1)])]),t("div",{class:"mobile-switch",onClick:g},[t("div",{class:lt(["switch-core",{"is-checked":!d.value.disabled,"is-disabled":e(c)}])},kz,2)])])]),d.value.isGuest?D("",!0):(r(),s("div",yz,[t("div",Fz,[t("span",null,i(e(l)("\u53D1\u5C04\u529F\u7387")),1)]),t("div",Ez,[O(t("select",{"onUpdate:modelValue":f[2]||(f[2]=F=>d.value.txpower=F),disabled:e(c),onChange:p},[t("option",Cz,i(e(l)("\u6700\u5927")),1),t("option",Dz,i(e(l)("\u9AD8")),1),t("option",Bz,i(e(l)("\u4E2D")),1),t("option",Yz,i(e(l)("\u4F4E")),1)],40,$z),[[pt,d.value.txpower]]),e(c)?D("",!0):(r(),s("div",Az))])])),t("div",Sz,[t("div",zz,[t("span",null,i(e(l)("Wi-Fi\u540D\u79F0\uFF08SSID\uFF09")),1)]),t("div",Pz,[O(t("input",{"onUpdate:modelValue":f[3]||(f[3]=F=>d.value.ssid=F),disabled:e(c),placeholder:e(l)("\u8BF7\u8F93\u5165WIFI\u540D\u79F0")},null,8,Tz),[[at,d.value.ssid]])])]),t("div",Iz,[t("div",Mz,[t("span",null,i(e(l)("Wi-Fi \u5B89\u5168\u6027")),1)]),t("div",Lz,[O(t("select",{"onUpdate:modelValue":f[4]||(f[4]=F=>d.value.encryption=F),disabled:e(c)},[(r(!0),s(U,null,tt(d.value.encryptSelects,F=>(r(),s("option",{value:F},i(F),9,Nz))),256))],8,Oz),[[pt,d.value.encryption]]),e(c)?D("",!0):(r(),s("div",Vz))])]),t("div",Gz,[t("div",jz,[t("span",null,i(e(l)("Wi-Fi \u5BC6\u7801")),1)]),t("div",Uz,[O(t("input",{"onUpdate:modelValue":f[5]||(f[5]=F=>d.value.key=F),class:"password_input",type:k.value?"password":"",disabled:e(c),placeholder:e(l)("\u8BF7\u8F93\u5165WIFI\u5BC6\u7801")},null,8,qz),[[Ao,d.value.key]]),e(c)?D("",!0):(r(),s("div",{key:0,onClick:f[6]||(f[6]=F=>k.value=!k.value)},[k.value?(r(),s("svg",Rz,Hz)):(r(),s("svg",Jz,Kz))]))])]),t("div",Qz,[t("div",Xz,[t("span",null,i(e(l)("SSID \u53EF\u89C1\u6027")),1)]),t("div",tP,[O(t("select",{"onUpdate:modelValue":f[7]||(f[7]=F=>d.value.hidden=F),disabled:e(c)},[t("option",aP,i(e(l)("\u663E\u793A")),1),t("option",oP,i(e(l)("\u9690\u85CF")),1)],8,eP),[[pt,d.value.hidden]]),e(c)?D("",!0):(r(),s("div",nP))])]),d.value.isGuest?D("",!0):(r(),s("div",iP,[t("div",rP,[t("span",null,i(e(l)("\u65E0\u7EBF\u6A21\u5F0F")),1)]),t("div",sP,[O(t("select",{"onUpdate:modelValue":f[8]||(f[8]=F=>d.value.hwmode=F),disabled:e(c)},[(r(!0),s(U,null,tt(d.value.hwmodeSelects,F=>(r(),s("option",{value:F},i(F),9,lP))),256))],8,dP),[[pt,d.value.hwmode]]),e(c)?D("",!0):(r(),s("div",uP))])])),d.value.isGuest?D("",!0):(r(),s("div",cP,[t("div",pP,[t("span",null,i(e(l)("\u9891\u5BBD")),1)]),t("div",fP,[O(t("select",{"onUpdate:modelValue":f[9]||(f[9]=F=>d.value.htmode=F),disabled:e(c)},[gP,vP,d.value.band==="2g"?(r(),s("option",bP," 20/40 MHz ")):D("",!0),d.value.band==="5g"?(r(),s("option",hP," 80 MHz ")):D("",!0),d.value.band==="5g"?(r(),s("option",_P," 160 MHz ")):D("",!0)],8,mP),[[pt,d.value.htmode]]),e(c)?D("",!0):(r(),s("div",xP))])])),d.value.isGuest?D("",!0):(r(),s("div",wP,[t("div",kP,[t("span",null,i(e(l)("\u4FE1\u9053")),1)]),t("div",yP,[d.value.band==="2g"?O((r(),s("select",{key:0,"onUpdate:modelValue":f[10]||(f[10]=F=>d.value.channel=F),disabled:e(c)},[t("option",EP,i(e(l)("\u81EA\u52A8")),1),(r(),s(U,null,tt(13,F=>t("option",{value:F},i(F),9,$P)),64))],8,FP)),[[pt,d.value.channel,void 0,{number:!0}]]):D("",!0),d.value.band==="5g"?O((r(),s("select",{key:1,"onUpdate:modelValue":f[11]||(f[11]=F=>d.value.channel=F),disabled:e(c)},[t("option",DP,i(e(l)("\u81EA\u52A8")),1),BP],8,CP)),[[pt,d.value.channel,void 0,{number:!0}]]):D("",!0),e(c)?D("",!0):(r(),s("div",YP))])])),d.value.isGuest?D("",!0):(r(),s("div",AP,[t("div",SP,[t("span",null,i(e(l)("\u7F51\u7EDC")),1)]),t("div",zP,[O(t("input",{type:"text",placeholder:e(l)("\u8BF7\u914D\u7F6E\u7F51\u7EDC\u540D\u79F0"),required:"","onUpdate:modelValue":f[12]||(f[12]=F=>d.value.network=F),disabled:e(c)},null,8,PP),[[at,d.value.network]])])])),t("div",TP,[t("button",{class:"btn primary-btn",disabled:e(c),onClick:b},i(e(l)("\u4FDD\u5B58\u914D\u7F6E")),9,IP)])],40,mz))}});var LP=N(MP,[["__scopeId","data-v-2b19eb04"]]);const qe=o=>(ut("data-v-42d0731d"),o=o(),ct(),o),OP={id:"page",class:"page-container"},NP={class:"mobile-tags-container"},VP={class:"tags-wrapper"},GP={class:"tags-scroll"},jP=["onClick"],UP={class:"more-btn-wrapper"},qP=qe(()=>t("div",{class:"fade-overlay"},null,-1)),RP=qe(()=>t("div",{class:"line"},null,-1)),WP=qe(()=>t("div",{class:"line"},null,-1)),HP=qe(()=>t("div",{class:"line"},null,-1)),JP=[RP,WP,HP],ZP={class:"page-flex"},KP={class:"page-sidebar"},QP=["onClick"],XP={class:"page-main"},tT={class:"popup-content"},eT={class:"popup-tags"},aT=["onClick"],oT={class:"popup-footer"},nT=I({setup(o){var F;const{$gettext:n}=J(),a=E(!1);So("disabled",a);const l=E([]),u=Te(),d=Pe(),c=E(String((F=u==null?void 0:u.query)==null?void 0:F.tab)),k=E(!1),g=w=>{var h;return(h=w.band)==null?void 0:h.toUpperCase()},p=w=>w.isGuest?w.band+"_Guest":w.ssid,m=w=>{a.value||(c.value=p(w),k.value=!1,c.value!==u.query.tab&&d.push({query:{tab:c.value}}))},v=E(),b=w=>{a.value||(v.value=p(w))},y=()=>{k.value=!1,v.value!==u.query.tab&&d.push({query:{tab:v.value}})};$t(()=>k.value,w=>{w?v.value=c.value:c.value=v.value});const f=()=>L(this,null,function*(){try{const{data:w}=yield G.Quickwifi.List.GET(),{error:h,result:_}=w;if(h)throw h;_!=null&&_.ifaces&&(l.value=_.ifaces.map(C=>vt(st({},C),{hidden:C.hidden||!1,disabled:C.disabled||!1,isGuest:C.isGuest||!1,channel:C.channel||0,txpower:C.txpower||0,ifaceIndex:C.ifaceIndex||0})));let x=!1;for(let C=0;C0&&m(l.value[0])}catch(w){console.log(w)}});return f(),(w,h)=>(r(),s("div",OP,[t("div",NP,[t("div",VP,[t("div",GP,[(r(!0),s(U,null,tt(l.value,_=>(r(),s("div",{key:p(_),class:lt(c.value===p(_)?"tag-item active":"tag-item"),onClick:ft(x=>m(_),["stop"])},i(g(_))+" "+i(_.isGuest?` ${e(n)("\u8BBF\u5BA2")}`:"")+" Wi-Fi "+i(_.ifaceIndex?`[${_.ifaceIndex}]`:""),11,jP))),128))]),t("div",UP,[qP,t("div",{class:"more-btn",onClick:h[0]||(h[0]=_=>k.value=!0)},JP)])])]),t("div",ZP,[t("div",KP,[(r(!0),s(U,null,tt(l.value,_=>(r(),s("div",{key:p(_),class:lt(c.value===p(_)?"item activeItem":"item"),onClick:ft(x=>m(_),["stop"])},i(g(_))+" "+i(_.isGuest?` ${e(n)("\u8BBF\u5BA2")}`:"")+" Wi-Fi "+i(_.ifaceIndex?`[${_.ifaceIndex}]`:""),11,QP))),128))]),t("div",XP,[(r(!0),s(U,null,tt(l.value,_=>(r(),s(U,{key:p(_)},[c.value===p(_)?(r(),Z(LP,{key:0,data:_,onGetData:f},null,8,["data"])):D("",!0)],64))),128))])]),k.value?(r(),s("div",{key:0,class:"popup-overlay",onClick:h[2]||(h[2]=ft(_=>k.value=!1,["self"]))},[t("div",tT,[t("div",eT,[(r(!0),s(U,null,tt(l.value,_=>(r(),s("div",{key:p(_),class:lt(v.value===p(_)?"popup-tag-item active":"popup-tag-item"),onClick:ft(x=>b(_),["stop"])},i(g(_))+" "+i(_.isGuest?` ${e(n)("\u8BBF\u5BA2")}`:"")+" Wi-Fi "+i(_.ifaceIndex?`[${_.ifaceIndex}]`:""),11,aT))),128))]),t("div",oT,[t("button",{class:"cancel-btn",onClick:h[1]||(h[1]=_=>k.value=!1)},i(e(n)("\u53D6\u6D88")),1),t("button",{class:"confirm-btn",onClick:y},i(e(n)("\u786E\u5B9A")),1)])])])):D("",!0)]))}});var iT=N(nT,[["__scopeId","data-v-42d0731d"]]);const rT=()=>window.vue_base||"/cgi-bin/luci/admin/quickstart",fo=zo({history:Po(rT()),routes:[{name:"IndexPage",path:"/",meta:{title:"\u63A7\u5236\u53F0"},component:fh},{name:"NetworkPage",path:"/network",meta:{title:"\u7F51\u7EDC\u8BBE\u7F6E\u5411\u5BFC"},component:vh,children:[{path:"",component:Zh},{path:"pppoe",component:__},{path:"dhcp",component:nx},{path:"gateway",component:Hx}]},{path:"/quickwifi",component:iT},{name:"RaidPage",path:"/raid",meta:{title:"raid\u5411\u5BFC"},component:by},{name:"SmartPage",path:"/smart",meta:{title:"smart\u68C0\u6D4B"},component:Ey,children:[{path:"",component:$$},{path:"task",component:V$},{path:"log",component:q$}]},{path:"/interfaceconfig",component:eD},{path:"/devicemanagement",component:mS},{path:"/networkSpeedTest",component:fz}]});fo.beforeEach((o,n)=>(o.meta.title,!0));const Ct=xt(sn);Ct.component("svg-menu",mn);Ct.component("svg-system",xn);Ct.component("svg-download",$n);Ct.component("svg-store",Pn);Ct.component("svg-info",Nn);Ct.component("svg-disk",ui);Ct.component("svg-nav",vi);Ct.component("progress-item",Ua);Ct.component("svg-view-show",Ni);Ct.component("svg-view-hidden",Ri);Ct.component("article-item",Xi);Ct.component("switch-box",qa);Ct.component("editable-select",Zt);Ct.use(Ra);Ct.use(fo);Ct.use(To());Mo(Ct).finally(()=>Ct.mount("#app"))});export default sT(); +import{createApp as c}from"/luci-static/quickstart/card-runtime-v1.js";import{i as a,A as p,S as m,a as l,b as d,c as u,d as f,e as g,f as v,p as S,g as h,h as y,j as w,k as b,E as O,l as A,r as L,m as P}from"./app.js?v=txJtMzYh";import{s as I}from"./vendor.js?v=B46K-l76";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const t of o)if(t.type==="childList")for(const n of t.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&r(n)}).observe(document,{childList:!0,subtree:!0});function i(o){const t={};return o.integrity&&(t.integrity=o.integrity),o.referrerPolicy&&(t.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?t.credentials="include":o.crossOrigin==="anonymous"?t.credentials="omit":t.credentials="same-origin",t}function r(o){if(o.ep)return;o.ep=!0;const t=i(o);fetch(o.href,t)}})();a();const e=c(p);e.component("svg-menu",m);e.component("svg-system",l);e.component("svg-download",d);e.component("svg-store",u);e.component("svg-info",f);e.component("svg-disk",g);e.component("svg-nav",v);e.component("progress-item",S);e.component("svg-view-show",h);e.component("svg-view-hidden",y);e.component("article-item",w);e.component("switch-box",b);e.component("editable-select",O);e.use(A);e.use(L);e.use(I());P(e).finally(()=>e.mount("#app")); diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/installClient.js b/luci-app-quickstart/htdocs/luci-static/quickstart/installClient.js new file mode 100644 index 000000000..d98681e6f --- /dev/null +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/installClient.js @@ -0,0 +1 @@ +var p=(m,b,s)=>new Promise((t,c)=>{var u=e=>{try{f(s.next(e))}catch(r){c(r)}},i=e=>{try{f(s.throw(e))}catch(r){c(r)}},f=e=>e.done?t(e.value):Promise.resolve(e.value).then(u,i);f((s=s.apply(m,b)).next())});import{o as y,q as E}from"./app.js?v=txJtMzYh";import"/luci-static/quickstart/card-runtime-v1.js";import"./vendor.js?v=B46K-l76";function v(m=fetch,b=y,s=t=>new Promise((c,u)=>{const i=()=>{clearTimeout(f),u(new DOMException("Aborted","AbortError"))},f=setTimeout(()=>{t==null||t.removeEventListener("abort",i),c()},3e3);t==null||t.addEventListener("abort",i,{once:!0}),t!=null&&t.aborted&&i()})){const t=(e,r)=>typeof window!="undefined"&&window.vue_lang==="en"?r:e,c=e=>{const r=E.find(n=>n.id===e);if(!r)throw Error("Unsupported card");return r.package};function u(e,r,n){return p(this,null,function*(){var l;const o=new AbortController,a=()=>o.abort(),w=setTimeout(a,8e3);n==null||n.addEventListener("abort",a,{once:!0}),n!=null&&n.aborted&&a();try{const d=yield m("/cgi-bin/luci/istore/app/"+e+"/",{method:"POST",credentials:"same-origin",redirect:"error",cache:"no-store",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:c(r)}),signal:o.signal});if(!d.ok||!((l=d.headers.get("Content-Type"))!=null&&l.includes("application/json")))throw Error([401,403].includes(d.status)?t("登录已失效或权限不足,请重新登录","Session expired or access denied. Sign in again."):t("无法读取安装状态,请稍后重试","Unable to read installation status. Try again."));const k=yield d.text();if(k.length>8192)throw Error("Invalid installation response");const h=JSON.parse(k);if(h.error||h.success!==void 0&&h.success!==0)throw Error(t("安装状态读取失败,请检查软件中心","Unable to confirm installation. Check the software center."));return h}finally{clearTimeout(w),n==null||n.removeEventListener("abort",a)}})}function i(e,r){return p(this,null,function*(){var a,w,l;const n=yield u("check",e,r),o=(a=n.result)==null?void 0:a.installation;return["idle","installing","completed","failed","unknown"].includes(o)?o==="installing"?"installing":o==="unknown"?"unknown":o==="failed"?"failed":((w=n.result)==null?void 0:w.status)==="uninstalled"?"uninstalled":((l=n.result)==null?void 0:l.status)!=="installed"?"unknown":(yield b.read(!0)).some(d=>d.id===e)?"ready":"update_required":"unknown"})}return{inspect:i,install(e,r){return p(this,null,function*(){const n=yield i(e,r);if(n!=="ready"){if(n==="unknown")throw Error(t("无法确认安装状态,请先在软件中心检查或升级 Quickstart","Installation status is unknown. Check the software center or update Quickstart."));if(n!=="installing")try{yield u("install",e,r)}catch(o){if(r!=null&&r.aborted)throw o}for(let o=0;o<60;o++){yield s(r);const a=yield i(e,r);if(a==="ready")return;if(a==="update_required")throw Error(t("插件已安装,但当前版本尚未提供可用卡片;请在软件中心升级或修复 FastNet","The installed version has no usable card. Update or repair FastNet in the software center."));if(a==="failed")throw Error(t("安装失败,请检查软件源后重试","Installation failed. Check the package source before retrying."));if(a==="unknown")throw Error(t("安装结果尚未确认,请先在软件中心检查","Installation is unconfirmed. Check the software center first."))}throw Error(t("安装结果尚未确认,请重新读取状态;后台安装可能仍在继续","Installation is unconfirmed. Reload its status; installation may still be running."))}})}}}const S=v();export{S as cardInstaller,v as createCardInstaller}; diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/style.css b/luci-app-quickstart/htdocs/luci-static/quickstart/style.css index 5f4bdf14f..a755b3125 100644 --- a/luci-app-quickstart/htdocs/luci-static/quickstart/style.css +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/style.css @@ -1,2 +1,2 @@ -@keyframes bganimation-0698ba82{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0698ba82{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0698ba82{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0698ba82]{animation:rotateEnter-0698ba82 .7s;position:relative}.rotate-leave-active[data-v-0698ba82]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0698ba82]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.disk-item-tooltip[data-v-0698ba82]{position:fixed;background:rgba(0,0,0,.7);z-index:10111;color:#fff;padding:.5rem 1rem;font-size:1em;min-width:200px;line-height:24px}.disk-item-tooltip[data-v-0698ba82]:after{content:"";position:absolute;bottom:-6px;border-color:#4c4c4c rgba(0,0,0,0) rgba(0,0,0,0);left:0;right:0;text-align:center;width:0;margin:0 auto;border-width:6px 8px 0;border-style:solid}#main .app-btn,#actioner .app-btn{min-height:36px}@keyframes bganimation-9bc295c2{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9bc295c2{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9bc295c2{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9bc295c2]{animation:rotateEnter-9bc295c2 .7s;position:relative}.rotate-leave-active[data-v-9bc295c2]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9bc295c2]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#main[data-v-9bc295c2]{width:100%}#main[data-v-9bc295c2],#main[data-v-9bc295c2] *{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}@keyframes bganimation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active{animation:rotateEnter .7s;position:relative}.rotate-leave-active{opacity:0;display:none;position:relative;z-index:-999}.app-container{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd}@media (prefers-color-scheme: light){:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd}}@media (prefers-color-scheme: dark){:root{--flow-bg-color: transparent;--flow-span-color: #cccccc;--card-bg-color: #88888822;--card-box-shadow: 0 0 .5rem 0 rgba(0, 0, 0, .35);--app-container_title-color: #cccccc;--app-container_status-label_block: #727272;--item-label_key-span-color: #cccccc;--item-label_value-span-color: #cccccc;--app-container_status-label_bg: #0000001a;--item_btn-border: 1px solid #cccccc;--item_btn-color: #cccccc;--tit-color: #cccccc;--popup-bg-color: #000;--tag-bg-color: #1e1e1e;--gradient-bg-color:linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.8) 62%, rgba(0,0,0,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #0000001a;--SystemUpdateBanner-bg-color: #2c2c2c;--SystemUpdateBanner-border-color: #2c2c2c;--btn-border-color: #727272;--card-txt-color: #32325d;--SystemInfo-bg-color:#2c2c2c}#app svg path{color:#666}#app svg circle{stroke:#666}}@media (prefers-color-scheme: no-preference){:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd}}:root[data-darkmode=true]{--flow-bg-color: transparent;--flow-span-color: #cccccc;--card-bg-color: #88888822;--card-box-shadow: 0 0 .5rem 0 rgba(0, 0, 0, .35);--app-container_title-color: #cccccc;--app-container_status-label_block: #727272;--item-label_key-span-color: #cccccc;--item-label_value-span-color: #cccccc;--app-container_status-label_bg: #0000001a;--item_btn-border: 1px solid #cccccc;--item_btn-color: #cccccc;--tit-color: #cccccc;--popup-bg-color: #000;--tag-bg-color: #1e1e1e;--gradient-bg-color:linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.8) 62%, rgba(0,0,0,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #0000001a;--SystemUpdateBanner-bg-color: #2c2c2c;--SystemUpdateBanner-border-color: #2c2c2c;--btn-border-color: #727272;--card-txt-color: #32325d;--SystemInfo-bg-color:#2c2c2c}:root[data-darkmode=false]{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd}@keyframes bganimation-bfec7a3e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-bfec7a3e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-bfec7a3e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-bfec7a3e]{animation:rotateEnter-bfec7a3e .7s;position:relative}.rotate-leave-active[data-v-bfec7a3e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-bfec7a3e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.progress[data-v-bfec7a3e]{width:100%;display:block;position:relative;background-color:#eee;border-radius:4px;height:18px;line-height:18px;overflow:hidden}.progress .progress-value[data-v-bfec7a3e]{transition:.5s;position:absolute;left:0;top:0;bottom:0;height:100%;text-align:center;color:#fff;vertical-align:middle;font-size:12px}@keyframes bganimation-76324716{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-76324716{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-76324716{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-76324716]{animation:rotateEnter-76324716 .7s;position:relative}.rotate-leave-active[data-v-76324716]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-76324716]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}label.checkbox_switch[data-v-76324716]{cursor:pointer;display:flex!important;align-items:center;width:initial!important}label.checkbox_switch input[type=checkbox][data-v-76324716]{height:0!important;width:0!important;opacity:0!important;margin:0!important;padding:0!important;border:none!important}label.checkbox_switch .checkbox_switch_on[data-v-76324716],label.checkbox_switch .checkbox_switch_off[data-v-76324716]{flex:none}label.checkbox_switch .checkbox_switch_on[data-v-76324716]{display:none!important}label.checkbox_switch .checkbox_switch_off[data-v-76324716]{display:inline-flex!important}label.checkbox_switch input[type=checkbox]:checked~.checkbox_switch_on[data-v-76324716]{display:inline-flex!important}label.checkbox_switch input[type=checkbox]:checked~.checkbox_switch_off[data-v-76324716]{display:none!important}label.checkbox_switch svg[data-v-76324716]{height:1em;width:2em}article[data-v-bd286d4e]{flex:0 0 100%;max-width:20%;position:relative;border-radius:4px;padding:10px}@media screen and (max-width: 1080px){article[data-v-bd286d4e]{max-width:33.333%}}@keyframes bganimation-bd286d4e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-bd286d4e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-bd286d4e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-bd286d4e]{animation:rotateEnter-bd286d4e .7s;position:relative}.rotate-leave-active[data-v-bd286d4e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-bd286d4e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){article[data-v-bd286d4e]{max-width:50%}}@keyframes bganimation-123deb20{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-123deb20{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-123deb20{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-123deb20]{animation:rotateEnter-123deb20 .7s;position:relative}.rotate-leave-active[data-v-123deb20]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-123deb20]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}a[data-v-123deb20]{position:relative;display:block;width:100%;transition:.4s;cursor:pointer}a[data-v-123deb20]:hover{transform:scale(1.07);transition:.4s;position:relative}a:hover .cover .thumbnail[data-v-123deb20]{box-shadow:0 6px 40px #1c67f2}a .cover[data-v-123deb20]{position:relative;padding-top:130%;z-index:1}a .cover[data-v-123deb20] .thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;border-radius:6px;overflow:hidden;z-index:1;background-color:#2dc8fd;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}a .cover[data-v-123deb20] .thumbnail i{display:block;font-size:100px;color:#eee}a .cover[data-v-123deb20] .thumbnail span{display:block;text-align:center;width:100%;color:#eeee;font-size:28px;margin:1rem 0}article:nth-child(9n+1) a .cover .thumbnail[data-v-123deb20]{background-color:#ff9100}article:nth-child(9n+2) a .cover .thumbnail[data-v-123deb20]{background-color:#2dc8fd}article:nth-child(9n+3) a .cover .thumbnail[data-v-123deb20]{background-color:#f66a2c}article:nth-child(9n+4) a .cover .thumbnail[data-v-123deb20]{background-color:#9b58de}article:nth-child(9n+5) a .cover .thumbnail[data-v-123deb20]{background-color:#297ff3}article:nth-child(9n+6) a .cover .thumbnail[data-v-123deb20]{background-color:#27aa8f}article:nth-child(9n+7) a .cover .thumbnail[data-v-123deb20]{background-color:#f15a4a}article:nth-child(9n+8) a .cover .thumbnail[data-v-123deb20]{background-color:#439c07}@keyframes bganimation-0b6f3a7d{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0b6f3a7d{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0b6f3a7d{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0b6f3a7d]{animation:rotateEnter-0b6f3a7d .7s;position:relative}.rotate-leave-active[data-v-0b6f3a7d]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0b6f3a7d]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.select-editable[data-v-0b6f3a7d]{position:relative;line-height:1.5rem;padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:.25rem;margin:.25rem .1rem}.select-editable select[data-v-0b6f3a7d],.select-editable input[data-v-0b6f3a7d]{height:100%;padding:0;border:none;margin:0}.select-editable select[data-v-0b6f3a7d]{position:relative;width:100%}.select-editable input[data-v-0b6f3a7d]{position:absolute;top:0;left:.75rem;width:88%}.select-editable select[data-v-0b6f3a7d]:focus,.select-editable input[data-v-0b6f3a7d]:focus{outline:none;box-shadow:none}@keyframes bganimation-0ec4e762{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0ec4e762{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0ec4e762{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0ec4e762]{animation:rotateEnter-0ec4e762 .7s;position:relative}.rotate-leave-active[data-v-0ec4e762]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0ec4e762]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes turn-0ec4e762{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.quick-loading[data-v-0ec4e762]{animation:turn-0ec4e762 1s steps(12,end) infinite;margin:0!important;padding:0!important;background:none!important;display:flex!important}.quick-loading svg[data-v-0ec4e762]{width:100%;height:100%}.quick-loading svg path[data-v-0ec4e762]{fill:#fff}@keyframes bganimation-b934e2ce{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b934e2ce{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b934e2ce{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b934e2ce]{animation:rotateEnter-b934e2ce .7s;position:relative}.rotate-leave-active[data-v-b934e2ce]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b934e2ce]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}a[data-v-b934e2ce]{margin-left:4px;width:20px;vertical-align:middle}a svg[data-v-b934e2ce]{width:22px;height:22px}a:hover svg path[data-v-b934e2ce]{fill:#3688ff}.reusable-card[data-v-dbb174c6]{border:1px solid;border-radius:10px;padding:20px 14px;box-sizing:border-box;background-clip:padding-box;display:flex;flex-direction:column;gap:12px;border:1px solid var(--border-color);background:var(--card-bg-color)}.card-header[data-v-dbb174c6]{display:flex;justify-content:space-between;align-items:center}.card-header .left[data-v-dbb174c6]{display:flex;align-items:center;gap:8px}.card-header[data-v-dbb174c6]>svg{width:20px;height:20px}.title[data-v-dbb174c6]{font-size:16px;font-weight:600;line-height:1;color:var(--app-container_title-color)}.settings-btn[data-v-dbb174c6]{cursor:pointer}.card-body[data-v-dbb174c6]{flex:1 1 auto}.card-footer[data-v-dbb174c6]{display:flex;justify-content:center}.footer-btn[data-v-dbb174c6]{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;border:1px solid var(--btn-border-color);justify-content:center;cursor:pointer;width:100%;max-width:600px;margin-top:16px}.footer-icon[data-v-dbb174c6]{display:inline-flex;align-items:center}.footer-text[data-v-dbb174c6]{font-size:14px;font-weight:400;color:var(--app-container_title-color)}.settings-icon[data-v-dbb174c6]{width:20px;height:20px}.settings-icon[data-v-dbb174c6] svg,.settings-icon[data-v-dbb174c6] g,.settings-icon[data-v-dbb174c6] path,.settings-icon[data-v-dbb174c6] circle,.settings-icon[data-v-dbb174c6] rect,.settings-icon[data-v-dbb174c6] line,.settings-icon[data-v-dbb174c6] polyline,.settings-icon[data-v-dbb174c6] polygon{fill:var(--app-container_title-color)!important;stroke:var(--app-container_title-color)!important}.settings-wrapper[data-v-dbb174c6]{position:relative}.dropdown-menu[data-v-dbb174c6]{position:absolute;top:38px;right:0;background:#fff;border-radius:6px;padding:16px 0;min-width:220px;box-shadow:0 4px 12px #0003;z-index:10}.fade-enter-active[data-v-dbb174c6],.fade-leave-active[data-v-dbb174c6]{transition:opacity .2s}.fade-enter-from[data-v-dbb174c6],.fade-leave-to[data-v-dbb174c6]{opacity:0}.dropdown-menu[data-v-dbb174c6] div{display:block;width:100%;text-align:center;padding:8px 0;border:none;background:none;cursor:pointer;font-size:14px;color:#333;transition:background .2s,color .2s}.dropdown-menu[data-v-dbb174c6] div:hover{background-color:#eee}@keyframes bganimation-dbb174c6{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-dbb174c6{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-dbb174c6{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-dbb174c6]{animation:rotateEnter-dbb174c6 .7s;position:relative}.rotate-leave-active[data-v-dbb174c6]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-dbb174c6]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.reusable-card[data-v-dbb174c6]{padding:10px;border-radius:6px}.title[data-v-dbb174c6]{font-size:14px}.footer-btn[data-v-dbb174c6]{margin-top:6px}.dropdown-menu[data-v-dbb174c6]{padding:8px 0;min-width:150px}}@keyframes bganimation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active{animation:rotateEnter .7s;position:relative}.rotate-leave-active{opacity:0;display:none;position:relative;z-index:-999}.app-container{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}[lock-scroll=true]{overflow:hidden!important;height:100vh}@keyframes bganimation-75eeccd3{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-75eeccd3{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-75eeccd3{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-75eeccd3]{animation:rotateEnter-75eeccd3 .7s;position:relative}.rotate-leave-active[data-v-75eeccd3]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-75eeccd3]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.bg[data-v-75eeccd3]{position:fixed;inset:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:999}#actioner[data-v-75eeccd3]{position:fixed;z-index:1000;width:100%;height:100%;inset:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;overflow:auto}#actioner[data-v-75eeccd3],#actioner[data-v-75eeccd3] *{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.action-container[data-v-75eeccd3]{width:100%;height:100%;background-color:#fff;position:fixed;z-index:9999;inset:0;margin:auto;overflow:auto}.action-container .action-container_header[data-v-75eeccd3]{width:100%;height:36px;line-height:36px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:0 .625rem;position:absolute;top:0;left:0;right:0;border-bottom:1px solid #1e1e1e;background-color:#252526}.action-container .action-container_header .title[data-v-75eeccd3]{color:#eee;font-size:16px}.action-container .action-container_header button.close[data-v-75eeccd3]{width:36px;height:36px;margin:0;padding:10px;background:none;border:none;cursor:pointer;opacity:1}.action-container .action-container_header button.close[data-v-75eeccd3] svg.icon{width:100%;height:100%}.action-container .action-container_header button.close[data-v-75eeccd3] svg.icon path{fill:#eee}.action-container .action-container_header button.close[data-v-75eeccd3]:hover{opacity:.9}.action-container .action-container_body[data-v-75eeccd3]{width:100%;height:100%;padding-top:36px}@keyframes bganimation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active{animation:rotateEnter .7s;position:relative}.rotate-leave-active{opacity:0;display:none;position:relative;z-index:-999}.app-container{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes dialogEnter{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes dialogLeave{0%{transform:scale(1)}to{transform:scale(0)}}.dialog-enter-active{animation:dialogEnter .3s linear forwards}.dialog-leave-active{animation:dialogLeave .3s linear forwards}@keyframes bganimation-7732abe2{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-7732abe2{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-7732abe2{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-7732abe2]{animation:rotateEnter-7732abe2 .7s;position:relative}.rotate-leave-active[data-v-7732abe2]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-7732abe2]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}ul.disk-item[data-v-7732abe2]{width:100%;margin-bottom:10px}ul.disk-item .auto[data-v-7732abe2]{flex:auto}ul.disk-item .disk-item_icon[data-v-7732abe2]{width:24px;height:24px;margin-right:.5rem}ul.disk-item .disk-item_icon svg[data-v-7732abe2]{width:100%;height:100%}ul.disk-item li.disk-info[data-v-7732abe2]{display:flex;flex-wrap:nowrap;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;padding:5px 1rem;height:50px;cursor:pointer;color:#666;font-size:12px;border-left:3px solid #89897f}ul.disk-item li.disk-info[data-v-7732abe2]:hover{background-color:#ecf5ff}ul.disk-item li.disk-info .disk-item_icon svg path[data-v-7732abe2]{fill:#09aaff}ul.disk-item li.disk-info .disk-item_f[data-v-7732abe2]{display:flex;flex-wrap:wrap}ul.disk-item li.disk-info .disk-item_f .disk-item_venderModel[data-v-7732abe2],ul.disk-item li.disk-info .disk-item_f .disk-item_used[data-v-7732abe2]{width:100%}ul.disk-item li.disk-info.on[data-v-7732abe2]{border-left:3px solid #ff9c08}ul.disk-item li.disk-info.on.nopoint[data-v-7732abe2]{background-color:#ecf5ff}ul.disk-item .disk-children[data-v-7732abe2]{width:100%;color:#666}ul.disk-item .disk-children li.disk-children_item[data-v-7732abe2]{width:100%;height:40px;line-height:40px;padding-left:2rem;font-size:12px;cursor:pointer;display:flex;flex-wrap:nowrap;align-items:center;border-left:3px solid #89897f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ul.disk-item .disk-children li.disk-children_item[data-v-7732abe2]:hover{background-color:#ecf5ff}ul.disk-item .disk-children li.disk-children_item span[data-v-7732abe2]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}ul.disk-item .disk-children li.disk-children_item.on.on[data-v-7732abe2]{border-left:3px solid #ff9c08;background-color:#ecf5ff}@keyframes bganimation-6935a479{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6935a479{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6935a479{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6935a479]{animation:rotateEnter-6935a479 .7s;position:relative}.rotate-leave-active[data-v-6935a479]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6935a479]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes turn-6935a479{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.toast[data-v-6935a479]{position:fixed;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:space-around;box-sizing:content-box;width:100px;max-width:70%;padding:16px;color:#fff;font-size:14px;text-align:center;background-color:#000000b3;border-radius:8px;transform:translate3d(-50%,-50%,0);z-index:9999;transition:.3s;cursor:pointer}.toast div.icon[data-v-6935a479]{width:50px;height:50px;margin:15px 0;background:none!important}.toast div.icon svg[data-v-6935a479]{width:100%;height:100%}.toast div.icon svg path[data-v-6935a479]{fill:#fff}.toast .loading[data-v-6935a479]{animation:turn-6935a479 1s steps(12,end) infinite}.toast .message[data-v-6935a479]{display:block;width:100%;flex:0 0 100%;word-wrap:break-word}.action .action-footer button[data-v-d72e7026]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-d72e7026{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-d72e7026{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-d72e7026{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-d72e7026]{animation:rotateEnter-d72e7026 .7s;position:relative}.rotate-leave-active[data-v-d72e7026]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-d72e7026]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action.format[data-v-d72e7026]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.format .action-header[data-v-d72e7026]{width:100%;height:70px;line-height:70px}.action.format .action-header .action-header_title[data-v-d72e7026]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.format .action-body[data-v-d72e7026]{width:100%;height:calc(100% - 140px);overflow:auto}.action.format .action-footer[data-v-d72e7026]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action.format .action-footer .auto[data-v-d72e7026]{flex:auto}.action.format .disk-list[data-v-d72e7026]{width:100%;height:100%;border:1px solid #dfe1e5;overflow:auto}.action.format .label-item[data-v-d72e7026]{width:100%;margin:1rem 0}.action.format .label-item .label-item_key[data-v-d72e7026]{width:100%;font-size:16px;color:#666}.action.format .label-item .label-item_key span[data-v-d72e7026]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action.format .label-item .label-item_key span[data-v-d72e7026]:before{content:"*";color:#f56c6c;margin-right:4px}.action.format .label-item .label-item_value[data-v-d72e7026]{width:100%;margin-top:5px}.action.format .label-item .label-item_value select[data-v-d72e7026],.action.format .label-item .label-item_value input[data-v-d72e7026]{width:100%;height:36px}.action.format .label-item .label-item_path[data-v-d72e7026]{padding:0 14px;background-color:#e5e5e5;width:100%;height:28px;line-height:28px;margin-top:10px}.action.format .auto[data-v-d72e7026]{flex:auto}.action.format p.msg[data-v-d72e7026]{margin:.5rem 0;color:red}.action.format .disk-info[data-v-d72e7026]{width:100%;text-align:center}.action.format .disk-info .disk-info_icon[data-v-d72e7026]{width:100px;height:100px;margin:0 auto}.action.format .disk-info .disk-info_icon svg[data-v-d72e7026]{width:100%;height:100%}.action.format .disk-info .disk-info_mount-name[data-v-d72e7026]{margin:1rem 0;font-size:1.5em;color:#333}@keyframes bganimation-d72e7026{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-d72e7026{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-d72e7026{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-d72e7026]{animation:rotateEnter-d72e7026 .7s;position:relative}.rotate-leave-active[data-v-d72e7026]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-d72e7026]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action.result[data-v-d72e7026]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.result .action-body[data-v-d72e7026]{width:100%;height:100%;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.action.result .action-body .action-body_icon[data-v-d72e7026]{width:100px;height:100px}.action.result .action-body .action-body_icon svg.icon[data-v-d72e7026]{width:100%;height:100%}.action.result .action-body .action-body_msg[data-v-d72e7026]{font-size:2em;color:#666;text-align:center;width:100%;margin:1rem 0}.action.result .action-body .action-body_info[data-v-d72e7026]{margin:1rem 0;width:100%;text-align:center;color:#666;font-size:1.2em}.action.result .action-body .action-body_info a[data-v-d72e7026]{color:#0000fb}.action.result .btns[data-v-d72e7026]{width:100%;text-align:center;margin:1rem 0}@keyframes bganimation-d72e7026{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-d72e7026{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-d72e7026{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-d72e7026]{animation:rotateEnter-d72e7026 .7s;position:relative}.rotate-leave-active[data-v-d72e7026]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-d72e7026]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1000px){.action.format[data-v-d72e7026]{width:168%}}@media screen and (max-width: 900px){.action.format[data-v-d72e7026]{width:146%}}@media screen and (max-width: 800px){.action.format[data-v-d72e7026]{width:136%}}@media screen and (max-width: 700px){.action.format[data-v-d72e7026]{width:116%}}@media screen and (max-width: 500px){.action.format[data-v-d72e7026]{width:100%}}.action .action-footer button[data-v-0d1b6ac8]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-0d1b6ac8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0d1b6ac8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0d1b6ac8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0d1b6ac8]{animation:rotateEnter-0d1b6ac8 .7s;position:relative}.rotate-leave-active[data-v-0d1b6ac8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0d1b6ac8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action.list[data-v-0d1b6ac8]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.list .action-header[data-v-0d1b6ac8]{width:100%;height:70px;line-height:70px}.action.list .action-header .action-header_title[data-v-0d1b6ac8]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.list .action-body[data-v-0d1b6ac8]{width:100%;height:calc(100% - 176px)}.action.list .action-msg[data-v-0d1b6ac8]{width:100%;height:36px;line-height:36px;text-align:center}.action.list .action-footer[data-v-0d1b6ac8]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action.list .action-footer .auto[data-v-0d1b6ac8]{flex:auto}.action.list .disk-list[data-v-0d1b6ac8]{width:100%;height:100%;border:1px solid #dfe1e5;overflow:auto}@keyframes bganimation-0d1b6ac8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0d1b6ac8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0d1b6ac8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0d1b6ac8]{animation:rotateEnter-0d1b6ac8 .7s;position:relative}.rotate-leave-active[data-v-0d1b6ac8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0d1b6ac8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action.format[data-v-0d1b6ac8]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.format .action-header[data-v-0d1b6ac8]{width:100%;height:70px;line-height:70px}.action.format .action-header .action-header_title[data-v-0d1b6ac8]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.format .action-body[data-v-0d1b6ac8]{width:100%;height:calc(100% - 140px);overflow:auto}.action.format .action-footer[data-v-0d1b6ac8]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action.format .action-footer .auto[data-v-0d1b6ac8]{flex:auto}.action.format .disk-list[data-v-0d1b6ac8]{width:100%;height:100%;border:1px solid #dfe1e5;overflow:auto}.action.format .label-item[data-v-0d1b6ac8]{width:100%;margin:1rem 0}.action.format .label-item .label-item_key[data-v-0d1b6ac8]{width:100%;font-size:16px;color:#666}.action.format .label-item .label-item_key span[data-v-0d1b6ac8]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action.format .label-item .label-item_key span[data-v-0d1b6ac8]:before{content:"*";color:#f56c6c;margin-right:4px}.action.format .label-item .label-item_value[data-v-0d1b6ac8]{width:100%;margin-top:5px}.action.format .label-item .label-item_value select[data-v-0d1b6ac8],.action.format .label-item .label-item_value input[data-v-0d1b6ac8]{width:100%;height:36px}.action.format .auto[data-v-0d1b6ac8]{flex:auto}.action.format p.msg[data-v-0d1b6ac8]{margin:.5rem 0;color:red}.action.format .disk-info[data-v-0d1b6ac8]{width:100%;text-align:center}.action.format .disk-info .disk-info_icon[data-v-0d1b6ac8]{width:100px;height:100px;margin:0 auto}.action.format .disk-info .disk-info_icon svg[data-v-0d1b6ac8]{width:100%;height:100%}.action.format .disk-info .disk-info_mount-name[data-v-0d1b6ac8]{margin:1rem 0;font-size:1.5em;color:#333}@keyframes bganimation-0d1b6ac8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0d1b6ac8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0d1b6ac8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0d1b6ac8]{animation:rotateEnter-0d1b6ac8 .7s;position:relative}.rotate-leave-active[data-v-0d1b6ac8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0d1b6ac8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action.result[data-v-0d1b6ac8]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.result .action-header[data-v-0d1b6ac8]{width:100%;height:70px;line-height:70px}.action.result .action-header .action-header_title[data-v-0d1b6ac8]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.result .action-body[data-v-0d1b6ac8]{width:100%;height:calc(100% - 140px);overflow:auto}.action.result .action-body .format-result[data-v-0d1b6ac8]{width:100%;text-align:center;font-size:2em;color:#333;margin:1rem 0}.action.result .action-body .format-info[data-v-0d1b6ac8]{width:100%;text-align:center;font-size:1.3em}.action.result .action-body .format-info a[data-v-0d1b6ac8]{color:#f70324}.action.result .action-footer[data-v-0d1b6ac8]{width:100%;height:70px;line-height:70px;color:#333}.action.result .auto[data-v-0d1b6ac8]{flex:auto}@keyframes bganimation-0d1b6ac8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0d1b6ac8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0d1b6ac8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0d1b6ac8]{animation:rotateEnter-0d1b6ac8 .7s;position:relative}.rotate-leave-active[data-v-0d1b6ac8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0d1b6ac8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1000px){.action.list[data-v-0d1b6ac8]{width:136%}}@media screen and (max-width: 900px){.action.list[data-v-0d1b6ac8]{width:126%}}@media screen and (max-width: 800px){.action.list[data-v-0d1b6ac8]{width:112%}}@media screen and (max-width: 700px){.action.list[data-v-0d1b6ac8]{width:100%}}@media screen and (max-width: 500px){.action.list[data-v-0d1b6ac8]{width:80%}}@keyframes bganimation-5f6e53be{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-5f6e53be{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-5f6e53be{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-5f6e53be]{animation:rotateEnter-5f6e53be .7s;position:relative}.rotate-leave-active[data-v-5f6e53be]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-5f6e53be]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-5f6e53be]{width:700px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:1rem 87px;border-radius:6px}.action .action-body[data-v-5f6e53be]{width:100%;text-align:center;padding:3rem 0}.action .action-body h2.title[data-v-5f6e53be]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0;text-align:center}.action .action-body .info[data-v-5f6e53be]{color:#666;font-size:1.3em;margin:1rem 0}.action .action-body .btns[data-v-5f6e53be]{width:100%;margin-top:3rem}.action .action-body .btns button[data-v-5f6e53be]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-5f6e53be{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-5f6e53be{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-5f6e53be{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-5f6e53be]{animation:rotateEnter-5f6e53be .7s;position:relative}.rotate-leave-active[data-v-5f6e53be]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-5f6e53be]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1000px){.action.format .action-body h2.title[data-v-5f6e53be]{font-size:20px}}@media screen and (max-width: 900px){.action .action-body h2.title[data-v-5f6e53be]{font-size:20px}}@media screen and (max-width: 800px){.action .action-body h2.title[data-v-5f6e53be]{font-size:20px}}@media screen and (max-width: 700px){.action .action-body h2.title[data-v-5f6e53be]{font-size:20px}}@media screen and (max-width: 500px){.action .action-body h2.title[data-v-5f6e53be]{font-size:20px}}@keyframes bganimation-2eafa10c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-2eafa10c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-2eafa10c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-2eafa10c]{animation:rotateEnter-2eafa10c .7s;position:relative}.rotate-leave-active[data-v-2eafa10c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-2eafa10c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-2eafa10c]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action .action-header[data-v-2eafa10c]{width:100%;height:70px;line-height:70px}.action .action-header .action-header_title[data-v-2eafa10c]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action .action-body[data-v-2eafa10c]{width:100%;height:calc(100% - 140px);overflow:auto}.action .action-body .label-item[data-v-2eafa10c]{width:100%;margin:1rem 0}.action .action-body .label-item .label-item_key[data-v-2eafa10c]{width:100%;font-size:12px;color:#666}.action .action-body .label-item .label-item_key span[data-v-2eafa10c]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action .action-body .label-item .label-item_key span[data-v-2eafa10c]:before{content:"*";color:#f56c6c;margin-right:4px}.action .action-body .label-item .label-item_value[data-v-2eafa10c]{width:100%;margin-top:5px}.action .action-body .label-item .label-item_value select[data-v-2eafa10c],.action .action-body .label-item .label-item_value input[data-v-2eafa10c]{width:100%;height:36px}.action .action-footer[data-v-2eafa10c]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action .action-footer .auto[data-v-2eafa10c]{flex:auto}.action .action-footer button[data-v-2eafa10c]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-58844394{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-58844394{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-58844394{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-58844394]{animation:rotateEnter-58844394 .7s;position:relative}.rotate-leave-active[data-v-58844394]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-58844394]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-58844394]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action .action-header[data-v-58844394]{width:100%;height:70px;line-height:70px}.action .action-header .action-header_title[data-v-58844394]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action .action-body[data-v-58844394]{width:100%;height:calc(100% - 140px)}.action .action-body .label-item[data-v-58844394]{width:100%;margin:1rem 0}.action .action-body .label-item .label-item_key[data-v-58844394]{width:100%;font-size:12px;color:#666}.action .action-body .label-item .label-item_key span[data-v-58844394]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action .action-body .label-item .label-item_key span[data-v-58844394]:before{content:"*";color:#f56c6c;margin-right:4px}.action .action-body .label-item .label-item_value[data-v-58844394]{width:100%;margin-top:5px}.action .action-body .label-item .label-item_value select[data-v-58844394],.action .action-body .label-item .label-item_value input[data-v-58844394]{width:100%;height:36px}.action .action-body .samba-item[data-v-58844394]{margin-top:-18px;font-size:12px}.action .action-body .samba-item .samba-item_allow[data-v-58844394]{display:flex;align-items:flex-end}.action .action-body .samba-item .samba-item_allow .samba-allow[data-v-58844394]{padding-left:10px;cursor:pointer}.action .action-body .samba-item .samba-item_tips[data-v-58844394]{margin-top:10px}.action .action-body .samba-item .samba-item_tips .tooltip-trigger[data-v-58844394]{display:flex}.action .action-body .samba-item .samba-item_tips .samba_dir_tip[data-v-58844394]{margin-left:10px}.action .action-footer[data-v-58844394]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center;padding-bottom:30px}.action .action-footer .auto[data-v-58844394]{flex:auto}.action .action-footer button[data-v-58844394]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-1d64dea6{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-1d64dea6{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-1d64dea6{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-1d64dea6]{animation:rotateEnter-1d64dea6 .7s;position:relative}.rotate-leave-active[data-v-1d64dea6]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-1d64dea6]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-1d64dea6]{width:860px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:1rem 87px;border-radius:6px}.action h2.title[data-v-1d64dea6]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0;text-align:center}.action h3.desc[data-v-1d64dea6]{width:100%;display:block;color:#666;font-size:1.2em;padding:0;margin:1rem 0;text-align:center}.action form[data-v-1d64dea6]{width:100%;display:block;padding:2rem 0}.action form label[data-v-1d64dea6]{width:100%;display:block;margin:1rem 0}.action form label input[data-v-1d64dea6],.action form label select[data-v-1d64dea6]{width:100%;display:block;height:42px}.action .btns[data-v-1d64dea6]{width:100%;margin-top:3rem}.action .btns button[data-v-1d64dea6]{display:block;width:100%!important;margin:.5rem 0}.action li.disk-item[data-v-1d64dea6]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%;padding:5px 1rem;border-bottom:1px solid #eee;cursor:pointer}.action li.disk-item[data-v-1d64dea6]:hover{background-color:#eee}.action li.disk-item .disk-item_f[data-v-1d64dea6]{display:flex;flex-wrap:wrap}.action li.disk-item .disk-item_f .disk-item_venderModel[data-v-1d64dea6],.action li.disk-item .disk-item_f .disk-item_used[data-v-1d64dea6]{width:100%}.action .tips[data-v-1d64dea6]{float:right;font-size:.8em}@keyframes bganimation-1d64dea6{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-1d64dea6{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-1d64dea6{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-1d64dea6]{animation:rotateEnter-1d64dea6 .7s;position:relative}.rotate-leave-active[data-v-1d64dea6]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-1d64dea6]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 500px){.action h2.title[data-v-1d64dea6]{font-size:2em}}@keyframes bganimation-27ba49f9{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-27ba49f9{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-27ba49f9{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-27ba49f9]{animation:rotateEnter-27ba49f9 .7s;position:relative}.rotate-leave-active[data-v-27ba49f9]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-27ba49f9]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.aria2-item[data-v-27ba49f9]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.aria2-item .aria2-item_name[data-v-27ba49f9]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.aria2-item .aria2-item_value[data-v-27ba49f9]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}li.aria2-item .aria2-item_value .configure[data-v-27ba49f9]{color:#297ff3;padding:3px}li.aria2-item .aria2-item_value .configure.enabel[data-v-27ba49f9]{color:#888}.use-url_app[data-v-27ba49f9]{padding-bottom:14px}.use-url_app a[data-v-27ba49f9]{text-decoration:none;color:#297ff3}@keyframes bganimation-da46870e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-da46870e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-da46870e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-da46870e]{animation:rotateEnter-da46870e .7s;position:relative}.rotate-leave-active[data-v-da46870e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-da46870e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.qbittorrent-item[data-v-da46870e]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.qbittorrent-item .qbittorrent-item_name[data-v-da46870e]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.qbittorrent-item .qbittorrent-item_value[data-v-da46870e]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}li.qbittorrent-item .qbittorrent-item_value .configure[data-v-da46870e]{color:#297ff3;padding:3px}li.qbittorrent-item .qbittorrent-item_value .configure.enabel[data-v-da46870e]{color:#888}a[data-v-da46870e]{text-decoration:none;color:#297ff3}@keyframes bganimation-562f4f7e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-562f4f7e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-562f4f7e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-562f4f7e]{animation:rotateEnter-562f4f7e .7s;position:relative}.rotate-leave-active[data-v-562f4f7e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-562f4f7e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.transmission-item[data-v-562f4f7e]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.transmission-item .transmission-item_name[data-v-562f4f7e]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.transmission-item .transmission-item_value[data-v-562f4f7e]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}li.transmission-item .transmission-item_value .configure[data-v-562f4f7e]{color:#297ff3;padding:3px}li.transmission-item .transmission-item_value .configure.enabel[data-v-562f4f7e]{color:#888}a[data-v-562f4f7e]{text-decoration:none;color:#297ff3}@keyframes bganimation-7b328460{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-7b328460{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-7b328460{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-7b328460]{animation:rotateEnter-7b328460 .7s;position:relative}.rotate-leave-active[data-v-7b328460]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-7b328460]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-7b328460]{width:860px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;padding:1rem 87px;border-radius:6px}.action p[data-v-7b328460]{color:#999;font-size:14px}.action input[data-v-7b328460]{font-size:14px;font-family:PingFangSC-Regular,PingFang SC}.action h2.title[data-v-7b328460]{width:100%;color:#1e1e1e;font-size:22px;font-family:PingFangSC-Medium,PingFang SC;padding:0;margin:0;text-align:center}.action span[data-v-7b328460]{font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#000000d4;font-weight:700}.action form label[data-v-7b328460]{width:100%}.action form label input[data-v-7b328460],.action form label select[data-v-7b328460]{height:100%;font-size:14px}.action .myinput_wrap[data-v-7b328460],.action .RPC_input[data-v-7b328460]{width:85%}.action .myinput_wrap textarea[data-v-7b328460]{width:100%;padding:2px 3px;border:1px solid #dee2e6;border-radius:.25rem}.action .input_row[data-v-7b328460]{margin:16px 0;display:flex;justify-content:left;align-items:center}.action .input_row .radios[data-v-7b328460]{margin-right:10px}.action .input_row .radios input[data-v-7b328460],.action .input_row .radios label[data-v-7b328460]{cursor:pointer}.action .Tracker label[data-v-7b328460]{margin-right:10px;cursor:pointer}.action .Tracker_input[data-v-7b328460]{padding:6px 2px}.action .btns[data-v-7b328460]{width:100%;margin:42px auto 0}.action .btns button[data-v-7b328460]{display:block;width:100%!important;margin:.5rem 0}.action .tooltip-trigger[data-v-7b328460]{position:relative;display:inline-block;cursor:help;margin-right:6px}.action .tooltip-trigger .tooltip-text[data-v-7b328460]{visibility:hidden;position:absolute;padding:.5rem 1rem;background-color:#555;color:#fff;text-align:center;border-radius:6px;z-index:1;opacity:0;transition:opacity .6s}.action .tooltip-trigger .tooltip-text span[data-v-7b328460]{color:#fff}.action .tooltip-trigger .tooltip-text .dowload_dir_tip[data-v-7b328460]{min-width:14rem;display:inline-block}.action .tooltip-trigger:hover .tooltip-text[data-v-7b328460]{visibility:visible;opacity:1}.action .tooltip-top[data-v-7b328460]{bottom:100%;left:50%;margin-bottom:5px;transform:translate(-50%)}.action .tooltip-bottom[data-v-7b328460]{top:100%;left:50%;margin-top:5px;transform:translate(-50%)}.action .tooltip-bottom .dowload_rpc_tip[data-v-7b328460]{min-width:10rem;display:inline-block}.action .tooltip-right[data-v-7b328460]{top:50%;left:100%;margin-left:5px;transform:translateY(-50%)}.action .tooltip-left[data-v-7b328460]{top:50%;right:100%;margin-right:5px;transform:translateY(-50%)}.action .tooltip-top[data-v-7b328460]:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.action .tooltip-bottom[data-v-7b328460]:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}.action .successed[data-v-7b328460]{text-align:center;font-size:14px}.action .finished[data-v-7b328460]{display:flex;justify-content:center;margin:80px 80px 28px}.left[data-v-7b328460]{display:flex;align-items:center;justify-content:flex-start;width:110px;flex:none}.select-editable[data-v-7b328460]{position:relative;border:1px solid #dee2e6;border-radius:.25rem;margin:.25rem .1rem}.select-editable select[data-v-7b328460]{top:0;left:0;font-size:14px;border:none;width:100%;margin:0}.select-editable input[data-v-7b328460]{position:absolute;top:-4px;left:0;width:95%;padding:1px;font-size:14px;border:none}.select-editable select[data-v-7b328460]:focus,.select-editable input[data-v-7b328460]:focus{outline:none}[data-v-7b328460]::placeholder{color:#999}@keyframes bganimation-7b328460{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-7b328460{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-7b328460{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-7b328460]{animation:rotateEnter-7b328460 .7s;position:relative}.rotate-leave-active[data-v-7b328460]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-7b328460]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 500px){.action[data-v-7b328460]{width:100%}.action .input_row[data-v-7b328460]{display:block}.action .input_row .myinput_wrap[data-v-7b328460],.action .input_row .RPC_input[data-v-7b328460]{width:100%}}@keyframes bganimation-5ebde5ac{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-5ebde5ac{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-5ebde5ac{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-5ebde5ac]{animation:rotateEnter-5ebde5ac .7s;position:relative}.rotate-leave-active[data-v-5ebde5ac]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-5ebde5ac]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-5ebde5ac]{width:1.3rem;height:1.3rem}.icon1[data-v-5ebde5ac]{width:1rem;height:1rem}.icon2[data-v-5ebde5ac]{width:1.5rem;height:1.5rem;margin-bottom:12px}[data-v-5ebde5ac] .downloadIcon path{fill:var(--app-container_title-color)!important}a[data-v-5ebde5ac]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-5ebde5ac]{color:#333;margin-top:20px;margin-bottom:20px;font-weight:400}.content .tab[data-v-5ebde5ac]{display:flex;gap:8px}.content .tab .item[data-v-5ebde5ac]{flex:1;padding:16px;display:flex;flex-direction:column;align-items:center;border-radius:10px;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.content .tab .item .title[data-v-5ebde5ac]{margin-bottom:8px}.content .tab .item>span[data-v-5ebde5ac]{font-size:12px}.content .tab .active[data-v-5ebde5ac]{border:2px solid #6d6d6d}.content .tab .cloud[data-v-5ebde5ac]{background-color:#fff7ed;color:#ca3500}.content .tab .memory[data-v-5ebde5ac]{background-color:#f9fafb;color:#364153}.content .tab .network[data-v-5ebde5ac]{background-color:#f0fdfa;color:#277881}.btn_settings[data-v-5ebde5ac]{position:relative;padding:6px 34px 6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-5ebde5ac]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-5ebde5ac]{transform:rotate(90deg)}@keyframes bganimation-5ebde5ac{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-5ebde5ac{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-5ebde5ac{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-5ebde5ac]{animation:rotateEnter-5ebde5ac .7s;position:relative}.rotate-leave-active[data-v-5ebde5ac]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-5ebde5ac]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.content[data-v-5ebde5ac]{margin:10px 0}}@keyframes bganimation-46dd945e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-46dd945e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-46dd945e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-46dd945e]{animation:rotateEnter-46dd945e .7s;position:relative}.rotate-leave-active[data-v-46dd945e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-46dd945e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}h3[data-v-46dd945e]{text-align:center;margin-bottom:20px}.label-item[data-v-46dd945e]{display:flex;align-items:center;flex-wrap:wrap;margin:1rem 0;padding:0 30px}.label-item label[data-v-46dd945e]{display:flex;flex-wrap:wrap;align-items:center;width:100%;height:26px;line-height:26px;cursor:pointer}.label-item label input[type=radio][data-v-46dd945e]{top:0;right:0;vertical-align:middle}.label-item label span[data-v-46dd945e]{font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#000000d4;display:inline-block;margin-left:10px}.label-item p.label_info[data-v-46dd945e]{color:#999;font-size:12px;padding-left:24px;line-height:20px}.label-item .label-item_key[data-v-46dd945e]{display:flex;flex-wrap:wrap;align-items:center}.label-item .label-item_key .ddnsto_serve[data-v-46dd945e]{flex:0 0 100%;display:flex;justify-content:space-between;margin-bottom:14px}.label-item .label-item_key .ddnsto_serve_item[data-v-46dd945e]{flex:0 0 100%;display:flex;justify-content:space-between}@keyframes bganimation-b760733a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b760733a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b760733a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b760733a]{animation:rotateEnter-b760733a .7s;position:relative}.rotate-leave-active[data-v-b760733a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b760733a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-container_body[data-v-b760733a]{display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.actioner-container_body svg.icon[data-v-b760733a]{width:100px;height:100px}.actioner-container_body .body-title[data-v-b760733a]{width:100%;display:block;color:#1e1e1e;font-size:2em;padding:0;margin:1rem 0;text-align:center}.actioner-container_body .body-tips[data-v-b760733a]{text-align:center}.actioner-container_body .body-info[data-v-b760733a]{color:#666;font-size:1.3em;margin:1rem 0;width:100%;text-align:center}.actioner-container_body .body-tips[data-v-b760733a]{margin:1rem 0;display:block;width:100%}.actioner-container_body .body-btns[data-v-b760733a]{width:100%;margin-top:3rem}.actioner-container_body .body-btns button[data-v-b760733a]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-064efd50{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-064efd50{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-064efd50{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-064efd50]{animation:rotateEnter-064efd50 .7s;position:relative}.rotate-leave-active[data-v-064efd50]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-064efd50]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}iframe[data-v-064efd50]{width:100%;height:100%;border:none}@keyframes bganimation-49c43a08{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-49c43a08{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-49c43a08{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-49c43a08]{animation:rotateEnter-49c43a08 .7s;position:relative}.rotate-leave-active[data-v-49c43a08]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-49c43a08]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}iframe[data-v-49c43a08]{width:100%;height:100%;border:none}@keyframes bganimation-27f65f12{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-27f65f12{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-27f65f12{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-27f65f12]{animation:rotateEnter-27f65f12 .7s;position:relative}.rotate-leave-active[data-v-27f65f12]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-27f65f12]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-container_body[data-v-27f65f12]{display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.actioner-container_body svg.icon[data-v-27f65f12]{width:100px;height:100px}.actioner-container_body .body-title[data-v-27f65f12]{width:100%;display:block;color:#1e1e1e;font-size:2em;padding:0;margin:1rem 0;text-align:center}.actioner-container_body .body-info[data-v-27f65f12]{color:#666;font-size:1.3em;margin:1rem 0;width:100%}.actioner-container_body .body-tips[data-v-27f65f12]{margin:1rem 0;display:block;width:100%}.actioner-container_body .body-btns[data-v-27f65f12]{width:100%;margin-top:3rem}.actioner-container_body .body-btns button[data-v-27f65f12]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-210c03e8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-210c03e8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-210c03e8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-210c03e8]{animation:rotateEnter-210c03e8 .7s;position:relative}.rotate-leave-active[data-v-210c03e8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-210c03e8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-container_body[data-v-210c03e8]{display:flex;align-items:center;justify-content:center}@keyframes bganimation-1b21487b{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-1b21487b{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-1b21487b{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-1b21487b]{animation:rotateEnter-1b21487b .7s;position:relative}.rotate-leave-active[data-v-1b21487b]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-1b21487b]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-container_body[data-v-1b21487b]{display:flex;align-items:center;justify-content:center}@keyframes bganimation-7a6bd385{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-7a6bd385{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-7a6bd385{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-7a6bd385]{animation:rotateEnter-7a6bd385 .7s;position:relative}.rotate-leave-active[data-v-7a6bd385]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-7a6bd385]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action-main[data-v-7a6bd385]{width:680px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.action-main[data-v-7a6bd385] .actioner-container{width:100%}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_header{width:100%;height:50px;line-height:50px;display:flex;flex-wrap:wrap;align-items:center;font-size:20px;border-bottom:1px solid #eee;justify-content:center;padding:0 10px}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_footer{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_footer button{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_footer .close{min-width:65px;font-weight:400;color:#0060ff;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_footer .next{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:74px;height:32px;background:#553AFE;border-radius:2px}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_footer .next:hover,.action-main[data-v-7a6bd385] .actioner-container .actioner-container_footer .close:hover{opacity:.9}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_body{padding:1rem;text-align:center;width:100%;height:400px}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_body a{text-decoration:none}.action-main[data-v-7a6bd385] .actioner-container .actioner-container_body.ddnsto-bind{height:280px}@keyframes bganimation-7a6bd385{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-7a6bd385{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-7a6bd385{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-7a6bd385]{animation:rotateEnter-7a6bd385 .7s;position:relative}.rotate-leave-active[data-v-7a6bd385]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-7a6bd385]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 800px){.action-main[data-v-7a6bd385]{width:90%}}@keyframes bganimation-05611967{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-05611967{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-05611967{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-05611967]{animation:rotateEnter-05611967 .7s;position:relative}.rotate-leave-active[data-v-05611967]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-05611967]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-05611967]{width:500px;max-height:90%;background-color:#fff;position:relative;z-index:99999;margin:auto;border-radius:4px;padding:10px 0}.action .action-header[data-v-05611967]{width:100%;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;padding-left:1rem;padding-right:1rem;text-align:left;font-size:18px;line-height:1;color:#303133}.action .action-body[data-v-05611967]{display:block;margin:2rem 0;line-height:24px;padding:0 15px;color:#606266;font-size:14px}.action .action-footer[data-v-05611967]{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action .next[data-v-05611967]{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:120px;height:32px;background:#553AFE;border-radius:2px}.action .next[data-v-05611967]:hover{opacity:.8}.action .clear[data-v-05611967]{min-width:65px;font-weight:400;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action .clear[data-v-05611967]:hover{opacity:.8}@keyframes bganimation-6e29e960{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6e29e960{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6e29e960{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6e29e960]{animation:rotateEnter-6e29e960 .7s;position:relative}.rotate-leave-active[data-v-6e29e960]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6e29e960]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.title_info[data-v-6e29e960]{display:block;width:100%;text-align:center}.title_info p[data-v-6e29e960]{font-size:20px;margin-bottom:10px}.label-item[data-v-6e29e960]{width:100%;margin:1rem 0}.label-item .label-item_key[data-v-6e29e960]{width:100%;font-size:12px;color:#666}.label-item .label-item_key span[data-v-6e29e960]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-6e29e960]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-6e29e960]{width:100%;margin-top:5px}.label-item .label-item_value select[data-v-6e29e960],.label-item .label-item_value input[data-v-6e29e960]{width:100%;height:36px;color:#000}.label-item .label-item_value input[data-v-6e29e960]::placeholder{color:#999;font-size:12PX}.label-item .label_tips[data-v-6e29e960]{display:flex;margin-top:6px}.label-item .label_tips .info[data-v-6e29e960]{margin-left:8px}.label-message[data-v-6e29e960]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}@keyframes bganimation-6f1d92d9{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6f1d92d9{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6f1d92d9{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6f1d92d9]{animation:rotateEnter-6f1d92d9 .7s;position:relative}.rotate-leave-active[data-v-6f1d92d9]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6f1d92d9]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action-main[data-v-6f1d92d9]{width:680px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.action-main[data-v-6f1d92d9] .actioner-container{width:100%}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_header{width:100%;height:50px;line-height:50px;display:flex;flex-wrap:wrap;align-items:center;font-size:20px;border-bottom:1px solid #eee;justify-content:center;padding:0 10px}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_footer{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_footer button{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_footer .close{min-width:65px;font-weight:400;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_footer .next{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:74px;height:32px;background:#553AFE;border-radius:2px}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_footer .next.save{height:32px;background:#553AFE;border-radius:2px;line-height:16px}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_footer .next:hover,.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_footer .close:hover{opacity:.9}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_body{padding:1rem;width:100%;height:400px}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_body a{text-decoration:none}.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_body.ali,.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_body.dnspod,.action-main[data-v-6f1d92d9] .actioner-container .actioner-container_body.oray{height:451px}@keyframes bganimation-6f1d92d9{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6f1d92d9{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6f1d92d9{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6f1d92d9]{animation:rotateEnter-6f1d92d9 .7s;position:relative}.rotate-leave-active[data-v-6f1d92d9]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6f1d92d9]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 800px){.action-main[data-v-6f1d92d9]{width:90%}}@keyframes bganimation-134135a2{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-134135a2{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-134135a2{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-134135a2]{animation:rotateEnter-134135a2 .7s;position:relative}.rotate-leave-active[data-v-134135a2]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-134135a2]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}[data-v-134135a2] .footer-btn{background:var(--card-bg-color);border:1px solid var(--btn-border-color)}[data-v-134135a2] .reusable-card{background:#fff5ee!important;border:1px solid #ffd6a7!important}[data-v-134135a2] .earthIcon path{fill:var(--app-container_title-color)!important}.icon[data-v-134135a2]{width:1.3rem;height:1.3rem}.icon1[data-v-134135a2]{width:1rem;height:1rem}.icon2[data-v-134135a2]{width:1.5rem;height:1.5rem;margin-bottom:8px}.icon3[data-v-134135a2]{width:1.5rem;height:1.5rem;cursor:pointer}a[data-v-134135a2]{text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-134135a2]{color:#333;margin-top:20px;margin-bottom:20px;font-weight:400;padding:0 12px}.content .tab[data-v-134135a2]{display:flex;gap:8px}.content .tab .item[data-v-134135a2]{flex:1;padding:16px;display:flex;flex-direction:column;align-items:center;border-radius:10px;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.content .tab .item .title[data-v-134135a2]{margin-bottom:8px}.content .tab .item>span[data-v-134135a2]{font-size:12px}.content .tab .active[data-v-134135a2]{border:2px solid #6d6d6d}.content .tab .cloud[data-v-134135a2]{background-color:#eff6ff;color:#1447e6}.content .tab .memory[data-v-134135a2]{background-color:#f0fdf4;color:#008236}.content .tab .network[data-v-134135a2]{background-color:#f9fafb;color:#4a5565}.content .info[data-v-134135a2]{margin-top:20px}.content .info .status[data-v-134135a2]{padding:20px 0 0;margin-top:16px;display:flex;justify-content:space-between;border-top:1px solid var(--btn-border-color)}.content .info .status .offline[data-v-134135a2]{background:#eceef2;color:#030213}.content .info .status>div[data-v-134135a2]{color:var(--app-container_title-color);font-size:16px}.content .info .status>span[data-v-134135a2]{color:#fff;padding:4px 8px;background:#030213;border-radius:6px;font-size:12px}.content .info .title_box[data-v-134135a2]{margin:20px 0}.content .info .title_box .title[data-v-134135a2]{color:var(--item-label_key-span-color);margin-bottom:10px}.content .info .title_box .path[data-v-134135a2]{display:flex;align-items:center;justify-content:space-between;border:1px solid #e0e1e1;background:#f9fafb;border-radius:4px;padding:8px 10px}.content .info .title_box .path>span[data-v-134135a2]{display:inline-block;padding:4px 8px;border:1px solid #553afb;font-size:12px;border-radius:4px;cursor:pointer;flex-shrink:0}.content .info .title_box .path>span>a[data-v-134135a2]{color:#553afb}.btn_settings[data-v-134135a2]{padding:6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}@keyframes bganimation-134135a2{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-134135a2{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-134135a2{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-134135a2]{animation:rotateEnter-134135a2 .7s;position:relative}.rotate-leave-active[data-v-134135a2]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-134135a2]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.content[data-v-134135a2]{margin:10px 0 0;padding:4px}.content .info[data-v-134135a2]{margin-top:10px}.content .info .status[data-v-134135a2]{padding-top:10px}.content .info .title_box[data-v-134135a2]{margin:10px 0}}@keyframes bganimation-47c7bd93{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-47c7bd93{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-47c7bd93{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-47c7bd93]{animation:rotateEnter-47c7bd93 .7s;position:relative}.rotate-leave-active[data-v-47c7bd93]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-47c7bd93]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-47c7bd93]{width:1.5rem;height:1.5rem;margin-right:6px}.display_flex[data-v-47c7bd93]{display:flex;align-items:center}.network_container[data-v-47c7bd93]{border:1px solid var(--border-color);border-radius:10px;padding:20px 14px;box-sizing:border-box;background-clip:padding-box;background:var(--card-bg-color);height:100%;display:flex;flex-direction:column;min-height:0}.network_container .title_box[data-v-47c7bd93]{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;flex-shrink:0}.network_container .title_box>span[data-v-47c7bd93]{font-size:16px;font-weight:600}.network_container .title_box .network_tag[data-v-47c7bd93]{display:flex;align-items:center}.network_container .title_box .network_tag .tag_item[data-v-47c7bd93]{display:flex;align-items:center;font-size:12px;margin-left:16px}.network_container .title_box .network_tag .tag_item>span[data-v-47c7bd93]{line-height:1}.network_container .title_box .network_tag .tag_item>div[data-v-47c7bd93]{width:12px;height:12px;border-radius:50%;margin-right:6px}.network_container .title_box .network_tag .tag_item .tag_dn[data-v-47c7bd93]{background:#20c7f7}.network_container .title_box .network_tag .tag_item .tag_up[data-v-47c7bd93]{background:#553afe}.network_container .echart[data-v-47c7bd93]{flex:1;min-height:200px;min-width:0}.network_container .speed[data-v-47c7bd93]{display:flex;flex-shrink:0}.network_container .speed .speed_item[data-v-47c7bd93]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.network_container .speed .speed_item>span[data-v-47c7bd93]{font-size:12px;color:#999;margin-bottom:10px}.network_container .speed .speed_item>div[data-v-47c7bd93]{font-size:16px;color:#333}.speed_box[data-v-47c7bd93]{display:flex;align-items:center;justify-content:flex-end;margin-top:16px}@keyframes bganimation-47c7bd93{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-47c7bd93{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-47c7bd93{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-47c7bd93]{animation:rotateEnter-47c7bd93 .7s;position:relative}.rotate-leave-active[data-v-47c7bd93]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-47c7bd93]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.network_container[data-v-47c7bd93]{border-radius:6px;padding:10px}.network_container .title_box[data-v-47c7bd93]{margin-bottom:16px}.network_container .title_box>span[data-v-47c7bd93]{font-size:14px;font-weight:600}}@keyframes bganimation-5cff2770{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-5cff2770{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-5cff2770{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-5cff2770]{animation:rotateEnter-5cff2770 .7s;position:relative}.rotate-leave-active[data-v-5cff2770]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-5cff2770]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-dns[data-v-5cff2770]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-5cff2770]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_body[data-v-5cff2770]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .label-item[data-v-5cff2770]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-5cff2770]{width:100%;font-size:12px;color:#666}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-5cff2770]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-5cff2770]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-5cff2770]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-5cff2770],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-5cff2770]{width:100%;height:36px}.actioner-dns .actioner-dns_body .label-message[data-v-5cff2770]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .config-message[data-v-5cff2770]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-5cff2770]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-5cff2770]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-5cff2770{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-5cff2770{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-5cff2770{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-5cff2770]{animation:rotateEnter-5cff2770 .7s;position:relative}.rotate-leave-active[data-v-5cff2770]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-5cff2770]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1400px){.actioner-dns .actioner-dns_body[data-v-5cff2770]{min-height:34vh}}@media screen and (max-width: 800px){.actioner-dns[data-v-5cff2770]{width:100%}}@keyframes bganimation-3f8f9931{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3f8f9931{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3f8f9931{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3f8f9931]{animation:rotateEnter-3f8f9931 .7s;position:relative}.rotate-leave-active[data-v-3f8f9931]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3f8f9931]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-dns[data-v-3f8f9931]{width:800px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-3f8f9931]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_body[data-v-3f8f9931]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .label-item[data-v-3f8f9931]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-3f8f9931]{width:100%;font-size:12px;color:#666}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-3f8f9931]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-3f8f9931]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-3f8f9931]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-3f8f9931],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-3f8f9931]{height:36px}.actioner-dns .actioner-dns_body .label-message[data-v-3f8f9931]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .config-message[data-v-3f8f9931]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-3f8f9931]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-3f8f9931]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.actioner-dns .select-editable[data-v-3f8f9931]{position:relative;border:solid grey 1px;width:100%}.actioner-dns .select-editable select[data-v-3f8f9931]{top:0;left:0;font-size:14px;border:none;width:100%;margin:0}.actioner-dns .select-editable input[data-v-3f8f9931]{position:absolute;top:-4px;left:0;width:95%;padding:1px;font-size:14px;border:none}.actioner-dns .select-editable select[data-v-3f8f9931]:focus,.actioner-dns .select-editable input[data-v-3f8f9931]:focus{outline:none}.actioner-dns[data-v-3f8f9931] ::placeholder{color:#999}.successed[data-v-3f8f9931]{text-align:center;font-size:14px;margin-bottom:104px}.finished[data-v-3f8f9931]{display:flex;justify-content:center;margin:80px 80px 28px}.docker_moves[data-v-3f8f9931]{text-align:center}.docker_moves .moves[data-v-3f8f9931]{margin-top:10px}.docker_moves .moves input[data-v-3f8f9931]{cursor:pointer}.docker_moves .moves label[data-v-3f8f9931]{margin-left:10px;cursor:pointer}.btns[data-v-3f8f9931]{text-align:center}.item_info[data-v-3f8f9931]{margin-left:10px}.softsource_tit[data-v-3f8f9931]{margin:0 auto}.softsource_successed[data-v-3f8f9931]{width:20%!important}@keyframes bganimation-3f8f9931{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3f8f9931{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3f8f9931{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3f8f9931]{animation:rotateEnter-3f8f9931 .7s;position:relative}.rotate-leave-active[data-v-3f8f9931]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3f8f9931]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1400px){.actioner-dns .actioner-dns_body[data-v-3f8f9931]{min-height:34vh}}@media screen and (max-width: 860px){.actioner-dns[data-v-3f8f9931]{width:100%}}@keyframes bganimation-24e35542{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-24e35542{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-24e35542{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-24e35542]{animation:rotateEnter-24e35542 .7s;position:relative}.rotate-leave-active[data-v-24e35542]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-24e35542]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-24e35542]{width:1.5rem;height:1.5rem}[data-v-24e35542] .networkIcon path{fill:var(--app-container_title-color)!important}.flex[data-v-24e35542]{display:flex;align-items:center}.info_content[data-v-24e35542]{margin:12px 0 4px;height:100%;display:flex;flex-direction:column;justify-content:space-between}.info_content .status_box[data-v-24e35542]{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--border-color);font-size:14px;line-height:1;margin-bottom:6px}.info_content .status_box .status_name[data-v-24e35542]{display:flex;align-items:center;line-height:1}.info_content .status_box .status_name .icon[data-v-24e35542]{width:1rem;height:1rem;margin-right:6px}.info_content .status_box .status_time[data-v-24e35542]{padding:4px 8px;background:#dbfce7;color:#008236;border-radius:4px}.info_content .ip_item[data-v-24e35542]{display:flex;justify-content:space-between;align-items:center}.info_content .ip_item .ip_action[data-v-24e35542]{display:flex;align-items:center;gap:8px}.info_content .ip_item .ip_tag[data-v-24e35542]{padding:3px 6px;border-radius:6px;border:1px solid #d1d5db;font-size:12px;line-height:1;display:flex;align-items:center}.info_content .ip_item .ip_tag>svg[data-v-24e35542]{width:1.3rem;height:1.3rem;vertical-align:middle;margin-right:4px}.info_content .ip_item .device[data-v-24e35542]{font-size:14px;color:#155dfc}.info_content .ip_item .delay[data-v-24e35542]{font-size:14px;color:#00a663}.info_content .ip_item .download[data-v-24e35542]{font-size:14px;color:var(--item-label_key-span-color)}.info_content .line[data-v-24e35542]{width:100%;height:1px;background:var(--btn-border-color);margin-bottom:20px}.info_content .line1[data-v-24e35542]{width:100%;height:1px;background:var(--btn-border-color);margin:20px 0}.info_content .ip_item[data-v-24e35542]:nth-last-child(1){margin-top:20px}.info_content .ip_info[data-v-24e35542]{min-height:60px;display:flex;flex-direction:column;justify-content:flex-end}.info_content .ip_info .ip_address[data-v-24e35542]{color:var(--item-label_key-span-color);margin-top:10px}.device-manage-btn[data-v-24e35542]{border:1px solid var(--btn-border-color);border-radius:6px;background:var(--card-bg-color);color:var(--app-container_title-color);padding:8px 10px 6px;line-height:1;font-size:12px;cursor:pointer;transition:background .2s,transform .1s;display:inline-flex;align-items:center;gap:6px}.device-manage-btn[data-v-24e35542]:hover{background:var(--btn-border-hover-color)}.device-manage-btn[data-v-24e35542]:active{transform:scale(.97)}.device-manage-icon[data-v-24e35542]{width:14px;height:14px;display:inline-block}.btn-primary[data-v-24e35542]{background-color:#00b8db;color:#fff;border:none;padding:3px 16px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s,transform .1s;margin-left:6px}.btn-primary[data-v-24e35542]:hover{background-color:#26a7c7}.btn-primary[data-v-24e35542]:active{transform:scale(.95)}.btn-pink[data-v-24e35542]{background-color:#f751a9;color:#fff;border:none;padding:3px 12px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s,transform .1s;margin-left:6px}.btn-pink[data-v-24e35542]:hover{background-color:#e60076}.btn-pink[data-v-24e35542]:active{transform:scale(.95)}@keyframes bganimation-24e35542{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-24e35542{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-24e35542{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-24e35542]{animation:rotateEnter-24e35542 .7s;position:relative}.rotate-leave-active[data-v-24e35542]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-24e35542]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.flex[data-v-24e35542]{flex-direction:column;align-items:flex-start}}@keyframes bganimation-3ebe4ebd{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3ebe4ebd{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3ebe4ebd{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3ebe4ebd]{animation:rotateEnter-3ebe4ebd .7s;position:relative}.rotate-leave-active[data-v-3ebe4ebd]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3ebe4ebd]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-3ebe4ebd]{width:1.3rem;height:1.3rem}.icon1[data-v-3ebe4ebd],.icon2[data-v-3ebe4ebd]{width:1rem;height:1rem}[data-v-3ebe4ebd] .interfaceIcon path{fill:var(--app-container_title-color)!important}[data-v-3ebe4ebd] .footer-btn{margin-top:6px}.content[data-v-3ebe4ebd]{margin-top:6px;padding-bottom:16px;min-height:30px;display:flex;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable both-edges;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}.content[data-v-3ebe4ebd]::-webkit-scrollbar{height:6px}.content[data-v-3ebe4ebd]::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.content .item[data-v-3ebe4ebd]{position:relative;display:inline-flex;align-items:center;padding-right:20px;margin-right:16px;cursor:pointer}.content .item[data-v-3ebe4ebd]:before{content:"";display:inline-block;position:absolute;right:0;top:50%;transform:translateY(-50%);width:1px!important;height:60%;background:#e0e0e0}.content .item[data-v-3ebe4ebd]:last-child:before{content:none}.content .icon_box[data-v-3ebe4ebd]{display:inline-flex;justify-content:center;align-items:center;width:30px;height:30px;border-radius:8px;background:#dbfce7;margin-right:12px}.content .name[data-v-3ebe4ebd]{display:flex;align-items:center;margin-bottom:6px}.content .speed[data-v-3ebe4ebd]{padding:4px 6px;background:#dbfce7;font-size:12px;border-radius:6px;line-height:1;color:#008236;margin-left:8px}.content .status[data-v-3ebe4ebd]{font-size:12px;color:#6a7282}.content>*[data-v-3ebe4ebd]{flex:0 0 auto}[data-v-3ebe4ebd] .content::-webkit-scrollbar{height:8px}[data-v-3ebe4ebd] .content::-webkit-scrollbar-thumb{border-radius:4px;background:rgba(0,0,0,.35)}[data-v-3ebe4ebd] .content::-webkit-scrollbar-track{background:transparent}.btn_settings[data-v-3ebe4ebd]{position:relative;padding:6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-3ebe4ebd]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-3ebe4ebd]{transform:rotate(90deg)}.row input[type=checkbox][data-v-3ebe4ebd]{vertical-align:middle;margin:0}.row[data-v-3ebe4ebd]{gap:8px;padding:0;margin:6px 0;display:flex;align-items:center}.row>input[data-v-3ebe4ebd]{margin-right:6px!important;margin-top:0}[data-v-3ebe4ebd] .dropdown-menu div:hover{background:transparent!important}[data-v-3ebe4ebd] .dropdown-menu{padding:8px 0}[data-v-3ebe4ebd] .dropdown-menu>div{padding:0}@keyframes bganimation-3ebe4ebd{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3ebe4ebd{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3ebe4ebd{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3ebe4ebd]{animation:rotateEnter-3ebe4ebd .7s;position:relative}.rotate-leave-active[data-v-3ebe4ebd]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3ebe4ebd]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes bganimation-58f520f0{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-58f520f0{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-58f520f0{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-58f520f0]{animation:rotateEnter-58f520f0 .7s;position:relative}.rotate-leave-active[data-v-58f520f0]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-58f520f0]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.feature-card[data-v-58f520f0]{flex:1 1 0;min-width:280px;max-width:350px;padding:14px 14px 20px;border:2px solid var(--border-color);border-radius:10px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;background-color:var(--card-bg-color);display:flex;align-items:flex-start;justify-content:space-between}.feature-card[data-v-58f520f0]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.feature-card .badge[data-v-58f520f0]{font-size:12px;padding:4px 6px;border-radius:6px;color:#fff;line-height:1}.feature-card .header[data-v-58f520f0]{display:flex;align-items:center;gap:6px;margin-bottom:16px}.feature-card .header .icon-wrapper[data-v-58f520f0]{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background-color:#999;color:#fff}.feature-card .header .icon-wrapper .icon-svg[data-v-58f520f0]{width:24px;height:24px}.feature-card .content .title[data-v-58f520f0]{font-weight:700;color:var(--item-label_key-span-color);margin-bottom:8px}.feature-card .content .subtitle[data-v-58f520f0]{font-size:14px;color:#666;margin-top:2px}.feature-card .footer[data-v-58f520f0]{display:flex;align-items:center;margin-top:12px;font-size:12px}.feature-card .footer .status[data-v-58f520f0]{padding:4px 6px;border-radius:6px;background-color:#eee;color:#666;line-height:1;margin-right:6px}.feature-card .footer .status.active[data-v-58f520f0]{background-color:#d3f9d8;color:#38a169}.feature-card .footer .extra[data-v-58f520f0]{color:inherit}.feature-card .footer .extra .extra_num[data-v-58f520f0]{font-size:16px}.feature-card .right-arrow[data-v-58f520f0]{width:18px;height:18px;align-self:center}.feature-card.purple .icon-wrapper[data-v-58f520f0]{background-color:#ad46ff}.feature-card.purple .badge[data-v-58f520f0]{background-color:#f3e8ff;color:#8200db}.feature-card.blue .icon-wrapper[data-v-58f520f0]{background-color:#3b82f6}.feature-card.blue .badge[data-v-58f520f0]{background-color:#e6effe;color:#3b82f6}.feature-card.blue .right-arrow[data-v-58f520f0]{opacity:.8;width:18px;height:18px}.feature-card.green .icon-wrapper[data-v-58f520f0],.feature-card.green .badge[data-v-58f520f0]{background-color:#22c55e}.feature-card.pink .icon-wrapper[data-v-58f520f0]{background-color:#ec4899}.feature-card.pink .badge[data-v-58f520f0]{background-color:#f6339a}.feature-card.pink .right-arrow[data-v-58f520f0]{color:#f6349b;opacity:.7}.feature-card.skyblue .icon-wrapper[data-v-58f520f0]{background-color:#615fff}.feature-card.skyblue .badge[data-v-58f520f0]{background-color:#e0e7ff;color:#432dd7}.feature-card.orange .icon-wrapper[data-v-58f520f0],.feature-card.orange .badge[data-v-58f520f0]{background-color:#f97316}@keyframes bganimation-58f520f0{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-58f520f0{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-58f520f0{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-58f520f0]{animation:rotateEnter-58f520f0 .7s;position:relative}.rotate-leave-active[data-v-58f520f0]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-58f520f0]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.feature-card[data-v-58f520f0]{min-width:180px;padding:10px;border-radius:6px;border:1px solid #e5e5e5;transition:none}.feature-card[data-v-58f520f0]:hover{transform:none;box-shadow:none}.feature-card .header[data-v-58f520f0]{margin-bottom:8px}.feature-card .content .title[data-v-58f520f0]{font-weight:700;color:#333;margin-bottom:4px}.feature-card .footer[data-v-58f520f0]{margin-top:6px}}@keyframes bganimation-22104807{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-22104807{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-22104807{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-22104807]{animation:rotateEnter-22104807 .7s;position:relative}.rotate-leave-active[data-v-22104807]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-22104807]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-dns[data-v-22104807]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-22104807]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_body[data-v-22104807]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .label-item[data-v-22104807]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-22104807]{width:100%;font-size:12px;color:#666}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-22104807]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-22104807]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-22104807]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-22104807],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-22104807]{width:100%;height:36px}.actioner-dns .actioner-dns_body .chose_dhcp[data-v-22104807]{height:1em;font-size:1.3em}.actioner-dns .actioner-dns_body .chose_dhcp .dhcp_info[data-v-22104807]{margin-left:10px;user-select:none}.actioner-dns .actioner-dns_body .label-message[data-v-22104807]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .config-message[data-v-22104807]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-22104807]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-22104807]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.setting_status[data-v-22104807]{text-align:center}.setting_status p[data-v-22104807]{margin:10px 0}.setting_status a[data-v-22104807]{text-align:center;display:block;text-decoration:none}.NewAdress[data-v-22104807]{margin-top:10px}@keyframes bganimation-22104807{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-22104807{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-22104807{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-22104807]{animation:rotateEnter-22104807 .7s;position:relative}.rotate-leave-active[data-v-22104807]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-22104807]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1400px){.actioner-dns .actioner-dns_body[data-v-22104807]{min-height:34vh}}@media screen and (max-width: 800px){.actioner-dns[data-v-22104807]{width:100%}}@keyframes bganimation-58c55341{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-58c55341{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-58c55341{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-58c55341]{animation:rotateEnter-58c55341 .7s;position:relative}.rotate-leave-active[data-v-58c55341]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-58c55341]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-dns[data-v-58c55341]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-58c55341]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_header span[data-v-58c55341]{margin:0 auto}.actioner-dns .actioner-dns_body[data-v-58c55341]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .sandbox_roboot_tips[data-v-58c55341]{margin-top:24px;text-align:center}.actioner-dns .actioner-dns_body .disk_loading_icon[data-v-58c55341]{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;padding:10px}.actioner-dns .actioner-dns_body .disk_loading_icon .disk_loading_info[data-v-58c55341]{margin-top:5px}.actioner-dns .actioner-dns_body .disk_tips[data-v-58c55341]{text-align:center;font-size:16px;margin-top:159px;color:#f9ad1e}.actioner-dns .actioner-dns_body .disk_tips svg[data-v-58c55341]{vertical-align:middle}.actioner-dns .actioner-dns_body .disk_tips span[data-v-58c55341]{margin-left:6px}.actioner-dns .actioner-dns_body .sandbox_info[data-v-58c55341]{text-align:center;line-height:22px}.actioner-dns .actioner-dns_body .label-item[data-v-58c55341]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-58c55341]{width:100%;font-size:12px;color:#666}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-58c55341]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-58c55341]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-58c55341]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-58c55341],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-58c55341]{width:100%;height:36px}.actioner-dns .actioner-dns_body .label-message[data-v-58c55341]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .actioner-dns_body .sandbox_tips svg[data-v-58c55341]{vertical-align:middle}.actioner-dns .actioner-dns_body .sandbox_tips span[data-v-58c55341]{font-size:12px;margin-left:4px}.actioner-dns .config-message[data-v-58c55341]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-58c55341]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-58c55341]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.actioner-tips[data-v-58c55341]{width:400px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-tips .actioner-tips_header[data-v-58c55341]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-tips .sandbox_info[data-v-58c55341]{padding:62px 54px;line-height:20px}.actioner-tips .actioner-tips_footer[data-v-58c55341]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.timeout[data-v-58c55341]{margin-top:114px}.timeout span[data-v-58c55341],.sandbox_roboot_refresh[data-v-58c55341]{color:#5e72e4}option[data-v-58c55341]:disabled{background-color:#e0e0e0}@keyframes bganimation-58c55341{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-58c55341{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-58c55341{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-58c55341]{animation:rotateEnter-58c55341 .7s;position:relative}.rotate-leave-active[data-v-58c55341]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-58c55341]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1400px){.actioner-tips_footer button[data-v-58c55341]{width:100%!important}}@media screen and (max-width: 900px){.actioner-dns[data-v-58c55341]{width:100%}}@media screen and (max-width: 700px){.actioner-dns .actioner-dns_body[data-v-58c55341]{min-height:42vh}.actioner-tips[data-v-58c55341]{width:80%;line-height:22px}.actioner-tips .sandbox_info[data-v-58c55341]{padding:34px 10px;font-size:10px}.actioner-tips .actioner-tips_header[data-v-58c55341]{font-size:20px}.actioner-tips .actioner-tips_footer button[data-v-58c55341]{width:100%!important}}@media screen and (max-width: 600px){.actioner-dns .actioner-dns_footer button[data-v-58c55341]{width:100%!important;margin-bottom:10px;margin-left:0}}@media screen and (max-width: 500px){.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-58c55341]{width:228px;overflow:hidden;text-overflow:ellipsis}}@media screen and (max-width: 400px){.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-58c55341]{width:163px;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_footer button[data-v-58c55341]{width:100%!important;margin-bottom:10px}.actioner-tips .sandbox_info[data-v-58c55341]{padding:3px 10px}}@keyframes bganimation-9573dc70{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9573dc70{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9573dc70{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9573dc70]{animation:rotateEnter-9573dc70 .7s;position:relative}.rotate-leave-active[data-v-9573dc70]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9573dc70]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-dns[data-v-9573dc70]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-9573dc70]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_header span[data-v-9573dc70]{margin:0 auto}.actioner-dns .actioner-dns_body[data-v-9573dc70]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .sandbox_info[data-v-9573dc70]{text-align:center;line-height:22px}.actioner-dns .actioner-dns_body .sandbox_environment[data-v-9573dc70]{font-size:16px;line-height:28px;margin:20px 0}.actioner-dns .actioner-dns_body .sandbox_environment_info[data-v-9573dc70]{font-size:16px;line-height:28px}.actioner-dns .actioner-dns_body .sandbox_environment_info .sandbox_environment_reboot[data-v-9573dc70]{color:#5e72e4}.actioner-dns .actioner-dns_body .sandbox_environment_info .sandbox_environment_tex[data-v-9573dc70]{color:red;font-size:.9em}.actioner-dns .actioner-dns_footer[data-v-9573dc70]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-9573dc70]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.actioner-tips[data-v-9573dc70]{width:400px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-tips .actioner-tips_header[data-v-9573dc70]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-tips .sandbox_info[data-v-9573dc70]{padding:62px 54px;line-height:20px}.actioner-tips .actioner-tips_footer[data-v-9573dc70]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.timeout[data-v-9573dc70]{margin-top:114px}.timeout span[data-v-9573dc70]{color:#5e72e4}@keyframes bganimation-9573dc70{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9573dc70{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9573dc70{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9573dc70]{animation:rotateEnter-9573dc70 .7s;position:relative}.rotate-leave-active[data-v-9573dc70]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9573dc70]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1400px){.actioner-tips_footer button[data-v-9573dc70]{width:100%!important}}@media screen and (max-width: 900px){.actioner-dns[data-v-9573dc70]{width:100%}}@media screen and (max-width: 700px){.actioner-dns .actioner-dns_body[data-v-9573dc70]{min-height:42vh}.actioner-dns .actioner-dns_footer button[data-v-9573dc70]{width:100%!important;margin-bottom:10px}.actioner-tips[data-v-9573dc70]{width:80%;line-height:22px}.actioner-tips .sandbox_info[data-v-9573dc70]{padding:34px 10px;font-size:10px}.actioner-tips .actioner-tips_header[data-v-9573dc70]{font-size:20px}.actioner-tips .actioner-tips_footer button[data-v-9573dc70]{width:100%!important}}@media screen and (max-width: 600px){.actioner-dns .actioner-dns_footer button[data-v-9573dc70]{width:100%!important;margin-bottom:10px;margin-left:0}}@media screen and (max-width: 500px){.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-9573dc70]{width:228px;overflow:hidden;text-overflow:ellipsis}}@media screen and (max-width: 400px){.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-9573dc70]{width:163px;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .sandbox_info[data-v-9573dc70]{font-size:10px}.actioner-dns .actioner-dns_body .sandbox_environment[data-v-9573dc70],.actioner-dns .actioner-dns_body .sandbox_environment_info[data-v-9573dc70]{font-size:12px}.actioner-tips .sandbox_info[data-v-9573dc70]{padding:3px 10px}}@keyframes bganimation-6ac226af{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6ac226af{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6ac226af{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6ac226af]{animation:rotateEnter-6ac226af .7s;position:relative}.rotate-leave-active[data-v-6ac226af]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6ac226af]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}[data-v-6ac226af] .icon{width:1.5rem;height:1.5rem;margin-bottom:12px;display:inline-block;flex:0 0 auto}button[data-v-6ac226af]{margin:0!important}button.item[data-v-6ac226af]:disabled{opacity:1}button.item:disabled svg[data-v-6ac226af],button.item:disabled .icon[data-v-6ac226af]{opacity:1!important;filter:none!important;color:#00b8db!important;stroke:#00b8db!important;fill:#00b8db!important}.item_container[data-v-6ac226af]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;width:100%;padding-bottom:4px;box-sizing:border-box}.item_container[data-v-6ac226af]::-webkit-scrollbar{height:6px}.item_container[data-v-6ac226af]::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.item_container .item[data-v-6ac226af]{position:relative;padding:16px 12px;min-width:180px;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;border-radius:8px;box-sizing:border-box;border:1px solid #e5e7eb;cursor:pointer;color:var(--card-txt-color)}.item_container .app-update-button-more[data-v-6ac226af]{position:absolute;top:4px;right:4px}.item_container .menu_background[data-v-6ac226af]{position:fixed;inset:0}.item_container .renew[data-v-6ac226af]{display:flex;align-items:center}.item_container .renew i[data-v-6ac226af]{display:inline-block;padding:3px;background-color:red;border-radius:50%;margin-right:4px}.item_container .dns_txt[data-v-6ac226af]{display:flex;align-items:center;line-height:1;color:#32325d}.item_container .disabled-style[data-v-6ac226af]{opacity:.6;cursor:not-allowed;pointer-events:none;background-color:#e0e0e0}.item_container .app-update-button-menu[data-v-6ac226af]{position:absolute;z-index:999;width:30%;right:0;top:0}.item_container .app-update-button-menu ul[data-v-6ac226af]{background-color:#fff;box-shadow:0 0 10px 1px #373f6924;padding:6px 0;border-radius:6px;top:-45px;right:0;text-align:center;position:absolute;word-break:keep-all}.item_container .app-update-button-menu ul li[data-v-6ac226af]{cursor:pointer;font-size:16px;line-height:1em;color:#1e1e1e;padding:0 5px;position:relative}.item_container .app-update-button-menu ul li .app-update-menu-item[data-v-6ac226af]{padding:5px 2px;white-space:nowrap}.item_container .app-update-button-menu ul li .app-update-menu-item-loading[data-v-6ac226af]{display:flex;justify-content:center;align-items:center;position:absolute;width:100%;height:100%;top:0;left:0;background-color:#fffc}@keyframes bganimation-6ac226af{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6ac226af{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6ac226af{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6ac226af]{animation:rotateEnter-6ac226af .7s;position:relative}.rotate-leave-active[data-v-6ac226af]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6ac226af]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.item_container[data-v-6ac226af]{display:flex;flex-wrap:wrap;gap:10px;width:100%;padding:0;box-sizing:border-box;justify-content:space-between}.item_container .item[data-v-6ac226af]{width:48%;min-width:120px;flex-shrink:0}}@keyframes bganimation-d0b06580{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-d0b06580{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-d0b06580{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-d0b06580]{animation:rotateEnter-d0b06580 .7s;position:relative}.rotate-leave-active[data-v-d0b06580]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-d0b06580]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.sambas-item[data-v-d0b06580]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.sambas-item .sambas-item_name[data-v-d0b06580]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.sambas-item .sambas-item_value[data-v-d0b06580]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-container_title-color)}.app-container_samba li.samba-item[data-v-d0b06580]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}.app-container_samba li.samba-item .samba-item_name[data-v-d0b06580]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}.app-container_samba li.samba-item .samba-item_value[data-v-d0b06580]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-container_samba li.samba-item .samba-item_value button[data-v-d0b06580]{background:none;border:none;width:100%;text-align:right;color:#297ff3;cursor:pointer}.app-container_samba li.samba-item .samba-item_value button[data-v-d0b06580]:hover{opacity:.7}.tit[data-v-d0b06580]{color:var(--tit-color);font-weight:700;font-size:16px}@keyframes bganimation-31dcf6eb{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-31dcf6eb{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-31dcf6eb{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-31dcf6eb]{animation:rotateEnter-31dcf6eb .7s;position:relative}.rotate-leave-active[data-v-31dcf6eb]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-31dcf6eb]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.webdav-item[data-v-31dcf6eb]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.webdav-item .webdav-item_name[data-v-31dcf6eb]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.webdav-item .webdav-item_value[data-v-31dcf6eb]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-container_title-color)}@keyframes bganimation-132ef714{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-132ef714{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-132ef714{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-132ef714]{animation:rotateEnter-132ef714 .7s;position:relative}.rotate-leave-active[data-v-132ef714]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-132ef714]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.linkease-item[data-v-132ef714]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.linkease-item .linkease-item_name[data-v-132ef714]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.linkease-item .linkease-item_value[data-v-132ef714]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-container_title-color)}li.linkease-item .linkease-item_value .configure[data-v-132ef714]{color:#297ff3;padding:3px}li.linkease-item .linkease-item_value .configure.enabel[data-v-132ef714]{cursor:pointer}a[data-v-132ef714]{text-decoration:none;color:#297ff3}@keyframes bganimation-e1182f0e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e1182f0e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e1182f0e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e1182f0e]{animation:rotateEnter-e1182f0e .7s;position:relative}.rotate-leave-active[data-v-e1182f0e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e1182f0e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-e1182f0e]{width:1.3rem;height:1.3rem}.icon1[data-v-e1182f0e]{width:1rem;height:1rem}.icon2[data-v-e1182f0e]{width:1.5rem;height:1.5rem;margin-bottom:12px}.settings-icon[data-v-e1182f0e] svg,.settings-icon[data-v-e1182f0e] g,.settings-icon[data-v-e1182f0e] path,.settings-icon[data-v-e1182f0e] circle,.settings-icon[data-v-e1182f0e] rect,.settings-icon[data-v-e1182f0e] line,.settings-icon[data-v-e1182f0e] polyline,.settings-icon[data-v-e1182f0e] polygon{fill:var(--app-container_title-color)!important;stroke:var(--app-container_title-color)!important}a[data-v-e1182f0e]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-e1182f0e]{color:#333;margin-top:10px;margin-bottom:10px;font-weight:400}.content .tab[data-v-e1182f0e]{display:flex;gap:8px}.content .tab .item[data-v-e1182f0e]{flex:1;padding:16px;display:flex;flex-direction:column;align-items:center;border-radius:10px;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.content .tab .item .title[data-v-e1182f0e]{margin-bottom:8px}.content .tab .item>span[data-v-e1182f0e]{font-size:12px}.content .tab .active[data-v-e1182f0e]{border:2px solid #6d6d6d}.content .tab .cloud[data-v-e1182f0e]{background-color:#eff6ff;color:#1447e6}.content .tab .memory[data-v-e1182f0e]{background-color:#dbfce7;color:#008236}.content .tab .network[data-v-e1182f0e]{background-color:#faf5ff;color:#8200db}.btn_settings[data-v-e1182f0e]{position:relative;padding:6px 34px 6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-e1182f0e]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-e1182f0e]{transform:rotate(90deg)}@keyframes bganimation-e1182f0e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e1182f0e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e1182f0e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e1182f0e]{animation:rotateEnter-e1182f0e .7s;position:relative}.rotate-leave-active[data-v-e1182f0e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e1182f0e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.content[data-v-e1182f0e]{margin:10px 0}}@keyframes bganimation-b5895698{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b5895698{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b5895698{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b5895698]{animation:rotateEnter-b5895698 .7s;position:relative}.rotate-leave-active[data-v-b5895698]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b5895698]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action .action-footer button[data-v-b5895698]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-b5895698{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b5895698{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b5895698{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b5895698]{animation:rotateEnter-b5895698 .7s;position:relative}.rotate-leave-active[data-v-b5895698]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b5895698]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action.format[data-v-b5895698]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.format .action-header[data-v-b5895698]{width:100%;height:70px;line-height:70px}.action.format .action-header .action-header_title[data-v-b5895698]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.format .action-body[data-v-b5895698]{width:100%;height:calc(100% - 140px);overflow:auto}.action.format .action-footer[data-v-b5895698]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action.format .action-footer .auto[data-v-b5895698]{flex:auto}.action.format .disk-list[data-v-b5895698]{width:100%;height:100%;border:1px solid #dfe1e5;overflow:auto}.action.format .label-item[data-v-b5895698]{width:100%;margin:1rem 0}.action.format .label-item .label-item_key[data-v-b5895698]{width:100%;font-size:16px;color:#666}.action.format .label-item .label-item_key span[data-v-b5895698]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action.format .label-item .label-item_key span[data-v-b5895698]:before{content:"*";color:#f56c6c;margin-right:4px}.action.format .label-item .label-item_value[data-v-b5895698]{width:100%;margin-top:5px}.action.format .label-item .label-item_value select[data-v-b5895698],.action.format .label-item .label-item_value input[data-v-b5895698]{width:100%;height:36px}.action.format .label-item .label-item_path[data-v-b5895698]{padding:0 14px;background-color:#e5e5e5;width:100%;height:28px;line-height:28px;margin-top:10px}.action.format .auto[data-v-b5895698]{flex:auto}.action.format p.msg[data-v-b5895698]{margin:.5rem 0;color:red}.action.format .disk-info[data-v-b5895698]{width:100%;text-align:center}.action.format .disk-info .disk-info_icon[data-v-b5895698]{width:100px;height:100px;margin:0 auto}.action.format .disk-info .disk-info_icon svg[data-v-b5895698]{width:100%;height:100%}.action.format .disk-info .disk-info_mount-name[data-v-b5895698]{margin:1rem 0;font-size:1.5em;color:#333}@keyframes bganimation-b5895698{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b5895698{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b5895698{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b5895698]{animation:rotateEnter-b5895698 .7s;position:relative}.rotate-leave-active[data-v-b5895698]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b5895698]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action.result[data-v-b5895698]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.result .action-body[data-v-b5895698]{width:100%;height:100%;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.action.result .action-body .action-body_icon[data-v-b5895698]{width:100px;height:100px}.action.result .action-body .action-body_icon svg.icon[data-v-b5895698]{width:100%;height:100%}.action.result .action-body .action-body_msg[data-v-b5895698]{font-size:2em;color:#666;text-align:center;width:100%;margin:1rem 0}.action.result .action-body .action-body_info[data-v-b5895698]{margin:1rem 0;width:100%;text-align:center;color:#666;font-size:1.2em}.action.result .action-body .action-body_info a[data-v-b5895698]{color:#0000fb}.action.result .btns[data-v-b5895698]{width:100%;text-align:center;margin:1rem 0}@keyframes bganimation-10dd00b8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-10dd00b8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-10dd00b8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-10dd00b8]{animation:rotateEnter-10dd00b8 .7s;position:relative}.rotate-leave-active[data-v-10dd00b8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-10dd00b8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.disk-item.error[data-v-10dd00b8]{color:red}.disk-content[data-v-10dd00b8]{padding:1rem;border:1px solid #cfcfcf;margin:16px 0}.disk-content li.disk-item[data-v-10dd00b8]{width:100%;display:flex;align-items:center}.disk-content li.disk-item .disk-item_name[data-v-10dd00b8]{flex:0 0 50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px}.disk-content li.disk-item .value-data[data-v-10dd00b8]{width:100%;text-overflow:ellipsis;white-space:nowrap;height:100%;color:#297ff3;cursor:default}.disk-content li.disk-item .value-data button[data-v-10dd00b8]{background:none;border:none;width:100%;text-align:right;color:#297ff3;cursor:pointer}.disk-content li.disk-item .value-data button[data-v-10dd00b8]:hover{opacity:.7}.disk-content li.disk-item .value-data.buttondiv[data-v-10dd00b8]{cursor:pointer}.disk-content li.disk-item .disk_value[data-v-10dd00b8]{flex:0 0 50%;display:flex;justify-content:space-between;align-items:center}.disk-content li.disk-item .disk_value .cbi-button[data-v-10dd00b8]{margin-left:10px}.disk-content li.disk-item .disk_value .disk-item_value[data-v-10dd00b8]{flex:auto;padding-left:10px;position:relative}.disk-content li.disk-item .disk_value .disk-item_value .disk-item-tooltip[data-v-10dd00b8]{position:absolute;background:rgba(0,0,0,.7);z-index:10111;color:#fff;padding:.5rem 1rem;left:10px;right:0;bottom:100%;margin-bottom:6px;text-align:center;font-size:1em;visibility:hidden;opacity:0}.disk-content li.disk-item .disk_value .disk-item_value .disk-item-tooltip[data-v-10dd00b8]:after{content:"";position:absolute;bottom:-6px;border-color:#4c4c4c rgba(0,0,0,0) rgba(0,0,0,0);left:0;right:0;text-align:center;width:0;margin:0 auto;border-width:6px 8px 0;border-style:solid}.disk-content li.disk-item .disk_value .disk-item_value:hover .disk-item-tooltip[data-v-10dd00b8]{visibility:visible;transition:.7s;opacity:1}.disk-content .disk_status[data-v-10dd00b8]{display:flex;text-align:left;padding-left:10px;font-size:12px;padding-top:6px}.disk-content .disk_status .disk_status_item[data-v-10dd00b8]{display:flex;margin-right:20px}.disk-content .disk_status .disk_status_item .disk_tip[data-v-10dd00b8]{display:flex;align-items:center}.disk_infoicon[data-v-10dd00b8]{margin-left:10px;cursor:pointer}.tooltip-trigger[data-v-10dd00b8]{flex:none}.tooltip-trigger[data-v-10dd00b8]{position:relative;display:inline-block;cursor:help;margin-right:6px;margin-left:10px}.tooltip-trigger .tooltip-text[data-v-10dd00b8]{visibility:hidden;position:absolute;padding:.5rem 1rem;background-color:#555;color:#fff;text-align:center;border-radius:6px;z-index:1;opacity:0;transition:opacity .6s}.tooltip-trigger .tooltip-text span[data-v-10dd00b8]{color:#fff}.tooltip-trigger .tooltip-text .disk_dir_tip[data-v-10dd00b8]{min-width:15rem;display:inline-block}.tooltip-trigger:hover .tooltip-text[data-v-10dd00b8]{visibility:visible;opacity:1}.tooltip-top[data-v-10dd00b8]{bottom:100%;left:50%;margin-bottom:5px;transform:translate(-50%)}.tooltip-top[data-v-10dd00b8]:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.tooltip-bottom[data-v-10dd00b8]:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}@keyframes bganimation-10dd00b8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-10dd00b8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-10dd00b8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-10dd00b8]{animation:rotateEnter-10dd00b8 .7s;position:relative}.rotate-leave-active[data-v-10dd00b8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-10dd00b8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1000px){.disk-content li.disk-item .disk_value[data-v-10dd00b8]{display:block}.disk-content .disk_status[data-v-10dd00b8]{flex-wrap:wrap}}@keyframes bganimation-127a3100{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-127a3100{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-127a3100{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-127a3100]{animation:rotateEnter-127a3100 .7s;position:relative}.rotate-leave-active[data-v-127a3100]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-127a3100]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-127a3100]{width:860px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;padding:3rem;border-radius:6px;display:flex;flex-direction:column;flex-wrap:nowrap}.action ul[data-v-127a3100]{overflow:auto}.action ul .app-container_info[data-v-127a3100]{display:flex;justify-content:space-between;max-width:56%;margin-top:18px;font-weight:600}.action ul .app-container_body[data-v-127a3100]{width:100%;height:100%}.action .action-footer[data-v-127a3100]{text-align:center;margin-top:46px}.action .action-footer button[data-v-127a3100]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-127a3100{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-127a3100{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-127a3100{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-127a3100]{animation:rotateEnter-127a3100 .7s;position:relative}.rotate-leave-active[data-v-127a3100]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-127a3100]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1000px){.action[data-v-127a3100]{width:160%}}@media screen and (max-width: 800px){.action[data-v-127a3100]{width:138%}}@media screen and (max-width: 700px){.action[data-v-127a3100]{width:132%}}@media screen and (max-width: 600px){.action[data-v-127a3100]{width:116%}}@media screen and (max-width: 500px){.action[data-v-127a3100]{width:100%}}@media screen and (max-width: 400px){.action[data-v-127a3100]{width:90%}}@media screen and (max-width: 300px){.action[data-v-127a3100]{width:100%}}.progress-bar-wrapper[data-v-2e966a39]{width:100%;margin-bottom:0}.progress-bar[data-v-2e966a39]{width:100%;position:relative;box-shadow:inset 0 1px 3px #0000001a}.progress-fill[data-v-2e966a39]{display:flex;align-items:center;justify-content:flex-end;padding-right:8px;box-sizing:border-box}.percentage-text[data-v-2e966a39]{color:#fff;font-size:12px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap;line-height:1}@media (max-width: 768px){.percentage-text[data-v-2e966a39]{font-size:10px;padding-right:4px}}@media (prefers-color-scheme: dark){.progress-bar[data-v-2e966a39]{box-shadow:inset 0 1px 3px #ffffff1a}}@keyframes bganimation-6c30e665{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6c30e665{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6c30e665{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6c30e665]{animation:rotateEnter-6c30e665 .7s;position:relative}.rotate-leave-active[data-v-6c30e665]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6c30e665]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.disk-item.error[data-v-6c30e665]{color:red}li.disk-item[data-v-6c30e665]{width:100%;margin:0 0 1rem}li.disk-item .disk-item_name[data-v-6c30e665]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px}li.disk-item .disk-item_name>span[data-v-6c30e665]{color:#6a7280}li.disk-item .disk_icon[data-v-6c30e665]{padding-left:1rem;align-self:center;align-items:center;flex:none;display:flex}li.disk-item .disk_value[data-v-6c30e665]{display:flex;justify-content:flex-end}li.disk-item .disk_value .disk-item_value[data-v-6c30e665]{flex:auto;position:relative;cursor:help;display:flex;align-items:center}li.disk-item .disk_value .disk-item_value .value-data[data-v-6c30e665]{width:100%;text-overflow:ellipsis;white-space:nowrap}li.disk-item .disk_value .disk-item_value .value-data>div[data-v-6c30e665]{margin-top:10px;display:flex;justify-content:space-between}li.disk-item .disk_value .disk-item_value .value-data button[data-v-6c30e665]{background:none;border:none;width:100%;text-align:right;color:#297ff3;cursor:pointer;padding:0;margin:0;line-height:normal}li.disk-item .disk_value .disk-item_value .value-data button[data-v-6c30e665]:hover{opacity:.7}li.disk-item .disk_value .disk-item_value .disk-item-tooltip[data-v-6c30e665]{position:absolute;background:rgba(0,0,0,.7);z-index:10111;color:#fff;padding:.5rem 1rem;left:30%;right:30%;bottom:100%;margin-bottom:6px;text-align:center;font-size:1em;visibility:hidden;opacity:0}li.disk-item .disk_value .disk-item_value .disk-item-tooltip[data-v-6c30e665]:after{content:"";position:absolute;bottom:-6px;border-color:#4c4c4c rgba(0,0,0,0) rgba(0,0,0,0);left:0;right:0;text-align:center;width:0;margin:0 auto;border-width:6px 8px 0;border-style:solid}li.disk-item .disk_value .disk-item_value:hover .disk-item-tooltip[data-v-6c30e665]{visibility:visible;transition:.7s;opacity:1}.disk_infoicon[data-v-6c30e665]{margin-left:10px;cursor:pointer;margin-bottom:10px}.tooltip-trigger[data-v-6c30e665]{flex:none;cursor:help}.tooltip-trigger[data-v-6c30e665]{position:relative;display:inline-block;cursor:help;margin-right:6px;margin-left:10px}.tooltip-trigger .tooltip-text[data-v-6c30e665]{visibility:hidden;position:absolute;padding:.5rem 1rem;background-color:#555;color:#fff;text-align:center;border-radius:6px;z-index:1;opacity:0;transition:opacity .6s}.tooltip-trigger .tooltip-text span[data-v-6c30e665]{color:#fff}.tooltip-trigger .tooltip-text .disk_dir_tip[data-v-6c30e665]{min-width:15rem;display:inline-block}.tooltip-trigger:hover .tooltip-text[data-v-6c30e665]{visibility:visible;opacity:1}.tooltip-top[data-v-6c30e665]{bottom:100%;left:50%;margin-bottom:5px;transform:translate(-50%)}.tooltip-top[data-v-6c30e665]:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.tooltip-bottom[data-v-6c30e665]:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}@keyframes bganimation-6f7fe2ab{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6f7fe2ab{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6f7fe2ab{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6f7fe2ab]{animation:rotateEnter-6f7fe2ab .7s;position:relative}.rotate-leave-active[data-v-6f7fe2ab]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6f7fe2ab]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-6f7fe2ab]{width:1.3rem;height:1.3rem}.icon1[data-v-6f7fe2ab]{width:1rem;height:1rem}[data-v-6f7fe2ab] .folderIcon path{fill:var(--app-container_title-color)!important}a[data-v-6f7fe2ab]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content .disk_loading_icon[data-v-6f7fe2ab]{height:100px;display:flex;flex-direction:column;align-items:center;padding:10px}.content .disk_loading_icon .disk_loading_info[data-v-6f7fe2ab]{font-size:16px;color:#333;margin-top:12px}.content .line[data-v-6f7fe2ab]{height:1px;background:var(--btn-border-color);margin:0}.content .item[data-v-6f7fe2ab]{display:flex;margin-top:8px;padding:10px}.content .item .icon_box[data-v-6f7fe2ab]{width:1.5rem;height:1.5rem;background:#dbeafe;display:flex;align-items:center;justify-content:center;border-radius:4px}.content .item .icon_box .icon[data-v-6f7fe2ab]{width:.8rem;height:.8rem}.content .item .info[data-v-6f7fe2ab]{flex:1}.content .item .info .name[data-v-6f7fe2ab]{display:flex;justify-content:space-between;align-items:center;margin-left:12px;margin-top:6px}.content .item .info .name>div[data-v-6f7fe2ab]{font-size:14px;color:var(--app-container_title-color)}.content .item .info .name>span[data-v-6f7fe2ab]{display:inline-flex;align-items:center;padding:4px 6px;line-height:1;border:1px solid #d8e3db;background:#f0fdf4;border-radius:4px;color:#008236;font-size:12px;font-weight:400}.content .item .info .name>span .icon[data-v-6f7fe2ab]{width:.7rem;height:.7rem;margin-right:4px}.content .item .info .schedule[data-v-6f7fe2ab]{margin-top:12px}.content .item .info .schedule span[data-v-6f7fe2ab]{font-size:12px;color:#6a7280;font-weight:400}.content .item .info .schedule>div[data-v-6f7fe2ab]{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.btn_settings[data-v-6f7fe2ab]{position:relative;padding:6px 34px 6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-6f7fe2ab]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-6f7fe2ab]{transform:rotate(90deg)}@keyframes bganimation-6f7fe2ab{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6f7fe2ab{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6f7fe2ab{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6f7fe2ab]{animation:rotateEnter-6f7fe2ab .7s;position:relative}.rotate-leave-active[data-v-6f7fe2ab]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6f7fe2ab]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.content .item[data-v-6f7fe2ab]{margin-top:0}.content .line[data-v-6f7fe2ab]{height:1px;background:#e5e7eb;margin:0 0 10px}}@keyframes bganimation-64cabc6e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-64cabc6e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-64cabc6e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-64cabc6e]{animation:rotateEnter-64cabc6e .7s;position:relative}.rotate-leave-active[data-v-64cabc6e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-64cabc6e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.docker-item[data-v-64cabc6e]{width:100%;display:flex;flex-wrap:wrap;margin:1.5rem 0}li.docker-item .docker-item_name[data-v-64cabc6e]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.docker-item .docker-item_value[data-v-64cabc6e]{flex:0 0 100%;max-width:50%;padding-left:10px;display:flex;justify-content:flex-end;align-items:center}li.docker-item .docker-item_value .configure[data-v-64cabc6e]{color:#297ff3;overflow:hidden;white-space:nowrap;padding:3px;overflow-x:hidden;text-overflow:ellipsis}li.docker-item .docker-item_value .configure.enabel[data-v-64cabc6e]{color:#888;overflow-x:hidden;text-overflow:ellipsis}li.docker-item .docker-item_root[data-v-64cabc6e]{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:16px;max-width:323px;flex:0 0 100%}.tooltip-trigger[data-v-64cabc6e]{position:relative;display:inline-block;cursor:help}.tooltip-trigger .tooltip-text[data-v-64cabc6e]{visibility:hidden;position:absolute;padding:.5rem 1rem;background-color:#555;color:#fff;text-align:center;border-radius:6px;z-index:1;opacity:0;transition:opacity .6s}.tooltip-trigger .tooltip-text span[data-v-64cabc6e]{color:#fff}.tooltip-trigger .tooltip-text .docker_dir_tip[data-v-64cabc6e]{min-width:15rem;display:inline-block}.tooltip-trigger:hover .tooltip-text[data-v-64cabc6e]{visibility:visible;opacity:1}.tooltip-top[data-v-64cabc6e]{bottom:100%;left:50%;margin-bottom:5px;transform:translate(-50%);margin-left:12px}.tooltip-right[data-v-64cabc6e]{top:50%;left:100%;margin-left:5px;transform:translateY(-50%)}.tooltip-left[data-v-64cabc6e]{top:50%;right:100%;margin-right:5px;transform:translateY(-50%)}.tooltip-top[data-v-64cabc6e]:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.tooltip-bottom[data-v-64cabc6e]:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}.input-switch[data-v-64cabc6e]{display:inline-block;cursor:pointer;position:relative}.input-switch span[data-v-64cabc6e]{display:block;position:relative;width:50px;height:20px;border-radius:10px;padding:2px}.input-switch span em[data-v-64cabc6e]{display:block;width:16px;height:16px;background-color:#fff;border-radius:10px}.input-switch span.enable[data-v-64cabc6e]{background-color:#52c41a;transition:.3s}.input-switch span.enable em[data-v-64cabc6e]{transform:translate(30px);transition:.3s}.input-switch span.close[data-v-64cabc6e]{background-color:#cecece;transition:.3s}.input-switch span.close em[data-v-64cabc6e]{transform:translate(0);transition:.3s}.content[data-v-64cabc6e]{color:#333;margin-top:20px;margin-bottom:20px;font-weight:400}.content .status[data-v-64cabc6e]{display:flex;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid #e8e8e8;margin:0 6px}.content .docker_box[data-v-64cabc6e]{display:flex;align-items:center;justify-content:space-between;margin:20px 6px}.content .docker_box .title[data-v-64cabc6e]{margin-bottom:20px}.content .docker_box .path[data-v-64cabc6e]{flex:1;border:1px solid #e0e1e1;background:#f9fafb;border-radius:4px;padding:8px 10px}.content .docker_num[data-v-64cabc6e]{display:flex}.content .docker_num .num_item[data-v-64cabc6e]{flex:1;display:flex;justify-content:center;align-items:center;flex-direction:column;color:var(--app-container_title-color)}.content .docker_num .num_item>span[data-v-64cabc6e]{font-size:20px;margin-top:6px}.docker_tip svg[data-v-64cabc6e]{vertical-align:bottom;margin-left:14px;width:1.5em;height:1.5em}.status-icon[data-v-64cabc6e]{display:inline-block;margin-left:10px;font-size:12px;color:#008236;padding:4px 6px;background:#dbfce7;border-radius:6px}@keyframes bganimation-a5cf4814{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-a5cf4814{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-a5cf4814{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-a5cf4814]{animation:rotateEnter-a5cf4814 .7s;position:relative}.rotate-leave-active[data-v-a5cf4814]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-a5cf4814]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-a5cf4814]{width:860px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:1rem 87px;border-radius:6px}.action h2.title[data-v-a5cf4814]{width:100%;display:block;color:#1e1e1e;font-size:22px;padding:0;margin:0;text-align:center}.action .roots[data-v-a5cf4814]{display:flex;max-width:342px;align-items:center;margin-top:32px;margin-bottom:16px}.action .roots .root[data-v-a5cf4814]{color:#000000d4;font-size:14px;text-align:center}.action .move[data-v-a5cf4814]{display:flex;justify-content:left;align-items:center}.action .change[data-v-a5cf4814]{width:678px}.action .desc[data-v-a5cf4814]{width:100%;display:block;font-size:1.2em;padding:0;margin:1rem 0;margin-top:32px;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#000000d4}.action form[data-v-a5cf4814]{width:100%;display:block}.action .tips[data-v-a5cf4814]{width:477px}.action .tips .tip[data-v-a5cf4814]{color:#faad14;padding-left:6px}.action .btns[data-v-a5cf4814]{width:100%;margin:104px auto 0}.action .btns button[data-v-a5cf4814]{display:block;width:100%!important;margin-left:0;margin-right:0}.action .roots_tit[data-v-a5cf4814]{color:#000000d4;font-size:14px;font-weight:700;width:118px;text-align:right;flex:none}.action .successed[data-v-a5cf4814]{text-align:center;font-size:14px}.action .finished[data-v-a5cf4814]{display:flex;justify-content:center;margin:80px 80px 28px}.action .docker_moves[data-v-a5cf4814]{text-align:center}.action .docker_moves .moves[data-v-a5cf4814]{margin-top:10px}.action .docker_moves .moves input[data-v-a5cf4814]{cursor:pointer}.action .docker_moves .moves label[data-v-a5cf4814]{margin-left:10px;cursor:pointer}.select-editable[data-v-a5cf4814]{position:relative;border:solid grey 1px;width:438px;height:34px}.select-editable select[data-v-a5cf4814]{position:absolute;top:0;left:0;font-size:14px;border:none;width:100%;height:100%;margin:0}.select-editable input[data-v-a5cf4814]{position:absolute;top:0;left:0;width:95%;padding:1px;font-size:14px;border:none}.select-editable select[data-v-a5cf4814]:focus,.select-editable input[data-v-a5cf4814]:focus{outline:none}[data-v-a5cf4814]::placeholder{color:#999}@keyframes bganimation-a5cf4814{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-a5cf4814{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-a5cf4814{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-a5cf4814]{animation:rotateEnter-a5cf4814 .7s;position:relative}.rotate-leave-active[data-v-a5cf4814]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-a5cf4814]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 800px){.action[data-v-a5cf4814]{width:100%}.docker_download[data-v-a5cf4814]{width:80%}}@keyframes bganimation-223e456a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-223e456a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-223e456a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-223e456a]{animation:rotateEnter-223e456a .7s;position:relative}.rotate-leave-active[data-v-223e456a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-223e456a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-223e456a]{width:1.3rem;height:1.3rem}.icon1[data-v-223e456a]{width:1rem;height:1rem}[data-v-223e456a] .dockerIcon path{fill:var(--app-container_title-color)!important}a[data-v-223e456a]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-223e456a]{color:#333;margin-top:10px;margin-bottom:10px;font-weight:400}.btn_settings[data-v-223e456a]{position:relative;padding:6px 34px 6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-223e456a]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-223e456a]{transform:rotate(90deg)}@keyframes bganimation-223e456a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-223e456a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-223e456a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-223e456a]{animation:rotateEnter-223e456a .7s;position:relative}.rotate-leave-active[data-v-223e456a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-223e456a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.content[data-v-223e456a]{margin:10px 0}}.pie-chart-wrapper[data-v-1b4ddc16]{position:relative;display:flex;align-items:center;justify-content:center}.chart-dom[data-v-1b4ddc16]{width:100%;height:100%}.center-content[data-v-1b4ddc16]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:2;pointer-events:none}.center-icon[data-v-1b4ddc16]{width:20px;height:20px;margin-bottom:4px;display:block;margin-left:auto;margin-right:auto}.center-label[data-v-1b4ddc16]{margin-top:4px;font-size:14px;font-weight:600}@keyframes bganimation-e005287c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e005287c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e005287c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e005287c]{animation:rotateEnter-e005287c .7s;position:relative}.rotate-leave-active[data-v-e005287c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e005287c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-e005287c]{width:1.3rem;height:1.3rem}.icon1[data-v-e005287c]{width:2rem;height:2rem;margin-bottom:8px}.icon2[data-v-e005287c]{width:1rem;height:1rem}[data-v-e005287c] .computerIcon path{fill:var(--app-container_title-color)!important}a[data-v-e005287c]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-e005287c]{color:#333;margin-top:20px;margin-bottom:20px;padding:0 10px;font-weight:400}.content .chart_box[data-v-e005287c]{padding-bottom:20px;border-bottom:1px solid var(--btn-border-color);margin-bottom:20px;display:flex}.content .chart_box .chart[data-v-e005287c]{flex:1;display:flex;flex-direction:column;align-items:center;color:var(--app-container_title-color)}.content .chart_box .chart>div[data-v-e005287c]{margin-top:4px}.content .info[data-v-e005287c]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.content .info .item[data-v-e005287c]{display:flex;justify-content:center}.content .info .item>div[data-v-e005287c]{color:var(--app-container_title-color)}.content .info .item>span[data-v-e005287c]{color:var(--app-container_status-label_block);font-size:16px;line-height:1}.content .info .item1[data-v-e005287c]{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-top:20px;padding:30px}.content .info .item1>div[data-v-e005287c]{display:flex;align-items:center;margin-bottom:8px}.content .info .item1>div>span[data-v-e005287c]{margin-left:8px}.content .info .bgcolor1[data-v-e005287c]{background:#e9f2ff;border-radius:10px;border:1px solid #bedbff;color:#155dfc}.content .info .bgcolor2[data-v-e005287c]{background:#ebfdf1;border-radius:10px;border:1px solid #b9f8cf;color:#008236}.btn_settings[data-v-e005287c]{position:relative;padding:6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}@keyframes bganimation-e005287c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e005287c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e005287c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e005287c]{animation:rotateEnter-e005287c .7s;position:relative}.rotate-leave-active[data-v-e005287c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e005287c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.content[data-v-e005287c]{margin-top:10px;margin-bottom:10px;padding:0 4px}.content .chart_box[data-v-e005287c]{padding-bottom:10px;margin-bottom:10px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.content .chart_box[data-v-e005287c]::-webkit-scrollbar{display:none}.content .info[data-v-e005287c]{grid-template-columns:repeat(1,1fr);gap:6px}.content .info .item1[data-v-e005287c]{margin-top:6px;padding:10px}.content .info .bgcolor1[data-v-e005287c]{background:#e9f2ff;border-radius:10px;border:1px solid #bedbff;color:#155dfc}.content .info .bgcolor2[data-v-e005287c]{background:#ebfdf1;border-radius:10px;border:1px solid #b9f8cf;color:#008236}}@keyframes bganimation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active{animation:rotateEnter .7s;position:relative}.rotate-leave-active{opacity:0;display:none;position:relative;z-index:-999}.app-container{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:999;backdrop-filter:blur(2px)}.modal-container{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:90%;max-width:var(--3fcd09c7);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-container .modal-header{padding:8px 12px;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}.modal-container .modal-header .modal-title{margin:0;font-size:18px;color:#333;padding:0;text-align:center;background:transparent!important}.modal-container .modal-header .modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#999;transition:color .2s}.modal-container .modal-header .modal-close:hover{color:#666}.modal-container .modal-content{padding:18px;overflow-y:auto;flex:1}.modal-container .modal-footer{padding:8px 12px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;gap:12px}.modal-container .modal-footer .modal-button{padding:4px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s;border:1px solid transparent}.modal-container .modal-footer .modal-button.cancel{background-color:#fff;border-color:#ddd;color:#666}.modal-container .modal-footer .modal-button.cancel:hover{background-color:#f5f5f5}.modal-container .modal-footer .modal-button.confirm{background-color:#553afe;color:#fff}.modal-container .modal-footer .modal-button.confirm:hover{background-color:#3f21fe}@media (max-width: 768px){.modal-container{width:95%;max-width:none;max-height:90vh;margin:0 10px}.modal-container .modal-header{padding:12px 16px}.modal-container .modal-header .modal-title{font-size:16px;background:transparent!important}.modal-container .modal-header .modal-close{font-size:20px}.modal-container .modal-content{padding:16px}.modal-container .modal-footer{padding:12px 16px;flex-direction:column-reverse;gap:8px}.modal-container .modal-footer .modal-button{width:100%;padding:10px;font-size:15px}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .3s ease,opacity .3s ease}.slide-enter-from,.slide-leave-to{transform:translateY(-20px);opacity:0}@keyframes bganimation-ca434918{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ca434918{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ca434918{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ca434918]{animation:rotateEnter-ca434918 .7s;position:relative}.rotate-leave-active[data-v-ca434918]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ca434918]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.switch[data-v-ca434918]{display:inline-flex;align-items:center;position:relative;font-size:14px;height:20px}.switch.is-disabled[data-v-ca434918]{opacity:.6;cursor:not-allowed}.switch.is-disabled .switch__core[data-v-ca434918]{cursor:not-allowed}.switch__input[data-v-ca434918]{position:absolute;width:0;height:0;opacity:0;margin:0;z-index:-1}.switch__core[data-v-ca434918]{margin:0;display:inline-block;position:relative;width:40px;height:20px;border:1px solid;outline:none;border-radius:10px;box-sizing:border-box;cursor:pointer;transition:border-color .3s,background-color .3s}.switch__button[data-v-ca434918]{position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff;box-shadow:0 1px 2px #0003}.switch.is-checked .switch__button[data-v-ca434918]{transform:translate(20px)}@keyframes bganimation-79624e8f{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-79624e8f{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-79624e8f{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-79624e8f]{animation:rotateEnter-79624e8f .7s;position:relative}.rotate-leave-active[data-v-79624e8f]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-79624e8f]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}[data-v-79624e8f] .modal-header{border-bottom:none;padding-bottom:0}[data-v-79624e8f] .modal-header .modal-title{text-align:left;padding-left:6px}[data-v-79624e8f] .modal-content{padding-top:0}[data-v-79624e8f]:depp(.modal-footer){border-top:none!important}.module-settings[data-v-79624e8f]{margin-top:16px;display:flex;flex-direction:column;gap:16px;color:#1d2129}.module-settings .module-settings__header[data-v-79624e8f]{padding:8px 12px;background:linear-gradient(to right,#eff6ff,#f4f6ff,#f7f5ff,#faf6ff);background:-webkit-linear-gradient(left,#eff6ff,#f4f6ff,#f7f5ff,#faf6ff);border-radius:10px}.module-settings .module-settings__badge[data-v-79624e8f]{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#5677ff 0%,#9c56ff 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:18px}.module-settings .module-settings__toggle-all[data-v-79624e8f]{border-radius:8px}.module-settings__header[data-v-79624e8f]{display:flex;justify-content:space-between;align-items:center;gap:12px}.module-settings__summary[data-v-79624e8f]{display:flex;align-items:center;gap:12px}.module-settings__badge[data-v-79624e8f]{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#5c3efe 0%,#7a62ff 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:18px}.module-settings__texts[data-v-79624e8f]{display:flex;flex-direction:column;gap:4px}.module-settings__title[data-v-79624e8f]{font-size:16px;font-weight:600}.module-settings__sub[data-v-79624e8f]{font-size:13px;color:#86909c}.module-settings__toggle-all[data-v-79624e8f]{min-width:96px;height:34px;padding:0 16px;border-radius:17px;border:1px solid #e5e6eb;background:#fff;color:#1d2129;cursor:pointer;font-size:14px;transition:all .2s;display:inline-block;line-height:34px;box-sizing:border-box;-webkit-appearance:none;appearance:none;vertical-align:middle}.module-settings__toggle-all[data-v-79624e8f]:hover{border-color:#553afe;color:#553afe}.module-settings__list[data-v-79624e8f]{display:flex;flex-direction:column;gap:16px;max-height:420px;overflow-y:auto;padding-right:8px}.module-settings__item[data-v-79624e8f]{display:flex;align-items:center;justify-content:space-between;padding:16px 10px;border-radius:8px;background:transparent;border:1px solid #e5e7eb;gap:24px;transition:background-color .2s ease,border-color .2s ease}.module-settings__item[data-v-79624e8f]:hover{border-color:#8fc6ff;background:#fafcfe}.module-settings__item--disabled[data-v-79624e8f]{opacity:.5;cursor:not-allowed}.module-settings__info[data-v-79624e8f]{display:flex;flex-direction:column;gap:6px}.module-settings__name[data-v-79624e8f]{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.module-settings__dot[data-v-79624e8f]{width:10px;height:10px;border-radius:50%;background-color:#c9ccd3;transition:background-color .2s}.module-settings__dot.is-active[data-v-79624e8f]{background:#553afe}.module-settings__desc[data-v-79624e8f]{font-size:13px;color:#86909c;line-height:1.4;margin:0 0 0 18px}.module-settings__footer[data-v-79624e8f]{width:100%;display:flex;justify-content:flex-end;gap:12px}.module-settings__btn[data-v-79624e8f]{min-width:96px;height:36px;border-radius:8px;border:1px solid transparent;font-size:14px;cursor:pointer;transition:all .3s ease}.module-settings__btn--secondary[data-v-79624e8f]{background:#fff;border-color:#e5e6eb;color:#1d2129}.module-settings__btn--secondary[data-v-79624e8f]:hover{border-color:#553afe;color:#553afe}.module-settings__btn--primary[data-v-79624e8f]{background:linear-gradient(135deg,#5c3efe 0%,#7a62ff 100%);color:#fff;border:none}.module-settings__btn--primary[data-v-79624e8f]:hover{opacity:.8}@media (max-width: 768px){.module-settings__header[data-v-79624e8f]{flex-direction:row;align-items:center}.module-settings__toggle-all[data-v-79624e8f]{width:auto;height:34px;line-height:34px;font-size:14px;padding:0 14px}.module-settings__item[data-v-79624e8f]{flex-direction:row;align-items:center;padding:14px 10px}.module-settings__badge[data-v-79624e8f]{font-size:16px}.module-settings__title[data-v-79624e8f]{font-size:15px}.module-settings__sub[data-v-79624e8f]{font-size:12px}.module-settings__name[data-v-79624e8f]{font-size:14px}.module-settings__desc[data-v-79624e8f]{font-size:12px;margin-left:18px}.module-settings__list[data-v-79624e8f]{max-height:65vh;padding-right:8px}.module-settings__footer[data-v-79624e8f]{flex-direction:column-reverse;align-items:stretch;gap:8px}.module-settings__btn[data-v-79624e8f]{width:100%;height:36px;font-size:14px}}@keyframes bganimation-1f2aa331{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-1f2aa331{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-1f2aa331{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-1f2aa331]{animation:rotateEnter-1f2aa331 .7s;position:relative}.rotate-leave-active[data-v-1f2aa331]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-1f2aa331]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.page-container .model_btn[data-v-1f2aa331]{cursor:pointer;margin-left:16px}.page-container .card-container[data-v-1f2aa331]{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:16px;width:100%;padding-bottom:10px;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.35) transparent}.page-container .card-container[data-v-1f2aa331]::-webkit-scrollbar{height:6px}.page-container .card-container[data-v-1f2aa331]::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.page-container .card-container>*[data-v-1f2aa331]{flex:0 0 auto}.page-container[data-v-1f2aa331] .card-container::-webkit-scrollbar{height:8px}.page-container[data-v-1f2aa331] .card-container::-webkit-scrollbar-thumb{border-radius:4px;background:rgba(0,0,0,.35)}.page-container[data-v-1f2aa331] .card-container::-webkit-scrollbar-track{background:transparent}.page-container .network-container[data-v-1f2aa331]{display:flex;gap:24px;width:100%;margin-top:20px;align-items:stretch}.page-container .network-container .left-box[data-v-1f2aa331]{flex:2;min-width:0}.page-container .network-container .right-box[data-v-1f2aa331]{flex:1;overflow:hidden;min-width:0;display:flex;flex-direction:column;justify-content:space-between}.page-container .network-stack[data-v-1f2aa331]{display:flex;flex-direction:column;width:100%;align-items:stretch}.page-container .network-stack .stack-item[data-v-1f2aa331]{width:100%}.page-container .full-row[data-v-1f2aa331] .network_container{min-height:600px}.page-container .fill-card[data-v-1f2aa331]{height:100%;display:flex;flex-direction:column}.page-container .fill-card[data-v-1f2aa331] .reusable-card{flex:1 1 auto;display:flex;flex-direction:column}.page-container .fill-card[data-v-1f2aa331] .card-body{flex:1 1 auto}.page-container .align-c[data-v-1f2aa331]{align-items:center}.page-container .other-container[data-v-1f2aa331]{width:100%;margin-top:20px}.page-container .other-container .grid-container[data-v-1f2aa331]{display:flex;flex-wrap:wrap;gap:24px}.page-container .other-container .grid-container .grid-item[data-v-1f2aa331]{display:flex;justify-content:center;border-radius:8px}.page-container .btns[data-v-1f2aa331]{margin-top:20px}.page-container .system[data-v-1f2aa331]{margin-top:24px}@keyframes bganimation-1f2aa331{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-1f2aa331{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-1f2aa331{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-1f2aa331]{animation:rotateEnter-1f2aa331 .7s;position:relative}.rotate-leave-active[data-v-1f2aa331]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-1f2aa331]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1300px){.page-container .other-container[data-v-1f2aa331]{width:100%;margin-top:16px}.page-container .other-container .grid-container[data-v-1f2aa331]{flex-direction:column;gap:12px}.page-container .other-container .grid-container .grid-item[data-v-1f2aa331]{border-radius:6px}}@keyframes bganimation-1f2aa331{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-1f2aa331{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-1f2aa331{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-1f2aa331]{animation:rotateEnter-1f2aa331 .7s;position:relative}.rotate-leave-active[data-v-1f2aa331]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-1f2aa331]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 768px){.page-container .card-container[data-v-1f2aa331]{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:16px;scrollbar-width:none;-ms-overflow-style:none}.page-container .card-container>*[data-v-1f2aa331]{flex:0 0 auto;min-width:280px}.page-container .card-container[data-v-1f2aa331]::-webkit-scrollbar{display:none}.page-container .network-container[data-v-1f2aa331]{flex-direction:column;margin-top:10px;gap:10px}.page-container .network-container .right-box[data-v-1f2aa331]{flex:none;width:100%}.page-container .other-container[data-v-1f2aa331]{width:100%;margin-top:16px}.page-container .other-container .grid-container[data-v-1f2aa331]{flex-direction:column;gap:12px}.page-container .other-container .grid-container .grid-item[data-v-1f2aa331]{border-radius:6px}}@keyframes bganimation-52c03678{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-52c03678{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-52c03678{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-52c03678]{animation:rotateEnter-52c03678 .7s;position:relative}.rotate-leave-active[data-v-52c03678]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-52c03678]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page[data-v-52c03678]{width:100%;padding:1rem;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;align-content:center;max-width:800px;height:100vh;overflow:overlay}#page .title[data-v-52c03678]{width:100%;display:block;text-align:center;font-size:32px;font-family:PingFangSC-Semibold,PingFang SC;font-weight:600;color:#000c;line-height:45px}#page .desc[data-v-52c03678]{width:100%;display:block;font-size:24px;font-family:PingFangSC-Semibold,PingFang SC;font-weight:600;color:#0009;line-height:33px;text-align:center;margin-top:10px}#page div.info[data-v-52c03678]{width:100%;display:block;font-size:1.6em;font-size:16px;margin-left:34px}#page .network-containers[data-v-52c03678]{width:100%;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center;margin:3rem 0 1rem}#page .network-containers .network-container_item[data-v-52c03678]{flex:0 0 100%;position:relative;border-radius:4px;padding:10px;cursor:pointer;max-width:240px;width:240px;height:308px}#page .network-containers .network-container_item a[data-v-52c03678]{position:relative;display:block;width:100%}#page .network-containers .network-container_item a .cover[data-v-52c03678]{position:relative;padding-top:130%;z-index:1}#page .network-containers .network-container_item a .cover .thumbnail[data-v-52c03678]{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;border-radius:8px;overflow:hidden;z-index:1;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center;background-color:#2dc8fd}#page .network-containers .network-container_item a .cover .thumbnail i[data-v-52c03678]{display:block;font-size:100px;color:#eee}#page .network-containers .network-container_item a .cover .thumbnail span[data-v-52c03678]{display:block;text-align:center;width:100%;color:#eeee;font-size:2em;line-height:1.5;font-size:22px;font-family:PingFangSC-Semibold,PingFang SC;color:#fff;line-height:40px}#page .network-containers .network-container_item:nth-child(9n+1) a .cover .thumbnail[data-v-52c03678]{background:linear-gradient(138deg,#FF6E6B 0%,#FF6966 100%)}#page .network-containers .network-container_item:nth-child(9n+2) a .cover .thumbnail[data-v-52c03678]{background:linear-gradient(145deg,#37D5A9 0%,#42D8B0 100%)}#page .network-containers .network-container_item:nth-child(9n+3) a .cover .thumbnail[data-v-52c03678]{background:linear-gradient(145deg,#549AFF 0%,#2C82FF 100%)}#page .network-containers .network-container_item:nth-child(9n+4) a .cover .thumbnail[data-v-52c03678]{background-color:#9b58de}#page .network-containers .network-container_item:nth-child(9n+5) a .cover .thumbnail[data-v-52c03678]{background-color:#297ff3}#page .network-containers .network-container_item:nth-child(9n+6) a .cover .thumbnail[data-v-52c03678]{background-color:#27aa8f}#page .network-containers .network-container_item:nth-child(9n+7) a .cover .thumbnail[data-v-52c03678]{background-color:#f15a4a}#page .network-containers .network-container_item:nth-child(9n+8) a .cover .thumbnail[data-v-52c03678]{background-color:#439c07}@keyframes bganimation-52c03678{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-52c03678{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-52c03678{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-52c03678]{animation:rotateEnter-52c03678 .7s;position:relative}.rotate-leave-active[data-v-52c03678]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-52c03678]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes bganimation-e187efe4{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e187efe4{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e187efe4{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e187efe4]{animation:rotateEnter-e187efe4 .7s;position:relative}.rotate-leave-active[data-v-e187efe4]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e187efe4]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page[data-v-e187efe4]{width:100%;padding:1rem;margin:100px auto 0;display:flex;flex-wrap:wrap;justify-content:flex-start;max-width:600px}#page h2.title[data-v-e187efe4]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0 0 10px;text-align:left;background-color:#f4f5f7;box-shadow:none}#page h3.desc[data-v-e187efe4]{width:100%;display:block;color:#666;font-size:1.2em;padding:0;margin:0;text-align:left;background-color:#f4f5f7;box-shadow:none}#page .network-message[data-v-e187efe4]{margin:.5rem 0}#page .network-message li[data-v-e187efe4]{margin:.5rem 0;font-size:20px;color:#000;font-weight:550}#page .network-message li span[data-v-e187efe4]{color:red}#page .network-message li a[data-v-e187efe4]{color:#00f}#page form[data-v-e187efe4]{display:block;width:100%;margin:3rem 0}#page form label[data-v-e187efe4]{display:block;width:100%;margin:1rem 0}#page form label .label-key[data-v-e187efe4]{display:block;width:100%;font-size:1.3em;margin-bottom:.5rem}#page form label .label-key span[data-v-e187efe4]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#page form label .label-key span[data-v-e187efe4]:before{content:"*";color:#f56c6c;margin-right:4px}#page form label input[data-v-e187efe4]{width:100%;display:block;height:42px}#page .chose_dhcp[data-v-e187efe4]{height:1em;font-size:1.3em}#page .chose_dhcp .dhcp_info[data-v-e187efe4]{margin-left:10px;user-select:none}#page .msg[data-v-e187efe4]{width:100%;display:block;height:36px;line-height:36px;color:red;font-size:1.3em}#page .btns[data-v-e187efe4]{width:100%;margin-top:3rem}#page .btns button[data-v-e187efe4]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-5eefd6ee{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-5eefd6ee{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-5eefd6ee{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-5eefd6ee]{animation:rotateEnter-5eefd6ee .7s;position:relative}.rotate-leave-active[data-v-5eefd6ee]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-5eefd6ee]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page[data-v-5eefd6ee]{width:100%;padding:1rem;margin:100px auto 0;display:flex;flex-wrap:wrap;justify-content:flex-start;max-width:600px}#page h2.title[data-v-5eefd6ee]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0 0 10px;text-align:left;background-color:#f4f5f7;box-shadow:none}#page h3.desc[data-v-5eefd6ee]{width:100%;display:block;color:#666;font-size:1.2em;padding:0;margin:0;text-align:left;background-color:#f4f5f7;box-shadow:none}#page .network-message[data-v-5eefd6ee]{margin:.5rem 0}#page .network-message li[data-v-5eefd6ee]{margin:.5rem 0;font-size:20px;color:#000;font-weight:550}#page .network-message li span[data-v-5eefd6ee]{color:red}#page .network-message li a[data-v-5eefd6ee]{color:#00f}#page form[data-v-5eefd6ee]{display:block;width:100%;margin:3rem 0}#page form label[data-v-5eefd6ee]{display:block;width:100%;margin:1rem 0}#page form label .label-key[data-v-5eefd6ee]{display:block;width:100%;font-size:1.3em;margin-bottom:.5rem}#page form label .label-key span[data-v-5eefd6ee]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#page form label .label-key span[data-v-5eefd6ee]:before{content:"*";color:#f56c6c;margin-right:4px}#page form label input[data-v-5eefd6ee],#page form label select[data-v-5eefd6ee]{width:100%;display:block;height:42px}#page .chose_dhcp[data-v-5eefd6ee]{height:1em;font-size:1.3em}#page .chose_dhcp .dhcp_info[data-v-5eefd6ee]{margin-left:10px;user-select:none}#page .msgs[data-v-5eefd6ee]{width:100%;display:block;height:36px;line-height:36px;color:red;font-size:1.3em}#page p.msg[data-v-5eefd6ee]{width:100%;display:block;color:red;font-size:1em}#page .btns[data-v-5eefd6ee]{width:100%;margin-top:3rem}#page .btns button[data-v-5eefd6ee]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-3d6d1dea{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3d6d1dea{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3d6d1dea{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3d6d1dea]{animation:rotateEnter-3d6d1dea .7s;position:relative}.rotate-leave-active[data-v-3d6d1dea]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3d6d1dea]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page[data-v-3d6d1dea]{width:100%;padding:1rem;margin:100px auto 0;display:flex;flex-wrap:wrap;justify-content:flex-start;max-width:600px}#page h2.title[data-v-3d6d1dea]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0 0 10px;text-align:left;background-color:#f4f5f7;box-shadow:none}#page h3.desc[data-v-3d6d1dea]{width:100%;display:block;color:#666;font-size:1.2em;padding:0;text-align:left;background-color:#f4f5f7;box-shadow:none}#page code[data-v-3d6d1dea]{background-color:#eee;display:block;width:100%;font-size:1.3em;padding:1rem;line-height:2;margin:2rem 0}#page div.info[data-v-3d6d1dea]{width:100%;display:block;margin:1rem 0;font-size:1.3em;text-align:left}#page .msgs[data-v-3d6d1dea]{width:100%;display:block;height:36px;line-height:36px;color:red;font-size:1.3em}#page p.msg[data-v-3d6d1dea]{width:100%;display:block;color:red;font-size:1em}#page .btns[data-v-3d6d1dea]{width:100%;display:block;margin-top:3rem}#page .btns button[data-v-3d6d1dea]{display:block;width:100%!important;margin:.5rem 0}#page form[data-v-3d6d1dea]{display:block;width:100%;margin:3rem 0}#page form label[data-v-3d6d1dea]{display:block;width:100%;margin:1rem 0}#page form label .label-key[data-v-3d6d1dea]{display:block;width:100%;font-size:1.3em;margin-bottom:.5rem}#page form label .label-key span[data-v-3d6d1dea]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#page form label .label-key span[data-v-3d6d1dea]:before{content:"*";color:#f56c6c;margin-right:4px}#page form label input[data-v-3d6d1dea],#page form label select[data-v-3d6d1dea]{width:100%;display:block;height:42px}.switch_inline[data-v-3d6d1dea]{height:1em;font-size:1.3em}.switch_inline .switch_info[data-v-3d6d1dea]{margin-left:10px;user-select:none}@keyframes bganimation-7cf2dd18{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-7cf2dd18{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-7cf2dd18{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-7cf2dd18]{animation:rotateEnter-7cf2dd18 .7s;position:relative}.rotate-leave-active[data-v-7cf2dd18]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-7cf2dd18]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}p[data-v-7cf2dd18]{line-height:22px;font-size:14px}.label-item[data-v-7cf2dd18]{width:100%;margin:10px 0}.label-item .label-item_key[data-v-7cf2dd18]{width:100%;font-size:14px;color:#999;margin-bottom:6px}.label-item .label-item_key span[data-v-7cf2dd18]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-7cf2dd18]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-7cf2dd18]{width:100%;margin:10px 0}.label-item .label-item_value select[data-v-7cf2dd18],.label-item .label-item_value input[data-v-7cf2dd18]{width:100%;height:36px;line-height:36px;color:#000}.label-item .label-item_value input[data-v-7cf2dd18]::placeholder{color:#999;font-size:12PX}.label-item .label-item_value label[data-v-7cf2dd18]{width:100%;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;margin:.5rem;border-bottom:1px solid #eee;padding-bottom:10px;font-size:14px;color:#666}.label-item .label-item_value label input[type=checkbox][data-v-7cf2dd18]{top:0}.label-item .label-item_tips[data-v-7cf2dd18]{margin-top:10px;color:#666;font-size:14px}.label-item .label-item_tips svg[data-v-7cf2dd18]{vertical-align:top}span.msg-warning[data-v-7cf2dd18]{width:100%;text-align:left;font-size:14px;color:red;display:block;margin:10px 0}.label-message[data-v-7cf2dd18]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-container_body.setup-loading[data-v-7cf2dd18]{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;align-content:center;text-align:center}.actioner-container_body.setup-loading span[data-v-7cf2dd18]{width:100%;display:block;font-size:1.2em;margin-top:1rem;color:#666}.actioner-container_body.setup-error[data-v-7cf2dd18]{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;align-content:center;text-align:center}.actioner-container_body.setup-error svg.icon[data-v-7cf2dd18]{width:100px;height:100px}.actioner-container_body.setup-error span[data-v-7cf2dd18]{width:100%;display:block;font-size:1.4em;color:#ff6b6b}.actioner-container_body.setup-success[data-v-7cf2dd18]{display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.actioner-container_body.setup-success svg.icon[data-v-7cf2dd18]{width:100px;height:100px}.actioner-container_body.setup-success .body-title[data-v-7cf2dd18]{width:100%;display:block;color:#1e1e1e;font-size:2em;padding:0;margin:1rem 0;text-align:center}.actioner-container_body.setup-success .body-tips[data-v-7cf2dd18]{text-align:center}.actioner-container_body.setup-success .body-info[data-v-7cf2dd18]{color:#666;font-size:1.3em;margin:1rem 0;width:100%;text-align:center}.actioner-container_body.setup-success .body-info span[data-v-7cf2dd18]{display:block}.actioner-container_body.setup-success .body-tips[data-v-7cf2dd18]{margin:1rem 0;display:block;width:100%}.actioner-container_body.setup-success .body-btns[data-v-7cf2dd18]{width:100%;margin-top:3rem}.actioner-container_body.setup-success .body-btns button[data-v-7cf2dd18]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-0ef06e27{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0ef06e27{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0ef06e27{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0ef06e27]{animation:rotateEnter-0ef06e27 .7s;position:relative}.rotate-leave-active[data-v-0ef06e27]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0ef06e27]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}textarea[data-v-0ef06e27]{display:block;width:100%;height:100%;border:none;resize:none}@keyframes bganimation-593445fb{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-593445fb{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-593445fb{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-593445fb]{animation:rotateEnter-593445fb .7s;position:relative}.rotate-leave-active[data-v-593445fb]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-593445fb]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.label-item[data-v-593445fb]{width:100%;margin:10px 0}.label-item .label-item_key[data-v-593445fb]{width:100%;font-size:14px;color:#999;margin-bottom:6px}.label-item .label-item_key span[data-v-593445fb]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-593445fb]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-593445fb]{width:100%}.label-item .label-item_value select[data-v-593445fb]{width:100%;height:36px;line-height:36px;color:#000}.label-item .label-item_value label[data-v-593445fb]{width:100%;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;margin:.5rem;border-bottom:1px solid #eee;padding-bottom:10px;font-size:14px;color:#666}.label-item .label-item_value label input[type=radio][data-v-593445fb]{top:0;margin:0}.label-item .label-item_tips[data-v-593445fb]{margin-top:10px;color:#666;font-size:14px}.label-item .label-item_tips svg[data-v-593445fb]{vertical-align:top}span.msg-warning[data-v-593445fb]{width:100%;text-align:left;font-size:14px;color:red;display:block;margin:10px 0}@keyframes bganimation-77aa4121{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-77aa4121{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-77aa4121{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-77aa4121]{animation:rotateEnter-77aa4121 .7s;position:relative}.rotate-leave-active[data-v-77aa4121]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-77aa4121]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.label-item[data-v-77aa4121]{width:100%;margin:10px 0}.label-item .label-item_key[data-v-77aa4121]{width:100%;font-size:14px;color:#999;margin-bottom:6px}.label-item .label-item_key span[data-v-77aa4121]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-77aa4121]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-77aa4121]{width:100%}.label-item .label-item_value select[data-v-77aa4121]{width:100%;height:36px;line-height:36px;color:#000}.label-item .label-item_value label[data-v-77aa4121]{width:100%;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;margin:.5rem;border-bottom:1px solid #eee;padding-bottom:10px;font-size:14px;color:#666}.label-item .label-item_value label input[type=radio][data-v-77aa4121]{top:0;margin:0}.label-item .label-item_tips[data-v-77aa4121]{margin-top:10px;color:#666;font-size:14px}.label-item .label-item_tips svg[data-v-77aa4121]{vertical-align:top}span.msg-warning[data-v-77aa4121]{width:100%;text-align:left;font-size:14px;color:red;display:block;margin:10px 0}@keyframes bganimation-a924400c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-a924400c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-a924400c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-a924400c]{animation:rotateEnter-a924400c .7s;position:relative}.rotate-leave-active[data-v-a924400c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-a924400c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.label-item[data-v-a924400c]{width:100%;margin:10px 0}.label-item .label-item_key[data-v-a924400c]{width:100%;font-size:14px;color:#999;margin-bottom:6px}.label-item .label-item_key span[data-v-a924400c]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-a924400c]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-a924400c]{width:100%}.label-item .label-item_value select[data-v-a924400c]{width:100%;height:36px;line-height:36px;color:#000}.label-item .label-item_value label[data-v-a924400c]{width:100%;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;margin:.5rem;border-bottom:1px solid #eee;padding-bottom:10px;font-size:14px;color:#666}.label-item .label-item_value label input[type=radio][data-v-a924400c]{top:0;margin:0}.label-item .label-item_tips[data-v-a924400c]{margin-top:10px;color:#666;font-size:14px}.label-item .label-item_tips svg[data-v-a924400c]{vertical-align:top}span.msg-warning[data-v-a924400c]{width:100%;text-align:left;font-size:14px;color:red;display:block;margin:10px 0}@keyframes bganimation-6ef94d02{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6ef94d02{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6ef94d02{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6ef94d02]{animation:rotateEnter-6ef94d02 .7s;position:relative}.rotate-leave-active[data-v-6ef94d02]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6ef94d02]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action-main[data-v-6ef94d02]{width:680px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.action-main[data-v-6ef94d02] .actioner-container{width:100%}.action-main[data-v-6ef94d02] .actioner-container .actioner-container_header{width:100%;height:50px;line-height:50px;display:flex;flex-wrap:wrap;align-items:center;font-size:20px;border-bottom:1px solid #eee;justify-content:center;padding:0 10px}.action-main[data-v-6ef94d02] .actioner-container .actioner-container_footer{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action-main[data-v-6ef94d02] .actioner-container .actioner-container_footer button{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action-main[data-v-6ef94d02] .actioner-container .actioner-container_footer .close{min-width:65px;font-weight:400;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action-main[data-v-6ef94d02] .actioner-container .actioner-container_footer .next{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:74px;height:32px;background:#553AFE;border-radius:2px}.action-main[data-v-6ef94d02] .actioner-container .actioner-container_footer .next.save{height:32px;background:#553AFE;border-radius:2px;line-height:16px}.action-main[data-v-6ef94d02] .actioner-container .actioner-container_footer .next:hover,.action-main[data-v-6ef94d02] .actioner-container .actioner-container_footer .close:hover{opacity:.9}.action-main[data-v-6ef94d02] .actioner-container .actioner-container_body{padding:20px;width:100%;height:400px}@keyframes bganimation-6ef94d02{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6ef94d02{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6ef94d02{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6ef94d02]{animation:rotateEnter-6ef94d02 .7s;position:relative}.rotate-leave-active[data-v-6ef94d02]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6ef94d02]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 800px){.action-main[data-v-6ef94d02]{width:90%}}@keyframes bganimation-30707fb2{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-30707fb2{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-30707fb2{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-30707fb2]{animation:rotateEnter-30707fb2 .7s;position:relative}.rotate-leave-active[data-v-30707fb2]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-30707fb2]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.cbi-map-descr[data-v-30707fb2]{margin-bottom:32px}.item-status[data-v-30707fb2]{word-break:break-all;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.item-status-detail[data-v-30707fb2]{text-decoration:underline;cursor:help}@keyframes bganimation-16dd0913{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-16dd0913{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-16dd0913{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-16dd0913]{animation:rotateEnter-16dd0913 .7s;position:relative}.rotate-leave-active[data-v-16dd0913]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-16dd0913]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page .cbi-map-descr[data-v-16dd0913]{margin-bottom:1rem}#page[data-v-16dd0913] .cbi-section{padding:1rem}#page[data-v-16dd0913] span.cbi-page-actions.control-group{width:100%;display:block}@keyframes bganimation-742230ae{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-742230ae{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-742230ae{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-742230ae]{animation:rotateEnter-742230ae .7s;position:relative}.rotate-leave-active[data-v-742230ae]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-742230ae]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action-main[data-v-742230ae]{width:680px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.action-main[data-v-742230ae] .actioner-container{width:100%}.action-main[data-v-742230ae] .actioner-container .actioner-container_header{width:100%;height:50px;line-height:50px;display:flex;flex-wrap:wrap;align-items:center;font-size:16px;border-bottom:1px solid #eee;justify-content:flex-start;padding:0 1rem;color:#525f7f}.action-main[data-v-742230ae] .actioner-container .actioner-container_footer{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action-main[data-v-742230ae] .actioner-container .actioner-container_footer button{display:inline-block;width:100px!important;margin:0;margin-left:1rem;padding:0;border:none}.action-main[data-v-742230ae] .actioner-container .actioner-container_footer .close{min-width:65px;font-weight:400;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action-main[data-v-742230ae] .actioner-container .actioner-container_footer .next{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:74px;height:32px;background:#553AFE;border-radius:2px}.action-main[data-v-742230ae] .actioner-container .actioner-container_footer .next.save{height:32px;background:#553AFE;border-radius:2px;line-height:16px}.action-main[data-v-742230ae] .actioner-container .actioner-container_footer .next:hover,.action-main[data-v-742230ae] .actioner-container .actioner-container_footer .close:hover{opacity:.9}.action-main[data-v-742230ae] .actioner-container .actioner-container_body{padding:20px;width:100%;min-height:400px}.action-main[data-v-742230ae] .actioner-container .actioner-container_body label.cbi-value-title{width:150px!important}@keyframes bganimation-742230ae{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-742230ae{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-742230ae{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-742230ae]{animation:rotateEnter-742230ae .7s;position:relative}.rotate-leave-active[data-v-742230ae]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-742230ae]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 800px){.action-main[data-v-742230ae]{width:90%}}@keyframes bganimation-70c3aae0{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-70c3aae0{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-70c3aae0{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-70c3aae0]{animation:rotateEnter-70c3aae0 .7s;position:relative}.rotate-leave-active[data-v-70c3aae0]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-70c3aae0]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}textarea[data-v-70c3aae0]{display:block;width:100%;height:400px;padding:1rem;font-size:14px;resize:none;border:none;background-color:#1e1e1e;color:#fff}@keyframes bganimation-313197ee{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-313197ee{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-313197ee{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-313197ee]{animation:rotateEnter-313197ee .7s;position:relative}.rotate-leave-active[data-v-313197ee]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-313197ee]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}textarea[data-v-313197ee]{display:block;width:100%;height:400px;padding:1rem;font-size:14px;resize:none;border:none;background-color:#1e1e1e;color:#fff}@keyframes bganimation-76197cba{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-76197cba{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-76197cba{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-76197cba]{animation:rotateEnter-76197cba .7s;position:relative}.rotate-leave-active[data-v-76197cba]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-76197cba]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}textarea[data-v-76197cba]{display:block;width:100%;height:500px;padding:1rem;font-size:14px;resize:none;border:1px solid #999;border-radius:3px}@keyframes bganimation-02f10ac5{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-02f10ac5{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-02f10ac5{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-02f10ac5]{animation:rotateEnter-02f10ac5 .7s;position:relative}.rotate-leave-active[data-v-02f10ac5]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-02f10ac5]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.app-container_status-label_bg[data-v-02f10ac5]{flex:0 0 230px;width:230px;height:80px;display:flex;background:var(--app-container_status-label_bg);align-items:center;padding:10px;margin-right:10px;transition:.3s}.app-container_status-label_bg .app-container_status-label_text[data-v-02f10ac5]{margin-left:6px;font-size:14px;line-height:22px;text-align:left}.app-container_status-label_bg .app-container_status-label_text .text_status[data-v-02f10ac5]{color:#999}.app-container_status-label_bg .app-container_status-label_text .text_style[data-v-02f10ac5]{margin:6px 0}.app-container_status-label_bg .app-container_status-label_text .text_style.close[data-v-02f10ac5]{color:#999}.app-container_status-label_bg .app-container_status-label_text .text_info[data-v-02f10ac5]{font-weight:700;font-size:14px}@keyframes bganimation-c88486ac{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-c88486ac{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-c88486ac{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-c88486ac]{animation:rotateEnter-c88486ac .7s;position:relative}.rotate-leave-active[data-v-c88486ac]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-c88486ac]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-dns[data-v-c88486ac]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-c88486ac]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_body[data-v-c88486ac]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .label-item[data-v-c88486ac]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-c88486ac]{width:100%;font-size:16px;color:#666;margin-bottom:10px}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-c88486ac]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-c88486ac]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-c88486ac]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-c88486ac],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-c88486ac]{width:100%;min-height:36px}.actioner-dns .actioner-dns_body .label-message[data-v-c88486ac]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .config-message[data-v-c88486ac]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-c88486ac]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-c88486ac]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-c88486ac{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-c88486ac{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-c88486ac{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-c88486ac]{animation:rotateEnter-c88486ac .7s;position:relative}.rotate-leave-active[data-v-c88486ac]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-c88486ac]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width: 1400px){.actioner-dns .actioner-dns_body[data-v-c88486ac]{min-height:34vh}}@media screen and (max-width: 800px){.actioner-dns[data-v-c88486ac]{width:100%}}@keyframes bganimation-3dabb970{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3dabb970{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3dabb970{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3dabb970]{animation:rotateEnter-3dabb970 .7s;position:relative}.rotate-leave-active[data-v-3dabb970]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3dabb970]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}[data-v-3dabb970] .app-container_status-label_bg{margin:8px 0;flex:0 0 170px;height:80px;justify-content:start}[data-v-3dabb970] .interface-device-flex{justify-content:start}.container[data-v-3dabb970]{width:100%;overflow-x:auto}.container .table-wrapper[data-v-3dabb970]{min-width:1280px;width:max-content}.container .table-wrapper .table-body[data-v-3dabb970]{display:flex;flex-direction:column;min-width:100%}.container .table-wrapper .table-header[data-v-3dabb970]{display:flex;border-bottom:2px solid #e5e7eb;background-color:#f8fafc;padding-left:10px}.container .table-wrapper .table-row[data-v-3dabb970]{display:flex;min-width:100%;align-items:center;border-bottom:1px solid #e5e7eb;transition:background-color .2s}.container .table-wrapper .table-row[data-v-3dabb970]:hover{background-color:#f3f4f6}.container .table-wrapper .add-row[data-v-3dabb970]{cursor:pointer}.container .table-wrapper .add-row[data-v-3dabb970]:hover{background-color:#f0f9ff}.container .table-wrapper .table-cell[data-v-3dabb970]{padding:12px 16px;box-sizing:border-box;display:flex;justify-content:center}.container .table-wrapper .device-col[data-v-3dabb970]{flex:0 0 200px;min-width:200px}.container .table-wrapper .spacer-col[data-v-3dabb970]:first-of-type{flex:0 0 10px}.container .table-wrapper .spacer-col[data-v-3dabb970]:last-of-type{flex:0 0 32px}.container .table-wrapper .name-col[data-v-3dabb970]{flex:0 0 150px;min-width:150px;text-align:left}.container .table-wrapper .action-col[data-v-3dabb970]{flex:0 0 auto;text-align:right;min-width:160px}.container .table-wrapper .icon[data-v-3dabb970]{width:48px;height:100%;cursor:pointer}.container .table-wrapper .interface-device-flex[data-v-3dabb970]{display:flex;justify-content:center;width:100%}.container .cbi-page-actions[data-v-3dabb970]{margin-top:20px;display:flex;justify-content:flex-end}@media (max-width: 768px){.container[data-v-3dabb970] .app-container_status-label_bg{margin:8px 0;flex:0 0 80px;width:120px;height:80px;justify-content:start}.container .table-wrapper[data-v-3dabb970]{min-width:100%}.container .table-cell[data-v-3dabb970]{padding:8px 12px}.container .device-col[data-v-3dabb970]{flex:0 0 120px!important;min-width:120px!important;margin-right:16px}.container .name-col[data-v-3dabb970]{flex:0 0 80px!important;min-width:80px!important}.container .action-col[data-v-3dabb970]{min-width:120px}.container .interface-device-flex[data-v-3dabb970]{flex-direction:column;gap:4px}}tr>td,tr>th,.tr>.td,.tr>.th,.cbi-section-table-row:before,#cbi-wireless>#wifi_assoclist_table>.tr:nth-child(2){border:none}@keyframes bganimation-6c49427e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6c49427e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6c49427e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6c49427e]{animation:rotateEnter-6c49427e .7s;position:relative}.rotate-leave-active[data-v-6c49427e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6c49427e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.custom-table-container[data-v-6c49427e]{width:100%;font-size:14px;color:var(--flow-span-color)}.custom-table-container input[data-v-6c49427e]{margin:0}.custom-table-container .custom-table-wrapper[data-v-6c49427e]{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.custom-table-container .custom-table[data-v-6c49427e]{width:100%;border-collapse:collapse;table-layout:auto}.custom-table-container .custom-table thead[data-v-6c49427e]{border-radius:8px!important;background:#F8F8F8}.custom-table-container .custom-table thead tr th[data-v-6c49427e]{color:var(--flow-span-color)!important;font-weight:500!important;border:none!important;padding:18px 8px!important;white-space:nowrap}.custom-table-container .custom-table tbody tr[data-v-6c49427e]{background:transparent;border-bottom:1px solid #f8f8f8!important}.custom-table-container .custom-table tbody tr[data-v-6c49427e]:last-child{border-bottom:none!important}.custom-table-container .custom-table tbody tr td[data-v-6c49427e]{padding:24px 8px!important;white-space:nowrap}.custom-table-container .custom-table tbody tr:hover td[data-v-6c49427e]{background-color:#00000005!important}.custom-table-container .custom-table tbody tr.empty-row td[data-v-6c49427e]{text-align:center!important;padding:30px 0!important;color:#c98d8d66!important;border-bottom:none!important}.custom-table-container .custom-table .selection-header[data-v-6c49427e],.custom-table-container .custom-table .selection-cell[data-v-6c49427e]{width:50px!important;min-width:50px!important;text-align:center!important}.custom-table-container .pagination-wrapper[data-v-6c49427e]{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:0 8px}.custom-table-container .pagination-wrapper .pagination-info[data-v-6c49427e]{color:#0009;font-size:13px}.custom-table-container .pagination-wrapper .pagination-controls button[data-v-6c49427e]{min-width:32px;height:32px;margin:0 4px;padding:0 8px;background:#fff;color:#000000a6;cursor:pointer;transition:all .3s}.custom-table-container .pagination-wrapper .pagination-controls button[data-v-6c49427e]:hover:not(:disabled){color:#1890ff;border-color:#1890ff}.custom-table-container .pagination-wrapper .pagination-controls button[data-v-6c49427e]:disabled{color:#00000040;background-color:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.custom-table-container .pagination-wrapper .pagination-controls button.active[data-v-6c49427e]{color:#fff;background-color:#1890ff;border-color:#1890ff}@media (max-width: 768px){.custom-table-container .custom-table thead tr th[data-v-6c49427e]{padding:8px 4px!important;font-size:13px!important}.custom-table-container .custom-table tbody tr td[data-v-6c49427e]{padding:12px 4px!important;font-size:13px!important}.custom-table-container .pagination-wrapper[data-v-6c49427e]{flex-direction:column;align-items:flex-start;gap:12px}.custom-table-container .pagination-wrapper .pagination-controls[data-v-6c49427e]{display:flex;flex-wrap:wrap;gap:4px}.custom-table-container .pagination-wrapper .pagination-controls button[data-v-6c49427e]{min-width:28px;height:28px;margin:0;padding:0 6px;font-size:13px}}@keyframes bganimation-9eb77922{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9eb77922{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9eb77922{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9eb77922]{animation:rotateEnter-9eb77922 .7s;position:relative}.rotate-leave-active[data-v-9eb77922]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9eb77922]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.del-button[data-v-9eb77922]{display:inline-flex;justify-content:center;align-items:center;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;text-align:center;box-sizing:border-box;outline:none;margin:0 8px 0 0;transition:all .1s;font-weight:500;user-select:none;padding:8px 15px;font-size:14px;border-radius:4px}.add-button--danger[data-v-9eb77922]{color:#fff;background-color:#553afe;border-color:#553afe}.add-button--danger[data-v-9eb77922]:hover{background:#5c44f8;border-color:#5c44f8;color:#fff}.add-button--danger[data-v-9eb77922]:active{background:#553AFE;border-color:#553afe;color:#fff}.add-button.is-disabled[data-v-9eb77922]{opacity:.5;cursor:not-allowed}.del-button--danger[data-v-9eb77922]{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.del-button--danger[data-v-9eb77922]:hover{background:#f78989;border-color:#f78989;color:#fff}.del-button--danger[data-v-9eb77922]:active{background:#dd6161;border-color:#dd6161;color:#fff}.del-button.is-disabled[data-v-9eb77922]{opacity:.5;cursor:not-allowed}.search_box[data-v-9eb77922]{width:350px}.search_box .search_container[data-v-9eb77922]{display:flex;align-items:center;gap:8px}.search_box .search_container .search_input_wrapper[data-v-9eb77922]{position:relative;flex-grow:1}.search_box .search_container .search_input_wrapper .search_icon[data-v-9eb77922]{position:absolute;right:10px;top:50%;transform:translateY(-50%);fill:#000c;cursor:pointer}.search_box .search_container .search_input_wrapper .search_input[data-v-9eb77922]{width:100%;padding:4px 35px 4px 12px;border-radius:4px;border:1px solid rgba(0,0,0,.6);font-size:14px;outline:none;transition:border-color .3s;color:#222;background:transparent}.search_box .search_container .search_input_wrapper .search_input[data-v-9eb77922]:focus{border-color:#4a90e2}.search_box .search_container .refresh_button[data-v-9eb77922]{background:none;border:none;cursor:pointer;padding:8px;border-radius:50%;transition:background-color .3s;display:flex;align-items:center;justify-content:center}.search_box .search_container .refresh_button[data-v-9eb77922]:hover{background-color:#f0f0f0}.search_box .search_container .refresh_button .refresh_icon[data-v-9eb77922]{fill:#000c;transition:transform .3s}.search_box .search_container .refresh_button.rotate .refresh_icon[data-v-9eb77922]{animation:spin-9eb77922 1s linear infinite}@keyframes spin-9eb77922{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bganimation-9eb77922{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9eb77922{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9eb77922{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9eb77922]{animation:rotateEnter-9eb77922 .7s;position:relative}.rotate-leave-active[data-v-9eb77922]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9eb77922]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media (max-width: 827px){.search_box[data-v-9eb77922]{width:80%}.del-button[data-v-9eb77922]{padding:6px 8px}}@keyframes bganimation-4a18630f{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-4a18630f{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-4a18630f{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-4a18630f]{animation:rotateEnter-4a18630f .7s;position:relative}.rotate-leave-active[data-v-4a18630f]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-4a18630f]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.flow[data-v-4a18630f]{position:relative;height:260px}.flow .echart[data-v-4a18630f]{width:100%;height:100%}.flow .flow-data[data-v-4a18630f]{position:absolute;right:10px;top:10px}.flow .flow-data span[data-v-4a18630f]{display:block;color:var(--flow-span-color);font-size:12px;margin-bottom:5px;font-weight:600;font-family:PingFangSC-Semibold,PingFang SC}@media screen and (max-width: 600px){.flow[data-v-4a18630f]{height:55vw}}@keyframes bganimation-586a633c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-586a633c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-586a633c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-586a633c]{animation:rotateEnter-586a633c .7s;position:relative}.rotate-leave-active[data-v-586a633c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-586a633c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}[data-v-586a633c] .tag-input{padding:4px 12px}.custom-content[data-v-586a633c]{position:relative}.custom-content .img_box[data-v-586a633c]{position:absolute;right:0;top:0;width:100px;height:100px}.custom-content .img_box>img[data-v-586a633c]{width:100%;height:100%}.custom-content .IP_address[data-v-586a633c]{text-align:center;padding:14px 16px;background:rgba(85,58,254,.1);border-radius:8px;margin-bottom:16px}.custom-content .tip[data-v-586a633c]{text-align:center;margin-top:16px;font-size:12px}.custom-content .item_box[data-v-586a633c]{margin-top:12px;display:flex;align-items:center}.custom-content .item_box>input[data-v-586a633c]{width:45%;color:var(--card-box-shadow);background:transparent!important}.custom-content .item_box>input[data-v-586a633c]::placeholder{color:#8898aa}.custom-content .item_box>select[data-v-586a633c]{width:45%;background:transparent!important;color:var(--card-box-shadow)}.custom-content .item_box>select>option[data-v-586a633c]{padding:4px 12px!important}.custom-content .item_box .item_left[data-v-586a633c]{width:140px;text-align:right}.info-content[data-v-586a633c]{display:flex}.info-content .img_box[data-v-586a633c]{position:relative}.info-content .item_box .item_left[data-v-586a633c]{width:100px}@keyframes bganimation-586a633c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-586a633c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-586a633c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-586a633c]{animation:rotateEnter-586a633c .7s;position:relative}.rotate-leave-active[data-v-586a633c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-586a633c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes bganimation-b2212e7c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b2212e7c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b2212e7c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b2212e7c]{animation:rotateEnter-b2212e7c .7s;position:relative}.rotate-leave-active[data-v-b2212e7c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b2212e7c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.custom-content[data-v-b2212e7c]{position:relative}.custom-content .img_box[data-v-b2212e7c]{position:absolute;right:0;top:0;width:100px;height:100px}.custom-content .img_box>img[data-v-b2212e7c]{width:100%;height:100%}.custom-content .IP_address[data-v-b2212e7c]{text-align:center;padding:14px 16px;background:rgba(85,58,254,.1);border-radius:8px;margin-bottom:16px}.custom-content .tip[data-v-b2212e7c]{text-align:center;margin-top:16px;font-size:12px}.custom-content .item_box[data-v-b2212e7c]{margin-top:12px;display:flex;align-items:center}.custom-content .item_box>input[data-v-b2212e7c]{width:45%;color:var(--card-box-shadow);background:transparent!important}.custom-content .item_box>input[data-v-b2212e7c]::placeholder{color:#8898aa}.custom-content .item_box>select[data-v-b2212e7c]{width:45%;color:var(--card-box-shadow);background:transparent!important}.custom-content .item_box>select>option[data-v-b2212e7c]{padding:4px 12px!important}.custom-content .item_box .item_left[data-v-b2212e7c]{width:140px;text-align:right}.del-button[data-v-b2212e7c]{display:inline-flex;justify-content:center;align-items:center;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;text-align:center;box-sizing:border-box;outline:none;margin:0 8px 0 0;transition:all .1s;font-weight:500;user-select:none;padding:6px 10px;font-size:14px;border-radius:4px}.del-button--danger[data-v-b2212e7c]{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.del-button--danger[data-v-b2212e7c]:hover{background:#f78989;border-color:#f78989;color:#fff}.del-button--danger[data-v-b2212e7c]:active{background:#dd6161;border-color:#dd6161;color:#fff}.edit-button[data-v-b2212e7c]{color:#553afe;border-color:#553afe}.edit-button[data-v-b2212e7c]:hover{background:rgba(85,58,254,.1);border-color:#553afe}.edit-button[data-v-b2212e7c]:active{background:rgba(85,58,254,.2);border-color:#553afe}.del-button.is-disabled[data-v-b2212e7c]{opacity:.5;cursor:not-allowed}@keyframes bganimation-b2212e7c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b2212e7c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b2212e7c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b2212e7c]{animation:rotateEnter-b2212e7c .7s;position:relative}.rotate-leave-active[data-v-b2212e7c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b2212e7c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes bganimation-23c28a68{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-23c28a68{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-23c28a68{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-23c28a68]{animation:rotateEnter-23c28a68 .7s;position:relative}.rotate-leave-active[data-v-23c28a68]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-23c28a68]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.custom-content[data-v-23c28a68]{position:relative}.custom-content .img_box[data-v-23c28a68]{position:absolute;right:0;top:0;width:100px;height:100px}.custom-content .img_box>img[data-v-23c28a68]{width:100%;height:100%}.custom-content .IP_address[data-v-23c28a68]{text-align:center;padding:14px 16px;background:rgba(85,58,254,.1);border-radius:8px;margin-bottom:16px}.custom-content .tip[data-v-23c28a68]{text-align:center;margin-top:16px;font-size:12px}.custom-content .item_box[data-v-23c28a68]{margin-top:12px;display:flex;align-items:center}.custom-content .item_box>input[data-v-23c28a68]{width:45%;color:var(--card-box-shadow);background:transparent!important}.custom-content .item_box>input[data-v-23c28a68]::placeholder{color:#8898aa}.custom-content .item_box>select[data-v-23c28a68]{width:45%;color:var(--card-box-shadow);background:transparent!important}.custom-content .item_box>select>option[data-v-23c28a68]{padding:4px 12px!important}.custom-content .item_box .item_left[data-v-23c28a68]{width:140px;text-align:right}.del-button[data-v-23c28a68]{display:inline-flex;justify-content:center;align-items:center;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;text-align:center;box-sizing:border-box;outline:none;margin:0 8px 0 0;transition:all .1s;font-weight:500;user-select:none;padding:6px 10px;font-size:14px;border-radius:4px}.del-button--danger[data-v-23c28a68]{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.del-button--danger[data-v-23c28a68]:hover{background:#f78989;border-color:#f78989;color:#fff}.del-button--danger[data-v-23c28a68]:active{background:#dd6161;border-color:#dd6161;color:#fff}.del-button.is-disabled[data-v-23c28a68]{opacity:.5;cursor:not-allowed}@keyframes bganimation-23c28a68{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-23c28a68{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-23c28a68{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-23c28a68]{animation:rotateEnter-23c28a68 .7s;position:relative}.rotate-leave-active[data-v-23c28a68]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-23c28a68]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes bganimation-ed203952{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ed203952{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ed203952{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ed203952]{animation:rotateEnter-ed203952 .7s;position:relative}.rotate-leave-active[data-v-ed203952]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ed203952]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.dialog-overlay[data-v-ed203952]{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:16px}.dialog-container[data-v-ed203952]{background-color:#fff;border-radius:12px;padding:16px;width:100%;max-width:400px;box-shadow:0 4px 12px #00000026}.dialog-container .dialog-title[data-v-ed203952]{margin:0 0 20px;font-size:1.2rem;font-weight:500;color:#333;text-align:left}.dialog-container .dialog-message[data-v-ed203952]{margin:20px 0;font-size:1rem;color:#666;text-align:center}.dialog-container .loading-animation[data-v-ed203952]{margin:20px 0}.dialog-container .loading-animation .spinner[data-v-ed203952]{width:40px;height:40px;margin:0 auto;border:4px solid rgba(110,72,170,.2);border-radius:50%;border-top-color:#8d78fa;animation:spin-ed203952 1s linear infinite}.dialog-container .dialog-button[data-v-ed203952]{background-color:#553afe;color:#fff;border:none;border-radius:6px;padding:4px 20px;font-size:1rem;cursor:pointer;transition:all .2s;margin:0 auto;display:block}.dialog-container .dialog-button[data-v-ed203952]:hover{background-color:#553afe;opacity:.9}.dialog-container .dialog-button[data-v-ed203952]:active{transform:scale(.98)}.dialog-container .warning-message[data-v-ed203952]{display:flex;gap:8px;background-color:#fff8e1;border-left:4px solid #FFC107;padding:12px;margin-bottom:20px;border-radius:4px;font-size:.9rem;color:#333;text-align:left}.dialog-container .warning-message .warning-icon[data-v-ed203952]{flex-shrink:0;width:20px;height:20px;color:#ffa000}.dialog-container .input-group[data-v-ed203952]{margin-bottom:16px;text-align:left}.dialog-container .input-group label[data-v-ed203952]{display:block;margin-bottom:8px;font-size:.95rem;color:#333}.dialog-container .input-group .tag-input[data-v-ed203952]{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}.dialog-container .input-group .tag-input[data-v-ed203952]:focus{outline:none;border-color:#6e48aa}.dialog-container .button-group[data-v-ed203952]{display:flex;justify-content:flex-end;gap:12px}.dialog-container .button-group .cancel-button[data-v-ed203952]{background-color:#fff;color:#333;border:1px solid #ddd;border-radius:6px;padding:4px 20px;font-size:1rem;cursor:pointer;transition:all .2s}.dialog-container .button-group .cancel-button[data-v-ed203952]:hover{background-color:#e0e0e0}.dialog-container .button-group .cancel-button[data-v-ed203952]:active{transform:scale(.98)}.dialog-container .button-group .confirm-button[data-v-ed203952]{background-color:#553afe;color:#fff;border:none;border-radius:6px;padding:4px 20px;font-size:1rem;cursor:pointer;transition:all .2s}.dialog-container .button-group .confirm-button[data-v-ed203952]:hover{background-color:#553afe;opacity:.9}.dialog-container .button-group .confirm-button[data-v-ed203952]:active{transform:scale(.98)}.tag-dialog[data-v-ed203952]{max-width:500px}.fade-enter-active[data-v-ed203952],.fade-leave-active[data-v-ed203952]{transition:opacity .3s ease}.fade-enter-from[data-v-ed203952],.fade-leave-to[data-v-ed203952]{opacity:0}@keyframes spin-ed203952{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotate-circle-ed203952{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes icon-line-tip-ed203952{0%{width:0;left:1px;top:15px}54%{width:0;left:1px;top:15px}70%{width:40px;left:-6px;top:30px}84%{width:14px;left:17px;top:38px}to{width:12px;left:8px;top:22px}}@keyframes icon-line-long-ed203952{0%{width:0;right:37px;top:43px}65%{width:0;right:37px;top:43px}84%{width:44px;right:0;top:28px}to{width:20px;right:8px;top:20px}}@media (max-width: 480px){.dialog-container[data-v-ed203952]{padding:16px}.dialog-container .dialog-title[data-v-ed203952]{font-size:1.1rem;margin-bottom:16px}.dialog-container .dialog-message[data-v-ed203952]{font-size:.95rem;margin:16px 0}.dialog-container .warning-message[data-v-ed203952]{font-size:.85rem;padding:10px}.dialog-container .input-group[data-v-ed203952]{margin-bottom:20px}.dialog-container .input-group label[data-v-ed203952]{font-size:.9rem}.dialog-container .input-group .tag-input[data-v-ed203952]{padding:8px 10px;font-size:.95rem}.dialog-container .button-group[data-v-ed203952]{gap:8px}.dialog-container .button-group .cancel-button[data-v-ed203952],.dialog-container .button-group .confirm-button[data-v-ed203952]{padding:4px 16px;font-size:.95rem}.dialog-container .loading-animation .spinner[data-v-ed203952]{width:36px;height:36px}}@keyframes bganimation-102c75ea{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-102c75ea{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-102c75ea{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-102c75ea]{animation:rotateEnter-102c75ea .7s;position:relative}.rotate-leave-active[data-v-102c75ea]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-102c75ea]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.add-button[data-v-102c75ea]{display:inline-flex;justify-content:center;align-items:center;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;text-align:center;box-sizing:border-box;outline:none;margin:0 8px 0 0;transition:all .1s;font-weight:500;user-select:none;padding:8px 12px;font-size:14px;border-radius:4px}.add-button--danger[data-v-102c75ea]{color:#fff;background-color:#553afe;border-color:#553afe}.add-button--danger[data-v-102c75ea]:hover{background:#5c44f8;border-color:#5c44f8;color:#fff}.add-button--danger[data-v-102c75ea]:active{background:#553AFE;border-color:#553afe;color:#fff}.add-button.is-disabled[data-v-102c75ea]{opacity:.5;cursor:not-allowed}.tab-container[data-v-102c75ea]{display:flex;flex-direction:row;width:100%;margin:0 auto;border-radius:8px;overflow:hidden}@media (max-width: 768px){.tab-container[data-v-102c75ea]{flex-direction:column}}.tab-header[data-v-102c75ea]{display:flex;flex-direction:column;width:120px}@media (max-width: 768px){.tab-header[data-v-102c75ea]{flex-direction:row;width:100%;overflow-x:auto;white-space:nowrap}}.tab-button[data-v-102c75ea]{padding:12px 16px;text-align:left;border:none;background:transparent!important;cursor:pointer;font-size:14px;color:var(--flow-span-color);transition:all .3s ease;border-radius:8px 0 0 8px}.tab-button[data-v-102c75ea]:hover{background:var(--tag-bg-color)!important}.tab-button.active[data-v-102c75ea]{background:var(--tag-bg-color)!important;font-weight:500;margin:0}@media (max-width: 768px){.tab-button[data-v-102c75ea]{border-radius:8px 8px 0 0;text-align:center;flex:1;min-width:max-content}.tab-button.active[data-v-102c75ea]{border-radius:8px 8px 0 0}}.tab-content_g[data-v-102c75ea]{flex:1;padding:20px;background:var(--tag-bg-color);border-radius:0 8px 8px 0;min-height:60vh}.tab-content_g .not_installed[data-v-102c75ea]{display:flex;flex-direction:column;align-items:center}.tab-content_g .not_installed>span[data-v-102c75ea]{color:var(--tit-color);margin:20px 0}.tab-content_g .not_installed .not_installed_btn[data-v-102c75ea]{padding:6px 16px;background:#553AFE;border-radius:4px;font-size:14px;color:#fff;cursor:pointer}@media (max-width: 768px){.tab-content_g[data-v-102c75ea]{border-radius:0 0 8px 8px}}.item_box[data-v-102c75ea]{margin-top:12px;display:flex;align-items:center;color:var(--tit-color)!important}.item_box>input[data-v-102c75ea]{width:40%;color:var(--card-box-shadow);background:transparent!important;color:var(--tit-color)!important}@media (max-width: 768px){.item_box>input[data-v-102c75ea]{width:70%}}.item_box>input[data-v-102c75ea]::placeholder{color:var(--item-label_key-span-color)}.item_box>select[data-v-102c75ea]{background:transparent!important;width:40%;color:var(--card-box-shadow)}@media (max-width: 768px){.item_box>select[data-v-102c75ea]{width:70%}}.item_box>select>option[data-v-102c75ea]{padding:4px 12px!important}.item_box .item_left[data-v-102c75ea]{width:140px;text-align:right}@media (max-width: 768px){.item_box .item_left[data-v-102c75ea]{width:100px}}@keyframes bganimation-39804772{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-39804772{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-39804772{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-39804772]{animation:rotateEnter-39804772 .7s;position:relative}.rotate-leave-active[data-v-39804772]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-39804772]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.tab-container[data-v-39804772]{margin:0 auto}.tabs_box_g[data-v-39804772]{display:flex}.tabs_box_g button[data-v-39804772]{padding:14px 24px;border:none;background:none;cursor:pointer;font-size:14px;border-radius:8px 8px 0 0;margin:0;transition:all .3s ease}.tabs_box_g button.active[data-v-39804772]{background:var(--card-bg-color);color:#553afe;font-weight:700;position:relative}.tab-content_g[data-v-39804772]{background:var(--card-bg-color);padding:16px;border-radius:0 8px 8px}.content-item[data-v-39804772]{min-height:60vh}@keyframes bganimation-39804772{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-39804772{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-39804772{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-39804772]{animation:rotateEnter-39804772 .7s;position:relative}.rotate-leave-active[data-v-39804772]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-39804772]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media (max-width: 827px){.tabs_box_g button[data-v-39804772]{padding:7px 12px!important}.tab-content_g[data-v-39804772]{border-radius:0 0 8px 8px}}@keyframes bganimation-cbc39b94{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-cbc39b94{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-cbc39b94{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-cbc39b94]{animation:rotateEnter-cbc39b94 .7s;position:relative}.rotate-leave-active[data-v-cbc39b94]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-cbc39b94]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-cbc39b94]{width:24px;height:24px;margin-right:6px}.icon1[data-v-cbc39b94]{width:16px;height:16px;margin-right:8px}.icon2[data-v-cbc39b94]{width:20px;height:20px;margin-right:8px}.icon3[data-v-cbc39b94]{width:17px;height:17px;margin-right:8px}.m-20[data-v-cbc39b94]{margin:20px 0!important}[data-v-cbc39b94] .modal-container .modal-header{border-bottom:none;padding-bottom:0;padding-left:20px}[data-v-cbc39b94] .modal-container .modal-header .modal-title{text-align:left}[data-v-cbc39b94] .modal-container .modal-content{padding:0 20px 20px}.item_container[data-v-cbc39b94]{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:24px;font-size:16px}.item_container .item[data-v-cbc39b94]{padding:16px;background:var(--card-bg-color);border-radius:10px}.item_container .item .item_title[data-v-cbc39b94]{display:flex;align-items:center}.item_container .item .item_title>span[data-v-cbc39b94]{color:var(--app-container_title-color);display:inline-block;padding-top:2px}.item_container .item>p[data-v-cbc39b94]{color:#717182;margin-top:10px}.item_container .item .wifi_btn[data-v-cbc39b94]{margin:40px 0;display:flex;justify-content:center}.item_container .item .wifi_btn>div[data-v-cbc39b94]{background:#000;padding:12px 24px;border-radius:6px;display:flex;align-items:center;color:#fff;cursor:pointer;font-size:14px}.item_container .item .wifi_btn>div>span[data-v-cbc39b94]{display:inline-block;padding-top:2px}.item_container .item .wifi_btn .start_btn[data-v-cbc39b94]{padding:10px;width:100%;display:flex;justify-content:center}.item_container .item .progress>p[data-v-cbc39b94]{display:flex;justify-content:space-between;font-size:16px;color:#0a0a0a;margin-bottom:12px}.item_container .item .is-bg[data-v-cbc39b94]{opacity:.6;pointer-events:none;cursor:not-allowed}.item_container .item .select_box[data-v-cbc39b94]{margin-top:30px;color:var(--app-container_title-color)}.item_container .item .select_box>select[data-v-cbc39b94]{width:100%;background:#f3f3f5;border-radius:6px;color:var(--app-container_title-color)}.item_container .item .select_box>select.is-placeholder[data-v-cbc39b94]{color:#9aa0a6}.item_container .item .select_box option[disabled][data-v-cbc39b94]{color:#9aa0a6}.item_container .item .select_box option[hidden][data-v-cbc39b94]{display:none}.item_container .item .tip[data-v-cbc39b94]{text-align:center;font-size:14px}.item_container .item .log_info[data-v-cbc39b94]{padding:24px 16px;margin-top:20px;background:black;border-radius:8px;max-height:300px;overflow-y:auto}.item_container .item .log_info[data-v-cbc39b94]::-webkit-scrollbar{height:6px}.item_container .item .log_info[data-v-cbc39b94]::-webkit-scrollbar-thumb{background:#777780;border-radius:6px}.item_container .item .log_info>p[data-v-cbc39b94]{font-size:14px;color:#05df72;margin-bottom:12px}.item_container .item .log_info>p[data-v-cbc39b94]:last-child{margin-bottom:0}.item_container .item .result_box[data-v-cbc39b94]{margin-top:20px}.item_container .item .result_box .result[data-v-cbc39b94]{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px}.item_container .item .result_box .result .result_state[data-v-cbc39b94]{display:flex;flex-direction:column;align-items:center;color:var(--app-container_title-color)}.item_container .item .result_box .result .result_state>div[data-v-cbc39b94]{margin-bottom:6px;font-weight:700;font-size:18px;letter-spacing:.1em}.item_container .item .result_box .result .result_state .result_txt[data-v-cbc39b94]{font-size:12px}.item_container .item .result_box .result .result_item[data-v-cbc39b94]{background:#ececf0;border-radius:6px;padding:20px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center}.item_container .item .result_box .result .result_item .result_title[data-v-cbc39b94]{font-size:16px;color:#0a0a0a;margin-bottom:12px}.item_container .item .result_box .result .result_item .speed_value[data-v-cbc39b94]{font-size:24px;font-weight:700;letter-spacing:.1em}.item_container .item .result_box .result .result_item .speed_title[data-v-cbc39b94]{font-size:12px}.item_container .item .result_box .result .result_item .icon_speed[data-v-cbc39b94]{width:30px;height:30px;margin-bottom:10px}.item_container .item .result_box .result .result_item .icon_speed1[data-v-cbc39b94]{width:26px;height:26px;margin-bottom:10px}.item_container .item .result_box .result .result_item .unit[data-v-cbc39b94]{color:#717182;display:inline-block;margin-bottom:6px}.custom-content p[data-v-cbc39b94]{color:#717182}.custom-content .address_box[data-v-cbc39b94]{background:#ececf0;border-radius:6px;padding:10px 12px;margin-top:16px;display:flex;justify-content:space-between;align-items:center}.custom-content .address_box>span[data-v-cbc39b94]{font-size:16px}.custom-content .address_box>div[data-v-cbc39b94]{background:#fff;padding:6px 12px;border-radius:4px;cursor:pointer}@keyframes spin-cbc39b94{to{transform:rotate(360deg)}}.icon3-wrap[data-v-cbc39b94]{display:inline-flex;width:17px;height:17px;margin-right:8px;align-items:center;justify-content:center}.icon3-wrap .icon3[data-v-cbc39b94]{width:100%;height:100%}.is-rotating[data-v-cbc39b94]{animation:spin-cbc39b94 1s linear infinite;transform-origin:center;transform-box:fill-box;will-change:transform}.line[data-v-cbc39b94]{height:1px;background:#d9d9d9;margin:20px 0}.status[data-v-cbc39b94]{display:inline-block;padding:4px 12px;color:#fff;border-radius:6px;font-size:12px;margin-bottom:10px}.status_bg1[data-v-cbc39b94]{background:#00c950}.status_bg2[data-v-cbc39b94]{background:#2b7fff}.status_bg3[data-v-cbc39b94]{background:#ef4444}.status_bg4[data-v-cbc39b94]{background:#f0b100}@keyframes bganimation-cbc39b94{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-cbc39b94{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-cbc39b94{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-cbc39b94]{animation:rotateEnter-cbc39b94 .7s;position:relative}.rotate-leave-active[data-v-cbc39b94]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-cbc39b94]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media (max-width: 827px){.item_container[data-v-cbc39b94]{grid-template-columns:repeat(1,1fr);grid-gap:12px;padding-bottom:16px}}@keyframes bganimation-164df064{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-164df064{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-164df064{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-164df064]{animation:rotateEnter-164df064 .7s;position:relative}.rotate-leave-active[data-v-164df064]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-164df064]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.icon[data-v-164df064]{width:30px;height:30px;margin-right:10px;display:block}.icon[data-v-164df064] svg{display:block}.container[data-v-164df064]{min-height:87vh}.container .title[data-v-164df064]{font-size:16px;margin-bottom:20px;display:flex;justify-content:center;flex-direction:column}.container .title>div[data-v-164df064]{display:inline-flex;justify-content:center;align-items:center;line-height:1;margin-bottom:10px}.container .title>div>span[data-v-164df064]{color:var(--app-container_title-color);position:relative;top:1px;font-weight:600}.container .title>p[data-v-164df064]{text-align:center;color:#717182}@keyframes bganimation-164df064{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-164df064{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-164df064{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-164df064]{animation:rotateEnter-164df064 .7s;position:relative}.rotate-leave-active[data-v-164df064]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-164df064]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes bganimation-2b19eb04{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-2b19eb04{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-2b19eb04{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-2b19eb04]{animation:rotateEnter-2b19eb04 .7s;position:relative}.rotate-leave-active[data-v-2b19eb04]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-2b19eb04]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}button[data-v-2b19eb04]{outline:none;cursor:pointer;border:none}.pc-radio[data-v-2b19eb04]{display:flex;flex-wrap:wrap;align-items:center}.label-flex.pc-radio label[data-v-2b19eb04]{width:100px;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;color:#666}.label-flex.pc-radio input[type=radio][data-v-2b19eb04]{margin:0 4px 0 0;top:0}.mobile-switch[data-v-2b19eb04]{display:none;align-items:center}.switch-core[data-v-2b19eb04]{position:relative;width:50px;border:1px solid #dcdfe6;outline:none;border-radius:20px;box-sizing:border-box;background:#dcdfe6;cursor:pointer;transition:border-color .3s,background-color .3s;display:inline-block}.switch-core.is-checked[data-v-2b19eb04]{border-color:#409eff;background-color:#409eff}.switch-core.is-disabled[data-v-2b19eb04]{opacity:.6;cursor:not-allowed}.switch-button[data-v-2b19eb04]{position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.switch-core.is-checked .switch-button[data-v-2b19eb04]{transform:translate(20px)}.switch-label[data-v-2b19eb04]{font-size:14px;color:#999}.switch-label.active[data-v-2b19eb04]{color:#409eff}form.form-container[data-v-2b19eb04]{display:block;width:100%;padding:0 1rem;margin-top:50px}form.form-container .label-name[data-v-2b19eb04]{display:block;width:100%;margin-bottom:.5rem;color:var(--item-label_key-span-color)}form.form-container .label-name span[data-v-2b19eb04]:before{content:"*";color:#f56c6c;margin-right:4px;width:10px;display:inline-block;vertical-align:middle}form.form-container .label-value[data-v-2b19eb04]{display:block;width:100%;margin-bottom:1rem}form.form-container .label-value input[data-v-2b19eb04],form.form-container .label-value select[data-v-2b19eb04]{display:block;width:100%;height:42px;background:none;border:1px solid #c2c2c2;color:var(--item-label_key-span-color);font-size:14px}form.form-container .label-value input>option[data-v-2b19eb04],form.form-container .label-value select>option[data-v-2b19eb04]{color:#8898aa}form.form-container .label-value input[data-v-2b19eb04]:focus,form.form-container .label-value select[data-v-2b19eb04]:focus{transition:.2s;border:1px solid #418dfe}form.form-container .label-value select[data-v-2b19eb04]{border-radius:3px;padding:0 10px}form.form-container .label-value input[data-v-2b19eb04]{border-left:none!important;border-right:none!important;border-top:none!important;box-shadow:none!important;padding:0 10px}form.form-container .label-value input[type=checkbox][data-v-2b19eb04],form.form-container .label-value input[type=radio][data-v-2b19eb04]{width:auto}form.form-container .label-value input[type=radio][data-v-2b19eb04]{margin:0 4px 0 0;top:0}form.form-container .label-value input[data-v-2b19eb04]:disabled{background-color:#eee;border:1px solid #c2c2c2;border-radius:3px}form.form-container .label-value input[data-v-2b19eb04]::placeholder{color:var(--item-label_value-span-color);opacity:.54;font-size:14px}form.form-container .label-value input[data-v-2b19eb04]:-ms-input-placeholder{color:var(--item-label_value-span-color);opacity:.54;font-size:14px}form.form-container .label-value input[data-v-2b19eb04]::-ms-input-placeholder{color:var(--item-label_value-span-color);opacity:.54;font-size:14px}form.form-container .label-btns[data-v-2b19eb04]{width:100%;display:flex;flex-wrap:wrap;justify-content:flex-end}form.form-container .label-msg[data-v-2b19eb04]{display:block;width:100%;color:#ff3b3b;font-size:14px}form.form-container .label-msg.warning[data-v-2b19eb04]{color:#f9ad1e}form.form-container .label-flex[data-v-2b19eb04]{width:100%;display:flex;flex-wrap:wrap;align-items:center}form.form-container .label-flex label[data-v-2b19eb04]{width:100px;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;color:#666}.form-item[data-v-2b19eb04]{display:flex;align-items:center;height:55px}.form-item .label-name[data-v-2b19eb04]{width:200px!important}.form-item .label-value[data-v-2b19eb04]{width:300px!important;padding-top:10px;position:relative;display:flex!important;align-items:center}p[data-v-2b19eb04]{font-size:1em;color:#999;line-height:26px;text-align:left;margin-bottom:1rem}.label-btns[data-v-2b19eb04]{width:500px!important;margin-top:1rem}.label-btns .btn[data-v-2b19eb04]{width:300px!important;text-align:center;border-radius:32px}.label-btns .btn[data-v-2b19eb04]:hover{background:#5279f7;transition:.3}.label-btns .primary-btn[data-v-2b19eb04]{border:none;background:#5279f7;color:#fff;margin-bottom:10px}.label-btns .primary-btn[data-v-2b19eb04]:hover{opacity:.9;transition:.3}select[data-v-2b19eb04]:disabled{background-color:#eee!important;border:1px solid #c2c2c2!important}.seeIcon[data-v-2b19eb04]{width:22px;height:22px;position:absolute;cursor:pointer;z-index:1;right:6px;top:50%;transform:translateY(-50%) scale(1);transition:all .3s ease;transform-origin:center}.seeIcon[data-v-2b19eb04]:hover{transform:translateY(-50%) scale(1.1)}@media only screen and (max-width: 1050px){form.form-container[data-v-2b19eb04]{padding:0;margin-top:-16px}form.form-container .form-item[data-v-2b19eb04]{position:relative;height:auto;margin-bottom:0;height:50px;padding-top:6px;border-bottom:1px solid rgba(0,0,0,.16)!important}form.form-container .form-item .label-name[data-v-2b19eb04]{width:100%!important;margin-bottom:0;font-size:14px}form.form-container .form-item .label-name>span[data-v-2b19eb04]{color:var(--item-label_key-span-color)}form.form-container .form-item .label-value[data-v-2b19eb04]{width:100%!important;margin-bottom:0;padding-top:0}form.form-container .form-item .label-value input[data-v-2b19eb04],form.form-container .form-item .label-value select[data-v-2b19eb04]{height:40px;font-size:14px}form.form-container .form-item .label-value .password_input[data-v-2b19eb04]{padding-right:24px}form.form-container .form-item .label-value input[data-v-2b19eb04]{border:none;text-align:right;padding:0}form.form-container .form-item .label-value select[data-v-2b19eb04]:disabled{border:none!important}form.form-container .form-item .label-value select[data-v-2b19eb04]{padding-right:16px!important;border:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:0;outline:none;background:transparent;text-align:right}form.form-container .form-item .label-value[data-v-2b19eb04] ::selection{background:transparent;color:inherit}form.form-container .form-item .label-value[data-v-2b19eb04] ::-moz-selection{background:transparent;color:inherit}form.form-container .label-flex[data-v-2b19eb04]{display:flex}form.form-container .label-flex label[data-v-2b19eb04]{width:100%;margin-bottom:.5rem}form.form-container .label-btns[data-v-2b19eb04]{width:100%!important;margin-top:1.5rem}form.form-container .label-btns .btn[data-v-2b19eb04]{width:100%!important;height:44px;font-size:16px}.seeIcon[data-v-2b19eb04]{width:20px;height:20px;right:0}.pc-radio[data-v-2b19eb04],.label-flex[data-v-2b19eb04]{display:none!important}.mobile-switch[data-v-2b19eb04]{display:flex;align-items:center;height:50px}.switch_label[data-v-2b19eb04]{display:flex;justify-content:end}.switch-core[data-v-2b19eb04]{width:50px;height:24px}.switch-button[data-v-2b19eb04]{width:20px;height:20px}.switch-core.is-checked .switch-button[data-v-2b19eb04]{transform:translate(26px)}.select-arrow[data-v-2b19eb04]{position:absolute;right:6px;top:50%!important;transform:translateY(-50%)!important;width:10px;height:10px;border-top:2px solid #606165;border-right:2px solid #606165;transform:translateY(-50%) rotate(45deg)!important;pointer-events:none}}@keyframes bganimation-42d0731d{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-42d0731d{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-42d0731d{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-42d0731d]{animation:rotateEnter-42d0731d .7s;position:relative}.rotate-leave-active[data-v-42d0731d]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-42d0731d]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.page-container[data-v-42d0731d]{width:100%;background-color:var(--card-bg-color);border-radius:6px;padding:3rem;margin-top:50px}.mobile-tags-container[data-v-42d0731d]{display:none}.page-flex[data-v-42d0731d]{display:flex}.page-flex .page-sidebar[data-v-42d0731d]{flex:0 0 200px;border-right:1px solid #eee}.page-flex .page-sidebar .item[data-v-42d0731d]{width:100%;height:42px;line-height:42px;font-size:16px;cursor:pointer;color:var(--item-label_key-span-color);display:block;user-select:none;position:relative;display:flex;flex-wrap:wrap;align-items:center}.page-flex .page-sidebar .item[data-v-42d0731d]:hover,.page-flex .page-sidebar .item.activeItem[data-v-42d0731d]{transition:.3s;color:#418cff}.page-flex .page-sidebar .item.activeItem[data-v-42d0731d]:before{content:"";position:absolute;left:-1rem;width:3px;height:20px;background-color:#4388ff}.page-flex .page-main[data-v-42d0731d]{flex:1;padding-left:24px}@media (max-width: 827px){.page-container[data-v-42d0731d]{padding:12px 12px 0 8px;margin-top:0}.page-flex[data-v-42d0731d]{display:block}.page-flex .page-sidebar[data-v-42d0731d]{display:none}.page-flex .page-main[data-v-42d0731d]{padding-left:0;padding-top:16px}.mobile-tags-container[data-v-42d0731d]{display:block;width:100%;margin-bottom:16px;position:relative}.tags-wrapper[data-v-42d0731d]{display:flex;align-items:center;height:40px;position:relative}.tags-scroll[data-v-42d0731d]{flex:1;display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;height:100%;align-items:center;white-space:nowrap;padding-right:40px}.tags-scroll[data-v-42d0731d]::-webkit-scrollbar{display:none}.tag-item[data-v-42d0731d]{flex-shrink:0;padding:7px 12px;margin-right:8px;border-radius:4px;background-color:var(--tag-bg-color);color:var(--item-label_key-span-color);font-size:12px;line-height:18px;cursor:pointer;white-space:nowrap}.tag-item.active[data-v-42d0731d]{background-color:#5279f7;color:#fff}.more-btn-wrapper[data-v-42d0731d]{position:absolute;right:-6px;top:0;height:100%;width:40px;display:flex;align-items:center;justify-content:flex-end;pointer-events:none}.fade-overlay[data-v-42d0731d]{position:absolute;right:0;top:50%;transform:translateY(-50%);width:100px;height:32px;background:var(--gradient-bg-color)}.more-btn[data-v-42d0731d]{width:28px;height:28px;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;cursor:pointer;pointer-events:auto;position:relative;z-index:1}.more-btn .line[data-v-42d0731d]{width:14px;height:2px;background-color:#5279f7;margin:2px 0;border-radius:1px}[data-v-42d0731d] .showSide{z-index:1!important}.popup-overlay[data-v-42d0731d]{position:fixed;inset:0;background-color:#00000080;z-index:1000;display:flex;justify-content:center;align-items:flex-start}.popup-content[data-v-42d0731d]{width:100%;max-height:85vh;background-color:var(--popup-bg-color);border-radius:0 0 4px 4px;animation:slideDown-42d0731d .3s ease-out;overflow-y:auto;padding-top:25px}.popup-content .popup-tag-item[data-v-42d0731d],.popup-content .active[data-v-42d0731d]{text-align:center;padding:8px 12px 5px;width:calc((100% - 24px) / 3)}@keyframes slideDown-42d0731d{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.popup-tags[data-v-42d0731d]{padding:12px;display:flex;flex-wrap:wrap;gap:8px;max-height:70vh;overflow-y:auto}.popup-tag-item[data-v-42d0731d]{padding:7px 12px;border-radius:4px;background-color:#f5f5f5;color:#333;font-size:12px;line-height:18px;cursor:pointer;white-space:nowrap}.popup-tag-item.active[data-v-42d0731d]{background-color:#5279f7;color:#fff}.popup-footer[data-v-42d0731d]{display:flex;padding:12px;border-top:1px solid #f0f0f0}.popup-footer button[data-v-42d0731d]{flex:1;height:36px;border-radius:23px;font-size:14px;cursor:pointer}.popup-footer .cancel-btn[data-v-42d0731d]{background-color:#f5f5f5;color:#000;border:none;margin-right:12px}.popup-footer .confirm-btn[data-v-42d0731d]{background-color:#5279f7;color:#fff;border:none}} +@keyframes bganimation-4cfdbcec{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-4cfdbcec{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-4cfdbcec{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-4cfdbcec]{animation:rotateEnter-4cfdbcec .7s;position:relative}.rotate-leave-active[data-v-4cfdbcec]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-4cfdbcec]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.disk-item-tooltip[data-v-4cfdbcec]{position:fixed;background:#000000b3;z-index:10111;color:#fff;padding:.5rem 1rem;font-size:1em;min-width:200px;line-height:24px}.disk-item-tooltip[data-v-4cfdbcec]:after{content:"";position:absolute;bottom:-6px;border-color:#4c4c4c rgba(0,0,0,0) rgba(0,0,0,0);left:0;right:0;text-align:center;width:0;margin:0 auto;border-width:6px 8px 0;border-style:solid}#main .app-btn,#actioner .app-btn{min-height:36px}@keyframes bganimation-425e333d{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-425e333d{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-425e333d{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-425e333d]{animation:rotateEnter-425e333d .7s;position:relative}.rotate-leave-active[data-v-425e333d]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-425e333d]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#main[data-v-425e333d]{width:100%}#main[data-v-425e333d],#main[data-v-425e333d] *{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd;color-scheme:light}@media(prefers-color-scheme:light){:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd}}@media(prefers-color-scheme:dark){:root{--flow-bg-color: transparent;--flow-span-color: #cccccc;--card-bg-color: #88888822;--card-box-shadow: 0 0 .5rem 0 rgba(0, 0, 0, .35);--app-container_title-color: #cccccc;--app-container_status-label_block: #727272;--item-label_key-span-color: #cccccc;--item-label_value-span-color: #cccccc;--app-container_status-label_bg: #0000001a;--item_btn-border: 1px solid #cccccc;--item_btn-color: #cccccc;--tit-color: #cccccc;--popup-bg-color: #000;--tag-bg-color: #1e1e1e;--gradient-bg-color:linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.8) 62%, rgba(0,0,0,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #0000001a;--SystemUpdateBanner-bg-color: #2c2c2c;--SystemUpdateBanner-border-color: #2c2c2c;--btn-border-color: #727272;--card-txt-color: #32325d;--SystemInfo-bg-color:#2c2c2c;color-scheme:dark}#app svg path{color:#666}#app svg circle{stroke:#666}}@media(prefers-color-scheme:no-preference){:root{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd}}body[theme=normal]{color-scheme:light dark}:root[data-darkmode=true],body[data-quickstart-theme=dark]{--flow-bg-color: transparent;--flow-span-color: #cccccc;--card-bg-color: #88888822;--card-box-shadow: 0 0 .5rem 0 rgba(0, 0, 0, .35);--app-container_title-color: #cccccc;--app-container_status-label_block: #727272;--item-label_key-span-color: #cccccc;--item-label_value-span-color: #cccccc;--app-container_status-label_bg: #0000001a;--item_btn-border: 1px solid #cccccc;--item_btn-color: #cccccc;--tit-color: #cccccc;--popup-bg-color: #000;--tag-bg-color: #1e1e1e;--gradient-bg-color:linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.8) 62%, rgba(0,0,0,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #0000001a;--SystemUpdateBanner-bg-color: #2c2c2c;--SystemUpdateBanner-border-color: #2c2c2c;--btn-border-color: #727272;--card-txt-color: #32325d;--SystemInfo-bg-color:#2c2c2c;color-scheme:dark}:root[data-darkmode=false],body[data-quickstart-theme=light]{--flow-bg-color: #fff;--flow-span-color: rgba(0, 0, 0, .6);--card-bg-color: #fff;--card-box-shadow: 0 0 10px 1px #bfbfbf24;--app-container_title-color: #1e1e1e;--app-container_status-label_block: black;--item-label_key-span-color: #333;--item-label_value-span-color: #333;--app-container_status-label_bg: #f3f3f3;--item_btn-border: 1px solid #553afb;--item_btn-color: #553afb;--tit-color: #1e1e1e;--popup-bg-color: #fff;--tag-bg-color: #f5f5f5;--gradient-bg-color:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.8) 62%, rgba(255,255,255,1) 100%);--breadcrumbs-tit-color:#d6dbf8;--breadcrumbs-tit-color1:#f1f2f9;--border-color: #e5e5e5;--SystemUpdateBanner-bg-color: #eff6ff;--SystemUpdateBanner-border-color: #bedbff;--btn-border-color: #e5e5e5;--card-txt-color: #32325d;--SystemInfo-bg-color:#f9fafd;color-scheme:light}@keyframes bganimation-65fc8e99{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-65fc8e99{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-65fc8e99{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-65fc8e99]{animation:rotateEnter-65fc8e99 .7s;position:relative}.rotate-leave-active[data-v-65fc8e99]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-65fc8e99]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.progress[data-v-65fc8e99]{width:100%;display:block;position:relative;background-color:#eee;border-radius:4px;height:18px;line-height:18px;overflow:hidden}.progress .progress-value[data-v-65fc8e99]{transition:.5s;position:absolute;left:0;top:0;bottom:0;height:100%;text-align:center;color:#fff;vertical-align:middle;font-size:12px}@keyframes bganimation-ffd6a79a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ffd6a79a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ffd6a79a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ffd6a79a]{animation:rotateEnter-ffd6a79a .7s;position:relative}.rotate-leave-active[data-v-ffd6a79a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ffd6a79a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}label.checkbox_switch[data-v-ffd6a79a]{cursor:pointer;display:flex!important;align-items:center;width:initial!important}label.checkbox_switch input[type=checkbox][data-v-ffd6a79a]{height:0!important;width:0!important;opacity:0!important;margin:0!important;padding:0!important;border:none!important}label.checkbox_switch .checkbox_switch_on[data-v-ffd6a79a],label.checkbox_switch .checkbox_switch_off[data-v-ffd6a79a]{flex:none}label.checkbox_switch .checkbox_switch_on[data-v-ffd6a79a]{display:none!important}label.checkbox_switch .checkbox_switch_off[data-v-ffd6a79a]{display:inline-flex!important}label.checkbox_switch input[type=checkbox]:checked~.checkbox_switch_on[data-v-ffd6a79a]{display:inline-flex!important}label.checkbox_switch input[type=checkbox]:checked~.checkbox_switch_off[data-v-ffd6a79a]{display:none!important}label.checkbox_switch svg[data-v-ffd6a79a]{height:1em;width:2em}article[data-v-ba023651]{flex:0 0 100%;max-width:20%;position:relative;border-radius:4px;padding:10px}@media screen and (max-width:1080px){article[data-v-ba023651]{max-width:33.333%}}@keyframes bganimation-ba023651{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ba023651{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ba023651{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ba023651]{animation:rotateEnter-ba023651 .7s;position:relative}.rotate-leave-active[data-v-ba023651]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ba023651]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){article[data-v-ba023651]{max-width:50%}}@keyframes bganimation-46fa4d41{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-46fa4d41{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-46fa4d41{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-46fa4d41]{animation:rotateEnter-46fa4d41 .7s;position:relative}.rotate-leave-active[data-v-46fa4d41]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-46fa4d41]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}a[data-v-46fa4d41]{position:relative;display:block;width:100%;transition:.4s;cursor:pointer}a[data-v-46fa4d41]:hover{transform:scale(1.07);transition:.4s;position:relative}a:hover .cover .thumbnail[data-v-46fa4d41]{box-shadow:0 6px 40px #1c67f2}a .cover[data-v-46fa4d41]{position:relative;padding-top:130%;z-index:1}a .cover[data-v-46fa4d41] .thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;border-radius:6px;overflow:hidden;z-index:1;background-color:#2dc8fd;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}a .cover[data-v-46fa4d41] .thumbnail i{display:block;font-size:100px;color:#eee}a .cover[data-v-46fa4d41] .thumbnail span{display:block;text-align:center;width:100%;color:#eeee;font-size:28px;margin:1rem 0}article:nth-child(9n+1) a .cover .thumbnail[data-v-46fa4d41]{background-color:#ff9100}article:nth-child(9n+2) a .cover .thumbnail[data-v-46fa4d41]{background-color:#2dc8fd}article:nth-child(9n+3) a .cover .thumbnail[data-v-46fa4d41]{background-color:#f66a2c}article:nth-child(9n+4) a .cover .thumbnail[data-v-46fa4d41]{background-color:#9b58de}article:nth-child(9n+5) a .cover .thumbnail[data-v-46fa4d41]{background-color:#297ff3}article:nth-child(9n+6) a .cover .thumbnail[data-v-46fa4d41]{background-color:#27aa8f}article:nth-child(9n+7) a .cover .thumbnail[data-v-46fa4d41]{background-color:#f15a4a}article:nth-child(9n+8) a .cover .thumbnail[data-v-46fa4d41]{background-color:#439c07}@keyframes bganimation-eb59d03b{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-eb59d03b{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-eb59d03b{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-eb59d03b]{animation:rotateEnter-eb59d03b .7s;position:relative}.rotate-leave-active[data-v-eb59d03b]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-eb59d03b]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.select-editable[data-v-eb59d03b]{position:relative;line-height:1.5rem;padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:.25rem;margin:.25rem .1rem}.select-editable select[data-v-eb59d03b],.select-editable input[data-v-eb59d03b]{height:100%;padding:0;border:none;margin:0}.select-editable select[data-v-eb59d03b]{position:relative;width:100%}.select-editable input[data-v-eb59d03b]{position:absolute;top:0;left:.75rem;width:88%}.select-editable select[data-v-eb59d03b]:focus,.select-editable input[data-v-eb59d03b]:focus{outline:none;box-shadow:none}@keyframes bganimation-95233f61{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-95233f61{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-95233f61{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-95233f61]{animation:rotateEnter-95233f61 .7s;position:relative}.rotate-leave-active[data-v-95233f61]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-95233f61]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes turn-95233f61{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.quick-loading[data-v-95233f61]{animation:turn-95233f61 1s steps(12,end) infinite;margin:0!important;padding:0!important;background:none!important;display:flex!important}.quick-loading svg[data-v-95233f61]{width:100%;height:100%}.quick-loading svg path[data-v-95233f61]{fill:#fff}@keyframes bganimation-b6321046{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b6321046{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b6321046{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b6321046]{animation:rotateEnter-b6321046 .7s;position:relative}.rotate-leave-active[data-v-b6321046]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b6321046]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}a[data-v-b6321046]{margin-left:4px;width:20px;vertical-align:middle}a svg[data-v-b6321046]{width:22px;height:22px}a:hover svg path[data-v-b6321046]{fill:#3688ff}.widget-primary-action[data-v-2a34e862]{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;color:inherit;cursor:pointer}.widget-action-icon[data-v-2a34e862]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:none;line-height:0}.widget-action-icon[data-v-2a34e862] svg{width:16px!important;height:16px!important;margin:0!important;flex:none;color:inherit!important}.widget-action-label[data-v-2a34e862]{display:inline-flex;align-items:center;gap:6px;min-width:0;line-height:inherit}.network-dialog-shade[data-v-5faf698a]{position:fixed;inset:0;z-index:4000;background:#07121e66;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;color:var(--c-text,var(--tit-color))}.network-dialog[data-v-5faf698a]{width:560px;min-width:0;max-width:100%;max-height:calc(100vh - 32px);background:var(--c-panel,var(--card-bg-color));border:1px solid var(--c-line,var(--border-color));border-radius:18px;box-shadow:0 24px 80px #0003;display:flex;flex-direction:column;outline:none;box-sizing:border-box}.network-dialog>header[data-v-5faf698a]{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 18px;gap:12px;border-bottom:1px solid var(--c-line,var(--border-color))}.network-dialog h2[data-v-5faf698a]{font-size:17px;background:none;margin:4px 0 0;padding:0;color:inherit;line-height:1.4}.network-dialog small[data-v-5faf698a]{font-size:9px;letter-spacing:2px;color:var(--c-muted,var(--item-label_key-span-color))}.network-dialog-actions>button[data-v-5faf698a]{border:0;background:var(--c-soft,#8881);color:inherit;border-radius:9px;width:32px;height:32px;font-size:23px;cursor:pointer;flex:none}.network-dialog-body[data-v-5faf698a]{padding:20px 24px;overflow:auto;min-height:0;font-size:13px}.network-dialog[data-v-5faf698a] button:focus-visible,.network-dialog[data-v-5faf698a] a:focus-visible{outline:2px solid var(--c-accent,#2583bb);outline-offset:3px}@media(max-width:450px){.network-dialog>header[data-v-5faf698a]{padding:18px}.network-dialog-body[data-v-5faf698a]{padding:16px 18px}}.network-dialog-actions[data-v-5faf698a]{display:flex;align-items:center;gap:12px;flex:none}.network-dialog-actions a[data-v-5faf698a]{font-size:12px;color:var(--c-accent,#2583bb);padding:6px 0}.network-dialog-wide[data-v-5faf698a]{width:1180px;height:calc(100dvh - 48px);max-height:900px}.network-dialog-wide>header[data-v-5faf698a]{padding:10px 20px}.network-dialog-wide h2[data-v-5faf698a]{margin:0}.network-dialog-wide .network-dialog-body[data-v-5faf698a]{padding:0;flex:1;display:flex;overflow:hidden}.network-dialog-wide .network-dialog-actions>button[data-v-5faf698a]{width:40px;height:40px}@media(max-width:600px){.network-dialog-wide[data-v-5faf698a]{height:calc(100dvh - 32px);border-radius:14px}}.widget-menu[data-v-a230b604]{position:relative;display:flex;flex:none}.widget-menu-trigger[data-v-a230b604]{width:var(--widget-more-width,32px);min-height:var(--widget-more-height,32px);display:grid;place-items:center;background:none!important;border:var(--widget-more-border,1px solid var(--c-line,var(--btn-border-color)))!important;border-radius:var(--widget-more-radius,6px);font:var(--widget-more-font,22px/1 Arial)!important;color:var(--c-text,var(--app-container_title-color))!important;cursor:pointer}.widget-menu-options[data-v-a230b604]{position:absolute;right:0;top:calc(100% + 6px);min-width:180px;max-width:min(260px,80vw);padding:6px;z-index:80;background:var(--c-panel,var(--card-bg-color));border:1px solid var(--c-line,var(--border-color));box-shadow:0 10px 30px #17243e22;border-radius:9px}.widget-menu-options button[data-v-a230b604]{display:block;width:100%;min-height:40px;padding:9px 12px!important;text-align:left;background:none;border:0;border-radius:5px;font:14px/1.5 Arial,Microsoft YaHei,sans-serif!important;color:var(--c-text,var(--app-container_title-color));cursor:pointer;white-space:normal}.widget-menu-options button[data-v-a230b604]:hover,.widget-menu-options button[data-v-a230b604]:focus-visible{background:var(--c-soft,#8881)}@media(pointer:coarse){.widget-menu-trigger[data-v-a230b604]{min-width:44px;min-height:44px}.widget-menu-options button[data-v-a230b604]{min-height:44px}}.qs-card-shell{min-width:0;height:100%;color:var(--qs-card-text);background:var(--qs-card-panel);border:1px solid var(--qs-card-line);border-radius:12px;overflow:visible;font:inherit;font-size:14px;line-height:1.5;box-sizing:border-box}.qs-card-shell *{box-sizing:border-box}.qs-card-placeholder{padding:20px}.qs-card-shell h2{font-size:15px;margin:0}.qs-card-shell button{font:inherit;cursor:pointer;color:inherit}.qs-card-shell button:focus-visible,.qs-card-shell a:focus-visible{outline:2px solid var(--qs-card-focus);outline-offset:3px}.qs-card-shell button:disabled{color:var(--qs-card-disabled);cursor:default}.qs-card-shell svg{stroke:currentColor;fill:none}.qs-card-content{padding:18px 20px;min-width:0;height:100%;display:flex;flex-direction:column;gap:12px;color:var(--qs-card-text)}.qs-card-header,.qs-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.qs-card-header h2{display:flex;gap:8px;align-items:center;min-width:0;font-size:15px}.qs-card-header svg{width:20px;height:20px;stroke-width:1.8;flex:none}.qs-card-actions{flex:none}.qs-card-shell button,.qs-card-details button{border:1px solid var(--qs-card-line);border-radius:6px;background:var(--qs-card-soft);padding:5px 10px;min-height:32px}.qs-card-shell .qs-card-primary{color:var(--qs-card-accent);background:var(--qs-card-panel)}.qs-card-menu{position:relative}.qs-card-menu>summary{cursor:pointer;list-style:none;width:30px;min-height:32px;text-align:center;font-size:23px;border:1px solid var(--qs-card-line);border-radius:6px}.qs-card-menu>summary::-webkit-details-marker{display:none}.qs-card-menu>div{position:absolute;right:0;top:calc(100% + 4px);z-index:85;background:var(--qs-card-panel);border:1px solid var(--qs-card-line);border-radius:8px;padding:6px;min-width:165px;box-shadow:0 8px 24px #0002}.qs-card-menu>div>*{display:block;white-space:nowrap;width:100%;padding:8px 10px!important;text-align:left;border:0!important;background:none!important;font:inherit;color:var(--qs-card-text);text-decoration:none}.qs-card-menu>div>*:hover{background:var(--qs-card-soft)!important}.qs-card-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px}.qs-card-metrics>div{min-width:0}.qs-card-metrics span,.qs-card-time,.qs-card-footer,.qs-card-progress small{font-size:11px;color:var(--qs-card-muted)}.qs-card-metrics strong{display:flex;gap:5px;align-items:baseline;font-size:30px;line-height:1.25;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.6px;white-space:nowrap}.qs-card-metrics small{font-size:10px;font-weight:400;color:var(--qs-card-muted);letter-spacing:0}.qs-card-time{margin:0!important;display:flex;flex-wrap:wrap;gap:8px}.qs-card-statuses{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:10px;border-top:1px solid var(--qs-card-line)}.qs-card-statuses>div{min-width:0}.qs-card-statuses span{font-size:10px;color:var(--qs-card-muted);display:block}.qs-card-statuses strong{font-size:12px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qs-card-warning{color:var(--qs-card-warning)}.qs-card-progress{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:12px}.qs-card-progress small{display:block}.qs-card-progress>button{flex:none}.qs-card-alert,.qs-card-note{font-size:11px;line-height:1.6;margin:0!important;overflow-wrap:anywhere}.qs-card-alert{color:var(--qs-card-warning)}.qs-card-alert a,.qs-card-details a{color:var(--qs-card-accent)}.qs-card-alert button,.qs-card-note button{font-size:11px;min-height:28px;padding:2px 6px;margin-left:4px}.qs-card-footer{display:flex;gap:8px;justify-content:space-between;margin-top:auto;padding-top:2px}.qs-card-footer small{font-size:10px;opacity:.8}.qs-card-details dl{display:grid;grid-template-columns:80px minmax(0,1fr);gap:14px}.qs-card-details dd{margin:0;overflow-wrap:anywhere}.qs-card-details dd small,.qs-card-details dd span{display:block;color:var(--qs-card-muted);font-size:11px}.qs-card-details p{font-size:12px;line-height:1.7}.qs-card-details dt{color:var(--qs-card-muted)}@media(pointer:coarse){.qs-card-actions button,.qs-card-menu>summary,.qs-card-progress button{min-height:44px;min-width:44px}.qs-card-menu>div>*{min-height:44px}}.qs-card-summary{padding:8px 12px;gap:3px}.qs-card-summary .qs-card-header h2{font-size:13px;gap:5px}.qs-card-summary .qs-card-header svg{width:16px;height:16px}.qs-card-summary .qs-card-header button,.qs-card-summary .qs-card-menu>summary{min-height:28px;padding:2px 6px}.qs-card-summary .qs-card-menu>summary{font-size:20px;padding:0}.qs-card-summary .qs-card-metrics strong{font-size:23px}.qs-card-summary .qs-card-statuses{display:flex;justify-content:space-between;gap:8px;border:0;padding:0}.qs-card-summary .qs-card-statuses>div{display:flex;gap:5px;align-items:center;min-width:0;max-width:50%}.qs-card-summary .qs-card-statuses strong{font-size:11px}.qs-card-summary .qs-card-statuses span{flex:none}.qs-card-summary .qs-card-footer{display:none}.qs-card-summary .qs-card-progress{font-size:11px}.qs-card-summary .qs-card-progress small,.qs-card-summary .qs-card-progress>button{display:none}.qs-card-summary .qs-card-time{font-size:10px;gap:4px}.qs-card-summary .qs-card-alert,.qs-card-summary .qs-card-note{font-size:10px;line-height:1.4}.qs-card-summary .qs-card-alert button,.qs-card-summary .qs-card-note button{min-height:22px;font-size:10px}@media(pointer:coarse){.qs-card-summary .qs-card-header button,.qs-card-summary .qs-card-menu>summary{min-height:44px;min-width:44px}}#main .qs-card-shell :is(button,a,summary):focus-visible{outline:2px solid var(--qs-card-focus);outline-offset:3px}.icon[data-v-cd24141c]{width:1.5rem;height:1.5rem;margin-right:6px}.display_flex[data-v-cd24141c]{display:flex;align-items:center}.network_container[data-v-cd24141c]{border:1px solid var(--border-color);border-radius:10px;padding:20px 14px;box-sizing:border-box;background-clip:padding-box;background:var(--card-bg-color);height:100%;display:flex;flex-direction:column;min-height:0}.network_container .title_box[data-v-cd24141c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;flex-shrink:0}.network_container .title_box>span[data-v-cd24141c]{font-size:16px;font-weight:600}.network_container .title_box .network_tag[data-v-cd24141c]{display:flex;align-items:center}.network_container .title_box .network_tag .tag_item[data-v-cd24141c]{display:flex;align-items:center;font-size:12px;margin-left:16px}.network_container .title_box .network_tag .tag_item>span[data-v-cd24141c]{line-height:1}.network_container .title_box .network_tag .tag_item>div[data-v-cd24141c]{width:12px;height:12px;border-radius:50%;margin-right:6px}.network_container .title_box .network_tag .tag_item .tag_dn[data-v-cd24141c]{background:#20c7f7}.network_container .title_box .network_tag .tag_item .tag_up[data-v-cd24141c]{background:#553afe}.network_container .echart[data-v-cd24141c]{flex:1;min-height:200px;min-width:0}.network_container .speed[data-v-cd24141c]{display:flex;flex-shrink:0}.network_container .speed .speed_item[data-v-cd24141c]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.network_container .speed .speed_item>span[data-v-cd24141c]{font-size:12px;color:#999;margin-bottom:10px}.network_container .speed .speed_item>div[data-v-cd24141c]{font-size:16px;color:#333}.speed_box[data-v-cd24141c]{display:flex;align-items:center;justify-content:flex-end;margin-top:16px}@keyframes bganimation-cd24141c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-cd24141c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-cd24141c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-cd24141c]{animation:rotateEnter-cd24141c .7s;position:relative}.rotate-leave-active[data-v-cd24141c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-cd24141c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){.network_container[data-v-cd24141c]{border-radius:6px;padding:10px}.network_container .title_box[data-v-cd24141c]{margin-bottom:16px}.network_container .title_box>span[data-v-cd24141c]{font-size:14px;font-weight:600}}@keyframes bganimation-4334b243{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-4334b243{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-4334b243{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-4334b243]{animation:rotateEnter-4334b243 .7s;position:relative}.rotate-leave-active[data-v-4334b243]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-4334b243]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.device-scene-icon[data-v-4334b243]{display:inline-flex;flex:none;align-items:center;justify-content:center;width:42px;height:42px;overflow:hidden;background:linear-gradient(145deg,#6f63c81c,#5fdab412);border:1px solid rgba(111,99,200,.12);border-radius:12px}img[data-v-4334b243]{display:block;width:38px;height:38px;object-fit:contain}@keyframes bganimation-1bb2b3b2{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-1bb2b3b2{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-1bb2b3b2{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-1bb2b3b2]{animation:rotateEnter-1bb2b3b2 .7s;position:relative}.rotate-leave-active[data-v-1bb2b3b2]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-1bb2b3b2]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes turn-1bb2b3b2{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.toast[data-v-1bb2b3b2]{position:fixed;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;justify-content:space-around;box-sizing:content-box;width:100px;max-width:70%;padding:16px;color:#fff;font-size:14px;text-align:center;background-color:#000000b3;border-radius:8px;transform:translate3d(-50%,-50%,0);z-index:9999;transition:.3s;cursor:pointer}.toast div.icon[data-v-1bb2b3b2]{width:50px;height:50px;margin:15px 0;background:none!important}.toast div.icon svg[data-v-1bb2b3b2]{width:100%;height:100%}.toast div.icon svg path[data-v-1bb2b3b2]{fill:#fff}.toast .loading[data-v-1bb2b3b2]{animation:turn-1bb2b3b2 1s steps(12,end) infinite}.toast .message[data-v-1bb2b3b2]{display:block;width:100%;flex:0 0 100%;word-wrap:break-word}.canvas-module[data-v-3d9c87f1]{grid-column:span var(--span);min-width:0;border:1px solid var(--c-line);border-radius:15px;background:var(--c-panel);padding:23px;box-shadow:var(--c-shadow);display:flex;flex-direction:column;color:var(--c-text)}.canvas-module button[data-v-3d9c87f1]{background:none;border:0;color:inherit;cursor:pointer;font:inherit}.canvas-module button[data-v-3d9c87f1]:not(.widget-primary-action):hover{color:var(--c-accent)}.canvas-module svg[data-v-3d9c87f1]{width:19px;height:19px;display:block;flex:none}.canvas-module p[data-v-3d9c87f1],.canvas-module h2[data-v-3d9c87f1]{margin:0}.canvas-module[data-v-3d9c87f1] :focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}.canvas-module>header[data-v-3d9c87f1]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.canvas-module>header>div[data-v-3d9c87f1]{display:flex;align-items:center;gap:9px;min-width:0}.canvas-module>header svg[data-v-3d9c87f1]{color:var(--c-muted);width:17px;height:17px}.canvas-module h2[data-v-3d9c87f1]{font-size:14px;font-weight:600;white-space:nowrap}.module-more[data-v-3d9c87f1]{font-size:11px!important;color:var(--c-accent)!important;display:flex;align-items:center;gap:7px;white-space:nowrap;padding:0}.module-more svg[data-v-3d9c87f1]{width:13px!important;height:13px!important;color:inherit!important}.inventory-heading[data-v-3d9c87f1]{display:flex;align-items:center;gap:16px;margin-bottom:15px}.inventory-heading>strong[data-v-3d9c87f1]{font-size:29px;font-weight:600;letter-spacing:-1px;display:flex;align-items:baseline;gap:8px}.inventory-heading>strong>span[data-v-3d9c87f1]{font-size:12px;letter-spacing:0;font-weight:400;color:var(--c-good)}.inventory-heading>small[data-v-3d9c87f1]{font-size:11px;color:var(--c-muted);margin-left:auto}.inventory-heading>button[data-v-3d9c87f1]{font-size:17px!important;padding:0;color:var(--c-muted)}.canvas-devices[data-v-3d9c87f1]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.canvas-devices>button[data-v-3d9c87f1]{display:flex;align-items:center;gap:10px;text-align:left;padding:13px 11px;border:1px solid var(--c-line);border-radius:10px;min-width:0;position:relative}.canvas-devices>button[data-v-3d9c87f1]:hover{background:var(--c-soft);border-color:var(--c-accent)}.canvas-devices[data-v-3d9c87f1] .device-scene-icon{background:var(--c-soft);border-color:var(--c-line);width:37px;height:37px;border-radius:9px}.canvas-devices[data-v-3d9c87f1] .device-scene-icon img{width:34px;height:34px}.canvas-devices>button>span[data-v-3d9c87f1]:nth-child(2){min-width:0;flex:1}.canvas-devices strong[data-v-3d9c87f1]{font-size:12px;font-weight:550;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--c-text)}.canvas-devices small[data-v-3d9c87f1]{font-size:10px;color:var(--c-muted);display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-online[data-v-3d9c87f1]{display:flex;align-items:center;gap:4px;font-size:9px!important;color:var(--c-good);flex:none}.device-online i[data-v-3d9c87f1],.service-state i[data-v-3d9c87f1]{width:4px;height:4px;border-radius:50%;background:currentColor;display:block;flex:none}.device-online.offline[data-v-3d9c87f1]{color:var(--c-muted)}.canvas-devices .device-address[data-v-3d9c87f1]{font-variant-numeric:tabular-nums}.inventory-footer[data-v-3d9c87f1]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;color:var(--c-muted);font-size:10px}.inventory-footer>small[data-v-3d9c87f1]{font-size:10px}.inventory-footer details[data-v-3d9c87f1]{position:relative}.inventory-footer summary[data-v-3d9c87f1]{color:var(--c-accent);font-size:10px;list-style:none;cursor:pointer;white-space:nowrap}.inventory-footer summary[data-v-3d9c87f1]:after{content:" ⌄"}.inventory-footer details>p[data-v-3d9c87f1]{padding-top:10px;font-size:11px;line-height:1.8;max-width:360px}.inventory-footer[data-v-3d9c87f1]:has(.device-parental-action){flex-wrap:wrap}.device-parental-action[data-v-3d9c87f1]{display:flex;align-items:center;gap:6px;font-size:11px!important;color:var(--c-muted)!important;padding:0;white-space:nowrap}.device-parental-action svg[data-v-3d9c87f1]{width:14px;height:14px;color:var(--c-muted)}.device-parental-action[data-v-3d9c87f1]:hover{color:var(--c-accent)!important}.resource-meters[data-v-3d9c87f1]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:27px;margin-bottom:20px}.resource-meters>div>span[data-v-3d9c87f1]{color:var(--c-muted);font-size:11px}.resource-meters strong[data-v-3d9c87f1]{display:block;font-size:28px;font-weight:550;letter-spacing:-1px;line-height:1.4;margin:3px 0 9px}.resource-meters strong>small[data-v-3d9c87f1]{font-size:12px;letter-spacing:0;color:var(--c-muted);margin-left:3px}.meter[data-v-3d9c87f1]{background:var(--c-soft);height:4px;border-radius:8px;overflow:hidden}.meter i[data-v-3d9c87f1]{display:block;background:var(--c-accent);border-radius:8px;height:100%;min-width:2px}.meter.memory i[data-v-3d9c87f1]{background:#4294aa}.meter.warning i[data-v-3d9c87f1]{background:#c79742}.system-line[data-v-3d9c87f1]{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:6px 0}.system-line>span[data-v-3d9c87f1]{color:var(--c-muted)}.system-line strong[data-v-3d9c87f1]{font-weight:500}.firmware-line[data-v-3d9c87f1]{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--c-muted);padding-top:15px;border-top:1px solid var(--c-line);margin-top:auto}.firmware-line>i[data-v-3d9c87f1]{width:5px;height:5px;border-radius:50%;background:var(--c-good)}.firmware-line details[data-v-3d9c87f1]{margin-left:auto;position:relative}.firmware-line summary[data-v-3d9c87f1]{cursor:pointer;color:var(--c-accent)}.firmware-line p[data-v-3d9c87f1]{font-size:11px;padding-top:8px;overflow-wrap:anywhere}.storage-summary[data-v-3d9c87f1]{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 17px;gap:12px}.storage-summary>span[data-v-3d9c87f1]{font-size:11px;color:var(--c-muted);display:flex;align-items:baseline;gap:7px}.storage-summary strong[data-v-3d9c87f1]{color:var(--c-text);font-size:25px;font-weight:550}.storage-summary>small[data-v-3d9c87f1]{font-size:10px;color:var(--c-warning);padding:4px 7px;background:var(--c-soft);border-radius:5px}.disk-grid[data-v-3d9c87f1]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 26px}.disk-grid>div>div[data-v-3d9c87f1]:first-child{display:flex;align-items:center;gap:10px;margin-bottom:10px}.disk-mark[data-v-3d9c87f1]{width:33px;height:33px;border-radius:9px;background:var(--c-soft);color:var(--c-muted);display:grid;place-items:center}.disk-mark svg[data-v-3d9c87f1]{width:17px;height:17px}.disk-grid strong[data-v-3d9c87f1]{display:block;font-size:12px;font-weight:550}.disk-grid small[data-v-3d9c87f1]{display:block;font-size:10px;color:var(--c-muted);margin-top:2px}.disk-grid>div>div:first-child>span[data-v-3d9c87f1]:last-child{margin-left:auto;font-size:11px;color:var(--c-muted)}.module-bottom-link[data-v-3d9c87f1]{display:flex;align-items:center;gap:8px;font-size:11px!important;color:var(--c-muted)!important;border-top:1px solid var(--c-line)!important;padding:14px 0 0;margin-top:auto;text-align:left}.module-bottom-link svg[data-v-3d9c87f1]{width:14px;height:14px}.module-bottom-link svg[data-v-3d9c87f1]:last-child{margin-left:auto}.module-storage .module-bottom-link[data-v-3d9c87f1]{margin-top:22px}.sharing-list[data-v-3d9c87f1]{display:flex;flex-direction:column;gap:15px}.sharing-list>button[data-v-3d9c87f1]{display:flex;align-items:center;gap:10px;text-align:left;padding:0;min-width:0}.service-symbol[data-v-3d9c87f1]{width:32px;height:32px;display:grid;place-items:center;background:var(--c-soft);color:var(--c-accent);border-radius:9px}.service-symbol svg[data-v-3d9c87f1]{width:17px;height:17px}.sharing-list>button>span[data-v-3d9c87f1]:nth-child(2){font-size:12px;flex:1;min-width:0}.sharing-list small[data-v-3d9c87f1]{display:block;font-size:10px;color:var(--c-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.service-state[data-v-3d9c87f1]{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--c-muted);white-space:nowrap}.service-state.running[data-v-3d9c87f1]{color:var(--c-good)}.sharing-path[data-v-3d9c87f1]{border-top:1px solid var(--c-line);margin-top:19px;padding-top:12px}.sharing-path small[data-v-3d9c87f1]{display:block;font-size:10px;color:var(--c-muted)}.sharing-path strong[data-v-3d9c87f1]{display:block;font-size:11px;font-weight:500;margin-top:4px;overflow-wrap:anywhere}.app-overview[data-v-3d9c87f1]{display:flex;align-items:center;gap:14px;margin:2px 0 21px}.app-symbol[data-v-3d9c87f1]{width:42px;height:42px;border-radius:12px;background:var(--c-soft);display:grid;place-items:center;color:var(--c-accent)}.app-symbol svg[data-v-3d9c87f1]{width:22px;height:22px}.app-overview strong[data-v-3d9c87f1]{font-size:16px;font-weight:550}.app-overview .service-state[data-v-3d9c87f1]{margin-top:5px}.app-detail[data-v-3d9c87f1]{margin-bottom:23px}.app-detail small[data-v-3d9c87f1]{font-size:10px;color:var(--c-muted);display:block}.app-detail strong[data-v-3d9c87f1]{font-size:11px;font-weight:500;display:block;margin-top:5px;overflow-wrap:anywhere}.download-list[data-v-3d9c87f1]{display:flex;flex-direction:column;gap:18px;margin:2px 0 22px}.download-list>button[data-v-3d9c87f1]{display:flex;align-items:center;gap:10px;padding:0;text-align:left;min-width:0}.download-list svg[data-v-3d9c87f1]{width:16px;height:16px;color:var(--c-muted)}.download-list>button>span[data-v-3d9c87f1]:nth-child(2){font-size:12px;flex:1}.download-list .service-state[data-v-3d9c87f1]{font-size:10px}.remote-domain[data-v-3d9c87f1]{font-size:11px;color:var(--c-muted);background:var(--c-soft);border-radius:6px;padding:8px 10px;overflow-wrap:anywhere;margin:-6px 0 13px}.remote-protocols[data-v-3d9c87f1]{display:flex;align-items:center;gap:20px;margin-bottom:18px;font-size:10px;color:var(--c-muted)}.remote-protocols small[data-v-3d9c87f1]{font-size:10px;margin-left:5px}.module-state[data-v-3d9c87f1]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:150px;gap:11px;color:var(--c-muted);padding:16px 10px;flex:1}.module-state>svg[data-v-3d9c87f1]{width:27px;height:27px;color:var(--c-accent)}.module-state strong[data-v-3d9c87f1]{font-size:13px;color:var(--c-text);font-weight:550}.module-state p[data-v-3d9c87f1]{font-size:11px;line-height:1.8}.module-state>button[data-v-3d9c87f1]{font-size:11px;background:var(--c-soft);color:var(--c-accent);border-radius:7px;padding:7px 13px}.module-state>span[data-v-3d9c87f1]{font-size:11px}.module-notice[data-v-3d9c87f1]{font-size:11px;line-height:1.8;padding:9px 11px;background:var(--c-soft);color:var(--c-warning);border-radius:7px;margin:8px 0!important}.skeleton[data-v-3d9c87f1]{height:30px;width:100%;background:var(--c-soft);border-radius:7px}.module-devices:not(.is-wide) .canvas-devices[data-v-3d9c87f1]{grid-template-columns:minmax(0,1fr)}.module-storage:not(.is-wide) .disk-grid[data-v-3d9c87f1]{grid-template-columns:minmax(0,1fr)}.canvas-devices strong[data-v-3d9c87f1]{font-size:13px}.canvas-devices small[data-v-3d9c87f1]{font-size:11px}.canvas-module .device-online[data-v-3d9c87f1]{font-size:10px!important}.canvas-module.module-system.is-wide[data-v-3d9c87f1]{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:20px}.canvas-module.module-system.is-wide>header[data-v-3d9c87f1],.canvas-module.module-system.is-wide .firmware-line[data-v-3d9c87f1]{grid-column:1 / -1;margin-bottom:0}.canvas-module.module-system.is-wide .resource-meters[data-v-3d9c87f1]{margin-bottom:0;grid-column:1}.canvas-module.module-system.is-wide .system-line[data-v-3d9c87f1]{display:block;align-self:center}.canvas-module.module-system.is-wide .system-line>span[data-v-3d9c87f1]{display:block}.canvas-module.module-system.is-wide .system-line strong[data-v-3d9c87f1]{display:block;font-size:18px;margin-top:8px}@media(max-width:760px){.canvas-module.module-system.is-wide[data-v-3d9c87f1]{display:flex;gap:0}.canvas-module.module-system.is-wide .system-line[data-v-3d9c87f1]{display:flex}.canvas-module.module-system.is-wide .system-line strong[data-v-3d9c87f1]{font-size:11px;margin-top:0}}.module-system.is-wide .resource-meters[data-v-3d9c87f1]{grid-template-columns:repeat(2,minmax(0,1fr));gap:45px}.module-system.is-wide .system-line[data-v-3d9c87f1]{max-width:400px}.module-sharing.is-wide .sharing-list[data-v-3d9c87f1]{flex-direction:row;gap:25px}.module-sharing.is-wide .sharing-list>button[data-v-3d9c87f1]{flex:1;flex-wrap:wrap}.module-sharing.is-wide .service-state[data-v-3d9c87f1]{margin-left:42px}.module-downloads.is-wide .download-list[data-v-3d9c87f1]{flex-direction:row;gap:24px}.module-downloads.is-wide .download-list>button[data-v-3d9c87f1]{flex:1}@media(max-width:1250px){.canvas-module[data-v-3d9c87f1]{padding:20px}.canvas-devices[data-v-3d9c87f1]{grid-template-columns:repeat(2,minmax(0,1fr))}.canvas-devices>button[data-v-3d9c87f1]{padding:10px}.inventory-footer[data-v-3d9c87f1]{font-size:9px}.inventory-footer>small[data-v-3d9c87f1]{font-size:9px}.device-online[data-v-3d9c87f1]{font-size:9px!important}.sharing-list[data-v-3d9c87f1]{gap:17px}.sharing-list>button[data-v-3d9c87f1]{gap:7px}.sharing-list small[data-v-3d9c87f1]{font-size:9px}.disk-grid[data-v-3d9c87f1],.resource-meters[data-v-3d9c87f1]{gap:20px}.canvas-module>header[data-v-3d9c87f1]{margin-bottom:18px}}@media(max-width:1080px){.canvas-module[data-v-3d9c87f1]{grid-column:span 6}.canvas-module.module-devices[data-v-3d9c87f1],.canvas-module.module-storage[data-v-3d9c87f1],.canvas-module.module-downloads.is-wide[data-v-3d9c87f1],.canvas-module.module-system.is-wide[data-v-3d9c87f1]{grid-column:span 12}.canvas-devices[data-v-3d9c87f1]{grid-template-columns:repeat(3,minmax(0,1fr))}.module-sharing.is-wide .sharing-list[data-v-3d9c87f1]{flex-direction:column}.module-sharing.is-wide .sharing-list>button[data-v-3d9c87f1]{flex-wrap:nowrap}.module-sharing.is-wide .service-state[data-v-3d9c87f1]{margin-left:0}}@media(max-width:760px){.canvas-module[data-v-3d9c87f1]{grid-column:1 / -1!important;padding:20px;border-radius:13px}.canvas-module>header[data-v-3d9c87f1]{margin-bottom:18px}.canvas-module h2[data-v-3d9c87f1]{font-size:13px}.module-more[data-v-3d9c87f1]{font-size:10px!important}.inventory-heading>strong[data-v-3d9c87f1]{font-size:29px}.inventory-heading>small[data-v-3d9c87f1]{font-size:10px}.canvas-devices[data-v-3d9c87f1]{grid-template-columns:minmax(0,1fr);gap:0}.canvas-devices>button[data-v-3d9c87f1]{padding:13px 0;border:0;border-bottom:1px solid var(--c-line);border-radius:0;gap:12px}.canvas-devices>button[data-v-3d9c87f1]:last-child{border:0}.canvas-devices strong[data-v-3d9c87f1]{font-size:14px}.canvas-devices small[data-v-3d9c87f1]{font-size:11px}.canvas-devices[data-v-3d9c87f1] .device-scene-icon{width:41px;height:41px}.canvas-devices[data-v-3d9c87f1] .device-scene-icon img{width:37px;height:37px}.device-online[data-v-3d9c87f1]{font-size:10px!important}.inventory-footer[data-v-3d9c87f1]{flex-wrap:wrap;gap:8px;margin-top:14px}.inventory-footer>small[data-v-3d9c87f1],.inventory-footer summary[data-v-3d9c87f1]{font-size:10px}.inventory-footer details>p[data-v-3d9c87f1]{max-width:100%}.disk-grid[data-v-3d9c87f1]{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 18px}.disk-mark[data-v-3d9c87f1]{display:none}.disk-grid>div>div[data-v-3d9c87f1]:first-child{gap:5px}.disk-grid small[data-v-3d9c87f1]{font-size:9px}.disk-grid>div>div:first-child>span[data-v-3d9c87f1]:last-child{font-size:10px}.sharing-list[data-v-3d9c87f1]{gap:17px}.sharing-list small[data-v-3d9c87f1]{font-size:10px}.sharing-list>button>span[data-v-3d9c87f1]:nth-child(2){font-size:13px}.service-state[data-v-3d9c87f1]{font-size:11px}.module-sharing.is-wide .sharing-list[data-v-3d9c87f1]{flex-direction:column}.module-sharing.is-wide .service-state[data-v-3d9c87f1]{margin-left:0}.module-downloads.is-wide .download-list[data-v-3d9c87f1]{flex-direction:column}.app-detail strong[data-v-3d9c87f1]{font-size:12px}.module-system.is-wide .resource-meters[data-v-3d9c87f1]{gap:27px}}.application-artwork[data-v-a6133c23]{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}.launcher-editor-preview[data-v-15a93888]{padding:16px;border:1px solid var(--c-line);border-radius:12px;background:var(--c-soft);margin-bottom:24px}.launcher-preview-heading[data-v-15a93888]{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}.launcher-preview-heading>span[data-v-15a93888]{font-size:12px;color:var(--c-muted);font-variant-numeric:tabular-nums}.launcher-editor-instructions[data-v-15a93888]{font-size:12px;line-height:1.7;color:var(--c-muted);margin:8px 0 14px}.launcher-edit-grid[data-v-15a93888]{display:grid;gap:10px;position:relative}.launcher-edit-tile[data-v-15a93888]{position:relative;min-width:0;min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;padding:38px 6px 10px;box-sizing:border-box;background:var(--c-panel);border:1px solid var(--c-line);border-radius:9px}.launcher-edit-tile>strong[data-v-15a93888]{font-size:13px;font-weight:500;text-align:center;line-height:18px;min-height:36px;overflow-wrap:anywhere;max-width:100%}.application-icon[data-v-15a93888]{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--home-icon-blue-bg);color:var(--home-icon-blue)}.application-icon.teal[data-v-15a93888]{background:var(--home-icon-teal-bg);color:var(--home-icon-teal)}.application-icon.violet[data-v-15a93888]{background:var(--home-icon-violet-bg);color:var(--home-icon-violet)}.application-icon svg[data-v-15a93888]{width:21px;height:21px}.launcher-edit-tile button[data-v-15a93888]{position:absolute;top:0;width:44px;height:36px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--c-muted);cursor:pointer;font:22px Arial}.launcher-edit-tile .launcher-drag-handle[data-v-15a93888]{left:0;cursor:grab;touch-action:none}.launcher-edit-tile .launcher-remove[data-v-15a93888]{right:0}.launcher-edit-tile button[data-v-15a93888]:hover{background:var(--c-hover);color:var(--c-text)}.launcher-edit-tile.picked[data-v-15a93888]{border-color:var(--c-accent);box-shadow:0 0 0 2px var(--c-accent)}.launcher-edit-tile.picked .launcher-drag-handle[data-v-15a93888]{cursor:grabbing;color:var(--c-accent)}.shortcut-move[data-v-15a93888]{transition:transform var(--home-motion,.14s) ease}.launcher-empty-preview[data-v-15a93888]{font-size:14px;color:var(--c-muted);padding:22px 4px;line-height:1.7}.launcher-sr-only[data-v-15a93888]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.launcher-edit-tile button[data-v-15a93888]:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}@media(pointer:coarse){.launcher-edit-tile button[data-v-15a93888]{height:44px}.launcher-edit-tile[data-v-15a93888]{padding-top:46px;min-height:140px}}@media(max-width:450px){.launcher-editor-preview[data-v-15a93888]{padding:12px}.launcher-edit-grid[data-v-15a93888]{gap:10px}.launcher-edit-tile>strong[data-v-15a93888]{font-size:13px}.launcher-edit-tile button[data-v-15a93888]{width:44px}}.launchpad-link-form[data-v-2b884351]{max-width:640px;margin:0 auto;font-size:14px}.link-intro[data-v-2b884351]{color:var(--c-muted);line-height:1.8;margin:0 0 22px}.launchpad-link-form>label[data-v-2b884351]:not(.link-pin){display:flex;flex-direction:column;gap:9px;margin:20px 0;font-weight:600}.launchpad-link-form input[data-v-2b884351]:not([type=checkbox]){box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--c-line);background:var(--c-soft);color:var(--c-text);border-radius:10px;min-height:46px;padding:10px 13px;font:400 14px Arial,Microsoft YaHei,sans-serif}.launchpad-link-form small[data-v-2b884351]{font-size:12px;color:var(--c-muted);font-weight:400;line-height:1.7}.launchpad-link-form fieldset[data-v-2b884351]{border:0;padding:0;margin:24px 0}.launchpad-link-form legend[data-v-2b884351]{font-weight:600;margin-bottom:12px}.link-icon-options[data-v-2b884351]{display:flex;gap:8px;flex-wrap:wrap}.launchpad-link-form button[data-v-2b884351]{font:inherit;border:1px solid var(--c-line);color:var(--c-text);background:var(--c-soft);border-radius:9px;min-height:44px;padding:9px 14px;cursor:pointer}.link-icon-options button[data-v-2b884351]{width:48px;height:48px;padding:12px}.link-icon-options svg[data-v-2b884351]{width:22px;height:22px}.link-icon-options [aria-pressed=true][data-v-2b884351]{border-color:var(--c-accent);color:var(--c-accent)}.link-pin[data-v-2b884351]{display:flex;align-items:center;gap:10px;min-height:44px;flex-wrap:wrap}.link-pin input[data-v-2b884351]{width:18px;height:18px}.link-pin small[data-v-2b884351]{margin-left:auto}.link-notice[data-v-2b884351],.link-error[data-v-2b884351],.link-delete-confirm[data-v-2b884351]{padding:12px 14px;background:var(--c-soft);border-radius:10px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.link-error[data-v-2b884351],.link-delete[data-v-2b884351]{color:var(--c-warning)!important}.link-delete-confirm button[data-v-2b884351]{margin:5px 8px 0 0}.launchpad-link-form footer[data-v-2b884351]{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px;padding:18px 0;border-top:1px solid var(--c-line)}.launchpad-link-form footer span[data-v-2b884351]{flex:1}.launchpad-link-form .link-save[data-v-2b884351]{background:var(--c-accent);border-color:var(--c-accent);color:#fff}.launchpad-link-form[data-v-2b884351] :focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}[lock-scroll=true]{overflow:hidden!important;height:100vh}@keyframes bganimation-20b7104a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-20b7104a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-20b7104a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-20b7104a]{animation:rotateEnter-20b7104a .7s;position:relative}.rotate-leave-active[data-v-20b7104a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-20b7104a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.bg[data-v-20b7104a]{position:fixed;inset:0;width:100%;height:100%;background:#00000080;z-index:999}#actioner[data-v-20b7104a]{position:fixed;z-index:1000;width:100%;height:100%;inset:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;overflow:auto}#actioner[data-v-20b7104a],#actioner[data-v-20b7104a] *{-webkit-box-sizing:border-box;-webkit-tap-highlight-color:transparent;box-sizing:border-box;word-wrap:break-word;outline:none}.action-container[data-v-20b7104a]{width:100%;height:100%;background-color:#fff;position:fixed;z-index:9999;inset:0;margin:auto;overflow:auto}.action-container .action-container_header[data-v-20b7104a]{width:100%;height:36px;line-height:36px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:0 .625rem;position:absolute;top:0;left:0;right:0;border-bottom:1px solid #1e1e1e;background-color:#252526}.action-container .action-container_header .title[data-v-20b7104a]{color:#eee;font-size:16px}.action-container .action-container_header button.close[data-v-20b7104a]{width:36px;height:36px;margin:0;padding:10px;background:none;border:none;cursor:pointer;opacity:1}.action-container .action-container_header button.close[data-v-20b7104a] svg.icon{width:100%;height:100%}.action-container .action-container_header button.close[data-v-20b7104a] svg.icon path{fill:#eee}.action-container .action-container_header button.close[data-v-20b7104a]:hover{opacity:.9}.action-container .action-container_body[data-v-20b7104a]{width:100%;height:100%;padding-top:36px}@keyframes dialogEnter{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes dialogLeave{0%{transform:scale(1)}to{transform:scale(0)}}.dialog-enter-active{animation:dialogEnter .3s linear forwards}.dialog-leave-active{animation:dialogLeave .3s linear forwards}.actioner-dns[data-v-e56d6503]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-e56d6503]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_body[data-v-e56d6503]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .label-item[data-v-e56d6503]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-e56d6503]{width:100%;font-size:12px;color:#666}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-e56d6503]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-e56d6503]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-e56d6503]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-e56d6503],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-e56d6503]{width:100%;height:36px}.actioner-dns .actioner-dns_body .chose_dhcp[data-v-e56d6503]{height:1em;font-size:1.3em}.actioner-dns .actioner-dns_body .chose_dhcp .dhcp_info[data-v-e56d6503]{margin-left:10px;user-select:none}.actioner-dns .actioner-dns_body .label-message[data-v-e56d6503]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .config-message[data-v-e56d6503]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-e56d6503]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-e56d6503]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.setting_status[data-v-e56d6503]{text-align:center}.setting_status p[data-v-e56d6503]{margin:10px 0}.setting_status a[data-v-e56d6503]{text-align:center;display:block;text-decoration:none}.NewAdress[data-v-e56d6503]{margin-top:10px}@keyframes bganimation-e56d6503{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e56d6503{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e56d6503{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e56d6503]{animation:rotateEnter-e56d6503 .7s;position:relative}.rotate-leave-active[data-v-e56d6503]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e56d6503]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1400px){.actioner-dns .actioner-dns_body[data-v-e56d6503]{min-height:34vh}}@media screen and (max-width:800px){.actioner-dns[data-v-e56d6503]{width:100%}}.actioner-dns[data-v-c9250761]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-c9250761]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_body[data-v-c9250761]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .label-item[data-v-c9250761]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-c9250761]{width:100%;font-size:12px;color:#666}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-c9250761]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-c9250761]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-c9250761]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-c9250761],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-c9250761]{width:100%;height:36px}.actioner-dns .actioner-dns_body .label-message[data-v-c9250761]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .config-message[data-v-c9250761]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-c9250761]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-c9250761]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-c9250761{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-c9250761{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-c9250761{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-c9250761]{animation:rotateEnter-c9250761 .7s;position:relative}.rotate-leave-active[data-v-c9250761]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-c9250761]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1400px){.actioner-dns .actioner-dns_body[data-v-c9250761]{min-height:34vh}}@media screen and (max-width:800px){.actioner-dns[data-v-c9250761]{width:100%}}.actioner-dns[data-v-c1ba9558]{width:800px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-c1ba9558]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_body[data-v-c1ba9558]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .label-item[data-v-c1ba9558]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-c1ba9558]{width:100%;font-size:12px;color:#666}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-c1ba9558]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-c1ba9558]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-c1ba9558]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-c1ba9558],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-c1ba9558]{height:36px}.actioner-dns .actioner-dns_body .label-message[data-v-c1ba9558]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .config-message[data-v-c1ba9558]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-c1ba9558]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-c1ba9558]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.actioner-dns .select-editable[data-v-c1ba9558]{position:relative;border:solid grey 1px;width:100%}.actioner-dns .select-editable select[data-v-c1ba9558]{top:0;left:0;font-size:14px;border:none;width:100%;margin:0}.actioner-dns .select-editable input[data-v-c1ba9558]{position:absolute;top:-4px;left:0;width:95%;padding:1px;font-size:14px;border:none}.actioner-dns .select-editable select[data-v-c1ba9558]:focus,.actioner-dns .select-editable input[data-v-c1ba9558]:focus{outline:none}.actioner-dns[data-v-c1ba9558] ::placeholder{color:#999}.successed[data-v-c1ba9558]{text-align:center;font-size:14px;margin-bottom:104px}.finished[data-v-c1ba9558]{display:flex;justify-content:center;margin:80px 80px 28px}.docker_moves[data-v-c1ba9558]{text-align:center}.docker_moves .moves[data-v-c1ba9558]{margin-top:10px}.docker_moves .moves input[data-v-c1ba9558]{cursor:pointer}.docker_moves .moves label[data-v-c1ba9558]{margin-left:10px;cursor:pointer}.btns[data-v-c1ba9558]{text-align:center}.item_info[data-v-c1ba9558]{margin-left:10px}.softsource_tit[data-v-c1ba9558]{margin:0 auto}.softsource_successed[data-v-c1ba9558]{width:20%!important}@keyframes bganimation-c1ba9558{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-c1ba9558{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-c1ba9558{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-c1ba9558]{animation:rotateEnter-c1ba9558 .7s;position:relative}.rotate-leave-active[data-v-c1ba9558]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-c1ba9558]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1400px){.actioner-dns .actioner-dns_body[data-v-c1ba9558]{min-height:34vh}}@media screen and (max-width:860px){.actioner-dns[data-v-c1ba9558]{width:100%}}.actioner-dns[data-v-4239794c]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-4239794c]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_header span[data-v-4239794c]{margin:0 auto}.actioner-dns .actioner-dns_body[data-v-4239794c]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .sandbox_roboot_tips[data-v-4239794c]{margin-top:24px;text-align:center}.actioner-dns .actioner-dns_body .disk_loading_icon[data-v-4239794c]{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;padding:10px}.actioner-dns .actioner-dns_body .disk_loading_icon .disk_loading_info[data-v-4239794c]{margin-top:5px}.actioner-dns .actioner-dns_body .disk_tips[data-v-4239794c]{text-align:center;font-size:16px;margin-top:159px;color:#f9ad1e}.actioner-dns .actioner-dns_body .disk_tips svg[data-v-4239794c]{vertical-align:middle}.actioner-dns .actioner-dns_body .disk_tips span[data-v-4239794c]{margin-left:6px}.actioner-dns .actioner-dns_body .sandbox_info[data-v-4239794c]{text-align:center;line-height:22px}.actioner-dns .actioner-dns_body .label-item[data-v-4239794c]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-4239794c]{width:100%;font-size:12px;color:#666}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-4239794c]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-4239794c]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-4239794c]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-4239794c],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-4239794c]{width:100%;height:36px}.actioner-dns .actioner-dns_body .label-message[data-v-4239794c]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .actioner-dns_body .sandbox_tips svg[data-v-4239794c]{vertical-align:middle}.actioner-dns .actioner-dns_body .sandbox_tips span[data-v-4239794c]{font-size:12px;margin-left:4px}.actioner-dns .config-message[data-v-4239794c]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-4239794c]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-4239794c]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.actioner-tips[data-v-4239794c]{width:400px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-tips .actioner-tips_header[data-v-4239794c]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-tips .sandbox_info[data-v-4239794c]{padding:62px 54px;line-height:20px}.actioner-tips .actioner-tips_footer[data-v-4239794c]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.timeout[data-v-4239794c]{margin-top:114px}.timeout span[data-v-4239794c],.sandbox_roboot_refresh[data-v-4239794c]{color:#5e72e4}option[data-v-4239794c]:disabled{background-color:#e0e0e0}@keyframes bganimation-4239794c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-4239794c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-4239794c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-4239794c]{animation:rotateEnter-4239794c .7s;position:relative}.rotate-leave-active[data-v-4239794c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-4239794c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1400px){.actioner-tips_footer button[data-v-4239794c]{width:100%!important}}@media screen and (max-width:900px){.actioner-dns[data-v-4239794c]{width:100%}}@media screen and (max-width:700px){.actioner-dns .actioner-dns_body[data-v-4239794c]{min-height:42vh}.actioner-tips[data-v-4239794c]{width:80%;line-height:22px}.actioner-tips .sandbox_info[data-v-4239794c]{padding:34px 10px;font-size:10px}.actioner-tips .actioner-tips_header[data-v-4239794c]{font-size:20px}.actioner-tips .actioner-tips_footer button[data-v-4239794c]{width:100%!important}}@media screen and (max-width:600px){.actioner-dns .actioner-dns_footer button[data-v-4239794c]{width:100%!important;margin-bottom:10px;margin-left:0}}@media screen and (max-width:500px){.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-4239794c]{width:228px;overflow:hidden;text-overflow:ellipsis}}@media screen and (max-width:400px){.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-4239794c]{width:163px;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_footer button[data-v-4239794c]{width:100%!important;margin-bottom:10px}.actioner-tips .sandbox_info[data-v-4239794c]{padding:3px 10px}}.actioner-dns[data-v-79f9b13d]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-79f9b13d]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_header span[data-v-79f9b13d]{margin:0 auto}.actioner-dns .actioner-dns_body[data-v-79f9b13d]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .sandbox_info[data-v-79f9b13d]{text-align:center;line-height:22px}.actioner-dns .actioner-dns_body .sandbox_environment[data-v-79f9b13d]{font-size:16px;line-height:28px;margin:20px 0}.actioner-dns .actioner-dns_body .sandbox_environment_info[data-v-79f9b13d]{font-size:16px;line-height:28px}.actioner-dns .actioner-dns_body .sandbox_environment_info .sandbox_environment_reboot[data-v-79f9b13d]{color:#5e72e4}.actioner-dns .actioner-dns_body .sandbox_environment_info .sandbox_environment_tex[data-v-79f9b13d]{color:red;font-size:.9em}.actioner-dns .actioner-dns_footer[data-v-79f9b13d]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-79f9b13d]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.actioner-tips[data-v-79f9b13d]{width:400px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-tips .actioner-tips_header[data-v-79f9b13d]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-tips .sandbox_info[data-v-79f9b13d]{padding:62px 54px;line-height:20px}.actioner-tips .actioner-tips_footer[data-v-79f9b13d]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.timeout[data-v-79f9b13d]{margin-top:114px}.timeout span[data-v-79f9b13d]{color:#5e72e4}@keyframes bganimation-79f9b13d{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-79f9b13d{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-79f9b13d{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-79f9b13d]{animation:rotateEnter-79f9b13d .7s;position:relative}.rotate-leave-active[data-v-79f9b13d]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-79f9b13d]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1400px){.actioner-tips_footer button[data-v-79f9b13d]{width:100%!important}}@media screen and (max-width:900px){.actioner-dns[data-v-79f9b13d]{width:100%}}@media screen and (max-width:700px){.actioner-dns .actioner-dns_body[data-v-79f9b13d]{min-height:42vh}.actioner-dns .actioner-dns_footer button[data-v-79f9b13d]{width:100%!important;margin-bottom:10px}.actioner-tips[data-v-79f9b13d]{width:80%;line-height:22px}.actioner-tips .sandbox_info[data-v-79f9b13d]{padding:34px 10px;font-size:10px}.actioner-tips .actioner-tips_header[data-v-79f9b13d]{font-size:20px}.actioner-tips .actioner-tips_footer button[data-v-79f9b13d]{width:100%!important}}@media screen and (max-width:600px){.actioner-dns .actioner-dns_footer button[data-v-79f9b13d]{width:100%!important;margin-bottom:10px;margin-left:0}}@media screen and (max-width:500px){.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-79f9b13d]{width:228px;overflow:hidden;text-overflow:ellipsis}}@media screen and (max-width:400px){.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-79f9b13d]{width:163px;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .sandbox_info[data-v-79f9b13d]{font-size:10px}.actioner-dns .actioner-dns_body .sandbox_environment[data-v-79f9b13d],.actioner-dns .actioner-dns_body .sandbox_environment_info[data-v-79f9b13d]{font-size:12px}.actioner-tips .sandbox_info[data-v-79f9b13d]{padding:3px 10px}}.launcher-tool-action[data-v-c89ea4d3]{font:14px/1.7 Arial,Microsoft YaHei,sans-serif}.launcher-action-notice[data-v-c89ea4d3]{color:var(--c-muted);font-size:12px;margin:0 0 14px}.launcher-tool-action code[data-v-c89ea4d3]{display:block;overflow-wrap:anywhere;padding:12px;background:var(--c-soft);border-radius:8px}.launcher-firmware-options[data-v-c89ea4d3]{display:grid;gap:12px;margin-top:18px}.launcher-firmware-options label[data-v-c89ea4d3]{display:flex;align-items:center;gap:10px}.launcher-tool-action[data-v-c89ea4d3] #actioner{position:static!important;display:block;width:100%;height:auto;overflow:visible}.launcher-tool-action[data-v-c89ea4d3] .bg{display:none}.launcher-tool-action[data-v-c89ea4d3] .actioner-dns,.launcher-tool-action[data-v-c89ea4d3] .actioner-tips{width:100%;background:transparent;color:var(--c-text);overflow:visible}.launcher-tool-action[data-v-c89ea4d3] .actioner-dns_header{display:none}.launcher-tool-action[data-v-c89ea4d3] .actioner-dns_body{padding:0;min-height:0}.launcher-tool-action[data-v-c89ea4d3] .actioner-dns_footer{padding:14px 0 0;font-size:14px}.launcher-tool-action[data-v-c89ea4d3] input,.launcher-tool-action[data-v-c89ea4d3] select{max-width:100%;box-sizing:border-box}.launcher-tool-action[data-v-c89ea4d3] .config-message{font-size:15px;min-height:80px}.home-applications[data-v-3519060e]{margin-top:20px;border:1px solid var(--c-line);border-radius:15px;background:var(--c-panel);padding:18px 21px;color:var(--c-text)}.home-applications[data-v-3519060e]{position:relative}.home-entry-spinner[data-v-3519060e]{position:absolute;inset:-4px;border:2px solid transparent;border-top-color:var(--c-accent);border-right-color:var(--c-accent);border-radius:50%;animation:home-entry-spin-3519060e .8s linear infinite;pointer-events:none}.home-entry-announcement[data-v-3519060e]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.home-entry-error[data-v-3519060e]{position:absolute;right:8px;bottom:8px;z-index:50;width:360px;max-width:calc(100% - 16px);box-sizing:border-box;border:1px solid var(--c-line);border-radius:10px;background:var(--c-panel);box-shadow:0 6px 24px #10192e22;padding:12px 14px;font-size:13px;line-height:1.6;color:var(--c-text);overflow-wrap:anywhere}.home-entry-error>div[data-v-3519060e]{display:flex;align-items:center;gap:14px;margin-top:6px}.home-entry-error button[data-v-3519060e]{color:var(--c-accent);min-height:32px;padding:4px 0}.home-entry-error button[data-v-3519060e]:last-child{margin-left:auto;min-width:32px;font-size:20px}.home-entry-error button[data-v-3519060e]:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}@keyframes home-entry-spin-3519060e{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.home-entry-spinner[data-v-3519060e]{animation:none}}@media(pointer:coarse){.home-entry-error button[data-v-3519060e]{min-height:44px}}.fluid-applications.applications-strip .applications-favorites[data-v-3519060e]{grid-auto-rows:56px}.fluid-applications.applications-strip .applications-favorites>button[data-v-3519060e]{min-height:56px;flex-direction:row;justify-content:flex-start;gap:8px!important;text-align:left}.applications-strip .application-icon[data-v-3519060e]{width:30px;height:30px;border-radius:9px}.fluid-applications.applications-strip .applications-state[data-v-3519060e]{flex-wrap:nowrap;gap:8px}.fluid-applications.applications-strip .applications-state>svg[data-v-3519060e]{display:none}.fluid-applications.applications-strip .applications-state>span[data-v-3519060e]{flex:1;min-width:0}.fluid-applications.applications-strip .applications-state>button[data-v-3519060e]{flex:none}.home-applications svg[data-v-3519060e],.applications-browser svg[data-v-3519060e]{width:17px;height:17px;flex:none}.home-applications button[data-v-3519060e],.applications-browser button[data-v-3519060e]{cursor:pointer;color:inherit;background:none;border:0;font:inherit}.home-applications button[data-v-3519060e]:hover,.applications-browser button[data-v-3519060e]:hover{color:var(--c-accent)}.applications-heading[data-v-3519060e],.applications-heading>div[data-v-3519060e],.applications-tabs[data-v-3519060e],.applications-actions[data-v-3519060e]{display:flex;align-items:center}.applications-heading[data-v-3519060e]{justify-content:space-between;gap:14px;margin-bottom:14px}.applications-heading>div[data-v-3519060e]:first-child{gap:9px;min-width:0}.applications-heading h2[data-v-3519060e]{font-size:13px;font-weight:600;white-space:nowrap}.applications-heading>div>svg[data-v-3519060e]{color:var(--c-muted)}.applications-tabs[data-v-3519060e]{margin-left:15px;gap:4px;border-radius:8px;background:var(--c-soft);padding:3px}.applications-tabs button[data-v-3519060e]{font-size:11px;padding:5px 10px;border-radius:6px;color:var(--c-muted);white-space:nowrap}.applications-tabs button[aria-selected=true][data-v-3519060e]{background:var(--c-panel);color:var(--c-text);box-shadow:0 1px 4px #0000000a}.applications-actions[data-v-3519060e]{gap:15px}.applications-actions>button[data-v-3519060e]{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;color:var(--c-muted);padding:0}.applications-actions svg[data-v-3519060e]{width:13px;height:13px}.applications-actions>span[data-v-3519060e]{height:13px;width:1px;background:var(--c-line)}.applications-actions .software-center[data-v-3519060e]{color:var(--c-accent)}.applications-favorites[data-v-3519060e]{display:grid;grid-template-columns:repeat(var(--favorite-count),minmax(0,1fr));gap:12px}.applications-favorites>button[data-v-3519060e]{display:flex;align-items:center;gap:12px;min-width:0;text-align:left;padding:11px;border-radius:10px}.applications-favorites>button[data-v-3519060e]:hover{background:var(--c-soft)}.application-icon[data-v-3519060e]{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:#edf3ff;color:#527bd0}.application-icon svg[data-v-3519060e]{width:21px;height:21px}.application-icon.teal[data-v-3519060e]{background:#e9f6f4;color:#3c8c85}.application-icon.violet[data-v-3519060e]{background:#f0edff;color:#7c65c5}:root[data-darkmode=true],body[data-quickstart-theme=dark]{background:#34445b;color:#a2beef}:root[data-darkmode=true],body[data-quickstart-theme=dark]{background:#2f4948;color:#9ed6cc}:root[data-darkmode=true],body[data-quickstart-theme=dark]{background:#433d56;color:#c4b6f3}.applications-favorites>button>span[data-v-3519060e]:nth-child(2){min-width:0}.applications-favorites strong[data-v-3519060e]{font-size:12px;font-weight:550;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.applications-favorites small[data-v-3519060e]{font-size:10px;color:var(--c-muted);display:block;margin-top:3px}.applications-favorites .application-arrow[data-v-3519060e]{width:12px;height:12px;margin-left:auto;color:var(--c-muted);opacity:0}.applications-favorites>button:hover .application-arrow[data-v-3519060e]{opacity:1}.applications-system-tools[data-v-3519060e] .canvas-tools-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.applications-system-tools[data-v-3519060e] .canvas-tools-grid button{background:transparent;padding:10px 7px;gap:8px}.applications-system-tools[data-v-3519060e] .canvas-tools-grid span{font-size:11px}.applications-system-tools[data-v-3519060e] .canvas-tools-grid button:hover{background:var(--c-soft)}.applications-fallback[data-v-3519060e]{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid var(--c-line);padding-top:12px;margin-top:12px}.applications-fallback>span[data-v-3519060e]{font-size:10px;color:var(--c-muted)}.applications-fallback>button[data-v-3519060e]{display:flex;align-items:center;gap:6px;font-size:11px;padding:0}.applications-fallback svg[data-v-3519060e]{width:13px;height:13px;color:var(--c-muted)}.applications-fallback svg[data-v-3519060e]:last-child{width:11px;height:11px}.applications-state[data-v-3519060e]{display:flex;align-items:center;justify-content:start;gap:14px;min-height:58px;font-size:11px;color:var(--c-muted);flex-wrap:wrap}.applications-state button[data-v-3519060e]{color:var(--c-accent);font-size:11px;padding:0}.applications-state.error[data-v-3519060e]{color:var(--c-warning)}.applications-collapsed[data-v-3519060e]{position:fixed;bottom:18px;right:24px;z-index:45;display:flex;align-items:center;gap:8px;border-radius:30px;padding:11px 14px;background:var(--c-text)!important;color:var(--c-panel)!important;font-size:11px!important;box-shadow:0 5px 20px #0001}.applications-collapsed svg[data-v-3519060e]{width:15px;height:15px}.applications-backdrop[data-v-3519060e]{position:fixed;top:0;left:var(--design-system-reserve,0px);right:0;bottom:0;z-index:110;background:#0b12263d;backdrop-filter:blur(2px)}.applications-browser[data-v-3519060e]{position:fixed;right:18px;top:18px;bottom:18px;width:620px;max-width:calc(100% - var(--design-system-reserve,0px) - 36px);z-index:115;background:var(--c-panel);border:1px solid var(--c-line);border-radius:20px;box-shadow:0 15px 60px #10192e30;color:var(--c-text);display:flex;flex-direction:column}.applications-browser>header[data-v-3519060e]{padding:25px 25px 18px;display:flex;justify-content:space-between;align-items:center;gap:15px}.applications-browser>header span[data-v-3519060e]{font-size:10px;color:var(--c-accent);letter-spacing:1px}.applications-browser h2[data-v-3519060e]{font-size:22px;font-weight:600;margin-top:6px}.applications-close[data-v-3519060e]{height:32px;width:32px;border-radius:50%;font-size:24px!important;background:var(--c-soft)!important;flex:none;padding:0}.applications-browser-body[data-v-3519060e]{padding:0 25px 22px;overflow:auto;flex:1;min-height:0}.applications-hint[data-v-3519060e]{font-size:11px;color:var(--c-muted);line-height:1.9;margin:0 0 15px!important}.application-search[data-v-3519060e]{display:flex;align-items:center;gap:9px;border:1px solid var(--c-line);background:var(--c-soft);padding:10px 12px;border-radius:8px;color:var(--c-muted);margin-bottom:17px}.application-search svg[data-v-3519060e]{width:15px;height:15px}.application-search input[data-v-3519060e]{font-size:12px;border:0;outline:0;background:none;color:var(--c-text);min-width:0;flex:1}.browser-category-tabs[data-v-3519060e]{display:flex;gap:18px;border-bottom:1px solid var(--c-line);margin-bottom:16px}.browser-category-tabs button[data-v-3519060e]{font-size:12px;color:var(--c-muted);padding:0 0 10px;border-bottom:2px solid transparent}.browser-category-tabs [aria-selected=true][data-v-3519060e]{color:var(--c-accent);border-color:var(--c-accent)}.browser-category-tabs small[data-v-3519060e]{font-size:10px;margin-left:6px;color:var(--c-muted)}.application-catalogue[data-v-3519060e]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.application-catalogue>div[data-v-3519060e]{display:flex;align-items:center;gap:10px;border:1px solid var(--c-line);border-radius:10px;padding:12px;min-width:0}.application-catalogue>div>div[data-v-3519060e]{min-width:0;flex:1}.application-catalogue strong[data-v-3519060e]{font-size:12px;font-weight:550;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.application-catalogue small[data-v-3519060e]{display:block;color:var(--c-muted);font-size:9px;margin-top:4px;line-height:1.6}.application-catalogue button[data-v-3519060e]{width:27px;height:27px;padding:0;display:grid;place-items:center;flex:none;font-size:18px;border:1px solid var(--c-line);border-radius:6px;color:var(--c-muted)}.application-catalogue button[aria-pressed=true][data-v-3519060e]{background:var(--c-accent);color:var(--c-panel);border-color:var(--c-accent)}.application-catalogue button[data-v-3519060e]:disabled{opacity:.35;cursor:default}.favorite-order[data-v-3519060e]{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.favorite-order>div[data-v-3519060e]{display:flex;align-items:center;gap:5px;font-size:10px;background:var(--c-soft);padding:6px 8px;border-radius:6px;max-width:100%}.favorite-order span[data-v-3519060e]{margin-right:5px}.favorite-order button[data-v-3519060e]{font-size:11px;padding:0 3px}.favorite-order button[data-v-3519060e]:disabled{opacity:.3;cursor:default}.browser-tool-list[data-v-3519060e]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.browser-tool-list button[data-v-3519060e],.browser-fallback button[data-v-3519060e]{display:flex;align-items:center;gap:9px;border:1px solid var(--c-line);border-radius:8px;padding:13px;font-size:12px;text-align:left}.browser-tool-list button>svg[data-v-3519060e]:last-child,.browser-fallback button>svg[data-v-3519060e]:last-child{margin-left:auto;width:13px;height:13px;color:var(--c-muted)}.browser-fallback[data-v-3519060e]{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--c-line);margin-top:20px;padding-top:15px}.browser-fallback h3[data-v-3519060e]{font-size:11px;font-weight:500;width:100%;color:var(--c-muted);margin:0}.browser-fallback button[data-v-3519060e]{padding:10px;font-size:11px}.application-limit[data-v-3519060e]{font-size:11px;color:var(--c-warning);margin-top:15px!important}.applications-browser>footer[data-v-3519060e]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 25px;border-top:1px solid var(--c-line);font-size:11px}.applications-browser>footer>span[data-v-3519060e]{color:var(--c-muted);font-size:10px}.applications-browser>footer button[data-v-3519060e]{padding:9px 13px;border:1px solid var(--c-line);border-radius:7px;font-size:12px}.applications-browser>footer .applications-save[data-v-3519060e]{background:var(--c-text);color:var(--c-panel);border-color:var(--c-text)}.applications-browser>footer .software-center[data-v-3519060e]{display:flex;align-items:center;gap:6px;color:var(--c-accent);white-space:nowrap}.home-applications[data-v-3519060e] :focus-visible,.applications-browser[data-v-3519060e] :focus-visible{outline:2px solid var(--c-accent)!important;outline-offset:3px}@media(max-width:1250px){.applications-system-tools[data-v-3519060e] .canvas-tools-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.applications-favorites[data-v-3519060e]{gap:8px}.applications-favorites>button[data-v-3519060e]{padding:9px;gap:9px}.applications-favorites .application-arrow[data-v-3519060e]{display:none}.applications-actions[data-v-3519060e]{gap:12px}}@media(max-width:760px){.home-applications[data-v-3519060e]{padding:17px 16px;margin-top:14px;border-radius:13px}.applications-heading[data-v-3519060e]{align-items:start;gap:12px;flex-wrap:wrap;margin-bottom:12px}.applications-heading>div[data-v-3519060e]:first-child{width:100%}.applications-heading h2[data-v-3519060e]{font-size:13px}.applications-tabs[data-v-3519060e]{margin-left:auto}.applications-actions[data-v-3519060e]{width:100%;justify-content:end;gap:16px}.applications-actions>button[data-v-3519060e]{font-size:10px}.applications-actions>button[data-v-3519060e]:first-child{margin-right:auto}.applications-favorites[data-v-3519060e]{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.applications-favorites>button[data-v-3519060e]{padding:9px 4px}.application-icon[data-v-3519060e]{width:33px;height:33px;border-radius:9px}.application-icon svg[data-v-3519060e]{width:19px;height:19px}.applications-favorites strong[data-v-3519060e]{font-size:12px}.applications-favorites small[data-v-3519060e]{font-size:10px}.applications-system-tools[data-v-3519060e] .canvas-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.applications-system-tools[data-v-3519060e] .canvas-tools-grid button{padding:11px 7px}.applications-system-tools[data-v-3519060e] .canvas-tools-grid span{font-size:12px}.applications-fallback[data-v-3519060e]{gap:12px}.applications-browser[data-v-3519060e]{inset:35px 0 0;width:100%;max-width:100%;border-radius:18px 18px 0 0}.applications-browser>header[data-v-3519060e]{padding:22px 19px 18px}.applications-browser h2[data-v-3519060e]{font-size:21px}.applications-browser-body[data-v-3519060e]{padding:0 19px 20px}.application-catalogue[data-v-3519060e]{grid-template-columns:minmax(0,1fr)}.application-catalogue small[data-v-3519060e]{font-size:10px}.applications-browser>footer[data-v-3519060e]{padding:15px 19px}.applications-collapsed[data-v-3519060e]{right:14px;bottom:73px}.applications-browser>footer>span[data-v-3519060e]{max-width:140px;line-height:1.7}}.fluid-applications .applications-heading[data-v-3519060e]{flex-wrap:nowrap!important;align-items:center!important;min-height:44px;margin-bottom:12px!important;gap:8px!important;flex:none}.fluid-applications .applications-heading>div[data-v-3519060e]:first-child{width:auto!important;min-width:0;gap:8px}.fluid-applications .applications-heading h2[data-v-3519060e]{white-space:normal;line-height:1.4;font-size:13px!important}.fluid-applications .applications-actions[data-v-3519060e]{width:auto!important;flex:none;gap:0!important}.fluid-applications .applications-actions button[data-v-3519060e]{min-width:44px;min-height:44px;justify-content:center;font-size:12px!important}.fluid-applications .applications-favorites[data-v-3519060e]{margin-top:0!important;margin-bottom:0!important;gap:12px!important;grid-auto-rows:82px;align-content:start}.fluid-applications .applications-favorites>button[data-v-3519060e]{padding:4px!important;min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px!important;text-align:center}.fluid-applications .applications-favorites strong[data-v-3519060e]{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:16px;font-size:11px;max-height:32px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fluid-applications .applications-state[data-v-3519060e]{line-height:1.6;gap:8px;min-height:0}.fluid-applications .applications-state button[data-v-3519060e]{min-height:44px}.applications-browser[data-v-3519060e]{font:14px/1.5 Arial,Microsoft YaHei,sans-serif;border-radius:14px}.applications-browser>header>div>span[data-v-3519060e],.applications-browser .applications-hint[data-v-3519060e],.applications-browser .application-catalogue small[data-v-3519060e],.applications-browser .browser-category-tabs small[data-v-3519060e]{font-size:12px}.applications-browser h2[data-v-3519060e]{font-size:20px;line-height:1.4;font-weight:600}.applications-browser .application-search input[data-v-3519060e],.applications-browser .browser-category-tabs button[data-v-3519060e],.applications-browser .application-catalogue strong[data-v-3519060e]{font-size:14px}.applications-browser .application-catalogue small[data-v-3519060e]{overflow-wrap:anywhere}.applications-browser .application-catalogue>div[data-v-3519060e]{padding:12px;gap:10px;background:var(--c-panel);border-radius:10px}.applications-browser .application-catalogue button[data-v-3519060e]{min-width:36px;min-height:36px}.applications-browser .application-icon.blue[data-v-3519060e]{background:var(--home-icon-blue-bg);color:var(--home-icon-blue)}.applications-browser .application-icon.teal[data-v-3519060e]{background:var(--home-icon-teal-bg);color:var(--home-icon-teal)}.applications-browser .application-icon.violet[data-v-3519060e]{background:var(--home-icon-violet-bg);color:var(--home-icon-violet)}.applications-browser .application-catalogue button[aria-pressed=true][data-v-3519060e]{background:var(--c-soft);color:var(--c-accent);border-color:var(--c-accent)}.applications-browser .browser-category-tabs[data-v-3519060e]{gap:14px}.applications-browser .browser-category-tabs button[data-v-3519060e]{white-space:nowrap;min-height:44px}.applications-browser .applications-close[data-v-3519060e]{min-width:36px;min-height:36px}@media(pointer:coarse){.applications-browser .application-catalogue button[data-v-3519060e],.applications-browser .applications-close[data-v-3519060e]{min-width:44px;min-height:44px}}@media(max-width:450px){.applications-browser .browser-category-tabs[data-v-3519060e]{gap:12px}.applications-browser .browser-category-tabs button[data-v-3519060e]{font-size:13px}.applications-browser h2[data-v-3519060e]{font-size:18px}}.launcher-editor-toolbar[data-v-3519060e]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-12px 0 24px}.launcher-editor-toolbar>button[data-v-3519060e]{font-size:13px;padding:8px 10px;border:1px solid var(--c-line);border-radius:7px;min-height:36px}.launcher-editor-toolbar>button[data-v-3519060e]:disabled{color:var(--c-muted);opacity:.6;cursor:default}.launcher-library-heading[data-v-3519060e]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:15px;font-weight:600;margin:0 0 12px}.launcher-library-heading>small[data-v-3519060e]{font-size:12px;font-weight:400;color:var(--c-muted)}@media(max-width:450px){.launcher-library-heading[data-v-3519060e]{align-items:start;flex-direction:column;gap:4px}.launcher-editor-toolbar>button[data-v-3519060e]{min-height:44px}}.fluid-applications .applications-favorites>button:not([data-availability=available]) .application-icon[data-v-3519060e]{width:28px;height:28px;background:var(--c-soft);color:var(--c-muted)}.fluid-applications .applications-favorites>button:not([data-availability=available]) strong[data-v-3519060e]{max-height:18px;-webkit-line-clamp:1}.fluid-applications .applications-favorites>button:not([data-availability=available]) small[data-v-3519060e]{font-size:12px;line-height:16px;margin:0;color:var(--c-muted)}.application-icon[data-v-3519060e]{position:relative}.launcher-update-dot[data-v-3519060e]{position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:50%;background:var(--c-warning);border:2px solid var(--c-panel)}.launcher-unavailable-favorites[data-v-3519060e]{margin-top:22px;padding-top:18px;border-top:1px solid var(--c-line)}.launcher-unavailable-favorites h3[data-v-3519060e]{font-size:14px;font-weight:600;margin:0 0 8px}.launcher-unavailable-favorites>p[data-v-3519060e]{font-size:12px;line-height:1.7;color:var(--c-muted);margin:0 0 12px}.launchpad-browser[data-v-3519060e]{width:1120px;max-width:calc(100% - var(--design-system-reserve,0px) - 36px);inset:18px 18px 18px auto;border-radius:18px}.launchpad-browser.launchpad-editor[data-v-3519060e],.launchpad-browser.launchpad-form[data-v-3519060e]{width:760px}.launchpad-browser>header[data-v-3519060e]{padding:28px 30px 22px}.launchpad-browser>header>div[data-v-3519060e]{min-width:0}.launchpad-browser h2[data-v-3519060e]{font-size:22px;line-height:1.45;margin:4px 0 0;overflow-wrap:anywhere}.launchpad-browser .applications-close[data-v-3519060e]{width:44px;height:44px;min-height:44px;min-width:44px;border-radius:12px}.launchpad-browser .applications-browser-body[data-v-3519060e]{padding:0 30px 24px;overflow:auto;overscroll-behavior:contain}.launchpad-browser .application-search[data-v-3519060e]{margin:0 0 15px;padding:4px 14px;border-radius:12px;min-height:44px}.launchpad-browser .application-search input[data-v-3519060e]{min-height:44px}.launchpad-controls[data-v-3519060e]{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:20px}.launchpad-browser .browser-category-tabs[data-v-3519060e]{border:0;padding:3px;background:var(--c-soft);border-radius:10px;gap:2px;margin:0;display:flex;flex-wrap:wrap}.launchpad-browser .browser-category-tabs button[data-v-3519060e]{border:0;border-radius:8px;min-height:44px;min-width:44px;padding:8px 12px;line-height:1.4;font-size:14px}.launchpad-browser .browser-category-tabs [aria-pressed=true][data-v-3519060e]{color:var(--c-accent);background:var(--c-panel);box-shadow:0 1px 4px #00000008}.launchpad-library-actions[data-v-3519060e]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.launchpad-library-actions button[data-v-3519060e]{min-height:44px;padding:8px 12px;border-radius:9px;font-size:13px}.launchpad-library-actions [data-add-link][data-v-3519060e]{border:1px solid var(--c-line)}.launchpad-library-actions [aria-pressed=true][data-v-3519060e]{background:var(--c-soft);color:var(--c-accent)}.launchpad-result-line[data-v-3519060e]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;color:var(--c-muted);font-size:13px}.launchpad-result-line strong[data-v-3519060e]{font-weight:500;color:var(--c-text);margin-left:6px}.launchpad-result-line small[data-v-3519060e]{font-size:12px}.launchpad-grid[data-v-3519060e]{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:14px 8px;align-items:start}.launchpad-tile[data-v-3519060e]{min-width:0;position:relative;border-radius:12px}.launchpad-browser .launchpad-open[data-v-3519060e]{width:100%;min-height:120px;display:flex;align-items:center;flex-direction:column;gap:10px;padding:12px 5px;border-radius:12px;min-width:0;text-align:center;transition:background .15s,transform .15s}.launchpad-open[data-v-3519060e]:hover{background:var(--c-soft);transform:translateY(-2px)}.launchpad-open .application-icon[data-v-3519060e]{width:52px;height:52px;border-radius:16px;box-shadow:inset 0 0 0 1px #ffffff18}.launchpad-open .application-icon svg[data-v-3519060e]{width:27px;height:27px}.launchpad-open strong[data-v-3519060e]{font-size:14px;line-height:20px;font-weight:500;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;max-width:100%;max-height:40px}.launchpad-open small[data-v-3519060e]{font-size:12px;line-height:18px;color:var(--c-muted)}.launchpad-open:not([data-availability=available]) .application-icon[data-v-3519060e]{background:var(--c-soft);color:var(--c-muted)}.launchpad-pin[data-v-3519060e]{position:absolute;right:-2px;bottom:-2px;border-radius:50%;width:10px;height:10px;background:var(--c-accent);border:3px solid var(--c-panel)}.launchpad-browser .launchpad-link-edit[data-v-3519060e]{display:block;margin:0 auto 8px;min-height:44px;border:1px solid var(--c-line);border-radius:8px;padding:6px 14px;font-size:13px;background:var(--c-soft)}.launchpad-pagination[data-v-3519060e]{display:flex;justify-content:center;align-items:center;gap:18px;padding:25px 0 6px;font-size:13px}.launchpad-pagination button[data-v-3519060e]{min-height:44px;border:1px solid var(--c-line);border-radius:9px;padding:8px 14px}.launchpad-pagination button[data-v-3519060e]:disabled{opacity:.4;cursor:default}.launchpad-browser>footer[data-v-3519060e]{gap:12px;padding:16px 30px;flex-wrap:wrap;border-top:1px solid var(--c-line);flex:none}.launchpad-browser>footer button[data-v-3519060e]{min-height:44px;font-size:14px;white-space:normal}.launchpad-status[data-v-3519060e]{background:var(--c-soft);border-radius:10px;padding:10px 14px;margin-bottom:18px;font-size:13px;line-height:1.7}.launchpad-status button[data-v-3519060e]{min-height:44px;font-size:13px}.launchpad-notice[data-v-3519060e]{font-size:13px;color:var(--c-good);line-height:1.7;margin:20px 0 0}.launchpad-browser[data-v-3519060e] :focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}.launchpad-browser .application-search[data-v-3519060e]:focus-within{border-color:var(--c-accent)}@media(max-width:1350px){.launchpad-grid[data-v-3519060e]{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:1100px){.launchpad-grid[data-v-3519060e]{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:650px){.launchpad-browser[data-v-3519060e]{inset:12px 8px 12px auto;width:calc(100% - 16px);max-width:calc(100% - 16px);border-radius:16px}.launchpad-browser>header[data-v-3519060e]{padding:20px 18px 18px}.launchpad-browser h2[data-v-3519060e]{font-size:20px}.launchpad-browser .applications-browser-body[data-v-3519060e]{padding:0 18px 20px}.launchpad-browser>footer[data-v-3519060e]{padding:12px 18px}.launchpad-grid[data-v-3519060e]{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 4px}.launchpad-controls[data-v-3519060e]{gap:8px;margin-bottom:16px}.launchpad-browser .browser-category-tabs[data-v-3519060e]{width:100%;justify-content:space-between}.launchpad-browser .browser-category-tabs button[data-v-3519060e]{font-size:13px;padding:8px 7px}.launchpad-result-line[data-v-3519060e]{align-items:start;flex-direction:column;gap:4px}.launchpad-open .application-icon[data-v-3519060e]{width:46px;height:46px;border-radius:14px}.launchpad-open strong[data-v-3519060e]{font-size:14px}.launchpad-browser .launchpad-open[data-v-3519060e]{min-height:116px;padding:10px 3px}}@media(max-width:360px){.launchpad-grid[data-v-3519060e]{grid-template-columns:repeat(2,minmax(0,1fr))}.launchpad-browser>footer button[data-v-3519060e]{font-size:13px}.launchpad-browser .browser-category-tabs button[data-v-3519060e]{padding:8px 5px}}@media(prefers-reduced-motion:reduce){.launchpad-open[data-v-3519060e]{transition:none!important}.launchpad-open[data-v-3519060e]:hover{transform:none}}.network-action-notice[data-v-03262619]{font-size:11px;color:var(--c-muted);line-height:1.7;margin:0 0 14px}.network-business-action[data-v-03262619] #actioner{position:static!important;width:100%;height:auto;display:block;overflow:visible}.network-business-action[data-v-03262619] .bg{display:none}.network-business-action[data-v-03262619] .actioner-dns{width:100%!important;background:transparent;color:var(--c-text);overflow:visible;position:static}.network-business-action[data-v-03262619] .actioner-dns_header{display:none}.network-business-action[data-v-03262619] .actioner-dns_body{padding:0;min-height:0;max-height:none}.network-business-action[data-v-03262619] .actioner-dns_footer{font-size:13px;padding:18px 0 0;gap:8px;justify-content:flex-end}.network-business-action[data-v-03262619] .actioner-dns_footer button{width:auto!important;min-width:75px;margin:0!important;padding:8px 14px!important}.network-business-action[data-v-03262619] .label-item{margin:14px 0}.network-business-action[data-v-03262619] .label-item_key{color:var(--c-muted)!important}.network-business-action[data-v-03262619] .label-item_value{margin-top:7px}.network-business-action[data-v-03262619] input,.network-business-action[data-v-03262619] select{width:100%;max-width:100%;box-sizing:border-box;background:var(--c-panel);color:var(--c-text);border:1px solid var(--c-line);border-radius:7px}.network-business-action[data-v-03262619] .config-message{font-size:15px;line-height:1.8;min-height:70px}.network-business-action[data-v-03262619] .successed{font-size:15px}.network-business-action[data-v-03262619] .finished{width:64px;height:64px}.network-business-action[data-v-03262619] .label-message{font-size:12px!important}.network-business-card[data-v-d478a1e1]{height:100%;min-width:0;min-height:0;box-sizing:border-box;background:var(--c-panel);border:1px solid var(--c-line);border-radius:15px;padding:18px 20px;display:flex;flex-direction:column;color:var(--c-text);container-type:inline-size;overflow:visible}.network-business-card button[data-v-d478a1e1]{font:inherit;cursor:pointer;border:0;background:none;color:var(--c-accent);padding:0}.network-business-card button[data-v-d478a1e1]:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}.network-business-card header[data-v-d478a1e1]{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:22px}.network-business-card h2[data-v-d478a1e1]{font-size:13px;line-height:1.45;display:flex;align-items:center;gap:8px;margin:0;background:none;padding:0;color:inherit;min-width:0}.network-business-card h2>svg[data-v-d478a1e1]{width:16px;height:16px;color:var(--c-muted);flex:none}.network-business-card header>button[data-v-d478a1e1],.network-business-card footer>button[data-v-d478a1e1]{display:flex;align-items:center;gap:5px;font-size:10px;flex:none}.network-business-card button>svg[data-v-d478a1e1]{width:12px;height:12px}.network-business-card footer[data-v-d478a1e1]{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:9px;padding-top:10px;min-height:22px}.network-business-card footer>span[data-v-d478a1e1]{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.network-business-card footer small[data-v-d478a1e1]{font-size:9px;color:var(--c-muted);font-weight:400;line-height:1.5}.network-business-card footer b[data-v-d478a1e1]{font-size:10px;font-weight:500;color:var(--c-muted);font-variant-numeric:tabular-nums}.connection-status[data-v-d478a1e1]{display:flex;align-items:center;gap:10px;margin:16px 0 14px}.connection-status-mark[data-v-d478a1e1]{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:var(--c-soft);color:var(--c-muted)}.connection-status-mark svg[data-v-d478a1e1]{width:18px;height:18px}.connection-status-mark.netSuccess[data-v-d478a1e1]{color:var(--c-good)}.connection-status-mark.dnsFailed[data-v-d478a1e1],.connection-status-mark.softSourceFailed[data-v-d478a1e1],.connection-status-mark.netFailed[data-v-d478a1e1],.connection-status-mark.unavailable[data-v-d478a1e1]{color:var(--c-warning)}.connection-status-text[data-v-d478a1e1]{min-width:0;flex:1}.connection-status-text strong[data-v-d478a1e1]{font-size:15px;font-weight:550;line-height:1.35;display:block;overflow-wrap:anywhere}.connection-status-text small[data-v-d478a1e1]{font-size:10px;color:var(--c-muted);display:block;margin-top:3px;overflow-wrap:anywhere}.connection-remedy[data-v-d478a1e1]{font-size:10px!important;line-height:1.5;max-width:76px;text-align:right}.connection-addresses[data-v-d478a1e1]{margin:0;display:flex;flex-direction:column;gap:12px}.connection-addresses>div[data-v-d478a1e1]{display:flex;align-items:baseline;gap:10px;min-width:0}.connection-addresses dt[data-v-d478a1e1]{font-size:10px;color:var(--c-muted);min-width:38px;flex:none}.connection-addresses dt small[data-v-d478a1e1]{font-size:9px;display:block;margin-top:3px}.connection-addresses dd[data-v-d478a1e1]{margin:0;display:flex;align-items:baseline;gap:7px;min-width:0;flex:1;font-size:12px}.connection-addresses dd>span[data-v-d478a1e1]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.connection-addresses dd button[data-v-d478a1e1]{font-size:10px;flex:none;margin-left:auto}.connection-dns>span[data-v-d478a1e1]{font-size:11px}.network-snapshot-note[data-v-d478a1e1]{font-size:10px!important;line-height:1.6;color:var(--c-warning);margin:0 0 7px!important}.connection-business.summary .connection-status[data-v-d478a1e1]{margin:12px 0 7px}.network-business-card.summary[data-v-d478a1e1]{padding:14px 18px}.network-business-card.summary h2[data-v-d478a1e1]{font-size:12px}.network-business-card.summary footer[data-v-d478a1e1]{padding-top:5px}.network-business-card.summary .connection-status-mark[data-v-d478a1e1]{width:26px;height:26px;border-radius:7px}.network-business-card.summary .connection-status-text strong[data-v-d478a1e1]{font-size:13px}.network-business-card.summary .connection-status-text small[data-v-d478a1e1]{font-size:9px}.network-business-card.summary footer>span small[data-v-d478a1e1]{display:none}.network-business-card.summary .network-snapshot-note[data-v-d478a1e1]{margin-bottom:0!important;font-size:9px!important}.interface-totals[data-v-d478a1e1]{display:flex;align-items:baseline;gap:9px;margin:15px 0 10px}.interface-totals>strong[data-v-d478a1e1]{font-size:27px;font-weight:500;line-height:1}.interface-totals>strong small[data-v-d478a1e1]{font-size:13px;color:var(--c-muted);margin-left:5px}.interface-totals>span[data-v-d478a1e1]{font-size:11px;color:var(--c-muted)}.interface-totals>small[data-v-d478a1e1]{margin-left:auto;font-size:9px;color:var(--c-muted)}.interface-list[data-v-d478a1e1]{display:flex;flex-direction:column;gap:6px}.interface-list>button[data-v-d478a1e1]{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--c-line);text-align:left;color:var(--c-text);min-width:0}.interface-link-mark[data-v-d478a1e1]{flex:none;width:29px;height:29px;border-radius:8px;background:var(--c-soft);color:var(--c-muted);display:grid;place-items:center}.interface-link-mark svg[data-v-d478a1e1]{width:16px;height:16px}.interface-link-mark.up[data-v-d478a1e1]{color:var(--c-good)}.interface-name[data-v-d478a1e1]{min-width:0;flex:1}.interface-name strong[data-v-d478a1e1]{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.interface-name small[data-v-d478a1e1]{font-size:9px;color:var(--c-muted);display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.interface-link-state[data-v-d478a1e1]{text-align:right;flex:none}.interface-link-state strong[data-v-d478a1e1]{font-size:10px;font-weight:400;display:block}.interface-link-state small[data-v-d478a1e1]{font-size:9px;color:var(--c-muted);display:block;margin-top:3px}.interface-list>button>svg[data-v-d478a1e1]{color:var(--c-muted);flex:none}.interface-business footer>small[data-v-d478a1e1]{max-width:60%}.interface-business.summary .interface-totals[data-v-d478a1e1]{margin:12px 0 6px}.interface-business.summary .interface-totals>strong[data-v-d478a1e1]{font-size:23px}.interface-business.summary footer>small[data-v-d478a1e1]{display:none}.interface-business.summary footer>button[data-v-d478a1e1]{margin-left:auto}.network-widget-message[data-v-d478a1e1]{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin:16px 0;font-size:12px}.network-widget-message small[data-v-d478a1e1]{font-size:10px;color:var(--c-muted)}.network-widget-message strong[data-v-d478a1e1]{font-weight:500;line-height:1.5}.network-widget-empty[data-v-d478a1e1]{font-size:11px;color:var(--c-muted);margin:8px 0}.connection-full-details[data-v-d478a1e1],.interface-full-details[data-v-d478a1e1]{color:var(--c-text);line-height:1.6}.network-detail-status[data-v-d478a1e1]{font-size:16px;margin:0 0 14px;font-weight:550}.connection-full-details dl[data-v-d478a1e1],.interface-full-details dl[data-v-d478a1e1]{margin:0}.connection-full-details dl>div[data-v-d478a1e1],.interface-full-details dl>div[data-v-d478a1e1]{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;border-bottom:1px solid var(--c-line);padding:10px 0}.connection-full-details dt[data-v-d478a1e1],.interface-full-details dt[data-v-d478a1e1]{font-size:11px;color:var(--c-muted)}.connection-full-details dd[data-v-d478a1e1],.interface-full-details dd[data-v-d478a1e1]{margin:0;overflow-wrap:anywhere;font-size:12px;min-width:0}.connection-full-details dd>span[data-v-d478a1e1]{display:block}.connection-full-details dd>button[data-v-d478a1e1]{margin-top:4px;font-size:11px}.connection-full-details dd>small[data-v-d478a1e1]{display:block;color:var(--c-muted);font-size:10px;margin-top:5px}.connection-full-details button[data-v-d478a1e1],.interface-full-details button[data-v-d478a1e1]{border:0;background:none;color:var(--c-accent);font:inherit;cursor:pointer;padding:0}.network-detail-actions[data-v-d478a1e1]{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px;font-size:12px}.network-privacy-note[data-v-d478a1e1]{color:var(--c-muted);font-size:10px;line-height:1.8;margin:14px 0 0}.interface-detail-list[data-v-d478a1e1]{display:flex;flex-direction:column}.interface-detail-list>button[data-v-d478a1e1]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;text-align:left;padding:12px 0;border-bottom:1px solid var(--c-line);color:var(--c-text)}.interface-detail-list strong[data-v-d478a1e1],.interface-detail-list span[data-v-d478a1e1],.interface-detail-list small[data-v-d478a1e1]{min-width:0;overflow-wrap:anywhere}.interface-detail-list span[data-v-d478a1e1],.interface-detail-list small[data-v-d478a1e1]{color:var(--c-muted);font-size:11px;grid-column:1}.interface-detail-list svg[data-v-d478a1e1]{grid-column:2;grid-row:1/4;width:15px;height:15px;color:var(--c-accent);align-self:center}.network-back[data-v-d478a1e1]{font-size:11px!important;margin-bottom:10px}.connection-full-details nav[data-v-d478a1e1],.interface-full-details nav[data-v-d478a1e1]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;font-size:11px}.connection-full-details button[data-v-d478a1e1]:disabled,.interface-full-details button[data-v-d478a1e1]:disabled{opacity:.4;cursor:default}@container (max-width:280px){.connection-status[data-v-d478a1e1]{gap:7px}.connection-status-mark[data-v-d478a1e1]{width:28px;height:28px}.connection-status-text strong[data-v-d478a1e1]{font-size:13px}.connection-status-text small[data-v-d478a1e1]{font-size:9px}.connection-remedy[data-v-d478a1e1]{max-width:65px;font-size:9px!important}.network-business-card h2[data-v-d478a1e1]{font-size:12px}.connection-addresses dd[data-v-d478a1e1]{font-size:11px}.interface-totals>small[data-v-d478a1e1]{display:none}}@media(max-width:450px){.connection-full-details dl>div[data-v-d478a1e1],.interface-full-details dl>div[data-v-d478a1e1]{grid-template-columns:82px minmax(0,1fr);gap:12px}}.connection-business[data-v-d478a1e1]:not(.summary){padding:20px 14px 12px;border-radius:10px;font-size:14px;font-family:Arial,Microsoft YaHei,sans-serif;container-type:size}.connection-business:not(.summary) header[data-v-d478a1e1]{min-height:28px}.connection-business:not(.summary) h2[data-v-d478a1e1]{font-size:16px;font-weight:600;line-height:1.25;gap:8px;color:var(--app-container_title-color)}.connection-business:not(.summary) h2>svg[data-v-d478a1e1]{width:20px;height:20px;color:inherit}.connection-business:not(.summary) header>button[data-v-d478a1e1]{border:1px solid var(--c-line);border-radius:6px;padding:7px 9px;font-size:12px;line-height:1;color:var(--app-container_title-color);gap:6px}.connection-business:not(.summary) header>button>svg[data-v-d478a1e1]{width:14px;height:14px}.connection-business:not(.summary) .connection-status[data-v-d478a1e1]{gap:6px;margin:12px 0 8px;padding-bottom:10px;border-bottom:1px solid var(--c-line);flex-wrap:wrap}.connection-business:not(.summary) .connection-status-mark[data-v-d478a1e1]{width:16px;height:16px;border-radius:0;background:none}.connection-business:not(.summary) .connection-status-mark>svg[data-v-d478a1e1]{width:16px;height:16px}.connection-business:not(.summary) .connection-status-text[data-v-d478a1e1]{flex:1 1 auto}.connection-business:not(.summary) .connection-status-text strong[data-v-d478a1e1]{font-size:14px;font-weight:400;line-height:1.4}.connection-business:not(.summary) .connection-uptime-badge[data-v-d478a1e1]{margin-left:auto;font-size:14px;line-height:1.2;padding:4px 8px;border-radius:4px;background:var(--c-soft);color:var(--c-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.connection-business:not(.summary) .connection-uptime-badge.normal[data-v-d478a1e1]{color:#008236;background:#dbfce7}.connection-business:not(.summary) .connection-remedy[data-v-d478a1e1]{font-size:12px!important;max-width:none}.connection-business:not(.summary) .connection-addresses[data-v-d478a1e1]{gap:10px;flex:1;justify-content:space-between}.connection-business:not(.summary) .connection-addresses>div[data-v-d478a1e1]{display:block;min-width:0}.connection-business:not(.summary) .connection-addresses dt[data-v-d478a1e1]{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;line-height:1.4;color:var(--c-text);min-width:0;flex-wrap:wrap}.connection-business:not(.summary) .connection-address-actions[data-v-d478a1e1]{display:flex;align-items:center;gap:8px;margin-left:auto;max-width:100%;flex-wrap:wrap}.connection-business:not(.summary) .connection-ip-tag[data-v-d478a1e1]{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--c-line);border-radius:6px;padding:3px 6px;font-size:12px;line-height:1;color:var(--c-text);white-space:nowrap}.connection-business:not(.summary) .connection-ip-tag>svg[data-v-d478a1e1]{width:16px;height:16px;flex:none}.connection-business:not(.summary) .connection-addresses dd[data-v-d478a1e1]{display:block;margin:8px 0 0;font-size:14px;line-height:1.3;min-width:0;color:var(--item-label_key-span-color)}.connection-business:not(.summary) .connection-addresses dd>span[data-v-d478a1e1]{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-business:not(.summary) .connection-dns>span[data-v-d478a1e1]{font-size:14px}.connection-business:not(.summary) .connection-addresses dd.connection-dns[data-v-d478a1e1]{display:flex;gap:8px;align-items:baseline}.connection-business:not(.summary) .connection-dns button[data-v-d478a1e1]{font-size:12px}.connection-business:not(.summary) footer[data-v-d478a1e1]{padding-top:8px;min-height:16px;justify-content:flex-end}.connection-business:not(.summary) footer>button[data-v-d478a1e1]{font-size:11px}@container (max-width:340px){.connection-business:not(.summary) h2[data-v-d478a1e1]{font-size:14px}.connection-business:not(.summary) header>button[data-v-d478a1e1]{font-size:11px;padding:6px}.connection-business:not(.summary) .connection-status-text strong[data-v-d478a1e1],.connection-business:not(.summary) .connection-uptime-badge[data-v-d478a1e1]{font-size:12px}.connection-business:not(.summary) .connection-status[data-v-d478a1e1]{margin-top:10px;padding-bottom:8px}.connection-business:not(.summary) .connection-addresses[data-v-d478a1e1]{gap:8px}.connection-business:not(.summary) .connection-addresses dt[data-v-d478a1e1],.connection-business:not(.summary) .connection-addresses dd[data-v-d478a1e1],.connection-business:not(.summary) .connection-dns>span[data-v-d478a1e1]{font-size:13px}.connection-business:not(.summary) .connection-ip-tag[data-v-d478a1e1]{font-size:11px;padding:3px 5px}}@container (max-height:260px){.connection-business:not(.summary) .connection-status[data-v-d478a1e1]{margin-top:8px;margin-bottom:4px;padding-bottom:6px}.connection-business:not(.summary) .connection-addresses[data-v-d478a1e1]{gap:6px}.connection-business:not(.summary) .connection-addresses dd[data-v-d478a1e1]{margin-top:6px}.connection-business:not(.summary) footer[data-v-d478a1e1]{padding-top:4px}}.network-header-actions[data-v-d478a1e1]{display:flex;align-items:center;gap:6px;flex:none}.network-header-actions>button[data-v-d478a1e1]{display:flex;align-items:center;gap:6px;border:1px solid var(--c-line);border-radius:6px;padding:7px 9px;font-size:12px;color:var(--c-text);line-height:1.2}.network-header-actions>button>svg[data-v-d478a1e1]{width:14px;height:14px}.network-business-card header>h2[data-v-d478a1e1]{flex:1}.network-business-card header[data-v-d478a1e1]{align-items:flex-start}.network-business-card header>h2[data-v-d478a1e1]{align-self:center}.interface-business footer>small[data-v-d478a1e1]{max-width:100%}.network-business-card[data-v-d7f98cf8]{height:100%;min-width:0;min-height:0;box-sizing:border-box;background:var(--c-panel);border:1px solid var(--c-line);border-radius:15px;padding:18px 20px;display:flex;flex-direction:column;color:var(--c-text);container-type:inline-size;overflow:visible}.network-business-card button[data-v-d7f98cf8]{font:inherit;cursor:pointer;border:0;background:none;color:var(--c-accent);padding:0}.network-business-card button[data-v-d7f98cf8]:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}.network-business-card header[data-v-d7f98cf8]{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:22px}.network-business-card h2[data-v-d7f98cf8]{font-size:13px;line-height:1.45;display:flex;align-items:center;gap:8px;margin:0;background:none;padding:0;color:inherit;min-width:0}.network-business-card h2>svg[data-v-d7f98cf8]{width:16px;height:16px;color:var(--c-muted);flex:none}.network-business-card header>button[data-v-d7f98cf8],.network-business-card footer>button[data-v-d7f98cf8]{display:flex;align-items:center;gap:5px;font-size:10px;flex:none}.network-business-card button>svg[data-v-d7f98cf8]{width:12px;height:12px}.network-business-card footer[data-v-d7f98cf8]{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:9px;padding-top:10px;min-height:22px}.network-business-card footer>span[data-v-d7f98cf8]{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.network-business-card footer small[data-v-d7f98cf8]{font-size:9px;color:var(--c-muted);font-weight:400;line-height:1.5}.network-business-card footer b[data-v-d7f98cf8]{font-size:10px;font-weight:500;color:var(--c-muted);font-variant-numeric:tabular-nums}.connection-status[data-v-d7f98cf8]{display:flex;align-items:center;gap:10px;margin:16px 0 14px}.connection-status-mark[data-v-d7f98cf8]{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:var(--c-soft);color:var(--c-muted)}.connection-status-mark svg[data-v-d7f98cf8]{width:18px;height:18px}.connection-status-mark.netSuccess[data-v-d7f98cf8]{color:var(--c-good)}.connection-status-mark.dnsFailed[data-v-d7f98cf8],.connection-status-mark.softSourceFailed[data-v-d7f98cf8],.connection-status-mark.netFailed[data-v-d7f98cf8],.connection-status-mark.unavailable[data-v-d7f98cf8]{color:var(--c-warning)}.connection-status-text[data-v-d7f98cf8]{min-width:0;flex:1}.connection-status-text strong[data-v-d7f98cf8]{font-size:15px;font-weight:550;line-height:1.35;display:block;overflow-wrap:anywhere}.connection-status-text small[data-v-d7f98cf8]{font-size:10px;color:var(--c-muted);display:block;margin-top:3px;overflow-wrap:anywhere}.connection-remedy[data-v-d7f98cf8]{font-size:10px!important;line-height:1.5;max-width:76px;text-align:right}.connection-addresses[data-v-d7f98cf8]{margin:0;display:flex;flex-direction:column;gap:12px}.connection-addresses>div[data-v-d7f98cf8]{display:flex;align-items:baseline;gap:10px;min-width:0}.connection-addresses dt[data-v-d7f98cf8]{font-size:10px;color:var(--c-muted);min-width:38px;flex:none}.connection-addresses dt small[data-v-d7f98cf8]{font-size:9px;display:block;margin-top:3px}.connection-addresses dd[data-v-d7f98cf8]{margin:0;display:flex;align-items:baseline;gap:7px;min-width:0;flex:1;font-size:12px}.connection-addresses dd>span[data-v-d7f98cf8]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.connection-addresses dd button[data-v-d7f98cf8]{font-size:10px;flex:none;margin-left:auto}.connection-dns>span[data-v-d7f98cf8]{font-size:11px}.network-snapshot-note[data-v-d7f98cf8]{font-size:10px!important;line-height:1.6;color:var(--c-warning);margin:0 0 7px!important}.connection-business.summary .connection-status[data-v-d7f98cf8]{margin:12px 0 7px}.network-business-card.summary[data-v-d7f98cf8]{padding:14px 18px}.network-business-card.summary h2[data-v-d7f98cf8]{font-size:12px}.network-business-card.summary footer[data-v-d7f98cf8]{padding-top:5px}.network-business-card.summary .connection-status-mark[data-v-d7f98cf8]{width:26px;height:26px;border-radius:7px}.network-business-card.summary .connection-status-text strong[data-v-d7f98cf8]{font-size:13px}.network-business-card.summary .connection-status-text small[data-v-d7f98cf8]{font-size:9px}.network-business-card.summary footer>span small[data-v-d7f98cf8]{display:none}.network-business-card.summary .network-snapshot-note[data-v-d7f98cf8]{margin-bottom:0!important;font-size:9px!important}.interface-totals[data-v-d7f98cf8]{display:flex;align-items:baseline;gap:9px;margin:15px 0 10px}.interface-totals>strong[data-v-d7f98cf8]{font-size:27px;font-weight:500;line-height:1}.interface-totals>strong small[data-v-d7f98cf8]{font-size:13px;color:var(--c-muted);margin-left:5px}.interface-totals>span[data-v-d7f98cf8]{font-size:11px;color:var(--c-muted)}.interface-totals>small[data-v-d7f98cf8]{margin-left:auto;font-size:9px;color:var(--c-muted)}.interface-list[data-v-d7f98cf8]{display:flex;flex-direction:column;gap:6px}.interface-list>button[data-v-d7f98cf8]{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--c-line);text-align:left;color:var(--c-text);min-width:0}.interface-link-mark[data-v-d7f98cf8]{flex:none;width:29px;height:29px;border-radius:8px;background:var(--c-soft);color:var(--c-muted);display:grid;place-items:center}.interface-link-mark svg[data-v-d7f98cf8]{width:16px;height:16px}.interface-link-mark.up[data-v-d7f98cf8]{color:var(--c-good)}.interface-name[data-v-d7f98cf8]{min-width:0;flex:1}.interface-name strong[data-v-d7f98cf8]{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.interface-name small[data-v-d7f98cf8]{font-size:9px;color:var(--c-muted);display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.interface-link-state[data-v-d7f98cf8]{text-align:right;flex:none}.interface-link-state strong[data-v-d7f98cf8]{font-size:10px;font-weight:400;display:block}.interface-link-state small[data-v-d7f98cf8]{font-size:9px;color:var(--c-muted);display:block;margin-top:3px}.interface-list>button>svg[data-v-d7f98cf8]{color:var(--c-muted);flex:none}.interface-business footer>small[data-v-d7f98cf8]{max-width:60%}.interface-business.summary .interface-totals[data-v-d7f98cf8]{margin:12px 0 6px}.interface-business.summary .interface-totals>strong[data-v-d7f98cf8]{font-size:23px}.interface-business.summary footer>small[data-v-d7f98cf8]{display:none}.interface-business.summary footer>button[data-v-d7f98cf8]{margin-left:auto}.network-widget-message[data-v-d7f98cf8]{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin:16px 0;font-size:12px}.network-widget-message small[data-v-d7f98cf8]{font-size:10px;color:var(--c-muted)}.network-widget-message strong[data-v-d7f98cf8]{font-weight:500;line-height:1.5}.network-widget-empty[data-v-d7f98cf8]{font-size:11px;color:var(--c-muted);margin:8px 0}.connection-full-details[data-v-d7f98cf8],.interface-full-details[data-v-d7f98cf8]{color:var(--c-text);line-height:1.6}.network-detail-status[data-v-d7f98cf8]{font-size:16px;margin:0 0 14px;font-weight:550}.connection-full-details dl[data-v-d7f98cf8],.interface-full-details dl[data-v-d7f98cf8]{margin:0}.connection-full-details dl>div[data-v-d7f98cf8],.interface-full-details dl>div[data-v-d7f98cf8]{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;border-bottom:1px solid var(--c-line);padding:10px 0}.connection-full-details dt[data-v-d7f98cf8],.interface-full-details dt[data-v-d7f98cf8]{font-size:11px;color:var(--c-muted)}.connection-full-details dd[data-v-d7f98cf8],.interface-full-details dd[data-v-d7f98cf8]{margin:0;overflow-wrap:anywhere;font-size:12px;min-width:0}.connection-full-details dd>span[data-v-d7f98cf8]{display:block}.connection-full-details dd>button[data-v-d7f98cf8]{margin-top:4px;font-size:11px}.connection-full-details dd>small[data-v-d7f98cf8]{display:block;color:var(--c-muted);font-size:10px;margin-top:5px}.connection-full-details button[data-v-d7f98cf8],.interface-full-details button[data-v-d7f98cf8]{border:0;background:none;color:var(--c-accent);font:inherit;cursor:pointer;padding:0}.network-detail-actions[data-v-d7f98cf8]{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px;font-size:12px}.network-privacy-note[data-v-d7f98cf8]{color:var(--c-muted);font-size:10px;line-height:1.8;margin:14px 0 0}.interface-detail-list[data-v-d7f98cf8]{display:flex;flex-direction:column}.interface-detail-list>button[data-v-d7f98cf8]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;text-align:left;padding:12px 0;border-bottom:1px solid var(--c-line);color:var(--c-text)}.interface-detail-list strong[data-v-d7f98cf8],.interface-detail-list span[data-v-d7f98cf8],.interface-detail-list small[data-v-d7f98cf8]{min-width:0;overflow-wrap:anywhere}.interface-detail-list span[data-v-d7f98cf8],.interface-detail-list small[data-v-d7f98cf8]{color:var(--c-muted);font-size:11px;grid-column:1}.interface-detail-list svg[data-v-d7f98cf8]{grid-column:2;grid-row:1/4;width:15px;height:15px;color:var(--c-accent);align-self:center}.network-back[data-v-d7f98cf8]{font-size:11px!important;margin-bottom:10px}.connection-full-details nav[data-v-d7f98cf8],.interface-full-details nav[data-v-d7f98cf8]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;font-size:11px}.connection-full-details button[data-v-d7f98cf8]:disabled,.interface-full-details button[data-v-d7f98cf8]:disabled{opacity:.4;cursor:default}@container (max-width:280px){.connection-status[data-v-d7f98cf8]{gap:7px}.connection-status-mark[data-v-d7f98cf8]{width:28px;height:28px}.connection-status-text strong[data-v-d7f98cf8]{font-size:13px}.connection-status-text small[data-v-d7f98cf8]{font-size:9px}.connection-remedy[data-v-d7f98cf8]{max-width:65px;font-size:9px!important}.network-business-card h2[data-v-d7f98cf8]{font-size:12px}.connection-addresses dd[data-v-d7f98cf8]{font-size:11px}.interface-totals>small[data-v-d7f98cf8]{display:none}}@media(max-width:450px){.connection-full-details dl>div[data-v-d7f98cf8],.interface-full-details dl>div[data-v-d7f98cf8]{grid-template-columns:82px minmax(0,1fr);gap:12px}}.connection-business[data-v-d7f98cf8]:not(.summary){padding:20px 14px 12px;border-radius:10px;font-size:14px;font-family:Arial,Microsoft YaHei,sans-serif;container-type:size}.connection-business:not(.summary) header[data-v-d7f98cf8]{min-height:28px}.connection-business:not(.summary) h2[data-v-d7f98cf8]{font-size:16px;font-weight:600;line-height:1.25;gap:8px;color:var(--app-container_title-color)}.connection-business:not(.summary) h2>svg[data-v-d7f98cf8]{width:20px;height:20px;color:inherit}.connection-business:not(.summary) header>button[data-v-d7f98cf8]{border:1px solid var(--c-line);border-radius:6px;padding:7px 9px;font-size:12px;line-height:1;color:var(--app-container_title-color);gap:6px}.connection-business:not(.summary) header>button>svg[data-v-d7f98cf8]{width:14px;height:14px}.connection-business:not(.summary) .connection-status[data-v-d7f98cf8]{gap:6px;margin:12px 0 8px;padding-bottom:10px;border-bottom:1px solid var(--c-line);flex-wrap:wrap}.connection-business:not(.summary) .connection-status-mark[data-v-d7f98cf8]{width:16px;height:16px;border-radius:0;background:none}.connection-business:not(.summary) .connection-status-mark>svg[data-v-d7f98cf8]{width:16px;height:16px}.connection-business:not(.summary) .connection-status-text[data-v-d7f98cf8]{flex:1 1 auto}.connection-business:not(.summary) .connection-status-text strong[data-v-d7f98cf8]{font-size:14px;font-weight:400;line-height:1.4}.connection-business:not(.summary) .connection-uptime-badge[data-v-d7f98cf8]{margin-left:auto;font-size:14px;line-height:1.2;padding:4px 8px;border-radius:4px;background:var(--c-soft);color:var(--c-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.connection-business:not(.summary) .connection-uptime-badge.normal[data-v-d7f98cf8]{color:#008236;background:#dbfce7}.connection-business:not(.summary) .connection-remedy[data-v-d7f98cf8]{font-size:12px!important;max-width:none}.connection-business:not(.summary) .connection-addresses[data-v-d7f98cf8]{gap:10px;flex:1;justify-content:space-between}.connection-business:not(.summary) .connection-addresses>div[data-v-d7f98cf8]{display:block;min-width:0}.connection-business:not(.summary) .connection-addresses dt[data-v-d7f98cf8]{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;line-height:1.4;color:var(--c-text);min-width:0;flex-wrap:wrap}.connection-business:not(.summary) .connection-address-actions[data-v-d7f98cf8]{display:flex;align-items:center;gap:8px;margin-left:auto;max-width:100%;flex-wrap:wrap}.connection-business:not(.summary) .connection-ip-tag[data-v-d7f98cf8]{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--c-line);border-radius:6px;padding:3px 6px;font-size:12px;line-height:1;color:var(--c-text);white-space:nowrap}.connection-business:not(.summary) .connection-ip-tag>svg[data-v-d7f98cf8]{width:16px;height:16px;flex:none}.connection-business:not(.summary) .connection-addresses dd[data-v-d7f98cf8]{display:block;margin:8px 0 0;font-size:14px;line-height:1.3;min-width:0;color:var(--item-label_key-span-color)}.connection-business:not(.summary) .connection-addresses dd>span[data-v-d7f98cf8]{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-business:not(.summary) .connection-dns>span[data-v-d7f98cf8]{font-size:14px}.connection-business:not(.summary) .connection-addresses dd.connection-dns[data-v-d7f98cf8]{display:flex;gap:8px;align-items:baseline}.connection-business:not(.summary) .connection-dns button[data-v-d7f98cf8]{font-size:12px}.connection-business:not(.summary) footer[data-v-d7f98cf8]{padding-top:8px;min-height:16px;justify-content:flex-end}.connection-business:not(.summary) footer>button[data-v-d7f98cf8]{font-size:11px}@container (max-width:340px){.connection-business:not(.summary) h2[data-v-d7f98cf8]{font-size:14px}.connection-business:not(.summary) header>button[data-v-d7f98cf8]{font-size:11px;padding:6px}.connection-business:not(.summary) .connection-status-text strong[data-v-d7f98cf8],.connection-business:not(.summary) .connection-uptime-badge[data-v-d7f98cf8]{font-size:12px}.connection-business:not(.summary) .connection-status[data-v-d7f98cf8]{margin-top:10px;padding-bottom:8px}.connection-business:not(.summary) .connection-addresses[data-v-d7f98cf8]{gap:8px}.connection-business:not(.summary) .connection-addresses dt[data-v-d7f98cf8],.connection-business:not(.summary) .connection-addresses dd[data-v-d7f98cf8],.connection-business:not(.summary) .connection-dns>span[data-v-d7f98cf8]{font-size:13px}.connection-business:not(.summary) .connection-ip-tag[data-v-d7f98cf8]{font-size:11px;padding:3px 5px}}@container (max-height:260px){.connection-business:not(.summary) .connection-status[data-v-d7f98cf8]{margin-top:8px;margin-bottom:4px;padding-bottom:6px}.connection-business:not(.summary) .connection-addresses[data-v-d7f98cf8]{gap:6px}.connection-business:not(.summary) .connection-addresses dd[data-v-d7f98cf8]{margin-top:6px}.connection-business:not(.summary) footer[data-v-d7f98cf8]{padding-top:4px}}.network-header-actions[data-v-d7f98cf8]{display:flex;align-items:center;gap:6px;flex:none}.network-header-actions>button[data-v-d7f98cf8]{display:flex;align-items:center;gap:6px;border:1px solid var(--c-line);border-radius:6px;padding:7px 9px;font-size:12px;color:var(--c-text);line-height:1.2}.network-header-actions>button>svg[data-v-d7f98cf8]{width:14px;height:14px}.network-business-card header>h2[data-v-d7f98cf8]{flex:1}.network-business-card header[data-v-d7f98cf8]{align-items:flex-start}.network-business-card header>h2[data-v-d7f98cf8]{align-self:center}.interface-business footer>small[data-v-d7f98cf8]{max-width:100%}.reusable-card[data-v-5fc49e13]{border:1px solid;border-radius:10px;padding:20px 14px;box-sizing:border-box;background-clip:padding-box;display:flex;flex-direction:column;gap:12px;border:1px solid var(--border-color);background:var(--card-bg-color)}.card-header[data-v-5fc49e13]{display:flex;justify-content:space-between;align-items:center}.card-header .left[data-v-5fc49e13]{display:flex;align-items:center;gap:8px}.card-header[data-v-5fc49e13]>svg{width:20px;height:20px}.title[data-v-5fc49e13]{font-size:16px;font-weight:600;line-height:1;color:var(--app-container_title-color)}.settings-btn[data-v-5fc49e13]{cursor:pointer}.card-body[data-v-5fc49e13]{flex:1 1 auto}.card-footer[data-v-5fc49e13]{display:flex;justify-content:center}.footer-btn[data-v-5fc49e13]{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;border:1px solid var(--btn-border-color);justify-content:center;cursor:pointer;width:100%;max-width:600px;margin-top:16px}.footer-icon[data-v-5fc49e13]{display:inline-flex;align-items:center}.footer-text[data-v-5fc49e13]{font-size:14px;font-weight:400;color:var(--app-container_title-color)}.settings-icon[data-v-5fc49e13]{width:20px;height:20px}.settings-icon[data-v-5fc49e13] svg,.settings-icon[data-v-5fc49e13] g,.settings-icon[data-v-5fc49e13] path,.settings-icon[data-v-5fc49e13] circle,.settings-icon[data-v-5fc49e13] rect,.settings-icon[data-v-5fc49e13] line,.settings-icon[data-v-5fc49e13] polyline,.settings-icon[data-v-5fc49e13] polygon{fill:var(--app-container_title-color)!important;stroke:var(--app-container_title-color)!important}.settings-wrapper[data-v-5fc49e13]{position:relative}.dropdown-menu[data-v-5fc49e13]{position:absolute;top:38px;right:0;background:#fff;border-radius:6px;padding:16px 0;min-width:220px;box-shadow:0 4px 12px #0003;z-index:10}.fade-enter-active[data-v-5fc49e13],.fade-leave-active[data-v-5fc49e13]{transition:opacity .2s}.fade-enter-from[data-v-5fc49e13],.fade-leave-to[data-v-5fc49e13]{opacity:0}.dropdown-menu[data-v-5fc49e13] div{display:block;width:100%;text-align:center;padding:8px 0;border:none;background:none;cursor:pointer;font-size:14px;color:#333;transition:background .2s,color .2s}.dropdown-menu[data-v-5fc49e13] div:hover{background-color:#eee}@keyframes bganimation-5fc49e13{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-5fc49e13{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-5fc49e13{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-5fc49e13]{animation:rotateEnter-5fc49e13 .7s;position:relative}.rotate-leave-active[data-v-5fc49e13]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-5fc49e13]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){.reusable-card[data-v-5fc49e13]{padding:10px;border-radius:6px}.title[data-v-5fc49e13]{font-size:14px}.footer-btn[data-v-5fc49e13]{margin-top:6px}.dropdown-menu[data-v-5fc49e13]{padding:8px 0;min-width:150px}}.action .action-footer button[data-v-eacbb72a]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action.format[data-v-eacbb72a]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.format .action-header[data-v-eacbb72a]{width:100%;height:70px;line-height:70px}.action.format .action-header .action-header_title[data-v-eacbb72a]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.format .action-body[data-v-eacbb72a]{width:100%;height:calc(100% - 140px);overflow:auto}.action.format .action-footer[data-v-eacbb72a]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action.format .action-footer .auto[data-v-eacbb72a]{flex:auto}.action.format .disk-list[data-v-eacbb72a]{width:100%;height:100%;border:1px solid #dfe1e5;overflow:auto}.action.format .label-item[data-v-eacbb72a]{width:100%;margin:1rem 0}.action.format .label-item .label-item_key[data-v-eacbb72a]{width:100%;font-size:16px;color:#666}.action.format .label-item .label-item_key span[data-v-eacbb72a]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action.format .label-item .label-item_key span[data-v-eacbb72a]:before{content:"*";color:#f56c6c;margin-right:4px}.action.format .label-item .label-item_value[data-v-eacbb72a]{width:100%;margin-top:5px}.action.format .label-item .label-item_value select[data-v-eacbb72a],.action.format .label-item .label-item_value input[data-v-eacbb72a]{width:100%;height:36px}.action.format .label-item .label-item_path[data-v-eacbb72a]{padding:0 14px;background-color:#e5e5e5;width:100%;height:28px;line-height:28px;margin-top:10px}.action.format .auto[data-v-eacbb72a]{flex:auto}.action.format p.msg[data-v-eacbb72a]{margin:.5rem 0;color:red}.action.format .disk-info[data-v-eacbb72a]{width:100%;text-align:center}.action.format .disk-info .disk-info_icon[data-v-eacbb72a]{width:100px;height:100px;margin:0 auto}.action.format .disk-info .disk-info_icon svg[data-v-eacbb72a]{width:100%;height:100%}.action.format .disk-info .disk-info_mount-name[data-v-eacbb72a]{margin:1rem 0;font-size:1.5em;color:#333}.action.result[data-v-eacbb72a]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.result .action-body[data-v-eacbb72a]{width:100%;height:100%;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.action.result .action-body .action-body_icon[data-v-eacbb72a]{width:100px;height:100px}.action.result .action-body .action-body_icon svg.icon[data-v-eacbb72a]{width:100%;height:100%}.action.result .action-body .action-body_msg[data-v-eacbb72a]{font-size:2em;color:#666;text-align:center;width:100%;margin:1rem 0}.action.result .action-body .action-body_info[data-v-eacbb72a]{margin:1rem 0;width:100%;text-align:center;color:#666;font-size:1.2em}.action.result .action-body .action-body_info a[data-v-eacbb72a]{color:#0000fb}.action.result .btns[data-v-eacbb72a]{width:100%;text-align:center;margin:1rem 0}@keyframes bganimation-eacbb72a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-eacbb72a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-eacbb72a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-eacbb72a]{animation:rotateEnter-eacbb72a .7s;position:relative}.rotate-leave-active[data-v-eacbb72a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-eacbb72a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1000px){.action.format[data-v-eacbb72a]{width:168%}}@media screen and (max-width:900px){.action.format[data-v-eacbb72a]{width:146%}}@media screen and (max-width:800px){.action.format[data-v-eacbb72a]{width:136%}}@media screen and (max-width:700px){.action.format[data-v-eacbb72a]{width:116%}}@media screen and (max-width:500px){.action.format[data-v-eacbb72a]{width:100%}}.action .action-footer button[data-v-7ca3ba11]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action.format[data-v-7ca3ba11]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.format .action-header[data-v-7ca3ba11]{width:100%;height:70px;line-height:70px}.action.format .action-header .action-header_title[data-v-7ca3ba11]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.format .action-body[data-v-7ca3ba11]{width:100%;height:calc(100% - 140px);overflow:auto}.action.format .action-footer[data-v-7ca3ba11]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action.format .action-footer .auto[data-v-7ca3ba11]{flex:auto}.action.format .disk-list[data-v-7ca3ba11]{width:100%;height:100%;border:1px solid #dfe1e5;overflow:auto}.action.format .label-item[data-v-7ca3ba11]{width:100%;margin:1rem 0}.action.format .label-item .label-item_key[data-v-7ca3ba11]{width:100%;font-size:16px;color:#666}.action.format .label-item .label-item_key span[data-v-7ca3ba11]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action.format .label-item .label-item_key span[data-v-7ca3ba11]:before{content:"*";color:#f56c6c;margin-right:4px}.action.format .label-item .label-item_value[data-v-7ca3ba11]{width:100%;margin-top:5px}.action.format .label-item .label-item_value select[data-v-7ca3ba11],.action.format .label-item .label-item_value input[data-v-7ca3ba11]{width:100%;height:36px}.action.format .label-item .label-item_path[data-v-7ca3ba11]{padding:0 14px;background-color:#e5e5e5;width:100%;height:28px;line-height:28px;margin-top:10px}.action.format .auto[data-v-7ca3ba11]{flex:auto}.action.format p.msg[data-v-7ca3ba11]{margin:.5rem 0;color:red}.action.format .disk-info[data-v-7ca3ba11]{width:100%;text-align:center}.action.format .disk-info .disk-info_icon[data-v-7ca3ba11]{width:100px;height:100px;margin:0 auto}.action.format .disk-info .disk-info_icon svg[data-v-7ca3ba11]{width:100%;height:100%}.action.format .disk-info .disk-info_mount-name[data-v-7ca3ba11]{margin:1rem 0;font-size:1.5em;color:#333}@keyframes bganimation-7ca3ba11{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-7ca3ba11{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-7ca3ba11{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-7ca3ba11]{animation:rotateEnter-7ca3ba11 .7s;position:relative}.rotate-leave-active[data-v-7ca3ba11]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-7ca3ba11]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action.result[data-v-7ca3ba11]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.result .action-body[data-v-7ca3ba11]{width:100%;height:100%;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.action.result .action-body .action-body_icon[data-v-7ca3ba11]{width:100px;height:100px}.action.result .action-body .action-body_icon svg.icon[data-v-7ca3ba11]{width:100%;height:100%}.action.result .action-body .action-body_msg[data-v-7ca3ba11]{font-size:2em;color:#666;text-align:center;width:100%;margin:1rem 0}.action.result .action-body .action-body_info[data-v-7ca3ba11]{margin:1rem 0;width:100%;text-align:center;color:#666;font-size:1.2em}.action.result .action-body .action-body_info a[data-v-7ca3ba11]{color:#0000fb}.action.result .btns[data-v-7ca3ba11]{width:100%;text-align:center;margin:1rem 0}li.disk-item.error[data-v-ae00b3e7]{color:red}.disk-content[data-v-ae00b3e7]{padding:1rem;border:1px solid #cfcfcf;margin:16px 0}.disk-content li.disk-item[data-v-ae00b3e7]{width:100%;display:flex;align-items:center}.disk-content li.disk-item .disk-item_name[data-v-ae00b3e7]{flex:0 0 50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px}.disk-content li.disk-item .value-data[data-v-ae00b3e7]{width:100%;text-overflow:ellipsis;white-space:nowrap;height:100%;color:#297ff3;cursor:default}.disk-content li.disk-item .value-data button[data-v-ae00b3e7]{background:none;border:none;width:100%;text-align:right;color:#297ff3;cursor:pointer}.disk-content li.disk-item .value-data button[data-v-ae00b3e7]:hover{opacity:.7}.disk-content li.disk-item .value-data.buttondiv[data-v-ae00b3e7]{cursor:pointer}.disk-content li.disk-item .disk_value[data-v-ae00b3e7]{flex:0 0 50%;display:flex;justify-content:space-between;align-items:center}.disk-content li.disk-item .disk_value .cbi-button[data-v-ae00b3e7]{margin-left:10px}.disk-content li.disk-item .disk_value .disk-item_value[data-v-ae00b3e7]{flex:auto;padding-left:10px;position:relative}.disk-content li.disk-item .disk_value .disk-item_value .disk-item-tooltip[data-v-ae00b3e7]{position:absolute;background:#000000b3;z-index:10111;color:#fff;padding:.5rem 1rem;left:10px;right:0;bottom:100%;margin-bottom:6px;text-align:center;font-size:1em;visibility:hidden;opacity:0}.disk-content li.disk-item .disk_value .disk-item_value .disk-item-tooltip[data-v-ae00b3e7]:after{content:"";position:absolute;bottom:-6px;border-color:#4c4c4c rgba(0,0,0,0) rgba(0,0,0,0);left:0;right:0;text-align:center;width:0;margin:0 auto;border-width:6px 8px 0;border-style:solid}.disk-content li.disk-item .disk_value .disk-item_value:hover .disk-item-tooltip[data-v-ae00b3e7]{visibility:visible;transition:.7s;opacity:1}.disk-content .disk_status[data-v-ae00b3e7]{display:flex;text-align:left;padding-left:10px;font-size:12px;padding-top:6px}.disk-content .disk_status .disk_status_item[data-v-ae00b3e7]{display:flex;margin-right:20px}.disk-content .disk_status .disk_status_item .disk_tip[data-v-ae00b3e7]{display:flex;align-items:center}.disk_infoicon[data-v-ae00b3e7]{margin-left:10px;cursor:pointer}.tooltip-trigger[data-v-ae00b3e7]{flex:none}.tooltip-trigger[data-v-ae00b3e7]{position:relative;display:inline-block;cursor:help;margin-right:6px;margin-left:10px}.tooltip-trigger .tooltip-text[data-v-ae00b3e7]{visibility:hidden;position:absolute;padding:.5rem 1rem;background-color:#555;color:#fff;text-align:center;border-radius:6px;z-index:1;opacity:0;transition:opacity .6s}.tooltip-trigger .tooltip-text span[data-v-ae00b3e7]{color:#fff}.tooltip-trigger .tooltip-text .disk_dir_tip[data-v-ae00b3e7]{min-width:15rem;display:inline-block}.tooltip-trigger:hover .tooltip-text[data-v-ae00b3e7]{visibility:visible;opacity:1}.tooltip-top[data-v-ae00b3e7]{bottom:100%;left:50%;margin-bottom:5px;transform:translate(-50%)}.tooltip-top[data-v-ae00b3e7]:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.tooltip-bottom[data-v-ae00b3e7]:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}@keyframes bganimation-ae00b3e7{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ae00b3e7{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ae00b3e7{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ae00b3e7]{animation:rotateEnter-ae00b3e7 .7s;position:relative}.rotate-leave-active[data-v-ae00b3e7]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ae00b3e7]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1000px){.disk-content li.disk-item .disk_value[data-v-ae00b3e7]{display:block}.disk-content .disk_status[data-v-ae00b3e7]{flex-wrap:wrap}}.action[data-v-27fc3117]{width:860px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;padding:3rem;border-radius:6px;display:flex;flex-direction:column;flex-wrap:nowrap}.action ul[data-v-27fc3117]{overflow:auto}.action ul .app-container_info[data-v-27fc3117]{display:flex;justify-content:space-between;max-width:56%;margin-top:18px;font-weight:600}.action ul .app-container_body[data-v-27fc3117]{width:100%;height:100%}.action .action-footer[data-v-27fc3117]{text-align:center;margin-top:46px}.action .action-footer button[data-v-27fc3117]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-27fc3117{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-27fc3117{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-27fc3117{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-27fc3117]{animation:rotateEnter-27fc3117 .7s;position:relative}.rotate-leave-active[data-v-27fc3117]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-27fc3117]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1000px){.action[data-v-27fc3117]{width:160%}}@media screen and (max-width:800px){.action[data-v-27fc3117]{width:138%}}@media screen and (max-width:700px){.action[data-v-27fc3117]{width:132%}}@media screen and (max-width:600px){.action[data-v-27fc3117]{width:116%}}@media screen and (max-width:500px){.action[data-v-27fc3117]{width:100%}}@media screen and (max-width:400px){.action[data-v-27fc3117]{width:90%}}@media screen and (max-width:300px){.action[data-v-27fc3117]{width:100%}}.progress-bar-wrapper[data-v-b80ff621]{width:100%;margin-bottom:0}.progress-bar[data-v-b80ff621]{width:100%;position:relative;box-shadow:inset 0 1px 3px #0000001a}.progress-fill[data-v-b80ff621]{display:flex;align-items:center;justify-content:flex-end;padding-right:8px;box-sizing:border-box}.percentage-text[data-v-b80ff621]{color:#fff;font-size:12px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap;line-height:1}@media(max-width:768px){.percentage-text[data-v-b80ff621]{font-size:10px;padding-right:4px}}@media(prefers-color-scheme:dark){.progress-bar[data-v-b80ff621]{box-shadow:inset 0 1px 3px #ffffff1a}}@keyframes bganimation-34cf4556{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-34cf4556{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-34cf4556{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-34cf4556]{animation:rotateEnter-34cf4556 .7s;position:relative}.rotate-leave-active[data-v-34cf4556]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-34cf4556]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.disk-item.error[data-v-34cf4556]{color:red}li.disk-item[data-v-34cf4556]{width:100%;margin:0 0 1rem}li.disk-item .disk-item_name[data-v-34cf4556]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px}li.disk-item .disk-item_name>span[data-v-34cf4556]{color:#6a7280}li.disk-item .disk_icon[data-v-34cf4556]{padding-left:1rem;align-self:center;align-items:center;flex:none;display:flex}li.disk-item .disk_value[data-v-34cf4556]{display:flex;justify-content:flex-end}li.disk-item .disk_value .disk-item_value[data-v-34cf4556]{flex:auto;position:relative;cursor:help;display:flex;align-items:center}li.disk-item .disk_value .disk-item_value .value-data[data-v-34cf4556]{width:100%;text-overflow:ellipsis;white-space:nowrap}li.disk-item .disk_value .disk-item_value .value-data>div[data-v-34cf4556]{margin-top:10px;display:flex;justify-content:space-between}li.disk-item .disk_value .disk-item_value .value-data button[data-v-34cf4556]{background:none;border:none;width:100%;text-align:right;color:#297ff3;cursor:pointer;padding:0;margin:0;line-height:normal}li.disk-item .disk_value .disk-item_value .value-data button[data-v-34cf4556]:hover{opacity:.7}li.disk-item .disk_value .disk-item_value .disk-item-tooltip[data-v-34cf4556]{position:absolute;background:#000000b3;z-index:10111;color:#fff;padding:.5rem 1rem;left:30%;right:30%;bottom:100%;margin-bottom:6px;text-align:center;font-size:1em;visibility:hidden;opacity:0}li.disk-item .disk_value .disk-item_value .disk-item-tooltip[data-v-34cf4556]:after{content:"";position:absolute;bottom:-6px;border-color:#4c4c4c rgba(0,0,0,0) rgba(0,0,0,0);left:0;right:0;text-align:center;width:0;margin:0 auto;border-width:6px 8px 0;border-style:solid}li.disk-item .disk_value .disk-item_value:hover .disk-item-tooltip[data-v-34cf4556]{visibility:visible;transition:.7s;opacity:1}.disk_infoicon[data-v-34cf4556]{margin-left:10px;cursor:pointer;margin-bottom:10px}.tooltip-trigger[data-v-34cf4556]{flex:none;cursor:help}.tooltip-trigger[data-v-34cf4556]{position:relative;display:inline-block;cursor:help;margin-right:6px;margin-left:10px}.tooltip-trigger .tooltip-text[data-v-34cf4556]{visibility:hidden;position:absolute;padding:.5rem 1rem;background-color:#555;color:#fff;text-align:center;border-radius:6px;z-index:1;opacity:0;transition:opacity .6s}.tooltip-trigger .tooltip-text span[data-v-34cf4556]{color:#fff}.tooltip-trigger .tooltip-text .disk_dir_tip[data-v-34cf4556]{min-width:15rem;display:inline-block}.tooltip-trigger:hover .tooltip-text[data-v-34cf4556]{visibility:visible;opacity:1}.tooltip-top[data-v-34cf4556]{bottom:100%;left:50%;margin-bottom:5px;transform:translate(-50%)}.tooltip-top[data-v-34cf4556]:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.tooltip-bottom[data-v-34cf4556]:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}.icon[data-v-52dc6f12]{width:1.3rem;height:1.3rem}.icon1[data-v-52dc6f12]{width:1rem;height:1rem}[data-v-52dc6f12] .folderIcon path{fill:var(--app-container_title-color)!important}a[data-v-52dc6f12]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content .disk_loading_icon[data-v-52dc6f12]{height:100px;display:flex;flex-direction:column;align-items:center;padding:10px}.content .disk_loading_icon .disk_loading_info[data-v-52dc6f12]{font-size:16px;color:#333;margin-top:12px}.content .line[data-v-52dc6f12]{height:1px;background:var(--btn-border-color);margin:0}.content .item[data-v-52dc6f12]{display:flex;margin-top:8px;padding:10px}.content .item .icon_box[data-v-52dc6f12]{width:1.5rem;height:1.5rem;background:#dbeafe;display:flex;align-items:center;justify-content:center;border-radius:4px}.content .item .icon_box .icon[data-v-52dc6f12]{width:.8rem;height:.8rem}.content .item .info[data-v-52dc6f12]{flex:1}.content .item .info .name[data-v-52dc6f12]{display:flex;justify-content:space-between;align-items:center;margin-left:12px;margin-top:6px}.content .item .info .name>div[data-v-52dc6f12]{font-size:14px;color:var(--app-container_title-color)}.content .item .info .name>span[data-v-52dc6f12]{display:inline-flex;align-items:center;padding:4px 6px;line-height:1;border:1px solid #d8e3db;background:#f0fdf4;border-radius:4px;color:#008236;font-size:12px;font-weight:400}.content .item .info .name>span .icon[data-v-52dc6f12]{width:.7rem;height:.7rem;margin-right:4px}.content .item .info .schedule[data-v-52dc6f12]{margin-top:12px}.content .item .info .schedule span[data-v-52dc6f12]{font-size:12px;color:#6a7280;font-weight:400}.content .item .info .schedule>div[data-v-52dc6f12]{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.btn_settings[data-v-52dc6f12]{position:relative;padding:6px 34px 6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-52dc6f12]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-52dc6f12]{transform:rotate(90deg)}@keyframes bganimation-52dc6f12{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-52dc6f12{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-52dc6f12{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-52dc6f12]{animation:rotateEnter-52dc6f12 .7s;position:relative}.rotate-leave-active[data-v-52dc6f12]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-52dc6f12]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){.content .item[data-v-52dc6f12]{margin-top:0}.content .line[data-v-52dc6f12]{height:1px;background:#e5e7eb;margin:0 0 10px}}@keyframes bganimation-da89cb4d{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-da89cb4d{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-da89cb4d{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-da89cb4d]{animation:rotateEnter-da89cb4d .7s;position:relative}.rotate-leave-active[data-v-da89cb4d]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-da89cb4d]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.sambas-item[data-v-da89cb4d]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.sambas-item .sambas-item_name[data-v-da89cb4d]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.sambas-item .sambas-item_value[data-v-da89cb4d]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-container_title-color)}.app-container_samba li.samba-item[data-v-da89cb4d]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}.app-container_samba li.samba-item .samba-item_name[data-v-da89cb4d]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}.app-container_samba li.samba-item .samba-item_value[data-v-da89cb4d]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-container_samba li.samba-item .samba-item_value button[data-v-da89cb4d]{background:none;border:none;width:100%;text-align:right;color:#297ff3;cursor:pointer}.app-container_samba li.samba-item .samba-item_value button[data-v-da89cb4d]:hover{opacity:.7}.tit[data-v-da89cb4d]{color:var(--tit-color);font-weight:700;font-size:16px}@keyframes bganimation-714283d0{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-714283d0{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-714283d0{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-714283d0]{animation:rotateEnter-714283d0 .7s;position:relative}.rotate-leave-active[data-v-714283d0]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-714283d0]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.webdav-item[data-v-714283d0]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.webdav-item .webdav-item_name[data-v-714283d0]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.webdav-item .webdav-item_value[data-v-714283d0]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-container_title-color)}@keyframes bganimation-9144a2f1{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9144a2f1{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9144a2f1{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9144a2f1]{animation:rotateEnter-9144a2f1 .7s;position:relative}.rotate-leave-active[data-v-9144a2f1]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9144a2f1]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}ul.disk-item[data-v-9144a2f1]{width:100%;margin-bottom:10px}ul.disk-item .auto[data-v-9144a2f1]{flex:auto}ul.disk-item .disk-item_icon[data-v-9144a2f1]{width:24px;height:24px;margin-right:.5rem}ul.disk-item .disk-item_icon svg[data-v-9144a2f1]{width:100%;height:100%}ul.disk-item li.disk-info[data-v-9144a2f1]{display:flex;flex-wrap:nowrap;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;padding:5px 1rem;height:50px;cursor:pointer;color:#666;font-size:12px;border-left:3px solid #89897f}ul.disk-item li.disk-info[data-v-9144a2f1]:hover{background-color:#ecf5ff}ul.disk-item li.disk-info .disk-item_icon svg path[data-v-9144a2f1]{fill:#09aaff}ul.disk-item li.disk-info .disk-item_f[data-v-9144a2f1]{display:flex;flex-wrap:wrap}ul.disk-item li.disk-info .disk-item_f .disk-item_venderModel[data-v-9144a2f1],ul.disk-item li.disk-info .disk-item_f .disk-item_used[data-v-9144a2f1]{width:100%}ul.disk-item li.disk-info.on[data-v-9144a2f1]{border-left:3px solid #ff9c08}ul.disk-item li.disk-info.on.nopoint[data-v-9144a2f1]{background-color:#ecf5ff}ul.disk-item .disk-children[data-v-9144a2f1]{width:100%;color:#666}ul.disk-item .disk-children li.disk-children_item[data-v-9144a2f1]{width:100%;height:40px;line-height:40px;padding-left:2rem;font-size:12px;cursor:pointer;display:flex;flex-wrap:nowrap;align-items:center;border-left:3px solid #89897f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ul.disk-item .disk-children li.disk-children_item[data-v-9144a2f1]:hover{background-color:#ecf5ff}ul.disk-item .disk-children li.disk-children_item span[data-v-9144a2f1]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}ul.disk-item .disk-children li.disk-children_item.on.on[data-v-9144a2f1]{border-left:3px solid #ff9c08;background-color:#ecf5ff}.action .action-footer button[data-v-e55e171a]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action.list[data-v-e55e171a]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.list .action-header[data-v-e55e171a]{width:100%;height:70px;line-height:70px}.action.list .action-header .action-header_title[data-v-e55e171a]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.list .action-body[data-v-e55e171a]{width:100%;height:calc(100% - 176px)}.action.list .action-msg[data-v-e55e171a]{width:100%;height:36px;line-height:36px;text-align:center}.action.list .action-footer[data-v-e55e171a]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action.list .action-footer .auto[data-v-e55e171a]{flex:auto}.action.list .disk-list[data-v-e55e171a]{width:100%;height:100%;border:1px solid #dfe1e5;overflow:auto}.action.format[data-v-e55e171a]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.format .action-header[data-v-e55e171a]{width:100%;height:70px;line-height:70px}.action.format .action-header .action-header_title[data-v-e55e171a]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.format .action-body[data-v-e55e171a]{width:100%;height:calc(100% - 140px);overflow:auto}.action.format .action-footer[data-v-e55e171a]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action.format .action-footer .auto[data-v-e55e171a]{flex:auto}.action.format .disk-list[data-v-e55e171a]{width:100%;height:100%;border:1px solid #dfe1e5;overflow:auto}.action.format .label-item[data-v-e55e171a]{width:100%;margin:1rem 0}.action.format .label-item .label-item_key[data-v-e55e171a]{width:100%;font-size:16px;color:#666}.action.format .label-item .label-item_key span[data-v-e55e171a]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action.format .label-item .label-item_key span[data-v-e55e171a]:before{content:"*";color:#f56c6c;margin-right:4px}.action.format .label-item .label-item_value[data-v-e55e171a]{width:100%;margin-top:5px}.action.format .label-item .label-item_value select[data-v-e55e171a],.action.format .label-item .label-item_value input[data-v-e55e171a]{width:100%;height:36px}.action.format .auto[data-v-e55e171a]{flex:auto}.action.format p.msg[data-v-e55e171a]{margin:.5rem 0;color:red}.action.format .disk-info[data-v-e55e171a]{width:100%;text-align:center}.action.format .disk-info .disk-info_icon[data-v-e55e171a]{width:100px;height:100px;margin:0 auto}.action.format .disk-info .disk-info_icon svg[data-v-e55e171a]{width:100%;height:100%}.action.format .disk-info .disk-info_mount-name[data-v-e55e171a]{margin:1rem 0;font-size:1.5em;color:#333}.action.result[data-v-e55e171a]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action.result .action-header[data-v-e55e171a]{width:100%;height:70px;line-height:70px}.action.result .action-header .action-header_title[data-v-e55e171a]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action.result .action-body[data-v-e55e171a]{width:100%;height:calc(100% - 140px);overflow:auto}.action.result .action-body .format-result[data-v-e55e171a]{width:100%;text-align:center;font-size:2em;color:#333;margin:1rem 0}.action.result .action-body .format-info[data-v-e55e171a]{width:100%;text-align:center;font-size:1.3em}.action.result .action-body .format-info a[data-v-e55e171a]{color:#f70324}.action.result .action-footer[data-v-e55e171a]{width:100%;height:70px;line-height:70px;color:#333}.action.result .auto[data-v-e55e171a]{flex:auto}@keyframes bganimation-e55e171a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e55e171a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e55e171a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e55e171a]{animation:rotateEnter-e55e171a .7s;position:relative}.rotate-leave-active[data-v-e55e171a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e55e171a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1000px){.action.list[data-v-e55e171a]{width:136%}}@media screen and (max-width:900px){.action.list[data-v-e55e171a]{width:126%}}@media screen and (max-width:800px){.action.list[data-v-e55e171a]{width:112%}}@media screen and (max-width:700px){.action.list[data-v-e55e171a]{width:100%}}@media screen and (max-width:500px){.action.list[data-v-e55e171a]{width:80%}}.action[data-v-6a8f7fd7]{width:700px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:1rem 87px;border-radius:6px}.action .action-body[data-v-6a8f7fd7]{width:100%;text-align:center;padding:3rem 0}.action .action-body h2.title[data-v-6a8f7fd7]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0;text-align:center}.action .action-body .info[data-v-6a8f7fd7]{color:#666;font-size:1.3em;margin:1rem 0}.action .action-body .btns[data-v-6a8f7fd7]{width:100%;margin-top:3rem}.action .action-body .btns button[data-v-6a8f7fd7]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-6a8f7fd7{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6a8f7fd7{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6a8f7fd7{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6a8f7fd7]{animation:rotateEnter-6a8f7fd7 .7s;position:relative}.rotate-leave-active[data-v-6a8f7fd7]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6a8f7fd7]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1000px){.action.format .action-body h2.title[data-v-6a8f7fd7]{font-size:20px}}@media screen and (max-width:900px){.action .action-body h2.title[data-v-6a8f7fd7]{font-size:20px}}@media screen and (max-width:800px){.action .action-body h2.title[data-v-6a8f7fd7]{font-size:20px}}@media screen and (max-width:700px){.action .action-body h2.title[data-v-6a8f7fd7]{font-size:20px}}@media screen and (max-width:500px){.action .action-body h2.title[data-v-6a8f7fd7]{font-size:20px}}@keyframes bganimation-b209fad6{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b209fad6{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b209fad6{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b209fad6]{animation:rotateEnter-b209fad6 .7s;position:relative}.rotate-leave-active[data-v-b209fad6]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b209fad6]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-b209fad6]{width:700px;height:560px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:0 25px;border:1px solid #dfdfdf;border-radius:4px;background:#fff;box-shadow:0 1px 4px #0000004d}.action .action-header[data-v-b209fad6]{width:100%;height:70px;line-height:70px}.action .action-header .action-header_title[data-v-b209fad6]{margin:0;color:#333;font:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-user-select:none;-webkit-user-select:none;user-select:none;font-size:20px}.action .action-body[data-v-b209fad6]{width:100%;height:calc(100% - 140px);overflow:auto}.action .action-body .label-item[data-v-b209fad6]{width:100%;margin:1rem 0}.action .action-body .label-item .label-item_key[data-v-b209fad6]{width:100%;font-size:12px;color:#666}.action .action-body .label-item .label-item_key span[data-v-b209fad6]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action .action-body .label-item .label-item_key span[data-v-b209fad6]:before{content:"*";color:#f56c6c;margin-right:4px}.action .action-body .label-item .label-item_value[data-v-b209fad6]{width:100%;margin-top:5px}.action .action-body .label-item .label-item_value select[data-v-b209fad6],.action .action-body .label-item .label-item_value input[data-v-b209fad6]{width:100%;height:36px}.action .action-body .protocol-item[data-v-b209fad6]{width:100%;margin:1rem 0}.action .action-body .protocol-item .protocol-item_key[data-v-b209fad6]{width:100%;font-size:12px;color:#666;margin-bottom:8px}.action .action-body .protocol-item .protocol-item_value[data-v-b209fad6]{display:flex;flex-wrap:wrap;gap:16px}.action .action-body .protocol-item .protocol-item_value label[data-v-b209fad6]{display:flex;align-items:center;cursor:pointer;font-size:13px;color:#333}.action .action-body .protocol-item .protocol-item_value label input[data-v-b209fad6]{margin-right:6px}.action .action-footer[data-v-b209fad6]{width:100%;height:70px;line-height:70px;color:#333;display:flex;flex-wrap:wrap;align-items:center}.action .action-footer .auto[data-v-b209fad6]{flex:auto}.action .action-footer button[data-v-b209fad6]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action[data-v-a0cd5b5e]{width:860px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:1rem 87px;border-radius:6px}.action h2.title[data-v-a0cd5b5e]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0;text-align:center}.action h3.desc[data-v-a0cd5b5e]{width:100%;display:block;color:#666;font-size:1.2em;padding:0;margin:1rem 0;text-align:center}.action form[data-v-a0cd5b5e]{width:100%;display:block;padding:2rem 0}.action form label[data-v-a0cd5b5e]{width:100%;display:block;margin:1rem 0}.action form label input[data-v-a0cd5b5e],.action form label select[data-v-a0cd5b5e]{width:100%;display:block;height:42px}.action .btns[data-v-a0cd5b5e]{width:100%;margin-top:3rem}.action .btns button[data-v-a0cd5b5e]{display:block;width:100%!important;margin:.5rem 0}.action li.disk-item[data-v-a0cd5b5e]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%;padding:5px 1rem;border-bottom:1px solid #eee;cursor:pointer}.action li.disk-item[data-v-a0cd5b5e]:hover{background-color:#eee}.action li.disk-item .disk-item_f[data-v-a0cd5b5e]{display:flex;flex-wrap:wrap}.action li.disk-item .disk-item_f .disk-item_venderModel[data-v-a0cd5b5e],.action li.disk-item .disk-item_f .disk-item_used[data-v-a0cd5b5e]{width:100%}.action .tips[data-v-a0cd5b5e]{float:right;font-size:.8em}@keyframes bganimation-a0cd5b5e{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-a0cd5b5e{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-a0cd5b5e{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-a0cd5b5e]{animation:rotateEnter-a0cd5b5e .7s;position:relative}.rotate-leave-active[data-v-a0cd5b5e]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-a0cd5b5e]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:500px){.action h2.title[data-v-a0cd5b5e]{font-size:2em}}@keyframes bganimation-e3dffc59{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e3dffc59{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e3dffc59{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e3dffc59]{animation:rotateEnter-e3dffc59 .7s;position:relative}.rotate-leave-active[data-v-e3dffc59]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e3dffc59]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.linkease-item[data-v-e3dffc59]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.linkease-item .linkease-item_name[data-v-e3dffc59]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.linkease-item .linkease-item_value[data-v-e3dffc59]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-container_title-color)}li.linkease-item .linkease-item_value .configure[data-v-e3dffc59]{color:#297ff3;padding:3px}li.linkease-item .linkease-item_value .configure.enabel[data-v-e3dffc59]{cursor:pointer}a[data-v-e3dffc59]{text-decoration:none;color:#297ff3}.icon[data-v-15d076d8]{width:1.3rem;height:1.3rem}.icon1[data-v-15d076d8]{width:1rem;height:1rem}.icon2[data-v-15d076d8]{width:1.5rem;height:1.5rem;margin-bottom:12px}.settings-icon[data-v-15d076d8] svg,.settings-icon[data-v-15d076d8] g,.settings-icon[data-v-15d076d8] path,.settings-icon[data-v-15d076d8] circle,.settings-icon[data-v-15d076d8] rect,.settings-icon[data-v-15d076d8] line,.settings-icon[data-v-15d076d8] polyline,.settings-icon[data-v-15d076d8] polygon{fill:var(--app-container_title-color)!important;stroke:var(--app-container_title-color)!important}a[data-v-15d076d8]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-15d076d8]{color:#333;margin-top:10px;margin-bottom:10px;font-weight:400}.content .tab[data-v-15d076d8]{display:flex;gap:8px}.content .tab .item[data-v-15d076d8]{flex:1;padding:16px;display:flex;flex-direction:column;align-items:center;border-radius:10px;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.content .tab .item .title[data-v-15d076d8]{margin-bottom:8px}.content .tab .item>span[data-v-15d076d8]{font-size:12px}.content .tab .active[data-v-15d076d8]{border:2px solid #6d6d6d}.content .tab .cloud[data-v-15d076d8]{background-color:#eff6ff;color:#1447e6}.content .tab .memory[data-v-15d076d8]{background-color:#dbfce7;color:#008236}.content .tab .network[data-v-15d076d8]{background-color:#faf5ff;color:#8200db}.btn_settings[data-v-15d076d8]{position:relative;padding:6px 34px 6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-15d076d8]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-15d076d8]{transform:rotate(90deg)}@keyframes bganimation-15d076d8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-15d076d8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-15d076d8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-15d076d8]{animation:rotateEnter-15d076d8 .7s;position:relative}.rotate-leave-active[data-v-15d076d8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-15d076d8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){.content[data-v-15d076d8]{margin:10px 0}}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface :is(.service-docker,.service-downloads,.service-remote){font-size:14px;line-height:1.5;color:var(--c-text);text-align:left}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface ul.service-docker{margin:0;padding:0;list-style:none}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-docker>li.docker-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0;margin:0 0 16px;border:0;background:none;border-radius:0}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-docker>li.docker-item>.docker-item_name{flex:1;max-width:none;padding:0;color:var(--c-muted);font-size:12px;white-space:normal}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-docker>li.docker-item>.docker-item_value{flex:0 1 auto;max-width:none;padding:0;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-docker .status-icon{margin:0;padding:0;background:none!important;color:var(--c-good);font-size:12px;white-space:nowrap}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-docker .status-icon[style]{color:var(--c-muted)!important}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-docker>.service-root{margin:0;padding:0}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-root>.docker-item_name{font-size:12px;color:var(--c-muted);line-height:18px}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-root>.docker_box{display:flex;align-items:center;gap:8px;margin:4px 0 0;padding:0;min-width:0}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-root .docker_box>.path{flex:1;min-width:0;margin:0;padding:0;border:0;background:none;border-radius:0;font-size:14px;line-height:21px;overflow-wrap:anywhere;color:var(--c-text)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content.service-downloads>ul{list-style:none;margin:0;padding:0}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content.service-downloads>ul>li{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:0;margin:0 0 16px;border:0}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content.service-downloads>ul>li>:is(.aria2-item_name,.qbittorrent-item_name,.transmission-item_name){width:auto;max-width:none;padding:0;font-size:12px;line-height:18px;color:var(--c-muted);white-space:normal;overflow:visible}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content.service-downloads>ul>li>[class$=-item_value]{width:auto;max-width:none;min-width:0;padding:0;font-size:14px;line-height:21px;color:var(--c-text);white-space:normal;overflow:visible;overflow-wrap:anywhere}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content.service-downloads>ul>li a{display:block;font-size:14px;line-height:21px;color:var(--c-accent);overflow-wrap:anywhere}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content.service-downloads .use-url_app{margin:16px 0 0;padding:0;border:0;font-size:12px;line-height:18px}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content.service-downloads .use-url_app>a{font-size:12px;color:var(--c-muted);text-decoration:underline;text-underline-offset:3px;line-height:18px}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-idle{margin:0;padding:0;color:var(--c-muted);font-size:14px;line-height:21px;overflow-wrap:anywhere}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-remote{padding:0}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .remote-details{margin:0;padding:0;min-width:0}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .remote-address-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;min-width:0;margin:0 0 4px;color:var(--c-muted);font-size:12px;line-height:18px}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .remote-address-heading>.remote-console{display:inline-flex;align-items:center;gap:4px;font-size:12px;line-height:18px;color:var(--c-accent);text-decoration:none;white-space:nowrap}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .remote-address-heading .icon3{width:14px;height:14px}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .remote-details>.remote-address{display:block;min-width:0;width:100%;box-sizing:border-box;font-size:14px;font-weight:500;line-height:21px;overflow-wrap:anywhere;white-space:normal;color:var(--c-accent);text-decoration:none}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .remote-description{font-size:12px;line-height:18px;color:var(--c-muted);margin:8px 0 0}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content:is(.service-downloads,.service-remote) .tab{display:flex;gap:4px;margin:0 0 16px;align-items:stretch}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content:is(.service-downloads,.service-remote) .tab>button.item{flex:1;appearance:none;font:inherit;cursor:pointer;min-width:0;min-height:76px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 4px!important;border:1px solid transparent;border-radius:6px;text-align:center}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content:is(.service-downloads,.service-remote) .tab>button.item.active{border-color:var(--home-option-border)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content:is(.service-downloads,.service-remote) .tab>button.item>svg{width:18px;height:18px;margin:0;flex:none}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content:is(.service-downloads,.service-remote) .tab>button.item>.title{font-size:12px;font-weight:500;line-height:17px;margin:0;max-width:100%;overflow-wrap:anywhere}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content:is(.service-downloads,.service-remote) .tab>button.item>span{font-size:12px;line-height:17px}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content:is(.service-downloads,.service-remote) .tab>button.item>[data-service-state=running]{color:var(--color-icon-green)}@media(pointer:coarse){:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .service-docker .input-switch{min-width:50px;min-height:44px;display:inline-flex;align-items:center}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content:is(.service-downloads,.service-remote) a{min-height:44px;min-width:44px;display:flex;align-items:center}}@keyframes bganimation-9874651a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9874651a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9874651a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9874651a]{animation:rotateEnter-9874651a .7s;position:relative}.rotate-leave-active[data-v-9874651a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9874651a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.docker-item[data-v-9874651a]{width:100%;display:flex;flex-wrap:wrap;margin:1.5rem 0}li.docker-item .docker-item_name[data-v-9874651a]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.docker-item .docker-item_value[data-v-9874651a]{flex:0 0 100%;max-width:50%;padding-left:10px;display:flex;justify-content:flex-end;align-items:center}li.docker-item .docker-item_value .configure[data-v-9874651a]{color:#297ff3;overflow:hidden;white-space:nowrap;padding:3px;overflow-x:hidden;text-overflow:ellipsis}li.docker-item .docker-item_value .configure.enabel[data-v-9874651a]{color:#888;overflow-x:hidden;text-overflow:ellipsis}li.docker-item .docker-item_root[data-v-9874651a]{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:16px;max-width:323px;flex:0 0 100%}.tooltip-trigger[data-v-9874651a]{position:relative;display:inline-block;cursor:help}.tooltip-trigger .tooltip-text[data-v-9874651a]{visibility:hidden;position:absolute;padding:.5rem 1rem;background-color:#555;color:#fff;text-align:center;border-radius:6px;z-index:1;opacity:0;transition:opacity .6s}.tooltip-trigger .tooltip-text span[data-v-9874651a]{color:#fff}.tooltip-trigger .tooltip-text .docker_dir_tip[data-v-9874651a]{min-width:15rem;display:inline-block}.tooltip-trigger:hover .tooltip-text[data-v-9874651a]{visibility:visible;opacity:1}.tooltip-top[data-v-9874651a]{bottom:100%;left:50%;margin-bottom:5px;transform:translate(-50%);margin-left:12px}.tooltip-right[data-v-9874651a]{top:50%;left:100%;margin-left:5px;transform:translateY(-50%)}.tooltip-left[data-v-9874651a]{top:50%;right:100%;margin-right:5px;transform:translateY(-50%)}.tooltip-top[data-v-9874651a]:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.tooltip-bottom[data-v-9874651a]:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}.input-switch[data-v-9874651a]{display:inline-block;cursor:pointer;position:relative}.input-switch .docker-switch-input[data-v-9874651a]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.input-switch[data-v-9874651a]:focus-within{outline:2px solid var(--c-accent, #155dfc);outline-offset:3px;border-radius:6px}.input-switch span[data-v-9874651a]{display:block;position:relative;width:50px;height:20px;border-radius:10px;padding:2px}.input-switch span em[data-v-9874651a]{display:block;width:16px;height:16px;background-color:#fff;border-radius:10px}.input-switch span.enable[data-v-9874651a]{background-color:#52c41a;transition:.3s}.input-switch span.enable em[data-v-9874651a]{transform:translate(30px);transition:.3s}.input-switch span.close[data-v-9874651a]{background-color:#cecece;transition:.3s}.input-switch span.close em[data-v-9874651a]{transform:translate(0);transition:.3s}.content[data-v-9874651a]{color:#333;margin-top:20px;margin-bottom:20px;font-weight:400}.content .status[data-v-9874651a]{display:flex;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid #e8e8e8;margin:0 6px}.content .docker_box[data-v-9874651a]{display:flex;align-items:center;justify-content:space-between;margin:20px 6px}.content .docker_box .title[data-v-9874651a]{margin-bottom:20px}.content .docker_box .path[data-v-9874651a]{flex:1;border:1px solid #e0e1e1;background:#f9fafb;border-radius:4px;padding:8px 10px}.content .docker_num[data-v-9874651a]{display:flex}.content .docker_num .num_item[data-v-9874651a]{flex:1;display:flex;justify-content:center;align-items:center;flex-direction:column;color:var(--app-container_title-color)}.content .docker_num .num_item>span[data-v-9874651a]{font-size:20px;margin-top:6px}.docker_tip svg[data-v-9874651a]{vertical-align:bottom;margin-left:14px;width:1.5em;height:1.5em}.status-icon[data-v-9874651a]{display:inline-block;margin-left:10px;font-size:12px;color:#008236;padding:4px 6px;background:#dbfce7;border-radius:6px}.action[data-v-e4c2ce97]{width:860px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;overflow:auto;padding:1rem 87px;border-radius:6px}.action h2.title[data-v-e4c2ce97]{width:100%;display:block;color:#1e1e1e;font-size:22px;padding:0;margin:0;text-align:center}.action .roots[data-v-e4c2ce97]{display:flex;max-width:342px;align-items:center;margin-top:32px;margin-bottom:16px}.action .roots .root[data-v-e4c2ce97]{color:#000000d4;font-size:14px;text-align:center}.action .move[data-v-e4c2ce97]{display:flex;justify-content:left;align-items:center}.action .change[data-v-e4c2ce97]{width:678px}.action .desc[data-v-e4c2ce97]{width:100%;display:block;font-size:1.2em;padding:0;margin:1rem 0;margin-top:32px;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#000000d4}.action form[data-v-e4c2ce97]{width:100%;display:block}.action .tips[data-v-e4c2ce97]{width:477px}.action .tips .tip[data-v-e4c2ce97]{color:#faad14;padding-left:6px}.action .btns[data-v-e4c2ce97]{width:100%;margin:104px auto 0}.action .btns button[data-v-e4c2ce97]{display:block;width:100%!important;margin-left:0;margin-right:0}.action .roots_tit[data-v-e4c2ce97]{color:#000000d4;font-size:14px;font-weight:700;width:118px;text-align:right;flex:none}.action .successed[data-v-e4c2ce97]{text-align:center;font-size:14px}.action .finished[data-v-e4c2ce97]{display:flex;justify-content:center;margin:80px 80px 28px}.action .docker_moves[data-v-e4c2ce97]{text-align:center}.action .docker_moves .moves[data-v-e4c2ce97]{margin-top:10px}.action .docker_moves .moves input[data-v-e4c2ce97]{cursor:pointer}.action .docker_moves .moves label[data-v-e4c2ce97]{margin-left:10px;cursor:pointer}.select-editable[data-v-e4c2ce97]{position:relative;border:solid grey 1px;width:438px;height:34px}.select-editable select[data-v-e4c2ce97]{position:absolute;top:0;left:0;font-size:14px;border:none;width:100%;height:100%;margin:0}.select-editable input[data-v-e4c2ce97]{position:absolute;top:0;left:0;width:95%;padding:1px;font-size:14px;border:none}.select-editable select[data-v-e4c2ce97]:focus,.select-editable input[data-v-e4c2ce97]:focus{outline:none}[data-v-e4c2ce97]::placeholder{color:#999}@keyframes bganimation-e4c2ce97{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-e4c2ce97{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-e4c2ce97{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-e4c2ce97]{animation:rotateEnter-e4c2ce97 .7s;position:relative}.rotate-leave-active[data-v-e4c2ce97]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-e4c2ce97]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:800px){.action[data-v-e4c2ce97]{width:100%}.docker_download[data-v-e4c2ce97]{width:80%}}.icon[data-v-18542fda]{width:1.3rem;height:1.3rem}.icon1[data-v-18542fda]{width:1rem;height:1rem}[data-v-18542fda] .dockerIcon path{fill:var(--app-container_title-color)!important}a[data-v-18542fda]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-18542fda]{color:#333;margin-top:10px;margin-bottom:10px;font-weight:400}.btn_settings[data-v-18542fda]{position:relative;padding:6px 34px 6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-18542fda]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-18542fda]{transform:rotate(90deg)}@keyframes bganimation-18542fda{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-18542fda{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-18542fda{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-18542fda]{animation:rotateEnter-18542fda .7s;position:relative}.rotate-leave-active[data-v-18542fda]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-18542fda]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){.content[data-v-18542fda]{margin:10px 0}}@keyframes bganimation-79be9404{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-79be9404{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-79be9404{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-79be9404]{animation:rotateEnter-79be9404 .7s;position:relative}.rotate-leave-active[data-v-79be9404]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-79be9404]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.aria2-item[data-v-79be9404]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.aria2-item .aria2-item_name[data-v-79be9404]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.aria2-item .aria2-item_value[data-v-79be9404]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}li.aria2-item .aria2-item_value .configure[data-v-79be9404]{color:#297ff3;padding:3px}li.aria2-item .aria2-item_value .configure.enabel[data-v-79be9404]{color:#888}.use-url_app a[data-v-79be9404]{text-decoration:none;color:#297ff3}.use-url_app[data-v-79be9404]{padding-bottom:14px}@keyframes bganimation-498cb646{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-498cb646{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-498cb646{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-498cb646]{animation:rotateEnter-498cb646 .7s;position:relative}.rotate-leave-active[data-v-498cb646]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-498cb646]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.qbittorrent-item[data-v-498cb646]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.qbittorrent-item .qbittorrent-item_name[data-v-498cb646]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.qbittorrent-item .qbittorrent-item_value[data-v-498cb646]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}li.qbittorrent-item .qbittorrent-item_value .configure[data-v-498cb646]{color:#297ff3;padding:3px}li.qbittorrent-item .qbittorrent-item_value .configure.enabel[data-v-498cb646]{color:#888}a[data-v-498cb646]{text-decoration:none;color:#297ff3}@keyframes bganimation-55991749{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-55991749{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-55991749{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-55991749]{animation:rotateEnter-55991749 .7s;position:relative}.rotate-leave-active[data-v-55991749]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-55991749]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}li.transmission-item[data-v-55991749]{width:100%;display:flex;flex-wrap:wrap;margin:1rem 0}li.transmission-item .transmission-item_name[data-v-55991749]{flex:0 0 100%;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px;color:var(--app-container_title-color)}li.transmission-item .transmission-item_value[data-v-55991749]{flex:0 0 100%;max-width:50%;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}li.transmission-item .transmission-item_value .configure[data-v-55991749]{color:#297ff3;padding:3px}li.transmission-item .transmission-item_value .configure.enabel[data-v-55991749]{color:#888}a[data-v-55991749]{text-decoration:none;color:#297ff3}.action[data-v-aaa01e06]{width:860px;max-height:90%;background-color:#fff;position:relative;z-index:1000;margin:auto;padding:1rem 87px;border-radius:6px}.action p[data-v-aaa01e06]{color:#999;font-size:14px}.action input[data-v-aaa01e06]{font-size:14px;font-family:PingFangSC-Regular,PingFang SC}.action h2.title[data-v-aaa01e06]{width:100%;color:#1e1e1e;font-size:22px;font-family:PingFangSC-Medium,PingFang SC;padding:0;margin:0;text-align:center}.action span[data-v-aaa01e06]{font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#000000d4;font-weight:700}.action form label[data-v-aaa01e06]{width:100%}.action form label input[data-v-aaa01e06],.action form label select[data-v-aaa01e06]{height:100%;font-size:14px}.action .myinput_wrap[data-v-aaa01e06],.action .RPC_input[data-v-aaa01e06]{width:85%}.action .myinput_wrap textarea[data-v-aaa01e06]{width:100%;padding:2px 3px;border:1px solid #dee2e6;border-radius:.25rem}.action .input_row[data-v-aaa01e06]{margin:16px 0;display:flex;justify-content:left;align-items:center}.action .input_row .radios[data-v-aaa01e06]{margin-right:10px}.action .input_row .radios input[data-v-aaa01e06],.action .input_row .radios label[data-v-aaa01e06]{cursor:pointer}.action .Tracker label[data-v-aaa01e06]{margin-right:10px;cursor:pointer}.action .Tracker_input[data-v-aaa01e06]{padding:6px 2px}.action .btns[data-v-aaa01e06]{width:100%;margin:42px auto 0}.action .btns button[data-v-aaa01e06]{display:block;width:100%!important;margin:.5rem 0}.action .tooltip-trigger[data-v-aaa01e06]{position:relative;display:inline-block;cursor:help;margin-right:6px}.action .tooltip-trigger .tooltip-text[data-v-aaa01e06]{visibility:hidden;position:absolute;padding:.5rem 1rem;background-color:#555;color:#fff;text-align:center;border-radius:6px;z-index:1;opacity:0;transition:opacity .6s}.action .tooltip-trigger .tooltip-text span[data-v-aaa01e06]{color:#fff}.action .tooltip-trigger .tooltip-text .dowload_dir_tip[data-v-aaa01e06]{min-width:14rem;display:inline-block}.action .tooltip-trigger:hover .tooltip-text[data-v-aaa01e06]{visibility:visible;opacity:1}.action .tooltip-top[data-v-aaa01e06]{bottom:100%;left:50%;margin-bottom:5px;transform:translate(-50%)}.action .tooltip-bottom[data-v-aaa01e06]{top:100%;left:50%;margin-top:5px;transform:translate(-50%)}.action .tooltip-bottom .dowload_rpc_tip[data-v-aaa01e06]{min-width:10rem;display:inline-block}.action .tooltip-right[data-v-aaa01e06]{top:50%;left:100%;margin-left:5px;transform:translateY(-50%)}.action .tooltip-left[data-v-aaa01e06]{top:50%;right:100%;margin-right:5px;transform:translateY(-50%)}.action .tooltip-top[data-v-aaa01e06]:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.action .tooltip-bottom[data-v-aaa01e06]:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #555 transparent}.action .successed[data-v-aaa01e06]{text-align:center;font-size:14px}.action .finished[data-v-aaa01e06]{display:flex;justify-content:center;margin:80px 80px 28px}.left[data-v-aaa01e06]{display:flex;align-items:center;justify-content:flex-start;width:110px;flex:none}.select-editable[data-v-aaa01e06]{position:relative;border:1px solid #dee2e6;border-radius:.25rem;margin:.25rem .1rem}.select-editable select[data-v-aaa01e06]{top:0;left:0;font-size:14px;border:none;width:100%;margin:0}.select-editable input[data-v-aaa01e06]{position:absolute;top:-4px;left:0;width:95%;padding:1px;font-size:14px;border:none}.select-editable select[data-v-aaa01e06]:focus,.select-editable input[data-v-aaa01e06]:focus{outline:none}[data-v-aaa01e06]::placeholder{color:#999}@keyframes bganimation-aaa01e06{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-aaa01e06{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-aaa01e06{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-aaa01e06]{animation:rotateEnter-aaa01e06 .7s;position:relative}.rotate-leave-active[data-v-aaa01e06]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-aaa01e06]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:500px){.action[data-v-aaa01e06]{width:100%}.action .input_row[data-v-aaa01e06]{display:block}.action .input_row .myinput_wrap[data-v-aaa01e06],.action .input_row .RPC_input[data-v-aaa01e06]{width:100%}}.icon[data-v-a1c9e38b]{width:1.3rem;height:1.3rem}.icon1[data-v-a1c9e38b]{width:1rem;height:1rem}.icon2[data-v-a1c9e38b]{width:1.5rem;height:1.5rem;margin-bottom:12px}[data-v-a1c9e38b] .downloadIcon path{fill:var(--app-container_title-color)!important}a[data-v-a1c9e38b]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-a1c9e38b]{color:#333;margin-top:20px;margin-bottom:20px;font-weight:400}.content .tab[data-v-a1c9e38b]{display:flex;gap:8px}.content .tab .item[data-v-a1c9e38b]{flex:1;padding:16px;display:flex;flex-direction:column;align-items:center;border-radius:10px;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.content .tab .item .title[data-v-a1c9e38b]{margin-bottom:8px}.content .tab .item>span[data-v-a1c9e38b]{font-size:12px}.content .tab .active[data-v-a1c9e38b]{border:2px solid #6d6d6d}.content .tab .cloud[data-v-a1c9e38b]{background-color:#fff7ed;color:#ca3500}.content .tab .memory[data-v-a1c9e38b]{background-color:#f9fafb;color:#364153}.content .tab .network[data-v-a1c9e38b]{background-color:#f0fdfa;color:#277881}.btn_settings[data-v-a1c9e38b]{position:relative;padding:6px 34px 6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}.rotation[data-v-a1c9e38b]{position:absolute;right:2px;top:50%;height:100%;transform:translateY(-50%);border-left:1px solid var(--btn-border-color);display:flex;align-items:center}.rotation .moreIcon[data-v-a1c9e38b]{transform:rotate(90deg)}@keyframes bganimation-a1c9e38b{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-a1c9e38b{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-a1c9e38b{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-a1c9e38b]{animation:rotateEnter-a1c9e38b .7s;position:relative}.rotate-leave-active[data-v-a1c9e38b]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-a1c9e38b]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){.content[data-v-a1c9e38b]{margin:10px 0}}@keyframes bganimation-99e65ae9{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-99e65ae9{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-99e65ae9{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-99e65ae9]{animation:rotateEnter-99e65ae9 .7s;position:relative}.rotate-leave-active[data-v-99e65ae9]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-99e65ae9]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}h3[data-v-99e65ae9]{text-align:center;margin-bottom:20px}.label-item[data-v-99e65ae9]{display:flex;align-items:center;flex-wrap:wrap;margin:1rem 0;padding:0 30px}.label-item label[data-v-99e65ae9]{display:flex;flex-wrap:wrap;align-items:center;width:100%;height:26px;line-height:26px;cursor:pointer}.label-item label input[type=radio][data-v-99e65ae9]{top:0;right:0;vertical-align:middle}.label-item label span[data-v-99e65ae9]{font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#000000d4;display:inline-block;margin-left:10px}.label-item p.label_info[data-v-99e65ae9]{color:#999;font-size:12px;padding-left:24px;line-height:20px}.label-item .label-item_key[data-v-99e65ae9]{display:flex;flex-wrap:wrap;align-items:center}.label-item .label-item_key .ddnsto_serve[data-v-99e65ae9]{flex:0 0 100%;display:flex;justify-content:space-between;margin-bottom:14px}.label-item .label-item_key .ddnsto_serve_item[data-v-99e65ae9]{flex:0 0 100%;display:flex;justify-content:space-between}@keyframes bganimation-ea162d2f{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ea162d2f{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ea162d2f{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ea162d2f]{animation:rotateEnter-ea162d2f .7s;position:relative}.rotate-leave-active[data-v-ea162d2f]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ea162d2f]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-container_body[data-v-ea162d2f]{display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.actioner-container_body svg.icon[data-v-ea162d2f]{width:100px;height:100px}.actioner-container_body .body-title[data-v-ea162d2f]{width:100%;display:block;color:#1e1e1e;font-size:2em;padding:0;margin:1rem 0;text-align:center}.actioner-container_body .body-tips[data-v-ea162d2f]{text-align:center}.actioner-container_body .body-info[data-v-ea162d2f]{color:#666;font-size:1.3em;margin:1rem 0;width:100%;text-align:center}.actioner-container_body .body-tips[data-v-ea162d2f]{margin:1rem 0;display:block;width:100%}.actioner-container_body .body-btns[data-v-ea162d2f]{width:100%;margin-top:3rem}.actioner-container_body .body-btns button[data-v-ea162d2f]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-ce7dc31a{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ce7dc31a{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ce7dc31a{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ce7dc31a]{animation:rotateEnter-ce7dc31a .7s;position:relative}.rotate-leave-active[data-v-ce7dc31a]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ce7dc31a]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}iframe[data-v-ce7dc31a]{width:100%;height:100%;border:none}@keyframes bganimation-8084ff19{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-8084ff19{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-8084ff19{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-8084ff19]{animation:rotateEnter-8084ff19 .7s;position:relative}.rotate-leave-active[data-v-8084ff19]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-8084ff19]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}iframe[data-v-8084ff19]{width:100%;height:100%;border:none}@keyframes bganimation-82ebe368{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-82ebe368{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-82ebe368{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-82ebe368]{animation:rotateEnter-82ebe368 .7s;position:relative}.rotate-leave-active[data-v-82ebe368]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-82ebe368]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-container_body[data-v-82ebe368]{display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.actioner-container_body svg.icon[data-v-82ebe368]{width:100px;height:100px}.actioner-container_body .body-title[data-v-82ebe368]{width:100%;display:block;color:#1e1e1e;font-size:2em;padding:0;margin:1rem 0;text-align:center}.actioner-container_body .body-info[data-v-82ebe368]{color:#666;font-size:1.3em;margin:1rem 0;width:100%}.actioner-container_body .body-tips[data-v-82ebe368]{margin:1rem 0;display:block;width:100%}.actioner-container_body .body-btns[data-v-82ebe368]{width:100%;margin-top:3rem}.actioner-container_body .body-btns button[data-v-82ebe368]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-11e7f6d6{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-11e7f6d6{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-11e7f6d6{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-11e7f6d6]{animation:rotateEnter-11e7f6d6 .7s;position:relative}.rotate-leave-active[data-v-11e7f6d6]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-11e7f6d6]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-container_body[data-v-11e7f6d6]{display:flex;align-items:center;justify-content:center}@keyframes bganimation-cc67b1f4{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-cc67b1f4{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-cc67b1f4{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-cc67b1f4]{animation:rotateEnter-cc67b1f4 .7s;position:relative}.rotate-leave-active[data-v-cc67b1f4]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-cc67b1f4]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.actioner-container_body[data-v-cc67b1f4]{display:flex;align-items:center;justify-content:center}.action-main[data-v-d55b4654]{width:680px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.action-main[data-v-d55b4654] .actioner-container{width:100%}.action-main[data-v-d55b4654] .actioner-container .actioner-container_header{width:100%;height:50px;line-height:50px;display:flex;flex-wrap:wrap;align-items:center;font-size:20px;border-bottom:1px solid #eee;justify-content:center;padding:0 10px}.action-main[data-v-d55b4654] .actioner-container .actioner-container_footer{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action-main[data-v-d55b4654] .actioner-container .actioner-container_footer button{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action-main[data-v-d55b4654] .actioner-container .actioner-container_footer .close{min-width:65px;font-weight:400;color:#0060ff;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action-main[data-v-d55b4654] .actioner-container .actioner-container_footer .next{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:74px;height:32px;background:#553afe;border-radius:2px}.action-main[data-v-d55b4654] .actioner-container .actioner-container_footer .next:hover,.action-main[data-v-d55b4654] .actioner-container .actioner-container_footer .close:hover{opacity:.9}.action-main[data-v-d55b4654] .actioner-container .actioner-container_body{padding:1rem;text-align:center;width:100%;height:400px}.action-main[data-v-d55b4654] .actioner-container .actioner-container_body a{text-decoration:none}.action-main[data-v-d55b4654] .actioner-container .actioner-container_body.ddnsto-bind{height:280px}@keyframes bganimation-d55b4654{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-d55b4654{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-d55b4654{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-d55b4654]{animation:rotateEnter-d55b4654 .7s;position:relative}.rotate-leave-active[data-v-d55b4654]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-d55b4654]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:800px){.action-main[data-v-d55b4654]{width:90%}}@keyframes bganimation-ceabb82b{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ceabb82b{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ceabb82b{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ceabb82b]{animation:rotateEnter-ceabb82b .7s;position:relative}.rotate-leave-active[data-v-ceabb82b]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ceabb82b]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.action[data-v-ceabb82b]{width:500px;max-height:90%;background-color:#fff;position:relative;z-index:99999;margin:auto;border-radius:4px;padding:10px 0}.action .action-header[data-v-ceabb82b]{width:100%;font-family:PingFangSC-Medium,PingFang SC;font-weight:500;padding-left:1rem;padding-right:1rem;text-align:left;font-size:18px;line-height:1;color:#303133}.action .action-body[data-v-ceabb82b]{display:block;margin:2rem 0;line-height:24px;padding:0 15px;color:#606266;font-size:14px}.action .action-footer[data-v-ceabb82b]{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action .next[data-v-ceabb82b]{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:120px;height:32px;background:#553afe;border-radius:2px}.action .next[data-v-ceabb82b]:hover{opacity:.8}.action .clear[data-v-ceabb82b]{min-width:65px;font-weight:400;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action .clear[data-v-ceabb82b]:hover{opacity:.8}@keyframes bganimation-9817991d{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9817991d{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9817991d{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9817991d]{animation:rotateEnter-9817991d .7s;position:relative}.rotate-leave-active[data-v-9817991d]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9817991d]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.title_info[data-v-9817991d]{display:block;width:100%;text-align:center}.title_info p[data-v-9817991d]{font-size:20px;margin-bottom:10px}.label-item[data-v-9817991d]{width:100%;margin:1rem 0}.label-item .label-item_key[data-v-9817991d]{width:100%;font-size:12px;color:#666}.label-item .label-item_key span[data-v-9817991d]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-9817991d]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-9817991d]{width:100%;margin-top:5px}.label-item .label-item_value select[data-v-9817991d],.label-item .label-item_value input[data-v-9817991d]{width:100%;height:36px;color:#000}.label-item .label-item_value input[data-v-9817991d]::placeholder{color:#999;font-size:12PX}.label-item .label_tips[data-v-9817991d]{display:flex;margin-top:6px}.label-item .label_tips .info[data-v-9817991d]{margin-left:8px}.label-message[data-v-9817991d]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.action-main[data-v-8c90412c]{width:680px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.action-main[data-v-8c90412c] .actioner-container{width:100%}.action-main[data-v-8c90412c] .actioner-container .actioner-container_header{width:100%;height:50px;line-height:50px;display:flex;flex-wrap:wrap;align-items:center;font-size:20px;border-bottom:1px solid #eee;justify-content:center;padding:0 10px}.action-main[data-v-8c90412c] .actioner-container .actioner-container_footer{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action-main[data-v-8c90412c] .actioner-container .actioner-container_footer button{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action-main[data-v-8c90412c] .actioner-container .actioner-container_footer .close{min-width:65px;font-weight:400;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action-main[data-v-8c90412c] .actioner-container .actioner-container_footer .next{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:74px;height:32px;background:#553afe;border-radius:2px}.action-main[data-v-8c90412c] .actioner-container .actioner-container_footer .next.save{height:32px;background:#553afe;border-radius:2px;line-height:16px}.action-main[data-v-8c90412c] .actioner-container .actioner-container_footer .next:hover,.action-main[data-v-8c90412c] .actioner-container .actioner-container_footer .close:hover{opacity:.9}.action-main[data-v-8c90412c] .actioner-container .actioner-container_body{padding:1rem;width:100%;height:400px}.action-main[data-v-8c90412c] .actioner-container .actioner-container_body a{text-decoration:none}.action-main[data-v-8c90412c] .actioner-container .actioner-container_body.ali,.action-main[data-v-8c90412c] .actioner-container .actioner-container_body.dnspod,.action-main[data-v-8c90412c] .actioner-container .actioner-container_body.oray{height:451px}@keyframes bganimation-8c90412c{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-8c90412c{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-8c90412c{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-8c90412c]{animation:rotateEnter-8c90412c .7s;position:relative}.rotate-leave-active[data-v-8c90412c]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-8c90412c]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:800px){.action-main[data-v-8c90412c]{width:90%}}[data-v-72b8c1d6] .footer-btn{background:var(--card-bg-color);border:1px solid var(--btn-border-color)}[data-v-72b8c1d6] .reusable-card{background:#fff5ee!important;border:1px solid #ffd6a7!important}[data-v-72b8c1d6] .earthIcon path{fill:var(--app-container_title-color)!important}.icon[data-v-72b8c1d6]{width:1.3rem;height:1.3rem}.icon1[data-v-72b8c1d6]{width:1rem;height:1rem}.icon2[data-v-72b8c1d6]{width:1.5rem;height:1.5rem;margin-bottom:8px}.icon3[data-v-72b8c1d6]{width:1.5rem;height:1.5rem;cursor:pointer}a[data-v-72b8c1d6]{text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-72b8c1d6]{color:#333;margin-top:20px;margin-bottom:20px;font-weight:400;padding:0 12px}.content .tab[data-v-72b8c1d6]{display:flex;gap:8px}.content .tab .item[data-v-72b8c1d6]{flex:1;padding:16px;display:flex;flex-direction:column;align-items:center;border-radius:10px;cursor:pointer;border:2px solid transparent;box-sizing:border-box}.content .tab .item .title[data-v-72b8c1d6]{margin-bottom:8px}.content .tab .item>span[data-v-72b8c1d6]{font-size:12px}.content .tab .active[data-v-72b8c1d6]{border:2px solid #6d6d6d}.content .tab .cloud[data-v-72b8c1d6]{background-color:#eff6ff;color:#1447e6}.content .tab .memory[data-v-72b8c1d6]{background-color:#f0fdf4;color:#008236}.content .tab .network[data-v-72b8c1d6]{background-color:#f9fafb;color:#4a5565}.content .info[data-v-72b8c1d6]{margin-top:20px}.content .info .status[data-v-72b8c1d6]{padding:20px 0 0;margin-top:16px;display:flex;justify-content:space-between;border-top:1px solid var(--btn-border-color)}.content .info .status .offline[data-v-72b8c1d6]{background:#eceef2;color:#030213}.content .info .status>div[data-v-72b8c1d6]{color:var(--app-container_title-color);font-size:16px}.content .info .status>span[data-v-72b8c1d6]{color:#fff;padding:4px 8px;background:#030213;border-radius:6px;font-size:12px}.content .info .title_box[data-v-72b8c1d6]{margin:20px 0}.content .info .title_box .title[data-v-72b8c1d6]{color:var(--item-label_key-span-color);margin-bottom:10px}.content .info .title_box .path[data-v-72b8c1d6]{display:flex;align-items:center;justify-content:space-between;border:1px solid #e0e1e1;background:#f9fafb;border-radius:4px;padding:8px 10px}.content .info .title_box .path>span[data-v-72b8c1d6]{display:inline-block;padding:4px 8px;border:1px solid #553afb;font-size:12px;border-radius:4px;cursor:pointer;flex-shrink:0}.content .info .title_box .path>span>a[data-v-72b8c1d6]{color:#553afb}.btn_settings[data-v-72b8c1d6]{padding:6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}@keyframes bganimation-72b8c1d6{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-72b8c1d6{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-72b8c1d6{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-72b8c1d6]{animation:rotateEnter-72b8c1d6 .7s;position:relative}.rotate-leave-active[data-v-72b8c1d6]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-72b8c1d6]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){.content[data-v-72b8c1d6]{margin:10px 0 0;padding:4px}.content .info[data-v-72b8c1d6]{margin-top:10px}.content .info .status[data-v-72b8c1d6]{padding-top:10px}.content .info .title_box[data-v-72b8c1d6]{margin:10px 0}}.pie-chart-wrapper[data-v-ab88bb4d]{position:relative;display:flex;align-items:center;justify-content:center}.chart-dom[data-v-ab88bb4d]{width:100%;height:100%}.center-content[data-v-ab88bb4d]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:2;pointer-events:none}.center-icon[data-v-ab88bb4d]{width:20px;height:20px;margin-bottom:4px;display:block;margin-left:auto;margin-right:auto}.center-label[data-v-ab88bb4d]{margin-top:4px;font-size:14px;font-weight:600}.system-read-pending .card-body{filter:blur(3px);opacity:.45;pointer-events:none;user-select:none}.system-read-card>.card-body{position:relative}.system-read-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.system-read-error{position:absolute;inset:0;background:var(--c-panel);display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;align-content:center;padding:16px;text-align:center;color:var(--c-muted);font-size:14px}.system-read-error button{color:var(--c-accent)!important;background:none;border:0;font:inherit;cursor:pointer;min-height:44px!important;padding:6px!important}.icon[data-v-bcd79f60]{width:1.3rem;height:1.3rem}.icon2[data-v-bcd79f60]{width:1rem;height:1rem}[data-v-bcd79f60] .computerIcon path{fill:var(--app-container_title-color)!important}a[data-v-bcd79f60]{color:#1e1e1e;text-decoration:none;cursor:pointer;font-size:14px;display:block}.content[data-v-bcd79f60]{color:#333;margin-top:20px;margin-bottom:20px;padding:0 10px;font-weight:400}.content .chart_box[data-v-bcd79f60]{padding-bottom:20px;border-bottom:1px solid var(--btn-border-color);margin-bottom:20px;display:flex}.content .chart_box .chart[data-v-bcd79f60]{flex:1;display:flex;flex-direction:column;align-items:center;color:var(--app-container_title-color)}.content .chart_box .chart>div[data-v-bcd79f60]{margin-top:4px}.system-facts[data-v-bcd79f60]{min-width:0;container:system-facts/inline-size}.system-fact-list[data-v-bcd79f60]{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0}.system-fact[data-v-bcd79f60]{min-width:0;text-align:left}.system-fact--wide[data-v-bcd79f60]{grid-column:1/-1}.system-fact-label[data-v-bcd79f60]{display:flex;align-items:center;gap:8px;margin:0;color:var(--c-muted, #5b687a);font-size:12px;font-weight:400;line-height:18px}.system-fact-label>svg[data-v-bcd79f60]{width:16px;height:16px;flex:none;color:var(--color-icon-slate, #526078)}.system-fact-value[data-v-bcd79f60]{margin:4px 0 0;color:var(--c-text, #253247);font-size:14px;font-weight:400;line-height:21px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.system-fact--model>.system-fact-value[data-v-bcd79f60],.system-fact--model>.system-fact-label>svg[data-v-bcd79f60]{color:var(--home-icon-blue, #155dfc)}.system-fact--firmware>.system-fact-value[data-v-bcd79f60],.system-fact--firmware>.system-fact-label>svg[data-v-bcd79f60]{color:var(--color-icon-green, #007e34)}.system-fact--wide>.system-fact-value[data-v-bcd79f60]{font-weight:500}.system-kernel[data-v-bcd79f60]{display:block;margin-top:4px;color:var(--c-muted, #5b687a);font-size:12px;font-weight:400;line-height:18px}@container system-facts (min-width:296px){.system-fact-list[data-v-bcd79f60]{grid-template-columns:repeat(2,minmax(0,1fr))}}.btn_settings[data-v-bcd79f60]{position:relative;padding:6px 18px;border-radius:4px;border:1px solid var(--btn-border-color);line-height:1;display:flex;align-items:center}@keyframes bganimation-bcd79f60{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-bcd79f60{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-bcd79f60{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-bcd79f60]{animation:rotateEnter-bcd79f60 .7s;position:relative}.rotate-leave-active[data-v-bcd79f60]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-bcd79f60]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:768px){.content[data-v-bcd79f60]{margin-top:10px;margin-bottom:10px;padding:0 4px}.content .chart_box[data-v-bcd79f60]{padding-bottom:10px;margin-bottom:10px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.content .chart_box[data-v-bcd79f60]::-webkit-scrollbar{display:none}.content .chart_box[data-v-bcd79f60]{scrollbar-width:none}}.system-overview[data-v-7c48e3cd] .icon path{fill:var(--c-text,var(--app-container_title-color))}.system-overview[data-v-7c48e3cd]{height:auto;min-height:148px;padding:14px 16px!important;font-family:Arial,Microsoft YaHei,sans-serif;box-sizing:border-box}.icon[data-v-7c48e3cd]{width:20px;height:20px}.system-overview-actions[data-v-7c48e3cd]{display:flex;align-items:center;gap:6px}.system-overview-primary[data-v-7c48e3cd]{font:12px Arial,Microsoft YaHei,sans-serif!important;padding:7px 9px!important;color:var(--c-text);background:none;cursor:pointer}.system-overview-metrics[data-v-7c48e3cd]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.system-overview-metrics>div[data-v-7c48e3cd]{min-width:0}.system-overview-metrics span[data-v-7c48e3cd]{font-size:12px;line-height:1.5;color:var(--c-muted);display:block}.system-overview-metrics strong[data-v-7c48e3cd]{display:block;font-size:24px;line-height:1.3;font-weight:500;font-variant-numeric:tabular-nums;margin:3px 0 8px;color:var(--c-text)}.system-overview-metrics small[data-v-7c48e3cd]{font-size:12px;margin-left:3px}.system-overview-metrics i[data-v-7c48e3cd]{display:block;height:3px;border-radius:4px;overflow:hidden;background:var(--c-soft)}.system-overview-metrics b[data-v-7c48e3cd]{display:block;height:100%}.system-overview-uptime[data-v-7c48e3cd]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px;line-height:1.5;color:var(--c-muted);margin:12px 0 0!important}.system-overview-uptime strong[data-v-7c48e3cd]{font-weight:400;color:var(--c-text);overflow-wrap:anywhere;text-align:right}@media(max-width:450px){.system-overview[data-v-7c48e3cd]{padding:12px!important}.system-overview-metrics[data-v-7c48e3cd]{gap:10px}.system-overview-metrics strong[data-v-7c48e3cd]{font-size:22px}.system-overview-primary[data-v-7c48e3cd]{padding:6px!important}}.system-overview[data-v-7c48e3cd]{padding:12px 14px!important;gap:0!important}.system-overview-metrics[data-v-7c48e3cd]{margin-top:8px}.system-overview-metrics strong[data-v-7c48e3cd]{font-size:22px;line-height:1.2;margin:2px 0 5px}.system-overview-uptime[data-v-7c48e3cd]{margin-top:8px!important;line-height:1.3}.native-business-surface{height:100%;min-height:0;min-width:0;overflow:auto;border-radius:10px;overscroll-behavior:contain;font:14px Arial,Microsoft YaHei,sans-serif;color:var(--c-text);container-type:inline-size}.native-business-surface.unbounded{height:auto;overflow:visible}.native-business-surface>.reusable-card{min-height:100%;height:auto!important;box-sizing:border-box}.native-business-surface .card-header{flex-wrap:wrap;gap:10px}.native-business-surface .card-header .title{font-size:16px!important;font-weight:600!important}.native-business-surface .card-header .settings{margin-left:auto}.native-business-surface .card-header .btn_settings{font-size:14px;cursor:pointer}.native-business-surface .content{min-width:0}.native-business-surface a,.native-business-surface .name{overflow-wrap:anywhere}.native-business-surface .chart_box{flex-wrap:wrap!important;overflow:visible!important;gap:8px}.native-business-surface .chart_box .chart{flex:1 0 150px!important}.native-business-surface .info{grid-template-columns:repeat(2,minmax(0,1fr))!important}.native-business-surface .info .item{flex-wrap:wrap;gap:6px}.native-business-surface .info .item1{min-width:0;overflow-wrap:anywhere}.native-business-surface .info .item>span{line-height:1.5!important}.native-read-state{min-height:100%;padding:20px;background:var(--c-panel);box-sizing:border-box;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:12px}.native-read-state button,.native-partial button{font:inherit;border:0;color:var(--c-accent);background:none;cursor:pointer}.native-partial{padding:10px;margin:0;background:var(--c-soft);font-size:12px}@container (max-width:440px){.native-business-surface .card-header .title{font-size:14px!important}.native-business-surface .info{grid-template-columns:minmax(0,1fr)!important}.native-business-surface .info .item1{padding:12px!important}.native-business-surface .tab{gap:4px!important}.native-business-surface .tab>.item{min-width:0;padding:10px 4px!important}.native-business-surface .btn_settings{padding-left:8px!important}.native-business-surface .content{font-size:13px}}.native-business-surface .system-overview .card-header .title{font-size:14px!important}.native-business-surface:not(.unbounded) .rotation{display:none!important}.native-business-surface:not(.unbounded) .dropdown-menu{display:none!important}.native-business-card[data-v-66e01d0f]{height:100%;min-height:0;min-width:0;box-sizing:border-box}.native-summary[data-v-66e01d0f]{padding:14px 18px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:12px;color:var(--c-text);overflow:auto;font:14px/1.5 Arial,Microsoft YaHei,sans-serif}.native-summary header[data-v-66e01d0f]{display:flex;align-items:center;justify-content:space-between;gap:10px}.native-summary h2[data-v-66e01d0f]{font-size:14px;font-weight:600;margin:0}.native-summary p[data-v-66e01d0f]{margin:8px 0;overflow-wrap:anywhere}.native-summary small[data-v-66e01d0f]{font-size:12px;color:var(--c-muted)}.native-summary button[data-v-66e01d0f]{border:0;background:none;color:var(--c-accent);cursor:pointer;font:inherit;font-size:12px}.layout-widget[data-v-81b7a52a]{min-width:0;min-height:0;height:100%;position:relative;color:var(--c-text)}.layout-widget button[data-v-81b7a52a]{font:inherit;cursor:pointer;color:inherit;background:none;border:0}.layout-widget[data-v-81b7a52a] .canvas-module{height:100%;grid-column:auto!important;padding:21px;border-radius:15px;box-sizing:border-box;display:flex!important;gap:0!important}.layout-widget[data-v-81b7a52a] .canvas-module>header{margin-bottom:16px}.layout-widget[data-v-81b7a52a] .canvas-devices{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}.layout-widget[data-v-81b7a52a] .canvas-devices>button{padding:10px 8px;border:1px solid var(--c-line)!important;border-radius:9px;gap:8px}.layout-widget.medium[data-v-81b7a52a] .canvas-devices{grid-template-columns:repeat(2,minmax(0,1fr))!important}.layout-widget.narrow[data-v-81b7a52a] .canvas-devices{grid-template-columns:minmax(0,1fr)!important}.layout-widget[data-v-81b7a52a] .canvas-devices strong{font-size:12px}.layout-widget[data-v-81b7a52a] .canvas-devices small{font-size:10px}.layout-widget[data-v-81b7a52a] .device-online{font-size:9px!important}.layout-widget[data-v-81b7a52a] .inventory-footer{position:relative;margin-top:auto;padding-top:12px;gap:8px;font-size:10px}.layout-widget[data-v-81b7a52a] .inventory-footer>small{font-size:10px}.layout-widget[data-v-81b7a52a] .inventory-heading{margin-bottom:13px}.layout-widget[data-v-81b7a52a] .inventory-heading>small{font-size:10px}.layout-widget[data-v-81b7a52a] .inventory-footer details{position:static}.layout-widget[data-v-81b7a52a] .inventory-footer details>p{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--c-panel);border:1px solid var(--c-line);padding:12px;border-radius:8px;z-index:15;width:270px;max-width:100%;box-sizing:border-box}.layout-widget[data-v-81b7a52a] .module-notice{font-size:10px;line-height:1.6;padding:7px 9px;margin:5px 0!important}.layout-widget[data-v-81b7a52a] .module-state{min-height:0;padding:10px;gap:9px}.layout-widget[data-v-81b7a52a] .resource-meters{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;margin-bottom:15px!important}.layout-widget[data-v-81b7a52a] .resource-meters strong{font-size:29px}.layout-widget[data-v-81b7a52a] .system-line{display:flex!important;align-self:auto!important;padding:6px 0;font-size:11px}.layout-widget[data-v-81b7a52a] .system-line strong{display:inline!important;font-size:11px!important;margin-top:0!important}.layout-widget[data-v-81b7a52a] .firmware-line{margin-top:auto!important;font-size:10px;padding-top:13px}.layout-widget[data-v-81b7a52a] .firmware-line p{background:var(--c-panel);position:relative;z-index:12}.layout-widget[data-v-81b7a52a] .disk-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px 20px}.layout-widget.narrow[data-v-81b7a52a] .disk-mark{display:none}.layout-widget[data-v-81b7a52a] .disk-grid strong{font-size:11px}.layout-widget[data-v-81b7a52a] .disk-grid small{font-size:9px}.layout-widget[data-v-81b7a52a] .disk-overflow-note{font-size:10px;color:var(--c-muted);margin-top:10px;line-height:1.7}.layout-widget[data-v-81b7a52a] .sharing-list{flex-direction:column!important;gap:14px}.layout-widget[data-v-81b7a52a] .sharing-list>button{flex-wrap:nowrap!important;flex:none!important}.layout-widget[data-v-81b7a52a] .sharing-list .service-state{margin-left:0!important}.layout-widget[data-v-81b7a52a] .sharing-path{margin-top:auto;padding-top:11px}.layout-widget[data-v-81b7a52a] .download-list{flex-direction:column!important;gap:17px}.layout-widget[data-v-81b7a52a] .network_container{height:100%;padding:21px;border-radius:15px;border:1px solid var(--c-line);box-sizing:border-box}.layout-widget[data-v-81b7a52a] .title_box{margin-bottom:18px;gap:10px}.layout-widget[data-v-81b7a52a] .title_box .display_flex>span{font-size:14px;font-weight:600;color:var(--c-text)}.layout-widget[data-v-81b7a52a] .network_tag{margin-right:66px}.layout-widget[data-v-81b7a52a] .speed_item>span{color:var(--c-muted)}.layout-widget[data-v-81b7a52a] .speed{margin-bottom:8px}.layout-widget[data-v-81b7a52a] .echart{min-height:0}.layout-speed[data-v-81b7a52a]{position:absolute;right:21px;top:22px;height:21px;display:flex;align-items:center;gap:5px;padding:0 0 0 12px!important;border-left:1px solid var(--c-line)!important;font-size:11px!important;color:var(--c-muted)!important}.layout-speed svg[data-v-81b7a52a]{width:13px;height:13px}.layout-data-notice[data-v-81b7a52a]{position:absolute;bottom:15px;left:20px;padding:6px 9px;background:var(--c-soft);color:var(--c-warning);font-size:10px;border-radius:6px}.layout-widget[data-v-81b7a52a] .home-applications{height:100%;margin:0;padding:18px 21px;box-sizing:border-box;display:flex;flex-direction:column}.layout-widget[data-v-81b7a52a] .applications-favorites{margin-top:auto;margin-bottom:auto}.layout-widget.medium[data-v-81b7a52a] .applications-heading{gap:11px}.layout-widget.narrow[data-v-81b7a52a] .applications-tabs{margin-left:auto}.layout-widget.narrow[data-v-81b7a52a] .applications-heading h2{font-size:12px}.layout-widget[data-v-81b7a52a] .applications-state{min-height:0;flex:1}.layout-widget.medium[data-v-81b7a52a] .applications-favorites{gap:8px}.layout-widget.medium[data-v-81b7a52a] .applications-favorites>button{padding:8px}.layout-widget[data-v-81b7a52a] .applications-system-tools .canvas-tools-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.layout-widget.medium[data-v-81b7a52a] .applications-system-tools .canvas-tools-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.layout-widget.narrow[data-v-81b7a52a] .applications-system-tools .canvas-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-connection[data-v-81b7a52a]{height:100%;border:1px solid var(--c-line);background:var(--c-panel);border-radius:15px;padding:21px;display:flex;flex-direction:column;box-sizing:border-box;position:relative}.layout-connection header[data-v-81b7a52a]{display:flex;align-items:center;justify-content:space-between;gap:10px}.layout-connection h2[data-v-81b7a52a]{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;margin:0}.layout-connection h2 svg[data-v-81b7a52a]{width:17px;height:17px;color:var(--c-muted)}.layout-connection header>button[data-v-81b7a52a],.layout-connection footer>button[data-v-81b7a52a]{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--c-accent);padding:0;white-space:nowrap}.layout-connection button>svg[data-v-81b7a52a]{width:13px;height:13px}.layout-health[data-v-81b7a52a]{display:flex;align-items:center;gap:12px;margin:23px 0 18px}.layout-health>span[data-v-81b7a52a]:first-child{width:39px;height:39px;border-radius:11px;background:var(--c-soft);display:grid;place-items:center;color:var(--c-muted);flex:none}.layout-health>span.ready[data-v-81b7a52a]{color:var(--c-good)}.layout-health strong[data-v-81b7a52a]{display:block;font-size:17px;font-weight:550}.layout-health small[data-v-81b7a52a]{display:block;font-size:10px;color:var(--c-muted);margin-top:3px}.layout-health-caption[data-v-81b7a52a]{margin-left:auto;color:var(--c-good);font-size:9px;letter-spacing:1px}.layout-connection dl[data-v-81b7a52a]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 20px;margin:0 0 16px}.layout-connection dt[data-v-81b7a52a]{font-size:10px;color:var(--c-muted);margin-bottom:5px}.layout-connection dd[data-v-81b7a52a]{margin:0;font-size:12px;display:flex;align-items:center;gap:6px;overflow-wrap:anywhere}.layout-connection dd button[data-v-81b7a52a]{padding:0;color:var(--c-muted)}.layout-connection footer[data-v-81b7a52a]{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--c-line);padding-top:14px;margin-top:auto}.layout-connection footer>div[data-v-81b7a52a]{display:flex;gap:17px;font-size:10px;color:var(--c-muted)}.layout-connection footer span[data-v-81b7a52a]{display:flex;align-items:center;gap:5px}.layout-connection i[data-v-81b7a52a]{width:5px;height:5px;border-radius:50%;background:var(--c-muted)}.layout-connection i.up[data-v-81b7a52a]{background:var(--c-good)}.layout-inline-details[data-v-81b7a52a]{position:absolute;inset:10px;background:var(--c-panel);padding:18px;border:1px solid var(--c-line);border-radius:12px;z-index:20;box-shadow:0 8px 24px #0001}.layout-inline-details p[data-v-81b7a52a]{font-size:12px;color:var(--c-muted);line-height:1.9;margin-top:16px!important}.layout-inline-details header>button[data-v-81b7a52a]{font-size:23px;color:var(--c-muted)}.layout-widget.narrow[data-v-81b7a52a] .canvas-module{padding:17px}.layout-widget.narrow[data-v-81b7a52a] .canvas-module h2{font-size:13px}.layout-widget.narrow[data-v-81b7a52a] .inventory-heading>small{font-size:9px}.layout-widget.narrow[data-v-81b7a52a] .sharing-list small{font-size:9px}.layout-widget.narrow .layout-connection[data-v-81b7a52a]{padding:17px}.layout-widget.narrow .layout-connection h2[data-v-81b7a52a]{font-size:13px}.layout-widget.narrow .layout-health[data-v-81b7a52a]{margin:19px 0 17px}.layout-widget.narrow .layout-connection dl[data-v-81b7a52a]{gap:13px 12px}.layout-widget.narrow .layout-connection dd[data-v-81b7a52a]{font-size:11px}.layout-widget.narrow .layout-connection footer>div[data-v-81b7a52a]{gap:10px}.layout-widget.short .layout-health[data-v-81b7a52a]{margin:16px 0 13px}.layout-widget.short .layout-connection dl[data-v-81b7a52a]{gap:12px 16px;margin-bottom:12px}.layout-widget.narrow[data-v-81b7a52a] .network_container{padding:17px 13px}.layout-widget.narrow[data-v-81b7a52a] .title_box{flex-wrap:wrap;row-gap:8px}.layout-widget.narrow[data-v-81b7a52a] .title_box .display_flex{flex:none;white-space:nowrap}.layout-widget.narrow[data-v-81b7a52a] .title_box>div:last-child{margin-left:auto}.layout-widget.narrow[data-v-81b7a52a] .network_tag{margin-right:56px}.layout-widget.narrow[data-v-81b7a52a] .network_tag .tag_item{font-size:10px;margin-left:10px;white-space:nowrap}.layout-widget.narrow[data-v-81b7a52a] .network_tag .tag_item>div{width:7px;height:7px}.layout-widget.narrow[data-v-81b7a52a] .title_box .display_flex>span{font-size:13px}.layout-widget.narrow .layout-speed[data-v-81b7a52a]{top:18px;right:13px;font-size:10px!important;padding-left:8px!important}.layout-widget.narrow[data-v-81b7a52a] .network_container .icon{width:19px;height:19px}.layout-widget.narrow[data-v-81b7a52a] .speed_item>div{font-size:14px}@media(max-width:760px){.layout-widget[data-v-81b7a52a] .network_container{padding:17px 13px}.layout-widget[data-v-81b7a52a] .title_box{flex-wrap:wrap;row-gap:8px}.layout-widget[data-v-81b7a52a] .title_box>div:last-child{margin-left:auto}.layout-widget[data-v-81b7a52a] .network_tag{margin-right:56px}.layout-widget[data-v-81b7a52a] .network_tag .tag_item{font-size:10px;margin-left:10px}.layout-widget[data-v-81b7a52a] .network_tag .tag_item>div{width:7px;height:7px}.layout-widget[data-v-81b7a52a] .title_box .display_flex>span{font-size:13px}.layout-speed[data-v-81b7a52a]{top:18px;right:13px;font-size:10px!important;padding-left:8px!important}.layout-widget[data-v-81b7a52a] .network_container .icon{width:19px;height:19px}.layout-widget[data-v-81b7a52a] .speed_item>div{font-size:14px}.layout-widget[data-v-81b7a52a] .home-applications{padding:17px 16px}.layout-widget[data-v-81b7a52a] .applications-heading{margin-bottom:8px}.layout-widget[data-v-81b7a52a] .applications-favorites>button{padding:7px 3px}}[data-home-speed][aria-busy=true][data-v-81b7a52a]{opacity:.65;cursor:progress}.speed-announcement[data-v-81b7a52a]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.speed-error[data-v-81b7a52a]{position:absolute;top:54px;right:14px;z-index:30;max-width:calc(100% - 28px);box-sizing:border-box;padding:12px;border:1px solid var(--c-line);border-radius:8px;background:var(--c-panel);color:var(--c-text);box-shadow:0 8px 24px #0002;font:14px/1.5 Arial}.speed-error>div[data-v-81b7a52a]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.speed-error button[data-v-81b7a52a]{font:inherit;color:inherit;background:var(--c-soft);border:1px solid var(--c-line);border-radius:4px;min-height:32px;padding:4px 10px;cursor:pointer}@media(pointer:coarse){.speed-error button[data-v-81b7a52a]{min-height:44px;min-width:44px}}.layout-notice-host[data-v-a2691b75]{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));z-index:90;pointer-events:none;box-sizing:border-box;padding:0 16px;display:flex;justify-content:center}.layout-notice-editing[data-v-a2691b75]{bottom:max(88px,env(safe-area-inset-bottom))}.layout-notice[data-v-a2691b75]{pointer-events:auto;display:flex;align-items:center;gap:12px;max-width:640px;min-width:0;box-sizing:border-box;padding:4px 6px 4px 14px;background:var(--c-panel,var(--card-bg-color,#fff));color:var(--c-text,var(--tit-color,#253247));border:1px solid var(--c-line,var(--border-color,#dce3eb));border-left:3px solid var(--c-accent,#2563eb);border-radius:8px;box-shadow:0 6px 24px #0002;font:13px/1.6 Arial,Microsoft YaHei,sans-serif}.layout-notice>span[data-v-a2691b75]{min-width:0;max-height:40vh;overflow:auto;overflow-wrap:anywhere}.layout-notice-error[data-v-a2691b75]{border-left-color:#dc3545}.layout-notice>button[data-v-a2691b75]{flex:none;display:grid;place-items:center;min-width:44px;min-height:44px;border:0;border-radius:6px;background:transparent;color:inherit;font:22px/1 Arial;cursor:pointer;padding:0}.layout-notice>button[data-v-a2691b75]:hover{background:var(--c-soft,#8881)}.layout-notice>button[data-v-a2691b75]:focus-visible{outline:2px solid var(--c-accent,#2563eb);outline-offset:1px}@media(max-width:450px){.layout-notice-host[data-v-a2691b75]{padding:0 12px}.layout-notice[data-v-a2691b75]{font-size:12px;gap:6px;padding-left:10px}}.home-bootstrap[data-v-dd3adf7c]{min-height:max(320px,calc(100vh - 200px));box-sizing:border-box;border:1px solid var(--c-line);border-radius:15px;background:var(--c-panel);padding:24px;color:var(--c-muted);position:relative}.home-bootstrap-lines[data-v-dd3adf7c]{display:grid;gap:18px;max-width:720px;opacity:.55}.home-bootstrap-lines i[data-v-dd3adf7c]{display:block;height:12px;border-radius:6px;background:var(--c-soft);width:65%}.home-bootstrap-lines i[data-v-dd3adf7c]:nth-child(2){width:90%}.home-bootstrap-lines i[data-v-dd3adf7c]:nth-child(3){width:45%}.home-bootstrap p[data-v-dd3adf7c]{position:absolute;left:24px;right:24px;top:116px;margin:0;font-size:13px;line-height:1.5}.theme-selector[data-v-190180e9]{position:relative;color:#fff}.theme-selector>summary[data-v-190180e9]{display:grid;place-items:center;box-sizing:border-box;min-width:26px;min-height:26px;padding:0;border:0;border-radius:6px;color:inherit;cursor:pointer;list-style:none}.theme-selector>summary[data-v-190180e9]::-webkit-details-marker{display:none}.theme-selector>summary[data-v-190180e9]:hover,.theme-selector[open]>summary[data-v-190180e9]{background:#ffffff20}.theme-selector svg[data-v-190180e9]{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.theme-selector svg[data-v-190180e9] :is(path,rect,circle,line,g){color:inherit!important}.theme-selector svg[data-theme-icon=system][data-v-190180e9]{stroke-width:1.7}.theme-selector .system-state[data-v-190180e9]{stroke-width:1.55}.theme-menu[data-v-190180e9]{position:absolute;right:0;top:calc(100% + 7px);z-index:120;width:min(270px,calc(100vw - 32px));box-sizing:border-box;padding:8px;border:1px solid var(--c-line,#dce3eb);border-radius:9px;background:var(--c-panel,#fff);box-shadow:0 12px 32px #07121e38;color:var(--c-text,#253247);font:14px/1.45 Arial,Microsoft YaHei,sans-serif}.theme-menu strong[data-v-190180e9]{display:block;padding:6px 9px 8px}.theme-menu button[data-v-190180e9]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;width:100%;min-height:44px;box-sizing:border-box;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.theme-menu button[data-v-190180e9]:hover,.theme-menu button[data-v-190180e9]:focus-visible{background:var(--c-hover,#edf2f8)}.theme-menu button.selected[data-v-190180e9]{background:var(--home-option-selected,#f0f5ff);color:var(--c-accent,#155dfc)}.theme-menu small[data-v-190180e9]{grid-column:1;color:var(--c-muted,#5b687a);font-size:11px}.theme-menu i[data-v-190180e9]{grid-column:2;grid-row:1/3;align-self:center;font-style:normal}.theme-menu p[data-v-190180e9]{margin:7px 9px 3px;color:var(--c-muted,#5b687a);font-size:11px}@media(pointer:coarse){.theme-selector>summary[data-v-190180e9]{min-width:44px;min-height:44px}}.canvas-home[data-v-af0f0c55]{--c-bg:#f2f4f8;--c-panel:#fff;--c-soft:#f5f6fa;--c-hover:#eceff7;--c-text:#1c253b;--c-muted:#626e83;--c-line:#e4e8f0;--c-accent:#5968d6;--c-good:#227d68;--c-warning:#91631c;--c-shadow:0 8px 28px #23325105;--card-bg-color:var(--c-panel);--border-color:var(--c-line);--flow-span-color:var(--c-muted);min-height:100vh;padding:0 40px 85px;color:var(--c-text);background:var(--c-bg);font:14px/1.5 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}:root[data-darkmode=true] .canvas-home,body[data-quickstart-theme=dark] .canvas-home{--c-bg:#15171e;--c-panel:#2c2c2c;--c-soft:#343740;--c-hover:#3c4050;--c-text:#edf0f7;--c-muted:#b2b9ca;--c-line:#454952;--c-accent:#a2adff;--c-good:#7bd9b8;--c-warning:#efbd72;--c-shadow:0 8px 28px #0000000d}.canvas-home[data-v-af0f0c55] *{box-sizing:border-box}.canvas-home button[data-v-af0f0c55],.canvas-home input[data-v-af0f0c55],.canvas-home select[data-v-af0f0c55]{font:inherit}.canvas-home button[data-v-af0f0c55]{cursor:pointer;color:inherit;background:none;border:0}.canvas-home button[data-v-af0f0c55]:disabled{opacity:.3;cursor:default}.canvas-home a[data-v-af0f0c55]{color:inherit;text-decoration:none}.canvas-home p[data-v-af0f0c55],.canvas-home h1[data-v-af0f0c55],.canvas-home h2[data-v-af0f0c55],.canvas-home h3[data-v-af0f0c55]{margin:0}.canvas-home svg[data-v-af0f0c55]{width:20px;height:20px;display:block;flex:none}.canvas-home[data-v-af0f0c55] :focus-visible{outline:2px solid var(--c-accent)!important;outline-offset:3px}.canvas-header[data-v-af0f0c55],.canvas-frame[data-v-af0f0c55]{max-width:1640px;margin:auto}.canvas-header[data-v-af0f0c55]{height:90px;display:flex;align-items:center;gap:23px;border-bottom:1px solid var(--c-line)}.canvas-brand[data-v-af0f0c55]{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:650;letter-spacing:-.5px;line-height:1.1}.canvas-brand small[data-v-af0f0c55]{display:block;font-size:9px;font-weight:500;letter-spacing:1.5px;color:var(--c-muted);margin-top:6px}.canvas-logo[data-v-af0f0c55]{width:41px;height:41px;background:#202942;color:#fff;font-size:28px;border-radius:13px;display:grid;place-items:center;position:relative;box-shadow:0 4px 14px #1a264119}.canvas-logo i[data-v-af0f0c55]{position:absolute;right:7px;bottom:7px;width:6px;height:6px;border-radius:2px;background:#8de2c7}.header-divider[data-v-af0f0c55]{height:22px;width:1px;background:var(--c-line);margin-left:10px}.header-context[data-v-af0f0c55]{font-size:12px;color:var(--c-muted)}.header-controls[data-v-af0f0c55]{margin-left:auto;display:flex;align-items:center;gap:20px}.header-status[data-v-af0f0c55]{font-size:11px;display:flex;align-items:center;gap:7px;color:var(--c-muted);white-space:nowrap}.header-status i[data-v-af0f0c55],.connection-interfaces i[data-v-af0f0c55],.connection-ribbon i[data-v-af0f0c55]{width:6px;height:6px;background:currentColor;border-radius:50%;display:inline-block;flex:none}.header-status.ready[data-v-af0f0c55]{color:var(--c-good)}.theme-toggle[data-v-af0f0c55]{font-size:21px!important;width:27px;height:30px;color:var(--c-muted)!important;padding:0}.canvas-scenes[data-v-af0f0c55]{position:relative}.canvas-scenes>summary[data-v-af0f0c55]{cursor:pointer;list-style:none;font-size:11px;color:var(--c-muted);white-space:nowrap}.canvas-scenes>summary[data-v-af0f0c55]:after{content:" ⌄"}.canvas-scenes>div[data-v-af0f0c55]{position:absolute;right:0;top:30px;width:240px;z-index:40;background:var(--c-panel);border:1px solid var(--c-line);border-radius:13px;padding:18px;box-shadow:0 15px 40px #15203622}.canvas-scenes p[data-v-af0f0c55]{font-size:10px;color:var(--c-muted);margin-bottom:15px}.canvas-scenes label[data-v-af0f0c55]{display:flex;flex-direction:column;gap:7px;font-size:11px;margin-bottom:14px}.canvas-scenes select[data-v-af0f0c55],.canvas-scenes>div>button[data-v-af0f0c55]{background:var(--c-soft);color:var(--c-text);border:1px solid var(--c-line);border-radius:7px;padding:7px;font-size:12px;width:100%}.canvas-edit-button[data-v-af0f0c55]{display:flex;align-items:center;gap:8px;border-radius:9px;padding:10px 15px;background:var(--c-text)!important;color:var(--c-panel)!important;font-size:12px!important;font-weight:550;white-space:nowrap}.canvas-edit-button svg[data-v-af0f0c55]{width:16px;height:16px}.canvas-frame[data-v-af0f0c55]{display:grid;grid-template-columns:minmax(0,1fr) 78px;gap:26px;padding-top:28px;align-items:start}.canvas-workspace[data-v-af0f0c55]{grid-column:1;grid-row:1}.canvas-navigation[data-v-af0f0c55]{grid-column:2;grid-row:1}.layout-canvas .canvas-frame[data-v-af0f0c55]{display:block}.layout-canvas .hero-flow[data-v-af0f0c55] .network_tag{margin-right:78px}.chart-speed-action[data-v-af0f0c55]{position:absolute;right:24px;top:24px;display:flex;align-items:center;gap:5px;font-size:11px!important;color:var(--c-muted)!important;padding:0 0 0 12px;border-left:1px solid var(--c-line)!important;height:23px}.chart-speed-action svg[data-v-af0f0c55]{width:14px;height:14px}.chart-speed-action[data-v-af0f0c55]:hover{color:var(--c-accent)!important}.small-heading>.contextual-action[data-v-af0f0c55]{display:flex;align-items:center;gap:6px;color:var(--c-accent);font-size:11px;font-weight:400}.common-tools-access[data-v-af0f0c55]{position:fixed;right:24px;bottom:18px;display:flex;align-items:center;gap:7px;padding:11px 15px;background:var(--c-text)!important;color:var(--c-panel)!important;border-radius:100px;font-size:11px!important;box-shadow:0 6px 22px #1d2d5520;z-index:45}.common-tools-access svg[data-v-af0f0c55]{width:15px;height:15px}.canvas-navigation[data-v-af0f0c55]{position:sticky;top:24px;border-radius:18px;background:#202942;color:#cbd3e6;padding:12px 8px;display:flex;flex-direction:column;gap:5px;box-shadow:0 10px 30px #1c28451a}.navigation-entry[data-v-af0f0c55]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:15px 0!important;border-radius:11px;color:#cbd3e6!important;position:relative}.navigation-entry svg[data-v-af0f0c55]{width:22px;height:22px}.navigation-entry span[data-v-af0f0c55]{font-size:10px;white-space:nowrap}.navigation-entry[data-v-af0f0c55]:hover{background:#34415f!important;color:#fff!important}.navigation-entry small[data-v-af0f0c55]{position:absolute;right:10px;top:10px;font-size:9px;background:#5968d6;color:#fff;border-radius:7px;padding:0 4px;line-height:14px}.navigation-settings[data-v-af0f0c55]{display:grid;place-items:center;padding:13px!important;margin-top:12px;border-top:1px solid #43506c!important;color:#cbd3e6!important}.canvas-workspace[data-v-af0f0c55]{min-width:0}.workspace-heading[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.workspace-eyebrow[data-v-af0f0c55]{font-size:9px;color:var(--c-muted);letter-spacing:1.6px;font-weight:600}.workspace-heading h1[data-v-af0f0c55]{font-size:27px;letter-spacing:-.8px;line-height:1.35;font-weight:650;margin-top:5px}.workspace-caption[data-v-af0f0c55]{font-size:12px;color:var(--c-muted);align-self:end;padding-bottom:4px}.canvas-hero[data-v-af0f0c55]{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}.canvas-hero.has-side[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr) 320px}.hero-flow[data-v-af0f0c55]{min-height:560px;align-self:stretch;min-width:0;position:relative;border-radius:16px;overflow:hidden;background:var(--c-panel);box-shadow:var(--c-shadow);border:1px solid var(--c-line)}@media(max-width:1080px){.hero-flow[data-v-af0f0c55]{min-height:500px}}@media(max-width:760px){.hero-flow[data-v-af0f0c55]{min-height:365px}}.hero-flow[data-v-af0f0c55] .network_container{border:0;border-radius:0;padding:24px;height:100%}.hero-flow[data-v-af0f0c55] .title_box{margin-bottom:30px}.hero-flow[data-v-af0f0c55] .speed{margin-bottom:12px}.hero-flow[data-v-af0f0c55] .title_box .display_flex>span{font-size:15px;font-weight:650;color:var(--c-text)}.hero-flow[data-v-af0f0c55] .speed_item>span{color:var(--c-muted)}.hero-side[data-v-af0f0c55]{display:flex;flex-direction:column;gap:18px;min-width:0;align-self:stretch}.connection-card[data-v-af0f0c55],.hero-tools[data-v-af0f0c55]{padding:21px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:15px;box-shadow:var(--c-shadow)}.small-heading[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px;font-size:13px;font-weight:600}.small-heading>span[data-v-af0f0c55]{display:flex;align-items:center;gap:9px}.small-heading svg[data-v-af0f0c55]{width:17px;height:17px;color:var(--c-muted)}.small-heading>button[data-v-af0f0c55]{padding:0;color:var(--c-muted)}.small-heading>button svg[data-v-af0f0c55]{width:14px;height:14px}.connection-health[data-v-af0f0c55]{display:flex;align-items:center;gap:12px;margin-bottom:18px}.health-icon[data-v-af0f0c55]{width:34px;height:34px;border-radius:10px;background:var(--c-soft);display:grid;place-items:center;color:var(--c-muted)}.health-icon.ready[data-v-af0f0c55]{color:var(--c-good)}.health-icon svg[data-v-af0f0c55]{width:18px;height:18px}.connection-health strong[data-v-af0f0c55]{font-size:14px;font-weight:550}.connection-health small[data-v-af0f0c55]{display:block;font-size:11px;color:var(--c-muted);margin-top:3px}.connection-card dl[data-v-af0f0c55]{margin:0}.connection-card dl>div[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0;font-size:11px}.connection-card dt[data-v-af0f0c55]{color:var(--c-muted)}.connection-card dd[data-v-af0f0c55]{margin:0;font-weight:500;display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}.connection-card dd button[data-v-af0f0c55]{font-size:14px;padding:0;color:var(--c-muted)}.connection-interfaces[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--c-line);padding-top:13px;margin-top:15px;font-size:11px;color:var(--c-muted)}.connection-interfaces span[data-v-af0f0c55]{display:flex;align-items:center;gap:6px}.connection-interfaces .up[data-v-af0f0c55]{color:var(--c-good)}.connection-detail[data-v-af0f0c55]{font-size:11px;color:var(--c-muted);margin-top:11px}.connection-detail summary[data-v-af0f0c55]{cursor:pointer;list-style:none}.connection-detail summary[data-v-af0f0c55]:after{content:" ⌄"}.connection-detail p[data-v-af0f0c55]{padding-top:8px;overflow-wrap:anywhere}.hero-tools .small-heading[data-v-af0f0c55]{margin-bottom:14px}.chart-notice[data-v-af0f0c55]{position:absolute;bottom:17px;left:24px;background:var(--c-soft);color:var(--c-warning);font-size:11px;padding:7px 10px;border-radius:7px}.module-section-heading[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;padding:27px 0 15px;color:var(--c-muted);font-size:10px;letter-spacing:1px}.module-section-heading>button[data-v-af0f0c55]{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:0}.module-section-heading svg[data-v-af0f0c55]{width:14px;height:14px}.canvas-modules[data-v-af0f0c55]{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;scroll-margin-top:20px}.canvas-footer[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:24px;font-size:10px;color:var(--c-muted)}.canvas-footer i[data-v-af0f0c55]{font-style:normal;margin:0 9px;color:var(--c-line)}.layout-sidebar .canvas-frame[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr) 210px;gap:30px}.canvas-navigation.expanded[data-v-af0f0c55]{max-height:calc(100vh - 48px);overflow:auto;background:var(--c-panel);color:var(--c-text);border:1px solid var(--c-line);padding:20px 14px;box-shadow:var(--c-shadow);border-radius:16px;gap:2px}.expanded .navigation-entry[data-v-af0f0c55]{flex-direction:row;justify-content:start;gap:12px;padding:11px 12px!important;color:var(--c-text)!important}.expanded .navigation-entry span[data-v-af0f0c55]{font-size:12px}.expanded .navigation-entry svg[data-v-af0f0c55]{width:18px;height:18px;color:var(--c-muted)}.expanded .navigation-entry[data-v-af0f0c55]:hover{background:var(--c-soft)!important;color:var(--c-accent)!important}.expanded .navigation-entry small[data-v-af0f0c55]{position:static;margin-left:auto;border-radius:5px;background:var(--c-soft);color:var(--c-muted)}.navigation-caption[data-v-af0f0c55]{font-size:9px;color:var(--c-muted);letter-spacing:1px;padding:0 12px 13px;font-weight:600}.navigation-separator[data-v-af0f0c55]{height:1px;background:var(--c-line);margin:17px 10px 18px}.navigation-footnote[data-v-af0f0c55]{font-size:10px;color:var(--c-muted);padding:20px 12px 0;margin-top:auto}.connection-ribbon[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:12px;padding:17px 22px;margin-top:18px;font-size:11px;color:var(--c-muted)}.connection-ribbon>span[data-v-af0f0c55]:first-child{display:flex;align-items:center;gap:7px}.connection-ribbon i.ready[data-v-af0f0c55]{color:var(--c-good)}.connection-ribbon strong[data-v-af0f0c55]{color:var(--c-text);font-size:11px;font-weight:500;margin-left:9px}.connection-ribbon>button[data-v-af0f0c55]{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--c-accent);white-space:nowrap}.connection-ribbon svg[data-v-af0f0c55]{width:13px;height:13px}.layout-stage .canvas-frame[data-v-af0f0c55]{display:block}.layout-stage[data-v-af0f0c55]{padding-bottom:165px}.stage-context[data-v-af0f0c55]{padding:20px 23px;border-radius:15px;background:#202942;color:#f3f6ff;position:relative;overflow:hidden;flex:1}.stage-context[data-v-af0f0c55]:before{content:"";position:absolute;width:140px;height:140px;border:1px solid #485572;border-radius:50%;right:-65px;top:20px;pointer-events:none}.context-orbit[data-v-af0f0c55]{width:36px;height:36px;border:1px solid #52617e;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;color:#bbc7ef}.context-orbit svg[data-v-af0f0c55]{width:19px;height:19px}.stage-context>small[data-v-af0f0c55]{display:block;font-size:9px;letter-spacing:1px;color:#c3cce3}.stage-context>strong[data-v-af0f0c55]{display:block;font-size:18px;font-weight:550;margin-top:6px}.stage-context>p[data-v-af0f0c55]{font-size:11px;line-height:1.8;color:#c3cce3;margin-top:11px}.stage-context>button[data-v-af0f0c55]{display:flex;align-items:center;gap:8px;font-size:11px;color:#cbd5ff;margin-top:17px;padding:0}.stage-context>button svg[data-v-af0f0c55]{width:13px;height:13px}.canvas-action-dock[data-v-af0f0c55]{display:none;position:fixed;bottom:17px;left:50%;transform:translate(-50%);align-items:center;gap:5px;background:#202942f5;border:1px solid #45516a;box-shadow:0 14px 40px #1520362a;border-radius:17px;padding:9px;color:#edf1fc;z-index:45;backdrop-filter:blur(16px)}.canvas-action-dock.desktop[data-v-af0f0c55]{display:flex}.canvas-action-dock>button[data-v-af0f0c55]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:7px 16px;color:#e1e8fb;border-radius:9px;white-space:nowrap}.canvas-action-dock>button[data-v-af0f0c55]:hover{background:#354361}.canvas-action-dock svg[data-v-af0f0c55]{width:21px;height:21px}.canvas-action-dock span[data-v-af0f0c55]{font-size:10px}.dock-separator[data-v-af0f0c55]{width:1px;height:35px;background:#54617d;margin:0 7px}.canvas-action-dock .dock-tools[data-v-af0f0c55]{color:#bcc6ff}.canvas-variant-picker[data-v-af0f0c55]{position:fixed;left:50%;bottom:17px;transform:translate(-50%);display:flex;align-items:center;gap:3px;background:#fffef8;border:1px solid #d9deea;border-radius:100px;padding:5px;box-shadow:0 6px 22px #1d2d5520;z-index:46;color:#4a5470}.canvas-variant-picker>button[data-v-af0f0c55]{display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:11px;white-space:nowrap;border-radius:100px;color:inherit}.canvas-variant-picker span[data-v-af0f0c55]{font-size:10px}.canvas-variant-picker .selected[data-v-af0f0c55]{background:#202942;color:#fff}.canvas-variant-picker>button[data-v-af0f0c55]:first-child,.canvas-variant-picker>button[data-v-af0f0c55]:last-child{font-size:20px;padding:3px 8px;line-height:20px}.layout-stage .canvas-variant-picker[data-v-af0f0c55]{bottom:102px}.canvas-overlay[data-v-af0f0c55]{position:fixed;inset:0;background:#0b122637;backdrop-filter:blur(2px);z-index:90}.canvas-editor[data-v-af0f0c55],.canvas-tool-tray[data-v-af0f0c55]{position:fixed;z-index:100;background:var(--c-panel);border:1px solid var(--c-line);box-shadow:0 20px 80px #10192e30;color:var(--c-text);border-radius:20px;display:flex;flex-direction:column}.canvas-editor[data-v-af0f0c55]{width:420px;right:18px;top:18px;bottom:18px}.canvas-tool-tray[data-v-af0f0c55]{left:50%;top:50%;transform:translate(-50%,-50%);width:430px;padding:24px}.tray-heading[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;gap:16px}.tray-heading small[data-v-af0f0c55]{font-size:9px;letter-spacing:1.4px;color:var(--c-accent);font-weight:600}.tray-heading h2[data-v-af0f0c55]{font-size:23px;font-weight:600;letter-spacing:-.6px;margin-top:7px}.tray-heading>button[data-v-af0f0c55]{width:31px;height:31px;font-size:23px;background:var(--c-soft);border-radius:50%;padding:0;flex:none}.canvas-tool-tray>.tray-heading[data-v-af0f0c55]{margin-bottom:24px}.canvas-tool-tray>p[data-v-af0f0c55]{font-size:11px;color:var(--c-muted);line-height:1.8;margin-top:18px}.canvas-editor>.tray-heading[data-v-af0f0c55]{padding:25px 25px 20px}.editor-content[data-v-af0f0c55]{padding:0 25px 20px;overflow:auto;flex:1;min-height:0}.editor-content h3[data-v-af0f0c55]{font-size:12px;font-weight:600;margin:14px 0}.canvas-presets[data-v-af0f0c55]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.canvas-presets>button[data-v-af0f0c55]{padding:10px 8px;border:1px solid var(--c-line);border-radius:9px;min-width:0}.canvas-presets>button.selected[data-v-af0f0c55]{border-color:var(--c-accent);background:var(--c-soft)}.canvas-presets>button>span[data-v-af0f0c55]:last-child{display:block;font-size:11px;margin-top:9px}.layout-mini[data-v-af0f0c55]{height:45px;display:grid;grid-template-columns:10px 1fr 20px;grid-template-rows:repeat(2,1fr);gap:3px}.layout-mini i[data-v-af0f0c55]{display:block;background:var(--c-line);border-radius:2px}.selected .layout-mini i[data-v-af0f0c55]{background:var(--c-accent);opacity:.4}.layout-mini.canvas[data-v-af0f0c55]{grid-template-columns:1fr 20px 10px}.layout-mini.canvas i[data-v-af0f0c55]:first-child{grid-row:span 2}.layout-mini.canvas i[data-v-af0f0c55]:nth-child(2){grid-row:span 2}.layout-mini.sidebar[data-v-af0f0c55]{grid-template-columns:1fr 23px}.layout-mini.sidebar i[data-v-af0f0c55]:nth-child(2){grid-row:span 2}.layout-mini.sidebar i[data-v-af0f0c55]:nth-child(4){display:none}.layout-mini.stage[data-v-af0f0c55]{grid-template-columns:1fr 20px;grid-template-rows:1fr 8px}.layout-mini.stage i[data-v-af0f0c55]:nth-child(3){grid-column:span 2}.layout-mini.stage i[data-v-af0f0c55]:nth-child(4){display:none}.chart-anchor[data-v-af0f0c55]{display:flex;align-items:center;gap:11px;padding:13px 11px;border:1px dashed var(--c-line);border-radius:9px;margin-top:15px}.chart-anchor>svg[data-v-af0f0c55]{color:#22b7dc;width:18px;height:18px}.chart-anchor>div[data-v-af0f0c55]{flex:1}.chart-anchor strong[data-v-af0f0c55]{display:block;font-size:12px;font-weight:500}.chart-anchor small[data-v-af0f0c55]{display:block;font-size:10px;color:var(--c-muted);margin-top:3px}.chart-anchor>span[data-v-af0f0c55]{font-size:15px;color:var(--c-good)}.editor-help[data-v-af0f0c55]{font-size:11px;line-height:1.8;color:var(--c-muted);margin-bottom:13px!important}.canvas-editor-modules[data-v-af0f0c55]{display:grid;gap:9px}.editor-item[data-v-af0f0c55]{padding:11px;border:1px solid var(--c-line);border-radius:9px}.editor-item.disabled[data-v-af0f0c55]{background:var(--c-soft)}.editor-item>div[data-v-af0f0c55]{display:flex;align-items:center;gap:8px}.editor-item svg[data-v-af0f0c55]{width:16px;height:16px;color:var(--c-muted)}.editor-item label[data-v-af0f0c55]{font-size:12px;flex:1;cursor:pointer}.editor-item input[data-v-af0f0c55]{width:26px;height:15px;accent-color:var(--c-accent);cursor:pointer}.editor-item>div>button[data-v-af0f0c55]{padding:1px 5px;border:1px solid var(--c-line);border-radius:4px;font-size:12px}.editor-drag[data-v-af0f0c55]{font-size:18px;color:var(--c-muted);cursor:grab}.editor-item select[data-v-af0f0c55]{background:var(--c-soft);color:var(--c-text);border:1px solid var(--c-line);border-radius:5px;padding:4px 6px;font-size:11px;display:block;margin:9px 0 0 auto}.fixed-placement[data-v-af0f0c55]{font-size:10px;color:var(--c-muted);display:block;margin-top:7px}.editor-reset[data-v-af0f0c55]{font-size:11px!important;color:var(--c-accent)!important;padding:15px 0!important}.editor-bottom[data-v-af0f0c55]{display:flex;align-items:center;gap:12px;border-top:1px solid var(--c-line);padding:17px 25px}.editor-bottom>button[data-v-af0f0c55]{flex:1;border:1px solid var(--c-line);padding:11px;border-radius:9px;font-size:12px}.editor-bottom .editor-apply[data-v-af0f0c55]{background:var(--c-text);color:var(--c-panel);font-weight:550}@media(min-width:1800px){.canvas-home[data-v-af0f0c55]{padding-left:70px;padding-right:70px}.canvas-hero.has-side[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr) 350px}.hero-flow[data-v-af0f0c55]{height:600px}.connection-card[data-v-af0f0c55],.hero-tools[data-v-af0f0c55]{padding:25px}.canvas-frame[data-v-af0f0c55]{gap:32px}}@media(max-width:1250px){.canvas-home[data-v-af0f0c55]{padding-left:24px;padding-right:24px}.canvas-hero.has-side[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr) 280px}.connection-card[data-v-af0f0c55],.hero-tools[data-v-af0f0c55]{padding:18px}.canvas-frame[data-v-af0f0c55]{gap:20px}.workspace-caption[data-v-af0f0c55],.header-context[data-v-af0f0c55]{display:none}.header-controls[data-v-af0f0c55]{gap:15px}.layout-sidebar .canvas-frame[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr) 185px;gap:22px}.connection-ribbon[data-v-af0f0c55]{gap:14px;flex-wrap:wrap;font-size:10px}.connection-ribbon>span[data-v-af0f0c55]:last-of-type{display:none}}@media(max-width:1080px){.canvas-hero.has-side[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr)}.hero-flow[data-v-af0f0c55]{height:500px}.hero-side[data-v-af0f0c55]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.hero-side>.connection-card[data-v-af0f0c55]:only-child{grid-column:span 2}.canvas-modules[data-v-af0f0c55]{gap:16px}.header-status[data-v-af0f0c55]{display:none}.canvas-navigation.expanded[data-v-af0f0c55]{padding:17px 10px}.expanded .navigation-entry[data-v-af0f0c55]{padding-left:8px!important}.connection-ribbon[data-v-af0f0c55]{padding:16px}.stage-context[data-v-af0f0c55]{min-height:100%}}@media(max-width:760px){.canvas-home[data-v-af0f0c55]{padding:0 14px 164px}.canvas-header[data-v-af0f0c55]{height:74px;gap:12px}.canvas-brand[data-v-af0f0c55]{font-size:18px;gap:9px}.canvas-logo[data-v-af0f0c55]{width:33px;height:33px;border-radius:10px;font-size:23px}.canvas-logo i[data-v-af0f0c55]{right:5px;bottom:5px;width:5px;height:5px}.canvas-brand small[data-v-af0f0c55]{font-size:8px;margin-top:4px}.header-divider[data-v-af0f0c55],.header-context[data-v-af0f0c55]{display:none}.header-controls[data-v-af0f0c55]{gap:11px}.theme-toggle[data-v-af0f0c55]{font-size:21px!important;width:23px}.canvas-scenes>summary[data-v-af0f0c55]{font-size:10px}.canvas-scenes>div[data-v-af0f0c55]{right:-40px;top:27px;width:230px}.canvas-edit-button[data-v-af0f0c55]{padding:8px;border-radius:8px}.canvas-edit-button span[data-v-af0f0c55]{display:none}.canvas-edit-button svg[data-v-af0f0c55]{width:17px;height:17px}.canvas-frame[data-v-af0f0c55],.layout-sidebar .canvas-frame[data-v-af0f0c55]{display:block;padding-top:22px}.canvas-navigation[data-v-af0f0c55]{display:none}.workspace-heading[data-v-af0f0c55]{margin-bottom:18px}.workspace-eyebrow[data-v-af0f0c55]{font-size:8px;letter-spacing:1.3px}.workspace-heading h1[data-v-af0f0c55]{font-size:25px;margin-top:4px}.hero-flow[data-v-af0f0c55]{height:365px;border-radius:14px}.hero-flow[data-v-af0f0c55] .network_container{padding:17px 13px}.hero-flow[data-v-af0f0c55] .title_box{margin-bottom:23px;gap:7px}.hero-flow[data-v-af0f0c55] .title_box .display_flex>span{font-size:13px}.hero-flow[data-v-af0f0c55] .network_tag .tag_item{font-size:10px;margin-left:10px}.hero-flow[data-v-af0f0c55] .network_tag .tag_item div{width:7px;height:7px;margin-right:4px}.hero-flow[data-v-af0f0c55] .speed_item>span{font-size:11px}.hero-flow[data-v-af0f0c55] .speed_item>div{font-size:14px}.hero-flow[data-v-af0f0c55] .echart{min-height:0}.hero-side[data-v-af0f0c55]{display:block}.hero-side>.hero-tools[data-v-af0f0c55],.hero-side>.stage-context[data-v-af0f0c55]{display:none}.connection-card[data-v-af0f0c55]{padding:17px 19px;margin-top:0;border-radius:13px}.connection-card .small-heading[data-v-af0f0c55]{margin-bottom:14px}.connection-health[data-v-af0f0c55]{margin-bottom:13px}.connection-card dl[data-v-af0f0c55]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}.connection-card dl>div[data-v-af0f0c55]{display:block;margin:3px 0}.connection-card dt[data-v-af0f0c55]{margin-bottom:3px;font-size:10px}.connection-card dd[data-v-af0f0c55]{font-size:12px}.connection-card dl>div[data-v-af0f0c55]:last-child{grid-column:span 2;display:flex;gap:10px}.connection-card dl>div:last-child dt[data-v-af0f0c55]{margin:0}.connection-interfaces[data-v-af0f0c55]{justify-content:start;gap:22px;margin-top:13px}.connection-detail[data-v-af0f0c55]{font-size:10px}.canvas-hero[data-v-af0f0c55]{gap:14px}.module-section-heading[data-v-af0f0c55]{padding:23px 0 13px;letter-spacing:.5px;font-size:9px}.module-section-heading>button[data-v-af0f0c55]{font-size:10px}.canvas-modules[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr);gap:14px}.canvas-action-dock[data-v-af0f0c55]{display:flex;bottom:13px;max-width:calc(100% - 20px);gap:1px;padding:7px;border-radius:15px;justify-content:space-around;width:390px}.canvas-action-dock>button[data-v-af0f0c55]{padding:6px 5px;gap:5px;min-width:0;flex:1}.canvas-action-dock>button svg[data-v-af0f0c55]{width:20px;height:20px}.canvas-action-dock>button span[data-v-af0f0c55]{font-size:9px;max-width:56px;white-space:normal;text-align:center;line-height:1.2}.dock-separator[data-v-af0f0c55]{margin:0 3px;height:30px;flex:none}.canvas-variant-picker[data-v-af0f0c55],.layout-stage .canvas-variant-picker[data-v-af0f0c55]{bottom:92px;max-width:calc(100% - 24px)}.canvas-variant-picker>button[data-v-af0f0c55]{padding:6px 8px;font-size:10px;gap:5px}.canvas-variant-picker span[data-v-af0f0c55]{font-size:9px}.canvas-variant-picker>button[data-v-af0f0c55]:first-child,.canvas-variant-picker>button[data-v-af0f0c55]:last-child{padding:3px 6px;font-size:18px}.canvas-footer[data-v-af0f0c55]{flex-direction:column;align-items:start;gap:8px;font-size:9px;padding-top:22px}.connection-ribbon[data-v-af0f0c55]{margin-top:14px;gap:12px;justify-content:start}.connection-ribbon>span[data-v-af0f0c55]:first-child{width:100%}.connection-ribbon>button[data-v-af0f0c55]{margin-left:auto}.connection-ribbon>span[data-v-af0f0c55]{font-size:10px}.connection-ribbon strong[data-v-af0f0c55]{font-size:11px;margin-left:5px}.chart-notice[data-v-af0f0c55]{bottom:12px;left:12px;font-size:10px;padding:6px}.canvas-editor[data-v-af0f0c55]{inset:55px 0 0;width:100%;border-radius:20px 20px 0 0}.canvas-editor>.tray-heading[data-v-af0f0c55]{padding:22px 22px 18px}.tray-heading h2[data-v-af0f0c55]{font-size:22px}.editor-content[data-v-af0f0c55]{padding:0 22px 20px}.editor-bottom[data-v-af0f0c55]{padding:15px 22px}.canvas-tool-tray[data-v-af0f0c55]{inset:auto 0 0;transform:none;width:100%;border-radius:20px 20px 0 0;padding:25px 22px 28px}.canvas-overlay[data-v-af0f0c55]{backdrop-filter:blur(2px)}}.layout-canvas .canvas-header[data-v-af0f0c55]{height:74px}.layout-canvas .canvas-frame[data-v-af0f0c55]{padding-top:20px}.layout-canvas .workspace-heading[data-v-af0f0c55]{margin-bottom:16px}.layout-canvas .workspace-eyebrow[data-v-af0f0c55]{display:none}.layout-canvas .workspace-heading h1[data-v-af0f0c55]{font-size:23px;margin-top:0}.layout-canvas .hero-flow[data-v-af0f0c55]{height:clamp(288px,34vh,352px);min-height:0;align-self:start}.layout-canvas .hero-flow[data-v-af0f0c55] .network_container{padding:20px}.layout-canvas .hero-flow[data-v-af0f0c55] .title_box{margin-bottom:18px}.layout-canvas .hero-flow[data-v-af0f0c55] .speed{margin-bottom:8px}.layout-canvas .hero-flow[data-v-af0f0c55] .echart{min-height:0}.layout-canvas .chart-speed-action[data-v-af0f0c55]{top:20px;right:20px}.layout-canvas .hero-side[data-v-af0f0c55]{align-self:start}.layout-canvas .connection-card[data-v-af0f0c55]{padding:19px 20px}.layout-canvas .module-section-heading[data-v-af0f0c55]{padding-top:20px}@media(max-width:1080px)and (min-width:761px){.layout-canvas .canvas-hero.has-side[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr) 245px;gap:16px}.layout-canvas .hero-side[data-v-af0f0c55]{display:block}.layout-canvas .connection-card[data-v-af0f0c55]{padding:17px}.layout-canvas .connection-card .small-heading[data-v-af0f0c55]{font-size:12px}.layout-canvas .connection-card .contextual-action[data-v-af0f0c55]{font-size:10px}.layout-canvas .connection-card .small-heading[data-v-af0f0c55]{gap:5px}}@media(max-width:760px){.layout-canvas .canvas-header[data-v-af0f0c55]{height:70px}.layout-canvas .canvas-frame[data-v-af0f0c55]{padding-top:18px}.layout-canvas .canvas-hero.has-side[data-v-af0f0c55]{grid-template-columns:minmax(0,1fr)}.layout-canvas .hero-flow[data-v-af0f0c55]{height:288px}.layout-canvas .hero-flow[data-v-af0f0c55] .network_container{padding:17px 13px}.layout-canvas .chart-speed-action[data-v-af0f0c55]{top:17px;right:13px}.layout-canvas .connection-card[data-v-af0f0c55]{padding:17px 19px}.layout-canvas .workspace-heading h1[data-v-af0f0c55]{font-size:23px}}@media(prefers-reduced-motion:reduce){.canvas-home[data-v-af0f0c55] *{scroll-behavior:auto!important}}@media(max-width:760px){.layout-canvas[data-v-af0f0c55]{padding-bottom:90px}.layout-canvas .hero-side>.hero-tools[data-v-af0f0c55]{display:block;margin-top:14px;padding:19px;border-radius:13px}.layout-canvas .canvas-variant-picker[data-v-af0f0c55]{bottom:15px}.layout-canvas .hero-flow[data-v-af0f0c55] .network_tag{margin-right:66px}.chart-speed-action[data-v-af0f0c55]{top:17px;right:13px;font-size:10px!important;padding-left:9px;height:20px;gap:4px}.chart-speed-action svg[data-v-af0f0c55]{width:13px;height:13px}.layout-canvas .hero-flow[data-v-af0f0c55] .title_box{flex-wrap:wrap;row-gap:9px}.layout-canvas .hero-flow[data-v-af0f0c55] .title_box .display_flex{white-space:nowrap}.layout-canvas .hero-flow[data-v-af0f0c55] .title_box>div:last-child{margin-left:auto}.common-tools-access[data-v-af0f0c55]{right:14px;bottom:73px}.layout-canvas .canvas-tool-tray[data-v-af0f0c55]{max-height:calc(100vh - 25px);overflow:auto}}.qs-product.studio-shell{padding:0!important;background:transparent!important}.layout-design-home[data-v-af0f0c55]{padding:0 32px 95px;min-height:100vh}.lab-header[data-v-af0f0c55],.lab-intro[data-v-af0f0c55],.lab-available[data-v-af0f0c55],.lab-adjustments[data-v-af0f0c55],.lab-footer[data-v-af0f0c55]{max-width:1640px;margin-left:auto;margin-right:auto}.lab-header[data-v-af0f0c55]{height:78px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--c-line)}.lab-brand[data-v-af0f0c55]{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:650;letter-spacing:-.4px;line-height:1.1}.lab-brand small[data-v-af0f0c55]{display:block;font-size:8px;letter-spacing:1.5px;color:var(--c-muted);font-weight:500;margin-top:6px}.lab-header-context[data-v-af0f0c55]{font-size:11px;color:var(--c-muted);border-left:1px solid var(--c-line);padding-left:22px;margin-left:8px}.lab-header-actions[data-v-af0f0c55]{display:flex;align-items:center;gap:20px;margin-left:auto}.lab-header-actions>button[data-v-af0f0c55]:first-child{font-size:22px;padding:0;color:var(--c-muted)}.lab-header-actions .lab-edit-button[data-v-af0f0c55]{display:flex;align-items:center;gap:7px;font-size:11px;padding:10px 13px;background:var(--c-text);color:var(--c-panel);border-radius:8px}.lab-edit-button svg[data-v-af0f0c55]{width:15px;height:15px}.lab-scenes[data-v-af0f0c55]{position:relative;font-size:11px;color:var(--c-muted)}.lab-scenes summary[data-v-af0f0c55]{cursor:pointer;list-style:none;white-space:nowrap}.lab-scenes summary[data-v-af0f0c55]:after{content:" ⌄"}.lab-scenes>div[data-v-af0f0c55]{position:absolute;right:0;top:30px;width:235px;padding:17px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:12px;z-index:60;box-shadow:0 10px 30px #0001}.lab-scenes small[data-v-af0f0c55]{font-size:10px}.lab-scenes label[data-v-af0f0c55]{display:flex;flex-direction:column;gap:7px;margin:14px 0;font-size:11px}.lab-scenes select[data-v-af0f0c55],.lab-scenes button[data-v-af0f0c55]{background:var(--c-soft);color:var(--c-text);border:1px solid var(--c-line);border-radius:6px;padding:7px;font-size:12px;width:100%}.lab-intro[data-v-af0f0c55]{padding:23px 0 20px;display:flex;align-items:end;justify-content:space-between}.lab-eyebrow[data-v-af0f0c55]{font-size:9px;color:var(--c-muted);letter-spacing:1px;display:block;margin-bottom:5px}.lab-intro h1[data-v-af0f0c55]{font-size:25px;letter-spacing:-.5px;font-weight:600}.lab-intro-status[data-v-af0f0c55]{font-size:11px;color:var(--c-muted);display:flex;align-items:center;gap:7px;padding-bottom:3px}.lab-intro-status i[data-v-af0f0c55]{width:5px;height:5px;border-radius:50%;background:var(--c-muted)}.lab-intro-status i.ready[data-v-af0f0c55]{background:var(--c-good)}.lab-intro-status small[data-v-af0f0c55]{font-size:9px;margin-left:10px;padding:4px 7px;border:1px solid var(--c-line);border-radius:5px}.lab-available[data-v-af0f0c55]{width:100%;min-width:0}.lab-content[data-v-af0f0c55]{width:100%;margin:0 auto;min-width:0}.lab-row[data-v-af0f0c55]{display:grid;grid-template-rows:minmax(0,1fr);gap:18px;position:relative;margin-bottom:18px;min-width:0}.lab-card-slot[data-v-af0f0c55]{min-width:0;min-height:0;height:100%}.lab-auto-grid[data-v-af0f0c55]{display:grid;gap:18px;min-width:0}.lab-adjustments[data-v-af0f0c55]{padding:17px 19px;background:var(--c-panel);border:1px dashed var(--c-line);border-radius:12px;margin-bottom:20px}.lab-adjustment-description[data-v-af0f0c55]{display:flex;align-items:center;gap:14px;margin-bottom:14px}.lab-adjustment-description strong[data-v-af0f0c55]{font-size:12px;font-weight:600}.lab-adjustment-description span[data-v-af0f0c55]{font-size:11px;color:var(--c-muted);line-height:1.7}.lab-control-row[data-v-af0f0c55]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lab-control-row label[data-v-af0f0c55]{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--c-muted);max-width:100%}.lab-control-row input[type=range][data-v-af0f0c55]{width:130px;accent-color:var(--c-accent);min-width:30px}.lab-control-row output[data-v-af0f0c55]{font-size:10px;white-space:nowrap;color:var(--c-text);min-width:49px}.lab-control-row button[data-v-af0f0c55],.lab-control-row select[data-v-af0f0c55]{font-size:11px;border:1px solid var(--c-line);padding:6px 8px;background:var(--c-soft);color:var(--c-text);border-radius:6px}.lab-width-control[data-v-af0f0c55]{margin-left:auto}.lab-extra-control[data-v-af0f0c55]{width:100%;padding-top:5px}.lab-extra-control input[data-v-af0f0c55]{accent-color:var(--c-accent)}.lab-adjustment-note[data-v-af0f0c55]{font-size:10px;color:var(--c-muted);margin-top:12px!important;line-height:1.7}.lab-editing .lab-row[data-v-af0f0c55]:before{content:"";position:absolute;inset:-4px;border:1px dashed var(--c-accent);opacity:.25;pointer-events:none;border-radius:18px}.lab-ratio-handle[data-v-af0f0c55]{position:absolute;top:0;bottom:0;width:18px;transform:translate(-50%);cursor:col-resize!important;touch-action:none;z-index:25;padding:0!important}.lab-ratio-handle>span[data-v-af0f0c55]{display:grid;place-items:center;width:16px;height:40px;border:1px solid var(--c-line);border-radius:7px;background:var(--c-panel);color:var(--c-accent);font-size:20px;box-shadow:0 3px 12px #0001}.lab-ratio-handle:hover>span[data-v-af0f0c55]{border-color:var(--c-accent)}.lab-free-canvas[data-v-af0f0c55]{position:relative;min-width:0}.lab-free-slot[data-v-af0f0c55]{position:absolute;min-width:0}.lab-editing .lab-free-canvas[data-v-af0f0c55]{background-image:radial-gradient(var(--c-line) 1px,transparent 1px);background-size:18px 18px}.lab-free-move[data-v-af0f0c55]{position:absolute;left:5px;top:5px;z-index:25;cursor:move!important;touch-action:none;color:var(--c-accent)!important;padding:0 3px!important;font-size:17px!important;line-height:15px;background:var(--c-panel)!important;border-radius:4px}.lab-free-resize[data-v-af0f0c55]{position:absolute;right:3px;bottom:3px;z-index:25;cursor:nwse-resize!important;touch-action:none;font-size:25px!important;padding:0 3px!important;background:var(--c-panel)!important;border-radius:4px;color:var(--c-accent)!important}.lab-free-canvas.stacked[data-v-af0f0c55]{display:flex;flex-direction:column;gap:18px;height:auto!important}.stacked .lab-free-slot[data-v-af0f0c55]{position:relative;flex:none}.lab-footer[data-v-af0f0c55]{display:flex;justify-content:space-between;gap:16px;font-size:10px;color:var(--c-muted);padding-top:22px}.lab-footer i[data-v-af0f0c55]{font-style:normal;margin:0 8px;color:var(--c-line)}.lab-variant-switcher[data-v-af0f0c55]{position:fixed;left:calc(50% + var(--design-system-reserve,0px)/2);bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:4px;border:1px solid #d9deea;background:#fffef8;box-shadow:0 6px 24px #1d2d5520;border-radius:40px;padding:5px;color:#4a5470;z-index:80;max-width:calc(100% - var(--design-system-reserve,0px) - 24px)}.lab-variant-switcher button[data-v-af0f0c55]{display:flex;align-items:center;gap:7px;padding:7px 12px;color:inherit;font-size:11px;border-radius:30px;white-space:nowrap}.lab-variant-switcher button.selected[data-v-af0f0c55]{background:#202942;color:#fff}.lab-variant-switcher b[data-v-af0f0c55]{font-size:11px;font-weight:550}.lab-variant-switcher span[data-v-af0f0c55]{font-size:10px}.lab-variant-switcher button[data-v-af0f0c55]:first-child,.lab-variant-switcher button[data-v-af0f0c55]:last-child{font-size:19px;line-height:20px;padding:3px 8px}@media(max-width:760px){.lab-edit-button>span[data-v-af0f0c55]{display:none}}@media(max-width:1200px){.layout-design-home[data-v-af0f0c55]{padding-left:24px;padding-right:24px}.lab-header-context[data-v-af0f0c55]{display:none}.lab-control-row[data-v-af0f0c55]{gap:8px}.lab-width-control[data-v-af0f0c55]{margin-left:0}.lab-adjustment-description[data-v-af0f0c55]{align-items:start;flex-direction:column;gap:5px}}@media(max-width:760px){.layout-design-home[data-v-af0f0c55]{padding:0 14px 86px}.lab-header[data-v-af0f0c55]{height:70px;gap:10px}.lab-brand[data-v-af0f0c55]{font-size:17px;gap:8px}.lab-brand .canvas-logo[data-v-af0f0c55]{width:33px;height:33px;font-size:23px;border-radius:10px}.lab-brand .canvas-logo i[data-v-af0f0c55]{width:5px;height:5px;right:5px;bottom:5px}.lab-header-actions[data-v-af0f0c55]{gap:13px}.lab-header-actions .lab-edit-button[data-v-af0f0c55]{font-size:10px;padding:8px;gap:5px}.lab-edit-button svg[data-v-af0f0c55]{width:13px;height:13px}.lab-scenes[data-v-af0f0c55]{font-size:10px}.lab-scenes>div[data-v-af0f0c55]{right:-60px;top:27px;width:225px}.lab-header-actions>button[data-v-af0f0c55]:first-child{font-size:20px}.lab-intro[data-v-af0f0c55]{padding:19px 0 18px}.lab-intro h1[data-v-af0f0c55]{font-size:23px}.lab-eyebrow[data-v-af0f0c55]{font-size:8px}.lab-intro-status[data-v-af0f0c55]{display:none}.lab-row[data-v-af0f0c55]{gap:14px;margin-bottom:14px}.lab-auto-grid[data-v-af0f0c55]{gap:14px}.lab-adjustments[data-v-af0f0c55]{padding:14px;margin-bottom:16px}.lab-control-row label[data-v-af0f0c55]{font-size:10px;gap:6px}.lab-control-row input[type=range][data-v-af0f0c55]{width:110px}.lab-control-row select[data-v-af0f0c55],.lab-control-row button[data-v-af0f0c55]{font-size:10px}.lab-width-control[data-v-af0f0c55]{width:100%}.lab-adjustment-description span[data-v-af0f0c55]{font-size:10px}.lab-footer[data-v-af0f0c55]{flex-direction:column;gap:7px;font-size:9px;padding-top:18px}.lab-variant-switcher[data-v-af0f0c55]{bottom:15px;gap:2px}.lab-variant-switcher button[data-v-af0f0c55]{padding:7px 8px;gap:5px}.lab-variant-switcher span[data-v-af0f0c55]{font-size:9px}}.ordered-home[data-v-af0f0c55]{padding-bottom:115px}.ordered-home button[data-v-af0f0c55]:disabled{opacity:.4;cursor:default}.ordered-home select[data-v-af0f0c55],.ordered-home input[data-v-af0f0c55]{font:inherit;accent-color:var(--c-accent)}.ordered-home button[data-v-af0f0c55]:focus-visible,.ordered-home select[data-v-af0f0c55]:focus-visible,.ordered-home input[data-v-af0f0c55]:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}.ordered-home[data-v-af0f0c55] .applications-collapsed{background:transparent!important;color:var(--c-muted)!important;border:0!important;box-shadow:none!important;width:auto;display:inline-flex;align-items:center;gap:6px;align-self:flex-end}.ordered-content[data-v-af0f0c55]{display:flex;flex-direction:column;gap:18px}.ordered-row[data-v-af0f0c55]{display:grid;grid-template-rows:minmax(0,1fr);gap:18px;position:relative;min-width:0}.ordered-column[data-v-af0f0c55]{display:grid;gap:18px;min-width:0;min-height:0}.ordered-card[data-v-af0f0c55]{height:100%;min-height:0;min-width:0;position:relative}.ordered-row.selected[data-v-af0f0c55]:before{content:"";position:absolute;inset:-5px;border:1px dashed var(--c-accent);border-radius:20px;pointer-events:none;opacity:.65}.ordered-card.drop[data-v-af0f0c55]{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:15px}.ordered-editor[data-v-af0f0c55]{max-width:1640px;margin:0 auto 22px;padding:20px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:15px;font-size:11px}.ordered-editor button[data-v-af0f0c55],.ordered-editor select[data-v-af0f0c55]{padding:7px 10px;background:var(--c-soft);border:1px solid var(--c-line);border-radius:7px;color:var(--c-text);font-size:11px}.ordered-editor-heading[data-v-af0f0c55]{display:flex;align-items:center;gap:10px}.ordered-editor-heading>div[data-v-af0f0c55]{margin-right:auto}.ordered-editor-heading strong[data-v-af0f0c55]{font-size:15px;font-weight:550}.ordered-editor-heading p[data-v-af0f0c55]{color:var(--c-muted);font-size:11px;margin-top:6px!important;line-height:1.7}.ordered-width[data-v-af0f0c55]{display:flex;gap:10px;align-items:center;margin-top:17px;padding-top:14px;border-top:1px solid var(--c-line);color:var(--c-muted);flex-wrap:wrap}.ordered-width label[data-v-af0f0c55]{display:flex;align-items:center;gap:9px}.ordered-width input[data-v-af0f0c55]{width:130px}.ordered-width output[data-v-af0f0c55]{min-width:45px}.ordered-width>span[data-v-af0f0c55]{margin-left:auto;font-size:10px}.ordered-row-picker[data-v-af0f0c55]{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:18px}.ordered-row-picker button.active[data-v-af0f0c55]{background:var(--c-text);color:var(--c-panel);border-color:var(--c-text)}.ordered-row-picker button[data-open-library][data-v-af0f0c55]{margin-left:auto}.ordered-template-list[data-v-af0f0c55]{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}.ordered-template-list>button[data-v-af0f0c55]{display:flex;align-items:center;gap:9px;background:var(--c-panel);padding:8px 10px;font-size:10px}.ordered-template-list>button.active[data-v-af0f0c55]{border-color:var(--c-accent);background:var(--c-soft);color:var(--c-accent)}.ordered-miniature[data-v-af0f0c55]{display:flex;gap:3px;width:38px;height:25px}.ordered-miniature i[data-v-af0f0c55]{display:flex;flex:1;flex-direction:column;gap:3px}.ordered-miniature b[data-v-af0f0c55]{display:block;flex:1;background:var(--c-line);border:1px solid var(--c-muted);border-radius:2px;opacity:.65}.active .ordered-miniature b[data-v-af0f0c55]{background:var(--c-accent);border-color:var(--c-accent);opacity:.6}.ordered-miniature.left-big i[data-v-af0f0c55]:first-child,.ordered-miniature.right-big i[data-v-af0f0c55]:last-child{flex:1.4}.ordered-row-controls[data-v-af0f0c55]{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:17px}.ordered-row-controls label[data-v-af0f0c55]{display:flex;align-items:center;gap:8px;color:var(--c-muted)}.ordered-row-controls input[type=range][data-v-af0f0c55]{width:100px}.ordered-row-actions[data-v-af0f0c55]{margin-left:auto;display:flex;gap:6px}.ordered-slot-list[data-v-af0f0c55]{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.ordered-slot-column[data-v-af0f0c55]{display:flex;gap:8px;flex:1;min-width:190px;flex-direction:column}.ordered-slot-column label[data-v-af0f0c55]{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--c-muted);font-size:10px}.ordered-slot-column select[data-v-af0f0c55]{max-width:250px;min-width:0;width:70%;font-size:11px}.ordered-editor-hint[data-v-af0f0c55]{font-size:10px;color:var(--c-muted);line-height:1.8;margin-top:14px!important}.ordered-card-controls[data-v-af0f0c55]{position:absolute;top:0;left:0;right:0;z-index:25;display:flex;align-items:center;justify-content:space-between;transform:translateY(-6px);pointer-events:none;padding:0 10px}.ordered-card-controls button[data-v-af0f0c55]{pointer-events:auto;font-size:10px!important;line-height:18px;background:var(--c-panel)!important;border:1px solid var(--c-line)!important;border-radius:6px;padding:2px 7px!important;box-shadow:0 2px 8px #0001;color:var(--c-muted)!important}.ordered-card-controls>button[data-v-af0f0c55]:first-child{cursor:grab}.ordered-card-controls>button[data-v-af0f0c55]:last-child{font-size:16px!important}.ordered-column-handle[data-v-af0f0c55]{position:absolute;top:35px;bottom:35px;width:18px;transform:translate(-50%);cursor:col-resize!important;touch-action:none;z-index:30;font-size:20px!important;color:var(--c-accent)!important;padding:0!important;border-radius:8px}.ordered-column-handle[data-v-af0f0c55]:hover,.ordered-column-handle[data-v-af0f0c55]:focus-visible{background:var(--c-soft)!important}.ordered-stack-handle[data-v-af0f0c55]{position:absolute;bottom:-18px;left:calc(50% - 20px);height:18px;width:40px;z-index:30;cursor:row-resize!important;touch-action:none;font-size:20px!important;line-height:12px;color:var(--c-accent)!important;padding:0!important}.ordered-empty[data-v-af0f0c55]{min-height:320px;border:1px dashed var(--c-line);border-radius:16px;background:var(--c-panel);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:25px;box-sizing:border-box}.ordered-empty>svg[data-v-af0f0c55]{width:35px;height:35px;color:var(--c-accent)}.ordered-empty h2[data-v-af0f0c55]{font-size:20px}.ordered-empty p[data-v-af0f0c55]{font-size:12px;line-height:1.8;color:var(--c-muted)}.ordered-empty button[data-v-af0f0c55]{border:1px solid var(--c-line);padding:10px 16px;border-radius:8px;font-size:12px;color:var(--c-accent)}.ordered-utility-button[data-v-af0f0c55]{font-size:11px!important;color:var(--c-muted)!important}.ordered-home[data-v-af0f0c55] .applications-collapsed{position:static;box-shadow:none;border:0;padding:0;background:none;color:var(--c-muted);font-size:11px}.ordered-savebar[data-v-af0f0c55]{position:fixed;bottom:20px;left:calc(50% + var(--design-system-reserve,0px)/2);transform:translate(-50%);max-width:calc(100% - var(--design-system-reserve,0px) - 28px);display:flex;align-items:center;gap:10px;padding:10px 12px 10px 18px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:13px;box-shadow:0 8px 30px #15244424;z-index:70;box-sizing:border-box;color:var(--c-text)}.ordered-savebar span[data-v-af0f0c55]{font-size:11px;color:var(--c-muted);white-space:nowrap;margin-right:15px}.ordered-savebar button[data-v-af0f0c55]{padding:9px 13px!important;font-size:11px!important;border:1px solid var(--c-line)!important;border-radius:7px;white-space:nowrap}.ordered-home .primary[data-v-af0f0c55]{background:var(--c-text)!important;color:var(--c-panel)!important;border-radius:7px;padding:9px 13px}.ordered-modal-backdrop[data-v-af0f0c55]{position:fixed;inset:0 0 0 var(--design-system-reserve,0px);background:#11182766;z-index:100;backdrop-filter:blur(3px)}.ordered-library[data-v-af0f0c55]{position:fixed;right:24px;top:35px;bottom:35px;width:390px;max-width:calc(100% - var(--design-system-reserve,0px) - 36px);z-index:101;background:var(--c-panel);border:1px solid var(--c-line);box-shadow:0 20px 80px #0003;border-radius:18px;padding:24px;box-sizing:border-box;display:flex;flex-direction:column;gap:17px}.ordered-library>header[data-v-af0f0c55]{display:flex;justify-content:space-between;align-items:center}.ordered-library small[data-v-af0f0c55]{font-size:9px;letter-spacing:1px;color:var(--c-muted)}.ordered-library h2[data-v-af0f0c55]{font-size:24px;font-weight:550;margin:6px 0 0}.ordered-library>header button[data-v-af0f0c55]{font-size:25px;color:var(--c-muted)}.ordered-library>p[data-v-af0f0c55]{font-size:11px;line-height:1.8;color:var(--c-muted)}.ordered-library-list[data-v-af0f0c55]{overflow:auto;min-height:0;flex:1}.ordered-library-list label[data-v-af0f0c55]{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--c-line);font-size:12px}.ordered-library-list svg[data-v-af0f0c55]{width:19px;height:19px;color:var(--c-muted)}.ordered-library-list small[data-v-af0f0c55]{display:block;margin-top:5px;letter-spacing:0;font-size:10px}.ordered-library-list input[data-v-af0f0c55]{margin-left:auto;width:16px;height:16px}.ordered-library>footer[data-v-af0f0c55]{display:flex;justify-content:space-between;align-items:center;padding-top:10px;font-size:12px}.ordered-library>footer>button[data-v-af0f0c55]:first-child{color:var(--c-muted)}@media(max-width:760px){.ordered-content[data-v-af0f0c55],.ordered-column[data-v-af0f0c55],.ordered-row[data-v-af0f0c55]{gap:18px}.ordered-editor[data-v-af0f0c55]{padding:15px}.ordered-editor-heading[data-v-af0f0c55]{flex-wrap:wrap;gap:8px}.ordered-editor-heading>div[data-v-af0f0c55]{width:100%}.ordered-editor-heading strong[data-v-af0f0c55]{font-size:14px}.ordered-width[data-v-af0f0c55]{font-size:10px}.ordered-width label[data-v-af0f0c55]{gap:6px}.ordered-width input[data-v-af0f0c55]{width:100px}.ordered-width>span[data-v-af0f0c55]{margin:0;width:100%;line-height:1.7}.ordered-row-picker button[data-open-library][data-v-af0f0c55]{margin-left:0}.ordered-template-list>button[data-v-af0f0c55]{flex:1;min-width:115px;padding:8px;font-size:10px}.ordered-row-controls[data-v-af0f0c55]{gap:10px}.ordered-row-controls label[data-v-af0f0c55]{font-size:10px}.ordered-row-actions[data-v-af0f0c55]{margin-left:0}.ordered-slot-column[data-v-af0f0c55]{width:100%;min-width:0;flex:auto}.ordered-slot-column select[data-v-af0f0c55]{max-width:none}.ordered-savebar[data-v-af0f0c55]{bottom:14px;width:calc(100% - 28px);justify-content:end;gap:8px;padding:10px}.ordered-savebar span[data-v-af0f0c55]{font-size:9px;white-space:normal;margin-right:auto;line-height:1.6;max-width:120px}.ordered-savebar button[data-v-af0f0c55]{font-size:10px!important;padding:8px 10px!important}.ordered-library[data-v-af0f0c55]{inset:20px 12px;width:auto;max-width:none;padding:20px}.ordered-library h2[data-v-af0f0c55]{font-size:21px}.ordered-card-controls button[data-v-af0f0c55]{font-size:9px!important}}.direct-toolbar{max-width:1640px;margin:0 auto 18px;display:flex;align-items:center;gap:8px;min-height:54px;padding:4px 8px;box-sizing:border-box;background:var(--c-panel);border:1px solid var(--c-line);border-radius:12px;position:sticky;top:8px;z-index:50;box-shadow:0 4px 15px #15244408}.direct-toolbar button,.direct-panel button,.direct-panel select,.direct-row-tools button{font:inherit;font-size:12px;color:var(--c-text);min-height:44px;padding:8px 12px;border-radius:8px;border:1px solid var(--c-line);background:var(--c-panel);box-sizing:border-box}.direct-toolbar button{border-color:transparent;white-space:nowrap}.direct-toolbar button:hover,.direct-row-tools button:hover{background:var(--c-soft)}.ordered-home .direct-toolbar button{font-size:12px!important;min-width:44px}.direct-edit-label{font-size:12px;color:var(--c-muted);padding:0 10px;white-space:nowrap;display:flex;align-items:center;gap:7px}.direct-edit-label i{width:6px;height:6px;border-radius:50%;background:var(--c-accent)}.direct-toolbar-end{display:flex;gap:4px;margin-left:auto}.direct-row-tools{position:absolute;right:8px;top:6px;z-index:38;display:flex;gap:3px}.direct-row-tools button{height:44px;min-width:44px;padding:4px 9px;font-size:11px;box-shadow:0 3px 12px #15244412}.ordered-home .direct-row-tools{top:-24px}.ordered-home .direct-row-tools button{background:var(--c-soft);border-color:var(--c-line);font-size:11px!important}.ordered-editing .ordered-row{outline:1px dashed var(--c-line);outline-offset:5px;border-radius:16px}.ordered-editing .ordered-row.selected:before{inset:-5px}.ordered-editing .ordered-card-controls{top:6px;left:8px;right:auto;padding:0;transform:none;gap:5px}.ordered-editing .ordered-card-controls button{min-height:44px;min-width:44px;font-size:11px!important;padding:6px 10px!important;line-height:normal;touch-action:none}.direct-card-actions{display:flex;gap:3px;pointer-events:auto}.ordered-editing .ordered-card-controls{z-index:37}.direct-panel-backdrop{position:fixed;inset:0 0 0 var(--design-system-reserve,0px);background:#10182744;backdrop-filter:blur(2px);z-index:100}.direct-panel{position:fixed;right:20px;top:20px;bottom:20px;width:430px;max-width:calc(100% - var(--design-system-reserve,0px) - 40px);box-sizing:border-box;background:var(--c-panel);color:var(--c-text);border:1px solid var(--c-line);border-radius:20px;box-shadow:0 20px 70px #0003;z-index:101;display:flex;flex-direction:column;padding:22px;font-size:12px}.direct-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.direct-panel h2{font-size:20px;font-weight:550;margin:0}.direct-panel header button{font-size:25px;width:44px;border:0;padding:0}.direct-panel-body{min-height:0;overflow:auto;flex:1;padding:14px 2px}.direct-panel footer{border-top:1px solid var(--c-line);padding-top:12px;display:flex;justify-content:flex-end}.direct-panel button:disabled{opacity:.4;cursor:default}.direct-panel input{max-width:100%;accent-color:var(--c-accent)}.direct-panel select{min-width:0;max-width:100%}.direct-panel-action{display:block;width:100%;text-align:left;margin:8px 0}.direct-panel-note{font-size:12px;line-height:1.8;color:var(--c-muted);margin-bottom:12px!important}.direct-panel .ordered-template-list{display:grid;grid-template-columns:1fr 1fr;margin-top:0}.direct-panel .ordered-template-list>button{min-height:58px;padding:8px!important}.direct-panel .ordered-row-controls{align-items:stretch;gap:12px}.direct-panel .ordered-row-controls>label{justify-content:space-between;width:100%}.direct-panel .ordered-row-actions{margin-left:0}.direct-panel .ordered-slot-column{min-width:100%;margin:4px 0}.direct-panel .ordered-width>label{flex-wrap:wrap}.direct-panel .ordered-width>span{width:100%;line-height:1.8}.direct-panel .ordered-width input{width:100px}.direct-panel .ordered-editor-hint{line-height:1.8;color:var(--c-muted)}.direct-panel :focus-visible,.direct-toolbar :focus-visible,.direct-row-tools :focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}@media(max-width:760px){.direct-edit-label{display:none}.direct-toolbar{flex-wrap:wrap;gap:2px;padding:3px;top:5px}.direct-toolbar button{font-size:11px;padding:6px 9px}.direct-toolbar-end{gap:0}.direct-toolbar>button[data-undo] span{display:none}.direct-panel{inset:auto 10px 10px;width:auto;max-width:none;max-height:78dvh;padding:16px;border-radius:18px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.direct-panel h2{font-size:18px}.direct-panel .ordered-template-list>button{min-width:0;font-size:10px}.direct-row-tools{right:5px;top:5px}.direct-row-tools button{font-size:10px}.ordered-editing .ordered-card-controls{left:5px;top:5px}.ordered-editing .ordered-card-controls button{font-size:10px!important;padding:5px 7px!important;max-width:160px}.direct-panel .ordered-slot-column select{width:65%}}@media(max-width:760px){.ordered-home .direct-toolbar button{font-size:11px!important}.direct-toolbar{padding:2px;gap:0}.direct-toolbar-end{margin-left:auto}}@media(prefers-reduced-motion:reduce){.ordered-home *{animation:none!important;transition:none!important}}.direct-row-tools [data-row-handle]{cursor:grab;touch-action:none}.direct-empty-slot{height:100%;width:100%;min-height:100px;border:1px dashed var(--c-accent)!important;border-radius:15px;background:var(--c-soft)!important;color:var(--c-accent)!important;font-size:12px!important}.direct-placement{position:absolute;inset:0;width:100%;height:100%;z-index:42;border-radius:15px;border:2px dashed var(--c-accent)!important;background:color-mix(in srgb,var(--c-panel) 80%,transparent)!important;display:flex;align-items:center;justify-content:center;padding:24px!important;color:var(--c-accent)!important;font-size:13px!important;text-align:center;transition:background .16s,box-shadow .16s}.direct-placement>span{max-width:100%;line-height:1.8;background:var(--c-panel);border:1px solid var(--c-line);border-radius:9px;padding:10px 12px;box-shadow:0 3px 12px #0001}.direct-placement small{display:block;font-size:11px;color:var(--c-muted);font-weight:400}.direct-placement.invalid{border-color:var(--c-line)!important;color:var(--c-muted)!important}.ordered-card.drop .direct-placement,.direct-placement:focus-visible{box-shadow:inset 0 0 0 3px var(--c-accent);background:var(--c-soft)!important}.direct-gap-target{position:absolute;left:12%;right:12%;top:-18px;height:18px;z-index:45;font-size:10px!important;border-radius:12px;background:var(--c-accent)!important;color:var(--c-panel)!important;white-space:nowrap;overflow:hidden}.direct-gap-target:hover,.direct-gap-target:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px}.direct-last-target{min-height:48px;width:100%;border:1px dashed var(--c-accent)!important;border-radius:10px;color:var(--c-accent)!important;font-size:12px!important}.direct-moving-bar{position:fixed;bottom:14px;left:calc(50% + var(--design-system-reserve,0px)/2);transform:translate(-50%);max-width:calc(100% - var(--design-system-reserve,0px) - 24px);padding:8px 12px;box-sizing:border-box;display:flex;align-items:center;gap:10px;background:var(--c-panel);color:var(--c-text);border:1px solid var(--c-accent);border-radius:13px;box-shadow:0 8px 30px #15244424;z-index:70;font-size:12px}.direct-moving-bar>span{min-width:0}.direct-moving-bar small{display:block;color:var(--c-muted);font-size:10px}.direct-moving-bar button{min-height:44px;padding:7px 10px!important;font-size:11px!important;white-space:nowrap;border:1px solid var(--c-line)!important;border-radius:8px}.direct-drag-ghost{position:fixed;z-index:200;pointer-events:none;width:175px;padding:12px;border-radius:12px;background:var(--c-text);color:var(--c-panel);box-shadow:0 12px 30px #0003;font-size:12px;opacity:.94}.direct-drag-ghost small{display:block;font-size:10px;margin-top:5px;line-height:1.6}.direct-target-option{width:100%;text-align:left;display:block;margin:7px 0;line-height:1.6}.direct-target-option small{display:block;color:var(--c-muted);font-size:11px}.direct-target-option[aria-disabled=true]{opacity:.55}.ordered-card.chosen{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:15px}.ordered-editing .ordered-card-controls>button:first-child{touch-action:none;user-select:none}.direct-size-presets,.direct-ratio-presets{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.direct-size-presets>small,.direct-ratio-presets>small{width:100%;color:var(--c-muted);font-size:11px;margin-bottom:3px}.direct-size-presets>button{flex:1;min-width:0}.direct-size-presets small{display:block;font-size:10px;color:var(--c-muted)}.direct-ratio-presets button{display:flex;gap:3px;position:relative;min-width:105px;flex:1;padding-bottom:24px!important;height:57px}.direct-ratio-presets i{height:18px;background:var(--c-accent);opacity:.5;border-radius:3px}.direct-ratio-presets span{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:10px}.direct-precise{border-top:1px solid var(--c-line);padding:12px 0;margin:14px 0;font-size:12px}.direct-precise summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--c-muted)}.direct-precise summary:after{content:"+";margin-left:auto}.direct-precise label{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:8px 0}.direct-split-choice{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:11px;color:var(--c-muted)}.direct-split-choice button{font-size:11px!important;padding:7px!important}.direct-panel .ordered-row-actions{margin:18px 0 10px}.direct-module-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--c-line);font-size:12px}.direct-module-item svg{width:19px;height:19px;color:var(--c-muted)}.direct-module-item>span{flex:1;min-width:0;line-height:1.6}.direct-module-item small{display:block;color:var(--c-muted);font-size:10px;letter-spacing:0;margin-top:4px}.direct-module-item button{min-height:44px;min-width:44px;font-size:11px!important;padding:6px!important;color:var(--c-accent)!important;border:1px solid var(--c-line)!important;border-radius:7px}.direct-module-item [data-hide-module]{color:var(--c-muted)!important;font-size:19px!important}.ordered-home .ordered-column-handle{width:44px;padding:0!important;background:transparent!important}.ordered-column-handle>span{display:inline-grid;place-items:center;width:18px;height:44px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:7px;box-shadow:0 2px 8px #0001}.ordered-home .ordered-stack-handle{height:44px;bottom:-31px;width:44px;left:calc(50% - 22px);background:transparent!important}.ordered-stack-handle>span{display:inline-grid;place-items:center;height:18px;width:44px;background:var(--c-panel);border:1px solid var(--c-line);border-radius:7px}.ordered-column-handle output,.ordered-stack-handle output{position:absolute;top:40%;left:26px;background:var(--c-text);color:var(--c-panel);font-size:11px;white-space:nowrap;border-radius:6px;padding:6px;pointer-events:none;box-shadow:0 5px 15px #0002}.ordered-home .direct-panel button,.ordered-home .direct-panel select{font-size:12px!important}.direct-module-item button:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}.ordered-home .direct-empty-slot{min-height:44px}.ordered-home .direct-panel button[aria-pressed=true]{background:var(--c-soft);box-shadow:inset 0 0 0 1px var(--c-accent);color:var(--c-accent)}.ordered-home .ordered-stack-handle,.ordered-home .ordered-column-handle{z-index:39}.ordered-home .lab-header-actions>button{min-height:44px;min-width:44px}.ordered-home .lab-scenes>summary{display:flex;align-items:center;min-height:44px;min-width:44px}@media(max-width:760px){.ordered-home .lab-scenes>div{position:fixed;left:12px;right:12px;top:75px;width:auto;max-height:calc(100dvh - 90px);overflow:auto}}@media(max-width:400px){.ordered-home .lab-header-actions{gap:4px}.ordered-home .lab-header{gap:6px}}.direct-preview-short{display:none}@media(max-width:400px){.direct-preview-long{display:none}.direct-preview-short{display:inline}}.ordered-home .direct-toolbar{margin-bottom:24px}@media(max-width:760px){.direct-moving-bar{width:calc(100% - 24px);gap:5px;padding:6px 8px}.direct-moving-bar>span{flex:1;font-size:10px}.direct-moving-bar button{padding:5px 7px!important;font-size:10px!important}.direct-gap-target{font-size:9px!important;left:8%;right:8%}.direct-placement{font-size:12px!important}}.slot-overview{position:relative}.slot-overview-row{transition:transform .16s ease}.row-sort-handle{display:flex;align-items:center;gap:8px;cursor:grab;touch-action:none;user-select:none}.row-sort-handle>span{font-size:20px;color:var(--c-muted)}.row-sort-source{box-shadow:0 18px 44px #0003;border-color:var(--c-accent)!important;cursor:grabbing}.row-sort-placeholder{position:absolute;left:0;right:0;border:2px dashed var(--c-accent);border-radius:14px;box-sizing:border-box;display:grid;place-items:center;color:var(--c-accent);background:var(--c-soft);pointer-events:none;font-size:12px}.row-sort-placeholder>span{padding:6px 12px;border-radius:8px;background:var(--c-panel)}.row-sort-active{user-select:none}.row-sort-active .row-sort-menu>div{display:none}.row-sort-menu{position:relative}.row-sort-menu>summary{cursor:pointer;list-style:none;display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:8px}.row-sort-menu>summary::-webkit-details-marker{display:none}.row-sort-menu[open]{z-index:90}.row-sort-menu>div{position:absolute;right:0;top:44px;min-width:120px;padding:6px;background:var(--c-panel);border:1px solid var(--c-line);box-shadow:0 8px 24px #0002;border-radius:10px}.row-sort-menu>div>button{display:block;width:100%;text-align:left}.row-sort-menu button:disabled{opacity:.35}.slot-overview-row{transition:none}.row-sort-active .slot-overview-row{transition:transform .16s ease}.row-sort-active .row-sort-source{transition:none}.slot-parked{max-height:0!important;overflow:hidden!important;visibility:hidden;pointer-events:none}.slot-overview-live{font-size:11px;line-height:1.6;color:var(--c-accent);min-height:36px;margin:0 0 14px!important}.direct-panel footer>[data-choice-preview]{width:100%;margin:0;max-height:38dvh;overflow:auto}.direct-panel footer>[data-choice-preview] h3{overflow-wrap:anywhere}.slot-overview-active .lab-intro{display:none}.slot-overview-active .direct-toolbar{margin-bottom:12px!important}.slot-overview-heading p{min-height:36px}.slot-overview{max-width:1640px;margin:0 auto 24px}.slot-overview-heading{margin-bottom:14px}.slot-overview-heading h2{font-size:18px;font-weight:550;margin:0 0 6px}.slot-overview-heading p{font-size:12px;color:var(--c-muted);line-height:1.6}.slot-overview-row{position:relative;background:var(--c-panel);border:1px solid var(--c-line);border-radius:14px;padding:6px 14px 12px;margin-bottom:14px}.slot-overview-row>header{display:flex;align-items:center;gap:6px;min-height:44px;font-size:12px}.slot-overview-row>header>span{color:var(--c-muted);font-size:10px;margin-right:auto}.slot-overview button{font-size:12px!important;color:var(--c-text);min-height:44px;min-width:44px;border-radius:8px;box-sizing:border-box}.slot-overview-row>header button{padding:0 10px;border:1px solid transparent}.slot-overview-row>header button:hover{background:var(--c-soft)}.slot-overview-grid{display:grid;gap:12px;position:relative}.slot-overview-column{display:grid;gap:8px;min-width:0;min-height:0}.slot-overview-card{background:var(--c-soft);border:1px solid var(--c-line);border-radius:10px;position:relative;display:flex;align-items:center;gap:8px;padding:8px;min-width:0;min-height:0}.slot-overview-card.chosen,.slot-overview-card.drop{border-color:var(--c-accent);box-shadow:inset 0 0 0 1px var(--c-accent)}.slot-overview-name{display:flex;align-items:center;gap:9px;flex:1;min-width:0!important;overflow-wrap:anywhere;text-align:left;cursor:grab;touch-action:none;padding:4px!important;line-height:1.5}.slot-overview-name svg{width:22px;height:22px;flex:none;color:var(--c-accent)}.slot-overview-actions{display:flex;gap:2px}.slot-overview-actions button{border:1px solid var(--c-line);background:var(--c-panel);padding:0 8px!important;white-space:nowrap}.slot-overview-empty{width:100%;color:var(--c-accent)!important;border:1px dashed var(--c-line)}.slot-overview-gap{position:absolute;left:10%;right:10%;top:-16px;min-height:32px!important;z-index:40;background:transparent;color:var(--c-accent)!important}.slot-overview-gap span{opacity:0;font-size:10px;background:var(--c-accent);color:var(--c-panel);padding:3px 8px;border-radius:9px}.slot-overview-gap:hover span,.slot-overview-gap:focus-visible span{opacity:1}.slot-overview-gap:after{content:"";position:absolute;top:13px;left:0;right:0;border-top:2px dashed var(--c-accent);opacity:.3}.slot-overview-gap:hover:after{opacity:1}.slot-overview-drop{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px dashed var(--c-accent);background:var(--c-soft);z-index:5;padding:4px!important;line-height:1.5;overflow-wrap:anywhere}.slot-overview-drop small{font-size:10px;color:var(--c-muted)}.slot-overview-drop:hover{box-shadow:inset 0 0 0 2px var(--c-accent)}.slot-overview-drop[aria-disabled=true]{border-color:var(--c-line);color:var(--c-muted)}.slot-overview-insert{position:absolute;top:0;bottom:0;transform:translate(-50%);width:44px;z-index:8;background:transparent!important;padding:0!important;min-width:44px}.slot-overview-insert>span{display:grid;place-items:center;width:22px;height:30px;margin:auto;background:var(--c-panel);border:1px solid var(--c-accent);color:var(--c-accent);border-radius:7px}.slot-overview-insert[aria-disabled=true]>span{border-color:var(--c-line);color:var(--c-muted)}.slot-overview-end{width:100%;border:1px dashed var(--c-accent);color:var(--c-accent)!important}@media(max-width:760px){.slot-overview-row{padding:5px 8px 10px}.slot-overview-grid{gap:8px}.slot-overview-card{padding:4px;gap:2px;flex-wrap:wrap;align-content:center}.slot-overview-name{font-size:10px!important;gap:4px;min-height:44px!important}.slot-overview-name svg{display:none}.slot-overview-actions{margin-left:auto}.slot-overview-actions button{font-size:10px!important;min-width:44px}.slot-overview-actions button:first-child:not([data-move-card]){display:none}.slot-overview-heading h2{font-size:16px}.slot-overview-row>header>span{font-size:9px}.ordered-home .direct-toolbar button{padding:6px!important}.slot-overview-row>header button{font-size:10px!important}}.slot-finish-row{padding:13px 0;border-bottom:1px solid var(--c-line);line-height:1.7}.slot-finish-row strong{font-size:12px}.slot-finish-row small{display:block;color:var(--c-muted);font-size:11px;overflow-wrap:anywhere}.slot-module-list{display:grid;gap:8px}.slot-module-list>button{display:flex;gap:12px;align-items:center;text-align:left;min-height:68px;width:100%;padding:12px!important}.slot-module-list svg{width:22px;height:22px;color:var(--c-accent);flex:none}.slot-module-list>button>span:nth-child(2){flex:1;min-width:0}.slot-module-list small{display:block;color:var(--c-muted);font-size:11px;line-height:1.6;margin-top:4px}.slot-module-list [aria-pressed=true]{border-color:var(--c-accent)!important;background:var(--c-soft)!important}.slot-change-preview{border:1px solid var(--c-line);border-radius:12px;background:var(--c-soft);padding:14px;margin:16px 0;line-height:1.8}.slot-change-preview h3{font-size:13px;margin:0 0 10px}.slot-change-preview p{font-size:12px;color:var(--c-muted);margin:8px 0!important}.slot-change-preview>button{margin-top:10px}.slot-retained{display:flex;align-items:center;gap:10px;min-height:44px}.slot-retained input{width:18px;height:18px}.slot-confirm{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}.ordered-editing .slot-card-tools{inset:auto 12px 12px auto;gap:4px;opacity:.9}.ordered-editing .slot-card-tools>button{cursor:pointer!important;touch-action:auto!important}.ordered-editing .slot-card-tools button{box-shadow:none!important}.ordered-editing .ordered-content{gap:42px}.ordered-editing .direct-row-tools{top:-30px}.ordered-editing .direct-toolbar{margin-bottom:36px}@media(max-width:760px){.ordered-editing .slot-card-tools{right:8px;bottom:8px}.ordered-editing .ordered-content{gap:40px}.slot-module-list>button{min-height:70px}.slot-change-preview{padding:12px}}@media(max-width:760px){.slot-overview-grid{height:104px!important}.slot-overview-grid.stacked{height:216px!important}.slot-overview-card{display:block;padding:4px}.slot-overview-name{width:100%;min-width:44px!important;min-height:44px!important;justify-content:center;text-align:center}.slot-overview-actions{position:absolute;right:3px;bottom:3px}.slot-overview-actions button:last-child{display:block}.slot-overview-card.chosen .slot-overview-actions button:last-child{display:none}}.presentation-forms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.presentation-forms>button{display:flex;align-items:center;flex-direction:column;gap:10px;min-height:108px!important;padding:12px 6px!important;line-height:1.4;font-size:12px!important}.presentation-forms [aria-pressed=true],.presentation-options [aria-pressed=true]{border-color:var(--c-accent)!important;background:var(--c-soft)!important;color:var(--c-accent)!important}.presentation-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:60px;height:32px}.presentation-mini i{border:1px solid var(--c-muted);border-radius:4px}.presentation-mini.summary i:first-child{grid-column:span 2}.presentation-mini.strip{height:18px;margin:7px 0}.presentation-mini.standard{grid-template-columns:1fr}.presentation-options{margin-top:24px}.presentation-options h3{font-size:13px}.presentation-options>div{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.presentation-options button{min-width:56px}.presentation-options p,.presentation-result p{font-size:12px;line-height:1.8;color:var(--c-muted)}.presentation-result{margin-top:20px;background:var(--c-soft);border:1px solid var(--c-line);border-radius:12px;padding:14px}.presentation-result strong{font-size:13px}.presentation-result [role=status]{color:var(--c-accent)}.presentation-impact{list-style:none;margin:12px 0;padding:0;font-size:12px;line-height:1.9}.presentation-impact li{margin:6px 0}.ordered-editing .slot-card-tools>[data-display-settings]{min-width:44px!important}.presentation-help{font-size:11px;line-height:1.7;color:var(--c-muted)}.is-device-summary .inventory-heading{margin:8px 0!important}.is-device-summary .inventory-heading>strong{font-size:42px!important;line-height:1.15}.is-device-summary .inventory-footer{margin-top:auto!important}.is-device-summary .module-state{font-size:11px;padding:4px!important;gap:6px!important}.is-device-summary .module-state>button{min-height:44px;min-width:44px}.ordered-home,.network-dialog{--home-font-family:Arial,"Microsoft YaHei",sans-serif;--home-title-size:16px;--home-body-size:14px;--home-caption-size:12px;--home-summary-title-size:14px}.ordered-home.canvas-home,.network-dialog{font-family:var(--home-font-family);font-size:var(--home-body-size)}.ordered-home :is(button,input,select,textarea),.network-dialog :is(button,input,select,textarea){font-family:var(--home-font-family)!important}.ordered-home .layout-widget.narrow{--home-title-size:14px;--home-body-size:13px}.ordered-home :is(.canvas-module>header h2,.applications-heading h2,.network-business-card h2),.ordered-home .layout-widget .network_container .title_box .display_flex>span{font-size:var(--home-title-size)!important;font-weight:600;line-height:1.25}.ordered-home :is(.compact-preview h2,.network-business-card.summary h2){font-size:var(--home-summary-title-size)!important}.ordered-home .layout-widget .fluid-applications .applications-heading h2{font-size:var(--home-title-size)!important}.ordered-home :is(.canvas-module,.home-applications,.compact-preview,.network-business-card){font-family:var(--home-font-family);font-size:var(--home-body-size)}.ordered-home :is(.canvas-module,.home-applications,.compact-preview,.network-business-card) :is(strong,b){font-weight:600}.ordered-home :is(.canvas-devices strong,.system-line,.system-line strong,.disk-grid strong,.sharing-list>button>span:nth-child(2),.sharing-path strong,.app-overview strong,.app-detail strong,.download-list>button>span:nth-child(2),.remote-domain,.module-state strong,.module-state>span,.compact-service,.compact-connection strong,.interface-name strong,.network-widget-message strong,.connection-status-text strong,.connection-addresses dt,.connection-addresses dd,.connection-dns>span){font-size:var(--home-body-size)!important;line-height:1.4}.ordered-home .system-line strong{font-weight:400}.ordered-home .connection-business:not(.summary) .connection-status-text strong{font-weight:400}.ordered-home .connection-uptime-badge{font-size:var(--home-body-size)!important}.ordered-home :is(.module-more,.inventory-heading>strong>span,.inventory-heading>small,.canvas-devices small,.device-online,.inventory-footer,.inventory-footer>small,.inventory-footer summary,.inventory-footer details>p,.device-parental-action,.resource-meters>div>span,.resource-meters strong>small,.firmware-line,.firmware-line p,.storage-summary>span,.storage-summary>small,.disk-grid small,.disk-grid>div>div:first-child>span:last-child,.disk-overflow-note,.module-bottom-link,.sharing-list small,.service-state,.sharing-path small,.app-detail small,.remote-protocols,.remote-protocols small,.module-state p,.module-state>button,.module-notice,.compact-meters span,.compact-meters small,.compact-service>span,.compact-subtext,.compact-message,.compact-message small,.compact-message button,.network-business-card header>button,.network-business-card footer>button,.network-business-card footer small,.network-business-card footer b,.connection-status-text small,.connection-remedy,.connection-ip-tag,.network-snapshot-note,.interface-totals>span,.interface-totals>small,.interface-totals>strong small,.interface-name small,.interface-link-state strong,.interface-link-state small,.interface-business footer>small,.network-widget-message small,.network-widget-empty,.applications-overflow,.applications-actions>button,.applications-state,.applications-state button,.applications-fallback>span,.applications-fallback>button,.applications-favorites small,.layout-speed,.layout-data-notice){font-size:var(--home-caption-size)!important;line-height:1.4}.ordered-home :is(.network-business-card footer b,.compact-service strong){font-weight:600}.ordered-home :is(.network_tag .tag_item,.speed_item>span){font-size:var(--home-caption-size)!important}.ordered-home .fluid-applications .applications-favorites strong{font-size:var(--home-body-size)!important;line-height:18px;max-height:36px;font-weight:600}.ordered-home .fluid-applications:not(.applications-strip) .applications-favorites>button{gap:2px!important}.ordered-home .applications-strip .applications-favorites>button{gap:8px!important}.ordered-home .applications-system-tools .canvas-tools-grid span{font-size:var(--home-body-size)!important}.ordered-home .applications-browser h2{font-size:var(--home-title-size)!important;line-height:1.4}.ordered-home .applications-browser :is(.application-search input,.browser-category-tabs button,.application-catalogue strong,.browser-tool-list button,.browser-fallback button,footer button){font-size:var(--home-body-size)!important;line-height:1.4}.ordered-home .applications-browser :is(header span,.applications-hint,.browser-category-tabs small,.application-catalogue small,.favorite-order,.favorite-order button,.browser-fallback h3,.application-limit,footer>span){font-size:var(--home-caption-size)!important;line-height:1.5}.ordered-home .interface-business:not(.summary) .interface-list>button{padding:5px 0}.ordered-home .interface-business:not(.summary) .interface-totals{margin:11px 0 8px}.ordered-home .interface-name small{line-height:1.3}.ordered-home .interface-business footer>small{line-height:1.3}.ordered-home .canvas-module>header h2{white-space:normal;overflow-wrap:anywhere}.ordered-home .canvas-devices strong{line-height:20px}.ordered-home .canvas-devices small{line-height:16px}.ordered-home .inventory-footer{gap:8px;flex-wrap:wrap}.ordered-home .inventory-heading{gap:10px;flex-wrap:wrap}.ordered-home .inventory-heading>small{line-height:1.4}.ordered-home .compact-preview{gap:12px}.ordered-home .compact-subtext,.ordered-home .sharing-path strong,.ordered-home .app-detail strong{line-height:1.4}.network-dialog h2{font-size:var(--home-title-size)!important;font-weight:600}.network-dialog .network-dialog-body{font-size:var(--home-body-size)}.network-dialog :is(.connection-full-details dd,.interface-full-details dd,.interface-detail-list strong,.network-detail-status,.network-detail-actions){font-size:var(--home-body-size)!important;line-height:1.5}.network-dialog :is(.connection-full-details dt,.interface-full-details dt,.interface-detail-list span,.interface-detail-list small,.network-privacy-note,.network-snapshot-note,.network-dialog>header small){font-size:var(--home-caption-size)!important;line-height:1.5}.network-dialog :is(.connection-full-details dd>button,.connection-full-details dd>small,.connection-full-details nav,.interface-full-details nav,.network-back,.network-action-notice){font-size:var(--home-caption-size)!important;line-height:1.5}.network-dialog :is(.network-business-action input,.network-business-action select,.actioner-dns_footer,.config-message,.successed){font-size:var(--home-body-size)!important}@media(max-width:768px){.ordered-home,.network-dialog{--home-title-size:14px;--home-body-size:13px}.ordered-home .layout-widget .module-devices:has(.module-notice)>header{margin-bottom:10px}.ordered-home .layout-widget .module-devices:has(.module-notice) .inventory-heading{margin-bottom:8px}.ordered-home .layout-widget .module-devices:has(.module-notice) .inventory-heading>strong{line-height:1}.ordered-home .layout-widget .module-devices:has(.module-notice) .canvas-devices{gap:8px}.ordered-home .layout-widget .module-devices:has(.module-notice) .canvas-devices>button{padding-top:6px;padding-bottom:6px}.ordered-home .layout-widget .module-devices:has(.module-notice) .module-notice{padding:5px 9px;margin:4px 0!important}.ordered-home .layout-widget .module-devices:has(.module-notice) .inventory-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:6px}.ordered-home .layout-widget .module-devices:has(.module-notice) .inventory-footer>small{grid-column:1/-1}.ordered-home .layout-widget .module-devices:has(.module-notice) .inventory-footer :is(summary,.device-parental-action){white-space:normal;text-align:left;align-self:start}.ordered-home .layout-widget .module-storage>header{margin-bottom:10px}.ordered-home .layout-widget .module-storage .storage-summary{margin-bottom:12px}.ordered-home .layout-widget .module-storage .disk-grid{gap:12px 18px}.ordered-home .layout-widget .module-storage .disk-overflow-note{margin-top:6px}.ordered-home .layout-widget .module-storage .module-bottom-link{margin-top:8px;padding-top:8px}}@container (max-width:340px){.ordered-home .network-business-card h2{font-size:14px!important}.ordered-home .connection-business :is(.connection-addresses dt,.connection-addresses dd,.connection-dns>span,.connection-status-text strong,.connection-uptime-badge){font-size:13px!important}}@container (max-height:260px){.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses{gap:3px}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses dd{margin-top:3px}.ordered-home .layout-widget .connection-business:not(.summary) footer{padding-top:2px}}.natural-home .slot-overview-grid{height:104px!important}.natural-home .slot-overview-grid.stacked{height:216px!important}.natural-home .slot-overview-column{container-type:inline-size}.natural-home .slot-overview-card{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:0;padding:4px}.natural-home .slot-overview-card .slot-overview-name{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;flex:1;align-content:center;justify-items:center;gap:2px;width:100%;min-width:0!important;min-height:44px!important;padding:0!important;font-size:12px!important;text-align:center}.natural-home .slot-overview-card .slot-overview-name>svg{display:none!important}.natural-home .slot-overview-card .overview-module-title{grid-column:1;line-height:1.2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.natural-home .slot-overview-card .slot-overview-name .overview-form-label{grid-column:1;justify-self:center;font-size:10px;line-height:12px;border:0;padding:0;margin:0}.natural-home .slot-overview-card .slot-overview-actions{position:static;align-self:flex-end;flex:none;height:44px;min-height:44px;margin:0;gap:2px}.natural-home .overview-form-label{font-size:11px;font-weight:400;color:var(--c-muted);border:1px solid var(--c-line);border-radius:4px;padding:2px 5px;margin-left:6px;white-space:nowrap}.natural-home .slot-overview-name{display:grid;grid-template-columns:22px minmax(0,1fr);gap:3px 8px}.natural-home .slot-overview-name>svg{grid-column:1;grid-row:1/3}.natural-home .overview-module-title{grid-column:2;min-width:0;line-height:1.3;overflow-wrap:anywhere}.natural-home .slot-overview-name .overview-form-label{grid-column:2;justify-self:start;line-height:1.1;margin-left:0}@media(max-width:760px){.natural-home .slot-overview-name{grid-template-columns:minmax(0,1fr);gap:3px;padding:2px!important;font-size:12px!important}.natural-home .slot-overview-name>svg{display:none!important}.natural-home .overview-module-title{grid-column:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.natural-home .slot-overview-name .overview-form-label{grid-column:1;justify-self:center;font-size:10px;padding:2px 4px}}.natural-home .ordered-row{grid-template-rows:auto;align-items:stretch}.natural-home .ordered-column{align-content:stretch}.natural-home .ordered-card{height:auto;display:flex;flex-direction:column}.natural-home .ordered-card>.layout-widget,.natural-home .ordered-card>.native-business-card,.natural-home .ordered-card>.network-business-card{height:auto;flex:1;min-height:0;display:flex;flex-direction:column}.natural-home .layout-widget>.native-business-card{height:auto;flex:1;display:flex;flex-direction:column}.natural-home .native-business-surface{height:auto;flex:1;display:flex;flex-direction:column;overflow:visible}.natural-home .native-business-surface>.reusable-card{min-height:0;flex:1}.natural-home .native-summary,.natural-home .compact-preview{height:auto;overflow:visible;flex:1}.natural-home .network-business-card{height:auto;flex:1;container-type:inline-size!important}.natural-home .layout-widget>.canvas-module,.natural-home .layout-widget>.home-applications{height:auto!important;flex:1}.natural-home .layout-widget.widget-applications>.home-applications{min-height:176px}.natural-home .widget-traffic{min-height:var(--natural-chart-height);background:var(--c-panel);border-radius:15px}.natural-home .widget-traffic .network_container{height:var(--natural-chart-height)!important;min-height:var(--natural-chart-height);flex:none}.natural-home .widget-traffic .echart{contain:size;overflow:hidden}.natural-home .connection-business:not(.summary) .connection-addresses{flex:initial;gap:12px;justify-content:flex-start}.natural-home .connection-business:not(.summary){min-height:220px}.natural-home .network-business-card.summary{min-height:148px}.natural-home .direct-empty-slot{min-height:148px;height:100%}.natural-home .native-business-surface .system-overview{min-height:148px}.natural-home .ordered-card>.compact-preview{min-height:148px}.natural-home .widget-traffic[data-chart-stretch]{height:100%;min-height:320px}.natural-home .widget-traffic[data-chart-stretch] .network_container{height:100%!important;flex:1;min-height:320px}.natural-home .compact-ports{padding:14px;min-height:136px!important}.natural-home .compact-ports .interface-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.natural-home .compact-ports .interface-list>button{display:grid;grid-template-columns:16px minmax(0,1fr) auto;border:1px solid var(--c-line);border-radius:6px;padding:8px;gap:4px 6px;align-items:center;align-content:start;overflow:hidden}.natural-home .compact-ports .interface-link-mark{grid-column:1;grid-row:1;width:16px;height:16px;border-radius:0;background:none}.natural-home .compact-ports .interface-name,.natural-home .compact-ports .interface-link-state{display:contents}.natural-home .compact-ports .interface-name strong{grid-column:2;grid-row:1;font-size:14px}.natural-home .compact-ports .interface-name small{grid-column:1/3;grid-row:2;margin:0;font-size:12px}.natural-home .compact-ports .interface-link-state strong{grid-column:3;grid-row:1}.natural-home .compact-ports .interface-link-state small{grid-column:3;grid-row:2;margin:0;overflow-wrap:anywhere}.natural-home .compact-ports .interface-list>button>svg{display:none}.natural-home .compact-ports footer{min-height:0;padding-top:8px}.natural-home .compact-ports footer>small{display:block;font-size:12px;max-width:100%}.natural-home .compact-ports .interface-link-state strong,.natural-home .compact-ports .interface-link-state small{font-size:12px}@container (max-width:300px){.natural-home .compact-ports .interface-list{grid-template-columns:minmax(0,1fr)}}.natural-home .native-remote .path{gap:8px;min-width:0}.natural-home .native-remote .path>.configure{flex:1;min-width:0;width:auto;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.natural-home .device-header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.natural-home .device-header-actions>.module-more{display:flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--c-line);border-radius:6px;background:none;color:var(--c-accent);font-size:12px;white-space:nowrap}.natural-home .canvas-module>header>div.device-header-actions{width:auto;flex:none}@media(pointer:coarse){.natural-home .native-business-surface .btn_settings,.natural-home .network-header-actions>button,.natural-home .system-overview-primary,.natural-home .device-header-actions>.module-more{min-height:44px;box-sizing:border-box;align-items:center}}.natural-home .ordered-column{position:relative}.natural-home .row-stack-grip,.natural-home .row-bottom-grip{position:absolute;z-index:39;width:72px;height:44px;min-height:44px;box-sizing:border-box;padding:0!important;background:transparent!important;color:var(--c-accent);cursor:row-resize;touch-action:none;display:grid;place-items:center;left:50%;transform:translate(-50%,-50%);border:0}.natural-home .row-stack-grip>span,.natural-home .row-bottom-grip>span{display:grid;place-items:center;width:44px;height:16px;border:1px solid var(--c-line);border-radius:7px;background:var(--c-panel);box-shadow:0 2px 8px #0001;line-height:8px;letter-spacing:3px;font-size:14px}.natural-home .row-bottom-grip{top:100%}.natural-home .row-bottom-grip>span{width:56px;background:var(--c-soft);border-color:var(--c-accent)}.natural-home .row-stack-grip:hover>span,.natural-home .row-bottom-grip:hover>span{border-color:var(--c-accent)}.natural-home .row-size-hint{position:absolute;z-index:40;bottom:14px;left:14px;max-width:calc(100% - 28px);padding:7px 10px;border:1px solid var(--c-line);border-radius:8px;background:var(--c-panel);color:var(--c-muted);font-size:12px;pointer-events:none;box-shadow:0 2px 10px #0001}.natural-home .ordered-row[data-size-measuring]{height:auto!important;min-height:0!important}.natural-home .ordered-row[data-size-measuring]>.ordered-column{grid-template-rows:max-content!important;grid-auto-rows:max-content!important;align-self:start!important}.natural-home .ordered-row[data-size-measuring] .ordered-card{height:auto!important;align-self:start!important}.natural-home .ordered-row[data-size-measuring] .widget-traffic{height:auto!important;min-height:var(--natural-chart-height)!important}.natural-home .ordered-row[data-size-measuring] .widget-traffic .network_container{height:var(--natural-chart-height)!important;min-height:var(--natural-chart-height)!important;flex:none!important}:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper){--widget-more-width:24px;--widget-more-height:28px;--widget-more-border:0;--widget-more-radius:0 3px 3px 0;--widget-more-font:18px/1 Arial;display:inline-flex;align-items:stretch;gap:0;flex:none;min-height:30px;box-sizing:border-box;border:1px solid var(--c-line,var(--btn-border-color));border-radius:4px;background:var(--c-panel,var(--card-bg-color));color:var(--c-text,var(--app-container_title-color))}:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper)>.settings-btn{display:flex;align-items:stretch}:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper)>button,:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper)>.settings-btn>.btn_settings{display:flex;align-items:center;justify-content:center;gap:6px;min-height:28px;box-sizing:border-box;border:0;border-radius:3px 0 0 3px;margin:0;padding:6px 12px!important;background:transparent;color:inherit;cursor:pointer;font-family:var(--home-font-family,Arial,"Microsoft YaHei",sans-serif);font-size:var(--home-body-size,14px)!important;line-height:1;white-space:nowrap}:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper)>.widget-menu{border-left:1px solid var(--c-line,var(--btn-border-color));align-self:stretch}:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper)>.widget-menu>.widget-menu-trigger{flex:1}:is(.natural-home,.network-dialog) .widget-action-group>button:only-child{border-radius:3px}:is(.natural-home,.network-dialog) .widget-action-group>button:hover,:is(.natural-home,.network-dialog) .settings-btn>.btn_settings:hover{background:var(--c-soft)}:is(.natural-home,.network-dialog) .settings-btn>.btn_settings>svg{width:16px!important;height:16px!important;margin:0!important;flex:none;color:inherit!important}:is(.natural-home,.network-dialog) .settings-btn>.btn_settings:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}@media(pointer:coarse){:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper){--widget-more-width:44px;--widget-more-height:44px;min-height:46px}:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper)>button,:is(.natural-home,.network-dialog) :is(.widget-action-group,.native-business-surface:not(.unbounded):not(.native-compact)>.reusable-card>.card-header>.settings-wrapper)>.settings-btn>.btn_settings{min-height:44px}}.natural-home{--home-widget-radius:10px;--home-widget-padding-block:20px;--home-widget-padding-inline:14px;--home-widget-icon-size:20px;--home-widget-header-gap:12px}.natural-home .layout-widget[data-presentation=summary]{--home-widget-padding-block:14px}.natural-home .layout-widget :is(.network-business-card,.canvas-module,.home-applications,.native-summary,.compact-preview,.network_container,.native-read-state,.native-business-surface>.reusable-card){border:1px solid var(--c-line);border-radius:var(--home-widget-radius);padding:var(--home-widget-padding-block) var(--home-widget-padding-inline)!important;background:var(--c-panel);box-sizing:border-box;color:var(--c-text)}.natural-home .layout-widget.widget-traffic{border-radius:var(--home-widget-radius)}.natural-home .layout-widget :is(.card-header,.network-business-card>header,.canvas-module>header,.applications-heading,.native-summary>header,.compact-preview>header){gap:10px;align-items:center}.natural-home .layout-widget :is(.card-header .left,.canvas-module>header>div:first-child,.applications-heading>div:first-child,.native-summary h2,.compact-preview h2){display:flex;align-items:center;gap:8px;min-width:0}.natural-home .layout-widget :is(.card-header .title,.network-business-card h2,.canvas-module>header h2,.applications-heading h2,.native-summary h2,.compact-preview h2){font-family:var(--home-font-family);font-size:var(--home-title-size)!important;font-weight:600;line-height:1.25;margin:0;min-width:0;overflow-wrap:anywhere}.natural-home .layout-widget[data-presentation=summary] :is(.card-header .title,.network-business-card h2,.native-summary h2,.compact-preview h2){font-size:var(--home-summary-title-size)!important}.natural-home .layout-widget :is(.card-header .left>svg,.network-business-card h2>svg,.canvas-module>header>div:first-child>svg,.applications-heading>div:first-child>svg,.native-summary h2>svg,.compact-preview h2>svg,.network_container .title_box>.display_flex>svg){width:var(--home-widget-icon-size);height:var(--home-widget-icon-size);flex:none}.natural-home .layout-widget :is(.canvas-module>header,.applications-heading){margin-bottom:var(--home-widget-header-gap)!important}.natural-home .layout-widget .connection-status{margin-top:var(--home-widget-header-gap)}.natural-home .layout-widget .native-summary>p:first-of-type{margin-top:var(--home-widget-header-gap)}.natural-home .layout-widget .native-summary>header{flex-wrap:wrap}.natural-home .traffic-header-actions{position:absolute;top:20px;right:14px}.natural-home .traffic-header-actions>.layout-speed{position:static;height:auto;min-height:28px;border:0!important;font-size:var(--home-body-size)!important;padding:6px 12px!important;color:var(--c-text)!important}.natural-home .layout-widget.widget-traffic .network_tag{margin-right:90px}.natural-home .layout-widget .applications-actions.widget-action-group{align-items:stretch}.natural-home .layout-widget .applications-actions.widget-action-group>button{min-height:28px}.natural-home .layout-widget .applications-actions.widget-action-group .widget-menu-trigger{min-width:var(--widget-more-width);min-height:var(--widget-more-height)}.natural-home .layout-widget .applications-heading{min-height:30px}@media(max-width:768px){.natural-home{--home-widget-radius:6px;--home-widget-padding-block:10px;--home-widget-padding-inline:10px}.natural-home .layout-widget[data-presentation=summary]{--home-widget-padding-block:10px}.natural-home .traffic-header-actions{top:14px;right:10px}}@media(pointer:coarse){.natural-home .traffic-header-actions>.layout-speed,.natural-home .layout-widget .applications-actions.widget-action-group>button{min-height:44px}.natural-home .layout-widget.widget-traffic .network_container .title_box{min-height:46px;box-sizing:border-box;align-items:center}.natural-home .layout-widget.widget-traffic .network_container{min-height:330px}}.ordered-home.natural-home{--c-bg:#f3f5f7;--c-panel:#fff;--c-soft:#f5f7fa;--c-hover:#edf2f8;--c-text:#253247;--c-muted:#5b687a;--c-line:#e1e6ed;--c-accent:#42639e;--c-good:#22745c;--c-warning:#8d601a;--c-shadow:none;--home-surface-inset:#f6f8fa;--home-option:#f5f7fa;--home-option-selected:#edf3fc;--home-option-border:#5274ae;--home-good-soft:#eaf6ef;--home-warning-soft:#fbf3e5;--home-field-border:#dbe2eb;--home-focus:#42639e;--home-flow-down:#08789c;--home-flow-up:#6344d2;--home-icon-blue:#3b63a0;--home-icon-teal:#31796f;--home-icon-violet:#74579c;--home-icon-orange:#995629;--home-icon-blue-bg:#edf2fa;--home-icon-teal-bg:#edf6f3;--home-icon-violet-bg:#f2eff8;--home-motion:.14s}:root[data-darkmode=true] .ordered-home.natural-home,body[data-quickstart-theme=dark] .ordered-home.natural-home{--c-bg:#191d24;--c-panel:#2c2c2c;--c-soft:#343a43;--c-hover:#3b4655;--c-text:#e6ebf3;--c-muted:#b1bdce;--c-line:#364252;--c-accent:#a8c6ff;--c-good:#91d6b8;--c-warning:#e8c184;--home-surface-inset:#30363e;--home-option:#343a43;--home-option-selected:#2c3e59;--home-option-border:#96b8ef;--home-good-soft:#243f36;--home-warning-soft:#443723;--home-field-border:#46566d;--home-focus:#a8c6ff;--home-flow-down:#79d9ed;--home-flow-up:#bca8ff;--home-icon-blue:#b1cafa;--home-icon-teal:#a2d8ca;--home-icon-violet:#d0b9f3;--home-icon-orange:#e7ba91;--home-icon-blue-bg:#2b3b54;--home-icon-teal-bg:#29443e;--home-icon-violet-bg:#3b324e}.ordered-home .layout-widget{--app-container_title-color:var(--c-text);--app-container_status-label_block:var(--c-text);--card-bg-color:var(--c-panel);--border-color:var(--c-line);--btn-border-color:var(--c-line);--flow-span-color:var(--c-muted)}@media(prefers-reduced-motion:reduce){.ordered-home.natural-home{--home-motion:0ms}}.ordered-home .layout-widget .native-business-surface .content{color:var(--c-text)}.ordered-home .layout-widget .native-business-surface .content a{color:var(--c-accent)}.ordered-home .layout-widget .native-business-surface .content .tab>.item{border:1px solid transparent;border-radius:8px;background:var(--home-option);color:var(--c-text);transition:background-color var(--home-motion),border-color var(--home-motion)}.ordered-home .layout-widget .native-business-surface .content .tab>.item.active{border-color:var(--home-option-border);background:var(--home-option-selected)}.ordered-home .layout-widget .native-business-surface .content .tab>.item:hover{background:var(--c-hover)}.ordered-home .layout-widget .native-business-surface .content .tab>.item:is(.cloud,.memory,.network)>.title{color:var(--c-text);font-weight:500}.ordered-home .layout-widget .native-business-surface .content .tab>.item:is(.cloud,.memory,.network)>span{color:var(--c-muted)}.ordered-home .layout-widget :is(button,a,[role=button],summary):focus-visible{outline:2px solid var(--home-focus)!important;outline-offset:3px}.ordered-home .layout-widget :is(.widget-action-group,.settings-wrapper) :is(button,.btn_settings){transition:background-color var(--home-motion),color var(--home-motion)}.ordered-home .layout-widget :is(.native-sharing,.native-docker,.native-downloads,.native-remote) .content{margin-top:16px;margin-bottom:0}.ordered-home .layout-widget .native-business-surface .content .tab{gap:8px;margin-bottom:16px;align-items:stretch}.ordered-home .layout-widget .native-business-surface .content .tab>.item{display:grid;grid-template-rows:24px minmax(1.4em,1fr) auto;justify-items:center;gap:4px;padding:12px 8px;min-width:0;text-align:center}.ordered-home .layout-widget .native-business-surface .content .tab>.item>.title{margin:0;max-width:100%;line-height:1.4;overflow-wrap:anywhere;align-self:center}.ordered-home .layout-widget .native-business-surface .content .tab>.item>svg{width:24px;height:24px;margin:0}.ordered-home .layout-widget .native-business-surface .content .tab>.item>span{line-height:1.4}.ordered-home .layout-widget :is(.native-sharing,.native-docker,.native-downloads) .content li[class$=-item]{margin:12px 0}.ordered-home .layout-widget :is(.native-sharing,.native-docker,.native-downloads) .content :is([class*=-item_name],[class*=-item_value]){min-width:0;white-space:normal;overflow:visible;overflow-wrap:anywhere}.ordered-home .layout-widget .native-sharing .content .tit{font-size:var(--home-body-size);font-weight:500;color:var(--c-muted)}.ordered-home .layout-widget .native-sharing .content li:is(.linkease-item,.webdav-item,.sambas-item,.samba-item){display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:8px 16px;align-items:baseline;margin:0;padding:8px 0}.ordered-home .layout-widget .native-sharing .content :is([class*=-item_name],[class*=-item_value]){width:auto;max-width:none;padding:0;line-height:1.5}.ordered-home .layout-widget .native-sharing .content [class*=-item_name]{color:var(--c-muted)}.ordered-home .layout-widget .native-sharing .content [class*=-item_value]{color:var(--c-text)}.ordered-home .layout-widget .native-sharing .content :is(.linkease-item,.webdav-item):first-child,.ordered-home .layout-widget .native-sharing .content>.webdav-item:first-of-type,.ordered-home .layout-widget .native-sharing .sambas-item:first-child{padding-top:0;padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--c-line)}.ordered-home .layout-widget .native-sharing .content :is(.sambas-item:has(.tit),.samba-item){grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 8px}.ordered-home .layout-widget .native-sharing .sambas-item:has(.tit)>div{max-width:none}.ordered-home .layout-widget .native-sharing .sambas-item:has(.tit){background:var(--home-surface-inset);border-radius:6px}.ordered-home .layout-widget .native-sharing .sambas-item:has(.tit)>.tit{color:var(--c-muted)}.ordered-home .layout-widget .native-sharing .samba-item{border-bottom:1px solid var(--c-line)}.ordered-home .layout-widget .native-sharing .samba-item:last-child{border-bottom:0}.ordered-home .layout-widget .native-sharing .samba-item_name{color:var(--c-text)!important;font-variant-numeric:tabular-nums}.ordered-home .layout-widget .native-sharing .content .configure{padding:0}.ordered-home .layout-widget .native-sharing .content .configure.enabel{color:var(--c-accent);text-decoration:underline;text-underline-offset:3px}.ordered-home .layout-widget .native-sharing .app-container_linkease>div{border-top:1px solid var(--c-line);margin-top:12px;padding-top:12px;line-height:1.5}.ordered-home .layout-widget .native-system .content{padding:0;margin:16px 0 0}.ordered-home .layout-widget .native-system .content .chart_box{padding-bottom:16px;margin-bottom:16px;border-color:var(--c-line)}.ordered-home .layout-widget .native-system .content .chart_box>.chart>div:last-child{color:var(--c-muted);line-height:1.5}.ordered-home .layout-widget .native-system .center-label{color:var(--c-text)!important;font-variant-numeric:tabular-nums;font-size:22px;line-height:1.2;font-weight:500}.ordered-home .layout-widget .native-system .center-icon{margin-bottom:8px}.ordered-home .layout-widget .native-business-surface .content .tab>.item.cloud{--home-service-icon:var(--home-icon-blue)}.ordered-home .layout-widget .native-business-surface .content .tab>.item.memory{--home-service-icon:var(--home-icon-teal)}.ordered-home .layout-widget .native-business-surface .content .tab>.item.network{--home-service-icon:var(--home-icon-violet)}.ordered-home .layout-widget .native-downloads .content .tab>.item.cloud{--home-service-icon:var(--home-icon-orange)}.ordered-home .layout-widget .native-business-surface .content .tab>.item>svg{color:var(--home-service-icon)}.ordered-home .layout-widget .native-business-surface .content .tab>.item>svg [fill]:not([fill=none]){fill:currentColor}.ordered-home .layout-widget .native-business-surface .content .tab>.item>svg [stroke]:not([stroke=none]){stroke:currentColor}.ordered-home .layout-widget .native-remote .info .path .item_btn{color:var(--c-accent);border-color:var(--home-field-border)}.ordered-home .layout-widget.widget-traffic .speed_item>span{color:var(--c-muted)!important}.ordered-home .layout-widget.widget-traffic .speed_item>div{font-weight:500;font-variant-numeric:tabular-nums}.ordered-home .layout-widget.widget-traffic .speed_item:first-child>div{color:var(--home-flow-down)!important}.ordered-home .layout-widget.widget-traffic .speed_item:last-child>div{color:var(--home-flow-up)!important}.ordered-home .layout-widget.widget-traffic .network_tag .tag_dn{background:var(--home-flow-down)!important}.ordered-home .layout-widget.widget-traffic .network_tag .tag_up{background:var(--home-flow-up)!important}.ordered-home .layout-widget .connection-business:not(.summary) .connection-uptime-badge.normal{color:var(--c-muted);background:var(--c-soft)}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses{flex:none;justify-content:flex-start;gap:12px}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses dt{color:var(--c-muted)}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses dd{color:var(--c-text);margin-top:6px}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses dd>span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.5}.ordered-home .layout-widget .connection-business:not(.summary) .connection-ip-tag{background:var(--home-surface-inset);color:var(--c-muted);border-color:var(--c-line)}.ordered-home .layout-widget .connection-addresses [data-address-value]{font-variant-numeric:tabular-nums}.ordered-home .layout-widget .interface-link-mark{background:var(--c-soft)}.ordered-home .layout-widget .compact-ports .interface-list>button{background:var(--home-surface-inset);border-color:var(--c-line)}.ordered-home .layout-widget .interface-name strong{font-weight:500}.ordered-home .layout-widget .interface-link-state{font-variant-numeric:tabular-nums}.ordered-home .layout-widget .canvas-devices>button{background:transparent;border-color:var(--c-line)}.ordered-home .layout-widget .canvas-devices>button:hover{background:var(--c-soft);border-color:var(--home-option-border)}.ordered-home .layout-widget .canvas-devices .device-scene-icon{background:var(--home-surface-inset);border-color:var(--c-line)}.ordered-home .layout-widget .canvas-devices strong{font-weight:500}.ordered-home .layout-widget .canvas-devices small{color:var(--c-muted)}.ordered-home .layout-widget .home-applications .application-icon{background:var(--home-icon-blue-bg);color:var(--home-icon-blue)}.ordered-home .layout-widget .home-applications .application-icon.teal{background:var(--home-icon-teal-bg);color:var(--home-icon-teal)}.ordered-home .layout-widget .home-applications .application-icon.violet{background:var(--home-icon-violet-bg);color:var(--home-icon-violet)}.ordered-home .layout-widget .home-applications .applications-favorites strong{font-weight:500}.ordered-home .layout-widget .home-applications .applications-favorites>button{transition:background-color var(--home-motion),color var(--home-motion)}.ordered-home .layout-widget .native-storage .content>.item{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;padding:12px 0;margin-top:0}.ordered-home .layout-widget .native-storage .content>.item:first-of-type{padding-bottom:12px!important}.ordered-home .layout-widget .native-storage .content>.line{background:var(--c-line)}.ordered-home .layout-widget .native-storage .content .item>.info{min-width:0}.ordered-home .layout-widget .native-storage .content .item>.info>.name{margin:0;min-height:24px}.ordered-home .layout-widget .native-storage .content .item>.info>.schedule{margin-top:12px}.ordered-home .layout-widget .native-storage .content .disk-item{margin:0 0 16px}.ordered-home .layout-widget .native-storage .content .disk-item:last-child{margin-bottom:0}.ordered-home .layout-widget .native-storage .content .disk-item_name{max-width:100%;min-width:0;padding:0 0 8px;white-space:normal;overflow:visible;overflow-wrap:anywhere}.ordered-home .layout-widget .native-storage .content .disk-item_name>span{color:var(--c-muted);line-height:1.5}.ordered-home .layout-widget .native-storage .content :is(.disk_value,.disk-item_value){min-width:0}.ordered-home .layout-widget .native-storage .content .disk-item .disk_value .disk-item_value .value-data{white-space:normal}.ordered-home .layout-widget .native-storage .content .disk-item .disk_value{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:12px;align-items:center}.ordered-home .layout-widget .native-storage .content .disk-item .disk-item_value>.value-data{display:grid;gap:8px}.ordered-home .layout-widget .native-storage .content .disk-item .value-data>div{margin:0;flex-wrap:wrap;gap:6px;font-variant-numeric:tabular-nums}.ordered-home .layout-widget .native-storage .content .disk-item .disk_icon{padding:0;gap:8px;justify-content:flex-end;min-width:0}.ordered-home .layout-widget .native-storage .content .disk_icon>:is(.disk_infoicon,.tooltip-trigger){display:inline-flex;align-items:center;justify-content:center;width:20px;min-height:24px;margin:0;flex:none}.ordered-home .layout-widget .native-storage .disk_infoicon>svg{color:var(--c-muted)}.ordered-home .layout-widget .native-storage .disk_infoicon>svg [stroke]:not([stroke=none]){stroke:currentColor}.ordered-home .layout-widget .native-storage .content .disk-item.load .value-data>button{width:auto;text-align:left;line-height:1.5}.ordered-home .layout-widget .native-storage .progress-bar{height:6px!important;border-radius:99px!important;background-color:var(--c-line)!important;box-shadow:none}.ordered-home .layout-widget .native-storage .progress-fill{border-radius:99px!important}.ordered-home .layout-widget .native-storage .content .item .info .name>div{font-weight:500}.ordered-home .layout-widget .native-storage .content .icon_box{background:var(--home-icon-blue-bg)}.ordered-home .layout-widget .native-storage .disk-item_name,.ordered-home .layout-widget .native-storage .value-data{font-variant-numeric:tabular-nums}.ordered-home .layout-widget .card-header :is(.left,.settings-wrapper) svg{color:var(--c-muted)}.ordered-home .layout-widget .card-header :is(.left,.settings-wrapper) svg [fill]:not([fill=none]){fill:currentColor}.ordered-home .layout-widget .card-header :is(.left,.settings-wrapper) svg [stroke]:not([stroke=none]){stroke:currentColor}.ordered-home .layout-widget .native-business-surface:is(.native-downloads,.native-docker) .content span.configure.enabel{color:var(--c-muted)}.ordered-home .layout-widget .native-business-surface.native-storage .disk-item.load .disk_value .disk-item_value .value-data>button{color:var(--c-accent)}.ordered-home .layout-widget :is(.native-storage,.native-docker) .tooltip-trigger .tooltip-text.tooltip-top{left:auto;right:0;transform:none;box-sizing:border-box;width:max-content;max-width:min(var(--home-warning-width,260px),calc(100vw - 48px))}.ordered-home .layout-widget .native-storage{--home-warning-width:200px}.ordered-home .layout-widget :is(.native-storage,.native-docker) .tooltip-trigger .tooltip-text :is(.disk_dir_tip,.docker_dir_tip){min-width:0;max-width:100%;overflow-wrap:anywhere}.ordered-home .layout-widget :is(.native-storage,.native-docker) .tooltip-trigger .tooltip-top:after{left:auto;right:8px;margin-left:0}@media(pointer:coarse){.ordered-home .layout-widget :is(.native-sharing,.native-downloads,.native-remote) .content a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;max-width:100%;overflow-wrap:anywhere}.ordered-home .layout-widget .native-sharing .configure.enabel{display:inline-flex;align-items:center;min-height:44px;min-width:44px}.ordered-home .layout-widget .native-docker .input-switch{display:inline-flex;align-items:center;min-height:44px}.ordered-home .layout-widget .connection-addresses [data-reveal]{min-height:44px;min-width:44px;padding:6px}.ordered-home .layout-widget .native-storage .content .disk-item .disk_value{grid-template-columns:minmax(0,1fr)}.ordered-home .layout-widget .native-storage .content .disk_icon>:is(.disk_infoicon,.tooltip-trigger){width:44px;min-height:44px}.ordered-home .layout-widget .native-storage .content .disk-item.load .value-data>button{min-height:44px}}.ordered-home .layout-widget .native-system .system-composition{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:center}.ordered-home .layout-widget .native-system .system-composition .chart_box{display:flex;justify-content:center;gap:12px;margin:0;padding:0;border:0}.ordered-home .layout-widget .native-system .system-composition .chart_box>.chart{flex:0 0 150px!important}@container (min-width:840px){.ordered-home .layout-widget .native-system .system-composition{grid-template-columns:minmax(480px,1.35fr) minmax(0,1fr);gap:24px}.ordered-home .layout-widget .native-system .system-composition .system-facts{border-left:1px solid var(--c-line);padding-left:24px}}.ordered-home .layout-widget .native-business-surface .content .tab{gap:8px;margin-bottom:20px}.ordered-home .layout-widget .native-business-surface .content .tab>button.item{appearance:none;font:inherit;color:inherit;cursor:pointer;min-height:56px;display:grid;grid-template-columns:20px minmax(0,1fr);grid-template-rows:minmax(1.4em,1fr) auto;gap:2px 8px;justify-items:start;text-align:left;padding:8px;border-radius:6px}.ordered-home .layout-widget .native-business-surface .content .tab>button.item>svg{grid-row:1/3;grid-column:1;width:20px;height:20px;align-self:center}.ordered-home .layout-widget .native-business-surface .content .tab>button.item>.title{grid-column:2;grid-row:1;text-align:left}.ordered-home .layout-widget .native-business-surface .content .tab>button.item>span{grid-column:2;grid-row:2}.ordered-home .layout-widget .native-business-surface .content .tab>button.item:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}.ordered-home .layout-widget .native-sharing .content li:is(.linkease-item,.webdav-item){grid-template-columns:minmax(0,1fr);gap:6px;padding:12px 0}.ordered-home .layout-widget .native-sharing .content li:is(.linkease-item,.webdav-item):first-child,.ordered-home .layout-widget .native-sharing .content>.webdav-item:first-of-type{grid-template-columns:minmax(0,1fr) auto;padding-top:0;padding-bottom:12px;margin-bottom:4px}.ordered-home .layout-widget .native-sharing .content li:is(.linkease-item,.webdav-item):not(:first-child)>[class*=-item_value]{line-height:1.65}.ordered-home .layout-widget .native-sharing .app-container_linkease>div{margin-top:8px}.ordered-home .layout-widget .native-sharing .samba-item>[data-label]:before{display:none;content:attr(data-label);color:var(--c-muted);font-size:var(--home-caption-size);line-height:1.5;margin-bottom:4px}.ordered-home .layout-widget .native-sharing .content .app-container_samba>.sambas-item:first-child{grid-template-columns:minmax(0,1fr) auto}@container (max-width:440px){.ordered-home .layout-widget .native-business-surface .content .tab>button.item{grid-template-columns:minmax(0,1fr);grid-template-rows:18px minmax(1.4em,1fr) auto;gap:2px;justify-items:center;text-align:center;padding:8px 4px!important}.ordered-home .layout-widget .native-business-surface .content .tab>button.item>svg{grid-column:1;grid-row:1;width:18px;height:18px}.ordered-home .layout-widget .native-business-surface .content .tab>button.item>.title{grid-column:1;grid-row:2;text-align:center}.ordered-home .layout-widget .native-business-surface .content .tab>button.item>span{grid-column:1;grid-row:3}.ordered-home .layout-widget .native-sharing .content .sambas-item:has(.tit){display:none}.ordered-home .layout-widget .native-sharing .content .app-container_samba .samba-item{grid-template-columns:minmax(0,1fr);gap:10px;padding:12px 0}.ordered-home .layout-widget .native-sharing .samba-item>[data-label]:before{display:block}}.ordered-home .layout-widget .connection-business:not(.summary) .connection-status{padding-bottom:8px;margin-bottom:0}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses{gap:0;margin-top:0}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses>div{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:8px;min-height:40px;padding:7px 0;box-sizing:border-box}.ordered-home .layout-widget .connection-business .connection-address-group{border-bottom:1px solid var(--c-line)}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses dt{display:block;min-width:0;overflow-wrap:anywhere}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses dd{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;margin:0;padding:0;min-width:0}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses .connection-address-meta{font-size:var(--home-caption-size);line-height:1.4;color:var(--c-muted);justify-self:end;max-width:110px;overflow-wrap:anywhere;grid-column:3}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses .connection-reveal{display:grid;place-items:center;min-width:24px;min-height:24px;margin:0;padding:2px;color:var(--c-muted);border:0;border-radius:4px;grid-column:2}.ordered-home .layout-widget .connection-business .connection-reveal>svg{width:16px;height:16px}.ordered-home .layout-widget .connection-business .connection-reveal:hover{background:var(--c-soft);color:var(--c-accent)}@container (max-width:340px){.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses>div{grid-template-columns:76px minmax(0,1fr);gap:6px}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses dd{column-gap:4px}.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses .connection-address-meta{max-width:82px}}@media(pointer:coarse){.ordered-home .layout-widget .connection-business:not(.summary) .connection-addresses .connection-reveal{min-width:44px;min-height:44px;padding:6px}}.ordered-home .layout-widget .native-storage .content>.item{grid-template-columns:24px minmax(0,1fr);gap:8px 10px}.ordered-home .layout-widget .native-storage .content>.item>.info{display:contents}.ordered-home .layout-widget .native-storage .content>.item>.icon_box{grid-column:1;grid-row:1;align-self:center}.ordered-home .layout-widget .native-storage .content>.item>.info>.name{grid-column:2;grid-row:1;align-self:center;min-height:24px}.ordered-home .layout-widget .native-storage .content>.item>.info>.schedule{grid-column:1/-1;margin-top:4px}.ordered-home .layout-widget .native-storage .content .disk-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;margin-bottom:16px}.ordered-home .layout-widget .native-storage .content .disk-item>.disk-item_name{grid-column:1;grid-row:1;padding:0;align-self:center}.ordered-home .layout-widget .native-storage .content .disk-item .disk_value{display:contents}.ordered-home .layout-widget .native-storage .content .disk-item .disk-item_value{grid-column:1/-1;grid-row:2;min-width:0}.ordered-home .layout-widget .native-storage .content .disk-item .disk_icon{grid-column:2;grid-row:1;align-self:center}.ordered-home .layout-widget .native-storage .content .disk-item .disk-item_value>.value-data{gap:8px}.ordered-home .layout-widget .native-storage .content .disk-item.error>.disk-item_value{grid-column:1/-1;grid-row:2}.ordered-home .layout-widget .native-storage .content .disk-item.load .disk-item_value{grid-column:1/-1}@media(pointer:coarse){.ordered-home .layout-widget .native-storage .content .disk-item:has(.disk_icon>:nth-child(2)){grid-template-columns:minmax(0,1fr)}.ordered-home .layout-widget .native-storage .content .disk-item:has(.disk_icon>:nth-child(2)) .disk_icon{grid-column:1;grid-row:3;justify-content:flex-start}.ordered-home .layout-widget .native-storage .content .disk-item:has(.disk_icon>:nth-child(2)) .disk_icon .tooltip-text.tooltip-top{left:0;right:auto}.ordered-home .layout-widget .native-storage .content .disk-item:has(.disk_icon>:nth-child(2)) .disk_icon .tooltip-top:after{left:8px;right:auto}}:is(.ordered-home,.network-dialog).home-semantic-colors{--c-bg:#f3f5f7;--c-panel:#fff;--c-soft:#f5f7fa;--c-hover:#edf2f8;--c-text:#253247;--c-muted:#5b687a;--c-line:#e1e6ed;--c-accent:#155dfc;--c-good:#008236;--c-warning:#946000;--c-error:#b42318;--c-disabled:#697586;--home-surface-inset:#f6f8fa;--home-option:#f5f7fa;--home-option-selected:#f0f5ff;--home-option-border:#7e8ca1;--home-good-soft:#eaf9ef;--home-warning-soft:#fff5e5;--home-field-border:#dbe2eb;--home-focus:#155dfc;--home-flow-down:#0876bd;--home-flow-up:#7534d7;--home-icon-blue:#155dfc;--home-icon-teal:#007a74;--home-icon-violet:#8828cc;--home-icon-orange:#c2410c;--home-icon-blue-bg:#f1f6ff;--home-icon-teal-bg:#effaf7;--home-icon-violet-bg:#faf3ff;--color-action-bg:#fff;--color-action-line:#dce2ea;--color-action-ink:#3f4b5d;--color-service-blue-bg:#f1f6ff;--color-service-green-bg:#effaf3;--color-service-teal-bg:#effbf9;--color-service-violet-bg:#faf3ff;--color-service-orange-bg:#fff7ed;--color-icon-green:#007e34;--color-icon-cyan:#007e9e;--color-icon-slate:#526078;--color-card-border:#e1e6ed;--color-widget-icon:var(--home-icon-blue)}:root[data-darkmode=true] :is(.ordered-home,.network-dialog).home-semantic-colors,body[data-quickstart-theme=dark] :is(.ordered-home,.network-dialog).home-semantic-colors{--c-bg:#191d24;--c-panel:#2c2c2c;--c-soft:#343a43;--c-hover:#3b4655;--c-text:#e6ebf3;--c-muted:#b1bdce;--c-line:#414b59;--c-accent:#91b9ff;--c-good:#70e2b2;--c-warning:#ffce76;--c-error:#ffaaa3;--c-disabled:#9ba8b9;--home-surface-inset:#30363e;--home-option:#343a43;--home-option-selected:#2c3e59;--home-option-border:#96a6bd;--home-good-soft:#194737;--home-warning-soft:#514024;--home-field-border:#54749f;--home-focus:#a7c7ff;--home-flow-down:#68d6ff;--home-flow-up:#c7a0ff;--home-icon-blue:#91b9ff;--home-icon-teal:#6edbd3;--home-icon-violet:#d1a4ff;--home-icon-orange:#ffb077;--home-icon-blue-bg:#2c3644;--home-icon-teal-bg:#2b3a35;--home-icon-violet-bg:#38303f;--color-service-blue-bg:#2c3644;--color-service-green-bg:#2b3a31;--color-service-teal-bg:#2b3a38;--color-service-violet-bg:#38303f;--color-service-orange-bg:#3d342c;--color-icon-green:#6fdda0;--color-icon-cyan:#76d5ed;--color-icon-slate:#b1bdce;--color-action-bg:#2c2c2c;--color-action-line:#4b5563;--color-action-ink:#c6ceda;--color-card-border:#414b59}:is(.ordered-home,.network-dialog).home-semantic-colors .layout-widget :is(.network_container,.network-business-card,.canvas-module,.home-applications,.native-summary,.compact-preview,.native-business-surface>.reusable-card){background:var(--c-panel);border-color:var(--color-card-border);box-shadow:0 2px 10px #182b480a}:is(.ordered-home,.network-dialog).home-semantic-colors :is(.widget-action-group,.native-business-surface>.reusable-card>.card-header>.settings-wrapper){background:var(--color-action-bg);border-color:var(--color-action-line);color:var(--color-action-ink)}:is(.ordered-home,.network-dialog).home-semantic-colors .applications-save{background:var(--home-icon-blue-bg)!important;color:var(--home-icon-blue)!important}:is(.ordered-home,.network-dialog).home-semantic-colors .traffic-header-actions>.layout-speed{color:var(--color-action-ink)!important}:is(.ordered-home,.network-dialog).home-semantic-colors :is(.widget-action-group,.settings-wrapper) .widget-menu-trigger{color:var(--color-action-ink)!important}:is(.ordered-home,.network-dialog).home-semantic-colors .settings-wrapper{--app-container_title-color:var(--color-action-ink)}:is(.ordered-home,.network-dialog).home-semantic-colors .settings-btn>.btn_settings svg :is([fill="#0a0a0a"],[fill="#000"],[fill="#000000"],[fill=black]){fill:currentColor}:is(.ordered-home,.network-dialog).home-semantic-colors .widget-action-group :is(button,.btn_settings):hover{background:#7c9fe42b}:is(.ordered-home,.network-dialog).home-semantic-colors .inventory-heading>strong{color:var(--c-accent)}:is(.ordered-home,.network-dialog).home-semantic-colors .layout-widget{--color-widget-icon:var(--home-icon-blue)}:is(.ordered-home,.network-dialog).home-semantic-colors [data-layout-card=traffic]{--color-widget-icon:var(--color-icon-cyan)}:is(.ordered-home,.network-dialog).home-semantic-colors :is([data-layout-card=connection],[data-layout-card=downloads],[data-layout-card=remote]){--color-widget-icon:var(--color-icon-green)}:is(.ordered-home,.network-dialog).home-semantic-colors [data-layout-card=sharing]{--color-widget-icon:var(--home-icon-violet)}:is(.ordered-home,.network-dialog).home-semantic-colors :is([data-layout-card=storage],[data-layout-card=system]){--color-widget-icon:var(--color-icon-slate)}:is(.ordered-home,.network-dialog).home-semantic-colors :is(.applications-heading>div:first-child>svg,.canvas-module>header>div:first-child>svg,.network-business-card h2>svg,.card-header .left>svg,.native-summary h2>svg,.compact-preview h2>svg){color:var(--color-widget-icon)}:is(.ordered-home,.network-dialog).home-semantic-colors .card-header .left>svg [fill]:not([fill=none]){fill:currentColor}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item:is(.cloud,.memory,.network){--color-service-soft:var(--color-service-blue-bg);background:var(--color-service-soft)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item.cloud{--home-service-icon:var(--home-icon-blue)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item.memory{--home-service-icon:var(--color-icon-green);--color-service-soft:var(--color-service-green-bg)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item.network{--home-service-icon:var(--home-icon-violet);--color-service-soft:var(--color-service-violet-bg)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-downloads .content .tab>.item.cloud{--home-service-icon:var(--home-icon-orange);--color-service-soft:var(--color-service-orange-bg)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-downloads .content .tab>.item.memory{--home-service-icon:var(--color-icon-slate);--color-service-soft:var(--home-option)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-downloads .content .tab>.item.network{--home-service-icon:var(--home-icon-teal);--color-service-soft:var(--color-service-teal-bg)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-remote .content .tab>.item.network{--home-service-icon:var(--color-icon-slate);--color-service-soft:var(--home-option)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item:is(.cloud,.memory,.network)>.title{color:var(--home-service-icon)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item:is(.cloud,.memory,.network)>span{color:var(--c-muted)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item:is(.cloud,.memory,.network)>svg{color:var(--home-service-icon)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item:is(.cloud,.memory,.network)>svg [fill]:not([fill=none]){fill:currentColor}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item:is(.cloud,.memory,.network)>svg [stroke]:not([stroke=none]){stroke:currentColor}:is(.ordered-home,.network-dialog).home-semantic-colors .native-business-surface .content .tab>.item:hover{background:var(--c-hover)}:is(.ordered-home,.network-dialog).home-semantic-colors .connection-business[data-connection-state=netSuccess] .connection-status-text strong{color:var(--c-good)}:is(.ordered-home,.network-dialog).home-semantic-colors :is(.native-downloads,.native-remote){--color-widget-icon:var(--color-icon-green)}:is(.ordered-home,.network-dialog).home-semantic-colors .native-sharing{--color-widget-icon:var(--home-icon-violet)}:is(.ordered-home,.network-dialog).home-semantic-colors :is(.native-storage,.native-system){--color-widget-icon:var(--color-icon-slate)}:is(.ordered-home,.network-dialog).home-semantic-colors{--qs-card-panel:var(--c-panel);--qs-card-text:var(--c-text);--qs-card-muted:var(--c-muted);--qs-card-line:var(--c-line);--qs-card-soft:var(--c-soft);--qs-card-accent:var(--c-accent);--qs-card-good:var(--c-good);--qs-card-warning:var(--c-warning);--qs-card-error:var(--c-error);--qs-card-focus:var(--home-focus);--qs-card-disabled:var(--c-disabled)}.ordered-home header:before,.ordered-home header:after,.network-dialog>header:before,.network-dialog>header:after{content:none!important;display:none!important;pointer-events:none!important}.ordered-home header,.network-dialog>header{background:transparent!important;color:var(--c-text)!important}.ordered-home :where(button),.network-dialog :where(button){margin:0;padding:0;min-height:0;box-shadow:none;text-shadow:none}.ordered-home .lab-intro h1{padding:0!important;line-height:1.5;margin:0;text-align:left}.ordered-home h2,.network-dialog h2{padding:0!important;border:0;background:transparent;box-shadow:none;letter-spacing:normal;color:var(--c-text)!important}.ordered-home :is(.canvas-module>header h2,.applications-heading h2,.network-business-card h2){line-height:1.25!important}.ordered-home :where(footer){padding:0;text-align:initial;white-space:normal;overflow:visible;font-size:inherit;color:inherit}#maincontent>.container:has(>#app [data-ordered-home]){margin-left:0;margin-right:0;--home-host-inset:20px}.ordered-home[data-v-af0f0c55]{--home-gutter:var(--home-host-inset,20px);padding-left:var(--home-gutter);padding-right:var(--home-gutter);padding-bottom:24px;min-height:0}.ordered-home[data-v-af0f0c55]>:is(.lab-available,.direct-toolbar,.home-config-state){max-width:none}.home-top[data-v-af0f0c55]{margin:0 calc(0px - var(--home-gutter)) 20px;min-width:0;background:var(--primary,#606de8);color:#fff;padding:0 var(--home-gutter)}.home-top-actions[data-v-af0f0c55]{height:32px;display:flex;justify-content:flex-end;align-items:center;gap:16px;color:#fff}.home-top-actions>a[data-v-af0f0c55]{line-height:1.5;font-size:14px}.home-top-actions>.home-module-settings[data-v-af0f0c55]{display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;padding:0;color:inherit}.home-module-settings>svg[data-v-af0f0c55]{width:16px;height:16px}.home-top[data-v-af0f0c55] :focus-visible{outline-color:#fff!important}@media(max-width:600px){#maincontent>.container:has(>#app [data-ordered-home]){--home-host-inset:16px}}@media(max-width:600px),(pointer:coarse){.home-top-actions[data-v-af0f0c55]{height:48px}}@media(pointer:coarse){.home-top-actions>a[data-v-af0f0c55]{display:flex;align-items:center;min-height:44px}.home-top-actions>.home-module-settings[data-v-af0f0c55]{min-width:44px;min-height:44px}}.home-config-state[data-v-05fbd43c]{max-width:1640px;margin:12px auto;padding:4px 6px 4px 14px;border:1px solid var(--c-line);border-radius:8px;color:var(--c-muted);font-size:13px;display:flex;align-items:center;gap:8px}.home-config-message[data-v-05fbd43c]{flex:1;min-width:0;line-height:1.6;overflow-wrap:anywhere}.home-config-actions[data-v-05fbd43c]{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.home-config-state button[data-v-05fbd43c]{min-height:44px;min-width:44px;padding:8px;background:none;border:0;border-radius:6px;color:var(--c-accent);font:inherit;cursor:pointer}.home-config-state button[data-v-05fbd43c]:focus-visible{outline:2px solid var(--c-accent);outline-offset:1px}.home-config-state .home-config-close[data-v-05fbd43c]{flex:none;color:var(--c-muted);display:grid;place-items:center}.home-config-close[data-v-05fbd43c]:hover{background:var(--c-soft)}.home-config-close svg[data-v-05fbd43c]{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}@media(max-width:600px){.home-config-state[data-v-05fbd43c]{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:0 4px}.home-config-actions[data-v-05fbd43c]{grid-column:1;grid-row:2}.home-config-close[data-v-05fbd43c]{grid-column:2;grid-row:1;align-self:start}}#page[data-v-67dfa1ab]{width:100%;padding:1rem;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;align-content:center;max-width:800px;height:100vh;overflow:overlay}#page .title[data-v-67dfa1ab]{width:100%;display:block;text-align:center;font-size:32px;font-family:PingFangSC-Semibold,PingFang SC;font-weight:600;color:#000c;line-height:45px}#page .desc[data-v-67dfa1ab]{width:100%;display:block;font-size:24px;font-family:PingFangSC-Semibold,PingFang SC;font-weight:600;color:#0009;line-height:33px;text-align:center;margin-top:10px}#page div.info[data-v-67dfa1ab]{width:100%;display:block;font-size:1.6em;font-size:16px;margin-left:34px}#page .network-containers[data-v-67dfa1ab]{width:100%;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center;margin:3rem 0 1rem}#page .network-containers .network-container_item[data-v-67dfa1ab]{flex:0 0 100%;position:relative;border-radius:4px;padding:10px;cursor:pointer;max-width:240px;width:240px;height:308px}#page .network-containers .network-container_item a[data-v-67dfa1ab]{position:relative;display:block;width:100%}#page .network-containers .network-container_item a .cover[data-v-67dfa1ab]{position:relative;padding-top:130%;z-index:1}#page .network-containers .network-container_item a .cover .thumbnail[data-v-67dfa1ab]{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;border-radius:8px;overflow:hidden;z-index:1;display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center;background-color:#2dc8fd}#page .network-containers .network-container_item a .cover .thumbnail i[data-v-67dfa1ab]{display:block;font-size:100px;color:#eee}#page .network-containers .network-container_item a .cover .thumbnail span[data-v-67dfa1ab]{display:block;text-align:center;width:100%;color:#eeee;font-size:2em;line-height:1.5;font-size:22px;font-family:PingFangSC-Semibold,PingFang SC;color:#fff;line-height:40px}#page .network-containers .network-container_item:nth-child(9n+1) a .cover .thumbnail[data-v-67dfa1ab]{background:linear-gradient(138deg,#ff6e6b,#ff6966)}#page .network-containers .network-container_item:nth-child(9n+2) a .cover .thumbnail[data-v-67dfa1ab]{background:linear-gradient(145deg,#37d5a9,#42d8b0)}#page .network-containers .network-container_item:nth-child(9n+3) a .cover .thumbnail[data-v-67dfa1ab]{background:linear-gradient(145deg,#549aff,#2c82ff)}#page .network-containers .network-container_item:nth-child(9n+4) a .cover .thumbnail[data-v-67dfa1ab]{background-color:#9b58de}#page .network-containers .network-container_item:nth-child(9n+5) a .cover .thumbnail[data-v-67dfa1ab]{background-color:#297ff3}#page .network-containers .network-container_item:nth-child(9n+6) a .cover .thumbnail[data-v-67dfa1ab]{background-color:#27aa8f}#page .network-containers .network-container_item:nth-child(9n+7) a .cover .thumbnail[data-v-67dfa1ab]{background-color:#f15a4a}#page .network-containers .network-container_item:nth-child(9n+8) a .cover .thumbnail[data-v-67dfa1ab]{background-color:#439c07}@keyframes bganimation-67dfa1ab{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-67dfa1ab{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-67dfa1ab{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-67dfa1ab]{animation:rotateEnter-67dfa1ab .7s;position:relative}.rotate-leave-active[data-v-67dfa1ab]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-67dfa1ab]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes bganimation-f91feaff{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-f91feaff{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-f91feaff{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-f91feaff]{animation:rotateEnter-f91feaff .7s;position:relative}.rotate-leave-active[data-v-f91feaff]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-f91feaff]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page[data-v-f91feaff]{width:100%;padding:1rem;margin:100px auto 0;display:flex;flex-wrap:wrap;justify-content:flex-start;max-width:600px}#page h2.title[data-v-f91feaff]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0 0 10px;text-align:left;background-color:#f4f5f7;box-shadow:none}#page h3.desc[data-v-f91feaff]{width:100%;display:block;color:#666;font-size:1.2em;padding:0;margin:0;text-align:left;background-color:#f4f5f7;box-shadow:none}#page .network-message[data-v-f91feaff]{margin:.5rem 0}#page .network-message li[data-v-f91feaff]{margin:.5rem 0;font-size:20px;color:#000;font-weight:550}#page .network-message li span[data-v-f91feaff]{color:red}#page .network-message li a[data-v-f91feaff]{color:#00f}#page form[data-v-f91feaff]{display:block;width:100%;margin:3rem 0}#page form label[data-v-f91feaff]{display:block;width:100%;margin:1rem 0}#page form label .label-key[data-v-f91feaff]{display:block;width:100%;font-size:1.3em;margin-bottom:.5rem}#page form label .label-key span[data-v-f91feaff]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#page form label .label-key span[data-v-f91feaff]:before{content:"*";color:#f56c6c;margin-right:4px}#page form label input[data-v-f91feaff]{width:100%;display:block;height:42px}#page .chose_dhcp[data-v-f91feaff]{height:1em;font-size:1.3em}#page .chose_dhcp .dhcp_info[data-v-f91feaff]{margin-left:10px;user-select:none}#page .msg[data-v-f91feaff]{width:100%;display:block;height:36px;line-height:36px;color:red;font-size:1.3em}#page .btns[data-v-f91feaff]{width:100%;margin-top:3rem}#page .btns button[data-v-f91feaff]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-dc3ea120{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-dc3ea120{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-dc3ea120{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-dc3ea120]{animation:rotateEnter-dc3ea120 .7s;position:relative}.rotate-leave-active[data-v-dc3ea120]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-dc3ea120]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page[data-v-dc3ea120]{width:100%;padding:1rem;margin:100px auto 0;display:flex;flex-wrap:wrap;justify-content:flex-start;max-width:600px}#page h2.title[data-v-dc3ea120]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0 0 10px;text-align:left;background-color:#f4f5f7;box-shadow:none}#page h3.desc[data-v-dc3ea120]{width:100%;display:block;color:#666;font-size:1.2em;padding:0;margin:0;text-align:left;background-color:#f4f5f7;box-shadow:none}#page .network-message[data-v-dc3ea120]{margin:.5rem 0}#page .network-message li[data-v-dc3ea120]{margin:.5rem 0;font-size:20px;color:#000;font-weight:550}#page .network-message li span[data-v-dc3ea120]{color:red}#page .network-message li a[data-v-dc3ea120]{color:#00f}#page form[data-v-dc3ea120]{display:block;width:100%;margin:3rem 0}#page form label[data-v-dc3ea120]{display:block;width:100%;margin:1rem 0}#page form label .label-key[data-v-dc3ea120]{display:block;width:100%;font-size:1.3em;margin-bottom:.5rem}#page form label .label-key span[data-v-dc3ea120]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#page form label .label-key span[data-v-dc3ea120]:before{content:"*";color:#f56c6c;margin-right:4px}#page form label input[data-v-dc3ea120],#page form label select[data-v-dc3ea120]{width:100%;display:block;height:42px}#page .chose_dhcp[data-v-dc3ea120]{height:1em;font-size:1.3em}#page .chose_dhcp .dhcp_info[data-v-dc3ea120]{margin-left:10px;user-select:none}#page .msgs[data-v-dc3ea120]{width:100%;display:block;height:36px;line-height:36px;color:red;font-size:1.3em}#page p.msg[data-v-dc3ea120]{width:100%;display:block;color:red;font-size:1em}#page .btns[data-v-dc3ea120]{width:100%;margin-top:3rem}#page .btns button[data-v-dc3ea120]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-c4ce32be{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-c4ce32be{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-c4ce32be{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-c4ce32be]{animation:rotateEnter-c4ce32be .7s;position:relative}.rotate-leave-active[data-v-c4ce32be]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-c4ce32be]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page[data-v-c4ce32be]{width:100%;padding:1rem;margin:100px auto 0;display:flex;flex-wrap:wrap;justify-content:flex-start;max-width:600px}#page h2.title[data-v-c4ce32be]{width:100%;display:block;color:#1e1e1e;font-size:3em;padding:0;margin:0 0 10px;text-align:left;background-color:#f4f5f7;box-shadow:none}#page h3.desc[data-v-c4ce32be]{width:100%;display:block;color:#666;font-size:1.2em;padding:0;text-align:left;background-color:#f4f5f7;box-shadow:none}#page code[data-v-c4ce32be]{background-color:#eee;display:block;width:100%;font-size:1.3em;padding:1rem;line-height:2;margin:2rem 0}#page div.info[data-v-c4ce32be]{width:100%;display:block;margin:1rem 0;font-size:1.3em;text-align:left}#page .msgs[data-v-c4ce32be]{width:100%;display:block;height:36px;line-height:36px;color:red;font-size:1.3em}#page p.msg[data-v-c4ce32be]{width:100%;display:block;color:red;font-size:1em}#page .btns[data-v-c4ce32be]{width:100%;display:block;margin-top:3rem}#page .btns button[data-v-c4ce32be]{display:block;width:100%!important;margin:.5rem 0}#page form[data-v-c4ce32be]{display:block;width:100%;margin:3rem 0}#page form label[data-v-c4ce32be]{display:block;width:100%;margin:1rem 0}#page form label .label-key[data-v-c4ce32be]{display:block;width:100%;font-size:1.3em;margin-bottom:.5rem}#page form label .label-key span[data-v-c4ce32be]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#page form label .label-key span[data-v-c4ce32be]:before{content:"*";color:#f56c6c;margin-right:4px}#page form label input[data-v-c4ce32be],#page form label select[data-v-c4ce32be]{width:100%;display:block;height:42px}.switch_inline[data-v-c4ce32be]{height:1em;font-size:1.3em}.switch_inline .switch_info[data-v-c4ce32be]{margin-left:10px;user-select:none}@keyframes bganimation-fb4bf57d{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-fb4bf57d{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-fb4bf57d{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-fb4bf57d]{animation:rotateEnter-fb4bf57d .7s;position:relative}.rotate-leave-active[data-v-fb4bf57d]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-fb4bf57d]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}p[data-v-fb4bf57d]{line-height:22px;font-size:14px}.label-item[data-v-fb4bf57d]{width:100%;margin:10px 0}.label-item .label-item_key[data-v-fb4bf57d]{width:100%;font-size:14px;color:#999;margin-bottom:6px}.label-item .label-item_key span[data-v-fb4bf57d]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-fb4bf57d]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-fb4bf57d]{width:100%;margin:10px 0}.label-item .label-item_value select[data-v-fb4bf57d],.label-item .label-item_value input[data-v-fb4bf57d]{width:100%;height:36px;line-height:36px;color:#000}.label-item .label-item_value input[data-v-fb4bf57d]::placeholder{color:#999;font-size:12PX}.label-item .label-item_value label[data-v-fb4bf57d]{width:100%;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;margin:.5rem;border-bottom:1px solid #eee;padding-bottom:10px;font-size:14px;color:#666}.label-item .label-item_value label input[type=checkbox][data-v-fb4bf57d]{top:0}.label-item .label-item_tips[data-v-fb4bf57d]{margin-top:10px;color:#666;font-size:14px}.label-item .label-item_tips svg[data-v-fb4bf57d]{vertical-align:top}span.msg-warning[data-v-fb4bf57d]{width:100%;text-align:left;font-size:14px;color:red;display:block;margin:10px 0}.label-message[data-v-fb4bf57d]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-container_body.setup-loading[data-v-fb4bf57d]{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;align-content:center;text-align:center}.actioner-container_body.setup-loading span[data-v-fb4bf57d]{width:100%;display:block;font-size:1.2em;margin-top:1rem;color:#666}.actioner-container_body.setup-error[data-v-fb4bf57d]{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;align-content:center;text-align:center}.actioner-container_body.setup-error svg.icon[data-v-fb4bf57d]{width:100px;height:100px}.actioner-container_body.setup-error span[data-v-fb4bf57d]{width:100%;display:block;font-size:1.4em;color:#ff6b6b}.actioner-container_body.setup-success[data-v-fb4bf57d]{display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center}.actioner-container_body.setup-success svg.icon[data-v-fb4bf57d]{width:100px;height:100px}.actioner-container_body.setup-success .body-title[data-v-fb4bf57d]{width:100%;display:block;color:#1e1e1e;font-size:2em;padding:0;margin:1rem 0;text-align:center}.actioner-container_body.setup-success .body-tips[data-v-fb4bf57d]{text-align:center}.actioner-container_body.setup-success .body-info[data-v-fb4bf57d]{color:#666;font-size:1.3em;margin:1rem 0;width:100%;text-align:center}.actioner-container_body.setup-success .body-info span[data-v-fb4bf57d]{display:block}.actioner-container_body.setup-success .body-tips[data-v-fb4bf57d]{margin:1rem 0;display:block;width:100%}.actioner-container_body.setup-success .body-btns[data-v-fb4bf57d]{width:100%;margin-top:3rem}.actioner-container_body.setup-success .body-btns button[data-v-fb4bf57d]{display:block;width:100%!important;margin:.5rem 0}@keyframes bganimation-4d9db7d4{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-4d9db7d4{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-4d9db7d4{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-4d9db7d4]{animation:rotateEnter-4d9db7d4 .7s;position:relative}.rotate-leave-active[data-v-4d9db7d4]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-4d9db7d4]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}textarea[data-v-4d9db7d4]{display:block;width:100%;height:100%;border:none;resize:none}@keyframes bganimation-a6a43b80{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-a6a43b80{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-a6a43b80{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-a6a43b80]{animation:rotateEnter-a6a43b80 .7s;position:relative}.rotate-leave-active[data-v-a6a43b80]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-a6a43b80]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.label-item[data-v-a6a43b80]{width:100%;margin:10px 0}.label-item .label-item_key[data-v-a6a43b80]{width:100%;font-size:14px;color:#999;margin-bottom:6px}.label-item .label-item_key span[data-v-a6a43b80]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-a6a43b80]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-a6a43b80]{width:100%}.label-item .label-item_value select[data-v-a6a43b80]{width:100%;height:36px;line-height:36px;color:#000}.label-item .label-item_value label[data-v-a6a43b80]{width:100%;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;margin:.5rem;border-bottom:1px solid #eee;padding-bottom:10px;font-size:14px;color:#666}.label-item .label-item_value label input[type=radio][data-v-a6a43b80]{top:0;margin:0}.label-item .label-item_tips[data-v-a6a43b80]{margin-top:10px;color:#666;font-size:14px}.label-item .label-item_tips svg[data-v-a6a43b80]{vertical-align:top}span.msg-warning[data-v-a6a43b80]{width:100%;text-align:left;font-size:14px;color:red;display:block;margin:10px 0}@keyframes bganimation-f58fb3c5{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-f58fb3c5{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-f58fb3c5{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-f58fb3c5]{animation:rotateEnter-f58fb3c5 .7s;position:relative}.rotate-leave-active[data-v-f58fb3c5]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-f58fb3c5]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.label-item[data-v-f58fb3c5]{width:100%;margin:10px 0}.label-item .label-item_key[data-v-f58fb3c5]{width:100%;font-size:14px;color:#999;margin-bottom:6px}.label-item .label-item_key span[data-v-f58fb3c5]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-f58fb3c5]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-f58fb3c5]{width:100%}.label-item .label-item_value select[data-v-f58fb3c5]{width:100%;height:36px;line-height:36px;color:#000}.label-item .label-item_value label[data-v-f58fb3c5]{width:100%;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;margin:.5rem;border-bottom:1px solid #eee;padding-bottom:10px;font-size:14px;color:#666}.label-item .label-item_value label input[type=radio][data-v-f58fb3c5]{top:0;margin:0}.label-item .label-item_tips[data-v-f58fb3c5]{margin-top:10px;color:#666;font-size:14px}.label-item .label-item_tips svg[data-v-f58fb3c5]{vertical-align:top}span.msg-warning[data-v-f58fb3c5]{width:100%;text-align:left;font-size:14px;color:red;display:block;margin:10px 0}@keyframes bganimation-3b6f47ef{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3b6f47ef{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3b6f47ef{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3b6f47ef]{animation:rotateEnter-3b6f47ef .7s;position:relative}.rotate-leave-active[data-v-3b6f47ef]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3b6f47ef]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.label-item[data-v-3b6f47ef]{width:100%;margin:10px 0}.label-item .label-item_key[data-v-3b6f47ef]{width:100%;font-size:14px;color:#999;margin-bottom:6px}.label-item .label-item_key span[data-v-3b6f47ef]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.label-item .label-item_key span[data-v-3b6f47ef]:before{content:"*";color:#f56c6c;margin-right:4px}.label-item .label-item_value[data-v-3b6f47ef]{width:100%}.label-item .label-item_value select[data-v-3b6f47ef]{width:100%;height:36px;line-height:36px;color:#000}.label-item .label-item_value label[data-v-3b6f47ef]{width:100%;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;margin:.5rem;border-bottom:1px solid #eee;padding-bottom:10px;font-size:14px;color:#666}.label-item .label-item_value label input[type=radio][data-v-3b6f47ef]{top:0;margin:0}.label-item .label-item_tips[data-v-3b6f47ef]{margin-top:10px;color:#666;font-size:14px}.label-item .label-item_tips svg[data-v-3b6f47ef]{vertical-align:top}span.msg-warning[data-v-3b6f47ef]{width:100%;text-align:left;font-size:14px;color:red;display:block;margin:10px 0}.action-main[data-v-11e639c1]{width:680px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.action-main[data-v-11e639c1] .actioner-container{width:100%}.action-main[data-v-11e639c1] .actioner-container .actioner-container_header{width:100%;height:50px;line-height:50px;display:flex;flex-wrap:wrap;align-items:center;font-size:20px;border-bottom:1px solid #eee;justify-content:center;padding:0 10px}.action-main[data-v-11e639c1] .actioner-container .actioner-container_footer{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action-main[data-v-11e639c1] .actioner-container .actioner-container_footer button{display:inline-block;width:100px!important;margin:0;margin-left:1rem}.action-main[data-v-11e639c1] .actioner-container .actioner-container_footer .close{min-width:65px;font-weight:400;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action-main[data-v-11e639c1] .actioner-container .actioner-container_footer .next{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:74px;height:32px;background:#553afe;border-radius:2px}.action-main[data-v-11e639c1] .actioner-container .actioner-container_footer .next.save{height:32px;background:#553afe;border-radius:2px;line-height:16px}.action-main[data-v-11e639c1] .actioner-container .actioner-container_footer .next:hover,.action-main[data-v-11e639c1] .actioner-container .actioner-container_footer .close:hover{opacity:.9}.action-main[data-v-11e639c1] .actioner-container .actioner-container_body{padding:20px;width:100%;height:400px}@keyframes bganimation-11e639c1{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-11e639c1{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-11e639c1{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-11e639c1]{animation:rotateEnter-11e639c1 .7s;position:relative}.rotate-leave-active[data-v-11e639c1]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-11e639c1]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:800px){.action-main[data-v-11e639c1]{width:90%}}@keyframes bganimation-dcf60521{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-dcf60521{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-dcf60521{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-dcf60521]{animation:rotateEnter-dcf60521 .7s;position:relative}.rotate-leave-active[data-v-dcf60521]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-dcf60521]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.cbi-map-descr[data-v-dcf60521]{margin-bottom:32px}.item-status[data-v-dcf60521]{word-break:break-all;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.item-status-detail[data-v-dcf60521]{text-decoration:underline;cursor:help}@keyframes bganimation-c748d4fd{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-c748d4fd{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-c748d4fd{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-c748d4fd]{animation:rotateEnter-c748d4fd .7s;position:relative}.rotate-leave-active[data-v-c748d4fd]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-c748d4fd]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}#page .cbi-map-descr[data-v-c748d4fd]{margin-bottom:1rem}#page[data-v-c748d4fd] .cbi-section{padding:1rem}#page[data-v-c748d4fd] span.cbi-page-actions.control-group{width:100%;display:block}.action-main[data-v-9bd81e00]{width:680px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.action-main[data-v-9bd81e00] .actioner-container{width:100%}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_header{width:100%;height:50px;line-height:50px;display:flex;flex-wrap:wrap;align-items:center;font-size:16px;border-bottom:1px solid #eee;justify-content:flex-start;padding:0 1rem;color:#525f7f}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_footer{width:100%;height:50px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:0 30px}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_footer button{display:inline-block;width:100px!important;margin:0;margin-left:1rem;padding:0;border:none}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_footer .close{min-width:65px;font-weight:400;line-height:30px;text-align:center;cursor:pointer;height:32px;border-radius:2px;border:1px solid rgba(0,0,0,.15);font-size:14px;font-family:PingFangSC-Regular,PingFang SC;color:#000000d4;line-height:32px}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_footer .next{min-width:65px;line-height:32px;text-align:center;cursor:pointer;font-size:14px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;color:#fff;margin-left:20px;width:74px;height:32px;background:#553afe;border-radius:2px}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_footer .next.save{height:32px;background:#553afe;border-radius:2px;line-height:16px}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_footer .next:hover,.action-main[data-v-9bd81e00] .actioner-container .actioner-container_footer .close:hover{opacity:.9}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_body{padding:20px;width:100%;min-height:400px}.action-main[data-v-9bd81e00] .actioner-container .actioner-container_body label.cbi-value-title{width:150px!important}@keyframes bganimation-9bd81e00{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-9bd81e00{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-9bd81e00{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-9bd81e00]{animation:rotateEnter-9bd81e00 .7s;position:relative}.rotate-leave-active[data-v-9bd81e00]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-9bd81e00]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:800px){.action-main[data-v-9bd81e00]{width:90%}}@keyframes bganimation-3fabbd23{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3fabbd23{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3fabbd23{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3fabbd23]{animation:rotateEnter-3fabbd23 .7s;position:relative}.rotate-leave-active[data-v-3fabbd23]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3fabbd23]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}textarea[data-v-3fabbd23]{display:block;width:100%;height:400px;padding:1rem;font-size:14px;resize:none;border:none;background-color:#1e1e1e;color:#fff}@keyframes bganimation-ba5f9eb4{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-ba5f9eb4{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-ba5f9eb4{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-ba5f9eb4]{animation:rotateEnter-ba5f9eb4 .7s;position:relative}.rotate-leave-active[data-v-ba5f9eb4]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-ba5f9eb4]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}textarea[data-v-ba5f9eb4]{display:block;width:100%;height:400px;padding:1rem;font-size:14px;resize:none;border:none;background-color:#1e1e1e;color:#fff}@keyframes bganimation-a79be366{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-a79be366{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-a79be366{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-a79be366]{animation:rotateEnter-a79be366 .7s;position:relative}.rotate-leave-active[data-v-a79be366]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-a79be366]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}textarea[data-v-a79be366]{display:block;width:100%;height:500px;padding:1rem;font-size:14px;resize:none;border:1px solid #999;border-radius:3px}@keyframes bganimation-73c93936{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-73c93936{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-73c93936{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-73c93936]{animation:rotateEnter-73c93936 .7s;position:relative}.rotate-leave-active[data-v-73c93936]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-73c93936]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.app-container_status-label_bg[data-v-73c93936]{flex:0 0 230px;width:230px;height:80px;display:flex;background:var(--app-container_status-label_bg);align-items:center;padding:10px;margin-right:10px;transition:.3s}.app-container_status-label_bg .app-container_status-label_text[data-v-73c93936]{margin-left:6px;font-size:14px;line-height:22px;text-align:left}.app-container_status-label_bg .app-container_status-label_text .text_status[data-v-73c93936]{color:#999}.app-container_status-label_bg .app-container_status-label_text .text_style[data-v-73c93936]{margin:6px 0}.app-container_status-label_bg .app-container_status-label_text .text_style.close[data-v-73c93936]{color:#999}.app-container_status-label_bg .app-container_status-label_text .text_info[data-v-73c93936]{font-weight:700;font-size:14px}.actioner-dns[data-v-4db2be2b]{width:860px;background-color:#fff;position:relative;z-index:99999;margin:auto;overflow:auto}.actioner-dns .actioner-dns_header[data-v-4db2be2b]{width:100%;display:flex;flex-wrap:wrap;align-items:center;padding:1rem;font-size:2em;border-bottom:1px solid #eee}.actioner-dns .actioner-dns_body[data-v-4db2be2b]{padding:1rem;min-height:50vh}.actioner-dns .actioner-dns_body .label-item[data-v-4db2be2b]{width:100%;margin:1rem 0}.actioner-dns .actioner-dns_body .label-item .label-item_key[data-v-4db2be2b]{width:100%;font-size:16px;color:#666;margin-bottom:10px}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-4db2be2b]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actioner-dns .actioner-dns_body .label-item .label-item_key span[data-v-4db2be2b]:before{content:"*";color:#f56c6c;margin-right:4px}.actioner-dns .actioner-dns_body .label-item .label-item_value[data-v-4db2be2b]{width:100%;margin-top:5px}.actioner-dns .actioner-dns_body .label-item .label-item_value select[data-v-4db2be2b],.actioner-dns .actioner-dns_body .label-item .label-item_value input[data-v-4db2be2b]{width:100%;min-height:36px}.actioner-dns .actioner-dns_body .label-message[data-v-4db2be2b]{width:100%;text-align:left;font-size:14px;color:red;text-align:center}.actioner-dns .config-message[data-v-4db2be2b]{width:100%;min-height:inherit;height:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-size:2em}.actioner-dns .actioner-dns_footer[data-v-4db2be2b]{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:1rem;font-size:2em;border-top:1px solid #eee}.actioner-dns .actioner-dns_footer button[data-v-4db2be2b]{display:inline-block;width:100px!important;margin:0;margin-left:1rem}@keyframes bganimation-4db2be2b{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-4db2be2b{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-4db2be2b{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-4db2be2b]{animation:rotateEnter-4db2be2b .7s;position:relative}.rotate-leave-active[data-v-4db2be2b]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-4db2be2b]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media screen and (max-width:1400px){.actioner-dns .actioner-dns_body[data-v-4db2be2b]{min-height:34vh}}@media screen and (max-width:800px){.actioner-dns[data-v-4db2be2b]{width:100%}}@keyframes bganimation-b7e9dfd4{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b7e9dfd4{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b7e9dfd4{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b7e9dfd4]{animation:rotateEnter-b7e9dfd4 .7s;position:relative}.rotate-leave-active[data-v-b7e9dfd4]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b7e9dfd4]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}[data-v-b7e9dfd4] .app-container_status-label_bg{margin:8px 0;flex:0 0 170px;height:80px;justify-content:start}[data-v-b7e9dfd4] .interface-device-flex{justify-content:start}.container[data-v-b7e9dfd4]{width:100%;overflow-x:auto}.container .table-wrapper[data-v-b7e9dfd4]{min-width:1280px;width:max-content}.container .table-wrapper .table-body[data-v-b7e9dfd4]{display:flex;flex-direction:column;min-width:100%}.container .table-wrapper .table-header[data-v-b7e9dfd4]{display:flex;border-bottom:2px solid #e5e7eb;background-color:#f8fafc;padding-left:10px}.container .table-wrapper .table-row[data-v-b7e9dfd4]{display:flex;min-width:100%;align-items:center;border-bottom:1px solid #e5e7eb;transition:background-color .2s}.container .table-wrapper .table-row[data-v-b7e9dfd4]:hover{background-color:#f3f4f6}.container .table-wrapper .add-row[data-v-b7e9dfd4]{cursor:pointer}.container .table-wrapper .add-row[data-v-b7e9dfd4]:hover{background-color:#f0f9ff}.container .table-wrapper .table-cell[data-v-b7e9dfd4]{padding:12px 16px;box-sizing:border-box;display:flex;justify-content:center}.container .table-wrapper .device-col[data-v-b7e9dfd4]{flex:0 0 200px;min-width:200px}.container .table-wrapper .spacer-col[data-v-b7e9dfd4]:first-of-type{flex:0 0 10px}.container .table-wrapper .spacer-col[data-v-b7e9dfd4]:last-of-type{flex:0 0 32px}.container .table-wrapper .name-col[data-v-b7e9dfd4]{flex:0 0 150px;min-width:150px;text-align:left}.container .table-wrapper .action-col[data-v-b7e9dfd4]{flex:0 0 auto;text-align:right;min-width:160px}.container .table-wrapper .icon[data-v-b7e9dfd4]{width:48px;height:100%;cursor:pointer}.container .table-wrapper .interface-device-flex[data-v-b7e9dfd4]{display:flex;justify-content:center;width:100%}.container .cbi-page-actions[data-v-b7e9dfd4]{margin-top:20px;display:flex;justify-content:flex-end}@media(max-width:768px){.container[data-v-b7e9dfd4] .app-container_status-label_bg{margin:8px 0;flex:0 0 80px;width:120px;height:80px;justify-content:start}.container .table-wrapper[data-v-b7e9dfd4]{min-width:100%}.container .table-cell[data-v-b7e9dfd4]{padding:8px 12px}.container .device-col[data-v-b7e9dfd4]{flex:0 0 120px!important;min-width:120px!important;margin-right:16px}.container .name-col[data-v-b7e9dfd4]{flex:0 0 80px!important;min-width:80px!important}.container .action-col[data-v-b7e9dfd4]{min-width:120px}.container .interface-device-flex[data-v-b7e9dfd4]{flex-direction:column;gap:4px}}@keyframes bganimation-60af56b6{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-60af56b6{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-60af56b6{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-60af56b6]{animation:rotateEnter-60af56b6 .7s;position:relative}.rotate-leave-active[data-v-60af56b6]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-60af56b6]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.page-state[data-v-60af56b6]{display:flex;align-items:center;gap:12px;min-height:64px;margin:12px 0;padding:14px 16px;color:var(--flow-span-color);background:#553afe0d;border:1px solid rgba(85,58,254,.16);border-radius:8px}.page-state--error[data-v-60af56b6]{background:#fff7e6;border-color:#ffd591}.page-state--unavailable[data-v-60af56b6]{background:#00000006;border-color:#0000001f}.page-state__icon[data-v-60af56b6]{display:grid;flex:none;width:28px;height:28px;place-items:center;color:#553afe;border:1px solid currentColor;border-radius:50%;font-weight:600}.page-state--error .page-state__icon[data-v-60af56b6]{color:#ad6800}.page-state__body[data-v-60af56b6]{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.page-state__body span[data-v-60af56b6]{opacity:.72;font-size:13px}button[data-v-60af56b6]{flex:none;min-height:34px;padding:6px 14px;color:#553afe;background:transparent;border:1px solid #553afe;border-radius:6px;cursor:pointer}.page-state__spinner[data-v-60af56b6]{width:12px;height:12px;border:2px solid rgba(85,58,254,.25);border-top-color:#553afe;border-radius:50%;animation:spin-60af56b6 .8s linear infinite}@keyframes spin-60af56b6{to{transform:rotate(360deg)}}@media(max-width:480px){.page-state[data-v-60af56b6]{align-items:flex-start;flex-wrap:wrap}button[data-v-60af56b6]{width:100%}}@keyframes bganimation-a7373828{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-a7373828{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-a7373828{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-a7373828]{animation:rotateEnter-a7373828 .7s;position:relative}.rotate-leave-active[data-v-a7373828]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-a7373828]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.profile-editor[data-v-a7373828]{display:grid;gap:11px}.profile-preview[data-v-a7373828]{display:flex;align-items:center;gap:11px;padding:11px;background:#553afe0d;border-radius:9px}.profile-preview>div[data-v-a7373828]{display:grid;gap:2px}.profile-preview span[data-v-a7373828],.profile-preview small[data-v-a7373828],.profile-editor>small[data-v-a7373828]{opacity:.65}.profile-preview b[data-v-a7373828]{color:#553afe}.profile-editor>label[data-v-a7373828],.two-columns label[data-v-a7373828]{display:grid;gap:5px;font-size:12px}.profile-editor input[data-v-a7373828]:not([type=radio]),.profile-editor select[data-v-a7373828]{box-sizing:border-box;width:100%;min-width:0;min-height:36px;padding:7px 9px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.3);border-radius:7px}.two-columns[data-v-a7373828]{display:grid;grid-template-columns:1fr 1fr;gap:9px}.scope-note[data-v-a7373828]{padding:8px;background:#7f7f7f12;border-radius:6px}fieldset[data-v-a7373828]{margin:0;padding:10px;border:1px solid rgba(127,127,127,.18);border-radius:8px}legend[data-v-a7373828]{padding:0 5px;font-weight:600}.auto-icon[data-v-a7373828]{display:flex;align-items:center;gap:7px;margin:5px 0}.auto-icon small[data-v-a7373828]{opacity:.6}.icon-grid[data-v-a7373828]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-height:250px;margin-top:9px;overflow-y:auto}.icon-grid label[data-v-a7373828]{position:relative;display:grid;justify-items:center;gap:4px;min-width:0;padding:7px 3px;border:1px solid rgba(127,127,127,.15);border-radius:8px;cursor:pointer}.icon-grid label.selected[data-v-a7373828]{color:#553afe;background:#553afe12;border-color:#806cff}.icon-grid input[data-v-a7373828]{position:absolute;opacity:0}.icon-grid span[data-v-a7373828]{width:100%;overflow:hidden;font-size:10px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.icon-grid[data-v-a7373828] .device-scene-icon{width:34px;height:34px}.icon-grid[data-v-a7373828] img{width:31px;height:31px}.feedback[data-v-a7373828]{margin:0;padding:8px;border-radius:7px}.feedback.success[data-v-a7373828]{color:#176b45;background:#26a2691a}.feedback.error[data-v-a7373828]{color:#9b3b16;background:#fff1e8}.actions[data-v-a7373828]{display:flex;justify-content:flex-end;gap:8px}.actions button[data-v-a7373828]{min-height:36px;padding:7px 11px;color:#fff;background:#553afe;border:1px solid #553afe;border-radius:7px;cursor:pointer}.actions .secondary[data-v-a7373828]{color:#553afe;background:transparent;border-color:#553afe59}button[data-v-a7373828]:focus-visible,input[data-v-a7373828]:focus-visible,select[data-v-a7373828]:focus-visible,label[data-v-a7373828]:focus-within{outline:2px solid #553afe;outline-offset:2px}button[data-v-a7373828]:disabled{opacity:.55}@media(max-width:520px){.two-columns[data-v-a7373828]{grid-template-columns:1fr}.icon-grid[data-v-a7373828]{grid-template-columns:repeat(3,minmax(0,1fr))}.actions[data-v-a7373828]{display:grid}.actions button[data-v-a7373828]{width:100%;white-space:normal}}.device-management,.device-feature-surface{--device-panel:#fff;--device-soft:#f5f7fa;--device-hover:#edf2f8;--device-text:#253247;--device-muted:#5b687a;--device-line:#e1e6ed;--device-accent:#155dfc;--device-accent-soft:#f0f5ff;--device-good:#008236;--device-upload:#7534d7;--device-download:#0876bd;--device-primary-bg:#155dfc;--device-primary-text:#fff;--device-warning:#946000;--device-warning-soft:#fff5e5}@media(prefers-color-scheme:dark){body:not([theme=light]) .device-management,body:not([theme=light]) .device-feature-surface{--device-panel:#2c2c2c;--device-soft:#343a43;--device-hover:#3b4655;--device-text:#e6ebf3;--device-muted:#b1bdce;--device-line:#414b59;--device-accent:#91b9ff;--device-accent-soft:#2c3e59;--device-good:#70e2b2;--device-upload:#c7a0ff;--device-download:#68d6ff;--device-primary-bg:#91b9ff;--device-primary-text:#172b48;--device-warning:#ffce76;--device-warning-soft:#514024}}:root[data-darkmode=true] .device-management,:root[data-darkmode=true] .device-feature-surface,body[data-quickstart-theme=dark] .device-management,body[data-quickstart-theme=dark] .device-feature-surface{--device-panel:#2c2c2c;--device-soft:#343a43;--device-hover:#3b4655;--device-text:#e6ebf3;--device-muted:#b1bdce;--device-line:#414b59;--device-accent:#91b9ff;--device-accent-soft:#2c3e59;--device-good:#70e2b2;--device-upload:#c7a0ff;--device-download:#68d6ff;--device-primary-bg:#91b9ff;--device-primary-text:#172b48;--device-warning:#ffce76;--device-warning-soft:#514024}.feature-drawer .feature-heading h2[data-v-9f3d4c66],.feature-drawer .feature-confirm h4[data-v-9f3d4c66]{padding:0!important;box-shadow:none!important;border:0;background:transparent!important;color:var(--device-text);line-height:1.4}.feature-overlay[data-v-9f3d4c66]{position:fixed;inset:0;z-index:2500;display:flex;justify-content:flex-end;background:#0006;color:var(--device-text);font-size:14px}.feature-drawer[data-v-9f3d4c66]{box-sizing:border-box;width:min(560px,100%);height:100%;overflow:auto;overscroll-behavior:contain;background:var(--device-panel);padding:20px;box-shadow:-8px 0 28px #0003}.feature-heading[data-v-9f3d4c66]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.feature-heading h2[data-v-9f3d4c66]{margin:0;font-size:20px;color:var(--device-text)}.feature-heading p[data-v-9f3d4c66],.feature-item>p[data-v-9f3d4c66]{margin:8px 0;color:var(--device-muted);line-height:1.6;font-size:13px}.feature-drawer button[data-v-9f3d4c66]{box-sizing:border-box;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--device-line);border-radius:7px;background:transparent;color:var(--device-accent);font:inherit;cursor:pointer}.feature-drawer button[data-v-9f3d4c66]:disabled{opacity:.55;cursor:default}.feature-drawer button[data-v-9f3d4c66]:focus-visible,.feature-item[data-v-9f3d4c66]:focus-visible{outline:2px solid var(--device-accent);outline-offset:2px}.feature-drawer .feature-close[data-v-9f3d4c66]{flex:none;border:0;color:var(--device-muted);font-size:24px;padding:4px}.feature-tools[data-v-9f3d4c66]{display:flex;gap:12px;align-items:center;margin:16px 0}.feature-tools>span[data-v-9f3d4c66]{flex:1;color:var(--device-muted);font-size:12px;line-height:1.6}.feature-tools>button[data-v-9f3d4c66]{flex:none}.feature-list[data-v-9f3d4c66]{display:grid;gap:12px}.feature-item[data-v-9f3d4c66]{min-width:0;border:1px solid var(--device-line);border-radius:10px;padding:16px}.feature-item.target[data-v-9f3d4c66]{border-color:var(--device-accent)}.feature-item-heading[data-v-9f3d4c66]{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.feature-item h3[data-v-9f3d4c66]{display:flex;gap:7px;align-items:center;font-size:16px;margin:0;color:var(--device-text);background:none;text-align:left;padding:0}.feature-item h3 svg[data-v-9f3d4c66]{width:18px;height:18px;color:var(--device-accent);flex:none}.feature-tags[data-v-9f3d4c66]{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.feature-tags span[data-v-9f3d4c66]{font-size:11px;color:var(--device-muted)}.feature-tags .recommend[data-v-9f3d4c66]{color:var(--device-accent)}.feature-state[data-v-9f3d4c66]{flex:none;font-size:12px;color:var(--device-muted);padding-top:3px}.feature-state.available[data-v-9f3d4c66]{color:var(--device-good)}.feature-state.not_installed[data-v-9f3d4c66],.feature-state.error[data-v-9f3d4c66],.feature-state.unsupported[data-v-9f3d4c66]{color:var(--device-warning)}.feature-actions[data-v-9f3d4c66]{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.feature-drawer .primary[data-v-9f3d4c66]{color:var(--device-primary-text);background:var(--device-primary-bg);border-color:var(--device-primary-bg)}.feature-confirm[data-v-9f3d4c66]{margin-top:14px;padding:14px;background:var(--device-soft);border:1px solid var(--device-line);border-radius:8px}.feature-confirm h4[data-v-9f3d4c66]{font-size:14px;margin:0 0 10px}.feature-confirm dl[data-v-9f3d4c66]{margin:0;display:grid;gap:8px}.feature-confirm dl>div[data-v-9f3d4c66]{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;font-size:12px}.feature-confirm dt[data-v-9f3d4c66]{color:var(--device-muted)}.feature-confirm dd[data-v-9f3d4c66]{margin:0;overflow-wrap:anywhere}.feature-confirm p[data-v-9f3d4c66],.feature-progress[data-v-9f3d4c66]{font-size:12px;color:var(--device-muted);line-height:1.7}.feature-confirm-actions[data-v-9f3d4c66]{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.feature-feedback[data-v-9f3d4c66]{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--device-soft);color:var(--device-muted);border-radius:7px;font-size:13px;line-height:1.6}.feature-feedback>span[data-v-9f3d4c66]{flex:1}.feature-feedback>button[data-v-9f3d4c66]{border:0;flex:none}.feature-feedback.warning[data-v-9f3d4c66]{color:var(--device-warning);background:var(--device-warning-soft)}.feature-loading[data-v-9f3d4c66]{font-size:13px;color:var(--device-muted)}@media(max-width:520px){.feature-drawer[data-v-9f3d4c66]{padding:16px}.feature-item[data-v-9f3d4c66]{padding:13px}.feature-item-heading[data-v-9f3d4c66]{gap:8px;flex-wrap:wrap}.feature-tools[data-v-9f3d4c66]{align-items:flex-start}.feature-tools>button[data-v-9f3d4c66]{padding:8px}.feature-confirm[data-v-9f3d4c66]{padding:12px}.feature-confirm-actions>button[data-v-9f3d4c66]{flex:1}.feature-confirm dl>div[data-v-9f3d4c66]{grid-template-columns:1fr;gap:4px}}@keyframes bganimation-8b1e95bf{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-8b1e95bf{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-8b1e95bf{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-8b1e95bf]{animation:rotateEnter-8b1e95bf .7s;position:relative}.rotate-leave-active[data-v-8b1e95bf]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-8b1e95bf]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.policy-panel .policy-components-entry[data-v-8b1e95bf]{min-height:44px;margin-top:10px;padding:8px 11px;border:1px solid var(--device-line);border-radius:7px;color:var(--device-accent);background:transparent;cursor:pointer}.policy-panel[data-v-8b1e95bf]{display:flex;flex-direction:column;gap:12px}.policy-feedback[data-v-8b1e95bf]{padding:9px 11px;border-radius:7px;font-size:13px}.policy-feedback.success[data-v-8b1e95bf]{color:#176b45;background:#26a2691a}.policy-feedback.error[data-v-8b1e95bf]{color:#9b3b16;background:#fff1e8}.policy-plan[data-v-8b1e95bf]{padding:12px;border:1px solid rgba(85,58,254,.22);border-radius:8px;background:#553afe0d}.policy-plan>div[data-v-8b1e95bf]:first-child{display:grid;gap:3px}.policy-plan small[data-v-8b1e95bf],.policy-plan p[data-v-8b1e95bf]{opacity:.68}.policy-plan ul[data-v-8b1e95bf]{margin:8px 0;padding-left:20px}.policy-plan>div[data-v-8b1e95bf]:last-child{display:flex;justify-content:flex-end;gap:7px}.policy-plan button[data-v-8b1e95bf]{min-height:34px;padding:6px 12px;color:#fff;background:#553afe;border:1px solid #553afe;border-radius:6px;cursor:pointer}.policy-plan button.secondary[data-v-8b1e95bf]{color:inherit;background:transparent;border-color:#7f7f7f4d}.policy-card[data-v-8b1e95bf]{padding:13px;border:1px solid rgba(127,127,127,.16);border-radius:8px}.policy-card__heading[data-v-8b1e95bf]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.policy-card__heading>div[data-v-8b1e95bf]{display:flex;flex-direction:column;gap:3px}.policy-card__heading small[data-v-8b1e95bf]{opacity:.62}.policy-toggle[data-v-8b1e95bf]{display:flex!important;flex-direction:row!important;align-items:center;gap:6px;white-space:nowrap}.policy-card label[data-v-8b1e95bf]{display:flex;flex-direction:column;gap:5px;margin-top:11px;font-size:12px}.policy-card input[data-v-8b1e95bf]:not([type=checkbox]),.policy-card select[data-v-8b1e95bf]{width:100%;min-height:34px;padding:6px 9px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.3);border-radius:6px}.field-hint[data-v-8b1e95bf],.field-error[data-v-8b1e95bf]{display:block;margin-top:5px;font-size:11px}.field-hint[data-v-8b1e95bf]{opacity:.62}.field-error[data-v-8b1e95bf]{color:#b94343}.policy-card button[data-v-8b1e95bf]{width:100%;min-height:36px;margin-top:12px;color:#fff;background:#553afe;border:1px solid #553afe;border-radius:6px;cursor:pointer}.policy-card button[data-v-8b1e95bf]:disabled{cursor:not-allowed;opacity:.55}.policy-card button.danger[data-v-8b1e95bf]{background:#b94343;border-color:#b94343}.policy-reason[data-v-8b1e95bf]{margin:10px 0 0;padding:8px 10px;opacity:.72;background:#7f7f7f12;border-radius:6px;font-size:12px}.policy-reason button[data-v-8b1e95bf]{width:auto;margin:8px 0 0}.effect-flow[data-v-8b1e95bf]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.effect-flow span[data-v-8b1e95bf]{display:grid;gap:3px;padding:7px;background:#553afe0d;border-radius:6px;overflow-wrap:anywhere}.effect-flow small[data-v-8b1e95bf]{opacity:.6}.attention[data-v-8b1e95bf]{display:block;margin-top:7px;padding:7px;color:#8a5a00;background:#fff8e8;border-radius:6px}.enforcement-card[data-v-8b1e95bf]{display:grid;gap:7px;margin-top:10px;padding:9px 10px;background:#7f7f7f0f;border-radius:7px;font-size:12px}.enforcement-card>div[data-v-8b1e95bf]{display:flex;justify-content:space-between;gap:8px}.enforcement-card small[data-v-8b1e95bf]{opacity:.65}.enforcement-card ul[data-v-8b1e95bf]{margin:0;padding-left:18px;opacity:.78}.enforcement-card.verified[data-v-8b1e95bf]{color:#176b45;background:#26a2691a}.enforcement-card.configured_not_loaded[data-v-8b1e95bf],.enforcement-card.configured_unstable[data-v-8b1e95bf],.enforcement-card.configured_wrong_node[data-v-8b1e95bf],.enforcement-card.unavailable[data-v-8b1e95bf],.enforcement-card.needs_address_reservation[data-v-8b1e95bf]{color:#8a5a00;background:#fff8e8}details[data-v-8b1e95bf]{margin-top:11px}summary[data-v-8b1e95bf]{color:#553afe;cursor:pointer;font-size:12px}.checkbox-line[data-v-8b1e95bf]{flex-direction:row!important;align-items:center}.field-grid[data-v-8b1e95bf]{display:grid;grid-template-columns:1fr 1fr;gap:9px}.access-state[data-v-8b1e95bf]{flex:none;padding:3px 7px;border-radius:999px;font-size:12px}.access-state.allowed[data-v-8b1e95bf]{color:#176b45;background:#26a2691a}.access-state.blocked[data-v-8b1e95bf]{color:#9b3b16;background:#fff1e8}@media(max-width:420px){.field-grid[data-v-8b1e95bf],.effect-flow[data-v-8b1e95bf]{grid-template-columns:1fr}}@keyframes bganimation-b4b287b0{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-b4b287b0{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-b4b287b0{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-b4b287b0]{animation:rotateEnter-b4b287b0 .7s;position:relative}.rotate-leave-active[data-v-b4b287b0]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-b4b287b0]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.usage-policy[data-v-b4b287b0]{margin-top:16px;padding-top:14px;border-top:1px solid rgba(127,127,127,.15)}.policy-heading[data-v-b4b287b0]{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.policy-heading h5[data-v-b4b287b0]{margin:0;font-size:14px}.policy-heading p[data-v-b4b287b0]{margin:4px 0 0;opacity:.62}.usage-policy button[data-v-b4b287b0]{min-height:32px;padding:6px 10px;color:#553afe;background:transparent;border:1px solid rgba(85,58,254,.32);border-radius:7px;cursor:pointer}.effective-card[data-v-b4b287b0]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0 4px}.effective-card span[data-v-b4b287b0]{display:grid;gap:3px;padding:9px;background:#553afe0d;border-radius:7px}.effective-card small[data-v-b4b287b0],.timezone[data-v-b4b287b0],.schedule-editor>small[data-v-b4b287b0]{opacity:.62}.timezone[data-v-b4b287b0]{margin:5px 0 12px;font-size:12px}.usage-policy fieldset[data-v-b4b287b0]{margin:10px 0;padding:11px;border:1px solid rgba(127,127,127,.17);border-radius:8px}.usage-policy legend[data-v-b4b287b0]{padding:0 5px;font-weight:600}.check[data-v-b4b287b0]{display:flex;align-items:center;gap:7px}.schedule-editor[data-v-b4b287b0],.quota-editor[data-v-b4b287b0]{display:grid;gap:9px;margin-top:10px}.days[data-v-b4b287b0]{display:flex;flex-wrap:wrap;gap:5px}.days label[data-v-b4b287b0]{position:relative;padding:5px 8px;border:1px solid rgba(127,127,127,.22);border-radius:999px;cursor:pointer}.days label.selected[data-v-b4b287b0]{color:#553afe;background:#553afe14}.days input[data-v-b4b287b0]{position:absolute;opacity:0}.columns[data-v-b4b287b0],.quota-editor[data-v-b4b287b0]{grid-template-columns:repeat(2,minmax(0,1fr))}.quota-editor[data-v-b4b287b0]{grid-template-columns:repeat(3,minmax(0,1fr))}.columns[data-v-b4b287b0]{display:grid;gap:8px}.columns label[data-v-b4b287b0],.quota-editor label[data-v-b4b287b0]{display:grid;gap:4px;font-size:12px}.usage-policy input[data-v-b4b287b0]:not([type=checkbox]),.usage-policy select[data-v-b4b287b0]{box-sizing:border-box;width:100%;min-width:0;min-height:34px;padding:6px 8px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.26);border-radius:6px}.preview[data-v-b4b287b0]{display:grid;gap:6px;padding:11px;background:#553afe0f;border:1px solid rgba(85,58,254,.16);border-radius:8px}.preview>div[data-v-b4b287b0],.actions[data-v-b4b287b0]{display:flex;justify-content:flex-end;gap:7px;margin-top:5px}.usage-policy .primary[data-v-b4b287b0]{color:#fff;background:#553afe;border-color:#553afe}.feedback[data-v-b4b287b0]{padding:8px;border-radius:7px}.feedback.error[data-v-b4b287b0]{color:#9b3b16;background:#fff1e8}.feedback.success[data-v-b4b287b0]{color:#176b45;background:#26a2691a}button[data-v-b4b287b0]:focus-visible,input[data-v-b4b287b0]:focus-visible,select[data-v-b4b287b0]:focus-visible{outline:2px solid #553afe;outline-offset:2px}@media(max-width:420px){.effective-card[data-v-b4b287b0],.columns[data-v-b4b287b0],.quota-editor[data-v-b4b287b0]{grid-template-columns:1fr}.policy-heading[data-v-b4b287b0]{align-items:stretch}.policy-heading>button[data-v-b4b287b0]{flex:none}}@keyframes bganimation-3a828794{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-3a828794{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-3a828794{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-3a828794]{animation:rotateEnter-3a828794 .7s;position:relative}.rotate-leave-active[data-v-3a828794]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-3a828794]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.insights-panel[data-v-3a828794]{margin-top:14px;padding-top:13px;border-top:1px solid rgba(127,127,127,.15)}.insights-heading[data-v-3a828794]{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.insights-heading>div[data-v-3a828794]{display:grid;gap:3px}.insights-heading small[data-v-3a828794],.capability[data-v-3a828794]{opacity:.62}.insights-panel button[data-v-3a828794]{padding:5px 9px;color:#553afe;background:transparent;border:1px solid rgba(85,58,254,.28);border-radius:6px;cursor:pointer}.range-tabs[data-v-3a828794]{display:flex;gap:5px;margin:12px 0}.range-tabs button.active[data-v-3a828794]{color:#fff;background:#553afe}.totals[data-v-3a828794]{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.totals span[data-v-3a828794]{display:grid;gap:2px;padding:8px;background:#553afe0d;border-radius:7px}.totals small[data-v-3a828794]{opacity:.6}.history-chart[data-v-3a828794]{display:flex;align-items:end;gap:3px;height:80px;margin-top:10px;padding:6px;border-bottom:1px solid rgba(127,127,127,.2)}.history-chart i[data-v-3a828794]{flex:1;min-width:3px;max-width:18px;background:linear-gradient(#806cff,#553afe);border-radius:3px 3px 0 0}.quota-status[data-v-3a828794]{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding:8px;color:#176b45;background:#26a2691a;border-radius:7px}.quota-status.exceeded[data-v-3a828794]{color:#9b3b16;background:#fff1e8}.capability[data-v-3a828794]{margin:9px 0 0;font-size:11px}.quota-form[data-v-3a828794]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;padding:10px;background:#553afe0a;border-radius:8px}.quota-form label[data-v-3a828794]:not(.enable){display:grid;gap:4px}.quota-form input[data-v-3a828794],.quota-form select[data-v-3a828794]{min-width:0;padding:7px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.25);border-radius:6px}.quota-form .enable[data-v-3a828794],.quota-form .save[data-v-3a828794],.quota-form .message[data-v-3a828794]{grid-column:1/-1}.message[data-v-3a828794]{margin:8px 0}.message.error[data-v-3a828794]{color:#9b3b16}.message.success[data-v-3a828794]{color:#176b45}.muted[data-v-3a828794]{opacity:.6}@media(max-width:520px){.quota-form[data-v-3a828794],.totals[data-v-3a828794]{grid-template-columns:1fr}}@keyframes bganimation-7f9d9207{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-7f9d9207{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-7f9d9207{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-7f9d9207]{animation:rotateEnter-7f9d9207 .7s;position:relative}.rotate-leave-active[data-v-7f9d9207]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-7f9d9207]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.advanced-tools[data-v-7f9d9207]{margin-top:12px;border:1px solid rgba(127,127,127,.16);border-radius:8px}.advanced-tools>summary[data-v-7f9d9207]{display:flex;justify-content:space-between;gap:8px;padding:11px;color:#553afe;cursor:pointer;font-weight:600}.advanced-tools>summary small[data-v-7f9d9207]{color:inherit;opacity:.65;font-weight:400}.advanced-body[data-v-7f9d9207]{padding:0 11px 11px}.advanced-body section[data-v-7f9d9207]{padding:12px 0;border-top:1px solid rgba(127,127,127,.13)}.advanced-body h5[data-v-7f9d9207]{margin:0 0 7px;font-size:13px}.advanced-body p[data-v-7f9d9207]{margin:6px 0;opacity:.7}.capabilities[data-v-7f9d9207]{display:grid;gap:6px}.capabilities>div[data-v-7f9d9207]{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:7px;background:#7f7f7f0b;border-radius:6px}.capabilities small[data-v-7f9d9207]{grid-column:1/-1;opacity:.62}.capabilities b[data-v-7f9d9207]{color:#7a5b00}.capabilities b.available[data-v-7f9d9207]{color:#176b45}.capabilities b.unavailable[data-v-7f9d9207],.capabilities b.not_installed[data-v-7f9d9207]{color:#777}.probe-actions[data-v-7f9d9207],.bundle-actions[data-v-7f9d9207],.webhook-actions[data-v-7f9d9207]{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.advanced-tools button[data-v-7f9d9207],.bundle-actions label[data-v-7f9d9207]{padding:6px 9px;color:#553afe;background:transparent;border:1px solid rgba(85,58,254,.3);border-radius:6px;cursor:pointer}.bundle-actions label input[data-v-7f9d9207]{display:none}.webhook-toggle[data-v-7f9d9207]{display:flex;align-items:center;gap:7px;margin:8px 0}.webhook-url[data-v-7f9d9207]{box-sizing:border-box;width:100%;margin-bottom:8px;padding:8px;border:1px solid rgba(127,127,127,.25);border-radius:6px}.webhook-actions small[data-v-7f9d9207]{opacity:.62}.advanced-body ul[data-v-7f9d9207]{padding:0;list-style:none}.advanced-body li[data-v-7f9d9207]{display:flex;justify-content:space-between;gap:8px;padding:6px 0}.advanced-body time[data-v-7f9d9207]{opacity:.55;font-size:11px}.import-plan[data-v-7f9d9207]{display:grid;gap:5px;margin-top:9px;padding:9px;background:#553afe0d;border-radius:7px}.import-plan small[data-v-7f9d9207]{opacity:.65}.advanced-tools .danger[data-v-7f9d9207]{color:#fff;background:#a13c3c;border-color:#a13c3c}.message[data-v-7f9d9207]{padding:7px;border-radius:6px}.message.success[data-v-7f9d9207]{color:#176b45;background:#26a2691a}.message.error[data-v-7f9d9207]{color:#9b3b16;background:#fff1e8}@media(max-width:420px){.advanced-tools>summary[data-v-7f9d9207],.advanced-body li[data-v-7f9d9207]{flex-direction:column}.capabilities>div[data-v-7f9d9207]{grid-template-columns:1fr}.capabilities small[data-v-7f9d9207]{grid-column:auto}}@keyframes bganimation-6ca35503{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-6ca35503{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-6ca35503{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-6ca35503]{animation:rotateEnter-6ca35503 .7s;position:relative}.rotate-leave-active[data-v-6ca35503]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-6ca35503]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.device-center[data-v-6ca35503]{color:var(--device-text);container-type:inline-size}.device-toolbar[data-v-6ca35503]{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px 12px;align-items:start;margin-bottom:14px}.device-center__tools[data-v-6ca35503]{grid-column:3;grid-row:1;display:flex;justify-content:flex-end;align-items:center;gap:8px;min-width:0}.device-search[data-v-6ca35503]{flex:1;max-width:320px;min-width:120px}.device-search input[data-v-6ca35503]{box-sizing:border-box;width:100%;min-height:44px;padding:7px 12px;color:inherit;background:var(--device-panel);border:1px solid var(--device-line);border-radius:7px}.device-center__tools select[data-v-6ca35503]{width:auto;max-width:100%}select[data-v-6ca35503],.icon-button[data-v-6ca35503]{min-height:44px;color:inherit;background:var(--device-panel);border:1px solid var(--device-line);border-radius:7px}.add-device[data-v-6ca35503]{min-height:44px;padding:7px 11px;color:var(--device-primary-text);background:var(--device-primary-bg);border:1px solid var(--device-primary-bg);border-radius:7px;cursor:pointer;white-space:nowrap}.add-device-form[data-v-6ca35503]{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:9px;align-items:end;margin:0 0 14px;padding:12px;background:var(--device-soft);border:1px solid var(--device-line);border-radius:9px}.add-device-form>div[data-v-6ca35503],.add-device-form label[data-v-6ca35503]{display:grid;gap:4px}.add-device-form small[data-v-6ca35503]{opacity:.62}.add-device-form label span[data-v-6ca35503]{font-size:12px}.add-device-form input[data-v-6ca35503]{box-sizing:border-box;min-width:0;min-height:36px;padding:7px 9px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.28);border-radius:7px}.add-device-form button[data-v-6ca35503]{min-height:36px;padding:7px 11px;color:var(--device-primary-text);background:var(--device-primary-bg);border:1px solid var(--device-primary-bg);border-radius:7px}.add-device-form p[data-v-6ca35503]{grid-column:1/-1;margin:0;color:#9b3b16}select[data-v-6ca35503]{padding:0 28px 0 10px}.icon-button[data-v-6ca35503]{flex:none;width:44px;cursor:pointer;font-size:22px}.device-filters[data-v-6ca35503]{display:flex;gap:3px;margin:0}.device-filters button[data-v-6ca35503]{min-width:44px;min-height:44px;padding:7px 10px;white-space:nowrap;color:var(--device-muted);background:transparent;border:1px solid transparent;border-radius:7px;cursor:pointer}.device-filters button span[data-v-6ca35503]{margin-left:4px;font-size:12px}.device-filters button.active[data-v-6ca35503]{color:var(--device-accent);background:var(--device-accent-soft);border-color:var(--device-line)}.filter-panel[data-v-6ca35503]{grid-column:2;grid-row:1;margin:0;border:0}.filter-panel[open][data-v-6ca35503]{grid-column:1/-1;grid-row:auto}.filter-panel>summary[data-v-6ca35503]{display:inline-flex;align-items:center;gap:7px;min-height:44px;color:var(--device-muted);cursor:pointer;font-size:12px;white-space:nowrap}.filter-panel>summary small[data-v-6ca35503]{display:inline-grid;place-items:center;min-width:20px;height:20px;color:#fff;background:var(--device-accent);border-radius:999px}.filter-panel__controls[data-v-6ca35503]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:9px;padding:12px;background:var(--device-soft);border:1px solid var(--device-line);border-radius:8px}.filter-panel__controls label[data-v-6ca35503]{display:grid;gap:4px;min-width:145px}.filter-panel__controls label span[data-v-6ca35503]{font-size:12px;opacity:.65}.clear-filters[data-v-6ca35503],.context-notice button[data-v-6ca35503]{min-height:36px;padding:6px 10px;color:var(--device-accent);background:transparent;border:1px solid var(--device-line);border-radius:7px;cursor:pointer}.telemetry-notice[data-v-6ca35503]{margin:0 0 12px;padding:8px 11px;color:#8a5a00;background:#fff8e8;border:1px solid #f3d18a;border-radius:7px;font-size:12px}.device-center[data-v-6ca35503] .page-state{color:var(--device-text);background:var(--device-soft);border-color:var(--device-line)}.device-center[data-v-6ca35503] .page-state__icon,.device-center[data-v-6ca35503] .page-state button{color:var(--device-accent)}.device-center[data-v-6ca35503] .page-state button{min-height:44px;border-color:var(--device-line)}.device-center[data-v-6ca35503] .page-state--empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:280px;padding:36px 20px;text-align:center;background:transparent;border:0}.device-center[data-v-6ca35503] .page-state--empty .page-state__body{flex:none;max-width:38ch}.device-center[data-v-6ca35503] .page-state--empty .page-state__icon{width:48px;height:48px;font-size:26px;background:var(--device-soft);border:0}.device-table-wrap[data-v-6ca35503]{width:100%;overflow:hidden}.device-table[data-v-6ca35503]{width:100%;table-layout:fixed;border-collapse:collapse}.identity-column[data-v-6ca35503]{width:clamp(180px,24cqw,280px)}.address-column[data-v-6ca35503]{width:clamp(145px,19cqw,220px)}.status-column[data-v-6ca35503]{width:90px}.connection-column[data-v-6ca35503]{width:76px}.traffic-column[data-v-6ca35503]{width:104px}.device-table th[data-v-6ca35503]{padding:11px 10px;text-align:left;white-space:nowrap;font-size:12px;font-weight:500;color:var(--device-muted);background:var(--device-soft);border-bottom:1px solid var(--device-line)}.device-table td[data-v-6ca35503]{padding:13px 10px;border-bottom:1px solid var(--device-line);vertical-align:middle;overflow-wrap:anywhere}.device-table tbody tr[data-v-6ca35503]:nth-child(n){background:var(--device-panel);cursor:pointer;transition:background .15s ease}.device-table tbody tr[data-v-6ca35503]:nth-child(n):hover{background:var(--device-hover)}.device-table tbody tr[data-v-6ca35503]:focus-visible,.device-card[data-v-6ca35503]:focus-visible{outline:2px solid var(--device-accent);outline-offset:-2px;background:var(--device-hover)}.device-identity[data-v-6ca35503]{display:flex;align-items:center;gap:10px;min-width:0}.device-identity div[data-v-6ca35503]{display:flex;flex-direction:column;min-width:0}.device-identity strong[data-v-6ca35503]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.device-identity .identity-meta[data-v-6ca35503]{margin-top:4px;color:var(--device-muted);font-size:12px}.identity-meta[data-v-6ca35503]{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-meta b[data-v-6ca35503]{font-weight:500}mark[data-v-6ca35503]{color:inherit;background:#fff0a6;border-radius:2px}.status-pill[data-v-6ca35503]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.status-pill[data-v-6ca35503]:before{width:7px;height:7px;content:"";border-radius:50%;background:#a8adb7}.status-pill.online[data-v-6ca35503]{color:var(--device-good)}.status-pill.online[data-v-6ca35503]:before{background:currentColor}.status-pill.offline[data-v-6ca35503],.status-pill.never-seen[data-v-6ca35503]{color:var(--device-muted)}.device-address[data-v-6ca35503]{font-size:13px;overflow-wrap:anywhere}.mono[data-v-6ca35503],code[data-v-6ca35503]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}td>small[data-v-6ca35503]{margin-left:5px;color:var(--device-accent)}.traffic[data-v-6ca35503]{display:flex;flex-direction:column;gap:3px;white-space:nowrap;font-size:13px}.traffic-ready .traffic-upload[data-v-6ca35503]{color:var(--device-upload)}.traffic-ready .traffic-download[data-v-6ca35503]{color:var(--device-download)}.policy-action[data-v-6ca35503]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.policy-list[data-v-6ca35503]{display:flex;flex:1;min-width:80px;flex-wrap:wrap;gap:5px}.policy-list>span[data-v-6ca35503]:not(.muted){padding:3px 7px;color:var(--device-accent);background:var(--device-accent-soft);border-radius:999px;font-size:12px}.policy-action button[data-v-6ca35503],.secondary-button[data-v-6ca35503]{min-height:44px;padding:6px 10px;color:var(--device-text);background:var(--device-panel);border:1px solid var(--device-line);border-radius:7px;cursor:pointer;white-space:nowrap}button[data-v-6ca35503]:focus-visible,input[data-v-6ca35503]:focus-visible,select[data-v-6ca35503]:focus-visible{outline:2px solid var(--device-accent);outline-offset:2px}.clear-filters[data-v-6ca35503],.context-notice button[data-v-6ca35503],.add-device-form button[data-v-6ca35503],.drawer-tabs button[data-v-6ca35503],.address-copy[data-v-6ca35503]{min-height:44px}.muted[data-v-6ca35503]{color:var(--device-muted)}.device-card[data-v-6ca35503]{display:none}.drawer-backdrop[data-v-6ca35503]{position:fixed;inset:0;z-index:1000;display:flex;justify-content:flex-end;background:#0000005c}.device-drawer[data-v-6ca35503]{width:min(430px,100%);height:100%;padding:22px;overflow-y:auto;color:var(--device-text);background:var(--device-panel);box-shadow:-8px 0 28px #0000002e}.drawer-header[data-v-6ca35503]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.device-drawer h3[data-v-6ca35503]{margin:0;padding:0;color:inherit;background:none!important;font-size:19px;text-align:left}.drawer-close[data-v-6ca35503]{flex:none;width:44px;height:44px;color:inherit;background:transparent;border:0;cursor:pointer;font-size:28px}.drawer-summary[data-v-6ca35503]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:16px 0 10px}.drawer-summary>span[data-v-6ca35503]{display:grid;gap:3px;min-width:0;padding:9px;background:var(--device-soft);border-radius:8px;overflow-wrap:anywhere}.drawer-summary small[data-v-6ca35503]{opacity:.58}.context-notice[data-v-6ca35503]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:8px 10px;color:#745500;background:#ffc44d1f;border-radius:7px;font-size:12px}.drawer-tabs[data-v-6ca35503]{position:sticky;top:-22px;z-index:2;display:flex;gap:4px;margin:0 -22px;padding:9px 22px;overflow-x:auto;background:var(--card-bg-color);border-bottom:1px solid rgba(127,127,127,.12)}.drawer-tabs button[data-v-6ca35503]{flex:none;padding:7px 9px;color:inherit;background:transparent;border:0;border-radius:7px;cursor:pointer}.drawer-tabs button.active[data-v-6ca35503]{color:var(--device-accent);background:var(--device-accent-soft);font-weight:600}.drawer-section[data-v-6ca35503]{padding:18px 0;border-bottom:1px solid rgba(127,127,127,.14)}.drawer-section h4[data-v-6ca35503]{margin:0 0 10px;font-size:14px}dl[data-v-6ca35503]{margin:0}dl div[data-v-6ca35503]{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:7px 0}dt[data-v-6ca35503]{opacity:.58}dd[data-v-6ca35503]{margin:0;overflow-wrap:anywhere}.address-list[data-v-6ca35503]{display:flex;flex-direction:column;gap:7px}code[data-v-6ca35503]{padding:7px 9px;overflow-wrap:anywhere;background:#7f7f7f12;border-radius:5px}.address-copy[data-v-6ca35503]{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:0;color:inherit;text-align:left;background:transparent;border:0;cursor:pointer}.address-copy code[data-v-6ca35503]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.address-copy span[data-v-6ca35503]{flex:none;color:var(--device-accent);font-size:12px}.traffic-chart[data-v-6ca35503]{display:flex;align-items:flex-end;gap:3px;height:72px;margin-top:13px;padding:8px;background:#7f7f7f0e;border-radius:7px}.traffic-chart__bar[data-v-6ca35503]{display:flex;flex:1;align-items:flex-end;justify-content:center;gap:1px;height:100%}.traffic-chart__bar i[data-v-6ca35503]{display:block;width:min(4px,45%);min-height:2px;border-radius:2px 2px 0 0}.traffic-chart__bar .upload[data-v-6ca35503]{background:var(--device-upload)}.traffic-chart__bar .download[data-v-6ca35503]{background:var(--device-download)}.chart-legend[data-v-6ca35503]{display:flex;gap:14px;margin-top:6px}.chart-legend>span[data-v-6ca35503]:first-child{color:var(--device-upload)}.chart-legend>span[data-v-6ca35503]:last-child{color:var(--device-download)}.drawer-footer[data-v-6ca35503]{padding-top:20px}.technical-details[data-v-6ca35503]{margin-top:14px;padding-top:10px;border-top:1px solid rgba(127,127,127,.14)}.technical-details summary[data-v-6ca35503]{color:var(--device-accent);cursor:pointer;font-weight:600}.technical-details[open] summary[data-v-6ca35503]{margin-bottom:8px}.sr-only[data-v-6ca35503]{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:980px){.device-center__tools[data-v-6ca35503]{width:100%}.device-search[data-v-6ca35503]{flex:1}.device-search input[data-v-6ca35503]{width:100%}.add-device-form[data-v-6ca35503]{grid-template-columns:1fr 1fr}.add-device-form>div[data-v-6ca35503],.add-device-form button[data-v-6ca35503]{grid-column:1/-1}.device-table th[data-v-6ca35503]:nth-child(4),.device-table td[data-v-6ca35503]:nth-child(4){display:none}.connection-column[data-v-6ca35503]{display:none}}@container (max-width: 760px){.device-toolbar[data-v-6ca35503]{grid-template-columns:minmax(0,1fr) auto}.device-center__tools[data-v-6ca35503]{grid-column:1/-1;grid-row:1;width:100%}.device-filters[data-v-6ca35503]{grid-column:1;grid-row:2}.filter-panel[data-v-6ca35503]{grid-column:2;grid-row:2}}@container (max-width: 760px){.device-center__tools[data-v-6ca35503]{flex-wrap:wrap}.device-search[data-v-6ca35503]{flex-basis:100%;max-width:none}.device-center__tools select[data-v-6ca35503]{flex:1;min-width:0;width:0}.device-table[data-v-6ca35503]{display:none}.device-card[data-v-6ca35503]{display:block;margin-bottom:10px;padding:14px;border:1px solid var(--device-line);border-radius:9px;cursor:pointer}.device-card__top[data-v-6ca35503]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.device-card__top>.device-identity[data-v-6ca35503]{flex:1}.device-card__top>.status-pill[data-v-6ca35503]{flex:none;font-size:12px}.device-card__facts[data-v-6ca35503]{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px;font-size:13px}.device-card__facts>span[data-v-6ca35503]{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.device-card__facts small[data-v-6ca35503]{margin-bottom:3px;color:var(--device-muted);font-size:12px}.identity-meta[data-v-6ca35503]{max-width:min(220px,58vw)}.filter-panel__controls label[data-v-6ca35503]{flex:1 1 135px;min-width:0}}@container (max-width: 320px){.device-toolbar[data-v-6ca35503]{grid-template-columns:minmax(0,1fr)}.device-filters[data-v-6ca35503]{grid-column:1;grid-row:2;flex-wrap:wrap}.filter-panel[data-v-6ca35503]{grid-column:1;grid-row:3}.device-search input[data-v-6ca35503]{min-width:0}}@media(max-width:360px){.device-toolbar[data-v-6ca35503]{grid-template-columns:minmax(0,1fr)}.device-filters[data-v-6ca35503]{justify-content:space-between}.filter-panel[data-v-6ca35503]{grid-column:1;grid-row:3}}@media(max-width:420px){.device-toolbar[data-v-6ca35503]{gap:8px 4px}.device-filters button[data-v-6ca35503]{padding:7px 6px}.device-filters button[data-v-6ca35503]{flex:none}.device-card__facts>span[data-v-6ca35503]:first-child,.device-card__facts>span[data-v-6ca35503]:last-child{grid-column:1/-1}.device-drawer[data-v-6ca35503]{padding:18px 16px}.drawer-summary[data-v-6ca35503]{grid-template-columns:1fr 1fr}.drawer-summary>span[data-v-6ca35503]:last-child{grid-column:1/-1}.drawer-tabs[data-v-6ca35503]{top:-18px;margin:0 -16px;padding:8px 16px}.add-device-form[data-v-6ca35503]{grid-template-columns:1fr}.add-device-form[data-v-6ca35503]>*{grid-column:1!important}.add-device[data-v-6ca35503]{flex:1}.filter-panel__controls[data-v-6ca35503]{display:grid;grid-template-columns:1fr}.clear-filters[data-v-6ca35503]{width:100%}}@keyframes bganimation-2a77cd21{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-2a77cd21{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-2a77cd21{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-2a77cd21]{animation:rotateEnter-2a77cd21 .7s;position:relative}.rotate-leave-active[data-v-2a77cd21]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-2a77cd21]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.group-panel[data-v-2a77cd21]{color:var(--tit-color)}.group-panel h2[data-v-2a77cd21],.group-panel h3[data-v-2a77cd21]{margin:0;padding:0;color:inherit;background:none!important;text-align:left}.group-panel h2[data-v-2a77cd21]{font-size:20px}.group-header[data-v-2a77cd21],.editor-heading[data-v-2a77cd21],.group-card-title[data-v-2a77cd21],.card-actions[data-v-2a77cd21],.editor-actions[data-v-2a77cd21],.header-actions[data-v-2a77cd21]{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.group-header p[data-v-2a77cd21],.editor-heading p[data-v-2a77cd21]{margin:5px 0 0;opacity:.65}.group-panel button[data-v-2a77cd21]{min-height:34px;padding:6px 11px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.25);border-radius:7px;cursor:pointer}.group-panel .primary[data-v-2a77cd21]{color:#fff;background:#553afe;border-color:#553afe}.evaluation[data-v-2a77cd21],.batch-result[data-v-2a77cd21]{display:flex;justify-content:space-between;gap:10px;margin:13px 0;padding:9px 11px;background:#7f7f7f0d;border-radius:8px;font-size:12px}.batch-result.all_success[data-v-2a77cd21]{color:#176b45;background:#26a2691a}.batch-result.partial[data-v-2a77cd21],.batch-result.failed[data-v-2a77cd21]{color:#9b3b16;background:#fff1e8}.group-grid[data-v-2a77cd21]{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.group-card[data-v-2a77cd21]{padding:13px;border:1px solid rgba(127,127,127,.15);border-radius:9px}.group-card-title>div[data-v-2a77cd21]{display:grid;gap:3px}.group-card-title span[data-v-2a77cd21],.member-preview[data-v-2a77cd21]{opacity:.62;font-size:12px}.priority[data-v-2a77cd21]{padding:3px 6px;background:#553afe1a;border-radius:999px}.member-preview[data-v-2a77cd21]{min-height:30px}.card-actions[data-v-2a77cd21]{justify-content:flex-end;margin-top:9px}.danger-link[data-v-2a77cd21]{color:#a13c3c!important}.effective-explanation[data-v-2a77cd21]{margin-top:13px;padding:10px;border:1px solid rgba(127,127,127,.15);border-radius:8px}.effective-explanation summary[data-v-2a77cd21]{min-height:40px;color:#553afe;cursor:pointer;font-weight:600}.effective-list[data-v-2a77cd21]{display:grid;gap:6px;margin-top:9px}.effective-list>div[data-v-2a77cd21]{display:flex;justify-content:space-between;gap:10px;padding:7px;background:#7f7f7f0a;border-radius:6px}.effective-list span[data-v-2a77cd21]{display:grid}.effective-list small[data-v-2a77cd21]{opacity:.62}.effective-list em[data-v-2a77cd21]{max-width:45%;opacity:.7;font-style:normal;text-align:right}.editor[data-v-2a77cd21]{margin-top:14px;padding:15px;border:1px solid rgba(85,58,254,.2);border-radius:10px}.close[data-v-2a77cd21]{border:0!important;font-size:20px}.form-grid[data-v-2a77cd21],.rules-grid[data-v-2a77cd21],.inline-fields[data-v-2a77cd21]{display:grid;grid-template-columns:2fr 1fr;gap:9px}.form-grid[data-v-2a77cd21]{grid-template-columns:1fr}.advanced-group[data-v-2a77cd21]{margin:10px 0;padding:0 10px 10px;border:1px solid rgba(127,127,127,.17);border-radius:8px}.advanced-group summary[data-v-2a77cd21]{display:flex;align-items:center;min-height:40px;color:#553afe;cursor:pointer}.editor label[data-v-2a77cd21]{display:grid;gap:5px;font-size:12px}.editor input[data-v-2a77cd21]:not([type=checkbox]),.editor select[data-v-2a77cd21]{box-sizing:border-box;width:100%;min-width:0;min-height:36px;padding:7px 9px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.25);border-radius:7px}.editor fieldset[data-v-2a77cd21]{margin:12px 0;padding:11px;border:1px solid rgba(127,127,127,.17);border-radius:8px}.editor legend[data-v-2a77cd21]{padding:0 5px;font-weight:600}.device-search[data-v-2a77cd21]{margin-bottom:8px}.device-options[data-v-2a77cd21]{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:6px;max-height:200px;overflow:auto}.device-options label[data-v-2a77cd21]{position:relative;display:flex;align-items:center;gap:8px;padding:7px;border-radius:7px}.device-options span[data-v-2a77cd21]{display:grid;min-width:0}.device-options small[data-v-2a77cd21]{overflow:hidden;opacity:.6;text-overflow:ellipsis}.device-options em[data-v-2a77cd21]{margin-left:auto;color:#9b3b16;font-size:10px;font-style:normal}.check[data-v-2a77cd21]{display:flex!important;align-items:center;gap:7px;min-height:40px}.inline-fields[data-v-2a77cd21]{grid-column:1/-1}.inline-fields.quota[data-v-2a77cd21]{grid-template-columns:repeat(3,1fr)}.days[data-v-2a77cd21]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}.days label[data-v-2a77cd21]{padding:5px 9px;border:1px solid rgba(127,127,127,.2);border-radius:999px;cursor:pointer}.days label.selected[data-v-2a77cd21]{color:#553afe;background:#553afe14}.days input[data-v-2a77cd21]{position:absolute;opacity:0}.schedule-box small[data-v-2a77cd21]{opacity:.62}.preview-card[data-v-2a77cd21]{display:grid;gap:7px;padding:12px;color:inherit;background:#553afe0f;border:1px solid rgba(85,58,254,.16);border-radius:9px}.preview-card p[data-v-2a77cd21]{margin:0;color:#9b3b16}.preview-card>div[data-v-2a77cd21]{display:flex;justify-content:flex-end;gap:8px}.editor-actions[data-v-2a77cd21]{justify-content:flex-end}.feedback[data-v-2a77cd21]{padding:8px;border-radius:7px}.feedback.error[data-v-2a77cd21]{color:#9b3b16;background:#fff1e8}button[data-v-2a77cd21]:focus-visible,input[data-v-2a77cd21]:focus-visible,select[data-v-2a77cd21]:focus-visible,summary[data-v-2a77cd21]:focus-visible{outline:2px solid #553afe;outline-offset:2px}@media(max-width:640px){.group-header[data-v-2a77cd21]{flex-direction:column}.header-actions[data-v-2a77cd21]{width:100%}.header-actions button[data-v-2a77cd21]{flex:1}.evaluation[data-v-2a77cd21],.effective-list>div[data-v-2a77cd21]{flex-direction:column}.effective-list em[data-v-2a77cd21]{max-width:none;text-align:left}.form-grid[data-v-2a77cd21],.rules-grid[data-v-2a77cd21],.inline-fields[data-v-2a77cd21],.inline-fields.quota[data-v-2a77cd21],.device-options[data-v-2a77cd21]{grid-template-columns:1fr}.editor[data-v-2a77cd21]{padding:12px}}@keyframes bganimation-aec64bba{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-aec64bba{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-aec64bba{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-aec64bba]{animation:rotateEnter-aec64bba .7s;position:relative}.rotate-leave-active[data-v-aec64bba]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-aec64bba]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.floating-wizard[data-v-aec64bba]{max-width:760px;color:var(--tit-color)}.status-card[data-v-aec64bba]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}.status-card>div[data-v-aec64bba]{padding:10px;border:1px solid rgba(127,127,127,.16);border-radius:8px;background:#7f7f7f0a}.status-card small[data-v-aec64bba],.status-card strong[data-v-aec64bba]{display:block}.status-card small[data-v-aec64bba]{margin-bottom:4px;opacity:.65}.wizard-steps[data-v-aec64bba]{display:grid;grid-template-columns:repeat(3,1fr);padding:0;margin:0 0 16px;list-style:none}.wizard-steps li[data-v-aec64bba]{display:flex;align-items:center;gap:7px;opacity:.5}.wizard-steps li[data-v-aec64bba]:after{content:"";height:1px;flex:1;background:currentColor;opacity:.2}.wizard-steps li[data-v-aec64bba]:last-child:after{display:none}.wizard-steps li.active[data-v-aec64bba],.wizard-steps li.done[data-v-aec64bba]{color:#553afe;opacity:1}.wizard-steps b[data-v-aec64bba]{display:grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:50%}.wizard-card[data-v-aec64bba],.capability-card[data-v-aec64bba],.drill-box[data-v-aec64bba],.configured-card[data-v-aec64bba]{padding:16px;border:1px solid rgba(127,127,127,.2);border-radius:9px}.capability-card[data-v-aec64bba]{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.configured-card[data-v-aec64bba]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:center}.configured-card>div[data-v-aec64bba]{display:grid;gap:4px;min-width:0}.configured-card small[data-v-aec64bba]{opacity:.65}.configured-card strong[data-v-aec64bba]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toggle-line[data-v-aec64bba]{display:flex;gap:8px;align-items:center}.role-grid[data-v-aec64bba]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-grid label[data-v-aec64bba]{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;padding:12px;border:1px solid rgba(127,127,127,.2);border-radius:8px;cursor:pointer}.role-grid label.selected[data-v-aec64bba]{border-color:#553afe;background:#553afe0f}.role-grid input[data-v-aec64bba]{grid-row:1/3}.role-grid small[data-v-aec64bba]{opacity:.65}.form-grid[data-v-aec64bba]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label[data-v-aec64bba]{display:flex;flex-direction:column;gap:5px}.form-grid input[data-v-aec64bba]{min-width:0;padding:8px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.3);border-radius:6px}.form-grid small[data-v-aec64bba],.hint[data-v-aec64bba]{opacity:.65}.review-state[data-v-aec64bba]{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:7px}.review-state.ready[data-v-aec64bba]{color:#176b45;background:#26a2691a}.review-state.error[data-v-aec64bba],.warning[data-v-aec64bba],.feedback.error[data-v-aec64bba]{color:#9b3b16;background:#fff1e8}.warning[data-v-aec64bba],.feedback[data-v-aec64bba]{padding:9px;border-radius:7px}.feedback.success[data-v-aec64bba]{color:#176b45;background:#26a2691a}.wizard-actions[data-v-aec64bba]{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.floating-wizard button[data-v-aec64bba]{min-height:36px;padding:7px 14px;color:#fff;background:#553afe;border:1px solid #553afe;border-radius:6px;cursor:pointer}.floating-wizard button.secondary[data-v-aec64bba]{color:#553afe;background:transparent}.floating-wizard button[data-v-aec64bba]:disabled{opacity:.5;cursor:not-allowed}.drill-box[data-v-aec64bba]{margin-top:16px}.drill-box summary[data-v-aec64bba]{color:#553afe;cursor:pointer}@media(max-width:640px){.status-card[data-v-aec64bba]{grid-template-columns:1fr 1fr}.form-grid[data-v-aec64bba],.role-grid[data-v-aec64bba],.configured-card[data-v-aec64bba]{grid-template-columns:1fr}.wizard-steps span[data-v-aec64bba]{display:none}.configured-card button[data-v-aec64bba]{width:100%}}@keyframes bganimation-c463c3c8{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-c463c3c8{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-c463c3c8{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-c463c3c8]{animation:rotateEnter-c463c3c8 .7s;position:relative}.rotate-leave-active[data-v-c463c3c8]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-c463c3c8]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.rules-hub[data-v-c463c3c8]{color:var(--tit-color)}.rules-header[data-v-c463c3c8]{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.rules-hub h2[data-v-c463c3c8]{margin:0;padding:0;color:inherit;background:none!important;font-size:20px;text-align:left}.rules-header p[data-v-c463c3c8]{margin:5px 0 0;opacity:.65}.rules-hub button[data-v-c463c3c8]{min-height:34px;padding:6px 12px;border-radius:6px;cursor:pointer}.secondary[data-v-c463c3c8]{color:#553afe;background:transparent;border:1px solid rgba(85,58,254,.4)}.danger[data-v-c463c3c8]{color:#fff;background:#b94343;border:1px solid #b94343}.rule-toolbar[data-v-c463c3c8]{display:grid;grid-template-columns:minmax(220px,1fr) 150px 150px;gap:9px;margin:18px 0 10px}.rule-toolbar input[data-v-c463c3c8],.rule-toolbar select[data-v-c463c3c8]{min-width:0;min-height:36px;padding:7px 9px;color:inherit;background:transparent;border:1px solid rgba(127,127,127,.25);border-radius:7px}.selection-bar[data-v-c463c3c8]{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;margin-bottom:8px;background:#553afe0f;border-radius:7px}.rules-table-wrap[data-v-c463c3c8]{overflow-x:auto}table[data-v-c463c3c8]{width:100%;border-collapse:collapse}th[data-v-c463c3c8],td[data-v-c463c3c8]{padding:10px 8px;text-align:left;border-bottom:1px solid rgba(127,127,127,.12)}td strong[data-v-c463c3c8],td small[data-v-c463c3c8]{display:block}td small[data-v-c463c3c8]{margin-top:3px;opacity:.6}.orphaned[data-v-c463c3c8]{background:#b9434309}.kind-pill[data-v-c463c3c8],.state-pill[data-v-c463c3c8]{display:inline-block;padding:3px 7px;border-radius:999px;background:#553afe14}.state-pill.orphaned[data-v-c463c3c8],.state-pill.unsupported[data-v-c463c3c8],.state-pill.unreachable[data-v-c463c3c8]{color:#9b3b16;background:#fff1e8}.next-action[data-v-c463c3c8]{display:block;margin:4px 0 0;max-width:420px;color:#8a5a00;font-size:12px}.rules-hub button.repair[data-v-c463c3c8]{display:block;margin-top:5px;padding:3px 7px;min-height:28px;color:#553afe;background:transparent;border:1px solid rgba(85,58,254,.35)}.rule-cards[data-v-c463c3c8]{display:none}.feedback[data-v-c463c3c8]{padding:9px;border-radius:7px}.feedback.success[data-v-c463c3c8]{color:#176b45;background:#26a2691a}.feedback.error[data-v-c463c3c8]{color:#9b3b16;background:#fff1e8}@media(max-width:640px){.rules-header[data-v-c463c3c8]{flex-direction:column}.rule-toolbar[data-v-c463c3c8]{grid-template-columns:1fr 1fr}.rule-toolbar input[data-v-c463c3c8]{grid-column:1/3}.rules-table-wrap[data-v-c463c3c8]{display:none}.rule-cards[data-v-c463c3c8]{display:grid;gap:8px}.rule-cards article[data-v-c463c3c8]{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:7px;align-items:center;padding:10px;border:1px solid rgba(127,127,127,.15);border-radius:8px}.rule-select[data-v-c463c3c8]{display:grid;place-items:center;width:40px;height:40px}.rule-identity[data-v-c463c3c8]{display:grid;min-width:0}.rule-identity strong[data-v-c463c3c8],.rule-identity small[data-v-c463c3c8]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-identity small[data-v-c463c3c8]{opacity:.62}.rule-result[data-v-c463c3c8],.rule-cards .next-action[data-v-c463c3c8],.rule-cards .repair[data-v-c463c3c8]{grid-column:2/-1}.rule-result[data-v-c463c3c8]{display:flex;align-items:center;gap:7px;min-width:0}.rule-result>span[data-v-c463c3c8]:last-child{overflow-wrap:anywhere}}@keyframes bganimation-0801e069{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-0801e069{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-0801e069{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-0801e069]{animation:rotateEnter-0801e069 .7s;position:relative}.rotate-leave-active[data-v-0801e069]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-0801e069]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.settings-navigation[data-v-0801e069]{display:flex;align-items:center;gap:12px;margin-bottom:13px}.settings-navigation .settings-nav[data-v-0801e069]{flex:1;min-width:0;margin:0}.components-entry[data-v-0801e069],.components-fallback[data-v-0801e069]{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;min-height:44px;padding:8px 12px;background:transparent;border:1px solid var(--device-line);border-radius:7px;color:var(--device-accent);font:inherit;cursor:pointer}.components-entry svg[data-v-0801e069],.components-fallback svg[data-v-0801e069]{width:18px;height:18px}.components-fallback[data-v-0801e069]{margin-bottom:12px}.current-speed-provider[data-v-0801e069]{margin:0 0 8px;font-size:12px;color:var(--device-muted)}.speed-component-entry[data-v-0801e069]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--device-line)}.speed-component-entry>span[data-v-0801e069]{font-size:12px;color:var(--device-muted);line-height:1.6}.speed-component-entry>button[data-v-0801e069]{flex:none}.floating-component-entry[data-v-0801e069]{margin-bottom:10px}@media(max-width:700px){.settings-navigation[data-v-0801e069]{flex-wrap:wrap;gap:8px}.settings-navigation .settings-nav[data-v-0801e069]{order:1;flex-basis:100%}.components-entry[data-v-0801e069]{margin-left:auto}.speed-component-entry[data-v-0801e069]{align-items:flex-start;flex-wrap:wrap}}.lan-settings fieldset[data-v-0801e069]{min-width:0;margin:0;padding:0;border:0}.setting-card h3[data-v-0801e069]{display:flex;align-items:center;gap:8px}.setting-card h3>svg[data-v-0801e069]{width:18px;height:18px;flex:none;color:var(--device-accent)}.settings-nav button[data-v-0801e069]{min-height:44px}.context-card strong[data-v-0801e069]{font-size:14px}.context-state[data-v-0801e069]{white-space:nowrap}.local-config-summary[data-v-0801e069]{display:grid;gap:12px;margin:0}.local-config-summary>div[data-v-0801e069]{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:baseline}.local-config-summary dt[data-v-0801e069]{font-size:12px;color:var(--device-muted)}.local-config-summary dd[data-v-0801e069]{margin:0;font-size:14px;overflow-wrap:anywhere}.config-address[data-v-0801e069]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px!important}.config-origin[data-v-0801e069]{margin:14px 0 4px}.setting-card .config-disclosure[data-v-0801e069]{display:inline-flex;align-items:center;gap:6px;padding:6px 0;border:0;color:var(--device-accent)}.config-disclosure svg[data-v-0801e069]{width:14px;height:14px;transform:rotate(0)}.config-disclosure[aria-expanded=true] svg[data-v-0801e069]{transform:rotate(90deg)}.speed-check-actions[data-v-0801e069]{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.setting-card .speed-inspect[data-v-0801e069]{color:var(--device-accent)}.switch-line[data-v-0801e069]{min-height:44px;cursor:pointer}.advanced-group>summary[data-v-0801e069]{min-height:44px;display:flex;align-items:center;gap:6px;list-style:none}.advanced-group>summary[data-v-0801e069]::-webkit-details-marker{display:none}.advanced-group>summary[data-v-0801e069]:before{content:"▸";font-size:12px}.advanced-group[open]>summary[data-v-0801e069]:before{transform:rotate(90deg)}.lan-settings[data-v-0801e069] .page-state{color:var(--device-text);background:var(--device-soft);border-color:var(--device-line)}.lan-settings[data-v-0801e069] .page-state__icon{color:var(--device-accent)}.lan-settings[data-v-0801e069] .page-state__body span{color:var(--device-muted);opacity:1}.lan-settings[data-v-0801e069]{color:var(--device-text)}.setting-card h3[data-v-0801e069],.migration-card h3[data-v-0801e069]{margin:0;padding:0;color:inherit;background:none!important;text-align:left}.card-heading p[data-v-0801e069]{margin:5px 0 0;color:var(--device-muted);font-size:12px;line-height:1.5}.context-card[data-v-0801e069]{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:0 0 14px;padding:13px 14px;background:var(--device-soft);border:1px solid var(--device-line);border-radius:9px}.context-card>div[data-v-0801e069]{display:grid;gap:4px}.context-card span[data-v-0801e069]{color:var(--device-muted);font-size:12px;line-height:1.6}.context-state[data-v-0801e069]{flex:none;padding:4px 8px;background:var(--device-panel);border-radius:999px;font-size:12px}.migration-card[data-v-0801e069]{margin:0 0 13px;padding:0;border:1px solid var(--device-line);border-radius:9px;background:var(--device-soft)}.migration-heading[data-v-0801e069],.migration-actions[data-v-0801e069]{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.migration-heading[data-v-0801e069]{min-height:44px;padding:13px 14px;cursor:pointer;list-style:none}.migration-heading[data-v-0801e069]::-webkit-details-marker{display:none}.migration-heading h3[data-v-0801e069]{font-size:16px}.migration-heading p[data-v-0801e069]{margin:4px 0 0;opacity:.67}.migration-heading>strong[data-v-0801e069]{flex:none;padding:4px 8px;background:var(--device-panel);border-radius:999px;font-size:12px}.migration-body[data-v-0801e069]{padding:0 14px 13px}.migration-card ul[data-v-0801e069]{display:grid;gap:5px;margin:0 0 11px;padding:0;list-style:none}.migration-card li[data-v-0801e069]{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(120px,1.4fr) auto;gap:8px;align-items:center;padding:7px 8px;background:#7f7f7f0d;border-radius:6px}.migration-card li b[data-v-0801e069]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.migration-card li em[data-v-0801e069]{font-size:12px;font-style:normal}.migration-card li em.conflict[data-v-0801e069],.migration-card li em.unresolved[data-v-0801e069],.migration-warning[data-v-0801e069]{color:#9b3b16}.migration-more[data-v-0801e069],.migration-warning[data-v-0801e069],.migration-read-error[data-v-0801e069]{margin:8px 0;font-size:12px}.migration-actions[data-v-0801e069]{justify-content:flex-end}.migration-actions button[data-v-0801e069]{min-height:44px;padding:6px 11px;color:var(--device-accent);background:transparent;border:1px solid var(--device-line);border-radius:7px;cursor:pointer}.migration-actions .primary[data-v-0801e069]{color:var(--device-primary-text);background:var(--device-primary-bg);border-color:var(--device-primary-bg)}.settings-nav[data-v-0801e069]{display:flex;gap:5px;margin-bottom:13px;border-bottom:1px solid rgba(127,127,127,.14)}.settings-nav button[data-v-0801e069]{padding:9px 12px;color:inherit;background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer}.settings-nav button.active[data-v-0801e069]{color:var(--device-accent);border-color:var(--device-accent);font-weight:600}.settings-stack[data-v-0801e069]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.setting-card[data-v-0801e069]{min-width:0;padding:14px;border:1px solid var(--device-line);border-radius:9px}.setting-card h3[data-v-0801e069]{font-size:16px}.card-heading[data-v-0801e069]{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:13px}.setting-card label[data-v-0801e069]:not(.switch-line){display:grid;gap:5px;margin:10px 0;font-size:12px}.setting-card input[data-v-0801e069]:not([type=checkbox]),.setting-card select[data-v-0801e069]{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:7px 9px;color:inherit;background:transparent;border:1px solid var(--device-line);border-radius:7px}.switch-line[data-v-0801e069]{display:flex;align-items:center;gap:7px;white-space:nowrap}.two-columns[data-v-0801e069],.route-form[data-v-0801e069]{display:grid;grid-template-columns:1fr 1fr;gap:9px}.route-form button[data-v-0801e069]{grid-column:1/-1}.setting-card button[data-v-0801e069]{min-height:44px;padding:6px 11px;color:var(--device-accent);background:transparent;border:1px solid var(--device-line);border-radius:7px;cursor:pointer}.setting-card .primary[data-v-0801e069]{color:var(--device-primary-text);background:var(--device-primary-bg);border-color:var(--device-primary-bg)}.capability-pill[data-v-0801e069]{flex:none;padding:4px 8px;border-radius:999px;background:#7f7f7f14;font-size:12px}.capability-pill.available[data-v-0801e069]{color:var(--device-good);background:var(--device-soft)}.capability-pill.not_installed[data-v-0801e069],.capability-pill.error[data-v-0801e069],.capability-pill.unsupported[data-v-0801e069]{color:var(--device-warning);background:var(--device-warning-soft)}.capability-action[data-v-0801e069],.state-message[data-v-0801e069]{padding:0;color:var(--device-muted);font-size:13px;line-height:1.6}.capability-action p[data-v-0801e069]{margin:0 0 9px}.route-list[data-v-0801e069]{display:grid;gap:6px;margin-top:12px}.route-list>div[data-v-0801e069]{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px;background:#7f7f7f0d;border-radius:7px}.route-list span[data-v-0801e069]{display:grid;gap:2px}.route-list small[data-v-0801e069]{opacity:.62}.route-actions[data-v-0801e069],.preview-actions[data-v-0801e069]{display:flex;gap:6px;align-items:center}.impact-preview[data-v-0801e069]{margin-top:12px;padding:12px;border:1px solid var(--device-line);border-radius:8px;background:var(--device-accent-soft)}.impact-preview h4[data-v-0801e069]{margin:0 0 6px}.impact-preview p[data-v-0801e069]{margin:5px 0}.preview-actions[data-v-0801e069]{justify-content:flex-end;margin-top:10px}.field-error[data-v-0801e069]{color:#9b3b16}.danger-link[data-v-0801e069]{color:#a13c3c!important;border-color:#a13c3c4d!important}.feedback[data-v-0801e069]{margin:12px 0 0;padding:9px;border-radius:7px}.feedback.success[data-v-0801e069]{color:var(--device-good);background:var(--device-soft)}.feedback.error[data-v-0801e069]{color:#9b3b16;background:#fff1e8}button[data-v-0801e069]:focus-visible,input[data-v-0801e069]:focus-visible,select[data-v-0801e069]:focus-visible,summary[data-v-0801e069]:focus-visible{outline:2px solid var(--device-accent);outline-offset:2px}button[data-v-0801e069]:disabled{opacity:.55;cursor:not-allowed}.capability-actions[data-v-0801e069]{display:flex;gap:7px;flex-wrap:wrap}.service-ready[data-v-0801e069]{margin:0 0 12px;padding:10px;color:var(--device-good);background:var(--device-soft);border-radius:8px}.advanced-group[data-v-0801e069]{margin-top:13px;padding-top:11px;border-top:1px solid rgba(127,127,127,.14)}.advanced-group summary[data-v-0801e069]{cursor:pointer;font-weight:600}.advanced-group>label[data-v-0801e069]{margin-top:12px!important}.advanced-group small[data-v-0801e069]{opacity:.66}.legacy-migration[data-v-0801e069]{margin-top:12px;padding:11px;border-radius:8px;background:#7f7f7f0d}.legacy-migration h4[data-v-0801e069]{margin:0}.legacy-migration p[data-v-0801e069]{margin:6px 0 10px}.migration-review[data-v-0801e069]{margin-top:10px}.migration-review ul[data-v-0801e069]{display:grid;gap:5px;margin:0 0 8px;padding:0;list-style:none}.migration-review li[data-v-0801e069]{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(120px,1.4fr) auto;gap:8px;align-items:center;padding:7px 8px;background:#7f7f7f0d;border-radius:6px}.migration-review li b[data-v-0801e069]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.migration-review li em[data-v-0801e069]{font-size:12px;font-style:normal}.migration-review li em.unsupported[data-v-0801e069],.migration-review li em.conflict[data-v-0801e069]{color:#9b3b16}.migration-review li em.convert[data-v-0801e069]{color:#176b45}.checkbox-line[data-v-0801e069]{display:flex!important;align-items:flex-start;gap:7px}.setting-hint[data-v-0801e069]{font-size:12px;color:var(--device-muted);line-height:1.6}@media(max-width:900px){.settings-stack[data-v-0801e069]{grid-template-columns:1fr}}@media(max-width:520px){.context-card[data-v-0801e069],.card-heading[data-v-0801e069],.migration-heading[data-v-0801e069]{align-items:flex-start;flex-direction:column}.migration-card li[data-v-0801e069],.migration-review li[data-v-0801e069]{grid-template-columns:1fr auto}.migration-card li b[data-v-0801e069],.migration-review li b[data-v-0801e069]{grid-column:1/-1;grid-row:2}.settings-nav[data-v-0801e069]{overflow-x:auto}.settings-nav button[data-v-0801e069]{flex:1;min-width:0;white-space:normal;padding:8px 6px;font-size:13px}.two-columns[data-v-0801e069],.route-form[data-v-0801e069]{grid-template-columns:1fr}.route-list>div[data-v-0801e069]{align-items:flex-start;flex-direction:column}.route-actions[data-v-0801e069]{width:100%;justify-content:flex-end}.setting-card[data-v-0801e069]{padding:12px}}@keyframes bganimation-443a52ed{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-443a52ed{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-443a52ed{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-443a52ed]{animation:rotateEnter-443a52ed .7s;position:relative}.rotate-leave-active[data-v-443a52ed]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-443a52ed]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.device-management[data-v-443a52ed]{width:100%;margin:0;color:var(--device-text);font-size:14px}.breadcrumbs[data-v-443a52ed]{display:flex;align-items:center;gap:7px;margin-bottom:24px;padding-top:4px;font-size:13px}.breadcrumbs a[data-v-443a52ed]{color:var(--breadcrumbs-tit-color);text-decoration:none}.breadcrumbs span[data-v-443a52ed]:last-child{color:var(--breadcrumbs-tit-color1)}.device-workspace[data-v-443a52ed]{max-width:1640px;margin:0 auto}.device-workspace.has-network-nav[data-v-443a52ed]{display:grid;grid-template-columns:208px minmax(0,1fr);gap:20px;align-items:start}.network-sidebar[data-v-443a52ed]{position:sticky;top:24px;padding:22px 12px 16px;color:var(--device-text);background:var(--device-panel);border:1px solid var(--device-line);border-radius:12px}.network-sidebar h2[data-v-443a52ed]{margin:0 12px 18px;padding:0;color:var(--device-muted);background:none;border:0;box-shadow:none;text-align:left;font-size:12px;font-weight:500}.network-navigation[data-v-443a52ed]{display:grid;gap:6px}.network-navigation button[data-v-443a52ed]{display:flex;align-items:center;gap:12px;width:100%;min-height:66px;margin:0;padding:12px;text-align:left;color:var(--device-text);background:transparent;border:0;border-radius:9px;cursor:pointer}.network-navigation button[data-v-443a52ed]:hover{background:var(--device-soft)}.network-navigation button[aria-current=true][data-v-443a52ed]{color:var(--device-accent);background:var(--device-accent-soft)}.network-navigation svg[data-v-443a52ed]{flex:none;width:21px;height:21px}.network-navigation button>span[data-v-443a52ed]{display:grid;gap:5px;min-width:0}.network-navigation strong[data-v-443a52ed]{font-size:14px;font-weight:600;overflow-wrap:anywhere}.network-navigation small[data-v-443a52ed]{color:var(--device-muted);font-size:11px;overflow-wrap:anywhere}.network-divider[data-v-443a52ed]{height:1px;margin:8px 12px;background:var(--device-line)}.network-sidebar>p[data-v-443a52ed]{margin:28px 12px 0;padding-top:16px;color:var(--device-muted);border-top:1px solid var(--device-line);font-size:11px;line-height:1.8}.workspace-panel[data-v-443a52ed]{min-width:0;background:var(--device-panel);border:1px solid var(--device-line);border-radius:12px}.scope-heading[data-v-443a52ed]{padding:26px 26px 14px}.scope-heading h1[data-v-443a52ed]{margin:0;padding:0;color:var(--device-text);background:none;border:0;box-shadow:none;text-align:left;font-size:25px;font-weight:650;line-height:1.4;letter-spacing:-.5px}.scope-heading p[data-v-443a52ed]{margin:7px 0 0;color:var(--device-muted);font-size:13px}.primary-tabs[data-v-443a52ed]{display:flex;gap:24px;margin:0 26px;border-bottom:1px solid var(--device-line)}.primary-tabs button[data-v-443a52ed]{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;margin:0;padding:10px 2px;color:var(--device-muted);background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer}.primary-tabs button svg[data-v-443a52ed]{width:17px;height:17px;flex:none}.primary-tabs button.active[data-v-443a52ed]{color:var(--device-accent);border-bottom-color:var(--device-accent);font-weight:600}.primary-tabs button[data-v-443a52ed]:focus-visible,.network-navigation button[data-v-443a52ed]:focus-visible{outline:2px solid var(--device-accent);outline-offset:2px}.primary-content[data-v-443a52ed]{min-height:58vh;padding:24px 26px}.scope-notice[data-v-443a52ed]{margin:0 0 18px;padding:12px 16px;color:var(--device-muted);background:var(--device-soft);border-radius:8px;font-size:13px;line-height:1.6}.scope-placeholder[data-v-443a52ed]{margin:0;padding:70px 18px;color:var(--device-muted);text-align:center;line-height:1.8}.lan-selector[data-v-443a52ed]{display:none}@media(max-width:900px){.device-workspace.has-network-nav[data-v-443a52ed]{display:block}.network-sidebar[data-v-443a52ed]{display:none}.lan-selector[data-v-443a52ed]{display:flex;align-items:center;gap:10px;margin:18px 22px 0;color:var(--device-muted);font-size:12px}.lan-selector select[data-v-443a52ed]{flex:1;min-width:0;min-height:44px;padding:8px 12px;color:var(--device-text);background:var(--device-soft);border:1px solid var(--device-line);border-radius:7px;font:inherit}.scope-heading[data-v-443a52ed]{padding:20px 22px 12px}.primary-tabs[data-v-443a52ed]{margin:0 22px}.primary-content[data-v-443a52ed]{padding:20px 22px}}@media(max-width:420px){.breadcrumbs[data-v-443a52ed]{margin-bottom:18px}.scope-heading[data-v-443a52ed]{padding:18px 16px 8px}.scope-heading h1[data-v-443a52ed]{font-size:22px}.lan-selector[data-v-443a52ed]{margin:16px 16px 0}.primary-tabs[data-v-443a52ed]{gap:8px;margin:0 16px}.primary-tabs button[data-v-443a52ed]{flex:1;min-width:0;gap:5px;padding:8px 0;font-size:12px;white-space:normal}.primary-tabs button svg[data-v-443a52ed]{display:none}.primary-content[data-v-443a52ed]{padding:18px 14px}}.device-management header:before,.device-management header:after{content:none!important;display:none!important;pointer-events:none!important}.device-management .group-header,.device-management .lan-settings>header{color:var(--tit-color)!important;background:transparent!important}@media(max-width:420px){a.btn[href="/cgi-bin/luci/admin/system/admin"]{max-width:140px;white-space:normal;overflow-wrap:anywhere;text-align:center}}@media(prefers-color-scheme:dark){body:not([theme=light]){background:#151518}}:root[data-darkmode=true],body[data-quickstart-theme=dark]{background:#151518}@media(prefers-color-scheme:dark){body:not([theme=light]) .device-management .feedback.error,body:not([theme=light]) .device-management .batch-result.partial,body:not([theme=light]) .device-management .batch-result.failed,body:not([theme=light]) .device-management .state-pill.orphaned,body:not([theme=light]) .device-management .state-pill.unsupported,body:not([theme=light]) .device-management .capability-pill.not_installed,body:not([theme=light]) .device-management .capability-pill.error{color:#ffbd8a!important;background:#ff914d1f!important}body:not([theme=light]) .device-management .feedback.success,body:not([theme=light]) .device-management .batch-result.all_success,body:not([theme=light]) .device-management .capability-pill.available{color:#7cdda9!important;background:#26a26924!important}body:not([theme=light]) .device-management .telemetry-notice,body:not([theme=light]) .device-management .attention{color:#ffd37a!important;background:#ffc44d1c!important;border-color:#ffc44d4d!important}}:root[data-darkmode=true] .device-management .feedback.error,:root[data-darkmode=true] .device-management .batch-result.partial,:root[data-darkmode=true] .device-management .batch-result.failed,body[data-quickstart-theme=dark] .device-management .feedback.error,body[data-quickstart-theme=dark] .device-management .batch-result.partial,body[data-quickstart-theme=dark] .device-management .batch-result.failed{color:#ffbd8a!important;background:#ff914d1f!important}@keyframes bganimation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active{animation:rotateEnter .7s;position:relative}.rotate-leave-active{opacity:0;display:none;position:relative;z-index:-999}.app-container{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:999;backdrop-filter:blur(2px)}.modal-container{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:90%;max-width:var(--v45d231e9);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-container .modal-header{padding:8px 12px;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}.modal-container .modal-header .modal-title{margin:0;font-size:18px;color:#333;padding:0;text-align:center;background:transparent!important}.modal-container .modal-header .modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#999;transition:color .2s}.modal-container .modal-header .modal-close:hover{color:#666}.modal-container .modal-content{padding:18px;overflow-y:auto;flex:1}.modal-container .modal-footer{padding:8px 12px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;gap:12px}.modal-container .modal-footer .modal-button{padding:4px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s;border:1px solid transparent}.modal-container .modal-footer .modal-button.cancel{background-color:#fff;border-color:#ddd;color:#666}.modal-container .modal-footer .modal-button.cancel:hover{background-color:#f5f5f5}.modal-container .modal-footer .modal-button.confirm{background-color:#553afe;color:#fff}.modal-container .modal-footer .modal-button.confirm:hover{background-color:#3f21fe}@media(max-width:768px){.modal-container{width:95%;max-width:none;max-height:90vh;margin:0 10px}.modal-container .modal-header{padding:12px 16px}.modal-container .modal-header .modal-title{font-size:16px;background:transparent!important}.modal-container .modal-header .modal-close{font-size:20px}.modal-container .modal-content{padding:16px}.modal-container .modal-footer{padding:12px 16px;flex-direction:column-reverse;gap:8px}.modal-container .modal-footer .modal-button{width:100%;padding:10px;font-size:15px}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .3s ease,opacity .3s ease}.slide-enter-from,.slide-leave-to{transform:translateY(-20px);opacity:0}.icon[data-v-c397f762]{width:24px;height:24px;margin-right:6px}.icon1[data-v-c397f762]{width:16px;height:16px;margin-right:8px}.icon2[data-v-c397f762]{width:20px;height:20px;margin-right:8px}.icon3[data-v-c397f762]{width:17px;height:17px;margin-right:8px}.m-20[data-v-c397f762]{margin:20px 0!important}[data-v-c397f762] .modal-container .modal-header{border-bottom:none;padding-bottom:0;padding-left:20px}[data-v-c397f762] .modal-container .modal-header .modal-title{text-align:left}[data-v-c397f762] .modal-container .modal-content{padding:0 20px 20px}.item_container[data-v-c397f762]{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:24px;font-size:16px}.item_container .item[data-v-c397f762]{padding:16px;background:var(--card-bg-color);border-radius:10px}.item_container .item .item_title[data-v-c397f762]{display:flex;align-items:center}.item_container .item .item_title>span[data-v-c397f762]{color:var(--app-container_title-color);display:inline-block;padding-top:2px}.item_container .item>p[data-v-c397f762]{color:#717182;margin-top:10px}.item_container .item .wifi_btn[data-v-c397f762]{margin:40px 0;display:flex;justify-content:center}.item_container .item .wifi_btn>div[data-v-c397f762]{background:#000;padding:12px 24px;border-radius:6px;display:flex;align-items:center;color:#fff;cursor:pointer;font-size:14px}.item_container .item .wifi_btn>div>span[data-v-c397f762]{display:inline-block;padding-top:2px}.item_container .item .wifi_btn .start_btn[data-v-c397f762]{padding:10px;width:100%;display:flex;justify-content:center}.item_container .item .progress>p[data-v-c397f762]{display:flex;justify-content:space-between;font-size:16px;color:#0a0a0a;margin-bottom:12px}.item_container .item .is-bg[data-v-c397f762]{opacity:.6;pointer-events:none;cursor:not-allowed}.item_container .item .select_box[data-v-c397f762]{margin-top:30px;color:var(--app-container_title-color)}.item_container .item .select_box>select[data-v-c397f762]{width:100%;background:#f3f3f5;border-radius:6px;color:var(--app-container_title-color)}.item_container .item .select_box>select.is-placeholder[data-v-c397f762]{color:#9aa0a6}.item_container .item .select_box option[disabled][data-v-c397f762]{color:#9aa0a6}.item_container .item .select_box option[hidden][data-v-c397f762]{display:none}.item_container .item .tip[data-v-c397f762]{text-align:center;font-size:14px}.item_container .item .log_info[data-v-c397f762]{padding:24px 16px;margin-top:20px;background:#000;border-radius:8px;max-height:300px;overflow-y:auto}.item_container .item .log_info[data-v-c397f762]::-webkit-scrollbar{height:6px}.item_container .item .log_info[data-v-c397f762]::-webkit-scrollbar-thumb{background:#777780;border-radius:6px}.item_container .item .log_info>p[data-v-c397f762]{font-size:14px;color:#05df72;margin-bottom:12px}.item_container .item .log_info>p[data-v-c397f762]:last-child{margin-bottom:0}.item_container .item .result_box[data-v-c397f762]{margin-top:20px}.item_container .item .result_box .result[data-v-c397f762]{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px}.item_container .item .result_box .result .result_state[data-v-c397f762]{display:flex;flex-direction:column;align-items:center;color:var(--app-container_title-color)}.item_container .item .result_box .result .result_state>div[data-v-c397f762]{margin-bottom:6px;font-weight:700;font-size:18px;letter-spacing:.1em}.item_container .item .result_box .result .result_state .result_txt[data-v-c397f762]{font-size:12px}.item_container .item .result_box .result .result_item[data-v-c397f762]{background:#ececf0;border-radius:6px;padding:20px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center}.item_container .item .result_box .result .result_item .result_title[data-v-c397f762]{font-size:16px;color:#0a0a0a;margin-bottom:12px}.item_container .item .result_box .result .result_item .speed_value[data-v-c397f762]{font-size:24px;font-weight:700;letter-spacing:.1em}.item_container .item .result_box .result .result_item .speed_title[data-v-c397f762]{font-size:12px}.item_container .item .result_box .result .result_item .icon_speed[data-v-c397f762]{width:30px;height:30px;margin-bottom:10px}.item_container .item .result_box .result .result_item .icon_speed1[data-v-c397f762]{width:26px;height:26px;margin-bottom:10px}.item_container .item .result_box .result .result_item .unit[data-v-c397f762]{color:#717182;display:inline-block;margin-bottom:6px}.custom-content p[data-v-c397f762]{color:#717182}.custom-content .address_box[data-v-c397f762]{background:#ececf0;border-radius:6px;padding:10px 12px;margin-top:16px;display:flex;justify-content:space-between;align-items:center}.custom-content .address_box>span[data-v-c397f762]{font-size:16px}.custom-content .address_box>div[data-v-c397f762]{background:#fff;padding:6px 12px;border-radius:4px;cursor:pointer}@keyframes spin-c397f762{to{transform:rotate(360deg)}}.icon3-wrap[data-v-c397f762]{display:inline-flex;width:17px;height:17px;margin-right:8px;align-items:center;justify-content:center}.icon3-wrap .icon3[data-v-c397f762]{width:100%;height:100%}.is-rotating[data-v-c397f762]{animation:spin-c397f762 1s linear infinite;transform-origin:center;transform-box:fill-box;will-change:transform}.line[data-v-c397f762]{height:1px;background:#d9d9d9;margin:20px 0}.status[data-v-c397f762]{display:inline-block;padding:4px 12px;color:#fff;border-radius:6px;font-size:12px;margin-bottom:10px}.status_bg1[data-v-c397f762]{background:#00c950}.status_bg2[data-v-c397f762]{background:#2b7fff}.status_bg3[data-v-c397f762]{background:#ef4444}.status_bg4[data-v-c397f762]{background:#f0b100}@keyframes bganimation-c397f762{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-c397f762{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-c397f762{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-c397f762]{animation:rotateEnter-c397f762 .7s;position:relative}.rotate-leave-active[data-v-c397f762]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-c397f762]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@media(max-width:827px){.item_container[data-v-c397f762]{grid-template-columns:repeat(1,1fr);grid-gap:12px;padding-bottom:16px}}.icon[data-v-1fb34484]{width:30px;height:30px;margin-right:10px;display:block}.icon[data-v-1fb34484] svg{display:block}.container[data-v-1fb34484]{min-height:87vh}.container .title[data-v-1fb34484]{font-size:16px;margin-bottom:20px;display:flex;justify-content:center;flex-direction:column}.container .title>div[data-v-1fb34484]{display:inline-flex;justify-content:center;align-items:center;line-height:1;margin-bottom:10px}.container .title>div>span[data-v-1fb34484]{color:var(--app-container_title-color);position:relative;top:1px;font-weight:600}.container .title>p[data-v-1fb34484]{text-align:center;color:#717182}@keyframes bganimation-1fb34484{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-1fb34484{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-1fb34484{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-1fb34484]{animation:rotateEnter-1fb34484 .7s;position:relative}.rotate-leave-active[data-v-1fb34484]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-1fb34484]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}@keyframes bganimation-d46f20af{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-d46f20af{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-d46f20af{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-d46f20af]{animation:rotateEnter-d46f20af .7s;position:relative}.rotate-leave-active[data-v-d46f20af]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-d46f20af]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}button[data-v-d46f20af]{outline:none;cursor:pointer;border:none}.pc-radio[data-v-d46f20af]{display:flex;flex-wrap:wrap;align-items:center}.label-flex.pc-radio label[data-v-d46f20af]{width:100px;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;color:#666}.label-flex.pc-radio input[type=radio][data-v-d46f20af]{margin:0 4px 0 0;top:0}.mobile-switch[data-v-d46f20af]{display:none;align-items:center}.switch-core[data-v-d46f20af]{position:relative;width:50px;border:1px solid #dcdfe6;outline:none;border-radius:20px;box-sizing:border-box;background:#dcdfe6;cursor:pointer;transition:border-color .3s,background-color .3s;display:inline-block}.switch-core.is-checked[data-v-d46f20af]{border-color:#409eff;background-color:#409eff}.switch-core.is-disabled[data-v-d46f20af]{opacity:.6;cursor:not-allowed}.switch-button[data-v-d46f20af]{position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.switch-core.is-checked .switch-button[data-v-d46f20af]{transform:translate(20px)}.switch-label[data-v-d46f20af]{font-size:14px;color:#999}.switch-label.active[data-v-d46f20af]{color:#409eff}form.form-container[data-v-d46f20af]{display:block;width:100%;padding:0 1rem;margin-top:50px}form.form-container .label-name[data-v-d46f20af]{display:block;width:100%;margin-bottom:.5rem;color:var(--item-label_key-span-color)}form.form-container .label-name span[data-v-d46f20af]:before{content:"*";color:#f56c6c;margin-right:4px;width:10px;display:inline-block;vertical-align:middle}form.form-container .label-value[data-v-d46f20af]{display:block;width:100%;margin-bottom:1rem}form.form-container .label-value input[data-v-d46f20af],form.form-container .label-value select[data-v-d46f20af]{display:block;width:100%;height:42px;background:none;border:1px solid #c2c2c2;color:var(--item-label_key-span-color);font-size:14px}form.form-container .label-value input>option[data-v-d46f20af],form.form-container .label-value select>option[data-v-d46f20af]{color:#8898aa}form.form-container .label-value input[data-v-d46f20af]:focus,form.form-container .label-value select[data-v-d46f20af]:focus{transition:.2s;border:1px solid #418dfe}form.form-container .label-value select[data-v-d46f20af]{border-radius:3px;padding:0 10px}form.form-container .label-value input[data-v-d46f20af]{border-left:none!important;border-right:none!important;border-top:none!important;box-shadow:none!important;padding:0 10px}form.form-container .label-value input[type=checkbox][data-v-d46f20af],form.form-container .label-value input[type=radio][data-v-d46f20af]{width:auto}form.form-container .label-value input[type=radio][data-v-d46f20af]{margin:0 4px 0 0;top:0}form.form-container .label-value input[data-v-d46f20af]:disabled{background-color:#eee;border:1px solid #c2c2c2;border-radius:3px}form.form-container .label-value input[data-v-d46f20af]::placeholder{color:var(--item-label_value-span-color);opacity:.54;font-size:14px}form.form-container .label-value input[data-v-d46f20af]:-ms-input-placeholder{color:var(--item-label_value-span-color);opacity:.54;font-size:14px}form.form-container .label-value input[data-v-d46f20af]::-ms-input-placeholder{color:var(--item-label_value-span-color);opacity:.54;font-size:14px}form.form-container .label-btns[data-v-d46f20af]{width:100%;display:flex;flex-wrap:wrap;justify-content:flex-end}form.form-container .label-msg[data-v-d46f20af]{display:block;width:100%;color:#ff3b3b;font-size:14px}form.form-container .label-msg.warning[data-v-d46f20af]{color:#f9ad1e}form.form-container .label-flex[data-v-d46f20af]{width:100%;display:flex;flex-wrap:wrap;align-items:center}form.form-container .label-flex label[data-v-d46f20af]{width:100px;display:flex;flex-wrap:wrap;align-items:center;cursor:pointer;color:#666}.form-item[data-v-d46f20af]{display:flex;align-items:center;height:55px}.form-item .label-name[data-v-d46f20af]{width:200px!important}.form-item .label-value[data-v-d46f20af]{width:300px!important;padding-top:10px;position:relative;display:flex!important;align-items:center}p[data-v-d46f20af]{font-size:1em;color:#999;line-height:26px;text-align:left;margin-bottom:1rem}.label-btns[data-v-d46f20af]{width:500px!important;margin-top:1rem}.label-btns .btn[data-v-d46f20af]{width:300px!important;text-align:center;border-radius:32px}.label-btns .btn[data-v-d46f20af]:hover{background:#5279f7;transition:.3}.label-btns .primary-btn[data-v-d46f20af]{border:none;background:#5279f7;color:#fff;margin-bottom:10px}.label-btns .primary-btn[data-v-d46f20af]:hover{opacity:.9;transition:.3}select[data-v-d46f20af]:disabled{background-color:#eee!important;border:1px solid #c2c2c2!important}.seeIcon[data-v-d46f20af]{width:22px;height:22px;position:absolute;cursor:pointer;z-index:1;right:6px;top:50%;transform:translateY(-50%) scale(1);transition:all .3s ease;transform-origin:center}.seeIcon[data-v-d46f20af]:hover{transform:translateY(-50%) scale(1.1)}@media only screen and (max-width:1050px){form.form-container[data-v-d46f20af]{padding:0;margin-top:-16px}form.form-container .form-item[data-v-d46f20af]{position:relative;height:auto;margin-bottom:0;height:50px;padding-top:6px;border-bottom:1px solid rgba(0,0,0,.16)!important}form.form-container .form-item .label-name[data-v-d46f20af]{width:100%!important;margin-bottom:0;font-size:14px}form.form-container .form-item .label-name>span[data-v-d46f20af]{color:var(--item-label_key-span-color)}form.form-container .form-item .label-value[data-v-d46f20af]{width:100%!important;margin-bottom:0;padding-top:0}form.form-container .form-item .label-value input[data-v-d46f20af],form.form-container .form-item .label-value select[data-v-d46f20af]{height:40px;font-size:14px}form.form-container .form-item .label-value .password_input[data-v-d46f20af]{padding-right:24px}form.form-container .form-item .label-value input[data-v-d46f20af]{border:none;text-align:right;padding:0}form.form-container .form-item .label-value select[data-v-d46f20af]:disabled{border:none!important}form.form-container .form-item .label-value select[data-v-d46f20af]{padding-right:16px!important;border:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:0;outline:none;background:transparent;text-align:right}form.form-container .form-item .label-value[data-v-d46f20af] ::selection{background:transparent;color:inherit}form.form-container .form-item .label-value[data-v-d46f20af] ::-moz-selection{background:transparent;color:inherit}form.form-container .label-flex[data-v-d46f20af]{display:flex}form.form-container .label-flex label[data-v-d46f20af]{width:100%;margin-bottom:.5rem}form.form-container .label-btns[data-v-d46f20af]{width:100%!important;margin-top:1.5rem}form.form-container .label-btns .btn[data-v-d46f20af]{width:100%!important;height:44px;font-size:16px}.seeIcon[data-v-d46f20af]{width:20px;height:20px;right:0}.pc-radio[data-v-d46f20af],.label-flex[data-v-d46f20af]{display:none!important}.mobile-switch[data-v-d46f20af]{display:flex;align-items:center;height:50px}.switch_label[data-v-d46f20af]{display:flex;justify-content:end}.switch-core[data-v-d46f20af]{width:50px;height:24px}.switch-button[data-v-d46f20af]{width:20px;height:20px}.switch-core.is-checked .switch-button[data-v-d46f20af]{transform:translate(26px)}.select-arrow[data-v-d46f20af]{position:absolute;right:6px;top:50%!important;transform:translateY(-50%)!important;width:10px;height:10px;border-top:2px solid #606165;border-right:2px solid #606165;transform:translateY(-50%) rotate(45deg)!important;pointer-events:none}}@keyframes bganimation-aa1ba5db{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes rotateEnter-aa1ba5db{0%{transform:rotateY(180deg)}10%{transform:rotateY(198deg)}20%{transform:rotateY(216deg)}30%{transform:rotateY(234deg)}40%{transform:rotateY(252deg)}50%{transform:rotateY(270deg)}60%{transform:rotateY(288deg)}70%{transform:rotateY(306deg)}80%{transform:rotateY(324deg)}90%{transform:rotateY(342deg)}to{transform:rotateY(360deg)}}@keyframes turns-aa1ba5db{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(360deg)}}.rotate-enter-active[data-v-aa1ba5db]{animation:rotateEnter-aa1ba5db .7s;position:relative}.rotate-leave-active[data-v-aa1ba5db]{opacity:0;display:none;position:relative;z-index:-999}.app-container[data-v-aa1ba5db]{width:100%;background-color:var(--card-bg-color);box-shadow:var(--card-box-shadow);padding:10px 30px;border-radius:6px;position:relative}.page-container[data-v-aa1ba5db]{width:100%;background-color:var(--card-bg-color);border-radius:6px;padding:3rem;margin-top:50px}.mobile-tags-container[data-v-aa1ba5db]{display:none}.page-flex[data-v-aa1ba5db]{display:flex}.page-flex .page-sidebar[data-v-aa1ba5db]{flex:0 0 200px;border-right:1px solid #eee}.page-flex .page-sidebar .item[data-v-aa1ba5db]{width:100%;height:42px;line-height:42px;font-size:16px;cursor:pointer;color:var(--item-label_key-span-color);display:block;user-select:none;position:relative;display:flex;flex-wrap:wrap;align-items:center}.page-flex .page-sidebar .item[data-v-aa1ba5db]:hover,.page-flex .page-sidebar .item.activeItem[data-v-aa1ba5db]{transition:.3s;color:#418cff}.page-flex .page-sidebar .item.activeItem[data-v-aa1ba5db]:before{content:"";position:absolute;left:-1rem;width:3px;height:20px;background-color:#4388ff}.page-flex .page-main[data-v-aa1ba5db]{flex:1;padding-left:24px}@media(max-width:827px){.page-container[data-v-aa1ba5db]{padding:12px 12px 0 8px;margin-top:0}.page-flex[data-v-aa1ba5db]{display:block}.page-flex .page-sidebar[data-v-aa1ba5db]{display:none}.page-flex .page-main[data-v-aa1ba5db]{padding-left:0;padding-top:16px}.mobile-tags-container[data-v-aa1ba5db]{display:block;width:100%;margin-bottom:16px;position:relative}.tags-wrapper[data-v-aa1ba5db]{display:flex;align-items:center;height:40px;position:relative}.tags-scroll[data-v-aa1ba5db]{flex:1;display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;height:100%;align-items:center;white-space:nowrap;padding-right:40px}.tags-scroll[data-v-aa1ba5db]::-webkit-scrollbar{display:none}.tag-item[data-v-aa1ba5db]{flex-shrink:0;padding:7px 12px;margin-right:8px;border-radius:4px;background-color:var(--tag-bg-color);color:var(--item-label_key-span-color);font-size:12px;line-height:18px;cursor:pointer;white-space:nowrap}.tag-item.active[data-v-aa1ba5db]{background-color:#5279f7;color:#fff}.more-btn-wrapper[data-v-aa1ba5db]{position:absolute;right:-6px;top:0;height:100%;width:40px;display:flex;align-items:center;justify-content:flex-end;pointer-events:none}.fade-overlay[data-v-aa1ba5db]{position:absolute;right:0;top:50%;transform:translateY(-50%);width:100px;height:32px;background:var(--gradient-bg-color)}.more-btn[data-v-aa1ba5db]{width:28px;height:28px;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;cursor:pointer;pointer-events:auto;position:relative;z-index:1}.more-btn .line[data-v-aa1ba5db]{width:14px;height:2px;background-color:#5279f7;margin:2px 0;border-radius:1px}[data-v-aa1ba5db] .showSide{z-index:1!important}.popup-overlay[data-v-aa1ba5db]{position:fixed;inset:0;background-color:#00000080;z-index:1000;display:flex;justify-content:center;align-items:flex-start}.popup-content[data-v-aa1ba5db]{width:100%;max-height:85vh;background-color:var(--popup-bg-color);border-radius:0 0 4px 4px;animation:slideDown-aa1ba5db .3s ease-out;overflow-y:auto;padding-top:25px}.popup-content .popup-tag-item[data-v-aa1ba5db],.popup-content .active[data-v-aa1ba5db]{text-align:center;padding:8px 12px 5px;width:calc((100% - 24px) / 3)}@keyframes slideDown-aa1ba5db{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.popup-tags[data-v-aa1ba5db]{padding:12px;display:flex;flex-wrap:wrap;gap:8px;max-height:70vh;overflow-y:auto}.popup-tag-item[data-v-aa1ba5db]{padding:7px 12px;border-radius:4px;background-color:#f5f5f5;color:#333;font-size:12px;line-height:18px;cursor:pointer;white-space:nowrap}.popup-tag-item.active[data-v-aa1ba5db]{background-color:#5279f7;color:#fff}.popup-footer[data-v-aa1ba5db]{display:flex;padding:12px;border-top:1px solid #f0f0f0}.popup-footer button[data-v-aa1ba5db]{flex:1;height:36px;border-radius:23px;font-size:14px;cursor:pointer}.popup-footer .cancel-btn[data-v-aa1ba5db]{background-color:#f5f5f5;color:#000;border:none;margin-right:12px}.popup-footer .confirm-btn[data-v-aa1ba5db]{background-color:#5279f7;color:#fff;border:none}}.fastnet-install[data-v-a66b8b77]{color:var(--qs-card-text);font:14px/1.6 Arial,Microsoft YaHei,sans-serif}.fastnet-install[data-v-a66b8b77] *{box-sizing:border-box}.fastnet-install p[data-v-a66b8b77]{margin:0}.fastnet-install-product[data-v-a66b8b77]{display:flex;align-items:center;gap:12px}.fastnet-install-icon[data-v-a66b8b77]{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:12px;color:var(--qs-card-accent);background:var(--home-option-selected)}.fastnet-install-icon svg[data-v-a66b8b77]{width:27px;height:27px}.fastnet-install-product>div[data-v-a66b8b77]{min-width:0;flex:1}.fastnet-install-product strong[data-v-a66b8b77]{font-size:17px;font-weight:600;letter-spacing:.1px}.fastnet-install-product p[data-v-a66b8b77]{font-size:12px;color:var(--qs-card-muted);margin-top:2px}.fastnet-install-badge[data-v-a66b8b77]{flex:none;padding:3px 9px;border-radius:5px;color:var(--qs-card-muted);background:var(--qs-card-soft);font-size:11px;white-space:nowrap}.fastnet-install-description[data-v-a66b8b77]{padding:22px 0 14px;line-height:1.8}.fastnet-install-note[data-v-a66b8b77],.fastnet-install-error[data-v-a66b8b77]{display:flex;align-items:flex-start;gap:8px;padding:11px 12px;border-radius:8px;background:var(--qs-card-soft);color:var(--qs-card-muted);font-size:12px;line-height:1.7}.fastnet-install-note svg[data-v-a66b8b77]{width:16px;height:16px;flex:none;margin-top:2px;color:var(--qs-card-accent)}.fastnet-install-error[data-v-a66b8b77]{color:var(--qs-card-error);border:1px solid var(--qs-card-line)}.fastnet-install-error>span[data-v-a66b8b77]{display:grid;place-items:center;flex:none;width:16px;height:16px;border:1px solid currentColor;border-radius:50%;margin-top:2px;font-size:11px;font-weight:600}.fastnet-install-footer[data-v-a66b8b77]{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:18px;border-top:1px solid var(--qs-card-line)}.fastnet-install-links[data-v-a66b8b77]{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}.fastnet-install-links a[data-v-a66b8b77],.fastnet-install-links button[data-v-a66b8b77]{display:inline-flex;align-items:center;gap:4px;background:none;border:0;border-radius:4px;padding:4px 0;color:var(--qs-card-muted);font:inherit;font-size:12px;line-height:1.6;text-decoration:none;cursor:pointer}.fastnet-install-links[data-v-a66b8b77] :is(a,button):hover{color:var(--qs-card-accent)}.fastnet-install-links svg[data-v-a66b8b77]{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.fastnet-install-actions[data-v-a66b8b77]{display:flex;gap:8px;flex:none}.fastnet-install-actions button[data-v-a66b8b77]{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 16px;border:1px solid var(--qs-card-line);border-radius:8px;background:var(--qs-card-panel);color:var(--qs-card-text);font:inherit;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer}.fastnet-install-actions .fastnet-install-primary[data-v-a66b8b77]{background:var(--qs-card-accent);border-color:var(--qs-card-accent);color:var(--qs-card-panel)}.fastnet-install-actions button[data-v-a66b8b77]:hover{filter:brightness(.96)}.fastnet-install button[data-v-a66b8b77]:disabled{opacity:.6;cursor:default}.fastnet-install-spinner[data-v-a66b8b77]{width:13px;height:13px;flex:none;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:fastnet-install-spin-a66b8b77 .8s linear infinite}@keyframes fastnet-install-spin-a66b8b77{to{transform:rotate(360deg)}}@media(max-width:540px){.fastnet-install-footer[data-v-a66b8b77]{align-items:stretch;flex-direction:column;gap:14px;margin-top:20px}.fastnet-install-links[data-v-a66b8b77]{justify-content:space-between}.fastnet-install-actions[data-v-a66b8b77]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.fastnet-install-actions>button[data-v-a66b8b77]:only-child{grid-column:1/-1}.fastnet-install-actions button[data-v-a66b8b77]{padding:8px 10px;white-space:normal;text-align:center}.fastnet-install-product[data-v-a66b8b77]{gap:10px}.fastnet-install-icon[data-v-a66b8b77]{width:42px;height:42px}.fastnet-install-badge[data-v-a66b8b77]{font-size:10px;padding:3px 6px}.fastnet-install-product p[data-v-a66b8b77]{font-size:11px}}@media(pointer:coarse){.fastnet-install-actions button[data-v-a66b8b77],.fastnet-install-links a[data-v-a66b8b77],.fastnet-install-links button[data-v-a66b8b77]{min-height:44px}}@media(prefers-reduced-motion:reduce){.fastnet-install-spinner[data-v-a66b8b77]{animation:none}} .page-container>div>div>a:first-child,.info_content>.status_box{display:none !important} diff --git a/luci-app-quickstart/htdocs/luci-static/quickstart/vendor.js b/luci-app-quickstart/htdocs/luci-static/quickstart/vendor.js index 7e141d544..ab1bfec0e 100644 --- a/luci-app-quickstart/htdocs/luci-static/quickstart/vendor.js +++ b/luci-app-quickstart/htdocs/luci-static/quickstart/vendor.js @@ -1,48 +1,30 @@ -function wv(e,t){const r=Object.create(null),n=e.split(",");for(let i=0;i!!r[i.toLowerCase()]:i=>!!r[i]}const zx="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Hx=wv(zx);function Q0(e){return!!e||e===""}function bv(e){if(at(e)){const t={};for(let r=0;r{if(r){const n=r.split(Vx);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Sv(e){let t="";if(Zt(e))t=e;else if(at(e))for(let r=0;rwi(r,t))}const Iz=e=>Zt(e)?e:e==null?"":at(e)||Yt(e)&&(e.toString===t_||!gt(e.toString))?JSON.stringify(e,J0,2):String(e),J0=(e,t)=>t&&t.__v_isRef?J0(e,t.value):fa(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,i])=>(r[`${n} =>`]=i,r),{})}:Ea(t)?{[`Set(${t.size})`]:[...t.values()]}:Yt(t)&&!at(t)&&!e_(t)?String(t):t,Rt={},ua=[],fr=()=>{},Wx=()=>!1,Yx=/^on[^a-z]/,_u=e=>Yx.test(e),Tv=e=>e.startsWith("onUpdate:"),ie=Object.assign,Cv=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},qx=Object.prototype.hasOwnProperty,Tt=(e,t)=>qx.call(e,t),at=Array.isArray,fa=e=>wu(e)==="[object Map]",Ea=e=>wu(e)==="[object Set]",cp=e=>e instanceof Date,gt=e=>typeof e=="function",Zt=e=>typeof e=="string",Mv=e=>typeof e=="symbol",Yt=e=>e!==null&&typeof e=="object",Av=e=>Yt(e)&>(e.then)&>(e.catch),t_=Object.prototype.toString,wu=e=>t_.call(e),Xx=e=>wu(e).slice(8,-1),e_=e=>wu(e)==="[object Object]",Dv=e=>Zt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ml=wv(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),bu=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},jx=/-(\w)/g,Ar=bu(e=>e.replace(jx,(t,r)=>r?r.toUpperCase():"")),Kx=/\B([A-Z])/g,Mi=bu(e=>e.replace(Kx,"-$1").toLowerCase()),Su=bu(e=>e.charAt(0).toUpperCase()+e.slice(1)),hf=bu(e=>e?`on${Su(e)}`:""),$o=(e,t)=>!Object.is(e,t),yl=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},ya=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let hp;const Zx=()=>hp||(hp=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Or;class r_{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Or&&(this.parent=Or,this.index=(Or.scopes||(Or.scopes=[])).push(this)-1)}run(t){if(this.active)try{return Or=this,t()}finally{Or=this.parent}}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},i_=e=>(e.w&Pn)>0,a_=e=>(e.n&Pn)>0,Jx=({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{(u==="length"||u>=n)&&s.push(l)});else switch(r!==void 0&&s.push(o.get(r)),t){case"add":at(e)?Dv(r)&&s.push(o.get("length")):(s.push(o.get(pi)),fa(e)&&s.push(o.get(Gc)));break;case"delete":at(e)||(s.push(o.get(pi)),fa(e)&&s.push(o.get(Gc)));break;case"set":fa(e)&&s.push(o.get(pi));break}if(s.length===1)s[0]&&Uc(s[0]);else{const l=[];for(const u of s)u&&l.push(...u);Uc(Pv(l))}}function Uc(e,t){for(const r of at(e)?e:[...e])(r!==xr||r.allowRecurse)&&(r.scheduler?r.scheduler():r.run())}const eT=wv("__proto__,__v_isRef,__isVue"),l_=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(Mv)),rT=Ev(),nT=Ev(!1,!0),iT=Ev(!0),dp=aT();function aT(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const n=Ct(this);for(let a=0,o=this.length;a{e[t]=function(...r){La();const n=Ct(this)[t].apply(this,r);return Ra(),n}}),e}function Ev(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?bT:v_:t?h_:c_).get(n))return n;const o=at(n);if(!e&&o&&Tt(dp,i))return Reflect.get(dp,i,a);const s=Reflect.get(n,i,a);return(Mv(i)?l_.has(i):eT(i))||(e||ke(n,"get",i),t)?s:Wt(s)?!o||!Dv(i)?s.value:s:Yt(s)?e?d_(s):Ai(s):s}}const oT=u_(),sT=u_(!0);function u_(e=!1){return function(r,n,i,a){let o=r[n];if(Vo(o)&&Wt(o)&&!Wt(i))return!1;if(!e&&!Vo(i)&&(p_(i)||(i=Ct(i),o=Ct(o)),!at(r)&&Wt(o)&&!Wt(i)))return o.value=i,!0;const s=at(r)&&Dv(n)?Number(n)e,xu=e=>Reflect.getPrototypeOf(e);function xs(e,t,r=!1,n=!1){e=e.__v_raw;const i=Ct(e),a=Ct(t);t!==a&&!r&&ke(i,"get",t),!r&&ke(i,"get",a);const{has:o}=xu(i),s=n?Lv:r?kv:Go;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 Ts(e,t=!1){const r=this.__v_raw,n=Ct(r),i=Ct(e);return e!==i&&!t&&ke(n,"has",e),!t&&ke(n,"has",i),e===i?r.has(e):r.has(e)||r.has(i)}function Cs(e,t=!1){return e=e.__v_raw,!t&&ke(Ct(e),"iterate",pi),Reflect.get(e,"size",e)}function pp(e){e=Ct(e);const t=Ct(this);return xu(t).has.call(t,e)||(t.add(e),Ur(t,"add",e,e)),this}function gp(e,t){t=Ct(t);const r=Ct(this),{has:n,get:i}=xu(r);let a=n.call(r,e);a||(e=Ct(e),a=n.call(r,e));const o=i.call(r,e);return r.set(e,t),a?$o(t,o)&&Ur(r,"set",e,t):Ur(r,"add",e,t),this}function mp(e){const t=Ct(this),{has:r,get:n}=xu(t);let i=r.call(t,e);i||(e=Ct(e),i=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return i&&Ur(t,"delete",e,void 0),a}function yp(){const e=Ct(this),t=e.size!==0,r=e.clear();return t&&Ur(e,"clear",void 0,void 0),r}function Ms(e,t){return function(n,i){const a=this,o=a.__v_raw,s=Ct(o),l=t?Lv:e?kv:Go;return!e&&ke(s,"iterate",pi),o.forEach((u,f)=>n.call(i,l(u),l(f),a))}}function As(e,t,r){return function(...n){const i=this.__v_raw,a=Ct(i),o=fa(a),s=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,u=i[e](...n),f=r?Lv:t?kv:Go;return!t&&ke(a,"iterate",l?Gc:pi),{next(){const{value:c,done:v}=u.next();return v?{value:c,done:v}:{value:s?[f(c[0]),f(c[1])]:f(c),done:v}},[Symbol.iterator](){return this}}}}function Zr(e){return function(...t){return e==="delete"?!1:this}}function vT(){const e={get(a){return xs(this,a)},get size(){return Cs(this)},has:Ts,add:pp,set:gp,delete:mp,clear:yp,forEach:Ms(!1,!1)},t={get(a){return xs(this,a,!1,!0)},get size(){return Cs(this)},has:Ts,add:pp,set:gp,delete:mp,clear:yp,forEach:Ms(!1,!0)},r={get(a){return xs(this,a,!0)},get size(){return Cs(this,!0)},has(a){return Ts.call(this,a,!0)},add:Zr("add"),set:Zr("set"),delete:Zr("delete"),clear:Zr("clear"),forEach:Ms(!0,!1)},n={get(a){return xs(this,a,!0,!0)},get size(){return Cs(this,!0)},has(a){return Ts.call(this,a,!0)},add:Zr("add"),set:Zr("set"),delete:Zr("delete"),clear:Zr("clear"),forEach:Ms(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=As(a,!1,!1),r[a]=As(a,!0,!1),t[a]=As(a,!1,!0),n[a]=As(a,!0,!0)}),[e,r,t,n]}const[dT,pT,gT,mT]=vT();function Rv(e,t){const r=t?e?mT:gT:e?pT:dT;return(n,i,a)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(Tt(r,i)&&i in n?r:n,i,a)}const yT={get:Rv(!1,!1)},_T={get:Rv(!1,!0)},wT={get:Rv(!0,!1)},c_=new WeakMap,h_=new WeakMap,v_=new WeakMap,bT=new WeakMap;function ST(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function xT(e){return e.__v_skip||!Object.isExtensible(e)?0:ST(Xx(e))}function Ai(e){return Vo(e)?e:Ov(e,!1,f_,yT,c_)}function TT(e){return Ov(e,!1,hT,_T,h_)}function d_(e){return Ov(e,!0,cT,wT,v_)}function Ov(e,t,r,n,i){if(!Yt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=i.get(e);if(a)return a;const o=xT(e);if(o===0)return e;const s=new Proxy(e,o===2?n:r);return i.set(e,s),s}function bn(e){return Vo(e)?bn(e.__v_raw):!!(e&&e.__v_isReactive)}function Vo(e){return!!(e&&e.__v_isReadonly)}function p_(e){return!!(e&&e.__v_isShallow)}function g_(e){return bn(e)||Vo(e)}function Ct(e){const t=e&&e.__v_raw;return t?Ct(t):e}function _a(e){return Bl(e,"__v_skip",!0),e}const Go=e=>Yt(e)?Ai(e):e,kv=e=>Yt(e)?d_(e):e;function m_(e){wn&&xr&&(e=Ct(e),s_(e.dep||(e.dep=Pv())))}function y_(e,t){e=Ct(e),e.dep&&Uc(e.dep)}function Wt(e){return!!(e&&e.__v_isRef===!0)}function wa(e){return __(e,!1)}function CT(e){return __(e,!0)}function __(e,t){return Wt(e)?e:new MT(e,t)}class MT{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:Ct(t),this._value=r?t:Go(t)}get value(){return m_(this),this._value}set value(t){t=this.__v_isShallow?t:Ct(t),$o(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:Go(t),y_(this))}}function wo(e){return Wt(e)?e.value:e}const AT={get:(e,t,r)=>wo(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const i=e[t];return Wt(i)&&!Wt(r)?(i.value=r,!0):Reflect.set(e,t,r,n)}};function w_(e){return bn(e)?e:new Proxy(e,AT)}function DT(e){const t=at(e)?new Array(e.length):{};for(const r in e)t[r]=IT(e,r);return t}class PT{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 IT(e,t,r){const n=e[t];return Wt(n)?n:new PT(e,t,r)}class ET{constructor(t,r,n,i){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new Iv(t,()=>{this._dirty||(this._dirty=!0,y_(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=n}get value(){const t=Ct(this);return m_(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function LT(e,t,r=!1){let n,i;const a=gt(e);return a?(n=e,i=fr):(n=e.get,i=e.set),new ET(n,i,a||!i,r)}Promise.resolve();function Sn(e,t,r,n){let i;try{i=n?e(...n):e()}catch(a){hs(a,t,r)}return i}function Qe(e,t,r,n){if(gt(e)){const a=Sn(e,t,r,n);return a&&Av(a)&&a.catch(o=>{hs(o,t,r)}),a}const i=[];for(let a=0;a>>1;Uo(Ie[n])Br&&Ie.splice(t,1)}function T_(e,t,r,n){at(e)?r.push(...e):(!t||!t.includes(e,e.allowRecurse?n+1:n))&&r.push(e),x_()}function NT(e){T_(e,co,bo,Ji)}function C_(e){T_(e,cn,So,ta)}function Fv(e,t=null){if(bo.length){for(Yc=t,co=[...new Set(bo)],bo.length=0,Ji=0;JiUo(r)-Uo(n)),ta=0;tae.id==null?1/0:e.id;function A_(e){Wc=!1,Fl=!0,Fv(e),Ie.sort((r,n)=>Uo(r)-Uo(n));const t=fr;try{for(Br=0;Brh.trim()):c&&(i=r.map(ya))}let s,l=n[s=hf(t)]||n[s=hf(Ar(t))];!l&&a&&(l=n[s=hf(Mi(t))]),l&&Qe(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,Qe(u,e,6,i)}}function D_(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(!gt(e)){const l=u=>{const f=D_(u,t,!0);f&&(s=!0,ie(o,f))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(n.set(e,null),null):(at(a)?a.forEach(l=>o[l]=null):ie(o,a),n.set(e,o),o)}function zv(e,t){return!e||!_u(t)?!1:(t=t.slice(2).replace(/Once$/,""),Tt(e,t[0].toLowerCase()+t.slice(1))||Tt(e,Mi(t))||Tt(e,t))}let Re=null,Tu=null;function zl(e){const t=Re;return Re=e,Tu=e&&e.type.__scopeId||null,t}function Ez(e){Tu=e}function Lz(){Tu=null}function FT(e,t=Re,r){if(!t||e._n)return e;const n=(...i)=>{n._d&&Ip(-1);const a=zl(t),o=e(...i);return zl(a),n._d&&Ip(1),o};return n._n=!0,n._c=!0,n._d=!0,n}function vf(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:v,setupState:h,ctx:d,inheritAttrs:p}=e;let g,m;const y=zl(e);try{if(r.shapeFlag&4){const w=i||n;g=lr(f.call(w,w,c,a,h,v,d)),m=l}else{const w=t;g=lr(w.length>1?w(a,{attrs:l,slots:s,emit:u}):w(a,null)),m=t.props?l:HT(l)}}catch(w){To.length=0,hs(w,e,1),g=fe(Ne)}let _=g;if(m&&p!==!1){const w=Object.keys(m),{shapeFlag:S}=_;w.length&&S&7&&(o&&w.some(Tv)&&(m=$T(m,o)),_=ba(_,m))}return r.dirs&&(_.dirs=_.dirs?_.dirs.concat(r.dirs):r.dirs),r.transition&&(_.transition=r.transition),g=_,zl(y),g}function zT(e){let t;for(let r=0;r{let t;for(const r in e)(r==="class"||r==="style"||_u(r))&&((t||(t={}))[r]=e[r]);return t},$T=(e,t)=>{const r={};for(const n in e)(!Tv(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function VT(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?_p(n,o,u):!!o;if(l&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense,UT={name:"Suspense",__isSuspense:!0,process(e,t,r,n,i,a,o,s,l,u){e==null?WT(t,r,n,i,a,o,s,l,u):YT(e,t,r,n,i,o,s,l,u)},hydrate:qT,create:$v,normalize:XT},Rz=UT;function Wo(e,t){const r=e.props&&e.props[t];gt(r)&&r()}function WT(e,t,r,n,i,a,o,s,l){const{p:u,o:{createElement:f}}=l,c=f("div"),v=e.suspense=$v(e,i,n,t,c,r,a,o,s,l);u(null,v.pendingBranch=e.ssContent,c,null,n,v,a,o),v.deps>0?(Wo(e,"onPending"),Wo(e,"onFallback"),u(null,e.ssFallback,t,r,n,null,a,o),ca(v,e.ssFallback)):v.resolve()}function YT(e,t,r,n,i,a,o,s,{p:l,um:u,o:{createElement:f}}){const c=t.suspense=e.suspense;c.vnode=t,t.el=e.el;const v=t.ssContent,h=t.ssFallback,{activeBranch:d,pendingBranch:p,isInFallback:g,isHydrating:m}=c;if(p)c.pendingBranch=v,wr(v,p)?(l(p,v,c.hiddenContainer,null,i,c,a,o,s),c.deps<=0?c.resolve():g&&(l(d,h,r,n,i,null,a,o,s),ca(c,h))):(c.pendingId++,m?(c.isHydrating=!1,c.activeBranch=p):u(p,i,c),c.deps=0,c.effects.length=0,c.hiddenContainer=f("div"),g?(l(null,v,c.hiddenContainer,null,i,c,a,o,s),c.deps<=0?c.resolve():(l(d,h,r,n,i,null,a,o,s),ca(c,h))):d&&wr(v,d)?(l(d,v,r,n,i,c,a,o,s),c.resolve(!0)):(l(null,v,c.hiddenContainer,null,i,c,a,o,s),c.deps<=0&&c.resolve()));else if(d&&wr(v,d))l(d,v,r,n,i,c,a,o,s),ca(c,v);else if(Wo(t,"onPending"),c.pendingBranch=v,c.pendingId++,l(null,v,c.hiddenContainer,null,i,c,a,o,s),c.deps<=0)c.resolve();else{const{timeout:y,pendingId:_}=c;y>0?setTimeout(()=>{c.pendingId===_&&c.fallback(h)},y):y===0&&c.fallback(h)}}function $v(e,t,r,n,i,a,o,s,l,u,f=!1){const{p:c,m:v,um:h,n:d,o:{parentNode:p,remove:g}}=u,m=ya(e.props&&e.props.timeout),y={vnode:e,parent:t,parentComponent:r,isSVG:o,container:n,hiddenContainer:i,anchor:a,deps:0,pendingId:0,timeout:typeof m=="number"?m:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:f,isUnmounted:!1,effects:[],resolve(_=!1){const{vnode:w,activeBranch:S,pendingBranch:b,pendingId:x,effects:T,parentComponent:C,container:D}=y;if(y.isHydrating)y.isHydrating=!1;else if(!_){const L=S&&b.transition&&b.transition.mode==="out-in";L&&(S.transition.afterLeave=()=>{x===y.pendingId&&v(b,D,O,0)});let{anchor:O}=y;S&&(O=d(S),h(S,C,y,!0)),L||v(b,D,O,0)}ca(y,b),y.pendingBranch=null,y.isInFallback=!1;let P=y.parent,A=!1;for(;P;){if(P.pendingBranch){P.effects.push(...T),A=!0;break}P=P.parent}A||C_(T),y.effects=[],Wo(w,"onResolve")},fallback(_){if(!y.pendingBranch)return;const{vnode:w,activeBranch:S,parentComponent:b,container:x,isSVG:T}=y;Wo(w,"onFallback");const C=d(S),D=()=>{!y.isInFallback||(c(null,_,x,C,b,null,T,s,l),ca(y,_))},P=_.transition&&_.transition.mode==="out-in";P&&(S.transition.afterLeave=D),y.isInFallback=!0,h(S,b,null,!0),P||D()},move(_,w,S){y.activeBranch&&v(y.activeBranch,_,w,S),y.container=_},next(){return y.activeBranch&&d(y.activeBranch)},registerDep(_,w){const S=!!y.pendingBranch;S&&y.deps++;const b=_.vnode.el;_.asyncDep.catch(x=>{hs(x,_,0)}).then(x=>{if(_.isUnmounted||y.isUnmounted||y.pendingId!==_.suspenseId)return;_.asyncResolved=!0;const{vnode:T}=_;eh(_,x,!1),b&&(T.el=b);const C=!b&&_.subTree.el;w(_,T,p(b||_.subTree.el),b?null:d(_.subTree),y,o,l),C&&g(C),Hv(_,T.el),S&&--y.deps===0&&y.resolve()})},unmount(_,w){y.isUnmounted=!0,y.activeBranch&&h(y.activeBranch,r,_,w),y.pendingBranch&&h(y.pendingBranch,r,_,w)}};return y}function qT(e,t,r,n,i,a,o,s,l){const u=t.suspense=$v(t,n,r,e.parentNode,document.createElement("div"),null,i,a,o,s,!0),f=l(e,u.pendingBranch=t.ssContent,r,u,a,o);return u.deps===0&&u.resolve(),f}function XT(e){const{shapeFlag:t,children:r}=e,n=t&32;e.ssContent=wp(n?r.default:r),e.ssFallback=n?wp(r.fallback):fe(Ne)}function wp(e){let t;if(gt(e)){const r=Yo&&e._c;r&&(e._d=!1,qv()),e=e(),r&&(e._d=!0,t=xn,Y_())}return at(e)&&(e=zT(e)),e=lr(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(r=>r!==e)),e}function jT(e,t){t&&t.pendingBranch?at(e)?t.effects.push(...e):t.effects.push(e):C_(e)}function ca(e,t){e.activeBranch=t;const{vnode:r,parentComponent:n}=e,i=r.el=t.el;n&&n.subTree===r&&(n.vnode.el=i,Hv(n,i))}function _l(e,t){if(Jt){let r=Jt.provides;const n=Jt.parent&&Jt.parent.provides;n===r&&(r=Jt.provides=Object.create(n)),r[e]=t}}function Je(e,t,r=!1){const n=Jt||Re;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&>(t)?t.call(n.proxy):t}}function KT(e,t){return Vv(e,null,{flush:"post"})}const bp={};function ha(e,t,r){return Vv(e,t,r)}function Vv(e,t,{immediate:r,deep:n,flush:i,onTrack:a,onTrigger:o}=Rt){const s=Jt;let l,u=!1,f=!1;if(Wt(e)?(l=()=>e.value,u=p_(e)):bn(e)?(l=()=>e,n=!0):at(e)?(f=!0,u=e.some(bn),l=()=>e.map(m=>{if(Wt(m))return m.value;if(bn(m))return hi(m);if(gt(m))return Sn(m,s,2)})):gt(e)?t?l=()=>Sn(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return c&&c(),Qe(e,s,3,[v])}:l=fr,t&&n){const m=l;l=()=>hi(m())}let c,v=m=>{c=g.onStop=()=>{Sn(m,s,4)}};if(Xo)return v=fr,t?r&&Qe(t,s,3,[l(),f?[]:void 0,v]):l(),fr;let h=f?[]:bp;const d=()=>{if(!!g.active)if(t){const m=g.run();(n||u||(f?m.some((y,_)=>$o(y,h[_])):$o(m,h)))&&(c&&c(),Qe(t,s,3,[m,h===bp?void 0:h,v]),h=m)}else g.run()};d.allowRecurse=!!t;let p;i==="sync"?p=d:i==="post"?p=()=>be(d,s&&s.suspense):p=()=>{!s||s.isMounted?NT(d):d()};const g=new Iv(l,p);return t?r?d():h=g.run():i==="post"?be(g.run.bind(g),s&&s.suspense):g.run(),()=>{g.stop(),s&&s.scope&&Cv(s.scope.effects,g)}}function ZT(e,t,r){const n=this.proxy,i=Zt(e)?e.includes(".")?P_(n,e):()=>n[e]:e.bind(n,n);let a;gt(t)?a=t:(a=t.handler,r=t);const o=Jt;In(this);const s=Vv(i,a.bind(n),r);return o?In(o):Tn(),s}function P_(e,t){const r=t.split(".");return()=>{let n=e;for(let i=0;i{hi(r,t)});else if(e_(e))for(const r in e)hi(e[r],t);return e}function QT(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Au(()=>{e.isMounted=!0}),O_(()=>{e.isUnmounting=!0}),e}const ze=[Function,Array],JT={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ze,onEnter:ze,onAfterEnter:ze,onEnterCancelled:ze,onBeforeLeave:ze,onLeave:ze,onAfterLeave:ze,onLeaveCancelled:ze,onBeforeAppear:ze,onAppear:ze,onAfterAppear:ze,onAppearCancelled:ze},setup(e,{slots:t}){const r=Oa(),n=QT();let i;return()=>{const a=t.default&&L_(t.default(),!0);if(!a||!a.length)return;const o=Ct(e),{mode:s}=o,l=a[0];if(n.isLeaving)return df(l);const u=Sp(l);if(!u)return df(l);const f=qc(u,o,n,r);Xc(u,f);const c=r.subTree,v=c&&Sp(c);let h=!1;const{getTransitionKey:d}=u.type;if(d){const p=d();i===void 0?i=p:p!==i&&(i=p,h=!0)}if(v&&v.type!==Ne&&(!wr(u,v)||h)){const p=qc(v,o,n,r);if(Xc(v,p),s==="out-in")return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,r.update()},df(l);s==="in-out"&&u.type!==Ne&&(p.delayLeave=(g,m,y)=>{const _=E_(n,v);_[String(v.key)]=v,g._leaveCb=()=>{m(),g._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=y})}return l}}},I_=JT;function E_(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 qc(e,t,r,n){const{appear:i,mode:a,persisted:o=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:c,onLeave:v,onAfterLeave:h,onLeaveCancelled:d,onBeforeAppear:p,onAppear:g,onAfterAppear:m,onAppearCancelled:y}=t,_=String(e.key),w=E_(r,e),S=(x,T)=>{x&&Qe(x,n,9,T)},b={mode:a,persisted:o,beforeEnter(x){let T=s;if(!r.isMounted)if(i)T=p||s;else return;x._leaveCb&&x._leaveCb(!0);const C=w[_];C&&wr(e,C)&&C.el._leaveCb&&C.el._leaveCb(),S(T,[x])},enter(x){let T=l,C=u,D=f;if(!r.isMounted)if(i)T=g||l,C=m||u,D=y||f;else return;let P=!1;const A=x._enterCb=L=>{P||(P=!0,L?S(D,[x]):S(C,[x]),b.delayedLeave&&b.delayedLeave(),x._enterCb=void 0)};T?(T(x,A),T.length<=1&&A()):A()},leave(x,T){const C=String(e.key);if(x._enterCb&&x._enterCb(!0),r.isUnmounting)return T();S(c,[x]);let D=!1;const P=x._leaveCb=A=>{D||(D=!0,T(),A?S(d,[x]):S(h,[x]),x._leaveCb=void 0,w[C]===e&&delete w[C])};w[C]=e,v?(v(x,P),v.length<=1&&P()):P()},clone(x){return qc(x,t,r,n)}};return b}function df(e){if(Cu(e))return e=ba(e),e.children=null,e}function Sp(e){return Cu(e)?e.children?e.children[0]:void 0:e}function Xc(e,t){e.shapeFlag&6&&e.component?Xc(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 L_(e,t=!1){let r=[],n=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader,Cu=e=>e.type.__isKeepAlive;function tC(e,t){R_(e,"a",t)}function eC(e,t){R_(e,"da",t)}function R_(e,t,r=Jt){const n=e.__wdc||(e.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(Mu(t,n,r),r){let i=r.parent;for(;i&&i.parent;)Cu(i.parent.vnode)&&rC(n,t,r,i),i=i.parent}}function rC(e,t,r,n){const i=Mu(t,e,n,!0);Du(()=>{Cv(n[t],i)},r)}function Mu(e,t,r=Jt,n=!1){if(r){const i=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{if(r.isUnmounted)return;La(),In(r);const s=Qe(t,r,e,o);return Tn(),Ra(),s});return n?i.unshift(a):i.push(a),a}}const Xr=e=>(t,r=Jt)=>(!Xo||e==="sp")&&Mu(e,t,r),nC=Xr("bm"),Au=Xr("m"),iC=Xr("bu"),aC=Xr("u"),O_=Xr("bum"),Du=Xr("um"),oC=Xr("sp"),sC=Xr("rtg"),lC=Xr("rtc");function uC(e,t=Jt){Mu("ec",e,t)}let Kc=!0;function fC(e){const t=N_(e),r=e.proxy,n=e.ctx;Kc=!1,t.beforeCreate&&xp(t.beforeCreate,e,"bc");const{data:i,computed:a,methods:o,watch:s,provide:l,inject:u,created:f,beforeMount:c,mounted:v,beforeUpdate:h,updated:d,activated:p,deactivated:g,beforeDestroy:m,beforeUnmount:y,destroyed:_,unmounted:w,render:S,renderTracked:b,renderTriggered:x,errorCaptured:T,serverPrefetch:C,expose:D,inheritAttrs:P,components:A,directives:L,filters:O}=t;if(u&&cC(u,n,null,e.appContext.config.unwrapInjectedRef),o)for(const tt in o){const V=o[tt];gt(V)&&(n[tt]=V.bind(r))}if(i){const tt=i.call(r,r);Yt(tt)&&(e.data=Ai(tt))}if(Kc=!0,a)for(const tt in a){const V=a[tt],K=gt(V)?V.bind(r,r):gt(V.get)?V.get.bind(r,r):fr,lt=!gt(V)&>(V.set)?V.set.bind(r):fr,yt=Ee({get:K,set:lt});Object.defineProperty(n,tt,{enumerable:!0,configurable:!0,get:()=>yt.value,set:ut=>yt.value=ut})}if(s)for(const tt in s)k_(s[tt],n,r,tt);if(l){const tt=gt(l)?l.call(r):l;Reflect.ownKeys(tt).forEach(V=>{_l(V,tt[V])})}f&&xp(f,e,"c");function N(tt,V){at(V)?V.forEach(K=>tt(K.bind(r))):V&&tt(V.bind(r))}if(N(nC,c),N(Au,v),N(iC,h),N(aC,d),N(tC,p),N(eC,g),N(uC,T),N(lC,b),N(sC,x),N(O_,y),N(Du,w),N(oC,C),at(D))if(D.length){const tt=e.exposed||(e.exposed={});D.forEach(V=>{Object.defineProperty(tt,V,{get:()=>r[V],set:K=>r[V]=K})})}else e.exposed||(e.exposed={});S&&e.render===fr&&(e.render=S),P!=null&&(e.inheritAttrs=P),A&&(e.components=A),L&&(e.directives=L)}function cC(e,t,r=fr,n=!1){at(e)&&(e=Zc(e));for(const i in e){const a=e[i];let o;Yt(a)?"default"in a?o=Je(a.from||i,a.default,!0):o=Je(a.from||i):o=Je(a),Wt(o)&&n?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:s=>o.value=s}):t[i]=o}}function xp(e,t,r){Qe(at(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function k_(e,t,r,n){const i=n.includes(".")?P_(r,n):()=>r[n];if(Zt(e)){const a=t[e];gt(a)&&ha(i,a)}else if(gt(e))ha(i,e.bind(r));else if(Yt(e))if(at(e))e.forEach(a=>k_(a,t,r,n));else{const a=gt(e.handler)?e.handler.bind(r):t[e.handler];gt(a)&&ha(i,a,e)}}function N_(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=>Hl(l,u,o,!0)),Hl(l,t,o)),a.set(t,l),l}function Hl(e,t,r,n=!1){const{mixins:i,extends:a}=t;a&&Hl(e,a,r,!0),i&&i.forEach(o=>Hl(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const s=hC[o]||r&&r[o];e[o]=s?s(e[o],t[o]):t[o]}return e}const hC={data:Tp,props:li,emits:li,methods:li,computed:li,beforeCreate:ve,created:ve,beforeMount:ve,mounted:ve,beforeUpdate:ve,updated:ve,beforeDestroy:ve,beforeUnmount:ve,destroyed:ve,unmounted:ve,activated:ve,deactivated:ve,errorCaptured:ve,serverPrefetch:ve,components:li,directives:li,watch:dC,provide:Tp,inject:vC};function Tp(e,t){return t?e?function(){return ie(gt(e)?e.call(this,this):e,gt(t)?t.call(this,this):t)}:t:e}function vC(e,t){return li(Zc(e),Zc(t))}function Zc(e){if(at(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[v,h]=F_(c,t,!0);ie(o,v),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 n.set(e,ua),ua;if(at(a))for(let f=0;f-1,h[1]=p<0||d-1||Tt(h,"default"))&&s.push(c)}}}const u=[o,s];return n.set(e,u),u}function Cp(e){return e[0]!=="$"}function Mp(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Ap(e,t){return Mp(e)===Mp(t)}function Dp(e,t){return at(t)?t.findIndex(r=>Ap(r,e)):gt(t)&&Ap(t,e)?0:-1}const z_=e=>e[0]==="_"||e==="$stable",Uv=e=>at(e)?e.map(lr):[lr(e)],mC=(e,t,r)=>{const n=FT((...i)=>Uv(t(...i)),r);return n._c=!1,n},H_=(e,t,r)=>{const n=e._ctx;for(const i in e){if(z_(i))continue;const a=e[i];if(gt(a))t[i]=mC(i,a,n);else if(a!=null){const o=Uv(a);t[i]=()=>o}}},$_=(e,t)=>{const r=Uv(t);e.slots.default=()=>r},yC=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=Ct(t),Bl(t,"_",r)):H_(t,e.slots={})}else e.slots={},t&&$_(e,t);Bl(e.slots,Pu,1)},_C=(e,t,r)=>{const{vnode:n,slots:i}=e;let a=!0,o=Rt;if(n.shapeFlag&32){const s=t._;s?r&&s===1?a=!1:(ie(i,t),!r&&s===1&&delete i._):(a=!t.$stable,H_(t,i)),o=t}else t&&($_(e,t),o={default:1});if(a)for(const s in i)!z_(s)&&!(s in o)&&delete i[s]};function Oz(e,t){const r=Re;if(r===null)return e;const n=r.proxy,i=e.dirs||(e.dirs=[]);for(let a=0;aJc(v,t&&(at(t)?t[h]:t),r,n,i));return}if(jc(n)&&!i)return;const a=n.shapeFlag&4?jv(n.component)||n.component.proxy:n.el,o=i?null:a,{i:s,r:l}=e,u=t&&t.r,f=s.refs===Rt?s.refs={}:s.refs,c=s.setupState;if(u!=null&&u!==l&&(Zt(u)?(f[u]=null,Tt(c,u)&&(c[u]=null)):Wt(u)&&(u.value=null)),gt(l))Sn(l,s,12,[o,f]);else{const v=Zt(l),h=Wt(l);if(v||h){const d=()=>{if(e.f){const p=v?f[l]:l.value;i?at(p)&&Cv(p,a):at(p)?p.includes(a)||p.push(a):v?f[l]=[a]:(l.value=[a],e.k&&(f[e.k]=l.value))}else v?(f[l]=o,Tt(c,l)&&(c[l]=o)):Wt(l)&&(l.value=o,e.k&&(f[e.k]=o))};o?(d.id=-1,be(d,r)):d()}}}const be=jT;function SC(e){return xC(e)}function xC(e,t){const r=Zx();r.__VUE__=!0;const{insert:n,remove:i,patchProp:a,createElement:o,createText:s,createComment:l,setText:u,setElementText:f,parentNode:c,nextSibling:v,setScopeId:h=fr,cloneNode:d,insertStaticContent:p}=e,g=(M,E,R,B=null,F=null,q=null,Z=!1,U=null,W=!!E.dynamicChildren)=>{if(M===E)return;M&&!wr(M,E)&&(B=Q(M),ht(M,F,q,!0),M=null),E.patchFlag===-2&&(W=!1,E.dynamicChildren=null);const{type:H,ref:nt,shapeFlag:rt}=E;switch(H){case Yv:m(M,E,R,B);break;case Ne:y(M,E,R,B);break;case xo:M==null&&_(E,R,B,Z);break;case Pe:L(M,E,R,B,F,q,Z,U,W);break;default:rt&1?b(M,E,R,B,F,q,Z,U,W):rt&6?O(M,E,R,B,F,q,Z,U,W):(rt&64||rt&128)&&H.process(M,E,R,B,F,q,Z,U,W,ft)}nt!=null&&F&&Jc(nt,M&&M.ref,q,E||M,!E)},m=(M,E,R,B)=>{if(M==null)n(E.el=s(E.children),R,B);else{const F=E.el=M.el;E.children!==M.children&&u(F,E.children)}},y=(M,E,R,B)=>{M==null?n(E.el=l(E.children||""),R,B):E.el=M.el},_=(M,E,R,B)=>{[M.el,M.anchor]=p(M.children,E,R,B,M.el,M.anchor)},w=({el:M,anchor:E},R,B)=>{let F;for(;M&&M!==E;)F=v(M),n(M,R,B),M=F;n(E,R,B)},S=({el:M,anchor:E})=>{let R;for(;M&&M!==E;)R=v(M),i(M),M=R;i(E)},b=(M,E,R,B,F,q,Z,U,W)=>{Z=Z||E.type==="svg",M==null?x(E,R,B,F,q,Z,U,W):D(M,E,F,q,Z,U,W)},x=(M,E,R,B,F,q,Z,U)=>{let W,H;const{type:nt,props:rt,shapeFlag:ot,transition:dt,patchFlag:St,dirs:Ht}=M;if(M.el&&d!==void 0&&St===-1)W=M.el=d(M.el);else{if(W=M.el=o(M.type,q,rt&&rt.is,rt),ot&8?f(W,M.children):ot&16&&C(M.children,W,null,B,F,q&&nt!=="foreignObject",Z,U),Ht&&Nn(M,null,B,"created"),rt){for(const Bt in rt)Bt!=="value"&&!ml(Bt)&&a(W,Bt,null,rt[Bt],q,M.children,B,F,$);"value"in rt&&a(W,"value",null,rt.value),(H=rt.onVnodeBeforeMount)&&pr(H,B,M)}T(W,M,M.scopeId,Z,B)}Ht&&Nn(M,null,B,"beforeMount");const Et=(!F||F&&!F.pendingBranch)&&dt&&!dt.persisted;Et&&dt.beforeEnter(W),n(W,E,R),((H=rt&&rt.onVnodeMounted)||Et||Ht)&&be(()=>{H&&pr(H,B,M),Et&&dt.enter(W),Ht&&Nn(M,null,B,"mounted")},F)},T=(M,E,R,B,F)=>{if(R&&h(M,R),B)for(let q=0;q{for(let H=W;H{const U=E.el=M.el;let{patchFlag:W,dynamicChildren:H,dirs:nt}=E;W|=M.patchFlag&16;const rt=M.props||Rt,ot=E.props||Rt;let dt;R&&Bn(R,!1),(dt=ot.onVnodeBeforeUpdate)&&pr(dt,R,E,M),nt&&Nn(E,M,R,"beforeUpdate"),R&&Bn(R,!0);const St=F&&E.type!=="foreignObject";if(H?P(M.dynamicChildren,H,U,R,B,St,q):Z||K(M,E,U,null,R,B,St,q,!1),W>0){if(W&16)A(U,E,rt,ot,R,B,F);else if(W&2&&rt.class!==ot.class&&a(U,"class",null,ot.class,F),W&4&&a(U,"style",rt.style,ot.style,F),W&8){const Ht=E.dynamicProps;for(let Et=0;Et{dt&&pr(dt,R,E,M),nt&&Nn(E,M,R,"updated")},B)},P=(M,E,R,B,F,q,Z)=>{for(let U=0;U{if(R!==B){for(const U in B){if(ml(U))continue;const W=B[U],H=R[U];W!==H&&U!=="value"&&a(M,U,H,W,Z,E.children,F,q,$)}if(R!==Rt)for(const U in R)!ml(U)&&!(U in B)&&a(M,U,R[U],null,Z,E.children,F,q,$);"value"in B&&a(M,"value",R.value,B.value)}},L=(M,E,R,B,F,q,Z,U,W)=>{const H=E.el=M?M.el:s(""),nt=E.anchor=M?M.anchor:s("");let{patchFlag:rt,dynamicChildren:ot,slotScopeIds:dt}=E;dt&&(U=U?U.concat(dt):dt),M==null?(n(H,R,B),n(nt,R,B),C(E.children,R,nt,F,q,Z,U,W)):rt>0&&rt&64&&ot&&M.dynamicChildren?(P(M.dynamicChildren,ot,R,F,q,Z,U),(E.key!=null||F&&E===F.subTree)&&G_(M,E,!0)):K(M,E,R,nt,F,q,Z,U,W)},O=(M,E,R,B,F,q,Z,U,W)=>{E.slotScopeIds=U,M==null?E.shapeFlag&512?F.ctx.activate(E,R,B,Z,W):z(E,R,B,F,q,Z,W):N(M,E,W)},z=(M,E,R,B,F,q,Z)=>{const U=M.component=RC(M,B,F);if(Cu(M)&&(U.ctx.renderer=ft),OC(U),U.asyncDep){if(F&&F.registerDep(U,tt),!M.el){const W=U.subTree=fe(Ne);y(null,W,E,R)}return}tt(U,M,E,R,F,q,Z)},N=(M,E,R)=>{const B=E.component=M.component;if(VT(M,E,R))if(B.asyncDep&&!B.asyncResolved){V(B,E,R);return}else B.next=E,kT(B.update),B.update();else E.component=M.component,E.el=M.el,B.vnode=E},tt=(M,E,R,B,F,q,Z)=>{const U=()=>{if(M.isMounted){let{next:nt,bu:rt,u:ot,parent:dt,vnode:St}=M,Ht=nt,Et;Bn(M,!1),nt?(nt.el=St.el,V(M,nt,Z)):nt=St,rt&&yl(rt),(Et=nt.props&&nt.props.onVnodeBeforeUpdate)&&pr(Et,dt,nt,St),Bn(M,!0);const Bt=vf(M),nr=M.subTree;M.subTree=Bt,g(nr,Bt,c(nr.el),Q(nr),M,F,q),nt.el=Bt.el,Ht===null&&Hv(M,Bt.el),ot&&be(ot,F),(Et=nt.props&&nt.props.onVnodeUpdated)&&be(()=>pr(Et,dt,nt,St),F)}else{let nt;const{el:rt,props:ot}=E,{bm:dt,m:St,parent:Ht}=M,Et=jc(E);if(Bn(M,!1),dt&&yl(dt),!Et&&(nt=ot&&ot.onVnodeBeforeMount)&&pr(nt,Ht,E),Bn(M,!0),rt&&j){const Bt=()=>{M.subTree=vf(M),j(rt,M.subTree,M,F,null)};Et?E.type.__asyncLoader().then(()=>!M.isUnmounted&&Bt()):Bt()}else{const Bt=M.subTree=vf(M);g(null,Bt,R,B,M,F,q),E.el=Bt.el}if(St&&be(St,F),!Et&&(nt=ot&&ot.onVnodeMounted)){const Bt=E;be(()=>pr(nt,Ht,Bt),F)}E.shapeFlag&256&&M.a&&be(M.a,F),M.isMounted=!0,E=R=B=null}},W=M.effect=new Iv(U,()=>S_(M.update),M.scope),H=M.update=W.run.bind(W);H.id=M.uid,Bn(M,!0),H()},V=(M,E,R)=>{E.component=M;const B=M.vnode.props;M.vnode=E,M.next=null,gC(M,E.props,B,R),_C(M,E.children,R),La(),Fv(void 0,M.update),Ra()},K=(M,E,R,B,F,q,Z,U,W=!1)=>{const H=M&&M.children,nt=M?M.shapeFlag:0,rt=E.children,{patchFlag:ot,shapeFlag:dt}=E;if(ot>0){if(ot&128){yt(H,rt,R,B,F,q,Z,U,W);return}else if(ot&256){lt(H,rt,R,B,F,q,Z,U,W);return}}dt&8?(nt&16&&$(H,F,q),rt!==H&&f(R,rt)):nt&16?dt&16?yt(H,rt,R,B,F,q,Z,U,W):$(H,F,q,!0):(nt&8&&f(R,""),dt&16&&C(rt,R,B,F,q,Z,U,W))},lt=(M,E,R,B,F,q,Z,U,W)=>{M=M||ua,E=E||ua;const H=M.length,nt=E.length,rt=Math.min(H,nt);let ot;for(ot=0;otnt?$(M,F,q,!0,!1,rt):C(E,R,B,F,q,Z,U,W,rt)},yt=(M,E,R,B,F,q,Z,U,W)=>{let H=0;const nt=E.length;let rt=M.length-1,ot=nt-1;for(;H<=rt&&H<=ot;){const dt=M[H],St=E[H]=W?dn(E[H]):lr(E[H]);if(wr(dt,St))g(dt,St,R,null,F,q,Z,U,W);else break;H++}for(;H<=rt&&H<=ot;){const dt=M[rt],St=E[ot]=W?dn(E[ot]):lr(E[ot]);if(wr(dt,St))g(dt,St,R,null,F,q,Z,U,W);else break;rt--,ot--}if(H>rt){if(H<=ot){const dt=ot+1,St=dtot)for(;H<=rt;)ht(M[H],F,q,!0),H++;else{const dt=H,St=H,Ht=new Map;for(H=St;H<=ot;H++){const De=E[H]=W?dn(E[H]):lr(E[H]);De.key!=null&&Ht.set(De.key,H)}let Et,Bt=0;const nr=ot-St+1;let Ri=!1,lp=0;const Ha=new Array(nr);for(H=0;H=nr){ht(De,F,q,!0);continue}let dr;if(De.key!=null)dr=Ht.get(De.key);else for(Et=St;Et<=ot;Et++)if(Ha[Et-St]===0&&wr(De,E[Et])){dr=Et;break}dr===void 0?ht(De,F,q,!0):(Ha[dr-St]=H+1,dr>=lp?lp=dr:Ri=!0,g(De,E[dr],R,null,F,q,Z,U,W),Bt++)}const up=Ri?TC(Ha):ua;for(Et=up.length-1,H=nr-1;H>=0;H--){const De=St+H,dr=E[De],fp=De+1{const{el:q,type:Z,transition:U,children:W,shapeFlag:H}=M;if(H&6){ut(M.component.subTree,E,R,B);return}if(H&128){M.suspense.move(E,R,B);return}if(H&64){Z.move(M,E,R,ft);return}if(Z===Pe){n(q,E,R);for(let rt=0;rtU.enter(q),F);else{const{leave:rt,delayLeave:ot,afterLeave:dt}=U,St=()=>n(q,E,R),Ht=()=>{rt(q,()=>{St(),dt&&dt()})};ot?ot(q,St,Ht):Ht()}else n(q,E,R)},ht=(M,E,R,B=!1,F=!1)=>{const{type:q,props:Z,ref:U,children:W,dynamicChildren:H,shapeFlag:nt,patchFlag:rt,dirs:ot}=M;if(U!=null&&Jc(U,null,R,M,!0),nt&256){E.ctx.deactivate(M);return}const dt=nt&1&&ot,St=!jc(M);let Ht;if(St&&(Ht=Z&&Z.onVnodeBeforeUnmount)&&pr(Ht,E,M),nt&6)G(M.component,R,B);else{if(nt&128){M.suspense.unmount(R,B);return}dt&&Nn(M,null,E,"beforeUnmount"),nt&64?M.type.remove(M,E,R,F,ft,B):H&&(q!==Pe||rt>0&&rt&64)?$(H,E,R,!1,!0):(q===Pe&&rt&384||!F&&nt&16)&&$(W,E,R),B&&bt(M)}(St&&(Ht=Z&&Z.onVnodeUnmounted)||dt)&&be(()=>{Ht&&pr(Ht,E,M),dt&&Nn(M,null,E,"unmounted")},R)},bt=M=>{const{type:E,el:R,anchor:B,transition:F}=M;if(E===Pe){k(R,B);return}if(E===xo){S(M);return}const q=()=>{i(R),F&&!F.persisted&&F.afterLeave&&F.afterLeave()};if(M.shapeFlag&1&&F&&!F.persisted){const{leave:Z,delayLeave:U}=F,W=()=>Z(R,q);U?U(M.el,q,W):W()}else q()},k=(M,E)=>{let R;for(;M!==E;)R=v(M),i(M),M=R;i(E)},G=(M,E,R)=>{const{bum:B,scope:F,update:q,subTree:Z,um:U}=M;B&&yl(B),F.stop(),q&&(q.active=!1,ht(Z,M,E,R)),U&&be(U,E),be(()=>{M.isUnmounted=!0},E),E&&E.pendingBranch&&!E.isUnmounted&&M.asyncDep&&!M.asyncResolved&&M.suspenseId===E.pendingId&&(E.deps--,E.deps===0&&E.resolve())},$=(M,E,R,B=!1,F=!1,q=0)=>{for(let Z=q;ZM.shapeFlag&6?Q(M.component.subTree):M.shapeFlag&128?M.suspense.next():v(M.anchor||M.el),vt=(M,E,R)=>{M==null?E._vnode&&ht(E._vnode,null,null,!0):g(E._vnode||null,M,E,null,null,null,R),M_(),E._vnode=M},ft={p:g,um:ht,m:ut,r:bt,mt:z,mc:C,pc:K,pbc:P,n:Q,o:e};let X,j;return t&&([X,j]=t(ft)),{render:vt,hydrate:X,createApp:bC(vt,X)}}function Bn({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function G_(e,t,r=!1){const n=e.children,i=t.children;if(at(n)&&at(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 CC=e=>e.__isTeleport,Wv="components";function kz(e,t){return W_(Wv,e,!0,t)||e}const U_=Symbol();function Nz(e){return Zt(e)?W_(Wv,e,!1)||e:e||U_}function W_(e,t,r=!0,n=!1){const i=Re||Jt;if(i){const a=i.type;if(e===Wv){const s=FC(a);if(s&&(s===t||s===Ar(t)||s===Su(Ar(t))))return a}const o=Pp(i[e]||a[e],t)||Pp(i.appContext[e],t);return!o&&n?a:o}}function Pp(e,t){return e&&(e[t]||e[Ar(t)]||e[Su(Ar(t))])}const Pe=Symbol(void 0),Yv=Symbol(void 0),Ne=Symbol(void 0),xo=Symbol(void 0),To=[];let xn=null;function qv(e=!1){To.push(xn=e?null:[])}function Y_(){To.pop(),xn=To[To.length-1]||null}let Yo=1;function Ip(e){Yo+=e}function q_(e){return e.dynamicChildren=Yo>0?xn||ua:null,Y_(),Yo>0&&xn&&xn.push(e),e}function Bz(e,t,r,n,i,a){return q_(K_(e,t,r,n,i,a,!0))}function X_(e,t,r,n,i){return q_(fe(e,t,r,n,i,!0))}function qo(e){return e?e.__v_isVNode===!0:!1}function wr(e,t){return e.type===t.type&&e.key===t.key}const Pu="__vInternal",j_=({key:e})=>e!=null?e:null,wl=({ref:e,ref_key:t,ref_for:r})=>e!=null?Zt(e)||Wt(e)||gt(e)?{i:Re,r:e,k:t,f:!!r}:e:null;function K_(e,t=null,r=null,n=0,i=null,a=e===Pe?0:1,o=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&j_(t),ref:t&&wl(t),scopeId:Tu,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};return s?(Xv(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=Zt(r)?8:16),Yo>0&&!o&&xn&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&xn.push(l),l}const fe=MC;function MC(e,t=null,r=null,n=0,i=null,a=!1){if((!e||e===U_)&&(e=Ne),qo(e)){const s=ba(e,t,!0);return r&&Xv(s,r),s}if(zC(e)&&(e=e.__vccOpts),t){t=AC(t);let{class:s,style:l}=t;s&&!Zt(s)&&(t.class=Sv(s)),Yt(l)&&(g_(l)&&!at(l)&&(l=ie({},l)),t.style=bv(l))}const o=Zt(e)?1:GT(e)?128:CC(e)?64:Yt(e)?4:gt(e)?2:0;return K_(e,t,r,n,i,o,a,!0)}function AC(e){return e?g_(e)||Pu in e?ie({},e):e:null}function ba(e,t,r=!1){const{props:n,ref:i,patchFlag:a,children:o}=e,s=t?PC(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&j_(s),ref:t&&t.ref?r&&i?at(i)?i.concat(wl(t)):[i,wl(t)]:wl(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!==Pe?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&&ba(e.ssContent),ssFallback:e.ssFallback&&ba(e.ssFallback),el:e.el,anchor:e.anchor}}function DC(e=" ",t=0){return fe(Yv,null,e,t)}function Fz(e,t){const r=fe(xo,null,e);return r.staticCount=t,r}function zz(e="",t=!1){return t?(qv(),X_(Ne,null,e)):fe(Ne,null,e)}function lr(e){return e==null||typeof e=="boolean"?fe(Ne):at(e)?fe(Pe,null,e.slice()):typeof e=="object"?dn(e):fe(Yv,null,String(e))}function dn(e){return e.el===null||e.memo?e:ba(e)}function Xv(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(at(t))r=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Xv(e,i()),i._c&&(i._d=!0));return}else{r=32;const i=t._;!i&&!(Pu in t)?t._ctx=Re:i===3&&Re&&(Re.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else gt(t)?(t={default:t,_ctx:Re},r=32):(t=String(t),n&64?(r=16,t=[DC(t)]):r=8);e.children=t,e.shapeFlag|=r}function PC(...e){const t={};for(let r=0;rt(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;sqo(t)?!(t.type===Ne||t.type===Pe&&!Z_(t.children)):!0)?e:null}const th=e=>e?Q_(e)?jv(e)||e.proxy:th(e.parent):null,$l=ie(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=>th(e.parent),$root:e=>th(e.root),$emit:e=>e.emit,$options:e=>N_(e),$forceUpdate:e=>()=>S_(e.update),$nextTick:e=>Bv.bind(e.proxy),$watch:e=>ZT.bind(e)}),IC={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(n!==Rt&&Tt(n,t))return o[t]=1,n[t];if(i!==Rt&&Tt(i,t))return o[t]=2,i[t];if((u=e.propsOptions[0])&&Tt(u,t))return o[t]=3,a[t];if(r!==Rt&&Tt(r,t))return o[t]=4,r[t];Kc&&(o[t]=0)}}const f=$l[t];let c,v;if(f)return t==="$attrs"&&ke(e,"get",t),f(e);if((c=s.__cssModules)&&(c=c[t]))return c;if(r!==Rt&&Tt(r,t))return o[t]=4,r[t];if(v=l.config.globalProperties,Tt(v,t))return v[t]},set({_:e},t,r){const{data:n,setupState:i,ctx:a}=e;return i!==Rt&&Tt(i,t)?(i[t]=r,!0):n!==Rt&&Tt(n,t)?(n[t]=r,!0):Tt(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!==Rt&&Tt(e,o)||t!==Rt&&Tt(t,o)||(s=a[0])&&Tt(s,o)||Tt(n,o)||Tt($l,o)||Tt(i.config.globalProperties,o)},defineProperty(e,t,r){return r.get!=null?this.set(e,t,r.get(),null):r.value!=null&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}},EC=V_();let LC=0;function RC(e,t,r){const n=e.type,i=(t?t.appContext:e.appContext)||EC,a={uid:LC++,vnode:e,type:n,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,scope:new r_(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:F_(n,i),emitsOptions:D_(n,i),emit:null,emitted:null,propsDefaults:Rt,inheritAttrs:n.inheritAttrs,ctx:Rt,data:Rt,props:Rt,attrs:Rt,slots:Rt,refs:Rt,setupState:Rt,setupContext:null,suspense:r,suspenseId:r?r.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=BT.bind(null,a),e.ce&&e.ce(a),a}let Jt=null;const Oa=()=>Jt||Re,In=e=>{Jt=e,e.scope.on()},Tn=()=>{Jt&&Jt.scope.off(),Jt=null};function Q_(e){return e.vnode.shapeFlag&4}let Xo=!1;function OC(e,t=!1){Xo=t;const{props:r,children:n}=e.vnode,i=Q_(e);pC(e,r,i,t),yC(e,n);const a=i?kC(e,t):void 0;return Xo=!1,a}function kC(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=_a(new Proxy(e.ctx,IC));const{setup:n}=r;if(n){const i=e.setupContext=n.length>1?BC(e):null;In(e),La();const a=Sn(n,e,0,[e.props,i]);if(Ra(),Tn(),Av(a)){if(a.then(Tn,Tn),t)return a.then(o=>{eh(e,o,t)}).catch(o=>{hs(o,e,0)});e.asyncDep=a}else eh(e,a,t)}else J_(e,t)}function eh(e,t,r){gt(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Yt(t)&&(e.setupState=w_(t)),J_(e,r)}let Ep;function J_(e,t,r){const n=e.type;if(!e.render){if(!t&&Ep&&!n.render){const i=n.template;if(i){const{isCustomElement:a,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:l}=n,u=ie(ie({isCustomElement:a,delimiters:s},o),l);n.render=Ep(i,u)}}e.render=n.render||fr}In(e),La(),fC(e),Ra(),Tn()}function NC(e){return new Proxy(e.attrs,{get(t,r){return ke(e,"get","$attrs"),t[r]}})}function BC(e){const t=n=>{e.exposed=n||{}};let r;return{get attrs(){return r||(r=NC(e))},slots:e.slots,emit:e.emit,expose:t}}function jv(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(w_(_a(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in $l)return $l[r](e)}}))}function FC(e){return gt(e)&&e.displayName||e.name}function zC(e){return gt(e)&&"__vccOpts"in e}const Ee=(e,t)=>LT(e,t,Xo);function Gz(e){const t=Oa();let r=e();return Tn(),Av(r)&&(r=r.catch(n=>{throw In(t),n})),[r,()=>In(t)]}function jo(e,t,r){const n=arguments.length;return n===2?Yt(t)&&!at(t)?qo(t)?fe(e,null,[t]):fe(e,t):fe(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):n===3&&qo(r)&&(r=[r]),fe(e,t,r))}const HC="3.2.31",$C="http://www.w3.org/2000/svg",fi=typeof document!="undefined"?document:null,Lp=fi&&fi.createElement("template"),VC={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?fi.createElementNS($C,e):fi.createElement(e,r?{is:r}:void 0);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>fi.createTextNode(e),createComment:e=>fi.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>fi.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),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{Lp.innerHTML=n?`${e}`:e;const s=Lp.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 GC(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 UC(e,t,r){const n=e.style,i=Zt(r);if(r&&!i){for(const a in r)rh(n,a,r[a]);if(t&&!Zt(t))for(const a in t)r[a]==null&&rh(n,a,"")}else{const a=n.display;i?t!==r&&(n.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(n.display=a)}}const Rp=/\s*!important$/;function rh(e,t,r){if(at(r))r.forEach(n=>rh(e,t,n));else if(t.startsWith("--"))e.setProperty(t,r);else{const n=WC(e,t);Rp.test(r)?e.setProperty(Mi(n),r.replace(Rp,""),"important"):e[n]=r}}const Op=["Webkit","Moz","ms"],pf={};function WC(e,t){const r=pf[t];if(r)return r;let n=Ar(t);if(n!=="filter"&&n in e)return pf[t]=n;n=Su(n);for(let i=0;idocument.createEvent("Event").timeStamp&&(Vl=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);t1=!!(e&&Number(e[1])<=53)}let nh=0;const XC=Promise.resolve(),jC=()=>{nh=0},KC=()=>nh||(XC.then(jC),nh=Vl());function Fr(e,t,r,n){e.addEventListener(t,r,n)}function ZC(e,t,r,n){e.removeEventListener(t,r,n)}function QC(e,t,r,n,i=null){const a=e._vei||(e._vei={}),o=a[t];if(n&&o)o.value=n;else{const[s,l]=JC(t);if(n){const u=a[t]=tM(n,i);Fr(e,s,u,l)}else o&&(ZC(e,s,o,l),a[t]=void 0)}}const Np=/(?:Once|Passive|Capture)$/;function JC(e){let t;if(Np.test(e)){t={};let r;for(;r=e.match(Np);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[Mi(e.slice(2)),t]}function tM(e,t){const r=n=>{const i=n.timeStamp||Vl();(t1||i>=r.attached-1)&&Qe(eM(n,r.value),t,5,[n])};return r.value=e,r.attached=KC(),r}function eM(e,t){if(at(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 Bp=/^on[a-z]/,rM=(e,t,r,n,i=!1,a,o,s,l)=>{t==="class"?GC(e,n,i):t==="style"?UC(e,r,n):_u(t)?Tv(t)||QC(e,t,r,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):nM(e,t,n,i))?qC(e,t,n,a,o,s,l):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),YC(e,t,n,i))};function nM(e,t,r,n){return n?!!(t==="innerHTML"||t==="textContent"||t in e&&Bp.test(t)&>(r)):t==="spellcheck"||t==="draggable"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Bp.test(t)&&Zt(r)?!1:t in e}function Uz(e){const t=Oa();if(!t)return;const r=()=>ih(t.subTree,e(t.proxy));KT(r),Au(()=>{const n=new MutationObserver(r);n.observe(t.subTree.el.parentNode,{childList:!0}),Du(()=>n.disconnect())})}function ih(e,t){if(e.shapeFlag&128){const r=e.suspense;e=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{ih(r.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Fp(e.el,t);else if(e.type===Pe)e.children.forEach(r=>ih(r,t));else if(e.type===xo){let{el:r,anchor:n}=e;for(;r&&(Fp(r,t),r!==n);)r=r.nextSibling}}function Fp(e,t){if(e.nodeType===1){const r=e.style;for(const n in t)r.setProperty(`--${n}`,t[n])}}const Qr="transition",$a="animation",e1=(e,{slots:t})=>jo(I_,iM(e),t);e1.displayName="Transition";const r1={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};e1.props=ie({},I_.props,r1);const Fn=(e,t=[])=>{at(e)?e.forEach(r=>r(...t)):e&&e(...t)},zp=e=>e?at(e)?e.some(t=>t.length>1):e.length>1:!1;function iM(e){const t={};for(const A in e)A in r1||(t[A]=e[A]);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:v=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,d=aM(i),p=d&&d[0],g=d&&d[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:_,onLeave:w,onLeaveCancelled:S,onBeforeAppear:b=m,onAppear:x=y,onAppearCancelled:T=_}=t,C=(A,L,O)=>{Oi(A,L?f:s),Oi(A,L?u:o),O&&O()},D=(A,L)=>{Oi(A,h),Oi(A,v),L&&L()},P=A=>(L,O)=>{const z=A?x:y,N=()=>C(L,A,O);Fn(z,[L,N]),Hp(()=>{Oi(L,A?l:a),Jr(L,A?f:s),zp(z)||$p(L,n,p,N)})};return ie(t,{onBeforeEnter(A){Fn(m,[A]),Jr(A,a),Jr(A,o)},onBeforeAppear(A){Fn(b,[A]),Jr(A,l),Jr(A,u)},onEnter:P(!1),onAppear:P(!0),onLeave(A,L){const O=()=>D(A,L);Jr(A,c),lM(),Jr(A,v),Hp(()=>{Oi(A,c),Jr(A,h),zp(w)||$p(A,n,g,O)}),Fn(w,[A,O])},onEnterCancelled(A){C(A,!1),Fn(_,[A])},onAppearCancelled(A){C(A,!0),Fn(T,[A])},onLeaveCancelled(A){D(A),Fn(S,[A])}})}function aM(e){if(e==null)return null;if(Yt(e))return[gf(e.enter),gf(e.leave)];{const t=gf(e);return[t,t]}}function gf(e){return ya(e)}function Jr(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function Oi(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 Hp(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let oM=0;function $p(e,t,r,n){const i=e._endId=++oM,a=()=>{i===e._endId&&n()};if(r)return setTimeout(a,r);const{type:o,timeout:s,propCount:l}=sM(e,t);if(!o)return n();const u=o+"end";let f=0;const c=()=>{e.removeEventListener(u,v),a()},v=h=>{h.target===e&&++f>=l&&c()};setTimeout(()=>{f(r[d]||"").split(", "),i=n(Qr+"Delay"),a=n(Qr+"Duration"),o=Vp(i,a),s=n($a+"Delay"),l=n($a+"Duration"),u=Vp(s,l);let f=null,c=0,v=0;t===Qr?o>0&&(f=Qr,c=o,v=a.length):t===$a?u>0&&(f=$a,c=u,v=l.length):(c=Math.max(o,u),f=c>0?o>u?Qr:$a:null,v=f?f===Qr?a.length:l.length:0);const h=f===Qr&&/\b(transform|all)(,|$)/.test(r[Qr+"Property"]);return{type:f,timeout:c,propCount:v,hasTransform:h}}function Vp(e,t){for(;e.lengthGp(r)+Gp(e[n])))}function Gp(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function lM(){return document.body.offsetHeight}const En=e=>{const t=e.props["onUpdate:modelValue"];return at(t)?r=>yl(t,r):t};function uM(e){e.target.composing=!0}function Up(e){const t=e.target;t.composing&&(t.composing=!1,fM(t,"input"))}function fM(e,t){const r=document.createEvent("HTMLEvents");r.initEvent(t,!0,!0),e.dispatchEvent(r)}const Wp={created(e,{modifiers:{lazy:t,trim:r,number:n}},i){e._assign=En(i);const a=n||i.props&&i.props.type==="number";Fr(e,t?"change":"input",o=>{if(o.target.composing)return;let s=e.value;r?s=s.trim():a&&(s=ya(s)),e._assign(s)}),r&&Fr(e,"change",()=>{e.value=e.value.trim()}),t||(Fr(e,"compositionstart",uM),Fr(e,"compositionend",Up),Fr(e,"change",Up))},mounted(e,{value:t}){e.value=t==null?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:r,trim:n,number:i}},a){if(e._assign=En(a),e.composing||document.activeElement===e&&(r||n&&e.value.trim()===t||(i||e.type==="number")&&ya(e.value)===t))return;const o=t==null?"":t;e.value!==o&&(e.value=o)}},cM={deep:!0,created(e,t,r){e._assign=En(r),Fr(e,"change",()=>{const n=e._modelValue,i=Sa(e),a=e.checked,o=e._assign;if(at(n)){const s=xv(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(Ea(n)){const s=new Set(n);a?s.add(i):s.delete(i),o(s)}else o(n1(e,a))})},mounted:Yp,beforeUpdate(e,t,r){e._assign=En(r),Yp(e,t,r)}};function Yp(e,{value:t,oldValue:r},n){e._modelValue=t,at(t)?e.checked=xv(t,n.props.value)>-1:Ea(t)?e.checked=t.has(n.props.value):t!==r&&(e.checked=wi(t,n1(e,!0)))}const hM={created(e,{value:t},r){e.checked=wi(t,r.props.value),e._assign=En(r),Fr(e,"change",()=>{e._assign(Sa(e))})},beforeUpdate(e,{value:t,oldValue:r},n){e._assign=En(n),t!==r&&(e.checked=wi(t,n.props.value))}},vM={deep:!0,created(e,{value:t,modifiers:{number:r}},n){const i=Ea(t);Fr(e,"change",()=>{const a=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>r?ya(Sa(o)):Sa(o));e._assign(e.multiple?i?new Set(a):a:a[0])}),e._assign=En(n)},mounted(e,{value:t}){qp(e,t)},beforeUpdate(e,t,r){e._assign=En(r)},updated(e,{value:t}){qp(e,t)}};function qp(e,t){const r=e.multiple;if(!(r&&!at(t)&&!Ea(t))){for(let n=0,i=e.options.length;n-1:a.selected=t.has(o);else if(wi(Sa(a),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Sa(e){return"_value"in e?e._value:e.value}function n1(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const Wz={created(e,t,r){Ds(e,t,r,null,"created")},mounted(e,t,r){Ds(e,t,r,null,"mounted")},beforeUpdate(e,t,r,n){Ds(e,t,r,n,"beforeUpdate")},updated(e,t,r,n){Ds(e,t,r,n,"updated")}};function Ds(e,t,r,n,i){let a;switch(e.tagName){case"SELECT":a=vM;break;case"TEXTAREA":a=Wp;break;default:switch(r.props&&r.props.type){case"checkbox":a=cM;break;case"radio":a=hM;break;default:a=Wp}}const o=a[i];o&&o(e,t,r,n)}const dM=["ctrl","shift","alt","meta"],pM={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)=>dM.some(r=>e[`${r}Key`]&&!t.includes(r))},Yz=(e,t)=>(r,...n)=>{for(let i=0;ir=>{if(!("key"in r))return;const n=Mi(r.key);if(t.some(i=>i===n||gM[i]===n))return e(r)},Xz={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):Va(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),Va(e,!0),n.enter(e)):n.leave(e,()=>{Va(e,!1)}):Va(e,t))},beforeUnmount(e,{value:t}){Va(e,t)}};function Va(e,t){e.style.display=t?e._vod:"none"}const mM=ie({patchProp:rM},VC);let Xp;function i1(){return Xp||(Xp=SC(mM))}const jz=(...e)=>{i1().render(...e)},Kz=(...e)=>{const t=i1().createApp(...e),{mount:r}=t;return t.mount=n=>{const i=yM(n);if(!i)return;const a=t._component;!gt(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 yM(e){return Zt(e)?document.querySelector(e):e}var _M=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},Kv={exports:{}},a1=function(t,r){return function(){for(var i=new Array(arguments.length),a=0;a=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([i]):r[n]=r[n]?r[n]+", "+i:i}}),r},Kp=Fe,ZM=Kp.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function i(a){var o=a;return t&&(r.setAttribute("href",o),o=r.href),r.setAttribute("href",o),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=i(window.location.href),function(o){var s=Kp.isString(o)?i(o):o;return s.protocol===n.protocol&&s.host===n.host}}():function(){return function(){return!0}}(),Is=Fe,QM=VM,JM=GM,tA=l1,eA=XM,rA=KM,nA=ZM,yf=f1,Zp=function(t){return new Promise(function(n,i){var a=t.data,o=t.headers,s=t.responseType;Is.isFormData(a)&&delete o["Content-Type"];var l=new XMLHttpRequest;if(t.auth){var u=t.auth.username||"",f=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.Authorization="Basic "+btoa(u+":"+f)}var c=eA(t.baseURL,t.url);l.open(t.method.toUpperCase(),tA(c,t.params,t.paramsSerializer),!0),l.timeout=t.timeout;function v(){if(!!l){var d="getAllResponseHeaders"in l?rA(l.getAllResponseHeaders()):null,p=!s||s==="text"||s==="json"?l.responseText:l.response,g={data:p,status:l.status,statusText:l.statusText,headers:d,config:t,request:l};QM(n,i,g),l=null}}if("onloadend"in l?l.onloadend=v:l.onreadystatechange=function(){!l||l.readyState!==4||l.status===0&&!(l.responseURL&&l.responseURL.indexOf("file:")===0)||setTimeout(v)},l.onabort=function(){!l||(i(yf("Request aborted",t,"ECONNABORTED",l)),l=null)},l.onerror=function(){i(yf("Network Error",t,null,l)),l=null},l.ontimeout=function(){var p="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(p=t.timeoutErrorMessage),i(yf(p,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",l)),l=null},Is.isStandardBrowserEnv()){var h=(t.withCredentials||nA(c))&&t.xsrfCookieName?JM.read(t.xsrfCookieName):void 0;h&&(o[t.xsrfHeaderName]=h)}"setRequestHeader"in l&&Is.forEach(o,function(p,g){typeof a=="undefined"&&g.toLowerCase()==="content-type"?delete o[g]:l.setRequestHeader(g,p)}),Is.isUndefined(t.withCredentials)||(l.withCredentials=!!t.withCredentials),s&&s!=="json"&&(l.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&l.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&l.upload&&l.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(p){!l||(l.abort(),i(p),l=null)}),a||(a=null),l.send(a)})},ee=Fe,Qp=zM,iA=u1,aA={"Content-Type":"application/x-www-form-urlencoded"};function Jp(e,t){!ee.isUndefined(e)&&ee.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function oA(){var e;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(e=Zp),e}function sA(e,t,r){if(ee.isString(e))try{return(t||JSON.parse)(e),ee.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}var Eu={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:oA(),transformRequest:[function(t,r){return Qp(r,"Accept"),Qp(r,"Content-Type"),ee.isFormData(t)||ee.isArrayBuffer(t)||ee.isBuffer(t)||ee.isStream(t)||ee.isFile(t)||ee.isBlob(t)?t:ee.isArrayBufferView(t)?t.buffer:ee.isURLSearchParams(t)?(Jp(r,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):ee.isObject(t)||r&&r["Content-Type"]==="application/json"?(Jp(r,"application/json"),sA(t)):t}],transformResponse:[function(t){var r=this.transitional,n=r&&r.silentJSONParsing,i=r&&r.forcedJSONParsing,a=!n&&this.responseType==="json";if(a||i&&ee.isString(t)&&t.length)try{return JSON.parse(t)}catch(o){if(a)throw o.name==="SyntaxError"?iA(o,this,"E_JSON_PARSE"):o}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};Eu.headers={common:{Accept:"application/json, text/plain, */*"}};ee.forEach(["delete","get","head"],function(t){Eu.headers[t]={}});ee.forEach(["post","put","patch"],function(t){Eu.headers[t]=ee.merge(aA)});var Jv=Eu,lA=Fe,uA=Jv,fA=function(t,r,n){var i=this||uA;return lA.forEach(n,function(o){t=o.call(i,t,r)}),t},c1=function(t){return!!(t&&t.__CANCEL__)},tg=Fe,_f=fA,cA=c1,hA=Jv;function wf(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var vA=function(t){wf(t),t.headers=t.headers||{},t.data=_f.call(t,t.data,t.headers,t.transformRequest),t.headers=tg.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),tg.forEach(["delete","get","head","post","put","patch","common"],function(i){delete t.headers[i]});var r=t.adapter||hA.adapter;return r(t).then(function(i){return wf(t),i.data=_f.call(t,i.data,i.headers,t.transformResponse),i},function(i){return cA(i)||(wf(t),i&&i.response&&(i.response.data=_f.call(t,i.response.data,i.response.headers,t.transformResponse))),Promise.reject(i)})},ae=Fe,h1=function(t,r){r=r||{};var n={},i=["url","method","data"],a=["headers","auth","proxy","params"],o=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],s=["validateStatus"];function l(v,h){return ae.isPlainObject(v)&&ae.isPlainObject(h)?ae.merge(v,h):ae.isPlainObject(h)?ae.merge({},h):ae.isArray(h)?h.slice():h}function u(v){ae.isUndefined(r[v])?ae.isUndefined(t[v])||(n[v]=l(void 0,t[v])):n[v]=l(t[v],r[v])}ae.forEach(i,function(h){ae.isUndefined(r[h])||(n[h]=l(void 0,r[h]))}),ae.forEach(a,u),ae.forEach(o,function(h){ae.isUndefined(r[h])?ae.isUndefined(t[h])||(n[h]=l(void 0,t[h])):n[h]=l(void 0,r[h])}),ae.forEach(s,function(h){h in r?n[h]=l(t[h],r[h]):h in t&&(n[h]=l(void 0,t[h]))});var f=i.concat(a).concat(o).concat(s),c=Object.keys(t).concat(Object.keys(r)).filter(function(h){return f.indexOf(h)===-1});return ae.forEach(c,u),n};const dA="axios",pA="0.21.4",gA="Promise based HTTP client for the browser and node.js",mA="index.js",yA={test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},_A={type:"git",url:"https://github.com/axios/axios.git"},wA=["xhr","http","ajax","promise","node"],bA="Matt Zabriskie",SA="MIT",xA={url:"https://github.com/axios/axios/issues"},TA="https://axios-http.com",CA={coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},MA={"./lib/adapters/http.js":"./lib/adapters/xhr.js"},AA="dist/axios.min.js",DA="dist/axios.min.js",PA="./index.d.ts",IA={"follow-redirects":"^1.14.0"},EA=[{path:"./dist/axios.min.js",threshold:"5kB"}];var LA={name:dA,version:pA,description:gA,main:mA,scripts:yA,repository:_A,keywords:wA,author:bA,license:SA,bugs:xA,homepage:TA,devDependencies:CA,browser:MA,jsdelivr:AA,unpkg:DA,typings:PA,dependencies:IA,bundlesize:EA},v1=LA,td={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){td[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});var eg={},RA=v1.version.split(".");function d1(e,t){for(var r=t?t.split("."):RA,n=e.split("."),i=0;i<3;i++){if(r[i]>n[i])return!0;if(r[i]0;){var a=n[i],o=t[a];if(o){var s=e[a],l=s===void 0||o(s,a,e);if(l!==!0)throw new TypeError("option "+a+" must be "+l);continue}if(r!==!0)throw Error("Unknown option "+a)}}var kA={isOlderVersion:d1,assertOptions:OA,validators:td},p1=Fe,NA=l1,rg=BM,ng=vA,Lu=h1,g1=kA,Ni=g1.validators;function vs(e){this.defaults=e,this.interceptors={request:new rg,response:new rg}}vs.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=Lu(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;r!==void 0&&g1.assertOptions(r,{silentJSONParsing:Ni.transitional(Ni.boolean,"1.0.0"),forcedJSONParsing:Ni.transitional(Ni.boolean,"1.0.0"),clarifyTimeoutError:Ni.transitional(Ni.boolean,"1.0.0")},!1);var n=[],i=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(t)===!1||(i=i&&v.synchronous,n.unshift(v.fulfilled,v.rejected))});var a=[];this.interceptors.response.forEach(function(v){a.push(v.fulfilled,v.rejected)});var o;if(!i){var s=[ng,void 0];for(Array.prototype.unshift.apply(s,n),s=s.concat(a),o=Promise.resolve(t);s.length;)o=o.then(s.shift(),s.shift());return o}for(var l=t;n.length;){var u=n.shift(),f=n.shift();try{l=u(l)}catch(c){f(c);break}}try{o=ng(l)}catch(c){return Promise.reject(c)}for(;a.length;)o=o.then(a.shift(),a.shift());return o};vs.prototype.getUri=function(t){return t=Lu(this.defaults,t),NA(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};p1.forEach(["delete","get","head","options"],function(t){vs.prototype[t]=function(r,n){return this.request(Lu(n||{},{method:t,url:r,data:(n||{}).data}))}});p1.forEach(["post","put","patch"],function(t){vs.prototype[t]=function(r,n,i){return this.request(Lu(i||{},{method:t,url:r,data:n}))}});var BA=vs;function ed(e){this.message=e}ed.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};ed.prototype.__CANCEL__=!0;var m1=ed,FA=m1;function Gl(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(i){t=i});var r=this;e(function(i){r.reason||(r.reason=new FA(i),t(r.reason))})}Gl.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};Gl.source=function(){var t,r=new Gl(function(i){t=i});return{token:r,cancel:t}};var zA=Gl,HA=function(t){return function(n){return t.apply(null,n)}},$A=function(t){return typeof t=="object"&&t.isAxiosError===!0},ig=Fe,VA=a1,Sl=BA,GA=h1,UA=Jv;function y1(e){var t=new Sl(e),r=VA(Sl.prototype.request,t);return ig.extend(r,Sl.prototype,t),ig.extend(r,t),r}var cr=y1(UA);cr.Axios=Sl;cr.create=function(t){return y1(GA(cr.defaults,t))};cr.Cancel=m1;cr.CancelToken=zA;cr.isCancel=c1;cr.all=function(t){return Promise.all(t)};cr.spread=HA;cr.isAxiosError=$A;Kv.exports=cr;Kv.exports.default=cr;var Zz=Kv.exports,Ul=function(){return Ul=Object.assign||function(t){for(var r,n=1,i=arguments.length;n":">",'"':""","'":"'"};function v(d,p){for(var g=p.split(WA).filter(function(m){return m});g.length;)d=d[g.shift()];return d}function h(d,p,g){try{f=v(d,p)}catch(y){}if(f==null){if(g)return h(g.ctx,p,g.parent);console.warn("Cannot evaluate expression: ".concat(p)),f=p}var m=f.toString();return n?m:m.replace(/[&<>"']/g,function(y){return c[y]})}return h(r,u,i)});return o}};ds.INTERPOLATION_RE=_1;ds.INTERPOLATION_PREFIX="%{";var ag={getTranslationIndex:function(e,t){switch(t=Number(t),t=typeof t=="number"&&isNaN(t)?1:t,e.length>2&&e!=="pt_BR"&&(e=e.split("_")[0]),e){case"ay":case"bo":case"cgg":case"dz":case"fa":case"id":case"ja":case"jbo":case"ka":case"kk":case"km":case"ko":case"ky":case"lo":case"ms":case"my":case"sah":case"su":case"th":case"tt":case"ug":case"vi":case"wo":case"zh":return 0;case"is":return t%10!==1||t%100===11?1:0;case"jv":return t!==0?1:0;case"mk":return t===1||t%10===1?0:1;case"ach":case"ak":case"am":case"arn":case"br":case"fil":case"fr":case"gun":case"ln":case"mfe":case"mg":case"mi":case"oc":case"pt_BR":case"tg":case"ti":case"tr":case"uz":case"wa":return t>1?1:0;case"lv":return t%10===1&&t%100!==11?0:t!==0?1:2;case"lt":return t%10===1&&t%100!==11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"be":case"bs":case"hr":case"ru":case"sr":case"uk":return t%10===1&&t%100!==11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"mnk":return t===0?0:t===1?1:2;case"ro":return t===1?0:t===0||t%100>0&&t%100<20?1:2;case"pl":return t===1?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"sk":return t===1?0:t>=2&&t<=4?1:2;case"csb":return t===1?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"sl":return t%100===1?0:t%100===2?1:t%100===3||t%100===4?2:3;case"mt":return t===1?0:t===0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"gd":return t===1||t===11?0:t===2||t===12?1:t>2&&t<20?2:3;case"cy":return t===1?0:t===2?1:t!==8&&t!==11?2:3;case"kw":return t===1?0:t===2?1:t===3?2:3;case"ga":return t===1?0:t===2?1:t>2&&t<7?2:t>6&&t<11?3:4;case"ar":return t===0?0:t===1?1:t===2?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5;default:return t!==1?1:0}}},rd=function(e){return{getTranslation:function(t,r,n,i,a,o,s){r===void 0&&(r=1),n===void 0&&(n=null),i===void 0&&(i=null),s===void 0&&(s=!1),a===void 0&&(a=e.current);var l=function(m,y){return y?e.interpolate(m,y,s):m};if(t=t.trim(),!t)return"";var u=a?e.silent||e.muted.indexOf(a)!==-1:!1,f=i&&ag.getTranslationIndex(a,r)>0?i:t,c=e.translations,v=c[a]||c[a.split("_")[0]];if(!v)return u||console.warn("No translations found for ".concat(a)),l(f,o);var h=function(m){var y=ag.getTranslationIndex(a,r);if(m.length===1&&r===1&&(y=0),!m[y])throw new Error(t+" "+y+" "+e.current+" "+r);return l(m[y],o)},d=function(){if(!u){var m="Untranslated ".concat(a," key found: ").concat(t);n&&(m+=" (with context: ".concat(n,")")),console.warn(m)}return l(f,o)},p=function(m,y){if(y===void 0&&(y=null),m instanceof Object){if(Array.isArray(m))return h(m);var _=y!=null?y:"",w=m[_];return p(w)}return y||!m?d():l(m,o)},g=v[t];return p(g,n)},gettext:function(t,r,n){return n===void 0&&(n=!1),this.getTranslation(t,void 0,void 0,void 0,void 0,r,n)},pgettext:function(t,r,n,i){return i===void 0&&(i=!1),this.getTranslation(r,1,t,void 0,void 0,n,i)},ngettext:function(t,r,n,i,a){return a===void 0&&(a=!1),this.getTranslation(t,n,null,r,void 0,i,a)},npgettext:function(t,r,n,i,a,o){return o===void 0&&(o=!1),this.getTranslation(r,i,t,n,void 0,a,o)}}},sh=Symbol("GETTEXT");function qA(e){return e.replace(/\r?\n|\r/,"").replace(/\s\s+/g," ").trim()}function og(e){var t={};return Object.keys(e).forEach(function(r){var n=e[r],i={};Object.keys(n).forEach(function(a){i[qA(a)]=n[a]}),t[r]=i}),t}var XA=function(){var e=Je(sh,null);if(!e)throw new Error("Failed to inject gettext. Make sure vue3-gettext is set up properly.");return e},sg=Gv({name:"translate",props:{tag:{type:String,default:"span"},translateN:{type:Number,default:null},translatePlural:{type:String,default:null},translateContext:{type:String,default:null},translateParams:{type:Object,default:null},translateComment:{type:String,default:null}},setup:function(e,t){var r,n,i,a=e.translateN!==void 0&&e.translatePlural!==void 0;if(!a&&(e.translateN||e.translatePlural))throw new Error("`translate-n` and `translate-plural` attributes must be used together: ".concat((i=(n=(r=t.slots).default)===null||n===void 0?void 0:n.call(r)[0])===null||i===void 0?void 0:i.children,"."));var o=wa(),s=XA(),l=wa(null);Au(function(){!l.value&&o.value&&(l.value=o.value.innerHTML.trim())});var u=Ee(function(){var f,c=rd(s).getTranslation(l.value,e.translateN,e.translateContext,a?e.translatePlural:null,s.current);return ds(s)(c,e.translateParams,void 0,(f=Oa())===null||f===void 0?void 0:f.parent)});return function(){return l.value?jo(e.tag,{ref:o,innerHTML:u.value}):jo(e.tag,{ref:o},t.slots.default?t.slots.default():"")}}}),jA=function(e,t,r,n){var i,a=n.props||{},o=t.dataset.msgid,s=a["translate-context"],l=a["translate-n"],u=a["translate-plural"],f=l!==void 0&&u!==void 0,c=a["render-html"]==="true";if(!f&&(l||u))throw new Error("`translate-n` and `translate-plural` attributes must be used together:"+o+".");!e.silent&&a["translate-params"]&&console.warn("`translate-params` is required as an expression for v-translate directive. Please change to `v-translate='params'`: ".concat(o));var v=rd(e).getTranslation(o,l,s,f?u:null,e.current),h=Object.assign((i=r.instance)!==null&&i!==void 0?i:{},r.value),d=ds(e)(v,h,c,null);t.innerHTML=d};function lg(e){var t=function(r,n,i){r.dataset.currentLanguage=e.current,jA(e,r,n,i)};return{beforeMount:function(r,n,i){r.dataset.msgid||(r.dataset.msgid=r.innerHTML),ha(e,function(){t(r,n,i)}),t(r,n,i)},updated:function(r,n,i){t(r,n,i)}}}var ug={availableLanguages:{en:"English"},defaultLanguage:"en",mutedLanguages:[],silent:!1,translations:{},setGlobalProperties:!0,provideDirective:!0,provideComponent:!0};function Qz(e){e===void 0&&(e={}),Object.keys(e).forEach(function(o){if(Object.keys(ug).indexOf(o)===-1)throw new Error("".concat(o," is an invalid option for the translate plugin."))});var t=Ul(Ul({},ug),e),r=wa(og(t.translations)),n=Ai({available:t.availableLanguages,muted:t.mutedLanguages,silent:t.silent,translations:Ee({get:function(){return r.value},set:function(o){r.value=og(o)}}),current:t.defaultLanguage,install:function(o){if(o[sh]=n,o.provide(sh,n),t.setGlobalProperties){var s=o.config.globalProperties;s.$gettext=n.$gettext,s.$pgettext=n.$pgettext,s.$ngettext=n.$ngettext,s.$npgettext=n.$npgettext,s.$gettextInterpolate=n.interpolate,s.$language=n}t.provideDirective&&o.directive("translate",lg(n)),t.provideComponent&&o.component("translate",sg)}}),i=rd(n),a=ds(n);return n.$gettext=i.gettext.bind(i),n.$pgettext=i.pgettext.bind(i),n.$ngettext=i.ngettext.bind(i),n.$npgettext=i.npgettext.bind(i),n.interpolate=a.bind(a),n.directive=lg(n),n.component=sg,n}var KA=!1;/*! - * pinia v2.0.12 - * (c) 2022 Eduardo San Martin Morote - * @license MIT - */let w1;const Ru=e=>w1=e,b1=Symbol();function lh(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Co;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Co||(Co={}));function Jz(){const e=n_(!0),t=e.run(()=>wa({}));let r=[],n=[];const i=_a({install(a){Ru(i),i._a=a,a.provide(b1,i),a.config.globalProperties.$pinia=i,n.forEach(o=>r.push(o)),n=[]},use(a){return!this._a&&!KA?n.push(a):r.push(a),this},_p:r,_a:null,_e:e,_s:new Map,state:t});return i}const S1=()=>{};function fg(e,t,r,n=S1){e.push(t);const i=()=>{const a=e.indexOf(t);a>-1&&(e.splice(a,1),n())};return!r&&Oa()&&Du(i),i}function Bi(e,...t){e.slice().forEach(r=>{r(...t)})}function uh(e,t){for(const r in t){const n=t[r],i=e[r];lh(i)&&lh(n)&&!Wt(n)&&!bn(n)?e[r]=uh(i,n):e[r]=n}return e}const ZA=Symbol();function QA(e){return!lh(e)||!e.hasOwnProperty(ZA)}const{assign:kr}=Object;function JA(e){return!!(Wt(e)&&e.effect)}function tD(e,t,r,n){const{state:i,actions:a,getters:o}=t,s=r.state.value[e];let l;function u(){s||(r.state.value[e]=i?i():{});const f=DT(r.state.value[e]);return kr(f,a,Object.keys(o||{}).reduce((c,v)=>(c[v]=_a(Ee(()=>{Ru(r);const h=r._s.get(e);return o[v].call(h,h)})),c),{}))}return l=x1(e,u,t,r),l.$reset=function(){const c=i?i():{};this.$patch(v=>{kr(v,c)})},l}function x1(e,t,r={},n,i){let a;const o=r.state,s=kr({actions:{}},r),l={deep:!0};let u,f,c=_a([]),v=_a([]),h;const d=n.state.value[e];!o&&!d&&(n.state.value[e]={}),wa({});function p(b){let x;u=f=!1,typeof b=="function"?(b(n.state.value[e]),x={type:Co.patchFunction,storeId:e,events:h}):(uh(n.state.value[e],b),x={type:Co.patchObject,payload:b,storeId:e,events:h}),Bv().then(()=>{u=!0}),f=!0,Bi(c,x,n.state.value[e])}const g=S1;function m(){a.stop(),c=[],v=[],n._s.delete(e)}function y(b,x){return function(){Ru(n);const T=Array.from(arguments),C=[],D=[];function P(O){C.push(O)}function A(O){D.push(O)}Bi(v,{args:T,name:b,store:w,after:P,onError:A});let L;try{L=x.apply(this&&this.$id===e?this:w,T)}catch(O){throw Bi(D,O),O}return L instanceof Promise?L.then(O=>(Bi(C,O),O)).catch(O=>(Bi(D,O),Promise.reject(O))):(Bi(C,L),L)}}const _={_p:n,$id:e,$onAction:fg.bind(null,v),$patch:p,$reset:g,$subscribe(b,x={}){const T=fg(c,b,x.detached,()=>C()),C=a.run(()=>ha(()=>n.state.value[e],D=>{(x.flush==="sync"?f:u)&&b({storeId:e,type:Co.direct,events:h},D)},kr({},l,x)));return T},$dispose:m},w=Ai(kr({},_));n._s.set(e,w);const S=n._e.run(()=>(a=n_(),a.run(()=>t())));for(const b in S){const x=S[b];if(Wt(x)&&!JA(x)||bn(x))o||(d&&QA(x)&&(Wt(x)?x.value=d[b]:uh(x,d[b])),n.state.value[e][b]=x);else if(typeof x=="function"){const T=y(b,x);S[b]=T,s.actions[b]=x}}return kr(w,S),kr(Ct(w),S),Object.defineProperty(w,"$state",{get:()=>n.state.value[e],set:b=>{p(x=>{kr(x,b)})}}),n._p.forEach(b=>{kr(w,a.run(()=>b({store:w,app:n._a,pinia:n,options:s})))}),d&&o&&r.hydrate&&r.hydrate(w.$state,d),u=!0,f=!0,w}function tH(e,t,r){let n,i;const a=typeof t=="function";typeof e=="string"?(n=e,i=a?r:t):(i=e,n=e.id);function o(s,l){const u=Oa();return s=s||u&&Je(b1),s&&Ru(s),s=w1,s._s.has(n)||(a?x1(n,t,i,s):tD(n,i,s)),s._s.get(n)}return o.$id=n,o}/*! - * vue-router v4.0.14 - * (c) 2022 Eduardo San Martin Morote - * @license MIT - */const T1=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol",ka=e=>T1?Symbol(e):"_vr_"+e,eD=ka("rvlm"),cg=ka("rvd"),Ou=ka("r"),nd=ka("rl"),fh=ka("rvl"),ea=typeof window!="undefined";function rD(e){return e.__esModule||T1&&e[Symbol.toStringTag]==="Module"}const Lt=Object.assign;function bf(e,t){const r={};for(const n in t){const i=t[n];r[n]=Array.isArray(i)?i.map(e):e(i)}return r}const Mo=()=>{},nD=/\/$/,iD=e=>e.replace(nD,"");function Sf(e,t,r="/"){let n,i={},a="",o="";const s=t.indexOf("?"),l=t.indexOf("#",s>-1?s:0);return s>-1&&(n=t.slice(0,s),a=t.slice(s+1,l>-1?l:t.length),i=e(a)),l>-1&&(n=n||t.slice(0,l),o=t.slice(l,t.length)),n=lD(n!=null?n:t,r),{fullPath:n+(a&&"?")+a+o,path:n,query:i,hash:o}}function aD(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function hg(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function oD(e,t,r){const n=t.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&xa(t.matched[n],r.matched[i])&&C1(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function xa(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function C1(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!sD(e[r],t[r]))return!1;return!0}function sD(e,t){return Array.isArray(e)?vg(e,t):Array.isArray(t)?vg(t,e):e===t}function vg(e,t){return Array.isArray(t)?e.length===t.length&&e.every((r,n)=>r===t[n]):e.length===1&&e[0]===t}function lD(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;a({left:window.pageXOffset,top:window.pageYOffset});function vD(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=hD(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 dg(e,t){return(history.state?history.state.position-t:-1)+e}const ch=new Map;function dD(e,t){ch.set(e,t)}function pD(e){const t=ch.get(e);return ch.delete(e),t}let gD=()=>location.protocol+"//"+location.host;function M1(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),hg(l,"")}return hg(r,e)+n+i}function mD(e,t,r,n){let i=[],a=[],o=null;const s=({state:v})=>{const h=M1(e,location),d=r.value,p=t.value;let g=0;if(v){if(r.value=h,t.value=v,o&&o===d){o=null;return}g=p?v.position-p.position:0}else n(h);i.forEach(m=>{m(r.value,d,{delta:g,type:Ko.pop,direction:g?g>0?Ao.forward:Ao.back:Ao.unknown})})};function l(){o=r.value}function u(v){i.push(v);const h=()=>{const d=i.indexOf(v);d>-1&&i.splice(d,1)};return a.push(h),h}function f(){const{history:v}=window;!v.state||v.replaceState(Lt({},v.state,{scroll:ku()}),"")}function c(){for(const v of a)v();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 pg(e,t,r,n=!1,i=!1){return{back:e,current:t,forward:r,replaced:n,position:window.history.length,scroll:i?ku():null}}function yD(e){const{history:t,location:r}=window,n={value:M1(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("#"),v=c>-1?(r.host&&document.querySelector("base")?e:e.slice(c))+l:gD()+e+l;try{t[f?"replaceState":"pushState"](u,"",v),i.value=u}catch(h){console.error(h),r[f?"replace":"assign"](v)}}function o(l,u){const f=Lt({},t.state,pg(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:ku()});a(f.current,f,!0);const c=Lt({},pg(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 eH(e){e=uD(e);const t=yD(e),r=mD(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:cD.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 _D(e){return typeof e=="string"||e&&typeof e=="object"}function A1(e){return typeof e=="string"||typeof e=="symbol"}const tn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},D1=ka("nf");var gg;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(gg||(gg={}));function Ta(e,t){return Lt(new Error,{type:e,[D1]:!0},t)}function en(e,t){return e instanceof Error&&D1 in e&&(t==null||!!(e.type&t))}const mg="[^/]+?",wD={sensitive:!1,strict:!1,start:!0,end:!0},bD=/[.+*?^${}()[\]/\\]/g;function SD(e,t){const r=Lt({},wD,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 TD(e,t){let r=0;const n=e.score,i=t.score;for(;r1&&(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 v(){u+=l}for(;s{o(y)}:Mo}function o(f){if(A1(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||!P1(f,r[c]));)c++;r.splice(c,0,f),f.record.name&&!yg(f)&&n.set(f.record.name,f)}function u(f,c){let v,h={},d,p;if("name"in f&&f.name){if(v=n.get(f.name),!v)throw Ta(1,{location:f});p=v.record.name,h=Lt(ID(c.params,v.keys.filter(y=>!y.optional).map(y=>y.name)),f.params),d=v.stringify(h)}else if("path"in f)d=f.path,v=r.find(y=>y.re.test(d)),v&&(h=v.parse(d),p=v.record.name);else{if(v=c.name?n.get(c.name):r.find(y=>y.re.test(c.path)),!v)throw Ta(1,{location:f,currentLocation:c});p=v.record.name,h=Lt({},c.params,f.params),d=v.stringify(h)}const g=[];let m=v;for(;m;)g.unshift(m.record),m=m.parent;return{name:p,path:d,params:h,matched:g,meta:RD(g)}}return e.forEach(f=>a(f)),{addRoute:a,resolve:u,removeRoute:o,getRoutes:s,getRecordMatcher:i}}function ID(e,t){const r={};for(const n of t)n in e&&(r[n]=e[n]);return r}function ED(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:LD(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||{}:{default:e.component}}}function LD(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 yg(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function RD(e){return e.reduce((t,r)=>Lt(t,r.meta),{})}function _g(e,t){const r={};for(const n in e)r[n]=n in t?t[n]:e[n];return r}function P1(e,t){return t.children.some(r=>r===e||P1(e,r))}const I1=/#/g,OD=/&/g,kD=/\//g,ND=/=/g,BD=/\?/g,E1=/\+/g,FD=/%5B/g,zD=/%5D/g,L1=/%5E/g,HD=/%60/g,R1=/%7B/g,$D=/%7C/g,O1=/%7D/g,VD=/%20/g;function id(e){return encodeURI(""+e).replace($D,"|").replace(FD,"[").replace(zD,"]")}function GD(e){return id(e).replace(R1,"{").replace(O1,"}").replace(L1,"^")}function hh(e){return id(e).replace(E1,"%2B").replace(VD,"+").replace(I1,"%23").replace(OD,"%26").replace(HD,"`").replace(R1,"{").replace(O1,"}").replace(L1,"^")}function UD(e){return hh(e).replace(ND,"%3D")}function WD(e){return id(e).replace(I1,"%23").replace(BD,"%3F")}function YD(e){return e==null?"":WD(e).replace(kD,"%2F")}function Wl(e){try{return decodeURIComponent(""+e)}catch(t){}return""+e}function qD(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;ia&&hh(a)):[n&&hh(n)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+r,a!=null&&(t+="="+a))})}return t}function XD(e){const t={};for(const r in e){const n=e[r];n!==void 0&&(t[r]=Array.isArray(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return t}function Ga(){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 pn(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(Ta(4,{from:r,to:t})):c instanceof Error?s(c):_D(c)?s(Ta(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 xf(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(jD(s)){const u=(s.__vccOpts||s)[t];u&&i.push(pn(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=rD(u)?u.default:u;a.components[o]=f;const v=(f.__vccOpts||f)[t];return v&&pn(v,r,n,a,o)()}))}}return i}function jD(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function bg(e){const t=Je(Ou),r=Je(nd),n=Ee(()=>t.resolve(wo(e.to))),i=Ee(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=r.matched;if(!f||!c.length)return-1;const v=c.findIndex(xa.bind(null,f));if(v>-1)return v;const h=Sg(l[u-2]);return u>1&&Sg(f)===h&&c[c.length-1].path!==h?c.findIndex(xa.bind(null,l[u-2])):v}),a=Ee(()=>i.value>-1&&JD(r.params,n.value.params)),o=Ee(()=>i.value>-1&&i.value===r.matched.length-1&&C1(r.params,n.value.params));function s(l={}){return QD(l)?t[wo(e.replace)?"replace":"push"](wo(e.to)).catch(Mo):Promise.resolve()}return{route:n,href:Ee(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}const KD=Gv({name:"RouterLink",props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:bg,setup(e,{slots:t}){const r=Ai(bg(e)),{options:n}=Je(Ou),i=Ee(()=>({[xg(e.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[xg(e.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=t.default&&t.default(r);return e.custom?a:jo("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),ZD=KD;function QD(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 JD(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(!Array.isArray(i)||i.length!==n.length||n.some((a,o)=>a!==i[o]))return!1}return!0}function Sg(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const xg=(e,t,r)=>e!=null?e:t!=null?t:r,tP=Gv({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},setup(e,{attrs:t,slots:r}){const n=Je(fh),i=Ee(()=>e.route||n.value),a=Je(cg,0),o=Ee(()=>i.value.matched[a]);_l(cg,a+1),_l(eD,o),_l(fh,i);const s=wa();return ha(()=>[s.value,o.value,e.name],([l,u,f],[c,v,h])=>{u&&(u.instances[f]=l,v&&v!==u&&l&&l===c&&(u.leaveGuards.size||(u.leaveGuards=v.leaveGuards),u.updateGuards.size||(u.updateGuards=v.updateGuards))),l&&u&&(!v||!xa(u,v)||!c)&&(u.enterCallbacks[f]||[]).forEach(d=>d(l))},{flush:"post"}),()=>{const l=i.value,u=o.value,f=u&&u.components[e.name],c=e.name;if(!f)return Tg(r.default,{Component:f,route:l});const v=u.props[e.name],h=v?v===!0?l.params:typeof v=="function"?v(l):v:null,p=jo(f,Lt({},h,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(u.instances[c]=null)},ref:s}));return Tg(r.default,{Component:p,route:l})||p}}});function Tg(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const eP=tP;function rH(e){const t=PD(e.routes,e),r=e.parseQuery||qD,n=e.stringifyQuery||wg,i=e.history,a=Ga(),o=Ga(),s=Ga(),l=CT(tn);let u=tn;ea&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=bf.bind(null,k=>""+k),c=bf.bind(null,YD),v=bf.bind(null,Wl);function h(k,G){let $,Q;return A1(k)?($=t.getRecordMatcher(k),Q=G):Q=k,t.addRoute(Q,$)}function d(k){const G=t.getRecordMatcher(k);G&&t.removeRoute(G)}function p(){return t.getRoutes().map(k=>k.record)}function g(k){return!!t.getRecordMatcher(k)}function m(k,G){if(G=Lt({},G||l.value),typeof k=="string"){const j=Sf(r,k,G.path),M=t.resolve({path:j.path},G),E=i.createHref(j.fullPath);return Lt(j,M,{params:v(M.params),hash:Wl(j.hash),redirectedFrom:void 0,href:E})}let $;if("path"in k)$=Lt({},k,{path:Sf(r,k.path,G.path).path});else{const j=Lt({},k.params);for(const M in j)j[M]==null&&delete j[M];$=Lt({},k,{params:c(k.params)}),G.params=c(G.params)}const Q=t.resolve($,G),vt=k.hash||"";Q.params=f(v(Q.params));const ft=aD(n,Lt({},k,{hash:GD(vt),path:Q.path})),X=i.createHref(ft);return Lt({fullPath:ft,hash:vt,query:n===wg?XD(k.query):k.query||{}},Q,{redirectedFrom:void 0,href:X})}function y(k){return typeof k=="string"?Sf(r,k,l.value.path):Lt({},k)}function _(k,G){if(u!==k)return Ta(8,{from:G,to:k})}function w(k){return x(k)}function S(k){return w(Lt(y(k),{replace:!0}))}function b(k){const G=k.matched[k.matched.length-1];if(G&&G.redirect){const{redirect:$}=G;let Q=typeof $=="function"?$(k):$;return typeof Q=="string"&&(Q=Q.includes("?")||Q.includes("#")?Q=y(Q):{path:Q},Q.params={}),Lt({query:k.query,hash:k.hash,params:k.params},Q)}}function x(k,G){const $=u=m(k),Q=l.value,vt=k.state,ft=k.force,X=k.replace===!0,j=b($);if(j)return x(Lt(y(j),{state:vt,force:ft,replace:X}),G||$);const M=$;M.redirectedFrom=G;let E;return!ft&&oD(n,Q,$)&&(E=Ta(16,{to:M,from:Q}),lt(Q,Q,!0,!1)),(E?Promise.resolve(E):C(M,Q)).catch(R=>en(R)?en(R,2)?R:K(R):tt(R,M,Q)).then(R=>{if(R){if(en(R,2))return x(Lt(y(R.to),{state:vt,force:ft,replace:X}),G||M)}else R=P(M,Q,!0,X,vt);return D(M,Q,R),R})}function T(k,G){const $=_(k,G);return $?Promise.reject($):Promise.resolve()}function C(k,G){let $;const[Q,vt,ft]=rP(k,G);$=xf(Q.reverse(),"beforeRouteLeave",k,G);for(const j of Q)j.leaveGuards.forEach(M=>{$.push(pn(M,k,G))});const X=T.bind(null,k,G);return $.push(X),Fi($).then(()=>{$=[];for(const j of a.list())$.push(pn(j,k,G));return $.push(X),Fi($)}).then(()=>{$=xf(vt,"beforeRouteUpdate",k,G);for(const j of vt)j.updateGuards.forEach(M=>{$.push(pn(M,k,G))});return $.push(X),Fi($)}).then(()=>{$=[];for(const j of k.matched)if(j.beforeEnter&&!G.matched.includes(j))if(Array.isArray(j.beforeEnter))for(const M of j.beforeEnter)$.push(pn(M,k,G));else $.push(pn(j.beforeEnter,k,G));return $.push(X),Fi($)}).then(()=>(k.matched.forEach(j=>j.enterCallbacks={}),$=xf(ft,"beforeRouteEnter",k,G),$.push(X),Fi($))).then(()=>{$=[];for(const j of o.list())$.push(pn(j,k,G));return $.push(X),Fi($)}).catch(j=>en(j,8)?j:Promise.reject(j))}function D(k,G,$){for(const Q of s.list())Q(k,G,$)}function P(k,G,$,Q,vt){const ft=_(k,G);if(ft)return ft;const X=G===tn,j=ea?history.state:{};$&&(Q||X?i.replace(k.fullPath,Lt({scroll:X&&j&&j.scroll},vt)):i.push(k.fullPath,vt)),l.value=k,lt(k,G,$,X),K()}let A;function L(){A=i.listen((k,G,$)=>{const Q=m(k),vt=b(Q);if(vt){x(Lt(vt,{replace:!0}),Q).catch(Mo);return}u=Q;const ft=l.value;ea&&dD(dg(ft.fullPath,$.delta),ku()),C(Q,ft).catch(X=>en(X,12)?X:en(X,2)?(x(X.to,Q).then(j=>{en(j,20)&&!$.delta&&$.type===Ko.pop&&i.go(-1,!1)}).catch(Mo),Promise.reject()):($.delta&&i.go(-$.delta,!1),tt(X,Q,ft))).then(X=>{X=X||P(Q,ft,!1),X&&($.delta?i.go(-$.delta,!1):$.type===Ko.pop&&en(X,20)&&i.go(-1,!1)),D(Q,ft,X)}).catch(Mo)})}let O=Ga(),z=Ga(),N;function tt(k,G,$){K(k);const Q=z.list();return Q.length?Q.forEach(vt=>vt(k,G,$)):console.error(k),Promise.reject(k)}function V(){return N&&l.value!==tn?Promise.resolve():new Promise((k,G)=>{O.add([k,G])})}function K(k){return N||(N=!k,L(),O.list().forEach(([G,$])=>k?$(k):G()),O.reset()),k}function lt(k,G,$,Q){const{scrollBehavior:vt}=e;if(!ea||!vt)return Promise.resolve();const ft=!$&&pD(dg(k.fullPath,0))||(Q||!$)&&history.state&&history.state.scroll||null;return Bv().then(()=>vt(k,G,ft)).then(X=>X&&vD(X)).catch(X=>tt(X,k,G))}const yt=k=>i.go(k);let ut;const ht=new Set;return{currentRoute:l,addRoute:h,removeRoute:d,hasRoute:g,getRoutes:p,resolve:m,options:e,push:w,replace:S,go:yt,back:()=>yt(-1),forward:()=>yt(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:z.add,isReady:V,install(k){const G=this;k.component("RouterLink",ZD),k.component("RouterView",eP),k.config.globalProperties.$router=G,Object.defineProperty(k.config.globalProperties,"$route",{enumerable:!0,get:()=>wo(l)}),ea&&!ut&&l.value===tn&&(ut=!0,w(i.location).catch(vt=>{}));const $={};for(const vt in tn)$[vt]=Ee(()=>l.value[vt]);k.provide(Ou,G),k.provide(nd,Ai($)),k.provide(fh,l);const Q=k.unmount;ht.add(k),k.unmount=function(){ht.delete(k),ht.size<1&&(u=tn,A&&A(),l.value=tn,ut=!1,N=!1),Q()}}}}function Fi(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function rP(e,t){const r=[],n=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oxa(u,s))?n.push(s):r.push(s));const l=e.matched[o];l&&(t.matched.find(u=>xa(u,l))||i.push(l))}return[r,n,i]}function nH(){return Je(Ou)}function iH(){return Je(nd)}/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -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 vh=function(e,t){return vh=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])},vh(e,t)};function J(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");vh(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var nP=function(){function e(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return e}(),iP=function(){function e(){this.browser=new nP,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!="undefined"}return e}(),ui=new iP;typeof wx=="object"&&typeof wx.getSystemInfoSync=="function"?(ui.wxa=!0,ui.touchEventsSupported=!0):typeof document=="undefined"&&typeof self!="undefined"?ui.worker=!0:typeof navigator=="undefined"?(ui.node=!0,ui.svgSupported=!0):aP(navigator.userAgent,ui);function aP(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!="undefined",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!="undefined";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 wt=ui,ad=12,oP="sans-serif",bi=ad+"px "+oP,sP=20,lP=100,uP="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function fP(e){var t={};if(typeof JSON=="undefined")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 OP(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,v=f.left,h=f.top;o.push(v,h),l=l&&a&&v===a[c]&&h===a[c+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&i?i:(t.srcCoords=o,t[n]=r?Dg(s,o):Dg(o,s))}function $1(e){return e.nodeName.toUpperCase()==="CANVAS"}var kP=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Af=[],NP=wt.browser.firefox&&+wt.browser.version.split(".")[0]<39;function wh(e,t,r,n){return r=r||{},n?Ig(e,t,r):NP&&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):Ig(e,t,r),r}function Ig(e,t,r){if(wt.domSupported&&e.getBoundingClientRect){var n=t.clientX,i=t.clientY;if($1(e)){var a=e.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(_h(Af,e,n,i)){r.zrX=Af[0],r.zrY=Af[1];return}}r.zrX=r.zrY=0}function fd(e){return e||window.event}function Ue(e,t,r){if(t=fd(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&&wh(e,o,t,r)}else{wh(e,t,t,r);var a=BP(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&kP.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function BP(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 FP(e,t,r,n){e.addEventListener(t,r,n)}function zP(e,t,r,n){e.removeEventListener(t,r,n)}var V1=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0},HP=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=Eg(n)/Eg(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=$P(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}},G1="silent";function VP(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:GP}}function GP(){V1(this.event)}var UP=function(e){J(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}(Ir),Ua=function(){function e(t,r){this.x=t,this.y=r}return e}(),WP=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],U1=function(e){J(t,e);function t(r,n,i,a){var o=e.call(this)||this;return o._hovered=new Ua(0,0),o.storage=r,o.painter=n,o.painterRoot=a,i=i||new UP,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new PP(o),o}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(I(WP,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=W1(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 Ua(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 Ua(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=VP(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){for(var a=this.storage.getDisplayList(),o=new Ua(r,n),s=a.length-1;s>=0;s--){var l=void 0;if(a[s]!==i&&!a[s].ignore&&(l=YP(a[s],r,n))&&(!o.topTarget&&(o.topTarget=a[s]),l!==G1)){o.target=a[s];break}}return o},t.prototype.processGesture=function(r,n){this._gestureMgr||(this._gestureMgr=new HP);var i=this._gestureMgr;n==="start"&&i.clear();var a=i.recognize(r,this.findHover(r.zrX,r.zrY,null).target,this.proxy.dom);if(n==="end"&&i.clear(),a){var o=a.type;r.gestureEvent=o;var s=new Ua;s.target=a.target,this.dispatchToElement(s,o,a.event)}},t}(Ir);I(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(e){U1.prototype[e]=function(t){var r=t.zrX,n=t.zrY,i=W1(this,r,n),a,o;if((e!=="mouseup"||!i)&&(a=this.findHover(r,n),o=a.target),e==="mousedown")this._downEl=o,this._downPoint=[t.zrX,t.zrY],this._upEl=o;else if(e==="mouseup")this._upEl=o;else if(e==="click"){if(this._downEl!==this._upEl||!this._downPoint||mh(this._downPoint,[t.zrX,t.zrY])>4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function YP(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?G1:!0}return!1}function W1(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}var qP=U1,Y1=32,Wa=7;function XP(e){for(var t=0;e>=Y1;)t|=e&1,e>>=1;return e+t}function Lg(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 jP(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 Pf(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 If(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 KP(e,t){var r=Wa,n,i,a=0,o=[];n=[],i=[];function s(h,d){n[a]=h,i[a]=d,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]=Wa||x>=Wa);if(T)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),d===1){for(m=0;m=0;m--)e[b+m]=e[S+m];e[w]=o[_];return}for(var x=r;;){var T=0,C=0,D=!1;do if(t(o[_],e[y])<0){if(e[w--]=e[y--],T++,C=0,--d===0){D=!0;break}}else if(e[w--]=o[_--],C++,T=0,--g===1){D=!0;break}while((T|C)=0;m--)e[b+m]=e[S+m];if(d===0){D=!0;break}}if(e[w--]=o[_--],--g===1){D=!0;break}if(C=g-Pf(e[y],o,0,g,g-1,t),C!==0){for(w-=C,_-=C,g-=C,b=w+1,S=_+1,m=0;m=Wa||C>=Wa);if(D)break;x<0&&(x=0),x+=2}if(r=x,r<1&&(r=1),g===1){for(w-=d,y-=d,b=w+1,S=y+1,m=d-1;m>=0;m--)e[b+m]=e[S+m];e[w]=o[_]}else{if(g===0)throw new Error;for(S=w-(g-1),m=0;ms&&(l=s),Rg(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 Le=1,ho=2,ra=4,Og=!1;function Ef(){Og||(Og=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function kg(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var ZP=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=kg}return e.prototype.traverse=function(t,r){for(var n=0;n0&&(f.__clipPaths=[]),isNaN(f.z)&&(Ef(),f.z=0),isNaN(f.z2)&&(Ef(),f.z2=0),isNaN(f.zlevel)&&(Ef(),f.zlevel=0),this._displayList[this._displayListLen++]=f}var c=t.getDecalElement&&t.getDecalElement();c&&this._updateAndAddDisplayable(c,r,n);var v=t.getTextGuideLine();v&&this._updateAndAddDisplayable(v,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}(),QP=ZP,q1;q1=wt.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};var bh=q1,Tl={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-Tl.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?Tl.bounceIn(e*2)*.5:Tl.bounceOut(e*2-1)*.5+.5}},X1=Tl,Ls=Math.pow,Cn=Math.sqrt,Xl=1e-8,j1=1e-4,Ng=Cn(3),Rs=1/3,br=Na(),qe=Na(),da=Na();function gn(e){return e>-Xl&&eXl||e<-Xl}function Kt(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 Bg(e,t,r,n,i){var a=1-i;return 3*(((t-e)*a+2*(r-t)*i)*a+(n-r)*i*i)}function jl(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,v=l*l-3*s*u,h=0;if(gn(f)&&gn(c))if(gn(s))a[0]=0;else{var d=-l/s;d>=0&&d<=1&&(a[h++]=d)}else{var p=c*c-4*f*v;if(gn(p)){var g=c/f,d=-s/o+g,m=-g/2;d>=0&&d<=1&&(a[h++]=d),m>=0&&m<=1&&(a[h++]=m)}else if(p>0){var y=Cn(p),_=f*s+1.5*o*(-c+y),w=f*s+1.5*o*(-c-y);_<0?_=-Ls(-_,Rs):_=Ls(_,Rs),w<0?w=-Ls(-w,Rs):w=Ls(w,Rs);var d=(-s-(_+w))/(3*o);d>=0&&d<=1&&(a[h++]=d)}else{var S=(2*f*s-3*o*c)/(2*Cn(f*f*f)),b=Math.acos(S)/3,x=Cn(f),T=Math.cos(b),d=(-s-2*x*T)/(3*o),m=(-s+x*(T+Ng*Math.sin(b)))/(3*o),C=(-s+x*(T-Ng*Math.sin(b)))/(3*o);d>=0&&d<=1&&(a[h++]=d),m>=0&&m<=1&&(a[h++]=m),C>=0&&C<=1&&(a[h++]=C)}}return h}function Z1(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(gn(o)){if(K1(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(gn(f))i[0]=-a/(2*o);else if(f>0){var c=Cn(f),u=(-a+c)/(2*o),v=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),v>=0&&v<=1&&(i[l++]=v)}}return l}function Kl(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 JP(e,t,r,n,i,a,o,s,l,u,f){var c,v=.005,h=1/0,d,p,g,m;br[0]=l,br[1]=u;for(var y=0;y<1;y+=.05)qe[0]=Kt(e,r,i,o,y),qe[1]=Kt(t,n,a,s,y),g=va(br,qe),g=0&&g=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(gn(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=Cn(f),u=(-o+c)/(2*a),v=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),v>=0&&v<=1&&(i[l++]=v)}}return l}function Q1(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function Zl(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 rI(e,t,r,n,i,a,o,s,l){var u,f=.005,c=1/0;br[0]=o,br[1]=s;for(var v=0;v<1;v+=.05){qe[0]=le(e,r,i,v),qe[1]=le(t,n,a,v);var h=va(br,qe);h=0&&h=1?1:jl(0,n,a,1,l,s)&&Kt(0,i,o,1,s[0])}}}var aI=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||Ce,this.ondestroy=t.ondestroy||Ce,this.onrestart=t.onrestart||Ce,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=mt(t)?t:X1[t]||J1(t)},e}(),oI=aI,tw=function(){function e(t){this.value=t}return e}(),sI=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new tw(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}(),lI=function(){function e(t){this._list=new sI,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 tw(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}(),gs=lI,zg={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 Mn(e){return e=Math.round(e),e<0?0:e>255?255:e}function Sh(e){return e<0?0:e>1?1:e}function Lf(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Mn(parseFloat(t)/100*255):Mn(parseInt(t,10))}function Ql(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Sh(parseFloat(t)/100):Sh(parseFloat(t))}function Rf(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 Os(e,t,r){return e+(t-e)*r}function Ge(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function xh(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var ew=new gs(20),ks=null;function Hi(e,t){ks&&xh(ks,t),ks=ew.put(e,ks||t.slice())}function $r(e,t){if(!!e){t=t||[];var r=ew.get(e);if(r)return xh(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in zg)return xh(t,zg[n]),Hi(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)){Ge(t,0,0,0,1);return}return Ge(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),Hi(e,t),t}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Ge(t,0,0,0,1);return}return Ge(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),Hi(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?Ge(t,+u[0],+u[1],+u[2],1):Ge(t,0,0,0,1);f=Ql(u.pop());case"rgb":if(u.length!==3){Ge(t,0,0,0,1);return}return Ge(t,Lf(u[0]),Lf(u[1]),Lf(u[2]),f),Hi(e,t),t;case"hsla":if(u.length!==4){Ge(t,0,0,0,1);return}return u[3]=Ql(u[3]),Hg(u,t),Hi(e,t),t;case"hsl":if(u.length!==3){Ge(t,0,0,0,1);return}return Hg(u,t),Hi(e,t),t;default:return}}Ge(t,0,0,0,1)}}function Hg(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=Ql(e[1]),i=Ql(e[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return t=t||[],Ge(t,Mn(Rf(o,a,r+1/3)*255),Mn(Rf(o,a,r)*255),Mn(Rf(o,a,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function $g(e,t){var r=$r(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 zu(r,r.length===4?"rgba":"rgb")}}function uI(e,t,r){if(!(!(t&&t.length)||!(e>=0&&e<=1))){var n=e*(t.length-1),i=Math.floor(n),a=Math.ceil(n),o=$r(t[i]),s=$r(t[a]),l=n-i,u=zu([Mn(Os(o[0],s[0],l)),Mn(Os(o[1],s[1],l)),Mn(Os(o[2],s[2],l)),Sh(Os(o[3],s[3],l))],"rgba");return r?{color:u,leftIndex:i,rightIndex:a,value:n}:u}}function zu(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 Jl(e,t){var r=$r(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function fI(e){return e.type==="linear"}function cI(e){return e.type==="radial"}(function(){return wt.hasGlobalWindow&&mt(window.btoa)?function(e){return window.btoa(unescape(e))}:typeof Buffer!="undefined"?function(e){return Buffer.from(e).toString("base64")}:function(e){return null}})();var Th=Array.prototype.slice;function Nr(e,t,r){return(t-e)*r+e}function Of(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=Gg,l=r;if(Me(r)){var u=pI(r);s=u,(u===1&&!zt(r[0])||u===2&&!zt(r[0][0]))&&(o=!0)}else if(zt(r)&&!ql(r))s=Bs;else if(it(r))if(!isNaN(+r))s=Bs;else{var f=$r(r);f&&(l=f,s=vo)}else if(Bu(r)){var c=Y({},l);c.colorStops=ct(r.colorStops,function(h){return{offset:h.offset,color:$r(h.color)}}),fI(r)?s=Ch:cI(r)&&(s=Mh),l=c}a===0?this.valType=s:(s!==this.valType||s===Gg)&&(o=!0),this.discrete=this.discrete||o;var v={time:t,value:l,rawValue:r,percent:0};return n&&(v.easing=n,v.easingFunc=mt(n)?n:X1[n]||J1(n)),i.push(v),v},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=Fs(i),u=Ug(i),f=0;f=0&&!(o[f].percent<=r);f--);f=v(f,s-2)}else{for(f=c;fr);f++);f=v(f-1,s-2)}d=o[f+1],h=o[f]}if(!!(h&&d)){this._lastFr=f,this._lastFrP=r;var g=d.percent-h.percent,m=g===0?1:v((r-h.percent)/g,1);d.easingFunc&&(m=d.easingFunc(m));var y=n?this._additiveValue:u?Ya:t[l];if((Fs(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)t[l]=m<1?h.rawValue:d.rawValue;else if(Fs(a))a===Al?Of(y,h[i],d[i],m):hI(y,h[i],d[i],m);else if(Ug(a)){var _=h[i],w=d[i],S=a===Ch;t[l]={type:S?"linear":"radial",x:Nr(_.x,w.x,m),y:Nr(_.y,w.y,m),colorStops:ct(_.colorStops,function(x,T){var C=w.colorStops[T];return{offset:Nr(x.offset,C.offset,m),color:Ml(Of([],x.color,C.color,m))}}),global:w.global},S?(t[l].x2=Nr(_.x2,w.x2,m),t[l].y2=Nr(_.y2,w.y2,m)):t[l].r=Nr(_.r,w.r,m)}else if(u)Of(y,h[i],d[i],m),n||(t[l]=Ml(y));else{var b=Nr(h[i],d[i],m);n?this._additiveValue=b:t[l]=b}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,i=this._additiveValue;r===Bs?t[n]=t[n]+i:r===vo?($r(t[n],Ya),Ns(Ya,Ya,i,1),t[n]=Ml(Ya)):r===Al?Ns(t[n],t[n],i,1):r===rw&&Vg(t[n],t[n],i,1)},e}(),mI=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){ld("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,Gt(r),n)},e.prototype.whenWithKeys=function(t,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,Cl(u),i),this._trackKeys.push(s)}l.addKeyframe(t,Cl(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}(),cd=mI;function oa(){return new Date().getTime()}var yI=function(e){J(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=oa()-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&&(bh(n),!r._paused&&r.update())}bh(n)},t.prototype.start=function(){this._running||(this._time=oa(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=oa(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=oa()-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 cd(r,n.loop);return this.addAnimator(i),i},t}(Ir),_I=yI,wI=300,kf=wt.domSupported,Nf=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=ct(e,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:e,touch:t,pointer:n}}(),Wg={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},Yg=!1;function Ah(e){var t=e.pointerType;return t==="pen"||t==="touch"}function bI(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 Bf(e){e&&(e.zrByTouch=!0)}function SI(e,t){return Ue(e.dom,new xI(e,t),!0)}function nw(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 xI=function(){function e(t,r){this.stopPropagation=Ce,this.stopImmediatePropagation=Ce,this.preventDefault=Ce,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),or={mousedown:function(e){e=Ue(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Ue(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=Ue(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Ue(this.dom,e);var t=e.toElement||e.relatedTarget;nw(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){Yg=!0,e=Ue(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){Yg||(e=Ue(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Ue(this.dom,e),Bf(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),or.mousemove.call(this,e),or.mousedown.call(this,e)},touchmove:function(e){e=Ue(this.dom,e),Bf(e),this.handler.processGesture(e,"change"),or.mousemove.call(this,e)},touchend:function(e){e=Ue(this.dom,e),Bf(e),this.handler.processGesture(e,"end"),or.mouseup.call(this,e),+new Date-+this.__lastTouchMomentjg||e<-jg}var Hn=[],$i=[],zf=Qo(),Hf=Math.abs,pd=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 zn(this.rotation)||zn(this.x)||zn(this.y)||zn(this.scaleX-1)||zn(this.scaleY-1)||zn(this.skewX)||zn(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&Xg(n);return}n=n||Qo(),r?this.getLocalTransform(n):Xg(n),t&&(r?pa(n,t,n):PI(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(Hn);var n=Hn[0]<0?-1:1,i=Hn[1]<0?-1:1,a=((Hn[0]-n)*r+n)/Hn[0]||0,o=((Hn[1]-i)*r+i)/Hn[1]||0;t[0]*=a,t[1]*=a,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||Qo(),dd(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&&(pa($i,t.invTransform,r),r=$i);var n=this.originX,i=this.originY;(n||i)&&(zf[4]=n,zf[5]=i,pa($i,r,zf),$i[4]-=n,$i[5]-=i,r=$i),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&&tr(n,n,i),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],i=this.transform;return i&&tr(n,n,i),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&Hf(t[0]-1)>1e-10&&Hf(t[3]-1)>1e-10?Math.sqrt(Hf(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){EI(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,v=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||i||s||l){var d=n+s,p=i+l;r[4]=-d*a-v*p*o,r[5]=-p*o-h*d*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=v*o,u&&vd(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}(),Jo=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function EI(e,t){for(var r=0;rd&&(d=_,pd&&(d=w,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}$n.x=Gn.x=r.x,$n.y=Un.y=r.y,Vn.x=Un.x=r.x+r.width,Vn.y=Gn.y=r.y+r.height,$n.transform(n),Un.transform(n),Vn.transform(n),Gn.transform(n),t.x=zs($n.x,Vn.x,Gn.x,Un.x),t.y=zs($n.y,Vn.y,Gn.y,Un.y);var l=Hs($n.x,Vn.x,Gn.x,Un.x),u=Hs($n.y,Vn.y,Gn.y,Un.y);t.width=l-t.x,t.height=u-t.y},e}(),Ot=RI,Kg={};function Oe(e,t){t=t||bi;var r=Kg[t];r||(r=Kg[t]=new gs(500));var n=r.get(e);return n==null&&(n=Pi.measureText(e,t).width,r.put(e,n)),n}function Zg(e,t,r,n){var i=Oe(e,t),a=md(t),o=po(0,i,r),s=na(0,a,n),l=new Ot(o,s,i,a);return l}function gd(e,t,r,n){var i=((e||"")+"").split(` -`),a=i.length;if(a===1)return Zg(i[0],t,r,n);for(var o=new Ot(0,0,0,0),s=0;s=0?parseFloat(e)/100*t:parseFloat(e):e}function aw(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+=Rn(n[0],r.width),u+=Rn(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 $f="__zr_normal__",Vf=Jo.concat(["ignore"]),OI=Ln(Jo,function(e,t){return e[t]=!0,e},{ignore:!1}),Vi={},kI=new Ot(0,0,0,0),yd=function(){function e(t){this.id=B1(),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=kI;n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),i||f.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Vi,n,f):aw(Vi,n,f),a.x=Vi.x,a.y=Vi.y,o=Vi.align,s=Vi.verticalAlign;var c=n.origin;if(c&&n.rotation!=null){var v=void 0,h=void 0;c==="center"?(v=f.width*.5,h=f.height*.5):(v=Rn(c[0],f.width),h=Rn(c[1],f.height)),u=!0,a.originX=-a.x+v+(i?0:f.x),a.originY=-a.y+h+(i?0:f.y)}}n.rotation!=null&&(a.rotation=n.rotation);var d=n.offset;d&&(a.x+=d[0],a.y+=d[1],u||(a.originX=-d[0],a.originY=-d[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|=Le,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()?Eh:Ih},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&$r(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,zu(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||{},Y(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(st(t))for(var n=t,i=Gt(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($f,!1,t)},e.prototype.useState=function(t,r,n,i){var a=t===$f,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){ld("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,v=this._textGuide;return c&&c.useState(t,r,n,f),v&&v.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&=~Le),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,d);var p=this._textContent,g=this._textGuide;p&&p.useStates(t,r,v),g&&g.useStates(t,r,v),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!v&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~Le)}},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(d,p){r.during(p)});for(var v=0;v0||i.force&&!o.length){var T=void 0,C=void 0,D=void 0;if(s){C={},v&&(T={});for(var w=0;w<_;w++){var m=p[w];C[m]=r[m],v?T[m]=n[m]:r[m]=n[m]}}else if(v){D={};for(var w=0;w<_;w++){var m=p[w];D[m]=Cl(r[m]),BI(r,n,m)}}var S=new cd(r,!1,!1,c?Se(d,function(A){return A.targetName===t}):null);S.targetName=t,i.scope&&(S.scope=i.scope),v&&T&&S.whenWithKeys(0,T,p),D&&S.whenWithKeys(0,D,p),S.whenWithKeys(u==null?500:u,s?C:n,p).delay(f||0),e.addAnimator(S,t),o.push(S)}}var sw=yd,lw=function(e){J(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 Vt(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 it(e)?UI(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function jt(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),fw),e=(+e).toFixed(t),r?e:+e}function zr(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 WI(e)}function WI(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 YI(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 qI(e,t,r){if(!e[t])return 0;var n=Ln(e,function(d,p){return d+(isNaN(p)?0:p)},0);if(n===0)return 0;for(var i=Math.pow(10,r),a=ct(e,function(d){return(isNaN(d)?0:d)/n*i*100}),o=i*100,s=ct(a,function(d){return Math.floor(d)}),l=Ln(s,function(d,p){return d+p},0),u=ct(a,function(d,p){return d-s[p]});lf&&(f=u[v],c=v);++s[c],u[c]=0,++l}return s[t]/i}function XI(e,t){var r=Math.max(zr(e),zr(t)),n=e+t;return r>fw?n:jt(n,r)}function cw(e){var t=Math.PI*2;return(e%t+t)%t}function eu(e){return e>-Jg&&e=10&&t++,t}function hw(e,t){var r=_d(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 ru(e){var t=parseFloat(e);return t==e&&(t!==0||!it(e)||e.indexOf("x")<=0)?t:NaN}function ZI(e){return!isNaN(ru(e))}function vw(){return Math.round(Math.random()*9)}function dw(e,t){return t===0?e:dw(t,e%t)}function tm(e,t){return e==null?t:t==null?e:e*t/dw(e,t)}function xe(e){throw new Error(e)}function em(e,t,r){return(t-e)*r+e}var pw="series\0",QI="\0_ec_\0";function me(e){return e instanceof Array?e:e==null?[]:[e]}function Oh(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 bE=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],SE=es(bE),xE=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return SE(this,t,r)},e}(),kh=new gs(50);function TE(e){if(typeof e=="string"){var t=kh.get(e);return t&&t.image}else return e}function ww(e,t,r,n,i){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var a=kh.get(e),o={hostEl:r,cb:n,cbPayload:i};if(a)t=a.image,!$u(t)&&a.pending.push(o);else{var s=Pi.loadImage(e,nm,nm);s.__zrImageSrc=e,kh.put(e,s.__cachedImgObj={image:s,pending:[o]})}return t}else return e;else return t}function nm(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=o;l++)s-=o;var u=Oe(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 Sw(e,t){var r=t.containerWidth,n=t.font,i=t.contentWidth;if(!r)return"";var a=Oe(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?ME(e,i,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*i/a):0;e=e.substr(0,s),a=Oe(e,n)}return e===""&&(e=t.placeholder),e}function ME(e,t,r,n){for(var i=0,a=0,o=e.length;ah&&u){var d=Math.floor(h/s);c=c.slice(0,d)}if(e&&a&&f!=null)for(var p=bw(f,i,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),g=0;gs&&qf(r,e.substring(s,u),t,o),qf(r,l[2],t,o,l[1]),s=Yf.lastIndex}si){S>0?(y.tokens=y.tokens.slice(0,S),g(y,w,_),r.lines=r.lines.slice(0,m+1)):r.lines=r.lines.slice(0,m);break t}var A=x.width,L=A==null||A==="auto";if(typeof A=="string"&&A.charAt(A.length-1)==="%")b.percentWidth=A,f.push(b),b.contentWidth=Oe(b.text,D);else{if(L){var O=x.backgroundColor,z=O&&O.image;z&&(z=TE(z),$u(z)&&(b.width=Math.max(b.width,z.width*P/z.height)))}var N=d&&n!=null?n-w:null;N!=null&&N0&&d+n.accumWidth>n.width&&(f=t.split(` -`),u=!0),n.accumWidth=d}else{var p=xw(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 LE=Ln(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function RE(e){return EE(e)?!!LE[e]:!0}function xw(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)&&(d?(s||(s=l,l="",u=0,f=u),a.push(s),o.push(f-u),l+=v,u+=h,s="",f=u):(l&&(s+=l,l="",u=0),a.push(s),o.push(f),s=v,f=h)):d?(a.push(l),o.push(u),l=v,u=h):(a.push(v),o.push(h));continue}f+=h,d?(l+=v,u+=h):(l&&(s+=l,l="",u=0),s+=v)}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 Nh="__zr_style_"+Math.round(Math.random()*10),gi={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},Vu={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};gi[Nh]=!0;var am=["z","z2","invisible"],OE=["invisible"],kE=function(e){J(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Gt(r),i=0;i1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if($s[0]=Zf(i)*r+e,$s[1]=Kf(i)*n+t,Vs[0]=Zf(a)*r+e,Vs[1]=Kf(a)*n+t,u(s,$s,Vs),f(l,$s,Vs),i=i%Yn,i<0&&(i=i+Yn),a=a%Yn,a<0&&(a=a+Yn),i>a&&!o?a+=Yn:ii&&(Gs[0]=Zf(h)*r+e,Gs[1]=Kf(h)*n+t,u(s,Gs,s),f(l,Gs,l))}var At={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},qn=[],Xn=[],gr=[],rn=[],mr=[],yr=[],Qf=Math.min,Jf=Math.max,jn=Math.cos,Kn=Math.sin,Lr=Math.abs,Bh=Math.PI,hn=Bh*2,tc=typeof Float32Array!="undefined",ja=[];function ec(e){var t=Math.round(e/Bh*1e8)/1e8;return t%2*Bh}function HE(e,t){var r=ec(e[0]);r<0&&(r+=hn);var n=r-e[0],i=e[1];i+=n,!t&&i-r>=hn?i=r+hn:t&&r-i>=hn?i=r-hn:!t&&r>i?i=r+(hn-ec(r-i)):t&&r0&&(this._ux=Lr(n/tu/t)||0,this._uy=Lr(n/tu/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=Lr(t-this._xi),i=Lr(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(),ja[0]=i,ja[1]=a,HE(ja,o),i=ja[0],a=ja[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=jn(a)*n+t,this._yi=Kn(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)&&tc&&(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(){gr[0]=gr[1]=mr[0]=mr[1]=Number.MAX_VALUE,rn[0]=rn[1]=yr[0]=yr[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||Lr(_)>i||v===r-1)&&(p=Math.sqrt(y*y+_*_),a=g,o=m);break}case At.C:{var w=t[v++],S=t[v++],g=t[v++],m=t[v++],b=t[v++],x=t[v++];p=tI(a,o,w,S,g,m,b,x,10),a=b,o=x;break}case At.Q:{var w=t[v++],S=t[v++],g=t[v++],m=t[v++];p=nI(a,o,w,S,g,m,10),a=g,o=m;break}case At.A:var T=t[v++],C=t[v++],D=t[v++],P=t[v++],A=t[v++],L=t[v++],O=L+A;v+=1,t[v++],d&&(s=jn(A)*D+T,l=Kn(A)*P+C),p=Jf(D,P)*Qf(hn,Math.abs(L)),a=jn(O)*D+T,o=Kn(O)*P+C;break;case At.R:{s=a=t[v++],l=o=t[v++];var z=t[v++],N=t[v++];p=z*2+N*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,v,h=r<1,d,p,g=0,m=0,y,_=0,w,S;if(h&&(this._pathSegLen||this._calculateLength(),d=this._pathSegLen,p=this._pathLen,y=r*p,!y))return;t:for(var b=0;b0&&(t.lineTo(w,S),_=0),x){case At.M:s=u=n[b++],l=f=n[b++],t.moveTo(u,f);break;case At.L:{c=n[b++],v=n[b++];var C=Lr(c-u),D=Lr(v-f);if(C>i||D>a){if(h){var P=d[m++];if(g+P>y){var A=(y-g)/P;t.lineTo(u*(1-A)+c*A,f*(1-A)+v*A);break t}g+=P}t.lineTo(c,v),u=c,f=v,_=0}else{var L=C*C+D*D;L>_&&(w=c,S=v,_=L)}break}case At.C:{var O=n[b++],z=n[b++],N=n[b++],tt=n[b++],V=n[b++],K=n[b++];if(h){var P=d[m++];if(g+P>y){var A=(y-g)/P;Kl(u,O,N,V,A,qn),Kl(f,z,tt,K,A,Xn),t.bezierCurveTo(qn[1],Xn[1],qn[2],Xn[2],qn[3],Xn[3]);break t}g+=P}t.bezierCurveTo(O,z,N,tt,V,K),u=V,f=K;break}case At.Q:{var O=n[b++],z=n[b++],N=n[b++],tt=n[b++];if(h){var P=d[m++];if(g+P>y){var A=(y-g)/P;Zl(u,O,N,A,qn),Zl(f,z,tt,A,Xn),t.quadraticCurveTo(qn[1],Xn[1],qn[2],Xn[2]);break t}g+=P}t.quadraticCurveTo(O,z,N,tt),u=N,f=tt;break}case At.A:var lt=n[b++],yt=n[b++],ut=n[b++],ht=n[b++],bt=n[b++],k=n[b++],G=n[b++],$=!n[b++],Q=ut>ht?ut:ht,vt=Lr(ut-ht)>.001,ft=bt+k,X=!1;if(h){var P=d[m++];g+P>y&&(ft=bt+k*(y-g)/P,X=!0),g+=P}if(vt&&t.ellipse?t.ellipse(lt,yt,ut,ht,G,bt,ft,$):t.arc(lt,yt,Q,bt,ft,$),X)break t;T&&(s=jn(bt)*ut+lt,l=Kn(bt)*ht+yt),u=jn(ft)*ut+lt,f=Kn(ft)*ht+yt;break;case At.R:s=u=n[b],l=f=n[b+1],c=n[b++],v=n[b++];var j=n[b++],M=n[b++];if(h){var P=d[m++];if(g+P>y){var E=y-g;t.moveTo(c,v),t.lineTo(c+Qf(E,j),v),E-=j,E>0&&t.lineTo(c+j,v+Qf(E,M)),E-=M,E>0&&t.lineTo(c+Jf(j-E,0),v+M),E-=j,E>0&&t.lineTo(c,v+Jf(M-E,0));break t}g+=P}t.rect(c,v,j,M);break;case At.Z:if(h){var P=d[m++];if(g+P>y){var A=(y-g)/P;t.lineTo(u*(1-A)+s*A,f*(1-A)+l*A);break t}g+=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}(),On=$E;function Gi(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+=Ka);var v=Math.atan2(l,s);return v<0&&(v+=Ka),v>=n&&v<=i||v+Ka>=n&&v+Ka<=i}function Zn(e,t,r,n,i,a){if(a>t&&a>n||ai?s:0}var nn=On.CMD,Qn=Math.PI*2,WE=1e-4;function YE(e,t){return Math.abs(e-t)t&&u>n&&u>a&&u>s||u1&&qE(),h=Kt(t,n,a,s,Ye[0]),v>1&&(d=Kt(t,n,a,s,Ye[1]))),v===2?gt&&s>n&&s>a||s=0&&u<=1){for(var f=0,c=le(t,n,a,u),v=0;vr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);pe[0]=-l,pe[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=Qn-1e-4){n=0,i=Qn;var f=a?1:-1;return o>=pe[0]+e&&o<=pe[1]+e?f:0}if(n>i){var c=n;n=i,i=c}n<0&&(n+=Qn,i+=Qn);for(var v=0,h=0;h<2;h++){var d=pe[h];if(d+e>o){var p=Math.atan2(s,d),f=a?1:-1;p<0&&(p=Qn+p),(p>=n&&p<=i||p+Qn>=n&&p+Qn<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Zn(l,u,f,c,n,i))),g&&(l=a[d],u=a[d+1],f=l,c=u),p){case nn.M:f=a[d++],c=a[d++],l=f,u=c;break;case nn.L:if(r){if(Gi(l,u,a[d],a[d+1],t,n,i))return!0}else s+=Zn(l,u,a[d],a[d+1],n,i)||0;l=a[d++],u=a[d++];break;case nn.C:if(r){if(VE(l,u,a[d++],a[d++],a[d++],a[d++],a[d],a[d+1],t,n,i))return!0}else s+=XE(l,u,a[d++],a[d++],a[d++],a[d++],a[d],a[d+1],n,i)||0;l=a[d++],u=a[d++];break;case nn.Q:if(r){if(GE(l,u,a[d++],a[d++],a[d],a[d+1],t,n,i))return!0}else s+=jE(l,u,a[d++],a[d++],a[d],a[d+1],n,i)||0;l=a[d++],u=a[d++];break;case nn.A:var m=a[d++],y=a[d++],_=a[d++],w=a[d++],S=a[d++],b=a[d++];d+=1;var x=!!(1-a[d++]);v=Math.cos(S)*_+m,h=Math.sin(S)*w+y,g?(f=v,c=h):s+=Zn(l,u,v,h,n,i);var T=(n-m)*w/_+m;if(r){if(UE(m,y,w,S,S+b,x,t,T,i))return!0}else s+=KE(m,y,w,S,S+b,x,T,i);l=Math.cos(S+b)*_+m,u=Math.sin(S+b)*w+y;break;case nn.R:f=l=a[d++],c=u=a[d++];var C=a[d++],D=a[d++];if(v=f+C,h=c+D,r){if(Gi(f,c,v,c,t,n,i)||Gi(v,c,v,h,t,n,i)||Gi(v,h,f,h,t,n,i)||Gi(f,h,f,c,t,n,i))return!0}else s+=Zn(v,c,v,h,n,i),s+=Zn(f,h,f,c,n,i);break;case nn.Z:if(r){if(Gi(l,u,f,c,t,n,i))return!0}else s+=Zn(l,u,f,c,n,i);l=f,u=c;break}}return!r&&!YE(u,c)&&(s+=Zn(l,u,f,c,n,i)||0),s!==0}function ZE(e,t,r){return Tw(e,0,!1,t,r)}function QE(e,t,r,n){return Tw(e,t,!0,r,n)}var Cw=Pt({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},gi),JE={style:Pt({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},Vu.style)},rc=Jo.concat(["invisible","culling","z","z2","zlevel","parent"]),tL=function(e){J(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?Ih:n>.2?DI:Eh}else if(r)return Eh}return Ih},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(it(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=Jl(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&ra)&&(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==null?4:f)}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)),QE(s,l/u,r,n)))return!0}if(this.hasFill())return ZE(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=ra,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:Y(i,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&ra)},t.prototype.createStyle=function(r){return Fu(Cw,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=Y({},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=Y({},i.shape),Y(u,n.shape)):(u=Y({},a?this.shape:i.shape),Y(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=Y({},this.shape);for(var f={},c=Gt(u),v=0;v0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.createStyle=function(r){return Fu(eL,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=gd(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}(_s);Mw.prototype.type="tspan";var Fh=Mw,rL=Pt({x:0,y:0},gi),nL={style:Pt({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},Vu.style)};function iL(e){return!!(e&&typeof e!="string"&&e.width&&e.height)}var Aw=function(e){J(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return Fu(rL,r)},t.prototype._getSize=function(r){var n=this.style,i=n[r];if(i!=null)return i;var a=iL(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 nL},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new Ot(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(_s);Aw.prototype.type="image";var Ii=Aw;function aL(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 sa=Math.round;function Dw(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&&(sa(n*2)===sa(i*2)&&(e.x1=e.x2=vi(n,s,!0)),sa(a*2)===sa(o*2)&&(e.y1=e.y2=vi(a,s,!0))),e}}function Pw(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=vi(n,s,!0),e.y=vi(i,s,!0),e.width=Math.max(vi(n+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(vi(i+o,s,!1)-e.y,o===0?0:1)),e}}function vi(e,t,r){if(!t)return e;var n=sa(e*2);return(n+sa(t))%2===0?n/2:(n+(r?1:-1))/2}var oL=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),sL={},Iw=function(e){J(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new oL},t.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=Pw(sL,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?aL(r,n):r.rect(i,a,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(kt);Iw.prototype.type="rect";var ne=Iw,fm={fill:"#000"},cm=2,lL={style:Pt({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},Vu.style)},Ew=function(e){J(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=fm,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,A=r.width!=null&&(r.overflow==="truncate"||r.overflow==="break"||r.overflow==="breakAll"),L=o.calculatedLineHeight,O=0;O=0&&(O=b[L],O.align==="right");)this._placeToken(O,r,T,m,A,"right",_),C-=O.width,A-=O.width,L--;for(P+=(a-(P-g)-(y-A)-C)/2;D<=L;)O=b[D],this._placeToken(O,r,T,m,P+O.width/2,"center",_),P+=O.width,D++;m+=T}},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 v=!r.isLineHolder&&nc(u);v&&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,d=r.textPadding;d&&(o=mm(o,s,d),c-=r.height/2-d[0]-r.innerHeight/2);var p=this._getOrCreateChild(Fh),g=p.createStyle();p.useStyle(g);var m=this._defaultStyle,y=!1,_=0,w=gm("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,m.fill)),S=pm("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!m.autoStroke||y)?(_=cm,m.stroke):null),b=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=c,b&&(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||bi,g.opacity=Do(u.opacity,n.opacity,1),vm(g,u),S&&(g.lineWidth=Do(u.lineWidth,n.lineWidth,_),g.lineDash=Mt(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=S),w&&(g.fill=w);var x=r.contentWidth,T=r.contentHeight;p.setBoundingRect(new Ot(po(g.x,x,g.textAlign),na(g.y,T,g.textBaseline),x,T))},t.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,f=r.borderColor,c=l&&l.image,v=l&&!c,h=r.borderRadius,d=this,p,g;if(v||r.lineHeight||u&&f){p=this._getOrCreateChild(ne),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(v){var y=p.style;y.fill=l||null,y.fillOpacity=Mt(r.fillOpacity,1)}else if(c){g=this._getOrCreateChild(Ii),g.onload=function(){d.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=Mt(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 w=(p||g).style;w.shadowBlur=r.shadowBlur||0,w.shadowColor=r.shadowColor||"transparent",w.shadowOffsetX=r.shadowOffsetX||0,w.shadowOffsetY=r.shadowOffsetY||0,w.opacity=Do(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return hL(r)&&(n=[r.fontStyle,r.fontWeight,cL(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&Tr(n)||r.textFont||r.font},t}(_s),uL={left:!0,right:1,center:1},fL={top:1,bottom:1,middle:1},hm=["fontStyle","fontWeight","fontSize","fontFamily"];function cL(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?ad+"px":e+"px"}function vm(e,t){for(var r=0;r=0,a=!1;if(e instanceof kt){var o=Lw(e),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(Ui(s)||Ui(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=Y({},n),u=Y({},u),u.fill=s):!Ui(u.fill)&&Ui(s)?(a=!0,n=Y({},n),u=Y({},u),u.fill=Sm(s)):!Ui(u.stroke)&&Ui(l)&&(a||(n=Y({},n),u=Y({},u)),u.stroke=Sm(l)),n.style=u}}if(n&&n.z2==null){a||(n=Y({},n));var f=e.z2EmphasisLift;n.z2=e.z2+(f!=null?f:pL)}return n}function bL(e,t,r){if(r&&r.z2==null){r=Y({},r);var n=e.z2SelectLift;r.z2=e.z2+(n!=null?n:gL)}return r}function SL(e,t,r){var n=It(e.currentStates,t)>=0,i=e.style.opacity,a=n?null:_L(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=Y({},r),o=Y({opacity:n?i:a.opacity*.1},o),r.style=o),r}function ic(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return wL(this,e,t,r);if(e==="blur")return SL(this,e,r);if(e==="select")return bL(this,e,r)}return r}function xL(e){e.stateProxy=ic;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=ic),r&&(r.stateProxy=ic)}function Cm(e,t){!zw(e,t)&&!e.__highByOuter&&jr(e,Rw)}function Mm(e,t){!zw(e,t)&&!e.__highByOuter&&jr(e,Ow)}function iu(e,t){e.__highByOuter|=1<<(t||0),jr(e,Rw)}function au(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&jr(e,Ow)}function TL(e){jr(e,Cd)}function Nw(e){jr(e,kw)}function Bw(e){jr(e,mL)}function Fw(e){jr(e,yL)}function zw(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function Hw(e){var t=e.getModel();t.eachComponent(function(r,n){var i=xd(n);if(i.isBlured){var a=r==="series"?e.getViewOfSeriesModel(n):e.getViewOfComponentModel(n);a.group.traverse(function(o){kw(o)})}i.isBlured=!1})}function zh(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 $h(e,t,r){$w(e,!0),jr(e,xL),EL(e,t,r)}function IL(e){$w(e,!1)}function ou(e,t,r,n){n?IL(e):$h(e,t,r)}function EL(e,t,r){var n=Nt(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var Dm=["emphasis","blur","select"],LL={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Vh(e,t,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=ac(d),s*=ac(d));var p=(i===a?-1:1)*ac((o*o*(s*s)-o*o*(h*h)-s*s*(v*v))/(o*o*(h*h)+s*s*(v*v)))||0,g=p*o*h/s,m=p*-s*v/o,y=(e+r)/2+Ys(c)*g-Ws(c)*m,_=(t+n)/2+Ws(c)*g+Ys(c)*m,w=Lm([1,0],[(v-g)/o,(h-m)/s]),S=[(v-g)/o,(h-m)/s],b=[(-1*v-g)/o,(-1*h-m)/s],x=Lm(S,b);if(Wh(S,b)<=-1&&(x=Za),Wh(S,b)>=1&&(x=0),x<0){var T=Math.round(x/Za*1e6)/1e6;x=Za*2+T%2*Za}f.addData(u,y,_,o,s,w,x,c,a)}var FL=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,zL=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function HL(e){var t=new On;if(!e)return t;var r=0,n=0,i=r,a=n,o,s=On.CMD,l=e.match(FL);if(!l)return t;for(var u=0;uO*O+z*z&&(T=D,C=P),{cx:T,cy:C,x0:-f,y0:-c,x1:T*(i/S-1),y1:C*(i/S-1)}}function XL(e){var t;if(et(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 jL(e,t){var r,n=go(t.r,0),i=go(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,v=!!t.clockwise,h=Om(u-l),d=h>oc&&h%oc;if(d>ar&&(h=d),!(n>ar))e.moveTo(f,c);else if(h>oc-ar)e.moveTo(f+n*Yi(l),c+n*Jn(l)),e.arc(f,c,n,l,u,!v),i>ar&&(e.moveTo(f+i*Yi(u),c+i*Jn(u)),e.arc(f,c,i,u,l,v));else{var p=void 0,g=void 0,m=void 0,y=void 0,_=void 0,w=void 0,S=void 0,b=void 0,x=void 0,T=void 0,C=void 0,D=void 0,P=void 0,A=void 0,L=void 0,O=void 0,z=n*Yi(l),N=n*Jn(l),tt=i*Yi(u),V=i*Jn(u),K=h>ar;if(K){var lt=t.cornerRadius;lt&&(r=XL(lt),p=r[0],g=r[1],m=r[2],y=r[3]);var yt=Om(n-i)/2;if(_=_r(yt,m),w=_r(yt,y),S=_r(yt,p),b=_r(yt,g),C=x=go(_,w),D=T=go(S,b),(x>ar||T>ar)&&(P=n*Yi(u),A=n*Jn(u),L=i*Yi(l),O=i*Jn(l),har){var vt=_r(m,C),ft=_r(y,C),X=qs(L,O,z,N,n,vt,v),j=qs(P,A,tt,V,n,ft,v);e.moveTo(f+X.cx+X.x0,c+X.cy+X.y0),C0&&e.arc(f+X.cx,c+X.cy,vt,oe(X.y0,X.x0),oe(X.y1,X.x1),!v),e.arc(f,c,n,oe(X.cy+X.y1,X.cx+X.x1),oe(j.cy+j.y1,j.cx+j.x1),!v),ft>0&&e.arc(f+j.cx,c+j.cy,ft,oe(j.y1,j.x1),oe(j.y0,j.x0),!v))}else e.moveTo(f+z,c+N),e.arc(f,c,n,l,u,!v);if(!(i>ar)||!K)e.lineTo(f+tt,c+V);else if(D>ar){var vt=_r(p,D),ft=_r(g,D),X=qs(tt,V,P,A,i,-ft,v),j=qs(z,N,L,O,i,-vt,v);e.lineTo(f+X.cx+X.x0,c+X.cy+X.y0),D0&&e.arc(f+X.cx,c+X.cy,ft,oe(X.y0,X.x0),oe(X.y1,X.x1),!v),e.arc(f,c,i,oe(X.cy+X.y1,X.cx+X.x1),oe(j.cy+j.y1,j.cx+j.x1),v),vt>0&&e.arc(f+j.cx,c+j.cy,vt,oe(j.y1,j.x1),oe(j.y0,j.x0),!v))}else e.lineTo(f+tt,c+V),e.arc(f,c,i,u,l,v)}e.closePath()}}}var KL=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}(),jw=function(e){J(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new KL},t.prototype.buildPath=function(r,n){jL(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(kt);jw.prototype.type="sector";var ws=jw,ZL=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),Kw=function(e){J(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new ZL},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}(kt);Kw.prototype.type="ring";var Zw=Kw;function QL(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 v=0,h=e.length;v=2){if(n){var a=QL(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;sei[1]){if(s=!1,a)return s;var f=Math.abs(ei[0]-ti[1]),c=Math.abs(ti[0]-ei[1]);Math.min(f,c)>i.len()&&(f0){var c=f.duration,v=f.delay,h=f.easing,d={duration:c,delay:v||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,d):t.animateTo(r,d)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),a&&a()}function Dr(e,t,r,n,i,a){Pd("update",e,t,r,n,i,a)}function An(e,t,r,n,i,a){Pd("enter",e,t,r,n,i,a)}function Oo(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 Bm(e){return!e.isGroup}function A2(e){return e.shape!=null}function vb(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){Bm(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return A2(o)&&(s.shape=Y({},o.shape)),s}var a=n(e);t.traverse(function(o){if(Bm(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Dr(o,l,r,Nt(o).dataIndex)}}})}function D2(e,t){return ct(e,function(r){var n=r[0];n=uu(n,t.x),n=fu(n,t.x+t.width);var i=r[1];return i=uu(i,t.y),i=fu(i,t.y+t.height),[n,i]})}function P2(e,t){var r=uu(e.x,t.x),n=fu(e.x+e.width,t.x+t.width),i=uu(e.y,t.y),a=fu(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 Ld(e,t,r){var n=Y({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),Pt(i,r),new Ii(n)):Id(e.replace("path://",""),n,r,"center")}function I2(e,t,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=sc(h,d,f,c)/v;return!(g<0||g>1)}function sc(e,t,r,n){return e*n-r*t}function E2(e){return e<=1e-6&&e>=-1e-6}function Rd(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,i=it(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&&I(Gt(l),function(f){Ca(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=Nt(e.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:Pt({content:n,formatterParams:s},i)}}function Fm(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function Od(e,t){if(e)if(et(e))for(var r=0;r=0&&s.push(l)}),s}}function q2(e,t){return Dt(Dt({},e,!0),t,!0)}var X2={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:". "}}}},j2={time:{month:["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],monthAbbr:["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],dayOfWeek:["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"],dayOfWeekAbbr:["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"]},legend:{selector:{all:"\u5168\u9009",inverse:"\u53CD\u9009"}},toolbox:{brush:{title:{rect:"\u77E9\u5F62\u9009\u62E9",polygon:"\u5708\u9009",lineX:"\u6A2A\u5411\u9009\u62E9",lineY:"\u7EB5\u5411\u9009\u62E9",keep:"\u4FDD\u6301\u9009\u62E9",clear:"\u6E05\u9664\u9009\u62E9"}},dataView:{title:"\u6570\u636E\u89C6\u56FE",lang:["\u6570\u636E\u89C6\u56FE","\u5173\u95ED","\u5237\u65B0"]},dataZoom:{title:{zoom:"\u533A\u57DF\u7F29\u653E",back:"\u533A\u57DF\u7F29\u653E\u8FD8\u539F"}},magicType:{title:{line:"\u5207\u6362\u4E3A\u6298\u7EBF\u56FE",bar:"\u5207\u6362\u4E3A\u67F1\u72B6\u56FE",stack:"\u5207\u6362\u4E3A\u5806\u53E0",tiled:"\u5207\u6362\u4E3A\u5E73\u94FA"}},restore:{title:"\u8FD8\u539F"},saveAsImage:{title:"\u4FDD\u5B58\u4E3A\u56FE\u7247",lang:["\u53F3\u952E\u53E6\u5B58\u4E3A\u56FE\u7247"]}},series:{typeNames:{pie:"\u997C\u56FE",bar:"\u67F1\u72B6\u56FE",line:"\u6298\u7EBF\u56FE",scatter:"\u6563\u70B9\u56FE",effectScatter:"\u6D9F\u6F2A\u6563\u70B9\u56FE",radar:"\u96F7\u8FBE\u56FE",tree:"\u6811\u56FE",treemap:"\u77E9\u5F62\u6811\u56FE",boxplot:"\u7BB1\u578B\u56FE",candlestick:"K\u7EBF\u56FE",k:"K\u7EBF\u56FE",heatmap:"\u70ED\u529B\u56FE",map:"\u5730\u56FE",parallel:"\u5E73\u884C\u5750\u6807\u56FE",lines:"\u7EBF\u56FE",graph:"\u5173\u7CFB\u56FE",sankey:"\u6851\u57FA\u56FE",funnel:"\u6F0F\u6597\u56FE",gauge:"\u4EEA\u8868\u76D8\u56FE",pictorialBar:"\u8C61\u5F62\u67F1\u56FE",themeRiver:"\u4E3B\u9898\u6CB3\u6D41\u56FE",sunburst:"\u65ED\u65E5\u56FE"}},aria:{general:{withTitle:"\u8FD9\u662F\u4E00\u4E2A\u5173\u4E8E\u201C{title}\u201D\u7684\u56FE\u8868\u3002",withoutTitle:"\u8FD9\u662F\u4E00\u4E2A\u56FE\u8868\uFF0C"},series:{single:{prefix:"",withName:"\u56FE\u8868\u7C7B\u578B\u662F{seriesType}\uFF0C\u8868\u793A{seriesName}\u3002",withoutName:"\u56FE\u8868\u7C7B\u578B\u662F{seriesType}\u3002"},multiple:{prefix:"\u5B83\u7531{seriesCount}\u4E2A\u56FE\u8868\u7CFB\u5217\u7EC4\u6210\u3002",withName:"\u7B2C{seriesId}\u4E2A\u7CFB\u5217\u662F\u4E00\u4E2A\u8868\u793A{seriesName}\u7684{seriesType}\uFF0C",withoutName:"\u7B2C{seriesId}\u4E2A\u7CFB\u5217\u662F\u4E00\u4E2A{seriesType}\uFF0C",separator:{middle:"\uFF1B",end:"\u3002"}}},data:{allData:"\u5176\u6570\u636E\u662F\u2014\u2014",partialData:"\u5176\u4E2D\uFF0C\u524D{displayCnt}\u9879\u662F\u2014\u2014",withName:"{name}\u7684\u6570\u636E\u662F{value}",withoutName:"{value}",separator:{middle:"\uFF0C",end:""}}}},cu="ZH",kd="EN",rs=kd,Ll={},Nd={},yb=wt.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase();return e.indexOf(cu)>-1?cu:rs}():rs;function _b(e,t){e=e.toUpperCase(),Nd[e]=new ce(t),Ll[e]=t}function K2(e){if(it(e)){var t=Ll[e.toUpperCase()]||{};return e===cu||e===kd?xt(t):Dt(xt(t),xt(Ll[rs]),!1)}else return Dt(xt(e),xt(Ll[rs]),!1)}function Z2(e){return Nd[e]}function Q2(){return Nd[rs]}_b(kd,X2);_b(cu,j2);var Bd=1e3,Fd=Bd*60,ko=Fd*60,Ze=ko*24,Wm=Ze*365,mo={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}"},Ks="{yyyy}-{MM}-{dd}",Ym={year:"{yyyy}",month:"{yyyy}-{MM}",day:Ks,hour:Ks+" "+mo.hour,minute:Ks+" "+mo.minute,second:Ks+" "+mo.second,millisecond:mo.none},fc=["year","month","day","hour","minute","second","millisecond"],wb=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function ri(e,t){return e+="","0000".substr(0,t-e.length)+e}function ga(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 J2(e){return e===ga(e)}function tR(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Zu(e,t,r,n){var i=Yr(e),a=i[zd(r)](),o=i[ma(r)]()+1,s=Math.floor((o-1)/4)+1,l=i[Qu(r)](),u=i["get"+(r?"UTC":"")+"Day"](),f=i[ns(r)](),c=(f-1)%12+1,v=i[Ju(r)](),h=i[tf(r)](),d=i[ef(r)](),p=n instanceof ce?n:Z2(n||yb)||Q2(),g=p.getModel("time"),m=g.get("month"),y=g.get("monthAbbr"),_=g.get("dayOfWeek"),w=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,ri(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,ri(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,w[u]).replace(/{e}/g,u+"").replace(/{HH}/g,ri(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,ri(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,ri(v,2)).replace(/{m}/g,v+"").replace(/{ss}/g,ri(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,ri(d,3)).replace(/{S}/g,d+"")}function eR(e,t,r,n,i){var a=null;if(it(r))a=r;else if(mt(r))a=r(e.value,t,{level:e.level});else{var o=Y({},mo);if(e.level>0)for(var s=0;s=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(et(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 Zu(new Date(e.value),a,i,n)}function bb(e,t){var r=Yr(e),n=r[ma(t)]()+1,i=r[Qu(t)](),a=r[ns(t)](),o=r[Ju(t)](),s=r[tf(t)](),l=r[ef(t)](),u=l===0,f=u&&s===0,c=f&&o===0,v=c&&a===0,h=v&&i===1,d=h&&n===1;return d?"year":h?"month":v?"day":c?"hour":f?"minute":u?"second":"millisecond"}function qm(e,t,r){var n=zt(e)?Yr(e):e;switch(t=t||bb(e,r),t){case"year":return n[zd(r)]();case"half-year":return n[ma(r)]()>=6?1:0;case"quarter":return Math.floor((n[ma(r)]()+1)/4);case"month":return n[ma(r)]();case"day":return n[Qu(r)]();case"half-day":return n[ns(r)]()/24;case"hour":return n[ns(r)]();case"minute":return n[Ju(r)]();case"second":return n[tf(r)]();case"millisecond":return n[ef(r)]()}}function zd(e){return e?"getUTCFullYear":"getFullYear"}function ma(e){return e?"getUTCMonth":"getMonth"}function Qu(e){return e?"getUTCDate":"getDate"}function ns(e){return e?"getUTCHours":"getHours"}function Ju(e){return e?"getUTCMinutes":"getMinutes"}function tf(e){return e?"getUTCSeconds":"getSeconds"}function ef(e){return e?"getUTCMilliseconds":"getMilliseconds"}function rR(e){return e?"setUTCFullYear":"setFullYear"}function Sb(e){return e?"setUTCMonth":"setMonth"}function xb(e){return e?"setUTCDate":"setDate"}function Tb(e){return e?"setUTCHours":"setHours"}function Cb(e){return e?"setUTCMinutes":"setMinutes"}function Mb(e){return e?"setUTCSeconds":"setSeconds"}function Ab(e){return e?"setUTCMilliseconds":"setMilliseconds"}function Db(e){if(!ZI(e))return it(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function Pb(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 rf=F1,nR=/([&<>"'])/g,iR={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ke(e){return e==null?"":(e+"").replace(nR,function(t,r){return iR[r]})}function qh(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(f){return f&&Tr(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?Yr(e):e;if(isNaN(+l)){if(s)return"-"}else return Zu(l,n,r)}if(t==="ordinal")return dh(e)?i(e):zt(e)&&a(e)?e+"":"-";var u=ru(e);return a(u)?Db(u):dh(e)?i(e):typeof e=="boolean"?e+"":"-"}var Xm=["a","b","c","d","e","f","g"],cc=function(e,t){return"{"+e+(t==null?"":t)+"}"};function Ib(e,t,r){et(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 Ti(e,t){return t=t||"transparent",it(e)?e:st(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function jm(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Rl=I,oR=["left","right","top","bottom","width","height"],Zs=[["width","left","right"],["height","top","bottom"]];function Hd(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),v=c&&c.getBoundingRect(),h,d;if(e==="horizontal"){var p=f.width+(v?-v.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+(v?-v.y+f.y:0);d=o+g,d>i||l.newline?(a+=s+r,o=0,d=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=d+r)})}var No=Hd;Xt(Hd,"vertical");Xt(Hd,"horizontal");function Ma(e,t,r){r=rf(r||0);var n=t.width,i=t.height,a=Vt(e.left,n),o=Vt(e.top,i),s=Vt(e.right,n),l=Vt(e.bottom,i),u=Vt(e.width,n),f=Vt(e.height,i),c=r[2]+r[0],v=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-s-v-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-v),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-v;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-v-a-(s||0)),isNaN(f)&&(f=i-c-o-(l||0));var d=new Ot(a+r[3],o+r[0],u,f);return d.margin=r,d}function is(e){var t=e.layoutMode||e.constructor.layoutMode;return st(t)?t:t?{type:t}:null}function Aa(e,t,r){var n=r&&r.ignoreSize;!et(n)&&(n=[n,n]);var i=o(Zs[0],0),a=o(Zs[1],1);u(Zs[0],e,i),u(Zs[1],e,a);function o(f,c){var v={},h=0,d={},p=0,g=2;if(Rl(f,function(_){d[_]=e[_]}),Rl(f,function(_){s(t,_)&&(v[_]=d[_]=t[_]),l(v,_)&&h++,l(d,_)&&p++}),n[c])return l(t,f[1])?d[f[2]]=null:l(t,f[2])&&(d[f[1]]=null),d;if(p===g||!h)return d;if(h>=g)return v;for(var m=0;m=0;l--)s=Dt(s,i[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return ys(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}(ce);_w(Ba,ce);Hu(Ba);W2(Ba);Y2(Ba,uR);function uR(e){var t=[];return I(Ba.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=ct(t,function(r){return Cr(r).main}),e!=="dataset"&&It(t,"dataset")<=0&&t.unshift("dataset"),t}var $t=Ba,Eb="";typeof navigator!="undefined"&&(Eb=navigator.platform||"");var qi="rgba(0, 0, 0, 0.2)",fR={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:qi,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:qi,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:qi,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:qi,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:qi,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:qi,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Eb.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},Lb=_t(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),rr="original",Ae="arrayRows",vr="objectRows",Er="keyedColumns",Dn="typedArray",Rb="unknown",Vr="column",Fa="row",te={Must:1,Might:2,Not:3},Ob=Qt();function cR(e){Ob(e).datasetMap=_t()}function hR(e,t,r){var n={},i=$d(t);if(!i||!e)return n;var a=[],o=[],s=t.ecModel,l=Ob(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,f,c;e=e.slice(),I(e,function(p,g){var m=st(p)?p:e[g]={name:p};m.type==="ordinal"&&f==null&&(f=g,c=d(m)),n[m.name]=[]});var v=l.get(u)||l.set(u,{categoryWayDim:c,valueWayDim:0});I(e,function(p,g){var m=p.name,y=d(p);if(f==null){var _=v.valueWayDim;h(n[m],_,y),h(o,_,y),v.valueWayDim+=y}else if(f===g)h(n[m],0,y),h(a,0,y);else{var _=v.categoryWayDim;h(n[m],_,y),h(o,_,y),v.categoryWayDim+=y}});function h(p,g,m){for(var y=0;yt)return e[n];return e[r-1]}function yR(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:mR(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 _R(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var Qs,Qa,Zm,Qm="\0_ec_inner",wR=1,Bb=function(e){J(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 ce(a),this._locale=new ce(o),this._optionManager=s},t.prototype.setOption=function(r,n,i){var a=ey(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},t.prototype.resetOption=function(r,n){return this._resetOption(r,ey(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"?Zm(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&&I(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=_t(),u=n&&n.replaceMergeMainTypeMap;cR(this),I(r,function(c,v){c!=null&&($t.hasClass(v)?v&&(s.push(v),l.set(v,!0)):i[v]=i[v]==null?xt(c):Dt(i[v],c,!0))}),u&&u.each(function(c,v){$t.hasClass(v)&&!l.get(v)&&(s.push(v),l.set(v,!0))}),$t.topologicalTravel(s,$t.getAllClassMainTypes(),f,this);function f(c){var v=gR(this,c,me(r[c])),h=a.get(c),d=h?u&&u.get(c)?"replaceMerge":"normalMerge":"replaceAll",p=tE(h,v,d);sE(p,c,$t),i[c]=null,a.set(c,null),o.set(c,0);var g=[],m=[],y=0,_;I(p,function(w,S){var b=w.existing,x=w.newOption;if(!x)b&&(b.mergeOption({},this),b.optionUpdated({},!1));else{var T=c==="series",C=$t.getClass(c,w.keyInfo.subType,!T);if(!C)return;if(c==="tooltip"){if(_)return;_=!0}if(b&&b.constructor===C)b.name=w.keyInfo.name,b.mergeOption(x,this),b.optionUpdated(x,!1);else{var D=Y({componentIndex:S},w.keyInfo);b=new C(x,this,this,D),Y(b,D),w.brandNew&&(b.__requireNewView=!0),b.init(x,this,this),b.optionUpdated(null,!0)}}b?(g.push(b.option),m.push(b),y++):(g.push(void 0),m.push(void 0))},this),i[c]=g,a.set(c,m),o.set(c,y),c==="series"&&Qs(this)}this._seriesIndices||Qs(this)},t.prototype.getOption=function(){var r=xt(this.option);return I(r,function(n,i){if($t.hasClass(i)){for(var a=me(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!ts(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[Qm],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 ER(e,t){return e.join(",")===t.join(",")}var LR=AR,ir=I,as=st,ry=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function vc(e){var t=e&&e.itemStyle;if(!!t)for(var r=0,n=ry.length;r=0;p--){var g=e[p];if(s||(h=g.data.rawIndexOf(g.stackedByDimension,v)),h>=0){var m=g.data.getByRawIndex(g.stackResultDimension,h);if(c>=0&&m>0||c<=0&&m<0){c=XI(c,m),d=m;break}}}return n[0]=c,n[1]=d,n})})}var af=function(){function e(t){this.data=t.data||(t.sourceFormat===Er?{}:[]),this.sourceFormat=t.sourceFormat||Rb,this.seriesLayoutBy=t.seriesLayoutBy||Vr,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]=d,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};uy=(t={},t[Ae+"_"+Vr]={pure:!0,appendData:a},t[Ae+"_"+Fa]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[vr]={pure:!0,appendData:a},t[Er]={pure:!0,appendData:function(o){var s=this._data;I(o,function(l,u){for(var f=s[u]||(s[u]=[]),c=0;c<(l||[]).length;c++)f.push(l[c])})}},t[rr]={appendData:a},t[Dn]={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 Da(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function vy(e){var t,r;return st(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function Bo(e){return new KR(e)}var KR=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 v=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,d=Math.min(v!=null?this._dueIndex+v: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}(),QR=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 Ol(t,r)},e}();function JR(e,t){var r=new QR,n=e.data,i=r.sourceFormat=e.sourceFormat,a=e.startIndex,o="";e.seriesLayoutBy!==Vr&&xe(o);var s=[],l={},u=e.dimensionsDefine;if(u)I(u,function(p,g){var m=p.name,y={index:g,name:m,displayName:p.displayName};if(s.push(y),m!=null){var _="";Ca(l,m)&&xe(_),l[m]=y}});else for(var f=0;f65535?sO:lO}function Xi(){return[1/0,-1/0]}function uO(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function gy(e,t,r,n,i){var a=Kb[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=ct(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=d,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<=v||isNaN(y))&&(l[u++]=p),p++}d=!0}else if(a===2){for(var g=h[i[0]],_=h[i[1]],w=t[i[1]][0],S=t[i[1]][1],m=0;m=c&&y<=v||isNaN(y))&&(b>=w&&b<=S||isNaN(b))&&(l[u++]=p),p++}d=!0}}if(!d)if(a===1)for(var m=0;m=c&&y<=v||isNaN(y))&&(l[u++]=x)}else for(var m=0;mt[D][1])&&(T=!1)}T&&(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,v,h=new(to(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var d=1;df&&(f=c,v=w)}P>0&&Pf-d&&(l=f-d,s.length=l);for(var p=0;pc[1]&&(c[1]=m),v[h++]=y}return a._count=h,a._indices=v,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 Ol(r[a],this._dimensions[a])}gc={arrayRows:t,objectRows:function(r,n,i,a){return Ol(r[n],this._dimensions[a])},keyedColumns:t,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return Ol(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}}(),e}(),fO=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(Js(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=Be(s)?Dn:rr,a=[];var c=this._getSourceMetaRawOption()||{},v=u&&u.metaRawOption||{},h=Mt(c.seriesLayoutBy,v.seriesLayoutBy)||null,d=Mt(c.sourceHeader,v.sourceHeader),p=Mt(c.dimensions,v.dimensions),g=h!==v.seriesLayoutBy||!!d!=!!v.sourceHeader||p;i=g?[Xh(s,{seriesLayoutBy:h,sourceHeader:d,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=[Xh(_,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&&my(a)}var o,s=[],l=[];return I(t,function(u){u.prepareSource();var f=u.getSource(i||0),c="";i!=null&&!f&&my(c),s.push(f),l.push(u._getVersionSign())}),n?o=aO(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[VR(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r(e=Symbol[t])?e:Symbol.for("Symbol."+t),hC=t=>{throw TypeError(t)};var ng=(t,e,r)=>e in t?uC(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Yn=(t,e)=>{for(var r in e||(e={}))fC.call(e,r)&&ng(t,r,e[r]);if(rg)for(var r of rg(e))cC.call(e,r)&&ng(t,r,e[r]);return t};var ur=(t,e,r)=>new Promise((n,i)=>{var a=l=>{try{s(r.next(l))}catch(u){i(u)}},o=l=>{try{s(r.throw(l))}catch(u){i(u)}},s=l=>l.done?n(l.value):Promise.resolve(l.value).then(a,o);s((r=r.apply(t,e)).next())}),$n=function(t,e){this[0]=t,this[1]=e},$f=(t,e,r)=>{var n=(s,l,u,f)=>{try{var c=r[s](l),v=(l=c.value)instanceof $n,h=c.done;Promise.resolve(v?l[0]:l).then(d=>v?n(s==="return"?s:"next",l[1]?{done:d.done,value:d.value}:d,u,f):u({value:d,done:h})).catch(d=>n("throw",d,u,f))}catch(d){f(d)}},i=(s,l,u,f)=>o[s]=c=>(l=new Promise((v,h,d)=>(d=()=>n(s,c,v,h),a?a.then(d):d())),f=()=>a===u&&(a=0),a=u=l.then(f,f),l),a,o={};return r=r.apply(t,e),o[Zi("asyncIterator")]=()=>o,i("next"),i("throw"),i("return"),o},Xf=t=>{var e=t[Zi("asyncIterator")],r=!1,n,i={};return e==null?(e=t[Zi("iterator")](),n=a=>i[a]=o=>e[a](o)):(e=e.call(t),n=a=>i[a]=o=>{if(r){if(r=!1,a==="throw")throw o;return o}return r=!0,{done:!1,value:new $n(new Promise(s=>{var l=e[a](o);l instanceof Object||hC("Object expected"),s(l)}),1)}}),i[Zi("iterator")]=()=>i,n("next"),"throw"in e?n("throw"):i.throw=a=>{throw a},"return"in e&&n("return"),i},ig=(t,e,r)=>(e=t[Zi("asyncIterator")])?e.call(t):(t=t[Zi("iterator")](),e={},r=(n,i)=>(i=t[n])&&(e[n]=a=>new Promise((o,s,l)=>(a=i.call(t,a),l=a.done,Promise.resolve(a.value).then(u=>o({value:u,done:l}),s)))),r("next"),r("return"),e);import{defineComponent as hd,ref as Pa,onMounted as vC,computed as Bt,getCurrentInstance as dC,h as eu,inject as yr,reactive as vd,watch as dd,effectScope as e1,markRaw as t1,hasInjectionContext as pC,isRef as tu,isReactive as r1,toRaw as gC,getCurrentScope as mC,onScopeDispose as yC,nextTick as n1,toRefs as _C,onUnmounted as SC,onDeactivated as bC,onActivated as wC,shallowRef as TC,unref as Mo,shallowReactive as xC,provide as qf}from"/luci-static/quickstart/card-runtime-v1.js";function i1(t,e){return function(){return t.apply(e,arguments)}}const{toString:CC}=Object.prototype,{getPrototypeOf:en}=Object,{iterator:us,toStringTag:a1}=Symbol,tn=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),o1=t=>typeof t=="string"&&(t==="__proto__"||t==="constructor"||t==="prototype"),ef=(t,e,r)=>t===Object.prototype||!r&&e===null,AC=t=>{if(!Object.isExtensible(t))return!1;const e=Object.getOwnPropertyNames(t);return Object.getOwnPropertySymbols&&e.push(...Object.getOwnPropertySymbols(t)),e.every(r=>{if(o1(r))return!1;const n=Object.getOwnPropertyDescriptor(t,r);return!!n&&n.configurable&&n.writable===!0})},pd=(t,e)=>{let r=t;const n=[];for(;r!=null;){if(n.indexOf(r)!==-1)return!1;n.push(r);const i=en(r);if(ef(r,i,r===t))return!1;if(tn(r,e))return!0;r=i}return!1},DC=(t,e)=>t!=null&&pd(t,e)?t[e]:void 0,EC=t=>{if(t==null||typeof t!="object"&&typeof t!="function")return t;const e=en(t);if(e===null&&AC(t))return t;const r=Object.create(null),n=Object.create(null),i=[];let a=t;for(;a!=null&&i.indexOf(a)===-1;){i.push(a);const o=a===t?e:en(a);if(ef(a,o,a===t))break;const s=Object.getOwnPropertyNames(a);Object.getOwnPropertySymbols&&s.push(...Object.getOwnPropertySymbols(a));for(const l of s)o1(l)||tn(n,l)||(r[l]=t[l],n[l]=!0);a=o}return r},gd=(t=>e=>{const r=CC.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),ir=t=>(t=t.toLowerCase(),e=>gd(e)===t),tf=t=>e=>typeof e===t,{isArray:Ii}=Array,Li=tf("undefined");function Wa(t){return t!==null&&!Li(t)&&t.constructor!==null&&!Li(t.constructor)&&Rt(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const s1=ir("ArrayBuffer");function RC(t){let e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&s1(t.buffer),e}const MC=tf("string"),Rt=tf("function"),PC=tf("number"),Ya=t=>t!==null&&typeof t=="object",IC=t=>t===!0||t===!1,Cl=t=>{if(!Ya(t))return!1;const e=en(t);return(e===null||e===Object.prototype||en(e)===null)&&(ef(t,e,!0)||!tn(t,a1)&&!tn(t,us))},LC=t=>{if(!Ya(t)||Wa(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch(e){return!1}},OC=ir("Date"),kC=ir("File"),NC=t=>!!(t&&typeof t.uri!="undefined"),BC=t=>t&&typeof t.getParts!="undefined",FC=ir("Blob"),zC=ir("FileList"),HC=ir("Set"),UC=t=>Ya(t)&&Rt(t.pipe);function VC(){return typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{}}const ag=VC(),og=typeof ag.FormData!="undefined"?ag.FormData:void 0,GC=t=>{if(!t)return!1;if(og&&t instanceof og)return!0;const e=en(t);if(!e||e===Object.prototype||!Rt(t.append))return!1;const r=gd(t);return r==="formdata"||r==="object"&&Rt(t.toString)&&t.toString()==="[object FormData]"},WC=ir("URLSearchParams"),[YC,$C,XC,qC]=["ReadableStream","Request","Response","Headers"].map(ir),jC=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function fs(t,e,{allOwnKeys:r=!1}={}){if(t===null||typeof t=="undefined")return;let n,i;if(typeof t!="object"&&(t=[t]),Ii(t))for(n=0,i=t.length;n0;)if(i=r[n],e===i.toLowerCase())return i;return null}const yi=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:global,l1=t=>!Li(t)&&t!==yi;function Oh(...t){const{caseless:e,skipUndefined:r}=l1(this)&&this||{},n={},i=e?Object.create(null):null,a=(o,s)=>{if(s==="__proto__"||s==="constructor"||s==="prototype")return;let l=s;if(i&&typeof s=="string"){const f=s.toLowerCase(),c=i[f];c!==void 0&&tn(n,c)?l=c:i[f]=s}const u=tn(n,l)?n[l]:void 0;Cl(u)&&Cl(o)?n[l]=Oh(u,o):Cl(o)?n[l]=Oh({},o):Ii(o)?n[l]=o.slice():(!r||!Li(o))&&(n[l]=o)};for(let o=0,s=t.length;o(fs(e,(i,a)=>{r&&Rt(i)?Object.defineProperty(t,a,{__proto__:null,value:i1(i,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,a,{__proto__:null,value:i,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:n}),t),QC=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),JC=(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),r&&Object.assign(t.prototype,r)},eA=(t,e,r,n)=>{let i,a,o;const s={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),a=i.length;a-- >0;)o=i[a],(!n||n(o,t,e))&&!s[o]&&(e[o]=t[o],s[o]=!0);t=r!==!1&&en(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},tA=(t,e,r)=>{t=String(t),(r===void 0||r>t.length)&&(r=t.length),r-=e.length;const n=t.indexOf(e,r);return n!==-1&&n===r},rA=t=>{if(!t)return null;if(Ii(t))return t;let e=t.length;if(!Number.isSafeInteger(e)||e<0||e>4294967295)return null;const r=new Set,n=new Set;let i=t;for(;i!=null&&r.size{const l=+s;Number.isInteger(l)&&l>=0&&l0;)a[e]=t[e];return a},nA=(t=>e=>t&&e instanceof t)(typeof Uint8Array!="undefined"&&en(Uint8Array)),iA=(t,e)=>{const n=(t&&t[us]).call(t);let i;for(;(i=n.next())&&!i.done;){const a=i.value;e.call(t,a[0],a[1])}},aA=(t,e)=>{let r;const n=[];for(;(r=t.exec(e))!==null;)n.push(r);return n},oA=ir("HTMLFormElement"),sA=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),{propertyIsEnumerable:lA}=Object.prototype,uA=ir("RegExp"),u1=(t,e)=>{const r=Object.getOwnPropertyDescriptors(t),n={};fs(r,(i,a)=>{let o;(o=e(i,a,t))!==!1&&(n[a]=o||i)}),Object.defineProperties(t,n)},fA=t=>{u1(t,(e,r)=>{if(Rt(t)&&["arguments","caller","callee"].includes(r))return!1;const n=t[r];if(Rt(n)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},cA=(t,e)=>{const r={},n=i=>{i.forEach(a=>{r[a]=!0})};return Ii(t)?n(t):n(String(t).split(e)),r},hA=()=>{},vA=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function dA(t){return!!(t&&Rt(t.append)&&t[a1]==="FormData"&&t[us])}const pA=t=>{const e=new WeakSet,r=n=>{if(Ya(n)){if(e.has(n))return;if(Wa(n))return n;if(!("toJSON"in n)){e.add(n);let i;if(HC(n)){i=[];for(const a of n){const o=r(a);!Li(o)&&i.push(o)}}else i=Ii(n)?[]:{},fs(n,(a,o)=>{const s=r(a);!Li(s)&&(i[o]=s)});return e.delete(n),i}}return n};return r(t)},gA=ir("AsyncFunction"),mA=t=>t&&(Ya(t)||Rt(t))&&Rt(t.then)&&Rt(t.catch),f1=((t,e)=>t?setImmediate:e?((r,n)=>(yi.addEventListener("message",({source:i,data:a})=>{i===yi&&a===r&&n.length&&n.shift()()},!1),i=>{n.push(i),yi.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",Rt(yi.postMessage)),yA=typeof queueMicrotask!="undefined"?queueMicrotask.bind(yi):typeof process!="undefined"&&process.nextTick||f1,c1=t=>t!=null&&Rt(t[us]),_A=t=>t!=null&&pd(t,us)&&c1(t),E={isArray:Ii,isArrayBuffer:s1,isBuffer:Wa,isFormData:GC,isArrayBufferView:RC,isString:MC,isNumber:PC,isBoolean:IC,isObject:Ya,isPlainObject:Cl,isEmptyObject:LC,isReadableStream:YC,isRequest:$C,isResponse:XC,isHeaders:qC,isUndefined:Li,isDate:OC,isFile:kC,isReactNativeBlob:NC,isReactNative:BC,isBlob:FC,isRegExp:uA,isFunction:Rt,isStream:UC,isURLSearchParams:WC,isTypedArray:nA,isFileList:zC,forEach:fs,merge:Oh,extend:KC,trim:jC,stripBOM:QC,inherits:JC,toFlatObject:eA,kindOf:gd,kindOfTest:ir,endsWith:tA,toArray:rA,forEachEntry:iA,matchAll:aA,isHTMLForm:oA,hasOwnProperty:tn,hasOwnProp:tn,hasOwnInPrototypeChain:pd,getSafeProp:DC,toSafeFlatObject:EC,reduceDescriptors:u1,freezeMethods:fA,toObjectSet:cA,toCamelCase:sA,noop:hA,toFiniteNumber:vA,findKey:ZC,global:yi,isContextDefined:l1,isSpecCompliantForm:dA,toJSONObject:pA,isAsyncFn:gA,isThenable:mA,setImmediate:f1,asap:yA,isIterable:c1,isSafeIterable:_A},SA=E.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),bA=t=>{const e=Object.create(null);let r,n,i;return t&&t.split(` +`).forEach(function(o){i=o.indexOf(":"),r=o.substring(0,i).trim().toLowerCase(),n=o.substring(i+1).trim();const s=E.hasOwnProp(e,r);!r||s&&E.hasOwnProp(SA,r)||(r==="set-cookie"?s?e[r].push(n):e[r]=[n]:e[r]=s?e[r]+", "+n:n)}),e};function wA(t){let e=0,r=t.length;for(;ee;){const n=t.charCodeAt(r-1);if(n!==9&&n!==32)break;r-=1}return e===0&&r===t.length?t:t.slice(e,r)}const TA=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),xA=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function md(t,e){return E.isArray(t)?t.map(r=>md(r,e)):wA(String(t).replace(e,""))}const CA=t=>md(t,TA),AA=t=>md(t,xA);function h1(t){const e=Object.create(null);return E.forEach(t.toJSON(),(r,n)=>{e[n]=AA(r)}),e}const sg=Symbol("internals");function Za(t){return t&&String(t).trim().toLowerCase()}function Al(t){return t===!1||t==null?t:E.isArray(t)?t.map(Al):CA(String(t))}function DA(t){const e=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(t);)e[n[1]]=n[2];return e}const EA=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function jf(t){let e=0,r=t.length;for(;ee;){const n=t.charCodeAt(r-1);if(n!==9&&n!==32)break;r-=1}return e===0&&r===t.length?t:t.slice(e,r)}function RA(t){const e=t.length-1;if(e<1||t.charCodeAt(0)!==34||t.charCodeAt(e)!==34)return t;let r="";for(let n=1;n=e))return t;r+=t[n]}return r}function MA(t){const e=Object.create(null),r=String(t);let n=0,i=!1,a=!1;function o(s){const l=jf(r.slice(n,s)),u=l.indexOf("=");if(u<1)return;const f=jf(l.slice(0,u));if(!EA.test(f))return;const c=f.toLowerCase();if(c==="__proto__"||c==="constructor"||c==="prototype")return;const v=jf(l.slice(u+1));e[c]=RA(v)}for(let s=0;s/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()),IA="__Proto__",lg=t=>t==="__proto__"?IA:t;function Zf(t,e,r,n,i){if(E.isFunction(n))return n.call(t,e,r);if(i&&(e=r),!!E.isString(e)){if(E.isString(n))return e.indexOf(n)!==-1;if(E.isRegExp(n))return n.test(e)}}function LA(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,r,n)=>r.toUpperCase()+n)}function OA(t,e){const r=E.toCamelCase(" "+e);["get","set","has"].forEach(n=>{Object.defineProperty(t,n+r,{__proto__:null,value:function(i,a,o){return this[n].call(this,e,i,a,o)},configurable:!0})})}let je=class{constructor(e){e&&this.set(e)}set(e,r,n){const i=this;function a(s,l,u){const f=Za(l);if(!f)return;const c=E.findKey(i,f);(!c||i[c]===void 0||u===!0||u===void 0&&i[c]!==!1)&&(i[lg(c||l)]=Al(s))}const o=(s,l)=>E.forEach(s,(u,f)=>a(u,f,l));if(E.isPlainObject(e)||e instanceof this.constructor)o(e,r);else if(E.isString(e)&&(e=e.trim())&&!PA(e))o(bA(e),r);else if(E.isObject(e)&&E.isSafeIterable(e)){let s=Object.create(null),l,u;for(const f of e){if(!E.isArray(f))throw new TypeError("Object iterator must return a key-value pair");u=f[0],E.hasOwnProp(s,u)?(l=s[u],s[u]=E.isArray(l)?[...l,f[1]]:[l,f[1]]):s[u]=f[1]}o(s,r)}else e!=null&&a(r,e,n);return this}get(e,r){if(e=Za(e),e){const n=E.findKey(this,e);if(n){const i=this[n];if(!r)return i;if(r===!0)return DA(i);if(E.isFunction(r))return r.call(this,i,n);if(E.isRegExp(r))return r.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,r){if(e=Za(e),e){const n=E.findKey(this,e);return!!(n&&this[n]!==void 0&&(!r||Zf(this,this[n],n,r)))}return!1}delete(e,r){const n=this;let i=!1;function a(o){if(o=Za(o),o){const s=E.findKey(n,o);s&&(!r||Zf(n,n[s],s,r))&&(delete n[s],i=!0)}}return E.isArray(e)?e.forEach(a):a(e),i}clear(e){const r=Object.keys(this);let n=r.length,i=!1;for(;n--;){const a=r[n];(!e||Zf(this,this[a],a,e,!0))&&(delete this[a],i=!0)}return i}normalize(e){const r=this,n=Object.create(null);return E.forEach(this,(i,a)=>{const o=E.findKey(n,a);if(o){r[o]=Al(i),delete r[a];return}const s=lg(e?LA(a):String(a).trim());s!==a&&delete r[a],r[s]=Al(i),n[s]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const r=Object.create(null);return E.forEach(this,(n,i)=>{n!=null&&n!==!1&&(r[i]=e&&E.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,r])=>e+": "+r).join(` +`)}getSetCookie(){const e=this.get("set-cookie");return E.isArray(e)?e:e==null||e===!1?[]:[e]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static parseParameters(e){return MA(e)}static concat(e,...r){const n=new this(e);return r.forEach(i=>n.set(i)),n}static accessor(e){const n=(this[sg]=this[sg]={accessors:{}}).accessors,i=this.prototype;function a(o){const s=Za(o);n[s]||(OA(i,o),n[s]=!0)}return E.isArray(e)?e.forEach(a):a(e),this}};je.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);E.reduceDescriptors(je.prototype,({value:t},e)=>{let r=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(n){this[r]=n}}});E.freezeMethods(je);const ru="[REDACTED ****]";function kA(t){if(E.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(E.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function NA(t,e){const r=new Set(e.map(a=>String(a).toLowerCase())),n=[],i=a=>{if(a===null||typeof a!="object"||E.isBuffer(a))return a;if(n.indexOf(a)!==-1)return;a instanceof je&&(a=a.toJSON()),n.push(a);let o;if(E.isArray(a))o=[],a.forEach((s,l)=>{const u=i(s);E.isUndefined(u)||(o[l]=u)});else{if(!E.isPlainObject(a)&&kA(a))return n.pop(),a;o=Object.create(null);for(const[s,l]of Object.entries(a)){const u=r.has(s.toLowerCase())?ru:i(l);E.isUndefined(u)||(o[s]=u)}}return n.pop(),o};return i(t)}function ug(t){try{return String(t)}catch(e){return""}}function BA(t){return t.errors.map(r=>{try{return r&&r.message?ug(r.message):ug(r)}catch(n){return""}}).filter(Boolean).join("; ")||t.name||"AggregateError"}const FA=` +Caused by: `,kh=Symbol("causeStack");function zA(t,e){const r=E.hasOwnProp(t,kh)&&t[kh];return r&&e.endsWith(r)?e.length-r.length:-1}function HA(t,e){try{const r=e&&e.stack;if(typeof r!="string"||!r)return;const n=t.stack;if(typeof n!="string"||!n)return;const i=FA+r;t.stack=n+i,Object.defineProperty(t,kh,{__proto__:null,value:i})}catch(r){}}let V=class v1 extends Error{static from(e,r,n,i,a,o){let s=e.message;!s&&E.isArray(e.errors)&&e.errors.length&&(s=BA(e));const l=new v1(s,r||e.code,n,i,a);return Object.defineProperty(l,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),l.name=e.name,HA(l,e),e.status!=null&&l.status==null&&(l.status=e.status),o&&Object.assign(l,o),l}constructor(e,r,n,i,a){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,r&&(this.code=r),n&&(this.config=n),i&&(this.request=i),a&&(this.response=a,this.status=a.status)}toJSON(){const e=this.config,r=e&&E.hasOwnProp(e,"redact")?e.redact:void 0,n=E.isArray(r)&&r.length>0?NA(e,r):E.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};V.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";V.ERR_BAD_OPTION="ERR_BAD_OPTION";V.ECONNABORTED="ECONNABORTED";V.ETIMEDOUT="ETIMEDOUT";V.ECONNREFUSED="ECONNREFUSED";V.ERR_NETWORK="ERR_NETWORK";V.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";V.ERR_DEPRECATED="ERR_DEPRECATED";V.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";V.ERR_BAD_REQUEST="ERR_BAD_REQUEST";V.ERR_CANCELED="ERR_CANCELED";V.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";V.ERR_INVALID_URL="ERR_INVALID_URL";V.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const UA=null,d1=100;function Nh(t){return E.isPlainObject(t)||E.isArray(t)}function p1(t){return E.endsWith(t,"[]")?t.slice(0,-2):t}function Kf(t,e,r){return t?t.concat(e).map(function(i,a){return i=p1(i),!r&&a?"["+i+"]":i}).join(r?".":""):e}function VA(t){return E.isArray(t)&&!t.some(Nh)}const GA=E.toFlatObject(E,{},null,function(e){return/^is[A-Z]/.test(e)});function rf(t,e,r){if(!E.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const n=(y,_)=>{const S=E.getSafeProp(r,y);return E.isUndefined(S)?_:S},i=n("metaTokens",!0),a=n("visitor")||p,o=n("dots",!1),s=n("indexes",!1),l=n("Blob")||typeof Blob!="undefined"&&Blob,u=n("maxDepth",d1),f=l&&E.isSpecCompliantForm(e),c=[];if(!E.isFunction(a))throw new TypeError("visitor must be a function");function v(y){if(y===null)return"";if(E.isDate(y))return y.toISOString();if(E.isBoolean(y))return y.toString();if(!f&&E.isBlob(y))throw new V("Blob is not supported. Use a Buffer instead.");if(E.isArrayBuffer(y)||E.isTypedArray(y)){if(f&&typeof l=="function")return new l([y]);throw new V("Blob is not supported. Use a Buffer instead.",V.ERR_NOT_SUPPORT)}return y}function h(y){if(y>u)throw new V("Object is too deeply nested ("+y+" levels). Max depth: "+u,V.ERR_FORM_DATA_DEPTH_EXCEEDED)}function d(y,_){if(u===1/0)return JSON.stringify(y);const S=[];return JSON.stringify(y,function(w,T){if(!E.isObject(T))return T;for(;S.length&&S[S.length-1]!==this;)S.pop();return S.push(T),h(_+S.length-1),T})}function p(y,_,S){let b=y;if(E.isReactNative(e)&&E.isReactNativeBlob(y))return e.append(Kf(S,_,o),v(y)),!1;if(y&&!S&&typeof y=="object"){if(E.endsWith(_,"{}"))_=i?_:_.slice(0,-2),y=d(y,1);else if(E.isArray(y)&&VA(y)||(E.isFileList(y)||E.endsWith(_,"[]"))&&(b=E.toArray(y)))return _=p1(_),b.forEach(function(T,C){!(E.isUndefined(T)||T===null)&&e.append(s===!0?Kf([_],C,o):s===null?_:_+"[]",v(T))}),!1}return Nh(y)?!0:(e.append(Kf(S,_,o),v(y)),!1)}const m=Object.assign(GA,{defaultVisitor:p,convertValue:v,isVisitable:Nh});function g(y,_,S=0){if(!E.isUndefined(y)){if(h(S),c.indexOf(y)!==-1)throw new Error("Circular reference detected in "+_.join("."));c.push(y),E.forEach(y,function(w,T){(!(E.isUndefined(w)||w===null)&&a.call(e,w,E.isString(T)?T.trim():T,_,m))===!0&&g(w,_?_.concat(T):[T],S+1)}),c.pop()}}if(!E.isObject(t))throw new TypeError("data must be an object");return g(t),e}function fg(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function yd(t,e){this._pairs=[],t&&rf(t,this,e)}const g1=yd.prototype;g1.append=function(e,r){this._pairs.push([e,r])};g1.toString=function(e){const r=e?n=>e.call(this,n,fg):fg;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};function WA(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function m1(t,e,r){if(!e)return t;t=t||"";const n=E.isFunction(r)?{serialize:r}:r,i=E.getSafeProp(n,"encode")||WA,a=E.getSafeProp(n,"serialize");let o;if(a?o=a(e,n):o=E.isURLSearchParams(e)?e.toString():new yd(e,n).toString(i),o){const s=t.indexOf("#");s!==-1&&(t=t.slice(0,s)),t+=(t.indexOf("?")===-1?"?":"&")+o}return t}const Ka=Symbol("internals");function y1(t){return t?t.length:0}function cg(t){if(t)for(;t.length&&t[t.length-1]===null;)t.pop()}function YA(t){return typeof t=="string"&&t!==""&&String(Number(t))===t?Number(t):t}function Qa(t,e){const r=t.handlers,n=y1(r);r!==e.handlersRef?(e.handlersRef=r,e.handlerEntries.clear()):n!==e.handlersLength&&(n?e.handlerEntries.forEach(function(a,o){r[a.index]!==a.handler&&e.handlerEntries.delete(o)}):e.handlerEntries.clear()),e.handlersLength=n}class hg{constructor(){this.handlers=[],this[Ka]={handlersRef:this.handlers,handlersLength:this.handlers.length,handlerEntries:new Map,iterationDepth:0,nextId:0}}use(e,r,n){const i={fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null},a=this[Ka];this.handlers==null&&(this.handlers=[]),Qa(this,a);const o=a.nextId++;return this.handlers.push(i),a.handlerEntries.set(o,{handler:i,index:this.handlers.length-1}),a.handlersLength=this.handlers.length,o}eject(e){const r=this[Ka];Qa(this,r);const n=YA(e),i=r.handlerEntries.get(n);if(i){if(r.handlerEntries.delete(n),this.handlers[i.index]!==i.handler)return;this.handlers[i.index]=null,r.iterationDepth||(cg(this.handlers),r.handlersLength=this.handlers.length)}}clear(){this.handlers&&(this.handlers=[],Qa(this,this[Ka]))}forEach(e){const r=this[Ka];Qa(this,r),r.iterationDepth++;try{E.forEach(this.handlers,function(i){i!==null&&e(i)})}finally{--r.iterationDepth||(Qa(this,r),cg(this.handlers),r.handlersLength=y1(this.handlers))}}}const _d={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0,encodeBasicAuthUsername:!1},$A=typeof URLSearchParams!="undefined"?URLSearchParams:yd,XA=typeof FormData!="undefined"?FormData:null,qA=typeof Blob!="undefined"?Blob:null,jA={isBrowser:!0,classes:{URLSearchParams:$A,FormData:XA,Blob:qA},protocols:["http","https","file","blob","url","data"]},Sd=typeof window!="undefined"&&typeof document!="undefined",Bh=typeof navigator=="object"&&navigator||void 0,ZA=Sd&&(!Bh||["ReactNative","NativeScript","NS"].indexOf(Bh.product)<0),KA=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",QA=Sd&&window.location.href||"http://localhost",JA=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Sd,hasStandardBrowserEnv:ZA,hasStandardBrowserWebWorkerEnv:KA,navigator:Bh,origin:QA},Symbol.toStringTag,{value:"Module"})),Ye=Yn(Yn({},JA),jA);function eD(t,e){return rf(t,new Ye.classes.URLSearchParams,Yn({visitor:function(r,n,i,a){return Ye.isNode&&E.isBuffer(r)?(this.append(n,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},e))}const vg=d1;function _1(t){if(t>vg)throw new V("FormData field is too deeply nested ("+t+" levels). Max depth: "+vg,V.ERR_FORM_DATA_DEPTH_EXCEEDED)}function tD(t){const e=[],r=/[^.[\]]+|\[([^.[\]]*)]/g;let n;for(;(n=r.exec(t))!==null;)_1(e.length),e.push(n[0]==="[]"?"":n[1]||n[0]);return e}function S1(t){const e={},r=Object.keys(t);let n;const i=r.length;let a;for(n=0;nr!==String(n))?S1(t):t}function rD(t){const e=[t];for(;e.length;){const r=e.pop();Object.keys(r).forEach(n=>{const i=r[n]=b1(r[n]);(E.isArray(i)||E.isPlainObject(i))&&e.push(i)})}return t}function w1(t){function e(r,n,i,a){_1(a);let o=r[a++];if(o==="__proto__")return!0;const s=Number.isFinite(+o),l=a>=r.length;return o=!o&&E.isArray(i)?i.length:o,l?(E.hasOwnProp(i,o)?(i[o]=b1(i[o]),i[o]=E.isArray(i[o])?i[o].concat(n):[i[o],n]):i[o]=n,!s):((!E.hasOwnProp(i,o)||!E.isObject(i[o]))&&(i[o]=[]),e(r,n,i[o],a)&&E.isArray(i[o])&&(i[o]=S1(i[o])),!s)}if(E.isFormData(t)&&E.isFunction(t.entries)){const r={};return E.forEachEntry(t,(n,i)=>{e(tD(n),i,r,0)}),rD(r)}return null}const T1=Object.freeze(["get","delete","head","options","post","put","patch","purge","link","unlink","query"]),Ki=(t,e)=>t!=null&&E.hasOwnProp(t,e)?t[e]:void 0;function nD(t,e,r){if(E.isString(t))try{return(e||JSON.parse)(t),E.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}const cs={transitional:_d,adapter:["xhr","http","fetch"],transformRequest:[function(e,r){const n=r.getContentType()||"",i=n.indexOf("application/json")>-1,a=E.isObject(e);if(a&&E.isHTMLForm(e)&&(e=new FormData(e)),E.isFormData(e))return i?JSON.stringify(w1(e)):e;if(E.isArrayBuffer(e)||E.isBuffer(e)||E.isStream(e)||E.isFile(e)||E.isBlob(e)||E.isReadableStream(e))return e;if(E.isArrayBufferView(e))return e.buffer;if(E.isURLSearchParams(e))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(a){const l=Ki(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return eD(e,l).toString();if((s=E.isFileList(e))||n.indexOf("multipart/form-data")>-1){const u=Ki(this,"env"),f=u&&u.FormData;return rf(s?{"files[]":e}:e,f&&new f,l)}}return a||i?(r.setContentType("application/json",!1),nD(e)):e}],transformResponse:[function(e){const r=Ki(this,"transitional")||cs.transitional,n=r&&r.forcedJSONParsing,i=Ki(this,"responseType"),a=i==="json";if(E.isResponse(e)||E.isReadableStream(e))return e;if(e&&E.isString(e)&&(n&&!i||a)){const s=!(r&&r.silentJSONParsing)&&a;try{return JSON.parse(e,Ki(this,"parseReviver"))}catch(l){if(s)throw l.name==="SyntaxError"?V.from(l,V.ERR_BAD_RESPONSE,this,null,Ki(this,"response")):l}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ye.classes.FormData,Blob:Ye.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};E.forEach(T1,t=>{cs.headers[t]={}});function Qf(t,e){const r=this||cs,n=e||r,i=je.from(n.headers);let a=n.data;return E.forEach(t,function(s){a=s.call(r,a,i.normalize(),e?e.status:void 0)}),i.normalize(),a}function x1(t){return!!(t&&t.__CANCEL__)}let hs=class extends V{constructor(e,r,n){super(e==null?"canceled":e,V.ERR_CANCELED,r,n),this.name="CanceledError",this.__CANCEL__=!0}};function C1(t,e,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?t(r):e(new V("Request failed with status code "+r.status,r.status>=400&&r.status<500?V.ERR_BAD_REQUEST:V.ERR_BAD_RESPONSE,r.config,r.request,r))}const iD=/[\t\n\r]/g;function A1(t){if(typeof t!="string")return t;let e=0;for(;e{try{return decodeURIComponent(t)}catch(e){return t}},D1=Ye.hasStandardBrowserEnv?{write(t,e,r,n,i,a,o){if(typeof document=="undefined")return;const s=[`${t}=${encodeURIComponent(e)}`];E.isNumber(r)&&s.push(`expires=${new Date(r).toUTCString()}`),E.isString(n)&&s.push(`path=${n}`),E.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push("secure"),E.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join("; ")},read(t){if(typeof document=="undefined")return null;const e=document.cookie;if(!e)return null;const r=e.split(";");for(let n=0;n{r=c,i=null,a&&(clearTimeout(a),a=null),t(...f)};return[(...f)=>{const c=Date.now(),v=c-r;v>=n?o(f,c):(i=f,a||(a=setTimeout(()=>{a=null,o(i)},n-v)))},()=>i&&o(i),(...f)=>o(f)]}const nu=(t,e,r=3)=>{let n=0;const i=aD(50,250);return oD(a=>{if(!a||!E.isNumber(a.loaded))return;const o=a.loaded,s=a.lengthComputable?a.total:void 0,l=Math.max(0,s!=null?Math.min(o,s):o),u=Math.max(0,l-n),f=i(u);n=Math.max(n,l);const c={loaded:l,total:s,progress:s?l/s:void 0,bytes:u,rate:f||void 0,estimated:f&&s?(s-l)/f:void 0,event:a,lengthComputable:s!=null,[e?"download":"upload"]:!0};t(c)},r)},pg=(t,e)=>{const r=t!=null;return[n=>e[0]({lengthComputable:r,total:t,loaded:n}),e[1]]},gg=(t,e=E.asap)=>(...r)=>e(()=>t(...r)),sD=Ye.hasStandardBrowserEnv?(t=>e=>(e=new URL(e,document.baseURI||Ye.origin),t.protocol===e.protocol&&t.host===e.host&&t.port===e.port))(new URL(Ye.origin)):()=>!0;function lD(t){return typeof t!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function uD(t,e){if(!e)return t;let r=t.length;for(;r>0&&t.charCodeAt(r-1)===47;)r--;return t.slice(0,r)+"/"+e.replace(/^\/+/,"")}const fD=/^https?:(?!\/\/)/i;function cD(t){return t&&t.replace(/(^|&)([^=&]*=)?[^&]+/g,(e,r,n="")=>`${r}${n}${ru}`)}function hD(t){const e=t.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${ru}@`),r=e.indexOf("#"),i=(r===-1?e:e.slice(0,r)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${ru}`);return r===-1?i:`${i}#${cD(e.slice(r+1))}`}function mg(t,e){if(typeof t=="string"){const r=A1(t);if(fD.test(r))throw new V(`Invalid URL ${JSON.stringify(hD(r))}: missing "//" after protocol`,V.ERR_INVALID_URL,e)}}function E1(t,e,r,n){mg(e,n);let i=!lD(e);return t&&(i||r===!1)?(mg(t,n),uD(t,e)):e}function vD(t){const e=[{value:t}],r=new WeakSet,n=new WeakSet;for(;e.length;){const{value:i,done:a}=e.pop();if(!E.isPlainObject(i)&&!E.isArray(i))continue;if(a){r.delete(i);continue}if(r.has(i))throw new V("Circular reference detected in params",V.ERR_BAD_OPTION_VALUE);if(n.has(i))continue;n.add(i),r.add(i),e.push({value:i,done:!0});const o=Object.keys(i);Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertySymbols(i).forEach(s=>{const l=Object.getOwnPropertyDescriptor(i,s);l&&l.enumerable&&o.push(s)}),o.forEach(s=>{if(s==="__proto__"||s==="constructor"||s==="prototype"){const l=Object.getOwnPropertyDescriptor(i,s);l&&E.hasOwnProp(l,"value")&&e.push({value:l.value})}else e.push({value:i[s]})})}}const yg=t=>t instanceof je?Yn({},t):t,Fh=t=>Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(t).concat(Object.getOwnPropertySymbols(t).filter(e=>{const r=Object.getOwnPropertyDescriptor(t,e);return r&&r.enumerable})):Object.keys(t);function dD(t,e){const r=[],n=new WeakMap,i={};function a(s,l){if(!E.isPlainObject(l))return E.isArray(l)?l.slice():l;const u=E.isPlainObject(s)?s:i;let f=n.get(l);if(f||(f=new WeakMap,n.set(l,f)),f.has(u))return f.get(u);const c={};return f.set(u,c),r.push({base:u,source:l,result:c}),c}const o=E.isUndefined(e)?a(void 0,t):a(t,e);for(;r.length;){const{base:s,source:l,result:u}=r.pop(),f=new Set(Fh(s)),c=new Set(Fh(l));new Set([...f,...c]).forEach(h=>{if(h==="__proto__"||h==="constructor"||h==="prototype")return;const d=c.has(h),p=d?l[h]:void 0,m=(!d||E.isPlainObject(p))&&f.has(h)?s[h]:void 0;u[h]=d?a(m,p):a(void 0,m)})}return vD(o),o}function Nn(t,e,r,n){return E.isPlainObject(t)&&E.isPlainObject(e)?E.merge.call({caseless:n},t,e):E.isPlainObject(e)?E.merge({},e):E.isArray(e)?e.slice():e}function R1(t,e,r,n){if(E.isUndefined(e)){if(!E.isUndefined(t))return Nn(void 0,t,r,n)}else return Nn(t,e,r,n)}function ec(t,e){if(!E.isUndefined(e))return Nn(void 0,e)}function Oe(t,e){if(E.isUndefined(e)){if(!E.isUndefined(t))return Nn(void 0,t)}else return Nn(void 0,e)}function pD(t,e,r){const n=E.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!E.isUndefined(n))if(E.isPlainObject(n)){if(E.hasOwnProp(n,r))return n[r]}else return;const i=E.hasOwnProp(t,"transitional")?t.transitional:void 0;if(E.isPlainObject(i)&&E.hasOwnProp(i,r))return i[r]}function zh(t,e,r,n,i){if(E.hasOwnProp(i,r))return Nn(t,e);if(E.hasOwnProp(n,r))return Nn(void 0,t)}function gD(t,e,r){return R1(yg(t),yg(e),r,!0)}const mD=Object.freeze({__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0}),_g={url:ec,method:ec,data:ec,baseURL:Oe,transformRequest:Oe,transformResponse:Oe,params:dD,paramsSerializer:Oe,timeout:Oe,timeoutErrorMessage:Oe,withCredentials:Oe,withXSRFToken:Oe,adapter:Oe,responseType:Oe,xsrfCookieName:Oe,xsrfHeaderName:Oe,onUploadProgress:Oe,onDownloadProgress:Oe,decompress:Oe,maxContentLength:Oe,maxBodyLength:Oe,beforeRedirect:Oe,transport:Oe,httpAgent:Oe,httpsAgent:Oe,cancelToken:Oe,socketPath:Oe,allowedSocketPaths:Oe,responseEncoding:Oe,validateStatus:zh,headers:gD};function Oi(t,e){t=t||{},e=e||{};const r=Object.create(null);Object.defineProperty(r,"hasOwnProperty",mD);const n=Fh(Yn(Yn({},t),e));for(let i=0,a=n.length;i{yD.includes(n.toLowerCase())&&t.set(n,i)})}const Sg=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,r)=>String.fromCharCode(parseInt(r,16))),SD=t=>D1.read(t);function M1(t,e=SD){const r=Oi({},t),n=h=>E.hasOwnProp(r,h)?r[h]:void 0,i=n("data");let a=n("withXSRFToken");const o=n("xsrfHeaderName"),s=n("xsrfCookieName");let l=n("headers");const u=n("auth"),f=n("baseURL"),c=n("allowAbsoluteUrls"),v=n("url");if(r.headers=l=je.from(l),r.url=m1(E1(f,v,c,r),n("params"),n("paramsSerializer")),u){const h=E.getSafeProp(u,"username")||"",d=E.getSafeProp(u,"password")||"",p=n("transitional"),m=p&&E.hasOwnProp(p,"encodeBasicAuthUsername")&&p.encodeBasicAuthUsername===!0;try{l.set("Authorization","Basic "+btoa((m?Sg(h):h)+":"+(d?Sg(d):"")))}catch(g){throw V.from(g,V.ERR_BAD_OPTION_VALUE,t)}}if(E.isFormData(i)){const h=E.getSafeProp(i,"getHeaders");Ye.hasStandardBrowserEnv||Ye.hasStandardBrowserWebWorkerEnv||E.isReactNative(i)?l.setContentType(void 0):E.isFunction(h)&&_D(l,h.call(i),n("formDataHeaderPolicy"))}if(Ye.hasStandardBrowserEnv&&(E.isFunction(a)&&(a=a(r)),a===!0||a==null&&sD(r.url))){const d=o&&s&&e(s);d&&l.set(o,d)}return r}const bD=typeof XMLHttpRequest!="undefined",wD=bD&&function(t){return new Promise(function(r,n){let i;try{const C=Ye.hasStandardBrowserEnv&&typeof window!="undefined"&&window.cookieStore;i=C&&E.isFunction(C.get)}catch(C){}let a;const o=M1(t,i?C=>(a=C,null):void 0);let s=o.data;const l=je.from(o.headers).normalize();let{responseType:u,onUploadProgress:f,onDownloadProgress:c}=o,v,h,d,p,m,g,y;function _(){clearTimeout(h);try{m&&m()}catch(C){setTimeout(()=>{throw C})}try{g&&g()}catch(C){setTimeout(()=>{throw C})}S&&(p&&S.removeEventListener("progress",p),S.upload&&(d&&S.upload.removeEventListener("progress",d),m&&S.upload.removeEventListener("loadend",m))),o.cancelToken&&o.cancelToken.unsubscribe(v),o.signal&&o.signal.removeEventListener("abort",v)}let S=new XMLHttpRequest;S.open(o.method.toUpperCase(),o.url,!0),S.timeout=o.timeout;function b(C){if(!S)return;if(S.status===0&&(Jf(A1(o.url))||Jf(Ye.origin))!=="file"&&!(S.responseURL&&S.responseURL.startsWith("file:"))){n(new V("Request aborted",V.ECONNABORTED,t,S)),_(),S=null;return}try{C?y&&y(C):g&&g()}catch(P){setTimeout(()=>{throw P})}if(!S)return;const x=je.from("getAllResponseHeaders"in S&&S.getAllResponseHeaders()),D={data:!u||u==="text"||u==="json"?S.responseText:S.response,status:S.status,statusText:S.statusText,headers:x,config:t,request:S};C1(function(M){r(M),_()},function(M){n(M),_()},D),S=null}if("onloadend"in S?S.onloadend=b:S.onreadystatechange=function(){!S||S.readyState!==4||S.status===0&&!(S.responseURL&&S.responseURL.startsWith("file:"))||setTimeout(b)},S.onabort=function(){S&&(n(new V("Request aborted",V.ECONNABORTED,t,S)),_(),S=null)},S.onerror=function(x){const A=x&&x.message?x.message:"Network Error",D=new V(A,V.ERR_NETWORK,t,S);D.event=x||null,n(D),_(),S=null},S.ontimeout=function(){if(!S)return;let x=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const A=o.transitional||_d;o.timeoutErrorMessage&&(x=o.timeoutErrorMessage),n(new V(x,A.clarifyTimeoutError?V.ETIMEDOUT:V.ECONNABORTED,t,S)),_(),S=null},s===void 0&&l.setContentType(null),E.isUndefined(o.withCredentials)||(S.withCredentials=!!o.withCredentials),u&&u!=="json"&&(S.responseType=o.responseType),c&&([p,g,y]=nu(c,!0),S.addEventListener("progress",p)),f&&S.upload&&([d,m]=nu(f),S.upload.addEventListener("progress",d),S.upload.addEventListener("loadend",m)),o.cancelToken||o.signal){if(v=C=>{if(!S)return;n(!C||C.type?new hs(null,t,S):C);const x=S;_(),S=null,x.abort()},o.cancelToken&&o.cancelToken.subscribe(v),!S)return;o.signal&&(o.signal.aborted?v():o.signal.addEventListener("abort",v))}if(!S)return;const w=Jf(o.url);if(w&&!Ye.protocols.includes(w)){n(new V("Unsupported protocol "+w+":",V.ERR_BAD_REQUEST,t)),_();return}const T=()=>{S&&("setRequestHeader"in S&&E.forEach(h1(l),function(x,A){S.setRequestHeader(A,x)}),S.send(s||null))};if(a){const C=typeof performance!="undefined"&&E.isFunction(performance.now)?()=>performance.now():Date.now,x=S.timeout>0?C()+Number(S.timeout):void 0,A=()=>{if(!S)return;const D=S;D.ontimeout(),D.abort()};if(x!==void 0){const D=()=>{const P=x-C();P>0?h=setTimeout(D,Math.min(P,2147483647)):A()};D()}D1.readAsync(a).then(D=>{if(S){if(x!==void 0&&C()>=x){A();return}if(D){const P=E.hasOwnProp(o,"xsrfHeaderName")&&o.xsrfHeaderName;l.set(P,D)}T()}}).catch(D=>{S&&(n(V.from(D,null,t,S)),_(),S=null)})}else T()})},TD=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const r=new AbortController;let n=!1;const i=function(l){if(!n){n=!0,o();const u=l instanceof Error?l:this.reason;r.abort(u instanceof V?u:new hs(u instanceof Error?u.message:u))}};let a=e&&setTimeout(()=>{a=null,i(new V(`timeout of ${e}ms exceeded`,V.ETIMEDOUT))},e);const o=()=>{t&&(a&&clearTimeout(a),a=null,t.forEach(l=>{const u=E.getSafeProp(l,"unsubscribe");E.isFunction(u)?u.call(l,i):l.removeEventListener("abort",i)}),t=null)};t.forEach(l=>{if(!n){if(l.aborted){i.call(l);return}l.addEventListener("abort",i,{once:!0})}});const{signal:s}=r;return s.unsubscribe=()=>E.asap(o),s},xD=function*(t,e){let r=t.byteLength;if(r{const i=CD(t,e);let a=0,o,s=u=>{o||(o=!0,n&&n(u))};return new ReadableStream({pull(u){return ur(this,null,function*(){try{const{done:f,value:c}=yield i.next();if(f){s(),u.close();return}let v=c.byteLength;if(r){let h=a+=v;r(h)}u.enqueue(new Uint8Array(c))}catch(f){throw s(f),f}})},cancel(u){return s(u),i.return()}},{highWaterMark:2})},_n=`\r +`,wg=t=>String(t).replace(/\r\n|\r|\n/g,_n),Tg=t=>String(t).replace(/[\r\n"]/g,e=>e==="\r"?"%0D":e===` +`?"%0A":"%22"),Ja=(t,e)=>{let r=0;for(let n=0;n=55296&&i<=56319&&t.charCodeAt(n+1)>=56320&&t.charCodeAt(n+1)<=57343?(r+=4,n++):r+=3}return r};class Dl extends TypeError{constructor(e,r){super(e),this.name="FormDataError",this.reason=r}}function DD(t,e,r,n,i){if(!E.isFunction(e))throw new Dl("Blob is not supported","blob");if(!E.isString(i)||!/^[A-Za-z0-9'()+_,./:=? -]{1,70}$/.test(i)||/ $/.test(i))throw new Dl("Invalid multipart boundary","boundary");const a="--"+i+"--"+_n;let o=a.length;const s=[],l=f=>{if(o+f>r)throw n()};l(0);for(const[f,c]of t){const v=E.isString(c),h=v?Ja(c,!0):c.size;if(!Number.isFinite(h)||h<0)throw new Dl("Unsupported FormData part size","part");l(h+Ja(f,!0)+(!v&&c.name?Ja(c.name,!1):0)+(!v&&c.type?Ja(c.type,!1):0));let d="--"+i+_n+'Content-Disposition: form-data; name="'+Tg(wg(f))+'"';v||(d+='; filename="'+Tg(E.isString(c.name)?c.name:"blob")+'"'+_n+"Content-Type: "+String(c.type||"application/octet-stream").replace(/[\r\n]/g,"")),d+=_n+_n;const p=Ja(d,!1)+h+_n.length;l(p),o+=p,s.push({header:d,value:c,isString:v})}const u=[];for(const f of s)u.push(f.header,f.isString?wg(f.value):f.value,_n);return u.push(a),new e(u,{type:"multipart/form-data; boundary="+i})}function ED(t,e,r,n,i){if(!E.isFunction(e))throw new V("Blob is not supported",V.ERR_NOT_SUPPORT);if(i===void 0)if(E.isFunction(Ye.generateString))i="axios-"+Ye.generateString(36,"0123456789abcdef");else{const a=E.global.crypto;if(!a||!E.isFunction(a.getRandomValues))throw new V("Random byte generation is not supported",V.ERR_NOT_SUPPORT);const o=new Uint8Array(18);a.getRandomValues(o),i="axios-"+Array.from(o,s=>("0"+s.toString(16)).slice(-2)).join("")}try{return DD(t,e,r,n,i)}catch(a){if(a instanceof Dl){const o=a.reason==="boundary"?V.ERR_BAD_OPTION_VALUE:V.ERR_BAD_REQUEST;throw new V(a.message,o)}throw a}}const xg=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,P1=(t,e,r)=>e+2t<=57?t-48:(t&223)-55,RD=t=>t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===43||t===47||t===45||t===95,MD=t=>t===9||t===10||t===12||t===13||t===32,PD=t=>{const e=Math.floor(t/4),r=t%4;return e*3+(r===2?1:r===3?2:0)},ID=t=>{const e=t.length;let r=0;return e>0&&t.charCodeAt(e-1)===61&&(r++,e>1&&t.charCodeAt(e-2)===61&&r++),Math.floor((e-r)*3/4)},LD=t=>{const e=t.length;let r=0,n=0,i=!1;for(let a=0;a0){i=!0;continue}r++}}return i||n>2||n>0&&(r+n)%4!==0||r%4===1?ID(t):PD(r)},OD=(t,e,r)=>{if(!t||typeof t!="string"||!/^data:/i.test(t))return 0;const n=t.indexOf(",");if(n<0)return 0;const i=t.slice(5,n),a=t.slice(n+1);if(r.test(i))return e(a);let s=0;for(let l=0,u=a.length;l=55296&&f<=56319&&l+1=56320&&c<=57343?(s+=4,l++):s+=3}else s+=3}return s};function kD(t){const e=typeof t=="string"?t.indexOf("#"):-1;return OD(e===-1?t:t.slice(0,e),LD,/; *base64[\t\n\f\r ]*$/i)}const bd="1.21.0",Ag=64*1024,Dg={cache:"default",redirect:"follow",referrer:"about:client",referrerPolicy:"",mode:"cors",integrity:"",keepalive:!1,priority:"auto",window:null},{isFunction:Ms}=E,ND=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,r)=>String.fromCharCode(parseInt(r,16))),Eg=t=>{if(!E.isString(t))return t;try{return decodeURIComponent(t)}catch(e){return t}},Ps=(t,...e)=>{try{return!!t(...e)}catch(r){return!1}},BD=t=>{const e=t.indexOf("://");let r=t;return e!==-1&&(r=r.slice(e+3)),r.includes("@")||r.includes(":")},FD=t=>{const e=E.global!==void 0&&E.global!==null?E.global:globalThis,{ReadableStream:r,TextEncoder:n}=e;t=E.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response,Blob:e.Blob},t);const i=E.hasOwnProp(t,"fetch")?t.fetch:void 0,{Request:a,Response:o,Blob:s}=t,l=i?Ms(i):typeof fetch=="function",u=Ms(a),f=Ms(o);if(!l)return!1;const c=l&&Ms(r),v=l&&(typeof n=="function"?(_=>S=>_.encode(S))(new n):_=>ur(null,null,function*(){return new Uint8Array(yield new a(_).arrayBuffer())})),h=u&&c&&Ps(()=>{let _=!1;const S=new a(Ye.origin,{body:new r,method:"POST",get duplex(){return _=!0,"half"}}),b=S.headers.has("Content-Type");return S.body!=null&&S.body.cancel(),_&&!b}),d=f&&c&&Ps(()=>E.isReadableStream(new o("").body)),p=Object.assign(Object.create(null),Dg);u&&!Ps(()=>new a(Ye.origin,p))&&(delete p.cache,Ps(()=>new a(Ye.origin,p))||(p.cache=Dg.cache));const m={stream:d&&(_=>_.body)};l&&["text","arrayBuffer","blob","formData","stream"].forEach(_=>{!m[_]&&(m[_]=(S,b)=>{let w=S&&S[_];if(w)return w.call(S);throw new V(`Response type '${_}' is not supported`,V.ERR_NOT_SUPPORT,b)})});const g=_=>ur(null,null,function*(){if(_==null)return 0;if(E.isBlob(_))return _.size;if(E.isArrayBufferView(_)||E.isArrayBuffer(_))return _.byteLength;if(E.isURLSearchParams(_)&&(_=_+""),E.isString(_))return(yield v(_)).byteLength}),y=(_,S)=>ur(null,null,function*(){const b=E.toFiniteNumber(_.getContentLength());return b==null?g(S):b});return _=>ur(null,null,function*(){let{url:S,method:b,data:w,signal:T,cancelToken:C,timeout:x,onDownloadProgress:A,onUploadProgress:D,responseType:P,headers:M,withCredentials:I="same-origin",fetchOptions:k,maxContentLength:O,maxBodyLength:N,maxRedirects:U}=M1(_);const W=E.isNumber(O)&&O>-1,X=E.isNumber(N)&&N>-1,Q=F=>E.hasOwnProp(_,F)?_[F]:void 0;let J=i||fetch;P=P?(P+"").toLowerCase():"text";let j=TD([T,C&&C.toAbortSignal()],x),z=null;const re=j&&j.unsubscribe&&(()=>{j.unsubscribe()});let se,L=null,Y=null;const B=()=>new V("Request body larger than maxBodyLength limit",V.ERR_BAD_REQUEST,_,z);try{let F;const H=Q("auth");if(H){const pe=E.getSafeProp(H,"username")||"",st=E.getSafeProp(H,"password")||"";F={username:pe,password:st}}let Z;if(BD(S)){if(Z=new URL(S,Ye.origin),!F&&(Z.username||Z.password)){const pe=Eg(Z.username),st=Eg(Z.password);F={username:pe,password:st}}(Z.username||Z.password)&&(Z.username="",Z.password="",S=Z.href)}if(F&&(M.delete("authorization"),M.set("Authorization","Basic "+btoa(ND((F.username||"")+":"+(F.password||""))))),W&&Z&&Z.protocol==="data:"&&kD(Z.href)>O)throw new V("maxContentLength size of "+O+" exceeded",V.ERR_BAD_RESPONSE,_,z);const ue=E.isSpecCompliantForm(w)&&je.from(Q("headers")).getContentType();let ee;if(E.isString(ue)&&/^multipart\/form-data(?:\s*;|$)/i.test(ue.trim())){const pe=je.parseParameters(ue);E.hasOwnProp(pe,"boundary")&&(ee=pe.boundary)}if(E.isSpecCompliantForm(w)&&b!=="get"&&b!=="head"&&(X||D&&h||ee!==void 0)&&(w=ED(w,s,X?N:1/0,B,ee),M.setContentType(ee===void 0?w.type:ue),se=w.size),X&&b!=="get"&&b!=="head"){const pe=yield g(w);if(typeof pe=="number"&&isFinite(pe)&&(se=pe,pe>N))throw B()}const ye=X&&(E.isReadableStream(w)||E.isStream(w)),Qe=(pe,st,ji)=>bg(pe,Ag,Wn=>{if(X&&Wn>N)throw L=B();st&&st(Wn)},ji);if(h&&b!=="get"&&b!=="head"&&(D||ye)){if(se=se==null?yield y(M,w):se,se!==0||ye){let pe=new a(S,{method:"POST",body:w,duplex:"half"}),st;if(E.isFormData(w)&&(st=pe.headers.get("content-type"))&&M.setContentType(st),pe.body){const[ji,Wn]=D&&pg(se,nu(gg(D)))||[];w=Qe(pe.body,ji,Wn)}}}else if(ye&&!u&&c&&b!=="get"&&b!=="head")w=Qe(w);else if(ye&&u&&!h&&b!=="get"&&b!=="head")throw new V("Stream request bodies are not supported by the current fetch implementation",V.ERR_NOT_SUPPORT,_,z);E.isString(I)||(I=I?"include":"omit");const ke=u&&"credentials"in a.prototype;if(E.isFormData(w)){const pe=M.getContentType();pe&&/^multipart\/form-data/i.test(pe)&&!/boundary=/i.test(pe)&&M.delete("content-type")}M.set("User-Agent","axios/"+bd,!1);const Ot=k==null?k:Object.assign(Object.create(null),k);Ot&&(delete Ot.body,delete Ot.headers,delete Ot.method,delete Ot.signal,delete Ot.duplex,delete Ot.credentials);const ot=Object.assign(Object.create(null),Ot,{signal:j,method:b.toUpperCase(),headers:h1(M.normalize()),body:w,duplex:"half",credentials:ke?I:void 0});u&&(E.forEach(p,(pe,st)=>{ot[st]===void 0&&(ot[st]=pe)}),ot.signal===void 0&&(ot.signal=null),ot.body===void 0&&(ot.body=null)),U===0&&(ot.redirect="manual",Ot&&(Ot.redirect="manual")),z=u&&new a(S,ot);let lr=yield u?J(z,Ot):J(S,ot);const qi=je.from(lr.headers);if(W){const pe=E.toFiniteNumber(qi.getContentLength());if(pe!=null&&pe>O)throw new V("maxContentLength size of "+O+" exceeded",V.ERR_BAD_RESPONSE,_,z)}const Gn=d&&(P==="stream"||P==="response");if(d&&lr.body&&(A||W||Gn&&re)){const pe={};["status","statusText","headers"].forEach(ja=>{pe[ja]=lr[ja]});const st=E.toFiniteNumber(qi.getContentLength()),[ji,Wn]=A&&pg(st,nu(gg(A),!0))||[];let tg=0;const lC=ja=>{if(W&&(tg=ja,tg>O))throw Y=new V("maxContentLength size of "+O+" exceeded",V.ERR_BAD_RESPONSE,_,z);ji&&ji(ja)};lr=new o(bg(lr.body,Ag,lC,()=>{Wn&&Wn(),re&&re()}),pe)}P=P||"text";let Gr=yield m[E.findKey(m,P)||"text"](lr,_);if(W&&!d&&!Gn){let pe;if(Gr!=null&&(typeof Gr.byteLength=="number"?pe=Gr.byteLength:typeof Gr.size=="number"?pe=Gr.size:typeof Gr=="string"&&(pe=typeof n=="function"?new n().encode(Gr).byteLength:Gr.length)),typeof pe=="number"&&pe>O)throw new V("maxContentLength size of "+O+" exceeded",V.ERR_BAD_RESPONSE,_,z)}return!Gn&&re&&re(),yield new Promise((pe,st)=>{C1(pe,st,{data:Gr,headers:je.from(lr.headers),status:lr.status,statusText:lr.statusText,config:_,request:z})})}catch(F){if(re&&re(),j&&j.aborted&&j.reason instanceof V){const H=j.reason;throw H.config=_,z&&(H.request=z),F!==H&&Object.defineProperty(H,"cause",{__proto__:null,value:F,writable:!0,enumerable:!1,configurable:!0}),H}if(L)throw z&&!L.request&&(L.request=z),L;if(Y)throw Y;if(F instanceof V)throw z&&!F.request&&(F.request=z),F;if(F&&F.name==="TypeError"&&/Load failed|fetch/i.test(F.message)){const H=new V("Network Error",V.ERR_NETWORK,_,z,F&&F.response);throw Object.defineProperty(H,"cause",{__proto__:null,value:F.cause||F,writable:!0,enumerable:!1,configurable:!0}),H}throw V.from(F,F&&F.code,_,z,F&&F.response)}})},zD=new Map,I1=t=>{const e=Object.create(null),r=t&&E.hasOwnProp(t,"env")&&t.env;["fetch","Request","Response","Blob"].forEach(h=>{r&&E.hasOwnProp(r,h)&&(e[h]=r[h])});const{fetch:n,Request:i,Response:a,Blob:o}=e,s=[i,a,n,o];let l=s.length,u=l,f,c,v=zD;for(;u--;)f=s[u],c=v.get(f),c===void 0&&v.set(f,c=u?new Map:FD(e)),v=c;return c};I1();const wd={http:UA,xhr:wD,fetch:{get:I1}};E.forEach(wd,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch(r){}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const Rg=t=>`- ${t}`,HD=t=>E.isFunction(t)||t===null||t===!1;function UD(t,e){t=E.isArray(t)?t:[t];const{length:r}=t;let n,i;const a={};for(let o=0;o`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let s=r?o.length>1?`since : +`+o.map(Rg).join(` +`):" "+Rg(o[0]):"as no adapter specified";throw new V("There is no suitable adapter to dispatch the request "+s,V.ERR_NOT_SUPPORT)}return i}const L1={getAdapter:UD,adapters:wd};function tc(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new hs(null,t)}function Mg(t){return Math.max(0,Date.now()-t)}function rc(t){const e=E.toSafeFlatObject(t);tc(e),e.headers=je.from(E.getSafeProp(e,"headers")),e.data=Qf.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1);const r=L1.getAdapter(e.adapter||cs.adapter,e),n=Date.now();return r(e).then(function(a){tc(e),a.duration=Mg(n),e.response=a;try{a.data=Qf.call(e,e.transformResponse,a)}finally{delete e.response}return a.headers=je.from(a.headers),a},function(a){if(!x1(a)&&(tc(e),a&&a.response)){a.response.duration=Mg(n),e.response=a.response;try{a.response.data=Qf.call(e,e.transformResponse,a.response)}finally{delete e.response}a.response.headers=je.from(a.response.headers)}return Promise.reject(a)})}const nf={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{nf[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const Pg={};nf.transitional=function(e,r,n){function i(a,o){return"[Axios v"+bd+"] Transitional option '"+a+"'"+o+(n?". "+n:"")}return(a,o,s)=>{if(e===!1)throw new V(i(o," has been removed"+(r?" in "+r:"")),V.ERR_DEPRECATED);return r&&!Pg[o]&&(Pg[o]=!0,console.warn(i(o," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(a,o,s):!0}};nf.spelling=function(e){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function VD(t,e,r){if(typeof t!="object"||t===null)throw new V("options must be an object",V.ERR_BAD_OPTION_VALUE);const n=Object.keys(t);let i=n.length;for(;i-- >0;){const a=n[i],o=Object.prototype.hasOwnProperty.call(e,a)?e[a]:void 0;if(o){const s=t[a],l=s===void 0||o(s,a,t);if(l!==!0)throw new V("option "+a+" must be "+l,V.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new V("Unknown option "+a,V.ERR_BAD_OPTION)}}const El={assertOptions:VD,validators:nf},Je=El.validators,nc=t=>{if(t==null||E.isPlainObject(t)||t instanceof je)return!0;try{return E.isObject(t)&&E.getSafeProp(t,Symbol.toStringTag)==="AxiosHeaders"&&["toJSON","set","get","has","delete","clear","normalize","concat","toString",Symbol.iterator].every(e=>E.isFunction(E.getSafeProp(t,e)))}catch(e){return!1}};let Ci=class{constructor(e){this.defaults=e||{},this.interceptors={request:new hg,response:new hg}}request(e,r){return ur(this,null,function*(){try{return yield this._request(e,r)}catch(n){if(n instanceof Error)try{let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const a=i.stack;let o="";if(typeof a=="string"){const s=a.indexOf(` +`);o=s===-1?"":a.slice(s+1)}if(!n.stack)n.stack=o;else if(o){const s=o.indexOf(` +`),l=s===-1?-1:o.indexOf(` +`,s+1),u=l===-1?o:o.slice(l+1),f=String(n.stack),c=zA(n,f),v=c===-1?f:f.slice(0,c),h=c===-1?"":f.slice(c);v.endsWith(u)||(n.stack=v+` +`+o+h)}}catch(i){}throw n}})}_request(e,r){typeof e=="string"?(r=r||{},r.url=e):r=e||{},r=Oi(this.defaults,r);const{transitional:n,paramsSerializer:i,headers:a}=r;n!==void 0&&El.assertOptions(n,{silentJSONParsing:Je.transitional(Je.boolean),forcedJSONParsing:Je.transitional(Je.boolean),clarifyTimeoutError:Je.transitional(Je.boolean),legacyInterceptorReqResOrdering:Je.transitional(Je.boolean),advertiseZstdAcceptEncoding:Je.transitional(Je.boolean),validateStatusUndefinedResolves:Je.transitional(Je.boolean),encodeBasicAuthUsername:Je.transitional(Je.boolean)},!1),i!=null&&(E.isFunction(i)?r.paramsSerializer={serialize:i}:El.assertOptions(i,{encode:Je.function,serialize:Je.function},!0)),r.allowAbsoluteUrls!==void 0||(E.hasOwnProp(this.defaults,"allowAbsoluteUrls")&&this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),El.assertOptions(r,{baseUrl:Je.spelling("baseURL"),withXsrfToken:Je.spelling("withXSRFToken")},!0),r.method=(E.getSafeProp(r,"method")||E.getSafeProp(this.defaults,"method")||"get").toLowerCase();const o=E.getSafeProp(a,"common"),s=E.getSafeProp(a,r.method),l=a&&E.merge(nc(o)?o:void 0,nc(s)?s:void 0);a&&E.forEach(T1.concat("common"),m=>{nc(E.getSafeProp(a,m))&&delete a[m]}),r.headers=je.concat(l,a);const u=[];let f=!0;this.interceptors.request.forEach(function(g){if(typeof g.runWhen=="function"&&g.runWhen(r)===!1)return;f=f&&g.synchronous;const y=r.transitional||_d;y&&y.legacyInterceptorReqResOrdering?u.unshift(g.fulfilled,g.rejected):u.push(g.fulfilled,g.rejected)});const c=[];this.interceptors.response.forEach(function(g){c.push(g.fulfilled,g.rejected)});let v,h=0,d;if(!f){const m=[rc.bind(this),void 0];for(m.unshift(...u),m.push(...c),d=m.length,v=Promise.resolve(r);hrc.call(this,p)))}catch(_){v=Promise.reject(_)}break}}if(!v)try{v=rc.call(this,p)}catch(m){v=Promise.reject(m)}for(h=0,d=c.length;h{if(!n._listeners)return;let a=n._listeners.length;for(;a-- >0;)n._listeners[a](i);n._listeners=null}),this.promise.then=i=>{let a;const o=new Promise(s=>{n.subscribe(s),a=s}).then(i);return o.cancel=function(){n.unsubscribe(a)},o},e(function(a,o,s){n.reason||(n.reason=new hs(a,o,s),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const r=this._listeners.indexOf(e);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const e=new AbortController,r=n=>{e.abort(n)};return this.subscribe(r),e.signal.unsubscribe=()=>this.unsubscribe(r),e.signal}static source(){let e;return{token:new O1(function(i){e=i}),cancel:e}}};function WD(t){return function(r){return t.apply(null,r)}}function YD(t){return E.isObject(t)&&t.isAxiosError===!0}const Rl={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Rl).forEach(([t,e])=>{Rl[e]===void 0&&(Rl[e]=t)});function k1(t){const e=new Ci(t),r=i1(Ci.prototype.request,e);return E.extend(r,Ci.prototype,e,{allOwnKeys:!0}),E.extend(r,e,null,{allOwnKeys:!0}),r.create=function(i){return k1(Oi(t,i))},r}const $e=k1(cs);$e.Axios=Ci;$e.CanceledError=hs;$e.CancelToken=GD;$e.isCancel=x1;$e.VERSION=bd;$e.toFormData=rf;$e.AxiosError=V;$e.Cancel=$e.CanceledError;$e.all=function(e){return Promise.all(e)};$e.spread=WD;$e.isAxiosError=YD;$e.mergeConfig=Oi;$e.AxiosHeaders=je;$e.formToJSON=t=>w1(E.isHTMLForm(t)?new FormData(t):t);$e.getAdapter=L1.getAdapter;$e.HttpStatusCode=Rl;$e.default=$e;const{Axios:oH,AxiosError:sH,CanceledError:lH,isCancel:uH,CancelToken:fH,VERSION:cH,all:hH,Cancel:vH,isAxiosError:dH,spread:pH,toFormData:gH,AxiosHeaders:mH,HttpStatusCode:yH,formToJSON:_H,getAdapter:SH,mergeConfig:bH,create:wH}=$e;var iu=function(){return iu=Object.assign||function(e){for(var r,n=1,i=arguments.length;n":">",'"':""","'":"'"};function v(d,p){for(var m=p.split($D).filter(function(g){return g});m.length;)d=d[m.shift()];return d}function h(d,p,m){try{f=v(d,p)}catch(y){}if(f==null){if(m)return h(m.ctx,p,m.parent);console.warn("Cannot evaluate expression: ".concat(p)),f=p}var g=f.toString();return n?g:g.replace(/[&<>"']/g,function(y){return c[y]})}return h(r,u,i)});return o}};vs.INTERPOLATION_RE=N1;vs.INTERPOLATION_PREFIX="%{";var Ig={getTranslationIndex:function(t,e){switch(e=Number(e),e=typeof e=="number"&&isNaN(e)?1:e,t.length>2&&t!=="pt_BR"&&(t=t.split("_")[0]),t){case"ay":case"bo":case"cgg":case"dz":case"fa":case"id":case"ja":case"jbo":case"ka":case"kk":case"km":case"ko":case"ky":case"lo":case"ms":case"my":case"sah":case"su":case"th":case"tt":case"ug":case"vi":case"wo":case"zh":return 0;case"is":return e%10!==1||e%100===11?1:0;case"jv":return e!==0?1:0;case"mk":return e===1||e%10===1?0:1;case"ach":case"ak":case"am":case"arn":case"br":case"fil":case"fr":case"gun":case"ln":case"mfe":case"mg":case"mi":case"oc":case"pt_BR":case"tg":case"ti":case"tr":case"uz":case"wa":return e>1?1:0;case"lv":return e%10===1&&e%100!==11?0:e!==0?1:2;case"lt":return e%10===1&&e%100!==11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2;case"be":case"bs":case"hr":case"ru":case"sr":case"uk":return e%10===1&&e%100!==11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"mnk":return e===0?0:e===1?1:2;case"ro":return e===1?0:e===0||e%100>0&&e%100<20?1:2;case"pl":return e===1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"cs":case"sk":return e===1?0:e>=2&&e<=4?1:2;case"csb":return e===1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"sl":return e%100===1?0:e%100===2?1:e%100===3||e%100===4?2:3;case"mt":return e===1?0:e===0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3;case"gd":return e===1||e===11?0:e===2||e===12?1:e>2&&e<20?2:3;case"cy":return e===1?0:e===2?1:e!==8&&e!==11?2:3;case"kw":return e===1?0:e===2?1:e===3?2:3;case"ga":return e===1?0:e===2?1:e>2&&e<7?2:e>6&&e<11?3:4;case"ar":return e===0?0:e===1?1:e===2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5;default:return e!==1?1:0}}},Td=function(t){return{getTranslation:function(e,r,n,i,a,o,s){r===void 0&&(r=1),n===void 0&&(n=null),i===void 0&&(i=null),s===void 0&&(s=!1),a===void 0&&(a=t.current);var l=function(g,y){return y?t.interpolate(g,y,s):g};if(e=e.trim(),!e)return"";var u=a?t.silent||t.muted.indexOf(a)!==-1:!1,f=i&&Ig.getTranslationIndex(a,r)>0?i:e,c=t.translations,v=c[a]||c[a.split("_")[0]];if(!v)return u||console.warn("No translations found for ".concat(a)),l(f,o);var h=function(g){var y=Ig.getTranslationIndex(a,r);if(g.length===1&&r===1&&(y=0),!g[y])throw new Error(e+" "+y+" "+t.current+" "+r);return l(g[y],o)},d=function(){if(!u){var g="Untranslated ".concat(a," key found: ").concat(e);n&&(g+=" (with context: ".concat(n,")")),console.warn(g)}return l(f,o)},p=function(g,y){if(y===void 0&&(y=null),g instanceof Object){if(Array.isArray(g))return h(g);var _=y!=null?y:"",S=g[_];return p(S)}return y||!g?d():l(g,o)},m=v[e];return p(m,n)},gettext:function(e,r,n){return n===void 0&&(n=!1),this.getTranslation(e,void 0,void 0,void 0,void 0,r,n)},pgettext:function(e,r,n,i){return i===void 0&&(i=!1),this.getTranslation(r,1,e,void 0,void 0,n,i)},ngettext:function(e,r,n,i,a){return a===void 0&&(a=!1),this.getTranslation(e,n,null,r,void 0,i,a)},npgettext:function(e,r,n,i,a,o){return o===void 0&&(o=!1),this.getTranslation(r,i,e,n,void 0,a,o)}}},Hh=Symbol("GETTEXT");function qD(t){return t.replace(/\r?\n|\r/,"").replace(/\s\s+/g," ").trim()}function Lg(t){var e={};return Object.keys(t).forEach(function(r){var n=t[r],i={};Object.keys(n).forEach(function(a){i[qD(a)]=n[a]}),e[r]=i}),e}var jD=function(){var t=yr(Hh,null);if(!t)throw new Error("Failed to inject gettext. Make sure vue3-gettext is set up properly.");return t},Og=hd({name:"translate",props:{tag:{type:String,default:"span"},translateN:{type:Number,default:null},translatePlural:{type:String,default:null},translateContext:{type:String,default:null},translateParams:{type:Object,default:null},translateComment:{type:String,default:null}},setup:function(t,e){var r,n,i,a=t.translateN!==void 0&&t.translatePlural!==void 0;if(!a&&(t.translateN||t.translatePlural))throw new Error("`translate-n` and `translate-plural` attributes must be used together: ".concat((i=(n=(r=e.slots).default)===null||n===void 0?void 0:n.call(r)[0])===null||i===void 0?void 0:i.children,"."));var o=Pa(),s=jD(),l=Pa(null);vC(function(){!l.value&&o.value&&(l.value=o.value.innerHTML.trim())});var u=Bt(function(){var f,c=Td(s).getTranslation(l.value,t.translateN,t.translateContext,a?t.translatePlural:null,s.current);return vs(s)(c,t.translateParams,void 0,(f=dC())===null||f===void 0?void 0:f.parent)});return function(){return l.value?eu(t.tag,{ref:o,innerHTML:u.value}):eu(t.tag,{ref:o},e.slots.default?e.slots.default():"")}}}),ZD=function(t,e,r,n){var i,a=n.props||{},o=e.dataset.msgid,s=a["translate-context"],l=a["translate-n"],u=a["translate-plural"],f=l!==void 0&&u!==void 0,c=a["render-html"]==="true";if(!f&&(l||u))throw new Error("`translate-n` and `translate-plural` attributes must be used together:"+o+".");!t.silent&&a["translate-params"]&&console.warn("`translate-params` is required as an expression for v-translate directive. Please change to `v-translate='params'`: ".concat(o));var v=Td(t).getTranslation(o,l,s,f?u:null,t.current),h=Object.assign((i=r.instance)!==null&&i!==void 0?i:{},r.value),d=vs(t)(v,h,c,null);e.innerHTML=d};function kg(t){var e=function(r,n,i){r.dataset.currentLanguage=t.current,ZD(t,r,n,i)};return{beforeMount:function(r,n,i){r.dataset.msgid||(r.dataset.msgid=r.innerHTML),dd(t,function(){e(r,n,i)}),e(r,n,i)},updated:function(r,n,i){e(r,n,i)}}}var Ng={availableLanguages:{en:"English"},defaultLanguage:"en",mutedLanguages:[],silent:!1,translations:{},setGlobalProperties:!0,provideDirective:!0,provideComponent:!0};function TH(t){t===void 0&&(t={}),Object.keys(t).forEach(function(o){if(Object.keys(Ng).indexOf(o)===-1)throw new Error("".concat(o," is an invalid option for the translate plugin."))});var e=iu(iu({},Ng),t),r=Pa(Lg(e.translations)),n=vd({available:e.availableLanguages,muted:e.mutedLanguages,silent:e.silent,translations:Bt({get:function(){return r.value},set:function(o){r.value=Lg(o)}}),current:e.defaultLanguage,install:function(o){if(o[Hh]=n,o.provide(Hh,n),e.setGlobalProperties){var s=o.config.globalProperties;s.$gettext=n.$gettext,s.$pgettext=n.$pgettext,s.$ngettext=n.$ngettext,s.$npgettext=n.$npgettext,s.$gettextInterpolate=n.interpolate,s.$language=n}e.provideDirective&&o.directive("translate",kg(n)),e.provideComponent&&o.component("translate",Og)}}),i=Td(n),a=vs(n);return n.$gettext=i.gettext.bind(i),n.$pgettext=i.pgettext.bind(i),n.$ngettext=i.ngettext.bind(i),n.$npgettext=i.npgettext.bind(i),n.interpolate=a.bind(a),n.directive=kg(n),n.component=Og,n}let B1;const af=t=>B1=t,F1=Symbol();function Uh(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var Po;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(Po||(Po={}));function xH(){const t=e1(!0),e=t.run(()=>Pa({}));let r=[],n=[];const i=t1({install(a){af(i),i._a=a,a.provide(F1,i),a.config.globalProperties.$pinia=i,n.forEach(o=>r.push(o)),n=[]},use(a){return this._a?r.push(a):n.push(a),this},_p:r,_a:null,_e:t,_s:new Map,state:e});return i}const z1=()=>{};function Bg(t,e,r,n=z1){t.push(e);const i=()=>{const a=t.indexOf(e);a>-1&&(t.splice(a,1),n())};return!r&&mC()&&yC(i),i}function Qi(t,...e){t.slice().forEach(r=>{r(...e)})}const KD=t=>t(),Fg=Symbol(),ic=Symbol();function Vh(t,e){t instanceof Map&&e instanceof Map?e.forEach((r,n)=>t.set(n,r)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const r in e){if(!e.hasOwnProperty(r))continue;const n=e[r],i=t[r];Uh(i)&&Uh(n)&&t.hasOwnProperty(r)&&!tu(n)&&!r1(n)?t[r]=Vh(i,n):t[r]=n}return t}const QD=Symbol();function JD(t){return!Uh(t)||!t.hasOwnProperty(QD)}const{assign:Sn}=Object;function eE(t){return!!(tu(t)&&t.effect)}function tE(t,e,r,n){const{state:i,actions:a,getters:o}=e,s=r.state.value[t];let l;function u(){s||(r.state.value[t]=i?i():{});const f=_C(r.state.value[t]);return Sn(f,a,Object.keys(o||{}).reduce((c,v)=>(c[v]=t1(Bt(()=>{af(r);const h=r._s.get(t);return o[v].call(h,h)})),c),{}))}return l=H1(t,u,e,r,n,!0),l}function H1(t,e,r={},n,i,a){let o;const s=Sn({actions:{}},r),l={deep:!0};let u,f,c=[],v=[],h;const d=n.state.value[t];!a&&!d&&(n.state.value[t]={}),Pa({});let p;function m(C){let x;u=f=!1,typeof C=="function"?(C(n.state.value[t]),x={type:Po.patchFunction,storeId:t,events:h}):(Vh(n.state.value[t],C),x={type:Po.patchObject,payload:C,storeId:t,events:h});const A=p=Symbol();n1().then(()=>{p===A&&(u=!0)}),f=!0,Qi(c,x,n.state.value[t])}const g=a?function(){const{state:x}=r,A=x?x():{};this.$patch(D=>{Sn(D,A)})}:z1;function y(){o.stop(),c=[],v=[],n._s.delete(t)}const _=(C,x="")=>{if(Fg in C)return C[ic]=x,C;const A=function(){af(n);const D=Array.from(arguments),P=[],M=[];function I(N){P.push(N)}function k(N){M.push(N)}Qi(v,{args:D,name:A[ic],store:b,after:I,onError:k});let O;try{O=C.apply(this&&this.$id===t?this:b,D)}catch(N){throw Qi(M,N),N}return O instanceof Promise?O.then(N=>(Qi(P,N),N)).catch(N=>(Qi(M,N),Promise.reject(N))):(Qi(P,O),O)};return A[Fg]=!0,A[ic]=x,A},S={_p:n,$id:t,$onAction:Bg.bind(null,v),$patch:m,$reset:g,$subscribe(C,x={}){const A=Bg(c,C,x.detached,()=>D()),D=o.run(()=>dd(()=>n.state.value[t],P=>{(x.flush==="sync"?f:u)&&C({storeId:t,type:Po.direct,events:h},P)},Sn({},l,x)));return A},$dispose:y},b=vd(S);n._s.set(t,b);const T=(n._a&&n._a.runWithContext||KD)(()=>n._e.run(()=>(o=e1()).run(()=>e({action:_}))));for(const C in T){const x=T[C];if(tu(x)&&!eE(x)||r1(x))a||(d&&JD(x)&&(tu(x)?x.value=d[C]:Vh(x,d[C])),n.state.value[t][C]=x);else if(typeof x=="function"){const A=_(x,C);T[C]=A,s.actions[C]=x}}return Sn(b,T),Sn(gC(b),T),Object.defineProperty(b,"$state",{get:()=>n.state.value[t],set:C=>{m(x=>{Sn(x,C)})}}),n._p.forEach(C=>{Sn(b,o.run(()=>C({store:b,app:n._a,pinia:n,options:s})))}),d&&a&&r.hydrate&&r.hydrate(b.$state,d),u=!0,f=!0,b}function CH(t,e,r){let n,i;const a=typeof e=="function";typeof t=="string"?(n=t,i=a?r:e):(i=t,n=t.id);function o(s,l){const u=pC();return s=s||(u?yr(F1,null):null),s&&af(s),s=B1,s._s.has(n)||(a?H1(n,e,i,s):tE(n,i,s)),s._s.get(n)}return o.$id=n,o}const pa=typeof document!="undefined";function U1(t){return typeof t=="object"||"displayName"in t||"props"in t||"__vccOpts"in t}function rE(t){return t.__esModule||t[Symbol.toStringTag]==="Module"||t.default&&U1(t.default)}const Ce=Object.assign;function ac(t,e){const r={};for(const n in e){const i=e[n];r[n]=_r(i)?i.map(t):t(i)}return r}const Io=()=>{},_r=Array.isArray;function zg(t,e){const r={};for(const n in t)r[n]=n in e?e[n]:t[n];return r}const V1=/#/g,nE=/&/g,iE=/\//g,aE=/=/g,oE=/\?/g,G1=/\+/g,sE=/%5B/g,lE=/%5D/g,W1=/%5E/g,uE=/%60/g,Y1=/%7B/g,fE=/%7C/g,$1=/%7D/g,cE=/%20/g;function xd(t){return t==null?"":encodeURI(""+t).replace(fE,"|").replace(sE,"[").replace(lE,"]")}function hE(t){return xd(t).replace(Y1,"{").replace($1,"}").replace(W1,"^")}function Gh(t){return xd(t).replace(G1,"%2B").replace(cE,"+").replace(V1,"%23").replace(nE,"%26").replace(uE,"`").replace(Y1,"{").replace($1,"}").replace(W1,"^")}function vE(t){return Gh(t).replace(aE,"%3D")}function dE(t){return xd(t).replace(V1,"%23").replace(oE,"%3F")}function pE(t){return dE(t).replace(iE,"%2F")}function Go(t){if(t==null)return null;try{return decodeURIComponent(""+t)}catch(e){}return""+t}const gE=/\/$/,mE=t=>t.replace(gE,"");function oc(t,e,r="/"){let n,i={},a="",o="";const s=e.indexOf("#");let l=e.indexOf("?");return l=s>=0&&l>s?-1:l,l>=0&&(n=e.slice(0,l),a=e.slice(l,s>0?s:e.length),i=t(a.slice(1))),s>=0&&(n=n||e.slice(0,s),o=e.slice(s,e.length)),n=bE(n!=null?n:e,r),{fullPath:n+a+o,path:n,query:i,hash:Go(o)}}function yE(t,e){const r=e.query?t(e.query):"";return e.path+(r&&"?")+r+(e.hash||"")}function Hg(t,e){return!e||!t.toLowerCase().startsWith(e.toLowerCase())?t:t.slice(e.length)||"/"}function _E(t,e,r){const n=e.matched.length-1,i=r.matched.length-1;return n>-1&&n===i&&Ia(e.matched[n],r.matched[i])&&X1(e.params,r.params)&&t(e.query)===t(r.query)&&e.hash===r.hash}function Ia(t,e){return(t.aliasOf||t)===(e.aliasOf||e)}function X1(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(var r in t)if(!SE(t[r],e[r]))return!1;return!0}function SE(t,e){return _r(t)?Ug(t,e):_r(e)?Ug(e,t):(t==null?void 0:t.valueOf())===(e==null?void 0:e.valueOf())}function Ug(t,e){return _r(e)?t.length===e.length&&t.every((r,n)=>r===e[n]):t.length===1&&t[0]===e}function bE(t,e){if(t.startsWith("/"))return t;if(!t)return e;const r=e.split("/"),n=t.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).join("/")}const cn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Wh=(function(t){return t.pop="pop",t.push="push",t})({}),sc=(function(t){return t.back="back",t.forward="forward",t.unknown="",t})({});function wE(t){if(!t)if(pa){const e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^\w+:\/\/[^\/]+/,"")}else t="/";return t[0]!=="/"&&t[0]!=="#"&&(t="/"+t),mE(t)}const TE=/^[^#]+#/;function xE(t,e){return t.replace(TE,"#")+e}function CE(t,e){const r=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{behavior:e.behavior,left:n.left-r.left-(e.left||0),top:n.top-r.top-(e.top||0)}}const of=()=>({left:window.scrollX,top:window.scrollY});function AE(t){let e;if("el"in t){const r=t.el,n=typeof r=="string"&&r.startsWith("#"),i=typeof r=="string"?n?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!i)return;e=CE(i,t)}else e=t;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function Vg(t,e){return(history.state?history.state.position-e:-1)+t}const Yh=new Map;function DE(t,e){Yh.set(t,e)}function EE(t){const e=Yh.get(t);return Yh.delete(t),e}function RE(t){return typeof t=="string"||t&&typeof t=="object"}function q1(t){return typeof t=="string"||typeof t=="symbol"}let Be=(function(t){return t[t.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",t[t.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",t[t.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",t[t.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",t[t.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",t})({});const j1=Symbol("");Be.MATCHER_NOT_FOUND+"",Be.NAVIGATION_GUARD_REDIRECT+"",Be.NAVIGATION_ABORTED+"",Be.NAVIGATION_CANCELLED+"",Be.NAVIGATION_DUPLICATED+"";function La(t,e){return Ce(new Error,{type:t,[j1]:!0},e)}function Wr(t,e){return t instanceof Error&&j1 in t&&(e==null||!!(t.type&e))}const ME=["params","query","hash"];function PE(t){if(typeof t=="string")return t;if(t.path!=null)return t.path;const e={};for(const r of ME)r in t&&(e[r]=t[r]);return JSON.stringify(e,null,2)}function IE(t){const e={};if(t===""||t==="?")return e;const r=(t[0]==="?"?t.slice(1):t).split("&");for(let n=0;ni&&Gh(i)):[n&&Gh(n)]).forEach(i=>{i!==void 0&&(e+=(e.length?"&":"")+r,i!=null&&(e+="="+i))})}return e}function LE(t){const e={};for(const r in t){const n=t[r];n!==void 0&&(e[r]=_r(n)?n.map(i=>i==null?null:""+i):n==null?n:""+n)}return e}const Cd=Symbol(""),Wg=Symbol(""),sf=Symbol(""),Ad=Symbol(""),$h=Symbol("");function eo(){let t=[];function e(n){return t.push(n),()=>{const i=t.indexOf(n);i>-1&&t.splice(i,1)}}function r(){t=[]}return{add:e,list:()=>t.slice(),reset:r}}function Z1(t,e,r){const n=()=>{t[e].delete(r)};SC(n),bC(n),wC(()=>{t[e].add(r)}),t[e].add(r)}function AH(t){const e=yr(Cd,{}).value;e&&Z1(e,"leaveGuards",t)}function DH(t){const e=yr(Cd,{}).value;e&&Z1(e,"updateGuards",t)}function Tn(t,e,r,n,i,a=o=>o()){const o=n&&(n.enterCallbacks[i]=n.enterCallbacks[i]||[]);return()=>new Promise((s,l)=>{const u=v=>{v===!1?l(La(Be.NAVIGATION_ABORTED,{from:r,to:e})):v instanceof Error?l(v):RE(v)?l(La(Be.NAVIGATION_GUARD_REDIRECT,{from:e,to:v})):(o&&n.enterCallbacks[i]===o&&typeof v=="function"&&o.push(v),s())},f=a(()=>t.call(n&&n.instances[i],e,r,u));let c=Promise.resolve(f);t.length<3&&(c=c.then(u)),c.catch(v=>l(v))})}function lc(t,e,r,n,i=a=>a()){const a=[];for(const o of t)for(const s in o.components){let l=o.components[s];if(!(e!=="beforeRouteEnter"&&!o.instances[s]))if(U1(l)){const u=(l.__vccOpts||l)[e];u&&a.push(Tn(u,r,n,o,s,i))}else{let u=l();a.push(()=>u.then(f=>{if(!f)throw new Error(`Couldn't resolve component "${s}" at "${o.path}"`);const c=rE(f)?f.default:f;o.mods[s]=f,o.components[s]=c;const v=(c.__vccOpts||c)[e];return v&&Tn(v,r,n,o,s,i)()}))}}return a}function OE(t,e){const r=[],n=[],i=[],a=Math.max(e.matched.length,t.matched.length);for(let o=0;oIa(u,s))?n.push(s):r.push(s));const l=t.matched[o];l&&(e.matched.find(u=>Ia(u,l))||i.push(l))}return[r,n,i]}let kE=()=>location.protocol+"//"+location.host;function K1(t,e){const{pathname:r,search:n,hash:i}=e,a=t.indexOf("#");if(a>-1){let o=i.includes(t.slice(a))?t.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),Hg(s,"")}return Hg(r,t)+n+i}function NE(t,e,r,n){let i=[],a=[],o=null;const s=({state:v})=>{const h=K1(t,location),d=r.value,p=e.value;let m=0;if(v){if(r.value=h,e.value=v,o&&o===d){o=null;return}m=p?v.position-p.position:0}else n(h);i.forEach(g=>{g(r.value,d,{delta:m,type:Wh.pop,direction:m?m>0?sc.forward:sc.back:sc.unknown})})};function l(){o=r.value}function u(v){i.push(v);const h=()=>{const d=i.indexOf(v);d>-1&&i.splice(d,1)};return a.push(h),h}function f(){if(document.visibilityState==="hidden"){const{history:v}=window;if(!v.state)return;v.replaceState(Ce({},v.state,{scroll:of()}),"")}}function c(){for(const v of a)v();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function Yg(t,e,r,n=!1,i=!1){return{back:t,current:e,forward:r,replaced:n,position:window.history.length,scroll:i?of():null}}function BE(t){const{history:e,location:r}=window,n={value:K1(t,r)},i={value:e.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=t.indexOf("#"),v=c>-1?(r.host&&document.querySelector("base")?t:t.slice(c))+l:kE()+t+l;try{e[f?"replaceState":"pushState"](u,"",v),i.value=u}catch(h){console.error(h),r[f?"replace":"assign"](v)}}function o(l,u){a(l,Ce({},e.state,Yg(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Ce({},i.value,e.state,{forward:l,scroll:of()});a(f.current,f,!0),a(l,Ce({},Yg(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function EH(t){t=wE(t);const e=BE(t),r=NE(t,e.state,e.location,e.replace);function n(a,o=!0){o||r.pauseListeners(),history.go(a)}const i=Ce({location:"",base:t,go:n,createHref:xE.bind(null,t)},e,r);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>e.state.value}),i}let _i=(function(t){return t[t.Static=0]="Static",t[t.Param=1]="Param",t[t.Group=2]="Group",t})({});var Xe=(function(t){return t[t.Static=0]="Static",t[t.Param=1]="Param",t[t.ParamRegExp=2]="ParamRegExp",t[t.ParamRegExpEnd=3]="ParamRegExpEnd",t[t.EscapeNext=4]="EscapeNext",t})(Xe||{});const FE={type:_i.Static,value:""},zE=/[a-zA-Z0-9_]/;function HE(t){if(!t)return[[]];if(t==="/")return[[FE]];if(!t.startsWith("/"))throw new Error(`Invalid path "${t}"`);function e(h){throw new Error(`ERR (${r})/"${u}": ${h}`)}let r=Xe.Static,n=r;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(r===Xe.Static?a.push({type:_i.Static,value:u}):r===Xe.Param||r===Xe.ParamRegExp||r===Xe.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&e(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:_i.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):e("Invalid state to consume buffer"),u="")}function v(){u+=l}for(;se.length?e.length===1&&e[0]===dt.Static+dt.Segment?1:-1:0}function Q1(t,e){let r=0;const n=t.score,i=e.score;for(;r0&&e[e.length-1]<0}const YE={strict:!1,end:!0,sensitive:!1};function $E(t,e,r){const n=GE(HE(t.path),r),i=Ce(n,{record:t,parent:e,children:[],alias:[]});return e&&!i.record.aliasOf==!e.record.aliasOf&&e.children.push(i),i}function XE(t,e){const r=[],n=new Map;e=zg(YE,e);function i(c){return n.get(c)}function a(c,v,h){const d=!h,p=jg(c);p.aliasOf=h&&h.record;const m=zg(e,c),g=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const b of S)g.push(jg(Ce({},p,{components:h?h.record.components:p.components,path:b,aliasOf:h?h.record:p})))}let y,_;for(const S of g){const{path:b}=S;if(v&&b[0]!=="/"){const w=v.record.path,T=w[w.length-1]==="/"?"":"/";S.path=v.record.path+(b&&T+b)}if(y=$E(S,v,m),h?h.alias.push(y):(_=_||y,_!==y&&_.alias.push(y),d&&c.name&&!Zg(y)&&o(c.name)),J1(y)&&l(y),p.children){const w=p.children;for(let T=0;T{o(_)}:Io}function o(c){if(q1(c)){const v=n.get(c);v&&(n.delete(c),r.splice(r.indexOf(v),1),v.children.forEach(o),v.alias.forEach(o))}else{const v=r.indexOf(c);v>-1&&(r.splice(v,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return r}function l(c){const v=ZE(c,r);r.splice(v,0,c),c.record.name&&!Zg(c)&&n.set(c.record.name,c)}function u(c,v){let h,d={},p,m;if("name"in c&&c.name){if(h=n.get(c.name),!h)throw La(Be.MATCHER_NOT_FOUND,{location:c});m=h.record.name,d=Ce(qg(v.params,h.keys.filter(_=>!_.optional).concat(h.parent?h.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&qg(c.params,h.keys.map(_=>_.name))),p=h.stringify(d)}else if(c.path!=null)p=c.path,h=r.find(_=>_.re.test(p)),h&&(d=h.parse(p),m=h.record.name);else{if(h=v.name?n.get(v.name):r.find(_=>_.re.test(v.path)),!h)throw La(Be.MATCHER_NOT_FOUND,{location:c,currentLocation:v});m=h.record.name,d=Ce({},v.params,c.params),p=h.stringify(d)}const g=[];let y=h;for(;y;)g.unshift(y.record),y=y.parent;return{name:m,path:p,params:d,matched:g,meta:jE(g)}}t.forEach(c=>a(c));function f(){r.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function qg(t,e){const r={};for(const n of e)n in t&&(r[n]=t[n]);return r}function jg(t){const e={path:t.path,redirect:t.redirect,name:t.name,meta:t.meta||{},aliasOf:t.aliasOf,beforeEnter:t.beforeEnter,props:qE(t),children:t.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in t?t.components||null:t.component&&{default:t.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function qE(t){const e={},r=t.props||!1;if("component"in t)e.default=r;else for(const n in t.components)e[n]=typeof r=="object"?r[n]:r;return e}function Zg(t){for(;t;){if(t.record.aliasOf)return!0;t=t.parent}return!1}function jE(t){return t.reduce((e,r)=>Ce(e,r.meta),{})}function ZE(t,e){let r=0,n=e.length;for(;r!==n;){const a=r+n>>1;Q1(t,e[a])<0?n=a:r=a+1}const i=KE(t);return i&&(n=e.lastIndexOf(i,n-1)),n}function KE(t){let e=t;for(;e=e.parent;)if(J1(e)&&Q1(t,e)===0)return e}function J1({record:t}){return!!(t.name||t.components&&Object.keys(t.components).length||t.redirect)}function Kg(t){const e=yr(sf),r=yr(Ad),n=Bt(()=>{const l=Mo(t.to);return e.resolve(l)}),i=Bt(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=r.matched;if(!f||!c.length)return-1;const v=c.findIndex(Ia.bind(null,f));if(v>-1)return v;const h=Qg(l[u-2]);return u>1&&Qg(f)===h&&c[c.length-1].path!==h?c.findIndex(Ia.bind(null,l[u-2])):v}),a=Bt(()=>i.value>-1&&rR(r.params,n.value.params)),o=Bt(()=>i.value>-1&&i.value===r.matched.length-1&&X1(r.params,n.value.params));function s(l={}){if(tR(l)){const u=e[Mo(t.replace)?"replace":"push"](Mo(t.to)).catch(Io);return t.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:Bt(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function QE(t){return t.length===1?t[0]:t}const JE=hd({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:Kg,setup(t,{slots:e}){const r=vd(Kg(t)),{options:n}=yr(sf),i=Bt(()=>({[Jg(t.activeClass,n.linkActiveClass,"router-link-active")]:r.isActive,[Jg(t.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const a=e.default&&QE(e.default(r));return t.custom?a:eu("a",{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:i.value},a)}}}),eR=JE;function tR(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&!(t.button!==void 0&&t.button!==0)){if(t.currentTarget&&t.currentTarget.getAttribute){const e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function rR(t,e){for(const r in e){const n=e[r],i=t[r];if(typeof n=="string"){if(n!==i)return!1}else if(!_r(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function Qg(t){return t?t.aliasOf?t.aliasOf.path:t.path:""}const Jg=(t,e,r)=>t!=null?t:e!=null?e:r,nR=hd({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(t,{attrs:e,slots:r}){const n=yr($h),i=Bt(()=>t.route||n.value),a=yr(Wg,0),o=Bt(()=>{let u=Mo(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=Bt(()=>i.value.matched[o.value]);qf(Wg,Bt(()=>o.value+1)),qf(Cd,s),qf($h,i);const l=Pa();return dd(()=>[l.value,s.value,t.name],([u,f,c],[v,h,d])=>{f&&(f.instances[c]=u,h&&h!==f&&u&&u===v&&(f.leaveGuards.size||(f.leaveGuards=h.leaveGuards),f.updateGuards.size||(f.updateGuards=h.updateGuards))),u&&f&&(!h||!Ia(f,h)||!v)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=t.name,c=s.value,v=c&&c.components[f];if(!v)return em(r.default,{Component:v,route:u});const h=c.props[f],d=h?h===!0?u.params:typeof h=="function"?h(u):h:null,m=eu(v,Ce({},d,e,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return em(r.default,{Component:m,route:u})||m}}});function em(t,e){if(!t)return null;const r=t(e);return r.length===1?r[0]:r}const iR=nR;function RH(t){const e=XE(t.routes,t),r=t.parseQuery||IE,n=t.stringifyQuery||Gg,i=t.history,a=eo(),o=eo(),s=eo(),l=TC(cn);let u=cn;pa&&t.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=ac.bind(null,L=>""+L),c=ac.bind(null,pE),v=ac.bind(null,Go);function h(L,Y){let B,F;return q1(L)?(B=e.getRecordMatcher(L),F=Y):F=L,e.addRoute(F,B)}function d(L){const Y=e.getRecordMatcher(L);Y&&e.removeRoute(Y)}function p(){return e.getRoutes().map(L=>L.record)}function m(L){return!!e.getRecordMatcher(L)}function g(L,Y){if(Y=Ce({},Y||l.value),typeof L=="string"){const ee=oc(r,L,Y.path),ye=e.resolve({path:ee.path},Y),Qe=i.createHref(ee.fullPath);return Ce(ee,ye,{params:v(ye.params),hash:Go(ee.hash),redirectedFrom:void 0,href:Qe})}let B;if(L.path!=null)B=Ce({},L,{path:oc(r,L.path,Y.path).path});else{const ee=Ce({},L.params);for(const ye in ee)ee[ye]==null&&delete ee[ye];B=Ce({},L,{params:c(ee)}),Y.params=c(Y.params)}const F=e.resolve(B,Y),H=L.hash||"";F.params=f(v(F.params));const Z=yE(n,Ce({},L,{hash:hE(H),path:F.path})),ue=i.createHref(Z);return Ce({fullPath:Z,hash:H,query:n===Gg?LE(L.query):L.query||{}},F,{redirectedFrom:void 0,href:ue})}function y(L){return typeof L=="string"?oc(r,L,l.value.path):Ce({},L)}function _(L,Y){if(u!==L)return La(Be.NAVIGATION_CANCELLED,{from:Y,to:L})}function S(L){return T(L)}function b(L){return S(Ce(y(L),{replace:!0}))}function w(L,Y){const B=L.matched[L.matched.length-1];if(B&&B.redirect){const{redirect:F}=B;let H=typeof F=="function"?F(L,Y):F;return typeof H=="string"&&(H=H.includes("?")||H.includes("#")?H=y(H):{path:H},H.params={}),Ce({query:L.query,hash:L.hash,params:H.path!=null?{}:L.params},H)}}function T(L,Y){const B=u=g(L),F=l.value,H=L.state,Z=L.force,ue=L.replace===!0,ee=w(B,F);if(ee)return T(Ce(y(ee),{state:typeof ee=="object"?Ce({},H,ee.state):H,force:Z,replace:ue}),Y||B);const ye=B;ye.redirectedFrom=Y;let Qe;return!Z&&_E(n,F,B)&&(Qe=La(Be.NAVIGATION_DUPLICATED,{to:ye,from:F}),Q(F,F,!0,!1)),(Qe?Promise.resolve(Qe):A(ye,F)).catch(ke=>Wr(ke)?Wr(ke,Be.NAVIGATION_GUARD_REDIRECT)?ke:X(ke):U(ke,ye,F)).then(ke=>{if(ke){if(Wr(ke,Be.NAVIGATION_GUARD_REDIRECT))return T(Ce({replace:ue},y(ke.to),{state:typeof ke.to=="object"?Ce({},H,ke.to.state):H,force:Z}),Y||ye)}else ke=P(ye,F,!0,ue,H);return D(ye,F,ke),ke})}function C(L,Y){const B=_(L,Y);return B?Promise.reject(B):Promise.resolve()}function x(L){const Y=z.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(L):L()}function A(L,Y){let B;const[F,H,Z]=OE(L,Y);B=lc(F.reverse(),"beforeRouteLeave",L,Y);for(const ee of F)ee.leaveGuards.forEach(ye=>{B.push(Tn(ye,L,Y))});const ue=C.bind(null,L,Y);return B.push(ue),se(B).then(()=>{B=[];for(const ee of a.list())B.push(Tn(ee,L,Y));return B.push(ue),se(B)}).then(()=>{B=lc(H,"beforeRouteUpdate",L,Y);for(const ee of H)ee.updateGuards.forEach(ye=>{B.push(Tn(ye,L,Y))});return B.push(ue),se(B)}).then(()=>{B=[];for(const ee of Z)if(ee.beforeEnter)if(_r(ee.beforeEnter))for(const ye of ee.beforeEnter)B.push(Tn(ye,L,Y));else B.push(Tn(ee.beforeEnter,L,Y));return B.push(ue),se(B)}).then(()=>(L.matched.forEach(ee=>ee.enterCallbacks={}),B=lc(Z,"beforeRouteEnter",L,Y,x),B.push(ue),se(B))).then(()=>{B=[];for(const ee of o.list())B.push(Tn(ee,L,Y));return B.push(ue),se(B)}).catch(ee=>Wr(ee,Be.NAVIGATION_CANCELLED)?ee:Promise.reject(ee))}function D(L,Y,B){s.list().forEach(F=>x(()=>F(L,Y,B)))}function P(L,Y,B,F,H){const Z=_(L,Y);if(Z)return Z;const ue=Y===cn,ee=pa?history.state:{};B&&(F||ue?i.replace(L.fullPath,Ce({scroll:ue&&ee&&ee.scroll},H)):i.push(L.fullPath,H)),l.value=L,Q(L,Y,B,ue),X()}let M;function I(){M||(M=i.listen((L,Y,B)=>{if(!re.listening)return;const F=g(L),H=w(F,re.currentRoute.value);if(H){T(Ce(H,{replace:!0,force:!0}),F).catch(Io);return}u=F;const Z=l.value;pa&&DE(Vg(Z.fullPath,B.delta),of()),A(F,Z).catch(ue=>Wr(ue,Be.NAVIGATION_ABORTED|Be.NAVIGATION_CANCELLED)?ue:Wr(ue,Be.NAVIGATION_GUARD_REDIRECT)?(T(Ce(y(ue.to),{force:!0}),F).then(ee=>{Wr(ee,Be.NAVIGATION_ABORTED|Be.NAVIGATION_DUPLICATED)&&!B.delta&&B.type===Wh.pop&&i.go(-1,!1)}).catch(Io),Promise.reject()):(B.delta&&i.go(-B.delta,!1),U(ue,F,Z))).then(ue=>{ue=ue||P(F,Z,!1),ue&&(B.delta&&!Wr(ue,Be.NAVIGATION_CANCELLED)?i.go(-B.delta,!1):B.type===Wh.pop&&Wr(ue,Be.NAVIGATION_ABORTED|Be.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(F,Z,ue)}).catch(Io)}))}let k=eo(),O=eo(),N;function U(L,Y,B){X(L);const F=O.list();return F.length?F.forEach(H=>H(L,Y,B)):console.error(L),Promise.reject(L)}function W(){return N&&l.value!==cn?Promise.resolve():new Promise((L,Y)=>{k.add([L,Y])})}function X(L){return N||(N=!L,I(),k.list().forEach(([Y,B])=>L?B(L):Y()),k.reset()),L}function Q(L,Y,B,F){const{scrollBehavior:H}=t;if(!pa||!H)return Promise.resolve();const Z=!B&&EE(Vg(L.fullPath,0))||(F||!B)&&history.state&&history.state.scroll||null;return n1().then(()=>H(L,Y,Z)).then(ue=>ue&&AE(ue)).catch(ue=>U(ue,L,Y))}const J=L=>i.go(L);let j;const z=new Set,re={currentRoute:l,listening:!0,addRoute:h,removeRoute:d,clearRoutes:e.clearRoutes,hasRoute:m,getRoutes:p,resolve:g,options:t,push:S,replace:b,go:J,back:()=>J(-1),forward:()=>J(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:W,install(L){L.component("RouterLink",eR),L.component("RouterView",iR),L.config.globalProperties.$router=re,Object.defineProperty(L.config.globalProperties,"$route",{enumerable:!0,get:()=>Mo(l)}),pa&&!j&&l.value===cn&&(j=!0,S(i.location).catch(F=>{}));const Y={};for(const F in cn)Object.defineProperty(Y,F,{get:()=>l.value[F],enumerable:!0});L.provide(sf,re),L.provide(Ad,xC(Y)),L.provide($h,l);const B=L.unmount;z.add(L),L.unmount=function(){z.delete(L),z.size<1&&(u=cn,M&&M(),M=null,l.value=cn,j=!1,N=!1),B()}}};function se(L){return L.reduce((Y,B)=>Y.then(()=>x(B)),Promise.resolve())}return re}function MH(){return yr(sf)}function PH(t){return yr(Ad)}var Xh=function(t,e){return Xh=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])},Xh(t,e)};function q(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Xh(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var aR=(function(){function t(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return t})(),oR=(function(){function t(){this.browser=new aR,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!="undefined"}return t})(),ve=new oR;typeof wx=="object"&&typeof wx.getSystemInfoSync=="function"?(ve.wxa=!0,ve.touchEventsSupported=!0):typeof document=="undefined"&&typeof self!="undefined"?ve.worker=!0:!ve.hasGlobalWindow||"Deno"in window||typeof navigator!="undefined"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Node.js")>-1?(ve.node=!0,ve.svgSupported=!0):sR(navigator.userAgent,ve);function sR(t,e){var r=e.browser,n=t.match(/Firefox\/([\d.]+)/),i=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),a=t.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(t);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),e.svgSupported=typeof SVGRect!="undefined",e.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,e.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11);var s=e.domSupported=typeof document!="undefined";if(s){var l=document.documentElement.style;e.transform3dSupported=(r.ie&&"transition"in l||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in l)&&!("OTransition"in l),e.transformSupported=e.transform3dSupported||r.ie&&+r.version>=9}}var Dd=12,lR="sans-serif",Bn=Dd+"px "+lR,uR=20,fR=100,cR="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function hR(t){var e={};if(typeof JSON=="undefined")return e;for(var r=0;r=0)s=o*r.length;else for(var l=0;l=mR&&(uc=0),uc++}function uf(){for(var t=[],e=0;e>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;"),t.appendChild(o),r.push(o)}return e.clearMarkers=function(){R(r,function(f){f.parentNode&&f.parentNode.removeChild(f)})},r}function HR(t,e,r){for(var n=r?"invTrans":"trans",i=e[n],a=e.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var f=t[u].getBoundingClientRect(),c=2*u,v=f.left,h=f.top;o.push(v,h),l=l&&a&&v===a[c]&&h===a[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&i?i:(e.srcCoords=o,e[n]=r?rm(s,o):rm(o,s))}function pS(t){return t.nodeName.toUpperCase()==="CANVAS"}var UR=/([&<>"'])/g,VR={"&":"&","<":"<",">":">",'"':""","'":"'"};function yt(t){return t==null?"":(t+"").replace(UR,function(e,r){return VR[r]})}var GR=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,cc=[],WR=ve.browser.firefox&&+ve.browser.version.split(".")[0]<39;function Qh(t,e,r,n){return r=r||{},n?nm(t,e,r):WR&&e.layerX!=null&&e.layerX!==e.offsetX?(r.zrX=e.layerX,r.zrY=e.layerY):e.offsetX!=null?(r.zrX=e.offsetX,r.zrY=e.offsetY):nm(t,e,r),r}function nm(t,e,r){if(ve.domSupported&&t.getBoundingClientRect){var n=e.clientX,i=e.clientY;if(pS(t)){var a=t.getBoundingClientRect();r.zrX=n-a.left,r.zrY=i-a.top;return}else if(Kh(cc,t,n,i)){r.zrX=cc[0],r.zrY=cc[1];return}}r.zrX=r.zrY=0}function kd(t){return t||window.event}function Gt(t,e,r){if(e=kd(e),e.zrX!=null)return e;var n=e.type,i=n&&n.indexOf("touch")>=0;if(i){var o=n!=="touchend"?e.targetTouches[0]:e.changedTouches[0];o&&Qh(t,o,e,r)}else{Qh(t,e,e,r);var a=YR(e);e.zrDelta=a?a/120:-(e.detail||0)/3}var s=e.button;return e.which==null&&s!==void 0&&GR.test(e.type)&&(e.which=s&1?1:s&2?3:s&4?2:0),e}function YR(t){var e=t.wheelDelta;if(e)return e;var r=t.deltaX,n=t.deltaY;if(r==null||n==null)return e;var i=Math.abs(n!==0?n:r),a=n>0?-1:n<0?1:r>0?-1:1;return 3*i*a}function $R(t,e,r,n){t.addEventListener(e,r,n)}function XR(t,e,r,n){t.removeEventListener(e,r,n)}var gS=function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0},qR=(function(){function t(){this._track=[]}return t.prototype.recognize=function(e,r,n){return this._doTrack(e,r,n),this._recognize(e)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(e,r,n){var i=e.touches;if(i){for(var a={points:[],touches:[],target:r,event:e},o=0,s=i.length;o1&&n&&n.length>1){var a=im(n)/im(i);!isFinite(a)&&(a=1),e.pinchScale=a;var o=jR(n);return e.pinchX=o[0],e.pinchY=o[1],{type:"pinch",target:t[0].target,event:e}}}}};function Jt(){return[1,0,0,1,0,0]}function Gi(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function gs(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Di(t,e,r){var n=e[0]*r[0]+e[2]*r[1],i=e[1]*r[0]+e[3]*r[1],a=e[0]*r[2]+e[2]*r[3],o=e[1]*r[2]+e[3]*r[3],s=e[0]*r[4]+e[2]*r[5]+e[4],l=e[1]*r[4]+e[3]*r[5]+e[5];return t[0]=n,t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t}function uu(t,e,r){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+r[0],t[5]=e[5]+r[1],t}function hf(t,e,r,n){n===void 0&&(n=[0,0]);var i=e[0],a=e[2],o=e[4],s=e[1],l=e[3],u=e[5],f=Math.sin(r),c=Math.cos(r);return t[0]=i*c+s*f,t[1]=-i*f+s*c,t[2]=a*c+l*f,t[3]=-a*f+c*l,t[4]=c*(o-n[0])+f*(u-n[1])+n[0],t[5]=c*(u-n[1])-f*(o-n[0])+n[1],t}function mS(t,e,r){var n=r[0],i=r[1];return t[0]=e[0]*n,t[1]=e[1]*i,t[2]=e[2]*n,t[3]=e[3]*i,t[4]=e[4]*n,t[5]=e[5]*i,t}function Hn(t,e){var r=e[0],n=e[2],i=e[4],a=e[1],o=e[3],s=e[5],l=r*o-a*n;return l?(l=1/l,t[0]=o*l,t[1]=-a*l,t[2]=-n*l,t[3]=r*l,t[4]=(n*s-o*i)*l,t[5]=(a*i-r*s)*l,t):null}function ZR(t){var e=Jt();return gs(e,t),e}const KR=Object.freeze(Object.defineProperty({__proto__:null,clone:ZR,copy:gs,create:Jt,identity:Gi,invert:Hn,mul:Di,rotate:hf,scale:mS,translate:uu},Symbol.toStringTag,{value:"Module"}));var he=(function(){function t(e,r){this.x=e||0,this.y=r||0}return t.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(e,r){return this.x=e,this.y=r,this},t.prototype.equal=function(e){return e.x===this.x&&e.y===this.y},t.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this},t.prototype.scale=function(e){this.x*=e,this.y*=e},t.prototype.scaleAndAdd=function(e,r){this.x+=e.x*r,this.y+=e.y*r},t.prototype.sub=function(e){return this.x-=e.x,this.y-=e.y,this},t.prototype.dot=function(e){return this.x*e.x+this.y*e.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var e=this.len();return this.x/=e,this.y/=e,this},t.prototype.distance=function(e){var r=this.x-e.x,n=this.y-e.y;return Math.sqrt(r*r+n*n)},t.prototype.distanceSquare=function(e){var r=this.x-e.x,n=this.y-e.y;return r*r+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(e){if(e){var r=this.x,n=this.y;return this.x=e[0]*r+e[2]*n+e[4],this.y=e[1]*r+e[3]*n+e[5],this}},t.prototype.toArray=function(e){return e[0]=this.x,e[1]=this.y,e},t.prototype.fromArray=function(e){this.x=e[0],this.y=e[1]},t.set=function(e,r,n){e.x=r,e.y=n},t.copy=function(e,r){e.x=r.x,e.y=r.y},t.len=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},t.lenSquare=function(e){return e.x*e.x+e.y*e.y},t.dot=function(e,r){return e.x*r.x+e.y*r.y},t.add=function(e,r,n){e.x=r.x+n.x,e.y=r.y+n.y},t.sub=function(e,r,n){e.x=r.x-n.x,e.y=r.y-n.y},t.scale=function(e,r,n){e.x=r.x*n,e.y=r.y*n},t.scaleAndAdd=function(e,r,n,i){e.x=r.x+n.x*i,e.y=r.y+n.y*i},t.lerp=function(e,r,n,i){var a=1-i;e.x=a*r.x+i*n.x,e.y=a*r.y+i*n.y},t})(),Si=Math.min,ya=Math.max,Jh=Math.abs,am=["x","y"],QR=["width","height"],Xn=new he,qn=new he,jn=new he,Zn=new he,Nt=yS(),wo=Nt.minTv,ev=Nt.maxTv,Lo=[0,0],le=(function(){function t(e,r,n,i){vc(this,e,r,n,i)}return t.set=function(e,r,n,i,a){return i<0&&(r=r+i,i=-i),a<0&&(n=n+a,a=-a),e.x=r,e.y=n,e.width=i,e.height=a,e},t.prototype.union=function(e){var r=Si(e.x,this.x),n=Si(e.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=ya(e.x+e.width,this.x+this.width)-r:this.width=e.width,isFinite(this.y)&&isFinite(this.height)?this.height=ya(e.y+e.height,this.y+this.height)-n:this.height=e.height,this.x=r,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(e){return JR(Jt(),this,e)},t.prototype.intersect=function(e,r,n){return t.intersect(this,e,r,n)},t.intersect=function(e,r,n,i){n&&he.set(n,0,0);var a=i&&i.outIntersectRect||null,o=i&&i.clamp;if(a&&(a.x=a.y=a.width=a.height=NaN),!e||!r)return!1;e instanceof t||(e=vc(eM,e.x,e.y,e.width,e.height)),r instanceof t||(r=vc(tM,r.x,r.y,r.width,r.height));var s=!!n;Nt.reset(i,s);var l=Nt.touchThreshold,u=e.x+l,f=e.x+e.width-l,c=e.y+l,v=e.y+e.height-l,h=r.x+l,d=r.x+r.width-l,p=r.y+l,m=r.y+r.height-l;if(u>f||c>v||h>d||p>m)return!1;var g=!(f=e.x&&r<=e.x+e.width&&n>=e.y&&n<=e.y+e.height},t.prototype.contain=function(e,r){return t.contain(this,e,r)},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){om(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return this.width===0||this.height===0},t.create=function(e){return new t(e?e.x:0,e?e.y:0,e?e.width:0,e?e.height:0)},t.copy=function(e,r){return e.x=r.x,e.y=r.y,e.width=r.width,e.height=r.height,e},t.applyTransform=function(e,r,n){if(!n){e!==r&&om(e,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];e.x=r.x*i+o,e.y=r.y*a+s,e.width=r.width*i,e.height=r.height*a,e.width<0&&(e.x+=e.width,e.width=-e.width),e.height<0&&(e.y+=e.height,e.height=-e.height);return}Xn.x=jn.x=r.x,Xn.y=Zn.y=r.y,qn.x=Zn.x=r.x+r.width,qn.y=jn.y=r.y+r.height,Xn.transform(n),Zn.transform(n),qn.transform(n),jn.transform(n),e.x=Si(Xn.x,qn.x,jn.x,Zn.x),e.y=Si(Xn.y,qn.y,jn.y,Zn.y);var l=ya(Xn.x,qn.x,jn.x,Zn.x),u=ya(Xn.y,qn.y,jn.y,Zn.y);e.width=l-e.x,e.height=u-e.y},t.calculateTransform=function(e,r,n){var i=n.width/r.width,a=n.height/r.height;return e=Gi(e||[]),uu(e,e,Ml(dc,-r.x,-r.y)),mS(e,e,Ml(dc,i,a)),uu(e,e,Ml(dc,n.x,n.y)),e},t})();le.create;var vc=le.set,om=le.copy,JR=le.calculateTransform;le.applyTransform;le.contain;var eM=new le(0,0,0,0),tM=new le(0,0,0,0),dc=[];function sm(t,e,r,n,i,a,o,s){var l=Jh(e-r),u=Jh(n-t),f=Si(l,u),c=am[i],v=am[1-i],h=QR[i];e=u||!Nt.bidirectional)&&(wo[c]=-u,wo[v]=0,Nt.useDir&&Nt.calcDirMTV())))}function yS(){var t=0,e=new he,r=new he,n={minTv:new he,maxTv:new he,useDir:!1,dirMinTv:new he,touchThreshold:0,bidirectional:!0,negativeSize:!1,reset:function(a,o){n.touchThreshold=0,a&&a.touchThreshold!=null&&(n.touchThreshold=ya(0,a.touchThreshold)),n.negativeSize=!1,o&&(n.minTv.set(1/0,1/0),n.maxTv.set(0,0),n.useDir=!1,a&&a.direction!=null&&(n.useDir=!0,n.dirMinTv.copy(n.minTv),r.copy(n.minTv),t=a.direction,n.bidirectional=a.bidirectional==null||!!a.bidirectional,n.bidirectional||e.set(Math.cos(t),Math.sin(t))))},calcDirMTV:function(){var a=n.minTv,o=n.dirMinTv,s=a.y*a.y+a.x*a.x,l=Math.sin(t),u=Math.cos(t),f=l*a.y+u*a.x;if(i(f)){i(a.x)&&i(a.y)&&o.set(0,0);return}if(r.x=s*u/f,r.y=s*l/f,i(r.x)&&i(r.y)){o.set(0,0);return}(n.bidirectional||e.dot(r)>0)&&r.len()=0;c--){var v=a[c];v!==i&&!v.ignore&&!v.ignoreCoarsePointer&&(!v.parent||!v.parent.ignoreCoarsePointer)&&(pc.copy(v.getBoundingRect()),v.transform&&pc.applyTransform(v.transform),pc.intersect(f)&&s.push(v))}if(s.length)for(var h=4,d=Math.PI/12,p=Math.PI*2,m=0;m4)return;this._downPoint=null}this.dispatchToElement(a,t,e)}});function oM(t,e,r){if(t[t.rectHover?"rectContain":"contain"](e,r)){for(var n=t,i=void 0,a=!1;n;){if(n.ignoreClip&&(a=!0),!a){var o=n.getClipPath();if(o&&!o.contain(e,r))return!1}n.silent&&(i=!0);var s=n.__hostTarget;n=s?n.ignoreHostSilent?null:s:n.parent}return i?_S:!0}return!1}function lm(t,e,r,n,i){for(var a=t.length-1;a>=0;a--){var o=t[a],s=void 0;if(o!==i&&!o.ignore&&(s=oM(o,r,n))&&(!e.topTarget&&(e.topTarget=o),s!==_S)){e.target=o;break}}}function bS(t,e,r){var n=t.painter;return e<0||e>n.getWidth()||r<0||r>n.getHeight()}var wS=32,ro=7;function sM(t){for(var e=0;t>=wS;)e|=t&1,t>>=1;return t+e}function um(t,e,r,n){var i=e+1;if(i===r)return 1;if(n(t[i++],t[e])<0){for(;i=0;)i++;return i-e}function lM(t,e,r){for(r--;e>>1,i(a,t[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:t[o+3]=t[o+2];case 2:t[o+2]=t[o+1];case 1:t[o+1]=t[o];break;default:for(;u>0;)t[o+u]=t[o+u-1],u--}t[o]=a}}function gc(t,e,r,n,i,a){var o=0,s=0,l=1;if(a(t,e[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(t,e[r+f])>0?o=f+1:l=f}return l}function mc(t,e,r,n,i,a){var o=0,s=0,l=1;if(a(t,e[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(t,e[r+f])<0?l=f:o=f+1}return l}function uM(t,e){var r=ro,n,i,a=0,o=[];n=[],i=[];function s(h,d){n[a]=h,i[a]=d,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]=ro||T>=ro);if(C)break;b<0&&(b=0),b+=2}if(r=b,r<1&&(r=1),d===1){for(g=0;g=0;g--)t[w+g]=t[b+g];t[S]=o[_];return}for(var T=r;;){var C=0,x=0,A=!1;do if(e(o[_],t[y])<0){if(t[S--]=t[y--],C++,x=0,--d===0){A=!0;break}}else if(t[S--]=o[_--],x++,C=0,--m===1){A=!0;break}while((C|x)=0;g--)t[w+g]=t[b+g];if(d===0){A=!0;break}}if(t[S--]=o[_--],--m===1){A=!0;break}if(x=m-gc(t[y],o,0,m,m-1,e),x!==0){for(S-=x,_-=x,m-=x,w=S+1,b=_+1,g=0;g=ro||x>=ro);if(A)break;T<0&&(T=0),T+=2}if(r=T,r<1&&(r=1),m===1){for(S-=d,y-=d,w=S+1,b=y+1,g=d-1;g>=0;g--)t[w+g]=t[b+g];t[S]=o[_]}else{if(m===0)throw new Error;for(b=S-(m-1),g=0;gs&&(l=s),fm(t,r,r+l,r+a,e),a=l}o.pushRun(r,a),o.mergeRuns(),i-=a,r+=a}while(i!==0);o.forceMergeRuns()}}var Et=1,To=2,ga=4,cm=!1;function yc(){cm||(cm=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function hm(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var fM=(function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=hm}return t.prototype.traverse=function(e,r){for(var n=0;n=0&&this._roots.splice(i,1)},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t})(),fu;fu=ve.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)};var Oo={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return .5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return t===0?0:Math.pow(1024,t-1)},exponentialOut:function(t){return t===1?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return t===0?0:t===1?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,r=.1,n=.4;return t===0?0:t===1?1:(!r||r<1?(r=1,e=n/4):e=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)))},elasticOut:function(t){var e,r=.1,n=.4;return t===0?0:t===1?1:(!r||r<1?(r=1,e=n/4):e=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},elasticInOut:function(t){var e,r=.1,n=.4;return t===0?0:t===1?1:(!r||r<1?(r=1,e=n/4):e=n*Math.asin(1/r)/(2*Math.PI),(t*=2)<1?-.5*(r*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)):r*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?.5*(t*t*((e+1)*t-e)):.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Oo.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?Oo.bounceIn(t*2)*.5:Oo.bounceOut(t*2-1)*.5+.5}},Ls=Math.pow,Pn=Math.sqrt,cu=1e-8,TS=1e-4,vm=Pn(3),Os=1/3,Er=Vi(),$t=Vi(),xa=Vi();function Dn(t){return t>-cu&&tcu||t<-cu}function qe(t,e,r,n,i){var a=1-i;return a*a*(a*t+3*i*e)+i*i*(i*n+3*a*r)}function dm(t,e,r,n,i){var a=1-i;return 3*(((e-t)*a+2*(r-e)*i)*a+(n-r)*i*i)}function hu(t,e,r,n,i,a){var o=n+3*(e-r)-t,s=3*(r-e*2+t),l=3*(e-t),u=t-i,f=s*s-3*o*l,c=s*l-9*o*u,v=l*l-3*s*u,h=0;if(Dn(f)&&Dn(c))if(Dn(s))a[0]=0;else{var d=-l/s;d>=0&&d<=1&&(a[h++]=d)}else{var p=c*c-4*f*v;if(Dn(p)){var m=c/f,d=-s/o+m,g=-m/2;d>=0&&d<=1&&(a[h++]=d),g>=0&&g<=1&&(a[h++]=g)}else if(p>0){var y=Pn(p),_=f*s+1.5*o*(-c+y),S=f*s+1.5*o*(-c-y);_<0?_=-Ls(-_,Os):_=Ls(_,Os),S<0?S=-Ls(-S,Os):S=Ls(S,Os);var d=(-s-(_+S))/(3*o);d>=0&&d<=1&&(a[h++]=d)}else{var b=(2*f*s-3*o*c)/(2*Pn(f*f*f)),w=Math.acos(b)/3,T=Pn(f),C=Math.cos(w),d=(-s-2*T*C)/(3*o),g=(-s+T*(C+vm*Math.sin(w)))/(3*o),x=(-s+T*(C-vm*Math.sin(w)))/(3*o);d>=0&&d<=1&&(a[h++]=d),g>=0&&g<=1&&(a[h++]=g),x>=0&&x<=1&&(a[h++]=x)}}return h}function CS(t,e,r,n,i){var a=6*r-12*e+6*t,o=9*e+3*n-3*t-9*r,s=3*e-3*t,l=0;if(Dn(o)){if(xS(a)){var u=-s/a;u>=0&&u<=1&&(i[l++]=u)}}else{var f=a*a-4*o*s;if(Dn(f))i[0]=-a/(2*o);else if(f>0){var c=Pn(f),u=(-a+c)/(2*o),v=(-a-c)/(2*o);u>=0&&u<=1&&(i[l++]=u),v>=0&&v<=1&&(i[l++]=v)}}return l}function vu(t,e,r,n,i,a){var o=(e-t)*i+t,s=(r-e)*i+e,l=(n-r)*i+r,u=(s-o)*i+o,f=(l-s)*i+s,c=(f-u)*i+u;a[0]=t,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=f,a[6]=l,a[7]=n}function AS(t,e,r,n,i,a,o,s,l,u,f){var c,v=.005,h=1/0,d,p,m,g;Er[0]=l,Er[1]=u;for(var y=0;y<1;y+=.05)$t[0]=qe(t,r,i,o,y),$t[1]=qe(e,n,a,s,y),m=Ai(Er,$t),m=0&&m=0&&u<=1&&(i[l++]=u)}}else{var f=o*o-4*a*s;if(Dn(f)){var u=-o/(2*a);u>=0&&u<=1&&(i[l++]=u)}else if(f>0){var c=Pn(f),u=(-o+c)/(2*a),v=(-o-c)/(2*a);u>=0&&u<=1&&(i[l++]=u),v>=0&&v<=1&&(i[l++]=v)}}return l}function DS(t,e,r){var n=t+r-2*e;return n===0?.5:(t-e)/n}function du(t,e,r,n,i){var a=(e-t)*n+t,o=(r-e)*n+e,s=(o-a)*n+a;i[0]=t,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=r}function ES(t,e,r,n,i,a,o,s,l){var u,f=.005,c=1/0;Er[0]=o,Er[1]=s;for(var v=0;v<1;v+=.05){$t[0]=ft(t,r,i,v),$t[1]=ft(e,n,a,v);var h=Ai(Er,$t);h=0&&h=1?1:hu(0,n,a,1,l,s)&&qe(0,i,o,1,s[0])}}}var pM=(function(){function t(e){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=e.life||1e3,this._delay=e.delay||0,this.loop=e.loop||!1,this.onframe=e.onframe||at,this.ondestroy=e.ondestroy||at,this.onrestart=e.onrestart||at,e.easing&&this.setEasing(e.easing)}return t.prototype.step=function(e,r){if(this._inited||(this._startTime=e+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,i=e-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=e-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t.prototype.setEasing=function(e){this.easing=e,this.easingFunc=fe(e)?e:Oo[e]||RS(e)},t})(),MS=(function(){function t(e){this.value=e}return t})(),gM=(function(){function t(){this._len=0}return t.prototype.insert=function(e){var r=new MS(e);return this.insertEntry(r),r},t.prototype.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++},t.prototype.remove=function(e){var r=e.prev,n=e.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,e.next=e.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t})(),Na=(function(){function t(e){this._list=new gM,this._maxSize=10,this._map={},this._maxSize=e}return t.prototype.put=function(e,r){var n=this._list,i=this._map,a=null;if(i[e]==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 MS(r),s.key=e,n.insertEntry(s),i[e]=s}return a},t.prototype.get=function(e){var r=this._map[e],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t})(),gm={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 gr(t){return t=Math.round(t),t<0?0:t>255?255:t}function mM(t){return t=Math.round(t),t<0?0:t>360?360:t}function $o(t){return t<0?0:t>1?1:t}function Ol(t){var e=t;return e.length&&e.charAt(e.length-1)==="%"?gr(parseFloat(e)/100*255):gr(parseInt(e,10))}function In(t){var e=t;return e.length&&e.charAt(e.length-1)==="%"?$o(parseFloat(e)/100):$o(parseFloat(e))}function _c(t,e,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?t+(e-t)*r*6:r*2<1?e:r*3<2?t+(e-t)*(2/3-r)*6:t}function En(t,e,r){return t+(e-t)*r}function Ut(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}function tv(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var PS=new Na(20),ks=null;function ea(t,e){ks&&tv(ks,e),ks=PS.put(t,ks||e.slice())}function Ft(t,e){if(t){e=e||[];var r=PS.get(t);if(r)return tv(e,r);t=t+"";var n=t.replace(/ /g,"").toLowerCase();if(n in gm)return tv(e,gm[n]),ea(t,e),e;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)){Ut(e,0,0,0,1);return}return Ut(e,(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),ea(t,e),e}else if(i===7||i===9){var a=parseInt(n.slice(1,7),16);if(!(a>=0&&a<=16777215)){Ut(e,0,0,0,1);return}return Ut(e,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(n.slice(7),16)/255:1),ea(t,e),e}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?Ut(e,+u[0],+u[1],+u[2],1):Ut(e,0,0,0,1);f=In(u.pop());case"rgb":if(u.length>=3)return Ut(e,Ol(u[0]),Ol(u[1]),Ol(u[2]),u.length===3?f:In(u[3])),ea(t,e),e;Ut(e,0,0,0,1);return;case"hsla":if(u.length!==4){Ut(e,0,0,0,1);return}return u[3]=In(u[3]),rv(u,e),ea(t,e),e;case"hsl":if(u.length!==3){Ut(e,0,0,0,1);return}return rv(u,e),ea(t,e),e;default:return}}Ut(e,0,0,0,1)}}function rv(t,e){var r=(parseFloat(t[0])%360+360)%360/360,n=In(t[1]),i=In(t[2]),a=i<=.5?i*(n+1):i+n-i*n,o=i*2-a;return e=e||[],Ut(e,gr(_c(o,a,r+1/3)*255),gr(_c(o,a,r)*255),gr(_c(o,a,r-1/3)*255),1),t.length===4&&(e[3]=t[3]),e}function yM(t){if(t){var e=t[0]/255,r=t[1]/255,n=t[2]/255,i=Math.min(e,r,n),a=Math.max(e,r,n),o=a-i,s=(a+i)/2,l,u;if(o===0)l=0,u=0;else{s<.5?u=o/(a+i):u=o/(2-a-i);var f=((a-e)/6+o/2)/o,c=((a-r)/6+o/2)/o,v=((a-n)/6+o/2)/o;e===a?l=v-c:r===a?l=1/3+f-v:n===a&&(l=2/3+c-f),l<0&&(l+=1),l>1&&(l-=1)}var h=[l*360,u,s];return t[3]!=null&&h.push(t[3]),h}}function nv(t,e){var r=Ft(t);if(r){for(var n=0;n<3;n++)e<0?r[n]=r[n]*(1-e)|0:r[n]=(255-r[n])*e+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return Un(r,r.length===4?"rgba":"rgb")}}function _M(t){var e=Ft(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function IS(t,e,r){if(!(!(e&&e.length)||!(t>=0&&t<=1))){r=r||[];var n=t*(e.length-1),i=Math.floor(n),a=Math.ceil(n),o=e[i],s=e[a],l=n-i;return r[0]=gr(En(o[0],s[0],l)),r[1]=gr(En(o[1],s[1],l)),r[2]=gr(En(o[2],s[2],l)),r[3]=$o(En(o[3],s[3],l)),r}}var SM=IS;function Nd(t,e,r){if(!(!(e&&e.length)||!(t>=0&&t<=1))){var n=t*(e.length-1),i=Math.floor(n),a=Math.ceil(n),o=Ft(e[i]),s=Ft(e[a]),l=n-i,u=Un([gr(En(o[0],s[0],l)),gr(En(o[1],s[1],l)),gr(En(o[2],s[2],l)),$o(En(o[3],s[3],l))],"rgba");return r?{color:u,leftIndex:i,rightIndex:a,value:n}:u}}var bM=Nd;function pu(t,e,r,n){var i=Ft(t);if(t)return i=yM(i),e!=null&&(i[0]=mM(fe(e)?e(i[0]):e)),r!=null&&(i[1]=In(fe(r)?r(i[1]):r)),n!=null&&(i[2]=In(fe(n)?n(i[2]):n)),Un(rv(i),"rgba")}function wM(t,e){var r=Ft(t);if(r&&e!=null)return r[3]=$o(e),Un(r,"rgba")}function Un(t,e){if(!(!t||!t.length)){var r=t[0]+","+t[1]+","+t[2];return(e==="rgba"||e==="hsva"||e==="hsla")&&(r+=","+t[3]),e+"("+r+")"}}function Xo(t,e){var r=Ft(t);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*e:0}function TM(){return Un([Math.round(Math.random()*255),Math.round(Math.random()*255),Math.round(Math.random()*255)],"rgb")}var mm=new Na(100);function iv(t){if(te(t)){var e=mm.get(t);return e||(e=nv(t,-.1),mm.put(t,e)),e}else if(ds(t)){var r=G({},t);return r.colorStops=oe(t.colorStops,function(n){return{offset:n.offset,color:nv(n.color,-.1)}}),r}return t}const xM=Object.freeze(Object.defineProperty({__proto__:null,fastLerp:IS,fastMapToColor:SM,lerp:Nd,lift:nv,liftColor:iv,lum:Xo,mapToColor:bM,modifyAlpha:wM,modifyHSL:pu,parse:Ft,parseCssFloat:In,parseCssInt:Ol,random:TM,stringify:Un,toHex:_M},Symbol.toStringTag,{value:"Module"}));function CM(t){return t.type==="linear"}function AM(t){return t.type==="radial"}(function(){return typeof Buffer!="undefined"&&typeof Buffer.from=="function"?function(t){return Buffer.from(t).toString("base64")}:typeof btoa=="function"&&typeof unescape=="function"&&typeof encodeURIComponent=="function"?function(t){return btoa(unescape(encodeURIComponent(t)))}:function(t){return null}})();var av=Array.prototype.slice;function jr(t,e,r){return(e-t)*r+t}function Sc(t,e,r,n){for(var i=e.length,a=0;an?e:t,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},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(e,r,n){this._needsSort=!0;var i=this.keyframes,a=i.length,o=!1,s=_m,l=r;if(Tt(r)){var u=MM(r);s=u,(u===1&&!Re(r[0])||u===2&&!Re(r[0][0]))&&(o=!0)}else if(Re(r)&&!ka(r))s=Bs;else if(te(r))if(!isNaN(+r))s=Bs;else{var f=Ft(r);f&&(l=f,s=xo)}else if(ds(r)){var c=G({},l);c.colorStops=oe(r.colorStops,function(h){return{offset:h.offset,color:Ft(h.color)}}),CM(r)?s=ov:AM(r)&&(s=sv),l=c}a===0?this.valType=s:(s!==this.valType||s===_m)&&(o=!0),this.discrete=this.discrete||o;var v={time:e,value:l,rawValue:r,percent:0};return n&&(v.easing=n,v.easingFunc=fe(n)?n:Oo[n]||RS(n)),i.push(v),v},t.prototype.prepare=function(e,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=Fs(i),u=Sm(i),f=0;f=0&&!(o[f].percent<=r);f--);f=v(f,s-2)}else{for(f=c;fr);f++);f=v(f-1,s-2)}d=o[f+1],h=o[f]}if(h&&d){this._lastFr=f,this._lastFrP=r;var m=d.percent-h.percent,g=m===0?1:v((r-h.percent)/m,1);d.easingFunc&&(g=d.easingFunc(g));var y=n?this._additiveValue:u?no:e[l];if((Fs(a)||u)&&!y&&(y=this._additiveValue=[]),this.discrete)e[l]=g<1?h.rawValue:d.rawValue;else if(Fs(a))a===Bl?Sc(y,h[i],d[i],g):DM(y,h[i],d[i],g);else if(Sm(a)){var _=h[i],S=d[i],b=a===ov;e[l]={type:b?"linear":"radial",x:jr(_.x,S.x,g),y:jr(_.y,S.y,g),colorStops:oe(_.colorStops,function(T,C){var x=S.colorStops[C];return{offset:jr(T.offset,x.offset,g),color:Nl(Sc([],T.color,x.color,g))}}),global:S.global},b?(e[l].x2=jr(_.x2,S.x2,g),e[l].y2=jr(_.y2,S.y2,g)):e[l].r=jr(_.r,S.r,g)}else if(u)Sc(y,h[i],d[i],g),n||(e[l]=Nl(y));else{var w=jr(h[i],d[i],g);n?this._additiveValue=w:e[l]=w}n&&this._addToTarget(e)}}},t.prototype._addToTarget=function(e){var r=this.valType,n=this.propName,i=this._additiveValue;r===Bs?e[n]=e[n]+i:r===xo?(Ft(e[n],no),Ns(no,no,i,1),e[n]=Nl(no)):r===Bl?Ns(e[n],e[n],i,1):r===LS&&ym(e[n],e[n],i,1)},t})(),Bd=(function(){function t(e,r,n,i){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=e,this._loop=r,r&&i){uf("Can' use additive animation on looped animation.");return}this._additiveAnimators=i,this._allowDiscrete=n}return t.prototype.getMaxTime=function(){return this._maxTime},t.prototype.getDelay=function(){return this._delay},t.prototype.getLoop=function(){return this._loop},t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(e){this._target=e},t.prototype.when=function(e,r,n){return this.whenWithKeys(e,r,Pe(r),n)},t.prototype.whenWithKeys=function(e,r,n,i){for(var a=this._tracks,o=0;o0&&l.addKeyframe(0,kl(u),i),this._trackKeys.push(s)}l.addKeyframe(e,kl(r[s]),i)}return this._maxTime=Math.max(this._maxTime,e),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype.duration=function(e){return this._maxTime=e,this._force=!0,this},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var e=this._doneCbs;if(e)for(var r=e.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,e[i]),a.prepare(this._maxTime,a.getAdditiveTrack())}}}},t})();function _a(){return new Date().getTime()}var IM=(function(t){q(e,t);function e(r){var n=t.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 e.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},e.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},e.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}},e.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},e.prototype.update=function(r){for(var n=_a()-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())},e.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(fu(n),!r._paused&&r.update())}fu(n)},e.prototype.start=function(){this._running||(this._time=_a(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=_a(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=_a()-this._pauseStart,this._paused=!1)},e.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},e.prototype.isFinished=function(){return this._head==null},e.prototype.animate=function(r,n){n=n||{},this.start();var i=new Bd(r,n.loop);return this.addAnimator(i),i},e})(Ur),LM=300,bc=ve.domSupported,wc=(function(){var t=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],e=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=oe(t,function(i){var a=i.replace("mouse","pointer");return r.hasOwnProperty(a)?a:i});return{mouse:t,touch:e,pointer:n}})(),bm={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},wm=!1;function lv(t){var e=t.pointerType;return e==="pen"||e==="touch"}function OM(t){t.touching=!0,t.touchTimer!=null&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout(function(){t.touching=!1,t.touchTimer=null},700)}function Tc(t){t&&(t.zrByTouch=!0)}function kM(t,e){return Gt(t.dom,new NM(t,e),!0)}function OS(t,e){for(var r=e,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==e&&r===t.painterRoot);)r=r.parentNode;return n}var NM=(function(){function t(e,r){this.stopPropagation=at,this.stopImmediatePropagation=at,this.preventDefault=at,this.type=r.type,this.target=this.currentTarget=e.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return t})(),hr={mousedown:function(t){t=Gt(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=Gt(this.dom,t);var e=this.__mayPointerCapture;e&&(t.zrX!==e[0]||t.zrY!==e[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=Gt(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){t=Gt(this.dom,t);var e=t.toElement||t.relatedTarget;OS(this,e)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){wm=!0,t=Gt(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){wm||(t=Gt(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){t=Gt(this.dom,t),Tc(t),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),hr.mousemove.call(this,t),hr.mousedown.call(this,t)},touchmove:function(t){t=Gt(this.dom,t),Tc(t),this.handler.processGesture(t,"change"),hr.mousemove.call(this,t)},touchend:function(t){t=Gt(this.dom,t),Tc(t),this.handler.processGesture(t,"end"),hr.mouseup.call(this,t),+new Date-+this.__lastTouchMomentCm||t<-Cm}var Qn=[],ta=[],Cc=Jt(),Ac=Math.abs,Xa=(function(){function t(){}return t.prototype.getLocalTransform=function(e){return UM(this,e)},t.prototype.setPosition=function(e){this.x=e[0],this.y=e[1]},t.prototype.setScale=function(e){this.scaleX=e[0],this.scaleY=e[1]},t.prototype.setSkew=function(e){this.skewX=e[0],this.skewY=e[1]},t.prototype.setOrigin=function(e){this.originX=e[0],this.originY=e[1]},t.prototype.needLocalTransform=function(){return Kn(this.rotation)||Kn(this.x)||Kn(this.y)||Kn(this.scaleX-1)||Kn(this.scaleY-1)||Kn(this.skewX)||Kn(this.skewY)},t.prototype.updateTransform=function(){var e=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||e)){n&&(xm(n),this.invTransform=null);return}n=n||Jt(),r?this.getLocalTransform(n):xm(n),e&&(r?Di(n,e,n):gs(n,e)),this.transform=n,this._resolveGlobalScaleRatio(n),this.invTransform=this.invTransform||Jt(),Hn(this.invTransform,n)},t.prototype._resolveGlobalScaleRatio=function(e){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(Qn);var n=Qn[0]<0?-1:1,i=Qn[1]<0?-1:1,a=((Qn[0]-n)*r+n)/Qn[0]||0,o=((Qn[1]-i)*r+i)/Qn[1]||0;e[0]*=a,e[1]*=a,e[2]*=o,e[3]*=o}},t.prototype.getComputedTransform=function(){for(var e=this,r=[];e;)r.push(e),e=e.parent;for(;e=r.pop();)e.updateTransform();return this.transform},t.prototype.setLocalTransform=function(e){if(e){var r=e[0]*e[0]+e[1]*e[1],n=e[2]*e[2]+e[3]*e[3],i=Math.atan2(e[1],e[0]),a=Math.PI/2+i-Math.atan2(e[3],e[2]);n=Math.sqrt(n)*Math.cos(a),r=Math.sqrt(r),this.skewX=a,this.skewY=0,this.rotation=-i,this.x=+e[4],this.y=+e[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},t.prototype.decomposeTransform=function(){if(this.transform){var e=this.parent,r=this.transform;e&&e.transform&&(e.invTransform=e.invTransform||Jt(),Di(ta,e.invTransform,r),r=ta);var n=this.originX,i=this.originY;(n||i)&&(Cc[4]=n,Cc[5]=i,Di(ta,r,Cc),ta[4]-=n,ta[5]-=i,r=ta),this.setLocalTransform(r)}},t.prototype.getGlobalScale=function(e){var r=this.transform;return e=e||[],r?(e[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),e[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(e[0]=-e[0]),r[3]<0&&(e[1]=-e[1]),e):(e[0]=1,e[1]=1,e)},t.prototype.transformCoordToLocal=function(e,r){var n=[e,r],i=this.invTransform;return i&&bt(n,n,i),n},t.prototype.transformCoordToGlobal=function(e,r){var n=[e,r],i=this.transform;return i&&bt(n,n,i),n},t.prototype.getLineScale=function(){var e=this.transform;return e&&Ac(e[0]-1)>1e-10&&Ac(e[3]-1)>1e-10?Math.sqrt(Ac(e[0]*e[3]-e[2]*e[1])):1},t.prototype.copyTransform=function(e){mu(this,e)},t.getLocalTransform=function(e,r){r=r||[];var n=e.originX||0,i=e.originY||0,a=e.scaleX,o=e.scaleY,s=e.anchorX,l=e.anchorY,u=e.rotation||0,f=e.x,c=e.y,v=e.skewX?Math.tan(e.skewX):0,h=e.skewY?Math.tan(-e.skewY):0;if(n||i||s||l){var d=n+s,p=i+l;r[4]=-d*a-v*p*o,r[5]=-p*o-h*d*a}else r[4]=r[5]=0;return r[0]=a,r[3]=o,r[1]=h*a,r[2]=v*o,u&&hf(r,r,u),r[4]+=n+f,r[5]+=i+c,r},t.initDefaultProps=(function(){var e=t.prototype;e.scaleX=e.scaleY=e.globalScaleRatio=1,e.x=e.y=e.originX=e.originY=e.skewX=e.skewY=e.rotation=e.anchorX=e.anchorY=0})(),t})(),UM=Xa.getLocalTransform,vf=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function mu(t,e){return nS(t,e,vf)}function Ir(t){zs||(zs=new Na(100)),t=t||Bn;var e=zs.get(t);return e||(e={font:t,strWidthCache:new Na(500),asciiWidthMap:null,asciiWidthMapTried:!1,stWideCharWidth:it.measureText("国",t).width,asciiCharWidth:it.measureText("a",t).width},zs.put(t,e)),e}var zs;function VM(t){if(!(Dc>=Am)){t=t||Bn;for(var e=[],r=+new Date,n=0;n<=127;n++)e[n]=it.measureText(String.fromCharCode(n),t).width;var i=+new Date-r;return i>16?Dc=Am:i>2&&Dc++,e}}var Dc=0,Am=5;function NS(t,e){return t.asciiWidthMapTried||(t.asciiWidthMap=VM(t.font),t.asciiWidthMapTried=!0),0<=e&&e<=127?t.asciiWidthMap!=null?t.asciiWidthMap[e]:t.asciiCharWidth:t.stWideCharWidth}function Lr(t,e){var r=t.strWidthCache,n=r.get(e);return n==null&&(n=it.measureText(e,t.font).width,r.put(e,n)),n}function Dm(t,e,r,n){var i=Lr(Ir(e),t),a=df(e),o=Ba(0,i,r),s=Ei(0,a,n),l=new le(o,s,i,a);return l}function BS(t,e,r,n){var i=((t||"")+"").split(` +`),a=i.length;if(a===1)return Dm(i[0],e,r,n);for(var o=new le(0,0,0,0),s=0;s=0?parseFloat(t)/100*e:parseFloat(t):t}function FS(t,e,r){var n=e.position||"inside",i=e.distance!=null?e.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+=ki(n[0],r.width),u+=ki(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 t=t||{},t.x=l,t.y=u,t.align=f,t.verticalAlign=c,t}var Ec="__zr_normal__",Rc=vf.concat(["ignore"]),GM=kr(vf,function(t,e){return t[e]=!0,t},{ignore:!1}),ra={},WM=new le(0,0,0,0),Hs=[],zl=0,pf=1,gf=(function(){function t(e){this.id=Md(),this.animators=[],this.currentStates=[],this.states={},this._init(e)}return t.prototype._init=function(e){this.attr(e)},t.prototype.drift=function(e,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":e=0;break}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=e,i[5]+=r,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(e){var r=this._textContent;if(r&&(!r.ignore||e)){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;a.copyTransform(r);var f=n.position!=null,c=n.autoOverflowArea,v=void 0;if((c||f)&&(v=WM,n.layoutRect?v.copy(n.layoutRect):v.copy(this.getBoundingRect()),i||v.applyTransform(this.transform)),f){this.calculateTextPosition?this.calculateTextPosition(ra,n,v):FS(ra,n,v),a.x=ra.x,a.y=ra.y,o=ra.align,s=ra.verticalAlign;var h=n.origin;if(h&&n.rotation!=null){var d=void 0,p=void 0;h==="center"?(d=v.width*.5,p=v.height*.5):(d=ki(h[0],v.width),p=ki(h[1],v.height)),u=!0,a.originX=-a.x+d+(i?0:v.x),a.originY=-a.y+p+(i?0:v.y)}}n.rotation!=null&&(a.rotation=n.rotation);var m=n.offset;m&&(a.x+=m[0],a.y+=m[1],u||(a.originX=-m[0],a.originY=-m[1]));var g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={});if(c){var y=g.overflowRect=g.overflowRect||new le(0,0,0,0);a.getLocalTransform(Hs),Hn(Hs,Hs),le.copy(y,v),y.applyTransform(Hs)}else g.overflowRect=null;var _=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,S=void 0,b=void 0,w=void 0;_&&this.canBeInsideText()?(S=n.insideFill,b=n.insideStroke,(S==null||S==="auto")&&(S=this.getInsideTextFill()),(b==null||b==="auto")&&(b=this.getInsideTextStroke(S),w=!0)):(S=n.outsideFill,b=n.outsideStroke,(S==null||S==="auto")&&(S=this.getOutsideFill()),(b==null||b==="auto")&&(b=this.getOutsideStroke(S),w=!0)),S=S||"#000",(S!==g.fill||b!==g.stroke||w!==g.autoStroke||o!==g.align||s!==g.verticalAlign)&&(l=!0,g.fill=S,g.stroke=b,g.autoStroke=w,g.align=o,g.verticalAlign=s,r.setDefaultTextStyle(g)),r.__dirty|=Et,l&&r.dirtyStyle(!0)}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(e){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?hv:cv},t.prototype.getOutsideStroke=function(e){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&Ft(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,Un(n,"rgba")},t.prototype.traverse=function(e,r){},t.prototype.attrKV=function(e,r){e==="textConfig"?this.setTextConfig(r):e==="textContent"?this.setTextContent(r):e==="clipPath"?this.setClipPath(r):e==="extra"?(this.extra=this.extra||{},G(this.extra,r)):this[e]=r},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(e,r){if(typeof e=="string")this.attrKV(e,r);else if(ie(e))for(var n=e,i=Pe(n),a=0;a0},t.prototype.getState=function(e){return this.states[e]},t.prototype.ensureState=function(e){var r=this.states;return r[e]||(r[e]={}),r[e]},t.prototype.clearStates=function(e){this.useState(Ec,!1,e)},t.prototype.useState=function(e,r,n,i){var a=e===Ec,o=this.hasState();if(!(!o&&a)){var s=this.currentStates,l=this.stateTransition;if(!(ge(s,e)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!a&&(u=this.stateProxy(e)),u||(u=this.states&&this.states[e]),!u&&!a){uf("State "+e+" not exists.");return}a||this.saveCurrentToNormalState(u);var f=this._textContent,c=Em(this,f,u,i);c&&!this.__inHover&&(this.__inHover=c),this._applyStateObj(e,u,this._normalState,r,Mm(this,n,l),l);var v=this._textGuide;return f&&f.useState(e,r,n,!!c),v&&v.useState(e,r,n,!!c),a?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!c&&this.__inHover&&(this.__inHover=zl,this.__dirty&=~Et),u}}},t.prototype.useStates=function(e,r,n){if(!e.length)this.clearStates();else{var i=[],a=this.currentStates,o=e.length,s=o===a.length;if(s){for(var l=0;l=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},t.prototype.replaceState=function(e,r,n){var i=this.currentStates.slice(),a=ge(i,e),o=ge(i,r)>=0;a>=0?o?i.splice(a,1):i[a]=r:n&&!o&&i.push(r),this.useStates(i)},t.prototype.toggleState=function(e,r){r?this.useState(e,!0):this.removeState(e)},t.prototype._mergeStates=function(e){for(var r={},n,i=0;i=0&&a.splice(o,1)}),this.animators.push(e),n&&n.animation.addAnimator(e),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(e){this.markRedraw()},t.prototype.stopAnimation=function(e,r){for(var n=this.animators,i=n.length,a=[],o=0;o0&&r.during&&a[0].during(function(d,p){r.during(p)});for(var v=0;v0||i.force&&!o.length){var C=void 0,x=void 0,A=void 0;if(s){x={},v&&(C={});for(var S=0;S<_;S++){var g=p[S];x[g]=r[g],v?C[g]=n[g]:r[g]=n[g]}}else if(v){A={};for(var S=0;S<_;S++){var g=p[S];A[g]=kl(r[g]),$M(r,n,g)}}var b=new Bd(r,!1,!1,c?ze(d,function(P){return P.targetName===e}):null);b.targetName=e,i.scope&&(b.scope=i.scope),v&&C&&b.whenWithKeys(0,C,p),A&&b.whenWithKeys(0,A,p),b.whenWithKeys(u==null?500:u,s?x:n,p).delay(f||0),t.addAnimator(b,e),o.push(b)}}function Em(t,e,r,n){return!(r&&r.hoverLayer||n)||Rm(t)||e&&Rm(e)?zl:pf}function Rm(t){return t.type==="text"||t.type==="tspan"}function Mm(t,e,r){return!e&&!t.__inHover&&r&&r.duration>0}var rt=(function(t){q(e,t);function e(r){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(r){return this._children[r]},e.prototype.childOfName=function(r){for(var n=this._children,i=0;i=0&&(i.splice(a,0,r),this._doAdd(r))}return this},e.prototype.replace=function(r,n){var i=ge(this._children,r);return i>=0&&this.replaceAt(n,i),this},e.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},e.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()},e.prototype.remove=function(r){var n=this.__zr,i=this._children,a=ge(i,r);return a<0?this:(i.splice(a,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},e.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,i=0;i0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(e){this._sleepAfterStill=e},t.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._disposed||this._refresh({animUpdate:!1,refresh:!1,refreshHover:!0})},t.prototype.resize=function(e){this._disposed||(e=e||{},this.painter.resize(e.width,e.height),this.handler.resize())},t.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},t.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},t.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},t.prototype.setCursorStyle=function(e){this._disposed||this.handler.setCursorStyle(e)},t.prototype.findHover=function(e,r){if(!this._disposed)return this.handler.findHover(e,r)},t.prototype.on=function(e,r,n){return this._disposed||this.handler.on(e,r,n),this},t.prototype.off=function(e,r){this._disposed||this.handler.off(e,r)},t.prototype.trigger=function(e,r){this._disposed||this.handler.trigger(e,r)},t.prototype.clear=function(){if(!this._disposed){for(var e=this.storage.getRoots(),r=0;r0){if(t<=i)return o;if(t>=a)return s}else{if(t>=i)return o;if(t<=a)return s}else{if(t===i)return o;if(t===a)return s}return(t-i)/l*u+o}var He=sP;function sP(t,e,r){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%";break}return pv(t,e,r)}function pv(t,e,r){return te(t)?lP(t)?parseFloat(t)/100*e+(r||0):parseFloat(t):t==null?NaN:+t}function lP(t){return!!iP(t).match(/%$/)}function _e(t,e,r){return isNaN(e)?r?""+t:+t:(e=It(Ee(0,e),yu),t=(+t).toFixed(e),r?t:+t)}function uP(t,e,r){return e==null&&(e=10),_e(t,e,r)}function Fd(t){return t.sort(function(e,r){return e-r}),t}function Kr(t){if(t=+t,isNaN(t))return 0;if(t>1e-14){for(var e=1,r=0;r<15;r++,e*=10)if(Br(t*e)/e===t)return r}return VS(t)}function VS(t){var e=t.toString().toLowerCase(),r=e.indexOf("e"),n=r>0?+e.slice(r+1):0,i=r>0?r:e.length,a=e.indexOf("."),o=a<0?0:i-1-a;return Ee(0,o-n)}function fP(t,e){var r=rn(Ni(t[1]-t[0])/qo),n=Br(Ni(Ze(e[1]-e[0]))/qo),i=It(Ee(-r+n,0),yu);return isFinite(i)?i:yu}function cP(t,e,r){var n=Ze(t[1]-t[0]);if(!isFinite(n)||n===0)return NaN;var i=Ni(2*Ze(r||1)*Ze(n))/qo,a=Ni(Ze(e))/qo,o=Ee(0,ms(-i+a));return isFinite(o)||(o=NaN),o}function hP(t,e,r){if(!t[e])return 0;var n=GS(t,r);return n[e]||0}function GS(t,e){var r=kr(t,function(h,d){return h+(isNaN(d)?0:d)},0);if(r===0)return[];for(var n=Wi(10,e),i=oe(t,function(h){return(isNaN(h)?0:h)/r*n*100}),a=n*100,o=oe(i,function(h){return rn(h)}),s=kr(o,function(h,d){return h+d},0),l=oe(i,function(h,d){return h-o[d]});su&&(u=l[c],f=c);++o[f],l[f]=0,++s}return oe(o,function(h){return h/n})}function vP(t,e){var r=Ee(Kr(t),Kr(e)),n=t+e;return r>yu?n:_e(n,r)}var gv=Wi(2,53)-1;function zd(t){var e=aP*2;return(t%e+e)%e}function jo(t){return t>-Pm&&t=10&&e++,e}var WS=2;function yf(t,e){var r=mf(t),n=Wi(10,r),i=t/n,a;return e===WS?a=1:e?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,t=a*n,_e(t,-r)}function pP(t,e){var r=(t.length-1)*e+1,n=rn(r),i=+t[n-1],a=r-n;return a?i+a*(t[n]-i):i}function gP(t){t.sort(function(l,u){return s(l,u,0)?-1:1});for(var e=-1/0,r=1,n=0;nt[1]&&(t[1]=e))}function JS(t,e){nn(e)&&et[1]&&(t[1]=e)}function kP(t,e){Fa(e[0],e[1])&&(e[0]t[1]&&(t[1]=e[1]))}function nn(t){return t!=null&&isFinite(t)}function Fa(t,e){return nn(t)&&nn(e)&&t<=e}function NP(t){var e=t[1]-t[0];return isFinite(e)&&e>=0}function BP(t){Fa(t[0],t[1])&&t[0]>t[1]&&(t[0]=t[1])}function Gd(t,e,r){var n=ce(),i=0;R(t,function(a){var o=e(a),s=n.get(o)||0;r&&r(a,s),!s&&!r&&(t[i++]=a),n.set(o,s+1)}),r||(t.length=i)}function FP(t){return t.value+""}function zP(t){return t+""}function HP(t,e,r){var n=t.getData().count();return{progressiveRender:r.progressiveEnabled&&e.incrementalPrepareRender&&n>=r.threshold,large:t.get("large")&&n>=t.get("largeThreshold"),modDataCount:t.get("progressiveChunkMode")==="mod"?t.getData().count():null}}function UP(t,e){return{seriesType:t,overallReset:e}}function Wd(t){return{overallReset:t}}var VP=".",Jn="___EC__COMPONENT__CONTAINER___",tb="___EC__EXTENDED_CLASS___";function Mr(t){var e={main:"",sub:""};if(t){var r=t.split(VP);e.main=r[0]||"",e.sub=r[1]||""}return e}function GP(t){Nr(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}function WP(t){return!!(t&&t[tb])}function Yd(t,e){t.$constructor=t,t.extend=function(r){var n=this,i;return YP(n)?i=(function(a){q(o,a);function o(){return a.apply(this,arguments)||this}return o})(n):(i=function(){(r.$constructor||n).apply(this,arguments)},Pd(i,this)),G(i.prototype,r),i[tb]=!0,i.extend=this.extend,i.superCall=qP,i.superApply=jP,i.superClass=n,i}}function YP(t){return fe(t)&&/^class\s/.test(Function.prototype.toString.call(t))}function rb(t,e){t.extend=e.extend}var $P=Math.round(Math.random()*10);function XP(t){var e=["__\0is_clz",$P++].join("_");t.prototype[e]=!0,t.isInstance=function(r){return!!(r&&r[e])}}function qP(t,e){for(var r=[],n=2;n=0||a&&ge(a,l)<0)){var u=n.getShallow(l,e);u!=null&&(o[t[s][0]]=u)}}return o}}var ZP=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],KP=Qo(ZP),QP=(function(){function t(){}return t.prototype.getAreaStyle=function(e,r){return KP(this,e,r)},t})(),_v=new Na(50);function JP(t){if(typeof t=="string"){var e=_v.get(t);return e&&e.image}else return t}function nb(t,e,r,n,i){if(t)if(typeof t=="string"){if(e&&e.__zrImageSrc===t||!r)return e;var a=_v.get(t),o={hostEl:r,cb:n,cbPayload:i};return a?(e=a.image,!Sf(e)&&a.pending.push(o)):(e=it.loadImage(t,km,km),e.__zrImageSrc=t,_v.put(t,e.__cachedImgObj={image:e,pending:[o]})),e}else return t;else return e}function km(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e=s;u++)l-=s;var f=Lr(o,r);return f>l&&(r="",f=0),l=t-f,i.ellipsis=r,i.ellipsisWidth=f,i.contentWidth=l,i.containerWidth=t,i}function ob(t,e,r){var n=r.containerWidth,i=r.contentWidth,a=r.fontMeasureInfo;if(!n){t.textLine="",t.isTruncated=!1;return}var o=Lr(a,e);if(o<=n){t.textLine=e,t.isTruncated=!1;return}for(var s=0;;s++){if(o<=i||s>=r.maxIterations){e+=r.ellipsis;break}var l=s===0?tI(e,i,a):o>0?Math.floor(e.length*i/o):0;e=e.substr(0,l),o=Lr(a,e)}e===""&&(e=r.placeholder),t.textLine=e,t.isTruncated=!0}function tI(t,e,r){for(var n=0,i=0,a=t.length;im&&h){var _=Math.floor(m/v);d=d||g.length>_,g=g.slice(0,_),y=g.length*v}if(i&&f&&p!=null)for(var S=ab(p,u,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),b={},w=0;wd&&Oc(a,o.substring(d,m),e,h),Oc(a,p[2],e,h,p[1]),d=Lc.lastIndex}dc){var W=a.lines.length;P>0?(x.tokens=x.tokens.slice(0,P),T(x,D,A),a.lines=a.lines.slice(0,C+1)):a.lines=a.lines.slice(0,C),a.isTruncated=a.isTruncated||a.lines.length0&&d+n.accumWidth>n.width&&(f=e.split(` +`),u=!0),n.accumWidth=d}else{var p=sb(e,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=p.accumWidth+h,c=p.linesWidths,f=p.lines}}f||(f=e.split(` +`));for(var m=Ir(l),g=0;g=32&&e<=591||e>=880&&e<=4351||e>=4608&&e<=5119||e>=7680&&e<=8303}var sI=kr(",&?/;] ".split(""),function(t,e){return t[e]=!0,t},{});function lI(t){return oI(t)?!!sI[t]:!0}function sb(t,e,r,n,i){for(var a=[],o=[],s="",l="",u=0,f=0,c=Ir(e),v=0;vr:i+f+d>r){f?(s||l)&&(p?(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)):p?(a.push(l),o.push(u),l=h,u=d):(a.push(h),o.push(d));continue}f+=d,p?(l+=h,u+=d):(l&&(s+=l,l="",u=0),s+=h)}return l&&(s+=l),s&&(a.push(s),o.push(f)),a.length===1&&(f+=i),{accumWidth:f,lines:a,linesWidths:o}}function Bm(t,e,r,n,i,a){if(t.baseX=r,t.baseY=n,t.outerWidth=t.outerHeight=null,!!e){var o=e.width*2,s=e.height*2;le.set(Fm,Ba(r,o,i),Ei(n,s,a),o,s),le.intersect(e,Fm,null,zm);var l=zm.outIntersectRect;t.outerWidth=l.width,t.outerHeight=l.height,t.baseX=Ba(l.x,l.width,i,!0),t.baseY=Ei(l.y,l.height,a,!0)}}var Fm=new le(0,0,0,0),zm={outIntersectRect:{},clamp:!0};function $d(t){return t!=null?t+="":t=""}function uI(t){var e=$d(t.text),r=t.font,n=Lr(Ir(r),e),i=df(r);return Sv(t,n,i,null)}function Sv(t,e,r,n){var i=new le(Ba(t.x||0,e,t.textAlign),Ei(t.y||0,r,t.textBaseline),e,r),a=n!=null?n:lb(t)?t.lineWidth:0;return a>0&&(i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a),i}function lb(t){var e=t.stroke;return e!=null&&e!=="none"&&t.lineWidth>0}var bv="__zr_style_"+Math.round(Math.random()*10),Ri={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},bf={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};Ri[bv]=!0;var Hm=["z","z2","invisible"],fI=["invisible"],Ss=(function(t){q(e,t);function e(r){return t.call(this,r)||this}return e.prototype._init=function(r){for(var n=Pe(r),i=0;i1e-4){s[0]=t-r,s[1]=e-n,l[0]=t+r,l[1]=e+n;return}if(Us[0]=Fc(i)*r+t,Us[1]=Bc(i)*n+e,Vs[0]=Fc(a)*r+t,Vs[1]=Bc(a)*n+e,u(s,Us,Vs),f(l,Us,Vs),i=i%ei,i<0&&(i=i+ei),a=a%ei,a<0&&(a=a+ei),i>a&&!o?a+=ei:ii&&(Gs[0]=Fc(h)*r+t,Gs[1]=Bc(h)*n+e,u(s,Gs,s),f(l,Gs,l))}var xe={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},ti=[],ri=[],Tr=[],hn=[],xr=[],Cr=[],zc=Math.min,Hc=Math.max,ni=Math.cos,ii=Math.sin,Yr=Math.abs,wv=Math.PI,bn=wv*2,Uc=typeof Float32Array!="undefined",io=[];function Vc(t){var e=Math.round(t/wv*1e8)/1e8;return e%2*wv}function ub(t,e){var r=Vc(t[0]);r<0&&(r+=bn);var n=r-t[0],i=t[1];i+=n,!e&&i-r>=bn?i=r+bn:e&&r-i>=bn?i=r-bn:!e&&r>i?i=r+(bn-Vc(r-i)):e&&r0&&(this._ux=Yr(n/gu/e)||0,this._uy=Yr(n/gu/r)||0)},t.prototype.setDPR=function(e){this.dpr=e},t.prototype.setContext=function(e){this._ctx=e},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(e,r){return this._drawPendingPt(),this.addData(xe.M,e,r),this._ctx&&this._ctx.moveTo(e,r),this._x0=e,this._y0=r,this._xi=e,this._yi=r,this},t.prototype.lineTo=function(e,r){var n=Yr(e-this._xi),i=Yr(r-this._yi),a=n>this._ux||i>this._uy;if(this.addData(xe.L,e,r),this._ctx&&a&&this._ctx.lineTo(e,r),a)this._xi=e,this._yi=r,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=e,this._pendingPtY=r,this._pendingPtDist=o)}return this},t.prototype.bezierCurveTo=function(e,r,n,i,a,o){return this._drawPendingPt(),this.addData(xe.C,e,r,n,i,a,o),this._ctx&&this._ctx.bezierCurveTo(e,r,n,i,a,o),this._xi=a,this._yi=o,this},t.prototype.quadraticCurveTo=function(e,r,n,i){return this._drawPendingPt(),this.addData(xe.Q,e,r,n,i),this._ctx&&this._ctx.quadraticCurveTo(e,r,n,i),this._xi=n,this._yi=i,this},t.prototype.arc=function(e,r,n,i,a,o){this._drawPendingPt(),io[0]=i,io[1]=a,ub(io,o),i=io[0],a=io[1];var s=a-i;return this.addData(xe.A,e,r,n,n,i,s,0,o?0:1),this._ctx&&this._ctx.arc(e,r,n,i,a,o),this._xi=ni(a)*n+e,this._yi=ii(a)*n+r,this},t.prototype.arcTo=function(e,r,n,i,a){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(e,r,n,i,a),this},t.prototype.rect=function(e,r,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(e,r,n,i),this.addData(xe.R,e,r,n,i),this},t.prototype.closePath=function(){this._drawPendingPt(),this.addData(xe.Z);var e=this._ctx,r=this._x0,n=this._y0;return e&&e.closePath(),this._xi=r,this._yi=n,this},t.prototype.fill=function(e){e&&e.fill(),this.toStatic()},t.prototype.stroke=function(e){e&&e.stroke(),this.toStatic()},t.prototype.len=function(){return this._len},t.prototype.setData=function(e){if(this._saveData){var r=e.length;!(this.data&&this.data.length===r)&&Uc&&(this.data=new Float32Array(r));for(var n=0;n0&&o))for(var s=0;sf.length&&(this._expandData(),f=this.data);for(var c=0;c0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var e=[],r=0;r11&&(this.data=new Float32Array(e)))}},t.prototype.getBoundingRect=function(){Tr[0]=Tr[1]=xr[0]=xr[1]=Number.MAX_VALUE,hn[0]=hn[1]=Cr[0]=Cr[1]=-Number.MAX_VALUE;var e=this.data,r=0,n=0,i=0,a=0,o;for(o=0;on||Yr(_)>i||v===r-1)&&(p=Math.sqrt(y*y+_*_),a=m,o=g);break}case xe.C:{var S=e[v++],b=e[v++],m=e[v++],g=e[v++],w=e[v++],T=e[v++];p=cM(a,o,S,b,m,g,w,T,10),a=w,o=T;break}case xe.Q:{var S=e[v++],b=e[v++],m=e[v++],g=e[v++];p=vM(a,o,S,b,m,g,10),a=m,o=g;break}case xe.A:var C=e[v++],x=e[v++],A=e[v++],D=e[v++],P=e[v++],M=e[v++],I=M+P;v+=1,d&&(s=ni(P)*A+C,l=ii(P)*D+x),p=Hc(A,D)*zc(bn,Math.abs(M)),a=ni(I)*A+C,o=ii(I)*D+x;break;case xe.R:{s=a=e[v++],l=o=e[v++];var k=e[v++],O=e[v++];p=k*2+O*2;break}case xe.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},t.prototype.rebuildPath=function(e,r){var n=this.data,i=this._ux,a=this._uy,o=this._len,s,l,u,f,c,v,h=r<1,d,p,m=0,g=0,y,_=0,S,b;if(!(h&&(this._pathSegLen||this._calculateLength(),d=this._pathSegLen,p=this._pathLen,y=r*p,!y)))e:for(var w=0;w0&&(e.lineTo(S,b),_=0),T){case xe.M:s=u=n[w++],l=f=n[w++],e.moveTo(u,f);break;case xe.L:{c=n[w++],v=n[w++];var x=Yr(c-u),A=Yr(v-f);if(x>i||A>a){if(h){var D=d[g++];if(m+D>y){var P=(y-m)/D;e.lineTo(u*(1-P)+c*P,f*(1-P)+v*P);break e}m+=D}e.lineTo(c,v),u=c,f=v,_=0}else{var M=x*x+A*A;M>_&&(S=c,b=v,_=M)}break}case xe.C:{var I=n[w++],k=n[w++],O=n[w++],N=n[w++],U=n[w++],W=n[w++];if(h){var D=d[g++];if(m+D>y){var P=(y-m)/D;vu(u,I,O,U,P,ti),vu(f,k,N,W,P,ri),e.bezierCurveTo(ti[1],ri[1],ti[2],ri[2],ti[3],ri[3]);break e}m+=D}e.bezierCurveTo(I,k,O,N,U,W),u=U,f=W;break}case xe.Q:{var I=n[w++],k=n[w++],O=n[w++],N=n[w++];if(h){var D=d[g++];if(m+D>y){var P=(y-m)/D;du(u,I,O,P,ti),du(f,k,N,P,ri),e.quadraticCurveTo(ti[1],ri[1],ti[2],ri[2]);break e}m+=D}e.quadraticCurveTo(I,k,O,N),u=O,f=N;break}case xe.A:var X=n[w++],Q=n[w++],J=n[w++],j=n[w++],z=n[w++],re=n[w++],se=n[w++],L=!n[w++],Y=J>j?J:j,B=Yr(J-j)>.001,F=z+re,H=!1;if(h){var D=d[g++];m+D>y&&(F=z+re*(y-m)/D,H=!0),m+=D}if(B&&e.ellipse?e.ellipse(X,Q,J,j,se,z,F,L):e.arc(X,Q,Y,z,F,L),H)break e;C&&(s=ni(z)*J+X,l=ii(z)*j+Q),u=ni(F)*J+X,f=ii(F)*j+Q;break;case xe.R:s=u=n[w],l=f=n[w+1],c=n[w++],v=n[w++];var Z=n[w++],ue=n[w++];if(h){var D=d[g++];if(m+D>y){var ee=y-m;e.moveTo(c,v),e.lineTo(c+zc(ee,Z),v),ee-=Z,ee>0&&e.lineTo(c+Z,v+zc(ee,ue)),ee-=ue,ee>0&&e.lineTo(c+Hc(Z-ee,0),v+ue),ee-=Z,ee>0&&e.lineTo(c,v+Hc(ue-ee,0));break e}m+=D}e.rect(c,v,Z,ue);break;case xe.Z:if(h){var D=d[g++];if(m+D>y){var P=(y-m)/D;e.lineTo(u*(1-P)+s*P,f*(1-P)+l*P);break e}m+=D}e.closePath(),u=s,f=l}}},t.prototype.clone=function(){var e=new t,r=this.data;return e.data=r.slice?r.slice():Array.prototype.slice.call(r),e._len=this._len,e},t.prototype.canSave=function(){return!!this._saveData},t.CMD=xe,t.initDefaultProps=(function(){var e=t.prototype;e._saveData=!0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0})(),t})();function na(t,e,r,n,i,a,o){if(i===0)return!1;var s=i,l=0,u=t;if(o>e+s&&o>n+s||ot+s&&a>r+s||ae+c&&f>n+c&&f>a+c&&f>s+c||ft+c&&u>r+c&&u>i+c&&u>o+c||ue+u&&l>n+u&&l>a+u||lt+u&&s>r+u&&s>i+u||sr||f+ui&&(i+=ao);var v=Math.atan2(l,s);return v<0&&(v+=ao),v>=n&&v<=i||v+ao>=n&&v+ao<=i}function Zr(t,e,r,n,i,a){if(a>e&&a>n||ai?s:0}var vn=Fn.CMD,ai=Math.PI*2,yI=1e-4;function _I(t,e){return Math.abs(t-e)e&&u>n&&u>a&&u>s||u1&&SI(),h=qe(e,n,a,s,Yt[0]),v>1&&(d=qe(e,n,a,s,Yt[1]))),v===2?me&&s>n&&s>a||s=0&&u<=1){for(var f=0,c=ft(e,n,a,u),v=0;vr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);pt[0]=-l,pt[1]=l;var u=Math.abs(n-i);if(u<1e-4)return 0;if(u>=ai-1e-4){n=0,i=ai;var f=a?1:-1;return o>=pt[0]+t&&o<=pt[1]+t?f:0}if(n>i){var c=n;n=i,i=c}n<0&&(n+=ai,i+=ai);for(var v=0,h=0;h<2;h++){var d=pt[h];if(d+t>o){var p=Math.atan2(s,d),f=a?1:-1;p<0&&(p=ai+p),(p>=n&&p<=i||p+ai>=n&&p+ai<=i)&&(p>Math.PI/2&&p1&&(r||(s+=Zr(l,u,f,c,n,i))),m&&(l=a[d],u=a[d+1],f=l,c=u),p){case vn.M:f=a[d++],c=a[d++],l=f,u=c;break;case vn.L:if(r){if(na(l,u,a[d],a[d+1],e,n,i))return!0}else s+=Zr(l,u,a[d],a[d+1],n,i)||0;l=a[d++],u=a[d++];break;case vn.C:if(r){if(pI(l,u,a[d++],a[d++],a[d++],a[d++],a[d],a[d+1],e,n,i))return!0}else s+=bI(l,u,a[d++],a[d++],a[d++],a[d++],a[d],a[d+1],n,i)||0;l=a[d++],u=a[d++];break;case vn.Q:if(r){if(gI(l,u,a[d++],a[d++],a[d],a[d+1],e,n,i))return!0}else s+=wI(l,u,a[d++],a[d++],a[d],a[d+1],n,i)||0;l=a[d++],u=a[d++];break;case vn.A:var g=a[d++],y=a[d++],_=a[d++],S=a[d++],b=a[d++],w=a[d++];d+=1;var T=!!(1-a[d++]);v=Math.cos(b)*_+g,h=Math.sin(b)*S+y,m?(f=v,c=h):s+=Zr(l,u,v,h,n,i);var C=(n-g)*S/_+g;if(r){if(mI(g,y,S,b,b+w,T,e,C,i))return!0}else s+=TI(g,y,S,b,b+w,T,C,i);l=Math.cos(b+w)*_+g,u=Math.sin(b+w)*S+y;break;case vn.R:f=l=a[d++],c=u=a[d++];var x=a[d++],A=a[d++];if(v=f+x,h=c+A,r){if(na(f,c,v,c,e,n,i)||na(v,c,v,h,e,n,i)||na(v,h,f,h,e,n,i)||na(f,h,f,c,e,n,i))return!0}else s+=Zr(v,c,v,h,n,i),s+=Zr(f,h,f,c,n,i);break;case vn.Z:if(r){if(na(l,u,f,c,e,n,i))return!0}else s+=Zr(l,u,f,c,n,i);l=f,u=c;break}}return!r&&!_I(u,c)&&(s+=Zr(l,u,f,c,n,i)||0),s!==0}function xI(t,e,r){return fb(t,0,!1,e,r)}function CI(t,e,r,n){return fb(t,e,!0,r,n)}var cb=Te({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},Ri),AI={style:Te({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},bf.style)},Gc=vf.concat(["invisible","culling","z","z2","zlevel","parent"]),Me=(function(t){q(e,t);function e(r){return t.call(this,r)||this}return e.prototype.update=function(){var r=this;t.prototype.update.call(this);var n=this.style;if(n.decal){var i=this._decalEl=this._decalEl||new e;i.buildPath===e.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?cv:n>.2?HM:hv}else if(r)return hv}return cv},e.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(te(n)){var i=this.__zr,a=!!(i&&i.isDarkMode()),o=Xo(r,0)0))},e.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},e.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&ga)&&(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==null?4:f)}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},e.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)),CI(s,l/u,r,n)))return!0}if(this.hasFill())return xI(s,r,n)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=ga,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(r){return this.animate("shape",r)},e.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):t.prototype.attrKV.call(this,r,n)},e.prototype.setShape=function(r,n){var i=this.shape;return i||(i=this.shape={}),typeof r=="string"?i[r]=n:G(i,r),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&ga)},e.prototype.createStyle=function(r){return ps(cb,r)},e.prototype._innerSaveToNormal=function(r){t.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=G({},this.shape))},e.prototype._applyStateObj=function(r,n,i,a,o,s){if(t.prototype._applyStateObj.call(this,r,n,i,a,o,s),this.__inHover!==pf){var l=!(n&&a),u;if(n&&n.shape?o?a?u=n.shape:(u=G({},i.shape),G(u,n.shape)):(u=G({},a?this.shape:i.shape),G(u,n.shape)):l&&(u=i.shape),u)if(o){this.shape=G({},this.shape);for(var f={},c=Pe(u),v=0;vi&&(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),t.moveTo(r+s,n),t.lineTo(r+i-l,n),l!==0&&t.arc(r+i-l,n+l,l,-Math.PI/2,0),t.lineTo(r+i,n+a-u),u!==0&&t.arc(r+i-u,n+a-u,u,0,Math.PI/2),t.lineTo(r+f,n+a),f!==0&&t.arc(r+f,n+a-f,f,Math.PI/2,Math.PI),t.lineTo(r,n+s),s!==0&&t.arc(r+s,n+s,s,Math.PI,Math.PI*1.5),t.closePath()}var Sa=Math.round;function hb(t,e,r){if(e){var n=e.x1,i=e.x2,a=e.y1,o=e.y2;t.x1=n,t.x2=i,t.y1=a,t.y2=o;var s=r&&r.lineWidth;return s&&(Sa(n*2)===Sa(i*2)&&(t.x1=t.x2=wi(n,s,!0)),Sa(a*2)===Sa(o*2)&&(t.y1=t.y2=wi(a,s,!0))),t}}function vb(t,e,r){if(e){var n=e.x,i=e.y,a=e.width,o=e.height;t.x=n,t.y=i,t.width=a,t.height=o;var s=r&&r.lineWidth;return s&&(t.x=wi(n,s,!0),t.y=wi(i,s,!0),t.width=Math.max(wi(n+a,s,!1)-t.x,a===0?0:1),t.height=Math.max(wi(i+o,s,!1)-t.y,o===0?0:1)),t}}function wi(t,e,r){if(!e)return t;var n=Sa(t*2);return(n+Sa(e))%2===0?n/2:(n+(r?1:-1))/2}var II=(function(){function t(){this.x=0,this.y=0,this.width=0,this.height=0}return t})(),LI={},Ge=(function(t){q(e,t);function e(r){return t.call(this,r)||this}return e.prototype.getDefaultShape=function(){return new II},e.prototype.buildPath=function(r,n){var i,a,o,s;if(this.subPixelOptimize){var l=vb(LI,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?PI(r,n):r.rect(i,a,o,s)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e})(Me);Ge.prototype.type="rect";var Ym={fill:"#000"},$m=2,Ar={},OI={style:Te({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},bf.style)},Ke=(function(t){q(e,t);function e(r){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Ym,n.attr(r),n}return e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){t.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,P=0;P=0&&(I=w[M],I.align==="right");)this._placeToken(I,r,C,g,P,"right",_),x-=I.width,P-=I.width,M--;for(D+=(f-(D-m)-(y-P)-x)/2;A<=M;)I=w[A],this._placeToken(I,r,C,g,D+I.width/2,"center",_),D+=I.width,A++;g+=C}},e.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 v=!r.isLineHolder&&Wc(u);v&&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,d=r.textPadding;d&&(o=Qm(o,s,d),c-=r.height/2-d[0]-r.innerHeight/2);var p=this._getOrCreateChild(Su),m=p.createStyle();p.useStyle(m);var g=this._defaultStyle,y=!1,_=0,S=!1,b=Km("fill"in u?u.fill:"fill"in n?n.fill:(y=!0,g.fill)),w=Zm("stroke"in u?u.stroke:"stroke"in n?n.stroke:!h&&!l&&(!g.autoStroke||y)?(_=$m,S=!0,g.stroke):null),T=u.textShadowBlur>0||n.textShadowBlur>0;m.text=r.text,m.x=o,m.y=c,T&&(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||Bn,m.opacity=Mn(u.opacity,n.opacity,1),qm(m,u),w&&(m.lineWidth=Mn(u.lineWidth,n.lineWidth,_),m.lineDash=ne(u.lineDash,n.lineDash),m.lineDashOffset=n.lineDashOffset||0,m.stroke=w),b&&(m.fill=b),p.setBoundingRect(Sv(m,r.contentWidth,r.contentHeight,S?0:null))},e.prototype._renderBackground=function(r,n,i,a,o,s){var l=r.backgroundColor,u=r.borderWidth,f=r.borderColor,c=l&&l.image,v=l&&!c,h=r.borderRadius,d=this,p,m;if(v||r.lineHeight||u&&f){p=this._getOrCreateChild(Ge),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=h,p.dirtyShape()}if(v){var y=p.style;y.fill=l||null,y.fillOpacity=ne(r.fillOpacity,1)}else if(c){m=this._getOrCreateChild(un),m.onload=function(){d.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=ne(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 S=(p||m).style;S.shadowBlur=r.shadowBlur||0,S.shadowColor=r.shadowColor||"transparent",S.shadowOffsetX=r.shadowOffsetX||0,S.shadowOffsetY=r.shadowOffsetY||0,S.opacity=Mn(r.opacity,n.opacity,1)},e.makeFont=function(r){var n="";return FI(r)&&(n=[r.fontStyle,r.fontWeight,BI(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&dr(n)||r.textFont||r.font},e})(Ss),kI={left:!0,right:1,center:1},NI={top:1,bottom:1,middle:1},Xm=["fontStyle","fontWeight","fontSize","fontFamily"];function BI(t){return typeof t=="string"&&(t.indexOf("px")!==-1||t.indexOf("rem")!==-1||t.indexOf("em")!==-1)?t:isNaN(+t)?Dd+"px":t+"px"}function qm(t,e){for(var r=0;r=0,a=!1;if(t instanceof Me){var o=yb(t),s=i&&o.selectFill||o.normalFill,l=i&&o.selectStroke||o.normalStroke;if(ia(s)||ia(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(a=!0,n=G({},n),u=G({},u),u.fill=s):!ia(u.fill)&&ia(s)?(a=!0,n=G({},n),u=G({},u),u.fill=iv(s)):!ia(u.stroke)&&ia(l)&&(a||(n=G({},n),u=G({},u)),u.stroke=iv(l)),n.style=u}}if(n&&n.z2==null){a||(n=G({},n));var f=t.z2EmphasisLift;n.z2=t.z2+(f!=null?f:GI)}return n}function jI(t,e,r){if(r&&r.z2==null){r=G({},r);var n=t.z2SelectLift;r.z2=t.z2+(n!=null?n:WI)}return r}function ZI(t,e,r){var n=ge(t.currentStates,e)>=0,i=t.style.opacity,a=n?null:XI(t,["opacity"],e,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=G({},r),o=G({opacity:n?i:a.opacity*.1},o),r.style=o),r}function Yc(t,e){var r=this.states[t];if(this.style){if(t==="emphasis")return qI(this,t,e,r);if(t==="blur")return ZI(this,t,r);if(t==="select")return jI(this,t,r)}return r}function KI(t){t.stateProxy=Yc;var e=t.getTextContent(),r=t.getTextGuideLine();e&&(e.stateProxy=Yc),r&&(r.stateProxy=Yc)}function i0(t,e){!Cb(t,e)&&!t.__highByOuter&&fn(t,_b)}function a0(t,e){!Cb(t,e)&&!t.__highByOuter&&fn(t,Sb)}function xu(t,e){t.__highByOuter|=1<<(e||0),fn(t,_b)}function Cu(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&fn(t,Sb)}function QI(t){fn(t,Zd)}function wb(t){fn(t,bb)}function Tb(t){fn(t,YI)}function xb(t){fn(t,$I)}function Cb(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function Ab(t){var e=t.getModel(),r=[],n=[];e.eachComponent(function(i,a){var o=Xd(a),s=VI(t,a),l=i==="series";!l&&n.push(s),o.isBlured&&(s.group.traverse(function(u){bb(u)}),l&&r.push(a)),o.isBlured=!1}),R(n,function(i){i&&i.toggleBlurSeries&&i.toggleBlurSeries(r,!1,e)})}function xv(t,e,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),e.push(s)}})}),e}function Au(t,e,r){Db(t,!0),fn(t,KI),aL(t,e,r)}function iL(t){Db(t,!1)}function Du(t,e,r,n){n?iL(t):Au(t,e,r)}function aL(t,e,r){var n=me(t);e!=null?(n.focus=e,n.blurScope=r):n.focus&&(n.focus=null)}var s0=["emphasis","blur","select"],oL={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Av(t,e,r,n){r=r||"itemStyle";for(var i=0;i1&&(o*=$c(d),s*=$c(d));var p=(i===a?-1:1)*$c((o*o*(s*s)-o*o*(h*h)-s*s*(v*v))/(o*o*(h*h)+s*s*(v*v)))||0,m=p*o*h/s,g=p*-s*v/o,y=(t+r)/2+Ys(c)*m-Ws(c)*g,_=(e+n)/2+Ws(c)*m+Ys(c)*g,S=c0([1,0],[(v-m)/o,(h-g)/s]),b=[(v-m)/o,(h-g)/s],w=[(-1*v-m)/o,(-1*h-g)/s],T=c0(b,w);if(Rv(b,w)<=-1&&(T=oo),Rv(b,w)>=1&&(T=0),T<0){var C=Math.round(T/oo*1e6)/1e6;T=oo*2+C%2*oo}f.addData(u,y,_,o,s,S,T,c,a)}var hL=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,vL=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function dL(t){var e=new Fn;if(!t)return e;var r=0,n=0,i=r,a=n,o,s=Fn.CMD,l=t.match(hL);if(!l)return e;for(var u=0;uI*I+k*k&&(C=A,x=D),{cx:C,cy:x,x0:-f,y0:-c,x1:C*(i/b-1),y1:x*(i/b-1)}}function wL(t){var e;if(K(t)){var r=t.length;if(!r)return t;r===1?e=[t[0],t[0],0,0]:r===2?e=[t[0],t[0],t[1],t[1]]:r===3?e=t.concat(t[2]):e=t}else e=[t,t,t,t];return e}function TL(t,e){var r,n=Co(e.r,0),i=Co(e.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=e.startAngle,u=e.endAngle;if(!(isNaN(l)||isNaN(u))){var f=e.cx,c=e.cy,v=!!e.clockwise,h=v0(u-l),d=h>Xc&&h%Xc;if(d>cr&&(h=d),!(n>cr))t.moveTo(f,c);else if(h>Xc-cr)t.moveTo(f+n*oa(l),c+n*oi(l)),t.arc(f,c,n,l,u,!v),i>cr&&(t.moveTo(f+i*oa(u),c+i*oi(u)),t.arc(f,c,i,u,l,v));else{var p=void 0,m=void 0,g=void 0,y=void 0,_=void 0,S=void 0,b=void 0,w=void 0,T=void 0,C=void 0,x=void 0,A=void 0,D=void 0,P=void 0,M=void 0,I=void 0,k=n*oa(l),O=n*oi(l),N=i*oa(u),U=i*oi(u),W=h>cr;if(W){var X=e.cornerRadius;X&&(r=wL(X),p=r[0],m=r[1],g=r[2],y=r[3]);var Q=v0(n-i)/2;if(_=Dr(Q,g),S=Dr(Q,y),b=Dr(Q,p),w=Dr(Q,m),x=T=Co(_,S),A=C=Co(b,w),(T>cr||C>cr)&&(D=n*oa(u),P=n*oi(u),M=i*oa(l),I=i*oi(l),hcr){var B=Dr(g,x),F=Dr(y,x),H=$s(M,I,k,O,n,B,v),Z=$s(D,P,N,U,n,F,v);t.moveTo(f+H.cx+H.x0,c+H.cy+H.y0),x0&&t.arc(f+H.cx,c+H.cy,B,lt(H.y0,H.x0),lt(H.y1,H.x1),!v),t.arc(f,c,n,lt(H.cy+H.y1,H.cx+H.x1),lt(Z.cy+Z.y1,Z.cx+Z.x1),!v),F>0&&t.arc(f+Z.cx,c+Z.cy,F,lt(Z.y1,Z.x1),lt(Z.y0,Z.x0),!v))}else t.moveTo(f+k,c+O),t.arc(f,c,n,l,u,!v);if(!(i>cr)||!W)t.lineTo(f+N,c+U);else if(A>cr){var B=Dr(p,A),F=Dr(m,A),H=$s(N,U,D,P,i,-F,v),Z=$s(k,O,M,I,i,-B,v);t.lineTo(f+H.cx+H.x0,c+H.cy+H.y0),A0&&t.arc(f+H.cx,c+H.cy,F,lt(H.y0,H.x0),lt(H.y1,H.x1),!v),t.arc(f,c,i,lt(H.cy+H.y1,H.cx+H.x1),lt(Z.cy+Z.y1,Z.cx+Z.x1),v),B>0&&t.arc(f+Z.cx,c+Z.cy,B,lt(Z.y1,Z.x1),lt(Z.y0,Z.x0),!v))}else t.lineTo(f+N,c+U),t.arc(f,c,i,u,l,v)}t.closePath()}}}var xL=(function(){function t(){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 t})(),$i=(function(t){q(e,t);function e(r){return t.call(this,r)||this}return e.prototype.getDefaultShape=function(){return new xL},e.prototype.buildPath=function(r,n){TL(r,n)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e})(Me);$i.prototype.type="sector";var CL=(function(){function t(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return t})(),Af=(function(t){q(e,t);function e(r){return t.call(this,r)||this}return e.prototype.getDefaultShape=function(){return new CL},e.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)},e})(Me);Af.prototype.type="ring";function AL(t,e,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 v=0,h=t.length;v=2){if(n){var a=AL(i,n,r,e.smoothConstraint);t.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];t.bezierCurveTo(l[0],l[1],u[0],u[1],f[0],f[1])}}else{t.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;sli[1]){if(a=!1,tt.negativeSize||n)return a;var l=Xs(li[0]-si[1]),u=Xs(si[0]-li[1]);qc(l,u)>js.len()&&(l=u||!tt.bidirectional)&&(he.scale(qs,s,-u*i),tt.useDir&&tt.calcDirMTV()))}}return a},t.prototype._getProjMinMaxOnAxis=function(e,r,n){for(var i=this._axes[e],a=this._origin,o=r[0].dot(i)+a[e],s=o,l=o,u=1;u0){var c=f.duration,v=f.delay,h=f.easing,d={duration:c,delay:v||0,easing:h,done:a,force:!!a||!!o,setToFinal:!u,scope:t,during:o};s?e.animateFrom(r,d):e.animateTo(r,d)}else e.stopAnimation(),!s&&e.attr(r),o&&o(1),a&&a()}function Lt(t,e,r,n,i,a){Jd("update",t,e,r,n,i,a)}function er(t,e,r,n,i,a){Jd("enter",t,e,r,n,i,a)}function Ca(t){if(!t.__zr)return!0;for(var e=0;eZe(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function g0(t){return!t.isGroup}function WL(t){return t.shape!=null}function jb(t,e,r){if(!t||!e)return;function n(o){var s={};return o.traverse(function(l){g0(l)&&l.anid&&(s[l.anid]=l)}),s}function i(o){var s={x:o.x,y:o.y,rotation:o.rotation};return WL(o)&&(s.shape=de(o.shape)),s}var a=n(t);e.traverse(function(o){if(g0(o)&&o.anid){var s=a[o.anid];if(s){var l=i(o);o.attr(i(s)),Lt(o,l,r,me(o).dataIndex)}}})}function Zb(t,e){return oe(t,function(r){var n=r[0];n=Ee(n,e.x),n=It(n,e.x+e.width);var i=r[1];return i=Ee(i,e.y),i=It(i,e.y+e.height),[n,i]})}function Kb(t,e){var r=Ee(t.x,e.x),n=It(t.x+t.width,e.x+e.width),i=Ee(t.y,e.y),a=It(t.y+t.height,e.y+e.height);if(n>=r&&a>=i)return{x:r,y:i,width:n-r,height:a-i}}function Mf(t,e,r){var n=G({rectHover:!0},e),i=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},t)return t.indexOf("image://")===0?(i.image=t.slice(8),Te(i,r),new un(n)):Rf(t.replace("path://",""),n,r,"center")}function YL(t,e,r,n,i){for(var a=0,o=i[i.length-1];a1)return!1;var m=jc(h,d,f,c)/v;return!(m<0||m>1)}function jc(t,e,r,n){return t*n-r*e}function $L(t){return t<=1e-6&&t>=-1e-6}function Ru(t,e,r,n,i){return e==null||(Re(e)?Ie[0]=Ie[1]=Ie[2]=Ie[3]=e:(Ie[0]=e[0],Ie[1]=e[1],Ie[2]=e[2],Ie[3]=e[3]),n&&(Ie[0]=Ee(0,Ie[0]),Ie[1]=Ee(0,Ie[1]),Ie[2]=Ee(0,Ie[2]),Ie[3]=Ee(0,Ie[3])),r&&(Ie[0]=-Ie[0],Ie[1]=-Ie[1],Ie[2]=-Ie[2],Ie[3]=-Ie[3]),m0(t,Ie,"x","width",3,1,i&&i[0]||0),m0(t,Ie,"y","height",0,2,i&&i[1]||0)),t}var Ie=[0,0,0,0];function m0(t,e,r,n,i,a,o){var s=e[a]+e[i],l=t[n];t[n]+=s,o=Ee(0,It(o,l)),t[n]=0?-e[i]:e[a]>=0?l+e[a]:Ze(s)>1e-8?(l-o)*e[i]/s:0):t[r]-=e[i]}function Pf(t){var e=t.itemTooltipOption,r=t.componentModel,n=t.itemName,i=te(e)?{formatter:e}:e,a=r.mainType,o=r.componentIndex,s={componentType:a,name:n,$vars:["name"]};s[a+"Index"]=o;var l=t.formatterParamsExtra;l&&R(Pe(l),function(f){Mt(s,f)||(s[f]=l[f],s.$vars.push(f))});var u=me(t.el);u.componentMainType=a,u.componentIndex=o,u.tooltipConfig={name:n,option:Te({content:n,encodeHTMLContent:!0,formatterParams:s},i)}}function Pv(t,e){var r;t.isGroup&&(r=e(t)),r||t.traverse(e)}function ip(t,e){if(t)if(K(t))for(var r=0;re&&(e=o),oe&&(r=e=0),{min:r,max:e}}function ew(t,e,r){tw(t,e,r,-1/0)}function tw(t,e,r,n){if(t.ignoreModelZ)return n;var i=t.getTextContent(),a=t.getTextGuideLine(),o=t.isGroup;if(o)for(var s=t.childrenRef(),l=0;l=0&&s.push(l)}),s}}function c2(t,e){return be(be({},t,!0),e,!0)}const h2={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",custom:"Custom chart",chart:"Chart"}},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:". "}}}},v2={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:"旭日图",custom:"自定义图表",chart:"图表"}},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 Mu="ZH",sp="EN",Aa=sp,Gl={},lp={},aw=ve.domSupported?(function(){var t=(document.documentElement.lang||navigator.language||navigator.browserLanguage||Aa).toUpperCase();return t.indexOf(Mu)>-1?Mu:Aa})():Aa;function up(t,e){t=t.toUpperCase(),lp[t]=new Le(e),Gl[t]=e}function d2(t){if(te(t)){var e=Gl[t.toUpperCase()]||{};return t===Mu||t===sp?de(e):be(de(e),de(Gl[Aa]),!1)}else return be(de(t),de(Gl[Aa]),!1)}function p2(t){return lp[t]}function g2(){return lp[Aa]}up(sp,h2);up(Mu,v2);var m2=null;function St(){return m2}function ow(t,e){var r=St(),n=e.breakOption,i=e.breakParsed;return!i&&r&&(i=r.parseAxisBreakOption(n,t)),i}function Pu(t){var e=t.brk;return e?e.breaks:[]}function Iu(t){var e=t.brk;return e?e.hasBreaks():!1}var fp=1e3,cp=fp*60,Bo=cp*60,Kt=Bo*24,T0=Kt*365,y2={year:/({yyyy}|{yy})/,month:/({MMMM}|{MMM}|{MM}|{M})/,day:/({dd}|{d})/,hour:/({HH}|{H}|{hh}|{h})/,minute:/({mm}|{m})/,second:/({ss}|{s})/,millisecond:/({SSS}|{S})/},Wl={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}"},_2="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}",Ks="{yyyy}-{MM}-{dd}",x0={year:"{yyyy}",month:"{yyyy}-{MM}",day:Ks,hour:Ks+" "+Wl.hour,minute:Ks+" "+Wl.minute,second:Ks+" "+Wl.second,millisecond:_2},kt=["year","month","day","hour","minute","second","millisecond"],S2=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function b2(t){return!te(t)&&!fe(t)?w2(t):t}function w2(t){t=t||{};var e={},r=!0;return R(kt,function(n){r&&(r=t[n]==null)}),R(kt,function(n,i){var a=t[n];e[n]={};for(var o=null,s=i;s>=0;s--){var l=kt[s],u=ie(a)&&!K(a)?a[l]:a,f=void 0;K(u)?(f=u.slice(),o=f[0]||""):te(u)?(o=u,f=[o]):(o==null?o=Wl[n]:y2[l].test(o)||(o=e[l][l][0]+" "+o),f=[o],r&&(f[1]="{primary|"+o+"}")),e[n][l]=f}}),e}function gt(t,e){return t+="","0000".substr(0,e-t.length)+t}function Fo(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function T2(t){return t===Fo(t)}function x2(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function xs(t,e,r,n){var i=ln(t),a=i[sw(r)](),o=i[hp(r)]()+1,s=Math.floor((o-1)/3)+1,l=i[vp(r)](),u=i["get"+(r?"UTC":"")+"Day"](),f=i[dp(r)](),c=(f-1)%12+1,v=i[pp(r)](),h=i[gp(r)](),d=i[mp(r)](),p=f>=12?"pm":"am",m=p.toUpperCase(),g=n instanceof Le?n:p2(n||aw)||g2(),y=g.getModel("time"),_=y.get("month"),S=y.get("monthAbbr"),b=y.get("dayOfWeek"),w=y.get("dayOfWeekAbbr");return(e||"").replace(/{a}/g,p+"").replace(/{A}/g,m+"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,gt(a%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,_[o-1]).replace(/{MMM}/g,S[o-1]).replace(/{MM}/g,gt(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,gt(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,b[u]).replace(/{ee}/g,w[u]).replace(/{e}/g,u+"").replace(/{HH}/g,gt(f,2)).replace(/{H}/g,f+"").replace(/{hh}/g,gt(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,gt(v,2)).replace(/{m}/g,v+"").replace(/{ss}/g,gt(h,2)).replace(/{s}/g,h+"").replace(/{SSS}/g,gt(d,3)).replace(/{S}/g,d+"")}function C2(t,e,r,n,i){var a=null;if(te(r))a=r;else if(fe(r)){var o={time:t.time,level:t.time?t.time.level:0},s=St();s&&s.makeAxisLabelFormatterParamBreak(o,t.break),a=r(t.value,e,o)}else{var l=t.time;if(l){var u=r[l.lowerTimeUnit][l.upperTimeUnit];a=u[Math.min(l.level,u.length-1)]||""}else{var f=Da(t.value,i);a=r[f][f][0]}}return xs(new Date(t.value),a,i,n)}function Da(t,e){var r=ln(t),n=r[hp(e)]()+1,i=r[vp(e)](),a=r[dp(e)](),o=r[pp(e)](),s=r[gp(e)](),l=r[mp(e)](),u=l===0,f=u&&s===0,c=f&&o===0,v=c&&a===0,h=v&&i===1,d=h&&n===1;return d?"year":h?"month":v?"day":c?"hour":f?"minute":u?"second":"millisecond"}function Lu(t,e,r){switch(e){case"year":t[lw(r)](0);case"month":t[uw(r)](1);case"day":t[fw(r)](0);case"hour":t[cw(r)](0);case"minute":t[hw(r)](0);case"second":t[vw(r)](0)}return t}function sw(t){return t?"getUTCFullYear":"getFullYear"}function hp(t){return t?"getUTCMonth":"getMonth"}function vp(t){return t?"getUTCDate":"getDate"}function dp(t){return t?"getUTCHours":"getHours"}function pp(t){return t?"getUTCMinutes":"getMinutes"}function gp(t){return t?"getUTCSeconds":"getSeconds"}function mp(t){return t?"getUTCMilliseconds":"getMilliseconds"}function A2(t){return t?"setUTCFullYear":"setFullYear"}function lw(t){return t?"setUTCMonth":"setMonth"}function uw(t){return t?"setUTCDate":"setDate"}function fw(t){return t?"setUTCHours":"setHours"}function cw(t){return t?"setUTCMinutes":"setMinutes"}function hw(t){return t?"setUTCSeconds":"setSeconds"}function vw(t){return t?"setUTCMilliseconds":"setMilliseconds"}function D2(t,e,r,n,i,a,o,s){var l=new Ke({style:{text:t,font:e,align:r,verticalAlign:n,padding:i,rich:a,overflow:o?"truncate":null,lineHeight:s}});return l.getBoundingRect()}function yp(t){if(!YS(t))return te(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function _p(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var Cs=cf;function Lv(t,e,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function i(f){return f&&dr(f)?f:"-"}function a(f){return Fr(f)}var o=e==="time",s=t instanceof Date;if(o||s){var l=o?ln(t):t;if(isNaN(+l)){if(s)return"-"}else return xs(l,n,r)}if(e==="ordinal")return au(t)?i(t):Re(t)&&a(t)?t+"":"-";var u=Zo(t);return a(u)?yp(u):au(t)?i(t):typeof t=="boolean"?t+"":"-"}var C0=["a","b","c","d","e","f","g"],Qc=function(t,e){return"{"+t+(e==null?"":e)+"}"};function Sp(t,e,r){K(e)||(e=[e]);var n=e.length;if(!n)return"";for(var i=e[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 E2(t,e,r){(t==="week"||t==="month"||t==="quarter"||t==="half-year"||t==="year")&&(t=`MM-dd +yyyy`);var n=ln(e),i=r?"getUTC":"get",a=n[i+"FullYear"](),o=n[i+"Month"]()+1,s=n[i+"Date"](),l=n[i+"Hours"](),u=n[i+"Minutes"](),f=n[i+"Seconds"](),c=n[i+"Milliseconds"]();return t=t.replace("MM",gt(o,2)).replace("M",o).replace("yyyy",a).replace("yy",gt(a%100+"",2)).replace("dd",gt(s,2)).replace("d",s).replace("hh",gt(l,2)).replace("h",l).replace("mm",gt(u,2)).replace("m",u).replace("ss",gt(f,2)).replace("s",f).replace("SSS",gt(c,3)),t}function R2(t){return t&&t.charAt(0).toUpperCase()+t.substr(1)}function Fi(t,e){return e=e||"transparent",te(t)?t:ie(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function A0(t,e){if(e==="_blank"||e==="blank"){var r=window.open();r.opener=null,r.location.href=t}else window.open(t,e)}var Yl={},Jc={},Bf=(function(){function t(){this._normalMasterList=[],this._nonSeriesBoxMasterList=[]}return t.prototype.create=function(e,r){this._nonSeriesBoxMasterList=n(Yl),this._normalMasterList=n(Jc);function n(i,a){var o=[];return R(i,function(s,l){var u=s.create(e,r);o=o.concat(u||[])}),o}},t.prototype.update=function(e,r){R(this._normalMasterList,function(n){n.update&&n.update(e,r)})},t.prototype.getCoordinateSystems=function(){return this._normalMasterList.concat(this._nonSeriesBoxMasterList)},t.register=function(e,r){if(e==="matrix"||e==="calendar"){Yl[e]=r;return}Jc[e]=r},t.get=function(e){return Jc[e]||Yl[e]},t})();function M2(t){return!!Yl[t]}var P2=1,pw=2;function I2(t){gw.set(t.fullType,{getCoord2:void 0}).getCoord2=t.getCoord2}var gw=ce();function mw(t){var e=t.getShallow("coord",!0),r=P2;if(e==null){var n=gw.get(t.type);n&&n.getCoord2&&(r=pw,e=n.getCoord2(t))}return{coord:e,from:r}}var Ea=0,$l=1,L2=2;function O2(t,e){var r=t.getShallow("coordinateSystem"),n=t.getShallow("coordinateSystemUsage",!0),i=Ea;if(r){var a=t.mainType==="series";n==null&&(n=a?"data":"box"),n==="data"?(i=$l,a||(i=Ea)):n==="box"&&(i=L2,!a&&!M2(r)&&(i=Ea))}return{coordSysType:r,kind:i}}function k2(t){var e=t.targetModel,r=t.coordSysType,n=t.coordSysProvider,i=t.isDefaultDataCoordSys,a=O2(e),o=a.kind,s=a.coordSysType;if(i&&o!==$l&&(o=$l,s=r),o===Ea||s!==r)return Ea;var l=n(r,e);return l?(o===$l?e.coordinateSystem=l:e.boxCoordinateSystem=l,o):Ea}var Xl=R,N2=["left","right","top","bottom","width","height"],Qs=[["width","left","right"],["height","top","bottom"]];function bp(t,e,r,n,i){var a=0,o=0;n==null&&(n=1/0),i==null&&(i=1/0);var s=0;e.eachChild(function(l,u){var f=l.getBoundingRect(),c=e.childAt(u+1),v=c&&c.getBoundingRect(),h,d;if(t==="horizontal"){var p=f.width+(v?-v.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 m=f.height+(v?-v.y+f.y:0);d=o+m,d>i||l.newline?(a+=s+r,o=0,d=m,s=f.width):s=Math.max(s,f.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),t==="horizontal"?a=h+r:o=d+r)})}var zo=bp;Ue(bp,"vertical");Ue(bp,"horizontal");function B2(t,e){return{left:t.getShallow("left",e),top:t.getShallow("top",e),right:t.getShallow("right",e),bottom:t.getShallow("bottom",e),width:t.getShallow("width",e),height:t.getShallow("height",e)}}function F2(t,e){var r=Ff(t,e,{enableLayoutOnlyByCenter:!0}),n=t.getBoxLayoutParams(),i,a;if(r.type===Do.point)a=r.refPoint,i=sn(n,{width:e.getWidth(),height:e.getHeight()});else{var o=t.get("center"),s=K(o)?o:[o,o];i=sn(n,r.refContainer),a=r.boxCoordFrom===pw?r.refPoint:[He(s[0],i.width)+i.x,He(s[1],i.height)+i.y]}return{viewRect:i,center:a}}function z2(t,e){var r=F2(t,e),n=r.viewRect,i=r.center,a=t.get("radius");K(a)||(a=[0,a]);var o=He(n.width,e.getWidth()),s=He(n.height,e.getHeight()),l=Math.min(o,s),u=He(a[0],l/2),f=He(a[1],l/2);return{cx:i[0],cy:i[1],r0:u,r:f,viewRect:n}}function sn(t,e,r){r=Cs(r||0);var n=e.width,i=e.height,a=He(t.left,n),o=He(t.top,i),s=He(t.right,n),l=He(t.bottom,i),u=He(t.width,n),f=He(t.height,i),c=r[2]+r[0],v=r[1]+r[3],h=t.aspect;switch(isNaN(u)&&(u=n-s-v-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-v),isNaN(o)&&(o=i-l-f-c),t.left||t.right){case"center":a=n/2-u/2-r[3];break;case"right":a=n-u-v;break}switch(t.top||t.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-v-a-(s||0)),isNaN(f)&&(f=i-c-o-(l||0));var d=new le((e.x||0)+a+r[3],(e.y||0)+o+r[0],u,f);return d.margin=r,d}var Do={rect:1,point:2};function Ff(t,e,r){var n,i,a,o=t.boxCoordinateSystem,s;if(o){var l=mw(t),u=l.coord,f=l.from;if(o.dataToLayout){a=Do.rect,s=f;var c=o.dataToLayout(u);n=c.contentRect||c.rect}else r&&r.enableLayoutOnlyByCenter&&o.dataToPoint&&(a=Do.point,s=f,i=o.dataToPoint(u))}return a==null&&(a=Do.rect),a===Do.rect&&(n||(n={x:0,y:0,width:e.getWidth(),height:e.getHeight()}),i=[n.x+n.width/2,n.y+n.height/2]),{type:a,refContainer:n,refPoint:i,boxCoordFrom:s}}function ts(t){var e=t.layoutMode||t.constructor.layoutMode;return ie(e)?e:e?{type:e}:null}function zn(t,e,r){var n=r&&r.ignoreSize;!K(n)&&(n=[n,n]);var i=o(Qs[0],0),a=o(Qs[1],1);l(Qs[0],t,i),l(Qs[1],t,a);function o(u,f){var c={},v=0,h={},d=0,p=2;if(Xl(u,function(y){h[y]=t[y]}),Xl(u,function(y){Mt(e,y)&&(c[y]=h[y]=e[y]),s(c,y)&&v++,s(h,y)&&d++}),n[f])return s(e,u[1])?h[u[2]]=null:s(e,u[2])&&(h[u[1]]=null),h;if(d===p||!v)return h;if(v>=p)return c;for(var m=0;m=0;l--)s=be(s,i[l],!0);n.defaultOption=s}return n.defaultOption},e.prototype.getReferringComponents=function(r,n){var i=r+"Index",a=r+"Id";return _s(this.ecModel,r,{index:this.get(i,!0),id:this.get(a,!0)},n)},e.prototype.getBoxLayoutParams=function(){return B2(this,!1)},e.prototype.getZLevelKey=function(){return""},e.prototype.setZLevel=function(r){this.option.zlevel=r},e.protoInitialize=(function(){var r=e.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0})(),e})(Le);rb(Se,Le);_f(Se);u2(Se);f2(Se,V2);function V2(t){var e=[];return R(Se.getClassesByMainType(t),function(r){e=e.concat(r.dependencies||r.prototype.dependencies||[])}),e=oe(e,function(r){return Mr(r).main}),t!=="dataset"&&ge(e,"dataset")<=0&&e.unshift("dataset"),e}var ae={color:{},darkColor:{},size:{}},Ne=ae.color={theme:["#5070dd","#b6d634","#505372","#ff994d","#0ca8df","#ffd10a","#fb628b","#785db0","#3fbe95"],neutral00:"#fff",neutral05:"#f4f7fd",neutral10:"#e8ebf0",neutral15:"#dbdee4",neutral20:"#cfd2d7",neutral25:"#c3c5cb",neutral30:"#b7b9be",neutral35:"#aaacb2",neutral40:"#9ea0a5",neutral45:"#929399",neutral50:"#86878c",neutral55:"#797b7f",neutral60:"#6d6e73",neutral65:"#616266",neutral70:"#54555a",neutral75:"#48494d",neutral80:"#3c3c41",neutral85:"#303034",neutral90:"#232328",neutral95:"#17171b",neutral99:"#000",accent05:"#eff1f9",accent10:"#e0e4f2",accent15:"#d0d6ec",accent20:"#c0c9e6",accent25:"#b1bbdf",accent30:"#a1aed9",accent35:"#91a0d3",accent40:"#8292cc",accent45:"#7285c6",accent50:"#6578ba",accent55:"#5c6da9",accent60:"#536298",accent65:"#4a5787",accent70:"#404c76",accent75:"#374165",accent80:"#2e3654",accent85:"#252b43",accent90:"#1b2032",accent95:"#121521",transparent:"rgba(0,0,0,0)",highlight:"rgba(255,231,130,0.8)"};G(Ne,{primary:Ne.neutral80,secondary:Ne.neutral70,tertiary:Ne.neutral60,quaternary:Ne.neutral50,disabled:Ne.neutral20,border:Ne.neutral30,borderTint:Ne.neutral20,borderShade:Ne.neutral40,background:Ne.neutral05,backgroundTint:"rgba(234,237,245,0.5)",backgroundTransparent:"rgba(255,255,255,0)",backgroundShade:Ne.neutral10,shadow:"rgba(0,0,0,0.2)",shadowTint:"rgba(129,130,136,0.2)",axisLine:Ne.neutral70,axisLineTint:Ne.neutral40,axisTick:Ne.neutral70,axisTickMinor:Ne.neutral60,axisLabel:Ne.neutral70,axisSplitLine:Ne.neutral15,axisMinorSplitLine:Ne.neutral05});for(var ui in Ne)if(Ne.hasOwnProperty(ui)){var D0=Ne[ui];ui==="theme"?ae.darkColor.theme=Ne.theme.slice():ui==="highlight"?ae.darkColor.highlight="rgba(255,231,130,0.4)":ui.indexOf("accent")===0?ae.darkColor[ui]=pu(D0,null,function(t){return t*.5},function(t){return Math.min(1,1.3-t)}):ae.darkColor[ui]=pu(D0,null,function(t){return t*.9},function(t){return 1-Math.pow(t,1.5)})}ae.size={xxs:2,xs:5,s:10,m:15,l:20,xl:30,xxl:40,xxxl:50};var yw="";typeof navigator!="undefined"&&(yw=navigator.platform||"");var sa="rgba(0, 0, 0, 0.2)",_w=ae.color.theme[0],G2=pu(_w,null,null,.9);const Sw={darkMode:"auto",colorBy:"series",color:ae.color.theme,gradientColor:[G2,_w],aria:{decal:{decals:[{color:sa,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:sa,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:sa,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:sa,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:sa,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:sa,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:yw.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 nt={Must:1,Might:2,Not:3},bw=we();function W2(t){bw(t).datasetMap=ce()}function Y2(t,e,r){var n={},i=wp(e);if(!i||!t)return n;var a=[],o=[],s=e.ecModel,l=bw(s).datasetMap,u=i.uid+"_"+r.seriesLayoutBy,f,c;t=t.slice(),R(t,function(p,m){var g=ie(p)?p:t[m]={name:p};g.type==="ordinal"&&f==null&&(f=m,c=d(g)),n[g.name]=[]});var v=l.get(u)||l.set(u,{categoryWayDim:c,valueWayDim:0});R(t,function(p,m){var g=p.name,y=d(p);if(f==null){var _=v.valueWayDim;h(n[g],_,y),h(o,_,y),v.valueWayDim+=y}else if(f===m)h(n[g],0,y),h(a,0,y);else{var _=v.categoryWayDim;h(n[g],_,y),h(o,_,y),v.categoryWayDim+=y}});function h(p,m,g){for(var y=0;ye)return t[n];return t[r-1]}function K2(t,e,r,n,i,a,o){a=a||t;var s=e(a),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(i))return u[i];var f=o==null||!n?r:Z2(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 Q2(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}var Js,so,R0,M0="\0_ec_inner",J2=1,xp=(function(t){q(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.init=function(r,n,i,a,o,s){a=a||{},this.option=null,this._theme=new Le(a),this._locale=new Le(o),this._optionManager=s},e.prototype.setOption=function(r,n,i){var a=L0(n);this._optionManager.setOption(r,i,a),this._resetOption(null,a)},e.prototype.resetOption=function(r,n){return this._resetOption(r,L0(n))},e.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"?R0(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},e.prototype.mergeOption=function(r){this._mergeOption(r,null)},e.prototype._mergeOption=function(r,n){var i=this.option,a=this._componentsMap,o=this._componentsCount,s=[],l=ce(),u=n&&n.replaceMergeMainTypeMap;W2(this),R(r,function(c,v){c!=null&&(Se.hasClass(v)?v&&(s.push(v),l.set(v,!0)):i[v]=i[v]==null?de(c):be(i[v],c,!0))}),u&&u.each(function(c,v){Se.hasClass(v)&&!l.get(v)&&(s.push(v),l.set(v,!0))}),Se.topologicalTravel(s,Se.getAllClassMainTypes(),f,this);function f(c){var v=j2(this,c,wt(r[c])),h=a.get(c),d=h?u&&u.get(c)?"replaceMerge":"normalMerge":"replaceAll",p=wP(h,v,d);RP(p,c,Se),i[c]=null,a.set(c,null),o.set(c,0);var m=[],g=[],y=0,_;R(p,function(S,b){var w=S.existing,T=S.newOption;if(!T)w&&(w.mergeOption({},this),w.optionUpdated({},!1));else{var C=c==="series",x=Se.getClass(c,S.keyInfo.subType,!C);if(!x)return;if(c==="tooltip"){if(_)return;_=!0}if(w&&w.constructor===x)w.name=S.keyInfo.name,w.mergeOption(T,this),w.optionUpdated(T,!1);else{var A=G({componentIndex:b},S.keyInfo);w=new x(T,this,this,A),G(w,A),S.brandNew&&(w.__requireNewView=!0),w.init(T,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"&&Js(this)}this._seriesIndices||Js(this)},e.prototype.getOption=function(){var r=de(this.option);return R(r,function(n,i){if(Se.hasClass(i)){for(var a=wt(n),o=a.length,s=!1,l=o-1;l>=0;l--)a[l]&&!Ko(a[l])?s=!0:(a[l]=null,!s&&o--);a.length=o,r[i]=a}}),delete r[M0],r},e.prototype.setTheme=function(r){this._theme=new Le(r),this._resetOption("recreate",null)},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.setUpdatePayload=function(r){this._payload=r},e.prototype.getUpdatePayload=function(){return this._payload},e.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=e:r==="max"?t<=e:t===e}function sO(t,e){return t.join(",")===e.join(",")}var fr=R,rs=ie,O0=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function eh(t){var e=t&&t.itemStyle;if(e)for(var r=0,n=O0.length;r0?r[o-1].seriesModel:null)}),mO(r)}})}function mO(t){R(t,function(e,r){var n=[],i=[NaN,NaN],a=[e.stackResultDimension,e.stackedOverDimension],o=e.data,s=e.isStackedByIndex,l=e.seriesModel.get("stackStrategy")||"samesign";o.modify(a,function(u,f,c){var v=o.get(e.stackedDimension,c);if(isNaN(v))return i;var h,d;s?d=o.getRawIndex(c):h=o.get(e.stackedByDimension,c);for(var p=NaN,m=r-1;m>=0;m--){var g=t[m];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,h)),d>=0){var y=g.data.getByRawIndex(g.stackResultDimension,d);if(l==="all"||l==="positive"&&y>0||l==="negative"&&y<0||l==="samesign"&&v>=0&&y>0||l==="samesign"&&v<=0&&y<0){v=vP(v,y),p=y;break}}}return n[0]=v,n[1]=p,n})})}var zf=(function(){function t(e){this.data=e.data||(e.sourceFormat===br?{}:[]),this.sourceFormat=e.sourceFormat||gb,this.seriesLayoutBy=e.seriesLayoutBy||mr,this.startIndex=e.startIndex||0,this.dimensionsDetectedCount=e.dimensionsDetectedCount,this.metaRawOption=e.metaRawOption;var r=this.dimensionsDefine=e.dimensionsDefine;if(r)for(var n=0;np&&(p=_)}h[0]=d,h[1]=p}},i=function(){return this._data?this._data.length/this._dimSize:0};U0=(e={},e[ht+"_"+mr]={pure:!0,appendData:a},e[ht+"_"+Yi]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},e[or]={pure:!0,appendData:a},e[br]={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])})}},e[zt]={appendData:a},e[Ln]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},e);function a(o){for(var s=0;s=0&&(p=o.interpolatedValue[m])}return p!=null?p+"":""})}},t.prototype.getRawValue=function(e,r){return Ha(this.getData(r),e)},t.prototype.formatTooltip=function(e,r,n){},t})();function Y0(t){var e,r;return ie(t)?t.type&&(r=t):e=t,{text:e,frag:r}}function Ho(t){return new AO(t)}var AO=(function(){function t(e){e=e||{},this._reset=e.reset,this._plan=e.plan,this._count=e.count,this._onDirty=e.onDirty,this._dirty=!0}return t.prototype.perform=function(e){var r=this._upstream,n=e&&e.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(e&&e.modBy),u=e&&e.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 v=e&&e.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,d=Math.min(v!=null?this._dueIndex+v:1/0,this._dueEnd);if(!n&&(c||h1&&n>0?s:o}};return a;function o(){return e=t?null:li?-this._resultLT:0},t})();function EO(t){var e="",r=-1/0,n=-1/0,i=1/0,a=1/0;return t&&(t.g!=null&&(e+="G"+t.g,r=t.g),t.ge!=null&&(e+="GE"+t.ge,n=t.ge),t.l!=null&&(e+="L"+t.l,i=t.l),t.le!=null&&(e+="LE"+t.le,a=t.le)),{key:e,g:r,ge:n,l:i,le:a}}function RO(t,e){return e>t.g&&e>=t.ge&&e65535?zO:HO}function UO(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function q0(t,e,r,n,i){var a=kw[r||"float"];if(i){var o=t[e],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}},t.prototype._initDataFromProvider=function(e,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;fg[1]&&(g[1]=m)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=r,this._extent=[]},t.prototype.count=function(){return this._count},t.prototype.get=function(e,r){if(!(r>=0&&r=0&&r=this._rawCount||e<0)return-1;if(!this._indices)return e;var r=this._indices,n=r[e];if(n!=null&&ne)a=o-1;else return o}return-1},t.prototype.getIndices=function(){var e,r=this._indices;if(r){var n=r.constructor,i=this._count;if(n===Array){e=new n(i);for(var a=0;a=c&&y<=v||isNaN(y))&&(l[u++]=p),p++}d=!0}else if(a===2){for(var m=h[i[0]],_=h[i[1]],S=e[i[1]][0],b=e[i[1]][1],g=0;g=c&&y<=v||isNaN(y))&&(w>=S&&w<=b||isNaN(w))&&(l[u++]=p),p++}d=!0}}if(!d)if(a===1)for(var g=0;g=c&&y<=v||isNaN(y))&&(l[u++]=T)}else for(var g=0;ge[A][1])&&(C=!1)}C&&(l[u++]=r.getRawIndex(g))}return ug[1]&&(g[1]=m)}}}},t.prototype.lttbDownSample=function(e,r){var n=this.clone([e],!0),i=n._chunks,a=i[e],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),f,c,v,h=new(la(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));h[s++]=u;for(var d=1;df&&(f=c,v=S)}D>0&&Ds&&(p=s-f);for(var m=0;md&&(d=y,h=f+m)}var _=this.getRawIndex(c),S=this.getRawIndex(h);cf-d&&(l=f-d,s.length=l);for(var p=0;pc[1]&&(c[1]=g),v[h++]=y}return a._count=h,a._indices=v,a._updateGetRawIdx(),a},t.prototype.each=function(e,r){if(this._count)for(var n=e.length,i=this._chunks,a=0,o=this.count();ah&&(h=m))}return l[f]=[v,h]},t.prototype.getRawDataItem=function(e){var r=this.getRawIndex(e);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],i=this._chunks,a=0;a=0?this._indices[e]:-1},t.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},t.internalField=(function(){function e(r,n,i,a){return ql(r[a],this._dimensions[a])}nh={arrayRows:e,objectRows:function(r,n,i,a){return ql(r[n],this._dimensions[a])},keyedColumns:e,original:function(r,n,i,a){var o=r&&(r.value==null?r:r.value);return ql(o instanceof Array?o[a]:o,this._dimensions[a])},typedArray:function(r,n,i,a){return r[a]}}})(),t})(),Nw=(function(){function t(e){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=e}return t.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},t.prototype._setLocalSource=function(e,r){this._sourceList=e,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},t.prototype._createSource=function(){this._setLocalSource([],[]);var e=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,i,a;if(tl(e)){var o=e,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=xt(s)?Ln:zt,a=[];var c=this._getSourceMetaRawOption()||{},v=u&&u.metaRawOption||{},h=ne(c.seriesLayoutBy,v.seriesLayoutBy)||null,d=ne(c.sourceHeader,v.sourceHeader),p=ne(c.dimensions,v.dimensions),m=h!==v.seriesLayoutBy||!!d!=!!v.sourceHeader||p;i=m?[Ov(s,{seriesLayoutBy:h,sourceHeader:d,dimensions:p},l)]:[]}else{var g=e;if(n){var y=this._applyTransform(r);i=y.sourceList,a=y.upstreamSignList}else{var _=g.get("source",!0);i=[Ov(_,this._getSourceMetaRawOption(),null)],a=[]}}this._setLocalSource(i,a)},t.prototype._applyTransform=function(e){var r=this._sourceHost,n=r.get("transform",!0),i=r.get("fromTransformResult",!0);if(i!=null){var a="";e.length!==1&&Z0(a)}var o,s=[],l=[];return R(e,function(u){u.prepareSource();var f=u.getSource(i||0),c="";i!=null&&!f&&Z0(c),s.push(f),l.push(u._getVersionSign())}),n?o=BO(n,s,{datasetIndex:r.componentIndex}):i!=null&&(o=[yO(s[0])]),{sourceList:o,upstreamSignList:l}},t.prototype._isDirty=function(){if(this._dirty)return!0;for(var e=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return I(e.blocks,function(i){var a=tS(i);a>=t&&(t=a+ +(n&&(!a||Kh(i)&&!i.noHeader)))}),t}return 0}function vO(e,t,r,n){var i=t.noHeader,a=pO(tS(t)),o=[],s=t.blocks||[];Wr(!s||et(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Ca(u,l)){var f=new ZR(u[l],null);s.sort(function(d,p){return f.evaluate(d.sortParam,p.sortParam)})}else l==="seriesDesc"&&s.reverse()}I(s,function(d,p){var g=t.valueFormatter,m=Jb(d)(g?Y(Y({},e),{valueFormatter:g}):e,d,p>0?a.html:0,n);m!=null&&o.push(m)});var c=e.renderMode==="richText"?o.join(a.richText):Zh(o.join(""),i?r:a.html);if(i)return c;var v=qh(t.header,"ordinal",e.useUTC),h=Qb(n,e.renderMode).nameStyle;return e.renderMode==="richText"?eS(e,v,h)+a.richText+c:Zh('
'+Ke(v)+"
"+c,r)}function dO(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(w){return w=et(w)?w:[w],ct(w,function(S,b){return qh(S,et(h)?h[b]:h,u)})};if(!(a&&o)){var c=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||"#333",i),v=a?"":qh(l,"ordinal",u),h=t.valueType,d=o?[]:f(t.value),p=!s||!a,g=!s&&a,m=Qb(n,i),y=m.nameStyle,_=m.valueStyle;return i==="richText"?(s?"":c)+(a?"":eS(e,v,y))+(o?"":yO(e,d,p,g,_)):Zh((s?"":c)+(a?"":gO(v,!s,y))+(o?"":mO(d,p,g,_)),r)}}function yy(e,t,r,n,i,a){if(!!e){var o=Jb(e),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,a)}}function pO(e){return{html:cO[e],richText:hO[e]}}function Zh(e,t){var r='
',n="margin: "+t+"px 0 0";return'
'+e+r+"
"}function gO(e,t,r){var n=t?"margin-left:2px":"";return''+Ke(e)+""}function mO(e,t,r,n){var i=r?"10px":"20px",a=t?"float:right;margin-left:"+i:"";return e=et(e)?e:[e],''+ct(e,function(o){return Ke(o)}).join("  ")+""}function eS(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function yO(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(et(t)?t.join(" "):t,a)}function _O(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Ti(n)}function rS(e,t){var r=e.get("padding");return r!=null?r:t==="richText"?[8,10]:10}var mc=function(){function e(){this.richTextStyles={},this._nextStyleNameId=vw()}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=aR({color:r,type:t,renderMode:n,markerId:i});return it(a)?a:(this.richTextStyles[i]=a.style,a.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};et(r)?I(r,function(a){return Y(n,a)}):Y(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},e}();function wO(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=et(s),u=_O(t,r),f,c,v,h;if(o>1||l&&!o){var d=bO(s,t,r,a,u);f=d.inlineValues,c=d.inlineValueTypes,v=d.blocks,h=d.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=f=Da(i,r,a[0]),c=p.type}else h=f=l?s[0]:s;var g=wd(t),m=g&&t.name||"",y=i.getName(r),_=n?m:y;return os("section",{header:m,noHeader:n||!g,sortParam:h,blocks:[os("nameValue",{markerType:"item",markerColor:u,name:_,noName:!Tr(_),value:f,valueType:c})].concat(v||[])})}function bO(e,t,r,n,i){var a=t.getData(),o=Ln(e,function(c,v,h){var d=a.getDimensionInfo(h);return c=c||d&&d.tooltip!==!1&&d.displayName!=null},!1),s=[],l=[],u=[];n.length?I(n,function(c){f(Da(a,r,c),c)}):I(e,f);function f(c,v){var h=a.getDimensionInfo(v);!h||h.otherDims.tooltip===!1||(o?u.push(os("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 an=Qt();function tl(e,t){return e.getName(t)||e.getId(t)}var SO="__universalTransitionEnabled",sf=function(e){J(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=Bo({count:TO,reset:CO}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=an(this).sourceManager=new fO(this);a.prepareSource();var o=this.getInitialData(r,i);wy(o,this),this.dataTask.context.data=o,an(this).dataBeforeProcessed=o,_y(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var i=is(this),a=i?nf(r):{},o=this.subType;$t.hasClass(o)&&(o+="Series"),Dt(r,n.getTheme().get(this.subType)),Dt(r,this.getDefaultOption()),Oh(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&Aa(r,a,i)},t.prototype.mergeOption=function(r,n){r=Dt(this.option,r,!0),this.fillDataTextStyle(r.data);var i=is(this);i&&Aa(this.option,r,i);var a=an(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);wy(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,an(this).dataBeforeProcessed=o,_y(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!Be(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=Vd.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[tl(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[SO])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"){st(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,f=0;f0&&this._innerSelect(r,n)}},t.registerClass=function(r){return $t.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}($t);Pr(sf,jR);Pr(sf,Vd);_w(sf,$t);function _y(e){var t=e.name;wd(e)||(e.name=xO(e)||t)}function xO(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return I(r,function(i){var a=t.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function TO(e){return e.model.getRawData().count()}function CO(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),MO}function MO(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function wy(e,t){I(wP(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Xt(AO,t))})}function AO(e,t){var r=Qh(e);return r&&r.setOutputEnd((t||this).count()),t}function Qh(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}}var Pa=sf,Xd=function(){function e(){this.group=new ye,this.uid=Ku("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.blurSeries=function(t,r){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();Sd(Xd);Hu(Xd);var qr=Xd;function nS(){var e=Qt();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 iS=Qt(),DO=nS(),jd=function(){function e(){this.group=new ye,this.uid=Ku("viewChart"),this.renderTask=Bo({plan:PO,reset:IO}),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||Sy(a,i,"emphasis")},e.prototype.downplay=function(t,r,n,i){var a=t.getData(i&&i.dataType);!a||Sy(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){Od(this.group,t)},e.markUpdateMethod=function(t,r){iS(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function by(e,t,r){e&&Gh(e)&&(t==="emphasis"?iu:au)(e,r)}function Sy(e,t,r){var n=Si(e,t),i=t&&t.highlightKey!=null?RL(t.highlightKey):null;n!=null?I(me(n),function(a){by(e.getItemGraphicEl(a),r,i)}):e.eachItemGraphicEl(function(a){by(a,r,i)})}Sd(jd);Hu(jd);function PO(e){return DO(e.model)}function IO(e){var t=e.model,r=e.ecModel,n=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&iS(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,i),EO[l]}var EO={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)}}},Gr=jd,hu="\0__throttleOriginMethod",xy="\0__throttleRate",Ty="\0__throttleType";function aS(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 v=function(){for(var h=[],d=0;d=0?c():o=setTimeout(c,-s),i=n};return v.clear=function(){o&&(clearTimeout(o),o=null)},v.debounceNextCall=function(h){f=h},v}function oS(e,t,r,n){var i=e[t];if(!!i){var a=i[hu]||i,o=i[Ty],s=i[xy];if(s!==r||o!==n){if(r==null||!n)return e[t]=a;i=e[t]=aS(a,r,n==="debounce"),i[hu]=a,i[Ty]=n,i[xy]=r}return i}}function Jh(e,t){var r=e[t];r&&r[hu]&&(r.clear&&r.clear(),e[t]=r[hu])}var Cy=Qt(),My={itemStyle:es(mb,!0),lineStyle:es(gb,!0)},LO={lineStyle:"stroke",itemStyle:"fill"};function sS(e,t){var r=e.visualStyleMapper||My[t];return r||(console.warn("Unkown style type '"+t+"'."),My.itemStyle)}function lS(e,t){var r=e.visualDrawType||LO[t];return r||(console.warn("Unkown style type '"+t+"'."),"fill")}var RO={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=e.getModel(n),a=sS(e,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=lS(e,n),u=o[l],f=mt(u)?u:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||c){var v=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=v,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||mt(o.fill)?v:o.fill,o.stroke=o.stroke==="auto"||mt(o.stroke)?v:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&f)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,d){var p=e.getDataParams(d),g=Y({},o);g[l]=f(p),h.setItemVisual(d,"style",g)}}}},eo=new ce,OO={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",i=sS(e,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){eo.option=l[n];var u=i(eo),f=o.ensureUniqueItemVisual(s,"style");Y(f,u),eo.option.decal&&(o.setItemVisual(s,"decal",eo.option.decal),eo.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},kO={performRawSeries:!0,overallReset:function(e){var t=_t();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)),Cy(r).scope=a}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),i={},a=r.getData(),o=Cy(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=lS(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 v=a.ensureUniqueItemVisual(f,"style"),h=n.getName(u)||u+"",d=n.count();v[l]=r.getColorFromPalette(h,o,d)}})}})}},el=Math.PI;function NO(e,t){t=t||{},Pt(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 ye,n=new ne({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var i=new he({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 ne({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 Dd({shape:{startAngle:-el/2,endAngle:-el/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:el*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:el*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 BO=function(){function e(t,r,n,i){this._stageTaskMap=_t(),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=_t();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;I(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,{}),o="";Wr(!(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;I(t,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),c=f.seriesTaskMap,v=f.overallTask;if(v){var h,d=v.agentStubMap;d.each(function(g){s(i,g)&&(g.dirty(),h=!0)}),h&&v.dirty(),o.updatePayload(v,n);var p=o.getPerformArgs(v,i.block);d.each(function(g){g.perform(p)}),v.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=_t(),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 v=c.uid,h=s.set(v,o&&o.get(v)||Bo({plan:VO,reset:GO,count:WO}));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||Bo({reset:FO});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=_t(),u=t.seriesType,f=t.getTargetSeries,c=!0,v=!1,h="";Wr(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,d):f?f(n,i).each(d):(c=!1,I(n.getSeries(),d));function d(p){var g=p.uid,m=l.set(g,s&&s.get(g)||(v=!0,Bo({reset:zO,onDirty:$O})));m.context={model:p,overallProgress:c},m.agent=o,m.__block=c,a._pipe(p,m)}v&&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 mt(t)&&(t={overallReset:t,seriesType:YO(t)}),t.uid=Ku("stageHandler"),r&&(t.visualType=r),t},e}();function FO(e){e.overallReset(e.ecModel,e.api,e.payload)}function zO(e){return e.overallProgress&&HO}function HO(){this.agent.dirty(),this.getDownstream().dirty()}function $O(){this.agent&&this.agent.dirty()}function VO(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function GO(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=me(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?ct(t,function(r,n){return uS(n)}):UO}var UO=uS(0);function uS(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-v.length){var d=u.slice(0,h);d!=="data"&&(r.mainType=d,r[v.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,v,h,d){return c[h]==null||v[d||h]===c[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),tv=["symbol","symbolSize","symbolRotate","symbolOffset"],Iy=tv.concat(["symbolKeepAspect"]),KO={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;o0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:zt(e)?[e]:et(e)?e:null}function pS(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&yk(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(r=ct(r,function(a){return a/i}),n/=i)}return[r,n]}var _k=new On(!0);function du(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function Ey(e){return typeof e=="string"&&e!=="none"}function pu(e){var t=e.fill;return t!=null&&t!=="none"}function Ly(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 Ry(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 nv(e,t,r){var n=ww(t.image,t.__image,r);if($u(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)*bP),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function wk(e,t,r,n){var i,a=du(r),o=pu(r),s=r.strokePercent,l=s<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var f=t.path||_k,c=t.__dirty;if(!n){var v=r.fill,h=r.stroke,d=o&&!!v.colorStops,p=a&&!!h.colorStops,g=o&&!!v.image,m=a&&!!h.image,y=void 0,_=void 0,w=void 0,S=void 0,b=void 0;(d||p)&&(b=t.getBoundingRect()),d&&(y=c?rv(e,v,b):t.__canvasFillGradient,t.__canvasFillGradient=y),p&&(_=c?rv(e,h,b):t.__canvasStrokeGradient,t.__canvasStrokeGradient=_),g&&(w=c||!t.__canvasFillPattern?nv(e,v,t):t.__canvasFillPattern,t.__canvasFillPattern=w),m&&(S=c||!t.__canvasStrokePattern?nv(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=w),d?e.fillStyle=y:g&&(w?e.fillStyle=w:o=!1),p?e.strokeStyle=_:m&&(S?e.strokeStyle=S:a=!1)}var x=t.getGlobalScale();f.setScale(x[0],x[1],t.segmentIgnoreThreshold);var T,C;e.setLineDash&&r.lineDash&&(i=pS(t),T=i[0],C=i[1]);var D=!0;(u||c&ra)&&(f.setDPR(e.dpr),l?f.setContext(null):(f.setContext(e),D=!1),f.reset(),t.buildPath(f,t.shape,n),f.toStatic(),t.pathUpdated()),D&&f.rebuildPath(e,l?s:1),T&&(e.setLineDash(T),e.lineDashOffset=C),n||(r.strokeFirst?(a&&Ry(e,r),o&&Ly(e,r)):(o&&Ly(e,r),a&&Ry(e,r))),T&&e.setLineDash([])}function bk(e,t,r){var n=t.__image=ww(r.image,t.__image,t,t.onload);if(!(!n||!$u(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,v=s-f;e.drawImage(n,u,f,c,v,i,a,o,s)}else e.drawImage(n,i,a,o,s)}}function Sk(e,t,r){var n,i=r.text;if(i!=null&&(i+=""),i){e.font=r.font||bi,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var a=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=pS(t),a=n[0],o=n[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),r.strokeFirst?(du(r)&&e.strokeText(i,r.x,r.y),pu(r)&&e.fillText(i,r.x,r.y)):(pu(r)&&e.fillText(i,r.x,r.y),du(r)&&e.strokeText(i,r.x,r.y)),a&&e.setLineDash([])}}var Oy=["shadowBlur","shadowOffsetX","shadowOffsetY"],ky=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function gS(e,t,r,n,i){var a=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){Te(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?gi.opacity:o}(n||t.blend!==r.blend)&&(a||(Te(e,i),a=!0),e.globalCompositeOperation=t.blend||gi.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[se]){if(this._disposed){this.id;return}var a,o,s;if(st(n)&&(i=n.lazyUpdate,a=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[se]=!0,!this._model||n){var l=new LR(this._api),u=this._theme,f=this._model=new Fb;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},av);var c={seriesTransition:s,optionChanged:!0};if(i)this[we]={silent:a,updateParams:c},this[se]=!1,this.getZr().wakeUp();else{try{Ki(this),on.update.call(this,null,c)}catch(v){throw this[we]=null,this[se]=!1,v}this._ssr||this._zr.flush(),this[we]=null,this[se]=!1,ro.call(this,a),no.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||Ok&&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(!!wt.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return I(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;I(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 I(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(Zy[i]){var l=s,u=s,f=-s,c=-s,v=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();I(zo,function(_,w){if(_.group===i){var S=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(xt(r)),b=_.getDom().getBoundingClientRect();l=a(b.left,l),u=a(b.top,u),f=o(b.right,f),c=o(b.bottom,c),v.push({dom:S,left:b.left,top:b.top})}}),l*=h,u*=h,f*=h,c*=h;var d=f-l,p=c-u,g=Pi.createCanvas(),m=Qg(g,{renderer:n?"svg":"canvas"});if(m.resize({width:d,height:p}),n){var y="";return I(v,function(_){var w=_.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 ne({shape:{x:0,y:0,width:d,height:p},style:{fill:r.connectedBackgroundColor}})),I(v,function(_){var w=new Ii({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});m.add(w)}),m.refreshImmediately(),g.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return Sc(this,"convertToPixel",r,n)},t.prototype.convertFromPixel=function(r,n){return Sc(this,"convertFromPixel",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Wf(i,r);return I(o,function(s,l){l.indexOf("Models")>=0&&I(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=Wf(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?QO(s,l,n):JO(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;I(jk,function(n){var i=function(a){var o=r.getModel(),s=a.target,l,u=n==="globalout";if(u?l={}:s&&_o(s,function(d){var p=Nt(d);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=Y({},p.eventData),!0},!0),l){var f=l.componentType,c=l.componentIndex;(f==="markLine"||f==="markPoint"||f==="markArea")&&(f="series",c=l.seriesIndex);var v=f&&c!=null&&o.getComponent(f,c),h=v&&r[v.mainType==="series"?"_chartsMap":"_componentsMap"][v.__viewId];l.event=a,l.type=n,r._$eventProcessor.eventInfo={targetEl:s,packedEvent:l,model:v,view:h},r.trigger(n,l)}};i.zrEventfulCallAtLast=!0,r._zr.on(n,i,r)}),I(Fo,function(n,i){r._messageCenter.on(i,function(a){this.trigger(i,a)},r)}),I(["selectchanged"],function(n){r._messageCenter.on(n,function(i){this.trigger(n,i)},r)}),ek(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&&mw(this.getDom(),Qd,"");var n=this,i=n._api,a=n._model;I(n._componentsViews,function(o){o.dispose(a,i)}),I(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 zo[n.id]},t.prototype.resize=function(r){if(!this[se]){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[we]&&(a==null&&(a=this[we].silent),i=!0,this[we]=null),this[se]=!0;try{i&&Ki(this),on.update.call(this,{type:"resize",animation:Y({duration:0},r&&r.animation)})}catch(o){throw this[se]=!1,o}this[se]=!1,ro.call(this,a),no.call(this,a)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(st(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!ov[r]){var i=ov[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=Y({},r);return n.type=Fo[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(st(n)||(n={silent:!!n}),!!gu[r.type]&&!!this._model){if(this[se]){this._pendingActions.push(r);return}var i=n.silent;Tc.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&wt.browser.weChat&&this._throttledZrFlush(),ro.call(this,i),no.call(this,i)}},t.prototype.updateLabelLayout=function(){sr.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(){Ki=function(c){var v=c._scheduler;v.restorePipelines(c._model),v.prepareStageTasks(),bc(c,!0),bc(c,!1),v.plan()},bc=function(c,v){for(var h=c._model,d=c._scheduler,p=v?c._componentsViews:c._chartsViews,g=v?c._componentsMap:c._chartsMap,m=c._zr,y=c._api,_=0;_v.get("hoverLayerThreshold")&&!wt.node&&!wt.worker&&v.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,v){var h=c.get("blendMode")||null;v.eachRendered(function(d){d.isGroup||(d.style.blend=h)})}function s(c,v){if(!c.preventAutoZ){var h=c.get("z")||0,d=c.get("zlevel")||0;v.eachRendered(function(p){return l(p,h,d,-1/0),!0})}}function l(c,v,h,d){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;v.eachRendered(function(m){if(m.states&&m.states.emphasis){if(Oo(m))return;if(m instanceof kt&&OL(m),m.__dirty){var y=m.prevStates;y&&m.useStates(y)}if(d){m.stateTransition=g;var _=m.getTextContent(),w=m.getTextGuideLine();_&&(_.stateTransition=g),w&&(w.stateTransition=g)}m.__dirty&&i(m)}})}jy=function(c){return new(function(v){J(h,v);function h(){return v!==null&&v.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(d){for(;d;){var p=d.__ecComponentInfo;if(p!=null)return c._model.getComponent(p.mainType,p.index);d=d.parent}},h.prototype.enterEmphasis=function(d,p){iu(d,p),He(c)},h.prototype.leaveEmphasis=function(d,p){au(d,p),He(c)},h.prototype.enterBlur=function(d){TL(d),He(c)},h.prototype.leaveBlur=function(d){Nw(d),He(c)},h.prototype.enterSelect=function(d){Bw(d),He(c)},h.prototype.leaveSelect=function(d){Fw(d),He(c)},h.prototype.getModel=function(){return c.getModel()},h.prototype.getViewOfComponentModel=function(d){return c.getViewOfComponentModel(d)},h.prototype.getViewOfSeriesModel=function(d){return c.getViewOfSeriesModel(d)},h}(zb))(c)},ES=function(c){function v(h,d){for(var p=0;p=0)){Qy.push(r);var a=hS.wrapStageHandler(r,i);a.__prio=t,a.__raw=r,e.push(a)}}function BS(e,t){ov[e]=t}function rN(e,t,r){var n=Rk("registerMap");n&&n(e,t,r)}var nN=iO;Li(Kd,RO);Li(lf,OO);Li(lf,kO);Li(Kd,KO);Li(lf,ZO);Li(CS,Ik);kS($b);NS(Bk,HR);BS("default",NO);za({type:mi,event:mi,update:mi},Ce);za({type:Il,event:Il,update:Il},Ce);za({type:Eo,event:Eo,update:Eo},Ce);za({type:El,event:El,update:El},Ce);za({type:Lo,event:Lo,update:Lo},Ce);OS("light",qO);OS("dark",XO);function io(e){return e==null?0:e.length||1}function Jy(e){return e}var iN=function(){function e(t,r,n,i,a,o){this._old=t,this._new=r,this._oldKeyGetter=n||Jy,this._newKeyGetter=i||Jy,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&&v===1)this._updateManyToOne&&this._updateManyToOne(f,u),i[l]=null;else if(c===1&&v>1)this._updateOneToMany&&this._updateOneToMany(f,u),i[l]=null;else if(c===1&&v===1)this._update&&this._update(f,u),i[l]=null;else if(c>1&&v>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 ao=st,sn=ct,vN=typeof Int32Array=="undefined"?Array:Int32Array,dN="e\0\0",t0=-1,pN=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],gN=["_approximateExtent"],e0,sl,oo,so,Ac,ll,Dc,mN=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;zS(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===rr;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),et(a)?a=a.slice():ao(a)&&(a=Y({},a)),i[r]=a),a},e.prototype.setItemVisual=function(t,r,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,ao(r)?Y(i,r):i[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){ao(t)?Y(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?Y(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;dL(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){I(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:sn(this.dimensions,this._getDimInfo,this),this.hostModel)),Ac(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];!mt(n)||(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(ud(arguments)))})},e.internalField=function(){e0=function(t){var r=t._invertedIndicesMap;I(r,function(n,i){var a=t._dimInfos[i],o=a.ordinalMeta,s=t._store;if(o){n=r[i]=new vN(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),i[r]=l}}}(),e}(),GS=mN;function US(e,t){Ud(e)||(e=Wd(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],i=_t(),a=[],o=_N(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&VS(o),l=n===e.dimensionsDefine,u=l?$S(e):HS(n),f=t.encodeDefine;!f&&t.encodeDefaulter&&(f=t.encodeDefaulter(e,o));for(var c=_t(f),v=new jb(o),h=0;h0&&(n.name=i+(a-1)),a++,t.set(i,a)}}function _N(e,t,r,n){var i=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return I(t,function(a){var o;st(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function wN(e,t,r){var n=t.data;if(r||n.hasOwnProperty(e)){for(var i=0;n.hasOwnProperty(e+i);)i++;e+=i}return t.set(e,!0),e}var bN=function(){function e(t){this.coordSysDims=[],this.axisMap=_t(),this.categoryAxisMap=_t(),this.coordSysName=t}return e}();function SN(e){var t=e.get("coordinateSystem"),r=new bN(t),n=xN[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var xN={cartesian2d:function(e,t,r,n){var i=e.getReferringComponents("xAxis",ur).models[0],a=e.getReferringComponents("yAxis",ur).models[0];t.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),Zi(i)&&(n.set("x",i),t.firstCategoryDimIndex=0),Zi(a)&&(n.set("y",a),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var i=e.getReferringComponents("singleAxis",ur).models[0];t.coordSysDims=["single"],r.set("single",i),Zi(i)&&(n.set("single",i),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var i=e.getReferringComponents("polar",ur).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),Zi(a)&&(n.set("radius",a),t.firstCategoryDimIndex=0),Zi(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();I(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),f=o[l];r.set(f,u),Zi(u)&&(n.set(f,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})}};function Zi(e){return e.get("type")==="category"}function TN(e,t,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;CN(t)?a=t:(o=t.schema,a=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,f,c,v;if(I(a,function(y,_){it(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,v="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var h=f.coordDim,d=f.type,p=0;I(a,function(y){y.coordDim===h&&p++});var g={name:c,coordDim:h,coordDimIndex:p,type:d,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},m={name:v,coordDim:v,coordDimIndex:p+1,type:d,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(g.storeDimIndex=s.ensureCalculationDimension(v,d),m.storeDimIndex=s.ensureCalculationDimension(c,d)),o.appendCalculationDimension(g),o.appendCalculationDimension(m)):(a.push(g),a.push(m))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:v,stackResultDimension:c}}function CN(e){return!zS(e.schema)}function us(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function MN(e,t){return us(e,t)?e.getCalculationInfo("stackResultDimension"):t}function AN(e,t){var r=e.get("coordinateSystem"),n=Gd.get(r),i;return t&&t.coordSysDims&&(i=ct(t.coordSysDims,function(a){var o={name:a},s=t.axisMap.get(a);if(s){var l=s.get("type");o.type=lN(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function DN(e,t,r){var n,i;return r&&I(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 PN(e,t,r){r=r||{};var n=t.getSourceManager(),i,a=!1;e?(a=!0,i=Wd(e)):(i=n.getSource(),a=i.sourceFormat===rr);var o=SN(t),s=AN(t,o),l=r.useEncodeDefaulter,u=mt(l)?l:l?Xt(hR,s,t):null,f={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},c=US(i,f),v=DN(c.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(c),d=TN(t,{schema:c,store:h}),p=new GS(c,t);p.setCalculationInfo(d);var g=v!=null&&IN(i)?function(m,y,_,w){return w===v?_:this.defaultDimValueGetter(m,y,_,w)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,g),p}function IN(e){if(e.sourceFormat===rr){var t=EN(e.data||[]);return!et(ms(t))}}function EN(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}();Hu(WS);var Kr=WS,LN=0,RN=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++LN}return e.createByAxisModel=function(t){var r=t.option,n=r.data,i=n&&ct(n,ON);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(!it(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=_t(this.categories))},e}();function ON(e){return st(e)&&e.value!=null?e.value:e+""}var sv=RN;function lv(e){return e.type==="interval"||e.type==="log"}function kN(e,t,r,n){var i={},a=e[1]-e[0],o=i.interval=hw(a/t,!0);r!=null&&on&&(o=i.interval=n);var s=i.intervalPrecision=YS(o),l=i.niceTickExtent=[jt(Math.ceil(e[0]/o)*o,s),jt(Math.floor(e[1]/o)*o,s)];return NN(l,e),i}function Pc(e){var t=Math.pow(10,_d(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,jt(r*t)}function YS(e){return zr(e)+2}function r0(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function NN(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),r0(e,0,t),r0(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function uf(e,t){return e>=t[0]&&e<=t[1]}function ff(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function cf(e,t){return e*(t[1]-t[0])+t[0]}var qS=function(e){J(t,e);function t(r){var n=e.call(this,r)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new sv({})),et(i)&&(i=new sv({categories:ct(i,function(a){return st(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 it(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),uf(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),ff(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(cf(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}(Kr);Kr.registerClass(qS);var XS=qS,oi=jt,jS=function(e){J(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 uf(r,this._extent)},t.prototype.normalize=function(r){return ff(r,this._extent)},t.prototype.scale=function(r){return cf(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=YS(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:oi(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 $N(e){var t=HN(e),r=[];return I(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(),v=Math.abs(c[1]-c[0]);s=u?f/v*u:f}else{var h=n.getData();s=Math.abs(o[1]-o[0])/h.count()}var d=Vt(n.get("barWidth"),s),p=Vt(n.get("barMaxWidth"),s),g=Vt(n.get("barMinWidth")||(WN(n)?.5:1),s),m=n.get("barGap"),y=n.get("barCategoryGap");r.push({bandWidth:s,barWidth:d,barMaxWidth:p,barMinWidth:g,barGap:m,barCategoryGap:y,axisKey:QS(a),stackId:ZS(n)})}),VN(r)}function VN(e){var t={};I(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 v=n.barMinWidth;v&&(l[u].minWidth=v);var h=n.barGap;h!=null&&(s.gap=h);var d=n.barCategoryGap;d!=null&&(s.categoryGap=d)});var r={};return I(t,function(n,i){r[i]={};var a=n.stacks,o=n.bandWidth,s=n.categoryGap;if(s==null){var l=Gt(a).length;s=Math.max(35-l*4,15)+"%"}var u=Vt(s,o),f=Vt(n.gap,1),c=n.remainedWidth,v=n.autoWidthCount,h=(c-u)/(v+(v-1)*f);h=Math.max(h,0),I(a,function(m){var y=m.maxWidth,_=m.minWidth;if(m.width){var w=m.width;y&&(w=Math.min(w,y)),_&&(w=Math.max(w,_)),m.width=w,c-=w+f*w,v--}else{var w=h;y&&yw&&(w=_),w!==h&&(m.width=w,c-=w+f*w,v--)}}),h=(c-u)/(v+(v-1)*f),h=Math.max(h,0);var d=0,p;I(a,function(m,y){m.width||(m.width=h),p=m,d+=m.width*(1+f)}),p&&(d-=p.width*f);var g=-d/2;I(a,function(m,y){r[i][y]=r[i][y]||{bandWidth:o,offset:g,width:m.width},g+=m.width*(1+f)})}),r}function GN(e,t,r){if(e&&t){var n=e[QS(t)];return n!=null&&r!=null?n[ZS(r)]:n}}function UN(e){return e.coordinateSystem&&e.coordinateSystem.type==="cartesian2d"}function WN(e){return e.pipelineContext&&e.pipelineContext.large}var YN=function(e,t,r,n){for(;r>>1;e[i][1]i&&(this._approxInterval=i);var s=ul.length,l=Math.min(YN(ul,this._approxInterval,0,s),s-1);this._interval=ul[l][1],this._minLevelUnit=ul[Math.max(l-1,0)][0]},t.prototype.parse=function(r){return zt(r)?r:+Yr(r)},t.prototype.contain=function(r){return uf(this.parse(r),this._extent)},t.prototype.normalize=function(r){return ff(this.parse(r),this._extent)},t.prototype.scale=function(r){return cf(r,this._extent)},t.type="time",t}(bs),ul=[["second",Bd],["minute",Fd],["hour",ko],["quarter-day",ko*6],["half-day",ko*12],["day",Ze*1.2],["half-week",Ze*3.5],["week",Ze*7],["month",Ze*31],["quarter",Ze*95],["half-year",Wm/2],["year",Wm]];function qN(e,t,r,n){var i=Yr(t),a=Yr(r),o=function(d){return qm(i,d,n)===qm(a,d,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")},v=function(){return c()&&o("second")},h=function(){return v()&&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 v();case"millisecond":return h()}}function XN(e,t){return e/=Ze,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function jN(e){var t=30*Ze;return e/=t,e>6?6:e>3?3:e>2?2:1}function KN(e){return e/=ko,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function n0(e,t){return e/=t?Fd:Bd,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function ZN(e){return hw(e,!0)}function QN(e,t,r){var n=new Date(e);switch(ga(t)){case"year":case"month":n[Sb(r)](0);case"day":n[xb(r)](1);case"hour":n[Tb(r)](0);case"minute":n[Cb(r)](0);case"second":n[Mb(r)](0),n[Ab(r)](0)}return n.getTime()}function JN(e,t,r,n){var i=1e4,a=wb,o=0;function s(D,P,A,L,O,z,N){for(var tt=new Date(P),V=P,K=tt[L]();V1&&z===0&&A.unshift({value:A[0].value-V})}}for(var z=0;z=n[0]&&y<=n[1]&&c++)}var _=(n[1]-n[0])/t;if(c>_*1.5&&v>_/1.5||(u.push(g),c>_||e===a[h]))break}f=[]}}}for(var w=Se(ct(u,function(D){return Se(D,function(P){return P.value>=n[0]&&P.value<=n[1]&&!P.notAdd})}),function(D){return D.length>0}),S=[],b=w.length-1,h=0;h0;)a*=10;var s=[jt(nB(n[0]/a)*a),jt(rB(n[1]/a)*a)];this._interval=a,this._niceExtent=s}},t.prototype.calcNiceExtent=function(r){Ho.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=$e(r)/$e(this.base),uf(r,this._extent)},t.prototype.normalize=function(r){return r=$e(r)/$e(this.base),ff(r,this._extent)},t.prototype.scale=function(r){return r=cf(r,this._extent),fl(this.base,r)},t.type="log",t}(Kr),tx=ep.prototype;tx.getMinorTicks=Ho.getMinorTicks;tx.getLabel=Ho.getLabel;function cl(e,t){return eB(e,zr(t))}Kr.registerClass(ep);var iB=ep,aB=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 v=this._determinedMin,h=this._determinedMax;return v!=null&&(s=v,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[sB[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=oB[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),oB={min:"_determinedMin",max:"_determinedMax"},sB={min:"_dataMin",max:"_dataMax"};function lB(e,t,r){var n=e.rawExtentInfo;return n||(n=new aB(e,t,r),e.rawExtentInfo=n,n)}function hl(e,t){return t==null?null:ql(t)?NaN:e.parse(t)}function ex(e,t){var r=e.type,n=lB(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=zN("bar",o),l=!1;if(I(s,function(c){l=l||c.getBaseAxis()===t.axis}),l){var u=$N(s),f=uB(i,a,t,u);i=f.min,a=f.max}}return{extent:[i,a],fixMin:n.minFixed,fixMax:n.maxFixed}}function uB(e,t,r,n){var i=r.axis.getExtent(),a=i[1]-i[0],o=GN(n,r.axis);if(o===void 0)return{min:e,max:t};var s=1/0;I(o,function(h){s=Math.min(h.offset,s)});var l=-1/0;I(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,v=f/c-f;return t+=v*(l/u),e-=v*(s/u),{min:e,max:t}}function a0(e,t){var r=t,n=ex(e,r),i=n.extent,a=r.get("splitNumber");e instanceof iB&&(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 fB(e,t){if(t=t||e.get("type"),t)switch(t){case"category":return new XS({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case"time":return new tB({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC")});default:return new(Kr.getClass(t)||bs)}}function cB(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function Ss(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):it(t)?function(n){return function(i){var a=e.scale.getLabel(i),o=n.replace("{value}",a!=null?a:"");return o}}(t):mt(t)?function(n){return function(i,a){return r!=null&&(a=i.value-r),n(rp(e,i),a,i.level!=null?{level:i.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function rp(e,t){return e.type==="category"?e.scale.getLabel(t):t.value}function hB(e){var t=e.model,r=e.scale;if(!(!t.get(["axisLabel","show"])||r.isBlank())){var n,i,a=r.getExtent();r instanceof XS?i=r.count():(n=r.getTicks(),i=n.length);var o=e.getLabelModel(),s=Ss(e),l,u=1;i>40&&(u=Math.ceil(i/40));for(var f=0;f=0||(o0.push(e),mt(e)&&(e={install:e}),e.install(gB))}var fs=Qt();function mB(e){return e.type==="category"?_B(e):bB(e)}function yB(e,t){return e.type==="category"?wB(e,t):{ticks:ct(e.scale.getTicks(),function(r){return r.value})}}function _B(e){var t=e.getLabelModel(),r=nx(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function nx(e,t){var r=ix(e,"labels"),n=np(t),i=ax(r,n);if(i)return i;var a,o;return mt(n)?a=lx(e,n):(o=n==="auto"?SB(e):n,a=sx(e,o)),ox(r,n,{labels:a,labelCategoryInterval:o})}function wB(e,t){var r=ix(e,"ticks"),n=np(t),i=ax(r,n);if(i)return i;var a,o;if((!t.get("show")||e.scale.isBlank())&&(a=[]),mt(n))a=lx(e,n,!0);else if(n==="auto"){var s=nx(e,e.getLabelModel());o=s.labelCategoryInterval,a=ct(s.labels,function(l){return l.tickValue})}else o=n,a=sx(e,o,!0);return ox(r,n,{ticks:a,tickCategoryInterval:o})}function bB(e){var t=e.scale.getTicks(),r=Ss(e);return{labels:ct(t,function(n,i){return{level:n.level,formattedLabel:r(n,i),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function ix(e,t){return fs(e)[t]||(fs(e)[t]=[])}function ax(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)),v=0,h=0;l<=a[1];l+=s){var d=0,p=0,g=gd(r({value:l}),t.font,"center","top");d=g.width*1.3,p=g.height*1.3,v=Math.max(v,d,7),h=Math.max(h,p,7)}var m=v/f,y=h/c;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var _=Math.max(0,Math.floor(Math.min(m,y))),w=fs(e.model),S=e.getExtent(),b=w.lastAutoInterval,x=w.lastTickCount;return b!=null&&x!=null&&Math.abs(b-_)<=1&&Math.abs(x-o)<=1&&b>_&&w.axisExtent0===S[0]&&w.axisExtent1===S[1]?_=b:(w.lastTickCount=o,w.lastAutoInterval=_,w.axisExtent0=S[0],w.axisExtent1=S[1]),_}function TB(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 sx(e,t,r){var n=Ss(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=rx(e),v=o.get("showMinLabel")||c,h=o.get("showMaxLabel")||c;v&&u!==a[0]&&p(a[0]);for(var d=u;d<=a[1];d+=l)p(d);h&&d-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 lx(e,t,r){var n=e.scale,i=Ss(e),a=[];return I(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 s0=[0,1],CB=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 YI(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(),l0(n,i.count())),Rh(t,s0,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,i=this.scale;this.onBand&&i.type==="ordinal"&&(n=n.slice(),l0(n,i.count()));var a=Rh(t,n,s0,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=yB(this,r),i=n.ticks,a=ct(i,function(s){return{coord:this.dataToCoord(this.scale.type==="ordinal"?this.scale.getRawOrdinalNumber(s):s),tickValue:s}},this),o=r.get("alignWithLabel");return MB(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=ct(n,function(a){return ct(a,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return i},e.prototype.getViewLabels=function(){return mB(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 xB(this)},e}();function l0(e,t){var r=e[1]-e[0],n=t,i=r/n/2;e[0]+=i,e[1]-=i}function MB(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;I(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];v(t[0].coord,a[0])&&(n?t[0].coord=a[0]:t.shift()),n&&v(a[0],t[0].coord)&&t.unshift({coord:a[0]}),v(a[1],o.coord)&&(n?o.coord=a[1]:t.pop()),n&&v(o.coord,a[1])&&t.push({coord:a[1]});function v(h,d){return h=jt(h),d=jt(d),c?h>d:h0){t=t/180*Math.PI,mn.fromArray(e[0]),Ut.fromArray(e[1]),re.fromArray(e[2]),pt.sub(yn,mn,Ut),pt.sub(Sr,re,Ut);var r=yn.len(),n=Sr.len();if(!(r<.001||n<.001)){yn.scale(1/r),Sr.scale(1/n);var i=yn.dot(Sr),a=Math.cos(t);if(a1&&pt.copy(ge,re),ge.toArray(e[1])}}}}function PB(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,mn.fromArray(e[0]),Ut.fromArray(e[1]),re.fromArray(e[2]),pt.sub(yn,Ut,mn),pt.sub(Sr,re,Ut);var n=yn.len(),i=Sr.len();if(!(n<.001||i<.001)){yn.scale(1/n),Sr.scale(1/i);var a=yn.dot(t),o=Math.cos(r);if(a=l)pt.copy(ge,re);else{ge.scaleAndAdd(Sr,s/Math.tan(Math.PI/2-f));var c=re.x!==Ut.x?(ge.x-Ut.x)/(re.x-Ut.x):(ge.y-Ut.y)/(re.y-Ut.y);if(isNaN(c))return;c<0?pt.copy(ge,Ut):c>1&&pt.copy(ge,re)}ge.toArray(e[1])}}}}function u0(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 IB(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=mh(n[0],n[1]),a=mh(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=Cf([],n[1],n[0],o/i),l=Cf([],n[1],n[2],o/a),u=Cf([],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&&S(-f/o,0,o);var p=e[0],g=e[o-1],m,y;_(),m<0&&b(-m,.8),y<0&&b(y,.8),_(),w(m,y,1),w(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 w(T,C,D){if(T<0){var P=Math.min(C,-T);if(P>0){S(P*D,0,o);var A=P+T;A<0&&b(-A*D,1)}else b(-T*D,1)}}function S(T,C,D){T!==0&&(u=!0);for(var P=C;P0)for(var A=0;A0;A--){var N=D[A-1]*z;S(-N,A,o)}}}function x(T){var C=T<0?-1:1;T=Math.abs(T);for(var D=Math.ceil(T/(o-1)),P=0;P0?S(D,0,P+1):S(-D,o-P-1,o),T-=D,T<=0)return}return u}function kB(e,t,r,n){return OB(e,"y","height",t,r,n)}function NB(e){var t=[];e.sort(function(p,g){return g.priority-p.priority});var r=new Ot(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;in[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}(AB),jB=XB;function cv(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],v={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get("offset")||0,d=u==="x"?[c[2]-h,c[3]+h]:[c[0]-h,c[1]+h];if(o){var p=o.toGlobalCoord(o.dataToCoord(0));d[v.onZero]=Math.max(Math.min(p,d[1]),d[0])}a.position=[u==="y"?d[v[l]]:c[0],u==="x"?d[v[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?d[v[s]]-d[v.onZero]:0,t.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),Zo(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 v0(e){return e.get("coordinateSystem")==="cartesian2d"}function d0(e){var t={xAxisModel:null,yAxisModel:null};return I(t,function(r,n){var i=n.replace(/Model$/,""),a=e.getReferringComponents(i,ur).models[0];t[n]=a}),t}var Ic=Math.log;function KB(e,t,r){var n=bs.prototype,i=n.getTicks.call(r),a=n.getTicks.call(r,!0),o=i.length-1,s=n.getInterval.call(r),l=ex(e,t),u=l.extent,f=l.fixMin,c=l.fixMax;if(e.type==="log"){var v=Ic(e.base);u=[Ic(u[0])/v,Ic(u[1])/v]}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 d=n.getInterval.call(e),p=u[0],g=u[1];if(f&&c)d=(g-p)/o;else if(f)for(g=u[0]+d*o;gu[0]&&isFinite(p)&&isFinite(u[0]);)d=Pc(d),p=u[1]-d*o;else{var m=e.getTicks().length-1;m>o&&(d=Pc(d));var y=d*o;g=Math.ceil(u[1]/d)*d,p=jt(g-y),p<0&&u[0]>=0?(p=0,g=jt(y)):g>0&&u[1]<=0&&(g=0,p=-jt(y))}var _=(i[0].value-a[0].value)/s,w=(i[o].value-a[o].value)/s;n.setExtent.call(e,p+d*_,g+d*w),n.setInterval.call(e,d),(_||w)&&n.setNiceExtent.call(e,p+d,g-d)}var ZB=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=fv,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=Gt(o),u=l.length;if(!!u){for(var f=[],c=u-1;c>=0;c--){var v=+l[c],h=o[v],d=h.model,p=h.scale;lv(p)&&d.get("alignTicks")&&d.get("interval")==null?f.push(h):(a0(p,d),lv(p)&&(s=h))}f.length&&(s||(s=f.pop(),a0(s.scale,s.model)),I(f,function(g){KB(g.scale,g.model,s.scale)}))}}i(n.x),i(n.y);var a={};I(n.x,function(o){p0(n,"y",o,a)}),I(n.y,function(o){p0(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=Ma(i,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var s=this._axesList;l(),a&&(I(s,function(u){if(!u.model.get(["axisLabel","inside"])){var f=hB(u);if(f){var c=u.isHorizontal()?"height":"width",v=u.model.get(["axisLabel","margin"]);o[c]-=f[c]+v,u.position==="top"?o.y+=f.height+v:u.position==="left"&&(o.x+=f.width+v)}}}),l()),I(this._coordsList,function(u){u.calcAffineTransform()});function l(){I(s,function(u){var f=u.isHorizontal(),c=f?[0,o.width]:[0,o.height],v=u.inverse?1:0;u.setExtent(c[v],c[1-v]),QB(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]}st(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,a=this._coordsList;i0?"top":"bottom",a="center"):eu(i-_n)?(o=n>0?"bottom":"top",a="center"):(o="middle",i>0&&i<_n?a=n>0?"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}(),m0={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];o&&(tr(s,s,o),tr(l,l,o));var u=Y({lineCap:"round"},t.getModel(["axisLine","lineStyle"]).getLineStyle()),f=new xi({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});f.anid="line",r.add(f);var c=t.get(["axisLine","symbol"]);if(c!=null){var v=t.get(["axisLine","symbolSize"]);it(c)&&(c=[c,c]),(it(v)||zt(v))&&(v=[v,v]);var h=dS(t.get(["axisLine","symbolOffset"])||0,v),d=v[0],p=v[1];I([{rotate:e.rotation+Math.PI/2,offset:h[0],r:0},{rotate:e.rotation-Math.PI/2,offset:h[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(g,m){if(c[m]!=="none"&&c[m]!=null){var y=Ia(c[m],-d/2,-p/2,d,p,u.stroke,!0),_=g.r+g.offset;y.attr({rotation:g.rotate,x:s[0]+_*Math.cos(e.rotation),y:s[1]-_*Math.sin(e.rotation),silent:!0,z2:11}),r.add(y)}})}}},axisTickLabel:function(e,t,r,n){var i=rF(r,n,t,e),a=iF(r,n,t,e);if(eF(t,a,i),nF(r,n,t,e.tickDirection),t.get(["axisLabel","hideOverlap"])){var o=RB(ct(a,function(s){return{label:s,priority:s.z2,defaultAttr:{ignore:s.ignore}}}));NB(o)}},axisName:function(e,t,r,n){var i=Zo(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,_0(a)?e.labelOffset+o*l:0],v,h=t.get("nameRotate");h!=null&&(h=h*_n/180);var d;_0(a)?v=yi.innerTextLayout(e.rotation,h!=null?h:e.rotation,o):(v=tF(e.rotation,a,h||0,u),d=e.axisNameAvailableWidth,d!=null&&(d=Math.abs(d/Math.sin(v.rotation)),!isFinite(d)&&(d=null)));var p=s.getFont(),g=t.get("nameTruncate",!0)||{},m=g.ellipsis,y=Zo(e.nameTruncateMaxWidth,g.maxWidth,d),_=new he({x:c[0],y:c[1],rotation:v.rotation,silent:yi.isLabelSilent(t),style:kn(s,{text:i,font:p,overflow:"truncate",width:y,ellipsis:m,fill:s.getTextColor()||t.get(["axisLine","lineStyle","color"]),align:s.get("align")||v.textAlign,verticalAlign:s.get("verticalAlign")||v.textVerticalAlign}),z2:1});if(Rd({el:_,componentModel:t,itemName:i}),_.__fullText=i,_.anid="name",t.get("triggerEvent")){var w=yi.makeAxisEventDataBase(t);w.targetType="axisName",w.name=i,Nt(_).eventData=w}n.add(_),_.updateTransform(),r.add(_),_.decomposeTransform()}}};function tF(e,t,r,n){var i=cw(r-e),a,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return eu(i-_n/2)?(o=l?"bottom":"top",a="center"):eu(i-_n*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",i<_n*1.5&&i>_n/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function eF(e,t,r){if(!rx(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],v=r[r.length-2];n===!1?(Ve(a),Ve(u)):y0(a,o)&&(n?(Ve(o),Ve(f)):(Ve(a),Ve(u))),i===!1?(Ve(s),Ve(c)):y0(l,s)&&(i?(Ve(l),Ve(v)):(Ve(s),Ve(c)))}}function Ve(e){e&&(e.ignore=!0)}function y0(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var i=hd([]);return vd(i,i,-e.rotation),r.applyTransform(pa([],i,e.getLocalTransform())),n.applyTransform(pa([],i,t.getLocalTransform())),r.intersect(n)}}function _0(e){return e==="middle"||e==="center"}function cx(e,t,r,n,i){for(var a=[],o=[],s=[],l=0;l=0||e===t}function fF(e){var t=ap(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=hv(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]),os)return!0;if(o){var l=ap(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=ci(t).pointerEl=new L2[a.type](S0(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,i){if(r.label){var a=ci(t).labelEl=new he(S0(r.label));t.add(a),T0(a,i)}},e.prototype.updatePointerEl=function(t,r,n){var i=ci(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=ci(t).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),T0(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=Ld(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){V1(u.event)},onmousedown:Rc(this._onHandleDragMove,this,0,0),drift:Rc(this._onHandleDragMove,this),ondragend:Rc(this._onHandleDragEnd,this)}),n.add(i)),C0(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");et(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,oS(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){x0(this._axisPointerModel,!r&&this._moveAnimation,this._handle,Oc(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(Oc(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(Oc(i)),ci(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),Jh(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 x0(e,t,r,n){gx(ci(r).lastProp,n)||(ci(r).lastProp=n,t?Dr(r,n,e):(r.stopAnimation(),r.attr(n)))}function gx(e,t){if(st(e)&&st(t)){var r=!0;return I(t,function(n,i){r=r&&gx(e[i],n)}),!!r}else return e===t}function T0(e,t){e[t.get(["label","show"])?"show":"hide"]()}function Oc(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function C0(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)})}var SF=bF;function xF(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 TF(e,t,r,n,i){var a=r.get("value"),o=mx(a,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=rf(s.get("padding")||0),u=s.getFont(),f=gd(o,u),c=i.position,v=f.width+l[1]+l[3],h=f.height+l[0]+l[2],d=i.align;d==="right"&&(c[0]-=v),d==="center"&&(c[0]-=v/2);var p=i.verticalAlign;p==="bottom"&&(c[1]-=h),p==="middle"&&(c[1]-=h/2),CF(c,v,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:kn(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:g}),z2:10}}function CF(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 mx(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:rp(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};I(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,c=u&&u.getDataParams(f);c&&s.seriesData.push(c)}),it(o)?a=o.replace("{value}",a):mt(o)&&(a=o(s))}return a}function yx(e,t,r){var n=Qo();return vd(n,n,r.rotation),Lh(n,n,r.position),Ed([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function MF(e,t,r,n,i,a){var o=hx.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),TF(t,n,i,a,{position:yx(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function AF(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function DF(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}var PF=function(e){J(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=M0(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var v=xF(a),h=IF[u](s,c,f);h.style=v,r.graphicKey=h.type,r.pointer=h}var d=cv(l.model,i);MF(n,r,d,i,a,o)},t.prototype.getHandleTransform=function(r,n,i){var a=cv(n.axis.grid.model,n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=yx(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=M0(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 v=(u[1]+u[0])/2,h=[v,v];h[f]=c[f];var d=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:h,tooltipOption:d[f]}},t}(SF);function M0(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var IF={line:function(e,t,r){var n=AF([t,r[0]],[t,r[1]],A0(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:DF([t-n/2,r[0]],[n,i],A0(e))}}};function A0(e){return e.dim==="x"?0:1}var EF=PF,LF=function(e){J(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}($t),RF=LF,Hr=Qt(),OF=I;function _x(e,t,r){if(!wt.node){var n=t.getZr();Hr(n).records||(Hr(n).records={}),kF(n,t);var i=Hr(n).records[e]||(Hr(n).records[e]={});i.handler=r}}function kF(e,t){if(Hr(e).initialized)return;Hr(e).initialized=!0,r("click",Xt(D0,"click")),r("mousemove",Xt(D0,"mousemove")),r("globalout",BF);function r(n,i){e.on(n,function(a){var o=FF(t);OF(Hr(e).records,function(s){s&&i(s,a,o.dispatchAction)}),NF(o.pendings,t)})}}function NF(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 BF(e,t,r){e.handler("leave",null,r)}function D0(e,t,r,n){t.handler(e,r,n)}function FF(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 dv(e,t){if(!wt.node){var r=t.getZr(),n=(Hr(r).records||{})[e];n&&(Hr(r).records[e]=null)}}var zF=function(e){J(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";_x("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){dv("axisPointer",n)},t.prototype.dispose=function(r,n){dv("axisPointer",n)},t.type="axisPointer",t}(qr),HF=zF;function bx(e,t){var r=[],n=e.seriesIndex,i;if(n==null||!(i=t.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=Si(a,e);if(o==null||o<0||et(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,v=u.dim,h=c==="x"||c==="radius"?1:0,d=a.mapDimension(v),p=[];p[h]=a.get(d,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(ct(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 P0=Qt();function $F(e,t,r){var n=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||Ft(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(!!s){Nl(i)&&(i=bx({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var l=Nl(i),u=a.axesInfo,f=s.axesInfo,c=n==="leave"||Nl(i),v={},h={},d={list:[],map:{}},p={showPointer:Xt(GF,h),showTooltip:Xt(UF,d)};I(s.coordSysMap,function(m,y){var _=l||m.containPoint(i);I(s.coordSysAxesInfo[y],function(w,S){var b=w.axis,x=XF(u,w);if(!c&&_&&(!u||x)){var T=x&&x.value;T==null&&!l&&(T=b.pointToData(i)),T!=null&&I0(w,T,p,!1,v)}})});var g={};return I(f,function(m,y){var _=m.linkGroup;_&&!h[y]&&I(_.axesInfo,function(w,S){var b=h[S];if(w!==m&&b){var x=b.value;_.mapper&&(x=m.axis.scale.parse(_.mapper(x,E0(w),E0(m)))),g[m.key]=x}})}),I(g,function(m,y){I0(f[y],m,p,!0,v)}),WF(h,f,v),YF(d,i,e,o),qF(f,o,r),v}}function I0(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=VF(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&Y(i,s[0]),!n&&e.snap&&a.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function VF(e,t){var r=t.axis,n=r.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return I(t.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(n),c,v;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(f,e,r);v=h.dataIndices,c=h.nestestValue}else{if(v=l.getData().indicesOfNearest(f[0],e,r.type==="category"?.5:null),!v.length)return;c=l.getData().get(f[0],v[0])}if(!(c==null||!isFinite(c))){var d=e-c,p=Math.abs(d);p<=o&&((p=0&&s<0)&&(o=p,s=d,i=c,a.length=0),I(v,function(g){a.push({seriesIndex:l.seriesIndex,dataIndexInside:g,dataIndex:l.getData().getRawIndex(g)})}))}}),{payloadBatch:a,snapToValue:i}}function GF(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function UF(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=cs(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 WF(e,t,r){var n=r.axesInfo=[];I(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 YF(e,t,r,n){if(Nl(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 qF(e,t,r){var n=r.getZr(),i="axisPointerLastHighlights",a=P0(n)[i]||{},o=P0(n)[i]={};I(e,function(u,f){var c=u.axisPointerModel.option;c.status==="show"&&I(c.seriesDataIndices,function(v){var h=v.seriesIndex+" | "+v.dataIndex;o[h]=v})});var s=[],l=[];I(a,function(u,f){!o[f]&&l.push(u)}),I(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 XF(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 E0(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 Nl(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function Sx(e){vx.registerAxisPointerClass("CartesianAxisPointer",EF),e.registerComponentModel(RF),e.registerComponentView(HF),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!et(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=aF(t,r)}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},$F)}function oH(e){Ci(wF),Ci(Sx)}function jF(e,t){var r=rf(t.get("padding")),n=t.getItemStyle(["color","opacity"]);return n.fill=t.get("backgroundColor"),e=new ne({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 KF=function(e){J(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}($t),ZF=KF;function xx(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function Tx(e){if(!!wt.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,v=c*Math.abs(Math.cos(f))+c*Math.abs(Math.sin(f)),h=Math.round(((v-Math.SQRT2*i)/2+Math.SQRT2*i-(v-c)/2)*100)/100;s+=";"+a+":-"+h+"px";var d=t+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;",s+";"+l+";","border-bottom:"+d,"border-right:"+d,"background-color:"+n+";"];return'
'}function i5(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+=wt.transformSupported?","+op+n:",left"+n+",top"+n),t5+":"+i}function L0(e,t,r){var n=e.toFixed(0)+"px",i=t.toFixed(0)+"px";if(!wt.transformSupported)return r?"top:"+i+";left:"+n+";":[["top",i],["left",n]];var a=wt.transform3dSupported,o="translate"+(a?"3d":"")+"("+n+","+i+(a?",0":"")+")";return r?"top:0;left:0;"+op+":"+o+";":[["top",0],["left",0],[Cx,o]]}function a5(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),I(["decoration","align"],function(l){var u=e.get(l);u&&t.push("text-"+l+":"+u)}),t.join(";")}function o5(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=rS(e,"html"),v=l+"px "+u+"px "+o+"px "+s;return n.push("box-shadow:"+v),t&&i&&n.push(i5(i,r)),a&&n.push("background-color:"+a),I(["width","color","radius"],function(h){var d="border-"+h,p=Pb(d),g=e.get(p);g!=null&&n.push(d+":"+g+(h==="color"?"":"px"))}),n.push(a5(f)),c!=null&&n.push("padding:"+rf(c).join("px ")+"px"),n.join(";")+";"}function R0(e,t,r,n,i){var a=t&&t.painter;if(r){var o=a&&a.getViewportRoot();o&&LP(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 s5=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,wt.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;R0(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();Ue(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=JF(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=e5+o5(t,!this._firstShow,this._longHide)+L0(a[0],a[1],!0)+("border-color:"+Ti(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(it(a)&&n.get("trigger")==="item"&&!xx(n)&&(s=n5(n,i,a)),it(t))o.innerHTML=t+s;else if(t){o.innerHTML="",et(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;if(this._lastX!=null&&this._lastY!=null&&r.get("triggerOn")!=="none"){var a=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!i.isDisposed()&&a.manuallyShowTip(r,n,i,{x:a._lastX,y:a._lastY,dataByCoordSys:a._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||wt.node||!i.getDom())){var o=N0(a,i);this._ticket="";var s=a.dataByCoordSys,l=g5(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=c5;f.x=a.x,f.y=a.y,f.update(),Nt(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=bx(a,n),v=c.point[0],h=c.point[1];v!=null&&h!=null&&this._tryShow({offsetX:v,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(N0(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=lo([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;_o(i,function(u){if(Nt(u).dataIndex!=null)return s=u,!0;if(Nt(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=Ft(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=lo([n.tooltipOption],a),l=this._renderMode,u=[],f=os("section",{blocks:[],noHeader:!0}),c=[],v=new mc;I(r,function(y){I(y.dataByAxis,function(_){var w=i.getComponent(_.axisDim+"Axis",_.axisIndex),S=_.value;if(!(!w||S==null)){var b=mx(S,w.axis,i,_.seriesDataIndices,_.valueLabelOpt),x=os("section",{header:b,noHeader:!Tr(b),sortBlocks:!0,blocks:[]});f.blocks.push(x),I(_.seriesDataIndices,function(T){var C=i.getSeriesByIndex(T.seriesIndex),D=T.dataIndexInside,P=C.getDataParams(D);if(!(P.dataIndex<0)){P.axisDim=_.axisDim,P.axisIndex=_.axisIndex,P.axisType=_.axisType,P.axisId=_.axisId,P.axisValue=rp(w.axis,{value:S}),P.axisValueLabel=b,P.marker=v.makeTooltipMarker("item",Ti(P.color),l);var A=vy(C.formatTooltip(D,!0,null)),L=A.frag;if(L){var O=lo([C],a).get("valueFormatter");x.blocks.push(O?Y({valueFormatter:O},L):L)}A.text&&c.push(A.text),u.push(P)}})}})}),f.blocks.reverse(),c.reverse();var h=n.position,d=s.get("order"),p=yy(f,v,l,d,i.get("useUTC"),s.get("textStyle"));p&&c.unshift(p);var g=l==="richText"?` +`];function ns(t,e){return e.type=t,e}function Nv(t){return t.type==="section"}function zw(t){return Nv(t)?YO:$O}function Hw(t){if(Nv(t)){var e=0,r=t.blocks.length,n=r>1||r>0&&!t.noHeader;return R(t.blocks,function(i){var a=Hw(i);a>=e&&(e=a+ +(n&&(!a||Nv(i)&&!i.noHeader)))}),e}return 0}function YO(t,e,r,n){var i=e.noHeader,a=XO(Hw(e)),o=[],s=e.blocks||[];Nr(!s||K(s)),s=s||[];var l=t.orderMode;if(e.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Mt(u,l)){var f=new DO(u[l],null);s.sort(function(p,m){return f.evaluate(p.sortParam,m.sortParam)})}else l==="seriesDesc"&&s.reverse()}R(s,function(p,m){var g=e.valueFormatter,y=zw(p)(g?G(G({},t),{valueFormatter:g}):t,p,m>0?a.html:0,n);y!=null&&o.push(y)});var c=t.renderMode==="richText"?o.join(a.richText):Bv(n,o.join(""),i?r:a.html);if(i)return c;var v=Lv(e.header,"ordinal",t.useUTC),h=Fw(n,t.renderMode).nameStyle,d=Bw(n);return t.renderMode==="richText"?Uw(t,v,h)+a.richText+c:Bv(n,'
'+yt(v)+"
"+c,r)}function $O(t,e,r,n){var i=t.renderMode,a=e.noName,o=e.noValue,s=!e.markerType,l=e.name,u=t.useUTC,f=e.valueFormatter||t.valueFormatter||function(S){return S=K(S)?S:[S],oe(S,function(b,w){return Lv(b,K(h)?h[w]:h,u)})};if(!(a&&o)){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||ae.color.secondary,i),v=a?"":Lv(l,"ordinal",u),h=e.valueType,d=o?[]:f(e.value,e.rawDataIndex),p=!s||!a,m=!s&&a,g=Fw(n,i),y=g.nameStyle,_=g.valueStyle;return i==="richText"?(s?"":c)+(a?"":Uw(t,v,y))+(o?"":ZO(t,d,p,m,_)):Bv(n,(s?"":c)+(a?"":qO(v,!s,y))+(o?"":jO(d,p,m,_)),r)}}function K0(t,e,r,n,i,a){if(t){var o=zw(t),s={useUTC:i,renderMode:r,orderMode:n,markupStyleCreator:e,valueFormatter:t.valueFormatter};return o(s,t,0,a)}}function XO(t){return{html:GO[t],richText:WO[t]}}function Bv(t,e,r){var n='
',i="margin: "+r+"px 0 0",a=Bw(t);return'
'+e+n+"
"}function qO(t,e,r){var n=e?"margin-left:2px":"";return''+yt(t)+""}function jO(t,e,r,n){var i=r?"10px":"20px",a=e?"float:right;margin-left:"+i:"";return t=K(t)?t:[t],''+oe(t,function(o){return yt(o)}).join("  ")+""}function Uw(t,e,r){return t.markupStyleCreator.wrapRichTextStyle(e,r)}function ZO(t,e,r,n,i){var a=[i],o=n?10:20;return r&&a.push({padding:[0,0,0,o],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(K(e)?e.join(" "):e,a)}function KO(t,e){var r=t.getData().getItemVisual(e,"style"),n=r[t.visualDrawType];return Fi(n)}function Vw(t,e){var r=t.get("padding");return r!=null?r:e==="richText"?[8,10]:10}var ih=(function(){function t(){this.richTextStyles={},this._nextStyleNameId=$S()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(e,r,n){var i=n==="richText"?this._generateStyleName():null,a=dw({color:r,type:e,renderMode:n,markerId:i});return te(a)?a:(this.richTextStyles[i]=a.style,a.content)},t.prototype.wrapRichTextStyle=function(e,r){var n={};K(r)?R(r,function(a){return G(n,a)}):G(n,r);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+e+"}"},t})();function QO(t){var e=t.series,r=t.dataIndex,n=t.multipleSeries,i=e.getData(),a=i.mapDimensionsAll("defaultedTooltip"),o=a.length,s=e.getRawValue(r),l=K(s),u=KO(e,r),f,c,v,h;if(o>1||l&&!o){var d=JO(s,e,r,a,u);f=d.inlineValues,c=d.inlineValueTypes,v=d.blocks,h=d.inlineValues[0]}else if(o){var p=i.getDimensionInfo(a[0]);h=f=Ha(i,r,a[0]),c=p.type}else h=f=l?s[0]:s;var m=Ud(e),g=m&&e.name||"",y=i.getName(r),_=n?g:y;return ns("section",{header:g,noHeader:n||!m,sortParam:h,blocks:[ns("nameValue",{markerType:"item",markerColor:u,name:_,noName:!dr(_),value:f,valueType:c,rawDataIndex:i.getRawIndex(r)})].concat(v||[])})}function JO(t,e,r,n,i){var a=e.getData(),o=kr(t,function(c,v,h){var d=a.getDimensionInfo(h);return c=c||d&&d.tooltip!==!1&&d.displayName!=null},!1),s=[],l=[],u=[];n.length?R(n,function(c){f(Ha(a,r,c),c)}):R(t,f);function f(c,v){var h=a.getDimensionInfo(v);!h||h.otherDims.tooltip===!1||(o?u.push(ns("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 dn=we();function rl(t,e){return t.getName(e)||t.getId(e)}var ek="__universalTransitionEnabled",nr=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return e.prototype.init=function(r,n,i){this.seriesIndex=this.componentIndex,this.dataTask=Ho({count:rk,reset:nk}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,i);var a=dn(this).sourceManager=new Nw(this);a.prepareSource();var o=this.getInitialData(r,i);J0(o,this),this.dataTask.context.data=o,dn(this).dataBeforeProcessed=o,Q0(this),this._initSelectedMapFromData(o)},e.prototype.mergeDefaultAndTheme=function(r,n){var i=ts(this),a=i?As(r):{},o=this.subType;Se.hasClass(o)&&(o+="Series"),be(r,n.getTheme().get(this.subType)),be(r,this.getDefaultOption()),mv(r,"label",["show"]),this.fillDataTextStyle(r.data),i&&zn(r,a,i)},e.prototype.mergeOption=function(r,n){r=be(this.option,r,!0),this.fillDataTextStyle(r.data);var i=ts(this);i&&zn(this.option,r,i);var a=dn(this).sourceManager;a.dirty(),a.prepareSource();var o=this.getInitialData(r,n);J0(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,dn(this).dataBeforeProcessed=o,Q0(this),this._initSelectedMapFromData(o)},e.prototype.fillDataTextStyle=function(r){if(r&&!xt(r))for(var n=["show"],i=0;i=0&&v<0)&&(c=b,v=S,h=0),S===v&&(f[h++]=m))}return f.length=h,f},e.prototype.formatTooltip=function(r,n,i){return QO({series:this,dataIndex:r,multipleSeries:n})},e.prototype.isAnimationEnabled=function(){var r=this.ecModel;if(ve.node&&!(r&&r.ssr))return!1;var n=this.getShallow("animation");return n&&this.getData().count()>this.getShallow("animationThreshold")&&(n=!1),!!n},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(r,n,i){var a=this.ecModel,o=Tp.prototype.getColorFromPalette.call(this,r,n,i);return o||(o=a.getColorFromPalette(r,n,i)),o},e.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},e.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},e.prototype.isSelected=function(r,n){var i=this.option.selectedMap;if(!i)return!1;var a=this.getData(n);return(i==="all"||i[rl(a,r)])&&!a.getItemModel(r).get(["select","disabled"])},e.prototype.isUniversalTransitionEnabled=function(){if(this[ek])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},e.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,f=0;f0&&this._innerSelect(r,n)}},e.registerClass=function(r){return Se.registerClass(r)},e.protoInitialize=(function(){var r=e.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"})(),e})(Se);ar(nr,CO);ar(nr,Tp);rb(nr,Se);function Q0(t){var e=t.name;Ud(t)||(t.name=tk(t)||e)}function tk(t){var e=t.getRawData(),r=e.mapDimensionsAll("seriesName"),n=[];return R(r,function(i){var a=e.getDimensionInfo(i);a.displayName&&n.push(a.displayName)}),n.join(" ")}function rk(t){return t.model.getRawData().count()}function nk(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),ik}function ik(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function J0(t,e){R(uS(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),function(r){t.wrapMethod(r,Ue(ak,e))})}function ak(t,e){var r=Fv(t);return r&&r.setOutputEnd((e||this).count()),e}function Fv(t){var e=(t.ecModel||{}).scheduler,r=e&&e.getPipeline(t.uid);if(r){var n=r.currentTask;if(n){var i=n.agentStubMap;i&&(n=i.get(t.uid))}return n}}var Ct=(function(){function t(){this.group=new rt,this.uid=Nf("viewComponent")}return t.prototype.init=function(e,r){},t.prototype.render=function(e,r,n,i){},t.prototype.dispose=function(e,r){},t.prototype.updateView=function(e,r,n,i){},t.prototype.updateLayout=function(e,r,n,i){},t.prototype.updateVisual=function(e,r,n,i){},t.prototype.toggleBlurSeries=function(e,r,n){},t.prototype.eachRendered=function(e){var r=this.group;r&&r.traverse(e)},t})();Yd(Ct);_f(Ct);function Gw(){var t=we();return function(e){var r=t(e),n=e.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 Ww=we(),ok=Gw(),Pt=(function(){function t(){this.group=new rt,this.uid=Nf("viewChart"),this.renderTask=Ho({plan:sk,reset:lk}),this.renderTask.context={view:this}}return t.prototype.init=function(e,r){},t.prototype.render=function(e,r,n,i){},t.prototype.highlight=function(e,r,n,i){var a=e.getData(i&&i.dataType);a&&ty(a,i,"emphasis")},t.prototype.downplay=function(e,r,n,i){var a=e.getData(i&&i.dataType);a&&ty(a,i,"normal")},t.prototype.remove=function(e,r){this.group.removeAll()},t.prototype.dispose=function(e,r){},t.prototype.updateView=function(e,r,n,i){this.render(e,r,n,i)},t.prototype.updateVisual=function(e,r,n,i){this.render(e,r,n,i)},t.prototype.eachRendered=function(e){ip(this.group,e)},t.markUpdateMethod=function(e,r){Ww(e).updateMethod=r},t.protoInitialize=(function(){var e=t.prototype;e.type="chart"})(),t})();function ey(t,e,r){t&&Dv(t)&&(e==="emphasis"?xu:Cu)(t,r)}function ty(t,e,r){var n=Bi(t,e),i=e&&e.highlightKey!=null?sL(e.highlightKey):null;n!=null?R(wt(n),function(a){ey(t.getItemGraphicEl(a),r,i)}):t.eachItemGraphicEl(function(a){ey(a,r,i)})}Yd(Pt);_f(Pt);function sk(t){return ok(t.model)}function lk(t){var e=t.model,r=t.ecModel,n=t.api,i=t.payload,a=e.pipelineContext.progressiveRender,o=t.view,s=i&&Ww(i).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](e,r,n,i),uk[l]}var uk={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Ou="\0__throttleOriginMethod",ry="\0__throttleRate",ny="\0__throttleType";function Ep(t,e,r){var n,i=0,a=0,o=null,s,l,u,f;e=e||0;function c(){a=new Date().getTime(),o=null,t.apply(l,u||[])}var v=function(){for(var h=[],d=0;d=0?c():o=setTimeout(c,-s),i=n};return v.clear=function(){o&&(clearTimeout(o),o=null)},v.debounceNextCall=function(h){f=h},v}function Yw(t,e,r,n){var i=t[e];if(i){var a=i[Ou]||i,o=i[ny],s=i[ry];if(s!==r||o!==n){if(r==null||!n)return t[e]=a;i=t[e]=Ep(a,r,n==="debounce"),i[Ou]=a,i[ny]=n,i[ry]=r}return i}}function zv(t,e){var r=t[e];r&&r[Ou]&&(r.clear&&r.clear(),t[e]=r[Ou])}var iy=we(),ay={itemStyle:Qo(iw,!0),lineStyle:Qo(nw,!0)},fk={lineStyle:"stroke",itemStyle:"fill"};function $w(t,e){var r=t.visualStyleMapper||ay[e];return r||(console.warn("Unknown style type '"+e+"'."),ay.itemStyle)}function Xw(t,e){var r=t.visualDrawType||fk[e];return r||(console.warn("Unknown style type '"+e+"'."),"fill")}var ck={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var r=t.getData(),n=t.visualStyleAccessPath||"itemStyle",i=t.getModel(n),a=$w(t,n),o=a(i),s=i.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=Xw(t,n),u=o[l],f=fe(u)?u:null,c=o.fill==="auto"||o.stroke==="auto";if(!o[l]||f||c){var v=t.getColorFromPalette(t.name,null,e.getSeriesCount());o[l]||(o[l]=v,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||fe(o.fill)?v:o.fill,o.stroke=o.stroke==="auto"||fe(o.stroke)?v:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!e.isSeriesFiltered(t)&&f)return r.setVisual("colorFromPalette",!1),{dataEach:function(h,d){var p=t.getDataParams(d),m=G({},o);m[l]=f(p),h.setItemVisual(d,"style",m)}}}},uo=new Le,hk={createOnAllSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData){var r=t.getData(),n=t.visualStyleAccessPath||"itemStyle",i=$w(t,n),a=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){uo.option=l[n];var u=i(uo),f=o.ensureUniqueItemVisual(s,"style");G(f,u),uo.option.decal&&(o.setItemVisual(s,"decal",uo.option.decal),uo.option.decal.dirty=!0),a in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},vk={performRawSeries:!0,overallReset:function(t){var e=ce();t.eachSeries(function(r){if(!r.isColorBySeries()){var n=r.type+"-"+r.getColorBy();iy(r).scope=e.get(n)||e.set(n,{})}}),t.eachSeries(function(r){if(!r.isColorBySeries()){var n=r.getRawData(),i={},a=r.getData(),o=iy(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=Xw(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 v=a.ensureUniqueItemVisual(f,"style"),h=n.getName(u)||u+"",d=n.count();v[l]=r.getColorFromPalette(h,o,d)}})}})}},nl=Math.PI;function dk(t,e){e=e||{},Te(e,{text:"loading",textColor:ae.color.primary,fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255,255,255,0.8)",showSpinner:!0,color:ae.color.theme[0],spinnerRadius:10,lineWidth:5,zlevel:0});var r=new rt,n=new Ge({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});r.add(n);var i=new Ke({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),a=new Ge({style:{fill:"none"},textContent:i,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});r.add(a);var o;return e.showSpinner&&(o=new Ts({shape:{startAngle:-nl/2,endAngle:-nl/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:nl*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:nl*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=i.getBoundingRect().width,l=e.showSpinner?e.spinnerRadius:0,u=(t.getWidth()-l*2-(e.showSpinner&&s?10:0)-s)/2-(e.showSpinner&&s?0:5+s/2)+(e.showSpinner?0:s/2)+(s?0:l),f=t.getHeight()/2;e.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:t.getWidth(),height:t.getHeight()})},r.resize(),r}var qw=(function(){function t(e,r,n,i){this._stageTaskMap=ce(),this.ecInstance=e,this.api=r,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(e,r){e.restoreData(r),this._stageTaskMap.each(function(n){var i=n.overallTask;i&&i.dirty()})},t.prototype.getPerformArgs=function(e,r){if(e.__pipeline){var n=this._pipelineMap.get(e.__pipeline.id),i=n.context,a=!r&&n.progressiveEnabled&&(!i||i.progressiveRender)&&e.__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}}},t.prototype.getPipeline=function(e){return this._pipelineMap.get(e)},t.prototype.updateStreamModes=function(e,r){var n=this._pipelineMap.get(e.uid),i=e.__preparePipelineContext?e.__preparePipelineContext(r,n):HP(e,r,n);e.pipelineContext=n.context=i},t.prototype.restorePipelines=function(e,r){var n=this,i=n._pipelineMap=ce();r.eachSeries(function(a){var o=e.painter.type==="canvas"&&a.getProgressive(),s=a.uid;i.set(s,{id:s,head:null,tail:null,threshold:a.getProgressiveThreshold(),progressiveEnabled:o&&!(a.preventIncremental&&a.preventIncremental()),blockIndex:-1,step:Math.round(o||700),count:0}),n._pipe(a,a.dataTask)})},t.prototype.prepareStageTasks=function(){var e=this._stageTaskMap,r=this.api.getModel(),n=this.api;R(this._allHandlers,function(i){var a=e.get(i.uid)||e.set(i.uid,{}),o="";Nr(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,a,r,n),i.overallReset&&this._createOverallStageTask(i,a,r,n)},this)},t.prototype.prepareView=function(e,r,n,i){var a=e.renderTask,o=a.context;o.model=r,o.ecModel=n,o.api=i,a.__block=!e.incrementalPrepareRender,this._pipe(r,a)},t.prototype.performDataProcessorTasks=function(e,r){this._performStageTasks(this._dataProcessorHandlers,e,r,{block:!0})},t.prototype.performVisualTasks=function(e,r,n){this._performStageTasks(this._visualHandlers,e,r,n)},t.prototype._performStageTasks=function(e,r,n,i){i=i||{};var a=!1,o=this;R(e,function(l,u){if(!(i.visualType&&i.visualType!==l.visualType)){var f=o._stageTaskMap.get(l.uid),c=f.seriesTaskMap,v=f.overallTask;if(v){var h,d=v.agentStubMap;d.each(function(m){s(i,m)&&(m.dirty(),h=!0)}),h&&v.dirty(),o.updatePayload(v,n);var p=o.getPerformArgs(v,i.block);d.each(function(m){m.perform(p)}),v.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},t.prototype.performSeriesTasks=function(e){var r;e.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each(function(e){var r=e.tail;do{if(r.__block){e.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},t.prototype.updatePayload=function(e,r){r!=="remain"&&(e.context.payload=r)},t.prototype._createSeriesStageTask=function(e,r,n,i){var a=this,o=r.seriesTaskMap,s=r.seriesTaskMap=ce(),l=e.seriesType,u=e.getTargetSeries;e.createOnAllSeries?n.eachRawSeries(f):l?n.eachRawSeriesByType(l,f):u&&u(n,i).each(f);function f(c){var v=c.uid,h=s.set(v,o&&o.get(v)||Ho({plan:_k,reset:Sk,count:wk}));h.context={model:c,ecModel:n,api:i,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:a},a._pipe(c,h)}},t.prototype._createOverallStageTask=function(e,r,n,i){var a=this,o=r.overallTask=r.overallTask||Ho({reset:pk});o.context={ecModel:n,api:i,overallReset:e.overallReset,scheduler:a};var s=o.agentStubMap,l=o.agentStubMap=ce(),u=e.seriesType,f=e.getTargetSeries,c=e.dirtyOnOverallProgress,v=!1,h="";Nr(!e.createOnAllSeries,h),u?n.eachRawSeriesByType(u,d):f?f(n,i).each(d):R(n.getSeries(),d);function d(p){var m=p.uid,g=l.set(m,s&&s.get(m)||(v=!0,Ho({reset:gk,onDirty:yk})));g.context={model:p,dirtyOnOverallProgress:c},g.agent=o,g.__block=c,a._pipe(p,g)}v&&o.dirty()},t.prototype._pipe=function(e,r){var n=e.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},t.wrapStageHandler=function(e,r){return fe(e)&&(e={overallReset:e,seriesType:Tk(e)}),e.uid=Nf("stageHandler"),r&&(e.visualType=r),e},t})();function pk(t){t.overallReset(t.ecModel,t.api,t.payload)}function gk(t){return t.dirtyOnOverallProgress&&mk}function mk(){this.agent.dirty(),this.getDownstream().dirty()}function yk(){this.agent&&this.agent.dirty()}function _k(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Sk(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=wt(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?oe(e,function(r,n){return jw(n)}):bk}var bk=jw(0);function jw(t){return function(e,r){var n=r.data,i=r.resetDefines[t];if(i&&i.dataEach)for(var a=e.start;a0&&h===u.length-v.length){var d=u.slice(0,h);d!=="data"&&(r.mainType=d,r[v.toLowerCase()]=l,f=!0)}}s.hasOwnProperty(u)&&(n[u]=l,f=!0),f||(i[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:i}},t.prototype.filter=function(e,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(e,r.otherQuery,i,a));function f(c,v,h,d){return c[h]==null||v[d||h]===c[h]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t})(),Hv=["symbol","symbolSize","symbolRotate","symbolOffset"],ly=Hv.concat(["symbolKeepAspect"]),Ck={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var r=t.getData();if(t.legendIcon&&r.setVisual("legendIcon",t.legendIcon),!t.hasSymbolVisual)return;for(var n={},i={},a=!1,o=0;o=0&&Ti(l)?l:.5;var u=t.createRadialGradient(o,s,0,o,s,l);return u}function Vv(t,e,r){for(var n=e.type==="radial"?Xk(t,e,r):$k(t,e,r),i=e.colorStops,a=0;a0)?null:t==="dashed"?[4*e,2*e]:t==="dotted"?[e]:Re(t)?[t]:K(t)?t:null}function rT(t){var e=t.style,r=e.lineDash&&e.lineWidth>0&&jk(e.lineDash,e.lineWidth),n=e.lineDashOffset;if(r){var i=e.strokeNoScale&&t.getLineScale?t.getLineScale():1;i&&i!==1&&(r=oe(r,function(a){return a/i}),n/=i)}return[r,n]}var Zk=new Fn(!0);function Nu(t){var e=t.stroke;return!(e==null||e==="none"||!(t.lineWidth>0))}function uy(t){return typeof t=="string"&&t!=="none"}function Bu(t){var e=t.fill;return e!=null&&e!=="none"}function fy(t,e){if(e.fillOpacity!=null&&e.fillOpacity!==1){var r=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=r}else t.fill()}function cy(t,e){if(e.strokeOpacity!=null&&e.strokeOpacity!==1){var r=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=r}else t.stroke()}function Gv(t,e,r){var n=nb(e.image,e.__image,r);if(Sf(n)){var i=t.createPattern(n,e.repeat||"repeat");if(typeof DOMMatrix=="function"&&i&&i.setTransform){var a=new DOMMatrix;a.translateSelf(e.x||0,e.y||0),a.rotateSelf(0,0,(e.rotation||0)*fS),a.scaleSelf(e.scaleX||1,e.scaleY||1),i.setTransform(a)}return i}}function Kk(t,e,r,n,i){var a,o=Nu(r),s=Bu(r),l=r.strokePercent,u=l<1,f=!e.path;(!e.silent||u)&&f&&e.createPathProxy();var c=e.path||Zk,v=e.__dirty;if(!n){var h=r.fill,d=r.stroke,p=s&&!!h.colorStops,m=o&&!!d.colorStops,g=s&&!!h.image,y=o&&!!d.image,_=void 0,S=void 0,b=void 0,w=void 0,T=void 0;(p||m)&&(T=e.getBoundingRect()),p&&(_=v?Vv(t,h,T):e.__canvasFillGradient,e.__canvasFillGradient=_),m&&(S=v?Vv(t,d,T):e.__canvasStrokeGradient,e.__canvasStrokeGradient=S),g&&(b=v||!e.__canvasFillPattern?Gv(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=b),y&&(w=v||!e.__canvasStrokePattern?Gv(t,d,e):e.__canvasStrokePattern,e.__canvasStrokePattern=w),p?t.fillStyle=_:g&&(b?t.fillStyle=b:s=!1),m?t.strokeStyle=S:y&&(w?t.strokeStyle=w:o=!1)}var C=e.getGlobalScale();c.setScale(C[0],C[1],e.segmentIgnoreThreshold);var x,A;t.setLineDash&&r.lineDash&&(a=rT(e),x=a[0],A=a[1]);var D=!0;(f||v&ga)&&(c.setDPR(t.dpr),u?c.setContext(null):(c.setContext(t),D=!1),c.reset(),e.buildPath(c,e.shape,n),c.toStatic(),e.pathUpdated()),D&&c.rebuildPath(t,u?l:1),x&&(t.setLineDash(x),t.lineDashOffset=A),n?(i.batchFill=s,i.batchStroke=o):r.strokeFirst?(o&&cy(t,r),s&&fy(t,r)):(s&&fy(t,r),o&&cy(t,r)),x&&t.setLineDash([])}function Qk(t,e,r){var n=e.__image=nb(r.image,e.__image,e,e.onload);if(!(!n||!Sf(n))){var i=r.x||0,a=r.y||0,o=e.getWidth(),s=e.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;t.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,v=s-f;t.drawImage(n,u,f,c,v,i,a,o,s)}else t.drawImage(n,i,a,o,s)}}function Jk(t,e,r){var n,i=r.text;if(i!=null&&(i+=""),i){t.font=r.font||Bn,t.textAlign=r.textAlign,t.textBaseline=r.textBaseline;var a=void 0,o=void 0;t.setLineDash&&r.lineDash&&(n=rT(e),a=n[0],o=n[1]),a&&(t.setLineDash(a),t.lineDashOffset=o),r.strokeFirst?(Nu(r)&&t.strokeText(i,r.x,r.y),Bu(r)&&t.fillText(i,r.x,r.y)):(Bu(r)&&t.fillText(i,r.x,r.y),Nu(r)&&t.strokeText(i,r.x,r.y)),a&&t.setLineDash([])}}var hy=["shadowBlur","shadowOffsetX","shadowOffsetY"],vy=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function nT(t,e,r,n,i){var a=!1;if(!n&&(r=r||{},e===r))return!1;if(n||e.opacity!==r.opacity){_t(t,i),a=!0;var o=Math.max(Math.min(e.opacity,1),0);t.globalAlpha=isNaN(o)?Ri.opacity:o}(n||e.blend!==r.blend)&&(a||(_t(t,i),a=!0),t.globalCompositeOperation=e.blend||Ri.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.isSSR=function(){return this._ssr},e.prototype.setOption=function(r,n,i){if(!this[We]){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[We]=!0,ha(this),!this._model||n){var l=new nO(this._api),u=this._theme,f=this._model=new xp;f.scheduler=this._scheduler,f.ssr=this._ssr,f.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},qv);var c={seriesTransition:s,optionChanged:!0};if(i)this[et]={silent:a,updateParams:c},this[We]=!1,this.getZr().wakeUp();else{try{di(this),Xr.update.call(this,null,c)}catch(v){throw this[et]=null,this[We]=!1,v}this._ssr||this._zr.flush(),this[et]=null,this[We]=!1,fa.call(this,a),ca.call(this,a)}}},e.prototype.setTheme=function(r,n){if(!this[We]){if(this._disposed){this.id;return}var i=this._model;if(i){var a=n&&n.silent,o=null;this[et]&&(a==null&&(a=this[et].silent),o=this[et].updateParams,this[et]=null),this[We]=!0,ha(this);try{this._updateTheme(r),i.setTheme(this._theme),di(this),Xr.update.call(this,{type:"setTheme"},o)}catch(s){throw this[We]=!1,s}this[We]=!1,fa.call(this,a),ca.call(this,a)}}},e.prototype._updateTheme=function(r){te(r)&&(r=yT[r]),r&&(r=de(r),r&&Cw(r,!0),this._theme=r)},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||ve.hasGlobalWindow&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},e.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()})},e.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},e.prototype.getSvgDataURL=function(){var r=this._zr,n=r.storage.getDisplayList();return R(n,function(i){i.stopAnimation(null,!0)}),r.painter.toDataURL()},e.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},e.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(Uu[i]){var l=s,u=s,f=-s,c=-s,v=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();R(Pi,function(_,S){if(_.group===i){var b=n?_.getZr().painter.getSvgDom().innerHTML:_.renderToCanvas(de(r)),w=_.getDom().getBoundingClientRect();l=a(w.left,l),u=a(w.top,u),f=o(w.right,f),c=o(w.bottom,c),v.push({dom:b,left:w.left,top:w.top})}}),l*=h,u*=h,f*=h,c*=h;var d=f-l,p=c-u,m=it.createCanvas(),g=vv(m,{renderer:n?"svg":"canvas"});if(g.resize({width:d,height:p}),n){var y="";return R(v,function(_){var S=_.left-l,b=_.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 Ge({shape:{x:0,y:0,width:d,height:p},style:{fill:r.connectedBackgroundColor}})),R(v,function(_){var S=new un({style:{x:_.left*h-l,y:_.top*h-u,image:_.dom}});g.add(S)}),g.refreshImmediately(),m.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},e.prototype.convertToPixel=function(r,n,i){return ll(this,"convertToPixel",r,n,i)},e.prototype.convertToLayout=function(r,n,i){return ll(this,"convertToLayout",r,n,i)},e.prototype.convertFromPixel=function(r,n,i){return ll(this,"convertFromPixel",r,n,i)},e.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var i=this._model,a,o=Ic(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},e.prototype.getVisual=function(r,n){var i=this._model,a=Ic(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?Dk(s,l,n):Ek(s,n)},e.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},e.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},e.prototype._initEvents=function(){var r=this;R(xN,function(i){var a=function(o){var s=r.getModel(),l=o.target,u,f=i==="globalout";if(f?u={}:l&&Ro(l,function(p){var m=me(p);if(m&&m.dataIndex!=null){var g=m.dataModel||s.getSeriesByIndex(m.seriesIndex);return u=g&&g.getDataParams(m.dataIndex,m.dataType,l)||{},!0}else if(m.eventData)return u=G({},m.eventData),!0},!0),u){var c=u.componentType,v=u.componentIndex;(c==="markLine"||c==="markPoint"||c==="markArea")&&(c="series",v=u.seriesIndex);var h=c&&v!=null&&s.getComponent(c,v),d=h&&r[h.mainType==="series"?"_chartsMap":"_componentsMap"][h.__viewId];u.event=o,u.type=i,r._$eventProcessor.eventInfo={targetEl:l,packedEvent:u,model:h,view:d},r.trigger(i,u)}};a.zrEventfulCallAtLast=!0,r._zr.on(i,a,r)});var n=this._messageCenter;R($v,function(i,a){n.on(a,function(o){r.trigger(a,o)})}),Mk(n,this,this._api)},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&KS(this.getDom(),Lp,"");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 Pi[n.id]},e.prototype.resize=function(r){if(!this[We]){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[et]&&(a==null&&(a=this[et].silent),i=!0,this[et]=null),this[We]=!0,ha(this);try{i&&di(this),Xr.update.call(this,{type:"resize",animation:G({duration:0},r&&r.animation)})}catch(o){throw this[We]=!1,o}this[We]=!1,fa.call(this,a),ca.call(this,a)}}},e.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(ie(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!jv[r]){var i=jv[r](this._api,n),a=this._zr;this._loadingFX=i,a.add(i)}},e.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},e.prototype.makeActionFromEvent=function(r){var n=G({},r);return n.type=Yv[r.type],n},e.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(ie(n)||(n={silent:!!n}),!!zu[r.type]&&this._model){if(this[We]){this._pendingActions.push(r);return}var i=n.silent;fh.call(this,r,i);var a=n.flush;a?this._zr.flush():a!==!1&&ve.browser.weChat&&this._throttledZrFlush(),fa.call(this,i),ca.call(this,i)}},e.prototype.updateLabelLayout=function(){Vt.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},e.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()},e.internalField=(function(){di=function(c){Ik(c._model);var v=c._scheduler;v.restorePipelines(c._zr,c._model),v.prepareStageTasks(),lh(c,!0),lh(c,!1),v.plan()},lh=function(c,v){for(var h=c._model,d=c._scheduler,p=v?c._componentsViews:c._chartsViews,m=v?c._componentsMap:c._chartsMap,g=c._zr,y=c._api,_=0;_ne(v.get("hoverLayerThreshold"),Sw.hoverLayerThreshold)&&!ve.node&&!ve.worker;(c._usingTHL||m)&&(v.eachSeries(function(g){if(!g.preventUsingHoverLayer){var y=c._chartsMap[g.__viewId];y.__alive&&y.eachRendered(function(_){var S=_.states.emphasis;S&&S.hoverLayer!==ep&&(S.hoverLayer=m?Vb:Ub)})}}),c._usingTHL=m)}}function s(c,v){var h=c.get("blendMode")||null;v.eachRendered(function(d){d.isGroup||(d.style.blend=h)})}function l(c,v){if(!c.preventAutoZ){var h=Jb(c);v.eachRendered(function(d){return ew(d,h.z,h.zlevel),!0})}}function u(c,v){v.eachRendered(function(h){if(!Ca(h)){var d=h.getTextContent(),p=h.getTextGuideLine();h.stateTransition&&(h.stateTransition=null),d&&d.stateTransition&&(d.stateTransition=null),p&&p.stateTransition&&(p.stateTransition=null),h.hasState()?(h.prevStates=h.currentStates,h.clearStates()):h.prevStates&&(h.prevStates=null)}})}function f(c,v){var h=c.getModel("stateAnimation"),d=c.isAnimationEnabled(),p=h.get("duration"),m=p>0?{duration:p,delay:h.get("delay"),easing:h.get("easing")}:null;v.eachRendered(function(g){if(g.states&&g.states.emphasis){if(Ca(g))return;if(g instanceof Me&&lL(g),g.__dirty){var y=g.prevStates;y&&g.useStates(y)}if(d){g.stateTransition=m;var _=g.getTextContent(),S=g.getTextGuideLine();_&&(_.stateTransition=m),S&&(S.stateTransition=m)}g.__dirty&&a(g)}})}Dy=function(c){return new((function(v){q(h,v);function h(){return v!==null&&v.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return c._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(d){for(;d;){var p=d.__ecComponentInfo;if(p!=null)return c._model.getComponent(p.mainType,p.index);d=d.parent}},h.prototype.enterEmphasis=function(d,p){xu(d,p),Ht(c)},h.prototype.leaveEmphasis=function(d,p){Cu(d,p),Ht(c)},h.prototype.enterBlur=function(d){QI(d),Ht(c)},h.prototype.leaveBlur=function(d){wb(d),Ht(c)},h.prototype.enterSelect=function(d){Tb(d),Ht(c)},h.prototype.leaveSelect=function(d){xb(d),Ht(c)},h.prototype.getModel=function(){return c.getModel()},h.prototype.getViewOfComponentModel=function(d){return c.getViewOfComponentModel(d)},h.prototype.getViewOfSeriesModel=function(d){return c.getViewOfSeriesModel(d)},h.prototype.getECUpdateCycleVersion=function(){return c[ol]},h.prototype.usingTHL=function(){return c._usingTHL},h})(mb))(c)},mT=function(c){function v(h,d){for(var p=0;p=0)){Ry.push(r);var o=qw.wrapStageHandler(r,i);o.__prio=e,o.__raw=r,t.push(o)}}function zp(t,e){jv[t]=e}function LN(t){eS({createCanvas:t})}function CT(t,e,r){var n=eT("registerMap");n&&n(t,e,r)}function ON(t){var e=eT("getMap");return e&&e(t)}var AT=NO;Vn(Pp,ck);Vn(Hf,hk);Vn(Hf,vk);Vn(Pp,Ck);Vn(Hf,Ak);Vn(fT,sN);Np(Cw);Bp(vN,pO);zp("default",dk);Xi({type:Mi,event:Mi,update:Mi},at);Xi({type:Ul,event:Ul,update:Ul},at);Xi({type:wu,event:jd,update:wu,action:at,refineEvent:Hp,publishNonRefinedEvent:!0});Xi({type:Tv,event:jd,update:Tv,action:at,refineEvent:Hp,publishNonRefinedEvent:!0});Xi({type:Tu,event:jd,update:Tu,action:at,refineEvent:Hp,publishNonRefinedEvent:!0});function Hp(t,e,r,n){return{eventContent:{selected:nL(r),isFromClick:e.isFromClick||!1}}}kp("default",{});kp("dark",Qw);var kN={};function co(t){return t==null?0:t.length||1}function My(t){return t}var NN=(function(){function t(e,r,n,i,a,o){this._old=e,this._new=r,this._oldKeyGetter=n||My,this._newKeyGetter=i||My,this.context=a,this._diffModeMultiple=o==="multiple"}return t.prototype.add=function(e){return this._add=e,this},t.prototype.update=function(e){return this._update=e,this},t.prototype.updateManyToOne=function(e){return this._updateManyToOne=e,this},t.prototype.updateOneToMany=function(e){return this._updateOneToMany=e,this},t.prototype.updateManyToMany=function(e){return this._updateManyToMany=e,this},t.prototype.remove=function(e){return this._remove=e,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var e=this._old,r=this._new,n={},i=new Array(e.length),a=new Array(r.length);this._initIndexMap(e,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)},t.prototype._executeMultiple=function(){var e=this._old,r=this._new,n={},i={},a=[],o=[];this._initIndexMap(e,n,a,"_oldKeyGetter"),this._initIndexMap(r,i,o,"_newKeyGetter");for(var s=0;s1&&v===1)this._updateManyToOne&&this._updateManyToOne(f,u),i[l]=null;else if(c===1&&v>1)this._updateOneToMany&&this._updateOneToMany(f,u),i[l]=null;else if(c===1&&v===1)this._update&&this._update(f,u),i[l]=null;else if(c>1&&v>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 ho=ie,pn=oe,GN=typeof Int32Array=="undefined"?Array:Int32Array,WN="e\0\0",Py=-1,YN=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],$N=["_approximateExtent"],Iy,fl,vo,po,vh,go,dh,Vp=(function(){function t(e,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","minmaxDownSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","minmaxDownSample","lttbDownSample"];var n,i=!1;ET(e)?(n=e.dimensions,this._dimOmitted=e.isDimensionOmitted(),this._schema=e):(i=!0,n=e),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===zt;if(l&&!i.pure)for(var u=[],f=e;f0},t.prototype.ensureUniqueItemVisual=function(e,r){var n=this._itemVisuals,i=n[e];i||(i=n[e]={});var a=i[r];return a==null&&(a=this.getVisual(r),K(a)?a=a.slice():ho(a)&&(a=G({},a)),i[r]=a),a},t.prototype.setItemVisual=function(e,r,n){var i=this._itemVisuals[e]||{};this._itemVisuals[e]=i,ho(r)?G(i,r):i[r]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(e,r){ho(e)?G(this._layout,e):this._layout[e]=r},t.prototype.getLayout=function(e){return this._layout[e]},t.prototype.getItemLayout=function(e){return this._itemLayouts[e]},t.prototype.setItemLayout=function(e,r,n){this._itemLayouts[e]=n?G(this._itemLayouts[e]||{},r):r},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(e,r){var n=this.hostModel&&this.hostModel.seriesIndex;HI(n,this.dataType,e,r),this._graphicEls[e]=r},t.prototype.getItemGraphicEl=function(e){return this._graphicEls[e]},t.prototype.eachItemGraphicEl=function(e,r){R(this._graphicEls,function(n,i){n&&e&&e.call(r,n,i)})},t.prototype.cloneShallow=function(e){return e||(e=new t(this._schema?this._schema:pn(this.dimensions,this._getDimInfo,this),this.hostModel)),vh(e,this),e._store=this._store,e},t.prototype.wrapMethod=function(e,r){var n=this[e];fe(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(e),this[e]=function(){var i=n.apply(this,arguments);return r.apply(this,[i].concat(ff(arguments)))})},t.internalField=(function(){Iy=function(e){var r=e._invertedIndicesMap;R(r,function(n,i){var a=e._dimInfos[i],o=a.ordinalMeta,s=e._store;if(o){n=r[i]=new GN(o.categories.length);for(var l=0;l1&&(l+="__ec__"+f),i[r]=l}}})(),t})();function XN(t,e){return Gp(t,e).dimensions}function Gp(t,e){Cp(t)||(t=Aw(t)),e=e||{};var r=e.coordDimensions||[],n=e.dimensionsDefine||t.dimensionsDefine||[],i=ce(),a=[],o=qN(t,r,n,e.dimensionsCount),s=e.canOmitUnusedDimensions&&MT(o),l=n===t.dimensionsDefine,u=l?RT(t):Up(n),f=e.encodeDefine;!f&&e.encodeDefaulter&&(f=e.encodeDefaulter(t,o));for(var c=ce(f),v=new Ow(o),h=0;h0&&(x.name=x.name+(A-1))}),new DT({source:t,dimensions:a,fullDimensionCount:o,dimensionOmitted:s})}function qN(t,e,r,n){var i=Math.max(t.dimensionsDetectedCount||1,e.length,r.length,n||0);return R(e,function(a){var o;ie(a)&&(o=a.dimsDef)&&(i=Math.max(i,o.length))}),i}function jN(t,e,r){if(r||e.hasKey(t)){for(var n=0;e.hasKey(t+n);)n++;t+=n}return e.set(t,!0),t}var ZN=(function(){function t(e){this.coordSysDims=[],this.axisMap=ce(),this.categoryAxisMap=ce(),this.coordSysName=e}return t})();function KN(t){var e=t.get("coordinateSystem"),r=new ZN(e),n=QN[e];if(n)return n(t,r,r.axisMap,r.categoryAxisMap),r}var QN={cartesian2d:function(t,e,r,n){var i=t.getReferringComponents("xAxis",Zt).models[0],a=t.getReferringComponents("yAxis",Zt).models[0];e.coordSysDims=["x","y"],r.set("x",i),r.set("y",a),va(i)&&(n.set("x",i),e.firstCategoryDimIndex=0),va(a)&&(n.set("y",a),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,r,n){var i=t.getReferringComponents("singleAxis",Zt).models[0];e.coordSysDims=["single"],r.set("single",i),va(i)&&(n.set("single",i),e.firstCategoryDimIndex=0)},polar:function(t,e,r,n){var i=t.getReferringComponents("polar",Zt).models[0],a=i.findAxisModel("radiusAxis"),o=i.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],r.set("radius",a),r.set("angle",o),va(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),va(o)&&(n.set("angle",o),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=1))},geo:function(t,e,r,n){e.coordSysDims=["lng","lat"]},parallel:function(t,e,r,n){var i=t.ecModel,a=i.getComponent("parallel",t.get("parallelIndex")),o=e.coordSysDims=a.dimensions.slice();R(a.parallelAxisIndex,function(s,l){var u=i.getComponent("parallelAxis",s),f=o[l];r.set(f,u),va(u)&&(n.set(f,u),e.firstCategoryDimIndex==null&&(e.firstCategoryDimIndex=l))})},matrix:function(t,e,r,n){var i=t.getReferringComponents("matrix",Zt).models[0];e.coordSysDims=["x","y"];var a=i.getDimensionModel("x"),o=i.getDimensionModel("y");r.set("x",a),r.set("y",o),n.set("x",a),n.set("y",o)}};function va(t){return t.get("type")==="category"}function PT(t,e,r){r=r||{};var n=r.byIndex,i=r.stackedCoordDimension,a,o,s;JN(e)?a=e:(o=e.schema,a=o.dimensions,s=e.store);var l=!!(t&&t.get("stack")),u,f,c,v,h=!0;function d(S){return S.type!=="ordinal"&&S.type!=="time"}if(R(a,function(S,b){te(S)&&(a[b]=S={name:S}),d(S)||(h=!1)}),R(a,function(S,b){l&&!S.isExtraCoord&&(!n&&!u&&S.ordinalMeta&&(u=S),!f&&d(S)&&(!h||S.coordDim!=="x"&&S.coordDim!=="angle")&&(!i||i===S.coordDim)&&(f=S))}),f&&!n&&!u&&(n=!0),f){c="__\0ecstackresult_"+t.id,v="__\0ecstackedover_"+t.id,u&&(u.createInvertedIndices=!0);var p=f.coordDim,m=f.type,g=0;R(a,function(S){S.coordDim===p&&g++});var y={name:c,coordDim:p,coordDimIndex:g,type:m,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length},_={name:v,coordDim:v,coordDimIndex:g+1,type:m,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:a.length+1};o?(s&&(y.storeDimIndex=s.ensureCalculationDimension(v,m),_.storeDimIndex=s.ensureCalculationDimension(c,m)),o.appendCalculationDimension(y),o.appendCalculationDimension(_)):(a.push(y),a.push(_))}return{stackedDimension:f&&f.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:v,stackResultDimension:c}}function JN(t){return!ET(t.schema)}function Ua(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function IT(t,e){return Ua(t,e)?t.getCalculationInfo("stackResultDimension"):e}function eB(t,e){var r=t.get("coordinateSystem"),n=Bf.get(r),i;return e&&e.coordSysDims&&(i=oe(e.coordSysDims,function(a){var o={name:a},s=e.axisMap.get(a);if(s){var l=s.get("type");o.type=zN(l)}return o})),i||(i=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),i}function tB(t,e,r){var n,i;return r&&R(t,function(a,o){var s=a.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),a.ordinalMeta=l.getOrdinalMeta(),e&&(a.createInvertedIndices=!0)),a.otherDims.itemName!=null&&(i=!0)}),!i&&n!=null&&(t[n].otherDims.itemName=0),n}function LT(t,e,r){r=r||{};var n=e.getSourceManager(),i,a=!1;i=n.getSource(),a=i.sourceFormat===zt;var o=KN(e),s=eB(e,o),l=r.useEncodeDefaulter,u=fe(l)?l:l?Ue(Y2,s,e):null,f={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!a},c=Gp(i,f),v=tB(c.dimensions,r.createInvertedIndices,o),h=a?null:n.getSharedDataStore(c),d=PT(e,{schema:c,store:h}),p=new Vp(c,e);p.setCalculationInfo(d);var m=v!=null&&rB(i)?function(g,y,_,S){return S===v?_:this.defaultDimValueGetter(g,y,_,S)}:null;return p.hasItemOption=!1,p.initData(a?i:h,null,m),p}function rB(t){if(t.sourceFormat===zt){var e=nB(t.data||[]);return!K(ys(e))}}function nB(t){for(var e=0;e=e[0]&&t<=e[1]},getExtent:function(){return this._extents[Qt].slice()},getExtentUnsafe:function(t){return this._extents[t]},setExtent:function(t,e){Ly(this._extents,Qt,t,e)},setExtent2:function(t,e,r){var n=this._extents;n[t]||(n[t]=n[Qt].slice()),Ly(n,t,e,r)},freeze:function(){}};function Ly(t,e,r,n){Fa(r,n)&&(t[e][0]=r,t[e][1]=n)}function FT(t){return Wu(t)||Va(t)}function Wu(t){return t.type==="interval"}function Yp(t){return t.type==="time"}function Va(t){return t.type==="log"}function Vr(t){return t.type==="ordinal"}function fB(t){var e=mf(t),r=Wi(10,e),n=Br(t/r);return n?n===2?n=3:n===3?n=5:n*=2:n=1,_e(n*r,-e)}function Hi(t){return Kr(t)+2}function cl(t,e){return Ni(t)/Ni(e)}function ph(t,e,r){var n=r&&r.lookup;if(n){for(var i=0;i1&&a/o>2&&(i=Math.round(Math.ceil(i/o)*o)),i!==n[0]&&l(n[0],!0,!0);for(var s=i;s<=n[1];s+=o)l(s,!1,s===n[0]||s===n[1]);s-o!==n[1]&&l(n[1],!0,!0);function l(u,f,c){r({value:u,offInterval:f},c)}}var UT=(function(t){q(e,t);function e(r){var n=t.call(this)||this;n.type="ordinal",n.parse=e.parse,NT(n,e.decoratedMethods);var i=r.ordinalMeta;i||(i=new Zv({})),K(i)&&(i=new Zv({categories:oe(i,function(o){return ie(o)?o.value:o})})),n._ordinalMeta=i;var a=Wp(null,null,r.extent||[0,i.categories.length-1]);return n._mapper=a.mapper,BT(n),n}return e.parse=function(r){return r==null?r=NaN:te(r)?(r=this._ordinalMeta.getOrdinal(r),r==null&&(r=NaN)):r=Br(r),r},e.prototype.getTicks=function(){var r=[];return HT(this,0,function(n){r.push(n)}),r},e.prototype.getMinorTicks=function(r){},e.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=It(s,n.length);o=0&&r=0&&r=0&&ro[0]&&po[1]||!isFinite(p)||!isFinite(o[1]))break}else{if(m>d)break;p=It(p,o[1]),m===d&&(p=o[1])}if(c.push({value:p}),p=_e(p+i,s),u){var g=u.calcNiceTickMultiple(p,h);g>=0&&(p=_e(p+g*i,s))}if(c.length>0&&p===c[c.length-1].value)break;if(c.length>v)return[]}var y=c.length?c[c.length-1].value:o[1];return a[1]>y&&c.push({value:r.expandToNicedExtent?_e(y+i,s):a[1]}),f&&l.pruneTicksByBreak(r.pruneByBreak,c,u.breaks,function(_){return _.value},n.interval,a),f&&r.breakTicks!=="none"&&l.addBreaksToTicks(c,u.breaks,a),c},e.prototype.getMinorTicks=function(r){return Xp(this,r,Pu(this),this._cfg.interval)},e.prototype.getLabel=function(r,n){if(r==null)return"";var i=n&&n.precision;i==null?i=Kr(r.value)||0:i==="auto"&&(i=this._cfg.intervalPrecision);var a=_e(r.value,i,!0);return yp(a)},e.type="interval",e})(wr);wr.registerClass(Ma);var hB=function(t,e,r,n){for(;r>>1;t[i][1]16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function dB(t){var e=30*Kt;return t/=e,t>6?6:t>3?3:t>2?2:1}function pB(t){return t/=Bo,t>12?12:t>6?6:t>3.5?4:t>2?2:1}function Oy(t,e){return t/=e?cp:fp,t>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function gB(t){return Ee(yf(t,!0),1)}function mB(t,e,r){var n=Math.max(0,ge(kt,e)-1);return Lu(new Date(t),kt[n],r).getTime()}function yB(t,e){var r=new Date(0);r[t](1);var n=r.getTime();r[t](1+e);var i=r.getTime()-n;return function(a,o){return Math.max(0,Math.round((o-a)/i))}}function _B(t,e,r,n,i,a){var o=3e3,s=S2,l=0;function u(O,N,U,W,X,Q,J){for(var j=yB(X,O),z=N,re=new Date(z);zo));)if(re[X](re[W]()+O),z=re.getTime(),a){var se=a.calcNiceTickMultiple(z,j);se>0&&(re[X](re[W]()+se*O),z=re.getTime())}J.push({value:z,notAdd:z>n[1]})}function f(O,N,U){var W=[],X=!N.length;if(!GT(Fo(O),n[0],n[1],r)){X&&(N=[{value:mB(n[0],O,r)},{value:n[1]}]);for(var Q=0;Q=n[0]&&J<=n[1]&&u(z,J,j,re,se,L,W),O==="year"&&U.length>1&&Q===0&&U.unshift({value:U[0].value-z})}}for(var Q=0;Q=n[0]&&S<=n[1]&&h++)}var b=i/e;if(h>b*1.5&&d>b/1.5||(c.push(y),h>b||t===s[p]))break}v=[]}}}for(var w=ze(oe(c,function(O){return ze(O,function(N){return N.value>=n[0]&&N.value<=n[1]&&!N.notAdd})}),function(O){return O.length>0}),T=w.length-1,C=[],p=0;pn[0])&&C.unshift({value:n[0],time:{level:0,upperTimeUnit:I,lowerTimeUnit:I},notNice:!0}),(!M||M.values&&(a=s);var l=hl.length,u=Math.min(hB(hl,a,0,l),l-1),f=hl[u][1],c=hl[Math.max(u-1,0)][0];t.setTimeInterval({approxInterval:a,interval:f,minLevelUnit:c})};wr.registerClass(VT);var vl=0,dl=1,bB=2,WT=(function(t){q(e,t);function e(r){var n=t.call(this)||this;n.type="log",n.parse=Ma.parse,n.base=r.logBase||10;var i=[],a=[],o=n._lookup={from:i,to:a};i[vl]=i[dl]=a[vl]=a[dl]=NaN,NT(n,e.mapperMethods);var s=St(),l=r.breakOption,u={lookup:o};return s&&s.parseAxisBreakOptionInwardTransform(l,n,{noNegative:!0},bB,u),n.powStub=new Ma({breakParsed:u.original}),n.intervalStub=new Ma({breakParsed:u.transformed}),BT(n,n.intervalStub),n}return e.prototype.getTicks=function(r){var n=this.base,i=this.powStub,a=St(),o=this.intervalStub,s=o.getExtent(),l=i.getExtent(),u={lookup:{from:s,to:l}};return oe(o.getTicks(r||{}),function(f){var c=f.value,v=ph(c,n,u),h;if(a){var d=a.getTicksBreakOutwardTransform(this,f,Pu(i),this._lookup);d&&(h=d.vBreak,v=d.tickVal)}return{value:v,break:h}},this)},e.prototype.getMinorTicks=function(r){return Xp(this,r,Pu(this.powStub),this.intervalStub.getConfig().interval)},e.prototype.getLabel=function(r,n){return this.intervalStub.getLabel(r,n)},e.type="log",e.mapperMethods={needTransform:function(){return!0},normalize:function(r){return this.intervalStub.normalize(cl(r,this.base))},scale:function(r){return ph(this.intervalStub.scale(r),this.base,null)},transformIn:function(r,n){return r=cl(r,this.base),n&&n.depth===Vu?r:this.intervalStub.transformIn(r,n)},transformOut:function(r,n){var i=n?n.depth:null;return ky.depth=i,Ny.lookup=this._lookup,ph(i===Vu?r:this.intervalStub.transformOut(r,ky),this.base,Ny)},contain:function(r){return this.powStub.contain(r)},setExtent:function(r,n){this.setExtent2(Qt,r,n)},setExtent2:function(r,n,i){if(!(!Fa(n,i)||n<=0||i<=0)){var a=By,o=By;if(r===Qt){var s=this._lookup;a=s.to,o=s.from}this.powStub.setExtent2(r,a[vl]=n,a[dl]=i);var l=this.base;this.intervalStub.setExtent2(r,o[vl]=cl(n,l),o[dl]=cl(i,l))}},getFilter:function(){return{g:0}},sanitize:function(r,n){return Fa(n[0],n[1])&&Fr(r)&&r<=0&&(r=n[0]),r},getDefaultStartValue:function(){return 1},getExtent:function(){return this.powStub.getExtent()},getExtentUnsafe:function(r,n){return n===null?this.powStub.getExtentUnsafe(r,null):this.intervalStub.getExtentUnsafe(r,n)}},e})(wr);wr.registerClass(WT);var ky={},Ny={},By=[],YT={value:1,category:1,time:1,log:1},$T=we();function XT(t){var e=t.get("type");return(e==null||!Mt(YT,e)&&!wr.getClass(e))&&(e="value"),e}function qT(t,e,r){var n=St(),i;switch(n&&(i=jT(t,e,r)),e){case"category":return new UT({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:Xt()});case"time":return new VT({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC"),breakOption:i});case"log":return new WT({logBase:t.get("logBase"),breakOption:i});case"value":return new Ma({breakOption:i});default:return new(wr.getClass(e)||Ma)({})}}function wB(t,e,r){var n=t.getExtentUnsafe(Qt,null),i=n[0],a=n[1];return Fa(i,a)?i===e||a===e?xB:ie?TB:Kv:Kv}var TB=1,xB=2,Kv=3;function CB(t){$T(t).noOnMyZero=!0}function AB(t){return $T(t).noOnMyZero}function Gf(t){var e=t.getLabelModel().get("formatter");if(t.type==="time"){var r=b2(e);return function(i,a){return t.scale.getFormattedLabel(i,a,r)}}else{if(te(e))return function(i){var a=t.scale.getLabel(i),o=e.replace("{value}",a!=null?a:"");return o};if(fe(e)){if(t.type==="category")return function(i,a){return e(Yu(t,i),i.value-t.scale.getExtent()[0],null)};var n=St();return function(i,a){var o=null;return n&&(o=n.makeAxisLabelFormatterParamBreak(o,i.break)),e(Yu(t,i),a,o)}}else return function(i){return t.scale.getLabel(i)}}}function Yu(t,e){var r=t.scale;return Vr(r)?r.getLabel(e):e.value}function qp(t){var e=t.get("interval");return e==null?"auto":e}function DB(t){return t.type==="category"&&qp(t.getLabelModel())===0}function EB(t,e){var r={};return R(t.mapDimensionsAll(e),function(n){r[IT(t,n)]=!0}),Pe(r)}function Ga(t){return t==="middle"||t==="center"}function ss(t){return t.getShallow("show")}function jT(t,e,r){var n=t.get("breaks",!0);if(n!=null)return!St()||!r||!RB(e)?void 0:n}function RB(t){return t!=="category"}function ZT(t,e,r,n,i,a){var o=Va(t),s=o?t.intervalStub:t;if(s.setExtent(n[0],n[1]),o){var l=t.powStub,u={depth:Vu},f=t.transformOut(n[0],u),c=t.transformOut(n[1],u),v=cB(r,n);e[0]&&!v[0]&&(f=i[0]),e[1]&&!v[1]&&(c=i[1]),l.setExtent(f,c)}s.setConfig(a)}function Es(t,e){return Vr(t)?t.getRawOrdinalNumber(e.value):e.value}function KT(t,e){return Vr(t)&&!!e.get("boundaryGap")}var QT=(function(){function t(){}return t.prototype.needIncludeZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t})(),Fy="|&",Rs=we(),MB=-2;we();function PB(t,e){var r=t.model,n=Rs(Ds(r.ecModel)).keyed,i=n&&n.get(e);return i&&i.get(r.uid)}function IB(t,e){return JT(PB(t,e))}function LB(t,e){var r=[];return OB(t.model.ecModel,function(n){for(var i=0;i0&&c[1]>0&&!v[0]&&(c[0]=0),c[0]<0&&c[1]<0&&!v[1]&&(c[1]=0));var S=!1;c[0]>c[1]&&(c.reverse(),S=!0);var b=mo(e,r.get("startValue",!0)),w=b!=null;!Fr(b)&&i&&(b=e.getDefaultStartValue?e.getDefaultStartValue():0),Fr(b)&&(w||!y||_)&&(bc[1]&&!v[1]&&(c[1]=b,v[1]=!0));var T=this._i={scale:e,dataMM:f,noZoomEffMM:c,zoomMM:[],fixMM:v,zoomFixMM:[!1,!1],startValue:b,isBlank:g,incl0:_,tggAxInv:S,ctnShp:a};Vy(T,c)}return t.prototype.makeNoZoom=function(){return this._i.noZoomEffMM.slice()},t.prototype.makeFinal=function(){var e=this._i,r=e.zoomMM,n=e.noZoomEffMM,i=e.zoomFixMM,a=e.fixMM,o={fixMM:a,zoomFixMM:i,isBlank:e.isBlank,incl0:e.incl0,tggAxInv:e.tggAxInv,ctnShp:e.ctnShp,effMM:n.slice()},s=o.effMM;return r[0]!=null&&(s[0]=r[0],a[0]=i[0]=!0),r[1]!=null&&(s[1]=r[1],a[1]=i[1]=!0),Vy(e,s),o},t.prototype.makeRenderInfo=function(){return{startValue:this._i.startValue}},t.prototype.setZoomMM=function(e,r){this._i.zoomMM[e]=r},t})();function Vy(t,e){var r=t.scale,n=t.dataMM;r.sanitize&&(e[0]=r.sanitize(e[0],n),e[1]=r.sanitize(e[1],n),BP(e))}function mo(t,e){return e==null?null:ka(e)?NaN:t.parse(e)}function HB(t,e){var r;if(Vr(t))r=[0,0];else{var n=e.get("boundaryGap");typeof n=="boolean"&&(n=null),r=K(n)?n:[n,n]}return[Gy(r[0]),Gy(r[1])]}function Gy(t){return ki(typeof t=="boolean"?0:t,1)||0}function rx(t){var e=BB(t.scale);return e.extent||(e.extent=Xt()),e}function UB(t,e){rx(t).dimIdxInCoord=e.get(t.dim)}function VB(t,e){var r=t.scale,n=t.model,i=t.dim;r.rawExtentInfo||GB(r,t,i,n,e)}function GB(t,e,r,n,i){var a=rx(e),o=a.extent,s=!1;kB(e,function(f){if(f.boxCoordinateSystem){var c=mw(f).coord,v=a.dimIdxInCoord;if(v>=0){if(K(c)){var h=c[v];h!=null&&!K(h)&&yv(o,t.parse(h))}}}else if(f.coordinateSystem){var d=f.getData();if(d){var p=t.getFilter?t.getFilter():null;R(EB(d,r),function(m){kP(o,d.getApproximateExtent(m,p))})}f.__requireStartValue&&f.__requireStartValue(e)&&(s=!0)}});var l=YB(t,e,n),u=new tx(t,n,o,s,l);nx(t,u,i),a.extent=null}function WB(t,e){var r=t.scale;nx(r,new tx(r,t.model,e,!1,!1),zB)}function nx(t,e,r){t.rawExtentInfo=e,e.from=r}var ix=ce();function ax(t,e,r,n,i){t.rawExtentInfo||WB({scale:t,model:e},i||Xt());var a=t.rawExtentInfo.makeFinal(),o=a.effMM;return t.setExtent(o[0],o[1]),t.setBlank(a.isBlank),n&&a.tggAxInv&&r&&!r.get("legacyMinMaxDontInverseAxis")&&(n.inverse=!n.inverse),a}function YB(t,e,r){var n=KT(t,r),i=r.get("containShape",!0);if(i==null&&!n&&(i=!0),!i)return!1;var a=!1;return ex(e,function(o){a=!!ix.get(o)||a}),a}function $B(t,e,r,n){if(r.ctnShp){var i;if(ex(t,function(s){var l=ix.get(s);if(l){var u=l(t,n);u&&(i=i||[0,0],JS(i,u[0]),eb(i,u[1]),CB(t))}}),!!i){var a=e.getExtent();if(Vr(e))t.onBand||e.setExtent2(as,It(a[0],a[0]+i[0]),Ee(a[1],a[1]+i[1]));else{var o=a.slice();r.zoomFixMM[0]||(o[0]=It(o[0],e.transformOut(e.transformIn(o[0],null)+i[0],null))),r.zoomFixMM[1]||(o[1]=Ee(o[1],e.transformOut(e.transformIn(o[1],null)+i[1],null))),(o[0]a[1])&&e.setExtent2(as,o[0],o[1])}}}}function Wy(t,e){var r=Va(t),n=r?t.intervalStub:t,i=e.fixMinMax||[],a=r?t.getExtent():null,o=n.getExtent(),s=zT(o,i,e.rawExtentResult);n.setExtent(s[0],s[1]),s=n.getExtent();var l=r?qB(n,e):XB(n,e),u=l.intervalPrecision,f=l.interval,c=e.userInterval;c!=null&&(l.interval=c,l.intervalPrecision=Hi(c)),i[0]||(s[0]=_e(rn(s[0]/f)*f,u)),i[1]||(s[1]=_e(ms(s[1]/f)*f,u)),c!=null&&(l.niceExtent=s.slice()),ZT(t,i,o,s,a,l)}function XB(t,e){var r=$p(e.splitNumber,5),n=Vf(t),i=e.minInterval,a=e.maxInterval,o=yf(n/r,!0);i!=null&&oa&&(o=a);var s=Hi(o),l=t.getExtent(),u=[_e(ms(l[0]/o)*o,s),_e(rn(l[1]/o)*o,s)];return{interval:o,intervalPrecision:s,niceExtent:u}}function qB(t,e){var r=$p(e.splitNumber,10),n=t.getExtent(),i=Vf(t),a=Ee(Hd(i),1),o=r/i*a;o<=.5&&(a*=10);var s=Hi(a),l=[_e(ms(n[0]/a)*a,s),_e(rn(n[1]/a)*a,s)];return{intervalPrecision:s,interval:a,niceExtent:l}}function Yy(t){var e=t.scale,r=t.model,n=r.axis,i=r.ecModel;ox(e,r,n,i,null)}function ox(t,e,r,n,i){var a=ax(t,e,n,r,i),o=Wu(t)||Yp(t);jB(t,{splitNumber:e.get("splitNumber"),fixMinMax:a.fixMM,userInterval:e.get("interval"),minInterval:o?e.get("minInterval"):null,maxInterval:o?e.get("maxInterval"):null,rawExtentResult:a}),r&&n&&$B(r,t,a,n)}function jB(t,e){ZB[t.type](t,e)}var ZB={interval:Wy,log:Wy,time:SB,ordinal:at};function KB(t){return LT(null,t)}var QB={isDimensionStacked:Ua,enableDataStack:PT,getStackedDimension:IT};function JB(t,e){var r=e;e instanceof Le||(r=new Le(e));var n=XT(r),i=qT(r,n,!1);return t[1]=0||($y.push(t),fe(t)&&(t={install:t}),t.install(n5))}var i5=1e-8;function Xy(t,e){return Math.abs(t-e)i&&(n=o,i=l)}if(n)return o5(n.exterior);var u=this.getBoundingRect();return[u.x+u.width/2,u.y+u.height/2]},e.prototype.getBoundingRect=function(r){var n=this._rect;if(n&&!r)return n;var i=[1/0,1/0],a=[-1/0,-1/0],o=this.geometries;return R(o,function(s){s.type==="polygon"?jy(s.exterior,i,a,r):R(s.points,function(l){jy(l,i,a,r)})}),isFinite(i[0])&&isFinite(i[1])&&isFinite(a[0])&&isFinite(a[1])||(i[0]=i[1]=a[0]=a[1]=0),n=new le(i[0],i[1],a[0]-i[0],a[1]-i[1]),r||(this._rect=n),n},e.prototype.contain=function(r){var n=this.getBoundingRect(),i=this.geometries;if(!n.contain(r[0],r[1]))return!1;e:for(var a=0,o=i.length;a>1^-(s&1),l=l>>1^-(l&1),s+=i,l+=a,i=s,a=l,n.push([s/r,l/r])}return n}function Qy(t,e){return t=l5(t),oe(ze(t.features,function(r){return r.geometry&&r.properties&&r.geometry.coordinates.length>0}),function(r){var n=r.properties,i=r.geometry,a=[];switch(i.type){case"Polygon":var o=i.coordinates;a.push(new Zy(o[0],o.slice(1)));break;case"MultiPolygon":R(i.coordinates,function(l){l[0]&&a.push(new Zy(l[0],l.slice(1)))});break;case"LineString":a.push(new Ky([i.coordinates]));break;case"MultiLineString":a.push(new Ky(i.coordinates))}var s=new s5(n[e||"name"],a,n.cp);return s.properties=n,s})}const u5=Object.freeze(Object.defineProperty({__proto__:null,MAX_SAFE_INTEGER:gv,asc:Fd,getPercentWithPrecision:hP,getPixelPrecision:fP,getPrecision:Kr,getPrecisionSafe:VS,isNumeric:YS,isRadianAroundZero:jo,linearMap:_u,nice:yf,numericToNumber:Zo,parseDate:ln,parsePercent:He,quantile:pP,quantity:Hd,quantityExponent:mf,reformIntervals:gP,remRadian:zd,round:uP},Symbol.toStringTag,{value:"Module"})),f5=Object.freeze(Object.defineProperty({__proto__:null,format:xs,parse:ln,roundTime:Lu},Symbol.toStringTag,{value:"Module"})),c5=Object.freeze(Object.defineProperty({__proto__:null,Arc:Ts,BezierCurve:Ef,BoundingRect:le,Circle:ws,CompoundPath:Lb,Ellipse:Cf,Group:rt,Image:un,IncrementalDisplayable:Fb,Line:an,LinearGradient:Qd,Polygon:Df,Polyline:qa,RadialGradient:kb,Rect:Ge,Ring:Af,Sector:$i,Text:Ke,clipPointsByRect:Zb,clipRectByRect:Kb,createIcon:Mf,extendPath:Wb,extendShape:Gb,getShapeClass:Yb,getTransform:qb,initProps:er,makeImage:tp,makePath:Rf,mergePath:Xb,registerShape:sr,resizePath:rp,updateProps:Lt},Symbol.toStringTag,{value:"Module"})),h5=Object.freeze(Object.defineProperty({__proto__:null,addCommas:yp,capitalFirst:R2,encodeHTML:yt,formatTime:E2,formatTpl:Sp,getTextRect:D2,getTooltipMarker:dw,normalizeCssArray:Cs,toCamelCase:_p,truncateText:eI},Symbol.toStringTag,{value:"Module"})),v5=Object.freeze(Object.defineProperty({__proto__:null,bind:Ae,clone:de,curry:Ue,defaults:Te,each:R,extend:G,filter:ze,indexOf:ge,inherits:Pd,isArray:K,isFunction:fe,isObject:ie,isString:te,map:oe,merge:be,reduce:kr},Symbol.toStringTag,{value:"Module"}));var d5=we(),Uo=we(),Sr={estimate:1,determine:2};function $u(t){return{out:{noPxChangeTryDetermine:[]},kind:t}}function p5(t,e){var r=t.getLabelModel().get("customValues");if(r){var n=t.scale;return{labels:oe(ux(r,n),function(i,a){return{formattedLabel:Gf(t)(i,a),rawLabel:n.getLabel(i),tick:i}})}}return t.type==="category"?m5(t,e):_5(t)}function g5(t,e,r){var n=t.scale,i=t.getTickModel().get("customValues");return i?{ticks:ux(i,n)}:t.type==="category"?y5(t,e):{ticks:n.getTicks(r)}}function ux(t,e){var r=e.getExtent(),n=[];return R(t,function(i){i=e.parse(i),i>=r[0]&&i<=r[1]&&n.push(i)}),Gd(n,zP,null),Fd(n),oe(n,function(i){return{value:i}})}function m5(t,e){var r=t.getLabelModel(),n=fx(t,r,e);return!r.get("show")||t.scale.isBlank()?{labels:[]}:n}function fx(t,e,r){var n=b5(t),i=qp(e),a=r.kind===Sr.estimate;if(!a){var o=hx(n,i);if(o)return o}var s,l;fe(i)?s=Xu(t,i,!1):(l=i==="auto"?w5(t,r):i,s=Xu(t,l,!1));var u={labels:s,labelCategoryInterval:l};return a?r.out.noPxChangeTryDetermine.push(function(){return Qv(n,i,u),!0}):Qv(n,i,u),u}function y5(t,e){var r=S5(t),n=qp(e),i=hx(r,n);if(i)return i;var a,o;if((!e.get("show")||t.scale.isBlank())&&(a=[]),fe(n))a=Xu(t,n,!0);else if(n==="auto"){var s=fx(t,t.getLabelModel(),$u(Sr.determine));o=s.labelCategoryInterval,a=oe(s.labels,function(l){return l.tick})}else o=n,a=Xu(t,o,!0);return Qv(r,n,{ticks:a,tickCategoryInterval:o})}function _5(t){var e=t.scale.getTicks(),r=Gf(t);return{labels:oe(e,function(n,i){return{formattedLabel:r(n,i),rawLabel:t.scale.getLabel(n),tick:n}})}}var S5=cx("axisTick"),b5=cx("axisLabel");function cx(t){return function(r){return Uo(r)[t]||(Uo(r)[t]={list:[]})}}function hx(t,e){for(var r=0;rf&&(u=Math.max(1,Math.floor(l/f)));for(var c=s[0],v=t.dataToCoord(c+1)-t.dataToCoord(c),h=Math.abs(v*Math.cos(a)),d=Math.abs(v*Math.sin(a)),p=0,m=0;c<=s[1];c+=u){var g=0,y=0,_=BS(i({value:c}),n.font,"center","top");g=_.width*1.3,y=_.height*1.3,p=Math.max(p,g,7),m=Math.max(m,y,7)}var S=p/h,b=m/d;isNaN(S)&&(S=1/0),isNaN(b)&&(b=1/0);var w=Math.max(0,Math.floor(Math.min(S,b)));if(r===Sr.estimate)return e.out.noPxChangeTryDetermine.push(Ae(x5,null,t,w,l)),w;var T=vx(t,w,l);return T!=null?T:w}function x5(t,e,r){return vx(t,e,r)==null}function vx(t,e,r){var n=d5(t.model),i=t.getExtent(),a=n.lastAutoInterval,o=n.lastTickCount;if(a!=null&&o!=null&&Math.abs(a-e)<=1&&Math.abs(o-r)<=1&&a>e&&n.axisExtent0===i[0]&&n.axisExtent1===i[1])return a;n.lastTickCount=r,n.lastAutoInterval=e,n.axisExtent0=i[0],n.axisExtent1=i[1]}function C5(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function Xu(t,e,r){var n=Gf(t),i=t.scale,a=[],o=fe(e);return HT(i,o?0:e,function(s,l){var u=i.getLabel(s);if(o){var f=!!e(s.value,u);if(s.offInterval=!f,!f&&!l)return}a.push(r?s:{formattedLabel:n(s),rawLabel:u,tick:s})}),a}var A5=.8;function Wf(t,e){e=e||{};var r={w:NaN,w2:NaN},n=t.scale,i=e.fromStat,a=e.min,o=sB(n);Fr(o)||(o=NaN);var s=t.getExtent(),l=Ze(s[1]-s[0]);return Vr(n)?D5(r,t,o,l):i&&E5(r,t,o,l,i),a!=null&&(r.w=Fr(r.w)?Ee(a,r.w):a),r}function D5(t,e,r,n){var i=e.onBand,a=r+(i?1:0);a===0&&(a=1),t.w=n/a,!i&&r&&n&&(t.w2=t.w*r/n)}function E5(t,e,r,n,i){var a=!1,o=-1/0;R(i.key?[IB(e,i.key)]:LB(e,i.sers||[]),function(s){var l=s.liPosMinGap;l!=null&&(l>0?(l>o&&(o=l),a=!1):l===MB&&(a=!0))}),Fr(r)&&r>0&&Fr(o)?(t.w=n/r*o,t.w2=o):a&&(t.w=n*A5,t.w2=t.w*r/n)}var Jy=[0,1],dx=(function(){function t(e,r,n){this.onBand=!1,this.inverse=!1,this.dim=e,this.scale=r,this._extent=n||[0,0]}return t.prototype.contain=function(e){var r=this._extent,n=Math.min(r[0],r[1]),i=Math.max(r[0],r[1]);return e>=n&&e<=i},t.prototype.containData=function(e){return this.scale.contain(this.scale.parse(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(e,r){var n=this._extent;n[0]=e,n[1]=r},t.prototype.dataToCoord=function(e,r){var n=this.scale;return e=n.normalize(n.parse(e)),_u(e,Jy,e_(this),r)},t.prototype.coordToData=function(e,r){var n=_u(e,e_(this),Jy,r);return this.scale.scale(n)},t.prototype.pointToData=function(e,r){},t.prototype.getTicksCoords=function(e){e=e||{};var r=e.tickModel||this.getTickModel(),n=g5(this,r,{breakTicks:e.breakTicks,pruneByBreak:e.pruneByBreak}),i=oe(n.ticks,function(s){return{coord:this.dataToCoord(Es(this.scale,s)),tick:s}},this),a=r.get("alignWithLabel"),o=R5(this,i,a);return oe(i,function(s){return{coord:s.coord,tickValue:s.tick.value,onBand:o}})},t.prototype.getMinorTicksCoords=function(){if(Vr(this.scale))return[];var e=this.model.getModel("minorTick"),r=e.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},t.prototype.getViewLabels=function(e){return e=e||$u(Sr.determine),p5(this,e).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){return Wf(this,{min:1}).w},t.prototype.calculateCategoryInterval=function(e){return e=e||$u(Sr.determine),T5(this,e)},t})();function e_(t){var e=t.getExtent();if(t.onBand){var r=e[1]-e[0],n=r/t.scale.count()/2;e[0]+=n,e[1]-=n}return e}function R5(t,e,r){var n=e.length;if(!t.onBand||r||!n)return!1;var i=Wf(t).w;if(!i)return!1;R(e,function(s){s.coord-=i/2});var a=t.scale.getExtent(),o=e[n-1];return o.tick.offInterval&&e.pop(),e.push({coord:o.coord+i,tick:{value:a[1]+1}}),!0}function M5(t){var e=Se.extend(t);return Se.registerClass(e),e}function P5(t){var e=Ct.extend(t);return Ct.registerClass(e),e}function I5(t){var e=nr.extend(t);return nr.registerClass(e),e}function L5(t){var e=Pt.extend(t);return Pt.registerClass(e),e}var yo=Math.PI*2,pi=Fn.CMD,O5=["top","right","bottom","left"];function k5(t,e,r,n,i){var a=r.width,o=r.height;switch(t){case"top":n.set(r.x+a/2,r.y-e),i.set(0,-1);break;case"bottom":n.set(r.x+a/2,r.y+o+e),i.set(0,1);break;case"left":n.set(r.x-e,r.y+o/2),i.set(-1,0);break;case"right":n.set(r.x+a+e,r.y+o/2),i.set(1,0);break}}function N5(t,e,r,n,i,a,o,s,l){o-=t,s-=e;var u=Math.sqrt(o*o+s*s);o/=u,s/=u;var f=o*r+t,c=s*r+e;if(Math.abs(n-i)%yo<1e-4)return l[0]=f,l[1]=c,u-r;if(a){var v=n;n=Qr(i),i=Qr(v)}else n=Qr(n),i=Qr(i);n>i&&(i+=yo);var h=Math.atan2(s,o);if(h<0&&(h+=yo),h>=n&&h<=i||h+yo>=n&&h+yo<=i)return l[0]=f,l[1]=c,u-r;var d=r*Math.cos(n)+t,p=r*Math.sin(n)+e,m=r*Math.cos(i)+t,g=r*Math.sin(i)+e,y=(d-o)*(d-o)+(p-s)*(p-s),_=(m-o)*(m-o)+(g-s)*(g-s);return y<_?(l[0]=d,l[1]=p,Math.sqrt(y)):(l[0]=m,l[1]=g,Math.sqrt(_))}function qu(t,e,r,n,i,a,o,s){var l=i-t,u=a-e,f=r-t,c=n-e,v=Math.sqrt(f*f+c*c);f/=v,c/=v;var h=l*f+u*c,d=h/v;s&&(d=Math.min(Math.max(d,0),1)),d*=v;var p=o[0]=t+d*f,m=o[1]=e+d*c;return Math.sqrt((p-i)*(p-i)+(m-a)*(m-a))}function px(t,e,r,n,i,a,o){r<0&&(t=t+r,r=-r),n<0&&(e=e+n,n=-n);var s=t+r,l=e+n,u=o[0]=Math.min(Math.max(i,t),s),f=o[1]=Math.min(Math.max(a,e),l);return Math.sqrt((u-i)*(u-i)+(f-a)*(f-a))}var vr=[];function B5(t,e,r){var n=px(e.x,e.y,e.width,e.height,t.x,t.y,vr);return r.set(vr[0],vr[1]),n}function F5(t,e,r){for(var n=0,i=0,a=0,o=0,s,l,u=1/0,f=e.data,c=t.x,v=t.y,h=0;h0){e=e/180*Math.PI,pr.fromArray(t[0]),De.fromArray(t[1]),Fe.fromArray(t[2]),he.sub(Pr,pr,De),he.sub(Rr,Fe,De);var r=Pr.len(),n=Rr.len();if(!(r<.001||n<.001)){Pr.scale(1/r),Rr.scale(1/n);var i=Pr.dot(Rr),a=Math.cos(e);if(a1&&he.copy(mt,Fe),mt.toArray(t[1])}}}}function z5(t,e,r){if(r<=180&&r>0){r=r/180*Math.PI,pr.fromArray(t[0]),De.fromArray(t[1]),Fe.fromArray(t[2]),he.sub(Pr,De,pr),he.sub(Rr,Fe,De);var n=Pr.len(),i=Rr.len();if(!(n<.001||i<.001)){Pr.scale(1/n),Rr.scale(1/i);var a=Pr.dot(e),o=Math.cos(r);if(a=l)he.copy(mt,Fe);else{mt.scaleAndAdd(Rr,s/Math.tan(Math.PI/2-f));var c=Fe.x!==De.x?(mt.x-De.x)/(Fe.x-De.x):(mt.y-De.y)/(Fe.y-De.y);if(isNaN(c))return;c<0?he.copy(mt,De):c>1&&he.copy(mt,Fe)}mt.toArray(t[1])}}}}function yh(t,e,r,n){var i=r==="normal",a=i?t:t.ensureState(r);a.ignore=e;var o=n.get("smooth");o=o===!0?.3:Math.max(+o,0)||0,a.shape=a.shape||{},a.shape.smooth=o;var s=n.getModel("lineStyle").getLineStyle();i?t.useStyle(s):a.style=s}function H5(t,e){var r=e.smooth,n=e.points;if(n)if(t.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var i=su(n[0],n[1]),a=su(n[1],n[2]);if(!i||!a){t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]);return}var o=Math.min(i,a)*r,s=Il([],n[1],n[0],o/i),l=Il([],n[1],n[2],o/a),u=Il([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var f=1;f0){S(A*x,0,a);var D=A+T;D<0&&b(-D*x,1)}else b(-T*x,1)}}function S(T,C,x){T!==0&&(f=!0);for(var A=C;A0)for(var D=0;D0;D--){var k=x[D-1]*I;S(-k,D,a)}}}function w(T){var C=T<0?-1:1;T=Math.abs(T);for(var x=Math.ceil(T/(a-1)),A=0;A0?S(x,0,A+1):S(-x,a-A-1,a),T-=x,T<=0)return}return f}function W5(t){for(var e=0;e=0&&n.attr(a.oldLayoutSelect),ge(v,"emphasis")>=0&&n.attr(a.oldLayoutEmphasis)),Lt(n,u,r,l)}else if(n.attr(u),!kf(n).valueAnimation){var c=ne(n.style.opacity,1);n.style.opacity=0,er(n,{style:{opacity:c}},r,l)}if(a.oldLayout=u,n.states.select){var h=a.oldLayoutSelect={};pl(h,u,gl),pl(h,n.states.select,gl)}if(n.states.emphasis){var d=a.oldLayoutEmphasis={};pl(d,u,gl),pl(d,n.states.emphasis,gl)}t2(n,l,f,r,r)}if(i&&!i.ignore&&!i.invisible){var a=X5(i),o=a.oldLayout,p={points:i.shape.points};o?(i.attr({shape:o}),Lt(i,{shape:p},r)):(i.setShape(p),i.style.strokePercent=0,er(i,{style:{strokePercent:1}},r)),a.oldLayout=p}},t})(),bh=we();function j5(t){t.registerUpdateLifecycle("series:beforeupdate",function(e,r,n){var i=bh(r).labelManager;i||(i=bh(r).labelManager=new q5),i.clearLabels()}),t.registerUpdateLifecycle("series:layoutlabels",function(e,r,n){var i=bh(r).labelManager;R(n.updatedSeries,function(a){i.addLabelsOfSeries(r.getViewOfSeriesModel(a))}),i.updateLayoutConfig(r),i.layout(r),i.processLabelsOverall()})}function Z5(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function K5(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var r=function n(){var i=!1;try{i=this instanceof n}catch(a){}return i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var ml={};function a_(t,e,r){var n=it.createCanvas(),i=e.getWidth(),a=e.getHeight(),o=n.style;return o&&(o.position="absolute",o.left="0",o.top="0",o.width=i+"px",o.height=a+"px",n.setAttribute("data-zr-dom-id",t)),n.width=i*r,n.height=a*r,n}function wh(t){return!t.__cursors.get(Bb)}function o_(t){var e=t.__cursors.get(Bb);return{startIdx:e?e.startIdx:0,endIdx:e?e.endIdx:0}}var xx=(function(t){q(e,t);function e(r,n,i){var a=t.call(this)||this;a.motionBlur=!1,a.lastFrameAlpha=.7,a.dpr=1,a.virtual=!1,a.config={},a.zlevel=0,a.zlevel2=Vl,a.maxRepaintRectCount=5,a.__dirty=!0,a.__firstTimePaint=!0,a.__prevIdx={startIdx:0,endIdx:0};var o;i=i||gu,typeof r=="string"?o=a_(r,n,i):ie(r)&&(o=r,r=o.id),a.id=r,a.dom=o;var s=o.style;return s&&(Id(o),o.onselectstart=function(){return!1},s.padding="0",s.margin="0",s.borderWidth="0"),a.painter=n,a.dpr=i,a}return e.prototype.afterBrush=function(){this.__prevIdx=o_(this)},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var r=this.dpr;this.domBack=a_("back-"+this.id,this.painter,r),this.ctxBack=this.domBack.getContext("2d"),r!==1&&this.ctxBack.scale(r,r)},e.prototype.createRepaintRects=function(r,n,i,a){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var o=[],s=this.maxRepaintRectCount,l=!1,u=new le(0,0,0,0);function f(S){if(!(!S.isFinite()||S.isZero()))if(o.length===0){var b=new le(0,0,0,0);b.copy(S),o.push(b)}else{for(var w=!1,T=1/0,C=0,x=0;x=s)}}for(var c=o_(this),v=c.startIdx;v=0)&&(o=!0)}),!(!o&&!a.__dirty)){var s=n._opts.useDirtyRect&&!wh(a)?a.createRepaintRects(e,r,n._width,n._height):null,l=n._i.layerStack[0],u=!0;if(a.__dirty){u=!1,a.__dirty=!1;var f=a.zlevel===l.zl&&a.zlevel2===l.zl2?n._backgroundColor:null;a.clear(!1,f,s)}yl(a,function(c){var v=n._paintPerCursor(a,c,e,s,u);i=i&&v})}},_l),ve.wxa&&ut(this._i,function(a){a&&a.ctx&&a.ctx.draw&&a.ctx.draw()}),i},t.prototype._paintPerCursor=function(e,r,n,i,a){var o=e.ctx;if(i)if(!i.length)r.drawIdx=r.endIdx;else for(var s=this.dpr,l=0;l=r.endIdx},t.prototype._paintPerCursorInRect=function(e,r,n,i,a){for(var o={inHover:!1,allClipped:!1,prevEl:null,viewWidth:this._width,viewHeight:this._height,beforeBrushParam:{contentRetained:a}},s=e.ctx,l=wh(e),u=l&&it.getTime(),f=r.drawIdx,c=r.notClearIdx,v=c>=0?Math.min(c,f):f;v15){v++;break}}}}Ra(s,o),r.drawIdx=Math.max(v,f)},t.prototype.getLayer=function(e,r){return this._ensureLayer(e,0,r)},t.prototype._ensureLayer=function(e,r,n){r=r||0;var i=this._singleCanvas;i&&!this._needsManuallyCompositing&&(e=gi,r=0);var a=Ch(this._i,e)[r];return a||(a=l_("zr_"+e+"."+r,this,e,r),this._layerConfig[e]&&be(a,this._layerConfig[e],!0),(n||i&&e!==gi)&&(a.virtual=!0),this._insertLayer(a,e,r,!1),a.initContext()),a},t.prototype.insertLayer=function(e,r){this._insertLayer(r,e,0,!1)},t.prototype._insertLayer=function(e,r,n,i){var a=this._i,o=a.layers,s=a.layerStack,l=this._domRoot,u=null;if(!(o[r]&&o[r][n])&&J5(e)){for(var f=s.length,c=0;c0&&(u=Ch(a,s[c-1].zl)[s[c-1].zl2]),s.splice(c,0,{zl:r,zl2:n}),Ch(a,r)[n]=e,!i&&!e.virtual)if(u){var v=u.dom;v.nextSibling?l.insertBefore(e.dom,v.nextSibling):l.appendChild(e.dom)}else l.firstChild?l.insertBefore(e.dom,l.firstChild):l.appendChild(e.dom);e.painter||(e.painter=this)}},t.prototype.eachLayer=function(e,r){return ut(this._i,function(n,i){e.call(r,n,i)})},t.prototype.eachBuiltinLayer=function(e,r){return ut(this._i,function(n,i){e.call(r,n,i)},Vo)},t.prototype.eachOtherLayer=function(e,r){return ut(this._i,function(n,i){e.call(r,n,i)},td)},t.prototype.getLayers=function(){var e={};return ut(this._i,function(r,n,i){e[r.id]=r}),e},t.prototype._updateLayerStatus=function(e,r){var n=this;if(n._singleCanvas)for(var i=1;i=0;_--){var S=y.get(g[_]);if(!S.used)m.__dirty=!0,y.removeKey(g[_]),g.splice(_,1);else{var b=S.endIdxNew;(wh(m)?b=0;i--){var a=r[i];if(a.zl===e){var o=n[e][a.zl2];if(o.__builtin__)continue;if(r.splice(i,1),n[e][a.zl2]=void 0,!o.virtual){var s=o.dom.parentNode;s&&s.removeChild(o.dom)}}}},t.prototype.resize=function(e,r){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts,a=this.root;e!=null&&(i.width=e),r!=null&&(i.height=r),e=al(a,0,i),r=al(a,1,i),n.style.display="",(this._width!==e||r!==this._height)&&(n.style.width=e+"px",n.style.height=r+"px",ut(this._i,function(o){o.resize(e,r)}),this.refresh({paintAll:!0})),this._width=e,this._height=r}else{if(e==null||r==null)return;this._width=e,this._height=r,this._ensureLayer(gi).resize(e,r)}return this},t.prototype.clearLayer=function(e){R(this._i.layers[e],function(r){r&&!r.__builtin__&&r.clear()})},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._i=null},t.prototype.getRenderedCanvas=function(e){if(e=e||{},this._singleCanvas&&!this._compositeManually)return this._i.layers[gi][0].dom;var r=new xx("image",this,e.pixelRatio||this.dpr);r.initContext(),r.clear(!1,e.backgroundColor||this._backgroundColor);var n=r.ctx;if(e.pixelRatio<=this.dpr){this.refresh();var i=r.dom.width,a=r.dom.height;ut(this._i,function(c){c.__builtin__?n.drawImage(c.dom,0,0,i,a):c.renderToCanvas&&(n.save(),c.renderToCanvas(n),n.restore())})}else{for(var o={inHover:!1,viewWidth:this._width,viewHeight:this._height,beforeBrushParam:{}},s=this.storage.getDisplayList(!0),l=0,u=s.length;l{const s=a();return s.axisTick={show:!0},s})(),axisPointer:{lineStyle:{color:"#B9BEC9"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{backgroundColor:"auto",color:"#fff"},handle:{color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2}},brush:{brushStyle:{color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},defaultOutOfBrushColor:"#ddd"},calendar:{splitLine:{lineStyle:{color:"#000"}},itemStyle:{borderColor:"#ccc"},dayLabel:{margin:"50%",color:"#000"},monthLabel:{margin:5,color:"#000"},yearLabel:{margin:30,color:"#ccc"}},dataZoom:{borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleStyle:{color:"#D2DBEE",opacity:.7},textStyle:{color:"#6E7079"},brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7",opacity:.7}},defaultLocationEdgeGap:7},geo:{defaultItemStyleColor:"#eee",label:{color:"#000"},itemStyle:{borderColor:"#444"},emphasis:{label:{color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},select:{label:{color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}}},grid:{left:"10%",top:60,bottom:70,borderColor:"#ccc"},legend:{top:0,bottom:null,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",itemGap:10,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",lineStyle:{inactiveColor:"#ccc"},textStyle:{color:"#333"},selectorLabel:{color:"#666",borderColor:"#666"},emphasis:{selectorLabel:{color:"#eee",backgroundColor:"#666"}},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageTextStyle:{color:"#333"}},radar:(()=>{const s=a();return s.radius="75%",s.axisName={color:"#bbb"},s.axisLine.lineStyle.color="#bbb",s})(),timeline:{padding:5,borderColor:"#ccc",lineStyle:{color:"#DAE1F5"},label:{color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)"},controlStyle:{playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}}},title:{left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",textStyle:{color:"#464646"},subtextStyle:{color:"#6E7079"}},toolbox:{borderColor:"#ccc",padding:5,itemGap:8,iconStyle:{borderColor:"#666"},emphasis:{iconStyle:{borderColor:"#3E98C5"}}},tooltip:{axisPointer:{crossStyle:{color:"#999"}},textStyle:{color:"#666"},backgroundColor:"#fff",borderWidth:1,defaultBorderColor:"#fff"},visualMap:{color:[o[2],o[1],o[0]],inactive:["rgba(0,0,0,0)"],indicatorStyle:{shadowColor:"rgba(0,0,0,0.2)"},backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",padding:5,textStyle:{color:"#333"}}})})})(ml)),ml}cF();var Dx={left:0,right:0,top:0,bottom:0},Qu=["25%","25%"],Zl="cartesian2d",hF=(function(t){q(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.mergeDefaultAndTheme=function(r,n){var i=As(r.outerBounds);t.prototype.mergeDefaultAndTheme.apply(this,arguments),i&&r.outerBounds&&zn(r.outerBounds,i)},e.prototype.mergeOption=function(r,n){t.prototype.mergeOption.apply(this,arguments),this.option.outerBounds&&r.outerBounds&&zn(this.option.outerBounds,r.outerBounds)},e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,z:0,left:"15%",top:65,right:"10%",bottom:80,containLabel:!1,outerBoundsMode:"auto",outerBounds:Dx,outerBoundsContain:"all",outerBoundsClampWidth:Qu[0],outerBoundsClampHeight:Qu[1],backgroundColor:ae.color.transparent,borderWidth:1,borderColor:ae.color.neutral30},e})(Se),rd=(function(t){q(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Zt).models[0]},e.type="cartesian2dAxis",e})(Se);ar(rd,QT);var Ex={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:"auto",onZeroAxisIndex:null,lineStyle:{color:ae.color.axisLine,width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15],breakLine:!0},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,color:ae.color.axisLabel,textMargin:[0,3]},splitLine:{show:!0,showMinLine:!0,showMaxLine:!0,lineStyle:{color:ae.color.axisSplitLine,width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:[ae.color.backgroundTint,ae.color.backgroundTransparent]}},breakArea:{show:!0,itemStyle:{color:ae.color.neutral00,borderColor:ae.color.border,borderWidth:1,borderType:[3,3],opacity:.6},zigzagAmplitude:4,zigzagMinSpan:4,zigzagMaxSpan:20,zigzagZ:100,expandOnClick:!0},breakLabelLayout:{moveOverlap:"auto"}},vF=be({boundaryGap:!0,deduplication:null,jitter:0,jitterOverlap:!0,jitterMargin:2,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto",show:"auto"},axisLabel:{interval:"auto"}},Ex),Zp=be({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:ae.color.axisMinorSplitLine,width:1}}},Ex),dF=be({splitNumber:6,axisLabel:{rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},Zp),pF=Te({logBase:10},Zp);const gF={category:vF,value:Zp,time:dF,log:pF};var mF=null;function Yf(){return mF}function f_(t,e,r,n){R(YT,function(i,a){var o=be(be({},gF[a],!0),n,!0),s=(function(l){q(u,l);function u(){var f=l!==null&&l.apply(this,arguments)||this;return f.type=e+"Axis."+a,f}return u.prototype.mergeDefaultAndTheme=function(f,c){var v=ts(this),h=v?As(f):{},d=c.getTheme();be(f,d.get(a+"Axis")),be(f,this.getDefaultOption()),f.type=c_(f),v&&zn(f,h,v)},u.prototype.optionUpdated=function(){var f=this.option;f.type==="category"&&(this.__ordinalMeta=Zv.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.prototype.updateAxisBreaks=function(f){var c=Yf();return c?c.updateModelAxisBreak(this,f):{breaks:[]}},u.type=e+"Axis."+a,u.defaultOption=o,u})(r);t.registerComponentModel(s)}),t.registerSubTypeDefaulter(e+"Axis",c_)}function c_(t){return t.type||(t.data?"category":"value")}var yF=(function(){function t(e){this.type="cartesian",this._dimList=[],this._axes={},this.name=e||""}return t.prototype.getAxis=function(e){return this._axes[e]},t.prototype.getAxes=function(){return oe(this._dimList,function(e){return this._axes[e]},this)},t.prototype.getAxesByScale=function(e){return e=e.toLowerCase(),ze(this.getAxes(),function(r){return r.scale.type===e})},t.prototype.addAxis=function(e){var r=e.dim;this._axes[r]=e,this._dimList.push(r)},t})(),Kl=["x","y"];function h_(t){return(t.type==="interval"||t.type==="time")&&!Iu(t)}var _F=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.type=Zl,r.dimensions=Kl,r}return e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!h_(r)||!h_(n))){var i=Gu(r,null),a=Gu(n,null),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,v=o[0]-i[0]*f,h=o[1]-a[0]*c,d=this._transform=[f,0,0,c,v,h];this._invTransform=Hn([],d)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.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]))},e.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},e.prototype.containZone=function(r,n){var i=this.dataToPoint(r),a=this.dataToPoint(n),o=this.getArea(),s=new le(i[0],i[1],a[0]-i[0],a[1]-i[1]);return o.intersect(s)},e.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 bt(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},e.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},e.prototype.pointToData=function(r,n,i){if(i=i||[],this._invTransform)return bt(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},e.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},e.prototype.getArea=function(r){r=r||0;var n=this.getAxis("x").getGlobalExtent(),i=this.getAxis("y").getGlobalExtent(),a=Math.min(n[0],n[1])-r,o=Math.min(i[0],i[1])-r,s=Math.max(n[0],n[1])-a+r,l=Math.max(i[0],i[1])-o+r;return new le(a,o,s,l)},e})(yF),SF=(function(t){q(e,t);function e(r,n,i,a,o){var s=t.call(this,r,n,i)||this;return s.index=0,s.type=a||"value",s.position=o||"bottom",s}return e.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},e.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},e.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},e.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},e})(dx),bF="expandAxisBreak",Rn=Math.PI,wF=[[1,2,1,2],[5,3,5,3],[8,3,8,3]],TF=[[0,1,0,1],[0,3,0,3],[0,3,0,3]],Ui=we(),Rx=we(),Mx=(function(){function t(e){this.recordMap={},this.resolveAxisNameOverlap=e}return t.prototype.ensureRecord=function(e){var r=e.axis.dim,n=e.componentIndex,i=this.recordMap,a=i[r]||(i[r]=[]);return a[n]||(a[n]={ready:{}})},t})();function xF(t,e,r,n){var i=r.axis,a=e.ensureRecord(r),o=[],s,l=Kp(t.axisName)&&Ga(t.nameLocation);R(n,function(d){var p=Hr(d);if(!(!p||p.label.ignore)){o.push(p);var m=a.transGroup;l&&(m.transform?Hn(_o,m.transform):Gi(_o),p.transform&&Di(_o,_o,p.transform),le.copy(Sl,p.localRect),Sl.applyTransform(_o),s?s.union(Sl):le.copy(s=new le(0,0,0,0),Sl))}});var u=Math.abs(a.dirVec.x)>.1?"x":"y",f=a.transGroup[u];if(o.sort(function(d,p){return Math.abs(d.label[u]-f)-Math.abs(p.label[u]-f)}),l&&s){var c=i.getExtent(),v=Math.min(c[0],c[1]),h=Math.max(c[0],c[1])-v;s.union(new le(v,0,h,1))}a.stOccupiedRect=s,a.labelInfoList=o}var _o=Jt(),Sl=new le(0,0,0,0),Px=function(t,e,r,n,i,a){if(Ga(t.nameLocation)){var o=a.stOccupiedRect;o&&Ix(V5({},o,a.transGroup.transform),n,i)}else Lx(a.labelInfoList,a.dirVec,n,i)};function Ix(t,e,r){var n=new he;jp(t,e,n,{direction:Math.atan2(r.y,r.x),bidirectional:!1,touchThreshold:.05})&&G5(e,n)}function Lx(t,e,r,n){for(var i=he.dot(n,e)>=0,a=0,o=t.length;a0?"top":"bottom",a="center"):jo(i-Rn)?(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}},t.makeAxisEventDataBase=function(e){var r={componentType:e.mainType,componentIndex:e.componentIndex};return r[e.mainType+"Index"]=e.componentIndex,r},t.isLabelSilent=function(e){var r=e.get("tooltip");return e.get("silent")||!(e.get("triggerEvent")||r&&r.show)},t})(),CF=["axisLine","axisTickLabelEstimate","axisTickLabelDetermine","axisName"],AF={axisLine:function(t,e,r,n,i,a,o){var s=n.get(["axisLine","show"]);if(s==="auto"&&(s=!0,t.raw.axisLineAutoShow!=null&&(s=!!t.raw.axisLineAutoShow)),!!s){var l=n.axis.getExtent(),u=a.transform,f=[l[0],0],c=[l[1],0],v=f[0]>c[0];u&&(bt(f,f,u),bt(c,c,u));var h=G({lineCap:"round"},n.getModel(["axisLine","lineStyle"]).getLineStyle()),d={strokeContainThreshold:t.raw.strokeContainThreshold||5,silent:!0,z2:1,style:h};if(n.get(["axisLine","breakLine"])&&Iu(n.axis.scale))Yf().buildAxisBreakLine(n,i,a,d);else{var p=new an(G({shape:{x1:f[0],y1:f[1],x2:c[0],y2:c[1]}},d));Jo(p.shape,p.style.lineWidth),p.anid="line",i.add(p)}var m=n.get(["axisLine","symbol"]);if(m!=null){var g=n.get(["axisLine","symbolSize"]);te(m)&&(m=[m,m]),(te(g)||Re(g))&&(g=[g,g]);var y=tT(n.get(["axisLine","symbolOffset"])||0,g),_=g[0],S=g[1];R([{rotate:t.rotation+Math.PI/2,offset:y[0],r:0},{rotate:t.rotation-Math.PI/2,offset:y[1],r:Math.sqrt((f[0]-c[0])*(f[0]-c[0])+(f[1]-c[1])*(f[1]-c[1]))}],function(b,w){if(m[w]!=="none"&&m[w]!=null){var T=zi(m[w],-_/2,-S/2,_,S,h.stroke,!0),C=b.r+b.offset,x=v?c:f;T.attr({rotation:b.rotate,x:x[0]+C*Math.cos(t.rotation),y:x[1]-C*Math.sin(t.rotation),silent:!0,z2:11}),i.add(T)}})}}},axisTickLabelEstimate:function(t,e,r,n,i,a,o,s){var l=d_(e,i,s);l&&v_(t,e,r,n,i,a,o,Sr.estimate)},axisTickLabelDetermine:function(t,e,r,n,i,a,o,s){var l=d_(e,i,s);l&&v_(t,e,r,n,i,a,o,Sr.determine);var u=MF(t,i,a,n);RF(t,e.labelLayoutList,u),PF(t,i,a,n,t.tickDirection)},axisName:function(t,e,r,n,i,a,o,s){var l=r.ensureRecord(n);e.nameEl&&(i.remove(e.nameEl),e.nameEl=l.nameLayout=l.nameLocation=null);var u=t.axisName;if(Kp(u)){var f=t.nameLocation,c=t.nameDirection,v=n.getModel("nameTextStyle"),h=n.get("nameGap")||0,d=n.axis.getExtent(),p=n.axis.inverse?-1:1,m=new he(0,0),g=new he(0,0);f==="start"?(m.x=d[0]-p*h,g.x=-p):f==="end"?(m.x=d[1]+p*h,g.x=p):(m.x=(d[0]+d[1])/2,m.y=t.labelOffset+c*h,g.y=c);var y=Jt();g.transform(hf(y,y,t.rotation));var _=n.get("nameRotate");_!=null&&(_=_*Rn/180);var S,b;Ga(f)?S=On.innerTextLayout(t.rotation,_!=null?_:t.rotation,c):(S=DF(t.rotation,f,_||0,d),b=t.raw.axisNameAvailableWidth,b!=null&&(b=Math.abs(b/Math.sin(S.rotation)),!isFinite(b)&&(b=null)));var w=v.getFont(),T=n.get("nameTruncate",!0)||{},C=T.ellipsis,x=Wo(t.raw.nameTruncateMaxWidth,T.maxWidth,b),A=s.nameMarginLevel||0,D=new Ke({x:m.x,y:m.y,rotation:S.rotation,silent:On.isLabelSilent(n),style:on(v,{text:u,font:w,overflow:"truncate",width:x,ellipsis:C,fill:v.getTextColor()||n.get(["axisLine","lineStyle","color"]),align:v.get("align")||S.textAlign,verticalAlign:v.get("verticalAlign")||S.textVerticalAlign}),z2:1});if(Pf({el:D,componentModel:n,itemName:u}),D.__fullText=u,D.anid="name",n.get("triggerEvent")){var P=On.makeAxisEventDataBase(n);P.targetType="axisName",P.name=u,me(D).eventData=P}a.add(D),D.updateTransform(),e.nameEl=D;var M=l.nameLayout=Hr({label:D,priority:D.z2,defaultAttr:{ignore:D.ignore},marginDefault:Ga(f)?wF[A]:TF[A]});if(l.nameLocation=f,i.add(D),D.decomposeTransform(),t.shouldNameMoveOverlap&&M){var I=r.ensureRecord(n);r.resolveAxisNameOverlap(t,r,n,M,g,I)}}}};function v_(t,e,r,n,i,a,o,s){kx(e)||IF(t,e,i,s,n,o);var l=e.labelLayoutList;LF(t,n,l,a),NF(n,t.rotation,l);var u=t.optionHideOverlap;EF(n,l,u),u&&Tx(ze(l,function(f){return f&&!f.label.ignore})),xF(t,r,n,l)}function DF(t,e,r,n){var i=zd(r-t),a,o,s=n[0]>n[1],l=e==="start"&&!s||e!=="start"&&s;return jo(i-Rn/2)?(o=l?"bottom":"top",a="center"):jo(i-Rn*1.5)?(o=l?"top":"bottom",a="center"):(o="middle",iRn/2?a=l?"left":"right":a=l?"right":"left"),{rotation:i,textAlign:a,textVerticalAlign:o}}function EF(t,e,r){var n=t.axis,i=t.get(["axisLabel","customValues"]);if(DB(n))return;function a(u,f,c){var v=Hr(e[f]),h=Hr(e[c]),d=n.scale;if(!(!v||!h)){if(u==null){if(!r&&i)return;var p=Ui(v.label).labelInfo.tick;if(Yp(d)&&p.notNice||Vr(d)&&p.offInterval){ma(v.label);return}}if(u===!1||v.suggestIgnore){ma(v.label);return}if(h.suggestIgnore){ma(h.label);return}var m=.1;if(!r){var g=[0,0,0,0];v=Jv({marginForce:g},v),h=Jv({marginForce:g},h)}jp(v,h,null,{touchThreshold:m})&&ma(u?h.label:v.label)}}var o=t.get(["axisLabel","showMinLabel"]),s=t.get(["axisLabel","showMaxLabel"]),l=e.length;a(o,0,1),a(s,l-1,l-2)}function RF(t,e,r){t.showMinorTicks||R(e,function(n){if(n&&n.label.ignore)for(var i=0;i=T[1])return!0})):S[1]?(x=T[1],I(function(){if(U(),M=_e(P-A*d,D),k(),C<=T[0])return!0})):I(function(){M=_e(ms(T[0]/A)*A,D),P=_e(rn(T[1]/A)*A,D);var J=Br((P-M)/A);if(J<=d){var j=d-J,z=void 0,re=i.incl0||a;if(re&&T[0]===0)z=[0,j];else if(re&&T[1]===0)z=[j,0];else{var se=rn(j/2);z=j%2===0?[se,se]:C+x=T[1])return!0}})}ZT(r,S,w,[C,x],b,{interval:A,intervalCount:d,intervalPrecision:D,niceExtent:[M,P]})}var p_=[[3,1],[0,2]],UF=(function(){function t(e,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=Kl,this._initCartesian(e,r,n),this.model=e}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(e,r){var n=this._axesMap;R(this._axesList,function(o){VB(o,FB);var s=o.scale;Vr(s)&&s.setSortInfo(o.model.get("categorySortInfo"))});function i(o){for(var s=Pe(o),l=[],u=s.length-1;u>=0;u--){var f=o[+s[u]];f.__alignTo?l.push(f):Yy(f)}R(l,function(c){GF(c,c.__alignTo)?Yy(c):HF(c,c.__alignTo.scale)})}i(n.x),i(n.y);var a={};R(n.x,function(o){g_(n,"y",o,a)}),R(n.y,function(o){g_(n,"x",o,a)}),this.resize(this.model,r)},t.prototype.resize=function(e,r,n){var i=Ff(e,r),a=this._rect=sn(e.getBoxLayoutParams(),i.refContainer),o=this._axesMap,s=this._coordsList,l=e.get("containLabel");if(Nx(o,a),!n){var u=YF(a,s,o,l,r),f=void 0;if(l)f=S_(a.clone(),"axisLabel",null,a,o,u,i);else{var c=$F(e,a,i),v=c.outerBoundsRect,h=c.parsedOuterBoundsContain,d=c.outerBoundsClamp;v&&(f=S_(v,h,d,a,o,u,i))}Bx(a,o,Sr.determine,null,f,i),R(this._coordsList,function(p){p.calcAffineTransform()})}},t.prototype.getAxis=function(e,r){var n=this._axesMap[e];if(n!=null)return n[r||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(e,r){if(e!=null&&r!=null){var n="x"+e+"y"+r;return this._coordsMap[n]}ie(e)&&(r=e.yAxisIndex,e=e.xAxisIndex);for(var i=0,a=this._coordsList;i=0;i--){var a=t[+e[i]];FT(a.scale)&&jT(a.model,a.type,!0)==null&&(a.model.get("alignTicks")&&a.model.get("interval")==null?n.push(a):r=a)}r||(r=n.pop()),r&&R(n,function(o){o.__alignTo=r})}function GF(t,e){return Iu(t.scale)||Iu(e.scale)||e.scale.getTicks().length<2}function WF(t,e){var r=t.getExtent(),n=r[0]+r[1];t.toGlobalCoord=t.dim==="x"?function(i){return i+e}:function(i){return n-i+e},t.toLocalCoord=t.dim==="x"?function(i){return i-e}:function(i){return n-i+e}}function Nx(t,e){R(t.x,function(r){return __(r,e.x,e.width)}),R(t.y,function(r){return __(r,e.y,e.height)})}function __(t,e,r){var n=[0,r],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),WF(t,e)}function S_(t,e,r,n,i,a,o){Bx(n,i,Sr.estimate,e,!1,o);var s=[0,0,0,0];u(0),u(1),f(n,0,NaN),f(n,1,NaN);var l=iS(s,function(v){return v>0})==null;return Ru(n,s,!0,!0,r),Nx(i,n),l;function u(v){R(i[xn[v]],function(h){if(ss(h.model)){var d=a.ensureRecord(h.model),p=d.labelInfoList;if(p)for(var m=0;m0&&!ka(h)&&h>1e-4&&(v/=h),v}}function YF(t,e,r,n,i){var a=new Mx(XF);return R(r,function(o){return R(o,function(s){if(ss(s.model)){var l=!n;s.axisBuilder=FF(t,e,s.model,i,a,l)}})}),a}function Bx(t,e,r,n,i,a){var o=r===Sr.determine;R(e,function(u){return R(u,function(f){ss(f.model)&&(zF(f.axisBuilder,t,f.model),f.axisBuilder.build(o?{axisTickLabelDetermine:!0}:{axisTickLabelEstimate:!0},{noPxChange:i}))})});var s={x:0,y:0};l(0),l(1);function l(u){s[xn[1-u]]=t[za[u]]<=a.refContainer[za[u]]*.5?0:1-u===1?2:1}R(e,function(u,f){return R(u,function(c){ss(c.model)&&((n==="all"||o)&&c.axisBuilder.build({axisName:!0},{nameMarginLevel:s[f]}),o&&c.axisBuilder.build({axisLine:!0}))})})}function $F(t,e,r){var n,i=t.get("outerBoundsMode",!0);i==="same"?n=e.clone():(i==null||i==="auto")&&(n=sn(t.get("outerBounds",!0)||Dx,r.refContainer));var a=t.get("outerBoundsContain",!0),o;a==null||a==="auto"||ge(["all","axisLabel"],a)<0?o="all":o=a;var s=[pv(ne(t.get("outerBoundsClampWidth",!0),Qu[0]),e.width),pv(ne(t.get("outerBoundsClampHeight",!0),Qu[1]),e.height)];return{outerBoundsRect:n,parsedOuterBoundsContain:o,outerBoundsClamp:s}}var XF=function(t,e,r,n,i,a){var o=r.axis.dim==="x"?"y":"x";Px(t,e,r,n,i,a),Ga(t.nameLocation)||R(e.recordMap[o],function(s){s&&s.labelInfoList&&s.dirVec&&Lx(s.labelInfoList,s.dirVec,n,i)})};function qF(t,e){var r={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return jF(r,t,e),r.seriesInvolved&&KF(r,t),r}function jF(t,e,r){var n=e.getComponent("tooltip"),i=e.getComponent("axisPointer"),a=i.get("link",!0)||[],o=[];R(r.getCoordinateSystems(),function(s){if(!s.axisPointerEnabled)return;var l=ls(s.model),u=t.coordSysAxesInfo[l]={};t.coordSysMap[l]=s;var f=s.model,c=f.getModel("tooltip",n);if(R(s.getAxes(),Ue(p,!1,null)),s.getTooltipAxes&&n&&c.get("show")){var v=c.get("trigger")==="axis",h=c.get(["axisPointer","type"])==="cross",d=s.getTooltipAxes(c.get(["axisPointer","axis"]));(v||h)&&R(d.baseAxes,Ue(p,h?"cross":!0,v)),h&&R(d.otherAxes,Ue(p,"cross",!1))}function p(m,g,y){var _=y.model.getModel("axisPointer",i),S=_.get("show");if(!(!S||S==="auto"&&!m&&!id(_))){g==null&&(g=_.get("triggerTooltip")),_=m?ZF(y,c,i,e,m,g):_;var b=_.get("snap"),w=_.get("triggerEmphasis"),T=ls(y.model),C=g||b||y.type==="category",x=t.axesInfo[T]={key:T,axis:y,coordSys:s,axisPointerModel:_,triggerTooltip:g,triggerEmphasis:w,involveSeries:C,snap:b,useHandle:id(_),seriesModels:[],linkGroup:null};u[T]=x,t.seriesInvolved=t.seriesInvolved||C;var A=QF(a,y);if(A!=null){var D=o[A]||(o[A]={axesInfo:{}});D.axesInfo[T]=x,D.mapper=a[A].mapper,x.linkGroup=D}}}})}function ZF(t,e,r,n,i,a){var o=e.getModel("axisPointer"),s=["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],l={};R(s,function(v){l[v]=de(o.get(v))}),l.snap=t.type!=="category"&&!!a,o.get("type")==="cross"&&(l.type="line");var u=l.label||(l.label={});if(u.show==null&&(u.show=!1),i==="cross"){var f=o.get(["label","show"]);if(u.show=f!=null?f:!0,!a){var c=l.lineStyle=o.get("crossStyle");c&&Te(u,c.textStyle)}}return t.model.getModel("axisPointer",new Le(l,r,n))}function KF(t,e){e.eachSeries(function(r){var n=r.coordinateSystem,i=r.get(["tooltip","trigger"],!0),a=r.get(["tooltip","show"],!0);!n||!n.model||i==="none"||i===!1||i==="item"||a===!1||r.get(["axisPointer","show"],!0)===!1||R(t.coordSysAxesInfo[ls(n.model)],function(o){var s=o.axis;n.getAxis(s.dim)===s&&(o.seriesModels.push(r),o.seriesDataCount==null&&(o.seriesDataCount=0),o.seriesDataCount+=r.getData().count())})})}function QF(t,e){for(var r=e.model,n=e.dim,i=0;i=0||t===e}function JF(t){var e=Qp(t);if(e){var r=e.axisPointerModel,n=e.axis.scale,i=r.option,a=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=id(r);a==null&&(i.status=s?"show":"hide");var l=n.getExtent();(o==null||o>l[1])&&(o=l[1]),os)return!0;if(o){var l=Qp(e).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},t.prototype.makeElOption=function(e,r,n,i,a){},t.prototype.createPointerEl=function(e,r,n,i){var a=r.pointer;if(a){var o=mi(e).pointerEl=new KL[a.type](T_(r.pointer));e.add(o)}},t.prototype.createLabelEl=function(e,r,n,i){if(r.label){var a=mi(e).labelEl=new Ke(T_(r.label));e.add(a),C_(a,i)}},t.prototype.updatePointerEl=function(e,r,n){var i=mi(e).pointerEl;i&&r.pointer&&(i.setStyle(r.pointer.style),n(i,{shape:r.pointer.shape}))},t.prototype.updateLabelEl=function(e,r,n,i){var a=mi(e).labelEl;a&&(a.setStyle(r.label.style),n(a,{x:r.label.x,y:r.label.y}),C_(a,i))},t.prototype._renderHandle=function(e){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=Mf(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){gS(u.event)},onmousedown:Dh(this._onHandleDragMove,this,0,0),drift:Dh(this._onHandleDragMove,this),ondragend:Dh(this._onHandleDragEnd,this)}),n.add(i)),A_(i,r,!1),i.setStyle(a.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=a.get("size");K(l)||(l=[l,l]),i.scaleX=l[0]/2,i.scaleY=l[1]/2,Yw(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(e,s)}},t.prototype._moveHandleToValue=function(e,r){x_(this._axisPointerModel,!r&&this._moveAnimation,this._handle,Eh(this.getHandleTransform(e,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(e,r){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(Eh(n),[e,r],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(Eh(i)),mi(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){var e=this._handle;if(e){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}]})}},t.prototype._onHandleDragEnd=function(){this._dragging=!1;var e=this._handle;if(e){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(e){this._lastValue=null,this._lastStatus=null;var r=e.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),zv(this,"_doDispatchAxisPointer")},t.prototype.doClear=function(){},t.prototype.buildLabel=function(e,r,n){return n=n||0,{x:e[n],y:e[1-n],width:r[n],height:r[1-n]}},t})();function x_(t,e,r,n){Ux(mi(r).lastProp,n)||(mi(r).lastProp=n,e?Lt(r,n,t):(r.stopAnimation(),r.attr(n)))}function Ux(t,e){if(ie(t)&&ie(e)){var r=!0;return R(e,function(n,i){r=r&&Ux(t[i],n)}),!!r}else return t===e}function C_(t,e){t[e.get(["label","show"])?"show":"hide"]()}function Eh(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function A_(t,e,r){var n=e.get("z"),i=e.get("zlevel");t&&t.traverse(function(a){a.type!=="group"&&(n!=null&&(a.z=n),i!=null&&(a.zlevel=i),a.silent=r)})}function uz(t){var e=t.get("type"),r=t.getModel(e+"Style"),n;return e==="line"?(n=r.getLineStyle(),n.fill=null):e==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function fz(t,e,r,n,i){var a=r.get("value"),o=Vx(a,e.axis,e.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=Cs(s.get("padding")||0),u=s.getFont(),f=BS(o,u),c=i.position,v=f.width+l[1]+l[3],h=f.height+l[0]+l[2],d=i.align;d==="right"&&(c[0]-=v),d==="center"&&(c[0]-=v/2);var p=i.verticalAlign;p==="bottom"&&(c[1]-=h),p==="middle"&&(c[1]-=h/2),cz(c,v,h,n);var m=s.get("backgroundColor");(!m||m==="auto")&&(m=e.get(["axisLine","lineStyle","color"])),t.label={x:c[0],y:c[1],style:on(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:m}),z2:10}}function cz(t,e,r,n){var i=n.getWidth(),a=n.getHeight();t[0]=Math.min(t[0]+e,i)-e,t[1]=Math.min(t[1]+r,a)-r,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function Vx(t,e,r,n,i){t=e.scale.parse(t);var a=e.scale.getLabel({value:t},{precision:i.precision}),o=i.formatter;if(o){var s={value:Yu(e,{value:t}),axisDimension:e.dim,axisIndex:e.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):fe(o)&&(a=o(s))}return a}function Gx(t,e,r){var n=Jt();return hf(n,n,r.rotation),uu(n,n,r.position),np([t.dataToCoord(e),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function hz(t,e,r,n,i,a){var o=On.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=i.get(["label","margin"]),fz(e,n,i,a,{position:Gx(n.axis,t,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function vz(t,e,r){return r=r||0,{x1:t[r],y1:t[1-r],x2:e[r],y2:e[1-r]}}function dz(t,e,r){return r=r||0,{x:t[r],y:t[1-r],width:e[r],height:e[1-r]}}function pz(t,e,r){return Wf(t,{fromStat:{sers:oe(e,function(n){return r.getSeriesByIndex(n.seriesIndex)})},min:1}).w}function gz(t,e,r){return[Ee(It(e[0],e[1]),t-r/2),It(t+r/2,Ee(e[0],e[1]))]}var mz=(function(t){q(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.makeElOption=function(r,n,i,a,o){var s=i.axis,l=s.grid,u=a.get("type"),f=s.getGlobalExtent(),c=D_(l,s).getOtherAxis(s).getGlobalExtent(),v=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var h=uz(a),d=yz[u](s,v,f,c,a.get("seriesDataIndices"),a.ecModel);d.style=h,r.graphicKey=d.type,r.pointer=d}var p=Ju(l.getRect(),i);hz(n,r,p,i,a,o)},e.prototype.getHandleTransform=function(r,n,i){var a=Ju(n.axis.grid.getRect(),n,{labelInside:!1});a.labelMargin=i.get(["handle","margin"]);var o=Gx(n.axis,r,a);return{x:o[0],y:o[1],rotation:a.rotation+(a.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(r,n,i,a){var o=i.axis,s=o.grid,l=o.getGlobalExtent(!0),u=D_(s,o).getOtherAxis(o).getGlobalExtent(),f=o.dim==="x"?0:1,c=[r.x,r.y];c[f]+=n[f],c[f]=It(l[1],c[f]),c[f]=Ee(l[0],c[f]);var v=(u[1]+u[0])/2,h=[v,v];h[f]=c[f];var d=[{verticalAlign:"middle"},{align:"center"}];return{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:h,tooltipOption:d[f]}},e})(lz);function D_(t,e){var r={};return r[e.dim+"AxisIndex"]=e.index,t.getCartesian(r)}var yz={line:function(t,e,r,n){var i=vz([e,n[0]],[e,n[1]],E_(t));return{type:"Line",subPixelOptimize:!0,shape:i}},shadow:function(t,e,r,n,i,a){var o=pz(t,i,a),s=n[1]-n[0],l=gz(e,r,o),u=l[0],f=l[1];return{type:"Rect",shape:dz([u,n[0]],[f-u,s],E_(t))}}};function E_(t){return t.dim==="x"?0:1}var _z=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.type=e.type,r}return e.type="axisPointer",e.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:ae.color.border,width:1,type:"dashed"},shadowStyle:{color:ae.color.shadowTint},label:{show:!0,formatter:null,precision:"auto",margin:3,color:ae.color.neutral00,padding:[5,7,5,7],backgroundColor:ae.color.accent60,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:ae.color.accent40,throttle:40}},e})(Se),Jr=we(),Sz=R;function Wx(t,e,r){if(!ve.node){var n=e.getZr();Jr(n).records||(Jr(n).records={}),bz(n,e);var i=Jr(n).records[t]||(Jr(n).records[t]={});i.handler=r}}function bz(t,e){if(Jr(t).initialized)return;Jr(t).initialized=!0,r("click",Ue(Rh,"click")),r("mousemove",Ue(Rh,"mousemove")),r("mousewheel",Ue(Rh,"mousewheel")),r("globalout",Tz);function r(n,i){t.on(n,function(a){var o=xz(e);Sz(Jr(t).records,function(s){s&&i(s,a,o.dispatchAction)}),wz(o.pendings,e)})}}function wz(t,e){var r=t.showTip.length,n=t.hideTip.length,i;r?i=t.showTip[r-1]:n&&(i=t.hideTip[n-1]),i&&(i.dispatchAction=null,e.dispatchAction(i))}function Tz(t,e,r){t.handler("leave",null,r)}function Rh(t,e,r,n){e.handler(t,r,n)}function xz(t){var e={showTip:[],hideTip:[]},r=function(n){var i=e[n.type];i?i.push(n):(n.dispatchAction=r,t.dispatchAction(n))};return{dispatchAction:r,pendings:e}}function od(t,e){if(!ve.node){var r=e.getZr(),n=(Jr(r).records||{})[t];n&&(Jr(r).records[t]=null)}}var Cz=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.type=e.type,r}return e.prototype.render=function(r,n,i){var a=n.getComponent("tooltip"),o=r.get("triggerOn")||a&&a.get("triggerOn")||"mousemove|click|mousewheel";Wx("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})})},e.prototype.remove=function(r,n){od("axisPointer",n)},e.prototype.dispose=function(r,n){od("axisPointer",n)},e.type="axisPointer",e})(Ct);function Yx(t,e){var r=[],n=t.seriesIndex,i;if(n==null||!(i=e.getSeriesByIndex(n)))return{point:[]};var a=i.getData(),o=Bi(a,t);if(o==null||o<0||K(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)r=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),f=l.getOtherAxis(u),c=f.dim,v=u.dim,h=c==="x"||c==="radius"?1:0,d=a.mapDimension(v),p=[];p[h]=a.get(d,o),p[1-h]=a.get(a.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(p)||[]}else r=l.dataToPoint(a.getValues(oe(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 R_=we();function Az(t,e,r){var n=t.currTrigger,i=[t.x,t.y],a=t,o=t.dispatchAction||Ae(r.dispatchAction,r),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){Ql(i)&&(i=Yx({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=Ql(i),u=a.axesInfo,f=s.axesInfo,c=n==="leave"||Ql(i),v={},h={},d={list:[],map:{}},p={showPointer:Ue(Ez,h),showTooltip:Ue(Rz,d)};R(s.coordSysMap,function(g,y){var _=l||g.containPoint(i);R(s.coordSysAxesInfo[y],function(S,b){var w=S.axis,T=Lz(u,S);if(!c&&_&&(!u||T)){var C=T&&T.value;C==null&&!l&&(C=w.pointToData(i)),C!=null&&M_(S,C,p,!1,v)}})});var m={};return R(f,function(g,y){var _=g.linkGroup;_&&!h[y]&&R(_.axesInfo,function(S,b){var w=h[b];if(S!==g&&w){var T=w.value;_.mapper&&(T=g.axis.scale.parse(_.mapper(T,P_(S),P_(g)))),m[g.key]=T}})}),R(m,function(g,y){M_(f[y],g,p,!0,v)}),Mz(h,f,v),Pz(d,i,t,o),Iz(f,o,r),v}}function M_(t,e,r,n,i){var a=t.axis;if(!(a.scale.isBlank()||!a.containData(e))){if(!t.involveSeries){r.showPointer(t,e);return}var o=Dz(e,t),s=o.payloadBatch,l=o.snapToValue;s[0]&&i.seriesIndex==null&&G(i,s[0]),!n&&t.snap&&a.containData(l)&&l!=null&&(e=l),r.showPointer(t,e,s),r.showTooltip(t,o,l)}}function Dz(t,e){var r=e.axis,n=r.dim,i=t,a=[],o=Number.MAX_VALUE,s=-1;return R(e.seriesModels,function(l,u){var f=l.getData().mapDimensionsAll(n),c,v;if(l.getAxisTooltipData){var h=l.getAxisTooltipData(f,t,r);v=h.dataIndices,c=h.nestestValue}else{if(v=l.indicesOfNearest(n,f[0],t,r.type==="category"?.5:null),!v.length)return;c=l.getData().get(f[0],v[0])}if(Fr(c)){var d=t-c,p=Math.abs(d);p<=o&&((p=0&&s<0)&&(o=p,s=d,i=c,a.length=0),R(v,function(m){a.push({seriesIndex:l.seriesIndex,dataIndexInside:m,dataIndex:l.getData().getRawIndex(m)})}))}}),{payloadBatch:a,snapToValue:i}}function Ez(t,e,r,n){t[e.key]={value:r,payloadBatch:n}}function Rz(t,e,r,n){var i=r.payloadBatch,a=e.axis,o=a.model,s=e.axisPointerModel;if(!(!e.triggerTooltip||!i.length)){var l=e.coordSys.model,u=ls(l),f=t.map[u];f||(f=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.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 Mz(t,e,r){var n=r.axesInfo=[];R(e,function(i,a){var o=i.axisPointerModel.option,s=t[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 Pz(t,e,r,n){if(Ql(e)||!t.list.length){n({type:"hideTip"});return}var i=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:i.dataIndexInside,dataIndex:i.dataIndex,seriesIndex:i.seriesIndex,dataByCoordSys:t.list})}function Iz(t,e,r){var n=r.getZr(),i="axisPointerLastHighlights",a=R_(n)[i]||{},o=R_(n)[i]={};R(t,function(f,c){var v=f.axisPointerModel.option;v.status==="show"&&f.triggerEmphasis&&R(v.seriesDataIndices,function(h){o[h.seriesIndex+"|"+h.dataIndex]=h})});var s=[],l=[];function u(f){return{seriesIndex:f.seriesIndex,dataIndex:f.dataIndex}}R(a,function(f,c){!o[c]&&l.push(u(f))}),R(o,function(f,c){!a[c]&&s.push(u(f))}),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 Lz(t,e){for(var r=0;r<(t||[]).length;r++){var n=t[r];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}function P_(t){var e=t.axis.model,r={},n=r.axisDim=t.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=e.componentIndex,r.axisName=r[n+"AxisName"]=e.name,r.axisId=r[n+"AxisId"]=e.id,r}function Ql(t){return!t||t[0]==null||isNaN(t[0])||t[1]==null||isNaN(t[1])}function $x(t){Fx.registerAxisPointerClass("CartesianAxisPointer",mz),t.registerComponentModel(_z),t.registerComponentView(Cz),t.registerPreprocessor(function(e){if(e){(!e.axisPointer||e.axisPointer.length===0)&&(e.axisPointer={});var r=e.axisPointer.link;r&&!K(r)&&(e.axisPointer.link=[r])}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,{overallReset:function(e,r){e.getComponent("axisPointer").coordSysAxesInfo=qF(e,r)}}),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},Az)}function IH(t){zr(sz),zr($x)}var Oz=typeof Float32Array!==bs?Float32Array:void 0;function wa(t){return kz({ctor:Oz},t).arr}function kz(t,e){var r=t.arr,n=t.ctor;if(e>gv&&(e=gv),!r||t.typed&&r.length-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,v=c*Math.abs(Math.cos(f))+c*Math.abs(Math.sin(f)),h=Math.round(((v-Math.SQRT2*i)/2+Math.SQRT2*i-(v-c)/2)*100)/100;s+=";"+a+":-"+h+"px";var d=e+" solid "+i+"px;",p=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+d,"border-right:"+d,"background-color:"+n+";"];return'
'}function Yz(t,e,r){var n="cubic-bezier(0.23,1,0.32,1)",i="",a="";return r&&(i=" "+t/2+"s "+n,a="opacity"+i+",visibility"+i),e||(i=" "+t+"s "+n,a+=(a.length?",":"")+(ve.transformSupported?""+Jp+i:",left"+i+",top"+i)),Uz+":"+a}function I_(t,e,r){var n=t.toFixed(0)+"px",i=e.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;"+Jp+":"+o+";":[["top",0],["left",0],[jx,o]]}function $z(t){var e=[],r=t.get("fontSize"),n=t.getTextColor();n&&e.push("color:"+n),e.push("font:"+t.getFont());var i=ne(t.get("lineHeight"),Math.round(r*3/2));r&&e.push("line-height:"+i+"px");var a=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,s=t.get("textShadowOffsetX")||0,l=t.get("textShadowOffsetY")||0;return a&&o&&e.push("text-shadow:"+s+"px "+l+"px "+o+"px "+a),R(["decoration","align"],function(u){var f=t.get(u);f&&e.push("text-"+u+":"+f)}),e.join(";")}function Xz(t,e,r,n){var i=[],a=t.get("transitionDuration"),o=t.get("backgroundColor"),s=t.get("shadowBlur"),l=t.get("shadowColor"),u=t.get("shadowOffsetX"),f=t.get("shadowOffsetY"),c=t.getModel("textStyle"),v=Vw(t,"html"),h=u+"px "+f+"px "+s+"px "+l;return i.push("box-shadow:"+h),e&&a>0&&i.push(Yz(a,r,n)),o&&i.push("background-color:"+o),R(["width","color","radius"],function(d){var p="border-"+d,m=_p(p),g=t.get(m);g!=null&&i.push(p+":"+g+(d==="color"?"":"px"))}),i.push($z(c)),v!=null&&i.push("padding:"+Cs(v).join("px ")+"px"),i.join(";")+";"}function L_(t,e,r,n,i){var a=e&&e.painter;if(r){var o=a&&a.getViewportRoot();o&&BR(t,o,r,n,i)}else{t[0]=n,t[1]=i;var s=a&&a.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var qz=(function(){function t(e,r){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,ve.wxa)return null;var n=document.createElement("div");n.domBelongToZr=!0,this.el=n;var i=this._zr=e.getZr(),a=r.appendTo,o=a&&(te(a)?document.querySelector(a):Oa(a)?a:fe(a)&&a(e.getDom()));L_(this._styleCoord,i,o,e.getWidth()/2,e.getHeight()/2),(o||e.getDom()).appendChild(n),this._api=e,this._container=o;var s=this;n.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},n.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=i.handler,f=i.painter.getViewportRoot();Gt(f,l,!0),u.dispatch("mousemove",l)}},n.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return t.prototype.update=function(e){if(!this._container){var r=this._api.getDom(),n=Hz(r,"position"),i=r.style;i.position!=="absolute"&&n!=="absolute"&&(i.position="relative")}var a=e.get("alwaysShowContent");a&&this._moveIfResized(),this._alwaysShowContent=a,this._enableDisplayTransition=e.get("displayTransition")&&e.get("transitionDuration")>0,this.el.className=e.get("className")||""},t.prototype.show=function(e,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,a=this._styleCoord;n.innerHTML?i.cssText=Vz+Xz(e,!this._firstShow,this._longHide,this._enableDisplayTransition)+I_(a[0],a[1],!0)+("border-color:"+Fi(r)+";")+(e.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(e,r,n,i,a){var o=this.el;if(e==null){o.innerHTML="";return}var s="";if(te(a)&&n.get("trigger")==="item"&&!Xx(n)&&(s=Wz(n,i,a)),te(e))o.innerHTML=e+s;else if(e){o.innerHTML="",K(e)||(e=[e]);for(var l=0;l=0?this._tryShow(a,o):i==="leave"&&this._hide(o))},this))},e.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,i=this._api,a=r.get("triggerOn");if(r.get("trigger")!=="axis"&&(this._lastDataByCoordSys=null,this._cbParamsList=null),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})})}},e.prototype.manuallyShowTip=function(r,n,i,a){if(!(a.from===this.uid||ve.node||!i.getDom())){var o=N_(a,i);this._ticket="";var s=a.dataByCoordSys,l=t3(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=Zz;f.x=a.x,f.y=a.y,f.update(),me(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=Yx(a,n),v=c.point[0],h=c.point[1];v!=null&&h!=null&&this._tryShow({offsetX:v,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))}},e.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,this._cbParamsList=null,a.from!==this.uid&&this._hide(N_(a,i))},e.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=So([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}}},e.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){var s=me(i);if(s.ssrType==="legend")return;this._lastDataByCoordSys=null,this._cbParamsList=null;var l,u;Ro(i,function(f){if(f.tooltipDisabled)return l=u=null,!0;l||u||(me(f).dataIndex!=null?l=f:me(f).tooltipConfig!=null&&(u=f))},!0),l?this._showSeriesItemTooltip(r,l,n):u?this._showComponentItemTooltip(r,u,n):this._hide(n)}else this._lastDataByCoordSys=null,this._cbParamsList=null,this._hide(n)}},e.prototype._showOrMove=function(r,n){var i=r.get("showDelay");n=Ae(n,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(n,i):n()},e.prototype._showAxisTooltip=function(r,n){var i=this._ecModel,a=this._tooltipModel,o=[n.offsetX,n.offsetY],s=So([n.tooltipOption],a),l=this._renderMode,u=[],f=ns("section",{blocks:[],noHeader:!0}),c=[],v=new ih;R(r,function(y){R(y.dataByAxis,function(_){var S=i.getComponent(_.axisDim+"Axis",_.axisIndex),b=_.value,w=S.axis,T=w.scale.parse(b);if(!(!S||b==null)){var C=Vx(b,w,i,_.seriesDataIndices,_.valueLabelOpt),x=ns("section",{header:C,noHeader:!dr(C),sortBlocks:!0,blocks:[]});f.blocks.push(x),R(_.seriesDataIndices,function(A){var D=i.getSeriesByIndex(A.seriesIndex),P=A.dataIndexInside,M=D.getDataParams(P);if(!(M.dataIndex<0)){M.axisDim=_.axisDim,M.axisIndex=_.axisIndex,M.axisType=_.axisType,M.axisId=_.axisId,M.axisValue=Yu(S.axis,{value:T}),M.axisValueLabel=C,M.marker=v.makeTooltipMarker("item",Fi(M.color),l);var I=Y0(D.formatTooltip(P,!0,null)),k=I.frag;if(k){var O=So([D],a).get("valueFormatter");x.blocks.push(O?G({valueFormatter:O},k):k)}I.text&&c.push(I.text),u.push(M)}})}})}),f.blocks.reverse(),c.reverse();var h=n.position,d=s.get("order"),p=K0(f,v,l,d,i.get("useUTC"),s.get("textStyle"));p&&c.unshift(p);var m=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,v)})},t.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=Nt(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,v=u.getData(c),h=this._renderMode,d=r.positionDefault,p=lo([v.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,d?{position:d}:null),g=p.get("trigger");if(!(g!=null&&g!=="item")){var m=u.getDataParams(f,c),y=new mc;m.marker=y.makeTooltipMarker("item",Ti(m.color),h);var _=vy(u.formatTooltip(f,!1,c)),w=p.get("order"),S=p.get("valueFormatter"),b=_.frag,x=b?yy(S?Y({valueFormatter:S},b):b,y,h,w,a.get("useUTC"),p.get("textStyle")):_.text,T="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,x,m,T,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:v.getRawIndex(f),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,i){var a=Nt(n),o=a.tooltipConfig,s=o.option||{};if(it(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,v=lo(u,this._tooltipModel,c?{position:c}:null),h=v.get("content"),d=Math.random()+"",p=new mc;this._showOrMove(v,function(){var g=xt(v.get("formatterParams")||{});this._showTooltipContent(v,h,g,d,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 v=r.get("formatter");l=l||r.get("position");var h=n,d=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor")),p=d.color;if(v)if(it(v)){var g=r.ecModel.get("useUTC"),m=et(i)?i[0]:i,y=m&&m.axisType&&m.axisType.indexOf("time")>=0;h=v,y&&(h=Zu(m.axisValue,h,g)),h=Ib(h,i,!0)}else if(mt(v)){var _=Ft(function(w,S){w===this._ticket&&(c.setContent(S,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,h=v(i,a,_)}else h=v;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"||et(n))return{color:a||(this._renderMode==="html"?"#fff":"none")};if(!et(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(),v=r.get("align"),h=r.get("verticalAlign"),d=l&&l.getBoundingRect().clone();if(l&&d.applyTransform(l.transform),mt(n)&&(n=n([i,a],s,o.el,d,{viewSize:[u,f],contentSize:c.slice()})),et(n))i=Vt(n[0],u),a=Vt(n[1],f);else if(st(n)){var p=n;p.width=c[0],p.height=c[1];var g=Ma(p,{width:u,height:f});i=g.x,a=g.y,v=null,h=null}else if(it(n)&&l){var m=p5(n,d,c,r.get("borderWidth"));i=m[0],a=m[1]}else{var m=v5(i,a,o,u,f,v?null:20,h?null:20);i=m[0],a=m[1]}if(v&&(i-=B0(v)?c[0]/2:v==="right"?c[0]:0),h&&(a-=B0(h)?c[1]/2:h==="bottom"?c[1]:0),xx(r)){var m=d5(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&&I(i,function(s,l){var u=s.dataByAxis||[],f=r[l]||{},c=f.dataByAxis||[];o=o&&u.length===c.length,o&&I(u,function(v,h){var d=c[h]||{},p=v.seriesDataIndices||[],g=d.seriesDataIndices||[];o=o&&v.value===d.value&&v.axisType===d.axisType&&v.axisId===d.axisId&&p.length===g.length,o&&I(p,function(m,y){var _=g[y];o=o&&m.seriesIndex===_.seriesIndex&&m.dataIndex===_.dataIndex}),a&&I(v.seriesDataIndices,function(m){var y=m.seriesIndex,_=n[y],w=a[y];_&&w&&w.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){wt.node||!n.getDom()||(Jh(this,"_updatePosition"),this._tooltipContent.dispose(),dv("itemTooltip",n))},t.type="tooltip",t}(qr);function lo(e,t,r){var n=t.ecModel,i;r?(i=new ce(r,n,n),i=new ce(t.option,i,n)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof ce&&(o=o.get("tooltip",!0)),it(o)&&(o={formatter:o}),o&&(i=new ce(o,i,n)))}return i}function N0(e,t){return e.dispatchAction||Ft(t.dispatchAction,t)}function v5(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 d5(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 p5(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 B0(e){return e==="center"||e==="middle"}function g5(e,t,r){var n=bd(e).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=ys(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=Nt(u).tooltipConfig;if(f&&f.name===e.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}var m5=h5;function sH(e){Ci(Sx),e.registerComponentModel(ZF),e.registerComponentView(m5),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},Ce),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},Ce)}var y5=function(e){J(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}($t),_5=function(e){J(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=Mt(r.get("textBaseline"),r.get("textVerticalAlign")),f=new he({style:kn(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),v=r.get("subtext"),h=new he({style:kn(s,{text:v,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),d=r.get("link"),p=r.get("sublink"),g=r.get("triggerEvent",!0);f.silent=!d&&!g,h.silent=!p&&!g,d&&f.on("click",function(){jm(d,"_"+r.get("target"))}),p&&h.on("click",function(){jm(p,"_"+r.get("subtarget"))}),Nt(f).eventData=Nt(h).eventData=g?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),v&&a.add(h);var m=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=m.width,y.height=m.height;var _=Ma(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 w={align:l,verticalAlign:u};f.setStyle(w),h.setStyle(w),m=a.getBoundingRect();var S=_.margin,b=r.getItemStyle(["color","opacity"]);b.fill=r.get("backgroundColor");var x=new ne({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:b,subPixelOptimize:!0,silent:!0});a.add(x)}},t.type="title",t}(qr);function lH(e){e.registerComponentModel(y5),e.registerComponentView(_5)}function Ax(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Da(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(" ")}var b5=function(e){J(t,e);function t(r,n,i,a){var o=e.call(this)||this;return o.updateData(r,n,i,a),o}return t.prototype._createSymbol=function(r,n,i,a,o){this.removeAll();var s=Ia(r,-1,-1,2,2,null,o);s.attr({z2:100,culling:!0,scaleX:a[0]/2,scaleY:a[1]/2}),s.drift=S5,this._symbolType=r,this.add(s)},t.prototype.stopSymbolAnimation=function(r){this.childAt(0).stopAnimation(null,r)},t.prototype.getSymbolType=function(){return this._symbolType},t.prototype.getSymbolPath=function(){return this.childAt(0)},t.prototype.highlight=function(){iu(this.childAt(0))},t.prototype.downplay=function(){au(this.childAt(0))},t.prototype.setZ=function(r,n){var i=this.childAt(0);i.zlevel=r,i.z=n},t.prototype.setDraggable=function(r){var n=this.childAt(0);n.draggable=r,n.cursor=r?"move":n.cursor},t.prototype.updateData=function(r,n,i,a){this.silent=!1;var o=r.getItemVisual(n,"symbol")||"circle",s=r.hostModel,l=t.getSymbolSize(r,n),u=o!==this._symbolType,f=a&&a.disableAnimation;if(u){var c=r.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,r,n,l,c)}else{var v=this.childAt(0);v.silent=!1;var h={scaleX:l[0]/2,scaleY:l[1]/2};f?v.attr(h):Dr(v,h,s,n),ub(v)}if(this._updateCommon(r,n,l,i,a),u){var v=this.childAt(0);if(!f){var h={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:v.style.opacity}};v.scaleX=v.scaleY=0,v.style.opacity=0,An(v,h,s,n)}}f&&this.childAt(0).stopAnimation("leave")},t.prototype._updateCommon=function(r,n,i,a,o){var s=this.childAt(0),l=r.hostModel,u,f,c,v,h,d,p,g,m;if(a&&(u=a.emphasisItemStyle,f=a.blurItemStyle,c=a.selectItemStyle,v=a.focus,h=a.blurScope,p=a.labelStatesModels,g=a.hoverScale,m=a.cursorStyle,d=a.emphasisDisabled),!a||r.hasItemOption){var y=a&&a.itemModel?a.itemModel:r.getItemModel(n),_=y.getModel("emphasis");u=_.getModel("itemStyle").getItemStyle(),c=y.getModel(["select","itemStyle"]).getItemStyle(),f=y.getModel(["blur","itemStyle"]).getItemStyle(),v=_.get("focus"),h=_.get("blurScope"),d=_.get("disabled"),p=ju(y),g=_.getShallow("scale"),m=y.getShallow("cursor")}var w=r.getItemVisual(n,"symbolRotate");s.attr("rotation",(w||0)*Math.PI/180||0);var S=dS(r.getItemVisual(n,"symbolOffset"),i);S&&(s.x=S[0],s.y=S[1]),m&&s.attr("cursor",m);var b=r.getItemVisual(n,"style"),x=b.fill;if(s instanceof Ii){var T=s.style;s.useStyle(Y({image:T.image,x:T.x,y:T.y,width:T.width,height:T.height},b))}else s.__isEmptyBrush?s.useStyle(Y({},b)):s.useStyle(b),s.style.decal=null,s.setColor(x,o&&o.symbolInnerColor),s.style.strokeNoScale=!0;var C=r.getItemVisual(n,"liftZ"),D=this._z2;C!=null?D==null&&(this._z2=s.z2,s.z2+=C):D!=null&&(s.z2=D,this._z2=null);var P=o&&o.useNameLabel;Xu(s,p,{labelFetcher:l,labelDataIndex:n,defaultText:A,inheritColor:x,defaultOpacity:b.opacity});function A(z){return P?r.getName(z):Ax(r,z)}this._sizeX=i[0]/2,this._sizeY=i[1]/2;var L=s.ensureState("emphasis");if(L.style=u,s.ensureState("select").style=c,s.ensureState("blur").style=f,g){var O=Math.max(1.1,3/this._sizeY);L.scaleX=this._sizeX*O,L.scaleY=this._sizeY*O}this.setSymbolScale(1),ou(this,v,h,d)},t.prototype.setSymbolScale=function(r){this.scaleX=this.scaleY=r},t.prototype.fadeOut=function(r,n,i){var a=this.childAt(0),o=Nt(this).dataIndex,s=i&&i.animation;if(this.silent=a.silent=!0,i&&i.fadeLabel){var l=a.getTextContent();l&&lu(l,{style:{opacity:0}},n,{dataIndex:o,removeOpt:s,cb:function(){a.removeTextContent()}})}else a.removeTextContent();lu(a,{style:{opacity:0},scaleX:0,scaleY:0},n,{dataIndex:o,cb:r,removeOpt:s})},t.getSymbolSize=function(r,n){return dk(r.getItemVisual(n,"symbolSize"))},t}(ye);function S5(e,t){this.parent.drift(e,t)}var sp=b5;function kc(e,t,r,n){return t&&!isNaN(t[0])&&!isNaN(t[1])&&!(n.isIgnore&&n.isIgnore(r))&&!(n.clipShape&&!n.clipShape.contain(t[0],t[1]))&&e.getItemVisual(r,"symbol")!=="none"}function F0(e){return e!=null&&!st(e)&&(e={isIgnore:e}),e||{}}function z0(e){var t=e.hostModel,r=t.getModel("emphasis");return{emphasisItemStyle:r.getModel("itemStyle").getItemStyle(),blurItemStyle:t.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:t.getModel(["select","itemStyle"]).getItemStyle(),focus:r.get("focus"),blurScope:r.get("blurScope"),emphasisDisabled:r.get("disabled"),hoverScale:r.get("scale"),labelStatesModels:ju(t),cursorStyle:t.get("cursor")}}var x5=function(){function e(t){this.group=new ye,this._SymbolCtor=t||sp}return e.prototype.updateData=function(t,r){this._progressiveEls=null,r=F0(r);var n=this.group,i=t.hostModel,a=this._data,o=this._SymbolCtor,s=r.disableAnimation,l=z0(t),u={disableAnimation:s},f=r.getSymbolPoint||function(c){return t.getItemLayout(c)};a||n.removeAll(),t.diff(a).add(function(c){var v=f(c);if(kc(t,v,c,r)){var h=new o(t,c,l,u);h.setPosition(v),t.setItemGraphicEl(c,h),n.add(h)}}).update(function(c,v){var h=a.getItemGraphicEl(v),d=f(c);if(!kc(t,d,c,r)){n.remove(h);return}var p=t.getItemVisual(c,"symbol")||"circle",g=h&&h.getSymbolType&&h.getSymbolType();if(!h||g&&g!==p)n.remove(h),h=new o(t,c,l,u),h.setPosition(d);else{h.updateData(t,c,l,u);var m={x:d[0],y:d[1]};s?h.attr(m):Dr(h,m,i)}n.add(h),t.setItemGraphicEl(c,h)}).remove(function(c){var v=a.getItemGraphicEl(c);v&&v.fadeOut(function(){n.remove(v)},i)}).execute(),this._getSymbolPoint=f,this._data=t},e.prototype.updateLayout=function(){var t=this,r=this._data;r&&r.eachItemGraphicEl(function(n,i){var a=t._getSymbolPoint(i);n.setPosition(a),n.markRedraw()})},e.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=z0(t),this._data=null,this.group.removeAll()},e.prototype.incrementalUpdate=function(t,r,n){this._progressiveEls=[],n=F0(n);function i(l){l.isGroup||(l.incremental=!0,l.ensureState("emphasis").hoverLayer=!0)}for(var a=t.start;a=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}($t),pv=A5,Qi=Xt,gv=I,vl=ye,D5=function(e){J(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 vl),this.group.add(this._selectorGroup=new vl),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()},v=r.get("padding"),h=Ma(f,c,v),d=this.layoutInner(r,o,h,a,l,u),p=Ma(Pt({width:d.width,height:d.height},f),c,v);this.group.x=p.x-d.x,this.group.y=p.y-d.y,this.group.markRedraw(),this.group.add(this._backgroundEl=jF(d,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=_t(),c=n.get("selectedMode"),v=[];i.eachRawSeries(function(h){!h.get("legendHoverLink")&&v.push(h.id)}),gv(n.getData(),function(h,d){var p=h.get("name");if(!this.newlineDisabled&&(p===""||p===` -`)){var g=new vl;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")||{},w=y.getVisual("legendIcon"),S=y.getVisual("style"),b=this._createItem(m,p,d,h,n,r,_,S,w,c);b.on("click",Qi(H0,p,null,a,v)).on("mouseover",Qi(mv,m.name,null,a,v)).on("mouseout",Qi(yv,m.name,null,a,v)),f.set(p,!0)}else i.eachRawSeries(function(x){if(!f.get(p)&&x.legendVisualProvider){var T=x.legendVisualProvider;if(!T.containName(p))return;var C=T.indexOfName(p),D=T.getItemVisual(C,"style"),P=T.getItemVisual(C,"legendIcon"),A=$r(D.fill);A&&A[3]===0&&(A[3]=.2,D=Y(Y({},D),{fill:zu(A,"rgba")}));var L=this._createItem(x,p,d,h,n,r,{},D,P,c);L.on("click",Qi(H0,null,p,a,v)).on("mouseover",Qi(mv,null,p,a,v)).on("mouseout",Qi(yv,null,p,a,v)),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();gv(r,function(u){var f=u.type,c=new he({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect"})}});s.add(c);var v=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);Xu(c,{normal:v,emphasis:h},{defaultText:u.title}),$h(c)})},t.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c){var v=r.visualDrawType,h=o.get("itemWidth"),d=o.get("itemHeight"),p=o.isSelected(n),g=a.get("symbolRotate"),m=a.get("symbolKeepAspect"),y=a.get("icon");f=y||f||"roundRect";var _=P5(f,a,l,u,v,p),w=new vl,S=a.getModel("textStyle");if(mt(r.getLegendIcon)&&(!y||y==="inherit"))w.add(r.getLegendIcon({itemWidth:h,itemHeight:d,icon:f,iconRotate:g,itemStyle:_.itemStyle,lineStyle:_.lineStyle,symbolKeepAspect:m}));else{var b=y==="inherit"&&r.getData().getVisual("symbol")?g==="inherit"?r.getData().getVisual("symbolRotate"):g:0;w.add(I5({itemWidth:h,itemHeight:d,icon:f,iconRotate:b,itemStyle:_.itemStyle,lineStyle:_.lineStyle,symbolKeepAspect:m}))}var x=s==="left"?h+5:-5,T=s,C=o.get("formatter"),D=n;it(C)&&C?D=C.replace("{name}",n!=null?n:""):mt(C)&&(D=C(n));var P=a.get("inactiveColor");w.add(new he({style:kn(S,{text:D,x,y:d/2,fill:p?S.getTextColor():P,align:T,verticalAlign:"middle"})}));var A=new ne({shape:w.getBoundingRect(),invisible:!0}),L=a.getModel("tooltip");return L.get("show")&&Rd({el:A,componentModel:o,itemName:n,itemTooltipOption:L.option}),w.add(A),w.eachChild(function(O){O.silent=!0}),A.silent=!c,this.getContentGroup().add(w),$h(w),w.__legendDataIndex=i,w},t.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();No(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){No("horizontal",u,r.get("selectorItemGap",!0));var v=u.getBoundingRect(),h=[-v.x,-v.y],d=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]+d:c[p]+=v[g]+d,h[1-p]+=f[m]/2-v[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]+d+v[g],_[m]=Math.max(f[m],v[m]),_[y]=Math.min(0,v[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}(qr);function P5(e,t,r,n,i,a){function o(d,p){d.lineWidth==="auto"&&(d.lineWidth=p.lineWidth>0?2:0),gv(d,function(g,m){d[m]==="inherit"&&(d[m]=p[m])})}var s=t.getModel("itemStyle"),l=s.getItemStyle(),u=e.lastIndexOf("empty",0)===0?"fill":"stroke";l.decal=n.decal,l.fill==="inherit"&&(l.fill=n[i]),l.stroke==="inherit"&&(l.stroke=n[u]),l.opacity==="inherit"&&(l.opacity=(i==="fill"?n:r).opacity),o(l,n);var f=t.getModel("lineStyle"),c=f.getLineStyle();if(o(c,r),l.fill==="auto"&&(l.fill=n.fill),l.stroke==="auto"&&(l.stroke=n.fill),c.stroke==="auto"&&(c.stroke=n.fill),!a){var v=t.get("inactiveBorderWidth"),h=l[u];l.lineWidth=v==="auto"?n.lineWidth>0&&h?2:0:l.lineWidth,l.fill=t.get("inactiveColor"),l.stroke=t.get("inactiveBorderColor"),c.stroke=f.get("inactiveColor"),c.lineWidth=f.get("inactiveWidth")}return{itemStyle:l,lineStyle:c}}function I5(e){var t=e.icon||"roundRect",r=Ia(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 H0(e,t,r,n){yv(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e!=null?e:t}),mv(e,t,r,n)}function Dx(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=[-d.x,-d.y],_=Mt(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var w=r.get("pageButtonPosition",!0);w==="end"?y[a]+=i[o]-d[o]:m[a]+=d[o]+_}y[1-a]+=h[s]/2-d[s]/2,f.setPosition(g),c.setPosition(m),v.setPosition(y);var S={x:0,y:0};if(S[o]=p?i[o]:h[o],S[s]=Math.max(h[s],d[s]),S[l]=Math.min(0,d[l]+y[1-a]),c.__rectSize=i[o],p){var b={x:0,y:0};b[o]=Math.max(i[o]-d[o]-_,0),b[s]=S[s],c.setClipPath(new ne({shape:b})),c.__rectSize=b[o]}else v.eachChild(function(T){T.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(r);return x.pageIndex!=null&&Dr(f,{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;I(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",v=n[c]!=null,h=i.childOfName(f);h&&(h.setStyle("fill",v?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=v?"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",it(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=Nc[o],l=Bc[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],v=f.length,h=v?1:0,d={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return d;var p=w(c);d.contentPosition[o]=-p.s;for(var g=u+1,m=p,y=p,_=null;g<=v;++g)_=w(f[g]),(!_&&y.e>m.s+a||_&&!S(_,m.s))&&(y.i>m.i?m=y:m=_,m&&(d.pageNextDataIndex==null&&(d.pageNextDataIndex=m.i),++d.pageCount)),y=_;for(var g=u-1,m=p,y=p,_=null;g>=-1;--g)_=w(f[g]),(!_||!S(y,_.s))&&m.i=x&&b.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!=null?n:a},t.type="legend.scroll",t}(Px),N5=k5;function B5(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 F5(e){Ci(Ix),e.registerComponentModel(O5),e.registerComponentView(N5),B5(e)}function uH(e){Ci(Ix),Ci(F5)}var z5=function(e){J(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r}return t.prototype.getInitialData=function(r){return PN(null,this,{useEncodeDefaulter:!0})},t.prototype.getLegendIcon=function(r){var n=new ye,i=Ia("line",0,r.itemHeight/2,r.itemWidth,0,r.lineStyle.stroke,!1);n.add(i),i.setStyle(r.lineStyle);var a=this.getData().getVisual("symbol"),o=this.getData().getVisual("symbolRotate"),s=a==="none"?"circle":a,l=r.itemHeight*.8,u=Ia(s,(r.itemWidth-l)/2,(r.itemHeight-l)/2,l,l,r.itemStyle.fill);n.add(u),u.setStyle(r.itemStyle);var f=r.iconRotate==="inherit"?o:r.iconRotate||0;return u.rotation=f*Math.PI/180,u.setOrigin([r.itemWidth/2,r.itemHeight/2]),s.indexOf("empty")>-1&&(u.style.stroke=u.style.fill,u.style.fill="#fff",u.style.lineWidth=2),n},t.type="series.line",t.dependencies=["grid","polar"],t.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},t}(Pa),H5=z5;function Ex(e,t,r){var n=e.getBaseAxis(),i=e.getOtherAxis(n),a=$5(i,r),o=n.dim,s=i.dim,l=t.mapDimension(s),u=t.mapDimension(o),f=s==="x"||s==="radius"?1:0,c=ct(e.dimensions,function(d){return t.mapDimension(d)}),v=!1,h=t.getCalculationInfo("stackResultDimension");return us(t,c[0])&&(v=!0,c[0]=h),us(t,c[1])&&(v=!0,c[1]=h),{dataDimsForPoint:c,valueStart:a,valueAxisDim:s,baseAxisDim:o,stacked:!!v,valueDim:l,baseDim:u,baseDataOffset:f,stackedOverDimension:t.getCalculationInfo("stackedOverDimension")}}function $5(e,t){var r=0,n=e.scale.getExtent();return t==="start"?r=n[0]:t==="end"?r=n[1]:n[0]>0?r=n[0]:n[1]<0&&(r=n[1]),r}function Lx(e,t,r,n){var i=NaN;e.stacked&&(i=r.get(r.getCalculationInfo("stackedOverDimension"),n)),isNaN(i)&&(i=e.valueStart);var a=e.baseDataOffset,o=[];return o[a]=r.get(e.baseDim,n),o[1-a]=i,t.dataToPoint(o)}function V5(e,t){var r=[];return t.diff(e).add(function(n){r.push({cmd:"+",idx:n})}).update(function(n,i){r.push({cmd:"=",idx:i,idx1:n})}).remove(function(n){r.push({cmd:"-",idx:n})}).execute(),r}function G5(e,t,r,n,i,a,o,s){for(var l=V5(e,t),u=[],f=[],c=[],v=[],h=[],d=[],p=[],g=Ex(i,t,o),m=e.getLayout("points")||[],y=t.getLayout("points")||[],_=0;_=i||p<0)break;if(_i(m,y)){if(l){p+=a;continue}break}if(p===r)e[a>0?"moveTo":"lineTo"](m,y),c=m,v=y;else{var _=m-u,w=y-f;if(_*_+w*w<.5){p+=a;continue}if(o>0){for(var S=p+a,b=t[S*2],x=t[S*2+1];b===m&&x===y&&g=n||_i(b,x))h=m,d=y;else{D=b-u,P=x-f;var O=m-u,z=b-m,N=y-f,tt=x-y,V=void 0,K=void 0;if(s==="x"){V=Math.abs(O),K=Math.abs(z);var lt=D>0?1:-1;h=m-lt*V*o,d=y,A=m+lt*K*o,L=y}else if(s==="y"){V=Math.abs(N),K=Math.abs(tt);var yt=P>0?1:-1;h=m,d=y-yt*V*o,A=m,L=y+yt*K*o}else V=Math.sqrt(O*O+N*N),K=Math.sqrt(z*z+tt*tt),C=K/(K+V),h=m-D*o*(1-C),d=y-P*o*(1-C),A=m+D*o*C,L=y+P*o*C,A=ln(A,un(b,m)),L=ln(L,un(x,y)),A=un(A,ln(b,m)),L=un(L,ln(x,y)),D=A-m,P=L-y,h=m-D*V/K,d=y-P*V/K,h=ln(h,un(u,m)),d=ln(d,un(f,y)),h=un(h,ln(u,m)),d=un(d,ln(f,y)),D=m-h,P=y-d,A=m+D*K/V,L=y+P*K/V}e.bezierCurveTo(c,v,h,d,m,y),c=A,v=L}else e.lineTo(m,y)}u=m,f=y,p+=a}return g}var Rx=function(){function e(){this.smooth=0,this.smoothConstraint=!0}return e}(),U5=function(e){J(t,e);function t(r){var n=e.call(this,r)||this;return n.type="ec-polyline",n}return t.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},t.prototype.getDefaultShape=function(){return new Rx},t.prototype.buildPath=function(r,n){var i=n.points,a=0,o=i.length/2;if(n.connectNulls){for(;o>0&&_i(i[o*2-2],i[o*2-1]);o--);for(;a=0){var w=u?(d-l)*_+l:(h-s)*_+s;return u?[r,w]:[w,r]}s=h,l=d;break;case o.C:h=a[c++],d=a[c++],p=a[c++],g=a[c++],m=a[c++],y=a[c++];var S=u?jl(s,h,p,m,r,f):jl(l,d,g,y,r,f);if(S>0)for(var b=0;b=0){var w=u?Kt(l,d,g,y,x):Kt(s,h,p,m,x);return u?[r,w]:[w,r]}}s=m,l=y;break}}},t}(kt),W5=function(e){J(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(Rx),Y5=function(e){J(t,e);function t(r){var n=e.call(this,r)||this;return n.type="ec-polygon",n}return t.prototype.getDefaultShape=function(){return new W5},t.prototype.buildPath=function(r,n){var i=n.points,a=n.stackedOnPoints,o=0,s=i.length/2,l=n.smoothMonotone;if(n.connectNulls){for(;s>0&&_i(i[s*2-2],i[s*2-1]);s--);for(;ot){a?r.push(o(a,l,t)):i&&r.push(o(i,l,0),o(i,l,t));break}else i&&(r.push(o(i,l,0)),i=null),r.push(l),a=l}return r}function Z5(e,t,r){var n=e.getVisual("visualMeta");if(!(!n||!n.length||!e.count())&&t.type==="cartesian2d"){for(var i,a,o=n.length-1;o>=0;o--){var s=e.getDimensionInfo(n[o].dimension);if(i=s&&s.coordDim,i==="x"||i==="y"){a=n[o];break}}if(!!a){var l=t.getAxis(i),u=ct(a.stops,function(_){return{coord:l.toGlobalCoord(l.dataToCoord(_.value)),color:_.color}}),f=u.length,c=a.outerColors.slice();f&&u[0].coord>u[f-1].coord&&(u.reverse(),c.reverse());var v=K5(u,i==="x"?r.getWidth():r.getHeight()),h=v.length;if(!h&&f)return u[0].coord<0?c[1]?c[1]:u[f-1].color:c[0]?c[0]:u[0].color;var d=10,p=v[0].coord-d,g=v[h-1].coord+d,m=g-p;if(m<.001)return"transparent";I(v,function(_){_.offset=(_.coord-p)/m}),v.push({offset:h?v[h-1].offset:.5,color:c[1]||"transparent"}),v.unshift({offset:h?v[0].offset:.5,color:c[0]||"transparent"});var y=new sb(0,0,0,0,v,!0);return y[i]=p,y[i+"2"]=g,y}}}function Q5(e,t,r){var n=e.get("showAllSymbol"),i=n==="auto";if(!(n&&!i)){var a=r.getAxesByScale("ordinal")[0];if(!!a&&!(i&&J5(a,t))){var o=t.mapDimension(a.dim),s={};return I(a.getViewLabels(),function(l){var u=a.scale.getRawOrdinalNumber(l.tickValue);s[u]=1}),function(l){return!s.hasOwnProperty(t.get(o,l))}}}}function J5(e,t){var r=e.getExtent(),n=Math.abs(r[1]-r[0])/e.scale.count();isNaN(n)&&(n=0);for(var i=t.count(),a=Math.max(1,Math.round(i/5)),o=0;on)return!1;return!0}function tz(e,t){return isNaN(e)||isNaN(t)}function ez(e){for(var t=e.length/2;t>0&&tz(e[t*2-2],e[t*2-1]);t--);return t-1}function q0(e,t){return[e[t*2],e[t*2+1]]}function rz(e,t,r){for(var n=e.length/2,i=r==="x"?0:1,a,o,s=0,l=-1,u=0;u=t||a>=t&&o<=t){l=u;break}s=u,a=o}return{range:[s,l],t:(t-a)/(o-a)}}function Ox(e){if(e.get(["endLabel","show"]))return!0;for(var t=0;t0&&r.get(["emphasis","lineStyle","width"])==="bolder"){var lt=p.getState("emphasis").style;lt.lineWidth=+p.style.lineWidth+1}Nt(p).seriesIndex=r.seriesIndex,ou(p,tt,V,K);var yt=Y0(r.get("smooth")),ut=r.get("smoothMonotone");if(p.setShape({smooth:yt,smoothMonotone:ut,connectNulls:T}),g){var ht=l.getCalculationInfo("stackedOnSeries"),bt=0;g.useStyle(Pt(f.getAreaStyle(),{fill:L,opacity:.7,lineJoin:"bevel",decal:l.getVisual("style").decal})),ht&&(bt=Y0(ht.get("smooth"))),g.setShape({smooth:yt,stackedOnSmooth:bt,smoothMonotone:ut,connectNulls:T}),Vh(g,r,"areaStyle"),Nt(g).seriesIndex=r.seriesIndex,ou(g,tt,V,K)}var k=function(G){a._changePolyState(G)};l.eachItemGraphicEl(function(G){G&&(G.onHoverStateChange=k)}),this._polyline.onHoverStateChange=k,this._data=l,this._coordSys=o,this._stackedOnPoints=b,this._points=c,this._step=P,this._valueOrigin=w,r.get("triggerLineEvent")&&(this.packEventData(r,p),g&&this.packEventData(r,g))},t.prototype.packEventData=function(r,n){Nt(n).eventData={componentType:"series",componentSubType:"line",componentIndex:r.componentIndex,seriesIndex:r.seriesIndex,seriesName:r.name,seriesType:"line"}},t.prototype.highlight=function(r,n,i,a){var o=r.getData(),s=Si(o,a);if(this._changePolyState("emphasis"),!(s instanceof Array)&&s!=null&&s>=0){var l=o.getLayout("points"),u=o.getItemGraphicEl(s);if(!u){var f=l[s*2],c=l[s*2+1];if(isNaN(f)||isNaN(c)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(f,c))return;var v=r.get("zlevel"),h=r.get("z");u=new sp(o,s),u.x=f,u.y=c,u.setZ(v,h);var d=u.getSymbolPath().getTextContent();d&&(d.zlevel=v,d.z=h,d.z2=this._polyline.z2+1),u.__temp=!0,o.setItemGraphicEl(s,u),u.stopSymbolAnimation(!0),this.group.add(u)}u.highlight()}else Gr.prototype.highlight.call(this,r,n,i,a)},t.prototype.downplay=function(r,n,i,a){var o=r.getData(),s=Si(o,a);if(this._changePolyState("normal"),s!=null&&s>=0){var l=o.getItemGraphicEl(s);l&&(l.__temp?(o.setItemGraphicEl(s,null),this.group.remove(l)):l.downplay())}else Gr.prototype.downplay.call(this,r,n,i,a)},t.prototype._changePolyState=function(r){var n=this._polygon;Tm(this._polyline,r),n&&Tm(n,r)},t.prototype._newPolyline=function(r){var n=this._polyline;return n&&this._lineGroup.remove(n),n=new U5({shape:{points:r},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(n),this._polyline=n,n},t.prototype._newPolygon=function(r,n){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new Y5({shape:{points:r,stackedOnPoints:n},segmentIgnoreThreshold:2}),this._lineGroup.add(i),this._polygon=i,i},t.prototype._initSymbolLabelAnimation=function(r,n,i){var a,o,s=n.getBaseAxis(),l=s.inverse;n.type==="cartesian2d"?(a=s.isHorizontal(),o=!1):n.type==="polar"&&(a=s.dim==="angle",o=!0);var u=r.hostModel,f=u.get("animationDuration");mt(f)&&(f=f(null));var c=u.get("animationDelay")||0,v=mt(c)?c(null):c;r.eachItemGraphicEl(function(h,d){var p=h;if(p){var g=[h.x,h.y],m=void 0,y=void 0,_=void 0;if(i)if(o){var w=i,S=n.pointToCoord(g);a?(m=w.startAngle,y=w.endAngle,_=-S[1]/180*Math.PI):(m=w.r0,y=w.r,_=S[0])}else{var b=i;a?(m=b.x,y=b.x+b.width,_=h.x):(m=b.y+b.height,y=b.y,_=h.y)}var x=y===m?0:(_-m)/(y-m);l&&(x=1-x);var T=mt(c)?c(d):f*x+v,C=p.getSymbolPath(),D=C.getTextContent();p.attr({scaleX:0,scaleY:0}),p.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:T}),D&&D.animateFrom({style:{opacity:0}},{duration:300,delay:T}),C.disableLabelAnimation=!0}})},t.prototype._initOrUpdateEndLabel=function(r,n,i){var a=r.getModel("endLabel");if(Ox(r)){var o=r.getData(),s=this._polyline,l=o.getLayout("points");if(!l){s.removeTextContent(),this._endLabel=null;return}var u=this._endLabel;u||(u=this._endLabel=new he({z2:200}),u.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var f=ez(l);f>=0&&(Xu(s,ju(r,"endLabel"),{inheritColor:i,labelFetcher:r,labelDataIndex:f,defaultText:function(c,v,h){return h!=null?w5(o,h):Ax(o,c)},enableTextSetter:!0},nz(a,n)),s.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},t.prototype._endLabelOnDuring=function(r,n,i,a,o,s,l){var u=this._endLabel,f=this._polyline;if(u){r<1&&a.originalX==null&&(a.originalX=u.x,a.originalY=u.y);var c=i.getLayout("points"),v=i.hostModel,h=v.get("connectNulls"),d=s.get("precision"),p=s.get("distance")||0,g=l.getBaseAxis(),m=g.isHorizontal(),y=g.inverse,_=n.shape,w=y?m?_.x:_.y+_.height:m?_.x+_.width:_.y,S=(m?p:0)*(y?-1:1),b=(m?0:-p)*(y?-1:1),x=m?"x":"y",T=rz(c,w,x),C=T.range,D=C[1]-C[0],P=void 0;if(D>=1){if(D>1&&!h){var A=q0(c,C[0]);u.attr({x:A[0]+S,y:A[1]+b}),o&&(P=v.getRawValue(C[0]))}else{var A=f.getPointOn(w,x);A&&u.attr({x:A[0]+S,y:A[1]+b});var L=v.getRawValue(C[0]),O=v.getRawValue(C[1]);o&&(P=hE(i,d,L,O,T.t))}a.lastFrameIndex=C[0]}else{var z=r===1||a.lastFrameIndex>0?C[0]:0,A=q0(c,z);o&&(P=v.getRawValue(z)),u.attr({x:A[0]+S,y:A[1]+b})}o&&pb(u).setLabelText(P)}},t.prototype._doUpdateAnimation=function(r,n,i,a,o,s,l){var u=this._polyline,f=this._polygon,c=r.hostModel,v=G5(this._data,r,this._stackedOnPoints,n,this._coordSys,i,this._valueOrigin),h=v.current,d=v.stackedOnCurrent,p=v.next,g=v.stackedOnNext;if(o&&(h=fn(v.current,i,o,l),d=fn(v.stackedOnCurrent,i,o,l),p=fn(v.next,i,o,l),g=fn(v.stackedOnNext,i,o,l)),W0(h,p)>3e3||f&&W0(d,g)>3e3){u.stopAnimation(),u.setShape({points:p}),f&&(f.stopAnimation(),f.setShape({points:p,stackedOnPoints:g}));return}u.shape.__points=v.current,u.shape.points=h;var m={shape:{points:p}};v.current!==h&&(m.shape.__points=v.next),u.stopAnimation(),Dr(u,m,c),f&&(f.setShape({points:h,stackedOnPoints:d}),f.stopAnimation(),Dr(f,{shape:{stackedOnPoints:g}},c),u.shape.points!==f.shape.points&&(f.shape.points=u.shape.points));for(var y=[],_=v.status,w=0;w<_.length;w++){var S=_[w].cmd;if(S==="="){var b=r.getItemGraphicEl(_[w].idx1);b&&y.push({el:b,ptIdx:w})}}u.animators&&u.animators.length&&u.animators[0].during(function(){f&&f.dirtyShape();for(var x=u.shape.__points,T=0;Tt&&(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(),v=Math.abs(f[1]-f[0])*(c||1),h=Math.round(s/v);if(isFinite(h)&&h>1){a==="lttb"&&t.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h));var d=void 0;it(a)?d=sz[a]:mt(a)&&(d=a),d&&t.setData(i.downSample(i.mapDimension(u.dim),1/h,d,lz))}}}}}function fH(e){e.registerChartView(az),e.registerSeriesModel(H5),e.registerLayout(oz("line",!0)),e.registerVisual({seriesType:"line",reset:function(t){var r=t.getData(),n=t.getModel("lineStyle").getLineStyle();n&&!n.stroke&&(n.stroke=r.getVisual("style").fill),r.setVisual("legendLineStyle",n)}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,uz("line"))}var dl=Math.PI*2,X0=Math.PI/180;function kx(e,t){return Ma(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function Nx(e,t){var r=kx(e,t),n=e.get("center"),i=e.get("radius");et(i)||(i=[0,i]),et(n)||(n=[n,n]);var a=Vt(r.width,t.getWidth()),o=Vt(r.height,t.getHeight()),s=Math.min(a,o),l=Vt(n[0],a)+r.x,u=Vt(n[1],o)+r.y,f=Vt(i[0],s/2),c=Vt(i[1],s/2);return{cx:l,cy:u,r0:f,r:c}}function fz(e,t,r){t.eachSeriesByType(e,function(n){var i=n.getData(),a=i.mapDimension("value"),o=kx(n,r),s=Nx(n,r),l=s.cx,u=s.cy,f=s.r,c=s.r0,v=-n.get("startAngle")*X0,h=n.get("minAngle")*X0,d=0;i.each(a,function(D){!isNaN(D)&&d++});var p=i.getSum(a),g=Math.PI/(p||d)*2,m=n.get("clockwise"),y=n.get("roseType"),_=n.get("stillShowZeroSum"),w=i.getDataExtent(a);w[0]=0;var S=dl,b=0,x=v,T=m?1:-1;if(i.setLayout({viewRect:o,r:f}),i.each(a,function(D,P){var A;if(isNaN(D)){i.setItemLayout(P,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:m,cx:l,cy:u,r0:c,r:y?NaN:f});return}y!=="area"?A=p===0&&_?g:D*g:A=dl/d,Ar?m:g,S=Math.abs(_.label.y-r);if(S>=w.maxY){var b=_.label.x-t-_.len2*i,x=n+_.len,T=Math.abs(b)e.unconstrainedWidth?null:h:null;n.setStyle("width",d)}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 zc(e){return e.position==="center"}function dz(e){var t=e.getData(),r=[],n,i,a=!1,o=(e.get("minShowLabelAngle")||0)*hz,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,f=s.x,c=s.y,v=s.height;function h(b){b.ignore=!0}function d(b){if(!b.ignore)return!0;for(var x in b.states)if(b.states[x].ignore===!1)return!0;return!1}t.each(function(b){var x=t.getItemGraphicEl(b),T=x.shape,C=x.getTextContent(),D=x.getTextGuideLine(),P=t.getItemModel(b),A=P.getModel("label"),L=A.get("position")||P.get(["emphasis","label","position"]),O=A.get("distanceToLabelLine"),z=A.get("alignTo"),N=Vt(A.get("edgeDistance"),u),tt=A.get("bleedMargin"),V=P.getModel("labelLine"),K=V.get("length");K=Vt(K,u);var lt=V.get("length2");if(lt=Vt(lt,u),Math.abs(T.endAngle-T.startAngle)0?"right":"left":ut>0?"left":"right"}var R=Math.PI,B=0,F=A.get("rotate");if(zt(F))B=F*(R/180);else if(L==="center")B=0;else if(F==="radial"||F===!0){var q=ut<0?-yt+R:-yt;B=q}else if(F==="tangential"&&L!=="outside"&&L!=="outer"){var Z=Math.atan2(ut,ht);Z<0&&(Z=R*2+Z);var U=ht>0;U&&(Z=R+Z),B=Z-R}if(a=!!B,C.x=bt,C.y=k,C.rotation=B,C.setStyle({verticalAlign:"middle"}),Q){C.setStyle({align:$});var nt=C.states.select;nt&&(nt.x+=C.x,nt.y+=C.y)}else{var W=C.getBoundingRect().clone();W.applyTransform(C.getComputedTransform());var H=(C.style.margin||0)+2.1;W.y-=H/2,W.height+=H,r.push({label:C,labelLine:D,position:L,len:K,len2:lt,minTurnAngle:V.get("minTurnAngle"),maxSurfaceAngle:V.get("maxSurfaceAngle"),surfaceNormal:new pt(ut,ht),linePoints:G,textAlign:$,labelDistance:O,labelAlignTo:z,edgeDistance:N,bleedMargin:tt,rect:W,unconstrainedWidth:W.width,labelStyleWidth:C.style.width})}x.setTextConfig({inside:Q})}}),!a&&e.get("avoidLabelOverlap")&&vz(r,n,i,l,u,v,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}(Gr),mz=gz;function yz(e,t,r){t=et(t)&&{coordDimensions:t}||Y({encodeDefine:e.getEncode()},t);var n=e.getSource(),i=US(n,t).dimensions,a=new GS(i,e);return a.initData(n,r),a}var _z=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}(),wz=_z,bz=function(e){J(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 wz(Ft(this.getData,this),Ft(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return yz(this,{coordDimensions:["value"],encodeDefaulter:Xt(vR,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),i=e.prototype.getDataParams.call(this,r),a=[];return n.each(n.mapDimension("value"),function(o){a.push(o)}),i.percent=qI(a,r,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},t.prototype._defaultLabelLine=function(r){Oh(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}(Pa),Sz=bz;function xz(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!(zt(o)&&!isNaN(o)&&o<0)})}}}function cH(e){e.registerChartView(mz),e.registerSeriesModel(Sz),tk("pie",e.registerAction),e.registerLayout(Xt(fz,"pie")),e.registerProcessor(cz("pie")),e.registerProcessor(xz("pie"))}function K0(e,t,r){var n=Pi.createCanvas(),i=t.getWidth(),a=t.getHeight(),o=n.style;return o&&(o.position="absolute",o.left="0",o.top="0",o.width=i+"px",o.height=a+"px",n.setAttribute("data-zr-dom-id",e)),n.width=i*r,n.height=a*r,n}var Tz=function(e){J(t,e);function t(r,n,i){var a=e.call(this)||this;a.motionBlur=!1,a.lastFrameAlpha=.7,a.dpr=1,a.virtual=!1,a.config={},a.incremental=!1,a.zlevel=0,a.maxRepaintRectCount=5,a.__dirty=!0,a.__firstTimePaint=!0,a.__used=!1,a.__drawIndex=0,a.__startIndex=0,a.__endIndex=0,a.__prevStartIndex=null,a.__prevEndIndex=null;var o;i=i||tu,typeof r=="string"?o=K0(r,n,i):st(r)&&(o=r,r=o.id),a.id=r,a.dom=o;var s=o.style;return s&&(H1(o),o.onselectstart=function(){return!1},s.padding="0",s.margin="0",s.borderWidth="0"),a.painter=n,a.dpr=i,a}return t.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},t.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},t.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},t.prototype.setUnpainted=function(){this.__firstTimePaint=!0},t.prototype.createBackBuffer=function(){var r=this.dpr;this.domBack=K0("back-"+this.id,this.painter,r),this.ctxBack=this.domBack.getContext("2d"),r!==1&&this.ctxBack.scale(r,r)},t.prototype.createRepaintRects=function(r,n,i,a){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var o=[],s=this.maxRepaintRectCount,l=!1,u=new Ot(0,0,0,0);function f(y){if(!(!y.isFinite()||y.isZero()))if(o.length===0){var _=new Ot(0,0,0,0);_.copy(y),o.push(_)}else{for(var w=!1,S=1/0,b=0,x=0;x=s)}}for(var c=this.__startIndex;c15)break}}O.prevElClipPaths&&m.restore()};if(y)if(y.length===0)T=g.__endIndex;else for(var D=h.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?gl:0),this._needsManuallyCompositing),f.__builtin__||ld("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&Le&&!i.__inHover&&(f.__dirty=!0,f.incremental&&f.__drawIndex<0&&(f.__drawIndex=l))}r(l),this.eachBuiltinLayer(function(c,v){!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,I(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?Dt(n[t],r,!0):n[t]=r;for(var i=0;i=0;)g++;if(d.substr(0,2)==="::"&&g--,d.substr(-2,2)==="::"&&g--,g>p)return null;for(w=p-g,_=":";w--;)_+="0:";return d=d.replace("::",_),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),p=function(){const S=d.split(":"),b=[];for(let x=0;x0;){if(_=g-m,_<0&&(_=0),d[y]>>_!==p[y]>>_)return!1;m-=g,y+=1}return!0}function c(d){if(a.test(d))return parseInt(d,16);if(d[0]==="0"&&!isNaN(parseInt(d[1],10))){if(i.test(d))return parseInt(d,8);throw new Error(`ipaddr: cannot parse ${d} as octal`)}return parseInt(d,10)}function v(d,p){for(;d.length=0;y-=1)if(_=this.octets[y],_ in m){if(w=m[_],g&&w!==0)return null;w!==8&&(g=!0),p+=w}else return null;return 32-p},d.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return h.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),h.IPv4.broadcastAddressFromCIDR=function(d){try{const p=this.parseCIDR(d),g=p[0].toByteArray(),m=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),y=[];let _=0;for(;_<4;)y.push(parseInt(g[_],10)|parseInt(m[_],10)^255),_++;return new this(y)}catch(p){throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.isIPv4=function(d){return this.parser(d)!==null},h.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch(p){return!1}},h.IPv4.isValidFourPartDecimal=function(d){return!!(h.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},h.IPv4.networkAddressFromCIDR=function(d){let p,g,m,y,_;try{for(p=this.parseCIDR(d),m=p[0].toByteArray(),_=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),y=[],g=0;g<4;)y.push(parseInt(m[g],10)&parseInt(_[g],10)),g++;return new this(y)}catch(w){throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.parse=function(d){const p=this.parser(d);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(p)},h.IPv4.parseCIDR=function(d){let p;if(p=d.match(/^(.+)\/(\d+)$/)){const g=parseInt(p[2]);if(g>=0&&g<=32){const m=[this.parse(p[1]),g];return Object.defineProperty(m,"toString",{value:function(){return this.join("/")}}),m}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(d){let p,g,m;if(p=d.match(n.fourOctet))return function(){const y=p.slice(1,6),_=[];for(let w=0;w4294967295||m<0)throw new Error("ipaddr: address outside defined range");return function(){const y=[];let _;for(_=0;_<=24;_+=8)y.push(m>>_&255);return y}().reverse()}else return(p=d.match(n.twoOctet))?function(){const y=p.slice(1,4),_=[];if(m=c(y[1]),m>16777215||m<0)throw new Error("ipaddr: address outside defined range");return _.push(c(y[0])),_.push(m>>16&255),_.push(m>>8&255),_.push(m&255),_}():(p=d.match(n.threeOctet))?function(){const y=p.slice(1,5),_=[];if(m=c(y[2]),m>65535||m<0)throw new Error("ipaddr: address outside defined range");return _.push(c(y[0])),_.push(c(y[1])),_.push(m>>8&255),_.push(m&255),_}():null},h.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");const p=[0,0,0,0];let g=0;const m=Math.floor(d/8);for(;g=0;w-=1)if(y=this.parts[w],y in m){if(_=m[y],g&&_!==0)return null;_!==16&&(g=!0),p+=_}else return null;return 128-p},d.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let p;const g=[],m=this.parts;for(let y=0;y>8),g.push(p&255);return g},d.prototype.toFixedLengthString=function(){const p=function(){const m=[];for(let y=0;y>8,g&255,m>>8,m&255])},d.prototype.toNormalizedString=function(){const p=function(){const m=[];for(let y=0;yy&&(m=_.index,y=_[0].length);return y<0?g:`${g.substring(0,m)}::${g.substring(m+y)}`},d.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},d}(),h.IPv6.broadcastAddressFromCIDR=function(d){try{const p=this.parseCIDR(d),g=p[0].toByteArray(),m=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),y=[];let _=0;for(;_<16;)y.push(parseInt(g[_],10)|parseInt(m[_],10)^255),_++;return new this(y)}catch(p){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${p})`)}},h.IPv6.isIPv6=function(d){return this.parser(d)!==null},h.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{const p=this.parser(d);return new this(p.parts,p.zoneId),!0}catch(p){return!1}},h.IPv6.networkAddressFromCIDR=function(d){let p,g,m,y,_;try{for(p=this.parseCIDR(d),m=p[0].toByteArray(),_=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),y=[],g=0;g<16;)y.push(parseInt(m[g],10)&parseInt(_[g],10)),g++;return new this(y)}catch(w){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${w})`)}},h.IPv6.parse=function(d){const p=this.parser(d);if(p.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(p.parts,p.zoneId)},h.IPv6.parseCIDR=function(d){let p,g,m;if((g=d.match(/^(.+)\/(\d+)$/))&&(p=parseInt(g[2]),p>=0&&p<=128))return m=[this.parse(g[1]),p],Object.defineProperty(m,"toString",{value:function(){return this.join("/")}}),m;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(d){let p,g,m,y,_,w;if(m=d.match(l.deprecatedTransitional))return this.parser(`::ffff:${m[1]}`);if(l.native.test(d))return u(d,8);if((m=d.match(l.transitional))&&(w=m[6]||"",p=u(m[1].slice(0,-1)+w,6),p.parts)){for(_=[parseInt(m[2]),parseInt(m[3]),parseInt(m[4]),parseInt(m[5])],g=0;g<_.length;g++)if(y=_[g],!(0<=y&&y<=255))return null;return p.parts.push(_[0]<<8|_[1]),p.parts.push(_[2]<<8|_[3]),{parts:p.parts,zoneId:p.zoneId}}return null},h.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");const p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];let g=0;const m=Math.floor(d/8);for(;g",g=c.join(m);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,g,u,Math.random()+"",o[0],o[1],h,null,v)})},e.prototype._showSeriesItemTooltip=function(r,n,i){var a=this._ecModel,o=me(n),s=o.seriesIndex,l=a.getSeriesByIndex(s),u=o.dataModel||l,f=o.dataIndex,c=o.dataType,v=u.getData(c),h=this._renderMode,d=r.positionDefault,p=So([v.getItemModel(f),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,d?{position:d}:null),m=p.get("trigger");if(!(m!=null&&m!=="item")){var g=u.getDataParams(f,c),y=new ih;g.marker=y.makeTooltipMarker("item",Fi(g.color),h);var _=Y0(u.formatTooltip(f,!1,c)),S=p.get("order"),b=p.get("valueFormatter"),w=_.frag,T=w?K0(b?G({valueFormatter:b},w):w,y,h,S,a.get("useUTC"),p.get("textStyle")):_.text,C="item_"+u.name+"_"+f;this._showOrMove(p,function(){this._showTooltipContent(p,T,g,C,r.offsetX,r.offsetY,r.position,r.target,y)}),i({type:"showTip",dataIndexInside:f,dataIndex:v.getRawIndex(f),seriesIndex:s,from:this.uid})}},e.prototype._showComponentItemTooltip=function(r,n,i){var a=this._renderMode==="html",o=me(n),s=o.tooltipConfig,l=s.option||{},u=l.encodeHTMLContent;if(te(l)){var f=l;l={content:f,formatter:f},u=!0}u&&a&&l.content&&(l=de(l),l.content=yt(l.content));var c=[l],v=this._ecModel.getComponent(o.componentMainType,o.componentIndex);v&&c.push(v),c.push({formatter:l.content});var h=r.positionDefault,d=So(c,this._tooltipModel,h?{position:h}:null),p=d.get("content"),m=Math.random()+"",g=new ih;this._showOrMove(d,function(){var y=de(d.get("formatterParams")||{});this._showTooltipContent(d,p,y,m,r.offsetX,r.offsetY,r.position,n,g)}),i({type:"showTip",from:this.uid})},e.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 v=r.get("formatter");l=l||r.get("position");var h=n,d=this._getNearestPoint([o,s],i,r.get("trigger"),r.get("borderColor"),r.get("defaultBorderColor",!0)),p=d.color;if(v)if(te(v)){var m=r.ecModel.get("useUTC"),g=K(i)?i[0]:i,y=g&&g.axisType&&g.axisType.indexOf("time")>=0;h=v,y&&(h=xs(g.axisValue,h,m)),h=Sp(h,i,!0)}else if(fe(v)){var _=Ae(function(S,b){S===this._ticket&&(c.setContent(b,f,r,p,l),this._updatePosition(r,l,o,s,c,i,u))},this);this._ticket=a,h=v(i,a,_)}else h=v;c.setContent(h,f,r,p,l),c.show(r,p),this._updatePosition(r,l,o,s,c,i,u)}},e.prototype._getNearestPoint=function(r,n,i,a,o){if(i==="axis"||K(n))return{color:a||o};if(!K(n))return{color:a||n.color||n.borderColor}},e.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(),v=r.get("align"),h=r.get("verticalAlign"),d=l&&l.getBoundingRect().clone();if(l&&d.applyTransform(l.transform),fe(n)&&(n=n([i,a],s,o.el,d,{viewSize:[u,f],contentSize:c.slice()})),K(n))i=He(n[0],u),a=He(n[1],f);else if(ie(n)){var p=n;p.width=c[0],p.height=c[1];var m=sn(p,{width:u,height:f});i=m.x,a=m.y,v=null,h=null}else if(te(n)&&l){var g=e3(n,d,c,r.get("borderWidth"));i=g[0],a=g[1]}else{var g=Qz(i,a,o,u,f,v?null:20,h?null:20);i=g[0],a=g[1]}if(v&&(i-=B_(v)?c[0]/2:v==="right"?c[0]:0),h&&(a-=B_(h)?c[1]/2:h==="bottom"?c[1]:0),Xx(r)){var g=Jz(i,a,o,u,f);i=g[0],a=g[1]}o.moveTo(i,a)},e.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(v,h){var d=c[h]||{},p=v.seriesDataIndices||[],m=d.seriesDataIndices||[];o=o&&v.value===d.value&&v.axisType===d.axisType&&v.axisId===d.axisId&&p.length===m.length,o&&R(p,function(g,y){var _=m[y];o=o&&g.seriesIndex===_.seriesIndex&&g.dataIndex===_.dataIndex}),a&&R(v.seriesDataIndices,function(g){var y=g.seriesIndex,_=n[y],S=a[y];_&&S&&S.data!==_.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},e.prototype._hide=function(r){this._lastDataByCoordSys=null,this._cbParamsList=null,r({type:"hideTip",from:this.uid})},e.prototype.dispose=function(r,n){ve.node||!n.getDom()||(zv(this,"_updatePosition"),this._tooltipContent.dispose(),od("itemTooltip",n),this._tooltipContent=null,this._tooltipModel=null,this._lastDataByCoordSys=null,this._cbParamsList=null)},e.type="tooltip",e})(Ct);function So(t,e,r){var n=e.ecModel,i;r?(i=new Le(r,n,n),i=new Le(e.option,i,n)):i=e;for(var a=t.length-1;a>=0;a--){var o=t[a];o&&(o instanceof Le&&(o=o.get("tooltip",!0)),te(o)&&(o={formatter:o}),o&&(i=new Le(o,i,n)))}return i}function N_(t,e){return t.dispatchAction||Ae(e.dispatchAction,e)}function Qz(t,e,r,n,i,a,o){var s=r.getSize(),l=s[0],u=s[1];return a!=null&&(t+l+a+2>n?t-=l+a:t+=a),o!=null&&(e+u+o>i?e-=u+o:e+=o),[t,e]}function Jz(t,e,r,n,i){var a=r.getSize(),o=a[0],s=a[1];return t=Math.min(t+o,n)-o,e=Math.min(e+s,i)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function e3(t,e,r,n){var i=r[0],a=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=e.width,f=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+f/2-a/2;break;case"top":s=e.x+u/2-i/2,l=e.y-a-o;break;case"bottom":s=e.x+u/2-i/2,l=e.y+f+o;break;case"left":s=e.x-i-o,l=e.y+f/2-a/2;break;case"right":s=e.x+u+o,l=e.y+f/2-a/2}return[s,l]}function B_(t){return t==="center"||t==="middle"}function t3(t,e,r){var n=Vd(t).queryOptionMap,i=n.keys()[0];if(!(!i||i==="series")){var a=_s(e,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=me(u).tooltipConfig;if(f&&f.name===t.name)return l=u,!0}),l)return{componentMainType:i,componentIndex:o.componentIndex,el:l}}}}function LH(t){zr($x),t.registerComponentModel(Fz),t.registerComponentView(Kz),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},at),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},at)}var r3=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.type=e.type,r.layoutMode={type:"box",ignoreSize:!0},r}return e.type="title",e.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:"center",top:ae.size.m,backgroundColor:ae.color.transparent,borderColor:ae.color.primary,borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:ae.color.primary},subtextStyle:{fontSize:12,color:ae.color.quaternary}},e})(Se),n3=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.type=e.type,r}return e.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=ne(r.get("textBaseline"),r.get("textVerticalAlign")),f=new Ke({style:on(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),c=f.getBoundingRect(),v=r.get("subtext"),h=new Ke({style:on(s,{text:v,fill:s.getTextColor(),y:c.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),d=r.get("link"),p=r.get("sublink"),m=r.get("triggerEvent",!0);f.silent=!d&&!m,h.silent=!p&&!m,d&&f.on("click",function(){A0(d,"_"+r.get("target"))}),p&&h.on("click",function(){A0(p,"_"+r.get("subtarget"))}),me(f).eventData=me(h).eventData=m?{componentType:"title",componentIndex:r.componentIndex}:null,a.add(f),v&&a.add(h);var g=a.getBoundingRect(),y=r.getBoxLayoutParams();y.width=g.width,y.height=g.height;var _=Ff(r,i),S=sn(y,_.refContainer,r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?S.x+=S.width:l==="center"&&(S.x+=S.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?S.y+=S.height:u==="middle"&&(S.y+=S.height/2),u=u||"top"),a.x=S.x,a.y=S.y,a.markRedraw();var b={align:l,verticalAlign:u};f.setStyle(b),h.setStyle(b),g=a.getBoundingRect();var w=S.margin,T=r.getItemStyle(["color","opacity"]);T.fill=r.get("backgroundColor");var C=new Ge({shape:{x:g.x-w[3],y:g.y-w[0],width:g.width+w[1]+w[3],height:g.height+w[0]+w[2],r:r.get("borderRadius")},style:T,subPixelOptimize:!0,silent:!0});a.add(C)}},e.type="title",e})(Ct);function OH(t){t.registerComponentModel(r3),t.registerComponentView(n3)}function Kx(t,e){var r=t.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var i=Ha(t,e,r[0]);return i!=null?i+"":null}else if(n){for(var a=[],o=0;o=0&&n.push(e[a])}return n.join(" ")}var eg=(function(t){q(e,t);function e(r,n,i,a){var o=t.call(this)||this;return o.updateData(r,n,i,a),o}return e.prototype._createSymbol=function(r,n,i,a,o,s){this.removeAll();var l=zi(r,-1,-1,2,2,null,s);l.attr({z2:ne(o,100),culling:!0,scaleX:a[0]/2,scaleY:a[1]/2}),l.drift=a3,this._symbolType=r,this.add(l)},e.prototype.stopSymbolAnimation=function(r){this.childAt(0).stopAnimation(null,r)},e.prototype.getSymbolType=function(){return this._symbolType},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){xu(this.childAt(0))},e.prototype.downplay=function(){Cu(this.childAt(0))},e.prototype.setZ=function(r,n){var i=this.childAt(0);i.zlevel=r,i.z=n},e.prototype.setDraggable=function(r,n){var i=this.childAt(0);i.draggable=r,i.cursor=!n&&r?"move":i.cursor},e.prototype.updateData=function(r,n,i,a){this.silent=!1;var o=r.getItemVisual(n,"symbol")||"circle",s=r.hostModel,l=e.getSymbolSize(r,n),u=e.getSymbolZ2(r,n),f=o!==this._symbolType,c=a&&a.disableAnimation;if(f){var v=r.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,r,n,l,u,v)}else{var h=this.childAt(0);h.silent=!1;var d={scaleX:l[0]/2,scaleY:l[1]/2};c?h.attr(d):Lt(h,d,s,n),Hb(h)}if(this._updateCommon(r,n,l,i,a),f){var h=this.childAt(0);if(!c){var d={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:h.style.opacity}};h.scaleX=h.scaleY=0,h.style.opacity=0,er(h,d,s,n)}}c&&this.childAt(0).stopAnimation("leave")},e.prototype._updateCommon=function(r,n,i,a,o){var s=this.childAt(0),l=r.hostModel,u,f,c,v,h,d,p,m,g;if(a&&(u=a.emphasisItemStyle,f=a.blurItemStyle,c=a.selectItemStyle,v=a.focus,h=a.blurScope,p=a.labelStatesModels,m=a.hoverScale,g=a.cursorStyle,d=a.emphasisDisabled),!a||r.hasItemOption){var y=a&&a.itemModel?a.itemModel:r.getItemModel(n),_=y.getModel("emphasis");u=_.getModel("itemStyle").getItemStyle(),c=y.getModel(["select","itemStyle"]).getItemStyle(),f=y.getModel(["blur","itemStyle"]).getItemStyle(),v=_.get("focus"),h=_.get("blurScope"),d=_.get("disabled"),p=Of(y),m=_.getShallow("scale"),g=y.getShallow("cursor")}var S=r.getItemVisual(n,"symbolRotate");s.attr("rotation",(S||0)*Math.PI/180||0);var b=tT(r.getItemVisual(n,"symbolOffset"),i);b&&(s.x=b[0],s.y=b[1]),g&&s.attr("cursor",g);var w=r.getItemVisual(n,"style"),T=w.fill;if(s instanceof un){var C=s.style;s.useStyle(G({image:C.image,x:C.x,y:C.y,width:C.width,height:C.height},w))}else s.__isEmptyBrush?s.useStyle(G({},w)):s.useStyle(w),s.style.decal=null,s.setColor(T,o&&o.symbolInnerColor),s.style.strokeNoScale=!0;var x=r.getItemVisual(n,"liftZ"),A=this._z2;x!=null?A==null&&(this._z2=s.z2,s.z2+=x):A!=null&&(s.z2=A,this._z2=null);var D=o&&o.useNameLabel;Lf(s,p,{labelFetcher:l,labelDataIndex:n,defaultText:P,inheritColor:T,defaultOpacity:w.opacity});function P(k){return D?r.getName(k):Kx(r,k)}this._sizeX=i[0]/2,this._sizeY=i[1]/2;var M=s.ensureState("emphasis");M.style=u,s.ensureState("select").style=c,s.ensureState("blur").style=f;var I=m==null||m===!0?Math.max(1.1,3/this._sizeY):isFinite(m)&&m>0?+m:1;M.scaleX=this._sizeX*I,M.scaleY=this._sizeY*I,this.setSymbolScale(1),Du(this,v,h,d)},e.prototype.setSymbolScale=function(r){this.scaleX=this.scaleY=r},e.prototype.fadeOut=function(r,n,i){var a=this.childAt(0),o=me(this).dataIndex,s=i&&i.animation;if(this.silent=a.silent=!0,i&&i.fadeLabel){var l=a.getTextContent();l&&Eu(l,{style:{opacity:0}},n,{dataIndex:o,removeOpt:s,cb:function(){a.removeTextContent()}})}else a.removeTextContent();Eu(a,{style:{opacity:0},scaleX:0,scaleY:0},n,{dataIndex:o,cb:r,removeOpt:s})},e.getSymbolSize=function(r,n){return Yk(r.getItemVisual(n,"symbolSize"))},e.getSymbolZ2=function(r,n){return r.getItemVisual(n,"z2")},e})(rt);function a3(t,e){this.parent.drift(t,e)}function bl(t,e,r,n){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(n&&n.isIgnore&&n.isIgnore(r))&&!(n&&n.clipShape&&!n.clipShape.contain(e[0],e[1]))&&t.getItemVisual(r,"symbol")!=="none"}function F_(t){return t!=null&&!ie(t)&&(t={isIgnore:t}),t||{}}function z_(t){var e=t.hostModel,r=e.getModel("emphasis");return{emphasisItemStyle:r.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:r.get("focus"),blurScope:r.get("blurScope"),emphasisDisabled:r.get("disabled"),hoverScale:r.get("scale"),labelStatesModels:Of(e),cursorStyle:e.get("cursor")}}function H_(t,e,r,n,i,a,o){var s=new t(e,r,n,i);return s.setPosition(a),e.setItemGraphicEl(r,s),o.add(s),s}var o3=(function(){function t(e){this.group=new rt,this._SymbolCtor=e||eg}return t.prototype.updateData=function(e,r){this._progressiveEls=null,r=F_(r);var n=this.group,i=e.hostModel,a=this._data,o=this._SymbolCtor,s=r.disableAnimation,l=this._seriesScope=z_(e),u={disableAnimation:s},f=r.getSymbolPoint||function(c){return e.getItemLayout(c)};a||n.removeAll(),e.diff(a).add(function(c){var v=f(c);bl(e,v,c,r)&&H_(o,e,c,l,u,v,n)}).update(function(c,v){var h=a.getItemGraphicEl(v),d=f(c);if(!bl(e,d,c,r)){n.remove(h);return}var p=e.getItemVisual(c,"symbol")||"circle",m=h&&h.getSymbolType&&h.getSymbolType();if(!h||m&&m!==p)n.remove(h),h=new o(e,c,l,u),h.setPosition(d);else{h.updateData(e,c,l,u);var g={x:d[0],y:d[1]};s?h.attr(g):Lt(h,g,i)}n.add(h),e.setItemGraphicEl(c,h)}).remove(function(c){var v=a.getItemGraphicEl(c);v&&v.fadeOut(function(){n.remove(v)},i)}).execute(),this._getSymbolPoint=f,this._data=e},t.prototype.updateLayout=function(e){var r=this._data;if(r)for(var n=this,i=r.getStore(),a=0,o=i.count();a=0},e.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",bottom:ae.size.m,align:"auto",backgroundColor:ae.color.transparent,borderColor:ae.color.border,borderRadius:0,borderWidth:0,padding:5,itemGap:8,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:ae.color.disabled,inactiveBorderColor:ae.color.disabled,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:ae.color.disabled,inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:ae.color.secondary},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:ae.color.tertiary,borderWidth:1,borderColor:ae.color.border},emphasis:{selectorLabel:{show:!0,color:ae.color.quaternary}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1},triggerEvent:!1},e})(Se),da=Ue,ld=R,wl=rt,Qx=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.type=e.type,r.newlineDisabled=!1,r}return e.prototype.init=function(){this.group.add(this._contentGroup=new wl),this.group.add(this._selectorGroup=new wl),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.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=Ff(r,i).refContainer,c=r.getBoxLayoutParams(),v=r.get("padding"),h=sn(c,f,v),d=this.layoutInner(r,o,h,a,l,u),p=sn(Te({width:d.width,height:d.height},c),f,v);this.group.x=p.x-d.x,this.group.y=p.y-d.y,this.group.markRedraw(),this.group.add(this._backgroundEl=Bz(d,r))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(r,n,i,a,o,s,l){var u=this.getContentGroup(),f=ce(),c=n.get("selectedMode"),v=n.get("triggerEvent"),h=[];i.eachRawSeries(function(d){!d.get("legendHoverLink")&&h.push(d.id)}),ld(n.getData(),function(d,p){var m=this,g=d.get("name");if(!this.newlineDisabled&&(g===""||g===` +`)){var y=new wl;y.newline=!0,u.add(y);return}var _=i.getSeriesByName(g)[0];if(!f.get(g))if(_){var S=_.getData(),b=S.getVisual("legendLineStyle")||{},w=S.getVisual("legendIcon"),T=S.getVisual("style"),C=this._createItem(_,g,p,d,n,r,b,T,w,c,a);C.on("click",da(U_,g,null,a,h)).on("mouseover",da(ud,_.name,null,a,h)).on("mouseout",da(fd,_.name,null,a,h)),i.ssr&&C.eachChild(function(x){var A=me(x);A.seriesIndex=_.seriesIndex,A.dataIndex=p,A.ssrType="legend"}),v&&C.eachChild(function(x){m.packEventData(x,n,_,p,g)}),f.set(g,!0)}else i.eachRawSeries(function(x){var A=this;if(!f.get(g)&&x.legendVisualProvider){var D=x.legendVisualProvider;if(!D.containName(g))return;var P=D.indexOfName(g),M=D.getItemVisual(P,"style"),I=D.getItemVisual(P,"legendIcon"),k=Ft(M.fill);k&&k[3]===0&&(k[3]=.2,M=G(G({},M),{fill:Un(k,"rgba")}));var O=this._createItem(x,g,p,d,n,r,{},M,I,c,a);O.on("click",da(U_,null,g,a,h)).on("mouseover",da(ud,null,g,a,h)).on("mouseout",da(fd,null,g,a,h)),i.ssr&&O.eachChild(function(N){var U=me(N);U.seriesIndex=x.seriesIndex,U.dataIndex=p,U.ssrType="legend"}),v&&O.eachChild(function(N){A.packEventData(N,n,x,p,g)}),f.set(g,!0)}},this)},this),o&&this._createSelector(o,n,a,s,l)},e.prototype.packEventData=function(r,n,i,a,o){var s={componentType:"legend",componentIndex:n.componentIndex,dataIndex:a,value:o,seriesIndex:i.seriesIndex};me(r).eventData=s},e.prototype._createSelector=function(r,n,i,a,o){var s=this.getSelectorGroup();ld(r,function(u){var f=u.type,c=new Ke({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){i.dispatchAction({type:f==="all"?"legendAllSelect":"legendInverseSelect",legendId:n.id})}});s.add(c);var v=n.getModel("selectorLabel"),h=n.getModel(["emphasis","selectorLabel"]);Lf(c,{normal:v,emphasis:h},{defaultText:u.title}),Au(c)})},e.prototype._createItem=function(r,n,i,a,o,s,l,u,f,c,v){var h=r.visualDrawType,d=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 S=u3(f,a,l,u,h,m,v),b=new wl,w=a.getModel("textStyle");if(fe(r.getLegendIcon)&&(!_||_==="inherit"))b.add(r.getLegendIcon({itemWidth:d,itemHeight:p,icon:f,iconRotate:g,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:y}));else{var T=_==="inherit"&&r.getData().getVisual("symbol")?g==="inherit"?r.getData().getVisual("symbolRotate"):g:0;b.add(f3({itemWidth:d,itemHeight:p,icon:f,iconRotate:T,itemStyle:S.itemStyle,symbolKeepAspect:y}))}var C=s==="left"?d+5:-5,x=s,A=o.get("formatter"),D=n;te(A)&&A?D=A.replace("{name}",n!=null?n:""):fe(A)&&(D=A(n));var P=m?w.getTextColor():a.get("inactiveColor");b.add(new Ke({style:on(w,{text:D,x:C,y:p/2,fill:P,align:x,verticalAlign:"middle"},{inheritColor:P})}));var M=new Ge({shape:b.getBoundingRect(),style:{fill:"transparent"}}),I=a.getModel("tooltip");return I.get("show")&&Pf({el:M,componentModel:o,itemName:n,itemTooltipOption:I.option}),b.add(M),b.eachChild(function(k){k.silent=!0}),M.silent=!c,this.getContentGroup().add(b),Au(b),b.__legendDataIndex=i,b},e.prototype.layoutInner=function(r,n,i,a,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();zo(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){zo("horizontal",u,r.get("selectorItemGap",!0));var v=u.getBoundingRect(),h=[-v.x,-v.y],d=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"?h[p]+=f[m]+d:c[p]+=v[m]+d,h[1-p]+=f[g]/2-v[g]/2,u.x=h[0],u.y=h[1],l.x=c[0],l.y=c[1];var _={x:0,y:0};return _[m]=f[m]+d+v[m],_[g]=Math.max(f[g],v[g]),_[y]=Math.min(0,v[y]+h[1-p]),_}else return l.x=c[0],l.y=c[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e})(Ct);function u3(t,e,r,n,i,a,o){function s(m,g){m.lineWidth==="auto"&&(m.lineWidth=g.lineWidth>0?2:0),ld(m,function(y,_){m[_]==="inherit"&&(m[_]=g[_])})}var l=e.getModel("itemStyle"),u=l.getItemStyle(),f=t.lastIndexOf("empty",0)===0?"fill":"stroke",c=l.getShallow("decal");u.decal=!c||c==="inherit"?n.decal:Wv(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 v=e.getModel("lineStyle"),h=v.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 d=e.get("inactiveBorderWidth"),p=u[f];u.lineWidth=d==="auto"?n.lineWidth>0&&p?2:0:u.lineWidth,u.fill=e.get("inactiveColor"),u.stroke=e.get("inactiveBorderColor"),h.stroke=v.get("inactiveColor"),h.lineWidth=v.get("inactiveWidth")}return{itemStyle:u,lineStyle:h}}function f3(t){var e=t.icon||"roundRect",r=zi(e,0,0,t.itemWidth,t.itemHeight,t.itemStyle.fill,t.symbolKeepAspect);return r.setStyle(t.itemStyle),r.rotation=(t.iconRotate||0)*Math.PI/180,r.setOrigin([t.itemWidth/2,t.itemHeight/2]),e.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill=ae.color.neutral00,r.style.lineWidth=2),r}function U_(t,e,r,n){fd(t,e,r,n),r.dispatchAction({type:"legendToggleSelect",name:t!=null?t:e}),ud(t,e,r,n)}function ud(t,e,r,n){r.usingTHL()||r.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:n})}function fd(t,e,r,n){r.usingTHL()||r.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:n})}function bo(t,e,r){var n=t==="allSelect"||t==="inverseSelect",i={},a=[];r.eachComponent({mainType:"legend",query:e},function(s){n?s[t]():s[t](e.name),V_(s,i),a.push(s.componentIndex)});var o={};return r.eachComponent("legend",function(s){R(i,function(l,u){s[l?"select":"unSelect"](u)}),V_(s,o)}),n?{selected:o,legendIndex:a}:{name:e.name,selected:o}}function V_(t,e){var r=e||{};return R(t.getData(),function(n){var i=n.get("name");if(!(i===` +`||i==="")){var a=t.isSelected(i);Mt(r,i)?r[i]=r[i]&&a:r[i]=a}}),r}function c3(t){t.registerAction("legendToggleSelect","legendselectchanged",Ue(bo,"toggleSelected")),t.registerAction("legendAllSelect","legendselectall",Ue(bo,"allSelect")),t.registerAction("legendInverseSelect","legendinverseselect",Ue(bo,"inverseSelect")),t.registerAction("legendSelect","legendselected",Ue(bo,"select")),t.registerAction("legendUnSelect","legendunselected",Ue(bo,"unSelect"))}var h3=Wd(v3);function v3(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(r){for(var n=0;ni[o],m=[-h.x,-h.y];n||(m[a]=f[u]);var g=[0,0],y=[-d.x,-d.y],_=ne(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(p){var S=r.get("pageButtonPosition",!0);S==="end"?y[a]+=i[o]-d[o]:g[a]+=d[o]+_}y[1-a]+=h[s]/2-d[s]/2,f.setPosition(m),c.setPosition(g),v.setPosition(y);var b={x:0,y:0};if(b[o]=p?i[o]:h[o],b[s]=Math.max(h[s],d[s]),b[l]=Math.min(0,d[l]+y[1-a]),c.__rectSize=i[o],p){var w={x:0,y:0};w[o]=Math.max(i[o]-d[o]-_,0),w[s]=b[s],c.setClipPath(new Ge({shape:w})),c.__rectSize=w[o]}else v.eachChild(function(C){C.attr({invisible:!0,silent:!0})});var T=this._getPageInfo(r);return T.pageIndex!=null&&Lt(f,{x:T.contentPosition[0],y:T.contentPosition[1]},p?r:null),this._updatePageInfoView(r,T),b},e.prototype._pageGo=function(r,n,i){var a=this._getPageInfo(n)[r];a!=null&&i.dispatchAction({type:"legendScroll",scrollDataIndex:a,legendId:n.id})},e.prototype._updatePageInfoView=function(r,n){var i=this._controllerGroup;R(["pagePrev","pageNext"],function(f){var c=f+"DataIndex",v=n[c]!=null,h=i.childOfName(f);h&&(h.setStyle("fill",v?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),h.cursor=v?"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}))},e.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),i=this.getContentGroup(),a=this._containerGroup.__rectSize,o=r.getOrient().index,s=Mh[o],l=Ph[o],u=this._findTargetItemIndex(n),f=i.children(),c=f[u],v=f.length,h=v?1:0,d={contentPosition:[i.x,i.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return d;var p=S(c);d.contentPosition[o]=-p.s;for(var m=u+1,g=p,y=p,_=null;m<=v;++m)_=S(f[m]),(!_&&y.e>g.s+a||_&&!b(_,g.s))&&(y.i>g.i?g=y:g=_,g&&(d.pageNextDataIndex==null&&(d.pageNextDataIndex=g.i),++d.pageCount)),y=_;for(var m=u-1,g=p,y=p,_=null;m>=-1;--m)_=S(f[m]),(!_||!b(y,_.s))&&g.i=T&&w.s<=T+a}},e.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!=null?n:a},e.type="legend.scroll",e})(Qx);function g3(t){t.registerAction("legendScroll","legendscroll",function(e,r){var n=e.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:e},function(i){i.setScrollDataIndex(n)})})}function m3(t){zr(Jx),t.registerComponentModel(d3),t.registerComponentView(p3),g3(t)}function kH(t){zr(Jx),zr(m3)}var y3=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.type=e.type,r.hasSymbolVisual=!0,r}return e.prototype.getInitialData=function(r){return LT(null,this,{useEncodeDefaulter:!0})},e.prototype.getLegendIcon=function(r){var n=new rt,i=zi("line",0,r.itemHeight/2,r.itemWidth,0,r.lineStyle.stroke,!1);n.add(i),i.setStyle(r.lineStyle);var a=this.getData().getVisual("symbol"),o=this.getData().getVisual("symbolRotate"),s=a==="none"?"circle":a,l=r.itemHeight*.8,u=zi(s,(r.itemWidth-l)/2,(r.itemHeight-l)/2,l,l,r.itemStyle.fill);n.add(u),u.setStyle(r.itemStyle);var f=r.iconRotate==="inherit"?o:r.iconRotate||0;return u.rotation=f*Math.PI/180,u.setOrigin([r.itemWidth/2,r.itemHeight/2]),s.indexOf("empty")>-1&&(u.style.stroke=u.style.fill,u.style.fill=ae.color.neutral00,u.style.lineWidth=2),n},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:6,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1,triggerEvent:!1},e})(nr);function eC(t,e,r){var n=t.getBaseAxis(),i=t.getOtherAxis(n),a=_3(i,r),o=n.dim,s=i.dim,l=e.mapDimension(s),u=e.mapDimension(o),f=s==="x"||s==="radius"?1:0,c=oe(t.dimensions,function(d){return e.mapDimension(d)}),v=!1,h=e.getCalculationInfo("stackResultDimension");return Ua(e,c[0])&&(v=!0,c[0]=h),Ua(e,c[1])&&(v=!0,c[1]=h),{dataDimsForPoint:c,valueStart:a,valueAxisDim:s,baseAxisDim:o,stacked:!!v,valueDim:l,baseDim:u,baseDataOffset:f,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function _3(t,e){var r=0,n=t.scale.getExtent();return e==="start"?r=n[0]:e==="end"?r=n[1]:Re(e)&&!isNaN(e)?r=e:n[0]>0?r=n[0]:n[1]<0&&(r=n[1]),r}function tC(t,e,r,n){var i=NaN;t.stacked&&(i=r.get(r.getCalculationInfo("stackedOverDimension"),n)),isNaN(i)&&(i=t.valueStart);var a=t.baseDataOffset,o=[];return o[a]=r.get(t.baseDim,n),o[1-a]=i,e.dataToPoint(o)}function tr(t,e){return!isFinite(t)||!isFinite(e)}function S3(t,e){var r=[];return e.diff(t).add(function(n){r.push({cmd:"+",idx:n})}).update(function(n,i){r.push({cmd:"=",idx:i,idx1:n})}).remove(function(n){r.push({cmd:"-",idx:n})}).execute(),r}function b3(t,e,r,n,i,a,o,s){for(var l=S3(t,e),u=[],f=[],c=[],v=[],h=[],d=[],p=[],m=eC(i,e,o),g=t.getLayout("points")||[],y=e.getLayout("points")||[],_=0;_=i||p<0)break;if(tr(g,y)){if(l){p+=a;continue}break}if(p===r)t[a>0?"moveTo":"lineTo"](g,y),c=g,v=y;else{var _=g-u,S=y-f;if(_*_+S*S<.5){p+=a;continue}if(o>0){for(var b=p+a,w=e[b*2],T=e[b*2+1];w===g&&T===y&&m=n||tr(w,T))h=g,d=y;else{A=w-u,D=T-f;var I=g-u,k=w-g,O=y-f,N=T-y,U=void 0,W=void 0;if(s==="x"){U=Math.abs(I),W=Math.abs(k);var X=A>0?1:-1;h=g-X*U*o,d=y,P=g+X*W*o,M=y}else if(s==="y"){U=Math.abs(O),W=Math.abs(N);var Q=D>0?1:-1;h=g,d=y-Q*U*o,P=g,M=y+Q*W*o}else U=Math.sqrt(I*I+O*O),W=Math.sqrt(k*k+N*N),x=W/(W+U),h=g-A*o*(1-x),d=y-D*o*(1-x),P=g+A*o*x,M=y+D*o*x,P=gn(P,mn(w,g)),M=gn(M,mn(T,y)),P=mn(P,gn(w,g)),M=mn(M,gn(T,y)),A=P-g,D=M-y,h=g-A*U/W,d=y-D*U/W,h=gn(h,mn(u,g)),d=gn(d,mn(f,y)),h=mn(h,gn(u,g)),d=mn(d,gn(f,y)),A=g-h,D=y-d,P=g+A*W/U,M=y+D*W/U}t.bezierCurveTo(c,v,h,d,g,y),c=P,v=M}else t.lineTo(g,y)}u=g,f=y,p+=a}return m}var rC=(function(){function t(){this.smooth=0,this.smoothConstraint=!0}return t})(),w3=(function(t){q(e,t);function e(r){var n=t.call(this,r)||this;return n.type="ec-polyline",n}return e.prototype.getDefaultStyle=function(){return{stroke:ae.color.neutral99,fill:null}},e.prototype.getDefaultShape=function(){return new rC},e.prototype.buildPath=function(r,n){var i=n.points,a=0,o=i.length/2;if(n.connectNulls){for(;o>0&&tr(i[o*2-2],i[o*2-1]);o--);for(;a=0){var S=u?(d-l)*_+l:(h-s)*_+s;return u?[r,S]:[S,r]}s=h,l=d;break;case o.C:h=a[c++],d=a[c++],p=a[c++],m=a[c++],g=a[c++],y=a[c++];var b=u?hu(s,h,p,g,r,f):hu(l,d,m,y,r,f);if(b>0)for(var w=0;w=0){var S=u?qe(l,d,m,y,T):qe(s,h,p,g,T);return u?[r,S]:[S,r]}}s=g,l=y;break}}},e})(Me),T3=(function(t){q(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e})(rC),x3=(function(t){q(e,t);function e(r){var n=t.call(this,r)||this;return n.type="ec-polygon",n}return e.prototype.getDefaultShape=function(){return new T3},e.prototype.buildPath=function(r,n){var i=n.points,a=n.stackedOnPoints,o=0,s=i.length/2,l=n.smoothMonotone;if(n.connectNulls){for(;s>0&&tr(i[s*2-2],i[s*2-1]);s--);for(;oe){a?r.push(o(a,l,e)):i&&r.push(o(i,l,0),o(i,l,e));break}else i&&(r.push(o(i,l,0)),i=null),r.push(l),a=l}return r}function R3(t,e,r){var n=t.getVisual("visualMeta");if(!(!n||!n.length||!t.count())&&e.type==="cartesian2d"){for(var i,a,o=n.length-1;o>=0;o--){var s=t.getDimensionInfo(n[o].dimension);if(i=s&&s.coordDim,i==="x"||i==="y"){a=n[o];break}}if(a){var l=e.getAxis(i),u=oe(a.stops,function(_){return{coord:l.toGlobalCoord(l.dataToCoord(_.value)),color:_.color}}),f=u.length,c=a.outerColors.slice();f&&u[0].coord>u[f-1].coord&&(u.reverse(),c.reverse());var v=E3(u,i==="x"?r.getWidth():r.getHeight()),h=v.length;if(!h&&f)return u[0].coord<0?c[1]?c[1]:u[f-1].color:c[0]?c[0]:u[0].color;var d=10,p=v[0].coord-d,m=v[h-1].coord+d,g=m-p;if(g<.001)return"transparent";R(v,function(_){_.offset=(_.coord-p)/g}),v.push({offset:h?v[h-1].offset:.5,color:c[1]||"transparent"}),v.unshift({offset:h?v[0].offset:.5,color:c[0]||"transparent"});var y=new Qd(0,0,0,0,v,!0);return y[i]=p,y[i+"2"]=m,y}}}function M3(t,e,r){var n=t.get("showAllSymbol"),i=n==="auto";if(!(n&&!i)){var a=r.getAxesByScale("ordinal")[0];if(a&&!(i&&P3(a,e))){var o=e.mapDimension(a.dim),s={};return R(a.getViewLabels(),function(l){l.tick.offInterval||(s[Es(a.scale,l.tick)]=1)}),function(l){return!s.hasOwnProperty(e.get(o,l))}}}}function P3(t,e){var r=t.getExtent(),n=Math.abs(r[1]-r[0])/t.scale.count();isNaN(n)&&(n=0);for(var i=e.count(),a=Math.max(1,Math.round(i/5)),o=0;on)return!1;return!0}function I3(t){for(var e=t.length/2;e>0&&tr(t[e*2-2],t[e*2-1]);e--);return e-1}function j_(t,e){return[t[e*2],t[e*2+1]]}function L3(t,e,r){for(var n=t.length/2,i=r==="x"?0:1,a,o,s=0,l=-1,u=0;u=e||a>=e&&o<=e){l=u;break}s=u,a=o}return{range:[s,l],t:(e-a)/(o-a)}}function nC(t){if(t.get(["endLabel","show"]))return!0;for(var e=0;e0&&r.get(["emphasis","lineStyle","width"])==="bolder"){var W=d.getState("emphasis").style;W.lineWidth=+d.style.lineWidth+1}me(d).seriesIndex=r.seriesIndex,Du(d,O,N,U);var X=q_(r.get("smooth")),Q=r.get("smoothMonotone");if(d.setShape({smooth:X,smoothMonotone:Q,connectNulls:T}),p){var J=s.getCalculationInfo("stackedOnSeries"),j=0;p.useStyle(Te(u.getAreaStyle(),{fill:P,opacity:.7,lineJoin:"bevel",decal:s.getVisual("style").decal})),J&&(j=q_(J.get("smooth"))),p.setShape({smooth:X,stackedOnSmooth:j,smoothMonotone:Q,connectNulls:T}),Av(p,r,"areaStyle"),me(p).seriesIndex=r.seriesIndex,Du(p,O,N,U)}var z=this._changePolyState;s.eachItemGraphicEl(function(B){B&&(B.onHoverStateChange=z)}),this._polyline.onHoverStateChange=z,this._data=s,this._coordSys=a,this._stackedOnPoints=b,this._points=f,this._step=A,this._valueOrigin=_;var re=r.get("triggerEvent"),se=r.get("triggerLineEvent"),L=se===!0||re===!0||re==="line",Y=se===!0||re===!0||re==="area";this.packEventData(r,d,L),p&&this.packEventData(r,p,Y)},e.prototype.packEventData=function(r,n,i){me(n).eventData=i?{componentType:"series",componentSubType:"line",componentIndex:r.componentIndex,seriesIndex:r.seriesIndex,seriesName:r.name,seriesType:"line",selfType:n===this._polygon?"area":"line"}:null},e.prototype.highlight=function(r,n,i,a){var o=r.getData(),s=Bi(o,a);if(this._changePolyState("emphasis"),!(s instanceof Array)&&s!=null&&s>=0){var l=o.getLayout("points"),u=o.getItemGraphicEl(s);if(!u){var f=l[s*2],c=l[s*2+1];if(tr(f,c)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(f,c))return;var v=r.get("zlevel")||0,h=r.get("z")||0;u=new eg(o,s),u.x=f,u.y=c,u.setZ(v,h);var d=u.getSymbolPath().getTextContent();d&&(d.zlevel=v,d.z=h,d.z2=this._polyline.z2+1),u.__temp=!0,o.setItemGraphicEl(s,u),u.stopSymbolAnimation(!0),this.group.add(u)}u.highlight()}else Pt.prototype.highlight.call(this,r,n,i,a)},e.prototype.downplay=function(r,n,i,a){var o=r.getData(),s=Bi(o,a);if(this._changePolyState("normal"),s!=null&&s>=0){var l=o.getItemGraphicEl(s);l&&(l.__temp?(o.setItemGraphicEl(s,null),this.group.remove(l)):l.downplay())}else Pt.prototype.downplay.call(this,r,n,i,a)},e.prototype._changePolyState=function(r){var n=this._polygon;n0(this._polyline,r),n&&n0(n,r)},e.prototype._newPolyline=function(r){var n=this._polyline;return n&&this._lineGroup.remove(n),n=new w3({shape:{points:r},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(n),this._polyline=n,n},e.prototype._newPolygon=function(r,n){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new x3({shape:{points:r,stackedOnPoints:n},segmentIgnoreThreshold:2}),this._lineGroup.add(i),this._polygon=i,i},e.prototype._initSymbolLabelAnimation=function(r,n,i){var a,o,s=n.getBaseAxis(),l=s.inverse;n.type==="cartesian2d"?(a=s.isHorizontal(),o=!1):n.type==="polar"&&(a=s.dim==="angle",o=!0);var u=r.hostModel,f=u.get("animationDuration");fe(f)&&(f=f(null));var c=u.get("animationDelay")||0,v=fe(c)?c(null):c;r.eachItemGraphicEl(function(h,d){var p=h;if(p){var m=[h.x,h.y],g=void 0,y=void 0,_=void 0;if(i)if(o){var S=i,b=n.pointToCoord(m);a?(g=S.startAngle,y=S.endAngle,_=-b[1]/180*Math.PI):(g=S.r0,y=S.r,_=b[0])}else{var w=i;a?(g=w.x,y=w.x+w.width,_=h.x):(g=w.y+w.height,y=w.y,_=h.y)}var T=y===g?0:(_-g)/(y-g);l&&(T=1-T);var C=fe(c)?c(d):f*T+v,x=p.getSymbolPath(),A=x.getTextContent();p.attr({scaleX:0,scaleY:0}),p.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:C}),A&&A.animateFrom({style:{opacity:0}},{duration:300,delay:C}),x.disableLabelAnimation=!0}})},e.prototype._initOrUpdateEndLabel=function(r,n,i){var a=r.getModel("endLabel");if(nC(r)){var o=r.getData(),s=this._polyline,l=o.getLayout("points");if(!l){s.removeTextContent(),this._endLabel=null;return}var u=this._endLabel;u||(u=this._endLabel=new Ke({z2:200}),u.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var f=I3(l);f>=0&&(Lf(s,Of(r,"endLabel"),{inheritColor:i,labelFetcher:r,labelDataIndex:f,defaultText:function(c,v,h){return h!=null?i3(o,h):Kx(o,c)},enableTextSetter:!0},O3(a,n)),s.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(r,n,i,a,o,s,l){var u=this._endLabel,f=this._polyline;if(u){r<1&&a.originalX==null&&(a.originalX=u.x,a.originalY=u.y);var c=i.getLayout("points"),v=i.hostModel,h=v.get("connectNulls"),d=s.get("precision"),p=s.get("distance")||0,m=l.getBaseAxis(),g=m.isHorizontal(),y=m.inverse,_=n.shape,S=y?g?_.x:_.y+_.height:g?_.x+_.width:_.y,b=(g?p:0)*(y?-1:1),w=(g?0:-p)*(y?-1:1),T=g?"x":"y",C=L3(c,S,T),x=C.range,A=x[1]-x[0],D=void 0;if(A>=1){if(A>1&&!h){var P=j_(c,x[0]);u.attr({x:P[0]+b,y:P[1]+w}),o&&(D=v.getRawValue(x[0]))}else{var P=f.getPointOn(S,T);P&&u.attr({x:P[0]+b,y:P[1]+w});var M=v.getRawValue(x[0]),I=v.getRawValue(x[1]);o&&(D=QS(i,d,M,I,C.t))}a.lastFrameIndex=x[0]}else{var k=r===1||a.lastFrameIndex>0?x[0]:0,P=j_(c,k);o&&(D=v.getRawValue(k)),u.attr({x:P[0]+b,y:P[1]+w})}if(o){var O=kf(u);typeof O.setLabelText=="function"&&O.setLabelText(D)}}},e.prototype._doUpdateAnimation=function(r,n,i,a,o,s,l){var u=this._polyline,f=this._polygon,c=r.hostModel,v=b3(this._data,r,this._stackedOnPoints,n,this._coordSys,i,this._valueOrigin),h=v.current,d=v.stackedOnCurrent,p=v.next,m=v.stackedOnNext;if(o&&(d=yn(v.stackedOnCurrent,v.current,i,o,l),h=yn(v.current,null,i,o,l),m=yn(v.stackedOnNext,v.next,i,o,l),p=yn(v.next,null,i,o,l)),X_(h,p)>3e3||f&&X_(d,m)>3e3){u.stopAnimation(),u.setShape({points:p}),f&&(f.stopAnimation(),f.setShape({points:p,stackedOnPoints:m}));return}u.shape.__points=v.current,u.shape.points=h;var g={shape:{points:p}};v.current!==h&&(g.shape.__points=v.next),u.stopAnimation(),Lt(u,g,c),f&&(f.setShape({points:h,stackedOnPoints:d}),f.stopAnimation(),Lt(f,{shape:{stackedOnPoints:m}},c),u.shape.points!==f.shape.points&&(f.shape.points=u.shape.points));for(var y=[],_=v.status,S=0;S<_.length;S++){var b=_[S].cmd;if(b==="="){var w=r.getItemGraphicEl(_[S].idx1);w&&y.push({el:w,ptIdx:S})}}u.animators&&u.animators.length&&u.animators[0].during(function(){f&&f.dirtyShape();for(var T=u.shape.__points,C=0;Ce&&(e=t[r]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,r=0;r10&&o.type==="cartesian2d"&&a){var l=o.getBaseAxis(),u=o.getOtherAxis(l),f=l.getExtent(),c=n.getDevicePixelRatio(),v=Math.abs(f[1]-f[0])*(c||1),h=Math.round(s/v);if(isFinite(h)&&h>1){a==="lttb"?e.setData(i.lttbDownSample(i.mapDimension(u.dim),1/h)):a==="minmax"&&e.setData(i.minmaxDownSample(i.mapDimension(u.dim),1/h));var d=void 0;te(a)?d=B3[a]:fe(a)&&(d=a),d&&e.setData(i.downSample(i.mapDimension(u.dim),1/h,d,F3))}}}}}function NH(t){t.registerChartView(k3),t.registerSeriesModel(y3),t.registerLayout(N3("line")),t.registerVisual({seriesType:"line",reset:function(e){var r=e.getData(),n=e.getModel("lineStyle").getLineStyle();n&&!n.stroke&&(n.stroke=r.getVisual("style").fill),r.setVisual("legendLineStyle",n)}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,z3("line"))}function Tl(t,e,r){var n=t.get("borderRadius");if(n==null)return r?{cornerRadius:0}:null;K(n)||(n=[n,n,n,n]);var i=Math.abs(e.r||0-e.r0||0);return{cornerRadius:oe(n,function(a){return ki(a,i)})}}function H3(t){return{seriesType:t,reset:function(e,r){var n=r.findComponents({mainType:"legend"});if(!(!n||!n.length)){var i=e.getData();i.filterSelf(function(a){for(var o=i.getName(a),s=0;s=0},t.prototype.indexOfName=function(e){var r=this._getDataWithEncodedVisual();return r.indexOfName(e)},t.prototype.getItemVisual=function(e,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(e,r)},t})(),kn="pie",V3=we(),iC=(function(t){q(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.type=e.type,r}return e.prototype.init=function(r){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new U3(Ae(this.getData,this),Ae(this.getRawData,this)),this._defaultLabelLine(r)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return Nz(this,{coordDimensions:["value"],encodeDefaulter:Ue($2,this)})},e.prototype.getDataParams=function(r){var n=this.getData(),i=V3(n),a=i.seats;if(!a){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),a=i.seats=GS(o,n.hostModel.get("percentPrecision"))}var s=t.prototype.getDataParams.call(this,r);return s.percent=a[r]||0,s.$vars.push("percent"),s},e.prototype._defaultLabelLine=function(r){mv(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},e.type="series."+kn,e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"50%"],clockwise:!0,startAngle:90,endAngle:"auto",padAngle:0,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,coordinateSystemUsage:"box",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%",distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:30,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"},e})(nr);I2({fullType:iC.type,getCoord2:function(t){return t.getShallow("center")}});var G3=Math.PI/180;function Z_(t,e,r,n,i,a,o,s,l,u){if(t.length<2)return;function f(p){for(var m=p.rB,g=m*m,y=0;yr?g:m,b=Math.abs(_.label.y-r);if(b>=S.maxY){var w=_.label.x-e-_.len2*i,T=n+_.len,C=Math.abs(w)t.unconstrainedWidth?null:v:null;n.setStyle("width",h)}oC(a,n)}}}function oC(t,e){K_.rect=t,bx(K_,e,Y3)}var Y3={minMarginForce:[null,0,null,0],marginDefault:[1,0,1,0]},K_={};function Lh(t){return t.position==="center"}function $3(t){var e=t.getData(),r=[],n,i,a=!1,o=(t.get("minShowLabelAngle")||0)*G3,s=e.getLayout("viewRect"),l=e.getLayout("r"),u=s.width,f=s.x,c=s.y,v=s.height;function h(w){w.ignore=!0}function d(w){if(!w.ignore)return!0;for(var T in w.states)if(w.states[T].ignore===!1)return!0;return!1}e.each(function(w){var T=e.getItemGraphicEl(w),C=T.shape,x=T.getTextContent(),A=T.getTextGuideLine(),D=e.getItemModel(w),P=D.getModel("label"),M=P.get("position")||D.get(["emphasis","label","position"]),I=P.get("distanceToLabelLine"),k=P.get("alignTo"),O=He(P.get("edgeDistance"),u),N=P.get("bleedMargin");N==null&&(N=Math.min(u,v)>200?10:2);var U=D.getModel("labelLine"),W=U.get("length");W=He(W,u);var X=U.get("length2");if(X=He(X,u),Math.abs(C.endAngle-C.startAngle)0?"right":"left":J>0?"left":"right"}var ye=Math.PI,Qe=0,ke=P.get("rotate");if(Re(ke))Qe=ke*(ye/180);else if(M==="center")Qe=0;else if(ke==="radial"||ke===!0){var Ot=J<0?-Q+ye:-Q;Qe=Ot}else if(ke==="tangential"||ke==="tangential-noflip"&&M!=="outside"&&M!=="outer"){var ot=Math.atan2(J,j);ot<0&&(ot=ye*2+ot);var lr=j>0;lr&&ke!=="tangential-noflip"&&(ot=ye+ot),Qe=ot-ye}if(a=!!Qe,x.x=z,x.y=re,x.rotation=Qe,x.setStyle({verticalAlign:"middle"}),Y){x.setStyle({align:L});var Gn=x.states.select;Gn&&(Gn.x+=x.x,Gn.y+=x.y)}else{var qi=new le(0,0,0,0);oC(qi,x),r.push({label:x,labelLine:A,position:M,len:W,len2:X,minTurnAngle:U.get("minTurnAngle"),maxSurfaceAngle:U.get("maxSurfaceAngle"),surfaceNormal:new he(J,j),linePoints:se,textAlign:L,labelDistance:I,labelAlignTo:k,edgeDistance:O,bleedMargin:N,rect:qi,unconstrainedWidth:qi.width,labelStyleWidth:x.style.width})}T.setTextConfig({inside:Y})}}),!a&&t.get("avoidLabelOverlap")&&W3(r,n,i,l,u,v,f,c);for(var p=0;pU?(X=I+T*U/2,Q=X):(X=I+x,Q=W-x),n.setItemLayout(N,{angle:U,startAngle:X,endAngle:Q,clockwise:_,cx:o,cy:s,r0:u,r:S?_u(O,w,[u,l]):l}),I=W}),P0){for(var f=o.getItemLayout(0),c=1;isNaN(f&&f.startAngle)&&c=a.r0}},e.type=kn,e})(Pt);function K3(t){return{seriesType:t,reset:function(e,r){var n=e.getData();n.filterSelf(function(i){var a=n.mapDimension("value"),o=n.get(a,i);return!(Re(o)&&!isNaN(o)&&o<0)})}}}function BH(t){t.registerChartView(Z3),t.registerSeriesModel(iC),Rk(kn,t.registerAction),t.registerLayout(X3),t.registerProcessor(H3(kn)),t.registerProcessor(K3(kn))}var Jl={exports:{}},Q3=Jl.exports,J_;function J3(){return J_||(J_=1,(function(t){(function(e){const r="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp(`^${r}\\.${r}\\.${r}\\.${r}$`,"i"),threeOctet:new RegExp(`^${r}\\.${r}\\.${r}$`,"i"),twoOctet:new RegExp(`^${r}\\.${r}$`,"i"),longValue:new RegExp(`^${r}$`,"i")},i=new RegExp("^0[0-7]+$","i"),a=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",s="(?:[0-9a-f]+::?)+",l={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${r}\\.${r}\\.${r}\\.${r}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${r}\\.${r}\\.${r}\\.${r}(${o})?$`,"i")};function u(d,p){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let m=0,g=-1,y=(d.match(l.zoneIndex)||[])[0],_,S;for(y&&(y=y.substring(1),d=d.replace(/%.+$/,""));(g=d.indexOf(":",g+1))>=0;)m++;if(d.substr(0,2)==="::"&&m--,d.substr(-2,2)==="::"&&m--,m>=p)return null;for(S=p-m,_=":";S--;)_+="0:";return d=d.replace("::",_),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),p=(function(){const b=d.split(":"),w=[];for(let T=0;T4?NaN:parseInt(b[T],16));return w})(),{parts:p,zoneId:y}}function f(d,p,m,g){if(d.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let y=0,_;for(;g>0;){if(_=m-g,_<0&&(_=0),d[y]>>_!==p[y]>>_)return!1;g-=m,y+=1}return!0}function c(d){if(a.test(d))return parseInt(d,16);if(d[0]==="0"&&!isNaN(parseInt(d[1],10))){if(i.test(d))return parseInt(d,8);throw new Error(`ipaddr: cannot parse ${d} as octal`)}return parseInt(d,10)}function v(d,p){for(;d.length=0;y-=1)if(_=this.octets[y],_ in g){if(S=g[_],m&&S!==0)return null;S!==8&&(m=!0),p+=S}else return null;return 32-p},d.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return h.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d})(),h.IPv4.broadcastAddressFromCIDR=function(d){try{const p=this.parseCIDR(d),m=p[0].toByteArray(),g=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),y=[];let _=0;for(;_<4;)y.push(parseInt(m[_],10)|parseInt(g[_],10)^255),_++;return new this(y)}catch(p){throw new Error("ipaddr: the address does not have IPv4 CIDR format",{cause:p})}},h.IPv4.isIPv4=function(d){return this.parser(d)!==null},h.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch(p){return!1}},h.IPv4.isValidCIDR=function(d){try{return this.parseCIDR(d),!0}catch(p){return!1}},h.IPv4.isValidFourPartDecimal=function(d){return!!(h.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},h.IPv4.isValidCIDRFourPartDecimal=function(d){const p=d.match(/^(.+)\/(\d+)$/);return!h.IPv4.isValidCIDR(d)||!p?!1:h.IPv4.isValidFourPartDecimal(p[1])},h.IPv4.networkAddressFromCIDR=function(d){let p,m,g,y,_;try{for(p=this.parseCIDR(d),g=p[0].toByteArray(),_=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),y=[],m=0;m<4;)y.push(parseInt(g[m],10)&parseInt(_[m],10)),m++;return new this(y)}catch(S){throw new Error("ipaddr: the address does not have IPv4 CIDR format",{cause:S})}},h.IPv4.parse=function(d){const p=this.parser(d);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(p)},h.IPv4.parseCIDR=function(d){let p;if(p=d.match(/^(.+)\/(\d+)$/)){const m=parseInt(p[2]);if(m>=0&&m<=32){const g=[this.parse(p[1]),m];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(d){let p,m,g;if(p=d.match(n.fourOctet))return(function(){const y=p.slice(1,6),_=[];for(let S=0;S4294967295||g<0)throw new Error("ipaddr: address outside defined range");return(function(){const y=[];let _;for(_=0;_<=24;_+=8)y.push(g>>_&255);return y})().reverse()}else return(p=d.match(n.twoOctet))?(function(){const y=p.slice(1,4),_=[];if(g=c(y[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return _.push(c(y[0])),_.push(g>>16&255),_.push(g>>8&255),_.push(g&255),_})():(p=d.match(n.threeOctet))?(function(){const y=p.slice(1,5),_=[];if(g=c(y[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return _.push(c(y[0])),_.push(c(y[1])),_.push(g>>8&255),_.push(g&255),_})():null},h.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),Number.isNaN(d)||d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");const p=[0,0,0,0];let m=0;const g=Math.floor(d/8);for(;m=0;S-=1)if(y=this.parts[S],y in g){if(_=g[y],m&&_!==0)return null;_!==16&&(m=!0),p+=_}else return null;return 128-p},d.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let p;const m=[],g=this.parts;for(let y=0;y>8),m.push(p&255);return m},d.prototype.toFixedLengthString=function(){const p=(function(){const g=[];for(let y=0;y>8,m&255,g>>8,g&255])},d.prototype.toNormalizedString=function(){const p=(function(){const g=[];for(let y=0;yb&&(b=T,_=w.index,S=w[0].length)}return S<0?y+m:`${y.substring(0,_)}::${y.substring(_+S)}${m}`},d.prototype.toString=function(){return this.toRFC5952String()},d})(),h.IPv6.broadcastAddressFromCIDR=function(d){try{const p=this.parseCIDR(d),m=p[0].toByteArray(),g=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),y=[];let _=0;for(;_<16;)y.push(parseInt(m[_],10)|parseInt(g[_],10)^255),_++;return new this(y)}catch(p){throw new Error("ipaddr: the address does not have IPv6 CIDR format",{cause:p})}},h.IPv6.isIPv6=function(d){return this.parser(d)!==null},h.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{const p=this.parser(d);return new this(p.parts,p.zoneId),!0}catch(p){return!1}},h.IPv6.isValidCIDR=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{return this.parseCIDR(d),!0}catch(p){return!1}},h.IPv6.networkAddressFromCIDR=function(d){let p,m,g,y,_;try{for(p=this.parseCIDR(d),g=p[0].toByteArray(),_=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),y=[],m=0;m<16;)y.push(parseInt(g[m],10)&parseInt(_[m],10)),m++;return new this(y)}catch(S){throw new Error("ipaddr: the address does not have IPv6 CIDR format",{cause:S})}},h.IPv6.parse=function(d){const p=this.parser(d);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(p.parts,p.zoneId)},h.IPv6.parseCIDR=function(d){let p,m,g;if((m=d.match(/^(.+)\/(\d+)$/))&&(p=parseInt(m[2]),p>=0&&p<=128))return g=[this.parse(m[1]),p],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(d){let p,m,g,y,_,S;if(g=d.match(l.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(l.native.test(d))return u(d,8);if((g=d.match(l.transitional))&&(S=g[6]||"",p=g[1],g[1].endsWith("::")||(p=p.slice(0,-1)),p=u(p+S,6),p&&p.parts)){for(_=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],m=0;m<_.length;m++)if(y=_[m],!(0<=y&&y<=255))return null;return p.parts.push(_[0]<<8|_[1]),p.parts.push(_[2]<<8|_[3]),{parts:p.parts,zoneId:p.zoneId}}return null},h.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),Number.isNaN(d)||d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");const p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];let m=0;const g=Math.floor(d/8);for(;m/dev/null 2>&1 && ota >/dev/null 2>&1") == 0 then @@ -30,13 +31,14 @@ disable = true } end + configs["deviceInventoryV2"] = uci:get("quickstart", "main", "device_inventory_v2") ~= "0" -%>
- - + + <%+footer%> diff --git a/luci-app-quickstart/root/usr/share/doc/quickstart/NOTICE b/luci-app-quickstart/root/usr/share/doc/quickstart/NOTICE new file mode 100644 index 000000000..64959afb8 --- /dev/null +++ b/luci-app-quickstart/root/usr/share/doc/quickstart/NOTICE @@ -0,0 +1,18 @@ +Quickstart device-management release notice + +The Quickstart backend and device-management web application are developed in +the upstream Quickstart project under its MIT license. OpenWrt/LuCI packaging +files retain the license notices stated in those files and packages. + +The 30 WebP device scene icons shipped below +/www/luci-static/quickstart/device-icons are project-original, AI-assisted +generic illustrations generated with OpenAI's image generation tool on +2026-09-24 and 2026-09-25. Generation required transparent backgrounds and no +words, letters, logos, watermarks, trademarked elements, or brand-specific +product silhouettes. Manufacturer names are rendered as ordinary text and are +not embedded in the artwork. No artwork or logo from luci-app-oui, +luci-app-bandix, a device manufacturer, or another third party is included. + +The asset manifest marks product/legal review as required before a public +release. Generative creation does not guarantee non-infringement. + diff --git a/luci-app-trafficctl/Makefile b/luci-app-trafficctl/Makefile index 854fcd2d8..7966594d9 100644 --- a/luci-app-trafficctl/Makefile +++ b/luci-app-trafficctl/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-trafficctl -PKG_VERSION:=1.30.2 -PKG_RELEASE:=29 +PKG_VERSION:=1.30.3 +PKG_RELEASE:=30 PKG_LICENSE:=Apache-2.0 PKG_MAINTAINER:=Denis Iusupov diff --git a/luci-app-upnp/po/zh_Hans/upnp.po b/luci-app-upnp/po/zh_Hans/upnp.po index 883a0ce28..fefbe2a08 100644 --- a/luci-app-upnp/po/zh_Hans/upnp.po +++ b/luci-app-upnp/po/zh_Hans/upnp.po @@ -1,271 +1,443 @@ -# -# Yangfl , 2018. -# msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-06-10 03:40+0200\n" -"PO-Revision-Date: 2026-05-02 12:02+0000\n" -"Last-Translator: 大王叫我来巡山 " -"\n" -"Language-Team: Chinese (Simplified Han script) \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: luci-app-upnp\n" "Language: zh_Hans\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.17.1\n" -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:183 -msgctxt "" -"A 900s interval will result in %s (%s = SSDP) notifications with the minimum " -"max-age of 1800s" -msgid "" -"A 900s interval will result in %s notifications with the minimum max-age of " -"1800s" -msgstr "当通知间隔为 900 秒时,%s 通知的最小 max-age 为 1800 秒" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:219 -msgid "" -"ACL specify which client addresses and ports can be mapped, IPv6 always " -"allowed." -msgstr "ACL 用来限制哪些客户端地址和端口可以被映射,IPv6 始终被允许。" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:238 -msgid "Action" -msgstr "操作" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:129 -msgid "Active Service Port Maps" -msgstr "当前生效的端口映射" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:29 -msgid "Active UPnP IGD & PCP/NAT-PMP Port Maps" -msgstr "当前生效的 UPnP IGD 和 PCP/NAT-PMP 端口映射" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:135 -msgid "Advanced Settings" -msgstr "高级设置" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:151 -msgid "Advertise as IGDv1 (IPv4 only) device instead of IGDv2" -msgstr "将设备标识为 IGDv1(仅IPv4)设备,而不是 IGDv2" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:239 -msgid "Allow" -msgstr "允许" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:178 -msgid "Allow adding port maps for requesting IP addresses only" -msgstr "‌仅允许为发起请求的 IP 地址添加端口映射" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:147 -msgid "Allow private IPv4" -msgstr "允许 IPv4 内网地址" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:202 -msgid "Announced model number" -msgstr "通告的设备型号" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:205 -msgid "Announced serial number" -msgstr "通告的设备序列号" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:41 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:99 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:226 -msgid "Client Address" -msgstr "客户端地址" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:40 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:98 -msgid "Client Name" -msgstr "客户端名称" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:42 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:100 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:230 -msgid "Client Port" -msgstr "客户端端口" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:224 -msgid "Comment" -msgstr "注释" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:76 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:72 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:122 -msgid "Delete" -msgstr "删除" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:240 -msgid "Deny" -msgstr "拒绝" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:46 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:104 -msgid "Description" -msgstr "描述" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:199 -msgid "Device UUID" -msgstr "设备 UUID" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:156 -msgid "Download speed" -msgstr "下行带宽" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:144 -msgid "Enable PCP/NAT-PMP protocols" -msgstr "启用 PCP/NAT-PMP 协议" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:141 -msgid "Enable UPnP IGD protocol" -msgstr "启用 UPnP IGD 协议" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:212 -msgid "Enable additional logging" -msgstr "启用额外的日志" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:148 -msgid "Enable forwarding for private/reserved IPv4 address" -msgstr "允许转发 IPv4 内网/保留地址" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:177 -msgid "Enable secure mode" -msgstr "启用安全模式" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:45 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:103 -msgid "Expires" -msgstr "剩余有效期" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:43 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:101 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:234 -msgid "External Port" -msgstr "外部端口" - -#: applications/luci-app-upnp/root/usr/share/rpcd/acl.d/luci-app-upnp.json:3 -msgid "Grant access to UPnP IGD & PCP/NAT-PMP" -msgstr "授予访问 UPnP IGD 及 PCP/NAT-PMP 的权限" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:182 -msgid "Notify interval" -msgstr "通知间隔" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:194 -msgid "Presentation URL" -msgstr "服务网址" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:44 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:102 -msgid "Protocol" -msgstr "协议" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:213 -msgid "Puts extra debugging information into the system log" -msgstr "将额外的调试信息输出到系统日志中" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:195 -msgid "Report custom router web interface (presentation) URL" -msgstr "自定义路由器网页界面(展示页面)网址" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:157 -msgid "Report maximum download speed in kByte/s" -msgstr "向客户端通告的最大下载速度 kByte/s" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:161 -msgid "Report maximum upload speed in kByte/s" -msgstr "向客户端通告的最大上传速度 kByte/s" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:208 -msgid "Report system instead of service uptime" -msgstr "用系统运行时间代替进程运行时间" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:189 -msgid "SOAP/HTTP port" -msgstr "SOAP/HTTP 端口" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:168 -msgid "STUN host" -msgstr "STUN 主机" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:172 -msgid "STUN port" -msgstr "STUN 端口" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:218 -msgid "Service Access Control List" -msgstr "服务访问控制列表" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:132 -msgid "Service Settings" -msgstr "服务设置" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:134 -msgid "Service Setup" -msgstr "常规设置" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:215 -msgid "Service lease file" -msgstr "服务租约文件" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:138 -msgid "Start autonomous port mapping service" -msgstr "启动自动端口映射服务" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:137 -msgid "Start service" -msgstr "启动服务" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:88 -msgctxt "" -"The %s (%s = UPnP IGD & PCP/NAT-PMP) protocols allow clients on the local " -"network to configure port maps/forwards on the router autonomously." -msgid "" -"The %s protocols allow clients on the local network to configure port maps/" -"forwards on the router autonomously." -msgstr "%s 协议允许本地网络上的客户端自主配置路由器上的端口映射/转发。" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:80 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:76 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:126 -msgid "There are no active port maps." -msgstr "当前没有生效的端口映射。" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:166 -msgid "" -"To detect the public IPv4 address for unrestricted full-cone/one-to-one NATs" -msgstr "" -"检测公网 IPv4 地址,用于不受限制的全锥形(Full-cone/NAT1)/一对一 NAT 端口映" -"射" - -#: applications/luci-app-upnp/root/usr/share/luci/menu.d/luci-app-upnp.json:3 -msgid "UPnP IGD & PCP" -msgstr "UPnP IGD 和 PCP" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:87 -msgid "UPnP IGD & PCP/NAT-PMP Service" -msgstr "UPnP IGD 和 PCP/NAT-PMP 服务" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:150 -msgid "UPnP IGDv1 compatibility mode" -msgstr "UPnP IGDv1 兼容模式" - -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js:66 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:62 -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:113 +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js msgid "Unknown" msgstr "未知" -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:160 -msgid "Upload speed" -msgstr "上行带宽" +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Delete" +msgstr "删除" -#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js:164 -msgctxt "Use %s (%s = STUN)" -msgid "Use %s" -msgstr "使用 %s" +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Not yet deletable; UPnP IGDv2 IPv6 port maps expire sooner, have no description" +msgstr "暂不可删除;UPnP IGDv2 IPv6 端口映射过期更快且无描述信息" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "No active IPv4/IPv6 port maps" +msgstr "没有活动的 IPv4/IPv6 端口映射" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgctxt "%s & %s/%s (%s = UPnP IGD, %s = PCP, %s = NAT-PMP)" +msgid "%s & %s/%s" +msgstr "%s & %s/%s" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "UPnP IGD & PCP/NAT-PMP Service" +msgstr "UPnP IGD & PCP/NAT-PMP 服务" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgctxt "The %s (%s = UPnP IGD & PCP/NAT-PMP) protocols/service enable permitted devices on local networks to autonomously set up IPv4/IPv6 port maps/forwards on this router." +msgid "The %s protocols/service enable permitted devices on local networks to autonomously set up IPv4/IPv6 port maps/forwards on this router." +msgstr "%s 协议/服务允许本地网络中受许可的设备在此路由器上自动建立 IPv4/IPv6 端口映射/转发。" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "No suitable configuration was found!" +msgstr "未找到合适的配置文件!" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "No suitable config (LuCI app %s) found in %s. A related package update (daemon or LuCI app) may be missing." +msgstr "未找到适配的配置(LuCI 应用 %s,路径 %s)。可能缺少相关的软件包更新(守护进程或 LuCI 应用)。" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Use the software package manager, update lists, and install the related update. Config is migrated with the daemon package update." +msgstr "请使用软件包管理器更新列表并安装相关更新。配置文件将随守护进程软件包更新自动迁移。" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Go to package manager…" +msgstr "前往软件包管理器…" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Hostname" +msgstr "主机名" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "IP address" +msgstr "IP 地址" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Port" +msgstr "端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "External port" +msgstr "外部端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Protocol" +msgstr "协议" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Expires" +msgstr "剩余时间" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Added via / description" +msgstr "添加方式 / 描述" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Active Port Maps" +msgstr "活动端口映射" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/status/include/80_upnp.js +msgid "Active UPnP IGD & PCP/NAT-PMP Port Maps" +msgstr "活动的 UPnP IGD & PCP/NAT-PMP 端口映射" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Service Settings" +msgstr "服务设置" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Service Setup" +msgstr "基本设置" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Access Control" +msgstr "访问控制" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Advanced Settings" +msgstr "高级设置" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "UPnP IGD Adjustments" +msgstr "UPnP IGD 调整" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Enable service" +msgstr "启用服务" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Enable the autonomous port mapping service" +msgstr "启用自动端口映射服务" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Enable protocols" +msgstr "启用协议" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "All protocols" +msgstr "所有协议" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "UPnP IGD" +msgstr "UPnP IGD" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "PCP and NAT-PMP" +msgstr "PCP 和 NAT-PMP" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Enable networks" +msgstr "启用网络" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Select local/internal (LAN) network interfaces to enable the service for" +msgstr "选择要启用此服务的本地/内部(LAN)网络接口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "UPnP IGD compatibility" +msgstr "UPnP IGD 兼容性" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Set compatibility mode (act as device) to workaround IGDv2-incompatible clients; %s are known to only work with %s (or)
Emulate/report a specific/different device to workaround/support/handle/bypass/assist/mitigate... (Alternative text welcome)" +msgstr "设置兼容模式(作为特定设备运行)以兼容不支持 IGDv2 的客户端;已知 %s 仅适用于 %s" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "IGDv1 (IPv4 only)" +msgstr "IGDv1(仅 IPv4)" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "IGDv2 (with workarounds)" +msgstr "IGDv2(含兼容处理)" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Access defaults" +msgstr "默认访问策略" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Set access control defaults for ports that all devices can map" +msgstr "设置所有设备均可映射的端口默认访问控制策略" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "None / accept extra ports only" +msgstr "无 / 仅允许额外指定端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Accept ports >= 1024" +msgstr "允许端口 >= 1024" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Accept HTTP/HTTPS + ports >= 1024" +msgstr "允许 HTTP/HTTPS + 端口 >= 1024" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Accept HTTP/HTTPS ports" +msgstr "允许 HTTP/HTTPS 端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Accept all ports" +msgstr "允许所有端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Accept extra ports" +msgstr "允许额外端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Reject ports" +msgstr "拒绝端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Reject unsafe/insecure/risky FTP/Telnet/DCE/NetBIOS/SMB/RDP ports by default; overrides other settings; use %s for none" +msgstr "默认拒绝不安全的 FTP/Telnet/DCE/NetBIOS/SMB/RDP 端口;此项优先于其他设置;填 %s 表示不拒绝任何端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Check ACL" +msgstr "检查访问控制列表(ACL)" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Extend or override access defaults by device-specific permissions using the access control list (ACL)" +msgstr "使用访问控制列表(ACL)按设备权限扩展或覆盖默认访问策略" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Sequence:" +msgstr "匹配顺序:" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "ACL entries (if checked)" +msgstr "ACL 条目(若已勾选)" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Disable IPv6 mapping" +msgstr "禁用 IPv6 映射" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "IPv6 is currently always accepted unless disabled" +msgstr "除非禁用,否则当前默认始终允许 IPv6 映射" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgctxt "Allow %s/%s (%s = CGNAT, %s = STUN)" +msgid "Allow %s/%s" +msgstr "允许 %s/%s" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Allow use of unrestricted endpoint-independent (1:1) CGNATs and detect the public IPv4" +msgstr "允许在无限制端点无关型(1:1)CGNAT 环境下使用并检测公网 IPv4" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Disabled" +msgstr "禁用" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Manually override external IPv4 with public" +msgstr "手动指定外部公网 IPv4 地址" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Enabled" +msgstr "启用" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Filtering test currently requires an extra firewall rule" +msgstr "过滤测试目前需要额外的防火墙规则" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "allow filtered" +msgstr "允许过滤型" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Workaround filtered IPv4 CGNAT test result" +msgstr "绕过过滤型 IPv4 CGNAT 检测限制" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "report private IPv4, avoid" +msgstr "上报私有 IPv4,不推荐" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "No STUN public IPv4 detection; client issues" +msgstr "不通过 STUN 检测公网 IPv4;可能导致客户端异常" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "STUN server" +msgstr "STUN 服务器" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Override external IPv4" +msgstr "覆盖外部 IPv4" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Report custom public/external (WAN) IPv4 address" +msgstr "通告自定义公网/外部(WAN)IPv4 地址" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Allow third-party mapping" +msgstr "允许第三方映射" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Allow adding port maps for non-requesting IP addresses; use with care" +msgstr "允许为非请求方 IP 地址添加端口映射;请谨慎使用" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "recommended" +msgstr "推荐" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "UPnP IGD only" +msgstr "仅 UPnP IGD" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "PCP only" +msgstr "仅 PCP" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Report system instead of service uptime" +msgstr "报告系统运行时间而非服务运行时间" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Log level" +msgstr "日志级别" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Default" +msgstr "默认" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Info" +msgstr "信息" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Debug" +msgstr "调试" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Service lease file" +msgstr "服务租约文件" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Download speed" +msgstr "下载速度" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Report maximum connection speed in kbit/s" +msgstr "报告最大连接速度(kbit/s)" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Default interface link speed" +msgstr "默认接口链路速度" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Upload speed" +msgstr "上传速度" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Router/friendly name" +msgstr "路由器/友好名称" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Announced model number" +msgstr "通告的型号" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Announced serial number" +msgstr "通告的序列号" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Router/presentation URL" +msgstr "路由器/管理页面 URL" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Report custom router web interface URL" +msgstr "通告自定义路由器 Web 管理界面 URL" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Device UUID" +msgstr "设备 UUID" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "SOAP/HTTP port" +msgstr "SOAP/HTTP 端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Notify interval" +msgstr "通知间隔" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgctxt "A 900 s interval sends %s (%s = SSDP) announcements with the minimum %s (%s = Cache-Control: max-age=1800) header" +msgid "A 900 s interval sends %s announcements with the minimum %s header" +msgstr "900 秒的间隔将发送 %s 通告,并附带最小 %s 标头" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Access Control List" +msgstr "访问控制列表" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "The access control list (ACL) specifies which IPv4 addresses and ports can be mapped." +msgstr "访问控制列表(ACL)用于指定允许映射的 IPv4 地址和端口。" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "ACL entries are checked in order, then rejected if not matched and not accepted by access defaults. (To do: should be part of access control tab)" +msgstr "ACL 条目按顺序进行匹配;若未匹配且未被默认访问策略允许,则拒绝映射。" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "UPnP IGD & PCP/NAT-PMP" +msgstr "UPnP IGD & PCP/NAT-PMP" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Edit ACL Entry" +msgstr "编辑 ACL 条目" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Comment" +msgstr "备注" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "unspecified" +msgstr "未指定" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Enter device's IPv4 address, or an address and netmask" +msgstr "输入设备的 IPv4 地址,或带子网掩码的地址" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "any port" +msgstr "任意端口" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Description filter" +msgstr "描述过滤器" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Regular expression to check description of UPnP IGD IPv4 port maps" +msgstr "用于匹配 UPnP IGD IPv4 端口映射描述的正则表达式" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "any description" +msgstr "任意描述" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Action" +msgstr "动作" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Accept" +msgstr "允许" + +#: applications/luci-app-upnp/htdocs/luci-static/resources/view/upnp/upnp.js +msgid "Reject" +msgstr "拒绝" diff --git a/v2raya/Makefile b/v2raya/Makefile index 239da1732..409d3415e 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -14,7 +14,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2raya PKG_VERSION:=2.5.14 -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_SOURCE:=v2rayA-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init old mode 100644 new mode 100755