From 62c68e8b02bfac77e340eb834048566030fb70e0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 9 Nov 2026 22:01:23 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=88=20Sync=202026-11-09=2022:01:23?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clashoo/Makefile | 4 +- .../usr/share/clashoo/nftables/geoip6_cn.nft | 119 +- .../usr/share/clashoo/nftables/geoip_cn.nft | 476 +---- .../files/usr/share/clashoo/ruleset/cn-ip.srs | Bin 37214 -> 36438 bytes .../share/clashoo/ruleset/geolocation-!cn.srs | Bin 167030 -> 167154 bytes .../usr/share/clashoo/ruleset/geosite-cn.srs | Bin 27885 -> 27786 bytes dae/Makefile | 6 +- daed/Makefile | 6 +- ddns-go/Makefile | 4 +- fastnet/Makefile | 4 +- luci-app-fastnet/Makefile | 4 +- .../luci-static/resources/fchomo/listeners.js | 8 +- .../resources/view/fchomo/global.js | 2 +- .../luci-static/resources/view/fchomo/node.js | 2 +- .../root/usr/share/fchomo/generate_client.uc | 37 +- .../root/usr/share/ucode/fchomo.uc | 26 +- luci-app-openvpn-plus/Makefile | 2 +- .../google8db8fb957efb7575.html | 1 + luci-app-openvpn-plus/index.html | 289 +++ luci-app-openvpn-plus/sitemap.xml | 15 + luci-app-safeshield/.editorconfig | 11 + luci-app-safeshield/.gitattributes | 13 + luci-app-safeshield/.gitignore | 14 + luci-app-safeshield/CHANGELOG.md | 39 + luci-app-safeshield/LICENSE | 674 +++++++ luci-app-safeshield/Makefile | 23 + luci-app-safeshield/README.md | 244 +++ .../resources/view/safeshield/config.js | 377 ++++ .../resources/view/safeshield/overview.js | 595 ++++++ .../resources/view/safeshield/rules.js | 285 +++ .../po/templates/safeshield.pot | 701 +++++++ luci-app-safeshield/po/zh-cn | 1 + luci-app-safeshield/po/zh_Hans/safeshield.po | 702 +++++++ .../etc/uci-defaults/90_luci-app-safeshield | 9 + .../luci/menu.d/luci-app-safeshield.json | 45 + .../share/rpcd/acl.d/luci-app-safeshield.json | 26 + luci-app-sunpanel/Makefile | 5 +- .../sunpanel/assets/404-b0d1a3d9.svg | 1 - .../sunpanel/assets/Alert-018ca7af.js | 48 - .../sunpanel/assets/Divider-a11d112a.js | 42 - .../sunpanel/assets/GradientText-44d798c5.js | 12 - .../assets/KaTeX_AMS-Regular-0cdd387c.woff2 | Bin 28076 -> 0 bytes .../assets/KaTeX_AMS-Regular-30da91e8.woff | Bin 33516 -> 0 bytes .../assets/KaTeX_AMS-Regular-68534840.ttf | Bin 63632 -> 0 bytes .../KaTeX_Caligraphic-Bold-07d8e303.ttf | Bin 12368 -> 0 bytes .../KaTeX_Caligraphic-Bold-1ae6bd74.woff | Bin 7716 -> 0 bytes .../KaTeX_Caligraphic-Bold-de7701e4.woff2 | Bin 6912 -> 0 bytes .../KaTeX_Caligraphic-Regular-3398dd02.woff | Bin 7656 -> 0 bytes .../KaTeX_Caligraphic-Regular-5d53e70a.woff2 | Bin 6908 -> 0 bytes .../KaTeX_Caligraphic-Regular-ed0b7437.ttf | Bin 12344 -> 0 bytes .../assets/KaTeX_Fraktur-Bold-74444efd.woff2 | Bin 11348 -> 0 bytes .../assets/KaTeX_Fraktur-Bold-9163df9c.ttf | Bin 19584 -> 0 bytes .../assets/KaTeX_Fraktur-Bold-9be7ceb8.woff | Bin 13296 -> 0 bytes .../assets/KaTeX_Fraktur-Regular-1e6f9579.ttf | Bin 19572 -> 0 bytes .../KaTeX_Fraktur-Regular-51814d27.woff2 | Bin 11316 -> 0 bytes .../KaTeX_Fraktur-Regular-5e28753b.woff | Bin 13208 -> 0 bytes .../assets/KaTeX_Main-Bold-0f60d1b8.woff2 | Bin 25324 -> 0 bytes .../assets/KaTeX_Main-Bold-138ac28d.ttf | Bin 51336 -> 0 bytes .../assets/KaTeX_Main-Bold-c76c5d69.woff | Bin 29912 -> 0 bytes .../assets/KaTeX_Main-BoldItalic-70ee1f64.ttf | Bin 32968 -> 0 bytes .../KaTeX_Main-BoldItalic-99cd42a3.woff2 | Bin 16780 -> 0 bytes .../KaTeX_Main-BoldItalic-a6f7ec0d.woff | Bin 19412 -> 0 bytes .../assets/KaTeX_Main-Italic-0d85ae7c.ttf | Bin 33580 -> 0 bytes .../assets/KaTeX_Main-Italic-97479ca6.woff2 | Bin 16988 -> 0 bytes .../assets/KaTeX_Main-Italic-f1d6ef86.woff | Bin 19676 -> 0 bytes .../assets/KaTeX_Main-Regular-c2342cd8.woff2 | Bin 26272 -> 0 bytes .../assets/KaTeX_Main-Regular-c6368d87.woff | Bin 30772 -> 0 bytes .../assets/KaTeX_Main-Regular-d0332f52.ttf | Bin 53580 -> 0 bytes .../KaTeX_Math-BoldItalic-850c0af5.woff | Bin 18668 -> 0 bytes .../KaTeX_Math-BoldItalic-dc47344d.woff2 | Bin 16400 -> 0 bytes .../assets/KaTeX_Math-BoldItalic-f9377ab0.ttf | Bin 31196 -> 0 bytes .../assets/KaTeX_Math-Italic-08ce98e5.ttf | Bin 31308 -> 0 bytes .../assets/KaTeX_Math-Italic-7af58c5e.woff2 | Bin 16440 -> 0 bytes .../assets/KaTeX_Math-Italic-8a8d2445.woff | Bin 18748 -> 0 bytes .../assets/KaTeX_SansSerif-Bold-1ece03f7.ttf | Bin 24504 -> 0 bytes .../KaTeX_SansSerif-Bold-e99ae511.woff2 | Bin 12216 -> 0 bytes .../assets/KaTeX_SansSerif-Bold-ece03cfd.woff | Bin 14408 -> 0 bytes .../KaTeX_SansSerif-Italic-00b26ac8.woff2 | Bin 12028 -> 0 bytes .../KaTeX_SansSerif-Italic-3931dd81.ttf | Bin 22364 -> 0 bytes .../KaTeX_SansSerif-Italic-91ee6750.woff | Bin 14112 -> 0 bytes .../KaTeX_SansSerif-Regular-11e4dc8a.woff | Bin 12316 -> 0 bytes .../KaTeX_SansSerif-Regular-68e8c73e.woff2 | Bin 10344 -> 0 bytes .../KaTeX_SansSerif-Regular-f36ea897.ttf | Bin 19436 -> 0 bytes .../KaTeX_Script-Regular-036d4e95.woff2 | Bin 9644 -> 0 bytes .../assets/KaTeX_Script-Regular-1c67f068.ttf | Bin 16648 -> 0 bytes .../assets/KaTeX_Script-Regular-d96cdf2b.woff | Bin 10588 -> 0 bytes .../assets/KaTeX_Size1-Regular-6b47c401.woff2 | Bin 5468 -> 0 bytes .../assets/KaTeX_Size1-Regular-95b6d2f1.ttf | Bin 12228 -> 0 bytes .../assets/KaTeX_Size1-Regular-c943cc98.woff | Bin 6496 -> 0 bytes .../assets/KaTeX_Size2-Regular-2014c523.woff | Bin 6188 -> 0 bytes .../assets/KaTeX_Size2-Regular-a6b2099f.ttf | Bin 11508 -> 0 bytes .../assets/KaTeX_Size2-Regular-d04c5421.woff2 | Bin 5208 -> 0 bytes .../assets/KaTeX_Size3-Regular-500e04d5.ttf | Bin 7588 -> 0 bytes .../assets/KaTeX_Size3-Regular-6ab6b62e.woff | Bin 4420 -> 0 bytes .../assets/KaTeX_Size4-Regular-99f9c675.woff | Bin 5980 -> 0 bytes .../assets/KaTeX_Size4-Regular-a4af7d41.woff2 | Bin 4928 -> 0 bytes .../assets/KaTeX_Size4-Regular-c647367d.ttf | Bin 10364 -> 0 bytes .../KaTeX_Typewriter-Regular-71d517d6.woff2 | Bin 13568 -> 0 bytes .../KaTeX_Typewriter-Regular-e14fed02.woff | Bin 16028 -> 0 bytes .../KaTeX_Typewriter-Regular-f01f3e87.ttf | Bin 27556 -> 0 bytes .../_plugin-vue_export-helper-c27b6911.js | 1 - .../sunpanel/assets/about-2688cabc.js | 1 - .../sunpanel/assets/baidu-604a969a.svg | 1 - .../sunpanel/assets/bing-4e21c40a.svg | 20 - .../assets/defaultBackground-80f713c8.webp | Bin 84014 -> 0 bytes .../sunpanel/assets/gitee-9d895e3a.png | Bin 7019 -> 0 bytes .../sunpanel/assets/google-c8534e94.svg | 1 - .../sunpanel/assets/index-2b251fda.css | 1 - .../sunpanel/assets/index-2b595d91.js | 772 -------- .../sunpanel/assets/index-36cf7848.css | 1 - .../sunpanel/assets/index-7ae5884e.css | 1 - .../sunpanel/assets/index-7e19b821.js | 913 --------- .../sunpanel/assets/index-85275cb2.js | 1 - .../sunpanel/assets/index-8886367f.css | 1 - .../sunpanel/assets/index-8a6943bf.js | 1 - .../sunpanel/assets/index-8f0537f1.js | 1 - .../sunpanel/assets/index-8f8851de.js | 1 - .../sunpanel/assets/index-93265a97.js | 274 --- .../sunpanel/assets/index-b1580adf.js | 549 ------ .../sunpanel/assets/index-b1d3d9b0.js | 149 -- .../sunpanel/assets/index-b57a7b1c.js | 1 - .../sunpanel/assets/index-bb41db9d.js | 1 - .../sunpanel/assets/index-bc9666b7.js | 1729 ----------------- .../sunpanel/assets/index-c238f14b.js | 117 -- .../sunpanel/assets/index-c4f1fb1a.css | 1 - .../sunpanel/assets/index-d074e84b.js | 1 - .../sunpanel/assets/index-d715da4a.css | 1 - .../sunpanel/assets/index-e0b65a22.js | 1 - .../sunpanel/assets/index-ed75c22d.js | 1 - .../sunpanel/assets/index-f036cca6.css | 1 - .../sunpanel/assets/index-fd895f10.js | 1 - .../sunpanel/assets/logo-3d38229d.svg | 1 - .../sunpanel/assets/qq_group_qr2-e70d9e73.png | Bin 226022 -> 0 bytes .../luci-static/sunpanel/favicon-black.svg | 1 - .../htdocs/luci-static/sunpanel/favicon.ico | Bin 11500 -> 0 bytes .../htdocs/luci-static/sunpanel/favicon.svg | 1 - .../htdocs/luci-static/sunpanel/index.html | 87 - .../htdocs/luci-static/sunpanel/logo.png | Bin 63259 -> 0 bytes .../luci-static/sunpanel/static/global.css | 0 luci-app-trafficctl/Makefile | 62 +- .../resources/view/trafficctl/history.js | 1 + .../resources/view/trafficctl/portfw.js | 1 + .../resources/view/trafficctl/settings.js | 1 + .../resources/view/trafficctl/status.js | 7 +- .../po/templates/luci-app-trafficctl.pot | 12 + .../root/etc/config/trafficctl | 166 -- .../hotplug.d/dhcp/99-trafficctl-newdevice | 103 - .../etc/hotplug.d/iface/99-trafficctl-shapes | 122 -- .../root/etc/init.d/trafficctl-cut | 28 - .../root/etc/init.d/trafficctl-history | 41 - .../root/etc/init.d/trafficctl-telegram | 31 - .../lib/upgrade/keep.d/luci-app-trafficctl | 1 - .../root/usr/libexec/rpcd/luci.trafficctl | 5 +- .../root/usr/local/bin/trafficctl-block.sh | 75 - .../usr/local/bin/trafficctl-bytes-nft.sh | 101 - .../root/usr/local/bin/trafficctl-bytes.sh | 138 -- .../root/usr/local/bin/trafficctl-cut.sh | 597 ------ .../root/usr/local/bin/trafficctl-device.sh | 408 ---- .../root/usr/local/bin/trafficctl-fw.sh | 1458 -------------- .../root/usr/local/bin/trafficctl-history.sh | 1052 ---------- .../root/usr/local/bin/trafficctl-ifaces.sh | 299 --- .../usr/local/bin/trafficctl-macfilter-add.sh | 118 -- .../local/bin/trafficctl-macfilter-remove.sh | 101 - .../root/usr/local/bin/trafficctl-metrics.sh | 239 --- .../root/usr/local/bin/trafficctl-names.sh | 68 - .../root/usr/local/bin/trafficctl-netify.sh | 247 --- .../root/usr/local/bin/trafficctl-portfw.sh | 486 ----- .../local/bin/trafficctl-ratelimit-stats.sh | 101 - .../usr/local/bin/trafficctl-ratelimit.sh | 126 -- .../usr/local/bin/trafficctl-rdns-refresh.sh | 72 - .../root/usr/local/bin/trafficctl-rdns.sh | 42 - .../usr/local/bin/trafficctl-shape-stats.sh | 222 --- .../root/usr/local/bin/trafficctl-shape.sh | 395 ---- .../root/usr/local/bin/trafficctl-subnets.sh | 52 - .../root/usr/local/bin/trafficctl-summary.sh | 475 ----- .../usr/local/bin/trafficctl-telegram-test.sh | 94 - .../root/usr/local/bin/trafficctl-telegram.sh | 814 -------- .../root/usr/local/bin/trafficctl-totals.sh | 276 --- .../root/usr/local/bin/trafficctl-unblock.sh | 34 - .../root/www/cgi-bin/trafficctl-metrics | 32 - smartdns/Makefile | 6 +- sunpanel/Makefile | 33 +- sunpanel/files/conf.temp | 24 +- sunpanel/files/sunpanel.init | 12 +- xray-core/Makefile | 4 +- 185 files changed, 4346 insertions(+), 13942 deletions(-) create mode 100644 luci-app-openvpn-plus/google8db8fb957efb7575.html create mode 100644 luci-app-openvpn-plus/index.html create mode 100644 luci-app-openvpn-plus/sitemap.xml create mode 100644 luci-app-safeshield/.editorconfig create mode 100644 luci-app-safeshield/.gitattributes create mode 100644 luci-app-safeshield/.gitignore create mode 100644 luci-app-safeshield/CHANGELOG.md create mode 100644 luci-app-safeshield/LICENSE create mode 100644 luci-app-safeshield/Makefile create mode 100644 luci-app-safeshield/README.md create mode 100644 luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/config.js create mode 100644 luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/overview.js create mode 100644 luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/rules.js create mode 100644 luci-app-safeshield/po/templates/safeshield.pot create mode 120000 luci-app-safeshield/po/zh-cn create mode 100644 luci-app-safeshield/po/zh_Hans/safeshield.po create mode 100644 luci-app-safeshield/root/etc/uci-defaults/90_luci-app-safeshield create mode 100644 luci-app-safeshield/root/usr/share/luci/menu.d/luci-app-safeshield.json create mode 100644 luci-app-safeshield/root/usr/share/rpcd/acl.d/luci-app-safeshield.json delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/404-b0d1a3d9.svg delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/Alert-018ca7af.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/Divider-a11d112a.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/GradientText-44d798c5.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_AMS-Regular-0cdd387c.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_AMS-Regular-30da91e8.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_AMS-Regular-68534840.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Bold-07d8e303.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Bold-1ae6bd74.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Bold-de7701e4.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-3398dd02.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-5d53e70a.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-ed0b7437.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Fraktur-Bold-74444efd.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Fraktur-Bold-9163df9c.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Fraktur-Bold-9be7ceb8.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Fraktur-Regular-1e6f9579.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Fraktur-Regular-51814d27.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Fraktur-Regular-5e28753b.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Bold-0f60d1b8.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Bold-138ac28d.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Bold-c76c5d69.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-70ee1f64.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-99cd42a3.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-a6f7ec0d.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Italic-0d85ae7c.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Italic-97479ca6.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Italic-f1d6ef86.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-c2342cd8.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-c6368d87.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-d0332f52.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-BoldItalic-850c0af5.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-BoldItalic-dc47344d.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-BoldItalic-f9377ab0.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-Italic-08ce98e5.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-Italic-7af58c5e.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-Italic-8a8d2445.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Bold-1ece03f7.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Bold-e99ae511.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Bold-ece03cfd.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Italic-00b26ac8.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Italic-3931dd81.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Italic-91ee6750.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Regular-11e4dc8a.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Regular-68e8c73e.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Regular-f36ea897.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-036d4e95.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-1c67f068.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-d96cdf2b.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size1-Regular-6b47c401.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size1-Regular-95b6d2f1.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size1-Regular-c943cc98.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-2014c523.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-a6b2099f.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-d04c5421.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size3-Regular-500e04d5.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size3-Regular-6ab6b62e.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size4-Regular-99f9c675.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size4-Regular-a4af7d41.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size4-Regular-c647367d.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Typewriter-Regular-71d517d6.woff2 delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Typewriter-Regular-e14fed02.woff delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Typewriter-Regular-f01f3e87.ttf delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/_plugin-vue_export-helper-c27b6911.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/about-2688cabc.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/baidu-604a969a.svg delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/bing-4e21c40a.svg delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/defaultBackground-80f713c8.webp delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/gitee-9d895e3a.png delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/google-c8534e94.svg delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-2b251fda.css delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-2b595d91.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-36cf7848.css delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-7ae5884e.css delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-7e19b821.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-85275cb2.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8886367f.css delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8a6943bf.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8f0537f1.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8f8851de.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-93265a97.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b1580adf.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b1d3d9b0.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b57a7b1c.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-bb41db9d.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-bc9666b7.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-c238f14b.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-c4f1fb1a.css delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-d074e84b.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-d715da4a.css delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-e0b65a22.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-ed75c22d.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-f036cca6.css delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-fd895f10.js delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/logo-3d38229d.svg delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/qq_group_qr2-e70d9e73.png delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon-black.svg delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon.ico delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon.svg delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/index.html delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/logo.png delete mode 100644 luci-app-sunpanel/htdocs/luci-static/sunpanel/static/global.css delete mode 100644 luci-app-trafficctl/root/etc/config/trafficctl delete mode 100644 luci-app-trafficctl/root/etc/hotplug.d/dhcp/99-trafficctl-newdevice delete mode 100644 luci-app-trafficctl/root/etc/hotplug.d/iface/99-trafficctl-shapes delete mode 100755 luci-app-trafficctl/root/etc/init.d/trafficctl-cut delete mode 100755 luci-app-trafficctl/root/etc/init.d/trafficctl-history delete mode 100755 luci-app-trafficctl/root/etc/init.d/trafficctl-telegram delete mode 100644 luci-app-trafficctl/root/lib/upgrade/keep.d/luci-app-trafficctl delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-block.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-bytes-nft.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-bytes.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-cut.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-device.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-fw.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-history.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-ifaces.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-macfilter-add.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-macfilter-remove.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-metrics.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-names.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-netify.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-portfw.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-ratelimit-stats.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-ratelimit.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-rdns-refresh.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-rdns.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-shape-stats.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-shape.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-subnets.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-summary.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-telegram-test.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-telegram.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-totals.sh delete mode 100755 luci-app-trafficctl/root/usr/local/bin/trafficctl-unblock.sh delete mode 100755 luci-app-trafficctl/root/www/cgi-bin/trafficctl-metrics mode change 100755 => 100644 sunpanel/files/sunpanel.init diff --git a/clashoo/Makefile b/clashoo/Makefile index fa45e2c98..72c125524 100644 --- a/clashoo/Makefile +++ b/clashoo/Makefile @@ -6,13 +6,13 @@ PKG_UPSTREAM_TAG:=v$(PKG_UPSTREAM_VERSION) PKG_SHORT_SHA:=3f27ef3 PKG_VERSION:=2026.11.04.$(PKG_UPSTREAM_VERSION) -PKG_RELEASE:=27 +PKG_RELEASE:=28 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:=205f65fc18f4dd0579b421a2271e9d46ba8cb6f3 +PKG_SOURCE_VERSION:=afda9f677ba3fe1e6150936e01569c273f91af2d PKG_HASH:=skip PKG_BUILD_VERSION:=$(PKG_UPSTREAM_TAG) diff --git a/clashoo/files/usr/share/clashoo/nftables/geoip6_cn.nft b/clashoo/files/usr/share/clashoo/nftables/geoip6_cn.nft index daf983914..8c529b732 100644 --- a/clashoo/files/usr/share/clashoo/nftables/geoip6_cn.nft +++ b/clashoo/files/usr/share/clashoo/nftables/geoip6_cn.nft @@ -87,24 +87,7 @@ set clashoo_china6 { 2400:3cc0::/32, 2400:3e00::/32, 2400:3f40::/32, - 2400:3f60::/46, - 2400:3f60:5::/48, - 2400:3f60:6::/47, - 2400:3f60:8::/45, - 2400:3f60:13::/48, - 2400:3f60:14::/46, - 2400:3f60:18::/45, - 2400:3f60:20::/43, - 2400:3f60:40::/42, - 2400:3f60:80::/41, - 2400:3f60:100::/40, - 2400:3f60:200::/39, - 2400:3f60:400::/38, - 2400:3f60:800::/37, - 2400:3f60:1000::/36, - 2400:3f60:2000::/35, - 2400:3f60:4000::/34, - 2400:3f60:8000::/33, + 2400:3f60::/32, 2400:3fc0::/32, 2400:4440::/32, 2400:44c0::/32, @@ -588,7 +571,6 @@ set clashoo_china6 { 2401:8680:4020::/43, 2401:8680:4040::/42, 2401:8680:4080::/41, - 2401:8680:4100::/48, 2401:8680:4103::/48, 2401:8680:4104::/46, 2401:8680:4108::/45, @@ -962,6 +944,7 @@ set clashoo_china6 { 2402:7da0::/32, 2402:7e20::/32, 2402:7ee0::/32, + 2402:8160::/32, 2402:8180::/32, 2402:8300::/32, 2402:8380::/32, @@ -1259,7 +1242,7 @@ set clashoo_china6 { 2403:6380::/44, 2403:6380:20::/44, 2403:6380:33::/48, - 2403:6380:34::/46, + 2403:6380:36::/47, 2403:6380:38::/45, 2403:6380:41::/48, 2403:6380:44::/46, @@ -1491,9 +1474,6 @@ set clashoo_china6 { 2404:1e80::/32, 2404:1f40::/32, 2404:21c0::/32, - 2404:2280:1000::/36, - 2404:2280:2000::/35, - 2404:2280:4000::/36, 2404:30c0::/32, 2404:3140::/32, 2404:31c0::/32, @@ -1603,6 +1583,7 @@ set clashoo_china6 { 2405:480::/32, 2405:580::/32, 2405:680::/32, + 2405:6c0:1::/48, 2405:6c0:2::/47, 2405:6c0:4::/46, 2405:6c0:8::/45, @@ -2068,8 +2049,8 @@ set clashoo_china6 { 2406:840:a40::/42, 2406:840:a80::/41, 2406:840:b00::/40, - 2406:840:c00::/47, - 2406:840:c03::/48, + 2406:840:c00::/48, + 2406:840:c02::/47, 2406:840:c04::/46, 2406:840:c08::/45, 2406:840:c10::/44, @@ -2226,10 +2207,7 @@ set clashoo_china6 { 2406:840:5d00::/40, 2406:840:5e00::/39, 2406:840:6000::/35, - 2406:840:8000::/40, - 2406:840:8200::/39, - 2406:840:8400::/38, - 2406:840:8800::/37, + 2406:840:8000::/36, 2406:840:9010::/44, 2406:840:9020::/43, 2406:840:9040::/42, @@ -2284,10 +2262,7 @@ set clashoo_china6 { 2406:840:9968::/46, 2406:840:996d::/48, 2406:840:996e::/47, - 2406:840:9970::/46, - 2406:840:9974::/47, - 2406:840:9976::/48, - 2406:840:9978::/45, + 2406:840:9970::/44, 2406:840:9981::/48, 2406:840:9982::/47, 2406:840:9984::/46, @@ -2319,9 +2294,7 @@ set clashoo_china6 { 2406:840:e0d0::/44, 2406:840:e0e4::/48, 2406:840:e0e6::/47, - 2406:840:e0e9::/48, - 2406:840:e0ea::/47, - 2406:840:e0ec::/46, + 2406:840:e0e8::/45, 2406:840:e0f0::/44, 2406:840:e100::/45, 2406:840:e108::/46, @@ -2342,9 +2315,7 @@ set clashoo_china6 { 2406:840:e220::/43, 2406:840:e240::/43, 2406:840:e260::/44, - 2406:840:e271::/48, - 2406:840:e272::/47, - 2406:840:e274::/46, + 2406:840:e270::/45, 2406:840:e278::/46, 2406:840:e27c::/47, 2406:840:e27e::/48, @@ -2408,7 +2379,7 @@ set clashoo_china6 { 2406:840:ea00::/40, 2406:840:eb06::/48, 2406:840:eb09::/48, - 2406:840:eb0a::/47, + 2406:840:eb0a::/48, 2406:840:eb0c::/47, 2406:840:eb0e::/48, 2406:840:eb10::/44, @@ -2656,7 +2627,10 @@ set clashoo_china6 { 2406:840:fee8::/46, 2406:840:feec::/48, 2406:840:feee::/47, - 2406:840:ff00::/40, + 2406:840:feff::/48, + 2406:840:ff20::/43, + 2406:840:ff40::/42, + 2406:840:ff80::/41, 2406:880::/32, 2406:8c0::/32, 2406:d80::/32, @@ -3064,7 +3038,26 @@ set clashoo_china6 { 2407:fb80::/32, 2407:fc80::/32, 2407:fd80::/32, - 2408:4000::/28, + 2408:4000::/40, + 2408:4000:100::/47, + 2408:4000:103::/48, + 2408:4000:104::/46, + 2408:4000:108::/45, + 2408:4000:110::/44, + 2408:4000:120::/43, + 2408:4000:140::/42, + 2408:4000:180::/41, + 2408:4000:200::/39, + 2408:4000:400::/38, + 2408:4000:800::/37, + 2408:4000:1000::/36, + 2408:4000:2000::/35, + 2408:4000:4000::/34, + 2408:4000:8000::/33, + 2408:4001::/32, + 2408:4002::/31, + 2408:4004::/30, + 2408:4008::/29, 2408:4010::/30, 2408:4014::/31, 2408:4016:1::/48, @@ -3130,40 +3123,6 @@ set clashoo_china6 { 240a:a000::/20, 240a:c000::/20, 240b:2000::/22, - 240b:4000::/31, - 240b:4002::/36, - 240b:4002:1000::/44, - 240b:4002:1011::/48, - 240b:4002:1012::/47, - 240b:4002:1014::/46, - 240b:4002:1018::/45, - 240b:4002:1020::/43, - 240b:4002:1040::/42, - 240b:4002:1080::/41, - 240b:4002:1100::/40, - 240b:4002:1200::/39, - 240b:4002:1400::/38, - 240b:4002:1800::/37, - 240b:4002:2000::/35, - 240b:4002:4000::/34, - 240b:4002:8000::/33, - 240b:4004::/31, - 240b:4006::/48, - 240b:4006:1000::/43, - 240b:4006:1020::/44, - 240b:4006:1100::/44, - 240b:4006:1110::/45, - 240b:4006:1118::/46, - 240b:4007::/32, - 240b:4009::/32, - 240b:400b::/32, - 240b:400c::/30, - 240b:4010:fffe::/47, - 240b:4011::/32, - 240b:4012::/31, - 240b:4014::/30, - 240b:4018::/30, - 240b:401f::/32, 240b:6000::/20, 240b:8000::/21, 240b:a000::/25, @@ -3320,6 +3279,7 @@ set clashoo_china6 { 2a04:f580:9280::/48, 2a04:f580:9290::/48, 2a05:1085::/32, + 2a06:9801:20::/48, 2a0a:2840::/29, 2a0a:d680::/37, 2a0a:d680:800::/39, @@ -3361,7 +3321,6 @@ set clashoo_china6 { 2a0a:d682::/33, 2a0a:d682:8000::/34, 2a0a:d682:c000::/36, - 2a0a:d683::/32, 2a0a:d684::/32, 2a0a:d685::/40, 2a0a:d685:100::/41, @@ -3377,7 +3336,6 @@ set clashoo_china6 { 2a0a:d685:1f0::/45, 2a0a:d685:1f8::/47, 2a0a:d685:1fa::/48, - 2a0a:d685:200::/48, 2a0a:d685:202::/47, 2a0a:d685:204::/46, 2a0a:d685:208::/45, @@ -3386,7 +3344,10 @@ set clashoo_china6 { 2a0a:d685:240::/42, 2a0a:d685:280::/41, 2a0a:d685:400::/40, - 2a0a:d685:500::/45, + 2a0a:d685:500::/48, + 2a0a:d685:502::/47, + 2a0a:d685:504::/48, + 2a0a:d685:506::/47, 2a0a:d685:508::/48, 2a0a:d685:50a::/47, 2a0a:d685:50c::/46, diff --git a/clashoo/files/usr/share/clashoo/nftables/geoip_cn.nft b/clashoo/files/usr/share/clashoo/nftables/geoip_cn.nft index 37b399112..18befeb01 100644 --- a/clashoo/files/usr/share/clashoo/nftables/geoip_cn.nft +++ b/clashoo/files/usr/share/clashoo/nftables/geoip_cn.nft @@ -64,7 +64,6 @@ set clashoo_china { 5.10.138.0/23, 5.10.140.0/24, 5.10.143.0/24, - 5.181.224.0/23, 8.128.4.0/22, 8.128.32.0/19, 8.128.64.0/19, @@ -89,95 +88,14 @@ set clashoo_china { 8.162.0.0/17, 8.163.0.0/16, 8.164.0.0/14, - 8.168.0.0/15, + 8.168.0.0/14, 8.176.0.0/17, 8.176.128.0/19, - 8.208.0.0/17, - 8.208.128.0/21, - 8.208.140.0/22, - 8.208.144.0/20, - 8.208.160.0/19, - 8.208.192.0/18, - 8.209.0.0/19, - 8.209.36.0/22, - 8.209.40.0/21, - 8.209.48.0/20, - 8.209.64.0/18, - 8.209.128.0/18, - 8.209.192.0/24, - 8.209.194.0/23, - 8.209.196.0/22, - 8.209.200.0/21, - 8.209.208.0/20, - 8.209.224.0/19, - 8.210.0.0/16, - 8.211.0.0/17, - 8.211.128.0/18, - 8.211.192.0/19, - 8.211.224.0/22, - 8.211.232.0/21, - 8.211.240.0/20, - 8.212.0.0/18, - 8.212.64.0/20, - 8.212.80.0/21, - 8.212.88.0/22, - 8.212.92.0/24, - 8.212.94.0/23, - 8.212.96.0/22, - 8.212.104.0/21, - 8.212.112.0/20, - 8.212.128.0/19, - 8.212.160.0/20, - 8.212.176.0/21, - 8.212.188.0/22, - 8.212.192.0/18, - 8.213.0.0/16, - 8.214.0.0/17, - 8.214.128.0/19, - 8.214.164.0/22, - 8.214.168.0/21, - 8.214.176.0/20, - 8.214.192.0/18, - 8.215.0.0/17, - 8.215.128.0/19, - 8.215.160.0/22, - 8.215.168.0/21, - 8.215.176.0/20, - 8.215.192.0/18, - 8.216.0.0/18, - 8.216.64.0/21, - 8.216.72.0/22, - 8.216.80.0/20, - 8.216.96.0/19, - 8.216.128.0/17, - 8.217.0.0/16, - 8.218.0.0/15, - 8.220.0.0/18, - 8.220.64.0/19, - 8.220.96.0/20, - 8.220.112.0/21, - 8.220.120.0/22, - 8.220.128.0/19, - 8.220.160.0/21, - 8.220.172.0/22, - 8.220.176.0/20, - 8.220.192.0/19, - 8.220.224.0/21, - 8.220.232.0/22, - 8.220.240.0/21, - 8.221.0.0/17, - 8.221.128.0/20, - 8.221.144.0/21, - 8.221.156.0/22, - 8.221.160.0/19, - 8.221.192.0/18, - 8.222.0.0/15, 14.0.0.0/21, 14.0.12.0/22, 14.1.0.0/22, 14.1.24.0/22, 14.1.108.0/22, - 14.1.112.0/22, 14.16.0.0/12, 14.102.128.0/22, 14.102.180.0/22, @@ -208,6 +126,7 @@ set clashoo_china { 27.54.72.0/21, 27.54.152.0/21, 27.54.192.0/18, + 27.98.202.0/23, 27.98.208.0/20, 27.98.224.0/19, 27.99.128.0/17, @@ -390,79 +309,6 @@ set clashoo_china { 42.242.0.0/15, 42.244.0.0/14, 42.248.0.0/13, - 43.90.0.0/16, - 43.92.0.0/15, - 43.94.0.0/18, - 43.96.0.0/23, - 43.96.2.130/32, - 43.96.3.0/24, - 43.96.4.0/22, - 43.96.8.0/22, - 43.96.16.130/32, - 43.96.18.0/24, - 43.96.20.0/22, - 43.96.24.0/22, - 43.96.32.0/22, - 43.96.36.130/32, - 43.96.40.0/24, - 43.96.42.0/24, - 43.96.44.0/23, - 43.96.46.0/24, - 43.96.48.0/21, - 43.96.59.0/24, - 43.96.60.0/24, - 43.96.62.0/23, - 43.96.64.0/21, - 43.96.72.0/22, - 43.96.77.131/32, - 43.96.78.0/24, - 43.96.80.0/23, - 43.96.85.0/24, - 43.96.86.0/24, - 43.96.88.0/23, - 43.96.90.0/24, - 43.96.92.0/22, - 43.96.96.0/23, - 43.96.100.0/23, - 43.96.103.0/24, - 43.96.104.0/23, - 43.96.107.0/24, - 43.96.109.0/24, - 43.96.110.0/23, - 43.96.112.0/22, - 43.96.116.0/24, - 43.96.118.0/23, - 43.96.120.0/24, - 43.96.122.0/24, - 43.96.124.0/23, - 43.96.126.0/24, - 43.97.0.0/17, - 43.98.0.0/15, - 43.100.0.0/15, - 43.102.0.0/17, - 43.102.192.0/18, - 43.103.0.0/16, - 43.104.0.0/14, - 43.108.0.0/16, - 43.110.0.0/15, - 43.112.0.0/15, - 43.114.0.0/16, - 43.116.0.0/17, - 43.116.160.0/24, - 43.116.192.0/18, - 43.117.0.0/16, - 43.118.0.0/17, - 43.118.128.0/18, - 43.119.0.0/16, - 43.120.0.0/15, - 43.122.0.0/16, - 43.123.0.0/17, - 43.123.128.0/18, - 43.124.0.0/16, - 43.125.0.0/19, - 43.125.32.0/20, - 43.125.48.0/21, - 43.126.0.0/17, 43.136.0.0/13, 43.144.0.0/15, 43.148.0.0/14, @@ -765,7 +611,9 @@ set clashoo_china { 45.113.168.0/22, 45.113.176.0/22, 45.113.184.0/22, - 45.113.200.0/21, + 45.113.200.0/23, + 45.113.202.0/24, + 45.113.204.0/22, 45.113.208.0/20, 45.113.240.0/22, 45.113.252.0/22, @@ -885,7 +733,6 @@ set clashoo_china { 45.127.128.0/22, 45.127.144.0/21, 45.127.156.0/22, - 45.199.179.0/24, 45.248.8.0/22, 45.248.80.0/21, 45.248.96.0/20, @@ -989,158 +836,8 @@ set clashoo_china { 45.255.224.0/20, 45.255.240.0/21, 45.255.248.0/22, - 47.52.0.0/16, - 47.56.0.0/16, - 47.57.0.0/17, - 47.57.128.0/18, - 47.57.192.0/22, - 47.57.196.0/24, - 47.57.198.0/23, - 47.57.200.0/21, - 47.57.208.0/20, - 47.57.224.0/19, - 47.74.0.0/15, - 47.76.0.0/16, - 47.77.0.0/20, - 47.77.16.0/21, - 47.77.24.0/22, - 47.77.32.0/19, - 47.77.64.0/19, - 47.77.96.0/20, - 47.77.112.0/23, - 47.77.128.0/17, - 47.78.0.0/15, - 47.80.0.0/14, - 47.84.0.0/15, - 47.86.0.0/16, - 47.87.0.0/20, - 47.87.16.0/21, - 47.87.32.0/19, - 47.87.64.0/21, - 47.87.80.0/20, - 47.87.96.0/19, - 47.87.128.0/20, - 47.87.144.0/21, - 47.87.156.0/22, - 47.87.160.0/19, - 47.87.192.0/18, - 47.88.0.0/16, - 47.89.0.0/18, - 47.89.72.0/21, - 47.89.80.0/22, - 47.89.84.0/24, - 47.89.88.0/23, - 47.89.90.0/24, - 47.89.92.0/22, - 47.89.96.0/20, - 47.89.122.0/23, - 47.89.124.0/23, - 47.89.128.0/17, - 47.90.0.0/17, - 47.90.128.0/19, - 47.90.160.0/21, - 47.90.168.0/22, - 47.90.176.0/20, - 47.90.192.0/18, - 47.91.0.0/16, 47.92.0.0/14, 47.96.0.0/11, - 47.235.0.0/21, - 47.235.8.0/22, - 47.235.12.0/23, - 47.235.16.0/20, - 47.236.0.0/17, - 47.236.128.0/18, - 47.236.192.0/20, - 47.236.208.0/21, - 47.236.220.0/22, - 47.236.224.0/19, - 47.237.0.0/17, - 47.237.128.0/18, - 47.237.192.0/19, - 47.237.224.0/20, - 47.237.240.0/21, - 47.237.249.0/24, - 47.237.250.0/23, - 47.237.252.0/22, - 47.238.0.0/20, - 47.238.16.0/21, - 47.238.28.0/22, - 47.238.32.0/19, - 47.238.64.0/18, - 47.238.128.0/17, - 47.239.0.0/16, - 47.240.0.0/14, - 47.244.0.0/16, - 47.245.0.0/17, - 47.245.128.0/20, - 47.245.144.0/21, - 47.245.152.0/22, - 47.245.160.0/19, - 47.245.192.0/20, - 47.245.208.0/21, - 47.245.216.0/22, - 47.245.224.0/19, - 47.246.32.0/22, - 47.246.66.0/23, - 47.246.68.0/23, - 47.246.72.0/21, - 47.246.82.0/23, - 47.246.84.0/22, - 47.246.88.0/23, - 47.246.91.0/24, - 47.246.92.0/23, - 47.246.96.0/22, - 47.246.101.0/24, - 47.246.102.0/23, - 47.246.104.0/21, - 47.246.120.0/24, - 47.246.122.0/23, - 47.246.124.0/23, - 47.246.128.0/23, - 47.246.131.0/24, - 47.246.132.0/23, - 47.246.135.0/24, - 47.246.136.0/21, - 47.246.144.0/22, - 47.246.150.0/23, - 47.246.152.0/22, - 47.246.157.0/24, - 47.246.158.0/23, - 47.246.160.0/23, - 47.246.162.0/24, - 47.246.164.0/22, - 47.246.168.0/21, - 47.246.176.0/20, - 47.246.192.0/20, - 47.246.208.0/23, - 47.246.212.0/22, - 47.246.216.0/22, - 47.250.0.0/18, - 47.250.68.0/22, - 47.250.72.0/21, - 47.250.80.0/20, - 47.250.96.0/21, - 47.250.108.0/22, - 47.250.112.0/20, - 47.250.128.0/17, - 47.251.0.0/17, - 47.251.132.0/22, - 47.251.136.0/21, - 47.251.144.0/20, - 47.251.160.0/19, - 47.251.196.0/22, - 47.251.200.0/21, - 47.251.208.0/20, - 47.251.224.0/19, - 47.252.0.0/16, - 47.253.0.0/18, - 47.253.64.0/19, - 47.253.96.0/20, - 47.253.112.0/21, - 47.253.120.0/22, - 47.253.128.0/17, - 47.254.0.0/16, 49.4.0.0/17, 49.4.128.0/22, 49.4.160.0/20, @@ -1191,7 +888,7 @@ set clashoo_china { 58.30.0.0/15, 58.32.0.0/11, 58.65.232.0/21, - 58.67.128.0/17, + 58.66.0.0/15, 58.68.224.0/19, 58.82.0.0/17, 58.83.0.0/16, @@ -1207,9 +904,7 @@ set clashoo_china { 59.32.0.0/11, 59.64.0.0/12, 59.80.0.0/14, - 59.107.0.0/17, - 59.107.226.0/24, - 59.107.255.0/24, + 59.107.0.0/16, 59.108.0.0/14, 59.151.0.0/17, 59.152.16.0/20, @@ -1278,7 +973,6 @@ set clashoo_china { 61.232.0.0/14, 61.236.0.0/15, 61.240.0.0/14, - 62.182.190.0/23, 62.234.0.0/16, 63.140.0.0/24, 63.140.3.0/24, @@ -1305,6 +999,7 @@ set clashoo_china { 81.173.28.0/24, 82.156.0.0/15, 94.191.0.0/17, + 95.82.8.0/23, 101.0.0.0/22, 101.1.0.0/22, 101.2.172.0/22, @@ -1524,7 +1219,7 @@ set clashoo_china { 103.19.64.0/21, 103.19.72.0/22, 103.19.233.0/24, - 103.19.234.0/23, + 103.19.235.0/24, 103.20.12.0/22, 103.20.32.0/24, 103.20.34.0/23, @@ -1801,7 +1496,8 @@ set clashoo_china { 103.53.64.0/21, 103.53.92.0/22, 103.53.100.0/22, - 103.53.124.0/22, + 103.53.124.0/23, + 103.53.126.0/24, 103.53.128.0/20, 103.53.144.0/22, 103.53.180.0/22, @@ -1982,6 +1678,7 @@ set clashoo_china { 103.74.48.0/22, 103.74.56.0/21, 103.74.80.0/22, + 103.74.124.0/24, 103.74.126.0/23, 103.74.148.0/22, 103.74.152.0/21, @@ -2042,7 +1739,7 @@ set clashoo_china { 103.81.120.0/22, 103.81.148.0/22, 103.81.164.0/22, - 103.81.184.0/22, + 103.81.184.0/23, 103.81.200.0/22, 103.81.232.0/22, 103.82.60.0/22, @@ -2337,6 +2034,7 @@ set clashoo_china { 103.114.212.0/22, 103.114.236.0/22, 103.114.240.0/22, + 103.115.19.0/24, 103.115.52.0/22, 103.115.68.0/22, 103.115.92.0/22, @@ -2364,7 +2062,6 @@ set clashoo_china { 103.118.64.0/21, 103.118.72.0/22, 103.118.88.0/22, - 103.118.210.0/23, 103.118.212.0/22, 103.118.216.0/22, 103.118.248.0/22, @@ -2653,6 +2350,7 @@ set clashoo_china { 103.177.28.0/23, 103.177.44.0/23, 103.177.71.0/24, + 103.177.136.0/24, 103.177.162.0/23, 103.178.240.0/23, 103.179.76.0/22, @@ -3259,7 +2957,16 @@ set clashoo_china { 110.6.0.0/15, 110.16.0.0/14, 110.34.40.0/21, - 110.40.0.0/14, + 110.40.0.0/15, + 110.42.0.0/20, + 110.42.16.0/24, + 110.42.18.0/23, + 110.42.20.0/22, + 110.42.24.0/21, + 110.42.32.0/19, + 110.42.64.0/18, + 110.42.128.0/17, + 110.43.0.0/16, 110.44.12.0/22, 110.44.144.0/20, 110.48.0.0/16, @@ -3578,7 +3285,6 @@ set clashoo_china { 116.242.0.0/15, 116.244.0.0/14, 116.248.0.0/15, - 116.251.64.0/18, 116.252.0.0/15, 116.254.104.0/21, 116.254.128.0/17, @@ -3870,7 +3576,9 @@ set clashoo_china { 121.248.0.0/14, 121.255.0.0/16, 122.0.64.0/18, - 122.0.128.0/17, + 122.0.160.0/19, + 122.0.192.0/19, + 122.0.224.0/20, 122.4.0.0/14, 122.8.52.0/22, 122.8.57.0/24, @@ -4035,10 +3743,19 @@ set clashoo_china { 124.6.64.0/18, 124.14.0.0/15, 124.16.0.0/15, - 124.20.0.0/16, + 124.20.32.0/19, + 124.20.64.0/19, + 124.20.96.0/20, + 124.20.128.0/18, + 124.20.192.0/19, + 124.20.240.0/20, 124.21.32.0/19, - 124.21.64.0/18, - 124.21.128.0/17, + 124.21.80.0/20, + 124.21.96.0/19, + 124.21.144.0/20, + 124.21.160.0/19, + 124.21.208.0/20, + 124.21.224.0/19, 124.22.0.0/15, 124.28.192.0/18, 124.29.0.0/17, @@ -4076,15 +3793,7 @@ set clashoo_china { 124.151.0.0/16, 124.152.0.0/16, 124.160.0.0/13, - 124.172.87.0/24, - 124.172.88.0/23, - 124.172.91.0/24, - 124.172.93.0/24, - 124.172.128.0/17, - 124.173.64.0/18, - 124.173.128.0/18, - 124.173.205.0/24, - 124.174.0.0/15, + 124.172.0.0/14, 124.192.0.0/15, 124.196.0.0/16, 124.197.56.0/21, @@ -4153,15 +3862,6 @@ set clashoo_china { 139.5.212.0/22, 139.5.244.0/22, 139.9.0.0/16, - 139.95.0.0/20, - 139.95.16.0/22, - 139.95.22.0/23, - 139.95.24.0/21, - 139.95.32.0/21, - 139.95.40.0/23, - 139.95.64.0/23, - 139.95.96.0/22, - 139.95.128.0/17, 139.129.0.0/16, 139.148.0.0/16, 139.155.0.0/16, @@ -4222,7 +3922,14 @@ set clashoo_china { 140.179.0.0/16, 140.205.0.0/16, 140.206.0.0/15, - 140.210.0.0/16, + 140.210.0.0/20, + 140.210.17.0/24, + 140.210.18.0/24, + 140.210.20.0/22, + 140.210.24.0/21, + 140.210.32.0/19, + 140.210.64.0/18, + 140.210.128.0/17, 140.224.0.0/16, 140.237.0.0/16, 140.240.0.0/16, @@ -4279,23 +3986,9 @@ set clashoo_china { 146.222.94.0/24, 147.78.132.0/24, 147.78.134.0/24, - 147.139.0.0/17, - 147.139.128.0/18, - 147.139.192.0/19, - 147.139.224.0/20, - 147.139.240.0/21, - 147.139.248.0/22, 148.70.0.0/16, 149.41.64.0/18, 149.41.192.0/19, - 149.129.0.0/20, - 149.129.16.0/21, - 149.129.32.0/19, - 149.129.64.0/18, - 149.129.128.0/19, - 149.129.168.0/21, - 149.129.176.0/20, - 149.129.192.0/18, 150.0.0.0/16, 150.115.0.0/16, 150.121.0.0/16, @@ -4335,7 +4028,7 @@ set clashoo_china { 151.158.14.0/23, 151.158.78.0/23, 151.158.80.0/23, - 151.158.122.0/23, + 151.158.123.0/24, 152.104.128.0/17, 152.136.0.0/16, 153.0.0.0/16, @@ -4353,10 +4046,6 @@ set clashoo_china { 156.107.170.0/24, 156.107.179.0/24, 156.107.181.0/24, - 156.227.20.0/24, - 156.236.12.0/24, - 156.236.17.0/24, - 156.245.1.0/24, 157.0.0.0/16, 157.10.34.0/23, 157.10.36.0/23, @@ -4452,7 +4141,6 @@ set clashoo_china { 160.250.170.0/23, 160.250.214.0/23, 160.250.252.0/23, - 161.117.0.0/16, 161.163.0.0/21, 161.163.28.0/23, 161.189.0.0/16, @@ -4510,7 +4198,9 @@ set clashoo_china { 163.204.0.0/16, 163.223.28.0/23, 163.223.32.0/23, + 163.223.72.0/23, 163.223.124.0/23, + 163.223.216.0/24, 163.223.222.0/23, 163.227.34.0/23, 163.227.40.0/23, @@ -4538,29 +4228,6 @@ set clashoo_china { 167.189.0.0/16, 167.220.244.0/22, 168.160.0.0/16, - 170.33.15.0/24, - 170.33.20.0/22, - 170.33.24.0/24, - 170.33.29.0/24, - 170.33.30.0/23, - 170.33.32.0/22, - 170.33.41.0/24, - 170.33.64.0/23, - 170.33.66.0/24, - 170.33.68.0/23, - 170.33.72.0/23, - 170.33.76.0/22, - 170.33.80.0/22, - 170.33.84.0/24, - 170.33.104.0/22, - 170.33.112.0/23, - 170.33.114.0/24, - 170.33.129.0/24, - 170.33.130.0/23, - 170.33.136.0/23, - 170.33.138.0/24, - 170.33.168.0/23, - 170.33.192.0/23, 170.179.0.0/16, 171.8.0.0/13, 171.34.0.0/15, @@ -4601,7 +4268,10 @@ set clashoo_china { 177.201.160.0/19, 177.203.96.0/19, 177.203.224.0/19, + 178.236.38.0/23, + 178.236.233.0/24, 178.236.234.0/24, + 178.236.237.0/24, 179.236.0.0/19, 180.76.16.0/20, 180.76.32.0/19, @@ -4739,12 +4409,6 @@ set clashoo_china { 193.119.0.0/19, 194.138.202.0/23, 194.138.245.0/24, - 198.11.128.0/20, - 198.11.145.0/24, - 198.11.146.0/23, - 198.11.148.0/22, - 198.11.152.0/21, - 198.11.160.0/19, 198.175.100.0/22, 198.208.17.0/24, 198.208.19.0/24, @@ -5115,7 +4779,8 @@ set clashoo_china { 202.143.56.0/21, 202.143.100.0/22, 202.143.104.0/22, - 202.144.196.0/22, + 202.144.196.0/23, + 202.144.198.0/24, 202.146.160.0/20, 202.146.184.0/23, 202.146.186.0/24, @@ -6100,7 +5765,17 @@ set clashoo_china { 203.104.32.0/20, 203.105.96.0/19, 203.105.128.0/19, - 203.107.0.0/17, + 203.107.0.0/23, + 203.107.2.0/24, + 203.107.4.0/22, + 203.107.8.0/21, + 203.107.16.0/20, + 203.107.32.0/19, + 203.107.69.0/24, + 203.107.70.0/23, + 203.107.72.0/21, + 203.107.80.0/20, + 203.107.96.0/19, 203.110.160.0/19, 203.110.208.0/20, 203.110.232.0/23, @@ -6238,8 +5913,6 @@ set clashoo_china { 203.223.16.0/24, 203.223.21.0/24, 203.223.22.0/23, - 205.204.96.0/19, - 206.109.70.0/23, 206.109.75.0/24, 210.2.0.0/19, 210.5.0.0/19, @@ -6286,7 +5959,7 @@ set clashoo_china { 211.100.0.0/15, 211.102.0.0/17, 211.102.128.0/21, - 211.102.144.0/21, + 211.102.144.0/20, 211.102.160.0/20, 211.102.192.0/18, 211.103.0.0/16, @@ -6295,6 +5968,7 @@ set clashoo_china { 211.148.0.0/16, 211.149.0.0/19, 211.149.32.0/22, + 211.149.44.0/22, 211.149.48.0/21, 211.149.64.0/21, 211.149.80.0/21, @@ -6336,9 +6010,7 @@ set clashoo_china { 218.30.32.0/22, 218.30.36.0/23, 218.30.38.0/24, - 218.30.40.0/22, - 218.30.45.0/24, - 218.30.46.0/23, + 218.30.40.0/21, 218.30.48.0/21, 218.30.56.0/22, 218.30.60.0/23, @@ -6492,9 +6164,11 @@ set clashoo_china { 223.122.18.0/23, 223.122.20.0/22, 223.122.26.0/23, - 223.122.28.0/23, + 223.122.29.0/24, + 223.123.176.0/21, 223.123.196.0/22, - 223.123.204.0/22, + 223.123.205.0/24, + 223.123.206.0/23, 223.123.208.0/20, 223.123.224.0/19, 223.124.0.0/14, diff --git a/clashoo/files/usr/share/clashoo/ruleset/cn-ip.srs b/clashoo/files/usr/share/clashoo/ruleset/cn-ip.srs index 03e9ee7ff0c1274d14ee2d3799c72a47c6092f3d..29c86af011eec74713ee0e56e65059981709795e 100644 GIT binary patch literal 36438 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 literal 37214 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 diff --git a/clashoo/files/usr/share/clashoo/ruleset/geolocation-!cn.srs b/clashoo/files/usr/share/clashoo/ruleset/geolocation-!cn.srs index b1101499d7837da2af4143ed93991bd1974789b1..aa25f70b015d55801433ac906700c075098ca9e0 100644 GIT binary patch delta 165575 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 PfA{|d00960_}0{etuD=( delta 165339 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πr%nX+xyabx<*1C+6Zq3~gq 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 literal 27885 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 diff --git a/dae/Makefile b/dae/Makefile index 8d62c0f85..7a31a0500 100644 --- a/dae/Makefile +++ b/dae/Makefile @@ -5,10 +5,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dae -PKG_VERSION:=2026.11.05 -PKG_RELEASE:=54 +PKG_VERSION:=2026.11.09 +PKG_RELEASE:=55 -PKG_SOURCE:=dae-src-2026.11.05-7cf97ff42dc6.tar.gz +PKG_SOURCE:=dae-src-2026.11.09-45df6d7de7ee.tar.gz PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/dae-src PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_HASH:=skip diff --git a/daed/Makefile b/daed/Makefile index ae25fad28..ab1cc7caf 100644 --- a/daed/Makefile +++ b/daed/Makefile @@ -5,10 +5,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=daed -PKG_VERSION:=2026.11.05 -PKG_RELEASE:=66 +PKG_VERSION:=2026.11.09 +PKG_RELEASE:=67 -PKG_SOURCE:=daed-src-2026.11.05-b1e30bc02200.tar.gz +PKG_SOURCE:=daed-src-2026.11.09-82f4f6af67da.tar.gz PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-daede/releases/download/daed-src PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_HASH:=skip diff --git a/ddns-go/Makefile b/ddns-go/Makefile index f1d4d5016..7e41a763d 100644 --- a/ddns-go/Makefile +++ b/ddns-go/Makefile @@ -5,8 +5,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ddns-go -PKG_VERSION:=6.17.7 -PKG_RELEASE:=24 +PKG_VERSION:=6.17.8 +PKG_RELEASE:=25 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/jeessy2/ddns-go/tar.gz/v$(PKG_VERSION)? diff --git a/fastnet/Makefile b/fastnet/Makefile index 5499467be..6c0258e9b 100644 --- a/fastnet/Makefile +++ b/fastnet/Makefile @@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk PKG_ARCH_FASTNET:=$(ARCH) PKG_NAME:=fastnet -PKG_VERSION:=0.8.0 -PKG_RELEASE:=8 +PKG_VERSION:=0.8.1 +PKG_RELEASE:=9 PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/istoreos/istoreos-app-hub/releases/download/fastnet-runtime-v$(PKG_VERSION)/ diff --git a/luci-app-fastnet/Makefile b/luci-app-fastnet/Makefile index ce5764f0c..f9d807f63 100644 --- a/luci-app-fastnet/Makefile +++ b/luci-app-fastnet/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for fastnet LUCI_DEPENDS:=+fastnet +luci-lib-linkeaseauth +linkease-app-entry LUCI_PKGARCH:=all -PKG_VERSION:=0.8.0-r5 -PKG_RELEASE:=6 +PKG_VERSION:=0.8.1-r5 +PKG_RELEASE:=7 LUCI_MINIFY_CSS:=0 LUCI_MINIFY_JS:=0 diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js index 16098d4a3..b25a7b4a9 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo/listeners.js @@ -240,7 +240,7 @@ function renderListeners(s, uciconfig, isClient) { } } o.renderWidget = function(section_id, option_index, cfgvalue) { - let node = form.Value.prototype.renderWidget.call(this, section_id, option_index, cfgvalue); + let node = form.Value.prototype.renderWidget.apply(this, arguments); const cbid = this.cbid(section_id) + '._keytype_select'; const selected = this.hm_options.type; @@ -305,7 +305,7 @@ function renderListeners(s, uciconfig, isClient) { o = s.taboption('field_general', form.DynamicList, 'sudoku_custom_tables', _('Custom byte layout'), _('Only applies to the %s.').format(_('Low-entropy data stream'))); - o.renderWidget = function(/* ... */) { + o.renderWidget = function(section_id, option_index, cfgvalue) { let node = form.DynamicList.prototype.renderWidget.apply(this, arguments); (node.querySelector('.control-group') || node).appendChild(E('button', { @@ -954,7 +954,7 @@ function renderListeners(s, uciconfig, isClient) { } } o.renderWidget = function(section_id, option_index, cfgvalue) { - let node = hm.TextValue.prototype.renderWidget.call(this, section_id, option_index, cfgvalue); + let node = hm.TextValue.prototype.renderWidget.apply(this, arguments); const cbid = this.cbid(section_id) + '._keytype_select'; const selected = this.hm_options.type; @@ -1216,7 +1216,7 @@ function renderListeners(s, uciconfig, isClient) { } } o.renderWidget = function(section_id, option_index, cfgvalue) { - let node = hm.TextValue.prototype.renderWidget.call(this, section_id, option_index, cfgvalue); + let node = hm.TextValue.prototype.renderWidget.apply(this, arguments); const cbid = this.cbid(section_id) + '._outer_sni'; node.appendChild(E('div', { 'class': 'control-group' }, [ diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js index 63735986c..5e46b3688 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js @@ -596,7 +596,7 @@ return view.extend({ } } so.renderWidget = function(section_id, option_index, cfgvalue) { - let node = hm.TextValue.prototype.renderWidget.call(this, section_id, option_index, cfgvalue); + let node = hm.TextValue.prototype.renderWidget.apply(this, arguments); const cbid = this.cbid(section_id) + '._outer_sni'; node.appendChild(E('div', { 'class': 'control-group' }, [ diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/node.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/node.js index 94fcca8f9..84cc2e400 100644 --- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/node.js +++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/node.js @@ -2459,7 +2459,7 @@ return view.extend({ } } so.renderWidget = function(section_id, option_index, cfgvalue) { - let node = form.Value.prototype.renderWidget.call(this, section_id, option_index, cfgvalue); + let node = form.Value.prototype.renderWidget.apply(this, arguments); const cbid = this.cbid(section_id) + '._keytype_select'; const selected = this.hm_options.type; diff --git a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc index c3e9c8242..9952da33e 100644 --- a/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc +++ b/luci-app-fchomo/root/usr/share/fchomo/generate_client.uc @@ -121,6 +121,20 @@ function parse_filter(cfg) { return cfg; } +function get_listener(cfg, no_verify) { + if (isEmpty(cfg)) + return null; + + const label = uci.get(uciconf, cfg, 'label'); + if (isEmpty(label)) { + if (no_verify) + return cfg; + else + die(sprintf("%s's label is missing, please check your configuration.", cfg)); + } else + return label; +} + function get_proxy(cfg, no_verify) { if (isEmpty(cfg)) return null; @@ -179,7 +193,11 @@ function parse_entry(cfg) { function _payloadStrategy(payload) { // LOGIC_TYPE,((payload1),(payload2)) if (payload.factor === null || (type(payload.factor) in ['bool', 'int', 'string'])) { - return sprintf(payload.deny ? 'NOT,((%s))' : '%s', join(',', [payload.type, payload.factor ?? ''])); + return sprintf(payload.deny ? 'NOT,((%s))' : '%s', join(',', + (payload.type === 'IN-NAME') + ? [payload.type, get_listener(payload.factor) ?? ''] + : [payload.type, payload.factor ?? ''] + )); } else if (type(payload.factor) === 'array') { return sprintf(`${payload.type},(%s)`, join(',', map(payload.factor, p => `(${_payloadStrategy(p)})`))); } else if (type(payload.factor) === 'object') { @@ -352,22 +370,7 @@ uci.foreach(uciconf, uciinbd, (cfg) => { if (cfg.enabled === '0') return; - const listener = parseListener(cfg); - listener.proxy = get_proxy(listener.proxy); - if (listener["reality-config"]) - listener["reality-config"].proxy = get_proxy(listener["reality-config"].proxy); - if (listener["shadow-tls"]) - listener["shadow-tls"].handshake.proxy = get_proxy(listener["shadow-tls"].handshake.proxy); - if (listener["res-tls"]) - listener["res-tls"].proxy = get_proxy(listener["res-tls"].proxy); - if (listener["jls-config"]) - listener["jls-config"].proxy = get_proxy(listener["jls-config"].proxy); - if (listener["jls-upstream"]) - listener["jls-upstream"].proxy = get_proxy(listener["jls-upstream"].proxy); - if (listener["realm-opts"]) - listener["realm-opts"].proxy = get_proxy(listener["realm-opts"].proxy); - - push(config.listeners, listener); + push(config.listeners, parseListener(cfg, get_proxy)); }); /* Tun settings */ if (match(proxy_mode, /tun/)) diff --git a/luci-app-fchomo/root/usr/share/ucode/fchomo.uc b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc index 26d61f3f1..66022761c 100644 --- a/luci-app-fchomo/root/usr/share/ucode/fchomo.uc +++ b/luci-app-fchomo/root/usr/share/ucode/fchomo.uc @@ -224,16 +224,24 @@ export function parseVlessEncryption(payload, side) { (isEmpty(content.keypairs) ? '' : '.' + join('.', map(content.keypairs, e => e[side]))); // Required }; -export function parseListener(cfg) { +export function parseListener(cfg, proxyResolver) { + if (proxyResolver == null) + proxyResolver = value => value; + else + assert( + type(proxyResolver) == 'function', + 'parseListener: proxyResolver must be a function' + ); + return { - name: cfg['.name'], + name: cfg.label, type: cfg.type, listen: cfg.listen || '::', port: strToInt(cfg.listen_port), "routing-mark": strToInt(cfg.routing_mark) || null, rule: cfg.rule, - proxy: cfg.proxy, // raw data need post-processing + proxy: proxyResolver(cfg.proxy), /* HTTP / SOCKS / Mieru / VMess / VLESS / Trojan / AnyTLS / Tuic / Hysteria2 / TrustTunnel */ users: (cfg.type in ['http', 'socks', 'mixed', 'vmess', 'vless', 'trojan', 'trusttunnel']) ? [ @@ -332,7 +340,7 @@ export function parseListener(cfg) { "skip-cert-verify": strToBool(cfg.hysteria2_realm_skip_cert_verify), certificate: cfg.hysteria2_realm_cert_path, // mTLS "private-key": cfg.hysteria2_realm_key_path, // mTLS - proxy: cfg.hysteria2_realm_proxy // raw data need post-processing + proxy: proxyResolver(cfg.hysteria2_realm_proxy) } : null, /* Hysteria2 Realmserver */ @@ -356,7 +364,7 @@ export function parseListener(cfg) { "jls-upstream": cfg.type === 'shadowquic' ? { addr: cfg.plugin_opts_handshake_dest, sni: cfg.plugin_opts_host, - proxy: cfg.plugin_opts_dest_proxy, // raw data need post-processing + proxy: proxyResolver(cfg.plugin_opts_dest_proxy), "rate-limit": strToInt(cfg.plugin_opts_rate_limit) } : null, cwnd: strToInt(cfg.shadowquic_cwnd), @@ -410,7 +418,7 @@ export function parseListener(cfg) { } : { password: cfg.plugin_opts_thetlspassword }), handshake: { dest: cfg.plugin_opts_handshake_dest, - proxy: cfg.plugin_opts_dest_proxy // raw data need post-processing + proxy: proxyResolver(cfg.plugin_opts_dest_proxy) } } } : cfg.plugin_type === 'restls' ? { @@ -421,7 +429,7 @@ export function parseListener(cfg) { password: cfg.plugin_opts_thetlspassword, "restls-script": cfg.plugin_opts_restls_script, //"min-record-len": 0, - proxy: cfg.plugin_opts_dest_proxy, // raw data need post-processing + proxy: proxyResolver(cfg.plugin_opts_dest_proxy), "rate-limit": strToInt(cfg.plugin_opts_rate_limit) } } : cfg.plugin_type === 'jls' ? { @@ -437,7 +445,7 @@ export function parseListener(cfg) { dest: cfg.plugin_opts_handshake_dest, sni: cfg.plugin_opts_host, alpn: cfg.tls_alpn, - proxy: cfg.plugin_opts_dest_proxy, // raw data need post-processing + proxy: proxyResolver(cfg.plugin_opts_dest_proxy), "rate-limit": strToInt(cfg.plugin_opts_rate_limit) } } : {} @@ -453,7 +461,7 @@ export function parseListener(cfg) { "short-id": cfg.tls_reality_short_id, "server-names": cfg.tls_reality_server_names, "max-time-difference": strToInt(cfg.tls_reality_max_time_difference), - proxy: cfg.plugin_opts_dest_proxy, // raw data need post-processing + proxy: proxyResolver(cfg.plugin_opts_dest_proxy), } } : { certificate: cfg.tls_cert_path, diff --git a/luci-app-openvpn-plus/Makefile b/luci-app-openvpn-plus/Makefile index ae30d79d4..c0e68bf38 100755 --- a/luci-app-openvpn-plus/Makefile +++ b/luci-app-openvpn-plus/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openvpn-plus PKG_VERSION:=1.0.0 -PKG_RELEASE:=11 +PKG_RELEASE:=12 PKG_LICENSE:=Apache-2.0 PKG_MAINTAINER:=Manfred Jaider diff --git a/luci-app-openvpn-plus/google8db8fb957efb7575.html b/luci-app-openvpn-plus/google8db8fb957efb7575.html new file mode 100644 index 000000000..6068d5355 --- /dev/null +++ b/luci-app-openvpn-plus/google8db8fb957efb7575.html @@ -0,0 +1 @@ +google-site-verification: google8db8fb957efb7575.html \ No newline at end of file diff --git a/luci-app-openvpn-plus/index.html b/luci-app-openvpn-plus/index.html new file mode 100644 index 000000000..8b59f2898 --- /dev/null +++ b/luci-app-openvpn-plus/index.html @@ -0,0 +1,289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + luci-app-openvpn-plus - OpenWrt Web Interface + + + + + + + +

+
+

+ luci-app-openvpn-plus +

+

+ Modern and easy web interface to configure OpenVPN servers and clients on OpenWrt. +

+
+
+ + +
+ + +
+

Description

+
+

+ This package provides a modern, all-in-one web interface to configure OpenVPN servers and clients quickly. Featuring a built-in key generator, setup wizard, Flood Guard protocol protection, DDNS, SSL-VPN, and profile import/export via QR-code, your VPN is ready to use immediately. +

+

+ Thanks to this simple application, anyone can build a professional SSL/TLS-VPN network now. You do not need to understand complex crypto keys or write config files. The app does all the hard background work for you. With the step-by-step wizard, you can create secure VPN connections for travel and mobile devices in seconds. +

+

+ Setting up your mobile phone is incredibly easy—just scan the secure QR-code on your screen with your smartphone camera. In the past, running a VPN behind internet provider modems was very complex. To fix this, the app includes smart Double-NAT detection and automated live port checking. This makes the installation completely effortless and brings professional, enterprise-grade VPN features straight to standard OpenWrt routers. +

+

+ High Performance for Affordable Hardware: You don't need expensive enterprise equipment. Thanks to native OpenVPN Data Channel Offload (DCO) integration and our automatic MTU engine, the app achieves outstanding throughput rates—matching the speed of Wireguard even on budget-friendly wireless access points. +

+
+
+ + +
+

+ 📊 Real-World Performance Benchmarks (iperf3) +

+

+ We tested the real-world performance of luci-app-openvpn-plus using two affordable Zyxel NWA50AX Pro wireless access points. Both devices run as pure APs behind standard internet provider modems. +

+

+ Even though the traffic has to pass through Double-NAT and simple port forwardings, the performance matches expensive enterprise hardware: +

+ +
+ +
+

+ 🔹 Test A: Site-to-Site Tunnel (UDP Mode) +

+
    +
  • Setup: Zyxel AP ↔️ WAN Router ↔️ Internet ↔️ WAN Router ↔️ Zyxel AP
  • +
  • Network Status: Both routers are behind Double-NAT.
  • +
  • Benchmark Result: 450+ Mbit/s 🚀
  • +
+

+ The crypto load is perfectly split across multiple CPU cores thanks to OpenVPN DCO and our automatic MTU engine. +

+
+ + +
+

+ 🔸 Test B: Mobile Client / Roadwarrior (TCP / SSL-VPN Mode) +

+
    +
  • Setup: Zyxel AP ↔️ WAN Router ↔️ Internet ↔️ Smartphone with OpenVPN App
  • +
  • Network Status: The server AP is behind Double-NAT
  • +
  • Benchmark Result: 200+ Mbit/s 📱
  • +
+

+ This is the absolute maximum for a single CPU core under TCP. It bypasses strict public firewalls easily while keeping your smartphone connection incredibly fast. +

+
+
+
+ + +
+

Features

+
    +
  • ✓
    Easy Setup: Build fully working OpenVPN servers or clients in seconds.
  • +
  • ✓
    Connection Wizard: Simple step-by-step setup for mobile phones, laptops, and router-to-router networks (Site-to-Site).
  • +
  • ✓
    Enterprise-Grade Speeds: Out-of-the-box support for OpenVPN Data Channel Offload (DCO) to match Wireguard performance.
  • +
  • ✓
    Smart MTU Engine: Automatically calculates and tunes packet sizes to eliminate fragmentation and balance multi-core CPU load.
  • +
  • ✓
    Secure Site-to-Site Routing: Built-in iroute() hook with dynamic Anti-Loop Prevention to prevent kernel freezes.
  • +
  • ✓
    Instant Mobile QR Scan: Instantly import configurations into the OpenVPN Mobile Connect app via QR-code.
  • +
  • ✓
    Effortless Installation: Smart Double-NAT detection and automated live port-open checking.
  • +
  • ✓
    OpenVPN over TCP 443 (SSL-VPN): Special travel presets to bypass strict public firewalls by hiding traffic as HTTPS.
  • +
  • ✓
    Built-in DDNS Daemon: Automatic dynamic DNS support for DuckDNS, IPv64, dynv6, Dynu, and No-IP.
  • +
  • ✓
    Flood Guard Protection: Detects and blocks malicious requests and port scanners directly in the Linux kernel.
  • +
  • ✓
    Automated Firewall Zones: Automatic creation of all required firewall zones, traffic rules, and forwardings.
  • +
  • ✓
    High-Security Keygen: Automatic generation of RSA-2048/ECC-Prime256, DH params, and TLS-crypt-v2.
  • +
  • ✓
    Hardware Crypto Optimization: Smart auto-cipher selection (AES-GCM for new chips, ChaCha20 for older hardware).
  • +
  • ✓
    Integrated Key Editor: View, edit, and check key files or expiration dates directly in your browser.
  • +
  • ✓
    Profile Import & Export: Upload existing .ovpn files or multi-key configurations instantly.
  • +
  • ✓
    Clear Status Table: Quick overview of active tunnels, PIDs, ciphers, and live bandwidth usage.
  • +
+
+ + +
+

Screenshots

+
+
+ Server/Client View +
Server/Client View
+
+
+ Status View +
Status View
+
+
+ Client View +
Client View
+
+
+ QR Export +
QR Export
+
+
+ Wizard Mobile Start +
Wizard Mobile Start
+
+
+ Wizard Mobile Tunnel +
Wizard Mobile Tunnel
+
+
+ Wizard Mobile IP Setup +
Wizard Mobile IP Setup
+
+
+ Wizard DDNS Setup +
Wizard DDNS Setup
+
+
+ Wizard Site-To-Site Start +
Wizard Site-To-Site Start
+
+
+ Wizard Site-To-Site Routing +
Wizard Site-To-Site Routing
+
+
+ Wizard Port Forwarding +
Wizard Port Forwarding
+
+
+ Wizard Add Instance +
Wizard Add Instance
+
+
+ Wizard Key View +
Wizard Key View
+
+
+ Wizard KeyGen +
Wizard KeyGen
+
+
+
+ +
+

Configuration Layout

+

The application manages settings inside /etc/config/openvpn:

+
config openvpn 'instance1'
+	option enabled '0'
+	option role 'server'
+	option config '/etc/openvpn/luci/instance1.conf'
+
+ +
+

Directory Structure

+
luci-app-openvpn-plus/
+├── Makefile
+├── LICENSE
+├── README.md
+├── po/
+│   ├── de/
+│   │   └── luci-app-openvpn-plus.po
+│   ├── zh-cn/
+│   │   └── luci-app-openvpn-plus.po
+├── screenshots/
+└── root/
+	├── etc/
+	│   ├── config/
+	│   └── hotplug.d/
+	│   │   ├── iface/
+	│   │   │   └── 35-luci-app-openvpn-plus-bootup
+	│   │   └── openvpn/
+	│   │       └── 35-luci-app-openvpn-plus-lifecycle
+	│   ├── openvpn/
+	│   │   ├── keys/
+	│   │   └── luci/
+	│   │       ├── default.nft
+	│   │       ├── client.default.conf
+	│   │       └── server.default.conf
+	├── usr/
+	│   ├── libexec/
+	│   │   └── luci-app-openvpn-plus
+	│   └── share/
+	│       ├── luci/menu.d/
+	│       │   └── luci-app-openvpn-plus.json
+	│       └── rpcd/acl.d/
+	│           ├── luci-app-openvpn-plus.json
+	│           └── luci-app-openvpn-plus-status.json
+	└── www/
+		└── luci-static/resources/view/
+			├── status/include/
+			│   └── 35_openvpn.js
+			└── vpn/
+				├── openvpn.js
+				├── openvpn-keygen.js
+				├── openvpn-status.js
+				└── openvpn-wizard.js
+
+ +
+

Licensed under the Apache License 2.0.

+

© 2026 luci-app-openvpn-plus Project.

+
+ + + + + + + diff --git a/luci-app-openvpn-plus/sitemap.xml b/luci-app-openvpn-plus/sitemap.xml new file mode 100644 index 000000000..87153ce5b --- /dev/null +++ b/luci-app-openvpn-plus/sitemap.xml @@ -0,0 +1,15 @@ + + + + https://github.com/masmbit/luci-app-openvpn-plus/blob/main/README.md/ + 2026-01-11 + monthly + 1.0 + + + https://raw.githubusercontent.com/masmbit/luci-app-openvpn-plus/refs/heads/main/README.md + 2026-01-11 + monthly + 1.0 + + diff --git a/luci-app-safeshield/.editorconfig b/luci-app-safeshield/.editorconfig new file mode 100644 index 000000000..69720e17a --- /dev/null +++ b/luci-app-safeshield/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +charset = utf-8 +trim_trailing_whitespace = true +end_of_line = lf + +[Makefile] +indent_style = tab +indent_size = 4 +insert_final_newline = true \ No newline at end of file diff --git a/luci-app-safeshield/.gitattributes b/luci-app-safeshield/.gitattributes new file mode 100644 index 000000000..dd6b31f62 --- /dev/null +++ b/luci-app-safeshield/.gitattributes @@ -0,0 +1,13 @@ +* text=auto eol=lf +Makefile text eol=lf +*.mk text eol=lf + +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.tif binary +*.ttf binary +*.tiff binary +*.ico binary +*.eps binary \ No newline at end of file diff --git a/luci-app-safeshield/.gitignore b/luci-app-safeshield/.gitignore new file mode 100644 index 000000000..e940b45b0 --- /dev/null +++ b/luci-app-safeshield/.gitignore @@ -0,0 +1,14 @@ +# MacOS related +.DS_Store +.AppleDouble +.LSOverride + +# Vim +*~ +*.swp +*.swo + +# IDE user config +.vscode/ +.idea/ +.vs/ diff --git a/luci-app-safeshield/CHANGELOG.md b/luci-app-safeshield/CHANGELOG.md new file mode 100644 index 000000000..2cfaf06bf --- /dev/null +++ b/luci-app-safeshield/CHANGELOG.md @@ -0,0 +1,39 @@ +# Changelog + +## [0.2.2-r4] - 2026-09-08 + +- Require SafeShield 0.3.20 or newer. + +## [0.2.2-r3] - 2026-09-02 + +- Require SafeShield 0.3.19 or newer. + +## [0.2.2-r2] - 2026-08-30 + +- Require SafeShield 0.3.17 or newer. + +## [0.2.2-r1] - 2026-08-30 + +- Require SafeShield 0.3.15 or newer. + +## [0.2.1-r2] - 2026-08-30 + +- Localize all current SafeShield `summary.code` states in LuCI (`idle`, `ready`, `refreshing`, `degraded`, `error`, `paused`, and `disabled`). +- Fall back to the backend `summary.message` for unknown summary codes. +- Require SafeShield 0.3.14-r8 or newer for summary code support. + +## [0.2.1-r1] - 2026-08-29 + +- Require SafeShield 0.3.13 or newer. + +## [0.2.0-r1] - 2026-08-20 + +- Use the public `safeshield` ubus management API as the only SafeShield control plane. +- Remove direct LuCI UCI writes for SafeShield lifecycle, license and configuration. +- Add enable/disable and manual refresh actions to Overview. +- Show local-rule apply timestamps and the current fast-apply state from `safeshield.status`. +- Add a Local Rules page backed by `rules_list`, `rule_add` and `rule_delete`. +- Wait for `last_local_apply` / `last_local_apply_failure` after rule mutations so the UI distinguishes file persistence from active DNS application. +- Stop exposing obsolete/non-public options such as local rule paths and dnsmasq file/instance settings. +- Fix physical fingerprint fields to match the current SafeShield status schema. +- Require SafeShield 0.3.10 or newer. diff --git a/luci-app-safeshield/LICENSE b/luci-app-safeshield/LICENSE new file mode 100644 index 000000000..f288702d2 --- /dev/null +++ b/luci-app-safeshield/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/luci-app-safeshield/Makefile b/luci-app-safeshield/Makefile new file mode 100644 index 000000000..ac41374ee --- /dev/null +++ b/luci-app-safeshield/Makefile @@ -0,0 +1,23 @@ +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 3 +# of the License, or (at your option) any later version. + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-safeshield +PKG_VERSION:=0.2.2 +PKG_RELEASE:=1 + +PKG_LICENSE:=GPL-3.0-or-later +PKG_MAINTAINER:=Beomjun Kang + +LUCI_TITLE:=SafeShield Web UI +LUCI_URL:=https://github.com/Junatum/luci-app-safeshield +LUCI_DESCRIPTION:=SafeShield Web UI for OpenWrt +LUCI_DEPENDS:=+luci-base +rpcd +ucode +safeshield +LUCI_EXTRA_DEPENDS:=safeshield (>=0.3.20) + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-safeshield/README.md b/luci-app-safeshield/README.md new file mode 100644 index 000000000..68185b754 --- /dev/null +++ b/luci-app-safeshield/README.md @@ -0,0 +1,244 @@ +# SafeShield (luci-app-safeshield) + +![OpenWrt](https://img.shields.io/badge/OpenWrt-Compatible-blue) +![License](https://img.shields.io/github/license/Junatum/safeshield?label=License) + +A lightweight DNS-based ad blocker for OpenWrt, designed with a powerful, easy-to-use Web UI. Blocks ads and phishing sites, fully compatible with dnsmasq. + +## Build from source + +`luci-app-safeshield` is a LuCI web interface package for SafeShield. +It depends on the main `safeshield` package, so both repositories should be available in the OpenWrt buildroot or SDK when building from source. + +### Build with OpenWrt buildroot + +Clone OpenWrt and prepare the build environment: + +```sh +cd /opt/build + +git clone -b production https://github.com/Junatum/openwrt.git +cd openwrt + +./scripts/feeds update -a +./scripts/feeds install -a +``` + +Clone SafeShield and the LuCI application into the OpenWrt package tree: + +```sh +git clone https://github.com/Junatum/safeshield package/safeshield +git clone https://github.com/Junatum/luci-app-safeshield package/luci-app-safeshield +``` + +Select the target device and enable the packages: + +```sh +make menuconfig +``` + +For example, for a MediaTek Filogic based device such as `ipTIME AX3000SM`, select: + +```text +Target System ---> MediaTek Ralink ARM +Subtarget ---> Filogic 8x0 +``` + +Then enable the packages as modules: + +```text +Network ---> safeshield +LuCI ---> Applications ---> luci-app-safeshield +``` + +Alternatively, append the package selections directly to `.config`: + +```sh +cat >> .config <<'EOF' +CONFIG_PACKAGE_safeshield=m +CONFIG_PACKAGE_luci-app-safeshield=m +EOF + +make defconfig +``` + +Build the packages: + +```sh +make package/safeshield/clean V=s +make package/luci-app-safeshield/clean V=s + +make package/safeshield/compile V=s +make package/luci-app-safeshield/compile V=s +``` + +Find the generated packages: + +```sh +find bin -type f \( \ + -name 'safeshield*.apk' \ + -o -name 'luci-app-safeshield*.apk' \ +\) -print +``` + +Depending on the OpenWrt version and package manager, the output may be located under one of these directories: + +```text +bin/targets///packages/ +bin/packages/// +``` + +For example, on a MediaTek Filogic target, packages may appear under: + +```text +bin/targets/mediatek/filogic/packages/ +bin/packages/aarch64_cortex-a53/base/ +bin/packages/aarch64_cortex-a53/luci/ +``` + +OpenWrt 25.12 and newer snapshot builds usually generate `.apk` packages. + +### Build with OpenWrt SDK + +If you only need to build packages and do not need to build a full firmware image, use the OpenWrt SDK for your target. + +Extract the SDK and enter the SDK directory: + +```sh +tar xf openwrt-sdk-*.tar.zst +cd openwrt-sdk-* +``` + +Update and install feeds: + +```sh +./scripts/feeds update -a +./scripts/feeds install -a +``` + +Clone the required packages: + +```sh +git clone https://github.com/Junatum/safeshield package/safeshield +git clone https://github.com/Junatum/luci-app-safeshield package/luci-app-safeshield +``` + +Enable the packages: + +```sh +cat >> .config <<'EOF' +CONFIG_PACKAGE_safeshield=m +CONFIG_PACKAGE_luci-app-safeshield=m +EOF + +make defconfig +``` + +Build: + +```sh +make package/safeshield/compile V=s +make package/luci-app-safeshield/compile V=s +``` + +### Install the built packages on OpenWrt + +Copy the generated packages to the device: + +```sh +scp -O safeshield-*.apk luci-app-safeshield-*.apk root@192.168.1.1:/tmp/ +``` + +Install on an `apk` based OpenWrt system: + +```sh +ssh root@192.168.1.1 + +apk add --allow-untrusted /tmp/safeshield-*.apk +apk add --allow-untrusted /tmp/luci-app-safeshield-*.apk + +/etc/init.d/rpcd restart +/etc/init.d/uhttpd restart +/etc/init.d/safeshield restart +``` + +### Verify installation + +Check that the packages are installed: + +```sh +apk info | grep safeshield +``` + +Check that the LuCI application files exist: + +```sh +ls -la /www/luci-static/resources/view/safeshield/ +ls -la /usr/share/luci/menu.d/ | grep safeshield +ls -la /usr/share/rpcd/acl.d/ | grep safeshield +``` + +Check that the SafeShield RPC endpoint is available: + +```sh +ubus list | grep safeshield +ubus call safeshield status +``` + +If the LuCI page does not update after installing a new build, clear the LuCI cache and restart services: + +```sh +rm -rf /tmp/luci-* +/etc/init.d/rpcd restart +/etc/init.d/uhttpd restart +``` + +Then open LuCI: + +```text +http://192.168.1.1/cgi-bin/luci/admin/services/safeshield +``` + +## Management API architecture + +Starting with `luci-app-safeshield` 0.2.0, the LuCI application does not write +SafeShield UCI state or `/etc/safeshield` rule files directly. The `safeshield` +package owns configuration validation, lifecycle, license storage, local rule +files, refresh scheduling, dnsmasq integration and DNS verification. + +LuCI consumes the public API exposed by SafeShield: + +```text +safeshield.status +safeshield.config +safeshield.config_update +safeshield.set_enabled +safeshield.refresh +safeshield.rules_list +safeshield.rule_add +safeshield.rule_delete +safeshield.license_update +``` + +The Local Rules page uses SafeShield's fast local apply path. A normal rule edit +reuses the cached normalized Hub artifact and only rebuilds local allow/block +inputs, merges the active blocklist, restarts dnsmasq and verifies DNS. A full +Hub refresh is used only when the cached artifact is unavailable. + +After installation, verify the API contract with: + +```sh +ubus -v list safeshield +``` + +The LuCI ACL should not need direct UCI access to the `safeshield` package. + +## Contributors + +
+ Contributors + + +## License + +SafeShield (luci-app-safeshield) is under the [GNU Public License version 3](https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/config.js b/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/config.js new file mode 100644 index 000000000..0186d5580 --- /dev/null +++ b/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/config.js @@ -0,0 +1,377 @@ +'use strict'; + +'require rpc'; +'require ui'; +'require view'; + +var callConfig = rpc.declare({ + object: 'safeshield', + method: 'config', + expect: { } +}); + +var callConfigUpdate = rpc.declare({ + object: 'safeshield', + method: 'config_update', + params: [ 'values' ], + expect: { } +}); + +var callSetEnabled = rpc.declare({ + object: 'safeshield', + method: 'set_enabled', + params: [ 'enabled' ], + expect: { } +}); + +var callLicenseUpdate = rpc.declare({ + object: 'safeshield', + method: 'license_update', + params: [ 'license_key' ], + expect: { } +}); + +var CONFIG_SECTIONS = [ + { + id: 'general', + title: 'General', + fields: [ + { name: 'refresh_on_boot', kind: 'bool', title: 'Refresh on boot', description: 'Refresh the Hub artifact after boot when the existing successful refresh is no longer recent.' }, + { name: 'refresh_interval_s', kind: 'int', min: 1, max: 2147483647, title: 'Refresh interval', suffix: 'seconds', description: 'Interval between successful Hub artifact refreshes.' }, + { name: 'require_wan', kind: 'bool', title: 'Require WAN before refresh', description: 'Wait for WAN connectivity before resolving and downloading Hub artifacts.' } + ] + }, + { + id: 'rules', + title: 'Local rules', + fields: [ + { name: 'apply_local_overrides', kind: 'bool', title: 'Apply local allow/block rules', description: 'Apply local rules on top of the cached Hub artifact. Rule files are managed through the SafeShield rule API.' } + ] + }, + { + id: 'advanced', + title: 'Artifact and runtime safety', + fields: [ + { name: 'max_blocklist_file_size_kb', kind: 'int', min: 1, max: 2147483647, title: 'Maximum blocklist size', suffix: 'KB', description: 'Maximum accepted final blocklist size.' }, + { name: 'min_valid_line_count', kind: 'int', min: 0, max: 2147483647, title: 'Minimum valid rule count', description: 'Reject an artifact when the generated dnsmasq rule count is below this value.' }, + { name: 'compress_blocklist', kind: 'bool', title: 'Compress blocklist', description: 'Keep disabled unless the SafeShield runtime explicitly supports compressed dnsmasq blocklists.' }, + { name: 'initial_dnsmasq_restart', kind: 'bool', title: 'Restart dnsmasq before install', description: 'Restart dnsmasq before installing a newly downloaded artifact. Normally this should stay disabled.' }, + { name: 'dnsmasq_sanity_check', kind: 'bool', title: 'Run dnsmasq sanity check', description: 'Validate dnsmasq state after installing or applying the blocklist.' }, + { name: 'download_timeout', kind: 'int', min: 1, max: 86400, title: 'Download timeout', suffix: 'seconds', description: 'Timeout used for Hub resolve and artifact downloads.' }, + { name: 'download_retry', kind: 'int', min: 1, max: 100, title: 'Download retries', description: 'Maximum retry count for artifact downloads.' }, + { name: 'pause_timeout', kind: 'int', min: 1, max: 86400, title: 'Pause timeout', suffix: 'seconds', description: 'Maximum duration used by the SafeShield pause command.' }, + { name: 'boot_start_delay_s', kind: 'int', min: 0, max: 86400, title: 'Boot start delay', suffix: 'seconds', description: 'Delay before SafeShield performs boot-time work.' } + ] + }, + { + id: 'diagnostics', + title: 'Diagnostics', + fields: [ + { name: 'verbosity', kind: 'select-int', title: 'Log verbosity', options: [ [ 0, 'Errors only' ], [ 1, 'Warnings' ], [ 2, 'Info' ], [ 3, 'Debug' ] ] }, + { name: 'debug', kind: 'bool', title: 'Enable debug logging', description: 'Enable additional debug output for troubleshooting.' } + ] + } +]; + +function apiError(response, fallback) { + if (response && response.error) { + if (response.error.message) + return response.error.message; + if (response.error.code) + return response.error.code; + } + + return fallback || _('SafeShield request failed.'); +} + +function notify(level, message) { + ui.addNotification(null, E('p', {}, [ message ]), level || 'info'); +} + +function boolText(value) { + return value ? _('Enabled') : _('Disabled'); +} + +function valueRow(title, field, description) { + var children = [ field ]; + + if (description) + children.push(E('div', { 'class': 'cbi-value-description' }, [ description ])); + + return E('div', { 'class': 'cbi-value' }, [ + E('label', { 'class': 'cbi-value-title' }, [ title ]), + E('div', { 'class': 'cbi-value-field' }, children) + ]); +} + +function makeInput(spec, value) { + var input, option; + + if (spec.kind === 'bool') { + input = E('input', { 'type': 'checkbox' }); + input.checked = !!value; + return input; + } + + if (spec.kind === 'select-int') { + input = E('select', { 'class': 'cbi-input-select' }); + spec.options.forEach(function(item) { + option = E('option', { 'value': String(item[0]) }, [ _(item[1]) ]); + if (Number(value) === Number(item[0])) + option.selected = true; + input.appendChild(option); + }); + return input; + } + + input = E('input', { + 'class': 'cbi-input-text', + 'type': 'number', + 'min': String(spec.min), + 'max': String(spec.max), + 'step': '1', + 'value': String(value == null ? '' : value) + }); + + return input; +} + +function readInput(spec, input) { + var value; + + if (spec.kind === 'bool') + return !!input.checked; + + value = Number(input.value); + if (!Number.isInteger(value)) + throw new Error(_('%s must be an integer.').format(_(spec.title))); + + if (spec.min != null && value < spec.min) + throw new Error(_('%s must be at least %d.').format(_(spec.title), spec.min)); + + if (spec.max != null && value > spec.max) + throw new Error(_('%s must not exceed %d.').format(_(spec.title), spec.max)); + + return value; +} + +function renderConfigSections(config, inputs) { + var values = (config && config.values) || {}; + + return CONFIG_SECTIONS.map(function(group) { + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ _(group.title) ]) + ].concat(group.fields.map(function(spec) { + var input = makeInput(spec, values[spec.name]); + var label = _(spec.title); + + inputs[spec.name] = { spec: spec, input: input }; + if (spec.suffix) + label += ' (' + _(spec.suffix) + ')'; + + return valueRow(label, input, spec.description ? _(spec.description) : null); + }))); + }); +} + +function collectValues(inputs) { + var values = {}; + + Object.keys(inputs).forEach(function(name) { + values[name] = readInput(inputs[name].spec, inputs[name].input); + }); + + return values; +} + +function renderServiceSection(config, reload) { + var values = (config && config.values) || {}; + var enabled = values.enabled === true; + var state = E('strong', {}, [ boolText(enabled) ]); + var button = E('button', { + 'class': 'btn cbi-button cbi-button-action' + }, [ enabled ? _('Disable SafeShield') : _('Enable SafeShield') ]); + + button.addEventListener('click', function(ev) { + ev.preventDefault(); + button.disabled = true; + + callSetEnabled(!enabled).then(function(response) { + if (!response || response.ok !== true || response.accepted !== true) + throw new Error(apiError(response, _('SafeShield rejected the lifecycle request.'))); + + notify('info', !enabled + ? _('Enable request accepted. Runtime convergence is asynchronous; check Overview for the live state.') + : _('Disable request accepted. Runtime convergence is asynchronous; check Overview for the live state.')); + + return reload(); + }).catch(function(err) { + notify('danger', err.message || String(err)); + }).finally(function() { + button.disabled = false; + }); + }); + + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ _('Service state') ]), + valueRow(_('Configured state'), state, _('SafeShield owns enable/disable lifecycle. LuCI uses safeshield.set_enabled rather than writing UCI directly.')), + E('div', { 'class': 'cbi-value' }, [ + E('div', { 'class': 'cbi-value-title' }), + E('div', { 'class': 'cbi-value-field' }, [ button ]) + ]) + ]); +} + +function renderLicenseSection(config, reload) { + var license = (config && config.license) || {}; + var input = E('input', { + 'class': 'cbi-input-text', + 'type': 'password', + 'autocomplete': 'off', + 'placeholder': license.configured ? _('Enter a new key to replace the configured key') : _('Enter license key') + }); + var update = E('button', { 'class': 'btn cbi-button cbi-button-positive' }, [ _('Update license') ]); + var clear = E('button', { 'class': 'btn cbi-button cbi-button-negative' }, [ _('Clear license') ]); + + update.addEventListener('click', function(ev) { + var key = input.value.trim(); + ev.preventDefault(); + + if (!key) { + notify('warning', _('Enter a license key first. Use Clear license to remove the current key.')); + return; + } + + update.disabled = true; + callLicenseUpdate(key).then(function(response) { + if (!response || response.ok !== true) + throw new Error(apiError(response)); + input.value = ''; + notify('info', response.changed + ? _('License key updated. SafeShield requested an artifact refresh.') + : _('The license key is unchanged.')); + return reload(); + }).catch(function(err) { + notify('danger', err.message || String(err)); + }).finally(function() { + update.disabled = false; + }); + }); + + clear.addEventListener('click', function(ev) { + ev.preventDefault(); + if (!license.configured) + return; + if (!window.confirm(_('Clear the configured SafeShield license key?'))) + return; + + clear.disabled = true; + callLicenseUpdate('').then(function(response) { + if (!response || response.ok !== true) + throw new Error(apiError(response)); + input.value = ''; + notify('info', _('License key cleared. SafeShield will use the unlicensed/free artifact path.')); + return reload(); + }).catch(function(err) { + notify('danger', err.message || String(err)); + }).finally(function() { + clear.disabled = false; + }); + }); + + clear.disabled = !license.configured; + + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ _('License') ]), + valueRow(_('Configured'), E('span', {}, [ license.configured ? _('Yes') : _('No') ])), + valueRow(_('Masked key'), E('code', {}, [ license.key_masked || '-' ]), _('The raw license key is never returned by the SafeShield API.')), + valueRow(_('New license key'), input), + E('div', { 'class': 'cbi-value' }, [ + E('div', { 'class': 'cbi-value-title' }), + E('div', { 'class': 'cbi-value-field' }, [ update, ' ', clear ]) + ]) + ]); +} + +function renderDeviceSection(config) { + var device = (config && config.device) || {}; + + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ _('Device (read only)') ]), + valueRow(_('Vendor'), E('span', {}, [ device.vendor || '-' ])), + valueRow(_('Model'), E('span', {}, [ device.model || '-' ])), + valueRow(_('Architecture'), E('span', {}, [ device.arch || '-' ])), + valueRow(_('Memory'), E('span', {}, [ device.memory_mb ? device.memory_mb + ' MB' : '-' ]), _('Device identity and profile fields are owned by SafeShield and are not editable from LuCI.')) + ]); +} + +function renderPage(config, root) { + var inputs = {}; + var save = E('button', { 'class': 'btn cbi-button cbi-button-apply important' }, [ _('Save settings') ]); + var reload = function() { + return callConfig().then(function(updated) { + root.replaceChild(renderPage(updated, root), root.firstChild); + return updated; + }); + }; + var nodes = [ + E('h2', {}, [ _('SafeShield settings') ]), + E('div', { 'class': 'cbi-map-descr' }, [ + _('This page uses the public SafeShield ubus API. UCI, local rule files, service lifecycle and license storage remain owned by the safeshield package.') + ]), + renderServiceSection(config, reload), + renderLicenseSection(config, reload) + ]; + + nodes = nodes.concat(renderConfigSections(config, inputs)); + nodes.push(renderDeviceSection(config)); + nodes.push(E('div', { 'class': 'cbi-page-actions' }, [ save ])); + + save.addEventListener('click', function(ev) { + var values; + ev.preventDefault(); + + try { + values = collectValues(inputs); + } + catch (err) { + notify('danger', err.message || String(err)); + return; + } + + save.disabled = true; + callConfigUpdate(values).then(function(response) { + if (!response || response.ok !== true) + throw new Error(apiError(response)); + + if (response.changed && response.changed.length) + notify('info', _('SafeShield settings saved. The service was restarted and a refresh was requested where applicable.')); + else + notify('info', _('No SafeShield settings changed.')); + + return reload(); + }).catch(function(err) { + notify('danger', err.message || String(err)); + }).finally(function() { + save.disabled = false; + }); + }); + + return E('div', {}, nodes); +} + +return view.extend({ + load: function() { + return callConfig(); + }, + + render: function(data) { + var root = E('div', {}, []); + root.appendChild(renderPage(data || {}, root)); + return root; + }, + + handleSaveApply: null, + handleSave: null, + handleReset: null +}); diff --git a/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/overview.js b/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/overview.js new file mode 100644 index 000000000..57fdabd82 --- /dev/null +++ b/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/overview.js @@ -0,0 +1,595 @@ +'use strict'; + +'require poll'; +'require rpc'; +'require ui'; +'require view'; + +var callStatus = rpc.declare({ + object: 'safeshield', + method: 'status', + expect: { } +}); + +var callSetEnabled = rpc.declare({ + object: 'safeshield', + method: 'set_enabled', + params: [ 'enabled' ], + expect: { } +}); + +var callRefresh = rpc.declare({ + object: 'safeshield', + method: 'refresh', + expect: { } +}); + +const SUMMARY_MESSAGES = { + idle: _('SafeShield is idle.'), + ready: _('SafeShield is ready.'), + refreshing: _('SafeShield is refreshing the blocklist.'), + degraded: _('SafeShield is running with degraded protection.'), + error: _('SafeShield encountered an error.'), + paused: _('SafeShield is paused.'), + disabled: _('SafeShield is disabled.') +}; + + +function apiError(response, fallback) { + if (response && response.error) { + if (response.error.message) + return response.error.message; + if (response.error.code) + return response.error.code; + } + + return fallback || _('SafeShield request failed.'); +} + +function notify(level, message) { + ui.addNotification(null, E('p', {}, [ message ]), level || 'info'); +} + +function delay(ms) { + return new Promise(function(resolve) { + window.setTimeout(resolve, ms); + }); +} + +function enabledStateConverged(status, target) { + var runtime = (status && status.runtime) || {}; + + if (target) + return status && status.enabled === true && status.active === true && runtime.refreshd_running === true; + + return status && status.enabled === false && status.active === false && runtime.refreshd_running === false; +} + +function waitForEnabledState(target, timeoutMs) { + var started = Date.now(); + + function check() { + return callStatus().then(function(status) { + if (enabledStateConverged(status, target) || Date.now() - started >= timeoutMs) + return status; + return delay(500).then(check); + }); + } + + return check(); +} + +function renderActions(status, root) { + var enabled = status && status.enabled === true; + var toggle = E('button', { 'class': 'btn cbi-button cbi-button-action' }, [ enabled ? _('Disable SafeShield') : _('Enable SafeShield') ]); + var refresh = E('button', { 'class': 'btn cbi-button cbi-button-positive' }, [ _('Refresh now') ]); + + function replaceStatus(updated) { + root.replaceChild(renderStatus(updated, root), root.firstChild); + } + + toggle.addEventListener('click', function(ev) { + var target = !enabled; + ev.preventDefault(); + toggle.disabled = true; + + callSetEnabled(target).then(function(response) { + if (!response || response.ok !== true || response.accepted !== true) + throw new Error(apiError(response, _('SafeShield rejected the lifecycle request.'))); + + notify('info', target ? _('Enable request accepted.') : _('Disable request accepted.')); + return waitForEnabledState(target, 15000); + }).then(function(updated) { + replaceStatus(updated); + if (enabledStateConverged(updated, target)) + notify('info', target ? _('SafeShield is enabled and running.') : _('SafeShield is disabled and stopped.')); + else + notify('warning', _('SafeShield accepted the request but runtime convergence was not observed within 15 seconds. Status polling will continue.')); + }).catch(function(err) { + notify('danger', err.message || String(err)); + }).finally(function() { + toggle.disabled = false; + }); + }); + + refresh.disabled = !enabled; + refresh.addEventListener('click', function(ev) { + ev.preventDefault(); + refresh.disabled = true; + + callRefresh().then(function(response) { + if (!response || response.ok !== true) + throw new Error(apiError(response, _('SafeShield refresh request failed.'))); + + if (response.accepted) + notify('info', _('SafeShield refresh started.')); + else if (response.reason === 'already_running') + notify('info', _('A SafeShield refresh is already running.')); + else + notify('warning', _('Refresh was not started: %s').format(response.reason || _('unknown reason'))); + + return callStatus(); + }).then(replaceStatus).catch(function(err) { + notify('danger', err.message || String(err)); + }).finally(function() { + refresh.disabled = !enabled; + }); + }); + + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ _('Actions') ]), + E('div', { 'class': 'cbi-section-descr' }, [ + _('Enable/disable and refresh actions use the public SafeShield ubus API. Enable/disable convergence is asynchronous and is verified through safeshield.status.') + ]), + E('div', {}, [ toggle, ' ', refresh ]) + ]); +} + +function asText(value, fallback) { + if (value === null || value === undefined || value === '') + return fallback || '-'; + + if (typeof value === 'boolean') + return value ? _('Yes') : _('No'); + + return String(value); +} + +function formatBool(value) { + if (value === true || value === 1 || value === '1') + return _('Yes'); + if (value === false || value === 0 || value === '0') + return _('No'); + return '-'; +} + +function formatNumber(value) { + if (value === null || value === undefined || value === '') + return '-'; + return String(value); +} + +function formatSizeKb(value) { + if (value === null || value === undefined || value === '') + return '-'; + return String(value) + ' KB'; +} + +function formatHash(value) { + if (!value) + return '-'; + + var text = String(value); + return text.length > 24 ? text.substring(0, 16) + '…' + text.substring(text.length - 8) : text; +} + +function formatTimestamp(value) { + var n, date; + + if (!value) + return '-'; + + if (typeof value === 'number') { + n = value; + } + else if (typeof value === 'string' && /^\d+$/.test(value)) { + n = Number(value); + } + else { + date = new Date(value); + return isNaN(date.getTime()) ? String(value) : date.toLocaleString(); + } + + if (!n) + return '-'; + + /* SafeShield RPC returns Unix timestamps in seconds. JavaScript Date expects milliseconds. */ + if (n < 100000000000) + n = n * 1000; + + date = new Date(n); + return isNaN(date.getTime()) ? String(value) : date.toLocaleString(); +} + +function formatDuration(value) { + var n, days, hours, minutes, seconds, parts = []; + + if (value === null || value === undefined || value === '') + return '-'; + + n = Number(value); + if (isNaN(n) || n < 0) + return String(value); + + seconds = Math.floor(n); + days = Math.floor(seconds / 86400); + seconds = seconds % 86400; + hours = Math.floor(seconds / 3600); + seconds = seconds % 3600; + minutes = Math.floor(seconds / 60); + seconds = seconds % 60; + + if (days) + parts.push(days + 'd'); + if (hours) + parts.push(hours + 'h'); + if (minutes) + parts.push(minutes + 'm'); + if (seconds || !parts.length) + parts.push(seconds + 's'); + + return parts.join(' '); +} + +function translateValue(value) { + switch (String(value || '').toLowerCase()) { + case 'idle': return _('Idle'); + case 'scheduled_wait': return _('Waiting for scheduled refresh'); + case 'boot_delay': return _('Waiting after boot'); + case 'local_apply': return _('Applying local rules'); + case 'local_merge': return _('Merging local rules'); + case 'local_restart_dnsmasq': return _('Restarting DNS service'); + case 'local_runtime_check': return _('Checking DNS service'); + case 'local_blocklist_verify': return _('Verifying blocklist'); + case 'ok': return _('OK'); + case 'ready': return _('Ready'); + case 'success': return _('Success'); + case 'active': return _('Active'); + case 'running': return _('Running'); + case 'refreshing': return _('Refreshing'); + case 'pending': return _('Pending'); + case 'notice': return _('Notice'); + case 'warning': return _('Warning'); + case 'degraded': return _('Degraded'); + case 'disabled': return _('Disabled'); + case 'error': return _('Error'); + case 'failed': return _('Failed'); + case 'failure': return _('Failure'); + case 'expired': return _('Expired'); + case 'revoked': return _('Revoked'); + case 'suspended': return _('Suspended'); + case 'free': return _('Free'); + case 'unlicensed': return _('Unlicensed'); + case 'licensed': return _('Licensed'); + case 'light': return _('Light'); + case 'standard': return _('Standard'); + case 'full': return _('Full'); + case 'block': return _('Block'); + case 'allow': return _('Allow'); + default: return value; + } +} + +function badgeClass(value) { + switch (String(value || '').toLowerCase()) { + case 'ok': + case 'ready': + case 'success': + case 'active': + return 'label success'; + case 'running': + case 'refreshing': + case 'pending': + case 'notice': + case 'boot_delay': + case 'scheduled_wait': + case 'local_apply': + case 'local_merge': + case 'local_restart_dnsmasq': + case 'local_runtime_check': + case 'local_blocklist_verify': + return 'label notice'; + case 'warning': + case 'warn': + case 'degraded': + case 'disabled': + return 'label warning'; + case 'error': + case 'failed': + case 'failure': + case 'expired': + case 'revoked': + case 'suspended': + return 'label danger'; + default: + return 'label'; + } +} + +function badge(value, fallback) { + var text = asText(value, fallback || '-'); + return E('span', { 'class': badgeClass(text), 'style': 'padding: 0' }, [ translateValue(text) ]); +} + +function row(label, value) { + var children; + + if (Array.isArray(value)) + children = value; + else if (value && typeof value === 'object') + children = [ value ]; + else + children = [ asText(value) ]; + + return E('tr', {}, [ + E('th', { 'style': 'width: 32%' }, [ label ]), + E('td', {}, children) + ]); +} + +function table(rows) { + return E('table', { 'class': 'table' }, rows); +} + +function section(title, rows) { + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ title ]), + table(rows) + ]); +} + +function renderMessage(message) { + if (typeof message === 'string') + return message; + + if (message && typeof message === 'object') { + if (message.message) + return message.message; + if (message.code) + return message.code; + return JSON.stringify(message); + } + + return asText(message); +} + +function renderMessages(title, items, className) { + if (!items || !items.length) + return null; + + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ title ]), + E('ul', { 'class': className || '' }, items.map(function(item) { + return E('li', {}, [ renderMessage(item) ]); + })) + ]); +} + +function summaryMessage(summary) { + var code = String((summary && summary.code) || '').toLowerCase(); + + return SUMMARY_MESSAGES[code] || asText(summary && summary.message, '-'); +} + +function renderSummary(summary) { + if (!summary) + return '-'; + + if (typeof summary === 'string') + return translateValue(summary); + + return [ + E('span', { 'class': badgeClass(summary.severity || summary.label), 'style': 'padding: 0' }, [ translateValue(asText(summary.label, '-')) ]), + ' ', + summaryMessage(summary) + ]; +} + +function renderSources(sources) { + var items = (sources && sources.items) || []; + var body; + + if (!items.length) { + body = [ E('tr', {}, [ E('td', { 'colspan': 8 }, [ _('No sources reported by SafeShield.') ]) ]) ]; + } + else { + var cstyle = { 'style': 'text-align:center' }; + body = items.map(function(item) { + return E('tr', {}, [ + E('td', cstyle, [ asText(item.name || item.id) ]), + E('td', cstyle, [ translateValue(asText(item.action || sources.mode)) ]), + E('td', cstyle, [ formatBool(item.enabled) ]), + E('td', cstyle, [ badge(item.last_result) ]), + E('td', cstyle, [ formatNumber(item.line_count) ]), + E('td', cstyle, [ formatSizeKb(item.size_kb) ]), + E('td', cstyle, [ translateValue(asText(item.artifact_tier)) ]), + E('td', cstyle, [ asText(item.artifact_version) ]) + ]); + }); + } + + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ _('Sources') ]), + E('table', { 'class': 'table' }, [ + E('tr', { 'class': 'tr table-titles' }, [ + E('th', {}, [ _('Name') ]), + E('th', {}, [ _('Mode / action') ]), + E('th', {}, [ _('Enabled') ]), + E('th', {}, [ _('Last result') ]), + E('th', {}, [ _('Domains / lines') ]), + E('th', {}, [ _('Size') ]), + E('th', {}, [ _('Tier') ]), + E('th', {}, [ _('Version') ]) + ]) + ].concat(body)) + ]); +} + +function renderHealth(checks) { + var names = [ + [ 'api_resolve', _('Artifact metadata resolve') ], + [ 'artifact_download', _('Artifact download') ], + [ 'artifact_sha256', _('Artifact SHA-256') ], + [ 'dnsmasq_binary', _('dnsmasq binary') ], + [ 'dnsmasq_confdir', _('dnsmasq confdir') ], + [ 'dnsmasq_initial_restart', _('Initial dnsmasq restart') ], + [ 'dnsmasq_final_restart', _('Final dnsmasq restart') ], + [ 'dns_runtime', _('DNS runtime') ], + [ 'blocklist_verify', _('Blocklist verify') ], + [ 'min_valid_line_count', _('Minimum valid rule count') ], + [ 'max_file_size', _('Maximum file size') ] + ]; + + return section(_('Health checks'), names.map(function(item) { + var value = checks ? checks[item[0]] : null; + return row(item[1], badge(value)); + })); +} + +function renderStatus(data, root) { + var status = data || {}; + var runtime = status.runtime || {}; + var license = status.license || {}; + var device = status.device || {}; + var deviceConfigured = device.configured || {}; + var artifact = status.artifact || {}; + var localOverrides = status.local_overrides || {}; + var blocklist = status.blocklist || {}; + var sources = status.sources || {}; + var health = status.health || {}; + var timestamps = status.timestamps || {}; + var schema = status.schema || {}; + + var warnings = renderMessages(_('Warnings'), status.warnings, ''); + var errors = renderMessages(_('Errors'), status.errors, ''); + + var nodes = [ + E('h2', {}, [ _('SafeShield') ]), + renderActions(status, root), + + section(_('Current status'), [ + row(_('Status'), badge(status.status)), + row(_('Stage'), badge(status.stage)), + row(_('Summary'), renderSummary(status.summary)), + row(_('Version'), status.version), + row(_('Schema'), schema.name ? schema.name + ' v' + asText(schema.version) : '-'), + row(_('Enabled'), formatBool(status.enabled)), + row(_('Active'), formatBool(status.active)), + row(_('Health'), badge(health.overall)), + row(_('Generated at'), formatTimestamp(timestamps.generated_at)), + row(_('Last attempt'), formatTimestamp(timestamps.last_attempt)), + row(_('Last success'), formatTimestamp(timestamps.last_success)), + row(_('Last failure'), formatTimestamp(timestamps.last_failure)), + row(_('Last local apply'), formatTimestamp(timestamps.last_local_apply)), + row(_('Last local apply failure'), formatTimestamp(timestamps.last_local_apply_failure)) + ]), + + section(_('Runtime'), [ + row(_('Refresh daemon running'), formatBool(runtime.refreshd_running)), + row(_('dnsmasq running'), formatBool(runtime.dnsmasq_running)), + row(_('DNS runtime OK'), formatBool(runtime.dns_runtime_ok)), + row(_('Config loaded'), formatBool(runtime.config_loaded)), + row(_('Require WAN'), formatBool(runtime.require_wan)), + row(_('Refresh on boot'), formatBool(runtime.refresh_on_boot)), + row(_('Last result'), badge(runtime.last_result)), + row(_('Last error code'), runtime.last_error_code) + ]), + + + section(_('License'), [ + row(_('Configured'), formatBool(license.configured)), + row(_('Masked key'), license.key_masked), + row(_('Plan'), translateValue(asText(license.plan))), + row(_('Status'), badge(license.status)) + ]), + + section(_('Device'), [ + row(_('Physical fingerprint'), device.physical_fingerprint), + row(_('Runtime profile'), device.profile), + row(_('Configured physical fingerprint'), deviceConfigured.physical_fingerprint), + row(_('Vendor'), deviceConfigured.vendor), + row(_('Model'), deviceConfigured.model), + row(_('Architecture'), deviceConfigured.arch), + row(_('Memory'), deviceConfigured.memory_mb ? deviceConfigured.memory_mb + ' MB' : '-') + ]), + + section(_('Hub artifact'), [ + row(_('Resolved'), formatBool(artifact.resolved)), + row(_('Tier'), translateValue(asText(artifact.tier))), + row(_('Version'), artifact.version), + row(_('SHA-256'), formatHash(artifact.sha256)), + row(_('Unique domains'), formatNumber(artifact.unique_domains)), + row(_('Rules'), formatNumber(artifact.rules)), + row(_('Download URL present'), formatBool(artifact.download_url_present)) + ]), + + section(_('Local overrides'), [ + row(_('Enabled'), formatBool(localOverrides.enabled)), + row(_('Allowlist path'), localOverrides.allowlist_path), + row(_('Blocklist path'), localOverrides.blocklist_path) + ]), + + section(_('Blocklist'), [ + row(_('Installed'), formatBool(blocklist.installed)), + row(_('Path'), blocklist.path), + row(_('Valid rules'), formatNumber(blocklist.valid_line_count)), + row(_('File size'), formatSizeKb(blocklist.file_size_kb)), + row(_('Compressed'), formatBool(blocklist.compressed)), + row(_('Verification OK'), formatBool(blocklist.verification_ok)), + row(_('Test domain'), blocklist.test_domain), + row(_('Test domain success'), formatNumber(blocklist.test_domain_success_count) + ' / ' + formatNumber(blocklist.test_domain_sample_count)), + row(_('Previous backup available'), formatBool(blocklist.previous_backup_available)) + ]), + + section(_('Schedule'), [ + row(_('Refresh interval'), formatDuration(timestamps.refresh_interval_s)), + row(_('Next refresh'), formatTimestamp(timestamps.next_refresh_at)), + row(_('Next refresh in'), formatDuration(timestamps.next_refresh_in_s)), + row(_('Boot start delay'), formatDuration(timestamps.boot_start_delay_s)) + ]), + + renderHealth(health.checks), + renderSources(sources) + ]; + + if (warnings) + nodes.push(warnings); + if (errors) + nodes.push(errors); + + return E('div', {}, nodes); +} + +return view.extend({ + load: function() { + return callStatus(); + }, + + render: function(data) { + var root = E('div', {}, []); + + root.appendChild(renderStatus(data, root)); + + poll.add(function() { + return callStatus().then(function(updated) { + root.replaceChild(renderStatus(updated, root), root.firstChild); + }); + }, 5); + + return root; + }, + + handleSaveApply: null, + handleSave: null, + handleReset: null +}); diff --git a/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/rules.js b/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/rules.js new file mode 100644 index 000000000..d48d001bc --- /dev/null +++ b/luci-app-safeshield/htdocs/luci-static/resources/view/safeshield/rules.js @@ -0,0 +1,285 @@ +'use strict'; + +'require rpc'; +'require ui'; +'require view'; + +var callStatus = rpc.declare({ + object: 'safeshield', + method: 'status', + expect: { } +}); + +var callRulesList = rpc.declare({ + object: 'safeshield', + method: 'rules_list', + params: [ 'action' ], + expect: { } +}); + +var callRuleAdd = rpc.declare({ + object: 'safeshield', + method: 'rule_add', + params: [ 'action', 'domain', 'refresh' ], + expect: { } +}); + +var callRuleDelete = rpc.declare({ + object: 'safeshield', + method: 'rule_delete', + params: [ 'action', 'domain', 'refresh' ], + expect: { } +}); + +function apiError(response, fallback) { + if (response && response.error) { + if (response.error.message) + return response.error.message; + if (response.error.code) + return response.error.code; + } + + return fallback || _('SafeShield rule request failed.'); +} + +function notify(level, message) { + ui.addNotification(null, E('p', {}, [ message ]), level || 'info'); +} + +function formatTimestamp(value) { + var n = Number(value || 0); + var date; + + if (!n) + return '-'; + + date = new Date(n * 1000); + return isNaN(date.getTime()) ? String(value) : date.toLocaleString(); +} + +function delay(ms) { + return new Promise(function(resolve) { + window.setTimeout(resolve, ms); + }); +} + +function waitForLocalApply(beforeSuccess, beforeFailure, timeoutMs) { + var started = Date.now(); + + function check() { + return callStatus().then(function(status) { + var timestamps = (status && status.timestamps) || {}; + var success = Number(timestamps.last_local_apply || 0); + var failure = Number(timestamps.last_local_apply_failure || 0); + + if (success > beforeSuccess) + return { applied: true, status: status }; + + if (failure > beforeFailure) + return { applied: false, failed: true, status: status }; + + if (Date.now() - started >= timeoutMs) + return { applied: false, pending: true, status: status }; + + return delay(1000).then(check); + }); + } + + return check(); +} + +function applyMessage(action, mutation, result) { + var verb = action === 'block' ? _('block') : _('allow'); + var refresh = mutation.refresh || {}; + + if (!refresh.requested) { + if (refresh.reason === 'unchanged') + return _('The %s rule was already in the requested state.').format(verb); + if (refresh.reason === 'local_overrides_disabled') + return _('The rule was saved, but local overrides are disabled so it is not active.'); + return _('The rule was saved without requesting a DNS apply.'); + } + + if (!refresh.accepted) { + if (refresh.reason === 'disabled') + return _('The rule was saved, but SafeShield is disabled so it is not active yet.'); + if (refresh.reason === 'service_stopped') + return _('The rule was saved, but the SafeShield service is stopped.'); + return _('The rule was saved, but the local DNS apply request was not accepted: %s').format(refresh.reason || _('unknown reason')); + } + + if (result && result.applied) + return _('The %s rule was saved and applied to DNS.').format(verb); + if (result && result.failed) + return _('The rule was saved, but SafeShield reported a local apply failure. Check Overview and system logs.'); + return _('The rule was saved and local apply was accepted, but completion was not observed before the UI timeout. SafeShield may still be applying it.'); +} + +function mutationLevel(mutation, result) { + var refresh = mutation.refresh || {}; + + if (!refresh.requested && refresh.reason === 'unchanged') + return 'info'; + if (refresh.requested && refresh.accepted && result && result.applied) + return 'info'; + return 'warning'; +} + +function mutateRule(action, domain, add, status) { + var timestamps = (status && status.timestamps) || {}; + var beforeSuccess = Number(timestamps.last_local_apply || 0); + var beforeFailure = Number(timestamps.last_local_apply_failure || 0); + var request = add ? callRuleAdd(action, domain, true) : callRuleDelete(action, domain, true); + + return request.then(function(response) { + var changedField = add ? 'added' : 'deleted'; + var refresh; + + if (!response || response.ok !== true) + throw new Error(apiError(response)); + + if (!response[changedField]) + return { mutation: response, result: null }; + + refresh = response.refresh || {}; + if (!refresh.requested || !refresh.accepted) + return { mutation: response, result: null }; + + return waitForLocalApply(beforeSuccess, beforeFailure, 90000).then(function(result) { + return { mutation: response, result: result }; + }); + }); +} + +function renderApplyStatus(status) { + var timestamps = (status && status.timestamps) || {}; + var local = (status && status.local_overrides) || {}; + + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ _('Local apply status') ]), + E('table', { 'class': 'table' }, [ + E('tr', {}, [ E('th', {}, [ _('Local overrides enabled') ]), E('td', {}, [ local.enabled ? _('Yes') : _('No') ]) ]), + E('tr', {}, [ E('th', {}, [ _('Last local apply') ]), E('td', {}, [ formatTimestamp(timestamps.last_local_apply) ]) ]), + E('tr', {}, [ E('th', {}, [ _('Last local apply failure') ]), E('td', {}, [ formatTimestamp(timestamps.last_local_apply_failure) ]) ]), + E('tr', {}, [ E('th', {}, [ _('Current stage') ]), E('td', {}, [ status.stage || '-' ]) ]) + ]), + E('div', { 'class': 'cbi-section-descr' }, [ + _('SafeShield applies rule edits using the cached Hub artifact, then atomically rebuilds the active dnsmasq blocklist and verifies DNS. A full artifact refresh is only used as a fallback when the cached Hub artifact is unavailable.') + ]) + ]); +} + +function renderRuleSection(action, entries, status, root, reload) { + var isBlock = action === 'block'; + var title = isBlock ? _('Block list') : _('Allow list'); + var description = isBlock + ? _('Domains in this list are always added to the final SafeShield blocklist.') + : _('Domains in this list are removed from the final SafeShield blocklist.'); + var input = E('input', { + 'class': 'cbi-input-text', + 'type': 'text', + 'placeholder': 'example.com', + 'autocomplete': 'off', + 'spellcheck': 'false' + }); + var add = E('button', { 'class': 'btn cbi-button cbi-button-positive' }, [ isBlock ? _('Add block rule') : _('Add allow rule') ]); + var rows = []; + + function runMutation(domain, adding, button) { + button.disabled = true; + mutateRule(action, domain, adding, status).then(function(outcome) { + notify(mutationLevel(outcome.mutation, outcome.result), applyMessage(action, outcome.mutation, outcome.result)); + return reload(); + }).catch(function(err) { + notify('danger', err.message || String(err)); + }).finally(function() { + button.disabled = false; + }); + } + + add.addEventListener('click', function(ev) { + var domain = input.value.trim(); + ev.preventDefault(); + + if (!domain) { + notify('warning', _('Enter a domain name first.')); + return; + } + + runMutation(domain, true, add); + }); + + input.addEventListener('keydown', function(ev) { + if (ev.key === 'Enter') { + ev.preventDefault(); + add.click(); + } + }); + + (entries || []).forEach(function(domain) { + var remove = E('button', { 'class': 'btn cbi-button cbi-button-negative' }, [ _('Delete') ]); + remove.addEventListener('click', function(ev) { + ev.preventDefault(); + if (!window.confirm(_('Delete %s from the %s list?').format(domain, isBlock ? _('block') : _('allow')))) + return; + runMutation(domain, false, remove); + }); + + rows.push(E('tr', {}, [ + E('td', {}, [ E('code', {}, [ domain ]) ]), + E('td', { 'style': 'width: 1%; white-space: nowrap' }, [ remove ]) + ])); + }); + + if (!rows.length) + rows.push(E('tr', {}, [ E('td', { 'colspan': 2 }, [ _('No local rules in this list.') ]) ])); + + return E('div', { 'class': 'cbi-section' }, [ + E('h3', {}, [ title ]), + E('div', { 'class': 'cbi-section-descr' }, [ description ]), + E('div', { 'class': 'cbi-value' }, [ + E('label', { 'class': 'cbi-value-title' }, [ _('Domain') ]), + E('div', { 'class': 'cbi-value-field' }, [ input, ' ', add ]) + ]), + E('table', { 'class': 'table' }, [ + E('tr', { 'class': 'tr table-titles' }, [ E('th', {}, [ _('Domain') ]), E('th', {}, [ _('Action') ]) ]) + ].concat(rows)) + ]); +} + +function renderPage(data, root) { + var rules = data[0] || {}; + var status = data[1] || {}; + var reload = function() { + return Promise.all([ callRulesList(''), callStatus() ]).then(function(updated) { + root.replaceChild(renderPage(updated, root), root.firstChild); + return updated; + }); + }; + + return E('div', {}, [ + E('h2', {}, [ _('SafeShield local rules') ]), + E('div', { 'class': 'cbi-map-descr' }, [ + _('Local allow and block rules are managed through the public SafeShield rule API. LuCI never edits /etc/safeshield files directly.') + ]), + renderApplyStatus(status), + renderRuleSection('allow', rules.allow || [], status, root, reload), + renderRuleSection('block', rules.block || [], status, root, reload) + ]); +} + +return view.extend({ + load: function() { + return Promise.all([ callRulesList(''), callStatus() ]); + }, + + render: function(data) { + var root = E('div', {}, []); + root.appendChild(renderPage(data || [ {}, {} ], root)); + return root; + }, + + handleSaveApply: null, + handleSave: null, + handleReset: null +}); diff --git a/luci-app-safeshield/po/templates/safeshield.pot b/luci-app-safeshield/po/templates/safeshield.pot new file mode 100644 index 000000000..ba5bf2de6 --- /dev/null +++ b/luci-app-safeshield/po/templates/safeshield.pot @@ -0,0 +1,701 @@ +msgid "" +msgstr "" +"Project-Id-Version: luci-app-safeshield\n" +"PO-Revision-Date: 2026-01-01 00:00+0000\n" +"Last-Translator: SafeShield Translators\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Action" +msgstr "" + +msgid "Actions" +msgstr "" + +msgid "Active" +msgstr "" + +msgid "Add allow rule" +msgstr "" + +msgid "Add block rule" +msgstr "" + +msgid "allow" +msgstr "" + +msgid "Allow list" +msgstr "" + +msgid "Allowlist path" +msgstr "" + +msgid "Apply local allow/block rules" +msgstr "" + +msgid "Apply local rules on top of the cached Hub artifact. Rule files are managed through the SafeShield rule API." +msgstr "" + +msgid "Architecture" +msgstr "" + +msgid "Artifact and runtime safety" +msgstr "" + +msgid "Artifact download" +msgstr "" + +msgid "Artifact metadata resolve" +msgstr "" + +msgid "Artifact SHA-256" +msgstr "" + +msgid "A SafeShield refresh is already running." +msgstr "" + +msgid "block" +msgstr "" + +msgid "Block list" +msgstr "" + +msgid "Blocklist" +msgstr "" + +msgid "Blocklist path" +msgstr "" + +msgid "Blocklist verify" +msgstr "" + +msgid "Boot start delay" +msgstr "" + +msgid "Clear license" +msgstr "" + +msgid "Clear the configured SafeShield license key?" +msgstr "" + +msgid "Compress blocklist" +msgstr "" + +msgid "Compressed" +msgstr "" + +msgid "Config loaded" +msgstr "" + +msgid "Configured" +msgstr "" + +msgid "Configured physical fingerprint" +msgstr "" + +msgid "Configured state" +msgstr "" + +msgid "Current stage" +msgstr "" + +msgid "Current status" +msgstr "" + +msgid "Debug" +msgstr "" + +msgid "Delay before SafeShield performs boot-time work." +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Delete %s from the %s list?" +msgstr "" + +msgid "Device" +msgstr "" + +msgid "Device identity and profile fields are owned by SafeShield and are not editable from LuCI." +msgstr "" + +msgid "Device (read only)" +msgstr "" + +msgid "Diagnostics" +msgstr "" + +msgid "Disabled" +msgstr "" + +msgid "Disable request accepted." +msgstr "" + +msgid "Disable request accepted. Runtime convergence is asynchronous; check Overview for the live state." +msgstr "" + +msgid "Disable SafeShield" +msgstr "" + +msgid "dnsmasq binary" +msgstr "" + +msgid "dnsmasq confdir" +msgstr "" + +msgid "dnsmasq running" +msgstr "" + +msgid "DNS runtime" +msgstr "" + +msgid "DNS runtime OK" +msgstr "" + +msgid "Domain" +msgstr "" + +msgid "Domains in this list are always added to the final SafeShield blocklist." +msgstr "" + +msgid "Domains in this list are removed from the final SafeShield blocklist." +msgstr "" + +msgid "Domains / lines" +msgstr "" + +msgid "Download retries" +msgstr "" + +msgid "Download timeout" +msgstr "" + +msgid "Download URL present" +msgstr "" + +msgid "Enable additional debug output for troubleshooting." +msgstr "" + +msgid "Enabled" +msgstr "" + +msgid "Enable debug logging" +msgstr "" + +msgid "Enable/disable and refresh actions use the public SafeShield ubus API. Enable/disable convergence is asynchronous and is verified through safeshield.status." +msgstr "" + +msgid "Enable request accepted." +msgstr "" + +msgid "Enable request accepted. Runtime convergence is asynchronous; check Overview for the live state." +msgstr "" + +msgid "Enable SafeShield" +msgstr "" + +msgid "Enter a domain name first." +msgstr "" + +msgid "Enter a license key first. Use Clear license to remove the current key." +msgstr "" + +msgid "Enter a new key to replace the configured key" +msgstr "" + +msgid "Enter license key" +msgstr "" + +msgid "Errors" +msgstr "" + +msgid "Errors only" +msgstr "" + +msgid "File size" +msgstr "" + +msgid "Final dnsmasq restart" +msgstr "" + +msgid "General" +msgstr "" + +msgid "Generated at" +msgstr "" + +msgid "Health" +msgstr "" + +msgid "Health checks" +msgstr "" + +msgid "Hub artifact" +msgstr "" + +msgid "Info" +msgstr "" + +msgid "Initial dnsmasq restart" +msgstr "" + +msgid "Installed" +msgstr "" + +msgid "Interval between successful Hub artifact refreshes." +msgstr "" + +msgid "KB" +msgstr "" + +msgid "Keep disabled unless the SafeShield runtime explicitly supports compressed dnsmasq blocklists." +msgstr "" + +msgid "Last attempt" +msgstr "" + +msgid "Last error code" +msgstr "" + +msgid "Last failure" +msgstr "" + +msgid "Last local apply" +msgstr "" + +msgid "Last local apply failure" +msgstr "" + +msgid "Last result" +msgstr "" + +msgid "Last success" +msgstr "" + +msgid "License" +msgstr "" + +msgid "License key cleared. SafeShield will use the unlicensed/free artifact path." +msgstr "" + +msgid "License key updated. SafeShield requested an artifact refresh." +msgstr "" + +msgid "Local allow and block rules are managed through the public SafeShield rule API. LuCI never edits /etc/safeshield files directly." +msgstr "" + +msgid "Local apply status" +msgstr "" + +msgid "Local overrides" +msgstr "" + +msgid "Local overrides enabled" +msgstr "" + +msgid "Local rules" +msgstr "" + +msgid "Local Rules" +msgstr "" + +msgid "Log verbosity" +msgstr "" + +msgid "Masked key" +msgstr "" + +msgid "Maximum accepted final blocklist size." +msgstr "" + +msgid "Maximum blocklist size" +msgstr "" + +msgid "Maximum duration used by the SafeShield pause command." +msgstr "" + +msgid "Maximum file size" +msgstr "" + +msgid "Maximum retry count for artifact downloads." +msgstr "" + +msgid "Memory" +msgstr "" + +msgid "Minimum valid rule count" +msgstr "" + +msgid "Mode / action" +msgstr "" + +msgid "Model" +msgstr "" + +msgid "Name" +msgstr "" + +msgid "New license key" +msgstr "" + +msgid "Next refresh" +msgstr "" + +msgid "Next refresh in" +msgstr "" + +msgid "No" +msgstr "" + +msgid "No local rules in this list." +msgstr "" + +msgid "No SafeShield settings changed." +msgstr "" + +msgid "No sources reported by SafeShield." +msgstr "" + +msgid "Path" +msgstr "" + +msgid "Pause timeout" +msgstr "" + +msgid "Physical fingerprint" +msgstr "" + +msgid "Plan" +msgstr "" + +msgid "Previous backup available" +msgstr "" + +msgid "Refresh daemon running" +msgstr "" + +msgid "Refresh interval" +msgstr "" + +msgid "Refresh now" +msgstr "" + +msgid "Refresh on boot" +msgstr "" + +msgid "Refresh the Hub artifact after boot when the existing successful refresh is no longer recent." +msgstr "" + +msgid "Refresh was not started: %s" +msgstr "" + +msgid "Reject an artifact when the generated dnsmasq rule count is below this value." +msgstr "" + +msgid "Require WAN" +msgstr "" + +msgid "Require WAN before refresh" +msgstr "" + +msgid "Resolved" +msgstr "" + +msgid "Restart dnsmasq before install" +msgstr "" + +msgid "Restart dnsmasq before installing a newly downloaded artifact. Normally this should stay disabled." +msgstr "" + +msgid "Rules" +msgstr "" + +msgid "Run dnsmasq sanity check" +msgstr "" + +msgid "Runtime" +msgstr "" + +msgid "Runtime profile" +msgstr "" + +msgid "SafeShield" +msgstr "" + +msgid "SafeShield accepted the request but runtime convergence was not observed within 15 seconds. Status polling will continue." +msgstr "" + +msgid "SafeShield applies rule edits using the cached Hub artifact, then atomically rebuilds the active dnsmasq blocklist and verifies DNS. A full artifact refresh is only used as a fallback when the cached Hub artifact is unavailable." +msgstr "" + +msgid "SafeShield is disabled and stopped." +msgstr "" + +msgid "SafeShield is enabled and running." +msgstr "" + +msgid "SafeShield is idle." +msgstr "" + +msgid "SafeShield is ready." +msgstr "" + +msgid "SafeShield is refreshing the blocklist." +msgstr "" + +msgid "SafeShield is running with degraded protection." +msgstr "" + +msgid "SafeShield encountered an error." +msgstr "" + +msgid "SafeShield is paused." +msgstr "" + +msgid "SafeShield is disabled." +msgstr "" + +msgid "SafeShield local rules" +msgstr "" + +msgid "SafeShield owns enable/disable lifecycle. LuCI uses safeshield.set_enabled rather than writing UCI directly." +msgstr "" + +msgid "SafeShield refresh request failed." +msgstr "" + +msgid "SafeShield refresh started." +msgstr "" + +msgid "SafeShield rejected the lifecycle request." +msgstr "" + +msgid "SafeShield request failed." +msgstr "" + +msgid "SafeShield rule request failed." +msgstr "" + +msgid "SafeShield settings" +msgstr "" + +msgid "SafeShield settings saved. The service was restarted and a refresh was requested where applicable." +msgstr "" + +msgid "Save settings" +msgstr "" + +msgid "Schedule" +msgstr "" + +msgid "Schema" +msgstr "" + +msgid "seconds" +msgstr "" + +msgid "Service state" +msgstr "" + +msgid "SHA-256" +msgstr "" + +msgid "Size" +msgstr "" + +msgid "%s must be an integer." +msgstr "" + +msgid "%s must be at least %d." +msgstr "" + +msgid "%s must not exceed %d." +msgstr "" + +msgid "Sources" +msgstr "" + +msgid "Stage" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Summary" +msgstr "" + +msgid "Test domain" +msgstr "" + +msgid "Test domain success" +msgstr "" + +msgid "The license key is unchanged." +msgstr "" + +msgid "The raw license key is never returned by the SafeShield API." +msgstr "" + +msgid "The rule was saved and local apply was accepted, but completion was not observed before the UI timeout. SafeShield may still be applying it." +msgstr "" + +msgid "The rule was saved, but local overrides are disabled so it is not active." +msgstr "" + +msgid "The rule was saved, but SafeShield is disabled so it is not active yet." +msgstr "" + +msgid "The rule was saved, but SafeShield reported a local apply failure. Check Overview and system logs." +msgstr "" + +msgid "The rule was saved, but the local DNS apply request was not accepted: %s" +msgstr "" + +msgid "The rule was saved, but the SafeShield service is stopped." +msgstr "" + +msgid "The rule was saved without requesting a DNS apply." +msgstr "" + +msgid "The %s rule was already in the requested state." +msgstr "" + +msgid "The %s rule was saved and applied to DNS." +msgstr "" + +msgid "This page uses the public SafeShield ubus API. UCI, local rule files, service lifecycle and license storage remain owned by the safeshield package." +msgstr "" + +msgid "Tier" +msgstr "" + +msgid "Timeout used for Hub resolve and artifact downloads." +msgstr "" + +msgid "Unique domains" +msgstr "" + +msgid "unknown reason" +msgstr "" + +msgid "Update license" +msgstr "" + +msgid "Validate dnsmasq state after installing or applying the blocklist." +msgstr "" + +msgid "Valid rules" +msgstr "" + +msgid "Vendor" +msgstr "" + +msgid "Verification OK" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Wait for WAN connectivity before resolving and downloading Hub artifacts." +msgstr "" + +msgid "Warnings" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "Idle" +msgstr "" + +msgid "Waiting for scheduled refresh" +msgstr "" + +msgid "Waiting after boot" +msgstr "" + +msgid "Applying local rules" +msgstr "" + +msgid "Merging local rules" +msgstr "" + +msgid "Restarting DNS service" +msgstr "" + +msgid "Checking DNS service" +msgstr "" + +msgid "Verifying blocklist" +msgstr "" + +msgid "OK" +msgstr "" + +msgid "Ready" +msgstr "" + +msgid "Success" +msgstr "" + +msgid "Running" +msgstr "" + +msgid "Refreshing" +msgstr "" + +msgid "Pending" +msgstr "" + +msgid "Notice" +msgstr "" + +msgid "Warning" +msgstr "" + +msgid "Degraded" +msgstr "" + +msgid "Error" +msgstr "" + +msgid "Failed" +msgstr "" + +msgid "Failure" +msgstr "" + +msgid "Expired" +msgstr "" + +msgid "Revoked" +msgstr "" + +msgid "Suspended" +msgstr "" + +msgid "Free" +msgstr "" + +msgid "Unlicensed" +msgstr "" + +msgid "Licensed" +msgstr "" + +msgid "Light" +msgstr "" + +msgid "Standard" +msgstr "" + +msgid "Full" +msgstr "" + +msgid "Block" +msgstr "" + +msgid "Allow" +msgstr "" diff --git a/luci-app-safeshield/po/zh-cn b/luci-app-safeshield/po/zh-cn new file mode 120000 index 000000000..8d69574dd --- /dev/null +++ b/luci-app-safeshield/po/zh-cn @@ -0,0 +1 @@ +zh_Hans \ No newline at end of file diff --git a/luci-app-safeshield/po/zh_Hans/safeshield.po b/luci-app-safeshield/po/zh_Hans/safeshield.po new file mode 100644 index 000000000..4aeaa6dee --- /dev/null +++ b/luci-app-safeshield/po/zh_Hans/safeshield.po @@ -0,0 +1,702 @@ +msgid "" +msgstr "" +"Project-Id-Version: luci-app-safeshield\n" +"PO-Revision-Date: 2026-08-26 00:00+0000\n" +"Last-Translator: ZagWrt Translators\n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Action" +msgstr "操作" + +msgid "Actions" +msgstr "操作" + +msgid "Active" +msgstr "活跃" + +msgid "Add allow rule" +msgstr "添加放行规则" + +msgid "Add block rule" +msgstr "添加拦截规则" + +msgid "allow" +msgstr "放行" + +msgid "Allow list" +msgstr "放行列表" + +msgid "Allowlist path" +msgstr "放行列表路径" + +msgid "Apply local allow/block rules" +msgstr "应用本地放行/拦截规则" + +msgid "Apply local rules on top of the cached Hub artifact. Rule files are managed through the SafeShield rule API." +msgstr "在已缓存的 Hub 产物基础上应用本地规则。规则文件通过 SafeShield 规则 API 管理。" + +msgid "Architecture" +msgstr "架构" + +msgid "Artifact and runtime safety" +msgstr "产物和运行时安全" + +msgid "Artifact download" +msgstr "产物下载" + +msgid "Artifact metadata resolve" +msgstr "产物元数据解析" + +msgid "Artifact SHA-256" +msgstr "产物 SHA-256" + +msgid "A SafeShield refresh is already running." +msgstr "SafeShield 刷新已在运行中。" + +msgid "block" +msgstr "拦截" + +msgid "Block list" +msgstr "拦截列表" + +msgid "Blocklist" +msgstr "拦截列表" + +msgid "Blocklist path" +msgstr "拦截列表路径" + +msgid "Blocklist verify" +msgstr "拦截列表校验" + +msgid "Boot start delay" +msgstr "启动延迟" + +msgid "Clear license" +msgstr "清除许可证" + +msgid "Clear the configured SafeShield license key?" +msgstr "确定要清除已配置的 SafeShield 许可证密钥?" + +msgid "Compress blocklist" +msgstr "压缩拦截列表" + +msgid "Compressed" +msgstr "已压缩" + +msgid "Config loaded" +msgstr "配置已加载" + +msgid "Configured" +msgstr "已配置" + +msgid "Configured physical fingerprint" +msgstr "已配置的物理指纹" + +msgid "Configured state" +msgstr "配置状态" + +msgid "Current stage" +msgstr "当前阶段" + +msgid "Current status" +msgstr "当前状态" + +msgid "Debug" +msgstr "调试" + +msgid "Delay before SafeShield performs boot-time work." +msgstr "SafeShield 执行启动任务前的延迟。" + +msgid "Delete" +msgstr "删除" + +msgid "Delete %s from the %s list?" +msgstr "确定从 %s 列表中删除 %s?" + +msgid "Device" +msgstr "设备" + +msgid "Device identity and profile fields are owned by SafeShield and are not editable from LuCI." +msgstr "设备身份和配置文件字段由 SafeShield 管理,不能通过 LuCI 编辑。" + +msgid "Device (read only)" +msgstr "设备(只读)" + +msgid "Diagnostics" +msgstr "诊断" + +msgid "Disabled" +msgstr "已禁用" + +msgid "Disable request accepted." +msgstr "禁用请求已接受。" + +msgid "Disable request accepted. Runtime convergence is asynchronous; check Overview for the live state." +msgstr "禁用请求已接受。运行时状态收敛是异步的,请在概览页查看实时状态。" + +msgid "Disable SafeShield" +msgstr "禁用 SafeShield" + +msgid "dnsmasq binary" +msgstr "dnsmasq 可执行文件" + +msgid "dnsmasq confdir" +msgstr "dnsmasq 配置目录" + +msgid "dnsmasq running" +msgstr "dnsmasq 运行中" + +msgid "DNS runtime" +msgstr "DNS 运行时" + +msgid "DNS runtime OK" +msgstr "DNS 运行时正常" + +msgid "Domain" +msgstr "域名" + +msgid "Domains in this list are always added to the final SafeShield blocklist." +msgstr "此列表中的域名将始终添加到最终的 SafeShield 拦截列表中。" + +msgid "Domains in this list are removed from the final SafeShield blocklist." +msgstr "此列表中的域名将从最终的 SafeShield 拦截列表中移除。" + +msgid "Domains / lines" +msgstr "域名 / 行数" + +msgid "Download retries" +msgstr "下载重试次数" + +msgid "Download timeout" +msgstr "下载超时" + +msgid "Download URL present" +msgstr "下载 URL 存在" + +msgid "Enable additional debug output for troubleshooting." +msgstr "启用额外的调试输出用于故障排查。" + +msgid "Enabled" +msgstr "已启用" + +msgid "Enable debug logging" +msgstr "启用调试日志" + +msgid "Enable/disable and refresh actions use the public SafeShield ubus API. Enable/disable convergence is asynchronous and is verified through safeshield.status." +msgstr "启用/禁用和刷新操作使用公共 SafeShield ubus API。启用/禁用状态收敛是异步的,通过 safeshield.status 验证。" + +msgid "Enable request accepted." +msgstr "启用请求已接受。" + +msgid "Enable request accepted. Runtime convergence is asynchronous; check Overview for the live state." +msgstr "启用请求已接受。运行时状态收敛是异步的,请在概览页查看实时状态。" + +msgid "Enable SafeShield" +msgstr "启用 SafeShield" + +msgid "Enter a domain name first." +msgstr "请先输入域名。" + +msgid "Enter a license key first. Use Clear license to remove the current key." +msgstr "请先输入许可证密钥。使用“清除许可证”可移除当前密钥。" + +msgid "Enter a new key to replace the configured key" +msgstr "输入新密钥以替换已配置的密钥" + +msgid "Enter license key" +msgstr "输入许可证密钥" + +msgid "Errors" +msgstr "错误" + +msgid "Errors only" +msgstr "仅错误" + +msgid "File size" +msgstr "文件大小" + +msgid "Final dnsmasq restart" +msgstr "最终 dnsmasq 重启" + +msgid "General" +msgstr "常规" + +msgid "Generated at" +msgstr "生成时间" + +msgid "Health" +msgstr "健康状态" + +msgid "Health checks" +msgstr "健康检查" + +msgid "Hub artifact" +msgstr "Hub 产物" + +msgid "Info" +msgstr "信息" + +msgid "Initial dnsmasq restart" +msgstr "初始 dnsmasq 重启" + +msgid "Installed" +msgstr "已安装" + +msgid "Interval between successful Hub artifact refreshes." +msgstr "成功刷新 Hub 产物之间的间隔。" + +msgid "KB" +msgstr "KB" + +msgid "Keep disabled unless the SafeShield runtime explicitly supports compressed dnsmasq blocklists." +msgstr "除非 SafeShield 运行时明确支持压缩的 dnsmasq 拦截列表,否则请保持禁用。" + +msgid "Last attempt" +msgstr "上次尝试" + +msgid "Last error code" +msgstr "上次错误代码" + +msgid "Last failure" +msgstr "上次失败" + +msgid "Last local apply" +msgstr "上次本地应用" + +msgid "Last local apply failure" +msgstr "上次本地应用失败" + +msgid "Last result" +msgstr "上次结果" + +msgid "Last success" +msgstr "上次成功" + +msgid "License" +msgstr "许可证" + +msgid "License key cleared. SafeShield will use the unlicensed/free artifact path." +msgstr "许可证密钥已清除。SafeShield 将使用免费/无授权的产物路径。" + +msgid "License key updated. SafeShield requested an artifact refresh." +msgstr "许可证密钥已更新。SafeShield 已请求刷新产物。" + +msgid "Local allow and block rules are managed through the public SafeShield rule API. LuCI never edits /etc/safeshield files directly." +msgstr "本地放行和拦截规则通过公共 SafeShield 规则 API 管理。LuCI 不会直接编辑 /etc/safeshield 文件。" + +msgid "Local apply status" +msgstr "本地应用状态" + +msgid "Local overrides" +msgstr "本地覆盖" + +msgid "Local overrides enabled" +msgstr "本地覆盖已启用" + +msgid "Local rules" +msgstr "本地规则" + +msgid "Local Rules" +msgstr "本地规则" + +msgid "Log verbosity" +msgstr "日志详细程度" + +msgid "Masked key" +msgstr "掩码密钥" + +msgid "Maximum accepted final blocklist size." +msgstr "最终拦截列表允许的最大大小。" + +msgid "Maximum blocklist size" +msgstr "拦截列表最大大小" + +msgid "Maximum duration used by the SafeShield pause command." +msgstr "SafeShield 暂停命令使用的最大持续时间。" + +msgid "Maximum file size" +msgstr "最大文件大小" + +msgid "Maximum retry count for artifact downloads." +msgstr "产物下载的最大重试次数。" + +msgid "Memory" +msgstr "内存" + +msgid "Minimum valid rule count" +msgstr "最少有效规则数" + +msgid "Mode / action" +msgstr "模式 / 动作" + +msgid "Model" +msgstr "型号" + +msgid "Name" +msgstr "名称" + +msgid "New license key" +msgstr "新许可证密钥" + +msgid "Next refresh" +msgstr "下次刷新" + +msgid "Next refresh in" +msgstr "距下次刷新" + +msgid "No" +msgstr "否" + +msgid "No local rules in this list." +msgstr "此列表中没有本地规则。" + +msgid "No SafeShield settings changed." +msgstr "SafeShield 设置未更改。" + +msgid "No sources reported by SafeShield." +msgstr "SafeShield 未报告任何源。" + +msgid "Path" +msgstr "路径" + +msgid "Pause timeout" +msgstr "暂停超时" + +msgid "Physical fingerprint" +msgstr "物理指纹" + +msgid "Plan" +msgstr "方案" + +msgid "Previous backup available" +msgstr "上一备份可用" + +msgid "Refresh daemon running" +msgstr "刷新守护进程运行中" + +msgid "Refresh interval" +msgstr "刷新间隔" + +msgid "Refresh now" +msgstr "立即刷新" + +msgid "Refresh on boot" +msgstr "启动时刷新" + +msgid "Refresh the Hub artifact after boot when the existing successful refresh is no longer recent." +msgstr "当上次成功刷新不再是最新时,在启动后刷新 Hub 产物。" + +msgid "Refresh was not started: %s" +msgstr "刷新未启动:%s" + +msgid "Reject an artifact when the generated dnsmasq rule count is below this value." +msgstr "当生成的 dnsmasq 规则数低于此值时拒绝产物。" + +msgid "Require WAN" +msgstr "需要 WAN" + +msgid "Require WAN before refresh" +msgstr "刷新前需要 WAN" + +msgid "Resolved" +msgstr "已解析" + +msgid "Restart dnsmasq before install" +msgstr "安装前重启 dnsmasq" + +msgid "Restart dnsmasq before installing a newly downloaded artifact. Normally this should stay disabled." +msgstr "在安装新下载的产物前重启 dnsmasq。通常应保持禁用。" + +msgid "Rules" +msgstr "规则" + +msgid "Run dnsmasq sanity check" +msgstr "运行 dnsmasq 健全性检查" + +msgid "Runtime" +msgstr "运行时" + +msgid "Runtime profile" +msgstr "运行时配置文件" + +msgid "SafeShield" +msgstr "SafeShield" + +msgid "SafeShield accepted the request but runtime convergence was not observed within 15 seconds. Status polling will continue." +msgstr "SafeShield 已接受请求,但在 15 秒内未观察到运行时状态收敛。将继续轮询状态。" + +msgid "SafeShield applies rule edits using the cached Hub artifact, then atomically rebuilds the active dnsmasq blocklist and verifies DNS. A full artifact refresh is only used as a fallback when the cached Hub artifact is unavailable." +msgstr "SafeShield 使用缓存的 Hub 产物应用规则编辑,然后原子性地重建活跃的 dnsmasq 拦截列表并验证 DNS。仅当缓存的 Hub 产物不可用时,才会完整刷新产物作为备选。" + +msgid "SafeShield is disabled and stopped." +msgstr "SafeShield 已禁用并停止。" + +msgid "SafeShield is enabled and running." +msgstr "SafeShield 已启用并运行中。" + +msgid "SafeShield is idle." +msgstr "SafeShield 处于空闲状态。" + +msgid "SafeShield is ready." +msgstr "SafeShield 已就绪。" + +msgid "SafeShield is refreshing the blocklist." +msgstr "SafeShield 正在刷新拦截列表。" + +msgid "SafeShield is running with degraded protection." +msgstr "SafeShield 正在降级保护状态下运行。" + +msgid "SafeShield encountered an error." +msgstr "SafeShield 遇到错误。" + +msgid "SafeShield is paused." +msgstr "SafeShield 已暂停。" + +msgid "SafeShield is disabled." +msgstr "SafeShield 已禁用。" + +msgid "SafeShield local rules" +msgstr "SafeShield 本地规则" + +msgid "SafeShield owns enable/disable lifecycle. LuCI uses safeshield.set_enabled rather than writing UCI directly." +msgstr "SafeShield 拥有启用/禁用生命周期。LuCI 使用 safeshield.set_enabled 而非直接写入 UCI。" + +msgid "SafeShield refresh request failed." +msgstr "SafeShield 刷新请求失败。" + +msgid "SafeShield refresh started." +msgstr "SafeShield 刷新已启动。" + +msgid "SafeShield rejected the lifecycle request." +msgstr "SafeShield 拒绝了生命周期请求。" + +msgid "SafeShield request failed." +msgstr "SafeShield 请求失败。" + +msgid "SafeShield rule request failed." +msgstr "SafeShield 规则请求失败。" + +msgid "SafeShield settings" +msgstr "SafeShield 设置" + +msgid "SafeShield settings saved. The service was restarted and a refresh was requested where applicable." +msgstr "SafeShield 设置已保存。服务已重启,并在适用时请求了刷新。" + +msgid "Save settings" +msgstr "保存设置" + +msgid "Schedule" +msgstr "计划" + +msgid "Schema" +msgstr "模式" + +msgid "seconds" +msgstr "秒" + +msgid "Service state" +msgstr "服务状态" + +msgid "SHA-256" +msgstr "SHA-256" + +msgid "Size" +msgstr "大小" + +msgid "%s must be an integer." +msgstr "%s 必须为整数。" + +msgid "%s must be at least %d." +msgstr "%s 不能小于 %d。" + +msgid "%s must not exceed %d." +msgstr "%s 不能超过 %d。" + +msgid "Sources" +msgstr "源" + +msgid "Stage" +msgstr "阶段" + +msgid "Status" +msgstr "状态" + +msgid "Summary" +msgstr "摘要" + +msgid "Test domain" +msgstr "测试域名" + +msgid "Test domain success" +msgstr "测试域名成功" + +msgid "The license key is unchanged." +msgstr "许可证密钥未更改。" + +msgid "The raw license key is never returned by the SafeShield API." +msgstr "SafeShield API 不会返回原始许可证密钥。" + +msgid "The rule was saved and local apply was accepted, but completion was not observed before the UI timeout. SafeShield may still be applying it." +msgstr "规则已保存且本地应用已接受,但在界面超时前未观察到完成。SafeShield 可能仍在应用中。" + +msgid "The rule was saved, but local overrides are disabled so it is not active." +msgstr "规则已保存,但本地覆盖已禁用,因此规则未生效。" + +msgid "The rule was saved, but SafeShield is disabled so it is not active yet." +msgstr "规则已保存,但 SafeShield 已禁用,因此规则尚未生效。" + +msgid "The rule was saved, but SafeShield reported a local apply failure. Check Overview and system logs." +msgstr "规则已保存,但 SafeShield 报告本地应用失败。请检查概览和系统日志。" + +msgid "The rule was saved, but the local DNS apply request was not accepted: %s" +msgstr "规则已保存,但本地 DNS 应用请求未被接受:%s" + +msgid "The rule was saved, but the SafeShield service is stopped." +msgstr "规则已保存,但 SafeShield 服务已停止。" + +msgid "The rule was saved without requesting a DNS apply." +msgstr "规则已保存,但未请求 DNS 应用。" + +msgid "The %s rule was already in the requested state." +msgstr "%s 规则已处于请求的状态。" + +msgid "The %s rule was saved and applied to DNS." +msgstr "%s 规则已保存并应用到 DNS。" + +msgid "This page uses the public SafeShield ubus API. UCI, local rule files, service lifecycle and license storage remain owned by the safeshield package." +msgstr "此页面使用公共 SafeShield ubus API。UCI、本地规则文件、服务生命周期和许可证存储仍由 safeshield 软件包管理。" + +msgid "Tier" +msgstr "等级" + +msgid "Timeout used for Hub resolve and artifact downloads." +msgstr "用于 Hub 解析和产物下载的超时时间。" + +msgid "Unique domains" +msgstr "唯一域名数" + +msgid "unknown reason" +msgstr "未知原因" + +msgid "Update license" +msgstr "更新许可证" + +msgid "Validate dnsmasq state after installing or applying the blocklist." +msgstr "安装或应用拦截列表后验证 dnsmasq 状态。" + +msgid "Valid rules" +msgstr "有效规则" + +msgid "Vendor" +msgstr "厂商" + +msgid "Verification OK" +msgstr "验证通过" + +msgid "Version" +msgstr "版本" + +msgid "Wait for WAN connectivity before resolving and downloading Hub artifacts." +msgstr "在解析和下载 Hub 产物前等待 WAN 连接。" + +msgid "Warnings" +msgstr "警告" + +msgid "Yes" +msgstr "是" + +msgid "Idle" +msgstr "空闲" + +msgid "Waiting for scheduled refresh" +msgstr "等待计划刷新" + +msgid "Waiting after boot" +msgstr "启动后等待" + +msgid "Applying local rules" +msgstr "应用本地规则" + +msgid "Merging local rules" +msgstr "合并本地规则" + +msgid "Restarting DNS service" +msgstr "重启 DNS 服务" + +msgid "Checking DNS service" +msgstr "检查 DNS 服务" + +msgid "Verifying blocklist" +msgstr "校验拦截列表" + +msgid "OK" +msgstr "正常" + +msgid "Ready" +msgstr "就绪" + +msgid "Success" +msgstr "成功" + +msgid "Running" +msgstr "运行中" + +msgid "Refreshing" +msgstr "刷新中" + +msgid "Pending" +msgstr "等待中" + +msgid "Notice" +msgstr "通知" + +msgid "Warning" +msgstr "警告" + +msgid "Degraded" +msgstr "降级" + +msgid "Error" +msgstr "错误" + +msgid "Failed" +msgstr "失败" + +msgid "Failure" +msgstr "失败" + +msgid "Expired" +msgstr "已过期" + +msgid "Revoked" +msgstr "已撤销" + +msgid "Suspended" +msgstr "已暂停" + +msgid "Free" +msgstr "免费" + +msgid "Unlicensed" +msgstr "未授权" + +msgid "Licensed" +msgstr "已授权" + +msgid "Light" +msgstr "轻量版" + +msgid "Standard" +msgstr "标准版" + +msgid "Full" +msgstr "完整版" + +msgid "Block" +msgstr "拦截" + +msgid "Allow" +msgstr "放行" diff --git a/luci-app-safeshield/root/etc/uci-defaults/90_luci-app-safeshield b/luci-app-safeshield/root/etc/uci-defaults/90_luci-app-safeshield new file mode 100644 index 000000000..ab587c676 --- /dev/null +++ b/luci-app-safeshield/root/etc/uci-defaults/90_luci-app-safeshield @@ -0,0 +1,9 @@ +#!/bin/sh + +rm -rf /tmp/luci-modulecache +rm -f /tmp/luci-indexcache + +[ -x /etc/init.d/rpcd ] && /etc/init.d/rpcd reload +[ -x /etc/init.d/uhttpd ] && /etc/init.d/uhttpd reload + +exit 0 \ No newline at end of file diff --git a/luci-app-safeshield/root/usr/share/luci/menu.d/luci-app-safeshield.json b/luci-app-safeshield/root/usr/share/luci/menu.d/luci-app-safeshield.json new file mode 100644 index 000000000..bf76226fa --- /dev/null +++ b/luci-app-safeshield/root/usr/share/luci/menu.d/luci-app-safeshield.json @@ -0,0 +1,45 @@ +{ + "admin/services/safeshield": { + "title": "SafeShield", + "order": 60, + "action": { + "type": "firstchild" + }, + "depends": { + "acl": [ "luci-app-safeshield" ] + } + }, + "admin/services/safeshield/overview": { + "title": "Overview", + "order": 10, + "action": { + "type": "view", + "path": "safeshield/overview" + }, + "depends": { + "acl": [ "luci-app-safeshield" ] + } + }, + "admin/services/safeshield/rules": { + "title": "Local Rules", + "order": 20, + "action": { + "type": "view", + "path": "safeshield/rules" + }, + "depends": { + "acl": [ "luci-app-safeshield" ] + } + }, + "admin/services/safeshield/config": { + "title": "Settings", + "order": 30, + "action": { + "type": "view", + "path": "safeshield/config" + }, + "depends": { + "acl": [ "luci-app-safeshield" ] + } + } +} diff --git a/luci-app-safeshield/root/usr/share/rpcd/acl.d/luci-app-safeshield.json b/luci-app-safeshield/root/usr/share/rpcd/acl.d/luci-app-safeshield.json new file mode 100644 index 000000000..8c867f964 --- /dev/null +++ b/luci-app-safeshield/root/usr/share/rpcd/acl.d/luci-app-safeshield.json @@ -0,0 +1,26 @@ +{ + "luci-app-safeshield": { + "description": "Grant LuCI access to the public SafeShield management API", + "read": { + "ubus": { + "safeshield": [ + "status", + "config", + "rules_list" + ] + } + }, + "write": { + "ubus": { + "safeshield": [ + "config_update", + "set_enabled", + "refresh", + "rule_add", + "rule_delete", + "license_update" + ] + } + } + } +} diff --git a/luci-app-sunpanel/Makefile b/luci-app-sunpanel/Makefile index b587f3064..8543425da 100644 --- a/luci-app-sunpanel/Makefile +++ b/luci-app-sunpanel/Makefile @@ -9,9 +9,9 @@ LUCI_TITLE:=LuCI support for sunpanel LUCI_DEPENDS:=+sunpanel LUCI_PKGARCH:=all -PKG_VERSION:=1.3.1-r2 +PKG_VERSION:=1.8.1-r1 # PKG_RELEASE MUST be empty for luci.mk -PKG_RELEASE:=2 +PKG_RELEASE:=3 LUCI_MINIFY_CSS:=0 LUCI_MINIFY_JS:=0 @@ -19,4 +19,3 @@ LUCI_MINIFY_JS:=0 include $(TOPDIR)/feeds/luci/luci.mk # call BuildPackage - OpenWrt buildroot signature - diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/404-b0d1a3d9.svg b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/404-b0d1a3d9.svg deleted file mode 100644 index 38420463f..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/404-b0d1a3d9.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/Alert-018ca7af.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/Alert-018ca7af.js deleted file mode 100644 index d7d8adb97..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/Alert-018ca7af.js +++ /dev/null @@ -1,48 +0,0 @@ -import{m as d,p as t,K as v,aT as F,n as H,f as j,q as M,z as C,af as N,y as p,aN as O,A as i,B as V,r as W,g as o,P as D,aL as K,F as q,G,aS as J,cT as Q,S as U,aD as X,aE as Y,aF as Z,aC as ee}from"./index-7e19b821.js";const re=d("alert",` - line-height: var(--n-line-height); - border-radius: var(--n-border-radius); - position: relative; - transition: background-color .3s var(--n-bezier); - background-color: var(--n-color); - text-align: start; - word-break: break-word; -`,[t("border",` - border-radius: inherit; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - transition: border-color .3s var(--n-bezier); - border: var(--n-border); - pointer-events: none; - `),v("closable",[d("alert-body",[t("title",` - padding-right: 24px; - `)])]),t("icon",{color:"var(--n-icon-color)"}),d("alert-body",{padding:"var(--n-padding)"},[t("title",{color:"var(--n-title-text-color)"}),t("content",{color:"var(--n-content-text-color)"})]),F({originalTransition:"transform .3s var(--n-bezier)",enterToProps:{transform:"scale(1)"},leaveToProps:{transform:"scale(0.9)"}}),t("icon",` - position: absolute; - left: 0; - top: 0; - align-items: center; - justify-content: center; - display: flex; - width: var(--n-icon-size); - height: var(--n-icon-size); - font-size: var(--n-icon-size); - margin: var(--n-icon-margin); - `),t("close",` - transition: - color .3s var(--n-bezier), - background-color .3s var(--n-bezier); - position: absolute; - right: 0; - top: 0; - margin: var(--n-close-margin); - `),v("show-icon",[d("alert-body",{paddingLeft:"calc(var(--n-icon-margin-left) + var(--n-icon-size) + var(--n-icon-margin-right))"})]),v("right-adjust",[d("alert-body",{paddingRight:"calc(var(--n-close-size) + var(--n-padding) + 2px)"})]),d("alert-body",` - border-radius: var(--n-border-radius); - transition: border-color .3s var(--n-bezier); - `,[t("title",` - transition: color .3s var(--n-bezier); - font-size: 16px; - line-height: 19px; - font-weight: var(--n-title-font-weight); - `,[H("& +",[t("content",{marginTop:"9px"})])]),t("content",{transition:"color .3s var(--n-bezier)",fontSize:"var(--n-font-size)"})]),t("icon",{transition:"color .3s var(--n-bezier)"})]),oe=Object.assign(Object.assign({},C.props),{title:String,showIcon:{type:Boolean,default:!0},type:{type:String,default:"default"},bordered:{type:Boolean,default:!0},closable:Boolean,onClose:Function,onAfterLeave:Function,onAfterHide:Function}),ie=j({name:"Alert",inheritAttrs:!1,props:oe,setup(n){const{mergedClsPrefixRef:e,mergedBorderedRef:l,inlineThemeDisabled:g,mergedRtlRef:u}=M(n),h=C("Alert","-alert",re,Q,n,e),z=N("Alert",u,e),f=p(()=>{const{common:{cubicBezierEaseInOut:a},self:r}=h.value,{fontSize:x,borderRadius:R,titleFontWeight:I,lineHeight:A,iconSize:T,iconMargin:m,iconMarginRtl:$,closeIconSize:w,closeBorderRadius:P,closeSize:B,closeMargin:S,closeMarginRtl:_,padding:L}=r,{type:s}=n,{left:k,right:E}=O(m);return{"--n-bezier":a,"--n-color":r[i("color",s)],"--n-close-icon-size":w,"--n-close-border-radius":P,"--n-close-color-hover":r[i("closeColorHover",s)],"--n-close-color-pressed":r[i("closeColorPressed",s)],"--n-close-icon-color":r[i("closeIconColor",s)],"--n-close-icon-color-hover":r[i("closeIconColorHover",s)],"--n-close-icon-color-pressed":r[i("closeIconColorPressed",s)],"--n-icon-color":r[i("iconColor",s)],"--n-border":r[i("border",s)],"--n-title-text-color":r[i("titleTextColor",s)],"--n-content-text-color":r[i("contentTextColor",s)],"--n-line-height":A,"--n-border-radius":R,"--n-font-size":x,"--n-title-font-weight":I,"--n-icon-size":T,"--n-icon-margin":m,"--n-icon-margin-rtl":$,"--n-close-size":B,"--n-close-margin":S,"--n-close-margin-rtl":_,"--n-padding":L,"--n-icon-margin-left":k,"--n-icon-margin-right":E}}),c=g?V("alert",p(()=>n.type[0]),f,n):void 0,b=W(!0),y=()=>{const{onAfterLeave:a,onAfterHide:r}=n;a&&a(),r&&r()};return{rtlEnabled:z,mergedClsPrefix:e,mergedBordered:l,visible:b,handleCloseClick:()=>{var a;Promise.resolve((a=n.onClose)===null||a===void 0?void 0:a.call(n)).then(r=>{r!==!1&&(b.value=!1)})},handleAfterLeave:()=>{y()},mergedTheme:h,cssVars:g?void 0:f,themeClass:c==null?void 0:c.themeClass,onRender:c==null?void 0:c.onRender}},render(){var n;return(n=this.onRender)===null||n===void 0||n.call(this),o(J,{onAfterLeave:this.handleAfterLeave},{default:()=>{const{mergedClsPrefix:e,$slots:l}=this,g={class:[`${e}-alert`,this.themeClass,this.closable&&`${e}-alert--closable`,this.showIcon&&`${e}-alert--show-icon`,!this.title&&this.closable&&`${e}-alert--right-adjust`,this.rtlEnabled&&`${e}-alert--rtl`],style:this.cssVars,role:"alert"};return this.visible?o("div",Object.assign({},D(this.$attrs,g)),this.closable&&o(K,{clsPrefix:e,class:`${e}-alert__close`,onClick:this.handleCloseClick}),this.bordered&&o("div",{class:`${e}-alert__border`}),this.showIcon&&o("div",{class:`${e}-alert__icon`,"aria-hidden":"true"},q(l.icon,()=>[o(U,{clsPrefix:e},{default:()=>{switch(this.type){case"success":return o(ee,null);case"info":return o(Z,null);case"warning":return o(Y,null);case"error":return o(X,null);default:return null}}})])),o("div",{class:[`${e}-alert-body`,this.mergedBordered&&`${e}-alert-body--bordered`]},G(l.header,u=>{const h=u||this.title;return h?o("div",{class:`${e}-alert-body__title`},h):null}),l.default&&o("div",{class:`${e}-alert-body__content`},l))):null}})}});export{ie as N}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/Divider-a11d112a.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/Divider-a11d112a.js deleted file mode 100644 index 4e4d6e954..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/Divider-a11d112a.js +++ /dev/null @@ -1,42 +0,0 @@ -import{m as p,aj as c,p as n,K as t,f,q as u,z as v,cO as b,y as x,B as C,g as d,ao as $}from"./index-7e19b821.js";const w=p("divider",` - position: relative; - display: flex; - width: 100%; - box-sizing: border-box; - font-size: 16px; - color: var(--n-text-color); - transition: - color .3s var(--n-bezier), - background-color .3s var(--n-bezier); -`,[c("vertical",` - margin-top: 24px; - margin-bottom: 24px; - `,[c("no-title",` - display: flex; - align-items: center; - `)]),n("title",` - display: flex; - align-items: center; - margin-left: 12px; - margin-right: 12px; - white-space: nowrap; - font-weight: var(--n-font-weight); - `),t("title-position-left",[n("line",[t("left",{width:"28px"})])]),t("title-position-right",[n("line",[t("right",{width:"28px"})])]),t("dashed",[n("line",` - background-color: #0000; - height: 0px; - width: 100%; - border-style: dashed; - border-width: 1px 0 0; - `)]),t("vertical",` - display: inline-block; - height: 1em; - margin: 0 8px; - vertical-align: middle; - width: 1px; - `),n("line",` - border: none; - transition: background-color .3s var(--n-bezier), border-color .3s var(--n-bezier); - height: 1px; - width: 100%; - margin: 0; - `),c("dashed",[n("line",{backgroundColor:"var(--n-color)"})]),t("dashed",[n("line",{borderColor:"var(--n-color)"})]),t("vertical",{backgroundColor:"var(--n-color)"})]),_=Object.assign(Object.assign({},v.props),{titlePlacement:{type:String,default:"center"},dashed:Boolean,vertical:Boolean}),z=f({name:"Divider",props:_,setup(r){const{mergedClsPrefixRef:o,inlineThemeDisabled:l}=u(r),s=v("Divider","-divider",w,b,r,o),a=x(()=>{const{common:{cubicBezierEaseInOut:e},self:{color:h,textColor:g,fontWeight:m}}=s.value;return{"--n-bezier":e,"--n-color":h,"--n-text-color":g,"--n-font-weight":m}}),i=l?C("divider",void 0,a,r):void 0;return{mergedClsPrefix:o,cssVars:l?void 0:a,themeClass:i==null?void 0:i.themeClass,onRender:i==null?void 0:i.onRender}},render(){var r;const{$slots:o,titlePlacement:l,vertical:s,dashed:a,cssVars:i,mergedClsPrefix:e}=this;return(r=this.onRender)===null||r===void 0||r.call(this),d("div",{role:"separator",class:[`${e}-divider`,this.themeClass,{[`${e}-divider--vertical`]:s,[`${e}-divider--no-title`]:!o.default,[`${e}-divider--dashed`]:a,[`${e}-divider--title-position-${l}`]:o.default&&l}],style:i},s?null:d("div",{class:`${e}-divider__line ${e}-divider__line--left`}),!s&&o.default?d($,null,d("div",{class:`${e}-divider__title`},this.$slots),d("div",{class:`${e}-divider__line ${e}-divider__line--right`})):null)}});export{z as N}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/GradientText-44d798c5.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/GradientText-44d798c5.js deleted file mode 100644 index 565a8e33b..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/GradientText-44d798c5.js +++ /dev/null @@ -1,12 +0,0 @@ -import{m as p,f as x,q as v,y as o,z as f,A as g,B as z,g as S,cH as T}from"./index-7e19b821.js";import{u as C}from"./index-2b595d91.js";import{f as R}from"./index-c238f14b.js";const $=p("gradient-text",` - display: inline-block; - font-weight: var(--n-font-weight); - -webkit-background-clip: text; - background-clip: text; - color: #0000; - white-space: nowrap; - background-image: linear-gradient(var(--n-rotate), var(--n-color-start) 0%, var(--n-color-end) 100%); - transition: - --n-color-start .3s var(--n-bezier), - --n-color-end .3s var(--n-bezier); -`),k=Object.assign(Object.assign({},f.props),{size:[String,Number],fontSize:[String,Number],type:{type:String,default:"primary"},color:[Object,String],gradient:[Object,String]}),O=x({name:"GradientText",props:k,setup(t){C();const{mergedClsPrefixRef:n,inlineThemeDisabled:l}=v(t),i=o(()=>{const{type:e}=t;return e==="danger"?"error":e}),m=o(()=>{let e=t.size||t.fontSize;return e&&(e=R(e)),e||void 0}),u=o(()=>{const e=t.color||t.gradient;if(typeof e=="string")return e;if(e){const s=e.deg||0,a=e.from,c=e.to;return`linear-gradient(${s}deg, ${a} 0%, ${c} 100%)`}}),h=f("GradientText","-gradient-text",$,T,t,n),d=o(()=>{const{value:e}=i,{common:{cubicBezierEaseInOut:s},self:{rotate:a,[g("colorStart",e)]:c,[g("colorEnd",e)]:y,fontWeight:b}}=h.value;return{"--n-bezier":s,"--n-rotate":a,"--n-color-start":c,"--n-color-end":y,"--n-font-weight":b}}),r=l?z("gradient-text",o(()=>i.value[0]),d,t):void 0;return{mergedClsPrefix:n,compatibleType:i,styleFontSize:m,styleBgImage:u,cssVars:l?void 0:d,themeClass:r==null?void 0:r.themeClass,onRender:r==null?void 0:r.onRender}},render(){const{mergedClsPrefix:t,onRender:n}=this;return n==null||n(),S("span",{class:[`${t}-gradient-text`,`${t}-gradient-text--${this.compatibleType}-type`,this.themeClass],style:[{fontSize:this.styleFontSize,backgroundImage:this.styleBgImage},this.cssVars]},this.$slots)}});export{O as N}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_AMS-Regular-0cdd387c.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_AMS-Regular-0cdd387c.woff2 deleted file mode 100644 index 0acaaff03d4bb7606de02a827aeee338e5a86910..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28076 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_AMS-Regular-68534840.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_AMS-Regular-68534840.ttf deleted file mode 100644 index c6f9a5e7c03f9e64e9c7b4773a8e37ade8eaf406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63632 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 G2<`xUL{2yW diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-3398dd02.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-3398dd02.woff deleted file mode 100644 index 9bdd534fd2beb9b878f0219da9d63ffba56677e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7656 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 Mepdy)y#Y}F4=Hd9=l}o! diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-5d53e70a.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-5d53e70a.woff2 deleted file mode 100644 index 75344a1f98e37e2c631e178065854c3a81fb842f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6908 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 CFgb+) diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-ed0b7437.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Caligraphic-Regular-ed0b7437.ttf deleted file mode 100644 index f522294ff0f3f8c52dfdaef7ebfaa06ebfcfaabf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12344 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Fraktur-Regular-1e6f9579.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Fraktur-Regular-1e6f9579.ttf deleted file mode 100644 index b8461b275fae76efd0d21fd0f1aaa696a5b10f9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19572 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 Y{My=5Zj3WbM|mX<0#Lulu=APmKiR?A3IG5A diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Bold-c76c5d69.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Bold-c76c5d69.woff deleted file mode 100644 index f38136ac1cc2dcdc9d9b10b8521487468b1f768c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29912 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 bnfbLfgSm6Day;iB;wah|00962|Nj6Fv8wea diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-70ee1f64.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-70ee1f64.ttf deleted file mode 100644 index dc007977ee709a236d9e82719cf7d4e5577a81b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32968 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-99cd42a3.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-99cd42a3.woff2 deleted file mode 100644 index 5931794de4a2a485fa70099bf2659b145976d043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16780 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-a6f7ec0d.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-BoldItalic-a6f7ec0d.woff deleted file mode 100644 index 67807b0bd4f867853271f5917fb3adf377f93f53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19412 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Italic-97479ca6.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Italic-97479ca6.woff2 deleted file mode 100644 index b50920e138807f385d0b0359f4f0f09891f18406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16988 zcmV(>K-j-`Pew8T0RR91076^<4gdfE0E4su073x(0RR9100000000000000000000 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Italic-f1d6ef86.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Italic-f1d6ef86.woff deleted file mode 100644 index 6f43b594b6c1d863a0e3f93b001f8dd503316464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19676 zcmY&5rli38o|7Q%K{lE2p=KsIRD>Ew%tnv@^MN7j&jcg3;ez?+~^*R6m zBw~kr@yAzY@kays zUm%)U|26&3J^%n80{~#QY3@n=WNu<$3;^(F{%F|$10z$RHS-_xCob#Hn&1bd5YfP| z<~B}lKf0g&fb;+WU|8G~t}p99MnAe=i9g&=3?Rs;$~h7WhG1 z0~-?nKnnFolM4WVI_RZ%!rJ|D{Lx4^{%}7rfKr|ak>u?hOn!VN1%CWee^77I4;<{a z9_ay=iX$0cO&lMtN{tp;r)}xdQka~+F*(VI?=d{kFbUf*IXU^#b;xIGdZg`nZM%z^ zymFbMO5J2qb9^Lr-_{{rHXh0U^+H12kk~6i6DRS(?hX}?7$(BAB*(T<=6*iq+N5>z z`?CbyQ!M%~W1O$q?lr}x2w9$I9wsG}wXD#@GjAVQ%?h_%&4%`XONvv6&EK`873|s_ z8vIT9*~cd&I(gLS@txQ@LxoH#cd(Do$Qqx|^FW@P2x2QB!A|!-_Pp1}rguZ6&aS#&+g}7bU}U56Ndd&}8}(SS7)RCl zf?>Bo+PXtam3ryr$0~aKJuRuo#qcuPoC*iNAH}Y$o1PRp&nPujacFH<;uP7mE1!WQ z7t#~X&)i+jI-*_6dI}v|=RxPF)wK$tFAQzw>Y=%p9r^UF6g8lC>eJ`W224o#xZbTK z23L=^?TZy0I0bVd?pqY=IhL$f-65FZe?Ru&3HHkkdtExvecudTQ;2CfYrk&{Xt14W zCpgW59Ao(MxyK5t5n&+)2l!b%ncf!jNIg%5qk=!aZPHy%2nku>qObq*%a*kT#e;qbJ&y+o@Z8E6YC-+|`t>YF|21CZp1OGWVc!~U)U85dLS8X(s& zM-gHy`R`e4>jWNgn+Ts$axr25jIFQ0Z?4sD@|7@SY;|jcWpCUi!2y;0->?~bw{Ij3 zIPz#f&D2zLN`jHLOIYEQl@VcdXM1VJP~sc&=YN z=8ME1t%$c9O#MxW3#)(c=Lw<^EwOrbQ|FR9RS?A8y02ef0^>ZJB*p6^l=)H$;>y9C zg~CHl(I0${=-vtR=rz9*sb}3cU3Bks5UgelnmFnM4s)`UPId`5wnlI zYw>Cx?6vd}&@e^$enqzeW$pxgRAl=VC!+SV^G0)m2EC#wIf%R4cRd5FasbEteqpZi z(xhs988q7bnY!*f-G^(Yq>Mxb2y7ZL8eKSz`f$m0a5E$Z1oJA+IOp#d`oh*aIo%iH z^7Ds7hJdVI=b=(Hy@z~8&CZX*ChTZNu~fem6_M;+3HyB>l?BzWS(w-i?va!()Vxp-CSJsgLu_D&F(Yr8HXyH}pBew8sAx#NI6k!=RK@!ROg*mts$ek|wE zSv+HOBH08@FjvLj8UXe0OotJXUaAjqvTEhl(Ftatk=4*py@X~*~F?vuo$S|v`+F0n@>`al%`Vx)vF#kd|Vy%cBPqERw$1TZ^rax3Gb!pjVe;{a1><^ z(F$SfCSh9A`7Vn2&FpCPO$%8m!9%9ceX({!=m0wVTo5~l{)$HX@wca9C@ zJD}>miq`WHSeq#f7qQ@6T%xJm$_e+6I$%+F8!j`~b*NM8>=so$XO*?>JWd)_4G!R| zGDhCTd+Ga~<9LnwG*kdl-+xWvE%GzgbWYIG7H942wU%9R@l!2RGt+X$AGzFZJIDJY z47}<=+vr!>$tXx#IjN=i7RN`lps}2jI@$pY(zs7jxGo(A)2C0|Ud$q*dZU3(*4-HP zl=-nD2BE)g&21t>LmPxHEu&15N6@<(37ZqleB8IO>u?cY7YGn4$Jj#Ls6^}LP1m0V z=}c9N&7U;rOti~uH}^ue`xM~f*#&bbUBW+Mc`cc3fCGm6zQ0-*DO`-r)atB-+w9;K z$V6CD^(9x=Ca97d&wx(1@Vja36|~sK22x{-Ir++-s-{#&9xWSnm~JRBnz~brLRPv~ zlZ5*ezMbu%OSk^+ss#|QgkzNGkmO*fRQtbn6>Yn~={fVwP}sH z-o5hu?t@J=iR_ikr*6aDPhAdY0mj09OZ0H}6ki$Ny#GSI`rUC+QeTk&E9gz-{-ZkX zZj~MkCDkpx(MI>oh@wvKZ2xIn17G;*Nh|7H5EmN@R=cfCW%tofAZ+U7Xxo`8h~EOp zAa!zjx-zCXaeBQwc%*8mZRt|_QF1XejpAah1Vf`L-Gw=tLzf!5p!*D4w~1A)5-d7T z|1Ys9R{GSk(T0rXDj!=M)m1Aa`$}qC!N04Gw{2-@XvzW-Ba4ymCMCGn?89}CwQ-GR zJ3B86QkBLODVQ80t~O!!KWhj^2`k`t_^McOmBD}4o<&?)@JURx3#wf7{Kib{C0uuR zCc|@_<|Cfb!1TurV1jsyt+Pp;ItLy*2h!vk(=H{TqX2gzRn$k3W@;aZi&Ox>od*mYN{Ovr#-aU_}*RJo|pEXQ7bvaY^ z@>B)WaxJ4=T5iPSV7Rf>y`BEROfnP!BSfG#ZK6hR#n}BP;xtuu$N<*7j78B}&Zc(k zs*k-TAn{6NIBVI@9AZ!KbYS)_D71(t#dM@!?pGr>H8IB;dDY(J|cZg-|khX3$iH3*hsP{D*F+?aZg zmUZF^^}%8GWil4CDB1GaW|vM$U_BHb+x>x#!P&z&KH8wTJl~5S%|rvUqsqwc);mRK z(pC%FL_NeuWJ0K`GxrUZCIQ%de_~%hHyNJ_NnGAe&mmfIgs%OOU#qRZZ6BT7Vb|W` z@U`u-0;Sc!;Y&8kU3Spoz;*+I{Nnn;We$iD;)UH4iu zcSpOKy!35!d_f16B95Q<2tr&lBUc!)d3LZ)0wDXlP24ChbCiIZo@J)kOZj?+vn(DT z((U5C&EqIYwsgymrBM)BvzqeL#Xag25KN^a4^KunkAiVL#~aGJ-1W)?kX-4Ena_>R znl+J7fp=&f!c(fJ@A$Oe>E{ZJex2>b3-QN0&HsIU6~im#ub)@V}(?9QMlQ z&%}4yIO(hK4>?lmy%eKCiZGxu5eJx&LdIo~K&hs0Ug}WY!$QSQiEW8ibT zu+J8IBo{4bw%+(SbuCRQe@ZW5%}fB#Tz8~8Zy_kZG`B>hTyrouHu}Z(d*MJ!_r*}- zMxavea>s`hvAM(Tmfe&?SS96nYdw}FA1?mjyOXIi@274+qFkp|2VFDJ2OzixCpJ{~HPwY_u)`gMk>}kPab7!6v|q02;SH zJoCpBi3>$CfrN69klNs<(%))n4Hp_CqG%@b-NVs+59Sa~H9;@D^ohxla5Cv~lr&9a z32~)6j2qR6fBgknolvKG z^pARo3L4YUY2{0y2K5b3MBv^|`_lyA`AFjjT))V7z7GQ>(fPX0A4m1kG$^Mj>lC3_ zM35pGU>=&DH@XlY;-uV13h~&E%pJ*|h;v`B+^eUl+w;7q<17?#y8KlzGliV}fGF~n zhq9)XP0+og%H-Up+xi^lBD=;SbVDd@D-M-771!T`+iF+c^*!Dd?&Dqkn2$n!Nb9&K ziVyKQEo=nGaDPV;^3;0eksc=;6*Gv4gOg1T9Hh8K(Vy3T2dOVOnQ-K~SI~buL!qkqc-dNd!|8P! zA+;48{Z>ooqhmKwwJ`j|{0o0B@*S+B8sDhU--X}Hn&{n7sge5rIlT!rInY|{BJvR5 zq=Uf+LcY}easd`V4{1FhulSW3s6yQ!?Gn2H1k^?xZ-_Ub=&sK&sYY$ul)Nm=>MK5o z6&$q|9I9XhoHjhnd@l&7eV zvmz~>ipoM1cOHo0ysaUe|0Na&P?l;u7G`i_!+B{(2ta5jG2>+^b?4C^Qnn>@A114MCR zh-KI~oXcy>-@*?fiP;=6yAcT zmhLc$OOS9uYk$cOfFof_%OncB+Gc30G(sYjSlO|WSW6MOn?I_NXxNkH9-xu(!Zv7d zh3n_Hmo#8BXn9(#-p&dyVH*f3PvMA*xWQGZq`Dh@fKqM6ZKTWWaa`i;)MGLR{r+?m zqZGnih6mpJrv`cVozf}Mx64t4&_DG|AWcvyMId9YNMF7J(T^TawHMb_$x*Kb>BH09fd4c65m#dF#UH@J#*S?ELo3D(buf0fe|5(XG)N)w2~f zN)F}a=&1mN-=|*{2+AZiy*qKuQD*uLe)A^=8ZRcK+qsi%XFCU`P>k&UTb#kSd8Vq6%bxrp*h7onX zO`_Fzf-g)e@Tr9YQ*-(E{+XWUh|943n47rXAx5p0Xg!`p^b1wUO@xXbi7t2bv}SlA zlo&tQos!W$z%1m(gU*?U5)9pgfN1-aM1F4)SIZ6+;SduTOgWi)asNcOG+1IV`*W{^ zTiaGigR0x+Y*y=N78Fj+50gssbx{?7E27~IQWF2_6PQ>ulhvYvHl~_OsE+S~cF=P$ zehudu)&R0B64CSbQW0LVLr#VEPq-QG;6P?;n9He1B1f%Qzh8hsj>I47bl?ST<%ggQ zG2Lz%$i^L?4@~o$hB-8f3N^03V5%d~v@)G)pOrqNOm?Mj-b2IMemoWzyUjKeF0A9U zBobUEh4ixqD|3WykJpfedbbYxh`)jIgOEr30=?M>5iRWY&O8L|c)jTAZuv@QPd-OC zvN&gSu-rPZVbp7Sy0Y;TNfhPJL9ejk2B`g=6M!>HP?+Etxl_!i^%EBD8W6Std%%0yubHEDwC9v){tp7?9Tw9Wat4ZV|2PN_CwP)h4MtDm( zsSGUO`5paYXUWa$A zJ;4IqY`W`peBXkF#uHI+MBO^f%?@Sj(d}3R#^%7VotAV|8xE2 z!LL@g^8D+3O;79cV=Rtlvc2(r{QhIlZ-P6wsrGmb1A*rA3;3Hne7V8F8KMOYs*}qw zq{8?7k_-bOWjk+f)0!fv!@|F^aM_zVk^dg+(~0iTw5HOOA&WlAHmPp6!c)8c%zrrd zigUvytg2ur5h!bZ2a1?kz?YR0{PLnUc& zTGTWu-4I3+c5k5W^)VX_l{GqU|1X>KETsM1&*#A8`OUzjA?Mpa|vSs{tk!33-hXVq_NdC==2)TS(KU2H`;v^S@5RZ+=~1McaUjRv(2KqtOS(y)vrC0 z5$tI{8fx6Ok0H6|XgaDQU7Q)!f^6lhqp!4s!NWloGKy@s8HbzD%uvO!ReP@uHOu$M za>8E(9vaJm0z-pH=(l@vT`OH+7Tfo8q~+)DHrLH);}|j%_jKAxq_s!klN$V~joOA@ zRZ4ioC?<&|Gsg4>jQs4w7?GVI*eLz7+HL((B|7D4<5g=SfGUzIOA`n6^x3$};S5F$ zx2w`>sodxR#BM4p#t7MHOKA2kT5~G>Jg33wf1jJ^=4a0`yQ;g zW>)X>Z4T7$z2Q|^xGnYMZxMm3;r}2X=3tH;x24@Bhn3Az%1K=RC@Qj(R&dh05eH%Dse?~k zSlUPR$d^$%J1)7H<9$y2VvrV>8^qprG`$N4`AB~SH{1R~7uuEITH8b}{V$A$tL^i; z5tffb*7kjmDyLy1>>KTD-jA~q5S zNV`MfZEXS)YXPdr0Ijnj%Ow_u@ND^QxFhgb=>j-f(>8G*C{D4t=w71(A+!$dnhb{w zdgq0LTtt9MHsixRWU>9tppWVo2(6rTKC!S6@p%zjkI&`CLwMs6)qFY=e`7IvmPln> z_Z|WcYEBRIFGh3S!0gBTu1|O=cYYn|leXv;e!|Qcrqu_p6YGAD_HrSs=PPyrb}JFW z)FeK<5hc#K4`PIg11Dz3yv_o09c@3_SyOr?5mqaRWvRB(2v}1myKJ4SVnAK8 zjFd1LQ#wqHWEnL{;=cyv?+1CnF@byEr2)TzwISLgvijg@0yu#d4?eXGUUk+DfQMiR)Y5(axu%>1x2#bR^@h51aiOLuBy6S0pNz zhXRyF_W`N;@jv62!)yTyPM)9wK>;Hf9Of)w?DTJc|0)l4A@LSd#8cBfhR{>GMQ^&T$ zpJr`fG)Y=7`foCG4iWI<_tW33`;2z% z@OVBunI8k7nP#iAGs~5~XSBERd|0|aV~*MX$m@cn0&>msqxkXoqB81)7Pr2RtWb*$ zKoPQYL&F^!?<1AW7uBo6%k82i318q5VdYr{p{^8Dv$pfi+F}cM4?uGu0(TcssqML4 zFV*e$);W;n%%K7~Md_XSdaiqF>$+fiJ`%-2lthMJvlz-y9eV*1*cKXxr%*DRUY9%? zK{>KcDB}IcMCi@N?>j*Dw{IkOUBA@X2|P>hcOgi?A#k>;S9vG#GLMFnh(G*xFNw_4 z#ki-a6g8o-rV<18te1iRQMMgNwlpq=U1=Dw7OazYSaVF6^rT8bxKm%E-xuFB+!$=^ zyof2?Mo7p$`@;Axa{Y!cr$WPQZgY03V{O~7YilIoozl%J2j6hTpQ6#mU6P36Jau%n zXSr}7aK7ZZF?$&rlrWUk+O%v1C4-F72mUFELzLy%~nDNuNcF2dR#At#rfq0P!cJrfl0D37fK|4}=8G z_2&<~WO$;4{I!Pdw>3ljrxt|pV*I&Z&rT^nkGAm#H}6j@Prk|7u2xP%zC zUFC(ghQ-hJQ%{@m8Lyf0Z(n`+@yRD-yL)zD*DiT1UT8HGX&kqxN$DfbUz81IeV(>h zQ<>qJiI0tLKP6Q)k-+CR@j0w#ld@`?iP30ZkEKJBm{_>|eReSAR^IE|?F1)P8Ts@3 zytihrMr3B^IznUl^l^o7lM^QV%`~|6>mw#q>bn*w@!N^r7616%6wW6Kl%8#VlD#bH zx^Vz>wEg}SiAI@VXsF`qbxfa`$d>8 zR>vy1Z|bhbcut}&C;ci8e}nEY+}WoA6)bGl$dpkh(E)$!Iv8ICvf;3*5?y6U5+>d^9v>{cTPTaD+F)SJE(OhL*AXYZ6&)WQ8Dzpsz%To zOeI#Yo#=ehFn?Af=M?ClDIK+WDuRE@5EW-S(aWYzE01bk`WkW+Us!tD( zltI#%?3JC{pIUo@yc++hW^C}ZCO1(Sp|@tioL@v?=3KfV&t6a!-ocMWa>Lfkm__L* z{F5>P9n4LD;&PLE>N_5nhGe!sf={r`d;0WeB|wGoti)6K#DXFt9~CzPXv&Fq1uIR& z*Rl8VK^{}=AMOatb|^#9(zmQISV^rRivA=wn`Imp7S;jJVAIy3bAahtv1m64k#>!j zs@QP>afFLhgyrcdF=l<};EQv;mpVGTctZ8;;LpSm~z8uIKpp=h2`M4`+w? zfF+l@{D#t7=SL<`%`9yLbApu?fC*%mpA6(W0d`ZEaJr8^%%OiukJpNwouDP+aSjHr zG1&giyhZEFZaF$fsA|Qw?}*Z9N4CDKu1%*)i&8z@CDv7S+H+?{4g<#jc0_TP{4)_T z6Df!YdbpP^n(XqnS;L6DAog}KBNdO_#baM^FGKmhELX8ww)ir)Uw|@@T-kAnmJG6u zWXzaL0lKU>=N=FnzqrXB!XQ(=KOPx^TAew$GwK?)h!wWzFJj4Ed1zFK|0`fvo?zSj z3TN&utdesZTurMCzDBQ@cc7E%u!%f=)9cNrTi;O-Dz@$s&q3}`Seu!v!DZd0Oe@NV8RuK-%o>aq)P@y~UU4ID1lI<^FRL0b7SEp{ECp5|bkYJI&ump1U6xIn}#OgJVtgKV> zgoF;ZV0p6aY6OiB8Kdr5S*$Blp1kGWn79#3wbMYnp|)@VI&t~TLTE@!ocx|8NgyX^ zpMeA|nbnv~OAZ(aj*ZCmiGnvTxNZi;GY!?~zB(QsrZ!jp&Jqf$H%zS-RbcvD`=Cv({Apd|7TzMkmw_Nau|LD$a#dO+FiveWm~c6b;l0&aQNj5I`U z&8>0G*!;b{Rr06HYy&FS$+?*`O&lvqT@o(KGOdc%fWA7}uVtz=9AzVz4$?ehP^=;h@pN8NtXa6BVg)up z;_01)Byovlr2)X8X%7hh9{aqLf{DoM%#7zIG*yoh0-u5&NCPrx2Ff(NDftx4CvC&g zHhDtTSLw8r+Mrx?<2WR=tme^(Dh6)dY$(-tT=$PGH?wvW)*Z~7n`r0QEO5)(vOcHW zU67ir;LR2ug`B2u*|r^X>@jBWa-~W3-x6YaOl1j8|AgbWH&Y6{I_&DoR|kfar#fxU zIYgqA+GwnDyI|}skuo#f3&j(~K8i3LFsUikB~BwGhL6_|HWjGLUDf`bpItq;m>jfm zO@8Y~8sYXmOEiolZRnZe`>uO`N!_(<)3QI&AW;B=Jm-`3JrzrUuW7)QefEr$%oTj(83#hqTNurCq_yu^^<5XJ++5Zs`4veH;lkt>?rQ7mv5xr- zGhNlwjEk#{tY}g>idPo$jWyCd8@^)YZQM%hXnp@r3(8Ycn>3Apngf}-D5-b{xae)|Q<#}E$DRK1UJ496_s3U1v-Y&@T@9MdHmU8g{?)F zP-|J}x=Ih5N!5cb=0i z#P&n-f?X3zu@i71LBTw7`A7`d0lA{egTV6gf9NP>oJ*}1BPP^l!I3d;^Mk{rLgv(K zbH+i+Eu|Zj>rBA`-q#3}&9#?#o=J#)CE*j!?#!Ipk_>SgzpMnb+t96!_SR~eG?tpnC>Oy3n^MIeVnvc;AFt9KlGoDrK5ax+SawIXcFC3uxL78t zqL^r5@ol2ahZV@__8}~XQWw|^G+3>I-gf7VJ2`W;x|cHT4e>IGA%(n5ivO*JZS04X zsc3QfKaTbKs=3JVi+06FkQCv}U+({%#sVf(l9E1O5GHA+50`0#El{@4@D23MM*`Jk zI4<)?@uu(AMI5E+(p(A%qHvGryFvo_#4NMh!_6-=OcD#lka#K&)D1pLmkFa> zMz0WqegLv1QwiPz$$!}KsrlfMi8MJ*D8$jLX)ogzOG5Z&?V!~n3JmJYXjFW_`;V!u za*#4a4=EkujFMOwKAB~{`VLf9S&4q7c%SK+)E5YXI(=BDOM^0HSxekv~tC%1R0 zG*N4;@M7~#67gutPwW?_Mzk9~UzZVEz`e%ls1G)dbR~}Y-0@tL!X$|+Fpe7*>Z^XI zKW2C;4rqZ9X+0d&mPGNPjD&>gr`l#;ua<2vg3EC0vfbekqrQsjM#m~R=LI{y3KWGFZtyb}XOJaG_OUmMs>b!EN2W%=%0l%a6OXVdLScSybhRz)Dmd zaw|}!I-mu{A*Z5Qs`Ym7>;$~=1Ca)WN1l82L=;p7n&m%!TYMKV`p1jwU}nm6)pWQv zY3=wmtz%-AAt7%PXboIh07X_yT&KxaDac?=YuTs7yer| z=aySx5JnKvLL>LN5!u!3GnIH)ivpv$O1(XDUYReEB$lNJbgsMjjHeWoxewFfcsSBD7*qV0&Za(KOgN~%} z178|pQ>SB1d4>um2e$j3Nj8-nHc}3Mg_zw2H2pyhdPz0&(ypwuB- z+!Qan)&HEl+^)lgcRLu75r$2i^n95w@`GM7y}Hd&#^Bq!5JUU)$&z;r6wdby;o5dr zTVw{3N4Dsbqr&o5)NL?(38r+)2W5@x0$OfvQX~T|Qi}=#DAB zF%lapLKzh?RI6;H{N4$m95rqD+bA&LYeWn@3f=Ji-1+WhYpVk!0%l%|G1w_FENRVY zM1HU4J4O1OwH->yE(Uj7?hw7UarFsZ@OL`h_LoOFh~q6AFcLlIEyzqvr*P^myTSDR z^l(~;%VY)c>9uLqE!$bJ`!z|JZ=bDSR37pk^B(Hv0OV;mA#`}go$Rk)+EO?&9k zG%#W|PXSY_7`b-)Gi|@Q4LD<Az#IGc?-CF* zRxz;{D5tUl0)4KM;RgSyrw$qU2+8hy_p~*j?c+ThX zjViYM@gf$NvP0sOb%5>_8F+B6Mez1>_N}^^MQ;F>IB7gH@})TJ$uqgC;SLQQmrC>7BNW-mA52osQeLTr4KVDoSr}Y?!m9XccwWV#WwrW2LYmIRYMVhlvHsB zy`S|%?}y^qO@o1vB@=#yz}@r#0slz%&~&NaVi?>e^s~VyggQeLCgm7Av;NIXC+miT z0(Fbojl6);@&Rp!T$5#f+4qbG3~70C75RAHgrU@eQpW!3RAu=$lA2Rm$m+LAcXUSD zn{?823j9*PS^$+cG%Ni6+xZ&Aj~LE0zhpwySCfCW`}IQE6{G1&gVtXEHd1gOeNdW# zEHOhe!EO&GV374-siqou=WX(9f`R86>U_94%i?y3MYsEQx3p9rQ->TTy`mzL7@4@* zMG?TzfO4ZI|NQ9E#hYs}1$P0H0Zu%(Qjrwt98smF%Jb)4t$w;>GzBq+ zhQz}JKHE4XAV^~N9WTuj!9;`vl(Ijo%|m(a22}U!!1oci2?SpH<)8c{R)Q_@&hY7Q6O#fG}WiC7q)%m0aU(JZNUSj*wBBPQ;*b#Jmcdz{QG1e(Sza!UyfW^j)Ad#}0sLBNlTSNc* z4NyV_^4oHUG1`kKLI?ONOcA4&Li&o3j$3V;AWp+hquCN&0}$&2)H{Y~Y zRe=XP`%IvcfgfZg9=d1!{D(zSMcdt+7~inuKop*E6<)T^9N_2rTjP%%1yH><+Pg3I zZnKs-npj!-OEKtoFF0sHS=enY4%Iz|;xi#}-i zt>EA)BqBopB59yl!0l#Bg@Ah^@%>cC!w=NpcW%-v5uK*EDf>K+H1O1t^c`qz^8X(4 zJ1Bakxp$u(lAgwaHrPNWWIu~;Bo`w)lLSiDqC~L$9Rm=UjlOP;Ez4qx!Y&Tfn2AD| zZgx4js-@5koeUji;go_cf5(tA?23L0lmk#I!aL2E;MM;IQzV|6_fkpak|$MB(`| zMu%JcMUr=y7<}>kWdUP)x+sH7Qp)WB+qadW2IRm9M0(VXr-m>FTxMGB5WXiqUOxH^ z6;8fxT2DC%kx>7_48RYvZBIA8gIDR*zZx;05ng0Q{^Efidxle8H3=ALhy{BsO!4Qa z+D!gd7{H)aiTC{1R?<)(Ry*O5SMm^&EA*E-Lo*sf9nzmTYZFtAQrBV#1)#n%>YKpIJMIkhNSBiy8=wbx%cC;XhlwGiTzQC% zGWIm_!Vp}u2i0{VRtsXv+AG~^z~lyo3xbNEGM&D&D(#{9nOsh`mA`vdCRlv~B945A zp0m!YHxw(FXD6d!Mlrp32@@uVw4>p3x*gpi%9~iW<2u?FmndYwWft)P`7vln-T`!@ zP<7_jDB6ADq^%miplIuhoF*Y61e!z8fv|H$1zL4q;Mls}Q)!Z{=9IH>+Fr^sVmHMo ziHnRa+%32}p%h5#p)j}iv+VR*arGz)iNS9|Yq(E?ZEixLQ@)!!8kAy9pbFQ*0|cCT z((r=cZMi(vCeWNkkw;vbk%pXzIX>j~HpF+2?eutY^ypwA6TaYW#b7O~OrUs`+Y4Y( zTtDS!Zw^tYECEtEfiqf<4y2r-wXtI~`8D2;{LenxKn9B$K(K#jyvhh4$nWR&O2ZTh zR?=wi86WS6C0Alrcd4Ru%nUu#;5J33uOTlaTPJ>p)(-nquni|6Wkqt$7em$Q7`qEf z>moST?-y`9i|{FDv$A1x0FUw+O9U6`i&02OIW&066(Y#+f-sI zi&?5YZD&j!fV0A%v=FQ?C!6+m5cx%ml2xmVvm$+FX{n;uj5sJJum(4c`)kG-qw>j^ z&u6w;OtK}OLM36}&9ZBwfAM<7qx$Y35fdX@!?_rL;M)> zf15O*1V|d_3%C#X0fZbx8)O+23seTw1~dq?4D=C95Ns1%AAACW3!)qn0WuQu6N&=L z1}YmG3wjVn2xbnJ3$_rB4{i}&6#)am1z`~}9`PC}3>h2Q0{Iff5tRhB1PvE03mp`_ z7Q+b>fcYCU60-yI77G3mAY=$xm+0?eYza`nG?`pK0m zPF;u|0`DUL0p#TW()0iN?|4NRFvuX5P{?rq0%Yy-r6WAF*3xy}7{gv|1JSM#N+ zWVQHawZxLp%R?)Ia*LQo_&SbpDccfWM*gLt?0bm0qdosx_9LjZLUQ1L0xb;E^SMWF z2Wse5j{H5(NfE01lTB@&I_+bj&4G1z`{d&~Inp z91`yOwBqiO3=OB!3l52nySuw}yy5Q98}=`Q6g=H_0T2KN;0lKJp^X*{AO*>=g&oX@ zLjp38gF=*|0|S`A0#ccl&4ykdk}( zn^iD_GQc^&&_baA#lG(a0B?SX(d{=_+Wo7K&rF;S!jBN|`-@<%7*!i1J&SvZbZf%ijjl6M=S93uCN#;!zO_Qp-1Ds|1 zEP2wYJ`fvm1UR_mhok|v4f5&*uU>>^7zBYyY~iqOq1f?JykTdH_U0SB$E$m9q95a; z#U4M3;vfjxQGkXW1YHCHv9YP!eP7rMlPO3M1eo|;}1P^iKP=0c-tln(MJS{lX~AzCMPu- zk&6>{z>sovHyPuvar#1|CV`M_`3ciUc-=S#PCGthNeb(&&CE_A^hq@VA!$1E{tExmIa^9YglhOqbN2QA+l19#j@cYf1hL{j#;kqs}P$8QU zC6#^~|7)8Mh^`u8tlAFVP>I3vCh^VkmP+z0Z>yxh(o{*21TOg zB?ByNC42m1DI}&PG|>15-xdee31jWZ`0vcyOCC=gKAuU6M%D9YgB0b{ zjGilfo+)^qR{mUxu8(&FL%N+g!>Cq>;RQuy;SF*t)ajkN zCBwqSA#ESV4GFLm)0vB>-Jp@3hb8Iuya7XgrmSuIp9@d~^K)UUcsp=i2{@=BmT83C z46&roUe^$ap6tI;L5FRLMIE)tT+oq8>yV#xXJaA>;XPxLoE~3swT)5Mh^FP9i7==3P1)q6+{Kli zEd`S?jbhJlz>>5~()5&c=us=MRHxmmlfPZECSEk{-EK)9`PCDZ=w7=*{(*BAa<9c} zNujn-EZ99({zAJ&+mc;g$Id z70#1*$1Hk8H*Cf->aq1+@j&DMd#;PL*r6bR!ndBFOJK^3umarOwQ+0QwQ={wv~7?& zRUxzg<~wm8P!2_f5IPmZ3IQWgK>`?62pFU3QjF7p2^ug-1E!*42%$|itrAlzDvD2= zQHg1mPS6~kX`arsKxbNHogIoLg@9$&304#WR%yBwYcwED1J-H42I~v$s!f%cwpgEO zTP3C)IzhX1rad~-KAq`6k8yo+0uODJYgQgPTa?EfbQ`tm=p@QZ+?+yh&a9ERIoFvR zlBHfS@;Nfl=eUHPU+Hq<;2L^x13kFawlP`W9V5^0q2~|K^GBUC4xXR~&(MPxZJUzi zy)yFr4SN0#J^#=-_D%0x!-zXEJQ;2E~D6?m3)UI(7zGH(LUvukEP@B)`-_61)2%)c>Po~Z}k zq%ilEEA;3yC8j}*Is7S%nko^gi)My=Q;R?Iv@E1rLDtR#%QGI z5HX-m(|bZHXmXx||8XK;c5H>H=<}E_Iv-)x$OZ!=cktMV#2qv8Eb9pql4SS`61%{^i+)`^cu=#IhF_1C9}E3UGE3_}RaDi~HEgok7F%tz-3~kLvfCbe?RU^2haGX$F~^;7(kZ8%an?EK zUC?yVC6`@s)iu}MaMLZf-Eq%-4?ObN6Hh(!+zT(g^4c43z4P7&AAR!K7hiqz-48$g z^4tGN=+UyIPrr5p22C3>97!`)BNge$n73fjtmVi?F7i=`Vw9pBm8eE7>PC#3Flo$q zG_va}&C4_}a5MnZM#kn4+Sw9HJ3?tER`V diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-c2342cd8.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-c2342cd8.woff2 deleted file mode 100644 index eb24a7ba282b03d830fa6c63ee897d92a5188736..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26272 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�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 bkH82T%!~T~dOL3iZSfI!+IWoKhyte*`46Vs diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-c6368d87.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-c6368d87.woff deleted file mode 100644 index 21f5812968c42392a3eaea9b0c6320870b6b8b38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30772 zcmY&;Q;;r9tnD|p_t>^=+qP}nwr$(?9^1C|*tX7p>YkU|Rjay_TB|yF>U1UU@?v5D zAi#gig9QNpzx#sB|Fi%1{Qoa`WqKw6z~bmXukwE|5bcxVG`2N#001mG003Yt002aV zZ0}US*v*9i0C1}KkHhsJw190f+07ixZ2@XBpBBLOzc5i3*0K1{`Clx<|JelpfdmQz z0^Y*b#p6F-%zv@`#{+elC*ydxu{ZvYXM*vckNZFH^=qeE+ZuZOcdzl=|7i(;=HTb; z3~f#Si}}CYfb##-dgxdCCOFtTy8r+#A^+u71^_^asJbaN9Tqy4u;eOgen$MYFMjKr&ti>na+jqz-Ybx;jUT7rpi=M zufa(yA-TkdCn1q)EGvM2_hiax`gmi(0EflrdclzrY4)wlE?XoOGM65Zbzu31KryOv zDKlP~=VUIvYc(&_n4V2Nx|(ZkU{Ya`SLxl|_7eInvM;JKdC-~hF59%J{8gZ8s*xA(-Zy@VkPzVn;oDCiUoZ~y zd`=a4_!T~VIKf`-zr{LHRR`Z6oArG{z)^ZL&nGLA+uSoxbS8Ol`V7aokBT3Xo(hP( z+9AA$K0@4d8K?G(+Z{kE=#z$hPB}TJAG|HIE* zTQ)h#44y8HVIs_R_t=|UHjp!==565A(?KYTQlro?#(5^lyUz(WLb73Dy7B!}-xD1P zBH1c+Te}vNYtBs%bFya8%x)LtSejr>!emav;;Tc**d7miFAk0r&T!Ij7OY$jnucxy z%HMehZ4oCYujr8myR;h2H!=^$hH>=^?wg_l19r=c?+gwXnd~g$Cboc^n#T;Gt@e15 zn;uQUSO<7RPYBQesCs?#bF7jh#u$!u`;-2GfOQ>eAgjw|dNTNpOt#&dof28b+4b-D z1fmEtM39qlX9b~H_kRdEv@cz%FS=d&YVOA|qbvJy8))2-CdMgS5Wl}~c^%9v&l3l- zS+#zbDbs7Mcu{2*_CV!qJn2B{UA9m%FVT}&&KZ`nx4;WB%$(@KPfUVSfPtjFo-EwJfkt27^E z8Z)JXmXhG|m;gy3`tV#s08jr&+bll_DV@5LksaIScMWbwYM|7_m z*q7eiB(rN%wd`+50sA4=p8%zW24;l;l4=}Qre-<E_K3s81mK+|tN8@qM z@~FGC@FbM5wrjISp(V$f=I=6`o)0`4&8lfVAS#R~s{pImvBny$#a@WXCicNcM3rwr z`-uMJHht8Q6Am=sG#SWExcG^#6K@)Ywm`%UXh>yIZIxgkcN<5=Rp4C$Hy4XsKO|q6 z8Ah@dL1L9~vD(b4?ty|*nqYZL65V+vT2wCqWK=vUKmSi}pA38d*ZRRP<9Ny^nKR_g zJ!Mr2PCX~Dn0GYi;7d{_r@d3urdBG|ab=$i%To_h)LHWcu9_x}06{$Beo8A2s6@(^4B_=o#4

Yqh7OdB% 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�q{iqW@P3>Beq0%EJjvF((%W5V$Nl;YoRM#4D5D7f{7MJE)%@L?;5S z6PC1FaW5(Zu6INvK30(rr!FvkQ^|w*&iOB7veje0>LOFfevf}sMWRpDM;gYmoGD5_ z%^E1-6#ZvOyiEe?)pil^>@|_p=$y!Xm}@%G+Uk8SfBMN2^%xoFDk$T?1&`4$z}=&> z;czh}pHI19t~J43jM?lZs0OQ?KWUGtV-BFbPI$d^ZNyK!AKNb4e;n~n)gfbgg z1h-}Tvnfcp70lIxF)=A!UuofhSZ#=r%fmdvLin%;Y_|rz%bYpQEjwSObjelZ;cTn@ zZiGYi%x!Bks7}D0#7?<nHc_Vha&q&>eHcmu52C2zzw&2SV3WaWC3Ov$8G4i_zf0xss)GiJ0G{ z7-kNa8dBrOlkNOr;>L?~TJn@9ffw^2+e*Wg%KWG3bdjo=OZS&dMmhKR#z9;YqTp;Z zqyQyaZ0PvMiHE(JIqE=krRT;qq$_3TgXJADXSIt}Hu|w>u8jG8deQUnmiU1CHTp=n zkW(rSRbx;QW)M#kg=m3QyeL4RVgQ-OJ!qe~e-V7ciAvID=ih1|{{+f6HOND)Js&x}6uys-%T>c;Lhs0BlqQd0}^buKWM07kCbAWn4zi zg{Br9k24l$ejcPaOt7F)L_UIWehbKf@2!f26(T31#+q*iJlSwn1cA5=-0L>A@&uXd z2(D}y-rZzM?8eQ=8H6~v+is38UmE!=2n5rNmOwd@{OF zno%~`vzyo=G`8vFLb=CAAoCrkr^$!#Ytomf=G6Z5ZEPY4`nK-jP%R}>+L=5EnOEvB zem+Lx=5RYT=eWaT24l6Yj*j(E5;h4(e!WdJghi8h|I=?8-Y`XU=P#+kR};#HFt z>KqEhE}L<}?LHgz`x}kt=tvD05$@ge{eb~H7e2Pv&##*%U-an&HUCfqsy6d=x}r*% zt(>uz-EV}vmVXV?z z9IaHfW_lRpsGREtHg-@0U!0U3iHDfa!mbp&?6fEcY=aRB_l~||%g!!9sN39UIvUKH znJ$J_E&9hM69vyH62n7mJZJRfTXuE=gsj|&iy{HvZDO(v@ngmvg4z!WYG;JbYjKvu zXGmRZwmvXcQ}>#!KfiQ83;Y1p4q5slMCjVNvKgnCeu_j1%fES{W%U zo1_*{L$LpTQOmu@;_(nb=guuJABC3^#ZW39yI(R?)v|1p3{v1aTCxdR_0gD++8~qj zk5Sjskx`Ns*(3=Y7T^!gtGlycMJ<5$*j9Xc!}*o?hUvIvRbKkOfHpb^r=>QRzO)Mu zuF5J8R4Ea67D;^;zA>?UWg`3-2|iYR_bb+77bQQ53)7>7zUQ= zyC&N*s`LvDe3Q^~ctt#lLGkD3pQ23rk!sVlu*?M^QYFhWRd$KulOSh?0k!U)0!mFi zjD!szC&Uefe#8ue@oldJ;((li-?o()X`?A8o|ckw;%9UDlb$o^tvWDrc_{SEzvy|s zv6B%DJ4|1Chebg%n0Slc&Np8gp^SR3+RB-<5&}Atf@sAn^_kBgmMx5b78mcBx+x9@ z;m9L{IjqsIQQtTSGc;U?$YZk8v1p`Hw(H3&q*1aoeAfnc<%OdF$Z7uhjnROdp3rt z8vaC3=1NPxYoWEN3Ll#Y5DP&nNwDa>I8;%ZVvb1j^C7EN*5fv(>mTSHv>3CFJ~YU5 zH>#Iw7G56m8jm#|vqn}@Rv)wQLEwbE&gIs`D%lgvSFBDrM7MO3x$S_BU=nB5gr(NY zH>x>;>23pbqM`tKfoNSJY_X-9mhz|st3`s*Z+xE4u^9{&SWGt82qqDE5D|wePDFkH zlu(@*HaHVYU51?6dv0q7M5HJdRWigzTYGU_1PQJ=eeslIs2HD0+2fn1><6{ej)R-9;636Fri}NzWNqt3IPiP)R?mVC%JeuFCr)mCeJ1RrKdApI$SJF_Z}r2J@*@8IBm zV+J3|j;2K{?K6Lp7xa@zvu&Y-1a)HY+#TB;XS3RaD-dnmqX2t^&b)(J+E<{1;*n64`!dk)s<$;F*cnH2(TEV_6Oub&Q^~uf<2M> zg#V&U6IDt~Qw-2Rq?N>?j$!GfzaNJCtdy&J(Z(}GkL#o{2M;xVbN4BHi{WzeoRc@U zFDZbDQ98Gqa8B`EjRrvDAz0?`7=sh|r06*tm6hHanQd{*Jv(Wr-b`qhR$D4K7N0~j z!u`cq8x5_iwQ;A&c3hqu+qdnq@zw1~jx4odi67hfJB@h$Dy%51Es>&b1pJ-jX+ zPeu&?S=HQl`}5osg?GQi5tsyXOv zUgH*gb%q;!?znD(1mWb>AB||$(;tQ}5vtXMyzW)<8W`Dp;l^xDcU*vmXjRpU0J-h{p+RpawOVoUGWk(-!Hj#Bvj>I!g}KZAO{AYGmV;T&8z)wy$9H zI?>Utv2H%L zzE5SjtI^<$Wa={EDO!sT>iGA1G zEhrgQbqh37oHwJ9^&m|_Wr8X>3V;p*=euLRG(GnE!~E!_il#y#ky@2xjg_7UPq63} z>m^xeh!VXQT$Em&I`|Sp5N4a88=f7W*e*yD5+_Job-5r7OvxSXNB9VM8dsK_V#Q7m zR|$Z?jVj9cQo=O7%lG4Fj{8A58l< zA$MmuW&(tr$O{=2IT<9Kv2Yrb{iYX6Anv>~?1n$dBr7L8;w z!&|lvi@#g9XwdTRXT7=gO=q4KPpmz?i0mQ-Nec+;K0%0ljBv$2Uw6eueQE6Rsx5bUU*i8D2w1d9%DKe98F=6zQ!G0M~kN39(*nI(h$ zZS4spndqA3<$eIr`R*5#iX%(ARxU{xyQjoj+0&k9)4?TwxA&gIv5K>9tzJd+F7Gz= zJ+ny{YiumD0ssx?<)QQqYt~(j;Y;PcT@HeEsYd+ykf=vhn^5vNpXS$^<;Mf_y=D78 zeYCkLrK}^AS^yuuO|!La&-Cssl}?YZ+TK?!<`!?Wr<-n@3Wz+egn00wEY^QG8xcNB=v-N!P+eenIzoJmt+udUw zf^~%i>o?qxPp7jh44Jo)Vxw&H>8M(^^W8;`#WPw36lj!NNVkJaY`?yrY?t zx+lYdf|;+}ymtHT#dfO3O|*--%{zAxI1@Tow z#Zp!5FQz~F`IfS~)x0bbEVa#9)28&NX`(5cn-fmp7TZ*1cRhdg<~vIn9l*52CG_sv zrOM{GJJc+_Z)AG3GRVL51=s!RSF9DA{G#Xcr~VGVByGTyA8ie`L6qeLpVoDmjMI)^o6|6;u59vwz%=;rsc?ZDG^12NPDC32phYj+~S1pLGpL!zOv9W5SC4tPl<_T7QloWeoWv z$(3O(EV%L$VOuYi+PX=;QY;?fEli4?31^g=3{WaYP8XLu;al!@+EU(Kw>V)N2y)za z@!FZCYcJksqxqFpi`TBccwfj4JGb2BrP`c(pWFNue2;mTM-U^ITaH0=iX7JFQ>pw~ zQ;#%0pG@Z0x~Ab+@+Z;D&iq7W^Gp4LZ&7=Is-Ao{0fYrPg6G%^baOLF@T}W{!s}ae z1ZBxVZ#K1v)*h6sN{a_G6yCg|N(|548J6F&ux96cLW-)(^^dE0$p_~9B8r*XP521j zs%2$d9fC;!qdb|SetvjYXH{*;ueB(L*D+$+{=TW#-34w8NSPkRyYE5Wk+T#&C$zp#L<nfTDxu3JZA2J2c=f(!h+ z22z9>Eswrt-TME^qsnvhl#u^+saf=Rpan}x-jt&xh`%rubWtCCBp%kouRZm>Dzz+H zU9ssmyQ&77PShCM@Uep|Re4^4N7Cs#rba08BuC)sV?)y+ha|QvI#5j`k4#;y@FqKg zlBJ>R+a~k)eB}#nqLW&XIinN!R>QGr_0@;|J*kJ|evz5d^NL24G7F9BuHSB0X(hq4 zEt?~WkG(IQ_KP(`ORgz}l0=V94;@Q$fWT|@NYiW8x+;&PqnRqE%Kk&IRV-f}O}`=J zzWLn|;M=Zo0j!PnVn@95rEhjauX~6ed0nj4ZAAd$S8p}iGsem7&7Z6k^)Hhg&)`ogHt4KmamiEGftu8A9V0hWf zX2Q`}cqX6msW~6wgfLRYWbHm_sANImnn|sm=;YI%I z_sd1e=Kj_qGDr!(o117_3ZPAkA`Xhyhzf1NxblFg64Y_=2)7*zI7ey`dDs{Zc@TyU z$eL7?^m%cDxrJ}3Rpz}Y#mK~{e38D%p~{^CUz0v$yK$O2@)d4q?z@;5Ecv`{f~M)h zf_T5M3D;;zEia^FL|ZI5`t0SZl@`|{e$s2A%Lm&=iV!LKI8GQZM%1+CwZ~p^-;qP; zyx`*D(QRwjUTOn`phxfN-*~x!>+Ah zukHwScHOm?FXkt2hcHHScWg6^D;{vM@telyA*>F;Fhsb}eLy2E)R(p4b5kzA0}yI4 zF&+?oE_(4&L0dSNO&z$+#&vU#+OIguGwuB7E6zsbt&$);cJC2m*f6eqzy%O=wQ{wj z^$X3n^qjPH1&%;5OjY!%S_M$X&Bv-Th%3^N^-+m+W;}UT*8XC{RoT?8kxv}Dlvs_g z94b}T_K#lzE7tap9Xce=8h?MyR{E0J*%z%j8|^zL^~lI4E%R(}tIk1f{0-OcU7tI6!&lIp``vp^UAs*jLVMo=3Wv4X3sBe`Zd$y^WURR#iu(Oo z$yGvee8p^A_PW*CnRanx#wJ$&QzZiqE%x-4MicyOgufK^#Evb;moA#!=jrOOvvd9A zy2dYZ{S;_#QLKONY0WJ3N3_tqR#3^eO1E7i^?>Er96k~XHC9M{fUgOI*Z4fo@YZL; zK~$vZKdfG}CLD$*f+(K<5I2EgQx!r->8Lxr&XEFhgFE^Z{)*xQa)^? zjkz~S3Jz;6&x$H^25CS6;rLf#)+WmCRfP8y(uUCDcvzPF2F>>ZlRn|wEw*}rg9&MA ztehAfs|9n?rf+zDE(!q9oQ=*qj2jQCc__RQf@x^uK@Bxa6LAXonHJO9{26;PSf@-0 zg-`*hs*ul#e>OS&77~KrqTJN~kx+{N_~b`Ea`4b0_z|Vzs$q!x@+vb7{U3k&k&hfY zcu>}2v-VN#b1*4mEcJ7s>pt2#8J5owEd;-XpKF7@MKo5EsSPsNE*4cdeIp0drn!&nU@oP)Y0$j~EMDwdy}GN&E!f{ZvJb%o$lxcDa_7@faP&ONstkOX zaV%C>udWu6Gx~u|C@yc;gU9>YO~Z~sCEJn?k{0fFf{0|Yd_{-%8XGw&2P9ivej`Oxt& z0K!G1@Zjh0v(Ozvxa4F6u6Z6H+VCwK5uSG-7QNvRVCXm5qtj;NI{2)@Jf8lZ_BnD_ zfO*tX3;0dWdDhw%>9ZW=TH9x#>jEBJ*mgv=H(dpj^EA}|*U*+9y&&8&px_SeFuj%3 z=P8ISC>QJd|4jq!EU-ci86-Oc1faJ!ZXTHasnBH5C*Tr6<5(QvK4wRgN@_|(Z0vzBX^ z&Yg|lHU8yJ=Vq6g?(+KOOrM=TRH_@2MLKFYqTx-r(S(fQo z)87E=>(h=M1v;5JdVg(p+2{jDQekXo{sPCu&j>V@o5`X+}(jA z_!F&Hlp|j4C)e{9?|ofvq$1ChuOy{zvtI*L1~-{D5+M5`YNn#^oaJ$1?1>?~;6xUk zYfr9SzOjO~g8(x(cn?;mb6}mkP2Y5~lMvITQz!i~PL=;tnYmt9QTr?=Su&nb0VrOc zUlLhRFol%~fp$>m@>3fXpPKreAO`@#2MrS6Gms__oN@|C(cC;xnFAL$cc=R@Nynu4 z;-%Cz$-v&>QFf$y0~)ucd;J?Pnk5E7K&!H0&B~J+N~*{depyIXa$(F`9fOjV zAXDC4N0<;eff(iVFCH6jJPeIT;x0FB%H%TbjOy5UZ{vL~;NiJ9f`(GZ!Z(GEO=~5= z_ogECTeqoUyXN(2W?pN4NzMU2H?K?KB~8r;bqOU)xb*P*zzauO(dR=XK2vX%&A4s-uSbyVN zvW_0Qe8Z*Bw=0|1T=DwGv3LC{26pbTTgyF@BbU9tlEdg7hi;22d47Sge*R8MPFK9S zX-FdO(;R3ubtQ-lH4#b+7K*{YTDEd*HAgY1+H^U!_0(uv*K#WyEk-LucXw~tKFSQs zwnw+`sSI%V(y?25N(QCIhK*6(j~?soy1qA(i4Y8>BE4ICSHEzguiK;{ z+a%_)LDptcieH);A$s>B2H8dTvlw1~DzmzCaxg|oW^l4|b>`Id7-O5S5|78;zH!y; zHPv*flj`|gy1HrN;Qo*FbWf&jZ)BqdplW`xsQFVuyAEj@Nd1~4&6L_8TodR&2+~I9 zvqs?tm+72S18#i3=RJH2&Cr|P;kc&RQM%(&7dl>ZlHfJ3jYflS6w*#D79!tyiyL*{ z^E=c06)R5!CDxn2BWEw5>f=6Sw*9S&X#Ew?#*wHA-Z+lvO(M{ zjpfokBgw?3+VBd!MIM({2P-{0!;#fTLtMNAz;=>Fr?xC(&Rk?dr2D8nY_A{ElPLi4 z5-)yecC5dDQGXAAmXHSCDA*`Q;gr@XB~c;_gSC`{9fgQU?TF29LLiqp*=QSP_oCV= z8zA}RuFWGv@0buo>I}r;s;xUXqL$y|=w>!~Q8z z>ax>CSc%^ey1gK6M;~(Mmz|2J^!pN%m}?=~f{OKoA=+U>tf38N*wc0VO7_D5aPdgz zAx8R;P-ZrM*xSSAx?KL`j;q(eyWUxid8&3r*o1$j9n=m>v}GzGE2ZM6D*2r81P_j7 zL9FTnQR)lNnr54*y>!i`)ZA1?O@kMz6D}>7$b_gCCm0S$c686+*|4xq#^{mvR3^?|LUs!Dib{H9jmD585@Snc&Z_WX@=P9+HM* zQCaIz1-AQ>efw$DWaQCD3E_l56!-tfuYSp+7Kd+H@GY)Wi1J@5?aLsEzfyiQA@6>w zP8^j68>|1~%xjnxq4V!(l&nUHTmBo~AJ{`OX0gEhSZDz84)hZp;7HTvXfc75G4k7a z6XV8b8$J)*-u=pLx->(43rPD7{#3^6Vhhb0xhtUG1(ZcLZ<0OB7FyJ_asYuAg;{1$ zH1l-UT4TnzOn7HS*XW2giVoQJ8$7;ul$qS>k-=QxH zh5qAX=f{wNXIv1gts*B+v&er55xvvXm!A(9_8%X;Fd|yjncJe=HL}hZF7?7J`SQjjebsq;%j5q&Tx?d;@ayF`}lPup6D|H%)Ue#kzwQgjSq+~OpB|C!PRir zC2f1+E>*upD9h_{gE`?{%XftxhOc6dZp(Ct9}$}oFG>Mu)FaGhkb)$W*CGtT@Z|59 z+-?#IkYl#)FvHXV^w!8~w~Tyr1wwVfpgRrRyCV2*8#2uOn@uau6Mvuk(*RzuHD!hU zc=uUj@kUt0;(yi}PgS(_YNKaj@>EI0d4uv=KwS`=Z~W-gp%5DOIm7dFe;$wr*Qz)@ z+pzd}*h-xvP~Y(8F%mC3-GeVsGkuA=ODWt+Agdbg!zec!!<6zEb>VUR6cdM*{>&*P z5rb#Q#oGTL(c@^i009610UiLV00jU5000020000O0F3|u03Hqu00000c-maS0}vDd z006MJZQHhOE8Dhh+qP}nwr$(CPHg}Hfb?%1Fb>E9E(euBufSYz65JVl6#{`6Abv;{ zNH@qaC>UBEdJKkzHHV#o^Wc*ZV1yOX9x(@T5(z}sMuAZ^P?yjy^eFUqOjXQPYyjIE zdlOe5w-V3BH^XluFbT_vA>u|7h186+j;tfEq@XBeDGezDDN`x?Dd(sO>O$%}T81`} z_J}@`{*4i2jAUY%3FbpqIo5dA4|XN?CXS3#owJ_vjoY02l9%C4=6&bW_$~Q!_;UmS z!BN3yAzfGy_7(0BJ`uGMZ5KPm>m`*X6Qx+GS9)7kOEy)uU-m%uLC%y1K^$a>S}whgjfv`g)IdnfxW`#uNB(a>?gNp&`NzIJtX zt#%9DN%t}L2am_o-!sv3#Piq-_qOm(^RD+k@@0KneUE(K{Z4;N{~Z6V06)+!usiT2 zm=10U#X|E!x5LD6+3@i2qsZAPF`Ic7ZIh#u ztCA;@PgDFUx!l~mFyA8o zs30j+EIce?i@IWi;;Q0{lDage^mFfmor8~uh=%lp+zQnS^#%Yp@V|Bd0096100961 z-ca-bUk^O>01pG`00000000000000000000{wehmO?6&vIx6M3RIvVkWhd? zfFJ=20t6ITkdRd0Ki=aReExI)`_8%doVlal>Pu2`ULsb~(uL%wy6KW~G+NVf^@jeY zu0X^e;N|wnn<#T~I0yywp$Azlj&KBqwG1^1$gRm&MaN-V^Wl@SutoewbK$Mp;i=l` zl)TqYu4z{YtjFWl-`<4CN2G{!n z*WohXT@2gFq|b!=o*z9Nb)E1*^PJoByr_K)FQR#=3!YEY>AT>b~iB1^fnAz<$L5qT#!<-g9l=yZqfY$cuI8$M4ts);f!jmlUSDYk6)l zs;*bY1LBj$`J;Glh8SQ~zT0^D8>H!mW*vL}JAyX(E#5<`(rSLmE9DT=dpb_uEPBG~ zdye#y`Tq|~rQQJNzk|5*9IR<&Y*~(T;(Y9stdVz>xhEBR@*gSA)K>ric-muNWME)! z|M!6*irx92=Kp={+&~c&z$gO%ojwLKc-muNVqC*Gfq|8QfvJmW4+8^34}@lXz+lM8 z#DD}E7#Q9QFuZvS;|HXzPP)V+&oHBgBH10w(r z$`E=0c-m~wQ-EDD5C-7cWNX`PGUuYUZJRH(ZQHhO+qP}DXR=0Zp4&7v2mk;40RS`4 z%_lbL_qF|bant8vFhqsQ&JL7RKUO3d>-5tb*0C3AVs?*bj%{D4d9Ma0RZ$lXx1R;&UsO zWm#L?+uVEH2i(WpPd&{%oxG9Wr```#OFi(bP1W zlk5z;&F=GQziC$R)q;r_B9TZgQVa1P&19olBlpY0MswL{n9)QtnuM4H(|p%>|IswZ zw%8Yk;z*;Jf=i9&xY0Z@n&=iQiB zCeb(=Lw%?hb)y#4h#F8mszX(%5@n}s6q91uFKyfYyujN5x4mzB+;+Y#acjk``8U;X zD&Lg5DSPeqwH$@Nz;ri^006Pe3~B%Xc-pL1*LvGb4jrnwSCtf|fSJhaHHV7R-3!OG zHr@66$gQL$=YIDp&%k{dQ0aI3XbX^%d-Ag>Y!;%&{YGYyRQzw_p(J^Qp-mzHQ8Lb-b9iXLjJ7uFx zHi=@(KMXoGgFPKAD9qbf)jsFLn$}$h6WW0P+rq-sUpv#ri1u0@mOS6Wd_CCtn@`SW z>;rCXk!p>+agJAWK>$hSO%+X(s=EW6W&137(y2ZW8*v0UxaEhW0k#eD>IJV}gk~57 zfk|xPux_E)@lm{CXN&gc8@$J>dvBs2u(g?x(GEC7_UQgt>!{Xtbyh?3;0L zKmk`fO0Wvz0Qdx43j=luH_~bcRcBySXwRLojs|B)ogSp&>=eV6q$lVhc(IJ2-6dO? z+zukZk!0(?@vS zI0jBTK4VD=>#fbqP9gM3H31=MQvFTRo^IA9Elh+cOX5qTSm_vsk#?)9L?UwDo{y8# z1rJB1izAXo&V}&%&6|dp5M|-IE;CRen-L|IejER5n-7St8ey#34&G3S!SW{Y&GME? z@+@zwq`=ZtNs;9pm6TZCRY@Pqdn)N?d0!<1ENvxw{9`F3rX@7c_y^w>2h|B_+;dou(rX{))VB(cFWJFD=KjgRO)K2`utxTKphnv?us zztY2G^iO&%PDV=}PaHm;Ns30*^Jjw;<KY7k)4Mn>Gr$< zLw=^LZTp`KPz3XHVXAmLa9s&Fs3DeVgxn0Vq|aX05Qv`azfwVmZHYx4waHx2kxA>2 zpLAzqA_?R@B{!+Zk}_-(P7-OB5H3n0Ig2DqND_z==xRLc00)^8QglX%B0dPFyD#xm-$^7EZ&+nn<576^Roih%epa;*;gBNX^lI6WJ^85{Y{ti9=&^hDa6MFCkJ@}3amG)(u zE2%2{`}4O$f130$m};%bm8ElktA{hcFYDSLV@v@@c-ms{-obDJP@^;)I1q->H`W@L z#c7!|5&Z?kIL{Q24q~I0F?$O}AD^0igQAWDoeD&VP=^MDs`U>V#TYs7;yp{tDgNPK z=>$vFNC1m#NVzhl8limcm<3<}VtiBUMqe+l`!Uyu@gH+vL@Iy`-i^Ol3dJ!fw!Bu` zxe=H1DL%6FUD2n`3!Oa}G>FA%JP5e}p~5SWc-mvY4J06tX$1oVlPC}${Qn9>Gb90_ z8iN|sYM|IQ#`O#g|Lwr?+y1`-@(=v~`rjDD2LOd$548XQc-mrMVBlmZVqj)qWZ?v| z7XdMZ&B!1E415gRAZ#G%!f*u2W?@iavWz zd*E~MwQh6(&cZn*Pphc{c}<%tQ)@WZs3$#P(C3}yc~4>BrN*~7mt-~Z^_~}S?m?b8 zP=hN4r%5a;<8FViT4qi2jH%~`ZufuRZ|lsf?Q0Oi4sn;Do0KK2Or!JK856;SSsv%KI-A@cn~-VerMtUd$zrs>PG_-xT9b?U^G{Ph8Q7 zaYM6cu^p}oc!;Zx8e1c8fCqWddh~cmNA&OirsozCp|EKHc-m~i)1eRm06@`upKaT= zt)8vyQL=5@cHa$=IYCVjzdMHj{`s|q2L8hwKmrIPh+skpC5&()h$M<=Vu&Syl*dsZeQHX6V-wzHqB zY~cty`OHCnaEM)8NTo9&#m!%n;GwukTb+GoE5E^&}+4sqCFM;vv`aVMPQtW!=q<19CvbKV7xa?Hiw z1i^!m0{{R3u*;DDwQbwBJ8%>V7PoLyYq+&w(KynTFsJ<-*c+d32m;B(rB;aMEBE{$cz zTgBd!XpIaN47`04>z@hu+aO$C*j{*E=1uxR;w%`onIcgz?{^ggmc=<&OHz8wJeb4h@07DqT7&4g6JJDN1E-jPEgI6!# z-Y9-+ta61zu(>BeN*l$sUVcM!#wCsC6<2DwmvmzmQ)I{Wq!OpIam{wP?_G2p3?|sI z?cM4uh6zj|b7nDQFmvVwES-f153ty}-H-Bmy7g0H$K6vno$-0p^_b7e^`vf{GFn}{ zBc-|A(1Xy1dLy`8Qa74MO=fvgycL(?f+Tepm)bUGbLM7Rz&`{qg7KDXLrUn|j+--z zDP-GG4dbAU7Xxp|=n zgH<#1CuONOsFcpg+t6Pt?zp7B!LD%zb7zvld^#v8ZI7DF{wcXW$ZQqeNP0jI33_gR zS~=MP`Y?dux)G|8G)k*ciubP6S!u*5A5l&rb7npaV7MDejnucIv63rPF{=m{?O?7i z0(lJ4uPRtO>%(N=rI5i4=1$*-fiw4@n;+!?WUzD=s8{t&kG!QRi{k_IUp3Mmk(984 v^<+||kiiO~Uq>*82}~h_87wBVpmt`^U8(YX?;rBk=34*&00962|Nj6FrM%4V diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-d0332f52.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Main-Regular-d0332f52.ttf deleted file mode 100644 index dd45e1ed2e18b32c516d9b481ebed3cb8bffa711..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53580 zcmd442bd&Rc`n@NRIci-?&_|t>YUT0p3ptrljF|J##wFDMrl{lYJ<`$AR#0nAqkX0 zB*_AcWPEL|Ot6Fyw%{5tV8CQ!urb%h27>@|eYu1m8*T6Zo>M&=KoUHD{`)-t&g@Kg zRdv<(edo*JjF0$yKGS!HPw*Yux?^x;=`S{p`+QG+5JwMPdez~Rm4EvFoX_`^?ehsc zFTL@G9K9;u_W3?l!})!epFDciCG}Ic`g|WchMV}09=`r0j)#1{udKsw_2`v1U;ang zqqx`bO~kGc*cp6`!wRHLPmGDvmsI z*~kcup8C-U`BPl8>Lb3tqM!E#eQBTiv=h=P9qEfSTa6JXYEwln7OE8*aqz}_J=$!o z7UQvUjZiC0No_WsO9mo67A?{@M+#7xRgd8%o*f;Adap z7`erk{R?~jMllgDR&oQ=t)6u71r7nWvC}hx2H1A^4g$7)yG9gFg?0n5F_>%`Rl2Vk zS@6aqNKsMjF33eiW)uPv;nDW_Z*UBE0+PjwgdglPjrN%N)7~CY^oQv-@=?5!bvbYW zc`~TW7hP;eZ@5m@gX{wD@HrQlp^w#qxue_+?)KiMBp9)GK>h2_pSM9N-iiqZLd zfhqyNBy8S71ljPe(3JowQ+`SJr4k5AxI&T%er^Wa``V{JLq0-j#9Xz|4Rs5=j&G^x88+PKDM3+Xqqt5z`Sj zn{mbT9x>RH=o#8Lp45f9d{HGU5Gmc8nWti;Sa0+SGNqH6K>DW}&pJ7wIwBGhC6p3- zXK&xk0oPFLbrP8D8@Hs0lXaaeq3aCtpMnui9U5IZ5!DCl;feZOSc

viU|OFj=e4 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�*w1Fzl5p7;6!0{G0e{P%Sf-;|IWrh44jHEj~>tj!yow1FijR(#jn}+Szkbt_> zQbV;XGcDJkaJK&ZB~`&b^-~zuFJk0%ba~n8dtF!Mom)+b*+oZ;l2Ff&p*bexz#$vA zot2p7+FThMH}g;kPd%Tm)K14PK4*>N3zD zna94=PA1>l^$h4jQQkiqg4j)_&}nCgi242cYf!F%a;2}!`zM)Ogygpz7%k^k4F&D7 zKyr&gYx}OHzwn&dJZ6|Y$1<;Yw_CN=`Uo+!P4{^hL5c9JAsj9P7${t3J)ahZuUqlk z(g%~4k*{V>N)YX2R_0G03<;5NnU$Hz($R#?WV)@n_+{8O&gMkx7=pHus&!%czY))} zfBgEDi;ElU(a4N6y=0k{xyiDT#z#8ChvnrpBE!5Zq6}+|lF&Tfnu#TCf z@8SR}dk1m@Z2W7qZ-ZozI+%(I9`*g%3z&AxxzaO&%uzGK+r*jK%tN&?g+lS`-YNgy zuCqs(p|c@4cjngE^yftTI`2xQ;N}Y$m&_M`k;KA!J&xB&%Fn5oE-*>6c%8uODw*`opxnMLB-x@I_C8hJRhw)8@8I@e;NDoGA;T z-`MtSb**jX=BkUo{|4Ah-YkRj@D16#%^m7KA~PBFc<-E8;w0~BscyxZn=X^LX1vMW zA!&8gvWnkG+>^X_;GrM3Q_+oef=e+z#?)_ln_~E)L_e(rUq^4bJ0LsQEiSPJq#Co@ zOk`Z6l*i*vv|AjFBr9;l6*jEO0V3HHpYR@|yb_NsK+-mWG;)~-19>C~cI%t$aflJJ zyAbw7kpqw(LQ?OfblA!I*v=5~ZCC?Ur(s!jhI}e}Wc$*cyaOPyq|8$$=FQj%xLx{G z9ht8C)g-3F=7}duxR{8T+zuZb;HSOR_CbVTV#Unyvd~&6u8kij!9Vz*_$=DsnN6@- zoa07BN1U0Nz*Pa@q{SH7kDvG68ess^sfm^<`=1<&*kkuuMBYh)vH8K^K93d2KDCzLg`IM7Ps4na>0$)3>@BP)E{Gmr$nxE3IH5CG;13#q3=82llV`ov0{`vfucMBA9pJ72{=8c`#GJ6)}16 z#a*uXfg7W`1}*i+Ki{o$rWyp2*|+$HuIoRrI_|2E&t5*Zh%6e zOrVpSjdg2EVvR`nsaP)-S6|W_#8hu9MKIz3x$WnAql(Uwn;gaWWfr~tHgG_X(jdsT z)^)3!@~#K{ab9AnI)0jVtjQy(z*&Q+-+mOMgwBp(bgLN#Oa?*vARJp}jtLK%HQlQ$ ze|AtzZ|>Z!zkU||Y+7FaaLAp4B&z%?ydS{xh=T*t2ywEub&_oN)ab-k&x#dHNyNBT zO(oRON+5SRgZ8sRPCg2*Q-_p8)fWa(jsY(*NlX#G#Ratm?UmphwdF?$t|^~R`~p*% zXZQ~mK!g>WUZs9~BFNBJuf&~z$S+>^wiER_pBnrTpi+_Y%p>s`ZxMemFotC$=QWGP zXq@R^C@I`RiQ}(x7U#R$WIGrK|0mL12SHtwac&zSk1_{Z30wrv^y5}g3F!zT=tCOa zmZcO78&s$8#}B-|5RCqhLlqqVTUlUprC6jjv5F~EpWz3}4l|3}P(RGj2IFodW)xrF z*IR=AR5Z_^N#4Ib0+EeFPKMrKaZ&OeLKo9WQ9z>&_Z+XIjS92c&y7Mj?M>nP^oZy+SMh65D<^dQeidT@&?`xV0i$xQ6uPyp`^?RR38 zugB!o{yrWRV73%?Edqb_)#Mpy%|uD;>01ZZ^`StvodHr--n&rI>8dVdfiNTG3-%`CqDonvHfRvKpAjZ)0e6(DYNHX#qgaCHKi?Q@AbOD-qv6l%%||s`jxX9Njj& zDH#${EDQ-i(>=9m;4-?AfFSoVE77P*Z$Txs07&wT9*lS&n8{_`GBiemeWO+{pcksa z+tynv9drE{W5Z2>42j6mRNFF_cU}FiKjXvxCw?{nnU8|Z`%7}yiuCdd-5yyqh?~S6 zaV|HxbUH0iir&}bgh8-E@Aq-*IfBKfK7T=+?pkoZeZA%lgBbaM&v{0^O$c|&a8F9b z^)Dhmy8YYb3GeE)r>AiLQ$Y#t!xMZQ>gz9gd{LmVn+?kjgibeQ^Yf5i!Mp%x{jJaO z5DhF^jqeA!czXY$njj8N6_n&vi@PAsQ7>rW#m`Zy9vNY9i{A3&UzJQjOt6zEwNv_| zU}K8#wic!jVbCD$AR%o`tD3HW+@=^YGqU|;7z;tbJ&QuE$V#5!ER5wuH>Gx%{K@8;5aGCXW)ON%~iTv{~in`)uRpV+`x#~NTgh-z$nkrDpmHBRrsx&Wu>B-a!- zbbOUgPVTfUakfofy?zCQ4nmxXDL@mdc~6oflz7I5eNG{{erH=Bn%D;WelO3v+ghGUS#SZfhiBSOFana#w$1tCq2>qHj=q>pQ@-ANX`ze7f{7@B4Y_WcriLCI8lxyMEt`2M2!X`vC$^7$Lj-9@v$R^^ ziRbQa{MFd;q+v;yLd`Hcl$06Fpy#<9Hd4aT_CEFAz~|^3iPtrV?j3{qi5#1mi$qMC1P%sI4bonfEqtV^b!HGa!!WgsFB_H1 zsN2%aFj$d4nE8xbc)PS05-e!DCTQI9bgtW zSfF*Uq!jWbOjzN1b2m3%1j}Zc$1lK%@z_8QWC+N&BTl_t(|8S-`SX4xNndej*<|0i zLv&O|ka{n_U4LCGNI#PnItljD95KVZ7E44a=-%rv+cI348U@fuloQ**%si>{g=tjq zhJ!6mQ&o3e%VZ8*X*>&%_MDp z?lKIwW?1v{!)`)q#1g2s=i8ylsE?dq+0`O}Z`alAm<%MlNt)4{wrVS9p~j?MX^jO( zrercI>@^?M!~W4W7jQ@tmw?Db&ypL-?d>wG7C&{e<|VQCqb~;Jqehgz_n3bC^= z4liyBgZ3J?UQ(WP6@aAq5Sz54K$sIqWjHT(I%HN~=)?s3s#c38ZcW!I7WdqaLhYbX z|FZ>Qy;0Mqqcbqer`)qYW_lnk5b+=JOS2k9fp)VEDwYEwcvLUv%BqXp*R2O- z$D#3Uu>KE$xUOvwy5o>?$qw+IA?mxS_ujn_irE{bv8zCjGE@j|(fM4rw^h7Jzz~~7 zO-UEa#1XHlI33+=JlhEQl`5$^Y7Ag^)J&PF?aHEbxSZ%@9%wk>h{iTJ6IDHjLc#+E z&tEl;fcW4hZiWwWihLR{LRlaD&y&}U7}2mq^>bhC4{1(wD`$)KE0uNP=+-Jn@u>Xm z*Lp@g#f}s0zca_CQ{`bS@&dZtSzne=b$v*bV}-hAMbP8nCAd8Z-8sMx7PuI-hlG1N zYgHtZ$JF9;5~9niom?24*a`ml)RM&tyj%mmwZ|$3j@Bv&efJy)+6T_Mtn3wXw9AfYPEnul zn%IWx#ueJ4A1usv24=eGv>ph6uCmNf2c7tcKo1!-B@e<8XDmF4dC z@r$3VEEQg|`QLECVK^!W;y+MME)a17S@YsQx-UzT)*gx=Hd zd!q48&&%nA%~oeE@UpFvbnpGP<9Hh+g*4rTvWZ$Y*n;+tc^$?)K2H`%5MOJc7azwB zT#Hbaju4PiKJ+6*IDWsczjx7K`5rspby6WawFYLJzX%*&X?(3VqvNP@gYVf)cxKd& z_^nF!Pdtl$%13sZ}2*M)13-CU;f83F~Re_!Hz07{BUyXrM7mb;S6m}pK#baHj+^~ z`@S+XI8uD5p>iSJ1a9BMFb^KmrN5WT9l*m5fv$|y*mMobnE;g0q%ms9hJgQbf``$6}JTf}3J!7XJD&RFsl zzoT&n^LSY@8YOaND5m#Vdz)dLtgnWYJ*JO+hpl$%Nd2~x#QBGK$JXKeTe{q_G0HD_ zR^;YaD2B%JMh!MGph+ci^Wx;!Sa&pLPD8k#V=r8N$sJpFwWC*MrVXDK?~{@P?by#< zb`mrOA-OUg{KAl7q!8v}Dt6NPnj(W(g45)o1;Lh~$R%Nr!ot{Ym;l zmbsz6!mz^ABKHM#BSAtb!{QJRqCs3tD%85Sq79c8SNWT`b-&o2RHKj=DexSVHy6L{ z_KgPIbdPH}mtKCV79~>HWS}mu5`{LcK`cM6M+*8JFe(nfidVim0_k&^VrT$J`8_R7 zN2cE`Eq(eqXBVHP&Y}{Gul1cDy%V&$o{wG9tjlS&b}vBrKstFF{xIbB^E1BPQ40nD zis#{8@;C z{^y!V)mZkC^cU~1_tOMrAMQh}>J~!i(J5ap9Ml*$9`V!s=T+Y=DP3eXM`RSJKrhr0 zF0A`+@c^Q-bsA>5n7FBpBG<0c5<_E~_mMb?SsN5&^ol`hlvy^GIlUTpMvApAdK(!v z6>cu&1$ccaanDi`d$WxFE60RDZyv+cJ~8^AG0T|j z%|RHgMyi=ApaikD+b6Ks^)dIifrQ0#)UqOlJo`nioVE{}LXPpF)!7rmSsdQLK{b>LlL zdMvsD9QLj|<_olYp!2&398;BGF^mAg3nJhue#5=-?bIClPuCuFy8d;6>qcW$oUWa9 zjfcfr7OOo3q*@7l?e2M!+yNB-RJd#u%&qXZLLm~2;E85(b}w}*uNgAZ^aRSf&{xS^ zJq%1N%CFwF90x(A_1~soMZaFI{Byri4P36BJMM1?_yH7$@7YPT!|muA#6b`pWbrI- z{U@IN59Q`Zan?lK#a}cboAD)?F;8)lCSGa!QOm#Dq37{%n%rc- zL!Gk()ny{#Q*>0G7?fKnn)Orl$>)ma+{Je28KnDWQwL@FWyR}d?A)kIC`$e2B`4=% zT-Uu*ffT}kOpjv+JfF;wd$6{{wsX_Itv0(r(fC`aRJ#-boWkqg_wJR}S|(_4%&|G# z-|4>gjLC_quVwikfc-w=HL9a?-^x8NgN0-KR^9zv9y42P8|ktwTg3OH~LQ^;54@Zayc4hV19R zd+S;+Ka7uA$D+!TXMtF`o?-9CAeI&l)C-ize#r}q$-n$e|8Qted0zpL%$Oof#@)8?lXboIqP$y8WW|zaf+kS zQ*~7FUSYkGLq(1*G1}wXM%}-vtosM#wrEh59*&@>CoBka*9aCbQ5f-W)cUhH{F0xr<-H-XUD1-z11hMHr|Nt~wjautK*pUYBIMV1j15XPIcKoGeC8N}}b z%>SuXbpRv+!2VMJpx?j(#C;#}5dN#t{7+E+w`qP45e6g(WCK(hv;qtS%n582TpN51 zLKdP9QUr1aN)_rKP!3oEZ4EsPV+nHs%M4oy#{{vY;)P_uroPzv_ z!iUm~3XU3t`iSO&wv8@QjJn$ zQ#(`trv9RFq&cKDroE)oq=%r7WPo7^WLRXRVf?Ok{h#{>0RW&amB|ee`5pm?VBa;Y z|G#{leo=uBg8u!s0{>@*zB^uPbO~T`R7zMsWKg&??BLsPHdVhgTxuHH%21rw~ z!yoxz_by^@$>0Q>L65ZEo=ecU`VT=+GzD#6aLz|fJq{?i+^F?dEcHKy!`iuV_QxJVN}~11vRxLuP#<;egAtLxltka?)#cjDQe7%_{dR_$HIMb$$pO!+o78>c zEBpdtRO2a@CbeSc+w$6gJin_1?(QF6dw10rJdgIN1s=u`H2nP#ujmt>xHXu$kr?r| zMHx5DR6L|Ve6!t@d@-zRpdZ;hIsO6^y|3YN{ zLgsl|(ddXu!7|O?`Kv-25&K6{en;)IO3h2%%reBo_0yLj05n%l;J^7aH8L|Y`u%1Y zN*rBw@iqAcNf!}JQb~jes3e9W{-5h6CKhXheG`3six8#QSUyB-`(Tiw5)_bRbA5d` z20^>ix>$ll)9gR`gN1jKxSIz8VZ*7)Yv4H1u(00tGlMOnnCbvD%0@=ufQKHWu>WGp zMVDcN0?@(`e|$;8%BO zrlFMwWsRM)M?^1d!jAsp*nE5+t1Bfx4tS=S?eoW0I`w?Ff=x{Jea%s43T5fz?wb=S z0u1+DLjW8DBIhqTwbnjs5@zLc5e5>FuHQ3jBn98ad#zdyf~~cwK+$v@+`@?6PI#=S z!fr}Jxyk9RxidBA{^i!I{itcIC5GE1)0}runYEod?N$sLOvd1`F*QC{rOcR|XSTxM zYSdcCuEV*)FD!H8H7}9lh%%WJgyUfk<;SO^np)TTD{wrRy`&F?x)$`cJ}|Io$h$BS z`J_XT&bK|_$G`HLqc~%60p?(zWE0or9Ixpr43IvON0(2j?gYykQ7- zei%^-(h7ff22pPiW`PABEN!>j;83)3tK4O58S`|6+cjF_>sU;FlH$`KsV`9LYarJ;7q?%mOYwahxHC-;n&206uNTakj29VaOU)uS)*{{$om z+xK#HHyPuvar#1|CV`M_`3ciUc-=S#PCGthNeb(&&CE_A^hq@VA!$1E{tExmIa^9YglhOqbN2QA+l19#j@cYf1hL{j#;kqs}P$8QUC6#^~ z|7)8Mh^`u8tlAFVP>I3vCh^VkmP+z0Z>yxh(o{*21TOgB?ByN zC42m1DI}&PG|>15-xdee31jWZ`0vcyOCC=gKAuU6M%D9YgB0b{jGilf zo+)^qR{mUxu8(&FL%N+g!>Cq>;RQuy;SF*t)ajkNCBwqS zA#ESV4GFLm)0vB>-Jp@3hb8Iuya7XgrmSuIp9@d~^K)UUcsp=i2{@=BmT83C46&ro zUe^$ap6tI;L5FRLMIE)tT+oq8>yV#xXJaA>;XPxLoE~3swT)5Mh^FP9i7==3P1)q6+{KliEd`S? zjbhJlz>>5~()5&c=us=MRHxmmlfPZECSEk{-EK)9`PCDZ=w7=*{(*BAa<9c}Nujn-EZ99({zAJ&+mc;g$Id70#1* z$1Hk8H*Cf->aq1+@j&DMd#;PL*r6bR!ndBFOJK^3umarOwQ+0QwQ={wv~7?&RUxzg z<~wm8P!2_f5IPmZ3IQWgK>`?62pFU3QjF7p2^ug-1E!*42%$|itrAlzDvD2=QHg1m zPS6~kX`arsKxbNHogIoLg@9$&304#WR%yBwYcwED1J-H42I~v$s!f%cwpgEOTP3C) zIzhX1rad~-KAq`6k8yo+0uODJYgQgPTa?EfbQ`tm=p@QZ+?+yh&a9ERIoFvRlBHfS z@;Nfl=eUHPU+Hq<;2L^x13kFawlP`W9V5^0q2~|K^GBUC4xXR~&(MPxZJUziy)yFr z4SN0#J^#=-lmdSz_+?5dHjgaTgK9&w3yjkdBa-rz}fza(bwA^jhb@De6q;dyh%x+~rQ z004N}W55lXfzX7(glXUZA56y?_x%6y-;7C=fq`lN|Mx)t5g=a|$VaGK2UNEWEN%x@ zw+*Nc$cO0z01}5FsQ`G|Vqjq4WGG@_W?*FD1hN+aF@(*?AOhq;*h~y!4BH@VAnC<$ z2Fhk(&|(yWvRN6N7#*N&HY9OgrWD2|D4UPLg!vhuRkB!aD2idI*7=IJD>E}Qb9bFE zGyi?hILtV{py!dL8#}sCQYn>j4J)XSa&j~)ujaVdwMy)1$; z1h-#{WbOJcaC-p27Y|I!C`8y z$tIMuJAgXATIN9z~T$YRYv@T~`>OMdLP!VRv>Wv|ro^>r-^~x*3jXM}k<9^V~NA4G; zjN7dI*rGt+yZ;y1_OhWdB$h~Ja)nZ*)@XJ5)mY;+=vWX#(WLyGXN7CqajH!3)0khs z#qLbo%Y*s|y)gle{#(+_JZ!5+jxYJq+Ly#RfO#4UVgCG689ezAaGN{E2d z4Hf&$3L+hfCZ36Ev#$g!Y!~{~8?nIUewhtPS=jcLr0KyVf(7ykaf1m9ok`@q`i~1AFDJ7}h|}5X7f*R*%m4rZ J00IC101u*7EU^Fp diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-BoldItalic-dc47344d.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-BoldItalic-dc47344d.woff2 deleted file mode 100644 index 29657023adc09956249f6295746c8ce4469b50d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16400 zcmV+rK<~eIPew8T0RR9106-7`4gdfE0D43K06(+<0RR9100000000000000000000 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-BoldItalic-f9377ab0.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-BoldItalic-f9377ab0.ttf deleted file mode 100644 index 728ce7a1e2cb689df32c3a6c26e1bd072dcf2acb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31196 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 T)YS6}E-Q5R&CfXgJ?`xQe`ny2 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-Italic-08ce98e5.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-Italic-08ce98e5.ttf deleted file mode 100644 index 70d559b4e937ca1b805eb39f544cbebe3c58ca6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31308 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 G#ECDig^RoZ diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-Italic-7af58c5e.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Math-Italic-7af58c5e.woff2 deleted file mode 100644 index 215c143fd7805a5c2b222bd7892a1a2b09610020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16440 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Bold-e99ae511.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Bold-e99ae511.woff2 deleted file mode 100644 index cfaa3bda59246b49e94298478d6de3b3208066c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12216 zcmV;pFGtXKPew8T0RR91057-z4gdfE0AMHp054wv0RR9100000000000000000000 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 G>;nKVNojrn diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Bold-ece03cfd.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Bold-ece03cfd.woff deleted file mode 100644 index 8d47c02d9408d34b2a9d566c0fe0d42bf82fb735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14408 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Italic-00b26ac8.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Italic-00b26ac8.woff2 deleted file mode 100644 index 349c06dc609f896392fd5bc8b364d3bc3efc9330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12028 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Italic-91ee6750.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Italic-91ee6750.woff deleted file mode 100644 index 7e02df963621a5e26d53d510f0b4992eebde1c60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14112 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 ZM6wWJZYjcwbulTEV8$@`t}$2ry4J=0ZF)l+l# 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 DqysK0 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Regular-68e8c73e.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Regular-68e8c73e.woff2 deleted file mode 100644 index a90eea85f6f7bded69ff5d40114447a6d8b48cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10344 zcmV-uD3{lFPew8T0RR9104Qhx4gdfE08C&204NXu0RR9100000000000000000000 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 GG{*pT{>~Tx diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Regular-f36ea897.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_SansSerif-Regular-f36ea897.ttf deleted file mode 100644 index 537279f6bd2184ed32f1a5168850609147d58ee6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19436 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-036d4e95.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-036d4e95.woff2 deleted file mode 100644 index b3048fc115681ee6c1bc86b0aa158cfbbf59daa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9644 zcmV;dB~#jWPew8T0RR91041yd4gdfE06`=G03}%f0RR9100000000000000000000 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-1c67f068.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-1c67f068.ttf deleted file mode 100644 index fd679bf374af72f2a183b97b40c9c7e9e51fbe5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16648 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-d96cdf2b.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Script-Regular-d96cdf2b.woff deleted file mode 100644 index 0e7da821eee0dd05a0a6f0b16c2c1345dc573a84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10588 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-2014c523.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-2014c523.woff deleted file mode 100644 index d241d9be2d317f7b39b401d96c8b18836acea0fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6188 zcmY*-Wmr^E*Y+6(7?70iZijA=W+(wk0YMlTS~>(q>268sE(N4Zy1PrdK^jF-K;Rvp z=lSt{_rC7ytaa}d`}UB~OWk`e#{P@sSU`2U{Jpa1p$+5bPD>+%W!0A3qP)kF~v zGf(-2a5Q%T0DN4OACF>RPDHl~;*AFb0Fch1{6{GMr>eD!jU&p;0su@@K0dAm&o$D< z+#Qum!Gemx`X32x9DJ++0Hg>2IAW+8_@PV_{kB%-mH>czfr=6NM~ffwi?%2cbrw`T zfF4B_>~|nPTSpIXl*WPb-B8SVa|#-Fa7LiwaR0^W{G$;}kJ!=N8`T&09m=OgkpXDM zA9XT!v_kdUMD@-C0Q3N}S-)BrXLk<(AP)clARnc(xRhi$xVTxNa!CzQ8WP1UzedSM z@8vxMjCU(Tbqgnt9F`KfjW_$^_)}<|prbsODe39-$!}w=Z^G^6KH7JQ`UxinfWyt4l!nK!=qM~h7r zCW1QJjz6U?x32rkgr6RZo8Ur@3sZuzs`i%rG@qWnI|~y}(!#h!WMWWS*@!oKzD6yB z+a}~X!E*Ka`F1|-(xi-ggYR#VWiXTFG*Hd(D#^pri#bh(p%#NFGp|?;2I20nDb%l* z8A!B0jp9!)y!ookAFp?RNwYuvvc%1$EJ!f7VGE!Zz z7;RS+D~RsBntPrb5pMUzM+M3`zkUg_iJ2vgZ70E4=~QI%!X{;nHJUF(bk=;6Y zbripTbq(eu)8~9Vcuwccr?<%9vNiEa+$cX!I7U6{UUS9aA-=j&IEc()M4xcFi>bmA1+YIQCMWjLzWfr*g(x9Gi`5Jly?pcDOh3|*{^ZYZeZ6n2 zIqSI_dCN`DxyY1}htDc?D`!_XFlw54wV;|s61HQB176>{bdEA5I#+)^k-DIp24A>_ zlT9zHl4|>L`5HmmSz8I}lE0m5YHwL^7568kx?-Ov&Twe#$%-W6Z|n+S-Ky7S{iTIy zFQEm3m*jb4N(v99LM(xU<_xB;1@>5hKk0e;BEQ&%R;=9kAr|bO+j5tVYnP| zkX=(;m=$R7`I8DMmnXvv{1#D3vRUZ4!-N;jG#r{iSavB`GHSO9Uy+P`s(yWG>=^Q@ z&Sgvnuf*El6!;RgQ_~m7&>L-2TyyEs>(u6GwY4;U@En)xGN)~ngf`^F@LCS&_+mX1 zI6(jS(wc?jEclsX&5@E6BU|}-guWZ&YEE-4hRrf1TS0G1kZoGcm%~i`%4wA%A|-m7 zczac11RX>kSFJ>+#k+sCLABwTuR>>7#}H*hfhW^|0M-Ecv5W$v9>43~5?6amS$Al5 z%v_|<6$4$HV9AEh5dT6_YPYgzkL*1N$>myI%;;a>sdLIS`c54IMyxbgv6NIY|R=&m; z+2sT#AQ1=)@pOrf{O&&^;dGw`V$zOo2JZb*Qe>>Y-0MoC9*+~ zLZ3Es@y1RUS1ws(!I4fa=2S{8rYg6)y4#Y_>_y^`fH|yd{F|{`ip2+`+>d-I zKE;HKkNJKVh|{xB+LE+gQW8!KGlofeiK);$XOjC6#A31BBfC6pgb&@-#<>qRz|UnD z00Iz)9C%%w9!J&PqYsN;)NbxbBmW&a9;*hi1Q^`Ee>Ubaed+kH~()pz0czvxYA zseIzo+9?&0su%ln{ZZ4k)2e$ybcOTM{bx#?MICJv4)S&m- z4Y8S=oXi-E=E;-x zCkh*e&SLDa!nVJc$iho|8zHMks;kR|r4xnSvV#g!yVFQ?0aH0`RzVsrWsFjIX&+uV zX~P(Xsn7QsZD(1mywp`1eMdXcH2DQA{!S$X2i}yu3rsE{_B-{U%Y`R3S-cGA=&jDZKFaMGHeXwLMTZc9W2 z5A)@U)$m8bgPiIIztRY-?|2%eyrwnBlnk*n7LKEo9J%9rb^1^kKW#+?W6F0z`xycw zs#Jj@hdlZf&W&C`!q;1_?1BPl=hZQM?C0QE4jE`{I>4(j-Tv2R>dHQk-+rV zp9pcYd&o$mD4AMWwBW!Zao7!hq?dJ3RSFs71~>#s}^{l$3<4j4)U4H!5s}A^I?< zT$_w^kLyV&p;4GQnVul{0vK*JK_V+4dw8> z^t6%u0$Q9Jc3^OS5@LNs&Dr6H#b!tdNx$Oj!MkaXudY7tbxyN5_=^T?U!;R1oWsa*FzPa+X$>Uz#WTr1z#V3J2Bak4fRFtv9$>A7QdnC0iF=H7zfC+Z_Ja*h z#otCi*~NO4>)qLZJ$OlpXnQXs;FfUs6#VOG*9d^74zDFwy!alV0?;vlQc%M+3Pk@~ z(traH0i**>zz|3pRE1j8XtZcDXwhhWU;u0eP6Gcx|Af(siNvhJ+=lQ%{2+0V97rXk z9de9CffbESf?f4U=21ARBIv)=Q^D*rBY64?AOL^+*XaMnU*f+7kTwi0l!gVM{dWg- z)<6C5J^($Y0~c3T1gy)^OUCfRdcnFH-qw8qsAPidKqX7KdknZby??hKocGBYUipUv z8V2pr2V-E>@tE^Lq7DQP`O@mXqG-gI7QD1omZlo81tP@hIu3O z54R7$?Dksg`^}Pedt&?JZg3gXRuym?bq#4WfALv-*2wTE?-KmL$6y~ocD=uuQT=ef(5$7 zyQbvxf&Pwj48YkhV)|6naQUu0eo{RPzbBsX{5GvzS>_hjY1^4V;kg;x;b<$#Bko}M`~ z$=QL3tCw`CPd9qrNqxP}d_G})0(Nptu#atXjWckU1621lNHvl^wSu#(ZlOLiAEgPY zUD3sw_ri-njd(wfFse*LtSQg~RUNjfo$|ka*KRYniN4yWZW}Cr>s&y;Q_xQ*6Sd8N zwX7WwMvMLm9aN7U?*WEHKPn57mts=)MUD}@ZHTBxub%3cbjKX3hWsK~&Z>o{rDScXVbF}Lbu=vKeHofmz6$#{)1mCum+07{P z*6ztGY>pyo^RrE6DsC?HTWcB`t*-evqKY6fKpM2z6Y#1hwtiV|o|1xe+1;k1u$xk+ z6k;bP*gTDg)-ZE4U@5nqIdT-F!z)-2rLij#F!Ap5pb$$&B5dfxiEhESQ_q1 zjaaBXNy}%X(^cg;Fqd3*aWP4F0>m9Iz5}?+6vQT4X_sS5?=rON)l@;-d9ZX>`EbJU z0Aj_=;H0DRoLrJ+>TU%Z@#I_@Xu0Uhede0F-OD20(wiu?zM}QtNyDnKO1s-3w0uP- zYZ?Q8UT1Yom8mkY82k17d~7Nj7dRU?X_(l9d@Wd~i{-1MA*+(1=buzxn(3*EL(Djm z_-BUWg+!Qn(b^}jgov!BgPkIe?q2P~?FhxkUkLp=eP#)X3!o;8R+wCtf(1o0&O82& zm!N5V<{15zZfY)m!*!MpqjeqCoIS@B62lBG&f2!ZM557Fu0w>+bJjcPdAVgkaiwLv zKQy$jJ_M8MVRL0WPr|%{mhvH+GMjkdBlC{G05eA*;;L8-du|bzYv*a?B-1-tPbr3X zP}VKP_4|vO3S#M0-H`abTrB!gyPm-xlPDW^3$dhCos56N46}0%%VTvEZc1hm@wT=h zm9G8%cx`a-Q6BaO4_zhqMEVm0WLnI#^sQ|V|!%choG@@3zN}KeA^tLKZf;JTMkNDg2%Ajp>PN5R*x=ogb&0V1#|L*%6x@$Tozxlf`3VRj+$RwGK9e!^=h871 z+H}&L0oS)`?wYbfk#rmh0Xy0sNoNk~EP-vMyKKJg39H8*>8rc|tBqfR$(IFI96JV%a9DcJC1Y4my4GG%Hx0a^_A*mn!ThL8Dsb!E zLHrxEr=^FLughOS$VWuV5}+L#z@Nd>FNT+v2TBrxb8&?cF6+&5@fQ~q{Hdo*NwYpg zAD>R&KUBx@D1j|3r@Qe^V8`Gh>W9sv=UZh?0uk=QJi{*Uc z`e!!Fg@UKE>G(e>7TMV^rj%N&_Y&%0K4WrC+U0SY1#NxfoIm%+s3J4nvs)OAjxd;W znZdqs&%Rx!@UY{5&WDIj1sgk3C+)5A|M*LXya%NG=frn5v5^zoJQ+Um?t;# z4$h}839<$8rSlGDN%?=g>2ahU| z4#agu;NjCgX7Gy|Rl+0mhd{tuKm~&ivQR?BmRuPOW{y@+cEeIfLl+UausenS-S`q% z?8QtRJZil_B7#Xy4kXiXLH=`(%c8~{{C~5K_i|+-hP{IviQ;54!M&^ZkQWNk`R1!@ zHsW?)*Ewwko)=$+R>pect4L8A#QoWpD!SJ zca_VUeWxI47VG?2M(3J`KqMvC_Po_zpyVbsi-Wg6Y{H*>GV+6As#)mAKXea5A1Jig znZuv|u%BsaD8CExS*@j(nf+?Ev#*(gc)_hTRe?J;yTj8YloNep51YrWZ{#R1IP5^$ z>OU7cbN>~Rz9Hs!RB{=V&|s{_t6+AcUx{#PaWHlLMPp`DiWt|oYFs>V>5wx?A#MF& zGkgV|%-?T&v-&K`FJbzyC$Os2U)^!S?d(+S+Dwlm_N2XNlk4cEd#dqd3tpek}xRYYUJNBwvb8Tj3Zp#|_ zo921N0XCAoWVH$m)XMD{G25d wY{_LX=H;XpKCoO0;vIG=&MNPm!DONaTgB3E>)@~e@w0#9F9-lVJOBj$2Tjs3JOBUy diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-a6b2099f.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-a6b2099f.ttf deleted file mode 100644 index 7a212caf91c0007e826fee2d622bf48acbd30dde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11508 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 a^|k5z`r34UeQg~YeP3G~_EX$#+W!Ytlnjvo diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-d04c5421.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size2-Regular-d04c5421.woff2 deleted file mode 100644 index e1bccfe2403a4ed770c1697ae7c15b9e1cd9bc4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5208 zcmV-e6sPNVPew8T0RR9102EjN4gdfE04)>%02BcL0RR9100000000000000000000 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 CPy?p` diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size3-Regular-6ab6b62e.woff b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size3-Regular-6ab6b62e.woff deleted file mode 100644 index e6e9b658dcf1cd031ac82b6b8f312444c55d4fc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4420 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size4-Regular-c647367d.ttf b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Size4-Regular-c647367d.ttf deleted file mode 100644 index 74f08921f00f71f413ca42c9d1c90202e672ef38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10364 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Typewriter-Regular-71d517d6.woff2 b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/KaTeX_Typewriter-Regular-71d517d6.woff2 deleted file mode 100644 index 771f1af705f5cef5f578b3a1e7d8eff66f9b76b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13568 zcmV+bHUG+YPew8T0RR9105t#r4gdfE0Bjrp05qlm0RR9100000000000000000000 z00006U;u$!2wDl83=s$lfunT&H~}^SBm;sB3xWm!1Rw>8CN9CW*AUKZRb(vF-L12^-sRp4kkW?yS(-j4&mT7M`-Mm+~H|D|J~(s zx%geq;*D1(>ArFW~rrE6envo%`l% zO&%1KVbFMCgu$9D>Vhor_p7zu_xgZnQd6^Hr;Yl38vs1CA)z7xl?8(x!jsR-@WGX-^qjEyCu_uh7 z*I^gY?D-X??S9Ph4`*u;DbmS24lMp0i)^I~rpgtodMf)%0pM!zD=q+k>MsCRbH@(- z*djQscm())^5fs_Q}OsZfs<}Ca@=XAhI-RiE3ozs0|0$%4*;FwG9?G4Rt|A9A}!%eLthL~ z5hhYIlz9=7#fhLTpzK79Hts?j8WWCQfh6zi7&fdo>H*Dy^`wGqe+Zaua-BoP^#*kY z3z_^znGb}NHKj3Pq9&3}l9gHI(a{W=QeL@bkbp*+=_Htdm(o$X9YqGJ01gn@2p|*y z0zI{2&_qe=)m}fd*%BKaA=oLEO*l8gqOn_# zPoOow3G4Z`O&=u8PbWhJ6^9~s9Uvh}A{)1{B_X$fDlVHsH-j^5HaNj%bZ6Q!;-^Gl z@?y|!gCyYAg>S@lK9Oa$%UVw{mh~uOoA__b- z6Qm;q`)u5Tut+)VDp`kkf-+s%4T>DP@&Mu^AIgYq-U=%_>xi*s5^~9uDv;S;Q1m`XrT zUKx2RO&Bu;GwG|9CQf0Q^!16R(*mvNZ8Mo$umL-4#15OV!)ENT1v?y# z9ge{c$6|-$uuCQ>RcVWovm@ji>M+YXk%gtmk}~&QV^t(aB&QBGB^nT=E~i<3zZWmZ z3(a6 zn$mj_ystCK!Iic{wgNEU*eQa98yRh@2y8{6%}jEVC#rHLtU^u=m7s%xdaoh~;lfhY zc_TE4yXZ`VBp0XR%WbQ`C>zym?nl~OTeK{eJoRH!1;pZ*!L>9dg^MJEES9^1it)tc z=`G=Ynl%i8^*?UOFQRJ)BQ=Z}WGnSRRR=aIBx7ZC(wAzvO zD6-?cnO;Rs%(?|KZAa$J30Xj`gw=<9QNU!Wk>GD9h-Nhau@L^+B=dhxp&yyn@<-O}{5 zE5*kHssQR=MuxChqR4tt=>lLfj@8u9Y0O-irgcmcXAYHX4Zzuq3Wg{s5D;SKDqIf#!G+&Gn$%yuHMM`PzX6+JO=6 zz(T`lkq6OY56Ufpl6)-H`2b#~^RZm#W7IHO;X$<0gO*n%>=%B1`{CoLYCi&Ve04^> zN?%{^jvvRm#yO^n;SbrjB!&SXP*3XQFH#LP+;ad>%>ZaGr#2M8Il(O4_Md}`1B${N z-~vY}DarsO*_nHD?kZ#;jShxR0XaWF2-x}U&vQCcwd4Frw7gBEB9iQtl!^qTgpx@E zxJ0Fo>eDGP5k<>lazl2sG?hw75J(dlkw_$0@Wi*OsOd) z<;h}WbWmEG?f29*1e`jG)nnRhNxZ}wEsGW8dW4iuq!A`n85;6gNung4NDbv=rnk4( z_?&`5lb8?_5@CWSNw1Jnqz01+O@%gvlvJ3!@j8{);i!;GTAH*fCRxZ8B0EJGxDkCR zuH(ssrD<->mdv;jZU)8?Cn2tv#FRr{Rtw9-MP#yS#O8yXIv>O_R0#w+uR|0Rj(&T> zeJ4$=5U6IbCfYkh10Xvefi$Mz)$xvVQTs$8DI-oYVT!v3=Gv@&v?9tdulZMlFHSQ% zwUGgRMEXf!_YI8z%St;C1VAvHmZ`6r?x{Jj3xxh?bMI zLt79$Y|&_S#X<4jUp2)QmJ{)8sD0tpBi$=WsXa}-&L|?js#Zgs6pAON4`IY#lIlrW zmTQ54S=XP#5FBzsvZW3@T<4R+rDtHpb5k)Pa;N;%uV=KuS?|6 z^i1#RRV-+FB%2;#K00n^4BMito@X{Rebt~&fY_3z+qWQYv$qZd?3Aq9m0#{w&7X?G zbfeW|jzTxXH_*Tq>C|;8UB{viS47ym=GyGh$`~TiAB31FaGf3}5b;Kd?rh1RPz8k> z)8{InUV2()n@t9K1WM#eaV96(b{V6H=2Ymed9yuzJz~nCo~JuWnxypK>3-ioHKk(2 z9x}kj0sLRdCWSLDdIo#L?c^$bIdf{eFhq=Jg$hQ9n^j4sLHjn18LwQf3z2C>>DltQ91-pXfi zjPe)p*t7t|uVXEE8d)1Ns$GA?wLE&Ylwd`;!xpRe>;{i!yxx7g%Bil&OS%owo|yMJf)CgRgbF%6aG@`kjCX{ZWw~H4 zxT$E=PdMKt#G_ZE)?mtr4Tp~;+x}3B!>-*s8hmyLL{75bc{ej0BcVSX{q+svv#xha z-t*lF)}DwMt{K~~auT|#?7n4*dGHoucJiC7+{^`7NwaDe>{u}eOB)1vgW|v=*t5Iu zGVpC!q4@QF1^wu9qTk4kTz&hpwH!L^6*D|m*WbU8jB%5bq4wyJVrOwM!o*ik1a^lGY}TY*E7$)Hpj6c(POo|?!PdkhQa zKYD)m z)$q&rA#NQQzPC_FMZ+jQcKfg$Lr=pyXrO+@)2}GFqb%vZbBN1J0lLc*6I%mt!bQFi z8=zx_#){UwFOzpPQY;t#(115RPD-M%WTeYHphHbu8Cwj27^zVQwFW%Y_f}JVuj$#$^@%6vJ3V@FAy(l}<#PD+lW71S{lKw+lLaE6h4N5dsYTLP?krv*Bd4hl9`=Vp;B z71E1lm4q~52G|=#UwPX`1J#7Zyi`>J9!los7cl71fg~|NH@=jRG^X!KgKCtVNS#x( zO-U|#`_%|Ev{9dhFn}|Y(;HjdysA^6U)omF?&^9jNc)6tuPUs)oE!EmfXGW8p)prT zpB^pPmn2i6?m!UOW(ijn1=Q0cfI1Lnavm-ORV%;)CV*AI{4vB(ut6;(WjiB{xXlGY z+oDFzKv11HX;1&Sl{V@`g?GnZ&s67rGK*=*D*fd%sB9KoJ|5b!58`n3(n9-2)gW3c z6A{n*ynO_sZCI`Oq!~7g@`rr*i+&d%qoMXrE1m6%c(+h)4AQFa4_gFDCg;vYasE+X zH4}tZk?$I7U~uuAvxaC9^?bg)lj*d>RdO66bL?EcZg;rhD3Jc}Y%aiddGVCH7`0Y_ zp79O>JdaMKD>FX?W-;G4mX)@O*Txbavf)&rt0CeG*^B$j$8I+(h<9d$)qPzol}yI$ z5tL%j{RoY~LZnL4Lpl>9z5thU%b)Y~h(3+LQG%B{C8)CNLy3%pY6F5S(TmlH@CM4; zo;&h+&~MP---F~o-IPc=vAKrIT$y=}j@AbJln&iZ&KuuvS0m=$lv2D@g$mw>Q95d+ zP(ei}KRM2k?Jnx7Ky3dDSD&>bKLACf*v>L%rs0IOt{IuAV9Wl82qX0Ft&9zo%WmO#X9X)@LOyJ z0uv67m&>@XujfPv7M{eJK>QJ>;<+^I_ru}=i$*|by3GPj6#}cKQu9m#D5DqdxgUA6 zE<>I)ck>-dr3u(r8qqz|_`iY;k})m1uu>!wY47Jl0E`!vzc8tn{^mu{Y2|d(TI=4` z;QnBlvYFhv)eTW)WU5aysv^W+tt%G<&!vbtMQTCLsD&-SQOIw?S=L=zybq(99>_&k zR3i?(1TG^lP#I0%Pm)EKt6X-gY8-%|GAZj2h1+Yu%WA0Qu)VXal%&x?d3H7B5fEst zc=@(18SOa{nj&-r0YkZ$YSMA>G?GvE6Bc)VHVjPBNw;Li?}M}l$CY?W3D^`|pdG=jFB|2Gx5GDDse``9o{6}tPd4*Zb6so!Z$ z{>q(|MU~gfn&$3l=tbQW-wNf894!R*$zJ^om+tN(Ik3&Jo*vJJ zRlhh6Gl9!KqoLAE>*1Ipj@$SplvO$g)T_{_74YLqEpry2q?N?|h{P`Q9{lbtsOx&T znWvIXc!Ye~U%Z?>>Xul|B#)CwWr%u(Fj==58#MQ!*3RuB0p%aKk z%NGW`Im2PO!J}ZhVc4E0qgGwR z=tcUJPy=7;KL#tRW5jp@3F8>m#Bd_R%6K(EX#6ubv{)9<{%p&dJR7diKe6jeEhbkv z3J~mKs>g+~yqEOcOa7UJ&W+=nVIU7-rXi+J7Ll|)9WkAHT zD3V33(M;v@ktQ*yD>K#Vz^g?Y)PPHy2yA4*7`98L!Jbie&E}UKv7TV%&>qB|X4%Me?xUUl=>zE`0cQT_Qw-(bOpL*!;i`%=Y>-PR*(^R+sQe{U-xQvaeY? zlNy|FW320hn66!Nx<6?j8K5)51PHASPYy+`sJv}{3u)*qfM~1Ejc3WGq}W$Bv<^vo zohsqlaxbJB(+Qw~&d18nnhn|SxHlX2g@$r_! zjHggV#BdlCaA15Cf)mD9G0I3VIoXlQ_fd-y7Uf7K)3|VIim-J9Ew-!LVO8qjkb>Hx zGfb`=p8z_DDt#KoMHEAS3`v3k>LhMflGFZnLn*1^oXlWEdmc_ntu^jRgIzhPdQZu` z%Tkxqfgson8aLEaafQ_h{?HMpNT)Ka7^1aZLiG+Jx;?LYFopS)!S6;ax+^=Dy!%&L zX<}tnn(j3I=&nX(UZ~a$ts@?rQ0Q52^Zqf$EgjJbpQ7mLLW0P ze0hn@Qk1E~)ZUrJNk;#JHjz4IW~3wqEe%G-Sx?FX)TxX?VHe zmjl+qXqp21Pa3}dN5UEk=jl!4&^nyKkfPY;fmjPjoG9Y4MJxL zRyH&5l8Q>TKW?BS|2uTr>@zC`+GweM*Fg_z{IU9Epx^5ETjOz>U{;=4*r3|k8s8CD z7h8q?!PB*CG$M=;2{{}Hf{%!88&UiT8U4L2oC^4d)_e>7K*=IFfBGSjnFB!_j!;Bk zB8|3PidRlw8=3EPt*QD8p+RG&Cp`)0uT-o`R938fzp;7etloV=X+>Pcluzkjr#9cy%dsi$r4^mV z!q{Lo-?_^9Ons?iapDy*Hu|FMc9Vqu%ytF&)Lb@p!baFO_4CuyLX2A3kT@xm38keU zI|}LTtIqcc%WH-=8Gk>OO@ z#n;*nHAswE^#=;6&Nm`i6j^2>qLamz3RoMt9XaGGC3>q z3^!EOO?NL>q3i{Qe#i3l_2#U(VwSVBwcEE09y zQ@^Ei7F~eb0QQG7v)Y}NY;_jy$4mMrAC$>ld$KrNw{V*8auJ*!*P4juK_}snnGqhM zY?ue;y#{R>%Z}E1e4TCymtQ=mt7%zM^Sjnh82SfBHk*Y1GZT8q?TjnT31p?q-;s-~ zxfX5BR{0;ydjYD$}$t< z<{c6(Bn`ocDJ=@E_LgH4{5X3;lj4Kv&kqcJEtHK8DJa`mfJ#UtJB`Y{rNU@NC@p&Y zU-a{DbALfaJg5)NnsCkxmznzgg4X(+1c&>5TxZhF0b7d?m^31G%X=c61!?H5& zvu>9G2UdLG%|)MjbS7U)yWeJs3E1iawxQOn5?7MQIp#}F&MNgJF^dcZg5~hK_W0qq z385QR*yf&h`a46jN=o0PX?$K;;Kv0=^c9odiD%EV^7j})%PVHPsxX!4u>lZc*-~sS zk6N;LG`dg~=eGPb50T10z>ZEz_ig)-)GsjnAWbivk{wl`iJqEVwk)C&e)6gE*_#0L zaIDz1dTFH?9Sl|7OnF87iam7GJsp!&N+s_Q(eK2*_YP{Fr#!ptw*8qk&!~5tRVs$9 zr%!FA6t}U4bg{=p#(H0o;sy!U{v_ue^*brAdo0wB=KYx4lOG&x8nIc!Psf$T#mgny z`G2#_%{5x1hiRJS_+~YQQ&kaPq(@9&OuDe(S%p;j(eELd`WY5)o3ngxL{K4Seaj60 zJ@L+vEv2aR`ns6%>RI_}#kJ0b>dMJaHdoaz@k<8ibk|!d#%7_!6Dftl|FaTjM6mMp zo=}a!_p(bMnf`*-6B{o)2yAlO+t{gqLdvLETX|WHR!TPP(R~iVeZA{?`(TIz3w3)M zNU6qOUT$Mmj8s9wApJomC%TLYX1dZH(I_968_26~^8mzCD_5|yv*3O>i=C|;#lp+! zKO&l)VCm4NA`+LaISE#+2KzyqeC|)c5Nq?TAB!!l&d@yjy*vBt4msK8bsunCZj2AE$7ju%d!SMHE9Nk7E+|}oTfz)d4UJUJUzB2a znNVf^F(d7KVZq#iT;D(WiP^3sSuP{jGMvElDQHEFR(`*oq$ViY;C;Ea1}vBd7P=+( ze2ptt6jVQOiq}tzuMaF;QITSuNOitfI17{IYHLuGR#(JW*-Ih|HB1G@Y?NXsqK-0r zc5o)n5^`B+EI_Ru>@v#YGbjFR#|JB9+Fq(rs_DkzS`FT`JH*N-eMn)h7}96vx)?Mn)+@(-miKjsr%2eVYR=H$!II+k{d zK7aiD_LD_hz^N^SiVfxEPvqx?Se3TG`r;m9souv`pw&GtTXh;er_HTFI3nE1sKnEk zcC`rQf5o}{o;b#Fq)@u&q8&#^B3ij1*4LVB7sxf; zpd=7b%I^=#sKHVbsOzukLq4HYY^cBwd<(Qww71SzmlRu4x(e611afuV$jQ|tebJ!G z=^0P+?U<1>IT}A2A9hXd{s`b0%@ZHR<0d03oW3BeXwIv}d;?EySwm$3f|Y)Z9+R+T0%7 z{mTEpicZ$`nnvml=N_(m$;|#vMz8*VY~uvFJ>Vn`gtUQ%U6oJEmBq8$--tUwlY@lK zI_KsKWJ1-){hLBct#!s|N9(Ncc-%=@EmGgcu7I;k;x7X%rV#s%V`0BU!2I0?<( znratT;d4JHXWNm!qh8+?H+4nD(cG_ck5;Uhik+G%JnL+W5O1BcJHd>%i_VFfpaSnt z9~V<}Bg?lI-3i~h^UgSADdkDO#C2Lb@Nd`!n?4X0YjR6ed9o>Q&xm{?4n#T16b^0= zKT5>h`5Q8Ic=HdwygME0q>y;$6A@?x-C<_fup8DJ{vB zzwG(qR1j5kPz?eZQ6k|!M9#zPPm!l&x%c|49iC#mLI#R4(zC3aNH56qu6|pw?^;lBdJCQOr z{p=+AZ@UMb_p5u+mV&m*A9O_nJ!lBs`>M(6L1Vo~TvAp(u8ac%4tU`5nV>Fs=JG&3 z08fqY{-Yxu5^lr$pp$_|UBAjKjm zN!BDOE;(3mutZWUYf6GdEjmTh>_t%AQqP59vu3CEO@mXr)4EyOGNPrWj9(1naSR^2 zef!0am-2rz602{Omf)$PRk5~iYd7MUl|LuU#DGu6R#sM{HC`P7<}!B8fNJBVq=w+%K73Me&<734gPI32j(!oXWxSO#3f3)6<&CA3n3S@ z(@fa8?beq)^5rW4H&&B4g~Yz++xMvpoEMi%DsW>weT3K}s}*2-8-GqnC_oWkK^i~$ zWAOKmsnf`^6Ry5K_<5z(OsFC_5UdEX>Gf#V28ju$$9jtPQ7j@(ldzlSGo29@%@0n> z+hV@w3Z~VJ67Hq}^YezQS+zsZ>2fcaF?wgxN)(Y^=`V|Fe zW_A1V;pT5qCds8^uRM-#_ITcT&W4TOyCCS;9)Ys%1#|pJ2#DNV`E?05JGGZ`V(KO4QcNdwk5qL={p{=zf zx(usm%*6HNn59$ zvJ9Ky&C3IhW?4>u7kGo*(-7RrP=vy zL1zlt@-0o;ER=9#Vk4@(Ro}O`))BRI6!*hsQ~%@qCWX4rk#A#J{<3;kw6xAOwbGyM ztx543{pLY<7&^9}5IX;MmScavxlVvqLE&z+1{D!o-h3838+)%lH#aAvSiko;OA5w{ z8myUtSrrQRl~{*s+8o`hFRd&stdQFx&+fqDR)UphdbQEP@0&9m$7^Aho}gu?q7Z@i zHb<-RxSH{eTpl(jyV(8@=(@35reZ_cIc!FHh(&VN^Vz zkZ?wOlDn-n5L><^3nP@$unUrYPWi#c2W6gIM|Yq=uvovq>-HtP7I`v6W_fHw7ZMwj z9Ao~~5-ly0f}i{Q4Nu*RXxM8Nf%I0>Dw@mw>KCM`rZ^^abP3v8VTsFpWudy0sdIy% zhMcXw(EByzfE3d|1BpKzl~Ho6TLGF|_S{-mBIvm!RwHMUXhzE_Bny8h)|_6&x}BgV zw+6JeiY(Ob-FdluH#gK^$dP+7E{aiTx6fcNGHAbE*>>+l8F%b_aUrPHXlpnep+rZ? zMcpC`_4V&v!qr+-N^HL0D^`4f$=c&rw0m;;I1h~<=y9JLT})r ztGX#A@qTKe$-!4kMjAXiO^jR~D{Ch0TRRE_4D>mqF&uxJ5+ z4*m4I&A6X8y-VKoB%z;_!ELVJekV}QsA`HMH^kBi^j7{fL#!#XXcN`??=v>)^9VY9 z*zG8@&FHktW=6@f*I2`oWxq;tY~?9qFzUvs9W;^qW~y&s0+ zE^Qxet|y!x`eJjcI#jn^pYox`CS3T>?cKC7Y%iPsX5+NsG7P?q_zGtVWrUpmt|dwN z=AGr?+1dine9l`wZJMZ*7g9LNLut~1cRwD{uu^TfhF?=uid}pI@4~$@GY>;$9#32T z>}C=D9!+kx!(+wmHh&4%<#6VQSe3?~8PO`IwzD?y$IXIrd~R-enU#Hv8-41K;vwy7uk&Pk4b9wvX}07Ls{t#|wAtZl|4_L1?Am4< zA1+*iT2MEo2SJ_LIf621*$~PzC!q13axUS!r!oFAX3B`~ferTdJa~4VBQR2|uAll4 zGy+$9ckj+`LO*#!{u5rOOc_htO)gAbCy)r%r7k2nnIB#`647YWU6qxUhC|W`D=)j0 zEh)7$RXOyR*3SGwYYVJZ!H^+tB`B+0`xeawf@HdUmMo)(l(iq2lU~JEnlK24xtw^_ z%iSDEe^zJ@ME*AY!h8;?#?&v84TlCvCRk80O1H^*D2#~MuDLyaRlmGJQYEQYjX`1b za+}?g?16Y!jVd-2tSo!yq0=Wjtxg!awLaaC>jpS?+$*&j>XKdv#k;Oe{`qGoPyZ>c z@xO9%jZEB9x!Ijom|6(+?6SEGx;D0^G6Wj>-p@mS0FZsDd+&YKI++fts)X4SmEjOg zFU#^C33B6Ja-W0pVeZS-^)E4XzsQwP`HGjR=uW@f&lrERu;&^24$YBK7J`?$DpMXn z`>)TVc|3$en25;3AFD6Z>S@ibV3qb?L%F09m=frBi6sUfE#L|GaE%N+`stM~Rr(d9 zt)!Kj1_T~vucIn0tFgFr{U@eKNv{HQMojmLF>46lP(;ZHs%QfqvKC|a%w3?1YfU>xvx9zpXvWN;*VuN@aS8qM`4QwZ>PFh4gd?c;fK4Ah@yy4|q24ARrvB)S*Egx1-``*;q&b~G@(`Fxfo$lx| zem_k;yquy(tI^Bwdam)vaYTCmKXG30$pwiZ;&kqed*i1NZOV;`d3smx)Pauyq? za||!z!$e}zZ?F>rqW)Vi9P0Hf-Ou zO`R=bYI)>}_43z#0(Y-pxATccy%A3O!$nF5|K$pH4HPd>5G?KO6&}b!{pO6bx1t>l zS!PUBS(yXr&+>V<-aLON^Tgfu3j*fu;zbFvWr^;)4F5f}_4k8YfIiK&XZNzIKB2lE z{qnBVh?8G09gTrTI7BTjJhaGAMEeI*~KyLu}cMi<2&)c1=2lsp39XZyC`fsF0Pb{7juPEzLKfHr`N@6JM@?|_2hIz||Pg0XBx<^PDIzR-isrRE%0HNm8 zM^++u0D{R8_T(N438v3^g46T@$|8yRZdGXTTn_) zvG8)JCMt(#nL=_`a{t+O`p&SJ78>UCpjHK5!7bMt%?1;v>2E>5z0*GXbU?J~iQ^N! zPZ#Y_`nf2j)v5rSh{?OkHh-@z>HG&HgGICP!DS6bUBtXKg^>j)DDfb`C6ih7>p6 zL{M_aBo4w#ftpyrN1!L4RIMu)Ga%ez^3Zlw_|+heVgarZDB+;k6doF-WS8zbIEiUd zo-%R~7Y;l3=wX<6#0On?xE2e>*tR&D#i*Wor6Jn`t-QA*SD-gVTu%* zOvDdh64-yNqN3}KBoQSo5UW()rxt57@{6&3;xxZwTLPh7{FKV8zAyFQ#DuTwpRI_6 zTC6adgcJ#*>$bdZ?Jq&U^1H}S@qRO}<}l}(sD~M15x14w5M2-%&<#WiqPY#+O7ydt z{U=s@-3(r?l__YUfJ;JpFe(;~ra%Ur>1*fLGC3u{Ob|hg%0~&0kkEtEorfr?0EX@H zhqSbitAC=eO8L5nTbjyB-D-|K-YE(eyR+i-YDU84wp(;H*OX<#iw8uRKH(}jBm^QE zKxB}J3xbNmd_E2xQqdyHB1(yvc%tD4DRu_99JMIOO^t_q792U8m!6WO&^>f0tMbJX zP?EBgvG~*hsi;m%D#coam`+KQNiKQ&R-|6?Pg7ABkGLoHWCnO*dD7D+J+9w+Y_d7m zBBqc)5u)S?4nz$}9O^R2s;FnY+d7nCxnY3~2BH1`hxVD7%^KLEhMfLct9^%gah*g`)h#3xT%i2LlU6gqr(_&>O4Hj`{dYJ2Tb%gf?5S&qpT zr$ed)8mST`NR;H5y|P$jaY&#>h=C(9EO3Rg$S8Z{vWu$>9WF?l;|A0t^Fpw*xfRMv!C>hw@Wm9Vs046!)dDTxH)~?8LGnC76NG%%$ zqfAbxi^Y0E^7U1pq+u9=SCD(2aG}8+?N}o8Kz5(+CIRP*+veQ`(`^T4)QFXr=;H zGI}Th)0BMDqRe;IUMow%&r#FFU3xHbgvPTtq9`Tv9R&PLef>N|ssVSQskO?P-g7p~ zCP68+rc(M)Q)A_{PG0t4uk``s=9Ky|tHj?!fYT&uyr%rH2Oug$86&l;xQbg%1sU$h z((YsLY{=2FbrpL6OANW^RGADzoFi2Ao-%5GAY(ZK3+XjQ*)r_%_0uA87vTg4I&Pv$ zoo6EjC|)u+L-Od-3K^M5dE#Df0?|i}8RpUlfSMeYDo)~Pn%b!ioPy+FA=Igdonyr> zddn5~@*@l?7Ly%D*}m?zrvP$*^Z7LsK`I4|IOrYw z%mma?KlxW&tQ{4jgu_m2`QKu8p+*0;IPm|AA2Tp~0zx8U5>hyV42eQxu;dh!RMa%I zqUh)u7@3$^M2itCPW;COo}7PvyA-L?q<`J@XH1rCIdbK3$mitZ=Hca2z^_n|VgV&e zl_^&tD5O%AYBg%rsn?)UlV&Yig|!7{4o_O_Q@4`G|9p`Gi!9+IAN#~@pQX$StE{ok z2AgcL%?`VG)8X{kFCnoNzFO_9xoKwAS?i6?bc^0(v$pf-24xvVl^VTf^vTf{#*Uqy z2?|4BK6K@y51!RkerYBzsY>|D@!>0@POF>sV*j)k?p}&|v)%}_ZsiD^4F!exS-wI4 z&a1bt3V0_?49+3t+y79NTY0JW^O%c+a~}T5DG&LNQM9%p;XJ@uIIA854zN}e-)`N9 z^KD&^4pNLb!qCDvSBysY87J7A0?M0fJ8nOQ(}aI$%AE_+Opl<`rO1C$>3SRP;Zm{g G0ssIWW81cE+qS*2ooqJA$@`t}$2ry4J>7Rrb@xp5kLj8& z4+U{?01)6u__G1<|J63d|Cj&Q{{KZmg@G9WV3GaNs{FuEOeSW)#Lmd^N0uC zTO6m;#NCw;0N{!L;oLva1~$d;Gk3JG0{~cg0RZrB0017=nEunp!pP;PFMsln4dnj< z(Zbft8~^|k1ppX^001Q)?SV2@OEV)=0DzhC$ATK*`1=B54N1V11JqXfdT zv~%_Rv9tW)gFj=yqUs|6Y#mH~?3gHjIQW0yxF8&p{$vhmv&I<$h#_ASemq4~1pc;yo9=Rw9hsSZ^ucI`aM(n4PH;fzKo zE3$_WRb~Ux3~iu?mRtYjsOC9pug1EO_=y{H>xU88h9A`HuaQ2Iq` zCLCr6`B$SW(k0qf276D6_OuESlvBMFQ^W-heJ8jze=}SSvw3oh8)cKm<}%l^A5RgO z;J#6FFm4d>&FB30YjISr-mga^*K0X+YRrpt&3?7$JpZbi`Kl93Pyp`pR<8@mS<)UB zD>@Ds#&Ai7(WZwWFWhEa5$|$(#!@j%=NS2X4+=#@bJGN|Feb)IIJc5gPGByOR4GIGwO$%SR? zv!YZRx__@ryQt(sk&5=7T#wQG&&GjJ|^QuDjsxl5c zp1#64eS(nGn`18v;W}ULUer-zU=nC*akV6$+q-ec>ZCKE~~=2+}rty}YRSL|+WG7X;Z)->M8 zdORJGJHNd^ATm1kKi5YO>=o$_Q78`NCixC-(9CrB&@h+AT$oS=sepK^hQ3xTfMB@l zo-qWDKRLBSEqsJCIVKjhBHvLQ?*b?xDv>l0EGtWo0T8OXhup3Dh~*zYtO$K8<>S1L zsWK205-49p?|%RTeWII3i&tty)ff5e)dYhL9%Er?EG6ZA$Y}#+jb3p7(R#BwN7?q2 z_ozjw zx$nlX4&g`O!{;$#Eda+4~fpP8KDn$&}5hsCFJp| zriyzcHP&g4x!`ZLYXQ5!hc}IQ;c&o=O>Zkuy=v z9WqI_I)LyQ@UD)~hEpS+Gy_#KOS{~{b~^>XVfXfGQ!P@oXsMoAQ-?+j3a~U*SB}W3 zFK%M2qM)lM)=7BYXdGt{PsP(;k>MrL--DUR&6t^tEr=i{&FD?Qu`Gw8GN$gl6-S;3 zC5+5G7~iNqeqVEkSFf$)UB5m~@|Kr#hT)K|u&3>%>V7x|J>L5*nHWRNam7*he7>bh@ zqq}GuNEtJTqc#L<8(bX}7>qbLd+ZR-nzV=->UsNZMmlP;f(YmxR`gHc^AC5=-SgtL zP}$*()5n7}u zDw*eM?a2|*#`dF3v%PkSd0w$~>PWGX%^Aq=s1=?WL}Z6#*TYH5bJsa~fA}{`b=4jL zo8<9(M!9e1Pfy@PmRje-X#POi`4{dA-_;Di-rRoB8eW&OTN8LU(Wp}G$Wl?Y>k@T> z(qSML!TIARX2uE-7Q*gZ@CRBlT+nZ3*QEv`voThDIunHf^M-Q<&Wsdy^z=%vw-Mn= zCJK;!-;m!o_IdFro~E(wP+nvA*Dl-1dnN92wBSr-OJ)W3h^{dQCgdCTn$TUA2ouU3?g&YGEShc`P3&A*$lJ zAG$as`F(U)+|VmXQS#CE=We#f#e=m`2MB0+I=m1K?`X8S0ONgA>7XV}5No?`>13To zPvK$PZ05;5k*fO$Zbt!QrzbLYgxV%2t?4_?+GpAs*s19q6QF0X<;s=L;%ucSZSQ`1 z$!Lcj#+QsYgRCwucg?mniSnCH%_Km02pP}#pU`X#ATi7czyV7x{KcDa%d#%WvlWFt zW6kLxAp;3cTAO`d-fm@h6ScT%iv9=o#4rF;ig=)LxcL_iJni=(d(u^xD>YBjRB$ah zkq&hFGeuXfI)*#bB?H^2iRoDoibmPx2d}W@{6Y}~j@}6dh(v@UI4%>%MW?|rpN{@!_M z)BbY9C`nKo2yGF~M2Q4$<-LAO1nlyC zK{qI)8=PWzPgjc(%xzx&`R&Xjf%HDV;m5~DB`>~^-s4cY&SkL0!&5WhUU`TI-3Pqc zfGStX$^G9~*tA^Gu#E5&WTgXZrc|3$tK#1}`p7zA!DiVhGI0B1ZVa7SL-3;Q=-Vz- zCaN~b&qJLVQe{%~r$?vcUYNGalQG#tT2eKmiqd1mVHaT#a4{1-^0aaUiE%E@)xhHK z`*8>u5zDtO!;_?aU7_8pbGCZEf}hJ~Z^t$_pZ)=rz!GdZqc@vGp={9sg5$f~g4+|i zkJcOToQI7~v&M!{lpI<(m&?_}ty^LUw%AK}hFEw?g&i;+Gb?J>WFfcG*QOQ7;7-^O zj}S5Z>sj;l2s+SnH;FweG^28-?v6ozwq4tAx}~Ke#9hyW2OXc|T%3GqRQQ$VjY`BK z%?H|6aXK`ys>&azX3H>(CR=n^@$iSX%z9h$NljB5J1`KtD8X}@dCgc`cyWy#iY?8u zkMaS9T3qP}|CF>UPNw^nTkkrUaZ1Z$4oZE@U@TV#fY9 zaUkOxRUd`E<(j$AjrZQmR$0xksx_S{THO`DTEo0wEItLg zuQV%DyG52lGLax{-f^*Fx!}P#@vlG~6r{_;J!gQ768X@xhRd?=5?f`0O4QS46~wal zf|~qgn!*@ikk*z*>7$hHHM=-F^;bI8RtrWLBp8Z=Y20V2kqsHvcGFTIyC|i7Bcayv z6ryi&GN8_qlO%X|q=uN2WTG#o6euW8gx2&^-XV4PJy8XPD<`8ne{euw2Umi5OeP(R z6Bue}dIXbcF`3*imsl%<<3QAWeacFnYrcVxp*?rDh#{6R(K!hF0QE#_By0JgWwv-7 z*WXWPm1g{^j-3OQsAn!T-W8fNl)~fC-o~b_))Ryeyb&v`GO!?$`diV{%0jeBWy1nZ zh4ylJe87O-E`xS<7S+toM{44fHY2m6(cf8(y*?(4WC`-2BSvOII6L|yrFa4x)APPr|~E6Cqd704kWi<_3$VRzlfO%_d{eznx1<~e?3}{ zvRN^^{FxYYpAxdsR0vD7V13a{h{$_WZg0vSt)wb@IBrgkXIAunQ;HdRN`Xifhi8o< zfgn)!z4BX|z{ztcNQ^9ZID^vzy|$CE*H=j}y~4z^_$H3ANkIa9h2Hm=8Rb~D*vJGC zp2X;RFnHY8%+yzFmy!}bYxhL?`xYD8j$QxhT?gZc_DQH2F){npPCADokm9a&y%P)% zKha9|<0v5{o>_u~hR09Vr8pPz)*q(N80saRZ9Av|oCmwMB}>+A8EK2NT1a6Z3u=s? z!axG8kkZhQaN%u2;)6)FdO{B-a^QQzBL2e#%k-KUk`;MAz;LnkNRRCsYws_vC%iIQ z@3m`T$Admp+a5WeVf{xNZQjW^htwy-U7>kETe?!Pg&+1WedP{)RsH%dgD?`f(6|`$ zZZYk$nbm@;g{h`jqNP>ATB_4zYZ97HP8EGY7U_1QL#9C+Jbc4BZ?9iMtXjHt$}2ED zc|x~=we!UI`NW-_t+$-;Pmu?(^2NyZ@@QNPt>GJHeeMOUL<&;qvwwem??7Sl1La5w z|KKC7)E-Zh_z+?e_%vwZtvL?;V1m%t54M)8Px57Y!{<9W)n;X#($eZ^tNs)f?9?)lRD+z|Jy z{nmbC{?|YJTwt)t+xN3>1s}rCK%#cSO2lpA;o^eX3FI8EP9icK=vg~Gc-VE(nbv?? z0tiVoTzZi?DYT`XJ0=6;bm(e=Eq5>9iQcjvR5S;o(Sq+wxo5<<=4iIDY0L+z zG%lAcz+Jwk8gE6B9NJmg$&@UpKwadW3_4g7TclK>x4}%7PBspSCu2rD(khmkrS2P) z(Mz|t)cgVWP-|r!c@2m7D&n}Vur}v!qcZl1l81Qh@GesfBwQyF6E+tv2j7KgeJ?}3 z*;-gp8)vD^s=L#{2H;kgCJxV$?<#nX8Fh$;&P>}1zIlLLc4jiaY<;5VBWypntKpob z$eoSnm#f?N6d*ozoYJ-$L`JvM#l6PW{~ukcK_b?tLg&jY;K^AlC$I-ynySgGdxZrO zRGx+6E-80h1^D=&?tyI^an)r0-?ARe5vYn%u{2QzEv2d`YK~ap_Mr$rySyhyH41zJ zK(f$Ts1%i7dIM-R!}f{+Io+0nX=7B9VGK9vR{l=3Maa4f$5eir?E|KSU8Mk9Wf}e< zp0K?&NCn1@pe@yxSWO)0L^ztwu0%?gr@4CGy~J*d%n!DiQ}&502Nr|Mwl{#-6ih49 zHHZJvtQS=IuZ8<1HQ96p2#g);#!7RvqR)$WUV(`RpNoxWJ=#R^5O^#wIy-=9H`;*wp1vw=4Z2|b@`5Www2wDljs%R)Lw0PtD1*U~3 zgceyvcCw=7Tl_480RJ%Is>$A{O)1;k{xf0_?kW<+C!M3a`j+O!5DfCky7rgL89cg< zNwf{>kUo5ie%G(_Sel^gTp{ja?G9F-h3ys^Hnx=Y=WM+Qs`5*dqDvG|E7lx2QfxM{ zAcJm#G=(Zsk8hFam6?#mx5L`Sc^L-h{1sQtLxavStKK zUQ7@ey*xPn@WJ9Hx0YnPvSO#b&;CN5 z(JbzTnTPFszlSO!G$XM(MvW{?uSAAGfM3Cgs`Lh%f(-bIeIMqP7)D*{ zMk{jf=+nV3YyMV(zJBU>XhJhN%?WpRNg&J$4&InNvpsalI)BK)bN{y$ss7RIJggZ&la_J1DLdJMuMhyFQ?PR_Zhv7jLDGj`9}mmp6}nE5`KERe>@(HyGg&1It87xk(TJi+!p3J2rYM9w#GD42Gx}z4Zj6JbOiqO*Nm_{MwGL%XPNHRF zg-&T4z61nf5EtgxoXbw5sICfAXVSrt2hL$ln|nVCzV(ToT&wa->u{sVc*APjE;Zj1 z>%J-S0`8uvfTr0u9;jgJZMtZ92kNk2w@3b`A=Id9J2|?H5U;>;`|lX%5|lu`*72%T zb~&QkGp33=N}GIlNQf7jWK`6MD{-67Lu^`TgPJOMGY&p%{jvOA*2ga`_8yO;2GYRF zPffze0~!@wKm4#|SIzX{YF)MgxxS!QNX|`M*Y`XmJ3n8@aib0UqZV^5J_QS^~BZUDEpzj z>=QE~&sx1u`jvqp8cAQ=F3K9^xUPF@u$wLYV*X)m7v6gsyV!ca$Ii-DgUdt#jypSky0n7B<6Gm{eEqJiI+8Ps%8>FlI0{u7m|Q$d)EDAESqan*-4KX> z`Fj`q-vM2DNZ{zdAWmH7D3dxyZqOfm17fGw=)Q=<=IN9ag!81XrPsNpJ!Tg8h-XZx zl&_|W=-URc-q<{8aQcAz3_M!U#JQHI_+8+~`jb_?xss;}Wj(gk5LCsKAfEb*@=0|*^SKPEJ7pVheSC- z_ehOD=)&JZHT3)?TC(UBimB^2l;JY6IvbU!8=l$OA~_+0Q%dp&_p>m& zi)O_5Wgzx{LlE%y_}1U;9Qh76oN(emr}zpM9rwT$gj zMzcqw)w!U~)t?0j6jJYLjy9D^4usulRJA|RlNz2tf<|0?atRwYTAGMSW(jstkGSUf z2Zpo6WE6Y8oc#nk%+j@@&l)N3)vwjz_gUmQE|ql)HAb6y2{g2YV~iWiZ9ar0R^K=d zqF{Aft1uTLo8faZzB&88_?v2D$s{Jol(?9g*a-@AURNC)-?dDkDNNx?L4$cQwc%pf zfqs`cyA(lzHO?__eU$VIwp$_HoTTREasHlg%;r*`&#_7S!s6m0>(Nt@|7GxGn+{p* zW*c2#zw4B`IAy%rfvc_L2ASrLR3V3Wj?=~Rk{wR)^|x*M92h3R3IbgnfrA!I$>33e z@#8o{VSL&zW!>+2p)jITjnDSijxBfD?%tZE`@3Ejjb_(|4E4!vuUSdy6KvUJl~H>m zb%(T#P0RYG`_b&*SRy5G3oQ>;-lk_6i98KLhKr1u4MB0{B0?_Zv-F&9-`7F9t_TYL zmXkHU|P%)*KWkcJS z(CdVJN9n~o@!j!rFE3D`wIl3qxh zzQn-OB-$v!s_*XQY&zeq>P;N7c)-t@Ox#O?w(~RdvUnS!|LKyUqM2-YX_=)QhwtBU znk*t!8~?k33Kl=5vNgM|nUcdw2$0%qXl|^P+M-#~xlGK)laIDaX-LS>F5zZ*YP*<**W@4_wD>V%N#hcT=fnQlXlR!y7_P- zXF4ZeRw?sjIc^wq8P5~M0HxbisuW$j-j2#~(`^%G3LOo^`T9kLlq#dt_=Y>;dEQ!M z1ZknbL#(YInRD|@lo{*%PB?waao8RnKtG~`S?8@cHe-ofgXKw`Bp8!mW*+VgMVOjT z0!Sha=U&*fc5f){i@geQ(B)aQ1d1htPAVaYYjkE3D}#geehn_5v@SiRc%opwulF|h zw;L#pk2uDm`NPo1N`Ne=K4ks5JSI5n&aVA+b{k~pt(4w6Z5kNYN(Ar;i+Mp}-}HXy zNs-P=Q<>!-qP)mS)msz00AcA` ze5FYa#+gH4QtOM05$yIZS;q-iIgci`;PN$>r(v1We}@241l~of3sB~q%?kF#Y1Huu zSGT3Kuk}+xhshA)eb$5+i}(LG_(;OzsbxxmJ2oQE$}J45%P>nearWSdsRRhq`}Pk_ zEC{ERZ=lxOtB;+I*GZ%ZBFSx1upxGOQ1N8NS}8u|XX%|buBF}ea9XZEkr091tsRL)Gu|1Kx8v?NR3!*2|AgMS zLurtn&Ft&jf63U}LI)9}R(%%RI~!ZmmLhs^U+ekA`#;(U((yXZ3jSOr*|{`0jSESJ z*>!Er?AW+$q-KObXaxNQY3*WkTNNo8CG#HF@8k4;8-01GFlJpia5Q^^@oZxxqOG@R zE0dwd)}%Fbc{fLDkNIr_7hGrTgy%wajgjNbWun8KH+w*3))eArh!PStBjzhRIo9fq zxg|$ENg%MmF~1hz_e~BS7QC3kOwH^yc3AD^%^b*+U7>e5Paf+ObU5pWmu0w8_m*P0N zeM+VWI8*qQCz{i;AKO#~l?c_H40?GzMa5L4*V)T9I&2LPf)u0-@0Yp-B& zzKGC#bXQ2Mp@EI?^ek}=5BMJP;Lce43F{-0RG<;>TKk>!enCfBL|clMU%9h09;*wO%d$IB5jXxTds81&@Am7p z)(T5hDbLWiJQ3DZxTs}he1T1m{t9a@uD)v8L=|Dpyg?qTCzVa+6>g-oHBl!8PwTnt z!YW#7|KPZEDw=3x>)oDU=_PF;y?$O~=zzcHf`Y=Ncb)7*x54kYhQKWc+>g>KZ?Bh8 zmzp<9fr=gV=ZU!sXMCw7{pZQ;>Qug8ICq++#w@W$j&Z#Y znEybM8YWoaoJKjKuTjeottwP&-CIp-XI@9KT7^Pi+Xfj^tefKxt12rhdw*-ks4_p? zCy+SZtig~|1Pz<+k45Nt1_uFm-#jNq0oBv=e7Ol?RS51h-^dtrHhz}`$=1%8`b1B7 zrcSg+3HsOUoWcs(mZ^6=e&-WrtmUwplx`oR?NFBR6M>MLzZR12(*@g1;ZWDi!x!T? z5Hh(-av~6hGA9zxm2}c3fbz`EV;YWM9`UWpq9f_O2)mPzfd&N22DuKBrKS`(?m~HH zvXCQJ49DoGF>L%Bz`#!%rLXSbf|WzhF_lU;bP~q8!h_atIWaf+ENCWZ)wj^>Y4Cymsm@{ zyHt)|IoXfFBThvJ+0FXd?L>-8cNOTEFj)BF46qyIWB{3hF>x`{MqF)xbQIWqUbNWj zr|6Klk)e1q?^*0^YT4Xfow=#eCy!_`fbE_&PUp5@Vi&fne3#@0U@=B}YbnQk-`IIvU z2opbBNNZ+&yX|k4T$pzedLNnlFj1}1D6!*(r}LReX`N!HfdB6UvHg$MJ3SZ@~2vLnjR9BMO zw20X6OPu3tEF90^p%dH;r;W3Ogza@Mfh6@V`*n{zOGEg(+<0w(ng>9pK(Eg&FQg=n zO6Gshn;~tOn4UbRN6Coy6=0?zkpU0A6!>DJfXnay1>{d8r%dkpbfJ3jzXd!#D;olV#|H5 zh}$rZqMG{;WO;$Z&Z_SjGRYcmwUAm`Iy$8w>Ch71HD97u*JX7SCDaLHdAJ5vF0w<# ziTjTmqsKFd4PUw5En-*d)yg2Lr|4SXszA>iVN1yG0J$^s(X z+F`td2pWoBZ|xSfwd8tp3MdPX2IttY(ooz6*zS64cZs!B+Q^CP1bV37Xk9AbUJHIO zKH$4Cv)>XX4BQ`Y>mUA}=$C4Vvy459dOfvuqvuO;V>Kk7Pi5?BhdyrY(`is?_VP=Y zm6CN8!x0+-gKIxWmwi-YeF!c;N9NRzSE1~cm0OG19X8IwBVxNlUTy@%)|=jJwVmCKbr@SZeL>7JZL zn=0a@&%^EtaW`hFsDF1m>yN%-LXp{!uo;;`!Z+EPYihF8L5JOn1exiQc>84D4veUV zwCwZ^Nvvp)Shx(>=Vt-2igM(){zZb9`~N>m<7u_N}jfz)f^ zS@}Fite$oeM}ynllwFuxtQeA(M)0~i?t=tTsF_c$8rHz9WE!uDs!&~Oq>zAs7$Wc_ zX`H={bpWb{Dm9iu3XsrI{bLR_5Oendu00^q!&faZMkB%M{`5ZfM*n~qrw-*KGbxnt zA(MUq!ME=<)4xgU&uHJ5nOTEM99G*MSEk;jm~e&!5S*6H{RPIKE)^Uf?PM`p;>oIO z_P-9Zk;{afk_Z~5MS4mj35bc=(oczUVXqSK$$uT@@;D+Ohs95kgfxjWOB>J9%tlhp zx|${pWgJz4V>~=FtB+7L)7TJ>W+()p%=7OtuDpVcUOaP>LrF!@*?R~YJ`Mi*4IlME z9N60TmBK!@`CslmE)G3AaMsfYvDXekE*&7G!%xYEX?H{1$6+9i-pN||s;JkoSl_2R z&EW|Fk^7bE=0FQHVh!~wQQAs?3LMoT;Z=XI-#{V#9Uu_0WTP|CQ(3p%rpNl5Ce4*J zdf5|}evl$Kdd5WS8&qT)BK0Y8HmiA2xtg=ZMfl_oSprdeFV0dRWPv)lBP!N3*f#l2 z7R#AZB2~gw0~~6p;5##*zbHKZf~G$XO4mE{Amfu(67h%V@K6x6%Y4XSrgnlSl`KzJ z(}5J#R5Ya95|2UPAt~$C!0!R+ykZ*uudOL2Z>f03cHdmJuOcVe_N?*6UNCY)XW%$!d#O`u=9r4pBWlxw-Z$; zJwyM5u6<<+znJ1S5_f1peS9Ta9ell1Ao=IlQQV{l8yS;EJE|g?f7t&Pgq2rZ)#NG; zdkzPU7dh6MUZ;(6X)Ic~Cq_Lj`p42^>IlG%s?l7=gnZmsnsSICa~pB~y{XnE-)lph z^{Y|njs3kPphhm09!wz2ffnI(iA3<`hAYf+L?RyfNo9uB@4Uu1P~;q3@w!;97IP%QbvXzybB;vdYox%pAcND2Zclxdw>@4f0D2tTr-{S zsQ+CIRYv*GKZ_Zj^(VdmC!7B_zy|>KQv(3NKfnaU{9Fm)VgFP72=f0H5kL?SB~S;j zAn+ClB!~cr3n(}!C#V^yH)t|w7w88V4_Fd76u1HSI0OrX2gDJi6r>AeE#xi~I20>X zIMgGw8T1AW1&lS!HmopgEgU_Z4O|mE3A_{hC4wG85yA(eHR3ChE7BM;9dZH+GD-r< zUsO%hDAY#OO*9lVN;GY>VRSrnQ}j*@7>u9XUQ9*I1k4jGeXJyG1Z+#}QtU4r4V)re zY+QTXemrEnTzoS8T>NhWBLXjiV?umFg`W~YSWS3OL_}mpluI;8bVdwE%tUNV>_J>a zyiFoWl0>pXDot8L#!r?{_Cc;eeof&-@kmKVsZ8lj+56*#|NQiW%#NoA0|ee@00PL_ zf6n=T<@@Oy2bc)B^+yN!Kc4()cy8iNu?VyMwDxa}J`(J-`mXAzE!TQ!%s0W-*Y?a%tYog{DLy7pT7RFifphEt{YV@v>9- z4>+Nm)bPJ|FflYWG~9eK$Rvu4c>PZMc1TAJBrXpC17wSUi~P@h<3qFT{{G4S{^gP8 zu)x3q2w@g}Lq=0mV?kgzSlC-I%-!ygdyqw46--=ARMq4Rv@ab-Q6@VR&&vM(d4e(6 z<(^zBta8!7KqSDzB*Nm)n5xoj#=n(dXY*Wdl=rM{c4F6fmUr}=@*K6C(ro@9;lnS? z0RYd5yH>t2vv~pKUzhde3#7P%AU*+5x})g$hM*|vW5_x4V0ueI(r;;ksK=ddR#HO#hN-+Oj<)5dU&qDu6R-aK1{4rirOm^z` zNAeL5IQWGxTytn{epbcJ$!5b3#v$H* zq*qA@e2Dc~w)_dS(xL=L)wXvHCUQOFwxkTcD+=NwqqE{l*O>pxu2T)EYN#fH-67Rj zuveb5nLh7P2pCF4=e9O6x>TV^n_6J9#M^Dq+`_8CzQM~capf^9l4XxDo)Uol$#CJr zqothQ(p=#`9m-tQgFx8~_}&^ETsGiY8V!HZ#!uzl8}#8@f6r2wHNOI}w@a{&>2`|M za1jDXoyeidB~^BTWSf1^dM#G)BjPxLa<(6b6$7=xJzRj*=?9x*f(A<29@N_xtlukj z8(BoXoZxhiRe3uU5*!td;0r_^5<+e&1%%>(>VX0^L&dp*Ktw^8{}$#Wmi7HLHO7B# z+~-;Wf{M(oDSb{(o}crC*WNE4YGZ!<$Z;ZE7czns6^(5iPNl)DQ;j0B<=1W|&J)N0 zLIcpcW7yLvbuxL#SC8s#?zFG{k~iNao-dA6%ghr50115qUO5=kJi|q;DgFqO8S27OhTN zlE^SQOL6iSQwk|zfW=gz&Yvb2CA?BbQPmiRhI-19b!3NKTMi94iPZu)OAQ`@n)Bfg zIB(r8IdWfYgcqpEz`}#j%|@Z{gmHo85$)jRD>=OVlr0@V5uE-g`Z?EE@7jJixU-a4 zCG=)r&`={K{n}F?r(nZQh(dAik9T(Cz&fgP`YT*S9vE-?4z(oVxx)!A&%1y08Jgf;RVhmByqg=Bv2108`=KarvinNrBb^Z-v4;^9!%H(?d?RNSsn^7JQ>pKZc z2nx4}VMHpw*IW_nRLTea0HpE~=)i;uieM@%IL<8Rt|6P)hxS|aO;a9)Kh>Yyht>j; zU@G)?iK`(2m9#etD4kVRM+s@e01HpmT|!LU89%=|K(4(wi#aptpJCtPkm-}cFFJW~ z8T_BvJ69@FeC5$12=#a=I+w;bm&!9&{Yy8ZHqL{e0-Jrsxj}!q7xHUMGr?torD#&q z0Fhw6yVwtvJJaQ^#CluP+3|*3gVi-^`?Nx=P(2KsRY|g!uI{j%DvKHTJK#-Fq%((W zs9Zh#08Gs60M40a`8=nSY-n(V$c|tX4yqn?DI=D9kQG46kKEcRoStGCt4M!h{&=4<8vv z#aJSNqu^ax$EI zaYi~Rvz;yMFk79_&b5|-lUSn9_`tuA_aFUw2@9Z?VuRFJ@UZ71aMe9@|9x zGoP5!t!pMyN?iP_!dUtkE;k8GWPv0+H;wOh2ONPFi&$|v5knU^RHyf?m_AMD5hlvkZuPAWq_jsW{>CT0 zg|blYDpwbHW_}}-~*wAp_l+xJH+|cv@v=IY{DR^c)AMi(L zT^7~{HjL1g5Ubx2Xwuw>(NHy@Q41>@6C~f3ozzLc6nIohk)0q23I-)#tx+)nGa&G6 zzurLUX?tg92Z3)@@6z8tuHL;in01LUCs?Ybs1rLfLt9lJ%u5zqRa<1)N)A~Dn}t=3 zds9ul*2$)Or=NDQLa7P6#KqK8H=-_iA?uo&VUZ^=iFJieQ_4)S`r#Am4gFs^g>^MJ zC##x*)&<*Kw~t!#AG^E?HZOIZrzUp0ZFd9mK4l#5idU1b9yh1)7f03-CugufNL-x! zEw#YW+FMEeno)nEL;XAx76`UM@oK1>F~_!wd7osKC6Da-R@t87+Pt|Mw#~^txERRe zsDYX+y}3@RZT!G_SzI^Qz;cQdOFo{(-Z3I{T(*4+oIoZ6g}ZRI?ZiVOJ?gh#bPd?3 ztqt8-Zs2-zl^JY}uR|WrVZiL~2K<@6jGNM2@W{~O#Xg#pdC#9alA0rQI+?Gmu;}Q; zSo=|eqpfd|i{U2vo?p?d&|63#5fh8kS04kv0%jVK{%Uj)c%a-gT z@4;9-ku@F*YQM1LoLUDGN{Y$~ON+}3OpMG7O^wYBZcW!?NUm+$eN69l`?X&rj`w9) zWsdiCP^PZ?WmM<3`*lDf&*w#KNn_9Fbx5J_-^-Z6_rJALy)b#b&gZk0vb_Kyk}E$%rmP@UWH#*azT!5^S^@#OiXi?5ka z|E44zI)d}BoP6MNo}Y4GAxWpchx4OnF5Y$iME~`dOVVw_cu3%`rArslACaWH-;Sek z*F6uNIr_2p;F|PpN!s`Fv!|C%Esah;D@g}_4t@2r=uo>@67Ty0&O6SYzx-hQco@wC zpOPdNxaZ!JOO1al{-q@Ce+=i^`K1RhvXRicaDEnp@)wrQpFaK7M>k2*>AjMqy!Yb0 zmo9&>U~HG9bAX@y>c#s{Up)PB{yM;mG1Ai#m#R2^irc_em!w*>7A@DJ#p*Ads#dvu z{qL&mD#m;k_io}BK$VnaT#JW&oL76T;d;$+;<~PB?WJ-#<~Vj-E4G(LhU=d#q}(=D z)1v(mO{*u`@~LE7foH0D)>eH>Gi2!D=JMb1Tr!n!OQ!P@-taKn#r_k&SF)r|ydh`% z=?$^rdKC}F3v@iVTq>1IjTd%3oa<@RHQ6xYF~g8G{pu~}d@7zv+rbmZlDc8&$zw~Q zTh8hI9l-E!_(|!!^a$Snz`X}kczh+P~Vi|Zf>a|+EfuE}D#x*LwSfUe@o}?a zD&gT8HGOt4&co@9mPi%bS+uvpbgsz?X9;bfpXokX42aZ*Z?s1>m$jiIO241fe7bBf zS$;j^Ea0Sc-qty<#$ti+d3Al08_9U6HB8|u*HleO8l1Du^BP8{&*JtQP5t+{cq0Bl zipEzy$Ue`Xm3B%;q!W_wL&tC5y=yunS9@7YIvQn2i|x9Opq8e4RBA7mM{uE38U{H* zH^+6ob0RwtU67ydv1|CN4Hro&?6~XH+~HCg%&0c%?DLtFlL;x&A&vQt_B!>-X4y3C zoX-4KtT9=0a$&b7`;(c$`XM>U^KG)3i5aH+aKZQ|mKZSfy5sxR!7|h18`ytO=dx}* zsu%qHj@xB>TdA_8)*WQ&cAw#7GMpQ++wO03B6dS(pW|xK-Q9Pf&U6-1vuVv@hOdy0 z-JUxCUZvd%M*32LPZp}d#YKNkQl;X`uS3?Jg{nUWMkg5v7 zZ&aaOM4^`KH%i5lhi?PoD3h8s>JlW<(-2A5pc-_#{+{7-so1V-L?lqBSngncIc;}# z=8Qnj?mVtA&O>4RMnX1Y%;COx7>(t>mCg5;J7gnccXj0TKqlUGSBNo9=Umqr3-ZB% zT_)pBdCS07pX_#BHn<#X@AJ{$-1R%{kjfSQ2{lFy_4=e{y>@83$?Veh{;dHXFKzD% zv6R_mrdU*hyku6s&;Ay+WxI4#ItzI@eaCIPM>*sL+E3UB1E515NC+CkW#|knOoJ{7 z?b0DZgdeCvv>QcdedN4r1J5f7{Nh?Jx-`1gk<@k+b@6Pw0 zTsTDUnU#*RPjN%KfcG>cq8Ax$Js#KMHrWm`F)dZnAOgHbng_i5d9fV>;!fO#Y!NJE z#fR&|Bk&3Bo?~j!n#Q6@LW}#W7%*HK9x08~zn^zG)QeY!6rUDJgq0;W6i9|y*o~M* zV5lh5MK>IAZW<*o$}b!Rs}ss*jcCv>%Pa|eT??*qgr&5Q8Hii1qGcV}ZGSLoWV7K| z{MNyakB#sb9ULMmm85;_uXs#q1C=b|eJ9bNJVF8>yx)khF!q}Av2H7B2ie}en(JzN z_p+cJwQ!P1;N6orSjYhQ3WlEjjIv`k3lZs9A!3jD^`3*dfF* z+B2G`6O96lL}4t;7IV4fce2E=>8lF4`g; zRm!)OI_c@-u-fF;Vz|R3336Y=1|N^a;U%~0J||>zw*0K&KVXLxL*-A0Y&#?y>h;}W zo8pb0m49J>$C|wgZgf9g>|@qc3z0;^b0r;2Cge0EkokweG%@HdeX)-u+sS z*66=|{;|ePN6)yaj%}W*g@SxvhWQ7Mzw4o=p}y2u`X$rzVG z;Qw*NTV-IA3IUrK=uURE?nO9&!i^F%Q1wEK_i(wo_IfL%h2kM)vg8jcmf|z&Bbwzb z|DkJXBXuS#-R!--V91Ve9^PXsoO3mL{aTkgNJ9O{; z-s`~y@m9~h*J|kX>>3PCVb!hyPS64tT_-&~m&nf5I?D3SOSZ2gHZuCi=`+@#sdKJ{ zmR}zIs=cTQys8|%5@{zVnhfo1BUe1{s;)Q}ZXwO_aD zy=}#@xqdZjB{HB_1zzf_fOj9@g~1f`8WBdL<)+CE5z&ZXo}KV)0i8SKeLda@@6`|i zjj(6rlwd~*i=T3{%AqOE;E4wY<2*3t@6m=J7Qu%O9=UAttYhcRjzdQ~%-I38yQs!Y zHB=ahk4H0;jV%1Q*2X@PPYsV6jHx^F`G7T3F%oLmsAeUM*<&-K0nJ4`Q_;R340ou-(W!gE&W){5pF25)ZNe##*_#sg&ylVf!5d_0<)J>*_{DqSU9mz`fMJX$!x z1o=%>zMW}7HJS3WCDqUL@bcSaqi)Ez%PRPkG5?v>hd)~*Z#4`(`V#!$PVi+z27E!> z)S@&9>p3oplp3{hUawYbH4&5}LCE-tlt#$UO7C{Px!k1agkuX7Gqw+&nWju-TM{d@9#{ z$~*px5>mkzuE?5dD8T9isvVA>o(^d{&K%DU<}!}uS9nCRLH)j#q}8M?p#H>g@2X`W z86kwA5T5LlhUm73$C}w73tA>#)m?-*!au{iwZyOV?B=Z-c4iU*r9;b_;duW}%Vhpd zyR1l~s}|syw!TKHEvlcqbNesU_Q;9MkO{Nk7Nd^c$!B`U>xm2tmejDOXsUmAy+c)u zZtm-wKi1#VUk`H2?Hp+%K_~d%lQ?RAp zD3Ze5U=)~A5L!gY0Rhajw9oWtsmoo)w@ge+6u*ivv|z!ak7-~;b{ zAjp|-rp76#40QLi+4&P&cOKdK;MgwJKR+nugSj^(TYSSq8ca zh&{{dS#v^9&>Nk?<9X((Ap;37q66YWWDqr%*kj`-dPg(W083;ypV~jVi%0hijAjaZ z%bBd3$Y}n~YWp^;TIedJc9>>&%ue^rgbl_6Odd+6t226XXk&Kk`0i(I=M_8qB8YZ- z-E7YBh5eb43yc*)r9EwSyxTC#xsV+;H<51?zL`A*-|PaHcnA|u*xPmfIl8XB=BrnI zHaq7z?b7n|Yu=knPa*2qC!SfvGu_Awo*5&R@#rC_(+W9n!~%^*XSQ4(E2sUTkS|n- z>dK8beaJuFR-PEx-6)5`DW4uKgk&Zn5~;zy!23k36Q(Gm(^KIN5l(do^GV{bst)^t z6VwcC`PURb%*_GSFhWj%FMo;k1dfK|viwEGpYzLKl$Cfm6yU%8kpNMuBz=PY75f#* zKpbIQ3z?cnDKF|Nxk7AVp7DxOmc1^QTE3LZW)sRM|9dLOUXem9WSZ|XQ%RGB<4GU1 zbgTt$0$S=PEo~t7Zqz$FJ>s~IA|_pmt{n>^?qprdf9#JToujcsN+6&t|C**Z;yFLS z^M@lb0y>ZhC|{Iiz&Z(ne3qY+dZ2mmDt*=(S3RF8)V&pAw@gDF0tlfb!`EIS0T3ys z_R{2qefQV9%f8s27-vSrbwZ}0La&)U< z*E<7gM~MZ8w}su1de`IZLNTrSLPn~sm{t-ByxSv9KXiKKfr+l&BZaO#5BuV(^|N;z zd~KMw`?wwt28IJN^MCNbZSy{^1ZTT@apZoI6vQy>9}w?tgr_vFZP_%e0jo|gcTl8h z3)wg1Sjy!hjDS|Fg4TjBEsulwOr88a<-Tyi!sJQDT%5?E$Ezct1N&q$YAJhmJ6!X} z!n*!*$Q8)kAMUUTGd*+V5n$+hg|=%20mC&x6N%a!}TDOv&FUe zhJ9LAeM-clxIpG+U#`&JJ#VSL+Zx$a?*>S6oIk_3Su5oFm*3enuCmWCjPwnXRq2AQ z{{~{wVQ8sNTB?c}ln_6c;HJQaI3o-h`KMLO4zu2}a+=1H_q_I}ZjTs~HJ=J83pp@} zN+g~%%vf7vq;K2C!KuCtaVKFZm;Il3=#k$D@RFvRmM^9rJ*Eb9Q}?G!8~e7r{J#0I z>3%C1c6QzkIfJif-vkdbQWxZ`qY&|8N0P4^^2#E75tR3&3v`bOB`HR00KDWx^jJJ@ z84-uQ@)hRH!2FiM&A#(H$F$nu@W{kArsooV8MN~!kkey4Jazk(*WWe~;;gdpIv-me zVWEeKLNP$`FMxug^%*g{7+wni@nRBML7URZ2v{pfLQ=if-|Aiyce+p@8@Pr=%z;v8 zN?n8Q?;{N12oXU!oqzSER>IOKMDcpemwq2DtwVHSHnPpp{F<9cxLTBN1PVc2eGuUa zH}qgz`)@>COUBt7M33o4KHbxcrc8a0VQOMzBSDR@7c*D~IQ}hg+y)#s{CjcCaoAQ} zq%GD^a|pF;scR_lhwD-M`a`#%_Rzdf)6C%S5lV?vD)C|{{m!i@eNrpkfBcO+AtJ%dQ(m|8#K+}`<)1~bRpXfX3CfDsEv=+4qY^P zrxK2=DuAI|h1?kPzwywXS0{b7{sIF0U@4#nlko_DDrCTa3T=2EJh~k`f=s^95_x(- zTo58j!g#|#)o%2Q`4uTOF-wqz*hRuC%rW(oVNy*aX4^3%8dnb<0CzB5LdVDPbdyZg z`_{TdkBlC1lOAu4K@X6KMHS4zAZJFhP3Oe0u!fFjp26c3N?xvYEsvl}3xl7lcYWqF zt39NLTOp(W4fuBfe^}=={MVa;T23YGi?9H~Y-#$PL7$~xKpJ$O@xQxpmk9A!raT zvY8GEQXTqV{#{3r0} z@4vSm>>nTK(IUxg)-^++ZgcR-&(b{A0wul+O6&zZu#rTGTWz9<(`dOU9-rbKlQCTt zqERfuKecg~D1aygpxzkZnEbUYeYYDWyBX7?F59`oju=*)EgX)9ENy-Z0S^Yx%@=!i zTQN22yeeo0W9<`}dYTNaz0Rg)4HifNjr(_Xu=_5mp*V=z!fat-YS$ZJas7#m30~V_ zdE&y*eEVfs;;aGuuwu#n8u$^tGo-;@E~~{@LbVk+kf38;PHt7Cbz7o9VP-`=cNe7u zik)AkIa~*sL8Ng0;NJ0GP1R*tH}lD4-qdBT^Cd140?Q*ky&4Tu0~(n~K&a?O-azc} zX&ntU0NC)$CBSwFu=QvJTZ_7sX(E!kRS!VuR7(UQj9xt8c`TR|xKT)puEB%hN266J zVuo-dZq#UKZ)d6#0iI;h^0)=DAZU!GVqFI*bMT>cA~%UhUJ7}pBUY7P~e+=_oZ)m9;FtIIvOBIdRf6`kok9on)b z)!(1k@|rD)epU^{fDQux#@(fN1YEgy0wiH6C1Ve2D{-=lN1~2)5Dvh zp-s1$?5)tzjLCkrX9DY5-$W2O0eDAO9uTx^NBn>+QxR!vTIqptfpnL}-+t~{C_zmU zbu6=$hdr|e$#KXhPht!dxm;@3L$FlT>(tmMgPU}nXR_7Ji3vLxNM-KnXXU(AamE8pinaAU7@C$KwoU@QjgZk+`P>;xi0 zk#*fB=)E7v2$m_J#z@2H^0AMuDhbE@_;>Kaf*p=^pwNTzrQb)s^j_&U*oDa?*#+V8 zz(m2uRqndLoopd-olKrLi9nlp?ETPkm}eib!XeD07a!xU$MiS$B)YpILFLuT*v_5x zfdhm7a8T2dI;{s_9mv!Zx0f3}9x-F#JzI>%tbF^l9z8j(Fhel|2BspiW+oGc`Q9_J z+^HOLqd6A3ZR5e=wu0WS@woaV3KC3H_XT5nOKpZf;e`A?D=Np1ZQgR+WF@RSSej3X zsr$Q1h+RzbP$_8WKS3tO$RehId0kj-FADI?98%gpcA5|shLOUrSDV4P3tVsIBAF4= zG$&i?9!h*+eYkwVi;lkLN3_aT3d%H--JnBdwTNmDtL4NNxmB&I3vj zC$QBBfHY7L9GpUYvO1GmixBL%4V5GjrU-`qYYjq+{ctse(YDmv^4sp$8BIYPc5Fd} z2X2Ca^!-^auVwoUWV`9AszZfZ?*G@G(x*x+QjICoFv z$|YHD#by-i=J=n4-7pVE)iI>r- zFz^Vh{4Wtd90ndSiXWJ_@&`!=&_$Wp(pqXDO({Z22nRClLaSsiztV~=U_wZPkhiBF zJi{XgPDa>IrJ|Ph3eCzH#f+haxoxWfLpDo{l}yXgE1_k z%CWE-m=CDo7+fWKu$t^5c0=S)l$Wpn(TI*jv>McVnw`KpB`{SmZKFHL(08f+7gEqBBCGq*x>tC zodPf#1V(=WjHZB5Zr!|00?)*(=!Nz$r;t=jx{gSgP#1zL1bs`$MBze@8u;_|Mp0E` z$@XHe{T%mm4cWToKUM?ZU7riV0$(hms_Y}0b+d6q37p|KaA|p3vnrL<49MI(;(NgU z$EX+q#=G~#h%wc@U|9QmCHR_cQ4z4xxJ*jd`%ef#!ey?VbAXLqxE zlrU=NR+r^6x_td-AqXP7vVOH+)Yr7CktAZRh>E3hX&eP8NLX%1wl3uQjOAyscJpRh z=)b-j%X~oxf%?-b`JQgTTnEe!V1`8@m_fvwX2DoP)$~nR?C~Is18PfAqx)&qoZp89 zbj%FQ$n|cEXt2osC;I^SM>RTFF%q*a2URBo92p*p;V`qMqmb14b=lCjM#?efGfiK} z&qhbtz04n?Gx-W8Q>??VeN2n^A~5?JYinbZnyyB1uJJ9T17j<{!oINbS2t=aoZ*{m zD{k{jE11+|r`d7-KCB`mmqTkFqVBJ}mbDPdp_3Y*!maACO~pjmpU%%_Qi>4>2UqKp zitHV!Hq}4Xd&g`BD-Ge0uT`Q{K=eAe@U6r1&+E+B&VQdsR^k0ovkJ_YhF=;=p0K{ zLrP?zXLyfRaS)(rq67>n0i*&b?Re*%czI=4x|C5i^_2VnY{TKswEjqCvu6&wVUy zx}n;p6Ps$57Pezb%-65IVsY>0X+L9un4NXnayByI+`oH#YX30SeDt_Kemm&b2AMEG zzmlL|t-BDSn4i}4TrhYY=`gj&%Z1S%@n~CW5bpt4gBCIbsBISyPgc!U!ugCT$C;c` zEVI73T&PbUoU6^EK9WT@2BLm-aPyZIembu`wo10>G7ly*CO2GD?};Su**boBs}_?V ztXeWNP?jy^m;C`K*M)qEajmaAC)W5ItBWq+Vi7`2APGZDv?59p66kT^a|D$74}3oD z&=Qy#c`R!w)J04Djrbmk(FgrW7#84Rv<{x7G>|s3+4dI4?jiY{K zmW`Ot?it!Q)80LKJ`;UkZ@^N5p(T~6H(M2C6^U7lgobtw~Zv97PKe{=*k9GezGfRcAfnuBF$aW5>|eW z?Ab9_GuCQIQS%9TY}xH1?4npwgajau1J2joYE>8u8sbR=`EDUHRG!F5QS6^yjHo^%nuZf)N?>+k za;IOJDGh9{DMq$4(c>@mbPZNZ<-x&!K%tC_n&m=gMpIoYK{|@)O=!g|bhOhC9c>^B zaf>CP^2e4jK{2GK9c$*A5?>`DZ3stO*A#bhRWoR*BQzZ{GpAgYK}kM>fCl9}aa18@ z+8Uifom21U+)~=lKE0|S0d?ul66XuC{n^;Vq$;abKNl~nnM9wJ@Et!+-N@u}kwgA0 zKZR-lT2U&wFIc&ky?LBiQm+Z&Y$a4^&E|L86Hc++O%`5b1|Of^>^N-cPE6A_P6(lU z(%}PcuFZDZ+Lnc0xJ*Yj7t^yRp76v>7uuR(4*~+8uq=ZeI^{|jSr$haI2p2KyPmd+ z)G?Xq)p{eLETq1qwB_MCQw2m$vi(=wtWikm1Blb!-!o%VEuYLyMErNDH`K^Dpr?+z_9S$Y2cFm+9wDw1^fd|0tZEfUx zTRyQS=2tpJpN{K#XI^v;F{dEh3rb0e5z5~jo3up3wOvdkV>Cm#>m0@8cA;R+M<;xn zHi)wiIN?}e(4QnrRmf9Ze&#L(8lErE88`gOSY1P=f^C>&C&lzcgye8E(V6Jp;Gx!; zo{L8rn+mlXMj<~X;&M)^Fl0VnNP~EMqwV)hVWtrSKU-Yk;yV--8|{*l&m#P>QNn z8zP`@&2XYL(Ici)R1CQg21m^7T4`c24Iuj|EH~MZAAjMsZp40r8%ac?mKt@tyHE&M zD~u+!?v0&}3zHDV^_KTQG`w)l&G}4 zWl~oO2gC}Nv9na-(j(ZZs76#CEWLO4M#J+5lSqno{m?U0YR9lKqa zQXJ(vJ+RyLdA!TmFuo8Ay^UT1XdRBlN-%=-2(9(%|{n2iEl zU-am7$F<(`yN%T30Uq2K&ANk2`fjpt326LZ0pc3uu|)nXmQ&*}zd{(jc(Y6) zGyVf@A)w$mt=z9Uz28T2nW{Hum!=Y0#*U>F)@zrmD%&)L<;LYtx$cRfA%x3MF^#D* zDjqazwl@?&a2k_Ue{5@?ws{hkh}0_;Ad$lXaBYRu{Vt@ADh@V809PmG|1kKTU8oa5 zVR#YHwO}GEDXy-TW(aEmM7&TB)C2|~xCr=!qB%@?dBNQ}Z{N{YKFl-bhO~*g$4IMe z!-Z1CVnZWssbFGYF}FX;)$pBLw+zr`uRsMpQ#X^gffWAy1~(e;2aNo--nK4W^~*X| zw5vlX=|FgG_``vC(2VF2GdE>K4PU&!mR42Gj;R|*ED%G9%mCXYu>C0Sfs|u)m8_wt zBoaamkiER4h!+u4d%%MktChFNAbY-&{bDk5a%Q}Xh9% za)jyQ8~n^Po(aRi8i=x<0FYp(0!7^f;n4q6>G7^r;XLIOachoK$MK&ds>b7xMYyCa({t zl5Si*a6sgKV|HJko#=y#P-2%oMMi-=@uXs5GNoF|lTR=mL51*r$QM2S_~fp~Z)9>K zfbn_2xC9uth!xZub8Qhbh?JL&C{p}*EGONA$D>3qs*YN5h0sW?sK-e|Ju^sr7>2r1 z5B6>WS9Fx>*jlF?+(&bSd_hs$kn@G8D{jov1BRj{aGueHfzh56Ypj_pN0l$?a%|0X zP(+q6bUTe=oNzd!vy)NU1W4vZW~uydVg~8Y?@h@@NJjG4KG*>T(d5eeyJT++6x>D> z^2B=;KT72FX!1lt*JUMpCKxi9=|6Pa6HL^1ic0wwUAo0A$)%KEi&3rZpFpi0i}#)^ z(Fz;sG?mOD>cX^xxGlm1QW#K*cnz+us=gPiwSTTQsOKzg-+@)VAhHY&v0SRro)`7= z?{|VRe?8P@OP$62_P*voC}HG`lL0?us==+BFPjB9po* z;OiHbsN97%1Z!R)L5#}QL%rU3SnrAn8pjs{;!*6 ztI`ZP8#QF>x=K5B-S0RyVppo47#ze(6NeAe{JPI4>vG}m{po^FSj^!ON~QvXDt0w} z8JS7S1eZy(RZ#|m=}NgYz`Y%~o-mSTf@+|N}Rv)lqZ5aBFy?`G~qsS!R zmAyNTwaxGjrOqLGSn}j`Wk*~)cO;umgqB1oXP`-Zy>wc4IE71fcO|O0Xdy0 z`Ok0AhBU>j1o+!isq4L3EQ#?$Eu6Pte8*b$lthviH>)ChNH~Q!Ibqmh{MEhe3;AzQ z0EQTg7lJMn_y{B1sLv^da&~;uM51c1oK0~Q^Z9rxEAPhUSsuST)0GM8g!nzk5&&^U z0p@b}o(!m=@!tUQW?xtP&$M@<`jctd2)1)0pKNxZ%QqJRD|OS38)jNPb;9UNXk1S8 zYbQ@DY14??CS`>WOPAR-hW*9B3mXPnbPz7BM(m=!u{vO-kfSJo20uUNQ;V6P5+1~A ztuGX0?&jW}lsFG4emdWX`qb`NZzO~T7$C$M$4%Z=`fBod)WD#iOVg+$cK z6p~SYBov55QW4Uux2;sz)5!19ju)&wBj@iGRFDo)WpTM*7IGwrwOZQ+4i%q9%?~Va z$7EY)XUgX{G$u#XSlFQ5e51C(oqIE5Ur^O>Fph##EL9rO2$uO}Jy0mhVT86m$FEqu zkz~}E3n&E1R#>Ue!b)Wb63;HTro$qjAjMsmG1>a!iINhf4PPWZg69vy?mvj<_u=`S zR8s&Q`pFX_r+$(&$g!U!`|*E&RpbQw7<)h849P)#4PU}_T|>_K998M-msQ8i5y!T{kA4Er4dJ=aY-lnZ>5b@bG2mmU zfq241Hivyr4Mnm3p{o&phW2oL95p__gq+CQKGoK`h?s(qR+2gUMmQEWU(Zb0assBj zeJlHBM+9ldZX`J(e&k3T?9qZX`6kx3PNKdFkts#_SOfDWGD5kb80FGsE5r=>7qIdi z_HErR+k7nSU`B-yB+}tJUZwIL_5=12Jcr~DbpeQQt7M9Lc`Kt$IXh9cK$^jRslTbc!T|JhGT!(yXnuz>9Op;0x_ZG_ z_`C|UzKB(h8}*L8(jKgGZ0c`|W1pSy^R4x^HG`wBR^-vA2x!Su zr15o3$I0A_;siJz#Ne26iSVV}i&jhJTdN|IYsGo}!{xrDf!z*@bxlRNv1xMCNZ3K_ zsj^Y4B~IXgZmF0wZxrV_fsRTgwVO)z-V-z#s&tW;&~f{z5WdXgofskLGinl0Z*s3R z0~tW&G{x1eM94_p0)>%i1>u2-W!Z>t2qQ7C!WE=lU@I|PY)+!0L=R(qm}*O+78@Ot z4NFxcNRKLfe3V%cBkH^pOLfUuz*0sS8&Rx4EU9A>=~a(RXRUKNx_=nwwCal*0vTCp#{LdAp$C;Cr@^n=cZ~D}X+ILn$@ri| zT-ahF{z$mE0K%9Z>vlzyx`c{dB$ezCzGTU;>fK&5tj zhZ3Z$`r7^o;`2|mKVn@Ga*@&ob{Q zyb(B5#To>}v$fg0#Vny>#4xbQbwmjb!40l?%oGVqvE8iH#cfrKXNu*1=acJg*uUoU zGx!YCE53_az}mcT`96p9U-)Itr%+>hlO-D-z6bm4zto-!>0-Y3FbHqj_zuPMs`9Ti zS11AMZ(+v`L0uMkR9Z!YL7+JvO}imYo^hqw0)CLcqv9r!y}(F(*94*_E@5wGX`;^@ z8Nj5Ox!Y>?1~upu?e7rP z)vHTgb`4=DrX9jKV785wTdLj_3t?Uk2K#3qMEI|zGZfnZvtk+b0;}u1A|qHrqF#I> zhK%Ur4j7auginc8uUw8}cFRZa400YkK87ae6XMFJ9W%HAX9^z^7w;THlk;451CNcN zb~QTcQ}`+Ta%WbKL_<)UFW;kMWZ-hTMzP2`oAe^pE^caz_**!tm*tf=$ zK7YXHOZnvcUVTsu$u`l=D%o8IKDbb128-t;D4WT@Yl=IuFVm~nik zBOISB&Bo=$^%Aov$7f5ENf`lg+{Tyl7^8+V6TfBP@-*H`YUtgj$C7h$)^T`(OgG)uCI5t5QRnNTBNh2#ye1VSIAA?w^8he z`j4;5`j7l3)gQ9mYz*;$4GvfB2h-zgzh0_F(%^`-%3KwZFUlE5)tF zHy8h?V|&N1cTRS`v-3x#!=>+(?<@avS7+D$u1C5)0y+?#@cY&efA62}3{QMt3d?`( zk>|$WmG7;jc>y^M`aT~T=Z2xis}`Xb1yjDa^vWWVC542j`4 zf_qad*U=7ObR2cIe~c%0ON$uU#F>H$r8XRkc#DGj2a$EEp|(K5eG0P43G^k=O5jOZ z>{w_A2H(JUcn;&scoKfENpBN(E#k|H+oX?6m*EG;(0dqTl6dMUBIg3`?E-w=u>X0y z^(pBO0Xyi&pIu2yM|lvm`Zh;wO0-$`Pm$ok*w2wP@+KozW7;vLUQ-^@$W&mNaS{ioo8BtSy%qo<$`l%ZKW9Tn+Q zIQHYZf^5etrFTm21QEsgMXU;DgQJ1E%GnPZk z>0AO%`pn)VO}#kXG>X&U0B%|AYiferphW)ERsFW zAuh$~r6xadrpZnMkfz?#*EB16f;I%S6zK$p0NzcD3p8YLRzT~kJZ*-gnYrnn!kXat zD>n;Lz@VW`xf6<18Zh z6~%)hf+%^=;3NQVMrRiDR~GZlD9F~=v?@Ce9=WQVnqBB<22U3s>}$p)OG}+R0Gulfk2hp0o8m2!H{An@=ypTKh9=S?-2y#td0f+J0 zNKc`N+g96<2f9wTK$Gd}0x;PE__v_FH^rKpfZD($%=p+kCt?-45|~fTP{p*K{ja z866X#Hyx9et1=x^m8%LJ)0L|#9W#}y8XdEht2!NXm8%9F+bUO0I`&pT4Uhg!Z4s0% z=KGuM4$_vsW@X()XYJyB-o?Ik7fWjw@Aod|D^fGu`(yD0QrA3G3D5QT6@XtJaJ2(J zIu?N+9Xo&@9Xo*^9ZSHEj%DCS$1dPU$8O+9#~$EE$NoxwLMYNeCBN8AEaqYK*docq z5{}J&lG(vZbD+050DT;SDr|wozNkVLmqv?Z*#Ea9AdY>_>MDz`hO{}7xaLsLRh8Lu zM_?3*i?wy+`Eg^0EBO%t`3RooJ!kHPW&+mdMWLmB$@vZ8&t@l!qgRKSO}N%U4hJ{XgHe!jScUP@e?T)ifc@hIJt4j$>x zPr#uQ^xW&jL)Tc*)H-pt4VTtp7mtZAl)S}ai(9b#ea)%Ww+ZUE*tJLj&aEh~vUn5h zM?X<%}*@!Umav|=Ka#O4(DWY%8yMQ(90Z7S0%a28l1KR^1ZdM9>LkuZXj(rs&qHXwa@7Z4 zL((rK|NosxZ+S5R`}asO(VOhpL~%4-SSK%qg%+G!V1UPaSE;fUXB&D8#51Bx3!60( zYy$~wPwf$%K*MAG%{sJv`;Y10fyc3Utl7Yrot5So4!ekob0Bwq9!_|bTDvPG(9K;S z^PbAnk~ELTUNjgr_Enx{qGvxEqUQjO*@8<4X$&4 z8mDLsHBQqQYMh}l)VNE)HH+3+0T;E-3Am{B5&;*r?iO%S>mC6YwayE;sC7ZWMXh^5 zNn>6r#?S>C^8jw%xc1bSi8FD> zgI<&Fc*twg@Q3l7jou?4@tQQ?Jf<9e+VdY=wC>_MlPHCs;KZ)uOhFWsEehObOIK`e@`Qb`NjHBn8 z()~2!S4_0ugN=Xi4`<7o~^r)^pNb$eUcoo4SzS>Bg~&tji#>CViqcgmxZzpwrSNG4=w^4q)Ut z^jyI4G;$|-hWgtK|za{*Y;@qYB5#`CIxhhQHUZ~5Opt?!oS z{abIpb^L7tCZZ6*kq2)5_}zfkW&E50j4#FUUf_C8z)948K#Us2$QtPWZ_({$ju6d% zQl8MeCO|v-=?86>0LfYDB{)8abB|t=fZ+ce?{0qM-7O9;-NfJZZ?53oF9T%=uDsyH zB|*;z@b?sYR=Jy(b_443g1i3~he#HEkQ}1;rJJ5{063q)yIzK8-7lWyjkpIRNuDoY zy!YOhqD}I6Kkg^kNU9D%)_3B#M@S^``UZ46Z+Zgp=*8uNV7md?&F{?vst53UPDu6% z{H3?vpw5zb<7Vumpplm$-9A7@Qg#vT0sLG77Npk~(RT?PCaJt$D5d+y<| zO!&9*D0J(^{=EjB4E9)tkya&q3jxVI6Y%+w?G3_yg^_uUA|o6_UeiX7*oECpB8!_w zE;x(KY#VSYAg5bI7P=D|+A<`!8+qqm*ci$-4+yJKg}w}9Hvs2n zDJ@D%SdoyWH%X65e=dEIDbkmuzrd=khMiMimcAnWne->pR~bs&nUDEdfCX6y|4)So zi!w`kR{9W&vAF)y3+Dz08}r_A^Po6ZYYp!>GuAq8ZXKu9ElcOmFNw3-*syx=?CHx( z+Rml(Cr&N#Bj@E+XOS{<%p MzaRX}iWL5T03x1QQ2+n{ diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/_plugin-vue_export-helper-c27b6911.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/_plugin-vue_export-helper-c27b6911.js deleted file mode 100644 index 718edd339..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/_plugin-vue_export-helper-c27b6911.js +++ /dev/null @@ -1 +0,0 @@ -const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/about-2688cabc.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/about-2688cabc.js deleted file mode 100644 index 86b499510..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/about-2688cabc.js +++ /dev/null @@ -1 +0,0 @@ -import{be as t}from"./index-7e19b821.js";function r(){return t({url:"/about"})}export{r as g}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/baidu-604a969a.svg b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/baidu-604a969a.svg deleted file mode 100644 index fcc30a0a3..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/baidu-604a969a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/bing-4e21c40a.svg b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/bing-4e21c40a.svg deleted file mode 100644 index 9af1c359f..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/bing-4e21c40a.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/defaultBackground-80f713c8.webp b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/defaultBackground-80f713c8.webp deleted file mode 100644 index 23bec1a614c12cd107f2d5ede6d9be9593b8a48d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84014 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%0DkxH=m;KiX>0`2d|U!Sg58 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 )mfv<7@tGnJB%-2 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%0D5N)P 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 RH;*Eb?UqKnuM7YH001pCy0HKN diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/gitee-9d895e3a.png b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/gitee-9d895e3a.png deleted file mode 100644 index fe2659a70fb6d40a94f5b46d6d60352108ab3e44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7019 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/google-c8534e94.svg b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/google-c8534e94.svg deleted file mode 100644 index b22ca1828..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/google-c8534e94.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-2b251fda.css b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-2b251fda.css deleted file mode 100644 index 59adb7200..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-2b251fda.css +++ /dev/null @@ -1 +0,0 @@ -.card[data-v-157c4864]{display:flex;justify-content:center;align-items:center;height:100px}.transparent-grid[data-v-157c4864]{background-image:linear-gradient(45deg,#e6e4e4 25%,transparent 25%,transparent 75%,#e6e4e4 75%),linear-gradient(45deg,#e6e4e4 25%,transparent 25%,transparent 75%,#e6e4e4 75%);background-size:16px 16px;background-position:0 0,8px 8px} diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-2b595d91.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-2b595d91.js deleted file mode 100644 index 502098d40..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-2b595d91.js +++ /dev/null @@ -1,772 +0,0 @@ -import{H as De,bg as Vn,w as Te,b as cn,au as jr,f as be,u as Dn,D as Xe,bD as qr,bE as Wr,y as I,r as B,ae as st,aw as Xt,aH as Ft,g as f,P as Kr,V as Jt,R as xt,aY as Hr,bF as gn,l as Ur,m as $,p as z,n as te,q as ut,z as Ce,bG as Gr,bH as Yr,A as ie,B as Je,S as ct,an as lt,T as un,K as G,aj as Oe,J as jn,L as ge,bI as Zr,aN as _t,a6 as Ze,G as Ve,bJ as qn,aB as Wn,F as dt,af as Kn,C as pn,aL as Xr,t as Et,bK as Jr,ab as de,ad as Qr,s as Hn,ah as eo,bL as to,E as Qt,bM as no,ao as Un,bN as ro,bO as oo,a5 as Gn,bP as io,e as bn,c as mn,N as ao,a8 as lo,aP as so,a9 as yn,bQ as co,a7 as uo,bR as fo,bS as Yn,bT as wn,bU as ho,ag as xn,bV as vo,a4 as Cn}from"./index-7e19b821.js";import{c as Zn,a as Tt,i as go,b as fn,j as hn,k as po,N as bo,u as en,h as mo,d as tn,V as yo,e as wo,g as xo,f as jt,l as Xn}from"./index-c238f14b.js";function Mt(e,t){let{target:n}=e;for(;n;){if(n.dataset&&n.dataset[t]!==void 0)return!0;n=n.parentElement}return!1}function Co(e){switch(typeof e){case"string":return e||void 0;case"number":return String(e);default:return}}function qt(e){const t=e.filter(n=>n!==void 0);if(t.length!==0)return t.length===1?t[0]:n=>{e.forEach(r=>{r&&r(n)})}}function ko(e,t,n){var r;const o=De(e,null);if(o===null)return;const l=(r=Vn())===null||r===void 0?void 0:r.proxy;Te(n,i),i(n.value),cn(()=>{i(void 0,n.value)});function i(u,s){if(!o)return;const h=o[t];s!==void 0&&a(h,s),u!==void 0&&c(h,u)}function a(u,s){u[s]||(u[s]=[]),u[s].splice(u[s].findIndex(h=>h===l),1)}function c(u,s){u[s]||(u[s]=[]),~u[s].findIndex(h=>h===l)||u[s].push(l)}}let kn=!1;function ya(){if(jr&&window.CSS&&!kn&&(kn=!0,"registerProperty"in(window==null?void 0:window.CSS)))try{CSS.registerProperty({name:"--n-color-start",syntax:"",inherits:!1,initialValue:"#0000"}),CSS.registerProperty({name:"--n-color-end",syntax:"",inherits:!1,initialValue:"#0000"})}catch{}}function Sn(e){return e&-e}class So{constructor(t,n){this.l=t,this.min=n;const r=new Array(t+1);for(let o=0;oo)throw new Error("[FinweckTree.sum]: `i` is larger than length.");let l=t*r;for(;t>0;)l+=n[t],t-=Sn(t);return l}getBound(t){let n=0,r=this.l;for(;r>n;){const o=Math.floor((n+r)/2),l=this.sum(o);if(l>t){r=o;continue}else if(l[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:"div"},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:"key"},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){const t=Dn();Fo.mount({id:"vueuc/virtual-list",head:!0,anchorMetaName:Zn,ssr:t}),Xe(()=>{const{defaultScrollIndex:S,defaultScrollKey:P}=e;S!=null?g({index:S}):P!=null&&g({key:P})});let n=!1,r=!1;qr(()=>{if(n=!1,!r){r=!0;return}g({top:h.value,left:s})}),Wr(()=>{n=!0,r||(r=!0)});const o=I(()=>{const S=new Map,{keyField:P}=e;return e.items.forEach((_,Y)=>{S.set(_[P],Y)}),S}),l=B(null),i=B(void 0),a=new Map,c=I(()=>{const{items:S,itemSize:P,keyField:_}=e,Y=new So(S.length,P);return S.forEach((W,K)=>{const H=W[_],X=a.get(H);X!==void 0&&Y.add(K,X)}),Y}),u=B(0);let s=0;const h=B(0),w=st(()=>Math.max(c.value.getBound(h.value-Xt(e.paddingTop))-1,0)),p=I(()=>{const{value:S}=i;if(S===void 0)return[];const{items:P,itemSize:_}=e,Y=w.value,W=Math.min(Y+Math.ceil(S/_+1),P.length-1),K=[];for(let H=Y;H<=W;++H)K.push(P[H]);return K}),g=(S,P)=>{if(typeof S=="number"){M(S,P,"auto");return}const{left:_,top:Y,index:W,key:K,position:H,behavior:X,debounce:C=!0}=S;if(_!==void 0||Y!==void 0)M(_,Y,X);else if(W!==void 0)b(W,X,C);else if(K!==void 0){const O=o.value.get(K);O!==void 0&&b(O,X,C)}else H==="bottom"?M(0,Number.MAX_SAFE_INTEGER,X):H==="top"&&M(0,0,X)};let y,A=null;function b(S,P,_){const{value:Y}=c,W=Y.sum(S)+Xt(e.paddingTop);if(!_)l.value.scrollTo({left:0,top:W,behavior:P});else{y=S,A!==null&&window.clearTimeout(A),A=window.setTimeout(()=>{y=void 0,A=null},16);const{scrollTop:K,offsetHeight:H}=l.value;if(W>K){const X=Y.get(S);W+X<=K+H||l.value.scrollTo({left:0,top:W+X-H,behavior:P})}else l.value.scrollTo({left:0,top:W,behavior:P})}}function M(S,P,_){l.value.scrollTo({left:S,top:P,behavior:_})}function F(S,P){var _,Y,W;if(n||e.ignoreItemResize||j(P.target))return;const{value:K}=c,H=o.value.get(S),X=K.get(H),C=(W=(Y=(_=P.borderBoxSize)===null||_===void 0?void 0:_[0])===null||Y===void 0?void 0:Y.blockSize)!==null&&W!==void 0?W:P.contentRect.height;if(C===X)return;C-e.itemSize===0?a.delete(S):a.set(S,C-e.itemSize);const Z=C-X;if(Z===0)return;K.add(H,Z);const ae=l.value;if(ae!=null){if(y===void 0){const me=K.sum(H);ae.scrollTop>me&&ae.scrollBy(0,Z)}else if(Hae.scrollTop+ae.offsetHeight&&ae.scrollBy(0,Z)}q()}u.value++}const x=!Ro();let k=!1;function L(S){var P;(P=e.onScroll)===null||P===void 0||P.call(e,S),(!x||!k)&&q()}function N(S){var P;if((P=e.onWheel)===null||P===void 0||P.call(e,S),x){const _=l.value;if(_!=null){if(S.deltaX===0&&(_.scrollTop===0&&S.deltaY<=0||_.scrollTop+_.offsetHeight>=_.scrollHeight&&S.deltaY>=0))return;S.preventDefault(),_.scrollTop+=S.deltaY/Rn(),_.scrollLeft+=S.deltaX/Rn(),q(),k=!0,go(()=>{k=!1})}}}function D(S){if(n||j(S.target)||S.contentRect.height===i.value)return;i.value=S.contentRect.height;const{onResize:P}=e;P!==void 0&&P(S)}function q(){const{value:S}=l;S!=null&&(h.value=S.scrollTop,s=S.scrollLeft)}function j(S){let P=S;for(;P!==null;){if(P.style.display==="none")return!0;P=P.parentElement}return!1}return{listHeight:i,listStyle:{overflow:"auto"},keyToIndex:o,itemsStyle:I(()=>{const{itemResizable:S}=e,P=Ft(c.value.sum());return u.value,[e.itemsStyle,{boxSizing:"content-box",height:S?"":P,minHeight:S?P:"",paddingTop:Ft(e.paddingTop),paddingBottom:Ft(e.paddingBottom)}]}),visibleItemsStyle:I(()=>(u.value,{transform:`translateY(${Ft(c.value.sum(w.value))})`})),viewportItems:p,listElRef:l,itemsElRef:B(null),scrollTo:g,handleListResize:D,handleListScroll:L,handleListWheel:N,handleItemResize:F}},render(){const{itemResizable:e,keyField:t,keyToIndex:n,visibleItemsTag:r}=this;return f(Jt,{onResize:this.handleListResize},{default:()=>{var o,l;return f("div",Kr(this.$attrs,{class:["v-vl",this.showScrollbar&&"v-vl--show-scrollbar"],onScroll:this.handleListScroll,onWheel:this.handleListWheel,ref:"listElRef"}),[this.items.length!==0?f("div",{ref:"itemsElRef",class:"v-vl-items",style:this.itemsStyle},[f(r,Object.assign({class:"v-vl-visible-items",style:this.visibleItemsStyle},this.visibleItemsProps),{default:()=>this.viewportItems.map(i=>{const a=i[t],c=n.get(a),u=this.$slots.default({item:i,index:c})[0];return e?f(Jt,{key:a,onResize:s=>this.handleItemResize(a,s)},{default:()=>u}):(u.key=a,u)})})]):(l=(o=this.$slots).empty)===null||l===void 0?void 0:l.call(o)])}})}}),Ne="v-hidden",zo=Tt("[v-hidden]",{display:"none!important"}),Fn=be({name:"Overflow",props:{getCounter:Function,getTail:Function,updateCounter:Function,onUpdateCount:Function,onUpdateOverflow:Function},setup(e,{slots:t}){const n=B(null),r=B(null);function o(i){const{value:a}=n,{getCounter:c,getTail:u}=e;let s;if(c!==void 0?s=c():s=r.value,!a||!s)return;s.hasAttribute(Ne)&&s.removeAttribute(Ne);const{children:h}=a;if(i.showAllItemsBeforeCalculate)for(const F of h)F.hasAttribute(Ne)&&F.removeAttribute(Ne);const w=a.offsetWidth,p=[],g=t.tail?u==null?void 0:u():null;let y=g?g.offsetWidth:0,A=!1;const b=a.children.length-(t.tail?1:0);for(let F=0;Fw){const{updateCounter:L}=e;for(let N=F;N>=0;--N){const D=b-1-N;L!==void 0?L(D):s.textContent=`${D}`;const q=s.offsetWidth;if(y-=p[N],y+q<=w||N===0){A=!0,F=N-1,g&&(F===-1?(g.style.maxWidth=`${w-q}px`,g.style.boxSizing="border-box"):g.style.maxWidth="");const{onUpdateCount:j}=e;j&&j(D);break}}}}const{onUpdateOverflow:M}=e;A?M!==void 0&&M(!0):(M!==void 0&&M(!1),s.setAttribute(Ne,""))}const l=Dn();return zo.mount({id:"vueuc/overflow",head:!0,anchorMetaName:Zn,ssr:l}),Xe(()=>o({showAllItemsBeforeCalculate:!1})),{selfRef:n,counterRef:r,sync:o}},render(){const{$slots:e}=this;return xt(()=>this.sync({showAllItemsBeforeCalculate:!1})),f("div",{class:"v-overflow",ref:"selfRef"},[Hr(e,"default"),e.counter?e.counter():f("span",{style:{display:"inline-block"},ref:"counterRef"}),e.tail?e.tail():null])}});function Jn(e,t){t&&(Xe(()=>{const{value:n}=e;n&&gn.registerHandler(n,t)}),cn(()=>{const{value:n}=e;n&&gn.unregisterHandler(n)}))}const Oo=be({name:"Checkmark",render(){return f("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},f("g",{fill:"none"},f("path",{d:"M14.046 3.486a.75.75 0 0 1-.032 1.06l-7.93 7.474a.85.85 0 0 1-1.188-.022l-2.68-2.72a.75.75 0 1 1 1.068-1.053l2.234 2.267l7.468-7.038a.75.75 0 0 1 1.06.032z",fill:"currentColor"})))}}),_o=be({name:"Eye",render(){return f("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},f("path",{d:"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"32"}),f("circle",{cx:"256",cy:"256",r:"80",fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"32"}))}}),To=be({name:"EyeOff",render(){return f("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},f("path",{d:"M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z",fill:"currentColor"}),f("path",{d:"M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z",fill:"currentColor"}),f("path",{d:"M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z",fill:"currentColor"}),f("path",{d:"M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z",fill:"currentColor"}),f("path",{d:"M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z",fill:"currentColor"}))}}),Ao=be({name:"Empty",render(){return f("svg",{viewBox:"0 0 28 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},f("path",{d:"M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z",fill:"currentColor"}),f("path",{d:"M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z",fill:"currentColor"}))}}),Mo=be({name:"ChevronDown",render(){return f("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},f("path",{d:"M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z",fill:"currentColor"}))}}),$o=Ur("clear",f("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},f("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},f("g",{fill:"currentColor","fill-rule":"nonzero"},f("path",{d:"M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z"}))))),Io=be({props:{onFocus:Function,onBlur:Function},setup(e){return()=>f("div",{style:"width: 0; height: 0",tabindex:0,onFocus:e.onFocus,onBlur:e.onBlur})}});function Pn(e){return Array.isArray(e)?e:[e]}const nn={STOP:"STOP"};function Qn(e,t){const n=t(e);e.children!==void 0&&n!==nn.STOP&&e.children.forEach(r=>Qn(r,t))}function Eo(e,t={}){const{preserveGroup:n=!1}=t,r=[],o=n?i=>{i.isLeaf||(r.push(i.key),l(i.children))}:i=>{i.isLeaf||(i.isGroup||r.push(i.key),l(i.children))};function l(i){i.forEach(o)}return l(e),r}function Bo(e,t){const{isLeaf:n}=e;return n!==void 0?n:!t(e)}function Lo(e){return e.children}function No(e){return e.key}function Vo(){return!1}function Do(e,t){const{isLeaf:n}=e;return!(n===!1&&!Array.isArray(t(e)))}function jo(e){return e.disabled===!0}function qo(e,t){return e.isLeaf===!1&&!Array.isArray(t(e))}function Kt(e){var t;return e==null?[]:Array.isArray(e)?e:(t=e.checkedKeys)!==null&&t!==void 0?t:[]}function Ht(e){var t;return e==null||Array.isArray(e)?[]:(t=e.indeterminateKeys)!==null&&t!==void 0?t:[]}function Wo(e,t){const n=new Set(e);return t.forEach(r=>{n.has(r)||n.add(r)}),Array.from(n)}function Ko(e,t){const n=new Set(e);return t.forEach(r=>{n.has(r)&&n.delete(r)}),Array.from(n)}function Ho(e){return(e==null?void 0:e.type)==="group"}function Uo(e){const t=new Map;return e.forEach((n,r)=>{t.set(n.key,r)}),n=>{var r;return(r=t.get(n))!==null&&r!==void 0?r:null}}class Go extends Error{constructor(){super(),this.message="SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded."}}function Yo(e,t,n,r){return $t(t.concat(e),n,r,!1)}function Zo(e,t){const n=new Set;return e.forEach(r=>{const o=t.treeNodeMap.get(r);if(o!==void 0){let l=o.parent;for(;l!==null&&!(l.disabled||n.has(l.key));)n.add(l.key),l=l.parent}}),n}function Xo(e,t,n,r){const o=$t(t,n,r,!1),l=$t(e,n,r,!0),i=Zo(e,n),a=[];return o.forEach(c=>{(l.has(c)||i.has(c))&&a.push(c)}),a.forEach(c=>o.delete(c)),o}function Ut(e,t){const{checkedKeys:n,keysToCheck:r,keysToUncheck:o,indeterminateKeys:l,cascade:i,leafOnly:a,checkStrategy:c,allowNotLoaded:u}=e;if(!i)return r!==void 0?{checkedKeys:Wo(n,r),indeterminateKeys:Array.from(l)}:o!==void 0?{checkedKeys:Ko(n,o),indeterminateKeys:Array.from(l)}:{checkedKeys:Array.from(n),indeterminateKeys:Array.from(l)};const{levelTreeNodeMap:s}=t;let h;o!==void 0?h=Xo(o,n,t,u):r!==void 0?h=Yo(r,n,t,u):h=$t(n,t,u,!1);const w=c==="parent",p=c==="child"||a,g=h,y=new Set,A=Math.max.apply(null,Array.from(s.keys()));for(let b=A;b>=0;b-=1){const M=b===0,F=s.get(b);for(const x of F){if(x.isLeaf)continue;const{key:k,shallowLoaded:L}=x;if(p&&L&&x.children.forEach(j=>{!j.disabled&&!j.isLeaf&&j.shallowLoaded&&g.has(j.key)&&g.delete(j.key)}),x.disabled||!L)continue;let N=!0,D=!1,q=!0;for(const j of x.children){const S=j.key;if(!j.disabled){if(q&&(q=!1),g.has(S))D=!0;else if(y.has(S)){D=!0,N=!1;break}else if(N=!1,D)break}}N&&!q?(w&&x.children.forEach(j=>{!j.disabled&&g.has(j.key)&&g.delete(j.key)}),g.add(k)):D&&y.add(k),M&&p&&g.has(k)&&g.delete(k)}}return{checkedKeys:Array.from(g),indeterminateKeys:Array.from(y)}}function $t(e,t,n,r){const{treeNodeMap:o,getChildren:l}=t,i=new Set,a=new Set(e);return e.forEach(c=>{const u=o.get(c);u!==void 0&&Qn(u,s=>{if(s.disabled)return nn.STOP;const{key:h}=s;if(!i.has(h)&&(i.add(h),a.add(h),qo(s.rawNode,l))){if(r)return nn.STOP;if(!n)throw new Go}})}),a}function Jo(e,{includeGroup:t=!1,includeSelf:n=!0},r){var o;const l=r.treeNodeMap;let i=e==null?null:(o=l.get(e))!==null&&o!==void 0?o:null;const a={keyPath:[],treeNodePath:[],treeNode:i};if(i!=null&&i.ignored)return a.treeNode=null,a;for(;i;)!i.ignored&&(t||!i.isGroup)&&a.treeNodePath.push(i),i=i.parent;return a.treeNodePath.reverse(),n||a.treeNodePath.pop(),a.keyPath=a.treeNodePath.map(c=>c.key),a}function Qo(e){if(e.length===0)return null;const t=e[0];return t.isGroup||t.ignored||t.disabled?t.getNext():t}function ei(e,t){const n=e.siblings,r=n.length,{index:o}=e;return t?n[(o+1)%r]:o===n.length-1?null:n[o+1]}function zn(e,t,{loop:n=!1,includeDisabled:r=!1}={}){const o=t==="prev"?ti:ei,l={reverse:t==="prev"};let i=!1,a=null;function c(u){if(u!==null){if(u===e){if(!i)i=!0;else if(!e.disabled&&!e.isGroup){a=e;return}}else if((!u.disabled||r)&&!u.ignored&&!u.isGroup){a=u;return}if(u.isGroup){const s=vn(u,l);s!==null?a=s:c(o(u,n))}else{const s=o(u,!1);if(s!==null)c(s);else{const h=ni(u);h!=null&&h.isGroup?c(o(h,n)):n&&c(o(u,!0))}}}}return c(e),a}function ti(e,t){const n=e.siblings,r=n.length,{index:o}=e;return t?n[(o-1+r)%r]:o===0?null:n[o-1]}function ni(e){return e.parent}function vn(e,t={}){const{reverse:n=!1}=t,{children:r}=e;if(r){const{length:o}=r,l=n?o-1:0,i=n?-1:o,a=n?-1:1;for(let c=l;c!==i;c+=a){const u=r[c];if(!u.disabled&&!u.ignored)if(u.isGroup){const s=vn(u,t);if(s!==null)return s}else return u}}return null}const ri={getChild(){return this.ignored?null:vn(this)},getParent(){const{parent:e}=this;return e!=null&&e.isGroup?e.getParent():e},getNext(e={}){return zn(this,"next",e)},getPrev(e={}){return zn(this,"prev",e)}};function oi(e,t){const n=t?new Set(t):void 0,r=[];function o(l){l.forEach(i=>{r.push(i),!(i.isLeaf||!i.children||i.ignored)&&(i.isGroup||n===void 0||n.has(i.key))&&o(i.children)})}return o(e),r}function ii(e,t){const n=e.key;for(;t;){if(t.key===n)return!0;t=t.parent}return!1}function er(e,t,n,r,o,l=null,i=0){const a=[];return e.forEach((c,u)=>{var s;const h=Object.create(r);if(h.rawNode=c,h.siblings=a,h.level=i,h.index=u,h.isFirstChild=u===0,h.isLastChild=u+1===e.length,h.parent=l,!h.ignored){const w=o(c);Array.isArray(w)&&(h.children=er(w,t,n,r,o,h,i+1))}a.push(h),t.set(h.key,h),n.has(i)||n.set(i,[]),(s=n.get(i))===null||s===void 0||s.push(h)}),a}function ai(e,t={}){var n;const r=new Map,o=new Map,{getDisabled:l=jo,getIgnored:i=Vo,getIsGroup:a=Ho,getKey:c=No}=t,u=(n=t.getChildren)!==null&&n!==void 0?n:Lo,s=t.ignoreEmptyChildren?x=>{const k=u(x);return Array.isArray(k)?k.length?k:null:k}:u,h=Object.assign({get key(){return c(this.rawNode)},get disabled(){return l(this.rawNode)},get isGroup(){return a(this.rawNode)},get isLeaf(){return Bo(this.rawNode,s)},get shallowLoaded(){return Do(this.rawNode,s)},get ignored(){return i(this.rawNode)},contains(x){return ii(this,x)}},ri),w=er(e,r,o,h,s);function p(x){if(x==null)return null;const k=r.get(x);return k&&!k.isGroup&&!k.ignored?k:null}function g(x){if(x==null)return null;const k=r.get(x);return k&&!k.ignored?k:null}function y(x,k){const L=g(x);return L?L.getPrev(k):null}function A(x,k){const L=g(x);return L?L.getNext(k):null}function b(x){const k=g(x);return k?k.getParent():null}function M(x){const k=g(x);return k?k.getChild():null}const F={treeNodes:w,treeNodeMap:r,levelTreeNodeMap:o,maxLevel:Math.max(...o.keys()),getChildren:s,getFlattenedNodes(x){return oi(w,x)},getNode:p,getPrev:y,getNext:A,getParent:b,getChild:M,getFirstAvailableNode(){return Qo(w)},getPath(x,k={}){return Jo(x,k,F)},getCheckedKeys(x,k={}){const{cascade:L=!0,leafOnly:N=!1,checkStrategy:D="all",allowNotLoaded:q=!1}=k;return Ut({checkedKeys:Kt(x),indeterminateKeys:Ht(x),cascade:L,leafOnly:N,checkStrategy:D,allowNotLoaded:q},F)},check(x,k,L={}){const{cascade:N=!0,leafOnly:D=!1,checkStrategy:q="all",allowNotLoaded:j=!1}=L;return Ut({checkedKeys:Kt(k),indeterminateKeys:Ht(k),keysToCheck:x==null?[]:Pn(x),cascade:N,leafOnly:D,checkStrategy:q,allowNotLoaded:j},F)},uncheck(x,k,L={}){const{cascade:N=!0,leafOnly:D=!1,checkStrategy:q="all",allowNotLoaded:j=!1}=L;return Ut({checkedKeys:Kt(k),indeterminateKeys:Ht(k),keysToUncheck:x==null?[]:Pn(x),cascade:N,leafOnly:D,checkStrategy:q,allowNotLoaded:j},F)},getNonLeafKeys(x={}){return Eo(w,x)}};return F}const li=$("empty",` - display: flex; - flex-direction: column; - align-items: center; - font-size: var(--n-font-size); -`,[z("icon",` - width: var(--n-icon-size); - height: var(--n-icon-size); - font-size: var(--n-icon-size); - line-height: var(--n-icon-size); - color: var(--n-icon-color); - transition: - color .3s var(--n-bezier); - `,[te("+",[z("description",` - margin-top: 8px; - `)])]),z("description",` - transition: color .3s var(--n-bezier); - color: var(--n-text-color); - `),z("extra",` - text-align: center; - transition: color .3s var(--n-bezier); - margin-top: 12px; - color: var(--n-extra-text-color); - `)]),si=Object.assign(Object.assign({},Ce.props),{description:String,showDescription:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!0},size:{type:String,default:"medium"},renderIcon:Function}),di=be({name:"Empty",props:si,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=ut(e),r=Ce("Empty","-empty",li,Gr,e,t),{localeRef:o}=fn("Empty"),l=De(Yr,null),i=I(()=>{var s,h,w;return(s=e.description)!==null&&s!==void 0?s:(w=(h=l==null?void 0:l.mergedComponentPropsRef.value)===null||h===void 0?void 0:h.Empty)===null||w===void 0?void 0:w.description}),a=I(()=>{var s,h;return((h=(s=l==null?void 0:l.mergedComponentPropsRef.value)===null||s===void 0?void 0:s.Empty)===null||h===void 0?void 0:h.renderIcon)||(()=>f(Ao,null))}),c=I(()=>{const{size:s}=e,{common:{cubicBezierEaseInOut:h},self:{[ie("iconSize",s)]:w,[ie("fontSize",s)]:p,textColor:g,iconColor:y,extraTextColor:A}}=r.value;return{"--n-icon-size":w,"--n-font-size":p,"--n-bezier":h,"--n-text-color":g,"--n-icon-color":y,"--n-extra-text-color":A}}),u=n?Je("empty",I(()=>{let s="";const{size:h}=e;return s+=h[0],s}),c,e):void 0;return{mergedClsPrefix:t,mergedRenderIcon:a,localizedDescription:I(()=>i.value||o.value.description),cssVars:n?void 0:c,themeClass:u==null?void 0:u.themeClass,onRender:u==null?void 0:u.onRender}},render(){const{$slots:e,mergedClsPrefix:t,onRender:n}=this;return n==null||n(),f("div",{class:[`${t}-empty`,this.themeClass],style:this.cssVars},this.showIcon?f("div",{class:`${t}-empty__icon`},e.icon?e.icon():f(ct,{clsPrefix:t},{default:this.mergedRenderIcon})):null,this.showDescription?f("div",{class:`${t}-empty__description`},e.default?e.default():this.localizedDescription):null,e.extra?f("div",{class:`${t}-empty__extra`},e.extra()):null)}});function ci(e,t){return f(un,{name:"fade-in-scale-up-transition"},{default:()=>e?f(ct,{clsPrefix:t,class:`${t}-base-select-option__check`},{default:()=>f(Oo)}):null})}const On=be({name:"NBaseSelectOption",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(e){const{valueRef:t,pendingTmNodeRef:n,multipleRef:r,valueSetRef:o,renderLabelRef:l,renderOptionRef:i,labelFieldRef:a,valueFieldRef:c,showCheckmarkRef:u,nodePropsRef:s,handleOptionClick:h,handleOptionMouseEnter:w}=De(hn),p=st(()=>{const{value:b}=n;return b?e.tmNode.key===b.key:!1});function g(b){const{tmNode:M}=e;M.disabled||h(b,M)}function y(b){const{tmNode:M}=e;M.disabled||w(b,M)}function A(b){const{tmNode:M}=e,{value:F}=p;M.disabled||F||w(b,M)}return{multiple:r,isGrouped:st(()=>{const{tmNode:b}=e,{parent:M}=b;return M&&M.rawNode.type==="group"}),showCheckmark:u,nodeProps:s,isPending:p,isSelected:st(()=>{const{value:b}=t,{value:M}=r;if(b===null)return!1;const F=e.tmNode.rawNode[c.value];if(M){const{value:x}=o;return x.has(F)}else return b===F}),labelField:a,renderLabel:l,renderOption:i,handleMouseMove:A,handleMouseEnter:y,handleClick:g}},render(){const{clsPrefix:e,tmNode:{rawNode:t},isSelected:n,isPending:r,isGrouped:o,showCheckmark:l,nodeProps:i,renderOption:a,renderLabel:c,handleClick:u,handleMouseEnter:s,handleMouseMove:h}=this,w=ci(n,e),p=c?[c(t,n),l&&w]:[lt(t[this.labelField],t,n),l&&w],g=i==null?void 0:i(t),y=f("div",Object.assign({},g,{class:[`${e}-base-select-option`,t.class,g==null?void 0:g.class,{[`${e}-base-select-option--disabled`]:t.disabled,[`${e}-base-select-option--selected`]:n,[`${e}-base-select-option--grouped`]:o,[`${e}-base-select-option--pending`]:r,[`${e}-base-select-option--show-checkmark`]:l}],style:[(g==null?void 0:g.style)||"",t.style||""],onClick:qt([u,g==null?void 0:g.onClick]),onMouseenter:qt([s,g==null?void 0:g.onMouseenter]),onMousemove:qt([h,g==null?void 0:g.onMousemove])}),f("div",{class:`${e}-base-select-option__content`},p));return t.render?t.render({node:y,option:t,selected:n}):a?a({node:y,option:t,selected:n}):y}}),_n=be({name:"NBaseSelectGroupHeader",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){const{renderLabelRef:e,renderOptionRef:t,labelFieldRef:n,nodePropsRef:r}=De(hn);return{labelField:n,nodeProps:r,renderLabel:e,renderOption:t}},render(){const{clsPrefix:e,renderLabel:t,renderOption:n,nodeProps:r,tmNode:{rawNode:o}}=this,l=r==null?void 0:r(o),i=t?t(o,!1):lt(o[this.labelField],o,!1),a=f("div",Object.assign({},l,{class:[`${e}-base-select-group-header`,l==null?void 0:l.class]}),i);return o.render?o.render({node:a,option:o}):n?n({node:a,option:o,selected:!1}):a}}),ui=$("base-select-menu",` - line-height: 1.5; - outline: none; - z-index: 0; - position: relative; - border-radius: var(--n-border-radius); - transition: - background-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); - background-color: var(--n-color); -`,[$("scrollbar",` - max-height: var(--n-height); - `),$("virtual-list",` - max-height: var(--n-height); - `),$("base-select-option",` - min-height: var(--n-option-height); - font-size: var(--n-option-font-size); - display: flex; - align-items: center; - `,[z("content",` - z-index: 1; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - `)]),$("base-select-group-header",` - min-height: var(--n-option-height); - font-size: .93em; - display: flex; - align-items: center; - `),$("base-select-menu-option-wrapper",` - position: relative; - width: 100%; - `),z("loading, empty",` - display: flex; - padding: 12px 32px; - flex: 1; - justify-content: center; - `),z("loading",` - color: var(--n-loading-color); - font-size: var(--n-loading-size); - `),z("header",` - padding: 8px var(--n-option-padding-left); - font-size: var(--n-option-font-size); - transition: - color .3s var(--n-bezier), - border-color .3s var(--n-bezier); - border-bottom: 1px solid var(--n-action-divider-color); - color: var(--n-action-text-color); - `),z("action",` - padding: 8px var(--n-option-padding-left); - font-size: var(--n-option-font-size); - transition: - color .3s var(--n-bezier), - border-color .3s var(--n-bezier); - border-top: 1px solid var(--n-action-divider-color); - color: var(--n-action-text-color); - `),$("base-select-group-header",` - position: relative; - cursor: default; - padding: var(--n-option-padding); - color: var(--n-group-header-text-color); - `),$("base-select-option",` - cursor: pointer; - position: relative; - padding: var(--n-option-padding); - transition: - color .3s var(--n-bezier), - opacity .3s var(--n-bezier); - box-sizing: border-box; - color: var(--n-option-text-color); - opacity: 1; - `,[G("show-checkmark",` - padding-right: calc(var(--n-option-padding-right) + 20px); - `),te("&::before",` - content: ""; - position: absolute; - left: 4px; - right: 4px; - top: 0; - bottom: 0; - border-radius: var(--n-border-radius); - transition: background-color .3s var(--n-bezier); - `),te("&:active",` - color: var(--n-option-text-color-pressed); - `),G("grouped",` - padding-left: calc(var(--n-option-padding-left) * 1.5); - `),G("pending",[te("&::before",` - background-color: var(--n-option-color-pending); - `)]),G("selected",` - color: var(--n-option-text-color-active); - `,[te("&::before",` - background-color: var(--n-option-color-active); - `),G("pending",[te("&::before",` - background-color: var(--n-option-color-active-pending); - `)])]),G("disabled",` - cursor: not-allowed; - `,[Oe("selected",` - color: var(--n-option-text-color-disabled); - `),G("selected",` - opacity: var(--n-option-opacity-disabled); - `)]),z("check",` - font-size: 16px; - position: absolute; - right: calc(var(--n-option-padding-right) - 4px); - top: calc(50% - 7px); - color: var(--n-option-check-color); - transition: color .3s var(--n-bezier); - `,[jn({enterScale:"0.5"})])])]),fi=be({name:"InternalSelectMenu",props:Object.assign(Object.assign({},Ce.props),{clsPrefix:{type:String,required:!0},scrollable:{type:Boolean,default:!0},treeMate:{type:Object,required:!0},multiple:Boolean,size:{type:String,default:"medium"},value:{type:[String,Number,Array],default:null},autoPending:Boolean,virtualScroll:{type:Boolean,default:!0},show:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},loading:Boolean,focusable:Boolean,renderLabel:Function,renderOption:Function,nodeProps:Function,showCheckmark:{type:Boolean,default:!0},onMousedown:Function,onScroll:Function,onFocus:Function,onBlur:Function,onKeyup:Function,onKeydown:Function,onTabOut:Function,onMouseenter:Function,onMouseleave:Function,onResize:Function,resetMenuOnOptionsChange:{type:Boolean,default:!0},inlineThemeDisabled:Boolean,onToggle:Function}),setup(e){const t=Ce("InternalSelectMenu","-internal-select-menu",ui,Zr,e,ge(e,"clsPrefix")),n=B(null),r=B(null),o=B(null),l=I(()=>e.treeMate.getFlattenedNodes()),i=I(()=>Uo(l.value)),a=B(null);function c(){const{treeMate:C}=e;let O=null;const{value:Z}=e;Z===null?O=C.getFirstAvailableNode():(e.multiple?O=C.getNode((Z||[])[(Z||[]).length-1]):O=C.getNode(Z),(!O||O.disabled)&&(O=C.getFirstAvailableNode())),S(O||null)}function u(){const{value:C}=a;C&&!e.treeMate.getNode(C.key)&&(a.value=null)}let s;Te(()=>e.show,C=>{C?s=Te(()=>e.treeMate,()=>{e.resetMenuOnOptionsChange?(e.autoPending?c():u(),xt(P)):u()},{immediate:!0}):s==null||s()},{immediate:!0}),cn(()=>{s==null||s()});const h=I(()=>Xt(t.value.self[ie("optionHeight",e.size)])),w=I(()=>_t(t.value.self[ie("padding",e.size)])),p=I(()=>e.multiple&&Array.isArray(e.value)?new Set(e.value):new Set),g=I(()=>{const C=l.value;return C&&C.length===0});function y(C){const{onToggle:O}=e;O&&O(C)}function A(C){const{onScroll:O}=e;O&&O(C)}function b(C){var O;(O=o.value)===null||O===void 0||O.sync(),A(C)}function M(){var C;(C=o.value)===null||C===void 0||C.sync()}function F(){const{value:C}=a;return C||null}function x(C,O){O.disabled||S(O,!1)}function k(C,O){O.disabled||y(O)}function L(C){var O;Mt(C,"action")||(O=e.onKeyup)===null||O===void 0||O.call(e,C)}function N(C){var O;Mt(C,"action")||(O=e.onKeydown)===null||O===void 0||O.call(e,C)}function D(C){var O;(O=e.onMousedown)===null||O===void 0||O.call(e,C),!e.focusable&&C.preventDefault()}function q(){const{value:C}=a;C&&S(C.getNext({loop:!0}),!0)}function j(){const{value:C}=a;C&&S(C.getPrev({loop:!0}),!0)}function S(C,O=!1){a.value=C,O&&P()}function P(){var C,O;const Z=a.value;if(!Z)return;const ae=i.value(Z.key);ae!==null&&(e.virtualScroll?(C=r.value)===null||C===void 0||C.scrollTo({index:ae}):(O=o.value)===null||O===void 0||O.scrollTo({index:ae,elSize:h.value}))}function _(C){var O,Z;!((O=n.value)===null||O===void 0)&&O.contains(C.target)&&((Z=e.onFocus)===null||Z===void 0||Z.call(e,C))}function Y(C){var O,Z;!((O=n.value)===null||O===void 0)&&O.contains(C.relatedTarget)||(Z=e.onBlur)===null||Z===void 0||Z.call(e,C)}Ze(hn,{handleOptionMouseEnter:x,handleOptionClick:k,valueSetRef:p,pendingTmNodeRef:a,nodePropsRef:ge(e,"nodeProps"),showCheckmarkRef:ge(e,"showCheckmark"),multipleRef:ge(e,"multiple"),valueRef:ge(e,"value"),renderLabelRef:ge(e,"renderLabel"),renderOptionRef:ge(e,"renderOption"),labelFieldRef:ge(e,"labelField"),valueFieldRef:ge(e,"valueField")}),Ze(po,n),Xe(()=>{const{value:C}=o;C&&C.sync()});const W=I(()=>{const{size:C}=e,{common:{cubicBezierEaseInOut:O},self:{height:Z,borderRadius:ae,color:me,groupHeaderTextColor:xe,actionDividerColor:fe,optionTextColorPressed:pe,optionTextColor:oe,optionTextColorDisabled:le,optionTextColorActive:ye,optionOpacityDisabled:Pe,optionCheckColor:ke,actionTextColor:$e,optionColorPending:Re,optionColorActive:Ae,loadingColor:We,loadingSize:Ke,optionColorActivePending:He,[ie("optionFontSize",C)]:_e,[ie("optionHeight",C)]:je,[ie("optionPadding",C)]:Se}}=t.value;return{"--n-height":Z,"--n-action-divider-color":fe,"--n-action-text-color":$e,"--n-bezier":O,"--n-border-radius":ae,"--n-color":me,"--n-option-font-size":_e,"--n-group-header-text-color":xe,"--n-option-check-color":ke,"--n-option-color-pending":Re,"--n-option-color-active":Ae,"--n-option-color-active-pending":He,"--n-option-height":je,"--n-option-opacity-disabled":Pe,"--n-option-text-color":oe,"--n-option-text-color-active":ye,"--n-option-text-color-disabled":le,"--n-option-text-color-pressed":pe,"--n-option-padding":Se,"--n-option-padding-left":_t(Se,"left"),"--n-option-padding-right":_t(Se,"right"),"--n-loading-color":We,"--n-loading-size":Ke}}),{inlineThemeDisabled:K}=e,H=K?Je("internal-select-menu",I(()=>e.size[0]),W,e):void 0,X={selfRef:n,next:q,prev:j,getPendingTmNode:F};return Jn(n,e.onResize),Object.assign({mergedTheme:t,virtualListRef:r,scrollbarRef:o,itemSize:h,padding:w,flattenedNodes:l,empty:g,virtualListContainer(){const{value:C}=r;return C==null?void 0:C.listElRef},virtualListContent(){const{value:C}=r;return C==null?void 0:C.itemsElRef},doScroll:A,handleFocusin:_,handleFocusout:Y,handleKeyUp:L,handleKeyDown:N,handleMouseDown:D,handleVirtualListResize:M,handleVirtualListScroll:b,cssVars:K?void 0:W,themeClass:H==null?void 0:H.themeClass,onRender:H==null?void 0:H.onRender},X)},render(){const{$slots:e,virtualScroll:t,clsPrefix:n,mergedTheme:r,themeClass:o,onRender:l}=this;return l==null||l(),f("div",{ref:"selfRef",tabindex:this.focusable?0:-1,class:[`${n}-base-select-menu`,o,this.multiple&&`${n}-base-select-menu--multiple`],style:this.cssVars,onFocusin:this.handleFocusin,onFocusout:this.handleFocusout,onKeyup:this.handleKeyUp,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave},Ve(e.header,i=>i&&f("div",{class:`${n}-base-select-menu__header`,"data-header":!0,key:"header"},i)),this.loading?f("div",{class:`${n}-base-select-menu__loading`},f(qn,{clsPrefix:n,strokeWidth:20})):this.empty?f("div",{class:`${n}-base-select-menu__empty`,"data-empty":!0,"data-action":!0},dt(e.empty,()=>[f(di,{theme:r.peers.Empty,themeOverrides:r.peerOverrides.Empty})])):f(Wn,{ref:"scrollbarRef",theme:r.peers.Scrollbar,themeOverrides:r.peerOverrides.Scrollbar,scrollable:this.scrollable,container:t?this.virtualListContainer:void 0,content:t?this.virtualListContent:void 0,onScroll:t?void 0:this.doScroll},{default:()=>t?f(Po,{ref:"virtualListRef",class:`${n}-virtual-list`,items:this.flattenedNodes,itemSize:this.itemSize,showScrollbar:!1,paddingTop:this.padding.top,paddingBottom:this.padding.bottom,onResize:this.handleVirtualListResize,onScroll:this.handleVirtualListScroll,itemResizable:!0},{default:({item:i})=>i.isGroup?f(_n,{key:i.key,clsPrefix:n,tmNode:i}):i.ignored?null:f(On,{clsPrefix:n,key:i.key,tmNode:i})}):f("div",{class:`${n}-base-select-menu-option-wrapper`,style:{paddingTop:this.padding.top,paddingBottom:this.padding.bottom}},this.flattenedNodes.map(i=>i.isGroup?f(_n,{key:i.key,clsPrefix:n,tmNode:i}):f(On,{clsPrefix:n,key:i.key,tmNode:i})))}),Ve(e.action,i=>i&&[f("div",{class:`${n}-base-select-menu__action`,"data-action":!0,key:"action"},i),f(Io,{onFocus:this.onTabOut,key:"focus-detector"})]))}}),hi={color:Object,type:{type:String,default:"default"},round:Boolean,size:{type:String,default:"medium"},closable:Boolean,disabled:{type:Boolean,default:void 0}},vi=$("tag",` - white-space: nowrap; - position: relative; - box-sizing: border-box; - cursor: default; - display: inline-flex; - align-items: center; - flex-wrap: nowrap; - padding: var(--n-padding); - border-radius: var(--n-border-radius); - color: var(--n-text-color); - background-color: var(--n-color); - transition: - border-color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - opacity .3s var(--n-bezier); - line-height: 1; - height: var(--n-height); - font-size: var(--n-font-size); -`,[G("strong",` - font-weight: var(--n-font-weight-strong); - `),z("border",` - pointer-events: none; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - border-radius: inherit; - border: var(--n-border); - transition: border-color .3s var(--n-bezier); - `),z("icon",` - display: flex; - margin: 0 4px 0 0; - color: var(--n-text-color); - transition: color .3s var(--n-bezier); - font-size: var(--n-avatar-size-override); - `),z("avatar",` - display: flex; - margin: 0 6px 0 0; - `),z("close",` - margin: var(--n-close-margin); - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - `),G("round",` - padding: 0 calc(var(--n-height) / 3); - border-radius: calc(var(--n-height) / 2); - `,[z("icon",` - margin: 0 4px 0 calc((var(--n-height) - 8px) / -2); - `),z("avatar",` - margin: 0 6px 0 calc((var(--n-height) - 8px) / -2); - `),G("closable",` - padding: 0 calc(var(--n-height) / 4) 0 calc(var(--n-height) / 3); - `)]),G("icon, avatar",[G("round",` - padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 2); - `)]),G("disabled",` - cursor: not-allowed !important; - opacity: var(--n-opacity-disabled); - `),G("checkable",` - cursor: pointer; - box-shadow: none; - color: var(--n-text-color-checkable); - background-color: var(--n-color-checkable); - `,[Oe("disabled",[te("&:hover","background-color: var(--n-color-hover-checkable);",[Oe("checked","color: var(--n-text-color-hover-checkable);")]),te("&:active","background-color: var(--n-color-pressed-checkable);",[Oe("checked","color: var(--n-text-color-pressed-checkable);")])]),G("checked",` - color: var(--n-text-color-checked); - background-color: var(--n-color-checked); - `,[Oe("disabled",[te("&:hover","background-color: var(--n-color-checked-hover);"),te("&:active","background-color: var(--n-color-checked-pressed);")])])])]),gi=Object.assign(Object.assign(Object.assign({},Ce.props),hi),{bordered:{type:Boolean,default:void 0},checked:Boolean,checkable:Boolean,strong:Boolean,triggerClickOnClose:Boolean,onClose:[Array,Function],onMouseenter:Function,onMouseleave:Function,"onUpdate:checked":Function,onUpdateChecked:Function,internalCloseFocusable:{type:Boolean,default:!0},internalCloseIsButtonTag:{type:Boolean,default:!0},onCheckedChange:Function}),pi=Et("n-tag"),Gt=be({name:"Tag",props:gi,setup(e){const t=B(null),{mergedBorderedRef:n,mergedClsPrefixRef:r,inlineThemeDisabled:o,mergedRtlRef:l}=ut(e),i=Ce("Tag","-tag",vi,Jr,e,r);Ze(pi,{roundRef:ge(e,"round")});function a(p){if(!e.disabled&&e.checkable){const{checked:g,onCheckedChange:y,onUpdateChecked:A,"onUpdate:checked":b}=e;A&&A(!g),b&&b(!g),y&&y(!g)}}function c(p){if(e.triggerClickOnClose||p.stopPropagation(),!e.disabled){const{onClose:g}=e;g&&de(g,p)}}const u={setTextContent(p){const{value:g}=t;g&&(g.textContent=p)}},s=Kn("Tag",l,r),h=I(()=>{const{type:p,size:g,color:{color:y,textColor:A}={}}=e,{common:{cubicBezierEaseInOut:b},self:{padding:M,closeMargin:F,closeMarginRtl:x,borderRadius:k,opacityDisabled:L,textColorCheckable:N,textColorHoverCheckable:D,textColorPressedCheckable:q,textColorChecked:j,colorCheckable:S,colorHoverCheckable:P,colorPressedCheckable:_,colorChecked:Y,colorCheckedHover:W,colorCheckedPressed:K,closeBorderRadius:H,fontWeightStrong:X,[ie("colorBordered",p)]:C,[ie("closeSize",g)]:O,[ie("closeIconSize",g)]:Z,[ie("fontSize",g)]:ae,[ie("height",g)]:me,[ie("color",p)]:xe,[ie("textColor",p)]:fe,[ie("border",p)]:pe,[ie("closeIconColor",p)]:oe,[ie("closeIconColorHover",p)]:le,[ie("closeIconColorPressed",p)]:ye,[ie("closeColorHover",p)]:Pe,[ie("closeColorPressed",p)]:ke}}=i.value;return{"--n-font-weight-strong":X,"--n-avatar-size-override":`calc(${me} - 8px)`,"--n-bezier":b,"--n-border-radius":k,"--n-border":pe,"--n-close-icon-size":Z,"--n-close-color-pressed":ke,"--n-close-color-hover":Pe,"--n-close-border-radius":H,"--n-close-icon-color":oe,"--n-close-icon-color-hover":le,"--n-close-icon-color-pressed":ye,"--n-close-icon-color-disabled":oe,"--n-close-margin":F,"--n-close-margin-rtl":x,"--n-close-size":O,"--n-color":y||(n.value?C:xe),"--n-color-checkable":S,"--n-color-checked":Y,"--n-color-checked-hover":W,"--n-color-checked-pressed":K,"--n-color-hover-checkable":P,"--n-color-pressed-checkable":_,"--n-font-size":ae,"--n-height":me,"--n-opacity-disabled":L,"--n-padding":M,"--n-text-color":A||fe,"--n-text-color-checkable":N,"--n-text-color-checked":j,"--n-text-color-hover-checkable":D,"--n-text-color-pressed-checkable":q}}),w=o?Je("tag",I(()=>{let p="";const{type:g,size:y,color:{color:A,textColor:b}={}}=e;return p+=g[0],p+=y[0],A&&(p+=`a${pn(A)}`),b&&(p+=`b${pn(b)}`),n.value&&(p+="c"),p}),h,e):void 0;return Object.assign(Object.assign({},u),{rtlEnabled:s,mergedClsPrefix:r,contentRef:t,mergedBordered:n,handleClick:a,handleCloseClick:c,cssVars:o?void 0:h,themeClass:w==null?void 0:w.themeClass,onRender:w==null?void 0:w.onRender})},render(){var e,t;const{mergedClsPrefix:n,rtlEnabled:r,closable:o,color:{borderColor:l}={},round:i,onRender:a,$slots:c}=this;a==null||a();const u=Ve(c.avatar,h=>h&&f("div",{class:`${n}-tag__avatar`},h)),s=Ve(c.icon,h=>h&&f("div",{class:`${n}-tag__icon`},h));return f("div",{class:[`${n}-tag`,this.themeClass,{[`${n}-tag--rtl`]:r,[`${n}-tag--strong`]:this.strong,[`${n}-tag--disabled`]:this.disabled,[`${n}-tag--checkable`]:this.checkable,[`${n}-tag--checked`]:this.checkable&&this.checked,[`${n}-tag--round`]:i,[`${n}-tag--avatar`]:u,[`${n}-tag--icon`]:s,[`${n}-tag--closable`]:o}],style:this.cssVars,onClick:this.handleClick,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave},s||u,f("span",{class:`${n}-tag__content`,ref:"contentRef"},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)),!this.checkable&&o?f(Xr,{clsPrefix:n,class:`${n}-tag__close`,disabled:this.disabled,onClick:this.handleCloseClick,focusable:this.internalCloseFocusable,round:i,isButtonTag:this.internalCloseIsButtonTag,absolute:!0}):null,!this.checkable&&this.mergedBordered?f("div",{class:`${n}-tag__border`,style:{borderColor:l}}):null)}}),bi=$("base-clear",` - flex-shrink: 0; - height: 1em; - width: 1em; - position: relative; -`,[te(">",[z("clear",` - font-size: var(--n-clear-size); - height: 1em; - width: 1em; - cursor: pointer; - color: var(--n-clear-color); - transition: color .3s var(--n-bezier); - display: flex; - `,[te("&:hover",` - color: var(--n-clear-color-hover)!important; - `),te("&:active",` - color: var(--n-clear-color-pressed)!important; - `)]),z("placeholder",` - display: flex; - `),z("clear, placeholder",` - position: absolute; - left: 50%; - top: 50%; - transform: translateX(-50%) translateY(-50%); - `,[Qr({originalTransform:"translateX(-50%) translateY(-50%)",left:"50%",top:"50%"})])])]),rn=be({name:"BaseClear",props:{clsPrefix:{type:String,required:!0},show:Boolean,onClear:Function},setup(e){return Hn("-base-clear",bi,ge(e,"clsPrefix")),{handleMouseDown(t){var n;t.preventDefault(),(n=e.onClear)===null||n===void 0||n.call(e,t)}}},render(){const{clsPrefix:e}=this;return f("div",{class:`${e}-base-clear`},f(eo,null,{default:()=>{var t,n;return this.show?f("div",{key:"dismiss",class:`${e}-base-clear__clear`,onClick:this.onClear,onMousedown:this.handleMouseDown,"data-clear":!0},dt(this.$slots.icon,()=>[f(ct,{clsPrefix:e},{default:()=>f($o,null)})])):f("div",{key:"icon",class:`${e}-base-clear__placeholder`},(n=(t=this.$slots).placeholder)===null||n===void 0?void 0:n.call(t))}}))}}),tr=be({name:"InternalSelectionSuffix",props:{clsPrefix:{type:String,required:!0},showArrow:{type:Boolean,default:void 0},showClear:{type:Boolean,default:void 0},loading:{type:Boolean,default:!1},onClear:Function},setup(e,{slots:t}){return()=>{const{clsPrefix:n}=e;return f(qn,{clsPrefix:n,class:`${n}-base-suffix`,strokeWidth:24,scale:.85,show:e.loading},{default:()=>e.showArrow?f(rn,{clsPrefix:n,show:e.showClear,onClear:e.onClear},{placeholder:()=>f(ct,{clsPrefix:n,class:`${n}-base-suffix__arrow`},{default:()=>dt(t.default,()=>[f(Mo,null)])})}):null})}}}),mi=te([$("base-selection",` - position: relative; - z-index: auto; - box-shadow: none; - width: 100%; - max-width: 100%; - display: inline-block; - vertical-align: bottom; - border-radius: var(--n-border-radius); - min-height: var(--n-height); - line-height: 1.5; - font-size: var(--n-font-size); - `,[$("base-loading",` - color: var(--n-loading-color); - `),$("base-selection-tags","min-height: var(--n-height);"),z("border, state-border",` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - pointer-events: none; - border: var(--n-border); - border-radius: inherit; - transition: - box-shadow .3s var(--n-bezier), - border-color .3s var(--n-bezier); - `),z("state-border",` - z-index: 1; - border-color: #0000; - `),$("base-suffix",` - cursor: pointer; - position: absolute; - top: 50%; - transform: translateY(-50%); - right: 10px; - `,[z("arrow",` - font-size: var(--n-arrow-size); - color: var(--n-arrow-color); - transition: color .3s var(--n-bezier); - `)]),$("base-selection-overlay",` - display: flex; - align-items: center; - white-space: nowrap; - pointer-events: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: var(--n-padding-single); - transition: color .3s var(--n-bezier); - `,[z("wrapper",` - flex-basis: 0; - flex-grow: 1; - overflow: hidden; - text-overflow: ellipsis; - `)]),$("base-selection-placeholder",` - color: var(--n-placeholder-color); - `,[z("inner",` - max-width: 100%; - overflow: hidden; - `)]),$("base-selection-tags",` - cursor: pointer; - outline: none; - box-sizing: border-box; - position: relative; - z-index: auto; - display: flex; - padding: var(--n-padding-multiple); - flex-wrap: wrap; - align-items: center; - width: 100%; - vertical-align: bottom; - background-color: var(--n-color); - border-radius: inherit; - transition: - color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier); - `),$("base-selection-label",` - height: var(--n-height); - display: inline-flex; - width: 100%; - vertical-align: bottom; - cursor: pointer; - outline: none; - z-index: auto; - box-sizing: border-box; - position: relative; - transition: - color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier); - border-radius: inherit; - background-color: var(--n-color); - align-items: center; - `,[$("base-selection-input",` - font-size: inherit; - line-height: inherit; - outline: none; - cursor: pointer; - box-sizing: border-box; - border:none; - width: 100%; - padding: var(--n-padding-single); - background-color: #0000; - color: var(--n-text-color); - transition: color .3s var(--n-bezier); - caret-color: var(--n-caret-color); - `,[z("content",` - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - `)]),z("render-label",` - color: var(--n-text-color); - `)]),Oe("disabled",[te("&:hover",[z("state-border",` - box-shadow: var(--n-box-shadow-hover); - border: var(--n-border-hover); - `)]),G("focus",[z("state-border",` - box-shadow: var(--n-box-shadow-focus); - border: var(--n-border-focus); - `)]),G("active",[z("state-border",` - box-shadow: var(--n-box-shadow-active); - border: var(--n-border-active); - `),$("base-selection-label","background-color: var(--n-color-active);"),$("base-selection-tags","background-color: var(--n-color-active);")])]),G("disabled","cursor: not-allowed;",[z("arrow",` - color: var(--n-arrow-color-disabled); - `),$("base-selection-label",` - cursor: not-allowed; - background-color: var(--n-color-disabled); - `,[$("base-selection-input",` - cursor: not-allowed; - color: var(--n-text-color-disabled); - `),z("render-label",` - color: var(--n-text-color-disabled); - `)]),$("base-selection-tags",` - cursor: not-allowed; - background-color: var(--n-color-disabled); - `),$("base-selection-placeholder",` - cursor: not-allowed; - color: var(--n-placeholder-color-disabled); - `)]),$("base-selection-input-tag",` - height: calc(var(--n-height) - 6px); - line-height: calc(var(--n-height) - 6px); - outline: none; - display: none; - position: relative; - margin-bottom: 3px; - max-width: 100%; - vertical-align: bottom; - `,[z("input",` - font-size: inherit; - font-family: inherit; - min-width: 1px; - padding: 0; - background-color: #0000; - outline: none; - border: none; - max-width: 100%; - overflow: hidden; - width: 1em; - line-height: inherit; - cursor: pointer; - color: var(--n-text-color); - caret-color: var(--n-caret-color); - `),z("mirror",` - position: absolute; - left: 0; - top: 0; - white-space: pre; - visibility: hidden; - user-select: none; - -webkit-user-select: none; - opacity: 0; - `)]),["warning","error"].map(e=>G(`${e}-status`,[z("state-border",`border: var(--n-border-${e});`),Oe("disabled",[te("&:hover",[z("state-border",` - box-shadow: var(--n-box-shadow-hover-${e}); - border: var(--n-border-hover-${e}); - `)]),G("active",[z("state-border",` - box-shadow: var(--n-box-shadow-active-${e}); - border: var(--n-border-active-${e}); - `),$("base-selection-label",`background-color: var(--n-color-active-${e});`),$("base-selection-tags",`background-color: var(--n-color-active-${e});`)]),G("focus",[z("state-border",` - box-shadow: var(--n-box-shadow-focus-${e}); - border: var(--n-border-focus-${e}); - `)])])]))]),$("base-selection-popover",` - margin-bottom: -3px; - display: flex; - flex-wrap: wrap; - margin-right: -8px; - `),$("base-selection-tag-wrapper",` - max-width: 100%; - display: inline-flex; - padding: 0 7px 3px 0; - `,[te("&:last-child","padding-right: 0;"),$("tag",` - font-size: 14px; - max-width: 100%; - `,[z("content",` - line-height: 1.25; - text-overflow: ellipsis; - overflow: hidden; - `)])])]),yi=be({name:"InternalSelection",props:Object.assign(Object.assign({},Ce.props),{clsPrefix:{type:String,required:!0},bordered:{type:Boolean,default:void 0},active:Boolean,pattern:{type:String,default:""},placeholder:String,selectedOption:{type:Object,default:null},selectedOptions:{type:Array,default:null},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},multiple:Boolean,filterable:Boolean,clearable:Boolean,disabled:Boolean,size:{type:String,default:"medium"},loading:Boolean,autofocus:Boolean,showArrow:{type:Boolean,default:!0},inputProps:Object,focused:Boolean,renderTag:Function,onKeydown:Function,onClick:Function,onBlur:Function,onFocus:Function,onDeleteOption:Function,maxTagCount:[String,Number],onClear:Function,onPatternInput:Function,onPatternFocus:Function,onPatternBlur:Function,renderLabel:Function,status:String,inlineThemeDisabled:Boolean,ignoreComposition:{type:Boolean,default:!0},onResize:Function}),setup(e){const t=B(null),n=B(null),r=B(null),o=B(null),l=B(null),i=B(null),a=B(null),c=B(null),u=B(null),s=B(null),h=B(!1),w=B(!1),p=B(!1),g=Ce("InternalSelection","-internal-selection",mi,to,e,ge(e,"clsPrefix")),y=I(()=>e.clearable&&!e.disabled&&(p.value||e.active)),A=I(()=>e.selectedOption?e.renderTag?e.renderTag({option:e.selectedOption,handleClose:()=>{}}):e.renderLabel?e.renderLabel(e.selectedOption,!0):lt(e.selectedOption[e.labelField],e.selectedOption,!0):e.placeholder),b=I(()=>{const R=e.selectedOption;if(R)return R[e.labelField]}),M=I(()=>e.multiple?!!(Array.isArray(e.selectedOptions)&&e.selectedOptions.length):e.selectedOption!==null);function F(){var R;const{value:E}=t;if(E){const{value:ue}=n;ue&&(ue.style.width=`${E.offsetWidth}px`,e.maxTagCount!=="responsive"&&((R=u.value)===null||R===void 0||R.sync({showAllItemsBeforeCalculate:!1})))}}function x(){const{value:R}=s;R&&(R.style.display="none")}function k(){const{value:R}=s;R&&(R.style.display="inline-block")}Te(ge(e,"active"),R=>{R||x()}),Te(ge(e,"pattern"),()=>{e.multiple&&xt(F)});function L(R){const{onFocus:E}=e;E&&E(R)}function N(R){const{onBlur:E}=e;E&&E(R)}function D(R){const{onDeleteOption:E}=e;E&&E(R)}function q(R){const{onClear:E}=e;E&&E(R)}function j(R){const{onPatternInput:E}=e;E&&E(R)}function S(R){var E;(!R.relatedTarget||!(!((E=r.value)===null||E===void 0)&&E.contains(R.relatedTarget)))&&L(R)}function P(R){var E;!((E=r.value)===null||E===void 0)&&E.contains(R.relatedTarget)||N(R)}function _(R){q(R)}function Y(){p.value=!0}function W(){p.value=!1}function K(R){!e.active||!e.filterable||R.target!==n.value&&R.preventDefault()}function H(R){D(R)}function X(R){if(R.key==="Backspace"&&!C.value&&!e.pattern.length){const{selectedOptions:E}=e;E!=null&&E.length&&H(E[E.length-1])}}const C=B(!1);let O=null;function Z(R){const{value:E}=t;if(E){const ue=R.target.value;E.textContent=ue,F()}e.ignoreComposition&&C.value?O=R:j(R)}function ae(){C.value=!0}function me(){C.value=!1,e.ignoreComposition&&j(O),O=null}function xe(R){var E;w.value=!0,(E=e.onPatternFocus)===null||E===void 0||E.call(e,R)}function fe(R){var E;w.value=!1,(E=e.onPatternBlur)===null||E===void 0||E.call(e,R)}function pe(){var R,E;if(e.filterable)w.value=!1,(R=i.value)===null||R===void 0||R.blur(),(E=n.value)===null||E===void 0||E.blur();else if(e.multiple){const{value:ue}=o;ue==null||ue.blur()}else{const{value:ue}=l;ue==null||ue.blur()}}function oe(){var R,E,ue;e.filterable?(w.value=!1,(R=i.value)===null||R===void 0||R.focus()):e.multiple?(E=o.value)===null||E===void 0||E.focus():(ue=l.value)===null||ue===void 0||ue.focus()}function le(){const{value:R}=n;R&&(k(),R.focus())}function ye(){const{value:R}=n;R&&R.blur()}function Pe(R){const{value:E}=a;E&&E.setTextContent(`+${R}`)}function ke(){const{value:R}=c;return R}function $e(){return n.value}let Re=null;function Ae(){Re!==null&&window.clearTimeout(Re)}function We(){e.active||(Ae(),Re=window.setTimeout(()=>{M.value&&(h.value=!0)},100))}function Ke(){Ae()}function He(R){R||(Ae(),h.value=!1)}Te(M,R=>{R||(h.value=!1)}),Xe(()=>{Qt(()=>{const R=i.value;R&&(e.disabled?R.removeAttribute("tabindex"):R.tabIndex=w.value?-1:0)})}),Jn(r,e.onResize);const{inlineThemeDisabled:_e}=e,je=I(()=>{const{size:R}=e,{common:{cubicBezierEaseInOut:E},self:{borderRadius:ue,color:Ie,placeholderColor:ft,textColor:ht,paddingSingle:vt,paddingMultiple:gt,caretColor:Qe,colorDisabled:et,textColorDisabled:tt,placeholderColorDisabled:pt,colorActive:bt,boxShadowFocus:nt,boxShadowActive:Me,boxShadowHover:v,border:T,borderFocus:U,borderHover:re,borderActive:Q,arrowColor:J,arrowColorDisabled:ee,loadingColor:he,colorActiveWarning:ze,boxShadowFocusWarning:rt,boxShadowActiveWarning:Bt,boxShadowHoverWarning:ot,borderWarning:it,borderFocusWarning:Lt,borderHoverWarning:Nt,borderActiveWarning:Rt,colorActiveError:qe,boxShadowFocusError:d,boxShadowActiveError:m,boxShadowHoverError:V,borderError:ce,borderFocusError:ve,borderHoverError:se,borderActiveError:Ee,clearColor:Be,clearColorHover:Le,clearColorPressed:Ue,clearSize:Ge,arrowSize:mt,[ie("height",R)]:Vt,[ie("fontSize",R)]:Dt}}=g.value;return{"--n-bezier":E,"--n-border":T,"--n-border-active":Q,"--n-border-focus":U,"--n-border-hover":re,"--n-border-radius":ue,"--n-box-shadow-active":Me,"--n-box-shadow-focus":nt,"--n-box-shadow-hover":v,"--n-caret-color":Qe,"--n-color":Ie,"--n-color-active":bt,"--n-color-disabled":et,"--n-font-size":Dt,"--n-height":Vt,"--n-padding-single":vt,"--n-padding-multiple":gt,"--n-placeholder-color":ft,"--n-placeholder-color-disabled":pt,"--n-text-color":ht,"--n-text-color-disabled":tt,"--n-arrow-color":J,"--n-arrow-color-disabled":ee,"--n-loading-color":he,"--n-color-active-warning":ze,"--n-box-shadow-focus-warning":rt,"--n-box-shadow-active-warning":Bt,"--n-box-shadow-hover-warning":ot,"--n-border-warning":it,"--n-border-focus-warning":Lt,"--n-border-hover-warning":Nt,"--n-border-active-warning":Rt,"--n-color-active-error":qe,"--n-box-shadow-focus-error":d,"--n-box-shadow-active-error":m,"--n-box-shadow-hover-error":V,"--n-border-error":ce,"--n-border-focus-error":ve,"--n-border-hover-error":se,"--n-border-active-error":Ee,"--n-clear-size":Ge,"--n-clear-color":Be,"--n-clear-color-hover":Le,"--n-clear-color-pressed":Ue,"--n-arrow-size":mt}}),Se=_e?Je("internal-selection",I(()=>e.size[0]),je,e):void 0;return{mergedTheme:g,mergedClearable:y,patternInputFocused:w,filterablePlaceholder:A,label:b,selected:M,showTagsPanel:h,isComposing:C,counterRef:a,counterWrapperRef:c,patternInputMirrorRef:t,patternInputRef:n,selfRef:r,multipleElRef:o,singleElRef:l,patternInputWrapperRef:i,overflowRef:u,inputTagElRef:s,handleMouseDown:K,handleFocusin:S,handleClear:_,handleMouseEnter:Y,handleMouseLeave:W,handleDeleteOption:H,handlePatternKeyDown:X,handlePatternInputInput:Z,handlePatternInputBlur:fe,handlePatternInputFocus:xe,handleMouseEnterCounter:We,handleMouseLeaveCounter:Ke,handleFocusout:P,handleCompositionEnd:me,handleCompositionStart:ae,onPopoverUpdateShow:He,focus:oe,focusInput:le,blur:pe,blurInput:ye,updateCounter:Pe,getCounter:ke,getTail:$e,renderLabel:e.renderLabel,cssVars:_e?void 0:je,themeClass:Se==null?void 0:Se.themeClass,onRender:Se==null?void 0:Se.onRender}},render(){const{status:e,multiple:t,size:n,disabled:r,filterable:o,maxTagCount:l,bordered:i,clsPrefix:a,onRender:c,renderTag:u,renderLabel:s}=this;c==null||c();const h=l==="responsive",w=typeof l=="number",p=h||w,g=f(no,null,{default:()=>f(tr,{clsPrefix:a,loading:this.loading,showArrow:this.showArrow,showClear:this.mergedClearable&&this.selected,onClear:this.handleClear},{default:()=>{var A,b;return(b=(A=this.$slots).arrow)===null||b===void 0?void 0:b.call(A)}})});let y;if(t){const{labelField:A}=this,b=P=>f("div",{class:`${a}-base-selection-tag-wrapper`,key:P.value},u?u({option:P,handleClose:()=>{this.handleDeleteOption(P)}}):f(Gt,{size:n,closable:!P.disabled,disabled:r,onClose:()=>{this.handleDeleteOption(P)},internalCloseIsButtonTag:!1,internalCloseFocusable:!1},{default:()=>s?s(P,!0):lt(P[A],P,!0)})),M=()=>(w?this.selectedOptions.slice(0,l):this.selectedOptions).map(b),F=o?f("div",{class:`${a}-base-selection-input-tag`,ref:"inputTagElRef",key:"__input-tag__"},f("input",Object.assign({},this.inputProps,{ref:"patternInputRef",tabindex:-1,disabled:r,value:this.pattern,autofocus:this.autofocus,class:`${a}-base-selection-input-tag__input`,onBlur:this.handlePatternInputBlur,onFocus:this.handlePatternInputFocus,onKeydown:this.handlePatternKeyDown,onInput:this.handlePatternInputInput,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd})),f("span",{ref:"patternInputMirrorRef",class:`${a}-base-selection-input-tag__mirror`},this.pattern)):null,x=h?()=>f("div",{class:`${a}-base-selection-tag-wrapper`,ref:"counterWrapperRef"},f(Gt,{size:n,ref:"counterRef",onMouseenter:this.handleMouseEnterCounter,onMouseleave:this.handleMouseLeaveCounter,disabled:r})):void 0;let k;if(w){const P=this.selectedOptions.length-l;P>0&&(k=f("div",{class:`${a}-base-selection-tag-wrapper`,key:"__counter__"},f(Gt,{size:n,ref:"counterRef",onMouseenter:this.handleMouseEnterCounter,disabled:r},{default:()=>`+${P}`})))}const L=h?o?f(Fn,{ref:"overflowRef",updateCounter:this.updateCounter,getCounter:this.getCounter,getTail:this.getTail,style:{width:"100%",display:"flex",overflow:"hidden"}},{default:M,counter:x,tail:()=>F}):f(Fn,{ref:"overflowRef",updateCounter:this.updateCounter,getCounter:this.getCounter,style:{width:"100%",display:"flex",overflow:"hidden"}},{default:M,counter:x}):w&&k?M().concat(k):M(),N=p?()=>f("div",{class:`${a}-base-selection-popover`},h?M():this.selectedOptions.map(b)):void 0,D=p?{show:this.showTagsPanel,trigger:"hover",overlap:!0,placement:"top",width:"trigger",onUpdateShow:this.onPopoverUpdateShow,theme:this.mergedTheme.peers.Popover,themeOverrides:this.mergedTheme.peerOverrides.Popover}:null,j=(this.selected?!1:this.active?!this.pattern&&!this.isComposing:!0)?f("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`},f("div",{class:`${a}-base-selection-placeholder__inner`},this.placeholder)):null,S=o?f("div",{ref:"patternInputWrapperRef",class:`${a}-base-selection-tags`},L,h?null:F,g):f("div",{ref:"multipleElRef",class:`${a}-base-selection-tags`,tabindex:r?void 0:0},L,g);y=f(Un,null,p?f(bo,Object.assign({},D,{scrollable:!0,style:"max-height: calc(var(--v-target-height) * 6.6);"}),{trigger:()=>S,default:N}):S,j)}else if(o){const A=this.pattern||this.isComposing,b=this.active?!A:!this.selected,M=this.active?!1:this.selected;y=f("div",{ref:"patternInputWrapperRef",class:`${a}-base-selection-label`},f("input",Object.assign({},this.inputProps,{ref:"patternInputRef",class:`${a}-base-selection-input`,value:this.active?this.pattern:"",placeholder:"",readonly:r,disabled:r,tabindex:-1,autofocus:this.autofocus,onFocus:this.handlePatternInputFocus,onBlur:this.handlePatternInputBlur,onInput:this.handlePatternInputInput,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd})),M?f("div",{class:`${a}-base-selection-label__render-label ${a}-base-selection-overlay`,key:"input"},f("div",{class:`${a}-base-selection-overlay__wrapper`},u?u({option:this.selectedOption,handleClose:()=>{}}):s?s(this.selectedOption,!0):lt(this.label,this.selectedOption,!0))):null,b?f("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`,key:"placeholder"},f("div",{class:`${a}-base-selection-overlay__wrapper`},this.filterablePlaceholder)):null,g)}else y=f("div",{ref:"singleElRef",class:`${a}-base-selection-label`,tabindex:this.disabled?void 0:0},this.label!==void 0?f("div",{class:`${a}-base-selection-input`,title:Co(this.label),key:"input"},f("div",{class:`${a}-base-selection-input__content`},u?u({option:this.selectedOption,handleClose:()=>{}}):s?s(this.selectedOption,!0):lt(this.label,this.selectedOption,!0))):f("div",{class:`${a}-base-selection-placeholder ${a}-base-selection-overlay`,key:"placeholder"},f("div",{class:`${a}-base-selection-placeholder__inner`},this.placeholder)),g);return f("div",{ref:"selfRef",class:[`${a}-base-selection`,this.themeClass,e&&`${a}-base-selection--${e}-status`,{[`${a}-base-selection--active`]:this.active,[`${a}-base-selection--selected`]:this.selected||this.active&&this.pattern,[`${a}-base-selection--disabled`]:this.disabled,[`${a}-base-selection--multiple`]:this.multiple,[`${a}-base-selection--focus`]:this.focused}],style:this.cssVars,onClick:this.onClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onKeydown:this.onKeydown,onFocusin:this.handleFocusin,onFocusout:this.handleFocusout,onMousedown:this.handleMouseDown},y,i?f("div",{class:`${a}-base-selection__border`}):null,i?f("div",{class:`${a}-base-selection__state-border`}):null)}});function It(e){return e.type==="group"}function nr(e){return e.type==="ignored"}function Yt(e,t){try{return!!(1+t.toString().toLowerCase().indexOf(e.trim().toLowerCase()))}catch{return!1}}function wi(e,t){return{getIsGroup:It,getIgnored:nr,getKey(r){return It(r)?r.name||r.key||"key-required":r[e]},getChildren(r){return r[t]}}}function xi(e,t,n,r){if(!t)return e;function o(l){if(!Array.isArray(l))return[];const i=[];for(const a of l)if(It(a)){const c=o(a[r]);c.length&&i.push(Object.assign({},a,{[r]:c}))}else{if(nr(a))continue;t(n,a)&&i.push(a)}return i}return o(e)}function Ci(e,t,n){const r=new Map;return e.forEach(o=>{It(o)?o[n].forEach(l=>{r.set(l[t],l)}):r.set(o[t],o)}),r}const rr=Et("n-input");function ki(e){let t=0;for(const n of e)t++;return t}function zt(e){return e===""||e==null}function Si(e){const t=B(null);function n(){const{value:l}=e;if(!(l!=null&&l.focus)){o();return}const{selectionStart:i,selectionEnd:a,value:c}=l;if(i==null||a==null){o();return}t.value={start:i,end:a,beforeText:c.slice(0,i),afterText:c.slice(a)}}function r(){var l;const{value:i}=t,{value:a}=e;if(!i||!a)return;const{value:c}=a,{start:u,beforeText:s,afterText:h}=i;let w=c.length;if(c.endsWith(h))w=c.length-h.length;else if(c.startsWith(s))w=s.length;else{const p=s[u-1],g=c.indexOf(p,u-1);g!==-1&&(w=g+1)}(l=a.setSelectionRange)===null||l===void 0||l.call(a,w,w)}function o(){t.value=null}return Te(e,o),{recordCursor:n,restoreCursor:r}}const Tn=be({name:"InputWordCount",setup(e,{slots:t}){const{mergedValueRef:n,maxlengthRef:r,mergedClsPrefixRef:o,countGraphemesRef:l}=De(rr),i=I(()=>{const{value:a}=n;return a===null||Array.isArray(a)?0:(l.value||ki)(a)});return()=>{const{value:a}=r,{value:c}=n;return f("span",{class:`${o.value}-input-word-count`},ro(t.default,{value:c===null||Array.isArray(c)?"":c},()=>[a===void 0?i.value:`${i.value} / ${a}`]))}}}),Ri=$("input",` - max-width: 100%; - cursor: text; - line-height: 1.5; - z-index: auto; - outline: none; - box-sizing: border-box; - position: relative; - display: inline-flex; - border-radius: var(--n-border-radius); - background-color: var(--n-color); - transition: background-color .3s var(--n-bezier); - font-size: var(--n-font-size); - --n-padding-vertical: calc((var(--n-height) - 1.5 * var(--n-font-size)) / 2); -`,[z("input, textarea",` - overflow: hidden; - flex-grow: 1; - position: relative; - `),z("input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder",` - box-sizing: border-box; - font-size: inherit; - line-height: 1.5; - font-family: inherit; - border: none; - outline: none; - background-color: #0000; - text-align: inherit; - transition: - -webkit-text-fill-color .3s var(--n-bezier), - caret-color .3s var(--n-bezier), - color .3s var(--n-bezier), - text-decoration-color .3s var(--n-bezier); - `),z("input-el, textarea-el",` - -webkit-appearance: none; - scrollbar-width: none; - width: 100%; - min-width: 0; - text-decoration-color: var(--n-text-decoration-color); - color: var(--n-text-color); - caret-color: var(--n-caret-color); - background-color: transparent; - `,[te("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` - width: 0; - height: 0; - display: none; - `),te("&::placeholder",` - color: #0000; - -webkit-text-fill-color: transparent !important; - `),te("&:-webkit-autofill ~",[z("placeholder","display: none;")])]),G("round",[Oe("textarea","border-radius: calc(var(--n-height) / 2);")]),z("placeholder",` - pointer-events: none; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - overflow: hidden; - color: var(--n-placeholder-color); - `,[te("span",` - width: 100%; - display: inline-block; - `)]),G("textarea",[z("placeholder","overflow: visible;")]),Oe("autosize","width: 100%;"),G("autosize",[z("textarea-el, input-el",` - position: absolute; - top: 0; - left: 0; - height: 100%; - `)]),$("input-wrapper",` - overflow: hidden; - display: inline-flex; - flex-grow: 1; - position: relative; - padding-left: var(--n-padding-left); - padding-right: var(--n-padding-right); - `),z("input-mirror",` - padding: 0; - height: var(--n-height); - line-height: var(--n-height); - overflow: hidden; - visibility: hidden; - position: static; - white-space: pre; - pointer-events: none; - `),z("input-el",` - padding: 0; - height: var(--n-height); - line-height: var(--n-height); - `,[te("&[type=password]::-ms-reveal","display: none;"),te("+",[z("placeholder",` - display: flex; - align-items: center; - `)])]),Oe("textarea",[z("placeholder","white-space: nowrap;")]),z("eye",` - display: flex; - align-items: center; - justify-content: center; - transition: color .3s var(--n-bezier); - `),G("textarea","width: 100%;",[$("input-word-count",` - position: absolute; - right: var(--n-padding-right); - bottom: var(--n-padding-vertical); - `),G("resizable",[$("input-wrapper",` - resize: vertical; - min-height: var(--n-height); - `)]),z("textarea-el, textarea-mirror, placeholder",` - height: 100%; - padding-left: 0; - padding-right: 0; - padding-top: var(--n-padding-vertical); - padding-bottom: var(--n-padding-vertical); - word-break: break-word; - display: inline-block; - vertical-align: bottom; - box-sizing: border-box; - line-height: var(--n-line-height-textarea); - margin: 0; - resize: none; - white-space: pre-wrap; - scroll-padding-block-end: var(--n-padding-vertical); - `),z("textarea-mirror",` - width: 100%; - pointer-events: none; - overflow: hidden; - visibility: hidden; - position: static; - white-space: pre-wrap; - overflow-wrap: break-word; - `)]),G("pair",[z("input-el, placeholder","text-align: center;"),z("separator",` - display: flex; - align-items: center; - transition: color .3s var(--n-bezier); - color: var(--n-text-color); - white-space: nowrap; - `,[$("icon",` - color: var(--n-icon-color); - `),$("base-icon",` - color: var(--n-icon-color); - `)])]),G("disabled",` - cursor: not-allowed; - background-color: var(--n-color-disabled); - `,[z("border","border: var(--n-border-disabled);"),z("input-el, textarea-el",` - cursor: not-allowed; - color: var(--n-text-color-disabled); - text-decoration-color: var(--n-text-color-disabled); - `),z("placeholder","color: var(--n-placeholder-color-disabled);"),z("separator","color: var(--n-text-color-disabled);",[$("icon",` - color: var(--n-icon-color-disabled); - `),$("base-icon",` - color: var(--n-icon-color-disabled); - `)]),$("input-word-count",` - color: var(--n-count-text-color-disabled); - `),z("suffix, prefix","color: var(--n-text-color-disabled);",[$("icon",` - color: var(--n-icon-color-disabled); - `),$("internal-icon",` - color: var(--n-icon-color-disabled); - `)])]),Oe("disabled",[z("eye",` - color: var(--n-icon-color); - cursor: pointer; - `,[te("&:hover",` - color: var(--n-icon-color-hover); - `),te("&:active",` - color: var(--n-icon-color-pressed); - `)]),te("&:hover",[z("state-border","border: var(--n-border-hover);")]),G("focus","background-color: var(--n-color-focus);",[z("state-border",` - border: var(--n-border-focus); - box-shadow: var(--n-box-shadow-focus); - `)])]),z("border, state-border",` - box-sizing: border-box; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - pointer-events: none; - border-radius: inherit; - border: var(--n-border); - transition: - box-shadow .3s var(--n-bezier), - border-color .3s var(--n-bezier); - `),z("state-border",` - border-color: #0000; - z-index: 1; - `),z("prefix","margin-right: 4px;"),z("suffix",` - margin-left: 4px; - `),z("suffix, prefix",` - transition: color .3s var(--n-bezier); - flex-wrap: nowrap; - flex-shrink: 0; - line-height: var(--n-height); - white-space: nowrap; - display: inline-flex; - align-items: center; - justify-content: center; - color: var(--n-suffix-text-color); - `,[$("base-loading",` - font-size: var(--n-icon-size); - margin: 0 2px; - color: var(--n-loading-color); - `),$("base-clear",` - font-size: var(--n-icon-size); - `,[z("placeholder",[$("base-icon",` - transition: color .3s var(--n-bezier); - color: var(--n-icon-color); - font-size: var(--n-icon-size); - `)])]),te(">",[$("icon",` - transition: color .3s var(--n-bezier); - color: var(--n-icon-color); - font-size: var(--n-icon-size); - `)]),$("base-icon",` - font-size: var(--n-icon-size); - `)]),$("input-word-count",` - pointer-events: none; - line-height: 1.5; - font-size: .85em; - color: var(--n-count-text-color); - transition: color .3s var(--n-bezier); - margin-left: 4px; - font-variant: tabular-nums; - `),["warning","error"].map(e=>G(`${e}-status`,[Oe("disabled",[$("base-loading",` - color: var(--n-loading-color-${e}) - `),z("input-el, textarea-el",` - caret-color: var(--n-caret-color-${e}); - `),z("state-border",` - border: var(--n-border-${e}); - `),te("&:hover",[z("state-border",` - border: var(--n-border-hover-${e}); - `)]),te("&:focus",` - background-color: var(--n-color-focus-${e}); - `,[z("state-border",` - box-shadow: var(--n-box-shadow-focus-${e}); - border: var(--n-border-focus-${e}); - `)]),G("focus",` - background-color: var(--n-color-focus-${e}); - `,[z("state-border",` - box-shadow: var(--n-box-shadow-focus-${e}); - border: var(--n-border-focus-${e}); - `)])])]))]),Fi=$("input",[G("disabled",[z("input-el, textarea-el",` - -webkit-text-fill-color: var(--n-text-color-disabled); - `)])]),Pi=Object.assign(Object.assign({},Ce.props),{bordered:{type:Boolean,default:void 0},type:{type:String,default:"text"},placeholder:[Array,String],defaultValue:{type:[String,Array],default:null},value:[String,Array],disabled:{type:Boolean,default:void 0},size:String,rows:{type:[Number,String],default:3},round:Boolean,minlength:[String,Number],maxlength:[String,Number],clearable:Boolean,autosize:{type:[Boolean,Object],default:!1},pair:Boolean,separator:String,readonly:{type:[String,Boolean],default:!1},passivelyActivated:Boolean,showPasswordOn:String,stateful:{type:Boolean,default:!0},autofocus:Boolean,inputProps:Object,resizable:{type:Boolean,default:!0},showCount:Boolean,loading:{type:Boolean,default:void 0},allowInput:Function,renderCount:Function,onMousedown:Function,onKeydown:Function,onKeyup:[Function,Array],onInput:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClick:[Function,Array],onChange:[Function,Array],onClear:[Function,Array],countGraphemes:Function,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],textDecoration:[String,Array],attrSize:{type:Number,default:20},onInputBlur:[Function,Array],onInputFocus:[Function,Array],onDeactivate:[Function,Array],onActivate:[Function,Array],onWrapperFocus:[Function,Array],onWrapperBlur:[Function,Array],internalDeactivateOnEnter:Boolean,internalForceFocus:Boolean,internalLoadingBeforeSuffix:{type:Boolean,default:!0},showPasswordToggle:Boolean}),wa=be({name:"Input",props:Pi,setup(e){const{mergedClsPrefixRef:t,mergedBorderedRef:n,inlineThemeDisabled:r,mergedRtlRef:o}=ut(e),l=Ce("Input","-input",Ri,io,e,t);oo&&Hn("-input-safari",Fi,t);const i=B(null),a=B(null),c=B(null),u=B(null),s=B(null),h=B(null),w=B(null),p=Si(w),g=B(null),{localeRef:y}=fn("Input"),A=B(e.defaultValue),b=ge(e,"value"),M=en(b,A),F=Gn(e),{mergedSizeRef:x,mergedDisabledRef:k,mergedStatusRef:L}=F,N=B(!1),D=B(!1),q=B(!1),j=B(!1);let S=null;const P=I(()=>{const{placeholder:d,pair:m}=e;return m?Array.isArray(d)?d:d===void 0?["",""]:[d,d]:d===void 0?[y.value.placeholder]:[d]}),_=I(()=>{const{value:d}=q,{value:m}=M,{value:V}=P;return!d&&(zt(m)||Array.isArray(m)&&zt(m[0]))&&V[0]}),Y=I(()=>{const{value:d}=q,{value:m}=M,{value:V}=P;return!d&&V[1]&&(zt(m)||Array.isArray(m)&&zt(m[1]))}),W=st(()=>e.internalForceFocus||N.value),K=st(()=>{if(k.value||e.readonly||!e.clearable||!W.value&&!D.value)return!1;const{value:d}=M,{value:m}=W;return e.pair?!!(Array.isArray(d)&&(d[0]||d[1]))&&(D.value||m):!!d&&(D.value||m)}),H=I(()=>{const{showPasswordOn:d}=e;if(d)return d;if(e.showPasswordToggle)return"click"}),X=B(!1),C=I(()=>{const{textDecoration:d}=e;return d?Array.isArray(d)?d.map(m=>({textDecoration:m})):[{textDecoration:d}]:["",""]}),O=B(void 0),Z=()=>{var d,m;if(e.type==="textarea"){const{autosize:V}=e;if(V&&(O.value=(m=(d=g.value)===null||d===void 0?void 0:d.$el)===null||m===void 0?void 0:m.offsetWidth),!a.value||typeof V=="boolean")return;const{paddingTop:ce,paddingBottom:ve,lineHeight:se}=window.getComputedStyle(a.value),Ee=Number(ce.slice(0,-2)),Be=Number(ve.slice(0,-2)),Le=Number(se.slice(0,-2)),{value:Ue}=c;if(!Ue)return;if(V.minRows){const Ge=Math.max(V.minRows,1),mt=`${Ee+Be+Le*Ge}px`;Ue.style.minHeight=mt}if(V.maxRows){const Ge=`${Ee+Be+Le*V.maxRows}px`;Ue.style.maxHeight=Ge}}},ae=I(()=>{const{maxlength:d}=e;return d===void 0?void 0:Number(d)});Xe(()=>{const{value:d}=M;Array.isArray(d)||he(d)});const me=Vn().proxy;function xe(d){const{onUpdateValue:m,"onUpdate:value":V,onInput:ce}=e,{nTriggerFormInput:ve}=F;m&&de(m,d),V&&de(V,d),ce&&de(ce,d),A.value=d,ve()}function fe(d){const{onChange:m}=e,{nTriggerFormChange:V}=F;m&&de(m,d),A.value=d,V()}function pe(d){const{onBlur:m}=e,{nTriggerFormBlur:V}=F;m&&de(m,d),V()}function oe(d){const{onFocus:m}=e,{nTriggerFormFocus:V}=F;m&&de(m,d),V()}function le(d){const{onClear:m}=e;m&&de(m,d)}function ye(d){const{onInputBlur:m}=e;m&&de(m,d)}function Pe(d){const{onInputFocus:m}=e;m&&de(m,d)}function ke(){const{onDeactivate:d}=e;d&&de(d)}function $e(){const{onActivate:d}=e;d&&de(d)}function Re(d){const{onClick:m}=e;m&&de(m,d)}function Ae(d){const{onWrapperFocus:m}=e;m&&de(m,d)}function We(d){const{onWrapperBlur:m}=e;m&&de(m,d)}function Ke(){q.value=!0}function He(d){q.value=!1,d.target===h.value?_e(d,1):_e(d,0)}function _e(d,m=0,V="input"){const ce=d.target.value;if(he(ce),d instanceof InputEvent&&!d.isComposing&&(q.value=!1),e.type==="textarea"){const{value:se}=g;se&&se.syncUnifiedContainer()}if(S=ce,q.value)return;p.recordCursor();const ve=je(ce);if(ve)if(!e.pair)V==="input"?xe(ce):fe(ce);else{let{value:se}=M;Array.isArray(se)?se=[se[0],se[1]]:se=["",""],se[m]=ce,V==="input"?xe(se):fe(se)}me.$forceUpdate(),ve||xt(p.restoreCursor)}function je(d){const{countGraphemes:m,maxlength:V,minlength:ce}=e;if(m){let se;if(V!==void 0&&(se===void 0&&(se=m(d)),se>Number(V))||ce!==void 0&&(se===void 0&&(se=m(d)),se{ce.preventDefault(),mn("mouseup",document,m)};if(bn("mouseup",document,m),H.value!=="mousedown")return;X.value=!0;const V=()=>{X.value=!1,mn("mouseup",document,V)};bn("mouseup",document,V)}function bt(d){e.onKeyup&&de(e.onKeyup,d)}function nt(d){switch(e.onKeydown&&de(e.onKeydown,d),d.key){case"Escape":v();break;case"Enter":Me(d);break}}function Me(d){var m,V;if(e.passivelyActivated){const{value:ce}=j;if(ce){e.internalDeactivateOnEnter&&v();return}d.preventDefault(),e.type==="textarea"?(m=a.value)===null||m===void 0||m.focus():(V=s.value)===null||V===void 0||V.focus()}}function v(){e.passivelyActivated&&(j.value=!1,xt(()=>{var d;(d=i.value)===null||d===void 0||d.focus()}))}function T(){var d,m,V;k.value||(e.passivelyActivated?(d=i.value)===null||d===void 0||d.focus():((m=a.value)===null||m===void 0||m.focus(),(V=s.value)===null||V===void 0||V.focus()))}function U(){var d;!((d=i.value)===null||d===void 0)&&d.contains(document.activeElement)&&document.activeElement.blur()}function re(){var d,m;(d=a.value)===null||d===void 0||d.select(),(m=s.value)===null||m===void 0||m.select()}function Q(){k.value||(a.value?a.value.focus():s.value&&s.value.focus())}function J(){const{value:d}=i;d!=null&&d.contains(document.activeElement)&&d!==document.activeElement&&v()}function ee(d){if(e.type==="textarea"){const{value:m}=a;m==null||m.scrollTo(d)}else{const{value:m}=s;m==null||m.scrollTo(d)}}function he(d){const{type:m,pair:V,autosize:ce}=e;if(!V&&ce)if(m==="textarea"){const{value:ve}=c;ve&&(ve.textContent=(d??"")+`\r -`)}else{const{value:ve}=u;ve&&(d?ve.textContent=d:ve.innerHTML=" ")}}function ze(){Z()}const rt=B({top:"0"});function Bt(d){var m;const{scrollTop:V}=d.target;rt.value.top=`${-V}px`,(m=g.value)===null||m===void 0||m.syncUnifiedContainer()}let ot=null;Qt(()=>{const{autosize:d,type:m}=e;d&&m==="textarea"?ot=Te(M,V=>{!Array.isArray(V)&&V!==S&&he(V)}):ot==null||ot()});let it=null;Qt(()=>{e.type==="textarea"?it=Te(M,d=>{var m;!Array.isArray(d)&&d!==S&&((m=g.value)===null||m===void 0||m.syncUnifiedContainer())}):it==null||it()}),Ze(rr,{mergedValueRef:M,maxlengthRef:ae,mergedClsPrefixRef:t,countGraphemesRef:ge(e,"countGraphemes")});const Lt={wrapperElRef:i,inputElRef:s,textareaElRef:a,isCompositing:q,focus:T,blur:U,select:re,deactivate:J,activate:Q,scrollTo:ee},Nt=Kn("Input",o,t),Rt=I(()=>{const{value:d}=x,{common:{cubicBezierEaseInOut:m},self:{color:V,borderRadius:ce,textColor:ve,caretColor:se,caretColorError:Ee,caretColorWarning:Be,textDecorationColor:Le,border:Ue,borderDisabled:Ge,borderHover:mt,borderFocus:Vt,placeholderColor:Dt,placeholderColorDisabled:ar,lineHeightTextarea:lr,colorDisabled:sr,colorFocus:dr,textColorDisabled:cr,boxShadowFocus:ur,iconSize:fr,colorFocusWarning:hr,boxShadowFocusWarning:vr,borderWarning:gr,borderFocusWarning:pr,borderHoverWarning:br,colorFocusError:mr,boxShadowFocusError:yr,borderError:wr,borderFocusError:xr,borderHoverError:Cr,clearSize:kr,clearColor:Sr,clearColorHover:Rr,clearColorPressed:Fr,iconColor:Pr,iconColorDisabled:zr,suffixTextColor:Or,countTextColor:_r,countTextColorDisabled:Tr,iconColorHover:Ar,iconColorPressed:Mr,loadingColor:$r,loadingColorError:Ir,loadingColorWarning:Er,[ie("padding",d)]:Br,[ie("fontSize",d)]:Lr,[ie("height",d)]:Nr}}=l.value,{left:Vr,right:Dr}=_t(Br);return{"--n-bezier":m,"--n-count-text-color":_r,"--n-count-text-color-disabled":Tr,"--n-color":V,"--n-font-size":Lr,"--n-border-radius":ce,"--n-height":Nr,"--n-padding-left":Vr,"--n-padding-right":Dr,"--n-text-color":ve,"--n-caret-color":se,"--n-text-decoration-color":Le,"--n-border":Ue,"--n-border-disabled":Ge,"--n-border-hover":mt,"--n-border-focus":Vt,"--n-placeholder-color":Dt,"--n-placeholder-color-disabled":ar,"--n-icon-size":fr,"--n-line-height-textarea":lr,"--n-color-disabled":sr,"--n-color-focus":dr,"--n-text-color-disabled":cr,"--n-box-shadow-focus":ur,"--n-loading-color":$r,"--n-caret-color-warning":Be,"--n-color-focus-warning":hr,"--n-box-shadow-focus-warning":vr,"--n-border-warning":gr,"--n-border-focus-warning":pr,"--n-border-hover-warning":br,"--n-loading-color-warning":Er,"--n-caret-color-error":Ee,"--n-color-focus-error":mr,"--n-box-shadow-focus-error":yr,"--n-border-error":wr,"--n-border-focus-error":xr,"--n-border-hover-error":Cr,"--n-loading-color-error":Ir,"--n-clear-color":Sr,"--n-clear-size":kr,"--n-clear-color-hover":Rr,"--n-clear-color-pressed":Fr,"--n-icon-color":Pr,"--n-icon-color-hover":Ar,"--n-icon-color-pressed":Mr,"--n-icon-color-disabled":zr,"--n-suffix-text-color":Or}}),qe=r?Je("input",I(()=>{const{value:d}=x;return d[0]}),Rt,e):void 0;return Object.assign(Object.assign({},Lt),{wrapperElRef:i,inputElRef:s,inputMirrorElRef:u,inputEl2Ref:h,textareaElRef:a,textareaMirrorElRef:c,textareaScrollbarInstRef:g,rtlEnabled:Nt,uncontrolledValue:A,mergedValue:M,passwordVisible:X,mergedPlaceholder:P,showPlaceholder1:_,showPlaceholder2:Y,mergedFocus:W,isComposing:q,activated:j,showClearButton:K,mergedSize:x,mergedDisabled:k,textDecorationStyle:C,mergedClsPrefix:t,mergedBordered:n,mergedShowPasswordOn:H,placeholderStyle:rt,mergedStatus:L,textAreaScrollContainerWidth:O,handleTextAreaScroll:Bt,handleCompositionStart:Ke,handleCompositionEnd:He,handleInput:_e,handleInputBlur:Se,handleInputFocus:R,handleWrapperBlur:E,handleWrapperFocus:ue,handleMouseEnter:Qe,handleMouseLeave:et,handleMouseDown:gt,handleChange:ft,handleClick:ht,handleClear:vt,handlePasswordToggleClick:tt,handlePasswordToggleMousedown:pt,handleWrapperKeydown:nt,handleWrapperKeyup:bt,handleTextAreaMirrorResize:ze,getTextareaScrollContainer:()=>a.value,mergedTheme:l,cssVars:r?void 0:Rt,themeClass:qe==null?void 0:qe.themeClass,onRender:qe==null?void 0:qe.onRender})},render(){var e,t;const{mergedClsPrefix:n,mergedStatus:r,themeClass:o,type:l,countGraphemes:i,onRender:a}=this,c=this.$slots;return a==null||a(),f("div",{ref:"wrapperElRef",class:[`${n}-input`,o,r&&`${n}-input--${r}-status`,{[`${n}-input--rtl`]:this.rtlEnabled,[`${n}-input--disabled`]:this.mergedDisabled,[`${n}-input--textarea`]:l==="textarea",[`${n}-input--resizable`]:this.resizable&&!this.autosize,[`${n}-input--autosize`]:this.autosize,[`${n}-input--round`]:this.round&&l!=="textarea",[`${n}-input--pair`]:this.pair,[`${n}-input--focus`]:this.mergedFocus,[`${n}-input--stateful`]:this.stateful}],style:this.cssVars,tabindex:!this.mergedDisabled&&this.passivelyActivated&&!this.activated?0:void 0,onFocus:this.handleWrapperFocus,onBlur:this.handleWrapperBlur,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd,onKeyup:this.handleWrapperKeyup,onKeydown:this.handleWrapperKeydown},f("div",{class:`${n}-input-wrapper`},Ve(c.prefix,u=>u&&f("div",{class:`${n}-input__prefix`},u)),l==="textarea"?f(Wn,{ref:"textareaScrollbarInstRef",class:`${n}-input__textarea`,container:this.getTextareaScrollContainer,triggerDisplayManually:!0,useUnifiedContainer:!0,internalHoistYRail:!0},{default:()=>{var u,s;const{textAreaScrollContainerWidth:h}=this,w={width:this.autosize&&h&&`${h}px`};return f(Un,null,f("textarea",Object.assign({},this.inputProps,{ref:"textareaElRef",class:[`${n}-input__textarea-el`,(u=this.inputProps)===null||u===void 0?void 0:u.class],autofocus:this.autofocus,rows:Number(this.rows),placeholder:this.placeholder,value:this.mergedValue,disabled:this.mergedDisabled,maxlength:i?void 0:this.maxlength,minlength:i?void 0:this.minlength,readonly:this.readonly,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,style:[this.textDecorationStyle[0],(s=this.inputProps)===null||s===void 0?void 0:s.style,w],onBlur:this.handleInputBlur,onFocus:p=>{this.handleInputFocus(p,2)},onInput:this.handleInput,onChange:this.handleChange,onScroll:this.handleTextAreaScroll})),this.showPlaceholder1?f("div",{class:`${n}-input__placeholder`,style:[this.placeholderStyle,w],key:"placeholder"},this.mergedPlaceholder[0]):null,this.autosize?f(Jt,{onResize:this.handleTextAreaMirrorResize},{default:()=>f("div",{ref:"textareaMirrorElRef",class:`${n}-input__textarea-mirror`,key:"mirror"})}):null)}}):f("div",{class:`${n}-input__input`},f("input",Object.assign({type:l==="password"&&this.mergedShowPasswordOn&&this.passwordVisible?"text":l},this.inputProps,{ref:"inputElRef",class:[`${n}-input__input-el`,(e=this.inputProps)===null||e===void 0?void 0:e.class],style:[this.textDecorationStyle[0],(t=this.inputProps)===null||t===void 0?void 0:t.style],tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[0],disabled:this.mergedDisabled,maxlength:i?void 0:this.maxlength,minlength:i?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[0]:this.mergedValue,readonly:this.readonly,autofocus:this.autofocus,size:this.attrSize,onBlur:this.handleInputBlur,onFocus:u=>{this.handleInputFocus(u,0)},onInput:u=>{this.handleInput(u,0)},onChange:u=>{this.handleChange(u,0)}})),this.showPlaceholder1?f("div",{class:`${n}-input__placeholder`},f("span",null,this.mergedPlaceholder[0])):null,this.autosize?f("div",{class:`${n}-input__input-mirror`,key:"mirror",ref:"inputMirrorElRef"}," "):null),!this.pair&&Ve(c.suffix,u=>u||this.clearable||this.showCount||this.mergedShowPasswordOn||this.loading!==void 0?f("div",{class:`${n}-input__suffix`},[Ve(c["clear-icon-placeholder"],s=>(this.clearable||s)&&f(rn,{clsPrefix:n,show:this.showClearButton,onClear:this.handleClear},{placeholder:()=>s,icon:()=>{var h,w;return(w=(h=this.$slots)["clear-icon"])===null||w===void 0?void 0:w.call(h)}})),this.internalLoadingBeforeSuffix?null:u,this.loading!==void 0?f(tr,{clsPrefix:n,loading:this.loading,showArrow:!1,showClear:!1,style:this.cssVars}):null,this.internalLoadingBeforeSuffix?u:null,this.showCount&&this.type!=="textarea"?f(Tn,null,{default:s=>{var h;return(h=c.count)===null||h===void 0?void 0:h.call(c,s)}}):null,this.mergedShowPasswordOn&&this.type==="password"?f("div",{class:`${n}-input__eye`,onMousedown:this.handlePasswordToggleMousedown,onClick:this.handlePasswordToggleClick},this.passwordVisible?dt(c["password-visible-icon"],()=>[f(ct,{clsPrefix:n},{default:()=>f(_o,null)})]):dt(c["password-invisible-icon"],()=>[f(ct,{clsPrefix:n},{default:()=>f(To,null)})])):null]):null)),this.pair?f("span",{class:`${n}-input__separator`},dt(c.separator,()=>[this.separator])):null,this.pair?f("div",{class:`${n}-input-wrapper`},f("div",{class:`${n}-input__input`},f("input",{ref:"inputEl2Ref",type:this.type,class:`${n}-input__input-el`,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[1],disabled:this.mergedDisabled,maxlength:i?void 0:this.maxlength,minlength:i?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[1]:void 0,readonly:this.readonly,style:this.textDecorationStyle[1],onBlur:this.handleInputBlur,onFocus:u=>{this.handleInputFocus(u,1)},onInput:u=>{this.handleInput(u,1)},onChange:u=>{this.handleChange(u,1)}}),this.showPlaceholder2?f("div",{class:`${n}-input__placeholder`},f("span",null,this.mergedPlaceholder[1])):null),Ve(c.suffix,u=>(this.clearable||u)&&f("div",{class:`${n}-input__suffix`},[this.clearable&&f(rn,{clsPrefix:n,show:this.showClearButton,onClear:this.handleClear},{icon:()=>{var s;return(s=c["clear-icon"])===null||s===void 0?void 0:s.call(c)},placeholder:()=>{var s;return(s=c["clear-icon-placeholder"])===null||s===void 0?void 0:s.call(c)}}),u]))):null,this.mergedBordered?f("div",{class:`${n}-input__border`}):null,this.mergedBordered?f("div",{class:`${n}-input__state-border`}):null,this.showCount&&l==="textarea"?f(Tn,null,{default:u=>{var s;const{renderCount:h}=this;return h?h(u):(s=c.count)===null||s===void 0?void 0:s.call(c,u)}}):null)}}),zi=te([$("select",` - z-index: auto; - outline: none; - width: 100%; - position: relative; - `),$("select-menu",` - margin: 4px 0; - box-shadow: var(--n-menu-box-shadow); - `,[jn({originalTransition:"background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier)"})])]),Oi=Object.assign(Object.assign({},Ce.props),{to:tn.propTo,bordered:{type:Boolean,default:void 0},clearable:Boolean,clearFilterAfterSelect:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},defaultValue:{type:[String,Number,Array],default:null},keyboard:{type:Boolean,default:!0},value:[String,Number,Array],placeholder:String,menuProps:Object,multiple:Boolean,size:String,filterable:Boolean,disabled:{type:Boolean,default:void 0},remote:Boolean,loading:Boolean,filter:Function,placement:{type:String,default:"bottom-start"},widthMode:{type:String,default:"trigger"},tag:Boolean,onCreate:Function,fallbackOption:{type:[Function,Boolean],default:void 0},show:{type:Boolean,default:void 0},showArrow:{type:Boolean,default:!0},maxTagCount:[Number,String],consistentMenuWidth:{type:Boolean,default:!0},virtualScroll:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},childrenField:{type:String,default:"children"},renderLabel:Function,renderOption:Function,renderTag:Function,"onUpdate:value":[Function,Array],inputProps:Object,nodeProps:Function,ignoreComposition:{type:Boolean,default:!0},showOnFocus:Boolean,onUpdateValue:[Function,Array],onBlur:[Function,Array],onClear:[Function,Array],onFocus:[Function,Array],onScroll:[Function,Array],onSearch:[Function,Array],onUpdateShow:[Function,Array],"onUpdate:show":[Function,Array],displayDirective:{type:String,default:"show"},resetMenuOnOptionsChange:{type:Boolean,default:!0},status:String,showCheckmark:{type:Boolean,default:!0},onChange:[Function,Array],items:Array}),xa=be({name:"Select",props:Oi,setup(e){const{mergedClsPrefixRef:t,mergedBorderedRef:n,namespaceRef:r,inlineThemeDisabled:o}=ut(e),l=Ce("Select","-select",zi,co,e,t),i=B(e.defaultValue),a=ge(e,"value"),c=en(a,i),u=B(!1),s=B(""),h=I(()=>{const{valueField:v,childrenField:T}=e,U=wi(v,T);return ai(P.value,U)}),w=I(()=>Ci(j.value,e.valueField,e.childrenField)),p=B(!1),g=en(ge(e,"show"),p),y=B(null),A=B(null),b=B(null),{localeRef:M}=fn("Select"),F=I(()=>{var v;return(v=e.placeholder)!==null&&v!==void 0?v:M.value.placeholder}),x=mo(e,["items","options"]),k=[],L=B([]),N=B([]),D=B(new Map),q=I(()=>{const{fallbackOption:v}=e;if(v===void 0){const{labelField:T,valueField:U}=e;return re=>({[T]:String(re),[U]:re})}return v===!1?!1:T=>Object.assign(v(T),{value:T})}),j=I(()=>N.value.concat(L.value).concat(x.value)),S=I(()=>{const{filter:v}=e;if(v)return v;const{labelField:T,valueField:U}=e;return(re,Q)=>{if(!Q)return!1;const J=Q[T];if(typeof J=="string")return Yt(re,J);const ee=Q[U];return typeof ee=="string"?Yt(re,ee):typeof ee=="number"?Yt(re,String(ee)):!1}}),P=I(()=>{if(e.remote)return x.value;{const{value:v}=j,{value:T}=s;return!T.length||!e.filterable?v:xi(v,S.value,T,e.childrenField)}});function _(v){const T=e.remote,{value:U}=D,{value:re}=w,{value:Q}=q,J=[];return v.forEach(ee=>{if(re.has(ee))J.push(re.get(ee));else if(T&&U.has(ee))J.push(U.get(ee));else if(Q){const he=Q(ee);he&&J.push(he)}}),J}const Y=I(()=>{if(e.multiple){const{value:v}=c;return Array.isArray(v)?_(v):[]}return null}),W=I(()=>{const{value:v}=c;return!e.multiple&&!Array.isArray(v)?v===null?null:_([v])[0]||null:null}),K=Gn(e),{mergedSizeRef:H,mergedDisabledRef:X,mergedStatusRef:C}=K;function O(v,T){const{onChange:U,"onUpdate:value":re,onUpdateValue:Q}=e,{nTriggerFormChange:J,nTriggerFormInput:ee}=K;U&&de(U,v,T),Q&&de(Q,v,T),re&&de(re,v,T),i.value=v,J(),ee()}function Z(v){const{onBlur:T}=e,{nTriggerFormBlur:U}=K;T&&de(T,v),U()}function ae(){const{onClear:v}=e;v&&de(v)}function me(v){const{onFocus:T,showOnFocus:U}=e,{nTriggerFormFocus:re}=K;T&&de(T,v),re(),U&&le()}function xe(v){const{onSearch:T}=e;T&&de(T,v)}function fe(v){const{onScroll:T}=e;T&&de(T,v)}function pe(){var v;const{remote:T,multiple:U}=e;if(T){const{value:re}=D;if(U){const{valueField:Q}=e;(v=Y.value)===null||v===void 0||v.forEach(J=>{re.set(J[Q],J)})}else{const Q=W.value;Q&&re.set(Q[e.valueField],Q)}}}function oe(v){const{onUpdateShow:T,"onUpdate:show":U}=e;T&&de(T,v),U&&de(U,v),p.value=v}function le(){X.value||(oe(!0),p.value=!0,e.filterable&&tt())}function ye(){oe(!1)}function Pe(){s.value="",N.value=k}const ke=B(!1);function $e(){e.filterable&&(ke.value=!0)}function Re(){e.filterable&&(ke.value=!1,g.value||Pe())}function Ae(){X.value||(g.value?e.filterable?tt():ye():le())}function We(v){var T,U;!((U=(T=b.value)===null||T===void 0?void 0:T.selfRef)===null||U===void 0)&&U.contains(v.relatedTarget)||(u.value=!1,Z(v),ye())}function Ke(v){me(v),u.value=!0}function He(v){u.value=!0}function _e(v){var T;!((T=y.value)===null||T===void 0)&&T.$el.contains(v.relatedTarget)||(u.value=!1,Z(v),ye())}function je(){var v;(v=y.value)===null||v===void 0||v.focus(),ye()}function Se(v){var T;g.value&&(!((T=y.value)===null||T===void 0)&&T.$el.contains(uo(v))||ye())}function R(v){if(!Array.isArray(v))return[];if(q.value)return Array.from(v);{const{remote:T}=e,{value:U}=w;if(T){const{value:re}=D;return v.filter(Q=>U.has(Q)||re.has(Q))}else return v.filter(re=>U.has(re))}}function E(v){ue(v.rawNode)}function ue(v){if(X.value)return;const{tag:T,remote:U,clearFilterAfterSelect:re,valueField:Q}=e;if(T&&!U){const{value:J}=N,ee=J[0]||null;if(ee){const he=L.value;he.length?he.push(ee):L.value=[ee],N.value=k}}if(U&&D.value.set(v[Q],v),e.multiple){const J=R(c.value),ee=J.findIndex(he=>he===v[Q]);if(~ee){if(J.splice(ee,1),T&&!U){const he=Ie(v[Q]);~he&&(L.value.splice(he,1),re&&(s.value=""))}}else J.push(v[Q]),re&&(s.value="");O(J,_(J))}else{if(T&&!U){const J=Ie(v[Q]);~J?L.value=[L.value[J]]:L.value=k}et(),ye(),O(v[Q],v)}}function Ie(v){return L.value.findIndex(U=>U[e.valueField]===v)}function ft(v){g.value||le();const{value:T}=v.target;s.value=T;const{tag:U,remote:re}=e;if(xe(T),U&&!re){if(!T){N.value=k;return}const{onCreate:Q}=e,J=Q?Q(T):{[e.labelField]:T,[e.valueField]:T},{valueField:ee,labelField:he}=e;x.value.some(ze=>ze[ee]===J[ee]||ze[he]===J[he])||L.value.some(ze=>ze[ee]===J[ee]||ze[he]===J[he])?N.value=k:N.value=[J]}}function ht(v){v.stopPropagation();const{multiple:T}=e;!T&&e.filterable&&ye(),ae(),T?O([],[]):O(null,null)}function vt(v){!Mt(v,"action")&&!Mt(v,"empty")&&v.preventDefault()}function gt(v){fe(v)}function Qe(v){var T,U,re,Q,J;if(!e.keyboard){v.preventDefault();return}switch(v.key){case" ":if(e.filterable)break;v.preventDefault();case"Enter":if(!(!((T=y.value)===null||T===void 0)&&T.isComposing)){if(g.value){const ee=(U=b.value)===null||U===void 0?void 0:U.getPendingTmNode();ee?E(ee):e.filterable||(ye(),et())}else if(le(),e.tag&&ke.value){const ee=N.value[0];if(ee){const he=ee[e.valueField],{value:ze}=c;e.multiple&&Array.isArray(ze)&&ze.some(rt=>rt===he)||ue(ee)}}}v.preventDefault();break;case"ArrowUp":if(v.preventDefault(),e.loading)return;g.value&&((re=b.value)===null||re===void 0||re.prev());break;case"ArrowDown":if(v.preventDefault(),e.loading)return;g.value?(Q=b.value)===null||Q===void 0||Q.next():le();break;case"Escape":g.value&&(fo(v),ye()),(J=y.value)===null||J===void 0||J.focus();break}}function et(){var v;(v=y.value)===null||v===void 0||v.focus()}function tt(){var v;(v=y.value)===null||v===void 0||v.focusInput()}function pt(){var v;g.value&&((v=A.value)===null||v===void 0||v.syncPosition())}pe(),Te(ge(e,"options"),pe);const bt={focus:()=>{var v;(v=y.value)===null||v===void 0||v.focus()},focusInput:()=>{var v;(v=y.value)===null||v===void 0||v.focusInput()},blur:()=>{var v;(v=y.value)===null||v===void 0||v.blur()},blurInput:()=>{var v;(v=y.value)===null||v===void 0||v.blurInput()}},nt=I(()=>{const{self:{menuBoxShadow:v}}=l.value;return{"--n-menu-box-shadow":v}}),Me=o?Je("select",void 0,nt,e):void 0;return Object.assign(Object.assign({},bt),{mergedStatus:C,mergedClsPrefix:t,mergedBordered:n,namespace:r,treeMate:h,isMounted:ao(),triggerRef:y,menuRef:b,pattern:s,uncontrolledShow:p,mergedShow:g,adjustedTo:tn(e),uncontrolledValue:i,mergedValue:c,followerRef:A,localizedPlaceholder:F,selectedOption:W,selectedOptions:Y,mergedSize:H,mergedDisabled:X,focused:u,activeWithoutMenuOpen:ke,inlineThemeDisabled:o,onTriggerInputFocus:$e,onTriggerInputBlur:Re,handleTriggerOrMenuResize:pt,handleMenuFocus:He,handleMenuBlur:_e,handleMenuTabOut:je,handleTriggerClick:Ae,handleToggle:E,handleDeleteOption:ue,handlePatternInput:ft,handleClear:ht,handleTriggerBlur:We,handleTriggerFocus:Ke,handleKeydown:Qe,handleMenuAfterLeave:Pe,handleMenuClickOutside:Se,handleMenuScroll:gt,handleMenuKeydown:Qe,handleMenuMousedown:vt,mergedTheme:l,cssVars:o?void 0:nt,themeClass:Me==null?void 0:Me.themeClass,onRender:Me==null?void 0:Me.onRender})},render(){return f("div",{class:`${this.mergedClsPrefix}-select`},f(yo,null,{default:()=>[f(wo,null,{default:()=>f(yi,{ref:"triggerRef",inlineThemeDisabled:this.inlineThemeDisabled,status:this.mergedStatus,inputProps:this.inputProps,clsPrefix:this.mergedClsPrefix,showArrow:this.showArrow,maxTagCount:this.maxTagCount,bordered:this.mergedBordered,active:this.activeWithoutMenuOpen||this.mergedShow,pattern:this.pattern,placeholder:this.localizedPlaceholder,selectedOption:this.selectedOption,selectedOptions:this.selectedOptions,multiple:this.multiple,renderTag:this.renderTag,renderLabel:this.renderLabel,filterable:this.filterable,clearable:this.clearable,disabled:this.mergedDisabled,size:this.mergedSize,theme:this.mergedTheme.peers.InternalSelection,labelField:this.labelField,valueField:this.valueField,themeOverrides:this.mergedTheme.peerOverrides.InternalSelection,loading:this.loading,focused:this.focused,onClick:this.handleTriggerClick,onDeleteOption:this.handleDeleteOption,onPatternInput:this.handlePatternInput,onClear:this.handleClear,onBlur:this.handleTriggerBlur,onFocus:this.handleTriggerFocus,onKeydown:this.handleKeydown,onPatternBlur:this.onTriggerInputBlur,onPatternFocus:this.onTriggerInputFocus,onResize:this.handleTriggerOrMenuResize,ignoreComposition:this.ignoreComposition},{arrow:()=>{var e,t;return[(t=(e=this.$slots).arrow)===null||t===void 0?void 0:t.call(e)]}})}),f(xo,{ref:"followerRef",show:this.mergedShow,to:this.adjustedTo,teleportDisabled:this.adjustedTo===tn.tdkey,containerClass:this.namespace,width:this.consistentMenuWidth?"target":void 0,minWidth:"target",placement:this.placement},{default:()=>f(un,{name:"fade-in-scale-up-transition",appear:this.isMounted,onAfterLeave:this.handleMenuAfterLeave},{default:()=>{var e,t,n;return this.mergedShow||this.displayDirective==="show"?((e=this.onRender)===null||e===void 0||e.call(this),lo(f(fi,Object.assign({},this.menuProps,{ref:"menuRef",onResize:this.handleTriggerOrMenuResize,inlineThemeDisabled:this.inlineThemeDisabled,virtualScroll:this.consistentMenuWidth&&this.virtualScroll,class:[`${this.mergedClsPrefix}-select-menu`,this.themeClass,(t=this.menuProps)===null||t===void 0?void 0:t.class],clsPrefix:this.mergedClsPrefix,focusable:!0,labelField:this.labelField,valueField:this.valueField,autoPending:!0,nodeProps:this.nodeProps,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,treeMate:this.treeMate,multiple:this.multiple,size:"medium",renderOption:this.renderOption,renderLabel:this.renderLabel,value:this.mergedValue,style:[(n=this.menuProps)===null||n===void 0?void 0:n.style,this.cssVars],onToggle:this.handleToggle,onScroll:this.handleMenuScroll,onFocus:this.handleMenuFocus,onBlur:this.handleMenuBlur,onKeydown:this.handleMenuKeydown,onTabOut:this.handleMenuTabOut,onMousedown:this.handleMenuMousedown,show:this.mergedShow,showCheckmark:this.showCheckmark,resetMenuOnOptionsChange:this.resetMenuOnOptionsChange}),{empty:()=>{var r,o;return[(o=(r=this.$slots).empty)===null||o===void 0?void 0:o.call(r)]},action:()=>{var r,o;return[(o=(r=this.$slots).action)===null||o===void 0?void 0:o.call(r)]}}),this.displayDirective==="show"?[[so,this.mergedShow],[yn,this.handleMenuClickOutside,void 0,{capture:!0}]]:[[yn,this.handleMenuClickOutside,void 0,{capture:!0}]])):null}})})]}))}}),_i=$("form",[G("inline",` - width: 100%; - display: inline-flex; - align-items: flex-start; - align-content: space-around; - `,[$("form-item",{width:"auto",marginRight:"18px"},[te("&:last-child",{marginRight:0})])])]),kt=Et("n-form"),or=Et("n-form-item-insts");var Ti=globalThis&&globalThis.__awaiter||function(e,t,n,r){function o(l){return l instanceof n?l:new n(function(i){i(l)})}return new(n||(n=Promise))(function(l,i){function a(s){try{u(r.next(s))}catch(h){i(h)}}function c(s){try{u(r.throw(s))}catch(h){i(h)}}function u(s){s.done?l(s.value):o(s.value).then(a,c)}u((r=r.apply(e,t||[])).next())})};const Ai=Object.assign(Object.assign({},Ce.props),{inline:Boolean,labelWidth:[Number,String],labelAlign:String,labelPlacement:{type:String,default:"top"},model:{type:Object,default:()=>{}},rules:Object,disabled:Boolean,size:String,showRequireMark:{type:Boolean,default:void 0},requireMarkPlacement:String,showFeedback:{type:Boolean,default:!0},onSubmit:{type:Function,default:e=>{e.preventDefault()}},showLabel:{type:Boolean,default:void 0},validateMessages:Object}),Ca=be({name:"Form",props:Ai,setup(e){const{mergedClsPrefixRef:t}=ut(e);Ce("Form","-form",_i,Yn,e,t);const n={},r=B(void 0),o=c=>{const u=r.value;(u===void 0||c>=u)&&(r.value=c)};function l(c,u=()=>!0){return Ti(this,void 0,void 0,function*(){yield new Promise((s,h)=>{const w=[];for(const p of wn(n)){const g=n[p];for(const y of g)y.path&&w.push(y.internalValidate(null,u))}Promise.all(w).then(p=>{if(p.some(g=>!g.valid)){const g=p.filter(y=>y.errors).map(y=>y.errors);c&&c(g),h(g)}else c&&c(),s()})})})}function i(){for(const c of wn(n)){const u=n[c];for(const s of u)s.restoreValidation()}}return Ze(kt,{props:e,maxChildLabelWidthRef:r,deriveMaxChildLabelWidth:o}),Ze(or,{formItems:n}),Object.assign({validate:l,restoreValidation:i},{mergedClsPrefix:t})},render(){const{mergedClsPrefix:e}=this;return f("form",{class:[`${e}-form`,this.inline&&`${e}-form--inline`],onSubmit:this.onSubmit},this.$slots)}});function Ye(){return Ye=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function At(e,t,n){return $i()?At=Reflect.construct.bind():At=function(o,l,i){var a=[null];a.push.apply(a,l);var c=Function.bind.apply(o,a),u=new c;return i&&Ct(u,i.prototype),u},At.apply(null,arguments)}function Ii(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function an(e){var t=typeof Map=="function"?new Map:void 0;return an=function(r){if(r===null||!Ii(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(r))return t.get(r);t.set(r,o)}function o(){return At(r,arguments,on(this).constructor)}return o.prototype=Object.create(r.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),Ct(o,r)},an(e)}var Ei=/%[sdj%]/g,Bi=function(){};typeof process<"u"&&process.env;function ln(e){if(!e||!e.length)return null;var t={};return e.forEach(function(n){var r=n.field;t[r]=t[r]||[],t[r].push(n)}),t}function Fe(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=l)return a;switch(a){case"%s":return String(n[o++]);case"%d":return Number(n[o++]);case"%j":try{return JSON.stringify(n[o++])}catch{return"[Circular]"}break;default:return a}});return i}return e}function Li(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function we(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||Li(t)&&typeof e=="string"&&!e)}function Ni(e,t,n){var r=[],o=0,l=e.length;function i(a){r.push.apply(r,a||[]),o++,o===l&&n(r)}e.forEach(function(a){t(a,i)})}function An(e,t,n){var r=0,o=e.length;function l(i){if(i&&i.length){n(i);return}var a=r;r=r+1,a()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},yt={integer:function(t){return yt.number(t)&&parseInt(t,10)===t},float:function(t){return yt.number(t)&&!yt.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch{return!1}},date:function(t){return typeof t.getTime=="function"&&typeof t.getMonth=="function"&&typeof t.getYear=="function"&&!isNaN(t.getTime())},number:function(t){return isNaN(t)?!1:typeof t=="number"},object:function(t){return typeof t=="object"&&!yt.array(t)},method:function(t){return typeof t=="function"},email:function(t){return typeof t=="string"&&t.length<=320&&!!t.match(En.email)},url:function(t){return typeof t=="string"&&t.length<=2048&&!!t.match(Ki())},hex:function(t){return typeof t=="string"&&!!t.match(En.hex)}},Hi=function(t,n,r,o,l){if(t.required&&n===void 0){ir(t,n,r,o,l);return}var i=["integer","float","array","regexp","object","method","email","number","date","url","hex"],a=t.type;i.indexOf(a)>-1?yt[a](n)||o.push(Fe(l.messages.types[a],t.fullField,t.type)):a&&typeof n!==t.type&&o.push(Fe(l.messages.types[a],t.fullField,t.type))},Ui=function(t,n,r,o,l){var i=typeof t.len=="number",a=typeof t.min=="number",c=typeof t.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,s=n,h=null,w=typeof n=="number",p=typeof n=="string",g=Array.isArray(n);if(w?h="number":p?h="string":g&&(h="array"),!h)return!1;g&&(s=n.length),p&&(s=n.replace(u,"_").length),i?s!==t.len&&o.push(Fe(l.messages[h].len,t.fullField,t.len)):a&&!c&&st.max?o.push(Fe(l.messages[h].max,t.fullField,t.max)):a&&c&&(st.max)&&o.push(Fe(l.messages[h].range,t.fullField,t.min,t.max))},at="enum",Gi=function(t,n,r,o,l){t[at]=Array.isArray(t[at])?t[at]:[],t[at].indexOf(n)===-1&&o.push(Fe(l.messages[at],t.fullField,t[at].join(", ")))},Yi=function(t,n,r,o,l){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(n)||o.push(Fe(l.messages.pattern.mismatch,t.fullField,n,t.pattern));else if(typeof t.pattern=="string"){var i=new RegExp(t.pattern);i.test(n)||o.push(Fe(l.messages.pattern.mismatch,t.fullField,n,t.pattern))}}},ne={required:ir,whitespace:Wi,type:Hi,range:Ui,enum:Gi,pattern:Yi},Zi=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n,"string")&&!t.required)return r();ne.required(t,n,o,i,l,"string"),we(n,"string")||(ne.type(t,n,o,i,l),ne.range(t,n,o,i,l),ne.pattern(t,n,o,i,l),t.whitespace===!0&&ne.whitespace(t,n,o,i,l))}r(i)},Xi=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n)&&!t.required)return r();ne.required(t,n,o,i,l),n!==void 0&&ne.type(t,n,o,i,l)}r(i)},Ji=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(n===""&&(n=void 0),we(n)&&!t.required)return r();ne.required(t,n,o,i,l),n!==void 0&&(ne.type(t,n,o,i,l),ne.range(t,n,o,i,l))}r(i)},Qi=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n)&&!t.required)return r();ne.required(t,n,o,i,l),n!==void 0&&ne.type(t,n,o,i,l)}r(i)},ea=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n)&&!t.required)return r();ne.required(t,n,o,i,l),we(n)||ne.type(t,n,o,i,l)}r(i)},ta=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n)&&!t.required)return r();ne.required(t,n,o,i,l),n!==void 0&&(ne.type(t,n,o,i,l),ne.range(t,n,o,i,l))}r(i)},na=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n)&&!t.required)return r();ne.required(t,n,o,i,l),n!==void 0&&(ne.type(t,n,o,i,l),ne.range(t,n,o,i,l))}r(i)},ra=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(n==null&&!t.required)return r();ne.required(t,n,o,i,l,"array"),n!=null&&(ne.type(t,n,o,i,l),ne.range(t,n,o,i,l))}r(i)},oa=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n)&&!t.required)return r();ne.required(t,n,o,i,l),n!==void 0&&ne.type(t,n,o,i,l)}r(i)},ia="enum",aa=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n)&&!t.required)return r();ne.required(t,n,o,i,l),n!==void 0&&ne[ia](t,n,o,i,l)}r(i)},la=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n,"string")&&!t.required)return r();ne.required(t,n,o,i,l),we(n,"string")||ne.pattern(t,n,o,i,l)}r(i)},sa=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n,"date")&&!t.required)return r();if(ne.required(t,n,o,i,l),!we(n,"date")){var c;n instanceof Date?c=n:c=new Date(n),ne.type(t,c,o,i,l),c&&ne.range(t,c.getTime(),o,i,l)}}r(i)},da=function(t,n,r,o,l){var i=[],a=Array.isArray(n)?"array":typeof n;ne.required(t,n,o,i,l,a),r(i)},Zt=function(t,n,r,o,l){var i=t.type,a=[],c=t.required||!t.required&&o.hasOwnProperty(t.field);if(c){if(we(n,i)&&!t.required)return r();ne.required(t,n,o,a,l,i),we(n,i)||ne.type(t,n,o,a,l)}r(a)},ca=function(t,n,r,o,l){var i=[],a=t.required||!t.required&&o.hasOwnProperty(t.field);if(a){if(we(n)&&!t.required)return r();ne.required(t,n,o,i,l)}r(i)},wt={string:Zi,method:Xi,number:Ji,boolean:Qi,regexp:ea,integer:ta,float:na,array:ra,object:oa,enum:aa,pattern:la,date:sa,url:Zt,hex:Zt,email:Zt,required:da,any:ca};function sn(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var dn=sn(),St=function(){function e(n){this.rules=null,this._messages=dn,this.define(n)}var t=e.prototype;return t.define=function(r){var o=this;if(!r)throw new Error("Cannot configure a schema with no rules");if(typeof r!="object"||Array.isArray(r))throw new Error("Rules must be an object");this.rules={},Object.keys(r).forEach(function(l){var i=r[l];o.rules[l]=Array.isArray(i)?i:[i]})},t.messages=function(r){return r&&(this._messages=In(sn(),r)),this._messages},t.validate=function(r,o,l){var i=this;o===void 0&&(o={}),l===void 0&&(l=function(){});var a=r,c=o,u=l;if(typeof c=="function"&&(u=c,c={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,a),Promise.resolve(a);function s(y){var A=[],b={};function M(x){if(Array.isArray(x)){var k;A=(k=A).concat.apply(k,x)}else A.push(x)}for(var F=0;Fe.size!==void 0?e.size:(t==null?void 0:t.props.size)!==void 0?t.props.size:"medium")}}function fa(e){const t=De(kt,null),n=I(()=>{const{labelPlacement:p}=e;return p!==void 0?p:t!=null&&t.props.labelPlacement?t.props.labelPlacement:"top"}),r=I(()=>n.value==="left"&&(e.labelWidth==="auto"||(t==null?void 0:t.props.labelWidth)==="auto")),o=I(()=>{if(n.value==="top")return;const{labelWidth:p}=e;if(p!==void 0&&p!=="auto")return jt(p);if(r.value){const g=t==null?void 0:t.maxChildLabelWidthRef.value;return g!==void 0?jt(g):void 0}if((t==null?void 0:t.props.labelWidth)!==void 0)return jt(t.props.labelWidth)}),l=I(()=>{const{labelAlign:p}=e;if(p)return p;if(t!=null&&t.props.labelAlign)return t.props.labelAlign}),i=I(()=>{var p;return[(p=e.labelProps)===null||p===void 0?void 0:p.style,e.labelStyle,{width:o.value}]}),a=I(()=>{const{showRequireMark:p}=e;return p!==void 0?p:t==null?void 0:t.props.showRequireMark}),c=I(()=>{const{requireMarkPlacement:p}=e;return p!==void 0?p:(t==null?void 0:t.props.requireMarkPlacement)||"right"}),u=B(!1),s=I(()=>{const{validationStatus:p}=e;if(p!==void 0)return p;if(u.value)return"error"}),h=I(()=>{const{showFeedback:p}=e;return p!==void 0?p:(t==null?void 0:t.props.showFeedback)!==void 0?t.props.showFeedback:!0}),w=I(()=>{const{showLabel:p}=e;return p!==void 0?p:(t==null?void 0:t.props.showLabel)!==void 0?t.props.showLabel:!0});return{validationErrored:u,mergedLabelStyle:i,mergedLabelPlacement:n,mergedLabelAlign:l,mergedShowRequireMark:a,mergedRequireMarkPlacement:c,mergedValidationStatus:s,mergedShowFeedback:h,mergedShowLabel:w,isAutoLabelWidth:r}}function ha(e){const t=De(kt,null),n=I(()=>{const{rulePath:i}=e;if(i!==void 0)return i;const{path:a}=e;if(a!==void 0)return a}),r=I(()=>{const i=[],{rule:a}=e;if(a!==void 0&&(Array.isArray(a)?i.push(...a):i.push(a)),t){const{rules:c}=t.props,{value:u}=n;if(c!==void 0&&u!==void 0){const s=Xn(c,u);s!==void 0&&(Array.isArray(s)?i.push(...s):i.push(s))}}return i}),o=I(()=>r.value.some(i=>i.required)),l=I(()=>o.value||e.required);return{mergedRules:r,mergedRequired:l}}const{cubicBezierEaseInOut:Bn}=ho;function va({name:e="fade-down",fromOffset:t="-4px",enterDuration:n=".3s",leaveDuration:r=".3s",enterCubicBezier:o=Bn,leaveCubicBezier:l=Bn}={}){return[te(`&.${e}-transition-enter-from, &.${e}-transition-leave-to`,{opacity:0,transform:`translateY(${t})`}),te(`&.${e}-transition-enter-to, &.${e}-transition-leave-from`,{opacity:1,transform:"translateY(0)"}),te(`&.${e}-transition-leave-active`,{transition:`opacity ${r} ${l}, transform ${r} ${l}`}),te(`&.${e}-transition-enter-active`,{transition:`opacity ${n} ${o}, transform ${n} ${o}`})]}const ga=$("form-item",` - display: grid; - line-height: var(--n-line-height); -`,[$("form-item-label",` - grid-area: label; - align-items: center; - line-height: 1.25; - text-align: var(--n-label-text-align); - font-size: var(--n-label-font-size); - min-height: var(--n-label-height); - padding: var(--n-label-padding); - color: var(--n-label-text-color); - transition: color .3s var(--n-bezier); - box-sizing: border-box; - font-weight: var(--n-label-font-weight); - `,[z("asterisk",` - white-space: nowrap; - user-select: none; - -webkit-user-select: none; - color: var(--n-asterisk-color); - transition: color .3s var(--n-bezier); - `),z("asterisk-placeholder",` - grid-area: mark; - user-select: none; - -webkit-user-select: none; - visibility: hidden; - `)]),$("form-item-blank",` - grid-area: blank; - min-height: var(--n-blank-height); - `),G("auto-label-width",[$("form-item-label","white-space: nowrap;")]),G("left-labelled",` - grid-template-areas: - "label blank" - "label feedback"; - grid-template-columns: auto minmax(0, 1fr); - grid-template-rows: auto 1fr; - align-items: start; - `,[$("form-item-label",` - display: grid; - grid-template-columns: 1fr auto; - min-height: var(--n-blank-height); - height: auto; - box-sizing: border-box; - flex-shrink: 0; - flex-grow: 0; - `,[G("reverse-columns-space",` - grid-template-columns: auto 1fr; - `),G("left-mark",` - grid-template-areas: - "mark text" - ". text"; - `),G("right-mark",` - grid-template-areas: - "text mark" - "text ."; - `),G("right-hanging-mark",` - grid-template-areas: - "text mark" - "text ."; - `),z("text",` - grid-area: text; - `),z("asterisk",` - grid-area: mark; - align-self: end; - `)])]),G("top-labelled",` - grid-template-areas: - "label" - "blank" - "feedback"; - grid-template-rows: minmax(var(--n-label-height), auto) 1fr; - grid-template-columns: minmax(0, 100%); - `,[G("no-label",` - grid-template-areas: - "blank" - "feedback"; - grid-template-rows: 1fr; - `),$("form-item-label",` - display: flex; - align-items: flex-start; - justify-content: var(--n-label-text-align); - `)]),$("form-item-blank",` - box-sizing: border-box; - display: flex; - align-items: center; - position: relative; - `),$("form-item-feedback-wrapper",` - grid-area: feedback; - box-sizing: border-box; - min-height: var(--n-feedback-height); - font-size: var(--n-feedback-font-size); - line-height: 1.25; - transform-origin: top left; - `,[te("&:not(:empty)",` - padding: var(--n-feedback-padding); - `),$("form-item-feedback",{transition:"color .3s var(--n-bezier)",color:"var(--n-feedback-text-color)"},[G("warning",{color:"var(--n-feedback-text-color-warning)"}),G("error",{color:"var(--n-feedback-text-color-error)"}),va({fromOffset:"-3px",enterDuration:".3s",leaveDuration:".2s"})])])]);var Ln=globalThis&&globalThis.__awaiter||function(e,t,n,r){function o(l){return l instanceof n?l:new n(function(i){i(l)})}return new(n||(n=Promise))(function(l,i){function a(s){try{u(r.next(s))}catch(h){i(h)}}function c(s){try{u(r.throw(s))}catch(h){i(h)}}function u(s){s.done?l(s.value):o(s.value).then(a,c)}u((r=r.apply(e,t||[])).next())})};const pa=Object.assign(Object.assign({},Ce.props),{label:String,labelWidth:[Number,String],labelStyle:[String,Object],labelAlign:String,labelPlacement:String,path:String,first:Boolean,rulePath:String,required:Boolean,showRequireMark:{type:Boolean,default:void 0},requireMarkPlacement:String,showFeedback:{type:Boolean,default:void 0},rule:[Object,Array],size:String,ignorePathChange:Boolean,validationStatus:String,feedback:String,showLabel:{type:Boolean,default:void 0},labelProps:Object});function Nn(e,t){return(...n)=>{try{const r=e(...n);return!t&&(typeof r=="boolean"||r instanceof Error||Array.isArray(r))||r!=null&&r.then?r:(r===void 0||Cn("form-item/validate",`You return a ${typeof r} typed value in the validator method, which is not recommended. Please use `+(t?"`Promise`":"`boolean`, `Error` or `Promise`")+" typed value instead."),!0)}catch(r){Cn("form-item/validate","An error is catched in the validation, so the validation won't be done. Your callback in `validate` method of `n-form` or `n-form-item` won't be called in this validation."),console.error(r);return}}}const ka=be({name:"FormItem",props:pa,setup(e){ko(or,"formItems",ge(e,"path"));const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=ut(e),r=De(kt,null),o=ua(e),l=fa(e),{validationErrored:i}=l,{mergedRequired:a,mergedRules:c}=ha(e),{mergedSize:u}=o,{mergedLabelPlacement:s,mergedLabelAlign:h,mergedRequireMarkPlacement:w}=l,p=B([]),g=B(xn()),y=r?ge(r.props,"disabled"):B(!1),A=Ce("Form","-form-item",ga,Yn,e,t);Te(ge(e,"path"),()=>{e.ignorePathChange||b()});function b(){p.value=[],i.value=!1,e.feedback&&(g.value=xn())}function M(){N("blur")}function F(){N("change")}function x(){N("focus")}function k(){N("input")}function L(_,Y){return Ln(this,void 0,void 0,function*(){let W,K,H,X;typeof _=="string"?(W=_,K=Y):_!==null&&typeof _=="object"&&(W=_.trigger,K=_.callback,H=_.shouldRuleBeApplied,X=_.options),yield new Promise((C,O)=>{N(W,H,X).then(({valid:Z,errors:ae})=>{Z?(K&&K(),C()):(K&&K(ae),O(ae))})})})}const N=(_=null,Y=()=>!0,W={suppressWarning:!0})=>Ln(this,void 0,void 0,function*(){const{path:K}=e;W?W.first||(W.first=e.first):W={};const{value:H}=c,X=r?Xn(r.props.model,K||""):void 0,C={},O={},Z=(_?H.filter(fe=>Array.isArray(fe.trigger)?fe.trigger.includes(_):fe.trigger===_):H).filter(Y).map((fe,pe)=>{const oe=Object.assign({},fe);if(oe.validator&&(oe.validator=Nn(oe.validator,!1)),oe.asyncValidator&&(oe.asyncValidator=Nn(oe.asyncValidator,!0)),oe.renderMessage){const le=`__renderMessage__${pe}`;O[le]=oe.message,oe.message=le,C[le]=oe.renderMessage}return oe});if(!Z.length)return{valid:!0};const ae=K??"__n_no_path__",me=new St({[ae]:Z}),{validateMessages:xe}=(r==null?void 0:r.props)||{};return xe&&me.messages(xe),yield new Promise(fe=>{me.validate({[ae]:X},W,pe=>{pe!=null&&pe.length?(p.value=pe.map(oe=>{const le=(oe==null?void 0:oe.message)||"";return{key:le,render:()=>le.startsWith("__renderMessage__")?C[le]():le}}),pe.forEach(oe=>{var le;!((le=oe.message)===null||le===void 0)&&le.startsWith("__renderMessage__")&&(oe.message=O[oe.message])}),i.value=!0,fe({valid:!1,errors:pe})):(b(),fe({valid:!0}))})})});Ze(vo,{path:ge(e,"path"),disabled:y,mergedSize:o.mergedSize,mergedValidationStatus:l.mergedValidationStatus,restoreValidation:b,handleContentBlur:M,handleContentChange:F,handleContentFocus:x,handleContentInput:k});const D={validate:L,restoreValidation:b,internalValidate:N},q=B(null);Xe(()=>{if(!l.isAutoLabelWidth.value)return;const _=q.value;if(_!==null){const Y=_.style.whiteSpace;_.style.whiteSpace="nowrap",_.style.width="",r==null||r.deriveMaxChildLabelWidth(Number(getComputedStyle(_).width.slice(0,-2))),_.style.whiteSpace=Y}});const j=I(()=>{var _;const{value:Y}=u,{value:W}=s,K=W==="top"?"vertical":"horizontal",{common:{cubicBezierEaseInOut:H},self:{labelTextColor:X,asteriskColor:C,lineHeight:O,feedbackTextColor:Z,feedbackTextColorWarning:ae,feedbackTextColorError:me,feedbackPadding:xe,labelFontWeight:fe,[ie("labelHeight",Y)]:pe,[ie("blankHeight",Y)]:oe,[ie("feedbackFontSize",Y)]:le,[ie("feedbackHeight",Y)]:ye,[ie("labelPadding",K)]:Pe,[ie("labelTextAlign",K)]:ke,[ie(ie("labelFontSize",W),Y)]:$e}}=A.value;let Re=(_=h.value)!==null&&_!==void 0?_:ke;return W==="top"&&(Re=Re==="right"?"flex-end":"flex-start"),{"--n-bezier":H,"--n-line-height":O,"--n-blank-height":oe,"--n-label-font-size":$e,"--n-label-text-align":Re,"--n-label-height":pe,"--n-label-padding":Pe,"--n-label-font-weight":fe,"--n-asterisk-color":C,"--n-label-text-color":X,"--n-feedback-padding":xe,"--n-feedback-font-size":le,"--n-feedback-height":ye,"--n-feedback-text-color":Z,"--n-feedback-text-color-warning":ae,"--n-feedback-text-color-error":me}}),S=n?Je("form-item",I(()=>{var _;return`${u.value[0]}${s.value[0]}${((_=h.value)===null||_===void 0?void 0:_[0])||""}`}),j,e):void 0,P=I(()=>s.value==="left"&&w.value==="left"&&h.value==="left");return Object.assign(Object.assign(Object.assign(Object.assign({labelElementRef:q,mergedClsPrefix:t,mergedRequired:a,feedbackId:g,renderExplains:p,reverseColSpace:P},l),o),D),{cssVars:n?void 0:j,themeClass:S==null?void 0:S.themeClass,onRender:S==null?void 0:S.onRender})},render(){const{$slots:e,mergedClsPrefix:t,mergedShowLabel:n,mergedShowRequireMark:r,mergedRequireMarkPlacement:o,onRender:l}=this,i=r!==void 0?r:this.mergedRequired;l==null||l();const a=()=>{const c=this.$slots.label?this.$slots.label():this.label;if(!c)return null;const u=f("span",{class:`${t}-form-item-label__text`},c),s=i?f("span",{class:`${t}-form-item-label__asterisk`},o!=="left"?" *":"* "):o==="right-hanging"&&f("span",{class:`${t}-form-item-label__asterisk-placeholder`}," *"),{labelProps:h}=this;return f("label",Object.assign({},h,{class:[h==null?void 0:h.class,`${t}-form-item-label`,`${t}-form-item-label--${o}-mark`,this.reverseColSpace&&`${t}-form-item-label--reverse-columns-space`],style:this.mergedLabelStyle,ref:"labelElementRef"}),o==="left"?[s,u]:[u,s])};return f("div",{class:[`${t}-form-item`,this.themeClass,`${t}-form-item--${this.mergedSize}-size`,`${t}-form-item--${this.mergedLabelPlacement}-labelled`,this.isAutoLabelWidth&&`${t}-form-item--auto-label-width`,!n&&`${t}-form-item--no-label`],style:this.cssVars},n&&a(),f("div",{class:[`${t}-form-item-blank`,this.mergedValidationStatus&&`${t}-form-item-blank--${this.mergedValidationStatus}`]},e),this.mergedShowFeedback?f("div",{key:this.feedbackId,class:`${t}-form-item-feedback-wrapper`},f(un,{name:"fade-down-transition",mode:"out-in"},{default:()=>{const{mergedValidationStatus:c}=this;return Ve(e.feedback,u=>{var s;const{feedback:h}=this,w=u||h?f("div",{key:"__feedback__",class:`${t}-form-item-feedback__line`},u||h):this.renderExplains.length?(s=this.renderExplains)===null||s===void 0?void 0:s.map(({key:p,render:g})=>f("div",{key:p,class:`${t}-form-item-feedback__line`},g())):null;return w?c==="warning"?f("div",{key:"controlled-warning",class:`${t}-form-item-feedback ${t}-form-item-feedback--warning`},w):c==="error"?f("div",{key:"controlled-error",class:`${t}-form-item-feedback ${t}-form-item-feedback--error`},w):c==="success"?f("div",{key:"controlled-success",class:`${t}-form-item-feedback ${t}-form-item-feedback--success`},w):f("div",{key:"controlled-default",class:`${t}-form-item-feedback`},w):null})}})):null)}}),Sa=["#00000000","#000000","#ffffff","#18A058","#2080F0","#F0A020","rgba(208, 48, 80, 1)","#C418D1FF"],Ra=[{label:"English",key:"en-US",value:"en-US"},{label:"简体中文",key:"zh-CN",value:"zh-CN"}];export{Mo as C,_o as E,wa as N,Po as V,ka as a,xa as b,ai as c,Ca as d,Sa as e,Gt as f,wi as g,Mt as h,fi as i,di as j,Ra as l,qt as m,pi as t,ya as u}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-36cf7848.css b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-36cf7848.css deleted file mode 100644 index c4e84d806..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-36cf7848.css +++ /dev/null @@ -1 +0,0 @@ -.link{color:#0059ff} diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-7ae5884e.css b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-7ae5884e.css deleted file mode 100644 index e39c06019..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-7ae5884e.css +++ /dev/null @@ -1 +0,0 @@ -.login-container{padding:20px;display:flex;justify-content:center;align-items:center;height:100vh;background-color:#f2f6ff}.dark .login-container{background-color:#2b2b2b}@media (min-width: 600px){.login-card{width:auto;margin:0 10px}.login-button{width:100%}}.login-card{margin:20px;min-width:400px}.login-title{text-align:center;margin:20px} diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-7e19b821.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-7e19b821.js deleted file mode 100644 index 57bfc417e..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-7e19b821.js +++ /dev/null @@ -1,913 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))o(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&o(a)}).observe(document,{childList:!0,subtree:!0});function r(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(n){if(n.ep)return;n.ep=!0;const i=r(n);fetch(n.href,i)}})();function Pc(e,t){const r=Object.create(null),o=e.split(",");for(let n=0;n!!r[n.toLowerCase()]:n=>!!r[n]}function kc(e){if(Pe(e)){const t={};for(let r=0;r{if(r){const o=r.split(Nv);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Lc(e){let t="";if(nt(e))t=e;else if(Pe(e))for(let r=0;rnt(e)?e:e==null?"":Pe(e)||Ye(e)&&(e.toString===Uh||!$e(e.toString))?JSON.stringify(e,Nh,2):String(e),Nh=(e,t)=>t&&t.__v_isRef?Nh(e,t.value):Xo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[o,n])=>(r[`${o} =>`]=n,r),{})}:Wh(t)?{[`Set(${t.size})`]:[...t.values()]}:Ye(t)&&!Pe(t)&&!Vh(t)?String(t):t,Xe={},Zo=[],or=()=>{},qv=()=>!1,Gv=/^on[^a-z]/,ss=e=>Gv.test(e),$c=e=>e.startsWith("onUpdate:"),gt=Object.assign,Ic=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},Kv=Object.prototype.hasOwnProperty,ze=(e,t)=>Kv.call(e,t),Pe=Array.isArray,Xo=e=>ls(e)==="[object Map]",Wh=e=>ls(e)==="[object Set]",$e=e=>typeof e=="function",nt=e=>typeof e=="string",Rc=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",jh=e=>Ye(e)&&$e(e.then)&&$e(e.catch),Uh=Object.prototype.toString,ls=e=>Uh.call(e),Zv=e=>ls(e).slice(8,-1),Vh=e=>ls(e)==="[object Object]",Ac=e=>nt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Zi=Pc(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cs=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},Xv=/-(\w)/g,vr=cs(e=>e.replace(Xv,(t,r)=>r?r.toUpperCase():"")),Yv=/\B([A-Z])/g,Ao=cs(e=>e.replace(Yv,"-$1").toLowerCase()),us=cs(e=>e.charAt(0).toUpperCase()+e.slice(1)),el=cs(e=>e?`on${us(e)}`:""),Gn=(e,t)=>!Object.is(e,t),Xi=(e,t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})},El=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Qv=e=>{const t=nt(e)?Number(e):NaN;return isNaN(t)?e:t};let o0;const Jv=()=>o0||(o0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let zt;class qh{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=zt,!t&&zt&&(this.index=(zt.scopes||(zt.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const r=zt;try{return zt=this,t()}finally{zt=r}}}on(){zt=this}off(){zt=this.parent}stop(t){if(this._active){let r,o;for(r=0,o=this.effects.length;r{const t=new Set(e);return t.w=0,t.n=0,t},Kh=e=>(e.w&eo)>0,Zh=e=>(e.n&eo)>0,rb=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let r=0;for(let o=0;o{(u==="length"||u>=l)&&s.push(c)})}else switch(r!==void 0&&s.push(a.get(r)),t){case"add":Pe(e)?Ac(r)&&s.push(a.get("length")):(s.push(a.get(Eo)),Xo(e)&&s.push(a.get(kl)));break;case"delete":Pe(e)||(s.push(a.get(Eo)),Xo(e)&&s.push(a.get(kl)));break;case"set":Xo(e)&&s.push(a.get(Eo));break}if(s.length===1)s[0]&&Ll(s[0]);else{const l=[];for(const c of s)c&&l.push(...c);Ll(Bc(l))}}function Ll(e,t){const r=Pe(e)?e:[...e];for(const o of r)o.computed&&i0(o);for(const o of r)o.computed||i0(o)}function i0(e,t){(e!==tr||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function nb(e,t){var r;return(r=da.get(e))===null||r===void 0?void 0:r.get(t)}const ib=Pc("__proto__,__v_isRef,__isVue"),Qh=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Rc)),ab=Mc(),sb=Mc(!1,!0),lb=Mc(!0),a0=cb();function cb(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...r){const o=He(this);for(let i=0,a=this.length;i{e[t]=function(...r){cn();const o=He(this)[t].apply(this,r);return un(),o}}),e}function ub(e){const t=He(this);return Ht(t,"has",e),t.hasOwnProperty(e)}function Mc(e=!1,t=!1){return function(o,n,i){if(n==="__v_isReactive")return!e;if(n==="__v_isReadonly")return e;if(n==="__v_isShallow")return t;if(n==="__v_raw"&&i===(e?t?Eb:op:t?rp:tp).get(o))return o;const a=Pe(o);if(!e){if(a&&ze(a0,n))return Reflect.get(a0,n,i);if(n==="hasOwnProperty")return ub}const s=Reflect.get(o,n,i);return(Rc(n)?Qh.has(n):ib(n))||(e||Ht(o,"get",n),t)?s:ot(s)?a&&Ac(n)?s:s.value:Ye(s)?e?nr(s):Or(s):s}}const db=Jh(),fb=Jh(!0);function Jh(e=!1){return function(r,o,n,i){let a=r[o];if(Jo(a)&&ot(a)&&!ot(n))return!1;if(!e&&(!fa(n)&&!Jo(n)&&(a=He(a),n=He(n)),!Pe(r)&&ot(a)&&!ot(n)))return a.value=n,!0;const s=Pe(r)&&Ac(o)?Number(o)e,ds=e=>Reflect.getPrototypeOf(e);function ki(e,t,r=!1,o=!1){e=e.__v_raw;const n=He(e),i=He(t);r||(t!==i&&Ht(n,"get",t),Ht(n,"get",i));const{has:a}=ds(n),s=o?Dc:r?Nc:Kn;if(a.call(n,t))return s(e.get(t));if(a.call(n,i))return s(e.get(i));e!==n&&e.get(t)}function Li(e,t=!1){const r=this.__v_raw,o=He(r),n=He(e);return t||(e!==n&&Ht(o,"has",e),Ht(o,"has",n)),e===n?r.has(e):r.has(e)||r.has(n)}function $i(e,t=!1){return e=e.__v_raw,!t&&Ht(He(e),"iterate",Eo),Reflect.get(e,"size",e)}function s0(e){e=He(e);const t=He(this);return ds(t).has.call(t,e)||(t.add(e),Ir(t,"add",e,e)),this}function l0(e,t){t=He(t);const r=He(this),{has:o,get:n}=ds(r);let i=o.call(r,e);i||(e=He(e),i=o.call(r,e));const a=n.call(r,e);return r.set(e,t),i?Gn(t,a)&&Ir(r,"set",e,t):Ir(r,"add",e,t),this}function c0(e){const t=He(this),{has:r,get:o}=ds(t);let n=r.call(t,e);n||(e=He(e),n=r.call(t,e)),o&&o.call(t,e);const i=t.delete(e);return n&&Ir(t,"delete",e,void 0),i}function u0(){const e=He(this),t=e.size!==0,r=e.clear();return t&&Ir(e,"clear",void 0,void 0),r}function Ii(e,t){return function(o,n){const i=this,a=i.__v_raw,s=He(a),l=t?Dc:e?Nc:Kn;return!e&&Ht(s,"iterate",Eo),a.forEach((c,u)=>o.call(n,l(c),l(u),i))}}function Ri(e,t,r){return function(...o){const n=this.__v_raw,i=He(n),a=Xo(i),s=e==="entries"||e===Symbol.iterator&&a,l=e==="keys"&&a,c=n[e](...o),u=r?Dc:t?Nc:Kn;return!t&&Ht(i,"iterate",l?kl:Eo),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:s?[u(d[0]),u(d[1])]:u(d),done:f}},[Symbol.iterator](){return this}}}}function Nr(e){return function(...t){return e==="delete"?!1:this}}function vb(){const e={get(i){return ki(this,i)},get size(){return $i(this)},has:Li,add:s0,set:l0,delete:c0,clear:u0,forEach:Ii(!1,!1)},t={get(i){return ki(this,i,!1,!0)},get size(){return $i(this)},has:Li,add:s0,set:l0,delete:c0,clear:u0,forEach:Ii(!1,!0)},r={get(i){return ki(this,i,!0)},get size(){return $i(this,!0)},has(i){return Li.call(this,i,!0)},add:Nr("add"),set:Nr("set"),delete:Nr("delete"),clear:Nr("clear"),forEach:Ii(!0,!1)},o={get(i){return ki(this,i,!0,!0)},get size(){return $i(this,!0)},has(i){return Li.call(this,i,!0)},add:Nr("add"),set:Nr("set"),delete:Nr("delete"),clear:Nr("clear"),forEach:Ii(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Ri(i,!1,!1),r[i]=Ri(i,!0,!1),t[i]=Ri(i,!1,!0),o[i]=Ri(i,!0,!0)}),[e,r,t,o]}const[bb,Cb,yb,Sb]=vb();function Fc(e,t){const r=t?e?Sb:yb:e?Cb:bb;return(o,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?o:Reflect.get(ze(r,n)&&n in o?r:o,n,i)}const wb={get:Fc(!1,!1)},_b={get:Fc(!1,!0)},Tb={get:Fc(!0,!1)},tp=new WeakMap,rp=new WeakMap,op=new WeakMap,Eb=new WeakMap;function Pb(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function kb(e){return e.__v_skip||!Object.isExtensible(e)?0:Pb(Zv(e))}function Or(e){return Jo(e)?e:zc(e,!1,ep,wb,tp)}function Lb(e){return zc(e,!1,xb,_b,rp)}function nr(e){return zc(e,!0,gb,Tb,op)}function zc(e,t,r,o,n){if(!Ye(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=n.get(e);if(i)return i;const a=kb(e);if(a===0)return e;const s=new Proxy(e,a===2?o:r);return n.set(e,s),s}function Qr(e){return Jo(e)?Qr(e.__v_raw):!!(e&&e.__v_isReactive)}function Jo(e){return!!(e&&e.__v_isReadonly)}function fa(e){return!!(e&&e.__v_isShallow)}function np(e){return Qr(e)||Jo(e)}function He(e){const t=e&&e.__v_raw;return t?He(t):e}function to(e){return ua(e,"__v_skip",!0),e}const Kn=e=>Ye(e)?Or(e):e,Nc=e=>Ye(e)?nr(e):e;function ip(e){Yr&&tr&&(e=He(e),Yh(e.dep||(e.dep=Bc())))}function ap(e,t){e=He(e);const r=e.dep;r&&Ll(r)}function ot(e){return!!(e&&e.__v_isRef===!0)}function de(e){return sp(e,!1)}function fs(e){return sp(e,!0)}function sp(e,t){return ot(e)?e:new $b(e,t)}class $b{constructor(t,r){this.__v_isShallow=r,this.dep=void 0,this.__v_isRef=!0,this._rawValue=r?t:He(t),this._value=r?t:Kn(t)}get value(){return ip(this),this._value}set value(t){const r=this.__v_isShallow||fa(t)||Jo(t);t=r?t:He(t),Gn(t,this._rawValue)&&(this._rawValue=t,this._value=r?t:Kn(t),ap(this))}}function pt(e){return ot(e)?e.value:e}const Ib={get:(e,t,r)=>pt(Reflect.get(e,t,r)),set:(e,t,r,o)=>{const n=e[t];return ot(n)&&!ot(r)?(n.value=r,!0):Reflect.set(e,t,r,o)}};function lp(e){return Qr(e)?e:new Proxy(e,Ib)}function Rb(e){const t=Pe(e)?new Array(e.length):{};for(const r in e)t[r]=Rr(e,r);return t}class Ab{constructor(t,r,o){this._object=t,this._key=r,this._defaultValue=o,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return nb(He(this._object),this._key)}}function Rr(e,t,r){const o=e[t];return ot(o)?o:new Ab(e,t,r)}var cp;class Ob{constructor(t,r,o,n){this._setter=r,this.dep=void 0,this.__v_isRef=!0,this[cp]=!1,this._dirty=!0,this.effect=new Hc(t,()=>{this._dirty||(this._dirty=!0,ap(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!n,this.__v_isReadonly=o}get value(){const t=He(this);return ip(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}cp="__v_isReadonly";function Bb(e,t,r=!1){let o,n;const i=$e(e);return i?(o=e,n=or):(o=e.get,n=e.set),new Ob(o,n,i||!n,r)}function Jr(e,t,r,o){let n;try{n=o?e(...o):e()}catch(i){mi(i,t,r)}return n}function Kt(e,t,r,o){if($e(e)){const i=Jr(e,t,r,o);return i&&jh(i)&&i.catch(a=>{mi(a,t,r)}),i}const n=[];for(let i=0;i>>1;Xn(_t[o])gr&&_t.splice(t,1)}function Fb(e){Pe(e)?Yo.push(...e):(!kr||!kr.includes(e,e.allowRecurse?xo+1:xo))&&Yo.push(e),dp()}function d0(e,t=Zn?gr+1:0){for(;t<_t.length;t++){const r=_t[t];r&&r.pre&&(_t.splice(t,1),t--,r())}}function fp(e){if(Yo.length){const t=[...new Set(Yo)];if(Yo.length=0,kr){kr.push(...t);return}for(kr=t,kr.sort((r,o)=>Xn(r)-Xn(o)),xo=0;xoe.id==null?1/0:e.id,zb=(e,t)=>{const r=Xn(e)-Xn(t);if(r===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function hp(e){$l=!1,Zn=!0,_t.sort(zb);const t=or;try{for(gr=0;gr<_t.length;gr++){const r=_t[gr];r&&r.active!==!1&&Jr(r,null,14)}}finally{gr=0,_t.length=0,fp(),Zn=!1,Wc=null,(_t.length||Yo.length)&&hp()}}function Nb(e,t,...r){if(e.isUnmounted)return;const o=e.vnode.props||Xe;let n=r;const i=t.startsWith("update:"),a=i&&t.slice(7);if(a&&a in o){const u=`${a==="modelValue"?"model":a}Modifiers`,{number:d,trim:f}=o[u]||Xe;f&&(n=r.map(p=>nt(p)?p.trim():p)),d&&(n=r.map(El))}let s,l=o[s=el(t)]||o[s=el(vr(t))];!l&&i&&(l=o[s=el(Ao(t))]),l&&Kt(l,e,6,n);const c=o[s+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Kt(c,e,6,n)}}function pp(e,t,r=!1){const o=t.emitsCache,n=o.get(e);if(n!==void 0)return n;const i=e.emits;let a={},s=!1;if(!$e(e)){const l=c=>{const u=pp(c,t,!0);u&&(s=!0,gt(a,u))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!i&&!s?(Ye(e)&&o.set(e,null),null):(Pe(i)?i.forEach(l=>a[l]=null):gt(a,i),Ye(e)&&o.set(e,a),a)}function ps(e,t){return!e||!ss(t)?!1:(t=t.slice(2).replace(/Once$/,""),ze(e,t[0].toLowerCase()+t.slice(1))||ze(e,Ao(t))||ze(e,t))}let bt=null,ms=null;function ha(e){const t=bt;return bt=e,ms=e&&e.type.__scopeId||null,t}function wB(e){ms=e}function _B(){ms=null}function Co(e,t=bt,r){if(!t||e._n)return e;const o=(...n)=>{o._d&&S0(-1);const i=ha(t);let a;try{a=e(...n)}finally{ha(i),o._d&&S0(1)}return a};return o._n=!0,o._c=!0,o._d=!0,o}function tl(e){const{type:t,vnode:r,proxy:o,withProxy:n,props:i,propsOptions:[a],slots:s,attrs:l,emit:c,render:u,renderCache:d,data:f,setupState:p,ctx:h,inheritAttrs:m}=e;let v,g;const x=ha(e);try{if(r.shapeFlag&4){const b=n||o;v=pr(u.call(b,b,d,i,p,f,h)),g=l}else{const b=t;v=pr(b.length>1?b(i,{attrs:l,slots:s,emit:c}):b(i,null)),g=t.props?l:Wb(l)}}catch(b){Mn.length=0,mi(b,e,1),v=qe(Lt)}let C=v;if(g&&m!==!1){const b=Object.keys(g),{shapeFlag:w}=C;b.length&&w&7&&(a&&b.some($c)&&(g=jb(g,a)),C=Ar(C,g))}return r.dirs&&(C=Ar(C),C.dirs=C.dirs?C.dirs.concat(r.dirs):r.dirs),r.transition&&(C.transition=r.transition),v=C,ha(x),v}const Wb=e=>{let t;for(const r in e)(r==="class"||r==="style"||ss(r))&&((t||(t={}))[r]=e[r]);return t},jb=(e,t)=>{const r={};for(const o in e)(!$c(o)||!(o.slice(9)in t))&&(r[o]=e[o]);return r};function Ub(e,t,r){const{props:o,children:n,component:i}=e,{props:a,children:s,patchFlag:l}=t,c=i.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return o?f0(o,a,c):!!a;if(l&8){const u=t.dynamicProps;for(let d=0;de.__isSuspense;function Gb(e,t){t&&t.pendingBranch?Pe(e)?t.effects.push(...e):t.effects.push(e):Fb(e)}function dt(e,t){if(rt){let r=rt.provides;const o=rt.parent&&rt.parent.provides;o===r&&(r=rt.provides=Object.create(o)),r[e]=t}}function Me(e,t,r=!1){const o=rt||bt;if(o){const n=o.parent==null?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides;if(n&&e in n)return n[e];if(arguments.length>1)return r&&$e(t)?t.call(o.proxy):t}}function gs(e,t){return jc(e,null,t)}const Ai={};function kt(e,t,r){return jc(e,t,r)}function jc(e,t,{immediate:r,deep:o,flush:n,onTrack:i,onTrigger:a}=Xe){const s=Gh()===(rt==null?void 0:rt.scope)?rt:null;let l,c=!1,u=!1;if(ot(e)?(l=()=>e.value,c=fa(e)):Qr(e)?(l=()=>e,o=!0):Pe(e)?(u=!0,c=e.some(C=>Qr(C)||fa(C)),l=()=>e.map(C=>{if(ot(C))return C.value;if(Qr(C))return yo(C);if($e(C))return Jr(C,s,2)})):$e(e)?t?l=()=>Jr(e,s,2):l=()=>{if(!(s&&s.isUnmounted))return d&&d(),Kt(e,s,3,[f])}:l=or,t&&o){const C=l;l=()=>yo(C())}let d,f=C=>{d=g.onStop=()=>{Jr(C,s,4)}},p;if(tn)if(f=or,t?r&&Kt(t,s,3,[l(),u?[]:void 0,f]):l(),n==="sync"){const C=B2();p=C.__watcherHandles||(C.__watcherHandles=[])}else return or;let h=u?new Array(e.length).fill(Ai):Ai;const m=()=>{if(g.active)if(t){const C=g.run();(o||c||(u?C.some((b,w)=>Gn(b,h[w])):Gn(C,h)))&&(d&&d(),Kt(t,s,3,[C,h===Ai?void 0:u&&h[0]===Ai?[]:h,f]),h=C)}else g.run()};m.allowRecurse=!!t;let v;n==="sync"?v=m:n==="post"?v=()=>Bt(m,s&&s.suspense):(m.pre=!0,s&&(m.id=s.uid),v=()=>hs(m));const g=new Hc(l,v);t?r?m():h=g.run():n==="post"?Bt(g.run.bind(g),s&&s.suspense):g.run();const x=()=>{g.stop(),s&&s.scope&&Ic(s.scope.effects,g)};return p&&p.push(x),x}function Kb(e,t,r){const o=this.proxy,n=nt(e)?e.includes(".")?mp(o,e):()=>o[e]:e.bind(o,o);let i;$e(t)?i=t:(i=t.handler,r=t);const a=rt;en(this);const s=jc(n,i.bind(o),r);return a?en(a):Po(),s}function mp(e,t){const r=t.split(".");return()=>{let o=e;for(let n=0;n{yo(r,t)});else if(Vh(e))for(const r in e)yo(e[r],t);return e}function gp(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Sr(()=>{e.isMounted=!0}),Zt(()=>{e.isUnmounting=!0}),e}const qt=[Function,Array],Zb={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:qt,onEnter:qt,onAfterEnter:qt,onEnterCancelled:qt,onBeforeLeave:qt,onLeave:qt,onAfterLeave:qt,onLeaveCancelled:qt,onBeforeAppear:qt,onAppear:qt,onAfterAppear:qt,onAppearCancelled:qt},setup(e,{slots:t}){const r=ir(),o=gp();let n;return()=>{const i=t.default&&Uc(t.default(),!0);if(!i||!i.length)return;let a=i[0];if(i.length>1){for(const m of i)if(m.type!==Lt){a=m;break}}const s=He(e),{mode:l}=s;if(o.isLeaving)return rl(a);const c=h0(a);if(!c)return rl(a);const u=Yn(c,s,o,r);Qn(c,u);const d=r.subTree,f=d&&h0(d);let p=!1;const{getTransitionKey:h}=c.type;if(h){const m=h();n===void 0?n=m:m!==n&&(n=m,p=!0)}if(f&&f.type!==Lt&&(!vo(c,f)||p)){const m=Yn(f,s,o,r);if(Qn(f,m),l==="out-in")return o.isLeaving=!0,m.afterLeave=()=>{o.isLeaving=!1,r.update.active!==!1&&r.update()},rl(a);l==="in-out"&&c.type!==Lt&&(m.delayLeave=(v,g,x)=>{const C=vp(o,f);C[String(f.key)]=f,v._leaveCb=()=>{g(),v._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=x})}return a}}},xp=Zb;function vp(e,t){const{leavingVNodes:r}=e;let o=r.get(t.type);return o||(o=Object.create(null),r.set(t.type,o)),o}function Yn(e,t,r,o){const{appear:n,mode:i,persisted:a=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:d,onLeave:f,onAfterLeave:p,onLeaveCancelled:h,onBeforeAppear:m,onAppear:v,onAfterAppear:g,onAppearCancelled:x}=t,C=String(e.key),b=vp(r,e),w=(E,I)=>{E&&Kt(E,o,9,I)},T=(E,I)=>{const P=I[1];w(E,I),Pe(E)?E.every($=>$.length<=1)&&P():E.length<=1&&P()},S={mode:i,persisted:a,beforeEnter(E){let I=s;if(!r.isMounted)if(n)I=m||s;else return;E._leaveCb&&E._leaveCb(!0);const P=b[C];P&&vo(e,P)&&P.el._leaveCb&&P.el._leaveCb(),w(I,[E])},enter(E){let I=l,P=c,$=u;if(!r.isMounted)if(n)I=v||l,P=g||c,$=x||u;else return;let R=!1;const B=E._enterCb=j=>{R||(R=!0,j?w($,[E]):w(P,[E]),S.delayedLeave&&S.delayedLeave(),E._enterCb=void 0)};I?T(I,[E,B]):B()},leave(E,I){const P=String(e.key);if(E._enterCb&&E._enterCb(!0),r.isUnmounting)return I();w(d,[E]);let $=!1;const R=E._leaveCb=B=>{$||($=!0,I(),B?w(h,[E]):w(p,[E]),E._leaveCb=void 0,b[P]===e&&delete b[P])};b[P]=e,f?T(f,[E,R]):R()},clone(E){return Yn(E,t,r,o)}};return S}function rl(e){if(gi(e))return e=Ar(e),e.children=null,e}function h0(e){return gi(e)?e.children?e.children[0]:void 0:e}function Qn(e,t){e.shapeFlag&6&&e.component?Qn(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 Uc(e,t=!1,r){let o=[],n=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader;function TB(e){$e(e)&&(e={loader:e});const{loader:t,loadingComponent:r,errorComponent:o,delay:n=200,timeout:i,suspensible:a=!0,onError:s}=e;let l=null,c,u=0;const d=()=>(u++,l=null,f()),f=()=>{let p;return l||(p=l=t().catch(h=>{if(h=h instanceof Error?h:new Error(String(h)),s)return new Promise((m,v)=>{s(h,()=>m(d()),()=>v(h),u+1)});throw h}).then(h=>p!==l&&l?l:(h&&(h.__esModule||h[Symbol.toStringTag]==="Module")&&(h=h.default),c=h,h)))};return Oe({name:"AsyncComponentWrapper",__asyncLoader:f,get __asyncResolved(){return c},setup(){const p=rt;if(c)return()=>ol(c,p);const h=x=>{l=null,mi(x,p,13,!o)};if(a&&p.suspense||tn)return f().then(x=>()=>ol(x,p)).catch(x=>(h(x),()=>o?qe(o,{error:x}):null));const m=de(!1),v=de(),g=de(!!n);return n&&setTimeout(()=>{g.value=!1},n),i!=null&&setTimeout(()=>{if(!m.value&&!v.value){const x=new Error(`Async component timed out after ${i}ms.`);h(x),v.value=x}},i),f().then(()=>{m.value=!0,p.parent&&gi(p.parent.vnode)&&hs(p.parent.update)}).catch(x=>{h(x),v.value=x}),()=>{if(m.value&&c)return ol(c,p);if(v.value&&o)return qe(o,{error:v.value});if(r&&!g.value)return qe(r)}}})}function ol(e,t){const{ref:r,props:o,children:n,ce:i}=t.vnode,a=qe(e,o,n);return a.ref=r,a.ce=i,delete t.vnode.ce,a}const gi=e=>e.type.__isKeepAlive;function bp(e,t){yp(e,"a",t)}function Cp(e,t){yp(e,"da",t)}function yp(e,t,r=rt){const o=e.__wdc||(e.__wdc=()=>{let n=r;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(xs(t,o,r),r){let n=r.parent;for(;n&&n.parent;)gi(n.parent.vnode)&&Xb(o,t,r,n),n=n.parent}}function Xb(e,t,r,o){const n=xs(t,e,o,!0);Vc(()=>{Ic(o[t],n)},r)}function xs(e,t,r=rt,o=!1){if(r){const n=r[e]||(r[e]=[]),i=t.__weh||(t.__weh=(...a)=>{if(r.isUnmounted)return;cn(),en(r);const s=Kt(t,r,e,a);return Po(),un(),s});return o?n.unshift(i):n.push(i),i}}const Br=e=>(t,r=rt)=>(!tn||e==="sp")&&xs(e,(...o)=>t(...o),r),Hr=Br("bm"),Sr=Br("m"),Yb=Br("bu"),Sp=Br("u"),Zt=Br("bum"),Vc=Br("um"),Qb=Br("sp"),Jb=Br("rtg"),e2=Br("rtc");function t2(e,t=rt){xs("ec",e,t)}function pa(e,t){const r=bt;if(r===null)return e;const o=Ss(r)||r.proxy,n=e.dirs||(e.dirs=[]);for(let i=0;it(a,s,void 0,i&&i[s]));else{const a=Object.keys(e);n=new Array(a.length);for(let s=0,l=a.length;sei(t)?!(t.type===Lt||t.type===Je&&!Ep(t.children)):!0)?e:null}const Il=e=>e?Dp(e)?Ss(e)||e.proxy:Il(e.parent):null,Bn=gt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Il(e.parent),$root:e=>Il(e.root),$emit:e=>e.emit,$options:e=>Gc(e),$forceUpdate:e=>e.f||(e.f=()=>hs(e.update)),$nextTick:e=>e.n||(e.n=jt.bind(e.proxy)),$watch:e=>Kb.bind(e)}),nl=(e,t)=>e!==Xe&&!e.__isScriptSetup&&ze(e,t),o2={get({_:e},t){const{ctx:r,setupState:o,data:n,props:i,accessCache:a,type:s,appContext:l}=e;let c;if(t[0]!=="$"){const p=a[t];if(p!==void 0)switch(p){case 1:return o[t];case 2:return n[t];case 4:return r[t];case 3:return i[t]}else{if(nl(o,t))return a[t]=1,o[t];if(n!==Xe&&ze(n,t))return a[t]=2,n[t];if((c=e.propsOptions[0])&&ze(c,t))return a[t]=3,i[t];if(r!==Xe&&ze(r,t))return a[t]=4,r[t];Rl&&(a[t]=0)}}const u=Bn[t];let d,f;if(u)return t==="$attrs"&&Ht(e,"get",t),u(e);if((d=s.__cssModules)&&(d=d[t]))return d;if(r!==Xe&&ze(r,t))return a[t]=4,r[t];if(f=l.config.globalProperties,ze(f,t))return f[t]},set({_:e},t,r){const{data:o,setupState:n,ctx:i}=e;return nl(n,t)?(n[t]=r,!0):o!==Xe&&ze(o,t)?(o[t]=r,!0):ze(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:o,appContext:n,propsOptions:i}},a){let s;return!!r[a]||e!==Xe&&ze(e,a)||nl(t,a)||(s=i[0])&&ze(s,a)||ze(o,a)||ze(Bn,a)||ze(n.config.globalProperties,a)},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:ze(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};let Rl=!0;function n2(e){const t=Gc(e),r=e.proxy,o=e.ctx;Rl=!1,t.beforeCreate&&m0(t.beforeCreate,e,"bc");const{data:n,computed:i,methods:a,watch:s,provide:l,inject:c,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:h,activated:m,deactivated:v,beforeDestroy:g,beforeUnmount:x,destroyed:C,unmounted:b,render:w,renderTracked:T,renderTriggered:S,errorCaptured:E,serverPrefetch:I,expose:P,inheritAttrs:$,components:R,directives:B,filters:j}=t;if(c&&i2(c,o,null,e.appContext.config.unwrapInjectedRef),a)for(const Q in a){const ie=a[Q];$e(ie)&&(o[Q]=ie.bind(r))}if(n){const Q=n.call(r,r);Ye(Q)&&(e.data=Or(Q))}if(Rl=!0,i)for(const Q in i){const ie=i[Q],ge=$e(ie)?ie.bind(r,r):$e(ie.get)?ie.get.bind(r,r):or,ve=!$e(ie)&&$e(ie.set)?ie.set.bind(r):or,z=ae({get:ge,set:ve});Object.defineProperty(o,Q,{enumerable:!0,configurable:!0,get:()=>z.value,set:W=>z.value=W})}if(s)for(const Q in s)Pp(s[Q],o,r,Q);if(l){const Q=$e(l)?l.call(r):l;Reflect.ownKeys(Q).forEach(ie=>{dt(ie,Q[ie])})}u&&m0(u,e,"c");function J(Q,ie){Pe(ie)?ie.forEach(ge=>Q(ge.bind(r))):ie&&Q(ie.bind(r))}if(J(Hr,d),J(Sr,f),J(Yb,p),J(Sp,h),J(bp,m),J(Cp,v),J(t2,E),J(e2,T),J(Jb,S),J(Zt,x),J(Vc,b),J(Qb,I),Pe(P))if(P.length){const Q=e.exposed||(e.exposed={});P.forEach(ie=>{Object.defineProperty(Q,ie,{get:()=>r[ie],set:ge=>r[ie]=ge})})}else e.exposed||(e.exposed={});w&&e.render===or&&(e.render=w),$!=null&&(e.inheritAttrs=$),R&&(e.components=R),B&&(e.directives=B)}function i2(e,t,r=or,o=!1){Pe(e)&&(e=Al(e));for(const n in e){const i=e[n];let a;Ye(i)?"default"in i?a=Me(i.from||n,i.default,!0):a=Me(i.from||n):a=Me(i),ot(a)&&o?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:s=>a.value=s}):t[n]=a}}function m0(e,t,r){Kt(Pe(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,r)}function Pp(e,t,r,o){const n=o.includes(".")?mp(r,o):()=>r[o];if(nt(e)){const i=t[e];$e(i)&&kt(n,i)}else if($e(e))kt(n,e.bind(r));else if(Ye(e))if(Pe(e))e.forEach(i=>Pp(i,t,r,o));else{const i=$e(e.handler)?e.handler.bind(r):t[e.handler];$e(i)&&kt(n,i,e)}}function Gc(e){const t=e.type,{mixins:r,extends:o}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:a}}=e.appContext,s=i.get(t);let l;return s?l=s:!n.length&&!r&&!o?l=t:(l={},n.length&&n.forEach(c=>ma(l,c,a,!0)),ma(l,t,a)),Ye(t)&&i.set(t,l),l}function ma(e,t,r,o=!1){const{mixins:n,extends:i}=t;i&&ma(e,i,r,!0),n&&n.forEach(a=>ma(e,a,r,!0));for(const a in t)if(!(o&&a==="expose")){const s=a2[a]||r&&r[a];e[a]=s?s(e[a],t[a]):t[a]}return e}const a2={data:g0,props:go,emits:go,methods:go,computed:go,beforeCreate:Tt,created:Tt,beforeMount:Tt,mounted:Tt,beforeUpdate:Tt,updated:Tt,beforeDestroy:Tt,beforeUnmount:Tt,destroyed:Tt,unmounted:Tt,activated:Tt,deactivated:Tt,errorCaptured:Tt,serverPrefetch:Tt,components:go,directives:go,watch:l2,provide:g0,inject:s2};function g0(e,t){return t?e?function(){return gt($e(e)?e.call(this,this):e,$e(t)?t.call(this,this):t)}:t:e}function s2(e,t){return go(Al(e),Al(t))}function Al(e){if(Pe(e)){const t={};for(let r=0;r0)&&!(a&16)){if(a&8){const u=e.vnode.dynamicProps;for(let d=0;d{l=!0;const[f,p]=Lp(d,t,!0);gt(a,f),p&&s.push(...p)};!r&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!i&&!l)return Ye(e)&&o.set(e,Zo),Zo;if(Pe(i))for(let u=0;u-1,p[1]=m<0||h-1||ze(p,"default"))&&s.push(d)}}}const c=[a,s];return Ye(e)&&o.set(e,c),c}function x0(e){return e[0]!=="$"}function v0(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function b0(e,t){return v0(e)===v0(t)}function C0(e,t){return Pe(t)?t.findIndex(r=>b0(r,e)):$e(t)&&b0(t,e)?0:-1}const $p=e=>e[0]==="_"||e==="$stable",Kc=e=>Pe(e)?e.map(pr):[pr(e)],d2=(e,t,r)=>{if(t._n)return t;const o=Co((...n)=>Kc(t(...n)),r);return o._c=!1,o},Ip=(e,t,r)=>{const o=e._ctx;for(const n in e){if($p(n))continue;const i=e[n];if($e(i))t[n]=d2(n,i,o);else if(i!=null){const a=Kc(i);t[n]=()=>a}}},Rp=(e,t)=>{const r=Kc(t);e.slots.default=()=>r},f2=(e,t)=>{if(e.vnode.shapeFlag&32){const r=t._;r?(e.slots=He(t),ua(t,"_",r)):Ip(t,e.slots={})}else e.slots={},t&&Rp(e,t);ua(e.slots,ys,1)},h2=(e,t,r)=>{const{vnode:o,slots:n}=e;let i=!0,a=Xe;if(o.shapeFlag&32){const s=t._;s?r&&s===1?i=!1:(gt(n,t),!r&&s===1&&delete n._):(i=!t.$stable,Ip(t,n)),a=t}else t&&(Rp(e,t),a={default:1});if(i)for(const s in n)!$p(s)&&!(s in a)&&delete n[s]};function Ap(){return{app:null,config:{isNativeTag:qv,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let p2=0;function m2(e,t){return function(o,n=null){$e(o)||(o=Object.assign({},o)),n!=null&&!Ye(n)&&(n=null);const i=Ap(),a=new Set;let s=!1;const l=i.app={_uid:p2++,_component:o,_props:n,_container:null,_context:i,_instance:null,version:H2,get config(){return i.config},set config(c){},use(c,...u){return a.has(c)||(c&&$e(c.install)?(a.add(c),c.install(l,...u)):$e(c)&&(a.add(c),c(l,...u))),l},mixin(c){return i.mixins.includes(c)||i.mixins.push(c),l},component(c,u){return u?(i.components[c]=u,l):i.components[c]},directive(c,u){return u?(i.directives[c]=u,l):i.directives[c]},mount(c,u,d){if(!s){const f=qe(o,n);return f.appContext=i,u&&t?t(f,c):e(f,c,d),s=!0,l._container=c,c.__vue_app__=l,Ss(f.component)||f.component.proxy}},unmount(){s&&(e(null,l._container),delete l._container.__vue_app__)},provide(c,u){return i.provides[c]=u,l}};return l}}function Bl(e,t,r,o,n=!1){if(Pe(e)){e.forEach((f,p)=>Bl(f,t&&(Pe(t)?t[p]:t),r,o,n));return}if(On(o)&&!n)return;const i=o.shapeFlag&4?Ss(o.component)||o.component.proxy:o.el,a=n?null:i,{i:s,r:l}=e,c=t&&t.r,u=s.refs===Xe?s.refs={}:s.refs,d=s.setupState;if(c!=null&&c!==l&&(nt(c)?(u[c]=null,ze(d,c)&&(d[c]=null)):ot(c)&&(c.value=null)),$e(l))Jr(l,s,12,[a,u]);else{const f=nt(l),p=ot(l);if(f||p){const h=()=>{if(e.f){const m=f?ze(d,l)?d[l]:u[l]:l.value;n?Pe(m)&&Ic(m,i):Pe(m)?m.includes(i)||m.push(i):f?(u[l]=[i],ze(d,l)&&(d[l]=u[l])):(l.value=[i],e.k&&(u[e.k]=l.value))}else f?(u[l]=a,ze(d,l)&&(d[l]=a)):p&&(l.value=a,e.k&&(u[e.k]=a))};a?(h.id=-1,Bt(h,r)):h()}}}const Bt=Gb;function g2(e){return x2(e)}function x2(e,t){const r=Jv();r.__VUE__=!0;const{insert:o,remove:n,patchProp:i,createElement:a,createText:s,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:f,setScopeId:p=or,insertStaticContent:h}=e,m=(k,y,_,L=null,O=null,N=null,X=!1,te=null,q=!!y.dynamicChildren)=>{if(k===y)return;k&&!vo(k,y)&&(L=re(k),W(k,O,N,!0),k=null),y.patchFlag===-2&&(q=!1,y.dynamicChildren=null);const{type:F,ref:A,shapeFlag:M}=y;switch(F){case xi:v(k,y,_,L);break;case Lt:g(k,y,_,L);break;case Yi:k==null&&x(y,_,L,X);break;case Je:R(k,y,_,L,O,N,X,te,q);break;default:M&1?w(k,y,_,L,O,N,X,te,q):M&6?B(k,y,_,L,O,N,X,te,q):(M&64||M&128)&&F.process(k,y,_,L,O,N,X,te,q,ce)}A!=null&&O&&Bl(A,k&&k.ref,N,y||k,!y)},v=(k,y,_,L)=>{if(k==null)o(y.el=s(y.children),_,L);else{const O=y.el=k.el;y.children!==k.children&&c(O,y.children)}},g=(k,y,_,L)=>{k==null?o(y.el=l(y.children||""),_,L):y.el=k.el},x=(k,y,_,L)=>{[k.el,k.anchor]=h(k.children,y,_,L,k.el,k.anchor)},C=({el:k,anchor:y},_,L)=>{let O;for(;k&&k!==y;)O=f(k),o(k,_,L),k=O;o(y,_,L)},b=({el:k,anchor:y})=>{let _;for(;k&&k!==y;)_=f(k),n(k),k=_;n(y)},w=(k,y,_,L,O,N,X,te,q)=>{X=X||y.type==="svg",k==null?T(y,_,L,O,N,X,te,q):I(k,y,O,N,X,te,q)},T=(k,y,_,L,O,N,X,te)=>{let q,F;const{type:A,props:M,shapeFlag:ue,transition:xe,dirs:Te}=k;if(q=k.el=a(k.type,N,M&&M.is,M),ue&8?u(q,k.children):ue&16&&E(k.children,q,null,L,O,N&&A!=="foreignObject",X,te),Te&&fo(k,null,L,"created"),S(q,k,k.scopeId,X,L),M){for(const Re in M)Re!=="value"&&!Zi(Re)&&i(q,Re,null,M[Re],N,k.children,L,O,U);"value"in M&&i(q,"value",null,M.value),(F=M.onVnodeBeforeMount)&&ur(F,L,k)}Te&&fo(k,null,L,"beforeMount");const Ie=(!O||O&&!O.pendingBranch)&&xe&&!xe.persisted;Ie&&xe.beforeEnter(q),o(q,y,_),((F=M&&M.onVnodeMounted)||Ie||Te)&&Bt(()=>{F&&ur(F,L,k),Ie&&xe.enter(q),Te&&fo(k,null,L,"mounted")},O)},S=(k,y,_,L,O)=>{if(_&&p(k,_),L)for(let N=0;N{for(let F=q;F{const te=y.el=k.el;let{patchFlag:q,dynamicChildren:F,dirs:A}=y;q|=k.patchFlag&16;const M=k.props||Xe,ue=y.props||Xe;let xe;_&&ho(_,!1),(xe=ue.onVnodeBeforeUpdate)&&ur(xe,_,y,k),A&&fo(y,k,_,"beforeUpdate"),_&&ho(_,!0);const Te=O&&y.type!=="foreignObject";if(F?P(k.dynamicChildren,F,te,_,L,Te,N):X||ie(k,y,te,null,_,L,Te,N,!1),q>0){if(q&16)$(te,y,M,ue,_,L,O);else if(q&2&&M.class!==ue.class&&i(te,"class",null,ue.class,O),q&4&&i(te,"style",M.style,ue.style,O),q&8){const Ie=y.dynamicProps;for(let Re=0;Re{xe&&ur(xe,_,y,k),A&&fo(y,k,_,"updated")},L)},P=(k,y,_,L,O,N,X)=>{for(let te=0;te{if(_!==L){if(_!==Xe)for(const te in _)!Zi(te)&&!(te in L)&&i(k,te,_[te],null,X,y.children,O,N,U);for(const te in L){if(Zi(te))continue;const q=L[te],F=_[te];q!==F&&te!=="value"&&i(k,te,F,q,X,y.children,O,N,U)}"value"in L&&i(k,"value",_.value,L.value)}},R=(k,y,_,L,O,N,X,te,q)=>{const F=y.el=k?k.el:s(""),A=y.anchor=k?k.anchor:s("");let{patchFlag:M,dynamicChildren:ue,slotScopeIds:xe}=y;xe&&(te=te?te.concat(xe):xe),k==null?(o(F,_,L),o(A,_,L),E(y.children,_,A,O,N,X,te,q)):M>0&&M&64&&ue&&k.dynamicChildren?(P(k.dynamicChildren,ue,_,O,N,X,te),(y.key!=null||O&&y===O.subTree)&&Zc(k,y,!0)):ie(k,y,_,A,O,N,X,te,q)},B=(k,y,_,L,O,N,X,te,q)=>{y.slotScopeIds=te,k==null?y.shapeFlag&512?O.ctx.activate(y,_,L,X,q):j(y,_,L,O,N,X,q):Y(k,y,q)},j=(k,y,_,L,O,N,X)=>{const te=k.component=P2(k,L,O);if(gi(k)&&(te.ctx.renderer=ce),k2(te),te.asyncDep){if(O&&O.registerDep(te,J),!k.el){const q=te.subTree=qe(Lt);g(null,q,y,_)}return}J(te,k,y,_,O,N,X)},Y=(k,y,_)=>{const L=y.component=k.component;if(Ub(k,y,_))if(L.asyncDep&&!L.asyncResolved){Q(L,y,_);return}else L.next=y,Db(L.update),L.update();else y.el=k.el,L.vnode=y},J=(k,y,_,L,O,N,X)=>{const te=()=>{if(k.isMounted){let{next:A,bu:M,u:ue,parent:xe,vnode:Te}=k,Ie=A,Re;ho(k,!1),A?(A.el=Te.el,Q(k,A,X)):A=Te,M&&Xi(M),(Re=A.props&&A.props.onVnodeBeforeUpdate)&&ur(Re,xe,A,Te),ho(k,!0);const Ue=tl(k),ct=k.subTree;k.subTree=Ue,m(ct,Ue,d(ct.el),re(ct),k,O,N),A.el=Ue.el,Ie===null&&Vb(k,Ue.el),ue&&Bt(ue,O),(Re=A.props&&A.props.onVnodeUpdated)&&Bt(()=>ur(Re,xe,A,Te),O)}else{let A;const{el:M,props:ue}=y,{bm:xe,m:Te,parent:Ie}=k,Re=On(y);if(ho(k,!1),xe&&Xi(xe),!Re&&(A=ue&&ue.onVnodeBeforeMount)&&ur(A,Ie,y),ho(k,!0),M&&ye){const Ue=()=>{k.subTree=tl(k),ye(M,k.subTree,k,O,null)};Re?y.type.__asyncLoader().then(()=>!k.isUnmounted&&Ue()):Ue()}else{const Ue=k.subTree=tl(k);m(null,Ue,_,L,k,O,N),y.el=Ue.el}if(Te&&Bt(Te,O),!Re&&(A=ue&&ue.onVnodeMounted)){const Ue=y;Bt(()=>ur(A,Ie,Ue),O)}(y.shapeFlag&256||Ie&&On(Ie.vnode)&&Ie.vnode.shapeFlag&256)&&k.a&&Bt(k.a,O),k.isMounted=!0,y=_=L=null}},q=k.effect=new Hc(te,()=>hs(F),k.scope),F=k.update=()=>q.run();F.id=k.uid,ho(k,!0),F()},Q=(k,y,_)=>{y.component=k;const L=k.vnode.props;k.vnode=y,k.next=null,u2(k,y.props,L,_),h2(k,y.children,_),cn(),d0(),un()},ie=(k,y,_,L,O,N,X,te,q=!1)=>{const F=k&&k.children,A=k?k.shapeFlag:0,M=y.children,{patchFlag:ue,shapeFlag:xe}=y;if(ue>0){if(ue&128){ve(F,M,_,L,O,N,X,te,q);return}else if(ue&256){ge(F,M,_,L,O,N,X,te,q);return}}xe&8?(A&16&&U(F,O,N),M!==F&&u(_,M)):A&16?xe&16?ve(F,M,_,L,O,N,X,te,q):U(F,O,N,!0):(A&8&&u(_,""),xe&16&&E(M,_,L,O,N,X,te,q))},ge=(k,y,_,L,O,N,X,te,q)=>{k=k||Zo,y=y||Zo;const F=k.length,A=y.length,M=Math.min(F,A);let ue;for(ue=0;ueA?U(k,O,N,!0,!1,M):E(y,_,L,O,N,X,te,q,M)},ve=(k,y,_,L,O,N,X,te,q)=>{let F=0;const A=y.length;let M=k.length-1,ue=A-1;for(;F<=M&&F<=ue;){const xe=k[F],Te=y[F]=q?Zr(y[F]):pr(y[F]);if(vo(xe,Te))m(xe,Te,_,null,O,N,X,te,q);else break;F++}for(;F<=M&&F<=ue;){const xe=k[M],Te=y[ue]=q?Zr(y[ue]):pr(y[ue]);if(vo(xe,Te))m(xe,Te,_,null,O,N,X,te,q);else break;M--,ue--}if(F>M){if(F<=ue){const xe=ue+1,Te=xeue)for(;F<=M;)W(k[F],O,N,!0),F++;else{const xe=F,Te=F,Ie=new Map;for(F=Te;F<=ue;F++){const vt=y[F]=q?Zr(y[F]):pr(y[F]);vt.key!=null&&Ie.set(vt.key,F)}let Re,Ue=0;const ct=ue-Te+1;let xt=!1,lr=0;const cr=new Array(ct);for(F=0;F=ct){W(vt,O,N,!0);continue}let oe;if(vt.key!=null)oe=Ie.get(vt.key);else for(Re=Te;Re<=ue;Re++)if(cr[Re-Te]===0&&vo(vt,y[Re])){oe=Re;break}oe===void 0?W(vt,O,N,!0):(cr[oe-Te]=F+1,oe>=lr?lr=oe:xt=!0,m(vt,y[oe],_,null,O,N,X,te,q),Ue++)}const Ut=xt?v2(cr):Zo;for(Re=Ut.length-1,F=ct-1;F>=0;F--){const vt=Te+F,oe=y[vt],be=vt+1{const{el:N,type:X,transition:te,children:q,shapeFlag:F}=k;if(F&6){z(k.component.subTree,y,_,L);return}if(F&128){k.suspense.move(y,_,L);return}if(F&64){X.move(k,y,_,ce);return}if(X===Je){o(N,y,_);for(let M=0;Mte.enter(N),O);else{const{leave:M,delayLeave:ue,afterLeave:xe}=te,Te=()=>o(N,y,_),Ie=()=>{M(N,()=>{Te(),xe&&xe()})};ue?ue(N,Te,Ie):Ie()}else o(N,y,_)},W=(k,y,_,L=!1,O=!1)=>{const{type:N,props:X,ref:te,children:q,dynamicChildren:F,shapeFlag:A,patchFlag:M,dirs:ue}=k;if(te!=null&&Bl(te,null,_,k,!0),A&256){y.ctx.deactivate(k);return}const xe=A&1&&ue,Te=!On(k);let Ie;if(Te&&(Ie=X&&X.onVnodeBeforeUnmount)&&ur(Ie,y,k),A&6)D(k.component,_,L);else{if(A&128){k.suspense.unmount(_,L);return}xe&&fo(k,null,y,"beforeUnmount"),A&64?k.type.remove(k,y,_,O,ce,L):F&&(N!==Je||M>0&&M&64)?U(F,y,_,!1,!0):(N===Je&&M&384||!O&&A&16)&&U(q,y,_),L&&Z(k)}(Te&&(Ie=X&&X.onVnodeUnmounted)||xe)&&Bt(()=>{Ie&&ur(Ie,y,k),xe&&fo(k,null,y,"unmounted")},_)},Z=k=>{const{type:y,el:_,anchor:L,transition:O}=k;if(y===Je){V(_,L);return}if(y===Yi){b(k);return}const N=()=>{n(_),O&&!O.persisted&&O.afterLeave&&O.afterLeave()};if(k.shapeFlag&1&&O&&!O.persisted){const{leave:X,delayLeave:te}=O,q=()=>X(_,N);te?te(k.el,N,q):q()}else N()},V=(k,y)=>{let _;for(;k!==y;)_=f(k),n(k),k=_;n(y)},D=(k,y,_)=>{const{bum:L,scope:O,update:N,subTree:X,um:te}=k;L&&Xi(L),O.stop(),N&&(N.active=!1,W(X,k,y,_)),te&&Bt(te,y),Bt(()=>{k.isUnmounted=!0},y),y&&y.pendingBranch&&!y.isUnmounted&&k.asyncDep&&!k.asyncResolved&&k.suspenseId===y.pendingId&&(y.deps--,y.deps===0&&y.resolve())},U=(k,y,_,L=!1,O=!1,N=0)=>{for(let X=N;Xk.shapeFlag&6?re(k.component.subTree):k.shapeFlag&128?k.suspense.next():f(k.anchor||k.el),ee=(k,y,_)=>{k==null?y._vnode&&W(y._vnode,null,null,!0):m(y._vnode||null,k,y,null,null,null,_),d0(),fp(),y._vnode=k},ce={p:m,um:W,m:z,r:Z,mt:j,mc:E,pc:ie,pbc:P,n:re,o:e};let ke,ye;return t&&([ke,ye]=t(ce)),{render:ee,hydrate:ke,createApp:m2(ee,ke)}}function ho({effect:e,update:t},r){e.allowRecurse=t.allowRecurse=r}function Zc(e,t,r=!1){const o=e.children,n=t.children;if(Pe(o)&&Pe(n))for(let i=0;i>1,e[r[s]]0&&(t[o]=r[i-1]),r[i]=o)}}for(i=r.length,a=r[i-1];i-- >0;)r[i]=a,a=t[a];return r}const b2=e=>e.__isTeleport,Hn=e=>e&&(e.disabled||e.disabled===""),y0=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Hl=(e,t)=>{const r=e&&e.to;return nt(r)?t?t(r):null:r},C2={__isTeleport:!0,process(e,t,r,o,n,i,a,s,l,c){const{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:h,createText:m,createComment:v}}=c,g=Hn(t.props);let{shapeFlag:x,children:C,dynamicChildren:b}=t;if(e==null){const w=t.el=m(""),T=t.anchor=m("");p(w,r,o),p(T,r,o);const S=t.target=Hl(t.props,h),E=t.targetAnchor=m("");S&&(p(E,S),a=a||y0(S));const I=(P,$)=>{x&16&&u(C,P,$,n,i,a,s,l)};g?I(r,T):S&&I(S,E)}else{t.el=e.el;const w=t.anchor=e.anchor,T=t.target=e.target,S=t.targetAnchor=e.targetAnchor,E=Hn(e.props),I=E?r:T,P=E?w:S;if(a=a||y0(T),b?(f(e.dynamicChildren,b,I,n,i,a,s),Zc(e,t,!0)):l||d(e,t,I,P,n,i,a,s,!1),g)E||Oi(t,r,w,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const $=t.target=Hl(t.props,h);$&&Oi(t,$,null,c,0)}else E&&Oi(t,T,S,c,1)}Op(t)},remove(e,t,r,o,{um:n,o:{remove:i}},a){const{shapeFlag:s,children:l,anchor:c,targetAnchor:u,target:d,props:f}=e;if(d&&i(u),(a||!Hn(f))&&(i(c),s&16))for(let p=0;p0?rr||Zo:null,S2(),Jn>0&&rr&&rr.push(e),e}function kB(e,t,r,o,n,i){return Bp(Mp(e,t,r,o,n,i,!0))}function Cs(e,t,r,o,n){return Bp(qe(e,t,r,o,n,!0))}function ei(e){return e?e.__v_isVNode===!0:!1}function vo(e,t){return e.type===t.type&&e.key===t.key}const ys="__vInternal",Hp=({key:e})=>e??null,Qi=({ref:e,ref_key:t,ref_for:r})=>e!=null?nt(e)||ot(e)||$e(e)?{i:bt,r:e,k:t,f:!!r}:e:null;function Mp(e,t=null,r=null,o=0,n=null,i=e===Je?0:1,a=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Hp(t),ref:t&&Qi(t),scopeId:ms,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:i,patchFlag:o,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:bt};return s?(Xc(l,r),i&128&&e.normalize(l)):r&&(l.shapeFlag|=nt(r)?8:16),Jn>0&&!a&&rr&&(l.patchFlag>0||i&6)&&l.patchFlag!==32&&rr.push(l),l}const qe=w2;function w2(e,t=null,r=null,o=0,n=null,i=!1){if((!e||e===wp)&&(e=Lt),ei(e)){const s=Ar(e,t,!0);return r&&Xc(s,r),Jn>0&&!i&&rr&&(s.shapeFlag&6?rr[rr.indexOf(e)]=s:rr.push(s)),s.patchFlag|=-2,s}if(R2(e)&&(e=e.__vccOpts),t){t=_2(t);let{class:s,style:l}=t;s&&!nt(s)&&(t.class=Lc(s)),Ye(l)&&(np(l)&&!Pe(l)&&(l=gt({},l)),t.style=kc(l))}const a=nt(e)?1:qb(e)?128:b2(e)?64:Ye(e)?4:$e(e)?2:0;return Mp(e,t,r,o,n,a,i,!0)}function _2(e){return e?np(e)||ys in e?gt({},e):e:null}function Ar(e,t,r=!1){const{props:o,ref:n,patchFlag:i,children:a}=e,s=t?Yc(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&Hp(s),ref:t&&t.ref?r&&n?Pe(n)?n.concat(Qi(t)):[n,Qi(t)]:Qi(t):n,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Je?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ar(e.ssContent),ssFallback:e.ssFallback&&Ar(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function ti(e=" ",t=0){return qe(xi,null,e,t)}function LB(e,t){const r=qe(Yi,null,e);return r.staticCount=t,r}function $B(e="",t=!1){return t?(bs(),Cs(Lt,null,e)):qe(Lt,null,e)}function pr(e){return e==null||typeof e=="boolean"?qe(Lt):Pe(e)?qe(Je,null,e.slice()):typeof e=="object"?Zr(e):qe(xi,null,String(e))}function Zr(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ar(e)}function Xc(e,t){let r=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(Pe(t))r=16;else if(typeof t=="object")if(o&65){const n=t.default;n&&(n._c&&(n._d=!1),Xc(e,n()),n._c&&(n._d=!0));return}else{r=32;const n=t._;!n&&!(ys in t)?t._ctx=bt:n===3&&bt&&(bt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else $e(t)?(t={default:t,_ctx:bt},r=32):(t=String(t),o&64?(r=16,t=[ti(t)]):r=8);e.children=t,e.shapeFlag|=r}function Yc(...e){const t={};for(let r=0;rrt||bt,en=e=>{rt=e,e.scope.on()},Po=()=>{rt&&rt.scope.off(),rt=null};function Dp(e){return e.vnode.shapeFlag&4}let tn=!1;function k2(e,t=!1){tn=t;const{props:r,children:o}=e.vnode,n=Dp(e);c2(e,r,n,t),f2(e,o);const i=n?L2(e,t):void 0;return tn=!1,i}function L2(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=to(new Proxy(e.ctx,o2));const{setup:o}=r;if(o){const n=e.setupContext=o.length>1?zp(e):null;en(e),cn();const i=Jr(o,e,0,[e.props,n]);if(un(),Po(),jh(i)){if(i.then(Po,Po),t)return i.then(a=>{w0(e,a,t)}).catch(a=>{mi(a,e,0)});e.asyncDep=i}else w0(e,i,t)}else Fp(e,t)}function w0(e,t,r){$e(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=lp(t)),Fp(e,r)}let _0;function Fp(e,t,r){const o=e.type;if(!e.render){if(!t&&_0&&!o.render){const n=o.template||Gc(e).template;if(n){const{isCustomElement:i,compilerOptions:a}=e.appContext.config,{delimiters:s,compilerOptions:l}=o,c=gt(gt({isCustomElement:i,delimiters:s},a),l);o.render=_0(n,c)}}e.render=o.render||or}en(e),cn(),n2(e),un(),Po()}function $2(e){return new Proxy(e.attrs,{get(t,r){return Ht(e,"get","$attrs"),t[r]}})}function zp(e){const t=o=>{e.exposed=o||{}};let r;return{get attrs(){return r||(r=$2(e))},slots:e.slots,emit:e.emit,expose:t}}function Ss(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(lp(to(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Bn)return Bn[r](e)},has(t,r){return r in t||r in Bn}}))}function I2(e,t=!0){return $e(e)?e.displayName||e.name:e.name||t&&e.__name}function R2(e){return $e(e)&&"__vccOpts"in e}const ae=(e,t)=>Bb(e,t,tn);function IB(){return A2().attrs}function A2(){const e=ir();return e.setupContext||(e.setupContext=zp(e))}function H(e,t,r){const o=arguments.length;return o===2?Ye(t)&&!Pe(t)?ei(t)?qe(e,null,[t]):qe(e,t):qe(e,null,t):(o>3?r=Array.prototype.slice.call(arguments,2):o===3&&ei(r)&&(r=[r]),qe(e,t,r))}const O2=Symbol(""),B2=()=>Me(O2),H2="3.2.47",M2="http://www.w3.org/2000/svg",bo=typeof document<"u"?document:null,T0=bo&&bo.createElement("template"),D2={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,o)=>{const n=t?bo.createElementNS(M2,e):bo.createElement(e,r?{is:r}:void 0);return e==="select"&&o&&o.multiple!=null&&n.setAttribute("multiple",o.multiple),n},createText:e=>bo.createTextNode(e),createComment:e=>bo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,o,n,i){const a=r?r.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),r),!(n===i||!(n=n.nextSibling)););else{T0.innerHTML=o?`${e}`:e;const s=T0.content;if(o){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,r)}return[a?a.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}};function F2(e,t,r){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}function z2(e,t,r){const o=e.style,n=nt(r);if(r&&!n){if(t&&!nt(t))for(const i in t)r[i]==null&&Ml(o,i,"");for(const i in r)Ml(o,i,r[i])}else{const i=o.display;n?t!==r&&(o.cssText=r):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=i)}}const E0=/\s*!important$/;function Ml(e,t,r){if(Pe(r))r.forEach(o=>Ml(e,t,o));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const o=N2(e,t);E0.test(r)?e.setProperty(Ao(o),r.replace(E0,""),"important"):e[o]=r}}const P0=["Webkit","Moz","ms"],il={};function N2(e,t){const r=il[t];if(r)return r;let o=vr(t);if(o!=="filter"&&o in e)return il[t]=o;o=us(o);for(let n=0;nal||(G2.then(()=>al=0),al=Date.now());function Z2(e,t){const r=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=r.attached)return;Kt(X2(o,r.value),t,5,[o])};return r.value=e,r.attached=K2(),r}function X2(e,t){if(Pe(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(o=>n=>!n._stopped&&o&&o(n))}else return t}const $0=/^on[a-z]/,Y2=(e,t,r,o,n=!1,i,a,s,l)=>{t==="class"?F2(e,o,n):t==="style"?z2(e,r,o):ss(t)?$c(t)||V2(e,t,r,o,a):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Q2(e,t,o,n))?j2(e,t,o,i,a,s,l):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),W2(e,t,o,n))};function Q2(e,t,r,o){return o?!!(t==="innerHTML"||t==="textContent"||t in e&&$0.test(t)&&$e(r)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||$0.test(t)&&nt(r)?!1:t in e}const Wr="transition",yn="animation",br=(e,{slots:t})=>H(xp,Wp(e),t);br.displayName="Transition";const Np={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},J2=br.props=gt({},xp.props,Np),po=(e,t=[])=>{Pe(e)?e.forEach(r=>r(...t)):e&&e(...t)},I0=e=>e?Pe(e)?e.some(t=>t.length>1):e.length>1:!1;function Wp(e){const t={};for(const R in e)R in Np||(t[R]=e[R]);if(e.css===!1)return t;const{name:r="v",type:o,duration:n,enterFromClass:i=`${r}-enter-from`,enterActiveClass:a=`${r}-enter-active`,enterToClass:s=`${r}-enter-to`,appearFromClass:l=i,appearActiveClass:c=a,appearToClass:u=s,leaveFromClass:d=`${r}-leave-from`,leaveActiveClass:f=`${r}-leave-active`,leaveToClass:p=`${r}-leave-to`}=e,h=eC(n),m=h&&h[0],v=h&&h[1],{onBeforeEnter:g,onEnter:x,onEnterCancelled:C,onLeave:b,onLeaveCancelled:w,onBeforeAppear:T=g,onAppear:S=x,onAppearCancelled:E=C}=t,I=(R,B,j)=>{Gr(R,B?u:s),Gr(R,B?c:a),j&&j()},P=(R,B)=>{R._isLeaving=!1,Gr(R,d),Gr(R,p),Gr(R,f),B&&B()},$=R=>(B,j)=>{const Y=R?S:x,J=()=>I(B,R,j);po(Y,[B,J]),R0(()=>{Gr(B,R?l:i),Pr(B,R?u:s),I0(Y)||A0(B,o,m,J)})};return gt(t,{onBeforeEnter(R){po(g,[R]),Pr(R,i),Pr(R,a)},onBeforeAppear(R){po(T,[R]),Pr(R,l),Pr(R,c)},onEnter:$(!1),onAppear:$(!0),onLeave(R,B){R._isLeaving=!0;const j=()=>P(R,B);Pr(R,d),Up(),Pr(R,f),R0(()=>{R._isLeaving&&(Gr(R,d),Pr(R,p),I0(b)||A0(R,o,v,j))}),po(b,[R,j])},onEnterCancelled(R){I(R,!1),po(C,[R])},onAppearCancelled(R){I(R,!0),po(E,[R])},onLeaveCancelled(R){P(R),po(w,[R])}})}function eC(e){if(e==null)return null;if(Ye(e))return[sl(e.enter),sl(e.leave)];{const t=sl(e);return[t,t]}}function sl(e){return Qv(e)}function Pr(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e._vtc||(e._vtc=new Set)).add(t)}function Gr(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const{_vtc:r}=e;r&&(r.delete(t),r.size||(e._vtc=void 0))}function R0(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let tC=0;function A0(e,t,r,o){const n=e._endId=++tC,i=()=>{n===e._endId&&o()};if(r)return setTimeout(i,r);const{type:a,timeout:s,propCount:l}=jp(e,t);if(!a)return o();const c=a+"end";let u=0;const d=()=>{e.removeEventListener(c,f),i()},f=p=>{p.target===e&&++u>=l&&d()};setTimeout(()=>{u(r[h]||"").split(", "),n=o(`${Wr}Delay`),i=o(`${Wr}Duration`),a=O0(n,i),s=o(`${yn}Delay`),l=o(`${yn}Duration`),c=O0(s,l);let u=null,d=0,f=0;t===Wr?a>0&&(u=Wr,d=a,f=i.length):t===yn?c>0&&(u=yn,d=c,f=l.length):(d=Math.max(a,c),u=d>0?a>c?Wr:yn:null,f=u?u===Wr?i.length:l.length:0);const p=u===Wr&&/\b(transform|all)(,|$)/.test(o(`${Wr}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function O0(e,t){for(;e.lengthB0(r)+B0(e[o])))}function B0(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Up(){return document.body.offsetHeight}const Vp=new WeakMap,qp=new WeakMap,Gp={name:"TransitionGroup",props:gt({},J2,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=ir(),o=gp();let n,i;return Sp(()=>{if(!n.length)return;const a=e.moveClass||`${e.name||"v"}-move`;if(!sC(n[0].el,r.vnode.el,a))return;n.forEach(nC),n.forEach(iC);const s=n.filter(aC);Up(),s.forEach(l=>{const c=l.el,u=c.style;Pr(c,a),u.transform=u.webkitTransform=u.transitionDuration="";const d=c._moveCb=f=>{f&&f.target!==c||(!f||/transform$/.test(f.propertyName))&&(c.removeEventListener("transitionend",d),c._moveCb=null,Gr(c,a))};c.addEventListener("transitionend",d)})}),()=>{const a=He(e),s=Wp(a);let l=a.tag||Je;n=i,i=t.default?Uc(t.default()):[];for(let c=0;cdelete e.mode;Gp.props;const oC=Gp;function nC(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function iC(e){qp.set(e,e.el.getBoundingClientRect())}function aC(e){const t=Vp.get(e),r=qp.get(e),o=t.left-r.left,n=t.top-r.top;if(o||n){const i=e.el.style;return i.transform=i.webkitTransform=`translate(${o}px,${n}px)`,i.transitionDuration="0s",e}}function sC(e,t,r){const o=e.cloneNode();e._vtc&&e._vtc.forEach(a=>{a.split(/\s+/).forEach(s=>s&&o.classList.remove(s))}),r.split(/\s+/).forEach(a=>a&&o.classList.add(a)),o.style.display="none";const n=t.nodeType===1?t:t.parentNode;n.appendChild(o);const{hasTransform:i}=jp(o);return n.removeChild(o),i}const H0=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Pe(t)?r=>Xi(t,r):t};function lC(e){e.target.composing=!0}function M0(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const RB={created(e,{modifiers:{lazy:t,trim:r,number:o}},n){e._assign=H0(n);const i=o||n.props&&n.props.type==="number";Vo(e,t?"change":"input",a=>{if(a.target.composing)return;let s=e.value;r&&(s=s.trim()),i&&(s=El(s)),e._assign(s)}),r&&Vo(e,"change",()=>{e.value=e.value.trim()}),t||(Vo(e,"compositionstart",lC),Vo(e,"compositionend",M0),Vo(e,"change",M0))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:r,trim:o,number:n}},i){if(e._assign=H0(i),e.composing||document.activeElement===e&&e.type!=="range"&&(r||o&&e.value.trim()===t||(n||e.type==="number")&&El(e.value)===t))return;const a=t??"";e.value!==a&&(e.value=a)}},cC={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},AB=(e,t)=>r=>{if(!("key"in r))return;const o=Ao(r.key);if(t.some(n=>n===o||cC[n]===o))return e(r)},Dl={beforeMount(e,{value:t},{transition:r}){e._vod=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):Sn(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:o}){!t!=!r&&(o?t?(o.beforeEnter(e),Sn(e,!0),o.enter(e)):o.leave(e,()=>{Sn(e,!1)}):Sn(e,t))},beforeUnmount(e,{value:t}){Sn(e,t)}};function Sn(e,t){e.style.display=t?e._vod:"none"}const uC=gt({patchProp:Y2},D2);let D0;function dC(){return D0||(D0=g2(uC))}const Kp=(...e)=>{const t=dC().createApp(...e),{mount:r}=t;return t.mount=o=>{const n=fC(o);if(!n)return;const i=t._component;!$e(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.innerHTML="";const a=r(n,!1,n instanceof SVGElement);return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),a},t};function fC(e){return nt(e)?document.querySelector(e):e}function Qc(e){return e.composedPath()[0]||null}function OB(e){return typeof e=="string"?e.endsWith("px")?Number(e.slice(0,e.length-2)):Number(e):e}function BB(e){if(e!=null)return typeof e=="number"?`${e}px`:e.endsWith("px")?e:`${e}px`}function Zp(e,t){const r=e.trim().split(/\s+/g),o={top:r[0]};switch(r.length){case 1:o.right=r[0],o.bottom=r[0],o.left=r[0];break;case 2:o.right=r[1],o.left=r[1],o.bottom=r[0];break;case 3:o.right=r[1],o.bottom=r[2],o.left=r[1];break;case 4:o.right=r[1],o.bottom=r[2],o.left=r[3];break;default:throw new Error("[seemly/getMargin]:"+e+" is not a valid value.")}return t===void 0?o:o[t]}function HB(e,t){const[r,o]=e.split(" ");return t?t==="row"?r:o:{row:r,col:o||r}}const F0={black:"#000",silver:"#C0C0C0",gray:"#808080",white:"#FFF",maroon:"#800000",red:"#F00",purple:"#800080",fuchsia:"#F0F",green:"#008000",lime:"#0F0",olive:"#808000",yellow:"#FF0",navy:"#000080",blue:"#00F",teal:"#008080",aqua:"#0FF",transparent:"#0000"},wr="^\\s*",_r="\\s*$",ro="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))%\\s*",Wt="\\s*((\\.\\d+)|(\\d+(\\.\\d*)?))\\s*",So="([0-9A-Fa-f])",wo="([0-9A-Fa-f]{2})",hC=new RegExp(`${wr}hsl\\s*\\(${Wt},${ro},${ro}\\)${_r}`),pC=new RegExp(`${wr}hsv\\s*\\(${Wt},${ro},${ro}\\)${_r}`),mC=new RegExp(`${wr}hsla\\s*\\(${Wt},${ro},${ro},${Wt}\\)${_r}`),gC=new RegExp(`${wr}hsva\\s*\\(${Wt},${ro},${ro},${Wt}\\)${_r}`),xC=new RegExp(`${wr}rgb\\s*\\(${Wt},${Wt},${Wt}\\)${_r}`),vC=new RegExp(`${wr}rgba\\s*\\(${Wt},${Wt},${Wt},${Wt}\\)${_r}`),Jc=new RegExp(`${wr}#${So}${So}${So}${_r}`),eu=new RegExp(`${wr}#${wo}${wo}${wo}${_r}`),tu=new RegExp(`${wr}#${So}${So}${So}${So}${_r}`),ru=new RegExp(`${wr}#${wo}${wo}${wo}${wo}${_r}`);function At(e){return parseInt(e,16)}function MB(e){try{let t;if(t=mC.exec(e))return[yr(t[1]),st(t[5]),st(t[9]),Lr(t[13])];if(t=hC.exec(e))return[yr(t[1]),st(t[5]),st(t[9]),1];throw new Error(`[seemly/hsla]: Invalid color value ${e}.`)}catch(t){throw t}}function DB(e){try{let t;if(t=gC.exec(e))return[yr(t[1]),st(t[5]),st(t[9]),Lr(t[13])];if(t=pC.exec(e))return[yr(t[1]),st(t[5]),st(t[9]),1];throw new Error(`[seemly/hsva]: Invalid color value ${e}.`)}catch(t){throw t}}function Cr(e){try{let t;if(t=eu.exec(e))return[At(t[1]),At(t[2]),At(t[3]),1];if(t=xC.exec(e))return[tt(t[1]),tt(t[5]),tt(t[9]),1];if(t=vC.exec(e))return[tt(t[1]),tt(t[5]),tt(t[9]),Lr(t[13])];if(t=Jc.exec(e))return[At(t[1]+t[1]),At(t[2]+t[2]),At(t[3]+t[3]),1];if(t=ru.exec(e))return[At(t[1]),At(t[2]),At(t[3]),Lr(At(t[4])/255)];if(t=tu.exec(e))return[At(t[1]+t[1]),At(t[2]+t[2]),At(t[3]+t[3]),Lr(At(t[4]+t[4])/255)];if(e in F0)return Cr(F0[e]);throw new Error(`[seemly/rgba]: Invalid color value ${e}.`)}catch(t){throw t}}function bC(e){return e>1?1:e<0?0:e}function CC(e,t,r){return`rgb(${tt(e)}, ${tt(t)}, ${tt(r)})`}function Fl(e,t,r,o){return`rgba(${tt(e)}, ${tt(t)}, ${tt(r)}, ${bC(o)})`}function ll(e,t,r,o,n){return tt((e*t*(1-o)+r*o)/n)}function me(e,t){Array.isArray(e)||(e=Cr(e)),Array.isArray(t)||(t=Cr(t));const r=e[3],o=t[3],n=Lr(r+o-r*o);return Fl(ll(e[0],r,t[0],o,n),ll(e[1],r,t[1],o,n),ll(e[2],r,t[2],o,n),n)}function G(e,t){const[r,o,n,i=1]=Array.isArray(e)?e:Cr(e);return t.alpha?Fl(r,o,n,t.alpha):Fl(r,o,n,i)}function it(e,t){const[r,o,n,i=1]=Array.isArray(e)?e:Cr(e),{lightness:a=1,alpha:s=1}=t;return yC([r*a,o*a,n*a,i*s])}function Lr(e){const t=Math.round(Number(e)*100)/100;return t>1?1:t<0?0:t}function yr(e){const t=Math.round(Number(e));return t>=360||t<0?0:t}function tt(e){const t=Math.round(Number(e));return t>255?255:t<0?0:t}function st(e){const t=Math.round(Number(e));return t>100?100:t<0?0:t}function FB(e){const[t,r,o]=Array.isArray(e)?e:Cr(e);return CC(t,r,o)}function yC(e){const[t,r,o]=e;return 3 in e?`rgba(${tt(t)}, ${tt(r)}, ${tt(o)}, ${Lr(e[3])})`:`rgba(${tt(t)}, ${tt(r)}, ${tt(o)}, 1)`}function zB(e){return`hsv(${yr(e[0])}, ${st(e[1])}%, ${st(e[2])}%)`}function NB(e){const[t,r,o]=e;return 3 in e?`hsva(${yr(t)}, ${st(r)}%, ${st(o)}%, ${Lr(e[3])})`:`hsva(${yr(t)}, ${st(r)}%, ${st(o)}%, 1)`}function WB(e){return`hsl(${yr(e[0])}, ${st(e[1])}%, ${st(e[2])}%)`}function jB(e){const[t,r,o]=e;return 3 in e?`hsla(${yr(t)}, ${st(r)}%, ${st(o)}%, ${Lr(e[3])})`:`hsla(${yr(t)}, ${st(r)}%, ${st(o)}%, 1)`}function UB(e){if(typeof e=="string"){let o;if(o=eu.exec(e))return`${o[0]}FF`;if(o=ru.exec(e))return o[0];if(o=Jc.exec(e))return`#${o[1]}${o[1]}${o[2]}${o[2]}${o[3]}${o[3]}FF`;if(o=tu.exec(e))return`#${o[1]}${o[1]}${o[2]}${o[2]}${o[3]}${o[3]}${o[4]}${o[4]}`;throw new Error(`[seemly/toHexString]: Invalid hex value ${e}.`)}const t=`#${e.slice(0,3).map(o=>tt(o).toString(16).toUpperCase().padStart(2,"0")).join("")}`,r=e.length===3?"FF":tt(e[3]*255).toString(16).padStart(2,"0").toUpperCase();return t+r}function VB(e){if(typeof e=="string"){let t;if(t=eu.exec(e))return t[0];if(t=ru.exec(e))return t[0].slice(0,7);if(t=Jc.exec(e)||tu.exec(e))return`#${t[1]}${t[1]}${t[2]}${t[2]}${t[3]}${t[3]}`;throw new Error(`[seemly/toHexString]: Invalid hex value ${e}.`)}return`#${e.slice(0,3).map(t=>tt(t).toString(16).toUpperCase().padStart(2,"0")).join("")}`}function ws(e=8){return Math.random().toString(16).slice(2,2+e)}function qB(e,t){const r=[];for(let o=0;o{o[n]=e[n]}),Object.assign(o,r)}function ou(e,t=[],r){const o={};return Object.getOwnPropertyNames(e).forEach(i=>{t.includes(i)||(o[i]=e[i])}),Object.assign(o,r)}function zl(e,t=!0,r=[]){return e.forEach(o=>{if(o!==null){if(typeof o!="object"){(typeof o=="string"||typeof o=="number")&&r.push(ti(String(o)));return}if(Array.isArray(o)){zl(o,t,r);return}if(o.type===Je){if(o.children===null)return;Array.isArray(o.children)&&zl(o.children,t,r)}else o.type!==Lt&&r.push(o)}}),r}function _o(e,...t){if(Array.isArray(e))e.forEach(r=>_o(r,...t));else return e(...t)}function _s(e){return Object.keys(e)}const Nt=(e,...t)=>typeof e=="function"?e(...t):typeof e=="string"?ti(e):typeof e=="number"?ti(String(e)):null;function oi(e,t){console.error(`[naive/${e}]: ${t}`)}function vi(e,t){throw new Error(`[naive/${e}]: ${t}`)}function SC(e,t="default",r=void 0){const o=e[t];if(!o)return oi("getFirstSlotVNode",`slot[${t}] is empty`),null;const n=zl(o(r));return n.length===1?n[0]:(oi("getFirstSlotVNode",`slot[${t}] should have exactly one child`),null)}function GB(e){return e}function bi(e){return e.some(t=>ei(t)?!(t.type===Lt||t.type===Je&&!bi(t.children)):!0)?e:null}function z0(e,t){return e&&bi(e())||t()}function KB(e,t,r){return e&&bi(e(t))||r(t)}function Jt(e,t){const r=e&&bi(e());return t(r||null)}function wC(e){return!(e&&bi(e()))}const N0=Oe({render(){var e,t;return(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)}});function W0(e){return e.replace(/#|\(|\)|,|\s|\./g,"_")}function _C(e){let t=0;for(let r=0;r{let n=_C(o);if(n){if(n===1){e.forEach(a=>{r.push(o.replace("&",a))});return}}else{e.forEach(a=>{r.push((a&&a+" ")+o)});return}let i=[o];for(;n--;){const a=[];i.forEach(s=>{e.forEach(l=>{a.push(s.replace("&",l))})}),i=a}i.forEach(a=>r.push(a))}),r}function PC(e,t){const r=[];return t.split(Xp).forEach(o=>{e.forEach(n=>{r.push((n&&n+" ")+o)})}),r}function kC(e){let t=[""];return e.forEach(r=>{r=r&&r.trim(),r&&(r.includes("&")?t=EC(t,r):t=PC(t,r))}),t.join(", ").replace(TC," ")}function j0(e){if(!e)return;const t=e.parentElement;t&&t.removeChild(e)}function Ts(e){return document.querySelector(`style[cssr-id="${e}"]`)}function LC(e){const t=document.createElement("style");return t.setAttribute("cssr-id",e),t}function Bi(e){return e?/^\s*@(s|m)/.test(e):!1}const $C=/[A-Z]/g;function Yp(e){return e.replace($C,t=>"-"+t.toLowerCase())}function IC(e,t=" "){return typeof e=="object"&&e!==null?` { -`+Object.entries(e).map(r=>t+` ${Yp(r[0])}: ${r[1]};`).join(` -`)+` -`+t+"}":`: ${e};`}function RC(e,t,r){return typeof e=="function"?e({context:t.context,props:r}):e}function U0(e,t,r,o){if(!t)return"";const n=RC(t,r,o);if(!n)return"";if(typeof n=="string")return`${e} { -${n} -}`;const i=Object.keys(n);if(i.length===0)return r.config.keepEmptyBlock?e+` { -}`:"";const a=e?[e+" {"]:[];return i.forEach(s=>{const l=n[s];if(s==="raw"){a.push(` -`+l+` -`);return}s=Yp(s),l!=null&&a.push(` ${s}${IC(l)}`)}),e&&a.push("}"),a.join(` -`)}function Nl(e,t,r){e&&e.forEach(o=>{if(Array.isArray(o))Nl(o,t,r);else if(typeof o=="function"){const n=o(t);Array.isArray(n)?Nl(n,t,r):n&&r(n)}else o&&r(o)})}function Qp(e,t,r,o,n,i){const a=e.$;let s="";if(!a||typeof a=="string")Bi(a)?s=a:t.push(a);else if(typeof a=="function"){const u=a({context:o.context,props:n});Bi(u)?s=u:t.push(u)}else if(a.before&&a.before(o.context),!a.$||typeof a.$=="string")Bi(a.$)?s=a.$:t.push(a.$);else if(a.$){const u=a.$({context:o.context,props:n});Bi(u)?s=u:t.push(u)}const l=kC(t),c=U0(l,e.props,o,n);s?(r.push(`${s} {`),i&&c&&i.insertRule(`${s} { -${c} -} -`)):(i&&c&&i.insertRule(c),!i&&c.length&&r.push(c)),e.children&&Nl(e.children,{context:o.context,props:n},u=>{if(typeof u=="string"){const d=U0(l,{raw:u},o,n);i?i.insertRule(d):r.push(d)}else Qp(u,t,r,o,n,i)}),t.pop(),s&&r.push("}"),a&&a.after&&a.after(o.context)}function Jp(e,t,r,o=!1){const n=[];return Qp(e,[],n,t,r,o?e.instance.__styleSheet:void 0),o?"":n.join(` - -`)}function ni(e){for(var t=0,r,o=0,n=e.length;n>=4;++o,n-=4)r=e.charCodeAt(o)&255|(e.charCodeAt(++o)&255)<<8|(e.charCodeAt(++o)&255)<<16|(e.charCodeAt(++o)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,t=(r&65535)*1540483477+((r>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(n){case 3:t^=(e.charCodeAt(o+2)&255)<<16;case 2:t^=(e.charCodeAt(o+1)&255)<<8;case 1:t^=e.charCodeAt(o)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}typeof window<"u"&&(window.__cssrContext={});function AC(e,t,r){const{els:o}=t;if(r===void 0)o.forEach(j0),t.els=[];else{const n=Ts(r);n&&o.includes(n)&&(j0(n),t.els=o.filter(i=>i!==n))}}function V0(e,t){e.push(t)}function OC(e,t,r,o,n,i,a,s,l){if(i&&!l){if(r===void 0){console.error("[css-render/mount]: `id` is required in `silent` mode.");return}const f=window.__cssrContext;f[r]||(f[r]=!0,Jp(t,e,o,i));return}let c;if(r===void 0&&(c=t.render(o),r=ni(c)),l){l.adapter(r,c??t.render(o));return}const u=Ts(r);if(u!==null&&!a)return u;const d=u??LC(r);if(c===void 0&&(c=t.render(o)),d.textContent=c,u!==null)return u;if(s){const f=document.head.querySelector(`meta[name="${s}"]`);if(f)return document.head.insertBefore(d,f),V0(t.els,d),d}return n?document.head.insertBefore(d,document.head.querySelector("style, link")):document.head.appendChild(d),V0(t.els,d),d}function BC(e){return Jp(this,this.instance,e)}function HC(e={}){const{id:t,ssr:r,props:o,head:n=!1,silent:i=!1,force:a=!1,anchorMetaName:s}=e;return OC(this.instance,this,t,o,n,i,a,s,r)}function MC(e={}){const{id:t}=e;AC(this.instance,this,t)}const Hi=function(e,t,r,o){return{instance:e,$:t,props:r,children:o,els:[],render:BC,mount:HC,unmount:MC}},DC=function(e,t,r,o){return Array.isArray(t)?Hi(e,{$:null},null,t):Array.isArray(r)?Hi(e,t,null,r):Array.isArray(o)?Hi(e,t,r,o):Hi(e,t,r,null)};function FC(e={}){let t=null;const r={c:(...o)=>DC(r,...o),use:(o,...n)=>o.install(r,...n),find:Ts,context:{},config:e,get __styleSheet(){if(!t){const o=document.createElement("style");return document.head.appendChild(o),t=document.styleSheets[document.styleSheets.length-1],t}return t}};return r}function zC(e,t){if(e===void 0)return!1;if(t){const{context:{ids:r}}=t;return r.has(e)}return Ts(e)!==null}function NC(e){let t=".",r="__",o="--",n;if(e){let h=e.blockPrefix;h&&(t=h),h=e.elementPrefix,h&&(r=h),h=e.modifierPrefix,h&&(o=h)}const i={install(h){n=h.c;const m=h.context;m.bem={},m.bem.b=null,m.bem.els=null}};function a(h){let m,v;return{before(g){m=g.bem.b,v=g.bem.els,g.bem.els=null},after(g){g.bem.b=m,g.bem.els=v},$({context:g,props:x}){return h=typeof h=="string"?h:h({context:g,props:x}),g.bem.b=h,`${(x==null?void 0:x.bPrefix)||t}${g.bem.b}`}}}function s(h){let m;return{before(v){m=v.bem.els},after(v){v.bem.els=m},$({context:v,props:g}){return h=typeof h=="string"?h:h({context:v,props:g}),v.bem.els=h.split(",").map(x=>x.trim()),v.bem.els.map(x=>`${(g==null?void 0:g.bPrefix)||t}${v.bem.b}${r}${x}`).join(", ")}}}function l(h){return{$({context:m,props:v}){h=typeof h=="string"?h:h({context:m,props:v});const g=h.split(",").map(b=>b.trim());function x(b){return g.map(w=>`&${(v==null?void 0:v.bPrefix)||t}${m.bem.b}${b!==void 0?`${r}${b}`:""}${o}${w}`).join(", ")}const C=m.bem.els;return C!==null?x(C[0]):x()}}}function c(h){return{$({context:m,props:v}){h=typeof h=="string"?h:h({context:m,props:v});const g=m.bem.els;return`&:not(${(v==null?void 0:v.bPrefix)||t}${m.bem.b}${g!==null&&g.length>0?`${r}${g[0]}`:""}${o}${h})`}}}return Object.assign(i,{cB:(...h)=>n(a(h[0]),h[1],h[2]),cE:(...h)=>n(s(h[0]),h[1],h[2]),cM:(...h)=>n(l(h[0]),h[1],h[2]),cNotM:(...h)=>n(c(h[0]),h[1],h[2])}),i}function _e(e,t){return e+(t==="default"?"":t.replace(/^[a-z]/,r=>r.toUpperCase()))}_e("abc","def");const WC="n",ii=`.${WC}-`,jC="__",UC="--",em=FC(),tm=NC({blockPrefix:ii,elementPrefix:jC,modifierPrefix:UC});em.use(tm);const{c:ne,find:ZB}=em,{cB:Se,cE:he,cM:Ce,cNotM:Wl}=tm;function rm(e){return ne(({props:{bPrefix:t}})=>`${t||ii}modal, ${t||ii}drawer`,[e])}function VC(e){return ne(({props:{bPrefix:t}})=>`${t||ii}popover`,[e])}function om(e){return ne(({props:{bPrefix:t}})=>`&${t||ii}modal`,e)}const XB=(...e)=>ne(">",[Se(...e)]),dn=typeof document<"u"&&typeof window<"u",nm=new WeakSet;function YB(e){nm.add(e)}function qC(e){return!nm.has(e)}function GC(e){const t=de(!!e.value);if(t.value)return nr(t);const r=kt(e,o=>{o&&(t.value=!0,r())});return nr(t)}function jl(e){const t=ae(e),r=de(t.value);return kt(t,o=>{r.value=o}),typeof e=="function"?r:{__v_isRef:!0,get value(){return r.value},set value(o){e.set(o)}}}function nu(){return ir()!==null}const im=typeof window<"u";function Ji(e){return e.composedPath()[0]}const KC={mousemoveoutside:new WeakMap,clickoutside:new WeakMap};function ZC(e,t,r){if(e==="mousemoveoutside"){const o=n=>{t.contains(Ji(n))||r(n)};return{mousemove:o,touchstart:o}}else if(e==="clickoutside"){let o=!1;const n=a=>{o=!t.contains(Ji(a))},i=a=>{o&&(t.contains(Ji(a))||r(a))};return{mousedown:n,mouseup:i,touchstart:n,touchend:i}}return console.error(`[evtd/create-trap-handler]: name \`${e}\` is invalid. This could be a bug of evtd.`),{}}function am(e,t,r){const o=KC[e];let n=o.get(t);n===void 0&&o.set(t,n=new WeakMap);let i=n.get(r);return i===void 0&&n.set(r,i=ZC(e,t,r)),i}function XC(e,t,r,o){if(e==="mousemoveoutside"||e==="clickoutside"){const n=am(e,t,r);return Object.keys(n).forEach(i=>{Gt(i,document,n[i],o)}),!0}return!1}function YC(e,t,r,o){if(e==="mousemoveoutside"||e==="clickoutside"){const n=am(e,t,r);return Object.keys(n).forEach(i=>{Pt(i,document,n[i],o)}),!0}return!1}function QC(){if(typeof window>"u")return{on:()=>{},off:()=>{}};const e=new WeakMap,t=new WeakMap;function r(){e.set(this,!0)}function o(){e.set(this,!0),t.set(this,!0)}function n(S,E,I){const P=S[E];return S[E]=function(){return I.apply(S,arguments),P.apply(S,arguments)},S}function i(S,E){S[E]=Event.prototype[E]}const a=new WeakMap,s=Object.getOwnPropertyDescriptor(Event.prototype,"currentTarget");function l(){var S;return(S=a.get(this))!==null&&S!==void 0?S:null}function c(S,E){s!==void 0&&Object.defineProperty(S,"currentTarget",{configurable:!0,enumerable:!0,get:E??s.get})}const u={bubble:{},capture:{}},d={};function f(){const S=function(E){const{type:I,eventPhase:P,bubbles:$}=E,R=Ji(E);if(P===2)return;const B=P===1?"capture":"bubble";let j=R;const Y=[];for(;j===null&&(j=window),Y.push(j),j!==window;)j=j.parentNode||null;const J=u.capture[I],Q=u.bubble[I];if(n(E,"stopPropagation",r),n(E,"stopImmediatePropagation",o),c(E,l),B==="capture"){if(J===void 0)return;for(let ie=Y.length-1;ie>=0&&!e.has(E);--ie){const ge=Y[ie],ve=J.get(ge);if(ve!==void 0){a.set(E,ge);for(const z of ve){if(t.has(E))break;z(E)}}if(ie===0&&!$&&Q!==void 0){const z=Q.get(ge);if(z!==void 0)for(const W of z){if(t.has(E))break;W(E)}}}}else if(B==="bubble"){if(Q===void 0)return;for(let ie=0;ieR(E))};return S.displayName="evtdUnifiedWindowEventHandler",S}const h=f(),m=p();function v(S,E){const I=u[S];return I[E]===void 0&&(I[E]=new Map,window.addEventListener(E,h,S==="capture")),I[E]}function g(S){return d[S]===void 0&&(d[S]=new Set,window.addEventListener(S,m)),d[S]}function x(S,E){let I=S.get(E);return I===void 0&&S.set(E,I=new Set),I}function C(S,E,I,P){const $=u[E][I];if($!==void 0){const R=$.get(S);if(R!==void 0&&R.has(P))return!0}return!1}function b(S,E){const I=d[S];return!!(I!==void 0&&I.has(E))}function w(S,E,I,P){let $;if(typeof P=="object"&&P.once===!0?$=J=>{T(S,E,$,P),I(J)}:$=I,XC(S,E,$,P))return;const B=P===!0||typeof P=="object"&&P.capture===!0?"capture":"bubble",j=v(B,S),Y=x(j,E);if(Y.has($)||Y.add($),E===window){const J=g(S);J.has($)||J.add($)}}function T(S,E,I,P){if(YC(S,E,I,P))return;const R=P===!0||typeof P=="object"&&P.capture===!0,B=R?"capture":"bubble",j=v(B,S),Y=x(j,E);if(E===window&&!C(E,R?"bubble":"capture",S,I)&&b(S,I)){const Q=d[S];Q.delete(I),Q.size===0&&(window.removeEventListener(S,m),d[S]=void 0)}Y.has(I)&&Y.delete(I),Y.size===0&&j.delete(E),j.size===0&&(window.removeEventListener(S,h,B==="capture"),u[B][S]=void 0)}return{on:w,off:T}}const{on:Gt,off:Pt}=QC(),Rn=de(null);function q0(e){if(e.clientX>0||e.clientY>0)Rn.value={x:e.clientX,y:e.clientY};else{const{target:t}=e;if(t instanceof Element){const{left:r,top:o,width:n,height:i}=t.getBoundingClientRect();r>0||o>0?Rn.value={x:r+n/2,y:o+i/2}:Rn.value={x:0,y:0}}else Rn.value=null}}let Mi=0,G0=!0;function sm(){if(!im)return nr(de(null));Mi===0&&Gt("click",document,q0,!0);const e=()=>{Mi+=1};return G0&&(G0=nu())?(Hr(e),Zt(()=>{Mi-=1,Mi===0&&Pt("click",document,q0,!0)})):e(),nr(Rn)}const JC=de(void 0);let Di=0;function K0(){JC.value=Date.now()}let Z0=!0;function lm(e){if(!im)return nr(de(!1));const t=de(!1);let r=null;function o(){r!==null&&window.clearTimeout(r)}function n(){o(),t.value=!0,r=window.setTimeout(()=>{t.value=!1},e)}Di===0&&Gt("click",window,K0,!0);const i=()=>{Di+=1,Gt("click",window,n,!0)};return Z0&&(Z0=nu())?(Hr(i),Zt(()=>{Di-=1,Di===0&&Pt("click",window,K0,!0),Pt("click",window,n,!0),o()})):i(),nr(t)}let Fi=0;const ey=typeof window<"u"&&window.matchMedia!==void 0,ko=de(null);let er,To;function ga(e){e.matches&&(ko.value="dark")}function xa(e){e.matches&&(ko.value="light")}function ty(){er=window.matchMedia("(prefers-color-scheme: dark)"),To=window.matchMedia("(prefers-color-scheme: light)"),er.matches?ko.value="dark":To.matches?ko.value="light":ko.value=null,er.addEventListener?(er.addEventListener("change",ga),To.addEventListener("change",xa)):er.addListener&&(er.addListener(ga),To.addListener(xa))}function ry(){"removeEventListener"in er?(er.removeEventListener("change",ga),To.removeEventListener("change",xa)):"removeListener"in er&&(er.removeListener(ga),To.removeListener(xa)),er=void 0,To=void 0}let X0=!0;function cm(){return ey&&(Fi===0&&ty(),X0&&(X0=nu())&&(Hr(()=>{Fi+=1}),Zt(()=>{Fi-=1,Fi===0&&ry()}))),nr(ko)}function iu(){const e=de(!1);return Sr(()=>{e.value=!0}),nr(e)}const oy=(typeof window>"u"?!1:/iPad|iPhone|iPod/.test(navigator.platform)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1)&&!window.MSStream;function ny(){return oy}const iy="n-modal-body",um="n-modal",ay="n-drawer-body",sy="n-popover-body";function Y0(e,t,r="default"){const o=t[r];if(o===void 0)throw new Error(`[vueuc/${e}]: slot[${r}] is empty.`);return o()}function Ul(e,t=!0,r=[]){return e.forEach(o=>{if(o!==null){if(typeof o!="object"){(typeof o=="string"||typeof o=="number")&&r.push(ti(String(o)));return}if(Array.isArray(o)){Ul(o,t,r);return}if(o.type===Je){if(o.children===null)return;Array.isArray(o.children)&&Ul(o.children,t,r)}else o.type!==Lt&&r.push(o)}}),r}function QB(e,t,r="default"){const o=t[r];if(o===void 0)throw new Error(`[vueuc/${e}]: slot[${r}] is empty.`);const n=Ul(o());if(n.length===1)return n[0];throw new Error(`[vueuc/${e}]: slot[${r}] should have exactly one child.`)}const zo="@@coContext",ly={mounted(e,{value:t,modifiers:r}){e[zo]={handler:void 0},typeof t=="function"&&(e[zo].handler=t,Gt("clickoutside",e,t,{capture:r.capture}))},updated(e,{value:t,modifiers:r}){const o=e[zo];typeof t=="function"?o.handler?o.handler!==t&&(Pt("clickoutside",e,o.handler,{capture:r.capture}),o.handler=t,Gt("clickoutside",e,t,{capture:r.capture})):(e[zo].handler=t,Gt("clickoutside",e,t,{capture:r.capture})):o.handler&&(Pt("clickoutside",e,o.handler,{capture:r.capture}),o.handler=void 0)},unmounted(e,{modifiers:t}){const{handler:r}=e[zo];r&&Pt("clickoutside",e,r,{capture:t.capture}),e[zo].handler=void 0}},cy=ly;function uy(e,t){console.error(`[vdirs/${e}]: ${t}`)}class dy{constructor(){this.elementZIndex=new Map,this.nextZIndex=2e3}get elementCount(){return this.elementZIndex.size}ensureZIndex(t,r){const{elementZIndex:o}=this;if(r!==void 0){t.style.zIndex=`${r}`,o.delete(t);return}const{nextZIndex:n}=this;o.has(t)&&o.get(t)+1===this.nextZIndex||(t.style.zIndex=`${n}`,o.set(t,n),this.nextZIndex=n+1,this.squashState())}unregister(t,r){const{elementZIndex:o}=this;o.has(t)?o.delete(t):r===void 0&&uy("z-index-manager/unregister-element","Element not found when unregistering."),this.squashState()}squashState(){const{elementCount:t}=this;t||(this.nextZIndex=2e3),this.nextZIndex-t>2500&&this.rearrange()}rearrange(){const t=Array.from(this.elementZIndex.entries());t.sort((r,o)=>r[1]-o[1]),this.nextZIndex=2e3,t.forEach(r=>{const o=r[0],n=this.nextZIndex++;`${n}`!==o.style.zIndex&&(o.style.zIndex=`${n}`)})}}const cl=new dy,No="@@ziContext",fy={mounted(e,t){const{value:r={}}=t,{zIndex:o,enabled:n}=r;e[No]={enabled:!!n,initialized:!1},n&&(cl.ensureZIndex(e,o),e[No].initialized=!0)},updated(e,t){const{value:r={}}=t,{zIndex:o,enabled:n}=r,i=e[No].enabled;n&&!i&&(cl.ensureZIndex(e,o),e[No].initialized=!0),e[No].enabled=!!n},unmounted(e,t){if(!e[No].initialized)return;const{value:r={}}=t,{zIndex:o}=r;cl.unregister(e,o)}},hy=fy,dm=Symbol("@css-render/vue3-ssr");function py(e,t){return``}function my(e,t){const r=Me(dm,null);if(r===null){console.error("[css-render/vue3-ssr]: no ssr context found.");return}const{styles:o,ids:n}=r;n.has(e)||o!==null&&(n.add(e),o.push(py(e,t)))}const gy=typeof document<"u";function Es(){if(gy)return;const e=Me(dm,null);if(e!==null)return{adapter:my,context:e}}function Q0(e,t){console.error(`[vueuc/${e}]: ${t}`)}function J0(e){return typeof e=="string"?document.querySelector(e):e()}const xy=Oe({name:"LazyTeleport",props:{to:{type:[String,Object],default:void 0},disabled:Boolean,show:{type:Boolean,required:!0}},setup(e){return{showTeleport:GC(Rr(e,"show")),mergedTo:ae(()=>{const{to:t}=e;return t??"body"})}},render(){return this.showTeleport?this.disabled?Y0("lazy-teleport",this.$slots):H(vs,{disabled:this.disabled,to:this.mergedTo},Y0("lazy-teleport",this.$slots)):null}});var Lo=[],vy=function(){return Lo.some(function(e){return e.activeTargets.length>0})},by=function(){return Lo.some(function(e){return e.skippedTargets.length>0})},ed="ResizeObserver loop completed with undelivered notifications.",Cy=function(){var e;typeof ErrorEvent=="function"?e=new ErrorEvent("error",{message:ed}):(e=document.createEvent("Event"),e.initEvent("error",!1,!1),e.message=ed),window.dispatchEvent(e)},ai;(function(e){e.BORDER_BOX="border-box",e.CONTENT_BOX="content-box",e.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(ai||(ai={}));var $o=function(e){return Object.freeze(e)},yy=function(){function e(t,r){this.inlineSize=t,this.blockSize=r,$o(this)}return e}(),fm=function(){function e(t,r,o,n){return this.x=t,this.y=r,this.width=o,this.height=n,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,$o(this)}return e.prototype.toJSON=function(){var t=this,r=t.x,o=t.y,n=t.top,i=t.right,a=t.bottom,s=t.left,l=t.width,c=t.height;return{x:r,y:o,top:n,right:i,bottom:a,left:s,width:l,height:c}},e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)},e}(),au=function(e){return e instanceof SVGElement&&"getBBox"in e},hm=function(e){if(au(e)){var t=e.getBBox(),r=t.width,o=t.height;return!r&&!o}var n=e,i=n.offsetWidth,a=n.offsetHeight;return!(i||a||e.getClientRects().length)},td=function(e){var t;if(e instanceof Element)return!0;var r=(t=e==null?void 0:e.ownerDocument)===null||t===void 0?void 0:t.defaultView;return!!(r&&e instanceof r.Element)},Sy=function(e){switch(e.tagName){case"INPUT":if(e.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},Dn=typeof window<"u"?window:{},zi=new WeakMap,rd=/auto|scroll/,wy=/^tb|vertical/,_y=/msie|trident/i.test(Dn.navigator&&Dn.navigator.userAgent),dr=function(e){return parseFloat(e||"0")},Qo=function(e,t,r){return e===void 0&&(e=0),t===void 0&&(t=0),r===void 0&&(r=!1),new yy((r?t:e)||0,(r?e:t)||0)},od=$o({devicePixelContentBoxSize:Qo(),borderBoxSize:Qo(),contentBoxSize:Qo(),contentRect:new fm(0,0,0,0)}),pm=function(e,t){if(t===void 0&&(t=!1),zi.has(e)&&!t)return zi.get(e);if(hm(e))return zi.set(e,od),od;var r=getComputedStyle(e),o=au(e)&&e.ownerSVGElement&&e.getBBox(),n=!_y&&r.boxSizing==="border-box",i=wy.test(r.writingMode||""),a=!o&&rd.test(r.overflowY||""),s=!o&&rd.test(r.overflowX||""),l=o?0:dr(r.paddingTop),c=o?0:dr(r.paddingRight),u=o?0:dr(r.paddingBottom),d=o?0:dr(r.paddingLeft),f=o?0:dr(r.borderTopWidth),p=o?0:dr(r.borderRightWidth),h=o?0:dr(r.borderBottomWidth),m=o?0:dr(r.borderLeftWidth),v=d+c,g=l+u,x=m+p,C=f+h,b=s?e.offsetHeight-C-e.clientHeight:0,w=a?e.offsetWidth-x-e.clientWidth:0,T=n?v+x:0,S=n?g+C:0,E=o?o.width:dr(r.width)-T-w,I=o?o.height:dr(r.height)-S-b,P=E+v+w+x,$=I+g+b+C,R=$o({devicePixelContentBoxSize:Qo(Math.round(E*devicePixelRatio),Math.round(I*devicePixelRatio),i),borderBoxSize:Qo(P,$,i),contentBoxSize:Qo(E,I,i),contentRect:new fm(d,l,E,I)});return zi.set(e,R),R},mm=function(e,t,r){var o=pm(e,r),n=o.borderBoxSize,i=o.contentBoxSize,a=o.devicePixelContentBoxSize;switch(t){case ai.DEVICE_PIXEL_CONTENT_BOX:return a;case ai.BORDER_BOX:return n;default:return i}},Ty=function(){function e(t){var r=pm(t);this.target=t,this.contentRect=r.contentRect,this.borderBoxSize=$o([r.borderBoxSize]),this.contentBoxSize=$o([r.contentBoxSize]),this.devicePixelContentBoxSize=$o([r.devicePixelContentBoxSize])}return e}(),gm=function(e){if(hm(e))return 1/0;for(var t=0,r=e.parentNode;r;)t+=1,r=r.parentNode;return t},Ey=function(){var e=1/0,t=[];Lo.forEach(function(a){if(a.activeTargets.length!==0){var s=[];a.activeTargets.forEach(function(c){var u=new Ty(c.target),d=gm(c.target);s.push(u),c.lastReportedSize=mm(c.target,c.observedBox),de?r.activeTargets.push(n):r.skippedTargets.push(n))})})},Py=function(){var e=0;for(nd(e);vy();)e=Ey(),nd(e);return by()&&Cy(),e>0},ul,xm=[],ky=function(){return xm.splice(0).forEach(function(e){return e()})},Ly=function(e){if(!ul){var t=0,r=document.createTextNode(""),o={characterData:!0};new MutationObserver(function(){return ky()}).observe(r,o),ul=function(){r.textContent="".concat(t?t--:t++)}}xm.push(e),ul()},$y=function(e){Ly(function(){requestAnimationFrame(e)})},ea=0,Iy=function(){return!!ea},Ry=250,Ay={attributes:!0,characterData:!0,childList:!0,subtree:!0},id=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],ad=function(e){return e===void 0&&(e=0),Date.now()+e},dl=!1,Oy=function(){function e(){var t=this;this.stopped=!0,this.listener=function(){return t.schedule()}}return e.prototype.run=function(t){var r=this;if(t===void 0&&(t=Ry),!dl){dl=!0;var o=ad(t);$y(function(){var n=!1;try{n=Py()}finally{if(dl=!1,t=o-ad(),!Iy())return;n?r.run(1e3):t>0?r.run(t):r.start()}})}},e.prototype.schedule=function(){this.stop(),this.run()},e.prototype.observe=function(){var t=this,r=function(){return t.observer&&t.observer.observe(document.body,Ay)};document.body?r():Dn.addEventListener("DOMContentLoaded",r)},e.prototype.start=function(){var t=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),id.forEach(function(r){return Dn.addEventListener(r,t.listener,!0)}))},e.prototype.stop=function(){var t=this;this.stopped||(this.observer&&this.observer.disconnect(),id.forEach(function(r){return Dn.removeEventListener(r,t.listener,!0)}),this.stopped=!0)},e}(),Vl=new Oy,sd=function(e){!ea&&e>0&&Vl.start(),ea+=e,!ea&&Vl.stop()},By=function(e){return!au(e)&&!Sy(e)&&getComputedStyle(e).display==="inline"},Hy=function(){function e(t,r){this.target=t,this.observedBox=r||ai.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return e.prototype.isActive=function(){var t=mm(this.target,this.observedBox,!0);return By(this.target)&&(this.lastReportedSize=t),this.lastReportedSize.inlineSize!==t.inlineSize||this.lastReportedSize.blockSize!==t.blockSize},e}(),My=function(){function e(t,r){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=t,this.callback=r}return e}(),Ni=new WeakMap,ld=function(e,t){for(var r=0;r=0&&(i&&Lo.splice(Lo.indexOf(o),1),o.observationTargets.splice(n,1),sd(-1))},e.disconnect=function(t){var r=this,o=Ni.get(t);o.observationTargets.slice().forEach(function(n){return r.unobserve(t,n.target)}),o.activeTargets.splice(0,o.activeTargets.length)},e}(),Dy=function(){function e(t){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof t!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");Wi.connect(this,t)}return e.prototype.observe=function(t,r){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!td(t))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");Wi.observe(this,t,r)},e.prototype.unobserve=function(t){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!td(t))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");Wi.unobserve(this,t)},e.prototype.disconnect=function(){Wi.disconnect(this)},e.toString=function(){return"function ResizeObserver () { [polyfill code] }"},e}();class Fy{constructor(){this.handleResize=this.handleResize.bind(this),this.observer=new(typeof window<"u"&&window.ResizeObserver||Dy)(this.handleResize),this.elHandlersMap=new Map}handleResize(t){for(const r of t){const o=this.elHandlersMap.get(r.target);o!==void 0&&o(r)}}registerHandler(t,r){this.elHandlersMap.set(t,r),this.observer.observe(t)}unregisterHandler(t){this.elHandlersMap.has(t)&&(this.elHandlersMap.delete(t),this.observer.unobserve(t))}}const cd=new Fy,ud=Oe({name:"ResizeObserver",props:{onResize:Function},setup(e){let t=!1;const r=ir().proxy;function o(n){const{onResize:i}=e;i!==void 0&&i(n)}Sr(()=>{const n=r.$el;if(n===void 0){Q0("resize-observer","$el does not exist.");return}if(n.nextElementSibling!==n.nextSibling&&n.nodeType===3&&n.nodeValue!==""){Q0("resize-observer","$el can not be observed (it may be a text node).");return}n.nextElementSibling!==null&&(cd.registerHandler(n.nextElementSibling,o),t=!0)}),Zt(()=>{t&&cd.unregisterHandler(r.$el.nextElementSibling)})},render(){return Tp(this.$slots,"default")}});function vm(e){return e instanceof HTMLElement}function bm(e){for(let t=0;t=0;t--){const r=e.childNodes[t];if(vm(r)&&(ym(r)||Cm(r)))return!0}return!1}function ym(e){if(!zy(e))return!1;try{e.focus({preventScroll:!0})}catch{}return document.activeElement===e}function zy(e){if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.getAttribute("disabled"))return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return e.type!=="hidden"&&e.type!=="file";case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}}let wn=[];const Ny=Oe({name:"FocusTrap",props:{disabled:Boolean,active:Boolean,autoFocus:{type:Boolean,default:!0},onEsc:Function,initialFocusTo:String,finalFocusTo:String,returnFocusOnDeactivated:{type:Boolean,default:!0}},setup(e){const t=ws(),r=de(null),o=de(null);let n=!1,i=!1;const a=typeof document>"u"?null:document.activeElement;function s(){return wn[wn.length-1]===t}function l(v){var g;v.code==="Escape"&&s()&&((g=e.onEsc)===null||g===void 0||g.call(e,v))}Sr(()=>{kt(()=>e.active,v=>{v?(d(),Gt("keydown",document,l)):(Pt("keydown",document,l),n&&f())},{immediate:!0})}),Zt(()=>{Pt("keydown",document,l),n&&f()});function c(v){if(!i&&s()){const g=u();if(g===null||g.contains(Qc(v)))return;p("first")}}function u(){const v=r.value;if(v===null)return null;let g=v;for(;g=g.nextSibling,!(g===null||g instanceof Element&&g.tagName==="DIV"););return g}function d(){var v;if(!e.disabled){if(wn.push(t),e.autoFocus){const{initialFocusTo:g}=e;g===void 0?p("first"):(v=J0(g))===null||v===void 0||v.focus({preventScroll:!0})}n=!0,document.addEventListener("focus",c,!0)}}function f(){var v;if(e.disabled||(document.removeEventListener("focus",c,!0),wn=wn.filter(x=>x!==t),s()))return;const{finalFocusTo:g}=e;g!==void 0?(v=J0(g))===null||v===void 0||v.focus({preventScroll:!0}):e.returnFocusOnDeactivated&&a instanceof HTMLElement&&(i=!0,a.focus({preventScroll:!0}),i=!1)}function p(v){if(s()&&e.active){const g=r.value,x=o.value;if(g!==null&&x!==null){const C=u();if(C==null||C===x){i=!0,g.focus({preventScroll:!0}),i=!1;return}i=!0;const b=v==="first"?bm(C):Cm(C);i=!1,b||(i=!0,g.focus({preventScroll:!0}),i=!1)}}}function h(v){if(i)return;const g=u();g!==null&&(v.relatedTarget!==null&&g.contains(v.relatedTarget)?p("last"):p("first"))}function m(v){i||(v.relatedTarget!==null&&v.relatedTarget===r.value?p("last"):p("first"))}return{focusableStartRef:r,focusableEndRef:o,focusableStyle:"position: absolute; height: 0; width: 0;",handleStartFocus:h,handleEndFocus:m}},render(){const{default:e}=this.$slots;if(e===void 0)return null;if(this.disabled)return e();const{active:t,focusableStyle:r}=this;return H(Je,null,[H("div",{"aria-hidden":"true",tabindex:t?"0":"-1",ref:"focusableStartRef",style:r,onFocus:this.handleStartFocus}),e(),H("div",{"aria-hidden":"true",style:r,ref:"focusableEndRef",tabindex:t?"0":"-1",onFocus:this.handleEndFocus})])}});let Wo=0,dd="",fd="",hd="",pd="";const md=de("0px");function Wy(e){if(typeof document>"u")return;const t=document.documentElement;let r,o=!1;const n=()=>{t.style.marginRight=dd,t.style.overflow=fd,t.style.overflowX=hd,t.style.overflowY=pd,md.value="0px"};Sr(()=>{r=kt(e,i=>{if(i){if(!Wo){const a=window.innerWidth-t.offsetWidth;a>0&&(dd=t.style.marginRight,t.style.marginRight=`${a}px`,md.value=`${a}px`),fd=t.style.overflow,hd=t.style.overflowX,pd=t.style.overflowY,t.style.overflow="hidden",t.style.overflowX="hidden",t.style.overflowY="hidden"}o=!0,Wo++}else Wo--,Wo||n(),o=!1},{immediate:!0})}),Zt(()=>{r==null||r(),o&&(Wo--,Wo||n(),o=!1)})}const su=de(!1),gd=()=>{su.value=!0},xd=()=>{su.value=!1};let _n=0;const jy=()=>(dn&&(Hr(()=>{_n||(window.addEventListener("compositionstart",gd),window.addEventListener("compositionend",xd)),_n++}),Zt(()=>{_n<=1?(window.removeEventListener("compositionstart",gd),window.removeEventListener("compositionend",xd),_n=0):_n--})),su);function Uy(e){const t={isDeactivated:!1};let r=!1;return bp(()=>{if(t.isDeactivated=!1,!r){r=!0;return}e()}),Cp(()=>{t.isDeactivated=!0,r||(r=!0)}),t}const vd="n-form-item";function Vy(e,{defaultSize:t="medium",mergedSize:r,mergedDisabled:o}={}){const n=Me(vd,null);dt(vd,null);const i=ae(r?()=>r(n):()=>{const{size:l}=e;if(l)return l;if(n){const{mergedSize:c}=n;if(c.value!==void 0)return c.value}return t}),a=ae(o?()=>o(n):()=>{const{disabled:l}=e;return l!==void 0?l:n?n.disabled.value:!1}),s=ae(()=>{const{status:l}=e;return l||(n==null?void 0:n.mergedValidationStatus.value)});return Zt(()=>{n&&n.restoreValidation()}),{mergedSizeRef:i,mergedDisabledRef:a,mergedStatusRef:s,nTriggerFormBlur(){n&&n.handleContentBlur()},nTriggerFormChange(){n&&n.handleContentChange()},nTriggerFormFocus(){n&&n.handleContentFocus()},nTriggerFormInput(){n&&n.handleContentInput()}}}var qy=typeof global=="object"&&global&&global.Object===Object&&global;const Sm=qy;var Gy=typeof self=="object"&&self&&self.Object===Object&&self,Ky=Sm||Gy||Function("return this")();const fn=Ky;var Zy=fn.Symbol;const rn=Zy;var wm=Object.prototype,Xy=wm.hasOwnProperty,Yy=wm.toString,Tn=rn?rn.toStringTag:void 0;function Qy(e){var t=Xy.call(e,Tn),r=e[Tn];try{e[Tn]=void 0;var o=!0}catch{}var n=Yy.call(e);return o&&(t?e[Tn]=r:delete e[Tn]),n}var Jy=Object.prototype,e4=Jy.toString;function t4(e){return e4.call(e)}var r4="[object Null]",o4="[object Undefined]",bd=rn?rn.toStringTag:void 0;function Ci(e){return e==null?e===void 0?o4:r4:bd&&bd in Object(e)?Qy(e):t4(e)}function hn(e){return e!=null&&typeof e=="object"}var n4="[object Symbol]";function i4(e){return typeof e=="symbol"||hn(e)&&Ci(e)==n4}function a4(e,t){for(var r=-1,o=e==null?0:e.length,n=Array(o);++r0){if(++t>=I4)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function B4(e){return function(){return e}}var H4=function(){try{var e=cu(Object,"defineProperty");return e({},"",{}),e}catch{}}();const ba=H4;var M4=ba?function(e,t){return ba(e,"toString",{configurable:!0,enumerable:!1,value:B4(t),writable:!0})}:Tm;const D4=M4;var F4=O4(D4);const z4=F4;var N4=9007199254740991,W4=/^(?:0|[1-9]\d*)$/;function Em(e,t){var r=typeof e;return t=t??N4,!!t&&(r=="number"||r!="symbol"&&W4.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=Z4}function du(e){return e!=null&&Pm(e.length)&&!lu(e)}function X4(e,t,r){if(!Oo(r))return!1;var o=typeof t;return(o=="number"?du(r)&&Em(t,r.length):o=="string"&&t in r)?Ps(r[t],e):!1}function Y4(e){return K4(function(t,r){var o=-1,n=r.length,i=n>1?r[n-1]:void 0,a=n>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(n--,i):void 0,a&&X4(r[0],r[1],a)&&(i=n<3?void 0:i,n=1),t=Object(t);++o-1}function c8(e,t){var r=this.__data__,o=ks(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}function Mr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++tn?0:n+t),r=r>n?n:r,r<0&&(r+=n),n=t>r?0:r-t>>>0,t>>>=0;for(var i=Array(n);++o=o?e:T8(e,t,r)}var P8="\\ud800-\\udfff",k8="\\u0300-\\u036f",L8="\\ufe20-\\ufe2f",$8="\\u20d0-\\u20ff",I8=k8+L8+$8,R8="\\ufe0e\\ufe0f",A8="\\u200d",O8=RegExp("["+A8+P8+I8+R8+"]");function Dm(e){return O8.test(e)}function B8(e){return e.split("")}var Fm="\\ud800-\\udfff",H8="\\u0300-\\u036f",M8="\\ufe20-\\ufe2f",D8="\\u20d0-\\u20ff",F8=H8+M8+D8,z8="\\ufe0e\\ufe0f",N8="["+Fm+"]",Gl="["+F8+"]",Kl="\\ud83c[\\udffb-\\udfff]",W8="(?:"+Gl+"|"+Kl+")",zm="[^"+Fm+"]",Nm="(?:\\ud83c[\\udde6-\\uddff]){2}",Wm="[\\ud800-\\udbff][\\udc00-\\udfff]",j8="\\u200d",jm=W8+"?",Um="["+z8+"]?",U8="(?:"+j8+"(?:"+[zm,Nm,Wm].join("|")+")"+Um+jm+")*",V8=Um+jm+U8,q8="(?:"+[zm+Gl+"?",Gl,Nm,Wm,N8].join("|")+")",G8=RegExp(Kl+"(?="+Kl+")|"+q8+V8,"g");function K8(e){return e.match(G8)||[]}function Z8(e){return Dm(e)?K8(e):B8(e)}function X8(e){return function(t){t=x8(t);var r=Dm(t)?Z8(t):void 0,o=r?r[0]:t.charAt(0),n=r?E8(r,1).join(""):t.slice(1);return o[e]()+n}}var Y8=X8("toUpperCase");const Q8=Y8;function J8(){this.__data__=new Mr,this.size=0}function e3(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function t3(e){return this.__data__.get(e)}function r3(e){return this.__data__.has(e)}var o3=200;function n3(e,t){var r=this.__data__;if(r instanceof Mr){var o=r.__data__;if(!Bm||o.length{const u=i==null?void 0:i.value;r.mount({id:u===void 0?t:u+t,head:!0,props:{bPrefix:u?`.${u}-`:void 0},anchorMetaName:li,ssr:a}),s!=null&&s.preflightStyleDisabled||Gm.mount({id:"n-global",head:!0,anchorMetaName:li,ssr:a})};a?c():Hr(c)}return ae(()=>{var c;const{theme:{common:u,self:d,peers:f={}}={},themeOverrides:p={},builtinThemeOverrides:h={}}=n,{common:m,peers:v}=p,{common:g=void 0,[e]:{common:x=void 0,self:C=void 0,peers:b={}}={}}=(s==null?void 0:s.mergedThemeRef.value)||{},{common:w=void 0,[e]:T={}}=(s==null?void 0:s.mergedThemeOverridesRef.value)||{},{common:S,peers:E={}}=T,I=An({},u||x||g||o.common,w,S,m),P=An((c=d||C||o.self)===null||c===void 0?void 0:c(I),h,T,p);return{common:I,self:P,peers:An({},o.peers,b,f),peerOverrides:An({},h.peers,E,v)}})}Ct.props={theme:Object,themeOverrides:Object,builtinThemeOverrides:Object};const ci="n";function sr(e={},t={defaultBordered:!0}){const r=Me(oo,null);return{inlineThemeDisabled:r==null?void 0:r.inlineThemeDisabled,mergedRtlRef:r==null?void 0:r.mergedRtlRef,mergedComponentPropsRef:r==null?void 0:r.mergedComponentPropsRef,mergedBreakpointsRef:r==null?void 0:r.mergedBreakpointsRef,mergedBorderedRef:ae(()=>{var o,n;const{bordered:i}=e;return i!==void 0?i:(n=(o=r==null?void 0:r.mergedBorderedRef.value)!==null&&o!==void 0?o:t.defaultBordered)!==null&&n!==void 0?n:!0}),mergedClsPrefixRef:r?r.mergedClsPrefixRef:fs(ci),namespaceRef:ae(()=>r==null?void 0:r.mergedNamespaceRef.value)}}function JB(){const e=Me(oo,null);return e?e.mergedClsPrefixRef:fs(ci)}const y3={name:"zh-CN",global:{undo:"撤销",redo:"重做",confirm:"确认",clear:"清除"},Popconfirm:{positiveText:"确认",negativeText:"取消"},Cascader:{placeholder:"请选择",loading:"加载中",loadingRequiredMessage:e=>`加载全部 ${e} 的子节点后才可选中`},Time:{dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss"},DatePicker:{yearFormat:"yyyy年",monthFormat:"MMM",dayFormat:"eeeeee",yearTypeFormat:"yyyy",monthTypeFormat:"yyyy-MM",dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss",quarterFormat:"yyyy-qqq",clear:"清除",now:"此刻",confirm:"确认",selectTime:"选择时间",selectDate:"选择日期",datePlaceholder:"选择日期",datetimePlaceholder:"选择日期时间",monthPlaceholder:"选择月份",yearPlaceholder:"选择年份",quarterPlaceholder:"选择季度",startDatePlaceholder:"开始日期",endDatePlaceholder:"结束日期",startDatetimePlaceholder:"开始日期时间",endDatetimePlaceholder:"结束日期时间",startMonthPlaceholder:"开始月份",endMonthPlaceholder:"结束月份",monthBeforeYear:!1,firstDayOfWeek:0,today:"今天"},DataTable:{checkTableAll:"选择全部表格数据",uncheckTableAll:"取消选择全部表格数据",confirm:"确认",clear:"重置"},LegacyTransfer:{sourceTitle:"源项",targetTitle:"目标项"},Transfer:{selectAll:"全选",clearAll:"清除",unselectAll:"取消全选",total:e=>`共 ${e} 项`,selected:e=>`已选 ${e} 项`},Empty:{description:"无数据"},Select:{placeholder:"请选择"},TimePicker:{placeholder:"请选择时间",positiveText:"确认",negativeText:"取消",now:"此刻"},Pagination:{goto:"跳至",selectionSuffix:"页"},DynamicTags:{add:"添加"},Log:{loading:"加载中"},Input:{placeholder:"请输入"},InputNumber:{placeholder:"请输入"},DynamicInput:{create:"添加"},ThemeEditor:{title:"主题编辑器",clearAllVars:"清除全部变量",clearSearch:"清除搜索",filterCompName:"过滤组件名",filterVarName:"过滤变量名",import:"导入",export:"导出",restore:"恢复默认"},Image:{tipPrevious:"上一张(←)",tipNext:"下一张(→)",tipCounterclockwise:"向左旋转",tipClockwise:"向右旋转",tipZoomOut:"缩小",tipZoomIn:"放大",tipDownload:"下载",tipClose:"关闭(Esc)",tipOriginalSize:"缩放到原始尺寸"}},Od=y3,S3={name:"en-US",global:{undo:"Undo",redo:"Redo",confirm:"Confirm",clear:"Clear"},Popconfirm:{positiveText:"Confirm",negativeText:"Cancel"},Cascader:{placeholder:"Please Select",loading:"Loading",loadingRequiredMessage:e=>`Please load all ${e}'s descendants before checking it.`},Time:{dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss"},DatePicker:{yearFormat:"yyyy",monthFormat:"MMM",dayFormat:"eeeeee",yearTypeFormat:"yyyy",monthTypeFormat:"yyyy-MM",dateFormat:"yyyy-MM-dd",dateTimeFormat:"yyyy-MM-dd HH:mm:ss",quarterFormat:"yyyy-qqq",clear:"Clear",now:"Now",confirm:"Confirm",selectTime:"Select Time",selectDate:"Select Date",datePlaceholder:"Select Date",datetimePlaceholder:"Select Date and Time",monthPlaceholder:"Select Month",yearPlaceholder:"Select Year",quarterPlaceholder:"Select Quarter",startDatePlaceholder:"Start Date",endDatePlaceholder:"End Date",startDatetimePlaceholder:"Start Date and Time",endDatetimePlaceholder:"End Date and Time",startMonthPlaceholder:"Start Month",endMonthPlaceholder:"End Month",monthBeforeYear:!0,firstDayOfWeek:6,today:"Today"},DataTable:{checkTableAll:"Select all in the table",uncheckTableAll:"Unselect all in the table",confirm:"Confirm",clear:"Clear"},LegacyTransfer:{sourceTitle:"Source",targetTitle:"Target"},Transfer:{selectAll:"Select all",unselectAll:"Unselect all",clearAll:"Clear",total:e=>`Total ${e} items`,selected:e=>`${e} items selected`},Empty:{description:"No Data"},Select:{placeholder:"Please Select"},TimePicker:{placeholder:"Select Time",positiveText:"OK",negativeText:"Cancel",now:"Now"},Pagination:{goto:"Goto",selectionSuffix:"page"},DynamicTags:{add:"Add"},Log:{loading:"Loading"},Input:{placeholder:"Please Input"},InputNumber:{placeholder:"Please Input"},DynamicInput:{create:"Create"},ThemeEditor:{title:"Theme Editor",clearAllVars:"Clear All Variables",clearSearch:"Clear Search",filterCompName:"Filter Component Name",filterVarName:"Filter Variable Name",import:"Import",export:"Export",restore:"Reset to Default"},Image:{tipPrevious:"Previous picture (←)",tipNext:"Next picture (→)",tipCounterclockwise:"Counterclockwise",tipClockwise:"Clockwise",tipZoomOut:"Zoom out",tipZoomIn:"Zoom in",tipDownload:"Download",tipClose:"Close (Esc)",tipOriginalSize:"Zoom to original size"}},w3=S3;function $s(e,t,r){if(!t)return;const o=Es(),n=Me(oo,null),i=()=>{const a=r.value;t.mount({id:a===void 0?e:a+e,head:!0,anchorMetaName:li,props:{bPrefix:a?`.${a}-`:void 0},ssr:o}),n!=null&&n.preflightStyleDisabled||Gm.mount({id:"n-global",head:!0,anchorMetaName:li,ssr:o})};o?i():Hr(i)}function so(e,t,r,o){var n;r||vi("useThemeClass","cssVarsRef is not passed");const i=(n=Me(oo,null))===null||n===void 0?void 0:n.mergedThemeHashRef,a=de(""),s=Es();let l;const c=`__${e}`,u=()=>{let d=c;const f=t?t.value:void 0,p=i==null?void 0:i.value;p&&(d+="-"+p),f&&(d+="-"+f);const{themeOverrides:h,builtinThemeOverrides:m}=o;h&&(d+="-"+ni(JSON.stringify(h))),m&&(d+="-"+ni(JSON.stringify(m))),a.value=d,l=()=>{const v=r.value;let g="";for(const x in v)g+=`${x}: ${v[x]};`;ne(`.${d}`,g).mount({id:d,ssr:s}),l=void 0}};return gs(()=>{u()}),{themeClass:a,onRender:()=>{l==null||l()}}}function yi(e,t,r){if(!t)return;const o=Es(),n=ae(()=>{const{value:a}=t;if(!a)return;const s=a[e];if(s)return s}),i=()=>{gs(()=>{const{value:a}=r,s=`${a}${e}Rtl`;if(zC(s,o))return;const{value:l}=n;l&&l.style.mount({id:s,head:!0,anchorMetaName:li,props:{bPrefix:a?`.${a}-`:void 0},ssr:o})})};return o?i():Hr(i),n}function Si(e,t){return Oe({name:Q8(e),setup(){var r;const o=(r=Me(oo,null))===null||r===void 0?void 0:r.mergedIconsRef;return()=>{var n;const i=(n=o==null?void 0:o.value)===null||n===void 0?void 0:n[e];return i?i():t}}})}const _3=Si("close",H("svg",{viewBox:"0 0 12 12",version:"1.1",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0},H("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},H("g",{fill:"currentColor","fill-rule":"nonzero"},H("path",{d:"M2.08859116,2.2156945 L2.14644661,2.14644661 C2.32001296,1.97288026 2.58943736,1.95359511 2.7843055,2.08859116 L2.85355339,2.14644661 L6,5.293 L9.14644661,2.14644661 C9.34170876,1.95118446 9.65829124,1.95118446 9.85355339,2.14644661 C10.0488155,2.34170876 10.0488155,2.65829124 9.85355339,2.85355339 L6.707,6 L9.85355339,9.14644661 C10.0271197,9.32001296 10.0464049,9.58943736 9.91140884,9.7843055 L9.85355339,9.85355339 C9.67998704,10.0271197 9.41056264,10.0464049 9.2156945,9.91140884 L9.14644661,9.85355339 L6,6.707 L2.85355339,9.85355339 C2.65829124,10.0488155 2.34170876,10.0488155 2.14644661,9.85355339 C1.95118446,9.65829124 1.95118446,9.34170876 2.14644661,9.14644661 L5.293,6 L2.14644661,2.85355339 C1.97288026,2.67998704 1.95359511,2.41056264 2.08859116,2.2156945 L2.14644661,2.14644661 L2.08859116,2.2156945 Z"}))))),fu=Si("error",H("svg",{viewBox:"0 0 48 48",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},H("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},H("g",{"fill-rule":"nonzero"},H("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M17.8838835,16.1161165 L17.7823881,16.0249942 C17.3266086,15.6583353 16.6733914,15.6583353 16.2176119,16.0249942 L16.1161165,16.1161165 L16.0249942,16.2176119 C15.6583353,16.6733914 15.6583353,17.3266086 16.0249942,17.7823881 L16.1161165,17.8838835 L22.233,24 L16.1161165,30.1161165 L16.0249942,30.2176119 C15.6583353,30.6733914 15.6583353,31.3266086 16.0249942,31.7823881 L16.1161165,31.8838835 L16.2176119,31.9750058 C16.6733914,32.3416647 17.3266086,32.3416647 17.7823881,31.9750058 L17.8838835,31.8838835 L24,25.767 L30.1161165,31.8838835 L30.2176119,31.9750058 C30.6733914,32.3416647 31.3266086,32.3416647 31.7823881,31.9750058 L31.8838835,31.8838835 L31.9750058,31.7823881 C32.3416647,31.3266086 32.3416647,30.6733914 31.9750058,30.2176119 L31.8838835,30.1161165 L25.767,24 L31.8838835,17.8838835 L31.9750058,17.7823881 C32.3416647,17.3266086 32.3416647,16.6733914 31.9750058,16.2176119 L31.8838835,16.1161165 L31.7823881,16.0249942 C31.3266086,15.6583353 30.6733914,15.6583353 30.2176119,16.0249942 L30.1161165,16.1161165 L24,22.233 L17.8838835,16.1161165 L17.7823881,16.0249942 L17.8838835,16.1161165 Z"}))))),Ca=Si("info",H("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},H("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},H("g",{"fill-rule":"nonzero"},H("path",{d:"M14,2 C20.6274,2 26,7.37258 26,14 C26,20.6274 20.6274,26 14,26 C7.37258,26 2,20.6274 2,14 C2,7.37258 7.37258,2 14,2 Z M14,11 C13.4477,11 13,11.4477 13,12 L13,12 L13,20 C13,20.5523 13.4477,21 14,21 C14.5523,21 15,20.5523 15,20 L15,20 L15,12 C15,11.4477 14.5523,11 14,11 Z M14,6.75 C13.3096,6.75 12.75,7.30964 12.75,8 C12.75,8.69036 13.3096,9.25 14,9.25 C14.6904,9.25 15.25,8.69036 15.25,8 C15.25,7.30964 14.6904,6.75 14,6.75 Z"}))))),hu=Si("success",H("svg",{viewBox:"0 0 48 48",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},H("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},H("g",{"fill-rule":"nonzero"},H("path",{d:"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M32.6338835,17.6161165 C32.1782718,17.1605048 31.4584514,17.1301307 30.9676119,17.5249942 L30.8661165,17.6161165 L20.75,27.732233 L17.1338835,24.1161165 C16.6457281,23.6279612 15.8542719,23.6279612 15.3661165,24.1161165 C14.9105048,24.5717282 14.8801307,25.2915486 15.2749942,25.7823881 L15.3661165,25.8838835 L19.8661165,30.3838835 C20.3217282,30.8394952 21.0415486,30.8698693 21.5323881,30.4750058 L21.6338835,30.3838835 L32.6338835,19.3838835 C33.1220388,18.8957281 33.1220388,18.1042719 32.6338835,17.6161165 Z"}))))),pu=Si("warning",H("svg",{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},H("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},H("g",{"fill-rule":"nonzero"},H("path",{d:"M12,2 C17.523,2 22,6.478 22,12 C22,17.522 17.523,22 12,22 C6.477,22 2,17.522 2,12 C2,6.478 6.477,2 12,2 Z M12.0018002,15.0037242 C11.450254,15.0037242 11.0031376,15.4508407 11.0031376,16.0023869 C11.0031376,16.553933 11.450254,17.0010495 12.0018002,17.0010495 C12.5533463,17.0010495 13.0004628,16.553933 13.0004628,16.0023869 C13.0004628,15.4508407 12.5533463,15.0037242 12.0018002,15.0037242 Z M11.99964,7 C11.4868042,7.00018474 11.0642719,7.38637706 11.0066858,7.8837365 L11,8.00036004 L11.0018003,13.0012393 L11.00857,13.117858 C11.0665141,13.6151758 11.4893244,14.0010638 12.0021602,14.0008793 C12.514996,14.0006946 12.9375283,13.6145023 12.9951144,13.1171428 L13.0018002,13.0005193 L13,7.99964009 L12.9932303,7.8830214 C12.9352861,7.38570354 12.5124758,6.99981552 11.99964,7 Z"}))))),mu=Oe({name:"BaseIconSwitchTransition",setup(e,{slots:t}){const r=iu();return()=>H(br,{name:"icon-switch-transition",appear:r.value},t)}}),Km=Oe({name:"FadeInExpandTransition",props:{appear:Boolean,group:Boolean,mode:String,onLeave:Function,onAfterLeave:Function,onAfterEnter:Function,width:Boolean,reverse:Boolean},setup(e,{slots:t}){function r(s){e.width?s.style.maxWidth=`${s.offsetWidth}px`:s.style.maxHeight=`${s.offsetHeight}px`,s.offsetWidth}function o(s){e.width?s.style.maxWidth="0":s.style.maxHeight="0",s.offsetWidth;const{onLeave:l}=e;l&&l()}function n(s){e.width?s.style.maxWidth="":s.style.maxHeight="";const{onAfterLeave:l}=e;l&&l()}function i(s){if(s.style.transition="none",e.width){const l=s.offsetWidth;s.style.maxWidth="0",s.offsetWidth,s.style.transition="",s.style.maxWidth=`${l}px`}else if(e.reverse)s.style.maxHeight=`${s.offsetHeight}px`,s.offsetHeight,s.style.transition="",s.style.maxHeight="0";else{const l=s.offsetHeight;s.style.maxHeight="0",s.offsetWidth,s.style.transition="",s.style.maxHeight=`${l}px`}s.offsetWidth}function a(s){var l;e.width?s.style.maxWidth="":e.reverse||(s.style.maxHeight=""),(l=e.onAfterEnter)===null||l===void 0||l.call(e)}return()=>{const{group:s,width:l,appear:c,mode:u}=e,d=s?oC:br,f={name:l?"fade-in-width-expand-transition":"fade-in-height-expand-transition",appear:c,onEnter:i,onAfterEnter:a,onBeforeLeave:r,onLeave:o,onAfterLeave:n};return s||(f.mode=u),H(d,f,t)}}}),T3=Se("base-icon",` - height: 1em; - width: 1em; - line-height: 1em; - text-align: center; - display: inline-block; - position: relative; - fill: currentColor; - transform: translateZ(0); -`,[ne("svg",` - height: 1em; - width: 1em; - `)]),Is=Oe({name:"BaseIcon",props:{role:String,ariaLabel:String,ariaDisabled:{type:Boolean,default:void 0},ariaHidden:{type:Boolean,default:void 0},clsPrefix:{type:String,required:!0},onClick:Function,onMousedown:Function,onMouseup:Function},setup(e){$s("-base-icon",T3,Rr(e,"clsPrefix"))},render(){return H("i",{class:`${this.clsPrefix}-base-icon`,onClick:this.onClick,onMousedown:this.onMousedown,onMouseup:this.onMouseup,role:this.role,"aria-label":this.ariaLabel,"aria-hidden":this.ariaHidden,"aria-disabled":this.ariaDisabled},this.$slots)}}),E3=Se("base-close",` - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - background-color: transparent; - color: var(--n-close-icon-color); - border-radius: var(--n-close-border-radius); - height: var(--n-close-size); - width: var(--n-close-size); - font-size: var(--n-close-icon-size); - outline: none; - border: none; - position: relative; - padding: 0; -`,[Ce("absolute",` - height: var(--n-close-icon-size); - width: var(--n-close-icon-size); - `),ne("&::before",` - content: ""; - position: absolute; - width: var(--n-close-size); - height: var(--n-close-size); - left: 50%; - top: 50%; - transform: translateY(-50%) translateX(-50%); - transition: inherit; - border-radius: inherit; - `),Wl("disabled",[ne("&:hover",` - color: var(--n-close-icon-color-hover); - `),ne("&:hover::before",` - background-color: var(--n-close-color-hover); - `),ne("&:focus::before",` - background-color: var(--n-close-color-hover); - `),ne("&:active",` - color: var(--n-close-icon-color-pressed); - `),ne("&:active::before",` - background-color: var(--n-close-color-pressed); - `)]),Ce("disabled",` - cursor: not-allowed; - color: var(--n-close-icon-color-disabled); - background-color: transparent; - `),Ce("round",[ne("&::before",` - border-radius: 50%; - `)])]),Rs=Oe({name:"BaseClose",props:{isButtonTag:{type:Boolean,default:!0},clsPrefix:{type:String,required:!0},disabled:{type:Boolean,default:void 0},focusable:{type:Boolean,default:!0},round:Boolean,onClick:Function,absolute:Boolean},setup(e){return $s("-base-close",E3,Rr(e,"clsPrefix")),()=>{const{clsPrefix:t,disabled:r,absolute:o,round:n,isButtonTag:i}=e;return H(i?"button":"div",{type:i?"button":void 0,tabindex:r||!e.focusable?-1:0,"aria-disabled":r,"aria-label":"close",role:i?void 0:"button",disabled:r,class:[`${t}-base-close`,o&&`${t}-base-close--absolute`,r&&`${t}-base-close--disabled`,n&&`${t}-base-close--round`],onMousedown:s=>{e.focusable||s.preventDefault()},onClick:e.onClick},H(Is,{clsPrefix:t},{default:()=>H(_3,null)}))}}}),{cubicBezierEaseInOut:P3}=ao;function ya({originalTransform:e="",left:t=0,top:r=0,transition:o=`all .3s ${P3} !important`}={}){return[ne("&.icon-switch-transition-enter-from, &.icon-switch-transition-leave-to",{transform:e+" scale(0.75)",left:t,top:r,opacity:0}),ne("&.icon-switch-transition-enter-to, &.icon-switch-transition-leave-from",{transform:`scale(1) ${e}`,left:t,top:r,opacity:1}),ne("&.icon-switch-transition-enter-active, &.icon-switch-transition-leave-active",{transformOrigin:"center",position:"absolute",left:t,top:r,transition:o})]}const k3=ne([ne("@keyframes loading-container-rotate",` - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } - `),ne("@keyframes loading-layer-rotate",` - 12.5% { - -webkit-transform: rotate(135deg); - transform: rotate(135deg); - } - 25% { - -webkit-transform: rotate(270deg); - transform: rotate(270deg); - } - 37.5% { - -webkit-transform: rotate(405deg); - transform: rotate(405deg); - } - 50% { - -webkit-transform: rotate(540deg); - transform: rotate(540deg); - } - 62.5% { - -webkit-transform: rotate(675deg); - transform: rotate(675deg); - } - 75% { - -webkit-transform: rotate(810deg); - transform: rotate(810deg); - } - 87.5% { - -webkit-transform: rotate(945deg); - transform: rotate(945deg); - } - 100% { - -webkit-transform: rotate(1080deg); - transform: rotate(1080deg); - } - `),ne("@keyframes loading-left-spin",` - from { - -webkit-transform: rotate(265deg); - transform: rotate(265deg); - } - 50% { - -webkit-transform: rotate(130deg); - transform: rotate(130deg); - } - to { - -webkit-transform: rotate(265deg); - transform: rotate(265deg); - } - `),ne("@keyframes loading-right-spin",` - from { - -webkit-transform: rotate(-265deg); - transform: rotate(-265deg); - } - 50% { - -webkit-transform: rotate(-130deg); - transform: rotate(-130deg); - } - to { - -webkit-transform: rotate(-265deg); - transform: rotate(-265deg); - } - `),Se("base-loading",` - position: relative; - line-height: 0; - width: 1em; - height: 1em; - `,[he("transition-wrapper",` - position: absolute; - width: 100%; - height: 100%; - `,[ya()]),he("container",` - display: inline-flex; - position: relative; - direction: ltr; - line-height: 0; - animation: loading-container-rotate 1568.2352941176ms linear infinite; - font-size: 0; - letter-spacing: 0; - white-space: nowrap; - opacity: 1; - width: 100%; - height: 100%; - `,[he("svg",` - stroke: var(--n-text-color); - fill: transparent; - position: absolute; - height: 100%; - overflow: hidden; - `),he("container-layer",` - position: absolute; - width: 100%; - height: 100%; - animation: loading-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - `,[he("container-layer-left",` - display: inline-flex; - position: relative; - width: 50%; - height: 100%; - overflow: hidden; - `,[he("svg",` - animation: loading-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - width: 200%; - `)]),he("container-layer-patch",` - position: absolute; - top: 0; - left: 47.5%; - box-sizing: border-box; - width: 5%; - height: 100%; - overflow: hidden; - `,[he("svg",` - left: -900%; - width: 2000%; - transform: rotate(180deg); - `)]),he("container-layer-right",` - display: inline-flex; - position: relative; - width: 50%; - height: 100%; - overflow: hidden; - `,[he("svg",` - animation: loading-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; - left: -100%; - width: 200%; - `)])])]),he("placeholder",` - position: absolute; - left: 50%; - top: 50%; - transform: translateX(-50%) translateY(-50%); - `,[ya({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})])])]),L3={strokeWidth:{type:Number,default:28},stroke:{type:String,default:void 0}},Zm=Oe({name:"BaseLoading",props:Object.assign({clsPrefix:{type:String,required:!0},show:{type:Boolean,default:!0},scale:{type:Number,default:1},radius:{type:Number,default:100}},L3),setup(e){$s("-base-loading",k3,Rr(e,"clsPrefix"))},render(){const{clsPrefix:e,radius:t,strokeWidth:r,stroke:o,scale:n}=this,i=t/n;return H("div",{class:`${e}-base-loading`,role:"img","aria-label":"loading"},H(mu,null,{default:()=>this.show?H("div",{key:"icon",class:`${e}-base-loading__transition-wrapper`},H("div",{class:`${e}-base-loading__container`},H("div",{class:`${e}-base-loading__container-layer`},H("div",{class:`${e}-base-loading__container-layer-left`},H("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*i} ${2*i}`,xmlns:"http://www.w3.org/2000/svg",style:{color:o}},H("circle",{fill:"none",stroke:"currentColor","stroke-width":r,"stroke-linecap":"round",cx:i,cy:i,r:t-r/2,"stroke-dasharray":4.91*t,"stroke-dashoffset":2.46*t}))),H("div",{class:`${e}-base-loading__container-layer-patch`},H("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*i} ${2*i}`,xmlns:"http://www.w3.org/2000/svg",style:{color:o}},H("circle",{fill:"none",stroke:"currentColor","stroke-width":r,"stroke-linecap":"round",cx:i,cy:i,r:t-r/2,"stroke-dasharray":4.91*t,"stroke-dashoffset":2.46*t}))),H("div",{class:`${e}-base-loading__container-layer-right`},H("svg",{class:`${e}-base-loading__svg`,viewBox:`0 0 ${2*i} ${2*i}`,xmlns:"http://www.w3.org/2000/svg",style:{color:o}},H("circle",{fill:"none",stroke:"currentColor","stroke-width":r,"stroke-linecap":"round",cx:i,cy:i,r:t-r/2,"stroke-dasharray":4.91*t,"stroke-dashoffset":2.46*t})))))):H("div",{key:"placeholder",class:`${e}-base-loading__placeholder`},this.$slots)}))}}),pe={neutralBase:"#000",neutralInvertBase:"#fff",neutralTextBase:"#fff",neutralPopover:"rgb(72, 72, 78)",neutralCard:"rgb(24, 24, 28)",neutralModal:"rgb(44, 44, 50)",neutralBody:"rgb(16, 16, 20)",alpha1:"0.9",alpha2:"0.82",alpha3:"0.52",alpha4:"0.38",alpha5:"0.28",alphaClose:"0.52",alphaDisabled:"0.38",alphaDisabledInput:"0.06",alphaPending:"0.09",alphaTablePending:"0.06",alphaTableStriped:"0.05",alphaPressed:"0.05",alphaAvatar:"0.18",alphaRail:"0.2",alphaProgressRail:"0.12",alphaBorder:"0.24",alphaDivider:"0.09",alphaInput:"0.1",alphaAction:"0.06",alphaTab:"0.04",alphaScrollbar:"0.2",alphaScrollbarHover:"0.3",alphaCode:"0.12",alphaTag:"0.2",primaryHover:"#7fe7c4",primaryDefault:"#63e2b7",primaryActive:"#5acea7",primarySuppl:"rgb(42, 148, 125)",infoHover:"#8acbec",infoDefault:"#70c0e8",infoActive:"#66afd3",infoSuppl:"rgb(56, 137, 197)",errorHover:"#e98b8b",errorDefault:"#e88080",errorActive:"#e57272",errorSuppl:"rgb(208, 58, 82)",warningHover:"#f5d599",warningDefault:"#f2c97d",warningActive:"#e6c260",warningSuppl:"rgb(240, 138, 0)",successHover:"#7fe7c4",successDefault:"#63e2b7",successActive:"#5acea7",successSuppl:"rgb(42, 148, 125)"},$3=Cr(pe.neutralBase),Xm=Cr(pe.neutralInvertBase),I3="rgba("+Xm.slice(0,3).join(", ")+", ";function Fe(e){return I3+String(e)+")"}function R3(e){const t=Array.from(Xm);return t[3]=Number(e),me($3,t)}const A3=Object.assign(Object.assign({name:"common"},ao),{baseColor:pe.neutralBase,primaryColor:pe.primaryDefault,primaryColorHover:pe.primaryHover,primaryColorPressed:pe.primaryActive,primaryColorSuppl:pe.primarySuppl,infoColor:pe.infoDefault,infoColorHover:pe.infoHover,infoColorPressed:pe.infoActive,infoColorSuppl:pe.infoSuppl,successColor:pe.successDefault,successColorHover:pe.successHover,successColorPressed:pe.successActive,successColorSuppl:pe.successSuppl,warningColor:pe.warningDefault,warningColorHover:pe.warningHover,warningColorPressed:pe.warningActive,warningColorSuppl:pe.warningSuppl,errorColor:pe.errorDefault,errorColorHover:pe.errorHover,errorColorPressed:pe.errorActive,errorColorSuppl:pe.errorSuppl,textColorBase:pe.neutralTextBase,textColor1:Fe(pe.alpha1),textColor2:Fe(pe.alpha2),textColor3:Fe(pe.alpha3),textColorDisabled:Fe(pe.alpha4),placeholderColor:Fe(pe.alpha4),placeholderColorDisabled:Fe(pe.alpha5),iconColor:Fe(pe.alpha4),iconColorDisabled:Fe(pe.alpha5),iconColorHover:Fe(Number(pe.alpha4)*1.25),iconColorPressed:Fe(Number(pe.alpha4)*.8),opacity1:pe.alpha1,opacity2:pe.alpha2,opacity3:pe.alpha3,opacity4:pe.alpha4,opacity5:pe.alpha5,dividerColor:Fe(pe.alphaDivider),borderColor:Fe(pe.alphaBorder),closeIconColorHover:Fe(Number(pe.alphaClose)),closeIconColor:Fe(Number(pe.alphaClose)),closeIconColorPressed:Fe(Number(pe.alphaClose)),closeColorHover:"rgba(255, 255, 255, .12)",closeColorPressed:"rgba(255, 255, 255, .08)",clearColor:Fe(pe.alpha4),clearColorHover:it(Fe(pe.alpha4),{alpha:1.25}),clearColorPressed:it(Fe(pe.alpha4),{alpha:.8}),scrollbarColor:Fe(pe.alphaScrollbar),scrollbarColorHover:Fe(pe.alphaScrollbarHover),scrollbarWidth:"5px",scrollbarHeight:"5px",scrollbarBorderRadius:"5px",progressRailColor:Fe(pe.alphaProgressRail),railColor:Fe(pe.alphaRail),popoverColor:pe.neutralPopover,tableColor:pe.neutralCard,cardColor:pe.neutralCard,modalColor:pe.neutralModal,bodyColor:pe.neutralBody,tagColor:R3(pe.alphaTag),avatarColor:Fe(pe.alphaAvatar),invertedColor:pe.neutralBase,inputColor:Fe(pe.alphaInput),codeColor:Fe(pe.alphaCode),tabColor:Fe(pe.alphaTab),actionColor:Fe(pe.alphaAction),tableHeaderColor:Fe(pe.alphaAction),hoverColor:Fe(pe.alphaPending),tableColorHover:Fe(pe.alphaTablePending),tableColorStriped:Fe(pe.alphaTableStriped),pressedColor:Fe(pe.alphaPressed),opacityDisabled:pe.alphaDisabled,inputColorDisabled:Fe(pe.alphaDisabledInput),buttonColor2:"rgba(255, 255, 255, .08)",buttonColor2Hover:"rgba(255, 255, 255, .12)",buttonColor2Pressed:"rgba(255, 255, 255, .08)",boxShadow1:"0 1px 2px -2px rgba(0, 0, 0, .24), 0 3px 6px 0 rgba(0, 0, 0, .18), 0 5px 12px 4px rgba(0, 0, 0, .12)",boxShadow2:"0 3px 6px -4px rgba(0, 0, 0, .24), 0 6px 12px 0 rgba(0, 0, 0, .16), 0 9px 18px 8px rgba(0, 0, 0, .10)",boxShadow3:"0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)"}),se=A3,we={neutralBase:"#FFF",neutralInvertBase:"#000",neutralTextBase:"#000",neutralPopover:"#fff",neutralCard:"#fff",neutralModal:"#fff",neutralBody:"#fff",alpha1:"0.82",alpha2:"0.72",alpha3:"0.38",alpha4:"0.24",alpha5:"0.18",alphaClose:"0.6",alphaDisabled:"0.5",alphaDisabledInput:"0.02",alphaPending:"0.05",alphaTablePending:"0.02",alphaPressed:"0.07",alphaAvatar:"0.2",alphaRail:"0.14",alphaProgressRail:".08",alphaBorder:"0.12",alphaDivider:"0.06",alphaInput:"0",alphaAction:"0.02",alphaTab:"0.04",alphaScrollbar:"0.25",alphaScrollbarHover:"0.4",alphaCode:"0.05",alphaTag:"0.02",primaryHover:"#36ad6a",primaryDefault:"#18a058",primaryActive:"#0c7a43",primarySuppl:"#36ad6a",infoHover:"#4098fc",infoDefault:"#2080f0",infoActive:"#1060c9",infoSuppl:"#4098fc",errorHover:"#de576d",errorDefault:"#d03050",errorActive:"#ab1f3f",errorSuppl:"#de576d",warningHover:"#fcb040",warningDefault:"#f0a020",warningActive:"#c97c10",warningSuppl:"#fcb040",successHover:"#36ad6a",successDefault:"#18a058",successActive:"#0c7a43",successSuppl:"#36ad6a"},O3=Cr(we.neutralBase),Ym=Cr(we.neutralInvertBase),B3="rgba("+Ym.slice(0,3).join(", ")+", ";function Bd(e){return B3+String(e)+")"}function wt(e){const t=Array.from(Ym);return t[3]=Number(e),me(O3,t)}const H3=Object.assign(Object.assign({name:"common"},ao),{baseColor:we.neutralBase,primaryColor:we.primaryDefault,primaryColorHover:we.primaryHover,primaryColorPressed:we.primaryActive,primaryColorSuppl:we.primarySuppl,infoColor:we.infoDefault,infoColorHover:we.infoHover,infoColorPressed:we.infoActive,infoColorSuppl:we.infoSuppl,successColor:we.successDefault,successColorHover:we.successHover,successColorPressed:we.successActive,successColorSuppl:we.successSuppl,warningColor:we.warningDefault,warningColorHover:we.warningHover,warningColorPressed:we.warningActive,warningColorSuppl:we.warningSuppl,errorColor:we.errorDefault,errorColorHover:we.errorHover,errorColorPressed:we.errorActive,errorColorSuppl:we.errorSuppl,textColorBase:we.neutralTextBase,textColor1:"rgb(31, 34, 37)",textColor2:"rgb(51, 54, 57)",textColor3:"rgb(118, 124, 130)",textColorDisabled:wt(we.alpha4),placeholderColor:wt(we.alpha4),placeholderColorDisabled:wt(we.alpha5),iconColor:wt(we.alpha4),iconColorHover:it(wt(we.alpha4),{lightness:.75}),iconColorPressed:it(wt(we.alpha4),{lightness:.9}),iconColorDisabled:wt(we.alpha5),opacity1:we.alpha1,opacity2:we.alpha2,opacity3:we.alpha3,opacity4:we.alpha4,opacity5:we.alpha5,dividerColor:"rgb(239, 239, 245)",borderColor:"rgb(224, 224, 230)",closeIconColor:wt(Number(we.alphaClose)),closeIconColorHover:wt(Number(we.alphaClose)),closeIconColorPressed:wt(Number(we.alphaClose)),closeColorHover:"rgba(0, 0, 0, .09)",closeColorPressed:"rgba(0, 0, 0, .13)",clearColor:wt(we.alpha4),clearColorHover:it(wt(we.alpha4),{lightness:.75}),clearColorPressed:it(wt(we.alpha4),{lightness:.9}),scrollbarColor:Bd(we.alphaScrollbar),scrollbarColorHover:Bd(we.alphaScrollbarHover),scrollbarWidth:"5px",scrollbarHeight:"5px",scrollbarBorderRadius:"5px",progressRailColor:wt(we.alphaProgressRail),railColor:"rgb(219, 219, 223)",popoverColor:we.neutralPopover,tableColor:we.neutralCard,cardColor:we.neutralCard,modalColor:we.neutralModal,bodyColor:we.neutralBody,tagColor:"#eee",avatarColor:wt(we.alphaAvatar),invertedColor:"rgb(0, 20, 40)",inputColor:wt(we.alphaInput),codeColor:"rgb(244, 244, 248)",tabColor:"rgb(247, 247, 250)",actionColor:"rgb(250, 250, 252)",tableHeaderColor:"rgb(250, 250, 252)",hoverColor:"rgb(243, 243, 245)",tableColorHover:"rgba(0, 0, 100, 0.03)",tableColorStriped:"rgba(0, 0, 100, 0.02)",pressedColor:"rgb(237, 237, 239)",opacityDisabled:we.alphaDisabled,inputColorDisabled:"rgb(250, 250, 252)",buttonColor2:"rgba(46, 51, 56, .05)",buttonColor2Hover:"rgba(46, 51, 56, .09)",buttonColor2Pressed:"rgba(46, 51, 56, .13)",boxShadow1:"0 1px 2px -2px rgba(0, 0, 0, .08), 0 3px 6px 0 rgba(0, 0, 0, .06), 0 5px 12px 4px rgba(0, 0, 0, .04)",boxShadow2:"0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05)",boxShadow3:"0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)"}),le=H3,M3={iconSizeSmall:"34px",iconSizeMedium:"40px",iconSizeLarge:"46px",iconSizeHuge:"52px"},Qm=e=>{const{textColorDisabled:t,iconColor:r,textColor2:o,fontSizeSmall:n,fontSizeMedium:i,fontSizeLarge:a,fontSizeHuge:s}=e;return Object.assign(Object.assign({},M3),{fontSizeSmall:n,fontSizeMedium:i,fontSizeLarge:a,fontSizeHuge:s,textColor:t,iconColor:r,extraTextColor:o})},D3={name:"Empty",common:le,self:Qm},Dr=D3,F3={name:"Empty",common:se,self:Qm},Bo=F3,Jm=e=>{const{scrollbarColor:t,scrollbarColorHover:r}=e;return{color:t,colorHover:r}},z3={name:"Scrollbar",common:le,self:Jm},$t=z3,N3={name:"Scrollbar",common:se,self:Jm},Mt=N3,{cubicBezierEaseInOut:Hd}=ao;function gu({name:e="fade-in",enterDuration:t="0.2s",leaveDuration:r="0.2s",enterCubicBezier:o=Hd,leaveCubicBezier:n=Hd}={}){return[ne(`&.${e}-transition-enter-active`,{transition:`all ${t} ${o}!important`}),ne(`&.${e}-transition-leave-active`,{transition:`all ${r} ${n}!important`}),ne(`&.${e}-transition-enter-from, &.${e}-transition-leave-to`,{opacity:0}),ne(`&.${e}-transition-leave-from, &.${e}-transition-enter-to`,{opacity:1})]}const W3=Se("scrollbar",` - overflow: hidden; - position: relative; - z-index: auto; - height: 100%; - width: 100%; -`,[ne(">",[Se("scrollbar-container",` - width: 100%; - overflow: scroll; - height: 100%; - min-height: inherit; - max-height: inherit; - scrollbar-width: none; - `,[ne("&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb",` - width: 0; - height: 0; - display: none; - `),ne(">",[Se("scrollbar-content",` - box-sizing: border-box; - min-width: 100%; - `)])])]),ne(">, +",[Se("scrollbar-rail",` - position: absolute; - pointer-events: none; - user-select: none; - -webkit-user-select: none; - `,[Ce("horizontal",` - left: 2px; - right: 2px; - bottom: 4px; - height: var(--n-scrollbar-height); - `,[ne(">",[he("scrollbar",` - height: var(--n-scrollbar-height); - border-radius: var(--n-scrollbar-border-radius); - right: 0; - `)])]),Ce("vertical",` - right: 4px; - top: 2px; - bottom: 2px; - width: var(--n-scrollbar-width); - `,[ne(">",[he("scrollbar",` - width: var(--n-scrollbar-width); - border-radius: var(--n-scrollbar-border-radius); - bottom: 0; - `)])]),Ce("disabled",[ne(">",[he("scrollbar",{pointerEvents:"none"})])]),ne(">",[he("scrollbar",` - position: absolute; - cursor: pointer; - pointer-events: all; - background-color: var(--n-scrollbar-color); - transition: background-color .2s var(--n-scrollbar-bezier); - `,[gu(),ne("&:hover",{backgroundColor:"var(--n-scrollbar-color-hover)"})])])])])]),j3=Object.assign(Object.assign({},Ct.props),{size:{type:Number,default:5},duration:{type:Number,default:0},scrollable:{type:Boolean,default:!0},xScrollable:Boolean,trigger:{type:String,default:"hover"},useUnifiedContainer:Boolean,triggerDisplayManually:Boolean,container:Function,content:Function,containerClass:String,containerStyle:[String,Object],contentClass:String,contentStyle:[String,Object],horizontalRailStyle:[String,Object],verticalRailStyle:[String,Object],onScroll:Function,onWheel:Function,onResize:Function,internalOnUpdateScrollLeft:Function,internalHoistYRail:Boolean}),eg=Oe({name:"Scrollbar",props:j3,inheritAttrs:!1,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:r,mergedRtlRef:o}=sr(e),n=yi("Scrollbar",o,t),i=de(null),a=de(null),s=de(null),l=de(null),c=de(null),u=de(null),d=de(null),f=de(null),p=de(null),h=de(null),m=de(null),v=de(0),g=de(0),x=de(!1),C=de(!1);let b=!1,w=!1,T,S,E=0,I=0,P=0,$=0;const R=ny(),B=ae(()=>{const{value:oe}=f,{value:be}=u,{value:Ee}=h;return oe===null||be===null||Ee===null?0:Math.min(oe,Ee*oe/be+e.size*1.5)}),j=ae(()=>`${B.value}px`),Y=ae(()=>{const{value:oe}=p,{value:be}=d,{value:Ee}=m;return oe===null||be===null||Ee===null?0:Ee*oe/be+e.size*1.5}),J=ae(()=>`${Y.value}px`),Q=ae(()=>{const{value:oe}=f,{value:be}=v,{value:Ee}=u,{value:Ve}=h;if(oe===null||Ee===null||Ve===null)return 0;{const et=Ee-oe;return et?be/et*(Ve-B.value):0}}),ie=ae(()=>`${Q.value}px`),ge=ae(()=>{const{value:oe}=p,{value:be}=g,{value:Ee}=d,{value:Ve}=m;if(oe===null||Ee===null||Ve===null)return 0;{const et=Ee-oe;return et?be/et*(Ve-Y.value):0}}),ve=ae(()=>`${ge.value}px`),z=ae(()=>{const{value:oe}=f,{value:be}=u;return oe!==null&&be!==null&&be>oe}),W=ae(()=>{const{value:oe}=p,{value:be}=d;return oe!==null&&be!==null&&be>oe}),Z=ae(()=>{const{trigger:oe}=e;return oe==="none"||x.value}),V=ae(()=>{const{trigger:oe}=e;return oe==="none"||C.value}),D=ae(()=>{const{container:oe}=e;return oe?oe():a.value}),U=ae(()=>{const{content:oe}=e;return oe?oe():s.value}),re=Uy(()=>{e.container||ke({top:v.value,left:g.value})}),ee=()=>{re.isDeactivated||ue()},ce=oe=>{if(re.isDeactivated)return;const{onResize:be}=e;be&&be(oe),ue()},ke=(oe,be)=>{if(!e.scrollable)return;if(typeof oe=="number"){k(be??0,oe,0,!1,"auto");return}const{left:Ee,top:Ve,index:et,elSize:St,position:Vt,behavior:Qe,el:Qt,debounce:uo=!0}=oe;(Ee!==void 0||Ve!==void 0)&&k(Ee??0,Ve??0,0,!1,Qe),Qt!==void 0?k(0,Qt.offsetTop,Qt.offsetHeight,uo,Qe):et!==void 0&&St!==void 0?k(0,et*St,St,uo,Qe):Vt==="bottom"?k(0,Number.MAX_SAFE_INTEGER,0,!1,Qe):Vt==="top"&&k(0,0,0,!1,Qe)},ye=(oe,be)=>{if(!e.scrollable)return;const{value:Ee}=D;Ee&&(typeof oe=="object"?Ee.scrollBy(oe):Ee.scrollBy(oe,be||0))};function k(oe,be,Ee,Ve,et){const{value:St}=D;if(St){if(Ve){const{scrollTop:Vt,offsetHeight:Qe}=St;if(be>Vt){be+Ee<=Vt+Qe||St.scrollTo({left:oe,top:be+Ee-Qe,behavior:et});return}}St.scrollTo({left:oe,top:be,behavior:et})}}function y(){X(),te(),ue()}function _(){L()}function L(){O(),N()}function O(){S!==void 0&&window.clearTimeout(S),S=window.setTimeout(()=>{C.value=!1},e.duration)}function N(){T!==void 0&&window.clearTimeout(T),T=window.setTimeout(()=>{x.value=!1},e.duration)}function X(){T!==void 0&&window.clearTimeout(T),x.value=!0}function te(){S!==void 0&&window.clearTimeout(S),C.value=!0}function q(oe){const{onScroll:be}=e;be&&be(oe),F()}function F(){const{value:oe}=D;oe&&(v.value=oe.scrollTop,g.value=oe.scrollLeft*(n!=null&&n.value?-1:1))}function A(){const{value:oe}=U;oe&&(u.value=oe.offsetHeight,d.value=oe.offsetWidth);const{value:be}=D;be&&(f.value=be.offsetHeight,p.value=be.offsetWidth);const{value:Ee}=c,{value:Ve}=l;Ee&&(m.value=Ee.offsetWidth),Ve&&(h.value=Ve.offsetHeight)}function M(){const{value:oe}=D;oe&&(v.value=oe.scrollTop,g.value=oe.scrollLeft*(n!=null&&n.value?-1:1),f.value=oe.offsetHeight,p.value=oe.offsetWidth,u.value=oe.scrollHeight,d.value=oe.scrollWidth);const{value:be}=c,{value:Ee}=l;be&&(m.value=be.offsetWidth),Ee&&(h.value=Ee.offsetHeight)}function ue(){e.scrollable&&(e.useUnifiedContainer?M():(A(),F()))}function xe(oe){var be;return!(!((be=i.value)===null||be===void 0)&&be.contains(Qc(oe)))}function Te(oe){oe.preventDefault(),oe.stopPropagation(),w=!0,Gt("mousemove",window,Ie,!0),Gt("mouseup",window,Re,!0),I=g.value,P=n!=null&&n.value?window.innerWidth-oe.clientX:oe.clientX}function Ie(oe){if(!w)return;T!==void 0&&window.clearTimeout(T),S!==void 0&&window.clearTimeout(S);const{value:be}=p,{value:Ee}=d,{value:Ve}=Y;if(be===null||Ee===null)return;const St=(n!=null&&n.value?window.innerWidth-oe.clientX-P:oe.clientX-P)*(Ee-be)/(be-Ve),Vt=Ee-be;let Qe=I+St;Qe=Math.min(Vt,Qe),Qe=Math.max(Qe,0);const{value:Qt}=D;if(Qt){Qt.scrollLeft=Qe*(n!=null&&n.value?-1:1);const{internalOnUpdateScrollLeft:uo}=e;uo&&uo(Qe)}}function Re(oe){oe.preventDefault(),oe.stopPropagation(),Pt("mousemove",window,Ie,!0),Pt("mouseup",window,Re,!0),w=!1,ue(),xe(oe)&&L()}function Ue(oe){oe.preventDefault(),oe.stopPropagation(),b=!0,Gt("mousemove",window,ct,!0),Gt("mouseup",window,xt,!0),E=v.value,$=oe.clientY}function ct(oe){if(!b)return;T!==void 0&&window.clearTimeout(T),S!==void 0&&window.clearTimeout(S);const{value:be}=f,{value:Ee}=u,{value:Ve}=B;if(be===null||Ee===null)return;const St=(oe.clientY-$)*(Ee-be)/(be-Ve),Vt=Ee-be;let Qe=E+St;Qe=Math.min(Vt,Qe),Qe=Math.max(Qe,0);const{value:Qt}=D;Qt&&(Qt.scrollTop=Qe)}function xt(oe){oe.preventDefault(),oe.stopPropagation(),Pt("mousemove",window,ct,!0),Pt("mouseup",window,xt,!0),b=!1,ue(),xe(oe)&&L()}gs(()=>{const{value:oe}=W,{value:be}=z,{value:Ee}=t,{value:Ve}=c,{value:et}=l;Ve&&(oe?Ve.classList.remove(`${Ee}-scrollbar-rail--disabled`):Ve.classList.add(`${Ee}-scrollbar-rail--disabled`)),et&&(be?et.classList.remove(`${Ee}-scrollbar-rail--disabled`):et.classList.add(`${Ee}-scrollbar-rail--disabled`))}),Sr(()=>{e.container||ue()}),Zt(()=>{T!==void 0&&window.clearTimeout(T),S!==void 0&&window.clearTimeout(S),Pt("mousemove",window,ct,!0),Pt("mouseup",window,xt,!0)});const lr=Ct("Scrollbar","-scrollbar",W3,$t,e,t),cr=ae(()=>{const{common:{cubicBezierEaseInOut:oe,scrollbarBorderRadius:be,scrollbarHeight:Ee,scrollbarWidth:Ve},self:{color:et,colorHover:St}}=lr.value;return{"--n-scrollbar-bezier":oe,"--n-scrollbar-color":et,"--n-scrollbar-color-hover":St,"--n-scrollbar-border-radius":be,"--n-scrollbar-width":Ve,"--n-scrollbar-height":Ee}}),Ut=r?so("scrollbar",void 0,cr,e):void 0;return Object.assign(Object.assign({},{scrollTo:ke,scrollBy:ye,sync:ue,syncUnifiedContainer:M,handleMouseEnterWrapper:y,handleMouseLeaveWrapper:_}),{mergedClsPrefix:t,rtlEnabled:n,containerScrollTop:v,wrapperRef:i,containerRef:a,contentRef:s,yRailRef:l,xRailRef:c,needYBar:z,needXBar:W,yBarSizePx:j,xBarSizePx:J,yBarTopPx:ie,xBarLeftPx:ve,isShowXBar:Z,isShowYBar:V,isIos:R,handleScroll:q,handleContentResize:ee,handleContainerResize:ce,handleYScrollMouseDown:Ue,handleXScrollMouseDown:Te,cssVars:r?void 0:cr,themeClass:Ut==null?void 0:Ut.themeClass,onRender:Ut==null?void 0:Ut.onRender})},render(){var e;const{$slots:t,mergedClsPrefix:r,triggerDisplayManually:o,rtlEnabled:n,internalHoistYRail:i}=this;if(!this.scrollable)return(e=t.default)===null||e===void 0?void 0:e.call(t);const a=this.trigger==="none",s=(u,d)=>H("div",{ref:"yRailRef",class:[`${r}-scrollbar-rail`,`${r}-scrollbar-rail--vertical`,u],"data-scrollbar-rail":!0,style:[d||"",this.verticalRailStyle],"aria-hiddens":!0},H(a?N0:br,a?null:{name:"fade-in-transition"},{default:()=>this.needYBar&&this.isShowYBar&&!this.isIos?H("div",{class:`${r}-scrollbar-rail__scrollbar`,style:{height:this.yBarSizePx,top:this.yBarTopPx},onMousedown:this.handleYScrollMouseDown}):null})),l=()=>{var u,d;return(u=this.onRender)===null||u===void 0||u.call(this),H("div",Yc(this.$attrs,{role:"none",ref:"wrapperRef",class:[`${r}-scrollbar`,this.themeClass,n&&`${r}-scrollbar--rtl`],style:this.cssVars,onMouseenter:o?void 0:this.handleMouseEnterWrapper,onMouseleave:o?void 0:this.handleMouseLeaveWrapper}),[this.container?(d=t.default)===null||d===void 0?void 0:d.call(t):H("div",{role:"none",ref:"containerRef",class:[`${r}-scrollbar-container`,this.containerClass],style:this.containerStyle,onScroll:this.handleScroll,onWheel:this.onWheel},H(ud,{onResize:this.handleContentResize},{default:()=>H("div",{ref:"contentRef",role:"none",style:[{width:this.xScrollable?"fit-content":null},this.contentStyle],class:[`${r}-scrollbar-content`,this.contentClass]},t)})),i?null:s(void 0,void 0),this.xScrollable&&H("div",{ref:"xRailRef",class:[`${r}-scrollbar-rail`,`${r}-scrollbar-rail--horizontal`],style:this.horizontalRailStyle,"data-scrollbar-rail":!0,"aria-hidden":!0},H(a?N0:br,a?null:{name:"fade-in-transition"},{default:()=>this.needXBar&&this.isShowXBar&&!this.isIos?H("div",{class:`${r}-scrollbar-rail__scrollbar`,style:{width:this.xBarSizePx,right:n?this.xBarLeftPx:void 0,left:n?void 0:this.xBarLeftPx},onMousedown:this.handleXScrollMouseDown}):null}))])},c=this.container?l():H(ud,{onResize:this.handleContainerResize},{default:l});return i?H(Je,null,c,s(this.themeClass,this.cssVars)):c}}),tg=eg,eH=eg,U3={height:"calc(var(--n-option-height) * 7.6)",paddingSmall:"4px 0",paddingMedium:"4px 0",paddingLarge:"4px 0",paddingHuge:"4px 0",optionPaddingSmall:"0 12px",optionPaddingMedium:"0 12px",optionPaddingLarge:"0 12px",optionPaddingHuge:"0 12px",loadingSize:"18px"},rg=e=>{const{borderRadius:t,popoverColor:r,textColor3:o,dividerColor:n,textColor2:i,primaryColorPressed:a,textColorDisabled:s,primaryColor:l,opacityDisabled:c,hoverColor:u,fontSizeSmall:d,fontSizeMedium:f,fontSizeLarge:p,fontSizeHuge:h,heightSmall:m,heightMedium:v,heightLarge:g,heightHuge:x}=e;return Object.assign(Object.assign({},U3),{optionFontSizeSmall:d,optionFontSizeMedium:f,optionFontSizeLarge:p,optionFontSizeHuge:h,optionHeightSmall:m,optionHeightMedium:v,optionHeightLarge:g,optionHeightHuge:x,borderRadius:t,color:r,groupHeaderTextColor:o,actionDividerColor:n,optionTextColor:i,optionTextColorPressed:a,optionTextColorDisabled:s,optionTextColorActive:l,optionOpacityDisabled:c,optionCheckColor:l,optionColorPending:u,optionColorActive:"rgba(0, 0, 0, 0)",optionColorActivePending:u,actionTextColor:i,loadingColor:l})},V3={name:"InternalSelectMenu",common:le,peers:{Scrollbar:$t,Empty:Dr},self:rg},wi=V3,q3={name:"InternalSelectMenu",common:se,peers:{Scrollbar:Mt,Empty:Bo},self:rg},_i=q3,{cubicBezierEaseIn:Md,cubicBezierEaseOut:Dd}=ao;function G3({transformOrigin:e="inherit",duration:t=".2s",enterScale:r=".9",originalTransform:o="",originalTransition:n=""}={}){return[ne("&.fade-in-scale-up-transition-leave-active",{transformOrigin:e,transition:`opacity ${t} ${Md}, transform ${t} ${Md} ${n&&","+n}`}),ne("&.fade-in-scale-up-transition-enter-active",{transformOrigin:e,transition:`opacity ${t} ${Dd}, transform ${t} ${Dd} ${n&&","+n}`}),ne("&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to",{opacity:0,transform:`${o} scale(${r})`}),ne("&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to",{opacity:1,transform:`${o} scale(1)`})]}const K3=Se("base-wave",` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - border-radius: inherit; -`),Z3=Oe({name:"BaseWave",props:{clsPrefix:{type:String,required:!0}},setup(e){$s("-base-wave",K3,Rr(e,"clsPrefix"));const t=de(null),r=de(!1);let o=null;return Zt(()=>{o!==null&&window.clearTimeout(o)}),{active:r,selfRef:t,play(){o!==null&&(window.clearTimeout(o),r.value=!1,o=null),jt(()=>{var n;(n=t.value)===null||n===void 0||n.offsetHeight,r.value=!0,o=window.setTimeout(()=>{r.value=!1,o=null},1e3)})}}},render(){const{clsPrefix:e}=this;return H("div",{ref:"selfRef","aria-hidden":!0,class:[`${e}-base-wave`,this.active&&`${e}-base-wave--active`]})}}),X3={space:"6px",spaceArrow:"10px",arrowOffset:"10px",arrowOffsetVertical:"10px",arrowHeight:"6px",padding:"8px 14px"},og=e=>{const{boxShadow2:t,popoverColor:r,textColor2:o,borderRadius:n,fontSize:i,dividerColor:a}=e;return Object.assign(Object.assign({},X3),{fontSize:i,borderRadius:n,color:r,dividerColor:a,textColor:o,boxShadow:t})},Y3={name:"Popover",common:le,self:og},Ho=Y3,Q3={name:"Popover",common:se,self:og},Mo=Q3,ng={closeIconSizeTiny:"12px",closeIconSizeSmall:"12px",closeIconSizeMedium:"14px",closeIconSizeLarge:"14px",closeSizeTiny:"16px",closeSizeSmall:"16px",closeSizeMedium:"18px",closeSizeLarge:"18px",padding:"0 7px",closeMargin:"0 0 0 4px",closeMarginRtl:"0 4px 0 0"},J3={name:"Tag",common:se,self(e){const{textColor2:t,primaryColorHover:r,primaryColorPressed:o,primaryColor:n,infoColor:i,successColor:a,warningColor:s,errorColor:l,baseColor:c,borderColor:u,tagColor:d,opacityDisabled:f,closeIconColor:p,closeIconColorHover:h,closeIconColorPressed:m,closeColorHover:v,closeColorPressed:g,borderRadiusSmall:x,fontSizeMini:C,fontSizeTiny:b,fontSizeSmall:w,fontSizeMedium:T,heightMini:S,heightTiny:E,heightSmall:I,heightMedium:P,buttonColor2Hover:$,buttonColor2Pressed:R,fontWeightStrong:B}=e;return Object.assign(Object.assign({},ng),{closeBorderRadius:x,heightTiny:S,heightSmall:E,heightMedium:I,heightLarge:P,borderRadius:x,opacityDisabled:f,fontSizeTiny:C,fontSizeSmall:b,fontSizeMedium:w,fontSizeLarge:T,fontWeightStrong:B,textColorCheckable:t,textColorHoverCheckable:t,textColorPressedCheckable:t,textColorChecked:c,colorCheckable:"#0000",colorHoverCheckable:$,colorPressedCheckable:R,colorChecked:n,colorCheckedHover:r,colorCheckedPressed:o,border:`1px solid ${u}`,textColor:t,color:d,colorBordered:"#0000",closeIconColor:p,closeIconColorHover:h,closeIconColorPressed:m,closeColorHover:v,closeColorPressed:g,borderPrimary:`1px solid ${G(n,{alpha:.3})}`,textColorPrimary:n,colorPrimary:G(n,{alpha:.16}),colorBorderedPrimary:"#0000",closeIconColorPrimary:it(n,{lightness:.7}),closeIconColorHoverPrimary:it(n,{lightness:.7}),closeIconColorPressedPrimary:it(n,{lightness:.7}),closeColorHoverPrimary:G(n,{alpha:.16}),closeColorPressedPrimary:G(n,{alpha:.12}),borderInfo:`1px solid ${G(i,{alpha:.3})}`,textColorInfo:i,colorInfo:G(i,{alpha:.16}),colorBorderedInfo:"#0000",closeIconColorInfo:it(i,{alpha:.7}),closeIconColorHoverInfo:it(i,{alpha:.7}),closeIconColorPressedInfo:it(i,{alpha:.7}),closeColorHoverInfo:G(i,{alpha:.16}),closeColorPressedInfo:G(i,{alpha:.12}),borderSuccess:`1px solid ${G(a,{alpha:.3})}`,textColorSuccess:a,colorSuccess:G(a,{alpha:.16}),colorBorderedSuccess:"#0000",closeIconColorSuccess:it(a,{alpha:.7}),closeIconColorHoverSuccess:it(a,{alpha:.7}),closeIconColorPressedSuccess:it(a,{alpha:.7}),closeColorHoverSuccess:G(a,{alpha:.16}),closeColorPressedSuccess:G(a,{alpha:.12}),borderWarning:`1px solid ${G(s,{alpha:.3})}`,textColorWarning:s,colorWarning:G(s,{alpha:.16}),colorBorderedWarning:"#0000",closeIconColorWarning:it(s,{alpha:.7}),closeIconColorHoverWarning:it(s,{alpha:.7}),closeIconColorPressedWarning:it(s,{alpha:.7}),closeColorHoverWarning:G(s,{alpha:.16}),closeColorPressedWarning:G(s,{alpha:.11}),borderError:`1px solid ${G(l,{alpha:.3})}`,textColorError:l,colorError:G(l,{alpha:.16}),colorBorderedError:"#0000",closeIconColorError:it(l,{alpha:.7}),closeIconColorHoverError:it(l,{alpha:.7}),closeIconColorPressedError:it(l,{alpha:.7}),closeColorHoverError:G(l,{alpha:.16}),closeColorPressedError:G(l,{alpha:.12})})}},ig=J3,ew=e=>{const{textColor2:t,primaryColorHover:r,primaryColorPressed:o,primaryColor:n,infoColor:i,successColor:a,warningColor:s,errorColor:l,baseColor:c,borderColor:u,opacityDisabled:d,tagColor:f,closeIconColor:p,closeIconColorHover:h,closeIconColorPressed:m,borderRadiusSmall:v,fontSizeMini:g,fontSizeTiny:x,fontSizeSmall:C,fontSizeMedium:b,heightMini:w,heightTiny:T,heightSmall:S,heightMedium:E,closeColorHover:I,closeColorPressed:P,buttonColor2Hover:$,buttonColor2Pressed:R,fontWeightStrong:B}=e;return Object.assign(Object.assign({},ng),{closeBorderRadius:v,heightTiny:w,heightSmall:T,heightMedium:S,heightLarge:E,borderRadius:v,opacityDisabled:d,fontSizeTiny:g,fontSizeSmall:x,fontSizeMedium:C,fontSizeLarge:b,fontWeightStrong:B,textColorCheckable:t,textColorHoverCheckable:t,textColorPressedCheckable:t,textColorChecked:c,colorCheckable:"#0000",colorHoverCheckable:$,colorPressedCheckable:R,colorChecked:n,colorCheckedHover:r,colorCheckedPressed:o,border:`1px solid ${u}`,textColor:t,color:f,colorBordered:"rgb(250, 250, 252)",closeIconColor:p,closeIconColorHover:h,closeIconColorPressed:m,closeColorHover:I,closeColorPressed:P,borderPrimary:`1px solid ${G(n,{alpha:.3})}`,textColorPrimary:n,colorPrimary:G(n,{alpha:.12}),colorBorderedPrimary:G(n,{alpha:.1}),closeIconColorPrimary:n,closeIconColorHoverPrimary:n,closeIconColorPressedPrimary:n,closeColorHoverPrimary:G(n,{alpha:.12}),closeColorPressedPrimary:G(n,{alpha:.18}),borderInfo:`1px solid ${G(i,{alpha:.3})}`,textColorInfo:i,colorInfo:G(i,{alpha:.12}),colorBorderedInfo:G(i,{alpha:.1}),closeIconColorInfo:i,closeIconColorHoverInfo:i,closeIconColorPressedInfo:i,closeColorHoverInfo:G(i,{alpha:.12}),closeColorPressedInfo:G(i,{alpha:.18}),borderSuccess:`1px solid ${G(a,{alpha:.3})}`,textColorSuccess:a,colorSuccess:G(a,{alpha:.12}),colorBorderedSuccess:G(a,{alpha:.1}),closeIconColorSuccess:a,closeIconColorHoverSuccess:a,closeIconColorPressedSuccess:a,closeColorHoverSuccess:G(a,{alpha:.12}),closeColorPressedSuccess:G(a,{alpha:.18}),borderWarning:`1px solid ${G(s,{alpha:.35})}`,textColorWarning:s,colorWarning:G(s,{alpha:.15}),colorBorderedWarning:G(s,{alpha:.12}),closeIconColorWarning:s,closeIconColorHoverWarning:s,closeIconColorPressedWarning:s,closeColorHoverWarning:G(s,{alpha:.12}),closeColorPressedWarning:G(s,{alpha:.18}),borderError:`1px solid ${G(l,{alpha:.23})}`,textColorError:l,colorError:G(l,{alpha:.1}),colorBorderedError:G(l,{alpha:.08}),closeIconColorError:l,closeIconColorHoverError:l,closeIconColorPressedError:l,closeColorHoverError:G(l,{alpha:.12}),closeColorPressedError:G(l,{alpha:.18})})},tw={name:"Tag",common:le,self:ew},ag=tw,sg={paddingSingle:"0 26px 0 12px",paddingMultiple:"3px 26px 0 12px",clearSize:"16px",arrowSize:"16px"},rw=e=>{const{borderRadius:t,textColor2:r,textColorDisabled:o,inputColor:n,inputColorDisabled:i,primaryColor:a,primaryColorHover:s,warningColor:l,warningColorHover:c,errorColor:u,errorColorHover:d,borderColor:f,iconColor:p,iconColorDisabled:h,clearColor:m,clearColorHover:v,clearColorPressed:g,placeholderColor:x,placeholderColorDisabled:C,fontSizeTiny:b,fontSizeSmall:w,fontSizeMedium:T,fontSizeLarge:S,heightTiny:E,heightSmall:I,heightMedium:P,heightLarge:$}=e;return Object.assign(Object.assign({},sg),{fontSizeTiny:b,fontSizeSmall:w,fontSizeMedium:T,fontSizeLarge:S,heightTiny:E,heightSmall:I,heightMedium:P,heightLarge:$,borderRadius:t,textColor:r,textColorDisabled:o,placeholderColor:x,placeholderColorDisabled:C,color:n,colorDisabled:i,colorActive:n,border:`1px solid ${f}`,borderHover:`1px solid ${s}`,borderActive:`1px solid ${a}`,borderFocus:`1px solid ${s}`,boxShadowHover:"none",boxShadowActive:`0 0 0 2px ${G(a,{alpha:.2})}`,boxShadowFocus:`0 0 0 2px ${G(a,{alpha:.2})}`,caretColor:a,arrowColor:p,arrowColorDisabled:h,loadingColor:a,borderWarning:`1px solid ${l}`,borderHoverWarning:`1px solid ${c}`,borderActiveWarning:`1px solid ${l}`,borderFocusWarning:`1px solid ${c}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 0 2px ${G(l,{alpha:.2})}`,boxShadowFocusWarning:`0 0 0 2px ${G(l,{alpha:.2})}`,colorActiveWarning:n,caretColorWarning:l,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${d}`,borderActiveError:`1px solid ${u}`,borderFocusError:`1px solid ${d}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 0 2px ${G(u,{alpha:.2})}`,boxShadowFocusError:`0 0 0 2px ${G(u,{alpha:.2})}`,colorActiveError:n,caretColorError:u,clearColor:m,clearColorHover:v,clearColorPressed:g})},ow={name:"InternalSelection",common:le,peers:{Popover:Ho},self:rw},xu=ow,nw={name:"InternalSelection",common:se,peers:{Popover:Mo},self(e){const{borderRadius:t,textColor2:r,textColorDisabled:o,inputColor:n,inputColorDisabled:i,primaryColor:a,primaryColorHover:s,warningColor:l,warningColorHover:c,errorColor:u,errorColorHover:d,iconColor:f,iconColorDisabled:p,clearColor:h,clearColorHover:m,clearColorPressed:v,placeholderColor:g,placeholderColorDisabled:x,fontSizeTiny:C,fontSizeSmall:b,fontSizeMedium:w,fontSizeLarge:T,heightTiny:S,heightSmall:E,heightMedium:I,heightLarge:P}=e;return Object.assign(Object.assign({},sg),{fontSizeTiny:C,fontSizeSmall:b,fontSizeMedium:w,fontSizeLarge:T,heightTiny:S,heightSmall:E,heightMedium:I,heightLarge:P,borderRadius:t,textColor:r,textColorDisabled:o,placeholderColor:g,placeholderColorDisabled:x,color:n,colorDisabled:i,colorActive:G(a,{alpha:.1}),border:"1px solid #0000",borderHover:`1px solid ${s}`,borderActive:`1px solid ${a}`,borderFocus:`1px solid ${s}`,boxShadowHover:"none",boxShadowActive:`0 0 8px 0 ${G(a,{alpha:.4})}`,boxShadowFocus:`0 0 8px 0 ${G(a,{alpha:.4})}`,caretColor:a,arrowColor:f,arrowColorDisabled:p,loadingColor:a,borderWarning:`1px solid ${l}`,borderHoverWarning:`1px solid ${c}`,borderActiveWarning:`1px solid ${l}`,borderFocusWarning:`1px solid ${c}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 8px 0 ${G(l,{alpha:.4})}`,boxShadowFocusWarning:`0 0 8px 0 ${G(l,{alpha:.4})}`,colorActiveWarning:G(l,{alpha:.1}),caretColorWarning:l,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${d}`,borderActiveError:`1px solid ${u}`,borderFocusError:`1px solid ${d}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 8px 0 ${G(u,{alpha:.4})}`,boxShadowFocusError:`0 0 8px 0 ${G(u,{alpha:.4})}`,colorActiveError:G(u,{alpha:.1}),caretColorError:u,clearColor:h,clearColorHover:m,clearColorPressed:v})}},vu=nw,{cubicBezierEaseInOut:jr}=ao;function iw({duration:e=".2s",delay:t=".1s"}={}){return[ne("&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to",{opacity:1}),ne("&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from",` - opacity: 0!important; - margin-left: 0!important; - margin-right: 0!important; - `),ne("&.fade-in-width-expand-transition-leave-active",` - overflow: hidden; - transition: - opacity ${e} ${jr}, - max-width ${e} ${jr} ${t}, - margin-left ${e} ${jr} ${t}, - margin-right ${e} ${jr} ${t}; - `),ne("&.fade-in-width-expand-transition-enter-active",` - overflow: hidden; - transition: - opacity ${e} ${jr} ${t}, - max-width ${e} ${jr}, - margin-left ${e} ${jr}, - margin-right ${e} ${jr}; - `)]}const lg={iconMargin:"11px 8px 0 12px",iconMarginRtl:"11px 12px 0 8px",iconSize:"24px",closeIconSize:"16px",closeSize:"20px",closeMargin:"13px 14px 0 0",closeMarginRtl:"13px 0 0 14px",padding:"13px"},aw={name:"Alert",common:se,self(e){const{lineHeight:t,borderRadius:r,fontWeightStrong:o,dividerColor:n,inputColor:i,textColor1:a,textColor2:s,closeColorHover:l,closeColorPressed:c,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,infoColorSuppl:p,successColorSuppl:h,warningColorSuppl:m,errorColorSuppl:v,fontSize:g}=e;return Object.assign(Object.assign({},lg),{fontSize:g,lineHeight:t,titleFontWeight:o,borderRadius:r,border:`1px solid ${n}`,color:i,titleTextColor:a,iconColor:s,contentTextColor:s,closeBorderRadius:r,closeColorHover:l,closeColorPressed:c,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,borderInfo:`1px solid ${G(p,{alpha:.35})}`,colorInfo:G(p,{alpha:.25}),titleTextColorInfo:a,iconColorInfo:p,contentTextColorInfo:s,closeColorHoverInfo:l,closeColorPressedInfo:c,closeIconColorInfo:u,closeIconColorHoverInfo:d,closeIconColorPressedInfo:f,borderSuccess:`1px solid ${G(h,{alpha:.35})}`,colorSuccess:G(h,{alpha:.25}),titleTextColorSuccess:a,iconColorSuccess:h,contentTextColorSuccess:s,closeColorHoverSuccess:l,closeColorPressedSuccess:c,closeIconColorSuccess:u,closeIconColorHoverSuccess:d,closeIconColorPressedSuccess:f,borderWarning:`1px solid ${G(m,{alpha:.35})}`,colorWarning:G(m,{alpha:.25}),titleTextColorWarning:a,iconColorWarning:m,contentTextColorWarning:s,closeColorHoverWarning:l,closeColorPressedWarning:c,closeIconColorWarning:u,closeIconColorHoverWarning:d,closeIconColorPressedWarning:f,borderError:`1px solid ${G(v,{alpha:.35})}`,colorError:G(v,{alpha:.25}),titleTextColorError:a,iconColorError:v,contentTextColorError:s,closeColorHoverError:l,closeColorPressedError:c,closeIconColorError:u,closeIconColorHoverError:d,closeIconColorPressedError:f})}},sw=aw,lw=e=>{const{lineHeight:t,borderRadius:r,fontWeightStrong:o,baseColor:n,dividerColor:i,actionColor:a,textColor1:s,textColor2:l,closeColorHover:c,closeColorPressed:u,closeIconColor:d,closeIconColorHover:f,closeIconColorPressed:p,infoColor:h,successColor:m,warningColor:v,errorColor:g,fontSize:x}=e;return Object.assign(Object.assign({},lg),{fontSize:x,lineHeight:t,titleFontWeight:o,borderRadius:r,border:`1px solid ${i}`,color:a,titleTextColor:s,iconColor:l,contentTextColor:l,closeBorderRadius:r,closeColorHover:c,closeColorPressed:u,closeIconColor:d,closeIconColorHover:f,closeIconColorPressed:p,borderInfo:`1px solid ${me(n,G(h,{alpha:.25}))}`,colorInfo:me(n,G(h,{alpha:.08})),titleTextColorInfo:s,iconColorInfo:h,contentTextColorInfo:l,closeColorHoverInfo:c,closeColorPressedInfo:u,closeIconColorInfo:d,closeIconColorHoverInfo:f,closeIconColorPressedInfo:p,borderSuccess:`1px solid ${me(n,G(m,{alpha:.25}))}`,colorSuccess:me(n,G(m,{alpha:.08})),titleTextColorSuccess:s,iconColorSuccess:m,contentTextColorSuccess:l,closeColorHoverSuccess:c,closeColorPressedSuccess:u,closeIconColorSuccess:d,closeIconColorHoverSuccess:f,closeIconColorPressedSuccess:p,borderWarning:`1px solid ${me(n,G(v,{alpha:.33}))}`,colorWarning:me(n,G(v,{alpha:.08})),titleTextColorWarning:s,iconColorWarning:v,contentTextColorWarning:l,closeColorHoverWarning:c,closeColorPressedWarning:u,closeIconColorWarning:d,closeIconColorHoverWarning:f,closeIconColorPressedWarning:p,borderError:`1px solid ${me(n,G(g,{alpha:.25}))}`,colorError:me(n,G(g,{alpha:.08})),titleTextColorError:s,iconColorError:g,contentTextColorError:l,closeColorHoverError:c,closeColorPressedError:u,closeIconColorError:d,closeIconColorHoverError:f,closeIconColorPressedError:p})},cw={name:"Alert",common:le,self:lw},uw=cw,{cubicBezierEaseInOut:fr,cubicBezierEaseOut:dw,cubicBezierEaseIn:fw}=ao;function hw({overflow:e="hidden",duration:t=".3s",originalTransition:r="",leavingDelay:o="0s",foldPadding:n=!1,enterToProps:i=void 0,leaveToProps:a=void 0,reverse:s=!1}={}){const l=s?"leave":"enter",c=s?"enter":"leave";return[ne(`&.fade-in-height-expand-transition-${c}-from, - &.fade-in-height-expand-transition-${l}-to`,Object.assign(Object.assign({},i),{opacity:1})),ne(`&.fade-in-height-expand-transition-${c}-to, - &.fade-in-height-expand-transition-${l}-from`,Object.assign(Object.assign({},a),{opacity:0,marginTop:"0 !important",marginBottom:"0 !important",paddingTop:n?"0 !important":void 0,paddingBottom:n?"0 !important":void 0})),ne(`&.fade-in-height-expand-transition-${c}-active`,` - overflow: ${e}; - transition: - max-height ${t} ${fr} ${o}, - opacity ${t} ${dw} ${o}, - margin-top ${t} ${fr} ${o}, - margin-bottom ${t} ${fr} ${o}, - padding-top ${t} ${fr} ${o}, - padding-bottom ${t} ${fr} ${o} - ${r?","+r:""} - `),ne(`&.fade-in-height-expand-transition-${l}-active`,` - overflow: ${e}; - transition: - max-height ${t} ${fr}, - opacity ${t} ${fw}, - margin-top ${t} ${fr}, - margin-bottom ${t} ${fr}, - padding-top ${t} ${fr}, - padding-bottom ${t} ${fr} - ${r?","+r:""} - `)]}const pw={linkFontSize:"13px",linkPadding:"0 0 0 16px",railWidth:"4px"},cg=e=>{const{borderRadius:t,railColor:r,primaryColor:o,primaryColorHover:n,primaryColorPressed:i,textColor2:a}=e;return Object.assign(Object.assign({},pw),{borderRadius:t,railColor:r,railColorActive:o,linkColor:G(o,{alpha:.15}),linkTextColor:a,linkTextColorHover:n,linkTextColorPressed:i,linkTextColorActive:o})},mw={name:"Anchor",common:le,self:cg},gw=mw,xw={name:"Anchor",common:se,self:cg},vw=xw,bw=dn&&"chrome"in window;dn&&navigator.userAgent.includes("Firefox");const Cw=dn&&navigator.userAgent.includes("Safari")&&!bw,ug={paddingTiny:"0 8px",paddingSmall:"0 10px",paddingMedium:"0 12px",paddingLarge:"0 14px",clearSize:"16px"},yw={name:"Input",common:se,self(e){const{textColor2:t,textColor3:r,textColorDisabled:o,primaryColor:n,primaryColorHover:i,inputColor:a,inputColorDisabled:s,warningColor:l,warningColorHover:c,errorColor:u,errorColorHover:d,borderRadius:f,lineHeight:p,fontSizeTiny:h,fontSizeSmall:m,fontSizeMedium:v,fontSizeLarge:g,heightTiny:x,heightSmall:C,heightMedium:b,heightLarge:w,clearColor:T,clearColorHover:S,clearColorPressed:E,placeholderColor:I,placeholderColorDisabled:P,iconColor:$,iconColorDisabled:R,iconColorHover:B,iconColorPressed:j}=e;return Object.assign(Object.assign({},ug),{countTextColorDisabled:o,countTextColor:r,heightTiny:x,heightSmall:C,heightMedium:b,heightLarge:w,fontSizeTiny:h,fontSizeSmall:m,fontSizeMedium:v,fontSizeLarge:g,lineHeight:p,lineHeightTextarea:p,borderRadius:f,iconSize:"16px",groupLabelColor:a,textColor:t,textColorDisabled:o,textDecorationColor:t,groupLabelTextColor:t,caretColor:n,placeholderColor:I,placeholderColorDisabled:P,color:a,colorDisabled:s,colorFocus:G(n,{alpha:.1}),groupLabelBorder:"1px solid #0000",border:"1px solid #0000",borderHover:`1px solid ${i}`,borderDisabled:"1px solid #0000",borderFocus:`1px solid ${i}`,boxShadowFocus:`0 0 8px 0 ${G(n,{alpha:.3})}`,loadingColor:n,loadingColorWarning:l,borderWarning:`1px solid ${l}`,borderHoverWarning:`1px solid ${c}`,colorFocusWarning:G(l,{alpha:.1}),borderFocusWarning:`1px solid ${c}`,boxShadowFocusWarning:`0 0 8px 0 ${G(l,{alpha:.3})}`,caretColorWarning:l,loadingColorError:u,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${d}`,colorFocusError:G(u,{alpha:.1}),borderFocusError:`1px solid ${d}`,boxShadowFocusError:`0 0 8px 0 ${G(u,{alpha:.3})}`,caretColorError:u,clearColor:T,clearColorHover:S,clearColorPressed:E,iconColor:$,iconColorDisabled:R,iconColorHover:B,iconColorPressed:j,suffixTextColor:t})}},Xt=yw,Sw=e=>{const{textColor2:t,textColor3:r,textColorDisabled:o,primaryColor:n,primaryColorHover:i,inputColor:a,inputColorDisabled:s,borderColor:l,warningColor:c,warningColorHover:u,errorColor:d,errorColorHover:f,borderRadius:p,lineHeight:h,fontSizeTiny:m,fontSizeSmall:v,fontSizeMedium:g,fontSizeLarge:x,heightTiny:C,heightSmall:b,heightMedium:w,heightLarge:T,actionColor:S,clearColor:E,clearColorHover:I,clearColorPressed:P,placeholderColor:$,placeholderColorDisabled:R,iconColor:B,iconColorDisabled:j,iconColorHover:Y,iconColorPressed:J}=e;return Object.assign(Object.assign({},ug),{countTextColorDisabled:o,countTextColor:r,heightTiny:C,heightSmall:b,heightMedium:w,heightLarge:T,fontSizeTiny:m,fontSizeSmall:v,fontSizeMedium:g,fontSizeLarge:x,lineHeight:h,lineHeightTextarea:h,borderRadius:p,iconSize:"16px",groupLabelColor:S,groupLabelTextColor:t,textColor:t,textColorDisabled:o,textDecorationColor:t,caretColor:n,placeholderColor:$,placeholderColorDisabled:R,color:a,colorDisabled:s,colorFocus:a,groupLabelBorder:`1px solid ${l}`,border:`1px solid ${l}`,borderHover:`1px solid ${i}`,borderDisabled:`1px solid ${l}`,borderFocus:`1px solid ${i}`,boxShadowFocus:`0 0 0 2px ${G(n,{alpha:.2})}`,loadingColor:n,loadingColorWarning:c,borderWarning:`1px solid ${c}`,borderHoverWarning:`1px solid ${u}`,colorFocusWarning:a,borderFocusWarning:`1px solid ${u}`,boxShadowFocusWarning:`0 0 0 2px ${G(c,{alpha:.2})}`,caretColorWarning:c,loadingColorError:d,borderError:`1px solid ${d}`,borderHoverError:`1px solid ${f}`,colorFocusError:a,borderFocusError:`1px solid ${f}`,boxShadowFocusError:`0 0 0 2px ${G(d,{alpha:.2})}`,caretColorError:d,clearColor:E,clearColorHover:I,clearColorPressed:P,iconColor:B,iconColorDisabled:j,iconColorHover:Y,iconColorPressed:J,suffixTextColor:t})},ww={name:"Input",common:le,self:Sw},Yt=ww;function dg(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}const _w={name:"AutoComplete",common:le,peers:{InternalSelectMenu:wi,Input:Yt},self:dg},Tw=_w,Ew={name:"AutoComplete",common:se,peers:{InternalSelectMenu:_i,Input:Xt},self:dg},Pw=Ew,fg=e=>{const{borderRadius:t,avatarColor:r,cardColor:o,fontSize:n,heightTiny:i,heightSmall:a,heightMedium:s,heightLarge:l,heightHuge:c,modalColor:u,popoverColor:d}=e;return{borderRadius:t,fontSize:n,border:`2px solid ${o}`,heightTiny:i,heightSmall:a,heightMedium:s,heightLarge:l,heightHuge:c,color:me(o,r),colorModal:me(u,r),colorPopover:me(d,r)}},kw={name:"Avatar",common:le,self:fg},hg=kw,Lw={name:"Avatar",common:se,self:fg},pg=Lw,mg=()=>({gap:"-12px"}),$w={name:"AvatarGroup",common:le,peers:{Avatar:hg},self:mg},Iw=$w,Rw={name:"AvatarGroup",common:se,peers:{Avatar:pg},self:mg},Aw=Rw,gg={width:"44px",height:"44px",borderRadius:"22px",iconSize:"26px"},Ow={name:"BackTop",common:se,self(e){const{popoverColor:t,textColor2:r,primaryColorHover:o,primaryColorPressed:n}=e;return Object.assign(Object.assign({},gg),{color:t,textColor:r,iconColor:r,iconColorHover:o,iconColorPressed:n,boxShadow:"0 2px 8px 0px rgba(0, 0, 0, .12)",boxShadowHover:"0 2px 12px 0px rgba(0, 0, 0, .18)",boxShadowPressed:"0 2px 12px 0px rgba(0, 0, 0, .18)"})}},Bw=Ow,Hw=e=>{const{popoverColor:t,textColor2:r,primaryColorHover:o,primaryColorPressed:n}=e;return Object.assign(Object.assign({},gg),{color:t,textColor:r,iconColor:r,iconColorHover:o,iconColorPressed:n,boxShadow:"0 2px 8px 0px rgba(0, 0, 0, .12)",boxShadowHover:"0 2px 12px 0px rgba(0, 0, 0, .18)",boxShadowPressed:"0 2px 12px 0px rgba(0, 0, 0, .18)"})},Mw={name:"BackTop",common:le,self:Hw},Dw=Mw,Fw={name:"Badge",common:se,self(e){const{errorColorSuppl:t,infoColorSuppl:r,successColorSuppl:o,warningColorSuppl:n,fontFamily:i}=e;return{color:t,colorInfo:r,colorSuccess:o,colorError:t,colorWarning:n,fontSize:"12px",fontFamily:i}}},zw=Fw,Nw=e=>{const{errorColor:t,infoColor:r,successColor:o,warningColor:n,fontFamily:i}=e;return{color:t,colorInfo:r,colorSuccess:o,colorError:t,colorWarning:n,fontSize:"12px",fontFamily:i}},Ww={name:"Badge",common:le,self:Nw},jw=Ww,Uw={fontWeightActive:"400"},xg=e=>{const{fontSize:t,textColor3:r,textColor2:o,borderRadius:n,buttonColor2Hover:i,buttonColor2Pressed:a}=e;return Object.assign(Object.assign({},Uw),{fontSize:t,itemLineHeight:"1.25",itemTextColor:r,itemTextColorHover:o,itemTextColorPressed:o,itemTextColorActive:o,itemBorderRadius:n,itemColorHover:i,itemColorPressed:a,separatorColor:r})},Vw={name:"Breadcrumb",common:le,self:xg},qw=Vw,Gw={name:"Breadcrumb",common:se,self:xg},Kw=Gw;function mo(e){return me(e,[255,255,255,.16])}function ji(e){return me(e,[0,0,0,.12])}const Zw="n-button-group",Xw={paddingTiny:"0 6px",paddingSmall:"0 10px",paddingMedium:"0 14px",paddingLarge:"0 18px",paddingRoundTiny:"0 10px",paddingRoundSmall:"0 14px",paddingRoundMedium:"0 18px",paddingRoundLarge:"0 22px",iconMarginTiny:"6px",iconMarginSmall:"6px",iconMarginMedium:"6px",iconMarginLarge:"6px",iconSizeTiny:"14px",iconSizeSmall:"18px",iconSizeMedium:"18px",iconSizeLarge:"20px",rippleDuration:".6s"},vg=e=>{const{heightTiny:t,heightSmall:r,heightMedium:o,heightLarge:n,borderRadius:i,fontSizeTiny:a,fontSizeSmall:s,fontSizeMedium:l,fontSizeLarge:c,opacityDisabled:u,textColor2:d,textColor3:f,primaryColorHover:p,primaryColorPressed:h,borderColor:m,primaryColor:v,baseColor:g,infoColor:x,infoColorHover:C,infoColorPressed:b,successColor:w,successColorHover:T,successColorPressed:S,warningColor:E,warningColorHover:I,warningColorPressed:P,errorColor:$,errorColorHover:R,errorColorPressed:B,fontWeight:j,buttonColor2:Y,buttonColor2Hover:J,buttonColor2Pressed:Q,fontWeightStrong:ie}=e;return Object.assign(Object.assign({},Xw),{heightTiny:t,heightSmall:r,heightMedium:o,heightLarge:n,borderRadiusTiny:i,borderRadiusSmall:i,borderRadiusMedium:i,borderRadiusLarge:i,fontSizeTiny:a,fontSizeSmall:s,fontSizeMedium:l,fontSizeLarge:c,opacityDisabled:u,colorOpacitySecondary:"0.16",colorOpacitySecondaryHover:"0.22",colorOpacitySecondaryPressed:"0.28",colorSecondary:Y,colorSecondaryHover:J,colorSecondaryPressed:Q,colorTertiary:Y,colorTertiaryHover:J,colorTertiaryPressed:Q,colorQuaternary:"#0000",colorQuaternaryHover:J,colorQuaternaryPressed:Q,color:"#0000",colorHover:"#0000",colorPressed:"#0000",colorFocus:"#0000",colorDisabled:"#0000",textColor:d,textColorTertiary:f,textColorHover:p,textColorPressed:h,textColorFocus:p,textColorDisabled:d,textColorText:d,textColorTextHover:p,textColorTextPressed:h,textColorTextFocus:p,textColorTextDisabled:d,textColorGhost:d,textColorGhostHover:p,textColorGhostPressed:h,textColorGhostFocus:p,textColorGhostDisabled:d,border:`1px solid ${m}`,borderHover:`1px solid ${p}`,borderPressed:`1px solid ${h}`,borderFocus:`1px solid ${p}`,borderDisabled:`1px solid ${m}`,rippleColor:v,colorPrimary:v,colorHoverPrimary:p,colorPressedPrimary:h,colorFocusPrimary:p,colorDisabledPrimary:v,textColorPrimary:g,textColorHoverPrimary:g,textColorPressedPrimary:g,textColorFocusPrimary:g,textColorDisabledPrimary:g,textColorTextPrimary:v,textColorTextHoverPrimary:p,textColorTextPressedPrimary:h,textColorTextFocusPrimary:p,textColorTextDisabledPrimary:d,textColorGhostPrimary:v,textColorGhostHoverPrimary:p,textColorGhostPressedPrimary:h,textColorGhostFocusPrimary:p,textColorGhostDisabledPrimary:v,borderPrimary:`1px solid ${v}`,borderHoverPrimary:`1px solid ${p}`,borderPressedPrimary:`1px solid ${h}`,borderFocusPrimary:`1px solid ${p}`,borderDisabledPrimary:`1px solid ${v}`,rippleColorPrimary:v,colorInfo:x,colorHoverInfo:C,colorPressedInfo:b,colorFocusInfo:C,colorDisabledInfo:x,textColorInfo:g,textColorHoverInfo:g,textColorPressedInfo:g,textColorFocusInfo:g,textColorDisabledInfo:g,textColorTextInfo:x,textColorTextHoverInfo:C,textColorTextPressedInfo:b,textColorTextFocusInfo:C,textColorTextDisabledInfo:d,textColorGhostInfo:x,textColorGhostHoverInfo:C,textColorGhostPressedInfo:b,textColorGhostFocusInfo:C,textColorGhostDisabledInfo:x,borderInfo:`1px solid ${x}`,borderHoverInfo:`1px solid ${C}`,borderPressedInfo:`1px solid ${b}`,borderFocusInfo:`1px solid ${C}`,borderDisabledInfo:`1px solid ${x}`,rippleColorInfo:x,colorSuccess:w,colorHoverSuccess:T,colorPressedSuccess:S,colorFocusSuccess:T,colorDisabledSuccess:w,textColorSuccess:g,textColorHoverSuccess:g,textColorPressedSuccess:g,textColorFocusSuccess:g,textColorDisabledSuccess:g,textColorTextSuccess:w,textColorTextHoverSuccess:T,textColorTextPressedSuccess:S,textColorTextFocusSuccess:T,textColorTextDisabledSuccess:d,textColorGhostSuccess:w,textColorGhostHoverSuccess:T,textColorGhostPressedSuccess:S,textColorGhostFocusSuccess:T,textColorGhostDisabledSuccess:w,borderSuccess:`1px solid ${w}`,borderHoverSuccess:`1px solid ${T}`,borderPressedSuccess:`1px solid ${S}`,borderFocusSuccess:`1px solid ${T}`,borderDisabledSuccess:`1px solid ${w}`,rippleColorSuccess:w,colorWarning:E,colorHoverWarning:I,colorPressedWarning:P,colorFocusWarning:I,colorDisabledWarning:E,textColorWarning:g,textColorHoverWarning:g,textColorPressedWarning:g,textColorFocusWarning:g,textColorDisabledWarning:g,textColorTextWarning:E,textColorTextHoverWarning:I,textColorTextPressedWarning:P,textColorTextFocusWarning:I,textColorTextDisabledWarning:d,textColorGhostWarning:E,textColorGhostHoverWarning:I,textColorGhostPressedWarning:P,textColorGhostFocusWarning:I,textColorGhostDisabledWarning:E,borderWarning:`1px solid ${E}`,borderHoverWarning:`1px solid ${I}`,borderPressedWarning:`1px solid ${P}`,borderFocusWarning:`1px solid ${I}`,borderDisabledWarning:`1px solid ${E}`,rippleColorWarning:E,colorError:$,colorHoverError:R,colorPressedError:B,colorFocusError:R,colorDisabledError:$,textColorError:g,textColorHoverError:g,textColorPressedError:g,textColorFocusError:g,textColorDisabledError:g,textColorTextError:$,textColorTextHoverError:R,textColorTextPressedError:B,textColorTextFocusError:R,textColorTextDisabledError:d,textColorGhostError:$,textColorGhostHoverError:R,textColorGhostPressedError:B,textColorGhostFocusError:R,textColorGhostDisabledError:$,borderError:`1px solid ${$}`,borderHoverError:`1px solid ${R}`,borderPressedError:`1px solid ${B}`,borderFocusError:`1px solid ${R}`,borderDisabledError:`1px solid ${$}`,rippleColorError:$,waveOpacity:"0.6",fontWeight:j,fontWeightStrong:ie})},Yw={name:"Button",common:le,self:vg},It=Yw,Qw={name:"Button",common:se,self(e){const t=vg(e);return t.waveOpacity="0.8",t.colorOpacitySecondary="0.16",t.colorOpacitySecondaryHover="0.2",t.colorOpacitySecondaryPressed="0.12",t}},Dt=Qw,Jw=ne([Se("button",` - margin: 0; - font-weight: var(--n-font-weight); - line-height: 1; - font-family: inherit; - padding: var(--n-padding); - height: var(--n-height); - font-size: var(--n-font-size); - border-radius: var(--n-border-radius); - color: var(--n-text-color); - background-color: var(--n-color); - width: var(--n-width); - white-space: nowrap; - outline: none; - position: relative; - z-index: auto; - border: none; - display: inline-flex; - flex-wrap: nowrap; - flex-shrink: 0; - align-items: center; - justify-content: center; - user-select: none; - -webkit-user-select: none; - text-align: center; - cursor: pointer; - text-decoration: none; - transition: - color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - opacity .3s var(--n-bezier), - border-color .3s var(--n-bezier); - `,[Ce("color",[he("border",{borderColor:"var(--n-border-color)"}),Ce("disabled",[he("border",{borderColor:"var(--n-border-color-disabled)"})]),Wl("disabled",[ne("&:focus",[he("state-border",{borderColor:"var(--n-border-color-focus)"})]),ne("&:hover",[he("state-border",{borderColor:"var(--n-border-color-hover)"})]),ne("&:active",[he("state-border",{borderColor:"var(--n-border-color-pressed)"})]),Ce("pressed",[he("state-border",{borderColor:"var(--n-border-color-pressed)"})])])]),Ce("disabled",{backgroundColor:"var(--n-color-disabled)",color:"var(--n-text-color-disabled)"},[he("border",{border:"var(--n-border-disabled)"})]),Wl("disabled",[ne("&:focus",{backgroundColor:"var(--n-color-focus)",color:"var(--n-text-color-focus)"},[he("state-border",{border:"var(--n-border-focus)"})]),ne("&:hover",{backgroundColor:"var(--n-color-hover)",color:"var(--n-text-color-hover)"},[he("state-border",{border:"var(--n-border-hover)"})]),ne("&:active",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[he("state-border",{border:"var(--n-border-pressed)"})]),Ce("pressed",{backgroundColor:"var(--n-color-pressed)",color:"var(--n-text-color-pressed)"},[he("state-border",{border:"var(--n-border-pressed)"})])]),Ce("loading","cursor: wait;"),Se("base-wave",` - pointer-events: none; - top: 0; - right: 0; - bottom: 0; - left: 0; - animation-iteration-count: 1; - animation-duration: var(--n-ripple-duration); - animation-timing-function: var(--n-bezier-ease-out), var(--n-bezier-ease-out); - `,[Ce("active",{zIndex:1,animationName:"button-wave-spread, button-wave-opacity"})]),dn&&"MozBoxSizing"in document.createElement("div").style?ne("&::moz-focus-inner",{border:0}):null,he("border, state-border",` - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - border-radius: inherit; - transition: border-color .3s var(--n-bezier); - pointer-events: none; - `),he("border",{border:"var(--n-border)"}),he("state-border",{border:"var(--n-border)",borderColor:"#0000",zIndex:1}),he("icon",` - margin: var(--n-icon-margin); - margin-left: 0; - height: var(--n-icon-size); - width: var(--n-icon-size); - max-width: var(--n-icon-size); - font-size: var(--n-icon-size); - position: relative; - flex-shrink: 0; - `,[Se("icon-slot",` - height: var(--n-icon-size); - width: var(--n-icon-size); - position: absolute; - left: 0; - top: 50%; - transform: translateY(-50%); - display: flex; - align-items: center; - justify-content: center; - `,[ya({top:"50%",originalTransform:"translateY(-50%)"})]),iw()]),he("content",` - display: flex; - align-items: center; - flex-wrap: nowrap; - min-width: 0; - `,[ne("~",[he("icon",{margin:"var(--n-icon-margin)",marginRight:0})])]),Ce("block",` - display: flex; - width: 100%; - `),Ce("dashed",[he("border, state-border",{borderStyle:"dashed !important"})]),Ce("disabled",{cursor:"not-allowed",opacity:"var(--n-opacity-disabled)"})]),ne("@keyframes button-wave-spread",{from:{boxShadow:"0 0 0.5px 0 var(--n-ripple-color)"},to:{boxShadow:"0 0 0.5px 4.5px var(--n-ripple-color)"}}),ne("@keyframes button-wave-opacity",{from:{opacity:"var(--n-wave-opacity)"},to:{opacity:0}})]),e_=Object.assign(Object.assign({},Ct.props),{color:String,textColor:String,text:Boolean,block:Boolean,loading:Boolean,disabled:Boolean,circle:Boolean,size:String,ghost:Boolean,round:Boolean,secondary:Boolean,tertiary:Boolean,quaternary:Boolean,strong:Boolean,focusable:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},tag:{type:String,default:"button"},type:{type:String,default:"default"},dashed:Boolean,renderIcon:Function,iconPlacement:{type:String,default:"left"},attrType:{type:String,default:"button"},bordered:{type:Boolean,default:!0},onClick:[Function,Array],nativeFocusBehavior:{type:Boolean,default:!Cw}}),t_=Oe({name:"Button",props:e_,setup(e){const t=de(null),r=de(null),o=de(!1),n=jl(()=>!e.quaternary&&!e.tertiary&&!e.secondary&&!e.text&&(!e.color||e.ghost||e.dashed)&&e.bordered),i=Me(Zw,{}),{mergedSizeRef:a}=Vy({},{defaultSize:"medium",mergedSize:b=>{const{size:w}=e;if(w)return w;const{size:T}=i;if(T)return T;const{mergedSize:S}=b||{};return S?S.value:"medium"}}),s=ae(()=>e.focusable&&!e.disabled),l=b=>{var w;s.value||b.preventDefault(),!e.nativeFocusBehavior&&(b.preventDefault(),!e.disabled&&s.value&&((w=t.value)===null||w===void 0||w.focus({preventScroll:!0})))},c=b=>{var w;if(!e.disabled&&!e.loading){const{onClick:T}=e;T&&_o(T,b),e.text||(w=r.value)===null||w===void 0||w.play()}},u=b=>{switch(b.key){case"Enter":if(!e.keyboard)return;o.value=!1}},d=b=>{switch(b.key){case"Enter":if(!e.keyboard||e.loading){b.preventDefault();return}o.value=!0}},f=()=>{o.value=!1},{inlineThemeDisabled:p,mergedClsPrefixRef:h,mergedRtlRef:m}=sr(e),v=Ct("Button","-button",Jw,It,e,h),g=yi("Button",m,h),x=ae(()=>{const b=v.value,{common:{cubicBezierEaseInOut:w,cubicBezierEaseOut:T},self:S}=b,{rippleDuration:E,opacityDisabled:I,fontWeight:P,fontWeightStrong:$}=S,R=a.value,{dashed:B,type:j,ghost:Y,text:J,color:Q,round:ie,circle:ge,textColor:ve,secondary:z,tertiary:W,quaternary:Z,strong:V}=e,D={"font-weight":V?$:P};let U={"--n-color":"initial","--n-color-hover":"initial","--n-color-pressed":"initial","--n-color-focus":"initial","--n-color-disabled":"initial","--n-ripple-color":"initial","--n-text-color":"initial","--n-text-color-hover":"initial","--n-text-color-pressed":"initial","--n-text-color-focus":"initial","--n-text-color-disabled":"initial"};const re=j==="tertiary",ee=j==="default",ce=re?"default":j;if(J){const q=ve||Q;U={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":"#0000","--n-text-color":q||S[_e("textColorText",ce)],"--n-text-color-hover":q?mo(q):S[_e("textColorTextHover",ce)],"--n-text-color-pressed":q?ji(q):S[_e("textColorTextPressed",ce)],"--n-text-color-focus":q?mo(q):S[_e("textColorTextHover",ce)],"--n-text-color-disabled":q||S[_e("textColorTextDisabled",ce)]}}else if(Y||B){const q=ve||Q;U={"--n-color":"#0000","--n-color-hover":"#0000","--n-color-pressed":"#0000","--n-color-focus":"#0000","--n-color-disabled":"#0000","--n-ripple-color":Q||S[_e("rippleColor",ce)],"--n-text-color":q||S[_e("textColorGhost",ce)],"--n-text-color-hover":q?mo(q):S[_e("textColorGhostHover",ce)],"--n-text-color-pressed":q?ji(q):S[_e("textColorGhostPressed",ce)],"--n-text-color-focus":q?mo(q):S[_e("textColorGhostHover",ce)],"--n-text-color-disabled":q||S[_e("textColorGhostDisabled",ce)]}}else if(z){const q=ee?S.textColor:re?S.textColorTertiary:S[_e("color",ce)],F=Q||q,A=j!=="default"&&j!=="tertiary";U={"--n-color":A?G(F,{alpha:Number(S.colorOpacitySecondary)}):S.colorSecondary,"--n-color-hover":A?G(F,{alpha:Number(S.colorOpacitySecondaryHover)}):S.colorSecondaryHover,"--n-color-pressed":A?G(F,{alpha:Number(S.colorOpacitySecondaryPressed)}):S.colorSecondaryPressed,"--n-color-focus":A?G(F,{alpha:Number(S.colorOpacitySecondaryHover)}):S.colorSecondaryHover,"--n-color-disabled":S.colorSecondary,"--n-ripple-color":"#0000","--n-text-color":F,"--n-text-color-hover":F,"--n-text-color-pressed":F,"--n-text-color-focus":F,"--n-text-color-disabled":F}}else if(W||Z){const q=ee?S.textColor:re?S.textColorTertiary:S[_e("color",ce)],F=Q||q;W?(U["--n-color"]=S.colorTertiary,U["--n-color-hover"]=S.colorTertiaryHover,U["--n-color-pressed"]=S.colorTertiaryPressed,U["--n-color-focus"]=S.colorSecondaryHover,U["--n-color-disabled"]=S.colorTertiary):(U["--n-color"]=S.colorQuaternary,U["--n-color-hover"]=S.colorQuaternaryHover,U["--n-color-pressed"]=S.colorQuaternaryPressed,U["--n-color-focus"]=S.colorQuaternaryHover,U["--n-color-disabled"]=S.colorQuaternary),U["--n-ripple-color"]="#0000",U["--n-text-color"]=F,U["--n-text-color-hover"]=F,U["--n-text-color-pressed"]=F,U["--n-text-color-focus"]=F,U["--n-text-color-disabled"]=F}else U={"--n-color":Q||S[_e("color",ce)],"--n-color-hover":Q?mo(Q):S[_e("colorHover",ce)],"--n-color-pressed":Q?ji(Q):S[_e("colorPressed",ce)],"--n-color-focus":Q?mo(Q):S[_e("colorFocus",ce)],"--n-color-disabled":Q||S[_e("colorDisabled",ce)],"--n-ripple-color":Q||S[_e("rippleColor",ce)],"--n-text-color":ve||(Q?S.textColorPrimary:re?S.textColorTertiary:S[_e("textColor",ce)]),"--n-text-color-hover":ve||(Q?S.textColorHoverPrimary:S[_e("textColorHover",ce)]),"--n-text-color-pressed":ve||(Q?S.textColorPressedPrimary:S[_e("textColorPressed",ce)]),"--n-text-color-focus":ve||(Q?S.textColorFocusPrimary:S[_e("textColorFocus",ce)]),"--n-text-color-disabled":ve||(Q?S.textColorDisabledPrimary:S[_e("textColorDisabled",ce)])};let ke={"--n-border":"initial","--n-border-hover":"initial","--n-border-pressed":"initial","--n-border-focus":"initial","--n-border-disabled":"initial"};J?ke={"--n-border":"none","--n-border-hover":"none","--n-border-pressed":"none","--n-border-focus":"none","--n-border-disabled":"none"}:ke={"--n-border":S[_e("border",ce)],"--n-border-hover":S[_e("borderHover",ce)],"--n-border-pressed":S[_e("borderPressed",ce)],"--n-border-focus":S[_e("borderFocus",ce)],"--n-border-disabled":S[_e("borderDisabled",ce)]};const{[_e("height",R)]:ye,[_e("fontSize",R)]:k,[_e("padding",R)]:y,[_e("paddingRound",R)]:_,[_e("iconSize",R)]:L,[_e("borderRadius",R)]:O,[_e("iconMargin",R)]:N,waveOpacity:X}=S,te={"--n-width":ge&&!J?ye:"initial","--n-height":J?"initial":ye,"--n-font-size":k,"--n-padding":ge||J?"initial":ie?_:y,"--n-icon-size":L,"--n-icon-margin":N,"--n-border-radius":J?"initial":ge||ie?ye:O};return Object.assign(Object.assign(Object.assign(Object.assign({"--n-bezier":w,"--n-bezier-ease-out":T,"--n-ripple-duration":E,"--n-opacity-disabled":I,"--n-wave-opacity":X},D),U),ke),te)}),C=p?so("button",ae(()=>{let b="";const{dashed:w,type:T,ghost:S,text:E,color:I,round:P,circle:$,textColor:R,secondary:B,tertiary:j,quaternary:Y,strong:J}=e;w&&(b+="a"),S&&(b+="b"),E&&(b+="c"),P&&(b+="d"),$&&(b+="e"),B&&(b+="f"),j&&(b+="g"),Y&&(b+="h"),J&&(b+="i"),I&&(b+="j"+W0(I)),R&&(b+="k"+W0(R));const{value:Q}=a;return b+="l"+Q[0],b+="m"+T[0],b}),x,e):void 0;return{selfElRef:t,waveElRef:r,mergedClsPrefix:h,mergedFocusable:s,mergedSize:a,showBorder:n,enterPressed:o,rtlEnabled:g,handleMousedown:l,handleKeydown:d,handleBlur:f,handleKeyup:u,handleClick:c,customColorCssVars:ae(()=>{const{color:b}=e;if(!b)return null;const w=mo(b);return{"--n-border-color":b,"--n-border-color-hover":w,"--n-border-color-pressed":ji(b),"--n-border-color-focus":w,"--n-border-color-disabled":b}}),cssVars:p?void 0:x,themeClass:C==null?void 0:C.themeClass,onRender:C==null?void 0:C.onRender}},render(){const{mergedClsPrefix:e,tag:t,onRender:r}=this;r==null||r();const o=Jt(this.$slots.default,n=>n&&H("span",{class:`${e}-button__content`},n));return H(t,{ref:"selfElRef",class:[this.themeClass,`${e}-button`,`${e}-button--${this.type}-type`,`${e}-button--${this.mergedSize}-type`,this.rtlEnabled&&`${e}-button--rtl`,this.disabled&&`${e}-button--disabled`,this.block&&`${e}-button--block`,this.enterPressed&&`${e}-button--pressed`,!this.text&&this.dashed&&`${e}-button--dashed`,this.color&&`${e}-button--color`,this.secondary&&`${e}-button--secondary`,this.loading&&`${e}-button--loading`,this.ghost&&`${e}-button--ghost`],tabindex:this.mergedFocusable?0:-1,type:this.attrType,style:this.cssVars,disabled:this.disabled,onClick:this.handleClick,onBlur:this.handleBlur,onMousedown:this.handleMousedown,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},this.iconPlacement==="right"&&o,H(Km,{width:!0},{default:()=>Jt(this.$slots.icon,n=>(this.loading||this.renderIcon||n)&&H("span",{class:`${e}-button__icon`,style:{margin:wC(this.$slots.default)?"0":""}},H(mu,null,{default:()=>this.loading?H(Zm,{clsPrefix:e,key:"loading",class:`${e}-icon-slot`,strokeWidth:20}):H("div",{key:"icon",class:`${e}-icon-slot`,role:"none"},this.renderIcon?this.renderIcon():n)})))}),this.iconPlacement==="left"&&o,this.text?null:H(Z3,{ref:"waveElRef",clsPrefix:e}),this.showBorder?H("div",{"aria-hidden":!0,class:`${e}-button__border`,style:this.customColorCssVars}):null,this.showBorder?H("div",{"aria-hidden":!0,class:`${e}-button__state-border`,style:this.customColorCssVars}):null)}}),Fd=t_,r_={titleFontSize:"22px"},bg=e=>{const{borderRadius:t,fontSize:r,lineHeight:o,textColor2:n,textColor1:i,textColorDisabled:a,dividerColor:s,fontWeightStrong:l,primaryColor:c,baseColor:u,hoverColor:d,cardColor:f,modalColor:p,popoverColor:h}=e;return Object.assign(Object.assign({},r_),{borderRadius:t,borderColor:me(f,s),borderColorModal:me(p,s),borderColorPopover:me(h,s),textColor:n,titleFontWeight:l,titleTextColor:i,dayTextColor:a,fontSize:r,lineHeight:o,dateColorCurrent:c,dateTextColorCurrent:u,cellColorHover:me(f,d),cellColorHoverModal:me(p,d),cellColorHoverPopover:me(h,d),cellColor:f,cellColorModal:p,cellColorPopover:h,barColor:c})},o_={name:"Calendar",common:le,peers:{Button:It},self:bg},n_=o_,i_={name:"Calendar",common:se,peers:{Button:Dt},self:bg},a_=i_,Cg=e=>{const{fontSize:t,boxShadow2:r,popoverColor:o,textColor2:n,borderRadius:i,borderColor:a,heightSmall:s,heightMedium:l,heightLarge:c,fontSizeSmall:u,fontSizeMedium:d,fontSizeLarge:f,dividerColor:p}=e;return{panelFontSize:t,boxShadow:r,color:o,textColor:n,borderRadius:i,border:`1px solid ${a}`,heightSmall:s,heightMedium:l,heightLarge:c,fontSizeSmall:u,fontSizeMedium:d,fontSizeLarge:f,dividerColor:p}},s_={name:"ColorPicker",common:le,peers:{Input:Yt,Button:It},self:Cg},l_=s_,c_={name:"ColorPicker",common:se,peers:{Input:Xt,Button:Dt},self:Cg},u_=c_,d_={paddingSmall:"12px 16px 12px",paddingMedium:"19px 24px 20px",paddingLarge:"23px 32px 24px",paddingHuge:"27px 40px 28px",titleFontSizeSmall:"16px",titleFontSizeMedium:"18px",titleFontSizeLarge:"18px",titleFontSizeHuge:"18px",closeIconSize:"18px",closeSize:"22px"},yg=e=>{const{primaryColor:t,borderRadius:r,lineHeight:o,fontSize:n,cardColor:i,textColor2:a,textColor1:s,dividerColor:l,fontWeightStrong:c,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,closeColorHover:p,closeColorPressed:h,modalColor:m,boxShadow1:v,popoverColor:g,actionColor:x}=e;return Object.assign(Object.assign({},d_),{lineHeight:o,color:i,colorModal:m,colorPopover:g,colorTarget:t,colorEmbedded:x,colorEmbeddedModal:x,colorEmbeddedPopover:x,textColor:a,titleTextColor:s,borderColor:l,actionColor:x,titleFontWeight:c,closeColorHover:p,closeColorPressed:h,closeBorderRadius:r,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,fontSizeSmall:n,fontSizeMedium:n,fontSizeLarge:n,fontSizeHuge:n,boxShadow:v,borderRadius:r})},f_={name:"Card",common:le,self:yg},bu=f_,h_={name:"Card",common:se,self(e){const t=yg(e),{cardColor:r,modalColor:o,popoverColor:n}=e;return t.colorEmbedded=r,t.colorEmbeddedModal=o,t.colorEmbeddedPopover=n,t}},Sg=h_,p_=ne([Se("card",` - font-size: var(--n-font-size); - line-height: var(--n-line-height); - display: flex; - flex-direction: column; - width: 100%; - box-sizing: border-box; - position: relative; - border-radius: var(--n-border-radius); - background-color: var(--n-color); - color: var(--n-text-color); - word-break: break-word; - transition: - color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - border-color .3s var(--n-bezier); - `,[om({background:"var(--n-color-modal)"}),Ce("hoverable",[ne("&:hover","box-shadow: var(--n-box-shadow);")]),Ce("content-segmented",[ne(">",[he("content",{paddingTop:"var(--n-padding-bottom)"})])]),Ce("content-soft-segmented",[ne(">",[he("content",` - margin: 0 var(--n-padding-left); - padding: var(--n-padding-bottom) 0; - `)])]),Ce("footer-segmented",[ne(">",[he("footer",{paddingTop:"var(--n-padding-bottom)"})])]),Ce("footer-soft-segmented",[ne(">",[he("footer",` - padding: var(--n-padding-bottom) 0; - margin: 0 var(--n-padding-left); - `)])]),ne(">",[Se("card-header",` - box-sizing: border-box; - display: flex; - align-items: center; - font-size: var(--n-title-font-size); - padding: - var(--n-padding-top) - var(--n-padding-left) - var(--n-padding-bottom) - var(--n-padding-left); - `,[he("main",` - font-weight: var(--n-title-font-weight); - transition: color .3s var(--n-bezier); - flex: 1; - min-width: 0; - color: var(--n-title-text-color); - `),he("extra",` - display: flex; - align-items: center; - font-size: var(--n-font-size); - font-weight: 400; - transition: color .3s var(--n-bezier); - color: var(--n-text-color); - `),he("close",` - margin: 0 0 0 8px; - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - `)]),he("action",` - box-sizing: border-box; - transition: - background-color .3s var(--n-bezier), - border-color .3s var(--n-bezier); - background-clip: padding-box; - background-color: var(--n-action-color); - `),he("content","flex: 1; min-width: 0;"),he("content, footer",` - box-sizing: border-box; - padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left); - font-size: var(--n-font-size); - `,[ne("&:first-child",{paddingTop:"var(--n-padding-bottom)"})]),he("action",` - background-color: var(--n-action-color); - padding: var(--n-padding-bottom) var(--n-padding-left); - border-bottom-left-radius: var(--n-border-radius); - border-bottom-right-radius: var(--n-border-radius); - `)]),Se("card-cover",` - overflow: hidden; - width: 100%; - border-radius: var(--n-border-radius) var(--n-border-radius) 0 0; - `,[ne("img",` - display: block; - width: 100%; - `)]),Ce("bordered",` - border: 1px solid var(--n-border-color); - `,[ne("&:target","border-color: var(--n-color-target);")]),Ce("action-segmented",[ne(">",[he("action",[ne("&:not(:first-child)",{borderTop:"1px solid var(--n-border-color)"})])])]),Ce("content-segmented, content-soft-segmented",[ne(">",[he("content",{transition:"border-color 0.3s var(--n-bezier)"},[ne("&:not(:first-child)",{borderTop:"1px solid var(--n-border-color)"})])])]),Ce("footer-segmented, footer-soft-segmented",[ne(">",[he("footer",{transition:"border-color 0.3s var(--n-bezier)"},[ne("&:not(:first-child)",{borderTop:"1px solid var(--n-border-color)"})])])]),Ce("embedded",` - background-color: var(--n-color-embedded); - `)]),rm(Se("card",` - background: var(--n-color-modal); - `,[Ce("embedded",` - background-color: var(--n-color-embedded-modal); - `)])),VC(Se("card",` - background: var(--n-color-popover); - `,[Ce("embedded",` - background-color: var(--n-color-embedded-popover); - `)]))]),Cu={title:String,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],headerExtraClass:String,headerExtraStyle:[Object,String],footerClass:String,footerStyle:[Object,String],embedded:Boolean,segmented:{type:[Boolean,Object],default:!1},size:{type:String,default:"medium"},bordered:{type:Boolean,default:!0},closable:Boolean,hoverable:Boolean,role:String,onClose:[Function,Array],tag:{type:String,default:"div"}},m_=_s(Cu),g_=Object.assign(Object.assign({},Ct.props),Cu),x_=Oe({name:"Card",props:g_,setup(e){const t=()=>{const{onClose:c}=e;c&&_o(c)},{inlineThemeDisabled:r,mergedClsPrefixRef:o,mergedRtlRef:n}=sr(e),i=Ct("Card","-card",p_,bu,e,o),a=yi("Card",n,o),s=ae(()=>{const{size:c}=e,{self:{color:u,colorModal:d,colorTarget:f,textColor:p,titleTextColor:h,titleFontWeight:m,borderColor:v,actionColor:g,borderRadius:x,lineHeight:C,closeIconColor:b,closeIconColorHover:w,closeIconColorPressed:T,closeColorHover:S,closeColorPressed:E,closeBorderRadius:I,closeIconSize:P,closeSize:$,boxShadow:R,colorPopover:B,colorEmbedded:j,colorEmbeddedModal:Y,colorEmbeddedPopover:J,[_e("padding",c)]:Q,[_e("fontSize",c)]:ie,[_e("titleFontSize",c)]:ge},common:{cubicBezierEaseInOut:ve}}=i.value,{top:z,left:W,bottom:Z}=Zp(Q);return{"--n-bezier":ve,"--n-border-radius":x,"--n-color":u,"--n-color-modal":d,"--n-color-popover":B,"--n-color-embedded":j,"--n-color-embedded-modal":Y,"--n-color-embedded-popover":J,"--n-color-target":f,"--n-text-color":p,"--n-line-height":C,"--n-action-color":g,"--n-title-text-color":h,"--n-title-font-weight":m,"--n-close-icon-color":b,"--n-close-icon-color-hover":w,"--n-close-icon-color-pressed":T,"--n-close-color-hover":S,"--n-close-color-pressed":E,"--n-border-color":v,"--n-box-shadow":R,"--n-padding-top":z,"--n-padding-bottom":Z,"--n-padding-left":W,"--n-font-size":ie,"--n-title-font-size":ge,"--n-close-size":$,"--n-close-icon-size":P,"--n-close-border-radius":I}}),l=r?so("card",ae(()=>e.size[0]),s,e):void 0;return{rtlEnabled:a,mergedClsPrefix:o,mergedTheme:i,handleCloseClick:t,cssVars:r?void 0:s,themeClass:l==null?void 0:l.themeClass,onRender:l==null?void 0:l.onRender}},render(){const{footerStyle:e,headerExtraClass:t,headerClass:r,contentClass:o,segmented:n,bordered:i,hoverable:a,mergedClsPrefix:s,rtlEnabled:l,onRender:c,embedded:u,tag:d,$slots:f}=this;return c==null||c(),H(d,{class:[`${s}-card`,this.themeClass,u&&`${s}-card--embedded`,{[`${s}-card--rtl`]:l,[`${s}-card--content${typeof n!="boolean"&&n.content==="soft"?"-soft":""}-segmented`]:n===!0||n!==!1&&n.content,[`${s}-card--footer${typeof n!="boolean"&&n.footer==="soft"?"-soft":""}-segmented`]:n===!0||n!==!1&&n.footer,[`${s}-card--action-segmented`]:n===!0||n!==!1&&n.action,[`${s}-card--bordered`]:i,[`${s}-card--hoverable`]:a}],style:this.cssVars,role:this.role},Jt(f.cover,p=>p&&H("div",{class:`${s}-card-cover`,role:"none"},p)),Jt(f.header,p=>p||this.title||this.closable?H("div",{class:[`${s}-card-header`,r],style:this.headerStyle},H("div",{class:`${s}-card-header__main`,role:"heading"},p||this.title),Jt(f["header-extra"],h=>h&&H("div",{class:[`${s}-card-header__extra`,t],style:this.headerExtraStyle},h)),this.closable?H(Rs,{clsPrefix:s,class:`${s}-card-header__close`,onClick:this.handleCloseClick,absolute:!0}):null):null),Jt(f.default,p=>p&&H("div",{class:[`${s}-card__content`,o],style:this.contentStyle,role:"none"},p)),Jt(f.footer,p=>p&&[H("div",{class:[`${s}-card__footer`,e],style:this.footerStyle,role:"none"},p)]),Jt(f.action,p=>p&&H("div",{class:`${s}-card__action`,role:"none"},p)))}}),wg=e=>({dotSize:"8px",dotColor:"rgba(255, 255, 255, .3)",dotColorActive:"rgba(255, 255, 255, 1)",dotColorFocus:"rgba(255, 255, 255, .5)",dotLineWidth:"16px",dotLineWidthActive:"24px",arrowColor:"#eee"}),v_={name:"Carousel",common:le,self:wg},b_=v_,C_={name:"Carousel",common:se,self:wg},y_=C_,S_={sizeSmall:"14px",sizeMedium:"16px",sizeLarge:"18px",labelPadding:"0 8px",labelFontWeight:"400"},_g=e=>{const{baseColor:t,inputColorDisabled:r,cardColor:o,modalColor:n,popoverColor:i,textColorDisabled:a,borderColor:s,primaryColor:l,textColor2:c,fontSizeSmall:u,fontSizeMedium:d,fontSizeLarge:f,borderRadiusSmall:p,lineHeight:h}=e;return Object.assign(Object.assign({},S_),{labelLineHeight:h,fontSizeSmall:u,fontSizeMedium:d,fontSizeLarge:f,borderRadius:p,color:t,colorChecked:l,colorDisabled:r,colorDisabledChecked:r,colorTableHeader:o,colorTableHeaderModal:n,colorTableHeaderPopover:i,checkMarkColor:t,checkMarkColorDisabled:a,checkMarkColorDisabledChecked:a,border:`1px solid ${s}`,borderDisabled:`1px solid ${s}`,borderDisabledChecked:`1px solid ${s}`,borderChecked:`1px solid ${l}`,borderFocus:`1px solid ${l}`,boxShadowFocus:`0 0 0 2px ${G(l,{alpha:.3})}`,textColor:c,textColorDisabled:a})},w_={name:"Checkbox",common:le,self:_g},gn=w_,__={name:"Checkbox",common:se,self(e){const{cardColor:t}=e,r=_g(e);return r.color="#0000",r.checkMarkColor=t,r}},xn=__,Tg=e=>{const{borderRadius:t,boxShadow2:r,popoverColor:o,textColor2:n,textColor3:i,primaryColor:a,textColorDisabled:s,dividerColor:l,hoverColor:c,fontSizeMedium:u,heightMedium:d}=e;return{menuBorderRadius:t,menuColor:o,menuBoxShadow:r,menuDividerColor:l,menuHeight:"calc(var(--n-option-height) * 6.6)",optionArrowColor:i,optionHeight:d,optionFontSize:u,optionColorHover:c,optionTextColor:n,optionTextColorActive:a,optionTextColorDisabled:s,optionCheckMarkColor:a,loadingColor:a,columnWidth:"180px"}},T_={name:"Cascader",common:le,peers:{InternalSelectMenu:wi,InternalSelection:xu,Scrollbar:$t,Checkbox:gn,Empty:Dr},self:Tg},E_=T_,P_={name:"Cascader",common:se,peers:{InternalSelectMenu:_i,InternalSelection:vu,Scrollbar:Mt,Checkbox:xn,Empty:Dr},self:Tg},k_=P_,L_={name:"Code",common:se,self(e){const{textColor2:t,fontSize:r,fontWeightStrong:o,textColor3:n}=e;return{textColor:t,fontSize:r,fontWeightStrong:o,"mono-3":"#5c6370","hue-1":"#56b6c2","hue-2":"#61aeee","hue-3":"#c678dd","hue-4":"#98c379","hue-5":"#e06c75","hue-5-2":"#be5046","hue-6":"#d19a66","hue-6-2":"#e6c07b",lineNumberTextColor:n}}},Eg=L_,$_=e=>{const{textColor2:t,fontSize:r,fontWeightStrong:o,textColor3:n}=e;return{textColor:t,fontSize:r,fontWeightStrong:o,"mono-3":"#a0a1a7","hue-1":"#0184bb","hue-2":"#4078f2","hue-3":"#a626a4","hue-4":"#50a14f","hue-5":"#e45649","hue-5-2":"#c91243","hue-6":"#986801","hue-6-2":"#c18401",lineNumberTextColor:n}},I_={name:"Code",common:le,self:$_},Pg=I_,kg=e=>{const{fontWeight:t,textColor1:r,textColor2:o,textColorDisabled:n,dividerColor:i,fontSize:a}=e;return{titleFontSize:a,titleFontWeight:t,dividerColor:i,titleTextColor:r,titleTextColorDisabled:n,fontSize:a,textColor:o,arrowColor:o,arrowColorDisabled:n,itemMargin:"16px 0 0 0",titlePadding:"16px 0 0 0"}},R_={name:"Collapse",common:le,self:kg},A_=R_,O_={name:"Collapse",common:se,self:kg},B_=O_,Lg=e=>{const{cubicBezierEaseInOut:t}=e;return{bezier:t}},H_={name:"CollapseTransition",common:le,self:Lg},M_=H_,D_={name:"CollapseTransition",common:se,self:Lg},F_=D_,z_={abstract:Boolean,bordered:{type:Boolean,default:void 0},clsPrefix:{type:String,default:ci},locale:Object,dateLocale:Object,namespace:String,rtl:Array,tag:{type:String,default:"div"},hljs:Object,katex:Object,theme:Object,themeOverrides:Object,componentOptions:Object,icons:Object,breakpoints:Object,preflightStyleDisabled:Boolean,inlineThemeDisabled:{type:Boolean,default:void 0},as:{type:String,validator:()=>(oi("config-provider","`as` is deprecated, please use `tag` instead."),!0),default:void 0}},$g=Oe({name:"ConfigProvider",alias:["App"],props:z_,setup(e){const t=Me(oo,null),r=ae(()=>{const{theme:h}=e;if(h===null)return;const m=t==null?void 0:t.mergedThemeRef.value;return h===void 0?m:m===void 0?h:Object.assign({},m,h)}),o=ae(()=>{const{themeOverrides:h}=e;if(h!==null){if(h===void 0)return t==null?void 0:t.mergedThemeOverridesRef.value;{const m=t==null?void 0:t.mergedThemeOverridesRef.value;return m===void 0?h:An({},m,h)}}}),n=jl(()=>{const{namespace:h}=e;return h===void 0?t==null?void 0:t.mergedNamespaceRef.value:h}),i=jl(()=>{const{bordered:h}=e;return h===void 0?t==null?void 0:t.mergedBorderedRef.value:h}),a=ae(()=>{const{icons:h}=e;return h===void 0?t==null?void 0:t.mergedIconsRef.value:h}),s=ae(()=>{const{componentOptions:h}=e;return h!==void 0?h:t==null?void 0:t.mergedComponentPropsRef.value}),l=ae(()=>{const{clsPrefix:h}=e;return h!==void 0?h:t?t.mergedClsPrefixRef.value:ci}),c=ae(()=>{var h;const{rtl:m}=e;if(m===void 0)return t==null?void 0:t.mergedRtlRef.value;const v={};for(const g of m)v[g.name]=to(g),(h=g.peers)===null||h===void 0||h.forEach(x=>{x.name in v||(v[x.name]=to(x))});return v}),u=ae(()=>e.breakpoints||(t==null?void 0:t.mergedBreakpointsRef.value)),d=e.inlineThemeDisabled||(t==null?void 0:t.inlineThemeDisabled),f=e.preflightStyleDisabled||(t==null?void 0:t.preflightStyleDisabled),p=ae(()=>{const{value:h}=r,{value:m}=o,v=m&&Object.keys(m).length!==0,g=h==null?void 0:h.name;return g?v?`${g}-${ni(JSON.stringify(o.value))}`:g:v?ni(JSON.stringify(o.value)):""});return dt(oo,{mergedThemeHashRef:p,mergedBreakpointsRef:u,mergedRtlRef:c,mergedIconsRef:a,mergedComponentPropsRef:s,mergedBorderedRef:i,mergedNamespaceRef:n,mergedClsPrefixRef:l,mergedLocaleRef:ae(()=>{const{locale:h}=e;if(h!==null)return h===void 0?t==null?void 0:t.mergedLocaleRef.value:h}),mergedDateLocaleRef:ae(()=>{const{dateLocale:h}=e;if(h!==null)return h===void 0?t==null?void 0:t.mergedDateLocaleRef.value:h}),mergedHljsRef:ae(()=>{const{hljs:h}=e;return h===void 0?t==null?void 0:t.mergedHljsRef.value:h}),mergedKatexRef:ae(()=>{const{katex:h}=e;return h===void 0?t==null?void 0:t.mergedKatexRef.value:h}),mergedThemeRef:r,mergedThemeOverridesRef:o,inlineThemeDisabled:d||!1,preflightStyleDisabled:f||!1}),{mergedClsPrefix:l,mergedBordered:i,mergedNamespace:n,mergedTheme:r,mergedThemeOverrides:o}},render(){var e,t,r,o;return this.abstract?(o=(r=this.$slots).default)===null||o===void 0?void 0:o.call(r):H(this.as||this.tag,{class:`${this.mergedClsPrefix||ci}-config-provider`},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))}}),N_={name:"Popselect",common:se,peers:{Popover:Mo,InternalSelectMenu:_i}},Ig=N_;function W_(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}const j_={name:"Popselect",common:le,peers:{Popover:Ho,InternalSelectMenu:wi},self:W_},Rg=j_;function Ag(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}const U_={name:"Select",common:le,peers:{InternalSelection:xu,InternalSelectMenu:wi},self:Ag},Og=U_,V_={name:"Select",common:se,peers:{InternalSelection:vu,InternalSelectMenu:_i},self:Ag},Bg=V_,q_={itemPaddingSmall:"0 4px",itemMarginSmall:"0 0 0 8px",itemMarginSmallRtl:"0 8px 0 0",itemPaddingMedium:"0 4px",itemMarginMedium:"0 0 0 8px",itemMarginMediumRtl:"0 8px 0 0",itemPaddingLarge:"0 4px",itemMarginLarge:"0 0 0 8px",itemMarginLargeRtl:"0 8px 0 0",buttonIconSizeSmall:"14px",buttonIconSizeMedium:"16px",buttonIconSizeLarge:"18px",inputWidthSmall:"60px",selectWidthSmall:"unset",inputMarginSmall:"0 0 0 8px",inputMarginSmallRtl:"0 8px 0 0",selectMarginSmall:"0 0 0 8px",prefixMarginSmall:"0 8px 0 0",suffixMarginSmall:"0 0 0 8px",inputWidthMedium:"60px",selectWidthMedium:"unset",inputMarginMedium:"0 0 0 8px",inputMarginMediumRtl:"0 8px 0 0",selectMarginMedium:"0 0 0 8px",prefixMarginMedium:"0 8px 0 0",suffixMarginMedium:"0 0 0 8px",inputWidthLarge:"60px",selectWidthLarge:"unset",inputMarginLarge:"0 0 0 8px",inputMarginLargeRtl:"0 8px 0 0",selectMarginLarge:"0 0 0 8px",prefixMarginLarge:"0 8px 0 0",suffixMarginLarge:"0 0 0 8px"},Hg=e=>{const{textColor2:t,primaryColor:r,primaryColorHover:o,primaryColorPressed:n,inputColorDisabled:i,textColorDisabled:a,borderColor:s,borderRadius:l,fontSizeTiny:c,fontSizeSmall:u,fontSizeMedium:d,heightTiny:f,heightSmall:p,heightMedium:h}=e;return Object.assign(Object.assign({},q_),{buttonColor:"#0000",buttonColorHover:"#0000",buttonColorPressed:"#0000",buttonBorder:`1px solid ${s}`,buttonBorderHover:`1px solid ${s}`,buttonBorderPressed:`1px solid ${s}`,buttonIconColor:t,buttonIconColorHover:t,buttonIconColorPressed:t,itemTextColor:t,itemTextColorHover:o,itemTextColorPressed:n,itemTextColorActive:r,itemTextColorDisabled:a,itemColor:"#0000",itemColorHover:"#0000",itemColorPressed:"#0000",itemColorActive:"#0000",itemColorActiveHover:"#0000",itemColorDisabled:i,itemBorder:"1px solid #0000",itemBorderHover:"1px solid #0000",itemBorderPressed:"1px solid #0000",itemBorderActive:`1px solid ${r}`,itemBorderDisabled:`1px solid ${s}`,itemBorderRadius:l,itemSizeSmall:f,itemSizeMedium:p,itemSizeLarge:h,itemFontSizeSmall:c,itemFontSizeMedium:u,itemFontSizeLarge:d,jumperFontSizeSmall:c,jumperFontSizeMedium:u,jumperFontSizeLarge:d,jumperTextColor:t,jumperTextColorDisabled:a})},G_={name:"Pagination",common:le,peers:{Select:Og,Input:Yt,Popselect:Rg},self:Hg},Mg=G_,K_={name:"Pagination",common:se,peers:{Select:Bg,Input:Xt,Popselect:Ig},self(e){const{primaryColor:t,opacity3:r}=e,o=G(t,{alpha:Number(r)}),n=Hg(e);return n.itemBorderActive=`1px solid ${o}`,n.itemBorderDisabled="1px solid #0000",n}},Dg=K_,Fg={padding:"8px 14px"},Z_={name:"Tooltip",common:se,peers:{Popover:Mo},self(e){const{borderRadius:t,boxShadow2:r,popoverColor:o,textColor2:n}=e;return Object.assign(Object.assign({},Fg),{borderRadius:t,boxShadow:r,color:o,textColor:n})}},As=Z_,X_=e=>{const{borderRadius:t,boxShadow2:r,baseColor:o}=e;return Object.assign(Object.assign({},Fg),{borderRadius:t,boxShadow:r,color:me(o,"rgba(0, 0, 0, .85)"),textColor:o})},Y_={name:"Tooltip",common:le,peers:{Popover:Ho},self:X_},Os=Y_,Q_={name:"Ellipsis",common:se,peers:{Tooltip:As}},zg=Q_,J_={name:"Ellipsis",common:le,peers:{Tooltip:Os}},Ng=J_,Wg={radioSizeSmall:"14px",radioSizeMedium:"16px",radioSizeLarge:"18px",labelPadding:"0 8px",labelFontWeight:"400"},e5={name:"Radio",common:se,self(e){const{borderColor:t,primaryColor:r,baseColor:o,textColorDisabled:n,inputColorDisabled:i,textColor2:a,opacityDisabled:s,borderRadius:l,fontSizeSmall:c,fontSizeMedium:u,fontSizeLarge:d,heightSmall:f,heightMedium:p,heightLarge:h,lineHeight:m}=e;return Object.assign(Object.assign({},Wg),{labelLineHeight:m,buttonHeightSmall:f,buttonHeightMedium:p,buttonHeightLarge:h,fontSizeSmall:c,fontSizeMedium:u,fontSizeLarge:d,boxShadow:`inset 0 0 0 1px ${t}`,boxShadowActive:`inset 0 0 0 1px ${r}`,boxShadowFocus:`inset 0 0 0 1px ${r}, 0 0 0 2px ${G(r,{alpha:.3})}`,boxShadowHover:`inset 0 0 0 1px ${r}`,boxShadowDisabled:`inset 0 0 0 1px ${t}`,color:"#0000",colorDisabled:i,colorActive:"#0000",textColor:a,textColorDisabled:n,dotColorActive:r,dotColorDisabled:t,buttonBorderColor:t,buttonBorderColorActive:r,buttonBorderColorHover:r,buttonColor:"#0000",buttonColorActive:r,buttonTextColor:a,buttonTextColorActive:o,buttonTextColorHover:r,opacityDisabled:s,buttonBoxShadowFocus:`inset 0 0 0 1px ${r}, 0 0 0 2px ${G(r,{alpha:.3})}`,buttonBoxShadowHover:`inset 0 0 0 1px ${r}`,buttonBoxShadow:"inset 0 0 0 1px #0000",buttonBorderRadius:l})}},jg=e5,t5=e=>{const{borderColor:t,primaryColor:r,baseColor:o,textColorDisabled:n,inputColorDisabled:i,textColor2:a,opacityDisabled:s,borderRadius:l,fontSizeSmall:c,fontSizeMedium:u,fontSizeLarge:d,heightSmall:f,heightMedium:p,heightLarge:h,lineHeight:m}=e;return Object.assign(Object.assign({},Wg),{labelLineHeight:m,buttonHeightSmall:f,buttonHeightMedium:p,buttonHeightLarge:h,fontSizeSmall:c,fontSizeMedium:u,fontSizeLarge:d,boxShadow:`inset 0 0 0 1px ${t}`,boxShadowActive:`inset 0 0 0 1px ${r}`,boxShadowFocus:`inset 0 0 0 1px ${r}, 0 0 0 2px ${G(r,{alpha:.2})}`,boxShadowHover:`inset 0 0 0 1px ${r}`,boxShadowDisabled:`inset 0 0 0 1px ${t}`,color:o,colorDisabled:i,colorActive:"#0000",textColor:a,textColorDisabled:n,dotColorActive:r,dotColorDisabled:t,buttonBorderColor:t,buttonBorderColorActive:r,buttonBorderColorHover:t,buttonColor:o,buttonColorActive:o,buttonTextColor:a,buttonTextColorActive:r,buttonTextColorHover:r,opacityDisabled:s,buttonBoxShadowFocus:`inset 0 0 0 1px ${r}, 0 0 0 2px ${G(r,{alpha:.3})}`,buttonBoxShadowHover:"inset 0 0 0 1px #0000",buttonBoxShadow:"inset 0 0 0 1px #0000",buttonBorderRadius:l})},r5={name:"Radio",common:le,self:t5},Ug=r5,o5={padding:"4px 0",optionIconSizeSmall:"14px",optionIconSizeMedium:"16px",optionIconSizeLarge:"16px",optionIconSizeHuge:"18px",optionSuffixWidthSmall:"14px",optionSuffixWidthMedium:"14px",optionSuffixWidthLarge:"16px",optionSuffixWidthHuge:"16px",optionIconSuffixWidthSmall:"32px",optionIconSuffixWidthMedium:"32px",optionIconSuffixWidthLarge:"36px",optionIconSuffixWidthHuge:"36px",optionPrefixWidthSmall:"14px",optionPrefixWidthMedium:"14px",optionPrefixWidthLarge:"16px",optionPrefixWidthHuge:"16px",optionIconPrefixWidthSmall:"36px",optionIconPrefixWidthMedium:"36px",optionIconPrefixWidthLarge:"40px",optionIconPrefixWidthHuge:"40px"},Vg=e=>{const{primaryColor:t,textColor2:r,dividerColor:o,hoverColor:n,popoverColor:i,invertedColor:a,borderRadius:s,fontSizeSmall:l,fontSizeMedium:c,fontSizeLarge:u,fontSizeHuge:d,heightSmall:f,heightMedium:p,heightLarge:h,heightHuge:m,textColor3:v,opacityDisabled:g}=e;return Object.assign(Object.assign({},o5),{optionHeightSmall:f,optionHeightMedium:p,optionHeightLarge:h,optionHeightHuge:m,borderRadius:s,fontSizeSmall:l,fontSizeMedium:c,fontSizeLarge:u,fontSizeHuge:d,optionTextColor:r,optionTextColorHover:r,optionTextColorActive:t,optionTextColorChildActive:t,color:i,dividerColor:o,suffixColor:r,prefixColor:r,optionColorHover:n,optionColorActive:G(t,{alpha:.1}),groupHeaderTextColor:v,optionTextColorInverted:"#BBB",optionTextColorHoverInverted:"#FFF",optionTextColorActiveInverted:"#FFF",optionTextColorChildActiveInverted:"#FFF",colorInverted:a,dividerColorInverted:"#BBB",suffixColorInverted:"#BBB",prefixColorInverted:"#BBB",optionColorHoverInverted:t,optionColorActiveInverted:t,groupHeaderTextColorInverted:"#AAA",optionOpacityDisabled:g})},n5={name:"Dropdown",common:le,peers:{Popover:Ho},self:Vg},yu=n5,i5={name:"Dropdown",common:se,peers:{Popover:Mo},self(e){const{primaryColorSuppl:t,primaryColor:r,popoverColor:o}=e,n=Vg(e);return n.colorInverted=o,n.optionColorActive=G(r,{alpha:.15}),n.optionColorActiveInverted=t,n.optionColorHoverInverted=t,n}},Su=i5,a5={thPaddingSmall:"8px",thPaddingMedium:"12px",thPaddingLarge:"12px",tdPaddingSmall:"8px",tdPaddingMedium:"12px",tdPaddingLarge:"12px",sorterSize:"15px",resizableContainerSize:"8px",resizableSize:"2px",filterSize:"15px",paginationMargin:"12px 0 0 0",emptyPadding:"48px 0",actionPadding:"8px 12px",actionButtonMargin:"0 8px 0 0"},qg=e=>{const{cardColor:t,modalColor:r,popoverColor:o,textColor2:n,textColor1:i,tableHeaderColor:a,tableColorHover:s,iconColor:l,primaryColor:c,fontWeightStrong:u,borderRadius:d,lineHeight:f,fontSizeSmall:p,fontSizeMedium:h,fontSizeLarge:m,dividerColor:v,heightSmall:g,opacityDisabled:x,tableColorStriped:C}=e;return Object.assign(Object.assign({},a5),{actionDividerColor:v,lineHeight:f,borderRadius:d,fontSizeSmall:p,fontSizeMedium:h,fontSizeLarge:m,borderColor:me(t,v),tdColorHover:me(t,s),tdColorStriped:me(t,C),thColor:me(t,a),thColorHover:me(me(t,a),s),tdColor:t,tdTextColor:n,thTextColor:i,thFontWeight:u,thButtonColorHover:s,thIconColor:l,thIconColorActive:c,borderColorModal:me(r,v),tdColorHoverModal:me(r,s),tdColorStripedModal:me(r,C),thColorModal:me(r,a),thColorHoverModal:me(me(r,a),s),tdColorModal:r,borderColorPopover:me(o,v),tdColorHoverPopover:me(o,s),tdColorStripedPopover:me(o,C),thColorPopover:me(o,a),thColorHoverPopover:me(me(o,a),s),tdColorPopover:o,boxShadowBefore:"inset -12px 0 8px -12px rgba(0, 0, 0, .18)",boxShadowAfter:"inset 12px 0 8px -12px rgba(0, 0, 0, .18)",loadingColor:c,loadingSize:g,opacityLoading:x})},s5={name:"DataTable",common:le,peers:{Button:It,Checkbox:gn,Radio:Ug,Pagination:Mg,Scrollbar:$t,Empty:Dr,Popover:Ho,Ellipsis:Ng,Dropdown:yu},self:qg},l5=s5,c5={name:"DataTable",common:se,peers:{Button:Dt,Checkbox:xn,Radio:jg,Pagination:Dg,Scrollbar:Mt,Empty:Bo,Popover:Mo,Ellipsis:zg,Dropdown:Su},self(e){const t=qg(e);return t.boxShadowAfter="inset 12px 0 8px -12px rgba(0, 0, 0, .36)",t.boxShadowBefore="inset -12px 0 8px -12px rgba(0, 0, 0, .36)",t}},u5=c5,Gg=e=>{const{textColorBase:t,opacity1:r,opacity2:o,opacity3:n,opacity4:i,opacity5:a}=e;return{color:t,opacity1Depth:r,opacity2Depth:o,opacity3Depth:n,opacity4Depth:i,opacity5Depth:a}},d5={name:"Icon",common:le,self:Gg},f5=d5,h5={name:"Icon",common:se,self:Gg},p5=h5,m5={itemFontSize:"12px",itemHeight:"36px",itemWidth:"52px",panelActionPadding:"8px 0"},Kg=e=>{const{popoverColor:t,textColor2:r,primaryColor:o,hoverColor:n,dividerColor:i,opacityDisabled:a,boxShadow2:s,borderRadius:l,iconColor:c,iconColorDisabled:u}=e;return Object.assign(Object.assign({},m5),{panelColor:t,panelBoxShadow:s,panelDividerColor:i,itemTextColor:r,itemTextColorActive:o,itemColorHover:n,itemOpacityDisabled:a,itemBorderRadius:l,borderRadius:l,iconColor:c,iconColorDisabled:u})},g5={name:"TimePicker",common:le,peers:{Scrollbar:$t,Button:It,Input:Yt},self:Kg},Zg=g5,x5={name:"TimePicker",common:se,peers:{Scrollbar:Mt,Button:Dt,Input:Xt},self:Kg},Xg=x5,v5={itemSize:"24px",itemCellWidth:"38px",itemCellHeight:"32px",scrollItemWidth:"80px",scrollItemHeight:"40px",panelExtraFooterPadding:"8px 12px",panelActionPadding:"8px 12px",calendarTitlePadding:"0",calendarTitleHeight:"28px",arrowSize:"14px",panelHeaderPadding:"8px 12px",calendarDaysHeight:"32px",calendarTitleGridTempateColumns:"28px 28px 1fr 28px 28px",calendarLeftPaddingDate:"6px 12px 4px 12px",calendarLeftPaddingDatetime:"4px 12px",calendarLeftPaddingDaterange:"6px 12px 4px 12px",calendarLeftPaddingDatetimerange:"4px 12px",calendarLeftPaddingMonth:"0",calendarLeftPaddingYear:"0",calendarLeftPaddingQuarter:"0",calendarLeftPaddingMonthrange:"0",calendarLeftPaddingQuarterrange:"0",calendarLeftPaddingYearrange:"0",calendarRightPaddingDate:"6px 12px 4px 12px",calendarRightPaddingDatetime:"4px 12px",calendarRightPaddingDaterange:"6px 12px 4px 12px",calendarRightPaddingDatetimerange:"4px 12px",calendarRightPaddingMonth:"0",calendarRightPaddingYear:"0",calendarRightPaddingQuarter:"0",calendarRightPaddingMonthrange:"0",calendarRightPaddingQuarterrange:"0",calendarRightPaddingYearrange:"0"},Yg=e=>{const{hoverColor:t,fontSize:r,textColor2:o,textColorDisabled:n,popoverColor:i,primaryColor:a,borderRadiusSmall:s,iconColor:l,iconColorDisabled:c,textColor1:u,dividerColor:d,boxShadow2:f,borderRadius:p,fontWeightStrong:h}=e;return Object.assign(Object.assign({},v5),{itemFontSize:r,calendarDaysFontSize:r,calendarTitleFontSize:r,itemTextColor:o,itemTextColorDisabled:n,itemTextColorActive:i,itemTextColorCurrent:a,itemColorIncluded:G(a,{alpha:.1}),itemColorHover:t,itemColorDisabled:t,itemColorActive:a,itemBorderRadius:s,panelColor:i,panelTextColor:o,arrowColor:l,calendarTitleTextColor:u,calendarTitleColorHover:t,calendarDaysTextColor:o,panelHeaderDividerColor:d,calendarDaysDividerColor:d,calendarDividerColor:d,panelActionDividerColor:d,panelBoxShadow:f,panelBorderRadius:p,calendarTitleFontWeight:h,scrollItemBorderRadius:p,iconColor:l,iconColorDisabled:c})},b5={name:"DatePicker",common:le,peers:{Input:Yt,Button:It,TimePicker:Zg,Scrollbar:$t},self:Yg},C5=b5,y5={name:"DatePicker",common:se,peers:{Input:Xt,Button:Dt,TimePicker:Xg,Scrollbar:Mt},self(e){const{popoverColor:t,hoverColor:r,primaryColor:o}=e,n=Yg(e);return n.itemColorDisabled=me(t,r),n.itemColorIncluded=G(o,{alpha:.15}),n.itemColorHover=me(t,r),n}},S5=y5;var Ae=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function w5(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function o(){if(this instanceof o){var n=[null];n.push.apply(n,arguments);var i=Function.bind.apply(t,n);return new i}return t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(r,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}),r}const _5={thPaddingBorderedSmall:"8px 12px",thPaddingBorderedMedium:"12px 16px",thPaddingBorderedLarge:"16px 24px",thPaddingSmall:"0",thPaddingMedium:"0",thPaddingLarge:"0",tdPaddingBorderedSmall:"8px 12px",tdPaddingBorderedMedium:"12px 16px",tdPaddingBorderedLarge:"16px 24px",tdPaddingSmall:"0 0 8px 0",tdPaddingMedium:"0 0 12px 0",tdPaddingLarge:"0 0 16px 0"},Qg=e=>{const{tableHeaderColor:t,textColor2:r,textColor1:o,cardColor:n,modalColor:i,popoverColor:a,dividerColor:s,borderRadius:l,fontWeightStrong:c,lineHeight:u,fontSizeSmall:d,fontSizeMedium:f,fontSizeLarge:p}=e;return Object.assign(Object.assign({},_5),{lineHeight:u,fontSizeSmall:d,fontSizeMedium:f,fontSizeLarge:p,titleTextColor:o,thColor:me(n,t),thColorModal:me(i,t),thColorPopover:me(a,t),thTextColor:o,thFontWeight:c,tdTextColor:r,tdColor:n,tdColorModal:i,tdColorPopover:a,borderColor:me(n,s),borderColorModal:me(i,s),borderColorPopover:me(a,s),borderRadius:l})},T5={name:"Descriptions",common:le,self:Qg},E5=T5,P5={name:"Descriptions",common:se,self:Qg},k5=P5,L5={titleFontSize:"18px",padding:"16px 28px 20px 28px",iconSize:"28px",actionSpace:"12px",contentMargin:"8px 0 16px 0",iconMargin:"0 4px 0 0",iconMarginIconTop:"4px 0 8px 0",closeSize:"22px",closeIconSize:"18px",closeMargin:"20px 26px 0 0",closeMarginIconTop:"10px 16px 0 0"},Jg=e=>{const{textColor1:t,textColor2:r,modalColor:o,closeIconColor:n,closeIconColorHover:i,closeIconColorPressed:a,closeColorHover:s,closeColorPressed:l,infoColor:c,successColor:u,warningColor:d,errorColor:f,primaryColor:p,dividerColor:h,borderRadius:m,fontWeightStrong:v,lineHeight:g,fontSize:x}=e;return Object.assign(Object.assign({},L5),{fontSize:x,lineHeight:g,border:`1px solid ${h}`,titleTextColor:t,textColor:r,color:o,closeColorHover:s,closeColorPressed:l,closeIconColor:n,closeIconColorHover:i,closeIconColorPressed:a,closeBorderRadius:m,iconColor:p,iconColorInfo:c,iconColorSuccess:u,iconColorWarning:d,iconColorError:f,borderRadius:m,titleFontWeight:v})},$5={name:"Dialog",common:le,peers:{Button:It},self:Jg},wu=$5,I5={name:"Dialog",common:se,peers:{Button:Dt},self:Jg},e1=I5,Bs={icon:Function,type:{type:String,default:"default"},title:[String,Function],closable:{type:Boolean,default:!0},negativeText:String,positiveText:String,positiveButtonProps:Object,negativeButtonProps:Object,content:[String,Function],action:Function,showIcon:{type:Boolean,default:!0},loading:Boolean,bordered:Boolean,iconPlacement:String,onPositiveClick:Function,onNegativeClick:Function,onClose:Function},t1=_s(Bs),R5=ne([Se("dialog",` - word-break: break-word; - line-height: var(--n-line-height); - position: relative; - background: var(--n-color); - color: var(--n-text-color); - box-sizing: border-box; - margin: auto; - border-radius: var(--n-border-radius); - padding: var(--n-padding); - transition: - border-color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - `,[he("icon",{color:"var(--n-icon-color)"}),Ce("bordered",{border:"var(--n-border)"}),Ce("icon-top",[he("close",{margin:"var(--n-close-margin)"}),he("icon",{margin:"var(--n-icon-margin)"}),he("content",{textAlign:"center"}),he("title",{justifyContent:"center"}),he("action",{justifyContent:"center"})]),Ce("icon-left",[he("icon",{margin:"var(--n-icon-margin)"}),Ce("closable",[he("title",` - padding-right: calc(var(--n-close-size) + 6px); - `)])]),he("close",` - position: absolute; - right: 0; - top: 0; - margin: var(--n-close-margin); - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - z-index: 1; - `),he("content",` - font-size: var(--n-font-size); - margin: var(--n-content-margin); - position: relative; - word-break: break-word; - `,[Ce("last","margin-bottom: 0;")]),he("action",` - display: flex; - justify-content: flex-end; - `,[ne("> *:not(:last-child)",{marginRight:"var(--n-action-space)"})]),he("icon",{fontSize:"var(--n-icon-size)",transition:"color .3s var(--n-bezier)"}),he("title",` - transition: color .3s var(--n-bezier); - display: flex; - align-items: center; - font-size: var(--n-title-font-size); - font-weight: var(--n-title-font-weight); - color: var(--n-title-text-color); - `),Se("dialog-icon-container",{display:"flex",justifyContent:"center"})]),rm(Se("dialog",` - width: 446px; - max-width: calc(100vw - 32px); - `)),Se("dialog",[om(` - width: 446px; - max-width: calc(100vw - 32px); - `)])]),A5={default:()=>H(Ca,null),info:()=>H(Ca,null),success:()=>H(hu,null),warning:()=>H(pu,null),error:()=>H(fu,null)},r1=Oe({name:"Dialog",alias:["NimbusConfirmCard","Confirm"],props:Object.assign(Object.assign({},Ct.props),Bs),setup(e){const{mergedComponentPropsRef:t,mergedClsPrefixRef:r,inlineThemeDisabled:o}=sr(e),n=ae(()=>{var d,f;const{iconPlacement:p}=e;return p||((f=(d=t==null?void 0:t.value)===null||d===void 0?void 0:d.Dialog)===null||f===void 0?void 0:f.iconPlacement)||"left"});function i(d){const{onPositiveClick:f}=e;f&&f(d)}function a(d){const{onNegativeClick:f}=e;f&&f(d)}function s(){const{onClose:d}=e;d&&d()}const l=Ct("Dialog","-dialog",R5,wu,e,r),c=ae(()=>{const{type:d}=e,f=n.value,{common:{cubicBezierEaseInOut:p},self:{fontSize:h,lineHeight:m,border:v,titleTextColor:g,textColor:x,color:C,closeBorderRadius:b,closeColorHover:w,closeColorPressed:T,closeIconColor:S,closeIconColorHover:E,closeIconColorPressed:I,closeIconSize:P,borderRadius:$,titleFontWeight:R,titleFontSize:B,padding:j,iconSize:Y,actionSpace:J,contentMargin:Q,closeSize:ie,[f==="top"?"iconMarginIconTop":"iconMargin"]:ge,[f==="top"?"closeMarginIconTop":"closeMargin"]:ve,[_e("iconColor",d)]:z}}=l.value;return{"--n-font-size":h,"--n-icon-color":z,"--n-bezier":p,"--n-close-margin":ve,"--n-icon-margin":ge,"--n-icon-size":Y,"--n-close-size":ie,"--n-close-icon-size":P,"--n-close-border-radius":b,"--n-close-color-hover":w,"--n-close-color-pressed":T,"--n-close-icon-color":S,"--n-close-icon-color-hover":E,"--n-close-icon-color-pressed":I,"--n-color":C,"--n-text-color":x,"--n-border-radius":$,"--n-padding":j,"--n-line-height":m,"--n-border":v,"--n-content-margin":Q,"--n-title-font-size":B,"--n-title-font-weight":R,"--n-title-text-color":g,"--n-action-space":J}}),u=o?so("dialog",ae(()=>`${e.type[0]}${n.value[0]}`),c,e):void 0;return{mergedClsPrefix:r,mergedIconPlacement:n,mergedTheme:l,handlePositiveClick:i,handleNegativeClick:a,handleCloseClick:s,cssVars:o?void 0:c,themeClass:u==null?void 0:u.themeClass,onRender:u==null?void 0:u.onRender}},render(){var e;const{bordered:t,mergedIconPlacement:r,cssVars:o,closable:n,showIcon:i,title:a,content:s,action:l,negativeText:c,positiveText:u,positiveButtonProps:d,negativeButtonProps:f,handlePositiveClick:p,handleNegativeClick:h,mergedTheme:m,loading:v,type:g,mergedClsPrefix:x}=this;(e=this.onRender)===null||e===void 0||e.call(this);const C=i?H(Is,{clsPrefix:x,class:`${x}-dialog__icon`},{default:()=>Jt(this.$slots.icon,w=>w||(this.icon?Nt(this.icon):A5[this.type]()))}):null,b=Jt(this.$slots.action,w=>w||u||c||l?H("div",{class:`${x}-dialog__action`},w||(l?[Nt(l)]:[this.negativeText&&H(Fd,Object.assign({theme:m.peers.Button,themeOverrides:m.peerOverrides.Button,ghost:!0,size:"small",onClick:h},f),{default:()=>Nt(this.negativeText)}),this.positiveText&&H(Fd,Object.assign({theme:m.peers.Button,themeOverrides:m.peerOverrides.Button,size:"small",type:g==="default"?"primary":g,disabled:v,loading:v,onClick:p},d),{default:()=>Nt(this.positiveText)})])):null);return H("div",{class:[`${x}-dialog`,this.themeClass,this.closable&&`${x}-dialog--closable`,`${x}-dialog--icon-${r}`,t&&`${x}-dialog--bordered`],style:o,role:"dialog"},n?Jt(this.$slots.close,w=>w?H("div",{class:`${x}-dialog__close`},w):H(Rs,{clsPrefix:x,class:`${x}-dialog__close`,onClick:this.handleCloseClick})):null,i&&r==="top"?H("div",{class:`${x}-dialog-icon-container`},C):null,H("div",{class:`${x}-dialog__title`},i&&r==="left"?C:null,z0(this.$slots.header,()=>[Nt(a)])),H("div",{class:[`${x}-dialog__content`,b?"":`${x}-dialog__content--last`]},z0(this.$slots.default,()=>[Nt(s)])),b)}}),o1="n-dialog-provider",n1="n-dialog-api",O5="n-dialog-reactive-list",i1=e=>{const{modalColor:t,textColor2:r,boxShadow3:o}=e;return{color:t,textColor:r,boxShadow:o}},B5={name:"Modal",common:le,peers:{Scrollbar:$t,Dialog:wu,Card:bu},self:i1},a1=B5,H5={name:"Modal",common:se,peers:{Scrollbar:Mt,Dialog:e1,Card:Sg},self:i1},M5=H5,_u=Object.assign(Object.assign({},Cu),Bs),D5=_s(_u),F5=Oe({name:"ModalBody",inheritAttrs:!1,props:Object.assign(Object.assign({show:{type:Boolean,required:!0},preset:String,displayDirective:{type:String,required:!0},trapFocus:{type:Boolean,default:!0},autoFocus:{type:Boolean,default:!0},blockScroll:Boolean},_u),{renderMask:Function,onClickoutside:Function,onBeforeLeave:{type:Function,required:!0},onAfterLeave:{type:Function,required:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0},onClose:{type:Function,required:!0},onAfterEnter:Function,onEsc:Function}),setup(e){const t=de(null),r=de(null),o=de(e.show),n=de(null),i=de(null);kt(Rr(e,"show"),v=>{v&&(o.value=!0)}),Wy(ae(()=>e.blockScroll&&o.value));const a=Me(um);function s(){if(a.transformOriginRef.value==="center")return"";const{value:v}=n,{value:g}=i;if(v===null||g===null)return"";if(r.value){const x=r.value.containerScrollTop;return`${v}px ${g+x}px`}return""}function l(v){if(a.transformOriginRef.value==="center")return;const g=a.getMousePosition();if(!g||!r.value)return;const x=r.value.containerScrollTop,{offsetLeft:C,offsetTop:b}=v;if(g){const w=g.y,T=g.x;n.value=-(C-T),i.value=-(b-w-x)}v.style.transformOrigin=s()}function c(v){jt(()=>{l(v)})}function u(v){v.style.transformOrigin=s(),e.onBeforeLeave()}function d(){o.value=!1,n.value=null,i.value=null,e.onAfterLeave()}function f(){const{onClose:v}=e;v&&v()}function p(){e.onNegativeClick()}function h(){e.onPositiveClick()}const m=de(null);return kt(m,v=>{v&&jt(()=>{const g=v.el;g&&t.value!==g&&(t.value=g)})}),dt(iy,t),dt(ay,null),dt(sy,null),{mergedTheme:a.mergedThemeRef,appear:a.appearRef,isMounted:a.isMountedRef,mergedClsPrefix:a.mergedClsPrefixRef,bodyRef:t,scrollbarRef:r,displayed:o,childNodeRef:m,handlePositiveClick:h,handleNegativeClick:p,handleCloseClick:f,handleAfterLeave:d,handleBeforeLeave:u,handleEnter:c}},render(){const{$slots:e,$attrs:t,handleEnter:r,handleAfterLeave:o,handleBeforeLeave:n,preset:i,mergedClsPrefix:a}=this;let s=null;if(!i){if(s=SC(e),!s){oi("modal","default slot is empty");return}s=Ar(s),s.props=Yc({class:`${a}-modal`},t,s.props||{})}return this.displayDirective==="show"||this.displayed||this.show?pa(H("div",{role:"none",class:`${a}-modal-body-wrapper`},H(tg,{ref:"scrollbarRef",theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar,contentClass:`${a}-modal-scroll-content`},{default:()=>{var l;return[(l=this.renderMask)===null||l===void 0?void 0:l.call(this),H(Ny,{disabled:!this.trapFocus,active:this.show,onEsc:this.onEsc,autoFocus:this.autoFocus},{default:()=>{var c;return H(br,{name:"fade-in-scale-up-transition",appear:(c=this.appear)!==null&&c!==void 0?c:this.isMounted,onEnter:r,onAfterEnter:this.onAfterEnter,onAfterLeave:o,onBeforeLeave:n},{default:()=>{const u=[[Dl,this.show]],{onClickoutside:d}=this;return d&&u.push([cy,this.onClickoutside,void 0,{capture:!0}]),pa(this.preset==="confirm"||this.preset==="dialog"?H(r1,Object.assign({},this.$attrs,{class:[`${a}-modal`,this.$attrs.class],ref:"bodyRef",theme:this.mergedTheme.peers.Dialog,themeOverrides:this.mergedTheme.peerOverrides.Dialog},ri(this.$props,t1),{"aria-modal":"true"}),e):this.preset==="card"?H(x_,Object.assign({},this.$attrs,{ref:"bodyRef",class:[`${a}-modal`,this.$attrs.class],theme:this.mergedTheme.peers.Card,themeOverrides:this.mergedTheme.peerOverrides.Card},ri(this.$props,m_),{"aria-modal":"true",role:"dialog"}),e):this.childNodeRef=s,u)}})}})]}})),[[Dl,this.displayDirective==="if"||this.displayed||this.show]]):null}}),z5=ne([Se("modal-container",` - position: fixed; - left: 0; - top: 0; - height: 0; - width: 0; - display: flex; - `),Se("modal-mask",` - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-color: rgba(0, 0, 0, .4); - `,[gu({enterDuration:".25s",leaveDuration:".25s",enterCubicBezier:"var(--n-bezier-ease-out)",leaveCubicBezier:"var(--n-bezier-ease-out)"})]),Se("modal-body-wrapper",` - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - overflow: visible; - `,[Se("modal-scroll-content",` - min-height: 100%; - display: flex; - position: relative; - `)]),Se("modal",` - position: relative; - align-self: center; - color: var(--n-text-color); - margin: auto; - box-shadow: var(--n-box-shadow); - `,[G3({duration:".25s",enterScale:".5"})])]),N5=Object.assign(Object.assign(Object.assign(Object.assign({},Ct.props),{show:Boolean,unstableShowMask:{type:Boolean,default:!0},maskClosable:{type:Boolean,default:!0},preset:String,to:[String,Object],displayDirective:{type:String,default:"if"},transformOrigin:{type:String,default:"mouse"},zIndex:Number,autoFocus:{type:Boolean,default:!0},trapFocus:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},blockScroll:{type:Boolean,default:!0}}),_u),{onEsc:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onAfterEnter:Function,onBeforeLeave:Function,onAfterLeave:Function,onClose:Function,onPositiveClick:Function,onNegativeClick:Function,onMaskClick:Function,internalDialog:Boolean,internalAppear:{type:Boolean,default:void 0},overlayStyle:[String,Object],onBeforeHide:Function,onAfterHide:Function,onHide:Function}),W5=Oe({name:"Modal",inheritAttrs:!1,props:N5,setup(e){const t=de(null),{mergedClsPrefixRef:r,namespaceRef:o,inlineThemeDisabled:n}=sr(e),i=Ct("Modal","-modal",z5,a1,e,r),a=lm(64),s=sm(),l=iu(),c=e.internalDialog?Me(o1,null):null,u=jy();function d(w){const{onUpdateShow:T,"onUpdate:show":S,onHide:E}=e;T&&_o(T,w),S&&_o(S,w),E&&!w&&E(w)}function f(){const{onClose:w}=e;w?Promise.resolve(w()).then(T=>{T!==!1&&d(!1)}):d(!1)}function p(){const{onPositiveClick:w}=e;w?Promise.resolve(w()).then(T=>{T!==!1&&d(!1)}):d(!1)}function h(){const{onNegativeClick:w}=e;w?Promise.resolve(w()).then(T=>{T!==!1&&d(!1)}):d(!1)}function m(){const{onBeforeLeave:w,onBeforeHide:T}=e;w&&_o(w),T&&T()}function v(){const{onAfterLeave:w,onAfterHide:T}=e;w&&_o(w),T&&T()}function g(w){var T;const{onMaskClick:S}=e;S&&S(w),e.maskClosable&&!((T=t.value)===null||T===void 0)&&T.contains(Qc(w))&&d(!1)}function x(w){var T;(T=e.onEsc)===null||T===void 0||T.call(e),e.show&&e.closeOnEsc&&qC(w)&&!u.value&&d(!1)}dt(um,{getMousePosition:()=>{if(c){const{clickedRef:w,clickPositionRef:T}=c;if(w.value&&T.value)return T.value}return a.value?s.value:null},mergedClsPrefixRef:r,mergedThemeRef:i,isMountedRef:l,appearRef:Rr(e,"internalAppear"),transformOriginRef:Rr(e,"transformOrigin")});const C=ae(()=>{const{common:{cubicBezierEaseOut:w},self:{boxShadow:T,color:S,textColor:E}}=i.value;return{"--n-bezier-ease-out":w,"--n-box-shadow":T,"--n-color":S,"--n-text-color":E}}),b=n?so("theme-class",void 0,C,e):void 0;return{mergedClsPrefix:r,namespace:o,isMounted:l,containerRef:t,presetProps:ae(()=>ri(e,D5)),handleEsc:x,handleAfterLeave:v,handleClickoutside:g,handleBeforeLeave:m,doUpdateShow:d,handleNegativeClick:h,handlePositiveClick:p,handleCloseClick:f,cssVars:n?void 0:C,themeClass:b==null?void 0:b.themeClass,onRender:b==null?void 0:b.onRender}},render(){const{mergedClsPrefix:e}=this;return H(xy,{to:this.to,show:this.show},{default:()=>{var t;(t=this.onRender)===null||t===void 0||t.call(this);const{unstableShowMask:r}=this;return pa(H("div",{role:"none",ref:"containerRef",class:[`${e}-modal-container`,this.themeClass,this.namespace],style:this.cssVars},H(F5,Object.assign({style:this.overlayStyle},this.$attrs,{ref:"bodyWrapper",displayDirective:this.displayDirective,show:this.show,preset:this.preset,autoFocus:this.autoFocus,trapFocus:this.trapFocus,blockScroll:this.blockScroll},this.presetProps,{onEsc:this.handleEsc,onClose:this.handleCloseClick,onNegativeClick:this.handleNegativeClick,onPositiveClick:this.handlePositiveClick,onBeforeLeave:this.handleBeforeLeave,onAfterEnter:this.onAfterEnter,onAfterLeave:this.handleAfterLeave,onClickoutside:r?void 0:this.handleClickoutside,renderMask:r?()=>{var o;return H(br,{name:"fade-in-transition",key:"mask",appear:(o=this.internalAppear)!==null&&o!==void 0?o:this.isMounted},{default:()=>this.show?H("div",{"aria-hidden":!0,ref:"containerRef",class:`${e}-modal-mask`,onClick:this.handleClickoutside}):null})}:void 0}),this.$slots)),[[hy,{zIndex:this.zIndex,enabled:this.show}]])}})}}),j5=Object.assign(Object.assign({},Bs),{onAfterEnter:Function,onAfterLeave:Function,transformOrigin:String,blockScroll:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},onEsc:Function,autoFocus:{type:Boolean,default:!0},internalStyle:[String,Object],maskClosable:{type:Boolean,default:!0},onPositiveClick:Function,onNegativeClick:Function,onClose:Function,onMaskClick:Function}),U5=Oe({name:"DialogEnvironment",props:Object.assign(Object.assign({},j5),{internalKey:{type:String,required:!0},to:[String,Object],onInternalAfterLeave:{type:Function,required:!0}}),setup(e){const t=de(!0);function r(){const{onInternalAfterLeave:u,internalKey:d,onAfterLeave:f}=e;u&&u(d),f&&f()}function o(u){const{onPositiveClick:d}=e;d?Promise.resolve(d(u)).then(f=>{f!==!1&&l()}):l()}function n(u){const{onNegativeClick:d}=e;d?Promise.resolve(d(u)).then(f=>{f!==!1&&l()}):l()}function i(){const{onClose:u}=e;u?Promise.resolve(u()).then(d=>{d!==!1&&l()}):l()}function a(u){const{onMaskClick:d,maskClosable:f}=e;d&&(d(u),f&&l())}function s(){const{onEsc:u}=e;u&&u()}function l(){t.value=!1}function c(u){t.value=u}return{show:t,hide:l,handleUpdateShow:c,handleAfterLeave:r,handleCloseClick:i,handleNegativeClick:n,handlePositiveClick:o,handleMaskClick:a,handleEsc:s}},render(){const{handlePositiveClick:e,handleUpdateShow:t,handleNegativeClick:r,handleCloseClick:o,handleAfterLeave:n,handleMaskClick:i,handleEsc:a,to:s,maskClosable:l,show:c}=this;return H(W5,{show:c,onUpdateShow:t,onMaskClick:i,onEsc:a,to:s,maskClosable:l,onAfterEnter:this.onAfterEnter,onAfterLeave:n,closeOnEsc:this.closeOnEsc,blockScroll:this.blockScroll,autoFocus:this.autoFocus,transformOrigin:this.transformOrigin,internalAppear:!0,internalDialog:!0},{default:()=>H(r1,Object.assign({},ri(this.$props,t1),{style:this.internalStyle,onClose:o,onNegativeClick:r,onPositiveClick:e}))})}}),V5={injectionKey:String,to:[String,Object]},s1=Oe({name:"DialogProvider",props:V5,setup(){const e=de([]),t={};function r(s={}){const l=ws(),c=Or(Object.assign(Object.assign({},s),{key:l,destroy:()=>{t[`n-dialog-${l}`].hide()}}));return e.value.push(c),c}const o=["info","success","warning","error"].map(s=>l=>r(Object.assign(Object.assign({},l),{type:s})));function n(s){const{value:l}=e;l.splice(l.findIndex(c=>c.key===s),1)}function i(){Object.values(t).forEach(s=>{s.hide()})}const a={create:r,destroyAll:i,info:o[0],success:o[1],warning:o[2],error:o[3]};return dt(n1,a),dt(o1,{clickedRef:lm(64),clickPositionRef:sm()}),dt(O5,e),Object.assign(Object.assign({},a),{dialogList:e,dialogInstRefs:t,handleAfterLeave:n})},render(){var e,t;return H(Je,null,[this.dialogList.map(r=>H(U5,ou(r,["destroy","style"],{internalStyle:r.style,to:this.to,ref:o=>{o===null?delete this.dialogInstRefs[`n-dialog-${r.key}`]:this.dialogInstRefs[`n-dialog-${r.key}`]=o},internalKey:r.key,onInternalAfterLeave:this.handleAfterLeave}))),(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e)])}});function l1(){const e=Me(n1,null);return e===null&&vi("use-dialog","No outer founded."),e}const c1=e=>{const{textColor1:t,dividerColor:r,fontWeightStrong:o}=e;return{textColor:t,color:r,fontWeight:o}},q5={name:"Divider",common:le,self:c1},G5=q5,K5={name:"Divider",common:se,self:c1},Z5=K5,u1=e=>{const{modalColor:t,textColor1:r,textColor2:o,boxShadow3:n,lineHeight:i,fontWeightStrong:a,dividerColor:s,closeColorHover:l,closeColorPressed:c,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,borderRadius:p,primaryColorHover:h}=e;return{bodyPadding:"16px 24px",headerPadding:"16px 24px",footerPadding:"16px 24px",color:t,textColor:o,titleTextColor:r,titleFontSize:"18px",titleFontWeight:a,boxShadow:n,lineHeight:i,headerBorderBottom:`1px solid ${s}`,footerBorderTop:`1px solid ${s}`,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,closeSize:"22px",closeIconSize:"18px",closeColorHover:l,closeColorPressed:c,closeBorderRadius:p,resizableTriggerColorHover:h}},X5={name:"Drawer",common:le,peers:{Scrollbar:$t},self:u1},Y5=X5,Q5={name:"Drawer",common:se,peers:{Scrollbar:Mt},self:u1},J5=Q5,d1={actionMargin:"0 0 0 20px",actionMarginRtl:"0 20px 0 0"},e6={name:"DynamicInput",common:se,peers:{Input:Xt,Button:Dt},self(){return d1}},t6=e6,r6=()=>d1,o6={name:"DynamicInput",common:le,peers:{Input:Yt,Button:It},self:r6},n6=o6,f1={gapSmall:"4px 8px",gapMedium:"8px 12px",gapLarge:"12px 16px"},i6={name:"Space",self(){return f1}},h1=i6,a6=()=>f1,s6={name:"Space",self:a6},p1=s6,l6={name:"DynamicTags",common:se,peers:{Input:Xt,Button:Dt,Tag:ig,Space:h1},self(){return{inputWidth:"64px"}}},c6=l6,u6={name:"DynamicTags",common:le,peers:{Input:Yt,Button:It,Tag:ag,Space:p1},self(){return{inputWidth:"64px"}}},d6=u6,f6={name:"Element",common:se},h6=f6,p6={name:"Element",common:le},m6=p6,g6={feedbackPadding:"4px 0 0 2px",feedbackHeightSmall:"24px",feedbackHeightMedium:"24px",feedbackHeightLarge:"26px",feedbackFontSizeSmall:"13px",feedbackFontSizeMedium:"14px",feedbackFontSizeLarge:"14px",labelFontSizeLeftSmall:"14px",labelFontSizeLeftMedium:"14px",labelFontSizeLeftLarge:"15px",labelFontSizeTopSmall:"13px",labelFontSizeTopMedium:"14px",labelFontSizeTopLarge:"14px",labelHeightSmall:"24px",labelHeightMedium:"26px",labelHeightLarge:"28px",labelPaddingVertical:"0 0 6px 2px",labelPaddingHorizontal:"0 12px 0 0",labelTextAlignVertical:"left",labelTextAlignHorizontal:"right",labelFontWeight:"400"},m1=e=>{const{heightSmall:t,heightMedium:r,heightLarge:o,textColor1:n,errorColor:i,warningColor:a,lineHeight:s,textColor3:l}=e;return Object.assign(Object.assign({},g6),{blankHeightSmall:t,blankHeightMedium:r,blankHeightLarge:o,lineHeight:s,labelTextColor:n,asteriskColor:i,feedbackTextColorError:i,feedbackTextColorWarning:a,feedbackTextColor:l})},x6={name:"Form",common:le,self:m1},v6=x6,b6={name:"Form",common:se,self:m1},C6=b6,y6={name:"GradientText",common:se,self(e){const{primaryColor:t,successColor:r,warningColor:o,errorColor:n,infoColor:i,primaryColorSuppl:a,successColorSuppl:s,warningColorSuppl:l,errorColorSuppl:c,infoColorSuppl:u,fontWeightStrong:d}=e;return{fontWeight:d,rotate:"252deg",colorStartPrimary:t,colorEndPrimary:a,colorStartInfo:i,colorEndInfo:u,colorStartWarning:o,colorEndWarning:l,colorStartError:n,colorEndError:c,colorStartSuccess:r,colorEndSuccess:s}}},S6=y6,w6=e=>{const{primaryColor:t,successColor:r,warningColor:o,errorColor:n,infoColor:i,fontWeightStrong:a}=e;return{fontWeight:a,rotate:"252deg",colorStartPrimary:G(t,{alpha:.6}),colorEndPrimary:t,colorStartInfo:G(i,{alpha:.6}),colorEndInfo:i,colorStartWarning:G(o,{alpha:.6}),colorEndWarning:o,colorStartError:G(n,{alpha:.6}),colorEndError:n,colorStartSuccess:G(r,{alpha:.6}),colorEndSuccess:r}},_6={name:"GradientText",common:le,self:w6},T6=_6,g1=e=>{const{primaryColor:t,baseColor:r}=e;return{color:t,iconColor:r}},E6={name:"IconWrapper",common:le,self:g1},P6=E6,k6={name:"IconWrapper",common:se,self:g1},L6=k6;function $6(){return{toolbarIconColor:"rgba(255, 255, 255, .9)",toolbarColor:"rgba(0, 0, 0, .35)",toolbarBoxShadow:"none",toolbarBorderRadius:"24px"}}const I6={name:"Image",common:le,peers:{Tooltip:Os},self:$6},R6={closeMargin:"16px 12px",closeSize:"20px",closeIconSize:"16px",width:"365px",padding:"16px",titleFontSize:"16px",metaFontSize:"12px",descriptionFontSize:"12px"},x1=e=>{const{textColor2:t,successColor:r,infoColor:o,warningColor:n,errorColor:i,popoverColor:a,closeIconColor:s,closeIconColorHover:l,closeIconColorPressed:c,closeColorHover:u,closeColorPressed:d,textColor1:f,textColor3:p,borderRadius:h,fontWeightStrong:m,boxShadow2:v,lineHeight:g,fontSize:x}=e;return Object.assign(Object.assign({},R6),{borderRadius:h,lineHeight:g,fontSize:x,headerFontWeight:m,iconColor:t,iconColorSuccess:r,iconColorInfo:o,iconColorWarning:n,iconColorError:i,color:a,textColor:t,closeIconColor:s,closeIconColorHover:l,closeIconColorPressed:c,closeBorderRadius:h,closeColorHover:u,closeColorPressed:d,headerTextColor:f,descriptionTextColor:p,actionTextColor:t,boxShadow:v})},A6={name:"Notification",common:le,peers:{Scrollbar:$t},self:x1},v1=A6,O6={name:"Notification",common:se,peers:{Scrollbar:Mt},self:x1},B6=O6,H6={margin:"0 0 8px 0",padding:"10px 20px",maxWidth:"720px",minWidth:"420px",iconMargin:"0 10px 0 0",closeMargin:"0 0 0 10px",closeSize:"20px",closeIconSize:"16px",iconSize:"20px",fontSize:"14px"},b1=e=>{const{textColor2:t,closeIconColor:r,closeIconColorHover:o,closeIconColorPressed:n,infoColor:i,successColor:a,errorColor:s,warningColor:l,popoverColor:c,boxShadow2:u,primaryColor:d,lineHeight:f,borderRadius:p,closeColorHover:h,closeColorPressed:m}=e;return Object.assign(Object.assign({},H6),{closeBorderRadius:p,textColor:t,textColorInfo:t,textColorSuccess:t,textColorError:t,textColorWarning:t,textColorLoading:t,color:c,colorInfo:c,colorSuccess:c,colorError:c,colorWarning:c,colorLoading:c,boxShadow:u,boxShadowInfo:u,boxShadowSuccess:u,boxShadowError:u,boxShadowWarning:u,boxShadowLoading:u,iconColor:t,iconColorInfo:i,iconColorSuccess:a,iconColorWarning:l,iconColorError:s,iconColorLoading:d,closeColorHover:h,closeColorPressed:m,closeIconColor:r,closeIconColorHover:o,closeIconColorPressed:n,closeColorHoverInfo:h,closeColorPressedInfo:m,closeIconColorInfo:r,closeIconColorHoverInfo:o,closeIconColorPressedInfo:n,closeColorHoverSuccess:h,closeColorPressedSuccess:m,closeIconColorSuccess:r,closeIconColorHoverSuccess:o,closeIconColorPressedSuccess:n,closeColorHoverError:h,closeColorPressedError:m,closeIconColorError:r,closeIconColorHoverError:o,closeIconColorPressedError:n,closeColorHoverWarning:h,closeColorPressedWarning:m,closeIconColorWarning:r,closeIconColorHoverWarning:o,closeIconColorPressedWarning:n,closeColorHoverLoading:h,closeColorPressedLoading:m,closeIconColorLoading:r,closeIconColorHoverLoading:o,closeIconColorPressedLoading:n,loadingColor:d,lineHeight:f,borderRadius:p})},M6={name:"Message",common:le,self:b1},C1=M6,D6={name:"Message",common:se,self:b1},F6=D6,z6={name:"ButtonGroup",common:se},N6=z6,W6={name:"ButtonGroup",common:le},j6=W6,U6={name:"InputNumber",common:se,peers:{Button:Dt,Input:Xt},self(e){const{textColorDisabled:t}=e;return{iconColorDisabled:t}}},V6=U6,q6=e=>{const{textColorDisabled:t}=e;return{iconColorDisabled:t}},G6={name:"InputNumber",common:le,peers:{Button:It,Input:Yt},self:q6},K6=G6,Z6={name:"Layout",common:se,peers:{Scrollbar:Mt},self(e){const{textColor2:t,bodyColor:r,popoverColor:o,cardColor:n,dividerColor:i,scrollbarColor:a,scrollbarColorHover:s}=e;return{textColor:t,textColorInverted:t,color:r,colorEmbedded:r,headerColor:n,headerColorInverted:n,footerColor:n,footerColorInverted:n,headerBorderColor:i,headerBorderColorInverted:i,footerBorderColor:i,footerBorderColorInverted:i,siderBorderColor:i,siderBorderColorInverted:i,siderColor:n,siderColorInverted:n,siderToggleButtonBorder:"1px solid transparent",siderToggleButtonColor:o,siderToggleButtonIconColor:t,siderToggleButtonIconColorInverted:t,siderToggleBarColor:me(r,a),siderToggleBarColorHover:me(r,s),__invertScrollbar:"false"}}},X6=Z6,Y6=e=>{const{baseColor:t,textColor2:r,bodyColor:o,cardColor:n,dividerColor:i,actionColor:a,scrollbarColor:s,scrollbarColorHover:l,invertedColor:c}=e;return{textColor:r,textColorInverted:"#FFF",color:o,colorEmbedded:a,headerColor:n,headerColorInverted:c,footerColor:a,footerColorInverted:c,headerBorderColor:i,headerBorderColorInverted:c,footerBorderColor:i,footerBorderColorInverted:c,siderBorderColor:i,siderBorderColorInverted:c,siderColor:n,siderColorInverted:c,siderToggleButtonBorder:`1px solid ${i}`,siderToggleButtonColor:t,siderToggleButtonIconColor:r,siderToggleButtonIconColorInverted:r,siderToggleBarColor:me(o,s),siderToggleBarColorHover:me(o,l),__invertScrollbar:"true"}},Q6={name:"Layout",common:le,peers:{Scrollbar:$t},self:Y6},J6=Q6,y1=e=>{const{textColor2:t,cardColor:r,modalColor:o,popoverColor:n,dividerColor:i,borderRadius:a,fontSize:s,hoverColor:l}=e;return{textColor:t,color:r,colorHover:l,colorModal:o,colorHoverModal:me(o,l),colorPopover:n,colorHoverPopover:me(n,l),borderColor:i,borderColorModal:me(o,i),borderColorPopover:me(n,i),borderRadius:a,fontSize:s}},eT={name:"List",common:le,self:y1},tT=eT,rT={name:"List",common:se,self:y1},oT=rT,nT={name:"LoadingBar",common:se,self(e){const{primaryColor:t}=e;return{colorError:"red",colorLoading:t,height:"2px"}}},iT=nT,aT=e=>{const{primaryColor:t,errorColor:r}=e;return{colorError:r,colorLoading:t,height:"2px"}},sT={name:"LoadingBar",common:le,self:aT},S1=sT,lT={name:"Log",common:se,peers:{Scrollbar:Mt,Code:Eg},self(e){const{textColor2:t,inputColor:r,fontSize:o,primaryColor:n}=e;return{loaderFontSize:o,loaderTextColor:t,loaderColor:r,loaderBorder:"1px solid #0000",loadingColor:n}}},cT=lT,uT=e=>{const{textColor2:t,modalColor:r,borderColor:o,fontSize:n,primaryColor:i}=e;return{loaderFontSize:n,loaderTextColor:t,loaderColor:r,loaderBorder:`1px solid ${o}`,loadingColor:i}},dT={name:"Log",common:le,peers:{Scrollbar:$t,Code:Pg},self:uT},fT=dT,hT={name:"Mention",common:se,peers:{InternalSelectMenu:_i,Input:Xt},self(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}},pT=hT,mT=e=>{const{boxShadow2:t}=e;return{menuBoxShadow:t}},gT={name:"Mention",common:le,peers:{InternalSelectMenu:wi,Input:Yt},self:mT},xT=gT;function vT(e,t,r,o){return{itemColorHoverInverted:"#0000",itemColorActiveInverted:t,itemColorActiveHoverInverted:t,itemColorActiveCollapsedInverted:t,itemTextColorInverted:e,itemTextColorHoverInverted:r,itemTextColorChildActiveInverted:r,itemTextColorChildActiveHoverInverted:r,itemTextColorActiveInverted:r,itemTextColorActiveHoverInverted:r,itemTextColorHorizontalInverted:e,itemTextColorHoverHorizontalInverted:r,itemTextColorChildActiveHorizontalInverted:r,itemTextColorChildActiveHoverHorizontalInverted:r,itemTextColorActiveHorizontalInverted:r,itemTextColorActiveHoverHorizontalInverted:r,itemIconColorInverted:e,itemIconColorHoverInverted:r,itemIconColorActiveInverted:r,itemIconColorActiveHoverInverted:r,itemIconColorChildActiveInverted:r,itemIconColorChildActiveHoverInverted:r,itemIconColorCollapsedInverted:e,itemIconColorHorizontalInverted:e,itemIconColorHoverHorizontalInverted:r,itemIconColorActiveHorizontalInverted:r,itemIconColorActiveHoverHorizontalInverted:r,itemIconColorChildActiveHorizontalInverted:r,itemIconColorChildActiveHoverHorizontalInverted:r,arrowColorInverted:e,arrowColorHoverInverted:r,arrowColorActiveInverted:r,arrowColorActiveHoverInverted:r,arrowColorChildActiveInverted:r,arrowColorChildActiveHoverInverted:r,groupTextColorInverted:o}}const w1=e=>{const{borderRadius:t,textColor3:r,primaryColor:o,textColor2:n,textColor1:i,fontSize:a,dividerColor:s,hoverColor:l,primaryColorHover:c}=e;return Object.assign({borderRadius:t,color:"#0000",groupTextColor:r,itemColorHover:l,itemColorActive:G(o,{alpha:.1}),itemColorActiveHover:G(o,{alpha:.1}),itemColorActiveCollapsed:G(o,{alpha:.1}),itemTextColor:n,itemTextColorHover:n,itemTextColorActive:o,itemTextColorActiveHover:o,itemTextColorChildActive:o,itemTextColorChildActiveHover:o,itemTextColorHorizontal:n,itemTextColorHoverHorizontal:c,itemTextColorActiveHorizontal:o,itemTextColorActiveHoverHorizontal:o,itemTextColorChildActiveHorizontal:o,itemTextColorChildActiveHoverHorizontal:o,itemIconColor:i,itemIconColorHover:i,itemIconColorActive:o,itemIconColorActiveHover:o,itemIconColorChildActive:o,itemIconColorChildActiveHover:o,itemIconColorCollapsed:i,itemIconColorHorizontal:i,itemIconColorHoverHorizontal:c,itemIconColorActiveHorizontal:o,itemIconColorActiveHoverHorizontal:o,itemIconColorChildActiveHorizontal:o,itemIconColorChildActiveHoverHorizontal:o,itemHeight:"42px",arrowColor:n,arrowColorHover:n,arrowColorActive:o,arrowColorActiveHover:o,arrowColorChildActive:o,arrowColorChildActiveHover:o,colorInverted:"#0000",borderColorHorizontal:"#0000",fontSize:a,dividerColor:s},vT("#BBB",o,"#FFF","#AAA"))},bT={name:"Menu",common:le,peers:{Tooltip:Os,Dropdown:yu},self:w1},CT=bT,yT={name:"Menu",common:se,peers:{Tooltip:As,Dropdown:Su},self(e){const{primaryColor:t,primaryColorSuppl:r}=e,o=w1(e);return o.itemColorActive=G(t,{alpha:.15}),o.itemColorActiveHover=G(t,{alpha:.15}),o.itemColorActiveCollapsed=G(t,{alpha:.15}),o.itemColorActiveInverted=r,o.itemColorActiveHoverInverted=r,o.itemColorActiveCollapsedInverted=r,o}},ST=yT,wT={titleFontSize:"18px",backSize:"22px"};function _1(e){const{textColor1:t,textColor2:r,textColor3:o,fontSize:n,fontWeightStrong:i,primaryColorHover:a,primaryColorPressed:s}=e;return Object.assign(Object.assign({},wT),{titleFontWeight:i,fontSize:n,titleTextColor:t,backColor:r,backColorHover:a,backColorPressed:s,subtitleTextColor:o})}const _T={name:"PageHeader",common:le,self:_1},TT={name:"PageHeader",common:se,self:_1},ET={iconSize:"22px"},T1=e=>{const{fontSize:t,warningColor:r}=e;return Object.assign(Object.assign({},ET),{fontSize:t,iconColor:r})},PT={name:"Popconfirm",common:le,peers:{Button:It,Popover:Ho},self:T1},kT=PT,LT={name:"Popconfirm",common:se,peers:{Button:Dt,Popover:Mo},self:T1},$T=LT,E1=e=>{const{infoColor:t,successColor:r,warningColor:o,errorColor:n,textColor2:i,progressRailColor:a,fontSize:s,fontWeight:l}=e;return{fontSize:s,fontSizeCircle:"28px",fontWeightCircle:l,railColor:a,railHeight:"8px",iconSizeCircle:"36px",iconSizeLine:"18px",iconColor:t,iconColorInfo:t,iconColorSuccess:r,iconColorWarning:o,iconColorError:n,textColorCircle:i,textColorLineInner:"rgb(255, 255, 255)",textColorLineOuter:i,fillColor:t,fillColorInfo:t,fillColorSuccess:r,fillColorWarning:o,fillColorError:n,lineBgProcessing:"linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)"}},IT={name:"Progress",common:le,self:E1},P1=IT,RT={name:"Progress",common:se,self(e){const t=E1(e);return t.textColorLineInner="rgb(0, 0, 0)",t.lineBgProcessing="linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)",t}},k1=RT,AT={name:"Rate",common:se,self(e){const{railColor:t}=e;return{itemColor:t,itemColorActive:"#CCAA33",itemSize:"20px",sizeSmall:"16px",sizeMedium:"20px",sizeLarge:"24px"}}},OT=AT,BT=e=>{const{railColor:t}=e;return{itemColor:t,itemColorActive:"#FFCC33",sizeSmall:"16px",sizeMedium:"20px",sizeLarge:"24px"}},HT={name:"Rate",common:le,self:BT},MT=HT,DT={titleFontSizeSmall:"26px",titleFontSizeMedium:"32px",titleFontSizeLarge:"40px",titleFontSizeHuge:"48px",fontSizeSmall:"14px",fontSizeMedium:"14px",fontSizeLarge:"15px",fontSizeHuge:"16px",iconSizeSmall:"64px",iconSizeMedium:"80px",iconSizeLarge:"100px",iconSizeHuge:"125px",iconColor418:void 0,iconColor404:void 0,iconColor403:void 0,iconColor500:void 0},L1=e=>{const{textColor2:t,textColor1:r,errorColor:o,successColor:n,infoColor:i,warningColor:a,lineHeight:s,fontWeightStrong:l}=e;return Object.assign(Object.assign({},DT),{lineHeight:s,titleFontWeight:l,titleTextColor:r,textColor:t,iconColorError:o,iconColorSuccess:n,iconColorInfo:i,iconColorWarning:a})},FT={name:"Result",common:le,self:L1},zT=FT,NT={name:"Result",common:se,self:L1},WT=NT,$1={railHeight:"4px",railWidthVertical:"4px",handleSize:"18px",dotHeight:"8px",dotWidth:"8px",dotBorderRadius:"4px"},jT={name:"Slider",common:se,self(e){const t="0 2px 8px 0 rgba(0, 0, 0, 0.12)",{railColor:r,modalColor:o,primaryColorSuppl:n,popoverColor:i,textColor2:a,cardColor:s,borderRadius:l,fontSize:c,opacityDisabled:u}=e;return Object.assign(Object.assign({},$1),{fontSize:c,markFontSize:c,railColor:r,railColorHover:r,fillColor:n,fillColorHover:n,opacityDisabled:u,handleColor:"#FFF",dotColor:s,dotColorModal:o,dotColorPopover:i,handleBoxShadow:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowHover:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowActive:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",handleBoxShadowFocus:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",indicatorColor:i,indicatorBoxShadow:t,indicatorTextColor:a,indicatorBorderRadius:l,dotBorder:`2px solid ${r}`,dotBorderActive:`2px solid ${n}`,dotBoxShadow:""})}},UT=jT,VT=e=>{const t="rgba(0, 0, 0, .85)",r="0 2px 8px 0 rgba(0, 0, 0, 0.12)",{railColor:o,primaryColor:n,baseColor:i,cardColor:a,modalColor:s,popoverColor:l,borderRadius:c,fontSize:u,opacityDisabled:d}=e;return Object.assign(Object.assign({},$1),{fontSize:u,markFontSize:u,railColor:o,railColorHover:o,fillColor:n,fillColorHover:n,opacityDisabled:d,handleColor:"#FFF",dotColor:a,dotColorModal:s,dotColorPopover:l,handleBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowHover:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowActive:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",handleBoxShadowFocus:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",indicatorColor:t,indicatorBoxShadow:r,indicatorTextColor:i,indicatorBorderRadius:c,dotBorder:`2px solid ${o}`,dotBorderActive:`2px solid ${n}`,dotBoxShadow:""})},qT={name:"Slider",common:le,self:VT},GT=qT,I1=e=>{const{opacityDisabled:t,heightTiny:r,heightSmall:o,heightMedium:n,heightLarge:i,heightHuge:a,primaryColor:s,fontSize:l}=e;return{fontSize:l,textColor:s,sizeTiny:r,sizeSmall:o,sizeMedium:n,sizeLarge:i,sizeHuge:a,color:s,opacitySpinning:t}},KT={name:"Spin",common:le,self:I1},ZT=KT,XT={name:"Spin",common:se,self:I1},YT=XT,R1=e=>{const{textColor2:t,textColor3:r,fontSize:o,fontWeight:n}=e;return{labelFontSize:o,labelFontWeight:n,valueFontWeight:n,valueFontSize:"24px",labelTextColor:r,valuePrefixTextColor:t,valueSuffixTextColor:t,valueTextColor:t}},QT={name:"Statistic",common:le,self:R1},JT=QT,eE={name:"Statistic",common:se,self:R1},tE=eE,rE={stepHeaderFontSizeSmall:"14px",stepHeaderFontSizeMedium:"16px",indicatorIndexFontSizeSmall:"14px",indicatorIndexFontSizeMedium:"16px",indicatorSizeSmall:"22px",indicatorSizeMedium:"28px",indicatorIconSizeSmall:"14px",indicatorIconSizeMedium:"18px"},A1=e=>{const{fontWeightStrong:t,baseColor:r,textColorDisabled:o,primaryColor:n,errorColor:i,textColor1:a,textColor2:s}=e;return Object.assign(Object.assign({},rE),{stepHeaderFontWeight:t,indicatorTextColorProcess:r,indicatorTextColorWait:o,indicatorTextColorFinish:n,indicatorTextColorError:i,indicatorBorderColorProcess:n,indicatorBorderColorWait:o,indicatorBorderColorFinish:n,indicatorBorderColorError:i,indicatorColorProcess:n,indicatorColorWait:"#0000",indicatorColorFinish:"#0000",indicatorColorError:"#0000",splitorColorProcess:o,splitorColorWait:o,splitorColorFinish:n,splitorColorError:o,headerTextColorProcess:a,headerTextColorWait:o,headerTextColorFinish:o,headerTextColorError:i,descriptionTextColorProcess:s,descriptionTextColorWait:o,descriptionTextColorFinish:o,descriptionTextColorError:i})},oE={name:"Steps",common:le,self:A1},nE=oE,iE={name:"Steps",common:se,self:A1},aE=iE,O1={buttonHeightSmall:"14px",buttonHeightMedium:"18px",buttonHeightLarge:"22px",buttonWidthSmall:"14px",buttonWidthMedium:"18px",buttonWidthLarge:"22px",buttonWidthPressedSmall:"20px",buttonWidthPressedMedium:"24px",buttonWidthPressedLarge:"28px",railHeightSmall:"18px",railHeightMedium:"22px",railHeightLarge:"26px",railWidthSmall:"32px",railWidthMedium:"40px",railWidthLarge:"48px"},sE={name:"Switch",common:se,self(e){const{primaryColorSuppl:t,opacityDisabled:r,borderRadius:o,primaryColor:n,textColor2:i,baseColor:a}=e,s="rgba(255, 255, 255, .20)";return Object.assign(Object.assign({},O1),{iconColor:a,textColor:i,loadingColor:t,opacityDisabled:r,railColor:s,railColorActive:t,buttonBoxShadow:"0px 2px 4px 0 rgba(0, 0, 0, 0.4)",buttonColor:"#FFF",railBorderRadiusSmall:o,railBorderRadiusMedium:o,railBorderRadiusLarge:o,buttonBorderRadiusSmall:o,buttonBorderRadiusMedium:o,buttonBorderRadiusLarge:o,boxShadowFocus:`0 0 8px 0 ${G(n,{alpha:.3})}`})}},lE=sE,cE=e=>{const{primaryColor:t,opacityDisabled:r,borderRadius:o,textColor3:n}=e,i="rgba(0, 0, 0, .14)";return Object.assign(Object.assign({},O1),{iconColor:n,textColor:"white",loadingColor:t,opacityDisabled:r,railColor:i,railColorActive:t,buttonBoxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)",buttonColor:"#FFF",railBorderRadiusSmall:o,railBorderRadiusMedium:o,railBorderRadiusLarge:o,buttonBorderRadiusSmall:o,buttonBorderRadiusMedium:o,buttonBorderRadiusLarge:o,boxShadowFocus:`0 0 0 2px ${G(t,{alpha:.2})}`})},uE={name:"Switch",common:le,self:cE},dE=uE,fE={thPaddingSmall:"6px",thPaddingMedium:"12px",thPaddingLarge:"12px",tdPaddingSmall:"6px",tdPaddingMedium:"12px",tdPaddingLarge:"12px"},B1=e=>{const{dividerColor:t,cardColor:r,modalColor:o,popoverColor:n,tableHeaderColor:i,tableColorStriped:a,textColor1:s,textColor2:l,borderRadius:c,fontWeightStrong:u,lineHeight:d,fontSizeSmall:f,fontSizeMedium:p,fontSizeLarge:h}=e;return Object.assign(Object.assign({},fE),{fontSizeSmall:f,fontSizeMedium:p,fontSizeLarge:h,lineHeight:d,borderRadius:c,borderColor:me(r,t),borderColorModal:me(o,t),borderColorPopover:me(n,t),tdColor:r,tdColorModal:o,tdColorPopover:n,tdColorStriped:me(r,a),tdColorStripedModal:me(o,a),tdColorStripedPopover:me(n,a),thColor:me(r,i),thColorModal:me(o,i),thColorPopover:me(n,i),thTextColor:s,tdTextColor:l,thFontWeight:u})},hE={name:"Table",common:le,self:B1},pE=hE,mE={name:"Table",common:se,self:B1},gE=mE,xE={tabFontSizeSmall:"14px",tabFontSizeMedium:"14px",tabFontSizeLarge:"16px",tabGapSmallLine:"36px",tabGapMediumLine:"36px",tabGapLargeLine:"36px",tabGapSmallLineVertical:"8px",tabGapMediumLineVertical:"8px",tabGapLargeLineVertical:"8px",tabPaddingSmallLine:"6px 0",tabPaddingMediumLine:"10px 0",tabPaddingLargeLine:"14px 0",tabPaddingVerticalSmallLine:"6px 12px",tabPaddingVerticalMediumLine:"8px 16px",tabPaddingVerticalLargeLine:"10px 20px",tabGapSmallBar:"36px",tabGapMediumBar:"36px",tabGapLargeBar:"36px",tabGapSmallBarVertical:"8px",tabGapMediumBarVertical:"8px",tabGapLargeBarVertical:"8px",tabPaddingSmallBar:"4px 0",tabPaddingMediumBar:"6px 0",tabPaddingLargeBar:"10px 0",tabPaddingVerticalSmallBar:"6px 12px",tabPaddingVerticalMediumBar:"8px 16px",tabPaddingVerticalLargeBar:"10px 20px",tabGapSmallCard:"4px",tabGapMediumCard:"4px",tabGapLargeCard:"4px",tabGapSmallCardVertical:"4px",tabGapMediumCardVertical:"4px",tabGapLargeCardVertical:"4px",tabPaddingSmallCard:"8px 16px",tabPaddingMediumCard:"10px 20px",tabPaddingLargeCard:"12px 24px",tabPaddingSmallSegment:"4px 0",tabPaddingMediumSegment:"6px 0",tabPaddingLargeSegment:"8px 0",tabPaddingVerticalLargeSegment:"0 8px",tabPaddingVerticalSmallCard:"8px 12px",tabPaddingVerticalMediumCard:"10px 16px",tabPaddingVerticalLargeCard:"12px 20px",tabPaddingVerticalSmallSegment:"0 4px",tabPaddingVerticalMediumSegment:"0 6px",tabGapSmallSegment:"0",tabGapMediumSegment:"0",tabGapLargeSegment:"0",tabGapSmallSegmentVertical:"0",tabGapMediumSegmentVertical:"0",tabGapLargeSegmentVertical:"0",panePaddingSmall:"8px 0 0 0",panePaddingMedium:"12px 0 0 0",panePaddingLarge:"16px 0 0 0",closeSize:"18px",closeIconSize:"14px"},H1=e=>{const{textColor2:t,primaryColor:r,textColorDisabled:o,closeIconColor:n,closeIconColorHover:i,closeIconColorPressed:a,closeColorHover:s,closeColorPressed:l,tabColor:c,baseColor:u,dividerColor:d,fontWeight:f,textColor1:p,borderRadius:h,fontSize:m,fontWeightStrong:v}=e;return Object.assign(Object.assign({},xE),{colorSegment:c,tabFontSizeCard:m,tabTextColorLine:p,tabTextColorActiveLine:r,tabTextColorHoverLine:r,tabTextColorDisabledLine:o,tabTextColorSegment:p,tabTextColorActiveSegment:t,tabTextColorHoverSegment:t,tabTextColorDisabledSegment:o,tabTextColorBar:p,tabTextColorActiveBar:r,tabTextColorHoverBar:r,tabTextColorDisabledBar:o,tabTextColorCard:p,tabTextColorHoverCard:p,tabTextColorActiveCard:r,tabTextColorDisabledCard:o,barColor:r,closeIconColor:n,closeIconColorHover:i,closeIconColorPressed:a,closeColorHover:s,closeColorPressed:l,closeBorderRadius:h,tabColor:c,tabColorSegment:u,tabBorderColor:d,tabFontWeightActive:f,tabFontWeight:f,tabBorderRadius:h,paneTextColor:t,fontWeightStrong:v})},vE={name:"Tabs",common:le,self:H1},bE=vE,CE={name:"Tabs",common:se,self(e){const t=H1(e),{inputColor:r}=e;return t.colorSegment=r,t.tabColorSegment=r,t}},yE=CE,M1=e=>{const{textColor1:t,textColor2:r,fontWeightStrong:o,fontSize:n}=e;return{fontSize:n,titleTextColor:t,textColor:r,titleFontWeight:o}},SE={name:"Thing",common:le,self:M1},wE=SE,_E={name:"Thing",common:se,self:M1},TE=_E,D1={titleMarginMedium:"0 0 6px 0",titleMarginLarge:"-2px 0 6px 0",titleFontSizeMedium:"14px",titleFontSizeLarge:"16px",iconSizeMedium:"14px",iconSizeLarge:"14px"},EE={name:"Timeline",common:se,self(e){const{textColor3:t,infoColorSuppl:r,errorColorSuppl:o,successColorSuppl:n,warningColorSuppl:i,textColor1:a,textColor2:s,railColor:l,fontWeightStrong:c,fontSize:u}=e;return Object.assign(Object.assign({},D1),{contentFontSize:u,titleFontWeight:c,circleBorder:`2px solid ${t}`,circleBorderInfo:`2px solid ${r}`,circleBorderError:`2px solid ${o}`,circleBorderSuccess:`2px solid ${n}`,circleBorderWarning:`2px solid ${i}`,iconColor:t,iconColorInfo:r,iconColorError:o,iconColorSuccess:n,iconColorWarning:i,titleTextColor:a,contentTextColor:s,metaTextColor:t,lineColor:l})}},PE=EE,kE=e=>{const{textColor3:t,infoColor:r,errorColor:o,successColor:n,warningColor:i,textColor1:a,textColor2:s,railColor:l,fontWeightStrong:c,fontSize:u}=e;return Object.assign(Object.assign({},D1),{contentFontSize:u,titleFontWeight:c,circleBorder:`2px solid ${t}`,circleBorderInfo:`2px solid ${r}`,circleBorderError:`2px solid ${o}`,circleBorderSuccess:`2px solid ${n}`,circleBorderWarning:`2px solid ${i}`,iconColor:t,iconColorInfo:r,iconColorError:o,iconColorSuccess:n,iconColorWarning:i,titleTextColor:a,contentTextColor:s,metaTextColor:t,lineColor:l})},LE={name:"Timeline",common:le,self:kE},$E=LE,F1={extraFontSizeSmall:"12px",extraFontSizeMedium:"12px",extraFontSizeLarge:"14px",titleFontSizeSmall:"14px",titleFontSizeMedium:"16px",titleFontSizeLarge:"16px",closeSize:"20px",closeIconSize:"16px",headerHeightSmall:"44px",headerHeightMedium:"44px",headerHeightLarge:"50px"},IE={name:"Transfer",common:se,peers:{Checkbox:xn,Scrollbar:Mt,Input:Xt,Empty:Bo,Button:Dt},self(e){const{fontWeight:t,fontSizeLarge:r,fontSizeMedium:o,fontSizeSmall:n,heightLarge:i,heightMedium:a,borderRadius:s,inputColor:l,tableHeaderColor:c,textColor1:u,textColorDisabled:d,textColor2:f,textColor3:p,hoverColor:h,closeColorHover:m,closeColorPressed:v,closeIconColor:g,closeIconColorHover:x,closeIconColorPressed:C,dividerColor:b}=e;return Object.assign(Object.assign({},F1),{itemHeightSmall:a,itemHeightMedium:a,itemHeightLarge:i,fontSizeSmall:n,fontSizeMedium:o,fontSizeLarge:r,borderRadius:s,dividerColor:b,borderColor:"#0000",listColor:l,headerColor:c,titleTextColor:u,titleTextColorDisabled:d,extraTextColor:p,extraTextColorDisabled:d,itemTextColor:f,itemTextColorDisabled:d,itemColorPending:h,titleFontWeight:t,closeColorHover:m,closeColorPressed:v,closeIconColor:g,closeIconColorHover:x,closeIconColorPressed:C})}},RE=IE,AE=e=>{const{fontWeight:t,fontSizeLarge:r,fontSizeMedium:o,fontSizeSmall:n,heightLarge:i,heightMedium:a,borderRadius:s,cardColor:l,tableHeaderColor:c,textColor1:u,textColorDisabled:d,textColor2:f,textColor3:p,borderColor:h,hoverColor:m,closeColorHover:v,closeColorPressed:g,closeIconColor:x,closeIconColorHover:C,closeIconColorPressed:b}=e;return Object.assign(Object.assign({},F1),{itemHeightSmall:a,itemHeightMedium:a,itemHeightLarge:i,fontSizeSmall:n,fontSizeMedium:o,fontSizeLarge:r,borderRadius:s,dividerColor:h,borderColor:h,listColor:l,headerColor:me(l,c),titleTextColor:u,titleTextColorDisabled:d,extraTextColor:p,extraTextColorDisabled:d,itemTextColor:f,itemTextColorDisabled:d,itemColorPending:m,titleFontWeight:t,closeColorHover:v,closeColorPressed:g,closeIconColor:x,closeIconColorHover:C,closeIconColorPressed:b})},OE={name:"Transfer",common:le,peers:{Checkbox:gn,Scrollbar:$t,Input:Yt,Empty:Dr,Button:It},self:AE},BE=OE,z1=e=>{const{borderRadiusSmall:t,dividerColor:r,hoverColor:o,pressedColor:n,primaryColor:i,textColor3:a,textColor2:s,textColorDisabled:l,fontSize:c}=e;return{fontSize:c,lineHeight:"1.5",nodeHeight:"30px",nodeWrapperPadding:"3px 0",nodeBorderRadius:t,nodeColorHover:o,nodeColorPressed:n,nodeColorActive:G(i,{alpha:.1}),arrowColor:a,nodeTextColor:s,nodeTextColorDisabled:l,loadingColor:i,dropMarkColor:i,lineColor:r}},HE={name:"Tree",common:le,peers:{Checkbox:gn,Scrollbar:$t,Empty:Dr},self:z1},N1=HE,ME={name:"Tree",common:se,peers:{Checkbox:xn,Scrollbar:Mt,Empty:Bo},self(e){const{primaryColor:t}=e,r=z1(e);return r.nodeColorActive=G(t,{alpha:.15}),r}},W1=ME,DE={name:"TreeSelect",common:se,peers:{Tree:W1,Empty:Bo,InternalSelection:vu}},FE=DE,zE=e=>{const{popoverColor:t,boxShadow2:r,borderRadius:o,heightMedium:n,dividerColor:i,textColor2:a}=e;return{menuPadding:"4px",menuColor:t,menuBoxShadow:r,menuBorderRadius:o,menuHeight:`calc(${n} * 7.6)`,actionDividerColor:i,actionTextColor:a,actionPadding:"8px 12px"}},NE={name:"TreeSelect",common:le,peers:{Tree:N1,Empty:Dr,InternalSelection:xu},self:zE},WE=NE,jE={headerFontSize1:"30px",headerFontSize2:"22px",headerFontSize3:"18px",headerFontSize4:"16px",headerFontSize5:"16px",headerFontSize6:"16px",headerMargin1:"28px 0 20px 0",headerMargin2:"28px 0 20px 0",headerMargin3:"28px 0 20px 0",headerMargin4:"28px 0 18px 0",headerMargin5:"28px 0 18px 0",headerMargin6:"28px 0 18px 0",headerPrefixWidth1:"16px",headerPrefixWidth2:"16px",headerPrefixWidth3:"12px",headerPrefixWidth4:"12px",headerPrefixWidth5:"12px",headerPrefixWidth6:"12px",headerBarWidth1:"4px",headerBarWidth2:"4px",headerBarWidth3:"3px",headerBarWidth4:"3px",headerBarWidth5:"3px",headerBarWidth6:"3px",pMargin:"16px 0 16px 0",liMargin:".25em 0 0 0",olPadding:"0 0 0 2em",ulPadding:"0 0 0 2em"},j1=e=>{const{primaryColor:t,textColor2:r,borderColor:o,lineHeight:n,fontSize:i,borderRadiusSmall:a,dividerColor:s,fontWeightStrong:l,textColor1:c,textColor3:u,infoColor:d,warningColor:f,errorColor:p,successColor:h,codeColor:m}=e;return Object.assign(Object.assign({},jE),{aTextColor:t,blockquoteTextColor:r,blockquotePrefixColor:o,blockquoteLineHeight:n,blockquoteFontSize:i,codeBorderRadius:a,liTextColor:r,liLineHeight:n,liFontSize:i,hrColor:s,headerFontWeight:l,headerTextColor:c,pTextColor:r,pTextColor1Depth:c,pTextColor2Depth:r,pTextColor3Depth:u,pLineHeight:n,pFontSize:i,headerBarColor:t,headerBarColorPrimary:t,headerBarColorInfo:d,headerBarColorError:p,headerBarColorWarning:f,headerBarColorSuccess:h,textColor:r,textColor1Depth:c,textColor2Depth:r,textColor3Depth:u,textColorPrimary:t,textColorInfo:d,textColorSuccess:h,textColorWarning:f,textColorError:p,codeTextColor:r,codeColor:m,codeBorder:"1px solid #0000"})},UE={name:"Typography",common:le,self:j1},VE=UE,qE={name:"Typography",common:se,self:j1},GE=qE,U1=e=>{const{iconColor:t,primaryColor:r,errorColor:o,textColor2:n,successColor:i,opacityDisabled:a,actionColor:s,borderColor:l,hoverColor:c,lineHeight:u,borderRadius:d,fontSize:f}=e;return{fontSize:f,lineHeight:u,borderRadius:d,draggerColor:s,draggerBorder:`1px dashed ${l}`,draggerBorderHover:`1px dashed ${r}`,itemColorHover:c,itemColorHoverError:G(o,{alpha:.06}),itemTextColor:n,itemTextColorError:o,itemTextColorSuccess:i,itemIconColor:t,itemDisabledOpacity:a,itemBorderImageCardError:`1px solid ${o}`,itemBorderImageCard:`1px solid ${l}`}},KE={name:"Upload",common:le,peers:{Button:It,Progress:P1},self:U1},ZE=KE,XE={name:"Upload",common:se,peers:{Button:Dt,Progress:k1},self(e){const{errorColor:t}=e,r=U1(e);return r.itemColorHoverError=G(t,{alpha:.09}),r}},YE=XE,QE={name:"Watermark",common:se,self(e){const{fontFamily:t}=e;return{fontFamily:t}}},JE=QE,eP={name:"Watermark",common:le,self(e){const{fontFamily:t}=e;return{fontFamily:t}}},tP=eP,rP={name:"Row",common:le},oP=rP,nP={name:"Row",common:se},iP=nP,aP={name:"Image",common:se,peers:{Tooltip:As},self:e=>{const{textColor2:t}=e;return{toolbarIconColor:t,toolbarColor:"rgba(0, 0, 0, .35)",toolbarBoxShadow:"none",toolbarBorderRadius:"24px"}}},V1={extraFontSize:"12px",width:"440px"},sP={name:"Transfer",common:se,peers:{Checkbox:xn,Scrollbar:Mt,Input:Xt,Empty:Bo,Button:Dt},self(e){const{iconColorDisabled:t,iconColor:r,fontWeight:o,fontSizeLarge:n,fontSizeMedium:i,fontSizeSmall:a,heightLarge:s,heightMedium:l,heightSmall:c,borderRadius:u,inputColor:d,tableHeaderColor:f,textColor1:p,textColorDisabled:h,textColor2:m,hoverColor:v}=e;return Object.assign(Object.assign({},V1),{itemHeightSmall:c,itemHeightMedium:l,itemHeightLarge:s,fontSizeSmall:a,fontSizeMedium:i,fontSizeLarge:n,borderRadius:u,borderColor:"#0000",listColor:d,headerColor:f,titleTextColor:p,titleTextColorDisabled:h,extraTextColor:m,filterDividerColor:"#0000",itemTextColor:m,itemTextColorDisabled:h,itemColorPending:v,titleFontWeight:o,iconColor:r,iconColorDisabled:t})}},lP=sP,cP=e=>{const{fontWeight:t,iconColorDisabled:r,iconColor:o,fontSizeLarge:n,fontSizeMedium:i,fontSizeSmall:a,heightLarge:s,heightMedium:l,heightSmall:c,borderRadius:u,cardColor:d,tableHeaderColor:f,textColor1:p,textColorDisabled:h,textColor2:m,borderColor:v,hoverColor:g}=e;return Object.assign(Object.assign({},V1),{itemHeightSmall:c,itemHeightMedium:l,itemHeightLarge:s,fontSizeSmall:a,fontSizeMedium:i,fontSizeLarge:n,borderRadius:u,borderColor:v,listColor:d,headerColor:me(d,f),titleTextColor:p,titleTextColorDisabled:h,extraTextColor:m,filterDividerColor:v,itemTextColor:m,itemTextColorDisabled:h,itemColorPending:g,titleFontWeight:t,iconColor:o,iconColorDisabled:r})},uP={name:"Transfer",common:le,peers:{Checkbox:gn,Scrollbar:$t,Input:Yt,Empty:Dr,Button:It},self:cP},dP=uP,q1="n-loading-bar",G1="n-loading-bar-api",fP=Se("loading-bar-container",` - z-index: 5999; - position: fixed; - top: 0; - left: 0; - right: 0; - height: 2px; -`,[gu({enterDuration:"0.3s",leaveDuration:"0.8s"}),Se("loading-bar",` - width: 100%; - transition: - max-width 4s linear, - background .2s linear; - height: var(--n-height); - `,[Ce("starting",` - background: var(--n-color-loading); - `),Ce("finishing",` - background: var(--n-color-loading); - transition: - max-width .2s linear, - background .2s linear; - `),Ce("error",` - background: var(--n-color-error); - transition: - max-width .2s linear, - background .2s linear; - `)])]);var Ui=globalThis&&globalThis.__awaiter||function(e,t,r,o){function n(i){return i instanceof r?i:new r(function(a){a(i)})}return new(r||(r=Promise))(function(i,a){function s(u){try{c(o.next(u))}catch(d){a(d)}}function l(u){try{c(o.throw(u))}catch(d){a(d)}}function c(u){u.done?i(u.value):n(u.value).then(s,l)}c((o=o.apply(e,t||[])).next())})};function Vi(e,t){return`${t}-loading-bar ${t}-loading-bar--${e}`}const hP=Oe({name:"LoadingBar",props:{containerClass:String,containerStyle:[String,Object]},setup(){const{inlineThemeDisabled:e}=sr(),{props:t,mergedClsPrefixRef:r}=Me(q1),o=de(null),n=de(!1),i=de(!1),a=de(!1),s=de(!1);let l=!1;const c=de(!1),u=ae(()=>{const{loadingBarStyle:w}=t;return w?w[c.value?"error":"loading"]:""});function d(){return Ui(this,void 0,void 0,function*(){n.value=!1,a.value=!1,l=!1,c.value=!1,s.value=!0,yield jt(),s.value=!1})}function f(w=0,T=80,S="starting"){return Ui(this,void 0,void 0,function*(){if(i.value=!0,yield d(),l)return;a.value=!0,yield jt();const E=o.value;E&&(E.style.maxWidth=`${w}%`,E.style.transition="none",E.offsetWidth,E.className=Vi(S,r.value),E.style.transition="",E.style.maxWidth=`${T}%`)})}function p(){return Ui(this,void 0,void 0,function*(){if(l||c.value)return;i.value&&(yield jt()),l=!0;const w=o.value;w&&(w.className=Vi("finishing",r.value),w.style.maxWidth="100%",w.offsetWidth,a.value=!1)})}function h(){if(!(l||c.value))if(!a.value)f(100,100,"error").then(()=>{c.value=!0;const w=o.value;w&&(w.className=Vi("error",r.value),w.offsetWidth,a.value=!1)});else{c.value=!0;const w=o.value;if(!w)return;w.className=Vi("error",r.value),w.style.maxWidth="100%",w.offsetWidth,a.value=!1}}function m(){n.value=!0}function v(){n.value=!1}function g(){return Ui(this,void 0,void 0,function*(){yield d()})}const x=Ct("LoadingBar","-loading-bar",fP,S1,t,r),C=ae(()=>{const{self:{height:w,colorError:T,colorLoading:S}}=x.value;return{"--n-height":w,"--n-color-loading":S,"--n-color-error":T}}),b=e?so("loading-bar",void 0,C,t):void 0;return{mergedClsPrefix:r,loadingBarRef:o,started:i,loading:a,entering:n,transitionDisabled:s,start:f,error:h,finish:p,handleEnter:m,handleAfterEnter:v,handleAfterLeave:g,mergedLoadingBarStyle:u,cssVars:e?void 0:C,themeClass:b==null?void 0:b.themeClass,onRender:b==null?void 0:b.onRender}},render(){if(!this.started)return null;const{mergedClsPrefix:e}=this;return H(br,{name:"fade-in-transition",appear:!0,onEnter:this.handleEnter,onAfterEnter:this.handleAfterEnter,onAfterLeave:this.handleAfterLeave,css:!this.transitionDisabled},{default:()=>{var t;return(t=this.onRender)===null||t===void 0||t.call(this),pa(H("div",{class:[`${e}-loading-bar-container`,this.themeClass,this.containerClass],style:this.containerStyle},H("div",{ref:"loadingBarRef",class:[`${e}-loading-bar`],style:[this.cssVars,this.mergedLoadingBarStyle]})),[[Dl,this.loading||!this.loading&&this.entering]])}})}}),pP=Object.assign(Object.assign({},Ct.props),{to:{type:[String,Object,Boolean],default:void 0},containerClass:String,containerStyle:[String,Object],loadingBarStyle:{type:Object}}),K1=Oe({name:"LoadingBarProvider",props:pP,setup(e){const t=iu(),r=de(null),o={start(){var i;t.value?(i=r.value)===null||i===void 0||i.start():jt(()=>{var a;(a=r.value)===null||a===void 0||a.start()})},error(){var i;t.value?(i=r.value)===null||i===void 0||i.error():jt(()=>{var a;(a=r.value)===null||a===void 0||a.error()})},finish(){var i;t.value?(i=r.value)===null||i===void 0||i.finish():jt(()=>{var a;(a=r.value)===null||a===void 0||a.finish()})}},{mergedClsPrefixRef:n}=sr(e);return dt(G1,o),dt(q1,{props:e,mergedClsPrefixRef:n}),Object.assign(o,{loadingBarRef:r})},render(){var e,t;return H(Je,null,H(vs,{disabled:this.to===!1,to:this.to||"body"},H(hP,{ref:"loadingBarRef",containerStyle:this.containerStyle,containerClass:this.containerClass})),(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))}});function Z1(){const e=Me(G1,null);return e===null&&vi("use-loading-bar","No outer founded."),e}const X1={icon:Function,type:{type:String,default:"info"},content:[String,Number,Function],showIcon:{type:Boolean,default:!0},closable:Boolean,keepAliveOnHover:Boolean,onClose:Function,onMouseenter:Function,onMouseleave:Function},Y1="n-message-api",Q1="n-message-provider",mP=ne([Se("message-wrapper",` - margin: var(--n-margin); - z-index: 0; - transform-origin: top center; - display: flex; - `,[hw({overflow:"visible",originalTransition:"transform .3s var(--n-bezier)",enterToProps:{transform:"scale(1)"},leaveToProps:{transform:"scale(0.85)"}})]),Se("message",` - box-sizing: border-box; - display: flex; - align-items: center; - transition: - color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - opacity .3s var(--n-bezier), - transform .3s var(--n-bezier), - margin-bottom .3s var(--n-bezier); - padding: var(--n-padding); - border-radius: var(--n-border-radius); - flex-wrap: nowrap; - overflow: hidden; - max-width: var(--n-max-width); - color: var(--n-text-color); - background-color: var(--n-color); - box-shadow: var(--n-box-shadow); - `,[he("content",` - display: inline-block; - line-height: var(--n-line-height); - font-size: var(--n-font-size); - `),he("icon",` - position: relative; - margin: var(--n-icon-margin); - height: var(--n-icon-size); - width: var(--n-icon-size); - font-size: var(--n-icon-size); - flex-shrink: 0; - `,[["default","info","success","warning","error","loading"].map(e=>Ce(`${e}-type`,[ne("> *",` - color: var(--n-icon-color-${e}); - transition: color .3s var(--n-bezier); - `)])),ne("> *",` - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - `,[ya()])]),he("close",` - margin: var(--n-close-margin); - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - flex-shrink: 0; - `,[ne("&:hover",` - color: var(--n-close-icon-color-hover); - `),ne("&:active",` - color: var(--n-close-icon-color-pressed); - `)])]),Se("message-container",` - z-index: 6000; - position: fixed; - height: 0; - overflow: visible; - display: flex; - flex-direction: column; - align-items: center; - `,[Ce("top",` - top: 12px; - left: 0; - right: 0; - `),Ce("top-left",` - top: 12px; - left: 12px; - right: 0; - align-items: flex-start; - `),Ce("top-right",` - top: 12px; - left: 0; - right: 12px; - align-items: flex-end; - `),Ce("bottom",` - bottom: 4px; - left: 0; - right: 0; - justify-content: flex-end; - `),Ce("bottom-left",` - bottom: 4px; - left: 12px; - right: 0; - justify-content: flex-end; - align-items: flex-start; - `),Ce("bottom-right",` - bottom: 4px; - left: 0; - right: 12px; - justify-content: flex-end; - align-items: flex-end; - `)])]),gP={info:()=>H(Ca,null),success:()=>H(hu,null),warning:()=>H(pu,null),error:()=>H(fu,null),default:()=>null},xP=Oe({name:"Message",props:Object.assign(Object.assign({},X1),{render:Function}),setup(e){const{inlineThemeDisabled:t,mergedRtlRef:r}=sr(e),{props:o,mergedClsPrefixRef:n}=Me(Q1),i=yi("Message",r,n),a=Ct("Message","-message",mP,C1,o,n),s=ae(()=>{const{type:c}=e,{common:{cubicBezierEaseInOut:u},self:{padding:d,margin:f,maxWidth:p,iconMargin:h,closeMargin:m,closeSize:v,iconSize:g,fontSize:x,lineHeight:C,borderRadius:b,iconColorInfo:w,iconColorSuccess:T,iconColorWarning:S,iconColorError:E,iconColorLoading:I,closeIconSize:P,closeBorderRadius:$,[_e("textColor",c)]:R,[_e("boxShadow",c)]:B,[_e("color",c)]:j,[_e("closeColorHover",c)]:Y,[_e("closeColorPressed",c)]:J,[_e("closeIconColor",c)]:Q,[_e("closeIconColorPressed",c)]:ie,[_e("closeIconColorHover",c)]:ge}}=a.value;return{"--n-bezier":u,"--n-margin":f,"--n-padding":d,"--n-max-width":p,"--n-font-size":x,"--n-icon-margin":h,"--n-icon-size":g,"--n-close-icon-size":P,"--n-close-border-radius":$,"--n-close-size":v,"--n-close-margin":m,"--n-text-color":R,"--n-color":j,"--n-box-shadow":B,"--n-icon-color-info":w,"--n-icon-color-success":T,"--n-icon-color-warning":S,"--n-icon-color-error":E,"--n-icon-color-loading":I,"--n-close-color-hover":Y,"--n-close-color-pressed":J,"--n-close-icon-color":Q,"--n-close-icon-color-pressed":ie,"--n-close-icon-color-hover":ge,"--n-line-height":C,"--n-border-radius":b}}),l=t?so("message",ae(()=>e.type[0]),s,{}):void 0;return{mergedClsPrefix:n,rtlEnabled:i,messageProviderProps:o,handleClose(){var c;(c=e.onClose)===null||c===void 0||c.call(e)},cssVars:t?void 0:s,themeClass:l==null?void 0:l.themeClass,onRender:l==null?void 0:l.onRender,placement:o.placement}},render(){const{render:e,type:t,closable:r,content:o,mergedClsPrefix:n,cssVars:i,themeClass:a,onRender:s,icon:l,handleClose:c,showIcon:u}=this;s==null||s();let d;return H("div",{class:[`${n}-message-wrapper`,a],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:[{alignItems:this.placement.startsWith("top")?"flex-start":"flex-end"},i]},e?e(this.$props):H("div",{class:[`${n}-message ${n}-message--${t}-type`,this.rtlEnabled&&`${n}-message--rtl`]},(d=vP(l,t,n))&&u?H("div",{class:`${n}-message__icon ${n}-message__icon--${t}-type`},H(mu,null,{default:()=>d})):null,H("div",{class:`${n}-message__content`},Nt(o)),r?H(Rs,{clsPrefix:n,class:`${n}-message__close`,onClick:c,absolute:!0}):null))}});function vP(e,t,r){if(typeof e=="function")return e();{const o=t==="loading"?H(Zm,{clsPrefix:r,strokeWidth:24,scale:.85}):gP[t]();return o?H(Is,{clsPrefix:r,key:t},{default:()=>o}):null}}const bP=Oe({name:"MessageEnvironment",props:Object.assign(Object.assign({},X1),{duration:{type:Number,default:3e3},onAfterLeave:Function,onLeave:Function,internalKey:{type:String,required:!0},onInternalAfterLeave:Function,onHide:Function,onAfterHide:Function}),setup(e){let t=null;const r=de(!0);Sr(()=>{o()});function o(){const{duration:u}=e;u&&(t=window.setTimeout(a,u))}function n(u){u.currentTarget===u.target&&t!==null&&(window.clearTimeout(t),t=null)}function i(u){u.currentTarget===u.target&&o()}function a(){const{onHide:u}=e;r.value=!1,t&&(window.clearTimeout(t),t=null),u&&u()}function s(){const{onClose:u}=e;u&&u(),a()}function l(){const{onAfterLeave:u,onInternalAfterLeave:d,onAfterHide:f,internalKey:p}=e;u&&u(),d&&d(p),f&&f()}function c(){a()}return{show:r,hide:a,handleClose:s,handleAfterLeave:l,handleMouseleave:i,handleMouseenter:n,deactivate:c}},render(){return H(Km,{appear:!0,onAfterLeave:this.handleAfterLeave,onLeave:this.onLeave},{default:()=>[this.show?H(xP,{content:this.content,type:this.type,icon:this.icon,showIcon:this.showIcon,closable:this.closable,onClose:this.handleClose,onMouseenter:this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.keepAliveOnHover?this.handleMouseleave:void 0}):null]})}}),CP=Object.assign(Object.assign({},Ct.props),{to:[String,Object],duration:{type:Number,default:3e3},keepAliveOnHover:Boolean,max:Number,placement:{type:String,default:"top"},closable:Boolean,containerClass:String,containerStyle:[String,Object]}),J1=Oe({name:"MessageProvider",props:CP,setup(e){const{mergedClsPrefixRef:t}=sr(e),r=de([]),o=de({}),n={create(l,c){return i(l,Object.assign({type:"default"},c))},info(l,c){return i(l,Object.assign(Object.assign({},c),{type:"info"}))},success(l,c){return i(l,Object.assign(Object.assign({},c),{type:"success"}))},warning(l,c){return i(l,Object.assign(Object.assign({},c),{type:"warning"}))},error(l,c){return i(l,Object.assign(Object.assign({},c),{type:"error"}))},loading(l,c){return i(l,Object.assign(Object.assign({},c),{type:"loading"}))},destroyAll:s};dt(Q1,{props:e,mergedClsPrefixRef:t}),dt(Y1,n);function i(l,c){const u=ws(),d=Or(Object.assign(Object.assign({},c),{content:l,key:u,destroy:()=>{var p;(p=o.value[u])===null||p===void 0||p.hide()}})),{max:f}=e;return f&&r.value.length>=f&&r.value.shift(),r.value.push(d),d}function a(l){r.value.splice(r.value.findIndex(c=>c.key===l),1),delete o.value[l]}function s(){Object.values(o.value).forEach(l=>{l.hide()})}return Object.assign({mergedClsPrefix:t,messageRefs:o,messageList:r,handleAfterLeave:a},n)},render(){var e,t,r;return H(Je,null,(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e),this.messageList.length?H(vs,{to:(r=this.to)!==null&&r!==void 0?r:"body"},H("div",{class:[`${this.mergedClsPrefix}-message-container`,`${this.mergedClsPrefix}-message-container--${this.placement}`,this.containerClass],key:"message-container",style:this.containerStyle},this.messageList.map(o=>H(bP,Object.assign({ref:n=>{n&&(this.messageRefs[o.key]=n)},internalKey:o.key,onInternalAfterLeave:this.handleAfterLeave},ou(o,["destroy"],void 0),{duration:o.duration===void 0?this.duration:o.duration,keepAliveOnHover:o.keepAliveOnHover===void 0?this.keepAliveOnHover:o.keepAliveOnHover,closable:o.closable===void 0?this.closable:o.closable}))))):null)}});function ex(){const e=Me(Y1,null);return e===null&&vi("use-message","No outer founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),e}const Hs="n-notification-provider",yP=Oe({name:"NotificationContainer",props:{scrollable:{type:Boolean,required:!0},placement:{type:String,required:!0}},setup(){const{mergedThemeRef:e,mergedClsPrefixRef:t,wipTransitionCountRef:r}=Me(Hs),o=de(null);return gs(()=>{var n,i;r.value>0?(n=o==null?void 0:o.value)===null||n===void 0||n.classList.add("transitioning"):(i=o==null?void 0:o.value)===null||i===void 0||i.classList.remove("transitioning")}),{selfRef:o,mergedTheme:e,mergedClsPrefix:t,transitioning:r}},render(){const{$slots:e,scrollable:t,mergedClsPrefix:r,mergedTheme:o,placement:n}=this;return H("div",{ref:"selfRef",class:[`${r}-notification-container`,t&&`${r}-notification-container--scrollable`,`${r}-notification-container--${n}`]},t?H(tg,{theme:o.peers.Scrollbar,themeOverrides:o.peerOverrides.Scrollbar,contentStyle:{overflow:"hidden"}},e):e)}}),SP={info:()=>H(Ca,null),success:()=>H(hu,null),warning:()=>H(pu,null),error:()=>H(fu,null),default:()=>null},Tu={closable:{type:Boolean,default:!0},type:{type:String,default:"default"},avatar:Function,title:[String,Function],description:[String,Function],content:[String,Function],meta:[String,Function],action:[String,Function],onClose:{type:Function,required:!0},keepAliveOnHover:Boolean,onMouseenter:Function,onMouseleave:Function},wP=_s(Tu),_P=Oe({name:"Notification",props:Tu,setup(e){const{mergedClsPrefixRef:t,mergedThemeRef:r,props:o}=Me(Hs),{inlineThemeDisabled:n,mergedRtlRef:i}=sr(),a=yi("Notification",i,t),s=ae(()=>{const{type:c}=e,{self:{color:u,textColor:d,closeIconColor:f,closeIconColorHover:p,closeIconColorPressed:h,headerTextColor:m,descriptionTextColor:v,actionTextColor:g,borderRadius:x,headerFontWeight:C,boxShadow:b,lineHeight:w,fontSize:T,closeMargin:S,closeSize:E,width:I,padding:P,closeIconSize:$,closeBorderRadius:R,closeColorHover:B,closeColorPressed:j,titleFontSize:Y,metaFontSize:J,descriptionFontSize:Q,[_e("iconColor",c)]:ie},common:{cubicBezierEaseOut:ge,cubicBezierEaseIn:ve,cubicBezierEaseInOut:z}}=r.value,{left:W,right:Z,top:V,bottom:D}=Zp(P);return{"--n-color":u,"--n-font-size":T,"--n-text-color":d,"--n-description-text-color":v,"--n-action-text-color":g,"--n-title-text-color":m,"--n-title-font-weight":C,"--n-bezier":z,"--n-bezier-ease-out":ge,"--n-bezier-ease-in":ve,"--n-border-radius":x,"--n-box-shadow":b,"--n-close-border-radius":R,"--n-close-color-hover":B,"--n-close-color-pressed":j,"--n-close-icon-color":f,"--n-close-icon-color-hover":p,"--n-close-icon-color-pressed":h,"--n-line-height":w,"--n-icon-color":ie,"--n-close-margin":S,"--n-close-size":E,"--n-close-icon-size":$,"--n-width":I,"--n-padding-left":W,"--n-padding-right":Z,"--n-padding-top":V,"--n-padding-bottom":D,"--n-title-font-size":Y,"--n-meta-font-size":J,"--n-description-font-size":Q}}),l=n?so("notification",ae(()=>e.type[0]),s,o):void 0;return{mergedClsPrefix:t,showAvatar:ae(()=>e.avatar||e.type!=="default"),handleCloseClick(){e.onClose()},rtlEnabled:a,cssVars:n?void 0:s,themeClass:l==null?void 0:l.themeClass,onRender:l==null?void 0:l.onRender}},render(){var e;const{mergedClsPrefix:t}=this;return(e=this.onRender)===null||e===void 0||e.call(this),H("div",{class:[`${t}-notification-wrapper`,this.themeClass],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:this.cssVars},H("div",{class:[`${t}-notification`,this.rtlEnabled&&`${t}-notification--rtl`,this.themeClass,{[`${t}-notification--closable`]:this.closable,[`${t}-notification--show-avatar`]:this.showAvatar}],style:this.cssVars},this.showAvatar?H("div",{class:`${t}-notification__avatar`},this.avatar?Nt(this.avatar):this.type!=="default"?H(Is,{clsPrefix:t},{default:()=>SP[this.type]()}):null):null,this.closable?H(Rs,{clsPrefix:t,class:`${t}-notification__close`,onClick:this.handleCloseClick}):null,H("div",{ref:"bodyRef",class:`${t}-notification-main`},this.title?H("div",{class:`${t}-notification-main__header`},Nt(this.title)):null,this.description?H("div",{class:`${t}-notification-main__description`},Nt(this.description)):null,this.content?H("pre",{class:`${t}-notification-main__content`},Nt(this.content)):null,this.meta||this.action?H("div",{class:`${t}-notification-main-footer`},this.meta?H("div",{class:`${t}-notification-main-footer__meta`},Nt(this.meta)):null,this.action?H("div",{class:`${t}-notification-main-footer__action`},Nt(this.action)):null):null)))}}),TP=Object.assign(Object.assign({},Tu),{duration:Number,onClose:Function,onLeave:Function,onAfterEnter:Function,onAfterLeave:Function,onHide:Function,onAfterShow:Function,onAfterHide:Function}),EP=Oe({name:"NotificationEnvironment",props:Object.assign(Object.assign({},TP),{internalKey:{type:String,required:!0},onInternalAfterLeave:{type:Function,required:!0}}),setup(e){const{wipTransitionCountRef:t}=Me(Hs),r=de(!0);let o=null;function n(){r.value=!1,o&&window.clearTimeout(o)}function i(h){t.value++,jt(()=>{h.style.height=`${h.offsetHeight}px`,h.style.maxHeight="0",h.style.transition="none",h.offsetHeight,h.style.transition="",h.style.maxHeight=h.style.height})}function a(h){t.value--,h.style.height="",h.style.maxHeight="";const{onAfterEnter:m,onAfterShow:v}=e;m&&m(),v&&v()}function s(h){t.value++,h.style.maxHeight=`${h.offsetHeight}px`,h.style.height=`${h.offsetHeight}px`,h.offsetHeight}function l(h){const{onHide:m}=e;m&&m(),h.style.maxHeight="0",h.offsetHeight}function c(){t.value--;const{onAfterLeave:h,onInternalAfterLeave:m,onAfterHide:v,internalKey:g}=e;h&&h(),m(g),v&&v()}function u(){const{duration:h}=e;h&&(o=window.setTimeout(n,h))}function d(h){h.currentTarget===h.target&&o!==null&&(window.clearTimeout(o),o=null)}function f(h){h.currentTarget===h.target&&u()}function p(){const{onClose:h}=e;h?Promise.resolve(h()).then(m=>{m!==!1&&n()}):n()}return Sr(()=>{e.duration&&(o=window.setTimeout(n,e.duration))}),{show:r,hide:n,handleClose:p,handleAfterLeave:c,handleLeave:l,handleBeforeLeave:s,handleAfterEnter:a,handleBeforeEnter:i,handleMouseenter:d,handleMouseleave:f}},render(){return H(br,{name:"notification-transition",appear:!0,onBeforeEnter:this.handleBeforeEnter,onAfterEnter:this.handleAfterEnter,onBeforeLeave:this.handleBeforeLeave,onLeave:this.handleLeave,onAfterLeave:this.handleAfterLeave},{default:()=>this.show?H(_P,Object.assign({},ri(this.$props,wP),{onClose:this.handleClose,onMouseenter:this.duration&&this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.duration&&this.keepAliveOnHover?this.handleMouseleave:void 0})):null})}}),PP=ne([Se("notification-container",` - z-index: 4000; - position: fixed; - overflow: visible; - display: flex; - flex-direction: column; - align-items: flex-end; - `,[ne(">",[Se("scrollbar",` - width: initial; - overflow: visible; - height: -moz-fit-content !important; - height: fit-content !important; - max-height: 100vh !important; - `,[ne(">",[Se("scrollbar-container",` - height: -moz-fit-content !important; - height: fit-content !important; - max-height: 100vh !important; - `,[Se("scrollbar-content",` - padding-top: 12px; - padding-bottom: 33px; - `)])])])]),Ce("top, top-right, top-left",` - top: 12px; - `,[ne("&.transitioning >",[Se("scrollbar",[ne(">",[Se("scrollbar-container",` - min-height: 100vh !important; - `)])])])]),Ce("bottom, bottom-right, bottom-left",` - bottom: 12px; - `,[ne(">",[Se("scrollbar",[ne(">",[Se("scrollbar-container",[Se("scrollbar-content",` - padding-bottom: 12px; - `)])])])]),Se("notification-wrapper",` - display: flex; - align-items: flex-end; - margin-bottom: 0; - margin-top: 12px; - `)]),Ce("top, bottom",` - left: 50%; - transform: translateX(-50%); - `,[Se("notification-wrapper",[ne("&.notification-transition-enter-from, &.notification-transition-leave-to",` - transform: scale(0.85); - `),ne("&.notification-transition-leave-from, &.notification-transition-enter-to",` - transform: scale(1); - `)])]),Ce("top",[Se("notification-wrapper",` - transform-origin: top center; - `)]),Ce("bottom",[Se("notification-wrapper",` - transform-origin: bottom center; - `)]),Ce("top-right, bottom-right",[Se("notification",` - margin-left: 28px; - margin-right: 16px; - `)]),Ce("top-left, bottom-left",[Se("notification",` - margin-left: 16px; - margin-right: 28px; - `)]),Ce("top-right",` - right: 0; - `,[qi("top-right")]),Ce("top-left",` - left: 0; - `,[qi("top-left")]),Ce("bottom-right",` - right: 0; - `,[qi("bottom-right")]),Ce("bottom-left",` - left: 0; - `,[qi("bottom-left")]),Ce("scrollable",[Ce("top-right",` - top: 0; - `),Ce("top-left",` - top: 0; - `),Ce("bottom-right",` - bottom: 0; - `),Ce("bottom-left",` - bottom: 0; - `)]),Se("notification-wrapper",` - margin-bottom: 12px; - `,[ne("&.notification-transition-enter-from, &.notification-transition-leave-to",` - opacity: 0; - margin-top: 0 !important; - margin-bottom: 0 !important; - `),ne("&.notification-transition-leave-from, &.notification-transition-enter-to",` - opacity: 1; - `),ne("&.notification-transition-leave-active",` - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - opacity .3s var(--n-bezier), - transform .3s var(--n-bezier-ease-in), - max-height .3s var(--n-bezier), - margin-top .3s linear, - margin-bottom .3s linear, - box-shadow .3s var(--n-bezier); - `),ne("&.notification-transition-enter-active",` - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - opacity .3s var(--n-bezier), - transform .3s var(--n-bezier-ease-out), - max-height .3s var(--n-bezier), - margin-top .3s linear, - margin-bottom .3s linear, - box-shadow .3s var(--n-bezier); - `)]),Se("notification",` - background-color: var(--n-color); - color: var(--n-text-color); - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - opacity .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); - font-family: inherit; - font-size: var(--n-font-size); - font-weight: 400; - position: relative; - display: flex; - overflow: hidden; - flex-shrink: 0; - padding-left: var(--n-padding-left); - padding-right: var(--n-padding-right); - width: var(--n-width); - border-radius: var(--n-border-radius); - box-shadow: var(--n-box-shadow); - box-sizing: border-box; - opacity: 1; - `,[he("avatar",[Se("icon",{color:"var(--n-icon-color)"}),Se("base-icon",{color:"var(--n-icon-color)"})]),Ce("show-avatar",[Se("notification-main",` - margin-left: 40px; - width: calc(100% - 40px); - `)]),Ce("closable",[Se("notification-main",[ne("> *:first-child",{paddingRight:"20px"})]),he("close",` - position: absolute; - top: 0; - right: 0; - margin: var(--n-close-margin); - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - `)]),he("avatar",` - position: absolute; - top: var(--n-padding-top); - left: var(--n-padding-left); - width: 28px; - height: 28px; - font-size: 28px; - display: flex; - align-items: center; - justify-content: center; - `,[Se("icon","transition: color .3s var(--n-bezier);")]),Se("notification-main",` - padding-top: var(--n-padding-top); - padding-bottom: var(--n-padding-bottom); - box-sizing: border-box; - display: flex; - flex-direction: column; - margin-left: 8px; - width: calc(100% - 8px); - `,[Se("notification-main-footer",` - display: flex; - align-items: center; - justify-content: space-between; - margin-top: 12px; - `,[he("meta",` - font-size: var(--n-meta-font-size); - transition: color .3s var(--n-bezier-ease-out); - color: var(--n-description-text-color); - `),he("action",` - cursor: pointer; - transition: color .3s var(--n-bezier-ease-out); - color: var(--n-action-text-color); - `)]),he("header",` - font-weight: var(--n-title-font-weight); - font-size: var(--n-title-font-size); - transition: color .3s var(--n-bezier-ease-out); - color: var(--n-title-text-color); - `),he("description",` - margin-top: 8px; - font-size: var(--n-description-font-size); - white-space: pre-wrap; - word-wrap: break-word; - transition: color .3s var(--n-bezier-ease-out); - color: var(--n-description-text-color); - `),he("content",` - line-height: var(--n-line-height); - margin: 12px 0 0 0; - font-family: inherit; - white-space: pre-wrap; - word-wrap: break-word; - transition: color .3s var(--n-bezier-ease-out); - color: var(--n-text-color); - `,[ne("&:first-child",{margin:0})])])])])]);function qi(e){const r=e.split("-")[1]==="left"?"calc(-100%)":"calc(100%)",o="0";return Se("notification-wrapper",[ne("&.notification-transition-enter-from, &.notification-transition-leave-to",` - transform: translate(${r}, 0); - `),ne("&.notification-transition-leave-from, &.notification-transition-enter-to",` - transform: translate(${o}, 0); - `)])}const tx="n-notification-api",kP=Object.assign(Object.assign({},Ct.props),{containerClass:String,containerStyle:[String,Object],to:[String,Object],scrollable:{type:Boolean,default:!0},max:Number,placement:{type:String,default:"top-right"},keepAliveOnHover:Boolean}),rx=Oe({name:"NotificationProvider",props:kP,setup(e){const{mergedClsPrefixRef:t}=sr(e),r=de([]),o={},n=new Set;function i(p){const h=ws(),m=()=>{n.add(h),o[h]&&o[h].hide()},v=Or(Object.assign(Object.assign({},p),{key:h,destroy:m,hide:m,deactivate:m})),{max:g}=e;if(g&&r.value.length-n.size>=g){let x=!1,C=0;for(const b of r.value){if(!n.has(b.key)){o[b.key]&&(b.destroy(),x=!0);break}C++}x||r.value.splice(C,1)}return r.value.push(v),v}const a=["info","success","warning","error"].map(p=>h=>i(Object.assign(Object.assign({},h),{type:p})));function s(p){n.delete(p),r.value.splice(r.value.findIndex(h=>h.key===p),1)}const l=Ct("Notification","-notification",PP,v1,e,t),c={create:i,info:a[0],success:a[1],warning:a[2],error:a[3],open:d,destroyAll:f},u=de(0);dt(tx,c),dt(Hs,{props:e,mergedClsPrefixRef:t,mergedThemeRef:l,wipTransitionCountRef:u});function d(p){return i(p)}function f(){Object.values(r.value).forEach(p=>{p.hide()})}return Object.assign({mergedClsPrefix:t,notificationList:r,notificationRefs:o,handleAfterLeave:s},c)},render(){var e,t,r;const{placement:o}=this;return H(Je,null,(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e),this.notificationList.length?H(vs,{to:(r=this.to)!==null&&r!==void 0?r:"body"},H(yP,{class:this.containerClass,style:this.containerStyle,scrollable:this.scrollable&&o!=="top"&&o!=="bottom",placement:o},{default:()=>this.notificationList.map(n=>H(EP,Object.assign({ref:i=>{const a=n.key;i===null?delete this.notificationRefs[a]:this.notificationRefs[a]=i}},ou(n,["destroy","hide","deactivate"]),{internalKey:n.key,onInternalAfterLeave:this.handleAfterLeave,keepAliveOnHover:n.keepAliveOnHover===void 0?this.keepAliveOnHover:n.keepAliveOnHover})))})):null)}});function ox(){const e=Me(tx,null);return e===null&&vi("use-notification","No outer `n-notification-provider` found."),e}const LP={name:"QrCode",common:se,self:e=>({borderRadius:e.borderRadius})},$P=LP,IP=e=>({borderRadius:e.borderRadius}),RP={name:"QrCode",common:le,self:IP},AP=RP,OP={name:"Skeleton",common:se,self(e){const{heightSmall:t,heightMedium:r,heightLarge:o,borderRadius:n}=e;return{color:"rgba(255, 255, 255, 0.12)",colorEnd:"rgba(255, 255, 255, 0.18)",borderRadius:n,heightSmall:t,heightMedium:r,heightLarge:o}}},BP=e=>{const{heightSmall:t,heightMedium:r,heightLarge:o,borderRadius:n}=e;return{color:"#eee",colorEnd:"#ddd",borderRadius:n,heightSmall:t,heightMedium:r,heightLarge:o}},HP={name:"Skeleton",common:le,self:BP},MP={name:"Split",common:se},DP=MP,FP=e=>{const{primaryColorHover:t}=e;return{resizableTriggerColorHover:t}},zP={name:"Split",common:le,self:FP},NP=zP,WP=Oe({name:"InjectionExtractor",props:{onSetup:Function},setup(e,{slots:t}){var r;return(r=e.onSetup)===null||r===void 0||r.call(e),()=>{var o;return(o=t.default)===null||o===void 0?void 0:o.call(t)}}}),jP={message:ex,notification:ox,loadingBar:Z1,dialog:l1};function UP({providersAndProps:e,configProviderProps:t}){let o=Kp(()=>H($g,pt(t),{default:()=>e.map(({type:s,Provider:l,props:c})=>H(l,pt(c),{default:()=>H(WP,{onSetup:()=>n[s]=jP[s]()})}))}));const n={app:o};let i;return dn&&(i=document.createElement("div"),document.body.appendChild(i),o.mount(i)),Object.assign({unmount:()=>{var s;if(o===null||i===null){oi("discrete","unmount call no need because discrete app has been unmounted");return}o.unmount(),(s=i.parentNode)===null||s===void 0||s.removeChild(i),i=null,o=null}},n)}function VP(e,{configProviderProps:t,messageProviderProps:r,dialogProviderProps:o,notificationProviderProps:n,loadingBarProviderProps:i}={}){const a=[];return e.forEach(l=>{switch(l){case"message":a.push({type:l,Provider:J1,props:r});break;case"notification":a.push({type:l,Provider:rx,props:n});break;case"dialog":a.push({type:l,Provider:s1,props:o});break;case"loadingBar":a.push({type:l,Provider:K1,props:i});break}}),UP({providersAndProps:a,configProviderProps:t})}const nx=()=>({}),qP={name:"Equation",common:le,self:nx},GP=qP,KP={name:"Equation",common:se,self:nx},ZP=KP,zn={name:"dark",common:se,Alert:sw,Anchor:vw,AutoComplete:Pw,Avatar:pg,AvatarGroup:Aw,BackTop:Bw,Badge:zw,Breadcrumb:Kw,Button:Dt,ButtonGroup:N6,Calendar:a_,Card:Sg,Carousel:y_,Cascader:k_,Checkbox:xn,Code:Eg,Collapse:B_,CollapseTransition:F_,ColorPicker:u_,DataTable:u5,DatePicker:S5,Descriptions:k5,Dialog:e1,Divider:Z5,Drawer:J5,Dropdown:Su,DynamicInput:t6,DynamicTags:c6,Element:h6,Empty:Bo,Ellipsis:zg,Equation:ZP,Form:C6,GradientText:S6,Icon:p5,IconWrapper:L6,Image:aP,Input:Xt,InputNumber:V6,LegacyTransfer:lP,Layout:X6,List:oT,LoadingBar:iT,Log:cT,Menu:ST,Mention:pT,Message:F6,Modal:M5,Notification:B6,PageHeader:TT,Pagination:Dg,Popconfirm:$T,Popover:Mo,Popselect:Ig,Progress:k1,QrCode:$P,Radio:jg,Rate:OT,Result:WT,Row:iP,Scrollbar:Mt,Select:Bg,Skeleton:OP,Slider:UT,Space:h1,Spin:YT,Statistic:tE,Steps:aE,Switch:lE,Table:gE,Tabs:yE,Tag:ig,Thing:TE,TimePicker:Xg,Timeline:PE,Tooltip:As,Transfer:RE,Tree:W1,TreeSelect:FE,Typography:GE,Upload:YE,Watermark:JE,Split:DP},ta={name:"light",common:le,Alert:uw,Anchor:gw,AutoComplete:Tw,Avatar:hg,AvatarGroup:Iw,BackTop:Dw,Badge:jw,Breadcrumb:qw,Button:It,ButtonGroup:j6,Calendar:n_,Card:bu,Carousel:b_,Cascader:E_,Checkbox:gn,Code:Pg,Collapse:A_,CollapseTransition:M_,ColorPicker:l_,DataTable:l5,DatePicker:C5,Descriptions:E5,Dialog:wu,Divider:G5,Drawer:Y5,Dropdown:yu,DynamicInput:n6,DynamicTags:d6,Element:m6,Empty:Dr,Equation:GP,Ellipsis:Ng,Form:v6,GradientText:T6,Icon:f5,IconWrapper:P6,Image:I6,Input:Yt,InputNumber:K6,Layout:J6,LegacyTransfer:dP,List:tT,LoadingBar:S1,Log:fT,Menu:CT,Mention:xT,Message:C1,Modal:a1,Notification:v1,PageHeader:_T,Pagination:Mg,Popconfirm:kT,Popover:Ho,Popselect:Rg,Progress:P1,QrCode:AP,Radio:Ug,Rate:MT,Row:oP,Result:zT,Scrollbar:$t,Skeleton:HP,Select:Og,Slider:GT,Space:p1,Spin:ZT,Statistic:JT,Steps:nE,Switch:dE,Table:pE,Tabs:bE,Tag:ag,Thing:wE,TimePicker:Zg,Timeline:$E,Tooltip:Os,Transfer:BE,Tree:N1,TreeSelect:WE,Typography:VE,Upload:ZE,Watermark:tP,Split:NP};function XP(e){return e.replace(/:/g,"-")}const tH=Oe({name:"SvgIcon",props:{icon:{type:String,required:!0},className:{type:String,default:""}},setup(e){const t=ae(()=>`#${XP(e.icon)}`),r=ae(()=>e.className?`svg-icon ${e.className}`:"svg-icon");return{symbolId:t,svgClass:r}}});const YP=Oe({__name:"index",setup(e){function t(){window.$loadingBar=Z1(),window.$dialog=l1(),window.$message=ex(),window.$notification=ox()}const r=Oe({name:"NaiveProviderContent",setup(){t()},render(){return H("div")}});return(o,n)=>(bs(),Cs(pt(K1),null,{default:Co(()=>[qe(pt(s1),null,{default:Co(()=>[qe(pt(rx),null,{default:Co(()=>[qe(pt(J1),null,{default:Co(()=>[Tp(o.$slots,"default"),qe(pt(r))]),_:3})]),_:3})]),_:3})]),_:3}))}}),Nn=/^[a-z0-9]+(-[a-z0-9]+)*$/,Ms=(e,t,r,o="")=>{const n=e.split(":");if(e.slice(0,1)==="@"){if(n.length<2||n.length>3)return null;o=n.shift().slice(1)}if(n.length>3||!n.length)return null;if(n.length>1){const s=n.pop(),l=n.pop(),c={provider:n.length>0?n[0]:o,prefix:l,name:s};return t&&!ra(c)?null:c}const i=n[0],a=i.split("-");if(a.length>1){const s={provider:o,prefix:a.shift(),name:a.join("-")};return t&&!ra(s)?null:s}if(r&&o===""){const s={provider:o,prefix:"",name:i};return t&&!ra(s,r)?null:s}return null},ra=(e,t)=>e?!!((e.provider===""||e.provider.match(Nn))&&(t&&e.prefix===""||e.prefix.match(Nn))&&e.name.match(Nn)):!1,ix=Object.freeze({left:0,top:0,width:16,height:16}),Sa=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Ds=Object.freeze({...ix,...Sa}),Yl=Object.freeze({...Ds,body:"",hidden:!1});function QP(e,t){const r={};!e.hFlip!=!t.hFlip&&(r.hFlip=!0),!e.vFlip!=!t.vFlip&&(r.vFlip=!0);const o=((e.rotate||0)+(t.rotate||0))%4;return o&&(r.rotate=o),r}function zd(e,t){const r=QP(e,t);for(const o in Yl)o in Sa?o in e&&!(o in r)&&(r[o]=Sa[o]):o in t?r[o]=t[o]:o in e&&(r[o]=e[o]);return r}function JP(e,t){const r=e.icons,o=e.aliases||Object.create(null),n=Object.create(null);function i(a){if(r[a])return n[a]=[];if(!(a in n)){n[a]=null;const s=o[a]&&o[a].parent,l=s&&i(s);l&&(n[a]=[s].concat(l))}return n[a]}return(t||Object.keys(r).concat(Object.keys(o))).forEach(i),n}function ek(e,t,r){const o=e.icons,n=e.aliases||Object.create(null);let i={};function a(s){i=zd(o[s]||n[s],i)}return a(t),r.forEach(a),zd(e,i)}function ax(e,t){const r=[];if(typeof e!="object"||typeof e.icons!="object")return r;e.not_found instanceof Array&&e.not_found.forEach(n=>{t(n,null),r.push(n)});const o=JP(e);for(const n in o){const i=o[n];i&&(t(n,ek(e,n,i)),r.push(n))}return r}const tk={provider:"",aliases:{},not_found:{},...ix};function pl(e,t){for(const r in t)if(r in e&&typeof e[r]!=typeof t[r])return!1;return!0}function sx(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!pl(e,tk))return null;const r=t.icons;for(const n in r){const i=r[n];if(!n.match(Nn)||typeof i.body!="string"||!pl(i,Yl))return null}const o=t.aliases||Object.create(null);for(const n in o){const i=o[n],a=i.parent;if(!n.match(Nn)||typeof a!="string"||!r[a]&&!o[a]||!pl(i,Yl))return null}return t}const Nd=Object.create(null);function rk(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function Ro(e,t){const r=Nd[e]||(Nd[e]=Object.create(null));return r[t]||(r[t]=rk(e,t))}function Eu(e,t){return sx(t)?ax(t,(r,o)=>{o?e.icons[r]=o:e.missing.add(r)}):[]}function ok(e,t,r){try{if(typeof r.body=="string")return e.icons[t]={...r},!0}catch{}return!1}let ui=!1;function lx(e){return typeof e=="boolean"&&(ui=e),ui}function nk(e){const t=typeof e=="string"?Ms(e,!0,ui):e;if(t){const r=Ro(t.provider,t.prefix),o=t.name;return r.icons[o]||(r.missing.has(o)?null:void 0)}}function ik(e,t){const r=Ms(e,!0,ui);if(!r)return!1;const o=Ro(r.provider,r.prefix);return ok(o,r.name,t)}function ak(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),ui&&!t&&!e.prefix){let n=!1;return sx(e)&&(e.prefix="",ax(e,(i,a)=>{a&&ik(i,a)&&(n=!0)})),n}const r=e.prefix;if(!ra({provider:t,prefix:r,name:"a"}))return!1;const o=Ro(t,r);return!!Eu(o,e)}const cx=Object.freeze({width:null,height:null}),ux=Object.freeze({...cx,...Sa}),sk=/(-?[0-9.]*[0-9]+[0-9.]*)/g,lk=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Wd(e,t,r){if(t===1)return e;if(r=r||100,typeof e=="number")return Math.ceil(e*t*r)/r;if(typeof e!="string")return e;const o=e.split(sk);if(o===null||!o.length)return e;const n=[];let i=o.shift(),a=lk.test(i);for(;;){if(a){const s=parseFloat(i);isNaN(s)?n.push(i):n.push(Math.ceil(s*t*r)/r)}else n.push(i);if(i=o.shift(),i===void 0)return n.join("");a=!a}}const ck=e=>e==="unset"||e==="undefined"||e==="none";function uk(e,t){const r={...Ds,...e},o={...ux,...t},n={left:r.left,top:r.top,width:r.width,height:r.height};let i=r.body;[r,o].forEach(h=>{const m=[],v=h.hFlip,g=h.vFlip;let x=h.rotate;v?g?x+=2:(m.push("translate("+(n.width+n.left).toString()+" "+(0-n.top).toString()+")"),m.push("scale(-1 1)"),n.top=n.left=0):g&&(m.push("translate("+(0-n.left).toString()+" "+(n.height+n.top).toString()+")"),m.push("scale(1 -1)"),n.top=n.left=0);let C;switch(x<0&&(x-=Math.floor(x/4)*4),x=x%4,x){case 1:C=n.height/2+n.top,m.unshift("rotate(90 "+C.toString()+" "+C.toString()+")");break;case 2:m.unshift("rotate(180 "+(n.width/2+n.left).toString()+" "+(n.height/2+n.top).toString()+")");break;case 3:C=n.width/2+n.left,m.unshift("rotate(-90 "+C.toString()+" "+C.toString()+")");break}x%2===1&&(n.left!==n.top&&(C=n.left,n.left=n.top,n.top=C),n.width!==n.height&&(C=n.width,n.width=n.height,n.height=C)),m.length&&(i=''+i+"")});const a=o.width,s=o.height,l=n.width,c=n.height;let u,d;a===null?(d=s===null?"1em":s==="auto"?c:s,u=Wd(d,l/c)):(u=a==="auto"?l:a,d=s===null?Wd(u,c/l):s==="auto"?c:s);const f={},p=(h,m)=>{ck(m)||(f[h]=m.toString())};return p("width",u),p("height",d),f.viewBox=n.left.toString()+" "+n.top.toString()+" "+l.toString()+" "+c.toString(),{attributes:f,body:i}}const dk=/\sid="(\S+)"/g,fk="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let hk=0;function pk(e,t=fk){const r=[];let o;for(;o=dk.exec(e);)r.push(o[1]);if(!r.length)return e;const n="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(i=>{const a=typeof t=="function"?t(i):t+(hk++).toString(),s=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+s+')([")]|\\.[a-z])',"g"),"$1"+a+n+"$3")}),e=e.replace(new RegExp(n,"g"),""),e}const Ql=Object.create(null);function mk(e,t){Ql[e]=t}function Jl(e){return Ql[e]||Ql[""]}function Pu(e){let t;if(typeof e.resources=="string")t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const ku=Object.create(null),En=["https://api.simplesvg.com","https://api.unisvg.com"],oa=[];for(;En.length>0;)En.length===1||Math.random()>.5?oa.push(En.shift()):oa.push(En.pop());ku[""]=Pu({resources:["https://api.iconify.design"].concat(oa)});function gk(e,t){const r=Pu(t);return r===null?!1:(ku[e]=r,!0)}function Lu(e){return ku[e]}const xk=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let jd=xk();function vk(e,t){const r=Lu(e);if(!r)return 0;let o;if(!r.maxURL)o=0;else{let n=0;r.resources.forEach(a=>{n=Math.max(n,a.length)});const i=t+".json?icons=";o=r.maxURL-n-r.path.length-i.length}return o}function bk(e){return e===404}const Ck=(e,t,r)=>{const o=[],n=vk(e,t),i="icons";let a={type:i,provider:e,prefix:t,icons:[]},s=0;return r.forEach((l,c)=>{s+=l.length+1,s>=n&&c>0&&(o.push(a),a={type:i,provider:e,prefix:t,icons:[]},s=l.length),a.icons.push(l)}),o.push(a),o};function yk(e){if(typeof e=="string"){const t=Lu(e);if(t)return t.path}return"/"}const Sk=(e,t,r)=>{if(!jd){r("abort",424);return}let o=yk(t.provider);switch(t.type){case"icons":{const i=t.prefix,s=t.icons.join(","),l=new URLSearchParams({icons:s});o+=i+".json?"+l.toString();break}case"custom":{const i=t.uri;o+=i.slice(0,1)==="/"?i.slice(1):i;break}default:r("abort",400);return}let n=503;jd(e+o).then(i=>{const a=i.status;if(a!==200){setTimeout(()=>{r(bk(a)?"abort":"next",a)});return}return n=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?r("abort",i):r("next",n)});return}setTimeout(()=>{r("success",i)})}).catch(()=>{r("next",n)})},wk={prepare:Ck,send:Sk};function _k(e){const t={loaded:[],missing:[],pending:[]},r=Object.create(null);e.sort((n,i)=>n.provider!==i.provider?n.provider.localeCompare(i.provider):n.prefix!==i.prefix?n.prefix.localeCompare(i.prefix):n.name.localeCompare(i.name));let o={provider:"",prefix:"",name:""};return e.forEach(n=>{if(o.name===n.name&&o.prefix===n.prefix&&o.provider===n.provider)return;o=n;const i=n.provider,a=n.prefix,s=n.name,l=r[i]||(r[i]=Object.create(null)),c=l[a]||(l[a]=Ro(i,a));let u;s in c.icons?u=t.loaded:a===""||c.missing.has(s)?u=t.missing:u=t.pending;const d={provider:i,prefix:a,name:s};u.push(d)}),t}function dx(e,t){e.forEach(r=>{const o=r.loaderCallbacks;o&&(r.loaderCallbacks=o.filter(n=>n.id!==t))})}function Tk(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let r=!1;const o=e.provider,n=e.prefix;t.forEach(i=>{const a=i.icons,s=a.pending.length;a.pending=a.pending.filter(l=>{if(l.prefix!==n)return!0;const c=l.name;if(e.icons[c])a.loaded.push({provider:o,prefix:n,name:c});else if(e.missing.has(c))a.missing.push({provider:o,prefix:n,name:c});else return r=!0,!0;return!1}),a.pending.length!==s&&(r||dx([e],i.id),i.callback(a.loaded.slice(0),a.missing.slice(0),a.pending.slice(0),i.abort))})}))}let Ek=0;function Pk(e,t,r){const o=Ek++,n=dx.bind(null,r,o);if(!t.pending.length)return n;const i={id:o,icons:t,callback:e,abort:n};return r.forEach(a=>{(a.loaderCallbacks||(a.loaderCallbacks=[])).push(i)}),n}function kk(e,t=!0,r=!1){const o=[];return e.forEach(n=>{const i=typeof n=="string"?Ms(n,t,r):n;i&&o.push(i)}),o}var Lk={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function $k(e,t,r,o){const n=e.resources.length,i=e.random?Math.floor(Math.random()*n):e.index;let a;if(e.random){let T=e.resources.slice(0);for(a=[];T.length>1;){const S=Math.floor(Math.random()*T.length);a.push(T[S]),T=T.slice(0,S).concat(T.slice(S+1))}a=a.concat(T)}else a=e.resources.slice(i).concat(e.resources.slice(0,i));const s=Date.now();let l="pending",c=0,u,d=null,f=[],p=[];typeof o=="function"&&p.push(o);function h(){d&&(clearTimeout(d),d=null)}function m(){l==="pending"&&(l="aborted"),h(),f.forEach(T=>{T.status==="pending"&&(T.status="aborted")}),f=[]}function v(T,S){S&&(p=[]),typeof T=="function"&&p.push(T)}function g(){return{startTime:s,payload:t,status:l,queriesSent:c,queriesPending:f.length,subscribe:v,abort:m}}function x(){l="failed",p.forEach(T=>{T(void 0,u)})}function C(){f.forEach(T=>{T.status==="pending"&&(T.status="aborted")}),f=[]}function b(T,S,E){const I=S!=="success";switch(f=f.filter(P=>P!==T),l){case"pending":break;case"failed":if(I||!e.dataAfterTimeout)return;break;default:return}if(S==="abort"){u=E,x();return}if(I){u=E,f.length||(a.length?w():x());return}if(h(),C(),!e.random){const P=e.resources.indexOf(T.resource);P!==-1&&P!==e.index&&(e.index=P)}l="completed",p.forEach(P=>{P(E)})}function w(){if(l!=="pending")return;h();const T=a.shift();if(T===void 0){if(f.length){d=setTimeout(()=>{h(),l==="pending"&&(C(),x())},e.timeout);return}x();return}const S={status:"pending",resource:T,callback:(E,I)=>{b(S,E,I)}};f.push(S),c++,d=setTimeout(w,e.rotate),r(T,t,S.callback)}return setTimeout(w),g}function fx(e){const t={...Lk,...e};let r=[];function o(){r=r.filter(s=>s().status==="pending")}function n(s,l,c){const u=$k(t,s,l,(d,f)=>{o(),c&&c(d,f)});return r.push(u),u}function i(s){return r.find(l=>s(l))||null}return{query:n,find:i,setIndex:s=>{t.index=s},getIndex:()=>t.index,cleanup:o}}function Ud(){}const ml=Object.create(null);function Ik(e){if(!ml[e]){const t=Lu(e);if(!t)return;const r=fx(t),o={config:t,redundancy:r};ml[e]=o}return ml[e]}function Rk(e,t,r){let o,n;if(typeof e=="string"){const i=Jl(e);if(!i)return r(void 0,424),Ud;n=i.send;const a=Ik(e);a&&(o=a.redundancy)}else{const i=Pu(e);if(i){o=fx(i);const a=e.resources?e.resources[0]:"",s=Jl(a);s&&(n=s.send)}}return!o||!n?(r(void 0,424),Ud):o.query(t,n,r)().abort}const Vd="iconify2",di="iconify",hx=di+"-count",qd=di+"-version",px=36e5,Ak=168;function ec(e,t){try{return e.getItem(t)}catch{}}function $u(e,t,r){try{return e.setItem(t,r),!0}catch{}}function Gd(e,t){try{e.removeItem(t)}catch{}}function tc(e,t){return $u(e,hx,t.toString())}function rc(e){return parseInt(ec(e,hx))||0}const Fs={local:!0,session:!0},mx={local:new Set,session:new Set};let Iu=!1;function Ok(e){Iu=e}let Gi=typeof window>"u"?{}:window;function gx(e){const t=e+"Storage";try{if(Gi&&Gi[t]&&typeof Gi[t].length=="number")return Gi[t]}catch{}Fs[e]=!1}function xx(e,t){const r=gx(e);if(!r)return;const o=ec(r,qd);if(o!==Vd){if(o){const s=rc(r);for(let l=0;l{const l=di+s.toString(),c=ec(r,l);if(typeof c=="string"){try{const u=JSON.parse(c);if(typeof u=="object"&&typeof u.cached=="number"&&u.cached>n&&typeof u.provider=="string"&&typeof u.data=="object"&&typeof u.data.prefix=="string"&&t(u,s))return!0}catch{}Gd(r,l)}};let a=rc(r);for(let s=a-1;s>=0;s--)i(s)||(s===a-1?(a--,tc(r,a)):mx[e].add(s))}function vx(){if(!Iu){Ok(!0);for(const e in Fs)xx(e,t=>{const r=t.data,o=t.provider,n=r.prefix,i=Ro(o,n);if(!Eu(i,r).length)return!1;const a=r.lastModified||-1;return i.lastModifiedCached=i.lastModifiedCached?Math.min(i.lastModifiedCached,a):a,!0})}}function Bk(e,t){const r=e.lastModifiedCached;if(r&&r>=t)return r===t;if(e.lastModifiedCached=t,r)for(const o in Fs)xx(o,n=>{const i=n.data;return n.provider!==e.provider||i.prefix!==e.prefix||i.lastModified===t});return!0}function Hk(e,t){Iu||vx();function r(o){let n;if(!Fs[o]||!(n=gx(o)))return;const i=mx[o];let a;if(i.size)i.delete(a=Array.from(i).shift());else if(a=rc(n),!tc(n,a+1))return;const s={cached:Math.floor(Date.now()/px),provider:e.provider,data:t};return $u(n,di+a.toString(),JSON.stringify(s))}t.lastModified&&!Bk(e,t.lastModified)||Object.keys(t.icons).length&&(t.not_found&&(t=Object.assign({},t),delete t.not_found),r("local")||r("session"))}function Kd(){}function Mk(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,Tk(e)}))}function Dk(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:r,prefix:o}=e,n=e.iconsToLoad;delete e.iconsToLoad;let i;if(!n||!(i=Jl(r)))return;i.prepare(r,o,n).forEach(s=>{Rk(r,s,l=>{if(typeof l!="object")s.icons.forEach(c=>{e.missing.add(c)});else try{const c=Eu(e,l);if(!c.length)return;const u=e.pendingIcons;u&&c.forEach(d=>{u.delete(d)}),Hk(e,l)}catch(c){console.error(c)}Mk(e)})})}))}const Fk=(e,t)=>{const r=kk(e,!0,lx()),o=_k(r);if(!o.pending.length){let l=!0;return t&&setTimeout(()=>{l&&t(o.loaded,o.missing,o.pending,Kd)}),()=>{l=!1}}const n=Object.create(null),i=[];let a,s;return o.pending.forEach(l=>{const{provider:c,prefix:u}=l;if(u===s&&c===a)return;a=c,s=u,i.push(Ro(c,u));const d=n[c]||(n[c]=Object.create(null));d[u]||(d[u]=[])}),o.pending.forEach(l=>{const{provider:c,prefix:u,name:d}=l,f=Ro(c,u),p=f.pendingIcons||(f.pendingIcons=new Set);p.has(d)||(p.add(d),n[c][u].push(d))}),i.forEach(l=>{const{provider:c,prefix:u}=l;n[c][u].length&&Dk(l,n[c][u])}),t?Pk(t,o,i):Kd};function zk(e,t){const r={...e};for(const o in t){const n=t[o],i=typeof n;o in cx?(n===null||n&&(i==="string"||i==="number"))&&(r[o]=n):i===typeof r[o]&&(r[o]=o==="rotate"?n%4:n)}return r}const Nk=/[\s,]+/;function Wk(e,t){t.split(Nk).forEach(r=>{switch(r.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function jk(e,t=0){const r=e.replace(/^-?[0-9.]*/,"");function o(n){for(;n<0;)n+=4;return n%4}if(r===""){const n=parseInt(e);return isNaN(n)?0:o(n)}else if(r!==e){let n=0;switch(r){case"%":n=25;break;case"deg":n=90}if(n){let i=parseFloat(e.slice(0,e.length-r.length));return isNaN(i)?0:(i=i/n,i%1===0?o(i):0)}}return t}function Uk(e,t){let r=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const o in t)r+=" "+o+'="'+t[o]+'"';return'"+e+""}function Vk(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function qk(e){return'url("data:image/svg+xml,'+Vk(e)+'")'}const Zd={...ux,inline:!1},Gk={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Kk={display:"inline-block"},oc={backgroundColor:"currentColor"},bx={backgroundColor:"transparent"},Xd={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Yd={webkitMask:oc,mask:oc,background:bx};for(const e in Yd){const t=Yd[e];for(const r in Xd)t[e+r]=Xd[r]}const na={};["horizontal","vertical"].forEach(e=>{const t=e.slice(0,1)+"Flip";na[e+"-flip"]=t,na[e.slice(0,1)+"-flip"]=t,na[e+"Flip"]=t});function Qd(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const Jd=(e,t)=>{const r=zk(Zd,t),o={...Gk},n=t.mode||"svg",i={},a=t.style,s=typeof a=="object"&&!(a instanceof Array)?a:{};for(let m in t){const v=t[m];if(v!==void 0)switch(m){case"icon":case"style":case"onLoad":case"mode":break;case"inline":case"hFlip":case"vFlip":r[m]=v===!0||v==="true"||v===1;break;case"flip":typeof v=="string"&&Wk(r,v);break;case"color":i.color=v;break;case"rotate":typeof v=="string"?r[m]=jk(v):typeof v=="number"&&(r[m]=v);break;case"ariaHidden":case"aria-hidden":v!==!0&&v!=="true"&&delete o["aria-hidden"];break;default:{const g=na[m];g?(v===!0||v==="true"||v===1)&&(r[g]=!0):Zd[m]===void 0&&(o[m]=v)}}}const l=uk(e,r),c=l.attributes;if(r.inline&&(i.verticalAlign="-0.125em"),n==="svg"){o.style={...i,...s},Object.assign(o,c);let m=0,v=t.id;return typeof v=="string"&&(v=v.replace(/-/g,"_")),o.innerHTML=pk(l.body,v?()=>v+"ID"+m++:"iconifyVue"),H("svg",o)}const{body:u,width:d,height:f}=e,p=n==="mask"||(n==="bg"?!1:u.indexOf("currentColor")!==-1),h=Uk(u,{...c,width:d+"",height:f+""});return o.style={...i,"--svg":qk(h),width:Qd(c.width),height:Qd(c.height),...Kk,...p?oc:bx,...s},H("span",o)};lx(!0);mk("",wk);if(typeof document<"u"&&typeof window<"u"){vx();const e=window;if(e.IconifyPreload!==void 0){const t=e.IconifyPreload,r="Invalid IconifyPreload syntax.";typeof t=="object"&&t!==null&&(t instanceof Array?t:[t]).forEach(o=>{try{(typeof o!="object"||o===null||o instanceof Array||typeof o.icons!="object"||typeof o.prefix!="string"||!ak(o))&&console.error(r)}catch{console.error(r)}})}if(e.IconifyProviders!==void 0){const t=e.IconifyProviders;if(typeof t=="object"&&t!==null)for(let r in t){const o="IconifyProviders["+r+"] is invalid.";try{const n=t[r];if(typeof n!="object"||!n||n.resources===void 0)continue;gk(r,n)||console.error(o)}catch{console.error(o)}}}}const Zk={...Ds,body:""},rH=Oe({inheritAttrs:!1,data(){return{iconMounted:!1,counter:0}},mounted(){this._name="",this._loadingIcon=null,this.iconMounted=!0},unmounted(){this.abortLoading()},methods:{abortLoading(){this._loadingIcon&&(this._loadingIcon.abort(),this._loadingIcon=null)},getIcon(e,t){if(typeof e=="object"&&e!==null&&typeof e.body=="string")return this._name="",this.abortLoading(),{data:e};let r;if(typeof e!="string"||(r=Ms(e,!1,!0))===null)return this.abortLoading(),null;const o=nk(r);if(!o)return(!this._loadingIcon||this._loadingIcon.name!==e)&&(this.abortLoading(),this._name="",o!==null&&(this._loadingIcon={name:e,abort:Fk([r],()=>{this.counter++})})),null;this.abortLoading(),this._name!==e&&(this._name=e,t&&t(e));const n=["iconify"];return r.prefix!==""&&n.push("iconify--"+r.prefix),r.provider!==""&&n.push("iconify--"+r.provider),{data:o,classes:n}}},render(){this.counter;const e=this.$attrs,t=this.iconMounted?this.getIcon(e.icon,e.onLoad):null;if(!t)return Jd(Zk,e);let r=e;return t.classes&&(r={...e,class:(typeof e.class=="string"?e.class+" ":"")+t.classes.join(" ")}),Jd({...Ds,...t.data},r)}}),Xk="modulepreload",Yk=function(e){return"/"+e},ef={},Pn=function(t,r,o){if(!r||r.length===0)return t();const n=document.getElementsByTagName("link");return Promise.all(r.map(i=>{if(i=Yk(i),i in ef)return;ef[i]=!0;const a=i.endsWith(".css"),s=a?'[rel="stylesheet"]':"";if(!!o)for(let u=n.length-1;u>=0;u--){const d=n[u];if(d.href===i&&(!a||d.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${s}`))return;const c=document.createElement("link");if(c.rel=a?"stylesheet":Xk,a||(c.as="script",c.crossOrigin=""),c.href=i,document.head.appendChild(c),a)return new Promise((u,d)=>{c.addEventListener("load",u),c.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t())};var Cx=(e=>(e[e.lan=0]="lan",e[e.wan=1]="wan",e))(Cx||{}),yx=(e=>(e[e.icon=1]="icon",e[e.info=0]="info",e[e.small=1]="small",e))(yx||{}),Qk=!1;/*! - * pinia v2.0.33 - * (c) 2023 Eduardo San Martin Morote - * @license MIT - */let Sx;const zs=e=>Sx=e,wx=Symbol();function nc(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Wn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Wn||(Wn={}));function Jk(){const e=Oc(!0),t=e.run(()=>de({}));let r=[],o=[];const n=to({install(i){zs(n),n._a=i,i.provide(wx,n),i.config.globalProperties.$pinia=n,o.forEach(a=>r.push(a)),o=[]},use(i){return!this._a&&!Qk?o.push(i):r.push(i),this},_p:r,_a:null,_e:e,_s:new Map,state:t});return n}const _x=()=>{};function tf(e,t,r,o=_x){e.push(t);const n=()=>{const i=e.indexOf(t);i>-1&&(e.splice(i,1),o())};return!r&&Gh()&&tb(n),n}function jo(e,...t){e.slice().forEach(r=>{r(...t)})}function ic(e,t){e instanceof Map&&t instanceof Map&&t.forEach((r,o)=>e.set(o,r)),e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const r in t){if(!t.hasOwnProperty(r))continue;const o=t[r],n=e[r];nc(n)&&nc(o)&&e.hasOwnProperty(r)&&!ot(o)&&!Qr(o)?e[r]=ic(n,o):e[r]=o}return e}const eL=Symbol();function tL(e){return!nc(e)||!e.hasOwnProperty(eL)}const{assign:Kr}=Object;function rL(e){return!!(ot(e)&&e.effect)}function oL(e,t,r,o){const{state:n,actions:i,getters:a}=t,s=r.state.value[e];let l;function c(){s||(r.state.value[e]=n?n():{});const u=Rb(r.state.value[e]);return Kr(u,i,Object.keys(a||{}).reduce((d,f)=>(d[f]=to(ae(()=>{zs(r);const p=r._s.get(e);return a[f].call(p,p)})),d),{}))}return l=Tx(e,c,t,r,o,!0),l}function Tx(e,t,r={},o,n,i){let a;const s=Kr({actions:{}},r),l={deep:!0};let c,u,d=to([]),f=to([]),p;const h=o.state.value[e];!i&&!h&&(o.state.value[e]={}),de({});let m;function v(S){let E;c=u=!1,typeof S=="function"?(S(o.state.value[e]),E={type:Wn.patchFunction,storeId:e,events:p}):(ic(o.state.value[e],S),E={type:Wn.patchObject,payload:S,storeId:e,events:p});const I=m=Symbol();jt().then(()=>{m===I&&(c=!0)}),u=!0,jo(d,E,o.state.value[e])}const g=i?function(){const{state:E}=r,I=E?E():{};this.$patch(P=>{Kr(P,I)})}:_x;function x(){a.stop(),d=[],f=[],o._s.delete(e)}function C(S,E){return function(){zs(o);const I=Array.from(arguments),P=[],$=[];function R(Y){P.push(Y)}function B(Y){$.push(Y)}jo(f,{args:I,name:S,store:w,after:R,onError:B});let j;try{j=E.apply(this&&this.$id===e?this:w,I)}catch(Y){throw jo($,Y),Y}return j instanceof Promise?j.then(Y=>(jo(P,Y),Y)).catch(Y=>(jo($,Y),Promise.reject(Y))):(jo(P,j),j)}}const b={_p:o,$id:e,$onAction:tf.bind(null,f),$patch:v,$reset:g,$subscribe(S,E={}){const I=tf(d,S,E.detached,()=>P()),P=a.run(()=>kt(()=>o.state.value[e],$=>{(E.flush==="sync"?u:c)&&S({storeId:e,type:Wn.direct,events:p},$)},Kr({},l,E)));return I},$dispose:x},w=Or(b);o._s.set(e,w);const T=o._e.run(()=>(a=Oc(),a.run(()=>t())));for(const S in T){const E=T[S];if(ot(E)&&!rL(E)||Qr(E))i||(h&&tL(E)&&(ot(E)?E.value=h[S]:ic(E,h[S])),o.state.value[e][S]=E);else if(typeof E=="function"){const I=C(S,E);T[S]=I,s.actions[S]=E}}return Kr(w,T),Kr(He(w),T),Object.defineProperty(w,"$state",{get:()=>o.state.value[e],set:S=>{v(E=>{Kr(E,S)})}}),o._p.forEach(S=>{Kr(w,a.run(()=>S({store:w,app:o._a,pinia:o,options:s})))}),h&&i&&r.hydrate&&r.hydrate(w.$state,h),c=!0,u=!0,w}function Do(e,t,r){let o,n;const i=typeof t=="function";typeof e=="string"?(o=e,n=i?r:t):(n=e,o=e.id);function a(s,l){const c=ir();return s=s||c&&Me(wx,null),s&&zs(s),s=Sx,s._s.has(o)||(i?Tx(o,t,n,s):oL(o,n,s)),s._s.get(o)}return a.$id=o,a}var ac={},nL={get exports(){return ac},set exports(e){ac=e}};function iL(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var wa={},aL={get exports(){return wa},set exports(e){wa=e}};const sL={},lL=Object.freeze(Object.defineProperty({__proto__:null,default:sL},Symbol.toStringTag,{value:"Module"})),cL=w5(lL);var rf;function De(){return rf||(rf=1,function(e,t){(function(r,o){e.exports=o()})(Ae,function(){var r=r||function(o,n){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof Ae<"u"&&Ae.crypto&&(i=Ae.crypto),!i&&typeof iL=="function")try{i=cL}catch{}var a=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function x(){}return function(C){var b;return x.prototype=C,b=new x,x.prototype=null,b}}(),l={},c=l.lib={},u=c.Base=function(){return{extend:function(x){var C=s(this);return x&&C.mixIn(x),(!C.hasOwnProperty("init")||this.init===C.init)&&(C.init=function(){C.$super.init.apply(this,arguments)}),C.init.prototype=C,C.$super=this,C},create:function(){var x=this.extend();return x.init.apply(x,arguments),x},init:function(){},mixIn:function(x){for(var C in x)x.hasOwnProperty(C)&&(this[C]=x[C]);x.hasOwnProperty("toString")&&(this.toString=x.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),d=c.WordArray=u.extend({init:function(x,C){x=this.words=x||[],C!=n?this.sigBytes=C:this.sigBytes=x.length*4},toString:function(x){return(x||p).stringify(this)},concat:function(x){var C=this.words,b=x.words,w=this.sigBytes,T=x.sigBytes;if(this.clamp(),w%4)for(var S=0;S>>2]>>>24-S%4*8&255;C[w+S>>>2]|=E<<24-(w+S)%4*8}else for(var I=0;I>>2]=b[I>>>2];return this.sigBytes+=T,this},clamp:function(){var x=this.words,C=this.sigBytes;x[C>>>2]&=4294967295<<32-C%4*8,x.length=o.ceil(C/4)},clone:function(){var x=u.clone.call(this);return x.words=this.words.slice(0),x},random:function(x){for(var C=[],b=0;b>>2]>>>24-T%4*8&255;w.push((S>>>4).toString(16)),w.push((S&15).toString(16))}return w.join("")},parse:function(x){for(var C=x.length,b=[],w=0;w>>3]|=parseInt(x.substr(w,2),16)<<24-w%8*4;return new d.init(b,C/2)}},h=f.Latin1={stringify:function(x){for(var C=x.words,b=x.sigBytes,w=[],T=0;T>>2]>>>24-T%4*8&255;w.push(String.fromCharCode(S))}return w.join("")},parse:function(x){for(var C=x.length,b=[],w=0;w>>2]|=(x.charCodeAt(w)&255)<<24-w%4*8;return new d.init(b,C)}},m=f.Utf8={stringify:function(x){try{return decodeURIComponent(escape(h.stringify(x)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(x){return h.parse(unescape(encodeURIComponent(x)))}},v=c.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new d.init,this._nDataBytes=0},_append:function(x){typeof x=="string"&&(x=m.parse(x)),this._data.concat(x),this._nDataBytes+=x.sigBytes},_process:function(x){var C,b=this._data,w=b.words,T=b.sigBytes,S=this.blockSize,E=S*4,I=T/E;x?I=o.ceil(I):I=o.max((I|0)-this._minBufferSize,0);var P=I*S,$=o.min(P*4,T);if(P){for(var R=0;R>>2]|=l[d]<<24-d%4*8;a.call(this,u,c)}else a.apply(this,arguments)};s.prototype=i}}(),r.lib.WordArray})}(dL)),Ta}var Ea={},hL={get exports(){return Ea},set exports(e){Ea=e}},af;function pL(){return af||(af=1,function(e,t){(function(r,o){e.exports=o(De())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.WordArray,a=o.enc;a.Utf16=a.Utf16BE={stringify:function(l){for(var c=l.words,u=l.sigBytes,d=[],f=0;f>>2]>>>16-f%4*8&65535;d.push(String.fromCharCode(p))}return d.join("")},parse:function(l){for(var c=l.length,u=[],d=0;d>>1]|=l.charCodeAt(d)<<16-d%2*16;return i.create(u,c*2)}},a.Utf16LE={stringify:function(l){for(var c=l.words,u=l.sigBytes,d=[],f=0;f>>2]>>>16-f%4*8&65535);d.push(String.fromCharCode(p))}return d.join("")},parse:function(l){for(var c=l.length,u=[],d=0;d>>1]|=s(l.charCodeAt(d)<<16-d%2*16);return i.create(u,c*2)}};function s(l){return l<<8&4278255360|l>>>8&16711935}}(),r.enc.Utf16})}(hL)),Ea}var Pa={},mL={get exports(){return Pa},set exports(e){Pa=e}},sf;function vn(){return sf||(sf=1,function(e,t){(function(r,o){e.exports=o(De())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.WordArray,a=o.enc;a.Base64={stringify:function(l){var c=l.words,u=l.sigBytes,d=this._map;l.clamp();for(var f=[],p=0;p>>2]>>>24-p%4*8&255,m=c[p+1>>>2]>>>24-(p+1)%4*8&255,v=c[p+2>>>2]>>>24-(p+2)%4*8&255,g=h<<16|m<<8|v,x=0;x<4&&p+x*.75>>6*(3-x)&63));var C=d.charAt(64);if(C)for(;f.length%4;)f.push(C);return f.join("")},parse:function(l){var c=l.length,u=this._map,d=this._reverseMap;if(!d){d=this._reverseMap=[];for(var f=0;f>>6-p%4*2,v=h|m;d[f>>>2]|=v<<24-f%4*8,f++}return i.create(d,f)}}(),r.enc.Base64})}(mL)),Pa}var ka={},gL={get exports(){return ka},set exports(e){ka=e}},lf;function xL(){return lf||(lf=1,function(e,t){(function(r,o){e.exports=o(De())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.WordArray,a=o.enc;a.Base64url={stringify:function(l,c=!0){var u=l.words,d=l.sigBytes,f=c?this._safe_map:this._map;l.clamp();for(var p=[],h=0;h>>2]>>>24-h%4*8&255,v=u[h+1>>>2]>>>24-(h+1)%4*8&255,g=u[h+2>>>2]>>>24-(h+2)%4*8&255,x=m<<16|v<<8|g,C=0;C<4&&h+C*.75>>6*(3-C)&63));var b=f.charAt(64);if(b)for(;p.length%4;)p.push(b);return p.join("")},parse:function(l,c=!0){var u=l.length,d=c?this._safe_map:this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var p=0;p>>6-p%4*2,v=h|m;d[f>>>2]|=v<<24-f%4*8,f++}return i.create(d,f)}}(),r.enc.Base64url})}(gL)),ka}var La={},vL={get exports(){return La},set exports(e){La=e}},cf;function bn(){return cf||(cf=1,function(e,t){(function(r,o){e.exports=o(De())})(Ae,function(r){return function(o){var n=r,i=n.lib,a=i.WordArray,s=i.Hasher,l=n.algo,c=[];(function(){for(var m=0;m<64;m++)c[m]=o.abs(o.sin(m+1))*4294967296|0})();var u=l.MD5=s.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(m,v){for(var g=0;g<16;g++){var x=v+g,C=m[x];m[x]=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360}var b=this._hash.words,w=m[v+0],T=m[v+1],S=m[v+2],E=m[v+3],I=m[v+4],P=m[v+5],$=m[v+6],R=m[v+7],B=m[v+8],j=m[v+9],Y=m[v+10],J=m[v+11],Q=m[v+12],ie=m[v+13],ge=m[v+14],ve=m[v+15],z=b[0],W=b[1],Z=b[2],V=b[3];z=d(z,W,Z,V,w,7,c[0]),V=d(V,z,W,Z,T,12,c[1]),Z=d(Z,V,z,W,S,17,c[2]),W=d(W,Z,V,z,E,22,c[3]),z=d(z,W,Z,V,I,7,c[4]),V=d(V,z,W,Z,P,12,c[5]),Z=d(Z,V,z,W,$,17,c[6]),W=d(W,Z,V,z,R,22,c[7]),z=d(z,W,Z,V,B,7,c[8]),V=d(V,z,W,Z,j,12,c[9]),Z=d(Z,V,z,W,Y,17,c[10]),W=d(W,Z,V,z,J,22,c[11]),z=d(z,W,Z,V,Q,7,c[12]),V=d(V,z,W,Z,ie,12,c[13]),Z=d(Z,V,z,W,ge,17,c[14]),W=d(W,Z,V,z,ve,22,c[15]),z=f(z,W,Z,V,T,5,c[16]),V=f(V,z,W,Z,$,9,c[17]),Z=f(Z,V,z,W,J,14,c[18]),W=f(W,Z,V,z,w,20,c[19]),z=f(z,W,Z,V,P,5,c[20]),V=f(V,z,W,Z,Y,9,c[21]),Z=f(Z,V,z,W,ve,14,c[22]),W=f(W,Z,V,z,I,20,c[23]),z=f(z,W,Z,V,j,5,c[24]),V=f(V,z,W,Z,ge,9,c[25]),Z=f(Z,V,z,W,E,14,c[26]),W=f(W,Z,V,z,B,20,c[27]),z=f(z,W,Z,V,ie,5,c[28]),V=f(V,z,W,Z,S,9,c[29]),Z=f(Z,V,z,W,R,14,c[30]),W=f(W,Z,V,z,Q,20,c[31]),z=p(z,W,Z,V,P,4,c[32]),V=p(V,z,W,Z,B,11,c[33]),Z=p(Z,V,z,W,J,16,c[34]),W=p(W,Z,V,z,ge,23,c[35]),z=p(z,W,Z,V,T,4,c[36]),V=p(V,z,W,Z,I,11,c[37]),Z=p(Z,V,z,W,R,16,c[38]),W=p(W,Z,V,z,Y,23,c[39]),z=p(z,W,Z,V,ie,4,c[40]),V=p(V,z,W,Z,w,11,c[41]),Z=p(Z,V,z,W,E,16,c[42]),W=p(W,Z,V,z,$,23,c[43]),z=p(z,W,Z,V,j,4,c[44]),V=p(V,z,W,Z,Q,11,c[45]),Z=p(Z,V,z,W,ve,16,c[46]),W=p(W,Z,V,z,S,23,c[47]),z=h(z,W,Z,V,w,6,c[48]),V=h(V,z,W,Z,R,10,c[49]),Z=h(Z,V,z,W,ge,15,c[50]),W=h(W,Z,V,z,P,21,c[51]),z=h(z,W,Z,V,Q,6,c[52]),V=h(V,z,W,Z,E,10,c[53]),Z=h(Z,V,z,W,Y,15,c[54]),W=h(W,Z,V,z,T,21,c[55]),z=h(z,W,Z,V,B,6,c[56]),V=h(V,z,W,Z,ve,10,c[57]),Z=h(Z,V,z,W,$,15,c[58]),W=h(W,Z,V,z,ie,21,c[59]),z=h(z,W,Z,V,I,6,c[60]),V=h(V,z,W,Z,J,10,c[61]),Z=h(Z,V,z,W,S,15,c[62]),W=h(W,Z,V,z,j,21,c[63]),b[0]=b[0]+z|0,b[1]=b[1]+W|0,b[2]=b[2]+Z|0,b[3]=b[3]+V|0},_doFinalize:function(){var m=this._data,v=m.words,g=this._nDataBytes*8,x=m.sigBytes*8;v[x>>>5]|=128<<24-x%32;var C=o.floor(g/4294967296),b=g;v[(x+64>>>9<<4)+15]=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,v[(x+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360,m.sigBytes=(v.length+1)*4,this._process();for(var w=this._hash,T=w.words,S=0;S<4;S++){var E=T[S];T[S]=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360}return w},clone:function(){var m=s.clone.call(this);return m._hash=this._hash.clone(),m}});function d(m,v,g,x,C,b,w){var T=m+(v&g|~v&x)+C+w;return(T<>>32-b)+v}function f(m,v,g,x,C,b,w){var T=m+(v&x|g&~x)+C+w;return(T<>>32-b)+v}function p(m,v,g,x,C,b,w){var T=m+(v^g^x)+C+w;return(T<>>32-b)+v}function h(m,v,g,x,C,b,w){var T=m+(g^(v|~x))+C+w;return(T<>>32-b)+v}n.MD5=s._createHelper(u),n.HmacMD5=s._createHmacHelper(u)}(Math),r.MD5})}(vL)),La}var $a={},bL={get exports(){return $a},set exports(e){$a=e}},uf;function Ru(){return uf||(uf=1,function(e,t){(function(r,o){e.exports=o(De())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.WordArray,a=n.Hasher,s=o.algo,l=[],c=s.SHA1=a.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(u,d){for(var f=this._hash.words,p=f[0],h=f[1],m=f[2],v=f[3],g=f[4],x=0;x<80;x++){if(x<16)l[x]=u[d+x]|0;else{var C=l[x-3]^l[x-8]^l[x-14]^l[x-16];l[x]=C<<1|C>>>31}var b=(p<<5|p>>>27)+g+l[x];x<20?b+=(h&m|~h&v)+1518500249:x<40?b+=(h^m^v)+1859775393:x<60?b+=(h&m|h&v|m&v)-1894007588:b+=(h^m^v)-899497514,g=v,v=m,m=h<<30|h>>>2,h=p,p=b}f[0]=f[0]+p|0,f[1]=f[1]+h|0,f[2]=f[2]+m|0,f[3]=f[3]+v|0,f[4]=f[4]+g|0},_doFinalize:function(){var u=this._data,d=u.words,f=this._nDataBytes*8,p=u.sigBytes*8;return d[p>>>5]|=128<<24-p%32,d[(p+64>>>9<<4)+14]=Math.floor(f/4294967296),d[(p+64>>>9<<4)+15]=f,u.sigBytes=d.length*4,this._process(),this._hash},clone:function(){var u=a.clone.call(this);return u._hash=this._hash.clone(),u}});o.SHA1=a._createHelper(c),o.HmacSHA1=a._createHmacHelper(c)}(),r.SHA1})}(bL)),$a}var Ia={},CL={get exports(){return Ia},set exports(e){Ia=e}},df;function Ex(){return df||(df=1,function(e,t){(function(r,o){e.exports=o(De())})(Ae,function(r){return function(o){var n=r,i=n.lib,a=i.WordArray,s=i.Hasher,l=n.algo,c=[],u=[];(function(){function p(g){for(var x=o.sqrt(g),C=2;C<=x;C++)if(!(g%C))return!1;return!0}function h(g){return(g-(g|0))*4294967296|0}for(var m=2,v=0;v<64;)p(m)&&(v<8&&(c[v]=h(o.pow(m,1/2))),u[v]=h(o.pow(m,1/3)),v++),m++})();var d=[],f=l.SHA256=s.extend({_doReset:function(){this._hash=new a.init(c.slice(0))},_doProcessBlock:function(p,h){for(var m=this._hash.words,v=m[0],g=m[1],x=m[2],C=m[3],b=m[4],w=m[5],T=m[6],S=m[7],E=0;E<64;E++){if(E<16)d[E]=p[h+E]|0;else{var I=d[E-15],P=(I<<25|I>>>7)^(I<<14|I>>>18)^I>>>3,$=d[E-2],R=($<<15|$>>>17)^($<<13|$>>>19)^$>>>10;d[E]=P+d[E-7]+R+d[E-16]}var B=b&w^~b&T,j=v&g^v&x^g&x,Y=(v<<30|v>>>2)^(v<<19|v>>>13)^(v<<10|v>>>22),J=(b<<26|b>>>6)^(b<<21|b>>>11)^(b<<7|b>>>25),Q=S+J+B+u[E]+d[E],ie=Y+j;S=T,T=w,w=b,b=C+Q|0,C=x,x=g,g=v,v=Q+ie|0}m[0]=m[0]+v|0,m[1]=m[1]+g|0,m[2]=m[2]+x|0,m[3]=m[3]+C|0,m[4]=m[4]+b|0,m[5]=m[5]+w|0,m[6]=m[6]+T|0,m[7]=m[7]+S|0},_doFinalize:function(){var p=this._data,h=p.words,m=this._nDataBytes*8,v=p.sigBytes*8;return h[v>>>5]|=128<<24-v%32,h[(v+64>>>9<<4)+14]=o.floor(m/4294967296),h[(v+64>>>9<<4)+15]=m,p.sigBytes=h.length*4,this._process(),this._hash},clone:function(){var p=s.clone.call(this);return p._hash=this._hash.clone(),p}});n.SHA256=s._createHelper(f),n.HmacSHA256=s._createHmacHelper(f)}(Math),r.SHA256})}(CL)),Ia}var Ra={},yL={get exports(){return Ra},set exports(e){Ra=e}},ff;function SL(){return ff||(ff=1,function(e,t){(function(r,o,n){e.exports=o(De(),Ex())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.WordArray,a=o.algo,s=a.SHA256,l=a.SHA224=s.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var c=s._doFinalize.call(this);return c.sigBytes-=4,c}});o.SHA224=s._createHelper(l),o.HmacSHA224=s._createHmacHelper(l)}(),r.SHA224})}(yL)),Ra}var Aa={},wL={get exports(){return Aa},set exports(e){Aa=e}},hf;function Px(){return hf||(hf=1,function(e,t){(function(r,o,n){e.exports=o(De(),Ns())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.Hasher,a=o.x64,s=a.Word,l=a.WordArray,c=o.algo;function u(){return s.create.apply(s,arguments)}var d=[u(1116352408,3609767458),u(1899447441,602891725),u(3049323471,3964484399),u(3921009573,2173295548),u(961987163,4081628472),u(1508970993,3053834265),u(2453635748,2937671579),u(2870763221,3664609560),u(3624381080,2734883394),u(310598401,1164996542),u(607225278,1323610764),u(1426881987,3590304994),u(1925078388,4068182383),u(2162078206,991336113),u(2614888103,633803317),u(3248222580,3479774868),u(3835390401,2666613458),u(4022224774,944711139),u(264347078,2341262773),u(604807628,2007800933),u(770255983,1495990901),u(1249150122,1856431235),u(1555081692,3175218132),u(1996064986,2198950837),u(2554220882,3999719339),u(2821834349,766784016),u(2952996808,2566594879),u(3210313671,3203337956),u(3336571891,1034457026),u(3584528711,2466948901),u(113926993,3758326383),u(338241895,168717936),u(666307205,1188179964),u(773529912,1546045734),u(1294757372,1522805485),u(1396182291,2643833823),u(1695183700,2343527390),u(1986661051,1014477480),u(2177026350,1206759142),u(2456956037,344077627),u(2730485921,1290863460),u(2820302411,3158454273),u(3259730800,3505952657),u(3345764771,106217008),u(3516065817,3606008344),u(3600352804,1432725776),u(4094571909,1467031594),u(275423344,851169720),u(430227734,3100823752),u(506948616,1363258195),u(659060556,3750685593),u(883997877,3785050280),u(958139571,3318307427),u(1322822218,3812723403),u(1537002063,2003034995),u(1747873779,3602036899),u(1955562222,1575990012),u(2024104815,1125592928),u(2227730452,2716904306),u(2361852424,442776044),u(2428436474,593698344),u(2756734187,3733110249),u(3204031479,2999351573),u(3329325298,3815920427),u(3391569614,3928383900),u(3515267271,566280711),u(3940187606,3454069534),u(4118630271,4000239992),u(116418474,1914138554),u(174292421,2731055270),u(289380356,3203993006),u(460393269,320620315),u(685471733,587496836),u(852142971,1086792851),u(1017036298,365543100),u(1126000580,2618297676),u(1288033470,3409855158),u(1501505948,4234509866),u(1607167915,987167468),u(1816402316,1246189591)],f=[];(function(){for(var h=0;h<80;h++)f[h]=u()})();var p=c.SHA512=i.extend({_doReset:function(){this._hash=new l.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(h,m){for(var v=this._hash.words,g=v[0],x=v[1],C=v[2],b=v[3],w=v[4],T=v[5],S=v[6],E=v[7],I=g.high,P=g.low,$=x.high,R=x.low,B=C.high,j=C.low,Y=b.high,J=b.low,Q=w.high,ie=w.low,ge=T.high,ve=T.low,z=S.high,W=S.low,Z=E.high,V=E.low,D=I,U=P,re=$,ee=R,ce=B,ke=j,ye=Y,k=J,y=Q,_=ie,L=ge,O=ve,N=z,X=W,te=Z,q=V,F=0;F<80;F++){var A,M,ue=f[F];if(F<16)M=ue.high=h[m+F*2]|0,A=ue.low=h[m+F*2+1]|0;else{var xe=f[F-15],Te=xe.high,Ie=xe.low,Re=(Te>>>1|Ie<<31)^(Te>>>8|Ie<<24)^Te>>>7,Ue=(Ie>>>1|Te<<31)^(Ie>>>8|Te<<24)^(Ie>>>7|Te<<25),ct=f[F-2],xt=ct.high,lr=ct.low,cr=(xt>>>19|lr<<13)^(xt<<3|lr>>>29)^xt>>>6,Ut=(lr>>>19|xt<<13)^(lr<<3|xt>>>29)^(lr>>>6|xt<<26),vt=f[F-7],oe=vt.high,be=vt.low,Ee=f[F-16],Ve=Ee.high,et=Ee.low;A=Ue+be,M=Re+oe+(A>>>0>>0?1:0),A=A+Ut,M=M+cr+(A>>>0>>0?1:0),A=A+et,M=M+Ve+(A>>>0>>0?1:0),ue.high=M,ue.low=A}var St=y&L^~y&N,Vt=_&O^~_&X,Qe=D&re^D&ce^re&ce,Qt=U&ee^U&ke^ee&ke,uo=(D>>>28|U<<4)^(D<<30|U>>>2)^(D<<25|U>>>7),Ju=(U>>>28|D<<4)^(U<<30|D>>>2)^(U<<25|D>>>7),Hv=(y>>>14|_<<18)^(y>>>18|_<<14)^(y<<23|_>>>9),Mv=(_>>>14|y<<18)^(_>>>18|y<<14)^(_<<23|y>>>9),e0=d[F],Dv=e0.high,t0=e0.low,Ft=q+Mv,zr=te+Hv+(Ft>>>0>>0?1:0),Ft=Ft+Vt,zr=zr+St+(Ft>>>0>>0?1:0),Ft=Ft+t0,zr=zr+Dv+(Ft>>>0>>0?1:0),Ft=Ft+A,zr=zr+M+(Ft>>>0>>0?1:0),r0=Ju+Qt,Fv=uo+Qe+(r0>>>0>>0?1:0);te=N,q=X,N=L,X=O,L=y,O=_,_=k+Ft|0,y=ye+zr+(_>>>0>>0?1:0)|0,ye=ce,k=ke,ce=re,ke=ee,re=D,ee=U,U=Ft+r0|0,D=zr+Fv+(U>>>0>>0?1:0)|0}P=g.low=P+U,g.high=I+D+(P>>>0>>0?1:0),R=x.low=R+ee,x.high=$+re+(R>>>0>>0?1:0),j=C.low=j+ke,C.high=B+ce+(j>>>0>>0?1:0),J=b.low=J+k,b.high=Y+ye+(J>>>0>>0?1:0),ie=w.low=ie+_,w.high=Q+y+(ie>>>0<_>>>0?1:0),ve=T.low=ve+O,T.high=ge+L+(ve>>>0>>0?1:0),W=S.low=W+X,S.high=z+N+(W>>>0>>0?1:0),V=E.low=V+q,E.high=Z+te+(V>>>0>>0?1:0)},_doFinalize:function(){var h=this._data,m=h.words,v=this._nDataBytes*8,g=h.sigBytes*8;m[g>>>5]|=128<<24-g%32,m[(g+128>>>10<<5)+30]=Math.floor(v/4294967296),m[(g+128>>>10<<5)+31]=v,h.sigBytes=m.length*4,this._process();var x=this._hash.toX32();return x},clone:function(){var h=i.clone.call(this);return h._hash=this._hash.clone(),h},blockSize:1024/32});o.SHA512=i._createHelper(p),o.HmacSHA512=i._createHmacHelper(p)}(),r.SHA512})}(wL)),Aa}var Oa={},_L={get exports(){return Oa},set exports(e){Oa=e}},pf;function TL(){return pf||(pf=1,function(e,t){(function(r,o,n){e.exports=o(De(),Ns(),Px())})(Ae,function(r){return function(){var o=r,n=o.x64,i=n.Word,a=n.WordArray,s=o.algo,l=s.SHA512,c=s.SHA384=l.extend({_doReset:function(){this._hash=new a.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var u=l._doFinalize.call(this);return u.sigBytes-=16,u}});o.SHA384=l._createHelper(c),o.HmacSHA384=l._createHmacHelper(c)}(),r.SHA384})}(_L)),Oa}var Ba={},EL={get exports(){return Ba},set exports(e){Ba=e}},mf;function PL(){return mf||(mf=1,function(e,t){(function(r,o,n){e.exports=o(De(),Ns())})(Ae,function(r){return function(o){var n=r,i=n.lib,a=i.WordArray,s=i.Hasher,l=n.x64,c=l.Word,u=n.algo,d=[],f=[],p=[];(function(){for(var v=1,g=0,x=0;x<24;x++){d[v+5*g]=(x+1)*(x+2)/2%64;var C=g%5,b=(2*v+3*g)%5;v=C,g=b}for(var v=0;v<5;v++)for(var g=0;g<5;g++)f[v+5*g]=g+(2*v+3*g)%5*5;for(var w=1,T=0;T<24;T++){for(var S=0,E=0,I=0;I<7;I++){if(w&1){var P=(1<>>24)&16711935|(w<<24|w>>>8)&4278255360,T=(T<<8|T>>>24)&16711935|(T<<24|T>>>8)&4278255360;var S=x[b];S.high^=T,S.low^=w}for(var E=0;E<24;E++){for(var I=0;I<5;I++){for(var P=0,$=0,R=0;R<5;R++){var S=x[I+5*R];P^=S.high,$^=S.low}var B=h[I];B.high=P,B.low=$}for(var I=0;I<5;I++)for(var j=h[(I+4)%5],Y=h[(I+1)%5],J=Y.high,Q=Y.low,P=j.high^(J<<1|Q>>>31),$=j.low^(Q<<1|J>>>31),R=0;R<5;R++){var S=x[I+5*R];S.high^=P,S.low^=$}for(var ie=1;ie<25;ie++){var P,$,S=x[ie],ge=S.high,ve=S.low,z=d[ie];z<32?(P=ge<>>32-z,$=ve<>>32-z):(P=ve<>>64-z,$=ge<>>64-z);var W=h[f[ie]];W.high=P,W.low=$}var Z=h[0],V=x[0];Z.high=V.high,Z.low=V.low;for(var I=0;I<5;I++)for(var R=0;R<5;R++){var ie=I+5*R,S=x[ie],D=h[ie],U=h[(I+1)%5+5*R],re=h[(I+2)%5+5*R];S.high=D.high^~U.high&re.high,S.low=D.low^~U.low&re.low}var S=x[0],ee=p[E];S.high^=ee.high,S.low^=ee.low}},_doFinalize:function(){var v=this._data,g=v.words;this._nDataBytes*8;var x=v.sigBytes*8,C=this.blockSize*32;g[x>>>5]|=1<<24-x%32,g[(o.ceil((x+1)/C)*C>>>5)-1]|=128,v.sigBytes=g.length*4,this._process();for(var b=this._state,w=this.cfg.outputLength/8,T=w/8,S=[],E=0;E>>24)&16711935|(P<<24|P>>>8)&4278255360,$=($<<8|$>>>24)&16711935|($<<24|$>>>8)&4278255360,S.push($),S.push(P)}return new a.init(S,w)},clone:function(){for(var v=s.clone.call(this),g=v._state=this._state.slice(0),x=0;x<25;x++)g[x]=g[x].clone();return v}});n.SHA3=s._createHelper(m),n.HmacSHA3=s._createHmacHelper(m)}(Math),r.SHA3})}(EL)),Ba}var Ha={},kL={get exports(){return Ha},set exports(e){Ha=e}},gf;function LL(){return gf||(gf=1,function(e,t){(function(r,o){e.exports=o(De())})(Ae,function(r){/** @preserve - (c) 2012 by Cédric Mesnil. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */return function(o){var n=r,i=n.lib,a=i.WordArray,s=i.Hasher,l=n.algo,c=a.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=a.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),d=a.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),f=a.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),p=a.create([0,1518500249,1859775393,2400959708,2840853838]),h=a.create([1352829926,1548603684,1836072691,2053994217,0]),m=l.RIPEMD160=s.extend({_doReset:function(){this._hash=a.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(T,S){for(var E=0;E<16;E++){var I=S+E,P=T[I];T[I]=(P<<8|P>>>24)&16711935|(P<<24|P>>>8)&4278255360}var $=this._hash.words,R=p.words,B=h.words,j=c.words,Y=u.words,J=d.words,Q=f.words,ie,ge,ve,z,W,Z,V,D,U,re;Z=ie=$[0],V=ge=$[1],D=ve=$[2],U=z=$[3],re=W=$[4];for(var ee,E=0;E<80;E+=1)ee=ie+T[S+j[E]]|0,E<16?ee+=v(ge,ve,z)+R[0]:E<32?ee+=g(ge,ve,z)+R[1]:E<48?ee+=x(ge,ve,z)+R[2]:E<64?ee+=C(ge,ve,z)+R[3]:ee+=b(ge,ve,z)+R[4],ee=ee|0,ee=w(ee,J[E]),ee=ee+W|0,ie=W,W=z,z=w(ve,10),ve=ge,ge=ee,ee=Z+T[S+Y[E]]|0,E<16?ee+=b(V,D,U)+B[0]:E<32?ee+=C(V,D,U)+B[1]:E<48?ee+=x(V,D,U)+B[2]:E<64?ee+=g(V,D,U)+B[3]:ee+=v(V,D,U)+B[4],ee=ee|0,ee=w(ee,Q[E]),ee=ee+re|0,Z=re,re=U,U=w(D,10),D=V,V=ee;ee=$[1]+ve+U|0,$[1]=$[2]+z+re|0,$[2]=$[3]+W+Z|0,$[3]=$[4]+ie+V|0,$[4]=$[0]+ge+D|0,$[0]=ee},_doFinalize:function(){var T=this._data,S=T.words,E=this._nDataBytes*8,I=T.sigBytes*8;S[I>>>5]|=128<<24-I%32,S[(I+64>>>9<<4)+14]=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,T.sigBytes=(S.length+1)*4,this._process();for(var P=this._hash,$=P.words,R=0;R<5;R++){var B=$[R];$[R]=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360}return P},clone:function(){var T=s.clone.call(this);return T._hash=this._hash.clone(),T}});function v(T,S,E){return T^S^E}function g(T,S,E){return T&S|~T&E}function x(T,S,E){return(T|~S)^E}function C(T,S,E){return T&E|S&~E}function b(T,S,E){return T^(S|~E)}function w(T,S){return T<>>32-S}n.RIPEMD160=s._createHelper(m),n.HmacRIPEMD160=s._createHmacHelper(m)}(),r.RIPEMD160})}(kL)),Ha}var Ma={},$L={get exports(){return Ma},set exports(e){Ma=e}},xf;function Au(){return xf||(xf=1,function(e,t){(function(r,o){e.exports=o(De())})(Ae,function(r){(function(){var o=r,n=o.lib,i=n.Base,a=o.enc,s=a.Utf8,l=o.algo;l.HMAC=i.extend({init:function(c,u){c=this._hasher=new c.init,typeof u=="string"&&(u=s.parse(u));var d=c.blockSize,f=d*4;u.sigBytes>f&&(u=c.finalize(u)),u.clamp();for(var p=this._oKey=u.clone(),h=this._iKey=u.clone(),m=p.words,v=h.words,g=0;g>>2]&255;P.sigBytes-=$}};i.BlockCipher=p.extend({cfg:p.cfg.extend({mode:v,padding:x}),reset:function(){var P;p.reset.call(this);var $=this.cfg,R=$.iv,B=$.mode;this._xformMode==this._ENC_XFORM_MODE?P=B.createEncryptor:(P=B.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==P?this._mode.init(this,R&&R.words):(this._mode=P.call(B,this,R&&R.words),this._mode.__creator=P)},_doProcessBlock:function(P,$){this._mode.processBlock(P,$)},_doFinalize:function(){var P,$=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?($.pad(this._data,this.blockSize),P=this._process(!0)):(P=this._process(!0),$.unpad(P)),P},blockSize:128/32});var C=i.CipherParams=a.extend({init:function(P){this.mixIn(P)},toString:function(P){return(P||this.formatter).stringify(this)}}),b=n.format={},w=b.OpenSSL={stringify:function(P){var $,R=P.ciphertext,B=P.salt;return B?$=s.create([1398893684,1701076831]).concat(B).concat(R):$=R,$.toString(u)},parse:function(P){var $,R=u.parse(P),B=R.words;return B[0]==1398893684&&B[1]==1701076831&&($=s.create(B.slice(2,4)),B.splice(0,4),R.sigBytes-=16),C.create({ciphertext:R,salt:$})}},T=i.SerializableCipher=a.extend({cfg:a.extend({format:w}),encrypt:function(P,$,R,B){B=this.cfg.extend(B);var j=P.createEncryptor(R,B),Y=j.finalize($),J=j.cfg;return C.create({ciphertext:Y,key:R,iv:J.iv,algorithm:P,mode:J.mode,padding:J.padding,blockSize:P.blockSize,formatter:B.format})},decrypt:function(P,$,R,B){B=this.cfg.extend(B),$=this._parse($,B.format);var j=P.createDecryptor(R,B).finalize($.ciphertext);return j},_parse:function(P,$){return typeof P=="string"?$.parse(P,this):P}}),S=n.kdf={},E=S.OpenSSL={execute:function(P,$,R,B){B||(B=s.random(64/8));var j=f.create({keySize:$+R}).compute(P,B),Y=s.create(j.words.slice($),R*4);return j.sigBytes=$*4,C.create({key:j,iv:Y,salt:B})}},I=i.PasswordBasedCipher=T.extend({cfg:T.cfg.extend({kdf:E}),encrypt:function(P,$,R,B){B=this.cfg.extend(B);var j=B.kdf.execute(R,P.keySize,P.ivSize);B.iv=j.iv;var Y=T.encrypt.call(this,P,$,j.key,B);return Y.mixIn(j),Y},decrypt:function(P,$,R,B){B=this.cfg.extend(B),$=this._parse($,B.format);var j=B.kdf.execute(R,P.keySize,P.ivSize,$.salt);B.iv=j.iv;var Y=T.decrypt.call(this,P,$,j.key,B);return Y}})}()})}(OL)),za}var Na={},BL={get exports(){return Na},set exports(e){Na=e}},yf;function HL(){return yf||(yf=1,function(e,t){(function(r,o,n){e.exports=o(De(),yt())})(Ae,function(r){return r.mode.CFB=function(){var o=r.lib.BlockCipherMode.extend();o.Encryptor=o.extend({processBlock:function(i,a){var s=this._cipher,l=s.blockSize;n.call(this,i,a,l,s),this._prevBlock=i.slice(a,a+l)}}),o.Decryptor=o.extend({processBlock:function(i,a){var s=this._cipher,l=s.blockSize,c=i.slice(a,a+l);n.call(this,i,a,l,s),this._prevBlock=c}});function n(i,a,s,l){var c,u=this._iv;u?(c=u.slice(0),this._iv=void 0):c=this._prevBlock,l.encryptBlock(c,0);for(var d=0;d>24&255)===255){var l=s>>16&255,c=s>>8&255,u=s&255;l===255?(l=0,c===255?(c=0,u===255?u=0:++u):++c):++l,s=0,s+=l<<16,s+=c<<8,s+=u}else s+=1<<24;return s}function i(s){return(s[0]=n(s[0]))===0&&(s[1]=n(s[1])),s}var a=o.Encryptor=o.extend({processBlock:function(s,l){var c=this._cipher,u=c.blockSize,d=this._iv,f=this._counter;d&&(f=this._counter=d.slice(0),this._iv=void 0),i(f);var p=f.slice(0);c.encryptBlock(p,0);for(var h=0;h>>2]|=s<<24-l%4*8,o.sigBytes+=s},unpad:function(o){var n=o.words[o.sigBytes-1>>>2]&255;o.sigBytes-=n}},r.pad.Ansix923})}(VL)),qa}var Ga={},GL={get exports(){return Ga},set exports(e){Ga=e}},Pf;function KL(){return Pf||(Pf=1,function(e,t){(function(r,o,n){e.exports=o(De(),yt())})(Ae,function(r){return r.pad.Iso10126={pad:function(o,n){var i=n*4,a=i-o.sigBytes%i;o.concat(r.lib.WordArray.random(a-1)).concat(r.lib.WordArray.create([a<<24],1))},unpad:function(o){var n=o.words[o.sigBytes-1>>>2]&255;o.sigBytes-=n}},r.pad.Iso10126})}(GL)),Ga}var Ka={},ZL={get exports(){return Ka},set exports(e){Ka=e}},kf;function XL(){return kf||(kf=1,function(e,t){(function(r,o,n){e.exports=o(De(),yt())})(Ae,function(r){return r.pad.Iso97971={pad:function(o,n){o.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(o,n)},unpad:function(o){r.pad.ZeroPadding.unpad(o),o.sigBytes--}},r.pad.Iso97971})}(ZL)),Ka}var Za={},YL={get exports(){return Za},set exports(e){Za=e}},Lf;function QL(){return Lf||(Lf=1,function(e,t){(function(r,o,n){e.exports=o(De(),yt())})(Ae,function(r){return r.pad.ZeroPadding={pad:function(o,n){var i=n*4;o.clamp(),o.sigBytes+=i-(o.sigBytes%i||i)},unpad:function(o){for(var n=o.words,i=o.sigBytes-1,i=o.sigBytes-1;i>=0;i--)if(n[i>>>2]>>>24-i%4*8&255){o.sigBytes=i+1;break}}},r.pad.ZeroPadding})}(YL)),Za}var Xa={},JL={get exports(){return Xa},set exports(e){Xa=e}},$f;function e$(){return $f||($f=1,function(e,t){(function(r,o,n){e.exports=o(De(),yt())})(Ae,function(r){return r.pad.NoPadding={pad:function(){},unpad:function(){}},r.pad.NoPadding})}(JL)),Xa}var Ya={},t$={get exports(){return Ya},set exports(e){Ya=e}},If;function r$(){return If||(If=1,function(e,t){(function(r,o,n){e.exports=o(De(),yt())})(Ae,function(r){return function(o){var n=r,i=n.lib,a=i.CipherParams,s=n.enc,l=s.Hex,c=n.format;c.Hex={stringify:function(u){return u.ciphertext.toString(l)},parse:function(u){var d=l.parse(u);return a.create({ciphertext:d})}}}(),r.format.Hex})}(t$)),Ya}var Qa={},o$={get exports(){return Qa},set exports(e){Qa=e}},Rf;function n$(){return Rf||(Rf=1,function(e,t){(function(r,o,n){e.exports=o(De(),vn(),bn(),Fo(),yt())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.BlockCipher,a=o.algo,s=[],l=[],c=[],u=[],d=[],f=[],p=[],h=[],m=[],v=[];(function(){for(var C=[],b=0;b<256;b++)b<128?C[b]=b<<1:C[b]=b<<1^283;for(var w=0,T=0,b=0;b<256;b++){var S=T^T<<1^T<<2^T<<3^T<<4;S=S>>>8^S&255^99,s[w]=S,l[S]=w;var E=C[w],I=C[E],P=C[I],$=C[S]*257^S*16843008;c[w]=$<<24|$>>>8,u[w]=$<<16|$>>>16,d[w]=$<<8|$>>>24,f[w]=$;var $=P*16843009^I*65537^E*257^w*16843008;p[S]=$<<24|$>>>8,h[S]=$<<16|$>>>16,m[S]=$<<8|$>>>24,v[S]=$,w?(w=E^C[C[C[P^E]]],T^=C[C[T]]):w=T=1}})();var g=[0,1,2,4,8,16,32,64,128,27,54],x=a.AES=i.extend({_doReset:function(){var C;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var b=this._keyPriorReset=this._key,w=b.words,T=b.sigBytes/4,S=this._nRounds=T+6,E=(S+1)*4,I=this._keySchedule=[],P=0;P6&&P%T==4&&(C=s[C>>>24]<<24|s[C>>>16&255]<<16|s[C>>>8&255]<<8|s[C&255]):(C=C<<8|C>>>24,C=s[C>>>24]<<24|s[C>>>16&255]<<16|s[C>>>8&255]<<8|s[C&255],C^=g[P/T|0]<<24),I[P]=I[P-T]^C);for(var $=this._invKeySchedule=[],R=0;R>>24]]^h[s[C>>>16&255]]^m[s[C>>>8&255]]^v[s[C&255]]}}},encryptBlock:function(C,b){this._doCryptBlock(C,b,this._keySchedule,c,u,d,f,s)},decryptBlock:function(C,b){var w=C[b+1];C[b+1]=C[b+3],C[b+3]=w,this._doCryptBlock(C,b,this._invKeySchedule,p,h,m,v,l);var w=C[b+1];C[b+1]=C[b+3],C[b+3]=w},_doCryptBlock:function(C,b,w,T,S,E,I,P){for(var $=this._nRounds,R=C[b]^w[0],B=C[b+1]^w[1],j=C[b+2]^w[2],Y=C[b+3]^w[3],J=4,Q=1;Q<$;Q++){var ie=T[R>>>24]^S[B>>>16&255]^E[j>>>8&255]^I[Y&255]^w[J++],ge=T[B>>>24]^S[j>>>16&255]^E[Y>>>8&255]^I[R&255]^w[J++],ve=T[j>>>24]^S[Y>>>16&255]^E[R>>>8&255]^I[B&255]^w[J++],z=T[Y>>>24]^S[R>>>16&255]^E[B>>>8&255]^I[j&255]^w[J++];R=ie,B=ge,j=ve,Y=z}var ie=(P[R>>>24]<<24|P[B>>>16&255]<<16|P[j>>>8&255]<<8|P[Y&255])^w[J++],ge=(P[B>>>24]<<24|P[j>>>16&255]<<16|P[Y>>>8&255]<<8|P[R&255])^w[J++],ve=(P[j>>>24]<<24|P[Y>>>16&255]<<16|P[R>>>8&255]<<8|P[B&255])^w[J++],z=(P[Y>>>24]<<24|P[R>>>16&255]<<16|P[B>>>8&255]<<8|P[j&255])^w[J++];C[b]=ie,C[b+1]=ge,C[b+2]=ve,C[b+3]=z},keySize:256/32});o.AES=i._createHelper(x)}(),r.AES})}(o$)),Qa}var Ja={},i$={get exports(){return Ja},set exports(e){Ja=e}},Af;function a$(){return Af||(Af=1,function(e,t){(function(r,o,n){e.exports=o(De(),vn(),bn(),Fo(),yt())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.WordArray,a=n.BlockCipher,s=o.algo,l=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],c=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],u=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],d=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],f=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],p=s.DES=a.extend({_doReset:function(){for(var g=this._key,x=g.words,C=[],b=0;b<56;b++){var w=l[b]-1;C[b]=x[w>>>5]>>>31-w%32&1}for(var T=this._subKeys=[],S=0;S<16;S++){for(var E=T[S]=[],I=u[S],b=0;b<24;b++)E[b/6|0]|=C[(c[b]-1+I)%28]<<31-b%6,E[4+(b/6|0)]|=C[28+(c[b+24]-1+I)%28]<<31-b%6;E[0]=E[0]<<1|E[0]>>>31;for(var b=1;b<7;b++)E[b]=E[b]>>>(b-1)*4+3;E[7]=E[7]<<5|E[7]>>>27}for(var P=this._invSubKeys=[],b=0;b<16;b++)P[b]=T[15-b]},encryptBlock:function(g,x){this._doCryptBlock(g,x,this._subKeys)},decryptBlock:function(g,x){this._doCryptBlock(g,x,this._invSubKeys)},_doCryptBlock:function(g,x,C){this._lBlock=g[x],this._rBlock=g[x+1],h.call(this,4,252645135),h.call(this,16,65535),m.call(this,2,858993459),m.call(this,8,16711935),h.call(this,1,1431655765);for(var b=0;b<16;b++){for(var w=C[b],T=this._lBlock,S=this._rBlock,E=0,I=0;I<8;I++)E|=d[I][((S^w[I])&f[I])>>>0];this._lBlock=S,this._rBlock=T^E}var P=this._lBlock;this._lBlock=this._rBlock,this._rBlock=P,h.call(this,1,1431655765),m.call(this,8,16711935),m.call(this,2,858993459),h.call(this,16,65535),h.call(this,4,252645135),g[x]=this._lBlock,g[x+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function h(g,x){var C=(this._lBlock>>>g^this._rBlock)&x;this._rBlock^=C,this._lBlock^=C<>>g^this._lBlock)&x;this._lBlock^=C,this._rBlock^=C<192.");var C=x.slice(0,2),b=x.length<4?x.slice(0,2):x.slice(2,4),w=x.length<6?x.slice(0,2):x.slice(4,6);this._des1=p.createEncryptor(i.create(C)),this._des2=p.createEncryptor(i.create(b)),this._des3=p.createEncryptor(i.create(w))},encryptBlock:function(g,x){this._des1.encryptBlock(g,x),this._des2.decryptBlock(g,x),this._des3.encryptBlock(g,x)},decryptBlock:function(g,x){this._des3.decryptBlock(g,x),this._des2.encryptBlock(g,x),this._des1.decryptBlock(g,x)},keySize:192/32,ivSize:64/32,blockSize:64/32});o.TripleDES=a._createHelper(v)}(),r.TripleDES})}(i$)),Ja}var es={},s$={get exports(){return es},set exports(e){es=e}},Of;function l$(){return Of||(Of=1,function(e,t){(function(r,o,n){e.exports=o(De(),vn(),bn(),Fo(),yt())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.StreamCipher,a=o.algo,s=a.RC4=i.extend({_doReset:function(){for(var u=this._key,d=u.words,f=u.sigBytes,p=this._S=[],h=0;h<256;h++)p[h]=h;for(var h=0,m=0;h<256;h++){var v=h%f,g=d[v>>>2]>>>24-v%4*8&255;m=(m+p[h]+g)%256;var x=p[h];p[h]=p[m],p[m]=x}this._i=this._j=0},_doProcessBlock:function(u,d){u[d]^=l.call(this)},keySize:256/32,ivSize:0});function l(){for(var u=this._S,d=this._i,f=this._j,p=0,h=0;h<4;h++){d=(d+1)%256,f=(f+u[d])%256;var m=u[d];u[d]=u[f],u[f]=m,p|=u[(u[d]+u[f])%256]<<24-h*8}return this._i=d,this._j=f,p}o.RC4=i._createHelper(s);var c=a.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var u=this.cfg.drop;u>0;u--)l.call(this)}});o.RC4Drop=i._createHelper(c)}(),r.RC4})}(s$)),es}var ts={},c$={get exports(){return ts},set exports(e){ts=e}},Bf;function u$(){return Bf||(Bf=1,function(e,t){(function(r,o,n){e.exports=o(De(),vn(),bn(),Fo(),yt())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.StreamCipher,a=o.algo,s=[],l=[],c=[],u=a.Rabbit=i.extend({_doReset:function(){for(var f=this._key.words,p=this.cfg.iv,h=0;h<4;h++)f[h]=(f[h]<<8|f[h]>>>24)&16711935|(f[h]<<24|f[h]>>>8)&4278255360;var m=this._X=[f[0],f[3]<<16|f[2]>>>16,f[1],f[0]<<16|f[3]>>>16,f[2],f[1]<<16|f[0]>>>16,f[3],f[2]<<16|f[1]>>>16],v=this._C=[f[2]<<16|f[2]>>>16,f[0]&4294901760|f[1]&65535,f[3]<<16|f[3]>>>16,f[1]&4294901760|f[2]&65535,f[0]<<16|f[0]>>>16,f[2]&4294901760|f[3]&65535,f[1]<<16|f[1]>>>16,f[3]&4294901760|f[0]&65535];this._b=0;for(var h=0;h<4;h++)d.call(this);for(var h=0;h<8;h++)v[h]^=m[h+4&7];if(p){var g=p.words,x=g[0],C=g[1],b=(x<<8|x>>>24)&16711935|(x<<24|x>>>8)&4278255360,w=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,T=b>>>16|w&4294901760,S=w<<16|b&65535;v[0]^=b,v[1]^=T,v[2]^=w,v[3]^=S,v[4]^=b,v[5]^=T,v[6]^=w,v[7]^=S;for(var h=0;h<4;h++)d.call(this)}},_doProcessBlock:function(f,p){var h=this._X;d.call(this),s[0]=h[0]^h[5]>>>16^h[3]<<16,s[1]=h[2]^h[7]>>>16^h[5]<<16,s[2]=h[4]^h[1]>>>16^h[7]<<16,s[3]=h[6]^h[3]>>>16^h[1]<<16;for(var m=0;m<4;m++)s[m]=(s[m]<<8|s[m]>>>24)&16711935|(s[m]<<24|s[m]>>>8)&4278255360,f[p+m]^=s[m]},blockSize:128/32,ivSize:64/32});function d(){for(var f=this._X,p=this._C,h=0;h<8;h++)l[h]=p[h];p[0]=p[0]+1295307597+this._b|0,p[1]=p[1]+3545052371+(p[0]>>>0>>0?1:0)|0,p[2]=p[2]+886263092+(p[1]>>>0>>0?1:0)|0,p[3]=p[3]+1295307597+(p[2]>>>0>>0?1:0)|0,p[4]=p[4]+3545052371+(p[3]>>>0>>0?1:0)|0,p[5]=p[5]+886263092+(p[4]>>>0>>0?1:0)|0,p[6]=p[6]+1295307597+(p[5]>>>0>>0?1:0)|0,p[7]=p[7]+3545052371+(p[6]>>>0>>0?1:0)|0,this._b=p[7]>>>0>>0?1:0;for(var h=0;h<8;h++){var m=f[h]+p[h],v=m&65535,g=m>>>16,x=((v*v>>>17)+v*g>>>15)+g*g,C=((m&4294901760)*m|0)+((m&65535)*m|0);c[h]=x^C}f[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,f[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,f[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,f[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,f[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,f[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,f[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,f[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}o.Rabbit=i._createHelper(u)}(),r.Rabbit})}(c$)),ts}var rs={},d$={get exports(){return rs},set exports(e){rs=e}},Hf;function f$(){return Hf||(Hf=1,function(e,t){(function(r,o,n){e.exports=o(De(),vn(),bn(),Fo(),yt())})(Ae,function(r){return function(){var o=r,n=o.lib,i=n.StreamCipher,a=o.algo,s=[],l=[],c=[],u=a.RabbitLegacy=i.extend({_doReset:function(){var f=this._key.words,p=this.cfg.iv,h=this._X=[f[0],f[3]<<16|f[2]>>>16,f[1],f[0]<<16|f[3]>>>16,f[2],f[1]<<16|f[0]>>>16,f[3],f[2]<<16|f[1]>>>16],m=this._C=[f[2]<<16|f[2]>>>16,f[0]&4294901760|f[1]&65535,f[3]<<16|f[3]>>>16,f[1]&4294901760|f[2]&65535,f[0]<<16|f[0]>>>16,f[2]&4294901760|f[3]&65535,f[1]<<16|f[1]>>>16,f[3]&4294901760|f[0]&65535];this._b=0;for(var v=0;v<4;v++)d.call(this);for(var v=0;v<8;v++)m[v]^=h[v+4&7];if(p){var g=p.words,x=g[0],C=g[1],b=(x<<8|x>>>24)&16711935|(x<<24|x>>>8)&4278255360,w=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,T=b>>>16|w&4294901760,S=w<<16|b&65535;m[0]^=b,m[1]^=T,m[2]^=w,m[3]^=S,m[4]^=b,m[5]^=T,m[6]^=w,m[7]^=S;for(var v=0;v<4;v++)d.call(this)}},_doProcessBlock:function(f,p){var h=this._X;d.call(this),s[0]=h[0]^h[5]>>>16^h[3]<<16,s[1]=h[2]^h[7]>>>16^h[5]<<16,s[2]=h[4]^h[1]>>>16^h[7]<<16,s[3]=h[6]^h[3]>>>16^h[1]<<16;for(var m=0;m<4;m++)s[m]=(s[m]<<8|s[m]>>>24)&16711935|(s[m]<<24|s[m]>>>8)&4278255360,f[p+m]^=s[m]},blockSize:128/32,ivSize:64/32});function d(){for(var f=this._X,p=this._C,h=0;h<8;h++)l[h]=p[h];p[0]=p[0]+1295307597+this._b|0,p[1]=p[1]+3545052371+(p[0]>>>0>>0?1:0)|0,p[2]=p[2]+886263092+(p[1]>>>0>>0?1:0)|0,p[3]=p[3]+1295307597+(p[2]>>>0>>0?1:0)|0,p[4]=p[4]+3545052371+(p[3]>>>0>>0?1:0)|0,p[5]=p[5]+886263092+(p[4]>>>0>>0?1:0)|0,p[6]=p[6]+1295307597+(p[5]>>>0>>0?1:0)|0,p[7]=p[7]+3545052371+(p[6]>>>0>>0?1:0)|0,this._b=p[7]>>>0>>0?1:0;for(var h=0;h<8;h++){var m=f[h]+p[h],v=m&65535,g=m>>>16,x=((v*v>>>17)+v*g>>>15)+g*g,C=((m&4294901760)*m|0)+((m&65535)*m|0);c[h]=x^C}f[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,f[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,f[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,f[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,f[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,f[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,f[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,f[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}o.RabbitLegacy=i._createHelper(u)}(),r.RabbitLegacy})}(d$)),rs}(function(e,t){(function(r,o,n){e.exports=o(De(),Ns(),fL(),pL(),vn(),xL(),bn(),Ru(),Ex(),SL(),Px(),TL(),PL(),LL(),Au(),RL(),Fo(),yt(),HL(),DL(),zL(),WL(),UL(),qL(),KL(),XL(),QL(),e$(),r$(),n$(),a$(),l$(),u$(),f$())})(Ae,function(r){return r})})(nL);const sc=ac,kx="__CRYPTO_SECRET__";function h$(e){const t=JSON.stringify(e);return sc.AES.encrypt(t,kx).toString()}function p$(e){const r=sc.AES.decrypt(e,kx).toString(sc.enc.Utf8);return r?JSON.parse(r):null}function Lx(e){const{expire:r,crypto:o}=Object.assign({expire:604800,crypto:!0},e);function n(l,c){const u={data:c,expire:r!==null?new Date().getTime()+r*1e3:null},d=o?h$(u):JSON.stringify(u);window.localStorage.setItem(l,d)}function i(l){const c=window.localStorage.getItem(l);if(c){let u=null;try{u=o?p$(c):JSON.parse(c)}catch{}if(u){const{data:d,expire:f}=u;if(f===null||f>=Date.now())return d}return a(l),null}}function a(l){window.localStorage.removeItem(l)}function s(){window.localStorage.clear()}return{set:n,get:i,remove:a,clear:s}}Lx();const Rt=Lx({expire:null,crypto:!1}),Ou="appSetting";function $x(){const e=navigator.language.toLowerCase();let t="en-US";return e.includes("zh")&&(t="zh-CN"),{siderCollapsed:!1,theme:"auto",language:t}}function m$(){const e=Rt.get(Ou);return{...$x(),...e}}function g$(e){Rt.set(Ou,e)}function x$(){Rt.remove(Ou)}const Ws=Do("app-store",{state:()=>m$(),actions:{setSiderCollapsed(e){this.siderCollapsed=e,this.recordState()},setTheme(e){this.theme=e,this.recordState()},setLanguage(e){this.language!==e&&(this.language=e,this.recordState())},getTheme(){const{theme:e}=Bv();return e},recordState(){g$(this.$state)},removeToken(){this.$state=$x(),x$()}}}),Ix="userStorage";function Rx(){return{userInfo:{name:"-- --"}}}function v$(){const e=Rt.get(Ix);return{...Rx(),...e}}function b$(e){Rt.set(Ix,e)}const C$=Do("user-store",{state:()=>v$(),actions:{updateUserInfo(e){this.userInfo={...this.userInfo,...e},this.recordState()},resetUserInfo(){this.userInfo={...Rx().userInfo},this.recordState()},recordState(){b$(this.$state)}}}),Bu="AUTH_TOKEN";function y$(e){return Rt.set(Bu,e)}function S$(){return Rt.get(Bu)}function w$(){return Rt.remove(Bu)}var Ax=(e=>(e[e.VISIT_MODE_LOGIN=0]="VISIT_MODE_LOGIN",e[e.VISIT_MODE_PUBLIC=1]="VISIT_MODE_PUBLIC",e))(Ax||{});const Mf={token:null,userInfo:null,visitMode:Ax.VISIT_MODE_LOGIN},Ox=Do("auth-store",{state:()=>S$()||Mf,actions:{setToken(e){this.token=e,this.saveStorage()},setUserInfo(e){this.userInfo=e,this.saveStorage()},setVisitMode(e){this.visitMode=e,this.saveStorage()},saveStorage(){y$(this.$state)},removeToken(){this.$state=Mf,w$()}}});function _$(){return{siderCollapsed:!1,theme:"light",language:"zh-CN"}}Do("admin-store",{state:()=>_$(),actions:{setSiderCollapsed(e){this.siderCollapsed=e},setTheme(e){this.theme=e},setLanguage(e){this.language!==e&&(this.language=e)}}});const Bx="noticeStore";function T$(){return{global:[],username:{}}}function E$(){const e=Rt.get(Bx);return{...T$(),...e}}function P$(e){Rt.set(Bx,e)}const oH=Do("notice-store",{state:()=>E$(),actions:{setReadByGlobal(e){console.log("设置全局已读",e),this.global.push(e),this.recordState()},setReadByUsername(e,t){this.username[e]||(this.username[e]=[]),this.username[e].push(t),this.recordState()},getReadByNoticeId(e,t){return!(!this.global.includes(e)&&(!t||!this.username[t]||!this.username[t].includes(e)))},recordState(){P$(this.$state)}}}),k$="/assets/defaultBackground-80f713c8.webp",Hu="panelStorage",L$='

';function lc(){return{backgroundImageSrc:k$,backgroundBlur:0,backgroundMaskNumber:0,iconStyle:yx.icon,iconTextColor:"#ffffff",iconTextInfoHideDescription:!1,iconTextIconHideTitle:!1,logoText:"Sun-Panel",logoImageSrc:"",clockShowSecond:!1,searchBoxShow:!1,searchBoxSearchIcon:!1,marginBottom:10,marginTop:10,maxWidth:1200,maxWidthUnit:"px",marginX:5,footerHtml:L$,systemMonitorShow:!1,systemMonitorShowTitle:!0,systemMonitorPublicVisitModeShow:!1,netModeChangeButtonShow:!0}}function Hx(){return{rightSiderCollapsed:!1,leftSiderCollapsed:!1,networkMode:Cx.wan,panelConfig:{...lc()}}}function $$(){const e=Rt.get(Hu);return{...Hx(),...e}}function I$(e){Rt.set(Hu,e)}function R$(){Rt.remove(Hu)}/*! - * vue-router v4.1.6 - * (c) 2022 Eduardo San Martin Morote - * @license MIT - */const qo=typeof window<"u";function A$(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const je=Object.assign;function gl(e,t){const r={};for(const o in t){const n=t[o];r[o]=ar(n)?n.map(e):e(n)}return r}const jn=()=>{},ar=Array.isArray,O$=/\/$/,B$=e=>e.replace(O$,"");function xl(e,t,r="/"){let o,n={},i="",a="";const s=t.indexOf("#");let l=t.indexOf("?");return s=0&&(l=-1),l>-1&&(o=t.slice(0,l),i=t.slice(l+1,s>-1?s:t.length),n=e(i)),s>-1&&(o=o||t.slice(0,s),a=t.slice(s,t.length)),o=F$(o??t,r),{fullPath:o+(i&&"?")+i+a,path:o,query:n,hash:a}}function H$(e,t){const r=t.query?e(t.query):"";return t.path+(r&&"?")+r+(t.hash||"")}function Df(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function M$(e,t,r){const o=t.matched.length-1,n=r.matched.length-1;return o>-1&&o===n&&on(t.matched[o],r.matched[n])&&Mx(t.params,r.params)&&e(t.query)===e(r.query)&&t.hash===r.hash}function on(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Mx(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(!D$(e[r],t[r]))return!1;return!0}function D$(e,t){return ar(e)?Ff(e,t):ar(t)?Ff(t,e):e===t}function Ff(e,t){return ar(t)?e.length===t.length&&e.every((r,o)=>r===t[o]):e.length===1&&e[0]===t}function F$(e,t){if(e.startsWith("/"))return e;if(!e)return t;const r=t.split("/"),o=e.split("/");let n=r.length-1,i,a;for(i=0;i1&&n--;else break;return r.slice(0,n).join("/")+"/"+o.slice(i-(i===o.length?1:0)).join("/")}var fi;(function(e){e.pop="pop",e.push="push"})(fi||(fi={}));var Un;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Un||(Un={}));function z$(e){if(!e)if(qo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),B$(e)}const N$=/^[^#]+#/;function W$(e,t){return e.replace(N$,"#")+t}function j$(e,t){const r=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-r.left-(t.left||0),top:o.top-r.top-(t.top||0)}}const js=()=>({left:window.pageXOffset,top:window.pageYOffset});function U$(e){let t;if("el"in e){const r=e.el,o=typeof r=="string"&&r.startsWith("#"),n=typeof r=="string"?o?document.getElementById(r.slice(1)):document.querySelector(r):r;if(!n)return;t=j$(n,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 zf(e,t){return(history.state?history.state.position-t:-1)+e}const cc=new Map;function V$(e,t){cc.set(e,t)}function q$(e){const t=cc.get(e);return cc.delete(e),t}let G$=()=>location.protocol+"//"+location.host;function Dx(e,t){const{pathname:r,search:o,hash:n}=t,i=e.indexOf("#");if(i>-1){let s=n.includes(e.slice(i))?e.slice(i).length:1,l=n.slice(s);return l[0]!=="/"&&(l="/"+l),Df(l,"")}return Df(r,e)+o+n}function K$(e,t,r,o){let n=[],i=[],a=null;const s=({state:f})=>{const p=Dx(e,location),h=r.value,m=t.value;let v=0;if(f){if(r.value=p,t.value=f,a&&a===h){a=null;return}v=m?f.position-m.position:0}else o(p);n.forEach(g=>{g(r.value,h,{delta:v,type:fi.pop,direction:v?v>0?Un.forward:Un.back:Un.unknown})})};function l(){a=r.value}function c(f){n.push(f);const p=()=>{const h=n.indexOf(f);h>-1&&n.splice(h,1)};return i.push(p),p}function u(){const{history:f}=window;f.state&&f.replaceState(je({},f.state,{scroll:js()}),"")}function d(){for(const f of i)f();i=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",u),{pauseListeners:l,listen:c,destroy:d}}function Nf(e,t,r,o=!1,n=!1){return{back:e,current:t,forward:r,replaced:o,position:window.history.length,scroll:n?js():null}}function Z$(e){const{history:t,location:r}=window,o={value:Dx(e,r)},n={value:t.state};n.value||i(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(l,c,u){const d=e.indexOf("#"),f=d>-1?(r.host&&document.querySelector("base")?e:e.slice(d))+l:G$()+e+l;try{t[u?"replaceState":"pushState"](c,"",f),n.value=c}catch(p){console.error(p),r[u?"replace":"assign"](f)}}function a(l,c){const u=je({},t.state,Nf(n.value.back,l,n.value.forward,!0),c,{position:n.value.position});i(l,u,!0),o.value=l}function s(l,c){const u=je({},n.value,t.state,{forward:l,scroll:js()});i(u.current,u,!0);const d=je({},Nf(o.value,l,null),{position:u.position+1},c);i(l,d,!1),o.value=l}return{location:o,state:n,push:s,replace:a}}function X$(e){e=z$(e);const t=Z$(e),r=K$(e,t.state,t.location,t.replace);function o(i,a=!0){a||r.pauseListeners(),history.go(i)}const n=je({location:"",base:e,go:o,createHref:W$.bind(null,e)},t,r);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>t.state.value}),n}function Y$(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),X$(e)}function Q$(e){return typeof e=="string"||e&&typeof e=="object"}function Fx(e){return typeof e=="string"||typeof e=="symbol"}const Ur={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},zx=Symbol("");var Wf;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Wf||(Wf={}));function nn(e,t){return je(new Error,{type:e,[zx]:!0},t)}function Tr(e,t){return e instanceof Error&&zx in e&&(t==null||!!(e.type&t))}const jf="[^/]+?",J$={sensitive:!1,strict:!1,start:!0,end:!0},eI=/[.+*?^${}()[\]/\\]/g;function tI(e,t){const r=je({},J$,t),o=[];let n=r.start?"^":"";const i=[];for(const c of e){const u=c.length?[]:[90];r.strict&&!c.length&&(n+="/");for(let d=0;dt.length?t.length===1&&t[0]===40+40?1:-1:0}function oI(e,t){let r=0;const o=e.score,n=t.score;for(;r0&&t[t.length-1]<0}const nI={type:0,value:""},iI=/[a-zA-Z0-9_]/;function aI(e){if(!e)return[[]];if(e==="/")return[[nI]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${r})/"${c}": ${p}`)}let r=0,o=r;const n=[];let i;function a(){i&&n.push(i),i=[]}let s=0,l,c="",u="";function d(){c&&(r===0?i.push({type:0,value:c}):r===1||r===2||r===3?(i.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function f(){c+=l}for(;s{a(x)}:jn}function a(u){if(Fx(u)){const d=o.get(u);d&&(o.delete(u),r.splice(r.indexOf(d),1),d.children.forEach(a),d.alias.forEach(a))}else{const d=r.indexOf(u);d>-1&&(r.splice(d,1),u.record.name&&o.delete(u.record.name),u.children.forEach(a),u.alias.forEach(a))}}function s(){return r}function l(u){let d=0;for(;d=0&&(u.record.path!==r[d].record.path||!Nx(u,r[d]));)d++;r.splice(d,0,u),u.record.name&&!qf(u)&&o.set(u.record.name,u)}function c(u,d){let f,p={},h,m;if("name"in u&&u.name){if(f=o.get(u.name),!f)throw nn(1,{location:u});m=f.record.name,p=je(Vf(d.params,f.keys.filter(x=>!x.optional).map(x=>x.name)),u.params&&Vf(u.params,f.keys.map(x=>x.name))),h=f.stringify(p)}else if("path"in u)h=u.path,f=r.find(x=>x.re.test(h)),f&&(p=f.parse(h),m=f.record.name);else{if(f=d.name?o.get(d.name):r.find(x=>x.re.test(d.path)),!f)throw nn(1,{location:u,currentLocation:d});m=f.record.name,p=je({},d.params,u.params),h=f.stringify(p)}const v=[];let g=f;for(;g;)v.unshift(g.record),g=g.parent;return{name:m,path:h,params:p,matched:v,meta:dI(v)}}return e.forEach(u=>i(u)),{addRoute:i,resolve:c,removeRoute:a,getRoutes:s,getRecordMatcher:n}}function Vf(e,t){const r={};for(const o of t)o in e&&(r[o]=e[o]);return r}function cI(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:uI(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function uI(e){const t={},r=e.props||!1;if("component"in e)t.default=r;else for(const o in e.components)t[o]=typeof r=="boolean"?r:r[o];return t}function qf(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function dI(e){return e.reduce((t,r)=>je(t,r.meta),{})}function Gf(e,t){const r={};for(const o in e)r[o]=o in t?t[o]:e[o];return r}function Nx(e,t){return t.children.some(r=>r===e||Nx(e,r))}const Wx=/#/g,fI=/&/g,hI=/\//g,pI=/=/g,mI=/\?/g,jx=/\+/g,gI=/%5B/g,xI=/%5D/g,Ux=/%5E/g,vI=/%60/g,Vx=/%7B/g,bI=/%7C/g,qx=/%7D/g,CI=/%20/g;function Mu(e){return encodeURI(""+e).replace(bI,"|").replace(gI,"[").replace(xI,"]")}function yI(e){return Mu(e).replace(Vx,"{").replace(qx,"}").replace(Ux,"^")}function uc(e){return Mu(e).replace(jx,"%2B").replace(CI,"+").replace(Wx,"%23").replace(fI,"%26").replace(vI,"`").replace(Vx,"{").replace(qx,"}").replace(Ux,"^")}function SI(e){return uc(e).replace(pI,"%3D")}function wI(e){return Mu(e).replace(Wx,"%23").replace(mI,"%3F")}function _I(e){return e==null?"":wI(e).replace(hI,"%2F")}function os(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function TI(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let n=0;ni&&uc(i)):[o&&uc(o)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+r,i!=null&&(t+="="+i))})}return t}function EI(e){const t={};for(const r in e){const o=e[r];o!==void 0&&(t[r]=ar(o)?o.map(n=>n==null?null:""+n):o==null?o:""+o)}return t}const PI=Symbol(""),Zf=Symbol(""),Us=Symbol(""),Gx=Symbol(""),dc=Symbol("");function kn(){let e=[];function t(o){return e.push(o),()=>{const n=e.indexOf(o);n>-1&&e.splice(n,1)}}function r(){e=[]}return{add:t,list:()=>e,reset:r}}function Xr(e,t,r,o,n){const i=o&&(o.enterCallbacks[n]=o.enterCallbacks[n]||[]);return()=>new Promise((a,s)=>{const l=d=>{d===!1?s(nn(4,{from:r,to:t})):d instanceof Error?s(d):Q$(d)?s(nn(2,{from:t,to:d})):(i&&o.enterCallbacks[n]===i&&typeof d=="function"&&i.push(d),a())},c=e.call(o&&o.instances[n],t,r,l);let u=Promise.resolve(c);e.length<3&&(u=u.then(l)),u.catch(d=>s(d))})}function vl(e,t,r,o){const n=[];for(const i of e)for(const a in i.components){let s=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(kI(s)){const c=(s.__vccOpts||s)[t];c&&n.push(Xr(c,r,o,i,a))}else{let l=s();n.push(()=>l.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${a}" at "${i.path}"`));const u=A$(c)?c.default:c;i.components[a]=u;const f=(u.__vccOpts||u)[t];return f&&Xr(f,r,o,i,a)()}))}}return n}function kI(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Xf(e){const t=Me(Us),r=Me(Gx),o=ae(()=>t.resolve(pt(e.to))),n=ae(()=>{const{matched:l}=o.value,{length:c}=l,u=l[c-1],d=r.matched;if(!u||!d.length)return-1;const f=d.findIndex(on.bind(null,u));if(f>-1)return f;const p=Yf(l[c-2]);return c>1&&Yf(u)===p&&d[d.length-1].path!==p?d.findIndex(on.bind(null,l[c-2])):f}),i=ae(()=>n.value>-1&&RI(r.params,o.value.params)),a=ae(()=>n.value>-1&&n.value===r.matched.length-1&&Mx(r.params,o.value.params));function s(l={}){return II(l)?t[pt(e.replace)?"replace":"push"](pt(e.to)).catch(jn):Promise.resolve()}return{route:o,href:ae(()=>o.value.href),isActive:i,isExactActive:a,navigate:s}}const LI=Oe({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Xf,setup(e,{slots:t}){const r=Or(Xf(e)),{options:o}=Me(Us),n=ae(()=>({[Qf(e.activeClass,o.linkActiveClass,"router-link-active")]:r.isActive,[Qf(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{const i=t.default&&t.default(r);return e.custom?i:H("a",{"aria-current":r.isExactActive?e.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:n.value},i)}}}),$I=LI;function II(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 RI(e,t){for(const r in t){const o=t[r],n=e[r];if(typeof o=="string"){if(o!==n)return!1}else if(!ar(n)||n.length!==o.length||o.some((i,a)=>i!==n[a]))return!1}return!0}function Yf(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Qf=(e,t,r)=>e??t??r,AI=Oe({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:r}){const o=Me(dc),n=ae(()=>e.route||o.value),i=Me(Zf,0),a=ae(()=>{let c=pt(i);const{matched:u}=n.value;let d;for(;(d=u[c])&&!d.components;)c++;return c}),s=ae(()=>n.value.matched[a.value]);dt(Zf,ae(()=>a.value+1)),dt(PI,s),dt(dc,n);const l=de();return kt(()=>[l.value,s.value,e.name],([c,u,d],[f,p,h])=>{u&&(u.instances[d]=c,p&&p!==u&&c&&c===f&&(u.leaveGuards.size||(u.leaveGuards=p.leaveGuards),u.updateGuards.size||(u.updateGuards=p.updateGuards))),c&&u&&(!p||!on(u,p)||!f)&&(u.enterCallbacks[d]||[]).forEach(m=>m(c))},{flush:"post"}),()=>{const c=n.value,u=e.name,d=s.value,f=d&&d.components[u];if(!f)return Jf(r.default,{Component:f,route:c});const p=d.props[u],h=p?p===!0?c.params:typeof p=="function"?p(c):p:null,v=H(f,je({},h,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(d.instances[u]=null)},ref:l}));return Jf(r.default,{Component:v,route:c})||v}}});function Jf(e,t){if(!e)return null;const r=e(t);return r.length===1?r[0]:r}const OI=AI;function BI(e){const t=lI(e.routes,e),r=e.parseQuery||TI,o=e.stringifyQuery||Kf,n=e.history,i=kn(),a=kn(),s=kn(),l=fs(Ur);let c=Ur;qo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=gl.bind(null,D=>""+D),d=gl.bind(null,_I),f=gl.bind(null,os);function p(D,U){let re,ee;return Fx(D)?(re=t.getRecordMatcher(D),ee=U):ee=D,t.addRoute(ee,re)}function h(D){const U=t.getRecordMatcher(D);U&&t.removeRoute(U)}function m(){return t.getRoutes().map(D=>D.record)}function v(D){return!!t.getRecordMatcher(D)}function g(D,U){if(U=je({},U||l.value),typeof D=="string"){const k=xl(r,D,U.path),y=t.resolve({path:k.path},U),_=n.createHref(k.fullPath);return je(k,y,{params:f(y.params),hash:os(k.hash),redirectedFrom:void 0,href:_})}let re;if("path"in D)re=je({},D,{path:xl(r,D.path,U.path).path});else{const k=je({},D.params);for(const y in k)k[y]==null&&delete k[y];re=je({},D,{params:d(D.params)}),U.params=d(U.params)}const ee=t.resolve(re,U),ce=D.hash||"";ee.params=u(f(ee.params));const ke=H$(o,je({},D,{hash:yI(ce),path:ee.path})),ye=n.createHref(ke);return je({fullPath:ke,hash:ce,query:o===Kf?EI(D.query):D.query||{}},ee,{redirectedFrom:void 0,href:ye})}function x(D){return typeof D=="string"?xl(r,D,l.value.path):je({},D)}function C(D,U){if(c!==D)return nn(8,{from:U,to:D})}function b(D){return S(D)}function w(D){return b(je(x(D),{replace:!0}))}function T(D){const U=D.matched[D.matched.length-1];if(U&&U.redirect){const{redirect:re}=U;let ee=typeof re=="function"?re(D):re;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=x(ee):{path:ee},ee.params={}),je({query:D.query,hash:D.hash,params:"path"in ee?{}:D.params},ee)}}function S(D,U){const re=c=g(D),ee=l.value,ce=D.state,ke=D.force,ye=D.replace===!0,k=T(re);if(k)return S(je(x(k),{state:typeof k=="object"?je({},ce,k.state):ce,force:ke,replace:ye}),U||re);const y=re;y.redirectedFrom=U;let _;return!ke&&M$(o,ee,re)&&(_=nn(16,{to:y,from:ee}),ve(ee,ee,!0,!1)),(_?Promise.resolve(_):I(y,ee)).catch(L=>Tr(L)?Tr(L,2)?L:ge(L):Q(L,y,ee)).then(L=>{if(L){if(Tr(L,2))return S(je({replace:ye},x(L.to),{state:typeof L.to=="object"?je({},ce,L.to.state):ce,force:ke}),U||y)}else L=$(y,ee,!0,ye,ce);return P(y,ee,L),L})}function E(D,U){const re=C(D,U);return re?Promise.reject(re):Promise.resolve()}function I(D,U){let re;const[ee,ce,ke]=HI(D,U);re=vl(ee.reverse(),"beforeRouteLeave",D,U);for(const k of ee)k.leaveGuards.forEach(y=>{re.push(Xr(y,D,U))});const ye=E.bind(null,D,U);return re.push(ye),Uo(re).then(()=>{re=[];for(const k of i.list())re.push(Xr(k,D,U));return re.push(ye),Uo(re)}).then(()=>{re=vl(ce,"beforeRouteUpdate",D,U);for(const k of ce)k.updateGuards.forEach(y=>{re.push(Xr(y,D,U))});return re.push(ye),Uo(re)}).then(()=>{re=[];for(const k of D.matched)if(k.beforeEnter&&!U.matched.includes(k))if(ar(k.beforeEnter))for(const y of k.beforeEnter)re.push(Xr(y,D,U));else re.push(Xr(k.beforeEnter,D,U));return re.push(ye),Uo(re)}).then(()=>(D.matched.forEach(k=>k.enterCallbacks={}),re=vl(ke,"beforeRouteEnter",D,U),re.push(ye),Uo(re))).then(()=>{re=[];for(const k of a.list())re.push(Xr(k,D,U));return re.push(ye),Uo(re)}).catch(k=>Tr(k,8)?k:Promise.reject(k))}function P(D,U,re){for(const ee of s.list())ee(D,U,re)}function $(D,U,re,ee,ce){const ke=C(D,U);if(ke)return ke;const ye=U===Ur,k=qo?history.state:{};re&&(ee||ye?n.replace(D.fullPath,je({scroll:ye&&k&&k.scroll},ce)):n.push(D.fullPath,ce)),l.value=D,ve(D,U,re,ye),ge()}let R;function B(){R||(R=n.listen((D,U,re)=>{if(!V.listening)return;const ee=g(D),ce=T(ee);if(ce){S(je(ce,{replace:!0}),ee).catch(jn);return}c=ee;const ke=l.value;qo&&V$(zf(ke.fullPath,re.delta),js()),I(ee,ke).catch(ye=>Tr(ye,12)?ye:Tr(ye,2)?(S(ye.to,ee).then(k=>{Tr(k,20)&&!re.delta&&re.type===fi.pop&&n.go(-1,!1)}).catch(jn),Promise.reject()):(re.delta&&n.go(-re.delta,!1),Q(ye,ee,ke))).then(ye=>{ye=ye||$(ee,ke,!1),ye&&(re.delta&&!Tr(ye,8)?n.go(-re.delta,!1):re.type===fi.pop&&Tr(ye,20)&&n.go(-1,!1)),P(ee,ke,ye)}).catch(jn)}))}let j=kn(),Y=kn(),J;function Q(D,U,re){ge(D);const ee=Y.list();return ee.length?ee.forEach(ce=>ce(D,U,re)):console.error(D),Promise.reject(D)}function ie(){return J&&l.value!==Ur?Promise.resolve():new Promise((D,U)=>{j.add([D,U])})}function ge(D){return J||(J=!D,B(),j.list().forEach(([U,re])=>D?re(D):U()),j.reset()),D}function ve(D,U,re,ee){const{scrollBehavior:ce}=e;if(!qo||!ce)return Promise.resolve();const ke=!re&&q$(zf(D.fullPath,0))||(ee||!re)&&history.state&&history.state.scroll||null;return jt().then(()=>ce(D,U,ke)).then(ye=>ye&&U$(ye)).catch(ye=>Q(ye,D,U))}const z=D=>n.go(D);let W;const Z=new Set,V={currentRoute:l,listening:!0,addRoute:p,removeRoute:h,hasRoute:v,getRoutes:m,resolve:g,options:e,push:b,replace:w,go:z,back:()=>z(-1),forward:()=>z(1),beforeEach:i.add,beforeResolve:a.add,afterEach:s.add,onError:Y.add,isReady:ie,install(D){const U=this;D.component("RouterLink",$I),D.component("RouterView",OI),D.config.globalProperties.$router=U,Object.defineProperty(D.config.globalProperties,"$route",{enumerable:!0,get:()=>pt(l)}),qo&&!W&&l.value===Ur&&(W=!0,b(n.location).catch(ce=>{}));const re={};for(const ce in Ur)re[ce]=ae(()=>l.value[ce]);D.provide(Us,U),D.provide(Gx,Or(re)),D.provide(dc,l);const ee=D.unmount;Z.add(D),D.unmount=function(){Z.delete(D),Z.size<1&&(c=Ur,R&&R(),R=null,l.value=Ur,W=!1,J=!1),ee()}}};return V}function Uo(e){return e.reduce((t,r)=>t.then(()=>r()),Promise.resolve())}function HI(e,t){const r=[],o=[],n=[],i=Math.max(t.matched.length,e.matched.length);for(let a=0;aon(c,s))?o.push(s):r.push(s));const l=e.matched[a];l&&(t.matched.find(c=>on(c,l))||n.push(l))}return[r,o,n]}function nH(){return Me(Us)}function MI(e){e.beforeEach(async(t,r,o)=>{C$().userInfo.role!==1&&t.path.includes("admin")?o({name:"404"}):o()})}const DI=[{path:"/",name:"Home",component:()=>Pn(()=>import("./index-bc9666b7.js").then(e=>e.p),["assets/index-bc9666b7.js","assets/index-b1d3d9b0.js","assets/index-c238f14b.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-2b595d91.js","assets/index-c4f1fb1a.css"])},{path:"/login",name:"login",component:()=>Pn(()=>import("./index-fd895f10.js"),["assets/index-fd895f10.js","assets/index-8f0537f1.js","assets/index-c238f14b.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-2b595d91.js","assets/GradientText-44d798c5.js","assets/index-7ae5884e.css"])},{path:"/404",name:"404",component:()=>Pn(()=>import("./index-8f8851de.js"),[])},{path:"/500",name:"500",component:()=>Pn(()=>import("./index-ed75c22d.js"),["assets/index-ed75c22d.js","assets/_plugin-vue_export-helper-c27b6911.js"])},{path:"/:pathMatch(.*)*",name:"notFound",redirect:"/404"},{path:"/test",name:"test",component:()=>Pn(()=>import("./index-e0b65a22.js"),["assets/index-e0b65a22.js","assets/index-d074e84b.js","assets/index-c238f14b.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-b1d3d9b0.js","assets/Alert-018ca7af.js","assets/index-d715da4a.css","assets/index-2b251fda.css"])}],an=BI({history:Y$(),routes:DI,scrollBehavior:()=>({left:0,top:0})});MI(an);async function FI(e){e.use(an),await an.isReady()}function Kx(e,t){return function(){return e.apply(t,arguments)}}const{toString:Zx}=Object.prototype,{getPrototypeOf:Du}=Object,Fu=(e=>t=>{const r=Zx.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),Fr=e=>(e=e.toLowerCase(),t=>Fu(t)===e),Vs=e=>t=>typeof t===e,{isArray:Cn}=Array,hi=Vs("undefined");function zI(e){return e!==null&&!hi(e)&&e.constructor!==null&&!hi(e.constructor)&&no(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Xx=Fr("ArrayBuffer");function NI(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Xx(e.buffer),t}const WI=Vs("string"),no=Vs("function"),Yx=Vs("number"),zu=e=>e!==null&&typeof e=="object",jI=e=>e===!0||e===!1,ia=e=>{if(Fu(e)!=="object")return!1;const t=Du(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},UI=Fr("Date"),VI=Fr("File"),qI=Fr("Blob"),GI=Fr("FileList"),KI=e=>zu(e)&&no(e.pipe),ZI=e=>{const t="[object FormData]";return e&&(typeof FormData=="function"&&e instanceof FormData||Zx.call(e)===t||no(e.toString)&&e.toString()===t)},XI=Fr("URLSearchParams"),YI=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ti(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let o,n;if(typeof e!="object"&&(e=[e]),Cn(e))for(o=0,n=e.length;o0;)if(n=r[o],t===n.toLowerCase())return n;return null}const Jx=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),ev=e=>!hi(e)&&e!==Jx;function fc(){const{caseless:e}=ev(this)&&this||{},t={},r=(o,n)=>{const i=e&&Qx(t,n)||n;ia(t[i])&&ia(o)?t[i]=fc(t[i],o):ia(o)?t[i]=fc({},o):Cn(o)?t[i]=o.slice():t[i]=o};for(let o=0,n=arguments.length;o(Ti(t,(n,i)=>{r&&no(n)?e[i]=Kx(n,r):e[i]=n},{allOwnKeys:o}),e),JI=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),eR=(e,t,r,o)=>{e.prototype=Object.create(t.prototype,o),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},tR=(e,t,r,o)=>{let n,i,a;const s={};if(t=t||{},e==null)return t;do{for(n=Object.getOwnPropertyNames(e),i=n.length;i-- >0;)a=n[i],(!o||o(a,e,t))&&!s[a]&&(t[a]=e[a],s[a]=!0);e=r!==!1&&Du(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},rR=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const o=e.indexOf(t,r);return o!==-1&&o===r},oR=e=>{if(!e)return null;if(Cn(e))return e;let t=e.length;if(!Yx(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},nR=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Du(Uint8Array)),iR=(e,t)=>{const o=(e&&e[Symbol.iterator]).call(e);let n;for(;(n=o.next())&&!n.done;){const i=n.value;t.call(e,i[0],i[1])}},aR=(e,t)=>{let r;const o=[];for(;(r=e.exec(t))!==null;)o.push(r);return o},sR=Fr("HTMLFormElement"),lR=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,o,n){return o.toUpperCase()+n}),eh=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),cR=Fr("RegExp"),tv=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),o={};Ti(r,(n,i)=>{t(n,i,e)!==!1&&(o[i]=n)}),Object.defineProperties(e,o)},uR=e=>{tv(e,(t,r)=>{if(no(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const o=e[r];if(no(o)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},dR=(e,t)=>{const r={},o=n=>{n.forEach(i=>{r[i]=!0})};return Cn(e)?o(e):o(String(e).split(t)),r},fR=()=>{},hR=(e,t)=>(e=+e,Number.isFinite(e)?e:t),bl="abcdefghijklmnopqrstuvwxyz",th="0123456789",rv={DIGIT:th,ALPHA:bl,ALPHA_DIGIT:bl+bl.toUpperCase()+th},pR=(e=16,t=rv.ALPHA_DIGIT)=>{let r="";const{length:o}=t;for(;e--;)r+=t[Math.random()*o|0];return r};function mR(e){return!!(e&&no(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const gR=e=>{const t=new Array(10),r=(o,n)=>{if(zu(o)){if(t.indexOf(o)>=0)return;if(!("toJSON"in o)){t[n]=o;const i=Cn(o)?[]:{};return Ti(o,(a,s)=>{const l=r(a,n+1);!hi(l)&&(i[s]=l)}),t[n]=void 0,i}}return o};return r(e,0)},K={isArray:Cn,isArrayBuffer:Xx,isBuffer:zI,isFormData:ZI,isArrayBufferView:NI,isString:WI,isNumber:Yx,isBoolean:jI,isObject:zu,isPlainObject:ia,isUndefined:hi,isDate:UI,isFile:VI,isBlob:qI,isRegExp:cR,isFunction:no,isStream:KI,isURLSearchParams:XI,isTypedArray:nR,isFileList:GI,forEach:Ti,merge:fc,extend:QI,trim:YI,stripBOM:JI,inherits:eR,toFlatObject:tR,kindOf:Fu,kindOfTest:Fr,endsWith:rR,toArray:oR,forEachEntry:iR,matchAll:aR,isHTMLForm:sR,hasOwnProperty:eh,hasOwnProp:eh,reduceDescriptors:tv,freezeMethods:uR,toObjectSet:dR,toCamelCase:lR,noop:fR,toFiniteNumber:hR,findKey:Qx,global:Jx,isContextDefined:ev,ALPHABET:rv,generateString:pR,isSpecCompliantForm:mR,toJSONObject:gR};function Ne(e,t,r,o,n){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),o&&(this.request=o),n&&(this.response=n)}K.inherits(Ne,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:K.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const ov=Ne.prototype,nv={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{nv[e]={value:e}});Object.defineProperties(Ne,nv);Object.defineProperty(ov,"isAxiosError",{value:!0});Ne.from=(e,t,r,o,n,i)=>{const a=Object.create(ov);return K.toFlatObject(e,a,function(l){return l!==Error.prototype},s=>s!=="isAxiosError"),Ne.call(a,e.message,t,r,o,n),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const xR=null;function hc(e){return K.isPlainObject(e)||K.isArray(e)}function iv(e){return K.endsWith(e,"[]")?e.slice(0,-2):e}function rh(e,t,r){return e?e.concat(t).map(function(n,i){return n=iv(n),!r&&i?"["+n+"]":n}).join(r?".":""):t}function vR(e){return K.isArray(e)&&!e.some(hc)}const bR=K.toFlatObject(K,{},null,function(t){return/^is[A-Z]/.test(t)});function qs(e,t,r){if(!K.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=K.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,v){return!K.isUndefined(v[m])});const o=r.metaTokens,n=r.visitor||u,i=r.dots,a=r.indexes,l=(r.Blob||typeof Blob<"u"&&Blob)&&K.isSpecCompliantForm(t);if(!K.isFunction(n))throw new TypeError("visitor must be a function");function c(h){if(h===null)return"";if(K.isDate(h))return h.toISOString();if(!l&&K.isBlob(h))throw new Ne("Blob is not supported. Use a Buffer instead.");return K.isArrayBuffer(h)||K.isTypedArray(h)?l&&typeof Blob=="function"?new Blob([h]):Buffer.from(h):h}function u(h,m,v){let g=h;if(h&&!v&&typeof h=="object"){if(K.endsWith(m,"{}"))m=o?m:m.slice(0,-2),h=JSON.stringify(h);else if(K.isArray(h)&&vR(h)||(K.isFileList(h)||K.endsWith(m,"[]"))&&(g=K.toArray(h)))return m=iv(m),g.forEach(function(C,b){!(K.isUndefined(C)||C===null)&&t.append(a===!0?rh([m],b,i):a===null?m:m+"[]",c(C))}),!1}return hc(h)?!0:(t.append(rh(v,m,i),c(h)),!1)}const d=[],f=Object.assign(bR,{defaultVisitor:u,convertValue:c,isVisitable:hc});function p(h,m){if(!K.isUndefined(h)){if(d.indexOf(h)!==-1)throw Error("Circular reference detected in "+m.join("."));d.push(h),K.forEach(h,function(g,x){(!(K.isUndefined(g)||g===null)&&n.call(t,g,K.isString(x)?x.trim():x,m,f))===!0&&p(g,m?m.concat(x):[x])}),d.pop()}}if(!K.isObject(e))throw new TypeError("data must be an object");return p(e),t}function oh(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(o){return t[o]})}function Nu(e,t){this._pairs=[],e&&qs(e,this,t)}const av=Nu.prototype;av.append=function(t,r){this._pairs.push([t,r])};av.toString=function(t){const r=t?function(o){return t.call(this,o,oh)}:oh;return this._pairs.map(function(n){return r(n[0])+"="+r(n[1])},"").join("&")};function CR(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function sv(e,t,r){if(!t)return e;const o=r&&r.encode||CR,n=r&&r.serialize;let i;if(n?i=n(t,r):i=K.isURLSearchParams(t)?t.toString():new Nu(t,r).toString(o),i){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class yR{constructor(){this.handlers=[]}use(t,r,o){return this.handlers.push({fulfilled:t,rejected:r,synchronous:o?o.synchronous:!1,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){K.forEach(this.handlers,function(o){o!==null&&t(o)})}}const nh=yR,lv={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},SR=typeof URLSearchParams<"u"?URLSearchParams:Nu,wR=typeof FormData<"u"?FormData:null,_R=typeof Blob<"u"?Blob:null,TR=(()=>{let e;return typeof navigator<"u"&&((e=navigator.product)==="ReactNative"||e==="NativeScript"||e==="NS")?!1:typeof window<"u"&&typeof document<"u"})(),ER=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),xr={isBrowser:!0,classes:{URLSearchParams:SR,FormData:wR,Blob:_R},isStandardBrowserEnv:TR,isStandardBrowserWebWorkerEnv:ER,protocols:["http","https","file","blob","url","data"]};function PR(e,t){return qs(e,new xr.classes.URLSearchParams,Object.assign({visitor:function(r,o,n,i){return xr.isNode&&K.isBuffer(r)?(this.append(o,r.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},t))}function kR(e){return K.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function LR(e){const t={},r=Object.keys(e);let o;const n=r.length;let i;for(o=0;o=r.length;return a=!a&&K.isArray(n)?n.length:a,l?(K.hasOwnProp(n,a)?n[a]=[n[a],o]:n[a]=o,!s):((!n[a]||!K.isObject(n[a]))&&(n[a]=[]),t(r,o,n[a],i)&&K.isArray(n[a])&&(n[a]=LR(n[a])),!s)}if(K.isFormData(e)&&K.isFunction(e.entries)){const r={};return K.forEachEntry(e,(o,n)=>{t(kR(o),n,r,0)}),r}return null}const $R={"Content-Type":void 0};function IR(e,t,r){if(K.isString(e))try{return(t||JSON.parse)(e),K.trim(e)}catch(o){if(o.name!=="SyntaxError")throw o}return(r||JSON.stringify)(e)}const Gs={transitional:lv,adapter:["xhr","http"],transformRequest:[function(t,r){const o=r.getContentType()||"",n=o.indexOf("application/json")>-1,i=K.isObject(t);if(i&&K.isHTMLForm(t)&&(t=new FormData(t)),K.isFormData(t))return n&&n?JSON.stringify(cv(t)):t;if(K.isArrayBuffer(t)||K.isBuffer(t)||K.isStream(t)||K.isFile(t)||K.isBlob(t))return t;if(K.isArrayBufferView(t))return t.buffer;if(K.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(i){if(o.indexOf("application/x-www-form-urlencoded")>-1)return PR(t,this.formSerializer).toString();if((s=K.isFileList(t))||o.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return qs(s?{"files[]":t}:t,l&&new l,this.formSerializer)}}return i||n?(r.setContentType("application/json",!1),IR(t)):t}],transformResponse:[function(t){const r=this.transitional||Gs.transitional,o=r&&r.forcedJSONParsing,n=this.responseType==="json";if(t&&K.isString(t)&&(o&&!this.responseType||n)){const a=!(r&&r.silentJSONParsing)&&n;try{return JSON.parse(t)}catch(s){if(a)throw s.name==="SyntaxError"?Ne.from(s,Ne.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:xr.classes.FormData,Blob:xr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};K.forEach(["delete","get","head"],function(t){Gs.headers[t]={}});K.forEach(["post","put","patch"],function(t){Gs.headers[t]=K.merge($R)});const Wu=Gs,RR=K.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"]),AR=e=>{const t={};let r,o,n;return e&&e.split(` -`).forEach(function(a){n=a.indexOf(":"),r=a.substring(0,n).trim().toLowerCase(),o=a.substring(n+1).trim(),!(!r||t[r]&&RR[r])&&(r==="set-cookie"?t[r]?t[r].push(o):t[r]=[o]:t[r]=t[r]?t[r]+", "+o:o)}),t},ih=Symbol("internals");function Ln(e){return e&&String(e).trim().toLowerCase()}function aa(e){return e===!1||e==null?e:K.isArray(e)?e.map(aa):String(e)}function OR(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let o;for(;o=r.exec(e);)t[o[1]]=o[2];return t}function BR(e){return/^[-_a-zA-Z]+$/.test(e.trim())}function Cl(e,t,r,o,n){if(K.isFunction(o))return o.call(this,t,r);if(n&&(t=r),!!K.isString(t)){if(K.isString(o))return t.indexOf(o)!==-1;if(K.isRegExp(o))return o.test(t)}}function HR(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,o)=>r.toUpperCase()+o)}function MR(e,t){const r=K.toCamelCase(" "+t);["get","set","has"].forEach(o=>{Object.defineProperty(e,o+r,{value:function(n,i,a){return this[o].call(this,t,n,i,a)},configurable:!0})})}class Ks{constructor(t){t&&this.set(t)}set(t,r,o){const n=this;function i(s,l,c){const u=Ln(l);if(!u)throw new Error("header name must be a non-empty string");const d=K.findKey(n,u);(!d||n[d]===void 0||c===!0||c===void 0&&n[d]!==!1)&&(n[d||l]=aa(s))}const a=(s,l)=>K.forEach(s,(c,u)=>i(c,u,l));return K.isPlainObject(t)||t instanceof this.constructor?a(t,r):K.isString(t)&&(t=t.trim())&&!BR(t)?a(AR(t),r):t!=null&&i(r,t,o),this}get(t,r){if(t=Ln(t),t){const o=K.findKey(this,t);if(o){const n=this[o];if(!r)return n;if(r===!0)return OR(n);if(K.isFunction(r))return r.call(this,n,o);if(K.isRegExp(r))return r.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=Ln(t),t){const o=K.findKey(this,t);return!!(o&&this[o]!==void 0&&(!r||Cl(this,this[o],o,r)))}return!1}delete(t,r){const o=this;let n=!1;function i(a){if(a=Ln(a),a){const s=K.findKey(o,a);s&&(!r||Cl(o,o[s],s,r))&&(delete o[s],n=!0)}}return K.isArray(t)?t.forEach(i):i(t),n}clear(t){const r=Object.keys(this);let o=r.length,n=!1;for(;o--;){const i=r[o];(!t||Cl(this,this[i],i,t,!0))&&(delete this[i],n=!0)}return n}normalize(t){const r=this,o={};return K.forEach(this,(n,i)=>{const a=K.findKey(o,i);if(a){r[a]=aa(n),delete r[i];return}const s=t?HR(i):String(i).trim();s!==i&&delete r[i],r[s]=aa(n),o[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return K.forEach(this,(o,n)=>{o!=null&&o!==!1&&(r[n]=t&&K.isArray(o)?o.join(", "):o)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` -`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const o=new this(t);return r.forEach(n=>o.set(n)),o}static accessor(t){const o=(this[ih]=this[ih]={accessors:{}}).accessors,n=this.prototype;function i(a){const s=Ln(a);o[s]||(MR(n,a),o[s]=!0)}return K.isArray(t)?t.forEach(i):i(t),this}}Ks.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);K.freezeMethods(Ks.prototype);K.freezeMethods(Ks);const $r=Ks;function yl(e,t){const r=this||Wu,o=t||r,n=$r.from(o.headers);let i=o.data;return K.forEach(e,function(s){i=s.call(r,i,n.normalize(),t?t.status:void 0)}),n.normalize(),i}function uv(e){return!!(e&&e.__CANCEL__)}function Ei(e,t,r){Ne.call(this,e??"canceled",Ne.ERR_CANCELED,t,r),this.name="CanceledError"}K.inherits(Ei,Ne,{__CANCEL__:!0});function DR(e,t,r){const o=r.config.validateStatus;!r.status||!o||o(r.status)?e(r):t(new Ne("Request failed with status code "+r.status,[Ne.ERR_BAD_REQUEST,Ne.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}const FR=xr.isStandardBrowserEnv?function(){return{write:function(r,o,n,i,a,s){const l=[];l.push(r+"="+encodeURIComponent(o)),K.isNumber(n)&&l.push("expires="+new Date(n).toGMTString()),K.isString(i)&&l.push("path="+i),K.isString(a)&&l.push("domain="+a),s===!0&&l.push("secure"),document.cookie=l.join("; ")},read:function(r){const o=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return o?decodeURIComponent(o[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function zR(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function NR(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function dv(e,t){return e&&!zR(t)?NR(e,t):t}const WR=xr.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");let o;function n(i){let a=i;return t&&(r.setAttribute("href",a),a=r.href),r.setAttribute("href",a),{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 o=n(window.location.href),function(a){const s=K.isString(a)?n(a):a;return s.protocol===o.protocol&&s.host===o.host}}():function(){return function(){return!0}}();function jR(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function UR(e,t){e=e||10;const r=new Array(e),o=new Array(e);let n=0,i=0,a;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=o[i];a||(a=c),r[n]=l,o[n]=c;let d=i,f=0;for(;d!==n;)f+=r[d++],d=d%e;if(n=(n+1)%e,n===i&&(i=(i+1)%e),c-a{const i=n.loaded,a=n.lengthComputable?n.total:void 0,s=i-r,l=o(s),c=i<=a;r=i;const u={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&c?(a-i)/l:void 0,event:n};u[t?"download":"upload"]=!0,e(u)}}const VR=typeof XMLHttpRequest<"u",qR=VR&&function(e){return new Promise(function(r,o){let n=e.data;const i=$r.from(e.headers).normalize(),a=e.responseType;let s;function l(){e.cancelToken&&e.cancelToken.unsubscribe(s),e.signal&&e.signal.removeEventListener("abort",s)}K.isFormData(n)&&(xr.isStandardBrowserEnv||xr.isStandardBrowserWebWorkerEnv)&&i.setContentType(!1);let c=new XMLHttpRequest;if(e.auth){const p=e.auth.username||"",h=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(p+":"+h))}const u=dv(e.baseURL,e.url);c.open(e.method.toUpperCase(),sv(u,e.params,e.paramsSerializer),!0),c.timeout=e.timeout;function d(){if(!c)return;const p=$r.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders()),m={data:!a||a==="text"||a==="json"?c.responseText:c.response,status:c.status,statusText:c.statusText,headers:p,config:e,request:c};DR(function(g){r(g),l()},function(g){o(g),l()},m),c=null}if("onloadend"in c?c.onloadend=d:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(d)},c.onabort=function(){c&&(o(new Ne("Request aborted",Ne.ECONNABORTED,e,c)),c=null)},c.onerror=function(){o(new Ne("Network Error",Ne.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let h=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const m=e.transitional||lv;e.timeoutErrorMessage&&(h=e.timeoutErrorMessage),o(new Ne(h,m.clarifyTimeoutError?Ne.ETIMEDOUT:Ne.ECONNABORTED,e,c)),c=null},xr.isStandardBrowserEnv){const p=(e.withCredentials||WR(u))&&e.xsrfCookieName&&FR.read(e.xsrfCookieName);p&&i.set(e.xsrfHeaderName,p)}n===void 0&&i.setContentType(null),"setRequestHeader"in c&&K.forEach(i.toJSON(),function(h,m){c.setRequestHeader(m,h)}),K.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),a&&a!=="json"&&(c.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&c.addEventListener("progress",ah(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",ah(e.onUploadProgress)),(e.cancelToken||e.signal)&&(s=p=>{c&&(o(!p||p.type?new Ei(null,e,c):p),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(s),e.signal&&(e.signal.aborted?s():e.signal.addEventListener("abort",s)));const f=jR(u);if(f&&xr.protocols.indexOf(f)===-1){o(new Ne("Unsupported protocol "+f+":",Ne.ERR_BAD_REQUEST,e));return}c.send(n||null)})},sa={http:xR,xhr:qR};K.forEach(sa,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const GR={getAdapter:e=>{e=K.isArray(e)?e:[e];const{length:t}=e;let r,o;for(let n=0;ne instanceof $r?e.toJSON():e;function sn(e,t){t=t||{};const r={};function o(c,u,d){return K.isPlainObject(c)&&K.isPlainObject(u)?K.merge.call({caseless:d},c,u):K.isPlainObject(u)?K.merge({},u):K.isArray(u)?u.slice():u}function n(c,u,d){if(K.isUndefined(u)){if(!K.isUndefined(c))return o(void 0,c,d)}else return o(c,u,d)}function i(c,u){if(!K.isUndefined(u))return o(void 0,u)}function a(c,u){if(K.isUndefined(u)){if(!K.isUndefined(c))return o(void 0,c)}else return o(void 0,u)}function s(c,u,d){if(d in t)return o(c,u);if(d in e)return o(void 0,c)}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(c,u)=>n(lh(c),lh(u),!0)};return K.forEach(Object.keys(e).concat(Object.keys(t)),function(u){const d=l[u]||n,f=d(e[u],t[u],u);K.isUndefined(f)&&d!==s||(r[u]=f)}),r}const fv="1.3.4",ju={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ju[e]=function(o){return typeof o===e||"a"+(t<1?"n ":" ")+e}});const ch={};ju.transitional=function(t,r,o){function n(i,a){return"[Axios v"+fv+"] Transitional option '"+i+"'"+a+(o?". "+o:"")}return(i,a,s)=>{if(t===!1)throw new Ne(n(a," has been removed"+(r?" in "+r:"")),Ne.ERR_DEPRECATED);return r&&!ch[a]&&(ch[a]=!0,console.warn(n(a," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(i,a,s):!0}};function KR(e,t,r){if(typeof e!="object")throw new Ne("options must be an object",Ne.ERR_BAD_OPTION_VALUE);const o=Object.keys(e);let n=o.length;for(;n-- >0;){const i=o[n],a=t[i];if(a){const s=e[i],l=s===void 0||a(s,i,e);if(l!==!0)throw new Ne("option "+i+" must be "+l,Ne.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new Ne("Unknown option "+i,Ne.ERR_BAD_OPTION)}}const pc={assertOptions:KR,validators:ju},Vr=pc.validators;class ns{constructor(t){this.defaults=t,this.interceptors={request:new nh,response:new nh}}request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=sn(this.defaults,r);const{transitional:o,paramsSerializer:n,headers:i}=r;o!==void 0&&pc.assertOptions(o,{silentJSONParsing:Vr.transitional(Vr.boolean),forcedJSONParsing:Vr.transitional(Vr.boolean),clarifyTimeoutError:Vr.transitional(Vr.boolean)},!1),n!==void 0&&pc.assertOptions(n,{encode:Vr.function,serialize:Vr.function},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let a;a=i&&K.merge(i.common,i[r.method]),a&&K.forEach(["delete","get","head","post","put","patch","common"],h=>{delete i[h]}),r.headers=$r.concat(a,i);const s=[];let l=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(r)===!1||(l=l&&m.synchronous,s.unshift(m.fulfilled,m.rejected))});const c=[];this.interceptors.response.forEach(function(m){c.push(m.fulfilled,m.rejected)});let u,d=0,f;if(!l){const h=[sh.bind(this),void 0];for(h.unshift.apply(h,s),h.push.apply(h,c),f=h.length,u=Promise.resolve(r);d{if(!o._listeners)return;let i=o._listeners.length;for(;i-- >0;)o._listeners[i](n);o._listeners=null}),this.promise.then=n=>{let i;const a=new Promise(s=>{o.subscribe(s),i=s}).then(n);return a.cancel=function(){o.unsubscribe(i)},a},t(function(i,a,s){o.reason||(o.reason=new Ei(i,a,s),r(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}static source(){let t;return{token:new Uu(function(n){t=n}),cancel:t}}}const ZR=Uu;function XR(e){return function(r){return e.apply(null,r)}}function YR(e){return K.isObject(e)&&e.isAxiosError===!0}const mc={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(mc).forEach(([e,t])=>{mc[t]=e});const QR=mc;function hv(e){const t=new la(e),r=Kx(la.prototype.request,t);return K.extend(r,la.prototype,t,{allOwnKeys:!0}),K.extend(r,t,null,{allOwnKeys:!0}),r.create=function(n){return hv(sn(e,n))},r}const ht=hv(Wu);ht.Axios=la;ht.CanceledError=Ei;ht.CancelToken=ZR;ht.isCancel=uv;ht.VERSION=fv;ht.toFormData=qs;ht.AxiosError=Ne;ht.Cancel=ht.CanceledError;ht.all=function(t){return Promise.all(t)};ht.spread=XR;ht.isAxiosError=YR;ht.mergeConfig=sn;ht.AxiosHeaders=$r;ht.formToJSON=e=>cv(K.isHTMLForm(e)?new FormData(e):e);ht.HttpStatusCode=QR;ht.default=ht;const JR=ht,is=JR.create({baseURL:"/api"});is.interceptors.request.use(e=>{const t=Ox().token;return t&&(e.headers.Authorization=`Bearer ${t}`),e},e=>Promise.reject(e.response));is.interceptors.response.use(e=>{if(e.status===200)return e;throw new Error(e.status.toString())},e=>Promise.reject(e));/*! - * shared v9.2.2 - * (c) 2022 kazuya kawaguchi - * Released under the MIT License. - */const gc=typeof window<"u",eA=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol",lo=e=>eA?Symbol(e):e,tA=(e,t,r)=>rA({l:e,k:t,s:r}),rA=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),ut=e=>typeof e=="number"&&isFinite(e),oA=e=>qu(e)==="[object Date]",io=e=>qu(e)==="[object RegExp]",Zs=e=>Le(e)&&Object.keys(e).length===0;function nA(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const mt=Object.assign;let uh;const Vn=()=>uh||(uh=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function dh(e){return e.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const iA=Object.prototype.hasOwnProperty;function Vu(e,t){return iA.call(e,t)}const Ge=Array.isArray,at=e=>typeof e=="function",fe=e=>typeof e=="string",Be=e=>typeof e=="boolean",Ke=e=>e!==null&&typeof e=="object",pv=Object.prototype.toString,qu=e=>pv.call(e),Le=e=>qu(e)==="[object Object]",aA=e=>e==null?"":Ge(e)||Le(e)&&e.toString===pv?JSON.stringify(e,null,2):String(e);/*! - * message-compiler v9.2.2 - * (c) 2022 kazuya kawaguchi - * Released under the MIT License. - */const We={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,__EXTEND_POINT__:15};function Xs(e,t,r={}){const{domain:o,messages:n,args:i}=r,a=e,s=new SyntaxError(String(a));return s.code=e,t&&(s.location=t),s.domain=o,s}function sA(e){throw e}function lA(e,t,r){return{line:e,column:t,offset:r}}function xc(e,t,r){const o={start:e,end:t};return r!=null&&(o.source=r),o}const Er=" ",cA="\r",Et=` -`,uA=String.fromCharCode(8232),dA=String.fromCharCode(8233);function fA(e){const t=e;let r=0,o=1,n=1,i=0;const a=S=>t[S]===cA&&t[S+1]===Et,s=S=>t[S]===Et,l=S=>t[S]===dA,c=S=>t[S]===uA,u=S=>a(S)||s(S)||l(S)||c(S),d=()=>r,f=()=>o,p=()=>n,h=()=>i,m=S=>a(S)||l(S)||c(S)?Et:t[S],v=()=>m(r),g=()=>m(r+i);function x(){return i=0,u(r)&&(o++,n=0),a(r)&&r++,r++,n++,t[r]}function C(){return a(r+i)&&i++,i++,t[r+i]}function b(){r=0,o=1,n=1,i=0}function w(S=0){i=S}function T(){const S=r+i;for(;S!==r;)x();i=0}return{index:d,line:f,column:p,peekOffset:h,charAt:m,currentChar:v,currentPeek:g,next:x,peek:C,reset:b,resetPeek:w,skipToPeek:T}}const qr=void 0,fh="'",hA="tokenizer";function pA(e,t={}){const r=t.location!==!1,o=fA(e),n=()=>o.index(),i=()=>lA(o.line(),o.column(),o.index()),a=i(),s=n(),l={currentType:14,offset:s,startLoc:a,endLoc:a,lastType:14,lastOffset:s,lastStartLoc:a,lastEndLoc:a,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function d(y,_,L,...O){const N=c();if(_.column+=L,_.offset+=L,u){const X=xc(N.startLoc,_),te=Xs(y,X,{domain:hA,args:O});u(te)}}function f(y,_,L){y.endLoc=i(),y.currentType=_;const O={type:_};return r&&(O.loc=xc(y.startLoc,y.endLoc)),L!=null&&(O.value=L),O}const p=y=>f(y,14);function h(y,_){return y.currentChar()===_?(y.next(),_):(d(We.EXPECTED_TOKEN,i(),0,_),"")}function m(y){let _="";for(;y.currentPeek()===Er||y.currentPeek()===Et;)_+=y.currentPeek(),y.peek();return _}function v(y){const _=m(y);return y.skipToPeek(),_}function g(y){if(y===qr)return!1;const _=y.charCodeAt(0);return _>=97&&_<=122||_>=65&&_<=90||_===95}function x(y){if(y===qr)return!1;const _=y.charCodeAt(0);return _>=48&&_<=57}function C(y,_){const{currentType:L}=_;if(L!==2)return!1;m(y);const O=g(y.currentPeek());return y.resetPeek(),O}function b(y,_){const{currentType:L}=_;if(L!==2)return!1;m(y);const O=y.currentPeek()==="-"?y.peek():y.currentPeek(),N=x(O);return y.resetPeek(),N}function w(y,_){const{currentType:L}=_;if(L!==2)return!1;m(y);const O=y.currentPeek()===fh;return y.resetPeek(),O}function T(y,_){const{currentType:L}=_;if(L!==8)return!1;m(y);const O=y.currentPeek()===".";return y.resetPeek(),O}function S(y,_){const{currentType:L}=_;if(L!==9)return!1;m(y);const O=g(y.currentPeek());return y.resetPeek(),O}function E(y,_){const{currentType:L}=_;if(!(L===8||L===12))return!1;m(y);const O=y.currentPeek()===":";return y.resetPeek(),O}function I(y,_){const{currentType:L}=_;if(L!==10)return!1;const O=()=>{const X=y.currentPeek();return X==="{"?g(y.peek()):X==="@"||X==="%"||X==="|"||X===":"||X==="."||X===Er||!X?!1:X===Et?(y.peek(),O()):g(X)},N=O();return y.resetPeek(),N}function P(y){m(y);const _=y.currentPeek()==="|";return y.resetPeek(),_}function $(y){const _=m(y),L=y.currentPeek()==="%"&&y.peek()==="{";return y.resetPeek(),{isModulo:L,hasSpace:_.length>0}}function R(y,_=!0){const L=(N=!1,X="",te=!1)=>{const q=y.currentPeek();return q==="{"?X==="%"?!1:N:q==="@"||!q?X==="%"?!0:N:q==="%"?(y.peek(),L(N,"%",!0)):q==="|"?X==="%"||te?!0:!(X===Er||X===Et):q===Er?(y.peek(),L(!0,Er,te)):q===Et?(y.peek(),L(!0,Et,te)):!0},O=L();return _&&y.resetPeek(),O}function B(y,_){const L=y.currentChar();return L===qr?qr:_(L)?(y.next(),L):null}function j(y){return B(y,L=>{const O=L.charCodeAt(0);return O>=97&&O<=122||O>=65&&O<=90||O>=48&&O<=57||O===95||O===36})}function Y(y){return B(y,L=>{const O=L.charCodeAt(0);return O>=48&&O<=57})}function J(y){return B(y,L=>{const O=L.charCodeAt(0);return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102})}function Q(y){let _="",L="";for(;_=Y(y);)L+=_;return L}function ie(y){v(y);const _=y.currentChar();return _!=="%"&&d(We.EXPECTED_TOKEN,i(),0,_),y.next(),"%"}function ge(y){let _="";for(;;){const L=y.currentChar();if(L==="{"||L==="}"||L==="@"||L==="|"||!L)break;if(L==="%")if(R(y))_+=L,y.next();else break;else if(L===Er||L===Et)if(R(y))_+=L,y.next();else{if(P(y))break;_+=L,y.next()}else _+=L,y.next()}return _}function ve(y){v(y);let _="",L="";for(;_=j(y);)L+=_;return y.currentChar()===qr&&d(We.UNTERMINATED_CLOSING_BRACE,i(),0),L}function z(y){v(y);let _="";return y.currentChar()==="-"?(y.next(),_+=`-${Q(y)}`):_+=Q(y),y.currentChar()===qr&&d(We.UNTERMINATED_CLOSING_BRACE,i(),0),_}function W(y){v(y),h(y,"'");let _="",L="";const O=X=>X!==fh&&X!==Et;for(;_=B(y,O);)_==="\\"?L+=Z(y):L+=_;const N=y.currentChar();return N===Et||N===qr?(d(We.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,i(),0),N===Et&&(y.next(),h(y,"'")),L):(h(y,"'"),L)}function Z(y){const _=y.currentChar();switch(_){case"\\":case"'":return y.next(),`\\${_}`;case"u":return V(y,_,4);case"U":return V(y,_,6);default:return d(We.UNKNOWN_ESCAPE_SEQUENCE,i(),0,_),""}}function V(y,_,L){h(y,_);let O="";for(let N=0;NN!=="{"&&N!=="}"&&N!==Er&&N!==Et;for(;_=B(y,O);)L+=_;return L}function U(y){let _="",L="";for(;_=j(y);)L+=_;return L}function re(y){const _=(L=!1,O)=>{const N=y.currentChar();return N==="{"||N==="%"||N==="@"||N==="|"||!N||N===Er?O:N===Et?(O+=N,y.next(),_(L,O)):(O+=N,y.next(),_(!0,O))};return _(!1,"")}function ee(y){v(y);const _=h(y,"|");return v(y),_}function ce(y,_){let L=null;switch(y.currentChar()){case"{":return _.braceNest>=1&&d(We.NOT_ALLOW_NEST_PLACEHOLDER,i(),0),y.next(),L=f(_,2,"{"),v(y),_.braceNest++,L;case"}":return _.braceNest>0&&_.currentType===2&&d(We.EMPTY_PLACEHOLDER,i(),0),y.next(),L=f(_,3,"}"),_.braceNest--,_.braceNest>0&&v(y),_.inLinked&&_.braceNest===0&&(_.inLinked=!1),L;case"@":return _.braceNest>0&&d(We.UNTERMINATED_CLOSING_BRACE,i(),0),L=ke(y,_)||p(_),_.braceNest=0,L;default:let N=!0,X=!0,te=!0;if(P(y))return _.braceNest>0&&d(We.UNTERMINATED_CLOSING_BRACE,i(),0),L=f(_,1,ee(y)),_.braceNest=0,_.inLinked=!1,L;if(_.braceNest>0&&(_.currentType===5||_.currentType===6||_.currentType===7))return d(We.UNTERMINATED_CLOSING_BRACE,i(),0),_.braceNest=0,ye(y,_);if(N=C(y,_))return L=f(_,5,ve(y)),v(y),L;if(X=b(y,_))return L=f(_,6,z(y)),v(y),L;if(te=w(y,_))return L=f(_,7,W(y)),v(y),L;if(!N&&!X&&!te)return L=f(_,13,D(y)),d(We.INVALID_TOKEN_IN_PLACEHOLDER,i(),0,L.value),v(y),L;break}return L}function ke(y,_){const{currentType:L}=_;let O=null;const N=y.currentChar();switch((L===8||L===9||L===12||L===10)&&(N===Et||N===Er)&&d(We.INVALID_LINKED_FORMAT,i(),0),N){case"@":return y.next(),O=f(_,8,"@"),_.inLinked=!0,O;case".":return v(y),y.next(),f(_,9,".");case":":return v(y),y.next(),f(_,10,":");default:return P(y)?(O=f(_,1,ee(y)),_.braceNest=0,_.inLinked=!1,O):T(y,_)||E(y,_)?(v(y),ke(y,_)):S(y,_)?(v(y),f(_,12,U(y))):I(y,_)?(v(y),N==="{"?ce(y,_)||O:f(_,11,re(y))):(L===8&&d(We.INVALID_LINKED_FORMAT,i(),0),_.braceNest=0,_.inLinked=!1,ye(y,_))}}function ye(y,_){let L={type:14};if(_.braceNest>0)return ce(y,_)||p(_);if(_.inLinked)return ke(y,_)||p(_);switch(y.currentChar()){case"{":return ce(y,_)||p(_);case"}":return d(We.UNBALANCED_CLOSING_BRACE,i(),0),y.next(),f(_,3,"}");case"@":return ke(y,_)||p(_);default:if(P(y))return L=f(_,1,ee(y)),_.braceNest=0,_.inLinked=!1,L;const{isModulo:N,hasSpace:X}=$(y);if(N)return X?f(_,0,ge(y)):f(_,4,ie(y));if(R(y))return f(_,0,ge(y));break}return L}function k(){const{currentType:y,offset:_,startLoc:L,endLoc:O}=l;return l.lastType=y,l.lastOffset=_,l.lastStartLoc=L,l.lastEndLoc=O,l.offset=n(),l.startLoc=i(),o.currentChar()===qr?f(l,14):ye(o,l)}return{nextToken:k,currentOffset:n,currentPosition:i,context:c}}const mA="parser",gA=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function xA(e,t,r){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const o=parseInt(t||r,16);return o<=55295||o>=57344?String.fromCodePoint(o):"�"}}}function vA(e={}){const t=e.location!==!1,{onError:r}=e;function o(g,x,C,b,...w){const T=g.currentPosition();if(T.offset+=b,T.column+=b,r){const S=xc(C,T),E=Xs(x,S,{domain:mA,args:w});r(E)}}function n(g,x,C){const b={type:g,start:x,end:x};return t&&(b.loc={start:C,end:C}),b}function i(g,x,C,b){g.end=x,b&&(g.type=b),t&&g.loc&&(g.loc.end=C)}function a(g,x){const C=g.context(),b=n(3,C.offset,C.startLoc);return b.value=x,i(b,g.currentOffset(),g.currentPosition()),b}function s(g,x){const C=g.context(),{lastOffset:b,lastStartLoc:w}=C,T=n(5,b,w);return T.index=parseInt(x,10),g.nextToken(),i(T,g.currentOffset(),g.currentPosition()),T}function l(g,x){const C=g.context(),{lastOffset:b,lastStartLoc:w}=C,T=n(4,b,w);return T.key=x,g.nextToken(),i(T,g.currentOffset(),g.currentPosition()),T}function c(g,x){const C=g.context(),{lastOffset:b,lastStartLoc:w}=C,T=n(9,b,w);return T.value=x.replace(gA,xA),g.nextToken(),i(T,g.currentOffset(),g.currentPosition()),T}function u(g){const x=g.nextToken(),C=g.context(),{lastOffset:b,lastStartLoc:w}=C,T=n(8,b,w);return x.type!==12?(o(g,We.UNEXPECTED_EMPTY_LINKED_MODIFIER,C.lastStartLoc,0),T.value="",i(T,b,w),{nextConsumeToken:x,node:T}):(x.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,hr(x)),T.value=x.value||"",i(T,g.currentOffset(),g.currentPosition()),{node:T})}function d(g,x){const C=g.context(),b=n(7,C.offset,C.startLoc);return b.value=x,i(b,g.currentOffset(),g.currentPosition()),b}function f(g){const x=g.context(),C=n(6,x.offset,x.startLoc);let b=g.nextToken();if(b.type===9){const w=u(g);C.modifier=w.node,b=w.nextConsumeToken||g.nextToken()}switch(b.type!==10&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(b)),b=g.nextToken(),b.type===2&&(b=g.nextToken()),b.type){case 11:b.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(b)),C.key=d(g,b.value||"");break;case 5:b.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(b)),C.key=l(g,b.value||"");break;case 6:b.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(b)),C.key=s(g,b.value||"");break;case 7:b.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(b)),C.key=c(g,b.value||"");break;default:o(g,We.UNEXPECTED_EMPTY_LINKED_KEY,x.lastStartLoc,0);const w=g.context(),T=n(7,w.offset,w.startLoc);return T.value="",i(T,w.offset,w.startLoc),C.key=T,i(C,w.offset,w.startLoc),{nextConsumeToken:b,node:C}}return i(C,g.currentOffset(),g.currentPosition()),{node:C}}function p(g){const x=g.context(),C=x.currentType===1?g.currentOffset():x.offset,b=x.currentType===1?x.endLoc:x.startLoc,w=n(2,C,b);w.items=[];let T=null;do{const I=T||g.nextToken();switch(T=null,I.type){case 0:I.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(I)),w.items.push(a(g,I.value||""));break;case 6:I.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(I)),w.items.push(s(g,I.value||""));break;case 5:I.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(I)),w.items.push(l(g,I.value||""));break;case 7:I.value==null&&o(g,We.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,hr(I)),w.items.push(c(g,I.value||""));break;case 8:const P=f(g);w.items.push(P.node),T=P.nextConsumeToken||null;break}}while(x.currentType!==14&&x.currentType!==1);const S=x.currentType===1?x.lastOffset:g.currentOffset(),E=x.currentType===1?x.lastEndLoc:g.currentPosition();return i(w,S,E),w}function h(g,x,C,b){const w=g.context();let T=b.items.length===0;const S=n(1,x,C);S.cases=[],S.cases.push(b);do{const E=p(g);T||(T=E.items.length===0),S.cases.push(E)}while(w.currentType!==14);return T&&o(g,We.MUST_HAVE_MESSAGES_IN_PLURAL,C,0),i(S,g.currentOffset(),g.currentPosition()),S}function m(g){const x=g.context(),{offset:C,startLoc:b}=x,w=p(g);return x.currentType===14?w:h(g,C,b,w)}function v(g){const x=pA(g,mt({},e)),C=x.context(),b=n(0,C.offset,C.startLoc);return t&&b.loc&&(b.loc.source=g),b.body=m(x),C.currentType!==14&&o(x,We.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,g[C.offset]||""),i(b,x.currentOffset(),x.currentPosition()),b}return{parse:v}}function hr(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function bA(e,t={}){const r={ast:e,helpers:new Set};return{context:()=>r,helper:i=>(r.helpers.add(i),i)}}function hh(e,t){for(let r=0;ra;function l(m,v){a.code+=m}function c(m,v=!0){const g=v?n:"";l(i?g+" ".repeat(m):g)}function u(m=!0){const v=++a.indentLevel;m&&c(v)}function d(m=!0){const v=--a.indentLevel;m&&c(v)}function f(){c(a.indentLevel)}return{context:s,push:l,indent:u,deindent:d,newline:f,helper:m=>`_${m}`,needIndent:()=>a.needIndent}}function SA(e,t){const{helper:r}=e;e.push(`${r("linked")}(`),ln(e,t.key),t.modifier?(e.push(", "),ln(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function wA(e,t){const{helper:r,needIndent:o}=e;e.push(`${r("normalize")}([`),e.indent(o());const n=t.items.length;for(let i=0;i1){e.push(`${r("plural")}([`),e.indent(o());const n=t.cases.length;for(let i=0;i{const r=fe(t.mode)?t.mode:"normal",o=fe(t.filename)?t.filename:"message.intl",n=!!t.sourceMap,i=t.breakLineCode!=null?t.breakLineCode:r==="arrow"?";":` -`,a=t.needIndent?t.needIndent:r!=="arrow",s=e.helpers||[],l=yA(e,{mode:r,filename:o,sourceMap:n,breakLineCode:i,needIndent:a});l.push(r==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(a),s.length>0&&(l.push(`const { ${s.map(d=>`${d}: _${d}`).join(", ")} } = ctx`),l.newline()),l.push("return "),ln(l,e),l.deindent(a),l.push("}");const{code:c,map:u}=l.context();return{ast:e,code:c,map:u?u.toJSON():void 0}};function PA(e,t={}){const r=mt({},t),n=vA(r).parse(e);return CA(n,r),EA(n,r)}/*! - * devtools-if v9.2.2 - * (c) 2022 kazuya kawaguchi - * Released under the MIT License. - */const mv={I18nInit:"i18n:init",FunctionTranslate:"function:translate"};/*! - * core-base v9.2.2 - * (c) 2022 kazuya kawaguchi - * Released under the MIT License. - */const co=[];co[0]={w:[0],i:[3,0],["["]:[4],o:[7]};co[1]={w:[1],["."]:[2],["["]:[4],o:[7]};co[2]={w:[2],i:[3,0],[0]:[3,0]};co[3]={i:[3,0],[0]:[3,0],w:[1,1],["."]:[2,1],["["]:[4,1],o:[7,1]};co[4]={["'"]:[5,0],['"']:[6,0],["["]:[4,2],["]"]:[1,3],o:8,l:[4,0]};co[5]={["'"]:[4,0],o:8,l:[5,0]};co[6]={['"']:[4,0],o:8,l:[6,0]};const kA=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function LA(e){return kA.test(e)}function $A(e){const t=e.charCodeAt(0),r=e.charCodeAt(e.length-1);return t===r&&(t===34||t===39)?e.slice(1,-1):e}function IA(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function RA(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:LA(t)?$A(t):"*"+t}function AA(e){const t=[];let r=-1,o=0,n=0,i,a,s,l,c,u,d;const f=[];f[0]=()=>{a===void 0?a=s:a+=s},f[1]=()=>{a!==void 0&&(t.push(a),a=void 0)},f[2]=()=>{f[0](),n++},f[3]=()=>{if(n>0)n--,o=4,f[0]();else{if(n=0,a===void 0||(a=RA(a),a===!1))return!1;f[1]()}};function p(){const h=e[r+1];if(o===5&&h==="'"||o===6&&h==='"')return r++,s="\\"+h,f[0](),!0}for(;o!==null;)if(r++,i=e[r],!(i==="\\"&&p())){if(l=IA(i),d=co[o],c=d[l]||d.l||8,c===8||(o=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(s=i,u()===!1))))return;if(o===7)return t}}const ph=new Map;function OA(e,t){return Ke(e)?e[t]:null}function BA(e,t){if(!Ke(e))return null;let r=ph.get(t);if(r||(r=AA(t),r&&ph.set(t,r)),!r)return null;const o=r.length;let n=e,i=0;for(;ie,MA=e=>"",DA="text",FA=e=>e.length===0?"":e.join(""),zA=aA;function mh(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function NA(e){const t=ut(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(ut(e.named.count)||ut(e.named.n))?ut(e.named.count)?e.named.count:ut(e.named.n)?e.named.n:t:t}function WA(e,t){t.count||(t.count=e),t.n||(t.n=e)}function jA(e={}){const t=e.locale,r=NA(e),o=Ke(e.pluralRules)&&fe(t)&&at(e.pluralRules[t])?e.pluralRules[t]:mh,n=Ke(e.pluralRules)&&fe(t)&&at(e.pluralRules[t])?mh:void 0,i=g=>g[o(r,g.length,n)],a=e.list||[],s=g=>a[g],l=e.named||{};ut(e.pluralIndex)&&WA(r,l);const c=g=>l[g];function u(g){const x=at(e.messages)?e.messages(g):Ke(e.messages)?e.messages[g]:!1;return x||(e.parent?e.parent.message(g):MA)}const d=g=>e.modifiers?e.modifiers[g]:HA,f=Le(e.processor)&&at(e.processor.normalize)?e.processor.normalize:FA,p=Le(e.processor)&&at(e.processor.interpolate)?e.processor.interpolate:zA,h=Le(e.processor)&&fe(e.processor.type)?e.processor.type:DA,v={list:s,named:c,plural:i,linked:(g,...x)=>{const[C,b]=x;let w="text",T="";x.length===1?Ke(C)?(T=C.modifier||T,w=C.type||w):fe(C)&&(T=C||T):x.length===2&&(fe(C)&&(T=C||T),fe(b)&&(w=b||w));let S=u(g)(v);return w==="vnode"&&Ge(S)&&T&&(S=S[0]),T?d(T)(S,w):S},message:u,type:h,interpolate:p,normalize:f};return v}let pi=null;function UA(e){pi=e}function VA(e,t,r){pi&&pi.emit(mv.I18nInit,{timestamp:Date.now(),i18n:e,version:t,meta:r})}const qA=GA(mv.FunctionTranslate);function GA(e){return t=>pi&&pi.emit(e,t)}function KA(e,t,r){return[...new Set([r,...Ge(t)?t:Ke(t)?Object.keys(t):fe(t)?[t]:[r]])]}function gv(e,t,r){const o=fe(r)?r:Pi,n=e;n.__localeChainCache||(n.__localeChainCache=new Map);let i=n.__localeChainCache.get(o);if(!i){i=[];let a=[r];for(;Ge(a);)a=gh(i,a,t);const s=Ge(t)||!Le(t)?t:t.default?t.default:null;a=fe(s)?[s]:s,Ge(a)&&gh(i,a,!1),n.__localeChainCache.set(o,i)}return i}function gh(e,t,r){let o=!0;for(let n=0;n`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function QA(){return{upper:(e,t)=>t==="text"&&fe(e)?e.toUpperCase():t==="vnode"&&Ke(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&fe(e)?e.toLowerCase():t==="vnode"&&Ke(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&fe(e)?vh(e):t==="vnode"&&Ke(e)&&"__v_isVNode"in e?vh(e.children):e}}let xv;function JA(e){xv=e}let vv;function eO(e){vv=e}let bv;function tO(e){bv=e}let Cv=null;const bh=e=>{Cv=e},rO=()=>Cv;let yv=null;const Ch=e=>{yv=e},oO=()=>yv;let yh=0;function nO(e={}){const t=fe(e.version)?e.version:YA,r=fe(e.locale)?e.locale:Pi,o=Ge(e.fallbackLocale)||Le(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:r,n=Le(e.messages)?e.messages:{[r]:{}},i=Le(e.datetimeFormats)?e.datetimeFormats:{[r]:{}},a=Le(e.numberFormats)?e.numberFormats:{[r]:{}},s=mt({},e.modifiers||{},QA()),l=e.pluralRules||{},c=at(e.missing)?e.missing:null,u=Be(e.missingWarn)||io(e.missingWarn)?e.missingWarn:!0,d=Be(e.fallbackWarn)||io(e.fallbackWarn)?e.fallbackWarn:!0,f=!!e.fallbackFormat,p=!!e.unresolving,h=at(e.postTranslation)?e.postTranslation:null,m=Le(e.processor)?e.processor:null,v=Be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,g=!!e.escapeParameter,x=at(e.messageCompiler)?e.messageCompiler:xv,C=at(e.messageResolver)?e.messageResolver:vv||OA,b=at(e.localeFallbacker)?e.localeFallbacker:bv||KA,w=Ke(e.fallbackContext)?e.fallbackContext:void 0,T=at(e.onWarn)?e.onWarn:nA,S=e,E=Ke(S.__datetimeFormatters)?S.__datetimeFormatters:new Map,I=Ke(S.__numberFormatters)?S.__numberFormatters:new Map,P=Ke(S.__meta)?S.__meta:{};yh++;const $={version:t,cid:yh,locale:r,fallbackLocale:o,messages:n,modifiers:s,pluralRules:l,missing:c,missingWarn:u,fallbackWarn:d,fallbackFormat:f,unresolving:p,postTranslation:h,processor:m,warnHtmlMessage:v,escapeParameter:g,messageCompiler:x,messageResolver:C,localeFallbacker:b,fallbackContext:w,onWarn:T,__meta:P};return $.datetimeFormats=i,$.numberFormats=a,$.__datetimeFormatters=E,$.__numberFormatters=I,__INTLIFY_PROD_DEVTOOLS__&&VA($,t,P),$}function Ku(e,t,r,o,n){const{missing:i,onWarn:a}=e;if(i!==null){const s=i(e,r,t,n);return fe(s)?s:t}else return t}function $n(e,t,r){const o=e;o.__localeChainCache=new Map,e.localeFallbacker(e,r,t)}const iO=e=>e;let Sh=Object.create(null);function aO(e,t={}){{const o=(t.onCacheKey||iO)(e),n=Sh[o];if(n)return n;let i=!1;const a=t.onError||sA;t.onError=c=>{i=!0,a(c)};const{code:s}=PA(e,t),l=new Function(`return ${s}`)();return i?l:Sh[o]=l}}let Sv=We.__EXTEND_POINT__;const wl=()=>++Sv,Go={INVALID_ARGUMENT:Sv,INVALID_DATE_ARGUMENT:wl(),INVALID_ISO_DATE_ARGUMENT:wl(),__EXTEND_POINT__:wl()};function Ko(e){return Xs(e,null,void 0)}const wh=()=>"",mr=e=>at(e);function _h(e,...t){const{fallbackFormat:r,postTranslation:o,unresolving:n,messageCompiler:i,fallbackLocale:a,messages:s}=e,[l,c]=vc(...t),u=Be(c.missingWarn)?c.missingWarn:e.missingWarn,d=Be(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=Be(c.escapeParameter)?c.escapeParameter:e.escapeParameter,p=!!c.resolvedMessage,h=fe(c.default)||Be(c.default)?Be(c.default)?i?l:()=>l:c.default:r?i?l:()=>l:"",m=r||h!=="",v=fe(c.locale)?c.locale:e.locale;f&&sO(c);let[g,x,C]=p?[l,v,s[v]||{}]:wv(e,l,v,a,d,u),b=g,w=l;if(!p&&!(fe(b)||mr(b))&&m&&(b=h,w=b),!p&&(!(fe(b)||mr(b))||!fe(x)))return n?Ys:l;let T=!1;const S=()=>{T=!0},E=mr(b)?b:_v(e,l,x,b,w,S);if(T)return b;const I=uO(e,x,C,c),P=jA(I),$=lO(e,E,P),R=o?o($,l):$;if(__INTLIFY_PROD_DEVTOOLS__){const B={timestamp:Date.now(),key:fe(l)?l:mr(b)?b.key:"",locale:x||(mr(b)?b.locale:""),format:fe(b)?b:mr(b)?b.source:"",message:R};B.meta=mt({},e.__meta,rO()||{}),qA(B)}return R}function sO(e){Ge(e.list)?e.list=e.list.map(t=>fe(t)?dh(t):t):Ke(e.named)&&Object.keys(e.named).forEach(t=>{fe(e.named[t])&&(e.named[t]=dh(e.named[t]))})}function wv(e,t,r,o,n,i){const{messages:a,onWarn:s,messageResolver:l,localeFallbacker:c}=e,u=c(e,o,r);let d={},f,p=null;const h="translate";for(let m=0;mo;return c.locale=r,c.key=t,c}const l=a(o,cO(e,r,n,o,s,i));return l.locale=r,l.key=t,l.source=o,l}function lO(e,t,r){return t(r)}function vc(...e){const[t,r,o]=e,n={};if(!fe(t)&&!ut(t)&&!mr(t))throw Ko(Go.INVALID_ARGUMENT);const i=ut(t)?String(t):(mr(t),t);return ut(r)?n.plural=r:fe(r)?n.default=r:Le(r)&&!Zs(r)?n.named=r:Ge(r)&&(n.list=r),ut(o)?n.plural=o:fe(o)?n.default=o:Le(o)&&mt(n,o),[i,n]}function cO(e,t,r,o,n,i){return{warnHtmlMessage:n,onError:a=>{throw i&&i(a),a},onCacheKey:a=>tA(t,r,a)}}function uO(e,t,r,o){const{modifiers:n,pluralRules:i,messageResolver:a,fallbackLocale:s,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:n,pluralRules:i,messages:p=>{let h=a(r,p);if(h==null&&u){const[,,m]=wv(u,p,t,s,l,c);h=a(m,p)}if(fe(h)){let m=!1;const g=_v(e,p,t,h,p,()=>{m=!0});return m?wh:g}else return mr(h)?h:wh}};return e.processor&&(f.processor=e.processor),o.list&&(f.list=o.list),o.named&&(f.named=o.named),ut(o.plural)&&(f.pluralIndex=o.plural),f}function Th(e,...t){const{datetimeFormats:r,unresolving:o,fallbackLocale:n,onWarn:i,localeFallbacker:a}=e,{__datetimeFormatters:s}=e,[l,c,u,d]=bc(...t),f=Be(u.missingWarn)?u.missingWarn:e.missingWarn;Be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const p=!!u.part,h=fe(u.locale)?u.locale:e.locale,m=a(e,n,h);if(!fe(l)||l==="")return new Intl.DateTimeFormat(h,d).format(c);let v={},g,x=null;const C="datetime format";for(let T=0;T{Tv.includes(l)?a[l]=r[l]:i[l]=r[l]}),fe(o)?i.locale=o:Le(o)&&(a=o),Le(n)&&(a=n),[i.key||"",s,i,a]}function Eh(e,t,r){const o=e;for(const n in r){const i=`${t}__${n}`;o.__datetimeFormatters.has(i)&&o.__datetimeFormatters.delete(i)}}function Ph(e,...t){const{numberFormats:r,unresolving:o,fallbackLocale:n,onWarn:i,localeFallbacker:a}=e,{__numberFormatters:s}=e,[l,c,u,d]=Cc(...t),f=Be(u.missingWarn)?u.missingWarn:e.missingWarn;Be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const p=!!u.part,h=fe(u.locale)?u.locale:e.locale,m=a(e,n,h);if(!fe(l)||l==="")return new Intl.NumberFormat(h,d).format(c);let v={},g,x=null;const C="number format";for(let T=0;T{Ev.includes(l)?a[l]=r[l]:i[l]=r[l]}),fe(o)?i.locale=o:Le(o)&&(a=o),Le(n)&&(a=n),[i.key||"",s,i,a]}function kh(e,t,r){const o=e;for(const n in r){const i=`${t}__${n}`;o.__numberFormatters.has(i)&&o.__numberFormatters.delete(i)}}typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Vn().__INTLIFY_PROD_DEVTOOLS__=!1);/*! - * vue-i18n v9.2.2 - * (c) 2022 kazuya kawaguchi - * Released under the MIT License. - */const dO="9.2.2";function fO(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Vn().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Vn().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Vn().__INTLIFY_PROD_DEVTOOLS__=!1)}let Pv=We.__EXTEND_POINT__;const Ot=()=>++Pv,lt={UNEXPECTED_RETURN_TYPE:Pv,INVALID_ARGUMENT:Ot(),MUST_BE_CALL_SETUP_TOP:Ot(),NOT_INSLALLED:Ot(),NOT_AVAILABLE_IN_LEGACY_MODE:Ot(),REQUIRED_VALUE:Ot(),INVALID_VALUE:Ot(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ot(),NOT_INSLALLED_WITH_PROVIDE:Ot(),UNEXPECTED_ERROR:Ot(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ot(),BRIDGE_SUPPORT_VUE_2_ONLY:Ot(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ot(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ot(),__EXTEND_POINT__:Ot()};function ft(e,...t){return Xs(e,null,void 0)}const yc=lo("__transrateVNode"),Sc=lo("__datetimeParts"),wc=lo("__numberParts"),kv=lo("__setPluralRules");lo("__intlifyMeta");const Lv=lo("__injectWithOption");function _c(e){if(!Ke(e))return e;for(const t in e)if(Vu(e,t))if(!t.includes("."))Ke(e[t])&&_c(e[t]);else{const r=t.split("."),o=r.length-1;let n=e;for(let i=0;i{if("locale"in s&&"resource"in s){const{locale:l,resource:c}=s;l?(a[l]=a[l]||{},qn(c,a[l])):qn(c,a)}else fe(s)&&qn(JSON.parse(s),a)}),n==null&&i)for(const s in a)Vu(a,s)&&_c(a[s]);return a}const Ki=e=>!Ke(e)||Ge(e);function qn(e,t){if(Ki(e)||Ki(t))throw ft(lt.INVALID_VALUE);for(const r in e)Vu(e,r)&&(Ki(e[r])||Ki(t[r])?t[r]=e[r]:qn(e[r],t[r]))}function $v(e){return e.type}function Iv(e,t,r){let o=Ke(t.messages)?t.messages:{};"__i18nGlobal"in r&&(o=Qs(e.locale.value,{messages:o,__i18n:r.__i18nGlobal}));const n=Object.keys(o);n.length&&n.forEach(i=>{e.mergeLocaleMessage(i,o[i])});{if(Ke(t.datetimeFormats)){const i=Object.keys(t.datetimeFormats);i.length&&i.forEach(a=>{e.mergeDateTimeFormat(a,t.datetimeFormats[a])})}if(Ke(t.numberFormats)){const i=Object.keys(t.numberFormats);i.length&&i.forEach(a=>{e.mergeNumberFormat(a,t.numberFormats[a])})}}}function Lh(e){return qe(xi,null,e,0)}const $h="__INTLIFY_META__";let Ih=0;function Rh(e){return(t,r,o,n)=>e(r,o,ir()||void 0,n)}const hO=()=>{const e=ir();let t=null;return e&&(t=$v(e)[$h])?{[$h]:t}:null};function Zu(e={},t){const{__root:r}=e,o=r===void 0;let n=Be(e.inheritLocale)?e.inheritLocale:!0;const i=de(r&&n?r.locale.value:fe(e.locale)?e.locale:Pi),a=de(r&&n?r.fallbackLocale.value:fe(e.fallbackLocale)||Ge(e.fallbackLocale)||Le(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:i.value),s=de(Qs(i.value,e)),l=de(Le(e.datetimeFormats)?e.datetimeFormats:{[i.value]:{}}),c=de(Le(e.numberFormats)?e.numberFormats:{[i.value]:{}});let u=r?r.missingWarn:Be(e.missingWarn)||io(e.missingWarn)?e.missingWarn:!0,d=r?r.fallbackWarn:Be(e.fallbackWarn)||io(e.fallbackWarn)?e.fallbackWarn:!0,f=r?r.fallbackRoot:Be(e.fallbackRoot)?e.fallbackRoot:!0,p=!!e.fallbackFormat,h=at(e.missing)?e.missing:null,m=at(e.missing)?Rh(e.missing):null,v=at(e.postTranslation)?e.postTranslation:null,g=r?r.warnHtmlMessage:Be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,x=!!e.escapeParameter;const C=r?r.modifiers:Le(e.modifiers)?e.modifiers:{};let b=e.pluralRules||r&&r.pluralRules,w;w=(()=>{o&&Ch(null);const A={version:dO,locale:i.value,fallbackLocale:a.value,messages:s.value,modifiers:C,pluralRules:b,missing:m===null?void 0:m,missingWarn:u,fallbackWarn:d,fallbackFormat:p,unresolving:!0,postTranslation:v===null?void 0:v,warnHtmlMessage:g,escapeParameter:x,messageResolver:e.messageResolver,__meta:{framework:"vue"}};A.datetimeFormats=l.value,A.numberFormats=c.value,A.__datetimeFormatters=Le(w)?w.__datetimeFormatters:void 0,A.__numberFormatters=Le(w)?w.__numberFormatters:void 0;const M=nO(A);return o&&Ch(M),M})(),$n(w,i.value,a.value);function S(){return[i.value,a.value,s.value,l.value,c.value]}const E=ae({get:()=>i.value,set:A=>{i.value=A,w.locale=i.value}}),I=ae({get:()=>a.value,set:A=>{a.value=A,w.fallbackLocale=a.value,$n(w,i.value,A)}}),P=ae(()=>s.value),$=ae(()=>l.value),R=ae(()=>c.value);function B(){return at(v)?v:null}function j(A){v=A,w.postTranslation=A}function Y(){return h}function J(A){A!==null&&(m=Rh(A)),h=A,w.missing=m}const Q=(A,M,ue,xe,Te,Ie)=>{S();let Re;if(__INTLIFY_PROD_DEVTOOLS__)try{bh(hO()),o||(w.fallbackContext=r?oO():void 0),Re=A(w)}finally{bh(null),o||(w.fallbackContext=void 0)}else Re=A(w);if(ut(Re)&&Re===Ys){const[Ue,ct]=M();return r&&f?xe(r):Te(Ue)}else{if(Ie(Re))return Re;throw ft(lt.UNEXPECTED_RETURN_TYPE)}};function ie(...A){return Q(M=>Reflect.apply(_h,null,[M,...A]),()=>vc(...A),"translate",M=>Reflect.apply(M.t,M,[...A]),M=>M,M=>fe(M))}function ge(...A){const[M,ue,xe]=A;if(xe&&!Ke(xe))throw ft(lt.INVALID_ARGUMENT);return ie(M,ue,mt({resolvedMessage:!0},xe||{}))}function ve(...A){return Q(M=>Reflect.apply(Th,null,[M,...A]),()=>bc(...A),"datetime format",M=>Reflect.apply(M.d,M,[...A]),()=>xh,M=>fe(M))}function z(...A){return Q(M=>Reflect.apply(Ph,null,[M,...A]),()=>Cc(...A),"number format",M=>Reflect.apply(M.n,M,[...A]),()=>xh,M=>fe(M))}function W(A){return A.map(M=>fe(M)||ut(M)||Be(M)?Lh(String(M)):M)}const V={normalize:W,interpolate:A=>A,type:"vnode"};function D(...A){return Q(M=>{let ue;const xe=M;try{xe.processor=V,ue=Reflect.apply(_h,null,[xe,...A])}finally{xe.processor=null}return ue},()=>vc(...A),"translate",M=>M[yc](...A),M=>[Lh(M)],M=>Ge(M))}function U(...A){return Q(M=>Reflect.apply(Ph,null,[M,...A]),()=>Cc(...A),"number format",M=>M[wc](...A),()=>[],M=>fe(M)||Ge(M))}function re(...A){return Q(M=>Reflect.apply(Th,null,[M,...A]),()=>bc(...A),"datetime format",M=>M[Sc](...A),()=>[],M=>fe(M)||Ge(M))}function ee(A){b=A,w.pluralRules=b}function ce(A,M){const ue=fe(M)?M:i.value,xe=k(ue);return w.messageResolver(xe,A)!==null}function ke(A){let M=null;const ue=gv(w,a.value,i.value);for(let xe=0;xe{n&&(i.value=A,w.locale=A,$n(w,i.value,a.value))}),kt(r.fallbackLocale,A=>{n&&(a.value=A,w.fallbackLocale=A,$n(w,i.value,a.value))}));const F={id:Ih,locale:E,fallbackLocale:I,get inheritLocale(){return n},set inheritLocale(A){n=A,A&&r&&(i.value=r.locale.value,a.value=r.fallbackLocale.value,$n(w,i.value,a.value))},get availableLocales(){return Object.keys(s.value).sort()},messages:P,get modifiers(){return C},get pluralRules(){return b||{}},get isGlobal(){return o},get missingWarn(){return u},set missingWarn(A){u=A,w.missingWarn=u},get fallbackWarn(){return d},set fallbackWarn(A){d=A,w.fallbackWarn=d},get fallbackRoot(){return f},set fallbackRoot(A){f=A},get fallbackFormat(){return p},set fallbackFormat(A){p=A,w.fallbackFormat=p},get warnHtmlMessage(){return g},set warnHtmlMessage(A){g=A,w.warnHtmlMessage=A},get escapeParameter(){return x},set escapeParameter(A){x=A,w.escapeParameter=A},t:ie,getLocaleMessage:k,setLocaleMessage:y,mergeLocaleMessage:_,getPostTranslationHandler:B,setPostTranslationHandler:j,getMissingHandler:Y,setMissingHandler:J,[kv]:ee};return F.datetimeFormats=$,F.numberFormats=R,F.rt=ge,F.te=ce,F.tm=ye,F.d=ve,F.n=z,F.getDateTimeFormat=L,F.setDateTimeFormat=O,F.mergeDateTimeFormat=N,F.getNumberFormat=X,F.setNumberFormat=te,F.mergeNumberFormat=q,F[Lv]=e.__injectWithOption,F[yc]=D,F[Sc]=re,F[wc]=U,F}function pO(e){const t=fe(e.locale)?e.locale:Pi,r=fe(e.fallbackLocale)||Ge(e.fallbackLocale)||Le(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,o=at(e.missing)?e.missing:void 0,n=Be(e.silentTranslationWarn)||io(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,i=Be(e.silentFallbackWarn)||io(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,a=Be(e.fallbackRoot)?e.fallbackRoot:!0,s=!!e.formatFallbackMessages,l=Le(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=at(e.postTranslation)?e.postTranslation:void 0,d=fe(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,p=Be(e.sync)?e.sync:!0;let h=e.messages;if(Le(e.sharedMessages)){const w=e.sharedMessages;h=Object.keys(w).reduce((S,E)=>{const I=S[E]||(S[E]={});return mt(I,w[E]),S},h||{})}const{__i18n:m,__root:v,__injectWithOption:g}=e,x=e.datetimeFormats,C=e.numberFormats,b=e.flatJson;return{locale:t,fallbackLocale:r,messages:h,flatJson:b,datetimeFormats:x,numberFormats:C,missing:o,missingWarn:n,fallbackWarn:i,fallbackRoot:a,fallbackFormat:s,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:d,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:p,__i18n:m,__root:v,__injectWithOption:g}}function Tc(e={},t){{const r=Zu(pO(e)),o={id:r.id,get locale(){return r.locale.value},set locale(n){r.locale.value=n},get fallbackLocale(){return r.fallbackLocale.value},set fallbackLocale(n){r.fallbackLocale.value=n},get messages(){return r.messages.value},get datetimeFormats(){return r.datetimeFormats.value},get numberFormats(){return r.numberFormats.value},get availableLocales(){return r.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(n){},get missing(){return r.getMissingHandler()},set missing(n){r.setMissingHandler(n)},get silentTranslationWarn(){return Be(r.missingWarn)?!r.missingWarn:r.missingWarn},set silentTranslationWarn(n){r.missingWarn=Be(n)?!n:n},get silentFallbackWarn(){return Be(r.fallbackWarn)?!r.fallbackWarn:r.fallbackWarn},set silentFallbackWarn(n){r.fallbackWarn=Be(n)?!n:n},get modifiers(){return r.modifiers},get formatFallbackMessages(){return r.fallbackFormat},set formatFallbackMessages(n){r.fallbackFormat=n},get postTranslation(){return r.getPostTranslationHandler()},set postTranslation(n){r.setPostTranslationHandler(n)},get sync(){return r.inheritLocale},set sync(n){r.inheritLocale=n},get warnHtmlInMessage(){return r.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(n){r.warnHtmlMessage=n!=="off"},get escapeParameterHtml(){return r.escapeParameter},set escapeParameterHtml(n){r.escapeParameter=n},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(n){},get pluralizationRules(){return r.pluralRules||{}},__composer:r,t(...n){const[i,a,s]=n,l={};let c=null,u=null;if(!fe(i))throw ft(lt.INVALID_ARGUMENT);const d=i;return fe(a)?l.locale=a:Ge(a)?c=a:Le(a)&&(u=a),Ge(s)?c=s:Le(s)&&(u=s),Reflect.apply(r.t,r,[d,c||u||{},l])},rt(...n){return Reflect.apply(r.rt,r,[...n])},tc(...n){const[i,a,s]=n,l={plural:1};let c=null,u=null;if(!fe(i))throw ft(lt.INVALID_ARGUMENT);const d=i;return fe(a)?l.locale=a:ut(a)?l.plural=a:Ge(a)?c=a:Le(a)&&(u=a),fe(s)?l.locale=s:Ge(s)?c=s:Le(s)&&(u=s),Reflect.apply(r.t,r,[d,c||u||{},l])},te(n,i){return r.te(n,i)},tm(n){return r.tm(n)},getLocaleMessage(n){return r.getLocaleMessage(n)},setLocaleMessage(n,i){r.setLocaleMessage(n,i)},mergeLocaleMessage(n,i){r.mergeLocaleMessage(n,i)},d(...n){return Reflect.apply(r.d,r,[...n])},getDateTimeFormat(n){return r.getDateTimeFormat(n)},setDateTimeFormat(n,i){r.setDateTimeFormat(n,i)},mergeDateTimeFormat(n,i){r.mergeDateTimeFormat(n,i)},n(...n){return Reflect.apply(r.n,r,[...n])},getNumberFormat(n){return r.getNumberFormat(n)},setNumberFormat(n,i){r.setNumberFormat(n,i)},mergeNumberFormat(n,i){r.mergeNumberFormat(n,i)},getChoiceIndex(n,i){return-1},__onComponentInstanceCreated(n){const{componentInstanceCreatedListener:i}=e;i&&i(n,o)}};return o}}const Xu={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function mO({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((o,n)=>o=[...o,...Ge(n.children)?n.children:[n]],[]):t.reduce((r,o)=>{const n=e[o];return n&&(r[o]=n()),r},{})}function Rv(e){return Je}const Ah={name:"i18n-t",props:mt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>ut(e)||!isNaN(e)}},Xu),setup(e,t){const{slots:r,attrs:o}=t,n=e.i18n||Yu({useScope:e.scope,__useComponent:!0});return()=>{const i=Object.keys(r).filter(d=>d!=="_"),a={};e.locale&&(a.locale=e.locale),e.plural!==void 0&&(a.plural=fe(e.plural)?+e.plural:e.plural);const s=mO(t,i),l=n[yc](e.keypath,s,a),c=mt({},o),u=fe(e.tag)||Ke(e.tag)?e.tag:Rv();return H(u,c,l)}}};function gO(e){return Ge(e)&&!fe(e[0])}function Av(e,t,r,o){const{slots:n,attrs:i}=t;return()=>{const a={part:!0};let s={};e.locale&&(a.locale=e.locale),fe(e.format)?a.key=e.format:Ke(e.format)&&(fe(e.format.key)&&(a.key=e.format.key),s=Object.keys(e.format).reduce((f,p)=>r.includes(p)?mt({},f,{[p]:e.format[p]}):f,{}));const l=o(e.value,a,s);let c=[a.key];Ge(l)?c=l.map((f,p)=>{const h=n[f.type],m=h?h({[f.type]:f.value,index:p,parts:l}):[f.value];return gO(m)&&(m[0].key=`${f.type}-${p}`),m}):fe(l)&&(c=[l]);const u=mt({},i),d=fe(e.tag)||Ke(e.tag)?e.tag:Rv();return H(d,u,c)}}const Oh={name:"i18n-n",props:mt({value:{type:Number,required:!0},format:{type:[String,Object]}},Xu),setup(e,t){const r=e.i18n||Yu({useScope:"parent",__useComponent:!0});return Av(e,t,Ev,(...o)=>r[wc](...o))}},Bh={name:"i18n-d",props:mt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Xu),setup(e,t){const r=e.i18n||Yu({useScope:"parent",__useComponent:!0});return Av(e,t,Tv,(...o)=>r[Sc](...o))}};function xO(e,t){const r=e;if(e.mode==="composition")return r.__getInstance(t)||e.global;{const o=r.__getInstance(t);return o!=null?o.__composer:e.global.__composer}}function vO(e){const t=a=>{const{instance:s,modifiers:l,value:c}=a;if(!s||!s.$)throw ft(lt.UNEXPECTED_ERROR);const u=xO(e,s.$),d=Hh(c);return[Reflect.apply(u.t,u,[...Mh(d)]),u]};return{created:(a,s)=>{const[l,c]=t(s);gc&&e.global===c&&(a.__i18nWatcher=kt(c.locale,()=>{s.instance&&s.instance.$forceUpdate()})),a.__composer=c,a.textContent=l},unmounted:a=>{gc&&a.__i18nWatcher&&(a.__i18nWatcher(),a.__i18nWatcher=void 0,delete a.__i18nWatcher),a.__composer&&(a.__composer=void 0,delete a.__composer)},beforeUpdate:(a,{value:s})=>{if(a.__composer){const l=a.__composer,c=Hh(s);a.textContent=Reflect.apply(l.t,l,[...Mh(c)])}},getSSRProps:a=>{const[s]=t(a);return{textContent:s}}}}function Hh(e){if(fe(e))return{path:e};if(Le(e)){if(!("path"in e))throw ft(lt.REQUIRED_VALUE,"path");return e}else throw ft(lt.INVALID_VALUE)}function Mh(e){const{path:t,locale:r,args:o,choice:n,plural:i}=e,a={},s=o||{};return fe(r)&&(a.locale=r),ut(n)&&(a.plural=n),ut(i)&&(a.plural=i),[t,s,a]}function bO(e,t,...r){const o=Le(r[0])?r[0]:{},n=!!o.useI18nComponentName;(Be(o.globalInstall)?o.globalInstall:!0)&&(e.component(n?"i18n":Ah.name,Ah),e.component(Oh.name,Oh),e.component(Bh.name,Bh)),e.directive("t",vO(t))}function CO(e,t,r){return{beforeCreate(){const o=ir();if(!o)throw ft(lt.UNEXPECTED_ERROR);const n=this.$options;if(n.i18n){const i=n.i18n;n.__i18n&&(i.__i18n=n.__i18n),i.__root=t,this===this.$root?this.$i18n=Dh(e,i):(i.__injectWithOption=!0,this.$i18n=Tc(i))}else n.__i18n?this===this.$root?this.$i18n=Dh(e,n):this.$i18n=Tc({__i18n:n.__i18n,__injectWithOption:!0,__root:t}):this.$i18n=e;n.__i18nGlobal&&Iv(t,n,n),e.__onComponentInstanceCreated(this.$i18n),r.__setInstance(o,this.$i18n),this.$t=(...i)=>this.$i18n.t(...i),this.$rt=(...i)=>this.$i18n.rt(...i),this.$tc=(...i)=>this.$i18n.tc(...i),this.$te=(i,a)=>this.$i18n.te(i,a),this.$d=(...i)=>this.$i18n.d(...i),this.$n=(...i)=>this.$i18n.n(...i),this.$tm=i=>this.$i18n.tm(i)},mounted(){},unmounted(){const o=ir();if(!o)throw ft(lt.UNEXPECTED_ERROR);delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,r.__deleteInstance(o),delete this.$i18n}}}function Dh(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[kv](t.pluralizationRules||e.pluralizationRules);const r=Qs(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(r).forEach(o=>e.mergeLocaleMessage(o,r[o])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(o=>e.mergeDateTimeFormat(o,t.datetimeFormats[o])),t.numberFormats&&Object.keys(t.numberFormats).forEach(o=>e.mergeNumberFormat(o,t.numberFormats[o])),e}const yO=lo("global-vue-i18n");function SO(e={},t){const r=__VUE_I18N_LEGACY_API__&&Be(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,o=Be(e.globalInjection)?e.globalInjection:!0,n=__VUE_I18N_LEGACY_API__&&r?!!e.allowComposition:!0,i=new Map,[a,s]=wO(e,r),l=lo("");function c(f){return i.get(f)||null}function u(f,p){i.set(f,p)}function d(f){i.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&r?"legacy":"composition"},get allowComposition(){return n},async install(p,...h){p.__VUE_I18N_SYMBOL__=l,p.provide(p.__VUE_I18N_SYMBOL__,f),!r&&o&&RO(p,f.global),__VUE_I18N_FULL_INSTALL__&&bO(p,f,...h),__VUE_I18N_LEGACY_API__&&r&&p.mixin(CO(s,s.__composer,f));const m=p.unmount;p.unmount=()=>{f.dispose(),m()}},get global(){return s},dispose(){a.stop()},__instances:i,__getInstance:c,__setInstance:u,__deleteInstance:d};return f}}function Yu(e={}){const t=ir();if(t==null)throw ft(lt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ft(lt.NOT_INSLALLED);const r=_O(t),o=EO(r),n=$v(t),i=TO(e,n);if(__VUE_I18N_LEGACY_API__&&r.mode==="legacy"&&!e.__useComponent){if(!r.allowComposition)throw ft(lt.NOT_AVAILABLE_IN_LEGACY_MODE);return LO(t,i,o,e)}if(i==="global")return Iv(o,e,n),o;if(i==="parent"){let l=PO(r,t,e.__useComponent);return l==null&&(l=o),l}const a=r;let s=a.__getInstance(t);if(s==null){const l=mt({},e);"__i18n"in n&&(l.__i18n=n.__i18n),o&&(l.__root=o),s=Zu(l),kO(a,t),a.__setInstance(t,s)}return s}function wO(e,t,r){const o=Oc();{const n=__VUE_I18N_LEGACY_API__&&t?o.run(()=>Tc(e)):o.run(()=>Zu(e));if(n==null)throw ft(lt.UNEXPECTED_ERROR);return[o,n]}}function _O(e){{const t=Me(e.isCE?yO:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ft(e.isCE?lt.NOT_INSLALLED_WITH_PROVIDE:lt.UNEXPECTED_ERROR);return t}}function TO(e,t){return Zs(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function EO(e){return e.mode==="composition"?e.global:e.global.__composer}function PO(e,t,r=!1){let o=null;const n=t.root;let i=t.parent;for(;i!=null;){const a=e;if(e.mode==="composition")o=a.__getInstance(i);else if(__VUE_I18N_LEGACY_API__){const s=a.__getInstance(i);s!=null&&(o=s.__composer,r&&o&&!o[Lv]&&(o=null))}if(o!=null||n===i)break;i=i.parent}return o}function kO(e,t,r){Sr(()=>{},t),Vc(()=>{e.__deleteInstance(t)},t)}function LO(e,t,r,o={}){const n=t==="local",i=fs(null);if(n&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw ft(lt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const a=Be(o.inheritLocale)?o.inheritLocale:!0,s=de(n&&a?r.locale.value:fe(o.locale)?o.locale:Pi),l=de(n&&a?r.fallbackLocale.value:fe(o.fallbackLocale)||Ge(o.fallbackLocale)||Le(o.fallbackLocale)||o.fallbackLocale===!1?o.fallbackLocale:s.value),c=de(Qs(s.value,o)),u=de(Le(o.datetimeFormats)?o.datetimeFormats:{[s.value]:{}}),d=de(Le(o.numberFormats)?o.numberFormats:{[s.value]:{}}),f=n?r.missingWarn:Be(o.missingWarn)||io(o.missingWarn)?o.missingWarn:!0,p=n?r.fallbackWarn:Be(o.fallbackWarn)||io(o.fallbackWarn)?o.fallbackWarn:!0,h=n?r.fallbackRoot:Be(o.fallbackRoot)?o.fallbackRoot:!0,m=!!o.fallbackFormat,v=at(o.missing)?o.missing:null,g=at(o.postTranslation)?o.postTranslation:null,x=n?r.warnHtmlMessage:Be(o.warnHtmlMessage)?o.warnHtmlMessage:!0,C=!!o.escapeParameter,b=n?r.modifiers:Le(o.modifiers)?o.modifiers:{},w=o.pluralRules||n&&r.pluralRules;function T(){return[s.value,l.value,c.value,u.value,d.value]}const S=ae({get:()=>i.value?i.value.locale.value:s.value,set:_=>{i.value&&(i.value.locale.value=_),s.value=_}}),E=ae({get:()=>i.value?i.value.fallbackLocale.value:l.value,set:_=>{i.value&&(i.value.fallbackLocale.value=_),l.value=_}}),I=ae(()=>i.value?i.value.messages.value:c.value),P=ae(()=>u.value),$=ae(()=>d.value);function R(){return i.value?i.value.getPostTranslationHandler():g}function B(_){i.value&&i.value.setPostTranslationHandler(_)}function j(){return i.value?i.value.getMissingHandler():v}function Y(_){i.value&&i.value.setMissingHandler(_)}function J(_){return T(),_()}function Q(..._){return i.value?J(()=>Reflect.apply(i.value.t,null,[..._])):J(()=>"")}function ie(..._){return i.value?Reflect.apply(i.value.rt,null,[..._]):""}function ge(..._){return i.value?J(()=>Reflect.apply(i.value.d,null,[..._])):J(()=>"")}function ve(..._){return i.value?J(()=>Reflect.apply(i.value.n,null,[..._])):J(()=>"")}function z(_){return i.value?i.value.tm(_):{}}function W(_,L){return i.value?i.value.te(_,L):!1}function Z(_){return i.value?i.value.getLocaleMessage(_):{}}function V(_,L){i.value&&(i.value.setLocaleMessage(_,L),c.value[_]=L)}function D(_,L){i.value&&i.value.mergeLocaleMessage(_,L)}function U(_){return i.value?i.value.getDateTimeFormat(_):{}}function re(_,L){i.value&&(i.value.setDateTimeFormat(_,L),u.value[_]=L)}function ee(_,L){i.value&&i.value.mergeDateTimeFormat(_,L)}function ce(_){return i.value?i.value.getNumberFormat(_):{}}function ke(_,L){i.value&&(i.value.setNumberFormat(_,L),d.value[_]=L)}function ye(_,L){i.value&&i.value.mergeNumberFormat(_,L)}const k={get id(){return i.value?i.value.id:-1},locale:S,fallbackLocale:E,messages:I,datetimeFormats:P,numberFormats:$,get inheritLocale(){return i.value?i.value.inheritLocale:a},set inheritLocale(_){i.value&&(i.value.inheritLocale=_)},get availableLocales(){return i.value?i.value.availableLocales:Object.keys(c.value)},get modifiers(){return i.value?i.value.modifiers:b},get pluralRules(){return i.value?i.value.pluralRules:w},get isGlobal(){return i.value?i.value.isGlobal:!1},get missingWarn(){return i.value?i.value.missingWarn:f},set missingWarn(_){i.value&&(i.value.missingWarn=_)},get fallbackWarn(){return i.value?i.value.fallbackWarn:p},set fallbackWarn(_){i.value&&(i.value.missingWarn=_)},get fallbackRoot(){return i.value?i.value.fallbackRoot:h},set fallbackRoot(_){i.value&&(i.value.fallbackRoot=_)},get fallbackFormat(){return i.value?i.value.fallbackFormat:m},set fallbackFormat(_){i.value&&(i.value.fallbackFormat=_)},get warnHtmlMessage(){return i.value?i.value.warnHtmlMessage:x},set warnHtmlMessage(_){i.value&&(i.value.warnHtmlMessage=_)},get escapeParameter(){return i.value?i.value.escapeParameter:C},set escapeParameter(_){i.value&&(i.value.escapeParameter=_)},t:Q,getPostTranslationHandler:R,setPostTranslationHandler:B,getMissingHandler:j,setMissingHandler:Y,rt:ie,d:ge,n:ve,tm:z,te:W,getLocaleMessage:Z,setLocaleMessage:V,mergeLocaleMessage:D,getDateTimeFormat:U,setDateTimeFormat:re,mergeDateTimeFormat:ee,getNumberFormat:ce,setNumberFormat:ke,mergeNumberFormat:ye};function y(_){_.locale.value=s.value,_.fallbackLocale.value=l.value,Object.keys(c.value).forEach(L=>{_.mergeLocaleMessage(L,c.value[L])}),Object.keys(u.value).forEach(L=>{_.mergeDateTimeFormat(L,u.value[L])}),Object.keys(d.value).forEach(L=>{_.mergeNumberFormat(L,d.value[L])}),_.escapeParameter=C,_.fallbackFormat=m,_.fallbackRoot=h,_.fallbackWarn=p,_.missingWarn=f,_.warnHtmlMessage=x}return Hr(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw ft(lt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const _=i.value=e.proxy.$i18n.__composer;t==="global"?(s.value=_.locale.value,l.value=_.fallbackLocale.value,c.value=_.messages.value,u.value=_.datetimeFormats.value,d.value=_.numberFormats.value):n&&y(_)}),k}const $O=["locale","fallbackLocale","availableLocales"],IO=["t","rt","d","n","tm"];function RO(e,t){const r=Object.create(null);$O.forEach(o=>{const n=Object.getOwnPropertyDescriptor(t,o);if(!n)throw ft(lt.UNEXPECTED_ERROR);const i=ot(n.value)?{get(){return n.value.value},set(a){n.value.value=a}}:{get(){return n.get&&n.get()}};Object.defineProperty(r,o,i)}),e.config.globalProperties.$i18n=r,IO.forEach(o=>{const n=Object.getOwnPropertyDescriptor(t,o);if(!n||!n.value)throw ft(lt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${o}`,n)})}JA(aO);eO(BA);tO(gv);fO();if(__INTLIFY_PROD_DEVTOOLS__){const e=Vn();e.__INTLIFY__=!0,UA(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const AO={EditpasswordPlaceholder:"Enter new password, leave blank to keep the current password",alertText:"Data between accounts is not shared",appName:"Account management",currentUseUsername:"Current username",deletePromptContent:"Are you sure you want to delete {name} ({username})?",formRules:{passwordLimit:"6-20 characters",roleRequired:"Please select a role",usernameRequired:"Enter username with at least 5 characters"},passwordPlaceholder:"Enter password",pblicText:"Public",role:"Role",setOrUnsetPublicMode:"Set/Unset public access",userCountText:"Total {count} users"},OO={loginExpires:"Login status has expired, please login again"},BO={1e3:"Not logged in",1003:"wrong user name or password",1004:"Account has been deactivated or inactivated",1005:"Currently no permission to operate",1006:"Account does not exist",1007:"Old password error",1200:"database error",1201:"Please keep at least one",1202:"Data record not found",1300:"Upload failed",1301:"Upload failed, unsupported file format",1400:"Parameter format error"},HO={title:"System Applications"},MO={about:{QQGroup:"QQ Group:",QR:"QR Code(recommend)",addQQGroupUrl:"Click to join",appName:"About",author:"Author:",checkUpdate:"Check for new version",discussions:"Discussions:",donate:"☕Donate",frontVersionText:"Front-end version number",issue:"Feedback:",viewUpdateLog:"Click here to view update log"},baseSettings:{appName:"Style Settings",bottomMargin:"Bottom margin",clock:"Clock component",clockSecondShow:"Show seconds",configFailed:"Configuration save failed, {message}",configSaved:"Configuration saved",contentArea:"Content area",customFooter:"Custom footer",customImageAddress:"Expand image link input box",detailIcon:"Detail icon",hideDescription:"Hide description information",hideTitle:"Hide title",leftRightMargin:"Left-right margin",mask:"Mask",maxWidth:"Max width",netModeChangeButtonShow:"Show network mode switch button",publicVisitModeShow:"Allow public mode display",resetWarnText:"Are you sure you want to reset these styles?",searchBar:"Search bar component",searchBarSearchItem:"Allow search bar to search items",searchBarShow:"Configuration saved",show:"Show",showTitle:"Show title",smallIcon:"Small icon",systemMonitorStatus:"System status component",textContent:"Text content",topMargin:"Top margin",uploadOrDragText:"Click to upload or drag and drop into the box to replace the image",vague:"Blur",wallpaper:"Wallpaper"},exportImport:{appName:"Export/Import",errorConfigFileFormat:"The configuration file format is incorrect and cannot be imported",errorConfigFileLow:"The configuration file version is too low and cannot be compatible",export:"Export configuration",fileModified:"The file has been modified, import with caution",import:"Import configuration",moduleIcon:"Icon configuration",moduleStyle:"Style configuration",selectExportData:"Select the configuration data to export",selectImportData:"Select the configuration data to import",softwareVersionLow:"The current software version may be too old and may not be compatible with this configuration file. It is recommended to update the software to the latest version before importing again.",tip:"Importing icon configuration data will not clear existing icon data",transmuteStandard:"Transmute Standard",warnConfigFileLow:"The configuration file version is too low but compatible"},itemGroupManage:{appName:"Group Management",deleteWarnText:"Are you sure you want to delete this group [{name}]? The application icons in this group will be lost after deletion.",groupName:"Group name"},uploadsFileManager:{alertText:"Here you can manage wallpapers and icons you have uploaded.",appName:"Upload File Management",copyFailed:"Copy failed",copyLink:"Copy link",copySuccess:"Link copied successfully. You can paste it in the address bar.",deleteWarningText:"Cannot be recovered after deletion. Are you sure you want to continue?",fileName:"Original file name",infoTitle:"File details",nothingText:"You haven't uploaded any images yet.",path:"File path",setWallpaper:"Set as wallpaper",uploadTime:"Upload time"},userInfo:{appName:"My Information",theme:"Theme",themeStyle:{auto:"Follow the system ",dark:"Dark ",light:"Light "}}},DO={action:"Action",add:"Add",addSuccess:"Added successfully",appName:"Sun-Panel",backgroundColor:"Background color",cancel:"Cancel",confirm:"Confirm",continue:"Continue",delete:"Delete",deleteConfirm:"Are you sure you want to delete?",deleteConfirmByName:"Are you sure you want to delete {name}?",deleteFail:"Delete failed",deleteSuccess:"Deleted successfully",description:"Description",download:"Download",edit:"Edit",editFail:"Edit failed",editSuccess:"Edited successfully",export:"Export",exportSuccess:"Exported successfully",failed:"Operation failed",icon:"Icon",image:"Image",import:"Import",importSuccess:"Imported successfully",inputPlaceholder:"Please enter",inputPlaceholderByText:"Please enter {text}",language:"Language",leastOne:"Please keep at least one",networkError:"Network error, please try again later",nikeName:"Nickname",no:"No",noData:"No data available",password:"Password",refreshPage:"Please refresh the page",repeatLater:"Please try again later",reset:"Reset",role:{admin:"Admin",regularUser:"Regular"},save:"Save",saveFail:"Save failed",saveSort:"Save sort",saveSuccess:"Saved successfully",serverError:"Server error",show:"Show",sort:"Sort",style:"Style",success:"Operation successful",text:"Text",textColor:"Text color",title:"Title",unknownError:"Unknown error",uploadFail:"Upload failed",username:"Username",verify:"Verify",warning:"Warning",yes:"Yes"},FO={clock:{fri:"Friday",mon:"Monday",sat:"Saturday",sun:"Sunday",thu:"Thursday",tue:"Tuesday",wed:"Wednesday"},searchBox:{inputPlaceholder:"Enter search content",openWithNewOpen:"Open in new window"},systemMonitor:{cpuState:"CPU status",diskMountPoint:"Mount point",diskState:"Disk status",memoryState:"Memory status",progressColor:"Main color",progressRailColor:"Secondary color",systemState:"System status"}},zO={required:"Required field"},NO={add:"Add item",currentPageLayerOpen:"Open in current page as layer",currentPageOpen:"Open in current page",edit:"Edit item",getGroupFail:"Failed to get group information",getIcon:"Get icon",geticonFail:"Failed to get icon",iconGroup:"Group",inputIconName:"Enter icon name",inputIconUrlOrUpload:"Enter icon URL or upload",lanUrl:"LAN URL",lanUrlInputPlaceholder:"http(s):// (LAN mode, will redirect to this address)",newWindowOpen:"Open in new window",onlineIcon:"Online icon",onlineIconLibrary:"Online icon library",openMethod:"Open method",selectUpload:"Local upload",url:"URL"},WO={loginButton:"Login",passwordPlaceholder:"Password",usernamePlaceholder:"Username",welcomeMessage:"Welcome back!"},jO={changeToLanModel:"Switch to LAN mode",changeToLanModelSuccess:"Switched to LAN mode (mode status saved locally)",changeToWanModel:"Switch to WAN mode",changeToWanModelSuccess:"Switched to WAN mode (mode status saved locally)",goToLogin:"Go to login",openLanUrl:"Open LAN URL",openWanUrl:"Open WAN URL"},UO={confirmLogoutText:"Are you sure you want to logout?",confirmPassword:"Confirm new password",confirmPasswordInconsistentMsg:"Passwords do not match",logout:"Logout",logoutSuccess:"You have safely logged out. Looking forward to seeing you again!",newPassword:"New password",oldPassword:"Old password",updatePassword:"Change password"},VO={adminSettingUsers:AO,api:OO,apiErrorCode:BO,appLauncher:HO,apps:MO,common:DO,deskModule:FO,form:zO,iconItem:NO,login:WO,panelHome:jO,settingUserInfo:UO},qO={EditpasswordPlaceholder:"请输入新密码,留空密码不变",alertText:"账号之间的数据不互通",appName:"账号管理",currentUseUsername:"当前账号",deletePromptContent:"你确定删除{name}({username})?",formRules:{passwordLimit:"6-20个字符",roleRequired:"请选择角色",usernameRequired:"请输入账号且大于5个字符"},passwordPlaceholder:"请输入密码",pblicText:"公开",role:"角色",setOrUnsetPublicMode:"设置/取消公开访问",userCountText:"共{count}位用户"},GO={loginExpires:"登录状态已过期,请重新登录"},KO={1e3:"未登录",1003:"用户名或密码错误",1004:"账号已停用或未激活",1005:"当前无权限操作",1006:"账号不存在",1007:"旧密码错误",1200:"数据库出错",1201:"请至少保留一个",1202:"未找到数据记录",1300:"上传失败",1301:"上传失败,不被支持的文件格式",1400:"参数格式错误"},ZO={title:"系统应用"},XO={about:{QQGroup:"QQ交流群:",QR:"二维码(推荐)",addQQGroupUrl:"点击添加",appName:"关于",author:"作者:",checkUpdate:"检查新版本",discussions:"交流社区:",donate:"🧧打赏",frontVersionText:"前端版本号",issue:"建议反馈:",viewUpdateLog:"点此查看更新说明"},baseSettings:{appName:"风格设置",bottomMargin:"下边距",clock:"时钟组件",clockSecondShow:"显示秒",configFailed:"配置保存失败,{message}",configSaved:"配置已保存",contentArea:"内容区域",customFooter:"自定义页脚",customImageAddress:"展开图片链接输入框",detailIcon:"详情图标",hideDescription:"隐藏描述信息",hideTitle:"隐藏标题",leftRightMargin:"左右边距",mask:"遮罩",maxWidth:"最大宽度",netModeChangeButtonShow:"显示网络模式切换按钮",publicVisitModeShow:"公开模式允许显示",resetWarnText:"确定要重置这些样式吗?",searchBar:"搜索栏组件",searchBarSearchItem:"允许搜索栏搜索项目",searchBarShow:"配置已保存",show:"显示",showTitle:"显示标题",smallIcon:"小图标",systemMonitorStatus:"系统状态组件",textContent:"文本内容",topMargin:"上边距",uploadOrDragText:"点击上传替换图片或拖拽到框内",vague:"模糊",wallpaper:"壁纸"},exportImport:{appName:"导出导入",errorConfigFileFormat:"配置文件格式不正确,无法导入",errorConfigFileLow:"配置文件版本过低,无法兼容",export:"导出配置",fileModified:"文件被修改过,谨慎导入",import:"导入配置",moduleIcon:"图标配置",moduleStyle:"样式配置",selectExportData:"请选择要导出的配置数据",selectImportData:"请选择要导入的配置数据",softwareVersionLow:"当前软件版本可能过旧,很有可能无法兼容该配置文件,请谨慎导入。推荐将软件更新到新版后再次导入",tip:"导入图标配置数据不会清空现有图标数据",transmuteStandard:"浏览器书签转换工具",warnConfigFileLow:"配置文件版本过低,但是兼容"},itemGroupManage:{appName:"分组管理",deleteWarnText:"你确定删除此分组[{name}],删除后此分组应用图标将丢失?",groupName:"分组名称"},uploadsFileManager:{alertText:"你可以在这里管理你上传过的壁纸和图标",appName:"上传文件管理",copyFailed:"复制失败",copyLink:"复制链接",copySuccess:"链接复制成功,可以在图标地址栏",deleteWarningText:"删除后无法恢复,你确定要继续吗?",fileName:"原文件名",infoTitle:"文件详情",nothingText:"你还没有上传过任何图片",path:"文件路径",setWallpaper:"设置为壁纸",uploadTime:"上传时间"},userInfo:{appName:"我的信息",theme:"主题",themeStyle:{auto:"跟随系统 ",dark:"深色 ",light:"浅色 "}}},YO={action:"操作",add:"添加",addSuccess:"添加成功",appName:"Sun-Panel",backgroundColor:"背景颜色",cancel:"取消",confirm:"确定",continue:"继续",delete:"删除",deleteConfirm:"你确定要删除吗?",deleteConfirmByName:"你确定要删除{name}吗?",deleteFail:"删除失败",deleteSuccess:"删除成功",description:"描述信息",download:"下载",edit:"编辑",editFail:"编辑失败",editSuccess:"编辑成功",export:"导出",exportSuccess:"导出成功",failed:"操作失败",icon:"图标",image:"图片",import:"导入",importSuccess:"导入成功",inputPlaceholder:"请输入",inputPlaceholderByText:"请输入{text}",language:"语言",leastOne:"请至少保留一项",networkError:"网络错误,请稍后重试",nikeName:"昵称",no:"否",noData:"暂无数据",password:"密码",refreshPage:"请刷新页面",repeatLater:"请稍后重试",reset:"重置",role:{admin:"管理",regularUser:"普通"},save:"保存",saveFail:"保存成功",saveSort:"保存排序",saveSuccess:"保存成功",serverError:"服务器错误",show:"显示",sort:"排序",style:"风格",success:"操作成功",text:"文字",textColor:"文字颜色",title:"标题",unknownError:"未知错误",uploadFail:"上传失败",username:"账号",verify:"验证",warning:"警告",yes:"是"},QO={clock:{fri:"星期五",mon:"星期一",sat:"星期六",sun:"星期日",thu:"星期四",tue:"星期二",wed:"星期三"},searchBox:{inputPlaceholder:"请输入搜索内容",openWithNewOpen:"新窗口打开"},systemMonitor:{cpuState:"CPU状态",diskMountPoint:"挂载点",diskState:"磁盘状态",memoryState:"内存状态",progressColor:"主色",progressRailColor:"副色",systemState:"系统状态"}},JO={required:"必填项"},eB={add:"添加项目",currentPageLayerOpen:"当前页面弹窗打开",currentPageOpen:"当前页面打开",edit:"修改项目",getGroupFail:"分组信息获取失败",getIcon:"获取图标",geticonFail:"图标获取失败",iconGroup:"分组",inputIconName:"请输入图标名称",inputIconUrlOrUpload:"输入图标地址或上传",lanUrl:"内网地址",lanUrlInputPlaceholder:"http(s)://(内网模式,会跳转该地址)",newWindowOpen:"新窗口打开",onlineIcon:"在线图标",onlineIconLibrary:"在线图标库",openMethod:"打开方式",selectUpload:"本地上传",url:"地址"},tB={loginButton:"登录",passwordPlaceholder:"密码",usernamePlaceholder:"账号",welcomeMessage:"欢迎回来!"},rB={changeToLanModel:"切换为内网模式",changeToLanModelSuccess:"已经切换到内网模式(模式状态仅保存在本地)",changeToWanModel:"切换为公网模式",changeToWanModelSuccess:"已经切换到公网模式(模式状态仅保存在本地)",goToLogin:"前往登录",openLanUrl:"打开局域网地址",openWanUrl:"打开公网地址"},oB={confirmLogoutText:"你确定要退出登录吗?",confirmPassword:"确认新密码",confirmPasswordInconsistentMsg:"两次密码不一致",logout:"退出登录",logoutSuccess:"您已经安全退出,期待与你再次相见!",newPassword:"新密码",oldPassword:"旧密码",updatePassword:"修改密码"},nB={adminSettingUsers:qO,api:GO,apiErrorCode:KO,appLauncher:ZO,apps:XO,common:YO,deskModule:QO,form:JO,iconItem:eB,login:tB,panelHome:rB,settingUserInfo:oB},Fh="zh-CN",Qu=SO({locale:Fh,fallbackLocale:Fh,allowComposition:!0,messages:{"en-US":VO,"zh-CN":nB}}),as=Qu.global.t;function _l(e){Qu.global.locale=e}function iB(e){e.use(Qu)}const Ec=de("light"),aB=ae(()=>({theme:Ec.value==="light"?ta:zn})),{message:ca}=VP(["message"],{configProviderProps:aB});function sB(e){const t=Ws(),r=cm();t.theme==="auto"?Ec.value=r.value:Ec.value=t.theme;const o=`apiErrorCode.${e.code}`,n=as(o);return o===n?!1:(ca.error(as(`apiErrorCode.${e.code}`)),!0)}let Tl=!1;function lB({url:e,data:t,method:r,headers:o,onDownloadProgress:n,signal:i,beforeRequest:a,afterRequest:s}){const l=Ox(),c=Ws(),u=p=>p.data.code===0?p.data:p.data.code===1001?(Tl===!1&&(Tl=!0,ca.warning(as("api.loginExpires"),{onLeave(){Tl=!1}})),an.push({path:"/login"}),l.removeToken(),p.data):p.data.code===1e3?(an.push({path:"/login"}),l.removeToken(),p.data):p.data.code===1005?(ca.warning(p.data.msg),p.data):p.data.code===-1||sB(p.data)?p.data:Promise.reject(p.data),d=p=>{throw s==null||s(),ca.error(as("common.networkError"),{duration:5e4,closable:!0}),new Error((p==null?void 0:p.msg)||"Error")};a==null||a(),r=r||"GET";const f=Object.assign(typeof t=="function"?t():t??{},{});return o||(o={}),o.token=l.token,o.lang=c.language,r==="GET"?is.get(e,{params:f,signal:i,onDownloadProgress:n}).then(u,d):is.post(e,f,{headers:o,signal:i,onDownloadProgress:n}).then(u,d)}function Js({url:e,data:t,method:r="POST",headers:o,onDownloadProgress:n,signal:i,beforeRequest:a,afterRequest:s}){return lB({url:e,method:r,data:t,headers:o,onDownloadProgress:n,signal:i,beforeRequest:a,afterRequest:s})}function iH(e){return Js({url:"/panel/userConfig/set",data:e})}function cB(){return Js({url:"/panel/userConfig/get"})}const aH=Do("panel",{state:()=>$$()||Hx(),getters:{},actions:{setLeftSiderCollapsed(e){this.leftSiderCollapsed=e},setRightSiderCollapsed(e){this.rightSiderCollapsed=e},setNetworkMode(e){this.networkMode=e,this.recordState()},updatePanelConfigByCloud(){cB().then(e=>{e.code===0?this.panelConfig={...lc(),...e.data.panel}:this.resetPanelConfig(),this.recordState()})},resetPanelConfig(){this.panelConfig=lc()},async reloadRoute(e){await an.push({name:"AppletDialog",params:{aiAppletId:e}})},recordState(){I$(this.$state)},removeState(){R$()}}}),Ov="moduleConfig";function uB(){return{...Rt.get(Ov)}}function dB(e){Rt.set(Ov,e)}function fB(e){return Js({url:"/system/moduleConfig/getByName",data:{name:e}})}function hB(e,t){return Js({url:"/system/moduleConfig/save",data:{name:e,value:t}})}const sH=Do("module-config-store",{state:()=>uB(),actions:{async getValueByNameFromCloud(e){const t=`module-${e}`;return await fB(t)},async saveToCloud(e,t){const r=`module-${e}`;return hB(r,t)},recordState(){dB(this.$state)}}}),pB=Jk();function mB(e){e.use(pB)}function Bv(){const e=Ws(),t=cm(),r=ae(()=>e.theme==="auto"?t.value==="dark":e.theme==="dark"),o=ae(()=>r.value?zn:void 0),n=ae(()=>r.value?{common:{}}:{});return kt(()=>r.value,i=>{i?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},{immediate:!0}),{theme:o,themeOverrides:n}}function gB(){const e=Ws();return{language:ae(()=>{switch(e.language){case"en-US":return _l("en-US"),w3;case"zh-CN":return _l("zh-CN"),Od;default:return _l("zh-CN"),Od}})}}const xB=Oe({__name:"App",setup(e){const{theme:t,themeOverrides:r}=Bv(),{language:o}=gB();return(n,i)=>{const a=r2("RouterView");return bs(),Cs(pt($g),{class:"h-full",theme:pt(t),"theme-overrides":pt(r),locale:pt(o)},{default:Co(()=>[qe(pt(YP),null,{default:Co(()=>[qe(a)]),_:1})]),_:1},8,["theme","theme-overrides","locale"])}}});function vB(){const e=document.createElement("meta");e.name="naive-ui-style",document.head.appendChild(e)}function bB(){vB()}const CB=()=>{var r,o,n,i,a,s;const e=document.createElement("style"),t=` - ::-webkit-scrollbar { - background-color: transparent; - width: ${(r=ta.Scrollbar.common)==null?void 0:r.scrollbarWidth}; - } - ::-webkit-scrollbar-thumb { - background-color: ${(o=ta.Scrollbar.common)==null?void 0:o.scrollbarColor}; - border-radius: ${(n=ta.Scrollbar.common)==null?void 0:n.scrollbarBorderRadius}; - } - html.dark ::-webkit-scrollbar { - background-color: transparent; - width: ${(i=zn.Scrollbar.common)==null?void 0:i.scrollbarWidth}; - } - html.dark ::-webkit-scrollbar-thumb { - background-color: ${(a=zn.Scrollbar.common)==null?void 0:a.scrollbarColor}; - border-radius: ${(s=zn.Scrollbar.common)==null?void 0:s.scrollbarBorderRadius}; - } - `;e.innerHTML=t,document.head.appendChild(e)};if(typeof window<"u"){let e=function(){var t=document.body,r=document.getElementById("__svg__icons__dom__");r||(r=document.createElementNS("http://www.w3.org/2000/svg","svg"),r.style.position="absolute",r.style.width="0",r.style.height="0",r.id="__svg__icons__dom__",r.setAttribute("xmlns","http://www.w3.org/2000/svg"),r.setAttribute("xmlns:link","http://www.w3.org/1999/xlink")),r.innerHTML='',t.insertBefore(r,t.lastChild)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}async function yB(){const e=Kp(xB);bB(),CB(),mB(e),iB(e),await FI(e),e.mount("#app")}yB();export{DB as $,_e as A,so as B,W0 as C,Sr as D,gs as E,z0 as F,Jt as G,Me as H,hg as I,G3 as J,Ce as K,Rr as L,md as M,iu as N,xy as O,Yc as P,Dw as Q,jt as R,Is as S,br as T,UB as U,ud as V,Cr as W,jB as X,NB as Y,yC as Z,MB as _,Or as a,Co as a$,VB as a0,WB as a1,FB as a2,zB as a3,oi as a4,Vy as a5,dt as a6,Qc as a7,pa as a8,cy as a9,Uy as aA,tg as aB,hu as aC,fu as aD,pu as aE,Ca as aF,P1 as aG,BB as aH,qB as aI,HP as aJ,vi as aK,Rs as aL,ou as aM,Zp as aN,bE as aO,Dl as aP,oC as aQ,Ar as aR,Km as aS,hw as aT,vs as aU,ZE as aV,bs as aW,kB as aX,Tp as aY,kc as aZ,Cs as a_,l_ as aa,_o as ab,Fd as ac,ya as ad,jl as ae,yi as af,ws as ag,mu as ah,gn as ai,Wl as aj,Ug as ak,f5 as al,sy as am,Nt as an,Je as ao,eH as ap,iy as aq,ay as ar,ri as as,yu as at,dn as au,HB as av,OB as aw,zl as ax,p1 as ay,J6 as az,Zt as b,Os as b$,ti as b0,SB as b1,pt as b2,Mp as b3,qe as b4,$B as b5,IB as b6,rH as b7,fs as b8,EB as b9,an as bA,Ws as bB,x_ as bC,bp as bD,Cp as bE,cd as bF,Dr as bG,oo as bH,wi as bI,Zm as bJ,ag as bK,xu as bL,N0 as bM,KB as bN,Cw as bO,Yt as bP,Og as bQ,YB as bR,v6 as bS,_s as bT,ao as bU,vd as bV,LB as bW,nH as bX,im as bY,x8 as bZ,Zw as b_,TB as ba,Pn as bb,yx as bc,Lc as bd,Js as be,Rb as bf,ir as bg,Vc as bh,ot as bi,w5 as bj,Ae as bk,Ox as bl,sB as bm,ex as bn,as as bo,W5 as bp,PB as bq,sH as br,RB as bs,AB as bt,Ax as bu,aH as bv,l1 as bw,Cx as bx,wB as by,_B as bz,Pt as c,JB as c0,Ng as c1,gu as c2,I6 as c3,hy as c4,ZT as c5,oH as c6,C$ as c7,VP as c8,Y0 as c9,XB as cA,Ho as cB,wC as cC,Ny as cD,SC as cE,xi as cF,tH as cG,T6 as cH,sc as cI,kT as cJ,Yb as cK,GT as cL,dE as cM,iH as cN,G5 as cO,Rg as cP,Mg as cQ,li as cR,l5 as cS,uw as cT,QB as ca,FC as cb,cu as cc,zS as cd,km as ce,du as cf,FS as cg,va as ch,pn as ci,x4 as cj,Ci as ck,Bm as cl,rn as cm,Ps as cn,Ad as co,Im as cp,mn as cq,Am as cr,hn as cs,Pm as ct,Em as cu,ql as cv,Tm as cw,h3 as cx,a4 as cy,w3 as cz,nr as d,Gt as e,Oe as f,H as g,nu as h,i4 as i,Oo as j,fn as k,Si as l,Se as m,ne as n,Hr as o,he as p,sr as q,de as r,$s as s,GB as t,Es as u,rm as v,kt as w,VC as x,ae as y,Ct as z}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-85275cb2.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-85275cb2.js deleted file mode 100644 index 1f326b860..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-85275cb2.js +++ /dev/null @@ -1 +0,0 @@ -import{h as D,s as F,i as G,e as T,g as q}from"./index-bc9666b7.js";import{S as y}from"./index-c238f14b.js";import{_ as L}from"./index-b1d3d9b0.js";import{f as U,r as v,bn as A,bw as E,bo as r,D as I,aW as c,aX as b,b3 as i,b4 as o,a$ as n,b0 as h,b1 as f,b2 as t,ac as m,a_ as k,ao as R,bq as W,bC as P,bd as X,aZ as Z}from"./index-7e19b821.js";import{d as j,a as H,N as J}from"./index-2b595d91.js";import"./_plugin-vue_export-helper-c27b6911.js";const K={class:"h-full"},O={class:"p-2"},Q={class:"overflow-auto w-full mt-[20px] bg-slate-200 dark:bg-zinc-900 rounded-xl",style:{height:"calc(100% - 65px)"}},Y={class:"flex items-center"},ee={class:"mr-[10px]"},se={class:"ml-auto"},le={class:"ml-[10px]"},de=U({__name:"index",setup(ae){const x=v(null),p=A(),S=E(),u=v(!1),w={title:"",icon:"material-symbols:folder-outline",sort:9999},a=v({show:!1,editStatus:1,model:w,rules:{title:[{required:!0,trigger:"blur",message:r("form.required")}]}}),d=v([]);function C(){a.value.show=!a.value.show}function z(s){a.value.show=!0,a.value.model=s,a.value.editStatus=2}function N(){u.value=!0}function $(){const s=[];for(let e=0;e{e===0?(p.success(r("common.saveSuccess")),u.value=!1):p.error(`${r("common.saveFail")}:${l}`)})}function M(s){S.warning({title:r("common.warning"),content:r("apps.itemGroupManage.deleteWarnText",{name:s.title}),positiveText:r("common.confirm"),negativeText:r("common.cancel"),onPositiveClick:()=>{s.id&&G([s.id]).then(({code:e,msg:l})=>{e!==0?p.error(r("common.deleteFail")):g()})}})}function V(){var s;(s=x.value)==null||s.validate(e=>{e?console.log(e):T(a.value.model).then(({code:l,msg:_})=>{l!==0&&p.error(_),g(),a.value.show=!1,a.value.model={...w}})})}function g(){q().then(({code:s,data:e})=>{d.value=e.list})}return I(()=>{g()}),(s,e)=>(c(),b("div",K,[i("div",O,[o(t(m),{type:"success",size:"small",style:{"margin-right":"10px"},onClick:C},{default:n(()=>[h(f(s.$t("common.add")),1)]),_:1}),u.value?(c(),k(t(m),{key:1,type:"warning",size:"small",onClick:$},{default:n(()=>[h(f(s.$t("common.saveSort")),1)]),_:1})):(c(),k(t(m),{key:0,size:"small",onClick:N},{default:n(()=>[h(f(s.$t("common.sort")),1)]),_:1}))]),i("div",Q,[o(t(D),{modelValue:d.value,"onUpdate:modelValue":e[0]||(e[0]=l=>d.value=l),"item-key":"sort",animation:300,style:Z({padding:u.value?"20px":"10px"}),disabled:!u.value},{default:n(()=>[(c(!0),b(R,null,W(d.value,(l,_)=>(c(),b("div",{key:_,class:"w-full"},[o(t(P),{size:"small",style:{"border-radius":"10px","margin-bottom":"10px"}},{default:n(()=>[i("div",{class:X(["flex",u.value?"cursor-move":""])},[i("div",Y,[i("span",ee,[o(t(y),{class:"text-[20px]",icon:"material-symbols:ad-group-outline-rounded"})]),i("span",null,f(l.title),1)]),i("div",se,[i("span",null,[o(t(m),{strong:"",secondary:"",type:"success",size:"small",onClick:B=>z(l)},{icon:n(()=>[o(t(y),{icon:"basil:edit-solid"})]),_:2},1032,["onClick"])]),i("span",le,[o(t(m),{strong:"",secondary:"",type:"error",size:"small",class:"ml-[10px]",onClick:B=>M(l)},{icon:n(()=>[o(t(y),{icon:"material-symbols:delete"})]),_:2},1032,["onClick"])])])],2)]),_:2},1024)]))),128))]),_:1},8,["modelValue","style","disabled"])]),o(t(L),{show:a.value.show,"onUpdate:show":e[2]||(e[2]=l=>a.value.show=l),size:"small",type:"small",title:a.value.editStatus===1?"添加":"编辑",style:{width:"400px"}},{footer:n(()=>[o(t(m),{type:"success",size:"small",class:"float-right",onClick:V},{default:n(()=>[h(f(s.$t("common.confirm")),1)]),_:1})]),default:n(()=>[o(t(j),{ref_key:"formRef",ref:x,model:a.value.model,rules:a.value.rules},{default:n(()=>[o(t(H),{path:"title",label:s.$t("apps.itemGroupManage.groupName")},{default:n(()=>[o(t(J),{value:a.value.model.title,"onUpdate:value":e[1]||(e[1]=l=>a.value.model.title=l),type:"text",maxlength:20,"show-count":""},null,8,["value"])]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1},8,["show","title"])]))}});export{de as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8886367f.css b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8886367f.css deleted file mode 100644 index d6b991c16..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8886367f.css +++ /dev/null @@ -1 +0,0 @@ -.text-shadow[data-v-da662465]{text-shadow:0px 0px 5px gray} diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8a6943bf.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8a6943bf.js deleted file mode 100644 index e4b4d55c5..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8a6943bf.js +++ /dev/null @@ -1 +0,0 @@ -import{f as M,c7 as E,bl as O,bB as W,bv as X,bn as j,bw as G,r as f,bo as l,aW as y,aX as k,b4 as a,a$ as n,b3 as i,b1 as d,b0 as m,b2 as o,ac as c,bC as _}from"./index-7e19b821.js";import{N as b,b as N,l as H,d as J,a as S}from"./index-2b595d91.js";import{a as K}from"./index-8f0537f1.js";import{S as Q}from"./index-c238f14b.js";import{_ as Y,w as Z,u as ee,x as se}from"./index-b1d3d9b0.js";import{N as oe}from"./Divider-a11d112a.js";import"./_plugin-vue_export-helper-c27b6911.js";const ae={class:"bg-slate-200 dark:bg-zinc-900 p-2 h-full"},te={class:"text-slate-500 font-bold"},le={class:"mt-[10px]"},ne={class:"text-slate-500 font-bold"},re={key:0},ie={key:1,class:"flex items-center"},de={class:"max-w-[150px]"},ue={class:"mt-[10px]"},me={class:"text-slate-500 font-bold"},fe={class:"max-w-[200px]"},pe={class:"mt-[10px]"},ve={class:"text-slate-500 font-bold"},ce={class:"max-w-[200px]"},ge={class:"float-right"},Se=M({__name:"index",setup(we){var x;const C=E(),g=O(),p=W(),z=X(),v=j(),L=G(),P=f(p.language),U=f(p.theme),I=f(((x=g.userInfo)==null?void 0:x.name)||""),w=f(!1),$=f(null),T=[{label:l("apps.userInfo.themeStyle.dark"),key:"dark",value:"dark"},{label:l("apps.userInfo.themeStyle.light"),key:"light",value:"light"},{label:l("apps.userInfo.themeStyle.auto"),key:"Auto",value:"auto"}],t=f({show:!1,loading:!1,form:{password:"",oldPassword:"",confirmPassword:""}}),V={oldPassword:{required:!0,trigger:"blur",min:6,max:20,message:l("adminSettingUsers.formRules.passwordLimit")},password:{required:!0,trigger:"blur",min:6,max:20,message:l("adminSettingUsers.formRules.passwordLimit")},confirmPassword:{required:!0,trigger:"blur",min:6,max:20,message:l("adminSettingUsers.formRules.passwordLimit")}};async function R(){await K(),C.resetUserInfo(),g.removeToken(),z.removeState(),p.removeToken(),v.success(l("settingUserInfo.logoutSuccess")),location.reload()}function B(){Z(I.value).then(({code:e,msg:s})=>{e===0?(ee(),w.value=!1):v.error(`${l("common.editFail")}:${s}`)})}function q(e){var s;e.preventDefault(),(s=$.value)==null||s.validate(r=>{if(r){console.log(r);return}if(t.value.form.password!==t.value.form.confirmPassword){v.error(l("settingUserInfo.confirmPasswordInconsistentMsg"));return}t.value.loading=!0,se(t.value.form.oldPassword,t.value.form.password).then(({code:h,msg:u})=>{h===0&&(t.value.show=!1,v.success(l("common.success")))}).finally(()=>{t.value.loading=!1}).catch(()=>{v.error(l("common.serverError"))})})}function A(){L.warning({title:l("common.warning"),content:l("settingUserInfo.confirmLogoutText"),positiveText:l("common.confirm"),negativeText:l("common.cancel"),onPositiveClick:()=>{R()}})}function D(e){P.value=e,p.setLanguage(e),location.reload()}function F(e){U.value=e,p.setTheme(e)}return(e,s)=>(y(),k("div",ae,[a(o(_),{style:{"border-radius":"10px"},size:"small"},{default:n(()=>{var r,h;return[i("div",null,[i("div",te,d(e.$t("common.username")),1),m(" "+d((r=o(g).userInfo)==null?void 0:r.username),1)]),i("div",le,[i("div",ne,d(e.$t("common.nikeName")),1),w.value?(y(),k("div",ie,[i("div",de,[a(o(b),{value:I.value,"onUpdate:value":s[1]||(s[1]=u=>I.value=u),type:"text",placeholder:e.$t("common.inputPlaceholder")},null,8,["value","placeholder"])]),a(o(c),{size:"small",quaternary:"",type:"info",onClick:B},{default:n(()=>[m(d(e.$t("common.save")),1)]),_:1})])):(y(),k("div",re,[m(d((h=o(g).userInfo)==null?void 0:h.name)+" ",1),a(o(c),{size:"small",text:"",type:"info",onClick:s[0]||(s[0]=u=>w.value=!w.value)},{default:n(()=>[m(d(e.$t("common.edit")),1)]),_:1})]))]),i("div",ue,[i("div",me,d(e.$t("common.language")),1),i("div",fe,[a(o(N),{value:P.value,"onUpdate:value":s[2]||(s[2]=u=>P.value=u),options:o(H),onUpdateValue:D},null,8,["value","options"])])]),i("div",pe,[i("div",ve,d(e.$t("apps.userInfo.theme")),1),i("div",ce,[a(o(N),{value:U.value,"onUpdate:value":s[3]||(s[3]=u=>U.value=u),options:T,onUpdateValue:F},null,8,["value"])])]),a(o(oe),{style:{margin:"10px 0"},dashed:""}),i("div",null,[a(o(c),{size:"small",text:"",type:"info",onClick:s[4]||(s[4]=u=>t.value.show=!t.value.show)},{default:n(()=>[m(d(e.$t("settingUserInfo.updatePassword")),1)]),_:1})])]}),_:1}),a(o(_),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:n(()=>[a(o(c),{size:"small",text:"",type:"error",onClick:A},{icon:n(()=>[a(o(Q),{icon:"tabler:logout"})]),default:n(()=>[m(" "+d(e.$t("settingUserInfo.logout")),1)]),_:1})]),_:1}),a(o(Y),{show:t.value.show,"onUpdate:show":s[8]||(s[8]=r=>t.value.show=r),size:"small",preset:"card",style:{width:"400px"},title:e.$t("settingUserInfo.updatePassword")},{footer:n(()=>[i("div",ge,[a(o(c),{type:"success",size:"small",loading:t.value.loading,onClick:q},{default:n(()=>[m(d(e.$t("common.save")),1)]),_:1},8,["loading"])])]),default:n(()=>[a(o(J),{ref_key:"formRef",ref:$,model:t.value.form,rules:V},{default:n(()=>[a(o(S),{path:"oldPassword",label:e.$t("settingUserInfo.oldPassword")},{default:n(()=>[a(o(b),{value:t.value.form.oldPassword,"onUpdate:value":s[5]||(s[5]=r=>t.value.form.oldPassword=r),maxlength:20,type:"password",placeholder:e.$t("settingUserInfo.oldPassword")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(o(S),{path:"password",label:e.$t("settingUserInfo.newPassword")},{default:n(()=>[a(o(b),{value:t.value.form.password,"onUpdate:value":s[6]||(s[6]=r=>t.value.form.password=r),maxlength:20,type:"password",placeholder:e.$t("settingUserInfo.newPassword")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(o(S),{path:"confirmPassword",label:e.$t("settingUserInfo.confirmPassword")},{default:n(()=>[a(o(b),{value:t.value.form.confirmPassword,"onUpdate:value":s[7]||(s[7]=r=>t.value.form.confirmPassword=r),maxlength:20,type:"password",placeholder:e.$t("settingUserInfo.confirmPassword")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1},8,["model"])]),_:1},8,["show","title"])]))}});export{Se as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8f0537f1.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8f0537f1.js deleted file mode 100644 index a5dfbb603..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8f0537f1.js +++ /dev/null @@ -1 +0,0 @@ -import{be as o}from"./index-7e19b821.js";function n(r){return o({url:"/login",data:r})}function u(){return o({url:"/logout"})}export{u as a,n as l}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8f8851de.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8f8851de.js deleted file mode 100644 index b0b7ce7ee..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-8f8851de.js +++ /dev/null @@ -1 +0,0 @@ -import{f as s,aX as a,b3 as c,b4 as o,a$ as r,b2 as n,bW as i,bX as l,aW as d,b0 as x,ac as p}from"./index-7e19b821.js";const u="/assets/404-b0d1a3d9.svg",_={class:"flex h-full"},m={class:"px-4 m-auto space-y-4 text-center max-[400px]"},f=i('

页面不存在

404
',3),N=s({__name:"index",setup(h){const e=l();function t(){e.push("/")}return(b,v)=>(d(),a("div",_,[c("div",m,[f,o(n(p),{type:"primary",onClick:t},{default:r(()=>[x(" 返回首页 ")]),_:1})])]))}});export{N as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-93265a97.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-93265a97.js deleted file mode 100644 index 31ad3ef96..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-93265a97.js +++ /dev/null @@ -1,274 +0,0 @@ -import{t as Bt,f as ge,q as Ne,H as Pt,y as B,B as Pe,L as Ve,F as Ye,g as f,ac as Me,G as J,S as Vt,aE as Mt,bT as Nt,m as h,p as x,n as A,z as le,cJ as It,r as N,a6 as Ut,as as Dt,aM as Ft,ab as L,cK as jt,K as _,J as Qe,v as Ht,x as Ot,cL as At,a5 as lt,w as qe,R as We,b as Et,N as Wt,T as Kt,e as ze,c as $e,ad as et,aj as tt,cM as Lt,A as Z,aH as Ke,aw as W,cC as Le,ah as Xt,bJ as Yt,bl as qt,bv as Gt,bn as Jt,bo as Te,bc as Re,cN as Zt,aW as Q,aX as ee,b4 as u,a$ as C,b3 as d,b1 as y,b2 as n,bC as K,b5 as ie,aZ as Qt,b0 as Xe,by as en,bz as tn}from"./index-7e19b821.js";import{b as nt,N as nn,p as on,u as rt,d as Ge,V as an,e as sn,g as ln}from"./index-c238f14b.js";import{N as Be,b as ot}from"./index-2b595d91.js";import{j as rn,N as dn,k as cn,l as un}from"./index-bc9666b7.js";import{k as hn,l as ve}from"./index-b1d3d9b0.js";import{_ as fn}from"./_plugin-vue_export-helper-c27b6911.js";const dt=Bt("n-popconfirm"),ct={positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0}},at=Nt(ct),vn=ge({name:"NPopconfirmPanel",props:ct,setup(e){const{localeRef:c}=nt("Popconfirm"),{inlineThemeDisabled:s}=Ne(),{mergedClsPrefixRef:g,mergedThemeRef:p,props:m}=Pt(dt),$=B(()=>{const{common:{cubicBezierEaseInOut:k},self:{fontSize:z,iconSize:T,iconColor:r}}=p.value;return{"--n-bezier":k,"--n-font-size":z,"--n-icon-size":T,"--n-icon-color":r}}),w=s?Pe("popconfirm-panel",void 0,$,m):void 0;return Object.assign(Object.assign({},nt("Popconfirm")),{mergedClsPrefix:g,cssVars:s?void 0:$,localizedPositiveText:B(()=>e.positiveText||c.value.positiveText),localizedNegativeText:B(()=>e.negativeText||c.value.negativeText),positiveButtonProps:Ve(m,"positiveButtonProps"),negativeButtonProps:Ve(m,"negativeButtonProps"),handlePositiveClick(k){e.onPositiveClick(k)},handleNegativeClick(k){e.onNegativeClick(k)},themeClass:w==null?void 0:w.themeClass,onRender:w==null?void 0:w.onRender})},render(){var e;const{mergedClsPrefix:c,showIcon:s,$slots:g}=this,p=Ye(g.action,()=>this.negativeText===null&&this.positiveText===null?[]:[this.negativeText!==null&&f(Me,Object.assign({size:"small",onClick:this.handleNegativeClick},this.negativeButtonProps),{default:()=>this.localizedNegativeText}),this.positiveText!==null&&f(Me,Object.assign({size:"small",type:"primary",onClick:this.handlePositiveClick},this.positiveButtonProps),{default:()=>this.localizedPositiveText})]);return(e=this.onRender)===null||e===void 0||e.call(this),f("div",{class:[`${c}-popconfirm__panel`,this.themeClass],style:this.cssVars},J(g.default,m=>s||m?f("div",{class:`${c}-popconfirm__body`},s?f("div",{class:`${c}-popconfirm__icon`},Ye(g.icon,()=>[f(Vt,{clsPrefix:c},{default:()=>f(Mt,null)})])):null,m):null),p?f("div",{class:[`${c}-popconfirm__action`]},p):null)}}),pn=h("popconfirm",[x("body",` - font-size: var(--n-font-size); - display: flex; - align-items: center; - flex-wrap: nowrap; - position: relative; - `,[x("icon",` - display: flex; - font-size: var(--n-icon-size); - color: var(--n-icon-color); - transition: color .3s var(--n-bezier); - margin: 0 8px 0 0; - `)]),x("action",` - display: flex; - justify-content: flex-end; - `,[A("&:not(:first-child)","margin-top: 8px"),h("button",[A("&:not(:last-child)","margin-right: 8px;")])])]),mn=Object.assign(Object.assign(Object.assign({},le.props),on),{positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},trigger:{type:String,default:"click"},positiveButtonProps:Object,negativeButtonProps:Object,onPositiveClick:Function,onNegativeClick:Function}),gn=ge({name:"Popconfirm",props:mn,__popover__:!0,setup(e){const{mergedClsPrefixRef:c}=Ne(),s=le("Popconfirm","-popconfirm",pn,It,e,c),g=N(null);function p(w){var k;if(!(!((k=g.value)===null||k===void 0)&&k.getMergedShow()))return;const{onPositiveClick:z,"onUpdate:show":T}=e;Promise.resolve(z?z(w):!0).then(r=>{var a;r!==!1&&((a=g.value)===null||a===void 0||a.setShow(!1),T&&L(T,!1))})}function m(w){var k;if(!(!((k=g.value)===null||k===void 0)&&k.getMergedShow()))return;const{onNegativeClick:z,"onUpdate:show":T}=e;Promise.resolve(z?z(w):!0).then(r=>{var a;r!==!1&&((a=g.value)===null||a===void 0||a.setShow(!1),T&&L(T,!1))})}return Ut(dt,{mergedThemeRef:s,mergedClsPrefixRef:c,props:e}),{setShow(w){var k;(k=g.value)===null||k===void 0||k.setShow(w)},syncPosition(){var w;(w=g.value)===null||w===void 0||w.syncPosition()},mergedTheme:s,popoverInstRef:g,handlePositiveClick:p,handleNegativeClick:m}},render(){const{$slots:e,$props:c,mergedTheme:s}=this;return f(nn,Ft(c,at,{theme:s.peers.Popover,themeOverrides:s.peerOverrides.Popover,internalExtraClass:["popconfirm"],ref:"popoverInstRef"}),{trigger:e.activator||e.trigger,default:()=>{const g=Dt(c,at);return f(vn,Object.assign(Object.assign({},g),{onPositiveClick:this.handlePositiveClick,onNegativeClick:this.handleNegativeClick}),e)}})}});function st(e){return window.TouchEvent&&e instanceof window.TouchEvent}function it(){const e=new Map,c=s=>g=>{e.set(s,g)};return jt(()=>{e.clear()}),[e,c]}const bn=A([h("slider",` - display: block; - padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0; - position: relative; - z-index: 0; - width: 100%; - cursor: pointer; - user-select: none; - -webkit-user-select: none; - `,[_("reverse",[h("slider-handles",[h("slider-handle-wrapper",` - transform: translate(50%, -50%); - `)]),h("slider-dots",[h("slider-dot",` - transform: translateX(50%, -50%); - `)]),_("vertical",[h("slider-handles",[h("slider-handle-wrapper",` - transform: translate(-50%, -50%); - `)]),h("slider-marks",[h("slider-mark",` - transform: translateY(calc(-50% + var(--n-dot-height) / 2)); - `)]),h("slider-dots",[h("slider-dot",` - transform: translateX(-50%) translateY(0); - `)])])]),_("vertical",` - padding: 0 calc((var(--n-handle-size) - var(--n-rail-height)) / 2); - width: var(--n-rail-width-vertical); - height: 100%; - `,[h("slider-handles",` - top: calc(var(--n-handle-size) / 2); - right: 0; - bottom: calc(var(--n-handle-size) / 2); - left: 0; - `,[h("slider-handle-wrapper",` - top: unset; - left: 50%; - transform: translate(-50%, 50%); - `)]),h("slider-rail",` - height: 100%; - `,[x("fill",` - top: unset; - right: 0; - bottom: unset; - left: 0; - `)]),_("with-mark",` - width: var(--n-rail-width-vertical); - margin: 0 32px 0 8px; - `),h("slider-marks",` - top: calc(var(--n-handle-size) / 2); - right: unset; - bottom: calc(var(--n-handle-size) / 2); - left: 22px; - font-size: var(--n-mark-font-size); - `,[h("slider-mark",` - transform: translateY(50%); - white-space: nowrap; - `)]),h("slider-dots",` - top: calc(var(--n-handle-size) / 2); - right: unset; - bottom: calc(var(--n-handle-size) / 2); - left: 50%; - `,[h("slider-dot",` - transform: translateX(-50%) translateY(50%); - `)])]),_("disabled",` - cursor: not-allowed; - opacity: var(--n-opacity-disabled); - `,[h("slider-handle",` - cursor: not-allowed; - `)]),_("with-mark",` - width: 100%; - margin: 8px 0 32px 0; - `),A("&:hover",[h("slider-rail",{backgroundColor:"var(--n-rail-color-hover)"},[x("fill",{backgroundColor:"var(--n-fill-color-hover)"})]),h("slider-handle",{boxShadow:"var(--n-handle-box-shadow-hover)"})]),_("active",[h("slider-rail",{backgroundColor:"var(--n-rail-color-hover)"},[x("fill",{backgroundColor:"var(--n-fill-color-hover)"})]),h("slider-handle",{boxShadow:"var(--n-handle-box-shadow-hover)"})]),h("slider-marks",` - position: absolute; - top: 18px; - left: calc(var(--n-handle-size) / 2); - right: calc(var(--n-handle-size) / 2); - `,[h("slider-mark",` - position: absolute; - transform: translateX(-50%); - white-space: nowrap; - `)]),h("slider-rail",` - width: 100%; - position: relative; - height: var(--n-rail-height); - background-color: var(--n-rail-color); - transition: background-color .3s var(--n-bezier); - border-radius: calc(var(--n-rail-height) / 2); - `,[x("fill",` - position: absolute; - top: 0; - bottom: 0; - border-radius: calc(var(--n-rail-height) / 2); - transition: background-color .3s var(--n-bezier); - background-color: var(--n-fill-color); - `)]),h("slider-handles",` - position: absolute; - top: 0; - right: calc(var(--n-handle-size) / 2); - bottom: 0; - left: calc(var(--n-handle-size) / 2); - `,[h("slider-handle-wrapper",` - outline: none; - position: absolute; - top: 50%; - transform: translate(-50%, -50%); - cursor: pointer; - display: flex; - `,[h("slider-handle",` - height: var(--n-handle-size); - width: var(--n-handle-size); - border-radius: 50%; - overflow: hidden; - transition: box-shadow .2s var(--n-bezier), background-color .3s var(--n-bezier); - background-color: var(--n-handle-color); - box-shadow: var(--n-handle-box-shadow); - `,[A("&:hover",` - box-shadow: var(--n-handle-box-shadow-hover); - `)]),A("&:focus",[h("slider-handle",` - box-shadow: var(--n-handle-box-shadow-focus); - `,[A("&:hover",` - box-shadow: var(--n-handle-box-shadow-active); - `)])])])]),h("slider-dots",` - position: absolute; - top: 50%; - left: calc(var(--n-handle-size) / 2); - right: calc(var(--n-handle-size) / 2); - `,[_("transition-disabled",[h("slider-dot","transition: none;")]),h("slider-dot",` - transition: - border-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier); - position: absolute; - transform: translate(-50%, -50%); - height: var(--n-dot-height); - width: var(--n-dot-width); - border-radius: var(--n-dot-border-radius); - overflow: hidden; - box-sizing: border-box; - border: var(--n-dot-border); - background-color: var(--n-dot-color); - `,[_("active","border: var(--n-dot-border-active);")])])]),h("slider-handle-indicator",` - font-size: var(--n-font-size); - padding: 6px 10px; - border-radius: var(--n-indicator-border-radius); - color: var(--n-indicator-text-color); - background-color: var(--n-indicator-color); - box-shadow: var(--n-indicator-box-shadow); - `,[Qe()]),h("slider-handle-indicator",` - font-size: var(--n-font-size); - padding: 6px 10px; - border-radius: var(--n-indicator-border-radius); - color: var(--n-indicator-text-color); - background-color: var(--n-indicator-color); - box-shadow: var(--n-indicator-box-shadow); - `,[_("top",` - margin-bottom: 12px; - `),_("right",` - margin-left: 12px; - `),_("bottom",` - margin-top: 12px; - `),_("left",` - margin-right: 12px; - `),Qe()]),Ht(h("slider",[h("slider-dot","background-color: var(--n-dot-color-modal);")])),Ot(h("slider",[h("slider-dot","background-color: var(--n-dot-color-popover);")]))]),xn=0,wn=Object.assign(Object.assign({},le.props),{to:Ge.propTo,defaultValue:{type:[Number,Array],default:0},marks:Object,disabled:{type:Boolean,default:void 0},formatTooltip:Function,keyboard:{type:Boolean,default:!0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:[Number,String],default:1},range:Boolean,value:[Number,Array],placement:String,showTooltip:{type:Boolean,default:void 0},tooltip:{type:Boolean,default:!0},vertical:Boolean,reverse:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onDragstart:[Function],onDragend:[Function]}),pe=ge({name:"Slider",props:wn,setup(e){const{mergedClsPrefixRef:c,namespaceRef:s,inlineThemeDisabled:g}=Ne(e),p=le("Slider","-slider",bn,At,e,c),m=N(null),[$,w]=it(),[k,z]=it(),T=N(new Set),r=lt(e),{mergedDisabledRef:a}=r,l=B(()=>{const{step:t}=e;if(Number(t)<=0||t==="mark")return 0;const o=t.toString();let i=0;return o.includes(".")&&(i=o.length-o.indexOf(".")-1),i}),D=N(e.defaultValue),Ie=Ve(e,"value"),re=rt(Ie,D),I=B(()=>{const{value:t}=re;return(e.range?t:[t]).map(Y)}),be=B(()=>I.value.length>2),Ue=B(()=>e.placement===void 0?e.vertical?"right":"top":e.placement),xe=B(()=>{const{marks:t}=e;return t?Object.keys(t).map(parseFloat):null}),U=N(-1),de=N(-1),M=N(-1),b=N(!1),E=N(!1),X=B(()=>{const{vertical:t,reverse:o}=e;return t?o?"top":"bottom":o?"right":"left"}),te=B(()=>{if(be.value)return;const t=I.value,o=ne(e.range?Math.min(...t):e.min),i=ne(e.range?Math.max(...t):t[0]),{value:v}=X;return e.vertical?{[v]:`${o}%`,height:`${i-o}%`}:{[v]:`${o}%`,width:`${i-o}%`}}),ce=B(()=>{const t=[],{marks:o}=e;if(o){const i=I.value.slice();i.sort((P,V)=>P-V);const{value:v}=X,{value:S}=be,{range:R}=e,H=S?()=>!1:P=>R?P>=i[0]&&P<=i[i.length-1]:P<=i[0];for(const P of Object.keys(o)){const V=Number(P);t.push({active:H(V),label:o[P],style:{[v]:`${ne(V)}%`}})}}return t});function ue(t,o){const i=ne(t),{value:v}=X;return{[v]:`${i}%`,zIndex:o===U.value?1:0}}function we(t){return e.showTooltip||M.value===t||U.value===t&&b.value}function De(t){return b.value?!(U.value===t&&de.value===t):!0}function Fe(t){var o;~t&&(U.value=t,(o=$.get(t))===null||o===void 0||o.focus())}function je(){k.forEach((t,o)=>{we(o)&&t.syncPosition()})}function j(t){const{"onUpdate:value":o,onUpdateValue:i}=e,{nTriggerFormInput:v,nTriggerFormChange:S}=r;i&&L(i,t),o&&L(o,t),D.value=t,v(),S()}function ye(t){const{range:o}=e;if(o){if(Array.isArray(t)){const{value:i}=I;t.join()!==i.join()&&j(t)}}else Array.isArray(t)||I.value[0]!==t&&j(t)}function he(t,o){if(e.range){const i=I.value.slice();i.splice(o,1,t),ye(i)}else ye(t)}function F(t,o,i){const v=i!==void 0;i||(i=t-o>0?1:-1);const S=xe.value||[],{step:R}=e;if(R==="mark"){const V=q(t,S.concat(o),v?i:void 0);return V?V.value:o}if(R<=0)return o;const{value:H}=l;let P;if(v){const V=Number((o/R).toFixed(H)),G=Math.floor(V),Ae=V>G?G:G-1,Ee=V0)&&(v===null||H0?1:-1),o)}function ut(t){var o,i;if(a.value||!st(t)&&t.button!==xn)return;const v=oe(t);if(v===void 0)return;const S=I.value.slice(),R=e.range?(i=(o=q(v,S))===null||o===void 0?void 0:o.index)!==null&&i!==void 0?i:-1:0;R!==-1&&(t.preventDefault(),Fe(R),ht(),he(F(v,I.value[R]),R))}function ht(){b.value||(b.value=!0,e.onDragstart&&L(e.onDragstart),ze("touchend",document,_e),ze("mouseup",document,_e),ze("touchmove",document,Ce),ze("mousemove",document,Ce))}function Se(){b.value&&(b.value=!1,e.onDragend&&L(e.onDragend),$e("touchend",document,_e),$e("mouseup",document,_e),$e("touchmove",document,Ce),$e("mousemove",document,Ce))}function Ce(t){const{value:o}=U;if(!b.value||o===-1){Se();return}const i=oe(t);i!==void 0&&he(F(i,I.value[o]),o)}function _e(){Se()}function ft(t){U.value=t,a.value||(M.value=t)}function vt(t){U.value===t&&(U.value=-1,Se()),M.value===t&&(M.value=-1)}function pt(t){M.value=t}function mt(t){M.value===t&&(M.value=-1)}qe(U,(t,o)=>void We(()=>de.value=o)),qe(re,()=>{if(e.marks){if(E.value)return;E.value=!0,We(()=>{E.value=!1})}We(je)}),Et(()=>{Se()});const Je=B(()=>{const{self:{markFontSize:t,railColor:o,railColorHover:i,fillColor:v,fillColorHover:S,handleColor:R,opacityDisabled:H,dotColor:P,dotColorModal:V,handleBoxShadow:G,handleBoxShadowHover:Ae,handleBoxShadowActive:Ee,handleBoxShadowFocus:gt,dotBorder:bt,dotBoxShadow:xt,railHeight:wt,railWidthVertical:yt,handleSize:kt,dotHeight:St,dotWidth:Ct,dotBorderRadius:_t,fontSize:zt,dotBorderActive:$t,dotColorPopover:Tt},common:{cubicBezierEaseInOut:Rt}}=p.value;return{"--n-bezier":Rt,"--n-dot-border":bt,"--n-dot-border-active":$t,"--n-dot-border-radius":_t,"--n-dot-box-shadow":xt,"--n-dot-color":P,"--n-dot-color-modal":V,"--n-dot-color-popover":Tt,"--n-dot-height":St,"--n-dot-width":Ct,"--n-fill-color":v,"--n-fill-color-hover":S,"--n-font-size":zt,"--n-handle-box-shadow":G,"--n-handle-box-shadow-active":Ee,"--n-handle-box-shadow-focus":gt,"--n-handle-box-shadow-hover":Ae,"--n-handle-color":R,"--n-handle-size":kt,"--n-opacity-disabled":H,"--n-rail-color":o,"--n-rail-color-hover":i,"--n-rail-height":wt,"--n-rail-width-vertical":yt,"--n-mark-font-size":t}}),ae=g?Pe("slider",void 0,Je,e):void 0,Ze=B(()=>{const{self:{fontSize:t,indicatorColor:o,indicatorBoxShadow:i,indicatorTextColor:v,indicatorBorderRadius:S}}=p.value;return{"--n-font-size":t,"--n-indicator-border-radius":S,"--n-indicator-box-shadow":i,"--n-indicator-color":o,"--n-indicator-text-color":v}}),se=g?Pe("slider-indicator",void 0,Ze,e):void 0;return{mergedClsPrefix:c,namespace:s,uncontrolledValue:D,mergedValue:re,mergedDisabled:a,mergedPlacement:Ue,isMounted:Wt(),adjustedTo:Ge(e),dotTransitionDisabled:E,markInfos:ce,isShowTooltip:we,shouldKeepTooltipTransition:De,handleRailRef:m,setHandleRefs:w,setFollowerRefs:z,fillStyle:te,getHandleStyle:ue,activeIndex:U,arrifiedValues:I,followerEnabledIndexSet:T,handleRailMouseDown:ut,handleHandleFocus:ft,handleHandleBlur:vt,handleHandleMouseEnter:pt,handleHandleMouseLeave:mt,handleRailKeyDown:fe,indicatorCssVars:g?void 0:Ze,indicatorThemeClass:se==null?void 0:se.themeClass,indicatorOnRender:se==null?void 0:se.onRender,cssVars:g?void 0:Je,themeClass:ae==null?void 0:ae.themeClass,onRender:ae==null?void 0:ae.onRender}},render(){var e;const{mergedClsPrefix:c,themeClass:s,formatTooltip:g}=this;return(e=this.onRender)===null||e===void 0||e.call(this),f("div",{class:[`${c}-slider`,s,{[`${c}-slider--disabled`]:this.mergedDisabled,[`${c}-slider--active`]:this.activeIndex!==-1,[`${c}-slider--with-mark`]:this.marks,[`${c}-slider--vertical`]:this.vertical,[`${c}-slider--reverse`]:this.reverse}],style:this.cssVars,onKeydown:this.handleRailKeyDown,onMousedown:this.handleRailMouseDown,onTouchstart:this.handleRailMouseDown},f("div",{class:`${c}-slider-rail`},f("div",{class:`${c}-slider-rail__fill`,style:this.fillStyle}),this.marks?f("div",{class:[`${c}-slider-dots`,this.dotTransitionDisabled&&`${c}-slider-dots--transition-disabled`]},this.markInfos.map(p=>f("div",{key:p.label,class:[`${c}-slider-dot`,{[`${c}-slider-dot--active`]:p.active}],style:p.style}))):null,f("div",{ref:"handleRailRef",class:`${c}-slider-handles`},this.arrifiedValues.map((p,m)=>{const $=this.isShowTooltip(m);return f(an,null,{default:()=>[f(sn,null,{default:()=>f("div",{ref:this.setHandleRefs(m),class:`${c}-slider-handle-wrapper`,tabindex:this.mergedDisabled?-1:0,style:this.getHandleStyle(p,m),onFocus:()=>{this.handleHandleFocus(m)},onBlur:()=>{this.handleHandleBlur(m)},onMouseenter:()=>{this.handleHandleMouseEnter(m)},onMouseleave:()=>{this.handleHandleMouseLeave(m)}},Ye(this.$slots.thumb,()=>[f("div",{class:`${c}-slider-handle`})]))}),this.tooltip&&f(ln,{ref:this.setFollowerRefs(m),show:$,to:this.adjustedTo,enabled:this.showTooltip&&!this.range||this.followerEnabledIndexSet.has(m),teleportDisabled:this.adjustedTo===Ge.tdkey,placement:this.mergedPlacement,containerClass:this.namespace},{default:()=>f(Kt,{name:"fade-in-scale-up-transition",appear:this.isMounted,css:this.shouldKeepTooltipTransition(m),onEnter:()=>{this.followerEnabledIndexSet.add(m)},onAfterLeave:()=>{this.followerEnabledIndexSet.delete(m)}},{default:()=>{var w;return $?((w=this.indicatorOnRender)===null||w===void 0||w.call(this),f("div",{class:[`${c}-slider-handle-indicator`,this.indicatorThemeClass,`${c}-slider-handle-indicator--${this.mergedPlacement}`],style:this.indicatorCssVars},typeof g=="function"?g(p):p)):null}})})]})})),this.marks?f("div",{class:`${c}-slider-marks`},this.markInfos.map(p=>f("div",{key:p.label,class:`${c}-slider-mark`,style:p.style},p.label))):null))}}),yn=h("switch",` - height: var(--n-height); - min-width: var(--n-width); - vertical-align: middle; - user-select: none; - -webkit-user-select: none; - display: inline-flex; - outline: none; - justify-content: center; - align-items: center; -`,[x("children-placeholder",` - height: var(--n-rail-height); - display: flex; - flex-direction: column; - overflow: hidden; - pointer-events: none; - visibility: hidden; - `),x("rail-placeholder",` - display: flex; - flex-wrap: none; - `),x("button-placeholder",` - width: calc(1.75 * var(--n-rail-height)); - height: var(--n-rail-height); - `),h("base-loading",` - position: absolute; - top: 50%; - left: 50%; - transform: translateX(-50%) translateY(-50%); - font-size: calc(var(--n-button-width) - 4px); - color: var(--n-loading-color); - transition: color .3s var(--n-bezier); - `,[et({left:"50%",top:"50%",originalTransform:"translateX(-50%) translateY(-50%)"})]),x("checked, unchecked",` - transition: color .3s var(--n-bezier); - color: var(--n-text-color); - box-sizing: border-box; - position: absolute; - white-space: nowrap; - top: 0; - bottom: 0; - display: flex; - align-items: center; - line-height: 1; - `),x("checked",` - right: 0; - padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset)); - `),x("unchecked",` - left: 0; - justify-content: flex-end; - padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset)); - `),A("&:focus",[x("rail",` - box-shadow: var(--n-box-shadow-focus); - `)]),_("round",[x("rail","border-radius: calc(var(--n-rail-height) / 2);",[x("button","border-radius: calc(var(--n-button-height) / 2);")])]),tt("disabled",[tt("icon",[_("rubber-band",[_("pressed",[x("rail",[x("button","max-width: var(--n-button-width-pressed);")])]),x("rail",[A("&:active",[x("button","max-width: var(--n-button-width-pressed);")])]),_("active",[_("pressed",[x("rail",[x("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])]),x("rail",[A("&:active",[x("button","left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));")])])])])])]),_("active",[x("rail",[x("button","left: calc(100% - var(--n-button-width) - var(--n-offset))")])]),x("rail",` - overflow: hidden; - height: var(--n-rail-height); - min-width: var(--n-rail-width); - border-radius: var(--n-rail-border-radius); - cursor: pointer; - position: relative; - transition: - opacity .3s var(--n-bezier), - background .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); - background-color: var(--n-rail-color); - `,[x("button-icon",` - color: var(--n-icon-color); - transition: color .3s var(--n-bezier); - font-size: calc(var(--n-button-height) - 4px); - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - display: flex; - justify-content: center; - align-items: center; - line-height: 1; - `,[et()]),x("button",` - align-items: center; - top: var(--n-offset); - left: var(--n-offset); - height: var(--n-button-height); - width: var(--n-button-width-pressed); - max-width: var(--n-button-width); - border-radius: var(--n-button-border-radius); - background-color: var(--n-button-color); - box-shadow: var(--n-button-box-shadow); - box-sizing: border-box; - cursor: inherit; - content: ""; - position: absolute; - transition: - background-color .3s var(--n-bezier), - left .3s var(--n-bezier), - opacity .3s var(--n-bezier), - max-width .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); - `)]),_("active",[x("rail","background-color: var(--n-rail-color-active);")]),_("loading",[x("rail",` - cursor: wait; - `)]),_("disabled",[x("rail",` - cursor: not-allowed; - opacity: .5; - `)])]),kn=Object.assign(Object.assign({},le.props),{size:{type:String,default:"medium"},value:{type:[String,Number,Boolean],default:void 0},loading:Boolean,defaultValue:{type:[String,Number,Boolean],default:!1},disabled:{type:Boolean,default:void 0},round:{type:Boolean,default:!0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],checkedValue:{type:[String,Number,Boolean],default:!0},uncheckedValue:{type:[String,Number,Boolean],default:!1},railStyle:Function,rubberBand:{type:Boolean,default:!0},onChange:[Function,Array]});let me;const O=ge({name:"Switch",props:kn,setup(e){me===void 0&&(typeof CSS<"u"?typeof CSS.supports<"u"?me=CSS.supports("width","max(1px)"):me=!1:me=!0);const{mergedClsPrefixRef:c,inlineThemeDisabled:s}=Ne(e),g=le("Switch","-switch",yn,Lt,e,c),p=lt(e),{mergedSizeRef:m,mergedDisabledRef:$}=p,w=N(e.defaultValue),k=Ve(e,"value"),z=rt(k,w),T=B(()=>z.value===e.checkedValue),r=N(!1),a=N(!1),l=B(()=>{const{railStyle:b}=e;if(b)return b({focused:a.value,checked:T.value})});function D(b){const{"onUpdate:value":E,onChange:X,onUpdateValue:te}=e,{nTriggerFormInput:ce,nTriggerFormChange:ue}=p;E&&L(E,b),te&&L(te,b),X&&L(X,b),w.value=b,ce(),ue()}function Ie(){const{nTriggerFormFocus:b}=p;b()}function re(){const{nTriggerFormBlur:b}=p;b()}function I(){e.loading||$.value||(z.value!==e.checkedValue?D(e.checkedValue):D(e.uncheckedValue))}function be(){a.value=!0,Ie()}function Ue(){a.value=!1,re(),r.value=!1}function xe(b){e.loading||$.value||b.key===" "&&(z.value!==e.checkedValue?D(e.checkedValue):D(e.uncheckedValue),r.value=!1)}function U(b){e.loading||$.value||b.key===" "&&(b.preventDefault(),r.value=!0)}const de=B(()=>{const{value:b}=m,{self:{opacityDisabled:E,railColor:X,railColorActive:te,buttonBoxShadow:ce,buttonColor:ue,boxShadowFocus:we,loadingColor:De,textColor:Fe,iconColor:je,[Z("buttonHeight",b)]:j,[Z("buttonWidth",b)]:ye,[Z("buttonWidthPressed",b)]:he,[Z("railHeight",b)]:F,[Z("railWidth",b)]:Y,[Z("railBorderRadius",b)]:ne,[Z("buttonBorderRadius",b)]:He},common:{cubicBezierEaseInOut:Oe}}=g.value;let q,oe,fe;return me?(q=`calc((${F} - ${j}) / 2)`,oe=`max(${F}, ${j})`,fe=`max(${Y}, calc(${Y} + ${j} - ${F}))`):(q=Ke((W(F)-W(j))/2),oe=Ke(Math.max(W(F),W(j))),fe=W(F)>W(j)?Y:Ke(W(Y)+W(j)-W(F))),{"--n-bezier":Oe,"--n-button-border-radius":He,"--n-button-box-shadow":ce,"--n-button-color":ue,"--n-button-width":ye,"--n-button-width-pressed":he,"--n-button-height":j,"--n-height":oe,"--n-offset":q,"--n-opacity-disabled":E,"--n-rail-border-radius":ne,"--n-rail-color":X,"--n-rail-color-active":te,"--n-rail-height":F,"--n-rail-width":Y,"--n-width":fe,"--n-box-shadow-focus":we,"--n-loading-color":De,"--n-text-color":Fe,"--n-icon-color":je}}),M=s?Pe("switch",B(()=>m.value[0]),de,e):void 0;return{handleClick:I,handleBlur:Ue,handleFocus:be,handleKeyup:xe,handleKeydown:U,mergedRailStyle:l,pressed:r,mergedClsPrefix:c,mergedValue:z,checked:T,mergedDisabled:$,cssVars:s?void 0:de,themeClass:M==null?void 0:M.themeClass,onRender:M==null?void 0:M.onRender}},render(){const{mergedClsPrefix:e,mergedDisabled:c,checked:s,mergedRailStyle:g,onRender:p,$slots:m}=this;p==null||p();const{checked:$,unchecked:w,icon:k,"checked-icon":z,"unchecked-icon":T}=m,r=!(Le(k)&&Le(z)&&Le(T));return f("div",{role:"switch","aria-checked":s,class:[`${e}-switch`,this.themeClass,r&&`${e}-switch--icon`,s&&`${e}-switch--active`,c&&`${e}-switch--disabled`,this.round&&`${e}-switch--round`,this.loading&&`${e}-switch--loading`,this.pressed&&`${e}-switch--pressed`,this.rubberBand&&`${e}-switch--rubber-band`],tabindex:this.mergedDisabled?void 0:0,style:this.cssVars,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyup:this.handleKeyup,onKeydown:this.handleKeydown},f("div",{class:`${e}-switch__rail`,"aria-hidden":"true",style:g},J($,a=>J(w,l=>a||l?f("div",{"aria-hidden":!0,class:`${e}-switch__children-placeholder`},f("div",{class:`${e}-switch__rail-placeholder`},f("div",{class:`${e}-switch__button-placeholder`}),a),f("div",{class:`${e}-switch__rail-placeholder`},f("div",{class:`${e}-switch__button-placeholder`}),l)):null)),f("div",{class:`${e}-switch__button`},J(k,a=>J(z,l=>J(T,D=>f(Xt,null,{default:()=>this.loading?f(Yt,{key:"loading",clsPrefix:e,strokeWidth:20}):this.checked&&(l||a)?f("div",{class:`${e}-switch__button-icon`,key:l?"checked-icon":"icon"},l||a):!this.checked&&(D||a)?f("div",{class:`${e}-switch__button-icon`,key:D?"unchecked-icon":"icon"},D||a):null})))),J($,a=>a&&f("div",{key:"checked",class:`${e}-switch__checked`},a)),J(w,a=>a&&f("div",{key:"unchecked",class:`${e}-switch__unchecked`},a)))))}}),Sn=e=>(en("data-v-da662465"),e=e(),tn(),e),Cn={class:"bg-slate-200 dark:bg-zinc-900 rounded-[10px] p-[8px] overflow-auto"},_n=Sn(()=>d("div",{class:"text-slate-500 mb-[5px] font-bold"}," LOGO ",-1)),zn={class:"flex items-center mt-[5px]"},$n={class:"text-slate-500 mb-[5px] font-bold"},Tn={class:"flex items-center mt-[5px]"},Rn={class:"mr-[10px]"},Bn={class:"text-slate-500 mb-[5px] font-bold"},Pn={class:"flex items-center mt-[5px]"},Vn={class:"mr-[10px]"},Mn={key:0,class:"flex items-center mt-[5px]"},Nn={class:"mr-[10px]"},In={class:"text-slate-500 mb-[5px] font-bold"},Un={class:"flex items-center mt-[5px]"},Dn={class:"mr-[10px]"},Fn={key:0,class:"flex items-center mt-[5px]"},jn={class:"mr-[10px]"},Hn={key:1,class:"flex items-center mt-[5px]"},On={class:"mr-[10px]"},An={class:"text-slate-500 mb-[5px] font-bold"},En={class:"mt-[5px]"},Wn={class:"flex items-center mt-[5px]"},Kn={key:0,class:"mt-[5px]"},Ln={class:"flex items-center mt-[5px]"},Xn={key:1,class:"mt-[5px]"},Yn={class:"flex items-center mt-[5px]"},qn={class:"mt-[5px]"},Gn={class:"flex items-center mt-[5px]"},Jn={class:"text-slate-500 mb-[5px] font-bold"},Zn={class:"text-shadow text-white"},Qn={class:"flex items-center mt-[5px]"},eo={class:"mr-[10px]"},to={key:0,class:"mt-1"},no={class:"flex items-center mt-[10px]"},oo={class:"mr-[10px]"},ao={class:"flex items-center mt-[10px]"},so={class:"mr-[10px]"},io={class:"text-slate-500 mb-[5px] font-bold"},lo={class:"flex items-center mt-[5px]"},ro={class:"mr-[10px]"},co={class:"flex items-center mt-[10px]"},uo={class:"mr-[10px]"},ho={class:"flex"},fo={class:"flex items-center mt-[10px]"},vo={class:"mr-[10px]"},po={class:"flex items-center mt-[10px]"},mo={class:"mr-[10px]"},go={class:"flex items-center mt-[10px]"},bo={class:"mr-[10px]"},xo={class:"text-slate-500 mb-[5px] font-bold"},wo=ge({__name:"index",setup(e){const c=qt(),s=Gt(),g=Jt(),p=N(!1),m=N(!1),$=[{label:Te("apps.baseSettings.detailIcon"),value:Re.info},{label:Te("apps.baseSettings.smallIcon"),value:Re.icon}],w=[{label:"px",value:"px"},{label:"%",value:"%"}];qe(s.panelConfig,()=>{m.value||(m.value=!0,setTimeout(()=>{s.recordState(),m.value=!1,z()},1e3))});function k({file:r,event:a}){const l=JSON.parse((a==null?void 0:a.target).response);return s.panelConfig.backgroundImageSrc=l.data.imageUrl,r}function z(){Zt({panel:s.panelConfig}).then(r=>{r.code===0?g.success(Te("apps.baseSettings.configSaved")):g.error(Te("apps.baseSettings.configFailed",{message:r.msg}))})}function T(){s.resetPanelConfig(),z()}return(r,a)=>(Q(),ee("div",Cn,[u(n(K),{style:{"border-radius":"10px"},size:"small"},{default:C(()=>[_n,d("div",null,[d("div",null,y(r.$t("apps.baseSettings.textContent")),1),d("div",zn,[u(n(Be),{value:n(s).panelConfig.logoText,"onUpdate:value":a[0]||(a[0]=l=>n(s).panelConfig.logoText=l),type:"text","show-count":"",maxlength:20,placeholder:"请输入文字"},null,8,["value"])])])]),_:1}),u(n(K),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:C(()=>[d("div",$n,y(r.$t("apps.baseSettings.clock")),1),d("div",Tn,[d("span",Rn,y(r.$t("apps.baseSettings.clockSecondShow")),1),u(n(O),{value:n(s).panelConfig.clockShowSecond,"onUpdate:value":a[1]||(a[1]=l=>n(s).panelConfig.clockShowSecond=l)},null,8,["value"])])]),_:1}),u(n(K),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:C(()=>[d("div",Bn,y(r.$t("apps.baseSettings.searchBar")),1),d("div",Pn,[d("span",Vn,y(r.$t("common.show")),1),u(n(O),{value:n(s).panelConfig.searchBoxShow,"onUpdate:value":a[2]||(a[2]=l=>n(s).panelConfig.searchBoxShow=l)},null,8,["value"])]),n(s).panelConfig.searchBoxShow?(Q(),ee("div",Mn,[d("span",Nn,y(r.$t("apps.baseSettings.searchBarSearchItem")),1),u(n(O),{value:n(s).panelConfig.searchBoxSearchIcon,"onUpdate:value":a[3]||(a[3]=l=>n(s).panelConfig.searchBoxSearchIcon=l)},null,8,["value"])])):ie("",!0)]),_:1}),u(n(K),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:C(()=>[d("div",In,y(r.$t("apps.baseSettings.systemMonitorStatus")),1),d("div",Un,[d("span",Dn,y(r.$t("common.show")),1),u(n(O),{value:n(s).panelConfig.systemMonitorShow,"onUpdate:value":a[4]||(a[4]=l=>n(s).panelConfig.systemMonitorShow=l)},null,8,["value"])]),n(s).panelConfig.systemMonitorShow?(Q(),ee("div",Fn,[d("span",jn,y(r.$t("apps.baseSettings.showTitle")),1),u(n(O),{value:n(s).panelConfig.systemMonitorShowTitle,"onUpdate:value":a[5]||(a[5]=l=>n(s).panelConfig.systemMonitorShowTitle=l)},null,8,["value"])])):ie("",!0),n(s).panelConfig.systemMonitorShow?(Q(),ee("div",Hn,[d("span",On,y(r.$t("apps.baseSettings.publicVisitModeShow")),1),u(n(O),{value:n(s).panelConfig.systemMonitorPublicVisitModeShow,"onUpdate:value":a[6]||(a[6]=l=>n(s).panelConfig.systemMonitorPublicVisitModeShow=l)},null,8,["value"])])):ie("",!0)]),_:1}),u(n(K),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:C(()=>[d("div",An,y(r.$t("common.icon")),1),d("div",En,[d("div",null,y(r.$t("common.style")),1),d("div",Wn,[u(n(ot),{value:n(s).panelConfig.iconStyle,"onUpdate:value":a[7]||(a[7]=l=>n(s).panelConfig.iconStyle=l),options:$},null,8,["value"])])]),n(s).panelConfig.iconStyle===n(Re).info?(Q(),ee("div",Kn,[d("div",null,y(r.$t("apps.baseSettings.hideDescription")),1),d("div",Ln,[u(n(O),{value:n(s).panelConfig.iconTextInfoHideDescription,"onUpdate:value":a[8]||(a[8]=l=>n(s).panelConfig.iconTextInfoHideDescription=l)},null,8,["value"])])])):ie("",!0),n(s).panelConfig.iconStyle===n(Re).icon?(Q(),ee("div",Xn,[d("div",null,y(r.$t("apps.baseSettings.hideTitle")),1),d("div",Yn,[u(n(O),{value:n(s).panelConfig.iconTextIconHideTitle,"onUpdate:value":a[9]||(a[9]=l=>n(s).panelConfig.iconTextIconHideTitle=l)},null,8,["value"])])])):ie("",!0),d("div",qn,[d("div",null,y(r.$t("common.textColor")),1),d("div",Gn,[u(n(rn),{value:n(s).panelConfig.iconTextColor,"onUpdate:value":a[10]||(a[10]=l=>n(s).panelConfig.iconTextColor=l),"show-alpha":!1,size:"small",modes:["hex"],swatches:["#000000","#ffffff","#18A058","#2080F0","#F0A020"]},null,8,["value"])])])]),_:1}),u(n(K),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:C(()=>[d("div",Jn,y(r.$t("apps.baseSettings.wallpaper")),1),u(n(dn),{action:"/api/file/uploadImg","show-file-list":!1,name:"imgfile",headers:{token:n(c).token},"directory-dnd":!0,onFinish:k},{default:C(()=>[u(n(cn),{style:{width:"100%"}},{default:C(()=>[d("div",{class:"h-[200px] w-full border bg-slate-100 flex justify-center items-center cursor-pointer rounded-[10px]",style:Qt({background:`url(${n(s).panelConfig.backgroundImageSrc}) no-repeat`,backgroundSize:"cover"})},[d("div",Zn,y(r.$t("apps.baseSettings.uploadOrDragText")),1)],4)]),_:1})]),_:1},8,["headers"]),d("div",Qn,[d("span",eo,y(r.$t("apps.baseSettings.customImageAddress")),1),u(n(O),{value:p.value,"onUpdate:value":a[11]||(a[11]=l=>p.value=l)},null,8,["value"])]),p.value?(Q(),ee("div",to,[u(n(Be),{value:n(s).panelConfig.backgroundImageSrc,"onUpdate:value":a[12]||(a[12]=l=>n(s).panelConfig.backgroundImageSrc=l),type:"text",size:"small",clearable:""},null,8,["value"])])):ie("",!0),d("div",no,[d("span",oo,y(r.$t("apps.baseSettings.vague")),1),u(n(pe),{value:n(s).panelConfig.backgroundBlur,"onUpdate:value":a[13]||(a[13]=l=>n(s).panelConfig.backgroundBlur=l),class:"max-w-[200px]",step:2,max:20},null,8,["value"])]),d("div",ao,[d("span",so,y(r.$t("apps.baseSettings.mask")),1),u(n(pe),{value:n(s).panelConfig.backgroundMaskNumber,"onUpdate:value":a[14]||(a[14]=l=>n(s).panelConfig.backgroundMaskNumber=l),class:"max-w-[200px]",step:.1,max:1},null,8,["value","step"])])]),_:1}),u(n(K),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:C(()=>[d("div",io,y(r.$t("apps.baseSettings.contentArea")),1),u(n(hn),{cols:"2"},{default:C(()=>[u(n(ve),{span:"12 400:12"},{default:C(()=>[d("div",lo,[d("span",ro,y(r.$t("apps.baseSettings.netModeChangeButtonShow")),1),u(n(O),{value:n(s).panelConfig.netModeChangeButtonShow,"onUpdate:value":a[15]||(a[15]=l=>n(s).panelConfig.netModeChangeButtonShow=l)},null,8,["value"])])]),_:1}),u(n(ve),{span:"12 400:12"},{default:C(()=>[d("div",co,[d("span",uo,y(r.$t("apps.baseSettings.maxWidth")),1),d("div",ho,[u(n(un),null,{default:C(()=>[u(n(Be),{value:n(s).panelConfig.maxWidth,"onUpdate:value":a[16]||(a[16]=l=>n(s).panelConfig.maxWidth=l),size:"small",type:"number",maxlength:10,style:{width:"100px"},placeholder:"1200"},null,8,["value"]),u(n(ot),{value:n(s).panelConfig.maxWidthUnit,"onUpdate:value":a[17]||(a[17]=l=>n(s).panelConfig.maxWidthUnit=l),style:{width:"80px"},options:w,size:"small"},null,8,["value"])]),_:1})])])]),_:1}),u(n(ve),{span:"12 400:12"},{default:C(()=>[d("div",fo,[d("span",vo,y(r.$t("apps.baseSettings.leftRightMargin")),1),u(n(pe),{value:n(s).panelConfig.marginX,"onUpdate:value":a[18]||(a[18]=l=>n(s).panelConfig.marginX=l),class:"max-w-[200px]",step:1,max:100},null,8,["value"])])]),_:1}),u(n(ve),{span:"12 400:12"},{default:C(()=>[d("div",po,[d("span",mo,y(r.$t("apps.baseSettings.topMargin"))+" (%)",1),u(n(pe),{value:n(s).panelConfig.marginTop,"onUpdate:value":a[19]||(a[19]=l=>n(s).panelConfig.marginTop=l),class:"max-w-[200px]",step:1,max:50},null,8,["value"])])]),_:1}),u(n(ve),{span:"12 400:6"},{default:C(()=>[d("div",go,[d("span",bo,y(r.$t("apps.baseSettings.bottomMargin"))+" (%)",1),u(n(pe),{value:n(s).panelConfig.marginBottom,"onUpdate:value":a[20]||(a[20]=l=>n(s).panelConfig.marginBottom=l),class:"max-w-[200px]",step:1,max:50},null,8,["value"])])]),_:1})]),_:1})]),_:1}),u(n(K),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:C(()=>[d("div",xo,y(r.$t("apps.baseSettings.customFooter")),1),u(n(Be),{value:n(s).panelConfig.footerHtml,"onUpdate:value":a[21]||(a[21]=l=>n(s).panelConfig.footerHtml=l),type:"textarea",clearable:""},null,8,["value"])]),_:1}),u(n(K),{style:{"border-radius":"10px"},class:"mt-[10px]",size:"small"},{default:C(()=>[u(n(gn),{onPositiveClick:T},{trigger:C(()=>[u(n(Me),{size:"small",quaternary:"",type:"error"},{default:C(()=>[Xe(y(r.$t("common.reset")),1)]),_:1})]),default:C(()=>[Xe(" "+y(r.$t("apps.baseSettings.resetWarnText")),1)]),_:1}),u(n(Me),{size:"small",quaternary:"",type:"success",class:"ml-[10px]",onClick:z},{default:C(()=>[Xe(y(r.$t("common.save")),1)]),_:1})]),_:1})]))}});const $o=fn(wo,[["__scopeId","data-v-da662465"]]);export{$o as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b1580adf.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b1580adf.js deleted file mode 100644 index d096f799d..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b1580adf.js +++ /dev/null @@ -1,549 +0,0 @@ -import{f as te,g as r,t as an,m as F,H as Be,q as Xe,z as Ke,cP as on,y as R,w as Pt,R as wt,L as ie,B as ct,bT as Gn,ab as Z,r as N,a6 as zt,as as Zn,aM as ln,n as G,K as j,aj as at,cQ as Jn,E as tt,af as sn,A as ce,F as Mt,ao as ot,S as Ee,c0 as Qn,s as Yn,P as Ut,p as ye,a5 as er,ak as tr,ax as nr,aw as bt,ac as it,aB as dn,b as rr,c as st,e as Ot,aH as nt,ah as ar,bJ as un,ae as qe,cR as or,bh as ir,V as lr,a4 as _t,aI as sr,J as dr,ad as et,v as ur,x as cr,cS as fr,ag as hr,T as vr,be as lt,bn as cn,bo as oe,aW as fn,a_ as mr,a$ as Le,b3 as hn,b4 as we,b2 as be,b0 as Rt,b1 as kt,bi as gr,bl as pr,bw as br,a as yr,D as xr,aX as Cr}from"./index-7e19b821.js";import{y as wr,z as Rr,n as Bt,A as kr,B as Sr,g as Fr,_ as Pr}from"./index-b1d3d9b0.js";import{c as vn,g as zr,i as Mr,h as St,m as At,N as rt,b as mn,C as Br,V as Tr,j as $r,d as Ur,a as dt,f as Lt}from"./index-2b595d91.js";import{N as gn,p as Et,b as pn,u as Qe,d as Or,f as Me,l as Nt,i as Kt,S as _r}from"./index-c238f14b.js";import{m as Ar,r as Lr,b as Er,c as Tt,n as bn,o as yn,C as Nr}from"./index-bc9666b7.js";import{N as Kr}from"./Alert-018ca7af.js";import"./_plugin-vue_export-helper-c27b6911.js";function It(e){switch(e){case"tiny":return"mini";case"small":return"tiny";case"medium":return"small";case"large":return"medium";case"huge":return"large"}throw Error(`${e} has no smaller size.`)}const Ir=te({name:"ArrowDown",render(){return r("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},r("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},r("g",{"fill-rule":"nonzero"},r("path",{d:"M23.7916,15.2664 C24.0788,14.9679 24.0696,14.4931 23.7711,14.206 C23.4726,13.9188 22.9978,13.928 22.7106,14.2265 L14.7511,22.5007 L14.7511,3.74792 C14.7511,3.33371 14.4153,2.99792 14.0011,2.99792 C13.5869,2.99792 13.2511,3.33371 13.2511,3.74793 L13.2511,22.4998 L5.29259,14.2265 C5.00543,13.928 4.53064,13.9188 4.23213,14.206 C3.93361,14.4931 3.9244,14.9679 4.21157,15.2664 L13.2809,24.6944 C13.6743,25.1034 14.3289,25.1034 14.7223,24.6944 L23.7916,15.2664 Z"}))))}}),Vt=te({name:"Backward",render(){return r("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r("path",{d:"M12.2674 15.793C11.9675 16.0787 11.4927 16.0672 11.2071 15.7673L6.20572 10.5168C5.9298 10.2271 5.9298 9.7719 6.20572 9.48223L11.2071 4.23177C11.4927 3.93184 11.9675 3.92031 12.2674 4.206C12.5673 4.49169 12.5789 4.96642 12.2932 5.26634L7.78458 9.99952L12.2932 14.7327C12.5789 15.0326 12.5673 15.5074 12.2674 15.793Z",fill:"currentColor"}))}}),Dt=te({name:"FastBackward",render(){return r("svg",{viewBox:"0 0 20 20",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},r("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},r("g",{fill:"currentColor","fill-rule":"nonzero"},r("path",{d:"M8.73171,16.7949 C9.03264,17.0795 9.50733,17.0663 9.79196,16.7654 C10.0766,16.4644 10.0634,15.9897 9.76243,15.7051 L4.52339,10.75 L17.2471,10.75 C17.6613,10.75 17.9971,10.4142 17.9971,10 C17.9971,9.58579 17.6613,9.25 17.2471,9.25 L4.52112,9.25 L9.76243,4.29275 C10.0634,4.00812 10.0766,3.53343 9.79196,3.2325 C9.50733,2.93156 9.03264,2.91834 8.73171,3.20297 L2.31449,9.27241 C2.14819,9.4297 2.04819,9.62981 2.01448,9.8386 C2.00308,9.89058 1.99707,9.94459 1.99707,10 C1.99707,10.0576 2.00356,10.1137 2.01585,10.1675 C2.05084,10.3733 2.15039,10.5702 2.31449,10.7254 L8.73171,16.7949 Z"}))))}}),jt=te({name:"FastForward",render(){return r("svg",{viewBox:"0 0 20 20",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},r("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},r("g",{fill:"currentColor","fill-rule":"nonzero"},r("path",{d:"M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z"}))))}}),Vr=te({name:"Filter",render(){return r("svg",{viewBox:"0 0 28 28",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},r("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},r("g",{"fill-rule":"nonzero"},r("path",{d:"M17,19 C17.5522847,19 18,19.4477153 18,20 C18,20.5522847 17.5522847,21 17,21 L11,21 C10.4477153,21 10,20.5522847 10,20 C10,19.4477153 10.4477153,19 11,19 L17,19 Z M21,13 C21.5522847,13 22,13.4477153 22,14 C22,14.5522847 21.5522847,15 21,15 L7,15 C6.44771525,15 6,14.5522847 6,14 C6,13.4477153 6.44771525,13 7,13 L21,13 Z M24,7 C24.5522847,7 25,7.44771525 25,8 C25,8.55228475 24.5522847,9 24,9 L4,9 C3.44771525,9 3,8.55228475 3,8 C3,7.44771525 3.44771525,7 4,7 L24,7 Z"}))))}}),Ht=te({name:"Forward",render(){return r("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r("path",{d:"M7.73271 4.20694C8.03263 3.92125 8.50737 3.93279 8.79306 4.23271L13.7944 9.48318C14.0703 9.77285 14.0703 10.2281 13.7944 10.5178L8.79306 15.7682C8.50737 16.0681 8.03263 16.0797 7.73271 15.794C7.43279 15.5083 7.42125 15.0336 7.70694 14.7336L12.2155 10.0005L7.70694 5.26729C7.42125 4.96737 7.43279 4.49264 7.73271 4.20694Z",fill:"currentColor"}))}}),Wt=te({name:"More",render(){return r("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},r("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},r("g",{fill:"currentColor","fill-rule":"nonzero"},r("path",{d:"M4,7 C4.55228,7 5,7.44772 5,8 C5,8.55229 4.55228,9 4,9 C3.44772,9 3,8.55229 3,8 C3,7.44772 3.44772,7 4,7 Z M8,7 C8.55229,7 9,7.44772 9,8 C9,8.55229 8.55229,9 8,9 C7.44772,9 7,8.55229 7,8 C7,7.44772 7.44772,7 8,7 Z M12,7 C12.5523,7 13,7.44772 13,8 C13,8.55229 12.5523,9 12,9 C11.4477,9 11,8.55229 11,8 C11,7.44772 11.4477,7 12,7 Z"}))))}}),xn=an("n-popselect"),Dr=F("popselect-menu",` - box-shadow: var(--n-menu-box-shadow); -`),$t={multiple:Boolean,value:{type:[String,Number,Array],default:null},cancelable:Boolean,options:{type:Array,default:()=>[]},size:{type:String,default:"medium"},scrollable:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onMouseenter:Function,onMouseleave:Function,renderLabel:Function,showCheckmark:{type:Boolean,default:void 0},nodeProps:Function,virtualScroll:Boolean,onChange:[Function,Array]},qt=Gn($t),jr=te({name:"PopselectPanel",props:$t,setup(e){const n=Be(xn),{mergedClsPrefixRef:t,inlineThemeDisabled:a}=Xe(e),o=Ke("Popselect","-pop-select",Dr,on,n.props,t),i=R(()=>vn(e.options,zr("value","children")));function g(c,s){const{onUpdateValue:d,"onUpdate:value":f,onChange:b}=e;d&&Z(d,c,s),f&&Z(f,c,s),b&&Z(b,c,s)}function v(c){u(c.key)}function l(c){St(c,"action")||c.preventDefault()}function u(c){const{value:{getNode:s}}=i;if(e.multiple)if(Array.isArray(e.value)){const d=[],f=[];let b=!0;e.value.forEach(P=>{if(P===c){b=!1;return}const y=s(P);y&&(d.push(y.key),f.push(y.rawNode))}),b&&(d.push(c),f.push(s(c).rawNode)),g(d,f)}else{const d=s(c);d&&g([c],[d.rawNode])}else if(e.value===c&&e.cancelable)g(null,null);else{const d=s(c);d&&g(c,d.rawNode);const{"onUpdate:show":f,onUpdateShow:b}=n.props;f&&Z(f,!1),b&&Z(b,!1),n.setShow(!1)}wt(()=>{n.syncPosition()})}Pt(ie(e,"options"),()=>{wt(()=>{n.syncPosition()})});const x=R(()=>{const{self:{menuBoxShadow:c}}=o.value;return{"--n-menu-box-shadow":c}}),m=a?ct("select",void 0,x,n.props):void 0;return{mergedTheme:n.mergedThemeRef,mergedClsPrefix:t,treeMate:i,handleToggle:v,handleMenuMousedown:l,cssVars:a?void 0:x,themeClass:m==null?void 0:m.themeClass,onRender:m==null?void 0:m.onRender}},render(){var e;return(e=this.onRender)===null||e===void 0||e.call(this),r(Mr,{clsPrefix:this.mergedClsPrefix,focusable:!0,nodeProps:this.nodeProps,class:[`${this.mergedClsPrefix}-popselect-menu`,this.themeClass],style:this.cssVars,theme:this.mergedTheme.peers.InternalSelectMenu,themeOverrides:this.mergedTheme.peerOverrides.InternalSelectMenu,multiple:this.multiple,treeMate:this.treeMate,size:this.size,value:this.value,virtualScroll:this.virtualScroll,scrollable:this.scrollable,renderLabel:this.renderLabel,onToggle:this.handleToggle,onMouseenter:this.onMouseenter,onMouseleave:this.onMouseenter,onMousedown:this.handleMenuMousedown,showCheckmark:this.showCheckmark},{header:()=>{var n,t;return((t=(n=this.$slots).header)===null||t===void 0?void 0:t.call(n))||[]},action:()=>{var n,t;return((t=(n=this.$slots).action)===null||t===void 0?void 0:t.call(n))||[]},empty:()=>{var n,t;return((t=(n=this.$slots).empty)===null||t===void 0?void 0:t.call(n))||[]}})}}),Hr=Object.assign(Object.assign(Object.assign(Object.assign({},Ke.props),ln(Et,["showArrow","arrow"])),{placement:Object.assign(Object.assign({},Et.placement),{default:"bottom"}),trigger:{type:String,default:"hover"}}),$t),Wr=te({name:"Popselect",props:Hr,inheritAttrs:!1,__popover__:!0,setup(e){const{mergedClsPrefixRef:n}=Xe(e),t=Ke("Popselect","-popselect",void 0,on,e,n),a=N(null);function o(){var v;(v=a.value)===null||v===void 0||v.syncPosition()}function i(v){var l;(l=a.value)===null||l===void 0||l.setShow(v)}return zt(xn,{props:e,mergedThemeRef:t,syncPosition:o,setShow:i}),Object.assign(Object.assign({},{syncPosition:o,setShow:i}),{popoverInstRef:a,mergedTheme:t})},render(){const{mergedTheme:e}=this,n={theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:{padding:"0"},ref:"popoverInstRef",internalRenderBody:(t,a,o,i,g)=>{const{$attrs:v}=this;return r(jr,Object.assign({},v,{class:[v.class,t],style:[v.style,...o]},Zn(this.$props,qt),{ref:Ar(a),onMouseenter:At([i,v.onMouseenter]),onMouseleave:At([g,v.onMouseleave])}),{header:()=>{var l,u;return(u=(l=this.$slots).header)===null||u===void 0?void 0:u.call(l)},action:()=>{var l,u;return(u=(l=this.$slots).action)===null||u===void 0?void 0:u.call(l)},empty:()=>{var l,u;return(u=(l=this.$slots).empty)===null||u===void 0?void 0:u.call(l)}})}};return r(gn,Object.assign({},ln(this.$props,qt),n,{internalDeactivateImmediately:!0}),{trigger:()=>{var t,a;return(a=(t=this.$slots).default)===null||a===void 0?void 0:a.call(t)}})}});function qr(e,n,t){let a=!1,o=!1,i=1,g=n;if(n===1)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:g,fastBackwardTo:i,items:[{type:"page",label:1,active:e===1,mayBeFastBackward:!1,mayBeFastForward:!1}]};if(n===2)return{hasFastBackward:!1,hasFastForward:!1,fastForwardTo:g,fastBackwardTo:i,items:[{type:"page",label:1,active:e===1,mayBeFastBackward:!1,mayBeFastForward:!1},{type:"page",label:2,active:e===2,mayBeFastBackward:!0,mayBeFastForward:!1}]};const v=1,l=n;let u=e,x=e;const m=(t-5)/2;x+=Math.ceil(m),x=Math.min(Math.max(x,v+t-3),l-2),u-=Math.floor(m),u=Math.max(Math.min(u,l-t+3),v+2);let c=!1,s=!1;u>v+2&&(c=!0),x=v+1&&d.push({type:"page",label:v+1,mayBeFastBackward:!0,mayBeFastForward:!1,active:e===v+1});for(let f=u;f<=x;++f)d.push({type:"page",label:f,mayBeFastBackward:!1,mayBeFastForward:!1,active:e===f});return s?(o=!0,g=x+1,d.push({type:"fast-forward",active:!1,label:void 0,options:Xt(x+1,l-1)})):x===l-2&&d[d.length-1].label!==l-1&&d.push({type:"page",mayBeFastForward:!0,mayBeFastBackward:!1,label:l-1,active:e===l-1}),d[d.length-1].label!==l&&d.push({type:"page",mayBeFastForward:!1,mayBeFastBackward:!1,label:l,active:e===l}),{hasFastBackward:a,hasFastForward:o,fastBackwardTo:i,fastForwardTo:g,items:d}}function Xt(e,n){const t=[];for(let a=e;a<=n;++a)t.push({label:`${a}`,value:a});return t}const Gt=` - background: var(--n-item-color-hover); - color: var(--n-item-text-color-hover); - border: var(--n-item-border-hover); -`,Zt=[j("button",` - background: var(--n-button-color-hover); - border: var(--n-button-border-hover); - color: var(--n-button-icon-color-hover); - `)],Xr=F("pagination",` - display: flex; - vertical-align: middle; - font-size: var(--n-item-font-size); - flex-wrap: nowrap; -`,[F("pagination-prefix",` - display: flex; - align-items: center; - margin: var(--n-prefix-margin); - `),F("pagination-suffix",` - display: flex; - align-items: center; - margin: var(--n-suffix-margin); - `),G("> *:not(:first-child)",` - margin: var(--n-item-margin); - `),F("select",` - width: var(--n-select-width); - `),G("&.transition-disabled",[F("pagination-item","transition: none!important;")]),F("pagination-quick-jumper",` - white-space: nowrap; - display: flex; - color: var(--n-jumper-text-color); - transition: color .3s var(--n-bezier); - align-items: center; - font-size: var(--n-jumper-font-size); - `,[F("input",` - margin: var(--n-input-margin); - width: var(--n-input-width); - `)]),F("pagination-item",` - position: relative; - cursor: pointer; - user-select: none; - -webkit-user-select: none; - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; - min-width: var(--n-item-size); - height: var(--n-item-size); - padding: var(--n-item-padding); - background-color: var(--n-item-color); - color: var(--n-item-text-color); - border-radius: var(--n-item-border-radius); - border: var(--n-item-border); - fill: var(--n-button-icon-color); - transition: - color .3s var(--n-bezier), - border-color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - fill .3s var(--n-bezier); - `,[j("button",` - background: var(--n-button-color); - color: var(--n-button-icon-color); - border: var(--n-button-border); - padding: 0; - `,[F("base-icon",` - font-size: var(--n-button-icon-size); - `)]),at("disabled",[j("hover",Gt,Zt),G("&:hover",Gt,Zt),G("&:active",` - background: var(--n-item-color-pressed); - color: var(--n-item-text-color-pressed); - border: var(--n-item-border-pressed); - `,[j("button",` - background: var(--n-button-color-pressed); - border: var(--n-button-border-pressed); - color: var(--n-button-icon-color-pressed); - `)]),j("active",` - background: var(--n-item-color-active); - color: var(--n-item-text-color-active); - border: var(--n-item-border-active); - `,[G("&:hover",` - background: var(--n-item-color-active-hover); - `)])]),j("disabled",` - cursor: not-allowed; - color: var(--n-item-text-color-disabled); - `,[j("active, button",` - background-color: var(--n-item-color-disabled); - border: var(--n-item-border-disabled); - `)])]),j("disabled",` - cursor: not-allowed; - `,[F("pagination-quick-jumper",` - color: var(--n-jumper-text-color-disabled); - `)]),j("simple",` - display: flex; - align-items: center; - flex-wrap: nowrap; - `,[F("pagination-quick-jumper",[F("input",` - margin: 0; - `)])])]),Gr=Object.assign(Object.assign({},Ke.props),{simple:Boolean,page:Number,defaultPage:{type:Number,default:1},itemCount:Number,pageCount:Number,defaultPageCount:{type:Number,default:1},showSizePicker:Boolean,pageSize:Number,defaultPageSize:Number,pageSizes:{type:Array,default(){return[10]}},showQuickJumper:Boolean,size:{type:String,default:"medium"},disabled:Boolean,pageSlot:{type:Number,default:9},selectProps:Object,prev:Function,next:Function,goto:Function,prefix:Function,suffix:Function,label:Function,displayOrder:{type:Array,default:["pages","size-picker","quick-jumper"]},to:Or.propTo,"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],onPageSizeChange:[Function,Array],onChange:[Function,Array]}),Zr=te({name:"Pagination",props:Gr,setup(e){const{mergedComponentPropsRef:n,mergedClsPrefixRef:t,inlineThemeDisabled:a,mergedRtlRef:o}=Xe(e),i=Ke("Pagination","-pagination",Xr,Jn,e,t),{localeRef:g}=pn("Pagination"),v=N(null),l=N(e.defaultPage),x=N((()=>{const{defaultPageSize:p}=e;if(p!==void 0)return p;const E=e.pageSizes[0];return typeof E=="number"?E:E.value||10})()),m=Qe(ie(e,"page"),l),c=Qe(ie(e,"pageSize"),x),s=R(()=>{const{itemCount:p}=e;if(p!==void 0)return Math.max(1,Math.ceil(p/c.value));const{pageCount:E}=e;return E!==void 0?Math.max(E,1):1}),d=N("");tt(()=>{e.simple,d.value=String(m.value)});const f=N(!1),b=N(!1),P=N(!1),y=N(!1),C=()=>{e.disabled||(f.value=!0,X())},K=()=>{e.disabled||(f.value=!1,X())},k=()=>{b.value=!0,X()},z=()=>{b.value=!1,X()},_=p=>{Q(p)},T=R(()=>qr(m.value,s.value,e.pageSlot));tt(()=>{T.value.hasFastBackward?T.value.hasFastForward||(f.value=!1,P.value=!1):(b.value=!1,y.value=!1)});const S=R(()=>{const p=g.value.selectionSuffix;return e.pageSizes.map(E=>typeof E=="number"?{label:`${E} / ${p}`,value:E}:E)}),M=R(()=>{var p,E;return((E=(p=n==null?void 0:n.value)===null||p===void 0?void 0:p.Pagination)===null||E===void 0?void 0:E.inputSize)||It(e.size)}),H=R(()=>{var p,E;return((E=(p=n==null?void 0:n.value)===null||p===void 0?void 0:p.Pagination)===null||E===void 0?void 0:E.selectSize)||It(e.size)}),I=R(()=>(m.value-1)*c.value),V=R(()=>{const p=m.value*c.value-1,{itemCount:E}=e;return E!==void 0&&p>E-1?E-1:p}),D=R(()=>{const{itemCount:p}=e;return p!==void 0?p:(e.pageCount||1)*c.value}),W=sn("Pagination",o,t),X=()=>{wt(()=>{var p;const{value:E}=v;E&&(E.classList.add("transition-disabled"),(p=v.value)===null||p===void 0||p.offsetWidth,E.classList.remove("transition-disabled"))})};function Q(p){if(p===m.value)return;const{"onUpdate:page":E,onUpdatePage:me,onChange:A,simple:ee}=e;E&&Z(E,p),me&&Z(me,p),A&&Z(A,p),l.value=p,ee&&(d.value=String(p))}function ae(p){if(p===c.value)return;const{"onUpdate:pageSize":E,onUpdatePageSize:me,onPageSizeChange:A}=e;E&&Z(E,p),me&&Z(me,p),A&&Z(A,p),x.value=p,s.value{m.value,c.value,X()});const de=R(()=>{const{size:p}=e,{self:{buttonBorder:E,buttonBorderHover:me,buttonBorderPressed:A,buttonIconColor:ee,buttonIconColorHover:Fe,buttonIconColorPressed:ge,itemTextColor:ve,itemTextColorHover:De,itemTextColorPressed:je,itemTextColorActive:Re,itemTextColorDisabled:ke,itemColor:Ne,itemColorHover:Ie,itemColorPressed:He,itemColorActive:Ge,itemColorActiveHover:$e,itemColorDisabled:fe,itemBorder:Ue,itemBorderHover:Oe,itemBorderPressed:B,itemBorderActive:L,itemBorderDisabled:re,itemBorderRadius:w,jumperTextColor:Y,jumperTextColorDisabled:se,buttonColor:_e,buttonColorHover:xe,buttonColorPressed:Se,[ce("itemPadding",p)]:Ae,[ce("itemMargin",p)]:Ye,[ce("inputWidth",p)]:Ve,[ce("selectWidth",p)]:Ze,[ce("inputMargin",p)]:We,[ce("selectMargin",p)]:Pe,[ce("jumperFontSize",p)]:Je,[ce("prefixMargin",p)]:pe,[ce("suffixMargin",p)]:Ce,[ce("itemSize",p)]:ft,[ce("buttonIconSize",p)]:ht,[ce("itemFontSize",p)]:vt,[`${ce("itemMargin",p)}Rtl`]:mt,[`${ce("inputMargin",p)}Rtl`]:gt},common:{cubicBezierEaseInOut:pt}}=i.value;return{"--n-prefix-margin":pe,"--n-suffix-margin":Ce,"--n-item-font-size":vt,"--n-select-width":Ze,"--n-select-margin":Pe,"--n-input-width":Ve,"--n-input-margin":We,"--n-input-margin-rtl":gt,"--n-item-size":ft,"--n-item-text-color":ve,"--n-item-text-color-disabled":ke,"--n-item-text-color-hover":De,"--n-item-text-color-active":Re,"--n-item-text-color-pressed":je,"--n-item-color":Ne,"--n-item-color-hover":Ie,"--n-item-color-disabled":fe,"--n-item-color-active":Ge,"--n-item-color-active-hover":$e,"--n-item-color-pressed":He,"--n-item-border":Ue,"--n-item-border-hover":Oe,"--n-item-border-disabled":re,"--n-item-border-active":L,"--n-item-border-pressed":B,"--n-item-padding":Ae,"--n-item-border-radius":w,"--n-bezier":pt,"--n-jumper-font-size":Je,"--n-jumper-text-color":Y,"--n-jumper-text-color-disabled":se,"--n-item-margin":Ye,"--n-item-margin-rtl":mt,"--n-button-icon-size":ht,"--n-button-icon-color":ee,"--n-button-icon-color-hover":Fe,"--n-button-icon-color-pressed":ge,"--n-button-color-hover":xe,"--n-button-color":_e,"--n-button-color-pressed":Se,"--n-button-border":E,"--n-button-border-hover":me,"--n-button-border-pressed":A}}),ne=a?ct("pagination",R(()=>{let p="";const{size:E}=e;return p+=E[0],p}),de,e):void 0;return{rtlEnabled:W,mergedClsPrefix:t,locale:g,selfRef:v,mergedPage:m,pageItems:R(()=>T.value.items),mergedItemCount:D,jumperValue:d,pageSizeOptions:S,mergedPageSize:c,inputSize:M,selectSize:H,mergedTheme:i,mergedPageCount:s,startIndex:I,endIndex:V,showFastForwardMenu:P,showFastBackwardMenu:y,fastForwardActive:f,fastBackwardActive:b,handleMenuSelect:_,handleFastForwardMouseenter:C,handleFastForwardMouseleave:K,handleFastBackwardMouseenter:k,handleFastBackwardMouseleave:z,handleJumperInput:le,handleBackwardClick:h,handleForwardClick:ue,handlePageItemClick:he,handleSizePickerChange:$,handleQuickJumperChange:J,cssVars:a?void 0:de,themeClass:ne==null?void 0:ne.themeClass,onRender:ne==null?void 0:ne.onRender}},render(){const{$slots:e,mergedClsPrefix:n,disabled:t,cssVars:a,mergedPage:o,mergedPageCount:i,pageItems:g,showSizePicker:v,showQuickJumper:l,mergedTheme:u,locale:x,inputSize:m,selectSize:c,mergedPageSize:s,pageSizeOptions:d,jumperValue:f,simple:b,prev:P,next:y,prefix:C,suffix:K,label:k,goto:z,handleJumperInput:_,handleSizePickerChange:T,handleBackwardClick:S,handlePageItemClick:M,handleForwardClick:H,handleQuickJumperChange:I,onRender:V}=this;V==null||V();const D=e.prefix||C,W=e.suffix||K,X=P||e.prev,Q=y||e.next,ae=k||e.label;return r("div",{ref:"selfRef",class:[`${n}-pagination`,this.themeClass,this.rtlEnabled&&`${n}-pagination--rtl`,t&&`${n}-pagination--disabled`,b&&`${n}-pagination--simple`],style:a},D?r("div",{class:`${n}-pagination-prefix`},D({page:o,pageSize:s,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null,this.displayOrder.map(ue=>{switch(ue){case"pages":return r(ot,null,r("div",{class:[`${n}-pagination-item`,!X&&`${n}-pagination-item--button`,(o<=1||o>i||t)&&`${n}-pagination-item--disabled`],onClick:S},X?X({page:o,pageSize:s,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount}):r(Ee,{clsPrefix:n},{default:()=>this.rtlEnabled?r(Ht,null):r(Vt,null)})),b?r(ot,null,r("div",{class:`${n}-pagination-quick-jumper`},r(rt,{value:f,onUpdateValue:_,size:m,placeholder:"",disabled:t,theme:u.peers.Input,themeOverrides:u.peerOverrides.Input,onChange:I}))," / ",i):g.map((h,U)=>{let O,$,q;const{type:J}=h;switch(J){case"page":const le=h.label;ae?O=ae({type:"page",node:le,active:h.active}):O=le;break;case"fast-forward":const de=this.fastForwardActive?r(Ee,{clsPrefix:n},{default:()=>this.rtlEnabled?r(Dt,null):r(jt,null)}):r(Ee,{clsPrefix:n},{default:()=>r(Wt,null)});ae?O=ae({type:"fast-forward",node:de,active:this.fastForwardActive||this.showFastForwardMenu}):O=de,$=this.handleFastForwardMouseenter,q=this.handleFastForwardMouseleave;break;case"fast-backward":const ne=this.fastBackwardActive?r(Ee,{clsPrefix:n},{default:()=>this.rtlEnabled?r(jt,null):r(Dt,null)}):r(Ee,{clsPrefix:n},{default:()=>r(Wt,null)});ae?O=ae({type:"fast-backward",node:ne,active:this.fastBackwardActive||this.showFastBackwardMenu}):O=ne,$=this.handleFastBackwardMouseenter,q=this.handleFastBackwardMouseleave;break}const he=r("div",{key:U,class:[`${n}-pagination-item`,h.active&&`${n}-pagination-item--active`,J!=="page"&&(J==="fast-backward"&&this.showFastBackwardMenu||J==="fast-forward"&&this.showFastForwardMenu)&&`${n}-pagination-item--hover`,t&&`${n}-pagination-item--disabled`,J==="page"&&`${n}-pagination-item--clickable`],onClick:()=>{M(h)},onMouseenter:$,onMouseleave:q},O);if(J==="page"&&!h.mayBeFastBackward&&!h.mayBeFastForward)return he;{const le=h.type==="page"?h.mayBeFastBackward?"fast-backward":"fast-forward":h.type;return r(Wr,{to:this.to,key:le,disabled:t,trigger:"hover",virtualScroll:!0,style:{width:"60px"},theme:u.peers.Popselect,themeOverrides:u.peerOverrides.Popselect,builtinThemeOverrides:{peers:{InternalSelectMenu:{height:"calc(var(--n-option-height) * 4.6)"}}},nodeProps:()=>({style:{justifyContent:"center"}}),show:J==="page"?!1:J==="fast-backward"?this.showFastBackwardMenu:this.showFastForwardMenu,onUpdateShow:de=>{J!=="page"&&(de?J==="fast-backward"?this.showFastBackwardMenu=de:this.showFastForwardMenu=de:(this.showFastBackwardMenu=!1,this.showFastForwardMenu=!1))},options:h.type!=="page"?h.options:[],onUpdateValue:this.handleMenuSelect,scrollable:!0,showCheckmark:!1},{default:()=>he})}}),r("div",{class:[`${n}-pagination-item`,!Q&&`${n}-pagination-item--button`,{[`${n}-pagination-item--disabled`]:o<1||o>=i||t}],onClick:H},Q?Q({page:o,pageSize:s,pageCount:i,itemCount:this.mergedItemCount,startIndex:this.startIndex,endIndex:this.endIndex}):r(Ee,{clsPrefix:n},{default:()=>this.rtlEnabled?r(Vt,null):r(Ht,null)})));case"size-picker":return!b&&v?r(mn,Object.assign({consistentMenuWidth:!1,placeholder:"",showCheckmark:!1,to:this.to},this.selectProps,{size:c,options:d,value:s,disabled:t,theme:u.peers.Select,themeOverrides:u.peerOverrides.Select,onUpdateValue:T})):null;case"quick-jumper":return!b&&l?r("div",{class:`${n}-pagination-quick-jumper`},z?z():Mt(this.$slots.goto,()=>[x.goto]),r(rt,{value:f,onUpdateValue:_,size:m,placeholder:"",disabled:t,theme:u.peers.Input,themeOverrides:u.peerOverrides.Input,onChange:I})):null;default:return null}}),W?r("div",{class:`${n}-pagination-suffix`},W({page:o,pageSize:s,pageCount:i,startIndex:this.startIndex,endIndex:this.endIndex,itemCount:this.mergedItemCount})):null)}}),Jr=te({name:"PerformantEllipsis",props:wr,inheritAttrs:!1,setup(e,{attrs:n,slots:t}){const a=N(!1),o=Qn();return Yn("-ellipsis",Rr,o),{mouseEntered:a,renderTrigger:()=>{const{lineClamp:g}=e,v=o.value;return r("span",Object.assign({},Ut(n,{class:[`${v}-ellipsis`,g!==void 0?kr(v):void 0,e.expandTrigger==="click"?Sr(v,"pointer"):void 0],style:g===void 0?{textOverflow:"ellipsis"}:{"-webkit-line-clamp":g}}),{onMouseenter:()=>{a.value=!0}}),g?t:r("span",null,t))}}},render(){return this.mouseEntered?r(Bt,Ut({},this.$attrs,this.$props),this.$slots):this.renderTrigger()}}),Qr=te({name:"DataTableRenderSorter",props:{render:{type:Function,required:!0},order:{type:[String,Boolean],default:!1}},render(){const{render:e,order:n}=this;return e({order:n})}}),Yr=Object.assign(Object.assign({},Ke.props),{onUnstableColumnResize:Function,pagination:{type:[Object,Boolean],default:!1},paginateSinglePage:{type:Boolean,default:!0},minHeight:[Number,String],maxHeight:[Number,String],columns:{type:Array,default:()=>[]},rowClassName:[String,Function],rowProps:Function,rowKey:Function,summary:[Function],data:{type:Array,default:()=>[]},loading:Boolean,bordered:{type:Boolean,default:void 0},bottomBordered:{type:Boolean,default:void 0},striped:Boolean,scrollX:[Number,String],defaultCheckedRowKeys:{type:Array,default:()=>[]},checkedRowKeys:Array,singleLine:{type:Boolean,default:!0},singleColumn:Boolean,size:{type:String,default:"medium"},remote:Boolean,defaultExpandedRowKeys:{type:Array,default:[]},defaultExpandAll:Boolean,expandedRowKeys:Array,stickyExpandedRows:Boolean,virtualScroll:Boolean,tableLayout:{type:String,default:"auto"},allowCheckingNotLoaded:Boolean,cascade:{type:Boolean,default:!0},childrenKey:{type:String,default:"children"},indent:{type:Number,default:16},flexHeight:Boolean,summaryPlacement:{type:String,default:"bottom"},paginationBehaviorOnFilter:{type:String,default:"current"},scrollbarProps:Object,renderCell:Function,renderExpandIcon:Function,spinProps:{type:Object,default:{}},onLoad:Function,"onUpdate:page":[Function,Array],onUpdatePage:[Function,Array],"onUpdate:pageSize":[Function,Array],onUpdatePageSize:[Function,Array],"onUpdate:sorter":[Function,Array],onUpdateSorter:[Function,Array],"onUpdate:filters":[Function,Array],onUpdateFilters:[Function,Array],"onUpdate:checkedRowKeys":[Function,Array],onUpdateCheckedRowKeys:[Function,Array],"onUpdate:expandedRowKeys":[Function,Array],onUpdateExpandedRowKeys:[Function,Array],onScroll:Function,onPageChange:[Function,Array],onPageSizeChange:[Function,Array],onSorterChange:[Function,Array],onFiltersChange:[Function,Array],onCheckedRowKeysChange:[Function,Array]}),Te=an("n-data-table"),ea=te({name:"SortIcon",props:{column:{type:Object,required:!0}},setup(e){const{mergedComponentPropsRef:n}=Xe(),{mergedSortStateRef:t,mergedClsPrefixRef:a}=Be(Te),o=R(()=>t.value.find(l=>l.columnKey===e.column.key)),i=R(()=>o.value!==void 0),g=R(()=>{const{value:l}=o;return l&&i.value?l.order:!1}),v=R(()=>{var l,u;return((u=(l=n==null?void 0:n.value)===null||l===void 0?void 0:l.DataTable)===null||u===void 0?void 0:u.renderSorter)||e.column.renderSorter});return{mergedClsPrefix:a,active:i,mergedSortOrder:g,mergedRenderSorter:v}},render(){const{mergedRenderSorter:e,mergedSortOrder:n,mergedClsPrefix:t}=this,{renderSorterIcon:a}=this.column;return e?r(Qr,{render:e,order:n}):r("span",{class:[`${t}-data-table-sorter`,n==="ascend"&&`${t}-data-table-sorter--asc`,n==="descend"&&`${t}-data-table-sorter--desc`]},a?a({order:n}):r(Ee,{clsPrefix:t},{default:()=>r(Ir,null)}))}}),ta=te({name:"DataTableRenderFilter",props:{render:{type:Function,required:!0},active:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},render(){const{render:e,active:n,show:t}=this;return e({active:n,show:t})}}),na=F("radio-group",` - display: inline-block; - font-size: var(--n-font-size); -`,[ye("splitor",` - display: inline-block; - vertical-align: bottom; - width: 1px; - transition: - background-color .3s var(--n-bezier), - opacity .3s var(--n-bezier); - background: var(--n-button-border-color); - `,[j("checked",{backgroundColor:"var(--n-button-border-color-active)"}),j("disabled",{opacity:"var(--n-opacity-disabled)"})]),j("button-group",` - white-space: nowrap; - height: var(--n-height); - line-height: var(--n-height); - `,[F("radio-button",{height:"var(--n-height)",lineHeight:"var(--n-height)"}),ye("splitor",{height:"var(--n-height)"})]),F("radio-button",` - vertical-align: bottom; - outline: none; - position: relative; - user-select: none; - -webkit-user-select: none; - display: inline-block; - box-sizing: border-box; - padding-left: 14px; - padding-right: 14px; - white-space: nowrap; - transition: - background-color .3s var(--n-bezier), - opacity .3s var(--n-bezier), - border-color .3s var(--n-bezier), - color .3s var(--n-bezier); - background: var(--n-button-color); - color: var(--n-button-text-color); - border-top: 1px solid var(--n-button-border-color); - border-bottom: 1px solid var(--n-button-border-color); - `,[F("radio-input",` - pointer-events: none; - position: absolute; - border: 0; - border-radius: inherit; - left: 0; - right: 0; - top: 0; - bottom: 0; - opacity: 0; - z-index: 1; - `),ye("state-border",` - z-index: 1; - pointer-events: none; - position: absolute; - box-shadow: var(--n-button-box-shadow); - transition: box-shadow .3s var(--n-bezier); - left: -1px; - bottom: -1px; - right: -1px; - top: -1px; - `),G("&:first-child",` - border-top-left-radius: var(--n-button-border-radius); - border-bottom-left-radius: var(--n-button-border-radius); - border-left: 1px solid var(--n-button-border-color); - `,[ye("state-border",` - border-top-left-radius: var(--n-button-border-radius); - border-bottom-left-radius: var(--n-button-border-radius); - `)]),G("&:last-child",` - border-top-right-radius: var(--n-button-border-radius); - border-bottom-right-radius: var(--n-button-border-radius); - border-right: 1px solid var(--n-button-border-color); - `,[ye("state-border",` - border-top-right-radius: var(--n-button-border-radius); - border-bottom-right-radius: var(--n-button-border-radius); - `)]),at("disabled",` - cursor: pointer; - `,[G("&:hover",[ye("state-border",` - transition: box-shadow .3s var(--n-bezier); - box-shadow: var(--n-button-box-shadow-hover); - `),at("checked",{color:"var(--n-button-text-color-hover)"})]),j("focus",[G("&:not(:active)",[ye("state-border",{boxShadow:"var(--n-button-box-shadow-focus)"})])])]),j("checked",` - background: var(--n-button-color-active); - color: var(--n-button-text-color-active); - border-color: var(--n-button-border-color-active); - `),j("disabled",` - cursor: not-allowed; - opacity: var(--n-opacity-disabled); - `)])]);function ra(e,n,t){var a;const o=[];let i=!1;for(let g=0;g{const{value:k}=t,{common:{cubicBezierEaseInOut:z},self:{buttonBorderColor:_,buttonBorderColorActive:T,buttonBorderRadius:S,buttonBoxShadow:M,buttonBoxShadowFocus:H,buttonBoxShadowHover:I,buttonColor:V,buttonColorActive:D,buttonTextColor:W,buttonTextColorActive:X,buttonTextColorHover:Q,opacityDisabled:ae,[ce("buttonHeight",k)]:ue,[ce("fontSize",k)]:h}}=m.value;return{"--n-font-size":h,"--n-bezier":z,"--n-button-border-color":_,"--n-button-border-color-active":T,"--n-button-border-radius":S,"--n-button-box-shadow":M,"--n-button-box-shadow-focus":H,"--n-button-box-shadow-hover":I,"--n-button-color":V,"--n-button-color-active":D,"--n-button-text-color":W,"--n-button-text-color-hover":Q,"--n-button-text-color-active":X,"--n-height":ue,"--n-opacity-disabled":ae}}),K=u?ct("radio-group",R(()=>t.value[0]),C,e):void 0;return{selfElRef:n,rtlEnabled:y,mergedClsPrefix:l,mergedValue:d,handleFocusout:P,handleFocusin:b,cssVars:u?void 0:C,themeClass:K==null?void 0:K.themeClass,onRender:K==null?void 0:K.onRender}},render(){var e;const{mergedValue:n,mergedClsPrefix:t,handleFocusin:a,handleFocusout:o}=this,{children:i,isButtonGroup:g}=ra(nr(Fr(this)),n,t);return(e=this.onRender)===null||e===void 0||e.call(this),r("div",{onFocusin:a,onFocusout:o,ref:"selfElRef",class:[`${t}-radio-group`,this.rtlEnabled&&`${t}-radio-group--rtl`,this.themeClass,g&&`${t}-radio-group--button-group`],style:this.cssVars},i)}}),Cn=40,wn=40;function Jt(e){if(e.type==="selection")return e.width===void 0?Cn:bt(e.width);if(e.type==="expand")return e.width===void 0?wn:bt(e.width);if(!("children"in e))return typeof e.width=="string"?bt(e.width):e.width}function ia(e){var n,t;if(e.type==="selection")return Me((n=e.width)!==null&&n!==void 0?n:Cn);if(e.type==="expand")return Me((t=e.width)!==null&&t!==void 0?t:wn);if(!("children"in e))return Me(e.width)}function ze(e){return e.type==="selection"?"__n_selection__":e.type==="expand"?"__n_expand__":e.key}function Qt(e){return e&&(typeof e=="object"?Object.assign({},e):e)}function la(e){return e==="ascend"?1:e==="descend"?-1:0}function sa(e,n,t){return t!==void 0&&(e=Math.min(e,typeof t=="number"?t:parseFloat(t))),n!==void 0&&(e=Math.max(e,typeof n=="number"?n:parseFloat(n))),e}function da(e,n){if(n!==void 0)return{width:n,minWidth:n,maxWidth:n};const t=ia(e),{minWidth:a,maxWidth:o}=e;return{width:t,minWidth:Me(a)||t,maxWidth:Me(o)}}function ua(e,n,t){return typeof t=="function"?t(e,n):t||""}function yt(e){return e.filterOptionValues!==void 0||e.filterOptionValue===void 0&&e.defaultFilterOptionValues!==void 0}function xt(e){return"children"in e?!1:!!e.sorter}function Rn(e){return"children"in e&&e.children.length?!1:!!e.resizable}function Yt(e){return"children"in e?!1:!!e.filter&&(!!e.filterOptions||!!e.renderFilterMenu)}function en(e){if(e){if(e==="descend")return"ascend"}else return"descend";return!1}function ca(e,n){return e.sorter===void 0?null:n===null||n.columnKey!==e.key?{columnKey:e.key,sorter:e.sorter,order:en(!1)}:Object.assign(Object.assign({},n),{order:en(n.order)})}function kn(e,n){return n.find(t=>t.columnKey===e.key&&t.order)!==void 0}const fa=te({name:"DataTableFilterMenu",props:{column:{type:Object,required:!0},radioGroupName:{type:String,required:!0},multiple:{type:Boolean,required:!0},value:{type:[Array,String,Number],default:null},options:{type:Array,required:!0},onConfirm:{type:Function,required:!0},onClear:{type:Function,required:!0},onChange:{type:Function,required:!0}},setup(e){const{mergedClsPrefixRef:n,mergedThemeRef:t,localeRef:a}=Be(Te),o=N(e.value),i=R(()=>{const{value:m}=o;return Array.isArray(m)?m:null}),g=R(()=>{const{value:m}=o;return yt(e.column)?Array.isArray(m)&&m.length&&m[0]||null:Array.isArray(m)?null:m});function v(m){e.onChange(m)}function l(m){e.multiple&&Array.isArray(m)?o.value=m:yt(e.column)&&!Array.isArray(m)?o.value=[m]:o.value=m}function u(){v(o.value),e.onConfirm()}function x(){e.multiple||yt(e.column)?v([]):v(null),e.onClear()}return{mergedClsPrefix:n,mergedTheme:t,locale:a,checkboxGroupValue:i,radioGroupValue:g,handleChange:l,handleConfirmClick:u,handleClearClick:x}},render(){const{mergedTheme:e,locale:n,mergedClsPrefix:t}=this;return r("div",{class:`${t}-data-table-filter-menu`},r(dn,null,{default:()=>{const{checkboxGroupValue:a,handleChange:o}=this;return this.multiple?r(Er,{value:a,class:`${t}-data-table-filter-menu__group`,onUpdateValue:o},{default:()=>this.options.map(i=>r(Tt,{key:i.value,theme:e.peers.Checkbox,themeOverrides:e.peerOverrides.Checkbox,value:i.value},{default:()=>i.label}))}):r(oa,{name:this.radioGroupName,class:`${t}-data-table-filter-menu__group`,value:this.radioGroupValue,onUpdateValue:this.handleChange},{default:()=>this.options.map(i=>r(bn,{key:i.value,value:i.value,theme:e.peers.Radio,themeOverrides:e.peerOverrides.Radio},{default:()=>i.label}))})}}),r("div",{class:`${t}-data-table-filter-menu__action`},r(it,{size:"tiny",theme:e.peers.Button,themeOverrides:e.peerOverrides.Button,onClick:this.handleClearClick},{default:()=>n.clear}),r(it,{theme:e.peers.Button,themeOverrides:e.peerOverrides.Button,type:"primary",size:"tiny",onClick:this.handleConfirmClick},{default:()=>n.confirm})))}});function ha(e,n,t){const a=Object.assign({},e);return a[n]=t,a}const va=te({name:"DataTableFilterButton",props:{column:{type:Object,required:!0},options:{type:Array,default:()=>[]}},setup(e){const{mergedComponentPropsRef:n}=Xe(),{mergedThemeRef:t,mergedClsPrefixRef:a,mergedFilterStateRef:o,filterMenuCssVarsRef:i,paginationBehaviorOnFilterRef:g,doUpdatePage:v,doUpdateFilters:l}=Be(Te),u=N(!1),x=o,m=R(()=>e.column.filterMultiple!==!1),c=R(()=>{const y=x.value[e.column.key];if(y===void 0){const{value:C}=m;return C?[]:null}return y}),s=R(()=>{const{value:y}=c;return Array.isArray(y)?y.length>0:y!==null}),d=R(()=>{var y,C;return((C=(y=n==null?void 0:n.value)===null||y===void 0?void 0:y.DataTable)===null||C===void 0?void 0:C.renderFilter)||e.column.renderFilter});function f(y){const C=ha(x.value,e.column.key,y);l(C,e.column),g.value==="first"&&v(1)}function b(){u.value=!1}function P(){u.value=!1}return{mergedTheme:t,mergedClsPrefix:a,active:s,showPopover:u,mergedRenderFilter:d,filterMultiple:m,mergedFilterValue:c,filterMenuCssVars:i,handleFilterChange:f,handleFilterMenuConfirm:P,handleFilterMenuCancel:b}},render(){const{mergedTheme:e,mergedClsPrefix:n,handleFilterMenuCancel:t}=this;return r(gn,{show:this.showPopover,onUpdateShow:a=>this.showPopover=a,trigger:"click",theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,placement:"bottom",style:{padding:0}},{trigger:()=>{const{mergedRenderFilter:a}=this;if(a)return r(ta,{"data-data-table-filter":!0,render:a,active:this.active,show:this.showPopover});const{renderFilterIcon:o}=this.column;return r("div",{"data-data-table-filter":!0,class:[`${n}-data-table-filter`,{[`${n}-data-table-filter--active`]:this.active,[`${n}-data-table-filter--show`]:this.showPopover}]},o?o({active:this.active,show:this.showPopover}):r(Ee,{clsPrefix:n},{default:()=>r(Vr,null)}))},default:()=>{const{renderFilterMenu:a}=this.column;return a?a({hide:t}):r(fa,{style:this.filterMenuCssVars,radioGroupName:String(this.column.key),multiple:this.filterMultiple,value:this.mergedFilterValue,options:this.options,column:this.column,onChange:this.handleFilterChange,onClear:this.handleFilterMenuCancel,onConfirm:this.handleFilterMenuConfirm})}})}}),ma=te({name:"ColumnResizeButton",props:{onResizeStart:Function,onResize:Function,onResizeEnd:Function},setup(e){const{mergedClsPrefixRef:n}=Be(Te),t=N(!1);let a=0;function o(l){return l.clientX}function i(l){var u;l.preventDefault();const x=t.value;a=o(l),t.value=!0,x||(Ot("mousemove",window,g),Ot("mouseup",window,v),(u=e.onResizeStart)===null||u===void 0||u.call(e))}function g(l){var u;(u=e.onResize)===null||u===void 0||u.call(e,o(l)-a)}function v(){var l;t.value=!1,(l=e.onResizeEnd)===null||l===void 0||l.call(e),st("mousemove",window,g),st("mouseup",window,v)}return rr(()=>{st("mousemove",window,g),st("mouseup",window,v)}),{mergedClsPrefix:n,active:t,handleMousedown:i}},render(){const{mergedClsPrefix:e}=this;return r("span",{"data-data-table-resizable":!0,class:[`${e}-data-table-resize-button`,this.active&&`${e}-data-table-resize-button--active`],onMousedown:this.handleMousedown})}}),Sn="_n_all__",Fn="_n_none__";function ga(e,n,t,a){return e?o=>{for(const i of e)switch(o){case Sn:t(!0);return;case Fn:a(!0);return;default:if(typeof i=="object"&&i.key===o){i.onSelect(n.value);return}}}:()=>{}}function pa(e,n){return e?e.map(t=>{switch(t){case"all":return{label:n.checkTableAll,key:Sn};case"none":return{label:n.uncheckTableAll,key:Fn};default:return t}}):[]}const ba=te({name:"DataTableSelectionMenu",props:{clsPrefix:{type:String,required:!0}},setup(e){const{props:n,localeRef:t,checkOptionsRef:a,rawPaginatedDataRef:o,doCheckAll:i,doUncheckAll:g}=Be(Te),v=R(()=>ga(a.value,o,i,g)),l=R(()=>pa(a.value,t.value));return()=>{var u,x,m,c;const{clsPrefix:s}=e;return r(yn,{theme:(x=(u=n.theme)===null||u===void 0?void 0:u.peers)===null||x===void 0?void 0:x.Dropdown,themeOverrides:(c=(m=n.themeOverrides)===null||m===void 0?void 0:m.peers)===null||c===void 0?void 0:c.Dropdown,options:l.value,onSelect:v.value},{default:()=>r(Ee,{clsPrefix:s,class:`${s}-data-table-check-extra`},{default:()=>r(Br,null)})})}}});function Ct(e){return typeof e.title=="function"?e.title(e):e.title}const Pn=te({name:"DataTableHeader",props:{discrete:{type:Boolean,default:!0}},setup(){const{mergedClsPrefixRef:e,scrollXRef:n,fixedColumnLeftMapRef:t,fixedColumnRightMapRef:a,mergedCurrentPageRef:o,allRowsCheckedRef:i,someRowsCheckedRef:g,rowsRef:v,colsRef:l,mergedThemeRef:u,checkOptionsRef:x,mergedSortStateRef:m,componentId:c,mergedTableLayoutRef:s,headerCheckboxDisabledRef:d,onUnstableColumnResize:f,doUpdateResizableWidth:b,handleTableHeaderScroll:P,deriveNextSorter:y,doUncheckAll:C,doCheckAll:K}=Be(Te),k=N({});function z(I){const V=k.value[I];return V==null?void 0:V.getBoundingClientRect().width}function _(){i.value?C():K()}function T(I,V){if(St(I,"dataTableFilter")||St(I,"dataTableResizable")||!xt(V))return;const D=m.value.find(X=>X.columnKey===V.key)||null,W=ca(V,D);y(W)}const S=new Map;function M(I){S.set(I.key,z(I.key))}function H(I,V){const D=S.get(I.key);if(D===void 0)return;const W=D+V,X=sa(W,I.minWidth,I.maxWidth);f(W,X,I,z),b(I,X)}return{cellElsRef:k,componentId:c,mergedSortState:m,mergedClsPrefix:e,scrollX:n,fixedColumnLeftMap:t,fixedColumnRightMap:a,currentPage:o,allRowsChecked:i,someRowsChecked:g,rows:v,cols:l,mergedTheme:u,checkOptions:x,mergedTableLayout:s,headerCheckboxDisabled:d,handleCheckboxUpdateChecked:_,handleColHeaderClick:T,handleTableHeaderScroll:P,handleColumnResizeStart:M,handleColumnResize:H}},render(){const{cellElsRef:e,mergedClsPrefix:n,fixedColumnLeftMap:t,fixedColumnRightMap:a,currentPage:o,allRowsChecked:i,someRowsChecked:g,rows:v,cols:l,mergedTheme:u,checkOptions:x,componentId:m,discrete:c,mergedTableLayout:s,headerCheckboxDisabled:d,mergedSortState:f,handleColHeaderClick:b,handleCheckboxUpdateChecked:P,handleColumnResizeStart:y,handleColumnResize:C}=this,K=r("thead",{class:`${n}-data-table-thead`,"data-n-id":m},v.map(_=>r("tr",{class:`${n}-data-table-tr`},_.map(({column:T,colSpan:S,rowSpan:M,isLast:H})=>{var I,V;const D=ze(T),{ellipsis:W}=T,X=()=>T.type==="selection"?T.multiple!==!1?r(ot,null,r(Tt,{key:o,privateInsideTable:!0,checked:i,indeterminate:g,disabled:d,onUpdateChecked:P}),x?r(ba,{clsPrefix:n}):null):null:r(ot,null,r("div",{class:`${n}-data-table-th__title-wrapper`},r("div",{class:`${n}-data-table-th__title`},W===!0||W&&!W.tooltip?r("div",{class:`${n}-data-table-th__ellipsis`},Ct(T)):W&&typeof W=="object"?r(Bt,Object.assign({},W,{theme:u.peers.Ellipsis,themeOverrides:u.peerOverrides.Ellipsis}),{default:()=>Ct(T)}):Ct(T)),xt(T)?r(ea,{column:T}):null),Yt(T)?r(va,{column:T,options:T.filterOptions}):null,Rn(T)?r(ma,{onResizeStart:()=>{y(T)},onResize:ue=>{C(T,ue)}}):null),Q=D in t,ae=D in a;return r("th",{ref:ue=>e[D]=ue,key:D,style:{textAlign:T.titleAlign||T.align,left:nt((I=t[D])===null||I===void 0?void 0:I.start),right:nt((V=a[D])===null||V===void 0?void 0:V.start)},colspan:S,rowspan:M,"data-col-key":D,class:[`${n}-data-table-th`,(Q||ae)&&`${n}-data-table-th--fixed-${Q?"left":"right"}`,{[`${n}-data-table-th--hover`]:kn(T,f),[`${n}-data-table-th--filterable`]:Yt(T),[`${n}-data-table-th--sortable`]:xt(T),[`${n}-data-table-th--selection`]:T.type==="selection",[`${n}-data-table-th--last`]:H},T.className],onClick:T.type!=="selection"&&T.type!=="expand"&&!("children"in T)?ue=>{b(ue,T)}:void 0},X())}))));if(!c)return K;const{handleTableHeaderScroll:k,scrollX:z}=this;return r("div",{class:`${n}-data-table-base-table-header`,onScroll:k},r("table",{ref:"body",class:`${n}-data-table-table`,style:{minWidth:Me(z),tableLayout:s}},r("colgroup",null,l.map(_=>r("col",{key:_.key,style:_.style}))),K))}}),ya=te({name:"DataTableCell",props:{clsPrefix:{type:String,required:!0},row:{type:Object,required:!0},index:{type:Number,required:!0},column:{type:Object,required:!0},isSummary:Boolean,mergedTheme:{type:Object,required:!0},renderCell:Function},render(){const{isSummary:e,column:n,row:t,renderCell:a}=this;let o;const{render:i,key:g,ellipsis:v}=n;if(i&&!e?o=i(t,this.index):e?o=t[g].value:o=a?a(Nt(t,g),t,n):Nt(t,g),v)if(typeof v=="object"){const{mergedTheme:l}=this;return n.ellipsisComponent==="performant-ellipsis"?r(Jr,Object.assign({},v,{theme:l.peers.Ellipsis,themeOverrides:l.peerOverrides.Ellipsis}),{default:()=>o}):r(Bt,Object.assign({},v,{theme:l.peers.Ellipsis,themeOverrides:l.peerOverrides.Ellipsis}),{default:()=>o})}else return r("span",{class:`${this.clsPrefix}-data-table-td__ellipsis`},o);return o}}),tn=te({name:"DataTableExpandTrigger",props:{clsPrefix:{type:String,required:!0},expanded:Boolean,loading:Boolean,onClick:{type:Function,required:!0},renderExpandIcon:{type:Function}},render(){const{clsPrefix:e}=this;return r("div",{class:[`${e}-data-table-expand-trigger`,this.expanded&&`${e}-data-table-expand-trigger--expanded`],onClick:this.onClick,onMousedown:n=>{n.preventDefault()}},r(ar,null,{default:()=>this.loading?r(un,{key:"loading",clsPrefix:this.clsPrefix,radius:85,strokeWidth:15,scale:.88}):this.renderExpandIcon?this.renderExpandIcon({expanded:this.expanded}):r(Ee,{clsPrefix:e,key:"base-icon"},{default:()=>r(Nr,null)})}))}}),xa=te({name:"DataTableBodyCheckbox",props:{rowKey:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!0},onUpdateChecked:{type:Function,required:!0}},setup(e){const{mergedCheckedRowKeySetRef:n,mergedInderminateRowKeySetRef:t}=Be(Te);return()=>{const{rowKey:a}=e;return r(Tt,{privateInsideTable:!0,disabled:e.disabled,indeterminate:t.value.has(a),checked:n.value.has(a),onUpdateChecked:e.onUpdateChecked})}}}),Ca=te({name:"DataTableBodyRadio",props:{rowKey:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!0},onUpdateChecked:{type:Function,required:!0}},setup(e){const{mergedCheckedRowKeySetRef:n,componentId:t}=Be(Te);return()=>{const{rowKey:a}=e;return r(bn,{name:t,disabled:e.disabled,checked:n.value.has(a),onUpdateChecked:e.onUpdateChecked})}}});function wa(e,n){const t=[];function a(o,i){o.forEach(g=>{g.children&&n.has(g.key)?(t.push({tmNode:g,striped:!1,key:g.key,index:i}),a(g.children,i)):t.push({key:g.key,tmNode:g,striped:!1,index:i})})}return e.forEach(o=>{t.push(o);const{children:i}=o.tmNode;i&&n.has(o.key)&&a(i,o.index)}),t}const Ra=te({props:{clsPrefix:{type:String,required:!0},id:{type:String,required:!0},cols:{type:Array,required:!0},onMouseenter:Function,onMouseleave:Function},render(){const{clsPrefix:e,id:n,cols:t,onMouseenter:a,onMouseleave:o}=this;return r("table",{style:{tableLayout:"fixed"},class:`${e}-data-table-table`,onMouseenter:a,onMouseleave:o},r("colgroup",null,t.map(i=>r("col",{key:i.key,style:i.style}))),r("tbody",{"data-n-id":n,class:`${e}-data-table-tbody`},this.$slots))}}),ka=te({name:"DataTableBody",props:{onResize:Function,showHeader:Boolean,flexHeight:Boolean,bodyStyle:Object},setup(e){const{slots:n,bodyWidthRef:t,mergedExpandedRowKeysRef:a,mergedClsPrefixRef:o,mergedThemeRef:i,scrollXRef:g,colsRef:v,paginatedDataRef:l,rawPaginatedDataRef:u,fixedColumnLeftMapRef:x,fixedColumnRightMapRef:m,mergedCurrentPageRef:c,rowClassNameRef:s,leftActiveFixedColKeyRef:d,leftActiveFixedChildrenColKeysRef:f,rightActiveFixedColKeyRef:b,rightActiveFixedChildrenColKeysRef:P,renderExpandRef:y,hoverKeyRef:C,summaryRef:K,mergedSortStateRef:k,virtualScrollRef:z,componentId:_,mergedTableLayoutRef:T,childTriggerColIndexRef:S,indentRef:M,rowPropsRef:H,maxHeightRef:I,stripedRef:V,loadingRef:D,onLoadRef:W,loadingKeySetRef:X,expandableRef:Q,stickyExpandedRowsRef:ae,renderExpandIconRef:ue,summaryPlacementRef:h,treeMateRef:U,scrollbarPropsRef:O,setHeaderScrollLeft:$,doUpdateExpandedRowKeys:q,handleTableBodyScroll:J,doCheck:he,doUncheck:le,renderCell:de}=Be(Te),ne=N(null),p=N(null),E=N(null),me=qe(()=>l.value.length===0),A=qe(()=>e.showHeader||!me.value),ee=qe(()=>e.showHeader||me.value);let Fe="";const ge=R(()=>new Set(a.value));function ve(B){var L;return(L=U.value.getNode(B))===null||L===void 0?void 0:L.rawNode}function De(B,L,re){const w=ve(B.key);if(!w){_t("data-table",`fail to get row data with key ${B.key}`);return}if(re){const Y=l.value.findIndex(se=>se.key===Fe);if(Y!==-1){const se=l.value.findIndex(Ae=>Ae.key===B.key),_e=Math.min(Y,se),xe=Math.max(Y,se),Se=[];l.value.slice(_e,xe+1).forEach(Ae=>{Ae.disabled||Se.push(Ae.key)}),L?he(Se,!1,w):le(Se,w),Fe=B.key;return}}L?he(B.key,!1,w):le(B.key,w),Fe=B.key}function je(B){const L=ve(B.key);if(!L){_t("data-table",`fail to get row data with key ${B.key}`);return}he(B.key,!0,L)}function Re(){if(!A.value){const{value:L}=E;return L||null}if(z.value)return Ie();const{value:B}=ne;return B?B.containerRef:null}function ke(B,L){var re;if(X.value.has(B))return;const{value:w}=a,Y=w.indexOf(B),se=Array.from(w);~Y?(se.splice(Y,1),q(se)):L&&!L.isLeaf&&!L.shallowLoaded?(X.value.add(B),(re=W.value)===null||re===void 0||re.call(W,L.rawNode).then(()=>{const{value:_e}=a,xe=Array.from(_e);~xe.indexOf(B)||xe.push(B),q(xe)}).finally(()=>{X.value.delete(B)})):(se.push(B),q(se))}function Ne(){C.value=null}function Ie(){const{value:B}=p;return(B==null?void 0:B.listElRef)||null}function He(){const{value:B}=p;return(B==null?void 0:B.itemsElRef)||null}function Ge(B){var L;J(B),(L=ne.value)===null||L===void 0||L.sync()}function $e(B){var L;const{onResize:re}=e;re&&re(B),(L=ne.value)===null||L===void 0||L.sync()}const fe={getScrollContainer:Re,scrollTo(B,L){var re,w;z.value?(re=p.value)===null||re===void 0||re.scrollTo(B,L):(w=ne.value)===null||w===void 0||w.scrollTo(B,L)}},Ue=G([({props:B})=>{const L=w=>w===null?null:G(`[data-n-id="${B.componentId}"] [data-col-key="${w}"]::after`,{boxShadow:"var(--n-box-shadow-after)"}),re=w=>w===null?null:G(`[data-n-id="${B.componentId}"] [data-col-key="${w}"]::before`,{boxShadow:"var(--n-box-shadow-before)"});return G([L(B.leftActiveFixedColKey),re(B.rightActiveFixedColKey),B.leftActiveFixedChildrenColKeys.map(w=>L(w)),B.rightActiveFixedChildrenColKeys.map(w=>re(w))])}]);let Oe=!1;return tt(()=>{const{value:B}=d,{value:L}=f,{value:re}=b,{value:w}=P;if(!Oe&&B===null&&re===null)return;const Y={leftActiveFixedColKey:B,leftActiveFixedChildrenColKeys:L,rightActiveFixedColKey:re,rightActiveFixedChildrenColKeys:w,componentId:_};Ue.mount({id:`n-${_}`,force:!0,props:Y,anchorMetaName:or}),Oe=!0}),ir(()=>{Ue.unmount({id:`n-${_}`})}),Object.assign({bodyWidth:t,summaryPlacement:h,dataTableSlots:n,componentId:_,scrollbarInstRef:ne,virtualListRef:p,emptyElRef:E,summary:K,mergedClsPrefix:o,mergedTheme:i,scrollX:g,cols:v,loading:D,bodyShowHeaderOnly:ee,shouldDisplaySomeTablePart:A,empty:me,paginatedDataAndInfo:R(()=>{const{value:B}=V;let L=!1;return{data:l.value.map(B?(w,Y)=>(w.isLeaf||(L=!0),{tmNode:w,key:w.key,striped:Y%2===1,index:Y}):(w,Y)=>(w.isLeaf||(L=!0),{tmNode:w,key:w.key,striped:!1,index:Y})),hasChildren:L}}),rawPaginatedData:u,fixedColumnLeftMap:x,fixedColumnRightMap:m,currentPage:c,rowClassName:s,renderExpand:y,mergedExpandedRowKeySet:ge,hoverKey:C,mergedSortState:k,virtualScroll:z,mergedTableLayout:T,childTriggerColIndex:S,indent:M,rowProps:H,maxHeight:I,loadingKeySet:X,expandable:Q,stickyExpandedRows:ae,renderExpandIcon:ue,scrollbarProps:O,setHeaderScrollLeft:$,handleVirtualListScroll:Ge,handleVirtualListResize:$e,handleMouseleaveTable:Ne,virtualListContainer:Ie,virtualListContent:He,handleTableBodyScroll:J,handleCheckboxUpdateChecked:De,handleRadioUpdateChecked:je,handleUpdateExpanded:ke,renderCell:de},fe)},render(){const{mergedTheme:e,scrollX:n,mergedClsPrefix:t,virtualScroll:a,maxHeight:o,mergedTableLayout:i,flexHeight:g,loadingKeySet:v,onResize:l,setHeaderScrollLeft:u}=this,x=n!==void 0||o!==void 0||g,m=!x&&i==="auto",c=n!==void 0||m,s={minWidth:Me(n)||"100%"};n&&(s.width="100%");const d=r(dn,Object.assign({},this.scrollbarProps,{ref:"scrollbarInstRef",scrollable:x||m,class:`${t}-data-table-base-table-body`,style:this.bodyStyle,theme:e.peers.Scrollbar,themeOverrides:e.peerOverrides.Scrollbar,contentStyle:s,container:a?this.virtualListContainer:void 0,content:a?this.virtualListContent:void 0,horizontalRailStyle:{zIndex:3},verticalRailStyle:{zIndex:3},xScrollable:c,onScroll:a?void 0:this.handleTableBodyScroll,internalOnUpdateScrollLeft:u,onResize:l}),{default:()=>{const f={},b={},{cols:P,paginatedDataAndInfo:y,mergedTheme:C,fixedColumnLeftMap:K,fixedColumnRightMap:k,currentPage:z,rowClassName:_,mergedSortState:T,mergedExpandedRowKeySet:S,stickyExpandedRows:M,componentId:H,childTriggerColIndex:I,expandable:V,rowProps:D,handleMouseleaveTable:W,renderExpand:X,summary:Q,handleCheckboxUpdateChecked:ae,handleRadioUpdateChecked:ue,handleUpdateExpanded:h}=this,{length:U}=P;let O;const{data:$,hasChildren:q}=y,J=q?wa($,S):$;if(Q){const A=Q(this.rawPaginatedData);if(Array.isArray(A)){const ee=A.map((Fe,ge)=>({isSummaryRow:!0,key:`__n_summary__${ge}`,tmNode:{rawNode:Fe,disabled:!0},index:-1}));O=this.summaryPlacement==="top"?[...ee,...J]:[...J,...ee]}else{const ee={isSummaryRow:!0,key:"__n_summary__",tmNode:{rawNode:A,disabled:!0},index:-1};O=this.summaryPlacement==="top"?[ee,...J]:[...J,ee]}}else O=J;const he=q?{width:nt(this.indent)}:void 0,le=[];O.forEach(A=>{X&&S.has(A.key)&&(!V||V(A.tmNode.rawNode))?le.push(A,{isExpandedRow:!0,key:`${A.key}-expand`,tmNode:A.tmNode,index:A.index}):le.push(A)});const{length:de}=le,ne={};$.forEach(({tmNode:A},ee)=>{ne[ee]=A.key});const p=M?this.bodyWidth:null,E=p===null?void 0:`${p}px`,me=(A,ee,Fe)=>{const{index:ge}=A;if("isExpandedRow"in A){const{tmNode:{key:$e,rawNode:fe}}=A;return r("tr",{class:`${t}-data-table-tr ${t}-data-table-tr--expanded`,key:`${$e}__expand`},r("td",{class:[`${t}-data-table-td`,`${t}-data-table-td--last-col`,ee+1===de&&`${t}-data-table-td--last-row`],colspan:U},M?r("div",{class:`${t}-data-table-expand`,style:{width:E}},X(fe,ge)):X(fe,ge)))}const ve="isSummaryRow"in A,De=!ve&&A.striped,{tmNode:je,key:Re}=A,{rawNode:ke}=je,Ne=S.has(Re),Ie=D?D(ke,ge):void 0,He=typeof _=="string"?_:ua(ke,ge,_);return r("tr",Object.assign({onMouseenter:()=>{this.hoverKey=Re},key:Re,class:[`${t}-data-table-tr`,ve&&`${t}-data-table-tr--summary`,De&&`${t}-data-table-tr--striped`,Ne&&`${t}-data-table-tr--expanded`,He]},Ie),P.map(($e,fe)=>{var Ue,Oe,B,L,re;if(ee in f){const pe=f[ee],Ce=pe.indexOf(fe);if(~Ce)return pe.splice(Ce,1),null}const{column:w}=$e,Y=ze($e),{rowSpan:se,colSpan:_e}=w,xe=ve?((Ue=A.tmNode.rawNode[Y])===null||Ue===void 0?void 0:Ue.colSpan)||1:_e?_e(ke,ge):1,Se=ve?((Oe=A.tmNode.rawNode[Y])===null||Oe===void 0?void 0:Oe.rowSpan)||1:se?se(ke,ge):1,Ae=fe+xe===U,Ye=ee+Se===de,Ve=Se>1;if(Ve&&(b[ee]={[fe]:[]}),xe>1||Ve)for(let pe=ee;pe{h(Re,A.tmNode)}})]:null,w.type==="selection"?ve?null:w.multiple===!1?r(Ca,{key:z,rowKey:Re,disabled:A.tmNode.disabled,onUpdateChecked:()=>{ue(A.tmNode)}}):r(xa,{key:z,rowKey:Re,disabled:A.tmNode.disabled,onUpdateChecked:(pe,Ce)=>{ae(A.tmNode,pe,Ce.shiftKey)}}):w.type==="expand"?ve?null:!w.expandable||!((re=w.expandable)===null||re===void 0)&&re.call(w,ke)?r(tn,{clsPrefix:t,expanded:Ne,renderExpandIcon:this.renderExpandIcon,onClick:()=>{h(Re,null)}}):null:r(ya,{clsPrefix:t,index:ge,row:ke,column:w,isSummary:ve,mergedTheme:C,renderCell:this.renderCell}))}))};return a?r(Tr,{ref:"virtualListRef",items:le,itemSize:28,visibleItemsTag:Ra,visibleItemsProps:{clsPrefix:t,id:H,cols:P,onMouseleave:W},showScrollbar:!1,onResize:this.handleVirtualListResize,onScroll:this.handleVirtualListScroll,itemsStyle:s,itemResizable:!0},{default:({item:A,index:ee})=>me(A,ee,!0)}):r("table",{class:`${t}-data-table-table`,onMouseleave:W,style:{tableLayout:this.mergedTableLayout}},r("colgroup",null,P.map(A=>r("col",{key:A.key,style:A.style}))),this.showHeader?r(Pn,{discrete:!1}):null,this.empty?null:r("tbody",{"data-n-id":H,class:`${t}-data-table-tbody`},le.map((A,ee)=>me(A,ee,!1))))}});if(this.empty){const f=()=>r("div",{class:[`${t}-data-table-empty`,this.loading&&`${t}-data-table-empty--hide`],style:this.bodyStyle,ref:"emptyElRef"},Mt(this.dataTableSlots.empty,()=>[r($r,{theme:this.mergedTheme.peers.Empty,themeOverrides:this.mergedTheme.peerOverrides.Empty})]));return this.shouldDisplaySomeTablePart?r(ot,null,d,f()):r(lr,{onResize:this.onResize},{default:f})}return d}}),Sa=te({setup(){const{mergedClsPrefixRef:e,rightFixedColumnsRef:n,leftFixedColumnsRef:t,bodyWidthRef:a,maxHeightRef:o,minHeightRef:i,flexHeightRef:g,syncScrollState:v}=Be(Te),l=N(null),u=N(null),x=N(null),m=N(!(t.value.length||n.value.length)),c=R(()=>({maxHeight:Me(o.value),minHeight:Me(i.value)}));function s(P){a.value=P.contentRect.width,v(),m.value||(m.value=!0)}function d(){const{value:P}=l;return P?P.$el:null}function f(){const{value:P}=u;return P?P.getScrollContainer():null}const b={getBodyElement:f,getHeaderElement:d,scrollTo(P,y){var C;(C=u.value)===null||C===void 0||C.scrollTo(P,y)}};return tt(()=>{const{value:P}=x;if(!P)return;const y=`${e.value}-data-table-base-table--transition-disabled`;m.value?setTimeout(()=>{P.classList.remove(y)},0):P.classList.add(y)}),Object.assign({maxHeight:o,mergedClsPrefix:e,selfElRef:x,headerInstRef:l,bodyInstRef:u,bodyStyle:c,flexHeight:g,handleBodyResize:s},b)},render(){const{mergedClsPrefix:e,maxHeight:n,flexHeight:t}=this,a=n===void 0&&!t;return r("div",{class:`${e}-data-table-base-table`,ref:"selfElRef"},a?null:r(Pn,{ref:"headerInstRef"}),r(ka,{ref:"bodyInstRef",bodyStyle:this.bodyStyle,showHeader:a,flexHeight:t,onResize:this.handleBodyResize}))}});function Fa(e,n){const{paginatedDataRef:t,treeMateRef:a,selectionColumnRef:o}=n,i=N(e.defaultCheckedRowKeys),g=R(()=>{var k;const{checkedRowKeys:z}=e,_=z===void 0?i.value:z;return((k=o.value)===null||k===void 0?void 0:k.multiple)===!1?{checkedKeys:_.slice(0,1),indeterminateKeys:[]}:a.value.getCheckedKeys(_,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded})}),v=R(()=>g.value.checkedKeys),l=R(()=>g.value.indeterminateKeys),u=R(()=>new Set(v.value)),x=R(()=>new Set(l.value)),m=R(()=>{const{value:k}=u;return t.value.reduce((z,_)=>{const{key:T,disabled:S}=_;return z+(!S&&k.has(T)?1:0)},0)}),c=R(()=>t.value.filter(k=>k.disabled).length),s=R(()=>{const{length:k}=t.value,{value:z}=x;return m.value>0&&m.valuez.has(_.key))}),d=R(()=>{const{length:k}=t.value;return m.value!==0&&m.value===k-c.value}),f=R(()=>t.value.length===0);function b(k,z,_){const{"onUpdate:checkedRowKeys":T,onUpdateCheckedRowKeys:S,onCheckedRowKeysChange:M}=e,H=[],{value:{getNode:I}}=a;k.forEach(V=>{var D;const W=(D=I(V))===null||D===void 0?void 0:D.rawNode;H.push(W)}),T&&Z(T,k,H,{row:z,action:_}),S&&Z(S,k,H,{row:z,action:_}),M&&Z(M,k,H,{row:z,action:_}),i.value=k}function P(k,z=!1,_){if(!e.loading){if(z){b(Array.isArray(k)?k.slice(0,1):[k],_,"check");return}b(a.value.check(k,v.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,_,"check")}}function y(k,z){e.loading||b(a.value.uncheck(k,v.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,z,"uncheck")}function C(k=!1){const{value:z}=o;if(!z||e.loading)return;const _=[];(k?a.value.treeNodes:t.value).forEach(T=>{T.disabled||_.push(T.key)}),b(a.value.check(_,v.value,{cascade:!0,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,void 0,"checkAll")}function K(k=!1){const{value:z}=o;if(!z||e.loading)return;const _=[];(k?a.value.treeNodes:t.value).forEach(T=>{T.disabled||_.push(T.key)}),b(a.value.uncheck(_,v.value,{cascade:!0,allowNotLoaded:e.allowCheckingNotLoaded}).checkedKeys,void 0,"uncheckAll")}return{mergedCheckedRowKeySetRef:u,mergedCheckedRowKeysRef:v,mergedInderminateRowKeySetRef:x,someRowsCheckedRef:s,allRowsCheckedRef:d,headerCheckboxDisabledRef:f,doUpdateCheckedRowKeys:b,doCheckAll:C,doUncheckAll:K,doCheck:P,doUncheck:y}}function ut(e){return typeof e=="object"&&typeof e.multiple=="number"?e.multiple:!1}function Pa(e,n){return n&&(e===void 0||e==="default"||typeof e=="object"&&e.compare==="default")?za(n):typeof e=="function"?e:e&&typeof e=="object"&&e.compare&&e.compare!=="default"?e.compare:!1}function za(e){return(n,t)=>{const a=n[e],o=t[e];return typeof a=="number"&&typeof o=="number"?a-o:typeof a=="string"&&typeof o=="string"?a.localeCompare(o):0}}function Ma(e,{dataRelatedColsRef:n,filteredDataRef:t}){const a=[];n.value.forEach(s=>{var d;s.sorter!==void 0&&c(a,{columnKey:s.key,sorter:s.sorter,order:(d=s.defaultSortOrder)!==null&&d!==void 0?d:!1})});const o=N(a),i=R(()=>{const s=n.value.filter(b=>b.type!=="selection"&&b.sorter!==void 0&&(b.sortOrder==="ascend"||b.sortOrder==="descend"||b.sortOrder===!1)),d=s.filter(b=>b.sortOrder!==!1);if(d.length)return d.map(b=>({columnKey:b.key,order:b.sortOrder,sorter:b.sorter}));if(s.length)return[];const{value:f}=o;return Array.isArray(f)?f:f?[f]:[]}),g=R(()=>{const s=i.value.slice().sort((d,f)=>{const b=ut(d.sorter)||0;return(ut(f.sorter)||0)-b});return s.length?t.value.slice().sort((f,b)=>{let P=0;return s.some(y=>{const{columnKey:C,sorter:K,order:k}=y,z=Pa(K,C);return z&&k&&(P=z(f.rawNode,b.rawNode),P!==0)?(P=P*la(k),!0):!1}),P}):t.value});function v(s){let d=i.value.slice();return s&&ut(s.sorter)!==!1?(d=d.filter(f=>ut(f.sorter)!==!1),c(d,s),d):s||null}function l(s){const d=v(s);u(d)}function u(s){const{"onUpdate:sorter":d,onUpdateSorter:f,onSorterChange:b}=e;d&&Z(d,s),f&&Z(f,s),b&&Z(b,s),o.value=s}function x(s,d="ascend"){if(!s)m();else{const f=n.value.find(P=>P.type!=="selection"&&P.type!=="expand"&&P.key===s);if(!(f!=null&&f.sorter))return;const b=f.sorter;l({columnKey:s,sorter:b,order:d})}}function m(){u(null)}function c(s,d){const f=s.findIndex(b=>(d==null?void 0:d.columnKey)&&b.columnKey===d.columnKey);f!==void 0&&f>=0?s[f]=d:s.push(d)}return{clearSorter:m,sort:x,sortedDataRef:g,mergedSortStateRef:i,deriveNextSorter:l}}function Ba(e,{dataRelatedColsRef:n}){const t=R(()=>{const h=U=>{for(let O=0;O{const{childrenKey:h}=e;return vn(e.data,{ignoreEmptyChildren:!0,getKey:e.rowKey,getChildren:U=>U[h],getDisabled:U=>{var O,$;return!!(!(($=(O=t.value)===null||O===void 0?void 0:O.disabled)===null||$===void 0)&&$.call(O,U))}})}),o=qe(()=>{const{columns:h}=e,{length:U}=h;let O=null;for(let $=0;${const h=n.value.filter($=>$.filterOptionValues!==void 0||$.filterOptionValue!==void 0),U={};return h.forEach($=>{var q;$.type==="selection"||$.type==="expand"||($.filterOptionValues===void 0?U[$.key]=(q=$.filterOptionValue)!==null&&q!==void 0?q:null:U[$.key]=$.filterOptionValues)}),Object.assign(Qt(i.value),U)}),u=R(()=>{const h=l.value,{columns:U}=e;function O(J){return(he,le)=>!!~String(le[J]).indexOf(String(he))}const{value:{treeNodes:$}}=a,q=[];return U.forEach(J=>{J.type==="selection"||J.type==="expand"||"children"in J||q.push([J.key,J])}),$?$.filter(J=>{const{rawNode:he}=J;for(const[le,de]of q){let ne=h[le];if(ne==null||(Array.isArray(ne)||(ne=[ne]),!ne.length))continue;const p=de.filter==="default"?O(le):de.filter;if(de&&typeof p=="function")if(de.filterMode==="and"){if(ne.some(E=>!p(E,he)))return!1}else{if(ne.some(E=>p(E,he)))continue;return!1}}return!0}):[]}),{sortedDataRef:x,deriveNextSorter:m,mergedSortStateRef:c,sort:s,clearSorter:d}=Ma(e,{dataRelatedColsRef:n,filteredDataRef:u});n.value.forEach(h=>{var U;if(h.filter){const O=h.defaultFilterOptionValues;h.filterMultiple?i.value[h.key]=O||[]:O!==void 0?i.value[h.key]=O===null?[]:O:i.value[h.key]=(U=h.defaultFilterOptionValue)!==null&&U!==void 0?U:null}});const f=R(()=>{const{pagination:h}=e;if(h!==!1)return h.page}),b=R(()=>{const{pagination:h}=e;if(h!==!1)return h.pageSize}),P=Qe(f,g),y=Qe(b,v),C=qe(()=>{const h=P.value;return e.remote?h:Math.max(1,Math.min(Math.ceil(u.value.length/y.value),h))}),K=R(()=>{const{pagination:h}=e;if(h){const{pageCount:U}=h;if(U!==void 0)return U}}),k=R(()=>{if(e.remote)return a.value.treeNodes;if(!e.pagination)return x.value;const h=y.value,U=(C.value-1)*h;return x.value.slice(U,U+h)}),z=R(()=>k.value.map(h=>h.rawNode));function _(h){const{pagination:U}=e;if(U){const{onChange:O,"onUpdate:page":$,onUpdatePage:q}=U;O&&Z(O,h),q&&Z(q,h),$&&Z($,h),H(h)}}function T(h){const{pagination:U}=e;if(U){const{onPageSizeChange:O,"onUpdate:pageSize":$,onUpdatePageSize:q}=U;O&&Z(O,h),q&&Z(q,h),$&&Z($,h),I(h)}}const S=R(()=>{if(e.remote){const{pagination:h}=e;if(h){const{itemCount:U}=h;if(U!==void 0)return U}return}return u.value.length}),M=R(()=>Object.assign(Object.assign({},e.pagination),{onChange:void 0,onUpdatePage:void 0,onUpdatePageSize:void 0,onPageSizeChange:void 0,"onUpdate:page":_,"onUpdate:pageSize":T,page:C.value,pageSize:y.value,pageCount:S.value===void 0?K.value:void 0,itemCount:S.value}));function H(h){const{"onUpdate:page":U,onPageChange:O,onUpdatePage:$}=e;$&&Z($,h),U&&Z(U,h),O&&Z(O,h),g.value=h}function I(h){const{"onUpdate:pageSize":U,onPageSizeChange:O,onUpdatePageSize:$}=e;O&&Z(O,h),$&&Z($,h),U&&Z(U,h),v.value=h}function V(h,U){const{onUpdateFilters:O,"onUpdate:filters":$,onFiltersChange:q}=e;O&&Z(O,h,U),$&&Z($,h,U),q&&Z(q,h,U),i.value=h}function D(h,U,O,$){var q;(q=e.onUnstableColumnResize)===null||q===void 0||q.call(e,h,U,O,$)}function W(h){H(h)}function X(){Q()}function Q(){ae({})}function ae(h){ue(h)}function ue(h){h?h&&(i.value=Qt(h)):i.value={}}return{treeMateRef:a,mergedCurrentPageRef:C,mergedPaginationRef:M,paginatedDataRef:k,rawPaginatedDataRef:z,mergedFilterStateRef:l,mergedSortStateRef:c,hoverKeyRef:N(null),selectionColumnRef:t,childTriggerColIndexRef:o,doUpdateFilters:V,deriveNextSorter:m,doUpdatePageSize:I,doUpdatePage:H,onUnstableColumnResize:D,filter:ue,filters:ae,clearFilter:X,clearFilters:Q,clearSorter:d,page:W,sort:s}}function Ta(e,{mainTableInstRef:n,mergedCurrentPageRef:t,bodyWidthRef:a}){let o=0;const i=N(),g=N(null),v=N([]),l=N(null),u=N([]),x=R(()=>Me(e.scrollX)),m=R(()=>e.columns.filter(S=>S.fixed==="left")),c=R(()=>e.columns.filter(S=>S.fixed==="right")),s=R(()=>{const S={};let M=0;function H(I){I.forEach(V=>{const D={start:M,end:0};S[ze(V)]=D,"children"in V?(H(V.children),D.end=M):(M+=Jt(V)||0,D.end=M)})}return H(m.value),S}),d=R(()=>{const S={};let M=0;function H(I){for(let V=I.length-1;V>=0;--V){const D=I[V],W={start:M,end:0};S[ze(D)]=W,"children"in D?(H(D.children),W.end=M):(M+=Jt(D)||0,W.end=M)}}return H(c.value),S});function f(){var S,M;const{value:H}=m;let I=0;const{value:V}=s;let D=null;for(let W=0;W(((S=V[X])===null||S===void 0?void 0:S.start)||0)-I)D=X,I=((M=V[X])===null||M===void 0?void 0:M.end)||0;else break}g.value=D}function b(){v.value=[];let S=e.columns.find(M=>ze(M)===g.value);for(;S&&"children"in S;){const M=S.children.length;if(M===0)break;const H=S.children[M-1];v.value.push(ze(H)),S=H}}function P(){var S,M;const{value:H}=c,I=Number(e.scrollX),{value:V}=a;if(V===null)return;let D=0,W=null;const{value:X}=d;for(let Q=H.length-1;Q>=0;--Q){const ae=ze(H[Q]);if(Math.round(o+(((S=X[ae])===null||S===void 0?void 0:S.start)||0)+V-D)ze(M)===l.value);for(;S&&"children"in S&&S.children.length;){const M=S.children[0];u.value.push(ze(M)),S=M}}function C(){const S=n.value?n.value.getHeaderElement():null,M=n.value?n.value.getBodyElement():null;return{header:S,body:M}}function K(){const{body:S}=C();S&&(S.scrollTop=0)}function k(){i.value!=="body"?Kt(_):i.value=void 0}function z(S){var M;(M=e.onScroll)===null||M===void 0||M.call(e,S),i.value!=="head"?Kt(_):i.value=void 0}function _(){const{header:S,body:M}=C();if(!M)return;const{value:H}=a;if(H!==null){if(e.maxHeight||e.flexHeight){if(!S)return;const I=o-S.scrollLeft;i.value=I!==0?"head":"body",i.value==="head"?(o=S.scrollLeft,M.scrollLeft=o):(o=M.scrollLeft,S.scrollLeft=o)}else o=M.scrollLeft;f(),b(),P(),y()}}function T(S){const{header:M}=C();M&&(M.scrollLeft=S,_())}return Pt(t,()=>{K()}),{styleScrollXRef:x,fixedColumnLeftMapRef:s,fixedColumnRightMapRef:d,leftFixedColumnsRef:m,rightFixedColumnsRef:c,leftActiveFixedColKeyRef:g,leftActiveFixedChildrenColKeysRef:v,rightActiveFixedColKeyRef:l,rightActiveFixedChildrenColKeysRef:u,syncScrollState:_,handleTableBodyScroll:z,handleTableHeaderScroll:k,setHeaderScrollLeft:T}}function $a(){const e=N({});function n(o){return e.value[o]}function t(o,i){Rn(o)&&"key"in o&&(e.value[o.key]=i)}function a(){e.value={}}return{getResizableWidth:n,doUpdateResizableWidth:t,clearResizableWidth:a}}function Ua(e,n){const t=[],a=[],o=[],i=new WeakMap;let g=-1,v=0,l=!1;function u(c,s){s>g&&(t[s]=[],g=s);for(const d of c)if("children"in d)u(d.children,s+1);else{const f="key"in d?d.key:void 0;a.push({key:ze(d),style:da(d,f!==void 0?Me(n(f)):void 0),column:d}),v+=1,l||(l=!!d.ellipsis),o.push(d)}}u(e,0);let x=0;function m(c,s){let d=0;c.forEach((f,b)=>{var P;if("children"in f){const y=x,C={column:f,colSpan:0,rowSpan:1,isLast:!1};m(f.children,s+1),f.children.forEach(K=>{var k,z;C.colSpan+=(z=(k=i.get(K))===null||k===void 0?void 0:k.colSpan)!==null&&z!==void 0?z:0}),y+C.colSpan===v&&(C.isLast=!0),i.set(f,C),t[s].push(C)}else{if(x1&&(d=x+y);const C=x+y===v,K={column:f,colSpan:y,rowSpan:g-s+1,isLast:C};i.set(f,K),t[s].push(K),x+=1}})}return m(e,0),{hasEllipsis:l,rows:t,cols:a,dataRelatedCols:o}}function Oa(e,n){const t=R(()=>Ua(e.columns,n));return{rowsRef:R(()=>t.value.rows),colsRef:R(()=>t.value.cols),hasEllipsisRef:R(()=>t.value.hasEllipsis),dataRelatedColsRef:R(()=>t.value.dataRelatedCols)}}function _a(e,n){const t=qe(()=>{for(const u of e.columns)if(u.type==="expand")return u.renderExpand}),a=qe(()=>{let u;for(const x of e.columns)if(x.type==="expand"){u=x.expandable;break}return u}),o=N(e.defaultExpandAll?t!=null&&t.value?(()=>{const u=[];return n.value.treeNodes.forEach(x=>{var m;!((m=a.value)===null||m===void 0)&&m.call(a,x.rawNode)&&u.push(x.key)}),u})():n.value.getNonLeafKeys():e.defaultExpandedRowKeys),i=ie(e,"expandedRowKeys"),g=ie(e,"stickyExpandedRows"),v=Qe(i,o);function l(u){const{onUpdateExpandedRowKeys:x,"onUpdate:expandedRowKeys":m}=e;x&&Z(x,u),m&&Z(m,u),o.value=u}return{stickyExpandedRowsRef:g,mergedExpandedRowKeysRef:v,renderExpandRef:t,expandableRef:a,doUpdateExpandedRowKeys:l}}const nn=La(),Aa=G([F("data-table",` - width: 100%; - font-size: var(--n-font-size); - display: flex; - flex-direction: column; - position: relative; - --n-merged-th-color: var(--n-th-color); - --n-merged-td-color: var(--n-td-color); - --n-merged-border-color: var(--n-border-color); - --n-merged-th-color-hover: var(--n-th-color-hover); - --n-merged-td-color-hover: var(--n-td-color-hover); - --n-merged-td-color-striped: var(--n-td-color-striped); - `,[F("data-table-wrapper",` - flex-grow: 1; - display: flex; - flex-direction: column; - `),j("flex-height",[G(">",[F("data-table-wrapper",[G(">",[F("data-table-base-table",` - display: flex; - flex-direction: column; - flex-grow: 1; - `,[G(">",[F("data-table-base-table-body","flex-basis: 0;",[G("&:last-child","flex-grow: 1;")])])])])])])]),G(">",[F("data-table-loading-wrapper",` - color: var(--n-loading-color); - font-size: var(--n-loading-size); - position: absolute; - left: 50%; - top: 50%; - transform: translateX(-50%) translateY(-50%); - transition: color .3s var(--n-bezier); - display: flex; - align-items: center; - justify-content: center; - `,[dr({originalTransform:"translateX(-50%) translateY(-50%)"})])]),F("data-table-expand-placeholder",` - margin-right: 8px; - display: inline-block; - width: 16px; - height: 1px; - `),F("data-table-indent",` - display: inline-block; - height: 1px; - `),F("data-table-expand-trigger",` - display: inline-flex; - margin-right: 8px; - cursor: pointer; - font-size: 16px; - vertical-align: -0.2em; - position: relative; - width: 16px; - height: 16px; - color: var(--n-td-text-color); - transition: color .3s var(--n-bezier); - `,[j("expanded",[F("icon","transform: rotate(90deg);",[et({originalTransform:"rotate(90deg)"})]),F("base-icon","transform: rotate(90deg);",[et({originalTransform:"rotate(90deg)"})])]),F("base-loading",` - color: var(--n-loading-color); - transition: color .3s var(--n-bezier); - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `,[et()]),F("icon",` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `,[et()]),F("base-icon",` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `,[et()])]),F("data-table-thead",` - transition: background-color .3s var(--n-bezier); - background-color: var(--n-merged-th-color); - `),F("data-table-tr",` - box-sizing: border-box; - background-clip: padding-box; - transition: background-color .3s var(--n-bezier); - `,[F("data-table-expand",` - position: sticky; - left: 0; - overflow: hidden; - margin: calc(var(--n-th-padding) * -1); - padding: var(--n-th-padding); - box-sizing: border-box; - `),j("striped","background-color: var(--n-merged-td-color-striped);",[F("data-table-td","background-color: var(--n-merged-td-color-striped);")]),at("summary",[G("&:hover","background-color: var(--n-merged-td-color-hover);",[G(">",[F("data-table-td","background-color: var(--n-merged-td-color-hover);")])])])]),F("data-table-th",` - padding: var(--n-th-padding); - position: relative; - text-align: start; - box-sizing: border-box; - background-color: var(--n-merged-th-color); - border-color: var(--n-merged-border-color); - border-bottom: 1px solid var(--n-merged-border-color); - color: var(--n-th-text-color); - transition: - border-color .3s var(--n-bezier), - color .3s var(--n-bezier), - background-color .3s var(--n-bezier); - font-weight: var(--n-th-font-weight); - `,[j("filterable",` - padding-right: 36px; - `,[j("sortable",` - padding-right: calc(var(--n-th-padding) + 36px); - `)]),nn,j("selection",` - padding: 0; - text-align: center; - line-height: 0; - z-index: 3; - `),ye("title-wrapper",` - display: flex; - align-items: center; - flex-wrap: nowrap; - max-width: 100%; - `,[ye("title",` - flex: 1; - min-width: 0; - `)]),ye("ellipsis",` - display: inline-block; - vertical-align: bottom; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - max-width: 100%; - `),j("hover",` - background-color: var(--n-merged-th-color-hover); - `),j("sortable",` - cursor: pointer; - `,[ye("ellipsis",` - max-width: calc(100% - 18px); - `),G("&:hover",` - background-color: var(--n-merged-th-color-hover); - `)]),F("data-table-sorter",` - height: var(--n-sorter-size); - width: var(--n-sorter-size); - margin-left: 4px; - position: relative; - display: inline-flex; - align-items: center; - justify-content: center; - vertical-align: -0.2em; - color: var(--n-th-icon-color); - transition: color .3s var(--n-bezier); - `,[F("base-icon","transition: transform .3s var(--n-bezier)"),j("desc",[F("base-icon",` - transform: rotate(0deg); - `)]),j("asc",[F("base-icon",` - transform: rotate(-180deg); - `)]),j("asc, desc",` - color: var(--n-th-icon-color-active); - `)]),F("data-table-resize-button",` - width: var(--n-resizable-container-size); - position: absolute; - top: 0; - right: calc(var(--n-resizable-container-size) / 2); - bottom: 0; - cursor: col-resize; - user-select: none; - `,[G("&::after",` - width: var(--n-resizable-size); - height: 50%; - position: absolute; - top: 50%; - left: calc(var(--n-resizable-container-size) / 2); - bottom: 0; - background-color: var(--n-merged-border-color); - transform: translateY(-50%); - transition: background-color .3s var(--n-bezier); - z-index: 1; - content: ''; - `),j("active",[G("&::after",` - background-color: var(--n-th-icon-color-active); - `)]),G("&:hover::after",` - background-color: var(--n-th-icon-color-active); - `)]),F("data-table-filter",` - position: absolute; - z-index: auto; - right: 0; - width: 36px; - top: 0; - bottom: 0; - cursor: pointer; - display: flex; - justify-content: center; - align-items: center; - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - font-size: var(--n-filter-size); - color: var(--n-th-icon-color); - `,[G("&:hover",` - background-color: var(--n-th-button-color-hover); - `),j("show",` - background-color: var(--n-th-button-color-hover); - `),j("active",` - background-color: var(--n-th-button-color-hover); - color: var(--n-th-icon-color-active); - `)])]),F("data-table-td",` - padding: var(--n-td-padding); - text-align: start; - box-sizing: border-box; - border: none; - background-color: var(--n-merged-td-color); - color: var(--n-td-text-color); - border-bottom: 1px solid var(--n-merged-border-color); - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - border-color .3s var(--n-bezier), - color .3s var(--n-bezier); - `,[j("expand",[F("data-table-expand-trigger",` - margin-right: 0; - `)]),j("last-row",` - border-bottom: 0 solid var(--n-merged-border-color); - `,[G("&::after",` - bottom: 0 !important; - `),G("&::before",` - bottom: 0 !important; - `)]),j("summary",` - background-color: var(--n-merged-th-color); - `),j("hover",` - background-color: var(--n-merged-td-color-hover); - `),ye("ellipsis",` - display: inline-block; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - max-width: 100%; - vertical-align: bottom; - max-width: calc(100% - var(--indent-offset, -1.5) * 16px - 24px); - `),j("selection, expand",` - text-align: center; - padding: 0; - line-height: 0; - `),nn]),F("data-table-empty",` - box-sizing: border-box; - padding: var(--n-empty-padding); - flex-grow: 1; - flex-shrink: 0; - opacity: 1; - display: flex; - align-items: center; - justify-content: center; - transition: opacity .3s var(--n-bezier); - `,[j("hide",` - opacity: 0; - `)]),ye("pagination",` - margin: var(--n-pagination-margin); - display: flex; - justify-content: flex-end; - `),F("data-table-wrapper",` - position: relative; - opacity: 1; - transition: opacity .3s var(--n-bezier), border-color .3s var(--n-bezier); - border-top-left-radius: var(--n-border-radius); - border-top-right-radius: var(--n-border-radius); - line-height: var(--n-line-height); - `),j("loading",[F("data-table-wrapper",` - opacity: var(--n-opacity-loading); - pointer-events: none; - `)]),j("single-column",[F("data-table-td",` - border-bottom: 0 solid var(--n-merged-border-color); - `,[G("&::after, &::before",` - bottom: 0 !important; - `)])]),at("single-line",[F("data-table-th",` - border-right: 1px solid var(--n-merged-border-color); - `,[j("last",` - border-right: 0 solid var(--n-merged-border-color); - `)]),F("data-table-td",` - border-right: 1px solid var(--n-merged-border-color); - `,[j("last-col",` - border-right: 0 solid var(--n-merged-border-color); - `)])]),j("bordered",[F("data-table-wrapper",` - border: 1px solid var(--n-merged-border-color); - border-bottom-left-radius: var(--n-border-radius); - border-bottom-right-radius: var(--n-border-radius); - overflow: hidden; - `)]),F("data-table-base-table",[j("transition-disabled",[F("data-table-th",[G("&::after, &::before","transition: none;")]),F("data-table-td",[G("&::after, &::before","transition: none;")])])]),j("bottom-bordered",[F("data-table-td",[j("last-row",` - border-bottom: 1px solid var(--n-merged-border-color); - `)])]),F("data-table-table",` - font-variant-numeric: tabular-nums; - width: 100%; - word-break: break-word; - transition: background-color .3s var(--n-bezier); - border-collapse: separate; - border-spacing: 0; - background-color: var(--n-merged-td-color); - `),F("data-table-base-table-header",` - border-top-left-radius: calc(var(--n-border-radius) - 1px); - border-top-right-radius: calc(var(--n-border-radius) - 1px); - z-index: 3; - overflow: scroll; - flex-shrink: 0; - transition: border-color .3s var(--n-bezier); - scrollbar-width: none; - `,[G("&::-webkit-scrollbar",` - width: 0; - height: 0; - `)]),F("data-table-check-extra",` - transition: color .3s var(--n-bezier); - color: var(--n-th-icon-color); - position: absolute; - font-size: 14px; - right: -4px; - top: 50%; - transform: translateY(-50%); - z-index: 1; - `)]),F("data-table-filter-menu",[F("scrollbar",` - max-height: 240px; - `),ye("group",` - display: flex; - flex-direction: column; - padding: 12px 12px 0 12px; - `,[F("checkbox",` - margin-bottom: 12px; - margin-right: 0; - `),F("radio",` - margin-bottom: 12px; - margin-right: 0; - `)]),ye("action",` - padding: var(--n-action-padding); - display: flex; - flex-wrap: nowrap; - justify-content: space-evenly; - border-top: 1px solid var(--n-action-divider-color); - `,[F("button",[G("&:not(:last-child)",` - margin: var(--n-action-button-margin); - `),G("&:last-child",` - margin-right: 0; - `)])]),F("divider",` - margin: 0 !important; - `)]),ur(F("data-table",` - --n-merged-th-color: var(--n-th-color-modal); - --n-merged-td-color: var(--n-td-color-modal); - --n-merged-border-color: var(--n-border-color-modal); - --n-merged-th-color-hover: var(--n-th-color-hover-modal); - --n-merged-td-color-hover: var(--n-td-color-hover-modal); - --n-merged-td-color-striped: var(--n-td-color-striped-modal); - `)),cr(F("data-table",` - --n-merged-th-color: var(--n-th-color-popover); - --n-merged-td-color: var(--n-td-color-popover); - --n-merged-border-color: var(--n-border-color-popover); - --n-merged-th-color-hover: var(--n-th-color-hover-popover); - --n-merged-td-color-hover: var(--n-td-color-hover-popover); - --n-merged-td-color-striped: var(--n-td-color-striped-popover); - `))]);function La(){return[j("fixed-left",` - left: 0; - position: sticky; - z-index: 2; - `,[G("&::after",` - pointer-events: none; - content: ""; - width: 36px; - display: inline-block; - position: absolute; - top: 0; - bottom: -1px; - transition: box-shadow .2s var(--n-bezier); - right: -36px; - `)]),j("fixed-right",` - right: 0; - position: sticky; - z-index: 1; - `,[G("&::before",` - pointer-events: none; - content: ""; - width: 36px; - display: inline-block; - position: absolute; - top: 0; - bottom: -1px; - transition: box-shadow .2s var(--n-bezier); - left: -36px; - `)])]}const Ea=te({name:"DataTable",alias:["AdvancedTable"],props:Yr,setup(e,{slots:n}){const{mergedBorderedRef:t,mergedClsPrefixRef:a,inlineThemeDisabled:o}=Xe(e),i=R(()=>{const{bottomBordered:w}=e;return t.value?!1:w!==void 0?w:!0}),g=Ke("DataTable","-data-table",Aa,fr,e,a),v=N(null),l=N(null),{getResizableWidth:u,clearResizableWidth:x,doUpdateResizableWidth:m}=$a(),{rowsRef:c,colsRef:s,dataRelatedColsRef:d,hasEllipsisRef:f}=Oa(e,u),{treeMateRef:b,mergedCurrentPageRef:P,paginatedDataRef:y,rawPaginatedDataRef:C,selectionColumnRef:K,hoverKeyRef:k,mergedPaginationRef:z,mergedFilterStateRef:_,mergedSortStateRef:T,childTriggerColIndexRef:S,doUpdatePage:M,doUpdateFilters:H,onUnstableColumnResize:I,deriveNextSorter:V,filter:D,filters:W,clearFilter:X,clearFilters:Q,clearSorter:ae,page:ue,sort:h}=Ba(e,{dataRelatedColsRef:d}),{doCheckAll:U,doUncheckAll:O,doCheck:$,doUncheck:q,headerCheckboxDisabledRef:J,someRowsCheckedRef:he,allRowsCheckedRef:le,mergedCheckedRowKeySetRef:de,mergedInderminateRowKeySetRef:ne}=Fa(e,{selectionColumnRef:K,treeMateRef:b,paginatedDataRef:y}),{stickyExpandedRowsRef:p,mergedExpandedRowKeysRef:E,renderExpandRef:me,expandableRef:A,doUpdateExpandedRowKeys:ee}=_a(e,b),{handleTableBodyScroll:Fe,handleTableHeaderScroll:ge,syncScrollState:ve,setHeaderScrollLeft:De,leftActiveFixedColKeyRef:je,leftActiveFixedChildrenColKeysRef:Re,rightActiveFixedColKeyRef:ke,rightActiveFixedChildrenColKeysRef:Ne,leftFixedColumnsRef:Ie,rightFixedColumnsRef:He,fixedColumnLeftMapRef:Ge,fixedColumnRightMapRef:$e}=Ta(e,{bodyWidthRef:v,mainTableInstRef:l,mergedCurrentPageRef:P}),{localeRef:fe}=pn("DataTable"),Ue=R(()=>e.virtualScroll||e.flexHeight||e.maxHeight!==void 0||f.value?"fixed":e.tableLayout);zt(Te,{props:e,treeMateRef:b,renderExpandIconRef:ie(e,"renderExpandIcon"),loadingKeySetRef:N(new Set),slots:n,indentRef:ie(e,"indent"),childTriggerColIndexRef:S,bodyWidthRef:v,componentId:hr(),hoverKeyRef:k,mergedClsPrefixRef:a,mergedThemeRef:g,scrollXRef:R(()=>e.scrollX),rowsRef:c,colsRef:s,paginatedDataRef:y,leftActiveFixedColKeyRef:je,leftActiveFixedChildrenColKeysRef:Re,rightActiveFixedColKeyRef:ke,rightActiveFixedChildrenColKeysRef:Ne,leftFixedColumnsRef:Ie,rightFixedColumnsRef:He,fixedColumnLeftMapRef:Ge,fixedColumnRightMapRef:$e,mergedCurrentPageRef:P,someRowsCheckedRef:he,allRowsCheckedRef:le,mergedSortStateRef:T,mergedFilterStateRef:_,loadingRef:ie(e,"loading"),rowClassNameRef:ie(e,"rowClassName"),mergedCheckedRowKeySetRef:de,mergedExpandedRowKeysRef:E,mergedInderminateRowKeySetRef:ne,localeRef:fe,expandableRef:A,stickyExpandedRowsRef:p,rowKeyRef:ie(e,"rowKey"),renderExpandRef:me,summaryRef:ie(e,"summary"),virtualScrollRef:ie(e,"virtualScroll"),rowPropsRef:ie(e,"rowProps"),stripedRef:ie(e,"striped"),checkOptionsRef:R(()=>{const{value:w}=K;return w==null?void 0:w.options}),rawPaginatedDataRef:C,filterMenuCssVarsRef:R(()=>{const{self:{actionDividerColor:w,actionPadding:Y,actionButtonMargin:se}}=g.value;return{"--n-action-padding":Y,"--n-action-button-margin":se,"--n-action-divider-color":w}}),onLoadRef:ie(e,"onLoad"),mergedTableLayoutRef:Ue,maxHeightRef:ie(e,"maxHeight"),minHeightRef:ie(e,"minHeight"),flexHeightRef:ie(e,"flexHeight"),headerCheckboxDisabledRef:J,paginationBehaviorOnFilterRef:ie(e,"paginationBehaviorOnFilter"),summaryPlacementRef:ie(e,"summaryPlacement"),scrollbarPropsRef:ie(e,"scrollbarProps"),syncScrollState:ve,doUpdatePage:M,doUpdateFilters:H,getResizableWidth:u,onUnstableColumnResize:I,clearResizableWidth:x,doUpdateResizableWidth:m,deriveNextSorter:V,doCheck:$,doUncheck:q,doCheckAll:U,doUncheckAll:O,doUpdateExpandedRowKeys:ee,handleTableHeaderScroll:ge,handleTableBodyScroll:Fe,setHeaderScrollLeft:De,renderCell:ie(e,"renderCell")});const Oe={filter:D,filters:W,clearFilters:Q,clearSorter:ae,page:ue,sort:h,clearFilter:X,scrollTo:(w,Y)=>{var se;(se=l.value)===null||se===void 0||se.scrollTo(w,Y)}},B=R(()=>{const{size:w}=e,{common:{cubicBezierEaseInOut:Y},self:{borderColor:se,tdColorHover:_e,thColor:xe,thColorHover:Se,tdColor:Ae,tdTextColor:Ye,thTextColor:Ve,thFontWeight:Ze,thButtonColorHover:We,thIconColor:Pe,thIconColorActive:Je,filterSize:pe,borderRadius:Ce,lineHeight:ft,tdColorModal:ht,thColorModal:vt,borderColorModal:mt,thColorHoverModal:gt,tdColorHoverModal:pt,borderColorPopover:zn,thColorPopover:Mn,tdColorPopover:Bn,tdColorHoverPopover:Tn,thColorHoverPopover:$n,paginationMargin:Un,emptyPadding:On,boxShadowAfter:_n,boxShadowBefore:An,sorterSize:Ln,resizableContainerSize:En,resizableSize:Nn,loadingColor:Kn,loadingSize:In,opacityLoading:Vn,tdColorStriped:Dn,tdColorStripedModal:jn,tdColorStripedPopover:Hn,[ce("fontSize",w)]:Wn,[ce("thPadding",w)]:qn,[ce("tdPadding",w)]:Xn}}=g.value;return{"--n-font-size":Wn,"--n-th-padding":qn,"--n-td-padding":Xn,"--n-bezier":Y,"--n-border-radius":Ce,"--n-line-height":ft,"--n-border-color":se,"--n-border-color-modal":mt,"--n-border-color-popover":zn,"--n-th-color":xe,"--n-th-color-hover":Se,"--n-th-color-modal":vt,"--n-th-color-hover-modal":gt,"--n-th-color-popover":Mn,"--n-th-color-hover-popover":$n,"--n-td-color":Ae,"--n-td-color-hover":_e,"--n-td-color-modal":ht,"--n-td-color-hover-modal":pt,"--n-td-color-popover":Bn,"--n-td-color-hover-popover":Tn,"--n-th-text-color":Ve,"--n-td-text-color":Ye,"--n-th-font-weight":Ze,"--n-th-button-color-hover":We,"--n-th-icon-color":Pe,"--n-th-icon-color-active":Je,"--n-filter-size":pe,"--n-pagination-margin":Un,"--n-empty-padding":On,"--n-box-shadow-before":An,"--n-box-shadow-after":_n,"--n-sorter-size":Ln,"--n-resizable-container-size":En,"--n-resizable-size":Nn,"--n-loading-size":In,"--n-loading-color":Kn,"--n-opacity-loading":Vn,"--n-td-color-striped":Dn,"--n-td-color-striped-modal":jn,"--n-td-color-striped-popover":Hn}}),L=o?ct("data-table",R(()=>e.size[0]),B,e):void 0,re=R(()=>{if(!e.pagination)return!1;if(e.paginateSinglePage)return!0;const w=z.value,{pageCount:Y}=w;return Y!==void 0?Y>1:w.itemCount&&w.pageSize&&w.itemCount>w.pageSize});return Object.assign({mainTableInstRef:l,mergedClsPrefix:a,mergedTheme:g,paginatedData:y,mergedBordered:t,mergedBottomBordered:i,mergedPagination:z,mergedShowPagination:re,cssVars:o?void 0:B,themeClass:L==null?void 0:L.themeClass,onRender:L==null?void 0:L.onRender},Oe)},render(){const{mergedClsPrefix:e,themeClass:n,onRender:t,$slots:a,spinProps:o}=this;return t==null||t(),r("div",{class:[`${e}-data-table`,n,{[`${e}-data-table--bordered`]:this.mergedBordered,[`${e}-data-table--bottom-bordered`]:this.mergedBottomBordered,[`${e}-data-table--single-line`]:this.singleLine,[`${e}-data-table--single-column`]:this.singleColumn,[`${e}-data-table--loading`]:this.loading,[`${e}-data-table--flex-height`]:this.flexHeight}],style:this.cssVars},r("div",{class:`${e}-data-table-wrapper`},r(Sa,{ref:"mainTableInstRef"})),this.mergedShowPagination?r("div",{class:`${e}-data-table__pagination`},r(Zr,Object.assign({theme:this.mergedTheme.peers.Pagination,themeOverrides:this.mergedTheme.peerOverrides.Pagination,disabled:this.loading},this.mergedPagination))):null,r(vr,{name:"fade-in-scale-up-transition"},{default:()=>this.loading?r("div",{class:`${e}-data-table-loading-wrapper`},Mt(a.loading,()=>[r(un,Object.assign({clsPrefix:e,strokeWidth:20},o))])):null}))}});function Na(e){let n="/panel/users/create";return e.id&&(n="/panel/users/update"),lt({url:n,data:e})}function Ka(e){return lt({url:"/panel/users/getList",data:e})}function Ia(e){return lt({url:"/panel/users/deletes",data:{userIds:e}})}function Va(){return lt({url:"/panel/users/getPublicVisitUser"})}function rn(e){return lt({url:"/panel/users/setPublicVisitUser",data:{userId:e}})}const Da={class:"float-right"},ja=te({__name:"index",props:{visible:{type:Boolean},userId:null,userInfo:null},emits:["update:visible","done"],setup(e,{emit:n}){const t=e,a=cn(),o={name:"",username:"",role:2,status:3},i=N(o),g=N(null),v=N([{label:oe("common.role.regularUser"),value:2},{label:oe("common.role.admin"),value:1}]),l={username:[{required:!0,trigger:"blur",message:oe("adminSettingUsers.formRules.usernameRequired"),min:5}],role:{required:!0,trigger:"blur",type:"number",message:oe("adminSettingUsers.formRules.roleRequired")},password:{trigger:"blur",min:6,max:20,message:oe("adminSettingUsers.formRules.passwordLimit")}},u=R({get:()=>t.visible,set:c=>{n("update:visible",c)}});Pt(u,(c,s)=>{var d;(d=t.userInfo)!=null&&d.id?i.value=t.userInfo||{}:i.value=o});const x=async()=>{const c=await Na(i.value);c.code===0?n("done",c.data.id):c.code!==-1&&a.warning(oe("common.failed"))},m=c=>{var s;c.preventDefault(),(s=g.value)==null||s.validate(d=>{d?console.log(d):x()})};return(c,s)=>{var d;return fn(),mr(be(Pr),{show:be(u),"onUpdate:show":s[4]||(s[4]=f=>gr(u)?u.value=f:null),size:"small",preset:"card",style:{width:"400px"},title:`${(d=e.userInfo)!=null&&d.id?c.$t("common.edit"):c.$t("common.add")}`},{footer:Le(()=>[hn("div",Da,[we(be(it),{type:"success",size:"small",onClick:m},{default:Le(()=>[Rt(kt(c.$t("common.save")),1)]),_:1})])]),default:Le(()=>[we(be(Ur),{ref_key:"formRef",ref:g,model:i.value,rules:l},{default:Le(()=>[we(be(dt),{path:"username",label:c.$t("common.username")},{default:Le(()=>[we(be(rt),{value:i.value.username,"onUpdate:value":s[0]||(s[0]=f=>i.value.username=f),type:"text",placeholder:c.$t("common.inputPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),we(be(dt),{path:"name",label:c.$t("common.nikeName")},{default:Le(()=>[we(be(rt),{value:i.value.name,"onUpdate:value":s[1]||(s[1]=f=>i.value.name=f),type:"text",placeholder:c.$t("common.inputPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),we(be(dt),{path:"role",label:c.$t("adminSettingUsers.role")},{default:Le(()=>[we(be(mn),{value:i.value.role,"onUpdate:value":s[2]||(s[2]=f=>i.value.role=f),options:v.value},null,8,["value","options"])]),_:1},8,["label"]),we(be(dt),{path:"password",label:c.$t("common.password")},{default:Le(()=>{var f;return[we(be(rt),{value:i.value.password,"onUpdate:value":s[3]||(s[3]=b=>i.value.password=b),maxlength:20,type:"password",placeholder:`${(f=e.userInfo)!=null&&f.id?c.$t("adminSettingUsers.EditpasswordPlaceholder"):c.$t("adminSettingUsers.passwordPlaceholder")}`},null,8,["value","placeholder"])]}),_:1},8,["label"])]),_:1},8,["model"])]),_:1},8,["show","title"])}}});var Ft=(e=>(e[e.admin=1]="admin",e[e.regularUser=2]="regularUser",e))(Ft||{});const Ha={class:"overflow-auto pt-2"},Wa={class:"my-[10px]"},eo=te({__name:"index",setup(e){const n=cn(),t=pr(),a=N(!1),o=N(!1),i=N(),g=N(),v=br(),l=N(null),u=({update:y})=>[{title:oe("common.username"),key:"username",render(C){var k;let K="";return l.value&&l.value===C.id&&(K=`[${oe("adminSettingUsers.pblicText")}]-`),C.username===((k=t.userInfo)==null?void 0:k.username)?`${K}${C.username} (${oe("adminSettingUsers.currentUseUsername")})`:K+C.username}},{title:oe("common.nikeName"),key:"name"},{title:oe("adminSettingUsers.role"),key:"role",render(C){switch(C.role){case Ft.admin:return r(Lt,{type:"info"},oe("common.role.admin"));case Ft.regularUser:return r(Lt,oe("common.role.regularUser"));default:return"-"}}},{title:oe("common.action"),key:"",render(C){const K=r(it,{strong:!0,tertiary:!0,size:"small"},{default(){return r(_r,{icon:"mingcute:more-1-fill"})}});return r(yn,{trigger:"click",onSelect(k){switch(k){case"update":y(C);break;case"publicMode":l.value&&l.value===C.id?rn(null).then(({code:z})=>{z===0&&(l.value=null)}):rn(C.id).then(({code:z})=>{z===0&&(l.value=C.id)});break;case"delete":v.warning({title:oe("common.warning"),content:oe("adminSettingUsers.deletePromptContent",{name:C.name,username:C.username}),positiveText:oe("common.confirm"),negativeText:oe("common.cancel"),onPositiveClick:()=>{P([C.id])}});break}},options:[{label:oe("common.edit"),key:"update"},{label:oe("adminSettingUsers.setOrUnsetPublicMode"),key:"publicMode"},{label:oe("common.delete"),key:"delete"}]},{default:()=>K})}}],x=N(),m=u({update(y){g.value=y,o.value=!0}}),c=yr({page:1,showSizePicker:!0,pageSizes:[10,30,50,100,200],pageSize:10,itemCount:0,onChange:y=>{c.page=y,b(null)},onUpdatePageSize:y=>{c.pageSize=y,c.page=1,b(null)},prefix(y){return oe("adminSettingUsers.userCountText",{count:y.itemCount})}});function s(y){b(y)}function d(){o.value=!0,g.value={}}function f(){o.value=!1,n.success(oe("common.success")),b(null)}async function b(y){a.value=!0;const C={page:y||c.page,limit:c.pageSize};i.value!==""&&(C.keyWord=i.value);const{data:K}=await Ka(C);c.itemCount=K.count,K.list&&(x.value=K.list),a.value=!1}async function P(y){const{code:C}=await Ia(y);C===0&&(n.success(oe("common.deleteSuccess")),b(null))}return xr(()=>{Va().then(({data:y})=>{l.value=y.id||null}),b(null)}),(y,C)=>(fn(),Cr("div",Ha,[we(be(Kr),{type:"info",bordered:!1},{default:Le(()=>[Rt(kt(y.$t("adminSettingUsers.alertText")),1)]),_:1}),hn("div",Wa,[we(be(it),{type:"primary",size:"small",ghost:"",onClick:d},{default:Le(()=>[Rt(kt(y.$t("common.add")),1)]),_:1})]),we(be(Ea),{columns:be(m),data:x.value,pagination:c,bordered:!1,loading:a.value,remote:!0,"onUpdate:page":s},null,8,["columns","data","pagination","loading"]),we(ja,{visible:o.value,"onUpdate:visible":C[0]||(C[0]=K=>o.value=K),"user-info":g.value,onDone:f},null,8,["visible","user-info"])]))}});export{eo as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b1d3d9b0.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b1d3d9b0.js deleted file mode 100644 index 298062238..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b1d3d9b0.js +++ /dev/null @@ -1,149 +0,0 @@ -import{aP as ys,bY as Gn,y as j,r as F,b as _s,bZ as mr,l as Et,g as h,f as he,au as bs,m as H,aj as Ot,n as K,K as de,p as Ct,q as $e,s as jn,af as Vn,a6 as Ft,b_ as Bn,z as Ie,b$ as Zn,c0 as Xn,bE as qn,c1 as Jn,P as Yt,t as Ss,bg as vr,aH as We,H as xs,ae as wt,D as us,L as Rt,V as Qn,ax as Kn,aR as qs,c2 as ds,J as ei,c3 as ti,w as si,c as yt,B as pr,N as ri,O as ni,a8 as Js,c4 as ii,T as xt,ao as Qs,S as _e,e as Kt,aZ as ai,ag as oi,E as fs,A as li,bJ as ui,c5 as di,b6 as fi,aW as ci,a_ as hi,a$ as je,aY as Ve,b2 as es,bi as mi,bp as vi,be as ks,c6 as pi,c7 as gi,bl as wi,c8 as yi}from"./index-7e19b821.js";import{N as _i,p as bi,i as gr,b as Si,h as xi}from"./index-c238f14b.js";function ki(e){if(typeof e=="number")return{"":e.toString()};const t={};return e.split(/ +/).forEach(s=>{if(s==="")return;const[r,n]=s.split(":");n===void 0?t[""]=r:t[r]=n}),t}function Be(e,t){var s;if(e==null)return;const r=ki(e);if(t===void 0)return r[""];if(typeof t=="string")return(s=r[t])!==null&&s!==void 0?s:r[""];if(Array.isArray(t)){for(let n=t.length-1;n>=0;--n){const i=t[n];if(i in r)return r[i]}return r[""]}else{let n,i=-1;return Object.keys(r).forEach(a=>{const o=Number(a);!Number.isNaN(o)&&t>=o&&o>=i&&(i=o,n=r[a])}),n}}function Mi(e,t="default",s=[]){const n=e.$slots[t];return n===void 0?s:n()}function Di(e){var t;const s=(t=e.dirs)===null||t===void 0?void 0:t.find(({dir:r})=>r===ys);return!!(s&&s.value===!1)}const Oi={xs:0,s:640,m:1024,l:1280,xl:1536,"2xl":1920};function Ci(e){return`(min-width: ${e}px)`}const it={};function Yi(e=Oi){if(!Gn)return j(()=>[]);if(typeof window.matchMedia!="function")return j(()=>[]);const t=F({}),s=Object.keys(e),r=(n,i)=>{n.matches?t.value[i]=!0:t.value[i]=!1};return s.forEach(n=>{const i=e[n];let a,o;it[i]===void 0?(a=window.matchMedia(Ci(i)),a.addEventListener?a.addEventListener("change",l=>{o.forEach(u=>{u(l,n)})}):a.addListener&&a.addListener(l=>{o.forEach(u=>{u(l,n)})}),o=new Set,it[i]={mql:a,cbs:o}):(a=it[i].mql,o=it[i].cbs),o.add(r),a.matches&&o.forEach(l=>{l(a,n)})}),_s(()=>{s.forEach(n=>{const{cbs:i}=it[e[n]];i.has(r)&&i.delete(r)})}),j(()=>{const{value:n}=t;return s.filter(i=>n[i])})}function Ri(e,t,s,r){var n=-1,i=e==null?0:e.length;for(r&&i&&(s=e[++n]);++n{var t;const{root:s=null}=e;return{hash:`${e.rootMargin||"0px 0px 0px 0px"}-${Array.isArray(e.threshold)?e.threshold.join(","):(t=e.threshold)!==null&&t!==void 0?t:"0"}`,options:Object.assign(Object.assign({},e),{root:(typeof s=="string"?document.querySelector(s):s)||document.documentElement})}},ts=new WeakMap,ss=new WeakMap,rs=new WeakMap,Ya=(e,t,s)=>{if(!e)return()=>{};const r=Ca(t),{root:n}=r.options;let i;const a=ts.get(n);a?i=a:(i=new Map,ts.set(n,i));let o,l;i.has(r.hash)?(l=i.get(r.hash),l[1].has(e)||(o=l[0],l[1].add(e),o.observe(e))):(o=new IntersectionObserver(w=>{w.forEach(M=>{if(M.isIntersecting){const P=ss.get(M.target),I=rs.get(M.target);P&&P(),I&&(I.value=!0)}})},r.options),o.observe(e),l=[o,new Set([e])],i.set(r.hash,l));let u=!1;const f=()=>{u||(ss.delete(e),rs.delete(e),u=!0,l[1].has(e)&&(l[0].unobserve(e),l[1].delete(e)),l[1].size<=0&&i.delete(r.hash),i.size||ts.delete(n))};return ss.set(e,f),rs.set(e,s),f},E="0!important",Tr="-1px!important";function Ze(e){return de(e+"-type",[K("& +",[H("button",{},[de(e+"-type",[Ct("border",{borderLeftWidth:E}),Ct("state-border",{left:Tr})])])])])}function Xe(e){return de(e+"-type",[K("& +",[H("button",[de(e+"-type",[Ct("border",{borderTopWidth:E}),Ct("state-border",{top:Tr})])])])])}const Ra=H("button-group",` - flex-wrap: nowrap; - display: inline-flex; - position: relative; -`,[Ot("vertical",{flexDirection:"row"},[Ot("rtl",[H("button",[K("&:first-child:not(:last-child)",` - margin-right: ${E}; - border-top-right-radius: ${E}; - border-bottom-right-radius: ${E}; - `),K("&:last-child:not(:first-child)",` - margin-left: ${E}; - border-top-left-radius: ${E}; - border-bottom-left-radius: ${E}; - `),K("&:not(:first-child):not(:last-child)",` - margin-left: ${E}; - margin-right: ${E}; - border-radius: ${E}; - `),Ze("default"),de("ghost",[Ze("primary"),Ze("info"),Ze("success"),Ze("warning"),Ze("error")])])])]),de("vertical",{flexDirection:"column"},[H("button",[K("&:first-child:not(:last-child)",` - margin-bottom: ${E}; - margin-left: ${E}; - margin-right: ${E}; - border-bottom-left-radius: ${E}; - border-bottom-right-radius: ${E}; - `),K("&:last-child:not(:first-child)",` - margin-top: ${E}; - margin-left: ${E}; - margin-right: ${E}; - border-top-left-radius: ${E}; - border-top-right-radius: ${E}; - `),K("&:not(:first-child):not(:last-child)",` - margin: ${E}; - border-radius: ${E}; - `),Xe("default"),de("ghost",[Xe("primary"),Xe("info"),Xe("success"),Xe("warning"),Xe("error")])])])]),Ta={size:{type:String,default:void 0},vertical:Boolean},sf=he({name:"ButtonGroup",props:Ta,setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:s}=$e(e);return jn("-button-group",Ra,t),Ft(Bn,e),{rtlEnabled:Vn("ButtonGroup",s,t),mergedClsPrefix:t}},render(){const{mergedClsPrefix:e}=this;return h("div",{class:[`${e}-button-group`,this.rtlEnabled&&`${e}-button-group--rtl`,this.vertical&&`${e}-button-group--vertical`],role:"group"},this.$slots)}}),Pa=Object.assign(Object.assign({},bi),Ie.props),Pr=he({name:"Tooltip",props:Pa,__popover__:!0,setup(e){const{mergedClsPrefixRef:t}=$e(e),s=Ie("Tooltip","-tooltip",void 0,Zn,e,t),r=F(null);return Object.assign(Object.assign({},{syncPosition(){r.value.syncPosition()},setShow(i){r.value.setShow(i)}}),{popoverRef:r,mergedTheme:s,popoverThemeOverrides:j(()=>s.value.self)})},render(){const{mergedTheme:e,internalExtraClass:t}=this;return h(_i,Object.assign(Object.assign({},this.$props),{theme:e.peers.Popover,themeOverrides:e.peerOverrides.Popover,builtinThemeOverrides:this.popoverThemeOverrides,internalExtraClass:t.concat("tooltip"),ref:"popoverRef"}),this.$slots)}}),Na=H("ellipsis",{overflow:"hidden"},[Ot("line-clamp",` - white-space: nowrap; - display: inline-block; - vertical-align: bottom; - max-width: 100%; - `),de("line-clamp",` - display: -webkit-inline-box; - -webkit-box-orient: vertical; - `),de("cursor-pointer",` - cursor: pointer; - `)]);function rr(e){return`${e}-ellipsis--line-clamp`}function nr(e,t){return`${e}-ellipsis--cursor-${t}`}const Ia=Object.assign(Object.assign({},Ie.props),{expandTrigger:String,lineClamp:[Number,String],tooltip:{type:[Boolean,Object],default:!0}}),rf=he({name:"Ellipsis",inheritAttrs:!1,props:Ia,setup(e,{slots:t,attrs:s}){const r=Xn(),n=Ie("Ellipsis","-ellipsis",Na,Jn,e,r),i=F(null),a=F(null),o=F(null),l=F(!1),u=j(()=>{const{lineClamp:b}=e,{value:x}=l;return b!==void 0?{textOverflow:"","-webkit-line-clamp":x?"":b}:{textOverflow:x?"":"ellipsis","-webkit-line-clamp":""}});function f(){let b=!1;const{value:x}=l;if(x)return!0;const{value:_}=i;if(_){const{lineClamp:G}=e;if(P(_),G!==void 0)b=_.scrollHeight<=_.offsetHeight;else{const{value:Q}=a;Q&&(b=Q.getBoundingClientRect().width<=_.getBoundingClientRect().width)}I(_,b)}return b}const w=j(()=>e.expandTrigger==="click"?()=>{var b;const{value:x}=l;x&&((b=o.value)===null||b===void 0||b.setShow(!1)),l.value=!x}:void 0);qn(()=>{var b;e.tooltip&&((b=o.value)===null||b===void 0||b.setShow(!1))});const M=()=>h("span",Object.assign({},Yt(s,{class:[`${r.value}-ellipsis`,e.lineClamp!==void 0?rr(r.value):void 0,e.expandTrigger==="click"?nr(r.value,"pointer"):void 0],style:u.value}),{ref:"triggerRef",onClick:w.value,onMouseenter:e.expandTrigger==="click"?f:void 0}),e.lineClamp?t:h("span",{ref:"triggerInnerRef"},t));function P(b){if(!b)return;const x=u.value,_=rr(r.value);e.lineClamp!==void 0?$(b,_,"add"):$(b,_,"remove");for(const G in x)b.style[G]!==x[G]&&(b.style[G]=x[G])}function I(b,x){const _=nr(r.value,"pointer");e.expandTrigger==="click"&&!x?$(b,_,"add"):$(b,_,"remove")}function $(b,x,_){_==="add"?b.classList.contains(x)||b.classList.add(x):b.classList.contains(x)&&b.classList.remove(x)}return{mergedTheme:n,triggerRef:i,triggerInnerRef:a,tooltipRef:o,handleClick:w,renderTrigger:M,getTooltipDisabled:f}},render(){var e;const{tooltip:t,renderTrigger:s,$slots:r}=this;if(t){const{mergedTheme:n}=this;return h(Pr,Object.assign({ref:"tooltipRef",placement:"top"},t,{getDisabled:this.getTooltipDisabled,theme:n.peers.Tooltip,themeOverrides:n.peerOverrides.Tooltip}),{trigger:s,default:(e=r.tooltip)!==null&&e!==void 0?e:r.default})}else return s()}}),ir=1,Nr=Ss("n-grid"),Ir=1,La={span:{type:[Number,String],default:Ir},offset:{type:[Number,String],default:0},suffix:Boolean,privateOffset:Number,privateSpan:Number,privateColStart:Number,privateShow:{type:Boolean,default:!0}},nf=he({__GRID_ITEM__:!0,name:"GridItem",alias:["Gi"],props:La,setup(){const{isSsrRef:e,xGapRef:t,itemStyleRef:s,overflowRef:r,layoutShiftDisabledRef:n}=xs(Nr),i=vr();return{overflow:r,itemStyle:s,layoutShiftDisabled:n,mergedXGap:j(()=>We(t.value||0)),deriveStyle:()=>{e.value;const{privateSpan:a=Ir,privateShow:o=!0,privateColStart:l=void 0,privateOffset:u=0}=i.vnode.props,{value:f}=t,w=We(f||0);return{display:o?"":"none",gridColumn:`${l??`span ${a}`} / span ${a}`,marginLeft:u?`calc((100% - (${a} - 1) * ${w}) / ${a} * ${u} + ${w} * ${u})`:""}}}},render(){var e,t;if(this.layoutShiftDisabled){const{span:s,offset:r,mergedXGap:n}=this;return h("div",{style:{gridColumn:`span ${s} / span ${s}`,marginLeft:r?`calc((100% - (${s} - 1) * ${n}) / ${s} * ${r} + ${n} * ${r})`:""}},this.$slots)}return h("div",{style:[this.itemStyle,this.deriveStyle()]},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e,{overflow:this.overflow}))}}),Wa={xs:0,s:640,m:1024,l:1280,xl:1536,xxl:1920},Lr=24,ns="__ssr__",Ea={layoutShiftDisabled:Boolean,responsive:{type:[String,Boolean],default:"self"},cols:{type:[Number,String],default:Lr},itemResponsive:Boolean,collapsed:Boolean,collapsedRows:{type:Number,default:1},itemStyle:[Object,String],xGap:{type:[Number,String],default:0},yGap:{type:[Number,String],default:0}},af=he({name:"Grid",inheritAttrs:!1,props:Ea,setup(e){const{mergedClsPrefixRef:t,mergedBreakpointsRef:s}=$e(e),r=/^\d+$/,n=F(void 0),i=Yi((s==null?void 0:s.value)||Wa),a=wt(()=>!!(e.itemResponsive||!r.test(e.cols.toString())||!r.test(e.xGap.toString())||!r.test(e.yGap.toString()))),o=j(()=>{if(a.value)return e.responsive==="self"?n.value:i.value}),l=wt(()=>{var x;return(x=Number(Be(e.cols.toString(),o.value)))!==null&&x!==void 0?x:Lr}),u=wt(()=>Be(e.xGap.toString(),o.value)),f=wt(()=>Be(e.yGap.toString(),o.value)),w=x=>{n.value=x.contentRect.width},M=x=>{gr(w,x)},P=F(!1),I=j(()=>{if(e.responsive==="self")return M}),$=F(!1),b=F();return us(()=>{const{value:x}=b;x&&x.hasAttribute(ns)&&(x.removeAttribute(ns),$.value=!0)}),Ft(Nr,{layoutShiftDisabledRef:Rt(e,"layoutShiftDisabled"),isSsrRef:$,itemStyleRef:Rt(e,"itemStyle"),xGapRef:u,overflowRef:P}),{isSsr:!bs,contentEl:b,mergedClsPrefix:t,style:j(()=>e.layoutShiftDisabled?{width:"100%",display:"grid",gridTemplateColumns:`repeat(${e.cols}, minmax(0, 1fr))`,columnGap:We(e.xGap),rowGap:We(e.yGap)}:{width:"100%",display:"grid",gridTemplateColumns:`repeat(${l.value}, minmax(0, 1fr))`,columnGap:We(u.value),rowGap:We(f.value)}),isResponsive:a,responsiveQuery:o,responsiveCols:l,handleResize:I,overflow:P}},render(){if(this.layoutShiftDisabled)return h("div",Yt({ref:"contentEl",class:`${this.mergedClsPrefix}-grid`,style:this.style},this.$attrs),this.$slots);const e=()=>{var t,s,r,n,i,a,o;this.overflow=!1;const l=Kn(Mi(this)),u=[],{collapsed:f,collapsedRows:w,responsiveCols:M,responsiveQuery:P}=this;l.forEach(_=>{var G,Q,ae,ye,He;if(((G=_==null?void 0:_.type)===null||G===void 0?void 0:G.__GRID_ITEM__)!==!0)return;if(Di(_)){const Ye=qs(_);Ye.props?Ye.props.privateShow=!1:Ye.props={privateShow:!1},u.push({child:Ye,rawChildSpan:0});return}_.dirs=((Q=_.dirs)===null||Q===void 0?void 0:Q.filter(({dir:Ye})=>Ye!==ys))||null,((ae=_.dirs)===null||ae===void 0?void 0:ae.length)===0&&(_.dirs=null);const z=qs(_),gt=Number((He=Be((ye=z.props)===null||ye===void 0?void 0:ye.span,P))!==null&&He!==void 0?He:ir);gt!==0&&u.push({child:z,rawChildSpan:gt})});let I=0;const $=(t=u[u.length-1])===null||t===void 0?void 0:t.child;if($!=null&&$.props){const _=(s=$.props)===null||s===void 0?void 0:s.suffix;_!==void 0&&_!==!1&&(I=Number((n=Be((r=$.props)===null||r===void 0?void 0:r.span,P))!==null&&n!==void 0?n:ir),$.props.privateSpan=I,$.props.privateColStart=M+1-I,$.props.privateShow=(i=$.props.privateShow)!==null&&i!==void 0?i:!0)}let b=0,x=!1;for(const{child:_,rawChildSpan:G}of u){if(x&&(this.overflow=!0),!x){const Q=Number((o=Be((a=_.props)===null||a===void 0?void 0:a.offset,P))!==null&&o!==void 0?o:0),ae=Math.min(G+Q,M);if(_.props?(_.props.privateSpan=ae,_.props.privateOffset=Q):_.props={privateSpan:ae,privateOffset:Q},f){const ye=b%M;ae+ye>M&&(b+=M-ye),ae+b+I>w*M?x=!0:b+=ae}}x&&(_.props?_.props.privateShow!==!0&&(_.props.privateShow=!1):_.props={privateShow:!1})}return h("div",Yt({ref:"contentEl",class:`${this.mergedClsPrefix}-grid`,style:this.style,[ns]:this.isSsr||void 0},this.$attrs),u.map(({child:_})=>_))};return this.isResponsive&&this.responsive==="self"?h(Qn,{onResize:this.handleResize},{default:e}):e()}}),Ms=Object.assign(Object.assign({},Ie.props),{onPreviewPrev:Function,onPreviewNext:Function,showToolbar:{type:Boolean,default:!0},showToolbarTooltip:Boolean}),Wr=Ss("n-image");var Er=globalThis&&globalThis.__awaiter||function(e,t,s,r){function n(i){return i instanceof s?i:new s(function(a){a(i)})}return new(s||(s=Promise))(function(i,a){function o(f){try{u(r.next(f))}catch(w){a(w)}}function l(f){try{u(r.throw(f))}catch(w){a(w)}}function u(f){f.done?i(f.value):n(f.value).then(o,l)}u((r=r.apply(e,t||[])).next())})};const Fr=e=>e.includes("image/"),ar=(e="")=>{const t=e.split("/"),r=t[t.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(r)||[""])[0]},or=/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i,of=e=>{if(e.type)return Fr(e.type);const t=ar(e.name||"");if(or.test(t))return!0;const s=e.thumbnailUrl||e.url||"",r=ar(s);return!!(/^data:image\//.test(s)||or.test(r))};function lf(e){return Er(this,void 0,void 0,function*(){return yield new Promise(t=>{if(!e.type||!Fr(e.type)){t("");return}t(window.URL.createObjectURL(e))})})}const uf=bs&&window.FileReader&&window.File;function Fa(e){return e.isDirectory}function $a(e){return e.isFile}function df(e,t){return Er(this,void 0,void 0,function*(){const s=[];let r,n=0;function i(){n++}function a(){n--,n||r(s)}function o(l){l.forEach(u=>{if(u){if(i(),t&&Fa(u)){const f=u.createReader();i(),f.readEntries(w=>{o(w),a()},()=>{a()})}else $a(u)&&(i(),u.file(f=>{s.push({file:f,entry:u,source:"dnd"}),a()},()=>{a()}));a()}})}return yield new Promise(l=>{r=l,o(e)}),s})}function ff(e){const{id:t,name:s,percentage:r,status:n,url:i,file:a,thumbnailUrl:o,type:l,fullPath:u,batchId:f}=e;return{id:t,name:s,percentage:r??null,status:n,url:i??null,file:a??null,thumbnailUrl:o??null,type:l??null,fullPath:u??null,batchId:f??null}}function cf(e,t,s){return e=e.toLowerCase(),t=t.toLocaleLowerCase(),s=s.toLocaleLowerCase(),s.split(",").map(n=>n.trim()).filter(Boolean).some(n=>{if(n.startsWith(".")){if(e.endsWith(n))return!0}else if(n.includes("/")){const[i,a]=t.split("/"),[o,l]=n.split("/");if((o==="*"||i&&o&&o===i)&&(l==="*"||a&&l&&l===a))return!0}else return!0;return!1})}const Aa=(e,t)=>{if(!e)return;const s=document.createElement("a");s.href=e,t!==void 0&&(s.download=t),document.body.appendChild(s),s.click(),document.body.removeChild(s)},Ha=h("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M6 5C5.75454 5 5.55039 5.17688 5.50806 5.41012L5.5 5.5V14.5C5.5 14.7761 5.72386 15 6 15C6.24546 15 6.44961 14.8231 6.49194 14.5899L6.5 14.5V5.5C6.5 5.22386 6.27614 5 6 5ZM13.8536 5.14645C13.68 4.97288 13.4106 4.9536 13.2157 5.08859L13.1464 5.14645L8.64645 9.64645C8.47288 9.82001 8.4536 10.0894 8.58859 10.2843L8.64645 10.3536L13.1464 14.8536C13.3417 15.0488 13.6583 15.0488 13.8536 14.8536C14.0271 14.68 14.0464 14.4106 13.9114 14.2157L13.8536 14.1464L9.70711 10L13.8536 5.85355C14.0488 5.65829 14.0488 5.34171 13.8536 5.14645Z",fill:"currentColor"})),Ua=h("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M13.5 5C13.7455 5 13.9496 5.17688 13.9919 5.41012L14 5.5V14.5C14 14.7761 13.7761 15 13.5 15C13.2545 15 13.0504 14.8231 13.0081 14.5899L13 14.5V5.5C13 5.22386 13.2239 5 13.5 5ZM5.64645 5.14645C5.82001 4.97288 6.08944 4.9536 6.28431 5.08859L6.35355 5.14645L10.8536 9.64645C11.0271 9.82001 11.0464 10.0894 10.9114 10.2843L10.8536 10.3536L6.35355 14.8536C6.15829 15.0488 5.84171 15.0488 5.64645 14.8536C5.47288 14.68 5.4536 14.4106 5.58859 14.2157L5.64645 14.1464L9.79289 10L5.64645 5.85355C5.45118 5.65829 5.45118 5.34171 5.64645 5.14645Z",fill:"currentColor"})),za=h("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h("path",{d:"M4.089 4.216l.057-.07a.5.5 0 0 1 .638-.057l.07.057L10 9.293l5.146-5.147a.5.5 0 0 1 .638-.057l.07.057a.5.5 0 0 1 .057.638l-.057.07L10.707 10l5.147 5.146a.5.5 0 0 1 .057.638l-.057.07a.5.5 0 0 1-.638.057l-.07-.057L10 10.707l-5.146 5.147a.5.5 0 0 1-.638.057l-.07-.057a.5.5 0 0 1-.057-.638l.057-.07L9.293 10L4.146 4.854a.5.5 0 0 1-.057-.638l.057-.07l-.057.07z",fill:"currentColor"})),Ga=h("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 1024 1024"},h("path",{fill:"currentColor",d:"M505.7 661a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"})),ja=K([K("body >",[H("image-container","position: fixed;")]),H("image-preview-container",` - position: fixed; - left: 0; - right: 0; - top: 0; - bottom: 0; - display: flex; - `),H("image-preview-overlay",` - z-index: -1; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - background: rgba(0, 0, 0, .3); - `,[ds()]),H("image-preview-toolbar",` - z-index: 1; - position: absolute; - left: 50%; - transform: translateX(-50%); - border-radius: var(--n-toolbar-border-radius); - height: 48px; - bottom: 40px; - padding: 0 12px; - background: var(--n-toolbar-color); - box-shadow: var(--n-toolbar-box-shadow); - color: var(--n-toolbar-icon-color); - transition: color .3s var(--n-bezier); - display: flex; - align-items: center; - `,[H("base-icon",` - padding: 0 8px; - font-size: 28px; - cursor: pointer; - `),ds()]),H("image-preview-wrapper",` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - display: flex; - pointer-events: none; - `,[ei()]),H("image-preview",` - user-select: none; - -webkit-user-select: none; - pointer-events: all; - margin: auto; - max-height: calc(100vh - 32px); - max-width: calc(100vw - 32px); - transition: transform .3s var(--n-bezier); - `),H("image",` - display: inline-flex; - max-height: 100%; - max-width: 100%; - `,[Ot("preview-disabled",` - cursor: pointer; - `),K("img",` - border-radius: inherit; - `)])]),_t=32,$r=he({name:"ImagePreview",props:Object.assign(Object.assign({},Ms),{onNext:Function,onPrev:Function,clsPrefix:{type:String,required:!0}}),setup(e){const t=Ie("Image","-image",ja,ti,e,Rt(e,"clsPrefix"));let s=null;const r=F(null),n=F(null),i=F(void 0),a=F(!1),o=F(!1),{localeRef:l}=Si("Image");function u(){const{value:v}=n;if(!s||!v)return;const{style:y}=v,p=s.getBoundingClientRect(),L=p.left+p.width/2,W=p.top+p.height/2;y.transformOrigin=`${L}px ${W}px`}function f(v){var y,p;switch(v.key){case" ":v.preventDefault();break;case"ArrowLeft":(y=e.onPrev)===null||y===void 0||y.call(e);break;case"ArrowRight":(p=e.onNext)===null||p===void 0||p.call(e);break;case"Escape":Bs();break}}si(a,v=>{v?Kt("keydown",document,f):yt("keydown",document,f)}),_s(()=>{yt("keydown",document,f)});let w=0,M=0,P=0,I=0,$=0,b=0,x=0,_=0,G=!1;function Q(v){const{clientX:y,clientY:p}=v;P=y-w,I=p-M,gr(oe)}function ae(v){const{mouseUpClientX:y,mouseUpClientY:p,mouseDownClientX:L,mouseDownClientY:W}=v,q=L-y,se=W-p,le=`vertical${se>0?"Top":"Bottom"}`,Re=`horizontal${q>0?"Left":"Right"}`;return{moveVerticalDirection:le,moveHorizontalDirection:Re,deltaHorizontal:q,deltaVertical:se}}function ye(v){const{value:y}=r;if(!y)return{offsetX:0,offsetY:0};const p=y.getBoundingClientRect(),{moveVerticalDirection:L,moveHorizontalDirection:W,deltaHorizontal:q,deltaVertical:se}=v||{};let le=0,Re=0;return p.width<=window.innerWidth?le=0:p.left>0?le=(p.width-window.innerWidth)/2:p.right0?Re=(p.height-window.innerHeight)/2:p.bottom.5){const v=X;Ue-=1,X=Math.max(.5,Math.pow(Jt,Ue));const y=v-X;oe(!1);const p=ye();X+=y,oe(!1),X-=y,P=p.offsetX,I=p.offsetY,oe()}}function An(){const v=i.value;v&&Aa(v,void 0)}function oe(v=!0){var y;const{value:p}=r;if(!p)return;const{style:L}=p,W=ai((y=z==null?void 0:z.previewedImgPropsRef.value)===null||y===void 0?void 0:y.style);let q="";if(typeof W=="string")q=W+";";else for(const le in W)q+=`${ba(le)}: ${W[le]};`;const se=`transform-origin: center; transform: translateX(${P}px) translateY(${I}px) rotate(${ze}deg) scale(${X});`;G?L.cssText=q+"cursor: grabbing; transition: none;"+se:L.cssText=q+"cursor: grab;"+se+(v?"":"transition: none;"),v||p.offsetHeight}function Bs(){a.value=!a.value,o.value=!0}function Hn(){X=Vs(),Ue=Math.ceil(Math.log(X)/Math.log(Jt)),P=0,I=0,oe()}const Un={setPreviewSrc:v=>{i.value=v},setThumbnailEl:v=>{s=v},toggleShow:Bs};function zn(v,y){if(e.showToolbarTooltip){const{value:p}=t;return h(Pr,{to:!1,theme:p.peers.Tooltip,themeOverrides:p.peerOverrides.Tooltip,keepAliveOnHover:!1},{default:()=>l.value[y],trigger:()=>v})}else return v}const Zs=j(()=>{const{common:{cubicBezierEaseInOut:v},self:{toolbarIconColor:y,toolbarBorderRadius:p,toolbarBoxShadow:L,toolbarColor:W}}=t.value;return{"--n-bezier":v,"--n-toolbar-icon-color":y,"--n-toolbar-color":W,"--n-toolbar-border-radius":p,"--n-toolbar-box-shadow":L}}),{inlineThemeDisabled:Xs}=$e(),Ge=Xs?pr("image-preview",void 0,Zs,e):void 0;return Object.assign({previewRef:r,previewWrapperRef:n,previewSrc:i,show:a,appear:ri(),displayed:o,previewedImgProps:z==null?void 0:z.previewedImgPropsRef,handleWheel(v){v.preventDefault()},handlePreviewMousedown:gt,handlePreviewDblclick:Ye,syncTransformOrigin:u,handleAfterLeave:()=>{Qt(),ze=0,o.value=!1},handleDragStart:v=>{var y,p;(p=(y=z==null?void 0:z.previewedImgPropsRef.value)===null||y===void 0?void 0:y.onDragstart)===null||p===void 0||p.call(y,v),v.preventDefault()},zoomIn:Fn,zoomOut:$n,handleDownloadClick:An,rotateCounterclockwise:Ln,rotateClockwise:Wn,handleSwitchPrev:Nn,handleSwitchNext:In,withTooltip:zn,resizeToOrignalImageSize:Hn,cssVars:Xs?void 0:Zs,themeClass:Ge==null?void 0:Ge.themeClass,onRender:Ge==null?void 0:Ge.onRender},Un)},render(){var e,t;const{clsPrefix:s}=this;return h(Qs,null,(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e),h(ni,{show:this.show},{default:()=>{var r;return this.show||this.displayed?((r=this.onRender)===null||r===void 0||r.call(this),Js(h("div",{class:[`${s}-image-preview-container`,this.themeClass],style:this.cssVars,onWheel:this.handleWheel},h(xt,{name:"fade-in-transition",appear:this.appear},{default:()=>this.show?h("div",{class:`${s}-image-preview-overlay`,onClick:this.toggleShow}):null}),this.showToolbar?h(xt,{name:"fade-in-transition",appear:this.appear},{default:()=>{if(!this.show)return null;const{withTooltip:n}=this;return h("div",{class:`${s}-image-preview-toolbar`},this.onPrev?h(Qs,null,n(h(_e,{clsPrefix:s,onClick:this.handleSwitchPrev},{default:()=>Ha}),"tipPrevious"),n(h(_e,{clsPrefix:s,onClick:this.handleSwitchNext},{default:()=>Ua}),"tipNext")):null,n(h(_e,{clsPrefix:s,onClick:this.rotateCounterclockwise},{default:()=>h(xa,null)}),"tipCounterclockwise"),n(h(_e,{clsPrefix:s,onClick:this.rotateClockwise},{default:()=>h(Sa,null)}),"tipClockwise"),n(h(_e,{clsPrefix:s,onClick:this.resizeToOrignalImageSize},{default:()=>h(Da,null)}),"tipOriginalSize"),n(h(_e,{clsPrefix:s,onClick:this.zoomOut},{default:()=>h(Ma,null)}),"tipZoomOut"),n(h(_e,{clsPrefix:s,onClick:this.zoomIn},{default:()=>h(ka,null)}),"tipZoomIn"),n(h(_e,{clsPrefix:s,onClick:this.handleDownloadClick},{default:()=>Ga}),"tipDownload"),n(h(_e,{clsPrefix:s,onClick:this.toggleShow},{default:()=>za}),"tipClose"))}}):null,h(xt,{name:"fade-in-scale-up-transition",onAfterLeave:this.handleAfterLeave,appear:this.appear,onEnter:this.syncTransformOrigin,onBeforeLeave:this.syncTransformOrigin},{default:()=>{const{previewedImgProps:n={}}=this;return Js(h("div",{class:`${s}-image-preview-wrapper`,ref:"previewWrapperRef"},h("img",Object.assign({},n,{draggable:!1,onMousedown:this.handlePreviewMousedown,onDblclick:this.handlePreviewDblclick,class:[`${s}-image-preview`,n.class],key:this.previewSrc,src:this.previewSrc,ref:"previewRef",onDragstart:this.handleDragStart}))),[[ys,this.show]])}})),[[ii,{enabled:this.show}]])):null}}))}}),Ar=Ss("n-image-group"),Va=Ms,hf=he({name:"ImageGroup",props:Va,setup(e){let t;const{mergedClsPrefixRef:s}=$e(e),r=`c${oi()}`,n=vr(),i=l=>{var u;t=l,(u=o.value)===null||u===void 0||u.setPreviewSrc(l)};function a(l){var u,f;if(!(n!=null&&n.proxy))return;const M=n.proxy.$el.parentElement.querySelectorAll(`[data-group-id=${r}]:not([data-error=true])`);if(!M.length)return;const P=Array.from(M).findIndex(I=>I.dataset.previewSrc===t);~P?i(M[(P+l+M.length)%M.length].dataset.previewSrc):i(M[0].dataset.previewSrc),l===1?(u=e.onPreviewNext)===null||u===void 0||u.call(e):(f=e.onPreviewPrev)===null||f===void 0||f.call(e)}Ft(Ar,{mergedClsPrefixRef:s,setPreviewSrc:i,setThumbnailEl:l=>{var u;(u=o.value)===null||u===void 0||u.setThumbnailEl(l)},toggleShow:()=>{var l;(l=o.value)===null||l===void 0||l.toggleShow()},groupId:r});const o=F(null);return{mergedClsPrefix:s,previewInstRef:o,next:()=>{a(1)},prev:()=>{a(-1)}}},render(){return h($r,{theme:this.theme,themeOverrides:this.themeOverrides,clsPrefix:this.mergedClsPrefix,ref:"previewInstRef",onPrev:this.prev,onNext:this.next,showToolbar:this.showToolbar,showToolbarTooltip:this.showToolbarTooltip},this.$slots)}}),Ba=Object.assign({alt:String,height:[String,Number],imgProps:Object,previewedImgProps:Object,lazy:Boolean,intersectionObserverOptions:Object,objectFit:{type:String,default:"fill"},previewSrc:String,fallbackSrc:String,width:[String,Number],src:String,previewDisabled:Boolean,loadDescription:String,onError:Function,onLoad:Function},Ms),mf=he({name:"Image",props:Ba,inheritAttrs:!1,setup(e){const t=F(null),s=F(!1),r=F(null),n=xs(Ar,null),{mergedClsPrefixRef:i}=n||$e(e),a={click:()=>{if(e.previewDisabled||s.value)return;const u=e.previewSrc||e.src;if(n){n.setPreviewSrc(u),n.setThumbnailEl(t.value),n.toggleShow();return}const{value:f}=r;f&&(f.setPreviewSrc(u),f.setThumbnailEl(t.value),f.toggleShow())}},o=F(!e.lazy);us(()=>{var u;(u=t.value)===null||u===void 0||u.setAttribute("data-group-id",(n==null?void 0:n.groupId)||"")}),us(()=>{if(e.lazy&&e.intersectionObserverOptions){let u;const f=fs(()=>{u==null||u(),u=void 0,u=Ya(t.value,e.intersectionObserverOptions,o)});_s(()=>{f(),u==null||u()})}}),fs(()=>{var u;e.src,(u=e.imgProps)===null||u===void 0||u.src,s.value=!1});const l=F(!1);return Ft(Wr,{previewedImgPropsRef:Rt(e,"previewedImgProps")}),Object.assign({mergedClsPrefix:i,groupId:n==null?void 0:n.groupId,previewInstRef:r,imageRef:t,showError:s,shouldStartLoading:o,loaded:l,mergedOnClick:u=>{var f,w;a.click(),(w=(f=e.imgProps)===null||f===void 0?void 0:f.onClick)===null||w===void 0||w.call(f,u)},mergedOnError:u=>{if(!o.value)return;s.value=!0;const{onError:f,imgProps:{onError:w}={}}=e;f==null||f(u),w==null||w(u)},mergedOnLoad:u=>{const{onLoad:f,imgProps:{onLoad:w}={}}=e;f==null||f(u),w==null||w(u),l.value=!0}},a)},render(){var e,t;const{mergedClsPrefix:s,imgProps:r={},loaded:n,$attrs:i,lazy:a}=this,o=(t=(e=this.$slots).placeholder)===null||t===void 0?void 0:t.call(e),l=this.src||r.src,u=h("img",Object.assign(Object.assign({},r),{ref:"imageRef",width:this.width||r.width,height:this.height||r.height,src:this.showError?this.fallbackSrc:a&&this.intersectionObserverOptions?this.shouldStartLoading?l:void 0:l,alt:this.alt||r.alt,"aria-label":this.alt||r.alt,onClick:this.mergedOnClick,onError:this.mergedOnError,onLoad:this.mergedOnLoad,loading:Oa&&a&&!this.intersectionObserverOptions?"lazy":"eager",style:[r.style||"",o&&!n?{height:"0",width:"0",visibility:"hidden"}:"",{objectFit:this.objectFit}],"data-error":this.showError,"data-preview-src":this.previewSrc||this.src}));return h("div",Object.assign({},i,{role:"none",class:[i.class,`${s}-image`,(this.previewDisabled||this.showError)&&`${s}-image--preview-disabled`]}),this.groupId?u:h($r,{theme:this.theme,themeOverrides:this.themeOverrides,clsPrefix:s,ref:"previewInstRef",showToolbar:this.showToolbar,showToolbarTooltip:this.showToolbarTooltip},{default:()=>u}),!n&&o)}}),Za=K([K("@keyframes spin-rotate",` - from { - transform: rotate(0); - } - to { - transform: rotate(360deg); - } - `),H("spin-container",{position:"relative"},[H("spin-body",` - position: absolute; - top: 50%; - left: 50%; - transform: translateX(-50%) translateY(-50%); - `,[ds()])]),H("spin-body",` - display: inline-flex; - align-items: center; - justify-content: center; - flex-direction: column; - `),H("spin",` - display: inline-flex; - height: var(--n-size); - width: var(--n-size); - font-size: var(--n-size); - color: var(--n-color); - `,[de("rotate",` - animation: spin-rotate 2s linear infinite; - `)]),H("spin-description",` - display: inline-block; - font-size: var(--n-font-size); - color: var(--n-text-color); - transition: color .3s var(--n-bezier); - margin-top: 8px; - `),H("spin-content",` - opacity: 1; - transition: opacity .3s var(--n-bezier); - pointer-events: all; - `,[de("spinning",` - user-select: none; - -webkit-user-select: none; - pointer-events: none; - opacity: var(--n-opacity-spinning); - `)])]),Xa={small:20,medium:18,large:16},qa=Object.assign(Object.assign({},Ie.props),{contentClass:String,contentStyle:[Object,String],description:String,stroke:String,size:{type:[String,Number],default:"medium"},show:{type:Boolean,default:!0},strokeWidth:Number,rotate:{type:Boolean,default:!0},spinning:{type:Boolean,validator:()=>!0,default:void 0},delay:Number}),vf=he({name:"Spin",props:qa,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:s}=$e(e),r=Ie("Spin","-spin",Za,di,e,t),n=j(()=>{const{size:l}=e,{common:{cubicBezierEaseInOut:u},self:f}=r.value,{opacitySpinning:w,color:M,textColor:P}=f,I=typeof l=="number"?We(l):f[li("size",l)];return{"--n-bezier":u,"--n-opacity-spinning":w,"--n-size":I,"--n-color":M,"--n-text-color":P}}),i=s?pr("spin",j(()=>{const{size:l}=e;return typeof l=="number"?String(l):l[0]}),n,e):void 0,a=xi(e,["spinning","show"]),o=F(!1);return fs(l=>{let u;if(a.value){const{delay:f}=e;if(f){u=window.setTimeout(()=>{o.value=!0},f),l(()=>{clearTimeout(u)});return}}o.value=a.value}),{mergedClsPrefix:t,active:o,mergedStrokeWidth:j(()=>{const{strokeWidth:l}=e;if(l!==void 0)return l;const{size:u}=e;return Xa[typeof u=="number"?"medium":u]}),cssVars:s?void 0:n,themeClass:i==null?void 0:i.themeClass,onRender:i==null?void 0:i.onRender}},render(){var e,t;const{$slots:s,mergedClsPrefix:r,description:n}=this,i=s.icon&&this.rotate,a=(n||s.description)&&h("div",{class:`${r}-spin-description`},n||((e=s.description)===null||e===void 0?void 0:e.call(s))),o=s.icon?h("div",{class:[`${r}-spin-body`,this.themeClass]},h("div",{class:[`${r}-spin`,i&&`${r}-spin--rotate`],style:s.default?"":this.cssVars},s.icon()),a):h("div",{class:[`${r}-spin-body`,this.themeClass]},h(ui,{clsPrefix:r,style:s.default?"":this.cssVars,stroke:this.stroke,"stroke-width":this.mergedStrokeWidth,class:`${r}-spin`}),a);return(t=this.onRender)===null||t===void 0||t.call(this),s.default?h("div",{class:[`${r}-spin-container`,this.themeClass],style:this.cssVars},h("div",{class:[`${r}-spin-content`,this.active&&`${r}-spin-content--spinning`,this.contentClass],style:this.contentStyle},s),h(xt,{name:"fade-in-transition"},{default:()=>this.active?o:null})):o}}),pf=he({__name:"index",props:{title:null,show:{type:Boolean},size:null},emits:["update:show"],setup(e,{emit:t}){const s=e,r=fi(),n=j(()=>({class:r.class||"",style:r.style||""})),i=j({get:()=>s.show,set:a=>{t("update:show",a)}});return(a,o)=>(ci(),hi(es(vi),Yt({show:es(i),"onUpdate:show":o[0]||(o[0]=l=>mi(i)?i.value=l:null),preset:"card",size:e.size},es(n),{style:[{"border-radius":"1rem"},a.$parent],title:e.title}),{cover:je(()=>[Ve(a.$slots,"cover")]),header:je(()=>[Ve(a.$slots,"header")]),"eader-extra":je(()=>[Ve(a.$slots,"header-extra")]),footer:je(()=>[Ve(a.$slots,"footer")]),action:je(()=>[Ve(a.$slots,"action")]),default:je(()=>[Ve(a.$slots,"default")]),_:3},16,["show","size","style","title"]))}});//! moment.js -//! version : 2.29.4 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -var Hr;function c(){return Hr.apply(null,arguments)}function Ja(e){Hr=e}function fe(e){return e instanceof Array||Object.prototype.toString.call(e)==="[object Array]"}function Fe(e){return e!=null&&Object.prototype.toString.call(e)==="[object Object]"}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ds(e){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(e).length===0;var t;for(t in e)if(O(e,t))return!1;return!0}function J(e){return e===void 0}function De(e){return typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]"}function ht(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function Ur(e,t){var s=[],r,n=e.length;for(r=0;r>>0,r;for(r=0;r0)for(s=0;s=0;return(i?s?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+r}var Rs=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,bt=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,as={},et={};function g(e,t,s,r){var n=r;typeof r=="string"&&(n=function(){return this[r]()}),e&&(et[e]=n),t&&(et[t[0]]=function(){return pe(n.apply(this,arguments),t[1],t[2])}),s&&(et[s]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function so(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function ro(e){var t=e.match(Rs),s,r;for(s=0,r=t.length;s=0&&bt.test(e);)e=e.replace(bt,r),bt.lastIndex=0,s-=1;return e}var no={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function io(e){var t=this._longDateFormat[e],s=this._longDateFormat[e.toUpperCase()];return t||!s?t:(this._longDateFormat[e]=s.match(Rs).map(function(r){return r==="MMMM"||r==="MM"||r==="DD"||r==="dddd"?r.slice(1):r}).join(""),this._longDateFormat[e])}var ao="Invalid date";function oo(){return this._invalidDate}var lo="%d",uo=/\d{1,2}/;function fo(e){return this._ordinal.replace("%d",e)}var co={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function ho(e,t,s,r){var n=this._relativeTime[s];return we(n)?n(e,t,s,r):n.replace(/%d/i,e)}function mo(e,t){var s=this._relativeTime[e>0?"future":"past"];return we(s)?s(t):s.replace(/%s/i,t)}var lt={};function B(e,t){var s=e.toLowerCase();lt[s]=lt[s+"s"]=lt[t]=e}function ie(e){return typeof e=="string"?lt[e]||lt[e.toLowerCase()]:void 0}function Ts(e){var t={},s,r;for(r in e)O(e,r)&&(s=ie(r),s&&(t[s]=e[r]));return t}var Vr={};function Z(e,t){Vr[e]=t}function vo(e){var t=[],s;for(s in e)O(e,s)&&t.push({unit:s,priority:Vr[s]});return t.sort(function(r,n){return r.priority-n.priority}),t}function At(e){return e%4===0&&e%100!==0||e%400===0}function re(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function k(e){var t=+e,s=0;return t!==0&&isFinite(t)&&(s=re(t)),s}function rt(e,t){return function(s){return s!=null?(Br(this,e,s),c.updateOffset(this,t),this):Tt(this,e)}}function Tt(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function Br(e,t,s){e.isValid()&&!isNaN(s)&&(t==="FullYear"&&At(e.year())&&e.month()===1&&e.date()===29?(s=k(s),e._d["set"+(e._isUTC?"UTC":"")+t](s,e.month(),Vt(s,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](s))}function po(e){return e=ie(e),we(this[e])?this[e]():this}function go(e,t){if(typeof e=="object"){e=Ts(e);var s=vo(e),r,n=s.length;for(r=0;r68?1900:2e3)};var rn=rt("FullYear",!0);function Wo(){return At(this.year())}function Eo(e,t,s,r,n,i,a){var o;return e<100&&e>=0?(o=new Date(e+400,t,s,r,n,i,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,s,r,n,i,a),o}function dt(e){var t,s;return e<100&&e>=0?(s=Array.prototype.slice.call(arguments),s[0]=e+400,t=new Date(Date.UTC.apply(null,s)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Nt(e,t,s){var r=7+t-s,n=(7+dt(e,0,r).getUTCDay()-t)%7;return-n+r-1}function nn(e,t,s,r,n){var i=(7+s-r)%7,a=Nt(e,r,n),o=1+7*(t-1)+i+a,l,u;return o<=0?(l=e-1,u=ut(l)+o):o>ut(e)?(l=e+1,u=o-ut(e)):(l=e,u=o),{year:l,dayOfYear:u}}function ft(e,t,s){var r=Nt(e.year(),t,s),n=Math.floor((e.dayOfYear()-r-1)/7)+1,i,a;return n<1?(a=e.year()-1,i=n+Me(a,t,s)):n>Me(e.year(),t,s)?(i=n-Me(e.year(),t,s),a=e.year()+1):(a=e.year(),i=n),{week:i,year:a}}function Me(e,t,s){var r=Nt(e,t,s),n=Nt(e+1,t,s);return(ut(e)-r+n)/7}g("w",["ww",2],"wo","week");g("W",["WW",2],"Wo","isoWeek");B("week","w");B("isoWeek","W");Z("week",5);Z("isoWeek",5);m("w",T);m("ww",T,te);m("W",T);m("WW",T,te);pt(["w","ww","W","WW"],function(e,t,s,r){t[r.substr(0,1)]=k(e)});function Fo(e){return ft(e,this._week.dow,this._week.doy).week}var $o={dow:0,doy:6};function Ao(){return this._week.dow}function Ho(){return this._week.doy}function Uo(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function zo(e){var t=ft(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}g("d",0,"do","day");g("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});g("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});g("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});g("e",0,0,"weekday");g("E",0,0,"isoWeekday");B("day","d");B("weekday","e");B("isoWeekday","E");Z("day",11);Z("weekday",11);Z("isoWeekday",11);m("d",T);m("e",T);m("E",T);m("dd",function(e,t){return t.weekdaysMinRegex(e)});m("ddd",function(e,t){return t.weekdaysShortRegex(e)});m("dddd",function(e,t){return t.weekdaysRegex(e)});pt(["dd","ddd","dddd"],function(e,t,s,r){var n=s._locale.weekdaysParse(e,r,s._strict);n!=null?t.d=n:S(s).invalidWeekday=e});pt(["d","e","E"],function(e,t,s,r){t[r]=k(e)});function Go(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function jo(e,t){return typeof e=="string"?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Is(e,t){return e.slice(t,7).concat(e.slice(0,t))}var Vo="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),an="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Bo="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Zo=vt,Xo=vt,qo=vt;function Jo(e,t){var s=fe(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(t)?"format":"standalone"];return e===!0?Is(s,this._week.dow):e?s[e.day()]:s}function Qo(e){return e===!0?Is(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Ko(e){return e===!0?Is(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function el(e,t,s){var r,n,i,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=ge([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return s?t==="dddd"?(n=A.call(this._weekdaysParse,a),n!==-1?n:null):t==="ddd"?(n=A.call(this._shortWeekdaysParse,a),n!==-1?n:null):(n=A.call(this._minWeekdaysParse,a),n!==-1?n:null):t==="dddd"?(n=A.call(this._weekdaysParse,a),n!==-1||(n=A.call(this._shortWeekdaysParse,a),n!==-1)?n:(n=A.call(this._minWeekdaysParse,a),n!==-1?n:null)):t==="ddd"?(n=A.call(this._shortWeekdaysParse,a),n!==-1||(n=A.call(this._weekdaysParse,a),n!==-1)?n:(n=A.call(this._minWeekdaysParse,a),n!==-1?n:null)):(n=A.call(this._minWeekdaysParse,a),n!==-1||(n=A.call(this._weekdaysParse,a),n!==-1)?n:(n=A.call(this._shortWeekdaysParse,a),n!==-1?n:null))}function tl(e,t,s){var r,n,i;if(this._weekdaysParseExact)return el.call(this,e,t,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(n=ge([2e3,1]).day(r),s&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),s&&t==="dddd"&&this._fullWeekdaysParse[r].test(e))return r;if(s&&t==="ddd"&&this._shortWeekdaysParse[r].test(e))return r;if(s&&t==="dd"&&this._minWeekdaysParse[r].test(e))return r;if(!s&&this._weekdaysParse[r].test(e))return r}}function sl(e){if(!this.isValid())return e!=null?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return e!=null?(e=Go(e,this.localeData()),this.add(e-t,"d")):t}function rl(e){if(!this.isValid())return e!=null?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function nl(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var t=jo(e,this.localeData());return this.day(this.day()%7?t:t-7)}else return this.day()||7}function il(e){return this._weekdaysParseExact?(O(this,"_weekdaysRegex")||Ls.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(O(this,"_weekdaysRegex")||(this._weekdaysRegex=Zo),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function al(e){return this._weekdaysParseExact?(O(this,"_weekdaysRegex")||Ls.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(O(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Xo),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function ol(e){return this._weekdaysParseExact?(O(this,"_weekdaysRegex")||Ls.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(O(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qo),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ls(){function e(f,w){return w.length-f.length}var t=[],s=[],r=[],n=[],i,a,o,l,u;for(i=0;i<7;i++)a=ge([2e3,1]).day(i),o=ee(this.weekdaysMin(a,"")),l=ee(this.weekdaysShort(a,"")),u=ee(this.weekdays(a,"")),t.push(o),s.push(l),r.push(u),n.push(o),n.push(l),n.push(u);t.sort(e),s.sort(e),r.sort(e),n.sort(e),this._weekdaysRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function Ws(){return this.hours()%12||12}function ll(){return this.hours()||24}g("H",["HH",2],0,"hour");g("h",["hh",2],0,Ws);g("k",["kk",2],0,ll);g("hmm",0,0,function(){return""+Ws.apply(this)+pe(this.minutes(),2)});g("hmmss",0,0,function(){return""+Ws.apply(this)+pe(this.minutes(),2)+pe(this.seconds(),2)});g("Hmm",0,0,function(){return""+this.hours()+pe(this.minutes(),2)});g("Hmmss",0,0,function(){return""+this.hours()+pe(this.minutes(),2)+pe(this.seconds(),2)});function on(e,t){g(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}on("a",!0);on("A",!1);B("hour","h");Z("hour",13);function ln(e,t){return t._meridiemParse}m("a",ln);m("A",ln);m("H",T);m("h",T);m("k",T);m("HH",T,te);m("hh",T,te);m("kk",T,te);m("hmm",qr);m("hmmss",Jr);m("Hmm",qr);m("Hmmss",Jr);Y(["H","HH"],U);Y(["k","kk"],function(e,t,s){var r=k(e);t[U]=r===24?0:r});Y(["a","A"],function(e,t,s){s._isPm=s._locale.isPM(e),s._meridiem=e});Y(["h","hh"],function(e,t,s){t[U]=k(e),S(s).bigHour=!0});Y("hmm",function(e,t,s){var r=e.length-2;t[U]=k(e.substr(0,r)),t[ue]=k(e.substr(r)),S(s).bigHour=!0});Y("hmmss",function(e,t,s){var r=e.length-4,n=e.length-2;t[U]=k(e.substr(0,r)),t[ue]=k(e.substr(r,2)),t[ke]=k(e.substr(n)),S(s).bigHour=!0});Y("Hmm",function(e,t,s){var r=e.length-2;t[U]=k(e.substr(0,r)),t[ue]=k(e.substr(r))});Y("Hmmss",function(e,t,s){var r=e.length-4,n=e.length-2;t[U]=k(e.substr(0,r)),t[ue]=k(e.substr(r,2)),t[ke]=k(e.substr(n))});function ul(e){return(e+"").toLowerCase().charAt(0)==="p"}var dl=/[ap]\.?m?\.?/i,fl=rt("Hours",!0);function cl(e,t,s){return e>11?s?"pm":"PM":s?"am":"AM"}var un={calendar:eo,longDateFormat:no,invalidDate:ao,ordinal:lo,dayOfMonthOrdinalParse:uo,relativeTime:co,months:Do,monthsShort:Qr,week:$o,weekdays:Vo,weekdaysMin:Bo,weekdaysShort:an,meridiemParse:dl},N={},at={},ct;function hl(e,t){var s,r=Math.min(e.length,t.length);for(s=0;s0;){if(n=Bt(i.slice(0,s).join("-")),n)return n;if(r&&r.length>=s&&hl(i,r)>=s-1)break;s--}t++}return ct}function vl(e){return e.match("^[^/\\\\]*$")!=null}function Bt(e){var t=null,s;if(N[e]===void 0&&typeof module<"u"&&module&&module.exports&&vl(e))try{t=ct._abbr,s=require,s("./locale/"+e),Ne(t)}catch{N[e]=null}return N[e]}function Ne(e,t){var s;return e&&(J(t)?s=Oe(e):s=Es(e,t),s?ct=s:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ct._abbr}function Es(e,t){if(t!==null){var s,r=un;if(t.abbr=e,N[e]!=null)Gr("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=N[e]._config;else if(t.parentLocale!=null)if(N[t.parentLocale]!=null)r=N[t.parentLocale]._config;else if(s=Bt(t.parentLocale),s!=null)r=s._config;else return at[t.parentLocale]||(at[t.parentLocale]=[]),at[t.parentLocale].push({name:e,config:t}),null;return N[e]=new Ys(hs(r,t)),at[e]&&at[e].forEach(function(n){Es(n.name,n.config)}),Ne(e),N[e]}else return delete N[e],null}function pl(e,t){if(t!=null){var s,r,n=un;N[e]!=null&&N[e].parentLocale!=null?N[e].set(hs(N[e]._config,t)):(r=Bt(e),r!=null&&(n=r._config),t=hs(n,t),r==null&&(t.abbr=e),s=new Ys(t),s.parentLocale=N[e],N[e]=s),Ne(e)}else N[e]!=null&&(N[e].parentLocale!=null?(N[e]=N[e].parentLocale,e===Ne()&&Ne(e)):N[e]!=null&&delete N[e]);return N[e]}function Oe(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ct;if(!fe(e)){if(t=Bt(e),t)return t;e=[e]}return ml(e)}function gl(){return ms(N)}function Fs(e){var t,s=e._a;return s&&S(e).overflow===-2&&(t=s[xe]<0||s[xe]>11?xe:s[ve]<1||s[ve]>Vt(s[V],s[xe])?ve:s[U]<0||s[U]>24||s[U]===24&&(s[ue]!==0||s[ke]!==0||s[Ee]!==0)?U:s[ue]<0||s[ue]>59?ue:s[ke]<0||s[ke]>59?ke:s[Ee]<0||s[Ee]>999?Ee:-1,S(e)._overflowDayOfYear&&(tve)&&(t=ve),S(e)._overflowWeeks&&t===-1&&(t=xo),S(e)._overflowWeekday&&t===-1&&(t=ko),S(e).overflow=t),e}var wl=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,yl=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_l=/Z|[+-]\d\d(?::?\d\d)?/,St=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],os=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],bl=/^\/?Date\((-?\d+)/i,Sl=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,xl={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function dn(e){var t,s,r=e._i,n=wl.exec(r)||yl.exec(r),i,a,o,l,u=St.length,f=os.length;if(n){for(S(e).iso=!0,t=0,s=u;tut(a)||e._dayOfYear===0)&&(S(e)._overflowDayOfYear=!0),s=dt(a,0,e._dayOfYear),e._a[xe]=s.getUTCMonth(),e._a[ve]=s.getUTCDate()),t=0;t<3&&e._a[t]==null;++t)e._a[t]=r[t]=n[t];for(;t<7;t++)e._a[t]=r[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[U]===24&&e._a[ue]===0&&e._a[ke]===0&&e._a[Ee]===0&&(e._nextDay=!0,e._a[U]=0),e._d=(e._useUTC?dt:Eo).apply(null,r),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[U]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==i&&(S(e).weekdayMismatch=!0)}}function Tl(e){var t,s,r,n,i,a,o,l,u;t=e._w,t.GG!=null||t.W!=null||t.E!=null?(i=1,a=4,s=Qe(t.GG,e._a[V],ft(R(),1,4).year),r=Qe(t.W,1),n=Qe(t.E,1),(n<1||n>7)&&(l=!0)):(i=e._locale._week.dow,a=e._locale._week.doy,u=ft(R(),i,a),s=Qe(t.gg,e._a[V],u.year),r=Qe(t.w,u.week),t.d!=null?(n=t.d,(n<0||n>6)&&(l=!0)):t.e!=null?(n=t.e+i,(t.e<0||t.e>6)&&(l=!0)):n=i),r<1||r>Me(s,i,a)?S(e)._overflowWeeks=!0:l!=null?S(e)._overflowWeekday=!0:(o=nn(s,r,n,i,a),e._a[V]=o.year,e._dayOfYear=o.dayOfYear)}c.ISO_8601=function(){};c.RFC_2822=function(){};function As(e){if(e._f===c.ISO_8601){dn(e);return}if(e._f===c.RFC_2822){fn(e);return}e._a=[],S(e).empty=!0;var t=""+e._i,s,r,n,i,a,o=t.length,l=0,u,f;for(n=jr(e._f,e._locale).match(Rs)||[],f=n.length,s=0;s0&&S(e).unusedInput.push(a),t=t.slice(t.indexOf(r)+r.length),l+=r.length),et[i]?(r?S(e).empty=!1:S(e).unusedTokens.push(i),So(i,r,e)):e._strict&&!r&&S(e).unusedTokens.push(i);S(e).charsLeftOver=o-l,t.length>0&&S(e).unusedInput.push(t),e._a[U]<=12&&S(e).bigHour===!0&&e._a[U]>0&&(S(e).bigHour=void 0),S(e).parsedDateParts=e._a.slice(0),S(e).meridiem=e._meridiem,e._a[U]=Pl(e._locale,e._a[U],e._meridiem),u=S(e).era,u!==null&&(e._a[V]=e._locale.erasConvertYear(u,e._a[V])),$s(e),Fs(e)}function Pl(e,t,s){var r;return s==null?t:e.meridiemHour!=null?e.meridiemHour(t,s):(e.isPM!=null&&(r=e.isPM(s),r&&t<12&&(t+=12),!r&&t===12&&(t=0)),t)}function Nl(e){var t,s,r,n,i,a,o=!1,l=e._f.length;if(l===0){S(e).invalidFormat=!0,e._d=new Date(NaN);return}for(n=0;nthis?this:e:$t()});function mn(e,t){var s,r;if(t.length===1&&fe(t[0])&&(t=t[0]),!t.length)return R();for(s=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function eu(){if(!J(this._isDSTShifted))return this._isDSTShifted;var e={},t;return Cs(e,this),e=cn(e),e._a?(t=e._isUTC?ge(e._a):R(e._a),this._isDSTShifted=this.isValid()&&jl(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function tu(){return this.isValid()?!this._isUTC:!1}function su(){return this.isValid()?this._isUTC:!1}function pn(){return this.isValid()?this._isUTC&&this._offset===0:!1}var ru=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,nu=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function me(e,t){var s=e,r=null,n,i,a;return Mt(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:De(e)||!isNaN(+e)?(s={},t?s[t]=+e:s.milliseconds=+e):(r=ru.exec(e))?(n=r[1]==="-"?-1:1,s={y:0,d:k(r[ve])*n,h:k(r[U])*n,m:k(r[ue])*n,s:k(r[ke])*n,ms:k(ps(r[Ee]*1e3))*n}):(r=nu.exec(e))?(n=r[1]==="-"?-1:1,s={y:Le(r[2],n),M:Le(r[3],n),w:Le(r[4],n),d:Le(r[5],n),h:Le(r[6],n),m:Le(r[7],n),s:Le(r[8],n)}):s==null?s={}:typeof s=="object"&&("from"in s||"to"in s)&&(a=iu(R(s.from),R(s.to)),s={},s.ms=a.milliseconds,s.M=a.months),i=new Zt(s),Mt(e)&&O(e,"_locale")&&(i._locale=e._locale),Mt(e)&&O(e,"_isValid")&&(i._isValid=e._isValid),i}me.fn=Zt.prototype;me.invalid=Gl;function Le(e,t){var s=e&&parseFloat(e.replace(",","."));return(isNaN(s)?0:s)*t}function fr(e,t){var s={};return s.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(s.months,"M").isAfter(t)&&--s.months,s.milliseconds=+t-+e.clone().add(s.months,"M"),s}function iu(e,t){var s;return e.isValid()&&t.isValid()?(t=Us(t,e),e.isBefore(t)?s=fr(e,t):(s=fr(t,e),s.milliseconds=-s.milliseconds,s.months=-s.months),s):{milliseconds:0,months:0}}function gn(e,t){return function(s,r){var n,i;return r!==null&&!isNaN(+r)&&(Gr(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=s,s=r,r=i),n=me(s,r),wn(this,n,e),this}}function wn(e,t,s,r){var n=t._milliseconds,i=ps(t._days),a=ps(t._months);e.isValid()&&(r=r??!0,a&&en(e,Tt(e,"Month")+a*s),i&&Br(e,"Date",Tt(e,"Date")+i*s),n&&e._d.setTime(e._d.valueOf()+n*s),r&&c.updateOffset(e,i||a))}var au=gn(1,"add"),ou=gn(-1,"subtract");function yn(e){return typeof e=="string"||e instanceof String}function lu(e){return ce(e)||ht(e)||yn(e)||De(e)||du(e)||uu(e)||e===null||e===void 0}function uu(e){var t=Fe(e)&&!Ds(e),s=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],n,i,a=r.length;for(n=0;ns.valueOf():s.valueOf()9999?kt(s,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):we(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",kt(s,"Z")):kt(s,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ku(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="",s,r,n,i;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",t="Z"),s="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",i=t+'[")]',this.format(s+r+n+i)}function Mu(e){e||(e=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var t=kt(this,e);return this.localeData().postformat(t)}function Du(e,t){return this.isValid()&&(ce(e)&&e.isValid()||R(e).isValid())?me({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Ou(e){return this.from(R(),e)}function Cu(e,t){return this.isValid()&&(ce(e)&&e.isValid()||R(e).isValid())?me({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Yu(e){return this.to(R(),e)}function _n(e){var t;return e===void 0?this._locale._abbr:(t=Oe(e),t!=null&&(this._locale=t),this)}var bn=ne("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function Sn(){return this._locale}var It=1e3,tt=60*It,Lt=60*tt,xn=(365*400+97)*24*Lt;function st(e,t){return(e%t+t)%t}function kn(e,t,s){return e<100&&e>=0?new Date(e+400,t,s)-xn:new Date(e,t,s).valueOf()}function Mn(e,t,s){return e<100&&e>=0?Date.UTC(e+400,t,s)-xn:Date.UTC(e,t,s)}function Ru(e){var t,s;if(e=ie(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(s=this._isUTC?Mn:kn,e){case"year":t=s(this.year(),0,1);break;case"quarter":t=s(this.year(),this.month()-this.month()%3,1);break;case"month":t=s(this.year(),this.month(),1);break;case"week":t=s(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=s(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=st(t+(this._isUTC?0:this.utcOffset()*tt),Lt);break;case"minute":t=this._d.valueOf(),t-=st(t,tt);break;case"second":t=this._d.valueOf(),t-=st(t,It);break}return this._d.setTime(t),c.updateOffset(this,!0),this}function Tu(e){var t,s;if(e=ie(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(s=this._isUTC?Mn:kn,e){case"year":t=s(this.year()+1,0,1)-1;break;case"quarter":t=s(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=s(this.year(),this.month()+1,1)-1;break;case"week":t=s(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=s(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=Lt-st(t+(this._isUTC?0:this.utcOffset()*tt),Lt)-1;break;case"minute":t=this._d.valueOf(),t+=tt-st(t,tt)-1;break;case"second":t=this._d.valueOf(),t+=It-st(t,It)-1;break}return this._d.setTime(t),c.updateOffset(this,!0),this}function Pu(){return this._d.valueOf()-(this._offset||0)*6e4}function Nu(){return Math.floor(this.valueOf()/1e3)}function Iu(){return new Date(this.valueOf())}function Lu(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Wu(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Eu(){return this.isValid()?this.toISOString():null}function Fu(){return Os(this)}function $u(){return Te({},S(this))}function Au(){return S(this).overflow}function Hu(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}g("N",0,0,"eraAbbr");g("NN",0,0,"eraAbbr");g("NNN",0,0,"eraAbbr");g("NNNN",0,0,"eraName");g("NNNNN",0,0,"eraNarrow");g("y",["y",1],"yo","eraYear");g("y",["yy",2],0,"eraYear");g("y",["yyy",3],0,"eraYear");g("y",["yyyy",4],0,"eraYear");m("N",zs);m("NN",zs);m("NNN",zs);m("NNNN",Qu);m("NNNNN",Ku);Y(["N","NN","NNN","NNNN","NNNNN"],function(e,t,s,r){var n=s._locale.erasParse(e,r,s._strict);n?S(s).era=n:S(s).invalidEra=e});m("y",nt);m("yy",nt);m("yyy",nt);m("yyyy",nt);m("yo",ed);Y(["y","yy","yyy","yyyy"],V);Y(["yo"],function(e,t,s,r){var n;s._locale._eraYearOrdinalRegex&&(n=e.match(s._locale._eraYearOrdinalRegex)),s._locale.eraYearOrdinalParse?t[V]=s._locale.eraYearOrdinalParse(e,n):t[V]=parseInt(e,10)});function Uu(e,t){var s,r,n,i=this._eras||Oe("en")._eras;for(s=0,r=i.length;s=0)return i[r]}function Gu(e,t){var s=e.since<=e.until?1:-1;return t===void 0?c(e.since).year():c(e.since).year()+(t-e.offset)*s}function ju(){var e,t,s,r=this.localeData().eras();for(e=0,t=r.length;ei&&(t=i),od.call(this,e,t,s,r,n))}function od(e,t,s,r,n){var i=nn(e,t,s,r,n),a=dt(i.year,0,i.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}g("Q",0,"Qo","quarter");B("quarter","Q");Z("quarter",7);m("Q",Zr);Y("Q",function(e,t){t[xe]=(k(e)-1)*3});function ld(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}g("D",["DD",2],"Do","date");B("date","D");Z("date",9);m("D",T);m("DD",T,te);m("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient});Y(["D","DD"],ve);Y("Do",function(e,t){t[ve]=k(e.match(T)[0])});var On=rt("Date",!0);g("DDD",["DDDD",3],"DDDo","dayOfYear");B("dayOfYear","DDD");Z("dayOfYear",4);m("DDD",Ut);m("DDDD",Xr);Y(["DDD","DDDD"],function(e,t,s){s._dayOfYear=k(e)});function ud(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}g("m",["mm",2],0,"minute");B("minute","m");Z("minute",14);m("m",T);m("mm",T,te);Y(["m","mm"],ue);var dd=rt("Minutes",!1);g("s",["ss",2],0,"second");B("second","s");Z("second",15);m("s",T);m("ss",T,te);Y(["s","ss"],ke);var fd=rt("Seconds",!1);g("S",0,0,function(){return~~(this.millisecond()/100)});g(0,["SS",2],0,function(){return~~(this.millisecond()/10)});g(0,["SSS",3],0,"millisecond");g(0,["SSSS",4],0,function(){return this.millisecond()*10});g(0,["SSSSS",5],0,function(){return this.millisecond()*100});g(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});g(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});g(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});g(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});B("millisecond","ms");Z("millisecond",16);m("S",Ut,Zr);m("SS",Ut,te);m("SSS",Ut,Xr);var Pe,Cn;for(Pe="SSSS";Pe.length<=9;Pe+="S")m(Pe,nt);function cd(e,t){t[Ee]=k(("0."+e)*1e3)}for(Pe="S";Pe.length<=9;Pe+="S")Y(Pe,cd);Cn=rt("Milliseconds",!1);g("z",0,0,"zoneAbbr");g("zz",0,0,"zoneName");function hd(){return this._isUTC?"UTC":""}function md(){return this._isUTC?"Coordinated Universal Time":""}var d=mt.prototype;d.add=au;d.calendar=hu;d.clone=mu;d.diff=bu;d.endOf=Tu;d.format=Mu;d.from=Du;d.fromNow=Ou;d.to=Cu;d.toNow=Yu;d.get=po;d.invalidAt=Au;d.isAfter=vu;d.isBefore=pu;d.isBetween=gu;d.isSame=wu;d.isSameOrAfter=yu;d.isSameOrBefore=_u;d.isValid=Fu;d.lang=bn;d.locale=_n;d.localeData=Sn;d.max=Fl;d.min=El;d.parsingFlags=$u;d.set=go;d.startOf=Ru;d.subtract=ou;d.toArray=Lu;d.toObject=Wu;d.toDate=Iu;d.toISOString=xu;d.inspect=ku;typeof Symbol<"u"&&Symbol.for!=null&&(d[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"});d.toJSON=Eu;d.toString=Su;d.unix=Nu;d.valueOf=Pu;d.creationData=Hu;d.eraName=ju;d.eraNarrow=Vu;d.eraAbbr=Bu;d.eraYear=Zu;d.year=rn;d.isLeapYear=Wo;d.weekYear=td;d.isoWeekYear=sd;d.quarter=d.quarters=ld;d.month=tn;d.daysInMonth=No;d.week=d.weeks=Uo;d.isoWeek=d.isoWeeks=zo;d.weeksInYear=id;d.weeksInWeekYear=ad;d.isoWeeksInYear=rd;d.isoWeeksInISOWeekYear=nd;d.date=On;d.day=d.days=sl;d.weekday=rl;d.isoWeekday=nl;d.dayOfYear=ud;d.hour=d.hours=fl;d.minute=d.minutes=dd;d.second=d.seconds=fd;d.millisecond=d.milliseconds=Cn;d.utcOffset=Bl;d.utc=Xl;d.local=ql;d.parseZone=Jl;d.hasAlignedHourOffset=Ql;d.isDST=Kl;d.isLocal=tu;d.isUtcOffset=su;d.isUtc=pn;d.isUTC=pn;d.zoneAbbr=hd;d.zoneName=md;d.dates=ne("dates accessor is deprecated. Use date instead.",On);d.months=ne("months accessor is deprecated. Use month instead",tn);d.years=ne("years accessor is deprecated. Use year instead",rn);d.zone=ne("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Zl);d.isDSTShifted=ne("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",eu);function vd(e){return R(e*1e3)}function pd(){return R.apply(null,arguments).parseZone()}function Yn(e){return e}var C=Ys.prototype;C.calendar=to;C.longDateFormat=io;C.invalidDate=oo;C.ordinal=fo;C.preparse=Yn;C.postformat=Yn;C.relativeTime=ho;C.pastFuture=mo;C.set=Ka;C.eras=Uu;C.erasParse=zu;C.erasConvertYear=Gu;C.erasAbbrRegex=qu;C.erasNameRegex=Xu;C.erasNarrowRegex=Ju;C.months=Yo;C.monthsShort=Ro;C.monthsParse=Po;C.monthsRegex=Lo;C.monthsShortRegex=Io;C.week=Fo;C.firstDayOfYear=Ho;C.firstDayOfWeek=Ao;C.weekdays=Jo;C.weekdaysMin=Ko;C.weekdaysShort=Qo;C.weekdaysParse=tl;C.weekdaysRegex=il;C.weekdaysShortRegex=al;C.weekdaysMinRegex=ol;C.isPM=ul;C.meridiem=cl;function Wt(e,t,s,r){var n=Oe(),i=ge().set(r,t);return n[s](i,e)}function Rn(e,t,s){if(De(e)&&(t=e,e=void 0),e=e||"",t!=null)return Wt(e,t,s,"month");var r,n=[];for(r=0;r<12;r++)n[r]=Wt(e,r,s,"month");return n}function js(e,t,s,r){typeof e=="boolean"?(De(t)&&(s=t,t=void 0),t=t||""):(t=e,s=t,e=!1,De(t)&&(s=t,t=void 0),t=t||"");var n=Oe(),i=e?n._week.dow:0,a,o=[];if(s!=null)return Wt(t,(s+i)%7,r,"day");for(a=0;a<7;a++)o[a]=Wt(t,(a+i)%7,r,"day");return o}function gd(e,t){return Rn(e,t,"months")}function wd(e,t){return Rn(e,t,"monthsShort")}function yd(e,t,s){return js(e,t,s,"weekdays")}function _d(e,t,s){return js(e,t,s,"weekdaysShort")}function bd(e,t,s){return js(e,t,s,"weekdaysMin")}Ne("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,s=k(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+s}});c.lang=ne("moment.lang is deprecated. Use moment.locale instead.",Ne);c.langData=ne("moment.langData is deprecated. Use moment.localeData instead.",Oe);var be=Math.abs;function Sd(){var e=this._data;return this._milliseconds=be(this._milliseconds),this._days=be(this._days),this._months=be(this._months),e.milliseconds=be(e.milliseconds),e.seconds=be(e.seconds),e.minutes=be(e.minutes),e.hours=be(e.hours),e.months=be(e.months),e.years=be(e.years),this}function Tn(e,t,s,r){var n=me(t,s);return e._milliseconds+=r*n._milliseconds,e._days+=r*n._days,e._months+=r*n._months,e._bubble()}function xd(e,t){return Tn(this,e,t,1)}function kd(e,t){return Tn(this,e,t,-1)}function cr(e){return e<0?Math.floor(e):Math.ceil(e)}function Md(){var e=this._milliseconds,t=this._days,s=this._months,r=this._data,n,i,a,o,l;return e>=0&&t>=0&&s>=0||e<=0&&t<=0&&s<=0||(e+=cr(ws(s)+t)*864e5,t=0,s=0),r.milliseconds=e%1e3,n=re(e/1e3),r.seconds=n%60,i=re(n/60),r.minutes=i%60,a=re(i/60),r.hours=a%24,t+=re(a/24),l=re(Pn(t)),s+=l,t-=cr(ws(l)),o=re(s/12),s%=12,r.days=t,r.months=s,r.years=o,this}function Pn(e){return e*4800/146097}function ws(e){return e*146097/4800}function Dd(e){if(!this.isValid())return NaN;var t,s,r=this._milliseconds;if(e=ie(e),e==="month"||e==="quarter"||e==="year")switch(t=this._days+r/864e5,s=this._months+Pn(t),e){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(t=this._days+Math.round(ws(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return t*24+r/36e5;case"minute":return t*1440+r/6e4;case"second":return t*86400+r/1e3;case"millisecond":return Math.floor(t*864e5)+r;default:throw new Error("Unknown unit "+e)}}function Od(){return this.isValid()?this._milliseconds+this._days*864e5+this._months%12*2592e6+k(this._months/12)*31536e6:NaN}function Ce(e){return function(){return this.as(e)}}var Cd=Ce("ms"),Yd=Ce("s"),Rd=Ce("m"),Td=Ce("h"),Pd=Ce("d"),Nd=Ce("w"),Id=Ce("M"),Ld=Ce("Q"),Wd=Ce("y");function Ed(){return me(this)}function Fd(e){return e=ie(e),this.isValid()?this[e+"s"]():NaN}function Ae(e){return function(){return this.isValid()?this._data[e]:NaN}}var $d=Ae("milliseconds"),Ad=Ae("seconds"),Hd=Ae("minutes"),Ud=Ae("hours"),zd=Ae("days"),Gd=Ae("months"),jd=Ae("years");function Vd(){return re(this.days()/7)}var Se=Math.round,Ke={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Bd(e,t,s,r,n){return n.relativeTime(t||1,!!s,e,r)}function Zd(e,t,s,r){var n=me(e).abs(),i=Se(n.as("s")),a=Se(n.as("m")),o=Se(n.as("h")),l=Se(n.as("d")),u=Se(n.as("M")),f=Se(n.as("w")),w=Se(n.as("y")),M=i<=s.ss&&["s",i]||i0,M[4]=r,Bd.apply(null,M)}function Xd(e){return e===void 0?Se:typeof e=="function"?(Se=e,!0):!1}function qd(e,t){return Ke[e]===void 0?!1:t===void 0?Ke[e]:(Ke[e]=t,e==="s"&&(Ke.ss=t-1),!0)}function Jd(e,t){if(!this.isValid())return this.localeData().invalidDate();var s=!1,r=Ke,n,i;return typeof e=="object"&&(t=e,e=!1),typeof e=="boolean"&&(s=e),typeof t=="object"&&(r=Object.assign({},Ke,t),t.s!=null&&t.ss==null&&(r.ss=t.s-1)),n=this.localeData(),i=Zd(this,!s,r,n),s&&(i=n.pastFuture(+this,i)),n.postformat(i)}var ls=Math.abs;function qe(e){return(e>0)-(e<0)||+e}function qt(){if(!this.isValid())return this.localeData().invalidDate();var e=ls(this._milliseconds)/1e3,t=ls(this._days),s=ls(this._months),r,n,i,a,o=this.asSeconds(),l,u,f,w;return o?(r=re(e/60),n=re(r/60),e%=60,r%=60,i=re(s/12),s%=12,a=e?e.toFixed(3).replace(/\.?0+$/,""):"",l=o<0?"-":"",u=qe(this._months)!==qe(o)?"-":"",f=qe(this._days)!==qe(o)?"-":"",w=qe(this._milliseconds)!==qe(o)?"-":"",l+"P"+(i?u+i+"Y":"")+(s?u+s+"M":"")+(t?f+t+"D":"")+(n||r||e?"T":"")+(n?w+n+"H":"")+(r?w+r+"M":"")+(e?w+a+"S":"")):"P0D"}var D=Zt.prototype;D.isValid=zl;D.abs=Sd;D.add=xd;D.subtract=kd;D.as=Dd;D.asMilliseconds=Cd;D.asSeconds=Yd;D.asMinutes=Rd;D.asHours=Td;D.asDays=Pd;D.asWeeks=Nd;D.asMonths=Id;D.asQuarters=Ld;D.asYears=Wd;D.valueOf=Od;D._bubble=Md;D.clone=Ed;D.get=Fd;D.milliseconds=$d;D.seconds=Ad;D.minutes=Hd;D.hours=Ud;D.days=zd;D.weeks=Vd;D.months=Gd;D.years=jd;D.humanize=Jd;D.toISOString=qt;D.toString=qt;D.toJSON=qt;D.locale=_n;D.localeData=Sn;D.toIsoString=ne("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",qt);D.lang=bn;g("X",0,0,"unix");g("x",0,0,"valueOf");m("x",Gt);m("X",yo);Y("X",function(e,t,s){s._d=new Date(parseFloat(e)*1e3)});Y("x",function(e,t,s){s._d=new Date(k(e))});//! moment.js -c.version="2.29.4";Ja(R);c.fn=d;c.min=$l;c.max=Al;c.now=Hl;c.utc=ge;c.unix=vd;c.months=gd;c.isDate=ht;c.locale=Ne;c.invalid=$t;c.duration=me;c.isMoment=ce;c.weekdays=yd;c.parseZone=pd;c.localeData=Oe;c.isDuration=Mt;c.monthsShort=wd;c.weekdaysMin=bd;c.defineLocale=Es;c.updateLocale=pl;c.locales=gl;c.weekdaysShort=_d;c.normalizeUnits=ie;c.relativeTimeRounding=Xd;c.relativeTimeThreshold=qd;c.calendarFormat=cu;c.prototype=d;c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};function Qd(){return ks({url:"/user/getAuthInfo"})}function gf(e){return ks({url:"/user/updateInfo",data:{name:e}})}function wf(e,t){return ks({url:"/user/updatePassword",data:{newPassword:t,oldPassword:e}})}pi();const Kd=gi(),hr=wi();yi(["notification"]);function yf(e){return c(e).format("YYYY-MM-DD HH:mm:ss")}function _f(e){document.title=e}async function bf(){const{data:e}=await Qd();Kd.updateUserInfo({headImage:e.user.headImage,name:e.user.name}),hr.setUserInfo(e.user),hr.setVisitMode(e.visitMode)}async function Sf(e){if(navigator.clipboard)try{return await navigator.clipboard.writeText(e),!0}catch(t){return console.error("copy fail",t),!1}else{const t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select();try{return document.execCommand("copy"),!0}catch(s){return console.error("copy fail",s),!1}finally{document.body.removeChild(t)}}}function xf(e){const t=["B","KB","MB","GB","TB","PB","EB"];if(e===0)return"0B";const s=parseInt(String(Math.floor(Math.log(e)/Math.log(1024))));return`${(e/1024**s).toFixed(1)} ${t[s]}`}export{rr as A,nr as B,mf as N,pf as _,df as a,of as b,hf as c,Aa as d,ff as e,uf as f,Mi as g,lf as h,Oa as i,vf as j,af as k,nf as l,cf as m,rf as n,Ya as o,xf as p,sf as q,c as r,_f as s,yf as t,bf as u,Sf as v,gf as w,wf as x,Ia as y,Na as z}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b57a7b1c.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b57a7b1c.js deleted file mode 100644 index 67ff6f001..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-b57a7b1c.js +++ /dev/null @@ -1 +0,0 @@ -import{g as w}from"./about-2688cabc.js";import{f as u,bB as B,r as g,D as f,aW as p,aX as d,b3 as s,b2 as A,b1 as e,b4 as a,a$ as n,b0 as o,b5 as E}from"./index-7e19b821.js";import{_ as D}from"./index-b1d3d9b0.js";import{N as x}from"./GradientText-44d798c5.js";import{N as C}from"./Divider-a11d112a.js";import{f as Q}from"./index-2b595d91.js";import"./index-c238f14b.js";import"./_plugin-vue_export-helper-c27b6911.js";const b="/assets/logo-3d38229d.svg",I="/assets/gitee-9d895e3a.png",U="data:image/png;base64,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",z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABTxJREFUeF7tW3toW1UY/53bZmnS9JW260NHoQ+wG9M/Oh+jdCCuUZgOcc4qWEFxE5kKc+rw8YdFpgy3bvMPUYcwmAgi6zbnCnZjY8OuILab1cLq2kltTds17dKmWfNoc+VLm9Hkps09uTdJ8ziQf879zvm+73e/1/lyD8MSw3Rw5EmReeoB1ACsHEABIGqWol9Z88wNwAKINwF0MlE417an+OdgMrLAyc0HzTsEge0VRbFiZSmlTBrGWL/HI+4/v6f06OKd/ACobzYfB/CiMlYrfvV3594ubfRJeReAJFHep/ddELwAkNkzhm9W/LtTUUBRxE5yBy8ApkPDfYnm86GwopjQtrukki1E+zOhFiTicyYKT7H6ZvMRAG8looIydPqCAPgVQK0M4kQkaWf1zcNmQCxJRO1C68SGCQBX/FR4oVXio2BucgGRb1FiUacASFlAygViGwPK8tPx2TNGv8Aybvfgze8tUQk2MY8BBMDRlwr9lO0ddacASFlAMrnAjrpsib9/dGoifmNA48YsifDdg07cv0YrmW+/MYPaKp1k/niHLb4BaHzE4KfAuz+O4/Pt+RKlgs3/MeQCzcsZOToBkzMeOaRBaSKSBcgCogHAxooMNG3NA2WNA79YMTA+yw1EXANAFvXAvau8SpPy77dMwDI9xwVC3AKwoUyLTwMKqJYuO766NBU9AHzoSzgywGKT+mWBQZCQ9gy7UZSVJpknWsu0/x4GLfOaO43HqnXY+0SuZF3jt7cwOiXfChRZAAEQGNgogI1OzsG0zj+y7zt7Gx9uyZMIvPuHcRxq8A+OnQNO9N1yo+FB/0D65cUpnLpm9+7xbE0mdm6Sps8DbVa09czItoK4BWBztQ7vBbGAxZqbrbO4NuhC179OXP7boX4WiKUF6DQMp98olv2mW/+8g8PnJ6XeqqQfEEsASBM6RNFhSs5YyjUUu0BgdadJA2wODwTm/78rpamqooU/l0URWHjePeTEfcXzqWzxEBjgCWjWjdnmcOH6vH8bMwVsWa9HsKozcK/lsgMXAHl6AbsezUGOXhrN5bwFNWio8svOEJCtE5AeQozx6Tm0/jWD5cpqLgCCVXhqKKXmHtNOD7qHXOgfm8XZbjsm7MuXyQkFwActE/h9wMmFZ8IAcGPUjV1h9BC4AHj+IQNeqZUedbkgjxAxpThKdbyDCwCq7t4xSctPXqZq0/eYXaCKMpzBBUBNmVbSwQ2Hqdpr9rVacalXfvm7mD8XAFkZAk68XqS2/Ir2a+9zoOnM7bD34AKAuBxuyMfaUmnhErYEChbOzol4+dgY1+kvkB03AK9tysa2mkwFYqu3lBqnv/3Dl/YUA1BeoMGRF/KhTZd8YqieZjJ2utLvwMc/hW/6PhbcFkALX63LwnMb/M/qMmRWjUQt5UmgsAAoMKRh/zYj1hjlncRU0xzAiU47vr7M1/Zajn9YANCG1SUaNG01IjdKByPrHQ+OXbGFVexEBADalBqTnzxtRFqED4cnr9pBv5FJ+b0+uVYXtgX4GDxcroVprR51VRlyecqmu9g7g5NddlwfmW+ERmIoBsAn1Pp7VuHxdXpJM5RXaDq+dvQ70HHToTjFyeGtGgA+ZtSpqSjUoGK1BpWFGlSuTkdp7vLBkjrJPf+5vJ3gq4NO2J3R+25LdQCCoU4xwqAVQKU09fZpTDlEb+uMfrEcUQEglgqG4p0CQElbPBS68fA89als6mPp1OfySX5hIumvzFCkTupLUwRA0l+bIxCS+uKkr2BJEhCCX531gZDUl6cXl67Jcn3+f8i3uNMBUgQwAAAAAElFTkSuQmCC",q="data:image/png;base64,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",k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAA8JJREFUeF7tmkloFEEUhr9ywQ1RoogICoriAoq4oEYP5iBqBEG8KeZoFDTo0Q1FXG4q5iLm5sGTOYnxJOZgDIhBcYnBgxJEFBUXImpcKOdlqofOpDPTSU1Xume6oSEZql7976tX1VX1SlHhj6pw/0kBpBFQ4QTSIVDhAZBOgukQSIdACQhoGAtMMO/4vL/HWTbRC/wCfpo397eCP5a2B58DNKwi+y4FlgQ46Hd0tK2QYdb/FwDGD6sD6ASeKHgY1MaAOUBnnT0N7BymqLhWawYuKbjnF9gPgHH+ATAprl5Y6pLhtEVBq2cnB0DDQqDLsoGkVJ+l4J2I9QO4D6xLigeWOm8q2J4DoGEr0GJpNGnVaxXc7osADZeBg0nzwFJvo4IGD8AjYLmlwaRVf6pgmdIwFfiSNPUl0lslADYCd0tkMGlmagRAPXAlacpLpHefALgAHC6RwaSZuSgAbgG1DpS/AWY7aGcoTbQIAFcLIFl+ynq8cSgKIy7bLgBcfQJbFdSYdYdAOBCxc2HMPxYAsv6XfUDUTw6AgTDPTL6bom64gP0uAdANzHEgoh8Arz0Nm4GmEZofugXAR2D6SAHwgZCluCzJXT4fBMB3R/v/wAjwe6thWub/Uw7nhx4BIMdKoxxgLwrAFw1rzalU1PPDXwGgHTgvTYQG4ANRB5yJcn6INQDztRiT2bGfBI5H0VGxB2AgzDBzw/5SQ4g9AA2HgBOZL0RVqZ0Xe7EFoGGbcXxNFI57NgWAJBJsszdhNIaaBDUsMGN+dxijlmV6BcBXYIqloTDViwLIfI5kDSALokjCPUDkNwEg5+Mzw3hgWWZQABp2AQ1ApOEeoP+9AHgFzLV0Lkz1AQBM/lEmORfhHqTxtQB4bpKfYZywKePfDsuQk1Mol+EepL1TAEjWdKWNZyHr9gHQ2d4Wx12He5DMDgEg2dL1IZ2wKSYnQm9HMNyDtLcJgBuOUuGfHc7uYTuqWQDIZuNY2BplVu6sANgDXCszx8K6UycAVgBylaQSn9UCQC449ThaDscJ8m9gspcdbgOq46TOgZZ2BdUegCPAOQeNxqmJowrOewAWAS/ipM6BlsUKuvx3hCopSVqv4KpAzr8m5ypR6qCDB22i36Ys6KKk7MnlELIcnyYFe/2OBd4W17AB2EE2mSl5w4kJpvGS7H7nuoI7+X6Eui6vYb7JHwqIobxygVqO2wq9cuxd6Plh1imyVsl/JasV9Lv32zMFnwoZDwUgwb1fVHoKoCiiMi+QRkCZd3BR99IIKIqozAtUfAT8BxZ52hXK+psIAAAAAElFTkSuQmCC",v="/assets/qq_group_qr2-e70d9e73.png",G={class:"pt-5"},F={class:"flex flex-col items-center justify-center"},y=["src"],M={class:"text-3xl font-semibold"},O={class:"text-xl"},Y=["title"],T={class:"mt-2"},V={href:"https://github.com/hslr-s/sun-panel/releases",target:"_blank",class:"link"},X={class:"flex flex-col items-center justify-center text-base"},S=s("a",{href:"https://github.com/hslr-s",target:"_blank",class:"link"},"红烧猎人",-1),H={href:"https://github.com/hslr-s/sun-panel/blob/master/doc/donate.md",target:"_blank",class:"text-red-600 hover:text-red-900"},K=s("a",{href:"https://github.com/hslr-s/sun-panel/issues",target:"_blank",class:"link"},"Github Issues",-1),R=s("a",{href:"https://github.com/hslr-s/sun-panel/discussions",target:"_blank",class:"link"},"Github Discussions",-1),W={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=K6UII6aEPZUeDRIPOEpOSJZH-Vmr_RPu&authKey=jEXhnVekLbDDx5UkQzKtd3bRmhZggkGBxmvW4NT5LLIAFP7toMmqABwvkANGHbLb&noverify=0&group_code=831615449",target:"_blank",class:"link"},J={class:"flex mt-[10px] flex-wrap justify-center"},L={class:"flex items-center mx-[10px]"},P=["src"],N=s("a",{href:"https://github.com/hslr-s/sun-panel",target:"_blank",class:"link"},"Github",-1),Z={class:"flex items-center mx-[10px]"},j=["src"],_=s("a",{href:"https://gitee.com/hslr/sun-panel",target:"_blank",class:"link"},"Gitee",-1),$={class:"flex items-center mx-[10px]"},ss=["src"],ts=s("a",{href:"https://hub.docker.com/r/hslr/sun-panel",target:"_blank",class:"link"},"Docker",-1),As={class:"flex items-center mx-[10px]"},es=["src"],os=s("a",{href:"https://space.bilibili.com/27407696/channel/collectiondetail?sid=2023810",target:"_blank",class:"link"},"Bilibili",-1),is={key:0,class:"flex items-center mx-[10px]"},ls=["src"],as=s("a",{href:"https://www.youtube.com/channel/UCKwbFmKU25R602z6P2fgPYg",target:"_blank",class:"link"},"YouTube",-1),ns={class:"mt-5"},cs=s("div",{class:"text-center"}," - 如果失效请返回联系作者 - ",-1),rs={class:"flex justify-center"},gs=["src"],Ds=u({__name:"index",setup(ps){const h=B(),c=g(""),i=g(!1),m="20240220";return f(()=>{w().then(t=>{t.code===0&&(c.value=t.data.versionName)})}),(t,l)=>(p(),d("div",G,[s("div",F,[s("img",{src:A(b),width:"100",height:"100",alt:""},null,8,y),s("div",M,e(t.$t("common.appName")),1),s("div",O,[a(A(x),{type:"info"},{default:n(()=>[s("a",{href:"https://github.com/hslr-s/sun-panel/releases",class:"font-semibold",title:t.$t("apps.about.viewUpdateLog"),target:"_blank"},"v"+e(c.value),9,Y)]),_:1})]),s("div",T,[s("a",V,e(t.$t("apps.about.checkUpdate")),1)])]),a(A(C),{style:{margin:"10px 0"}},{default:n(()=>[o(" • ")]),_:1}),s("div",X,[s("div",null,[o(e(t.$t("apps.about.author")),1),S,o(" | "),s("a",H,e(t.$t("apps.about.donate")),1)]),s("div",null,[o(e(t.$t("apps.about.issue")),1),K]),s("div",null,[o(e(t.$t("apps.about.discussions")),1),R]),s("div",null,[o(e(t.$t("apps.about.QQGroup")),1),s("a",W,e(t.$t("apps.about.addQQGroupUrl")),1),o(" | "),s("span",{class:"link cursor-pointer",onClick:l[0]||(l[0]=r=>i.value=!i.value)},e(t.$t("apps.about.QR")),1)]),s("div",J,[s("div",L,[s("img",{class:"w-[20px] h-[20px] mr-[5px]",src:A(U),alt:""},null,8,P),N]),s("div",Z,[s("img",{class:"w-[20px] h-[20px] mr-[5px]",src:A(I),alt:""},null,8,j),_]),s("div",$,[s("img",{class:"w-[20px] h-[20px] mr-[5px]",src:A(z),alt:""},null,8,ss),ts]),s("div",As,[s("img",{class:"w-[20px] h-[20px] mr-[5px]",src:A(q),alt:""},null,8,es),os]),A(h).language!=="zh-CN"?(p(),d("div",is,[s("img",{class:"w-[20px] h-[20px] mr-[5px]",src:A(k),alt:""},null,8,ls),as])):E("",!0)]),s("div",ns,[a(A(Q),{bordered:!1,size:"small"},{default:n(()=>[o(e(t.$t("apps.about.frontVersionText"))+": FV-"+e(A(m)),1)]),_:1})]),a(A(D),{show:i.value,"onUpdate:show":l[1]||(l[1]=r=>i.value=r),title:"交流群二维码",style:{width:"300px"}},{default:n(()=>[cs,s("div",rs,[s("img",{src:A(v),class:"h-[260px]"},null,8,gs)])]),_:1},8,["show"])])]))}});export{Ds as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-bb41db9d.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-bb41db9d.js deleted file mode 100644 index d246160e7..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-bb41db9d.js +++ /dev/null @@ -1 +0,0 @@ -import{S as Y}from"./index-c238f14b.js";import{r as T,_ as A}from"./index-b1d3d9b0.js";import{cI as oe,f as ne,bn as se,r as d,D as re,aW as m,aX as S,b4 as r,a$ as a,b3 as g,b1 as v,b2 as n,ac as $,b0 as b,b5 as C,ao as ae,bq as le,a_ as V,bo as c}from"./index-7e19b821.js";import{g as ie}from"./about-2688cabc.js";import{N as ue,a as L,b as G,c as O,e as ce,d as pe,g as de,f as fe}from"./index-bc9666b7.js";import{N as H}from"./Alert-018ca7af.js";import{N as me}from"./index-2b595d91.js";import{N as W}from"./Divider-a11d112a.js";import"./_plugin-vue_export-helper-c27b6911.js";const F=1,ve=1,ge="Sun-Panel-Config";class j extends Error{constructor(t){super(t),this.name="FormatError"}}class z extends Error{constructor(t){super(t),this.name="ConfigVersionLowError"}}function he(u){const t={version:F,appName:ge,exportTime:T().format("YYYY-MM-DD HH:mm:ss"),appVersion:u||"",md5:""};function s(){t.md5=q(JSON.stringify(t))}return{addIconsData(i){return t.icons=i,this},exportFile(){s();const i=JSON.stringify(t);if(i){const f=new Blob([i],{type:"application/json"}),h=document.createElement("a");h.href=URL.createObjectURL(f),h.download=`SunPanel-Data${T().format("YYYYMMDDHHmm")}.sun-panel.json`,h.click()}},string(){return s(),JSON.stringify(t)}}}function ye(u){let t;try{t=JSON.parse(u)}catch{throw new j("file format error")}const s=xe(t),i=q(u);if(!s)throw new j("file format error");if(t.versioni===s.md5,isPassCheckConfigVersionOld:()=>!(s.version!(s.version>F),isPassCheckConfigVersionBest:()=>s.version===F,jsonStruct:s,hasProperty:f=>f in s,geticons:()=>s.icons||[]}}function xe(u){const t=["version","appName","exportTime","appVersion","md5"];for(const i of t)if(!(i in u))return null;return u}function q(u){try{const t=JSON.parse(u);we(t);const s=JSON.stringify(t);return oe.MD5(s).toString()}catch{return""}}function we(u){for(const t in u)if(t==="md5"){delete u[t];return}}const Ie={class:"pt-2"},be={class:"flex justify-center m-[50px]"},ke={class:"m-[10px]"},Ce={class:"m-[10px]"},Ne={class:"flex justify-center"},_e={href:"https://hslr-s.github.io/sun-panel-tool-page/#/",target:"_blank"},Se={key:0},$e={key:0},Me=g("h2",null,"JSON 数据",-1),De={key:0},Ee={class:"mt-[50px]"},Ve={class:"mt-[50px]"},Ye=ne({__name:"index",setup(u){const t=se(),s=d(null),i=d([]),f=d(!1),h=d(!1),N=d(!1),P=d(!1),U=d(""),K=d(!1),_=d(null),M=d(["icons"]),x=d(["icons"]);async function X(){var l,w;const e=(l=_.value)==null?void 0:l.geticons(),o=50;if(!e)return null;try{for(let y=0;y{const y={title:w.title,sort:w.sort,children:[]},I=await fe(w.id);if(I.code===0)for(const p of I.data.list)y.children.push({icon:p.icon,sort:p.sort||99999,title:p.title,url:p.url,lanUrl:p.lanUrl||"",description:p.description||"",openMethod:p.openMethod||1});e.push(y)})),e):[]}re(()=>{ie().then(e=>{e.code===0&&(U.value=e.data.versionName)})});function Z(e){if(P.value=!0,console.log(e.file.file),e.file.file){const o=new FileReader;o.onload=()=>{o.result?(s.value=o.result,J()):t.error(`${c("common.failed")}: ${c("common.repeatLater")}`),P.value=!1},o.readAsText(e.file.file)}}function J(){if(i.value=[],s.value)try{_.value=ye(s.value),_.value&&(_.value.isPassCheckMd5()||i.value.push(c("apps.exportImport.fileModified")),_.value.isPassCheckConfigVersionOld()||i.value.push(c("apps.exportImport.warnConfigFileLow")),_.value.isPassCheckConfigVersionNew()||i.value.push(c("apps.exportImport.softwareVersionLow")),f.value=!f.value)}catch(e){e instanceof z?(t.error(c("apps.exportImport.errorConfigFileLow")),console.error("The configuration file version is too low to be compatible")):e instanceof j&&(t.error(c("apps.exportImport.errorConfigFileFormat")),console.error("The format is incorrect and cannot be imported"))}else t.error(c("apps.exportImport.errorConfigFileFormat"))}async function ee(){N.value=!0;const e=he(U.value);if(x.value.includes("icons")){console.log("export icons ...");const o=await Q();e.addIconsData(o),console.log("export icons finish",o)}s.value=e.string(),e.exportFile(),N.value=!1,h.value=!1}async function te(){if(N.value=!0,x.value.includes("icons")){console.log("export icons ...");const e=await X();e!==null&&t.success(`${c("common.failed")}:${e}`)}N.value=!1,f.value=!1,t.success(`${c("common.success")}, ${c("common.refreshPage")}`)}return(e,o)=>(m(),S("div",Ie,[r(n(H),{type:"info",bordered:!1},{default:a(()=>[g("p",null,v(e.$t("apps.exportImport.tip")),1)]),_:1}),g("div",be,[g("div",ke,[r(n(ue),{accept:".sun-panel.json,.sunpanel.json","directory-dnd":"","default-upload":!1,"show-file-list":!1,onChange:Z},{default:a(()=>[r(n($),{type:"info",size:"large",loading:P.value},{icon:a(()=>[r(n(Y),{icon:"fa6:solid-file-import"})]),default:a(()=>[b(" "+v(e.$t("apps.exportImport.import")),1)]),_:1},8,["loading"])]),_:1})]),g("div",Ce,[r(n($),{type:"info",size:"large",onClick:o[0]||(o[0]=l=>h.value=!h.value)},{icon:a(()=>[r(n(Y),{icon:"fa6:solid-file-export"})]),default:a(()=>[b(" "+v(e.$t("apps.exportImport.export")),1)]),_:1})])]),g("div",Ne,[g("a",_e,v(e.$t("apps.exportImport.transmuteStandard")),1)]),K.value?(m(),S("div",Se,[r(n($),{onClick:J},{default:a(()=>[b(" 检查导入 ")]),_:1}),r(n($),{onClick:o[1]||(o[1]=l=>s.value="")},{default:a(()=>[b(" 清空导入数据 ")]),_:1}),r(n(me),{value:s.value,"onUpdate:value":o[2]||(o[2]=l=>s.value=l),type:"textarea",placeholder:"基本的 Textarea"},null,8,["value"]),s.value?(m(),S("div",$e,[Me,g("pre",null,v(s.value),1)])):C("",!0)])):C("",!0),r(n(A),{show:f.value,"onUpdate:show":o[4]||(o[4]=l=>f.value=l),style:{"max-width":"400px"},title:e.$t("apps.exportImport.import")},{default:a(()=>[i.value.length>0?(m(),S("div",De,[r(n(H),{title:e.$t("common.warning"),type:"warning"},{default:a(()=>[(m(!0),S(ae,null,le(i.value,(l,w)=>(m(),S("div",{key:w},v(l),1))),128))]),_:1},8,["title"])])):C("",!0),r(n(W),{"title-placement":"left"},{default:a(()=>[b(v(e.$t("apps.exportImport.selectImportData")),1)]),_:1}),r(n(L),{justify:"center",style:{"margin-top":"20px"}},{default:a(()=>[r(n(G),{value:x.value,"onUpdate:value":o[3]||(o[3]=l=>x.value=l)},{default:a(()=>[M.value.includes("icons")?(m(),V(n(O),{key:0,value:"icons",label:e.$t("apps.exportImport.moduleIcon")},null,8,["label"])):C("",!0),M.value.includes("style")?(m(),V(n(O),{key:1,value:"style",label:e.$t("apps.exportImport.moduleStyle")},null,8,["label"])):C("",!0)]),_:1},8,["value"])]),_:1}),r(n(L),{justify:"center"},{default:a(()=>[g("div",Ee,[r(n($),{type:"success",disabled:x.value.length===0,loading:N.value,onClick:te},{default:a(()=>[b(v(e.$t("common.continue")),1)]),_:1},8,["disabled","loading"])])]),_:1})]),_:1},8,["show","title"]),r(n(A),{show:h.value,"onUpdate:show":o[6]||(o[6]=l=>h.value=l),style:{"max-width":"400px"},title:e.$t("apps.exportImport.export")},{default:a(()=>[r(n(W),{"title-placement":"left"},{default:a(()=>[b(v(e.$t("apps.exportImport.selectExportData")),1)]),_:1}),r(n(L),{justify:"center",style:{"margin-top":"20px"}},{default:a(()=>[r(n(G),{value:x.value,"onUpdate:value":o[5]||(o[5]=l=>x.value=l)},{default:a(()=>[M.value.includes("icons")?(m(),V(n(O),{key:0,value:"icons",label:e.$t("apps.exportImport.moduleIcon")},null,8,["label"])):C("",!0),M.value.includes("style")?(m(),V(n(O),{key:1,value:"style",label:e.$t("apps.exportImport.moduleStyle")},null,8,["label"])):C("",!0)]),_:1},8,["value"])]),_:1}),r(n(L),{justify:"center"},{default:a(()=>[g("div",Ve,[r(n($),{type:"success",disabled:x.value.length===0,loading:N.value,onClick:ee},{default:a(()=>[b(v(e.$t("common.continue")),1)]),_:1},8,["disabled","loading"])])]),_:1})]),_:1},8,["show","title"])]))}});export{Ye as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-bc9666b7.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-bc9666b7.js deleted file mode 100644 index ee9db8757..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-bc9666b7.js +++ /dev/null @@ -1,1729 +0,0 @@ -import{r as te,w as tr,a as Mu,h as q1,o as F1,b as di,c as $r,d as L1,e as Dr,f as Re,u as $1,g as D,i as O1,j as Qa,k as U1,l as Zo,m as O,n as he,p as we,q as Ut,s as H1,t as zr,v as Bu,x as Iu,y as de,z as dt,A as ut,B as kr,C as V1,D as dr,E as go,F as gl,G as Vo,H as Rt,I as j1,V as Ys,J as bl,K as le,L as Ue,M as G1,N as Pu,O as W1,T as yl,P as Xn,Q as X1,R as An,S as er,U as Tn,W as tn,X as _n,Y as Hn,Z as nn,_ as ho,$ as Vn,a0 as No,a1 as Ks,a2 as Zs,a3 as Js,a4 as hi,a5 as Jo,a6 as xr,a7 as Y1,a8 as fi,a9 as K1,aa as Z1,ab as Je,ac as Dt,ad as Nu,ae as Dn,af as xl,ag as Qs,ah as qu,ai as J1,aj as ei,ak as Q1,al as ef,am as Fu,an as jo,ao as cr,ap as tf,aq as rf,ar as nf,as as of,at as af,au as sf,av as lf,aw as cc,ax as Ga,ay as cf,az as Lu,aA as $u,aB as Ou,aC as Uu,aD as Hu,aE as Vu,aF as ju,aG as uf,aH as uc,aI as df,aJ as hf,aK as Qo,aL as ff,aM as pf,aN as Ia,aO as mf,aP as Gu,aQ as vf,aR as gf,aS as Wu,aT as dc,aU as bf,aV as yf,aW as pe,aX as Pe,aY as fo,aZ as mt,a_ as pt,a$ as xe,b0 as sr,b1 as ot,b2 as _,b3 as fe,b4 as K,b5 as Xe,b6 as Xu,b7 as xf,b8 as hc,b9 as wf,ba as kf,bb as Pn,bc as xt,bd as yr,be as rr,bf as Sf,bg as wl,bh as ea,bi as bo,bj as Cf,bk as Af,bl as pi,bm as Tf,bn as mi,bo as Ie,bp as kl,bq as jn,br as Yu,bs as _f,bt as fc,bu as gn,bv as Ku,bw as Zu,bx as en,by as Df,bz as zf,bA as Ef}from"./index-7e19b821.js";import{i as gs,o as Rf,g as Mf,a as Bf,b as Ju,N as Qu,d as If,c as Pf,e as Go,f as Nf,m as qf,h as Ff,j as ed,k as Lf,l as pc,n as mc,_ as $f,p as td,u as Of,s as Uf,q as Hf}from"./index-b1d3d9b0.js";import{t as Vf,N as kn,h as vc,c as jf,u as Gf,E as Wf,a as Vt,b as el,d as Sl,e as Sn}from"./index-2b595d91.js";import{c as Xf,a as gc,u as Vr,f as br,b as Yf,d as tl,V as rd,e as nd,g as od,r as Kf,N as Zf,p as ad,h as bc,o as Jf,S as Ft}from"./index-c238f14b.js";import{_ as ta}from"./_plugin-vue_export-helper-c27b6911.js";function Qf(e){return e.nodeType===9?null:e.parentNode}function id(e){if(e===null)return null;const t=Qf(e);if(t===null)return null;if(t.nodeType===9)return document.documentElement;if(t.nodeType===1){const{overflow:n,overflowX:i,overflowY:c}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(n+c+i))return t}return id(t)}function ep(e){return typeof e=="string"?document.querySelector(e):typeof e=="function"?e():e}function sd(e,t,n){t/=100,n/=100;const i=t*Math.min(n,1-n)+n;return[e,i?(2-2*n/i)*100:0,i*100]}function Wa(e,t,n){t/=100,n/=100;const i=n-n*t/2,c=Math.min(i,1-i);return[e,c?(n-i)/c*100:0,i*100]}function xn(e,t,n){t/=100,n/=100;let i=(c,l=(c+e/60)%6)=>n-n*t*Math.max(Math.min(l,4-l,1),0);return[i(5)*255,i(3)*255,i(1)*255]}function rl(e,t,n){e/=255,t/=255,n/=255;let i=Math.max(e,t,n),c=i-Math.min(e,t,n),l=c&&(i==e?(t-n)/c:i==t?2+(n-e)/c:4+(e-t)/c);return[60*(l<0?l+6:l),i&&c/i*100,i*100]}function nl(e,t,n){e/=255,t/=255,n/=255;let i=Math.max(e,t,n),c=i-Math.min(e,t,n),l=1-Math.abs(i+i-c-1),u=c&&(i==e?(t-n)/c:i==t?2+(n-e)/c:4+(e-t)/c);return[60*(u<0?u+6:u),l?c/l*100:0,(i+i-c)*50]}function ol(e,t,n){t/=100,n/=100;let i=t*Math.min(n,1-n),c=(l,u=(l+e/30)%12)=>n-i*Math.max(Math.min(u-3,9-u,1),-1);return[c(0)*255,c(8)*255,c(4)*255]}function tp(e){return t=>{t?e.value=t.$el:e.value=null}}function rp(e,t,n){if(!t)return e;const i=te(e.value);let c=null;return tr(e,l=>{c!==null&&window.clearTimeout(c),l===!0?n&&!n.value?i.value=!0:c=window.setTimeout(()=>{i.value=!0},t):i.value=!1}),i}function np(e={},t){const n=Mu({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:i,keyup:c}=e,l=f=>{switch(f.key){case"Control":n.ctrl=!0;break;case"Meta":n.command=!0,n.win=!0;break;case"Shift":n.shift=!0;break;case"Tab":n.tab=!0;break}i!==void 0&&Object.keys(i).forEach(b=>{if(b!==f.key)return;const y=i[b];if(typeof y=="function")y(f);else{const{stop:k=!1,prevent:C=!1}=y;k&&f.stopPropagation(),C&&f.preventDefault(),y.handler(f)}})},u=f=>{switch(f.key){case"Control":n.ctrl=!1;break;case"Meta":n.command=!1,n.win=!1;break;case"Shift":n.shift=!1;break;case"Tab":n.tab=!1;break}c!==void 0&&Object.keys(c).forEach(b=>{if(b!==f.key)return;const y=c[b];if(typeof y=="function")y(f);else{const{stop:k=!1,prevent:C=!1}=y;k&&f.stopPropagation(),C&&f.preventDefault(),y.handler(f)}})},h=()=>{(t===void 0||t.value)&&(Dr("keydown",document,l),Dr("keyup",document,u)),t!==void 0&&tr(t,f=>{f?(Dr("keydown",document,l),Dr("keyup",document,u)):($r("keydown",document,l),$r("keyup",document,u))})};return q1()?(F1(h),di(()=>{(t===void 0||t.value)&&($r("keydown",document,l),$r("keyup",document,u))})):h(),L1(n)}const op=gc(".v-x-scroll",{overflow:"auto",scrollbarWidth:"none"},[gc("&::-webkit-scrollbar",{width:0,height:0})]),ap=Re({name:"XScroll",props:{disabled:Boolean,onScroll:Function},setup(){const e=te(null);function t(c){!(c.currentTarget.offsetWidth=t||j<0||k&&ie>=l}function E(){var R=bs();if($(R))return B(R);h=setTimeout(E,P(R))}function B(R){return h=void 0,C&&i?S(R):(i=c=void 0,u)}function M(){h!==void 0&&clearTimeout(h),b=0,i=f=c=h=void 0}function U(){return h===void 0?u:B(bs())}function q(){var R=bs(),j=$(R);if(i=arguments,c=this,f=R,j){if(h===void 0)return L(f);if(k)return clearTimeout(h),h=setTimeout(E,t),S(f)}return h===void 0&&(h=setTimeout(E,t)),u}return q.cancel=M,q.flush=U,q}var yp="Expected a function";function ys(e,t,n){var i=!0,c=!0;if(typeof e!="function")throw new TypeError(yp);return Qa(n)&&(i="leading"in n?!!n.leading:i,c="trailing"in n?!!n.trailing:c),bp(e,t,{leading:i,maxWait:t,trailing:c})}const ld=Re({name:"Add",render(){return D("svg",{width:"512",height:"512",viewBox:"0 0 512 512",fill:"none",xmlns:"http://www.w3.org/2000/svg"},D("path",{d:"M256 112V400M400 256H112",stroke:"currentColor","stroke-width":"32","stroke-linecap":"round","stroke-linejoin":"round"}))}}),xp=Zo("attach",D("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},D("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},D("g",{fill:"currentColor","fill-rule":"nonzero"},D("path",{d:"M3.25735931,8.70710678 L7.85355339,4.1109127 C8.82986412,3.13460197 10.4127766,3.13460197 11.3890873,4.1109127 C12.365398,5.08722343 12.365398,6.67013588 11.3890873,7.64644661 L6.08578644,12.9497475 C5.69526215,13.3402718 5.06209717,13.3402718 4.67157288,12.9497475 C4.28104858,12.5592232 4.28104858,11.9260582 4.67157288,11.5355339 L9.97487373,6.23223305 C10.1701359,6.0369709 10.1701359,5.72038841 9.97487373,5.52512627 C9.77961159,5.32986412 9.4630291,5.32986412 9.26776695,5.52512627 L3.96446609,10.8284271 C3.18341751,11.6094757 3.18341751,12.8758057 3.96446609,13.6568542 C4.74551468,14.4379028 6.01184464,14.4379028 6.79289322,13.6568542 L12.0961941,8.35355339 C13.4630291,6.98671837 13.4630291,4.77064094 12.0961941,3.40380592 C10.7293591,2.0369709 8.51328163,2.0369709 7.14644661,3.40380592 L2.55025253,8 C2.35499039,8.19526215 2.35499039,8.51184464 2.55025253,8.70710678 C2.74551468,8.90236893 3.06209717,8.90236893 3.25735931,8.70710678 Z"}))))),cd=Re({name:"ChevronRight",render(){return D("svg",{viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},D("path",{d:"M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z",fill:"currentColor"}))}}),wp=Zo("trash",D("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},D("path",{d:"M432,144,403.33,419.74A32,32,0,0,1,371.55,448H140.46a32,32,0,0,1-31.78-28.26L80,144",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}),D("rect",{x:"32",y:"64",width:"448",height:"80",rx:"16",ry:"16",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}),D("line",{x1:"312",y1:"240",x2:"200",y2:"352",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}),D("line",{x1:"312",y1:"352",x2:"200",y2:"240",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}))),kp=Zo("download",D("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},D("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},D("g",{fill:"currentColor","fill-rule":"nonzero"},D("path",{d:"M3.5,13 L12.5,13 C12.7761424,13 13,13.2238576 13,13.5 C13,13.7454599 12.8231248,13.9496084 12.5898756,13.9919443 L12.5,14 L3.5,14 C3.22385763,14 3,13.7761424 3,13.5 C3,13.2545401 3.17687516,13.0503916 3.41012437,13.0080557 L3.5,13 L12.5,13 L3.5,13 Z M7.91012437,1.00805567 L8,1 C8.24545989,1 8.44960837,1.17687516 8.49194433,1.41012437 L8.5,1.5 L8.5,10.292 L11.1819805,7.6109127 C11.3555469,7.43734635 11.6249713,7.4180612 11.8198394,7.55305725 L11.8890873,7.6109127 C12.0626536,7.78447906 12.0819388,8.05390346 11.9469427,8.2487716 L11.8890873,8.31801948 L8.35355339,11.8535534 C8.17998704,12.0271197 7.91056264,12.0464049 7.7156945,11.9114088 L7.64644661,11.8535534 L4.1109127,8.31801948 C3.91565056,8.12275734 3.91565056,7.80617485 4.1109127,7.6109127 C4.28447906,7.43734635 4.55390346,7.4180612 4.7487716,7.55305725 L4.81801948,7.6109127 L7.5,10.292 L7.5,1.5 C7.5,1.25454011 7.67687516,1.05039163 7.91012437,1.00805567 L8,1 L7.91012437,1.00805567 Z"}))))),Sp=Zo("cancel",D("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},D("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},D("g",{fill:"currentColor","fill-rule":"nonzero"},D("path",{d:"M2.58859116,2.7156945 L2.64644661,2.64644661 C2.82001296,2.47288026 3.08943736,2.45359511 3.2843055,2.58859116 L3.35355339,2.64644661 L8,7.293 L12.6464466,2.64644661 C12.8417088,2.45118446 13.1582912,2.45118446 13.3535534,2.64644661 C13.5488155,2.84170876 13.5488155,3.15829124 13.3535534,3.35355339 L8.707,8 L13.3535534,12.6464466 C13.5271197,12.820013 13.5464049,13.0894374 13.4114088,13.2843055 L13.3535534,13.3535534 C13.179987,13.5271197 12.9105626,13.5464049 12.7156945,13.4114088 L12.6464466,13.3535534 L8,8.707 L3.35355339,13.3535534 C3.15829124,13.5488155 2.84170876,13.5488155 2.64644661,13.3535534 C2.45118446,13.1582912 2.45118446,12.8417088 2.64644661,12.6464466 L7.293,8 L2.64644661,3.35355339 C2.47288026,3.17998704 2.45359511,2.91056264 2.58859116,2.7156945 L2.64644661,2.64644661 L2.58859116,2.7156945 Z"}))))),Cp=Zo("retry",D("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},D("path",{d:"M320,146s24.36-12-64-12A160,160,0,1,0,416,294",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 32px;"}),D("polyline",{points:"256 58 336 138 256 218",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}))),Ap=O("input-group",` - display: inline-flex; - width: 100%; - flex-wrap: nowrap; - vertical-align: bottom; -`,[he(">",[O("input",[he("&:not(:last-child)",` - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; - `),he("&:not(:first-child)",` - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - margin-left: -1px!important; - `)]),O("button",[he("&:not(:last-child)",` - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; - `,[we("state-border, border",` - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; - `)]),he("&:not(:first-child)",` - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - `,[we("state-border, border",` - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - `)])]),he("*",[he("&:not(:last-child)",` - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; - `,[he(">",[O("input",` - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; - `),O("base-selection",[O("base-selection-label",` - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; - `),O("base-selection-tags",` - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; - `),we("box-shadow, border, state-border",` - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; - `)])])]),he("&:not(:first-child)",` - margin-left: -1px!important; - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - `,[he(">",[O("input",` - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - `),O("base-selection",[O("base-selection-label",` - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - `),O("base-selection-tags",` - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - `),we("box-shadow, border, state-border",` - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - `)])])])])])]),Tp={},al=Re({name:"InputGroup",props:Tp,setup(e){const{mergedClsPrefixRef:t}=Ut(e);return H1("-input-group",Ap,t),{mergedClsPrefix:t}},render(){const{mergedClsPrefix:e}=this;return D("div",{class:`${e}-input-group`},this.$slots)}}),_p=zr("n-avatar-group"),Dp=O("avatar",` - width: var(--n-merged-size); - height: var(--n-merged-size); - color: #FFF; - font-size: var(--n-font-size); - display: inline-flex; - position: relative; - overflow: hidden; - text-align: center; - border: var(--n-border); - border-radius: var(--n-border-radius); - --n-merged-color: var(--n-color); - background-color: var(--n-merged-color); - transition: - border-color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); -`,[Bu(he("&","--n-merged-color: var(--n-color-modal);")),Iu(he("&","--n-merged-color: var(--n-color-popover);")),he("img",` - width: 100%; - height: 100%; - `),we("text",` - white-space: nowrap; - display: inline-block; - position: absolute; - left: 50%; - top: 50%; - `),O("icon",` - vertical-align: bottom; - font-size: calc(var(--n-merged-size) - 6px); - `),we("text","line-height: 1.25")]),zp=Object.assign(Object.assign({},dt.props),{size:[String,Number],src:String,circle:{type:Boolean,default:void 0},objectFit:String,round:{type:Boolean,default:void 0},bordered:{type:Boolean,default:void 0},onError:Function,fallbackSrc:String,intersectionObserverOptions:Object,lazy:Boolean,onLoad:Function,renderPlaceholder:Function,renderFallback:Function,imgProps:Object,color:String}),qo=Re({name:"Avatar",props:zp,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=Ut(e),i=te(!1);let c=null;const l=te(null),u=te(null),h=()=>{const{value:M}=l;if(M&&(c===null||c!==M.innerHTML)){c=M.innerHTML;const{value:U}=u;if(U){const{offsetWidth:q,offsetHeight:R}=U,{offsetWidth:j,offsetHeight:ie}=M,X=.9,oe=Math.min(q/j*X,R/ie*X,1);M.style.transform=`translateX(-50%) translateY(-50%) scale(${oe})`}}},f=Rt(_p,null),b=de(()=>{const{size:M}=e;if(M)return M;const{size:U}=f||{};return U||"medium"}),y=dt("Avatar","-avatar",Dp,j1,e,t),k=Rt(Vf,null),C=de(()=>{if(f)return!0;const{round:M,circle:U}=e;return M!==void 0||U!==void 0?M||U:k?k.roundRef.value:!1}),S=de(()=>f?!0:e.bordered||!1),L=M=>{var U;if(!E.value)return;i.value=!0;const{onError:q,imgProps:R}=e;(U=R==null?void 0:R.onError)===null||U===void 0||U.call(R,M),q&&q(M)};tr(()=>e.src,()=>i.value=!1);const P=de(()=>{const M=b.value,U=C.value,q=S.value,{color:R}=e,{self:{borderRadius:j,fontSize:ie,color:X,border:oe,colorModal:Z,colorPopover:ee},common:{cubicBezierEaseInOut:ne}}=y.value;let V;return typeof M=="number"?V=`${M}px`:V=y.value.self[ut("height",M)],{"--n-font-size":ie,"--n-border":q?oe:"none","--n-border-radius":U?"50%":j,"--n-color":R||X,"--n-color-modal":R||Z,"--n-color-popover":R||ee,"--n-bezier":ne,"--n-merged-size":`var(--n-avatar-size-override, ${V})`}}),$=n?kr("avatar",de(()=>{const M=b.value,U=C.value,q=S.value,{color:R}=e;let j="";return M&&(typeof M=="number"?j+=`a${M}`:j+=M[0]),U&&(j+="b"),q&&(j+="c"),R&&(j+=V1(R)),j}),P,e):void 0,E=te(!e.lazy);dr(()=>{if(gs)return;let M;const U=go(()=>{M==null||M(),M=void 0,e.lazy&&(M=Rf(u.value,e.intersectionObserverOptions,E))});di(()=>{U(),M==null||M()})});const B=te(!e.lazy);return{textRef:l,selfRef:u,mergedRoundRef:C,mergedClsPrefix:t,fitTextTransform:h,cssVars:n?void 0:P,themeClass:$==null?void 0:$.themeClass,onRender:$==null?void 0:$.onRender,hasLoadError:i,handleError:L,shouldStartLoading:E,loaded:B,mergedOnLoad:M=>{var U;const{onLoad:q,imgProps:R}=e;q==null||q(M),(U=R==null?void 0:R.onLoad)===null||U===void 0||U.call(R,M),B.value=!0}}},render(){var e,t;const{$slots:n,src:i,mergedClsPrefix:c,lazy:l,onRender:u,mergedOnLoad:h,shouldStartLoading:f,loaded:b,hasLoadError:y}=this;u==null||u();let k;const C=!b&&!y&&(this.renderPlaceholder?this.renderPlaceholder():(t=(e=this.$slots).placeholder)===null||t===void 0?void 0:t.call(e));return this.hasLoadError?k=this.renderFallback?this.renderFallback():gl(n.fallback,()=>[D("img",{src:this.fallbackSrc,style:{objectFit:this.objectFit}})]):k=Vo(n.default,S=>{if(S)return D(Ys,{onResize:this.fitTextTransform},{default:()=>D("span",{ref:"textRef",class:`${c}-avatar__text`},S)});if(i){const{imgProps:L}=this;return D("img",Object.assign(Object.assign({},L),{loading:gs&&!this.intersectionObserverOptions&&l?"lazy":"eager",src:gs||f||b?i:void 0,onLoad:h,"data-image-src":i,onError:this.handleError,style:[L==null?void 0:L.style,{objectFit:this.objectFit},C?{height:"0",width:"0",visibility:"hidden",position:"absolute"}:""]}))}}),D("span",{ref:"selfRef",class:[`${c}-avatar`,this.themeClass],style:this.cssVars},k,l&&C)}}),Ep=D("svg",{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg",xlinkHref:"http://www.w3.org/1999/xlink"},D("g",{stroke:"none","stroke-width":"1","fill-rule":"evenodd"},D("g",{transform:"translate(-139.000000, -4423.000000)","fill-rule":"nonzero"},D("g",{transform:"translate(120.000000, 4285.000000)"},D("g",{transform:"translate(7.000000, 126.000000)"},D("g",{transform:"translate(24.000000, 24.000000) scale(1, -1) translate(-24.000000, -24.000000) translate(12.000000, 12.000000)"},D("g",{transform:"translate(4.000000, 2.000000)"},D("path",{d:"M8,0 C8.51283584,0 8.93550716,0.38604019 8.99327227,0.883378875 L9,1 L9,10.584 L12.2928932,7.29289322 C12.6834175,6.90236893 13.3165825,6.90236893 13.7071068,7.29289322 C14.0675907,7.65337718 14.0953203,8.22060824 13.7902954,8.61289944 L13.7071068,8.70710678 L8.70710678,13.7071068 L8.62544899,13.7803112 L8.618,13.784 L8.59530661,13.8036654 L8.4840621,13.8753288 L8.37133602,13.9287745 L8.22929083,13.9735893 L8.14346259,13.9897165 L8.03324678,13.9994506 L7.9137692,13.9962979 L7.77070917,13.9735893 L7.6583843,13.9401293 L7.57677845,13.9063266 L7.47929125,13.8540045 L7.4048407,13.8036865 L7.38131006,13.7856883 C7.35030318,13.7612383 7.32077858,13.7349921 7.29289322,13.7071068 L2.29289322,8.70710678 L2.20970461,8.61289944 C1.90467972,8.22060824 1.93240926,7.65337718 2.29289322,7.29289322 C2.65337718,6.93240926 3.22060824,6.90467972 3.61289944,7.20970461 L3.70710678,7.29289322 L7,10.585 L7,1 L7.00672773,0.883378875 C7.06449284,0.38604019 7.48716416,0 8,0 Z"}),D("path",{d:"M14.9333333,15.9994506 C15.5224371,15.9994506 16,16.4471659 16,16.9994506 C16,17.5122865 15.5882238,17.9349578 15.0577292,17.9927229 L14.9333333,17.9994506 L1.06666667,17.9994506 C0.477562934,17.9994506 0,17.5517354 0,16.9994506 C0,16.4866148 0.411776203,16.0639435 0.9422708,16.0061783 L1.06666667,15.9994506 L14.9333333,15.9994506 Z"})))))))),Rp=O("back-top",` - position: fixed; - right: 40px; - bottom: 40px; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - color: var(--n-text-color); - transition: - color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier); - border-radius: var(--n-border-radius); - height: var(--n-height); - min-width: var(--n-width); - box-shadow: var(--n-box-shadow); - background-color: var(--n-color); -`,[bl(),le("transition-disabled",{transition:"none !important"}),O("base-icon",` - font-size: var(--n-icon-size); - color: var(--n-icon-color); - transition: color .3s var(--n-bezier); - `),he("svg",{pointerEvents:"none"}),he("&:hover",{boxShadow:"var(--n-box-shadow-hover)"},[O("base-icon",{color:"var(--n-icon-color-hover)"})]),he("&:active",{boxShadow:"var(--n-box-shadow-pressed)"},[O("base-icon",{color:"var(--n-icon-color-pressed)"})])]),Mp=Object.assign(Object.assign({},dt.props),{show:{type:Boolean,default:void 0},right:{type:[Number,String],default:40},bottom:{type:[Number,String],default:40},to:{type:[String,Object],default:"body"},visibilityHeight:{type:Number,default:180},listenTo:[String,Object,Function],"onUpdate:show":{type:Function,default:()=>{}},target:Function,onShow:Function,onHide:Function}),Bp=Re({name:"BackTop",inheritAttrs:!1,props:Mp,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=Ut(e),i=te(null),c=te(!1);go(()=>{const{value:U}=i;if(U===null){c.value=!1;return}c.value=U>=e.visibilityHeight});const l=te(!1);tr(c,U=>{var q;l.value&&((q=e["onUpdate:show"])===null||q===void 0||q.call(e,U))});const u=Ue(e,"show"),h=Vr(u,c),f=te(!0),b=te(null),y=de(()=>({right:`calc(${br(e.right)} + ${G1.value})`,bottom:br(e.bottom)}));let k,C;tr(h,U=>{var q,R;l.value&&(U&&((q=e.onShow)===null||q===void 0||q.call(e)),(R=e.onHide)===null||R===void 0||R.call(e))});const S=dt("BackTop","-back-top",Rp,X1,e,t);function L(){var U;if(C)return;C=!0;const q=((U=e.target)===null||U===void 0?void 0:U.call(e))||ep(e.listenTo)||id(b.value);if(!q)return;k=q===document.documentElement?document:q;const{to:R}=e;typeof R=="string"&&document.querySelector(R),k.addEventListener("scroll",$),$()}function P(){(yc(k)?document.documentElement:k).scrollTo({top:0,behavior:"smooth"})}function $(){i.value=(yc(k)?document.documentElement:k).scrollTop,l.value||An(()=>{l.value=!0})}function E(){f.value=!1}dr(()=>{L(),f.value=h.value}),di(()=>{k&&k.removeEventListener("scroll",$)});const B=de(()=>{const{self:{color:U,boxShadow:q,boxShadowHover:R,boxShadowPressed:j,iconColor:ie,iconColorHover:X,iconColorPressed:oe,width:Z,height:ee,iconSize:ne,borderRadius:V,textColor:ae},common:{cubicBezierEaseInOut:me}}=S.value;return{"--n-bezier":me,"--n-border-radius":V,"--n-height":ee,"--n-width":Z,"--n-box-shadow":q,"--n-box-shadow-hover":R,"--n-box-shadow-pressed":j,"--n-color":U,"--n-icon-size":ne,"--n-icon-color":ie,"--n-icon-color-hover":X,"--n-icon-color-pressed":oe,"--n-text-color":ae}}),M=n?kr("back-top",void 0,B,e):void 0;return{placeholderRef:b,style:y,mergedShow:h,isMounted:Pu(),scrollElement:te(null),scrollTop:i,DomInfoReady:l,transitionDisabled:f,mergedClsPrefix:t,handleAfterEnter:E,handleScroll:$,handleClick:P,cssVars:n?void 0:B,themeClass:M==null?void 0:M.themeClass,onRender:M==null?void 0:M.onRender}},render(){const{mergedClsPrefix:e}=this;return D("div",{ref:"placeholderRef",class:`${e}-back-top-placeholder`,style:"display: none","aria-hidden":!0},D(W1,{to:this.to,show:this.mergedShow},{default:()=>D(yl,{name:"fade-in-scale-up-transition",appear:this.isMounted,onAfterEnter:this.handleAfterEnter},{default:()=>{var t;return(t=this.onRender)===null||t===void 0||t.call(this),this.mergedShow?D("div",Xn(this.$attrs,{class:[`${e}-back-top`,this.themeClass,this.transitionDisabled&&`${e}-back-top--transition-disabled`],style:[this.style,this.cssVars],onClick:this.handleClick}),gl(this.$slots.default,()=>[D(er,{clsPrefix:e},{default:()=>Ep})])):null}})}))}});function Ip(e,t){switch(e[0]){case"hex":return t?"#000000FF":"#000000";case"rgb":return t?"rgba(0, 0, 0, 1)":"rgb(0, 0, 0)";case"hsl":return t?"hsla(0, 0%, 0%, 1)":"hsl(0, 0%, 0%)";case"hsv":return t?"hsva(0, 0%, 0%, 1)":"hsv(0, 0%, 0%)"}return"#000000"}function Wo(e){return e===null?null:/^ *#/.test(e)?"hex":e.includes("rgb")?"rgb":e.includes("hsl")?"hsl":e.includes("hsv")?"hsv":null}function Pp(e){return e=Math.round(e),e>=360?359:e<0?0:e}function Np(e){return e=Math.round(e*100)/100,e>1?1:e<0?0:e}const qp={rgb:{hex(e){return Tn(tn(e))},hsl(e){const[t,n,i,c]=tn(e);return _n([...nl(t,n,i),c])},hsv(e){const[t,n,i,c]=tn(e);return Hn([...rl(t,n,i),c])}},hex:{rgb(e){return nn(tn(e))},hsl(e){const[t,n,i,c]=tn(e);return _n([...nl(t,n,i),c])},hsv(e){const[t,n,i,c]=tn(e);return Hn([...rl(t,n,i),c])}},hsl:{hex(e){const[t,n,i,c]=ho(e);return Tn([...ol(t,n,i),c])},rgb(e){const[t,n,i,c]=ho(e);return nn([...ol(t,n,i),c])},hsv(e){const[t,n,i,c]=ho(e);return Hn([...sd(t,n,i),c])}},hsv:{hex(e){const[t,n,i,c]=Vn(e);return Tn([...xn(t,n,i),c])},rgb(e){const[t,n,i,c]=Vn(e);return nn([...xn(t,n,i),c])},hsl(e){const[t,n,i,c]=Vn(e);return _n([...Wa(t,n,i),c])}}};function ud(e,t,n){return n=n||Wo(e),n?n===t?e:qp[n][t](e):null}const oo="12px",Fp=12,Nn="6px",Lp=6,$p="linear-gradient(90deg,red,#ff0 16.66%,#0f0 33.33%,#0ff 50%,#00f 66.66%,#f0f 83.33%,red)",Op=Re({name:"HueSlider",props:{clsPrefix:{type:String,required:!0},hue:{type:Number,required:!0},onUpdateHue:{type:Function,required:!0},onComplete:Function},setup(e){const t=te(null);function n(l){t.value&&(Dr("mousemove",document,i),Dr("mouseup",document,c),i(l))}function i(l){const{value:u}=t;if(!u)return;const{width:h,left:f}=u.getBoundingClientRect(),b=Pp((l.clientX-f-Lp)/(h-Fp)*360);e.onUpdateHue(b)}function c(){var l;$r("mousemove",document,i),$r("mouseup",document,c),(l=e.onComplete)===null||l===void 0||l.call(e)}return{railRef:t,handleMouseDown:n}},render(){const{clsPrefix:e}=this;return D("div",{class:`${e}-color-picker-slider`,style:{height:oo,borderRadius:Nn}},D("div",{ref:"railRef",style:{boxShadow:"inset 0 0 2px 0 rgba(0, 0, 0, .24)",boxSizing:"border-box",backgroundImage:$p,height:oo,borderRadius:Nn,position:"relative"},onMousedown:this.handleMouseDown},D("div",{style:{position:"absolute",left:Nn,right:Nn,top:0,bottom:0}},D("div",{class:`${e}-color-picker-handle`,style:{left:`calc((${this.hue}%) / 359 * 100 - ${Nn})`,borderRadius:Nn,width:oo,height:oo}},D("div",{class:`${e}-color-picker-handle__fill`,style:{backgroundColor:`hsl(${this.hue}, 100%, 50%)`,borderRadius:Nn,width:oo,height:oo}})))))}}),Mo="12px",Up=12,qn="6px",Hp=Re({name:"AlphaSlider",props:{clsPrefix:{type:String,required:!0},rgba:{type:Array,default:null},alpha:{type:Number,default:0},onUpdateAlpha:{type:Function,required:!0},onComplete:Function},setup(e){const t=te(null);function n(l){!t.value||!e.rgba||(Dr("mousemove",document,i),Dr("mouseup",document,c),i(l))}function i(l){const{value:u}=t;if(!u)return;const{width:h,left:f}=u.getBoundingClientRect(),b=(l.clientX-f)/(h-Up);e.onUpdateAlpha(Np(b))}function c(){var l;$r("mousemove",document,i),$r("mouseup",document,c),(l=e.onComplete)===null||l===void 0||l.call(e)}return{railRef:t,railBackgroundImage:de(()=>{const{rgba:l}=e;return l?`linear-gradient(to right, rgba(${l[0]}, ${l[1]}, ${l[2]}, 0) 0%, rgba(${l[0]}, ${l[1]}, ${l[2]}, 1) 100%)`:""}),handleMouseDown:n}},render(){const{clsPrefix:e}=this;return D("div",{class:`${e}-color-picker-slider`,ref:"railRef",style:{height:Mo,borderRadius:qn},onMousedown:this.handleMouseDown},D("div",{style:{borderRadius:qn,position:"absolute",left:0,right:0,top:0,bottom:0,overflow:"hidden"}},D("div",{class:`${e}-color-picker-checkboard`}),D("div",{class:`${e}-color-picker-slider__image`,style:{backgroundImage:this.railBackgroundImage}})),this.rgba&&D("div",{style:{position:"absolute",left:qn,right:qn,top:0,bottom:0}},D("div",{class:`${e}-color-picker-handle`,style:{left:`calc(${this.alpha*100}% - ${qn})`,borderRadius:qn,width:Mo,height:Mo}},D("div",{class:`${e}-color-picker-handle__fill`,style:{backgroundColor:nn(this.rgba),borderRadius:qn,width:Mo,height:Mo}}))))}}),Pa="12px",Na="6px",Vp=Re({name:"Pallete",props:{clsPrefix:{type:String,required:!0},rgba:{type:Array,default:null},displayedHue:{type:Number,required:!0},displayedSv:{type:Array,required:!0},onUpdateSV:{type:Function,required:!0},onComplete:Function},setup(e){const t=te(null);function n(l){t.value&&(Dr("mousemove",document,i),Dr("mouseup",document,c),i(l))}function i(l){const{value:u}=t;if(!u)return;const{width:h,height:f,left:b,bottom:y}=u.getBoundingClientRect(),k=(y-l.clientY)/f,C=(l.clientX-b)/h,S=100*(C>1?1:C<0?0:C),L=100*(k>1?1:k<0?0:k);e.onUpdateSV(S,L)}function c(){var l;$r("mousemove",document,i),$r("mouseup",document,c),(l=e.onComplete)===null||l===void 0||l.call(e)}return{palleteRef:t,handleColor:de(()=>{const{rgba:l}=e;return l?`rgb(${l[0]}, ${l[1]}, ${l[2]})`:""}),handleMouseDown:n}},render(){const{clsPrefix:e}=this;return D("div",{class:`${e}-color-picker-pallete`,onMousedown:this.handleMouseDown,ref:"palleteRef"},D("div",{class:`${e}-color-picker-pallete__layer`,style:{backgroundImage:`linear-gradient(90deg, white, hsl(${this.displayedHue}, 100%, 50%))`}}),D("div",{class:`${e}-color-picker-pallete__layer ${e}-color-picker-pallete__layer--shadowed`,style:{backgroundImage:"linear-gradient(180deg, rgba(0, 0, 0, 0%), rgba(0, 0, 0, 100%))"}}),this.rgba&&D("div",{class:`${e}-color-picker-handle`,style:{width:Pa,height:Pa,borderRadius:Na,left:`calc(${this.displayedSv[0]}% - ${Na})`,bottom:`calc(${this.displayedSv[1]}% - ${Na})`}},D("div",{class:`${e}-color-picker-handle__fill`,style:{backgroundColor:this.handleColor,borderRadius:Na,width:Pa,height:Pa}})))}}),Cl=zr("n-color-picker");function jp(e){return/^\d{1,3}\.?\d*$/.test(e.trim())?Math.max(0,Math.min(parseInt(e),255)):!1}function Gp(e){return/^\d{1,3}\.?\d*$/.test(e.trim())?Math.max(0,Math.min(parseInt(e),360)):!1}function Wp(e){return/^\d{1,3}\.?\d*$/.test(e.trim())?Math.max(0,Math.min(parseInt(e),100)):!1}function Xp(e){const t=e.trim();return/^#[0-9a-fA-F]+$/.test(t)?[4,5,7,9].includes(t.length):!1}function Yp(e){return/^\d{1,3}\.?\d*%$/.test(e.trim())?Math.max(0,Math.min(parseInt(e)/100,100)):!1}const Kp={paddingSmall:"0 4px"},kc=Re({name:"ColorInputUnit",props:{label:{type:String,required:!0},value:{type:[Number,String],default:null},showAlpha:Boolean,onUpdateValue:{type:Function,required:!0}},setup(e){const t=te(""),{themeRef:n}=Rt(Cl,null);go(()=>{t.value=i()});function i(){const{value:u}=e;if(u===null)return"";const{label:h}=e;return h==="HEX"?u:h==="A"?`${Math.floor(u*100)}%`:String(Math.floor(u))}function c(u){t.value=u}function l(u){let h,f;switch(e.label){case"HEX":f=Xp(u),f&&e.onUpdateValue(u),t.value=i();break;case"H":h=Gp(u),h===!1?t.value=i():e.onUpdateValue(h);break;case"S":case"L":case"V":h=Wp(u),h===!1?t.value=i():e.onUpdateValue(h);break;case"A":h=Yp(u),h===!1?t.value=i():e.onUpdateValue(h);break;case"R":case"G":case"B":h=jp(u),h===!1?t.value=i():e.onUpdateValue(h);break}}return{mergedTheme:n,inputValue:t,handleInputChange:l,handleInputUpdateValue:c}},render(){const{mergedTheme:e}=this;return D(kn,{size:"small",placeholder:this.label,theme:e.peers.Input,themeOverrides:e.peerOverrides.Input,builtinThemeOverrides:Kp,value:this.inputValue,onUpdateValue:this.handleInputUpdateValue,onChange:this.handleInputChange,style:this.label==="A"?"flex-grow: 1.25;":""})}}),Zp=Re({name:"ColorInput",props:{clsPrefix:{type:String,required:!0},mode:{type:String,required:!0},modes:{type:Array,required:!0},showAlpha:{type:Boolean,required:!0},value:{type:String,default:null},valueArr:{type:Array,default:null},onUpdateValue:{type:Function,required:!0},onUpdateMode:{type:Function,required:!0}},setup(e){return{handleUnitUpdateValue(t,n){const{showAlpha:i}=e;if(e.mode==="hex"){e.onUpdateValue((i?Tn:No)(n));return}let c;switch(e.valueArr===null?c=[0,0,0,0]:c=Array.from(e.valueArr),e.mode){case"hsv":c[t]=n,e.onUpdateValue((i?Hn:Js)(c));break;case"rgb":c[t]=n,e.onUpdateValue((i?nn:Zs)(c));break;case"hsl":c[t]=n,e.onUpdateValue((i?_n:Ks)(c));break}}}},render(){const{clsPrefix:e,modes:t}=this;return D("div",{class:`${e}-color-picker-input`},D("div",{class:`${e}-color-picker-input__mode`,onClick:this.onUpdateMode,style:{cursor:t.length===1?"":"pointer"}},this.mode.toUpperCase()+(this.showAlpha?"A":"")),D(al,null,{default:()=>{const{mode:n,valueArr:i,showAlpha:c}=this;if(n==="hex"){let l=null;try{l=i===null?null:(c?Tn:No)(i)}catch{}return D(kc,{label:"HEX",showAlpha:c,value:l,onUpdateValue:u=>{this.handleUnitUpdateValue(0,u)}})}return(n+(c?"a":"")).split("").map((l,u)=>D(kc,{label:l.toUpperCase(),value:i===null?null:i[u],onUpdateValue:h=>{this.handleUnitUpdateValue(u,h)}}))}}))}}),Jp=Re({name:"ColorPickerTrigger",props:{clsPrefix:{type:String,required:!0},value:{type:String,default:null},hsla:{type:Array,default:null},disabled:Boolean,onClick:Function},setup(e){const{colorPickerSlots:t,renderLabelRef:n}=Rt(Cl,null);return()=>{const{hsla:i,value:c,clsPrefix:l,onClick:u,disabled:h}=e,f=t.label||n.value;return D("div",{class:[`${l}-color-picker-trigger`,h&&`${l}-color-picker-trigger--disabled`],onClick:h?void 0:u},D("div",{class:`${l}-color-picker-trigger__fill`},D("div",{class:`${l}-color-picker-checkboard`}),D("div",{style:{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:i?_n(i):""}}),c&&i?D("div",{class:`${l}-color-picker-trigger__value`,style:{color:i[2]>50||i[3]<.5?"black":"white"}},f?f(c):c):null))}}});function Qp(e,t){if(t==="hsv"){const[n,i,c,l]=Vn(e);return nn([...xn(n,i,c),l])}return e}function em(e){const t=document.createElement("canvas").getContext("2d");return t?(t.fillStyle=e,t.fillStyle):"#000000"}const tm=Re({name:"ColorPickerSwatches",props:{clsPrefix:{type:String,required:!0},mode:{type:String,required:!0},swatches:{type:Array,required:!0},onUpdateColor:{type:Function,required:!0}},setup(e){const t=de(()=>e.swatches.map(l=>{const u=Wo(l);return{value:l,mode:u,legalValue:Qp(l,u)}}));function n(l){const{mode:u}=e;let{value:h,mode:f}=l;return f||(f="hex",/^[a-zA-Z]+$/.test(h)?h=em(h):(hi("color-picker",`color ${h} in swatches is invalid.`),h="#000000")),f===u?h:ud(h,u,f)}function i(l){e.onUpdateColor(n(l))}function c(l,u){l.key==="Enter"&&i(u)}return{parsedSwatchesRef:t,handleSwatchSelect:i,handleSwatchKeyDown:c}},render(){const{clsPrefix:e}=this;return D("div",{class:`${e}-color-picker-swatches`},this.parsedSwatchesRef.map(t=>D("div",{class:`${e}-color-picker-swatch`,tabindex:0,onClick:()=>{this.handleSwatchSelect(t)},onKeydown:n=>{this.handleSwatchKeyDown(n,t)}},D("div",{class:`${e}-color-picker-swatch__fill`,style:{background:t.legalValue}}))))}}),rm=Re({name:"ColorPreview",props:{clsPrefix:{type:String,required:!0},mode:{type:String,required:!0},color:{type:String,default:null,validator:e=>{const t=Wo(e);return!!(!e||t&&t!=="hsv")}},onUpdateColor:{type:Function,required:!0}},setup(e){function t(n){var i;const c=n.target.value;(i=e.onUpdateColor)===null||i===void 0||i.call(e,ud(c.toUpperCase(),e.mode,"hex")),n.stopPropagation()}return{handleChange:t}},render(){const{clsPrefix:e}=this;return D("div",{class:`${e}-color-picker-preview__preview`},D("span",{class:`${e}-color-picker-preview__fill`,style:{background:this.color||"#000000"}}),D("input",{class:`${e}-color-picker-preview__input`,type:"color",value:this.color,onChange:this.handleChange}))}}),nm=he([O("color-picker",` - display: inline-block; - box-sizing: border-box; - height: var(--n-height); - font-size: var(--n-font-size); - width: 100%; - position: relative; - `),O("color-picker-panel",` - margin: 4px 0; - width: 240px; - font-size: var(--n-panel-font-size); - color: var(--n-text-color); - background-color: var(--n-color); - transition: - box-shadow .3s var(--n-bezier), - color .3s var(--n-bezier), - background-color .3s var(--n-bezier); - border-radius: var(--n-border-radius); - box-shadow: var(--n-box-shadow); - `,[bl(),O("input",` - text-align: center; - `)]),O("color-picker-checkboard",` - background: white; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `,[he("&::after",` - background-image: linear-gradient(45deg, #DDD 25%, #0000 25%), linear-gradient(-45deg, #DDD 25%, #0000 25%), linear-gradient(45deg, #0000 75%, #DDD 75%), linear-gradient(-45deg, #0000 75%, #DDD 75%); - background-size: 12px 12px; - background-position: 0 0, 0 6px, 6px -6px, -6px 0px; - background-repeat: repeat; - content: ""; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `)]),O("color-picker-slider",` - margin-bottom: 8px; - position: relative; - box-sizing: border-box; - `,[we("image",` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `),he("&::after",` - content: ""; - position: absolute; - border-radius: inherit; - left: 0; - right: 0; - top: 0; - bottom: 0; - box-shadow: inset 0 0 2px 0 rgba(0, 0, 0, .24); - pointer-events: none; - `)]),O("color-picker-handle",` - z-index: 1; - box-shadow: 0 0 2px 0 rgba(0, 0, 0, .45); - position: absolute; - background-color: white; - overflow: hidden; - `,[we("fill",` - box-sizing: border-box; - border: 2px solid white; - `)]),O("color-picker-pallete",` - height: 180px; - position: relative; - margin-bottom: 8px; - cursor: crosshair; - `,[we("layer",` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `,[le("shadowed",` - box-shadow: inset 0 0 2px 0 rgba(0, 0, 0, .24); - `)])]),O("color-picker-preview",` - display: flex; - `,[we("sliders",` - flex: 1 0 auto; - `),we("preview",` - position: relative; - height: 30px; - width: 30px; - margin: 0 0 8px 6px; - border-radius: 50%; - box-shadow: rgba(0, 0, 0, .15) 0px 0px 0px 1px inset; - overflow: hidden; - `),we("fill",` - display: block; - width: 30px; - height: 30px; - `),we("input",` - position: absolute; - top: 0; - left: 0; - width: 30px; - height: 30px; - opacity: 0; - z-index: 1; - `)]),O("color-picker-input",` - display: flex; - align-items: center; - `,[O("input",` - flex-grow: 1; - flex-basis: 0; - `),we("mode",` - width: 72px; - text-align: center; - `)]),O("color-picker-control",` - padding: 12px; - `),O("color-picker-action",` - display: flex; - margin-top: -4px; - border-top: 1px solid var(--n-divider-color); - padding: 8px 12px; - justify-content: flex-end; - `,[O("button","margin-left: 8px;")]),O("color-picker-trigger",` - border: var(--n-border); - height: 100%; - box-sizing: border-box; - border-radius: var(--n-border-radius); - transition: border-color .3s var(--n-bezier); - cursor: pointer; - `,[we("value",` - white-space: nowrap; - position: relative; - `),we("fill",` - border-radius: var(--n-border-radius); - position: absolute; - display: flex; - align-items: center; - justify-content: center; - left: 4px; - right: 4px; - top: 4px; - bottom: 4px; - `),le("disabled","cursor: not-allowed"),O("color-picker-checkboard",` - border-radius: var(--n-border-radius); - `,[he("&::after",` - --n-block-size: calc((var(--n-height) - 8px) / 3); - background-size: calc(var(--n-block-size) * 2) calc(var(--n-block-size) * 2); - background-position: 0 0, 0 var(--n-block-size), var(--n-block-size) calc(-1 * var(--n-block-size)), calc(-1 * var(--n-block-size)) 0px; - `)])]),O("color-picker-swatches",` - display: grid; - grid-gap: 8px; - flex-wrap: wrap; - position: relative; - grid-template-columns: repeat(auto-fill, 18px); - margin-top: 10px; - `,[O("color-picker-swatch",` - width: 18px; - height: 18px; - background-image: linear-gradient(45deg, #DDD 25%, #0000 25%), linear-gradient(-45deg, #DDD 25%, #0000 25%), linear-gradient(45deg, #0000 75%, #DDD 75%), linear-gradient(-45deg, #0000 75%, #DDD 75%); - background-size: 8px 8px; - background-position: 0px 0, 0px 4px, 4px -4px, -4px 0px; - background-repeat: repeat; - `,[we("fill",` - position: relative; - width: 100%; - height: 100%; - border-radius: 3px; - box-shadow: rgba(0, 0, 0, .15) 0px 0px 0px 1px inset; - cursor: pointer; - `),he("&:focus",` - outline: none; - `,[we("fill",[he("&::after",` - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: inherit; - filter: blur(2px); - content: ""; - `)])])])])]),om=Object.assign(Object.assign({},dt.props),{value:String,show:{type:Boolean,default:void 0},defaultShow:Boolean,defaultValue:String,modes:{type:Array,default:()=>["rgb","hex","hsl"]},placement:{type:String,default:"bottom-start"},to:tl.propTo,showAlpha:{type:Boolean,default:!0},showPreview:Boolean,swatches:Array,disabled:{type:Boolean,default:void 0},actions:{type:Array,default:null},internalActions:Array,size:String,renderLabel:Function,onComplete:Function,onConfirm:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array]}),rn=Re({name:"ColorPicker",props:om,setup(e,{slots:t}){const n=te(null);let i=null;const c=Jo(e),{mergedSizeRef:l,mergedDisabledRef:u}=c,{localeRef:h}=Yf("global"),{mergedClsPrefixRef:f,namespaceRef:b,inlineThemeDisabled:y}=Ut(e),k=dt("ColorPicker","-color-picker",nm,Z1,e,f);xr(Cl,{themeRef:k,renderLabelRef:Ue(e,"renderLabel"),colorPickerSlots:t});const C=te(e.defaultShow),S=Vr(Ue(e,"show"),C);function L(Y){const{onUpdateShow:ye,"onUpdate:show":je}=e;ye&&Je(ye,Y),je&&Je(je,Y),C.value=Y}const{defaultValue:P}=e,$=te(P===void 0?Ip(e.modes,e.showAlpha):P),E=Vr(Ue(e,"value"),$),B=te([E.value]),M=te(0),U=de(()=>Wo(E.value)),{modes:q}=e,R=te(Wo(E.value)||q[0]||"rgb");function j(){const{modes:Y}=e,{value:ye}=R,je=Y.findIndex(Ke=>Ke===ye);~je?R.value=Y[(je+1)%Y.length]:R.value="rgb"}let ie,X,oe,Z,ee,ne,V,ae;const me=de(()=>{const{value:Y}=E;if(!Y)return null;switch(U.value){case"hsv":return Vn(Y);case"hsl":return[ie,X,oe,ae]=ho(Y),[...sd(ie,X,oe),ae];case"rgb":case"hex":return[ee,ne,V,ae]=tn(Y),[...rl(ee,ne,V),ae]}}),Ce=de(()=>{const{value:Y}=E;if(!Y)return null;switch(U.value){case"rgb":case"hex":return tn(Y);case"hsv":return[ie,X,Z,ae]=Vn(Y),[...xn(ie,X,Z),ae];case"hsl":return[ie,X,oe,ae]=ho(Y),[...ol(ie,X,oe),ae]}}),Le=de(()=>{const{value:Y}=E;if(!Y)return null;switch(U.value){case"hsl":return ho(Y);case"hsv":return[ie,X,Z,ae]=Vn(Y),[...Wa(ie,X,Z),ae];case"rgb":case"hex":return[ee,ne,V,ae]=tn(Y),[...nl(ee,ne,V),ae]}}),ht=de(()=>{switch(R.value){case"rgb":case"hex":return Ce.value;case"hsv":return me.value;case"hsl":return Le.value}}),gt=te(0),De=te(1),ve=te([0,0]);function Ee(Y,ye){const{value:je}=me,Ke=gt.value,lt=je?je[3]:1;ve.value=[Y,ye];const{showAlpha:rt}=e;switch(R.value){case"hsv":Be((rt?Hn:Js)([Ke,Y,ye,lt]),"cursor");break;case"hsl":Be((rt?_n:Ks)([...Wa(Ke,Y,ye),lt]),"cursor");break;case"rgb":Be((rt?nn:Zs)([...xn(Ke,Y,ye),lt]),"cursor");break;case"hex":Be((rt?Tn:No)([...xn(Ke,Y,ye),lt]),"cursor");break}}function Se(Y){gt.value=Y;const{value:ye}=me;if(!ye)return;const[,je,Ke,lt]=ye,{showAlpha:rt}=e;switch(R.value){case"hsv":Be((rt?Hn:Js)([Y,je,Ke,lt]),"cursor");break;case"rgb":Be((rt?nn:Zs)([...xn(Y,je,Ke),lt]),"cursor");break;case"hex":Be((rt?Tn:No)([...xn(Y,je,Ke),lt]),"cursor");break;case"hsl":Be((rt?_n:Ks)([...Wa(Y,je,Ke),lt]),"cursor");break}}function Ze(Y){switch(R.value){case"hsv":[ie,X,Z]=me.value,Be(Hn([ie,X,Z,Y]),"cursor");break;case"rgb":[ee,ne,V]=Ce.value,Be(nn([ee,ne,V,Y]),"cursor");break;case"hex":[ee,ne,V]=Ce.value,Be(Tn([ee,ne,V,Y]),"cursor");break;case"hsl":[ie,X,oe]=Le.value,Be(_n([ie,X,oe,Y]),"cursor");break}De.value=Y}function Be(Y,ye){ye==="cursor"?i=Y:i=null;const{nTriggerFormChange:je,nTriggerFormInput:Ke}=c,{onUpdateValue:lt,"onUpdate:value":rt}=e;lt&&Je(lt,Y),rt&&Je(rt,Y),je(),Ke(),$.value=Y}function Ye(Y){Be(Y,"input"),An(wt)}function wt(Y=!0){const{value:ye}=E;if(ye){const{nTriggerFormChange:je,nTriggerFormInput:Ke}=c,{onComplete:lt}=e;lt&<(ye);const{value:rt}=B,{value:Pt}=M;Y&&(rt.splice(Pt+1,rt.length,ye),M.value=Pt+1),je(),Ke()}}function Rr(){const{value:Y}=M;Y-1<0||(Be(B.value[Y-1],"input"),wt(!1),M.value=Y-1)}function hr(){const{value:Y}=M;Y<0||Y+1>=B.value.length||(Be(B.value[Y+1],"input"),wt(!1),M.value=Y+1)}function Mr(){Be(null,"input"),L(!1)}function Xr(){const{value:Y}=E,{onConfirm:ye}=e;ye&&ye(Y),L(!1)}const ln=de(()=>M.value>=1),cn=de(()=>{const{value:Y}=B;return Y.length>1&&M.value{Y||(B.value=[E.value],M.value=0)}),go(()=>{if(!(i&&i===E.value)){const{value:Y}=me;Y&&(gt.value=Y[0],De.value=Y[3],ve.value=[Y[1],Y[2]])}i=null});const Xt=de(()=>{const{value:Y}=l,{common:{cubicBezierEaseInOut:ye},self:{textColor:je,color:Ke,panelFontSize:lt,boxShadow:rt,border:Pt,borderRadius:Nt,dividerColor:Sr,[ut("height",Y)]:Yn,[ut("fontSize",Y)]:Kn}}=k.value;return{"--n-bezier":ye,"--n-text-color":je,"--n-color":Ke,"--n-panel-font-size":lt,"--n-font-size":Kn,"--n-box-shadow":rt,"--n-border":Pt,"--n-border-radius":Nt,"--n-height":Yn,"--n-divider-color":Sr}}),ue=y?kr("color-picker",de(()=>l.value[0]),Xt,e):void 0;function Te(){var Y;const{value:ye}=Ce,{value:je}=gt,{internalActions:Ke,modes:lt,actions:rt}=e,{value:Pt}=k,{value:Nt}=f;return D("div",{class:[`${Nt}-color-picker-panel`,ue==null?void 0:ue.themeClass.value],onDragstart:Sr=>{Sr.preventDefault()},style:y?void 0:Xt.value},D("div",{class:`${Nt}-color-picker-control`},D(Vp,{clsPrefix:Nt,rgba:ye,displayedHue:je,displayedSv:ve.value,onUpdateSV:Ee,onComplete:wt}),D("div",{class:`${Nt}-color-picker-preview`},D("div",{class:`${Nt}-color-picker-preview__sliders`},D(Op,{clsPrefix:Nt,hue:je,onUpdateHue:Se,onComplete:wt}),e.showAlpha?D(Hp,{clsPrefix:Nt,rgba:ye,alpha:De.value,onUpdateAlpha:Ze,onComplete:wt}):null),e.showPreview?D(rm,{clsPrefix:Nt,mode:R.value,color:Ce.value&&No(Ce.value),onUpdateColor:Sr=>{Be(Sr,"input")}}):null),D(Zp,{clsPrefix:Nt,showAlpha:e.showAlpha,mode:R.value,modes:lt,onUpdateMode:j,value:E.value,valueArr:ht.value,onUpdateValue:Ye}),((Y=e.swatches)===null||Y===void 0?void 0:Y.length)&&D(tm,{clsPrefix:Nt,mode:R.value,swatches:e.swatches,onUpdateColor:Sr=>{Be(Sr,"input")}})),rt!=null&&rt.length?D("div",{class:`${Nt}-color-picker-action`},rt.includes("confirm")&&D(Dt,{size:"small",onClick:Xr,theme:Pt.peers.Button,themeOverrides:Pt.peerOverrides.Button},{default:()=>h.value.confirm}),rt.includes("clear")&&D(Dt,{size:"small",onClick:Mr,disabled:!E.value,theme:Pt.peers.Button,themeOverrides:Pt.peerOverrides.Button},{default:()=>h.value.clear})):null,t.action?D("div",{class:`${Nt}-color-picker-action`},{default:t.action}):Ke?D("div",{class:`${Nt}-color-picker-action`},Ke.includes("undo")&&D(Dt,{size:"small",onClick:Rr,disabled:!ln.value,theme:Pt.peers.Button,themeOverrides:Pt.peerOverrides.Button},{default:()=>h.value.undo}),Ke.includes("redo")&&D(Dt,{size:"small",onClick:hr,disabled:!cn.value,theme:Pt.peers.Button,themeOverrides:Pt.peerOverrides.Button},{default:()=>h.value.redo})):null)}return{mergedClsPrefix:f,namespace:b,selfRef:n,hsla:Le,rgba:Ce,mergedShow:S,mergedDisabled:u,isMounted:Pu(),adjustedTo:tl(e),mergedValue:E,handleTriggerClick(){L(!0)},handleClickOutside(Y){var ye;!((ye=n.value)===null||ye===void 0)&&ye.contains(Y1(Y))||L(!1)},renderPanel:Te,cssVars:y?void 0:Xt,themeClass:ue==null?void 0:ue.themeClass,onRender:ue==null?void 0:ue.onRender}},render(){const{$slots:e,mergedClsPrefix:t,onRender:n}=this;return n==null||n(),D("div",{class:[this.themeClass,`${t}-color-picker`],ref:"selfRef",style:this.cssVars},D(rd,null,{default:()=>[D(nd,null,{default:()=>D(Jp,{clsPrefix:t,value:this.mergedValue,hsla:this.hsla,disabled:this.mergedDisabled,onClick:this.handleTriggerClick},{label:e.label})}),D(od,{placement:this.placement,show:this.mergedShow,containerClass:this.namespace,teleportDisabled:this.adjustedTo===tl.tdkey,to:this.adjustedTo},{default:()=>D(yl,{name:"fade-in-scale-up-transition",appear:this.isMounted},{default:()=>this.mergedShow?fi(this.renderPanel(),[[K1,this.handleClickOutside,void 0,{capture:!0}]]):null})})]}))}}),am=D("svg",{viewBox:"0 0 64 64",class:"check-icon"},D("path",{d:"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51 c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92 C54.13,15.78,51.93,15.55,50.42,16.76z"})),im=D("svg",{viewBox:"0 0 100 100",class:"line-icon"},D("path",{d:"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z"})),dd=zr("n-checkbox-group"),sm={min:Number,max:Number,size:String,value:Array,defaultValue:{type:Array,default:null},disabled:{type:Boolean,default:void 0},"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onChange:[Function,Array]},WQ=Re({name:"CheckboxGroup",props:sm,setup(e){const{mergedClsPrefixRef:t}=Ut(e),n=Jo(e),{mergedSizeRef:i,mergedDisabledRef:c}=n,l=te(e.defaultValue),u=de(()=>e.value),h=Vr(u,l),f=de(()=>{var k;return((k=h.value)===null||k===void 0?void 0:k.length)||0}),b=de(()=>Array.isArray(h.value)?new Set(h.value):new Set);function y(k,C){const{nTriggerFormInput:S,nTriggerFormChange:L}=n,{onChange:P,"onUpdate:value":$,onUpdateValue:E}=e;if(Array.isArray(h.value)){const B=Array.from(h.value),M=B.findIndex(U=>U===C);k?~M||(B.push(C),E&&Je(E,B,{actionType:"check",value:C}),$&&Je($,B,{actionType:"check",value:C}),S(),L(),l.value=B,P&&Je(P,B)):~M&&(B.splice(M,1),E&&Je(E,B,{actionType:"uncheck",value:C}),$&&Je($,B,{actionType:"uncheck",value:C}),P&&Je(P,B),l.value=B,S(),L())}else k?(E&&Je(E,[C],{actionType:"check",value:C}),$&&Je($,[C],{actionType:"check",value:C}),P&&Je(P,[C]),l.value=[C],S(),L()):(E&&Je(E,[],{actionType:"uncheck",value:C}),$&&Je($,[],{actionType:"uncheck",value:C}),P&&Je(P,[]),l.value=[],S(),L())}return xr(dd,{checkedCountRef:f,maxRef:Ue(e,"max"),minRef:Ue(e,"min"),valueSetRef:b,disabledRef:c,mergedSizeRef:i,toggleCheckbox:y}),{mergedClsPrefix:t}},render(){return D("div",{class:`${this.mergedClsPrefix}-checkbox-group`,role:"group"},this.$slots)}}),lm=he([O("checkbox",` - font-size: var(--n-font-size); - outline: none; - cursor: pointer; - display: inline-flex; - flex-wrap: nowrap; - align-items: flex-start; - word-break: break-word; - line-height: var(--n-size); - --n-merged-color-table: var(--n-color-table); - `,[le("show-label","line-height: var(--n-label-line-height);"),he("&:hover",[O("checkbox-box",[we("border","border: var(--n-border-checked);")])]),he("&:focus:not(:active)",[O("checkbox-box",[we("border",` - border: var(--n-border-focus); - box-shadow: var(--n-box-shadow-focus); - `)])]),le("inside-table",[O("checkbox-box",` - background-color: var(--n-merged-color-table); - `)]),le("checked",[O("checkbox-box",` - background-color: var(--n-color-checked); - `,[O("checkbox-icon",[he(".check-icon",` - opacity: 1; - transform: scale(1); - `)])])]),le("indeterminate",[O("checkbox-box",[O("checkbox-icon",[he(".check-icon",` - opacity: 0; - transform: scale(.5); - `),he(".line-icon",` - opacity: 1; - transform: scale(1); - `)])])]),le("checked, indeterminate",[he("&:focus:not(:active)",[O("checkbox-box",[we("border",` - border: var(--n-border-checked); - box-shadow: var(--n-box-shadow-focus); - `)])]),O("checkbox-box",` - background-color: var(--n-color-checked); - border-left: 0; - border-top: 0; - `,[we("border",{border:"var(--n-border-checked)"})])]),le("disabled",{cursor:"not-allowed"},[le("checked",[O("checkbox-box",` - background-color: var(--n-color-disabled-checked); - `,[we("border",{border:"var(--n-border-disabled-checked)"}),O("checkbox-icon",[he(".check-icon, .line-icon",{fill:"var(--n-check-mark-color-disabled-checked)"})])])]),O("checkbox-box",` - background-color: var(--n-color-disabled); - `,[we("border",` - border: var(--n-border-disabled); - `),O("checkbox-icon",[he(".check-icon, .line-icon",` - fill: var(--n-check-mark-color-disabled); - `)])]),we("label",` - color: var(--n-text-color-disabled); - `)]),O("checkbox-box-wrapper",` - position: relative; - width: var(--n-size); - flex-shrink: 0; - flex-grow: 0; - user-select: none; - -webkit-user-select: none; - `),O("checkbox-box",` - position: absolute; - left: 0; - top: 50%; - transform: translateY(-50%); - height: var(--n-size); - width: var(--n-size); - display: inline-block; - box-sizing: border-box; - border-radius: var(--n-border-radius); - background-color: var(--n-color); - transition: background-color 0.3s var(--n-bezier); - `,[we("border",` - transition: - border-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); - border-radius: inherit; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - border: var(--n-border); - `),O("checkbox-icon",` - display: flex; - align-items: center; - justify-content: center; - position: absolute; - left: 1px; - right: 1px; - top: 1px; - bottom: 1px; - `,[he(".check-icon, .line-icon",` - width: 100%; - fill: var(--n-check-mark-color); - opacity: 0; - transform: scale(0.5); - transform-origin: center; - transition: - fill 0.3s var(--n-bezier), - transform 0.3s var(--n-bezier), - opacity 0.3s var(--n-bezier), - border-color 0.3s var(--n-bezier); - `),Nu({left:"1px",top:"1px"})])]),we("label",` - color: var(--n-text-color); - transition: color .3s var(--n-bezier); - user-select: none; - -webkit-user-select: none; - padding: var(--n-label-padding); - font-weight: var(--n-label-font-weight); - `,[he("&:empty",{display:"none"})])]),Bu(O("checkbox",` - --n-merged-color-table: var(--n-color-table-modal); - `)),Iu(O("checkbox",` - --n-merged-color-table: var(--n-color-table-popover); - `))]),cm=Object.assign(Object.assign({},dt.props),{size:String,checked:{type:[Boolean,String,Number],default:void 0},defaultChecked:{type:[Boolean,String,Number],default:!1},value:[String,Number],disabled:{type:Boolean,default:void 0},indeterminate:Boolean,label:String,focusable:{type:Boolean,default:!0},checkedValue:{type:[Boolean,String,Number],default:!0},uncheckedValue:{type:[Boolean,String,Number],default:!1},"onUpdate:checked":[Function,Array],onUpdateChecked:[Function,Array],privateInsideTable:Boolean,onChange:[Function,Array]}),um=Re({name:"Checkbox",props:cm,setup(e){const t=te(null),{mergedClsPrefixRef:n,inlineThemeDisabled:i,mergedRtlRef:c}=Ut(e),l=Jo(e,{mergedSize(R){const{size:j}=e;if(j!==void 0)return j;if(f){const{value:ie}=f.mergedSizeRef;if(ie!==void 0)return ie}if(R){const{mergedSize:ie}=R;if(ie!==void 0)return ie.value}return"medium"},mergedDisabled(R){const{disabled:j}=e;if(j!==void 0)return j;if(f){if(f.disabledRef.value)return!0;const{maxRef:{value:ie},checkedCountRef:X}=f;if(ie!==void 0&&X.value>=ie&&!C.value)return!0;const{minRef:{value:oe}}=f;if(oe!==void 0&&X.value<=oe&&C.value)return!0}return R?R.disabled.value:!1}}),{mergedDisabledRef:u,mergedSizeRef:h}=l,f=Rt(dd,null),b=te(e.defaultChecked),y=Ue(e,"checked"),k=Vr(y,b),C=Dn(()=>{if(f){const R=f.valueSetRef.value;return R&&e.value!==void 0?R.has(e.value):!1}else return k.value===e.checkedValue}),S=dt("Checkbox","-checkbox",lm,J1,e,n);function L(R){if(f&&e.value!==void 0)f.toggleCheckbox(!C.value,e.value);else{const{onChange:j,"onUpdate:checked":ie,onUpdateChecked:X}=e,{nTriggerFormInput:oe,nTriggerFormChange:Z}=l,ee=C.value?e.uncheckedValue:e.checkedValue;ie&&Je(ie,ee,R),X&&Je(X,ee,R),j&&Je(j,ee,R),oe(),Z(),b.value=ee}}function P(R){u.value||L(R)}function $(R){if(!u.value)switch(R.key){case" ":case"Enter":L(R)}}function E(R){switch(R.key){case" ":R.preventDefault()}}const B={focus:()=>{var R;(R=t.value)===null||R===void 0||R.focus()},blur:()=>{var R;(R=t.value)===null||R===void 0||R.blur()}},M=xl("Checkbox",c,n),U=de(()=>{const{value:R}=h,{common:{cubicBezierEaseInOut:j},self:{borderRadius:ie,color:X,colorChecked:oe,colorDisabled:Z,colorTableHeader:ee,colorTableHeaderModal:ne,colorTableHeaderPopover:V,checkMarkColor:ae,checkMarkColorDisabled:me,border:Ce,borderFocus:Le,borderDisabled:ht,borderChecked:gt,boxShadowFocus:De,textColor:ve,textColorDisabled:Ee,checkMarkColorDisabledChecked:Se,colorDisabledChecked:Ze,borderDisabledChecked:Be,labelPadding:Ye,labelLineHeight:wt,labelFontWeight:Rr,[ut("fontSize",R)]:hr,[ut("size",R)]:Mr}}=S.value;return{"--n-label-line-height":wt,"--n-label-font-weight":Rr,"--n-size":Mr,"--n-bezier":j,"--n-border-radius":ie,"--n-border":Ce,"--n-border-checked":gt,"--n-border-focus":Le,"--n-border-disabled":ht,"--n-border-disabled-checked":Be,"--n-box-shadow-focus":De,"--n-color":X,"--n-color-checked":oe,"--n-color-table":ee,"--n-color-table-modal":ne,"--n-color-table-popover":V,"--n-color-disabled":Z,"--n-color-disabled-checked":Ze,"--n-text-color":ve,"--n-text-color-disabled":Ee,"--n-check-mark-color":ae,"--n-check-mark-color-disabled":me,"--n-check-mark-color-disabled-checked":Se,"--n-font-size":hr,"--n-label-padding":Ye}}),q=i?kr("checkbox",de(()=>h.value[0]),U,e):void 0;return Object.assign(l,B,{rtlEnabled:M,selfRef:t,mergedClsPrefix:n,mergedDisabled:u,renderedChecked:C,mergedTheme:S,labelId:Qs(),handleClick:P,handleKeyUp:$,handleKeyDown:E,cssVars:i?void 0:U,themeClass:q==null?void 0:q.themeClass,onRender:q==null?void 0:q.onRender})},render(){var e;const{$slots:t,renderedChecked:n,mergedDisabled:i,indeterminate:c,privateInsideTable:l,cssVars:u,labelId:h,label:f,mergedClsPrefix:b,focusable:y,handleKeyUp:k,handleKeyDown:C,handleClick:S}=this;(e=this.onRender)===null||e===void 0||e.call(this);const L=Vo(t.default,P=>f||P?D("span",{class:`${b}-checkbox__label`,id:h},f||P):null);return D("div",{ref:"selfRef",class:[`${b}-checkbox`,this.themeClass,this.rtlEnabled&&`${b}-checkbox--rtl`,n&&`${b}-checkbox--checked`,i&&`${b}-checkbox--disabled`,c&&`${b}-checkbox--indeterminate`,l&&`${b}-checkbox--inside-table`,L&&`${b}-checkbox--show-label`],tabindex:i||!y?void 0:0,role:"checkbox","aria-checked":c?"mixed":n,"aria-labelledby":h,style:u,onKeyup:k,onKeydown:C,onClick:S,onMousedown:()=>{Dr("selectstart",window,P=>{P.preventDefault()},{once:!0})}},D("div",{class:`${b}-checkbox-box-wrapper`}," ",D("div",{class:`${b}-checkbox-box`},D(qu,null,{default:()=>this.indeterminate?D("div",{key:"indeterminate",class:`${b}-checkbox-icon`},im):D("div",{key:"check",class:`${b}-checkbox-icon`},am)}),D("div",{class:`${b}-checkbox-box__border`}))),L)}}),dm={name:String,value:{type:[String,Number,Boolean],default:"on"},checked:{type:Boolean,default:void 0},defaultChecked:Boolean,disabled:{type:Boolean,default:void 0},label:String,size:String,onUpdateChecked:[Function,Array],"onUpdate:checked":[Function,Array],checkedValue:{type:Boolean,default:void 0}},hm=zr("n-radio-group");function fm(e){const t=Jo(e,{mergedSize(B){const{size:M}=e;if(M!==void 0)return M;if(u){const{mergedSizeRef:{value:U}}=u;if(U!==void 0)return U}return B?B.mergedSize.value:"medium"},mergedDisabled(B){return!!(e.disabled||u!=null&&u.disabledRef.value||B!=null&&B.disabled.value)}}),{mergedSizeRef:n,mergedDisabledRef:i}=t,c=te(null),l=te(null),u=Rt(hm,null),h=te(e.defaultChecked),f=Ue(e,"checked"),b=Vr(f,h),y=Dn(()=>u?u.valueRef.value===e.value:b.value),k=Dn(()=>{const{name:B}=e;if(B!==void 0)return B;if(u)return u.nameRef.value}),C=te(!1);function S(){if(u){const{doUpdateValue:B}=u,{value:M}=e;Je(B,M)}else{const{onUpdateChecked:B,"onUpdate:checked":M}=e,{nTriggerFormInput:U,nTriggerFormChange:q}=t;B&&Je(B,!0),M&&Je(M,!0),U(),q(),h.value=!0}}function L(){i.value||y.value||S()}function P(){L()}function $(){C.value=!1}function E(){C.value=!0}return{mergedClsPrefix:u?u.mergedClsPrefixRef:Ut(e).mergedClsPrefixRef,inputRef:c,labelRef:l,mergedName:k,mergedDisabled:i,uncontrolledChecked:h,renderSafeChecked:y,focus:C,mergedSize:n,handleRadioInputChange:P,handleRadioInputBlur:$,handleRadioInputFocus:E}}const pm=O("radio",` - line-height: var(--n-label-line-height); - outline: none; - position: relative; - user-select: none; - -webkit-user-select: none; - display: inline-flex; - align-items: flex-start; - flex-wrap: nowrap; - font-size: var(--n-font-size); - word-break: break-word; -`,[le("checked",[we("dot",` - background-color: var(--n-color-active); - `)]),we("dot-wrapper",` - position: relative; - flex-shrink: 0; - flex-grow: 0; - width: var(--n-radio-size); - `),O("radio-input",` - position: absolute; - border: 0; - border-radius: inherit; - left: 0; - right: 0; - top: 0; - bottom: 0; - opacity: 0; - z-index: 1; - cursor: pointer; - `),we("dot",` - position: absolute; - top: 50%; - left: 0; - transform: translateY(-50%); - height: var(--n-radio-size); - width: var(--n-radio-size); - background: var(--n-color); - box-shadow: var(--n-box-shadow); - border-radius: 50%; - transition: - background-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); - `,[he("&::before",` - content: ""; - opacity: 0; - position: absolute; - left: 4px; - top: 4px; - height: calc(100% - 8px); - width: calc(100% - 8px); - border-radius: 50%; - transform: scale(.8); - background: var(--n-dot-color-active); - transition: - opacity .3s var(--n-bezier), - background-color .3s var(--n-bezier), - transform .3s var(--n-bezier); - `),le("checked",{boxShadow:"var(--n-box-shadow-active)"},[he("&::before",` - opacity: 1; - transform: scale(1); - `)])]),we("label",` - color: var(--n-text-color); - padding: var(--n-label-padding); - font-weight: var(--n-label-font-weight); - display: inline-block; - transition: color .3s var(--n-bezier); - `),ei("disabled",` - cursor: pointer; - `,[he("&:hover",[we("dot",{boxShadow:"var(--n-box-shadow-hover)"})]),le("focus",[he("&:not(:active)",[we("dot",{boxShadow:"var(--n-box-shadow-focus)"})])])]),le("disabled",` - cursor: not-allowed; - `,[we("dot",{boxShadow:"var(--n-box-shadow-disabled)",backgroundColor:"var(--n-color-disabled)"},[he("&::before",{backgroundColor:"var(--n-dot-color-disabled)"}),le("checked",` - opacity: 1; - `)]),we("label",{color:"var(--n-text-color-disabled)"}),O("radio-input",` - cursor: not-allowed; - `)])]),mm=Object.assign(Object.assign({},dt.props),dm),xs=Re({name:"Radio",props:mm,setup(e){const t=fm(e),n=dt("Radio","-radio",pm,Q1,e,t.mergedClsPrefix),i=de(()=>{const{mergedSize:{value:b}}=t,{common:{cubicBezierEaseInOut:y},self:{boxShadow:k,boxShadowActive:C,boxShadowDisabled:S,boxShadowFocus:L,boxShadowHover:P,color:$,colorDisabled:E,colorActive:B,textColor:M,textColorDisabled:U,dotColorActive:q,dotColorDisabled:R,labelPadding:j,labelLineHeight:ie,labelFontWeight:X,[ut("fontSize",b)]:oe,[ut("radioSize",b)]:Z}}=n.value;return{"--n-bezier":y,"--n-label-line-height":ie,"--n-label-font-weight":X,"--n-box-shadow":k,"--n-box-shadow-active":C,"--n-box-shadow-disabled":S,"--n-box-shadow-focus":L,"--n-box-shadow-hover":P,"--n-color":$,"--n-color-active":B,"--n-color-disabled":E,"--n-dot-color-active":q,"--n-dot-color-disabled":R,"--n-font-size":oe,"--n-radio-size":Z,"--n-text-color":M,"--n-text-color-disabled":U,"--n-label-padding":j}}),{inlineThemeDisabled:c,mergedClsPrefixRef:l,mergedRtlRef:u}=Ut(e),h=xl("Radio",u,l),f=c?kr("radio",de(()=>t.mergedSize.value[0]),i,e):void 0;return Object.assign(t,{rtlEnabled:h,cssVars:c?void 0:i,themeClass:f==null?void 0:f.themeClass,onRender:f==null?void 0:f.onRender})},render(){const{$slots:e,mergedClsPrefix:t,onRender:n,label:i}=this;return n==null||n(),D("label",{class:[`${t}-radio`,this.themeClass,{[`${t}-radio--rtl`]:this.rtlEnabled,[`${t}-radio--disabled`]:this.mergedDisabled,[`${t}-radio--checked`]:this.renderSafeChecked,[`${t}-radio--focus`]:this.focus}],style:this.cssVars},D("input",{ref:"inputRef",type:"radio",class:`${t}-radio-input`,value:this.value,name:this.mergedName,checked:this.renderSafeChecked,disabled:this.mergedDisabled,onChange:this.handleRadioInputChange,onFocus:this.handleRadioInputFocus,onBlur:this.handleRadioInputBlur}),D("div",{class:`${t}-radio__dot-wrapper`}," ",D("div",{class:[`${t}-radio__dot`,this.renderSafeChecked&&`${t}-radio__dot--checked`]})),Vo(e.default,c=>!c&&!i?null:D("div",{ref:"labelRef",class:`${t}-radio__label`},c||i)))}}),hd=Re({name:"DropdownDivider",props:{clsPrefix:{type:String,required:!0}},render(){return D("div",{class:`${this.clsPrefix}-dropdown-divider`})}}),vm=O("icon",` - height: 1em; - width: 1em; - line-height: 1em; - text-align: center; - display: inline-block; - position: relative; - fill: currentColor; - transform: translateZ(0); -`,[le("color-transition",{transition:"color .3s var(--n-bezier)"}),le("depth",{color:"var(--n-color)"},[he("svg",{opacity:"var(--n-opacity)",transition:"opacity .3s var(--n-bezier)"})]),he("svg",{height:"1em",width:"1em"})]),gm=Object.assign(Object.assign({},dt.props),{depth:[String,Number],size:[Number,String],color:String,component:Object}),bm=Re({_n_icon__:!0,name:"Icon",inheritAttrs:!1,props:gm,setup(e){const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=Ut(e),i=dt("Icon","-icon",vm,ef,e,t),c=de(()=>{const{depth:u}=e,{common:{cubicBezierEaseInOut:h},self:f}=i.value;if(u!==void 0){const{color:b,[`opacity${u}Depth`]:y}=f;return{"--n-bezier":h,"--n-color":b,"--n-opacity":y}}return{"--n-bezier":h,"--n-color":"","--n-opacity":""}}),l=n?kr("icon",de(()=>`${e.depth||"d"}`),c,e):void 0;return{mergedClsPrefix:t,mergedStyle:de(()=>{const{size:u,color:h}=e;return{fontSize:br(u),color:h}}),cssVars:n?void 0:c,themeClass:l==null?void 0:l.themeClass,onRender:l==null?void 0:l.onRender}},render(){var e;const{$parent:t,depth:n,mergedClsPrefix:i,component:c,onRender:l,themeClass:u}=this;return!((e=t==null?void 0:t.$options)===null||e===void 0)&&e._n_icon__&&hi("icon","don't wrap `n-icon` inside `n-icon`"),l==null||l(),D("i",Xn(this.$attrs,{role:"img",class:[`${i}-icon`,u,{[`${i}-icon--depth`]:n,[`${i}-icon--color-transition`]:n!==void 0}],style:[this.cssVars,this.mergedStyle]}),c?D(c):this.$slots)}}),Al=zr("n-dropdown-menu"),vi=zr("n-dropdown"),Sc=zr("n-dropdown-option");function il(e,t){return e.type==="submenu"||e.type===void 0&&e[t]!==void 0}function ym(e){return e.type==="group"}function fd(e){return e.type==="divider"}function xm(e){return e.type==="render"}const pd=Re({name:"DropdownOption",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null},placement:{type:String,default:"right-start"},props:Object,scrollable:Boolean},setup(e){const t=Rt(vi),{hoverKeyRef:n,keyboardKeyRef:i,lastToggledSubmenuKeyRef:c,pendingKeyPathRef:l,activeKeyPathRef:u,animatedRef:h,mergedShowRef:f,renderLabelRef:b,renderIconRef:y,labelFieldRef:k,childrenFieldRef:C,renderOptionRef:S,nodePropsRef:L,menuPropsRef:P}=t,$=Rt(Sc,null),E=Rt(Al),B=Rt(Fu),M=de(()=>e.tmNode.rawNode),U=de(()=>{const{value:Ce}=C;return il(e.tmNode.rawNode,Ce)}),q=de(()=>{const{disabled:Ce}=e.tmNode;return Ce}),R=de(()=>{if(!U.value)return!1;const{key:Ce,disabled:Le}=e.tmNode;if(Le)return!1;const{value:ht}=n,{value:gt}=i,{value:De}=c,{value:ve}=l;return ht!==null?ve.includes(Ce):gt!==null?ve.includes(Ce)&&ve[ve.length-1]!==Ce:De!==null?ve.includes(Ce):!1}),j=de(()=>i.value===null&&!h.value),ie=rp(R,300,j),X=de(()=>!!($!=null&&$.enteringSubmenuRef.value)),oe=te(!1);xr(Sc,{enteringSubmenuRef:oe});function Z(){oe.value=!0}function ee(){oe.value=!1}function ne(){const{parentKey:Ce,tmNode:Le}=e;Le.disabled||f.value&&(c.value=Ce,i.value=null,n.value=Le.key)}function V(){const{tmNode:Ce}=e;Ce.disabled||f.value&&n.value!==Ce.key&&ne()}function ae(Ce){if(e.tmNode.disabled||!f.value)return;const{relatedTarget:Le}=Ce;Le&&!vc({target:Le},"dropdownOption")&&!vc({target:Le},"scrollbarRail")&&(n.value=null)}function me(){const{value:Ce}=U,{tmNode:Le}=e;f.value&&!Ce&&!Le.disabled&&(t.doSelect(Le.key,Le.rawNode),t.doUpdateShow(!1))}return{labelField:k,renderLabel:b,renderIcon:y,siblingHasIcon:E.showIconRef,siblingHasSubmenu:E.hasSubmenuRef,menuProps:P,popoverBody:B,animated:h,mergedShowSubmenu:de(()=>ie.value&&!X.value),rawNode:M,hasSubmenu:U,pending:Dn(()=>{const{value:Ce}=l,{key:Le}=e.tmNode;return Ce.includes(Le)}),childActive:Dn(()=>{const{value:Ce}=u,{key:Le}=e.tmNode,ht=Ce.findIndex(gt=>Le===gt);return ht===-1?!1:ht{const{value:Ce}=u,{key:Le}=e.tmNode,ht=Ce.findIndex(gt=>Le===gt);return ht===-1?!1:ht===Ce.length-1}),mergedDisabled:q,renderOption:S,nodeProps:L,handleClick:me,handleMouseMove:V,handleMouseEnter:ne,handleMouseLeave:ae,handleSubmenuBeforeEnter:Z,handleSubmenuAfterEnter:ee}},render(){var e,t;const{animated:n,rawNode:i,mergedShowSubmenu:c,clsPrefix:l,siblingHasIcon:u,siblingHasSubmenu:h,renderLabel:f,renderIcon:b,renderOption:y,nodeProps:k,props:C,scrollable:S}=this;let L=null;if(c){const B=(e=this.menuProps)===null||e===void 0?void 0:e.call(this,i,i.children);L=D(md,Object.assign({},B,{clsPrefix:l,scrollable:this.scrollable,tmNodes:this.tmNode.children,parentKey:this.tmNode.key}))}const P={class:[`${l}-dropdown-option-body`,this.pending&&`${l}-dropdown-option-body--pending`,this.active&&`${l}-dropdown-option-body--active`,this.childActive&&`${l}-dropdown-option-body--child-active`,this.mergedDisabled&&`${l}-dropdown-option-body--disabled`],onMousemove:this.handleMouseMove,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onClick:this.handleClick},$=k==null?void 0:k(i),E=D("div",Object.assign({class:[`${l}-dropdown-option`,$==null?void 0:$.class],"data-dropdown-option":!0},$),D("div",Xn(P,C),[D("div",{class:[`${l}-dropdown-option-body__prefix`,u&&`${l}-dropdown-option-body__prefix--show-icon`]},[b?b(i):jo(i.icon)]),D("div",{"data-dropdown-option":!0,class:`${l}-dropdown-option-body__label`},f?f(i):jo((t=i[this.labelField])!==null&&t!==void 0?t:i.title)),D("div",{"data-dropdown-option":!0,class:[`${l}-dropdown-option-body__suffix`,h&&`${l}-dropdown-option-body__suffix--has-submenu`]},this.hasSubmenu?D(bm,null,{default:()=>D(cd,null)}):null)]),this.hasSubmenu?D(rd,null,{default:()=>[D(nd,null,{default:()=>D("div",{class:`${l}-dropdown-offset-container`},D(od,{show:this.mergedShowSubmenu,placement:this.placement,to:S&&this.popoverBody||void 0,teleportDisabled:!S},{default:()=>D("div",{class:`${l}-dropdown-menu-wrapper`},n?D(yl,{onBeforeEnter:this.handleSubmenuBeforeEnter,onAfterEnter:this.handleSubmenuAfterEnter,name:"fade-in-scale-up-transition",appear:!0},{default:()=>L}):L)}))})]}):null);return y?y({node:E,option:i}):E}}),wm=Re({name:"DropdownGroupHeader",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){const{showIconRef:e,hasSubmenuRef:t}=Rt(Al),{renderLabelRef:n,labelFieldRef:i,nodePropsRef:c,renderOptionRef:l}=Rt(vi);return{labelField:i,showIcon:e,hasSubmenu:t,renderLabel:n,nodeProps:c,renderOption:l}},render(){var e;const{clsPrefix:t,hasSubmenu:n,showIcon:i,nodeProps:c,renderLabel:l,renderOption:u}=this,{rawNode:h}=this.tmNode,f=D("div",Object.assign({class:`${t}-dropdown-option`},c==null?void 0:c(h)),D("div",{class:`${t}-dropdown-option-body ${t}-dropdown-option-body--group`},D("div",{"data-dropdown-option":!0,class:[`${t}-dropdown-option-body__prefix`,i&&`${t}-dropdown-option-body__prefix--show-icon`]},jo(h.icon)),D("div",{class:`${t}-dropdown-option-body__label`,"data-dropdown-option":!0},l?l(h):jo((e=h.title)!==null&&e!==void 0?e:h[this.labelField])),D("div",{class:[`${t}-dropdown-option-body__suffix`,n&&`${t}-dropdown-option-body__suffix--has-submenu`],"data-dropdown-option":!0})));return u?u({node:f,option:h}):f}}),km=Re({name:"NDropdownGroup",props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null}},render(){const{tmNode:e,parentKey:t,clsPrefix:n}=this,{children:i}=e;return D(cr,null,D(wm,{clsPrefix:n,tmNode:e,key:e.key}),i==null?void 0:i.map(c=>{const{rawNode:l}=c;return l.show===!1?null:fd(l)?D(hd,{clsPrefix:n,key:c.key}):c.isGroup?(hi("dropdown","`group` node is not allowed to be put in `group` node."),null):D(pd,{clsPrefix:n,tmNode:c,parentKey:t,key:c.key})}))}}),Sm=Re({name:"DropdownRenderOption",props:{tmNode:{type:Object,required:!0}},render(){const{rawNode:{render:e,props:t}}=this.tmNode;return D("div",t,[e==null?void 0:e()])}}),md=Re({name:"DropdownMenu",props:{scrollable:Boolean,showArrow:Boolean,arrowStyle:[String,Object],clsPrefix:{type:String,required:!0},tmNodes:{type:Array,default:()=>[]},parentKey:{type:[String,Number],default:null}},setup(e){const{renderIconRef:t,childrenFieldRef:n}=Rt(vi);xr(Al,{showIconRef:de(()=>{const c=t.value;return e.tmNodes.some(l=>{var u;if(l.isGroup)return(u=l.children)===null||u===void 0?void 0:u.some(({rawNode:f})=>c?c(f):f.icon);const{rawNode:h}=l;return c?c(h):h.icon})}),hasSubmenuRef:de(()=>{const{value:c}=n;return e.tmNodes.some(l=>{var u;if(l.isGroup)return(u=l.children)===null||u===void 0?void 0:u.some(({rawNode:f})=>il(f,c));const{rawNode:h}=l;return il(h,c)})})});const i=te(null);return xr(rf,null),xr(nf,null),xr(Fu,i),{bodyRef:i}},render(){const{parentKey:e,clsPrefix:t,scrollable:n}=this,i=this.tmNodes.map(c=>{const{rawNode:l}=c;return l.show===!1?null:xm(l)?D(Sm,{tmNode:c,key:c.key}):fd(l)?D(hd,{clsPrefix:t,key:c.key}):ym(l)?D(km,{clsPrefix:t,tmNode:c,parentKey:e,key:c.key}):D(pd,{clsPrefix:t,tmNode:c,parentKey:e,key:c.key,props:l.props,scrollable:n})});return D("div",{class:[`${t}-dropdown-menu`,n&&`${t}-dropdown-menu--scrollable`],ref:"bodyRef"},n?D(tf,{contentClass:`${t}-dropdown-menu__content`},{default:()=>i}):i,this.showArrow?Kf({clsPrefix:t,arrowStyle:this.arrowStyle,arrowClass:void 0,arrowWrapperClass:void 0,arrowWrapperStyle:void 0}):null)}}),Cm=O("dropdown-menu",` - transform-origin: var(--v-transform-origin); - background-color: var(--n-color); - border-radius: var(--n-border-radius); - box-shadow: var(--n-box-shadow); - position: relative; - transition: - background-color .3s var(--n-bezier), - box-shadow .3s var(--n-bezier); -`,[bl(),O("dropdown-option",` - position: relative; - `,[he("a",` - text-decoration: none; - color: inherit; - outline: none; - `,[he("&::before",` - content: ""; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `)]),O("dropdown-option-body",` - display: flex; - cursor: pointer; - position: relative; - height: var(--n-option-height); - line-height: var(--n-option-height); - font-size: var(--n-font-size); - color: var(--n-option-text-color); - transition: color .3s var(--n-bezier); - `,[he("&::before",` - content: ""; - position: absolute; - top: 0; - bottom: 0; - left: 4px; - right: 4px; - transition: background-color .3s var(--n-bezier); - border-radius: var(--n-border-radius); - `),ei("disabled",[le("pending",` - color: var(--n-option-text-color-hover); - `,[we("prefix, suffix",` - color: var(--n-option-text-color-hover); - `),he("&::before","background-color: var(--n-option-color-hover);")]),le("active",` - color: var(--n-option-text-color-active); - `,[we("prefix, suffix",` - color: var(--n-option-text-color-active); - `),he("&::before","background-color: var(--n-option-color-active);")]),le("child-active",` - color: var(--n-option-text-color-child-active); - `,[we("prefix, suffix",` - color: var(--n-option-text-color-child-active); - `)])]),le("disabled",` - cursor: not-allowed; - opacity: var(--n-option-opacity-disabled); - `),le("group",` - font-size: calc(var(--n-font-size) - 1px); - color: var(--n-group-header-text-color); - `,[we("prefix",` - width: calc(var(--n-option-prefix-width) / 2); - `,[le("show-icon",` - width: calc(var(--n-option-icon-prefix-width) / 2); - `)])]),we("prefix",` - width: var(--n-option-prefix-width); - display: flex; - justify-content: center; - align-items: center; - color: var(--n-prefix-color); - transition: color .3s var(--n-bezier); - z-index: 1; - `,[le("show-icon",` - width: var(--n-option-icon-prefix-width); - `),O("icon",` - font-size: var(--n-option-icon-size); - `)]),we("label",` - white-space: nowrap; - flex: 1; - z-index: 1; - `),we("suffix",` - box-sizing: border-box; - flex-grow: 0; - flex-shrink: 0; - display: flex; - justify-content: flex-end; - align-items: center; - min-width: var(--n-option-suffix-width); - padding: 0 8px; - transition: color .3s var(--n-bezier); - color: var(--n-suffix-color); - z-index: 1; - `,[le("has-submenu",` - width: var(--n-option-icon-suffix-width); - `),O("icon",` - font-size: var(--n-option-icon-size); - `)]),O("dropdown-menu","pointer-events: all;")]),O("dropdown-offset-container",` - pointer-events: none; - position: absolute; - left: 0; - right: 0; - top: -4px; - bottom: -4px; - `)]),O("dropdown-divider",` - transition: background-color .3s var(--n-bezier); - background-color: var(--n-divider-color); - height: 1px; - margin: 4px 0; - `),O("dropdown-menu-wrapper",` - transform-origin: var(--v-transform-origin); - width: fit-content; - `),he(">",[O("scrollbar",` - height: inherit; - max-height: inherit; - `)]),ei("scrollable",` - padding: var(--n-padding); - `),le("scrollable",[we("content",` - padding: var(--n-padding); - `)])]),Am={animated:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},size:{type:String,default:"medium"},inverted:Boolean,placement:{type:String,default:"bottom"},onSelect:[Function,Array],options:{type:Array,default:()=>[]},menuProps:Function,showArrow:Boolean,renderLabel:Function,renderIcon:Function,renderOption:Function,nodeProps:Function,labelField:{type:String,default:"label"},keyField:{type:String,default:"key"},childrenField:{type:String,default:"children"},value:[String,Number]},Tm=Object.keys(ad),_m=Object.assign(Object.assign(Object.assign({},ad),Am),dt.props),vd=Re({name:"Dropdown",inheritAttrs:!1,props:_m,setup(e){const t=te(!1),n=Vr(Ue(e,"show"),t),i=de(()=>{const{keyField:ee,childrenField:ne}=e;return jf(e.options,{getKey(V){return V[ee]},getDisabled(V){return V.disabled===!0},getIgnored(V){return V.type==="divider"||V.type==="render"},getChildren(V){return V[ne]}})}),c=de(()=>i.value.treeNodes),l=te(null),u=te(null),h=te(null),f=de(()=>{var ee,ne,V;return(V=(ne=(ee=l.value)!==null&&ee!==void 0?ee:u.value)!==null&&ne!==void 0?ne:h.value)!==null&&V!==void 0?V:null}),b=de(()=>i.value.getPath(f.value).keyPath),y=de(()=>i.value.getPath(e.value).keyPath),k=Dn(()=>e.keyboard&&n.value);np({keydown:{ArrowUp:{prevent:!0,handler:q},ArrowRight:{prevent:!0,handler:U},ArrowDown:{prevent:!0,handler:R},ArrowLeft:{prevent:!0,handler:M},Enter:{prevent:!0,handler:j},Escape:B}},k);const{mergedClsPrefixRef:C,inlineThemeDisabled:S}=Ut(e),L=dt("Dropdown","-dropdown",Cm,af,e,C);xr(vi,{labelFieldRef:Ue(e,"labelField"),childrenFieldRef:Ue(e,"childrenField"),renderLabelRef:Ue(e,"renderLabel"),renderIconRef:Ue(e,"renderIcon"),hoverKeyRef:l,keyboardKeyRef:u,lastToggledSubmenuKeyRef:h,pendingKeyPathRef:b,activeKeyPathRef:y,animatedRef:Ue(e,"animated"),mergedShowRef:n,nodePropsRef:Ue(e,"nodeProps"),renderOptionRef:Ue(e,"renderOption"),menuPropsRef:Ue(e,"menuProps"),doSelect:P,doUpdateShow:$}),tr(n,ee=>{!e.animated&&!ee&&E()});function P(ee,ne){const{onSelect:V}=e;V&&Je(V,ee,ne)}function $(ee){const{"onUpdate:show":ne,onUpdateShow:V}=e;ne&&Je(ne,ee),V&&Je(V,ee),t.value=ee}function E(){l.value=null,u.value=null,h.value=null}function B(){$(!1)}function M(){X("left")}function U(){X("right")}function q(){X("up")}function R(){X("down")}function j(){const ee=ie();ee!=null&&ee.isLeaf&&n.value&&(P(ee.key,ee.rawNode),$(!1))}function ie(){var ee;const{value:ne}=i,{value:V}=f;return!ne||V===null?null:(ee=ne.getNode(V))!==null&&ee!==void 0?ee:null}function X(ee){const{value:ne}=f,{value:{getFirstAvailableNode:V}}=i;let ae=null;if(ne===null){const me=V();me!==null&&(ae=me.key)}else{const me=ie();if(me){let Ce;switch(ee){case"down":Ce=me.getNext();break;case"up":Ce=me.getPrev();break;case"right":Ce=me.getChild();break;case"left":Ce=me.getParent();break}Ce&&(ae=Ce.key)}}ae!==null&&(l.value=null,u.value=ae)}const oe=de(()=>{const{size:ee,inverted:ne}=e,{common:{cubicBezierEaseInOut:V},self:ae}=L.value,{padding:me,dividerColor:Ce,borderRadius:Le,optionOpacityDisabled:ht,[ut("optionIconSuffixWidth",ee)]:gt,[ut("optionSuffixWidth",ee)]:De,[ut("optionIconPrefixWidth",ee)]:ve,[ut("optionPrefixWidth",ee)]:Ee,[ut("fontSize",ee)]:Se,[ut("optionHeight",ee)]:Ze,[ut("optionIconSize",ee)]:Be}=ae,Ye={"--n-bezier":V,"--n-font-size":Se,"--n-padding":me,"--n-border-radius":Le,"--n-option-height":Ze,"--n-option-prefix-width":Ee,"--n-option-icon-prefix-width":ve,"--n-option-suffix-width":De,"--n-option-icon-suffix-width":gt,"--n-option-icon-size":Be,"--n-divider-color":Ce,"--n-option-opacity-disabled":ht};return ne?(Ye["--n-color"]=ae.colorInverted,Ye["--n-option-color-hover"]=ae.optionColorHoverInverted,Ye["--n-option-color-active"]=ae.optionColorActiveInverted,Ye["--n-option-text-color"]=ae.optionTextColorInverted,Ye["--n-option-text-color-hover"]=ae.optionTextColorHoverInverted,Ye["--n-option-text-color-active"]=ae.optionTextColorActiveInverted,Ye["--n-option-text-color-child-active"]=ae.optionTextColorChildActiveInverted,Ye["--n-prefix-color"]=ae.prefixColorInverted,Ye["--n-suffix-color"]=ae.suffixColorInverted,Ye["--n-group-header-text-color"]=ae.groupHeaderTextColorInverted):(Ye["--n-color"]=ae.color,Ye["--n-option-color-hover"]=ae.optionColorHover,Ye["--n-option-color-active"]=ae.optionColorActive,Ye["--n-option-text-color"]=ae.optionTextColor,Ye["--n-option-text-color-hover"]=ae.optionTextColorHover,Ye["--n-option-text-color-active"]=ae.optionTextColorActive,Ye["--n-option-text-color-child-active"]=ae.optionTextColorChildActive,Ye["--n-prefix-color"]=ae.prefixColor,Ye["--n-suffix-color"]=ae.suffixColor,Ye["--n-group-header-text-color"]=ae.groupHeaderTextColor),Ye}),Z=S?kr("dropdown",de(()=>`${e.size[0]}${e.inverted?"i":""}`),oe,e):void 0;return{mergedClsPrefix:C,mergedTheme:L,tmNodes:c,mergedShow:n,handleAfterLeave:()=>{e.animated&&E()},doUpdateShow:$,cssVars:S?void 0:oe,themeClass:Z==null?void 0:Z.themeClass,onRender:Z==null?void 0:Z.onRender}},render(){const e=(i,c,l,u,h)=>{var f;const{mergedClsPrefix:b,menuProps:y}=this;(f=this.onRender)===null||f===void 0||f.call(this);const k=(y==null?void 0:y(void 0,this.tmNodes.map(S=>S.rawNode)))||{},C={ref:tp(c),class:[i,`${b}-dropdown`,this.themeClass],clsPrefix:b,tmNodes:this.tmNodes,style:[...l,this.cssVars],showArrow:this.showArrow,arrowStyle:this.arrowStyle,scrollable:this.scrollable,onMouseenter:u,onMouseleave:h};return D(md,Xn(this.$attrs,C,k))},{mergedTheme:t}=this,n={show:this.mergedShow,theme:t.peers.Popover,themeOverrides:t.peerOverrides.Popover,internalOnAfterLeave:this.handleAfterLeave,internalRenderBody:e,onUpdateShow:this.doUpdateShow,"onUpdate:show":void 0};return D(Zf,Object.assign({},of(this.$props,Tm),n),{trigger:()=>{var i,c;return(c=(i=this.$slots).default)===null||c===void 0?void 0:c.call(i)}})}});let ws;const Dm=()=>{if(!sf)return!0;if(ws===void 0){const e=document.createElement("div");e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e);const t=e.scrollHeight===1;return document.body.removeChild(e),ws=t}return ws},zm=Object.assign(Object.assign({},dt.props),{align:String,justify:{type:String,default:"start"},inline:Boolean,vertical:Boolean,size:{type:[String,Number,Array],default:"medium"},wrapItem:{type:Boolean,default:!0},itemClass:String,itemStyle:[String,Object],wrap:{type:Boolean,default:!0},internalUseGap:{type:Boolean,default:void 0}}),Em=Re({name:"Space",props:zm,setup(e){const{mergedClsPrefixRef:t,mergedRtlRef:n}=Ut(e),i=dt("Space","-space",void 0,cf,e,t),c=xl("Space",n,t);return{useGap:Dm(),rtlEnabled:c,mergedClsPrefix:t,margin:de(()=>{const{size:l}=e;if(Array.isArray(l))return{horizontal:l[0],vertical:l[1]};if(typeof l=="number")return{horizontal:l,vertical:l};const{self:{[ut("gap",l)]:u}}=i.value,{row:h,col:f}=lf(u);return{horizontal:cc(f),vertical:cc(h)}})}},render(){const{vertical:e,align:t,inline:n,justify:i,itemClass:c,itemStyle:l,margin:u,wrap:h,mergedClsPrefix:f,rtlEnabled:b,useGap:y,wrapItem:k,internalUseGap:C}=this,S=Ga(Mf(this));if(!S.length)return null;const L=`${u.horizontal}px`,P=`${u.horizontal/2}px`,$=`${u.vertical}px`,E=`${u.vertical/2}px`,B=S.length-1,M=i.startsWith("space-");return D("div",{role:"none",class:[`${f}-space`,b&&`${f}-space--rtl`],style:{display:n?"inline-flex":"flex",flexDirection:e?"column":"row",justifyContent:["start","end"].includes(i)?"flex-"+i:i,flexWrap:!h||e?"nowrap":"wrap",marginTop:y||e?"":`-${E}`,marginBottom:y||e?"":`-${E}`,alignItems:t,gap:y?`${u.vertical}px ${u.horizontal}px`:""}},!k&&(y||C)?S:S.map((U,q)=>D("div",{role:"none",class:c,style:[l,{maxWidth:"100%"},y?"":e?{marginBottom:q!==B?$:""}:b?{marginLeft:M?i==="space-between"&&q===B?"":P:q!==B?L:"",marginRight:M?i==="space-between"&&q===0?"":P:"",paddingTop:E,paddingBottom:E}:{marginRight:M?i==="space-between"&&q===B?"":P:q!==B?L:"",marginLeft:M?i==="space-between"&&q===0?"":P:"",paddingTop:E,paddingBottom:E}]},U)))}}),Rm=zr("n-layout-sider"),gd={type:String,default:"static"},Mm=O("layout",` - color: var(--n-text-color); - background-color: var(--n-color); - box-sizing: border-box; - position: relative; - z-index: auto; - flex: auto; - overflow: hidden; - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); -`,[O("layout-scroll-container",` - overflow-x: hidden; - box-sizing: border-box; - height: 100%; - `),le("absolute-positioned",` - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - `)]),Bm={embedded:Boolean,position:gd,nativeScrollbar:{type:Boolean,default:!0},scrollbarProps:Object,onScroll:Function,contentClass:String,contentStyle:{type:[String,Object],default:""},hasSider:Boolean,siderPlacement:{type:String,default:"left"}},bd=zr("n-layout");function yd(e){return Re({name:e?"LayoutContent":"Layout",props:Object.assign(Object.assign({},dt.props),Bm),setup(t){const n=te(null),i=te(null),{mergedClsPrefixRef:c,inlineThemeDisabled:l}=Ut(t),u=dt("Layout","-layout",Mm,Lu,t,c);function h(P,$){if(t.nativeScrollbar){const{value:E}=n;E&&($===void 0?E.scrollTo(P):E.scrollTo(P,$))}else{const{value:E}=i;E&&E.scrollTo(P,$)}}xr(bd,t);let f=0,b=0;const y=P=>{var $;const E=P.target;f=E.scrollLeft,b=E.scrollTop,($=t.onScroll)===null||$===void 0||$.call(t,P)};$u(()=>{if(t.nativeScrollbar){const P=n.value;P&&(P.scrollTop=b,P.scrollLeft=f)}});const k={display:"flex",flexWrap:"nowrap",width:"100%",flexDirection:"row"},C={scrollTo:h},S=de(()=>{const{common:{cubicBezierEaseInOut:P},self:$}=u.value;return{"--n-bezier":P,"--n-color":t.embedded?$.colorEmbedded:$.color,"--n-text-color":$.textColor}}),L=l?kr("layout",de(()=>t.embedded?"e":""),S,t):void 0;return Object.assign({mergedClsPrefix:c,scrollableElRef:n,scrollbarInstRef:i,hasSiderStyle:k,mergedTheme:u,handleNativeElScroll:y,cssVars:l?void 0:S,themeClass:L==null?void 0:L.themeClass,onRender:L==null?void 0:L.onRender},C)},render(){var t;const{mergedClsPrefix:n,hasSider:i}=this;(t=this.onRender)===null||t===void 0||t.call(this);const c=i?this.hasSiderStyle:void 0,l=[this.themeClass,e&&`${n}-layout-content`,`${n}-layout`,`${n}-layout--${this.position}-positioned`];return D("div",{class:l,style:this.cssVars},this.nativeScrollbar?D("div",{ref:"scrollableElRef",class:[`${n}-layout-scroll-container`,this.contentClass],style:[this.contentStyle,c],onScroll:this.handleNativeElScroll},this.$slots):D(Ou,Object.assign({},this.scrollbarProps,{onScroll:this.onScroll,ref:"scrollbarInstRef",theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar,contentClass:this.contentClass,contentStyle:[this.contentStyle,c]}),this.$slots))}})}const Im=yd(!1),Pm=yd(!0),Nm=O("layout-sider",` - flex-shrink: 0; - box-sizing: border-box; - position: relative; - z-index: 1; - color: var(--n-text-color); - transition: - color .3s var(--n-bezier), - border-color .3s var(--n-bezier), - min-width .3s var(--n-bezier), - max-width .3s var(--n-bezier), - transform .3s var(--n-bezier), - background-color .3s var(--n-bezier); - background-color: var(--n-color); - display: flex; - justify-content: flex-end; -`,[le("bordered",[we("border",` - content: ""; - position: absolute; - top: 0; - bottom: 0; - width: 1px; - background-color: var(--n-border-color); - transition: background-color .3s var(--n-bezier); - `)]),we("left-placement",[le("bordered",[we("border",` - right: 0; - `)])]),le("right-placement",` - justify-content: flex-start; - `,[le("bordered",[we("border",` - left: 0; - `)]),le("collapsed",[O("layout-toggle-button",[O("base-icon",` - transform: rotate(180deg); - `)]),O("layout-toggle-bar",[he("&:hover",[we("top",{transform:"rotate(-12deg) scale(1.15) translateY(-2px)"}),we("bottom",{transform:"rotate(12deg) scale(1.15) translateY(2px)"})])])]),O("layout-toggle-button",` - left: 0; - transform: translateX(-50%) translateY(-50%); - `,[O("base-icon",` - transform: rotate(0); - `)]),O("layout-toggle-bar",` - left: -28px; - transform: rotate(180deg); - `,[he("&:hover",[we("top",{transform:"rotate(12deg) scale(1.15) translateY(-2px)"}),we("bottom",{transform:"rotate(-12deg) scale(1.15) translateY(2px)"})])])]),le("collapsed",[O("layout-toggle-bar",[he("&:hover",[we("top",{transform:"rotate(-12deg) scale(1.15) translateY(-2px)"}),we("bottom",{transform:"rotate(12deg) scale(1.15) translateY(2px)"})])]),O("layout-toggle-button",[O("base-icon",` - transform: rotate(0); - `)])]),O("layout-toggle-button",` - transition: - color .3s var(--n-bezier), - right .3s var(--n-bezier), - left .3s var(--n-bezier), - border-color .3s var(--n-bezier), - background-color .3s var(--n-bezier); - cursor: pointer; - width: 24px; - height: 24px; - position: absolute; - top: 50%; - right: 0; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 18px; - color: var(--n-toggle-button-icon-color); - border: var(--n-toggle-button-border); - background-color: var(--n-toggle-button-color); - box-shadow: 0 2px 4px 0px rgba(0, 0, 0, .06); - transform: translateX(50%) translateY(-50%); - z-index: 1; - `,[O("base-icon",` - transition: transform .3s var(--n-bezier); - transform: rotate(180deg); - `)]),O("layout-toggle-bar",` - cursor: pointer; - height: 72px; - width: 32px; - position: absolute; - top: calc(50% - 36px); - right: -28px; - `,[we("top, bottom",` - position: absolute; - width: 4px; - border-radius: 2px; - height: 38px; - left: 14px; - transition: - background-color .3s var(--n-bezier), - transform .3s var(--n-bezier); - `),we("bottom",` - position: absolute; - top: 34px; - `),he("&:hover",[we("top",{transform:"rotate(12deg) scale(1.15) translateY(-2px)"}),we("bottom",{transform:"rotate(-12deg) scale(1.15) translateY(2px)"})]),we("top, bottom",{backgroundColor:"var(--n-toggle-bar-color)"}),he("&:hover",[we("top, bottom",{backgroundColor:"var(--n-toggle-bar-color-hover)"})])]),we("border",` - position: absolute; - top: 0; - right: 0; - bottom: 0; - width: 1px; - transition: background-color .3s var(--n-bezier); - `),O("layout-sider-scroll-container",` - flex-grow: 1; - flex-shrink: 0; - box-sizing: border-box; - height: 100%; - opacity: 0; - transition: opacity .3s var(--n-bezier); - max-width: 100%; - `),le("show-content",[O("layout-sider-scroll-container",{opacity:1})]),le("absolute-positioned",` - position: absolute; - left: 0; - top: 0; - bottom: 0; - `)]),qm=Re({name:"LayoutToggleButton",props:{clsPrefix:{type:String,required:!0},onClick:Function},render(){const{clsPrefix:e}=this;return D("div",{class:`${e}-layout-toggle-button`,onClick:this.onClick},D(er,{clsPrefix:e},{default:()=>D(cd,null)}))}}),Fm=Re({props:{clsPrefix:{type:String,required:!0},onClick:Function},render(){const{clsPrefix:e}=this;return D("div",{onClick:this.onClick,class:`${e}-layout-toggle-bar`},D("div",{class:`${e}-layout-toggle-bar__top`}),D("div",{class:`${e}-layout-toggle-bar__bottom`}))}}),Lm={position:gd,bordered:Boolean,collapsedWidth:{type:Number,default:48},width:{type:[Number,String],default:272},contentClass:String,contentStyle:{type:[String,Object],default:""},collapseMode:{type:String,default:"transform"},collapsed:{type:Boolean,default:void 0},defaultCollapsed:Boolean,showCollapsedContent:{type:Boolean,default:!0},showTrigger:{type:[Boolean,String],default:!1},nativeScrollbar:{type:Boolean,default:!0},inverted:Boolean,scrollbarProps:Object,triggerClass:String,triggerStyle:[String,Object],collapsedTriggerClass:String,collapsedTriggerStyle:[String,Object],"onUpdate:collapsed":[Function,Array],onUpdateCollapsed:[Function,Array],onAfterEnter:Function,onAfterLeave:Function,onExpand:[Function,Array],onCollapse:[Function,Array],onScroll:Function},$m=Re({name:"LayoutSider",props:Object.assign(Object.assign({},dt.props),Lm),setup(e){const t=Rt(bd),n=te(null),i=te(null),c=de(()=>br(f.value?e.collapsedWidth:e.width)),l=de(()=>e.collapseMode!=="transform"?{}:{minWidth:br(e.width)}),u=de(()=>t?t.siderPlacement:"left"),h=te(e.defaultCollapsed),f=Vr(Ue(e,"collapsed"),h);function b(q,R){if(e.nativeScrollbar){const{value:j}=n;j&&(R===void 0?j.scrollTo(q):j.scrollTo(q,R))}else{const{value:j}=i;j&&j.scrollTo(q,R)}}function y(){const{"onUpdate:collapsed":q,onUpdateCollapsed:R,onExpand:j,onCollapse:ie}=e,{value:X}=f;R&&Je(R,!X),q&&Je(q,!X),h.value=!X,X?j&&Je(j):ie&&Je(ie)}let k=0,C=0;const S=q=>{var R;const j=q.target;k=j.scrollLeft,C=j.scrollTop,(R=e.onScroll)===null||R===void 0||R.call(e,q)};$u(()=>{if(e.nativeScrollbar){const q=n.value;q&&(q.scrollTop=C,q.scrollLeft=k)}}),xr(Rm,{collapsedRef:f,collapseModeRef:Ue(e,"collapseMode")});const{mergedClsPrefixRef:L,inlineThemeDisabled:P}=Ut(e),$=dt("Layout","-layout-sider",Nm,Lu,e,L);function E(q){var R,j;q.propertyName==="max-width"&&(f.value?(R=e.onAfterLeave)===null||R===void 0||R.call(e):(j=e.onAfterEnter)===null||j===void 0||j.call(e))}const B={scrollTo:b},M=de(()=>{const{common:{cubicBezierEaseInOut:q},self:R}=$.value,{siderToggleButtonColor:j,siderToggleButtonBorder:ie,siderToggleBarColor:X,siderToggleBarColorHover:oe}=R,Z={"--n-bezier":q,"--n-toggle-button-color":j,"--n-toggle-button-border":ie,"--n-toggle-bar-color":X,"--n-toggle-bar-color-hover":oe};return e.inverted?(Z["--n-color"]=R.siderColorInverted,Z["--n-text-color"]=R.textColorInverted,Z["--n-border-color"]=R.siderBorderColorInverted,Z["--n-toggle-button-icon-color"]=R.siderToggleButtonIconColorInverted,Z.__invertScrollbar=R.__invertScrollbar):(Z["--n-color"]=R.siderColor,Z["--n-text-color"]=R.textColor,Z["--n-border-color"]=R.siderBorderColor,Z["--n-toggle-button-icon-color"]=R.siderToggleButtonIconColor),Z}),U=P?kr("layout-sider",de(()=>e.inverted?"a":"b"),M,e):void 0;return Object.assign({scrollableElRef:n,scrollbarInstRef:i,mergedClsPrefix:L,mergedTheme:$,styleMaxWidth:c,mergedCollapsed:f,scrollContainerStyle:l,siderPlacement:u,handleNativeElScroll:S,handleTransitionend:E,handleTriggerClick:y,inlineThemeDisabled:P,cssVars:M,themeClass:U==null?void 0:U.themeClass,onRender:U==null?void 0:U.onRender},B)},render(){var e;const{mergedClsPrefix:t,mergedCollapsed:n,showTrigger:i}=this;return(e=this.onRender)===null||e===void 0||e.call(this),D("aside",{class:[`${t}-layout-sider`,this.themeClass,`${t}-layout-sider--${this.position}-positioned`,`${t}-layout-sider--${this.siderPlacement}-placement`,this.bordered&&`${t}-layout-sider--bordered`,n&&`${t}-layout-sider--collapsed`,(!n||this.showCollapsedContent)&&`${t}-layout-sider--show-content`],onTransitionend:this.handleTransitionend,style:[this.inlineThemeDisabled?void 0:this.cssVars,{maxWidth:this.styleMaxWidth,width:br(this.width)}]},this.nativeScrollbar?D("div",{class:[`${t}-layout-sider-scroll-container`,this.contentClass],onScroll:this.handleNativeElScroll,style:[this.scrollContainerStyle,{overflow:"auto"},this.contentStyle],ref:"scrollableElRef"},this.$slots):D(Ou,Object.assign({},this.scrollbarProps,{onScroll:this.onScroll,ref:"scrollbarInstRef",style:this.scrollContainerStyle,contentStyle:this.contentStyle,contentClass:this.contentClass,theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar,builtinThemeOverrides:this.inverted&&this.cssVars.__invertScrollbar==="true"?{colorHover:"rgba(255, 255, 255, .4)",color:"rgba(255, 255, 255, .3)"}:void 0}),this.$slots),i?i==="bar"?D(Fm,{clsPrefix:t,class:n?this.collapsedTriggerClass:this.triggerClass,style:n?this.collapsedTriggerStyle:this.triggerStyle,onClick:this.handleTriggerClick}):D(qm,{clsPrefix:t,class:n?this.collapsedTriggerClass:this.triggerClass,style:n?this.collapsedTriggerStyle:this.triggerStyle,onClick:this.handleTriggerClick}):null,this.bordered?D("div",{class:`${t}-layout-sider__border`}):null)}}),Om=he([O("progress",{display:"inline-block"},[O("progress-icon",` - color: var(--n-icon-color); - transition: color .3s var(--n-bezier); - `),le("line",` - width: 100%; - display: block; - `,[O("progress-content",` - display: flex; - align-items: center; - `,[O("progress-graph",{flex:1})]),O("progress-custom-content",{marginLeft:"14px"}),O("progress-icon",` - width: 30px; - padding-left: 14px; - height: var(--n-icon-size-line); - line-height: var(--n-icon-size-line); - font-size: var(--n-icon-size-line); - `,[le("as-text",` - color: var(--n-text-color-line-outer); - text-align: center; - width: 40px; - font-size: var(--n-font-size); - padding-left: 4px; - transition: color .3s var(--n-bezier); - `)])]),le("circle, dashboard",{width:"120px"},[O("progress-custom-content",` - position: absolute; - left: 50%; - top: 50%; - transform: translateX(-50%) translateY(-50%); - display: flex; - align-items: center; - justify-content: center; - `),O("progress-text",` - position: absolute; - left: 50%; - top: 50%; - transform: translateX(-50%) translateY(-50%); - display: flex; - align-items: center; - color: inherit; - font-size: var(--n-font-size-circle); - color: var(--n-text-color-circle); - font-weight: var(--n-font-weight-circle); - transition: color .3s var(--n-bezier); - white-space: nowrap; - `),O("progress-icon",` - position: absolute; - left: 50%; - top: 50%; - transform: translateX(-50%) translateY(-50%); - display: flex; - align-items: center; - color: var(--n-icon-color); - font-size: var(--n-icon-size-circle); - `)]),le("multiple-circle",` - width: 200px; - color: inherit; - `,[O("progress-text",` - font-weight: var(--n-font-weight-circle); - color: var(--n-text-color-circle); - position: absolute; - left: 50%; - top: 50%; - transform: translateX(-50%) translateY(-50%); - display: flex; - align-items: center; - justify-content: center; - transition: color .3s var(--n-bezier); - `)]),O("progress-content",{position:"relative"}),O("progress-graph",{position:"relative"},[O("progress-graph-circle",[he("svg",{verticalAlign:"bottom"}),O("progress-graph-circle-fill",` - stroke: var(--n-fill-color); - transition: - opacity .3s var(--n-bezier), - stroke .3s var(--n-bezier), - stroke-dasharray .3s var(--n-bezier); - `,[le("empty",{opacity:0})]),O("progress-graph-circle-rail",` - transition: stroke .3s var(--n-bezier); - overflow: hidden; - stroke: var(--n-rail-color); - `)]),O("progress-graph-line",[le("indicator-inside",[O("progress-graph-line-rail",` - height: 16px; - line-height: 16px; - border-radius: 10px; - `,[O("progress-graph-line-fill",` - height: inherit; - border-radius: 10px; - `),O("progress-graph-line-indicator",` - background: #0000; - white-space: nowrap; - text-align: right; - margin-left: 14px; - margin-right: 14px; - height: inherit; - font-size: 12px; - color: var(--n-text-color-line-inner); - transition: color .3s var(--n-bezier); - `)])]),le("indicator-inside-label",` - height: 16px; - display: flex; - align-items: center; - `,[O("progress-graph-line-rail",` - flex: 1; - transition: background-color .3s var(--n-bezier); - `),O("progress-graph-line-indicator",` - background: var(--n-fill-color); - font-size: 12px; - transform: translateZ(0); - display: flex; - vertical-align: middle; - height: 16px; - line-height: 16px; - padding: 0 10px; - border-radius: 10px; - position: absolute; - white-space: nowrap; - color: var(--n-text-color-line-inner); - transition: - right .2s var(--n-bezier), - color .3s var(--n-bezier), - background-color .3s var(--n-bezier); - `)]),O("progress-graph-line-rail",` - position: relative; - overflow: hidden; - height: var(--n-rail-height); - border-radius: 5px; - background-color: var(--n-rail-color); - transition: background-color .3s var(--n-bezier); - `,[O("progress-graph-line-fill",` - background: var(--n-fill-color); - position: relative; - border-radius: 5px; - height: inherit; - width: 100%; - max-width: 0%; - transition: - background-color .3s var(--n-bezier), - max-width .2s var(--n-bezier); - `,[le("processing",[he("&::after",` - content: ""; - background-image: var(--n-line-bg-processing); - animation: progress-processing-animation 2s var(--n-bezier) infinite; - `)])])])])])]),he("@keyframes progress-processing-animation",` - 0% { - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 100%; - opacity: 1; - } - 66% { - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - opacity: 0; - } - 100% { - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - opacity: 0; - } - `)]),Um={success:D(Uu,null),error:D(Hu,null),warning:D(Vu,null),info:D(ju,null)},Hm=Re({name:"ProgressLine",props:{clsPrefix:{type:String,required:!0},percentage:{type:Number,default:0},railColor:String,railStyle:[String,Object],fillColor:String,status:{type:String,required:!0},indicatorPlacement:{type:String,required:!0},indicatorTextColor:String,unit:{type:String,default:"%"},processing:{type:Boolean,required:!0},showIndicator:{type:Boolean,required:!0},height:[String,Number],railBorderRadius:[String,Number],fillBorderRadius:[String,Number]},setup(e,{slots:t}){const n=de(()=>br(e.height)),i=de(()=>e.railBorderRadius!==void 0?br(e.railBorderRadius):e.height!==void 0?br(e.height,{c:.5}):""),c=de(()=>e.fillBorderRadius!==void 0?br(e.fillBorderRadius):e.railBorderRadius!==void 0?br(e.railBorderRadius):e.height!==void 0?br(e.height,{c:.5}):"");return()=>{const{indicatorPlacement:l,railColor:u,railStyle:h,percentage:f,unit:b,indicatorTextColor:y,status:k,showIndicator:C,fillColor:S,processing:L,clsPrefix:P}=e;return D("div",{class:`${P}-progress-content`,role:"none"},D("div",{class:`${P}-progress-graph`,"aria-hidden":!0},D("div",{class:[`${P}-progress-graph-line`,{[`${P}-progress-graph-line--indicator-${l}`]:!0}]},D("div",{class:`${P}-progress-graph-line-rail`,style:[{backgroundColor:u,height:n.value,borderRadius:i.value},h]},D("div",{class:[`${P}-progress-graph-line-fill`,L&&`${P}-progress-graph-line-fill--processing`],style:{maxWidth:`${e.percentage}%`,backgroundColor:S,height:n.value,lineHeight:n.value,borderRadius:c.value}},l==="inside"?D("div",{class:`${P}-progress-graph-line-indicator`,style:{color:y}},t.default?t.default():`${f}${b}`):null)))),C&&l==="outside"?D("div",null,t.default?D("div",{class:`${P}-progress-custom-content`,style:{color:y},role:"none"},t.default()):k==="default"?D("div",{role:"none",class:`${P}-progress-icon ${P}-progress-icon--as-text`,style:{color:y}},f,b):D("div",{class:`${P}-progress-icon`,"aria-hidden":!0},D(er,{clsPrefix:P},{default:()=>Um[k]}))):null)}}}),Vm={success:D(Uu,null),error:D(Hu,null),warning:D(Vu,null),info:D(ju,null)},jm=Re({name:"ProgressCircle",props:{clsPrefix:{type:String,required:!0},status:{type:String,required:!0},strokeWidth:{type:Number,required:!0},fillColor:String,railColor:String,railStyle:[String,Object],percentage:{type:Number,default:0},offsetDegree:{type:Number,default:0},showIndicator:{type:Boolean,required:!0},indicatorTextColor:String,unit:String,viewBoxWidth:{type:Number,required:!0},gapDegree:{type:Number,required:!0},gapOffsetDegree:{type:Number,default:0}},setup(e,{slots:t}){function n(i,c,l){const{gapDegree:u,viewBoxWidth:h,strokeWidth:f}=e,b=50,y=0,k=b,C=0,S=2*b,L=50+f/2,P=`M ${L},${L} m ${y},${k} - a ${b},${b} 0 1 1 ${C},${-S} - a ${b},${b} 0 1 1 ${-C},${S}`,$=Math.PI*2*b,E={stroke:l,strokeDasharray:`${i/100*($-u)}px ${h*8}px`,strokeDashoffset:`-${u/2}px`,transformOrigin:c?"center":void 0,transform:c?`rotate(${c}deg)`:void 0};return{pathString:P,pathStyle:E}}return()=>{const{fillColor:i,railColor:c,strokeWidth:l,offsetDegree:u,status:h,percentage:f,showIndicator:b,indicatorTextColor:y,unit:k,gapOffsetDegree:C,clsPrefix:S}=e,{pathString:L,pathStyle:P}=n(100,0,c),{pathString:$,pathStyle:E}=n(f,u,i),B=100+l;return D("div",{class:`${S}-progress-content`,role:"none"},D("div",{class:`${S}-progress-graph`,"aria-hidden":!0},D("div",{class:`${S}-progress-graph-circle`,style:{transform:C?`rotate(${C}deg)`:void 0}},D("svg",{viewBox:`0 0 ${B} ${B}`},D("g",null,D("path",{class:`${S}-progress-graph-circle-rail`,d:L,"stroke-width":l,"stroke-linecap":"round",fill:"none",style:P})),D("g",null,D("path",{class:[`${S}-progress-graph-circle-fill`,f===0&&`${S}-progress-graph-circle-fill--empty`],d:$,"stroke-width":l,"stroke-linecap":"round",fill:"none",style:E}))))),b?D("div",null,t.default?D("div",{class:`${S}-progress-custom-content`,role:"none"},t.default()):h!=="default"?D("div",{class:`${S}-progress-icon`,"aria-hidden":!0},D(er,{clsPrefix:S},{default:()=>Vm[h]})):D("div",{class:`${S}-progress-text`,style:{color:y},role:"none"},D("span",{class:`${S}-progress-text__percentage`},f),D("span",{class:`${S}-progress-text__unit`},k))):null)}}});function Cc(e,t,n=100){return`m ${n/2} ${n/2-e} a ${e} ${e} 0 1 1 0 ${2*e} a ${e} ${e} 0 1 1 0 -${2*e}`}const Gm=Re({name:"ProgressMultipleCircle",props:{clsPrefix:{type:String,required:!0},viewBoxWidth:{type:Number,required:!0},percentage:{type:Array,default:[0]},strokeWidth:{type:Number,required:!0},circleGap:{type:Number,required:!0},showIndicator:{type:Boolean,required:!0},fillColor:{type:Array,default:()=>[]},railColor:{type:Array,default:()=>[]},railStyle:{type:Array,default:()=>[]}},setup(e,{slots:t}){const n=de(()=>e.percentage.map((c,l)=>`${Math.PI*c/100*(e.viewBoxWidth/2-e.strokeWidth/2*(1+2*l)-e.circleGap*l)*2}, ${e.viewBoxWidth*8}`));return()=>{const{viewBoxWidth:i,strokeWidth:c,circleGap:l,showIndicator:u,fillColor:h,railColor:f,railStyle:b,percentage:y,clsPrefix:k}=e;return D("div",{class:`${k}-progress-content`,role:"none"},D("div",{class:`${k}-progress-graph`,"aria-hidden":!0},D("div",{class:`${k}-progress-graph-circle`},D("svg",{viewBox:`0 0 ${i} ${i}`},y.map((C,S)=>D("g",{key:S},D("path",{class:`${k}-progress-graph-circle-rail`,d:Cc(i/2-c/2*(1+2*S)-l*S,c,i),"stroke-width":c,"stroke-linecap":"round",fill:"none",style:[{strokeDashoffset:0,stroke:f[S]},b[S]]}),D("path",{class:[`${k}-progress-graph-circle-fill`,C===0&&`${k}-progress-graph-circle-fill--empty`],d:Cc(i/2-c/2*(1+2*S)-l*S,c,i),"stroke-width":c,"stroke-linecap":"round",fill:"none",style:{strokeDasharray:n.value[S],strokeDashoffset:0,stroke:h[S]}})))))),u&&t.default?D("div",null,D("div",{class:`${k}-progress-text`},t.default())):null)}}}),Wm=Object.assign(Object.assign({},dt.props),{processing:Boolean,type:{type:String,default:"line"},gapDegree:Number,gapOffsetDegree:Number,status:{type:String,default:"default"},railColor:[String,Array],railStyle:[String,Array],color:[String,Array],viewBoxWidth:{type:Number,default:100},strokeWidth:{type:Number,default:7},percentage:[Number,Array],unit:{type:String,default:"%"},showIndicator:{type:Boolean,default:!0},indicatorPosition:{type:String,default:"outside"},indicatorPlacement:{type:String,default:"outside"},indicatorTextColor:String,circleGap:{type:Number,default:1},height:Number,borderRadius:[String,Number],fillBorderRadius:[String,Number],offsetDegree:Number}),sl=Re({name:"Progress",props:Wm,setup(e){const t=de(()=>e.indicatorPlacement||e.indicatorPosition),n=de(()=>{if(e.gapDegree||e.gapDegree===0)return e.gapDegree;if(e.type==="dashboard")return 75}),{mergedClsPrefixRef:i,inlineThemeDisabled:c}=Ut(e),l=dt("Progress","-progress",Om,uf,e,i),u=de(()=>{const{status:f}=e,{common:{cubicBezierEaseInOut:b},self:{fontSize:y,fontSizeCircle:k,railColor:C,railHeight:S,iconSizeCircle:L,iconSizeLine:P,textColorCircle:$,textColorLineInner:E,textColorLineOuter:B,lineBgProcessing:M,fontWeightCircle:U,[ut("iconColor",f)]:q,[ut("fillColor",f)]:R}}=l.value;return{"--n-bezier":b,"--n-fill-color":R,"--n-font-size":y,"--n-font-size-circle":k,"--n-font-weight-circle":U,"--n-icon-color":q,"--n-icon-size-circle":L,"--n-icon-size-line":P,"--n-line-bg-processing":M,"--n-rail-color":C,"--n-rail-height":S,"--n-text-color-circle":$,"--n-text-color-line-inner":E,"--n-text-color-line-outer":B}}),h=c?kr("progress",de(()=>e.status[0]),u,e):void 0;return{mergedClsPrefix:i,mergedIndicatorPlacement:t,gapDeg:n,cssVars:c?void 0:u,themeClass:h==null?void 0:h.themeClass,onRender:h==null?void 0:h.onRender}},render(){const{type:e,cssVars:t,indicatorTextColor:n,showIndicator:i,status:c,railColor:l,railStyle:u,color:h,percentage:f,viewBoxWidth:b,strokeWidth:y,mergedIndicatorPlacement:k,unit:C,borderRadius:S,fillBorderRadius:L,height:P,processing:$,circleGap:E,mergedClsPrefix:B,gapDeg:M,gapOffsetDegree:U,themeClass:q,$slots:R,onRender:j}=this;return j==null||j(),D("div",{class:[q,`${B}-progress`,`${B}-progress--${e}`,`${B}-progress--${c}`],style:t,"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":f,role:e==="circle"||e==="line"||e==="dashboard"?"progressbar":"none"},e==="circle"||e==="dashboard"?D(jm,{clsPrefix:B,status:c,showIndicator:i,indicatorTextColor:n,railColor:l,fillColor:h,railStyle:u,offsetDegree:this.offsetDegree,percentage:f,viewBoxWidth:b,strokeWidth:y,gapDegree:M===void 0?e==="dashboard"?75:0:M,gapOffsetDegree:U,unit:C},R):e==="line"?D(Hm,{clsPrefix:B,status:c,showIndicator:i,indicatorTextColor:n,railColor:l,fillColor:h,railStyle:u,percentage:f,processing:$,indicatorPlacement:k,unit:C,fillBorderRadius:L,railBorderRadius:S,height:P},R):e==="multiple-circle"?D(Gm,{clsPrefix:B,strokeWidth:y,railColor:l,fillColor:h,railStyle:u,viewBoxWidth:b,percentage:f,showIndicator:i,circleGap:E},R):null)}}),Xm=he([O("skeleton",` - height: 1em; - width: 100%; - transition: background-color .3s var(--n-bezier); - transition: - --n-color-start .3s var(--n-bezier), - --n-color-end .3s var(--n-bezier), - background-color .3s var(--n-bezier); - animation: 2s skeleton-loading infinite cubic-bezier(0.36, 0, 0.64, 1); - background-color: var(--n-color-start); - `),he("@keyframes skeleton-loading",` - 0% { - background: var(--n-color-start); - } - 40% { - background: var(--n-color-end); - } - 80% { - background: var(--n-color-start); - } - 100% { - background: var(--n-color-start); - } - `)]),Ym=Object.assign(Object.assign({},dt.props),{text:Boolean,round:Boolean,circle:Boolean,height:[String,Number],width:[String,Number],size:String,repeat:{type:Number,default:1},animated:{type:Boolean,default:!0},sharp:{type:Boolean,default:!0}}),ks=Re({name:"Skeleton",inheritAttrs:!1,props:Ym,setup(e){Gf();const{mergedClsPrefixRef:t}=Ut(e),n=dt("Skeleton","-skeleton",Xm,hf,e,t);return{mergedClsPrefix:t,style:de(()=>{var i,c;const l=n.value,{common:{cubicBezierEaseInOut:u}}=l,h=l.self,{color:f,colorEnd:b,borderRadius:y}=h;let k;const{circle:C,sharp:S,round:L,width:P,height:$,size:E,text:B,animated:M}=e;E!==void 0&&(k=h[ut("height",E)]);const U=C?(i=P??$)!==null&&i!==void 0?i:k:P,q=(c=C?P??$:$)!==null&&c!==void 0?c:k;return{display:B?"inline-block":"",verticalAlign:B?"-0.125em":"",borderRadius:C?"50%":L?"4096px":S?"":y,width:typeof U=="number"?uc(U):U,height:typeof q=="number"?uc(q):q,animation:M?"":"none","--n-bezier":u,"--n-color-start":f,"--n-color-end":b}})}},render(){const{repeat:e,style:t,mergedClsPrefix:n,$attrs:i}=this,c=D("div",Xn({class:`${n}-skeleton`,style:t},i));return e>1?D(cr,null,df(e,null).map(l=>[c,` -`])):c}}),Tl=zr("n-tabs"),xd={tab:[String,Number,Object,Function],name:{type:[String,Number],required:!0},disabled:Boolean,displayDirective:{type:String,default:"if"},closable:{type:Boolean,default:void 0},tabProps:Object,label:[String,Number,Object,Function]},Ss=Re({__TAB_PANE__:!0,name:"TabPane",alias:["TabPanel"],props:xd,setup(e){const t=Rt(Tl,null);return t||Qo("tab-pane","`n-tab-pane` must be placed inside `n-tabs`."),{style:t.paneStyleRef,class:t.paneClassRef,mergedClsPrefix:t.mergedClsPrefixRef}},render(){return D("div",{class:[`${this.mergedClsPrefix}-tab-pane`,this.class],style:this.style},this.$slots)}}),Km=Object.assign({internalLeftPadded:Boolean,internalAddable:Boolean,internalCreatedByPane:Boolean},pf(xd,["displayDirective"])),ll=Re({__TAB__:!0,inheritAttrs:!1,name:"Tab",props:Km,setup(e){const{mergedClsPrefixRef:t,valueRef:n,typeRef:i,closableRef:c,tabStyleRef:l,tabChangeIdRef:u,onBeforeLeaveRef:h,triggerRef:f,handleAdd:b,activateTab:y,handleClose:k}=Rt(Tl);return{trigger:f,mergedClosable:de(()=>{if(e.internalAddable)return!1;const{closable:C}=e;return C===void 0?c.value:C}),style:l,clsPrefix:t,value:n,type:i,handleClose(C){C.stopPropagation(),!e.disabled&&k(e.name)},activateTab(){if(e.disabled)return;if(e.internalAddable){b();return}const{name:C}=e,S=++u.id;if(C!==n.value){const{value:L}=h;L?Promise.resolve(L(e.name,n.value)).then(P=>{P&&u.id===S&&y(C)}):y(C)}}}},render(){const{internalAddable:e,clsPrefix:t,name:n,disabled:i,label:c,tab:l,value:u,mergedClosable:h,style:f,trigger:b,$slots:{default:y}}=this,k=c??l;return D("div",{class:`${t}-tabs-tab-wrapper`},this.internalLeftPadded?D("div",{class:`${t}-tabs-tab-pad`}):null,D("div",Object.assign({key:n,"data-name":n,"data-disabled":i?!0:void 0},Xn({class:[`${t}-tabs-tab`,u===n&&`${t}-tabs-tab--active`,i&&`${t}-tabs-tab--disabled`,h&&`${t}-tabs-tab--closable`,e&&`${t}-tabs-tab--addable`],onClick:b==="click"?this.activateTab:void 0,onMouseenter:b==="hover"?this.activateTab:void 0,style:e?void 0:f},this.internalCreatedByPane?this.tabProps||{}:this.$attrs)),D("span",{class:`${t}-tabs-tab__label`},e?D(cr,null,D("div",{class:`${t}-tabs-tab__height-placeholder`}," "),D(er,{clsPrefix:t},{default:()=>D(ld,null)})):y?y():typeof k=="object"?k:jo(k??n)),h&&this.type==="card"?D(ff,{clsPrefix:t,class:`${t}-tabs-tab__close`,onClick:this.handleClose,disabled:i}):null))}}),Zm=O("tabs",` - box-sizing: border-box; - width: 100%; - display: flex; - flex-direction: column; - transition: - background-color .3s var(--n-bezier), - border-color .3s var(--n-bezier); -`,[le("segment-type",[O("tabs-rail",[he("&.transition-disabled","color: red;",[O("tabs-tab",` - transition: none; - `)])])]),le("top",[O("tab-pane",` - padding: var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left); - `)]),le("left",[O("tab-pane",` - padding: var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left) var(--n-pane-padding-top); - `)]),le("left, right",` - flex-direction: row; - `,[O("tabs-bar",` - width: 2px; - right: 0; - transition: - top .2s var(--n-bezier), - max-height .2s var(--n-bezier), - background-color .3s var(--n-bezier); - `),O("tabs-tab",` - padding: var(--n-tab-padding-vertical); - `)]),le("right",` - flex-direction: row-reverse; - `,[O("tab-pane",` - padding: var(--n-pane-padding-left) var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom); - `),O("tabs-bar",` - left: 0; - `)]),le("bottom",` - flex-direction: column-reverse; - justify-content: flex-end; - `,[O("tab-pane",` - padding: var(--n-pane-padding-bottom) var(--n-pane-padding-right) var(--n-pane-padding-top) var(--n-pane-padding-left); - `),O("tabs-bar",` - top: 0; - `)]),O("tabs-rail",` - padding: 3px; - border-radius: var(--n-tab-border-radius); - width: 100%; - background-color: var(--n-color-segment); - transition: background-color .3s var(--n-bezier); - display: flex; - align-items: center; - `,[O("tabs-tab-wrapper",` - flex-basis: 0; - flex-grow: 1; - display: flex; - align-items: center; - justify-content: center; - `,[O("tabs-tab",` - overflow: hidden; - border-radius: var(--n-tab-border-radius); - width: 100%; - display: flex; - align-items: center; - justify-content: center; - `,[le("active",` - font-weight: var(--n-font-weight-strong); - color: var(--n-tab-text-color-active); - background-color: var(--n-tab-color-segment); - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .08); - `),he("&:hover",` - color: var(--n-tab-text-color-hover); - `)])])]),le("flex",[O("tabs-nav",{width:"100%"},[O("tabs-wrapper",{width:"100%"},[O("tabs-tab",{marginRight:0})])])]),O("tabs-nav",` - box-sizing: border-box; - line-height: 1.5; - display: flex; - transition: border-color .3s var(--n-bezier); - `,[we("prefix, suffix",` - display: flex; - align-items: center; - `),we("prefix","padding-right: 16px;"),we("suffix","padding-left: 16px;")]),le("top, bottom",[O("tabs-nav-scroll-wrapper",[he("&::before",` - top: 0; - bottom: 0; - left: 0; - width: 20px; - `),he("&::after",` - top: 0; - bottom: 0; - right: 0; - width: 20px; - `),le("shadow-start",[he("&::before",` - box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, .12); - `)]),le("shadow-end",[he("&::after",` - box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, .12); - `)])])]),le("left, right",[O("tabs-nav-scroll-content",` - flex-direction: column; - `),O("tabs-nav-scroll-wrapper",[he("&::before",` - top: 0; - left: 0; - right: 0; - height: 20px; - `),he("&::after",` - bottom: 0; - left: 0; - right: 0; - height: 20px; - `),le("shadow-start",[he("&::before",` - box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, .12); - `)]),le("shadow-end",[he("&::after",` - box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, .12); - `)])])]),O("tabs-nav-scroll-wrapper",` - flex: 1; - position: relative; - overflow: hidden; - `,[O("tabs-nav-y-scroll",` - height: 100%; - width: 100%; - overflow-y: auto; - scrollbar-width: none; - `,[he("&::-webkit-scrollbar",` - width: 0; - height: 0; - `)]),he("&::before, &::after",` - transition: box-shadow .3s var(--n-bezier); - pointer-events: none; - content: ""; - position: absolute; - z-index: 1; - `)]),O("tabs-nav-scroll-content",` - display: flex; - position: relative; - min-width: 100%; - min-height: 100%; - width: fit-content; - box-sizing: border-box; - `),O("tabs-wrapper",` - display: inline-flex; - flex-wrap: nowrap; - position: relative; - `),O("tabs-tab-wrapper",` - display: flex; - flex-wrap: nowrap; - flex-shrink: 0; - flex-grow: 0; - `),O("tabs-tab",` - cursor: pointer; - white-space: nowrap; - flex-wrap: nowrap; - display: inline-flex; - align-items: center; - color: var(--n-tab-text-color); - font-size: var(--n-tab-font-size); - background-clip: padding-box; - padding: var(--n-tab-padding); - transition: - box-shadow .3s var(--n-bezier), - color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - border-color .3s var(--n-bezier); - `,[le("disabled",{cursor:"not-allowed"}),we("close",` - margin-left: 6px; - transition: - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - `),we("label",` - display: flex; - align-items: center; - `)]),O("tabs-bar",` - position: absolute; - bottom: 0; - height: 2px; - border-radius: 1px; - background-color: var(--n-bar-color); - transition: - left .2s var(--n-bezier), - max-width .2s var(--n-bezier), - background-color .3s var(--n-bezier); - `,[he("&.transition-disabled",` - transition: none; - `),le("disabled",` - background-color: var(--n-tab-text-color-disabled) - `)]),O("tabs-pane-wrapper",` - position: relative; - overflow: hidden; - transition: max-height .2s var(--n-bezier); - `),O("tab-pane",` - color: var(--n-pane-text-color); - width: 100%; - transition: - color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - opacity .2s var(--n-bezier); - left: 0; - right: 0; - top: 0; - `,[he("&.next-transition-leave-active, &.prev-transition-leave-active, &.next-transition-enter-active, &.prev-transition-enter-active",` - transition: - color .3s var(--n-bezier), - background-color .3s var(--n-bezier), - transform .2s var(--n-bezier), - opacity .2s var(--n-bezier); - `),he("&.next-transition-leave-active, &.prev-transition-leave-active",` - position: absolute; - `),he("&.next-transition-enter-from, &.prev-transition-leave-to",` - transform: translateX(32px); - opacity: 0; - `),he("&.next-transition-leave-to, &.prev-transition-enter-from",` - transform: translateX(-32px); - opacity: 0; - `),he("&.next-transition-leave-from, &.next-transition-enter-to, &.prev-transition-leave-from, &.prev-transition-enter-to",` - transform: translateX(0); - opacity: 1; - `)]),O("tabs-tab-pad",` - box-sizing: border-box; - width: var(--n-tab-gap); - flex-grow: 0; - flex-shrink: 0; - `),le("line-type, bar-type",[O("tabs-tab",` - font-weight: var(--n-tab-font-weight); - box-sizing: border-box; - vertical-align: bottom; - `,[he("&:hover",{color:"var(--n-tab-text-color-hover)"}),le("active",` - color: var(--n-tab-text-color-active); - font-weight: var(--n-tab-font-weight-active); - `),le("disabled",{color:"var(--n-tab-text-color-disabled)"})])]),O("tabs-nav",[le("line-type",[le("top",[we("prefix, suffix",` - border-bottom: 1px solid var(--n-tab-border-color); - `),O("tabs-nav-scroll-content",` - border-bottom: 1px solid var(--n-tab-border-color); - `),O("tabs-bar",` - bottom: -1px; - `)]),le("left",[we("prefix, suffix",` - border-right: 1px solid var(--n-tab-border-color); - `),O("tabs-nav-scroll-content",` - border-right: 1px solid var(--n-tab-border-color); - `),O("tabs-bar",` - right: -1px; - `)]),le("right",[we("prefix, suffix",` - border-left: 1px solid var(--n-tab-border-color); - `),O("tabs-nav-scroll-content",` - border-left: 1px solid var(--n-tab-border-color); - `),O("tabs-bar",` - left: -1px; - `)]),le("bottom",[we("prefix, suffix",` - border-top: 1px solid var(--n-tab-border-color); - `),O("tabs-nav-scroll-content",` - border-top: 1px solid var(--n-tab-border-color); - `),O("tabs-bar",` - top: -1px; - `)]),we("prefix, suffix",` - transition: border-color .3s var(--n-bezier); - `),O("tabs-nav-scroll-content",` - transition: border-color .3s var(--n-bezier); - `),O("tabs-bar",` - border-radius: 0; - `)]),le("card-type",[we("prefix, suffix",` - transition: border-color .3s var(--n-bezier); - border-bottom: 1px solid var(--n-tab-border-color); - `),O("tabs-pad",` - flex-grow: 1; - transition: border-color .3s var(--n-bezier); - `),O("tabs-tab-pad",` - transition: border-color .3s var(--n-bezier); - `),O("tabs-tab",` - font-weight: var(--n-tab-font-weight); - border: 1px solid var(--n-tab-border-color); - background-color: var(--n-tab-color); - box-sizing: border-box; - position: relative; - vertical-align: bottom; - display: flex; - justify-content: space-between; - font-size: var(--n-tab-font-size); - color: var(--n-tab-text-color); - `,[le("addable",` - padding-left: 8px; - padding-right: 8px; - font-size: 16px; - `,[we("height-placeholder",` - width: 0; - font-size: var(--n-tab-font-size); - `),ei("disabled",[he("&:hover",` - color: var(--n-tab-text-color-hover); - `)])]),le("closable","padding-right: 8px;"),le("active",` - background-color: #0000; - font-weight: var(--n-tab-font-weight-active); - color: var(--n-tab-text-color-active); - `),le("disabled","color: var(--n-tab-text-color-disabled);")]),O("tabs-scroll-padding","border-bottom: 1px solid var(--n-tab-border-color);")]),le("left, right",[O("tabs-wrapper",` - flex-direction: column; - `,[O("tabs-tab-wrapper",` - flex-direction: column; - `,[O("tabs-tab-pad",` - height: var(--n-tab-gap-vertical); - width: 100%; - `)])])]),le("top",[le("card-type",[O("tabs-tab",` - border-top-left-radius: var(--n-tab-border-radius); - border-top-right-radius: var(--n-tab-border-radius); - `,[le("active",` - border-bottom: 1px solid #0000; - `)]),O("tabs-tab-pad",` - border-bottom: 1px solid var(--n-tab-border-color); - `),O("tabs-pad",` - border-bottom: 1px solid var(--n-tab-border-color); - `)])]),le("left",[le("card-type",[O("tabs-tab",` - border-top-left-radius: var(--n-tab-border-radius); - border-bottom-left-radius: var(--n-tab-border-radius); - `,[le("active",` - border-right: 1px solid #0000; - `)]),O("tabs-tab-pad",` - border-right: 1px solid var(--n-tab-border-color); - `),O("tabs-pad",` - border-right: 1px solid var(--n-tab-border-color); - `)])]),le("right",[le("card-type",[O("tabs-tab",` - border-top-right-radius: var(--n-tab-border-radius); - border-bottom-right-radius: var(--n-tab-border-radius); - `,[le("active",` - border-left: 1px solid #0000; - `)]),O("tabs-tab-pad",` - border-left: 1px solid var(--n-tab-border-color); - `),O("tabs-pad",` - border-left: 1px solid var(--n-tab-border-color); - `)])]),le("bottom",[le("card-type",[O("tabs-tab",` - border-bottom-left-radius: var(--n-tab-border-radius); - border-bottom-right-radius: var(--n-tab-border-radius); - `,[le("active",` - border-top: 1px solid #0000; - `)]),O("tabs-tab-pad",` - border-top: 1px solid var(--n-tab-border-color); - `),O("tabs-pad",` - border-top: 1px solid var(--n-tab-border-color); - `)])])])]),Jm=Object.assign(Object.assign({},dt.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:"click"},type:{type:String,default:"bar"},closable:Boolean,justifyContent:String,size:{type:String,default:"medium"},placement:{type:String,default:"top"},tabStyle:[String,Object],barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),Qm=Re({name:"Tabs",props:Jm,setup(e,{slots:t}){var n,i,c,l;const{mergedClsPrefixRef:u,inlineThemeDisabled:h}=Ut(e),f=dt("Tabs","-tabs",Zm,mf,e,u),b=te(null),y=te(null),k=te(null),C=te(null),S=te(null),L=te(!0),P=te(!0),$=bc(e,["labelSize","size"]),E=bc(e,["activeName","value"]),B=te((i=(n=E.value)!==null&&n!==void 0?n:e.defaultValue)!==null&&i!==void 0?i:t.default?(l=(c=Ga(t.default())[0])===null||c===void 0?void 0:c.props)===null||l===void 0?void 0:l.name:null),M=Vr(E,B),U={id:0},q=de(()=>{if(!(!e.justifyContent||e.type==="card"))return{display:"flex",justifyContent:e.justifyContent}});tr(M,()=>{U.id=0,X(),oe()});function R(){var ue;const{value:Te}=M;return Te===null?null:(ue=b.value)===null||ue===void 0?void 0:ue.querySelector(`[data-name="${Te}"]`)}function j(ue){if(e.type==="card")return;const{value:Te}=y;if(Te&&ue){const Y=`${u.value}-tabs-bar--disabled`,{barWidth:ye,placement:je}=e;if(ue.dataset.disabled==="true"?Te.classList.add(Y):Te.classList.remove(Y),["top","bottom"].includes(je)){if(ie(["top","maxHeight","height"]),typeof ye=="number"&&ue.offsetWidth>=ye){const Ke=Math.floor((ue.offsetWidth-ye)/2)+ue.offsetLeft;Te.style.left=`${Ke}px`,Te.style.maxWidth=`${ye}px`}else Te.style.left=`${ue.offsetLeft}px`,Te.style.maxWidth=`${ue.offsetWidth}px`;Te.style.width="8192px",Te.offsetWidth}else{if(ie(["left","maxWidth","width"]),typeof ye=="number"&&ue.offsetHeight>=ye){const Ke=Math.floor((ue.offsetHeight-ye)/2)+ue.offsetTop;Te.style.top=`${Ke}px`,Te.style.maxHeight=`${ye}px`}else Te.style.top=`${ue.offsetTop}px`,Te.style.maxHeight=`${ue.offsetHeight}px`;Te.style.height="8192px",Te.offsetHeight}}}function ie(ue){const{value:Te}=y;if(Te)for(const Y of ue)Te.style[Y]=""}function X(){if(e.type==="card")return;const ue=R();ue&&j(ue)}function oe(ue){var Te;const Y=(Te=S.value)===null||Te===void 0?void 0:Te.$el;if(!Y)return;const ye=R();if(!ye)return;const{scrollLeft:je,offsetWidth:Ke}=Y,{offsetLeft:lt,offsetWidth:rt}=ye;je>lt?Y.scrollTo({top:0,left:lt,behavior:"smooth"}):lt+rt>je+Ke&&Y.scrollTo({top:0,left:lt+rt-Ke,behavior:"smooth"})}const Z=te(null);let ee=0,ne=null;function V(ue){const Te=Z.value;if(Te){ee=ue.getBoundingClientRect().height;const Y=`${ee}px`,ye=()=>{Te.style.height=Y,Te.style.maxHeight=Y};ne?(ye(),ne(),ne=null):ne=ye}}function ae(ue){const Te=Z.value;if(Te){const Y=ue.getBoundingClientRect().height,ye=()=>{document.body.offsetHeight,Te.style.maxHeight=`${Y}px`,Te.style.height=`${Math.max(ee,Y)}px`};ne?(ne(),ne=null,ye()):ne=ye}}function me(){const ue=Z.value;if(ue){ue.style.maxHeight="",ue.style.height="";const{paneWrapperStyle:Te}=e;if(typeof Te=="string")ue.style.cssText=Te;else if(Te){const{maxHeight:Y,height:ye}=Te;Y!==void 0&&(ue.style.maxHeight=Y),ye!==void 0&&(ue.style.height=ye)}}}const Ce={value:[]},Le=te("next");function ht(ue){const Te=M.value;let Y="next";for(const ye of Ce.value){if(ye===Te)break;if(ye===ue){Y="prev";break}}Le.value=Y,gt(ue)}function gt(ue){const{onActiveNameChange:Te,onUpdateValue:Y,"onUpdate:value":ye}=e;Te&&Je(Te,ue),Y&&Je(Y,ue),ye&&Je(ye,ue),B.value=ue}function De(ue){const{onClose:Te}=e;Te&&Je(Te,ue)}function ve(){const{value:ue}=y;if(!ue)return;const Te="transition-disabled";ue.classList.add(Te),X(),ue.classList.remove(Te)}let Ee=0;function Se(ue){var Te;if(ue.contentRect.width===0&&ue.contentRect.height===0||Ee===ue.contentRect.width)return;Ee=ue.contentRect.width;const{type:Y}=e;(Y==="line"||Y==="bar")&&ve(),Y!=="segment"&&hr(((Te=S.value)===null||Te===void 0?void 0:Te.$el)||null)}const Ze=ys(Se,64);tr([()=>e.justifyContent,()=>e.size],()=>{An(()=>{const{type:ue}=e;(ue==="line"||ue==="bar")&&ve()})});const Be=te(!1);function Ye(ue){var Te;const{target:Y,contentRect:{width:ye}}=ue,je=Y.parentElement.offsetWidth;if(!Be.value)jeKe.$el.offsetWidth&&(Be.value=!1)}hr(((Te=S.value)===null||Te===void 0?void 0:Te.$el)||null)}const wt=ys(Ye,64);function Rr(){const{onAdd:ue}=e;ue&&ue(),An(()=>{const Te=R(),{value:Y}=S;!Te||!Y||Y.scrollTo({left:Te.offsetLeft,top:0,behavior:"smooth"})})}function hr(ue){if(!ue)return;const{placement:Te}=e;if(Te==="top"||Te==="bottom"){const{scrollLeft:Y,scrollWidth:ye,offsetWidth:je}=ue;L.value=Y<=0,P.value=Y+je>=ye}else{const{scrollTop:Y,scrollHeight:ye,offsetHeight:je}=ue;L.value=Y<=0,P.value=Y+je>=ye}}const Mr=ys(ue=>{hr(ue.target)},64);xr(Tl,{triggerRef:Ue(e,"trigger"),tabStyleRef:Ue(e,"tabStyle"),paneClassRef:Ue(e,"paneClass"),paneStyleRef:Ue(e,"paneStyle"),mergedClsPrefixRef:u,typeRef:Ue(e,"type"),closableRef:Ue(e,"closable"),valueRef:M,tabChangeIdRef:U,onBeforeLeaveRef:Ue(e,"onBeforeLeave"),activateTab:ht,handleClose:De,handleAdd:Rr}),Jf(()=>{X(),oe()}),go(()=>{const{value:ue}=k;if(!ue)return;const{value:Te}=u,Y=`${Te}-tabs-nav-scroll-wrapper--shadow-start`,ye=`${Te}-tabs-nav-scroll-wrapper--shadow-end`;L.value?ue.classList.remove(Y):ue.classList.add(Y),P.value?ue.classList.remove(ye):ue.classList.add(ye)});const Xr=te(null);tr(M,()=>{if(e.type==="segment"){const ue=Xr.value;ue&&An(()=>{ue.classList.add("transition-disabled"),ue.offsetWidth,ue.classList.remove("transition-disabled")})}});const ln={syncBarPosition:()=>{X()}},cn=de(()=>{const{value:ue}=$,{type:Te}=e,Y={card:"Card",bar:"Bar",line:"Line",segment:"Segment"}[Te],ye=`${ue}${Y}`,{self:{barColor:je,closeIconColor:Ke,closeIconColorHover:lt,closeIconColorPressed:rt,tabColor:Pt,tabBorderColor:Nt,paneTextColor:Sr,tabFontWeight:Yn,tabBorderRadius:Kn,tabFontWeightActive:ia,colorSegment:Di,fontWeightStrong:So,tabColorSegment:zi,closeSize:sa,closeIconSize:bt,closeColorHover:be,closeColorPressed:Br,closeBorderRadius:la,[ut("panePadding",ue)]:zn,[ut("tabPadding",ye)]:ca,[ut("tabPaddingVertical",ye)]:En,[ut("tabGap",ye)]:Co,[ut("tabGap",`${ye}Vertical`)]:Ei,[ut("tabTextColor",Te)]:Ri,[ut("tabTextColorActive",Te)]:Yt,[ut("tabTextColorHover",Te)]:Cr,[ut("tabTextColorDisabled",Te)]:Ir,[ut("tabFontSize",ue)]:Ao},common:{cubicBezierEaseInOut:ua}}=f.value;return{"--n-bezier":ua,"--n-color-segment":Di,"--n-bar-color":je,"--n-tab-font-size":Ao,"--n-tab-text-color":Ri,"--n-tab-text-color-active":Yt,"--n-tab-text-color-disabled":Ir,"--n-tab-text-color-hover":Cr,"--n-pane-text-color":Sr,"--n-tab-border-color":Nt,"--n-tab-border-radius":Kn,"--n-close-size":sa,"--n-close-icon-size":bt,"--n-close-color-hover":be,"--n-close-color-pressed":Br,"--n-close-border-radius":la,"--n-close-icon-color":Ke,"--n-close-icon-color-hover":lt,"--n-close-icon-color-pressed":rt,"--n-tab-color":Pt,"--n-tab-font-weight":Yn,"--n-tab-font-weight-active":ia,"--n-tab-padding":ca,"--n-tab-padding-vertical":En,"--n-tab-gap":Co,"--n-tab-gap-vertical":Ei,"--n-pane-padding-left":Ia(zn,"left"),"--n-pane-padding-right":Ia(zn,"right"),"--n-pane-padding-top":Ia(zn,"top"),"--n-pane-padding-bottom":Ia(zn,"bottom"),"--n-font-weight-strong":So,"--n-tab-color-segment":zi}}),Xt=h?kr("tabs",de(()=>`${$.value[0]}${e.type[0]}`),cn,e):void 0;return Object.assign({mergedClsPrefix:u,mergedValue:M,renderedNames:new Set,tabsRailElRef:Xr,tabsPaneWrapperRef:Z,tabsElRef:b,barElRef:y,addTabInstRef:C,xScrollInstRef:S,scrollWrapperElRef:k,addTabFixed:Be,tabWrapperStyle:q,handleNavResize:Ze,mergedSize:$,handleScroll:Mr,handleTabsResize:wt,cssVars:h?void 0:cn,themeClass:Xt==null?void 0:Xt.themeClass,animationDirection:Le,renderNameListRef:Ce,onAnimationBeforeLeave:V,onAnimationEnter:ae,onAnimationAfterEnter:me,onRender:Xt==null?void 0:Xt.onRender},ln)},render(){const{mergedClsPrefix:e,type:t,placement:n,addTabFixed:i,addable:c,mergedSize:l,renderNameListRef:u,onRender:h,paneWrapperClass:f,paneWrapperStyle:b,$slots:{default:y,prefix:k,suffix:C}}=this;h==null||h();const S=y?Ga(y()).filter(q=>q.type.__TAB_PANE__===!0):[],L=y?Ga(y()).filter(q=>q.type.__TAB__===!0):[],P=!L.length,$=t==="card",E=t==="segment",B=!$&&!E&&this.justifyContent;u.value=[];const M=()=>{const q=D("div",{style:this.tabWrapperStyle,class:[`${e}-tabs-wrapper`]},B?null:D("div",{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}),P?S.map((R,j)=>(u.value.push(R.props.name),Cs(D(ll,Object.assign({},R.props,{internalCreatedByPane:!0,internalLeftPadded:j!==0&&(!B||B==="center"||B==="start"||B==="end")}),R.children?{default:R.children.tab}:void 0)))):L.map((R,j)=>(u.value.push(R.props.name),Cs(j!==0&&!B?_c(R):R))),!i&&c&&$?Tc(c,(P?S.length:L.length)!==0):null,B?null:D("div",{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return D("div",{ref:"tabsElRef",class:`${e}-tabs-nav-scroll-content`},$&&c?D(Ys,{onResize:this.handleTabsResize},{default:()=>q}):q,$?D("div",{class:`${e}-tabs-pad`}):null,$?null:D("div",{ref:"barElRef",class:`${e}-tabs-bar`}))},U=E?"top":n;return D("div",{class:[`${e}-tabs`,this.themeClass,`${e}-tabs--${t}-type`,`${e}-tabs--${l}-size`,B&&`${e}-tabs--flex`,`${e}-tabs--${U}`],style:this.cssVars},D("div",{class:[`${e}-tabs-nav--${t}-type`,`${e}-tabs-nav--${U}`,`${e}-tabs-nav`]},Vo(k,q=>q&&D("div",{class:`${e}-tabs-nav__prefix`},q)),E?D("div",{class:`${e}-tabs-rail`,ref:"tabsRailElRef"},P?S.map((q,R)=>(u.value.push(q.props.name),D(ll,Object.assign({},q.props,{internalCreatedByPane:!0,internalLeftPadded:R!==0}),q.children?{default:q.children.tab}:void 0))):L.map((q,R)=>(u.value.push(q.props.name),R===0?q:_c(q)))):D(Ys,{onResize:this.handleNavResize},{default:()=>D("div",{class:`${e}-tabs-nav-scroll-wrapper`,ref:"scrollWrapperElRef"},["top","bottom"].includes(U)?D(ap,{ref:"xScrollInstRef",onScroll:this.handleScroll},{default:M}):D("div",{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll},M()))}),i&&c&&$?Tc(c,!0):null,Vo(C,q=>q&&D("div",{class:`${e}-tabs-nav__suffix`},q))),P&&(this.animated&&(U==="top"||U==="bottom")?D("div",{ref:"tabsPaneWrapperRef",style:b,class:[`${e}-tabs-pane-wrapper`,f]},Ac(S,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):Ac(S,this.mergedValue,this.renderedNames)))}});function Ac(e,t,n,i,c,l,u){const h=[];return e.forEach(f=>{const{name:b,displayDirective:y,"display-directive":k}=f.props,C=L=>y===L||k===L,S=t===b;if(f.key!==void 0&&(f.key=b),S||C("show")||C("show:lazy")&&n.has(b)){n.has(b)||n.add(b);const L=!C("if");h.push(L?fi(f,[[Gu,S]]):f)}}),u?D(vf,{name:`${u}-transition`,onBeforeLeave:i,onEnter:c,onAfterEnter:l},{default:()=>h}):h}function Tc(e,t){return D(ll,{ref:"addTabInstRef",key:"__addable",name:"__addable",internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e=="object"&&e.disabled})}function _c(e){const t=gf(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function Cs(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes("internalLeftPadded")||e.dynamicProps.push("internalLeftPadded"):e.dynamicProps=["internalLeftPadded"],e}const yo=zr("n-upload"),wd="__UPLOAD_DRAGGER__",e4=Re({name:"UploadDragger",[wd]:!0,setup(e,{slots:t}){const n=Rt(yo,null);return n||Qo("upload-dragger","`n-upload-dragger` must be placed inside `n-upload`."),()=>{const{mergedClsPrefixRef:{value:i},mergedDisabledRef:{value:c},maxReachedRef:{value:l}}=n;return D("div",{class:[`${i}-upload-dragger`,(c||l)&&`${i}-upload-dragger--disabled`]},t)}}}),kd=Re({name:"UploadTrigger",props:{abstract:Boolean},setup(e,{slots:t}){const n=Rt(yo,null);n||Qo("upload-trigger","`n-upload-trigger` must be placed inside `n-upload`.");const{mergedClsPrefixRef:i,mergedDisabledRef:c,maxReachedRef:l,listTypeRef:u,dragOverRef:h,openOpenFileDialog:f,draggerInsideRef:b,handleFileAddition:y,mergedDirectoryDndRef:k,triggerClassRef:C,triggerStyleRef:S}=n,L=de(()=>u.value==="image-card");function P(){c.value||l.value||f()}function $(U){U.preventDefault(),h.value=!0}function E(U){U.preventDefault(),h.value=!0}function B(U){U.preventDefault(),h.value=!1}function M(U){var q;if(U.preventDefault(),!b.value||c.value||l.value){h.value=!1;return}const R=(q=U.dataTransfer)===null||q===void 0?void 0:q.items;R!=null&&R.length?Bf(Array.from(R).map(j=>j.webkitGetAsEntry()),k.value).then(j=>{y(j)}).finally(()=>{h.value=!1}):h.value=!1}return()=>{var U;const{value:q}=i;return e.abstract?(U=t.default)===null||U===void 0?void 0:U.call(t,{handleClick:P,handleDrop:M,handleDragOver:$,handleDragEnter:E,handleDragLeave:B}):D("div",{class:[`${q}-upload-trigger`,(c.value||l.value)&&`${q}-upload-trigger--disabled`,L.value&&`${q}-upload-trigger--image-card`,C.value],style:S.value,onClick:P,onDrop:M,onDragover:$,onDragenter:E,onDragleave:B},L.value?D(e4,null,{default:()=>gl(t.default,()=>[D(er,{clsPrefix:q},{default:()=>D(ld,null)})])}):t)}}}),t4=Re({name:"UploadProgress",props:{show:Boolean,percentage:{type:Number,required:!0},status:{type:String,required:!0}},setup(){return{mergedTheme:Rt(yo).mergedThemeRef}},render(){return D(Wu,null,{default:()=>this.show?D(sl,{type:"line",showIndicator:!1,percentage:this.percentage,status:this.status,height:2,theme:this.mergedTheme.peers.Progress,themeOverrides:this.mergedTheme.peerOverrides.Progress}):null})}}),r4=D("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 28 28"},D("g",{fill:"none"},D("path",{d:"M21.75 3A3.25 3.25 0 0 1 25 6.25v15.5A3.25 3.25 0 0 1 21.75 25H6.25A3.25 3.25 0 0 1 3 21.75V6.25A3.25 3.25 0 0 1 6.25 3h15.5zm.583 20.4l-7.807-7.68a.75.75 0 0 0-.968-.07l-.084.07l-7.808 7.68c.183.065.38.1.584.1h15.5c.204 0 .4-.035.583-.1l-7.807-7.68l7.807 7.68zM21.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v15.5c0 .208.036.408.103.593l7.82-7.692a2.25 2.25 0 0 1 3.026-.117l.129.117l7.82 7.692c.066-.185.102-.385.102-.593V6.25a1.75 1.75 0 0 0-1.75-1.75zm-3.25 3a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5zm0 1.5a1 1 0 1 0 0 2a1 1 0 0 0 0-2z",fill:"currentColor"}))),n4=D("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 28 28"},D("g",{fill:"none"},D("path",{d:"M6.4 2A2.4 2.4 0 0 0 4 4.4v19.2A2.4 2.4 0 0 0 6.4 26h15.2a2.4 2.4 0 0 0 2.4-2.4V11.578c0-.729-.29-1.428-.805-1.944l-6.931-6.931A2.4 2.4 0 0 0 14.567 2H6.4zm-.9 2.4a.9.9 0 0 1 .9-.9H14V10a2 2 0 0 0 2 2h6.5v11.6a.9.9 0 0 1-.9.9H6.4a.9.9 0 0 1-.9-.9V4.4zm16.44 6.1H16a.5.5 0 0 1-.5-.5V4.06l6.44 6.44z",fill:"currentColor"})));var o4=globalThis&&globalThis.__awaiter||function(e,t,n,i){function c(l){return l instanceof n?l:new n(function(u){u(l)})}return new(n||(n=Promise))(function(l,u){function h(y){try{b(i.next(y))}catch(k){u(k)}}function f(y){try{b(i.throw(y))}catch(k){u(k)}}function b(y){y.done?l(y.value):c(y.value).then(h,f)}b((i=i.apply(e,t||[])).next())})};const qa={paddingMedium:"0 3px",heightMedium:"24px",iconSizeMedium:"18px"},a4=Re({name:"UploadFile",props:{clsPrefix:{type:String,required:!0},file:{type:Object,required:!0},listType:{type:String,required:!0}},setup(e){const t=Rt(yo),n=te(null),i=te(""),c=de(()=>{const{file:q}=e;return q.status==="finished"?"success":q.status==="error"?"error":"info"}),l=de(()=>{const{file:q}=e;if(q.status==="error")return"error"}),u=de(()=>{const{file:q}=e;return q.status==="uploading"}),h=de(()=>{if(!t.showCancelButtonRef.value)return!1;const{file:q}=e;return["uploading","pending","error"].includes(q.status)}),f=de(()=>{if(!t.showRemoveButtonRef.value)return!1;const{file:q}=e;return["finished"].includes(q.status)}),b=de(()=>{if(!t.showDownloadButtonRef.value)return!1;const{file:q}=e;return["finished"].includes(q.status)}),y=de(()=>{if(!t.showRetryButtonRef.value)return!1;const{file:q}=e;return["error"].includes(q.status)}),k=Dn(()=>i.value||e.file.thumbnailUrl||e.file.url),C=de(()=>{if(!t.showPreviewButtonRef.value)return!1;const{file:{status:q},listType:R}=e;return["finished"].includes(q)&&k.value&&R==="image-card"});function S(){t.submit(e.file.id)}function L(q){q.preventDefault();const{file:R}=e;["finished","pending","error"].includes(R.status)?$(R):["uploading"].includes(R.status)?B(R):hi("upload","The button clicked type is unknown.")}function P(q){q.preventDefault(),E(e.file)}function $(q){const{xhrMap:R,doChange:j,onRemoveRef:{value:ie},mergedFileListRef:{value:X}}=t;Promise.resolve(ie?ie({file:Object.assign({},q),fileList:X}):!0).then(oe=>{if(oe===!1)return;const Z=Object.assign({},q,{status:"removed"});R.delete(q.id),j(Z,void 0,{remove:!0})})}function E(q){const{onDownloadRef:{value:R}}=t;Promise.resolve(R?R(Object.assign({},q)):!0).then(j=>{j!==!1&&If(q.url,q.name)})}function B(q){const{xhrMap:R}=t,j=R.get(q.id);j==null||j.abort(),$(Object.assign({},q))}function M(){const{onPreviewRef:{value:q}}=t;if(q)q(e.file);else if(e.listType==="image-card"){const{value:R}=n;if(!R)return;R.click()}}const U=()=>o4(this,void 0,void 0,function*(){const{listType:q}=e;q!=="image"&&q!=="image-card"||t.shouldUseThumbnailUrlRef.value(e.file)&&(i.value=yield t.getFileThumbnailUrlResolver(e.file))});return go(()=>{U()}),{mergedTheme:t.mergedThemeRef,progressStatus:c,buttonType:l,showProgress:u,disabled:t.mergedDisabledRef,showCancelButton:h,showRemoveButton:f,showDownloadButton:b,showRetryButton:y,showPreviewButton:C,mergedThumbnailUrl:k,shouldUseThumbnailUrl:t.shouldUseThumbnailUrlRef,renderIcon:t.renderIconRef,imageRef:n,handleRemoveOrCancelClick:L,handleDownloadClick:P,handleRetryClick:S,handlePreviewClick:M}},render(){const{clsPrefix:e,mergedTheme:t,listType:n,file:i,renderIcon:c}=this;let l;const u=n==="image";u||n==="image-card"?l=!this.shouldUseThumbnailUrl(i)||!this.mergedThumbnailUrl?D("span",{class:`${e}-upload-file-info__thumbnail`},c?c(i):Ju(i)?D(er,{clsPrefix:e},{default:()=>r4}):D(er,{clsPrefix:e},{default:()=>n4})):D("a",{rel:"noopener noreferer",target:"_blank",href:i.url||void 0,class:`${e}-upload-file-info__thumbnail`,onClick:this.handlePreviewClick},n==="image-card"?D(Qu,{src:this.mergedThumbnailUrl||void 0,previewSrc:i.url||void 0,alt:i.name,ref:"imageRef"}):D("img",{src:this.mergedThumbnailUrl||void 0,alt:i.name})):l=D("span",{class:`${e}-upload-file-info__thumbnail`},c?c(i):D(er,{clsPrefix:e},{default:()=>D(xp,null)}));const f=D(t4,{show:this.showProgress,percentage:i.percentage||0,status:this.progressStatus}),b=n==="text"||n==="image";return D("div",{class:[`${e}-upload-file`,`${e}-upload-file--${this.progressStatus}-status`,i.url&&i.status!=="error"&&n!=="image-card"&&`${e}-upload-file--with-url`,`${e}-upload-file--${n}-type`]},D("div",{class:`${e}-upload-file-info`},l,D("div",{class:`${e}-upload-file-info__name`},b&&(i.url&&i.status!=="error"?D("a",{rel:"noopener noreferer",target:"_blank",href:i.url||void 0,onClick:this.handlePreviewClick},i.name):D("span",{onClick:this.handlePreviewClick},i.name)),u&&f),D("div",{class:[`${e}-upload-file-info__action`,`${e}-upload-file-info__action--${n}-type`]},this.showPreviewButton?D(Dt,{key:"preview",quaternary:!0,type:this.buttonType,onClick:this.handlePreviewClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:qa},{icon:()=>D(er,{clsPrefix:e},{default:()=>D(Wf,null)})}):null,(this.showRemoveButton||this.showCancelButton)&&!this.disabled&&D(Dt,{key:"cancelOrTrash",theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,quaternary:!0,builtinThemeOverrides:qa,type:this.buttonType,onClick:this.handleRemoveOrCancelClick},{icon:()=>D(qu,null,{default:()=>this.showRemoveButton?D(er,{clsPrefix:e,key:"trash"},{default:()=>D(wp,null)}):D(er,{clsPrefix:e,key:"cancel"},{default:()=>D(Sp,null)})})}),this.showRetryButton&&!this.disabled&&D(Dt,{key:"retry",quaternary:!0,type:this.buttonType,onClick:this.handleRetryClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:qa},{icon:()=>D(er,{clsPrefix:e},{default:()=>D(Cp,null)})}),this.showDownloadButton?D(Dt,{key:"download",quaternary:!0,type:this.buttonType,onClick:this.handleDownloadClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:qa},{icon:()=>D(er,{clsPrefix:e},{default:()=>D(kp,null)})}):null)),!u&&f)}}),i4=Re({name:"UploadFileList",setup(e,{slots:t}){const n=Rt(yo,null);n||Qo("upload-file-list","`n-upload-file-list` must be placed inside `n-upload`.");const{abstractRef:i,mergedClsPrefixRef:c,listTypeRef:l,mergedFileListRef:u,fileListClassRef:h,fileListStyleRef:f,cssVarsRef:b,themeClassRef:y,maxReachedRef:k,showTriggerRef:C,imageGroupPropsRef:S}=n,L=de(()=>l.value==="image-card"),P=()=>u.value.map(E=>D(a4,{clsPrefix:c.value,key:E.id,file:E,listType:l.value})),$=()=>L.value?D(Pf,Object.assign({},S.value),{default:P}):D(Wu,{group:!0},{default:P});return()=>{const{value:E}=c,{value:B}=i;return D("div",{class:[`${E}-upload-file-list`,L.value&&`${E}-upload-file-list--grid`,B?y==null?void 0:y.value:void 0,h.value],style:[B&&b?b.value:"",f.value]},$(),C.value&&!k.value&&L.value&&D(kd,null,t))}}}),s4=he([O("upload","width: 100%;",[le("dragger-inside",[O("upload-trigger",` - display: block; - `)]),le("drag-over",[O("upload-dragger",` - border: var(--n-dragger-border-hover); - `)])]),O("upload-dragger",` - cursor: pointer; - box-sizing: border-box; - width: 100%; - text-align: center; - border-radius: var(--n-border-radius); - padding: 24px; - opacity: 1; - transition: - opacity .3s var(--n-bezier), - border-color .3s var(--n-bezier), - background-color .3s var(--n-bezier); - background-color: var(--n-dragger-color); - border: var(--n-dragger-border); - `,[he("&:hover",` - border: var(--n-dragger-border-hover); - `),le("disabled",` - cursor: not-allowed; - `)]),O("upload-trigger",` - display: inline-block; - box-sizing: border-box; - opacity: 1; - transition: opacity .3s var(--n-bezier); - `,[he("+",[O("upload-file-list","margin-top: 8px;")]),le("disabled",` - opacity: var(--n-item-disabled-opacity); - cursor: not-allowed; - `),le("image-card",` - width: 96px; - height: 96px; - `,[O("base-icon",` - font-size: 24px; - `),O("upload-dragger",` - padding: 0; - height: 100%; - width: 100%; - display: flex; - align-items: center; - justify-content: center; - `)])]),O("upload-file-list",` - line-height: var(--n-line-height); - opacity: 1; - transition: opacity .3s var(--n-bezier); - `,[he("a, img","outline: none;"),le("disabled",` - opacity: var(--n-item-disabled-opacity); - cursor: not-allowed; - `,[O("upload-file","cursor: not-allowed;")]),le("grid",` - display: grid; - grid-template-columns: repeat(auto-fill, 96px); - grid-gap: 8px; - margin-top: 0; - `),O("upload-file",` - display: block; - box-sizing: border-box; - cursor: default; - padding: 0px 12px 0 6px; - transition: background-color .3s var(--n-bezier); - border-radius: var(--n-border-radius); - `,[dc(),O("progress",[dc({foldPadding:!0})]),he("&:hover",` - background-color: var(--n-item-color-hover); - `,[O("upload-file-info",[we("action",` - opacity: 1; - `)])]),le("image-type",` - border-radius: var(--n-border-radius); - text-decoration: underline; - text-decoration-color: #0000; - `,[O("upload-file-info",` - padding-top: 0px; - padding-bottom: 0px; - width: 100%; - height: 100%; - display: flex; - justify-content: space-between; - align-items: center; - padding: 6px 0; - `,[O("progress",` - padding: 2px 0; - margin-bottom: 0; - `),we("name",` - padding: 0 8px; - `),we("thumbnail",` - width: 32px; - height: 32px; - font-size: 28px; - display: flex; - justify-content: center; - align-items: center; - `,[he("img",` - width: 100%; - `)])])]),le("text-type",[O("progress",` - box-sizing: border-box; - padding-bottom: 6px; - margin-bottom: 6px; - `)]),le("image-card-type",` - position: relative; - width: 96px; - height: 96px; - border: var(--n-item-border-image-card); - border-radius: var(--n-border-radius); - padding: 0; - display: flex; - align-items: center; - justify-content: center; - transition: border-color .3s var(--n-bezier), background-color .3s var(--n-bezier); - border-radius: var(--n-border-radius); - overflow: hidden; - `,[O("progress",` - position: absolute; - left: 8px; - bottom: 8px; - right: 8px; - width: unset; - `),O("upload-file-info",` - padding: 0; - width: 100%; - height: 100%; - `,[we("thumbnail",` - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: 36px; - `,[he("img",` - width: 100%; - `)])]),he("&::before",` - position: absolute; - z-index: 1; - left: 0; - right: 0; - top: 0; - bottom: 0; - border-radius: inherit; - opacity: 0; - transition: opacity .2s var(--n-bezier); - content: ""; - `),he("&:hover",[he("&::before","opacity: 1;"),O("upload-file-info",[we("thumbnail","opacity: .12;")])])]),le("error-status",[he("&:hover",` - background-color: var(--n-item-color-hover-error); - `),O("upload-file-info",[we("name","color: var(--n-item-text-color-error);"),we("thumbnail","color: var(--n-item-text-color-error);")]),le("image-card-type",` - border: var(--n-item-border-image-card-error); - `)]),le("with-url",` - cursor: pointer; - `,[O("upload-file-info",[we("name",` - color: var(--n-item-text-color-success); - text-decoration-color: var(--n-item-text-color-success); - `,[he("a",` - text-decoration: underline; - `)])])]),O("upload-file-info",` - position: relative; - padding-top: 6px; - padding-bottom: 6px; - display: flex; - flex-wrap: nowrap; - `,[we("thumbnail",` - font-size: 18px; - opacity: 1; - transition: opacity .2s var(--n-bezier); - color: var(--n-item-icon-color); - `,[O("base-icon",` - margin-right: 2px; - vertical-align: middle; - transition: color .3s var(--n-bezier); - `)]),we("action",` - padding-top: inherit; - padding-bottom: inherit; - position: absolute; - right: 0; - top: 0; - bottom: 0; - width: 80px; - display: flex; - align-items: center; - transition: opacity .2s var(--n-bezier); - justify-content: flex-end; - opacity: 0; - `,[O("button",[he("&:not(:last-child)",{marginRight:"4px"}),O("base-icon",[he("svg",[Nu()])])]),le("image-type",` - position: relative; - max-width: 80px; - width: auto; - `),le("image-card-type",` - z-index: 2; - position: absolute; - width: 100%; - height: 100%; - left: 0; - right: 0; - bottom: 0; - top: 0; - display: flex; - justify-content: center; - align-items: center; - `)]),we("name",` - color: var(--n-item-text-color); - flex: 1; - display: flex; - justify-content: center; - text-overflow: ellipsis; - overflow: hidden; - flex-direction: column; - text-decoration-color: #0000; - font-size: var(--n-font-size); - transition: - color .3s var(--n-bezier), - text-decoration-color .3s var(--n-bezier); - `,[he("a",` - color: inherit; - text-decoration: underline; - `)])])])]),O("upload-file-input",` - display: block; - width: 0; - height: 0; - opacity: 0; - `)]);var Dc=globalThis&&globalThis.__awaiter||function(e,t,n,i){function c(l){return l instanceof n?l:new n(function(u){u(l)})}return new(n||(n=Promise))(function(l,u){function h(y){try{b(i.next(y))}catch(k){u(k)}}function f(y){try{b(i.throw(y))}catch(k){u(k)}}function b(y){y.done?l(y.value):c(y.value).then(h,f)}b((i=i.apply(e,t||[])).next())})};function l4(e,t,n){const{doChange:i,xhrMap:c}=e;let l=0;function u(f){var b;let y=Object.assign({},t,{status:"error",percentage:l});c.delete(t.id),y=Go(((b=e.onError)===null||b===void 0?void 0:b.call(e,{file:y,event:f}))||y),i(y,f)}function h(f){var b;if(e.isErrorState){if(e.isErrorState(n)){u(f);return}}else if(n.status<200||n.status>=300){u(f);return}let y=Object.assign({},t,{status:"finished",percentage:l});c.delete(t.id),y=Go(((b=e.onFinish)===null||b===void 0?void 0:b.call(e,{file:y,event:f}))||y),i(y,f)}return{handleXHRLoad:h,handleXHRError:u,handleXHRAbort(f){const b=Object.assign({},t,{status:"removed",file:null,percentage:l});c.delete(t.id),i(b,f)},handleXHRProgress(f){const b=Object.assign({},t,{status:"uploading"});if(f.lengthComputable){const y=Math.ceil(f.loaded/f.total*100);b.percentage=y,l=y}i(b,f)}}}function c4(e){const{inst:t,file:n,data:i,headers:c,withCredentials:l,action:u,customRequest:h}=e,{doChange:f}=e.inst;let b=0;h({file:n,data:i,headers:c,withCredentials:l,action:u,onProgress(y){const k=Object.assign({},n,{status:"uploading"}),C=y.percent;k.percentage=C,b=C,f(k)},onFinish(){var y;let k=Object.assign({},n,{status:"finished",percentage:b});k=Go(((y=t.onFinish)===null||y===void 0?void 0:y.call(t,{file:k}))||k),f(k)},onError(){var y;let k=Object.assign({},n,{status:"error",percentage:b});k=Go(((y=t.onError)===null||y===void 0?void 0:y.call(t,{file:k}))||k),f(k)}})}function u4(e,t,n){const i=l4(e,t,n);n.onabort=i.handleXHRAbort,n.onerror=i.handleXHRError,n.onload=i.handleXHRLoad,n.upload&&(n.upload.onprogress=i.handleXHRProgress)}function Sd(e,t){return typeof e=="function"?e({file:t}):e||{}}function d4(e,t,n){const i=Sd(t,n);i&&Object.keys(i).forEach(c=>{e.setRequestHeader(c,i[c])})}function h4(e,t,n){const i=Sd(t,n);i&&Object.keys(i).forEach(c=>{e.append(c,i[c])})}function f4(e,t,n,{method:i,action:c,withCredentials:l,responseType:u,headers:h,data:f}){const b=new XMLHttpRequest;b.responseType=u,e.xhrMap.set(n.id,b),b.withCredentials=l;const y=new FormData;if(h4(y,f,n),n.file!==null&&y.append(t,n.file),u4(e,n,b),c!==void 0){b.open(i.toUpperCase(),c),d4(b,h,n),b.send(y);const k=Object.assign({},n,{status:"uploading"});e.doChange(k)}}const p4=Object.assign(Object.assign({},dt.props),{name:{type:String,default:"file"},accept:String,action:String,customRequest:Function,directory:Boolean,directoryDnd:{type:Boolean,default:void 0},method:{type:String,default:"POST"},multiple:Boolean,showFileList:{type:Boolean,default:!0},data:[Object,Function],headers:[Object,Function],withCredentials:Boolean,responseType:{type:String,default:""},disabled:{type:Boolean,default:void 0},onChange:Function,onRemove:Function,onFinish:Function,onError:Function,onBeforeUpload:Function,isErrorState:Function,onDownload:Function,defaultUpload:{type:Boolean,default:!0},fileList:Array,"onUpdate:fileList":[Function,Array],onUpdateFileList:[Function,Array],fileListClass:String,fileListStyle:[String,Object],defaultFileList:{type:Array,default:()=>[]},showCancelButton:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showDownloadButton:Boolean,showRetryButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},listType:{type:String,default:"text"},onPreview:Function,shouldUseThumbnailUrl:{type:Function,default:e=>Nf?Ju(e):!1},createThumbnailUrl:Function,abstract:Boolean,max:Number,showTrigger:{type:Boolean,default:!0},imageGroupProps:Object,inputProps:Object,triggerClass:String,triggerStyle:[String,Object],renderIcon:Function}),m4=Re({name:"Upload",props:p4,setup(e){e.abstract&&e.listType==="image-card"&&Qo("upload","when the list-type is image-card, abstract is not supported.");const{mergedClsPrefixRef:t,inlineThemeDisabled:n}=Ut(e),i=dt("Upload","-upload",s4,yf,e,t),c=Jo(e),l=de(()=>{const{max:X}=e;return X!==void 0?S.value.length>=X:!1}),u=te(e.defaultFileList),h=Ue(e,"fileList"),f=te(null),b={value:!1},y=te(!1),k=new Map,C=Vr(h,u),S=de(()=>C.value.map(Go));function L(){var X;(X=f.value)===null||X===void 0||X.click()}function P(X){const oe=X.target;B(oe.files?Array.from(oe.files).map(Z=>({file:Z,entry:null,source:"input"})):null,X),oe.value=""}function $(X){const{"onUpdate:fileList":oe,onUpdateFileList:Z}=e;oe&&Je(oe,X),Z&&Je(Z,X),u.value=X}const E=de(()=>e.multiple||e.directory);function B(X,oe){if(!X||X.length===0)return;const{onBeforeUpload:Z}=e;X=E.value?X:[X[0]];const{max:ee,accept:ne}=e;X=X.filter(({file:ae,source:me})=>me==="dnd"&&(ne!=null&&ne.trim())?qf(ae.name,ae.type,ne):!0),ee&&(X=X.slice(0,ee-S.value.length));const V=Qs();Promise.all(X.map(({file:ae,entry:me})=>Dc(this,void 0,void 0,function*(){var Ce;const Le={id:Qs(),batchId:V,name:ae.name,status:"pending",percentage:0,file:ae,url:null,type:ae.type,thumbnailUrl:null,fullPath:(Ce=me==null?void 0:me.fullPath)!==null&&Ce!==void 0?Ce:`/${ae.webkitRelativePath||ae.name}`};return!Z||(yield Z({file:Le,fileList:S.value}))!==!1?Le:null}))).then(ae=>Dc(this,void 0,void 0,function*(){let me=Promise.resolve();ae.forEach(Ce=>{me=me.then(An).then(()=>{Ce&&U(Ce,oe,{append:!0})})}),yield me})).then(()=>{e.defaultUpload&&M()})}function M(X){const{method:oe,action:Z,withCredentials:ee,headers:ne,data:V,name:ae}=e,me=X!==void 0?S.value.filter(Le=>Le.id===X):S.value,Ce=X!==void 0;me.forEach(Le=>{const{status:ht}=Le;(ht==="pending"||ht==="error"&&Ce)&&(e.customRequest?c4({inst:{doChange:U,xhrMap:k,onFinish:e.onFinish,onError:e.onError},file:Le,action:Z,withCredentials:ee,headers:ne,data:V,customRequest:e.customRequest}):f4({doChange:U,xhrMap:k,onFinish:e.onFinish,onError:e.onError,isErrorState:e.isErrorState},ae,Le,{method:oe,action:Z,withCredentials:ee,responseType:e.responseType,headers:ne,data:V}))})}const U=(X,oe,Z={append:!1,remove:!1})=>{const{append:ee,remove:ne}=Z,V=Array.from(S.value),ae=V.findIndex(me=>me.id===X.id);if(ee||ne||~ae){ee?V.push(X):ne?V.splice(ae,1):V.splice(ae,1,X);const{onChange:me}=e;me&&me({file:X,fileList:V,event:oe}),$(V)}};function q(X){var oe;if(X.thumbnailUrl)return X.thumbnailUrl;const{createThumbnailUrl:Z}=e;return Z?(oe=Z(X.file,X))!==null&&oe!==void 0?oe:X.url||"":X.url?X.url:X.file?Ff(X.file):""}const R=de(()=>{const{common:{cubicBezierEaseInOut:X},self:{draggerColor:oe,draggerBorder:Z,draggerBorderHover:ee,itemColorHover:ne,itemColorHoverError:V,itemTextColorError:ae,itemTextColorSuccess:me,itemTextColor:Ce,itemIconColor:Le,itemDisabledOpacity:ht,lineHeight:gt,borderRadius:De,fontSize:ve,itemBorderImageCardError:Ee,itemBorderImageCard:Se}}=i.value;return{"--n-bezier":X,"--n-border-radius":De,"--n-dragger-border":Z,"--n-dragger-border-hover":ee,"--n-dragger-color":oe,"--n-font-size":ve,"--n-item-color-hover":ne,"--n-item-color-hover-error":V,"--n-item-disabled-opacity":ht,"--n-item-icon-color":Le,"--n-item-text-color":Ce,"--n-item-text-color-error":ae,"--n-item-text-color-success":me,"--n-line-height":gt,"--n-item-border-image-card-error":Ee,"--n-item-border-image-card":Se}}),j=n?kr("upload",void 0,R,e):void 0;xr(yo,{mergedClsPrefixRef:t,mergedThemeRef:i,showCancelButtonRef:Ue(e,"showCancelButton"),showDownloadButtonRef:Ue(e,"showDownloadButton"),showRemoveButtonRef:Ue(e,"showRemoveButton"),showRetryButtonRef:Ue(e,"showRetryButton"),onRemoveRef:Ue(e,"onRemove"),onDownloadRef:Ue(e,"onDownload"),mergedFileListRef:S,triggerClassRef:Ue(e,"triggerClass"),triggerStyleRef:Ue(e,"triggerStyle"),shouldUseThumbnailUrlRef:Ue(e,"shouldUseThumbnailUrl"),renderIconRef:Ue(e,"renderIcon"),xhrMap:k,submit:M,doChange:U,showPreviewButtonRef:Ue(e,"showPreviewButton"),onPreviewRef:Ue(e,"onPreview"),getFileThumbnailUrlResolver:q,listTypeRef:Ue(e,"listType"),dragOverRef:y,openOpenFileDialog:L,draggerInsideRef:b,handleFileAddition:B,mergedDisabledRef:c.mergedDisabledRef,maxReachedRef:l,fileListClassRef:Ue(e,"fileListClass"),fileListStyleRef:Ue(e,"fileListStyle"),abstractRef:Ue(e,"abstract"),acceptRef:Ue(e,"accept"),cssVarsRef:n?void 0:R,themeClassRef:j==null?void 0:j.themeClass,onRender:j==null?void 0:j.onRender,showTriggerRef:Ue(e,"showTrigger"),imageGroupPropsRef:Ue(e,"imageGroupProps"),mergedDirectoryDndRef:de(()=>{var X;return(X=e.directoryDnd)!==null&&X!==void 0?X:e.directory})});const ie={clear:()=>{u.value=[]},submit:M,openOpenFileDialog:L};return Object.assign({mergedClsPrefix:t,draggerInsideRef:b,inputElRef:f,mergedTheme:i,dragOver:y,mergedMultiple:E,cssVars:n?void 0:R,themeClass:j==null?void 0:j.themeClass,onRender:j==null?void 0:j.onRender,handleFileInputChange:P},ie)},render(){var e,t;const{draggerInsideRef:n,mergedClsPrefix:i,$slots:c,directory:l,onRender:u}=this;if(c.default&&!this.abstract){const f=c.default()[0];!((e=f==null?void 0:f.type)===null||e===void 0)&&e[wd]&&(n.value=!0)}const h=D("input",Object.assign({},this.inputProps,{ref:"inputElRef",type:"file",class:`${i}-upload-file-input`,accept:this.accept,multiple:this.mergedMultiple,onChange:this.handleFileInputChange,webkitdirectory:l||void 0,directory:l||void 0}));return this.abstract?D(cr,null,(t=c.default)===null||t===void 0?void 0:t.call(c),D(bf,{to:"body"},h)):(u==null||u(),D("div",{class:[`${i}-upload`,n.value&&`${i}-upload--dragger-inside`,this.dragOver&&`${i}-upload--drag-over`,this.themeClass],style:this.cssVars},h,this.showTrigger&&this.listType!=="image-card"&&D(kd,null,c),this.showFileList&&D(i4,null,c)))}}),v4=["src"],cl=Re({__name:"index",props:{itemIcon:null,size:{default:70},forceBackground:null},setup(e){const t=e,n="#2a2a2a6b",i=te({width:`${t.size}px`,height:`${t.size}px`}),c=de(()=>{var l,u;return(u=(l=t.itemIcon)==null?void 0:l.src)==null?void 0:u.split(".").pop()});return(l,u)=>(pe(),Pe("div",{class:"item-icon",style:mt(i.value)},[fo(l.$slots,"default",{},()=>{var h,f,b,y,k,C,S,L,P;return[e.itemIcon?(pe(),Pe(cr,{key:0},[((h=e.itemIcon)==null?void 0:h.itemType)===1?(pe(),pt(_(qo),{key:0,size:t.size,style:mt({backgroundColor:(e.forceBackground??((f=e.itemIcon)==null?void 0:f.backgroundColor))||n})},{default:xe(()=>[sr(ot(e.itemIcon.text),1)]),_:1},8,["size","style"])):((b=e.itemIcon)==null?void 0:b.itemType)===2?(pe(),Pe(cr,{key:1},[_(c)==="svg"?(pe(),Pe("div",{key:0,style:mt({backgroundColor:(e.forceBackground??((y=e.itemIcon)==null?void 0:y.backgroundColor))||n,...i.value}),class:"flex justify-center items-center"},[fe("img",{src:(k=e.itemIcon)==null?void 0:k.src,class:"w-[35px] h-[35px]"},null,8,v4)],4)):(pe(),pt(_(Qu),{key:1,style:mt({backgroundColor:(e.forceBackground??((C=e.itemIcon)==null?void 0:C.backgroundColor))||n,...i.value}),src:(S=e.itemIcon)==null?void 0:S.src,"preview-disabled":""},null,8,["style","src"]))],64)):((L=e.itemIcon)==null?void 0:L.itemType)===3?(pe(),pt(_(qo),{key:2,size:t.size,style:mt({backgroundColor:(e.forceBackground??((P=e.itemIcon)==null?void 0:P.backgroundColor))||n})},{default:xe(()=>[K(_(g4),{style:{"font-size":"35px"},icon:e.itemIcon.text},null,8,["icon"])]),_:1},8,["size","style"])):Xe("",!0)],64)):(pe(),pt(_(qo),{key:1,size:t.size},null,8,["size"]))]})],4))}}),g4=Re({__name:"index",props:{icon:null},setup(e){const t=Xu(),n=de(()=>({class:t.class||"",style:t.style||""}));return(i,c)=>(pe(),pt(_(xf),Xn({icon:e.icon??""},_(n)),null,16,["icon"]))}}),b4=(e,t)=>{const n=e[t];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((i,c)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(c.bind(null,new Error("Unknown variable dynamic import: "+t)))})},y4={class:"h-full"},x4={key:1},w4=Re({__name:"index",props:{componentName:null},setup(e){const t=e,n=hc(!1),i=hc("");function c(){n.value=!0,i.value=kf(()=>b4(Object.assign({"../../apps/About/index.vue":()=>Pn(()=>import("./index-b57a7b1c.js"),["assets/index-b57a7b1c.js","assets/about-2688cabc.js","assets/index-7e19b821.js","assets/index-f036cca6.css","assets/index-b1d3d9b0.js","assets/index-c238f14b.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/GradientText-44d798c5.js","assets/index-2b595d91.js","assets/Divider-a11d112a.js","assets/index-36cf7848.css"]),"../../apps/ImportExport/index.vue":()=>Pn(()=>import("./index-bb41db9d.js"),["assets/index-bb41db9d.js","assets/index-c238f14b.js","assets/index-7e19b821.js","assets/index-f036cca6.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-b1d3d9b0.js","assets/about-2688cabc.js","assets/Alert-018ca7af.js","assets/index-2b595d91.js","assets/Divider-a11d112a.js"]),"../../apps/ItemGroupManage/index.vue":()=>Pn(()=>import("./index-85275cb2.js"),["assets/index-85275cb2.js","assets/index-c238f14b.js","assets/index-7e19b821.js","assets/index-f036cca6.css","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-b1d3d9b0.js","assets/index-2b595d91.js"]),"../../apps/Style/index.vue":()=>Pn(()=>import("./index-93265a97.js"),["assets/index-93265a97.js","assets/index-7e19b821.js","assets/index-f036cca6.css","assets/index-c238f14b.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-2b595d91.js","assets/index-b1d3d9b0.js","assets/index-8886367f.css"]),"../../apps/UploadFileManager/index.vue":()=>Pn(()=>import("./index-d074e84b.js").then(l=>l.i),["assets/index-d074e84b.js","assets/index-7e19b821.js","assets/index-f036cca6.css","assets/index-c238f14b.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-b1d3d9b0.js","assets/Alert-018ca7af.js","assets/index-d715da4a.css"]),"../../apps/UserInfo/index.vue":()=>Pn(()=>import("./index-8a6943bf.js"),["assets/index-8a6943bf.js","assets/index-7e19b821.js","assets/index-f036cca6.css","assets/index-2b595d91.js","assets/index-c238f14b.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-8f0537f1.js","assets/index-b1d3d9b0.js","assets/Divider-a11d112a.js"]),"../../apps/Users/index.vue":()=>Pn(()=>import("./index-b1580adf.js"),["assets/index-b1580adf.js","assets/index-7e19b821.js","assets/index-f036cca6.css","assets/index-b1d3d9b0.js","assets/index-c238f14b.js","assets/_plugin-vue_export-helper-c27b6911.js","assets/index-2b595d91.js","assets/Alert-018ca7af.js"])}),`../../apps/${t.componentName}/index.vue`).finally(()=>{n.value=!1}).catch(()=>(i.value="",null)))}return tr(()=>t.componentName,()=>{c()}),dr(()=>{c()}),(l,u)=>(pe(),Pe("div",y4,[K(_(ed),{show:_(n),style:{height:"100%"},"content-style":"height: 100%;",delay:500,description:"loading..."},{default:xe(()=>[_(i)?(pe(),pt(wf(_(i)),{key:0})):_(i)?Xe("",!0):(pe(),Pe("div",x4," Component not found! "))]),_:1},8,["show"])]))}}),k4={class:"item-card w-full"},S4={key:1,class:"item-card-small"},C4=Re({__name:"index",props:{cardTypeStyle:null,class:null,backgroundColor:null,iconTextIconHideTitle:{type:Boolean},iconTextColor:null,iconText:null},setup(e){const t=e,n="#2a2a2a6b",i=te(t.class);return(c,l)=>(pe(),Pe("div",k4,[e.cardTypeStyle===_(xt).info?(pe(),Pe("div",{key:0,class:yr(["item-card-info w-full rounded-2xl transition-all duration-200 flex",i.value]),style:mt({backgroundColor:e.backgroundColor??n})},[fo(c.$slots,"info")],6)):Xe("",!0),e.cardTypeStyle===_(xt).icon?(pe(),Pe("div",S4,[fe("div",{class:yr(["item-card-small-icon overflow-hidden rounded-2xl sunpanel w-[70px] h-[70px] mx-auto transition-all duration-200",i.value]),style:mt({backgroundColor:e.backgroundColor??n})},[fo(c.$slots,"small")],6),e.iconTextIconHideTitle?Xe("",!0):(pe(),Pe("div",{key:0,class:"item-card-small-title text-center app-icon-text-shadow cursor-pointer mt-[2px]",style:mt({color:e.iconTextColor})},ot(e.iconText),5))])):Xe("",!0)]))}});function XQ(e){return rr({url:"/panel/itemIconGroup/edit",data:e})}function Cd(){return rr({url:"/panel/itemIconGroup/getList"})}function YQ(e){return rr({url:"/panel/itemIconGroup/deletes",data:{ids:e}})}function KQ(e){return rr({url:"/panel/itemIconGroup/saveSort",data:{sortItems:e}})}function ZQ(e){return rr({url:"/panel/itemIcon/addMultiple",data:e})}function A4(e){return rr({url:"/panel/itemIcon/edit",data:e})}function T4(e){return rr({url:"/panel/itemIcon/getListByGroupId",data:{itemIconGroupId:e}})}function _4(e){return rr({url:"/panel/itemIcon/deletes",data:{ids:e}})}function D4(e){return rr({url:"/panel/itemIcon/saveSort",data:e})}function z4(e){return rr({url:"/panel/itemIcon/getSiteFavicon",data:{url:e}})}var E4=Object.defineProperty,ti=Object.getOwnPropertySymbols,Ad=Object.prototype.hasOwnProperty,Td=Object.prototype.propertyIsEnumerable,zc=(e,t,n)=>t in e?E4(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,co=(e,t)=>{for(var n in t||(t={}))Ad.call(t,n)&&zc(e,n,t[n]);if(ti)for(var n of ti(t))Td.call(t,n)&&zc(e,n,t[n]);return e},_d=(e,t)=>{var n={};for(var i in e)Ad.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&ti)for(var i of ti(e))t.indexOf(i)<0&&Td.call(e,i)&&(n[i]=e[i]);return n};const Dd="[vue-draggable-plus]: ";function R4(e){console.warn(Dd+e)}function M4(e){console.error(Dd+e)}function Ec(e,t,n){return n>=0&&nn?n.toUpperCase():"")}function I4(e){return Object.keys(e).reduce((t,n)=>(typeof e[n]<"u"&&(t[B4(n)]=e[n]),t),{})}function P4(e,t){if(Array.isArray(e))return e.splice(t,1)}function N4(e,t,n){if(Array.isArray(e))return e.splice(t,0,n)}function q4(e){return typeof e>"u"}function F4(e){return typeof e=="string"}function Rc(e,t,n){const i=e.children[n];e.insertBefore(t,i)}function As(e){e.parentNode&&e.parentNode.removeChild(e)}function L4(e,t=document){var n;let i=null;return typeof(t==null?void 0:t.querySelector)=="function"?i=(n=t==null?void 0:t.querySelector)==null?void 0:n.call(t,e):i=document.querySelector(e),i||R4(`Element not found: ${e}`),i}function $4(e,t,n=null){return function(...i){return e.apply(n,i),t.apply(n,i)}}function O4(e,t){const n=co({},e);return Object.keys(t).forEach(i=>{n[i]?n[i]=$4(e[i],t[i]):n[i]=t[i]}),n}function U4(e){return e instanceof HTMLElement}function H4(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}/**! - * Sortable 1.15.0 - * @author RubaXa - * @author owenm - * @license MIT - */function Mc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(c){return Object.getOwnPropertyDescriptor(e,c).enumerable})),n.push.apply(n,i)}return n}function jr(e){for(var t=1;t=0)&&(n[c]=e[c]);return n}function G4(e,t){if(e==null)return{};var n=j4(e,t),i,c;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(c=0;c=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var W4="1.15.0";function on(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var sn=on(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),ra=on(/Edge/i),Bc=on(/firefox/i),Fo=on(/safari/i)&&!on(/chrome/i)&&!on(/android/i),zd=on(/iP(ad|od|hone)/i),Ed=on(/chrome/i)&&on(/android/i),Rd={capture:!1,passive:!1};function at(e,t,n){e.addEventListener(t,n,!sn&&Rd)}function tt(e,t,n){e.removeEventListener(t,n,!sn&&Rd)}function ri(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function X4(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Lr(e,t,n,i){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&ri(e,t):ri(e,t))||i&&e===n)return e;if(e===n)break}while(e=X4(e))}return null}var Ic=/\s+/g;function ar(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var i=(" "+e.className+" ").replace(Ic," ").replace(" "+t+" "," ");e.className=(i+(n?" "+t:"")).replace(Ic," ")}}function $e(e,t,n){var i=e&&e.style;if(i){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in i)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),i[t]=n+(typeof n=="string"?"":"px")}}function po(e,t){var n="";if(typeof e=="string")n=e;else do{var i=$e(e,"transform");i&&i!=="none"&&(n=i+" "+n)}while(!t&&(e=e.parentNode));var c=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return c&&new c(n)}function Md(e,t,n){if(e){var i=e.getElementsByTagName(t),c=0,l=i.length;if(n)for(;c=l:u=c<=l,!u)return i;if(i===Hr())break;i=Cn(i,!1)}return!1}function vo(e,t,n,i){for(var c=0,l=0,u=e.children;l2&&arguments[2]!==void 0?arguments[2]:{},i=n.evt,c=G4(n,rv);na.pluginEvent.bind(Oe)(e,t,jr({dragEl:ke,parentEl:zt,ghostEl:Ve,rootEl:St,nextEl:On,lastDownEl:Ya,cloneEl:_t,cloneHidden:wn,dragStarted:Bo,putSortable:Ot,activeSortable:Oe.active,originalEvent:i,oldIndex:uo,oldDraggableIndex:$o,newIndex:ir,newDraggableIndex:bn,hideGhostForTarget:Ld,unhideGhostForTarget:$d,cloneNowHidden:function(){wn=!0},cloneNowShown:function(){wn=!1},dispatchSortableEvent:function(l){Wt({sortable:t,name:l,originalEvent:i})}},c))};function Wt(e){tv(jr({putSortable:Ot,cloneEl:_t,targetEl:ke,rootEl:St,oldIndex:uo,oldDraggableIndex:$o,newIndex:ir,newDraggableIndex:bn},e))}var ke,zt,Ve,St,On,Ya,_t,wn,uo,ir,$o,bn,Fa,Ot,lo=!1,ni=!1,oi=[],Fn,_r,Ds,zs,qc,Fc,Bo,io,Oo,Uo=!1,La=!1,Ka,Ht,Es=[],ul=!1,ai=[],gi=typeof document<"u",$a=zd,Lc=ra||sn?"cssFloat":"float",nv=gi&&!Ed&&!zd&&"draggable"in document.createElement("div"),Nd=function(){if(gi){if(sn)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),qd=function(e,t){var n=$e(e),i=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),c=vo(e,0,t),l=vo(e,1,t),u=c&&$e(c),h=l&&$e(l),f=u&&parseInt(u.marginLeft)+parseInt(u.marginRight)+Lt(c).width,b=h&&parseInt(h.marginLeft)+parseInt(h.marginRight)+Lt(l).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(c&&u.float&&u.float!=="none"){var y=u.float==="left"?"left":"right";return l&&(h.clear==="both"||h.clear===y)?"vertical":"horizontal"}return c&&(u.display==="block"||u.display==="flex"||u.display==="table"||u.display==="grid"||f>=i&&n[Lc]==="none"||l&&n[Lc]==="none"&&f+b>i)?"vertical":"horizontal"},ov=function(e,t,n){var i=n?e.left:e.top,c=n?e.right:e.bottom,l=n?e.width:e.height,u=n?t.left:t.top,h=n?t.right:t.bottom,f=n?t.width:t.height;return i===u||c===h||i+l/2===u+f/2},av=function(e,t){var n;return oi.some(function(i){var c=i[lr].options.emptyInsertThreshold;if(!(!c||_l(i))){var l=Lt(i),u=e>=l.left-c&&e<=l.right+c,h=t>=l.top-c&&t<=l.bottom+c;if(u&&h)return n=i}}),n},Fd=function(e){function t(c,l){return function(u,h,f,b){var y=u.options.group.name&&h.options.group.name&&u.options.group.name===h.options.group.name;if(c==null&&(l||y))return!0;if(c==null||c===!1)return!1;if(l&&c==="clone")return c;if(typeof c=="function")return t(c(u,h,f,b),l)(u,h,f,b);var k=(l?u:h).options.group.name;return c===!0||typeof c=="string"&&c===k||c.join&&c.indexOf(k)>-1}}var n={},i=e.group;(!i||Xa(i)!="object")&&(i={name:i}),n.name=i.name,n.checkPull=t(i.pull,!0),n.checkPut=t(i.put),n.revertClone=i.revertClone,e.group=n},Ld=function(){!Nd&&Ve&&$e(Ve,"display","none")},$d=function(){!Nd&&Ve&&$e(Ve,"display","")};gi&&!Ed&&document.addEventListener("click",function(e){if(ni)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ni=!1,!1},!0);var Ln=function(e){if(ke){e=e.touches?e.touches[0]:e;var t=av(e.clientX,e.clientY);if(t){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=e[i]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[lr]._onDragOver(n)}}},iv=function(e){ke&&ke.parentNode[lr]._isOutsideThisEl(e.target)};function Oe(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=an({},t),e[lr]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return qd(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(l,u){l.setData("Text",u.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Oe.supportPointer!==!1&&"PointerEvent"in window&&!Fo,emptyInsertThreshold:5};na.initializePlugins(this,e,n);for(var i in n)!(i in t)&&(t[i]=n[i]);Fd(t);for(var c in this)c.charAt(0)==="_"&&typeof this[c]=="function"&&(this[c]=this[c].bind(this));this.nativeDraggable=t.forceFallback?!1:nv,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?at(e,"pointerdown",this._onTapStart):(at(e,"mousedown",this._onTapStart),at(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(at(e,"dragover",this),at(e,"dragenter",this)),oi.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),an(this,J4())}Oe.prototype={constructor:Oe,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(io=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,ke):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,i=this.options,c=i.preventOnFilter,l=e.type,u=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,h=(u||e).target,f=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||h,b=i.filter;if(pv(n),!ke&&!(/mousedown|pointerdown/.test(l)&&e.button!==0||i.disabled)&&!f.isContentEditable&&!(!this.nativeDraggable&&Fo&&h&&h.tagName.toUpperCase()==="SELECT")&&(h=Lr(h,i.draggable,n,!1),!(h&&h.animated)&&Ya!==h)){if(uo=gr(h),$o=gr(h,i.draggable),typeof b=="function"){if(b.call(this,e,h,this)){Wt({sortable:t,rootEl:f,name:"filter",targetEl:h,toEl:n,fromEl:n}),Qt("filter",t,{evt:e}),c&&e.cancelable&&e.preventDefault();return}}else if(b&&(b=b.split(",").some(function(y){if(y=Lr(f,y.trim(),n,!1),y)return Wt({sortable:t,rootEl:y,name:"filter",targetEl:h,fromEl:n,toEl:n}),Qt("filter",t,{evt:e}),!0}),b)){c&&e.cancelable&&e.preventDefault();return}i.handle&&!Lr(f,i.handle,n,!1)||this._prepareDragStart(e,u,h)}}},_prepareDragStart:function(e,t,n){var i=this,c=i.el,l=i.options,u=c.ownerDocument,h;if(n&&!ke&&n.parentNode===c){var f=Lt(n);if(St=c,ke=n,zt=ke.parentNode,On=ke.nextSibling,Ya=n,Fa=l.group,Oe.dragged=ke,Fn={target:ke,clientX:(t||e).clientX,clientY:(t||e).clientY},qc=Fn.clientX-f.left,Fc=Fn.clientY-f.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,ke.style["will-change"]="all",h=function(){if(Qt("delayEnded",i,{evt:e}),Oe.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!Bc&&i.nativeDraggable&&(ke.draggable=!0),i._triggerDragStart(e,t),Wt({sortable:i,name:"choose",originalEvent:e}),ar(ke,l.chosenClass,!0)},l.ignore.split(",").forEach(function(b){Md(ke,b.trim(),Rs)}),at(u,"dragover",Ln),at(u,"mousemove",Ln),at(u,"touchmove",Ln),at(u,"mouseup",i._onDrop),at(u,"touchend",i._onDrop),at(u,"touchcancel",i._onDrop),Bc&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ke.draggable=!0),Qt("delayStart",this,{evt:e}),l.delay&&(!l.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(ra||sn))){if(Oe.eventCanceled){this._onDrop();return}at(u,"mouseup",i._disableDelayedDrag),at(u,"touchend",i._disableDelayedDrag),at(u,"touchcancel",i._disableDelayedDrag),at(u,"mousemove",i._delayedDragTouchMoveHandler),at(u,"touchmove",i._delayedDragTouchMoveHandler),l.supportPointer&&at(u,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(h,l.delay)}else h()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ke&&Rs(ke),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;tt(e,"mouseup",this._disableDelayedDrag),tt(e,"touchend",this._disableDelayedDrag),tt(e,"touchcancel",this._disableDelayedDrag),tt(e,"mousemove",this._delayedDragTouchMoveHandler),tt(e,"touchmove",this._delayedDragTouchMoveHandler),tt(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?at(document,"pointermove",this._onTouchMove):t?at(document,"touchmove",this._onTouchMove):at(document,"mousemove",this._onTouchMove):(at(ke,"dragend",this),at(St,"dragstart",this._onDragStart));try{document.selection?Za(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(lo=!1,St&&ke){Qt("dragStarted",this,{evt:t}),this.nativeDraggable&&at(document,"dragover",iv);var n=this.options;!e&&ar(ke,n.dragClass,!1),ar(ke,n.ghostClass,!0),Oe.active=this,e&&this._appendGhost(),Wt({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(_r){this._lastX=_r.clientX,this._lastY=_r.clientY,Ld();for(var e=document.elementFromPoint(_r.clientX,_r.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(_r.clientX,_r.clientY),e!==t);)t=e;if(ke.parentNode[lr]._isOutsideThisEl(e),t)do{if(t[lr]){var n=void 0;if(n=t[lr]._onDragOver({clientX:_r.clientX,clientY:_r.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);$d()}},_onTouchMove:function(e){if(Fn){var t=this.options,n=t.fallbackTolerance,i=t.fallbackOffset,c=e.touches?e.touches[0]:e,l=Ve&&po(Ve,!0),u=Ve&&l&&l.a,h=Ve&&l&&l.d,f=$a&&Ht&&Nc(Ht),b=(c.clientX-Fn.clientX+i.x)/(u||1)+(f?f[0]-Es[0]:0)/(u||1),y=(c.clientY-Fn.clientY+i.y)/(h||1)+(f?f[1]-Es[1]:0)/(h||1);if(!Oe.active&&!lo){if(n&&Math.max(Math.abs(c.clientX-this._lastX),Math.abs(c.clientY-this._lastY))=0&&(Wt({rootEl:zt,name:"add",toEl:zt,fromEl:St,originalEvent:e}),Wt({sortable:this,name:"remove",toEl:zt,originalEvent:e}),Wt({rootEl:zt,name:"sort",toEl:zt,fromEl:St,originalEvent:e}),Wt({sortable:this,name:"sort",toEl:zt,originalEvent:e})),Ot&&Ot.save()):ir!==uo&&ir>=0&&(Wt({sortable:this,name:"update",toEl:zt,originalEvent:e}),Wt({sortable:this,name:"sort",toEl:zt,originalEvent:e})),Oe.active&&((ir==null||ir===-1)&&(ir=uo,bn=$o),Wt({sortable:this,name:"end",toEl:zt,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){Qt("nulling",this),St=ke=zt=Ve=On=_t=Ya=wn=Fn=_r=Bo=ir=bn=uo=$o=io=Oo=Ot=Fa=Oe.dragged=Oe.ghost=Oe.clone=Oe.active=null,ai.forEach(function(e){e.checked=!0}),ai.length=Ds=zs=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":ke&&(this._onDragOver(e),sv(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,i=0,c=n.length,l=this.options;ii.right+c||e.clientX<=i.right&&e.clientY>i.bottom&&e.clientX>=i.left:e.clientX>i.right&&e.clientY>i.top||e.clientX<=i.right&&e.clientY>i.bottom+c}function dv(e,t,n,i,c,l,u,h){var f=i?e.clientY:e.clientX,b=i?n.height:n.width,y=i?n.top:n.left,k=i?n.bottom:n.right,C=!1;if(!u){if(h&&Kay+b*l/2:fk-Ka)return-Oo}else if(f>y+b*(1-c)/2&&fk-b*l/2)?f>y+b/2?1:-1:0}function hv(e){return gr(ke){R=$(R),h&&M.destroy(),h=new Oe(R,E())};tr(()=>u,()=>{h&&H4(E(),(R,j)=>{h==null||h.option(R,j)})},{deep:!0});const M={option:(R,j)=>h==null?void 0:h.option(R,j),destroy:()=>{h==null||h.destroy(),h=null},save:()=>h==null?void 0:h.save(),toArray:()=>h==null?void 0:h.toArray(),closest:(...R)=>h==null?void 0:h.closest(...R)},U=()=>M==null?void 0:M.option("disabled",!0),q=()=>M==null?void 0:M.option("disabled",!1);return bv(()=>{f&&B()}),gv(M.destroy),co({start:B,pause:U,resume:q},M)}const pl=["update","start","add","remove","choose","unchoose","end","sort","filter","clone","move","change"],xv=["animation","ghostClass","group","sort","disabled","store","handle","draggable","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","chosenClass","dragClass","ignore","filter","preventOnFilter","easing","setData","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","emptyInsertThreshold","scroll","forceAutoScrollFallback","scrollSensitivity","scrollSpeed","bubbleScroll","modelValue","tag","target",...pl.map(e=>`on${e.replace(/^\S/,t=>t.toUpperCase())}`)],si=Re({name:"VueDraggable",model:{prop:"modelValue",event:"update:modelValue"},props:xv,emits:["update:modelValue",...pl],setup(e,{slots:t,emit:n,expose:i}){const c=Xu(),l=pl.reduce((y,k)=>{const C=`on${k.replace(/^\S/,S=>S.toUpperCase())}`;return y[C]=S=>n(k,S),y},{}),u=de(()=>{const y=Sf(e),k=_d(y,["modelValue"]),C=Object.entries(k).reduce((S,[L,P])=>{const $=_(P);return $!==void 0&&(S[L]=$),S},{});return co(co({},l),I4(co(co({},c),C)))}),h=de({get:()=>e.modelValue,set:y=>n("update:modelValue",y)}),f=te(),b=Mu(yv(e.target||f,h,u));return i(b),()=>{if(t.default)return D(e.tag||"div",{ref:f},t.default(b))}}});var Uc={},wv={get exports(){return Uc},set exports(e){Uc=e}},it={},li={},kv={get exports(){return li},set exports(e){li=e}};const Sv="Á",Cv="á",Av="Ă",Tv="ă",_v="∾",Dv="∿",zv="∾̳",Ev="Â",Rv="â",Mv="´",Bv="А",Iv="а",Pv="Æ",Nv="æ",qv="⁡",Fv="𝔄",Lv="𝔞",$v="À",Ov="à",Uv="ℵ",Hv="ℵ",Vv="Α",jv="α",Gv="Ā",Wv="ā",Xv="⨿",Yv="&",Kv="&",Zv="⩕",Jv="⩓",Qv="∧",eg="⩜",tg="⩘",rg="⩚",ng="∠",og="⦤",ag="∠",ig="⦨",sg="⦩",lg="⦪",cg="⦫",ug="⦬",dg="⦭",hg="⦮",fg="⦯",pg="∡",mg="∟",vg="⊾",gg="⦝",bg="∢",yg="Å",xg="⍼",wg="Ą",kg="ą",Sg="𝔸",Cg="𝕒",Ag="⩯",Tg="≈",_g="⩰",Dg="≊",zg="≋",Eg="'",Rg="⁡",Mg="≈",Bg="≊",Ig="Å",Pg="å",Ng="𝒜",qg="𝒶",Fg="≔",Lg="*",$g="≈",Og="≍",Ug="Ã",Hg="ã",Vg="Ä",jg="ä",Gg="∳",Wg="⨑",Xg="≌",Yg="϶",Kg="‵",Zg="∽",Jg="⋍",Qg="∖",e2="⫧",t2="⊽",r2="⌅",n2="⌆",o2="⌅",a2="⎵",i2="⎶",s2="≌",l2="Б",c2="б",u2="„",d2="∵",h2="∵",f2="∵",p2="⦰",m2="϶",v2="ℬ",g2="ℬ",b2="Β",y2="β",x2="ℶ",w2="≬",k2="𝔅",S2="𝔟",C2="⋂",A2="◯",T2="⋃",_2="⨀",D2="⨁",z2="⨂",E2="⨆",R2="★",M2="▽",B2="△",I2="⨄",P2="⋁",N2="⋀",q2="⤍",F2="⧫",L2="▪",$2="▴",O2="▾",U2="◂",H2="▸",V2="␣",j2="▒",G2="░",W2="▓",X2="█",Y2="=⃥",K2="≡⃥",Z2="⫭",J2="⌐",Q2="𝔹",e5="𝕓",t5="⊥",r5="⊥",n5="⋈",o5="⧉",a5="┐",i5="╕",s5="╖",l5="╗",c5="┌",u5="╒",d5="╓",h5="╔",f5="─",p5="═",m5="┬",v5="╤",g5="╥",b5="╦",y5="┴",x5="╧",w5="╨",k5="╩",S5="⊟",C5="⊞",A5="⊠",T5="┘",_5="╛",D5="╜",z5="╝",E5="└",R5="╘",M5="╙",B5="╚",I5="│",P5="║",N5="┼",q5="╪",F5="╫",L5="╬",$5="┤",O5="╡",U5="╢",H5="╣",V5="├",j5="╞",G5="╟",W5="╠",X5="‵",Y5="˘",K5="˘",Z5="¦",J5="𝒷",Q5="ℬ",e3="⁏",t3="∽",r3="⋍",n3="⧅",o3="\\",a3="⟈",i3="•",s3="•",l3="≎",c3="⪮",u3="≏",d3="≎",h3="≏",f3="Ć",p3="ć",m3="⩄",v3="⩉",g3="⩋",b3="∩",y3="⋒",x3="⩇",w3="⩀",k3="ⅅ",S3="∩︀",C3="⁁",A3="ˇ",T3="ℭ",_3="⩍",D3="Č",z3="č",E3="Ç",R3="ç",M3="Ĉ",B3="ĉ",I3="∰",P3="⩌",N3="⩐",q3="Ċ",F3="ċ",L3="¸",$3="¸",O3="⦲",U3="¢",H3="·",V3="·",j3="𝔠",G3="ℭ",W3="Ч",X3="ч",Y3="✓",K3="✓",Z3="Χ",J3="χ",Q3="ˆ",e6="≗",t6="↺",r6="↻",n6="⊛",o6="⊚",a6="⊝",i6="⊙",s6="®",l6="Ⓢ",c6="⊖",u6="⊕",d6="⊗",h6="○",f6="⧃",p6="≗",m6="⨐",v6="⫯",g6="⧂",b6="∲",y6="”",x6="’",w6="♣",k6="♣",S6=":",C6="∷",A6="⩴",T6="≔",_6="≔",D6=",",z6="@",E6="∁",R6="∘",M6="∁",B6="ℂ",I6="≅",P6="⩭",N6="≡",q6="∮",F6="∯",L6="∮",$6="𝕔",O6="ℂ",U6="∐",H6="∐",V6="©",j6="©",G6="℗",W6="∳",X6="↵",Y6="✗",K6="⨯",Z6="𝒞",J6="𝒸",Q6="⫏",eb="⫑",tb="⫐",rb="⫒",nb="⋯",ob="⤸",ab="⤵",ib="⋞",sb="⋟",lb="↶",cb="⤽",ub="⩈",db="⩆",hb="≍",fb="∪",pb="⋓",mb="⩊",vb="⊍",gb="⩅",bb="∪︀",yb="↷",xb="⤼",wb="⋞",kb="⋟",Sb="⋎",Cb="⋏",Ab="¤",Tb="↶",_b="↷",Db="⋎",zb="⋏",Eb="∲",Rb="∱",Mb="⌭",Bb="†",Ib="‡",Pb="ℸ",Nb="↓",qb="↡",Fb="⇓",Lb="‐",$b="⫤",Ob="⊣",Ub="⤏",Hb="˝",Vb="Ď",jb="ď",Gb="Д",Wb="д",Xb="‡",Yb="⇊",Kb="ⅅ",Zb="ⅆ",Jb="⤑",Qb="⩷",e7="°",t7="∇",r7="Δ",n7="δ",o7="⦱",a7="⥿",i7="𝔇",s7="𝔡",l7="⥥",c7="⇃",u7="⇂",d7="´",h7="˙",f7="˝",p7="`",m7="˜",v7="⋄",g7="⋄",b7="⋄",y7="♦",x7="♦",w7="¨",k7="ⅆ",S7="ϝ",C7="⋲",A7="÷",T7="÷",_7="⋇",D7="⋇",z7="Ђ",E7="ђ",R7="⌞",M7="⌍",B7="$",I7="𝔻",P7="𝕕",N7="¨",q7="˙",F7="⃜",L7="≐",$7="≑",O7="≐",U7="∸",H7="∔",V7="⊡",j7="⌆",G7="∯",W7="¨",X7="⇓",Y7="⇐",K7="⇔",Z7="⫤",J7="⟸",Q7="⟺",e8="⟹",t8="⇒",r8="⊨",n8="⇑",o8="⇕",a8="∥",i8="⤓",s8="↓",l8="↓",c8="⇓",u8="⇵",d8="̑",h8="⇊",f8="⇃",p8="⇂",m8="⥐",v8="⥞",g8="⥖",b8="↽",y8="⥟",x8="⥗",w8="⇁",k8="↧",S8="⊤",C8="⤐",A8="⌟",T8="⌌",_8="𝒟",D8="𝒹",z8="Ѕ",E8="ѕ",R8="⧶",M8="Đ",B8="đ",I8="⋱",P8="▿",N8="▾",q8="⇵",F8="⥯",L8="⦦",$8="Џ",O8="џ",U8="⟿",H8="É",V8="é",j8="⩮",G8="Ě",W8="ě",X8="Ê",Y8="ê",K8="≖",Z8="≕",J8="Э",Q8="э",e9="⩷",t9="Ė",r9="ė",n9="≑",o9="ⅇ",a9="≒",i9="𝔈",s9="𝔢",l9="⪚",c9="È",u9="è",d9="⪖",h9="⪘",f9="⪙",p9="∈",m9="⏧",v9="ℓ",g9="⪕",b9="⪗",y9="Ē",x9="ē",w9="∅",k9="∅",S9="◻",C9="∅",A9="▫",T9=" ",_9=" ",D9=" ",z9="Ŋ",E9="ŋ",R9=" ",M9="Ę",B9="ę",I9="𝔼",P9="𝕖",N9="⋕",q9="⧣",F9="⩱",L9="ε",$9="Ε",O9="ε",U9="ϵ",H9="≖",V9="≕",j9="≂",G9="⪖",W9="⪕",X9="⩵",Y9="=",K9="≂",Z9="≟",J9="⇌",Q9="≡",ey="⩸",ty="⧥",ry="⥱",ny="≓",oy="ℯ",ay="ℰ",iy="≐",sy="⩳",ly="≂",cy="Η",uy="η",dy="Ð",hy="ð",fy="Ë",py="ë",my="€",vy="!",gy="∃",by="∃",yy="ℰ",xy="ⅇ",wy="ⅇ",ky="≒",Sy="Ф",Cy="ф",Ay="♀",Ty="ffi",_y="ff",Dy="ffl",zy="𝔉",Ey="𝔣",Ry="fi",My="◼",By="▪",Iy="fj",Py="♭",Ny="fl",qy="▱",Fy="ƒ",Ly="𝔽",$y="𝕗",Oy="∀",Uy="∀",Hy="⋔",Vy="⫙",jy="ℱ",Gy="⨍",Wy="½",Xy="⅓",Yy="¼",Ky="⅕",Zy="⅙",Jy="⅛",Qy="⅔",ex="⅖",tx="¾",rx="⅗",nx="⅜",ox="⅘",ax="⅚",ix="⅝",sx="⅞",lx="⁄",cx="⌢",ux="𝒻",dx="ℱ",hx="ǵ",fx="Γ",px="γ",mx="Ϝ",vx="ϝ",gx="⪆",bx="Ğ",yx="ğ",xx="Ģ",wx="Ĝ",kx="ĝ",Sx="Г",Cx="г",Ax="Ġ",Tx="ġ",_x="≥",Dx="≧",zx="⪌",Ex="⋛",Rx="≥",Mx="≧",Bx="⩾",Ix="⪩",Px="⩾",Nx="⪀",qx="⪂",Fx="⪄",Lx="⋛︀",$x="⪔",Ox="𝔊",Ux="𝔤",Hx="≫",Vx="⋙",jx="⋙",Gx="ℷ",Wx="Ѓ",Xx="ѓ",Yx="⪥",Kx="≷",Zx="⪒",Jx="⪤",Qx="⪊",ew="⪊",tw="⪈",rw="≩",nw="⪈",ow="≩",aw="⋧",iw="𝔾",sw="𝕘",lw="`",cw="≥",uw="⋛",dw="≧",hw="⪢",fw="≷",pw="⩾",mw="≳",vw="𝒢",gw="ℊ",bw="≳",yw="⪎",xw="⪐",ww="⪧",kw="⩺",Sw=">",Cw=">",Aw="≫",Tw="⋗",_w="⦕",Dw="⩼",zw="⪆",Ew="⥸",Rw="⋗",Mw="⋛",Bw="⪌",Iw="≷",Pw="≳",Nw="≩︀",qw="≩︀",Fw="ˇ",Lw=" ",$w="½",Ow="ℋ",Uw="Ъ",Hw="ъ",Vw="⥈",jw="↔",Gw="⇔",Ww="↭",Xw="^",Yw="ℏ",Kw="Ĥ",Zw="ĥ",Jw="♥",Qw="♥",ek="…",tk="⊹",rk="𝔥",nk="ℌ",ok="ℋ",ak="⤥",ik="⤦",sk="⇿",lk="∻",ck="↩",uk="↪",dk="𝕙",hk="ℍ",fk="―",pk="─",mk="𝒽",vk="ℋ",gk="ℏ",bk="Ħ",yk="ħ",xk="≎",wk="≏",kk="⁃",Sk="‐",Ck="Í",Ak="í",Tk="⁣",_k="Î",Dk="î",zk="И",Ek="и",Rk="İ",Mk="Е",Bk="е",Ik="¡",Pk="⇔",Nk="𝔦",qk="ℑ",Fk="Ì",Lk="ì",$k="ⅈ",Ok="⨌",Uk="∭",Hk="⧜",Vk="℩",jk="IJ",Gk="ij",Wk="Ī",Xk="ī",Yk="ℑ",Kk="ⅈ",Zk="ℐ",Jk="ℑ",Qk="ı",eS="ℑ",tS="⊷",rS="Ƶ",nS="⇒",oS="℅",aS="∞",iS="⧝",sS="ı",lS="⊺",cS="∫",uS="∬",dS="ℤ",hS="∫",fS="⊺",pS="⋂",mS="⨗",vS="⨼",gS="⁣",bS="⁢",yS="Ё",xS="ё",wS="Į",kS="į",SS="𝕀",CS="𝕚",AS="Ι",TS="ι",_S="⨼",DS="¿",zS="𝒾",ES="ℐ",RS="∈",MS="⋵",BS="⋹",IS="⋴",PS="⋳",NS="∈",qS="⁢",FS="Ĩ",LS="ĩ",$S="І",OS="і",US="Ï",HS="ï",VS="Ĵ",jS="ĵ",GS="Й",WS="й",XS="𝔍",YS="𝔧",KS="ȷ",ZS="𝕁",JS="𝕛",QS="𝒥",eC="𝒿",tC="Ј",rC="ј",nC="Є",oC="є",aC="Κ",iC="κ",sC="ϰ",lC="Ķ",cC="ķ",uC="К",dC="к",hC="𝔎",fC="𝔨",pC="ĸ",mC="Х",vC="х",gC="Ќ",bC="ќ",yC="𝕂",xC="𝕜",wC="𝒦",kC="𝓀",SC="⇚",CC="Ĺ",AC="ĺ",TC="⦴",_C="ℒ",DC="Λ",zC="λ",EC="⟨",RC="⟪",MC="⦑",BC="⟨",IC="⪅",PC="ℒ",NC="«",qC="⇤",FC="⤟",LC="←",$C="↞",OC="⇐",UC="⤝",HC="↩",VC="↫",jC="⤹",GC="⥳",WC="↢",XC="⤙",YC="⤛",KC="⪫",ZC="⪭",JC="⪭︀",QC="⤌",eA="⤎",tA="❲",rA="{",nA="[",oA="⦋",aA="⦏",iA="⦍",sA="Ľ",lA="ľ",cA="Ļ",uA="ļ",dA="⌈",hA="{",fA="Л",pA="л",mA="⤶",vA="“",gA="„",bA="⥧",yA="⥋",xA="↲",wA="≤",kA="≦",SA="⟨",CA="⇤",AA="←",TA="←",_A="⇐",DA="⇆",zA="↢",EA="⌈",RA="⟦",MA="⥡",BA="⥙",IA="⇃",PA="⌊",NA="↽",qA="↼",FA="⇇",LA="↔",$A="↔",OA="⇔",UA="⇆",HA="⇋",VA="↭",jA="⥎",GA="↤",WA="⊣",XA="⥚",YA="⋋",KA="⧏",ZA="⊲",JA="⊴",QA="⥑",eT="⥠",tT="⥘",rT="↿",nT="⥒",oT="↼",aT="⪋",iT="⋚",sT="≤",lT="≦",cT="⩽",uT="⪨",dT="⩽",hT="⩿",fT="⪁",pT="⪃",mT="⋚︀",vT="⪓",gT="⪅",bT="⋖",yT="⋚",xT="⪋",wT="⋚",kT="≦",ST="≶",CT="≶",AT="⪡",TT="≲",_T="⩽",DT="≲",zT="⥼",ET="⌊",RT="𝔏",MT="𝔩",BT="≶",IT="⪑",PT="⥢",NT="↽",qT="↼",FT="⥪",LT="▄",$T="Љ",OT="љ",UT="⇇",HT="≪",VT="⋘",jT="⌞",GT="⇚",WT="⥫",XT="◺",YT="Ŀ",KT="ŀ",ZT="⎰",JT="⎰",QT="⪉",e_="⪉",t_="⪇",r_="≨",n_="⪇",o_="≨",a_="⋦",i_="⟬",s_="⇽",l_="⟦",c_="⟵",u_="⟵",d_="⟸",h_="⟷",f_="⟷",p_="⟺",m_="⟼",v_="⟶",g_="⟶",b_="⟹",y_="↫",x_="↬",w_="⦅",k_="𝕃",S_="𝕝",C_="⨭",A_="⨴",T_="∗",__="_",D_="↙",z_="↘",E_="◊",R_="◊",M_="⧫",B_="(",I_="⦓",P_="⇆",N_="⌟",q_="⇋",F_="⥭",L_="‎",$_="⊿",O_="‹",U_="𝓁",H_="ℒ",V_="↰",j_="↰",G_="≲",W_="⪍",X_="⪏",Y_="[",K_="‘",Z_="‚",J_="Ł",Q_="ł",eD="⪦",tD="⩹",rD="<",nD="<",oD="≪",aD="⋖",iD="⋋",sD="⋉",lD="⥶",cD="⩻",uD="◃",dD="⊴",hD="◂",fD="⦖",pD="⥊",mD="⥦",vD="≨︀",gD="≨︀",bD="¯",yD="♂",xD="✠",wD="✠",kD="↦",SD="↦",CD="↧",AD="↤",TD="↥",_D="▮",DD="⨩",zD="М",ED="м",RD="—",MD="∺",BD="∡",ID=" ",PD="ℳ",ND="𝔐",qD="𝔪",FD="℧",LD="µ",$D="*",OD="⫰",UD="∣",HD="·",VD="⊟",jD="−",GD="∸",WD="⨪",XD="∓",YD="⫛",KD="…",ZD="∓",JD="⊧",QD="𝕄",ez="𝕞",tz="∓",rz="𝓂",nz="ℳ",oz="∾",az="Μ",iz="μ",sz="⊸",lz="⊸",cz="∇",uz="Ń",dz="ń",hz="∠⃒",fz="≉",pz="⩰̸",mz="≋̸",vz="ʼn",gz="≉",bz="♮",yz="ℕ",xz="♮",wz=" ",kz="≎̸",Sz="≏̸",Cz="⩃",Az="Ň",Tz="ň",_z="Ņ",Dz="ņ",zz="≇",Ez="⩭̸",Rz="⩂",Mz="Н",Bz="н",Iz="–",Pz="⤤",Nz="↗",qz="⇗",Fz="↗",Lz="≠",$z="≐̸",Oz="​",Uz="​",Hz="​",Vz="​",jz="≢",Gz="⤨",Wz="≂̸",Xz="≫",Yz="≪",Kz=` -`,Zz="∄",Jz="∄",Qz="𝔑",eE="𝔫",tE="≧̸",rE="≱",nE="≱",oE="≧̸",aE="⩾̸",iE="⩾̸",sE="⋙̸",lE="≵",cE="≫⃒",uE="≯",dE="≯",hE="≫̸",fE="↮",pE="⇎",mE="⫲",vE="∋",gE="⋼",bE="⋺",yE="∋",xE="Њ",wE="њ",kE="↚",SE="⇍",CE="‥",AE="≦̸",TE="≰",_E="↚",DE="⇍",zE="↮",EE="⇎",RE="≰",ME="≦̸",BE="⩽̸",IE="⩽̸",PE="≮",NE="⋘̸",qE="≴",FE="≪⃒",LE="≮",$E="⋪",OE="⋬",UE="≪̸",HE="∤",VE="⁠",jE=" ",GE="𝕟",WE="ℕ",XE="⫬",YE="¬",KE="≢",ZE="≭",JE="∦",QE="∉",eR="≠",tR="≂̸",rR="∄",nR="≯",oR="≱",aR="≧̸",iR="≫̸",sR="≹",lR="⩾̸",cR="≵",uR="≎̸",dR="≏̸",hR="∉",fR="⋵̸",pR="⋹̸",mR="∉",vR="⋷",gR="⋶",bR="⧏̸",yR="⋪",xR="⋬",wR="≮",kR="≰",SR="≸",CR="≪̸",AR="⩽̸",TR="≴",_R="⪢̸",DR="⪡̸",zR="∌",ER="∌",RR="⋾",MR="⋽",BR="⊀",IR="⪯̸",PR="⋠",NR="∌",qR="⧐̸",FR="⋫",LR="⋭",$R="⊏̸",OR="⋢",UR="⊐̸",HR="⋣",VR="⊂⃒",jR="⊈",GR="⊁",WR="⪰̸",XR="⋡",YR="≿̸",KR="⊃⃒",ZR="⊉",JR="≁",QR="≄",eM="≇",tM="≉",rM="∤",nM="∦",oM="∦",aM="⫽⃥",iM="∂̸",sM="⨔",lM="⊀",cM="⋠",uM="⊀",dM="⪯̸",hM="⪯̸",fM="⤳̸",pM="↛",mM="⇏",vM="↝̸",gM="↛",bM="⇏",yM="⋫",xM="⋭",wM="⊁",kM="⋡",SM="⪰̸",CM="𝒩",AM="𝓃",TM="∤",_M="∦",DM="≁",zM="≄",EM="≄",RM="∤",MM="∦",BM="⋢",IM="⋣",PM="⊄",NM="⫅̸",qM="⊈",FM="⊂⃒",LM="⊈",$M="⫅̸",OM="⊁",UM="⪰̸",HM="⊅",VM="⫆̸",jM="⊉",GM="⊃⃒",WM="⊉",XM="⫆̸",YM="≹",KM="Ñ",ZM="ñ",JM="≸",QM="⋪",eB="⋬",tB="⋫",rB="⋭",nB="Ν",oB="ν",aB="#",iB="№",sB=" ",lB="≍⃒",cB="⊬",uB="⊭",dB="⊮",hB="⊯",fB="≥⃒",pB=">⃒",mB="⤄",vB="⧞",gB="⤂",bB="≤⃒",yB="<⃒",xB="⊴⃒",wB="⤃",kB="⊵⃒",SB="∼⃒",CB="⤣",AB="↖",TB="⇖",_B="↖",DB="⤧",zB="Ó",EB="ó",RB="⊛",MB="Ô",BB="ô",IB="⊚",PB="О",NB="о",qB="⊝",FB="Ő",LB="ő",$B="⨸",OB="⊙",UB="⦼",HB="Œ",VB="œ",jB="⦿",GB="𝔒",WB="𝔬",XB="˛",YB="Ò",KB="ò",ZB="⧁",JB="⦵",QB="Ω",eI="∮",tI="↺",rI="⦾",nI="⦻",oI="‾",aI="⧀",iI="Ō",sI="ō",lI="Ω",cI="ω",uI="Ο",dI="ο",hI="⦶",fI="⊖",pI="𝕆",mI="𝕠",vI="⦷",gI="“",bI="‘",yI="⦹",xI="⊕",wI="↻",kI="⩔",SI="∨",CI="⩝",AI="ℴ",TI="ℴ",_I="ª",DI="º",zI="⊶",EI="⩖",RI="⩗",MI="⩛",BI="Ⓢ",II="𝒪",PI="ℴ",NI="Ø",qI="ø",FI="⊘",LI="Õ",$I="õ",OI="⨶",UI="⨷",HI="⊗",VI="Ö",jI="ö",GI="⌽",WI="‾",XI="⏞",YI="⎴",KI="⏜",ZI="¶",JI="∥",QI="∥",eP="⫳",tP="⫽",rP="∂",nP="∂",oP="П",aP="п",iP="%",sP=".",lP="‰",cP="⊥",uP="‱",dP="𝔓",hP="𝔭",fP="Φ",pP="φ",mP="ϕ",vP="ℳ",gP="☎",bP="Π",yP="π",xP="⋔",wP="ϖ",kP="ℏ",SP="ℎ",CP="ℏ",AP="⨣",TP="⊞",_P="⨢",DP="+",zP="∔",EP="⨥",RP="⩲",MP="±",BP="±",IP="⨦",PP="⨧",NP="±",qP="ℌ",FP="⨕",LP="𝕡",$P="ℙ",OP="£",UP="⪷",HP="⪻",VP="≺",jP="≼",GP="⪷",WP="≺",XP="≼",YP="≺",KP="⪯",ZP="≼",JP="≾",QP="⪯",eN="⪹",tN="⪵",rN="⋨",nN="⪯",oN="⪳",aN="≾",iN="′",sN="″",lN="ℙ",cN="⪹",uN="⪵",dN="⋨",hN="∏",fN="∏",pN="⌮",mN="⌒",vN="⌓",gN="∝",bN="∝",yN="∷",xN="∝",wN="≾",kN="⊰",SN="𝒫",CN="𝓅",AN="Ψ",TN="ψ",_N=" ",DN="𝔔",zN="𝔮",EN="⨌",RN="𝕢",MN="ℚ",BN="⁗",IN="𝒬",PN="𝓆",NN="ℍ",qN="⨖",FN="?",LN="≟",$N='"',ON='"',UN="⇛",HN="∽̱",VN="Ŕ",jN="ŕ",GN="√",WN="⦳",XN="⟩",YN="⟫",KN="⦒",ZN="⦥",JN="⟩",QN="»",eq="⥵",tq="⇥",rq="⤠",nq="⤳",oq="→",aq="↠",iq="⇒",sq="⤞",lq="↪",cq="↬",uq="⥅",dq="⥴",hq="⤖",fq="↣",pq="↝",mq="⤚",vq="⤜",gq="∶",bq="ℚ",yq="⤍",xq="⤏",wq="⤐",kq="❳",Sq="}",Cq="]",Aq="⦌",Tq="⦎",_q="⦐",Dq="Ř",zq="ř",Eq="Ŗ",Rq="ŗ",Mq="⌉",Bq="}",Iq="Р",Pq="р",Nq="⤷",qq="⥩",Fq="”",Lq="”",$q="↳",Oq="ℜ",Uq="ℛ",Hq="ℜ",Vq="ℝ",jq="ℜ",Gq="▭",Wq="®",Xq="®",Yq="∋",Kq="⇋",Zq="⥯",Jq="⥽",Qq="⌋",eF="𝔯",tF="ℜ",rF="⥤",nF="⇁",oF="⇀",aF="⥬",iF="Ρ",sF="ρ",lF="ϱ",cF="⟩",uF="⇥",dF="→",hF="→",fF="⇒",pF="⇄",mF="↣",vF="⌉",gF="⟧",bF="⥝",yF="⥕",xF="⇂",wF="⌋",kF="⇁",SF="⇀",CF="⇄",AF="⇌",TF="⇉",_F="↝",DF="↦",zF="⊢",EF="⥛",RF="⋌",MF="⧐",BF="⊳",IF="⊵",PF="⥏",NF="⥜",qF="⥔",FF="↾",LF="⥓",$F="⇀",OF="˚",UF="≓",HF="⇄",VF="⇌",jF="‏",GF="⎱",WF="⎱",XF="⫮",YF="⟭",KF="⇾",ZF="⟧",JF="⦆",QF="𝕣",eL="ℝ",tL="⨮",rL="⨵",nL="⥰",oL=")",aL="⦔",iL="⨒",sL="⇉",lL="⇛",cL="›",uL="𝓇",dL="ℛ",hL="↱",fL="↱",pL="]",mL="’",vL="’",gL="⋌",bL="⋊",yL="▹",xL="⊵",wL="▸",kL="⧎",SL="⧴",CL="⥨",AL="℞",TL="Ś",_L="ś",DL="‚",zL="⪸",EL="Š",RL="š",ML="⪼",BL="≻",IL="≽",PL="⪰",NL="⪴",qL="Ş",FL="ş",LL="Ŝ",$L="ŝ",OL="⪺",UL="⪶",HL="⋩",VL="⨓",jL="≿",GL="С",WL="с",XL="⊡",YL="⋅",KL="⩦",ZL="⤥",JL="↘",QL="⇘",e$="↘",t$="§",r$=";",n$="⤩",o$="∖",a$="∖",i$="✶",s$="𝔖",l$="𝔰",c$="⌢",u$="♯",d$="Щ",h$="щ",f$="Ш",p$="ш",m$="↓",v$="←",g$="∣",b$="∥",y$="→",x$="↑",w$="­",k$="Σ",S$="σ",C$="ς",A$="ς",T$="∼",_$="⩪",D$="≃",z$="≃",E$="⪞",R$="⪠",M$="⪝",B$="⪟",I$="≆",P$="⨤",N$="⥲",q$="←",F$="∘",L$="∖",$$="⨳",O$="⧤",U$="∣",H$="⌣",V$="⪪",j$="⪬",G$="⪬︀",W$="Ь",X$="ь",Y$="⌿",K$="⧄",Z$="/",J$="𝕊",Q$="𝕤",eO="♠",tO="♠",rO="∥",nO="⊓",oO="⊓︀",aO="⊔",iO="⊔︀",sO="√",lO="⊏",cO="⊑",uO="⊏",dO="⊑",hO="⊐",fO="⊒",pO="⊐",mO="⊒",vO="□",gO="□",bO="⊓",yO="⊏",xO="⊑",wO="⊐",kO="⊒",SO="⊔",CO="▪",AO="□",TO="▪",_O="→",DO="𝒮",zO="𝓈",EO="∖",RO="⌣",MO="⋆",BO="⋆",IO="☆",PO="★",NO="ϵ",qO="ϕ",FO="¯",LO="⊂",$O="⋐",OO="⪽",UO="⫅",HO="⊆",VO="⫃",jO="⫁",GO="⫋",WO="⊊",XO="⪿",YO="⥹",KO="⊂",ZO="⋐",JO="⊆",QO="⫅",eU="⊆",tU="⊊",rU="⫋",nU="⫇",oU="⫕",aU="⫓",iU="⪸",sU="≻",lU="≽",cU="≻",uU="⪰",dU="≽",hU="≿",fU="⪰",pU="⪺",mU="⪶",vU="⋩",gU="≿",bU="∋",yU="∑",xU="∑",wU="♪",kU="¹",SU="²",CU="³",AU="⊃",TU="⋑",_U="⪾",DU="⫘",zU="⫆",EU="⊇",RU="⫄",MU="⊃",BU="⊇",IU="⟉",PU="⫗",NU="⥻",qU="⫂",FU="⫌",LU="⊋",$U="⫀",OU="⊃",UU="⋑",HU="⊇",VU="⫆",jU="⊋",GU="⫌",WU="⫈",XU="⫔",YU="⫖",KU="⤦",ZU="↙",JU="⇙",QU="↙",eH="⤪",tH="ß",rH=" ",nH="⌖",oH="Τ",aH="τ",iH="⎴",sH="Ť",lH="ť",cH="Ţ",uH="ţ",dH="Т",hH="т",fH="⃛",pH="⌕",mH="𝔗",vH="𝔱",gH="∴",bH="∴",yH="∴",xH="Θ",wH="θ",kH="ϑ",SH="ϑ",CH="≈",AH="∼",TH="  ",_H=" ",DH=" ",zH="≈",EH="∼",RH="Þ",MH="þ",BH="˜",IH="∼",PH="≃",NH="≅",qH="≈",FH="⨱",LH="⊠",$H="×",OH="⨰",UH="∭",HH="⤨",VH="⌶",jH="⫱",GH="⊤",WH="𝕋",XH="𝕥",YH="⫚",KH="⤩",ZH="‴",JH="™",QH="™",eV="▵",tV="▿",rV="◃",nV="⊴",oV="≜",aV="▹",iV="⊵",sV="◬",lV="≜",cV="⨺",uV="⃛",dV="⨹",hV="⧍",fV="⨻",pV="⏢",mV="𝒯",vV="𝓉",gV="Ц",bV="ц",yV="Ћ",xV="ћ",wV="Ŧ",kV="ŧ",SV="≬",CV="↞",AV="↠",TV="Ú",_V="ú",DV="↑",zV="↟",EV="⇑",RV="⥉",MV="Ў",BV="ў",IV="Ŭ",PV="ŭ",NV="Û",qV="û",FV="У",LV="у",$V="⇅",OV="Ű",UV="ű",HV="⥮",VV="⥾",jV="𝔘",GV="𝔲",WV="Ù",XV="ù",YV="⥣",KV="↿",ZV="↾",JV="▀",QV="⌜",ej="⌜",tj="⌏",rj="◸",nj="Ū",oj="ū",aj="¨",ij="_",sj="⏟",lj="⎵",cj="⏝",uj="⋃",dj="⊎",hj="Ų",fj="ų",pj="𝕌",mj="𝕦",vj="⤒",gj="↑",bj="↑",yj="⇑",xj="⇅",wj="↕",kj="↕",Sj="⇕",Cj="⥮",Aj="↿",Tj="↾",_j="⊎",Dj="↖",zj="↗",Ej="υ",Rj="ϒ",Mj="ϒ",Bj="Υ",Ij="υ",Pj="↥",Nj="⊥",qj="⇈",Fj="⌝",Lj="⌝",$j="⌎",Oj="Ů",Uj="ů",Hj="◹",Vj="𝒰",jj="𝓊",Gj="⋰",Wj="Ũ",Xj="ũ",Yj="▵",Kj="▴",Zj="⇈",Jj="Ü",Qj="ü",eG="⦧",tG="⦜",rG="ϵ",nG="ϰ",oG="∅",aG="ϕ",iG="ϖ",sG="∝",lG="↕",cG="⇕",uG="ϱ",dG="ς",hG="⊊︀",fG="⫋︀",pG="⊋︀",mG="⫌︀",vG="ϑ",gG="⊲",bG="⊳",yG="⫨",xG="⫫",wG="⫩",kG="В",SG="в",CG="⊢",AG="⊨",TG="⊩",_G="⊫",DG="⫦",zG="⊻",EG="∨",RG="⋁",MG="≚",BG="⋮",IG="|",PG="‖",NG="|",qG="‖",FG="∣",LG="|",$G="❘",OG="≀",UG=" ",HG="𝔙",VG="𝔳",jG="⊲",GG="⊂⃒",WG="⊃⃒",XG="𝕍",YG="𝕧",KG="∝",ZG="⊳",JG="𝒱",QG="𝓋",eW="⫋︀",tW="⊊︀",rW="⫌︀",nW="⊋︀",oW="⊪",aW="⦚",iW="Ŵ",sW="ŵ",lW="⩟",cW="∧",uW="⋀",dW="≙",hW="℘",fW="𝔚",pW="𝔴",mW="𝕎",vW="𝕨",gW="℘",bW="≀",yW="≀",xW="𝒲",wW="𝓌",kW="⋂",SW="◯",CW="⋃",AW="▽",TW="𝔛",_W="𝔵",DW="⟷",zW="⟺",EW="Ξ",RW="ξ",MW="⟵",BW="⟸",IW="⟼",PW="⋻",NW="⨀",qW="𝕏",FW="𝕩",LW="⨁",$W="⨂",OW="⟶",UW="⟹",HW="𝒳",VW="𝓍",jW="⨆",GW="⨄",WW="△",XW="⋁",YW="⋀",KW="Ý",ZW="ý",JW="Я",QW="я",eX="Ŷ",tX="ŷ",rX="Ы",nX="ы",oX="¥",aX="𝔜",iX="𝔶",sX="Ї",lX="ї",cX="𝕐",uX="𝕪",dX="𝒴",hX="𝓎",fX="Ю",pX="ю",mX="ÿ",vX="Ÿ",gX="Ź",bX="ź",yX="Ž",xX="ž",wX="З",kX="з",SX="Ż",CX="ż",AX="ℨ",TX="​",_X="Ζ",DX="ζ",zX="𝔷",EX="ℨ",RX="Ж",MX="ж",BX="⇝",IX="𝕫",PX="ℤ",NX="𝒵",qX="𝓏",FX="‍",LX="‌",$X={Aacute:Sv,aacute:Cv,Abreve:Av,abreve:Tv,ac:_v,acd:Dv,acE:zv,Acirc:Ev,acirc:Rv,acute:Mv,Acy:Bv,acy:Iv,AElig:Pv,aelig:Nv,af:qv,Afr:Fv,afr:Lv,Agrave:$v,agrave:Ov,alefsym:Uv,aleph:Hv,Alpha:Vv,alpha:jv,Amacr:Gv,amacr:Wv,amalg:Xv,amp:Yv,AMP:Kv,andand:Zv,And:Jv,and:Qv,andd:eg,andslope:tg,andv:rg,ang:ng,ange:og,angle:ag,angmsdaa:ig,angmsdab:sg,angmsdac:lg,angmsdad:cg,angmsdae:ug,angmsdaf:dg,angmsdag:hg,angmsdah:fg,angmsd:pg,angrt:mg,angrtvb:vg,angrtvbd:gg,angsph:bg,angst:yg,angzarr:xg,Aogon:wg,aogon:kg,Aopf:Sg,aopf:Cg,apacir:Ag,ap:Tg,apE:_g,ape:Dg,apid:zg,apos:Eg,ApplyFunction:Rg,approx:Mg,approxeq:Bg,Aring:Ig,aring:Pg,Ascr:Ng,ascr:qg,Assign:Fg,ast:Lg,asymp:$g,asympeq:Og,Atilde:Ug,atilde:Hg,Auml:Vg,auml:jg,awconint:Gg,awint:Wg,backcong:Xg,backepsilon:Yg,backprime:Kg,backsim:Zg,backsimeq:Jg,Backslash:Qg,Barv:e2,barvee:t2,barwed:r2,Barwed:n2,barwedge:o2,bbrk:a2,bbrktbrk:i2,bcong:s2,Bcy:l2,bcy:c2,bdquo:u2,becaus:d2,because:h2,Because:f2,bemptyv:p2,bepsi:m2,bernou:v2,Bernoullis:g2,Beta:b2,beta:y2,beth:x2,between:w2,Bfr:k2,bfr:S2,bigcap:C2,bigcirc:A2,bigcup:T2,bigodot:_2,bigoplus:D2,bigotimes:z2,bigsqcup:E2,bigstar:R2,bigtriangledown:M2,bigtriangleup:B2,biguplus:I2,bigvee:P2,bigwedge:N2,bkarow:q2,blacklozenge:F2,blacksquare:L2,blacktriangle:$2,blacktriangledown:O2,blacktriangleleft:U2,blacktriangleright:H2,blank:V2,blk12:j2,blk14:G2,blk34:W2,block:X2,bne:Y2,bnequiv:K2,bNot:Z2,bnot:J2,Bopf:Q2,bopf:e5,bot:t5,bottom:r5,bowtie:n5,boxbox:o5,boxdl:a5,boxdL:i5,boxDl:s5,boxDL:l5,boxdr:c5,boxdR:u5,boxDr:d5,boxDR:h5,boxh:f5,boxH:p5,boxhd:m5,boxHd:v5,boxhD:g5,boxHD:b5,boxhu:y5,boxHu:x5,boxhU:w5,boxHU:k5,boxminus:S5,boxplus:C5,boxtimes:A5,boxul:T5,boxuL:_5,boxUl:D5,boxUL:z5,boxur:E5,boxuR:R5,boxUr:M5,boxUR:B5,boxv:I5,boxV:P5,boxvh:N5,boxvH:q5,boxVh:F5,boxVH:L5,boxvl:$5,boxvL:O5,boxVl:U5,boxVL:H5,boxvr:V5,boxvR:j5,boxVr:G5,boxVR:W5,bprime:X5,breve:Y5,Breve:K5,brvbar:Z5,bscr:J5,Bscr:Q5,bsemi:e3,bsim:t3,bsime:r3,bsolb:n3,bsol:o3,bsolhsub:a3,bull:i3,bullet:s3,bump:l3,bumpE:c3,bumpe:u3,Bumpeq:d3,bumpeq:h3,Cacute:f3,cacute:p3,capand:m3,capbrcup:v3,capcap:g3,cap:b3,Cap:y3,capcup:x3,capdot:w3,CapitalDifferentialD:k3,caps:S3,caret:C3,caron:A3,Cayleys:T3,ccaps:_3,Ccaron:D3,ccaron:z3,Ccedil:E3,ccedil:R3,Ccirc:M3,ccirc:B3,Cconint:I3,ccups:P3,ccupssm:N3,Cdot:q3,cdot:F3,cedil:L3,Cedilla:$3,cemptyv:O3,cent:U3,centerdot:H3,CenterDot:V3,cfr:j3,Cfr:G3,CHcy:W3,chcy:X3,check:Y3,checkmark:K3,Chi:Z3,chi:J3,circ:Q3,circeq:e6,circlearrowleft:t6,circlearrowright:r6,circledast:n6,circledcirc:o6,circleddash:a6,CircleDot:i6,circledR:s6,circledS:l6,CircleMinus:c6,CirclePlus:u6,CircleTimes:d6,cir:h6,cirE:f6,cire:p6,cirfnint:m6,cirmid:v6,cirscir:g6,ClockwiseContourIntegral:b6,CloseCurlyDoubleQuote:y6,CloseCurlyQuote:x6,clubs:w6,clubsuit:k6,colon:S6,Colon:C6,Colone:A6,colone:T6,coloneq:_6,comma:D6,commat:z6,comp:E6,compfn:R6,complement:M6,complexes:B6,cong:I6,congdot:P6,Congruent:N6,conint:q6,Conint:F6,ContourIntegral:L6,copf:$6,Copf:O6,coprod:U6,Coproduct:H6,copy:V6,COPY:j6,copysr:G6,CounterClockwiseContourIntegral:W6,crarr:X6,cross:Y6,Cross:K6,Cscr:Z6,cscr:J6,csub:Q6,csube:eb,csup:tb,csupe:rb,ctdot:nb,cudarrl:ob,cudarrr:ab,cuepr:ib,cuesc:sb,cularr:lb,cularrp:cb,cupbrcap:ub,cupcap:db,CupCap:hb,cup:fb,Cup:pb,cupcup:mb,cupdot:vb,cupor:gb,cups:bb,curarr:yb,curarrm:xb,curlyeqprec:wb,curlyeqsucc:kb,curlyvee:Sb,curlywedge:Cb,curren:Ab,curvearrowleft:Tb,curvearrowright:_b,cuvee:Db,cuwed:zb,cwconint:Eb,cwint:Rb,cylcty:Mb,dagger:Bb,Dagger:Ib,daleth:Pb,darr:Nb,Darr:qb,dArr:Fb,dash:Lb,Dashv:$b,dashv:Ob,dbkarow:Ub,dblac:Hb,Dcaron:Vb,dcaron:jb,Dcy:Gb,dcy:Wb,ddagger:Xb,ddarr:Yb,DD:Kb,dd:Zb,DDotrahd:Jb,ddotseq:Qb,deg:e7,Del:t7,Delta:r7,delta:n7,demptyv:o7,dfisht:a7,Dfr:i7,dfr:s7,dHar:l7,dharl:c7,dharr:u7,DiacriticalAcute:d7,DiacriticalDot:h7,DiacriticalDoubleAcute:f7,DiacriticalGrave:p7,DiacriticalTilde:m7,diam:v7,diamond:g7,Diamond:b7,diamondsuit:y7,diams:x7,die:w7,DifferentialD:k7,digamma:S7,disin:C7,div:A7,divide:T7,divideontimes:_7,divonx:D7,DJcy:z7,djcy:E7,dlcorn:R7,dlcrop:M7,dollar:B7,Dopf:I7,dopf:P7,Dot:N7,dot:q7,DotDot:F7,doteq:L7,doteqdot:$7,DotEqual:O7,dotminus:U7,dotplus:H7,dotsquare:V7,doublebarwedge:j7,DoubleContourIntegral:G7,DoubleDot:W7,DoubleDownArrow:X7,DoubleLeftArrow:Y7,DoubleLeftRightArrow:K7,DoubleLeftTee:Z7,DoubleLongLeftArrow:J7,DoubleLongLeftRightArrow:Q7,DoubleLongRightArrow:e8,DoubleRightArrow:t8,DoubleRightTee:r8,DoubleUpArrow:n8,DoubleUpDownArrow:o8,DoubleVerticalBar:a8,DownArrowBar:i8,downarrow:s8,DownArrow:l8,Downarrow:c8,DownArrowUpArrow:u8,DownBreve:d8,downdownarrows:h8,downharpoonleft:f8,downharpoonright:p8,DownLeftRightVector:m8,DownLeftTeeVector:v8,DownLeftVectorBar:g8,DownLeftVector:b8,DownRightTeeVector:y8,DownRightVectorBar:x8,DownRightVector:w8,DownTeeArrow:k8,DownTee:S8,drbkarow:C8,drcorn:A8,drcrop:T8,Dscr:_8,dscr:D8,DScy:z8,dscy:E8,dsol:R8,Dstrok:M8,dstrok:B8,dtdot:I8,dtri:P8,dtrif:N8,duarr:q8,duhar:F8,dwangle:L8,DZcy:$8,dzcy:O8,dzigrarr:U8,Eacute:H8,eacute:V8,easter:j8,Ecaron:G8,ecaron:W8,Ecirc:X8,ecirc:Y8,ecir:K8,ecolon:Z8,Ecy:J8,ecy:Q8,eDDot:e9,Edot:t9,edot:r9,eDot:n9,ee:o9,efDot:a9,Efr:i9,efr:s9,eg:l9,Egrave:c9,egrave:u9,egs:d9,egsdot:h9,el:f9,Element:p9,elinters:m9,ell:v9,els:g9,elsdot:b9,Emacr:y9,emacr:x9,empty:w9,emptyset:k9,EmptySmallSquare:S9,emptyv:C9,EmptyVerySmallSquare:A9,emsp13:T9,emsp14:_9,emsp:D9,ENG:z9,eng:E9,ensp:R9,Eogon:M9,eogon:B9,Eopf:I9,eopf:P9,epar:N9,eparsl:q9,eplus:F9,epsi:L9,Epsilon:$9,epsilon:O9,epsiv:U9,eqcirc:H9,eqcolon:V9,eqsim:j9,eqslantgtr:G9,eqslantless:W9,Equal:X9,equals:Y9,EqualTilde:K9,equest:Z9,Equilibrium:J9,equiv:Q9,equivDD:ey,eqvparsl:ty,erarr:ry,erDot:ny,escr:oy,Escr:ay,esdot:iy,Esim:sy,esim:ly,Eta:cy,eta:uy,ETH:dy,eth:hy,Euml:fy,euml:py,euro:my,excl:vy,exist:gy,Exists:by,expectation:yy,exponentiale:xy,ExponentialE:wy,fallingdotseq:ky,Fcy:Sy,fcy:Cy,female:Ay,ffilig:Ty,fflig:_y,ffllig:Dy,Ffr:zy,ffr:Ey,filig:Ry,FilledSmallSquare:My,FilledVerySmallSquare:By,fjlig:Iy,flat:Py,fllig:Ny,fltns:qy,fnof:Fy,Fopf:Ly,fopf:$y,forall:Oy,ForAll:Uy,fork:Hy,forkv:Vy,Fouriertrf:jy,fpartint:Gy,frac12:Wy,frac13:Xy,frac14:Yy,frac15:Ky,frac16:Zy,frac18:Jy,frac23:Qy,frac25:ex,frac34:tx,frac35:rx,frac38:nx,frac45:ox,frac56:ax,frac58:ix,frac78:sx,frasl:lx,frown:cx,fscr:ux,Fscr:dx,gacute:hx,Gamma:fx,gamma:px,Gammad:mx,gammad:vx,gap:gx,Gbreve:bx,gbreve:yx,Gcedil:xx,Gcirc:wx,gcirc:kx,Gcy:Sx,gcy:Cx,Gdot:Ax,gdot:Tx,ge:_x,gE:Dx,gEl:zx,gel:Ex,geq:Rx,geqq:Mx,geqslant:Bx,gescc:Ix,ges:Px,gesdot:Nx,gesdoto:qx,gesdotol:Fx,gesl:Lx,gesles:$x,Gfr:Ox,gfr:Ux,gg:Hx,Gg:Vx,ggg:jx,gimel:Gx,GJcy:Wx,gjcy:Xx,gla:Yx,gl:Kx,glE:Zx,glj:Jx,gnap:Qx,gnapprox:ew,gne:tw,gnE:rw,gneq:nw,gneqq:ow,gnsim:aw,Gopf:iw,gopf:sw,grave:lw,GreaterEqual:cw,GreaterEqualLess:uw,GreaterFullEqual:dw,GreaterGreater:hw,GreaterLess:fw,GreaterSlantEqual:pw,GreaterTilde:mw,Gscr:vw,gscr:gw,gsim:bw,gsime:yw,gsiml:xw,gtcc:ww,gtcir:kw,gt:Sw,GT:Cw,Gt:Aw,gtdot:Tw,gtlPar:_w,gtquest:Dw,gtrapprox:zw,gtrarr:Ew,gtrdot:Rw,gtreqless:Mw,gtreqqless:Bw,gtrless:Iw,gtrsim:Pw,gvertneqq:Nw,gvnE:qw,Hacek:Fw,hairsp:Lw,half:$w,hamilt:Ow,HARDcy:Uw,hardcy:Hw,harrcir:Vw,harr:jw,hArr:Gw,harrw:Ww,Hat:Xw,hbar:Yw,Hcirc:Kw,hcirc:Zw,hearts:Jw,heartsuit:Qw,hellip:ek,hercon:tk,hfr:rk,Hfr:nk,HilbertSpace:ok,hksearow:ak,hkswarow:ik,hoarr:sk,homtht:lk,hookleftarrow:ck,hookrightarrow:uk,hopf:dk,Hopf:hk,horbar:fk,HorizontalLine:pk,hscr:mk,Hscr:vk,hslash:gk,Hstrok:bk,hstrok:yk,HumpDownHump:xk,HumpEqual:wk,hybull:kk,hyphen:Sk,Iacute:Ck,iacute:Ak,ic:Tk,Icirc:_k,icirc:Dk,Icy:zk,icy:Ek,Idot:Rk,IEcy:Mk,iecy:Bk,iexcl:Ik,iff:Pk,ifr:Nk,Ifr:qk,Igrave:Fk,igrave:Lk,ii:$k,iiiint:Ok,iiint:Uk,iinfin:Hk,iiota:Vk,IJlig:jk,ijlig:Gk,Imacr:Wk,imacr:Xk,image:Yk,ImaginaryI:Kk,imagline:Zk,imagpart:Jk,imath:Qk,Im:eS,imof:tS,imped:rS,Implies:nS,incare:oS,in:"∈",infin:aS,infintie:iS,inodot:sS,intcal:lS,int:cS,Int:uS,integers:dS,Integral:hS,intercal:fS,Intersection:pS,intlarhk:mS,intprod:vS,InvisibleComma:gS,InvisibleTimes:bS,IOcy:yS,iocy:xS,Iogon:wS,iogon:kS,Iopf:SS,iopf:CS,Iota:AS,iota:TS,iprod:_S,iquest:DS,iscr:zS,Iscr:ES,isin:RS,isindot:MS,isinE:BS,isins:IS,isinsv:PS,isinv:NS,it:qS,Itilde:FS,itilde:LS,Iukcy:$S,iukcy:OS,Iuml:US,iuml:HS,Jcirc:VS,jcirc:jS,Jcy:GS,jcy:WS,Jfr:XS,jfr:YS,jmath:KS,Jopf:ZS,jopf:JS,Jscr:QS,jscr:eC,Jsercy:tC,jsercy:rC,Jukcy:nC,jukcy:oC,Kappa:aC,kappa:iC,kappav:sC,Kcedil:lC,kcedil:cC,Kcy:uC,kcy:dC,Kfr:hC,kfr:fC,kgreen:pC,KHcy:mC,khcy:vC,KJcy:gC,kjcy:bC,Kopf:yC,kopf:xC,Kscr:wC,kscr:kC,lAarr:SC,Lacute:CC,lacute:AC,laemptyv:TC,lagran:_C,Lambda:DC,lambda:zC,lang:EC,Lang:RC,langd:MC,langle:BC,lap:IC,Laplacetrf:PC,laquo:NC,larrb:qC,larrbfs:FC,larr:LC,Larr:$C,lArr:OC,larrfs:UC,larrhk:HC,larrlp:VC,larrpl:jC,larrsim:GC,larrtl:WC,latail:XC,lAtail:YC,lat:KC,late:ZC,lates:JC,lbarr:QC,lBarr:eA,lbbrk:tA,lbrace:rA,lbrack:nA,lbrke:oA,lbrksld:aA,lbrkslu:iA,Lcaron:sA,lcaron:lA,Lcedil:cA,lcedil:uA,lceil:dA,lcub:hA,Lcy:fA,lcy:pA,ldca:mA,ldquo:vA,ldquor:gA,ldrdhar:bA,ldrushar:yA,ldsh:xA,le:wA,lE:kA,LeftAngleBracket:SA,LeftArrowBar:CA,leftarrow:AA,LeftArrow:TA,Leftarrow:_A,LeftArrowRightArrow:DA,leftarrowtail:zA,LeftCeiling:EA,LeftDoubleBracket:RA,LeftDownTeeVector:MA,LeftDownVectorBar:BA,LeftDownVector:IA,LeftFloor:PA,leftharpoondown:NA,leftharpoonup:qA,leftleftarrows:FA,leftrightarrow:LA,LeftRightArrow:$A,Leftrightarrow:OA,leftrightarrows:UA,leftrightharpoons:HA,leftrightsquigarrow:VA,LeftRightVector:jA,LeftTeeArrow:GA,LeftTee:WA,LeftTeeVector:XA,leftthreetimes:YA,LeftTriangleBar:KA,LeftTriangle:ZA,LeftTriangleEqual:JA,LeftUpDownVector:QA,LeftUpTeeVector:eT,LeftUpVectorBar:tT,LeftUpVector:rT,LeftVectorBar:nT,LeftVector:oT,lEg:aT,leg:iT,leq:sT,leqq:lT,leqslant:cT,lescc:uT,les:dT,lesdot:hT,lesdoto:fT,lesdotor:pT,lesg:mT,lesges:vT,lessapprox:gT,lessdot:bT,lesseqgtr:yT,lesseqqgtr:xT,LessEqualGreater:wT,LessFullEqual:kT,LessGreater:ST,lessgtr:CT,LessLess:AT,lesssim:TT,LessSlantEqual:_T,LessTilde:DT,lfisht:zT,lfloor:ET,Lfr:RT,lfr:MT,lg:BT,lgE:IT,lHar:PT,lhard:NT,lharu:qT,lharul:FT,lhblk:LT,LJcy:$T,ljcy:OT,llarr:UT,ll:HT,Ll:VT,llcorner:jT,Lleftarrow:GT,llhard:WT,lltri:XT,Lmidot:YT,lmidot:KT,lmoustache:ZT,lmoust:JT,lnap:QT,lnapprox:e_,lne:t_,lnE:r_,lneq:n_,lneqq:o_,lnsim:a_,loang:i_,loarr:s_,lobrk:l_,longleftarrow:c_,LongLeftArrow:u_,Longleftarrow:d_,longleftrightarrow:h_,LongLeftRightArrow:f_,Longleftrightarrow:p_,longmapsto:m_,longrightarrow:v_,LongRightArrow:g_,Longrightarrow:b_,looparrowleft:y_,looparrowright:x_,lopar:w_,Lopf:k_,lopf:S_,loplus:C_,lotimes:A_,lowast:T_,lowbar:__,LowerLeftArrow:D_,LowerRightArrow:z_,loz:E_,lozenge:R_,lozf:M_,lpar:B_,lparlt:I_,lrarr:P_,lrcorner:N_,lrhar:q_,lrhard:F_,lrm:L_,lrtri:$_,lsaquo:O_,lscr:U_,Lscr:H_,lsh:V_,Lsh:j_,lsim:G_,lsime:W_,lsimg:X_,lsqb:Y_,lsquo:K_,lsquor:Z_,Lstrok:J_,lstrok:Q_,ltcc:eD,ltcir:tD,lt:rD,LT:nD,Lt:oD,ltdot:aD,lthree:iD,ltimes:sD,ltlarr:lD,ltquest:cD,ltri:uD,ltrie:dD,ltrif:hD,ltrPar:fD,lurdshar:pD,luruhar:mD,lvertneqq:vD,lvnE:gD,macr:bD,male:yD,malt:xD,maltese:wD,Map:"⤅",map:kD,mapsto:SD,mapstodown:CD,mapstoleft:AD,mapstoup:TD,marker:_D,mcomma:DD,Mcy:zD,mcy:ED,mdash:RD,mDDot:MD,measuredangle:BD,MediumSpace:ID,Mellintrf:PD,Mfr:ND,mfr:qD,mho:FD,micro:LD,midast:$D,midcir:OD,mid:UD,middot:HD,minusb:VD,minus:jD,minusd:GD,minusdu:WD,MinusPlus:XD,mlcp:YD,mldr:KD,mnplus:ZD,models:JD,Mopf:QD,mopf:ez,mp:tz,mscr:rz,Mscr:nz,mstpos:oz,Mu:az,mu:iz,multimap:sz,mumap:lz,nabla:cz,Nacute:uz,nacute:dz,nang:hz,nap:fz,napE:pz,napid:mz,napos:vz,napprox:gz,natural:bz,naturals:yz,natur:xz,nbsp:wz,nbump:kz,nbumpe:Sz,ncap:Cz,Ncaron:Az,ncaron:Tz,Ncedil:_z,ncedil:Dz,ncong:zz,ncongdot:Ez,ncup:Rz,Ncy:Mz,ncy:Bz,ndash:Iz,nearhk:Pz,nearr:Nz,neArr:qz,nearrow:Fz,ne:Lz,nedot:$z,NegativeMediumSpace:Oz,NegativeThickSpace:Uz,NegativeThinSpace:Hz,NegativeVeryThinSpace:Vz,nequiv:jz,nesear:Gz,nesim:Wz,NestedGreaterGreater:Xz,NestedLessLess:Yz,NewLine:Kz,nexist:Zz,nexists:Jz,Nfr:Qz,nfr:eE,ngE:tE,nge:rE,ngeq:nE,ngeqq:oE,ngeqslant:aE,nges:iE,nGg:sE,ngsim:lE,nGt:cE,ngt:uE,ngtr:dE,nGtv:hE,nharr:fE,nhArr:pE,nhpar:mE,ni:vE,nis:gE,nisd:bE,niv:yE,NJcy:xE,njcy:wE,nlarr:kE,nlArr:SE,nldr:CE,nlE:AE,nle:TE,nleftarrow:_E,nLeftarrow:DE,nleftrightarrow:zE,nLeftrightarrow:EE,nleq:RE,nleqq:ME,nleqslant:BE,nles:IE,nless:PE,nLl:NE,nlsim:qE,nLt:FE,nlt:LE,nltri:$E,nltrie:OE,nLtv:UE,nmid:HE,NoBreak:VE,NonBreakingSpace:jE,nopf:GE,Nopf:WE,Not:XE,not:YE,NotCongruent:KE,NotCupCap:ZE,NotDoubleVerticalBar:JE,NotElement:QE,NotEqual:eR,NotEqualTilde:tR,NotExists:rR,NotGreater:nR,NotGreaterEqual:oR,NotGreaterFullEqual:aR,NotGreaterGreater:iR,NotGreaterLess:sR,NotGreaterSlantEqual:lR,NotGreaterTilde:cR,NotHumpDownHump:uR,NotHumpEqual:dR,notin:hR,notindot:fR,notinE:pR,notinva:mR,notinvb:vR,notinvc:gR,NotLeftTriangleBar:bR,NotLeftTriangle:yR,NotLeftTriangleEqual:xR,NotLess:wR,NotLessEqual:kR,NotLessGreater:SR,NotLessLess:CR,NotLessSlantEqual:AR,NotLessTilde:TR,NotNestedGreaterGreater:_R,NotNestedLessLess:DR,notni:zR,notniva:ER,notnivb:RR,notnivc:MR,NotPrecedes:BR,NotPrecedesEqual:IR,NotPrecedesSlantEqual:PR,NotReverseElement:NR,NotRightTriangleBar:qR,NotRightTriangle:FR,NotRightTriangleEqual:LR,NotSquareSubset:$R,NotSquareSubsetEqual:OR,NotSquareSuperset:UR,NotSquareSupersetEqual:HR,NotSubset:VR,NotSubsetEqual:jR,NotSucceeds:GR,NotSucceedsEqual:WR,NotSucceedsSlantEqual:XR,NotSucceedsTilde:YR,NotSuperset:KR,NotSupersetEqual:ZR,NotTilde:JR,NotTildeEqual:QR,NotTildeFullEqual:eM,NotTildeTilde:tM,NotVerticalBar:rM,nparallel:nM,npar:oM,nparsl:aM,npart:iM,npolint:sM,npr:lM,nprcue:cM,nprec:uM,npreceq:dM,npre:hM,nrarrc:fM,nrarr:pM,nrArr:mM,nrarrw:vM,nrightarrow:gM,nRightarrow:bM,nrtri:yM,nrtrie:xM,nsc:wM,nsccue:kM,nsce:SM,Nscr:CM,nscr:AM,nshortmid:TM,nshortparallel:_M,nsim:DM,nsime:zM,nsimeq:EM,nsmid:RM,nspar:MM,nsqsube:BM,nsqsupe:IM,nsub:PM,nsubE:NM,nsube:qM,nsubset:FM,nsubseteq:LM,nsubseteqq:$M,nsucc:OM,nsucceq:UM,nsup:HM,nsupE:VM,nsupe:jM,nsupset:GM,nsupseteq:WM,nsupseteqq:XM,ntgl:YM,Ntilde:KM,ntilde:ZM,ntlg:JM,ntriangleleft:QM,ntrianglelefteq:eB,ntriangleright:tB,ntrianglerighteq:rB,Nu:nB,nu:oB,num:aB,numero:iB,numsp:sB,nvap:lB,nvdash:cB,nvDash:uB,nVdash:dB,nVDash:hB,nvge:fB,nvgt:pB,nvHarr:mB,nvinfin:vB,nvlArr:gB,nvle:bB,nvlt:yB,nvltrie:xB,nvrArr:wB,nvrtrie:kB,nvsim:SB,nwarhk:CB,nwarr:AB,nwArr:TB,nwarrow:_B,nwnear:DB,Oacute:zB,oacute:EB,oast:RB,Ocirc:MB,ocirc:BB,ocir:IB,Ocy:PB,ocy:NB,odash:qB,Odblac:FB,odblac:LB,odiv:$B,odot:OB,odsold:UB,OElig:HB,oelig:VB,ofcir:jB,Ofr:GB,ofr:WB,ogon:XB,Ograve:YB,ograve:KB,ogt:ZB,ohbar:JB,ohm:QB,oint:eI,olarr:tI,olcir:rI,olcross:nI,oline:oI,olt:aI,Omacr:iI,omacr:sI,Omega:lI,omega:cI,Omicron:uI,omicron:dI,omid:hI,ominus:fI,Oopf:pI,oopf:mI,opar:vI,OpenCurlyDoubleQuote:gI,OpenCurlyQuote:bI,operp:yI,oplus:xI,orarr:wI,Or:kI,or:SI,ord:CI,order:AI,orderof:TI,ordf:_I,ordm:DI,origof:zI,oror:EI,orslope:RI,orv:MI,oS:BI,Oscr:II,oscr:PI,Oslash:NI,oslash:qI,osol:FI,Otilde:LI,otilde:$I,otimesas:OI,Otimes:UI,otimes:HI,Ouml:VI,ouml:jI,ovbar:GI,OverBar:WI,OverBrace:XI,OverBracket:YI,OverParenthesis:KI,para:ZI,parallel:JI,par:QI,parsim:eP,parsl:tP,part:rP,PartialD:nP,Pcy:oP,pcy:aP,percnt:iP,period:sP,permil:lP,perp:cP,pertenk:uP,Pfr:dP,pfr:hP,Phi:fP,phi:pP,phiv:mP,phmmat:vP,phone:gP,Pi:bP,pi:yP,pitchfork:xP,piv:wP,planck:kP,planckh:SP,plankv:CP,plusacir:AP,plusb:TP,pluscir:_P,plus:DP,plusdo:zP,plusdu:EP,pluse:RP,PlusMinus:MP,plusmn:BP,plussim:IP,plustwo:PP,pm:NP,Poincareplane:qP,pointint:FP,popf:LP,Popf:$P,pound:OP,prap:UP,Pr:HP,pr:VP,prcue:jP,precapprox:GP,prec:WP,preccurlyeq:XP,Precedes:YP,PrecedesEqual:KP,PrecedesSlantEqual:ZP,PrecedesTilde:JP,preceq:QP,precnapprox:eN,precneqq:tN,precnsim:rN,pre:nN,prE:oN,precsim:aN,prime:iN,Prime:sN,primes:lN,prnap:cN,prnE:uN,prnsim:dN,prod:hN,Product:fN,profalar:pN,profline:mN,profsurf:vN,prop:gN,Proportional:bN,Proportion:yN,propto:xN,prsim:wN,prurel:kN,Pscr:SN,pscr:CN,Psi:AN,psi:TN,puncsp:_N,Qfr:DN,qfr:zN,qint:EN,qopf:RN,Qopf:MN,qprime:BN,Qscr:IN,qscr:PN,quaternions:NN,quatint:qN,quest:FN,questeq:LN,quot:$N,QUOT:ON,rAarr:UN,race:HN,Racute:VN,racute:jN,radic:GN,raemptyv:WN,rang:XN,Rang:YN,rangd:KN,range:ZN,rangle:JN,raquo:QN,rarrap:eq,rarrb:tq,rarrbfs:rq,rarrc:nq,rarr:oq,Rarr:aq,rArr:iq,rarrfs:sq,rarrhk:lq,rarrlp:cq,rarrpl:uq,rarrsim:dq,Rarrtl:hq,rarrtl:fq,rarrw:pq,ratail:mq,rAtail:vq,ratio:gq,rationals:bq,rbarr:yq,rBarr:xq,RBarr:wq,rbbrk:kq,rbrace:Sq,rbrack:Cq,rbrke:Aq,rbrksld:Tq,rbrkslu:_q,Rcaron:Dq,rcaron:zq,Rcedil:Eq,rcedil:Rq,rceil:Mq,rcub:Bq,Rcy:Iq,rcy:Pq,rdca:Nq,rdldhar:qq,rdquo:Fq,rdquor:Lq,rdsh:$q,real:Oq,realine:Uq,realpart:Hq,reals:Vq,Re:jq,rect:Gq,reg:Wq,REG:Xq,ReverseElement:Yq,ReverseEquilibrium:Kq,ReverseUpEquilibrium:Zq,rfisht:Jq,rfloor:Qq,rfr:eF,Rfr:tF,rHar:rF,rhard:nF,rharu:oF,rharul:aF,Rho:iF,rho:sF,rhov:lF,RightAngleBracket:cF,RightArrowBar:uF,rightarrow:dF,RightArrow:hF,Rightarrow:fF,RightArrowLeftArrow:pF,rightarrowtail:mF,RightCeiling:vF,RightDoubleBracket:gF,RightDownTeeVector:bF,RightDownVectorBar:yF,RightDownVector:xF,RightFloor:wF,rightharpoondown:kF,rightharpoonup:SF,rightleftarrows:CF,rightleftharpoons:AF,rightrightarrows:TF,rightsquigarrow:_F,RightTeeArrow:DF,RightTee:zF,RightTeeVector:EF,rightthreetimes:RF,RightTriangleBar:MF,RightTriangle:BF,RightTriangleEqual:IF,RightUpDownVector:PF,RightUpTeeVector:NF,RightUpVectorBar:qF,RightUpVector:FF,RightVectorBar:LF,RightVector:$F,ring:OF,risingdotseq:UF,rlarr:HF,rlhar:VF,rlm:jF,rmoustache:GF,rmoust:WF,rnmid:XF,roang:YF,roarr:KF,robrk:ZF,ropar:JF,ropf:QF,Ropf:eL,roplus:tL,rotimes:rL,RoundImplies:nL,rpar:oL,rpargt:aL,rppolint:iL,rrarr:sL,Rrightarrow:lL,rsaquo:cL,rscr:uL,Rscr:dL,rsh:hL,Rsh:fL,rsqb:pL,rsquo:mL,rsquor:vL,rthree:gL,rtimes:bL,rtri:yL,rtrie:xL,rtrif:wL,rtriltri:kL,RuleDelayed:SL,ruluhar:CL,rx:AL,Sacute:TL,sacute:_L,sbquo:DL,scap:zL,Scaron:EL,scaron:RL,Sc:ML,sc:BL,sccue:IL,sce:PL,scE:NL,Scedil:qL,scedil:FL,Scirc:LL,scirc:$L,scnap:OL,scnE:UL,scnsim:HL,scpolint:VL,scsim:jL,Scy:GL,scy:WL,sdotb:XL,sdot:YL,sdote:KL,searhk:ZL,searr:JL,seArr:QL,searrow:e$,sect:t$,semi:r$,seswar:n$,setminus:o$,setmn:a$,sext:i$,Sfr:s$,sfr:l$,sfrown:c$,sharp:u$,SHCHcy:d$,shchcy:h$,SHcy:f$,shcy:p$,ShortDownArrow:m$,ShortLeftArrow:v$,shortmid:g$,shortparallel:b$,ShortRightArrow:y$,ShortUpArrow:x$,shy:w$,Sigma:k$,sigma:S$,sigmaf:C$,sigmav:A$,sim:T$,simdot:_$,sime:D$,simeq:z$,simg:E$,simgE:R$,siml:M$,simlE:B$,simne:I$,simplus:P$,simrarr:N$,slarr:q$,SmallCircle:F$,smallsetminus:L$,smashp:$$,smeparsl:O$,smid:U$,smile:H$,smt:V$,smte:j$,smtes:G$,SOFTcy:W$,softcy:X$,solbar:Y$,solb:K$,sol:Z$,Sopf:J$,sopf:Q$,spades:eO,spadesuit:tO,spar:rO,sqcap:nO,sqcaps:oO,sqcup:aO,sqcups:iO,Sqrt:sO,sqsub:lO,sqsube:cO,sqsubset:uO,sqsubseteq:dO,sqsup:hO,sqsupe:fO,sqsupset:pO,sqsupseteq:mO,square:vO,Square:gO,SquareIntersection:bO,SquareSubset:yO,SquareSubsetEqual:xO,SquareSuperset:wO,SquareSupersetEqual:kO,SquareUnion:SO,squarf:CO,squ:AO,squf:TO,srarr:_O,Sscr:DO,sscr:zO,ssetmn:EO,ssmile:RO,sstarf:MO,Star:BO,star:IO,starf:PO,straightepsilon:NO,straightphi:qO,strns:FO,sub:LO,Sub:$O,subdot:OO,subE:UO,sube:HO,subedot:VO,submult:jO,subnE:GO,subne:WO,subplus:XO,subrarr:YO,subset:KO,Subset:ZO,subseteq:JO,subseteqq:QO,SubsetEqual:eU,subsetneq:tU,subsetneqq:rU,subsim:nU,subsub:oU,subsup:aU,succapprox:iU,succ:sU,succcurlyeq:lU,Succeeds:cU,SucceedsEqual:uU,SucceedsSlantEqual:dU,SucceedsTilde:hU,succeq:fU,succnapprox:pU,succneqq:mU,succnsim:vU,succsim:gU,SuchThat:bU,sum:yU,Sum:xU,sung:wU,sup1:kU,sup2:SU,sup3:CU,sup:AU,Sup:TU,supdot:_U,supdsub:DU,supE:zU,supe:EU,supedot:RU,Superset:MU,SupersetEqual:BU,suphsol:IU,suphsub:PU,suplarr:NU,supmult:qU,supnE:FU,supne:LU,supplus:$U,supset:OU,Supset:UU,supseteq:HU,supseteqq:VU,supsetneq:jU,supsetneqq:GU,supsim:WU,supsub:XU,supsup:YU,swarhk:KU,swarr:ZU,swArr:JU,swarrow:QU,swnwar:eH,szlig:tH,Tab:rH,target:nH,Tau:oH,tau:aH,tbrk:iH,Tcaron:sH,tcaron:lH,Tcedil:cH,tcedil:uH,Tcy:dH,tcy:hH,tdot:fH,telrec:pH,Tfr:mH,tfr:vH,there4:gH,therefore:bH,Therefore:yH,Theta:xH,theta:wH,thetasym:kH,thetav:SH,thickapprox:CH,thicksim:AH,ThickSpace:TH,ThinSpace:_H,thinsp:DH,thkap:zH,thksim:EH,THORN:RH,thorn:MH,tilde:BH,Tilde:IH,TildeEqual:PH,TildeFullEqual:NH,TildeTilde:qH,timesbar:FH,timesb:LH,times:$H,timesd:OH,tint:UH,toea:HH,topbot:VH,topcir:jH,top:GH,Topf:WH,topf:XH,topfork:YH,tosa:KH,tprime:ZH,trade:JH,TRADE:QH,triangle:eV,triangledown:tV,triangleleft:rV,trianglelefteq:nV,triangleq:oV,triangleright:aV,trianglerighteq:iV,tridot:sV,trie:lV,triminus:cV,TripleDot:uV,triplus:dV,trisb:hV,tritime:fV,trpezium:pV,Tscr:mV,tscr:vV,TScy:gV,tscy:bV,TSHcy:yV,tshcy:xV,Tstrok:wV,tstrok:kV,twixt:SV,twoheadleftarrow:CV,twoheadrightarrow:AV,Uacute:TV,uacute:_V,uarr:DV,Uarr:zV,uArr:EV,Uarrocir:RV,Ubrcy:MV,ubrcy:BV,Ubreve:IV,ubreve:PV,Ucirc:NV,ucirc:qV,Ucy:FV,ucy:LV,udarr:$V,Udblac:OV,udblac:UV,udhar:HV,ufisht:VV,Ufr:jV,ufr:GV,Ugrave:WV,ugrave:XV,uHar:YV,uharl:KV,uharr:ZV,uhblk:JV,ulcorn:QV,ulcorner:ej,ulcrop:tj,ultri:rj,Umacr:nj,umacr:oj,uml:aj,UnderBar:ij,UnderBrace:sj,UnderBracket:lj,UnderParenthesis:cj,Union:uj,UnionPlus:dj,Uogon:hj,uogon:fj,Uopf:pj,uopf:mj,UpArrowBar:vj,uparrow:gj,UpArrow:bj,Uparrow:yj,UpArrowDownArrow:xj,updownarrow:wj,UpDownArrow:kj,Updownarrow:Sj,UpEquilibrium:Cj,upharpoonleft:Aj,upharpoonright:Tj,uplus:_j,UpperLeftArrow:Dj,UpperRightArrow:zj,upsi:Ej,Upsi:Rj,upsih:Mj,Upsilon:Bj,upsilon:Ij,UpTeeArrow:Pj,UpTee:Nj,upuparrows:qj,urcorn:Fj,urcorner:Lj,urcrop:$j,Uring:Oj,uring:Uj,urtri:Hj,Uscr:Vj,uscr:jj,utdot:Gj,Utilde:Wj,utilde:Xj,utri:Yj,utrif:Kj,uuarr:Zj,Uuml:Jj,uuml:Qj,uwangle:eG,vangrt:tG,varepsilon:rG,varkappa:nG,varnothing:oG,varphi:aG,varpi:iG,varpropto:sG,varr:lG,vArr:cG,varrho:uG,varsigma:dG,varsubsetneq:hG,varsubsetneqq:fG,varsupsetneq:pG,varsupsetneqq:mG,vartheta:vG,vartriangleleft:gG,vartriangleright:bG,vBar:yG,Vbar:xG,vBarv:wG,Vcy:kG,vcy:SG,vdash:CG,vDash:AG,Vdash:TG,VDash:_G,Vdashl:DG,veebar:zG,vee:EG,Vee:RG,veeeq:MG,vellip:BG,verbar:IG,Verbar:PG,vert:NG,Vert:qG,VerticalBar:FG,VerticalLine:LG,VerticalSeparator:$G,VerticalTilde:OG,VeryThinSpace:UG,Vfr:HG,vfr:VG,vltri:jG,vnsub:GG,vnsup:WG,Vopf:XG,vopf:YG,vprop:KG,vrtri:ZG,Vscr:JG,vscr:QG,vsubnE:eW,vsubne:tW,vsupnE:rW,vsupne:nW,Vvdash:oW,vzigzag:aW,Wcirc:iW,wcirc:sW,wedbar:lW,wedge:cW,Wedge:uW,wedgeq:dW,weierp:hW,Wfr:fW,wfr:pW,Wopf:mW,wopf:vW,wp:gW,wr:bW,wreath:yW,Wscr:xW,wscr:wW,xcap:kW,xcirc:SW,xcup:CW,xdtri:AW,Xfr:TW,xfr:_W,xharr:DW,xhArr:zW,Xi:EW,xi:RW,xlarr:MW,xlArr:BW,xmap:IW,xnis:PW,xodot:NW,Xopf:qW,xopf:FW,xoplus:LW,xotime:$W,xrarr:OW,xrArr:UW,Xscr:HW,xscr:VW,xsqcup:jW,xuplus:GW,xutri:WW,xvee:XW,xwedge:YW,Yacute:KW,yacute:ZW,YAcy:JW,yacy:QW,Ycirc:eX,ycirc:tX,Ycy:rX,ycy:nX,yen:oX,Yfr:aX,yfr:iX,YIcy:sX,yicy:lX,Yopf:cX,yopf:uX,Yscr:dX,yscr:hX,YUcy:fX,yucy:pX,yuml:mX,Yuml:vX,Zacute:gX,zacute:bX,Zcaron:yX,zcaron:xX,Zcy:wX,zcy:kX,Zdot:SX,zdot:CX,zeetrf:AX,ZeroWidthSpace:TX,Zeta:_X,zeta:DX,zfr:zX,Zfr:EX,ZHcy:RX,zhcy:MX,zigrarr:BX,zopf:IX,Zopf:PX,Zscr:NX,zscr:qX,zwj:FX,zwnj:LX};(function(e){e.exports=$X})(kv);var El=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,xo={},Hc={};function OX(e){var t,n,i=Hc[e];if(i)return i;for(i=Hc[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?i.push(n):i.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t"u"&&(n=!0),h=OX(t),i=0,c=e.length;i=55296&&l<=57343){if(l>=55296&&l<=56319&&i+1=56320&&u<=57343)){f+=encodeURIComponent(e[i]+e[i+1]),i++;continue}f+="%EF%BF%BD";continue}f+=encodeURIComponent(e[i])}return f}bi.defaultChars=";/?:@&=+$,-_.!~*'()#";bi.componentChars="-_.!~*'()";var UX=bi,Vc={};function HX(e){var t,n,i=Vc[e];if(i)return i;for(i=Vc[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),i.push(n);for(t=0;t=55296&&y<=57343?k+="���":k+=String.fromCharCode(y),c+=6;continue}if((u&248)===240&&c+91114111?k+="����":(y-=65536,k+=String.fromCharCode(55296+(y>>10),56320+(y&1023))),c+=9;continue}k+="�"}return k})}yi.defaultChars=";/?:@&=+$,#";yi.componentChars="";var VX=yi,jX=function(t){var n="";return n+=t.protocol||"",n+=t.slashes?"//":"",n+=t.auth?t.auth+"@":"",t.hostname&&t.hostname.indexOf(":")!==-1?n+="["+t.hostname+"]":n+=t.hostname||"",n+=t.port?":"+t.port:"",n+=t.pathname||"",n+=t.search||"",n+=t.hash||"",n};function ci(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var GX=/^([a-z0-9.+-]+:)/i,WX=/:[0-9]*$/,XX=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,YX=["<",">",'"',"`"," ","\r",` -`," "],KX=["{","}","|","\\","^","`"].concat(YX),ZX=["'"].concat(KX),jc=["%","/","?",";","#"].concat(ZX),Gc=["/","?","#"],JX=255,Wc=/^[+a-z0-9A-Z_-]{0,63}$/,QX=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Xc={javascript:!0,"javascript:":!0},Yc={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function eY(e,t){if(e&&e instanceof ci)return e;var n=new ci;return n.parse(e,t),n}ci.prototype.parse=function(e,t){var n,i,c,l,u,h=e;if(h=h.trim(),!t&&e.split("#").length===1){var f=XX.exec(h);if(f)return this.pathname=f[1],f[2]&&(this.search=f[2]),this}var b=GX.exec(h);if(b&&(b=b[0],c=b.toLowerCase(),this.protocol=b,h=h.substr(b.length)),(t||b||h.match(/^\/\/[^@\/]+@[^@\/]+/))&&(u=h.substr(0,2)==="//",u&&!(b&&Xc[b])&&(h=h.substr(2),this.slashes=!0)),!Xc[b]&&(u||b&&!Yc[b])){var y=-1;for(n=0;n127?E+="x":E+=$[B];if(!E.match(Wc)){var U=P.slice(0,n),q=P.slice(n+1),R=$.match(QX);R&&(U.push(R[1]),q.unshift(R[2])),q.length&&(h=q.join(".")+h),this.hostname=U.join(".");break}}}}this.hostname.length>JX&&(this.hostname=""),L&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var j=h.indexOf("#");j!==-1&&(this.hash=h.substr(j),h=h.slice(0,j));var ie=h.indexOf("?");return ie!==-1&&(this.search=h.substr(ie),h=h.slice(0,ie)),h&&(this.pathname=h),Yc[c]&&this.hostname&&!this.pathname&&(this.pathname=""),this};ci.prototype.parseHost=function(e){var t=WX.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};var tY=eY;xo.encode=UX;xo.decode=VX;xo.format=jX;xo.parse=tY;var $n={},Ps,Kc;function Ud(){return Kc||(Kc=1,Ps=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/),Ps}var Ns,Zc;function Hd(){return Zc||(Zc=1,Ns=/[\0-\x1F\x7F-\x9F]/),Ns}var qs,Jc;function rY(){return Jc||(Jc=1,qs=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/),qs}var Fs,Qc;function Vd(){return Qc||(Qc=1,Fs=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/),Fs}var eu;function nY(){return eu||(eu=1,$n.Any=Ud(),$n.Cc=Hd(),$n.Cf=rY(),$n.P=El,$n.Z=Vd()),$n}(function(e){function t(V){return Object.prototype.toString.call(V)}function n(V){return t(V)==="[object String]"}var i=Object.prototype.hasOwnProperty;function c(V,ae){return i.call(V,ae)}function l(V){var ae=Array.prototype.slice.call(arguments,1);return ae.forEach(function(me){if(me){if(typeof me!="object")throw new TypeError(me+"must be object");Object.keys(me).forEach(function(Ce){V[Ce]=me[Ce]})}}),V}function u(V,ae,me){return[].concat(V.slice(0,ae),me,V.slice(ae+1))}function h(V){return!(V>=55296&&V<=57343||V>=64976&&V<=65007||(V&65535)===65535||(V&65535)===65534||V>=0&&V<=8||V===11||V>=14&&V<=31||V>=127&&V<=159||V>1114111)}function f(V){if(V>65535){V-=65536;var ae=55296+(V>>10),me=56320+(V&1023);return String.fromCharCode(ae,me)}return String.fromCharCode(V)}var b=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,y=/&([a-z#][a-z0-9]{1,31});/gi,k=new RegExp(b.source+"|"+y.source,"gi"),C=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,S=li;function L(V,ae){var me=0;return c(S,ae)?S[ae]:ae.charCodeAt(0)===35&&C.test(ae)&&(me=ae[1].toLowerCase()==="x"?parseInt(ae.slice(2),16):parseInt(ae.slice(1),10),h(me))?f(me):V}function P(V){return V.indexOf("\\")<0?V:V.replace(b,"$1")}function $(V){return V.indexOf("\\")<0&&V.indexOf("&")<0?V:V.replace(k,function(ae,me,Ce){return me||L(ae,Ce)})}var E=/[&<>"]/,B=/[&<>"]/g,M={"&":"&","<":"<",">":">",'"':"""};function U(V){return M[V]}function q(V){return E.test(V)?V.replace(B,U):V}var R=/[.?*+^$[\]\\(){}|-]/g;function j(V){return V.replace(R,"\\$&")}function ie(V){switch(V){case 9:case 32:return!0}return!1}function X(V){if(V>=8192&&V<=8202)return!0;switch(V){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}var oe=El;function Z(V){return oe.test(V)}function ee(V){switch(V){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function ne(V){return V=V.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(V=V.replace(/ẞ/g,"ß")),V.toLowerCase().toUpperCase()}e.lib={},e.lib.mdurl=xo,e.lib.ucmicro=nY(),e.assign=l,e.isString=n,e.has=c,e.unescapeMd=P,e.unescapeAll=$,e.isValidEntityCode=h,e.fromCodePoint=f,e.escapeHtml=q,e.arrayReplaceAt=u,e.isSpace=ie,e.isWhiteSpace=X,e.isMdAsciiPunct=ee,e.isPunctChar=Z,e.escapeRE=j,e.normalizeReference=ne})(it);var xi={},oY=function(t,n,i){var c,l,u,h,f=-1,b=t.posMax,y=t.pos;for(t.pos=n+1,c=1;t.pos32))return f;if(c===41){if(l===0)break;l--}n++}return h===n||l!==0||(f.str=tu(t.slice(h,n)),f.lines=u,f.pos=n,f.ok=!0),f},iY=it.unescapeAll,sY=function(t,n,i){var c,l,u=0,h=n,f={ok:!1,pos:0,lines:0,str:""};if(n>=i||(l=t.charCodeAt(n),l!==34&&l!==39&&l!==40))return f;for(n++,l===40&&(l=41);n"+Gn(e[t].content)+""};Gr.code_block=function(e,t,n,i,c){var l=e[t];return""+Gn(e[t].content)+` -`};Gr.fence=function(e,t,n,i,c){var l=e[t],u=l.info?cY(l.info).trim():"",h="",f="",b,y,k,C,S;return u&&(k=u.split(/(\s+)/g),h=k[0],f=k.slice(2).join("")),n.highlight?b=n.highlight(l.content,h,f)||Gn(l.content):b=Gn(l.content),b.indexOf(""+b+` -`):"
"+b+`
-`};Gr.image=function(e,t,n,i,c){var l=e[t];return l.attrs[l.attrIndex("alt")][1]=c.renderInlineAsText(l.children,n,i),c.renderToken(e,t,n)};Gr.hardbreak=function(e,t,n){return n.xhtmlOut?`
-`:`
-`};Gr.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?`
-`:`
-`:` -`};Gr.text=function(e,t){return Gn(e[t].content)};Gr.html_block=function(e,t){return e[t].content};Gr.html_inline=function(e,t){return e[t].content};function wo(){this.rules=lY({},Gr)}wo.prototype.renderAttrs=function(t){var n,i,c;if(!t.attrs)return"";for(c="",n=0,i=t.attrs.length;n -`:">",l)};wo.prototype.renderInline=function(e,t,n){for(var i,c="",l=this.rules,u=0,h=e.length;u\s]/i.test(e)}function bY(e){return/^<\/a\s*>/i.test(e)}var yY=function(t){var n,i,c,l,u,h,f,b,y,k,C,S,L,P,$,E,B=t.tokens,M;if(t.md.options.linkify){for(i=0,c=B.length;i=0;n--){if(h=l[n],h.type==="link_close"){for(n--;l[n].level!==h.level&&l[n].type!=="link_open";)n--;continue}if(h.type==="html_inline"&&(gY(h.content)&&L>0&&L--,bY(h.content)&&L++),!(L>0)&&h.type==="text"&&t.md.linkify.test(h.content)){for(y=h.content,M=t.md.linkify.match(y),f=[],S=h.level,C=0,M.length>0&&M[0].index===0&&n>0&&l[n-1].type==="text_special"&&(M=M.slice(1)),b=0;bC&&(u=new t.Token("text","",0),u.content=y.slice(C,k),u.level=S,f.push(u)),u=new t.Token("link_open","a",1),u.attrs=[["href",$]],u.level=S++,u.markup="linkify",u.info="auto",f.push(u),u=new t.Token("text","",0),u.content=E,u.level=S,f.push(u),u=new t.Token("link_close","a",-1),u.level=--S,u.markup="linkify",u.info="auto",f.push(u),C=M[b].lastIndex);C=0;t--)n=e[t],n.type==="text"&&!i&&(n.content=n.content.replace(wY,SY)),n.type==="link_open"&&n.info==="auto"&&i--,n.type==="link_close"&&n.info==="auto"&&i++}function AY(e){var t,n,i=0;for(t=e.length-1;t>=0;t--)n=e[t],n.type==="text"&&!i&&jd.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1—").replace(/(^|\s)--(?=\s|$)/mg,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1–")),n.type==="link_open"&&n.info==="auto"&&i--,n.type==="link_close"&&n.info==="auto"&&i++}var TY=function(t){var n;if(t.md.options.typographer)for(n=t.tokens.length-1;n>=0;n--)t.tokens[n].type==="inline"&&(xY.test(t.tokens[n].content)&&CY(t.tokens[n].children),jd.test(t.tokens[n].content)&&AY(t.tokens[n].children))},ru=it.isWhiteSpace,nu=it.isPunctChar,ou=it.isMdAsciiPunct,_Y=/['"]/,au=/['"]/g,iu="’";function Ua(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function DY(e,t){var n,i,c,l,u,h,f,b,y,k,C,S,L,P,$,E,B,M,U,q,R;for(U=[],n=0;n=0&&!(U[B].level<=f);B--);if(U.length=B+1,i.type==="text"){c=i.content,u=0,h=c.length;e:for(;u=0)y=c.charCodeAt(l.index-1);else for(B=n-1;B>=0&&!(e[B].type==="softbreak"||e[B].type==="hardbreak");B--)if(e[B].content){y=e[B].content.charCodeAt(e[B].content.length-1);break}if(k=32,u=48&&y<=57&&(E=$=!1),$&&E&&($=C,E=S),!$&&!E){M&&(i.content=Ua(i.content,l.index,iu));continue}if(E){for(B=U.length-1;B>=0&&(b=U[B],!(U[B].level=0;n--)t.tokens[n].type!=="inline"||!_Y.test(t.tokens[n].content)||DY(t.tokens[n].children,t)},EY=function(t){var n,i,c,l,u,h,f=t.tokens;for(n=0,i=f.length;n=0&&(i=this.attrs[n][1]),i};ko.prototype.attrJoin=function(t,n){var i=this.attrIndex(t);i<0?this.attrPush([t,n]):this.attrs[i][1]=this.attrs[i][1]+" "+n};var Ml=ko,RY=Ml;function Gd(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}Gd.prototype.Token=RY;var MY=Gd,BY=Rl,Ls=[["normalize",fY],["block",pY],["inline",mY],["linkify",yY],["replacements",TY],["smartquotes",zY],["text_join",EY]];function Bl(){this.ruler=new BY;for(var e=0;ei||(y=n+1,t.sCount[y]=4||(h=t.bMarks[y]+t.tShift[y],h>=t.eMarks[y])||(q=t.src.charCodeAt(h++),q!==124&&q!==45&&q!==58)||h>=t.eMarks[y]||(R=t.src.charCodeAt(h++),R!==124&&R!==45&&R!==58&&!$s(R))||q===45&&$s(R))return!1;for(;h=4||(k=su(u),k.length&&k[0]===""&&k.shift(),k.length&&k[k.length-1]===""&&k.pop(),C=k.length,C===0||C!==L.length))return!1;if(c)return!0;for(B=t.parentType,t.parentType="table",U=t.md.block.ruler.getRules("blockquote"),S=t.push("table_open","table",1),S.map=$=[n,0],S=t.push("thead_open","thead",1),S.map=[n,n+1],S=t.push("tr_open","tr",1),S.map=[n,n+1],f=0;f=4)break;for(k=su(u),k.length&&k[0]===""&&k.shift(),k.length&&k[k.length-1]===""&&k.pop(),y===n+2&&(S=t.push("tbody_open","tbody",1),S.map=E=[n+2,0]),S=t.push("tr_open","tr",1),S.map=[y,y+1],f=0;f=4){c++,l=c;continue}break}return t.line=l,u=t.push("code_block","code",0),u.content=t.getLines(n,l,4+t.blkIndent,!1)+` -`,u.map=[n,t.line],!0},qY=function(t,n,i,c){var l,u,h,f,b,y,k,C=!1,S=t.bMarks[n]+t.tShift[n],L=t.eMarks[n];if(t.sCount[n]-t.blkIndent>=4||S+3>L||(l=t.src.charCodeAt(S),l!==126&&l!==96)||(b=S,S=t.skipChars(S,l),u=S-b,u<3)||(k=t.src.slice(b,S),h=t.src.slice(S,L),l===96&&h.indexOf(String.fromCharCode(l))>=0))return!1;if(c)return!0;for(f=n;f++,!(f>=i||(S=b=t.bMarks[f]+t.tShift[f],L=t.eMarks[f],S=4)&&(S=t.skipChars(S,l),!(S-b=4||t.src.charCodeAt(oe++)!==62)return!1;if(c)return!0;for(f=S=t.sCount[n]+1,t.src.charCodeAt(oe)===32?(oe++,f++,S++,l=!1,U=!0):t.src.charCodeAt(oe)===9?(U=!0,(t.bsCount[n]+S)%4===3?(oe++,f++,S++,l=!1):l=!0):U=!1,L=[t.bMarks[n]],t.bMarks[n]=oe;oe=Z,B=[t.sCount[n]],t.sCount[n]=S-f,M=[t.tShift[n]],t.tShift[n]=oe-t.bMarks[n],R=t.md.block.ruler.getRules("blockquote"),E=t.parentType,t.parentType="blockquote",C=n+1;C=Z));C++){if(t.src.charCodeAt(oe++)===62&&!ie){for(f=S=t.sCount[C]+1,t.src.charCodeAt(oe)===32?(oe++,f++,S++,l=!1,U=!0):t.src.charCodeAt(oe)===9?(U=!0,(t.bsCount[C]+S)%4===3?(oe++,f++,S++,l=!1):l=!0):U=!1,L.push(t.bMarks[C]),t.bMarks[C]=oe;oe=Z,P.push(t.bsCount[C]),t.bsCount[C]=t.sCount[C]+1+(U?1:0),B.push(t.sCount[C]),t.sCount[C]=S-f,M.push(t.tShift[C]),t.tShift[C]=oe-t.bMarks[C];continue}if(y)break;for(q=!1,h=0,b=R.length;h",j.map=k=[n,0],t.md.block.tokenize(t,n,C),j=t.push("blockquote_close","blockquote",-1),j.markup=">",t.lineMax=X,t.parentType=E,k[1]=t.line,h=0;h=4||(l=t.src.charCodeAt(b++),l!==42&&l!==45&&l!==95))return!1;for(u=1;b=l||(n=e.src.charCodeAt(c++),n<48||n>57))return-1;for(;;){if(c>=l)return-1;if(n=e.src.charCodeAt(c++),n>=48&&n<=57){if(c-i>=10)return-1;continue}if(n===41||n===46)break;return-1}return c=4||t.listIndent>=0&&t.sCount[n]-t.listIndent>=4&&t.sCount[n]=t.blkIndent&&(Ce=!0),(Z=uu(t,n))>=0){if(k=!0,ne=t.bMarks[n]+t.tShift[n],E=Number(t.src.slice(ne,Z-1)),Ce&&E!==1)return!1}else if((Z=cu(t,n))>=0)k=!1;else return!1;if(Ce&&t.skipSpaces(Z)>=t.eMarks[n])return!1;if($=t.src.charCodeAt(Z-1),c)return!0;for(P=t.tokens.length,k?(me=t.push("ordered_list_open","ol",1),E!==1&&(me.attrs=[["start",E]])):me=t.push("bullet_list_open","ul",1),me.map=L=[n,0],me.markup=String.fromCharCode($),M=n,ee=!1,ae=t.md.block.ruler.getRules("list"),R=t.parentType,t.parentType="list";M=B?b=1:b=U-y,b>4&&(b=1),f=y+b,me=t.push("list_item_open","li",1),me.markup=String.fromCharCode($),me.map=C=[n,0],k&&(me.info=t.src.slice(ne,Z-1)),X=t.tight,ie=t.tShift[n],j=t.sCount[n],q=t.listIndent,t.listIndent=t.blkIndent,t.blkIndent=f,t.tight=!0,t.tShift[n]=u-t.bMarks[n],t.sCount[n]=U,u>=B&&t.isEmpty(n+1)?t.line=Math.min(t.line+2,i):t.md.block.tokenize(t,n,i,!0),(!t.tight||ee)&&(Le=!1),ee=t.line-n>1&&t.isEmpty(t.line-1),t.blkIndent=t.listIndent,t.listIndent=q,t.tShift[n]=ie,t.sCount[n]=j,t.tight=X,me=t.push("list_item_close","li",-1),me.markup=String.fromCharCode($),M=n=t.line,C[1]=M,u=t.bMarks[n],M>=i||t.sCount[M]=4)break;for(V=!1,h=0,S=ae.length;h=4||t.src.charCodeAt(R)!==91)return!1;for(;++R3)&&!(t.sCount[ie]<0)){for(B=!1,y=0,k=M.length;y"u"&&(t.env.references={}),typeof t.env.references[C]>"u"&&(t.env.references[C]={title:U,href:b}),t.parentType=L,t.line=n+q+1),!0)},jY=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],wi={},GY="[a-zA-Z_:][a-zA-Z0-9:._-]*",WY="[^\"'=<>`\\x00-\\x20]+",XY="'[^']*'",YY='"[^"]*"',KY="(?:"+WY+"|"+XY+"|"+YY+")",ZY="(?:\\s+"+GY+"(?:\\s*=\\s*"+KY+")?)",Xd="<[A-Za-z][A-Za-z0-9\\-]*"+ZY+"*\\s*\\/?>",Yd="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",JY="|",QY="<[?][\\s\\S]*?[?]>",eK="]*>",tK="",rK=new RegExp("^(?:"+Xd+"|"+Yd+"|"+JY+"|"+QY+"|"+eK+"|"+tK+")"),nK=new RegExp("^(?:"+Xd+"|"+Yd+")");wi.HTML_TAG_RE=rK;wi.HTML_OPEN_CLOSE_TAG_RE=nK;var oK=jY,aK=wi.HTML_OPEN_CLOSE_TAG_RE,so=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(aK.source+"\\s*$"),/^$/,!1]],iK=function(t,n,i,c){var l,u,h,f,b=t.bMarks[n]+t.tShift[n],y=t.eMarks[n];if(t.sCount[n]-t.blkIndent>=4||!t.md.options.html||t.src.charCodeAt(b)!==60)return!1;for(f=t.src.slice(b,y),l=0;l=4||(l=t.src.charCodeAt(b),l!==35||b>=y))return!1;for(u=1,l=t.src.charCodeAt(++b);l===35&&b6||bb&&du(t.src.charCodeAt(h-1))&&(y=h),t.line=n+1,f=t.push("heading_open","h"+String(u),1),f.markup="########".slice(0,u),f.map=[n,t.line],f=t.push("inline","",0),f.content=t.src.slice(b,y).trim(),f.map=[n,t.line],f.children=[],f=t.push("heading_close","h"+String(u),-1),f.markup="########".slice(0,u)),!0)},lK=function(t,n,i){var c,l,u,h,f,b,y,k,C,S=n+1,L,P=t.md.block.ruler.getRules("paragraph");if(t.sCount[n]-t.blkIndent>=4)return!1;for(L=t.parentType,t.parentType="paragraph";S3)){if(t.sCount[S]>=t.blkIndent&&(b=t.bMarks[S]+t.tShift[S],y=t.eMarks[S],b=y)))){k=C===61?1:2;break}if(!(t.sCount[S]<0)){for(l=!1,u=0,h=P.length;u3)&&!(t.sCount[b]<0)){for(c=!1,l=0,u=y.length;l0&&this.level++,this.tokens.push(i),i};Wr.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};Wr.prototype.skipEmptyLines=function(t){for(var n=this.lineMax;tn;)if(!ki(this.src.charCodeAt(--t)))return t+1;return t};Wr.prototype.skipChars=function(t,n){for(var i=this.src.length;ti;)if(n!==this.src.charCodeAt(--t))return t+1;return t};Wr.prototype.getLines=function(t,n,i,c){var l,u,h,f,b,y,k,C=t;if(t>=n)return"";for(y=new Array(n-t),l=0;Ci?y[l]=new Array(u-i+1).join(" ")+this.src.slice(f,b):y[l]=this.src.slice(f,b)}return y.join("")};Wr.prototype.Token=Kd;var uK=Wr,dK=Rl,Va=[["table",PY,["paragraph","reference"]],["code",NY],["fence",qY,["paragraph","reference","blockquote","list"]],["blockquote",FY,["paragraph","reference","blockquote","list"]],["hr",$Y,["paragraph","reference","blockquote","list"]],["list",UY,["paragraph","reference","blockquote"]],["reference",VY],["html_block",iK,["paragraph","reference","blockquote"]],["heading",sK,["paragraph","reference","blockquote"]],["lheading",lK],["paragraph",cK]];function Si(){this.ruler=new dK;for(var e=0;e=n||e.sCount[h]=b){e.line=n;break}for(c=0;c0||(i=t.pos,c=t.posMax,i+3>c)||t.src.charCodeAt(i)!==58||t.src.charCodeAt(i+1)!==47||t.src.charCodeAt(i+2)!==47||(l=t.pending.match(mK),!l)||(u=l[1],h=t.md.linkify.matchAtStart(t.src.slice(i-u.length)),!h)||(f=h.url,f=f.replace(/\*+$/,""),b=t.md.normalizeLink(f),!t.md.validateLink(b))?!1:(n||(t.pending=t.pending.slice(0,-u.length),y=t.push("link_open","a",1),y.attrs=[["href",b]],y.markup="linkify",y.info="auto",y=t.push("text","",0),y.content=t.md.normalizeLinkText(f),y=t.push("link_close","a",-1),y.markup="linkify",y.info="auto"),t.pos+=f.length-u.length,!0)},gK=it.isSpace,bK=function(t,n){var i,c,l,u=t.pos;if(t.src.charCodeAt(u)!==10)return!1;if(i=t.pending.length-1,c=t.posMax,!n)if(i>=0&&t.pending.charCodeAt(i)===32)if(i>=1&&t.pending.charCodeAt(i-1)===32){for(l=i-1;l>=1&&t.pending.charCodeAt(l-1)===32;)l--;t.pending=t.pending.slice(0,l),t.push("hardbreak","br",0)}else t.pending=t.pending.slice(0,-1),t.push("softbreak","br",0);else t.push("softbreak","br",0);for(u++;u?@[]^_`{|}~-".split("").forEach(function(e){Il[e.charCodeAt(0)]=1});var xK=function(t,n){var i,c,l,u,h,f=t.pos,b=t.posMax;if(t.src.charCodeAt(f)!==92||(f++,f>=b))return!1;if(i=t.src.charCodeAt(f),i===10){for(n||t.push("hardbreak","br",0),f++;f=55296&&i<=56319&&f+1=56320&&c<=57343&&(u+=t.src[f+1],f++)),l="\\"+u,n||(h=t.push("text_special","",0),i<256&&Il[i]!==0?h.content=u:h.content=l,h.markup=l,h.info="escape"),t.pos=f+1,!0},wK=function(t,n){var i,c,l,u,h,f,b,y,k=t.pos,C=t.src.charCodeAt(k);if(C!==96)return!1;for(i=k,k++,c=t.posMax;k=0;n--)i=t[n],!(i.marker!==95&&i.marker!==42)&&i.end!==-1&&(c=t[i.end],h=n>0&&t[n-1].end===i.end+1&&t[n-1].marker===i.marker&&t[n-1].token===i.token-1&&t[i.end+1].token===c.token+1,u=String.fromCharCode(i.marker),l=e.tokens[i.token],l.type=h?"strong_open":"em_open",l.tag=h?"strong":"em",l.nesting=1,l.markup=h?u+u:u,l.content="",l=e.tokens[c.token],l.type=h?"strong_close":"em_close",l.tag=h?"strong":"em",l.nesting=-1,l.markup=h?u+u:u,l.content="",h&&(e.tokens[t[n-1].token].content="",e.tokens[t[i.end+1].token].content="",n--))}Ai.postProcess=function(t){var n,i=t.tokens_meta,c=t.tokens_meta.length;for(pu(t,t.delimiters),n=0;n=P)return!1;if($=f,b=t.md.helpers.parseLinkDestination(t.src,f,t.posMax),b.ok){for(C=t.md.normalizeLink(b.str),t.md.validateLink(C)?f=b.pos:C="",$=f;f=P||t.src.charCodeAt(f)!==41)&&(E=!0),f++}if(E){if(typeof t.env.references>"u")return!1;if(f=0?l=t.src.slice($,f++):f=u+1):f=u+1,l||(l=t.src.slice(h,u)),y=t.env.references[kK(l)],!y)return t.pos=L,!1;C=y.href,S=y.title}return n||(t.pos=h,t.posMax=u,k=t.push("link_open","a",1),k.attrs=i=[["href",C]],S&&i.push(["title",S]),t.linkLevel++,t.md.inline.tokenize(t),t.linkLevel--,k=t.push("link_close","a",-1)),t.pos=f,t.posMax=P,!0},CK=it.normalizeReference,Hs=it.isSpace,AK=function(t,n){var i,c,l,u,h,f,b,y,k,C,S,L,P,$="",E=t.pos,B=t.posMax;if(t.src.charCodeAt(t.pos)!==33||t.src.charCodeAt(t.pos+1)!==91||(f=t.pos+2,h=t.md.helpers.parseLinkLabel(t,t.pos+1,!1),h<0))return!1;if(b=h+1,b=B)return!1;for(P=b,k=t.md.helpers.parseLinkDestination(t.src,b,t.posMax),k.ok&&($=t.md.normalizeLink(k.str),t.md.validateLink($)?b=k.pos:$=""),P=b;b=B||t.src.charCodeAt(b)!==41)return t.pos=E,!1;b++}else{if(typeof t.env.references>"u")return!1;if(b=0?u=t.src.slice(P,b++):b=h+1):b=h+1,u||(u=t.src.slice(f,h)),y=t.env.references[CK(u)],!y)return t.pos=E,!1;$=y.href,C=y.title}return n||(l=t.src.slice(f,h),t.md.inline.parse(l,t.md,t.env,L=[]),S=t.push("image","img",0),S.attrs=i=[["src",$],["alt",""]],S.children=L,S.content=l,C&&i.push(["title",C])),t.pos=b,t.posMax=B,!0},TK=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,_K=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/,DK=function(t,n){var i,c,l,u,h,f,b=t.pos;if(t.src.charCodeAt(b)!==60)return!1;for(h=t.pos,f=t.posMax;;){if(++b>=f||(u=t.src.charCodeAt(b),u===60))return!1;if(u===62)break}return i=t.src.slice(h+1,b),_K.test(i)?(c=t.md.normalizeLink(i),t.md.validateLink(c)?(n||(l=t.push("link_open","a",1),l.attrs=[["href",c]],l.markup="autolink",l.info="auto",l=t.push("text","",0),l.content=t.md.normalizeLinkText(i),l=t.push("link_close","a",-1),l.markup="autolink",l.info="auto"),t.pos+=i.length+2,!0):!1):TK.test(i)?(c=t.md.normalizeLink("mailto:"+i),t.md.validateLink(c)?(n||(l=t.push("link_open","a",1),l.attrs=[["href",c]],l.markup="autolink",l.info="auto",l=t.push("text","",0),l.content=t.md.normalizeLinkText(i),l=t.push("link_close","a",-1),l.markup="autolink",l.info="auto"),t.pos+=i.length+2,!0):!1):!1},zK=wi.HTML_TAG_RE;function EK(e){return/^\s]/i.test(e)}function RK(e){return/^<\/a\s*>/i.test(e)}function MK(e){var t=e|32;return t>=97&&t<=122}var BK=function(t,n){var i,c,l,u,h=t.pos;return!t.md.options.html||(l=t.posMax,t.src.charCodeAt(h)!==60||h+2>=l)||(i=t.src.charCodeAt(h+1),i!==33&&i!==63&&i!==47&&!MK(i))||(c=t.src.slice(h).match(zK),!c)?!1:(n||(u=t.push("html_inline","",0),u.content=t.src.slice(h,h+c[0].length),EK(u.content)&&t.linkLevel++,RK(u.content)&&t.linkLevel--),t.pos+=c[0].length,!0)},mu=li,IK=it.has,PK=it.isValidEntityCode,vu=it.fromCodePoint,NK=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,qK=/^&([a-z][a-z0-9]{1,31});/i,FK=function(t,n){var i,c,l,u,h=t.pos,f=t.posMax;if(t.src.charCodeAt(h)!==38||h+1>=f)return!1;if(i=t.src.charCodeAt(h+1),i===35){if(l=t.src.slice(h).match(NK),l)return n||(c=l[1][0].toLowerCase()==="x"?parseInt(l[1].slice(1),16):parseInt(l[1],10),u=t.push("text_special","",0),u.content=PK(c)?vu(c):vu(65533),u.markup=l[0],u.info="entity"),t.pos+=l[0].length,!0}else if(l=t.src.slice(h).match(qK),l&&IK(mu,l[1]))return n||(u=t.push("text_special","",0),u.content=mu[l[1]],u.markup=l[0],u.info="entity"),t.pos+=l[0].length,!0;return!1};function gu(e,t){var n,i,c,l,u,h,f,b,y={},k=t.length;if(k){var C=0,S=-2,L=[];for(n=0;nu;i-=L[i]+1)if(l=t[i],l.marker===c.marker&&l.open&&l.end<0&&(f=!1,(l.close||c.open)&&(l.length+c.length)%3===0&&(l.length%3!==0||c.length%3!==0)&&(f=!0),!f)){b=i>0&&!t[i-1].open?L[i-1]+1:0,L[n]=n-i+b,L[i]=b,c.open=!1,l.end=n,l.close=!1,h=-1,S=-2;break}h!==-1&&(y[c.marker][(c.open?3:0)+(c.length||0)%3]=h)}}}var LK=function(t){var n,i=t.tokens_meta,c=t.tokens_meta.length;for(gu(t,t.delimiters),n=0;n0&&c++,l[n].type==="text"&&n+10&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],c={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(c),i};oa.prototype.scanDelims=function(e,t){var n=e,i,c,l,u,h,f,b,y,k,C=!0,S=!0,L=this.posMax,P=this.src.charCodeAt(e);for(i=e>0?this.src.charCodeAt(e-1):32;n=l)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};aa.prototype.parse=function(e,t,n,i){var c,l,u,h=new this.State(e,t,n,i);for(this.tokenize(h),l=this.ruler2.getRules(""),u=l.length,c=0;c|$))",t.tpl_email_fuzzy="(^|"+n+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}),Gs}function ml(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(n){n&&Object.keys(n).forEach(function(i){e[i]=n[i]})}),e}function Ti(e){return Object.prototype.toString.call(e)}function VK(e){return Ti(e)==="[object String]"}function jK(e){return Ti(e)==="[object Object]"}function GK(e){return Ti(e)==="[object RegExp]"}function Su(e){return Ti(e)==="[object Function]"}function WK(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var Zd={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function XK(e){return Object.keys(e||{}).reduce(function(t,n){return t||Zd.hasOwnProperty(n)},!1)}var YK={"http:":{validate:function(e,t,n){var i=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(i)?i.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var i=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(i)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:i.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var i=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(i)?i.match(n.re.mailto)[0].length:0}}},KK="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",ZK="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function JK(e){e.__index__=-1,e.__text_cache__=""}function QK(e){return function(t,n){var i=t.slice(n);return e.test(i)?i.match(e)[0].length:0}}function Cu(){return function(e,t){t.normalize(e)}}function ui(e){var t=e.re=HK()(e.__opts__),n=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||n.push(KK),n.push(t.src_xn),t.src_tlds=n.join("|");function i(h){return h.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(i(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(i(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(i(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(i(t.tpl_host_fuzzy_test),"i");var c=[];e.__compiled__={};function l(h,f){throw new Error('(LinkifyIt) Invalid schema "'+h+'": '+f)}Object.keys(e.__schemas__).forEach(function(h){var f=e.__schemas__[h];if(f!==null){var b={validate:null,link:null};if(e.__compiled__[h]=b,jK(f)){GK(f.validate)?b.validate=QK(f.validate):Su(f.validate)?b.validate=f.validate:l(h,f),Su(f.normalize)?b.normalize=f.normalize:f.normalize?l(h,f):b.normalize=Cu();return}if(VK(f)){c.push(h);return}l(h,f)}}),c.forEach(function(h){e.__compiled__[e.__schemas__[h]]&&(e.__compiled__[h].validate=e.__compiled__[e.__schemas__[h]].validate,e.__compiled__[h].normalize=e.__compiled__[e.__schemas__[h]].normalize)}),e.__compiled__[""]={validate:null,normalize:Cu()};var u=Object.keys(e.__compiled__).filter(function(h){return h.length>0&&e.__compiled__[h]}).map(WK).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),JK(e)}function eZ(e,t){var n=e.__index__,i=e.__last_index__,c=e.__text_cache__.slice(n,i);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=i+t,this.raw=c,this.text=c,this.url=c}function vl(e,t){var n=new eZ(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function ur(e,t){if(!(this instanceof ur))return new ur(e,t);t||XK(e)&&(t=e,e={}),this.__opts__=ml({},Zd,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=ml({},YK,e),this.__compiled__={},this.__tlds__=ZK,this.__tlds_replaced__=!1,this.re={},ui(this)}ur.prototype.add=function(t,n){return this.__schemas__[t]=n,ui(this),this};ur.prototype.set=function(t){return this.__opts__=ml(this.__opts__,t),this};ur.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;var n,i,c,l,u,h,f,b,y;if(this.re.schema_test.test(t)){for(f=this.re.schema_search,f.lastIndex=0;(n=f.exec(t))!==null;)if(l=this.testSchemaAt(t,n[2],f.lastIndex),l){this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+l;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(b=t.search(this.re.host_fuzzy_test),b>=0&&(this.__index__<0||b=0&&(c=t.match(this.re.email_fuzzy))!==null&&(u=c.index+c[1].length,h=c.index+c[0].length,(this.__index__<0||uthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=u,this.__last_index__=h))),this.__index__>=0};ur.prototype.pretest=function(t){return this.re.pretest.test(t)};ur.prototype.testSchemaAt=function(t,n,i){return this.__compiled__[n.toLowerCase()]?this.__compiled__[n.toLowerCase()].validate(t,i,this):0};ur.prototype.match=function(t){var n=0,i=[];this.__index__>=0&&this.__text_cache__===t&&(i.push(vl(this,n)),n=this.__last_index__);for(var c=n?t.slice(n):t;this.test(c);)i.push(vl(this,n)),c=c.slice(this.__last_index__),n+=this.__last_index__;return i.length?i:null};ur.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;var n=this.re.schema_at_start.exec(t);if(!n)return null;var i=this.testSchemaAt(t,n[2],n[0].length);return i?(this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+i,vl(this,0)):null};ur.prototype.tlds=function(t,n){return t=Array.isArray(t)?t:[t],n?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(i,c,l){return i!==l[c-1]}).reverse(),ui(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,ui(this),this)};ur.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};ur.prototype.onCompile=function(){};var tZ=ur;const mo=2147483647,Or=36,Nl=1,Xo=26,rZ=38,nZ=700,Jd=72,Qd=128,eh="-",oZ=/^xn--/,aZ=/[^\0-\x7F]/,iZ=/[\x2E\u3002\uFF0E\uFF61]/g,sZ={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Ws=Or-Nl,Ur=Math.floor,Xs=String.fromCharCode;function yn(e){throw new RangeError(sZ[e])}function lZ(e,t){const n=[];let i=e.length;for(;i--;)n[i]=t(e[i]);return n}function th(e,t){const n=e.split("@");let i="";n.length>1&&(i=n[0]+"@",e=n[1]),e=e.replace(iZ,".");const c=e.split("."),l=lZ(c,t).join(".");return i+l}function ql(e){const t=[];let n=0;const i=e.length;for(;n=55296&&c<=56319&&nString.fromCodePoint(...e),cZ=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:Or},Au=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},nh=function(e,t,n){let i=0;for(e=n?Ur(e/nZ):e>>1,e+=Ur(e/t);e>Ws*Xo>>1;i+=Or)e=Ur(e/Ws);return Ur(i+(Ws+1)*e/(e+rZ))},Fl=function(e){const t=[],n=e.length;let i=0,c=Qd,l=Jd,u=e.lastIndexOf(eh);u<0&&(u=0);for(let h=0;h=128&&yn("not-basic"),t.push(e.charCodeAt(h));for(let h=u>0?u+1:0;h=n&&yn("invalid-input");const C=cZ(e.charCodeAt(h++));C>=Or&&yn("invalid-input"),C>Ur((mo-i)/y)&&yn("overflow"),i+=C*y;const S=k<=l?Nl:k>=l+Xo?Xo:k-l;if(CUr(mo/L)&&yn("overflow"),y*=L}const b=t.length+1;l=nh(i-f,b,f==0),Ur(i/b)>mo-c&&yn("overflow"),c+=Ur(i/b),i%=b,t.splice(i++,0,c)}return String.fromCodePoint(...t)},Ll=function(e){const t=[];e=ql(e);const n=e.length;let i=Qd,c=0,l=Jd;for(const f of e)f<128&&t.push(Xs(f));const u=t.length;let h=u;for(u&&t.push(eh);h=i&&yUr((mo-c)/b)&&yn("overflow"),c+=(f-i)*b,i=f;for(const y of e)if(ymo&&yn("overflow"),y===i){let k=c;for(let C=Or;;C+=Or){const S=C<=l?Nl:C>=l+Xo?Xo:C-l;if(k=0))try{t.hostname=ih.toASCII(t.hostname)}catch{}return Un.encode(Un.format(t))}function _Z(e){var t=Un.parse(e,!0);if(t.hostname&&(!t.protocol||sh.indexOf(t.protocol)>=0))try{t.hostname=ih.toUnicode(t.hostname)}catch{}return Un.decode(Un.format(t),Un.decode.defaultChars+"%")}function wr(e,t){if(!(this instanceof wr))return new wr(e,t);t||Ho.isString(e)||(t=e||{},e="default"),this.inline=new xZ,this.block=new yZ,this.core=new bZ,this.renderer=new gZ,this.linkify=new wZ,this.validateLink=AZ,this.normalizeLink=TZ,this.normalizeLinkText=_Z,this.utils=Ho,this.helpers=Ho.assign({},vZ),this.options={},this.configure(e),t&&this.set(t)}wr.prototype.set=function(e){return Ho.assign(this.options,e),this};wr.prototype.configure=function(e){var t=this,n;if(Ho.isString(e)&&(n=e,e=kZ[n],!e))throw new Error('Wrong `markdown-it` preset "'+n+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(i){e.components[i].rules&&t[i].ruler.enableOnly(e.components[i].rules),e.components[i].rules2&&t[i].ruler2.enableOnly(e.components[i].rules2)}),this};wr.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(c){n=n.concat(this[c].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));var i=e.filter(function(c){return n.indexOf(c)<0});if(i.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+i);return this};wr.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(c){n=n.concat(this[c].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));var i=e.filter(function(c){return n.indexOf(c)<0});if(i.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+i);return this};wr.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};wr.prototype.parse=function(e,t){if(typeof e!="string")throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens};wr.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};wr.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens};wr.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};var DZ=wr;(function(e){e.exports=DZ})(wv);var Tu={},zZ={get exports(){return Tu},set exports(e){Tu=e}};(function(e,t){(function(i,c){e.exports=c()})(typeof self<"u"?self:Af,function(){return function(){var n={};(function(){n.d=function(m,r){for(var o in r)n.o(r,o)&&!n.o(m,o)&&Object.defineProperty(m,o,{enumerable:!0,get:r[o]})}})(),function(){n.o=function(m,r){return Object.prototype.hasOwnProperty.call(m,r)}}();var i={};n.d(i,{default:function(){return B1}});var c=function m(r,o){this.position=void 0;var a="KaTeX parse error: "+r,s,d=o&&o.loc;if(d&&d.start<=d.end){var v=d.lexer.input;s=d.start;var x=d.end;s===v.length?a+=" at end of input: ":a+=" at position "+(s+1)+": ";var A=v.slice(s,x).replace(/[^]/g,"$&̲"),z;s>15?z="…"+v.slice(s-15,s):z=v.slice(0,s);var F;x+15":">","<":"<",'"':""","'":"'"},k=/[&><"']/g;function C(m){return String(m).replace(k,function(r){return y[r]})}var S=function m(r){return r.type==="ordgroup"||r.type==="color"?r.body.length===1?m(r.body[0]):r:r.type==="font"?m(r.body):r},L=function(r){var o=S(r);return o.type==="mathord"||o.type==="textord"||o.type==="atom"},P=function(r){if(!r)throw new Error("Expected non-null, but got "+String(r));return r},$=function(r){var o=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(r);return o!=null?o[1]:"_relative"},E={contains:u,deflt:h,escape:C,hyphenate:b,getBaseElem:S,isCharacterBox:L,protocolFromUrl:$},B={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(r){return"#"+r}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(r,o){return o.push(r),o}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(r){return Math.max(0,r)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(r){return Math.max(0,r)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(r){return Math.max(0,r)},cli:"-e, --max-expand ",cliProcessor:function(r){return r==="Infinity"?1/0:parseInt(r)}},globalGroup:{type:"boolean",cli:!1}};function M(m){if(m.default)return m.default;var r=m.type,o=Array.isArray(r)?r[0]:r;if(typeof o!="string")return o.enum[0];switch(o){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var U=function(){function m(o){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,o=o||{};for(var a in B)if(B.hasOwnProperty(a)){var s=B[a];this[a]=o[a]!==void 0?s.processor?s.processor(o[a]):o[a]:M(s)}}var r=m.prototype;return r.reportNonstrict=function(a,s,d){var v=this.strict;if(typeof v=="function"&&(v=v(a,s,d)),!(!v||v==="ignore")){if(v===!0||v==="error")throw new l("LaTeX-incompatible input and strict mode is set to 'error': "+(s+" ["+a+"]"),d);v==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(s+" ["+a+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+v+"': "+s+" ["+a+"]"))}},r.useStrictBehavior=function(a,s,d){var v=this.strict;if(typeof v=="function")try{v=v(a,s,d)}catch{v="error"}return!v||v==="ignore"?!1:v===!0||v==="error"?!0:v==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(s+" ["+a+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+v+"': "+s+" ["+a+"]")),!1)},r.isTrusted=function(a){a.url&&!a.protocol&&(a.protocol=E.protocolFromUrl(a.url));var s=typeof this.trust=="function"?this.trust(a):this.trust;return!!s},m}(),q=function(){function m(o,a,s){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=o,this.size=a,this.cramped=s}var r=m.prototype;return r.sup=function(){return V[ae[this.id]]},r.sub=function(){return V[me[this.id]]},r.fracNum=function(){return V[Ce[this.id]]},r.fracDen=function(){return V[Le[this.id]]},r.cramp=function(){return V[ht[this.id]]},r.text=function(){return V[gt[this.id]]},r.isTight=function(){return this.size>=2},m}(),R=0,j=1,ie=2,X=3,oe=4,Z=5,ee=6,ne=7,V=[new q(R,0,!1),new q(j,0,!0),new q(ie,1,!1),new q(X,1,!0),new q(oe,2,!1),new q(Z,2,!0),new q(ee,3,!1),new q(ne,3,!0)],ae=[oe,Z,oe,Z,ee,ne,ee,ne],me=[Z,Z,Z,Z,ne,ne,ne,ne],Ce=[ie,X,oe,Z,ee,ne,ee,ne],Le=[X,X,Z,Z,ne,ne,ne,ne],ht=[j,j,X,X,Z,Z,ne,ne],gt=[R,j,ie,X,ie,X,ie,X],De={DISPLAY:V[R],TEXT:V[ie],SCRIPT:V[oe],SCRIPTSCRIPT:V[ee]},ve=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function Ee(m){for(var r=0;r=s[0]&&m<=s[1])return o.name}return null}var Se=[];ve.forEach(function(m){return m.blocks.forEach(function(r){return Se.push.apply(Se,r)})});function Ze(m){for(var r=0;r=Se[r]&&m<=Se[r+1])return!0;return!1}var Be=80,Ye=function(r,o){return"M95,"+(622+r+o)+` -c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 -c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 -c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 -s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 -c69,-144,104.5,-217.7,106.5,-221 -l`+r/2.075+" -"+r+` -c5.3,-9.3,12,-14,20,-14 -H400000v`+(40+r)+`H845.2724 -s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 -c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z -M`+(834+r)+" "+o+"h400000v"+(40+r)+"h-400000z"},wt=function(r,o){return"M263,"+(601+r+o)+`c0.7,0,18,39.7,52,119 -c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 -c340,-704.7,510.7,-1060.3,512,-1067 -l`+r/2.084+" -"+r+` -c4.7,-7.3,11,-11,19,-11 -H40000v`+(40+r)+`H1012.3 -s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 -c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 -s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 -c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z -M`+(1001+r)+" "+o+"h400000v"+(40+r)+"h-400000z"},Rr=function(r,o){return"M983 "+(10+r+o)+` -l`+r/3.13+" -"+r+` -c4,-6.7,10,-10,18,-10 H400000v`+(40+r)+` -H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 -s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 -c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 -c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 -c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 -c53.7,-170.3,84.5,-266.8,92.5,-289.5z -M`+(1001+r)+" "+o+"h400000v"+(40+r)+"h-400000z"},hr=function(r,o){return"M424,"+(2398+r+o)+` -c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 -c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 -s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 -s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 -l`+r/4.223+" -"+r+`c4,-6.7,10,-10,18,-10 H400000 -v`+(40+r)+`H1014.6 -s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 -c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2z M`+(1001+r)+" "+o+` -h400000v`+(40+r)+"h-400000z"},Mr=function(r,o){return"M473,"+(2713+r+o)+` -c339.3,-1799.3,509.3,-2700,510,-2702 l`+r/5.298+" -"+r+` -c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+r)+`H1017.7 -s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 -c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 -s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, -606zM`+(1001+r)+" "+o+"h400000v"+(40+r)+"H1017.7z"},Xr=function(r){var o=r/2;return"M400000 "+r+" H0 L"+o+" 0 l65 45 L145 "+(r-80)+" H400000z"},ln=function(r,o,a){var s=a-54-o-r;return"M702 "+(r+o)+"H400000"+(40+r)+` -H742v`+s+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 -h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 -c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 -219 661 l218 661zM702 `+o+"H400000v"+(40+r)+"H742z"},cn=function(r,o,a){o=1e3*o;var s="";switch(r){case"sqrtMain":s=Ye(o,Be);break;case"sqrtSize1":s=wt(o,Be);break;case"sqrtSize2":s=Rr(o,Be);break;case"sqrtSize3":s=hr(o,Be);break;case"sqrtSize4":s=Mr(o,Be);break;case"sqrtTall":s=ln(o,Be,a)}return s},Xt=function(r,o){switch(r){case"⎜":return"M291 0 H417 V"+o+" H291z M291 0 H417 V"+o+" H291z";case"∣":return"M145 0 H188 V"+o+" H145z M145 0 H188 V"+o+" H145z";case"∥":return"M145 0 H188 V"+o+" H145z M145 0 H188 V"+o+" H145z"+("M367 0 H410 V"+o+" H367z M367 0 H410 V"+o+" H367z");case"⎟":return"M457 0 H583 V"+o+" H457z M457 0 H583 V"+o+" H457z";case"⎢":return"M319 0 H403 V"+o+" H319z M319 0 H403 V"+o+" H319z";case"⎥":return"M263 0 H347 V"+o+" H263z M263 0 H347 V"+o+" H263z";case"⎪":return"M384 0 H504 V"+o+" H384z M384 0 H504 V"+o+" H384z";case"⏐":return"M312 0 H355 V"+o+" H312z M312 0 H355 V"+o+" H312z";case"‖":return"M257 0 H300 V"+o+" H257z M257 0 H300 V"+o+" H257z"+("M478 0 H521 V"+o+" H478z M478 0 H521 V"+o+" H478z");default:return""}},ue={doubleleftarrow:`M262 157 -l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 - 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 - 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 -c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 - 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 --86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 --2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z -m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l --10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 - 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 --33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 --17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 --13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 -c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 --107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 - 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 --5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 -c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 - 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 - 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 - l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 --45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 - 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 - 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 - 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 --331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 -H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 - 435 0h399565z`,leftgroupunder:`M400000 262 -H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 - 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 --3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 --18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 --196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 - 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 --4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 --10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z -m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 - 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 - 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 --152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 - 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 --2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 -v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 --83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 --68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 - 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z -M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z -M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 --.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 -c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 - 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z -M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 -c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 --53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 - 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 - 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 -c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 - 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 - 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 --5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 --320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z -m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 -60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 --451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z -m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 -c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 --480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z -m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 -85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 --707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z -m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 -c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 --16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 - 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 - 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 --40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 --12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 - 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l --6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 -s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 -c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 - 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 --174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 - 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 - 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 --3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 --10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 - 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 --18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 - 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z -m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 - 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 --7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 --27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 - 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 - 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 --64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z -m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 - 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 --13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 - 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z -M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 - 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 --52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 --167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 - 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 --70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 --40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 --37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 - 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 -c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 - 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 - 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 --19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 - 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 --2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 - 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 - 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 --68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 --8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 - 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 -c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 - 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 --11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 - 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 - 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 - -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 --11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 - 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 - 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 - -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 -3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 -10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 --1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 --7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 -H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 -c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 -c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, --5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 -c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 -c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 -s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 -121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 -s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 -c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z -M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 --27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 -13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 --84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 --119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 --12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 -151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 -c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 -c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 -c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 -c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z -M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 -c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, --231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 -c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 -c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, -1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, --152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z -M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 -c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, --231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 -c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},Te=function(r,o){switch(r){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+o+` v1759 h347 v-84 -H403z M403 1759 V0 H319 V1759 v`+o+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+o+` v1759 H0 v84 H347z -M347 1759 V0 H263 V1759 v`+o+" v1759 h84z";case"vert":return"M145 15 v585 v"+o+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-o+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+o+" v585 h43z";case"doublevert":return"M145 15 v585 v"+o+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-o+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+o+` v585 h43z -M367 15 v585 v`+o+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-o+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+o+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+o+` v1715 h263 v84 H319z -MM319 602 V0 H403 V602 v`+o+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+o+` v1799 H0 v-84 H319z -MM319 602 V0 H403 V602 v`+o+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+o+` v602 h84z -M403 1759 V0 H319 V1759 v`+o+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+o+` v602 h84z -M347 1759 V0 h-84 V1759 v`+o+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 -c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, --36,557 l0,`+(o+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, -949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 -c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, --544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 -l0,-`+(o+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, --210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, -63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 -c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(o+9)+` -c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 -c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 -c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 -c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 -l0,-`+(o+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, --470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},Y=function(){function m(o){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=o,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var r=m.prototype;return r.hasClass=function(a){return E.contains(this.classes,a)},r.toNode=function(){for(var a=document.createDocumentFragment(),s=0;s=5?r=0:m>=3?r=1:r=2,!Pt[r]){var o=Pt[r]={cssEmPerMu:je.quad[r]/18};for(var a in je)je.hasOwnProperty(a)&&(o[a]=je[a][r])}return Pt[r]}var Sr=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Yn=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Kn=function(r,o){return o.size<2?r:Sr[r-1][o.size-1]},ia=function(){function m(o){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=o.style,this.color=o.color,this.size=o.size||m.BASESIZE,this.textSize=o.textSize||this.size,this.phantom=!!o.phantom,this.font=o.font||"",this.fontFamily=o.fontFamily||"",this.fontWeight=o.fontWeight||"",this.fontShape=o.fontShape||"",this.sizeMultiplier=Yn[this.size-1],this.maxSize=o.maxSize,this.minRuleThickness=o.minRuleThickness,this._fontMetrics=void 0}var r=m.prototype;return r.extend=function(a){var s={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var d in a)a.hasOwnProperty(d)&&(s[d]=a[d]);return new m(s)},r.havingStyle=function(a){return this.style===a?this:this.extend({style:a,size:Kn(this.textSize,a)})},r.havingCrampedStyle=function(){return this.havingStyle(this.style.cramp())},r.havingSize=function(a){return this.size===a&&this.textSize===a?this:this.extend({style:this.style.text(),size:a,textSize:a,sizeMultiplier:Yn[a-1]})},r.havingBaseStyle=function(a){a=a||this.style.text();var s=Kn(m.BASESIZE,a);return this.size===s&&this.textSize===m.BASESIZE&&this.style===a?this:this.extend({style:a,size:s})},r.havingBaseSizing=function(){var a;switch(this.style.id){case 4:case 5:a=3;break;case 6:case 7:a=1;break;default:a=6}return this.extend({style:this.style.text(),size:a})},r.withColor=function(a){return this.extend({color:a})},r.withPhantom=function(){return this.extend({phantom:!0})},r.withFont=function(a){return this.extend({font:a})},r.withTextFontFamily=function(a){return this.extend({fontFamily:a,font:""})},r.withTextFontWeight=function(a){return this.extend({fontWeight:a,font:""})},r.withTextFontShape=function(a){return this.extend({fontShape:a,font:""})},r.sizingClasses=function(a){return a.size!==this.size?["sizing","reset-size"+a.size,"size"+this.size]:[]},r.baseSizingClasses=function(){return this.size!==m.BASESIZE?["sizing","reset-size"+this.size,"size"+m.BASESIZE]:[]},r.fontMetrics=function(){return this._fontMetrics||(this._fontMetrics=Nt(this.size)),this._fontMetrics},r.getColor=function(){return this.phantom?"transparent":this.color},m}();ia.BASESIZE=6;var Di=ia,So={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},zi={ex:!0,em:!0,mu:!0},sa=function(r){return typeof r!="string"&&(r=r.unit),r in So||r in zi||r==="ex"},bt=function(r,o){var a;if(r.unit in So)a=So[r.unit]/o.fontMetrics().ptPerEm/o.sizeMultiplier;else if(r.unit==="mu")a=o.fontMetrics().cssEmPerMu;else{var s;if(o.style.isTight()?s=o.havingStyle(o.style.text()):s=o,r.unit==="ex")a=s.fontMetrics().xHeight;else if(r.unit==="em")a=s.fontMetrics().quad;else throw new l("Invalid unit: '"+r.unit+"'");s!==o&&(a*=s.sizeMultiplier/o.sizeMultiplier)}return Math.min(r.number*a,o.maxSize)},be=function(r){return+r.toFixed(4)+"em"},Br=function(r){return r.filter(function(o){return o}).join(" ")},la=function(r,o,a){if(this.classes=r||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=a||{},o){o.style.isTight()&&this.classes.push("mtight");var s=o.getColor();s&&(this.style.color=s)}},zn=function(r){var o=document.createElement(r);o.className=Br(this.classes);for(var a in this.style)this.style.hasOwnProperty(a)&&(o.style[a]=this.style[a]);for(var s in this.attributes)this.attributes.hasOwnProperty(s)&&o.setAttribute(s,this.attributes[s]);for(var d=0;d",o},En=function(){function m(o,a,s,d){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,la.call(this,o,s,d),this.children=a||[]}var r=m.prototype;return r.setAttribute=function(a,s){this.attributes[a]=s},r.hasClass=function(a){return E.contains(this.classes,a)},r.toNode=function(){return zn.call(this,"span")},r.toMarkup=function(){return ca.call(this,"span")},m}(),Co=function(){function m(o,a,s,d){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,la.call(this,a,d),this.children=s||[],this.setAttribute("href",o)}var r=m.prototype;return r.setAttribute=function(a,s){this.attributes[a]=s},r.hasClass=function(a){return E.contains(this.classes,a)},r.toNode=function(){return zn.call(this,"a")},r.toMarkup=function(){return ca.call(this,"a")},m}(),Ei=function(){function m(o,a,s){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=a,this.src=o,this.classes=["mord"],this.style=s}var r=m.prototype;return r.hasClass=function(a){return E.contains(this.classes,a)},r.toNode=function(){var a=document.createElement("img");a.src=this.src,a.alt=this.alt,a.className="mord";for(var s in this.style)this.style.hasOwnProperty(s)&&(a.style[s]=this.style[s]);return a},r.toMarkup=function(){var a=""+this.alt+"0&&(s=document.createElement("span"),s.style.marginRight=be(this.italic)),this.classes.length>0&&(s=s||document.createElement("span"),s.className=Br(this.classes));for(var d in this.style)this.style.hasOwnProperty(d)&&(s=s||document.createElement("span"),s.style[d]=this.style[d]);return s?(s.appendChild(a),s):a},r.toMarkup=function(){var a=!1,s="0&&(d+="margin-right:"+this.italic+"em;");for(var v in this.style)this.style.hasOwnProperty(v)&&(d+=E.hyphenate(v)+":"+this.style[v]+";");d&&(a=!0,s+=' style="'+E.escape(d)+'"');var x=E.escape(this.text);return a?(s+=">",s+=x,s+="",s):x},m}(),Cr=function(){function m(o,a){this.children=void 0,this.attributes=void 0,this.children=o||[],this.attributes=a||{}}var r=m.prototype;return r.toNode=function(){var a="http://www.w3.org/2000/svg",s=document.createElementNS(a,"svg");for(var d in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,d)&&s.setAttribute(d,this.attributes[d]);for(var v=0;v":""},m}(),Ao=function(){function m(o){this.attributes=void 0,this.attributes=o||{}}var r=m.prototype;return r.toNode=function(){var a="http://www.w3.org/2000/svg",s=document.createElementNS(a,"line");for(var d in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,d)&&s.setAttribute(d,this.attributes[d]);return s},r.toMarkup=function(){var a=" but got "+String(m)+".")}var hh={bin:1,close:1,inner:1,open:1,punct:1,rel:1},fh={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},da={math:{},text:{}},Ct=da;function p(m,r,o,a,s,d){da[m][s]={font:r,group:o,replace:a},d&&a&&(da[m][a]=da[m][s])}var g="math",se="text",w="main",I="ams",kt="accent-token",ze="bin",jt="close",Zn="inner",Fe="mathord",Mt="op-token",nr="open",ha="punct",N="rel",Yr="spacing",H="textord";p(g,w,N,"≡","\\equiv",!0),p(g,w,N,"≺","\\prec",!0),p(g,w,N,"≻","\\succ",!0),p(g,w,N,"∼","\\sim",!0),p(g,w,N,"⊥","\\perp"),p(g,w,N,"⪯","\\preceq",!0),p(g,w,N,"⪰","\\succeq",!0),p(g,w,N,"≃","\\simeq",!0),p(g,w,N,"∣","\\mid",!0),p(g,w,N,"≪","\\ll",!0),p(g,w,N,"≫","\\gg",!0),p(g,w,N,"≍","\\asymp",!0),p(g,w,N,"∥","\\parallel"),p(g,w,N,"⋈","\\bowtie",!0),p(g,w,N,"⌣","\\smile",!0),p(g,w,N,"⊑","\\sqsubseteq",!0),p(g,w,N,"⊒","\\sqsupseteq",!0),p(g,w,N,"≐","\\doteq",!0),p(g,w,N,"⌢","\\frown",!0),p(g,w,N,"∋","\\ni",!0),p(g,w,N,"∝","\\propto",!0),p(g,w,N,"⊢","\\vdash",!0),p(g,w,N,"⊣","\\dashv",!0),p(g,w,N,"∋","\\owns"),p(g,w,ha,".","\\ldotp"),p(g,w,ha,"⋅","\\cdotp"),p(g,w,H,"#","\\#"),p(se,w,H,"#","\\#"),p(g,w,H,"&","\\&"),p(se,w,H,"&","\\&"),p(g,w,H,"ℵ","\\aleph",!0),p(g,w,H,"∀","\\forall",!0),p(g,w,H,"ℏ","\\hbar",!0),p(g,w,H,"∃","\\exists",!0),p(g,w,H,"∇","\\nabla",!0),p(g,w,H,"♭","\\flat",!0),p(g,w,H,"ℓ","\\ell",!0),p(g,w,H,"♮","\\natural",!0),p(g,w,H,"♣","\\clubsuit",!0),p(g,w,H,"℘","\\wp",!0),p(g,w,H,"♯","\\sharp",!0),p(g,w,H,"♢","\\diamondsuit",!0),p(g,w,H,"ℜ","\\Re",!0),p(g,w,H,"♡","\\heartsuit",!0),p(g,w,H,"ℑ","\\Im",!0),p(g,w,H,"♠","\\spadesuit",!0),p(g,w,H,"§","\\S",!0),p(se,w,H,"§","\\S"),p(g,w,H,"¶","\\P",!0),p(se,w,H,"¶","\\P"),p(g,w,H,"†","\\dag"),p(se,w,H,"†","\\dag"),p(se,w,H,"†","\\textdagger"),p(g,w,H,"‡","\\ddag"),p(se,w,H,"‡","\\ddag"),p(se,w,H,"‡","\\textdaggerdbl"),p(g,w,jt,"⎱","\\rmoustache",!0),p(g,w,nr,"⎰","\\lmoustache",!0),p(g,w,jt,"⟯","\\rgroup",!0),p(g,w,nr,"⟮","\\lgroup",!0),p(g,w,ze,"∓","\\mp",!0),p(g,w,ze,"⊖","\\ominus",!0),p(g,w,ze,"⊎","\\uplus",!0),p(g,w,ze,"⊓","\\sqcap",!0),p(g,w,ze,"∗","\\ast"),p(g,w,ze,"⊔","\\sqcup",!0),p(g,w,ze,"◯","\\bigcirc",!0),p(g,w,ze,"∙","\\bullet",!0),p(g,w,ze,"‡","\\ddagger"),p(g,w,ze,"≀","\\wr",!0),p(g,w,ze,"⨿","\\amalg"),p(g,w,ze,"&","\\And"),p(g,w,N,"⟵","\\longleftarrow",!0),p(g,w,N,"⇐","\\Leftarrow",!0),p(g,w,N,"⟸","\\Longleftarrow",!0),p(g,w,N,"⟶","\\longrightarrow",!0),p(g,w,N,"⇒","\\Rightarrow",!0),p(g,w,N,"⟹","\\Longrightarrow",!0),p(g,w,N,"↔","\\leftrightarrow",!0),p(g,w,N,"⟷","\\longleftrightarrow",!0),p(g,w,N,"⇔","\\Leftrightarrow",!0),p(g,w,N,"⟺","\\Longleftrightarrow",!0),p(g,w,N,"↦","\\mapsto",!0),p(g,w,N,"⟼","\\longmapsto",!0),p(g,w,N,"↗","\\nearrow",!0),p(g,w,N,"↩","\\hookleftarrow",!0),p(g,w,N,"↪","\\hookrightarrow",!0),p(g,w,N,"↘","\\searrow",!0),p(g,w,N,"↼","\\leftharpoonup",!0),p(g,w,N,"⇀","\\rightharpoonup",!0),p(g,w,N,"↙","\\swarrow",!0),p(g,w,N,"↽","\\leftharpoondown",!0),p(g,w,N,"⇁","\\rightharpoondown",!0),p(g,w,N,"↖","\\nwarrow",!0),p(g,w,N,"⇌","\\rightleftharpoons",!0),p(g,I,N,"≮","\\nless",!0),p(g,I,N,"","\\@nleqslant"),p(g,I,N,"","\\@nleqq"),p(g,I,N,"⪇","\\lneq",!0),p(g,I,N,"≨","\\lneqq",!0),p(g,I,N,"","\\@lvertneqq"),p(g,I,N,"⋦","\\lnsim",!0),p(g,I,N,"⪉","\\lnapprox",!0),p(g,I,N,"⊀","\\nprec",!0),p(g,I,N,"⋠","\\npreceq",!0),p(g,I,N,"⋨","\\precnsim",!0),p(g,I,N,"⪹","\\precnapprox",!0),p(g,I,N,"≁","\\nsim",!0),p(g,I,N,"","\\@nshortmid"),p(g,I,N,"∤","\\nmid",!0),p(g,I,N,"⊬","\\nvdash",!0),p(g,I,N,"⊭","\\nvDash",!0),p(g,I,N,"⋪","\\ntriangleleft"),p(g,I,N,"⋬","\\ntrianglelefteq",!0),p(g,I,N,"⊊","\\subsetneq",!0),p(g,I,N,"","\\@varsubsetneq"),p(g,I,N,"⫋","\\subsetneqq",!0),p(g,I,N,"","\\@varsubsetneqq"),p(g,I,N,"≯","\\ngtr",!0),p(g,I,N,"","\\@ngeqslant"),p(g,I,N,"","\\@ngeqq"),p(g,I,N,"⪈","\\gneq",!0),p(g,I,N,"≩","\\gneqq",!0),p(g,I,N,"","\\@gvertneqq"),p(g,I,N,"⋧","\\gnsim",!0),p(g,I,N,"⪊","\\gnapprox",!0),p(g,I,N,"⊁","\\nsucc",!0),p(g,I,N,"⋡","\\nsucceq",!0),p(g,I,N,"⋩","\\succnsim",!0),p(g,I,N,"⪺","\\succnapprox",!0),p(g,I,N,"≆","\\ncong",!0),p(g,I,N,"","\\@nshortparallel"),p(g,I,N,"∦","\\nparallel",!0),p(g,I,N,"⊯","\\nVDash",!0),p(g,I,N,"⋫","\\ntriangleright"),p(g,I,N,"⋭","\\ntrianglerighteq",!0),p(g,I,N,"","\\@nsupseteqq"),p(g,I,N,"⊋","\\supsetneq",!0),p(g,I,N,"","\\@varsupsetneq"),p(g,I,N,"⫌","\\supsetneqq",!0),p(g,I,N,"","\\@varsupsetneqq"),p(g,I,N,"⊮","\\nVdash",!0),p(g,I,N,"⪵","\\precneqq",!0),p(g,I,N,"⪶","\\succneqq",!0),p(g,I,N,"","\\@nsubseteqq"),p(g,I,ze,"⊴","\\unlhd"),p(g,I,ze,"⊵","\\unrhd"),p(g,I,N,"↚","\\nleftarrow",!0),p(g,I,N,"↛","\\nrightarrow",!0),p(g,I,N,"⇍","\\nLeftarrow",!0),p(g,I,N,"⇏","\\nRightarrow",!0),p(g,I,N,"↮","\\nleftrightarrow",!0),p(g,I,N,"⇎","\\nLeftrightarrow",!0),p(g,I,N,"△","\\vartriangle"),p(g,I,H,"ℏ","\\hslash"),p(g,I,H,"▽","\\triangledown"),p(g,I,H,"◊","\\lozenge"),p(g,I,H,"Ⓢ","\\circledS"),p(g,I,H,"®","\\circledR"),p(se,I,H,"®","\\circledR"),p(g,I,H,"∡","\\measuredangle",!0),p(g,I,H,"∄","\\nexists"),p(g,I,H,"℧","\\mho"),p(g,I,H,"Ⅎ","\\Finv",!0),p(g,I,H,"⅁","\\Game",!0),p(g,I,H,"‵","\\backprime"),p(g,I,H,"▲","\\blacktriangle"),p(g,I,H,"▼","\\blacktriangledown"),p(g,I,H,"■","\\blacksquare"),p(g,I,H,"⧫","\\blacklozenge"),p(g,I,H,"★","\\bigstar"),p(g,I,H,"∢","\\sphericalangle",!0),p(g,I,H,"∁","\\complement",!0),p(g,I,H,"ð","\\eth",!0),p(se,w,H,"ð","ð"),p(g,I,H,"╱","\\diagup"),p(g,I,H,"╲","\\diagdown"),p(g,I,H,"□","\\square"),p(g,I,H,"□","\\Box"),p(g,I,H,"◊","\\Diamond"),p(g,I,H,"¥","\\yen",!0),p(se,I,H,"¥","\\yen",!0),p(g,I,H,"✓","\\checkmark",!0),p(se,I,H,"✓","\\checkmark"),p(g,I,H,"ℶ","\\beth",!0),p(g,I,H,"ℸ","\\daleth",!0),p(g,I,H,"ℷ","\\gimel",!0),p(g,I,H,"ϝ","\\digamma",!0),p(g,I,H,"ϰ","\\varkappa"),p(g,I,nr,"┌","\\@ulcorner",!0),p(g,I,jt,"┐","\\@urcorner",!0),p(g,I,nr,"└","\\@llcorner",!0),p(g,I,jt,"┘","\\@lrcorner",!0),p(g,I,N,"≦","\\leqq",!0),p(g,I,N,"⩽","\\leqslant",!0),p(g,I,N,"⪕","\\eqslantless",!0),p(g,I,N,"≲","\\lesssim",!0),p(g,I,N,"⪅","\\lessapprox",!0),p(g,I,N,"≊","\\approxeq",!0),p(g,I,ze,"⋖","\\lessdot"),p(g,I,N,"⋘","\\lll",!0),p(g,I,N,"≶","\\lessgtr",!0),p(g,I,N,"⋚","\\lesseqgtr",!0),p(g,I,N,"⪋","\\lesseqqgtr",!0),p(g,I,N,"≑","\\doteqdot"),p(g,I,N,"≓","\\risingdotseq",!0),p(g,I,N,"≒","\\fallingdotseq",!0),p(g,I,N,"∽","\\backsim",!0),p(g,I,N,"⋍","\\backsimeq",!0),p(g,I,N,"⫅","\\subseteqq",!0),p(g,I,N,"⋐","\\Subset",!0),p(g,I,N,"⊏","\\sqsubset",!0),p(g,I,N,"≼","\\preccurlyeq",!0),p(g,I,N,"⋞","\\curlyeqprec",!0),p(g,I,N,"≾","\\precsim",!0),p(g,I,N,"⪷","\\precapprox",!0),p(g,I,N,"⊲","\\vartriangleleft"),p(g,I,N,"⊴","\\trianglelefteq"),p(g,I,N,"⊨","\\vDash",!0),p(g,I,N,"⊪","\\Vvdash",!0),p(g,I,N,"⌣","\\smallsmile"),p(g,I,N,"⌢","\\smallfrown"),p(g,I,N,"≏","\\bumpeq",!0),p(g,I,N,"≎","\\Bumpeq",!0),p(g,I,N,"≧","\\geqq",!0),p(g,I,N,"⩾","\\geqslant",!0),p(g,I,N,"⪖","\\eqslantgtr",!0),p(g,I,N,"≳","\\gtrsim",!0),p(g,I,N,"⪆","\\gtrapprox",!0),p(g,I,ze,"⋗","\\gtrdot"),p(g,I,N,"⋙","\\ggg",!0),p(g,I,N,"≷","\\gtrless",!0),p(g,I,N,"⋛","\\gtreqless",!0),p(g,I,N,"⪌","\\gtreqqless",!0),p(g,I,N,"≖","\\eqcirc",!0),p(g,I,N,"≗","\\circeq",!0),p(g,I,N,"≜","\\triangleq",!0),p(g,I,N,"∼","\\thicksim"),p(g,I,N,"≈","\\thickapprox"),p(g,I,N,"⫆","\\supseteqq",!0),p(g,I,N,"⋑","\\Supset",!0),p(g,I,N,"⊐","\\sqsupset",!0),p(g,I,N,"≽","\\succcurlyeq",!0),p(g,I,N,"⋟","\\curlyeqsucc",!0),p(g,I,N,"≿","\\succsim",!0),p(g,I,N,"⪸","\\succapprox",!0),p(g,I,N,"⊳","\\vartriangleright"),p(g,I,N,"⊵","\\trianglerighteq"),p(g,I,N,"⊩","\\Vdash",!0),p(g,I,N,"∣","\\shortmid"),p(g,I,N,"∥","\\shortparallel"),p(g,I,N,"≬","\\between",!0),p(g,I,N,"⋔","\\pitchfork",!0),p(g,I,N,"∝","\\varpropto"),p(g,I,N,"◀","\\blacktriangleleft"),p(g,I,N,"∴","\\therefore",!0),p(g,I,N,"∍","\\backepsilon"),p(g,I,N,"▶","\\blacktriangleright"),p(g,I,N,"∵","\\because",!0),p(g,I,N,"⋘","\\llless"),p(g,I,N,"⋙","\\gggtr"),p(g,I,ze,"⊲","\\lhd"),p(g,I,ze,"⊳","\\rhd"),p(g,I,N,"≂","\\eqsim",!0),p(g,w,N,"⋈","\\Join"),p(g,I,N,"≑","\\Doteq",!0),p(g,I,ze,"∔","\\dotplus",!0),p(g,I,ze,"∖","\\smallsetminus"),p(g,I,ze,"⋒","\\Cap",!0),p(g,I,ze,"⋓","\\Cup",!0),p(g,I,ze,"⩞","\\doublebarwedge",!0),p(g,I,ze,"⊟","\\boxminus",!0),p(g,I,ze,"⊞","\\boxplus",!0),p(g,I,ze,"⋇","\\divideontimes",!0),p(g,I,ze,"⋉","\\ltimes",!0),p(g,I,ze,"⋊","\\rtimes",!0),p(g,I,ze,"⋋","\\leftthreetimes",!0),p(g,I,ze,"⋌","\\rightthreetimes",!0),p(g,I,ze,"⋏","\\curlywedge",!0),p(g,I,ze,"⋎","\\curlyvee",!0),p(g,I,ze,"⊝","\\circleddash",!0),p(g,I,ze,"⊛","\\circledast",!0),p(g,I,ze,"⋅","\\centerdot"),p(g,I,ze,"⊺","\\intercal",!0),p(g,I,ze,"⋒","\\doublecap"),p(g,I,ze,"⋓","\\doublecup"),p(g,I,ze,"⊠","\\boxtimes",!0),p(g,I,N,"⇢","\\dashrightarrow",!0),p(g,I,N,"⇠","\\dashleftarrow",!0),p(g,I,N,"⇇","\\leftleftarrows",!0),p(g,I,N,"⇆","\\leftrightarrows",!0),p(g,I,N,"⇚","\\Lleftarrow",!0),p(g,I,N,"↞","\\twoheadleftarrow",!0),p(g,I,N,"↢","\\leftarrowtail",!0),p(g,I,N,"↫","\\looparrowleft",!0),p(g,I,N,"⇋","\\leftrightharpoons",!0),p(g,I,N,"↶","\\curvearrowleft",!0),p(g,I,N,"↺","\\circlearrowleft",!0),p(g,I,N,"↰","\\Lsh",!0),p(g,I,N,"⇈","\\upuparrows",!0),p(g,I,N,"↿","\\upharpoonleft",!0),p(g,I,N,"⇃","\\downharpoonleft",!0),p(g,w,N,"⊶","\\origof",!0),p(g,w,N,"⊷","\\imageof",!0),p(g,I,N,"⊸","\\multimap",!0),p(g,I,N,"↭","\\leftrightsquigarrow",!0),p(g,I,N,"⇉","\\rightrightarrows",!0),p(g,I,N,"⇄","\\rightleftarrows",!0),p(g,I,N,"↠","\\twoheadrightarrow",!0),p(g,I,N,"↣","\\rightarrowtail",!0),p(g,I,N,"↬","\\looparrowright",!0),p(g,I,N,"↷","\\curvearrowright",!0),p(g,I,N,"↻","\\circlearrowright",!0),p(g,I,N,"↱","\\Rsh",!0),p(g,I,N,"⇊","\\downdownarrows",!0),p(g,I,N,"↾","\\upharpoonright",!0),p(g,I,N,"⇂","\\downharpoonright",!0),p(g,I,N,"⇝","\\rightsquigarrow",!0),p(g,I,N,"⇝","\\leadsto"),p(g,I,N,"⇛","\\Rrightarrow",!0),p(g,I,N,"↾","\\restriction"),p(g,w,H,"‘","`"),p(g,w,H,"$","\\$"),p(se,w,H,"$","\\$"),p(se,w,H,"$","\\textdollar"),p(g,w,H,"%","\\%"),p(se,w,H,"%","\\%"),p(g,w,H,"_","\\_"),p(se,w,H,"_","\\_"),p(se,w,H,"_","\\textunderscore"),p(g,w,H,"∠","\\angle",!0),p(g,w,H,"∞","\\infty",!0),p(g,w,H,"′","\\prime"),p(g,w,H,"△","\\triangle"),p(g,w,H,"Γ","\\Gamma",!0),p(g,w,H,"Δ","\\Delta",!0),p(g,w,H,"Θ","\\Theta",!0),p(g,w,H,"Λ","\\Lambda",!0),p(g,w,H,"Ξ","\\Xi",!0),p(g,w,H,"Π","\\Pi",!0),p(g,w,H,"Σ","\\Sigma",!0),p(g,w,H,"Υ","\\Upsilon",!0),p(g,w,H,"Φ","\\Phi",!0),p(g,w,H,"Ψ","\\Psi",!0),p(g,w,H,"Ω","\\Omega",!0),p(g,w,H,"A","Α"),p(g,w,H,"B","Β"),p(g,w,H,"E","Ε"),p(g,w,H,"Z","Ζ"),p(g,w,H,"H","Η"),p(g,w,H,"I","Ι"),p(g,w,H,"K","Κ"),p(g,w,H,"M","Μ"),p(g,w,H,"N","Ν"),p(g,w,H,"O","Ο"),p(g,w,H,"P","Ρ"),p(g,w,H,"T","Τ"),p(g,w,H,"X","Χ"),p(g,w,H,"¬","\\neg",!0),p(g,w,H,"¬","\\lnot"),p(g,w,H,"⊤","\\top"),p(g,w,H,"⊥","\\bot"),p(g,w,H,"∅","\\emptyset"),p(g,I,H,"∅","\\varnothing"),p(g,w,Fe,"α","\\alpha",!0),p(g,w,Fe,"β","\\beta",!0),p(g,w,Fe,"γ","\\gamma",!0),p(g,w,Fe,"δ","\\delta",!0),p(g,w,Fe,"ϵ","\\epsilon",!0),p(g,w,Fe,"ζ","\\zeta",!0),p(g,w,Fe,"η","\\eta",!0),p(g,w,Fe,"θ","\\theta",!0),p(g,w,Fe,"ι","\\iota",!0),p(g,w,Fe,"κ","\\kappa",!0),p(g,w,Fe,"λ","\\lambda",!0),p(g,w,Fe,"μ","\\mu",!0),p(g,w,Fe,"ν","\\nu",!0),p(g,w,Fe,"ξ","\\xi",!0),p(g,w,Fe,"ο","\\omicron",!0),p(g,w,Fe,"π","\\pi",!0),p(g,w,Fe,"ρ","\\rho",!0),p(g,w,Fe,"σ","\\sigma",!0),p(g,w,Fe,"τ","\\tau",!0),p(g,w,Fe,"υ","\\upsilon",!0),p(g,w,Fe,"ϕ","\\phi",!0),p(g,w,Fe,"χ","\\chi",!0),p(g,w,Fe,"ψ","\\psi",!0),p(g,w,Fe,"ω","\\omega",!0),p(g,w,Fe,"ε","\\varepsilon",!0),p(g,w,Fe,"ϑ","\\vartheta",!0),p(g,w,Fe,"ϖ","\\varpi",!0),p(g,w,Fe,"ϱ","\\varrho",!0),p(g,w,Fe,"ς","\\varsigma",!0),p(g,w,Fe,"φ","\\varphi",!0),p(g,w,ze,"∗","*",!0),p(g,w,ze,"+","+"),p(g,w,ze,"−","-",!0),p(g,w,ze,"⋅","\\cdot",!0),p(g,w,ze,"∘","\\circ",!0),p(g,w,ze,"÷","\\div",!0),p(g,w,ze,"±","\\pm",!0),p(g,w,ze,"×","\\times",!0),p(g,w,ze,"∩","\\cap",!0),p(g,w,ze,"∪","\\cup",!0),p(g,w,ze,"∖","\\setminus",!0),p(g,w,ze,"∧","\\land"),p(g,w,ze,"∨","\\lor"),p(g,w,ze,"∧","\\wedge",!0),p(g,w,ze,"∨","\\vee",!0),p(g,w,H,"√","\\surd"),p(g,w,nr,"⟨","\\langle",!0),p(g,w,nr,"∣","\\lvert"),p(g,w,nr,"∥","\\lVert"),p(g,w,jt,"?","?"),p(g,w,jt,"!","!"),p(g,w,jt,"⟩","\\rangle",!0),p(g,w,jt,"∣","\\rvert"),p(g,w,jt,"∥","\\rVert"),p(g,w,N,"=","="),p(g,w,N,":",":"),p(g,w,N,"≈","\\approx",!0),p(g,w,N,"≅","\\cong",!0),p(g,w,N,"≥","\\ge"),p(g,w,N,"≥","\\geq",!0),p(g,w,N,"←","\\gets"),p(g,w,N,">","\\gt",!0),p(g,w,N,"∈","\\in",!0),p(g,w,N,"","\\@not"),p(g,w,N,"⊂","\\subset",!0),p(g,w,N,"⊃","\\supset",!0),p(g,w,N,"⊆","\\subseteq",!0),p(g,w,N,"⊇","\\supseteq",!0),p(g,I,N,"⊈","\\nsubseteq",!0),p(g,I,N,"⊉","\\nsupseteq",!0),p(g,w,N,"⊨","\\models"),p(g,w,N,"←","\\leftarrow",!0),p(g,w,N,"≤","\\le"),p(g,w,N,"≤","\\leq",!0),p(g,w,N,"<","\\lt",!0),p(g,w,N,"→","\\rightarrow",!0),p(g,w,N,"→","\\to"),p(g,I,N,"≱","\\ngeq",!0),p(g,I,N,"≰","\\nleq",!0),p(g,w,Yr," ","\\ "),p(g,w,Yr," ","\\space"),p(g,w,Yr," ","\\nobreakspace"),p(se,w,Yr," ","\\ "),p(se,w,Yr," "," "),p(se,w,Yr," ","\\space"),p(se,w,Yr," ","\\nobreakspace"),p(g,w,Yr,null,"\\nobreak"),p(g,w,Yr,null,"\\allowbreak"),p(g,w,ha,",",","),p(g,w,ha,";",";"),p(g,I,ze,"⊼","\\barwedge",!0),p(g,I,ze,"⊻","\\veebar",!0),p(g,w,ze,"⊙","\\odot",!0),p(g,w,ze,"⊕","\\oplus",!0),p(g,w,ze,"⊗","\\otimes",!0),p(g,w,H,"∂","\\partial",!0),p(g,w,ze,"⊘","\\oslash",!0),p(g,I,ze,"⊚","\\circledcirc",!0),p(g,I,ze,"⊡","\\boxdot",!0),p(g,w,ze,"△","\\bigtriangleup"),p(g,w,ze,"▽","\\bigtriangledown"),p(g,w,ze,"†","\\dagger"),p(g,w,ze,"⋄","\\diamond"),p(g,w,ze,"⋆","\\star"),p(g,w,ze,"◃","\\triangleleft"),p(g,w,ze,"▹","\\triangleright"),p(g,w,nr,"{","\\{"),p(se,w,H,"{","\\{"),p(se,w,H,"{","\\textbraceleft"),p(g,w,jt,"}","\\}"),p(se,w,H,"}","\\}"),p(se,w,H,"}","\\textbraceright"),p(g,w,nr,"{","\\lbrace"),p(g,w,jt,"}","\\rbrace"),p(g,w,nr,"[","\\lbrack",!0),p(se,w,H,"[","\\lbrack",!0),p(g,w,jt,"]","\\rbrack",!0),p(se,w,H,"]","\\rbrack",!0),p(g,w,nr,"(","\\lparen",!0),p(g,w,jt,")","\\rparen",!0),p(se,w,H,"<","\\textless",!0),p(se,w,H,">","\\textgreater",!0),p(g,w,nr,"⌊","\\lfloor",!0),p(g,w,jt,"⌋","\\rfloor",!0),p(g,w,nr,"⌈","\\lceil",!0),p(g,w,jt,"⌉","\\rceil",!0),p(g,w,H,"\\","\\backslash"),p(g,w,H,"∣","|"),p(g,w,H,"∣","\\vert"),p(se,w,H,"|","\\textbar",!0),p(g,w,H,"∥","\\|"),p(g,w,H,"∥","\\Vert"),p(se,w,H,"∥","\\textbardbl"),p(se,w,H,"~","\\textasciitilde"),p(se,w,H,"\\","\\textbackslash"),p(se,w,H,"^","\\textasciicircum"),p(g,w,N,"↑","\\uparrow",!0),p(g,w,N,"⇑","\\Uparrow",!0),p(g,w,N,"↓","\\downarrow",!0),p(g,w,N,"⇓","\\Downarrow",!0),p(g,w,N,"↕","\\updownarrow",!0),p(g,w,N,"⇕","\\Updownarrow",!0),p(g,w,Mt,"∐","\\coprod"),p(g,w,Mt,"⋁","\\bigvee"),p(g,w,Mt,"⋀","\\bigwedge"),p(g,w,Mt,"⨄","\\biguplus"),p(g,w,Mt,"⋂","\\bigcap"),p(g,w,Mt,"⋃","\\bigcup"),p(g,w,Mt,"∫","\\int"),p(g,w,Mt,"∫","\\intop"),p(g,w,Mt,"∬","\\iint"),p(g,w,Mt,"∭","\\iiint"),p(g,w,Mt,"∏","\\prod"),p(g,w,Mt,"∑","\\sum"),p(g,w,Mt,"⨂","\\bigotimes"),p(g,w,Mt,"⨁","\\bigoplus"),p(g,w,Mt,"⨀","\\bigodot"),p(g,w,Mt,"∮","\\oint"),p(g,w,Mt,"∯","\\oiint"),p(g,w,Mt,"∰","\\oiiint"),p(g,w,Mt,"⨆","\\bigsqcup"),p(g,w,Mt,"∫","\\smallint"),p(se,w,Zn,"…","\\textellipsis"),p(g,w,Zn,"…","\\mathellipsis"),p(se,w,Zn,"…","\\ldots",!0),p(g,w,Zn,"…","\\ldots",!0),p(g,w,Zn,"⋯","\\@cdots",!0),p(g,w,Zn,"⋱","\\ddots",!0),p(g,w,H,"⋮","\\varvdots"),p(g,w,kt,"ˊ","\\acute"),p(g,w,kt,"ˋ","\\grave"),p(g,w,kt,"¨","\\ddot"),p(g,w,kt,"~","\\tilde"),p(g,w,kt,"ˉ","\\bar"),p(g,w,kt,"˘","\\breve"),p(g,w,kt,"ˇ","\\check"),p(g,w,kt,"^","\\hat"),p(g,w,kt,"⃗","\\vec"),p(g,w,kt,"˙","\\dot"),p(g,w,kt,"˚","\\mathring"),p(g,w,Fe,"","\\@imath"),p(g,w,Fe,"","\\@jmath"),p(g,w,H,"ı","ı"),p(g,w,H,"ȷ","ȷ"),p(se,w,H,"ı","\\i",!0),p(se,w,H,"ȷ","\\j",!0),p(se,w,H,"ß","\\ss",!0),p(se,w,H,"æ","\\ae",!0),p(se,w,H,"œ","\\oe",!0),p(se,w,H,"ø","\\o",!0),p(se,w,H,"Æ","\\AE",!0),p(se,w,H,"Œ","\\OE",!0),p(se,w,H,"Ø","\\O",!0),p(se,w,kt,"ˊ","\\'"),p(se,w,kt,"ˋ","\\`"),p(se,w,kt,"ˆ","\\^"),p(se,w,kt,"˜","\\~"),p(se,w,kt,"ˉ","\\="),p(se,w,kt,"˘","\\u"),p(se,w,kt,"˙","\\."),p(se,w,kt,"¸","\\c"),p(se,w,kt,"˚","\\r"),p(se,w,kt,"ˇ","\\v"),p(se,w,kt,"¨",'\\"'),p(se,w,kt,"˝","\\H"),p(se,w,kt,"◯","\\textcircled");var Ol={"--":!0,"---":!0,"``":!0,"''":!0};p(se,w,H,"–","--",!0),p(se,w,H,"–","\\textendash"),p(se,w,H,"—","---",!0),p(se,w,H,"—","\\textemdash"),p(se,w,H,"‘","`",!0),p(se,w,H,"‘","\\textquoteleft"),p(se,w,H,"’","'",!0),p(se,w,H,"’","\\textquoteright"),p(se,w,H,"“","``",!0),p(se,w,H,"“","\\textquotedblleft"),p(se,w,H,"”","''",!0),p(se,w,H,"”","\\textquotedblright"),p(g,w,H,"°","\\degree",!0),p(se,w,H,"°","\\degree"),p(se,w,H,"°","\\textdegree",!0),p(g,w,H,"£","\\pounds"),p(g,w,H,"£","\\mathsterling",!0),p(se,w,H,"£","\\pounds"),p(se,w,H,"£","\\textsterling",!0),p(g,I,H,"✠","\\maltese"),p(se,I,H,"✠","\\maltese");for(var Ul='0123456789/@."',Mi=0;Mio&&(o=v.height),v.depth>a&&(a=v.depth),v.maxFontSize>s&&(s=v.maxFontSize)}r.height=o,r.depth=a,r.maxFontSize=s},Zt=function(r,o,a,s){var d=new En(r,o,a,s);return qi(d),d},Wl=function(r,o,a,s){return new En(r,o,a,s)},xh=function(r,o,a){var s=Zt([r],[],o);return s.height=Math.max(a||o.fontMetrics().defaultRuleThickness,o.minRuleThickness),s.style.borderBottomWidth=be(s.height),s.maxFontSize=1,s},wh=function(r,o,a,s){var d=new Co(r,o,a,s);return qi(d),d},Xl=function(r){var o=new Y(r);return qi(o),o},kh=function(r,o){return r instanceof Y?Zt([],[r],o):r},Sh=function(r){if(r.positionType==="individualShift"){for(var o=r.children,a=[o[0]],s=-o[0].shift-o[0].elem.depth,d=s,v=1;v0&&(d.push(ka(v,r)),v=[]),d.push(a[x]));v.length>0&&d.push(ka(v,r));var z;o?(z=ka(qt(o,r,!0)),z.classes=["tag"],d.push(z)):s&&d.push(s);var F=Zr(["katex-html"],d);if(F.setAttribute("aria-hidden","true"),z){var W=z.children[0];W.style.height=be(F.height+F.depth),F.depth&&(W.style.verticalAlign=be(-F.depth))}return F}function e0(m){return new Y(m)}var fr=function(){function m(o,a,s){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=o,this.attributes={},this.children=a||[],this.classes=s||[]}var r=m.prototype;return r.setAttribute=function(a,s){this.attributes[a]=s},r.getAttribute=function(a){return this.attributes[a]},r.toNode=function(){var a=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var s in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,s)&&a.setAttribute(s,this.attributes[s]);this.classes.length>0&&(a.className=Br(this.classes));for(var d=0;d0&&(a+=' class ="'+E.escape(Br(this.classes))+'"'),a+=">";for(var d=0;d",a},r.toText=function(){return this.children.map(function(a){return a.toText()}).join("")},m}(),_o=function(){function m(o){this.text=void 0,this.text=o}var r=m.prototype;return r.toNode=function(){return document.createTextNode(this.text)},r.toMarkup=function(){return E.escape(this.toText())},r.toText=function(){return this.text},m}(),Ih=function(){function m(o){this.width=void 0,this.character=void 0,this.width=o,o>=.05555&&o<=.05556?this.character=" ":o>=.1666&&o<=.1667?this.character=" ":o>=.2222&&o<=.2223?this.character=" ":o>=.2777&&o<=.2778?this.character="  ":o>=-.05556&&o<=-.05555?this.character=" ⁣":o>=-.1667&&o<=-.1666?this.character=" ⁣":o>=-.2223&&o<=-.2222?this.character=" ⁣":o>=-.2778&&o<=-.2777?this.character=" ⁣":this.character=null}var r=m.prototype;return r.toNode=function(){if(this.character)return document.createTextNode(this.character);var a=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return a.setAttribute("width",be(this.width)),a},r.toMarkup=function(){return this.character?""+this.character+"":''},r.toText=function(){return this.character?this.character:" "},m}(),ce={MathNode:fr,TextNode:_o,SpaceNode:Ih,newDocumentFragment:e0},pr=function(r,o,a){return Ct[o][r]&&Ct[o][r].replace&&r.charCodeAt(0)!==55349&&!(Ol.hasOwnProperty(r)&&a&&(a.fontFamily&&a.fontFamily.slice(4,6)==="tt"||a.font&&a.font.slice(4,6)==="tt"))&&(r=Ct[o][r].replace),new ce.TextNode(r)},$i=function(r){return r.length===1?r[0]:new ce.MathNode("mrow",r)},Oi=function(r,o){if(o.fontFamily==="texttt")return"monospace";if(o.fontFamily==="textsf")return o.fontShape==="textit"&&o.fontWeight==="textbf"?"sans-serif-bold-italic":o.fontShape==="textit"?"sans-serif-italic":o.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(o.fontShape==="textit"&&o.fontWeight==="textbf")return"bold-italic";if(o.fontShape==="textit")return"italic";if(o.fontWeight==="textbf")return"bold";var a=o.font;if(!a||a==="mathnormal")return null;var s=r.mode;if(a==="mathit")return"italic";if(a==="boldsymbol")return r.type==="textord"?"bold":"bold-italic";if(a==="mathbf")return"bold";if(a==="mathbb")return"double-struck";if(a==="mathfrak")return"fraktur";if(a==="mathscr"||a==="mathcal")return"script";if(a==="mathsf")return"sans-serif";if(a==="mathtt")return"monospace";var d=r.text;if(E.contains(["\\imath","\\jmath"],d))return null;Ct[s][d]&&Ct[s][d].replace&&(d=Ct[s][d].replace);var v=G.fontMap[a].fontName;return rt(d,v,s)?G.fontMap[a].variant:null},Jt=function(r,o,a){if(r.length===1){var s=ft(r[0],o);return a&&s instanceof fr&&s.type==="mo"&&(s.setAttribute("lspace","0em"),s.setAttribute("rspace","0em")),[s]}for(var d=[],v,x=0;x0&&(re.text=re.text.slice(0,1)+"̸"+re.text.slice(1),d.pop())}}}d.push(A),v=A}return d},dn=function(r,o,a){return $i(Jt(r,o,a))},ft=function(r,o){if(!r)return new ce.MathNode("mrow");if(xa[r.type]){var a=xa[r.type](r,o);return a}else throw new l("Got group of unknown type: '"+r.type+"'")};function t0(m,r,o,a,s){var d=Jt(m,o),v;d.length===1&&d[0]instanceof fr&&E.contains(["mrow","mtable"],d[0].type)?v=d[0]:v=new ce.MathNode("mrow",d);var x=new ce.MathNode("annotation",[new ce.TextNode(r)]);x.setAttribute("encoding","application/x-tex");var A=new ce.MathNode("semantics",[v,x]),z=new ce.MathNode("math",[A]);z.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&z.setAttribute("display","block");var F=s?"katex":"katex-mathml";return G.makeSpan([F],[z])}var r0=function(r){return new Di({style:r.displayMode?De.DISPLAY:De.TEXT,maxSize:r.maxSize,minRuleThickness:r.minRuleThickness})},n0=function(r,o){if(o.displayMode){var a=["katex-display"];o.leqno&&a.push("leqno"),o.fleqn&&a.push("fleqn"),r=G.makeSpan(a,[r])}return r},Ph=function(r,o,a){var s=r0(a),d;if(a.output==="mathml")return t0(r,o,s,a.displayMode,!0);if(a.output==="html"){var v=Li(r,s);d=G.makeSpan(["katex"],[v])}else{var x=t0(r,o,s,a.displayMode,!1),A=Li(r,s);d=G.makeSpan(["katex"],[x,A])}return n0(d,a)},Nh=function(r,o,a){var s=r0(a),d=Li(r,s),v=G.makeSpan(["katex"],[d]);return n0(v,a)},qh={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},Fh=function(r){var o=new ce.MathNode("mo",[new ce.TextNode(qh[r.replace(/^\\/,"")])]);return o.setAttribute("stretchy","true"),o},Lh={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},$h=function(r){return r.type==="ordgroup"?r.body.length:1},Oh=function(r,o){function a(){var A=4e5,z=r.label.slice(1);if(E.contains(["widehat","widecheck","widetilde","utilde"],z)){var F=r,W=$h(F.base),Q,J,re;if(W>5)z==="widehat"||z==="widecheck"?(Q=420,A=2364,re=.42,J=z+"4"):(Q=312,A=2340,re=.34,J="tilde4");else{var ge=[1,1,2,2,3,3][W];z==="widehat"||z==="widecheck"?(A=[0,1062,2364,2364,2364][ge],Q=[0,239,300,360,420][ge],re=[0,.24,.3,.3,.36,.42][ge],J=z+ge):(A=[0,600,1033,2339,2340][ge],Q=[0,260,286,306,312][ge],re=[0,.26,.286,.3,.306,.34][ge],J="tilde"+ge)}var Ae=new Ir(J),Me=new Cr([Ae],{width:"100%",height:be(re),viewBox:"0 0 "+A+" "+Q,preserveAspectRatio:"none"});return{span:G.makeSvgSpan([],[Me],o),minWidth:0,height:re}}else{var Ne=[],qe=Lh[z],nt=qe[0],We=qe[1],st=qe[2],et=st/1e3,ct=nt.length,yt,$t;if(ct===1){var or=qe[3];yt=["hide-tail"],$t=[or]}else if(ct===2)yt=["halfarrow-left","halfarrow-right"],$t=["xMinYMin","xMaxYMin"];else if(ct===3)yt=["brace-left","brace-center","brace-right"],$t=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support - `+ct+" children.");for(var Tt=0;Tt0&&(d.style.minWidth=be(v)),d},Uh=function(r,o,a,s,d){var v,x=r.height+r.depth+a+s;if(/fbox|color|angl/.test(o)){if(v=G.makeSpan(["stretchy",o],[],d),o==="fbox"){var A=d.color&&d.getColor();A&&(v.style.borderColor=A)}}else{var z=[];/^[bx]cancel$/.test(o)&&z.push(new Ao({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(o)&&z.push(new Ao({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var F=new Cr(z,{width:"100%",height:be(x)});v=G.makeSvgSpan([],[F],d)}return v.height=x,v.style.height=be(x),v},Jr={encloseSpan:Uh,mathMLnode:Fh,svgSpan:Oh};function Ge(m,r){if(!m||m.type!==r)throw new Error("Expected node of type "+r+", but got "+(m?"node of type "+m.type:String(m)));return m}function Ui(m){var r=Sa(m);if(!r)throw new Error("Expected node of symbol group type, but got "+(m?"node of type "+m.type:String(m)));return r}function Sa(m){return m&&(m.type==="atom"||fh.hasOwnProperty(m.type))?m:null}var Hi=function(r,o){var a,s,d;r&&r.type==="supsub"?(s=Ge(r.base,"accent"),a=s.base,r.base=a,d=dh(Qe(r,o)),r.base=s):(s=Ge(r,"accent"),a=s.base);var v=Qe(a,o.havingCrampedStyle()),x=s.isShifty&&E.isCharacterBox(a),A=0;if(x){var z=E.getBaseElem(a),F=Qe(z,o.havingCrampedStyle());A=ua(F).skew}var W=s.label==="\\c",Q=W?v.height+v.depth:Math.min(v.height,o.fontMetrics().xHeight),J;if(s.isStretchy)J=Jr.svgSpan(s,o),J=G.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:v},{type:"elem",elem:J,wrapperClasses:["svg-align"],wrapperStyle:A>0?{width:"calc(100% - "+be(2*A)+")",marginLeft:be(2*A)}:void 0}]},o);else{var re,ge;s.label==="\\vec"?(re=G.staticSvg("vec",o),ge=G.svgData.vec[1]):(re=G.makeOrd({mode:s.mode,text:s.label},o,"textord"),re=ua(re),re.italic=0,ge=re.width,W&&(Q+=re.depth)),J=G.makeSpan(["accent-body"],[re]);var Ae=s.label==="\\textcircled";Ae&&(J.classes.push("accent-full"),Q=v.height);var Me=A;Ae||(Me-=ge/2),J.style.left=be(Me),s.label==="\\textcircled"&&(J.style.top=".2em"),J=G.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:v},{type:"kern",size:-Q},{type:"elem",elem:J}]},o)}var Ne=G.makeSpan(["mord","accent"],[J],o);return d?(d.children[0]=Ne,d.height=Math.max(Ne.height,d.height),d.classes[0]="mord",d):Ne},o0=function(r,o){var a=r.isStretchy?Jr.mathMLnode(r.label):new ce.MathNode("mo",[pr(r.label,r.mode)]),s=new ce.MathNode("mover",[ft(r.base,o),a]);return s.setAttribute("accent","true"),s},Hh=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(function(m){return"\\"+m}).join("|"));_e({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(r,o){var a=wa(o[0]),s=!Hh.test(r.funcName),d=!s||r.funcName==="\\widehat"||r.funcName==="\\widetilde"||r.funcName==="\\widecheck";return{type:"accent",mode:r.parser.mode,label:r.funcName,isStretchy:s,isShifty:d,base:a}},htmlBuilder:Hi,mathmlBuilder:o0}),_e({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(r,o){var a=o[0],s=r.parser.mode;return s==="math"&&(r.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+r.funcName+" works only in text mode"),s="text"),{type:"accent",mode:s,label:r.funcName,isStretchy:!1,isShifty:!0,base:a}},htmlBuilder:Hi,mathmlBuilder:o0}),_e({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(r,o){var a=r.parser,s=r.funcName,d=o[0];return{type:"accentUnder",mode:a.mode,label:s,base:d}},htmlBuilder:function(r,o){var a=Qe(r.base,o),s=Jr.svgSpan(r,o),d=r.label==="\\utilde"?.12:0,v=G.makeVList({positionType:"top",positionData:a.height,children:[{type:"elem",elem:s,wrapperClasses:["svg-align"]},{type:"kern",size:d},{type:"elem",elem:a}]},o);return G.makeSpan(["mord","accentunder"],[v],o)},mathmlBuilder:function(r,o){var a=Jr.mathMLnode(r.label),s=new ce.MathNode("munder",[ft(r.base,o),a]);return s.setAttribute("accentunder","true"),s}});var Ca=function(r){var o=new ce.MathNode("mpadded",r?[r]:[]);return o.setAttribute("width","+0.6em"),o.setAttribute("lspace","0.3em"),o};_e({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(r,o,a){var s=r.parser,d=r.funcName;return{type:"xArrow",mode:s.mode,label:d,body:o[0],below:a[0]}},htmlBuilder:function(r,o){var a=o.style,s=o.havingStyle(a.sup()),d=G.wrapFragment(Qe(r.body,s,o),o),v=r.label.slice(0,2)==="\\x"?"x":"cd";d.classes.push(v+"-arrow-pad");var x;r.below&&(s=o.havingStyle(a.sub()),x=G.wrapFragment(Qe(r.below,s,o),o),x.classes.push(v+"-arrow-pad"));var A=Jr.svgSpan(r,o),z=-o.fontMetrics().axisHeight+.5*A.height,F=-o.fontMetrics().axisHeight-.5*A.height-.111;(d.depth>.25||r.label==="\\xleftequilibrium")&&(F-=d.depth);var W;if(x){var Q=-o.fontMetrics().axisHeight+x.height+.5*A.height+.111;W=G.makeVList({positionType:"individualShift",children:[{type:"elem",elem:d,shift:F},{type:"elem",elem:A,shift:z},{type:"elem",elem:x,shift:Q}]},o)}else W=G.makeVList({positionType:"individualShift",children:[{type:"elem",elem:d,shift:F},{type:"elem",elem:A,shift:z}]},o);return W.children[0].children[0].children[1].classes.push("svg-align"),G.makeSpan(["mrel","x-arrow"],[W],o)},mathmlBuilder:function(r,o){var a=Jr.mathMLnode(r.label);a.setAttribute("minsize",r.label.charAt(0)==="x"?"1.75em":"3.0em");var s;if(r.body){var d=Ca(ft(r.body,o));if(r.below){var v=Ca(ft(r.below,o));s=new ce.MathNode("munderover",[a,v,d])}else s=new ce.MathNode("mover",[a,d])}else if(r.below){var x=Ca(ft(r.below,o));s=new ce.MathNode("munder",[a,x])}else s=Ca(),s=new ce.MathNode("mover",[a,s]);return s}});var Vh=G.makeSpan;function a0(m,r){var o=qt(m.body,r,!0);return Vh([m.mclass],o,r)}function i0(m,r){var o,a=Jt(m.body,r);return m.mclass==="minner"?o=new ce.MathNode("mpadded",a):m.mclass==="mord"?m.isCharacterBox?(o=a[0],o.type="mi"):o=new ce.MathNode("mi",a):(m.isCharacterBox?(o=a[0],o.type="mo"):o=new ce.MathNode("mo",a),m.mclass==="mbin"?(o.attributes.lspace="0.22em",o.attributes.rspace="0.22em"):m.mclass==="mpunct"?(o.attributes.lspace="0em",o.attributes.rspace="0.17em"):m.mclass==="mopen"||m.mclass==="mclose"?(o.attributes.lspace="0em",o.attributes.rspace="0em"):m.mclass==="minner"&&(o.attributes.lspace="0.0556em",o.attributes.width="+0.1111em")),o}_e({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler:function(r,o){var a=r.parser,s=r.funcName,d=o[0];return{type:"mclass",mode:a.mode,mclass:"m"+s.slice(5),body:Et(d),isCharacterBox:E.isCharacterBox(d)}},htmlBuilder:a0,mathmlBuilder:i0});var Aa=function(r){var o=r.type==="ordgroup"&&r.body.length?r.body[0]:r;return o.type==="atom"&&(o.family==="bin"||o.family==="rel")?"m"+o.family:"mord"};_e({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler:function(r,o){var a=r.parser;return{type:"mclass",mode:a.mode,mclass:Aa(o[0]),body:Et(o[1]),isCharacterBox:E.isCharacterBox(o[1])}}}),_e({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler:function(r,o){var a=r.parser,s=r.funcName,d=o[1],v=o[0],x;s!=="\\stackrel"?x=Aa(d):x="mrel";var A={type:"op",mode:d.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:s!=="\\stackrel",body:Et(d)},z={type:"supsub",mode:v.mode,base:A,sup:s==="\\underset"?null:v,sub:s==="\\underset"?v:null};return{type:"mclass",mode:a.mode,mclass:x,body:[z],isCharacterBox:E.isCharacterBox(z)}},htmlBuilder:a0,mathmlBuilder:i0}),_e({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler:function(r,o){var a=r.parser;return{type:"pmb",mode:a.mode,mclass:Aa(o[0]),body:Et(o[0])}},htmlBuilder:function(r,o){var a=qt(r.body,o,!0),s=G.makeSpan([r.mclass],a,o);return s.style.textShadow="0.02em 0.01em 0.04px",s},mathmlBuilder:function(r,o){var a=Jt(r.body,o),s=new ce.MathNode("mstyle",a);return s.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),s}});var jh={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},s0=function(){return{type:"styling",body:[],mode:"math",style:"display"}},l0=function(r){return r.type==="textord"&&r.text==="@"},Gh=function(r,o){return(r.type==="mathord"||r.type==="atom")&&r.text===o};function Wh(m,r,o){var a=jh[m];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return o.callFunction(a,[r[0]],[r[1]]);case"\\uparrow":case"\\downarrow":{var s=o.callFunction("\\\\cdleft",[r[0]],[]),d={type:"atom",text:a,mode:"math",family:"rel"},v=o.callFunction("\\Big",[d],[]),x=o.callFunction("\\\\cdright",[r[1]],[]),A={type:"ordgroup",mode:"math",body:[s,v,x]};return o.callFunction("\\\\cdparent",[A],[])}case"\\\\cdlongequal":return o.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var z={type:"textord",text:"\\Vert",mode:"math"};return o.callFunction("\\Big",[z],[])}default:return{type:"textord",text:" ",mode:"math"}}}function Xh(m){var r=[];for(m.gullet.beginGroup(),m.gullet.macros.set("\\cr","\\\\\\relax"),m.gullet.beginGroup();;){r.push(m.parseExpression(!1,"\\\\")),m.gullet.endGroup(),m.gullet.beginGroup();var o=m.fetch().text;if(o==="&"||o==="\\\\")m.consume();else if(o==="\\end"){r[r.length-1].length===0&&r.pop();break}else throw new l("Expected \\\\ or \\cr or \\end",m.nextToken)}for(var a=[],s=[a],d=0;d-1))if("<>AV".indexOf(z)>-1)for(var W=0;W<2;W++){for(var Q=!0,J=A+1;JAV=|." after @',v[A]);var re=Wh(z,F,m),ge={type:"styling",body:[re],mode:"math",style:"display"};a.push(ge),x=s0()}d%2===0?a.push(x):a.shift(),a=[],s.push(a)}m.gullet.endGroup(),m.gullet.endGroup();var Ae=new Array(s[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:s,arraystretch:1,addJot:!0,rowGaps:[null],cols:Ae,colSeparationType:"CD",hLinesBeforeRow:new Array(s.length+1).fill([])}}_e({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(r,o){var a=r.parser,s=r.funcName;return{type:"cdlabel",mode:a.mode,side:s.slice(4),label:o[0]}},htmlBuilder:function(r,o){var a=o.havingStyle(o.style.sup()),s=G.wrapFragment(Qe(r.label,a,o),o);return s.classes.push("cd-label-"+r.side),s.style.bottom=be(.8-s.depth),s.height=0,s.depth=0,s},mathmlBuilder:function(r,o){var a=new ce.MathNode("mrow",[ft(r.label,o)]);return a=new ce.MathNode("mpadded",[a]),a.setAttribute("width","0"),r.side==="left"&&a.setAttribute("lspace","-1width"),a.setAttribute("voffset","0.7em"),a=new ce.MathNode("mstyle",[a]),a.setAttribute("displaystyle","false"),a.setAttribute("scriptlevel","1"),a}}),_e({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(r,o){var a=r.parser;return{type:"cdlabelparent",mode:a.mode,fragment:o[0]}},htmlBuilder:function(r,o){var a=G.wrapFragment(Qe(r.fragment,o),o);return a.classes.push("cd-vert-arrow"),a},mathmlBuilder:function(r,o){return new ce.MathNode("mrow",[ft(r.fragment,o)])}}),_e({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(r,o){for(var a=r.parser,s=Ge(o[0],"ordgroup"),d=s.body,v="",x=0;x=1114111)throw new l("\\@char with invalid code point "+v);return z<=65535?F=String.fromCharCode(z):(z-=65536,F=String.fromCharCode((z>>10)+55296,(z&1023)+56320)),{type:"textord",mode:a.mode,text:F}}});var c0=function(r,o){var a=qt(r.body,o.withColor(r.color),!1);return G.makeFragment(a)},u0=function(r,o){var a=Jt(r.body,o.withColor(r.color)),s=new ce.MathNode("mstyle",a);return s.setAttribute("mathcolor",r.color),s};_e({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(r,o){var a=r.parser,s=Ge(o[0],"color-token").color,d=o[1];return{type:"color",mode:a.mode,color:s,body:Et(d)}},htmlBuilder:c0,mathmlBuilder:u0}),_e({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(r,o){var a=r.parser,s=r.breakOnTokenText,d=Ge(o[0],"color-token").color;a.gullet.macros.set("\\current@color",d);var v=a.parseExpression(!0,s);return{type:"color",mode:a.mode,color:d,body:v}},htmlBuilder:c0,mathmlBuilder:u0}),_e({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler:function(r,o,a){var s=r.parser,d=s.gullet.future().text==="["?s.parseSizeGroup(!0):null,v=!s.settings.displayMode||!s.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:s.mode,newLine:v,size:d&&Ge(d,"size").value}},htmlBuilder:function(r,o){var a=G.makeSpan(["mspace"],[],o);return r.newLine&&(a.classes.push("newline"),r.size&&(a.style.marginTop=be(bt(r.size,o)))),a},mathmlBuilder:function(r,o){var a=new ce.MathNode("mspace");return r.newLine&&(a.setAttribute("linebreak","newline"),r.size&&a.setAttribute("height",be(bt(r.size,o)))),a}});var Vi={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},d0=function(r){var o=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(o))throw new l("Expected a control sequence",r);return o},Yh=function(r){var o=r.gullet.popToken();return o.text==="="&&(o=r.gullet.popToken(),o.text===" "&&(o=r.gullet.popToken())),o},h0=function(r,o,a,s){var d=r.gullet.macros.get(a.text);d==null&&(a.noexpand=!0,d={tokens:[a],numArgs:0,unexpandable:!r.gullet.isExpandable(a.text)}),r.gullet.macros.set(o,d,s)};_e({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(r){var o=r.parser,a=r.funcName;o.consumeSpaces();var s=o.fetch();if(Vi[s.text])return(a==="\\global"||a==="\\\\globallong")&&(s.text=Vi[s.text]),Ge(o.parseFunction(),"internal");throw new l("Invalid token after macro prefix",s)}}),_e({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(r){var o=r.parser,a=r.funcName,s=o.gullet.popToken(),d=s.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(d))throw new l("Expected a control sequence",s);for(var v=0,x,A=[[]];o.gullet.future().text!=="{";)if(s=o.gullet.popToken(),s.text==="#"){if(o.gullet.future().text==="{"){x=o.gullet.future(),A[v].push("{");break}if(s=o.gullet.popToken(),!/^[1-9]$/.test(s.text))throw new l('Invalid argument number "'+s.text+'"');if(parseInt(s.text)!==v+1)throw new l('Argument number "'+s.text+'" out of order');v++,A.push([])}else{if(s.text==="EOF")throw new l("Expected a macro definition");A[v].push(s.text)}var z=o.gullet.consumeArg(),F=z.tokens;return x&&F.unshift(x),(a==="\\edef"||a==="\\xdef")&&(F=o.gullet.expandTokens(F),F.reverse()),o.gullet.macros.set(d,{tokens:F,numArgs:v,delimiters:A},a===Vi[a]),{type:"internal",mode:o.mode}}}),_e({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(r){var o=r.parser,a=r.funcName,s=d0(o.gullet.popToken());o.gullet.consumeSpaces();var d=Yh(o);return h0(o,s,d,a==="\\\\globallet"),{type:"internal",mode:o.mode}}}),_e({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(r){var o=r.parser,a=r.funcName,s=d0(o.gullet.popToken()),d=o.gullet.popToken(),v=o.gullet.popToken();return h0(o,s,v,a==="\\\\globalfuture"),o.gullet.pushToken(v),o.gullet.pushToken(d),{type:"internal",mode:o.mode}}});var Do=function(r,o,a){var s=Ct.math[r]&&Ct.math[r].replace,d=rt(s||r,o,a);if(!d)throw new Error("Unsupported symbol "+r+" and font size "+o+".");return d},ji=function(r,o,a,s){var d=a.havingBaseStyle(o),v=G.makeSpan(s.concat(d.sizingClasses(a)),[r],a),x=d.sizeMultiplier/a.sizeMultiplier;return v.height*=x,v.depth*=x,v.maxFontSize=d.sizeMultiplier,v},f0=function(r,o,a){var s=o.havingBaseStyle(a),d=(1-o.sizeMultiplier/s.sizeMultiplier)*o.fontMetrics().axisHeight;r.classes.push("delimcenter"),r.style.top=be(d),r.height-=d,r.depth+=d},Kh=function(r,o,a,s,d,v){var x=G.makeSymbol(r,"Main-Regular",d,s),A=ji(x,o,s,v);return a&&f0(A,s,o),A},Zh=function(r,o,a,s){return G.makeSymbol(r,"Size"+o+"-Regular",a,s)},p0=function(r,o,a,s,d,v){var x=Zh(r,o,d,s),A=ji(G.makeSpan(["delimsizing","size"+o],[x],s),De.TEXT,s,v);return a&&f0(A,s,De.TEXT),A},Gi=function(r,o,a){var s;o==="Size1-Regular"?s="delim-size1":s="delim-size4";var d=G.makeSpan(["delimsizinginner",s],[G.makeSpan([],[G.makeSymbol(r,o,a)])]);return{type:"elem",elem:d}},Wi=function(r,o,a){var s=ye["Size4-Regular"][r.charCodeAt(0)]?ye["Size4-Regular"][r.charCodeAt(0)][4]:ye["Size1-Regular"][r.charCodeAt(0)][4],d=new Ir("inner",Xt(r,Math.round(1e3*o))),v=new Cr([d],{width:be(s),height:be(o),style:"width:"+be(s),viewBox:"0 0 "+1e3*s+" "+Math.round(1e3*o),preserveAspectRatio:"xMinYMin"}),x=G.makeSvgSpan([],[v],a);return x.height=o,x.style.height=be(o),x.style.width=be(s),{type:"elem",elem:x}},Xi=.008,Ta={type:"kern",size:-1*Xi},Jh=["|","\\lvert","\\rvert","\\vert"],Qh=["\\|","\\lVert","\\rVert","\\Vert"],m0=function(r,o,a,s,d,v){var x,A,z,F,W="",Q=0;x=z=F=r,A=null;var J="Size1-Regular";r==="\\uparrow"?z=F="⏐":r==="\\Uparrow"?z=F="‖":r==="\\downarrow"?x=z="⏐":r==="\\Downarrow"?x=z="‖":r==="\\updownarrow"?(x="\\uparrow",z="⏐",F="\\downarrow"):r==="\\Updownarrow"?(x="\\Uparrow",z="‖",F="\\Downarrow"):E.contains(Jh,r)?(z="∣",W="vert",Q=333):E.contains(Qh,r)?(z="∥",W="doublevert",Q=556):r==="["||r==="\\lbrack"?(x="⎡",z="⎢",F="⎣",J="Size4-Regular",W="lbrack",Q=667):r==="]"||r==="\\rbrack"?(x="⎤",z="⎥",F="⎦",J="Size4-Regular",W="rbrack",Q=667):r==="\\lfloor"||r==="⌊"?(z=x="⎢",F="⎣",J="Size4-Regular",W="lfloor",Q=667):r==="\\lceil"||r==="⌈"?(x="⎡",z=F="⎢",J="Size4-Regular",W="lceil",Q=667):r==="\\rfloor"||r==="⌋"?(z=x="⎥",F="⎦",J="Size4-Regular",W="rfloor",Q=667):r==="\\rceil"||r==="⌉"?(x="⎤",z=F="⎥",J="Size4-Regular",W="rceil",Q=667):r==="("||r==="\\lparen"?(x="⎛",z="⎜",F="⎝",J="Size4-Regular",W="lparen",Q=875):r===")"||r==="\\rparen"?(x="⎞",z="⎟",F="⎠",J="Size4-Regular",W="rparen",Q=875):r==="\\{"||r==="\\lbrace"?(x="⎧",A="⎨",F="⎩",z="⎪",J="Size4-Regular"):r==="\\}"||r==="\\rbrace"?(x="⎫",A="⎬",F="⎭",z="⎪",J="Size4-Regular"):r==="\\lgroup"||r==="⟮"?(x="⎧",F="⎩",z="⎪",J="Size4-Regular"):r==="\\rgroup"||r==="⟯"?(x="⎫",F="⎭",z="⎪",J="Size4-Regular"):r==="\\lmoustache"||r==="⎰"?(x="⎧",F="⎭",z="⎪",J="Size4-Regular"):(r==="\\rmoustache"||r==="⎱")&&(x="⎫",F="⎩",z="⎪",J="Size4-Regular");var re=Do(x,J,d),ge=re.height+re.depth,Ae=Do(z,J,d),Me=Ae.height+Ae.depth,Ne=Do(F,J,d),qe=Ne.height+Ne.depth,nt=0,We=1;if(A!==null){var st=Do(A,J,d);nt=st.height+st.depth,We=2}var et=ge+qe+nt,ct=Math.max(0,Math.ceil((o-et)/(We*Me))),yt=et+ct*We*Me,$t=s.fontMetrics().axisHeight;a&&($t*=s.sizeMultiplier);var or=yt/2-$t,Tt=[];if(W.length>0){var In=yt-ge-qe,mr=Math.round(yt*1e3),Gt=Te(W,Math.round(In*1e3)),pn=new Ir(W,Gt),Qn=(Q/1e3).toFixed(3)+"em",eo=(mr/1e3).toFixed(3)+"em",fs=new Cr([pn],{width:Qn,height:eo,viewBox:"0 0 "+Q+" "+mr}),mn=G.makeSvgSpan([],[fs],s);mn.height=mr/1e3,mn.style.width=Qn,mn.style.height=eo,Tt.push({type:"elem",elem:mn})}else{if(Tt.push(Gi(F,J,d)),Tt.push(Ta),A===null){var vn=yt-ge-qe+2*Xi;Tt.push(Wi(z,vn,s))}else{var vr=(yt-ge-qe-nt)/2+2*Xi;Tt.push(Wi(z,vr,s)),Tt.push(Ta),Tt.push(Gi(A,J,d)),Tt.push(Ta),Tt.push(Wi(z,vr,s))}Tt.push(Ta),Tt.push(Gi(x,J,d))}var Ro=s.havingBaseStyle(De.TEXT),ps=G.makeVList({positionType:"bottom",positionData:or,children:Tt},Ro);return ji(G.makeSpan(["delimsizing","mult"],[ps],Ro),De.TEXT,s,v)},Yi=80,Ki=.08,Zi=function(r,o,a,s,d){var v=cn(r,s,a),x=new Ir(r,v),A=new Cr([x],{width:"400em",height:be(o),viewBox:"0 0 400000 "+a,preserveAspectRatio:"xMinYMin slice"});return G.makeSvgSpan(["hide-tail"],[A],d)},e1=function(r,o){var a=o.havingBaseSizing(),s=y0("\\surd",r*a.sizeMultiplier,b0,a),d=a.sizeMultiplier,v=Math.max(0,o.minRuleThickness-o.fontMetrics().sqrtRuleThickness),x,A=0,z=0,F=0,W;return s.type==="small"?(F=1e3+1e3*v+Yi,r<1?d=1:r<1.4&&(d=.7),A=(1+v+Ki)/d,z=(1+v)/d,x=Zi("sqrtMain",A,F,v,o),x.style.minWidth="0.853em",W=.833/d):s.type==="large"?(F=(1e3+Yi)*zo[s.size],z=(zo[s.size]+v)/d,A=(zo[s.size]+v+Ki)/d,x=Zi("sqrtSize"+s.size,A,F,v,o),x.style.minWidth="1.02em",W=1/d):(A=r+v+Ki,z=r+v,F=Math.floor(1e3*r+v)+Yi,x=Zi("sqrtTall",A,F,v,o),x.style.minWidth="0.742em",W=1.056),x.height=z,x.style.height=be(A),{span:x,advanceWidth:W,ruleWidth:(o.fontMetrics().sqrtRuleThickness+v)*d}},v0=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],t1=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],g0=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],zo=[0,1.2,1.8,2.4,3],r1=function(r,o,a,s,d){if(r==="<"||r==="\\lt"||r==="⟨"?r="\\langle":(r===">"||r==="\\gt"||r==="⟩")&&(r="\\rangle"),E.contains(v0,r)||E.contains(g0,r))return p0(r,o,!1,a,s,d);if(E.contains(t1,r))return m0(r,zo[o],!1,a,s,d);throw new l("Illegal delimiter: '"+r+"'")},n1=[{type:"small",style:De.SCRIPTSCRIPT},{type:"small",style:De.SCRIPT},{type:"small",style:De.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],o1=[{type:"small",style:De.SCRIPTSCRIPT},{type:"small",style:De.SCRIPT},{type:"small",style:De.TEXT},{type:"stack"}],b0=[{type:"small",style:De.SCRIPTSCRIPT},{type:"small",style:De.SCRIPT},{type:"small",style:De.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],a1=function(r){if(r.type==="small")return"Main-Regular";if(r.type==="large")return"Size"+r.size+"-Regular";if(r.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+r.type+"' here.")},y0=function(r,o,a,s){for(var d=Math.min(2,3-s.style.size),v=d;vo)return a[v]}return a[a.length-1]},x0=function(r,o,a,s,d,v){r==="<"||r==="\\lt"||r==="⟨"?r="\\langle":(r===">"||r==="\\gt"||r==="⟩")&&(r="\\rangle");var x;E.contains(g0,r)?x=n1:E.contains(v0,r)?x=b0:x=o1;var A=y0(r,o,x,s);return A.type==="small"?Kh(r,A.style,a,s,d,v):A.type==="large"?p0(r,A.size,a,s,d,v):m0(r,o,a,s,d,v)},i1=function(r,o,a,s,d,v){var x=s.fontMetrics().axisHeight*s.sizeMultiplier,A=901,z=5/s.fontMetrics().ptPerEm,F=Math.max(o-x,a+x),W=Math.max(F/500*A,2*F-z);return x0(r,W,!0,s,d,v)},Qr={sqrtImage:e1,sizedDelim:r1,sizeToMaxHeight:zo,customSizedDelim:x0,leftRightDelim:i1},w0={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},s1=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function _a(m,r){var o=Sa(m);if(o&&E.contains(s1,o.text))return o;throw o?new l("Invalid delimiter '"+o.text+"' after '"+r.funcName+"'",m):new l("Invalid delimiter type '"+m.type+"'",m)}_e({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(r,o){var a=_a(o[0],r);return{type:"delimsizing",mode:r.parser.mode,size:w0[r.funcName].size,mclass:w0[r.funcName].mclass,delim:a.text}},htmlBuilder:function(r,o){return r.delim==="."?G.makeSpan([r.mclass]):Qr.sizedDelim(r.delim,r.size,o,r.mode,[r.mclass])},mathmlBuilder:function(r){var o=[];r.delim!=="."&&o.push(pr(r.delim,r.mode));var a=new ce.MathNode("mo",o);r.mclass==="mopen"||r.mclass==="mclose"?a.setAttribute("fence","true"):a.setAttribute("fence","false"),a.setAttribute("stretchy","true");var s=be(Qr.sizeToMaxHeight[r.size]);return a.setAttribute("minsize",s),a.setAttribute("maxsize",s),a}});function k0(m){if(!m.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}_e({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(r,o){var a=r.parser.gullet.macros.get("\\current@color");if(a&&typeof a!="string")throw new l("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:r.parser.mode,delim:_a(o[0],r).text,color:a}}}),_e({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(r,o){var a=_a(o[0],r),s=r.parser;++s.leftrightDepth;var d=s.parseExpression(!1);--s.leftrightDepth,s.expect("\\right",!1);var v=Ge(s.parseFunction(),"leftright-right");return{type:"leftright",mode:s.mode,body:d,left:a.text,right:v.delim,rightColor:v.color}},htmlBuilder:function(r,o){k0(r);for(var a=qt(r.body,o,!0,["mopen","mclose"]),s=0,d=0,v=!1,x=0;x-1?"mpadded":"menclose",[ft(r.body,o)]);switch(r.label){case"\\cancel":s.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":s.setAttribute("notation","downdiagonalstrike");break;case"\\phase":s.setAttribute("notation","phasorangle");break;case"\\sout":s.setAttribute("notation","horizontalstrike");break;case"\\fbox":s.setAttribute("notation","box");break;case"\\angl":s.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(a=o.fontMetrics().fboxsep*o.fontMetrics().ptPerEm,s.setAttribute("width","+"+2*a+"pt"),s.setAttribute("height","+"+2*a+"pt"),s.setAttribute("lspace",a+"pt"),s.setAttribute("voffset",a+"pt"),r.label==="\\fcolorbox"){var d=Math.max(o.fontMetrics().fboxrule,o.minRuleThickness);s.setAttribute("style","border: "+d+"em solid "+String(r.borderColor))}break;case"\\xcancel":s.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return r.backgroundColor&&s.setAttribute("mathbackground",r.backgroundColor),s};_e({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler:function(r,o,a){var s=r.parser,d=r.funcName,v=Ge(o[0],"color-token").color,x=o[1];return{type:"enclose",mode:s.mode,label:d,backgroundColor:v,body:x}},htmlBuilder:Ji,mathmlBuilder:Qi}),_e({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler:function(r,o,a){var s=r.parser,d=r.funcName,v=Ge(o[0],"color-token").color,x=Ge(o[1],"color-token").color,A=o[2];return{type:"enclose",mode:s.mode,label:d,backgroundColor:x,borderColor:v,body:A}},htmlBuilder:Ji,mathmlBuilder:Qi}),_e({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(r,o){var a=r.parser;return{type:"enclose",mode:a.mode,label:"\\fbox",body:o[0]}}}),_e({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler:function(r,o){var a=r.parser,s=r.funcName,d=o[0];return{type:"enclose",mode:a.mode,label:s,body:d}},htmlBuilder:Ji,mathmlBuilder:Qi}),_e({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler:function(r,o){var a=r.parser;return{type:"enclose",mode:a.mode,label:"\\angl",body:o[0]}}});var S0={};function Pr(m){for(var r=m.type,o=m.names,a=m.props,s=m.handler,d=m.htmlBuilder,v=m.mathmlBuilder,x={type:r,numArgs:a.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:s},A=0;A1||!F)&&ge.pop(),Me.length0&&(qe+=.25),z.push({pos:qe,isDashed:Ma[Ba]})}for(nt(v[0]),a=0;a0&&(or+=Ne,et=x)){var ro=void 0;(s>0||r.hskipBeforeAndAfter)&&(ro=E.deflt(vr.pregap,Q),ro!==0&&(Gt=G.makeSpan(["arraycolsep"],[]),Gt.style.width=be(ro),mr.push(Gt)));var no=[];for(a=0;a0){for(var P1=G.makeLineSpan("hline",o,F),N1=G.makeLineSpan("hdashline",o,F),ms=[{type:"elem",elem:A,shift:0}];z.length>0;){var sc=z.pop(),lc=sc.pos-Tt;sc.isDashed?ms.push({type:"elem",elem:N1,shift:lc}):ms.push({type:"elem",elem:P1,shift:lc})}A=G.makeVList({positionType:"individualShift",children:ms},o)}if(Qn.length===0)return G.makeSpan(["mord"],[A],o);var vs=G.makeVList({positionType:"individualShift",children:Qn},o);return vs=G.makeSpan(["tag"],[vs],o),G.makeFragment([A,vs])},l1={c:"center ",l:"left ",r:"right "},Fr=function(r,o){for(var a=[],s=new ce.MathNode("mtd",[],["mtr-glue"]),d=new ce.MathNode("mtd",[],["mml-eqn-num"]),v=0;v0){var re=r.cols,ge="",Ae=!1,Me=0,Ne=re.length;re[0].type==="separator"&&(Q+="top ",Me=1),re[re.length-1].type==="separator"&&(Q+="bottom ",Ne-=1);for(var qe=Me;qe0?"left ":"",Q+=ct[ct.length-1].length>0?"right ":"";for(var yt=1;yt-1?"alignat":"align",d=r.envName==="split",v=hn(r.parser,{cols:a,addJot:!0,autoTag:d?void 0:es(r.envName),emptySingleRow:!0,colSeparationType:s,maxNumCols:d?2:void 0,leqno:r.parser.settings.leqno},"display"),x,A=0,z={type:"ordgroup",mode:r.mode,body:[]};if(o[0]&&o[0].type==="ordgroup"){for(var F="",W=0;W0&&J&&(Ae=1),a[re]={type:"align",align:ge,pregap:Ae,postgap:0}}return v.colSeparationType=J?"align":"alignat",v};Pr({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(r,o){var a=Sa(o[0]),s=a?[o[0]]:Ge(o[0],"ordgroup").body,d=s.map(function(x){var A=Ui(x),z=A.text;if("lcr".indexOf(z)!==-1)return{type:"align",align:z};if(z==="|")return{type:"separator",separator:"|"};if(z===":")return{type:"separator",separator:":"};throw new l("Unknown column alignment: "+z,x)}),v={cols:d,hskipBeforeAndAfter:!0,maxNumCols:d.length};return hn(r.parser,v,ts(r.envName))},htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler:function(r){var o={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[r.envName.replace("*","")],a="c",s={hskipBeforeAndAfter:!1,cols:[{type:"align",align:a}]};if(r.envName.charAt(r.envName.length-1)==="*"){var d=r.parser;if(d.consumeSpaces(),d.fetch().text==="["){if(d.consume(),d.consumeSpaces(),a=d.fetch().text,"lcr".indexOf(a)===-1)throw new l("Expected l or c or r",d.nextToken);d.consume(),d.consumeSpaces(),d.expect("]"),d.consume(),s.cols=[{type:"align",align:a}]}}var v=hn(r.parser,s,ts(r.envName)),x=Math.max.apply(Math,[0].concat(v.body.map(function(A){return A.length})));return v.cols=new Array(x).fill({type:"align",align:a}),o?{type:"leftright",mode:r.mode,body:[v],left:o[0],right:o[1],rightColor:void 0}:v},htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(r){var o={arraystretch:.5},a=hn(r.parser,o,"script");return a.colSeparationType="small",a},htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["subarray"],props:{numArgs:1},handler:function(r,o){var a=Sa(o[0]),s=a?[o[0]]:Ge(o[0],"ordgroup").body,d=s.map(function(x){var A=Ui(x),z=A.text;if("lc".indexOf(z)!==-1)return{type:"align",align:z};throw new l("Unknown column alignment: "+z,x)});if(d.length>1)throw new l("{subarray} can contain only one column");var v={cols:d,hskipBeforeAndAfter:!1,arraystretch:.5};if(v=hn(r.parser,v,"script"),v.body.length>0&&v.body[0].length>1)throw new l("{subarray} can contain only one column");return v},htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler:function(r){var o={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},a=hn(r.parser,o,ts(r.envName));return{type:"leftright",mode:r.mode,body:[a],left:r.envName.indexOf("r")>-1?".":"\\{",right:r.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:T0,htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler:function(r){E.contains(["gather","gather*"],r.envName)&&Da(r);var o={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:es(r.envName),emptySingleRow:!0,leqno:r.parser.settings.leqno};return hn(r.parser,o,"display")},htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:T0,htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["equation","equation*"],props:{numArgs:0},handler:function(r){Da(r);var o={autoTag:es(r.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:r.parser.settings.leqno};return hn(r.parser,o,"display")},htmlBuilder:qr,mathmlBuilder:Fr}),Pr({type:"array",names:["CD"],props:{numArgs:0},handler:function(r){return Da(r),Xh(r.parser)},htmlBuilder:qr,mathmlBuilder:Fr}),T("\\nonumber","\\gdef\\@eqnsw{0}"),T("\\notag","\\nonumber"),_e({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler:function(r,o){throw new l(r.funcName+" valid only within array environment")}});var c1=S0,_0=c1;_e({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler:function(r,o){var a=r.parser,s=r.funcName,d=o[0];if(d.type!=="ordgroup")throw new l("Invalid environment name",d);for(var v="",x=0;x=De.SCRIPT.id?a.text():De.DISPLAY:r==="text"&&a.size===De.DISPLAY.size?a=De.TEXT:r==="script"?a=De.SCRIPT:r==="scriptscript"&&(a=De.SCRIPTSCRIPT),a},rs=function(r,o){var a=R0(r.size,o.style),s=a.fracNum(),d=a.fracDen(),v;v=o.havingStyle(s);var x=Qe(r.numer,v,o);if(r.continued){var A=8.5/o.fontMetrics().ptPerEm,z=3.5/o.fontMetrics().ptPerEm;x.height=x.height0?ge=3*J:ge=7*J,Ae=o.fontMetrics().denom1):(Q>0?(re=o.fontMetrics().num2,ge=J):(re=o.fontMetrics().num3,ge=3*J),Ae=o.fontMetrics().denom2);var Me;if(W){var qe=o.fontMetrics().axisHeight;re-x.depth-(qe+.5*Q)0&&(o=r,o=o==="."?null:o),o};_e({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler:function(r,o){var a=r.parser,s=o[4],d=o[5],v=wa(o[0]),x=v.type==="atom"&&v.family==="open"?B0(v.text):null,A=wa(o[1]),z=A.type==="atom"&&A.family==="close"?B0(A.text):null,F=Ge(o[2],"size"),W,Q=null;F.isBlank?W=!0:(Q=F.value,W=Q.number>0);var J="auto",re=o[3];if(re.type==="ordgroup"){if(re.body.length>0){var ge=Ge(re.body[0],"textord");J=M0[Number(ge.text)]}}else re=Ge(re,"textord"),J=M0[Number(re.text)];return{type:"genfrac",mode:a.mode,numer:s,denom:d,continued:!1,hasBarLine:W,barSize:Q,leftDelim:x,rightDelim:z,size:J}},htmlBuilder:rs,mathmlBuilder:ns}),_e({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(r,o){var a=r.parser;r.funcName;var s=r.token;return{type:"infix",mode:a.mode,replaceWith:"\\\\abovefrac",size:Ge(o[0],"size").value,token:s}}}),_e({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(r,o){var a=r.parser;r.funcName;var s=o[0],d=P(Ge(o[1],"infix").size),v=o[2],x=d.number>0;return{type:"genfrac",mode:a.mode,numer:s,denom:v,continued:!1,hasBarLine:x,barSize:d,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:rs,mathmlBuilder:ns});var I0=function(r,o){var a=o.style,s,d;r.type==="supsub"?(s=r.sup?Qe(r.sup,o.havingStyle(a.sup()),o):Qe(r.sub,o.havingStyle(a.sub()),o),d=Ge(r.base,"horizBrace")):d=Ge(r,"horizBrace");var v=Qe(d.base,o.havingBaseStyle(De.DISPLAY)),x=Jr.svgSpan(d,o),A;if(d.isOver?(A=G.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:v},{type:"kern",size:.1},{type:"elem",elem:x}]},o),A.children[0].children[0].children[1].classes.push("svg-align")):(A=G.makeVList({positionType:"bottom",positionData:v.depth+.1+x.height,children:[{type:"elem",elem:x},{type:"kern",size:.1},{type:"elem",elem:v}]},o),A.children[0].children[0].children[0].classes.push("svg-align")),s){var z=G.makeSpan(["mord",d.isOver?"mover":"munder"],[A],o);d.isOver?A=G.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:z},{type:"kern",size:.2},{type:"elem",elem:s}]},o):A=G.makeVList({positionType:"bottom",positionData:z.depth+.2+s.height+s.depth,children:[{type:"elem",elem:s},{type:"kern",size:.2},{type:"elem",elem:z}]},o)}return G.makeSpan(["mord",d.isOver?"mover":"munder"],[A],o)},u1=function(r,o){var a=Jr.mathMLnode(r.label);return new ce.MathNode(r.isOver?"mover":"munder",[ft(r.base,o),a])};_e({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(r,o){var a=r.parser,s=r.funcName;return{type:"horizBrace",mode:a.mode,label:s,isOver:/^\\over/.test(s),base:o[0]}},htmlBuilder:I0,mathmlBuilder:u1}),_e({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(r,o){var a=r.parser,s=o[1],d=Ge(o[0],"url").url;return a.settings.isTrusted({command:"\\href",url:d})?{type:"href",mode:a.mode,href:d,body:Et(s)}:a.formatUnsupportedCmd("\\href")},htmlBuilder:function(r,o){var a=qt(r.body,o,!1);return G.makeAnchor(r.href,[],a,o)},mathmlBuilder:function(r,o){var a=dn(r.body,o);return a instanceof fr||(a=new fr("mrow",[a])),a.setAttribute("href",r.href),a}}),_e({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(r,o){var a=r.parser,s=Ge(o[0],"url").url;if(!a.settings.isTrusted({command:"\\url",url:s}))return a.formatUnsupportedCmd("\\url");for(var d=[],v=0;v0&&(s=bt(r.totalheight,o)-a);var d=0;r.width.number>0&&(d=bt(r.width,o));var v={height:be(a+s)};d>0&&(v.width=be(d)),s>0&&(v.verticalAlign=be(-s));var x=new Ei(r.src,r.alt,v);return x.height=a,x.depth=s,x},mathmlBuilder:function(r,o){var a=new ce.MathNode("mglyph",[]);a.setAttribute("alt",r.alt);var s=bt(r.height,o),d=0;if(r.totalheight.number>0&&(d=bt(r.totalheight,o)-s,a.setAttribute("valign",be(-d))),a.setAttribute("height",be(s+d)),r.width.number>0){var v=bt(r.width,o);a.setAttribute("width",be(v))}return a.setAttribute("src",r.src),a}}),_e({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler:function(r,o){var a=r.parser,s=r.funcName,d=Ge(o[0],"size");if(a.settings.strict){var v=s[1]==="m",x=d.value.unit==="mu";v?(x||a.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+s+" supports only mu units, "+("not "+d.value.unit+" units")),a.mode!=="math"&&a.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+s+" works only in math mode")):x&&a.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+s+" doesn't support mu units")}return{type:"kern",mode:a.mode,dimension:d.value}},htmlBuilder:function(r,o){return G.makeGlue(r.dimension,o)},mathmlBuilder:function(r,o){var a=bt(r.dimension,o);return new ce.SpaceNode(a)}}),_e({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(r,o){var a=r.parser,s=r.funcName,d=o[0];return{type:"lap",mode:a.mode,alignment:s.slice(5),body:d}},htmlBuilder:function(r,o){var a;r.alignment==="clap"?(a=G.makeSpan([],[Qe(r.body,o)]),a=G.makeSpan(["inner"],[a],o)):a=G.makeSpan(["inner"],[Qe(r.body,o)]);var s=G.makeSpan(["fix"],[]),d=G.makeSpan([r.alignment],[a,s],o),v=G.makeSpan(["strut"]);return v.style.height=be(d.height+d.depth),d.depth&&(v.style.verticalAlign=be(-d.depth)),d.children.unshift(v),d=G.makeSpan(["thinbox"],[d],o),G.makeSpan(["mord","vbox"],[d],o)},mathmlBuilder:function(r,o){var a=new ce.MathNode("mpadded",[ft(r.body,o)]);if(r.alignment!=="rlap"){var s=r.alignment==="llap"?"-1":"-0.5";a.setAttribute("lspace",s+"width")}return a.setAttribute("width","0px"),a}}),_e({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(r,o){var a=r.funcName,s=r.parser,d=s.mode;s.switchMode("math");var v=a==="\\("?"\\)":"$",x=s.parseExpression(!1,v);return s.expect(v),s.switchMode(d),{type:"styling",mode:s.mode,style:"text",body:x}}}),_e({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(r,o){throw new l("Mismatched "+r.funcName)}});var P0=function(r,o){switch(o.style.size){case De.DISPLAY.size:return r.display;case De.TEXT.size:return r.text;case De.SCRIPT.size:return r.script;case De.SCRIPTSCRIPT.size:return r.scriptscript;default:return r.text}};_e({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:function(r,o){var a=r.parser;return{type:"mathchoice",mode:a.mode,display:Et(o[0]),text:Et(o[1]),script:Et(o[2]),scriptscript:Et(o[3])}},htmlBuilder:function(r,o){var a=P0(r,o),s=qt(a,o,!1);return G.makeFragment(s)},mathmlBuilder:function(r,o){var a=P0(r,o);return dn(a,o)}});var N0=function(r,o,a,s,d,v,x){r=G.makeSpan([],[r]);var A=a&&E.isCharacterBox(a),z,F;if(o){var W=Qe(o,s.havingStyle(d.sup()),s);F={elem:W,kern:Math.max(s.fontMetrics().bigOpSpacing1,s.fontMetrics().bigOpSpacing3-W.depth)}}if(a){var Q=Qe(a,s.havingStyle(d.sub()),s);z={elem:Q,kern:Math.max(s.fontMetrics().bigOpSpacing2,s.fontMetrics().bigOpSpacing4-Q.height)}}var J;if(F&&z){var re=s.fontMetrics().bigOpSpacing5+z.elem.height+z.elem.depth+z.kern+r.depth+x;J=G.makeVList({positionType:"bottom",positionData:re,children:[{type:"kern",size:s.fontMetrics().bigOpSpacing5},{type:"elem",elem:z.elem,marginLeft:be(-v)},{type:"kern",size:z.kern},{type:"elem",elem:r},{type:"kern",size:F.kern},{type:"elem",elem:F.elem,marginLeft:be(v)},{type:"kern",size:s.fontMetrics().bigOpSpacing5}]},s)}else if(z){var ge=r.height-x;J=G.makeVList({positionType:"top",positionData:ge,children:[{type:"kern",size:s.fontMetrics().bigOpSpacing5},{type:"elem",elem:z.elem,marginLeft:be(-v)},{type:"kern",size:z.kern},{type:"elem",elem:r}]},s)}else if(F){var Ae=r.depth+x;J=G.makeVList({positionType:"bottom",positionData:Ae,children:[{type:"elem",elem:r},{type:"kern",size:F.kern},{type:"elem",elem:F.elem,marginLeft:be(v)},{type:"kern",size:s.fontMetrics().bigOpSpacing5}]},s)}else return r;var Me=[J];if(z&&v!==0&&!A){var Ne=G.makeSpan(["mspace"],[],s);Ne.style.marginRight=be(v),Me.unshift(Ne)}return G.makeSpan(["mop","op-limits"],Me,s)},q0=["\\smallint"],Jn=function(r,o){var a,s,d=!1,v;r.type==="supsub"?(a=r.sup,s=r.sub,v=Ge(r.base,"op"),d=!0):v=Ge(r,"op");var x=o.style,A=!1;x.size===De.DISPLAY.size&&v.symbol&&!E.contains(q0,v.name)&&(A=!0);var z;if(v.symbol){var F=A?"Size2-Regular":"Size1-Regular",W="";if((v.name==="\\oiint"||v.name==="\\oiiint")&&(W=v.name.slice(1),v.name=W==="oiint"?"\\iint":"\\iiint"),z=G.makeSymbol(v.name,F,"math",o,["mop","op-symbol",A?"large-op":"small-op"]),W.length>0){var Q=z.italic,J=G.staticSvg(W+"Size"+(A?"2":"1"),o);z=G.makeVList({positionType:"individualShift",children:[{type:"elem",elem:z,shift:0},{type:"elem",elem:J,shift:A?.08:0}]},o),v.name="\\"+W,z.classes.unshift("mop"),z.italic=Q}}else if(v.body){var re=qt(v.body,o,!0);re.length===1&&re[0]instanceof Yt?(z=re[0],z.classes[0]="mop"):z=G.makeSpan(["mop"],re,o)}else{for(var ge=[],Ae=1;Ae0){for(var A=v.body.map(function(Q){var J=Q.text;return typeof J=="string"?{type:"textord",mode:Q.mode,text:J}:Q}),z=qt(A,o.withFont("mathrm"),!0),F=0;F=0?A.setAttribute("height",be(d)):(A.setAttribute("height",be(d)),A.setAttribute("depth",be(-d))),A.setAttribute("voffset",be(d)),A}});function L0(m,r,o){for(var a=qt(m,r,!1),s=r.sizeMultiplier/o.sizeMultiplier,d=0;da.height+a.depth+x&&(x=(x+J-a.height-a.depth)/2);var re=F.height-a.height-x-W;a.style.paddingLeft=be(Q);var ge=G.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:-(a.height+re)},{type:"elem",elem:F},{type:"kern",size:W}]},o);if(r.index){var Ae=o.havingStyle(De.SCRIPTSCRIPT),Me=Qe(r.index,Ae,o),Ne=.6*(ge.height-ge.depth),qe=G.makeVList({positionType:"shift",positionData:-Ne,children:[{type:"elem",elem:Me}]},o),nt=G.makeSpan(["root"],[qe]);return G.makeSpan(["mord","sqrt"],[nt,ge],o)}else return G.makeSpan(["mord","sqrt"],[ge],o)},mathmlBuilder:function(r,o){var a=r.body,s=r.index;return s?new ce.MathNode("mroot",[ft(a,o),ft(s,o)]):new ce.MathNode("msqrt",[ft(a,o)])}});var O0={display:De.DISPLAY,text:De.TEXT,script:De.SCRIPT,scriptscript:De.SCRIPTSCRIPT};_e({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(r,o){var a=r.breakOnTokenText,s=r.funcName,d=r.parser,v=d.parseExpression(!0,a),x=s.slice(1,s.length-5);return{type:"styling",mode:d.mode,style:x,body:v}},htmlBuilder:function(r,o){var a=O0[r.style],s=o.havingStyle(a).withFont("");return L0(r.body,s,o)},mathmlBuilder:function(r,o){var a=O0[r.style],s=o.havingStyle(a),d=Jt(r.body,s),v=new ce.MathNode("mstyle",d),x={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},A=x[r.style];return v.setAttribute("scriptlevel",A[0]),v.setAttribute("displaystyle",A[1]),v}});var m1=function(r,o){var a=r.base;if(a)if(a.type==="op"){var s=a.limits&&(o.style.size===De.DISPLAY.size||a.alwaysHandleSupSub);return s?Jn:null}else if(a.type==="operatorname"){var d=a.alwaysHandleSupSub&&(o.style.size===De.DISPLAY.size||a.limits);return d?F0:null}else{if(a.type==="accent")return E.isCharacterBox(a.base)?Hi:null;if(a.type==="horizBrace"){var v=!r.sub;return v===a.isOver?I0:null}else return null}else return null};Bn({type:"supsub",htmlBuilder:function(r,o){var a=m1(r,o);if(a)return a(r,o);var s=r.base,d=r.sup,v=r.sub,x=Qe(s,o),A,z,F=o.fontMetrics(),W=0,Q=0,J=s&&E.isCharacterBox(s);if(d){var re=o.havingStyle(o.style.sup());A=Qe(d,re,o),J||(W=x.height-re.fontMetrics().supDrop*re.sizeMultiplier/o.sizeMultiplier)}if(v){var ge=o.havingStyle(o.style.sub());z=Qe(v,ge,o),J||(Q=x.depth+ge.fontMetrics().subDrop*ge.sizeMultiplier/o.sizeMultiplier)}var Ae;o.style===De.DISPLAY?Ae=F.sup1:o.style.cramped?Ae=F.sup3:Ae=F.sup2;var Me=o.sizeMultiplier,Ne=be(.5/F.ptPerEm/Me),qe=null;if(z){var nt=r.base&&r.base.type==="op"&&r.base.name&&(r.base.name==="\\oiint"||r.base.name==="\\oiiint");(x instanceof Yt||nt)&&(qe=be(-x.italic))}var We;if(A&&z){W=Math.max(W,Ae,A.depth+.25*F.xHeight),Q=Math.max(Q,F.sub2);var st=F.defaultRuleThickness,et=4*st;if(W-A.depth-(z.height-Q)0&&(W+=ct,Q-=ct)}var yt=[{type:"elem",elem:z,shift:Q,marginRight:Ne,marginLeft:qe},{type:"elem",elem:A,shift:-W,marginRight:Ne}];We=G.makeVList({positionType:"individualShift",children:yt},o)}else if(z){Q=Math.max(Q,F.sub1,z.height-.8*F.xHeight);var $t=[{type:"elem",elem:z,marginLeft:qe,marginRight:Ne}];We=G.makeVList({positionType:"shift",positionData:Q,children:$t},o)}else if(A)W=Math.max(W,Ae,A.depth+.25*F.xHeight),We=G.makeVList({positionType:"shift",positionData:-W,children:[{type:"elem",elem:A,marginRight:Ne}]},o);else throw new Error("supsub must have either sup or sub.");var or=Fi(x,"right")||"mord";return G.makeSpan([or],[x,G.makeSpan(["msupsub"],[We])],o)},mathmlBuilder:function(r,o){var a=!1,s,d;r.base&&r.base.type==="horizBrace"&&(d=!!r.sup,d===r.base.isOver&&(a=!0,s=r.base.isOver)),r.base&&(r.base.type==="op"||r.base.type==="operatorname")&&(r.base.parentIsSupSub=!0);var v=[ft(r.base,o)];r.sub&&v.push(ft(r.sub,o)),r.sup&&v.push(ft(r.sup,o));var x;if(a)x=s?"mover":"munder";else if(r.sub)if(r.sup){var F=r.base;F&&F.type==="op"&&F.limits&&o.style===De.DISPLAY||F&&F.type==="operatorname"&&F.alwaysHandleSupSub&&(o.style===De.DISPLAY||F.limits)?x="munderover":x="msubsup"}else{var z=r.base;z&&z.type==="op"&&z.limits&&(o.style===De.DISPLAY||z.alwaysHandleSupSub)||z&&z.type==="operatorname"&&z.alwaysHandleSupSub&&(z.limits||o.style===De.DISPLAY)?x="munder":x="msub"}else{var A=r.base;A&&A.type==="op"&&A.limits&&(o.style===De.DISPLAY||A.alwaysHandleSupSub)||A&&A.type==="operatorname"&&A.alwaysHandleSupSub&&(A.limits||o.style===De.DISPLAY)?x="mover":x="msup"}return new ce.MathNode(x,v)}}),Bn({type:"atom",htmlBuilder:function(r,o){return G.mathsym(r.text,r.mode,o,["m"+r.family])},mathmlBuilder:function(r,o){var a=new ce.MathNode("mo",[pr(r.text,r.mode)]);if(r.family==="bin"){var s=Oi(r,o);s==="bold-italic"&&a.setAttribute("mathvariant",s)}else r.family==="punct"?a.setAttribute("separator","true"):(r.family==="open"||r.family==="close")&&a.setAttribute("stretchy","false");return a}});var U0={mi:"italic",mn:"normal",mtext:"normal"};Bn({type:"mathord",htmlBuilder:function(r,o){return G.makeOrd(r,o,"mathord")},mathmlBuilder:function(r,o){var a=new ce.MathNode("mi",[pr(r.text,r.mode,o)]),s=Oi(r,o)||"italic";return s!==U0[a.type]&&a.setAttribute("mathvariant",s),a}}),Bn({type:"textord",htmlBuilder:function(r,o){return G.makeOrd(r,o,"textord")},mathmlBuilder:function(r,o){var a=pr(r.text,r.mode,o),s=Oi(r,o)||"normal",d;return r.mode==="text"?d=new ce.MathNode("mtext",[a]):/[0-9]/.test(r.text)?d=new ce.MathNode("mn",[a]):r.text==="\\prime"?d=new ce.MathNode("mo",[a]):d=new ce.MathNode("mi",[a]),s!==U0[d.type]&&d.setAttribute("mathvariant",s),d}});var as={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},is={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Bn({type:"spacing",htmlBuilder:function(r,o){if(is.hasOwnProperty(r.text)){var a=is[r.text].className||"";if(r.mode==="text"){var s=G.makeOrd(r,o,"textord");return s.classes.push(a),s}else return G.makeSpan(["mspace",a],[G.mathsym(r.text,r.mode,o)],o)}else{if(as.hasOwnProperty(r.text))return G.makeSpan(["mspace",as[r.text]],[],o);throw new l('Unknown type of space "'+r.text+'"')}},mathmlBuilder:function(r,o){var a;if(is.hasOwnProperty(r.text))a=new ce.MathNode("mtext",[new ce.TextNode(" ")]);else{if(as.hasOwnProperty(r.text))return new ce.MathNode("mspace");throw new l('Unknown type of space "'+r.text+'"')}return a}});var H0=function(){var r=new ce.MathNode("mtd",[]);return r.setAttribute("width","50%"),r};Bn({type:"tag",mathmlBuilder:function(r,o){var a=new ce.MathNode("mtable",[new ce.MathNode("mtr",[H0(),new ce.MathNode("mtd",[dn(r.body,o)]),H0(),new ce.MathNode("mtd",[dn(r.tag,o)])])]);return a.setAttribute("width","100%"),a}});var V0={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},j0={"\\textbf":"textbf","\\textmd":"textmd"},v1={"\\textit":"textit","\\textup":"textup"},G0=function(r,o){var a=r.font;return a?V0[a]?o.withTextFontFamily(V0[a]):j0[a]?o.withTextFontWeight(j0[a]):o.withTextFontShape(v1[a]):o};_e({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler:function(r,o){var a=r.parser,s=r.funcName,d=o[0];return{type:"text",mode:a.mode,body:Et(d),font:s}},htmlBuilder:function(r,o){var a=G0(r,o),s=qt(r.body,a,!0);return G.makeSpan(["mord","text"],s,a)},mathmlBuilder:function(r,o){var a=G0(r,o);return dn(r.body,a)}}),_e({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(r,o){var a=r.parser;return{type:"underline",mode:a.mode,body:o[0]}},htmlBuilder:function(r,o){var a=Qe(r.body,o),s=G.makeLineSpan("underline-line",o),d=o.fontMetrics().defaultRuleThickness,v=G.makeVList({positionType:"top",positionData:a.height,children:[{type:"kern",size:d},{type:"elem",elem:s},{type:"kern",size:3*d},{type:"elem",elem:a}]},o);return G.makeSpan(["mord","underline"],[v],o)},mathmlBuilder:function(r,o){var a=new ce.MathNode("mo",[new ce.TextNode("‾")]);a.setAttribute("stretchy","true");var s=new ce.MathNode("munder",[ft(r.body,o),a]);return s.setAttribute("accentunder","true"),s}}),_e({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler:function(r,o){var a=r.parser;return{type:"vcenter",mode:a.mode,body:o[0]}},htmlBuilder:function(r,o){var a=Qe(r.body,o),s=o.fontMetrics().axisHeight,d=.5*(a.height-s-(a.depth+s));return G.makeVList({positionType:"shift",positionData:d,children:[{type:"elem",elem:a}]},o)},mathmlBuilder:function(r,o){return new ce.MathNode("mpadded",[ft(r.body,o)],["vcenter"])}}),_e({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(r,o,a){throw new l("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(r,o){for(var a=W0(r),s=[],d=o.havingStyle(o.style.text()),v=0;v0;)this.endGroup()},r.has=function(a){return this.current.hasOwnProperty(a)||this.builtins.hasOwnProperty(a)},r.get=function(a){return this.current.hasOwnProperty(a)?this.current[a]:this.builtins[a]},r.set=function(a,s,d){if(d===void 0&&(d=!1),d){for(var v=0;v0&&(this.undefStack[this.undefStack.length-1][a]=s)}else{var x=this.undefStack[this.undefStack.length-1];x&&!x.hasOwnProperty(a)&&(x[a]=this.current[a])}s==null?delete this.current[a]:this.current[a]=s},m}(),A1=C0,T1=A1;T("\\noexpand",function(m){var r=m.popToken();return m.isExpandable(r.text)&&(r.noexpand=!0,r.treatAsRelax=!0),{tokens:[r],numArgs:0}}),T("\\expandafter",function(m){var r=m.popToken();return m.expandOnce(!0),{tokens:[r],numArgs:0}}),T("\\@firstoftwo",function(m){var r=m.consumeArgs(2);return{tokens:r[0],numArgs:0}}),T("\\@secondoftwo",function(m){var r=m.consumeArgs(2);return{tokens:r[1],numArgs:0}}),T("\\@ifnextchar",function(m){var r=m.consumeArgs(3);m.consumeSpaces();var o=m.future();return r[0].length===1&&r[0][0].text===o.text?{tokens:r[1],numArgs:0}:{tokens:r[2],numArgs:0}}),T("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),T("\\TextOrMath",function(m){var r=m.consumeArgs(2);return m.mode==="text"?{tokens:r[0],numArgs:0}:{tokens:r[1],numArgs:0}});var K0={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};T("\\char",function(m){var r=m.popToken(),o,a="";if(r.text==="'")o=8,r=m.popToken();else if(r.text==='"')o=16,r=m.popToken();else if(r.text==="`")if(r=m.popToken(),r.text[0]==="\\")a=r.text.charCodeAt(1);else{if(r.text==="EOF")throw new l("\\char` missing argument");a=r.text.charCodeAt(0)}else o=10;if(o){if(a=K0[r.text],a==null||a>=o)throw new l("Invalid base-"+o+" digit "+r.text);for(var s;(s=K0[m.future().text])!=null&&s":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};T("\\dots",function(m){var r="\\dotso",o=m.expandAfterFuture().text;return o in Z0?r=Z0[o]:(o.slice(0,4)==="\\not"||o in Ct.math&&E.contains(["bin","rel"],Ct.math[o].group))&&(r="\\dotsb"),r});var cs={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};T("\\dotso",function(m){var r=m.future().text;return r in cs?"\\ldots\\,":"\\ldots"}),T("\\dotsc",function(m){var r=m.future().text;return r in cs&&r!==","?"\\ldots\\,":"\\ldots"}),T("\\cdots",function(m){var r=m.future().text;return r in cs?"\\@cdots\\,":"\\@cdots"}),T("\\dotsb","\\cdots"),T("\\dotsm","\\cdots"),T("\\dotsi","\\!\\cdots"),T("\\dotsx","\\ldots\\,"),T("\\DOTSI","\\relax"),T("\\DOTSB","\\relax"),T("\\DOTSX","\\relax"),T("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),T("\\,","\\tmspace+{3mu}{.1667em}"),T("\\thinspace","\\,"),T("\\>","\\mskip{4mu}"),T("\\:","\\tmspace+{4mu}{.2222em}"),T("\\medspace","\\:"),T("\\;","\\tmspace+{5mu}{.2777em}"),T("\\thickspace","\\;"),T("\\!","\\tmspace-{3mu}{.1667em}"),T("\\negthinspace","\\!"),T("\\negmedspace","\\tmspace-{4mu}{.2222em}"),T("\\negthickspace","\\tmspace-{5mu}{.277em}"),T("\\enspace","\\kern.5em "),T("\\enskip","\\hskip.5em\\relax"),T("\\quad","\\hskip1em\\relax"),T("\\qquad","\\hskip2em\\relax"),T("\\tag","\\@ifstar\\tag@literal\\tag@paren"),T("\\tag@paren","\\tag@literal{({#1})}"),T("\\tag@literal",function(m){if(m.macros.get("\\df@tag"))throw new l("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),T("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),T("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),T("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),T("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),T("\\newline","\\\\\\relax"),T("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var J0=be(ye["Main-Regular"]["T".charCodeAt(0)][1]-.7*ye["Main-Regular"]["A".charCodeAt(0)][1]);T("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+J0+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}"),T("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+J0+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}"),T("\\hspace","\\@ifstar\\@hspacer\\@hspace"),T("\\@hspace","\\hskip #1\\relax"),T("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),T("\\ordinarycolon",":"),T("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),T("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),T("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),T("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),T("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),T("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),T("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),T("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),T("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),T("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),T("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),T("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),T("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),T("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),T("∷","\\dblcolon"),T("∹","\\eqcolon"),T("≔","\\coloneqq"),T("≕","\\eqqcolon"),T("⩴","\\Coloneqq"),T("\\ratio","\\vcentcolon"),T("\\coloncolon","\\dblcolon"),T("\\colonequals","\\coloneqq"),T("\\coloncolonequals","\\Coloneqq"),T("\\equalscolon","\\eqqcolon"),T("\\equalscoloncolon","\\Eqqcolon"),T("\\colonminus","\\coloneq"),T("\\coloncolonminus","\\Coloneq"),T("\\minuscolon","\\eqcolon"),T("\\minuscoloncolon","\\Eqcolon"),T("\\coloncolonapprox","\\Colonapprox"),T("\\coloncolonsim","\\Colonsim"),T("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),T("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),T("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),T("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),T("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),T("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),T("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),T("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),T("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),T("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),T("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),T("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),T("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),T("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}"),T("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}"),T("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}"),T("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}"),T("\\nleqq","\\html@mathml{\\@nleqq}{≰}"),T("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}"),T("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}"),T("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}"),T("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}"),T("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}"),T("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}"),T("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}"),T("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}"),T("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}"),T("\\imath","\\html@mathml{\\@imath}{ı}"),T("\\jmath","\\html@mathml{\\@jmath}{ȷ}"),T("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),T("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),T("⟦","\\llbracket"),T("⟧","\\rrbracket"),T("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),T("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),T("⦃","\\lBrace"),T("⦄","\\rBrace"),T("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),T("⦵","\\minuso"),T("\\darr","\\downarrow"),T("\\dArr","\\Downarrow"),T("\\Darr","\\Downarrow"),T("\\lang","\\langle"),T("\\rang","\\rangle"),T("\\uarr","\\uparrow"),T("\\uArr","\\Uparrow"),T("\\Uarr","\\Uparrow"),T("\\N","\\mathbb{N}"),T("\\R","\\mathbb{R}"),T("\\Z","\\mathbb{Z}"),T("\\alef","\\aleph"),T("\\alefsym","\\aleph"),T("\\Alpha","\\mathrm{A}"),T("\\Beta","\\mathrm{B}"),T("\\bull","\\bullet"),T("\\Chi","\\mathrm{X}"),T("\\clubs","\\clubsuit"),T("\\cnums","\\mathbb{C}"),T("\\Complex","\\mathbb{C}"),T("\\Dagger","\\ddagger"),T("\\diamonds","\\diamondsuit"),T("\\empty","\\emptyset"),T("\\Epsilon","\\mathrm{E}"),T("\\Eta","\\mathrm{H}"),T("\\exist","\\exists"),T("\\harr","\\leftrightarrow"),T("\\hArr","\\Leftrightarrow"),T("\\Harr","\\Leftrightarrow"),T("\\hearts","\\heartsuit"),T("\\image","\\Im"),T("\\infin","\\infty"),T("\\Iota","\\mathrm{I}"),T("\\isin","\\in"),T("\\Kappa","\\mathrm{K}"),T("\\larr","\\leftarrow"),T("\\lArr","\\Leftarrow"),T("\\Larr","\\Leftarrow"),T("\\lrarr","\\leftrightarrow"),T("\\lrArr","\\Leftrightarrow"),T("\\Lrarr","\\Leftrightarrow"),T("\\Mu","\\mathrm{M}"),T("\\natnums","\\mathbb{N}"),T("\\Nu","\\mathrm{N}"),T("\\Omicron","\\mathrm{O}"),T("\\plusmn","\\pm"),T("\\rarr","\\rightarrow"),T("\\rArr","\\Rightarrow"),T("\\Rarr","\\Rightarrow"),T("\\real","\\Re"),T("\\reals","\\mathbb{R}"),T("\\Reals","\\mathbb{R}"),T("\\Rho","\\mathrm{P}"),T("\\sdot","\\cdot"),T("\\sect","\\S"),T("\\spades","\\spadesuit"),T("\\sub","\\subset"),T("\\sube","\\subseteq"),T("\\supe","\\supseteq"),T("\\Tau","\\mathrm{T}"),T("\\thetasym","\\vartheta"),T("\\weierp","\\wp"),T("\\Zeta","\\mathrm{Z}"),T("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),T("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),T("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),T("\\bra","\\mathinner{\\langle{#1}|}"),T("\\ket","\\mathinner{|{#1}\\rangle}"),T("\\braket","\\mathinner{\\langle{#1}\\rangle}"),T("\\Bra","\\left\\langle#1\\right|"),T("\\Ket","\\left|#1\\right\\rangle");var Q0=function(r){return function(o){var a=o.consumeArg().tokens,s=o.consumeArg().tokens,d=o.consumeArg().tokens,v=o.consumeArg().tokens,x=o.macros.get("|"),A=o.macros.get("\\|");o.macros.beginGroup();var z=function(J){return function(re){r&&(re.macros.set("|",x),d.length&&re.macros.set("\\|",A));var ge=J;if(!J&&d.length){var Ae=re.future();Ae.text==="|"&&(re.popToken(),ge=!0)}return{tokens:ge?d:s,numArgs:0}}};o.macros.set("|",z(!1)),d.length&&o.macros.set("\\|",z(!0));var F=o.consumeArg().tokens,W=o.expandTokens([].concat(v,F,a));return o.macros.endGroup(),{tokens:W.reverse(),numArgs:0}}};T("\\bra@ket",Q0(!1)),T("\\bra@set",Q0(!0)),T("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),T("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),T("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),T("\\angln","{\\angl n}"),T("\\blue","\\textcolor{##6495ed}{#1}"),T("\\orange","\\textcolor{##ffa500}{#1}"),T("\\pink","\\textcolor{##ff00af}{#1}"),T("\\red","\\textcolor{##df0030}{#1}"),T("\\green","\\textcolor{##28ae7b}{#1}"),T("\\gray","\\textcolor{gray}{#1}"),T("\\purple","\\textcolor{##9d38bd}{#1}"),T("\\blueA","\\textcolor{##ccfaff}{#1}"),T("\\blueB","\\textcolor{##80f6ff}{#1}"),T("\\blueC","\\textcolor{##63d9ea}{#1}"),T("\\blueD","\\textcolor{##11accd}{#1}"),T("\\blueE","\\textcolor{##0c7f99}{#1}"),T("\\tealA","\\textcolor{##94fff5}{#1}"),T("\\tealB","\\textcolor{##26edd5}{#1}"),T("\\tealC","\\textcolor{##01d1c1}{#1}"),T("\\tealD","\\textcolor{##01a995}{#1}"),T("\\tealE","\\textcolor{##208170}{#1}"),T("\\greenA","\\textcolor{##b6ffb0}{#1}"),T("\\greenB","\\textcolor{##8af281}{#1}"),T("\\greenC","\\textcolor{##74cf70}{#1}"),T("\\greenD","\\textcolor{##1fab54}{#1}"),T("\\greenE","\\textcolor{##0d923f}{#1}"),T("\\goldA","\\textcolor{##ffd0a9}{#1}"),T("\\goldB","\\textcolor{##ffbb71}{#1}"),T("\\goldC","\\textcolor{##ff9c39}{#1}"),T("\\goldD","\\textcolor{##e07d10}{#1}"),T("\\goldE","\\textcolor{##a75a05}{#1}"),T("\\redA","\\textcolor{##fca9a9}{#1}"),T("\\redB","\\textcolor{##ff8482}{#1}"),T("\\redC","\\textcolor{##f9685d}{#1}"),T("\\redD","\\textcolor{##e84d39}{#1}"),T("\\redE","\\textcolor{##bc2612}{#1}"),T("\\maroonA","\\textcolor{##ffbde0}{#1}"),T("\\maroonB","\\textcolor{##ff92c6}{#1}"),T("\\maroonC","\\textcolor{##ed5fa6}{#1}"),T("\\maroonD","\\textcolor{##ca337c}{#1}"),T("\\maroonE","\\textcolor{##9e034e}{#1}"),T("\\purpleA","\\textcolor{##ddd7ff}{#1}"),T("\\purpleB","\\textcolor{##c6b9fc}{#1}"),T("\\purpleC","\\textcolor{##aa87ff}{#1}"),T("\\purpleD","\\textcolor{##7854ab}{#1}"),T("\\purpleE","\\textcolor{##543b78}{#1}"),T("\\mintA","\\textcolor{##f5f9e8}{#1}"),T("\\mintB","\\textcolor{##edf2df}{#1}"),T("\\mintC","\\textcolor{##e0e5cc}{#1}"),T("\\grayA","\\textcolor{##f6f7f7}{#1}"),T("\\grayB","\\textcolor{##f0f1f2}{#1}"),T("\\grayC","\\textcolor{##e3e5e6}{#1}"),T("\\grayD","\\textcolor{##d6d8da}{#1}"),T("\\grayE","\\textcolor{##babec2}{#1}"),T("\\grayF","\\textcolor{##888d93}{#1}"),T("\\grayG","\\textcolor{##626569}{#1}"),T("\\grayH","\\textcolor{##3b3e40}{#1}"),T("\\grayI","\\textcolor{##21242c}{#1}"),T("\\kaBlue","\\textcolor{##314453}{#1}"),T("\\kaGreen","\\textcolor{##71B307}{#1}");var ec={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},_1=function(){function m(o,a,s){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=a,this.expansionCount=0,this.feed(o),this.macros=new C1(T1,a.macros),this.mode=s,this.stack=[]}var r=m.prototype;return r.feed=function(a){this.lexer=new Y0(a,this.settings)},r.switchMode=function(a){this.mode=a},r.beginGroup=function(){this.macros.beginGroup()},r.endGroup=function(){this.macros.endGroup()},r.endGroups=function(){this.macros.endGroups()},r.future=function(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},r.popToken=function(){return this.future(),this.stack.pop()},r.pushToken=function(a){this.stack.push(a)},r.pushTokens=function(a){var s;(s=this.stack).push.apply(s,a)},r.scanArgument=function(a){var s,d,v;if(a){if(this.consumeSpaces(),this.future().text!=="[")return null;s=this.popToken();var x=this.consumeArg(["]"]);v=x.tokens,d=x.end}else{var A=this.consumeArg();v=A.tokens,s=A.start,d=A.end}return this.pushToken(new Nr("EOF",d.loc)),this.pushTokens(v),s.range(d,"")},r.consumeSpaces=function(){for(;;){var a=this.future();if(a.text===" ")this.stack.pop();else break}},r.consumeArg=function(a){var s=[],d=a&&a.length>0;d||this.consumeSpaces();var v=this.future(),x,A=0,z=0;do{if(x=this.popToken(),s.push(x),x.text==="{")++A;else if(x.text==="}"){if(--A,A===-1)throw new l("Extra }",x)}else if(x.text==="EOF")throw new l("Unexpected end of input in a macro argument, expected '"+(a&&d?a[z]:"}")+"'",x);if(a&&d)if((A===0||A===1&&a[z]==="{")&&x.text===a[z]){if(++z,z===a.length){s.splice(-z,z);break}}else z=0}while(A!==0||d);return v.text==="{"&&s[s.length-1].text==="}"&&(s.pop(),s.shift()),s.reverse(),{tokens:s,start:v,end:x}},r.consumeArgs=function(a,s){if(s){if(s.length!==a+1)throw new l("The length of delimiters doesn't match the number of args!");for(var d=s[0],v=0;vthis.settings.maxExpand)throw new l("Too many expansions: infinite loop or need to increase maxExpand setting");var x=v.tokens,A=this.consumeArgs(v.numArgs,v.delimiters);if(v.numArgs){x=x.slice();for(var z=x.length-1;z>=0;--z){var F=x[z];if(F.text==="#"){if(z===0)throw new l("Incomplete placeholder at end of macro body",F);if(F=x[--z],F.text==="#")x.splice(z+1,1);else if(/^[1-9]$/.test(F.text)){var W;(W=x).splice.apply(W,[z,2].concat(A[+F.text-1]))}else throw new l("Not a valid argument number",F)}}}return this.pushTokens(x),x},r.expandAfterFuture=function(){return this.expandOnce(),this.future()},r.expandNextToken=function(){for(;;){var a=this.expandOnce();if(a instanceof Nr)return a.treatAsRelax&&(a.text="\\relax"),this.stack.pop()}throw new Error},r.expandMacro=function(a){return this.macros.has(a)?this.expandTokens([new Nr(a)]):void 0},r.expandTokens=function(a){var s=[],d=this.stack.length;for(this.pushTokens(a);this.stack.length>d;){var v=this.expandOnce(!0);v instanceof Nr&&(v.treatAsRelax&&(v.noexpand=!1,v.treatAsRelax=!1),s.push(this.stack.pop()))}return s},r.expandMacroAsText=function(a){var s=this.expandMacro(a);return s&&s.map(function(d){return d.text}).join("")},r._getExpansion=function(a){var s=this.macros.get(a);if(s==null)return s;if(a.length===1){var d=this.lexer.catcodes[a];if(d!=null&&d!==13)return}var v=typeof s=="function"?s(this):s;if(typeof v=="string"){var x=0;if(v.indexOf("#")!==-1)for(var A=v.replace(/##/g,"");A.indexOf("#"+(x+1))!==-1;)++x;for(var z=new Y0(v,this.settings),F=[],W=z.lex();W.text!=="EOF";)F.push(W),W=z.lex();F.reverse();var Q={tokens:F,numArgs:x};return Q}return v},r.isDefined=function(a){return this.macros.has(a)||fn.hasOwnProperty(a)||Ct.math.hasOwnProperty(a)||Ct.text.hasOwnProperty(a)||ec.hasOwnProperty(a)},r.isExpandable=function(a){var s=this.macros.get(a);return s!=null?typeof s=="string"||typeof s=="function"||!s.unexpandable:fn.hasOwnProperty(a)&&!fn[a].primitive},m}(),tc=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,za=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),us={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},rc={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"},nc=function(){function m(o,a){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new _1(o,a,this.mode),this.settings=a,this.leftrightDepth=0}var r=m.prototype;return r.expect=function(a,s){if(s===void 0&&(s=!0),this.fetch().text!==a)throw new l("Expected '"+a+"', got '"+this.fetch().text+"'",this.fetch());s&&this.consume()},r.consume=function(){this.nextToken=null},r.fetch=function(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},r.switchMode=function(a){this.mode=a,this.gullet.switchMode(a)},r.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var a=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),a}finally{this.gullet.endGroups()}},r.subparse=function(a){var s=this.nextToken;this.consume(),this.gullet.pushToken(new Nr("}")),this.gullet.pushTokens(a);var d=this.parseExpression(!1);return this.expect("}"),this.nextToken=s,d},r.parseExpression=function(a,s){for(var d=[];;){this.mode==="math"&&this.consumeSpaces();var v=this.fetch();if(m.endOfExpression.indexOf(v.text)!==-1||s&&v.text===s||a&&fn[v.text]&&fn[v.text].infix)break;var x=this.parseAtom(s);if(x){if(x.type==="internal")continue}else break;d.push(x)}return this.mode==="text"&&this.formLigatures(d),this.handleInfixNodes(d)},r.handleInfixNodes=function(a){for(var s=-1,d,v=0;v=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+s[0]+'" used in math mode',a);var z=Ct[this.mode][s].group,F=Tr.range(a),W;if(hh.hasOwnProperty(z)){var Q=z;W={type:"atom",mode:this.mode,family:Q,loc:F,text:s}}else W={type:z,mode:this.mode,loc:F,text:s};A=W}else if(s.charCodeAt(0)>=128)this.settings.strict&&(Ze(s.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+s[0]+'" used in math mode',a):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+s[0]+'"'+(" ("+s.charCodeAt(0)+")"),a)),A={type:"textord",mode:"text",loc:Tr.range(a),text:s};else return null;if(this.consume(),x)for(var J=0;J{const S=JSON.parse((C==null?void 0:C.target).response);if(S.code===0){const L=S.data.imageUrl;u.value.src=L,t("update:itemIcon",u.value||null)}else Tf(S);return k};return(k,C)=>(pe(),Pe("div",null,[fe("div",EZ,[K(_(xs),{checked:_(u).itemType===1,value:1,name:"iconType",onChange:C[0]||(C[0]=S=>h(1))},{default:xe(()=>[sr(ot(k.$t("common.text")),1)]),_:1},8,["checked"]),K(_(xs),{checked:_(u).itemType===2,value:2,name:"iconType",onChange:C[1]||(C[1]=S=>h(2))},{default:xe(()=>[sr(ot(k.$t("common.image")),1)]),_:1},8,["checked"]),K(_(xs),{checked:_(u).itemType===3,value:3,name:"iconType",onChange:C[2]||(C[2]=S=>h(3))},{default:xe(()=>[sr(ot(k.$t("iconItem.onlineIcon")),1)]),_:1},8,["checked"])]),fe("div",RZ,[fe("div",MZ,[fe("div",null,[fe("div",BZ,[K(_(cl),{"item-icon":_(u)},null,8,["item-icon"])])]),fe("div",IZ,[_(u).itemType===1?(pe(),Pe("div",PZ,[K(_(kn),{value:_(u).text,"onUpdate:value":C[3]||(C[3]=S=>_(u).text=S),class:"mb-[5px]",size:"small",type:"text",onInput:f},null,8,["value"])])):Xe("",!0),_(u).itemType===3?(pe(),Pe("div",NZ,[fe("div",null,[K(_(kn),{value:_(u).text,"onUpdate:value":C[4]||(C[4]=S=>_(u).text=S),class:"mb-[5px]",size:"small",type:"text",placeholder:k.$t("iconItem.inputIconName"),onInput:f},null,8,["value","placeholder"]),K(_(Dt),{quaternary:"",type:"info"},{default:xe(()=>[fe("a",qZ,ot(k.$t("iconItem.onlineIconLibrary")),1)]),_:1})])])):Xe("",!0),_(u).itemType===2?(pe(),Pe("div",FZ,[K(_(kn),{value:_(u).src,"onUpdate:value":C[5]||(C[5]=S=>_(u).src=S),class:"mb-[5px] w-full",size:"small",type:"text",placeholder:k.$t("iconItem.inputIconUrlOrUpload"),onInput:f},null,8,["value","placeholder"]),K(_(m4),{action:"/api/file/uploadImg","show-file-list":!1,name:"imgfile",headers:{token:_(i).token},onFinish:y},{default:xe(()=>[K(_(Dt),{size:"small"},{default:xe(()=>[sr(ot(k.$t("iconItem.selectUpload")),1)]),_:1})]),_:1},8,["headers"])])):Xe("",!0)])]),fe("div",LZ,[fe("div",$Z,ot(k.$t("common.backgroundColor")),1),fe("div",OZ,[K(_(rn),{value:_(u).backgroundColor,"onUpdate:value":C[6]||(C[6]=S=>_(u).backgroundColor=S),size:"small",modes:["hex"],swatches:c,onComplete:f,onUpdateValue:f},null,8,["value"])]),_(u).backgroundColor!==l.backgroundColor?(pe(),Pe("div",UZ,[K(_(Dt),{quaternary:"",type:"info",onClick:b},{default:xe(()=>[sr(ot(k.$t("common.reset")),1)]),_:1})])):Xe("",!0)])])]))}});const VZ=ta(HZ,[["__scopeId","data-v-69882464"]]),jZ={class:"h-[600px] overflow-auto p-[5px]"},GZ=Re({__name:"index",props:{visible:{type:Boolean},itemInfo:null,itemGroupId:null},emits:["update:visible","done"],setup(e,{emit:t}){const n=e,i=mi(),c=te(!1),l=te([!1,!1]),u=te([]),h={icon:null,title:"",url:"",lanUrl:"",description:"",openMethod:2},f=te(n.itemInfo?{...n.itemInfo}:{...h}),b=te(null),y={title:{required:!0,trigger:"blur",message:Ie("form.required")},url:{required:!0,trigger:"blur",type:"string",message:Ie("form.required")}},k=[{default:!0,label:Ie("iconItem.currentPageOpen"),value:1},{label:Ie("iconItem.newWindowOpen"),value:2},{label:Ie("iconItem.currentPageLayerOpen"),value:3}],C=de({get:()=>n.visible,set:E=>{t("update:visible",E)}});async function S(){c.value=!0;try{const{code:E,data:B,msg:M}=await A4(f.value);E===0?(C.value=!1,f.value={...h},t("done",B)):i.error(`${Ie("common.saveFail")}:${M}`)}catch{i.error(Ie("common.saveFail"))}c.value=!1}const L=E=>{var B;E.preventDefault(),(B=b.value)==null||B.validate(M=>{M||S()})};async function P(E,B){l.value[B]=!0;try{const{code:M,data:U}=await z4(E);M===0?f.value.icon={itemType:2,src:U.iconUrl}:i.error(Ie("iconItem.geticonFail"))}catch{i.error(Ie("iconItem.geticonFail"))}l.value[B]=!1}tr(()=>n.visible,E=>{E===!0&&(f.value=n.itemInfo?{...n.itemInfo}:{...h},n.itemGroupId&&(f.value.itemIconGroupId=n.itemGroupId)),$()});function $(){Cd().then(({data:E,code:B,msg:M})=>{if(B===0){u.value=[];for(let U=0;U(pe(),pt(_(kl),{show:_(C),"onUpdate:show":B[9]||(B[9]=M=>bo(C)?C.value=M:null),preset:"card",size:"small",style:{width:"600px","border-radius":"1rem"},title:e.itemInfo?_(Ie)("iconItem.edit"):_(Ie)("iconItem.add")},{footer:xe(()=>[K(_(Dt),{type:"success",loading:c.value,style:{float:"right"},onClick:L},{default:xe(()=>[sr(ot(E.$t("common.save")),1)]),_:1},8,["loading"])]),default:xe(()=>[fe("div",jZ,[K(_(Sl),{ref_key:"formRef",ref:b,model:f.value,rules:y},{default:xe(()=>[K(_(Lf),{cols:"2","x-gap":10,"item-responsive":""},{default:xe(()=>[K(_(pc),{span:"2 500:1"},{default:xe(()=>[K(_(Vt),{path:"itemIconGroupId",label:_(Ie)("iconItem.iconGroup")},{default:xe(()=>[K(_(el),{value:f.value.itemIconGroupId,"onUpdate:value":B[0]||(B[0]=M=>f.value.itemIconGroupId=M),options:u.value},null,8,["value","options"])]),_:1},8,["label"])]),_:1}),K(_(pc),{span:"2 500:1"},{default:xe(()=>[K(_(Vt),{path:"title",label:E.$t("common.title")},{default:xe(()=>[K(_(kn),{value:f.value.title,"onUpdate:value":B[1]||(B[1]=M=>f.value.title=M),type:"text","show-count":"",maxlength:20},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1}),K(_(Vt),{path:"icon",label:E.$t("common.icon")},{default:xe(()=>[K(VZ,{"item-icon":f.value.icon,"onUpdate:itemIcon":B[2]||(B[2]=M=>f.value.icon=M)},null,8,["item-icon"])]),_:1},8,["label"]),K(_(Vt),{path:"url",label:E.$t("iconItem.url")},{default:xe(()=>[K(_(al),null,{default:xe(()=>[K(_(kn),{value:f.value.url,"onUpdate:value":B[3]||(B[3]=M=>f.value.url=M),type:"text",maxlength:1e3,placeholder:"http(s)://"},null,8,["value"]),K(_(Dt),{disabled:!f.value.url,loading:l.value[0],onClick:B[4]||(B[4]=M=>P(f.value.url,0))},{default:xe(()=>[sr(ot(E.$t("iconItem.getIcon")),1)]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["label"]),K(_(Vt),{path:"lanUrl",label:E.$t("iconItem.lanUrl")},{default:xe(()=>[K(_(al),null,{default:xe(()=>[K(_(kn),{value:f.value.lanUrl,"onUpdate:value":B[5]||(B[5]=M=>f.value.lanUrl=M),type:"text",maxlength:1e3,placeholder:E.$t("iconItem.lanUrlInputPlaceholder")},null,8,["value","placeholder"]),K(_(Dt),{disabled:!f.value.lanUrl,loading:l.value[1],onClick:B[6]||(B[6]=M=>P(f.value.lanUrl||"",1))},{default:xe(()=>[sr(ot(E.$t("iconItem.getIcon")),1)]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["label"]),K(_(Vt),{path:"description",label:E.$t("common.description")},{default:xe(()=>[K(_(kn),{value:f.value.description,"onUpdate:value":B[7]||(B[7]=M=>f.value.description=M),type:"text","show-count":"",maxlength:100},null,8,["value"])]),_:1},8,["label"]),K(_(Vt),{path:"openMethod",label:E.$t("iconItem.openMethod")},{default:xe(()=>[K(_(el),{value:f.value.openMethod,"onUpdate:value":B[8]||(B[8]=M=>f.value.openMethod=M),options:k},null,8,["value"])]),_:1},8,["label"])]),_:1},8,["model"])])]),_:1},8,["show","title"]))}}),WZ={class:"app-icon w-full"},XZ={class:"app-icon-info-icon w-[70px] h-[70px]"},YZ={class:"w-[70px] h-full flex items-center justify-center"},KZ={class:"app-icon-info-text-box w-full"},ZZ={class:"app-icon-info-text-box-title font-semibold w-full"},JZ={key:0,class:"app-icon-info-text-box-description"},QZ={key:1,class:"app-icon-small"},eJ=["title"],ja=Re({__name:"index",props:{itemInfo:null,size:{default:70},forceBackground:null,iconTextColor:null,iconTextInfoHideDescription:{type:Boolean},iconTextIconHideTitle:{type:Boolean},style:null},setup(e){const t=e,n="#2a2a2a6b",i=l=>{const u=l.replace(/^#/,""),h=parseInt(u.substring(0,2),16),f=parseInt(u.substring(2,4),16),b=parseInt(u.substring(4,6),16);return(.299*h+.587*f+.114*b)/255},c=de(()=>{var u,h;return i(((h=(u=t.itemInfo)==null?void 0:u.icon)==null?void 0:h.backgroundColor)||n)>.5?"black":"white"});return(l,u)=>{var h,f,b,y,k,C;return pe(),Pe("div",WZ,[e.style===_(xt).info?(pe(),Pe("div",{key:0,class:"app-icon-info w-full rounded-2xl transition-all duration-200 hover:shadow-[0_0_20px_10px_rgba(0,0,0,0.2)] flex",style:mt({background:((f=(h=e.itemInfo)==null?void 0:h.icon)==null?void 0:f.backgroundColor)||n})},[fe("div",XZ,[fe("div",YZ,[K(_(cl),{"item-icon":(b=e.itemInfo)==null?void 0:b.icon,"force-background":"transparent",size:50,class:"overflow-hidden rounded-xl"},null,8,["item-icon"])])]),fe("div",{class:"text-white flex items-center",style:mt({color:e.iconTextColor==="#ffffff"?_(c):e.iconTextColor,maxWidth:"calc(100% - 80px)"})},[fe("div",KZ,[fe("div",ZZ,[K(_(mc),null,{default:xe(()=>{var S;return[sr(ot((S=e.itemInfo)==null?void 0:S.title),1)]}),_:1})]),e.iconTextInfoHideDescription?Xe("",!0):(pe(),Pe("div",JZ,[K(_(mc),{"line-clamp":2,class:"text-xs"},{default:xe(()=>{var S;return[sr(ot((S=e.itemInfo)==null?void 0:S.description),1)]}),_:1})]))])],4)],4)):Xe("",!0),e.style===_(xt).icon?(pe(),Pe("div",QZ,[fe("div",{class:"app-icon-small-icon overflow-hidden rounded-2xl sunpanel w-[70px] h-[70px] mx-auto rounded-2xl transition-all duration-200 hover:shadow-[0_0_20px_10px_rgba(0,0,0,0.2)]",title:(y=e.itemInfo)==null?void 0:y.description},[K(_(cl),{"item-icon":(k=e.itemInfo)==null?void 0:k.icon},null,8,["item-icon"])],8,eJ),e.iconTextIconHideTitle?Xe("",!0):(pe(),Pe("div",{key:0,class:"app-icon-small-title text-center app-icon-text-shadow cursor-pointer mt-[2px]",style:mt({color:e.iconTextColor})},[fe("span",null,ot((C=e.itemInfo)==null?void 0:C.title),1)],4))])):Xe("",!0)])}}}),tJ={class:"text-3xl cursor-pointer",style:{color:"var(--n-color-target)"}},rJ={class:"ml-1"},nJ={class:"w-full h-full app-starter-modal-content"},oJ={class:"w-full h-full dark:bg-[#2c2c32]"},aJ=["onClick"],iJ={class:"bg-white dark:bg-zinc-800 p-[10px] rounded-lg mb-[5px] font-bold cursor-pointer flex items-center hover:bg-slate-50 focus:bg-slate-50"},sJ={class:"flex items-center justify-center"},lJ={class:"text-lg"},cJ={class:"ml-2"},uJ=Re({__name:"index",props:{visible:{type:Boolean}},emits:["update:visible"],setup(e,{emit:t}){const n=e,i=te("UserInfo"),c=te(!1),l=te(0),u=te(!1),h=Ie("appLauncher.title"),f=te(""),b=te("500px"),y=te([{name:Ie("apps.userInfo.appName"),componentName:"UserInfo",icon:"material-symbols-person-edit-outline-rounded"},{name:Ie("apps.baseSettings.appName"),componentName:"Style",icon:"ion-color-palette-outline"},{name:Ie("apps.itemGroupManage.appName"),componentName:"ItemGroupManage",icon:"material-symbols-ad-group-outline-rounded"},{name:Ie("apps.uploadsFileManager.appName"),componentName:"UploadFileManager",icon:"tabler:file-upload"},{name:Ie("apps.exportImport.appName"),componentName:"ImportExport",icon:"icon-park-outline-import-and-export"},{name:Ie("apps.about.appName"),componentName:"About",icon:"lucide-info"}]),k=pi(),C=de({get:()=>n.visible,set:$=>{t("update:visible",$)}});function S($){i.value=$.componentName,u.value&&(c.value=!0)}function L(){return window.innerWidth}function P(){l.value=L(),l.value<640?(c.value=!0,u.value=!0):(c.value=!1,u.value=!1)}return dr(()=>{var E;const $={name:Ie("adminSettingUsers.appName"),componentName:"Users",icon:"lucide-users",auth:1};((E=k.userInfo)==null?void 0:E.role)===1&&y.value.push($),window.addEventListener("resize",P),P()}),ea(()=>{window.removeEventListener("resize",P)}),($,E)=>(pe(),Pe("div",null,[K(_($f),{show:_(C),"onUpdate:show":E[2]||(E[2]=B=>bo(C)?C.value=B:null),style:{"max-width":"900px"},size:"small"},{header:xe(()=>[fe("div",{class:"flex items-center select-none",onClick:E[0]||(E[0]=B=>c.value=!c.value)},[fe("div",tJ,[K(_(Ft),{class:"transition-all duration-500",icon:c.value?"tabler-layout-sidebar-right-collapse-filled":"tabler-layout-sidebar-left-collapse-filled"},null,8,["icon"])]),fe("div",rJ,ot(f.value===""?_(h):f.value),1)])]),default:xe(()=>[fe("div",nJ,[K(_(Em),{vertical:"",size:"large",style:{height:"100%",width:"100%"}},{default:xe(()=>[K(_(Im),{"has-sider":"",style:{"border-radius":"0.75rem"}},{default:xe(()=>[K(_($m),{collapsed:c.value,"onUpdate:collapsed":E[1]||(E[1]=B=>c.value=B),"collapse-mode":"width","collapsed-width":0,width:u.value?"100%":240,style:{height:"100%"},"content-style":"overflow: hidden"},{default:xe(()=>[fe("div",oJ,[fe("div",{class:"p-[5px] bg-slate-200 dark:bg-zinc-900 rounded-xl overflow-auto",style:mt({width:u.value?"100%":"220px",minWidth:"200px",height:b.value})},[(pe(!0),Pe(cr,null,jn(y.value,(B,M)=>(pe(),Pe("div",{key:M,style:mt({color:i.value===B.componentName?"var(--n-color-target)":""}),onClick:U=>S(B)},[fe("div",iJ,[fe("div",sJ,[fe("div",lJ,[K(_(Ft),{icon:B.icon},null,8,["icon"])]),fe("span",cJ,ot(B.name),1)])])],12,aJ))),128))],4)])]),_:1},8,["collapsed","width"]),K(_(Pm),{"content-style":{height:b.value}},{default:xe(()=>[fe("div",{class:yr(["rounded-2xl h-full overflow-auto transition-all duration-500 min-w-[300px] h-full",u.value&&!c.value?"opacity-0":"opacity-100"])},[K(_(w4),{"component-name":i.value,class:"h-full"},null,8,["component-name"])],2)]),_:1},8,["content-style"])]),_:1})]),_:1})])]),_:1},8,["show"])]))}});const dJ=ta(uJ,[["__scopeId","data-v-650ea9b6"]]),hJ={class:"clock w-full text-center"},fJ={class:"clock-time text-2xl sm:text-2xl md:text-3xl font-[600]"},pJ={class:"hidden sm:hidden md:block"},mJ={class:"clock-date mr-1"},vJ={class:"clock-week"},gJ=Re({__name:"index",props:{hideSecond:{type:Boolean}},setup(e){const t=e,n=te({time:"--:--",date:"------",week:"--"});function i(){const u=new Date,h=String(u.getHours()).padStart(2,"0"),f=String(u.getMinutes()).padStart(2,"0");if(t.hideSecond)n.value.time=`${h}:${f}`;else{const C=String(u.getSeconds()).padStart(2,"0");n.value.time=`${h}:${f}:${C}`}const b=u.getDate(),y=u.getMonth()+1,k=[Ie("deskModule.clock.sun"),Ie("deskModule.clock.mon"),Ie("deskModule.clock.tue"),Ie("deskModule.clock.wed"),Ie("deskModule.clock.thu"),Ie("deskModule.clock.fri"),Ie("deskModule.clock.sat")];n.value.week=k[u.getDay()],n.value.date=`${y}-${b}`}const c=()=>{i()},l=setInterval(c,1e3);return dr(()=>{c(),i()}),di(()=>{clearInterval(l)}),(u,h)=>(pe(),Pe("div",hJ,[fe("span",fJ,ot(n.value.time),1),fe("div",pJ,[fe("span",mJ,ot(n.value.date),1),fe("span",vJ,ot(n.value.week),1)])]))}}),bJ="/assets/baidu-604a969a.svg",yJ="/assets/bing-4e21c40a.svg",xJ="/assets/google-c8534e94.svg",wJ=["onKeydown"],kJ=["placeholder"],SJ={class:"flex items-center"},CJ={class:"flex items-center"},AJ=["title","onClick"],TJ={class:"mt-[10px]"},_J=Re({__name:"index",props:{background:{default:"#2a2a2a6b"},textColor:{default:"white"}},emits:["itemSearch"],setup(e,{emit:t}){const n="deskModuleSearchBox",i=Yu(),c=pi(),l=te(""),u=te(!1),h=te(!1),f=te([{iconSrc:xJ,title:"Google",url:"https://www.google.com/search?q=%s"},{iconSrc:bJ,title:"Baidu",url:"https://www.baidu.com/s?wd=%s"},{iconSrc:yJ,title:"Bing",url:"https://www.bing.com/search?q=%s"}]),b={currentSearchEngine:f.value[0],searchEngineList:[],newWindowOpen:!1},y=te({...b}),k=()=>{u.value=!0},C=()=>{u.value=!1};function S(){c.visitMode!==gn.VISIT_MODE_PUBLIC&&(h.value=!h.value)}function L(M){y.value.currentSearchEngine=M,i.saveToCloud(n,y.value),h.value=!1}function P(){const M=y.value.currentSearchEngine.url,q=$(M,l.value);B(),y.value.newWindowOpen?window.open(q):window.location.href=q}function $(M,U){return M.includes("%s")?M.replace("%s",encodeURIComponent(U)):M+(U?`${encodeURIComponent(U)}`:"")}const E=()=>{t("itemSearch",l.value)};function B(){l.value="",t("itemSearch",l.value)}return dr(()=>{i.getValueByNameFromCloud("deskModuleSearchBox").then(({code:M,data:U})=>{M===0?y.value=U||b:y.value=b})}),(M,U)=>(pe(),Pe("div",{class:"search-box w-full",onKeydown:[fc(P,["enter"]),fc(B,["esc"])]},[fe("div",{class:yr(["search-container flex rounded-2xl items-center justify-center text-white w-full",{focused:u.value}]),style:mt({background:e.background,color:e.textColor})},[fe("div",{class:"search-box-btn-engine w-[40px] flex justify-center cursor-pointer",onClick:S},[K(_(qo),{src:y.value.currentSearchEngine.iconSrc,style:{"background-color":"transparent"},size:20},null,8,["src"])]),fi(fe("input",{"onUpdate:modelValue":U[0]||(U[0]=q=>l.value=q),placeholder:M.$t("deskModule.searchBox.inputPlaceholder"),onFocus:k,onBlur:C,onInput:E},null,40,kJ),[[_f,l.value]]),l.value!==""?(pe(),Pe("div",{key:0,class:"search-box-btn-clear w-[25px] mr-[10px] flex justify-center cursor-pointer",onClick:B},[K(_(Ft),{style:{width:"20px",height:"20px"},icon:"line-md:close-small"})])):Xe("",!0),fe("div",{class:"search-box-btn-search w-[25px] flex justify-center cursor-pointer",onClick:P},[K(_(Ft),{style:{width:"20px",height:"20px"},icon:"iconamoon:search-fill"})])],6),h.value?(pe(),Pe("div",{key:0,class:"w-full mt-[10px] rounded-xl p-[10px]",style:mt({background:e.background})},[fe("div",SJ,[fe("div",CJ,[(pe(!0),Pe(cr,null,jn(f.value,(q,R)=>(pe(),Pe("div",{key:R,title:q.title,class:"w-[40px] h-[40px] mr-[10px] cursor-pointer bg-[#ffffff] flex items-center justify-center rounded-xl",onClick:j=>L(q)},[K(_(qo),{src:q.iconSrc,style:{"background-color":"transparent"},size:20},null,8,["src"])],8,AJ))),128))])]),fe("div",TJ,[K(_(um),{checked:y.value.newWindowOpen,"onUpdate:checked":U[1]||(U[1]=q=>y.value.newWindowOpen=q),onUpdateChecked:U[2]||(U[2]=q=>_(i).saveToCloud(n,y.value))},{default:xe(()=>[fe("span",{style:mt({color:e.textColor})},ot(M.$t("deskModule.searchBox.openWithNewOpen")),5)]),_:1},8,["checked"])])],4)):Xe("",!0)],40,wJ))}});const DJ=ta(_J,[["__scopeId","data-v-d2b10c26"]]);var vt=(e=>(e.cpu="cpu",e.memory="memory",e.disk="disk",e))(vt||{});const zJ={class:"generic-monitor-card w-full"},EJ={class:"w-[60px] h-[70px]"},RJ={class:"w-[60px] h-full flex items-center justify-center text-white"},Yo=Re({__name:"index",props:{extendParam:null,iconTextColor:null,iconTextIconHideTitle:{type:Boolean},iconText:null,textColor:null,cardTypeStyle:null,icon:null,class:null,backgroundColor:null},setup(e){const n=te(e.class);return(i,c)=>(pe(),Pe("div",zJ,[K(_(C4),{"card-type-style":e.cardTypeStyle,"icon-text":e.iconText,"icon-text-color":e.iconTextColor,class:yr(n.value),"background-color":e.backgroundColor,"icon-text-icon-hide-title":e.iconTextIconHideTitle},{info:xe(()=>[fe("div",EJ,[fe("div",RJ,[fo(i.$slots,"icon",{},()=>[K(_(Ft),{icon:e.icon??"",style:mt([{width:"35px",height:"35px"},{color:e.textColor}])},null,8,["icon","style"])])])]),fe("div",{class:"w-full text-white flex items-center",style:mt({maxWidth:"calc(100% - 80px)"})},[fo(i.$slots,"info")],4)]),small:xe(()=>[fo(i.$slots,"small")]),_:3},8,["card-type-style","icon-text","icon-text-color","class","background-color","icon-text-icon-hide-title"])]))}}),MJ={key:0,class:"w-full"},BJ={class:"float-right"},IJ={key:1,class:"w-full flex justify-center h-full w-full mt-3"},Wn=Re({__name:"index",props:{textColor:null,progressColor:null,progressRailColor:null,progressHeight:null,percentage:null,cardTypeStyle:null,infoCardLeftText:null,infoCardRightText:null},setup(e){return(t,n)=>e.cardTypeStyle===_(xt).info?(pe(),Pe("div",MJ,[fe("div",{class:"mb-1 text-xs",style:mt({color:e.textColor})},[fe("span",null,ot(e.infoCardLeftText),1),fe("span",BJ,ot(e.infoCardRightText),1)],4),K(_(sl),{type:"line",color:e.progressColor,"rail-color":e.progressRailColor,height:e.progressHeight,percentage:e.percentage,"show-indicator":!1,"stroke-width":15,style:{"max-width":"135px"}},null,8,["color","rail-color","height","percentage"])])):(pe(),Pe("div",IJ,[K(_(sl),{color:e.progressColor,"rail-color":e.progressRailColor,type:"dashboard",percentage:e.percentage,"stroke-width":15,style:{width:"50px"}},{default:xe(()=>[fe("div",{class:"text-white",style:mt([{"font-size":"8px"},{color:e.textColor}])},ot(e.percentage)+"% ",5)]),_:1},8,["color","rail-color","percentage"])]))}});function $l(e,t){let n=0;return t===xt.small?n=1:t===xt.info&&(n=2),lh(e,n)}function lh(e,t=2){return e===0?0:Number(e.toFixed(t))}function PJ(){return rr({url:"/system/monitor/getCpuState"})}function NJ(e){return rr({url:"/system/monitor/getDiskStateByPath",data:{path:e}})}function qJ(){return rr({url:"/system/monitor/getMemonyState"})}function FJ(){return rr({url:"/system/monitor/getDiskMountpoints"})}const _u=Re({__name:"CPU",props:{cardTypeStyle:null,refreshInterval:null,textColor:null,progressColor:null,progressRailColor:null},setup(e){const t=e;let n;const i=te(null);async function c(){try{const{data:l,code:u}=await PJ();u===0&&(i.value=l)}catch{}}return dr(()=>{c(),n=setInterval(()=>{c()},!t.refreshInterval||t.refreshInterval<=2e3?2e3:t.refreshInterval)}),ea(()=>{clearInterval(n)}),(l,u)=>{var h,f;return pe(),pt(Wn,{"progress-color":e.progressColor,"progress-rail-color":e.progressRailColor,"progress-height":5,percentage:_($l)(((h=i.value)==null?void 0:h.usages[0])||0,e.cardTypeStyle),"card-type-style":e.cardTypeStyle,"info-card-right-text":`${_(lh)(((f=i.value)==null?void 0:f.usages[0])||0)}%`,"info-card-left-text":"CPU","text-color":e.textColor,style:{width:"100%"}},null,8,["progress-color","progress-rail-color","percentage","card-type-style","info-card-right-text","text-color"])}}}),Du=Re({__name:"Memory",props:{cardTypeStyle:null,refreshInterval:null,textColor:null,progressColor:null,progressRailColor:null},setup(e){const t=e;let n;const i=te(null);function c(u){return td(u)}async function l(){try{const{data:u,code:h}=await qJ();h===0&&(i.value=u)}catch{}}return dr(()=>{l(),n=setInterval(()=>{l()},!t.refreshInterval||t.refreshInterval<=2e3?2e3:t.refreshInterval)}),ea(()=>{clearInterval(n)}),(u,h)=>{var f,b,y,k;return pe(),pt(Wn,{"progress-color":e.progressColor,"progress-rail-color":e.progressRailColor,"progress-height":5,percentage:_($l)(((f=i.value)==null?void 0:f.usedPercent)||0,e.cardTypeStyle),"card-type-style":e.cardTypeStyle,"info-card-right-text":`${c(((b=i.value)==null?void 0:b.used)||0)}/${c((((y=i.value)==null?void 0:y.total)||0)-(((k=i.value)==null?void 0:k.used)||0)||0)}`,"info-card-left-text":"RAM","text-color":e.textColor},null,8,["progress-color","progress-rail-color","percentage","card-type-style","info-card-right-text","text-color"])}}}),zu=Re({__name:"Disk",props:{cardTypeStyle:null,refreshInterval:null,textColor:null,progressColor:null,progressRailColor:null,path:null},setup(e){const t=e;let n;const i=te(null);function c(h){return td(h)}function l(h){return h}async function u(){try{const{data:h,code:f}=await NJ(t.path);f===0&&(i.value=h)}catch{}}return dr(()=>{u(),n=setInterval(()=>{u()},!t.refreshInterval||t.refreshInterval<=2e3?2e3:t.refreshInterval)}),ea(()=>{clearInterval(n)}),(h,f)=>{var b,y,k,C;return pe(),pt(Wn,{"progress-color":e.progressColor,"progress-rail-color":e.progressRailColor,"progress-height":5,percentage:_($l)(((b=i.value)==null?void 0:b.usedPercent)||0,e.cardTypeStyle),"card-type-style":e.cardTypeStyle,"info-card-right-text":`${c(((y=i.value)==null?void 0:y.used)||0)}/${c(((k=i.value)==null?void 0:k.free)||0)}`,"info-card-left-text":(C=i.value)==null?void 0:C.mountpoint,"text-color":e.textColor},null,8,["progress-color","progress-rail-color","percentage","card-type-style","info-card-right-text","info-card-left-text","text-color"])}}}),LJ={class:"w-full"},$J={class:"w-[60px] h-[70px]"},OJ={class:"app-icon w-[60px] h-full flex items-center justify-center text-white"},UJ={class:"w-full text-white flex items-center"},Eu=Re({__name:"index",props:{extendParam:null,iconTextColor:null,iconTextIconHideTitle:{type:Boolean},cardTypeStyle:null,monitorType:null,cardStyle:null},setup(e){const t=e,n=de(()=>{switch(t.monitorType){case vt.cpu:return"CPU";case vt.disk:return t.extendParam.path;case vt.memory:return"RAM"}return""}),i=5e3;return(c,l)=>(pe(),Pe("div",LJ,[K(Yo,{"icon-text-icon-hide-title":!1,"card-type-style":e.cardTypeStyle,"icon-text":_(n),"icon-text-color":e.iconTextColor,"background-color":e.extendParam.backgroundColor,class:"hover:shadow-[0_0_20px_10px_rgba(0,0,0,0.2)]"},{icon:xe(()=>[fe("div",$J,[fe("div",OJ,[e.monitorType===_(vt).cpu?(pe(),pt(_(Ft),{key:0,icon:"solar-cpu-bold",style:mt([{color:e.extendParam.color},{width:"35px",height:"35px"}])},null,8,["style"])):Xe("",!0),e.monitorType===_(vt).memory?(pe(),pt(_(Ft),{key:1,icon:"material-symbols-memory-alt-rounded",style:mt([{color:e.extendParam.color},{width:"35px",height:"35px"}])},null,8,["style"])):Xe("",!0),e.monitorType===_(vt).disk?(pe(),pt(_(Ft),{key:2,icon:"clarity-hard-disk-solid",style:mt([{color:e.extendParam.color},{width:"35px",height:"35px"}])},null,8,["style"])):Xe("",!0)])])]),info:xe(()=>{var u,h,f,b,y,k,C,S,L,P;return[fe("div",UJ,[e.monitorType===_(vt).cpu?(pe(),pt(_u,{key:0,"card-type-style":_(xt).info,"progress-color":(u=e.extendParam)==null?void 0:u.progressColor,"progress-rail-color":(h=e.extendParam)==null?void 0:h.progressRailColor,"text-color":(f=e.extendParam)==null?void 0:f.color,"refresh-interval":i},null,8,["card-type-style","progress-color","progress-rail-color","text-color"])):e.monitorType===_(vt).memory?(pe(),pt(Du,{key:1,"card-type-style":_(xt).info,"progress-color":(b=e.extendParam)==null?void 0:b.progressColor,"progress-rail-color":(y=e.extendParam)==null?void 0:y.progressRailColor,"text-color":(k=e.extendParam)==null?void 0:k.color,"refresh-interval":i},null,8,["card-type-style","progress-color","progress-rail-color","text-color"])):e.monitorType===_(vt).disk?(pe(),pt(zu,{key:2,"card-type-style":_(xt).info,"progress-color":(C=e.extendParam)==null?void 0:C.progressColor,"progress-rail-color":(S=e.extendParam)==null?void 0:S.progressRailColor,"text-color":(L=e.extendParam)==null?void 0:L.color,path:(P=e.extendParam)==null?void 0:P.path,"refresh-interval":i},null,8,["card-type-style","progress-color","progress-rail-color","text-color","path"])):Xe("",!0)])]}),small:xe(()=>{var u,h,f,b,y,k,C,S,L,P;return[e.monitorType===_(vt).cpu?(pe(),pt(_u,{key:0,"card-type-style":_(xt).icon,"progress-color":(u=e.extendParam)==null?void 0:u.progressColor,"progress-rail-color":(h=e.extendParam)==null?void 0:h.progressRailColor,"text-color":(f=e.extendParam)==null?void 0:f.color,"refresh-interval":i},null,8,["card-type-style","progress-color","progress-rail-color","text-color"])):e.monitorType===_(vt).memory?(pe(),pt(Du,{key:1,"card-type-style":_(xt).icon,"progress-color":(b=e.extendParam)==null?void 0:b.progressColor,"progress-rail-color":(y=e.extendParam)==null?void 0:y.progressRailColor,"text-color":(k=e.extendParam)==null?void 0:k.color,"refresh-interval":i},null,8,["card-type-style","progress-color","progress-rail-color","text-color"])):e.monitorType===_(vt).disk?(pe(),pt(zu,{key:2,"card-type-style":_(xt).icon,"progress-color":(C=e.extendParam)==null?void 0:C.progressColor,"progress-rail-color":(S=e.extendParam)==null?void 0:S.progressRailColor,"text-color":(L=e.extendParam)==null?void 0:L.color,path:(P=e.extendParam)==null?void 0:P.path,"refresh-interval":i},null,8,["card-type-style","progress-color","progress-rail-color","text-color","path"])):Xe("",!0)]}),_:1},8,["card-type-style","icon-text","icon-text-color","background-color"])]))}}),ch="systemMonitor",uh=Yu();async function Ko(e){return await uh.saveToCloud(ch,{list:e})}async function _i(){const e=await uh.getValueByNameFromCloud(ch);return e.code===0&&e.data&&e.data.list?e.data.list:[]}async function HJ(e){let t=!0,n=[];try{const i=await _i();i&&(n=i),n.push(e);const c=await Ko(n);c.code!==0&&console.log("save failed",c)}catch(i){console.error(i),t=!1}return t}async function VJ(e,t){e||(e=0);let n=!0,i=[];try{const c=await _i();c&&(i=c),i[e]=t;const l=await Ko(i);l.code!==0&&console.log("save failed",l)}catch(c){console.error(c),n=!1}return n}async function jJ(e){let t=!0;try{const n=await _i();n[e]&&n.splice(e,1),await Ko(n)}catch(n){t=!1,console.error(n)}return t}const GJ={class:"flex mb-5 justify-center transparent-grid p-2 rounded-xl border"},WJ={class:"w-[200px]"},XJ={class:"w-[80px] ml-2"},Ru=Re({__name:"index",props:{genericProgressStyleExtendParam:null},emits:["update:genericProgressStyleExtendParam"],setup(e,{emit:t}){const n=e,i=de({get:()=>n.genericProgressStyleExtendParam,set:c=>{t("update:genericProgressStyleExtendParam",c)}});return(c,l)=>(pe(),Pe("div",null,[fe("div",GJ,[fe("div",WJ,[K(Yo,{"icon-text-icon-hide-title":"","card-type-style":_(xt).info,icon:"solar-cpu-bold","background-color":_(i).backgroundColor,"text-color":_(i).color},{info:xe(()=>[K(Wn,{"progress-color":_(i).progressColor,"progress-rail-color":_(i).progressRailColor,percentage:50,"progress-height":5,"info-card-left-text":"DEMO","info-card-right-text":"TEXT","text-color":_(i).color,"card-type-style":_(xt).info},null,8,["progress-color","progress-rail-color","text-color","card-type-style"])]),_:1},8,["card-type-style","background-color","text-color"])]),fe("div",XJ,[K(Yo,{"icon-text-icon-hide-title":"","card-type-style":_(xt).icon,icon:"solar-cpu-bold","background-color":_(i).backgroundColor,"icon-text-color":_(i).color},{small:xe(()=>[K(Wn,{"progress-color":_(i).progressColor,"progress-rail-color":_(i).progressRailColor,percentage:50,"text-color":_(i).color,"card-type-style":_(xt).icon},null,8,["progress-color","progress-rail-color","text-color","card-type-style"])]),_:1},8,["card-type-style","background-color","icon-text-color"])])]),K(_(Sl),{ref:"formRef",modelValue:_(i),"onUpdate:modelValue":l[4]||(l[4]=u=>bo(i)?i.value=u:null)},{default:xe(()=>[K(_(Vt),{label:c.$t("deskModule.systemMonitor.progressColor")},{default:xe(()=>[K(_(rn),{value:_(i).progressColor,"onUpdate:value":l[0]||(l[0]=u=>_(i).progressColor=u),swatches:_(Sn),modes:["hex"],size:"small"},null,8,["value","swatches"])]),_:1},8,["label"]),K(_(Vt),{label:c.$t("deskModule.systemMonitor.progressRailColor")},{default:xe(()=>[K(_(rn),{value:_(i).progressRailColor,"onUpdate:value":l[1]||(l[1]=u=>_(i).progressRailColor=u),swatches:_(Sn),modes:["hex"],size:"small"},null,8,["value","swatches"])]),_:1},8,["label"]),K(_(Vt),{label:c.$t("common.textColor")},{default:xe(()=>[K(_(rn),{value:_(i).color,"onUpdate:value":l[2]||(l[2]=u=>_(i).color=u),swatches:_(Sn),modes:["hex"],size:"small"},null,8,["value","swatches"])]),_:1},8,["label"]),K(_(Vt),{label:c.$t("common.backgroundColor")},{default:xe(()=>[K(_(rn),{value:_(i).backgroundColor,"onUpdate:value":l[3]||(l[3]=u=>_(i).backgroundColor=u),swatches:_(Sn),modes:["hex"],size:"small"},null,8,["value","swatches"])]),_:1},8,["label"])]),_:1},8,["modelValue"])]))}});const YJ={class:"flex mb-5 justify-center transparent-grid p-2 rounded-xl border"},KJ={class:"w-[200px]"},ZJ={class:"w-[80px] ml-2"},JJ=Re({__name:"index",props:{diskExtendParam:null},emits:["update:diskExtendParam"],setup(e,{expose:t,emit:n}){const i=e,c=te(null),l={path:{required:!0,message:Ie("form.required"),trigger:"blur"}},u=te([]),h=de({get:()=>i.diskExtendParam,set:b=>{n("update:diskExtendParam",b)}});async function f(){try{const{data:b}=await FJ();u.value=[];for(let y=0;y{f()}),t({async verification(){var b;try{const y=await((b=c.value)==null?void 0:b.validate());return y?(console.log(y),Promise.resolve(!1)):Promise.resolve(!0)}catch(y){return console.error("An error occurred during validation:",y),Promise.resolve(!1)}}}),(b,y)=>(pe(),Pe("div",null,[fe("div",YJ,[fe("div",KJ,[K(Yo,{"icon-text-icon-hide-title":"","card-type-style":_(xt).info,icon:"solar-cpu-bold","background-color":_(h).backgroundColor,"text-color":_(h).color},{info:xe(()=>[K(Wn,{"progress-color":_(h).progressColor,"progress-rail-color":_(h).progressRailColor,percentage:50,"progress-height":5,"info-card-left-text":"DEMO","info-card-right-text":"TEXT","text-color":_(h).color,"card-type-style":_(xt).info},null,8,["progress-color","progress-rail-color","text-color","card-type-style"])]),_:1},8,["card-type-style","background-color","text-color"])]),fe("div",ZJ,[K(Yo,{"icon-text-icon-hide-title":"","card-type-style":_(xt).icon,icon:"solar-cpu-bold","background-color":_(h).backgroundColor,"icon-text-color":_(h).color},{small:xe(()=>[K(Wn,{"progress-color":_(h).progressColor,"progress-rail-color":_(h).progressRailColor,percentage:50,"text-color":_(h).color,"card-type-style":_(xt).icon},null,8,["progress-color","progress-rail-color","text-color","card-type-style"])]),_:1},8,["card-type-style","background-color","icon-text-color"])])]),K(_(Sl),{ref_key:"formRef",ref:c,modelValue:_(h),"onUpdate:modelValue":y[5]||(y[5]=k=>bo(h)?h.value=k:null),model:_(h),rules:l},{default:xe(()=>[K(_(Vt),{label:b.$t("deskModule.systemMonitor.diskMountPoint"),path:"path"},{default:xe(()=>[K(_(el),{value:_(h).path,"onUpdate:value":y[0]||(y[0]=k=>_(h).path=k),size:"small",options:u.value},null,8,["value","options"])]),_:1},8,["label"]),K(_(Vt),{label:b.$t("deskModule.systemMonitor.progressColor")},{default:xe(()=>[K(_(rn),{value:_(h).progressColor,"onUpdate:value":y[1]||(y[1]=k=>_(h).progressColor=k),swatches:_(Sn),modes:["hex"],size:"small"},null,8,["value","swatches"])]),_:1},8,["label"]),K(_(Vt),{label:b.$t("deskModule.systemMonitor.progressRailColor")},{default:xe(()=>[K(_(rn),{value:_(h).progressRailColor,"onUpdate:value":y[2]||(y[2]=k=>_(h).progressRailColor=k),swatches:_(Sn),modes:["hex"],size:"small"},null,8,["value","swatches"])]),_:1},8,["label"]),K(_(Vt),{label:b.$t("common.textColor")},{default:xe(()=>[K(_(rn),{value:_(h).color,"onUpdate:value":y[3]||(y[3]=k=>_(h).color=k),swatches:_(Sn),modes:["hex"],size:"small"},null,8,["value","swatches"])]),_:1},8,["label"]),K(_(Vt),{label:b.$t("common.backgroundColor")},{default:xe(()=>[K(_(rn),{value:_(h).backgroundColor,"onUpdate:value":y[4]||(y[4]=k=>_(h).backgroundColor=k),swatches:_(Sn),modes:["hex"],size:"small"},null,8,["value","swatches"])]),_:1},8,["label"])]),_:1},8,["modelValue","model"])]))}});const QJ=Re({__name:"index",props:{visible:{type:Boolean},monitorData:null,index:null},emits:["update:visible","done"],setup(e,{emit:t}){const n=e,i=te(),c={progressColor:"#fff",progressRailColor:"#CFCFCFA8",color:"#fff",backgroundColor:"#2a2a2a6b"},l={progressColor:"#fff",progressRailColor:"#CFCFCFA8",color:"#fff",backgroundColor:"#2a2a2a6b",path:""},u={extendParam:c,monitorType:vt.cpu},h=te(vt.cpu),f=te(n.monitorData||{...u}),b=te({...c}),y=te({...l}),k=mi(),C=te(!1),S=de({get:()=>n.visible,set:$=>{t("update:visible",$)}});tr(()=>n.visible,$=>{var E,B,M,U,q,R;h.value=((E=n.monitorData)==null?void 0:E.monitorType)||vt.cpu,((B=n.monitorData)==null?void 0:B.monitorType)===vt.cpu||((M=n.monitorData)==null?void 0:M.monitorType)===vt.memory?b.value={...(U=n.monitorData)==null?void 0:U.extendParam}:((q=n.monitorData)==null?void 0:q.monitorType)===vt.disk&&(y.value={...(R=n.monitorData)==null?void 0:R.extendParam}),$||L()});function L(){b.value={...c},y.value={...l}}async function P(){var E;let $=!0;if(f.value.monitorType=h.value,f.value.monitorType===vt.cpu||f.value.monitorType===vt.memory)f.value.extendParam=b;else if(f.value.monitorType===vt.disk){f.value.extendParam=y;const B=await((E=i.value)==null?void 0:E.verification());B!==void 0&&($=B)}$&&(n.index!==null?await VJ(n.index,f.value)?(S.value=!1,t("done",!0)):k.error(Ie("common.saveFail")):await HJ(f.value)?(S.value=!1,t("done",!0)):k.error(Ie("common.saveFail")))}return($,E)=>(pe(),pt(_(kl),{show:_(S),"onUpdate:show":E[4]||(E[4]=B=>bo(S)?S.value=B:null),preset:"card",size:"small",style:{width:"600px","border-radius":"1rem"},title:e.monitorData?_(Ie)("common.edit"):_(Ie)("common.add")},{footer:xe(()=>[K(_(Dt),{type:"success",loading:C.value,style:{float:"right"},onClick:P},{default:xe(()=>[sr(ot(_(Ie)("common.confirm")),1)]),_:1},8,["loading"])]),default:xe(()=>[K(_(Qm),{value:h.value,"onUpdate:value":E[3]||(E[3]=B=>h.value=B),type:"segment"},{default:xe(()=>[K(_(Ss),{name:_(vt).cpu,tab:$.$t("deskModule.systemMonitor.cpuState")},{default:xe(()=>[K(Ru,{genericProgressStyleExtendParam:b.value,"onUpdate:genericProgressStyleExtendParam":E[0]||(E[0]=B=>b.value=B)},null,8,["genericProgressStyleExtendParam"])]),_:1},8,["name","tab"]),K(_(Ss),{name:_(vt).memory,tab:$.$t("deskModule.systemMonitor.memoryState")},{default:xe(()=>[K(Ru,{genericProgressStyleExtendParam:b.value,"onUpdate:genericProgressStyleExtendParam":E[1]||(E[1]=B=>b.value=B)},null,8,["genericProgressStyleExtendParam"])]),_:1},8,["name","tab"]),K(_(Ss),{name:_(vt).disk,tab:$.$t("deskModule.systemMonitor.diskState")},{default:xe(()=>[K(JJ,{ref_key:"DiskEditorRef",ref:i,"disk-extend-param":y.value,"onUpdate:diskExtendParam":E[2]||(E[2]=B=>y.value=B)},null,8,["disk-extend-param"])]),_:1},8,["name","tab"])]),_:1},8,["value"]),K(_(Dt),{onClick:L},{default:xe(()=>[sr(ot(_(Ie)("common.reset")),1)]),_:1})]),_:1},8,["show","title"]))}}),eQ={class:"system-monitor w-full"},tQ={class:"system-monitor-header text-white text-xl font-extrabold mb-[20px] ml-[10px] flex items-center"},rQ={key:0,class:"text-shadow"},nQ=["title","onClick","onContextmenu"],oQ=["title","onClick","onContextmenu"],aQ={key:2,class:"system-monitor-edit-bar flex mt-[10px]"},iQ=Re({__name:"index",props:{allowEdit:{type:Boolean},showTitle:{type:Boolean}},setup(e){const t=e,n=Ku(),i=Zu(),c=mi(),l=te(0),u=te(0),h=te(!1),f=te(null),b=te({hoverStatus:!1,sortStatus:!1}),y=te(!1),k=te(null),C=te(null);function S(){y.value=!0,k.value=null,C.value=null}function L(Z){b.value.sortStatus=Z,Z||M()}function P(Z){b.value.hoverStatus=Z}const $={background:"#2a2a2a6b"},E=te([]);function B(Z,ee){t.allowEdit&&(y.value=!0,k.value=ee,C.value=Z)}async function M(){E.value=await _i(),E.value.length===0&&(E.value.push({extendParam:{backgroundColor:"#2a2a2a6b",color:"#fff",progressColor:"#fff",progressRailColor:"#CFCFCFA8"},monitorType:vt.cpu}),Ko(E.value))}dr(()=>{M()});function U(){M()}async function q(){const{code:Z}=await Ko(E.value);Z===0&&(b.value.sortStatus=!1)}function R(Z,ee,ne){ee!==null&&(Z.preventDefault(),f.value=ee),An().then(()=>{h.value=!0,l.value=Z.clientX,u.value=Z.clientY})}function j(){return[{label:Ie("common.delete"),key:"delete"}]}function ie(){h.value=!1}async function X(Z){await jJ(Z)&&M()}function oe(Z){switch(h.value=!1,Z){case"delete":i.warning({title:Ie("common.warning"),content:Ie("common.deleteConfirm"),positiveText:Ie("common.confirm"),negativeText:Ie("common.cancel"),onPositiveClick:()=>{if(E.value.length<=1){c.warning(Ie("common.leastOne"));return}f.value!==null&&X(f.value)}});break}}return(Z,ee)=>(pe(),Pe("div",eQ,[fe("div",{class:yr(["mt-[50px]",b.value.sortStatus?"shadow-2xl border shadow-[0_0_30px_10px_rgba(0,0,0,0.3)] p-[10px] rounded-2xl":""]),onMouseenter:ee[5]||(ee[5]=ne=>P(!0)),onMouseleave:ee[6]||(ee[6]=ne=>P(!1))},[fe("div",tQ,[e.showTitle?(pe(),Pe("span",rQ,ot(Z.$t("deskModule.systemMonitor.systemState")),1)):Xe("",!0),e.allowEdit?(pe(),Pe("div",{key:1,class:yr(["system-monitor-buttons ml-2 delay-100 transition-opacity flex",b.value.hoverStatus?"opacity-100":"opacity-0"])},[fe("span",{class:"mr-2 cursor-pointer",onClick:ee[0]||(ee[0]=ne=>S())},[K(_(Ft),{class:"text-white font-xl",icon:"typcn:plus"})]),fe("span",{class:"mr-2 cursor-pointer",onClick:ee[1]||(ee[1]=ne=>L(!b.value.sortStatus))},[K(_(Ft),{class:"text-white font-xl",icon:"ri:drag-drop-line"})])],2)):Xe("",!0)]),_(n).panelConfig.iconStyle===_(xt).info?(pe(),pt(_(si),{key:0,modelValue:E.value,"onUpdate:modelValue":ee[2]||(ee[2]=ne=>E.value=ne),"item-key":"sort",animation:300,class:"icon-info-box",filter:".not-drag",disabled:!b.value.sortStatus},{default:xe(()=>[(pe(!0),Pe(cr,null,jn(E.value,(ne,V)=>(pe(),Pe("div",{key:V,title:ne.description,onClick:ae=>B(V,ne),onContextmenu:ae=>R(ae,V,ne)},[K(Eu,{"extend-param":ne.extendParam,"icon-text-icon-hide-title":!1,"card-type-style":_(n).panelConfig.iconStyle,"monitor-type":ne.monitorType,"card-style":$,"icon-text-color":_(n).panelConfig.iconTextColor},null,8,["extend-param","card-type-style","monitor-type","icon-text-color"])],40,nQ))),128))]),_:1},8,["modelValue","disabled"])):Xe("",!0),_(n).panelConfig.iconStyle===_(xt).icon?(pe(),pt(_(si),{key:1,modelValue:E.value,"onUpdate:modelValue":ee[3]||(ee[3]=ne=>E.value=ne),"item-key":"sort",animation:300,class:"icon-small-box",filter:".not-drag",disabled:!b.value.sortStatus},{default:xe(()=>[(pe(!0),Pe(cr,null,jn(E.value,(ne,V)=>(pe(),Pe("div",{key:V,title:ne.description,onClick:ae=>B(V,ne),onContextmenu:ae=>R(ae,V,ne)},[K(Eu,{"extend-param":ne.extendParam,"icon-text-icon-hide-title":!1,"card-type-style":_(n).panelConfig.iconStyle,"monitor-type":ne.monitorType,"card-style":$,"icon-text-color":_(n).panelConfig.iconTextColor},null,8,["extend-param","card-type-style","monitor-type","icon-text-color"])],40,oQ))),128))]),_:1},8,["modelValue","disabled"])):Xe("",!0),b.value.sortStatus&&e.allowEdit?(pe(),Pe("div",aQ,[K(_(Dt),{color:"#2a2a2a6b",onClick:ee[4]||(ee[4]=ne=>q())},{icon:xe(()=>[K(_(Ft),{class:"text-white font-xl",icon:"material-symbols:save"})]),default:xe(()=>[fe("div",null,ot(Z.$t("common.saveSort")),1)]),_:1})])):Xe("",!0)],34),K(QJ,{visible:y.value,"onUpdate:visible":ee[7]||(ee[7]=ne=>y.value=ne),"monitor-data":k.value,index:C.value,onDone:U},null,8,["visible","monitor-data","index"]),K(_(vd),{placement:"bottom-start",trigger:"manual",x:l.value,y:u.value,options:j(),show:h.value,"on-clickoutside":ie,onSelect:oe},null,8,["x","y","options","show"])]))}});const sQ=ta(iQ,[["__scopeId","data-v-679daf12"]]),lQ=e=>(Df("data-v-f21ede0f"),e=e(),zf(),e),cQ={class:"w-full h-full sun-main"},uQ={class:"mx-[auto] w-[80%]"},dQ={class:"flex mx-[auto] items-center justify-center text-white"},hQ={class:"logo"},fQ={class:"text-2xl md:text-6xl font-bold text-shadow"},pQ=lQ(()=>fe("div",{class:"divider text-base lg:text-2xl mx-[10px]"}," | ",-1)),mQ={class:"text-shadow"},vQ={key:0,class:"flex mt-[20px] mx-auto sm:w-full lg:w-[80%]"},gQ={key:0,class:"flex mx-auto"},bQ=["onMouseenter","onMouseleave"],yQ={class:"text-white text-xl font-extrabold mb-[20px] ml-[10px] flex items-center"},xQ={class:"group-title text-shadow"},wQ=["title","onClick"],kQ=["title","onClick"],SQ={key:0},CQ={key:0},AQ=["title","onContextmenu"],TQ={key:0,class:"not-drag"},_Q={key:1},DQ={key:0},zQ=["title","onContextmenu"],EQ={key:0,class:"not-drag"},RQ={key:2,class:"flex mt-[10px]"},MQ=["innerHTML"],BQ={class:"fixed-element shadow-[0_0_10px_2px_rgba(0,0,0,0.2)]"},IQ={class:"shadow-[0_0_10px_2px_rgba(0,0,0,0.2)]"},PQ={class:"flex items-center"},NQ={class:"mr-[20px]"},qQ={class:"w-full h-full rounded-2xl overflow-hidden border dark:border-zinc-700"},FQ={key:0,class:"flex flex-col p-5"},LQ=["src"],$Q=Re({__name:"index",setup(e){const t=mi(),n=Zu(),i=Ku(),c=pi(),l=te(void 0),u=te(!1),h=te(null),f=te(!1),b=te(""),y=te(""),k=te(null),C=te(!1),S=te(0),L=te(0),P=te(!1),$=te(null),E=te(),B=te(!1),M=te([]),U=te([]);function q(ve,Ee,Se){switch(ve){case 1:window.location.href=Ee;break;case 2:window.open(Ee);break;case 3:f.value=!0,b.value=Ee,y.value=Se||Ee,C.value=!0;break}}function R(ve,Ee){if(M.value[ve]&&M.value[ve].sortStatus){gt(Ee);return}let Se="";Ee&&(Se=i.networkMode===en.lan?Ee.lanUrl:Ee.url),Ee.lanUrl===""&&(Se=Ee.url),q(Ee.openMethod,Se,Ee.title)}function j(ve){C.value=!1}function ie(){Cd().then(({code:ve,data:Ee,msg:Se})=>{ve===0&&(M.value=Ee.list);for(let Ze=0;Ze{Se.code===0&&(M.value[ve].items=Se.data.list)})}function oe(ve){var Se,Ze,Be,Ye,wt,Rr,hr,Mr,Xr;P.value=!1;let Ee=i.networkMode===en.lan?(Se=$.value)==null?void 0:Se.lanUrl:(Ze=$.value)==null?void 0:Ze.url;switch(((Be=$.value)==null?void 0:Be.lanUrl)===""&&(Ee=$.value.url),ve){case"newWindows":window.open(Ee);break;case"openWanUrl":$.value&&q((Ye=$.value)==null?void 0:Ye.openMethod,(wt=$.value)==null?void 0:wt.url,(Rr=$.value)==null?void 0:Rr.title);break;case"openLanUrl":$.value&&$.value.lanUrl&&q((hr=$.value)==null?void 0:hr.openMethod,$.value.lanUrl,(Mr=$.value)==null?void 0:Mr.title);break;case"edit":gt({...$.value});break;case"delete":n.warning({title:Ie("common.warning"),content:Ie("common.deleteConfirmByName",{name:(Xr=$.value)==null?void 0:Xr.title}),positiveText:Ie("common.confirm"),negativeText:Ie("common.cancel"),onPositiveClick:()=>{var ln;_4([(ln=$.value)==null?void 0:ln.id]).then(({code:cn,msg:Xt})=>{cn===0?(t.success(Ie("common.deleteSuccess")),ie()):t.error(`${Ie("common.deleteFail")}:${Xt}`)})}});break}}function Z(ve,Ee,Se){M.value[Ee]&&M.value[Ee].sortStatus||(ve.preventDefault(),$.value=Se,P.value=!1,An().then(()=>{P.value=!0,S.value=ve.clientX,L.value=ve.clientY}))}function ee(){P.value=!1}function ne(ve){ie()}function V(ve){i.setNetworkMode(ve),ve===en.lan?t.success(Ie("panelHome.changeToLanModelSuccess")):t.success(Ie("panelHome.changeToWanModelSuccess"))}function ae(ve){const Ee=[];if(ve.items){for(let Se=0;Se{Se===0?(t.success(Ie("common.saveSuccess")),ve.sortStatus=!1):t.error(`${Ie("common.saveFail")}:${Ze}`)})}}function me(){var Ee,Se;const ve=[{label:Ie("iconItem.newWindowOpen"),key:"newWindows"}];return(Ee=$.value)!=null&&Ee.lanUrl&&i.networkMode===en.wan&&ve.push({label:Ie("panelHome.openLanUrl"),key:"openLanUrl"}),(Se=$.value)!=null&&Se.lanUrl&&i.networkMode===en.lan&&ve.push({label:Ie("panelHome.openWanUrl"),key:"openWanUrl"}),c.visitMode===gn.VISIT_MODE_LOGIN&&ve.push({label:Ie("common.edit"),key:"edit"},{label:Ie("common.delete"),key:"delete"}),ve}dr(()=>{Of(),ie(),i.updatePanelConfigByCloud(),i.panelConfig.logoText&&Uf(i.panelConfig.logoText)});function Ce(ve){var Ee;if(ve=ve==null?void 0:ve.trim(),ve!==""&&i.panelConfig.searchBoxSearchIcon){const Se=te([]);for(let Ze=0;Ze{var wt;return Ye.title.toLowerCase().includes((ve==null?void 0:ve.toLowerCase())??"")||Ye.url.toLowerCase().includes((ve==null?void 0:ve.toLowerCase())??"")||((wt=Ye.description)==null?void 0:wt.toLowerCase().includes((ve==null?void 0:ve.toLowerCase())??""))});Be&&Be.length>0&&Se.value.push({items:Be,hoverStatus:!1})}U.value=Se.value}else U.value=M.value}function Le(ve,Ee){M.value[ve]&&(M.value[ve].hoverStatus=Ee)}function ht(ve,Ee){M.value[ve]&&(M.value[ve].sortStatus=Ee),Ee||M.value[ve]&&M.value[ve].id&&X(ve,M.value[ve].id)}function gt(ve){h.value=ve,u.value=!0,E.value=void 0}function De(ve){h.value=null,u.value=!0,ve&&(E.value=ve)}return(ve,Ee)=>(pe(),Pe("div",cQ,[fe("div",{class:"cover wallpaper",style:mt({filter:`blur(${_(i).panelConfig.backgroundBlur}px)`,background:`url(${_(i).panelConfig.backgroundImageSrc}) no-repeat`,backgroundSize:"cover",backgroundPosition:"center"})},null,4),fe("div",{class:"mask",style:mt({backgroundColor:`rgba(0,0,0,${_(i).panelConfig.backgroundMaskNumber})`})},null,4),fe("div",{ref_key:"scrollContainerRef",ref:l,class:"absolute w-full h-full overflow-auto"},[fe("div",{class:"p-2.5 mx-auto",style:mt({marginTop:`${_(i).panelConfig.marginTop}%`,marginBottom:`${_(i).panelConfig.marginBottom}%`,maxWidth:(_(i).panelConfig.maxWidth??"1200")+_(i).panelConfig.maxWidthUnit})},[fe("div",uQ,[fe("div",dQ,[fe("div",hQ,[fe("span",fQ,ot(_(i).panelConfig.logoText),1)]),pQ,fe("div",mQ,[K(_(gJ),{"hide-second":!_(i).panelConfig.clockShowSecond},null,8,["hide-second"])])]),_(i).panelConfig.searchBoxShow?(pe(),Pe("div",vQ,[K(_(DJ),{onItemSearch:Ce})])):Xe("",!0)]),fe("div",{style:mt({marginLeft:`${_(i).panelConfig.marginX}px`,marginRight:`${_(i).panelConfig.marginX}px`})},[_(i).panelConfig.systemMonitorShow&&(_(i).panelConfig.systemMonitorPublicVisitModeShow&&_(c).visitMode===_(gn).VISIT_MODE_PUBLIC||_(c).visitMode===_(gn).VISIT_MODE_LOGIN)?(pe(),Pe("div",gQ,[K(_(sQ),{"allow-edit":_(c).visitMode===_(gn).VISIT_MODE_LOGIN,"show-title":_(i).panelConfig.systemMonitorShowTitle},null,8,["allow-edit","show-title"])])):Xe("",!0),(pe(!0),Pe(cr,null,jn(U.value,(Se,Ze)=>(pe(),Pe("div",{key:Ze,class:yr(["item-list mt-[50px]",Se.sortStatus?"shadow-2xl border shadow-[0_0_30px_10px_rgba(0,0,0,0.3)] p-[10px] rounded-2xl":""]),onMouseenter:Be=>Le(Ze,!0),onMouseleave:Be=>Le(Ze,!1)},[fe("div",yQ,[fe("span",xQ,ot(Se.title),1),_(c).visitMode===_(gn).VISIT_MODE_LOGIN?(pe(),Pe("div",{key:0,class:yr(["group-buttons ml-2 delay-100 transition-opacity flex",Se.hoverStatus?"opacity-100":"opacity-0"])},[fe("span",{class:"mr-2 cursor-pointer",title:_(Ie)("common.add"),onClick:Be=>De(Se.id)},[K(_(Ft),{class:"text-white font-xl",icon:"typcn:plus"})],8,wQ),fe("span",{class:"mr-2 cursor-pointer",title:_(Ie)("common.sort"),onClick:Be=>ht(Ze,!Se.sortStatus)},[K(_(Ft),{class:"text-white font-xl",icon:"ri:drag-drop-line"})],8,kQ)],2)):Xe("",!0)]),_(i).panelConfig.iconStyle===_(xt).info?(pe(),Pe("div",SQ,[Se.items?(pe(),Pe("div",CQ,[K(_(si),{modelValue:Se.items,"onUpdate:modelValue":Be=>Se.items=Be,"item-key":"sort",animation:300,class:"icon-info-box",filter:".not-drag",disabled:!Se.sortStatus},{default:xe(()=>[(pe(!0),Pe(cr,null,jn(Se.items,(Be,Ye)=>(pe(),Pe("div",{key:Ye,title:Be.description,onContextmenu:wt=>Z(wt,Ze,Be)},[K(_(ja),{class:yr(Se.sortStatus?"cursor-move":"cursor-pointer"),"item-info":Be,"icon-text-color":_(i).panelConfig.iconTextColor,"icon-text-info-hide-description":_(i).panelConfig.iconTextInfoHideDescription||!1,"icon-text-icon-hide-title":_(i).panelConfig.iconTextIconHideTitle||!1,style:0,onClick:wt=>R(Ze,Be)},null,8,["class","item-info","icon-text-color","icon-text-info-hide-description","icon-text-icon-hide-title","onClick"])],40,AQ))),128)),Se.items.length===0?(pe(),Pe("div",TQ,[K(_(ja),{class:yr(Se.sortStatus?"cursor-move":"cursor-pointer"),"item-info":{icon:{itemType:3,text:"subway:add"},title:_(Ie)("common.add"),url:"",openMethod:0},"icon-text-color":_(i).panelConfig.iconTextColor,"icon-text-info-hide-description":_(i).panelConfig.iconTextInfoHideDescription||!1,"icon-text-icon-hide-title":_(i).panelConfig.iconTextIconHideTitle||!1,style:0,onClick:Be=>De(Se.id)},null,8,["class","item-info","icon-text-color","icon-text-info-hide-description","icon-text-icon-hide-title","onClick"])])):Xe("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","disabled"])])):Xe("",!0)])):Xe("",!0),_(i).panelConfig.iconStyle===_(xt).icon?(pe(),Pe("div",_Q,[Se.items?(pe(),Pe("div",DQ,[K(_(si),{modelValue:Se.items,"onUpdate:modelValue":Be=>Se.items=Be,"item-key":"sort",animation:300,class:"icon-small-box",filter:".not-drag",disabled:!Se.sortStatus},{default:xe(()=>[(pe(!0),Pe(cr,null,jn(Se.items,(Be,Ye)=>(pe(),Pe("div",{key:Ye,title:Be.description,onContextmenu:wt=>Z(wt,Ze,Be)},[K(_(ja),{class:yr(Se.sortStatus?"cursor-move":"cursor-pointer"),"item-info":Be,"icon-text-color":_(i).panelConfig.iconTextColor,"icon-text-info-hide-description":!_(i).panelConfig.iconTextInfoHideDescription,"icon-text-icon-hide-title":_(i).panelConfig.iconTextIconHideTitle||!1,style:1,onClick:wt=>R(Ze,Be)},null,8,["class","item-info","icon-text-color","icon-text-info-hide-description","icon-text-icon-hide-title","onClick"])],40,zQ))),128)),Se.items.length===0?(pe(),Pe("div",EQ,[K(_(ja),{class:"cursor-pointer","item-info":{icon:{itemType:3,text:"subway:add"},title:ve.$t("common.add"),url:"",openMethod:0},"icon-text-color":_(i).panelConfig.iconTextColor,"icon-text-info-hide-description":!_(i).panelConfig.iconTextInfoHideDescription,"icon-text-icon-hide-title":_(i).panelConfig.iconTextIconHideTitle||!1,style:1,onClick:Be=>De(Se.id)},null,8,["item-info","icon-text-color","icon-text-info-hide-description","icon-text-icon-hide-title","onClick"])])):Xe("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue","disabled"])])):Xe("",!0)])):Xe("",!0),Se.sortStatus?(pe(),Pe("div",RQ,[fe("div",null,[K(_(Dt),{color:"#2a2a2a6b",onClick:Be=>ae(Se)},{icon:xe(()=>[K(_(Ft),{class:"text-white font-xl",icon:"material-symbols:save"})]),default:xe(()=>[fe("div",null,ot(ve.$t("common.saveSort")),1)]),_:2},1032,["onClick"])])])):Xe("",!0)],42,bQ))),128))],4),fe("div",{class:"mt-5 footer",innerHTML:_(i).panelConfig.footerHtml},null,8,MQ)],4)],512),K(_(vd),{placement:"bottom-start",trigger:"manual",x:S.value,y:L.value,options:me(),show:P.value,"on-clickoutside":ee,onSelect:oe},null,8,["x","y","options","show"]),fe("div",BQ,[K(_(Hf),{vertical:""},{default:xe(()=>[_(i).networkMode===_(en).lan&&_(i).panelConfig.netModeChangeButtonShow?(pe(),pt(_(Dt),{key:0,color:"#2a2a2a6b",title:_(Ie)("panelHome.changeToWanModel"),onClick:Ee[0]||(Ee[0]=Se=>V(_(en).wan))},{icon:xe(()=>[K(_(Ft),{class:"text-white font-xl",icon:"material-symbols:lan-outline-rounded"})]),_:1},8,["title"])):Xe("",!0),_(i).networkMode===_(en).wan&&_(i).panelConfig.netModeChangeButtonShow?(pe(),pt(_(Dt),{key:1,color:"#2a2a2a6b",title:_(Ie)("panelHome.changeToLanModel"),onClick:Ee[1]||(Ee[1]=Se=>V(_(en).lan))},{icon:xe(()=>[K(_(Ft),{class:"text-white font-xl",icon:"mdi:wan"})]),_:1},8,["title"])):Xe("",!0),_(c).visitMode===_(gn).VISIT_MODE_LOGIN?(pe(),pt(_(Dt),{key:2,color:"#2a2a2a6b",onClick:Ee[2]||(Ee[2]=Se=>B.value=!B.value)},{icon:xe(()=>[K(_(Ft),{class:"text-white font-xl",icon:"majesticons-applications"})]),_:1})):Xe("",!0),_(c).visitMode===_(gn).VISIT_MODE_PUBLIC?(pe(),pt(_(Dt),{key:3,color:"#2a2a2a6b",title:ve.$t("panelHome.goToLogin"),onClick:Ee[3]||(Ee[3]=Se=>_(Ef).push("/login"))},{icon:xe(()=>[K(_(Ft),{class:"text-white font-xl",icon:"material-symbols:account-circle"})]),_:1},8,["title"])):Xe("",!0)]),_:1}),K(_(dJ),{visible:B.value,"onUpdate:visible":Ee[4]||(Ee[4]=Se=>B.value=Se)},null,8,["visible"])]),K(_(Bp),{"listen-to":()=>l.value,right:10,bottom:10,style:{"background-color":"transparent",border:"none","box-shadow":"none"}},{default:xe(()=>[fe("div",IQ,[K(_(Dt),{color:"#2a2a2a6b"},{icon:xe(()=>[K(_(Ft),{class:"text-white font-xl",icon:"icon-park-outline:to-top"})]),_:1})])]),_:1},8,["listen-to"]),K(_(GZ),{visible:u.value,"onUpdate:visible":Ee[5]||(Ee[5]=Se=>u.value=Se),"item-info":h.value,"item-group-id":E.value,onDone:ne},null,8,["visible","item-info","item-group-id"]),K(_(kl),{show:f.value,"onUpdate:show":Ee[6]||(Ee[6]=Se=>f.value=Se),"mask-closable":!1,preset:"card",style:{"max-width":"1000px",height:"600px","border-radius":"1rem"},bordered:!0,size:"small",role:"dialog","aria-modal":"true"},{header:xe(()=>[fe("div",PQ,[fe("span",NQ,ot(y.value),1),C.value?(pe(),pt(_(ed),{key:0,size:"small"})):Xe("",!0)])]),default:xe(()=>[fe("div",qQ,[C.value?(pe(),Pe("div",FQ,[K(_(ks),{height:"50px",width:"100%",class:"rounded-lg"}),K(_(ks),{height:"180px",width:"100%",class:"mt-[20px] rounded-lg"}),K(_(ks),{height:"180px",width:"100%",class:"mt-[20px] rounded-lg"})])):Xe("",!0),fi(fe("iframe",{id:"windowIframeId",ref_key:"windowIframeRef",ref:k,src:b.value,class:"w-full h-full",frameborder:"0",onLoad:j},null,40,LQ),[[Gu,!C.value]])])]),_:1},8,["show"])]))}});const OQ=ta($Q,[["__scopeId","data-v-f21ede0f"]]),JQ=Object.freeze(Object.defineProperty({__proto__:null,default:OQ},Symbol.toStringTag,{value:"Module"}));export{cd as C,m4 as N,Em as a,WQ as b,um as c,ZQ as d,XQ as e,T4 as f,Cd as g,si as h,YQ as i,rn as j,e4 as k,al as l,tp as m,xs as n,vd as o,JQ as p,hm as r,KQ as s}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-c238f14b.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-c238f14b.js deleted file mode 100644 index d928a2763..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-c238f14b.js +++ /dev/null @@ -1,117 +0,0 @@ -import{D as Fe,b as le,bY as Wt,w as Z,y as L,t as mt,H as N,aq as gt,ar as wt,am as bt,r as T,e as R,c as V,ae as se,f as ue,a6 as ae,bg as Ft,c9 as Nt,a8 as we,ca as je,cb as Lt,u as kt,L as G,N as yt,g as S,c4 as $t,O as Xt,R as Ht,cc as be,k as ye,cd as Yt,ce as Kt,cf as Ne,cg as jt,ch as Y,i as Mt,ci as Le,bZ as Ut,cj as ne,ck as St,cl as Be,cm as Ue,cn as Vt,co as Ve,cp as Ge,cq as ve,cr as Gt,cs as qe,j as qt,ct as Jt,cu as Qt,cv as Zt,cw as Rt,cx as en,cy as tn,cz as nn,bH as rn,n as H,m as F,aj as Me,p as Se,K as pe,cA as on,q as an,z as ke,E as xt,a9 as Je,aP as sn,B as ln,a7 as Qe,T as un,cB as dn,cC as Ze,cD as fn,P as cn,G as xe,ao as hn,ap as vn,cE as Re,aR as pn,cF as mn,as as gn,ab as de,cG as wn,aW as bn,aX as yn,b3 as $n,bd as Mn}from"./index-7e19b821.js";import{_ as Sn}from"./_plugin-vue_export-helper-c27b6911.js";let me=[];const Pt=new WeakMap;function xn(){me.forEach(e=>e(...Pt.get(e))),me=[]}function Pn(e,...t){Pt.set(e,t),!me.includes(e)&&me.push(e)===1&&requestAnimationFrame(xn)}const Cn=/^(\d|\.)+$/,et=/(\d|\.)+/;function Pe(e,{c:t=1,offset:n=0,attachPx:r=!0}={}){if(typeof e=="number"){const o=(e+n)*t;return o===0?"0":`${o}px`}else if(typeof e=="string")if(Cn.test(e)){const o=(Number(e)+n)*t;return r?o===0?"0":`${o}px`:`${o}`}else{const o=et.exec(e);return o?e.replace(et,String((Number(o[0])+n)*t)):e}return e}let Ce;function An(){return Ce===void 0&&(Ce=navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),Ce}let ee,ie;const _n=()=>{var e,t;ee=Wt?(t=(e=document)===null||e===void 0?void 0:e.fonts)===null||t===void 0?void 0:t.ready:void 0,ie=!1,ee!==void 0?ee.then(()=>{ie=!0}):ie=!0};_n();function On(e){if(ie)return;let t=!1;Fe(()=>{ie||ee==null||ee.then(()=>{t||e()})}),le(()=>{t=!0})}function En(e,t){return Z(e,n=>{n!==void 0&&(t.value=n)}),L(()=>e.value===void 0?t.value:e.value)}function Tn(e,t){return L(()=>{for(const n of t)if(e[n]!==void 0)return e[n];return e[t[t.length-1]]})}const Ca=mt("n-internal-select-menu"),Bn=mt("n-internal-select-menu-body"),Ct="__disabled__";function te(e){const t=N(gt,null),n=N(wt,null),r=N(bt,null),o=N(Bn,null),a=T();if(typeof document<"u"){a.value=document.fullscreenElement;const i=()=>{a.value=document.fullscreenElement};Fe(()=>{R("fullscreenchange",document,i)}),le(()=>{V("fullscreenchange",document,i)})}return se(()=>{var i;const{to:s}=e;return s!==void 0?s===!1?Ct:s===!0?a.value||"body":s:t!=null&&t.value?(i=t.value.$el)!==null&&i!==void 0?i:t.value:n!=null&&n.value?n.value:r!=null&&r.value?r.value:o!=null&&o.value?o.value:s??(a.value||"body")})}te.tdkey=Ct;te.propTo={type:[String,Object,Boolean],default:void 0};let X=null;function At(){if(X===null&&(X=document.getElementById("v-binder-view-measurer"),X===null)){X=document.createElement("div"),X.id="v-binder-view-measurer";const{style:e}=X;e.position="fixed",e.left="0",e.right="0",e.top="0",e.bottom="0",e.pointerEvents="none",e.visibility="hidden",document.body.appendChild(X)}return X.getBoundingClientRect()}function zn(e,t){const n=At();return{top:t,left:e,height:0,width:0,right:n.width-e,bottom:n.height-t}}function Ae(e){const t=e.getBoundingClientRect(),n=At();return{left:t.left-n.left,top:t.top-n.top,bottom:n.height+n.top-t.bottom,right:n.width+n.left-t.right,width:t.width,height:t.height}}function In(e){return e.nodeType===9?null:e.parentNode}function _t(e){if(e===null)return null;const t=In(e);if(t===null)return null;if(t.nodeType===9)return document;if(t.nodeType===1){const{overflow:n,overflowX:r,overflowY:o}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(n+o+r))return t}return _t(t)}const Dn=ue({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){var t;ae("VBinder",(t=Ft())===null||t===void 0?void 0:t.proxy);const n=N("VBinder",null),r=T(null),o=c=>{r.value=c,n&&e.syncTargetWithParent&&n.setTargetRef(c)};let a=[];const i=()=>{let c=r.value;for(;c=_t(c),c!==null;)a.push(c);for(const $ of a)R("scroll",$,m,!0)},s=()=>{for(const c of a)V("scroll",c,m,!0);a=[]},l=new Set,d=c=>{l.size===0&&i(),l.has(c)||l.add(c)},p=c=>{l.has(c)&&l.delete(c),l.size===0&&s()},m=()=>{Pn(u)},u=()=>{l.forEach(c=>c())},v=new Set,g=c=>{v.size===0&&R("resize",window,y),v.has(c)||v.add(c)},f=c=>{v.has(c)&&v.delete(c),v.size===0&&V("resize",window,y)},y=()=>{v.forEach(c=>c())};return le(()=>{V("resize",window,y),s()}),{targetRef:r,setTargetRef:o,addScrollListener:d,removeScrollListener:p,addResizeListener:g,removeResizeListener:f}},render(){return Nt("binder",this.$slots)}}),Wn=Dn,Fn=ue({name:"Target",setup(){const{setTargetRef:e,syncTarget:t}=N("VBinder");return{syncTarget:t,setTargetDirective:{mounted:e,updated:e}}},render(){const{syncTarget:e,setTargetDirective:t}=this;return e?we(je("follower",this.$slots),[[t]]):je("follower",this.$slots)}}),Q="@@mmoContext",Nn={mounted(e,{value:t}){e[Q]={handler:void 0},typeof t=="function"&&(e[Q].handler=t,R("mousemoveoutside",e,t))},updated(e,{value:t}){const n=e[Q];typeof t=="function"?n.handler?n.handler!==t&&(V("mousemoveoutside",e,n.handler),n.handler=t,R("mousemoveoutside",e,t)):(e[Q].handler=t,R("mousemoveoutside",e,t)):n.handler&&(V("mousemoveoutside",e,n.handler),n.handler=void 0)},unmounted(e){const{handler:t}=e[Q];t&&V("mousemoveoutside",e,t),e[Q].handler=void 0}},Ln=Nn,{c:fe}=Lt(),kn="vueuc-style",ce={top:"bottom",bottom:"top",left:"right",right:"left"},tt={start:"end",center:"center",end:"start"},_e={top:"height",bottom:"height",left:"width",right:"width"},Xn={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},Hn={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},Yn={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},nt={top:!0,bottom:!1,left:!0,right:!1},rt={top:"end",bottom:"start",left:"end",right:"start"};function Kn(e,t,n,r,o,a){if(!o||a)return{placement:e,top:0,left:0};const[i,s]=e.split("-");let l=s??"center",d={top:0,left:0};const p=(v,g,f)=>{let y=0,c=0;const $=n[v]-t[g]-t[v];return $>0&&r&&(f?c=nt[g]?$:-$:y=nt[g]?$:-$),{left:y,top:c}},m=i==="left"||i==="right";if(l!=="center"){const v=Yn[e],g=ce[v],f=_e[v];if(n[f]>t[f]){if(t[v]+t[f]t[g]&&(l=tt[s])}else{const v=i==="bottom"||i==="top"?"left":"top",g=ce[v],f=_e[v],y=(n[f]-t[f])/2;(t[v]t[g]?(l=rt[v],d=p(f,v,m)):(l=rt[g],d=p(f,g,m)))}let u=i;return t[i] *",{pointerEvents:"all"})])]),Gn=ue({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){const t=N("VBinder"),n=se(()=>e.enabled!==void 0?e.enabled:e.show),r=T(null),o=T(null),a=()=>{const{syncTrigger:u}=e;u.includes("scroll")&&t.addScrollListener(l),u.includes("resize")&&t.addResizeListener(l)},i=()=>{t.removeScrollListener(l),t.removeResizeListener(l)};Fe(()=>{n.value&&(l(),a())});const s=kt();Vn.mount({id:"vueuc/binder",head:!0,anchorMetaName:kn,ssr:s}),le(()=>{i()}),On(()=>{n.value&&l()});const l=()=>{if(!n.value)return;const u=r.value;if(u===null)return;const v=t.targetRef,{x:g,y:f,overlap:y}=e,c=g!==void 0&&f!==void 0?zn(g,f):Ae(v);u.style.setProperty("--v-target-width",`${Math.round(c.width)}px`),u.style.setProperty("--v-target-height",`${Math.round(c.height)}px`);const{width:$,minWidth:z,placement:_,internalShift:O,flip:K}=e;u.setAttribute("v-placement",_),y?u.setAttribute("v-overlap",""):u.removeAttribute("v-overlap");const{style:w}=u;$==="target"?w.width=`${c.width}px`:$!==void 0?w.width=$:w.width="",z==="target"?w.minWidth=`${c.width}px`:z!==void 0?w.minWidth=z:w.minWidth="";const P=Ae(u),C=Ae(o.value),{left:b,top:k,placement:I}=Kn(_,c,P,O,K,y),B=jn(I,y),{left:j,top:h,transform:M}=Un(I,C,c,k,b,y);u.setAttribute("v-placement",I),u.style.setProperty("--v-offset-left",`${Math.round(b)}px`),u.style.setProperty("--v-offset-top",`${Math.round(k)}px`),u.style.transform=`translateX(${j}) translateY(${h}) ${M}`,u.style.setProperty("--v-transform-origin",B),u.style.transformOrigin=B};Z(n,u=>{u?(a(),d()):i()});const d=()=>{Ht().then(l).catch(u=>console.error(u))};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(u=>{Z(G(e,u),l)}),["teleportDisabled"].forEach(u=>{Z(G(e,u),d)}),Z(G(e,"syncTrigger"),u=>{u.includes("resize")?t.addResizeListener(l):t.removeResizeListener(l),u.includes("scroll")?t.addScrollListener(l):t.removeScrollListener(l)});const p=yt(),m=se(()=>{const{to:u}=e;if(u!==void 0)return u;p.value});return{VBinder:t,mergedEnabled:n,offsetContainerRef:o,followerRef:r,mergedTo:m,syncPosition:l}},render(){return S(Xt,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e,t;const n=S("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[S("div",{class:"v-binder-follower-content",ref:"followerRef"},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))]);return this.zindexable?we(n,[[$t,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):n}})}});var qn=be(ye,"WeakMap");const ze=qn;var Jn=Yt(Object.keys,Object);const Qn=Jn;var Zn=Object.prototype,Rn=Zn.hasOwnProperty;function er(e){if(!Kt(e))return Qn(e);var t=[];for(var n in Object(e))Rn.call(e,n)&&n!="constructor"&&t.push(n);return t}function Xe(e){return Ne(e)?jt(e):er(e)}var tr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function He(e,t){if(Y(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||Mt(e)?!0:nr.test(e)||!tr.test(e)||t!=null&&e in Object(t)}var rr="Expected a function";function Ye(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(rr);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(Ye.Cache||Le),n}Ye.Cache=Le;var or=500;function ar(e){var t=Ye(e,function(r){return n.size===or&&n.clear(),r}),n=t.cache;return t}var ir=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,sr=/\\(\\)?/g,lr=ar(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(ir,function(n,r,o,a){t.push(o?a.replace(sr,"$1"):r||n)}),t});const ur=lr;function Ot(e,t){return Y(e)?e:He(e,t)?[e]:ur(Ut(e))}var dr=1/0;function $e(e){if(typeof e=="string"||Mt(e))return e;var t=e+"";return t=="0"&&1/e==-dr?"-0":t}function Et(e,t){t=Ot(t,e);for(var n=0,r=t.length;e!=null&&ns))return!1;var d=a.get(e),p=a.get(t);if(d&&p)return d==t&&p==e;var m=-1,u=!0,v=n&Dr?new ge:void 0;for(a.set(e,t),a.set(t,e);++m0&&arguments[0]!==void 0?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,r=e.formats[n]||e.formats[e.defaultWidth];return r}}function re(e){return function(t,n){var r=n!=null&&n.context?String(n.context):"standalone",o;if(r==="formatting"&&e.formattingValues){var a=e.defaultFormattingWidth||e.defaultWidth,i=n!=null&&n.width?String(n.width):a;o=e.formattingValues[i]||e.formattingValues[a]}else{var s=e.defaultWidth,l=n!=null&&n.width?String(n.width):e.defaultWidth;o=e.values[l]||e.values[s]}var d=e.argumentCallback?e.argumentCallback(t):t;return o[d]}}function oe(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.width,o=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(o);if(!a)return null;var i=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(s)?_o(s,function(m){return m.test(i)}):Ao(s,function(m){return m.test(i)}),d;d=e.valueCallback?e.valueCallback(l):l,d=n.valueCallback?n.valueCallback(d):d;var p=t.slice(i.length);return{value:d,rest:p}}}function Ao(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function _o(e,t){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{},r=t.match(e.matchPattern);if(!r)return null;var o=r[0],a=t.match(e.parsePattern);if(!a)return null;var i=e.valueCallback?e.valueCallback(a[0]):a[0];i=n.valueCallback?n.valueCallback(i):i;var s=t.slice(o.length);return{value:i,rest:s}}}var Eo={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},To=function(t,n,r){var o,a=Eo[t];return typeof a=="string"?o=a:n===1?o=a.one:o=a.other.replace("{{count}}",n.toString()),r!=null&&r.addSuffix?r.comparison&&r.comparison>0?"in "+o:o+" ago":o};const Bo=To;var zo={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Io={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Do={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Wo={date:Ee({formats:zo,defaultWidth:"full"}),time:Ee({formats:Io,defaultWidth:"full"}),dateTime:Ee({formats:Do,defaultWidth:"full"})};const Fo=Wo;var No={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Lo=function(t,n,r,o){return No[t]};const ko=Lo;var Xo={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Ho={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Yo={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Ko={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},jo={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Uo={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Vo=function(t,n){var r=Number(t),o=r%100;if(o>20||o<10)switch(o%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},Go={ordinalNumber:Vo,era:re({values:Xo,defaultWidth:"wide"}),quarter:re({values:Ho,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:re({values:Yo,defaultWidth:"wide"}),day:re({values:Ko,defaultWidth:"wide"}),dayPeriod:re({values:jo,defaultWidth:"wide",formattingValues:Uo,defaultFormattingWidth:"wide"})};const qo=Go;var Jo=/^(\d+)(th|st|nd|rd)?/i,Qo=/\d+/i,Zo={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Ro={any:[/^b/i,/^(a|c)/i]},ea={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ta={any:[/1/i,/2/i,/3/i,/4/i]},na={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ra={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},oa={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},aa={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},ia={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},sa={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},la={ordinalNumber:Oo({matchPattern:Jo,parsePattern:Qo,valueCallback:function(t){return parseInt(t,10)}}),era:oe({matchPatterns:Zo,defaultMatchWidth:"wide",parsePatterns:Ro,defaultParseWidth:"any"}),quarter:oe({matchPatterns:ea,defaultMatchWidth:"wide",parsePatterns:ta,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:oe({matchPatterns:na,defaultMatchWidth:"wide",parsePatterns:ra,defaultParseWidth:"any"}),day:oe({matchPatterns:oa,defaultMatchWidth:"wide",parsePatterns:aa,defaultParseWidth:"any"}),dayPeriod:oe({matchPatterns:ia,defaultMatchWidth:"any",parsePatterns:sa,defaultParseWidth:"any"})};const ua=la;var da={code:"en-US",formatDistance:Bo,formatLong:Fo,formatRelative:ko,localize:qo,match:ua,options:{weekStartsOn:0,firstWeekContainsDate:1}};const fa=da,ca={name:"en-US",locale:fa},ha=ca;function Aa(e){const{mergedLocaleRef:t,mergedDateLocaleRef:n}=N(rn,null)||{},r=L(()=>{var a,i;return(i=(a=t==null?void 0:t.value)===null||a===void 0?void 0:a[e])!==null&&i!==void 0?i:nn[e]});return{dateLocaleRef:L(()=>{var a;return(a=n==null?void 0:n.value)!==null&&a!==void 0?a:ha}),localeRef:r}}const Te={top:"bottom",bottom:"top",left:"right",right:"left"},x="var(--n-arrow-height) * 1.414",va=H([F("popover",` - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier); - position: relative; - font-size: var(--n-font-size); - color: var(--n-text-color); - box-shadow: var(--n-box-shadow); - word-break: break-word; - `,[H(">",[F("scrollbar",` - height: inherit; - max-height: inherit; - `)]),Me("raw",` - background-color: var(--n-color); - border-radius: var(--n-border-radius); - `,[Me("scrollable",[Me("show-header-or-footer","padding: var(--n-padding);")])]),Se("header",` - padding: var(--n-padding); - border-bottom: 1px solid var(--n-divider-color); - transition: border-color .3s var(--n-bezier); - `),Se("footer",` - padding: var(--n-padding); - border-top: 1px solid var(--n-divider-color); - transition: border-color .3s var(--n-bezier); - `),pe("scrollable, show-header-or-footer",[Se("content",` - padding: var(--n-padding); - `)])]),F("popover-shared",` - transform-origin: inherit; - `,[F("popover-arrow-wrapper",` - position: absolute; - overflow: hidden; - pointer-events: none; - `,[F("popover-arrow",` - transition: background-color .3s var(--n-bezier); - position: absolute; - display: block; - width: calc(${x}); - height: calc(${x}); - box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12); - transform: rotate(45deg); - background-color: var(--n-color); - pointer-events: all; - `)]),H("&.popover-transition-enter-from, &.popover-transition-leave-to",` - opacity: 0; - transform: scale(.85); - `),H("&.popover-transition-enter-to, &.popover-transition-leave-from",` - transform: scale(1); - opacity: 1; - `),H("&.popover-transition-enter-active",` - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - opacity .15s var(--n-bezier-ease-out), - transform .15s var(--n-bezier-ease-out); - `),H("&.popover-transition-leave-active",` - transition: - box-shadow .3s var(--n-bezier), - background-color .3s var(--n-bezier), - color .3s var(--n-bezier), - opacity .15s var(--n-bezier-ease-in), - transform .15s var(--n-bezier-ease-in); - `)]),E("top-start",` - top: calc(${x} / -2); - left: calc(${W("top-start")} - var(--v-offset-left)); - `),E("top",` - top: calc(${x} / -2); - transform: translateX(calc(${x} / -2)) rotate(45deg); - left: 50%; - `),E("top-end",` - top: calc(${x} / -2); - right: calc(${W("top-end")} + var(--v-offset-left)); - `),E("bottom-start",` - bottom: calc(${x} / -2); - left: calc(${W("bottom-start")} - var(--v-offset-left)); - `),E("bottom",` - bottom: calc(${x} / -2); - transform: translateX(calc(${x} / -2)) rotate(45deg); - left: 50%; - `),E("bottom-end",` - bottom: calc(${x} / -2); - right: calc(${W("bottom-end")} + var(--v-offset-left)); - `),E("left-start",` - left: calc(${x} / -2); - top: calc(${W("left-start")} - var(--v-offset-top)); - `),E("left",` - left: calc(${x} / -2); - transform: translateY(calc(${x} / -2)) rotate(45deg); - top: 50%; - `),E("left-end",` - left: calc(${x} / -2); - bottom: calc(${W("left-end")} + var(--v-offset-top)); - `),E("right-start",` - right: calc(${x} / -2); - top: calc(${W("right-start")} - var(--v-offset-top)); - `),E("right",` - right: calc(${x} / -2); - transform: translateY(calc(${x} / -2)) rotate(45deg); - top: 50%; - `),E("right-end",` - right: calc(${x} / -2); - bottom: calc(${W("right-end")} + var(--v-offset-top)); - `),...Co({top:["right-start","left-start"],right:["top-end","bottom-end"],bottom:["right-end","left-end"],left:["top-start","bottom-start"]},(e,t)=>{const n=["right","left"].includes(t),r=n?"width":"height";return e.map(o=>{const a=o.split("-")[1]==="end",s=`calc((${`var(--v-target-${r}, 0px)`} - ${x}) / 2)`,l=W(o);return H(`[v-placement="${o}"] >`,[F("popover-shared",[pe("center-arrow",[F("popover-arrow",`${t}: calc(max(${s}, ${l}) ${a?"+":"-"} var(--v-offset-${n?"left":"top"}));`)])])])})})]);function W(e){return["top","bottom"].includes(e.split("-")[0])?"var(--n-arrow-offset)":"var(--n-arrow-offset-vertical)"}function E(e,t){const n=e.split("-")[0],r=["top","bottom"].includes(n)?"height: var(--n-space-arrow);":"width: var(--n-space-arrow);";return H(`[v-placement="${e}"] >`,[F("popover-shared",` - margin-${Te[n]}: var(--n-space); - `,[pe("show-arrow",` - margin-${Te[n]}: var(--n-space-arrow); - `),pe("overlap",` - margin: 0; - `),on("popover-arrow-wrapper",` - right: 0; - left: 0; - top: 0; - bottom: 0; - ${n}: 100%; - ${Te[n]}: auto; - ${r} - `,[F("popover-arrow",t)])])])}const It=Object.assign(Object.assign({},ke.props),{to:te.propTo,show:Boolean,trigger:String,showArrow:Boolean,delay:Number,duration:Number,raw:Boolean,arrowPointToCenter:Boolean,arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],displayDirective:String,x:Number,y:Number,flip:Boolean,overlap:Boolean,placement:String,width:[Number,String],keepAliveOnHover:Boolean,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],internalDeactivateImmediately:Boolean,animated:Boolean,onClickoutside:Function,internalTrapFocus:Boolean,internalOnAfterLeave:Function,minWidth:Number,maxWidth:Number}),pa=({arrowClass:e,arrowStyle:t,arrowWrapperClass:n,arrowWrapperStyle:r,clsPrefix:o})=>S("div",{key:"__popover-arrow__",style:r,class:[`${o}-popover-arrow-wrapper`,n]},S("div",{class:[`${o}-popover-arrow`,e],style:t})),ma=ue({name:"PopoverBody",inheritAttrs:!1,props:It,setup(e,{slots:t,attrs:n}){const{namespaceRef:r,mergedClsPrefixRef:o,inlineThemeDisabled:a}=an(e),i=ke("Popover","-popover",va,dn,e,o),s=T(null),l=N("NPopover"),d=T(null),p=T(e.show),m=T(!1);xt(()=>{const{show:w}=e;w&&!An()&&!e.internalDeactivateImmediately&&(m.value=!0)});const u=L(()=>{const{trigger:w,onClickoutside:P}=e,C=[],{positionManuallyRef:{value:b}}=l;return b||(w==="click"&&!P&&C.push([Je,_,void 0,{capture:!0}]),w==="hover"&&C.push([Ln,z])),P&&C.push([Je,_,void 0,{capture:!0}]),(e.displayDirective==="show"||e.animated&&m.value)&&C.push([sn,e.show]),C}),v=L(()=>{const w=e.width==="trigger"?void 0:Pe(e.width),P=[];w&&P.push({width:w});const{maxWidth:C,minWidth:b}=e;return C&&P.push({maxWidth:Pe(C)}),b&&P.push({maxWidth:Pe(b)}),a||P.push(g.value),P}),g=L(()=>{const{common:{cubicBezierEaseInOut:w,cubicBezierEaseIn:P,cubicBezierEaseOut:C},self:{space:b,spaceArrow:k,padding:I,fontSize:B,textColor:j,dividerColor:h,color:M,boxShadow:A,borderRadius:q,arrowHeight:J,arrowOffset:D,arrowOffsetVertical:Dt}}=i.value;return{"--n-box-shadow":A,"--n-bezier":w,"--n-bezier-ease-in":P,"--n-bezier-ease-out":C,"--n-font-size":B,"--n-text-color":j,"--n-color":M,"--n-divider-color":h,"--n-border-radius":q,"--n-arrow-height":J,"--n-arrow-offset":D,"--n-arrow-offset-vertical":Dt,"--n-padding":I,"--n-space":b,"--n-space-arrow":k}}),f=a?ln("popover",void 0,g,e):void 0;l.setBodyInstance({syncPosition:y}),le(()=>{l.setBodyInstance(null)}),Z(G(e,"show"),w=>{e.animated||(w?p.value=!0:p.value=!1)});function y(){var w;(w=s.value)===null||w===void 0||w.syncPosition()}function c(w){e.trigger==="hover"&&e.keepAliveOnHover&&e.show&&l.handleMouseEnter(w)}function $(w){e.trigger==="hover"&&e.keepAliveOnHover&&l.handleMouseLeave(w)}function z(w){e.trigger==="hover"&&!O().contains(Qe(w))&&l.handleMouseMoveOutside(w)}function _(w){(e.trigger==="click"&&!O().contains(Qe(w))||e.onClickoutside)&&l.handleClickOutside(w)}function O(){return l.getTriggerElement()}ae(bt,d),ae(wt,null),ae(gt,null);function K(){if(f==null||f.onRender(),!(e.displayDirective==="show"||e.show||e.animated&&m.value))return null;let P;const C=l.internalRenderBodyRef.value,{value:b}=o;if(C)P=C([`${b}-popover-shared`,f==null?void 0:f.themeClass.value,e.overlap&&`${b}-popover-shared--overlap`,e.showArrow&&`${b}-popover-shared--show-arrow`,e.arrowPointToCenter&&`${b}-popover-shared--center-arrow`],d,v.value,c,$);else{const{value:k}=l.extraClassRef,{internalTrapFocus:I}=e,B=!Ze(t.header)||!Ze(t.footer),j=()=>{var h,M;const A=B?S(hn,null,xe(t.header,D=>D?S("div",{class:[`${b}-popover__header`,e.headerClass],style:e.headerStyle},D):null),xe(t.default,D=>D?S("div",{class:[`${b}-popover__content`,e.contentClass],style:e.contentStyle},t):null),xe(t.footer,D=>D?S("div",{class:[`${b}-popover__footer`,e.footerClass],style:e.footerStyle},D):null)):e.scrollable?(h=t.default)===null||h===void 0?void 0:h.call(t):S("div",{class:[`${b}-popover__content`,e.contentClass],style:e.contentStyle},t),q=e.scrollable?S(vn,{contentClass:B?void 0:`${b}-popover__content ${(M=e.contentClass)!==null&&M!==void 0?M:""}`,contentStyle:B?void 0:e.contentStyle},{default:()=>A}):A,J=e.showArrow?pa({arrowClass:e.arrowClass,arrowStyle:e.arrowStyle,arrowWrapperClass:e.arrowWrapperClass,arrowWrapperStyle:e.arrowWrapperStyle,clsPrefix:b}):null;return[q,J]};P=S("div",cn({class:[`${b}-popover`,`${b}-popover-shared`,f==null?void 0:f.themeClass.value,k.map(h=>`${b}-${h}`),{[`${b}-popover--scrollable`]:e.scrollable,[`${b}-popover--show-header-or-footer`]:B,[`${b}-popover--raw`]:e.raw,[`${b}-popover-shared--overlap`]:e.overlap,[`${b}-popover-shared--show-arrow`]:e.showArrow,[`${b}-popover-shared--center-arrow`]:e.arrowPointToCenter}],ref:d,style:v.value,onKeydown:l.handleKeydown,onMouseenter:c,onMouseleave:$},n),I?S(fn,{active:e.show,autoFocus:!0},{default:j}):j())}return we(P,u.value)}return{displayed:m,namespace:r,isMounted:l.isMountedRef,zIndex:l.zIndexRef,followerRef:s,adjustedTo:te(e),followerEnabled:p,renderContentNode:K}},render(){return S(Gn,{ref:"followerRef",zIndex:this.zIndex,show:this.show,enabled:this.followerEnabled,to:this.adjustedTo,x:this.x,y:this.y,flip:this.flip,placement:this.placement,containerClass:this.namespace,overlap:this.overlap,width:this.width==="trigger"?"target":void 0,teleportDisabled:this.adjustedTo===te.tdkey},{default:()=>this.animated?S(un,{name:"popover-transition",appear:this.isMounted,onEnter:()=>{this.followerEnabled=!0},onAfterLeave:()=>{var e;(e=this.internalOnAfterLeave)===null||e===void 0||e.call(this),this.followerEnabled=!1,this.displayed=!1}},{default:this.renderContentNode}):this.renderContentNode()})}}),ga=Object.keys(It),wa={focus:["onFocus","onBlur"],click:["onClick"],hover:["onMouseenter","onMouseleave"],manual:[],nested:["onFocus","onBlur","onMouseenter","onMouseleave","onClick"]};function ba(e,t,n){wa[t].forEach(r=>{e.props?e.props=Object.assign({},e.props):e.props={};const o=e.props[r],a=n[r];o?e.props[r]=(...i)=>{o(...i),a(...i)}:e.props[r]=a})}const ya={show:{type:Boolean,default:void 0},defaultShow:Boolean,showArrow:{type:Boolean,default:!0},trigger:{type:String,default:"hover"},delay:{type:Number,default:100},duration:{type:Number,default:100},raw:Boolean,placement:{type:String,default:"top"},x:Number,y:Number,arrowPointToCenter:Boolean,disabled:Boolean,getDisabled:Function,displayDirective:{type:String,default:"if"},arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],flip:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},width:{type:[Number,String],default:void 0},overlap:Boolean,keepAliveOnHover:{type:Boolean,default:!0},zIndex:Number,to:te.propTo,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],onClickoutside:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],internalDeactivateImmediately:Boolean,internalSyncTargetWithParent:Boolean,internalInheritedEventHandlers:{type:Array,default:()=>[]},internalTrapFocus:Boolean,internalExtraClass:{type:Array,default:()=>[]},onShow:[Function,Array],onHide:[Function,Array],arrow:{type:Boolean,default:void 0},minWidth:Number,maxWidth:Number},$a=Object.assign(Object.assign(Object.assign({},ke.props),ya),{internalOnAfterLeave:Function,internalRenderBody:Function}),_a=ue({name:"Popover",inheritAttrs:!1,props:$a,__popover__:!0,setup(e){const t=yt(),n=T(null),r=L(()=>e.show),o=T(e.defaultShow),a=En(r,o),i=se(()=>e.disabled?!1:a.value),s=()=>{if(e.disabled)return!0;const{getDisabled:h}=e;return!!(h!=null&&h())},l=()=>s()?!1:a.value,d=Tn(e,["arrow","showArrow"]),p=L(()=>e.overlap?!1:d.value);let m=null;const u=T(null),v=T(null),g=se(()=>e.x!==void 0&&e.y!==void 0);function f(h){const{"onUpdate:show":M,onUpdateShow:A,onShow:q,onHide:J}=e;o.value=h,M&&de(M,h),A&&de(A,h),h&&q&&de(q,!0),h&&J&&de(J,!1)}function y(){m&&m.syncPosition()}function c(){const{value:h}=u;h&&(window.clearTimeout(h),u.value=null)}function $(){const{value:h}=v;h&&(window.clearTimeout(h),v.value=null)}function z(){const h=s();if(e.trigger==="focus"&&!h){if(l())return;f(!0)}}function _(){const h=s();if(e.trigger==="focus"&&!h){if(!l())return;f(!1)}}function O(){const h=s();if(e.trigger==="hover"&&!h){if($(),u.value!==null||l())return;const M=()=>{f(!0),u.value=null},{delay:A}=e;A===0?M():u.value=window.setTimeout(M,A)}}function K(){const h=s();if(e.trigger==="hover"&&!h){if(c(),v.value!==null||!l())return;const M=()=>{f(!1),v.value=null},{duration:A}=e;A===0?M():v.value=window.setTimeout(M,A)}}function w(){K()}function P(h){var M;l()&&(e.trigger==="click"&&(c(),$(),f(!1)),(M=e.onClickoutside)===null||M===void 0||M.call(e,h))}function C(){if(e.trigger==="click"&&!s()){c(),$();const h=!l();f(h)}}function b(h){e.internalTrapFocus&&h.key==="Escape"&&(c(),$(),f(!1))}function k(h){o.value=h}function I(){var h;return(h=n.value)===null||h===void 0?void 0:h.targetRef}function B(h){m=h}return ae("NPopover",{getTriggerElement:I,handleKeydown:b,handleMouseEnter:O,handleMouseLeave:K,handleClickOutside:P,handleMouseMoveOutside:w,setBodyInstance:B,positionManuallyRef:g,isMountedRef:t,zIndexRef:G(e,"zIndex"),extraClassRef:G(e,"internalExtraClass"),internalRenderBodyRef:G(e,"internalRenderBody")}),xt(()=>{a.value&&s()&&f(!1)}),{binderInstRef:n,positionManually:g,mergedShowConsideringDisabledProp:i,uncontrolledShow:o,mergedShowArrow:p,getMergedShow:l,setShow:k,handleClick:C,handleMouseEnter:O,handleMouseLeave:K,handleFocus:z,handleBlur:_,syncPosition:y}},render(){var e;const{positionManually:t,$slots:n}=this;let r,o=!1;if(!t&&(n.activator?r=Re(n,"activator"):r=Re(n,"trigger"),r)){r=pn(r),r=r.type===mn?S("span",[r]):r;const a={onClick:this.handleClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur};if(!((e=r.type)===null||e===void 0)&&e.__popover__)o=!0,r.props||(r.props={internalSyncTargetWithParent:!0,internalInheritedEventHandlers:[]}),r.props.internalSyncTargetWithParent=!0,r.props.internalInheritedEventHandlers?r.props.internalInheritedEventHandlers=[a,...r.props.internalInheritedEventHandlers]:r.props.internalInheritedEventHandlers=[a];else{const{internalInheritedEventHandlers:i}=this,s=[a,...i],l={onBlur:d=>{s.forEach(p=>{p.onBlur(d)})},onFocus:d=>{s.forEach(p=>{p.onFocus(d)})},onClick:d=>{s.forEach(p=>{p.onClick(d)})},onMouseenter:d=>{s.forEach(p=>{p.onMouseenter(d)})},onMouseleave:d=>{s.forEach(p=>{p.onMouseleave(d)})}};ba(r,i?"nested":t?"manual":this.trigger,l)}}return S(Wn,{ref:"binderInstRef",syncTarget:!o,syncTargetWithParent:this.internalSyncTargetWithParent},{default:()=>{this.mergedShowConsideringDisabledProp;const a=this.getMergedShow();return[this.internalTrapFocus&&a?we(S("div",{style:{position:"fixed",inset:0}}),[[$t,{enabled:a,zIndex:this.zIndex}]]):null,t?null:S(Fn,null,{default:()=>r}),S(ma,gn(this.$props,ga,Object.assign(Object.assign({},this.$attrs),{showArrow:this.mergedShowArrow,show:a})),{default:()=>{var i,s;return(s=(i=this.$slots).default)===null||s===void 0?void 0:s.call(i)},header:()=>{var i,s;return(s=(i=this.$slots).header)===null||s===void 0?void 0:s.call(i)},footer:()=>{var i,s;return(s=(i=this.$slots).footer)===null||s===void 0?void 0:s.call(i)}})]}})}}),Ma=["href"];function Sa(e,t,n,r,o,a){return bn(),yn("svg",{class:Mn(e.svgClass),"aria-hidden":"true"},[$n("use",{class:"svg-use",href:e.symbolId},null,8,Ma)],2)}const Oa=Sn(wn,[["render",Sa],["__scopeId","data-v-bc0bc726"]]);export{_a as N,Oa as S,Wn as V,fe as a,Aa as b,kn as c,te as d,Fn as e,Pe as f,Gn as g,Tn as h,Pn as i,Ca as j,Bn as k,fr as l,On as o,ya as p,pa as r,En as u}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-c4f1fb1a.css b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-c4f1fb1a.css deleted file mode 100644 index 61e3bf4be..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-c4f1fb1a.css +++ /dev/null @@ -1 +0,0 @@ -.markdown-body{background-color:transparent;font-size:14px}.markdown-body p{white-space:pre-wrap}.markdown-body ol{list-style-type:decimal}.markdown-body ul{list-style-type:disc}.markdown-body pre code,.markdown-body pre tt{line-height:1.65}.markdown-body .highlight pre,.markdown-body pre{background-color:#fff}.markdown-body code.hljs{padding:0}.markdown-body .code-block-wrapper{position:relative;padding-top:24px}.markdown-body .code-block-header{position:absolute;top:5px;right:0;width:100%;padding:0 1rem;display:flex;justify-content:flex-end;align-items:center;color:#b3b3b3}.markdown-body .code-block-header__copy{cursor:pointer;margin-left:.5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.markdown-body .code-block-header__copy:hover{color:#65a665}html.dark .message-reply .whitespace-pre-wrap{white-space:pre-wrap;color:var(--n-text-color)}html.dark .highlight pre,html.dark pre{background-color:#282c34}.transparent-grid[data-v-69882464]{background-image:linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%),linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%);background-size:16px 16px;background-position:0 0,8px 8px}.text-shadow[data-v-650ea9b6]{text-shadow:0px 0px 5px gray}.dark .app-starter-modal-content .n-layout{background-color:#2c2c32}.search-container[data-v-d2b10c26]{border:1px solid #ccc;transition:box-shadow .5s,-webkit-backdrop-filter .5s;transition:box-shadow .5s,backdrop-filter .5s;transition:box-shadow .5s,backdrop-filter .5s,-webkit-backdrop-filter .5s;padding:2px 10px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.focused[data-v-d2b10c26],.search-container[data-v-d2b10c26]:hover{box-shadow:0 0 30px -5px #29292973;-webkit-box-shadow:0px 0px 30px -5px rgba(0,0,0,.45);-moz-box-shadow:0px 0px 30px -5px rgba(0,0,0,.45);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.before[data-v-d2b10c26]{left:10px}.after[data-v-d2b10c26]{right:10px}input[data-v-d2b10c26]{background-color:transparent;box-sizing:border-box;width:100%;height:40px;padding:10px 5px;border:none;outline:none;font-size:17px}.transparent-grid{background-image:linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%),linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%);background-size:16px 16px;background-position:0 0,8px 8px;background-color:#e2e8f0}.text-shadow[data-v-679daf12]{text-shadow:2px 2px 50px rgb(0,0,0)}.app-icon-text-shadow[data-v-679daf12]{text-shadow:2px 2px 5px rgb(0,0,0)}.icon-info-box[data-v-679daf12]{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}.icon-small-box[data-v-679daf12]{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(75px,1fr));gap:18px}@media (max-width: 500px){.icon-info-box[data-v-679daf12]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}body,html{overflow:hidden;background-color:#363636}.mask[data-v-f21ede0f]{position:absolute;top:0;left:0;width:100%;height:100%}.sun-main[data-v-f21ede0f]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.cover[data-v-f21ede0f]{position:absolute;width:100%;height:100%;overflow:hidden;transform:scale(1.05)}.text-shadow[data-v-f21ede0f]{text-shadow:2px 2px 50px rgb(0,0,0)}.app-icon-text-shadow[data-v-f21ede0f]{text-shadow:2px 2px 5px rgb(0,0,0)}.fixed-element[data-v-f21ede0f]{position:fixed;right:10px;bottom:50px}.icon-info-box[data-v-f21ede0f]{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}.icon-small-box[data-v-f21ede0f]{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(75px,1fr));gap:18px}@media (max-width: 500px){.icon-info-box[data-v-f21ede0f]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}} diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-d074e84b.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-d074e84b.js deleted file mode 100644 index 6813d7ed0..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-d074e84b.js +++ /dev/null @@ -1 +0,0 @@ -import{be as $,f as j,r as y,bn as B,bw as L,bv as D,D as G,aW as u,aX as h,a8 as P,aP as U,b4 as t,b2 as s,a$ as l,b0 as N,b1 as n,b3 as a,a_ as w,ao as W,bq as V,bC as q,ac as m,bo as i,cN as E}from"./index-7e19b821.js";import{S as g}from"./index-c238f14b.js";import{j as O,l as A,N as X,n as H,q as J,t as C,k as K,c as Q,_ as R,v as Y}from"./index-b1d3d9b0.js";import{N as Z}from"./Alert-018ca7af.js";import{_ as ee}from"./_plugin-vue_export-helper-c27b6911.js";function se(){return $({url:"/file/getList"})}function te(b){return $({url:"/file/deletes",data:{ids:b}})}const ae={class:"bg-slate-200 dark:bg-zinc-900 p-2 h-full"},oe={class:"flex justify-center mt-2"},le={key:0,class:"flex"},ne={class:"card transparent-grid"},ie={class:"text-xs"},re={class:"flex justify-center mt-[10px]"},ce={class:"mb-2"},de={class:"text-slate-500"},pe={class:"text-xs"},ue={class:"mb-2"},fe={class:"text-slate-500"},_e={class:"text-xs"},me={class:"mb-2"},ge={class:"text-slate-500"},ve={class:"text-xs"},ye=j({__name:"index",setup(b){const v=y([]),p=B(),F=L(),x=D(),f=y(!1),r=y({show:!1,title:"",fileInfo:null});async function k(){f.value=!0;const{data:e}=await se();v.value=e.list,f.value=!1}async function M(e){await Y(e)?p.success(i("apps.uploadsFileManager.copySuccess")):p.error(i("apps.uploadsFileManager.copyFailed"))}function I(e){F.warning({title:i("common.warning"),content:i("apps.uploadsFileManager.deleteWarningText"),positiveText:i("common.confirm"),negativeText:i("common.cancel"),onPositiveClick:()=>{S(e)}})}async function S(e){try{const{code:c,msg:o}=await te([e]);c===0?(k(),p.success(i("common.success"))):p.error(`${i("common.failed")}:${o}`)}catch{p.error(i("common.failed"))}}function T(e){r.value.fileInfo=e,r.value.show=!0}function z(e){x.panelConfig.backgroundImageSrc=e,E({panel:x.panelConfig})}return G(()=>{k()}),(e,c)=>(u(),h("div",ae,[P(t(s(O),{size:"small"},null,512),[[U,f.value]]),t(s(Z),{type:"info",bordered:!1},{default:l(()=>[N(n(e.$t("apps.uploadsFileManager.alertText")),1)]),_:1}),a("div",oe,[v.value.length===0&&!f.value?(u(),h("div",le,n(e.$t("apps.uploadsFileManager.nothingText")),1)):(u(),w(s(Q),{key:1},{default:l(()=>[t(s(K),{cols:"2 300:2 600:4 900:6 1100:9","x-gap":5,"y-gap":5},{default:l(()=>[(u(!0),h(W,null,V(v.value,(o,_)=>(u(),w(s(A),{key:_},{default:l(()=>[t(s(q),{size:"small",style:{"border-radius":"5px"},bordered:!0},{cover:l(()=>[a("div",ne,[t(s(X),{lazy:!0,style:{"object-fit":"contain",height:"100%"},src:o.src},null,8,["src"])])]),footer:l(()=>[a("span",ie,[t(s(H),null,{default:l(()=>[N(n(o.fileName),1)]),_:2},1024)]),a("div",re,[t(s(J),null,{default:l(()=>[t(s(m),{size:"tiny",tertiary:"",style:{cursor:"pointer"},title:e.$t("apps.uploadsFileManager.copyLink"),onClick:d=>M(o.src)},{icon:l(()=>[t(s(g),{icon:"ion-copy"})]),_:2},1032,["title","onClick"]),t(s(m),{size:"tiny",tertiary:"",style:{cursor:"pointer"},title:s(C)(o.createTime),onClick:d=>T(o)},{icon:l(()=>[t(s(g),{icon:"mdi-information-box-outline"})]),_:2},1032,["title","onClick"]),t(s(m),{size:"tiny",tertiary:"",style:{cursor:"pointer"},title:e.$t("apps.uploadsFileManager.setWallpaper"),onClick:d=>z(o.src)},{icon:l(()=>[t(s(g),{icon:"lucide:wallpaper"})]),_:2},1032,["title","onClick"]),t(s(m),{size:"tiny",tertiary:"",type:"error",style:{cursor:"pointer"},title:e.$t("common.delete"),onClick:d=>I(o.id)},{icon:l(()=>[t(s(g),{icon:"material-symbols-delete"})]),_:2},1032,["title","onClick"])]),_:2},1024)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1}))]),t(s(R),{show:r.value.show,"onUpdate:show":c[0]||(c[0]=o=>r.value.show=o),style:{"max-width":"300px"},size:"small",title:e.$t("apps.uploadsFileManager.infoTitle")},{default:l(()=>{var o,_,d;return[a("div",null,[a("div",null,[a("div",ce,[a("span",de,n(e.$t("apps.uploadsFileManager.fileName")),1),a("div",pe,n((o=r.value.fileInfo)==null?void 0:o.fileName),1)]),a("div",ue,[a("span",fe,n(e.$t("apps.uploadsFileManager.path")),1),a("div",_e,n((_=r.value.fileInfo)==null?void 0:_.src),1)]),a("div",me,[a("span",ge,n(e.$t("apps.uploadsFileManager.uploadTime")),1),a("div",ve,n(s(C)((d=r.value.fileInfo)==null?void 0:d.createTime)),1)])])])]}),_:1},8,["show","title"])]))}});const he=ee(ye,[["__scopeId","data-v-ad2e06f3"]]),Ce=Object.freeze(Object.defineProperty({__proto__:null,default:he},Symbol.toStringTag,{value:"Module"}));export{he as U,se as g,Ce as i}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-d715da4a.css b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-d715da4a.css deleted file mode 100644 index 1f81255d0..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-d715da4a.css +++ /dev/null @@ -1 +0,0 @@ -.card[data-v-ad2e06f3]{display:flex;justify-content:center;align-items:center;height:80px}.transparent-grid[data-v-ad2e06f3]{background-image:linear-gradient(45deg,#f0f0f0 25%,transparent 25%,transparent 75%,#f0f0f0 75%),linear-gradient(45deg,#f0f0f0 25%,transparent 25%,transparent 75%,#f0f0f0 75%);background-size:16px 16px;background-position:0 0,8px 8px} diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-e0b65a22.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-e0b65a22.js deleted file mode 100644 index f389a92da..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-e0b65a22.js +++ /dev/null @@ -1 +0,0 @@ -import{g as a,U as s}from"./index-d074e84b.js";import{f as n,r as i,D as _,aX as c,b4 as r,aW as p}from"./index-7e19b821.js";import{_ as l}from"./_plugin-vue_export-helper-c27b6911.js";import"./index-c238f14b.js";import"./index-b1d3d9b0.js";import"./Alert-018ca7af.js";const d=n({__name:"index",setup(m){const t=i([]);async function o(){const{data:e}=await a();console.log(e),t.value=e.list}return _(()=>{o()}),(e,f)=>(p(),c("div",null,[r(s)]))}});const k=l(d,[["__scopeId","data-v-157c4864"]]);export{k as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-ed75c22d.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-ed75c22d.js deleted file mode 100644 index c6fa7f94b..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-ed75c22d.js +++ /dev/null @@ -1 +0,0 @@ -import{aW as t,aX as a,bW as e,f as s,b3 as c,b4 as h,a$ as r,b2 as f,bX as M,b0 as o,ac as v}from"./index-7e19b821.js";import{_ as d}from"./_plugin-vue_export-helper-c27b6911.js";const i={},m={class:"text-[currentColor] dark:text-[#3a71ff]"},n=e('',1),u=[n];function E(Z,l){return t(),a("div",m,u)}const _=d(i,[["render",E]]),B={class:"flex h-full dark:bg-neutral-800"},C={class:"px-4 m-auto space-y-4 text-center max-[400px]"},x={class:"space-y-2"},F=c("h2",{class:"text-2xl font-bold text-center text-slate-800 dark:text-neutral-200"}," 500 ",-1),k=c("p",{class:"text-base text-center text-slate-500 dark:text-slate-500"}," 服务器错误 ",-1),b={class:"flex items-center justify-center text-center"},y=s({__name:"index",setup(Z){const l=M();function p(){l.push("/")}return(g,H)=>(t(),a("div",B,[c("div",C,[c("header",x,[F,k,c("div",b,[h(_,{class:"w-[300px]"})])]),h(f(v),{type:"primary",onClick:p},{default:r(()=>[o(" 返回首页 ")]),_:1})])]))}});export{y as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-f036cca6.css b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-f036cca6.css deleted file mode 100644 index 0c7df83ff..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-f036cca6.css +++ /dev/null @@ -1 +0,0 @@ -.svg-icon[data-v-bc0bc726]{width:1em;height:1em;fill:currentColor;overflow:hidden}@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-0cdd387c.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-30da91e8.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-68534840.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-de7701e4.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-1ae6bd74.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-07d8e303.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-5d53e70a.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-3398dd02.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-ed0b7437.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-74444efd.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-9be7ceb8.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-9163df9c.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-51814d27.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-5e28753b.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-1e6f9579.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-0f60d1b8.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-c76c5d69.woff) format("woff"),url(/assets/KaTeX_Main-Bold-138ac28d.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-99cd42a3.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-a6f7ec0d.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-70ee1f64.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-97479ca6.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-f1d6ef86.woff) format("woff"),url(/assets/KaTeX_Main-Italic-0d85ae7c.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-c2342cd8.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-c6368d87.woff) format("woff"),url(/assets/KaTeX_Main-Regular-d0332f52.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-dc47344d.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-850c0af5.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-f9377ab0.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-7af58c5e.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-8a8d2445.woff) format("woff"),url(/assets/KaTeX_Math-Italic-08ce98e5.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-e99ae511.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-ece03cfd.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-1ece03f7.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-00b26ac8.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-91ee6750.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-3931dd81.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-68e8c73e.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-11e4dc8a.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-f36ea897.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-036d4e95.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-d96cdf2b.woff) format("woff"),url(/assets/KaTeX_Script-Regular-1c67f068.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-6b47c401.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-c943cc98.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-95b6d2f1.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-d04c5421.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-2014c523.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-a6b2099f.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/KaTeX_Size3-Regular-6ab6b62e.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-500e04d5.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-a4af7d41.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-99f9c675.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-c647367d.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-71d517d6.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-e14fed02.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-f01f3e87.ttf) format("truetype")}.katex{text-rendering:auto;font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.4"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.float-right{float:right}.m-\[10px\]{margin:10px}.m-\[50px\]{margin:50px}.m-auto{margin:auto}.mx-\[10px\]{margin-left:10px;margin-right:10px}.mx-\[auto\],.mx-auto{margin-left:auto;margin-right:auto}.my-\[10px\]{margin-top:10px;margin-bottom:10px}.my-\[15px\]{margin-top:15px;margin-bottom:15px}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mb-\[10px\]{margin-bottom:10px}.mb-\[20px\]{margin-bottom:20px}.mb-\[5px\]{margin-bottom:5px}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-\[10px\]{margin-left:10px}.ml-\[20px\]{margin-left:20px}.ml-\[5px\]{margin-left:5px}.ml-\[auto\],.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-\[10px\]{margin-right:10px}.mr-\[20px\]{margin-right:20px}.mr-\[5px\]{margin-right:5px}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-5{margin-top:1.25rem}.mt-\[10px\]{margin-top:10px}.mt-\[20px\]{margin-top:20px}.mt-\[2px\]{margin-top:2px}.mt-\[50px\]{margin-top:50px}.mt-\[5px\]{margin-top:5px}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-\[100px\]{height:100px}.h-\[200px\]{height:200px}.h-\[20px\]{height:20px}.h-\[260px\]{height:260px}.h-\[34px\]{height:34px}.h-\[35px\]{height:35px}.h-\[40px\]{height:40px}.h-\[600px\]{height:600px}.h-\[70px\]{height:70px}.h-full{height:100%}.w-10{width:2.5rem}.w-\[120px\]{width:120px}.w-\[150px\]{width:150px}.w-\[200px\]{width:200px}.w-\[20px\]{width:20px}.w-\[25px\]{width:25px}.w-\[300px\]{width:300px}.w-\[35px\]{width:35px}.w-\[40px\]{width:40px}.w-\[4px\]{width:4px}.w-\[60px\]{width:60px}.w-\[70px\]{width:70px}.w-\[80\%\]{width:80%}.w-\[80px\]{width:80px}.w-auto{width:auto}.w-full{width:100%}.min-w-\[100px\]{min-width:100px}.min-w-\[20px\]{min-width:20px}.min-w-\[300px\]{min-width:300px}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes blink{0%,to{background-color:currentColor}50%{background-color:transparent}}.animate-blink{animation:blink 1.2s infinite steps(1,start)}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.bg-\[\#f4f6f8\]{--tw-bg-opacity: 1;background-color:rgb(244 246 248 / var(--tw-bg-opacity))}.bg-\[\#ffffff\]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-5{padding:1.25rem}.p-\[10px\]{padding:10px}.p-\[5px\]{padding:5px}.p-\[8px\]{padding:8px}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-2{padding-top:.5rem}.pt-5{padding-top:1.25rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[20px\]{font-size:20px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.\!font-bold{font-weight:700!important}.font-\[600\]{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.text-\[\#142D6E\]{--tw-text-opacity: 1;color:rgb(20 45 110 / var(--tw-text-opacity))}.text-\[currentColor\]{color:currentColor}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_10px_2px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow: 0 0 10px 2px rgba(0,0,0,.2);--tw-shadow-colored: 0 0 10px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_30px_10px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow: 0 0 30px 10px rgba(0,0,0,.3);--tw-shadow-colored: 0 0 30px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-100{transition-delay:.1s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[value\:any\]{value:any}.hover\:bg-neutral-100:hover{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity))}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hover\:text-red-900:hover{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity))}.hover\:shadow-\[0_0_20px_10px_rgba\(0\,0\,0\,0\.2\)\]:hover{--tw-shadow: 0 0 20px 10px rgba(0,0,0,.2);--tw-shadow-colored: 0 0 20px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:bg-slate-50:focus{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity))}.dark .dark\:border-zinc-700{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity))}.dark .dark\:bg-\[\#1e1e20\]{--tw-bg-opacity: 1;background-color:rgb(30 30 32 / var(--tw-bg-opacity))}.dark .dark\:bg-\[\#2c2c32\]{--tw-bg-opacity: 1;background-color:rgb(44 44 50 / var(--tw-bg-opacity))}.dark .dark\:bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.dark .dark\:bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.dark .dark\:bg-zinc-800{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity))}.dark .dark\:bg-zinc-900{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.dark .dark\:text-\[\#3a71ff\]{--tw-text-opacity: 1;color:rgb(58 113 255 / var(--tw-text-opacity))}.dark .dark\:text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.dark .dark\:text-neutral-400{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.dark .dark\:text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.dark .dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark .dark\:hover\:bg-\[\#414755\]:hover{--tw-bg-opacity: 1;background-color:rgb(65 71 85 / var(--tw-bg-opacity))}.dark .dark\:hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.dark .dark\:hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:hidden{display:none}.sm\:w-full{width:100%}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width: 768px){.md\:block{display:block}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width: 1024px){.lg\:w-\[80\%\]{width:80%}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}}html.dark pre code.hljs{display:block;overflow-x:auto;padding:1em}html.dark code.hljs{padding:3px 5px}html.dark .hljs{color:#abb2bf;background:#282c34}html.dark .hljs-keyword,html.dark .hljs-operator,html.dark .hljs-pattern-match{color:#f92672}html.dark .hljs-function,html.dark .hljs-pattern-match .hljs-constructor{color:#61aeee}html.dark .hljs-function .hljs-params{color:#a6e22e}html.dark .hljs-function .hljs-params .hljs-typing{color:#fd971f}html.dark .hljs-module-access .hljs-module{color:#7e57c2}html.dark .hljs-constructor{color:#e2b93d}html.dark .hljs-constructor .hljs-string{color:#9ccc65}html.dark .hljs-comment,html.dark .hljs-quote{color:#b18eb1;font-style:italic}html.dark .hljs-doctag,html.dark .hljs-formula{color:#c678dd}html.dark .hljs-deletion,html.dark .hljs-name,html.dark .hljs-section,html.dark .hljs-selector-tag,html.dark .hljs-subst{color:#e06c75}html.dark .hljs-literal{color:#56b6c2}html.dark .hljs-addition,html.dark .hljs-attribute,html.dark .hljs-meta .hljs-string,html.dark .hljs-regexp,html.dark .hljs-string{color:#98c379}html.dark .hljs-built_in,html.dark .hljs-class .hljs-title,html.dark .hljs-title.class_{color:#e6c07b}html.dark .hljs-attr,html.dark .hljs-number,html.dark .hljs-selector-attr,html.dark .hljs-selector-class,html.dark .hljs-selector-pseudo,html.dark .hljs-template-variable,html.dark .hljs-type,html.dark .hljs-variable{color:#d19a66}html.dark .hljs-bullet,html.dark .hljs-link,html.dark .hljs-meta,html.dark .hljs-selector-id,html.dark .hljs-symbol,html.dark .hljs-title{color:#61aeee}html.dark .hljs-emphasis{font-style:italic}html.dark .hljs-strong{font-weight:700}html.dark .hljs-link{text-decoration:underline}html pre code.hljs{display:block;overflow-x:auto;padding:1em}html code.hljs{padding:3px 5px}html code.hljs::-webkit-scrollbar{height:4px}html .hljs{color:#383a42;background:#fafafa}html .hljs-comment,html .hljs-quote{color:#a0a1a7;font-style:italic}html .hljs-doctag,html .hljs-formula,html .hljs-keyword{color:#a626a4}html .hljs-deletion,html .hljs-name,html .hljs-section,html .hljs-selector-tag,html .hljs-subst{color:#e45649}html .hljs-literal{color:#0184bb}html .hljs-addition,html .hljs-attribute,html .hljs-meta .hljs-string,html .hljs-regexp,html .hljs-string{color:#50a14f}html .hljs-attr,html .hljs-number,html .hljs-selector-attr,html .hljs-selector-class,html .hljs-selector-pseudo,html .hljs-template-variable,html .hljs-type,html .hljs-variable{color:#986801}html .hljs-bullet,html .hljs-link,html .hljs-meta,html .hljs-selector-id,html .hljs-symbol,html .hljs-title{color:#4078f2}html .hljs-built_in,html .hljs-class .hljs-title,html .hljs-title.class_{color:#c18401}html .hljs-emphasis{font-style:italic}html .hljs-strong{font-weight:700}html .hljs-link{text-decoration:underline}html.dark .markdown-body{color-scheme:dark;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #6e7681;--color-canvas-default: #0d1117;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-neutral-muted: rgba(110, 118, 129, .4);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-attention-subtle: rgba(187, 128, 9, .15);--color-danger-fg: #f85149}html .markdown-body{color-scheme:light;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-canvas-default: #ffffff;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsl(210, 18%, 87%);--color-neutral-muted: rgba(175, 184, 193, .2);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-attention-subtle: #fff8c5;--color-danger-fg: #cf222e}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;color:var(--color-fg-default);background-color:var(--color-canvas-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:" ";display:inline-block;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,");mask-image:url("data:image/svg+xml,")}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold, 600)}.markdown-body dfn{font-style:italic}.markdown-body h1{margin:.67em 0;font-weight:var(--base-text-weight-semibold, 600);padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--color-border-muted)}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:var(--color-canvas-default)}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--color-border-muted);height:.25em;padding:0;margin:24px 0;background-color:var(--color-border-default);border:0}.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>*:not(summary){display:none!important}.markdown-body a:focus,.markdown-body [role=button]:focus,.markdown-body input[type=radio]:focus,.markdown-body input[type=checkbox]:focus{outline:2px solid var(--color-accent-fg);outline-offset:-2px;box-shadow:none}.markdown-body a:focus:not(:focus-visible),.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible){outline:solid 1px transparent}.markdown-body a:focus-visible,.markdown-body [role=button]:focus-visible,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus-visible{outline:2px solid var(--color-accent-fg);outline-offset:-2px;box-shadow:none}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible{outline-offset:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:var(--color-fg-default);vertical-align:middle;background-color:var(--color-canvas-subtle);border:solid 1px var(--color-neutral-muted);border-bottom-color:var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:var(--base-text-weight-semibold, 600);line-height:1.25}.markdown-body h2{font-weight:var(--base-text-weight-semibold, 600);padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--color-border-muted)}.markdown-body h3{font-weight:var(--base-text-weight-semibold, 600);font-size:1.25em}.markdown-body h4{font-weight:var(--base-text-weight-semibold, 600);font-size:1em}.markdown-body h5{font-weight:var(--base-text-weight-semibold, 600);font-size:.875em}.markdown-body h6{font-weight:var(--base-text-weight-semibold, 600);font-size:.85em;color:var(--color-fg-muted)}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0;padding:0 1em;color:var(--color-fg-muted);border-left:.25em solid var(--color-border-default)}.markdown-body ul,.markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body tt,.markdown-body code,.markdown-body samp{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;word-wrap:normal}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body input::-webkit-outer-spin-button,.markdown-body input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}.markdown-body:before{display:table;content:""}.markdown-body:after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0!important}.markdown-body>*:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:16px}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{padding:0 .2em;font-size:inherit}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{padding-bottom:0;border-bottom:0}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type=a]{list-style-type:lower-alpha}.markdown-body ol[type=A]{list-style-type:upper-alpha}.markdown-body ol[type=i]{list-style-type:lower-roman}.markdown-body ol[type=I]{list-style-type:upper-roman}.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold, 600)}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold, 600)}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid var(--color-border-default)}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--color-border-default)}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--color-fg-default)}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--color-neutral-muted);border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:var(--color-canvas-subtle);border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:var(--color-canvas-default);border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:var(--base-text-weight-semibold, 600);background:var(--color-canvas-subtle);border-top:0}.markdown-body [data-footnote-ref]:before{content:"["}.markdown-body [data-footnote-ref]:after{content:"]"}.markdown-body .footnotes{font-size:12px;color:var(--color-fg-muted);border-top:1px solid var(--color-border-default)}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;padding-left:16px;margin-top:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-24px;pointer-events:none;content:"";border:2px solid var(--color-accent-emphasis);border-radius:6px}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-smi,.markdown-body .pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-s,.markdown-body .pl-pds,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-v,.markdown-body .pl-smw{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}.markdown-body .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}.markdown-body .pl-sr .pl-cce{font-weight:700;color:var(--color-prettylights-syntax-string-regexp)}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:var(--color-prettylights-syntax-markup-heading)}.markdown-body .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}.markdown-body .pl-mb{font-weight:700;color:var(--color-prettylights-syntax-markup-bold)}.markdown-body .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.markdown-body .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.markdown-body .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}.markdown-body .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}.markdown-body .pl-mdr{font-weight:700;color:var(--color-prettylights-syntax-meta-diff-range)}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.markdown-body g-emoji{display:inline-block;min-width:1ch;font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal, 400);line-height:1;vertical-align:-.075em}.markdown-body g-emoji img{width:1em;height:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal, 400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:hover .task-list-item-convert-container,.markdown-body .contains-task-list:focus-within .task-list-item-convert-container{display:block;width:auto;height:24px;overflow:visible;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}html,body,#app{height:100%}body{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)} diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-fd895f10.js b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-fd895f10.js deleted file mode 100644 index a63c59f19..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/index-fd895f10.js +++ /dev/null @@ -1 +0,0 @@ -import{f as x,bl as N,bB as S,bn as k,r as d,aX as B,b4 as s,a$ as t,b2 as a,aW as $,b3 as n,b0 as m,b1 as _,bt as C,ac as P,bC as U,bo as V,bA as I}from"./index-7e19b821.js";import{l as T}from"./index-8f0537f1.js";import{S as p}from"./index-c238f14b.js";import{b as A,l as K,d as j,a as c,N as h}from"./index-2b595d91.js";import{N as z}from"./GradientText-44d798c5.js";import"./_plugin-vue_export-helper-c27b6911.js";const F={class:"login-container"},L={class:"mb-5 flex items-center justify-end"},M={class:"mr-2"},D={class:"min-w-[100px]"},E={class:"login-title"},G=n("div",{class:"flex justify-center text-slate-300"},[m(" Powered By "),n("a",{href:"https://github.com/hslr-s/sun-panel",target:"_blank",class:"ml-[5px] text-slate-500"},"Sun-Panel")],-1),R=x({__name:"index",setup(H){const f=N(),g=S(),b=k(),r=d(!1),i=d(g.language),o=d({username:"",password:""}),y=async()=>{r.value=!0;try{const e=await T(o.value);e.code===0?(f.setToken(e.data.token),f.setUserInfo(e.data),setTimeout(()=>{b.success(`Hi ${e.data.name},${V("login.welcomeMessage")}`),r.value=!1,I.push({path:"/"})},500)):r.value=!1}catch(e){r.value=!1,console.log(e)}};function v(){y()}function w(e){i.value=e,g.setLanguage(e)}return(e,l)=>($(),B("div",F,[s(a(U),{class:"login-card",style:{"border-radius":"20px"}},{default:t(()=>[n("div",L,[n("div",M,[s(a(p),{icon:"ion-language",style:{width:"20",height:"20"}})]),n("div",D,[s(a(A),{value:i.value,"onUpdate:value":l[0]||(l[0]=u=>i.value=u),size:"small",options:a(K),onUpdateValue:w},null,8,["value","options"])])]),n("div",E,[s(a(z),{size:30,type:"success",class:"!font-bold"},{default:t(()=>[m(_(e.$t("common.appName")),1)]),_:1})]),s(a(j),{model:o.value,"label-width":"100px",onKeydown:C(v,["enter"])},{default:t(()=>[s(a(c),null,{default:t(()=>[s(a(h),{value:o.value.username,"onUpdate:value":l[1]||(l[1]=u=>o.value.username=u),placeholder:e.$t("login.usernamePlaceholder")},{prefix:t(()=>[s(a(p),{icon:"ph:user-bold"})]),_:1},8,["value","placeholder"])]),_:1}),s(a(c),null,{default:t(()=>[s(a(h),{value:o.value.password,"onUpdate:value":l[2]||(l[2]=u=>o.value.password=u),type:"password",placeholder:e.$t("login.passwordPlaceholder")},{prefix:t(()=>[s(a(p),{icon:"mdi:password-outline"})]),_:1},8,["value","placeholder"])]),_:1}),s(a(c),{style:{"margin-top":"10px"}},{default:t(()=>[s(a(P),{type:"primary",block:"",loading:r.value,onClick:v},{default:t(()=>[m(_(e.$t("login.loginButton")),1)]),_:1},8,["loading"])]),_:1}),G]),_:1},8,["model","onKeydown"])]),_:1})]))}});export{R as default}; diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/logo-3d38229d.svg b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/logo-3d38229d.svg deleted file mode 100644 index 561e1f533..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/logo-3d38229d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/qq_group_qr2-e70d9e73.png b/luci-app-sunpanel/htdocs/luci-static/sunpanel/assets/qq_group_qr2-e70d9e73.png deleted file mode 100644 index a956f7fba0ed7915bcb55d17397930fd5f58adce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226022 zcmeFY1y>x~7A@SkI|K_ETyxF+N%g%v7CIR^2n51XRFF{zfe@lWAVgPGWZ=x4V+alK z56(qhUJ6t-O1=wxKy;B()I<4mmE_J(^%5>QG!MRGLs+=Q%YnoUB@2nO+jr z5F;!8KPROI)|J(GL#3EQOMLGOY80M-2z((Aq6t)02+G&28XT~>@%_))P+kxe&afJ@ zTDxlLQB#-h-y6r%Mi-$WhM@DZxsw+TzWVnDq2wk47AH3%@r82<@!kJB8AO8MD<)`e zT=;*U#F?WK&e~Ey6DIrbfKUayz1oh@Y5(_`ri!MN@CDj`?h6`cfoAf6{?7@L;d&A{ zJ&S~YUs6f|QFh{gFNf+>U{dm**O$`&|DDeJ-}8IJ{x>>YV)W?$_v8Pr)&EVik+6S< zsPF)Rf~|aHLvg_i@BcMuD^EsNN)u-Ez-g?=+E^2u$cb2GxWs=9DL(vD_XZv{cVQnb zuGUraVJI$F2>rh%Sm>{&BQo6UqhMthg&C#k^{*QguIJWxrk0HDnTW__SCit891@cK zYqO;v2w&isTn4(8g!M#e^7i^1b)MFCmB6O? zhzxbr3X!{g+3J`74x3Nfq!uo(hJcE&;XmUNM32ToM9RF*UsL|~ek0?Vecp0GMeefg zRlF(x8PH(fps8qnu8zk}{p)|cqtLqKn~sWQlhtyxe!+j-4*z9XpO73;)vbKqe=duf z;G7bYk*r$~c_-6?8l9n%;OUdJ*>HH;e}`$pi&>AYs%m>( z^7rjO*F_S5U)Z3532{U>7u3pV# zfvC?#5qVMfbN?JmI#|-b^qmoBp$3oF!j{oEUoe#{V)$F4h+|8prk|oclfPB@v|Ncd+q3e)O)GWo_sdOy)xtpA*K*iXQ~9FNXH2vz%zIw*M{yTz z%|>SPJTs72vWQ|n3cL|B>D3`caGA~9j(Vr@yVdFfP;EARjsHI3dC00J3WOr$CnV8A z{jsu3=f(rwFA=GSefv`>31nqr60O$z=VEORO|%H`vI_@8&6BuBie2AhnZ=3_``gM| z)#RJ$j6zcHyhdhKBqSh5vt#5?8>GI-UnR&Rsq0puvY^Z~r$w>AMrRTT;eVC^FR0s; z5B%e-)bLl-e0(1fA#Hc8@o@T)rAWaenCG!?I5?j(Dt?Po<80}mmRsbMgM2V`nvr2) z#6Nb)`|+e#DdqtU05mj;9GXLLlq65#?oc4+ur78%6o@C0HV72k0ybt#XLS76N zrKPd*X3!cXL7WXq0EM7qBaKF7dZA8VioQCE(|UmZwdu`rA*t}GDSHs3^dboCJx`ID zG{UzDz(z(3Bqo1{%1Lt$R{{+iN(4(t0zR_$o|7bWcE9p?vV^CsOe(SPRxGBee9&!p zY&D{yVpva%R-N*PVXuryZB#y6g4!d3soe`a4^k&arLYmM>i2VlU*wR+$oxxHU?Ip7 zcoGWJxW5Py!9+C5A!TSKxT;|i3aQN+GTA{Fer5_4Bc61oz8~@KLJ^ETe`2zq&ng6i zECOF6^1?u)YY89eesZgu;g}WSCRR{UsXo?-Zc$|nt^CkvIy6%`_kCCU{`_q0diJy*@~c;V|88pIH3I_*M_Vgy zM}<+`tdW7f3GPaRov?T2B0-9gI}>}yy>sS7C5x|^5k(eT-oETBE--j^*`6LO$haWD z;=Ue~bTn?Mc^@j+A0Na;NeORFMLT$oo^I_Q=8s`1QOfLCGZ)vLXi7*(ylz}d^)(0t zpB|N4_Nt^rm8N3w)iC74wz+Lxjs_b{7H{)Tr}_=S?YO=uE4L#j>g!x|tSHq^`dGvq zVtKw%iRj^X-$w`KkS!FDsL}8!l|J-1m*NIL$Ijk~PD$yLU5gyS22n9TvZ|KLbZ;SA zY7Pz@c?vhprMMQKD|^@7ORD~csVU9-8gF`a4fTyjUpFQaOw%Ktv5k4Jv-PVxI1q-B zH{N!(&->=M43R%v!x>MR7cToVm8ZM?LkX#=I_29wg$4Vvra)4l2lLYj#jfAZlX7R$ zd?KwhODz~K=8|x1>nxGNi9$zEl46b;3>MJQiwgM&M~;c8_8TX6&L}(tPFyKO@=LfB zDq2u(8BO7yi5kh6HIf=Cr^yzh37-oQtB7m;3>O~zH}t!G^Sk$<+fLkdznI~eiBTmH zAn=B11=NI6YO0c|cmhI9qgB~4C+!19{)sCJiZ$#Vl z#%{Hp!jGdFQyLkk`@}?gQ;*MTrB(1pj^CSh-P-O2ElthPBo^(B;Ipx~#WNXoFj0CD zxD`V0G-^P^SUnq^CG4Twg#gM<7kz1w zPu-?OntYscSy#kg>!KpB`9rv#R5?ZYNk5+tcNUQ*$#j5%r6lm+y}rWTYp8|>IJ?wt zOTb|h64O$H!njHj5tDcxkdde7iijC|OcF34mc^V11t4PhZcD;~EmErC05q*x1 zNEHn=FwzW@1!(J1Pu@@RC^}#oIq5_55l~cjIHXO~xTKWRr3Z(lq-e1}y}is9o))(t zi&a9Uak|Li`H|Hy zWU*NIOy!6EL&4kg-9yx9P>t>UUp=g7ht``HM*(YHO%x8@*G?p!`)pN*jd5f_S1SQj zQTZUyOqD@IocJT6-`(XWFT=~4#MIQtmsK6?_S;@1`TMea8p{DP9;jtj;0f>VcB#dm zDe;hoO=24Qxy(cPB;au2Rnc=LKtAv^w)5J7L>&%YW#Ui0w@-(im%)B>8e9F6$X^EW z?f^bueFtA}cFP zSb;|K=dX9$j>lw7)!|SwNA;PD?n!s__2XUA%viZrC5%4BAm|U3A9>@pz}fIqQ^Uhm z&&PqWRpQ3&5)L3r!Q#6@$QQFSF9-(*2lek>5E8E4AaMvZV3CTTDrdZ@oOYozacxuJ z)zqyhv<`#wNl8wX4Z&(%a1<#*Yb%$DwO_qvd8#NVco; z?YNhAqy6Yz6g@6sew7M%_DVg7ja$xS(MnPT=!7)6+{mzIL#Hn!N<>JkxKf6vl4h?N z^1jZXDx&fae9|5+U@z^=Zu6;i{=@tnnJex-QoM0^?70p7HATmQ0eF|(_9(-q_>&+4 zg^Iv>&B48gz`)3eEaS#47#TrYUHz51x_WF0dve4Nz(!j|eaIIDHZ3Rey|QxNu8OsB zIsG#0Z{T0?#qd~lV^G)7*#AvVDBG1>`N3cj109{ybwierm zjS8Nz-o{nGZO_i^bP($m99s?p&{e} z`^k_K`uq3qTd`$yilfZ*p zoTGdhwK8b20#PJdUkxTu67oB&K#2`~(HuI?s#wV77BX_;RKy+#b9`@^Kx>5rD!nJ` zJ&uoFZKk8q)EAqvEl04yq;hLl=xsYhHnykLI={ExVR~-h}dDyj_Rkf^Nc$fKB@ceL- zHaEW+A~EB)!oP6SZy45X<9m9Fab4?#lkck+8A<2s$qho_@);$!S)8of&UeTWn^|fI z4u%&wI}qvL499sHd~k4}Br5Os91^!ia^m8|9_hBk#GhJcZpDO!Uq0K$WZlgDEGoN$#Tim zjj=s9whs6-TvY?VUi3zPbFCq^1eB{7*o`EW7|1L&jvI`LC8jJJJRV;LdP-SAC3Zc6 z7EDeiK(CQuw6#3eR#r?~!+ywh+ryQowa@vEGL4hcZh`z|1P|@0yd)!TkzFc*onU;Z(3t-s@)@IxX%Lp%4i%LKU# zQ4FU!_SsaN-I9g72$C@}HrT~S4>oAY9Mu3G9!`* z&^fXPy$r%lFN)AG(Nbvkr!sb(=1%@;yuOWtA}bRrwY8(FX9Lx!#qszUsblzyjLgQ} z5zC{@1eE%E*b;N}yvpd?+W2>BDVjc|)6>ybdA+)fwws$KyIzF~!v|^o*sGB!qNeL# zL!2I?wwaR!KKikWWZ5|ZhSAT*nfFC^;iotmKZrE8DE(J@t{#KdzI`t;{wm*{gSk`0 z*5==QPzrvyx8jb-!vT-;F|&pN6b3&sDO1kMRHDj+{4c#XCvWNjS8MW;2oUL5L(=yd znQq#M8gklW@~+E&xVzc}ARfits#pIZ7PsfY!Uc{Tlq{^?W)^%$BJ6S4%{OZhXR$r{ zXX3}sAza}2N5R^=-?H62LV^n?Zdk|^S2u_|jWF(X>^>sNsi zMn)p|6E8U3aP3P;g4=koGGB1+Vbj)$mY-#Xp^aI037JsKu|Rn?Oz^{c*^7)O9Ry9% zTrQI^OJsA`cq|5c9tFLw52&aksSZq_*JzHkphct6!DT~Ik&QEAZR$B!T$3&M z?FJfYDXY-}r+_o*O+Sq}IeK87nL`vBGdo>2x|gJBk6HW&WCk}-2Er&)P*IfDvKI19 zG~;WendY(j`z2Mf7I0${ffFs){RN`KMXGH}L)uV@_wTW_D)nMgh}(mWW~$@7p=usW zpDHRUN?bS;9)x~?Szb6GUF6- zwTu%!YJGWkdDt^msxeOY_9@^MA0H8gkSpUANuDb1Vng#bBmAvzZP}?2{Fe6A36ZW=o+O5I=jz`QFFE#H z2%N5FjTb5sIF354NznK|J$SHsZ7SQu`v2ylBIiMVyXw=ppq%(0Lyl_FA{uc{F@|v} z*_cxbEVW5Xg9wpBscWiPLl1o}*NayJ`X#|(Ib4kT!SQqonbJgoW!$LXkapy}6(mhl zOlZ%GNZX+CQybDVgaY1dE|&P%=Fs}cu7MUzW09rE2sDA<%4U8Zc#hm^MJ6Y-GIUER zq*UbBypGBtg=i=7=#-c=Jc3wk+;!_0p2MjIEJ3G^)$CP|>nN?4w}~ZJG3|Hkn5`Gd zsmti35KEvoscQX;uJ64|uhZZwNSP%->hns7lQ}B5MSeBp>)X}3mC%H6lk1wiCZ@q} z$PU!jBA`n5^|s zRkl1P_VT#(;x$kJ!CPc`71cj%!96&g1wQ@}b6>gN=JXnb#M%LC*12EJE~lk+6Jurl zIiE3BDT#IH#ItP0c-!&2+0U2Pd*#&ziyG>QTvi)0`tG~*RaGlLfBpo(nV|Q@-lva4 z$(z}CN77DCpCCD_{&y5Z$!z^e+JT%PLy^sv4KVf@$Gou(GcB|PT`Y%lo|#sJAs(>H>E zJY^~HqSWYW)x*IrM=Hx^a%+y6|F>R)Z8Hm_xrN0hkoShLqN0uburW6q{T@62_=_2W)#T9teu-rSmTOi<6U+ zwU+B|1#W&vJuU4`7W0#AlL*;1?YGlAwCdXH6asS&(6p#d<;>~(8apV{9jRAnwBer| zl~p7?Df)Z^NZk*F1K9)xuZwF`s~O3nr&*wq1nZr>ouDcY!a89-zEdA0sqis zj`fTwe)bV-?>b4LiU?V83w?Kp0|T-%3bWl_2+ zqA}0M`ME2r;dfkyEKk#zQOKV%aMF=8IVm@Dor7$TBaR?6?@E?5%07m8#qr~;`meq_M0{pm5Xb@EE60i4742`<}ELhLm-do z($h%fLT3LNSR`r5%&Q!xy`gY=Yej^ABu83}Y5wUn1efeV9 zeb&gsASN~gNU-xNBi)e+jhj`%$DO1WuH_S_3O#f~+?2j+{?7!#hXw&+;iun|W1L>U zWIWrZZN??AMV~3O4=C7jCMGnOhl_C;DCgDZt33|w7jIs$dcuKftf!fwRQzx3-&)Tl zefeU1ciAyss?kqIVFAz)BqFYSlB-GmmmHm!XzK^_(sMj~K|YG`ne z4lJcn!C5I_2UvZTjZ5TbkN19e<8>)@`4_)1FqrQVT?iYlui9OmEip(sm(MJUQQEa79xEO z8Y?mp5WXnBI=-)h@(In)ZRtdLxnS1aAth?^^wbBV%M?i&O}Ta35Xe~4#8LEx-){&n z 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

J<^TjdzTfZ(f|i13yKkZTt~c28tFBDD}KZfrX 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 K&Z6S18{r?p=CE-9 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon-black.svg b/luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon-black.svg deleted file mode 100644 index 4f1f1e121..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon-black.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon.ico b/luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon.ico deleted file mode 100644 index 3e414ed90f0312a12c8ab7175d1b2edc15cb5f5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11500 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon.svg b/luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon.svg deleted file mode 100644 index 561e1f533..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/favicon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/index.html b/luci-app-sunpanel/htdocs/luci-static/sunpanel/index.html deleted file mode 100644 index 29f0e6323..000000000 --- a/luci-app-sunpanel/htdocs/luci-static/sunpanel/index.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - Sun-Panel - - - - - -

- -
-
-
-
-
-
-
-
- - - - - diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/logo.png b/luci-app-sunpanel/htdocs/luci-static/sunpanel/logo.png deleted file mode 100644 index a3aac61dc6e6d09a25c44bc024669d4a2b0c8d59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63259 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 diff --git a/luci-app-sunpanel/htdocs/luci-static/sunpanel/static/global.css b/luci-app-sunpanel/htdocs/luci-static/sunpanel/static/global.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/luci-app-trafficctl/Makefile b/luci-app-trafficctl/Makefile index 029f8b700..0d8035cf2 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.28.0 -PKG_RELEASE:=23 +PKG_VERSION:=1.28.2 +PKG_RELEASE:=24 PKG_LICENSE:=Apache-2.0 PKG_MAINTAINER:=Denis Iusupov @@ -10,21 +10,24 @@ PKG_MAINTAINER:=Denis Iusupov LUCI_TITLE:=LuCI Traffic Control LUCI_DESCRIPTION:=Per-device traffic monitoring, rate limiting (nft/iptables), \ traffic shaping (tc/HTB), internet blocking, and WiFi MAC filtering. -LUCI_DEPENDS:=+conntrack +luci-base +rpcd +curl +tc +iw +hostapd-utils +# The backend (helper scripts, init scripts, hotplug hooks, the config and the +# metrics CGI) is its own package, ../trafficctl. What is left here is the +# view, its rpcd plugin, the ACL and the menu entry. +# +# The backend's runtime dependencies are repeated here although this package +# does not call them itself. Releases up to 1.28.x were one package that +# depended on them directly, and when that package is upgraded to this one in +# the same run that installs trafficctl, opkg sees conntrack, curl, iw and +# hostapd-utils lose their only installed dependent and removes them as +# orphans: it does not count trafficctl, which is unpacked but not yet +# configured. Measured on OpenWrt 24.10.6 with `opkg install trafficctl.ipk +# luci-app-trafficctl.ipk` and with `opkg upgrade` from a feed. Keeping them +# here costs nothing, since trafficctl needs them anyway. +LUCI_DEPENDS:=+trafficctl +conntrack +curl +tc +iw +hostapd-utils +luci-base +rpcd LUCI_PKGARCH:=all include $(TOPDIR)/feeds/luci/luci.mk -# Only list files that ship in the package and may be user-edited. -# shapes.json / telegram_known.json are runtime state created by scripts; they -# survive sysupgrade via root/lib/upgrade/keep.d/ instead. -define Package/$(PKG_NAME)/conffiles -/etc/config/trafficctl -endef - -# The config holds the Telegram bot token and the metrics token, so it must not -# be world-readable before the first save from the UI applies the same mode. -# # rpcd only learns about a plugin when it starts, so without the restart below # every ubus call lands on "Object not found" (-32000) and the dashboard is # empty until the router is rebooted. build-ipk.sh and build-apk.sh have always @@ -32,27 +35,30 @@ endef # packages are the ones built from here through the SDK — so the bug only ever # reached the people installing the published artifacts. # +# The LuCI index and module caches are dropped as well, as luci.mk's default +# postinst does, so a changed menu entry shows up without a re-login. +# # Guarded on IPKG_INSTROOT: when it is set the package is being unpacked into # an image being built, where there is no running rpcd to talk to. +# +# trafficctl-opkg.backup is the copy opkg makes of a modified +# /etc/config/trafficctl when this package, which owned it up to 1.28.x, is +# upgraded to one that no longer does. trafficctl's postinst removes it too, +# but when trafficctl was installed in an earlier run the copy only appears +# with this upgrade. The config itself is kept by trafficctl, so the copy is +# removed only while the real file is there. +# +# The config mode, the services and the cut release on removal belong to the +# backend and live in ../trafficctl/Makefile. define Package/$(PKG_NAME)/postinst #!/bin/sh -chmod 0600 "$${IPKG_INSTROOT}/etc/config/trafficctl" 2>/dev/null || true if [ -z "$${IPKG_INSTROOT}" ]; then - /etc/init.d/rpcd restart 2>/dev/null || true - if [ -x /etc/init.d/trafficctl-telegram ]; then - /etc/init.d/trafficctl-telegram start 2>/dev/null || true + if [ -f /etc/config/trafficctl ]; then + rm -f /etc/config/trafficctl-opkg.backup fi -fi -exit 0 -endef - -# Fail open on removal. A global internet cut left engaged by a package that is -# going away is a lockout with no UI left to undo it — the drop rule would sit -# in nftables with nothing on the router admitting to owning it. -define Package/$(PKG_NAME)/prerm -#!/bin/sh -if [ -z "$${IPKG_INSTROOT}" ] && [ -x /usr/local/bin/trafficctl-cut.sh ]; then - /usr/local/bin/trafficctl-cut.sh release >/dev/null 2>&1 || true + rm -f /tmp/luci-indexcache.* + rm -rf /tmp/luci-modulecache + /etc/init.d/rpcd restart 2>/dev/null || true fi exit 0 endef diff --git a/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/history.js b/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/history.js index 91695f8b1..55c20369e 100644 --- a/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/history.js +++ b/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/history.js @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 'use strict'; 'require view'; 'require rpc'; diff --git a/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/portfw.js b/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/portfw.js index 2f28e3b29..63d42d8d8 100644 --- a/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/portfw.js +++ b/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/portfw.js @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 'use strict'; 'require view'; 'require rpc'; diff --git a/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/settings.js b/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/settings.js index 780bd3428..0ea3cc5c4 100644 --- a/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/settings.js +++ b/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/settings.js @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 'use strict'; 'require view'; 'require rpc'; diff --git a/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/status.js b/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/status.js index 868b0a7f9..8d5921442 100644 --- a/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/status.js +++ b/luci-app-trafficctl/htdocs/luci-static/resources/view/trafficctl/status.js @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 'use strict'; 'require view'; 'require rpc'; @@ -3151,12 +3152,12 @@ return view.extend({ } } if ((data.shape_kbit || 0) > 0) { - parts.push(_('Shaped: 🌊 %s').format(fmtCeiling(data.shape_kbit, data.shape_kbit_up))); + parts.push(_('Shaped: 🌊 %s').format(fmtCeiling(data.shape_kbit, data.shape_kbit_up))); var sm = self._shapeMap[data.ip || searchSelect.getValue()] || {}; - if ((sm.backlog||0) > 0) parts.push(_('Queued: %s').format(fmtBytes(sm.backlog))); + if ((sm.backlog||0) > 0) parts.push(_('Queued: %s').format(fmtBytes(sm.backlog))); if ((sm.bytes||0) > 0) parts.push(_('Passed: %s').format(fmtBytes(sm.bytes))); } else if ((data.rate_limit_kbit || 0) > 0) { - parts.push(_('Speed limit: ⚡ %s').format(fmtCeiling(data.rate_limit_kbit, data.rate_limit_kbit_up))); + parts.push(_('Speed limit: ⚡ %s').format(fmtCeiling(data.rate_limit_kbit, data.rate_limit_kbit_up))); var dm = self._dropMap[data.ip || searchSelect.getValue()] || {}; if ((dm.packets||0) > 0) { parts.push(_('Dropped: 🚫 %d pkts / %s').format(Number(dm.packets) || 0, fmtBytes(dm.bytes||0))); diff --git a/luci-app-trafficctl/po/templates/luci-app-trafficctl.pot b/luci-app-trafficctl/po/templates/luci-app-trafficctl.pot index e3c563754..b56d634cc 100644 --- a/luci-app-trafficctl/po/templates/luci-app-trafficctl.pot +++ b/luci-app-trafficctl/po/templates/luci-app-trafficctl.pot @@ -289,6 +289,9 @@ msgstr "" msgid "Device name" msgstr "" +msgid "Devices" +msgstr "" + msgid "Devices already known:" msgstr "" @@ -421,6 +424,9 @@ msgstr "" msgid "Global internet cut needs nftables (fw4). This router is running iptables." msgstr "" +msgid "Grant access to LuCI Traffic Control" +msgstr "" + msgid "Graph" msgstr "" @@ -448,6 +454,9 @@ msgstr "" msgid "Hardware offload" msgstr "" +msgid "History" +msgstr "" + msgid "History is not recorded by default: it writes to the router's flash on a schedule, and every other persistent store in this app was deliberately kept off that path. Enable it below." msgstr "" @@ -766,6 +775,9 @@ msgstr "" msgid "Port" msgstr "" +msgid "Port Forwards" +msgstr "" + msgid "Port Forwards & Open Ports" msgstr "" diff --git a/luci-app-trafficctl/root/etc/config/trafficctl b/luci-app-trafficctl/root/etc/config/trafficctl deleted file mode 100644 index c28ab02d9..000000000 --- a/luci-app-trafficctl/root/etc/config/trafficctl +++ /dev/null @@ -1,166 +0,0 @@ -config trafficctl 'main' - option enabled '1' - option default_mode 'limiter' - # Write per-device blocks and rate limits to /etc/trafficctl/rules.json so - # the ifup-lan hook can restore them after a reboot. - # - # On by default since #105. It used to ship off, which made the same - # intention behave two ways: a traffic SHAPE persists unconditionally (the - # shaper has to record which HTB class belongs to which device, so - # shapes.json is always written and always restored), while a block or a - # limit vanished on reboot — and the default mode is the limiter, so the - # out-of-the-box path was the one that forgot. That was an unexamined - # default sitting next to a deliberate one, not a design. - # - # The cost is one small write to /etc per rule CHANGE. Not periodic, so - # unlike the byte counters — which live in tmpfs precisely because they are - # rewritten every poll — this is not a flash-wear concern. - # - # NOT the same switch as the global cut's "keep after reboot": that one is - # its own opt-in because an all-devices cut can lock out whoever - # administers the router through a LAN host, so a reboot must be able to - # undo it. See the cut section below. - option persist_rules '1' - # Extra subnets to monitor (space-separated CIDRs), for downstream-router - # clients that have no kernel route on this router. Subnets with a - # "via" route over a LAN interface are picked up automatically. - option extra_subnets '' - # Resolve names for devices with no DHCP lease here (routed/downstream - # clients) via reverse DNS. rdns_server is a space-separated list of - # resolvers tried in order before the system resolver — point it at the - # downstream router (e.g. a MikroTik) so its lease names get used. - option resolve_names '1' - option rdns_server '' - option rdns_ttl '300' - # Optional netifyd (DPI) integration — adds application labels per device. - # Inactive unless the agent is installed and its socket exists. - option netify_enabled '1' - option netify_socket '/var/run/netifyd/netifyd.sock' - # Where flow telemetry is published. Agent v5's unix socket is a - # request/response API that never pushes flows — the socket SINK does, - # usually tcp://127.0.0.1:1780. Empty = auto-detect from - # /etc/netifyd/netify-sink-socket.json. - option netify_endpoint '' - option netify_interval '45' - # IFB device used to shape upload pre-NAT (needs kmod-ifb). - option shape_ifb 'tctl-ifb0' - # Dashboard defaults for a browser that has not chosen its own. The Poll - # and Window chips still override per-browser — these only decide what a - # fresh session starts with, which is the part an admin can usefully set - # once for a router rather than per person (#12). - # - # poll_interval: seconds between live samples; 0 disables polling. - # A smaller number costs a conntrack read per tick on the router, which - # is the overhead the request was about. - # avg_window: seconds of history the displayed speed is averaged over. - # Samples kept per device are avg_window/poll_interval, so a long window - # with a short poll is the expensive combination. - option poll_interval '2' - option avg_window '15' - -config newdevice 'newdevice' - # Apply a limit automatically the first time a device is seen. Off by - # default: it is the only setting here that restricts a device nobody - # has looked at yet. limit_kbit 0 means "no limit" and makes enabled - # a no-op. An existing limit is never overwritten. - option enabled '0' - option limit_kbit '0' - option limit_mode 'limiter' - -config cut 'cut' - # Global internet cut (all devices at once). Only PREFERENCES live here — - # whether the cut is currently engaged never does, because /etc/config - # survives a reboot and this control must not. It is the one control that - # can lock out its own operator: anyone administering the router through a - # LAN host (Tailscale on a NAS, a tunnel from a LAN box, a jump host) loses - # that path while it is on, and a reboot has to be able to undo it. - # - # persist is its own opt-in and deliberately NOT the global persist_rules - # flag: somebody who turned that on so their rate limits survive a reboot - # must not inherit a persistent internet kill as a side effect. - option persist '0' - # Duration offered by default, in seconds; 0 means indefinite — the cut - # stays on until it is switched off. - # - # Indefinite is the default because it is what the feature is FOR: the - # requester's case (#55) is holding a new device off the internet until it - # has been configured, which has no predictable duration, and a cut that - # auto-released halfway through would silently let the device out. The - # safety net is that the engaged state lives in tmpfs, so a reboot always - # restores the internet — a timer is a convenience on top of that, not the - # thing standing between the operator and a permanent lockout. - option default_duration '0' - -config history 'history' - # Durable per-device traffic history (#89, #90). OFF by default: every - # other persistent store in this app was deliberately kept off the write - # path, and this one writes to flash on a schedule. - option enabled '0' - # Where the period files live. One file per accounting period, replaced - # atomically through a temp file in this same directory — so a network - # mount works, but see the note on `interval` before reaching for one. - option dir '/etc/trafficctl/history' - # day | week | month. The period IS the reset: a new period is a new file. - option period 'month' - # Seconds between flushes to durable storage. Floored at 300. Hourly is - # roughly 24 writes a day of a few KB, which is not a wear problem — this - # is the setting to raise if flash wear is the worry, in preference to - # pointing `dir` at a share that can hang when the NAS sleeps. - option interval '3600' - # Seconds between samples of the live accumulator. tmpfs only, no flash. - # Separate from `interval` on purpose and much shorter: with a conntrack - # byte source, a flow that starts and ends between two samples is - # invisible to both, so an hourly sample would miss most short traffic. - option sample_interval '60' - # How many FINISHED periods to retain. The current one is never a - # retention candidate. - option keep '12' - # Also accumulate per-INTERFACE totals (#102), in their own file per - # period. A second series rather than a breakdown of the device one: these - # are the kernel's interface counters, so they include the router's own - # traffic and broadcast, they legitimately disagree with the sum over - # devices, and under flow offloading they are the MORE accurate of the two - # because they come from the driver rather than from conntrack. They also - # answer what the device series cannot: how much went out of wan1 versus - # wan2. Off is reasonable on a single-WAN router. - option interfaces '1' - -config logging 'logging' - option enabled '1' - option log_file '/tmp/trafficctl/activity.log' - option max_lines '500' - option syslog '1' - option log_blocks '1' - option log_ratelimits '1' - option log_shapes '1' - option log_telegram '1' - option log_config '1' - -config telegram 'telegram' - option enabled '0' - option bot_token '' - option chat_id '' - option poll_interval '3' - option notify_new_device '1' - option notify_known_device '0' - option control_enabled '1' - option notify_template '' - option btn_block_inet '1' - option btn_block_wifi '1' - option btn_limiter '1' - option btn_shaper '1' - -config metrics 'metrics' - # Prometheus/OpenMetrics exporter. Off by default: it exposes device - # names, addresses and traffic volumes without a LuCI session. - option enabled '0' - # Shared token for the CGI endpoint (empty = no token check). - option token '' - # Per-device gauges (connections, blocked, limits, name/mac). Costs a - # full summary run per scrape — set 0 for byte counters only. - option state '1' - # Port-forward metrics. - option portfw '1' - # DPI application metrics. Off by default: device x application is a - # cardinality trap on a busy network. - option apps '0' diff --git a/luci-app-trafficctl/root/etc/hotplug.d/dhcp/99-trafficctl-newdevice b/luci-app-trafficctl/root/etc/hotplug.d/dhcp/99-trafficctl-newdevice deleted file mode 100644 index eeb7a13d1..000000000 --- a/luci-app-trafficctl/root/etc/hotplug.d/dhcp/99-trafficctl-newdevice +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Triggered by dnsmasq on DHCP events (add/old/del). -# Available env vars: ACTION, MACADDR, IPADDR, HOSTNAME -# -# Two consumers sit on "this MAC is new": -# * the Telegram bot, which wants a notification -# * the default-limit feature, which applies a rate limit or shape -# -# They are deliberately independent — either can be on without the other — -# and they use different notions of "known". The bot has always keyed off its -# own telegram_known.json, which the bot itself rewrites; the limiter uses the -# seen-MAC ledger in trafficctl-fw.sh, because applying a limit is not an -# action that may be repeated or misfired. - -[ "$ACTION" = "add" ] || exit 0 -[ -n "$MACADDR" ] || exit 0 - -# ── Telegram notification ────────────────────────────────────────────────── - -KNOWN_FILE="/etc/trafficctl/telegram_known.json" -NOTIFY_FLAG="/tmp/trafficctl_tg_newdev" - -if [ "$(uci -q get trafficctl.telegram.enabled)" = "1" ] && - ! grep -q "\"$MACADDR\"" "$KNOWN_FILE" 2>/dev/null; then - mkdir -p "$(dirname "$NOTIFY_FLAG")" - # HOSTNAME comes from the dnsmasq dhcp hotplug environment (see header), - # not a POSIX shell builtin — shellcheck's SC3028 is a false positive. - # shellcheck disable=SC3028 - printf '%s\t%s\t%s\n' "$MACADDR" "${IPADDR:-?}" "${HOSTNAME:-unknown}" >> "$NOTIFY_FLAG" -fi - -# ── Default limit for a device seen for the first time ───────────────────── - -[ "$(uci -q get trafficctl.newdevice.enabled 2>/dev/null)" = "1" ] || exit 0 - -LIMIT_KBIT=$(uci -q get trafficctl.newdevice.limit_kbit 2>/dev/null) -[ -n "$LIMIT_KBIT" ] && [ "$LIMIT_KBIT" -gt 0 ] 2>/dev/null || exit 0 - -. /usr/local/bin/trafficctl-fw.sh - -# The ledger decides what "new" means, so a run that has no ledger yet cannot -# answer the question — and the wrong answer here limits every device on the -# LAN as its lease renews. -# -# Seeding alone would not make that answer trustworthy: the seed reads the -# leases and the neighbour table, and both can be thin or empty early in boot, -# so a device missing from them would look new purely because the router had -# not noticed it yet. The first pass therefore records the baseline and -# applies nothing at all, whatever the seed happened to find. -if ! tctl_seen_ready; then - tctl_seen_seed - tctl_seen_mark "$MACADDR" - logger -t trafficctl "newdevice: seeded the seen-MAC ledger ($(tctl_seen_count) devices); no limit applied on this pass" - exit 0 -fi - -tctl_seen_known "$MACADDR" && exit 0 - -# Mark BEFORE acting. A failure while applying the limit must not leave the -# device unmarked, or every subsequent lease renewal retries — and each retry -# is another chance to race with an operator setting a limit by hand. -tctl_seen_mark "$MACADDR" - -[ -n "$IPADDR" ] || { - logger -t trafficctl "newdevice: $MACADDR is new but has no address yet; no limit applied" - exit 0 -} - -# Never override a limit somebody set deliberately. -if tctl_has_limit "$IPADDR"; then - logger -t trafficctl "newdevice: $IPADDR ($MACADDR) already has a limit; left alone" - exit 0 -fi - -LIMIT_MODE=$(uci -q get trafficctl.newdevice.limit_mode 2>/dev/null) -[ -n "$LIMIT_MODE" ] || LIMIT_MODE="limiter" - -case "$LIMIT_MODE" in - shaper) - TCTL_VIA=newdevice TCTL_SRC=hotplug \ - /usr/local/bin/trafficctl-shape.sh add "$IPADDR" "$LIMIT_KBIT" \ - "shape_$IPADDR" >/dev/null 2>&1 - rc=$? - ;; - *) - TCTL_VIA=newdevice TCTL_SRC=hotplug \ - /usr/local/bin/trafficctl-ratelimit.sh "$IPADDR" "$LIMIT_KBIT" \ - "$(tctl_ratelimit_comment "$IPADDR")" >/dev/null 2>&1 - rc=$? - ;; -esac - -if [ "$rc" = "0" ]; then - # trafficctl-ratelimit.sh writes its own activity-log entry and picks up - # the via=newdevice/src=hotplug exported above, so the limiter path is - # already recorded. trafficctl-shape.sh logs nothing, hence this branch. - [ "$LIMIT_MODE" = "shaper" ] && - tctl_log "shape_set" "$IPADDR" \ - "${LIMIT_KBIT}kbit default for new device $MACADDR" "newdevice" "hotplug" -else - logger -t trafficctl "newdevice: failed to apply ${LIMIT_KBIT}kbit to $IPADDR ($MACADDR)" -fi diff --git a/luci-app-trafficctl/root/etc/hotplug.d/iface/99-trafficctl-shapes b/luci-app-trafficctl/root/etc/hotplug.d/iface/99-trafficctl-shapes deleted file mode 100644 index d05d61b40..000000000 --- a/luci-app-trafficctl/root/etc/hotplug.d/iface/99-trafficctl-shapes +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Restore persistent rules after LAN interface comes up - -. /usr/local/bin/trafficctl-fw.sh - -# Clean up nft monitor table on lan ifdown to avoid stale counters -if [ "$ACTION" = "ifdown" ] && [ "$INTERFACE" = "lan" ]; then - nft delete table inet trafficctl_mon 2>/dev/null - exit 0 -fi - -[ "$ACTION" = "ifup" ] && [ "$INTERFACE" = "lan" ] || exit 0 - -SHAPES_FILE="/etc/trafficctl/shapes.json" -RULES_FILE="/etc/trafficctl/rules.json" - -# Wait for network stack to be ready (up to 10 seconds) -tries=0 -while ! tc qdisc show dev "$(tctl_get_lan_device)" >/dev/null 2>&1; do - tries=$((tries + 1)) - [ "$tries" -ge 20 ] && break - sleep 0.5 2>/dev/null || sleep 1 -done - -# Restore shaping rules -if [ -f "$SHAPES_FILE" ]; then - jsonfilter -i "$SHAPES_FILE" -e '@[*].ip' 2>/dev/null | while read -r ip; do - rate=$(jsonfilter -i "$SHAPES_FILE" -e "@[@.ip='$ip'].rate_kbit" 2>/dev/null) - # Absent on symmetric records, which is all of them before asymmetric - # shaping existed; trafficctl-shape.sh reads empty as "same as - # download". The label has to be passed explicitly because the upload - # rate is the fifth positional. - rate_up=$(jsonfilter -i "$SHAPES_FILE" -e "@[@.ip='$ip'].rate_kbit_up" 2>/dev/null) - if [ -n "$rate" ] && [ "$rate" != "0" ]; then - /usr/local/bin/trafficctl-shape.sh add "$ip" "$rate" "shape_$ip" "$rate_up" || \ - logger -t trafficctl "Failed to restore shape for $ip (${rate}kbit)" - fi - done -fi - -# Restore blocks and ratelimits (if persist enabled) -if [ -f "$RULES_FILE" ] && tctl_persist_enabled; then - # How many records there are comes from the file, not from a constant. - # `seq 0 99` stopped at the hundredth, so every rule past it was silently - # not restored: present in rules.json, shown by the UI as persisted, and - # absent from the kernel after a reboot (#108). Raising 99 to a bigger - # number would only move the cliff. The absent-record sentinel below is - # what ends the loop, exactly as it did before. - # - # (The line that used to sit here piped '@[*]' into a loop whose body was - # `true` — an abandoned attempt at this same iteration that did nothing.) - # Advanced at the TOP, so there is exactly one increment and `continue` - # below cannot skip it. With the increment at the bottom, a record that - # has a type but no ip — a truncated or hand-edited file — would spin the - # loop forever on the same index, inside a boot hook. That is a worse - # failure than the one being fixed here. - idx=-1 - while :; do - idx=$((idx + 1)) - type=$(jsonfilter -i "$RULES_FILE" -e "@[$idx].type" 2>/dev/null) - [ -z "$type" ] && break - ip=$(jsonfilter -i "$RULES_FILE" -e "@[$idx].ip" 2>/dev/null) - param=$(jsonfilter -i "$RULES_FILE" -e "@[$idx].param" 2>/dev/null) - [ -z "$ip" ] && continue - - case "$type" in - block) - tctl_block_add "$ip" "$(tctl_block_comment "$ip")" 2>/dev/null || \ - logger -t trafficctl "Failed to restore block for $ip" - ;; - ratelimit) - # Records written before the mode was stored have none; they - # get the same default the CLI would have given the target, so - # a subnet does not change meaning across the upgrade. - mode=$(jsonfilter -i "$RULES_FILE" -e "@[$idx].mode" 2>/dev/null) - [ -z "$mode" ] && mode=$(tctl_ratelimit_default_mode "$ip") - # Absent on every record written before the directions could - # differ, and on every symmetric one since. tctl_ratelimit_add - # reads that as "same as download", which is what those records - # have always meant. - param_up=$(jsonfilter -i "$RULES_FILE" -e "@[$idx].param_up" 2>/dev/null) - [ -n "$param" ] && [ "$param" != "0" ] && \ - tctl_ratelimit_add "$ip" "$param" "$(tctl_ratelimit_comment "$ip")" "$mode" "$param_up" 2>/dev/null || \ - logger -t trafficctl "Failed to restore ratelimit for $ip (${param}kbit)" - ;; - pfw_pause|pfw_limit) - # ip field is a composite key: scope/proto/ip|local/port - _scope=${ip%%/*}; _rest=${ip#*/} - _proto=${_rest%%/*}; _rest=${_rest#*/} - _pip=${_rest%%/*}; _pport=${_rest#*/} - [ "$_pip" = "local" ] && _pip="-" - if [ "$type" = "pfw_pause" ]; then - /usr/local/bin/trafficctl-portfw.sh pause "$_scope" "$_proto" "$_pip" "$_pport" >/dev/null 2>&1 || \ - logger -t trafficctl "Failed to restore port pause for $_pport" - else - [ -n "$param" ] && [ "$param" != "0" ] && \ - /usr/local/bin/trafficctl-portfw.sh limit "$_scope" "$_proto" "$_pip" "$_pport" "$param" >/dev/null 2>&1 || \ - logger -t trafficctl "Failed to restore port limit for $_pport" - fi - ;; - esac - done -fi - -# Restore a global internet cut the operator explicitly asked to keep. -# -# Guarded on the cut's OWN opt-in, not on tctl_persist_enabled: the global -# persist_rules flag exists so per-device rate limits survive a reboot, and -# inheriting a persistent internet kill from it would be a lockout reached -# through an unrelated decision. Only a cut engaged with "keep after reboot" -# leaves a file in /etc, so the file's existence is the consent. The restore -# path honours the original deadline and refuses to restart the clock. -if [ -f /etc/trafficctl/cut.state ]; then - /usr/local/bin/trafficctl-cut.sh restore >/dev/null 2>&1 || \ - logger -t trafficctl "Failed to restore the global internet cut" -fi - -# Pre-create nft monitor table if software offload is active -if [ "$(tctl_get_offload_mode)" = "software" ]; then - /usr/local/bin/trafficctl-bytes-nft.sh >/dev/null 2>&1 & -fi diff --git a/luci-app-trafficctl/root/etc/init.d/trafficctl-cut b/luci-app-trafficctl/root/etc/init.d/trafficctl-cut deleted file mode 100755 index 221a84326..000000000 --- a/luci-app-trafficctl/root/etc/init.d/trafficctl-cut +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh /etc/rc.common -# shellcheck shell=dash -# Keeper for the global internet cut: enforces the auto-revert deadline and -# re-asserts the rule if the table it lives in is ever taken out from under it. -# -# Not enabled at boot on purpose. The cut's engaged state lives in tmpfs, so -# after a reboot there is normally nothing to keep; the one case that does -# survive — an operator who ticked "keep after reboot" — is restored from the -# ifup-lan hotplug, which starts this service itself. -# -# No respawn either: the loop is meant to end when the cut does, and a -# respawning keeper would restart into an empty state forever. If it dies -# anyway, `trafficctl-cut.sh status` notices and starts a fresh one, and it -# enforces the deadline itself in the meantime. -# -# START/STOP/USE_PROCD are consumed by the sourced /etc/rc.common framework. -# shellcheck disable=SC2034 -START=95 -STOP=10 -USE_PROCD=1 - -start_service() { - procd_open_instance cut - procd_set_param command /usr/local/bin/trafficctl-cut.sh keeper - procd_set_param stdout 1 - procd_set_param stderr 1 - procd_close_instance -} diff --git a/luci-app-trafficctl/root/etc/init.d/trafficctl-history b/luci-app-trafficctl/root/etc/init.d/trafficctl-history deleted file mode 100755 index 15c7dc723..000000000 --- a/luci-app-trafficctl/root/etc/init.d/trafficctl-history +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh /etc/rc.common -# shellcheck shell=dash -# Sampler and flusher for the durable per-period traffic history. -# -# Why a service and not a cron line: there are TWO cadences and they are not -# interchangeable. Sampling must be frequent — with a conntrack source, a flow -# that starts and finishes between two samples is invisible to all of them — -# and costs a tmpfs write. Flushing touches durable storage and is therefore -# rare. One process runs both; see trafficctl-history.sh for the accuracy -# model that forces the split. -# -# Respawns, unlike the cut keeper: this is a steady-state service, and a -# sampler that quietly died would not fail loudly — it would just leave a -# month with a plausible-looking number in it that is far too low. -# -# Enabled at boot, but the loop itself refuses to do anything while -# trafficctl.history.enabled is 0, and re-reads that on every tick. So -# switching history on in the UI does not require knowing there is a service -# behind it. -# -# START/STOP/USE_PROCD are consumed by the sourced /etc/rc.common framework. -# shellcheck disable=SC2034 -START=96 -STOP=10 -USE_PROCD=1 - -start_service() { - procd_open_instance history - procd_set_param command /usr/local/bin/trafficctl-history.sh keeper - procd_set_param respawn 3600 5 0 - procd_set_param stdout 1 - procd_set_param stderr 1 - procd_close_instance -} - -service_triggers() { - # A change to the store location or the intervals is picked up by the loop - # itself, but enabling history for the first time should start sampling - # without waiting for a reboot. - procd_add_reload_trigger "trafficctl" -} diff --git a/luci-app-trafficctl/root/etc/init.d/trafficctl-telegram b/luci-app-trafficctl/root/etc/init.d/trafficctl-telegram deleted file mode 100755 index 9c556cd4b..000000000 --- a/luci-app-trafficctl/root/etc/init.d/trafficctl-telegram +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh /etc/rc.common -# shellcheck shell=dash -# START/STOP/USE_PROCD are consumed by the sourced /etc/rc.common framework. -# shellcheck disable=SC2034 -START=99 -STOP=10 -USE_PROCD=1 - -start_service() { - local enabled - config_load trafficctl - config_get enabled telegram enabled 0 - [ "$enabled" = "1" ] || return 0 - - procd_open_instance telegram - procd_set_param command /usr/local/bin/trafficctl-telegram.sh - procd_set_param stdout 1 - procd_set_param stderr 1 - procd_set_param respawn 3600 5 5 - procd_set_param file /etc/config/trafficctl - procd_close_instance -} - -service_triggers() { - procd_add_reload_trigger "trafficctl" -} - -reload_service() { - stop - start -} diff --git a/luci-app-trafficctl/root/lib/upgrade/keep.d/luci-app-trafficctl b/luci-app-trafficctl/root/lib/upgrade/keep.d/luci-app-trafficctl deleted file mode 100644 index ead234314..000000000 --- a/luci-app-trafficctl/root/lib/upgrade/keep.d/luci-app-trafficctl +++ /dev/null @@ -1 +0,0 @@ -/etc/trafficctl/ diff --git a/luci-app-trafficctl/root/usr/libexec/rpcd/luci.trafficctl b/luci-app-trafficctl/root/usr/libexec/rpcd/luci.trafficctl index aee68ae81..c0e50017c 100755 --- a/luci-app-trafficctl/root/usr/libexec/rpcd/luci.trafficctl +++ b/luci-app-trafficctl/root/usr/libexec/rpcd/luci.trafficctl @@ -1,11 +1,12 @@ #!/bin/sh +# SPDX-License-Identifier: Apache-2.0 # shellcheck shell=dash # rpcd/ubus backend for luci-app-trafficctl. # Provides ubus object "luci.trafficctl" with methods for traffic control. -. /usr/local/bin/trafficctl-fw.sh +. /usr/libexec/trafficctl/trafficctl-fw.sh -SCRIPTS="/usr/local/bin" +SCRIPTS="/usr/libexec/trafficctl" # Strip unsafe chars from label (allow alphanumeric, dash, underscore, dot) sanitize_label() { echo "$1" | tr -cd 'a-zA-Z0-9_.-'; } diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-block.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-block.sh deleted file mode 100755 index 084ad4083..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-block.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Block internet access for a device. -# Usage: trafficctl-block.sh [label] - -. /usr/local/bin/trafficctl-fw.sh - -IP="$1" -LABEL="${2:-block_$IP}" - -if [ -z "$IP" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-block.sh [label]"}' - exit 1 -fi - -if ! tctl_validate_ip "$IP"; then - echo '{"ok":false,"msg":"invalid IP address"}' - exit 1 -fi - -ROUTER_IP=$(ip -4 addr show dev "$(tctl_get_lan_device)" 2>/dev/null | grep -oE 'inet [0-9.]+' | awk '{print $2}' | head -1) -if [ "$IP" = "$ROUTER_IP" ]; then - echo '{"ok":false,"msg":"cannot block the router itself"}' - exit 1 -fi - -COMMENT=$(tctl_block_comment "$IP") -SELF_BLOCK=false -if [ -n "$TCTL_SRC" ] && [ "$TCTL_SRC" = "$IP" ]; then - SELF_BLOCK=true -fi - -if tctl_is_blocked "$IP"; then - echo "{\"ok\":true,\"msg\":\"$IP is already blocked\"}" - exit 0 -fi - -TCTL_BLOCK_IPV6=0 -if tctl_block_add "$IP" "$COMMENT"; then - conntrack -D -s "$IP" >/dev/null 2>&1 - conntrack -D -d "$IP" >/dev/null 2>&1 - # The v4 flush above leaves every established IPv6 flow running, and with - # flow offload those are never re-evaluated against the new rule — the - # device would stay online over v6 indefinitely while the UI reads blocked. - MAC=$(tctl_target_mac "$IP" 2>/dev/null) && tctl_conntrack_flush_v6 "$MAC" - # Same problem one layer further out: a flow already accelerated by the - # NSS firmware is not re-evaluated against this rule either. - tctl_nss_defunct - - tctl_persist_enabled && tctl_persist_save "block" "$IP" "$LABEL" - tctl_log "block" "$IP" "$LABEL" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - - # Say which families are actually covered. Reporting plain success while - # half the traffic walks past the rule is the bug this fixes, so the - # no-MAC case is stated rather than left to be discovered (same reasoning - # as the half-applied-limit messages in trafficctl-ratelimit.sh). - if [ "$TCTL_BLOCK_IPV6" = "1" ]; then - NOTE="" - elif tctl_ip_is_nexthop "$IP"; then - NOTE=" — IPv4 only: $IP is a routed next hop, and a MAC-keyed IPv6 rule would also block everything behind it" - else - NOTE=" — IPv4 only: no MAC known for $IP (no DHCP lease, no neighbour entry), so IPv6 is not covered" - fi - NOTE="$NOTE$(tctl_nss_note)$(tctl_persist_note)" - NSS="$(tctl_nss_status)" - PERSIST=$(tctl_persist_enabled && echo true || echo false) - if [ "$SELF_BLOCK" = "true" ]; then - echo "{\"ok\":true,\"ipv6\":$([ "$TCTL_BLOCK_IPV6" = "1" ] && echo true || echo false),\"nss\":\"$NSS\",\"persist\":$PERSIST,\"msg\":\"internet blocked for $IP (your device — LuCI access preserved)$NOTE\"}" - else - echo "{\"ok\":true,\"ipv6\":$([ "$TCTL_BLOCK_IPV6" = "1" ] && echo true || echo false),\"nss\":\"$NSS\",\"persist\":$PERSIST,\"msg\":\"internet blocked for $IP$NOTE\"}" - fi -else - echo "{\"ok\":false,\"msg\":\"failed to block $IP\"}" - exit 1 -fi diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-bytes-nft.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-bytes-nft.sh deleted file mode 100755 index 3e7f0f312..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-bytes-nft.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Per-device byte counters using nftables maps. -# Works with software flow offload (hook priority -200, before flowtable at -150). -# Output: JSON array -# [{"ip":"…","bytes_in":N,"bytes_out":N,"bytes_tcp":-1,"bytes_udp":-1, -# "src":"nft","degraded":false}] -# -# "degraded" is always false here, and that is the entire point of this script: -# these counters sit ahead of the flowtable, so they keep moving under offload -# where conntrack freezes. If this path is unavailable, trafficctl-bytes.sh -# reports degraded:true instead of quietly handing back frozen numbers. -# -# The counters here are cumulative since the table was created, unlike the -# conntrack sums trafficctl-bytes.sh returns, which cover live flows only. -# "src" lets trafficctl-totals.sh notice the swap and rebaseline instead of -# accumulating the whole map as a single enormous delta. -# -# The protocol split is -1, i.e. "unknown", not 0: a `type ipv4_addr : counter` -# map is keyed by address alone, so there is nothing here to split TCP from UDP -# with. Reporting 0 would render as a device that sent no TCP at all. - -. /usr/local/bin/trafficctl-fw.sh - -command -v nft >/dev/null 2>&1 || { echo '[]'; exit 0; } - -# Create table/maps/chain/rules if not already present (idempotent). -# -# The gate matches the CURRENT rule orientation, not merely "some rule exists". -# Until 1.13.x the maps were keyed the other way round (bytes_in by saddr), so -# a router upgrading from that version already has the chain: a looser check -# would leave the old, inverted rules in place forever and the fix would only -# ever reach fresh installs. -# -# Direction convention, matching trafficctl-bytes.sh and docs/API.md: -# bytes_in = traffic toward the device (download) -> keyed by ip daddr -# bytes_out = traffic from the device (upload) -> keyed by ip saddr -if ! nft list chain inet trafficctl_mon mon_forward 2>/dev/null | grep -q "bytes_in.*daddr"; then - # Drop the old table wholesale rather than appending to it — leaving the - # previous pair of rules in place would double-count every packet. This - # resets the counters once, on upgrade; they are only used for speed - # deltas, so a single discarded sample is the whole cost. - nft delete table inet trafficctl_mon 2>/dev/null - - nft add table inet trafficctl_mon 2>/dev/null - nft add map inet trafficctl_mon bytes_in \ - '{ type ipv4_addr : counter; flags dynamic; }' 2>/dev/null - nft add map inet trafficctl_mon bytes_out \ - '{ type ipv4_addr : counter; flags dynamic; }' 2>/dev/null - nft add chain inet trafficctl_mon mon_forward \ - '{ type filter hook forward priority -200; policy accept; }' 2>/dev/null - nft add rule inet trafficctl_mon mon_forward \ - 'update @bytes_in { ip daddr counter }' 2>/dev/null - nft add rule inet trafficctl_mon mon_forward \ - 'update @bytes_out { ip saddr counter }' 2>/dev/null -fi - -# Dynamic counter maps are unsupported on some kernels ("Not supported"). -# Without this check the maps silently never exist, every rule fails, and the -# script returns [] forever — per-device speed just stops working. -if ! nft list map inet trafficctl_mon bytes_in >/dev/null 2>&1; then - TCTL_FORCE_CONNTRACK=1 exec /usr/local/bin/trafficctl-bytes.sh -fi - -IN=$(nft list map inet trafficctl_mon bytes_in 2>/dev/null) -OUT=$(nft list map inet trafficctl_mon bytes_out 2>/dev/null) - -# Parse: lines look like "192.168.0.100 : counter packets 584 bytes 892341[,]" -printf '%s\n__SEP__\n%s\n' "$IN" "$OUT" | awk ' -/^__SEP__$/ { phase = 1; next } -/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ : counter/ { - ip = ""; val = 0 - for (i = 1; i <= NF; i++) { - if ($i ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) ip = $i - if ($i == "bytes") val = $(i+1) + 0 - } - if (ip != "") { - if (phase == 0) in_b[ip] += val - else out_b[ip] += val - } -} -END { - printf "[" - n = 0 - for (ip in in_b) { - if (n > 0) printf "," - printf "{\"ip\":\"%s\",\"bytes_in\":%.0f,\"bytes_out\":%.0f,\"bytes_tcp\":-1,\"bytes_udp\":-1,\"src\":\"nft\",\"degraded\":false}", \ - ip, in_b[ip], out_b[ip]+0 - n++ - } - for (ip in out_b) { - if (!(ip in in_b)) { - if (n > 0) printf "," - printf "{\"ip\":\"%s\",\"bytes_in\":0,\"bytes_out\":%.0f,\"bytes_tcp\":-1,\"bytes_udp\":-1,\"src\":\"nft\",\"degraded\":false}", \ - ip, out_b[ip] - n++ - } - } - printf "]\n" -} -' diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-bytes.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-bytes.sh deleted file mode 100755 index ff6e6d58a..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-bytes.sh +++ /dev/null @@ -1,138 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Per-device byte counters from conntrack (for speed calculation). -# Output: JSON array -# [{"ip":"…","bytes_in":N,"bytes_out":N,"bytes_tcp":N,"bytes_udp":N, -# "src":"ct","degraded":false}] -# -# "src" names the counter source. trafficctl-totals.sh accumulates these into -# lifetime totals and the two sources have unrelated magnitudes (conntrack -# reports only live flows, the nft maps count since the table was built), so it -# has to be able to tell a source switch from a burst of traffic. -# -# "degraded" says whether the numbers can be believed AT ALL — see below. It is -# separate from "src" on purpose: src is about magnitude (and drives the -# rebaseline), degraded is about trust, and conflating them would make a change -# in trust look like a change of counter and throw away a delta for nothing. -# -# bytes_tcp / bytes_udp carry both directions summed, and exist only on the -# conntrack path — nft counter maps are keyed by address alone and cannot split -# by protocol, so trafficctl-bytes-nft.sh reports -1 there. -1 rather than 0: -# "unknown" and "no TCP traffic" must not render as the same number. - -. /usr/local/bin/trafficctl-fw.sh - -# Any offload mode (software, hardware, hardware-counter) bypasses conntrack counters -# for fast-path packets. Use nftables counters at forward priority -200 (before the -# flowtable at -150) which capture every packet regardless of offload state. -# Only pure "none" mode has accurate conntrack counters. -# Modes whose counters ARE synced back to conntrack ("*-counter") keep the -# conntrack path accurate; only the uncountered ones need the nft fallback. -# TCTL_FORCE_CONNTRACK is set by that fallback when the kernel lacks dynamic -# counter maps, so we don't bounce between the two. -_offload=$(tctl_get_offload_mode) -_uncountered=0 -case "$_offload" in - none|*-counter) ;; - *) - _uncountered=1 - [ "$TCTL_FW" = "nft" ] && [ -z "$TCTL_FORCE_CONNTRACK" ] && \ - exec /usr/local/bin/trafficctl-bytes-nft.sh - ;; -esac - -# Reaching here with uncountered offload means the nft fallback was unavailable -# and we are about to read counters the forwarding path does not update. -# -# Two ways in, and the second is easy to miss: -# * TCTL_FORCE_CONNTRACK — bytes-nft.sh bounced back because the kernel has -# no dynamic counter map support. Observed on real hardware. -# * fw3/iptables — there is no nft fallback to reach in the first place. -# -# The numbers that follow are not merely imprecise, they are FROZEN for every -# offloaded flow: they stop moving while traffic continues. Left unflagged, a -# lifetime total accumulated from them looks authoritative and simply stalls, -# which reads as stale statistics rather than as a broken counter — the same -# shape as the 2 GiB %d freeze (#56), and harder to notice than the tiny live -# values that prompted #26, because the number is plausible. -_degraded=false -[ "$_uncountered" = "1" ] && _degraded=true - -# All monitored subnets (connected LANs + routed downstream subnets + -# trafficctl.main.extra_subnets), as awk membership spec. -MATCH_SPEC=$(tctl_monitored_subnets | awk '{printf "%s%s:%s:%s",(NR>1?" ":""),$2,$3,$4}') -[ -z "$MATCH_SPEC" ] && { echo '[]'; exit 0; } - -# Router-owned IPv4 addresses, excluded from the NAT fallback below. -LOCAL_IPS=$(ip -4 addr show 2>/dev/null | awk '/inet /{split($2,a,"/");print a[1]}' | tr '\n' ' ') - -cat /proc/net/nf_conntrack 2>/dev/null | awk -v spec="$MATCH_SPEC" -v localips="$LOCAL_IPS" -v degraded="$_degraded" ' -function ip2int(ip, a) { - split(ip, a, ".") - return a[1]*16777216 + a[2]*65536 + a[3]*256 + a[4] -} -function is_lan(ip, si, k) { - si = ip2int(ip) - for (k = 1; k <= ns; k++) - if (si - (si % blk[k]) == base[k]) return 1 - return 0 -} -BEGIN { - printf "[" - ns = split(spec, parts, " ") - for (k = 1; k <= ns; k++) { - split(parts[k], kv, ":") - base[k] = kv[1] + 0; blk[k] = kv[2] + 0 - } - nl = split(localips, lp, " ") - for (k = 1; k <= nl; k++) if (lp[k] != "") islocal[lp[k]] = 1 -} -{ - src=""; osrc=""; rdst=""; nsrc=0; bytes_orig=0; bytes_reply=0; bc=0; proto="" - for (i=1; i<=NF; i++) { - # The L4 protocol is a bare word in the header fields ("ipv4 2 tcp 6 …"), - # before any key=value pair, so it is matched by value like summary.sh. - if ($i == "tcp") proto="tcp" - else if ($i == "udp") proto="udp" - if ($i ~ /^src=/) { - v = substr($i, 5) - nsrc++ - if (nsrc == 1) osrc = v - if (src == "" && is_lan(v)) src = v - } - if (nsrc == 2 && rdst == "" && $i ~ /^dst=/) rdst = substr($i, 5) - if ($i ~ /^bytes=/) { - v = substr($i, 7) + 0 - bc++ - if (bc == 1) bytes_orig = v - else if (bc == 2) bytes_reply = v - } - } - # NAT fallback: flow was SNAT/masqueraded here (reply dst != original - # src), so the original src is a forwarded client even though it is not - # in any monitored subnet (e.g. behind a downstream router). - if (src == "" && osrc != "" && rdst != "" && rdst != osrc && \ - osrc ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/ && !(osrc in islocal)) - src = osrc - if (src != "") { - key = src - in_total[key] += bytes_reply - out_total[key] += bytes_orig - # Both directions, unlike the per-direction sums above: the protocol - # split answers how much of the traffic for this device was TCP, which - # is not a question about direction. - if (proto == "tcp") tcp_total[key] += bytes_orig + bytes_reply - else if (proto == "udp") udp_total[key] += bytes_orig + bytes_reply - } -} -END { - n = 0 - for (ip in in_total) { - if (n > 0) printf "," - printf "{\"ip\":\"%s\",\"bytes_in\":%.0f,\"bytes_out\":%.0f,\"bytes_tcp\":%.0f,\"bytes_udp\":%.0f,\"src\":\"ct\",\"degraded\":%s}", \ - ip, in_total[ip], out_total[ip], tcp_total[ip]+0, udp_total[ip]+0, degraded - n++ - } - printf "]\n" -} -' diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-cut.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-cut.sh deleted file mode 100755 index d85161d63..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-cut.sh +++ /dev/null @@ -1,597 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Global internet cut — every device loses the internet, the LAN keeps working. -# -# Usage: -# trafficctl-cut.sh engage [persist] 0 seconds = indefinite -# trafficctl-cut.sh release -# trafficctl-cut.sh status -# trafficctl-cut.sh restore (boot path, from the ifup-lan hotplug) -# trafficctl-cut.sh tick (one keeper iteration) -# trafficctl-cut.sh keeper (the procd-supervised loop) -# -# ── Why an own table, not `inet fw4` ────────────────────────────────────── -# -# Per-device blocks insert into `inet fw4 forward`, and fw4 tears that table -# down and rebuilds it on every reload — a plain firewall config change from -# any other app is enough. The restore hook only fires on `ifup lan`, so a bare -# `fw4 reload` drops the rule with nothing to put it back. For per-device -# blocks that is a known wart; for a control whose whole purpose is "this -# device must not reach the internet while I set it up" it is the worst -# possible failure: the rule lapses, the toggle still reads ON, and the new TV -# is on the internet while the UI says it is not. -# -# So the cut lives in its own table (`inet tctl_cut`), the way port-forward -# control already uses `inet tctl_pfw` and the limiter uses `netdev -# tm_ratelimit`. fw4 deletes its own tables, not ours, so the rule survives a -# firewall rebuild structurally rather than by being noticed and re-added. -# The keeper below still re-asserts it, because a wholesale `nft flush ruleset` -# (or `fw4 flush`) takes every table with it. -# -# ── Why prerouting, not just forward ────────────────────────────────────── -# -# A forward-hook rule only sees traffic the router FORWARDS. On a router -# running a transparent proxy — podkop/sing-box, passwall, homeproxy — that is -# not where client traffic goes. TPROXY intercepts at prerouting and delivers -# the packet LOCALLY; the proxy then originates its own outbound connections -# from the router. Neither leg is forwarded: client→router is input, -# router→internet is output. A forward-only cut misses all of it, and on such a -# router that is the bulk of the traffic, not an edge case. The toggle would -# read ON, the rule would genuinely be present, and the new TV would keep -# browsing — the exact lie this feature exists to not tell. -# -# So the primary rule sits at prerouting priority -300, ahead of every hook -# anything else is likely to use, and catches traffic on the way in, before -# anything can divert it. The forward chain is kept as a second layer. -# -# Traffic the router originates ITSELF never traverses prerouting (it goes -# output→postrouting), so the proxy's own outbound path, the router's VPN -# tunnels and its DNS are untouched — only traffic arriving FROM a LAN device -# is considered. -# -# ── Why interface matching ──────────────────────────────────────────────── -# -# Both chains say the same thing: "traffic from a LAN device that is not going -# to stay on the LAN is dropped". Interfaces, not addresses, because: -# -# * IPv4 and IPv6 are both cut by the same rules. The per-device block -# matches `ip saddr` and is v4-only; for a global cut a device holding a -# SLAAC address would walk straight out over v6 while the UI claimed the -# internet was off. -# * LAN↔LAN keeps working, including between VLANs/bridges and out to -# downstream routed subnets — those all resolve to a LAN device. -# * Same-subnet traffic is bridged and reaches neither hook at all. -# -# At prerouting there is no `oifname` yet — the routing decision has not -# happened — so the equivalent question is asked of the FIB: `fib daddr . iif -# oifname` is the interface the packet would leave by. `fib daddr type local` -# answers the more important one first: is this addressed to the router? LuCI, -# SSH, DNS, DHCP and a VPN terminating ON the router all match it and are -# accepted before any of the LAN-device reasoning is consulted, so they survive -# even if that reasoning is wrong. -# -# Inbound flows (WAN→LAN through a port forward) are deliberately NOT cut: -# those exist only where the operator created a forward, this app already has -# a dedicated control for them, and killing them would remove yet another -# remote-admin path from an operator who is about to lose their LAN-hosted one. - -. /usr/local/bin/trafficctl-fw.sh - -# Same priority as port-forward control: after DNAT, and before fw4's -# flowtable rule at filter priority 0 — otherwise an offloaded flow would -# bypass the drop entirely. -CUT_PRIO="-190" -# Earlier than any prerouting hook something else is likely to use: raw (-300) -# sits ahead of conntrack (-200), mangle (-150) and dstnat (-100). podkop / -# sing-box TPROXY at dstnat; passwall and homeproxy at mangle. -CUT_PRE_PRIO="-300" -CUT_COMMENT="tctl_cut" - -# The engaged state lives in tmpfs, and that is the whole point: a reboot must -# clear it. This is the one control in the app that can lock out its own -# operator — anyone administering the router through a LAN host (Tailscale on a -# NAS, a Cloudflare tunnel from a LAN box, a jump host) loses that path when -# the cut goes on, and persistent state would mean a reboot does not bring it -# back either. The remedy would become "be physically present". -CUT_RUN_DIR="/var/run/trafficctl" -CUT_STATE="/var/run/trafficctl/cut.state" - -# The opt-in copy. Written only when the operator ticks "keep after reboot", -# and deliberately NOT listed in root/lib/upgrade/keep.d: a cut that outlives a -# firmware upgrade is strictly worse than one that outlives a reboot. -CUT_PERSIST_STATE="/etc/trafficctl/cut.state" - -CUT_INIT="/etc/init.d/trafficctl-cut" -CUT_TICK_SECS=5 - -# 0 means indefinite. Anything else is clamped to a sane window: a minute is -# the shortest cut worth the conntrack flush, a week the longest that still -# reads as "temporary". -CUT_MIN_SECS=60 -CUT_MAX_SECS=604800 - -now() { date +%s; } - -json_esc() { printf '%s' "$1" | sed 's/\\/\\\\/g;s/"/\\"/g'; } - -fail() { - printf '{"ok":false,"msg":"%s"}\n' "$(json_esc "$1")" - exit 1 -} - -# ── LAN device set ───────────────────────────────────────────────────────── - -# The devices whose traffic stays local. Empty is not an answer we can act on: -# "drop everything not leaving via a LAN device" with no LAN devices means -# "drop everything forwarded", which blackholes the LAN this feature promises -# to keep working. Callers must refuse rather than guess. -cut_lan_devices() { - tctl_get_lan_devices -} - -# nft anonymous set literal: { "br-lan", "br-guest" } -cut_lan_set() { - local devs="$1" dev out="" - for dev in $devs; do - if [ -n "$out" ]; then - out="$out, \"$dev\"" - else - out="\"$dev\"" - fi - done - printf '{ %s }' "$out" -} - -# ── nft plumbing ─────────────────────────────────────────────────────────── - -cut_supported() { - [ "$TCTL_FW" = "nft" ] -} - -# Live state, which is the only honest answer to "is the internet cut?". -# The full quoted comment is matched, not a substring: the codebase learned -# that lesson when unblocking 192.168.1.1 deleted the rule for 192.168.1.10. -cut_rule_present() { - nft list table inet tctl_cut 2>/dev/null | grep -qF "\"$CUT_COMMENT\"" -} - -# "full" once the prerouting chain is in place, "forward" when only the -# forward chain could be installed. Read from the kernel, never remembered. -cut_coverage() { - local dump - dump=$(nft list table inet tctl_cut 2>/dev/null) || { echo none; return 1; } - printf '%s' "$dump" | grep -qF "\"$CUT_COMMENT\"" || { echo none; return 1; } - if printf '%s' "$dump" | grep -q "hook prerouting"; then - echo full - else - echo forward - fi -} - -# Is something on this router intercepting traffic transparently? -# -# podkop/sing-box, passwall and homeproxy all TPROXY at prerouting and deliver -# the packet LOCALLY — it is never forwarded, so the forward hook never sees -# it. A forward-only cut on such a router misses the bulk of the traffic while -# the UI reports the internet as off, which is precisely the failure this -# feature exists to not have. Only consulted on the degraded path, because -# listing the whole ruleset is not something to do on every UI poll. -cut_proxy_intercept() { - nft list ruleset 2>/dev/null | grep -q 'tproxy' -} - -# The ruleset, emitted as one atomic `nft -f` transaction. -# -# Atomic matters more than it looks. Adding these rules one at a time would, on -# a kernel without nft_fib, apply the accepts that parse and the final drop — -# and a prerouting drop without its router-local escape hatch black-holes the -# LAN including LuCI. All-or-nothing means a kernel that cannot do this gets -# nothing at all, and we fall back deliberately instead of by accident. -# -# Rule order is a safety property, not a style choice. `fib daddr type local` -# comes FIRST, before anything that depends on the LAN device list being -# correct: whatever else is wrong, traffic addressed to the router — LuCI, SSH, -# DNS, DHCP, a VPN terminating here — is accepted. -cut_ruleset() { - local devs="$1" mode="$2" set_expr pre="" - set_expr=$(cut_lan_set "$devs") - - if [ "$mode" = "full" ]; then - pre=$(cat </dev/null) || return 1 - printf '%s' "$dump" | grep -qF "\"$CUT_COMMENT\"" || return 1 - [ "$mode" = "full" ] || return 0 - printf '%s' "$dump" | grep -q "hook prerouting" || return 1 - printf '%s' "$dump" | grep -q "fib daddr type" || return 1 - return 0 -} - -cut_install_rule() { - local devs="$1" - - # Preferred: catch traffic at prerouting, before anything can divert it. - if cut_ruleset "$devs" full | nft -f - 2>/dev/null && cut_verify full; then - return 0 - fi - # The prerouting chain did not load — almost certainly a kernel without the - # fib expression (nft_fib_inet). Fall back to forward-only, which is - # correct on a plain router; do_engage decides whether that is good enough - # on THIS router. - nft delete table inet tctl_cut 2>/dev/null - if cut_ruleset "$devs" forward | nft -f - 2>/dev/null && cut_verify forward; then - return 0 - fi - nft delete table inet tctl_cut 2>/dev/null - return 1 -} - -cut_remove_rule() { - nft delete table inet tctl_cut 2>/dev/null - return 0 -} - -# Established flows survive a new drop rule — conntrack keeps them, and any -# flow already handed to the flowtable bypasses the forward hook altogether. -# Without this the toggle reads ON while the TV finishes its firmware download. -# -# Flushed per monitored subnet rather than with a global `conntrack -F`, which -# would also tear down the operator's own sessions to unrelated hosts. -cut_flush_conntrack() { - local spec base block cidr mask bits - - # Whether the flush WORKED cannot be read off the exit status: `conntrack - # -D` reports failure both when the tool is broken and when there was - # simply nothing to delete, and on a quiet network the second is normal. - # So capability is probed once instead — `-C` is a cheap count that fails - # if the tool is missing or nf_conntrack is not loaded — and that is the - # only thing the caller is told about. - command -v conntrack >/dev/null 2>&1 || return 1 - conntrack -C >/dev/null 2>&1 || return 1 - - # Iterated with `for` rather than a pipeline so the loop stays in this - # shell; a `| while` body is a subshell and could report nothing back. - for spec in $(tctl_monitored_subnets 2>/dev/null | awk '{print $2 ":" $3}'); do - base=${spec%%:*} - block=${spec##*:} - [ -n "$base" ] && [ -n "$block" ] || continue - # block = 2^(32-mask); turn it back into a prefix length. - bits=0 - mask="$block" - while [ "$mask" -gt 1 ] 2>/dev/null; do - mask=$((mask / 2)) - bits=$((bits + 1)) - done - cidr="$((base >> 24 & 255)).$((base >> 16 & 255)).$((base >> 8 & 255)).$((base & 255))/$((32 - bits))" - conntrack -D -s "$cidr" >/dev/null 2>&1 - conntrack -D -d "$cidr" >/dev/null 2>&1 - done - return 0 -} - -# ── state files ──────────────────────────────────────────────────────────── - -# Deliberately a plain key=value file and not uci: /etc/config survives a -# reboot, and the engaged state must not. -cut_state_write() { - local file="$1" expires="$2" persist="$3" started="$4" - mkdir -p "$(dirname "$file")" 2>/dev/null - { - printf 'expires_at=%s\n' "$expires" - printf 'persist=%s\n' "$persist" - printf 'started_at=%s\n' "$started" - } > "$file.tmp" 2>/dev/null && mv "$file.tmp" "$file" -} - -# Reads one field without sourcing the file — a state file is written by root -# but parsing it as shell would turn any future corruption into execution. -cut_state_get() { - local file="$1" key="$2" val - [ -f "$file" ] || return 1 - val=$(sed -n "s/^${key}=\\(.*\\)\$/\\1/p" "$file" 2>/dev/null | head -1) - case "$val" in - ''|*[!0-9]*) return 1 ;; - esac - printf '%s' "$val" -} - -cut_active() { - [ -f "$CUT_STATE" ] -} - -# Has a timed cut run out? An indefinite cut (expires_at=0) never has. -cut_expired() { - local file="${1:-$CUT_STATE}" exp - exp=$(cut_state_get "$file" expires_at) || return 1 - [ "$exp" = "0" ] && return 1 - [ "$(now)" -ge "$exp" ] -} - -# ── keeper lifecycle ─────────────────────────────────────────────────────── - -cut_keeper_running() { - pgrep -f "trafficctl-cut.sh keeper" >/dev/null 2>&1 -} - -cut_keeper_start() { - [ -x "$CUT_INIT" ] || return 0 - cut_keeper_running && return 0 - "$CUT_INIT" start >/dev/null 2>&1 - return 0 -} - -cut_keeper_stop() { - [ -x "$CUT_INIT" ] || return 0 - "$CUT_INIT" stop >/dev/null 2>&1 - return 0 -} - -# ── actions ──────────────────────────────────────────────────────────────── - -# secs: 0 (indefinite) or CUT_MIN_SECS..CUT_MAX_SECS -cut_validate_duration() { - local secs="$1" - case "$secs" in - ''|*[!0-9]*) return 1 ;; - esac - [ "$secs" = "0" ] && return 0 - [ "$secs" -ge "$CUT_MIN_SECS" ] && [ "$secs" -le "$CUT_MAX_SECS" ] -} - -# expires_at is passed in as an ABSOLUTE deadline so the boot-restore path can -# reuse this without restarting the clock. Storing a remaining duration and -# counting down again from boot would silently extend every restored cut. -do_engage() { - local expires="$1" persist="$2" quiet="$3" - local devs - - cut_supported || fail "global cut needs nftables (fw4); this system is running iptables" - - devs=$(cut_lan_devices) - if [ -z "$devs" ]; then - fail "no LAN interfaces found — refusing, a cut with no LAN to spare would black-hole the LAN too" - fi - - if ! cut_install_rule "$devs"; then - cut_remove_rule - fail "failed to install the cut rule" - fi - - # Degraded coverage plus a transparent proxy is the one combination where - # the cut would be a lie: the proxy intercepts at prerouting and delivers - # locally, so a forward-only rule never sees the traffic it claims to be - # stopping. Refusing, loudly, beats a switch that does nothing. - if [ "$(cut_coverage)" = "forward" ] && cut_proxy_intercept; then - cut_remove_rule - fail "this router intercepts traffic with a transparent proxy (TPROXY — podkop/sing-box, passwall or similar), and the prerouting chain could not be installed on this kernel (no nft_fib?). A forward-only cut would miss proxied traffic while reporting success, so it is refused rather than faked." - fi - - cut_state_write "$CUT_STATE" "$expires" "$persist" "$(now)" - if [ "$persist" = "1" ]; then - cut_state_write "$CUT_PERSIST_STATE" "$expires" "$persist" "$(now)" - else - rm -f "$CUT_PERSIST_STATE" 2>/dev/null - fi - - local ct_msg="" - cut_flush_conntrack || ct_msg=" (conntrack unavailable — connections opened before now may linger)" - - cut_keeper_start - tctl_log "cut" "all" "expires=$expires persist=$persist" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - - [ "$quiet" = "quiet" ] && return 0 - emit_status "internet cut for all devices${ct_msg}" -} - -# Removing the rule comes first and stopping the keeper last: the keeper may be -# the caller, and its own service stop arrives as a SIGTERM. Ordered this way an -# interrupted release still leaves the internet on, never off. -do_release() { - local quiet="$1" - cut_remove_rule - rm -f "$CUT_STATE" "$CUT_PERSIST_STATE" 2>/dev/null - tctl_log "uncut" "all" "" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - cut_keeper_stop - [ "$quiet" = "quiet" ] && return 0 - emit_status "internet restored for all devices" -} - -# Boot path. Only a cut the operator explicitly asked to keep leaves a file in -# /etc, so the mere existence of one is the opt-in — the global persist_rules -# flag is NOT consulted, because somebody who enabled that so their rate limits -# survive a reboot must not inherit a persistent internet kill from it. -do_restore() { - local exp persist - [ -f "$CUT_PERSIST_STATE" ] || return 0 - persist=$(cut_state_get "$CUT_PERSIST_STATE" persist) || persist=0 - if [ "$persist" != "1" ]; then - rm -f "$CUT_PERSIST_STATE" 2>/dev/null - return 0 - fi - exp=$(cut_state_get "$CUT_PERSIST_STATE" expires_at) || exp=0 - if cut_expired "$CUT_PERSIST_STATE"; then - # The deadline passed while the router was down. Honour it rather than - # starting the countdown again, which would extend the cut by a full - # duration every reboot. - rm -f "$CUT_PERSIST_STATE" 2>/dev/null - logger -t trafficctl "global internet cut expired while down — not restored" 2>/dev/null - return 0 - fi - do_engage "$exp" 1 quiet -} - -# One keeper iteration. -# 0 = still engaged, keep going -# 2 = nothing left to do, the keeper should stop -do_tick() { - local devs - if ! cut_active; then - cut_rule_present && cut_remove_rule - return 2 - fi - if cut_expired; then - do_release quiet - logger -t trafficctl "global internet cut expired — internet restored" 2>/dev/null - return 2 - fi - if ! cut_rule_present; then - # Something took the table with it — a `nft flush ruleset`, or an - # `fw4 flush`. Put it back and say so, because a cut that lapsed even - # briefly is worth a log line. - devs=$(cut_lan_devices) - if [ -n "$devs" ] && cut_install_rule "$devs"; then - logger -t trafficctl "global internet cut re-asserted after the rule disappeared" 2>/dev/null - fi - fi - return 0 -} - -# Supervised by procd, started on engage and stopped on release. No respawn: -# the loop is meant to end when the cut does, and a respawning keeper would -# restart into an empty state over and over. If it dies anyway, `status` -# notices (keeper_running=false), re-enforces the deadline itself and starts a -# fresh one — the UI polls it, so the auto-revert is not staked on one process. -do_keeper() { - # The deadline is re-read from the clock on every pass rather than slept - # through in one go: a router boots with a bogus clock until NTP lands, and - # a single long sleep computed before the step would strand the cut. - while :; do - do_tick || break - sleep "$CUT_TICK_SECS" - done - return 0 -} - -emit_status() { - local msg="$1" - local active=false present=false persist=false keeper=false supported=false - local exp=0 remaining=0 started=0 devs coverage - - cut_supported && supported=true - devs=$(cut_lan_devices | tr '\n' ' ' | sed 's/ *$//') - - if cut_active; then - active=true - exp=$(cut_state_get "$CUT_STATE" expires_at) || exp=0 - started=$(cut_state_get "$CUT_STATE" started_at) || started=0 - [ "$(cut_state_get "$CUT_STATE" persist)" = "1" ] && persist=true - if [ "$exp" != "0" ]; then - remaining=$((exp - $(now))) - [ "$remaining" -lt 0 ] && remaining=0 - fi - fi - cut_rule_present && present=true - cut_keeper_running && keeper=true - - # "full" = the prerouting chain is in place and transparently proxied - # traffic is caught too; "forward" = only forwarded traffic is, which the - # UI must surface rather than bury. - coverage=$(cut_coverage) - - printf '{"ok":true,"active":%s,"rule_present":%s,"supported":%s,"coverage":"%s","expires_at":%s,"remaining":%s,"started_at":%s,"persist":%s,"keeper_running":%s,"lan_devices":"%s","default_duration":%s,"default_persist":%s,"msg":"%s"}\n' \ - "$active" "$present" "$supported" "$coverage" "$exp" "$remaining" "$started" \ - "$persist" "$keeper" "$(json_esc "$devs")" \ - "$(cut_default_duration)" \ - "$(cut_default_persist)" \ - "$(json_esc "$msg")" -} - -cut_default_duration() { - local d - d=$(uci -q get trafficctl.cut.default_duration 2>/dev/null) - case "$d" in - ''|*[!0-9]*) echo 0 ;; - *) echo "$d" ;; - esac -} - -cut_default_persist() { - [ "$(uci -q get trafficctl.cut.persist 2>/dev/null)" = "1" ] && echo true || echo false -} - -# Reported state is reconciled first, and it is reconciled against the KERNEL, -# not against the state file. Two failures are being headed off: -# * a timed cut whose keeper died would otherwise read ON forever; -# * a state file left behind by a rule that lapsed would read ON while the -# traffic flows. `rule_present` is reported separately for exactly that, -# and the UI must never render ON without it. -do_status() { - if cut_active && cut_expired; then - do_release quiet - emit_status "the cut expired and the internet was restored" - return 0 - fi - # A cut that is still on but has lost its keeper gets one back, so the - # auto-revert does not depend on a single process staying alive. - if cut_active && ! cut_keeper_running; then - cut_keeper_start - fi - emit_status "" -} - -case "$1" in -engage) - SECS="${2:-0}" - PERSIST="${3:-0}" - cut_validate_duration "$SECS" || \ - fail "duration must be 0 (indefinite) or between $CUT_MIN_SECS and $CUT_MAX_SECS seconds" - case "$PERSIST" in - 0|1) ;; - *) fail "persist must be 0 or 1" ;; - esac - if [ "$SECS" = "0" ]; then - EXPIRES=0 - else - EXPIRES=$(( $(now) + SECS )) - fi - mkdir -p "$CUT_RUN_DIR" 2>/dev/null - do_engage "$EXPIRES" "$PERSIST" "" - ;; -release) - do_release "" - ;; -status) - do_status - ;; -restore) - do_restore - ;; -tick) - do_tick - ;; -keeper) - do_keeper - ;; -*) - fail "usage: trafficctl-cut.sh engage [persist] | release | status | restore" - ;; -esac diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-device.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-device.sh deleted file mode 100755 index 510b75f88..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-device.sh +++ /dev/null @@ -1,408 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Detailed device info with connections. -# Usage: trafficctl-device.sh [--rdns] [--proto tcp|udp|all] - -. /usr/local/bin/trafficctl-fw.sh - -LAN_DEV=$(tctl_get_lan_device) - -# Parse arguments -IP="" -DO_RDNS=0 -PROTO_FILTER="all" - -while [ $# -gt 0 ]; do - case "$1" in - --rdns) DO_RDNS=1 ;; - --proto) shift; PROTO_FILTER="$1" ;; - *) [ -z "$IP" ] && IP="$1" ;; - esac - shift -done - -if [ -z "$IP" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-device.sh [--rdns] [--proto tcp|udp|all]"}' - exit 1 -fi - -if ! tctl_validate_ip "$IP"; then - echo '{"ok":false,"msg":"invalid IP address"}' - exit 1 -fi - -# Get device name from DHCP leases -NAME="" -MAC="" -if [ -f /tmp/dhcp.leases ]; then - NAME=$(awk -v ip="$IP" '$3 == ip {print $4}' /tmp/dhcp.leases | head -1) - MAC=$(awk -v ip="$IP" '$3 == ip {print $2}' /tmp/dhcp.leases | head -1) -fi -if [ -z "$MAC" ]; then - MAC=$(ip neigh show "$IP" 2>/dev/null | grep -oE '[0-9a-fA-F:]{17}' | head -1) -fi -MAC=$(echo "$MAC" | tr 'A-F' 'a-f') -[ "$NAME" = "*" ] && NAME="" - -# Same precedence as the summary: manual alias wins, then the lease name above, -# then cached reverse DNS (the only automatic source for routed devices). -ALIAS=$(awk -v ip="$IP" '$1 == ip {sub(/^[^ ]+ +/, ""); print; exit}' /etc/trafficctl/names 2>/dev/null) -[ -n "$ALIAS" ] && NAME="$ALIAS" -if [ -z "$NAME" ] && [ "$(uci -q get trafficctl.main.resolve_names 2>/dev/null)" != "0" ]; then - NAME=$(awk -v ip="$IP" '$1 == ip && $2 != "-" {print $2; exit}' /tmp/trafficctl_rdns_cache 2>/dev/null) -fi -[ -z "$NAME" ] && NAME="*" - -# Detect connection type — specific interface or band -CONN_TYPE="" -CONN_LAST="" -CONN_CACHE="/tmp/trafficctl_conn_cache" -[ -f "$CONN_CACHE" ] || : > "$CONN_CACHE" - -if ! tctl_ip_in_lan "$IP"; then - # Not on any connected LAN subnet — reached via a downstream router. - CONN_TYPE="routed" -elif [ -n "$MAC" ]; then - _wifi_stations=$( - for _wi in $(iw dev 2>/dev/null | awk '/Interface/{print $2}'); do - _ch=$(iw dev "$_wi" info 2>/dev/null | awk '/channel/{print $2}') - _band="" - if [ -n "$_ch" ]; then - if [ "$_ch" -le 14 ] 2>/dev/null; then _band="2.4G" - elif [ "$_ch" -le 177 ] 2>/dev/null; then _band="5G" - else _band="6G"; fi - fi - iw dev "$_wi" station dump 2>/dev/null | awk -v iface="$_wi" -v band="$_band" \ - '/Station/{print tolower($2), iface, band}' - done - ) - WIFI_LINE=$(echo "$_wifi_stations" | grep -i "$MAC") - if [ -n "$WIFI_LINE" ]; then - CONN_TYPE=$(echo "$WIFI_LINE" | awk '{print $3}') - [ -z "$CONN_TYPE" ] && CONN_TYPE="wifi" - else - BR_PORT=$(brctl showmacs "$LAN_DEV" 2>/dev/null | awk -v mac="$MAC" ' - NR>1 && $3=="no" && tolower($2)==mac {print $1; exit}') - if [ -n "$BR_PORT" ]; then - PORT_IFACE="" - for pdir in /sys/class/net/"$LAN_DEV"/brif/*/; do - [ -d "$pdir" ] || continue - pno=$(cat "${pdir}port_no" 2>/dev/null) - [ -z "$pno" ] && continue - if [ $(( pno )) -eq "$BR_PORT" ] 2>/dev/null; then - PORT_IFACE=$(basename "$pdir") - break - fi - done - case "$PORT_IFACE" in - phy*|wlan*) CONN_TYPE="wifi" ;; - "") ;; - *) CONN_TYPE="$PORT_IFACE" ;; - esac - fi - fi -fi - -if [ -n "$CONN_TYPE" ]; then - sed -i "/^$IP /d" "$CONN_CACHE" 2>/dev/null - echo "$IP $CONN_TYPE $(date +%s)" >> "$CONN_CACHE" -else - _arp_state=$(ip neigh show "$IP" 2>/dev/null | awk '{print $NF}') - case "$_arp_state" in - REACHABLE|STALE|DELAY|PROBE) CONN_TYPE="ethernet" ;; - *) - CONN_TYPE="?" - _cached=$(grep "^$IP " "$CONN_CACHE" 2>/dev/null | tail -1) - if [ -n "$_cached" ]; then - CONN_LAST=$(echo "$_cached" | awk '{print $2 "@" $3}') - fi - ;; - esac -fi - -# Check blocked status -BLOCKED=false -BLOCK_PACKETS=0 -BLOCK_BYTES=0 -if tctl_is_blocked "$IP"; then - BLOCKED=true - if [ "$TCTL_FW" = "nft" ]; then - # A block is two rules — the v4 one keyed on the address and the v6 one - # keyed on the MAC (see tctl_block_add) — so the counters are summed - # across both. The v6 rule carries no address, only its "_mac" comment. - block_line=$(nft list chain inet fw4 forward 2>/dev/null \ - | grep -e "ip saddr $IP.*drop" -e "comment \"$(tctl_block_comment "$IP")_mac\"") - BLOCK_PACKETS=$(echo "$block_line" | grep -oE 'packets [0-9]+' | awk '{ t += $2 } END { printf "%.0f", t }') - BLOCK_BYTES=$(echo "$block_line" | grep -oE 'bytes [0-9]+' | awk '{ t += $2 } END { printf "%.0f", t }') - else - block_line=$(iptables -L FORWARD -nvx 2>/dev/null | grep "DROP" | grep "$IP") - BLOCK_PACKETS=$(echo "$block_line" | awk '{print $1}') - BLOCK_BYTES=$(echo "$block_line" | awk '{print $2}') - fi -fi -[ -z "$BLOCK_PACKETS" ] && BLOCK_PACKETS=0 -[ -z "$BLOCK_BYTES" ] && BLOCK_BYTES=0 - -# Check wifi blocked -WIFI_BLOCKED=false -if [ -n "$MAC" ]; then - IFACES=$(tctl_get_wifi_interfaces) - for iface in $IFACES; do - maclist=$(uci -q get "wireless.${iface}.maclist") - listed=0 - echo "$maclist" | grep -qi "$MAC" && listed=1 - # Being listed means the opposite thing per policy: on a deny radio a - # listed MAC is blocked, on an allow (whitelist) radio an UNlisted one is. - if [ "$(tctl_get_wifi_filter_mode "$iface")" = "allow" ]; then - [ "$listed" = "0" ] && { WIFI_BLOCKED=true; break; } - else - [ "$listed" = "1" ] && { WIFI_BLOCKED=true; break; } - fi - done -fi - -# Get rate limit, each direction: upload has its own ceiling since #83. -RATE_LIM=0; RATE_LIM_UP=0 -if [ "$TCTL_FW" = "nft" ]; then - RL_DUMP=$(nft list table netdev tm_ratelimit 2>/dev/null) - RATE_LIM=$(echo "$RL_DUMP" | tctl_rl_rate_kbit "$IP") - RATE_LIM_UP=$(echo "$RL_DUMP" | tctl_rl_rate_kbit "$IP" saddr) -else - # The address as a whole field, not a substring (see tctl_rl_rate_kbit). - # The download rule is listed first; the upload one is the "_ul" name. - RL_DUMP=$(iptables -t mangle -L FORWARD -nv 2>/dev/null | grep "rl_ratelimit" \ - | awk -v ip="$IP" '{ for (i = 1; i <= NF; i++) if ($i == ip || $i == ip "/32") { print; next } }') - RATE_LIM=$(echo "$RL_DUMP" | awk "$TCTL_NFT_RATE_AWK"'{ r = tctl_ipt_first_rate(); if (r >= 0) { print r; exit } }') - RATE_LIM_UP=$(echo "$RL_DUMP" | grep -E 'rl_ratelimit.*_ul' \ - | awk "$TCTL_NFT_RATE_AWK"'{ r = tctl_ipt_first_rate(); if (r >= 0) { print r; exit } }') -fi -[ -z "$RATE_LIM" ] && RATE_LIM=0 -[ -z "$RATE_LIM_UP" ] && RATE_LIM_UP=0 - -# Get shape rate. The classid is looked up in shapes.json, never derived from -# the address: minors are allocated (see lookup_shape_kbit in -# trafficctl-summary.sh). Download is the class on the LAN device, upload the -# one with the same classid on the IFB. -SHAPE_KBIT=0; SHAPE_KBIT_UP=0 -classid=$(tctl_shape_classmap | awk -v ip="$IP" '$1==ip{print $2; exit}') -if [ -n "$classid" ]; then - SHAPE_KBIT=$(tctl_tc_class_rates "$LAN_DEV" | awk -v c="$classid" '$1==c{print $2; exit}') - SHAPE_KBIT_UP=$(tctl_tc_class_rates "$(tctl_shape_ifb_dev)" | awk -v c="$classid" '$1==c{print $2; exit}') -fi -[ -z "$SHAPE_KBIT" ] && SHAPE_KBIT=0 -[ -z "$SHAPE_KBIT_UP" ] && SHAPE_KBIT_UP=0 - -# Parse conntrack for connections and totals -TIMESTAMP=$(date +%s) -CONNTRACK_DATA=$(cat /proc/net/nf_conntrack 2>/dev/null | grep "src=$IP ") - -# Compute metadata (totals + states) -META_LINE=$(echo "$CONNTRACK_DATA" | awk -v ip="$IP" -v pf="$PROTO_FILTER" ' -BEGIN { total=0; n_tcp=0; n_udp=0; n_other=0; est=0; tw=0; ss=0; cw=0 } -{ - proto="" - for (i=1; i<=NF; i++) { - if ($i == "tcp") proto="tcp" - else if ($i == "udp") proto="udp" - else if ($i == "icmp") proto="icmp" - } - if (pf != "all" && proto != pf) next - - dst=""; bytes=0; state="" - src_key = "src=" ip - seen_src=0; got_dst=0 - for (i=1; i<=NF; i++) { - if ($i == src_key && !seen_src) { seen_src=1; continue } - if (seen_src && !got_dst && index($i, "dst=") == 1) { dst=substr($i, 5); got_dst=1 } - if (seen_src && !got_dst) continue - if (seen_src && index($i, "bytes=") == 1 && bytes == 0) { bytes=substr($i, 7)+0 } - if ($i == "ESTABLISHED") state="ESTABLISHED" - else if ($i == "TIME_WAIT") state="TIME_WAIT" - else if ($i == "SYN_SENT") state="SYN_SENT" - else if ($i == "CLOSE_WAIT") state="CLOSE_WAIT" - } - if (dst == "" || dst == ip) next - total += bytes - if (proto == "tcp") n_tcp++ - else if (proto == "udp") n_udp++ - else n_other++ - if (state == "ESTABLISHED") est++ - else if (state == "TIME_WAIT") tw++ - else if (state == "SYN_SENT") ss++ - else if (state == "CLOSE_WAIT") cw++ -} -END { printf "%.0f %d %d %d %d %d %d %d", total, n_tcp, n_udp, n_other, est, tw, ss, cw } -') - -TOTAL=$(echo "$META_LINE" | awk '{print $1}') -N_TCP=$(echo "$META_LINE" | awk '{print $2}') -N_UDP=$(echo "$META_LINE" | awk '{print $3}') -N_OTHER=$(echo "$META_LINE" | awk '{print $4}') -EST=$(echo "$META_LINE" | awk '{print $5}') -TW=$(echo "$META_LINE" | awk '{print $6}') -SS=$(echo "$META_LINE" | awk '{print $7}') -CW=$(echo "$META_LINE" | awk '{print $8}') - -[ -z "$TOTAL" ] && TOTAL=0 -[ -z "$N_TCP" ] && N_TCP=0 -[ -z "$N_UDP" ] && N_UDP=0 -[ -z "$N_OTHER" ] && N_OTHER=0 -[ -z "$EST" ] && EST=0 -[ -z "$TW" ] && TW=0 -[ -z "$SS" ] && SS=0 -[ -z "$CW" ] && CW=0 - -# Build connections JSON array -# Resolve egress interface per destination for policy-routed connections -# (mwan3 etc.). Only connections carrying a NON-zero conntrack mark are -# resolved: `ip route get mark ` honours the fwmark ip-rules, so it -# reports the WAN that mwan3 actually selected. mark=0 connections (no policy -# routing, e.g. plain single-WAN or podkop) are left blank instead of showing a -# misleading main-table egress. -OIF_MAP="/tmp/trafficctl_oif_$$" -: > "$OIF_MAP" -if command -v ip >/dev/null 2>&1; then - echo "$CONNTRACK_DATA" | awk -v ip="$IP" ' - { dst=""; mark="0"; sk="src=" ip; seen=0; got=0 - for (i=1; i<=NF; i++) { - if ($i==sk && !seen) { seen=1; continue } - if (seen && !got && index($i,"dst=")==1) { dst=substr($i,5); got=1 } - if (index($i,"mark=")==1) mark=substr($i,6) - } - if (dst!="" && dst!=ip && mark!="0" && mark!="") print dst, mark - }' | sort -u | while read -r dip dmark; do - [ -n "$dip" ] || continue - dev=$(ip route get "$dip" mark "$dmark" 2>/dev/null | grep -oE 'dev [^ ]+' | head -1 | cut -d' ' -f2) - case "$dev" in lo|"") continue ;; esac - echo "$dip $dev" >> "$OIF_MAP" - done -fi - -# The kernel device is not what the user named the interface: mwan3 egress is -# "awg3", the network is "Finland" (#10). The uci name comes from the role map -# trafficctl-ifaces.sh already memoizes in tmpfs — the overview polls it, so it -# is normally warm. Built here only when it is missing and there is something -# to label, never per connection. -IFROLE_CACHE="${TCTL_IFROLE_CACHE:-/tmp/trafficctl_ifroles}" -if [ -s "$OIF_MAP" ] && [ ! -s "$IFROLE_CACHE" ]; then - /usr/local/bin/trafficctl-ifaces.sh >/dev/null 2>&1 -fi - -CONNS_OUT=$(echo "$CONNTRACK_DATA" | awk -v ip="$IP" -v pf="$PROTO_FILTER" -v oifmap="$OIF_MAP" -v ifroles="$IFROLE_CACHE" ' -BEGIN { - n=0 - while ((getline line < oifmap) > 0) { split(line, p, " "); oifdev[p[1]] = p[2] } - close(oifmap) - # "dev role tunnel primary defroute enslaved label", label "-" when the - # device has no uci interface. Header lines start with "#". - while ((getline line < ifroles) > 0) { - if (substr(line, 1, 1) == "#") continue - if (split(line, f, " ") < 7 || f[7] == "-") continue - oiflbl[f[1]] = f[7] - } - close(ifroles) -} -{ - proto="" - for (i=1; i<=NF; i++) { - if ($i == "tcp") proto="tcp" - else if ($i == "udp") proto="udp" - else if ($i == "icmp") proto="icmp" - } - if (pf != "all" && proto != pf) next - - dst=""; dport=""; bytes=0; state="" - src_key = "src=" ip - seen_src=0; got_dst=0 - for (i=1; i<=NF; i++) { - if ($i == src_key && !seen_src) { seen_src=1; continue } - if (seen_src && !got_dst && index($i, "dst=") == 1) { dst=substr($i, 5); got_dst=1 } - if (seen_src && !got_dst) continue - if (seen_src && index($i, "dport=") == 1 && dport == "") dport=substr($i, 7) - if (seen_src && index($i, "bytes=") == 1 && bytes == 0) bytes=substr($i, 7)+0 - if ($i == "ESTABLISHED") state="ESTABLISHED" - else if ($i == "TIME_WAIT") state="TIME_WAIT" - else if ($i == "SYN_SENT") state="SYN_SENT" - else if ($i == "CLOSE_WAIT") state="CLOSE_WAIT" - else if ($i == "FIN_WAIT") state="FIN_WAIT" - } - if (dst == "" || dst == ip) next - if (dport == "") dport = "0" - - # Service name lookup - svc="" - if (dport == "80") svc="http" - else if (dport == "443") svc="https" - else if (dport == "53") svc="dns" - else if (dport == "22") svc="ssh" - else if (dport == "123") svc="ntp" - else if (dport == "5353") svc="mdns" - else if (dport == "21") svc="ftp" - else if (dport == "25") svc="smtp" - else if (dport == "993") svc="imaps" - else if (dport == "8080") svc="http-alt" - - odev = ""; oif = "" - if (dst in oifdev) { odev = oifdev[dst]; oif = odev } - if (odev in oiflbl) oif = oiflbl[odev] - if (n > 0) printf "," - printf "{\"proto\":\"%s\",\"dst\":\"%s\",\"host\":\"\",\"port\":%s,\"service\":\"%s\",\"bytes\":%.0f,\"state\":\"%s\",\"oif\":\"%s\",\"oif_dev\":\"%s\"}", proto, dst, dport, svc, bytes, state, oif, odev - n++ -} -') -rm -f "$OIF_MAP" - -# Optionally resolve DNS for connection destinations -if [ "$DO_RDNS" = "1" ]; then - DST_IPS=$(echo "$CONNTRACK_DATA" | grep -oE 'dst=[0-9.]+' | sed 's/dst=//' | sort -u | grep -v "^$IP$") - if [ -n "$DST_IPS" ]; then - RDNS_MAP="/tmp/trafficctl_rdns_$$" - # shellcheck disable=SC2064 - trap "rm -f '$RDNS_MAP'" EXIT INT TERM - : > "$RDNS_MAP" - RDNS_DONE=0 - # Batch resolve via ubus network.rrdns (same as LuCI frontend; no extra packages needed) - if command -v ubus >/dev/null 2>&1; then - ADDRS_JSON=$(echo "$DST_IPS" | awk '{printf "%s\"%s\"", (NR>1?",":""), $1}') - RDNS_RESULT=$(ubus call network.rrdns lookup \ - "{\"addrs\":[$ADDRS_JSON],\"timeout\":3000,\"limit\":64}" 2>/dev/null) - if [ -n "$RDNS_RESULT" ]; then - RDNS_DONE=1 - for dip in $DST_IPS; do - host=$(printf '%s' "$RDNS_RESULT" | jsonfilter -e "@[\"$dip\"]" 2>/dev/null) - case "$host" in - *[!a-zA-Z0-9._-]*|"") continue ;; - esac - echo "$dip $host" >> "$RDNS_MAP" - done - fi - fi - # Fallback: per-IP nslookup (BusyBox, always available on OpenWrt) - if [ "$RDNS_DONE" = "0" ] && command -v nslookup >/dev/null 2>&1; then - for dip in $DST_IPS; do - host=$(nslookup "$dip" 2>/dev/null | sed -n 's/.*name = \(.*\)\.$/\1/p' | head -1) - case "$host" in - *[!a-zA-Z0-9._-]*|"") continue ;; - esac - echo "$dip $host" >> "$RDNS_MAP" - done - fi - if [ -s "$RDNS_MAP" ]; then - # Build sed expression from map - SED_EXPR=$(awk '{printf "s|\"dst\":\"%s\",\"host\":\"\"|\"dst\":\"%s\",\"host\":\"%s\"|g\n", $1, $1, $2}' "$RDNS_MAP") - CONNS_OUT=$(printf "%s" "$CONNS_OUT" | sed "$SED_EXPR") - fi - rm -f "$RDNS_MAP" - fi -fi - -# Listed as blocked yet associated right now = the radio never got the block. -WIFI_PENDING=false -tctl_wifi_block_pending "$([ "$WIFI_BLOCKED" = "true" ] && echo 1 || echo 0)" "$CONN_TYPE" \ - && WIFI_PENDING=true - -# Output final JSON -printf '{"ip":"%s","name":"%s","mac":"%s","conn_type":"%s","conn_last":"%s","timestamp":%d,"blocked":%s,"block_packets":%d,"block_bytes":%.0f,"wifi_blocked":%s,"wifi_block_pending":%s,"total":%.0f,"protocols":{"tcp":%d,"udp":%d,"other":%d},"tcp_states":{"established":%d,"time_wait":%d,"syn_sent":%d,"close_wait":%d},"connections":[%s],"rate_limit_kbit":%d,"rate_limit_kbit_up":%d,"shape_kbit":%d,"shape_kbit_up":%d}\n' \ - "$IP" "$NAME" "$MAC" "$CONN_TYPE" "$CONN_LAST" "$TIMESTAMP" "$BLOCKED" "$BLOCK_PACKETS" "$BLOCK_BYTES" \ - "$WIFI_BLOCKED" "$WIFI_PENDING" "$TOTAL" "$N_TCP" "$N_UDP" "$N_OTHER" \ - "$EST" "$TW" "$SS" "$CW" "$CONNS_OUT" "$RATE_LIM" "$RATE_LIM_UP" "$SHAPE_KBIT" "$SHAPE_KBIT_UP" diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-fw.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-fw.sh deleted file mode 100755 index 73e318c17..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-fw.sh +++ /dev/null @@ -1,1458 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Firewall abstraction layer for trafficctl. -# Detects nft vs iptables and provides unified functions. -# Source this file: . /usr/local/bin/trafficctl-fw.sh - -if command -v nft >/dev/null 2>&1 && nft list tables 2>/dev/null | grep -q .; then - TCTL_FW="nft" -else - TCTL_FW="iptables" -fi - -# ── MAC-keyed matching (address-family independent) ──────────────────────── -# -# Everything in this package is keyed on the IPv4 address a DHCP lease gives a -# device, and every enforcement rule matches "ip saddr"/"ip daddr" — so IPv6 -# walks past all of it (issue #67: 9.96 Mbit/s over v4 against a 10 Mbit/s cap, -# 151 Mbit/s over v6 to the same endpoint). -# -# The fix is NOT "add ip6 saddr next to ip saddr": with SLAAC and privacy -# extensions a client holds several v6 addresses at once and rotates them on a -# timer, so a rule written against one stops matching without warning — the -# same silent bypass, reached more slowly. The MAC does not rotate, and on the -# hooks used here the client's own frame is still intact, so it is what the v6 -# rules are keyed on. -# -# Only the directions where that holds are covered; see tctl_block_add and -# tctl_ratelimit_add for which, and README/COMPATIBILITY for what is not. - -# Named by absolute path, as it must be on the router; the tests sed this line -# into their scratch directory rather than have the shipped script carry a -# test-only override (same approach as the ledger and shapes paths below). -TCTL_LEASES_FILE="/tmp/dhcp.leases" - -# The MAC behind an IPv4 address: DHCP lease first, neighbour table second. -# Fails (non-zero, no output) when neither knows it — a routed/downstream -# client has no lease and no neighbour entry here, and there is nothing to key -# a rule on. Callers must report that rather than assume coverage. -# -# The result is validated strictly, not merely trimmed: it is interpolated -# into an nft rule string, so anything but six hex pairs is refused. -tctl_lookup_mac() { - local addr="$1" mac - tctl_validate_ip "$addr" || return 1 - mac=$(awk -v ip="$addr" '$3 == ip { print $2; exit }' "$TCTL_LEASES_FILE" 2>/dev/null) - [ -z "$mac" ] && mac=$(ip neigh show 2>/dev/null | awk -v ip="$addr" ' - $1 == ip { for (i = 1; i < NF; i++) if ($i == "lladdr") { print $(i+1); exit } }') - mac=$(printf '%s' "$mac" | tr 'A-F' 'a-f') - case "$mac" in - [0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]:[0-9a-f][0-9a-f]) ;; - *) return 1 ;; - esac - printf '%s\n' "$mac" -} - -# True when this address is the next hop of a route, i.e. a router rather than -# an end device. Its MAC is the source of every packet it FORWARDS, so a -# MAC-keyed rule aimed at it would also hit every client behind it — blocking -# one device would black-hole a whole subnet. Those addresses are excluded and -# the caller says so out loud. -tctl_ip_is_nexthop() { - local addr="$1" - [ -n "$addr" ] || return 1 - ip route show 2>/dev/null | awk -v n="$addr" ' - { for (i = 1; i < NF; i++) if ($i == "via" && $(i+1) == n) { hit = 1; exit } } - END { exit hit ? 0 : 1 }' -} - -# The MAC to key a target's IPv6 rules on, or failure. A CIDR target has no -# single MAC; a next hop's MAC is not its own traffic. -tctl_target_mac() { - local t="$1" - case "$t" in - */32) t=${t%/32} ;; - */*) return 1 ;; - esac - tctl_ip_is_nexthop "$t" && return 1 - tctl_lookup_mac "$t" -} - -# Flush a device's live IPv6 flows. -# -# "conntrack -D -s " only touches the IPv4 table, so without this an -# established v6 flow survives a block that was just installed — and with flow -# offload it is never re-evaluated by the forward chain again, so it survives -# indefinitely. That is the same "a block that does not block" failure in a new -# place, on the offload-enabled hardware most likely to hit it. -# -# Addresses come from a one-shot neighbour snapshot. Reading them is sound even -# though a RULE written against them would not be: the snapshot cannot go stale -# between here and the next statement, whereas a rule has to stay correct for -# as long as the block lasts. -tctl_conntrack_flush_v6() { - local mac="$1" addr - [ -n "$mac" ] || return 0 - command -v conntrack >/dev/null 2>&1 || return 0 - ip -6 neigh show 2>/dev/null | awk -v m="$mac" ' - { for (i = 1; i < NF; i++) if ($i == "lladdr" && tolower($(i+1)) == m) { print $1; break } } - ' | while read -r addr; do - case "$addr" in - ''|*[!0-9a-fA-F:]*) continue ;; - esac - conntrack -D -f ipv6 -s "$addr" >/dev/null 2>&1 - conntrack -D -f ipv6 -d "$addr" >/dev/null 2>&1 - done - return 0 -} - -# ── Rate Limiting (policer) ──────────────────────────────────────────────── - -# Rate limits are symmetric: the same ceiling is policed in both directions. -# -# Download is caught at WAN ingress (packets arriving for the client) and -# upload at LAN ingress (packets the client sends into the router). Policing -# upload on the way IN is what makes it work for downstream/routed clients -# too — their packets still enter over a LAN device with the client's source -# address, whatever router sits behind it. -# mode: "each" gives every address inside the target its own bucket (an nft -# meter keyed by address); "shared" makes the whole target share one bucket. -# For a single host the two are identical. -tctl_ratelimit_add() { - local ip="$1" rate_kbit="$2" comment="$3" mode="${4:-shared}" rate_kbit_up="$5" - # Empty means "same as download" — the only meaning this had before the two - # directions could differ. Not zero: a zero ceiling policed every packet and - # would be a silent total block reported as a successful limit. - [ -z "$rate_kbit_up" ] && rate_kbit_up="$rate_kbit" - # bytes/second, not kbytes: see tctl_rate_bytes. - local rate_b rate_b_up - rate_b=$(tctl_rate_bytes "$rate_kbit") - rate_b_up=$(tctl_rate_bytes "$rate_kbit_up") - - local slug dl_expr ul_expr ul6_expr dl6_expr feed6_expr v6set mac - slug=$(tctl_target_slug "$ip") - # The two directions were already separate rules on separate hooks — they - # were symmetric only because both took the same number. - if [ "$mode" = "each" ]; then - dl_expr="ip daddr $ip meter tctl_d_$slug { ip daddr limit rate over ${rate_b} bytes/second }" - ul_expr="ip saddr $ip meter tctl_u_$slug { ip saddr limit rate over ${rate_b_up} bytes/second }" - else - dl_expr="ip daddr $ip limit rate over ${rate_b} bytes/second" - ul_expr="ip saddr $ip limit rate over ${rate_b_up} bytes/second" - fi - - # Upload over IPv6, keyed on the MAC: at LAN ingress the frame is still - # the client's own, so "ether saddr" identifies it whatever address family - # it is using. - # - # Scoped to IPv6 on purpose: IPv4 keeps being policed by exactly the rule it - # always was, so nothing about existing behaviour depends on whether this - # lookup succeeds — and an unscoped ether rule would police a dual-stack - # client's v4 traffic TWICE, halving the ceiling it was given. Its own - # bucket, too: sharing one would make the v4 and v6 halves cannibalise each - # other's allowance, which is not what "10 Mbit/s" has ever meant here. - # - # The scope is "meta protocol ip6", NOT "meta nfproto ipv6" — these chains - # are in the NETDEV family, where nft rejects nfproto outright ("meta - # nfproto is only useful in the inet family", verified with nft --check - # against nftables 1.1.1 / kernel 6.6). nfproto is what tctl_block_add uses, - # because that rule lives in inet fw4. Same intent, different family, and - # the wrong one does not silently under-match — it fails to load. - # - # Download over IPv6 cannot be keyed on the MAC: at LAN egress the L2 - # header is not built yet. It is matched on the device's v6 ADDRESSES, - # which is only sound if the set of them can never go stale — SLAAC - # privacy extensions rotate them, and a set that misses the current one - # is a silent bypass. So the set is not written from a neighbour-table - # snapshot that something would have to keep refreshing; the data path - # fills it. Every v6 packet the client sends crosses LAN ingress with its - # own MAC, and the feed rule there adds its source address with a timeout - # ("update" re-arms it on every packet, so an address in use never - # expires). A new temporary address is in the set from its first packet, - # one that stopped being used drops out after the timeout. Download that - # no packet from the client ever preceded is the only thing that is not - # covered, and for TCP there is none. Link-local is left out: it never - # crosses the router. - # - # Verified on kernel 6.12 / nftables 1.0.9 with a client in its own netns - # behind a bridge: one ping from a privacy address put that address in the - # set, and a 5 Mbit/s limit held an iperf3 download to it at ~6 Mbit/s. - ul6_expr=""; dl6_expr=""; feed6_expr="" - v6set="tctl_v6_$slug" - if mac=$(tctl_target_mac "$ip"); then - ul6_expr="meta protocol ip6 ether saddr $mac limit rate over ${rate_b_up} bytes/second" - feed6_expr="meta protocol ip6 ether saddr $mac ip6 saddr != fe80::/10 update @$v6set { ip6 saddr }" - dl6_expr="meta protocol ip6 ip6 daddr @$v6set limit rate over ${rate_b} bytes/second" - fi - - if [ "$TCTL_FW" = "nft" ]; then - nft add table netdev tm_ratelimit 2>/dev/null - # The set has to exist before any rule that names it. Without it the - # v6 download half is skipped and reported as such, never half-built. - if [ -n "$dl6_expr" ] && ! nft add set netdev tm_ratelimit "$v6set" \ - "{ type ipv6_addr; flags dynamic,timeout; timeout ${TCTL_V6SET_TIMEOUT:-1h}; }" 2>/dev/null; then - feed6_expr=""; dl6_expr="" - fi - - # Download is policed at LAN EGRESS, not WAN ingress. - # - # With masquerading on, a reply arriving at WAN ingress is still - # addressed to the router's own WAN address: conntrack only restores - # the client's address in prerouting, which runs after the netdev - # ingress hook. So "ip daddr " there matches nothing for any - # NATed client. At LAN egress the translation has happened and the - # destination is the real client address. - # Note the asymmetry with the upload hooks: ingress must bind the - # bridge PORTS (a bridge sees nothing on ingress), while egress must - # bind the BRIDGE itself — routed traffic is transmitted to br-lan by - # the IP stack, and the port-level egress hook never fires for it. - # Verified on kernel 6.12: br-lan egress counted every packet, the - # ports counted none. - local dev chain dl_ok=0 dl6_ok=0 wan_dev - for dev in $(tctl_get_lan_devices); do - chain=$(tctl_egress_chain "$dev") - nft add chain netdev tm_ratelimit "$chain" \ - "{ type filter hook egress device $dev priority 0; policy accept; }" 2>/dev/null - nft add rule netdev tm_ratelimit "$chain" \ - "$dl_expr counter drop comment \"$comment\"" 2>/dev/null \ - && dl_ok=1 - [ -n "$dl6_expr" ] || continue - nft add rule netdev tm_ratelimit "$chain" \ - "$dl6_expr counter drop comment \"${comment}_dl6\"" 2>/dev/null \ - && dl6_ok=1 - done - # Kernels older than 5.16 have no netdev egress hook; fall back to WAN - # ingress, which is correct as long as the client isn't masqueraded. - # IPv6 is not masqueraded at all, so the v6 rule is correct there too. - if [ "$dl_ok" = "0" ] && wan_dev=$(tctl_get_wan_device); then - nft add chain netdev tm_ratelimit dl \ - "{ type filter hook ingress device $wan_dev priority -200; policy accept; }" 2>/dev/null - nft add rule netdev tm_ratelimit dl \ - "$dl_expr counter drop comment \"$comment\"" 2>/dev/null \ - && dl_ok=1 - [ -n "$dl6_expr" ] && nft add rule netdev tm_ratelimit dl \ - "$dl6_expr counter drop comment \"${comment}_dl6\"" 2>/dev/null \ - && dl6_ok=1 - fi - # Set for the caller to inspect (see trafficctl-ratelimit.sh). - # shellcheck disable=SC2034 - [ "$dl_ok" = "1" ] || TCTL_RL_DOWNLOAD_FAILED=1 - - # One chain per ingress device: a device that refuses the hook then - # only loses its own chain instead of taking the whole set with it. - local dev chain - local ul_ok=0 ul6_ok=0 feed6_ok=0 - for dev in $(tctl_ingress_devices); do - chain=$(tctl_ingress_chain "$dev") - nft add chain netdev tm_ratelimit "$chain" \ - "{ type filter hook ingress device $dev priority -200; policy accept; }" 2>/dev/null - nft add rule netdev tm_ratelimit "$chain" \ - "$ul_expr counter drop comment \"${comment}_ul\"" 2>/dev/null \ - && ul_ok=1 - [ -n "$ul6_expr" ] || continue - # Feed before police, so a packet the upload limit drops still - # keeps its address in the download set. - [ -n "$feed6_expr" ] && nft add rule netdev tm_ratelimit "$chain" \ - "$feed6_expr comment \"${comment}_v6\"" 2>/dev/null \ - && feed6_ok=1 - nft add rule netdev tm_ratelimit "$chain" \ - "$ul6_expr counter drop comment \"${comment}_ul6\"" 2>/dev/null \ - && ul6_ok=1 - done - # shellcheck disable=SC2034 - [ "$ul_ok" = "1" ] || TCTL_RL_UPLOAD_FAILED=1 - # Set for the caller to report: "limited" means v4 only unless this is 1. - # shellcheck disable=SC2034 - TCTL_RL_UPLOAD6_OK="$ul6_ok" - # A download rule over a set nothing feeds matches nothing, so it only - # counts when both halves loaded. - # shellcheck disable=SC2034 - if [ "$dl6_ok" = "1" ] && [ "$feed6_ok" = "1" ]; then - TCTL_RL_DOWNLOAD6_OK=1 - else - TCTL_RL_DOWNLOAD6_OK=0 - fi - else - # fw3/iptables stays IPv4-only. A half-built ip6tables path would be - # worse than a stated gap; see docs/COMPATIBILITY.md. - # shellcheck disable=SC2034 - TCTL_RL_UPLOAD6_OK=0 - # shellcheck disable=SC2034 - TCTL_RL_DOWNLOAD6_OK=0 - # shellcheck disable=SC2046 # deliberate split into the option words - iptables -t mangle -A FORWARD -d "$ip" -m hashlimit \ - $(tctl_ipt_limit_args "$rate_kbit") \ - --hashlimit-mode dstip --hashlimit-name "rl_${comment}" \ - -j DROP -m comment --comment "$comment" 2>/dev/null - # shellcheck disable=SC2046 # deliberate split into the option words - iptables -t mangle -A FORWARD -s "$ip" -m hashlimit \ - $(tctl_ipt_limit_args "$rate_kbit_up") \ - --hashlimit-mode srcip --hashlimit-name "rl_${comment}_ul" \ - -j DROP -m comment --comment "${comment}_ul" 2>/dev/null - fi -} - -tctl_ratelimit_remove() { - local ip="$1" comment="$2" - local chain h - - if [ "$TCTL_FW" = "nft" ]; then - # Scan the whole table once: rules for this IP live in the dl chains - # (daddr, plus _dl6 over the v6 address set), in one ul_ chain per - # ingress device (saddr), and — for a host with a known MAC — the - # IPv6-scoped _ul6 rule and the _v6 rule feeding the set in each of - # those. - # - # Each comment is matched in FULL, closing quote included. The suffixes - # are prefixes of one another ("_ul" of "_ul6"), and every comment ends - # in an address slug, so a substring match would have a limit on - # 192.168.1.1 delete 192.168.1.10's rules as well. - nft -a list table netdev tm_ratelimit 2>/dev/null | awk -v cmt="$comment" ' - /^[ \t]*chain [a-zA-Z0-9_]+ \{/ { chain = $2; next } - index($0, "\"" cmt "\"") || index($0, "\"" cmt "_ul\"") || - index($0, "\"" cmt "_ul6\"") || index($0, "\"" cmt "_dl6\"") || - index($0, "\"" cmt "_v6\"") { - for (i = 1; i < NF; i++) - if ($i == "handle") { print chain, $(i+1); break } - }' | while read -r chain h; do - [ -n "$chain" ] && [ -n "$h" ] && nft delete rule netdev tm_ratelimit "$chain" handle "$h" 2>/dev/null - done - # Only once nothing references it: nft refuses to delete a set in use. - nft delete set netdev tm_ratelimit "tctl_v6_$(tctl_target_slug "$ip")" 2>/dev/null - else - while iptables -t mangle -D FORWARD -d "$ip" -m comment --comment "$comment" 2>/dev/null; do :; done - while iptables -t mangle -D FORWARD -s "$ip" -m comment --comment "${comment}_ul" 2>/dev/null; do :; done - fi -} - -# Download ceiling in kbit/s of the limit on one address, read from an -# "nft list table netdev tm_ratelimit" dump on stdin; nothing when it has none. -# -# The address is compared as a whole FIELD. A grep for "daddr " also -# matched every address it is a prefix of, so 192.168.1.5 reported -# 192.168.1.50's limit, and the dots matched any character besides. Only the -# first rule counts: the download rule is installed on every LAN device's -# egress chain, so a router with several bridges holds several copies, and -# printing all of them handed printf a multi-line "number". -# -# nft prints the rate in the largest unit that keeps it whole, and its units -# step by 1024, not 1000: 1024 bytes/second lists as "1 kbytes/second" and -# 1024 kbytes/second as "1 mbytes/second" (verified with nftables 1.0.9). -# The readers that only knew "kbytes" turned the latter into 0 — or, in the -# stats, into 8 kbit/s. Every unit goes back to bytes by nft's factor, and -# bytes to kbit by the package's own, SI (see tctl_rate_bytes). -# -# The second argument picks the direction: "daddr" (the default) is the -# download rule, "saddr" the IPv4 upload one, which carries its own ceiling -# since the two directions could differ (#83). -tctl_rl_rate_kbit() { - awk -v ip="$1" -v fld="${2:-daddr}" "$TCTL_NFT_RATE_AWK"' - /limit rate over/ { - hit = 0 - for (i = 1; i < NF; i++) - if ($i == fld && ($(i+1) == ip || $(i+1) == ip "/32")) { hit = 1; break } - if (!hit) next - for (j = i; j < NF - 1; j++) - if ($j == "over") { printf "%.0f\n", tctl_rate_kbit($(j+1), $(j+2)); exit } - }' -} - -# A kbit/s ceiling as the bytes/second an nft "limit rate" is written in. -# -# kbit/s here is SI, 1000 bits, as everywhere else in the package: the UI, -# tc ("kbit" is 1000 bits to tc as well) and the speed graphs. nft's -# "kbytes" is 1024 bytes, so writing rate_kbit / 8 kbytes — what the -# limiter did — policed 2.4% above the ceiling it was given: 5000 kbit/s -# became 5120. Bytes are exact (kbit * 1000 / 8 = kbit * 125). -tctl_rate_bytes() { - local b=$(( $1 * 125 )) - [ "$b" -lt 1 ] && b=1 - echo "$b" -} - -# awk function shared by every reader of an nft rate: tctl_rate_kbit(n, unit) -# turns "n /second" as nft lists it back into SI kbit/s. Prepended to -# an awk program; a rule written before rates were stored in bytes reads as -# what it actually polices (625 kbytes/second is 5120 kbit/s). -TCTL_NFT_RATE_AWK=' -function tctl_rate_kbit(n, u, b) { - if (u ~ /^bytes/) b = n - else if (u ~ /^kbytes/) b = n * 1024 - else if (u ~ /^mbytes/) b = n * 1024 * 1024 - else if (u ~ /^gbytes/) b = n * 1024 * 1024 * 1024 - else return 0 - # Rounded here, so a reader printing %d agrees with one printing %.0f. - return int(b * 8 / 1000 + 0.5) -} -# An iptables hashlimit rate as listed, e.g. "624992b/s" or "1213mb/s". -# iptables prints bytes in 1024 steps too. A packet rate ("5000/sec") is not a -# ceiling in kbit/s and reads 0. -function tctl_ipt_rate_kbit(t, n, u) { - if (!match(t, /^[0-9]+/)) return 0 - n = substr(t, 1, RLENGTH); u = substr(t, RLENGTH + 1) - if (u ~ /^b\//) return tctl_rate_kbit(n, "bytes") - if (u ~ /^kb\//) return tctl_rate_kbit(n, "kbytes") - if (u ~ /^mb\//) return tctl_rate_kbit(n, "mbytes") - if (u ~ /^gb\//) return tctl_rate_kbit(n, "gbytes") - return 0 -} -# The ceiling of the hashlimit rule on the current line: "above X" in an -# "iptables -L" listing, "--hashlimit-above X" in "iptables -S". -1 if none. -function tctl_ipt_first_rate( i) { - for (i = 1; i < NF; i++) - if ($i == "above" || $i == "--hashlimit-above") return tctl_ipt_rate_kbit($(i+1)) - return -1 -} -' - -# hashlimit arguments for a kbit/s ceiling, in BYTES. -# -# "${kbit}kbit/sec" is not a byte rate to hashlimit: it reads the number as -# PACKETS per second (iptables -S lists it back as "5000/sec"), and the -# "${kbit}kbit" burst written next to it is rejected outright ("bad value for -# option --hashlimit-burst", iptables 1.8.7 and 1.8.10). The 2>/dev/null after -# the rule hid that, so on fw3 no limit was ever installed. -# -# Bytes per second, SI like the nft side (tctl_rate_bytes). The burst is two -# seconds of the rate: hashlimit refuses a byte burst below about one second -# of it ("burst cannot be smaller than 125172064b" at 1 Gbit/s), and it is a -# 32-bit field, hence the cap, which puts the highest ceiling fw3 can -# express near 30 Gbit/s (10 Gbit/s is accepted, 40 is not). Verified on iptables-legacy 1.8.7 with iperf3 -# through a forwarding netns: 5, 50 and 1000 Mbit/s held at 4.9-4.97, 49-50.6 -# and 990-1003 Mbit/s. -tctl_ipt_limit_args() { - local b burst - b=$(tctl_rate_bytes "$1") - burst=$(( b * 2 )) - [ "$burst" -gt 4000000000 ] && burst=4000000000 - echo "--hashlimit-above ${b}b/s --hashlimit-burst ${burst}b" -} - -tctl_ratelimit_list() { - if [ "$TCTL_FW" = "nft" ]; then - nft list table netdev tm_ratelimit 2>/dev/null - else - iptables -t mangle -L FORWARD -nv --line-numbers 2>/dev/null | grep "rl_ratelimit" - fi -} - -# Which bucket layout a target gets when the caller names no mode. -# -# A block limited "shared" would let one device starve the rest, so per-device -# is the sane default whenever the target covers more than one address. Lives -# here rather than in trafficctl-ratelimit.sh because the reboot-restore hook -# has to reach the same answer for a record written before modes were stored — -# two copies of this rule would mean a limit that changes meaning on reboot. -tctl_ratelimit_default_mode() { - case "$1" in - */32) echo "shared" ;; # a /32 is one host; both modes are identical - */*) echo "each" ;; # any wider block: per-device buckets - *) echo "shared" ;; # bare host address - esac -} - -# ── Internet Blocking ────────────────────────────────────────────────────── - -# A block is two rules: the address-keyed one for IPv4, and a MAC-keyed one -# scoped to IPv6. -# -# This is the row of issue #67 that matters most. A rate limit that under- -# delivers shows up in a speed test; a block that reports success while the -# device keeps full, unmetered IPv6 access is invisible until it matters — and -# "block internet" is what people reach for as a parental control. -# -# The MAC is resolved HERE rather than in trafficctl-block.sh because three -# callers reach this function: the block script, the Telegram bot, and the -# ifup-lan restore hook. Resolving it in the script would bring every persisted -# block back IPv4-only after each reboot. -# -# "meta nfproto ipv6" keeps the two rules disjoint: IPv4 is still dropped by -# precisely the rule it always was, so a failed MAC lookup costs the v6 half -# and nothing else. (nfproto is correct HERE, in the inet family; the limiter's -# netdev chains need "meta protocol ip6" instead — see tctl_ratelimit_add.) -# `insert`, not `add`, for the same reason the v4 rule uses it — fw4's forward -# chain accepts established/offloaded flows near the top, and a rule appended -# below that is dead. -tctl_block_add() { - local ip="$1" comment="$2" mac rc - - if [ "$TCTL_FW" = "nft" ]; then - nft insert rule inet fw4 forward "ip saddr $ip counter drop comment \"$comment\"" - rc=$? - # Whether the v6 half is live. Read by callers; see trafficctl-block.sh. - # shellcheck disable=SC2034 - TCTL_BLOCK_IPV6=0 - if mac=$(tctl_target_mac "$ip"); then - nft insert rule inet fw4 forward \ - "meta nfproto ipv6 ether saddr $mac counter drop comment \"${comment}_mac\"" \ - 2>/dev/null && TCTL_BLOCK_IPV6=1 - fi - return "$rc" - else - # fw3/iptables stays IPv4-only; see docs/COMPATIBILITY.md. - # shellcheck disable=SC2034 - TCTL_BLOCK_IPV6=0 - iptables -I FORWARD -s "$ip" -j DROP -m comment --comment "$comment" - fi -} - -tctl_block_remove() { - local ip="$1" comment="$2" - - if [ "$TCTL_FW" = "nft" ]; then - # Match the quoted comment in full: comments end in the address, so a - # substring match on 192.168.1.1 also deletes the rule for 192.168.1.10. - # The IPv6 half carries no address to match on at all, only its own - # "_mac" comment — which is why it is listed explicitly here rather - # than being caught by a looser pattern. - for h in $(nft -a list chain inet fw4 forward 2>/dev/null \ - | awk -v cmt="$comment" 'index($0, "\"" cmt "\"") || - index($0, "\"" cmt "_mac\"") { - for (i = 1; i < NF; i++) - if ($i == "handle") { print $(i+1); break } - }'); do - nft delete rule inet fw4 forward handle "$h" - done - else - while iptables -D FORWARD -s "$ip" -m comment --comment "$comment" -j DROP 2>/dev/null; do :; done - fi -} - -tctl_is_blocked() { - local ip="$1" dump comment - if [ "$TCTL_FW" = "nft" ]; then - dump=$(nft list chain inet fw4 forward 2>/dev/null) - # The v4 rule is still found by address, so blocks written by versions - # that derived the comment from the caller's label keep reading as - # blocked. - echo "$dump" | grep -q "ip saddr $ip .*drop" && return 0 - # The v6 rule names a MAC, not an address — its comment is the only - # handle on it, and it is matched in full for the reason above. - comment=$(tctl_block_comment "$ip") - echo "$dump" | grep -qF "comment \"${comment}_mac\"" - else - # The source renders as its own column, "ip" or "ip/32"; an unanchored - # match would report 192.168.1.10's rule as belonging to 192.168.1.1. - iptables -L FORWARD -n 2>/dev/null | awk -v ip="$ip" ' - $1 == "DROP" { - src = $4 - sub(/\/32$/, "", src) - if (src == ip) { found = 1; exit } - } - END { exit(found ? 0 : 1) }' - fi -} - -# ── Helpers ──────────────────────────────────────────────────────────────── - -# Resolve the WAN device to a name that actually exists as a netdev. -# -# The old fallback returned the literal string "wan", which is an interface -# NAME, not a device — nft then rejected the chain ("device wan" doesn't -# exist), the failure was swallowed, and download limiting silently did -# nothing while still reporting success. Every candidate is now verified -# against sysfs, with the default route as a last resort. -tctl_get_wan_device() { - local sysfs="${TCTL_SYSFS_NET:-/sys/class/net}" - local dev candidates - - candidates="$(ubus call network.interface.wan status 2>/dev/null | jsonfilter -e '@.l3_device' 2>/dev/null) -$(uci -q get network.wan.device 2>/dev/null) -$(uci -q get network.wan.device 2>/dev/null) -$(ip route show default 2>/dev/null | awk '/^default/{for (i = 1; i <= NF; i++) if ($i == "dev") { print $(i+1); exit }}')" - - for dev in $candidates; do - [ -n "$dev" ] || continue - # A bridge/device name from uci can still be a config-only alias. - [ -e "$sysfs/$dev" ] || continue - echo "$dev" - return 0 - done - return 1 -} - -tctl_get_lan_device() { - local dev - dev=$(uci -q get network.lan.device 2>/dev/null) - [ -z "$dev" ] && dev=$(uci -q get network.lan.device 2>/dev/null) - [ -z "$dev" ] && dev="br-lan" - echo "$dev" -} - -# Enumerate all LAN-side IPv4 subnets, one per L3 interface. -# -# "LAN" = firewall zones that are NOT internet-facing. A zone is treated as LAN -# if it is named "lan", or if it is neither a wan zone nor masqueraded. This -# deliberately excludes VPN/tunnel zones (e.g. WireGuard/AmneziaWG awg*, which -# carry their own IPv4 and would otherwise be mistaken for LANs) because those -# are masqueraded out. Covers bridges (br-lan), bridge-VLANs and plain VLAN -# interfaces (eth0.20) uniformly via each interface's l3_device. -# -# Output: one line per subnet, "l3_device netbase_int block_size router_int" -# where membership can be tested without awk bit-ops: -# ip in subnet <=> ipint - (ipint % block) == netbase -tctl_lan_subnets() { - local i=0 zname zmasq nets net st l3 addr mask - local o1 o2 o3 o4 ipint block netbase - while zname=$(uci -q get "firewall.@zone[$i].name" 2>/dev/null); [ -n "$zname" ]; do - zmasq=$(uci -q get "firewall.@zone[$i].masq" 2>/dev/null) - nets=$(uci -q get "firewall.@zone[$i].network" 2>/dev/null) - i=$((i + 1)) - case "$zname" in wan|wan6) continue ;; esac - [ "$zname" != "lan" ] && [ "$zmasq" = "1" ] && continue - for net in $nets; do - st=$(ubus call "network.interface.$net" status 2>/dev/null) - l3=$(echo "$st" | jsonfilter -e '@.l3_device' 2>/dev/null) - addr=$(echo "$st" | jsonfilter -e '@["ipv4-address"][0].address' 2>/dev/null) - mask=$(echo "$st" | jsonfilter -e '@["ipv4-address"][0].mask' 2>/dev/null) - [ -n "$l3" ] && [ -n "$addr" ] && [ -n "$mask" ] || continue - [ "$mask" -ge 1 ] && [ "$mask" -le 32 ] 2>/dev/null || continue - o1=${addr%%.*}; rest=${addr#*.} - o2=${rest%%.*}; rest=${rest#*.} - o3=${rest%%.*}; o4=${rest##*.} - ipint=$(( (o1 << 24) + (o2 << 16) + (o3 << 8) + o4 )) - block=$(( 1 << (32 - mask) )) - netbase=$(( ipint - (ipint % block) )) - echo "$l3 $netbase $block $ipint" - done - done -} - -# Concrete devices to attach netdev ingress hooks to. -# -# A netdev ingress hook bound to a BRIDGE never sees bridged traffic: packets -# are received on the bridge's physical ports, so the hook must live there. -# Binding to br-lan silently matches nothing, which is exactly how upload -# limiting appeared to be applied while having no effect. Non-bridge L3 -# devices (plain ports, VLAN interfaces) are hooked directly. -tctl_ingress_devices() { - local sysfs="${TCTL_SYSFS_NET:-/sys/class/net}" - local dev port - for dev in $(tctl_get_lan_devices); do - if [ -d "$sysfs/$dev/brif" ]; then - for port in "$sysfs/$dev/brif/"*; do - [ -e "$port" ] || continue - basename "$port" - done - else - echo "$dev" - fi - done | sort -u -} - -# nft chain names for a device's hooks (chain names can't contain dots or -# dashes, which interface names routinely do). -tctl_ingress_chain() { - printf 'ul_%s' "$(printf '%s' "$1" | tr -c 'a-zA-Z0-9' '_')" -} - -tctl_egress_chain() { - printf 'dl_%s' "$(printf '%s' "$1" | tr -c 'a-zA-Z0-9' '_')" -} - -# LAN L3 device names only (deduplicated), e.g. "br-lan br-guest eth0.20". -tctl_get_lan_devices() { - tctl_lan_subnets | awk '{print $1}' | sort -u -} - -# Convert "a.b.c.d/m" (or a bare host address) to "netbase_int block_size", -# normalized to the network base. Fails silently on malformed input. -tctl_cidr_spec() { - local cidr="$1" addr mask rest o1 o2 o3 o4 ipint block - addr=${cidr%%/*} - mask=${cidr#*/} - [ "$mask" = "$cidr" ] && mask=32 - tctl_validate_ip "$addr" || return 1 - case "$mask" in ''|*[!0-9]*) return 1 ;; esac - [ "$mask" -ge 1 ] && [ "$mask" -le 32 ] || return 1 - o1=${addr%%.*}; rest=${addr#*.} - o2=${rest%%.*}; rest=${rest#*.} - o3=${rest%%.*}; o4=${rest##*.} - ipint=$(( (o1 << 24) + (o2 << 16) + (o3 << 8) + o4 )) - block=$(( 1 << (32 - mask) )) - echo "$(( ipint - (ipint % block) )) $block" -} - -# Downstream subnets routed via a next-hop on a LAN interface — e.g. clients -# behind a second router on the LAN whose packets are forwarded (and NATed on -# WAN) through this router with their original source addresses. Also includes -# operator-defined extras from trafficctl.main.extra_subnets (space-separated -# CIDRs) for setups without an explicit kernel route. -# Output format matches tctl_lan_subnets; router_int is 0 because no local -# address lives inside a routed subnet (consumers use 0 to tell routed from -# directly connected). -tctl_routed_subnets() { - local lan_devs dev cidr spec extras - lan_devs=$(tctl_get_lan_devices) - - if [ -n "$lan_devs" ]; then - ip route show 2>/dev/null | awk ' - $1 != "default" && / via / { - dev = "" - for (i = 1; i <= NF; i++) if ($i == "dev") dev = $(i+1) - if (dev != "") print $1, dev - }' | while read -r cidr dev; do - echo "$lan_devs" | grep -qxF "$dev" || continue - spec=$(tctl_cidr_spec "$cidr") || continue - echo "$dev $spec 0" - done - fi - - extras=$(uci -q get trafficctl.main.extra_subnets 2>/dev/null) - if [ -n "$extras" ]; then - dev=$(tctl_get_lan_device) - for cidr in $extras; do - spec=$(tctl_cidr_spec "$cidr") || continue - echo "$dev $spec 0" - done - fi -} - -# Every subnet worth monitoring: directly connected LANs first, then routed -# and extra ones. Duplicate prefixes are dropped (first wins, keeping the -# connected entry with its real router address). -tctl_monitored_subnets() { - { tctl_lan_subnets; tctl_routed_subnets; } | awk '!seen[$2":"$3]++' -} - -# True (0) when the IP belongs to a directly connected LAN subnet; routed and -# extra subnets do not count. Used to tell on-link devices from downstream -# ones that only have an L3 presence here. -tctl_ip_in_lan() { - local ip="$1" o1 o2 o3 o4 rest ipint - tctl_validate_ip "$ip" || return 1 - o1=${ip%%.*}; rest=${ip#*.} - o2=${rest%%.*}; rest=${rest#*.} - o3=${rest%%.*}; o4=${rest##*.} - ipint=$(( (o1 << 24) + (o2 << 16) + (o3 << 8) + o4 )) - tctl_lan_subnets | awk -v si="$ipint" ' - si - (si % $3) == $2 { hit = 1; exit } - END { exit hit ? 0 : 1 }' -} - -# Accept a single host address or a CIDR block ("all" means every address). -# Echoes the normalized target, or fails. -tctl_validate_target() { - local t="$1" addr mask - case "$t" in - all|any) echo "0.0.0.0/0"; return 0 ;; - esac - case "$t" in - */*) - addr=${t%%/*} - mask=${t#*/} - tctl_validate_ip "$addr" || return 1 - case "$mask" in ''|*[!0-9]*) return 1 ;; esac - [ "$mask" -ge 0 ] && [ "$mask" -le 32 ] || return 1 - echo "$addr/$mask" - ;; - *) - tctl_validate_ip "$t" || return 1 - echo "$t" - ;; - esac -} - -# A target usable inside an nft set/meter name or a rule comment. -tctl_target_slug() { - printf '%s' "$1" | tr './' '__' -} - -# Rule comments identify the target, not the caller. They used to be built from -# a caller-supplied label, so a block placed from LuCI (label "block_") and -# the same block seen from the Telegram bot (label "tg") produced different -# comments — removal grepped for the wrong one, found nothing, and still -# reported success. -tctl_block_comment() { - echo "tctl_block_$(tctl_target_slug "$1")" -} - -tctl_ratelimit_comment() { - echo "rl_ratelimit_$(tctl_target_slug "$1")" -} - -tctl_validate_ip() { - echo "$1" | grep -qE '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' || return 1 - local IFS='.' - # shellcheck disable=SC2086 - set -- $1 - [ "$1" -le 255 ] && [ "$2" -le 255 ] && [ "$3" -le 255 ] && [ "$4" -le 255 ] 2>/dev/null -} - -tctl_get_wifi_interfaces() { - uci show wireless 2>/dev/null | grep '=wifi-iface' | cut -d. -f2 | cut -d= -f1 -} - -# Running AP interface names, one per line (e.g. phy0-ap0), taken from the -# hostapd ubus objects. -# -# Returns non-zero when ubus itself could not be consulted. That is NOT the -# same as "no AP is running", and callers must not read an empty list as -# "nothing to enforce" unless the query actually succeeded — doing so would -# turn a broken router into a silent "blocked". -tctl_get_hostapd_ifaces() { - local out - command -v ubus >/dev/null 2>&1 || return 1 - out=$(ubus list 2>/dev/null) || return 1 - # An empty result is a valid answer -- "no AP is running" -- so the grep - # matching nothing must not be reported as a failed query. Only ubus itself - # failing, above, is that. - printf '%s\n' "$out" | grep '^hostapd\.' | cut -d. -f2- - return 0 -} - -# Which ACL policy a wifi-iface uses: "allow" (whitelist — only listed MACs may -# associate) or "deny" (blacklist — listed MACs are rejected). Anything else, -# including unset, means no filtering is configured yet, reported as "deny" -# because that is the mode we create on demand. -tctl_get_wifi_filter_mode() { - local iface="$1" mode - mode=$(uci -q get "wireless.${iface}.macfilter" 2>/dev/null) - [ "$mode" = "allow" ] && echo "allow" || echo "deny" -} - -# ── Runtime WiFi enforcement ────────────────────────────────────────────── -# -# The uci maclist is the durable half of a WiFi block; hostapd's running ACL is -# the half that decides whether the device is on the air *now*. The two drift -# apart whenever the runtime call cannot be made, and for a long time that -# drift was invisible: the calls below were fire-and-forget, their exit status -# discarded, so a router without hostapd-utils reported every block as done -# while the device kept browsing. -# -# So every entry point here reports how far enforcement actually got, as one -# of these words, and proves it by reading the state back rather than trusting -# a return code: -# -# acl - the running ACL was changed and the change was read back -# ban - no usable hostapd_cli; hostapd's ubus deauthed and banned the -# client, which expires on its own (see TCTL_WIFI_BAN_MS) -# none - nothing could be applied or verified on the running radio -# no-radio - ubus answered and no AP is running, so there is nothing to -# enforce; the uci maclist applies when wifi next starts -# -# Only "acl" and "no-radio" mean the operator's intent is in force, and the -# functions return 0 for exactly those two. - -# How long a ubus ban lasts, in milliseconds. Used only where hostapd_cli is -# unavailable: hostapd's ubus object has no ACL method (del_client, list_bans, -# get_clients, reload), so a timed ban is the strongest immediate measure it -# can offer. One hour is long enough to be worth doing and short enough that -# callers must keep calling it temporary rather than done. -TCTL_WIFI_BAN_MS=3600000 - -# hostapd_cli exists AND this AP's control socket answers. Both halves matter: -# the package can be absent (the router this bug was found on), or present -# while hostapd is not listening, and only a PONG shows the ACL commands will -# reach anything. -tctl_hostapd_cli_alive() { - command -v hostapd_cli >/dev/null 2>&1 || return 1 - hostapd_cli -i "$1" ping 2>/dev/null | grep -q PONG -} - -# Does the running ACL currently keep this MAC off the air? Read back from -# hostapd instead of inferred from our own call: hostapd_cli exits 0 for -# "command delivered", and an ACL that stays empty afterwards is exactly the -# failure being guarded against. hostapd also reloads its maclist file at times -# of its own choosing, so the entry present may not be the one we added — which -# is fine, and another reason to ask rather than assume. -tctl_hostapd_acl_blocks() { - local iface="$1" mac="$2" mode="$3" acl - if [ "$mode" = "allow" ]; then - acl=$(hostapd_cli -i "$iface" accept_acl SHOW 2>/dev/null) - ! printf '%s\n' "$acl" | grep -qi "$mac" - else - acl=$(hostapd_cli -i "$iface" deny_acl SHOW 2>/dev/null) - printf '%s\n' "$acl" | grep -qi "$mac" - fi -} - -tctl_hostapd_ubus_banned() { - local iface="$1" mac="$2" - command -v ubus >/dev/null 2>&1 || return 1 - ubus call "hostapd.$iface" list_bans 2>/dev/null | grep -qi "$mac" -} - -# Fallback when hostapd_cli is unusable. del_client deauthenticates and refuses -# the client for ban_time, which is not an ACL entry — the durable half stays -# the uci maclist. The call's own exit status is deliberately ignored: it can -# fail for a client that is not currently associated while the ban still lands, -# and list_bans is the only answer worth having. -tctl_hostapd_ubus_ban() { - local iface="$1" mac="$2" - command -v ubus >/dev/null 2>&1 || return 1 - ubus call "hostapd.$iface" del_client \ - "{\"addr\":\"$mac\",\"reason\":1,\"deauth\":true,\"ban_time\":$TCTL_WIFI_BAN_MS}" \ - >/dev/null 2>&1 - tctl_hostapd_ubus_banned "$iface" "$mac" -} - -# acl > ban > none, so a loop over several APs can keep the worst result. -tctl_enforce_rank() { - case "$1" in - acl) echo 3 ;; - ban) echo 2 ;; - *) echo 1 ;; - esac -} - -tctl_hostapd_block_iface() { - local iface="$1" mac="$2" mode="$3" - if tctl_hostapd_cli_alive "$iface"; then - if [ "$mode" = "allow" ]; then - hostapd_cli -i "$iface" accept_acl DEL_MAC "$mac" >/dev/null 2>&1 - else - hostapd_cli -i "$iface" deny_acl ADD_MAC "$mac" >/dev/null 2>&1 - fi - hostapd_cli -i "$iface" deauthenticate "$mac" >/dev/null 2>&1 - if tctl_hostapd_acl_blocks "$iface" "$mac" "$mode"; then - echo acl - return - fi - fi - if tctl_hostapd_ubus_ban "$iface" "$mac"; then - echo ban - return - fi - echo none -} - -tctl_hostapd_unblock_iface() { - local iface="$1" mac="$2" mode="$3" - if tctl_hostapd_cli_alive "$iface"; then - if [ "$mode" = "allow" ]; then - hostapd_cli -i "$iface" accept_acl ADD_MAC "$mac" >/dev/null 2>&1 - else - hostapd_cli -i "$iface" deny_acl DEL_MAC "$mac" >/dev/null 2>&1 - fi - if ! tctl_hostapd_acl_blocks "$iface" "$mac" "$mode"; then - # The ACL permits the MAC again, but a ban left over from an - # earlier hostapd_cli-less block would still keep it off the air, - # and there is no ubus method to lift one. - if tctl_hostapd_ubus_banned "$iface" "$mac"; then - echo ban - else - echo acl - fi - return - fi - fi - if tctl_hostapd_ubus_banned "$iface" "$mac"; then - echo ban - return - fi - echo none -} - -# Applies $2 ("allow"/"deny" ACL policy) to every running AP and echoes the -# worst per-AP outcome. Always safe to re-run: it enforces from the runtime -# state, so calling it on a MAC that uci already lists is how a block that was -# only ever written to config gets applied for real. -tctl_hostapd_apply_mac() { - local op="$1" mac="$2" mode="$3" - local ifaces iface state rank worst=3 - ifaces=$(tctl_get_hostapd_ifaces) || { echo none; return 1; } - if [ -z "$ifaces" ]; then - echo no-radio - return 0 - fi - for iface in $ifaces; do - case "$op" in - block) state=$(tctl_hostapd_block_iface "$iface" "$mac" "$mode") ;; - *) state=$(tctl_hostapd_unblock_iface "$iface" "$mac" "$mode") ;; - esac - rank=$(tctl_enforce_rank "$state") - [ "$rank" -lt "$worst" ] && worst="$rank" - done - case "$worst" in - 3) echo acl; return 0 ;; - 2) echo ban ;; - *) echo none ;; - esac - return 1 -} - -tctl_hostapd_block_mac() { - tctl_hostapd_apply_mac block "$1" "$2" -} - -tctl_hostapd_unblock_mac() { - tctl_hostapd_apply_mac unblock "$1" "$2" -} - -# A device listed as WiFi-blocked while it is associated on a radio right now -# is proof the running ACL does not carry the block — the state a silent -# enforcement failure leaves a router in. Keyed off conn_type rather than the -# station dump so it still holds where iw is missing and the connection type -# came from the bridge port instead. -tctl_wifi_block_pending() { - local blocked="$1" conn_type="$2" - [ "$blocked" = "1" ] || return 1 - case "$conn_type" in - wifi|2.4G|5G|6G) return 0 ;; - esac - return 1 -} - -# ── Persistence ─────────────────────────────────────────────────────────── - -TCTL_RULES_FILE="/etc/trafficctl/rules.json" - -tctl_persist_enabled() { - [ "$(uci -q get trafficctl.main.persist_rules 2>/dev/null)" = "1" ] -} - -tctl_persist_save() { - local type="$1" ip="$2" param="$3" mode="$4" param_up="$5" - [ -d "$(dirname "$TCTL_RULES_FILE")" ] || mkdir -p "$(dirname "$TCTL_RULES_FILE")" - [ -f "$TCTL_RULES_FILE" ] || echo '[]' > "$TCTL_RULES_FILE" - local tmp="${TCTL_RULES_FILE}.tmp" - # The mode field is written only when the caller has one, so records for - # rule types that have no bucket layout (blocks, port forwards) keep their - # exact previous shape. param_up follows the same rule: the caller passes it - # only for an asymmetric limit, so a symmetric one still writes the record - # it always wrote and an older package can still read it back. - local extra="" - [ -n "$mode" ] && extra=",\"mode\":\"$mode\"" - [ -n "$param_up" ] && extra="$extra,\"param_up\":\"$param_up\"" - # Remove existing entry for same ip+type, append new one - awk -v ip="$ip" -v t="$type" -v p="$param" -v x="$extra" ' - { - gsub(/^\[/,""); gsub(/\]$/,"") - n=split($0, items, "},{") - printf "[" - first=1 - for (i=1; i<=n; i++) { - sub(/^\{/,"",items[i]); sub(/\}$/,"",items[i]) - # index(), not ~: these values reach awk as a REGEX otherwise, and - # its safety then rests on an argument about which characters the - # fields can hold. That argument happens to hold today — an address - # or a CIDR carries only the dot, which among valid values can line - # up with nothing but another dot — but it is not a property of the - # code, and the next field added here would not have it. A fixed - # string search needs no such argument. - if (index(items[i], "\"ip\":\"" ip "\"") && index(items[i], "\"type\":\"" t "\"")) continue - if (!first) printf "," - printf "{%s}", items[i] - first=0 - } - if (!first) printf "," - printf "{\"type\":\"%s\",\"ip\":\"%s\",\"param\":\"%s\"%s}]", t, ip, p, x - }' "$TCTL_RULES_FILE" > "$tmp" - mv "$tmp" "$TCTL_RULES_FILE" -} - -tctl_persist_remove() { - local type="$1" ip="$2" - [ -f "$TCTL_RULES_FILE" ] || return 0 - local tmp="${TCTL_RULES_FILE}.tmp" - awk -v ip="$ip" -v t="$type" ' - { - gsub(/^\[/,""); gsub(/\]$/,"") - n=split($0, items, "},{") - printf "[" - first=1 - for (i=1; i<=n; i++) { - sub(/^\{/,"",items[i]); sub(/\}$/,"",items[i]) - # index(), not ~: these values reach awk as a REGEX otherwise, and - # its safety then rests on an argument about which characters the - # fields can hold. That argument happens to hold today — an address - # or a CIDR carries only the dot, which among valid values can line - # up with nothing but another dot — but it is not a property of the - # code, and the next field added here would not have it. A fixed - # string search needs no such argument. - if (index(items[i], "\"ip\":\"" ip "\"") && index(items[i], "\"type\":\"" t "\"")) continue - if (!first) printf "," - printf "{%s}", items[i] - first=0 - } - printf "]" - }' "$TCTL_RULES_FILE" > "$tmp" - mv "$tmp" "$TCTL_RULES_FILE" -} - -# ── New-device ledger ───────────────────────────────────────────────────── -# -# Which MAC addresses this router has already seen. The default-limit feature -# keys off it, which makes the ledger safety-critical in one direction only: -# wrongly calling a device NEW applies an unasked-for limit, while wrongly -# calling it KNOWN merely does nothing. Every ambiguous case below therefore -# resolves to "known". -# -# It lives in /etc/trafficctl (kept across sysupgrade by keep.d) rather than -# in tmpfs. A ledger that reset on reboot would make every device on the LAN -# new again on the next lease renewal — the same mass-limiting accident, just -# reached more slowly. Flash cost is bounded by device count, not by DHCP -# traffic: an entry is appended only for a MAC that is not already listed. -TCTL_SEEN_FILE="/etc/trafficctl/seen_macs" -TCTL_SEEN_MAX=1000 -# TCTL_LEASES_FILE is set once at the top of this file (overridable for tests). -TCTL_SHAPES_FILE="/etc/trafficctl/shapes.json" - -# " " for every shape in shapes.json — the only way from an -# address to its HTB class, because minors are ALLOCATED (see -# trafficctl-shape.sh), not derived from the address. Readers that derived -# them anyway showed one device's rate on another. -# -# Same record pattern as shapes_entries in trafficctl-shape.sh, optional -# rate_kbit_up included: a pattern that misses a record form makes that shape -# vanish from every reader. A record from before allocation carries no -# classid, and its class is still the one the old derivation gave it -# (legacy_classid there), so that is what it maps to. -tctl_shape_classmap() { - grep -oE '\{"ip":"[^"]+","rate_kbit":[0-9]+(,"classid":"1:[0-9a-f]+")?(,"rate_kbit_up":[0-9]+)?\}' \ - "$TCTL_SHAPES_FILE" 2>/dev/null | awk ' - { - if (!match($0, /"ip":"[^"]+"/)) next - ip = substr($0, RSTART + 6, RLENGTH - 7) - if (match($0, /"classid":"1:[0-9a-f]+"/)) { - print ip, substr($0, RSTART + 11, RLENGTH - 12) - next - } - if (split(ip, o, ".") != 4) next - dec = o[3] * 256 + o[4] - if (dec < 2 || dec > 65533) next - printf "%s 1:%x\n", ip, dec - }' -} - -# The IFB device upload shaping runs on (see trafficctl-shape.sh). -tctl_shape_ifb_dev() { - local d - d=$(uci -q get trafficctl.main.shape_ifb 2>/dev/null) - echo "${d:-tctl-ifb0}" -} - -# "classid rate_kbit" for every per-device HTB class on a device, from one tc -# call. On the LAN device that is the download ceiling, on the IFB the upload -# one: a shape uses the same classid on both. -tctl_tc_class_rates() { - command -v tc >/dev/null 2>&1 || return 0 - tc class show dev "$1" 2>/dev/null | awk ' - /^class htb 1:/ { - classid=$3 - minor=classid; sub(/^1:/,"",minor) - if (minor=="1" || minor=="fffe") next - rate=0 - for (i=1;i<=NF;i++) { - if ($i=="rate") { - v=$(i+1) - if (v ~ /Gbit/) { sub(/Gbit/,"",v); rate=(v+0)*1000000 } - else if (v ~ /Mbit/) { sub(/Mbit/,"",v); rate=(v+0)*1000 } - else if (v ~ /[Kk]bit/){ sub(/[Kk]bit/,"",v); rate=v+0 } - else { rate=(v+0)/1000 } - break - } - } - print classid, rate - }' -} - -tctl_seen_normalize() { - printf '%s' "$1" | tr 'A-Z' 'a-z' -} - -# Take the baseline from the devices already on the network, so switching the -# feature on does not declare the existing LAN to be new. Callers should do -# this at a moment when the network is up (i.e. from the rpcd setter, on an -# operator's action) rather than early in boot, when both sources are empty. -tctl_seen_seed() { - [ -f "$TCTL_SEEN_FILE" ] && return 0 - mkdir -p "$(dirname "$TCTL_SEEN_FILE")" 2>/dev/null - { - awk '{ print $2 }' "$TCTL_LEASES_FILE" 2>/dev/null - ip neigh show 2>/dev/null | awk '/lladdr/ { print $5 }' - } | tr 'A-Z' 'a-z' \ - | grep -E '^([0-9a-f]{2}:){5}[0-9a-f]{2}$' \ - | sort -u > "${TCTL_SEEN_FILE}.tmp" 2>/dev/null - mv "${TCTL_SEEN_FILE}.tmp" "$TCTL_SEEN_FILE" 2>/dev/null -} - -tctl_seen_count() { - [ -f "$TCTL_SEEN_FILE" ] || { echo 0; return 0; } - wc -l < "$TCTL_SEEN_FILE" 2>/dev/null | tr -d ' ' || echo 0 -} - -# "Known" is the safe answer, so an unreadable MAC or a missing ledger says -# yes. Whether the ledger EXISTS is a separate question, asked by the caller -# through tctl_seen_ready before it acts on a negative. -tctl_seen_known() { - local mac - mac=$(tctl_seen_normalize "$1") - [ -n "$mac" ] || return 0 - [ -f "$TCTL_SEEN_FILE" ] || return 0 - grep -qxF "$mac" "$TCTL_SEEN_FILE" 2>/dev/null -} - -tctl_seen_ready() { - [ -f "$TCTL_SEEN_FILE" ] -} - -tctl_seen_mark() { - local mac n keep - mac=$(tctl_seen_normalize "$1") - [ -n "$mac" ] || return 0 - # Not tctl_seen_known alone: it answers "known" for a missing ledger, - # which here would mean never writing the first entry. - if [ -f "$TCTL_SEEN_FILE" ] && tctl_seen_known "$mac"; then - return 0 - fi - mkdir -p "$(dirname "$TCTL_SEEN_FILE")" 2>/dev/null - printf '%s\n' "$mac" >> "$TCTL_SEEN_FILE" - - # Trim from the head when the ledger outgrows the cap. A device dropped - # this way can be seen as new again later; the cap sits far above any - # plausible LAN, so that is a theoretical cost against an unbounded file. - n=$(tctl_seen_count) - if [ "$n" -gt "$TCTL_SEEN_MAX" ]; then - keep=$((TCTL_SEEN_MAX * 4 / 5)) - tail -n "$keep" "$TCTL_SEEN_FILE" > "${TCTL_SEEN_FILE}.tmp" 2>/dev/null && - mv "${TCTL_SEEN_FILE}.tmp" "$TCTL_SEEN_FILE" - fi -} - -# Does this address already carry a limit somebody set deliberately? -# -# Live nft/tc state alone is not a sufficient answer. After a reboot the -# restore hook runs on `ifup lan` and only when persist_rules is on, so a -# device with a manual limit reads as unlimited until then — and a default -# limit applied in that window would silently overwrite the operator's -# choice. The persisted files are consulted as well. -tctl_has_limit() { - local ip="$1" - [ -n "$ip" ] || return 1 - - /usr/local/bin/trafficctl-ratelimit-stats.sh 2>/dev/null \ - | grep -qF "\"ip\":\"$ip\"" && return 0 - /usr/local/bin/trafficctl-shape-stats.sh 2>/dev/null \ - | grep -qF "\"ip\":\"$ip\"" && return 0 - - if [ -f "$TCTL_RULES_FILE" ]; then - grep -qF "\"ip\":\"$ip\"" "$TCTL_RULES_FILE" 2>/dev/null && return 0 - fi - if [ -f "$TCTL_SHAPES_FILE" ]; then - grep -qF "\"ip\":\"$ip\"" "$TCTL_SHAPES_FILE" 2>/dev/null && return 0 - fi - return 1 -} - -# ── Activity Logging ────────────────────────────────────────────────────── - -TCTL_LOG_TAG="trafficctl" - -tctl_log_enabled() { - [ "$(uci -q get trafficctl.logging.enabled 2>/dev/null)" = "1" ] -} - -tctl_log_category_enabled() { - local cat="$1" - [ "$(uci -q get "trafficctl.logging.log_${cat}" 2>/dev/null)" != "0" ] -} - -TCTL_LOG_DEFAULT="/tmp/trafficctl/activity.log" - -# The log path is writable through the LuCI write ACL and is used both as an -# append target and as a tail/rewrite target, so an unconstrained value is an -# arbitrary root read and truncate. Only dedicated log locations are accepted. -tctl_validate_log_file() { - local f="$1" - case "$f" in - /tmp/trafficctl/*|/var/log/*) ;; - *) return 1 ;; - esac - case "$f" in - */../*|*/..|*/) return 1 ;; - esac - # Path characters are restricted rather than blacklisted so no shell or glob - # metacharacter can reach the redirect, tail or mv below. - case "$f" in - *[!A-Za-z0-9._/-]*) return 1 ;; - esac - return 0 -} - -tctl_log_file() { - local f - f=$(uci -q get trafficctl.logging.log_file 2>/dev/null) - if [ -n "$f" ] && tctl_validate_log_file "$f"; then - echo "$f" - else - echo "$TCTL_LOG_DEFAULT" - fi -} - -# Rotation keeps 3/5 of the cap, so a cap below 5 would round to zero lines and -# empty the file on the next write. -tctl_log_max_lines() { - local n - n=$(uci -q get trafficctl.logging.max_lines 2>/dev/null) - case "$n" in - ''|*[!0-9]*) echo 500; return 0 ;; - esac - [ "$n" -ge 20 ] 2>/dev/null || { echo 20; return 0; } - [ "$n" -le 100000 ] 2>/dev/null || { echo 100000; return 0; } - echo "$n" -} - -tctl_log() { - local action="$1" target="$2" detail="$3" via="${4:-cli}" src="${5:-local}" - tctl_log_enabled || return 0 - - local category - case "$action" in - # The global cut is a block, just a wider one — it belongs in the same - # category so switching "Blocks" off does not leave it unlogged. - block|unblock|cut|uncut) category="blocks" ;; - ratelimit*) category="ratelimits" ;; - shape*) category="shapes" ;; - telegram*) category="telegram" ;; - config*) category="config" ;; - *) category="config" ;; - esac - tctl_log_category_enabled "$category" || return 0 - - local ts user log_file max_lines - ts=$(date '+%Y-%m-%d %H:%M:%S') - user="${TCTL_USER:-$(id -un 2>/dev/null || echo unknown)}" - log_file=$(tctl_log_file) - max_lines=$(tctl_log_max_lines) - - local entry="[$TCTL_LOG_TAG] $ts src=$src user=$user via=$via action=$action target=$target${detail:+ detail=$detail}" - - [ -d "$(dirname "$log_file")" ] || mkdir -p "$(dirname "$log_file")" - echo "$entry" >> "$log_file" - - # Rotate if over max_lines - local lc - lc=$(wc -l < "$log_file" 2>/dev/null || echo 0) - if [ "$lc" -gt "$max_lines" ]; then - local keep=$(( max_lines * 3 / 5 )) - tail -n "$keep" "$log_file" > "${log_file}.tmp" - mv "${log_file}.tmp" "$log_file" - fi - - # Duplicate to syslog if configured - if [ "$(uci -q get trafficctl.logging.syslog 2>/dev/null)" = "1" ]; then - logger -t "$TCTL_LOG_TAG" "$ts src=$src user=$user via=$via action=$action target=$target${detail:+ detail=$detail}" - fi -} - -# ── Flow Offload Detection ───────────────────────────────────────────────── - -tctl_get_offload_mode() { - local sw hw - sw=$(uci -q get firewall.@defaults[0].flow_offloading 2>/dev/null) - hw=$(uci -q get firewall.@defaults[0].flow_offloading_hw 2>/dev/null) - if [ "$hw" = "1" ]; then - # kernel 5.7+ supports counter sync on flowtables (docs.kernel.org/networking/nf_flowtable.html). - # OpenWrt 22.03+ fw4 sets the counter flag by default, syncing hardware - # byte counts back to conntrack — monitoring works. - if nft list flowtables 2>/dev/null | grep -q "counter"; then - echo "hardware-counter" - else - echo "hardware" - fi - elif [ "$sw" = "1" ]; then - # A counter-flagged flowtable syncs offloaded byte counts back to - # conntrack, so conntrack accounting stays valid — worth - # distinguishing, because the nft-map fallback needs dynamic counter - # maps that many kernels don't support. - if nft list flowtables 2>/dev/null | grep -q "counter"; then - echo "software-counter" - else - echo "software" - fi - else - echo "none" - fi -} - -# ── Qualcomm NSS / ECM Detection ─────────────────────────────────────────── -# -# On Qualcomm NSS builds (ipq807x/ipq60xx with qca-nss-ecm, qca-nss-drv and -# qca-nss-clients) the Enhanced Connection Manager installs flow rules into -# the NSS firmware cores, and an accelerated flow NEVER TRAVERSES THE LINUX -# NETWORK STACK. Both of this package's enforcement paths are therefore inert -# on such a router: the nftables netdev policer never sees the packets, and -# Linux HTB/IFB never gets to queue them. Reported in issue #81, where a user -# applied WiFi client limits and nothing was limited. -# -# Nothing here attempts to fix that — an NSS backend would mean nsshtb/nsstbl -# and act_nssmirred in place of htb and ifb, which needs hardware to develop -# against. What these helpers do is let the callers STOP REPORTING SUCCESS for -# a rule that cannot be enforced, which is the part that can be made correct -# without hardware and is the actual complaint. -# -# Named by absolute path, as it must be on the router; the tests sed this line -# into their scratch directory (same approach as TCTL_LEASES_FILE above). -TCTL_ECM_DEBUGFS="/sys/kernel/debug/ecm" - -# absent — no ECM on this system; every rule this package installs applies -# normally and nothing needs qualifying. -# stopped — ECM is present but its front end has been stopped, so flows are -# back on the Linux path and our rules DO apply. -# active — ECM is accelerating. Our rules are installed but not enforced for -# any accelerated flow. -# -# The distinction between "stopped" and "active" is deliberate and is read -# from the kernel rather than inferred from the packages installed: somebody -# who has turned acceleration off to get working QoS must not be told their -# limits do not work. -tctl_nss_status() { - [ -d "$TCTL_ECM_DEBUGFS" ] || { printf 'absent\n'; return 0; } - local v4 v6 - v4=$(cat "$TCTL_ECM_DEBUGFS/front_end_ipv4_stop" 2>/dev/null) - v6=$(cat "$TCTL_ECM_DEBUGFS/front_end_ipv6_stop" 2>/dev/null) - # Both stopped is the only state in which the Linux datapath is whole. A - # missing knob is NOT read as stopped: an ECM build whose debugfs layout we - # do not recognise is still accelerating, and guessing "stopped" there - # would restore exactly the false success this exists to remove. - if [ "$v4" = "1" ] && [ "$v6" = "1" ]; then - printf 'stopped\n' - else - printf 'active\n' - fi -} - -tctl_nss_active() { [ "$(tctl_nss_status)" = "active" ]; } - -# The suffix every caller appends to its own message. One wording in one place, -# so the limiter, the shaper and the block path cannot drift into describing -# the same condition three different ways. -tctl_nss_note() { - tctl_nss_active || return 0 - printf ' [NOT ENFORCED: Qualcomm NSS acceleration is active — accelerated flows bypass the Linux network stack entirely, so this rule is installed but has no effect. Stop acceleration (echo 1 > %s/front_end_ipv4_stop, same for ipv6) or set acceleration_engine in /etc/config/ecm, then re-apply]' \ - "$TCTL_ECM_DEBUGFS" -} - -# The suffix a caller appends when the rule it just installed will not be -# written down, and so will not come back after a reboot (#105). -# -# Same principle as the IPv6 and NSS qualifiers: this package says what a -# success does NOT cover rather than letting the operator discover it later. -# Here "later" meant the next reboot, which is the worst possible moment to -# find out that a device you blocked is online again. -tctl_persist_note() { - tctl_persist_enabled && return 0 - printf ' [NOT PERSISTENT: this will be lost on reboot — persistence is off. Enable it with `uci set trafficctl.main.persist_rules=1 && uci commit trafficctl`, or in Settings → Logging & Persistence, then re-apply]' -} - -# Defunct the flows ECM has already accelerated. -# -# This is the NSS counterpart of the `conntrack -D` every rule change already -# does, and it is needed for the same reason: a flow that is ALREADY offloaded -# is not re-evaluated against a rule that appeared afterwards, so without this -# a new block or limit would only affect connections started later — which -# presents as "it works sometimes". -# -# Best effort by design: absent on every non-NSS router, and a write failure -# must never fail the operation the caller is performing. UNVERIFIED ON -# HARDWARE — there is no IPQ device here to test it against, so it is wired in -# as an addition to the existing flush rather than as something any result -# depends on. -tctl_nss_defunct() { - local f="$TCTL_ECM_DEBUGFS/ecm_db/defunct_all" - [ -w "$f" ] || return 0 - echo 1 > "$f" 2>/dev/null || true - return 0 -} diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-history.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-history.sh deleted file mode 100755 index 22b57c1ab..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-history.sh +++ /dev/null @@ -1,1052 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Durable per-device traffic history, accumulated per accounting period. -# -# WHY THIS EXISTS (#89, #90) -# trafficctl-totals.sh already computes correct lifetime totals, but its store -# is /tmp/trafficctl_totals.state — tmpfs, deliberately: that file is -# rewritten on every LuCI poll (2-10 s) and every metrics scrape, and that -# write volume into flash would wear the device out. So the numbers existed -# and had nowhere durable to go. Everything here is persistence and -# windowing; no new accounting. -# -# ONE FILE PER PERIOD -#
/.tsv, where period is 2026-10-09 / 2026-W41 / 2026-10. The -# "reset every day/week/month" request is then a no-op — a new period is a -# new filename — and retention is a file delete rather than a rewrite of -# everything. A finished period's file is never touched again, which also -# means a crash can only ever damage the current one. -# -# TSV, NOT JSON -# An interrupted write to a JSON file costs the whole file; to a TSV, its -# last line. This runs on a device that can lose power mid-write and whose -# store may sit on a network mount. Rewrites still go through a temp file in -# the SAME directory and a mv, because a temp file elsewhere plus a -# cross-filesystem mv is not atomic — and "elsewhere" is exactly what -# happens when dir points at a mount. -# -# DELTAS, NOT SNAPSHOTS -# A flush folds in only the growth since the previous flush, tracked in a -# tmpfs cursor. If the live total is BELOW the cursor the accumulator was -# reset (reboot, counter source switch), so the flush rebaselines and adds -# nothing rather than subtracting — a reboot costs at most one interval of -# traffic instead of corrupting the period. The cursor lives in tmpfs on -# purpose: it must die together with the accumulator it tracks, or the first -# flush after a reboot would subtract a stale high-water mark from a -# restarted counter. -# -# HOW ACCURATE THE STORED NUMBERS ARE -# Three different answers, and the store has to say which one applies rather -# than present all three as "bytes used". -# -# 1. UNCOUNTERED OFFLOAD — "degraded". With flow offloading on and no -# counter-flagged flowtable, an offloaded flow's counters stop moving -# while traffic continues; if the nft-map fallback is also unavailable, -# there is nothing left that sees those packets. The total is then a LOWER -# BOUND that can be arbitrarily far below reality, not an approximation -# around it. trafficctl-bytes.sh flags this, totals keeps the flag STICKY -# per device, and it is stored per row here — a consumer must label such a -# row, never add it to a trustworthy sum. -# -# 2. CONNTRACK SOURCE — sampled, so short flows can be missed. Conntrack -# reports what its CURRENTLY TRACKED flows have carried, which means a -# flow that starts and finishes entirely between two samples was never -# seen by any of them. At the dashboard's 2 s poll that is noise; at an -# hourly flush it would be most of the traffic. That is why `sample` is a -# subcommand of its own, driven at sample_interval (tmpfs only, no flash -# writes), and why the flush interval is NOT the sampling interval. -# -# 3. NFT COUNTER MAPS — cumulative since the table was built, so independent -# of sampling rate and exact. They cannot split TCP from UDP, which is why -# those columns report -1 rather than 0. -# -# Common to all three: the counters are read BEFORE the shaper, so they -# describe what arrived for a device, not what was delivered to it. -# -# NEVER IN A REQUEST PATH -# flush is driven by its own timer. A flash write triggered by somebody -# having a browser tab open is the wrong coupling, and if dir is on a dead -# NFS/CIFS mount the writer blocks — which must not be able to stall a device -# poll. Writes are wrapped in a timeout where one is available and a failure -# parks history in a visible error state instead of retrying silently. -# -# Usage: -# trafficctl-history.sh sample advance the live accumulator (tmpfs only) -# trafficctl-history.sh flush fold live totals into the current period -# trafficctl-history.sh read [period] JSON rows for one period (default: current) -# trafficctl-history.sh read JSON rows aggregated over a range -# trafficctl-history.sh periods JSON list of stored periods -# trafficctl-history.sh prune drop periods beyond the retention count -# trafficctl-history.sh status JSON: enabled, dir, writability, last error -# trafficctl-history.sh keeper the procd service loop (sample + flush) -# trafficctl-history.sh validate-dir

exit 0 if p is an allowed store dir - -. /usr/local/bin/trafficctl-fw.sh - -# Named by absolute path, as they must be on the router; the tests sed these -# lines into their scratch directory rather than have the shipped script carry -# test-only overrides (same approach as trafficctl-totals.sh and the ledger -# paths in trafficctl-fw.sh). All four are tmpfs: see DELTAS, NOT SNAPSHOTS -# above for why the cursor in particular must not survive a reboot. -CURSOR="/tmp/trafficctl_history.cursor" -ERRFILE="/tmp/trafficctl_history.err" -STAMP="/tmp/trafficctl_history.stamp" -LOCKD="/tmp/trafficctl_history.lock.d" -TOTALS_STATE="/tmp/trafficctl_totals.state" -IFCURSOR="/tmp/trafficctl_history.ifcursor" -# Per-period, and suffixed with the period id so a period roll starts a fresh -# one instead of needing to be cleared. tmpfs: it is rebuilt from the durable -# file whenever it is missing, which is every boot. -IFACC="/tmp/trafficctl_history.ifacc" - -# Row layout, tab-separated: -# key mac ip name rx tx tcp udp first_seen last_seen degraded -# key is "mac:" or "ip:" (see hist_key). Fields are appended at the -# END in later versions so an older reader keeps working, same rule the -# shape/limit record formats follow. -FORMAT=1 - -hist_enabled() { - [ "$(uci -q get trafficctl.history.enabled 2>/dev/null)" = "1" ] -} - -# The store directory is both a mkdir -p target and a delete target (prune -# removes *.tsv inside it), so an unconstrained value would hand the write ACL -# arbitrary directory creation plus the removal of any .tsv on the filesystem. -# That is the same mistake tctl_validate_log_file exists to prevent, and it is -# enforced HERE as well as in the rpcd setter — a value that reached the config -# by another route must not be honoured either. -# -# The allowed roots cover the cases the feature is for: the package's own state -# directory, and the usual mount points, which is where a network share or a -# USB disk lands. -HIST_DIR_DEFAULT="/etc/trafficctl/history" - -hist_validate_dir() { - local d="$1" - case "$d" in - */../*|*/..|../*|..) return 1 ;; - *[\'\"\$\`\|\;\&\<\>]*) return 1 ;; - /etc/trafficctl/*|/mnt/*|/media/*|/srv/*|/tmp/*) ;; - *) return 1 ;; - esac - # A bare root would make prune's delete set the whole of /mnt. - case "$d" in - /etc/trafficctl/|/mnt/|/media/|/srv/|/tmp/) return 1 ;; - esac - return 0 -} - -hist_dir() { - local d - d=$(uci -q get trafficctl.history.dir 2>/dev/null) - d="${d%/}" - # An absolute path inside an allowed root, or the default. A relative path - # would resolve against whatever directory the caller happened to be in — - # the procd service, rpcd and an interactive shell all differ — and - # silently scatter period files. - hist_validate_dir "$d" || d="$HIST_DIR_DEFAULT" - printf '%s\n' "$d" -} - -hist_period_kind() { - case "$(uci -q get trafficctl.history.period 2>/dev/null)" in - day) printf 'day\n' ;; - week) printf 'week\n' ;; - *) printf 'month\n' ;; - esac -} - -hist_keep() { - local k - k=$(uci -q get trafficctl.history.keep 2>/dev/null) - case "$k" in - ''|*[!0-9]*) k=12 ;; - esac - [ "$k" -lt 1 ] && k=1 - [ "$k" -gt 120 ] && k=120 - printf '%s\n' "$k" -} - -hist_interval() { - local i - i=$(uci -q get trafficctl.history.interval 2>/dev/null) - case "$i" in - ''|*[!0-9]*) i=3600 ;; - esac - # Floor of 300 s. The point of this store is to stay off the flash write - # path; a 10 s interval would reproduce exactly the problem that put the - # live accumulator in tmpfs. - [ "$i" -lt 300 ] && i=300 - printf '%s\n' "$i" -} - -# How often the live accumulator is advanced. Separate from the flush interval -# and much shorter, because of accuracy note 2 above: with a conntrack source, -# anything that starts and ends between two samples is invisible. This costs a -# conntrack read and a tmpfs write, and never touches flash. -hist_sample_interval() { - local i - i=$(uci -q get trafficctl.history.sample_interval 2>/dev/null) - case "$i" in - ''|*[!0-9]*) i=60 ;; - esac - [ "$i" -lt 10 ] && i=10 - [ "$i" -gt 3600 ] && i=3600 - printf '%s\n' "$i" -} - -# Period id for a timestamp. ISO week uses %G with %V, not %Y: in the days -# where the calendar year and the ISO week year disagree, %Y-%V names a week -# that belongs to the other year and two different weeks collide on one id. -hist_period_id() { - local when="${1:-}" kind - kind=$(hist_period_kind) - case "$kind" in - day) set -- '+%Y-%m-%d' ;; - week) set -- '+%G-W%V' ;; - *) set -- '+%Y-%m' ;; - esac - if [ -n "$when" ]; then - date -d "@$when" "$1" 2>/dev/null || date "$1" - else - date "$1" - fi -} - -hist_file() { printf '%s/%s.tsv\n' "$(hist_dir)" "$1"; } - -# Interface totals live in their OWN file per period, not as an extra record -# type in the device file (#102). -# -# The issue proposed a type column. A separate file is better for the reason -# that matters here: hist_read emits every row it finds as a device, so an -# interface row sharing the file would be reported AS a device by any reader -# that predates the change — including the History tab as shipped in v1.22.0. -# A file the old reader never opens cannot be misread. -hist_iffile() { printf '%s/%s.if.tsv\n' "$(hist_dir)" "$1"; } - -# Per-interface accumulation can be turned off on its own: on a single-WAN -# router it is a handful of rows nobody reads, and the point of the feature is -# multi-WAN. -hist_ifaces_enabled() { - [ "$(uci -q get trafficctl.history.interfaces 2>/dev/null)" != "0" ] -} - -hist_err_set() { - printf '%s\t%s\n' "$(date +%s)" "$1" > "$ERRFILE" 2>/dev/null - tctl_log config "history: $1" 2>/dev/null || true -} -hist_err_clear() { rm -f "$ERRFILE" 2>/dev/null; } - -# Wrap a durable write so a hung mount cannot park this process for ever. -# BusyBox ships timeout, but not every build enables it, so its absence -# degrades to an unguarded call rather than to no write at all. -hist_guard() { - if command -v timeout >/dev/null 2>&1; then - timeout 15 "$@" - else - "$@" - fi -} - -# "mac:" where a MAC can be established, else "ip:". -# -# IP is the wrong key for history even though it is the right one for live -# monitoring: a device offline for a week comes back on a different lease, and -# its old address gets handed to something else — so IP-keyed history silently -# merges two devices. MAC is stable. -# -# It is not always available. Clients behind a downstream router and anything -# in extra_subnets have no lease and no neighbour entry here, and -# tctl_ip_is_nexthop deliberately refuses a router's own MAC (it is the source -# of every packet it forwards, so trusting it would collapse a whole subnet -# into one row). Those get an ip: key, marked as such, so the UI can say which -# history is stable and which is best-effort. -# -# A device that appears first without a MAC and later with one gets a SECOND -# row rather than having the first adopted. Adoption would be a guess that the -# two are the same device, and the case it would fix (a routed client moving -# onto the local LAN) is rare while the case it would break (an address reused -# by something else) silently merges unrelated traffic. -hist_key() { - local ip="$1" mac - mac=$(tctl_target_mac "$ip" 2>/dev/null) || mac="" - if [ -n "$mac" ]; then - printf 'mac:%s\t%s\n' "$mac" "$mac" - else - printf 'ip:%s\t-\n' "$ip" - fi -} - -# Name precedence: manual alias > DHCP lease > cached reverse DNS — the same -# order trafficctl-summary.sh applies. It is reimplemented here rather than -# shared because summary resolves names for every device in one awk pass on a -# 2 s poll, and this runs once an hour for a handful of changed rows; the -# ORDER is the part that must not diverge. -hist_name() { - local ip="$1" n - n=$(awk -v ip="$ip" -F'[ \t]+' '$1 == ip { $1 = ""; sub(/^[ \t]+/, ""); print; exit }' \ - /etc/trafficctl/names 2>/dev/null) - [ -n "$n" ] && { printf '%s\n' "$n"; return 0; } - n=$(awk -v ip="$ip" '$3 == ip && $4 != "*" { print $4; exit }' \ - "${TCTL_LEASES_FILE:-/tmp/dhcp.leases}" 2>/dev/null) - [ -n "$n" ] && { printf '%s\n' "$n"; return 0; } - n=$(awk -v ip="$ip" -F'\t' '$1 == ip && $2 != "-" { print $2; exit }' \ - /tmp/trafficctl_rdns_cache 2>/dev/null) - [ -n "$n" ] && [ "$n" != "-" ] && { printf '%s\n' "$n"; return 0; } - printf '\n' -} - -# Tabs and newlines would corrupt the row format; a name comes from a DHCP -# lease or a PTR record, neither of which this script controls. -hist_sanitize() { - printf '%s' "$1" | tr -d '\t\r\n' | cut -c1-64 -} - -hist_lock() { - local tries=0 - while ! mkdir "$LOCKD" 2>/dev/null; do - tries=$((tries + 1)) - if [ "$tries" -ge 50 ]; then - # Steal rather than skip for ever: a stale lock from a killed - # flush must not freeze history permanently. Losing one interval - # to an interleaved write is the lesser failure. - rmdir "$LOCKD" 2>/dev/null || true - mkdir "$LOCKD" 2>/dev/null || return 1 - return 0 - fi - sleep 0.1 2>/dev/null || sleep 1 - done - return 0 -} -hist_unlock() { rmdir "$LOCKD" 2>/dev/null || true; } - -# ────────────────────────────────────────────────────────────────────────────── -# flush -# ────────────────────────────────────────────────────────────────────────────── -hist_flush() { - local dir pid file tmp now sample keys ip line rc=0 - - hist_enabled || { printf '{"ok":false,"reason":"disabled"}\n'; return 0; } - - dir=$(hist_dir) - if ! hist_guard mkdir -p "$dir" 2>/dev/null; then - hist_err_set "cannot create $dir" - printf '{"ok":false,"reason":"mkdir failed","dir":"%s"}\n' "$dir" - return 1 - fi - if [ ! -w "$dir" ]; then - hist_err_set "$dir is not writable" - printf '{"ok":false,"reason":"not writable","dir":"%s"}\n' "$dir" - return 1 - fi - - pid=$(hist_period_id) - file=$(hist_file "$pid") - now=$(date +%s) - - hist_lock || { - printf '{"ok":false,"reason":"locked"}\n' - return 1 - } - # shellcheck disable=SC2064 # expand now, not at trap time - trap "hist_unlock" EXIT INT TERM - - sample="/tmp/.trafficctl_history.sample.$$" - tmp="$dir/.history.$pid.$$" - # shellcheck disable=SC2064 - trap "rm -f '$sample' '$tmp'; hist_unlock" EXIT INT TERM - - # --all so a device whose last flow expired still reports the total it has - # accumulated; without it a quiet device's growth would be dropped from - # every flush it happened to be idle for. - /usr/local/bin/trafficctl-totals.sh --all 2>/dev/null \ - | sed 's/},{/}\n{/g' > "$sample" - if [ ! -s "$sample" ]; then - hist_err_set "totals produced nothing" - printf '{"ok":false,"reason":"no sample"}\n' - return 1 - fi - - # Resolve key/mac/name per address in the shell, where tctl_* lives, and - # hand awk a plain table. Doing it the other way round would mean calling - # out of awk per device. - keys="/tmp/.trafficctl_history.keys.$$" - # shellcheck disable=SC2064 - trap "rm -f '$sample' '$tmp' '$keys'; hist_unlock" EXIT INT TERM - : > "$keys" - while IFS= read -r line; do - case "$line" in - *'"ip":"'*) ;; - *) continue ;; - esac - ip=${line#*\"ip\":\"} - ip=${ip%%\"*} - tctl_validate_ip "$ip" || continue - printf '%s\t%s\t%s\n' "$ip" "$(hist_key "$ip")" "$(hist_sanitize "$(hist_name "$ip")")" >> "$keys" - done < "$sample" - - awk -v sample="$sample" -v keys="$keys" -v cursor="$CURSOR" -v out="$tmp" \ - -v store="$file" -v now="$now" ' - function num(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*" - if (!match(line, re)) return -1 - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /^[0-9]+/)) return -1 - return substr(seg, RSTART, RLENGTH) + 0 - } - BEGIN { - FS = "\t" - # Created unconditionally and up front. If this file did not exist on - # a flush that nonetheless rewrote the period file, the mv below would - # fail, the cursor would stay behind, and the NEXT flush would fold the - # same growth in a second time. - cf = cursor ".new" - printf "" > cf - while ((getline l < keys) > 0) { - n = split(l, f, "\t") - if (n < 3) continue - kkey[f[1]] = f[2]; kmac[f[1]] = f[3]; kname[f[1]] = f[4] - } - close(keys) - - # Cursor: key -> what has already been folded in. - while ((getline l < cursor) > 0) { - n = split(l, f, "\t") - if (n < 5) continue - crx[f[1]] = f[2] + 0; ctx[f[1]] = f[3] + 0 - ctc[f[1]] = f[4] + 0; cud[f[1]] = f[5] + 0 - seen_cursor[f[1]] = 1 - } - close(cursor) - - # Existing rows for this period. - while ((getline l < store) > 0) { - if (l ~ /^#/) continue - n = split(l, f, "\t") - if (n < 10) continue - k = f[1] - order[++norder] = k - rmac[k] = f[2]; rip[k] = f[3]; rname[k] = f[4] - rrx[k] = f[5] + 0; rtx[k] = f[6] + 0 - rtc[k] = f[7] + 0; rud[k] = f[8] + 0 - rfirst[k] = f[9] + 0; rlast[k] = f[10] + 0 - rdeg[k] = (n >= 11 ? f[11] : "false") - have[k] = 1 - } - close(store) - - while ((getline line < sample) > 0) { - if (line !~ /"ip":"/) continue - ip = line - sub(/^.*"ip":"/, "", ip) - sub(/".*$/, "", ip) - if (!(ip in kkey)) continue - k = kkey[ip] - - lrx = num(line, "bytes_in_total"); if (lrx < 0) lrx = 0 - ltx = num(line, "bytes_out_total"); if (ltx < 0) ltx = 0 - ltc = num(line, "bytes_tcp_total") - lud = num(line, "bytes_udp_total") - deg = "false" - if (index(line, "\"degraded\":true") > 0) deg = "true" - - # Two addresses can map to ONE key within a flush (a device that - # changed lease while the cursor still remembers both), so the - # live reading for a key is the sum over its addresses, and the - # cursor comparison happens once, after the loop. - arx[k] += lrx; atx[k] += ltx - if (ltc >= 0) { atc[k] += ltc; ktc[k] = 1 } - if (lud >= 0) { aud[k] += lud; kud[k] = 1 } - if (deg == "true") adeg[k] = "true" - amac[k] = kmac[ip]; aip[k] = ip - if (kname[ip] != "") aname[k] = kname[ip] - touched[k] = 1 - } - close(sample) - - for (k in touched) { - lrx = arx[k] + 0; ltx = atx[k] + 0 - ltc = -1 - if (k in ktc) ltc = atc[k] + 0 - lud = -1 - if (k in kud) lud = aud[k] + 0 - - # Growth only. A live value below the cursor means the accumulator - # restarted; rebaseline and add nothing, because the bytes it is - # now below by were already folded in. - drx = lrx - dtx = ltx - if (seen_cursor[k]) { - drx = 0 - dtx = 0 - if (lrx >= crx[k]) drx = lrx - crx[k] - if (ltx >= ctx[k]) dtx = ltx - ctx[k] - } - dtc = -1; dud = -1 - if (ltc >= 0) { - if (!seen_cursor[k] || ctc[k] < 0) dtc = ltc - else dtc = (ltc >= ctc[k]) ? ltc - ctc[k] : 0 - } - if (lud >= 0) { - if (!seen_cursor[k] || cud[k] < 0) dud = lud - else dud = (lud >= cud[k]) ? lud - cud[k] : 0 - } - - if (!(k in have)) { - order[++norder] = k - have[k] = 1 - rfirst[k] = now - rrx[k] = 0; rtx[k] = 0; rtc[k] = 0; rud[k] = 0 - rdeg[k] = "false" - } - rrx[k] += drx; rtx[k] += dtx - if (dtc >= 0) rtc[k] += dtc - if (dud >= 0) rud[k] += dud - if (amac[k] != "" && amac[k] != "-") rmac[k] = amac[k] - rip[k] = aip[k] - # Keep the last name we knew. A device that goes offline loses its - # lease, so re-reading an empty name over a good one would erase - # the only label its history will ever have. - if (aname[k] != "") rname[k] = aname[k] - if (adeg[k] == "true") rdeg[k] = "true" - # Only movement counts as activity. A device sitting idle should - # not keep refreshing last_seen for a whole month. - if (drx > 0 || dtx > 0) rlast[k] = now - else if (rlast[k] == 0) rlast[k] = now - - ncrx[k] = lrx; nctx[k] = ltx; nctc[k] = ltc; ncud[k] = lud - written[k] = 1 - } - - printf "# trafficctl-history %d\n", 1 > out - for (i = 1; i <= norder; i++) { - k = order[i] - if (!(k in have) || emitted[k]) continue - emitted[k] = 1 - nm = rname[k]; if (nm == "") nm = "-" - mc = rmac[k]; if (mc == "") mc = "-" - dg = rdeg[k]; if (dg == "") dg = "false" - printf "%s\t%s\t%s\t%s\t%.0f\t%.0f\t%.0f\t%.0f\t%d\t%d\t%s\n", \ - k, mc, rip[k], nm, rrx[k], rtx[k], rtc[k], rud[k], \ - rfirst[k], rlast[k], dg > out - } - close(out) - - # The cursor keeps keys that were NOT in this sample: a device absent - # for one flush must not have its next reading treated as a fresh - # baseline, or its whole lifetime total would be folded in twice. - for (k in seen_cursor) { - if (k in written) continue - printf "%s\t%.0f\t%.0f\t%.0f\t%.0f\n", k, crx[k], ctx[k], ctc[k], cud[k] > cf - } - for (k in written) { - printf "%s\t%.0f\t%.0f\t%.0f\t%.0f\n", k, ncrx[k], nctx[k], nctc[k], ncud[k] > cf - } - close(cf) - }' /dev/null; then - hist_err_set "cannot write $file" - printf '{"ok":false,"reason":"write failed","file":"%s"}\n' "$file" - return 1 - fi - # The cursor advances ONLY after the period file is safely in place. - # Advancing it first and then failing the write would discard the deltas - # for good; this way the same growth is simply folded in next time. - mv "$CURSOR.new" "$CURSOR" 2>/dev/null || true - printf '%s\n' "$now" > "$STAMP" 2>/dev/null - hist_err_clear - - # Only after the device file is safely in place. A failure here is not a - # failure of the flush: the interface series is additive, and losing one - # interval of it must not make the caller think the device totals did not - # land. - hist_if_flush || hist_err_set "interface totals could not be written" - - - printf '{"ok":true,"period":"%s","devices":%s,"at":%s}\n' \ - "$pid" "$(grep -vc '^#' "$file" 2>/dev/null || echo 0)" "$now" -} - -# ────────────────────────────────────────────────────────────────────────────── -# Interface totals (#102) -# -# A SECOND SERIES, not a breakdown of the device one, and the distinction is -# not pedantry: -# -# * these bytes are the kernel's own interface counters, read by -# trafficctl-ifaces.sh out of /proc/net/dev. They include the router's own -# traffic, broadcast, and everything per-device accounting cannot -# attribute, so they legitimately DISAGREE with the sum over devices. -# * under flow offloading they are the MORE trustworthy of the two, because -# they come from the driver rather than from conntrack — exactly inverted -# from the device series, where offload is what degrades accuracy. Hence -# hist_if_accuracy below, which must not inherit the device verdict. -# * they answer a question the device series cannot: how much went out of -# wan1 versus wan2 this month. A device's bytes carry no egress interface. -# -# rx/tx are relative to the INTERFACE, not to a client: rx on the WAN device -# is download, rx on br-lan is what the LAN sent upstream. Stored as read, -# with the role, so a consumer can label them rather than guess. -# ────────────────────────────────────────────────────────────────────────────── - -# Interfaces whose bytes are already counted somewhere else, and would -# double-count if recorded: -# enslaved — a bridge port; its traffic is in the bridge's own counters -# lo — loopback -# the IFB — a mirror of LAN ingress that the shaper creates, so every byte -# on it is a byte already counted on the device it mirrors -hist_if_skip() { - local dev="$1" enslaved="$2" ifb - [ "$dev" = "lo" ] && return 0 - [ "$enslaved" = "true" ] && return 0 - ifb=$(uci -q get trafficctl.main.shape_ifb 2>/dev/null) - [ -n "$ifb" ] && [ "$dev" = "$ifb" ] && return 0 - return 1 -} - -# What the interface series is worth. NOT the device verdict: an interface -# counter comes from the driver, so uncountered offload — the thing that makes -# the device totals a lower bound — does not touch it. Reporting "degraded" -# here would be its own kind of wrong. -hist_if_accuracy() { - printf 'exact\n' -} - -# Fold the interface counters into the current period, exactly as the device -# flush does: growth against a tmpfs cursor, and a live value below the cursor -# means the counter restarted rather than that traffic went backwards. -# -# An interface counter restarting is NOT an edge case here. It happens every -# time the link goes down, which on the multi-WAN box this feature is for is -# routine — so a flap costs one sampling interval instead of corrupting the -# month. -# Fold the growth since the last tick into the tmpfs accumulator and advance -# the cursor. Called on every sample tick, because a cursor that only moved at -# flush time lost up to a whole flush interval of a link's traffic whenever its -# counter restarted — an hour by default, on exactly the multi-WAN box with a -# flapping link this series exists for (#111). The accumulator is in tmpfs, so -# touching it every 60s costs no flash. -# -# The durable file is written by hist_if_flush alone. The accumulator is seeded -# from it when absent (every boot, and on a period roll), which is what makes -# the eventual copy-over safe rather than double-counting. -hist_if_accumulate() { - local dir pid file tmp now sample acc rc=0 - hist_ifaces_enabled || return 0 - dir=$(hist_dir) - pid=$(hist_period_id) - file=$(hist_iffile "$pid") - acc="$IFACC.$pid" - now=$(date +%s) - sample="/tmp/.trafficctl_history.ifsample.$$" - tmp="$acc.$$" - [ -f "$acc" ] && file="$acc" - # shellcheck disable=SC2064 - trap "rm -f '$sample' '$tmp'" EXIT INT TERM - - /usr/local/bin/trafficctl-ifaces.sh 2>/dev/null \ - | sed 's/},{/}\n{/g' > "$sample" - [ -s "$sample" ] || return 0 - - awk -v sample="$sample" -v cursor="$IFCURSOR" -v out="$tmp" -v store="$file" \ - -v now="$now" -v ifb="$(uci -q get trafficctl.main.shape_ifb 2>/dev/null)" ' - function num(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*" - if (!match(line, re)) return -1 - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /^[0-9]+/)) return -1 - return substr(seg, RSTART, RLENGTH) + 0 - } - function str(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*\"" - if (!match(line, re)) return "" - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /"/)) return "" - return substr(seg, 1, RSTART - 1) - } - BEGIN { - FS = "\t" - cf = cursor ".new" - printf "" > cf - while ((getline l < cursor) > 0) { - n = split(l, f, "\t") - if (n < 3) continue - crx[f[1]] = f[2] + 0; ctx[f[1]] = f[3] + 0 - seen[f[1]] = 1 - } - close(cursor) - while ((getline l < store) > 0) { - if (l ~ /^#/) continue - n = split(l, f, "\t") - if (n < 7) continue - d = f[1] - order[++norder] = d - role[d] = f[2]; label[d] = f[3] - rrx[d] = f[4] + 0; rtx[d] = f[5] + 0 - first[d] = f[6] + 0; last[d] = f[7] + 0 - have[d] = 1 - } - close(store) - - while ((getline line < sample) > 0) { - if (line !~ /"dev":"/) continue - d = str(line, "dev") - if (d == "") continue - if (d == "lo") continue - if (index(line, "\"enslaved\":true") > 0) continue - if (ifb != "" && d == ifb) continue - lrx = num(line, "rx_bytes"); if (lrx < 0) continue - ltx = num(line, "tx_bytes"); if (ltx < 0) continue - - # A live counter BELOW the cursor has restarted: the link went - # down and came back, or the driver reset it. The bytes carried - # since then have never been counted by anything, because a - # /proc/net/dev counter is monotonic for the lifetime of the - # interface, so they are the delta. - # - # Adding nothing here is right for the DEVICE series, where the - # live value is a conntrack sum that collapses when flows expire - # and those bytes were already accumulated while the flows lived. - # That premise does not transfer to an interface counter, and the - # zero came across with the code (#111). It also made this branch - # disagree with the unseen-interface case, which always took the - # full counter: the same situation, a counter starting from zero, - # handled two ways depending on whether the cursor happened to - # remember the interface. - drx = lrx; dtx = ltx - if (lrx >= crx[d]) drx = lrx - crx[d] - if (ltx >= ctx[d]) dtx = ltx - ctx[d] - if (!(d in have)) { - order[++norder] = d - have[d] = 1 - first[d] = now - rrx[d] = 0; rtx[d] = 0 - } - rrx[d] += drx; rtx[d] += dtx - r = str(line, "role"); if (r != "") role[d] = r - lb = str(line, "label"); if (lb != "") label[d] = lb - if (drx > 0 || dtx > 0) last[d] = now - else if (last[d] == 0) last[d] = now - ncrx[d] = lrx; nctx[d] = ltx - written[d] = 1 - } - close(sample) - - printf "# trafficctl-history-if 1\n" > out - for (i = 1; i <= norder; i++) { - d = order[i] - if (!(d in have) || emitted[d]) continue - emitted[d] = 1 - rl = role[d]; if (rl == "") rl = "?" - lb = label[d]; if (lb == "") lb = "-" - printf "%s\t%s\t%s\t%.0f\t%.0f\t%d\t%d\n", \ - d, rl, lb, rrx[d], rtx[d], first[d], last[d] > out - } - close(out) - - for (d in seen) if (!(d in written)) - printf "%s\t%.0f\t%.0f\n", d, crx[d], ctx[d] > cf - for (d in written) - printf "%s\t%.0f\t%.0f\n", d, ncrx[d], nctx[d] > cf - close(cf) - }' /dev/null || return 1 - # Only after the accumulator is in place, for the same reason the device - # cursor waits for its period file: advancing first and then failing would - # discard the growth for good, where this way it is folded in next tick. - mv "$IFCURSOR.new" "$IFCURSOR" 2>/dev/null || true - return 0 -} - -# Publish the accumulator to the durable per-period file. Picks up the final -# interval first, so no traffic is stranded in tmpfs at flush time. -hist_if_flush() { - local pid acc file tmp - hist_ifaces_enabled || return 0 - hist_if_accumulate || return 1 - pid=$(hist_period_id) - acc="$IFACC.$pid" - [ -f "$acc" ] || return 0 - file=$(hist_iffile "$pid") - tmp="$(hist_dir)/.history-if.$pid.$$" - # shellcheck disable=SC2064 - trap "rm -f '$tmp'" EXIT INT TERM - hist_guard cp "$acc" "$tmp" 2>/dev/null || return 1 - hist_guard mv "$tmp" "$file" 2>/dev/null || return 1 - return 0 -} - -hist_if_read() { - local dir from to files f p - dir=$(hist_dir) - from="$1"; to="$2" - [ -z "$from" ] && from=$(hist_period_id) - [ -z "$to" ] && to="$from" - files="" - for f in "$dir"/*.if.tsv; do - [ -f "$f" ] || continue - p=$(basename "$f" .if.tsv) - [ "$p" \< "$from" ] && continue - [ "$to" \< "$p" ] && continue - files="$files $f" - done - # shellcheck disable=SC2086 # deliberate splitting over the file list - awk -F'\t' ' - /^#/ { next } - NF >= 7 { - d = $1 - if (!(d in seen)) { order[++n] = d; seen[d] = 1; first[d] = $6 } - role[d] = $2; label[d] = $3 - rx[d] += $4; tx[d] += $5 - if ($6 + 0 < first[d] + 0) first[d] = $6 - if ($7 + 0 > last[d] + 0) last[d] = $7 - } - END { - printf "[" - for (i = 1; i <= n; i++) { - d = order[i] - if (i > 1) printf "," - printf "{\"dev\":\"%s\",\"role\":\"%s\",\"label\":\"%s\",\"bytes_in\":%.0f,\"bytes_out\":%.0f,\"first_seen\":%d,\"last_seen\":%d}", \ - d, role[d], label[d], rx[d], tx[d], first[d], last[d] - } - printf "]\n" - }' $files /dev/null || printf '[]\n' -} - -# ────────────────────────────────────────────────────────────────────────────── -# read / periods -# ────────────────────────────────────────────────────────────────────────────── -hist_read() { - local dir from to files f - dir=$(hist_dir) - from="$1"; to="$2" - [ -z "$from" ] && from=$(hist_period_id) - [ -z "$to" ] && to="$from" - - files="" - for f in "$dir"/*.tsv; do - [ -f "$f" ] || continue - # The interface totals are a separate series in their own file; reading - # them here would report an interface as a device. - case "$f" in *.if.tsv) continue ;; esac - p=$(basename "$f" .tsv) - # String comparison is the right one here: every period id this script - # writes is fixed-width and zero-padded, so lexical order IS - # chronological order. (That is why the day format is %Y-%m-%d and not - # anything locale-shaped.) - [ "$p" \< "$from" ] && continue - [ "$to" \< "$p" ] && continue - files="$files $f" - done - - # shellcheck disable=SC2086 # deliberate word splitting over the file list - awk -F'\t' ' - FNR == 1 { period = FILENAME; sub(/.*\//, "", period); sub(/\.tsv$/, "", period) } - /^#/ { next } - NF >= 10 { - k = $1 - if (!(k in seen)) { order[++n] = k; seen[k] = 1; first[k] = $9 } - mac[k] = ($2 != "-" ? $2 : mac[k]) - ip[k] = $3 - if ($4 != "-") name[k] = $4 - rx[k] += $5; tx[k] += $6; tc[k] += $7; ud[k] += $8 - if ($9 + 0 < first[k] + 0) first[k] = $9 - if ($10 + 0 > last[k] + 0) last[k] = $10 - if ($11 == "true") deg[k] = 1 - periods[k] = periods[k] (index(periods[k], "\"" period "\"") ? "" : (periods[k] == "" ? "" : ",") "\"" period "\"") - } - END { - printf "[" - for (i = 1; i <= n; i++) { - k = order[i] - nm = "" - if (k in name) nm = name[k] - kind = "ip" - if (k ~ /^mac:/) kind = "mac" - if (i > 1) printf "," - printf "{\"key\":\"%s\",\"key_kind\":\"%s\",\"mac\":\"%s\",\"ip\":\"%s\",\"name\":\"%s\",\"bytes_in\":%.0f,\"bytes_out\":%.0f,\"bytes_tcp\":%.0f,\"bytes_udp\":%.0f,\"first_seen\":%d,\"last_seen\":%d,\"degraded\":%s,\"periods\":[%s]}", \ - k, kind, (mac[k] == "" ? "-" : mac[k]), ip[k], nm, \ - rx[k], tx[k], tc[k], ud[k], first[k], last[k], \ - (k in deg ? "true" : "false"), periods[k] - } - printf "]\n" - }' $files /dev/null || printf '[]\n' -} - -hist_periods() { - local dir f p - dir=$(hist_dir) - printf '[' - n=0 - for f in "$dir"/*.tsv; do - [ -f "$f" ] || continue - # Skip the interface companion: a period is listed once, by its device - # file, or "2026-10" and "2026-10.if" would both appear as periods. - case "$f" in *.if.tsv) continue ;; esac - p=$(basename "$f" .tsv) - [ "$n" -gt 0 ] && printf ',' - printf '{"period":"%s","devices":%s,"bytes":%s}' \ - "$p" \ - "$(grep -vc '^#' "$f" 2>/dev/null || echo 0)" \ - "$(awk -F'\t' '!/^#/ && NF >= 10 { s += $5 + $6 } END { printf "%.0f", s + 0 }' "$f" 2>/dev/null || echo 0)" - n=$((n + 1)) - done - printf ']\n' -} - -hist_prune() { - local dir keep pid total f dropped=0 - dir=$(hist_dir) - keep=$(hist_keep) - pid=$(hist_period_id) - # The current period is never a retention candidate — it is still being - # written to, and "keep 1" must not mean "delete the data you are - # collecting right now". - # A PERIOD is the unit of retention, and a period is now two files: the - # device totals and the interface totals (#102). Listing *.tsv and - # stripping .tsv would turn "2026-10.if.tsv" into a period called - # "2026-10.if" — never equal to the current period id, so it would be - # pruned as if it were ancient history while its device file survived. - # Enumerate periods from the device files only, then drop both. - # shellcheck disable=SC2046 # deliberate splitting: one word per period id - set -- $(find "$dir" -name '*.tsv' -type f 2>/dev/null \ - | sed 's|.*/||' | grep -v '\.if\.tsv$' | sed 's|\.tsv$||' \ - | grep -vxF "$pid" | sort) - total=$# - while [ "$total" -gt "$keep" ] && [ "$#" -gt 0 ]; do - rm -f "$dir/$1.tsv" 2>/dev/null && dropped=$((dropped + 1)) - rm -f "$dir/$1.if.tsv" 2>/dev/null - total=$((total - 1)) - shift - done - printf '{"ok":true,"kept":%s,"dropped":%s}\n' "$keep" "$dropped" -} - -# What the numbers in the store are worth right now, as one word, derived from -# the live offload mode. Reported so a consumer can label the view instead of -# presenting a lower bound as a measurement. -# -# degraded — uncountered offload, no nft fallback: a LOWER BOUND -# counter — nft counter maps: exact, no protocol split -# sampled — conntrack: exact to within flows shorter than sample_interval -hist_accuracy() { - local mode src - mode=$(tctl_get_offload_mode 2>/dev/null) - # What the sampler actually settled on last time it ran, which is the - # authority on whether the nft fallback was available — the offload mode - # alone cannot tell us that. - src=$(awk '{ print $11; exit }' "$TOTALS_STATE" 2>/dev/null) - case "$mode" in - hardware|software) - if [ "$src" = "nft" ]; then printf 'counter\n'; else printf 'degraded\n'; fi - ;; - *) - if [ "$src" = "nft" ]; then printf 'counter\n'; else printf 'sampled\n'; fi - ;; - esac -} - -hist_status() { - local dir en pid last err errat w - dir=$(hist_dir) - en=false - hist_enabled && en=true - pid=$(hist_period_id) - last=$(cat "$STAMP" 2>/dev/null) - case "$last" in ''|*[!0-9]*) last=0 ;; esac - err=""; errat=0 - if [ -f "$ERRFILE" ]; then - errat=$(cut -f1 "$ERRFILE" 2>/dev/null) - err=$(cut -f2- "$ERRFILE" 2>/dev/null) - case "$errat" in ''|*[!0-9]*) errat=0 ;; esac - fi - w=false - [ -d "$dir" ] && [ -w "$dir" ] && w=true - printf '{"enabled":%s,"dir":"%s","writable":%s,"period":"%s","period_kind":"%s","interval":%s,"sample_interval":%s,"keep":%s,"format":%s,"last_flush":%s,"accuracy":"%s","offload":"%s","interfaces":%s,"iface_accuracy":"%s","error":"%s","error_at":%s}\n' \ - "$en" "$dir" "$w" "$pid" "$(hist_period_kind)" \ - "$(hist_interval)" "$(hist_sample_interval)" "$(hist_keep)" "$FORMAT" "$last" \ - "$(hist_accuracy)" "$(tctl_get_offload_mode 2>/dev/null)" \ - "$(hist_ifaces_enabled && echo true || echo false)" "$(hist_if_accuracy)" \ - "$(printf '%s' "$err" | tr -d '\042\134')" "$errat" -} - -# The procd service loop. Two cadences in one process, which is the whole -# reason this is a service and not a cron line: sampling has to be frequent -# (accuracy note 2 — a conntrack flow shorter than the sample interval is -# invisible) and costs only a tmpfs write, while flushing is rare because it -# touches durable storage. -# -# Re-reads its own configuration every tick rather than caching it at start: -# changing the interval in the UI should take effect without the operator -# having to know there is a service to restart. -hist_keeper() { - local last=0 now interval - - # Pick up where a previous run left off, so a restart does not reset the - # flush clock and silently stretch the gap to the durable store. - last=$(cat "$STAMP" 2>/dev/null) - case "$last" in ''|*[!0-9]*) last=0 ;; esac - - while :; do - if hist_enabled; then - /usr/local/bin/trafficctl-totals.sh --all >/dev/null 2>&1 - # Both series advance their tmpfs cursor on every tick. Only the - # durable store waits for the flush interval below. - hist_if_accumulate >/dev/null 2>&1 - now=$(date +%s) - interval=$(hist_interval) - # A clock that jumped backwards (NTP settling after boot, which is - # the norm on a router with no RTC) would otherwise park the next - # flush an interval into the past's future and stall the store. - [ "$now" -lt "$last" ] && last=0 - if [ $((now - last)) -ge "$interval" ]; then - hist_flush >/dev/null 2>&1 - hist_prune >/dev/null 2>&1 - last=$now - fi - fi - sleep "$(hist_sample_interval)" - done -} - -case "$1" in - sample) - # Advance the accumulator and throw the JSON away. Cheap, tmpfs only, - # and the thing that makes an hourly flush mean anything. - hist_enabled || { printf '{"ok":false,"reason":"disabled"}\n'; exit 0; } - /usr/local/bin/trafficctl-totals.sh --all >/dev/null 2>&1 - # The interface series advances its own tmpfs cursor on the same tick. - # Leaving it to the flush meant a counter that restarted in between - # lost everything since the last flush, not since the last tick (#111). - hist_if_accumulate >/dev/null 2>&1 - printf '{"ok":true,"at":%s}\n' "$(date +%s)" - ;; - flush) hist_flush ;; - keeper) hist_keeper ;; - # Exposed so the rpcd setter validates against THIS implementation rather - # than a second copy of the rule that can drift away from it. - validate-dir) hist_validate_dir "${2%/}" ;; - read) hist_read "$2" "$3" ;; - read-ifaces) hist_if_read "$2" "$3" ;; - periods) hist_periods ;; - prune) hist_prune ;; - status) hist_status ;; - *) - printf 'Usage: %s {sample|flush|keeper|validate-dir |read [period [to]]|read-ifaces [period [to]]|periods|prune|status}\n' "$0" >&2 - exit 1 - ;; -esac diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-ifaces.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-ifaces.sh deleted file mode 100755 index f7ab631c8..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-ifaces.sh +++ /dev/null @@ -1,299 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Per-interface byte counters for the global (bmon-style) overview. -# -# Output: JSON array -# [{"dev":"eth1","label":"wan","role":"wan","tunnel":false,"primary":true, -# "defroute":true,"enslaved":false,"up":true,"rx_bytes":N,"tx_bytes":N}] -# -# rx/tx are the kernel's own counters, i.e. relative to the INTERFACE, not to -# the client: rx on the WAN device is download, rx on br-lan is what the LAN -# sent upstream. Rates are not computed here — the frontend diffs two samples -# exactly as it already does for trafficctl-bytes.sh, so this script stays -# stateless and one sample cheap. -# -# Memory / fork discipline (128–512 MB routers; the dashboard polls this on -# its Poll interval, as often as every 2 s): -# * the hot path is ONE read of /proc/net/dev and ONE awk — nothing else -# * the role map is the expensive part (tctl_lan_subnets forks ubus and -# jsonfilter per configured network, and merely sourcing trafficctl-fw.sh -# runs `nft list tables`), so it is computed on a cold path and memoized -# in tmpfs with a TTL, the same idiom the rdns and netify caches use. -# trafficctl-fw.sh is therefore sourced ONLY inside build_cache() -# * even the cold path classifies every interface in a SINGLE awk rather -# than forking one per device out of a `while read` loop -# * the cache is a few dozen bytes per interface and lives in /tmp, so -# polling never touches flash -# -# Usage: trafficctl-ifaces.sh - -CACHE="${TCTL_IFROLE_CACHE:-/tmp/trafficctl_ifroles}" -PROC_NET_DEV="${TCTL_PROC_NET_DEV:-/proc/net/dev}" -SYSFS="${TCTL_SYSFS_NET:-/sys/class/net}" -# 60 s: a WAN failover or a tunnel changing role shows up within a minute, -# which is 30 polls' worth of work saved at the default 2 s interval. A device -# that is entirely NEW does not wait for the TTL — see the #MISS retry below. -TTL="${TCTL_IFROLE_TTL:-60}" - -build_cache() { - # COLD PATH ONLY. Never call this from the per-poll path. - . /usr/local/bin/trafficctl-fw.sh - - # LAN = the L3 devices trafficctl already monitors (br-lan, br-guest, - # eth0.20 …). Deliberately the L3 devices and not their bridge ports: - # listing both would show the same bytes twice. Naming alone does not - # achieve that — lan2/lan3/phy0-ap0 are ports of br-lan and look like - # ordinary devices — so enslavement is detected from sysfs below. - _lan=$(tctl_get_lan_devices 2>/dev/null | tr '\n' ' ') - - # Devices carrying a default route, v4 or v6. This is NOT the same as - # "the WAN" — see the role rules in the awk below. - _defroute=$( { ip -4 route show default; ip -6 route show default; } 2>/dev/null \ - | awk '{ for (i = 1; i < NF; i++) if ($i == "dev") print $(i + 1) }' \ - | sort -u | tr '\n' ' ') - - # Friendly labels: the uci/ubus interface name for each L3 device, so the - # overview says "wan"/"lan"/"vpn_fi" instead of "eth1"/"br-lan"/"awg0". - # One ubus call, parsed line-wise — "interface" always precedes - # "l3_device" inside an entry, and the outer '"interface": [' line has no - # string value so it cannot seed a stale name. - # - # Flattened to ONE space-separated "dev name dev name …" list, not kept as - # lines: a multi-line value passed through `awk -v` is rejected outright by - # some awks ("newline in string"), so the pairs are read positionally - # below. Neither a device name nor a uci interface name can contain a - # space, so the pairing is unambiguous. - _labels=$(ubus call network.interface dump 2>/dev/null | awk ' - function val(line, seg) { - if (!match(line, /:[ \t]*"/)) return "" - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /"/)) return "" - return substr(seg, 1, RSTART - 1) - } - /"interface"[ \t]*:/ { name = val($0); next } - /"l3_device"[ \t]*:/ { - dev = val($0) - if (dev != "" && name != "") { print dev " " name; name = "" } - }' | tr '\n' ' ') - - # Every device present in /proc/net/dev gets a line, even the ones with no - # recognisable role. That is what makes the #MISS retry below terminate: - # after a rebuild, a lookup can only miss if an interface appeared in the - # meantime. - _tmp="$CACHE.$$" - { - echo "# $(date +%s)" - awk -v defroute="$_defroute" -v lan="$_lan" -v labels="$_labels" -v sysfs="$SYSFS" ' -# Device-name patterns for tunnels. This is a LABEL as much as a role: it tells -# the UI how to group and badge the interface. ppp*/pppoe* is deliberately -# ABSENT — pppoe-wan is the standard OpenWrt DSL uplink, not a VPN, and badging -# it as one would be wrong on every PPPoE line. -function is_tun(d) { - return (d ~ /^(wg|awg|tun|tap|gre|sit|vti|ipsec|ip6tnl|xfrm|zt|nordlynx|tailscale|l2tp|pptp)/) -} -# Which of several uci interfaces sharing one l3_device gives the device its -# name. A dual-stack uplink is three interfaces on one device — "wan", "wan6" -# and "wan6_alias0" — and whichever the ubus dump happened to emit last used to -# win, so a router could title its uplink row "wan6_alias0". Lower score wins; -# ties break on length then lexically, so the result never depends on dump -# order. -function lbl_score(n_, s) { - s = 0 - if (n_ ~ /_alias/) s += 4 - if (n_ ~ /6$/ || n_ ~ /6_/) s += 2 - return s -} -BEGIN { - n = split(defroute, a, " ") - for (i = 1; i <= n; i++) if (a[i] != "") isdef[a[i]] = 1 - n = split(lan, a, " ") - for (i = 1; i <= n; i++) if (a[i] != "") islan[a[i]] = 1 - # "dev name dev name …" — read two at a time, see the flattening above. - n = split(labels, a, " ") - for (i = 1; i + 1 <= n; i += 2) { - _d = a[i]; _n = a[i + 1] - if (_d == "" || _n == "") continue - # The uci network named wan/wan6 (or an alias on one) marks the uplink - # even when something else currently owns the default route — and it is - # taken from ANY of the device names, not just the one that wins below. - if (_n == "wan" || _n == "wan6" || _n ~ /^wan6?_/) isuciwan[_d] = 1 - s = lbl_score(_n) - if (lblset[_d] != 1) { lbl[_d] = _n; lblscore[_d] = s; lblset[_d] = 1; continue } - if (s < lblscore[_d] || (s == lblscore[_d] && \ - (length(_n) < length(lbl[_d]) || \ - (length(_n) == length(lbl[_d]) && _n < lbl[_d])))) { - lbl[_d] = _n; lblscore[_d] = s - } - } -} -NR > 2 { - if (index($0, ":") == 0) next - d = substr($0, 1, index($0, ":") - 1) - gsub(/[ \t]/, "", d) - if (d == "" || d == "lo") next - devs[++nd] = d - tun[d] = is_tun(d) ? 1 : 0 - - # Enslaved = a port of a bridge (lan2, lan3, phy0-ap0 …), which reports the - # very same bytes its bridge already reports. A sysfs lookup, because the - # names give nothing away: "lan3" and "br-lan" look equally like top-level - # devices. Reading master/ifindex rather than testing the symlink keeps it - # to the one primitive awk has. - ens[d] = 0 - if ((getline _x < (sysfs "/" d "/master/ifindex")) > 0) ens[d] = 1 - close(sysfs "/" d "/master/ifindex") - - # Role rules, in priority order. - # - # Every test below compares a VALUE, never `d in arr`. Referencing arr[d] in - # an awk condition CREATES the element, so a later membership test would be - # true for every device that merely reached the condition — which is exactly - # how "defroute" came out true for every non-LAN, non-tunnel interface. - # - # Tunnels are checked before default routes because a full-tunnel router - # (WireGuard/AmneziaWG, common on these boxes) has its default route via - # awg0 while the physical uplink still carries every byte ENCAPSULATED. - # Classifying awg0 as the WAN would both hide the real uplink under "other" - # and double-count the same traffic, so a tunnel stays a tunnel and the - # uplink stays the WAN; "defroute" records who actually holds the route. - if (ens[d] == 1) role[d] = "other" - else if (islan[d] == 1) role[d] = "lan" - else if (tun[d] == 1) role[d] = "vpn" - else if (isuciwan[d] == 1 || isdef[d] == 1) { role[d] = "wan"; nwan++ } - else role[d] = "other" -} -END { - # Fallback: a router whose ONLY default route is a tunnel and which has no - # uci "wan" would otherwise have no WAN row at all, leaving the overview - # headline blank. Promote the route holder in that case only. - if (!nwan) { - for (i = 1; i <= nd; i++) { - if (isdef[devs[i]] == 1 && ens[devs[i]] != 1) { role[devs[i]] = "wan"; nwan++ } - } - } - # Exactly one interface is flagged primary — the headline graph shows that - # one rather than a sum, because summing several WANs double-counts a - # failover pair and mixes two unrelated links (see #28). - for (i = 1; i <= nd && !prim; i++) { - d = devs[i] - if (role[d] == "wan" && isuciwan[d] == 1) prim = d - } - for (i = 1; i <= nd && !prim; i++) { - d = devs[i] - if (role[d] == "wan" && isdef[d] == 1) prim = d - } - for (i = 1; i <= nd && !prim; i++) { - if (role[devs[i]] == "wan") prim = devs[i] - } - for (i = 1; i <= nd; i++) { - d = devs[i] - dfl = 0; if (isdef[d] == 1) dfl = 1 - pr = 0; if (d == prim) pr = 1 - en = 0; if (ens[d] == 1) en = 1 - lb = "-"; if (lblset[d] == 1) lb = lbl[d] - printf "%s %s %d %d %d %d %s\n", d, role[d], tun[d], pr, dfl, en, lb - } -}' "$PROC_NET_DEV" 2>/dev/null - } > "$_tmp" 2>/dev/null - # Rename into place so a concurrent poll never reads a half-written map. - [ -s "$_tmp" ] && mv "$_tmp" "$CACHE" 2>/dev/null - rm -f "$_tmp" 2>/dev/null -} - -emit() { - awk -v cache="$CACHE" -v sysfs="$SYSFS" ' -BEGIN { - while ((getline l < cache) > 0) { - if (substr(l, 1, 1) == "#") continue - if (split(l, f, " ") < 7) continue - # known[] is a separate explicit flag rather than `f[1] in role`, - # because the fields read below auto-vivify their own arrays and a - # membership test on any of them would then be true for every device. - known[f[1]] = 1 - role[f[1]] = f[2]; tun[f[1]] = f[3] + 0; prim[f[1]] = f[4] + 0 - dfr[f[1]] = f[5] + 0; ens[f[1]] = f[6] + 0; lbl[f[1]] = f[7] - } - close(cache) - printf "[" -} -NR > 2 { - # Split on the COLON, not on whitespace. The kernel pads the name field to - # a fixed width, so a long interface name or a counter wide enough to fill - # it leaves no space before rx_bytes ("enp0s31f6:12345678") and every - # positional field after it shifts by one. - if (index($0, ":") == 0) next - dev = substr($0, 1, index($0, ":") - 1) - gsub(/[ \t]/, "", dev) - if (dev == "" || dev == "lo") next - rest = substr($0, index($0, ":") + 1) - sub(/^[ \t]+/, "", rest) - if (split(rest, c, /[ \t]+/) < 16) next - - # Written as if/else rather than a ternary on purpose: an awk line starting - # "ident = (" trips the array-assignment bashism scanner in - # tests/test_openwrt_compat.sh, which cannot tell shell from an embedded - # awk program. - r = "other" - if (known[dev] == 1) { r = role[dev] } else { miss = 1 } - - # operstate is a sysfs read, not a fork, so it is cheap enough for the - # poll path — and a tunnel that is down while still holding counters is - # exactly what the overview needs to show. - state = "" - if ((getline state < (sysfs "/" dev "/operstate")) <= 0) state = "" - close(sysfs "/" dev "/operstate") - up = "false" - if (state == "up" || state == "unknown") { up = "true" } - - name = dev; gsub(/["\\]/, "", name) - label = name - if (lbl[dev] != "" && lbl[dev] != "-") { label = lbl[dev] } - gsub(/["\\]/, "", label) - - if (n++ > 0) printf "," - # %.0f, never %d: these are 64-bit kernel counters and busybox awk formats - # %d through a 32-bit int (see tests/test_byte_overflow.sh). /proc/net/dev - # is the worst offender in the tree — an uptime of a few days puts any - # active interface past 2 GiB. - printf "{\"dev\":\"%s\",\"label\":\"%s\",\"role\":\"%s\",\"tunnel\":%s,\"primary\":%s,\"defroute\":%s,\"enslaved\":%s,\"up\":%s,\"rx_bytes\":%.0f,\"tx_bytes\":%.0f}", \ - name, label, r, \ - (tun[dev] ? "true" : "false"), (prim[dev] ? "true" : "false"), \ - (dfr[dev] ? "true" : "false"), (ens[dev] ? "true" : "false"), \ - up, c[1] + 0, c[9] + 0 -} -END { - printf "]" - if (miss) printf "#MISS" -}' "$PROC_NET_DEV" 2>/dev/null -} - -# Guard before anything else. awk still runs its BEGIN block when the input -# file is missing but never reaches END, so emit() would print a bare "[" — -# invalid JSON that the frontend surfaces as a dead panel rather than an empty -# one. Nothing below is worth doing without counters anyway. -[ -r "$PROC_NET_DEV" ] || { echo '[]'; exit 0; } - -NOW=$(date +%s) -TS=0 -if [ -f "$CACHE" ]; then - # Builtin read, no fork: the header line is "# ". - read -r _hash TS < "$CACHE" 2>/dev/null - case "$TS" in ''|*[!0-9]*) TS=0 ;; esac -fi -[ $((NOW - TS)) -ge "$TTL" ] && build_cache - -OUT=$(emit) -case "$OUT" in -*'#MISS') - # An interface the cached map has never seen showed up — a tunnel came up, - # a USB modem was plugged in, a guest bridge was created. Rebuild once and - # re-emit so it is classified immediately instead of sitting in "other" - # until the TTL expires. build_cache() enumerates /proc/net/dev itself, so - # the retry always resolves and this cannot spin. - build_cache - OUT=$(emit) - ;; -esac - -[ -z "$OUT" ] && OUT="[]" -printf '%s\n' "${OUT%\#MISS}" diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-macfilter-add.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-macfilter-add.sh deleted file mode 100755 index d62ae04cd..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-macfilter-add.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Block device WiFi access by adding its MAC to deny maclist on all interfaces. -# The uci maclist is the durable half; hostapd is then programmed at runtime so -# only the target client is kicked, with no wifi reload. Reports how far that -# runtime half actually got — see the enforcement words in trafficctl-fw.sh. -# Usage: trafficctl-macfilter-add.sh - -. /usr/local/bin/trafficctl-fw.sh - -IP="$1" - -if [ -z "$IP" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-macfilter-add.sh "}' - exit 1 -fi - -if ! tctl_validate_ip "$IP"; then - echo '{"ok":false,"msg":"invalid IP address"}' - exit 1 -fi - -# Look up MAC from DHCP leases -MAC="" -if [ -f /tmp/dhcp.leases ]; then - MAC=$(awk -v ip="$IP" '$3 == ip {print toupper($2)}' /tmp/dhcp.leases | head -1) -fi - -if [ -z "$MAC" ]; then - MAC=$(ip neigh show "$IP" 2>/dev/null | grep -oE '[0-9a-fA-F:]{17}' | head -1 | tr 'a-f' 'A-F') -fi - -if [ -z "$MAC" ]; then - echo "{\"ok\":false,\"msg\":\"cannot find MAC for $IP\"}" - exit 1 -fi - -# Normalize MAC to lowercase (OpenWrt stores lowercase) -MAC=$(echo "$MAC" | tr 'A-F' 'a-f') - -# Add MAC to maclist on all wifi interfaces -IFACES=$(tctl_get_wifi_interfaces) -if [ -z "$IFACES" ]; then - echo '{"ok":false,"msg":"no wifi interfaces found"}' - exit 1 -fi - -CHANGED=0 -MODE="deny" -for iface in $IFACES; do - # Respect the ACL policy the administrator configured. Forcing macfilter to - # "deny" here used to invert an existing whitelist: the curated allow-list - # would start being read as a block-list, letting in every device it was - # meant to keep out and banning every device it listed. - iface_mode=$(tctl_get_wifi_filter_mode "$iface") - [ "$iface_mode" = "allow" ] && MODE="allow" - - existing=$(uci -q get "wireless.${iface}.maclist") - listed=0 - echo "$existing" | grep -qi "$MAC" && listed=1 - - if [ "$iface_mode" = "allow" ]; then - # Whitelist: blocking means dropping the MAC from the allow-list. - if [ "$listed" = "1" ]; then - uci del_list "wireless.${iface}.maclist=$MAC" - CHANGED=1 - fi - else - # Blacklist: blocking means adding the MAC, creating the list if needed. - if [ -z "$(uci -q get "wireless.${iface}.macfilter")" ]; then - uci set "wireless.${iface}.macfilter=deny" - CHANGED=1 - fi - if [ "$listed" = "0" ]; then - uci add_list "wireless.${iface}.maclist=$MAC" - CHANGED=1 - fi - fi -done - -[ "$CHANGED" = "1" ] && uci commit wireless - -# Applied unconditionally, not just when uci needed editing. Config and runtime -# are two pieces of state: a router whose maclist already names the MAC but -# whose radio never got the ACL entry used to make this a no-op that still -# reported success, so pressing Block again — the obvious reaction to "it did -# not work" — could never recover it. -ENFORCE=$(tctl_hostapd_block_mac "$MAC" "$MODE") -BAN_MIN=$(( TCTL_WIFI_BAN_MS / 60000 )) - -# The uci entry is kept even when the radio could not be programmed. It is the -# only durable record of the operator's intent and it does take effect at the -# next wifi restart, so discarding it would throw away the half that worked and -# leave the device unblocked forever. What made keeping it dangerous was the -# claim of success, not the entry — so the claim is what goes. A wifi reload -# would apply it now, but it disconnects every client on the radio, which is -# not something a per-device click should do behind the operator's back. -case "$ENFORCE" in - acl) - OK=true - MSG="MAC $MAC blocked on wifi for $IP" - ;; - no-radio) - OK=true - MSG="MAC $MAC added to the wifi deny list for $IP; no radio is running, it applies when wifi starts" - ;; - ban) - OK=false - MSG="MAC $MAC is NOT permanently blocked: hostapd_cli is missing, so the block is temporary ($BAN_MIN min). Install hostapd-utils, or restart wifi (drops all clients)" - ;; - *) - OK=false - MSG="MAC $MAC saved to the wifi deny list but NOT applied to the radio, so the device stays online. Install hostapd-utils, or restart wifi (drops all clients)" - ;; -esac - -tctl_log "wifi_block" "$IP" "MAC=$MAC enforce=$ENFORCE" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" -printf '{"ok":%s,"enforcement":"%s","msg":"%s"}\n' "$OK" "$ENFORCE" "$MSG" diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-macfilter-remove.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-macfilter-remove.sh deleted file mode 100755 index 819f9a4c6..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-macfilter-remove.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Remove device WiFi MAC filter (unblock from wifi deny list). -# Updates the uci maclist and the running hostapd ACL, so the client can -# reassociate without a wifi reload and other clients stay connected. Reports -# how far the runtime half got — see the enforcement words in trafficctl-fw.sh. -# Usage: trafficctl-macfilter-remove.sh - -. /usr/local/bin/trafficctl-fw.sh - -IP="$1" - -if [ -z "$IP" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-macfilter-remove.sh "}' - exit 1 -fi - -if ! tctl_validate_ip "$IP"; then - echo '{"ok":false,"msg":"invalid IP address"}' - exit 1 -fi - -# Look up MAC from DHCP leases -MAC="" -if [ -f /tmp/dhcp.leases ]; then - MAC=$(awk -v ip="$IP" '$3 == ip {print toupper($2)}' /tmp/dhcp.leases | head -1) -fi - -if [ -z "$MAC" ]; then - MAC=$(ip neigh show "$IP" 2>/dev/null | grep -oE '[0-9a-fA-F:]{17}' | head -1 | tr 'a-f' 'A-F') -fi - -if [ -z "$MAC" ]; then - echo "{\"ok\":false,\"msg\":\"cannot find MAC for $IP\"}" - exit 1 -fi - -# Normalize MAC to lowercase -MAC=$(echo "$MAC" | tr 'A-F' 'a-f') - -# Remove MAC from maclist on all wifi interfaces -IFACES=$(tctl_get_wifi_interfaces) -if [ -z "$IFACES" ]; then - echo '{"ok":false,"msg":"no wifi interfaces found"}' - exit 1 -fi - -CHANGED=0 -MODE="deny" -for iface in $IFACES; do - iface_mode=$(tctl_get_wifi_filter_mode "$iface") - [ "$iface_mode" = "allow" ] && MODE="allow" - - existing=$(uci -q get "wireless.${iface}.maclist") - listed=0 - echo "$existing" | grep -qi "$MAC" && listed=1 - - if [ "$iface_mode" = "allow" ]; then - # Whitelist: unblocking means putting the MAC back on the allow-list. - if [ "$listed" = "0" ]; then - uci add_list "wireless.${iface}.maclist=$MAC" - CHANGED=1 - fi - else - # Blacklist: unblocking means removing the MAC from the block-list. - if [ "$listed" = "1" ]; then - uci del_list "wireless.${iface}.maclist=$MAC" - CHANGED=1 - fi - fi -done - -[ "$CHANGED" = "1" ] && uci commit wireless - -# Unconditional for the same reason as the add path, and the stakes are higher -# here: a MAC that uci no longer lists but the radio still denies leaves a real -# person off the network while the UI says they are not blocked. -ENFORCE=$(tctl_hostapd_unblock_mac "$MAC" "$MODE") -BAN_MIN=$(( TCTL_WIFI_BAN_MS / 60000 )) - -case "$ENFORCE" in - acl) - OK=true - MSG="MAC $MAC removed from wifi filter for $IP" - ;; - no-radio) - OK=true - MSG="MAC $MAC removed from the wifi filter for $IP; no radio is running" - ;; - ban) - OK=false - MSG="MAC $MAC removed from the wifi filter, but hostapd still bans it for up to $BAN_MIN min. Restart wifi (drops all clients) to clear it now" - ;; - *) - OK=false - MSG="MAC $MAC removed from the wifi filter, but the radio ACL could not be read back: it may still be blocked. Install hostapd-utils, or restart wifi" - ;; -esac - -tctl_log "wifi_unblock" "$IP" "MAC=$MAC enforce=$ENFORCE" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" -printf '{"ok":%s,"enforcement":"%s","msg":"%s"}\n' "$OK" "$ENFORCE" "$MSG" diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-metrics.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-metrics.sh deleted file mode 100755 index 8132a75d5..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-metrics.sh +++ /dev/null @@ -1,239 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Prometheus / OpenMetrics exporter for trafficctl. -# -# Writes to stdout so one implementation serves both delivery paths: -# scrape endpoint : /www/cgi-bin/trafficctl-metrics (uhttpd) -# textfile : cron > /var/lib/node_exporter/textfile_collector/trafficctl.prom -# -# Memory discipline (this runs on 128–512 MB routers): -# * no large shell variables — every source is streamed straight into awk -# * one awk process holds the only in-memory table, bounded by device count -# -# Counter semantics: the raw byte sources are NOT monotonic — a device's -# conntrack total drops when its flows expire. Exporting that directly would -# look like a counter reset on every expiry and produce nonsense rate(). The -# accumulation that fixes it used to live here; it now lives in -# trafficctl-totals.sh, which the LuCI Bytes column reads too, so the column -# and this counter cannot drift apart. -# -# Usage: trafficctl-metrics.sh - -. /usr/local/bin/trafficctl-fw.sh - -metrics_enabled() { - [ "$(uci -q get trafficctl.metrics.enabled 2>/dev/null)" = "1" ] -} - -if ! metrics_enabled; then - echo "# trafficctl metrics are disabled (set trafficctl.metrics.enabled=1)" - exit 0 -fi - -opt_on() { - # default-on toggles: anything but an explicit 0 counts as enabled - [ "$(uci -q get "trafficctl.metrics.$1" 2>/dev/null)" != "0" ] -} - -# ── device byte counters ──────────────────────────────────────────────────── -# trafficctl-totals.sh owns both the accumulator and its state file. It also -# resolves the byte source (conntrack, or nft counters under uncountered flow -# offload) via trafficctl-bytes.sh, so none of that is duplicated here. -# -# --all, because a Prometheus series that vanished and came back every time a -# quiet device's last flow expired would be unusable: the exporter wants every -# device that still carries a total, not just the ones currently transmitting. -/usr/local/bin/trafficctl-totals.sh --all 2>/dev/null \ - | sed 's/},{/}\n{/g' \ - | awk ' -function num(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*" - if (!match(line, re)) return -1 - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /^[0-9]+/)) return -1 - return substr(seg, RSTART, RLENGTH) + 0 -} -function str(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*\"" - if (!match(line, re)) return "" - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /"/)) return "" - return substr(seg, 1, RSTART - 1) -} -BEGIN { - print "# HELP trafficctl_device_bytes_total Bytes transferred per device since the counter started. The store is tmpfs, so this resets on reboot; it advances whenever anything samples (a scrape, or the LuCI page)." - print "# TYPE trafficctl_device_bytes_total counter" - print "# HELP trafficctl_device_bytes_degraded 1 when the counter above was built from byte counters the forwarding path does not update (uncountered flow offload with no usable nftables fallback). The counter is then a lower bound that stalls while traffic continues; alert on this rather than trusting a flat rate()." - print "# TYPE trafficctl_device_bytes_degraded gauge" -} -{ - ip = str($0, "ip") - if (ip == "") next - rx = num($0, "bytes_in_total"); if (rx < 0) rx = 0 - tx = num($0, "bytes_out_total"); if (tx < 0) tx = 0 - printf "trafficctl_device_bytes_total{ip=\"%s\",direction=\"rx\"} %.0f\n", ip, rx - printf "trafficctl_device_bytes_total{ip=\"%s\",direction=\"tx\"} %.0f\n", ip, tx - # A counter that stops moving is indistinguishable from an idle device on a - # dashboard, which is exactly how this failure hides. Exported alongside so - # the condition is alertable instead of being inferred from a flat line. - printf "trafficctl_device_bytes_degraded{ip=\"%s\"} %d\n", ip, \ - (index($0, "\"degraded\":true") ? 1 : 0) -}' - -# ── per-device state gauges ───────────────────────────────────────────────── -# Off by default for the leanest possible scrape: this calls the full summary, -# which dumps nft/tc state and is markedly heavier than the byte pass. -if opt_on state; then - /usr/local/bin/trafficctl-summary.sh 2>/dev/null \ - | sed 's/},{/}\n{/g' \ - | awk -v rdnsfile=/tmp/trafficctl_rdns_cache ' -function num(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*" - if (!match(line, re)) return 0 - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /^[0-9]+/)) return 0 - return substr(seg, RSTART, RLENGTH) + 0 -} -function str(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*\"" - if (!match(line, re)) return "" - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /"/)) return "" - return substr(seg, 1, RSTART - 1) -} -function esc(v) { gsub(/\\/, "\\\\", v); gsub(/"/, "\\\"", v); return v } -BEGIN { - # Reverse-DNS names resolved in the background; "-" is a cached miss. - while ((getline l < rdnsfile) > 0) { - n = split(l, f, " ") - if (n >= 2 && f[2] != "-") rdns[f[1]] = f[2] - } - close(rdnsfile) - print "# HELP trafficctl_device_connections Active tracked connections per device." - print "# TYPE trafficctl_device_connections gauge" - print "# HELP trafficctl_device_blocked Whether the device is blocked from the internet." - print "# TYPE trafficctl_device_blocked gauge" - print "# HELP trafficctl_device_limit_kbit Applied throttle in kbit/s (0 = none)." - print "# TYPE trafficctl_device_limit_kbit gauge" - print "# HELP trafficctl_device_limit_up_kbit Applied upload throttle in kbit/s (0 = none); equals the download one unless split." - print "# TYPE trafficctl_device_limit_up_kbit gauge" - print "# HELP trafficctl_device_wifi_blocked Whether the device is denied on WiFi." - print "# TYPE trafficctl_device_wifi_blocked gauge" - print "# HELP trafficctl_device_conntrack_bytes Bytes currently accounted in conntrack (falls as flows expire)." - print "# TYPE trafficctl_device_conntrack_bytes gauge" - print "# HELP trafficctl_device_blocked_bytes Bytes dropped by the block rule." - print "# TYPE trafficctl_device_blocked_bytes gauge" - print "# HELP trafficctl_device_info Device metadata; the value is always 1." - print "# TYPE trafficctl_device_info gauge" -} -{ - ip = str($0, "ip") - if (ip == "") next - printf "trafficctl_device_connections{ip=\"%s\"} %d\n", ip, num($0, "conns") - printf "trafficctl_device_blocked{ip=\"%s\"} %d\n", ip, (index($0, "\"blocked\":true") ? 1 : 0) - printf "trafficctl_device_wifi_blocked{ip=\"%s\"} %d\n", ip, (index($0, "\"wifi_blocked\":true") ? 1 : 0) - printf "trafficctl_device_limit_kbit{ip=\"%s\",mode=\"limiter\"} %d\n", ip, num($0, "rate_limit_kbit") - printf "trafficctl_device_limit_kbit{ip=\"%s\",mode=\"shaper\"} %d\n", ip, num($0, "shape_kbit") - # Its own metric rather than a direction label on the one above: a new - # label would start new series for every existing dashboard and alert. - printf "trafficctl_device_limit_up_kbit{ip=\"%s\",mode=\"limiter\"} %d\n", ip, num($0, "rate_limit_kbit_up") - printf "trafficctl_device_limit_up_kbit{ip=\"%s\",mode=\"shaper\"} %d\n", ip, num($0, "shape_kbit_up") - # Conntrack view: current in-flight totals and the protocol split. - printf "trafficctl_device_conntrack_bytes{ip=\"%s\",proto=\"all\"} %.0f\n", ip, num($0, "total") - printf "trafficctl_device_conntrack_bytes{ip=\"%s\",proto=\"tcp\"} %.0f\n", ip, num($0, "tcp") - printf "trafficctl_device_conntrack_bytes{ip=\"%s\",proto=\"udp\"} %.0f\n", ip, num($0, "udp") - printf "trafficctl_device_blocked_bytes{ip=\"%s\"} %.0f\n", ip, num($0, "block_bytes") - # Names/MACs live on an info metric rather than on the counters: churn in a - # label would otherwise start a brand new time series for the same device. - # Hoisted rather than inlined as esc(ip in rdns ? ...): BusyBox awk parses - # an "in" test inside a call argument differently and silently drops the - # whole statement. - rd = "" - if (ip in rdns) rd = rdns[ip] - printf "trafficctl_device_info{ip=\"%s\",name=\"%s\",mac=\"%s\",link=\"%s\",app=\"%s\",rdns=\"%s\"} 1\n", \ - ip, esc(str($0, "name")), esc(str($0, "mac")), esc(str($0, "conn_type")), esc(str($0, "app")), esc(rd) -}' -fi - -# ── port forwards ─────────────────────────────────────────────────────────── -if opt_on portfw; then - /usr/local/bin/trafficctl-portfw.sh list 2>/dev/null \ - | sed 's/},{/}\n{/g' \ - | awk ' -function num(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*" - if (!match(line, re)) return 0 - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /^[0-9]+/)) return 0 - return substr(seg, RSTART, RLENGTH) + 0 -} -function str(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*\"" - if (!match(line, re)) return "" - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /"/)) return "" - return substr(seg, 1, RSTART - 1) -} -function esc(v) { gsub(/\\/, "\\\\", v); gsub(/"/, "\\\"", v); return v } -BEGIN { - print "# HELP trafficctl_portfw_connections Active inbound connections per port forward." - print "# TYPE trafficctl_portfw_connections gauge" - print "# HELP trafficctl_portfw_clients Distinct remote clients per port forward." - print "# TYPE trafficctl_portfw_clients gauge" - print "# HELP trafficctl_portfw_paused Whether inbound traffic is paused." - print "# TYPE trafficctl_portfw_paused gauge" - print "# HELP trafficctl_portfw_enabled Whether the firewall rule itself is enabled." - print "# TYPE trafficctl_portfw_enabled gauge" - print "# HELP trafficctl_portfw_limit_kbit Inbound rate limit in kbit/s (0 = none)." - print "# TYPE trafficctl_portfw_limit_kbit gauge" - print "# HELP trafficctl_portfw_bytes Bytes currently accounted per port forward." - print "# TYPE trafficctl_portfw_bytes gauge" -} -{ - id = str($0, "id") - if (id == "") next - lbl = sprintf("name=\"%s\",proto=\"%s\",port=\"%s\"", \ - esc(str($0, "name")), esc(str($0, "proto")), esc(str($0, "ext_port"))) - printf "trafficctl_portfw_connections{%s} %d\n", lbl, num($0, "conns") - printf "trafficctl_portfw_clients{%s} %d\n", lbl, num($0, "clients") - printf "trafficctl_portfw_paused{%s} %d\n", lbl, (index($0, "\"paused\":true") ? 1 : 0) - printf "trafficctl_portfw_enabled{%s} %d\n", lbl, (index($0, "\"enabled\":true") ? 1 : 0) - printf "trafficctl_portfw_limit_kbit{%s} %d\n", lbl, num($0, "limit_kbit") - printf "trafficctl_portfw_bytes{%s,direction=\"rx\"} %.0f\n", lbl, num($0, "bytes_in") - printf "trafficctl_portfw_bytes{%s,direction=\"tx\"} %.0f\n", lbl, num($0, "bytes_out") -}' -fi - -# ── DPI application labels ────────────────────────────────────────────────── -# Off by default: device × application is a cardinality trap on a busy network. -if [ "$(uci -q get trafficctl.metrics.apps 2>/dev/null)" = "1" ]; then - /usr/local/bin/trafficctl-netify.sh list 2>/dev/null \ - | sed -e 's/\]},{/]}\n{/g' \ - | awk ' -BEGIN { - print "# HELP trafficctl_app_bytes Bytes per device per application in the last DPI sample." - print "# TYPE trafficctl_app_bytes gauge" -} -{ - if (!match($0, /"ip":"[^"]*"/)) next - ip = substr($0, RSTART + 6, RLENGTH - 7) - rest = $0 - # Match the whole app object, not just up to "bytes" — "flows" follows it. - while (match(rest, /\{"name":"[^"]*","bytes":[0-9]+[^}]*\}/)) { - rec = substr(rest, RSTART, RLENGTH) - rest = substr(rest, RSTART + RLENGTH) - if (!match(rec, /"name":"[^"]*"/)) continue - app = substr(rec, RSTART + 8, RLENGTH - 9) - if (!match(rec, /"bytes":[0-9]+/)) continue - b = substr(rec, RSTART + 8, RLENGTH - 8) + 0 - printf "trafficctl_app_bytes{ip=\"%s\",app=\"%s\"} %.0f\n", ip, app, b - if (match(rec, /"flows":[0-9]+/)) - printf "trafficctl_app_flows{ip=\"%s\",app=\"%s\"} %d\n", ip, app, \ - substr(rec, RSTART + 8, RLENGTH - 8) + 0 - } -}' -fi - -echo "# HELP trafficctl_up Always 1; presence indicates the exporter ran." -echo "# TYPE trafficctl_up gauge" -echo "trafficctl_up 1" diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-names.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-names.sh deleted file mode 100755 index 567103da5..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-names.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Manual device names (aliases), keyed by IP. -# -# Aliases take precedence over DHCP lease names and reverse DNS, which is what -# makes routed devices nameable: they have no lease on this router, so without -# an alias (or a PTR record) they would only ever show as "*". -# -# Usage: trafficctl-names.sh list|set |remove -# Storage: /etc/trafficctl/names — one "IP NAME" line per device. - -. /usr/local/bin/trafficctl-fw.sh - -NAMES_FILE="/etc/trafficctl/names" - -# Strip anything that could break the line format or the JSON output, and cap -# the length so a pathological name can't bloat every poll response. -sanitize_name() { - printf '%s' "$1" | tr -d '\n\r\t' | tr -cd 'a-zA-Z0-9 _.()-' | cut -c1-32 -} - -do_list() { - printf '[' - [ -f "$NAMES_FILE" ] || { printf ']\n'; return 0; } - awk 'NF >= 2 { - ip = $1 - name = $0 - sub(/^[^ ]+ +/, "", name) - if (n++) printf "," - printf "{\"ip\":\"%s\",\"name\":\"%s\"}", ip, name - }' "$NAMES_FILE" - printf ']\n' -} - -do_set() { - local ip="$1" name="$2" tmp - tctl_validate_ip "$ip" || { echo '{"ok":false,"msg":"invalid IP address"}'; return 1; } - name=$(sanitize_name "$name") - [ -z "$name" ] && { echo '{"ok":false,"msg":"name is empty after sanitizing"}'; return 1; } - - mkdir -p "$(dirname "$NAMES_FILE")" - [ -f "$NAMES_FILE" ] || : > "$NAMES_FILE" - tmp="${NAMES_FILE}.tmp" - awk -v ip="$ip" '$1 != ip' "$NAMES_FILE" > "$tmp" - echo "$ip $name" >> "$tmp" - mv "$tmp" "$NAMES_FILE" - - tctl_log "config_change" "$ip" "name=$name" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - printf '{"ok":true,"msg":"named %s as %s"}\n' "$ip" "$name" -} - -do_remove() { - local ip="$1" tmp - tctl_validate_ip "$ip" || { echo '{"ok":false,"msg":"invalid IP address"}'; return 1; } - [ -f "$NAMES_FILE" ] || { echo '{"ok":true,"msg":"no aliases stored"}'; return 0; } - tmp="${NAMES_FILE}.tmp" - awk -v ip="$ip" '$1 != ip' "$NAMES_FILE" > "$tmp" - mv "$tmp" "$NAMES_FILE" - tctl_log "config_change" "$ip" "name cleared" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - printf '{"ok":true,"msg":"name cleared for %s"}\n' "$ip" -} - -case "$1" in - list) do_list ;; - set) do_set "$2" "$3" ;; - remove) do_remove "$2" ;; - *) echo '{"ok":false,"msg":"usage: trafficctl-names.sh list|set |remove "}'; exit 1 ;; -esac diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-netify.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-netify.sh deleted file mode 100755 index 089bc8709..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-netify.sh +++ /dev/null @@ -1,247 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Optional Netify Agent (netifyd) integration — DPI application labels per device. -# -# Entirely optional: every entry point degrades to an empty result when netifyd -# is not installed, not running, or no socket reader is available, so the rest -# of trafficctl behaves exactly as before. -# -# Usage: -# trafficctl-netify.sh status — availability probe (JSON object) -# trafficctl-netify.sh collect [secs] — sample the socket, refresh the cache -# trafficctl-netify.sh list — cached per-device app breakdown -# trafficctl-netify.sh raw [secs] — raw socket lines (debugging) -# -# Telemetry comes from the agent's socket SINK, not from netifyd.sock: in -# Agent v5 that unix socket is a request/response API which never pushes flow -# data, so connecting to it returns nothing at all. The sink's bind address is -# read from netify-sink-socket.json (typically tcp://127.0.0.1:1780). -# -# Two payload shapes are handled: the aggregator's {"stats":[...]} records -# (application_id/local_ip/download/upload) and raw per-flow records -# (detected_application_name/local_ip/total_bytes). Records are parsed by field -# extraction rather than strict JSON, which tolerates either framing. - -. /usr/local/bin/trafficctl-fw.sh - -CACHE="/tmp/trafficctl_netify.json" -LOCK="/tmp/trafficctl_netify.lock" -DEFAULT_SOCKET="/var/run/netifyd/netifyd.sock" - -netify_socket() { - local s - s=$(uci -q get trafficctl.main.netify_socket 2>/dev/null) - [ -n "$s" ] && { echo "$s"; return; } - echo "$DEFAULT_SOCKET" -} - -# Where flow telemetry is actually published: an explicit override, else the -# first enabled socket-sink channel, else the legacy unix socket (Agent v4). -netify_endpoint() { - local ep - ep=$(uci -q get trafficctl.main.netify_endpoint 2>/dev/null) - [ -n "$ep" ] && { echo "$ep"; return; } - ep=$(sed -n 's/.*"bind_address\"[ \t]*:[ \t]*"\(tcp:\/\/[^"]*\)".*/\1/p' \ - /etc/netifyd/netify-sink-socket.json 2>/dev/null | head -1) - [ -n "$ep" ] && { echo "$ep"; return; } - echo "unix://$(netify_socket)" -} - -netify_enabled() { - [ "$(uci -q get trafficctl.main.netify_enabled 2>/dev/null)" != "0" ] -} - -# Echo the command able to stream the socket, or nothing. -socket_reader() { - if command -v socat >/dev/null 2>&1; then - echo "socat" - elif command -v nc >/dev/null 2>&1; then - echo "nc" - fi -} - -read_socket() { - local secs="$1" ep reader hostport path - ep=$(netify_endpoint) - reader=$(socket_reader) - [ -n "$reader" ] || return 1 - - case "$ep" in - tcp://*) - hostport=${ep#tcp://} - case "$reader" in - socat) timeout "$secs" socat -u "TCP-CONNECT:$hostport" - 2>/dev/null ;; - nc) timeout "$secs" nc "${hostport%%:*}" "${hostport##*:}" 2>/dev/null ;; - esac - ;; - unix://*|/*) - path=${ep#unix://} - [ -S "$path" ] || return 1 - case "$reader" in - socat) timeout "$secs" socat -u "UNIX-CONNECT:$path" - 2>/dev/null ;; - nc) timeout "$secs" nc -U "$path" 2>/dev/null ;; - esac - ;; - *) return 1 ;; - esac - return 0 -} - -# Tests (and offline debugging) feed recorded agent output instead of a socket. -feed_lines() { - if [ -n "$TCTL_NETIFY_FEED" ] && [ -f "$TCTL_NETIFY_FEED" ]; then - cat "$TCTL_NETIFY_FEED" - else - read_socket "$1" - fi -} - -do_status() { - local sock reader installed=false running=false readable=false age=-1 now mtime - sock=$(netify_socket) - reader=$(socket_reader) - command -v netifyd >/dev/null 2>&1 && installed=true - [ -S "$sock" ] && running=true - [ -n "$reader" ] && readable=true - if [ -f "$CACHE" ]; then - now=$(date +%s) - mtime=$(date -r "$CACHE" +%s 2>/dev/null || echo 0) - age=$(( now - mtime )) - fi - printf '{"enabled":%s,"installed":%s,"running":%s,"socket":"%s","endpoint":"%s","reader":"%s","readable":%s,"cache_age":%d}\n' \ - "$(netify_enabled && echo true || echo false)" \ - "$installed" "$running" "$sock" "$(netify_endpoint)" "${reader:-none}" "$readable" "$age" -} - -# Aggregate flow records into "per local IP → per application" totals. -# -# The agent re-emits a flow as its byte counters grow (flow, flow_dpi_update, -# flow_dpi_complete), so totals are tracked per flow digest and only summed at -# the end — adding every sighting would multiply-count the same traffic. -parse_flows() { - # One JSON object per line so the field extractor sees one record at a - # time — the aggregator packs every device into a single "stats" array. - sed 's/},[ ]*{/}\n{/g' | awk ' - function field(line, key, re, seg, v) { - re = "\"" key "\"[ \t]*:[ \t]*" - if (!match(line, re)) return "" - seg = substr(line, RSTART + RLENGTH) - if (substr(seg, 1, 1) == "\"") { - seg = substr(seg, 2) - if (!match(seg, /"/)) return "" - return substr(seg, 1, RSTART - 1) - } - if (!match(seg, /^-?[0-9]+/)) return "" - return substr(seg, RSTART, RLENGTH) + 0 - } - { - # Only flow-bearing records carry local_ip; skip status/hello lines. - ip = field($0, "local_ip") - if (ip !~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) next - - # Aggregator records name the app as ".netify.". - app = field($0, "application_id") - sub(/^[0-9]+\./, "", app) - if (app == "") app = field($0, "detected_application_name") - # Agent prefixes catalogued apps with "netify."; the bare name reads - # better in a table. - sub(/^netify\./, "", app) - if (app == "" || app == "unknown") app = field($0, "detected_protocol_name") - if (app == "" || app == "Unknown") { - host = field($0, "host_server_name") - if (host != "") app = host; else app = "unclassified" - } - gsub(/[^a-zA-Z0-9._ -]/, "", app) - if (app == "") app = "unclassified" - - digest = field($0, "digest") - # Aggregator: per-interval byte deltas, already summed per device+app. - bytes = field($0, "download") + field($0, "upload") - if (bytes == 0) bytes = field($0, "total_bytes") - if (bytes == "" || bytes == 0) bytes = field($0, "local_bytes") + field($0, "other_bytes") - if (digest == "") digest = ip "|" app "|" NR - - key = ip SUBSEP app - # Last sighting of a digest carries its cumulative total. - if (!(digest in seen)) { seen[digest] = key; flows[key]++ } - dbytes[digest] = bytes + 0 - } - END { - for (d in seen) total[seen[d]] += dbytes[d] - for (k in total) { - split(k, p, SUBSEP) - printf "%s %s %.0f %d\n", p[1], p[2], total[k], flows[k] - } - }' -} - -do_collect() { - # The aggregator publishes on an interval (~15s), so a short sample window - # usually catches nothing at all — wait long enough to span one report. - local secs="${1:-18}" raw parsed tmp - case "$secs" in ''|*[!0-9]*) secs=18 ;; esac - [ "$secs" -lt 1 ] && secs=1 - [ "$secs" -gt 60 ] && secs=60 - - netify_enabled || { echo '{"ok":false,"msg":"netify integration disabled"}'; return 0; } - - # One collector at a time — overlapping samples would double the socket - # load and race on the cache file. - mkdir "$LOCK" 2>/dev/null || { echo '{"ok":false,"msg":"collection already running"}'; return 0; } - # shellcheck disable=SC2064 - trap "rmdir '$LOCK' 2>/dev/null" EXIT INT TERM - - raw=$(feed_lines "$secs") - if [ -z "$raw" ]; then - echo '{"ok":false,"msg":"no data from netifyd socket"}' - return 0 - fi - - parsed=$(printf '%s\n' "$raw" | parse_flows) - tmp="${CACHE}.tmp" - # Group by IP, apps sorted by bytes descending. - printf '%s\n' "$parsed" | sort -k1,1 -k3,3nr | awk ' - BEGIN { printf "[" } - NF >= 4 { - if ($1 != cur) { - if (cur != "") printf "]}," - printf "{\"ip\":\"%s\",\"top\":\"%s\",\"apps\":[", $1, $2 - cur = $1 - first = 1 - } - if (!first) printf "," - printf "{\"name\":\"%s\",\"bytes\":%.0f,\"flows\":%d}", $2, $3, $4 - first = 0 - } - END { - if (cur != "") printf "]}" - printf "]\n" - }' > "$tmp" - mv "$tmp" "$CACHE" - - printf '{"ok":true,"msg":"collected %s","devices":%d}\n' \ - "${secs}s" "$(printf '%s\n' "$parsed" | awk 'NF{print $1}' | sort -u | wc -l)" -} - -do_list() { - if [ -f "$CACHE" ]; then - cat "$CACHE" - else - echo '[]' - fi -} - -do_raw() { - local secs="${1:-18}" - case "$secs" in ''|*[!0-9]*) secs=18 ;; esac - [ "$secs" -gt 60 ] && secs=60 - feed_lines "$secs" -} - -case "$1" in - status) do_status ;; - collect) do_collect "$2" ;; - list) do_list ;; - raw) do_raw "$2" ;; - *) echo '{"ok":false,"msg":"usage: trafficctl-netify.sh status|collect [secs]|list|raw [secs]"}'; exit 1 ;; -esac diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-portfw.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-portfw.sh deleted file mode 100755 index 8a987c1fb..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-portfw.sh +++ /dev/null @@ -1,486 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Inbound traffic control for port forwards and WAN-open ports. -# -# Usage: -# trafficctl-portfw.sh list -# trafficctl-portfw.sh pause -# trafficctl-portfw.sh resume -# trafficctl-portfw.sh limit (0 removes) -# -# scope: "forward" for a DNAT port forward (ip = internal destination), -# "input" for a router-local open port (ip is ignored, pass "-"). -# proto: "tcp", "udp" or "tcpudp" (applies to both). -# -# Rules live in our own table (inet tctl_pfw) hooked at forward/input -# priority -190 — after DNAT (prerouting) so the internal address is -# matchable, and before the flowtable offload rule so drops/limits keep -# working with software offload enabled. - -. /usr/local/bin/trafficctl-fw.sh - -PFW_PRIO="-190" - -# ── validation helpers ────────────────────────────────────────────────────── - -# iptables spells a port range lo:hi. Truncating to the low port (as this did) -# left every other port in the range open while reporting the whole range paused. -iptables_dport() { - case "$1" in - *-*) echo "${1%%-*}:${1##*-}" ;; - *) echo "$1" ;; - esac -} - -# hashlimit names are capped at 15 characters, so a range cannot be spelled out -# in full: 8000-8100 as "pfw_8000_8100_tcp" would be silently truncated into a -# collision with a neighbouring range. -hashlimit_name() { - local proto="$1" port="$2" lo - lo="${port%%-*}" - case "$port" in - *-*) echo "pfwr${lo}_${proto}" ;; - *) echo "pfw${lo}_${proto}" ;; - esac -} - -valid_port() { - case "$1" in - [0-9]*-[0-9]*) - local lo="${1%%-*}" hi="${1##*-}" - case "$lo$hi" in *[!0-9]*) return 1 ;; esac - [ "$lo" -ge 1 ] && [ "$lo" -le 65535 ] && \ - [ "$hi" -ge 1 ] && [ "$hi" -le 65535 ] && [ "$lo" -le "$hi" ] - ;; - *) - case "$1" in ''|*[!0-9]*) return 1 ;; esac - [ "$1" -ge 1 ] && [ "$1" -le 65535 ] - ;; - esac -} - -# Expand "tcpudp" / "tcp udp" to individual proto tokens -proto_tokens() { - case "$1" in - tcpudp|"tcp udp"|"udp tcp"|all|"") echo "tcp udp" ;; - tcp) echo "tcp" ;; - udp) echo "udp" ;; - *) return 1 ;; - esac -} - -pfw_comment() { - # kind proto ip port -> stable rule comment - printf 'tctl_pfw_%s_%s_%s_%s' "$1" "$2" "$3" "$4" -} - -# ── nft/iptables plumbing ─────────────────────────────────────────────────── - -ensure_pfw_table() { - [ "$TCTL_FW" = "nft" ] || return 0 - nft add table inet tctl_pfw 2>/dev/null - nft add chain inet tctl_pfw pfw_forward \ - "{ type filter hook forward priority $PFW_PRIO; policy accept; }" 2>/dev/null - nft add chain inet tctl_pfw pfw_input \ - "{ type filter hook input priority $PFW_PRIO; policy accept; }" 2>/dev/null -} - -pfw_chain_for_scope() { - [ "$1" = "input" ] && echo "pfw_input" || echo "pfw_forward" -} - -# Delete every rule in our table/chains carrying the given comment -pfw_delete_by_comment() { - local cmt="$1" chain h - if [ "$TCTL_FW" = "nft" ]; then - for chain in pfw_forward pfw_input; do - for h in $(nft -a list chain inet tctl_pfw "$chain" 2>/dev/null | \ - grep "\"$cmt\"" | grep -o 'handle [0-9]*' | awk '{print $2}'); do - nft delete rule inet tctl_pfw "$chain" handle "$h" 2>/dev/null - done - done - else - for chain in FORWARD INPUT; do - # Re-evaluate the first matching rule spec each pass until none - # with the comment is left (empty spec makes iptables -D fail). - # shellcheck disable=SC2046 # rule spec is intentionally re-split - while iptables -D "$chain" $(iptables -S "$chain" 2>/dev/null | \ - grep -m1 -- "--comment $cmt " | sed 's/^-A [A-Z]* //') 2>/dev/null; do :; done - done - fi -} - -pfw_add_pause() { - local scope="$1" proto="$2" ip="$3" port="$4" - local cmt chain - cmt=$(pfw_comment "pause" "$proto" "${ip:-local}" "$port") - if [ "$TCTL_FW" = "nft" ]; then - ensure_pfw_table - chain=$(pfw_chain_for_scope "$scope") - if [ "$scope" = "input" ]; then - nft insert rule inet tctl_pfw "$chain" \ - "$proto" dport "$port" counter drop comment "\"$cmt\"" - else - nft insert rule inet tctl_pfw "$chain" \ - ip daddr "$ip" "$proto" dport "$port" counter drop comment "\"$cmt\"" - fi - else - if [ "$scope" = "input" ]; then - iptables -I INPUT -p "$proto" --dport "$(iptables_dport "$port")" -j DROP \ - -m comment --comment "$cmt" 2>/dev/null - else - iptables -I FORWARD -d "$ip" -p "$proto" --dport "$(iptables_dport "$port")" -j DROP \ - -m comment --comment "$cmt" 2>/dev/null - fi - fi -} - -pfw_add_limit() { - local scope="$1" proto="$2" ip="$3" port="$4" kbit="$5" - local cmt chain rate_b - rate_b=$(tctl_rate_bytes "$kbit") - cmt=$(pfw_comment "limit" "$proto" "${ip:-local}" "$port") - if [ "$TCTL_FW" = "nft" ]; then - ensure_pfw_table - chain=$(pfw_chain_for_scope "$scope") - if [ "$scope" = "input" ]; then - nft add rule inet tctl_pfw "$chain" \ - "$proto" dport "$port" limit rate over "$rate_b" bytes/second \ - counter drop comment "\"$cmt\"" - else - nft add rule inet tctl_pfw "$chain" \ - ip daddr "$ip" "$proto" dport "$port" limit rate over "$rate_b" bytes/second \ - counter drop comment "\"$cmt\"" - fi - else - if [ "$scope" = "input" ]; then - # shellcheck disable=SC2046 # deliberate split into the option words - iptables -I INPUT -p "$proto" --dport "$(iptables_dport "$port")" -m hashlimit \ - $(tctl_ipt_limit_args "$kbit") \ - --hashlimit-mode dstport --hashlimit-name "$(hashlimit_name "$proto" "$port")" \ - -j DROP -m comment --comment "$cmt" 2>/dev/null - else - # shellcheck disable=SC2046 # deliberate split into the option words - iptables -I FORWARD -d "$ip" -p "$proto" --dport "$(iptables_dport "$port")" -m hashlimit \ - $(tctl_ipt_limit_args "$kbit") \ - --hashlimit-mode dstip --hashlimit-name "$(hashlimit_name "$proto" "$port")" \ - -j DROP -m comment --comment "$cmt" 2>/dev/null - fi - fi -} - -# Flush established conntrack entries so a pause takes effect immediately, -# even for flows already offloaded to the flowtable. Best effort. -pfw_flush_conntrack() { - local proto="$1" ip="$2" port="$3" lo hi p - command -v conntrack >/dev/null 2>&1 || return 0 - if [ -n "$ip" ] && [ "$ip" != "-" ]; then - conntrack -D -p "$proto" --reply-src "$ip" 2>/dev/null - return 0 - fi - # conntrack takes one port at a time, so a range is walked. Wide ranges are - # left to expire on their own rather than spending thousands of calls here. - lo="${port%%-*}" - hi="${port##*-}" - if [ "$lo" = "$hi" ] || [ "$((hi - lo))" -gt 64 ] 2>/dev/null; then - conntrack -D -p "$proto" --dport "$lo" 2>/dev/null - return 0 - fi - p="$lo" - while [ "$p" -le "$hi" ]; do - conntrack -D -p "$proto" --dport "$p" 2>/dev/null - p=$((p + 1)) - done - return 0 -} - -# ── list ──────────────────────────────────────────────────────────────────── - -do_list() { - # Current control rules (one dump, grepped below): - # comments look like tctl_pfw____ - local CTL_DUMP="" - if [ "$TCTL_FW" = "nft" ]; then - CTL_DUMP=$(nft list table inet tctl_pfw 2>/dev/null) - else - CTL_DUMP=$(printf '%s\n%s' "$(iptables -S FORWARD 2>/dev/null)" "$(iptables -S INPUT 2>/dev/null)") - fi - - # Monitored subnets — used to keep router-local (input) stats to - # external clients only (LAN hits on router ports are not "inbound"). - local MATCH_SPEC - MATCH_SPEC=$(tctl_monitored_subnets | awk '{printf "%s%s:%s",(NR>1?" ":""),$2,$3}') - - # Enumerate rules first: "id|kind|protos|ip|port|extport|name|enabled|zone" - local entries="" - local i=0 name src dport dest_ip dest_port proto enabled target - while uci -q get "firewall.@redirect[$i]" >/dev/null 2>&1; do - name=$(uci -q get "firewall.@redirect[$i].name") - src=$(uci -q get "firewall.@redirect[$i].src") - dport=$(uci -q get "firewall.@redirect[$i].src_dport") - dest_ip=$(uci -q get "firewall.@redirect[$i].dest_ip") - dest_port=$(uci -q get "firewall.@redirect[$i].dest_port") - proto=$(uci -q get "firewall.@redirect[$i].proto") - enabled=$(uci -q get "firewall.@redirect[$i].enabled") - target=$(uci -q get "firewall.@redirect[$i].target") - i=$((i + 1)) - [ -n "$target" ] && [ "$target" != "DNAT" ] && continue - [ -n "$dest_ip" ] && [ -n "$dport" ] || continue - [ -z "$dest_port" ] && dest_port="$dport" - proto=$(proto_tokens "$proto") || proto="tcp udp" - name=$(printf '%s' "$name" | tr -cd 'a-zA-Z0-9 _.()-') - entries="${entries}r$((i-1))|forward|${proto}|${dest_ip}|${dest_port}|${dport}|${name:-forward $dport}|${enabled:-1}|${src:-wan} -" - done - - i=0 - local rsrc rdest - while uci -q get "firewall.@rule[$i]" >/dev/null 2>&1; do - name=$(uci -q get "firewall.@rule[$i].name") - rsrc=$(uci -q get "firewall.@rule[$i].src") - rdest=$(uci -q get "firewall.@rule[$i].dest") - dport=$(uci -q get "firewall.@rule[$i].dest_port") - proto=$(uci -q get "firewall.@rule[$i].proto") - enabled=$(uci -q get "firewall.@rule[$i].enabled") - target=$(uci -q get "firewall.@rule[$i].target") - i=$((i + 1)) - # Router-local open ports: accept rules from a wan zone with no dest zone - case "$rsrc" in *wan*) ;; *) continue ;; esac - [ -n "$rdest" ] && continue - [ "$target" = "ACCEPT" ] || continue - [ -n "$dport" ] || continue - proto=$(proto_tokens "$proto") || continue - name=$(printf '%s' "$name" | tr -cd 'a-zA-Z0-9 _.()-') - entries="${entries}a$((i-1))|open|${proto}|-|${dport}|${dport}|${name:-open $dport}|${enabled:-1}|${rsrc} -" - done - - if [ -z "$entries" ]; then - echo '[]' - return 0 - fi - - # Single conntrack pass: per-entry conns / distinct clients / bytes. - # forward: reply src == dest_ip && reply sport in dest_port && DNAT - # happened (orig dst != reply src) - # open: orig dport in port && no NAT (reply src == orig dst) && the - # client is not on a monitored subnet - local STATS - local ENTRY_FILE="/tmp/.trafficctl_pfw_entries.$$" - printf '%s' "$entries" > "$ENTRY_FILE" - STATS=$(awk -v ef="$ENTRY_FILE" -v spec="$MATCH_SPEC" ' - function ip2int(ip, a) { - split(ip, a, ".") - return a[1]*16777216 + a[2]*65536 + a[3]*256 + a[4] - } - function is_internal(ip, si, k) { - if (ip !~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) return 0 - si = ip2int(ip) - for (k = 1; k <= ns; k++) - if (si - (si % blk[k]) == base[k]) return 1 - return 0 - } - function port_in(p, range, lo, hi, sep) { - sep = index(range, "-") - if (sep == 0) return (p + 0) == (range + 0) - lo = substr(range, 1, sep - 1) + 0 - hi = substr(range, sep + 1) + 0 - return (p + 0) >= lo && (p + 0) <= hi - } - BEGIN { - ns = split(spec, sp, " ") - for (k = 1; k <= ns; k++) { - split(sp[k], kv, ":") - base[k] = kv[1] + 0; blk[k] = kv[2] + 0 - } - n = 0 - while ((getline line < ef) > 0) { - if (line == "") continue - n++ - split(line, f, "|") - eid[n] = f[1]; ekind[n] = f[2]; eproto[n] = f[3] - eip[n] = f[4]; eport[n] = f[5] - } - close(ef) - } - { - proto = "" - for (i = 1; i <= NF; i++) { - if ($i == "tcp") proto = "tcp" - else if ($i == "udp") proto = "udp" - } - if (proto == "") next - t = 0 - osrc = ""; odst = ""; odport = ""; ob = 0 - rsrc = ""; rsport = ""; rb = 0 - for (i = 1; i <= NF; i++) { - if (index($i, "src=") == 1) { - t++ - if (t == 1) osrc = substr($i, 5) - else if (t == 2) rsrc = substr($i, 5) - } else if (index($i, "dst=") == 1) { - if (t == 1 && odst == "") odst = substr($i, 5) - } else if (index($i, "dport=") == 1) { - if (t == 1 && odport == "") odport = substr($i, 7) - } else if (index($i, "sport=") == 1) { - if (t == 2 && rsport == "") rsport = substr($i, 7) - } else if (index($i, "bytes=") == 1) { - if (t == 1) ob = substr($i, 7) + 0 - else if (t == 2) rb = substr($i, 7) + 0 - } - } - if (osrc == "" || rsrc == "") next - for (k = 1; k <= n; k++) { - if (index(eproto[k], proto) == 0) continue - if (ekind[k] == "forward") { - if (rsrc != eip[k]) continue - if (!port_in(rsport, eport[k])) continue - if (odst == rsrc) continue # LAN-direct, not DNATed - } else { - if (rsrc != odst) continue # NATed => not router-local - if (!port_in(odport, eport[k])) continue - if (is_internal(osrc)) continue # LAN client, not inbound - } - conns[k]++ - bin[k] += ob - bout[k] += rb - if (!((k, osrc) in seen)) { seen[k, osrc] = 1; clients[k]++ } - break - } - } - END { - for (k = 1; k <= n; k++) - printf "%s %d %d %d %d\n", eid[k], conns[k]+0, clients[k]+0, bin[k]+0, bout[k]+0 - }' "${TCTL_CT_FILE:-/proc/net/nf_conntrack}" 2>/dev/null) - rm -f "$ENTRY_FILE" - - # Emit JSON - printf '[' - local first=1 id kind protos ip port extport ename en zone - local st conns clients b_in b_out paused limit_kbit cmt_ip p - printf '%s' "$entries" | while IFS='|' read -r id kind protos ip port extport ename en zone; do - [ -z "$id" ] && continue - # shellcheck disable=SC2046 # deliberate split of stats fields - set -- $(printf '%s\n' "$STATS" | awk -v id="$id" '$1==id{print $2,$3,$4,$5; exit}') - conns="${1:-0}"; clients="${2:-0}"; b_in="${3:-0}"; b_out="${4:-0}" - - cmt_ip="$ip" - [ "$kind" = "open" ] && cmt_ip="local" - paused=false - limit_kbit=0 - for p in $protos; do - printf '%s' "$CTL_DUMP" | grep -q "$(pfw_comment pause "$p" "$cmt_ip" "$port")" && paused=true - if [ "$limit_kbit" = "0" ]; then - st=$(printf '%s' "$CTL_DUMP" | grep "$(pfw_comment limit "$p" "$cmt_ip" "$port")" | \ - awk "$TCTL_NFT_RATE_AWK"'{ for (i = 1; i < NF - 1; i++) if ($i == "over") { printf "%.0f\n", tctl_rate_kbit($(i+1), $(i+2)); exit } }') - [ -z "$st" ] && st=$(printf '%s' "$CTL_DUMP" | grep "$(pfw_comment limit "$p" "$cmt_ip" "$port")" | \ - awk "$TCTL_NFT_RATE_AWK"'{ r = tctl_ipt_first_rate(); if (r >= 0) { print r; exit } }') - [ -n "$st" ] && limit_kbit="$st" - fi - done - - if [ "$first" = "1" ]; then first=0; else printf ','; fi - printf '{"id":"%s","kind":"%s","name":"%s","zone":"%s","proto":"%s","ext_port":"%s","ip":"%s","port":"%s","enabled":%s,"paused":%s,"limit_kbit":%d,"conns":%d,"clients":%d,"bytes_in":%.0f,"bytes_out":%.0f}' \ - "$id" "$kind" "$ename" "$zone" "$protos" "$extport" "$ip" "$port" \ - "$([ "$en" != "0" ] && echo true || echo false)" \ - "$paused" "$limit_kbit" "$conns" "$clients" "$b_in" "$b_out" - done - printf ']\n' -} - -# ── control actions ───────────────────────────────────────────────────────── - -check_args() { - # scope proto ip port - case "$1" in forward|input) ;; *) return 1 ;; esac - proto_tokens "$2" >/dev/null || return 1 - if [ "$1" = "forward" ]; then - tctl_validate_ip "$3" || return 1 - fi - valid_port "$4" || return 1 - return 0 -} - -do_pause() { - local scope="$1" proto="$2" ip="$3" port="$4" p cmt_ip - cmt_ip="$ip" - [ "$scope" = "input" ] && cmt_ip="local" - for p in $(proto_tokens "$proto"); do - pfw_delete_by_comment "$(pfw_comment pause "$p" "$cmt_ip" "$port")" - pfw_add_pause "$scope" "$p" "$ip" "$port" || { - echo "{\"ok\":false,\"msg\":\"failed to pause $p port $port\"}" - return 1 - } - pfw_flush_conntrack "$p" "$([ "$scope" = "input" ] && echo "-" || echo "$ip")" "$port" - done - tctl_persist_enabled && tctl_persist_save "pfw_pause" "${scope}/${proto}/${cmt_ip}/${port}" "1" - tctl_log "block" "pfw:${cmt_ip}:${port}" "pause ${proto}" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - echo "{\"ok\":true,\"msg\":\"paused ${proto} port ${port}\"}" -} - -do_resume() { - local scope="$1" proto="$2" ip="$3" port="$4" p cmt_ip - cmt_ip="$ip" - [ "$scope" = "input" ] && cmt_ip="local" - for p in $(proto_tokens "$proto"); do - pfw_delete_by_comment "$(pfw_comment pause "$p" "$cmt_ip" "$port")" - done - tctl_persist_enabled && tctl_persist_remove "pfw_pause" "${scope}/${proto}/${cmt_ip}/${port}" - tctl_log "unblock" "pfw:${cmt_ip}:${port}" "resume ${proto}" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - echo "{\"ok\":true,\"msg\":\"resumed ${proto} port ${port}\"}" -} - -do_limit() { - local scope="$1" proto="$2" ip="$3" port="$4" kbit="$5" p cmt_ip - case "$kbit" in ''|*[!0-9]*) - echo '{"ok":false,"msg":"invalid rate"}' - return 1 - esac - cmt_ip="$ip" - [ "$scope" = "input" ] && cmt_ip="local" - for p in $(proto_tokens "$proto"); do - pfw_delete_by_comment "$(pfw_comment limit "$p" "$cmt_ip" "$port")" - if [ "$kbit" != "0" ]; then - pfw_add_limit "$scope" "$p" "$ip" "$port" "$kbit" || { - echo "{\"ok\":false,\"msg\":\"failed to limit $p port $port\"}" - return 1 - } - fi - done - if [ "$kbit" = "0" ]; then - tctl_persist_enabled && tctl_persist_remove "pfw_limit" "${scope}/${proto}/${cmt_ip}/${port}" - tctl_log "ratelimit_remove" "pfw:${cmt_ip}:${port}" "" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - echo "{\"ok\":true,\"msg\":\"limit removed for port ${port}\"}" - else - tctl_persist_enabled && tctl_persist_save "pfw_limit" "${scope}/${proto}/${cmt_ip}/${port}" "$kbit" - tctl_log "ratelimit_set" "pfw:${cmt_ip}:${port}" "${kbit}kbit" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - echo "{\"ok\":true,\"msg\":\"limit ${kbit} kbit/s set for port ${port}\"}" - fi -} - -# ── main ──────────────────────────────────────────────────────────────────── - -ACTION="$1" -case "$ACTION" in - list) - do_list - ;; - pause|resume) - if ! check_args "$2" "$3" "$4" "$5"; then - echo '{"ok":false,"msg":"usage: trafficctl-portfw.sh pause|resume "}' - exit 1 - fi - "do_$ACTION" "$2" "$3" "$4" "$5" - ;; - limit) - if ! check_args "$2" "$3" "$4" "$5"; then - echo '{"ok":false,"msg":"usage: trafficctl-portfw.sh limit "}' - exit 1 - fi - do_limit "$2" "$3" "$4" "$5" "$6" - ;; - *) - echo '{"ok":false,"msg":"usage: trafficctl-portfw.sh ..."}' - exit 1 - ;; -esac diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-ratelimit-stats.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-ratelimit-stats.sh deleted file mode 100755 index de44c6dc5..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-ratelimit-stats.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Show active rate-limit statistics. -# Output: JSON array -# [{"ip":"...","mode":"each|shared","rate_kbit":N,"packets":N,"bytes":N, -# "pass_packets":0,"pass_bytes":0}] -# -# One entry per target, counters summed across chains: the download rule is -# installed on every LAN device's egress chain, so a router with three bridges -# holds three copies of the same limit. Only the chain on the device the target -# actually lives behind ever matches, but which copy that is cannot be known -# here — taking any single one at random reported zero drops for most targets. - -. /usr/local/bin/trafficctl-fw.sh - -if [ "$TCTL_FW" = "nft" ]; then - nft list table netdev tm_ratelimit 2>/dev/null | awk "$TCTL_NFT_RATE_AWK"' - /ip daddr/ && /limit rate/ && /counter/ { - ip = "" - rate = 0 - packets = 0 - bytes = 0 - for (i = 1; i <= NF; i++) { - # FIRST daddr only. In "each" mode the rule reads - # ip daddr meter m { ip daddr limit rate over ... } - # and the meter key is a bare "ip daddr" with no operand, so - # overwriting on every match reported the target as "limit" — - # every per-device subnet limit was invisible to this output, to - # the dashboard, and to tctl_has_limit. - if (ip == "" && $i == "daddr" && i < NF && $(i+1) ~ /^[0-9]/) ip = $(i+1) - if ($i == "rate" && $(i+1) == "over") { - val = $(i+2) - gsub(/[^0-9]/, "", val) - # nft lists the largest whole unit, stepping by 1024 - # (see tctl_rl_rate_kbit); back to SI kbit/s. - rate = tctl_rate_kbit(val, $(i+3)) - } - if ($i == "counter") { - # format: counter packets N bytes N - if ($(i+1) == "packets") packets = $(i+2) - if ($(i+3) == "bytes") bytes = $(i+4) - } - } - if (ip != "") { - if (!(ip in seen)) { seen[ip] = 1; order[++n] = ip } - # A meter keyed on the address is what makes the bucket per-device. - mode[ip] = (index($0, " meter ") > 0) ? "each" : "shared" - rate_of[ip] = rate - pkts[ip] += packets - byts[ip] += bytes - } - } - END { - printf "[" - for (i = 1; i <= n; i++) { - ip = order[i] - if (i > 1) printf "," - printf "{\"ip\":\"%s\",\"mode\":\"%s\",\"rate_kbit\":%d,\"packets\":%.0f,\"bytes\":%.0f,\"pass_packets\":0,\"pass_bytes\":0}", \ - ip, mode[ip], rate_of[ip], pkts[ip], byts[ip] - } - printf "]\n" - } - ' -else - # hashlimit is keyed on dstip whatever mode was asked for, so on this path - # every bucket is per-address — "each" is the honest answer, not the - # requested mode. Documented in docs/API.md: shared needs nftables. - iptables -t mangle -L FORWARD -nvx 2>/dev/null | grep "rl_ratelimit" | awk "$TCTL_NFT_RATE_AWK"' - { - packets = $1 - bytes = $2 - ip = "" - rate = 0 - for (i = 1; i <= NF; i++) { - if ($i ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/ && ip == "") { - # skip source 0.0.0.0/0, take destination - } - if (i == 9) ip = $i - } - # the "above X" ceiling, in iptables units (see tctl_ipt_rate_kbit) - rate = tctl_ipt_first_rate() - if (rate < 0) rate = 0 - if (ip != "" && ip != "0.0.0.0/0") { - if (!(ip in seen)) { seen[ip] = 1; order[++n] = ip } - rate_of[ip] = rate - pkts[ip] += packets - byts[ip] += bytes - } - } - END { - printf "[" - for (i = 1; i <= n; i++) { - ip = order[i] - if (i > 1) printf "," - printf "{\"ip\":\"%s\",\"mode\":\"each\",\"rate_kbit\":%d,\"packets\":%.0f,\"bytes\":%.0f,\"pass_packets\":0,\"pass_bytes\":0}", \ - ip, rate_of[ip], pkts[ip], byts[ip] - } - printf "]\n" - } - ' -fi diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-ratelimit.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-ratelimit.sh deleted file mode 100755 index 0b3b8b048..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-ratelimit.sh +++ /dev/null @@ -1,126 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Rate-limit bandwidth in both directions (policer). -# -# Usage: trafficctl-ratelimit.sh [label] [mode] [rate_up] -# target a host (10.0.20.122), a CIDR (10.0.20.0/24), or "all" -# mode each — every address in the target gets its own bucket (default -# for CIDR/all, so "5 Mbit each" means per device) -# shared — the whole target shares one bucket (aggregate cap) -# rate_up upload ceiling in kbit/s; omitted means the same as rate_kbit, -# which is what this did before the directions could differ -# rate_kbit=0 removes the limit. - -. /usr/local/bin/trafficctl-fw.sh - -IP="$1" -RATE="$2" -MODE="$4" -# Fifth positional so every existing caller keeps working unchanged. Empty is -# "same as download", never zero — a zero ceiling policed every packet, which -# is a total block dressed up as a limit. -RATE_UP="$5" -[ -z "$RATE_UP" ] && RATE_UP="$RATE" - -if [ -z "$IP" ] || [ -z "$RATE" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-ratelimit.sh [label] [each|shared]"}' - exit 1 -fi - -TARGET=$(tctl_validate_target "$IP") || { - echo '{"ok":false,"msg":"invalid target — expected an IP, a CIDR, or \"all\""}' - exit 1 -} -IP="$TARGET" - -if [ -z "$MODE" ]; then - MODE=$(tctl_ratelimit_default_mode "$IP") -fi -case "$MODE" in - each|shared) ;; - *) echo '{"ok":false,"msg":"mode must be each or shared"}'; exit 1 ;; -esac - -LABEL="${3:-rl_$(tctl_target_slug "$IP")}" -COMMENT=$(tctl_ratelimit_comment "$IP") - -if [ "$RATE" = "0" ]; then - # Limits written before comments were derived from the target carry the - # caller's label, so one set from LuCI could not be removed from Telegram. - tctl_ratelimit_remove "$IP" "rl_ratelimit_${LABEL}" 2>/dev/null - if tctl_ratelimit_remove "$IP" "$COMMENT"; then - tctl_persist_enabled && tctl_persist_remove "ratelimit" "$IP" - tctl_log "ratelimit_remove" "$IP" "" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - echo "{\"ok\":true,\"msg\":\"rate limit removed for $IP\"}" - else - echo "{\"ok\":false,\"msg\":\"failed to remove rate limit for $IP\"}" - exit 1 - fi -else - # How the applied ceiling is spelled out. Naming one number when the - # operator gave two would hide exactly the thing they asked for. - rate_text() { - if [ "$RATE_UP" != "$RATE" ]; then - echo "${RATE} kbit/s down, ${RATE_UP} kbit/s up" - else - echo "${RATE} kbit/s" - fi - } - tctl_ratelimit_remove "$IP" "$COMMENT" 2>/dev/null - TCTL_RL_DOWNLOAD_FAILED=0 - TCTL_RL_UPLOAD_FAILED=0 - TCTL_RL_UPLOAD6_OK=0 - TCTL_RL_DOWNLOAD6_OK=0 - tctl_ratelimit_add "$IP" "$RATE" "$COMMENT" "$MODE" "$RATE_UP" - - # IPv6 coverage depends on whether the target has a MAC to key on, and - # each half can fail to load on its own. The operator has to know which - # part is live: claiming "both directions" without this note is how issue - # #67 stayed invisible. - if [ "$TCTL_RL_UPLOAD6_OK" = "1" ] && [ "$TCTL_RL_DOWNLOAD6_OK" = "1" ]; then - V6NOTE=" [IPv6: both directions]" - elif [ "$TCTL_RL_UPLOAD6_OK" = "1" ]; then - V6NOTE=" [IPv6: upload only]" - elif [ "$TCTL_RL_DOWNLOAD6_OK" = "1" ]; then - V6NOTE=" [IPv6: download only]" - else - V6NOTE=" [IPv4 only]" - fi - V6UP=$([ "$TCTL_RL_UPLOAD6_OK" = "1" ] && echo true || echo false) - V6DN=$([ "$TCTL_RL_DOWNLOAD6_OK" = "1" ] && echo true || echo false) - - # A half-applied limit is a silent trap: report exactly which direction - # is live rather than claiming success for both. - if [ "$TCTL_RL_DOWNLOAD_FAILED" = "1" ] && [ "$TCTL_RL_UPLOAD_FAILED" = "1" ]; then - echo "{\"ok\":false,\"msg\":\"failed to set rate limit for $IP (no usable WAN or LAN ingress device)\"}" - exit 1 - fi - # The mode is persisted with the rate. Without it the restore hook fell back - # to tctl_ratelimit_add's own default ("shared"), so a subnet limited - # "5 Mbit each" came back after a reboot as 5 Mbit for the entire subnet. - # The upload rate is persisted alongside, and only when it differs — a - # symmetric limit keeps producing exactly the record it always did. - tctl_persist_enabled && tctl_persist_save "ratelimit" "$IP" "$RATE" "$MODE" \ - "$([ "$RATE_UP" != "$RATE" ] && echo "$RATE_UP")" - tctl_log "ratelimit_set" "$IP" "$(rate_text)" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - # An already-accelerated flow is not re-evaluated against a rule that - # appeared afterwards, exactly as with flow offload — so the NSS flow - # table gets the same treatment the conntrack table does. - tctl_nss_defunct - # On a Qualcomm NSS router the rules above are installed and inert: the - # packets never reach the Linux stack. Reporting an unqualified success - # there is the defect in #81, so every message below carries the verdict - # and the result carries the status as a field. - NSSNOTE="$(tctl_nss_note)$(tctl_persist_note)" - NSS="$(tctl_nss_status)" - PERSIST=$(tctl_persist_enabled && echo true || echo false) - if [ "$TCTL_RL_DOWNLOAD_FAILED" = "1" ]; then - echo "{\"ok\":true,\"ipv6_upload\":$V6UP,\"ipv6_download\":$V6DN,\"nss\":\"$NSS\",\"persist\":$PERSIST,\"msg\":\"rate limit ${RATE_UP} kbit/s applied to $IP UPLOAD ONLY — WAN device not resolvable$V6NOTE$NSSNOTE\"}" - elif [ "$TCTL_RL_UPLOAD_FAILED" = "1" ]; then - # No ingress device means nothing feeds the v6 download set either, so - # tctl_ratelimit_add has already reported that half as not live. - echo "{\"ok\":true,\"ipv6_upload\":false,\"ipv6_download\":false,\"nss\":\"$NSS\",\"persist\":$PERSIST,\"msg\":\"rate limit ${RATE} kbit/s applied to $IP DOWNLOAD ONLY — no LAN ingress device [IPv4 only]$NSSNOTE\"}" - else - echo "{\"ok\":true,\"ipv6_upload\":$V6UP,\"ipv6_download\":$V6DN,\"nss\":\"$NSS\",\"persist\":$PERSIST,\"msg\":\"rate limit $(rate_text) for $IP (both directions, $MODE)$V6NOTE$NSSNOTE\"}" - fi -fi diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-rdns-refresh.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-rdns-refresh.sh deleted file mode 100755 index d5b330a29..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-rdns-refresh.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Populate the reverse-DNS name cache for the given IPs. -# -# Runs detached from the summary poll: resolving is slow and must never block -# the device table. The summary reads whatever the cache already holds and -# spawns this to fill in the gaps for the next poll. -# -# Names for devices behind a downstream router (MikroTik etc.) are not in this -# router's DHCP leases, so PTR is the only automatic source. trafficctl.main. -# rdns_server takes a space-separated list of resolvers tried in order — point -# it at the downstream router so its lease names get used. -# -# Usage: trafficctl-rdns-refresh.sh [ip ...] -# Cache: /tmp/trafficctl_rdns_cache — "IP HOST TIMESTAMP", HOST "-" = no record. - -. /usr/local/bin/trafficctl-fw.sh - -CACHE="/tmp/trafficctl_rdns_cache" -LOCK="/tmp/trafficctl_rdns.lock" - -# Only one refresher at a time: concurrent runs would fight over the cache file -# and hammer the resolvers with duplicate queries. -mkdir "$LOCK" 2>/dev/null || exit 0 -# shellcheck disable=SC2064 -trap "rmdir '$LOCK' 2>/dev/null" EXIT INT TERM - -SERVERS=$(uci -q get trafficctl.main.rdns_server 2>/dev/null) - -resolve_one() { - local ip="$1" host="" srv - - for srv in $SERVERS; do - host=$(nslookup "$ip" "$srv" 2>/dev/null | \ - sed -n -e 's/.*name = \([^ ]*\)\.$/\1/p' -e 's/^Name:[ ]*\(.*\)$/\1/p' | head -1) - [ -n "$host" ] && break - done - - # System resolver (dnsmasq knows this router's own leases and any - # PTR forwarding configured for downstream subnets). - if [ -z "$host" ] && command -v ubus >/dev/null 2>&1; then - host=$(ubus call network.rrdns lookup \ - "{\"addrs\":[\"$ip\"],\"timeout\":2000,\"limit\":1}" 2>/dev/null \ - | jsonfilter -e "@[\"$ip\"]" 2>/dev/null) - fi - if [ -z "$host" ] && command -v nslookup >/dev/null 2>&1; then - host=$(nslookup "$ip" 2>/dev/null | \ - sed -n -e 's/.*name = \([^ ]*\)\.$/\1/p' -e 's/^Name:[ ]*\(.*\)$/\1/p' | head -1) - fi - - # Reject anything that isn't a plain hostname, and drop the reverse-zone - # echo some resolvers return instead of NXDOMAIN. - case "$host" in - *in-addr.arpa*|*[!a-zA-Z0-9._-]*|"") host="" ;; - esac - # Bare hostname only — "phone.lan" is more useful than the full FQDN in a table. - printf '%s' "${host%%.*}" -} - -NOW=$(date +%s) -TMP="${CACHE}.tmp" - -for ip in "$@"; do - tctl_validate_ip "$ip" || continue - HOST=$(resolve_one "$ip") - [ -z "$HOST" ] && HOST="-" - # Rewrite this IP's entry, keeping every other line. - [ -f "$CACHE" ] || : > "$CACHE" - awk -v ip="$ip" '$1 != ip' "$CACHE" > "$TMP" - echo "$ip $HOST $NOW" >> "$TMP" - mv "$TMP" "$CACHE" -done diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-rdns.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-rdns.sh deleted file mode 100755 index f44be0e33..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-rdns.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Reverse DNS lookup for an IP address. -# Usage: trafficctl-rdns.sh -# Output: {"ip":"...","host":"..."} - -. /usr/local/bin/trafficctl-fw.sh - -IP="$1" - -if [ -z "$IP" ]; then - echo '{"ip":"","host":""}' - exit 1 -fi - -if ! tctl_validate_ip "$IP"; then - echo "{\"ip\":\"$IP\",\"host\":\"\"}" - exit 1 -fi - -HOST="" -# Try ubus network.rrdns (same resolver the LuCI frontend uses; always available via rpcd) -if command -v ubus >/dev/null 2>&1; then - HOST=$(ubus call network.rrdns lookup \ - "{\"addrs\":[\"$IP\"],\"timeout\":2000,\"limit\":1}" 2>/dev/null \ - | jsonfilter -e "@[\"$IP\"]" 2>/dev/null) -fi -# Fallback: BusyBox nslookup (always available on OpenWrt) -if [ -z "$HOST" ] && command -v nslookup >/dev/null 2>&1; then - HOST=$(nslookup "$IP" 2>/dev/null | sed -n 's/.*name = \(.*\)\.$/\1/p' | head -1) -fi - -# Validate hostname (only allow safe chars) -case "$HOST" in - *[!a-zA-Z0-9._-]*|"") HOST="" ;; -esac - -if [ -z "$HOST" ]; then - echo "{\"ip\":\"$IP\",\"host\":\"\"}" -else - echo "{\"ip\":\"$IP\",\"host\":\"$HOST\"}" -fi diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-shape-stats.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-shape-stats.sh deleted file mode 100755 index 509b47cbf..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-shape-stats.sh +++ /dev/null @@ -1,222 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Show traffic shaping statistics for all shaped devices. -# Output: JSON array with extended stats per IP. -# Fields: ip, rate_kbit, bytes, packets, backlog, drops, overlimits, -# requeues, lended, borrowed, ecn_mark, new_flows, old_flows, -# target_us, memory_used - -. /usr/local/bin/trafficctl-fw.sh - -LAN_DEV=$(tctl_get_lan_device) - -if ! command -v tc >/dev/null 2>&1; then - echo '[]'; exit 0 -fi - -if ! tc qdisc show dev "$LAN_DEV" 2>/dev/null | grep -q "htb 1:"; then - echo '[]'; exit 0 -fi - -# Map classid → real IP from persisted shapes. Minors are allocated, not derived -# from the address, so this map is the only way back to an IP; classes missing -# from it belong to another tc user and are skipped rather than mislabelled. -# The pattern used to require the record to end at the classid, so every shape -# with its own upload ceiling ("rate_kbit_up") was dropped from this output, -# and with it from tctl_has_limit. -# -# Flattened to ONE "classid ip classid ip …" line: a multi-line value passed -# through `awk -v` is rejected by some awks ("newline in string"), which left -# this output empty. Neither field can contain a space. -CLASSMAP=$(tctl_shape_classmap | awk '{ printf "%s %s ", $2, $1 }') - -# Collect class stats into a temp file so we can merge with qdisc stats -CLASS_DATA=$(tc -s class show dev "$LAN_DEV" 2>/dev/null) -QDISC_DATA=$(tc -s qdisc show dev "$LAN_DEV" 2>/dev/null) - -# Parse class stats: emit lines "classid ip rate bytes pkts backlog drops overlimits requeues lended borrowed" -CLASS_PARSED=$(echo "$CLASS_DATA" | awk -v classmap="$CLASSMAP" ' -BEGIN { - n = split(classmap, cmf, " ") - for (ci = 1; ci + 1 <= n; ci += 2) - if (cmf[ci] != "" && cmf[ci + 1] != "") ipmap[cmf[ci]] = cmf[ci + 1] -} - -/class fq_codel/ { skip = 1; next } -/^class htb 1:/ { - # emit previous record if valid - if (have_record && current_rate > 0 && current_rate < 1000000 && (classid in ipmap)) { - printf "%s %s %d %d %d %d %d %d %d %d %d\n", \ - classid, ipmap[classid], current_rate, \ - bytes, pkts, backlog, drops, overlimits, requeues, lended, borrowed - } - minor = $3 - sub(/^1:/, "", minor) - if (minor == "1" || minor == "fffe") { skip = 1; next } - skip = 0 - classid = "1:" minor - current_rate = 0 - for (i = 1; i <= NF; i++) { - if ($i == "rate") { - v = $(i+1) - if (v ~ /Gbit/) { sub(/Gbit/, "", v); current_rate = (v+0) * 1000000 } - else if (v ~ /Mbit/) { sub(/Mbit/, "", v); current_rate = (v+0) * 1000 } - else if (v ~ /[Kk]bit/) { sub(/[Kk]bit/, "", v); current_rate = v+0 } - break - } - } - bytes = 0; pkts = 0; backlog = 0; drops = 0; overlimits = 0; requeues = 0 - lended = 0; borrowed = 0 - have_record = 1 -} -/Sent [0-9]+ bytes/ && !skip { - for (i = 1; i <= NF; i++) { - if ($i == "Sent") bytes = $(i+1) - if ($i ~ /^[0-9]+$/ && $(i+1) == "pkt") pkts = $i - } - # parse "(dropped N, overlimits N requeues N)" from same line - for (i = 1; i <= NF; i++) { - if ($i == "(dropped") { v = $(i+1); sub(/,/, "", v); drops = v + 0 } - if ($i == "overlimits") { v = $(i+1); sub(/[^0-9]/, "", v); overlimits = v + 0 } - } - # requeues at end of Sent line - for (i = 1; i <= NF; i++) { - if ($i == "requeues") { - v = $(i+1); sub(/[^0-9]/, "", v) - if (v != "") requeues = v + 0 - } - } -} -/backlog/ && !skip { - for (i = 1; i <= NF; i++) { - if ($i == "backlog") { - v = $(i+1); sub(/b$/, "", v) - backlog = v + 0 - } - } -} -/lended:/ && !skip { - for (i = 1; i <= NF; i++) { - if ($i == "lended:") lended = $(i+1) + 0 - if ($i == "borrowed:") borrowed = $(i+1) + 0 - } -} -END { - if (have_record && current_rate > 0 && current_rate < 1000000 && (classid in ipmap)) { - printf "%s %s %d %d %d %d %d %d %d %d %d\n", \ - classid, ipmap[classid], current_rate, \ - bytes, pkts, backlog, drops, overlimits, requeues, lended, borrowed - } -} -') - -# Parse fq_codel qdisc stats: emit lines "parent_classid ecn_mark new_flows old_flows target_us memory_used" -QDISC_PARSED=$(echo "$QDISC_DATA" | awk ' -/^qdisc fq_codel/ { - # emit previous fq_codel record if any - if (have_qdisc && parent_id != "") { - printf "%s %d %d %d %d %d\n", parent_id, ecn_mark, new_flows, old_flows, target_us, memory_used - } - # extract parent classid - parent_id = "" - target_us = 0 - for (i = 1; i <= NF; i++) { - if ($i == "parent") parent_id = $(i+1) - if ($i == "target") { - v = $(i+1) - if (v ~ /ms$/) { sub(/ms$/, "", v); target_us = (v + 0) * 1000 } - else if (v ~ /us$/) { sub(/us$/, "", v); target_us = v + 0 } - } - } - ecn_mark = 0; new_flows = 0; old_flows = 0; memory_used = 0 - have_qdisc = 1 - next -} -/^qdisc/ && !/fq_codel/ { - # different qdisc type, emit previous if valid - if (have_qdisc && parent_id != "") { - printf "%s %d %d %d %d %d\n", parent_id, ecn_mark, new_flows, old_flows, target_us, memory_used - } - have_qdisc = 0 - parent_id = "" - next -} -have_qdisc && /ecn_mark/ { - for (i = 1; i <= NF; i++) { - if ($i == "ecn_mark") ecn_mark = $(i+1) + 0 - } -} -have_qdisc && /new_flows/ && !/new_flow_count/ { - for (i = 1; i <= NF; i++) { - if ($i == "new_flows") new_flows = $(i+1) + 0 - if ($i == "old_flows") old_flows = $(i+1) + 0 - } -} -have_qdisc && /memory_used/ { - for (i = 1; i <= NF; i++) { - if ($i == "memory_used") memory_used = $(i+1) + 0 - } -} -END { - if (have_qdisc && parent_id != "") { - printf "%s %d %d %d %d %d\n", parent_id, ecn_mark, new_flows, old_flows, target_us, memory_used - } -} -') - -# If no classes found, output empty array -if [ -z "$CLASS_PARSED" ]; then - echo '[]' - exit 0 -fi - -# Write qdisc data to temp file for awk to read -QDISC_TMP=$(mktemp /tmp/tctl_qdisc.XXXXXX) -# shellcheck disable=SC2064 -trap "rm -f '$QDISC_TMP'" EXIT INT TERM -echo "$QDISC_PARSED" > "$QDISC_TMP" - -# Merge class and qdisc data, output JSON -# First file (QDISC_TMP) is loaded into arrays, second input (stdin) is class data -echo "$CLASS_PARSED" | awk ' -NR == FNR { - # Reading qdisc temp file - if (NF >= 6) { - qd_ecn[$1] = $2 + 0 - qd_new[$1] = $3 + 0 - qd_old[$1] = $4 + 0 - qd_target[$1] = $5 + 0 - qd_mem[$1] = $6 + 0 - } - next -} -{ - classid = $1 - ip = $2 - rate = $3 + 0 - bytes = $4 + 0 - pkts = $5 + 0 - backlog = $6 + 0 - drops = $7 + 0 - overlimits = $8 + 0 - requeues = $9 + 0 - lended = $10 + 0 - borrowed = $11 + 0 - - ecn = 0; nf = 0; of = 0; tgt = 0; mem = 0 - if (classid in qd_ecn) ecn = qd_ecn[classid] - if (classid in qd_new) nf = qd_new[classid] - if (classid in qd_old) of = qd_old[classid] - if (classid in qd_target) tgt = qd_target[classid] - if (classid in qd_mem) mem = qd_mem[classid] - - if (first) printf "," - printf "{\"ip\":\"%s\",\"rate_kbit\":%d,\"bytes\":%.0f,\"packets\":%.0f,\"backlog\":%d,\"drops\":%.0f,\"overlimits\":%.0f,\"requeues\":%.0f,\"lended\":%.0f,\"borrowed\":%.0f,\"ecn_mark\":%.0f,\"new_flows\":%d,\"old_flows\":%d,\"target_us\":%d,\"memory_used\":%d}", \ - ip, rate, bytes, pkts, backlog, drops, overlimits, requeues, lended, borrowed, ecn, nf, of, tgt, mem - first = 1 -} -BEGIN { printf "[" } -END { printf "]\n" } -' "$QDISC_TMP" - - -rm -f "$QDISC_TMP" diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-shape.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-shape.sh deleted file mode 100755 index 00f5e522a..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-shape.sh +++ /dev/null @@ -1,395 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Traffic shaping (tc/HTB) for per-device bandwidth control. -# Usage: trafficctl-shape.sh [rate_kbit] [label] - -. /usr/local/bin/trafficctl-fw.sh - -SHAPES_FILE="/etc/trafficctl/shapes.json" -LAN_DEV=$(tctl_get_lan_device) -# Upload is shaped on the WAN device's egress — the only place LAN->WAN -# traffic can be queued. Shaping the LAN device alone (as this did originally) -# only ever touches the download direction. -# Upload is shaped on an IFB device fed from LAN-side ingress, NOT on the WAN -# device: by the time a packet reaches WAN egress, POSTROUTING has already -# masqueraded its source to the router's WAN address, so a per-client -# "match ip src" filter there matches nothing. Redirecting ingress into an IFB -# shapes it while the client's real source address is still intact — which is -# also what makes it work for routed/downstream clients. -IFB_DEV=$(uci -q get trafficctl.main.shape_ifb 2>/dev/null) -[ -z "$IFB_DEV" ] && IFB_DEV="tctl-ifb0" - -ACTION="$1" -IP="$2" -RATE="$3" -# shellcheck disable=SC2034 -LABEL="${4:-shape_$IP}" -# Upload ceiling. Appended as a fifth positional so every existing caller — -# the rpcd backend, the Telegram bot, the DHCP new-device hook and the boot -# restore — keeps working unchanged. Empty means "same as download", which is -# what shaping did before this existed; it is deliberately NOT treated as zero, -# since a zero ceiling is a total upload block that would report success. -RATE_UP="$5" -[ -z "$RATE_UP" ] && RATE_UP="$RATE" - -# A classid minor is 16 bit and two values are already taken — 1:1 is the root -# class and 1:fffe the default one — so a minor cannot be derived from the -# address: 192.168.0.1 would land on the root class (deleting it tears down -# every other device's shape) and any x.x.255.254 on the default one. Addresses -# from different subnets that share their last two octets would also collide, -# and the app supports routed/downstream clients from other subnets. Minors are -# therefore allocated once per address and persisted alongside the rate. -CLASSID_MIN=2 -CLASSID_MAX=65533 - -# Regex-quote a value used in a sed address or grep pattern: an unescaped dot -# matches any character, so 192.168.1.1 would also match 192.168.1x1. -re_quote() { - echo "$1" | sed 's/[].[^$*\/]/\\&/g' -} - -# Records are extracted by pattern, not parsed, so this expression decides what -# counts as a record at all. A record it does not match is not merely misread — -# it disappears from used_minors(), alloc_classid hands its minor to another -# device, and the two then share an HTB class: removing one tears down the -# other. The optional rate_kbit_up group is therefore at the TAIL, and every -# reader below tolerates both the old three-field form and the new one. -shapes_entries() { - grep -oE '\{"ip":"[^"]+","rate_kbit":[0-9]+(,"classid":"1:[0-9a-f]+")?(,"rate_kbit_up":[0-9]+)?\}' \ - "$SHAPES_FILE" 2>/dev/null -} - -# Minor of the classid recorded for this address, empty when not shaped yet. -lookup_classid() { - local ip esc - ip="$1" - esc=$(re_quote "$ip") - shapes_entries \ - | sed -n "s/^{\"ip\":\"$esc\",\"rate_kbit\":[0-9]*,\"classid\":\"\(1:[0-9a-f]*\)\"\(,\"rate_kbit_up\":[0-9]*\)\{0,1\}}$/\1/p" \ - | head -1 -} - -# Upload ceiling recorded for this address. Empty means the record predates -# asymmetric shaping, or was written symmetric — both mean "same as download", -# which is what every shape did before this existed. -lookup_rate_up() { - local ip esc - ip="$1" - esc=$(re_quote "$ip") - shapes_entries \ - | sed -n "s/^{\"ip\":\"$esc\",\"rate_kbit\":[0-9]*,\"classid\":\"1:[0-9a-f]*\",\"rate_kbit_up\":\([0-9]*\)}$/\1/p" \ - | head -1 -} - -used_minors() { - shapes_entries \ - | sed -n 's/.*"classid":"1:\([0-9a-f]*\)".*/\1/p' \ - | while read -r h; do [ -n "$h" ] && printf '%d\n' "$((0x$h))"; done - for dev in "$LAN_DEV" "$IFB_DEV"; do - tc class show dev "$dev" 2>/dev/null \ - | sed -n 's/^class htb 1:\([0-9a-f]*\) .*/\1/p' \ - | while read -r h; do [ -n "$h" ] && printf '%d\n' "$((0x$h))"; done - done -} - -alloc_classid() { - used_minors | sort -n -u | awk -v min="$CLASSID_MIN" -v max="$CLASSID_MAX" ' - BEGIN { free = min } - { if ($1 + 0 == free) free++ } - END { - if (free > max) exit 1 - printf "1:%x\n", free - }' -} - -# Shapes persisted before minors were allocated carry no classid, so their class -# is still the one derived from the address. Only used to clean those up on -# removal, and never for the two reserved minors the derivation could produce. -legacy_classid() { - local ip o3 o4 dec - ip="$1" - o3=$(echo "$ip" | cut -d. -f3) - o4=$(echo "$ip" | cut -d. -f4) - dec=$((o3 * 256 + o4)) - [ "$dec" -lt "$CLASSID_MIN" ] && return 1 - [ "$dec" -gt "$CLASSID_MAX" ] && return 1 - printf "1:%x\n" "$dec" -} - -# Existing shapes keep their minor; a new one gets the lowest free value. -resolve_classid() { - local ip cid - ip="$1" - cid=$(lookup_classid "$ip") - if [ -n "$cid" ]; then - echo "$cid" - return 0 - fi - alloc_classid -} - -# Root qdiscs that OpenWrt or the kernel put there by default carry no -# configuration worth preserving. Anything else (cake from SQM, an HFSC or -# foreign HTB hierarchy) is somebody's QoS setup and must not be torn down -# silently — the caller reports that shaping is unavailable instead. -root_qdisc_replaceable() { - local dev root kind - dev="$1" - root=$(tc qdisc show dev "$dev" 2>/dev/null | grep -m1 ' root ') - [ -n "$root" ] || return 0 - kind=$(echo "$root" | awk '{print $2}') - case "$kind" in - pfifo_fast|fq_codel|fq|noqueue|mq|pfifo|bfifo|sfq|codel|htb) return 0 ;; - *) return 1 ;; - esac -} - -ensure_root_qdisc() { - local dev="${1:-$LAN_DEV}" - # Set up root HTB hierarchy if not present - tc class show dev "$dev" 2>/dev/null | grep -q "class htb 1:1 " && return 0 - root_qdisc_replaceable "$dev" || return 1 - tc qdisc del dev "$dev" root 2>/dev/null - tc qdisc add dev "$dev" root handle 1: htb default fffe r2q 10 - tc class add dev "$dev" parent 1: classid 1:1 htb rate 1000mbit ceil 1000mbit burst 125000b cburst 125000b - tc class add dev "$dev" parent 1:1 classid 1:fffe htb rate 1000mbit ceil 1000mbit burst 125000b cburst 125000b prio 0 - tc qdisc add dev "$dev" parent 1:fffe fq_codel 2>/dev/null -} - -# Bring up the IFB device and mirror LAN-side ingress into it. Needs kmod-ifb -# and act_mirred; returns non-zero when either is missing so callers can report -# download-only shaping instead of pretending upload is limited. -ensure_ifb() { - local dev - if ! ip link show "$IFB_DEV" >/dev/null 2>&1; then - ip link add name "$IFB_DEV" type ifb 2>/dev/null || return 1 - fi - ip link set "$IFB_DEV" up 2>/dev/null || return 1 - ensure_root_qdisc "$IFB_DEV" || return 1 - - for dev in $(tctl_ingress_devices); do - tc qdisc show dev "$dev" ingress 2>/dev/null | grep -q 'qdisc ingress' || \ - tc qdisc add dev "$dev" handle ffff: ingress 2>/dev/null - tc filter show dev "$dev" parent ffff: 2>/dev/null | grep -q mirred || \ - tc filter add dev "$dev" parent ffff: protocol ip prio 1 u32 \ - match u32 0 0 action mirred egress redirect dev "$IFB_DEV" 2>/dev/null - done - # Useless unless at least the IFB root exists. - tc class show dev "$IFB_DEV" 2>/dev/null | grep -q "class htb 1:1 " -} - -# Attach one shaping class on a device, matching the given IP in the given -# direction ("dst" on the LAN side for download, "src" on the WAN side for -# upload). -shape_attach() { - local dev="$1" match="$2" ip="$3" classid="$4" rate="$5" burst="$6" - - tc filter del dev "$dev" parent 1:0 prio 10 protocol ip u32 match ip "$match" "$ip"/32 2>/dev/null - tc qdisc del dev "$dev" parent "$classid" 2>/dev/null - tc class del dev "$dev" classid "$classid" 2>/dev/null - - ensure_root_qdisc "$dev" || return 1 - tc class add dev "$dev" parent 1:1 classid "$classid" htb \ - rate "${rate}kbit" ceil "${rate}kbit" burst "${burst}b" cburst "${burst}b" 2>&1 || return 1 - tc qdisc add dev "$dev" parent "$classid" fq_codel 2>/dev/null - tc filter add dev "$dev" parent 1:0 prio 10 protocol ip u32 \ - match ip "$match" "$ip"/32 flowid "$classid" 2>&1 || return 1 -} - -shape_detach() { - local dev="$1" match="$2" ip="$3" classid="$4" - tc filter del dev "$dev" parent 1:0 prio 10 protocol ip u32 match ip "$match" "$ip"/32 2>/dev/null - tc qdisc del dev "$dev" parent "$classid" 2>/dev/null - tc class del dev "$dev" classid "$classid" 2>/dev/null -} - -save_shape() { - local ip="$1" rate="$2" classid="$3" rate_up="$4" - mkdir -p "$(dirname "$SHAPES_FILE")" - [ ! -f "$SHAPES_FILE" ] && echo "[]" > "$SHAPES_FILE" - - local lockd="/tmp/trafficctl_shapes.lock.d" - local tmpf="/tmp/shapes_rebuild.$$" - - # mkdir is atomic, so unlike a test-then-create lock file two writers cannot - # both believe they hold it and lose one another's entry. - local tries=0 - while ! mkdir "$lockd" 2>/dev/null; do - tries=$((tries + 1)) - if [ "$tries" -ge 50 ]; then - # A stale directory from a killed writer must not block shaping forever. - rmdir "$lockd" 2>/dev/null || true - mkdir "$lockd" 2>/dev/null || break - break - fi - sleep 0.1 2>/dev/null || sleep 1 - done - # shellcheck disable=SC2064 - trap "rm -f '$tmpf'; rmdir '$lockd' 2>/dev/null" EXIT - - # Portable: extract entries with grep, filter, rebuild JSON - local old_entries esc - old_entries=$(shapes_entries || true) - esc=$(re_quote "$ip") - local filtered - filtered=$(echo "$old_entries" | grep -v "^{\"ip\":\"$esc\"," || true) - if [ "$rate" -gt 0 ] 2>/dev/null; then - # rate_kbit_up is written only when the two directions differ, so a - # symmetric shape still produces exactly the record it always did. - # Downgrading the package then keeps working for the common case. - local up_field="" - [ -n "$rate_up" ] && [ "$rate_up" != "$rate" ] && up_field=",\"rate_kbit_up\":$rate_up" - local entry="{\"ip\":\"$ip\",\"rate_kbit\":$rate,\"classid\":\"$classid\"$up_field}" - if [ -n "$filtered" ]; then - filtered=$(printf "%s\n%s" "$filtered" "$entry") - else - filtered="$entry" - fi - fi - printf "[" > "$tmpf" - echo "$filtered" | awk 'NF{if(n++)printf ",";printf "%s",$0}' >> "$tmpf" - printf "]" >> "$tmpf" - - mv "$tmpf" "$SHAPES_FILE" - rmdir "$lockd" 2>/dev/null || true -} - -remove_shape() { - local ip="$1" - save_shape "$ip" "0" "" -} - -do_add() { - local classid - classid=$(resolve_classid "$IP") - if [ -z "$classid" ]; then - echo '{"ok":false,"msg":"no free shaping class available"}' - return 1 - fi - - # Calculate burst: 10ms of data, minimum 1600 bytes - local burst_bytes - burst_bytes=$(( RATE * 125 / 100 )) - [ "$burst_bytes" -lt 1600 ] && burst_bytes=1600 - - # Download: queue on the LAN device, matching traffic destined to the client. - if ! shape_attach "$LAN_DEV" dst "$IP" "$classid" "$RATE" "$burst_bytes"; then - # Naming the cause matters here: declining to replace a foreign root - # qdisc is deliberate (it is how an SQM/cake setup survives this app), - # but "tc setup failed" reads as a bug and gives no way to act on it. - # The rate limiter is a policer, owns no qdisc, and works alongside SQM. - if ! root_qdisc_replaceable "$LAN_DEV"; then - echo "{\"ok\":false,\"msg\":\"shaping declined on $LAN_DEV: another QoS setup (SQM/cake or a custom HTB tree) owns the root qdisc and will not be torn down. Use the limiter instead — it is a policer and coexists with SQM.\"}" - else - echo "{\"ok\":false,\"msg\":\"tc setup failed for $IP on $LAN_DEV\"}" - fi - return 1 - fi - - # Upload: shaped pre-NAT on the IFB device fed from LAN ingress. - # Reported separately so a missing kmod-ifb doesn't look like total failure. - # The two directions are already separate HTB classes on separate devices, - # so giving them separate rates costs nothing beyond its own burst. - local ul_burst - ul_burst=$(( RATE_UP * 125 / 100 )) - [ "$ul_burst" -lt 1600 ] && ul_burst=1600 - local ul_ok=1 - if ensure_ifb; then - shape_attach "$IFB_DEV" src "$IP" "$classid" "$RATE_UP" "$ul_burst" || ul_ok=0 - else - ul_ok=0 - fi - - save_shape "$IP" "$RATE" "$classid" "$RATE_UP" - local rates="${RATE} kbit/s" - [ "$RATE_UP" != "$RATE" ] && rates="${RATE} kbit/s down, ${RATE_UP} kbit/s up" - # Linux HTB never gets to queue a flow the NSS firmware is forwarding, so - # a shape on such a router is installed and inert (#81). NSS builds ship - # their own qdiscs (nsshtb/nsstbl) which this does not yet use; until it - # does, say so instead of reporting success. - tctl_nss_defunct - NSSNOTE="$(tctl_nss_note)" - NSS="$(tctl_nss_status)" - if [ "$ul_ok" = "1" ]; then - echo "{\"ok\":true,\"nss\":\"$NSS\",\"msg\":\"shape $rates applied to $IP both directions (class $classid)$NSSNOTE\"}" - elif [ "$RATE_UP" != "$RATE" ]; then - # Saying "applied" here would be a lie about the half the operator - # explicitly asked to differ. - echo "{\"ok\":true,\"nss\":\"$NSS\",\"msg\":\"shape ${RATE} kbit/s applied to $IP for download only — the ${RATE_UP} kbit/s upload ceiling was NOT applied, it needs kmod-ifb: opkg/apk install kmod-ifb kmod-sched$NSSNOTE\"}" - else - echo "{\"ok\":true,\"nss\":\"$NSS\",\"msg\":\"shape ${RATE} kbit/s applied to $IP (download only — upload needs kmod-ifb: opkg/apk install kmod-ifb kmod-sched)$NSSNOTE\"}" - fi -} - -do_remove() { - local classid - classid=$(lookup_classid "$IP") - [ -n "$classid" ] || classid=$(legacy_classid "$IP") - - if [ -n "$classid" ]; then - shape_detach "$LAN_DEV" dst "$IP" "$classid" - shape_detach "$IFB_DEV" src "$IP" "$classid" - fi - - remove_shape "$IP" - echo "{\"ok\":true,\"msg\":\"shape removed for $IP\"}" -} - -do_status() { - local classid - classid=$(lookup_classid "$IP") - if [ -z "$classid" ]; then - echo "{\"ok\":true,\"ip\":\"$IP\",\"classid\":\"\",\"info\":\"no shape active\"}" - return 0 - fi - local info - info=$(tc -s class show dev "$LAN_DEV" classid "$classid" 2>/dev/null) - if [ -n "$info" ]; then - local rate_val - rate_val=$(echo "$info" | grep -oE 'rate [0-9]+[a-zA-Z]+' | head -1 | awk '{print $2}') - echo "{\"ok\":true,\"ip\":\"$IP\",\"classid\":\"$classid\",\"info\":\"$rate_val\"}" - else - echo "{\"ok\":true,\"ip\":\"$IP\",\"classid\":\"$classid\",\"info\":\"no shape active\"}" - fi -} - -# Main -case "$ACTION" in - add) - if [ -z "$IP" ] || [ -z "$RATE" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-shape.sh add [label]"}' - exit 1 - fi - if ! tctl_validate_ip "$IP"; then - echo '{"ok":false,"msg":"invalid IP address"}' - exit 1 - fi - do_add - ;; - remove) - if [ -z "$IP" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-shape.sh remove "}' - exit 1 - fi - if ! tctl_validate_ip "$IP"; then - echo '{"ok":false,"msg":"invalid IP address"}' - exit 1 - fi - do_remove - ;; - status) - if [ -z "$IP" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-shape.sh status "}' - exit 1 - fi - if ! tctl_validate_ip "$IP"; then - echo '{"ok":false,"msg":"invalid IP address"}' - exit 1 - fi - do_status - ;; - *) - echo '{"ok":false,"msg":"usage: trafficctl-shape.sh [rate_kbit] [label]"}' - exit 1 - ;; -esac diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-subnets.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-subnets.sh deleted file mode 100755 index 4243dbee9..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-subnets.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# List the subnets this router monitors, as CIDRs the dashboard can offer as -# rate-limit targets. -# -# Output: JSON array -# [{"cidr":"192.168.20.0/24","device":"br-guest","kind":"lan"}, -# {"cidr":"10.0.5.0/24","device":"br-lan","kind":"routed"}] -# -# kind is "lan" for a directly connected subnet and "routed" for one reached -# via a next-hop on a LAN device (or listed in trafficctl.main.extra_subnets). -# -# This list is exactly the set a limit can be ENFORCED on: the netdev hooks -# that police traffic are attached to the devices these subnets resolve to, so -# a subnet missing from here (a masquerading non-lan zone, for instance) would -# take a rule that never matches a packet. The dashboard warns off such a -# target instead of pretending it applied. - -. /usr/local/bin/trafficctl-fw.sh - -tctl_monitored_subnets | awk ' -# Octets are derived with arithmetic and printed individually: each is below -# 256, while the packed address is up to 2^32-1 and busybox awk formats "%d" -# through a 32-bit int. -function ip2s(v, o1, o2, o3, o4, rem) { - o1 = int(v / 16777216); rem = v - o1 * 16777216 - o2 = int(rem / 65536); rem = rem - o2 * 65536 - o3 = int(rem / 256) - o4 = rem - o3 * 256 - return sprintf("%d.%d.%d.%d", o1, o2, o3, o4) -} -{ - base = $2 + 0 - block = $3 + 0 - if (block < 1) next - # block is a power of two (1 << (32 - mask)); count it back down rather - # than calling log(), which awk only has in floating point. - mask = 32 - b = block - while (b > 1) { b = b / 2; mask-- } - # router_int is 0 for a subnet that has no local address inside it, which - # is what tells a routed subnet from a connected one. - # Written long-hand: the bashism linter reads the whole file, and - # `name = (...)` at the start of a line looks like a shell array to it. - kind = "lan" - if ($4 + 0 == 0) { kind = "routed" } - if (n++) printf "," - else printf "[" - printf "{\"cidr\":\"%s/%d\",\"device\":\"%s\",\"kind\":\"%s\"}", ip2s(base), mask, $1, kind -} -END { if (!n) printf "["; printf "]\n" } -' diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-summary.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-summary.sh deleted file mode 100755 index efaa25814..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-summary.sh +++ /dev/null @@ -1,475 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Summary of all active LAN devices with traffic control status. -# Output: JSON array with per-device info. -# -# Performance: all firewall/tc/conntrack state is fetched ONCE up front and -# reused per device, instead of re-dumping nft chains / re-reading conntrack -# inside the per-IP loop. On a router with many devices this turns O(N) heavy -# forks (one full conntrack read + two nft chain dumps + a tc call PER device) -# into a constant handful of calls. - -. /usr/local/bin/trafficctl-fw.sh - -CONN_CACHE="/tmp/trafficctl_conn_cache" -[ -f "$CONN_CACHE" ] || : > "$CONN_CACHE" - -PORT_MAP_FILE="/tmp/.trafficctl_portmap.$$" -# shellcheck disable=SC2064 -trap "rm -f '$PORT_MAP_FILE'" EXIT INT TERM - -# Enumerate every LAN subnet (multi-bridge / multi-VLAN aware), once. -LAN_SUBNETS=$(tctl_lan_subnets) -[ -z "$LAN_SUBNETS" ] && { echo '[]'; exit 0; } -LAN_DEVS=$(echo "$LAN_SUBNETS" | awk '{print $1}' | sort -u) -# Monitored = connected LANs + subnets routed via LAN next-hops (downstream -# routers) + trafficctl.main.extra_subnets. Membership spec for awk: -# "netbase:block:routerint ..." — routerint 0 marks a routed (not directly -# connected) subnet, no awk bit-ops needed. -ALL_SUBNETS=$(tctl_monitored_subnets) -MATCH_SPEC=$(echo "$ALL_SUBNETS" | awk '{printf "%s%s:%s:%s",(NR>1?" ":""),$2,$3,$4}') -# Device that carries the tc/HTB shaper (shaping is single-bridge by design). -PRIMARY_LAN_DEV=$(tctl_get_lan_device) - -# Get WiFi station→interface mapping: "mac iface_name band" -get_wifi_stations() { - iw dev 2>/dev/null | awk '/Interface/{print $2}' | while read -r iface; do - local band="" - local ch - ch=$(iw dev "$iface" info 2>/dev/null | awk '/channel/{print $2}') - if [ -n "$ch" ]; then - if [ "$ch" -le 14 ] 2>/dev/null; then - band="2.4G" - elif [ "$ch" -le 177 ] 2>/dev/null; then - band="5G" - else - band="6G" - fi - fi - iw dev "$iface" station dump 2>/dev/null | awk -v iface="$iface" -v band="$band" \ - '/Station/{print tolower($2), iface, band}' - done -} - -# Get bridge MAC→port interface mapping across all LAN bridges: "mac port_iface" -get_bridge_macs() { - local dev - for dev in $LAN_DEVS; do - [ -d "/sys/class/net/$dev/brif" ] || continue - for pdir in /sys/class/net/"$dev"/brif/*/; do - [ -d "$pdir" ] || continue - local iface pno - iface=$(basename "$pdir") - pno=$(cat "${pdir}port_no" 2>/dev/null) - [ -z "$pno" ] && continue - printf "%d %s\n" "$(( pno ))" "$iface" - done > "$PORT_MAP_FILE" - brctl showmacs "$dev" 2>/dev/null | awk -v pmf="$PORT_MAP_FILE" ' - BEGIN { while ((getline line < pmf) > 0) { split(line, p, " "); portname[p[1]] = p[2] } } - NR > 1 && $3 == "no" { - mac = tolower($2) - port = $1 + 0 - if (port in portname) print mac, portname[port] - }' - done - rm -f "$PORT_MAP_FILE" -} - -# All IPv4 addresses owned by the router itself (any interface) — excluded -# from the NAT-based device detection below so the router never shows up. -LOCAL_IPS=$(ip -4 addr show 2>/dev/null | awk '/inet /{split($2,a,"/");print a[1]}' | tr '\n' ' ') - -# ── Single conntrack pass ────────────────────────────────────────────────── -# Emit "ip total tcp udp conns kind" for every active source in one read. -# A source qualifies when it belongs to a monitored subnet (kind l=LAN, -# r=routed), or — regardless of subnet — when the flow was SNAT/masqueraded -# by this router (reply dst != original src), which catches every forwarded -# client behind downstream routers without any configuration (kind r). -CT_SUMMARY=$(awk -v spec="$MATCH_SPEC" -v localips="$LOCAL_IPS" ' -function ip2int(ip, a) { - split(ip, a, ".") - return a[1]*16777216 + a[2]*65536 + a[3]*256 + a[4] -} -# Return the index of the LAN subnet that contains ip, or 0. -function lan_idx(ip, si, k) { - si = ip2int(ip) - for (k = 1; k <= ns; k++) - if (si - (si % blk[k]) == base[k]) return k - return 0 -} -BEGIN { - ns = split(spec, parts, " ") - for (k = 1; k <= ns; k++) { - split(parts[k], kv, ":") - base[k] = kv[1] + 0; blk[k] = kv[2] + 0; rtr[k] = kv[3] + 0 - } - nl = split(localips, lp, " ") - for (k = 1; k <= nl; k++) if (lp[k] != "") islocal[lp[k]] = 1 -} -{ - proto="" - for (i=1; i<=NF; i++) { - if ($i == "tcp") proto="tcp" - else if ($i == "udp") proto="udp" - } - # first src= field that belongs to one of our monitored subnets - srcidx=0; src=""; sk=0 - for (i=1; i<=NF; i++) { - if (index($i, "src=") == 1) { - v=substr($i, 5) - k=lan_idx(v) - if (k > 0) { src=v; srcidx=i; sk=k; break } - } - } - if (src != "") { - si=ip2int(src) - # skip the router itself, the network address and the broadcast address - # (routed /31 and /32 entries have no network/broadcast hosts to skip) - if (rtr[sk] && si == rtr[sk]) next - if (blk[sk] > 2 && (si == base[sk] || si == base[sk] + blk[sk] - 1)) next - if (rtr[sk]) knd = "l"; else knd = "r" - } else { - # No subnet matched. NAT fallback: if the reply-direction dst differs - # from the original src, this router SNAT/masqueraded the flow, so the - # original src is an internal client (e.g. behind a downstream router - # on a subnet we have no route entry for). - osrc=""; oidx=0; nsrc=0; rdst="" - for (i=1; i<=NF; i++) { - if (index($i, "src=") == 1) { - nsrc++ - if (nsrc == 1) { osrc=substr($i, 5); oidx=i } - } else if (nsrc == 2 && rdst == "" && index($i, "dst=") == 1) { - rdst=substr($i, 5) - } - } - if (osrc == "" || rdst == "" || rdst == osrc) next - if (osrc !~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/) next - if (osrc in islocal) next - src=osrc; srcidx=oidx; knd="r" - } - seen=0; got_dst=0; found=0; b=0 - for (i=srcidx; i<=NF; i++) { - if (i == srcidx) { seen=1; continue } - if (seen && !got_dst && index($i, "dst=") == 1) { - dst=substr($i, 5) - if (dst != src) { got_dst=1 } else next - } - if (seen && got_dst && index($i, "bytes=") == 1) { - b=substr($i, 7) + 0; found=1; break - } - } - if (got_dst) { - conns[src]++ - kind[src] = knd - if (found) { - total[src]+=b - if (proto == "tcp") tcp[src]+=b - else if (proto == "udp") udp[src]+=b - } - } -} -END { - for (ip in conns) - printf "%s %.0f %.0f %.0f %d %s\n", ip, total[ip]+0, tcp[ip]+0, udp[ip]+0, conns[ip], kind[ip] -}' /proc/net/nf_conntrack 2>/dev/null) - -ACTIVE_IPS=$(echo "$CT_SUMMARY" | awk 'NF{print $1}' | sort -t. -k1,1n -k2,2n -k3,3n -k4,4n) -[ -z "$ACTIVE_IPS" ] && { echo '[]'; exit 0; } - -# ── Prefetch all shared state once ───────────────────────────────────────── -NOW=$(date +%s) -LEASES=$(cat /tmp/dhcp.leases 2>/dev/null) -NEIGH=$(ip neigh show 2>/dev/null) - -# Manual aliases (highest precedence) and the reverse-DNS name cache. Devices -# behind a downstream router have no lease here, so these two are the only way -# they get a name instead of "*". -ALIASES=$(cat /etc/trafficctl/names 2>/dev/null) -RDNS_CACHE_FILE="/tmp/trafficctl_rdns_cache" -RDNS_CACHE=$(cat "$RDNS_CACHE_FILE" 2>/dev/null) -RDNS_ENABLED=$(uci -q get trafficctl.main.resolve_names 2>/dev/null) -RDNS_TTL=$(uci -q get trafficctl.main.rdns_ttl 2>/dev/null) -[ "$RDNS_TTL" -gt 0 ] 2>/dev/null || RDNS_TTL=300 -# IPs needing a (re)lookup, filled in during the emit loop and handed to the -# detached refresher at the end so this poll never blocks on DNS. -RDNS_PENDING="" - -# Optional netifyd (DPI) application labels. Absent unless the agent is -# installed and running — the column simply stays empty otherwise. -NETIFY_CACHE_FILE="/tmp/trafficctl_netify.json" -NETIFY_APPS="" -if [ "$(uci -q get trafficctl.main.netify_enabled 2>/dev/null)" != "0" ] && [ -S "$(uci -q get trafficctl.main.netify_socket 2>/dev/null || echo /var/run/netifyd/netifyd.sock)" ]; then - # Flatten "ip top-app" pairs once so the per-device lookup stays a - # string match instead of a JSON parse per row. - NETIFY_APPS=$(sed 's/},{/}\n{/g' "$NETIFY_CACHE_FILE" 2>/dev/null | \ - sed -n 's/.*"ip":"\([^"]*\)","top":"\([^"]*\)".*/\1 \2/p') - NETIFY_AGE=$(( NOW - $(date -r "$NETIFY_CACHE_FILE" +%s 2>/dev/null || echo 0) )) - NETIFY_INTERVAL=$(uci -q get trafficctl.main.netify_interval 2>/dev/null) - [ "$NETIFY_INTERVAL" -gt 0 ] 2>/dev/null || NETIFY_INTERVAL=45 - if [ "$NETIFY_AGE" -ge "$NETIFY_INTERVAL" ]; then - /usr/local/bin/trafficctl-netify.sh collect >/dev/null 2>&1 & - fi -fi - -# Firewall dumps (IP-independent — fetched once, grepped per device below) -if [ "$TCTL_FW" = "nft" ]; then - FWD_DUMP=$(nft list chain inet fw4 forward 2>/dev/null) - RL_DUMP=$(nft list table netdev tm_ratelimit 2>/dev/null) -else - FWD_DUMP=$(iptables -L FORWARD -nvx 2>/dev/null) - RL_DUMP=$(iptables -t mangle -L FORWARD -nv 2>/dev/null) -fi - -# tc HTB classes → "classid rate_kbit" maps (one tc call per device, parsed -# once): download on the LAN device, upload on the IFB. -TC_MAP=$(tctl_tc_class_rates "$PRIMARY_LAN_DEV") -TC_MAP_UP=$(tctl_tc_class_rates "$(tctl_shape_ifb_dev)") - -# address → classid, from shapes.json (see tctl_shape_classmap). -SHAPE_MAP=$(tctl_shape_classmap) - -# Wifi ACL state, split by policy, because "listed" means opposite things in the -# two modes: on a deny (blacklist) radio a listed MAC is blocked, on an allow -# (whitelist) radio a listed MAC is the only kind permitted. Collected once here -# and matched fork-free per device below. -WIFI_DENY_MACS="" -WIFI_ALLOW_MACS="" -WIFI_HAS_ALLOW=0 -for _wif in $(tctl_get_wifi_interfaces); do - _wlist=$(uci -q get "wireless.${_wif}.maclist" 2>/dev/null) - if [ "$(tctl_get_wifi_filter_mode "$_wif")" = "allow" ]; then - WIFI_HAS_ALLOW=1 - WIFI_ALLOW_MACS="$WIFI_ALLOW_MACS $_wlist" - else - WIFI_DENY_MACS="$WIFI_DENY_MACS $_wlist" - fi -done -WIFI_DENY_MACS=" $(echo "$WIFI_DENY_MACS" | tr 'A-F' 'a-f') " -WIFI_ALLOW_MACS=" $(echo "$WIFI_ALLOW_MACS" | tr 'A-F' 'a-f') " - -WIFI_STATIONS=$(get_wifi_stations) -BRIDGE_MACS=$(get_bridge_macs) - -# ── Per-device helpers (operate on prefetched blobs, no new forks of nft/tc) ─ -# Name precedence: manual alias > DHCP lease > cached reverse DNS. -lookup_name() { - local ip="$1" name - name=$(echo "$ALIASES" | awk -v ip="$ip" '$1 == ip {sub(/^[^ ]+ +/, ""); print; exit}') - [ -n "$name" ] && { echo "$name"; return; } - name=$(echo "$LEASES" | awk -v ip="$ip" '$3 == ip && $4 != "*" {print $4; exit}') - [ -n "$name" ] && { echo "$name"; return; } - [ "$RDNS_ENABLED" = "0" ] && return - echo "$RDNS_CACHE" | awk -v ip="$ip" '$1 == ip && $2 != "-" {print $2; exit}' -} - -lookup_app() { - [ -z "$NETIFY_APPS" ] && return - echo "$NETIFY_APPS" | awk -v ip="$1" '$1 == ip {print $2; exit}' -} - -# True when the cache holds no fresh entry for this IP (hit or negative), so -# the caller should queue a background lookup. -rdns_stale() { - local ip="$1" ts - [ "$RDNS_ENABLED" = "0" ] && return 1 - ts=$(echo "$RDNS_CACHE" | awk -v ip="$ip" '$1 == ip {print $3; exit}') - [ -z "$ts" ] && return 0 - [ $(( NOW - ts )) -ge "$RDNS_TTL" ] -} - -lookup_mac() { - local ip="$1" mac - mac=$(echo "$LEASES" | awk -v ip="$ip" '$3 == ip {print $2; exit}') - [ -z "$mac" ] && mac=$(echo "$NEIGH" | awk -v ip="$ip" '$1 == ip {for(i=1;i<=NF;i++)if($i=="lladdr"){print $(i+1);exit}}') - echo "$mac" | tr 'A-F' 'a-f' -} - -# Addresses are matched as whole fields throughout: an unanchored match reports -# 192.168.1.10's block as belonging to 192.168.1.1. -lookup_blocked() { - local ip="$1" - if [ "$TCTL_FW" = "nft" ]; then - echo "$FWD_DUMP" | grep -q "ip saddr $ip .*drop" && { echo 1; return; } - # The IPv6 half of a block matches a MAC and carries no address, so it - # is found by its own full comment. Without this the table reports "not - # blocked" for a device whose v6 rule is the only one left standing. - echo "$FWD_DUMP" | grep -qF "comment \"$(tctl_block_comment "$ip")_mac\"" \ - && echo 1 || echo 0 - else - echo "$FWD_DUMP" | awk -v ip="$ip" ' - $3 == "DROP" { - for (i = 4; i <= NF; i++) { - src = $i - sub(/\/32$/, "", src) - if (src == ip) { found = 1; exit } - } - } - END { print (found ? 1 : 0) }' - fi -} - -lookup_block_bytes() { - local ip="$1" b - if [ "$TCTL_FW" = "nft" ]; then - # Both halves of the block, summed: the v4 rule keyed on the address - # and the v6 rule keyed on the MAC. Counting only the first would make - # a dual-stack device's dropped bytes read low for the same reason the - # traffic used to escape entirely. - b=$(echo "$FWD_DUMP" | grep -e "ip saddr $ip " \ - -e "comment \"$(tctl_block_comment "$ip")_mac\"" \ - | grep -oE 'bytes [0-9]+' | awk '{ t += $2 } END { printf "%.0f", t }') - else - b=$(echo "$FWD_DUMP" | awk -v ip="$ip" ' - $3 == "DROP" { - for (i = 4; i <= NF; i++) { - src = $i - sub(/\/32$/, "", src) - if (src == ip) { print $2; exit } - } - }' | head -1) - fi - echo "${b:-0}" -} - -# $2 "up" reads the upload ceiling instead of the download one. -lookup_rate_limit() { - local ip="$1" r fld=daddr pat='rl_ratelimit' - [ "$2" = "up" ] && { fld=saddr; pat='rl_ratelimit.*_ul'; } - if [ "$TCTL_FW" = "nft" ]; then - r=$(echo "$RL_DUMP" | tctl_rl_rate_kbit "$ip" "$fld") - else - # The address as a whole field, not a substring (see tctl_rl_rate_kbit). - # The download rule is listed first, so it is the first match either - # way; the upload one is the only "_ul" name. - r=$(echo "$RL_DUMP" | grep -E "$pat" \ - | awk -v ip="$ip" '{ for (i = 1; i <= NF; i++) if ($i == ip || $i == ip "/32") { print; next } }' \ - | awk "$TCTL_NFT_RATE_AWK"'{ r = tctl_ipt_first_rate(); if (r >= 0) { print r; exit } }') - fi - echo "${r:-0}" -} - -# The classid is looked up, never derived from the address: minors are -# allocated, so deriving put the first shaped device's rate on 192.168.x.2 and -# showed 0 for the device actually shaped — and the Telegram bot built its -# "Shape — Remove" button from this field. -# -# $2 "up" reads the upload class on the IFB. 0 there with a download shape set -# means upload is not shaped at all (no kmod-ifb), not that it matches. -lookup_shape_kbit() { - local ip="$1" classid r map="$TC_MAP" - [ "$2" = "up" ] && map="$TC_MAP_UP" - classid=$(echo "$SHAPE_MAP" | awk -v ip="$ip" '$1==ip{print $2; exit}') - [ -n "$classid" ] || { echo 0; return; } - r=$(echo "$map" | awk -v c="$classid" '$1==c{print $2; exit}') - echo "${r:-0}" -} - -lookup_wifi_blocked() { - local mac="$1" - [ -z "$mac" ] && { echo 0; return; } - # Listed on a deny radio -> blocked there. - case "$WIFI_DENY_MACS" in *" $mac "*) echo 1; return ;; esac - # Absent from a whitelist radio -> cannot associate there, so also blocked. - if [ "$WIFI_HAS_ALLOW" = "1" ]; then - case "$WIFI_ALLOW_MACS" in - *" $mac "*) ;; - *) echo 1; return ;; - esac - fi - echo 0 -} - -# ── Emit JSON ────────────────────────────────────────────────────────────── -printf "[" -FIRST=1 -for ip in $ACTIVE_IPS; do - # shellcheck disable=SC2046 # deliberate split into 5 positional fields - set -- $(echo "$CT_SUMMARY" | awk -v ip="$ip" '$1==ip{print $2,$3,$4,$5,$6; exit}') - TOTAL="${1:-0}"; TCP="${2:-0}"; UDP="${3:-0}"; CONNS="${4:-0}"; KIND="${5:-l}" - - NAME=$(lookup_name "$ip") - MAC=$(lookup_mac "$ip") - BLOCKED=$(lookup_blocked "$ip") - BLOCK_BYTES=$(lookup_block_bytes "$ip") - WIFI_BLK=$(lookup_wifi_blocked "$MAC") - RATE_LIM=$(lookup_rate_limit "$ip") - RATE_LIM_UP=$(lookup_rate_limit "$ip" up) - SHAPE=$(lookup_shape_kbit "$ip") - SHAPE_UP=$(lookup_shape_kbit "$ip" up) - APP=$(lookup_app "$ip") - if [ -z "$NAME" ]; then - NAME="*" - rdns_stale "$ip" && RDNS_PENDING="$RDNS_PENDING $ip" - fi - # A DHCP hostname is client-controlled: a quote or backslash in it would - # break this JSON document for every consumer (the LuCI table, the bot, - # the exporter). Keep only characters that are safe unquoted. - NAME=$(printf '%s' "$NAME" | tr -d '"\\' | tr -d '\n\r\t') - - CONN_TYPE="" - CONN_LAST="" - if [ "$KIND" = "r" ]; then - # Behind a downstream router — no local MAC / bridge port / ARP entry. - CONN_TYPE="routed" - else - if [ -n "$MAC" ]; then - _wl=$(echo "$WIFI_STATIONS" | grep -i "$MAC") - if [ -n "$_wl" ]; then - _band=$(echo "$_wl" | awk '{print $3}') - CONN_TYPE="${_band:-wifi}" - else - _bl=$(echo "$BRIDGE_MACS" | grep -i "$MAC") - if [ -n "$_bl" ]; then - _piface=$(echo "$_bl" | awk '{print $2}') - case "$_piface" in - phy*|wlan*) CONN_TYPE="wifi" ;; - *) CONN_TYPE="$_piface" ;; - esac - fi - fi - fi - if [ -n "$CONN_TYPE" ]; then - sed -i "/^$ip /d" "$CONN_CACHE" 2>/dev/null - echo "$ip $CONN_TYPE $NOW" >> "$CONN_CACHE" - else - _arp_state=$(echo "$NEIGH" | awk -v ip="$ip" '$1==ip{print $NF; exit}') - case "$_arp_state" in - REACHABLE|STALE|DELAY|PROBE) CONN_TYPE="ethernet" ;; - *) - CONN_TYPE="?" - _cached=$(grep "^$ip " "$CONN_CACHE" 2>/dev/null | tail -1) - if [ -n "$_cached" ]; then - CONN_LAST=$(echo "$_cached" | awk '{print $2 "@" $3}') - fi - ;; - esac - fi - fi - - # Needs CONN_TYPE, so it is decided here rather than next to WIFI_BLK. - WIFI_PENDING=0 - tctl_wifi_block_pending "$WIFI_BLK" "$CONN_TYPE" && WIFI_PENDING=1 - - if [ "$FIRST" = "1" ]; then - FIRST=0 - else - printf "," - fi - printf '{"ip":"%s","name":"%s","mac":"%s","conn_type":"%s","conn_last":"%s","app":"%s","conns":%d,"total":%.0f,"tcp":%.0f,"udp":%.0f,"blocked":%s,"block_bytes":%.0f,"wifi_blocked":%s,"wifi_block_pending":%s,"rate_limit_kbit":%.0f,"rate_limit_kbit_up":%.0f,"shape_kbit":%.0f,"shape_kbit_up":%.0f}' \ - "$ip" "$NAME" "$MAC" "$CONN_TYPE" "$CONN_LAST" "$APP" "$CONNS" "$TOTAL" "$TCP" "$UDP" \ - "$([ "$BLOCKED" = "1" ] && echo true || echo false)" \ - "$BLOCK_BYTES" \ - "$([ "$WIFI_BLK" = "1" ] && echo true || echo false)" \ - "$([ "$WIFI_PENDING" = "1" ] && echo true || echo false)" \ - "$RATE_LIM" "$RATE_LIM_UP" "$SHAPE" "$SHAPE_UP" -done -printf "]\n" - -# Kick off name resolution for whatever is still unnamed. Detached and capped: -# the results land in the cache and show up on the next poll. -if [ -n "$RDNS_PENDING" ]; then - # shellcheck disable=SC2086 # deliberate word-splitting into arguments - set -- $RDNS_PENDING - [ $# -gt 8 ] && shift $(( $# - 8 )) - /usr/local/bin/trafficctl-rdns-refresh.sh "$@" >/dev/null 2>&1 & -fi diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-telegram-test.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-telegram-test.sh deleted file mode 100755 index 0ad61af7a..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-telegram-test.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Test Telegram bot connection by sending a test message. -# Usage: trafficctl-telegram-test.sh [message] -# TCTL_TG_TOKEN= trafficctl-telegram-test.sh - [message] -# -# Prefer the environment form: an argument is visible in ps to every local user. - -CHAT_ID="$2" -CUSTOM_MSG="$3" -if [ -n "$TCTL_TG_TOKEN" ]; then - TOKEN="$TCTL_TG_TOKEN" -else - TOKEN="$1" -fi - -if [ -z "$TOKEN" ] || [ -z "$CHAT_ID" ]; then - echo '{"ok":false,"msg":"token and chat_id required"}' - exit 0 -fi - -echo "$CHAT_ID" | grep -qE '^-?[0-9]+$' || { - echo '{"ok":false,"msg":"chat_id must be numeric"}' - exit 0 -} - -echo "$TOKEN" | grep -qE '^[0-9]+:[A-Za-z0-9_-]+$' || { - echo '{"ok":false,"msg":"invalid token format"}' - exit 0 -} - -_fill_template() { - ROUTER=$(uci -q get system.@system[0].hostname 2>/dev/null || echo "OpenWrt") - DATE_NOW=$(date '+%Y-%m-%d') - TIME_NOW=$(date '+%H:%M') - _SEC=$(cut -d. -f1 /proc/uptime 2>/dev/null || echo "0") - UPTIME_STR="$((_SEC / 86400))d $(((_SEC % 86400) / 3600))h" - LOAD=$(cut -d' ' -f1 /proc/loadavg 2>/dev/null || echo "0.00") - WAN_IP=$(ubus call network.interface.wan status 2>/dev/null | jsonfilter -e '@.ipv4-address[0].address' 2>/dev/null) - [ -z "$WAN_IP" ] && WAN_IP=$(ip route get 1.1.1.1 2>/dev/null | grep -o 'src [0-9.]*' | cut -d' ' -f2) - [ -z "$WAN_IP" ] && WAN_IP="unknown" - SSID=$(uci -q get wireless.@wifi-iface[0].ssid 2>/dev/null || echo "WiFi") - - sed \ - -e "s|{{ *name *}}|TestDevice|g" \ - -e "s|{{ *ip *}}|192.168.0.100|g" \ - -e "s|{{ *mac *}}|aa:bb:cc:dd:ee:ff|g" \ - -e "s|{{ *link *}}|5G|g" \ - -e "s|{{ *router *}}|$ROUTER|g" \ - -e "s|{{ *date *}}|$DATE_NOW|g" \ - -e "s|{{ *time *}}|$TIME_NOW|g" \ - -e "s|{{ *datetime *}}|$DATE_NOW $TIME_NOW|g" \ - -e "s|{{ *ssid *}}|$SSID|g" \ - -e "s|{{ *signal *}}|-52|g" \ - -e "s|{{ *freq *}}|5GHz|g" \ - -e "s|{{ *iface *}}|wlan1|g" \ - -e "s|{{ *clients *}}|12|g" \ - -e "s|{{ *uptime *}}|$UPTIME_STR|g" \ - -e "s|{{ *wan_ip *}}|$WAN_IP|g" \ - -e "s|{{ *load *}}|$LOAD|g" \ - -e "s|{{ *conns *}}|5|g" -} - -_json_encode() { - # Escape backslashes, quotes, then fold real newlines back to \n for JSON - printf '%s' "$1" \ - | sed 's/\\/\\\\/g; s/"/\\"/g' \ - | awk 'NR==1{printf "%s",$0} NR>1{printf "\\n%s",$0} END{printf ""}' -} - -if [ -n "$CUSTOM_MSG" ]; then - # Convert literal \n escape sequences, then fill template variables - MSG=$(printf '%s' "$CUSTOM_MSG" | sed 's/\\n/\n/g' | _fill_template) -else - ROUTER=$(uci -q get system.@system[0].hostname 2>/dev/null || echo "OpenWrt") - MSG=$(printf '✅ TrafficCtl bot connected from %s' "$ROUTER") -fi - -MSG_JSON=$(_json_encode "$MSG") - -# The URL carries the bot token, so it goes through a curl config file on stdin -# rather than argv, which is world-readable via ps and /proc. -RESULT=$(printf 'url = "https://api.telegram.org/bot%s/sendMessage"\n' "$TOKEN" | \ - curl -s -m 10 -X POST \ - -H "Content-Type: application/json" \ - -d "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${MSG_JSON}\",\"parse_mode\":\"HTML\"}" \ - --config - 2>/dev/null) - -if echo "$RESULT" | jsonfilter -e '@.ok' 2>/dev/null | grep -q "true"; then - echo '{"ok":true,"msg":"test message sent"}' -else - ERR=$(echo "$RESULT" | jsonfilter -e '@.description' 2>/dev/null) - printf '{"ok":false,"msg":"API error: %s"}\n' "${ERR:-unknown}" -fi diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-telegram.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-telegram.sh deleted file mode 100755 index 6ea08c877..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-telegram.sh +++ /dev/null @@ -1,814 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Telegram bot daemon for trafficctl. -# Runs under procd. Uses curl + jsonfilter to talk to Telegram Bot API. -# Only responds to the authorized chat_id configured in UCI. - -. /lib/functions.sh - -SCRIPTS="/usr/local/bin" -KNOWN_FILE="/etc/trafficctl/telegram_known.json" -OFFSET_FILE="/tmp/trafficctl_tg_offset" -CACHE_FILE="/tmp/trafficctl_tg_devices.json" -CACHE_TTL=5 -# How often to scan for new devices. discover_macs forks ip/iw/awk, so running -# it on every short poll loop wastes CPU continuously; 30s is plenty for a -# "new device joined" alert. Real-time joins still arrive via DHCP hotplug -# triggers (process_dhcp_triggers), which stay on every loop. -NEWDEV_INTERVAL=30 - -TG_ENABLED=0 -TG_TOKEN="" -TG_CHAT_ID="" -TG_POLL=3 -TG_NOTIFY_NEW=1 -TG_NOTIFY_KNOWN=0 -TG_CONTROL=1 -TG_NOTIFY_TEMPLATE="" -TG_BTN_INET=1 -TG_BTN_WIFI=1 -TG_BTN_LIMIT=1 -TG_BTN_SHAPE=1 - -# ── config ────────────────────────────────────────────────────────────────── - -load_config() { - config_load trafficctl - config_get TG_ENABLED telegram enabled 0 - config_get TG_TOKEN telegram bot_token "" - config_get TG_CHAT_ID telegram chat_id "" - config_get TG_POLL telegram poll_interval 3 - config_get TG_NOTIFY_NEW telegram notify_new_device 1 - config_get TG_NOTIFY_KNOWN telegram notify_known_device 0 - config_get TG_CONTROL telegram control_enabled 1 - config_get TG_NOTIFY_TEMPLATE telegram notify_template "" - config_get TG_BTN_INET telegram btn_block_inet 1 - config_get TG_BTN_WIFI telegram btn_block_wifi 1 - config_get TG_BTN_LIMIT telegram btn_limiter 1 - config_get TG_BTN_SHAPE telegram btn_shaper 1 - [ "$TG_POLL" -ge 2 ] 2>/dev/null || TG_POLL=3 -} - -validate_config() { - if [ "$TG_ENABLED" != "1" ]; then - logger -t trafficctl-tg "Telegram bot disabled" - exit 0 - fi - if [ -z "$TG_TOKEN" ] || [ -z "$TG_CHAT_ID" ]; then - logger -t trafficctl-tg "Missing bot_token or chat_id" - exit 1 - fi -} - -# ── telegram API ──────────────────────────────────────────────────────────── - -# The URL carries the bot token, so it is fed through a curl config file on stdin -# instead of argv — a command line is world-readable via ps and /proc. -tg_api() { - local method="$1" body="$2" - printf 'url = "https://api.telegram.org/bot%s/%s"\n' "$TG_TOKEN" "$method" | \ - curl -s -m 30 -X POST \ - -H "Content-Type: application/json" \ - -d "$body" \ - --config - 2>/dev/null -} - -# Escape a string for embedding in a JSON body: backslashes, quotes, tabs, -# and real newlines (raw newlines are invalid inside JSON strings and make -# Telegram reject the whole request with a 400). -tg_json_escape() { - printf '%s' "$1" | sed 's/\\/\\\\/g;s/"/\\"/g;s/ /\\t/g' | \ - awk 'NR==1{printf "%s",$0} NR>1{printf "\\n%s",$0}' -} - -tg_send() { - local text="$1" markup="$2" - local body - text=$(tg_json_escape "$text") - if [ -n "$markup" ]; then - body=$(printf '{"chat_id":"%s","text":"%s","parse_mode":"HTML","reply_markup":%s}' \ - "$TG_CHAT_ID" "$text" "$markup") - else - body=$(printf '{"chat_id":"%s","text":"%s","parse_mode":"HTML"}' \ - "$TG_CHAT_ID" "$text") - fi - tg_api "sendMessage" "$body" >/dev/null -} - -tg_answer_cb() { - local cb_id="$1" text="$2" - # The Bot API caps a callback toast at 200 characters and rejects the whole - # call when it is longer — so an over-long message does not get trimmed, it - # vanishes. Backend results carrying remediation advice can reach that - # length, and a silently missing answer is exactly the failure mode this - # plugin is being fixed for. - if [ "${#text}" -gt 200 ]; then - text="$(printf '%.196s' "$text")..." - fi - text=$(tg_json_escape "$text") - tg_api "answerCallbackQuery" \ - "$(printf '{"callback_query_id":"%s","text":"%s"}' "$cb_id" "$text")" >/dev/null -} - -tg_edit_msg() { - local msg_id="$1" text="$2" markup="$3" - text=$(tg_json_escape "$text") - local body - if [ -n "$markup" ]; then - body=$(printf '{"chat_id":"%s","message_id":%s,"text":"%s","parse_mode":"HTML","reply_markup":%s}' \ - "$TG_CHAT_ID" "$msg_id" "$text" "$markup") - else - body=$(printf '{"chat_id":"%s","message_id":%s,"text":"%s","parse_mode":"HTML"}' \ - "$TG_CHAT_ID" "$msg_id" "$text") - fi - tg_api "editMessageText" "$body" >/dev/null -} - -# ── device helpers ────────────────────────────────────────────────────────── - -get_devices() { - local now mtime age - now=$(date +%s) - if [ -f "$CACHE_FILE" ]; then - mtime=$(date -r "$CACHE_FILE" +%s 2>/dev/null || echo 0) - age=$((now - mtime)) - if [ "$age" -lt "$CACHE_TTL" ]; then - cat "$CACHE_FILE" - return - fi - fi - "$SCRIPTS/trafficctl-summary.sh" > "$CACHE_FILE" 2>/dev/null - cat "$CACHE_FILE" -} - -invalidate_cache() { rm -f "$CACHE_FILE"; } - -get_device_field() { - local json="$1" ip="$2" field="$3" - echo "$json" | jsonfilter -e "@[@.ip='$ip'].$field" 2>/dev/null -} - -# ── known devices ─────────────────────────────────────────────────────────── - -seed_known() { - local mac info name ip - for mac in $(discover_macs); do - [ -z "$mac" ] && continue - info=$(resolve_mac_info "$mac") - name=$(printf '%s' "$info" | cut -f1) - ip=$(printf '%s' "$info" | cut -f2) - add_known_mac "$mac" "${name:-unknown}" "${ip:-?}" - done - logger -t trafficctl-tg "Seeded known devices from current state" -} - -load_known() { - if [ ! -f "$KNOWN_FILE" ] || [ "$(cat "$KNOWN_FILE" 2>/dev/null)" = "[]" ]; then - mkdir -p "$(dirname "$KNOWN_FILE")" - [ -f "$KNOWN_FILE" ] || echo '[]' > "$KNOWN_FILE" - seed_known - fi -} - -lock_known() { while ! mkdir /tmp/.trafficctl_known.lock 2>/dev/null; do sleep 0.1; done; } -unlock_known() { rmdir /tmp/.trafficctl_known.lock 2>/dev/null; } - -is_known_mac() { - grep -q "\"$1\"" "$KNOWN_FILE" 2>/dev/null -} - -add_known_mac() { - local mac="$1" name="$2" ip="$3" - local now - now=$(date +%s) - # Sanitize inputs: strip anything that could break JSON or sed - mac=$(printf '%s' "$mac" | tr -cd 'a-fA-F0-9:') - name=$(printf '%s' "$name" | tr -cd 'a-zA-Z0-9 _.-') - ip=$(printf '%s' "$ip" | tr -cd '0-9.') - local tmp="${KNOWN_FILE}.tmp" - local entry - entry=$(printf '{"mac":"%s","name":"%s","ip":"%s","first_seen":%d}' \ - "$mac" "$name" "$ip" "$now") - lock_known - if [ "$(cat "$KNOWN_FILE" 2>/dev/null)" = "[]" ]; then - printf '[%s]' "$entry" > "$tmp" - else - awk -v e="$entry" '{sub(/\]$/,","e"]")}1' "$KNOWN_FILE" > "$tmp" - fi - mv "$tmp" "$KNOWN_FILE" - unlock_known -} - -discover_macs() { - local seen_file="/tmp/trafficctl_tg_seen.tmp" - : > "$seen_file" - - # Source 1: ARP table (covers any device that communicated at L2) - ip neigh show 2>/dev/null | awk '/lladdr/ {print tolower($5)}' >> "$seen_file" - - # Source 2: DHCP leases (covers any device that requested an IP) - if [ -f /tmp/dhcp.leases ]; then - awk '{print tolower($2)}' /tmp/dhcp.leases >> "$seen_file" - fi - - # Source 3: Wi-Fi associated stations (covers connected Wi-Fi clients even without traffic) - for iface in $(iw dev 2>/dev/null | awk '/Interface/{print $2}'); do - iw dev "$iface" station dump 2>/dev/null | awk '/Station/{print tolower($2)}' - done >> "$seen_file" - - # Deduplicate, filter valid MACs - sort -u "$seen_file" | grep -E '^([0-9a-f]{2}:){5}[0-9a-f]{2}$' - rm -f "$seen_file" -} - -resolve_mac_info() { - local mac="$1" name="" ip="" conn_type="?" - - # Try DHCP leases first - if [ -f /tmp/dhcp.leases ]; then - ip=$(awk -v m="$mac" 'tolower($2)==m {print $3; exit}' /tmp/dhcp.leases) - name=$(awk -v m="$mac" 'tolower($2)==m {print $4; exit}' /tmp/dhcp.leases) - fi - - # Fallback: ARP for IP - if [ -z "$ip" ]; then - ip=$(ip neigh show 2>/dev/null | awk -v m="$mac" 'tolower($5)==m {print $1; exit}') - fi - - # Determine connection type - for iface in $(iw dev 2>/dev/null | awk '/Interface/{print $2}'); do - if iw dev "$iface" station get "$mac" >/dev/null 2>&1; then - conn_type="wifi" - break - fi - done - if [ "$conn_type" = "?" ] && [ -n "$ip" ]; then - conn_type="ethernet" - fi - - [ -z "$name" ] || [ "$name" = "*" ] && name="unknown" - printf '%s\t%s\t%s' "${name}" "${ip:-?}" "${conn_type}" -} - -ONLINE_STATE_FILE="/tmp/trafficctl_tg_online" -DHCP_TRIGGER_FILE="/tmp/trafficctl_tg_newdev" - -get_wifi_info() { - local mac="$1" iw_out="" iface="" cand="" ssid="" signal="" freq="" - # Iterate all wireless interfaces via iw (covers phy0-ap0 style names, - # not just wlan*). - for cand in $(iw dev 2>/dev/null | awk '/Interface/{print $2}'); do - iw_out=$(iw dev "$cand" station get "$mac" 2>/dev/null) - if [ -n "$iw_out" ]; then - iface="$cand" - break - fi - done - if [ -n "$iw_out" ]; then - signal=$(echo "$iw_out" | awk '/signal:/{print $2; exit}') - # channel line: "channel 36 (5180 MHz), width: 80 MHz, ..." — find the - # first field that parses to a plausible frequency in MHz (the channel - # number itself is < 2400, so it never matches) - freq=$(iw dev "$iface" info 2>/dev/null | \ - awk '/channel/{ - for (i = 2; i <= NF; i++) { - v = $i; gsub(/[^0-9]/, "", v) - if (v + 0 >= 2400 && v + 0 <= 7200) { f = v + 0; break } - } - if (f >= 5925) print "6GHz" - else if (f >= 5000) print "5GHz" - else if (f > 0) print "2.4GHz" - exit - }') - ssid=$(iw dev "$iface" info 2>/dev/null | awk '/ssid/{print $2; exit}') - fi - printf '%s\t%s\t%s\t%s' "$iface" "$ssid" "$signal" "$freq" -} - -get_device_conns() { - local ip="$1" n - # grep -c prints 0 itself on no match (with exit status 1), so an - # "|| echo 0" here would emit a second line and corrupt the value. - n=$(grep -c "src=$ip " /proc/net/nf_conntrack 2>/dev/null) - echo "${n:-0}" -} - -get_router_vars() { - local uptime_s up_d up_h up_m __ip - uptime_s=$(awk '{print int($1)}' /proc/uptime) - up_d=$((uptime_s / 86400)) - up_h=$(( (uptime_s % 86400) / 3600 )) - up_m=$(( (uptime_s % 3600) / 60 )) - if [ "$up_d" -gt 0 ]; then - TVAR_UPTIME="${up_d}d ${up_h}h" - elif [ "$up_h" -gt 0 ]; then - TVAR_UPTIME="${up_h}h ${up_m}m" - else - TVAR_UPTIME="${up_m}m" - fi - TVAR_DATE=$(date '+%Y-%m-%d') - TVAR_TIME=$(date '+%H:%M') - TVAR_DATETIME=$(date '+%Y-%m-%d %H:%M') - TVAR_ROUTER=$(uci -q get system.@system[0].hostname || cat /proc/sys/kernel/hostname) - . /lib/functions/network.sh - network_get_ipaddr __ip wan - TVAR_WAN_IP="$__ip" - TVAR_LOAD=$(awk '{print $1}' /proc/loadavg) - TVAR_CLIENTS=$(wc -l < /tmp/dhcp.leases 2>/dev/null || echo 0) -} - -format_new_device_msg() { - local name="$1" ip="$2" mac="$3" link="$4" - if [ -n "$TG_NOTIFY_TEMPLATE" ]; then - get_router_vars - local wifi_info iface ssid signal freq conns - wifi_info=$(get_wifi_info "$mac") - iface=$(printf '%s' "$wifi_info" | cut -f1) - ssid=$(printf '%s' "$wifi_info" | cut -f2) - signal=$(printf '%s' "$wifi_info" | cut -f3) - freq=$(printf '%s' "$wifi_info" | cut -f4) - conns=$(get_device_conns "$ip") - - printf '%s' "$TG_NOTIFY_TEMPLATE" | \ - awk -v n="$name" -v i="$ip" -v m="$mac" -v l="$link" \ - -v dt="$TVAR_DATE" -v tm="$TVAR_TIME" -v dtm="$TVAR_DATETIME" \ - -v rtr="$TVAR_ROUTER" -v ssid="$ssid" -v sig="$signal" \ - -v freq="$freq" -v iface="$iface" -v clients="$TVAR_CLIENTS" \ - -v up="$TVAR_UPTIME" -v wan="$TVAR_WAN_IP" -v ld="$TVAR_LOAD" \ - -v conns="$conns" '{ - # [ \t]* instead of \s* — BusyBox awk has no \s class - gsub(/\{\{[ \t]*name[ \t]*\}\}/, n) - gsub(/\{\{[ \t]*ip[ \t]*\}\}/, i) - gsub(/\{\{[ \t]*mac[ \t]*\}\}/, m) - gsub(/\{\{[ \t]*link[ \t]*\}\}/, l) - gsub(/\{\{[ \t]*date[ \t]*\}\}/, dt) - gsub(/\{\{[ \t]*time[ \t]*\}\}/, tm) - gsub(/\{\{[ \t]*datetime[ \t]*\}\}/, dtm) - gsub(/\{\{[ \t]*router[ \t]*\}\}/, rtr) - gsub(/\{\{[ \t]*ssid[ \t]*\}\}/, ssid) - gsub(/\{\{[ \t]*signal[ \t]*\}\}/, sig) - gsub(/\{\{[ \t]*freq[ \t]*\}\}/, freq) - gsub(/\{\{[ \t]*iface[ \t]*\}\}/, iface) - gsub(/\{\{[ \t]*clients[ \t]*\}\}/, clients) - gsub(/\{\{[ \t]*uptime[ \t]*\}\}/, up) - gsub(/\{\{[ \t]*wan_ip[ \t]*\}\}/, wan) - gsub(/\{\{[ \t]*load[ \t]*\}\}/, ld) - gsub(/\{\{[ \t]*conns[ \t]*\}\}/, conns) - gsub(/\\n/, "\n") - print - }' - else - printf '🆕 New device\n%s (%s)\nMAC: %s\nLink: %s' \ - "$name" "$ip" "$mac" "$link" - fi -} - -process_dhcp_triggers() { - [ -f "$DHCP_TRIGGER_FILE" ] || return 0 - local tmpf="${DHCP_TRIGGER_FILE}.proc" - mv "$DHCP_TRIGGER_FILE" "$tmpf" 2>/dev/null || return 0 - - local mac ip name - while IFS=' ' read -r mac ip name; do - [ -z "$mac" ] && continue - mac=$(printf '%s' "$mac" | tr 'A-F' 'a-f') - if ! is_known_mac "$mac"; then - add_known_mac "$mac" "${name:-unknown}" "${ip:-?}" - if [ "$TG_NOTIFY_NEW" = "1" ]; then - tg_send "$(format_new_device_msg "${name:-unknown}" "${ip:-?}" "$mac" "dhcp")" - fi - fi - done < "$tmpf" - rm -f "$tmpf" -} - -check_new_devices() { - local mac info name ip conn_type - local current_macs="/tmp/trafficctl_tg_cur.tmp" - - discover_macs > "$current_macs" - - while read -r mac; do - [ -z "$mac" ] && continue - if ! is_known_mac "$mac"; then - info=$(resolve_mac_info "$mac") - name=$(printf '%s' "$info" | cut -f1) - ip=$(printf '%s' "$info" | cut -f2) - conn_type=$(printf '%s' "$info" | cut -f3) - add_known_mac "$mac" "${name:-unknown}" "${ip:-?}" - if [ "$TG_NOTIFY_NEW" = "1" ]; then - tg_send "$(format_new_device_msg "${name:-unknown}" "${ip:-?}" "$mac" "${conn_type:-?}")" - fi - elif [ "$TG_NOTIFY_KNOWN" = "1" ]; then - if [ -f "$ONLINE_STATE_FILE" ] && ! grep -q "$mac" "$ONLINE_STATE_FILE" 2>/dev/null; then - info=$(resolve_mac_info "$mac") - name=$(printf '%s' "$info" | cut -f1) - ip=$(printf '%s' "$info" | cut -f2) - conn_type=$(printf '%s' "$info" | cut -f3) - tg_send "$(printf '📱 Device online\n%s (%s)\nLink: %s' \ - "${name:-unknown}" "${ip:-?}" "${conn_type:-?}")" - fi - fi - done < "$current_macs" - - mv "$current_macs" "$ONLINE_STATE_FILE" -} - -# ── keyboard builders ─────────────────────────────────────────────────────── - -build_device_keyboard() { - local devices="$1" - local tmpkb="/tmp/trafficctl_tg_kb.tmp" - local ip name btn col=0 first=1 - - printf '{"inline_keyboard":[' > "$tmpkb" - - for ip in $(echo "$devices" | jsonfilter -e '@[*].ip' 2>/dev/null); do - name=$(echo "$devices" | jsonfilter -e "@[@.ip='$ip'].name" 2>/dev/null) - # Keep button labels JSON-safe: drop quotes/backslashes and anything - # non-ASCII, then truncate. A %.12s cut through a multi-byte character - # would produce invalid UTF-8 and Telegram would reject the keyboard. - name=$(printf '%s' "$name" | tr -cd 'a-zA-Z0-9 _.()-') - btn=$(printf '{"text":"%.12s %s","callback_data":"act:menu:%s"}' \ - "${name:-$ip}" "$ip" "$ip") - if [ "$col" -eq 0 ]; then - if [ "$first" -eq 1 ]; then - first=0 - else - printf '],' >> "$tmpkb" - fi - printf '[%s' "$btn" >> "$tmpkb" - col=1 - else - printf ',%s' "$btn" >> "$tmpkb" - col=0 - fi - done - - printf ']]}' >> "$tmpkb" - cat "$tmpkb" - rm -f "$tmpkb" -} - -# A ceiling as "8000 kbit/s", or "8000↓ / 2000↑ kbit/s" when upload has its -# own (#66). An upload figure of 0 or equal to download is not a split. -tg_ceiling() { - if [ "${2:-0}" -gt 0 ] 2>/dev/null && [ "$2" != "$1" ]; then - printf '%s↓ / %s↑ kbit/s' "$1" "$2" - else - printf '%s kbit/s' "$1" - fi -} - -# The same, compact, for the /status flags: "8000k" or "8000/2000k". -tg_ceiling_short() { - if [ "${2:-0}" -gt 0 ] 2>/dev/null && [ "$2" != "$1" ]; then - printf '%s/%sk' "$1" "$2" - else - printf '%sk' "$1" - fi -} - -build_action_keyboard() { - local ip="$1" devices="$2" - local blocked wifi_blocked rl_kbit shape_kbit rl_up shape_up - blocked=$(get_device_field "$devices" "$ip" "blocked") - wifi_blocked=$(get_device_field "$devices" "$ip" "wifi_blocked") - rl_kbit=$(get_device_field "$devices" "$ip" "rate_limit_kbit") - shape_kbit=$(get_device_field "$devices" "$ip" "shape_kbit") - rl_up=$(get_device_field "$devices" "$ip" "rate_limit_kbit_up") - shape_up=$(get_device_field "$devices" "$ip" "shape_kbit_up") - conn_type=$(get_device_field "$devices" "$ip" "conn_type") - - local kb='{"inline_keyboard":[' - local rows="" - - # internet block/unblock - if [ "$TG_BTN_INET" = "1" ]; then - if [ "$blocked" = "true" ] || [ "$blocked" = "1" ]; then - rows="${rows}[{\"text\":\"▶️ Unblock Internet\",\"callback_data\":\"act:unblock:${ip}\"}]," - else - rows="${rows}[{\"text\":\"⏸ Block Internet\",\"callback_data\":\"act:block:${ip}\"}]," - fi - fi - - # wifi block/unblock (only for wifi devices) - if [ "$TG_BTN_WIFI" = "1" ]; then - case "$conn_type" in - *wifi*|*2.4G*|*5G*|*6G*|*WiFi*) - if [ "$wifi_blocked" = "true" ] || [ "$wifi_blocked" = "1" ]; then - rows="${rows}[{\"text\":\"📶 Unblock WiFi\",\"callback_data\":\"act:wunblock:${ip}\"}]," - else - rows="${rows}[{\"text\":\"📵 Block WiFi\",\"callback_data\":\"act:wblock:${ip}\"}]," - fi - ;; - esac - fi - - # limiter - if [ "$TG_BTN_LIMIT" = "1" ]; then - if [ "${rl_kbit:-0}" -gt 0 ] 2>/dev/null; then - rows="${rows}[{\"text\":\"⚡ Limit: $(tg_ceiling "$rl_kbit" "$rl_up") — Remove\",\"callback_data\":\"act:unlimit:${ip}\"}]," - else - rows="${rows}[{\"text\":\"⚡ 1M\",\"callback_data\":\"act:limit:${ip}:1000\"},{\"text\":\"⚡ 2M\",\"callback_data\":\"act:limit:${ip}:2000\"},{\"text\":\"⚡ 5M\",\"callback_data\":\"act:limit:${ip}:5000\"}]," - rows="${rows}[{\"text\":\"⚡ 10M\",\"callback_data\":\"act:limit:${ip}:10000\"},{\"text\":\"⚡ 25M\",\"callback_data\":\"act:limit:${ip}:25000\"},{\"text\":\"⚡ 50M\",\"callback_data\":\"act:limit:${ip}:50000\"},{\"text\":\"⚡ 100M\",\"callback_data\":\"act:limit:${ip}:100000\"}]," - fi - fi - - # shaper - if [ "$TG_BTN_SHAPE" = "1" ]; then - if [ "${shape_kbit:-0}" -gt 0 ] 2>/dev/null; then - rows="${rows}[{\"text\":\"🔧 Shape: $(tg_ceiling "$shape_kbit" "$shape_up") — Remove\",\"callback_data\":\"act:unshape:${ip}\"}]," - else - rows="${rows}[{\"text\":\"🔧 1M\",\"callback_data\":\"act:shape:${ip}:1000\"},{\"text\":\"🔧 2M\",\"callback_data\":\"act:shape:${ip}:2000\"},{\"text\":\"🔧 5M\",\"callback_data\":\"act:shape:${ip}:5000\"}]," - rows="${rows}[{\"text\":\"🔧 10M\",\"callback_data\":\"act:shape:${ip}:10000\"},{\"text\":\"🔧 25M\",\"callback_data\":\"act:shape:${ip}:25000\"},{\"text\":\"🔧 50M\",\"callback_data\":\"act:shape:${ip}:50000\"},{\"text\":\"🔧 100M\",\"callback_data\":\"act:shape:${ip}:100000\"}]," - fi - fi - - # back button - rows="${rows}[{\"text\":\"⬅️ Back\",\"callback_data\":\"act:back\"}]" - - printf '%s%s]}' "$kb" "$rows" -} - -# ── command handlers ──────────────────────────────────────────────────────── - -handle_help() { - if [ "$TG_CONTROL" = "1" ]; then - tg_send "$(printf 'TrafficCtl Bot\n\n/devices — active devices with action buttons\n/status — blocked/limited summary\n/help — this message')" - else - tg_send "$(printf 'TrafficCtl Bot (notifications only)\n\n/devices — active devices list\n/status — blocked/limited summary\n/help — this message\n\nControl disabled — enable in LuCI settings')" - fi -} - -handle_devices() { - local devices - devices=$(get_devices) - if [ -z "$devices" ] || [ "$devices" = "[]" ]; then - tg_send "No active devices" - return - fi - local count - count=$(echo "$devices" | jsonfilter -e '@[*].ip' 2>/dev/null | wc -l) - if [ "$TG_CONTROL" = "1" ]; then - local kb - kb=$(build_device_keyboard "$devices") - tg_send "$(printf 'Active devices: %d\nSelect a device:' "$count")" "$kb" - else - local list="" ip name - for ip in $(echo "$devices" | jsonfilter -e '@[*].ip' 2>/dev/null); do - name=$(get_device_field "$devices" "$ip" "name") - list="${list}• ${name:-?} (${ip})\n" - done - tg_send "$(printf 'Active devices: %d\n%b' "$count" "$list")" - fi -} - -handle_devices_edit() { - local msg_id="$1" - invalidate_cache - local devices - devices=$(get_devices) - local count - count=$(echo "$devices" | jsonfilter -e '@[*].ip' 2>/dev/null | wc -l) - local kb - kb=$(build_device_keyboard "$devices") - tg_edit_msg "$msg_id" "$(printf 'Active devices: %d\nSelect a device:' "$count")" "$kb" -} - -handle_status() { - local devices ip name rl_kbit shape_kbit rl_up shape_up blocked wifi_blocked - local result="" - devices=$(get_devices) - [ -z "$devices" ] || [ "$devices" = "[]" ] && { tg_send "No active devices"; return; } - - for ip in $(echo "$devices" | jsonfilter -e '@[*].ip' 2>/dev/null); do - blocked=$(get_device_field "$devices" "$ip" "blocked") - wifi_blocked=$(get_device_field "$devices" "$ip" "wifi_blocked") - rl_kbit=$(get_device_field "$devices" "$ip" "rate_limit_kbit") - shape_kbit=$(get_device_field "$devices" "$ip" "shape_kbit") - rl_up=$(get_device_field "$devices" "$ip" "rate_limit_kbit_up") - shape_up=$(get_device_field "$devices" "$ip" "shape_kbit_up") - name=$(get_device_field "$devices" "$ip" "name") - - local flags="" - [ "$blocked" = "true" ] || [ "$blocked" = "1" ] && flags="${flags} 🚫inet" - [ "$wifi_blocked" = "true" ] || [ "$wifi_blocked" = "1" ] && flags="${flags} 📵wifi" - [ "${rl_kbit:-0}" -gt 0 ] 2>/dev/null && flags="${flags} ⚡$(tg_ceiling_short "$rl_kbit" "$rl_up")" - [ "${shape_kbit:-0}" -gt 0 ] 2>/dev/null && flags="${flags} 🔧$(tg_ceiling_short "$shape_kbit" "$shape_up")" - - [ -n "$flags" ] && result="${result}${name:-?} (${ip}):${flags}\n" - done - - if [ -z "$result" ]; then - tg_send "All devices are clean — no blocks or limits" - else - tg_send "$(printf 'Active restrictions:\n%b' "$result")" - fi -} - -# ── callback handler ──────────────────────────────────────────────────────── - -handle_callback() { - local cb_id="$1" data="$2" msg_id="$3" - local verb ip param result msg devices name - - if [ "$TG_CONTROL" != "1" ]; then - tg_answer_cb "$cb_id" "Control disabled" - return - fi - - verb=$(echo "$data" | cut -d: -f2) - ip=$(echo "$data" | cut -d: -f3) - param=$(echo "$data" | cut -d: -f4) - - # Validate IP from callback data - if [ -n "$ip" ] && [ "$verb" != "back" ]; then - if ! echo "$ip" | grep -qE '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'; then - tg_answer_cb "$cb_id" "invalid IP" - return - fi - fi - # Validate rate param is numeric - if [ -n "$param" ]; then - case "$param" in *[!0-9]*) tg_answer_cb "$cb_id" "invalid param"; return ;; esac - fi - - case "$verb" in - menu) - invalidate_cache - devices=$(get_devices) - name=$(get_device_field "$devices" "$ip" "name") - local blocked wifi_blocked rl_kbit shape_kbit rl_up shape_up - blocked=$(get_device_field "$devices" "$ip" "blocked") - wifi_blocked=$(get_device_field "$devices" "$ip" "wifi_blocked") - rl_kbit=$(get_device_field "$devices" "$ip" "rate_limit_kbit") - shape_kbit=$(get_device_field "$devices" "$ip" "shape_kbit") - rl_up=$(get_device_field "$devices" "$ip" "rate_limit_kbit_up") - shape_up=$(get_device_field "$devices" "$ip" "shape_kbit_up") - - local status_line="" - [ "$blocked" = "true" ] || [ "$blocked" = "1" ] && status_line="${status_line}🚫 Internet blocked\n" - [ "$wifi_blocked" = "true" ] || [ "$wifi_blocked" = "1" ] && status_line="${status_line}📵 WiFi blocked\n" - [ "${rl_kbit:-0}" -gt 0 ] 2>/dev/null && status_line="${status_line}⚡ Limiter: $(tg_ceiling "$rl_kbit" "$rl_up")\n" - [ "${shape_kbit:-0}" -gt 0 ] 2>/dev/null && status_line="${status_line}🔧 Shaper: $(tg_ceiling "$shape_kbit" "$shape_up")\n" - [ -z "$status_line" ] && status_line="✅ No restrictions\n" - - local text - text=$(printf '%s (%s)\n%b' "${name:-?}" "$ip" "$status_line") - local kb - kb=$(build_action_keyboard "$ip" "$devices") - tg_edit_msg "$msg_id" "$text" "$kb" - tg_answer_cb "$cb_id" "" - ;; - block) - result=$("$SCRIPTS/trafficctl-block.sh" "$ip" "tg") - msg=$(echo "$result" | jsonfilter -e '@.msg' 2>/dev/null) - tg_answer_cb "$cb_id" "${msg:-done}" - invalidate_cache - handle_callback "$cb_id" "act:menu:$ip" "$msg_id" - ;; - unblock) - result=$("$SCRIPTS/trafficctl-unblock.sh" "$ip" "tg") - msg=$(echo "$result" | jsonfilter -e '@.msg' 2>/dev/null) - tg_answer_cb "$cb_id" "${msg:-done}" - invalidate_cache - handle_callback "$cb_id" "act:menu:$ip" "$msg_id" - ;; - wblock) - result=$("$SCRIPTS/trafficctl-macfilter-add.sh" "$ip") - msg=$(echo "$result" | jsonfilter -e '@.msg' 2>/dev/null) - tg_answer_cb "$cb_id" "${msg:-done}" - invalidate_cache - handle_callback "$cb_id" "act:menu:$ip" "$msg_id" - ;; - wunblock) - result=$("$SCRIPTS/trafficctl-macfilter-remove.sh" "$ip") - msg=$(echo "$result" | jsonfilter -e '@.msg' 2>/dev/null) - tg_answer_cb "$cb_id" "${msg:-done}" - invalidate_cache - handle_callback "$cb_id" "act:menu:$ip" "$msg_id" - ;; - limit) - result=$("$SCRIPTS/trafficctl-ratelimit.sh" "$ip" "$param" "tg") - msg=$(echo "$result" | jsonfilter -e '@.msg' 2>/dev/null) - tg_answer_cb "$cb_id" "${msg:-done}" - invalidate_cache - handle_callback "$cb_id" "act:menu:$ip" "$msg_id" - ;; - unlimit) - result=$("$SCRIPTS/trafficctl-ratelimit.sh" "$ip" "0" "tg") - msg=$(echo "$result" | jsonfilter -e '@.msg' 2>/dev/null) - tg_answer_cb "$cb_id" "${msg:-done}" - invalidate_cache - handle_callback "$cb_id" "act:menu:$ip" "$msg_id" - ;; - shape) - result=$("$SCRIPTS/trafficctl-shape.sh" add "$ip" "$param" "tg") - msg=$(echo "$result" | jsonfilter -e '@.msg' 2>/dev/null) - tg_answer_cb "$cb_id" "${msg:-done}" - invalidate_cache - handle_callback "$cb_id" "act:menu:$ip" "$msg_id" - ;; - unshape) - result=$("$SCRIPTS/trafficctl-shape.sh" remove "$ip") - msg=$(echo "$result" | jsonfilter -e '@.msg' 2>/dev/null) - tg_answer_cb "$cb_id" "${msg:-done}" - invalidate_cache - handle_callback "$cb_id" "act:menu:$ip" "$msg_id" - ;; - back) - handle_devices_edit "$msg_id" - tg_answer_cb "$cb_id" "" - ;; - *) - tg_answer_cb "$cb_id" "Unknown action" - ;; - esac -} - -# ── main loop ─────────────────────────────────────────────────────────────── - -main() { - load_config - validate_config - load_known - - export TCTL_VIA="telegram" - export TCTL_SRC="telegram:${TG_CHAT_ID}" - export TCTL_USER="telegram-bot" - - logger -t trafficctl-tg "Bot started, chat_id=$TG_CHAT_ID" - - local offset response ok i - local update update_id msg_chat_id msg_text cb_id cb_data cb_msg_id - local config_reload_at newdev_check_at - config_reload_at=$(($(date +%s) + 60)) - newdev_check_at=0 - - offset=$(cat "$OFFSET_FILE" 2>/dev/null || echo "0") - - while true; do - # Periodic full device scan (rate-limited); hotplug path stays real-time. - if [ "$(date +%s)" -ge "$newdev_check_at" ]; then - check_new_devices - newdev_check_at=$(($(date +%s) + NEWDEV_INTERVAL)) - fi - process_dhcp_triggers - - response=$(tg_api "getUpdates" \ - "$(printf '{"offset":%s,"timeout":%d,"allowed_updates":["message","callback_query"]}' \ - "$offset" "$TG_POLL")") - - ok=$(echo "$response" | jsonfilter -e '@.ok' 2>/dev/null) - [ "$ok" = "true" ] || { sleep 5; continue; } - - # Iterate results by index until one comes back empty. Do NOT use - # `jsonfilter -l '@.result'` to get a count: on newer jsonfilter - # (OpenWrt 25.12 / APK and snapshot) it returns an empty string, which - # left update_count empty and turned `[ "$i" -lt "$update_count" ]` into - # a BusyBox "sh: out of range" loop that never processed commands (#22). - i=0 - while update=$(echo "$response" | jsonfilter -e "@.result[$i]" 2>/dev/null); [ -n "$update" ]; do - update_id=$(echo "$update" | jsonfilter -e '@.update_id' 2>/dev/null) - [ -n "$update_id" ] && offset=$((update_id + 1)) - echo "$offset" > "$OFFSET_FILE" - - # try message first - msg_chat_id=$(echo "$update" | jsonfilter -e '@.message.chat.id' 2>/dev/null) - if [ -n "$msg_chat_id" ]; then - if [ "$msg_chat_id" = "$TG_CHAT_ID" ]; then - msg_text=$(echo "$update" | jsonfilter -e '@.message.text' 2>/dev/null) - case "$msg_text" in - /start*|/help*) handle_help ;; - /devices*) handle_devices ;; - /status*) handle_status ;; - esac - fi - i=$((i + 1)) - continue - fi - - # try callback_query - cb_id=$(echo "$update" | jsonfilter -e '@.callback_query.id' 2>/dev/null) - if [ -n "$cb_id" ]; then - msg_chat_id=$(echo "$update" | jsonfilter -e '@.callback_query.message.chat.id' 2>/dev/null) - if [ "$msg_chat_id" = "$TG_CHAT_ID" ]; then - cb_data=$(echo "$update" | jsonfilter -e '@.callback_query.data' 2>/dev/null) - cb_msg_id=$(echo "$update" | jsonfilter -e '@.callback_query.message.message_id' 2>/dev/null) - handle_callback "$cb_id" "$cb_data" "$cb_msg_id" - fi - fi - - i=$((i + 1)) - done - - # reload config periodically - if [ "$(date +%s)" -ge "$config_reload_at" ]; then - load_config - config_reload_at=$(($(date +%s) + 60)) - fi - done -} - -main diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-totals.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-totals.sh deleted file mode 100755 index f57d3a7f3..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-totals.sh +++ /dev/null @@ -1,276 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Monotonic per-device byte totals — the single accumulator behind both the -# LuCI "Bytes / TCP / UDP" columns and the trafficctl_device_bytes_total metric. -# -# WHY AN ACCUMULATOR AT ALL (issue #26) -# Neither byte source is a lifetime total. conntrack reports what its -# CURRENTLY TRACKED flows have carried, so a device's number collapses the -# moment its flows age out — which is why the columns were reported showing -# values like "2 bytes". The nft counter maps are cumulative, but only since -# the table was created, and that table is rebuilt on upgrade and gone after -# a reboot. A lifetime total has to be accumulated from deltas and persisted. -# -# ONE STORE, ONE IMPLEMENTATION -# This logic used to live inline in trafficctl-metrics.sh. It was lifted out -# rather than copied: a second accumulator with its own state file would let -# the UI column and the Prometheus counter report different totals for the -# same device, and that is a bug report nobody can reproduce. -# -# SOURCE SELECTION is delegated entirely to trafficctl-bytes.sh, which already -# switches to nft counters when flow offload stops conntrack from counting — -# so the total stays right on exactly the routers where the complaint arises. -# That switch can happen at RUNTIME (offload toggled in the firewall config, -# or trafficctl-bytes-nft.sh bouncing back to conntrack on a kernel without -# dynamic counter maps), and the two sources have unrelated magnitudes. The -# source is therefore recorded per device, and a change rebaselines instead -# of accumulating the difference as if it were traffic. -# -# STORE: /tmp, i.e. tmpfs, so totals reset on reboot. Deliberate: this file is -# rewritten on every LuCI poll (2–10 s) and every scrape, and that write -# volume into flash would wear out the router. Surviving a reboot would mean -# a periodic flush to /etc/trafficctl (kept across sysupgrade by -# lib/upgrade/keep.d) at a much coarser interval — a separate decision. -# -# Usage: trafficctl-totals.sh [--all] -# default : one element per device in the current sample (what the UI wants) -# --all : also emit devices that are no longer in the sample but still -# carry a total, so a Prometheus series does not vanish and -# reappear every time a quiet device's last flow expires. -# -# Output: the trafficctl-bytes.sh array, each element extended with -# bytes_in_total / bytes_out_total / bytes_tcp_total / bytes_udp_total, -# total_since (unix time accumulation began for that device) and live. -# The proto totals are -1 when the active source cannot split by protocol. -# -# TRUST: "degraded" is carried through from the sampler and is STICKY per -# device. It means the counters the total was built from are frozen for -# offloaded flows (uncountered offload with no usable nft fallback), so the -# total is a lower bound that stops growing while traffic continues. One -# tainted sample understates the total for the rest of its life, so the flag -# cannot be cleared just because the next sample looked healthy — that would -# re-present the same understated number as trustworthy. Consumers must -# refuse to show it as a total, exactly as they refuse to show -1 as 0. - -. /usr/local/bin/trafficctl-fw.sh - -STATE="/tmp/trafficctl_totals.state" -LOCKD="/tmp/trafficctl_totals.lock.d" - -ALL=0 -[ "$1" = "--all" ] && ALL=1 - -SAMPLE="/tmp/.trafficctl_totals.sample.$$" -# Per-process, NOT a shared "$STATE.tmp". The lock below can be stolen after a -# timeout, so two writers coexisting is a reachable state rather than an -# impossible one; with a shared scratch name they would interleave lines into -# it and the surviving state file would be garbage. With one name each, the -# worst outcome is the benign one the lock is really for — a lost delta. -TMPF="/tmp/.trafficctl_totals.write.$$" -# shellcheck disable=SC2064 # expand the paths now, not at trap time -trap "rm -f '$SAMPLE' '$TMPF'" EXIT INT TERM - -# Sample BEFORE taking the lock. Reading /proc/net/nf_conntrack on a busy -# router is by far the slowest thing here, and holding the lock across it would -# put every poll in a queue behind it: two browser tabs at a 2 s interval would -# then routinely hit the steal-on-timeout path below, which exists for a killed -# sampler, not for ordinary load. The file is in tmpfs and is streamed into -# awk, so this costs no more memory than the pipeline it replaces — and keeps -# the promise that no large value is ever held in a shell variable. -/usr/local/bin/trafficctl-bytes.sh 2>/dev/null | sed 's/},{/}\n{/g' > "$SAMPLE" - -# mkdir is atomic, so unlike a test-then-create lock file two samplers cannot -# both believe they hold it. Without this a LuCI poll and a metrics scrape -# landing together would read the same state, and the later writer would -# silently discard the earlier one's delta. -_tries=0 -while ! mkdir "$LOCKD" 2>/dev/null; do - _tries=$((_tries + 1)) - if [ "$_tries" -ge 30 ]; then - # A stale directory from a killed sampler must not freeze the counters - # for good; steal it rather than give up on accumulating. - rmdir "$LOCKD" 2>/dev/null || true - mkdir "$LOCKD" 2>/dev/null || break - break - fi - sleep 0.1 2>/dev/null || sleep 1 -done -# Re-armed only now that the lock is actually held: a signal arriving during -# the sample above must not make this process rmdir a lock it never took. -# shellcheck disable=SC2064 # expand the paths now, not at trap time -trap "rm -f '$SAMPLE' '$TMPF'; rmdir '$LOCKD' 2>/dev/null" EXIT INT TERM - -NOW=$(date +%s) - -# Everything from here to the end of awk is the critical section, and it is -# only a state-file read plus one pass over the sample — milliseconds. -awk -v state="$STATE" -v tmp="$TMPF" -v now="$NOW" -v all="$ALL" ' -# Returns -1 for a missing key, an unparseable value, or an explicit -1 in the -# JSON — all three mean the same thing to every caller here: "not available". -function num(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*" - if (!match(line, re)) return -1 - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /^[0-9]+/)) return -1 - return substr(seg, RSTART, RLENGTH) + 0 -} -function str(line, key, re, seg) { - re = "\"" key "\"[ \t]*:[ \t]*\"" - if (!match(line, re)) return "" - seg = substr(line, RSTART + RLENGTH) - if (!match(seg, /"/)) return "" - return substr(seg, 1, RSTART - 1) -} -BEGIN { - # State line: ip rx_acc tx_acc rx_last tx_last seen tcp_acc udp_acc - # tcp_last udp_last src since - # The first six fields are byte-for-byte the layout the exporter used - # before this script existed, so an old state file still loads. - while ((getline l < state) > 0) { - n = split(l, f, " ") - if (n < 5) continue - ip = f[1] - rxa[ip] = f[2] + 0; txa[ip] = f[3] + 0 - rxl[ip] = f[4] + 0; txl[ip] = f[5] + 0 - known[ip] = 1 - seenat[ip] = (n >= 6 ? f[6] + 0 : now) - if (n >= 10) { - tca[ip] = f[7] + 0; uda[ip] = f[8] + 0 - tcl[ip] = f[9] + 0; udl[ip] = f[10] + 0 - } else { - tcl[ip] = -1; udl[ip] = -1 - } - srcof[ip] = (n >= 11 ? f[11] : "?") - since[ip] = (n >= 12 ? f[12] + 0 : now) - degof[ip] = (n >= 13 ? f[13] : "false") - } - close(state) -} -{ - ip = str($0, "ip") - if (ip == "") next - rx = num($0, "bytes_in"); if (rx < 0) rx = 0 - tx = num($0, "bytes_out"); if (tx < 0) tx = 0 - tcv = num($0, "bytes_tcp") # -1 when the source cannot split by protocol - udv = num($0, "bytes_udp") - s = str($0, "src") - if (s == "") s = "?" - # Trust, not magnitude. Deliberately NOT folded into the source-switch test - # below: conntrack counters are continuous across a change in trust, so - # rebaselining on it would throw away a real delta for nothing. - dg = "false" - if (index($0, "\"degraded\":true") > 0) dg = "true" - - # A source switch swaps "bytes carried by live flows" for "bytes since the - # nft table was built", or the reverse. Either way the jump is not traffic, - # so this tick only re-establishes the baseline. - switched = 0 - if ((ip in known) && srcof[ip] != "?" && s != "?" && srcof[ip] != s) switched = 1 - - if ((ip in known) && !switched) { - # Only upward movement is new traffic. A drop means flows expired, and - # their bytes were already accumulated while they lived. - if (rx > rxl[ip]) rxa[ip] += rx - rxl[ip] - if (tx > txl[ip]) txa[ip] += tx - txl[ip] - } else if (!switched) { - # No baseline yet: the whole sample is the starting point, not a delta. - rxa[ip] += rx; txa[ip] += tx - since[ip] = now - } - rxl[ip] = rx; txl[ip] = tx - - if (tcv >= 0) { - if ((ip in tcl) && tcl[ip] >= 0 && !switched) { - if (tcv > tcl[ip]) tca[ip] += tcv - tcl[ip] - } else if (!switched) { - tca[ip] += tcv - } - tcl[ip] = tcv - } else { - # Gone unavailable (offload turned on mid-life). Forget the baseline so - # that when it returns the stale value is not differenced against the - # new one — hours of frozen counter would land as one fake delta. - tcl[ip] = -1 - } - if (udv >= 0) { - if ((ip in udl) && udl[ip] >= 0 && !switched) { - if (udv > udl[ip]) uda[ip] += udv - udl[ip] - } else if (!switched) { - uda[ip] += udv - } - udl[ip] = udv - } else { - udl[ip] = -1 - } - - known[ip] = 1 - srcof[ip] = s - # Sticky: a total accumulated from frozen counters stays understated for - # the rest of its life, so one degraded sample taints it until the counter - # is reset. Clearing the flag as soon as the next sample looked healthy - # would quietly re-present that same understated number as trustworthy. - if (dg == "true") degof[ip] = "true" - else if (!(ip in degof)) degof[ip] = "false" - seenat[ip] = now - live[ip] = 1 - srx[ip] = rx; stx[ip] = tx; stc[ip] = tcv; sud[ip] = udv -} -END { - for (ip in rxl) { - # Drop devices that have gone quiet AND carry no total, so the state - # file cannot grow without bound on a busy network. - if (!(ip in live) && rxa[ip] + txa[ip] + tca[ip] + uda[ip] == 0) continue - sv = srcof[ip]; if (sv == "") sv = "?" - dv = degof[ip]; if (dv == "") dv = "false" - printf "%s %.0f %.0f %.0f %.0f %d %.0f %.0f %.0f %.0f %s %d %s\n", \ - ip, rxa[ip], txa[ip], rxl[ip], txl[ip], seenat[ip], \ - tca[ip]+0, uda[ip]+0, tcl[ip], udl[ip], sv, since[ip], dv > tmp - } - close(tmp) - system("mv " tmp " " state " 2>/dev/null") - - printf "[" - n = 0 - for (ip in rxl) { - islive = 0 - if (ip in live) islive = 1 - if (!islive && !all) continue - - # A device absent from this sample has no CURRENT reading at all. - # Re-emitting its last one would hand a consumer a frozen number that - # looks live, with only the "live" flag to give it away — so the raw - # fields report -1, "not sampled", the same sentinel the protocol split - # uses. The accumulated totals below are unaffected: those are real - # history and stay exact. - crx = -1; ctx = -1; ctc = -1; cud = -1 - if (islive) { crx = srx[ip]; ctx = stx[ip]; ctc = stc[ip]; cud = sud[ip] } - - # -1, never 0, when the source cannot split by protocol: a UI that - # printed 0 would be claiming the device sent no TCP. Keyed off the - # stored baseline rather than this sample, so a quiet device under - # --all still reports the protocol history it does have. - # - # These MUST stay value tests. `(ip in tcl)` would be true for every - # device by the time control reaches here: the state-writing loop above - # reads tcl[ip] and tca[ip] by subscript, and merely referencing an awk - # array element creates it. A membership test would then report 0 bytes - # of TCP — a confident wrong answer — for devices that never had a - # protocol reading at all. - tt = -1; if (tcl[ip] >= 0) tt = tca[ip] + 0 - ut = -1; if (udl[ip] >= 0) ut = uda[ip] + 0 - # Hoisted out of the printf argument list rather than inlined as - # ternaries: BusyBox awk is the interpreter on the target and has been - # seen to mis-parse expressions in call arguments (see the note in - # trafficctl-metrics.sh), and a silently dropped statement here would - # corrupt the JSON for every consumer. - sv = srcof[ip]; if (sv == "") sv = "?" - lv = "false"; if (islive) lv = "true" - dv = degof[ip]; if (dv == "") dv = "false" - if (n > 0) printf "," - printf "{\"ip\":\"%s\",\"bytes_in\":%.0f,\"bytes_out\":%.0f,\"bytes_tcp\":%.0f,\"bytes_udp\":%.0f,\"src\":\"%s\",\"degraded\":%s,\"bytes_in_total\":%.0f,\"bytes_out_total\":%.0f,\"bytes_tcp_total\":%.0f,\"bytes_udp_total\":%.0f,\"total_since\":%d,\"live\":%s}", \ - ip, crx, ctx, ctc, cud, sv, dv, \ - rxa[ip], txa[ip], tt, ut, since[ip], lv - n++ - } - printf "]\n" -}' "$SAMPLE" diff --git a/luci-app-trafficctl/root/usr/local/bin/trafficctl-unblock.sh b/luci-app-trafficctl/root/usr/local/bin/trafficctl-unblock.sh deleted file mode 100755 index 23f3ca51b..000000000 --- a/luci-app-trafficctl/root/usr/local/bin/trafficctl-unblock.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# shellcheck shell=dash -# Unblock internet access for a device. -# Usage: trafficctl-unblock.sh [label] - -. /usr/local/bin/trafficctl-fw.sh - -IP="$1" -LABEL="${2:-block_$IP}" - -if [ -z "$IP" ]; then - echo '{"ok":false,"msg":"usage: trafficctl-unblock.sh [label]"}' - exit 1 -fi - -if ! tctl_validate_ip "$IP"; then - echo '{"ok":false,"msg":"invalid IP address"}' - exit 1 -fi - -COMMENT=$(tctl_block_comment "$IP") - -# Rules written before comments were derived from the address carry the caller's -# label, so a block placed from LuCI could not be removed from Telegram. -tctl_block_remove "$IP" "tctl_block_${LABEL}" 2>/dev/null - -if tctl_block_remove "$IP" "$COMMENT"; then - tctl_persist_enabled && tctl_persist_remove "block" "$IP" - tctl_log "unblock" "$IP" "$LABEL" "${TCTL_VIA:-cli}" "${TCTL_SRC:-local}" - echo "{\"ok\":true,\"msg\":\"internet unblocked for $IP\"}" -else - echo "{\"ok\":false,\"msg\":\"failed to unblock $IP\"}" - exit 1 -fi diff --git a/luci-app-trafficctl/root/www/cgi-bin/trafficctl-metrics b/luci-app-trafficctl/root/www/cgi-bin/trafficctl-metrics deleted file mode 100755 index 71767d013..000000000 --- a/luci-app-trafficctl/root/www/cgi-bin/trafficctl-metrics +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# Prometheus scrape endpoint. Inert unless trafficctl.metrics.enabled=1. -# -# This serves device names, addresses and traffic volumes with no LuCI session, -# so it stays disabled by default and supports an optional shared token: -# uci set trafficctl.metrics.token= -# scrape ... /cgi-bin/trafficctl-metrics?token= -# Prefer also restricting the port to the LAN in your firewall. - -TOKEN=$(uci -q get trafficctl.metrics.token 2>/dev/null) - -deny() { - printf 'Status: 403 Forbidden\r\n' - printf 'Content-Type: text/plain\r\n\r\n' - printf '%s\n' "$1" - exit 0 -} - -[ "$(uci -q get trafficctl.metrics.enabled 2>/dev/null)" = "1" ] \ - || deny "trafficctl metrics disabled" - -if [ -n "$TOKEN" ]; then - # QUERY_STRING is the only channel a stock Prometheus scrape config can use - # without custom headers. - case "&${QUERY_STRING}&" in - *"&token=${TOKEN}&"*) ;; - *) deny "invalid or missing token" ;; - esac -fi - -printf 'Content-Type: text/plain; version=0.0.4; charset=utf-8\r\n\r\n' -exec /usr/local/bin/trafficctl-metrics.sh diff --git a/smartdns/Makefile b/smartdns/Makefile index 1bb6c034d..1701bd8de 100644 --- a/smartdns/Makefile +++ b/smartdns/Makefile @@ -6,10 +6,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=smartdns -PKG_VERSION:=48.4 -PKG_RELEASE:=9 +PKG_VERSION:=48.5_rc1 +PKG_RELEASE:=10 -PKG_SOURCE_VERSION:=21c940edc65520849ba03544c5cf8d9cf326e680 +PKG_SOURCE_VERSION:=320061d07c3d559a2fa734b2b4bc2891c86f4422 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/pymumu/smartdns/tar.gz PKG_SOURCE_URL_FILE:=$(PKG_SOURCE_VERSION) diff --git a/sunpanel/Makefile b/sunpanel/Makefile index cd9ee0a89..b1287eb0e 100644 --- a/sunpanel/Makefile +++ b/sunpanel/Makefile @@ -7,16 +7,22 @@ include $(TOPDIR)/rules.mk -PKG_ARCH_sunpanel:=$(ARCH) - PKG_NAME:=sunpanel -PKG_VERSION:=1.3.1 -PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/ +PKG_VERSION:=1.8.1 +PKG_RELEASE:=2 + +# v1.8.1 official release assets are per-arch (linux musl static binary) +ifeq ($(ARCH),x86_64) + GO_ARCH:=amd64 +else ifeq ($(ARCH),aarch64) + GO_ARCH:=arm64 +endif + +PKG_SOURCE:=sun-panel_v$(PKG_VERSION)_linux_musl_$(GO_ARCH).tar.gz +PKG_SOURCE_URL:=https://github.com/hslr-s/sun-panel/releases/download/v$(PKG_VERSION) PKG_HASH:=skip -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-binary-$(PKG_VERSION) +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 @@ -28,7 +34,7 @@ define Package/$(PKG_NAME) CATEGORY:=Network SUBMENU:=Web Servers/Proxies TITLE:=SunPanel, NAS navigation panel. - DEPENDS:=@(x86_64||aarch64||arm) +ubus +uci +bash + DEPENDS:=@(x86_64||aarch64) +ubus +uci +bash URL:=https://sun-panel-doc.enianteam.com/ endef @@ -48,6 +54,12 @@ if [ -z "$${IPKG_INSTROOT}" ]; then fi endef +# The official tarball has one top-level dir, strip it so files land in PKG_BUILD_DIR +#define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(TAR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) +endef + define Build/Configure endef @@ -55,8 +67,9 @@ define Build/Compile endef define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/usr/libexec/istorec $(1)/usr/share/sunpanel $(1)/etc/uci-defaults - $(INSTALL_BIN) $(PKG_BUILD_DIR)/sunpanelbin.$(PKG_ARCH_sunpanel) $(1)/usr/sbin/sunpanelbin + $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/usr/libexec/istorec $(1)/usr/share/sunpanel $(1)/etc/uci-defaults $(1)/www/luci-static + $(INSTALL_BIN) $(PKG_BUILD_DIR)/sun-panel $(1)/usr/sbin/sunpanelbin + $(CP) $(PKG_BUILD_DIR)/web $(1)/www/luci-static/sunpanel $(INSTALL_BIN) ./files/sunpanel.init $(1)/etc/init.d/sunpanel $(CP) ./files/sunpanel_conf.lua $(1)/usr/libexec/istorec/ $(CP) ./files/conf.temp $(1)/usr/share/sunpanel/ diff --git a/sunpanel/files/conf.temp b/sunpanel/files/conf.temp index 255c1aeca..7338a23ae 100644 --- a/sunpanel/files/conf.temp +++ b/sunpanel/files/conf.temp @@ -4,19 +4,33 @@ [base] # Web run port. Default:3002 http_port=<%=port%> +# Web run https port. Default:3003 +https_port=3003 +# Web run address Default: 0.0.0.0 +http_address=0.0.0.0 # Database driver [mysql/sqlite(Default)] database_drive=sqlite # Cache driver [redis/memory(Default)] cache_drive=memory # Queue driver [redis/memory(Default)] queue_drive=memory -# Web Paths -web_path=/www/luci-static/sunpanel -# File cache path (Please start with the current path './') -# Warning: The files that have been uploaded after the modification cannot be accessed +# File cache path source_path=<%=config_path%>/uploads -# File cache path. +# File cache temp path source_temp_path=<%=config_path%>/runtime/temp +# Front -end path. +web_path=/www/luci-static/sunpanel +# Custom JS and CSS. +custom_style_path=<%=config_path%>/custom +# Token expires (hour). defalut 168 +token_expires=168 + +# ============================== +# SSL certificate configuration +# ============================== +[cert] +cert_path= +key_path= # ====================== # Mysql database driver diff --git a/sunpanel/files/sunpanel.init b/sunpanel/files/sunpanel.init old mode 100755 new mode 100644 index 5991f6b85..f863a2b7b --- a/sunpanel/files/sunpanel.init +++ b/sunpanel/files/sunpanel.init @@ -1,30 +1,26 @@ #!/bin/sh /etc/rc.common - START=99 USE_PROCD=1 NAME=sunpanel - + get_config() { config_get_bool enabled $1 enabled 0 config_get config_path $1 config_path } - -start_service() { +start_service() { config_load "$NAME" config_foreach get_config "$NAME" [ $enabled != 1 ] && return 1 mkdir -p "$config_path" lua /usr/libexec/istorec/sunpanel_conf.lua $NAME /usr/share/$NAME/conf.temp $config_path/conf.ini - procd_open_instance procd_set_param file $config_path/conf.ini - procd_set_param command /usr/sbin/sunpanelbin -cfgPath $config_path + # v1.8.1: startup flag changed from -cfgPath to -config-path + procd_set_param command /usr/sbin/sunpanelbin -config-path $config_path procd_set_param stderr 1 procd_set_param respawn procd_close_instance } - service_triggers() { procd_add_reload_trigger "$NAME" } - diff --git a/xray-core/Makefile b/xray-core/Makefile index 1fac315bd..21734cd1e 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=26.10.31 -PKG_RELEASE:=29 +PKG_VERSION:=26.11.9 +PKG_RELEASE:=30 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)?