mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-26 18:52:51 +08:00
🎨 Sync 2026-10-09 01:04:17
This commit is contained in:
1 parent
eb76e89012
commit
812da7f08b
154 files changed
+10613
-3987
No files matched your search
+4
-4
@@ -1,17 +1,17 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=clashoo
|
||||
PKG_SHORT_SHA:=9f053c4
|
||||
PKG_COMMIT_DATE:=2026.10.02
|
||||
PKG_SHORT_SHA:=e4dd968
|
||||
PKG_COMMIT_DATE:=2026.10.08
|
||||
|
||||
PKG_VERSION:=$(PKG_COMMIT_DATE)~$(PKG_SHORT_SHA)
|
||||
PKG_RELEASE:=5
|
||||
PKG_RELEASE:=6
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-alpha-$(PKG_SHORT_SHA).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-alpha-$(PKG_SHORT_SHA)
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-alpha-$(PKG_SHORT_SHA)
|
||||
PKG_SOURCE_URL:=https://github.com/kenzok8/openwrt-clashoo/releases/download/mihomo-src
|
||||
PKG_SOURCE_VERSION:=216c1655025e1ede60cba790761d61315ced3e5d
|
||||
PKG_SOURCE_VERSION:=df7619e949a76f98a3b23516e919e40931090220
|
||||
PKG_HASH:=skip
|
||||
PKG_BUILD_VERSION:=alpha-$(PKG_SHORT_SHA)
|
||||
|
||||
|
||||
+2
-2
@@ -8,8 +8,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=go-ethereum
|
||||
PKG_VERSION:=1.17.7
|
||||
PKG_RELEASE:=11
|
||||
PKG_VERSION:=1.17.8
|
||||
PKG_RELEASE:=12
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/ethereum/go-ethereum/tar.gz/v${PKG_VERSION}?
|
||||
|
||||
+6
-5
@@ -3,17 +3,17 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=honk
|
||||
PKG_VERSION:=2026.10.7_pre1
|
||||
PKG_RELEASE:=12
|
||||
PKG_VERSION:=2026.10.8_pre1
|
||||
PKG_RELEASE:=13
|
||||
|
||||
# Raw upstream release tag. It keeps the dots in qualifiers (e.g. v0.0.1.beta.49)
|
||||
# because that is what the GitHub release asset name uses.
|
||||
HONK_RELEASE_TAG:=debug.2026.10.7.native-api.1
|
||||
HONK_RELEASE_TAG:=debug.2026.10.8.native-api.1
|
||||
HONK_ASSET_TAG:=debug
|
||||
|
||||
# SHA256 of each release tarball, kept in sync by scripts/update_honk_version.sh.
|
||||
HONK_HASH_X86_64:=41114fc58c069c5dc2550dc6563755a2bc4b1f9a52eec128300bb4c3ad23fd80
|
||||
HONK_HASH_AARCH64:=2aada1c945ace03c6403cc587940b4eddf31cb0846ec31e8318efbd5317b36b7
|
||||
HONK_HASH_X86_64:=edf2ff65507e89bc32d3fe643c3efa89ac35537931e80f9bce882488a3f289f4
|
||||
HONK_HASH_AARCH64:=11e6552df24fe9437903cdc00ac54334edf73f3aebce9c3f3e923ec1b690d4cb
|
||||
|
||||
PKG_LICENSE:=AGPL-3.0-only
|
||||
PKG_LICENSE_FILE:=LICENSE
|
||||
@@ -70,6 +70,7 @@ endef
|
||||
define Package/honk/conffiles
|
||||
/etc/honk/config.dae
|
||||
/etc/honk/config.d/
|
||||
/etc/honk/state/
|
||||
/etc/config/honk
|
||||
endef
|
||||
|
||||
|
||||
@@ -77,6 +77,11 @@ start_service() {
|
||||
|
||||
config_get config_file "config" "config_file" "/etc/honk/config.dae"
|
||||
|
||||
if [ ! -x "$PROG" ]; then
|
||||
logger -t honk "not starting: $PROG is missing or not executable"
|
||||
return 1
|
||||
fi
|
||||
|
||||
set_chmod_640
|
||||
cleanup_netns
|
||||
hijack_resolv_conf
|
||||
@@ -112,6 +117,6 @@ hot_reload() {
|
||||
if /etc/init.d/honk running; then
|
||||
"$PROG" reload
|
||||
else
|
||||
/etc/init.d/honk restart
|
||||
start
|
||||
fi
|
||||
}
|
||||
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-argon-config
|
||||
PKG_VERSION:=1.0
|
||||
PKG_RELEASE:=8
|
||||
PKG_RELEASE:=9
|
||||
|
||||
PKG_MAINTAINER:=jerrykuku <jerrykuku@qq.com>
|
||||
|
||||
|
||||
@@ -51,6 +51,12 @@ and manage the background pictures and videos.
|
||||
<img src="https://raw.githubusercontent.com/jerrykuku/staff/master/argon2.gif">
|
||||
</div>
|
||||
|
||||
## Login page styles
|
||||
|
||||
In **System → Argon Config**, choose **Classic sidebar** (default) or **Centered card**. The preview updates as you select a style. Save the settings, then reopen the login page to see the change. Wallpaper, light/dark mode, blur and transparency settings apply to both layouts.
|
||||
|
||||
This feature requires a theme version supporting `login_style`. Update the theme and this plugin together. Existing configurations without this option continue to use the classic layout.
|
||||
|
||||
## Branch Introduction
|
||||
|
||||
There are currently two main branches that are adapted to different versions of the **OpenWrt** source code.
|
||||
|
||||
@@ -49,6 +49,12 @@
|
||||
<img src="https://raw.githubusercontent.com/jerrykuku/staff/master/argon2.gif">
|
||||
</div>
|
||||
|
||||
## 登录页样式
|
||||
|
||||
进入 **系统 → Argon 主题设置**,选择默认的**经典侧栏**或**居中卡片**。切换选项时会更新预览缩略图;保存后,重新打开登录页即可看到变化。两种布局共用壁纸、深浅色、模糊度和透明度设置。
|
||||
|
||||
此功能需要支持 `login_style` 的主题版本,请同时更新主题和本插件。已有配置未设置该选项时,继续使用经典布局。
|
||||
|
||||
## Branch Introduction
|
||||
|
||||
目前有两个主要的分支,适应于不同版本的**OpenWrt**源代码。
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" width="320" height="180">
|
||||
<defs><linearGradient id="sky" x2="1" y2="1"><stop stop-color="#dbeafe"/><stop offset="1" stop-color="#818cf8"/></linearGradient></defs>
|
||||
<rect width="320" height="180" fill="url(#sky)"/>
|
||||
<circle cx="260" cy="38" r="15" fill="#fef3c7"/>
|
||||
<path d="M0 130 72 76 148 140 237 66 320 124V180H0Z" fill="#6366a0"/>
|
||||
<path d="M0 164 111 110 207 158 280 115 320 145V180H0Z" fill="#414679"/>
|
||||
<rect x="104" y="27" width="112" height="126" rx="6" fill="#f4f5f7" fill-opacity=".94"/><g transform="translate(118 41)">
|
||||
<rect x="13" width="16" height="16" rx="4" fill="#5e72e4"/>
|
||||
<circle cx="21" cy="8" r="4" fill="none" stroke="#fff" stroke-width="2"/>
|
||||
<rect x="37" y="5" width="34" height="5" rx="2" fill="#32325d"/>
|
||||
<rect x="7" y="32" width="70" height="3" rx="1.5" fill="#8898aa"/><rect x="7" y="50" width="70" height="3" rx="1.5" fill="#8898aa"/><rect x="7" y="67" width="70" height="16" rx="3" fill="#5e72e4"/><rect x="26" y="93" width="32" height="2" rx="1" fill="#8898aa"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,13 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" width="320" height="180">
|
||||
<defs><linearGradient id="sky" x2="1" y2="1"><stop stop-color="#dbeafe"/><stop offset="1" stop-color="#818cf8"/></linearGradient></defs>
|
||||
<rect width="320" height="180" fill="url(#sky)"/>
|
||||
<circle cx="260" cy="38" r="15" fill="#fef3c7"/>
|
||||
<path d="M0 130 72 76 148 140 237 66 320 124V180H0Z" fill="#6366a0"/>
|
||||
<path d="M0 164 111 110 207 158 280 115 320 145V180H0Z" fill="#414679"/>
|
||||
<rect x="20" width="112" height="180" fill="#f4f5f7" fill-opacity=".94"/><g transform="translate(34 20)">
|
||||
<rect x="13" width="16" height="16" rx="4" fill="#5e72e4"/>
|
||||
<circle cx="21" cy="8" r="4" fill="none" stroke="#fff" stroke-width="2"/>
|
||||
<rect x="37" y="5" width="34" height="5" rx="2" fill="#32325d"/>
|
||||
<rect x="7" y="48" width="70" height="3" rx="1.5" fill="#8898aa"/><rect x="7" y="68" width="70" height="3" rx="1.5" fill="#8898aa"/><rect x="7" y="92" width="70" height="16" rx="3" fill="#5e72e4"/><rect x="26" y="139" width="32" height="2" rx="1" fill="#8898aa"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -59,13 +59,45 @@ return view.extend({
|
||||
s.addremove = false;
|
||||
s.anonymous = true;
|
||||
|
||||
var loginStyles = {
|
||||
classic: _('Classic sidebar'),
|
||||
centered: _('Centered card')
|
||||
};
|
||||
o = s.option(form.ListValue, 'login_style', _('Login page style'),
|
||||
_('Applies the next time you open the login page.'));
|
||||
o.value('classic', loginStyles.classic);
|
||||
o.value('centered', loginStyles.centered);
|
||||
o.default = 'classic';
|
||||
o.rmempty = false;
|
||||
o.renderWidget = function(section_id, option_index, cfgvalue) {
|
||||
var style = cfgvalue === 'centered' ? 'centered' : 'classic';
|
||||
return E('div', {}, [
|
||||
this.super('renderWidget', [section_id, option_index, style]),
|
||||
E('img', {
|
||||
'id': this.cbid(section_id) + '-preview',
|
||||
'src': L.resource('argon-config/login-' + style + '.svg'),
|
||||
'alt': loginStyles[style],
|
||||
'width': 320,
|
||||
'height': 180,
|
||||
'style': 'display:block;max-width:100%;height:auto;margin-top:1rem;border-radius:.5rem'
|
||||
})
|
||||
]);
|
||||
};
|
||||
o.onchange = function(ev, section_id, value) {
|
||||
var preview = document.getElementById(this.cbid(section_id) + '-preview');
|
||||
var style = value === 'centered' ? 'centered' : 'classic';
|
||||
if (preview) {
|
||||
preview.src = L.resource('argon-config/login-' + style + '.svg');
|
||||
preview.alt = loginStyles[style];
|
||||
}
|
||||
};
|
||||
|
||||
o = s.option(form.ListValue, 'online_wallpaper', _('Wallpaper source'));
|
||||
o.value('default', _('Default'));
|
||||
o.value('none', _('Built-in'));
|
||||
o.value('bing', _('Bing'));
|
||||
o.value('unsplash', _('Unsplash'));
|
||||
o.value('wallhaven', _('Wallhaven'));
|
||||
o.default = 'default';
|
||||
o.default = 'bing';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.option(form.ListValue, 'mode', _('Theme mode'));
|
||||
|
||||
@@ -192,3 +192,19 @@ msgstr "[الوضع الفاتح] الشفافية"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "قيمة لون صالحة بصيغة HEX"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "نمط صفحة تسجيل الدخول"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "شريط جانبي كلاسيكي"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "بطاقة في المنتصف"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "يُطبّق عند فتح صفحة تسجيل الدخول في المرة القادمة."
|
||||
@@ -192,3 +192,19 @@ msgstr "[Heller Modus] Transparenz"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "gültiger HEX-Farbwert"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Stil der Anmeldeseite"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Klassische Seitenleiste"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Zentrierte Karte"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Wird beim nächsten Öffnen der Anmeldeseite angewendet."
|
||||
@@ -194,3 +194,19 @@ msgstr "[Modo claro] Transparencia"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "un valor de color HEX válido"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Estilo de la página de inicio de sesión"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Barra lateral clásica"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Tarjeta centrada"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Se aplica la próxima vez que abra la página de inicio de sesión."
|
||||
@@ -192,3 +192,19 @@ msgstr "[Mode clair] Transparence"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "une valeur de couleur HEX valide"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Style de la page de connexion"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Barre latérale classique"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Carte centrée"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "S’applique à la prochaine ouverture de la page de connexion."
|
||||
@@ -192,3 +192,19 @@ msgstr "[Modalità chiara] Trasparenza"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "un valore di colore HEX valido"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Stile della pagina di accesso"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Barra laterale classica"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Scheda centrata"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Si applica alla prossima apertura della pagina di accesso."
|
||||
@@ -192,3 +192,19 @@ msgstr "[ライトモード] 透明度"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "有効な 16 進数のカラーコード"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "ログインページのスタイル"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "クラシックサイドバー"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "中央カード"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "次にログインページを開いたときに適用されます。"
|
||||
@@ -192,3 +192,19 @@ msgstr "[라이트 모드] 투명도"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "유효한 16진수 색상 값"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "로그인 페이지 스타일"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "클래식 사이드바"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "가운데 카드"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "다음에 로그인 페이지를 열 때 적용됩니다."
|
||||
@@ -192,3 +192,19 @@ msgstr "[Lichte modus] Transparantie"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "een geldige HEX-kleurwaarde"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Stijl van de aanmeldpagina"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Klassieke zijbalk"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Gecentreerde kaart"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Wordt toegepast wanneer u de aanmeldpagina opnieuw opent."
|
||||
@@ -191,3 +191,19 @@ msgstr "[Jasny motyw] Przezroczystość"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "prawidłowy kolor w formacie HEX"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Styl strony logowania"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Klasyczny panel boczny"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Wyśrodkowana karta"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Zmiana zostanie zastosowana przy następnym otwarciu strony logowania."
|
||||
@@ -194,3 +194,19 @@ msgstr "[Modo claro] Transparência"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "um valor de cor HEX válido"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Estilo da página de login"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Barra lateral clássica"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Cartão centralizado"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Aplicado na próxima vez que você abrir a página de login."
|
||||
@@ -191,3 +191,19 @@ msgstr "[Светлая тема] Прозрачность"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "корректное значение HEX-цвета"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Стиль страницы входа"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Классическая боковая панель"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Карточка по центру"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Применяется при следующем открытии страницы входа."
|
||||
@@ -184,3 +184,19 @@ msgstr ""
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr ""
|
||||
@@ -192,3 +192,19 @@ msgstr "[Açık mod] Saydamlık"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "geçerli bir HEX renk değeri"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Giriş sayfası stili"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Klasik kenar çubuğu"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Ortalanmış kart"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Giriş sayfasını bir sonraki açışınızda uygulanır."
|
||||
@@ -192,3 +192,19 @@ msgstr "[Світлий режим] Прозорість"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "коректне значення кольору у форматі HEX"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Стиль сторінки входу"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Класична бічна панель"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Картка по центру"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Застосовується під час наступного відкриття сторінки входу."
|
||||
@@ -192,3 +192,19 @@ msgstr "[Chế độ sáng] Độ trong suốt"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "mã màu HEX hợp lệ"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "Kiểu trang đăng nhập"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "Thanh bên cổ điển"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "Thẻ ở giữa"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "Áp dụng vào lần tiếp theo bạn mở trang đăng nhập."
|
||||
@@ -193,3 +193,19 @@ msgstr "[亮色模式] 透明度"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "有效十六进制颜色值"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "登录页样式"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "经典侧栏"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "居中卡片"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "下次打开登录页时生效。"
|
||||
@@ -193,3 +193,19 @@ msgstr "[淺色模式] 透明度"
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js:107
|
||||
msgid "valid HEX color value"
|
||||
msgstr "有效的十六進制顏色值"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Login page style"
|
||||
msgstr "登入頁面樣式"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Classic sidebar"
|
||||
msgstr "經典側欄"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Centered card"
|
||||
msgstr "置中卡片"
|
||||
|
||||
#: applications/luci-app-argon-config/htdocs/luci-static/resources/view/argon-config.js
|
||||
msgid "Applies the next time you open the login page."
|
||||
msgstr "下次開啟登入頁面時生效。"
|
||||
@@ -1,10 +1,11 @@
|
||||
config global
|
||||
option login_style 'classic'
|
||||
option primary '#5e72e4'
|
||||
option dark_primary '#483d8b'
|
||||
option blur '10'
|
||||
option blur_dark '10'
|
||||
option transparency '0.5'
|
||||
option transparency_dark '0.5'
|
||||
option mode 'dark'
|
||||
option online_wallpaper 'default'
|
||||
option mode 'normal'
|
||||
option online_wallpaper 'bing'
|
||||
|
||||
@@ -13,8 +13,13 @@ String.prototype.format = function(...values) {
|
||||
String.format = format => format;
|
||||
|
||||
function fixture(options = {}) {
|
||||
const state = { notifications: [], reloads: 0, cleanups: [], events: [], ...options };
|
||||
const E = (tag, attrs, children) => ({ tag, attrs, children });
|
||||
const state = { notifications: [], reloads: 0, cleanups: [], events: [], nodes: {}, ...options };
|
||||
const E = (tag, attrs, children) => {
|
||||
const node = { tag, attrs, children };
|
||||
if (attrs && attrs.id)
|
||||
state.nodes[attrs.id] = node;
|
||||
return node;
|
||||
};
|
||||
const ui = {
|
||||
changes: { apply() { state.events.push('apply'); } },
|
||||
addNotification(title, node) { state.notifications.push(node.attrs); },
|
||||
@@ -32,7 +37,15 @@ function fixture(options = {}) {
|
||||
}
|
||||
section() {
|
||||
const section = { map: this, option: (type, name) => {
|
||||
const option = { map: this, name, value() {} };
|
||||
const option = {
|
||||
map: this, name, choices: {},
|
||||
value(key, label) { this.choices[key] = label; },
|
||||
cbid(section) { return 'cbid.argon.' + section + '.' + name; },
|
||||
super(method, args) {
|
||||
assert.equal(method, 'renderWidget');
|
||||
return { value: args[2], disabled: this.map.readonly };
|
||||
}
|
||||
};
|
||||
this.options.push(option);
|
||||
return option;
|
||||
} };
|
||||
@@ -55,10 +68,11 @@ function fixture(options = {}) {
|
||||
list() { return state.listError ? Promise.reject(state.listError) : Promise.resolve([{ name: 'background.jpg', size: 10, mtime: 0 }]); },
|
||||
remove(filename) { state.cleanups.push(filename); return Promise.resolve(); }
|
||||
};
|
||||
const L = { bind: (fn, context) => fn.bind(context), resolveDefault: (promise, value) => Promise.resolve(promise).catch(() => value) };
|
||||
state.view = new Function('form', 'fs', 'rpc', 'uci', 'ui', 'view', 'L', 'E', '_', 'cbi_update_table', 'location', source)(
|
||||
const L = { bind: (fn, context) => fn.bind(context), resolveDefault: (promise, value) => Promise.resolve(promise).catch(() => value), resource: name => '/luci-static/resources/' + name };
|
||||
state.view = new Function('form', 'fs', 'rpc', 'uci', 'ui', 'view', 'L', 'E', '_', 'cbi_update_table', 'location', 'document', source)(
|
||||
form, fileApi, rpc, { load: () => Promise.resolve() }, ui, { extend: value => value }, L, E,
|
||||
value => value, (table, rows) => { state.rows = rows; }, { reload() { state.reloads++; } }
|
||||
value => value, (table, rows) => { state.rows = rows; }, { reload() { state.reloads++; } },
|
||||
{ getElementById: id => state.nodes[id] }
|
||||
);
|
||||
state.render = async () => state.view.render(await state.view.load());
|
||||
state.button = name => state.map.options.find(option => option.name === name);
|
||||
@@ -76,6 +90,30 @@ test('apply starts only after saving finishes', async () => {
|
||||
assert.deepEqual(state.events, ['save-start', 'save-complete', 'apply']);
|
||||
});
|
||||
|
||||
test('login style selector previews supported values and falls back for old configs', async () => {
|
||||
const state = fixture({ readonly: true });
|
||||
await state.render();
|
||||
const option = state.button('login_style');
|
||||
assert.deepEqual(Object.keys(option.choices), ['classic', 'centered']);
|
||||
assert.equal(option.default, 'classic');
|
||||
assert.equal(option.rmempty, false);
|
||||
for (const value of [undefined, '', 'classic', 'centered', '../invalid']) {
|
||||
const style = value === 'centered' ? 'centered' : 'classic';
|
||||
const node = option.renderWidget('global', 0, value);
|
||||
assert.equal(node.children[0].value, style);
|
||||
assert.equal(node.children[0].disabled, true);
|
||||
assert.equal(node.children[1].attrs.src, '/luci-static/resources/argon-config/login-' + style + '.svg');
|
||||
assert.equal(node.children[1].attrs.alt, option.choices[style]);
|
||||
assert.ok(fs.existsSync(path.join(__dirname, '../htdocs/luci-static/resources/argon-config/login-' + style + '.svg')));
|
||||
}
|
||||
const preview = state.nodes[option.cbid('global') + '-preview'];
|
||||
for (const style of ['centered', 'classic']) {
|
||||
option.onchange(null, 'global', style);
|
||||
assert.equal(preview.src, '/luci-static/resources/argon-config/login-' + style + '.svg');
|
||||
assert.equal(preview.alt, option.choices[style]);
|
||||
}
|
||||
});
|
||||
|
||||
test('failed saves are reported and never applied', async () => {
|
||||
const state = fixture({ saveTask: Promise.reject(new Error('validation failed')) });
|
||||
await state.render();
|
||||
|
||||
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-clashoo
|
||||
PKG_VERSION:=1.31.0
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
PKG_MAINTAINER:=kenzok8
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
|
||||
@@ -134,8 +134,10 @@
|
||||
|
||||
.cl-wrap .cl-status-kernel .cl-core-btn {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
min-height: 0 !important;
|
||||
line-height: 24px !important;
|
||||
min-width: 60px;
|
||||
margin-left: 0;
|
||||
padding: 0 10px;
|
||||
border: 0;
|
||||
border-radius: 6px;
|
||||
@@ -146,6 +148,8 @@
|
||||
color: var(--cl-label-muted);
|
||||
opacity: 0.6;
|
||||
cursor: pointer;
|
||||
text-transform: none;
|
||||
transform: none !important;
|
||||
transition: background-color 0.18s ease, color 0.18s ease, opacity 0.18s ease;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ var CSS = [
|
||||
'.cl-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}',
|
||||
'.cl-card .lbl{font-size:11px;opacity:.55;margin:0}',
|
||||
'.cl-card-tools{display:flex;align-items:center;gap:6px}',
|
||||
'.cl-icon-btn{border:0;background:transparent;padding:0;width:16px;height:16px;line-height:16px;font-size:13px;opacity:.55;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:inherit}',
|
||||
'.cl-icon-btn{border:0;background:transparent;padding:0!important;margin-left:0;width:16px!important;height:16px!important;min-height:0!important;line-height:16px!important;font-size:13px;opacity:.55;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:inherit;text-transform:none;transform:none!important}',
|
||||
'.cl-icon-btn:hover{opacity:.9}',
|
||||
'.cl-icon-btn.is-loading{animation:cl-spin 1s linear infinite;pointer-events:none;opacity:.75}',
|
||||
'.cl-card .val{font-size:11px;font-weight:500;word-break:break-all}',
|
||||
@@ -40,7 +40,10 @@ var CSS = [
|
||||
'.cl-badge-sync{background:rgba(128,128,128,.08);color:rgba(128,128,128,.92);border-color:rgba(128,128,128,.35)}',
|
||||
'.cl-service-tools{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}',
|
||||
'.cl-service-label{font-size:11px;font-weight:600;opacity:.62}',
|
||||
'.cl-service-switch{position:relative;width:48px;height:26px;border:0;border-radius:999px;background:rgba(128,128,128,.22);padding:2px;box-shadow:none;cursor:pointer;transition:background .18s ease,opacity .18s ease}',
|
||||
/* KuCAT 主题给所有 <button> 强加 width:auto!important / min-height:2.2rem!important /
|
||||
text-transform:uppercase / hover translateY,会把 48×26 开关、16×16 图标按钮等精确
|
||||
几何控件撑坏(宽塌、变竖条);这里用 !important 固定几何并复位文本与位移。 */
|
||||
'.cl-service-switch{position:relative;width:48px!important;height:26px!important;min-height:0!important;margin:0;padding:2px;border:0!important;border-radius:999px;background:rgba(128,128,128,.22);box-shadow:none!important;cursor:pointer;transition:background .18s ease,opacity .18s ease;text-transform:none;transform:none!important;line-height:1.4!important}',
|
||||
'.cl-service-switch .cl-service-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 1px 4px rgba(0,0,0,.18);transition:transform .18s ease,background .18s ease}',
|
||||
'.cl-service-switch.is-on{background:rgba(74,160,101,.52)}',
|
||||
'.cl-service-switch.is-on .cl-service-knob{transform:translateX(22px)}',
|
||||
|
||||
@@ -41,7 +41,7 @@ LUCI_DEPENDS:= \
|
||||
|
||||
PKG_NAME:=luci-app-homeproxy-pro
|
||||
PKG_VERSION:=28.10.1.14
|
||||
PKG_RELEASE:=25
|
||||
PKG_RELEASE:=26
|
||||
|
||||
LUCI_BASENAME:=homeproxy-pro
|
||||
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1 +1 @@
|
||||
2026-09-24 327d9639f80a6f4524f710076e6c43945d187430
|
||||
2026-10-08 32bbb6c45c63a491c571f98cd9d863d7fd6771dc
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1 +1 @@
|
||||
2026-09-24 327d9639f80a6f4524f710076e6c43945d187430
|
||||
2026-10-08 32bbb6c45c63a491c571f98cd9d863d7fd6771dc
|
||||
@@ -57,9 +57,9 @@ pick_mirror() {
|
||||
# GitHub raw serves paths from the repo root, not the
|
||||
# /gh/<repo>@<sha>/<file> shape jsdelivr uses. The caller
|
||||
# passes the suffix already split out, so we re-stitch it.
|
||||
local probe_url="https://$base/$listrepo/$list_sha/$listname"
|
||||
local probe_url="https://$base/$listrepo/$list_sha/$api_path"
|
||||
else
|
||||
local probe_url="https://$base/gh/$listrepo@$list_sha/$listname"
|
||||
local probe_url="https://$base/gh/$listrepo@$list_sha/$api_path"
|
||||
fi
|
||||
# uclient-fetch, not wget. wget is whichever implementation the
|
||||
# buildroot compiled, and the two share almost no options: on a
|
||||
@@ -82,11 +82,116 @@ pick_mirror() {
|
||||
return 1
|
||||
}
|
||||
|
||||
# Put a verified download in place as $listtype.<ext>.
|
||||
#
|
||||
# With a `family` set the upstream file is one combined list - cn.list carries
|
||||
# both address families - and each listtype is one half of it, so the bytes are
|
||||
# split rather than moved. That also overrides the "<listtype>.<upstream
|
||||
# extension>" naming: cn.list would otherwise land as china_ip4.list, while
|
||||
# every reader - firewall_post.ut's nft set and china_ip_ruleset.uc's generated
|
||||
# rule-set - has always read .txt. Splitting writes $listtype.txt directly, so
|
||||
# nothing downstream changes name or location.
|
||||
#
|
||||
# The split writes a sibling temp file and renames it, so a half-written list
|
||||
# can never become the installed one. An empty half is refused: an empty
|
||||
# china_ip6.txt turns v6_handled off outright (see the comment on
|
||||
# cn_ipv6_ready in firewall_post.ut), and a router that silently stops proxying
|
||||
# IPv6 is worse than one that keeps the list it had.
|
||||
#
|
||||
# The family test is "does the address contain a colon", which is exactly what
|
||||
# separates an IPv6 CIDR from an IPv4 one, and it is what the rest of the
|
||||
# pipeline already keys off - see isValidCIDR() in homeproxy-pro.uc.
|
||||
install_download() {
|
||||
local src="$1"
|
||||
local listtype="$2"
|
||||
local listname="$3"
|
||||
local family="$4"
|
||||
|
||||
if [ -z "$family" ]; then
|
||||
mv -f "$src" "$RESOURCES_DIR/$listtype.${listname##*.}"
|
||||
return $?
|
||||
fi
|
||||
|
||||
local dest="$RESOURCES_DIR/$listtype.txt"
|
||||
if ! awk -v want="$family" '
|
||||
NF == 0 { next }
|
||||
{ if ((index($1, ":") > 0) == (want == "v6")) print }
|
||||
' "$src" > "$dest.hp-new"; then
|
||||
rm -f "$dest.hp-new"
|
||||
return 1
|
||||
fi
|
||||
if [ ! -s "$dest.hp-new" ]; then
|
||||
rm -f "$dest.hp-new"
|
||||
log "[$(to_upper "$listtype")] Refusing to install: $listname carries no $family entries."
|
||||
return 1
|
||||
fi
|
||||
mv -f "$dest.hp-new" "$dest"
|
||||
}
|
||||
|
||||
# Re-render the firewall's mainland sets from the list that just changed.
|
||||
#
|
||||
# The route side goes live on its own - sing-box watches the generated
|
||||
# rule-set with fswatch - but homeproxy_mainland_addr_v4/v6 live in
|
||||
# fw4_post.nft, which firewall_post.ut renders and only a start or a restart
|
||||
# puts in place. reload does not re-render it (measured on the device: the
|
||||
# command returns 0, the file's mtime does not move, the set keeps its old
|
||||
# elements). So the two halves would read the same file on different days,
|
||||
# and the gap grows with every nightly update.
|
||||
#
|
||||
# The direction that matters is the one where the kernel is *ahead* of the
|
||||
# file: a segment the list has since dropped still matches the set, and
|
||||
# `ip daddr @homeproxy_mainland_addr_v4 counter return` returns before the
|
||||
# redirect - so the connection never reaches the route side that would have
|
||||
# corrected it. The other direction (the set missing a newly added segment)
|
||||
# costs one extra hop into sing-box and still routes correctly.
|
||||
#
|
||||
# This mirrors hp_firewall_apply() in runtime/firewall.sh minus the pre-script
|
||||
# and the upnp restore: only the post-template carries these sets, and neither
|
||||
# of the other two has anything to do with a resource list. It deliberately
|
||||
# does NOT test client_enabled the way start_service does - that check reads
|
||||
# a routing-mode-dependent helper, and duplicating it here would let the two
|
||||
# copies drift. With no client the template renders what start would have
|
||||
# rendered, so re-rendering is a no-op rather than a risk.
|
||||
#
|
||||
# Every failure is non-fatal on purpose. A list that is installed but not yet
|
||||
# in the firewall is the one state this script is allowed to leave behind:
|
||||
# the next nightly run, or the next service start, closes it. Failing the
|
||||
# update instead would turn a cosmetic lag into a resource that can never
|
||||
# refresh.
|
||||
sync_firewall_sets() {
|
||||
local dest="$RUN_DIR/fw4_post.nft"
|
||||
|
||||
if ! utpl -S "$SCRIPT_DIR/firewall_post.ut" > "$dest.new" 2>"/dev/null"; then
|
||||
rm -f "$dest.new"
|
||||
log "[$(to_upper "$listtype")] Warning: could not re-render fw4_post.nft; the firewall keeps its previous ruleset. Run /etc/init.d/homeproxy-pro restart to pick this list up."
|
||||
return 1
|
||||
fi
|
||||
mv -f "$dest.new" "$dest"
|
||||
|
||||
if ! fw4 reload >"/dev/null" 2>&1; then
|
||||
log "[$(to_upper "$listtype")] Warning: fw4 reload failed; the new set is rendered but the running ruleset was not updated. Run /etc/init.d/homeproxy-pro restart."
|
||||
return 1
|
||||
fi
|
||||
log "[$(to_upper "$listtype")] Firewall mainland sets re-rendered."
|
||||
}
|
||||
|
||||
check_list_update() {
|
||||
local listtype="$1"
|
||||
local listrepo="$2"
|
||||
local listref="$3"
|
||||
local listname="$4"
|
||||
# v4 / v6 when the upstream file holds both families and has to be split;
|
||||
# empty when it is already exactly what listtype wants.
|
||||
local family="${5:-}"
|
||||
# Where the file lives *inside* the repo, for the commits?path= filter.
|
||||
# Equal to the file name for every root-level list, which is all of them
|
||||
# used to be - that is why this went unnoticed until a source shipped its
|
||||
# list in a subdirectory. MetaCubeX keeps cn.list under geo/geoip/, and
|
||||
# asking the API about "cn.list" there is not a narrower question, it is a
|
||||
# different one: it matches no commit, returns [], and the update reports
|
||||
# "Failed to get the latest version" on every run while the file itself is
|
||||
# perfectly reachable. Downloaded as $listname regardless.
|
||||
local api_path="${6:-$listname}"
|
||||
local lock="$RUN_DIR/update_resources-$listtype.lock"
|
||||
local github_token="$(uci -q get homeproxy-pro.config.github_token)"
|
||||
local fetch="uclient-fetch -q --timeout=10"
|
||||
@@ -121,7 +226,7 @@ check_list_update() {
|
||||
# failure as "Failed to get the latest version, please retry later", which
|
||||
# loses the difference between "could not fetch" and "fetched, got nothing".
|
||||
local list_info
|
||||
list_info="$($fetch ${github_header:+--header="$github_header"} -O- "https://api.github.com/repos/$listrepo/commits?sha=$listref&path=$listname&per_page=1")"
|
||||
list_info="$($fetch ${github_header:+--header="$github_header"} -O- "https://api.github.com/repos/$listrepo/commits?sha=$listref&path=$api_path&per_page=1")"
|
||||
local fetch_exit=$?
|
||||
|
||||
if [ $fetch_exit -ne 0 ]; then
|
||||
@@ -159,9 +264,9 @@ check_list_update() {
|
||||
fi
|
||||
local mirror_url
|
||||
if [ "$mirror" = "raw.githubusercontent.com" ]; then
|
||||
mirror_url="https://raw.githubusercontent.com/$listrepo/$list_sha/$listname"
|
||||
mirror_url="https://raw.githubusercontent.com/$listrepo/$list_sha/$api_path"
|
||||
else
|
||||
mirror_url="https://$mirror/gh/$listrepo@$list_sha/$listname"
|
||||
mirror_url="https://$mirror/gh/$listrepo@$list_sha/$api_path"
|
||||
fi
|
||||
log "[$(to_upper "$listtype")] Downloading from $mirror."
|
||||
|
||||
@@ -184,7 +289,7 @@ check_list_update() {
|
||||
# nobody vouched for - is the thing being fixed.
|
||||
local api_blob local_blob
|
||||
api_blob="$($fetch ${github_header:+--header="$github_header"} -O- \
|
||||
"https://api.github.com/repos/$listrepo/contents/$listname?ref=$list_sha" \
|
||||
"https://api.github.com/repos/$listrepo/contents/$api_path?ref=$list_sha" \
|
||||
| jsonfilter -qe '@.sha')"
|
||||
if [ -z "$api_blob" ]; then
|
||||
rm -f "$RUN_DIR/$listname"
|
||||
@@ -205,7 +310,11 @@ check_list_update() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
if mv -f "$RUN_DIR/$listname" "$RESOURCES_DIR/$listtype.${listname##*.}"; then
|
||||
if install_download "$RUN_DIR/$listname" "$listtype" "$listname" "$family"; then
|
||||
# The split path reads the download and writes the halves, so the
|
||||
# download itself is still lying in RUN_DIR; the plain move consumed
|
||||
# it. Either way nothing may be left there for the next run.
|
||||
rm -f "$RUN_DIR/$listname"
|
||||
printf '%s\n' "$list_ver" > "$RESOURCES_DIR/$listtype.ver"
|
||||
# Review M7: persist the time *this router* last succeeded.
|
||||
# $list_date is the upstream commit date and can be months old
|
||||
@@ -241,6 +350,12 @@ check_list_update() {
|
||||
# "mainland IPv6 goes through the proxy" inversion.
|
||||
log "[$(to_upper "$listtype")] Warning: could not regenerate $listtype.json (list has no usable CIDR entry?); the route side keeps the previous list."
|
||||
fi
|
||||
# The kernel half. Unconditional, and deliberately outside the
|
||||
# if/else above: the nft set is rendered from the .txt, not from
|
||||
# the .json, so it can be right even when the generator failed -
|
||||
# and a failed generator is exactly when the list on disk is most
|
||||
# likely to have changed. See sync_firewall_sets().
|
||||
sync_firewall_sets
|
||||
;;
|
||||
"china_list")
|
||||
# The DNS half of the same split. It reads this file rather than
|
||||
@@ -288,7 +403,8 @@ check_list_update() {
|
||||
esac
|
||||
else
|
||||
rm -f "$RUN_DIR/$listname"
|
||||
log "[$(to_upper "$listtype")] Failed to install update (mv failed)."
|
||||
rm -f "$RESOURCES_DIR/$listtype.txt.hp-new"
|
||||
log "[$(to_upper "$listtype")] Failed to install update."
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -296,11 +412,52 @@ check_list_update() {
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"china_ip4")
|
||||
check_list_update "$1" "1715173329/IPCIDR-CHINA" "master" "ipv4.txt"
|
||||
;;
|
||||
"china_ip6")
|
||||
check_list_update "$1" "1715173329/IPCIDR-CHINA" "master" "ipv6.txt"
|
||||
"china_ip4"|"china_ip6")
|
||||
# Both come out of one upstream file and are split by address family - see
|
||||
# install_download(). Upstream is MetaCubeX/meta-rules-dat's cn.list, pure
|
||||
# CIDR text, which is what keeps the whole existing design intact: it is a
|
||||
# file in a git repository, so the blob-id check above vouches for it the
|
||||
# same way it vouches for every other list, and one text file feeds both the
|
||||
# nft set and the generated route rule-set, so the two readers cannot drift.
|
||||
#
|
||||
# Why this source and not the 1715173329/IPCIDR-CHINA lists r46 shipped:
|
||||
# the old pair missed 62,927,616 CN IPv4 addresses while cn.list misses
|
||||
# 1,519,872. The biggest of those gaps are 59.192.0.0/21 and
|
||||
# 175.48.0.0/21, Beijing Telecom backbone ranges, so the cost was not
|
||||
# theoretical: destinations resolving into them missed the mainland rule
|
||||
# and went to the proxy.
|
||||
#
|
||||
# cn.list's precision is slightly looser than the old lists' (99.22% of the
|
||||
# addresses it lists are CN, against 98.92% before - i.e. it is better on
|
||||
# both axes), because it merges neighbouring blocks a little more coarsely
|
||||
# than MaxMind does. IPv6 goes from 1031 to 3446 entries, which also closes
|
||||
# an overlap the old ipv6.txt had.
|
||||
#
|
||||
# CORRECTION (2026-10-08). The two paragraphs this replaces measured both
|
||||
# sources against the APNIC **delegated** statistics and called that the
|
||||
# authority - "the registration data every other list is derived from".
|
||||
# It is not. That file's `cc` column is the registry's coarse summary and
|
||||
# loses sub-allocations: it reports 8.128.0.0/10 as SG, while the registry's
|
||||
# own RDAP object for that range says CN (ALICLOUD). So the "0.44% missing"
|
||||
# figure was measured against a yardstick that is itself wrong, and cannot
|
||||
# be used to argue this source is accurate. Against RDAP the two lists
|
||||
# each have errors in OPPOSITE directions - of cn.list's 6163 IPv4 CIDRs,
|
||||
# 1054 (about 100 million addresses) are CN per RDAP but absent here, while
|
||||
# e.g. 117.134.222.0/23 is PK per RDAP and is wrongly listed as CN.
|
||||
#
|
||||
# What justifies this source is therefore narrower and more honest than the
|
||||
# numbers it replaced: it measurably beats the r46 pair on both recall and
|
||||
# precision, it is a file in a git repository so the blob-id check above
|
||||
# vouches for it, and one text file feeds both readers so they cannot drift.
|
||||
# The delegated statistics were evaluated as a *replacement* source and
|
||||
# rejected - deriving the lists from them loses the ~100 million addresses
|
||||
# above. To re-judge any source here, measure against RDAP
|
||||
# (https://rdap.apnic.net/ip/<address>), which is the registry database
|
||||
# rather than a summary of it.
|
||||
# $api_path, not $listname: the commits filter asks where the file is in
|
||||
# the repo, which for this source is not the repo root.
|
||||
check_list_update "$1" "MetaCubeX/meta-rules-dat" "meta" "cn.list" \
|
||||
"$([ "$1" = "china_ip4" ] && echo v4 || echo v6)" "geo/geoip/cn.list"
|
||||
;;
|
||||
"gfw_list")
|
||||
check_list_update "$1" "Loyalsoldier/v2ray-rules-dat" "release" "gfw.txt"
|
||||
|
||||
@@ -269,7 +269,7 @@ Two further host differences are bridged so the remaining checks still run:
|
||||
| `tests/i18n-coverage.py` | Reports how many `po/templates/homeproxy-pro.pot` strings have a non-fuzzy, non-empty `po/zh_Hans/homeproxy-pro.po` translation. Technical tokens that stay as-is are listed in `tests/i18n-ignore.txt`; anything else missing fails the run (`--fail-below 100`) and adds a job-summary entry. The release workflow (`build.yml`) deliberately warns instead of failing, so a translation gap cannot block packaging - the PR gates already catch it. |
|
||||
| `tests/luci-form-snapshot.js` | Dumps every option (name, kind, title, description, depends, values, datatype/default/…) of the node, client and server views. Diffs against `tests/snapshots/{node,client,server}.json`, so a refactor that changes a field or its visibility fails. |
|
||||
| `tests/ucode/test_homeproxy_utils.uc` | `executeCommand()` return shape, stderr/exit-code capture, binary detection, and a descriptor-leak check (200 calls). |
|
||||
| `tests/ucode/test_china_ip_ruleset.sh` | `runtime/china_ip_ruleset.uc`, the generator that turns `china_ip4.txt` into the `type: local` rule-set the route side matches mainland destinations with — the same list `firewall_post.ut` renders `homeproxy_mainland_addr_v4` from, so both sides decide from one source. The cases are the ones that break a router silently: a malformed line must be skipped (sing-box rejects the *whole* rule-set over one bad entry, and the client then will not start), the file must be replaced by rename (the running instance watches it with fswatch), and an empty or unreadable source must fail instead of installing a rule-set that matches nothing. Pins the bundled list's `8.152.0.0/13` — the range `geoip-cn.srs` does not carry, and the reason this exists. |
|
||||
| `tests/ucode/test_china_ip_ruleset.sh` | `runtime/china_ip_ruleset.uc`, the generator that turns `china_ip4.txt` into the `type: local` rule-set the route side matches mainland destinations with — the same list `firewall_post.ut` renders `homeproxy_mainland_addr_v4` from, so both sides decide from one source. The cases are the ones that break a router silently: a malformed line must be skipped (sing-box rejects the *whole* rule-set over one bad entry, and the client then will not start), the file must be replaced by rename (the running instance watches it with fswatch), and an empty or unreadable source must fail instead of installing a rule-set that matches nothing. Pins the bundled list's `8.152.0.0/13` — the range `geoip-cn.srs` does not carry, and the reason this exists — and, since the list changed source, that same assertion now also pins that the new upstream still carries it. The v6 half gets the same treatment: it is generated and checked for the absence of IPv4 entries, because `firewall_post.ut` reads a zero prefix count in `china_ip6.txt` as "IPv6 cannot be classified" and turns `v6_handled` off with nothing logged. |
|
||||
| `tests/ucode/test_resource_blob_sha.sh` | `resource_blob_sha.uc`, the digest the resource updater verifies downloads with. The expected values are git's own (`git hash-object` on the same bytes), covering the two cases an implementation gets wrong quietly: the empty file (a real blob id, not "no digest") and content whose byte length differs from its character count. Unreadable input must produce *no* digest and exit non-zero - the updater treats an empty answer as "cannot verify" and refuses, so a made-up digest would turn an unreadable file into a passing check. Re-checks the repository's real resource files against git when the host has it. |
|
||||
| `tests/ucode/test_homeproxy_utils_inject.uc` | The failure path of `executeCommand()`: the script stages a copy of `homeproxy-pro.uc` whose `system()` call is replaced by `die()`, then checks that the exception still propagates and that neither descriptor leaks. |
|
||||
| `tests/ucode/test_tls_transport.uc` | Direct calls into `buildTLSObject()` / `buildTransportObject()`: client-vs-server-only fields (no `insecure` on a server inbound, no `utls` on a server, `public_key` only on the client and `private_key` only on the server for reality), the ECH client/server split, and the `validateHomeProxyPath()` gate on `cert_path` / `key_path`. This is the boundary the generator fixtures only exercised end-to-end, so it is where the "server emitted insecure=true" and "reality key on the wrong side" classes of bug get named. |
|
||||
@@ -299,7 +299,7 @@ Two further host differences are bridged so the remaining checks still run:
|
||||
| `tests/runtime/test_dns_snippets.sh` | The dnsmasq snippet writer's incremental behaviour (review L6). Counts `init.d/dnsmasq restart` calls through a stub and asserts that an identical second write does *not* restart (a restart flushes every client's DNS cache), while a changed resource list, routing mode, DNS port or `ipv6_support` setting does. Also pins that a mode change drops the snippet the previous mode produced, and that removing a resource list removes its snippet so the next call is stable again. Pure shell, runs anywhere. |
|
||||
| `tests/runtime/test_health_probe.sh` | The functional health probes (`runtime/health.sh`): `hp_probe_dns` / `hp_probe_tcp` answer 0 / 1 / 2 and keep "cannot probe here" (no tool, no port) distinct from "the probe failed"; `hp_run_probes` *reports* by default and only fails the gate when `health_probe_strict` is on, and never fails it for a probe that could not run; `hp_config_port_for_tag` reads the probe ports out of the running configuration in both the generator's pretty shape and the compact one. `nslookup` and `nc` are stubbed, so it is pure shell and runs anywhere. |
|
||||
| `tests/runtime/test_crontab_perms.sh` | `hp_crontab_drop()` (runtime/service.sh) edits `/etc/crontabs/root` through a temporary file, and `mv` replaces the file rather than its contents - so the new one inherited the shell's umask (0644) while procd creates the root crontab as 0600. The test drives the function against a sandboxed crontab and pins: the entry is dropped, other jobs survive, the mode is 0600 (including a file an older version had already loosened), a missing crontab is reported as a failure and is not created. Pure shell, runs anywhere. |
|
||||
| `tests/runtime/test_resource_update.sh` | The content-verification path of `scripts/update_resources.sh`: the download URL is pinned to a commit, and the file is installed only when its git blob id matches the one GitHub reports for that path and commit. Drives all four outcomes (match, mismatch, no digest from the API, no local digest) with `uclient-fetch` / `jsonfilter` / `ucode` / `uci` / `flock` stubbed and the script's absolute paths rewritten into a sandbox, asserting in each failure case that the installed list and its `.ver` are left untouched - the point of the check is that it refuses, so a driver that only walked the happy path would keep passing with the check deleted. Pure shell, runs anywhere. |
|
||||
| `tests/runtime/test_resource_update.sh` | The content-verification path of `scripts/update_resources.sh`: the download URL is pinned to a commit, and the file is installed only when its git blob id matches the one GitHub reports for that path and commit. Drives all four outcomes (match, mismatch, no digest from the API, no local digest) with `uclient-fetch` / `jsonfilter` / `ucode` / `uci` / `flock` stubbed and the script's absolute paths rewritten into a sandbox, asserting in each failure case that the installed list and its `.ver` are left untouched - the point of the check is that it refuses, so a driver that only walked the happy path would keep passing with the check deleted. Also covers the two post-processing steps that carry a failure silently: `china_list`'s normalisation ordering, the address-family split (both IP lists come out of one upstream file, so each has to land at its own `.txt` holding only its own family, the combined download must not be left in `RUN_DIR`, and a family with no entries has to be refused rather than installed empty), and the firewall re-render that closes the loop on the nft half. That last one is the reason a test exists at all: the route side goes live on fswatch while `homeproxy_mainland_addr_v4/v6` are rendered into `fw4_post.nft` and otherwise only a start/restart installs them, so "the list updated" and "the kernel sees it" are different events. Both directions are asserted — a successful update must re-render and call `fw4 reload`, and a failed render must leave the previous ruleset in place, must not reach `fw4`, and must not fail the update (a resource that can never refresh is worse than one briefly missing from the firewall). Pure shell, runs anywhere. |
|
||||
| `tests/runtime/test_runtime_extraction.sh` | Drives `init.d/homeproxy-pro` through a stubbed environment (fake `ip` / `nft` / `fw4` / `ucode` / `sing-box` / `uci` / `netstat` / `nslookup` / `nc`, fake procd and jsonfilter state, fixture UCI) across five scenarios and diffs the resulting command + file trace against a baseline. Two baselines exist and are captured with the SAME harness, so the diff between them is exactly the intentional change: `tests/fixtures/runtime/trace.pre-pr05.txt` (the 517-line init script before PHASE 7 moved the plumbing out — the record that the extraction was behaviour-preserving) and `tests/fixtures/runtime/trace.golden.txt` (after the health-gate fix). Scenario D is the P0 regression: a candidate whose `mixed_port` is already taken must be rejected by the health gate, the previous known-good must survive, and the reload must roll back onto it. The generated fixture configuration is pretty-printed like the generator's own `%.J` output, because the runtime reads that file (`hp_config_ports`, `hp_config_port_for_tag`) and a compact fixture would test a shape production never writes. Pure shell, no ucode needed. Regenerate with `HP_UPDATE_GOLDEN=1` (optionally `HP_GOLDEN=` / `HP_INITD=` to target another baseline or revision). |
|
||||
|
||||
**`HP_UPDATE_GOLDEN=1` is a baseline-update mode, not a test.** It copies the
|
||||
|
||||
@@ -106,7 +106,24 @@ emit() {
|
||||
fi
|
||||
}
|
||||
case "$url" in
|
||||
*api.github.com/*/commits*) emit "$(cat "$HP_T_API_COMMITS")" ;;
|
||||
*api.github.com/*/commits*)
|
||||
# Filtered by path, the way the real endpoint is. Asking for a file
|
||||
# that is not at that path is not a narrower question, it is a different
|
||||
# one: it matches no commit and comes back []. That is the whole reason
|
||||
# the in-repo path is a separate argument from the file name, and it is
|
||||
# what this branch can now catch - every list this project ships used to
|
||||
# live in the repo root, so path= and the file name were the same string
|
||||
# and nothing could tell them apart.
|
||||
case "$url" in
|
||||
*repos/MetaCubeX/*)
|
||||
case "$url" in
|
||||
*"path=geo/geoip/cn.list"*) emit "$(cat "$HP_T_API_COMMITS")" ;;
|
||||
*) emit '[]' ;;
|
||||
esac
|
||||
;;
|
||||
*) emit "$(cat "$HP_T_API_COMMITS")" ;;
|
||||
esac
|
||||
;;
|
||||
*api.github.com/*/contents*) emit "$(cat "$HP_T_API_CONTENTS")" ;;
|
||||
*)
|
||||
# A spider probe (-s) checks reachability only, and its stdout is captured
|
||||
@@ -115,6 +132,19 @@ case "$url" in
|
||||
# applet prints nothing for a probe.
|
||||
[ "$probe" = "0" ] || exit 0
|
||||
if [ -n "${HP_T_FETCH_FAIL:-}" ]; then exit 1; fi
|
||||
# The same wrong-path mistake reaches the download as a 404, and
|
||||
# pick_mirror turns that into "all mirrors unreachable" - a second
|
||||
# symptom of the one bug, reported as an unrelated-looking network
|
||||
# failure. Scoped to this source so the other lists, whose file name is
|
||||
# their in-repo path, keep resolving.
|
||||
case "$url" in
|
||||
*MetaCubeX/meta-rules-dat*)
|
||||
case "$url" in
|
||||
*geo/geoip/cn.list*) ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
emit "$(cat "$HP_T_BODY")"
|
||||
;;
|
||||
esac
|
||||
@@ -179,6 +209,21 @@ cat > "$WORK/bin/flock" <<'EOF'
|
||||
#!/bin/sh
|
||||
exit 0
|
||||
EOF
|
||||
# utpl renders firewall_post.ut into the file named by -O-less stdout; the stub
|
||||
# writes a marker line and honours a failure switch, which is all the two
|
||||
# cases below need. fw4 records that it was called and honours its own.
|
||||
cat > "$WORK/bin/utpl" <<'EOF'
|
||||
#!/bin/sh
|
||||
[ -n "${HP_T_UTPL_FAIL:-}" ] && exit 1
|
||||
printf 'rendered-from-utpl\n'
|
||||
exit 0
|
||||
EOF
|
||||
cat > "$WORK/bin/fw4" <<'EOF'
|
||||
#!/bin/sh
|
||||
[ -n "$HP_T_FW4_CALLED" ] && printf 'called\n' >> "$HP_T_FW4_CALLED"
|
||||
[ -n "${HP_T_FW4_FAIL:-}" ] && exit 1
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x "$WORK/bin/"*
|
||||
|
||||
PATH="$WORK/bin:$PATH"
|
||||
@@ -205,14 +250,20 @@ EOF
|
||||
|
||||
write_contents_json() {
|
||||
# write_contents_json <blob-sha-or-empty>
|
||||
# The upstream file is cn.list, not ipv4.txt: it carries both address
|
||||
# families and each listtype takes one half of it (install_download).
|
||||
if [ -n "$1" ]; then
|
||||
printf '{"name":"ipv4.txt","size":6,"sha":"%s"}' "$1" > "$WORK/api-contents.json"
|
||||
printf '{"name":"cn.list","size":6,"sha":"%s"}' "$1" > "$WORK/api-contents.json"
|
||||
else
|
||||
printf '{"name":"ipv4.txt","size":6}' > "$WORK/api-contents.json"
|
||||
printf '{"name":"cn.list","size":6}' > "$WORK/api-contents.json"
|
||||
fi
|
||||
}
|
||||
|
||||
printf 'fresh\n' > "$WORK/body.txt"
|
||||
# Mixed on purpose: china_ip4 must end up holding only the first line, and the
|
||||
# IPv6 line is what the china_ip6 cases below split out. Keeping "fresh" as the
|
||||
# single IPv4 line means the cases that only care about the blob-id handshake
|
||||
# keep asserting on "fresh" unchanged.
|
||||
printf 'fresh\n2001:db8::/32\n' > "$WORK/body.txt"
|
||||
printf 'stale-installed-copy\n' > "$WORK/resources/china_ip4.txt"
|
||||
printf 'OLDVERSION' > "$WORK/resources/china_ip4.ver"
|
||||
|
||||
@@ -269,7 +320,7 @@ expect "the .ver is untouched" "$(cat "$WORK/resources/china_ip4.ver")" "OLDVERS
|
||||
expect "no .updated_at was written" "$([ -e "$WORK/resources/china_ip4.updated_at" ] && echo yes || echo no)" "no"
|
||||
expect "the refusal is logged with both ids" \
|
||||
"$(grep -c "does not match the content of commit $API_SHA" "$WORK/run/homeproxy-pro.log")" "1"
|
||||
expect "the downloaded copy was discarded" "$([ -e "$WORK/run/ipv4.txt" ] && echo yes || echo no)" "no"
|
||||
expect "the downloaded copy was discarded" "$([ -e "$WORK/run/cn.list" ] && echo yes || echo no)" "no"
|
||||
|
||||
echo "== case 3: no blob id from the API -> refused =="
|
||||
reset_state
|
||||
@@ -373,6 +424,109 @@ expect "the .ver is untouched" "$(cat "$WORK/resources/china_list.ver")" "OLDVER
|
||||
expect "the generator was never called" \
|
||||
"$([ -e "$HP_T_SEEN_SOURCE" ] && echo yes || echo no)" "no"
|
||||
|
||||
echo "== case 8: cn.list is split by address family =="
|
||||
# Both IP lists come out of one upstream file now (MetaCubeX cn.list), so the
|
||||
# install step splits rather than moves. What has to hold: each listtype ends
|
||||
# up at its own .txt name with only its own family in it, and the combined
|
||||
# download is not left lying in RUN_DIR for the next run to trip over.
|
||||
reset_state
|
||||
printf 'OLDVERSION' > "$WORK/resources/china_ip6.ver"
|
||||
rm -f "$WORK/resources/china_ip6.txt"
|
||||
# Set here rather than relying on the top-of-file fixture: case 6 overwrote
|
||||
# body.txt with its own domain lines.
|
||||
printf '1.0.0.0/24\n2001:db8::/32\n' > "$WORK/body.txt"
|
||||
: > "$WORK/run/homeproxy-pro.log"
|
||||
printf '%s' "$LOCAL_SHA" > "$HP_T_LOCAL_BLOB"
|
||||
rc="$("$RUN_SH" "$WORK/scripts/update_resources.sh" china_ip6 > "$WORK/stdout" 2>&1; echo $?)"
|
||||
expect "exit status 0" "$rc" "0"
|
||||
expect "china_ip6.txt was created by the split" \
|
||||
"$(cat "$WORK/resources/china_ip6.txt" 2>/dev/null)" "2001:db8::/32"
|
||||
expect "it holds no IPv4 entry" \
|
||||
"$(grep -cE '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/' "$WORK/resources/china_ip6.txt" || true)" "0"
|
||||
expect "its .ver advanced like the v4 one" \
|
||||
"$(cat "$WORK/resources/china_ip6.ver")" "2026-01-02 $API_SHA"
|
||||
expect "the combined download was cleaned out of RUN_DIR" \
|
||||
"$([ -e "$WORK/run/cn.list" ] && echo yes || echo no)" "no"
|
||||
expect "no half-written temp file survived" \
|
||||
"$([ -e "$WORK/resources/china_ip6.txt.hp-new" ] && echo yes || echo no)" "no"
|
||||
|
||||
echo "== case 9: a family with no entries is refused, not installed empty =="
|
||||
# The failure this guards is silent: an empty china_ip6.txt makes
|
||||
# firewall_post.ut count zero usable prefixes and turn v6_handled off, after
|
||||
# which every mainland IPv6 connection goes to the proxy - with no error
|
||||
# anywhere. Keeping the previous list is the only acceptable outcome.
|
||||
reset_state
|
||||
printf 'stale-v6-copy\n' > "$WORK/resources/china_ip6.txt"
|
||||
printf 'OLDVERSION' > "$WORK/resources/china_ip6.ver"
|
||||
printf 'only-v4-here/24\n' > "$WORK/body.txt"
|
||||
: > "$WORK/run/homeproxy-pro.log"
|
||||
printf '%s' "$LOCAL_SHA" > "$HP_T_LOCAL_BLOB"
|
||||
rc="$("$RUN_SH" "$WORK/scripts/update_resources.sh" china_ip6 > "$WORK/stdout" 2>&1; echo $?)"
|
||||
expect "exit status non-zero" "$rc" "1"
|
||||
expect "the previous v6 list is untouched" \
|
||||
"$(cat "$WORK/resources/china_ip6.txt")" "stale-v6-copy"
|
||||
expect "its .ver is untouched" "$(cat "$WORK/resources/china_ip6.ver")" "OLDVERSION"
|
||||
expect "the reason is logged" \
|
||||
"$(grep -c 'carries no v6 entries' "$WORK/run/homeproxy-pro.log")" "1"
|
||||
expect "no empty temp file survived" \
|
||||
"$([ -e "$WORK/resources/china_ip6.txt.hp-new" ] && echo yes || echo no)" "no"
|
||||
|
||||
echo "== case 10: a successful IP update re-renders the firewall sets =="
|
||||
# The two halves of the mainland split read the same file but go live on
|
||||
# different triggers: sing-box watches the generated rule-set, while the nft
|
||||
# set is rendered into fw4_post.nft and otherwise only a start/restart puts
|
||||
# it in place. Without this step the kernel's copy silently ages past the
|
||||
# file's, and a segment the list has since dropped keeps matching
|
||||
# `ip daddr @homeproxy_mainland_addr_v4 counter return` - which returns before
|
||||
# the redirect, so the route side never gets to correct it.
|
||||
reset_state
|
||||
printf 'v4-here/24\n2001:db8::/32\n' > "$WORK/body.txt"
|
||||
printf 'stale-rendered-ruleset\n' > "$WORK/run/fw4_post.nft"
|
||||
rm -f "$WORK/run/fw4_post.nft.new"
|
||||
export HP_T_FW4_CALLED="$WORK/fw4-called"
|
||||
rm -f "$HP_T_FW4_CALLED"
|
||||
: > "$WORK/run/homeproxy-pro.log"
|
||||
rc="$("$RUN_SH" "$WORK/scripts/update_resources.sh" china_ip4 > "$WORK/stdout" 2>&1; echo $?)"
|
||||
expect "exit status 0" "$rc" "0"
|
||||
expect "fw4_post.nft was re-rendered from the new list" \
|
||||
"$(cat "$WORK/run/fw4_post.nft" 2>/dev/null)" "rendered-from-utpl"
|
||||
expect "fw4 reload ran" \
|
||||
"$(grep -c 'called' "$HP_T_FW4_CALLED" 2>/dev/null || echo 0)" "1"
|
||||
expect "no temp file left behind" \
|
||||
"$([ -e "$WORK/run/fw4_post.nft.new" ] && echo yes || echo no)" "no"
|
||||
expect "the success is logged" \
|
||||
"$(grep -c 'Firewall mainland sets re-rendered' "$WORK/run/homeproxy-pro.log")" "1"
|
||||
|
||||
echo "== case 11: a failed render is warned about, not fatal =="
|
||||
# Failing the update would be worse than the lag it is reporting: the list on
|
||||
# disk is already the one the commit vouched for, and a resource that can
|
||||
# never refresh is a far bigger problem than one that is briefly not in the
|
||||
# firewall. The previous ruleset has to survive, or a bad render takes the
|
||||
# whole intercept layer down with it.
|
||||
reset_state
|
||||
printf 'v4-here/24\n2001:db8::/32\n' > "$WORK/body.txt"
|
||||
printf 'known-good-ruleset\n' > "$WORK/run/fw4_post.nft"
|
||||
rm -f "$WORK/run/fw4_post.nft.new"
|
||||
export HP_T_UTPL_FAIL=1
|
||||
: > "$WORK/run/homeproxy-pro.log"
|
||||
# Cleared because the point of this case is that a failed render must not
|
||||
# reach fw4 at all - inheriting case 10's record would make the assertion
|
||||
# pass for the wrong reason if the branch started reloading anyway.
|
||||
rm -f "$HP_T_FW4_CALLED"
|
||||
rc="$("$RUN_SH" "$WORK/scripts/update_resources.sh" china_ip4 > "$WORK/stdout" 2>&1; echo $?)"
|
||||
unset HP_T_UTPL_FAIL
|
||||
expect "the update still succeeded" "$rc" "0"
|
||||
expect "the list was still installed" \
|
||||
"$(cat "$WORK/resources/china_ip4.txt")" "v4-here/24"
|
||||
expect "the previous ruleset is untouched" \
|
||||
"$(cat "$WORK/run/fw4_post.nft")" "known-good-ruleset"
|
||||
expect "no half-written temp file survived" \
|
||||
"$([ -e "$WORK/run/fw4_post.nft.new" ] && echo yes || echo no)" "no"
|
||||
expect "fw4 was NOT reloaded" \
|
||||
"$(grep -c 'called' "$HP_T_FW4_CALLED" 2>/dev/null || echo 0)" "0"
|
||||
expect "the warning names the manual recovery" \
|
||||
"$(grep -c 'could not re-render fw4_post.nft' "$WORK/run/homeproxy-pro.log")" "1"
|
||||
|
||||
printf '%d checks, %d failures\n' "$CHECKS" "$FAILURES"
|
||||
if [ "$FAILED" != "0" ]; then
|
||||
echo "RESOURCE UPDATE TESTS FAILED"
|
||||
|
||||
@@ -104,12 +104,24 @@ expect "output carries a version" \
|
||||
# The list this ships with is what the firewall renders its nft set from; a
|
||||
# generator that mangles it would break both sides at once.
|
||||
expect "the bundled china_ip4.txt generates" \
|
||||
"$(generate "$ROOT/root/etc/homeproxy-pro/resources/china_ip4.txt" "$WORK/real.json")" "4068 prefixes"
|
||||
"$(generate "$ROOT/root/etc/homeproxy-pro/resources/china_ip4.txt" "$WORK/real.json")" "6163 prefixes"
|
||||
# 8.152.0.0/13 is the range geoip-cn.srs does *not* carry, and the one that
|
||||
# made segmentfault.com and ctrip.com resolve into the proxy path.
|
||||
# made segmentfault.com and ctrip.com resolve into the proxy path. The list
|
||||
# changed source since, so this is now also the assertion that the new upstream
|
||||
# still carries it rather than having merged it away.
|
||||
expect "the bundled list carries 8.152.0.0/13" \
|
||||
"$(grep -c '8\.152\.0\.0/13' "$WORK/real.json")" "1"
|
||||
|
||||
# The v6 half, which used to be the untested one. It matters for the same
|
||||
# reason: firewall_post.ut counts usable prefixes in china_ip6.txt and turns
|
||||
# v6_handled off entirely when the count is zero, which silently sends every
|
||||
# mainland IPv6 connection down the proxy. A generator that emitted an empty
|
||||
# v6 rule-set would look identical from the config.
|
||||
expect "the bundled china_ip6.txt generates" \
|
||||
"$(generate "$ROOT/root/etc/homeproxy-pro/resources/china_ip6.txt" "$WORK/real6.json")" "3446 prefixes"
|
||||
expect "the v6 rule-set carries no IPv4 entry" \
|
||||
"$(grep -cE '"[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/' "$WORK/real6.json")" "0"
|
||||
|
||||
# --- failure paths ----------------------------------------------------------
|
||||
|
||||
# An empty source must not install an empty rule-set: the caller would then be
|
||||
|
||||
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-honk
|
||||
PKG_VERSION:=1.1.4
|
||||
PKG_RELEASE:=17
|
||||
PKG_RELEASE:=18
|
||||
|
||||
LUCI_TITLE:=LuCI support for honk
|
||||
LUCI_PKGARCH:=all
|
||||
|
||||
@@ -88,11 +88,7 @@ msgstr "已格式化"
|
||||
msgid "Failed to format code:"
|
||||
msgstr "格式化代码失败:"
|
||||
|
||||
msgid "Running"
|
||||
msgstr "运行中"
|
||||
|
||||
msgid "Not Running"
|
||||
msgstr "未运行"
|
||||
|
||||
msgid "Checking Dashboard and API configuration..."
|
||||
msgstr "正在检测控制面板与 API 配置..."
|
||||
@@ -327,3 +323,36 @@ msgstr "当前面板类型为“无”,Web 管理面板和 Native API 监听
|
||||
|
||||
msgid "Failed to switch dashboard:"
|
||||
msgstr "切换面板失败:"
|
||||
|
||||
msgid "GitHub Release "
|
||||
msgstr "GitHub Release "
|
||||
|
||||
msgid "Service did not accept the request"
|
||||
msgstr "服务未接受该请求"
|
||||
|
||||
msgid "Failed to apply configuration:"
|
||||
msgstr "应用配置失败:"
|
||||
|
||||
msgid "HONK did not come back up; check the logs"
|
||||
msgstr "HONK 未能重新启动,请检查日志"
|
||||
|
||||
msgid "Configuration saved. HONK is disabled, so the service was not started."
|
||||
msgstr "配置已保存。HONK 处于禁用状态,未启动服务。"
|
||||
|
||||
msgid "Download did not finish in time."
|
||||
msgstr "下载超时未完成。"
|
||||
|
||||
msgid "Download task stopped reporting progress."
|
||||
msgstr "下载任务已停止上报进度。"
|
||||
|
||||
msgid "Configuration saved, but the service state could not be confirmed."
|
||||
msgstr "配置已保存,但无法确认服务状态。"
|
||||
|
||||
msgid "Running"
|
||||
msgstr "运行中"
|
||||
|
||||
msgid "Not Running"
|
||||
msgstr "未运行"
|
||||
|
||||
msgid "Zashboard"
|
||||
msgstr "Zashboard"
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{j as r}from"./vendor-react-64fcanlc.js";import{I as a}from"./index-C-WQXF8v.js";function o(o){return r.jsx(a,{...o,children:r.jsx("path",{fill:"currentColor",d:"M10 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m0 15.5a7 7 0 1 1 0-14 7 7 0 0 1 0 14m3.75-7.75h-3v-3a.75.75 0 0 0-1.5 0v3h-3a.75.75 0 0 0 0 1.5h3v3a.75.75 0 0 0 1.5 0v-3h3a.75.75 0 0 0 0-1.5"})})}export{o as A};
|
||||
import{j as r}from"./vendor-react-64fcanlc.js";import{I as a}from"./index-XeGFdFb3.js";function o(o){return r.jsx(a,{...o,children:r.jsx("path",{fill:"currentColor",d:"M10 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m0 15.5a7 7 0 1 1 0-14 7 7 0 0 1 0 14m3.75-7.75h-3v-3a.75.75 0 0 0-1.5 0v3h-3a.75.75 0 0 0 0 1.5h3v3a.75.75 0 0 0 1.5 0v-3h3a.75.75 0 0 0 0-1.5"})})}export{o as A};
|
||||
@@ -1 +0,0 @@
|
||||
import{r as e,$ as s,j as l}from"./vendor-react-64fcanlc.js";import{cB as a,cA as n,cD as t,cC as i,fU as r,dZ as c,fV as o,cQ as d,cV as u,d3 as p,d2 as h,cU as b,eW as m,cl as f,fW as x,b7 as j,fX as v,fY as g,cn as C,bw as y,fZ as N,dh as S,f_ as k,di as A,co as P,u as M,b4 as D,f$ as w,bp as L,fr as q,g0 as I,fs as V,dj as H,fu as F,g1 as E,ft as O,T as z,I as B,bg as R,B as T,dV as $}from"./index-C-WQXF8v.js";import{a as K,b as U}from"./ItemText-CnmwoDur.js";const W=e.createContext(null),Z=e.forwardRef(function(e,l){[e,l]=d(e,l,W);let m=e.href&&!e.isDisabled?"a":"span",{linkProps:f,isPressed:x}=function(e,s){let{elementType:l="a",onPress:d,onPressStart:u,onPressEnd:p,onPressChange:h,onClick:b,isDisabled:m,...f}=e,x={};"a"!==l&&(x={role:"link",tabIndex:m?void 0:0});let{focusableProps:j}=a(e,s),{pressProps:v,isPressed:g}=n({onPress:d,onPressStart:u,onPressEnd:p,onPressChange:h,onClick:b,isDisabled:m,ref:s}),C=t(f,{labelable:!0}),y=i(j,v),N=r(),S=c(e);return{isPressed:g,linkProps:i(C,S,{...y,...x,"aria-disabled":m||void 0,"aria-current":e["aria-current"],onClick:s=>{v.onClick?.(s),o(s,N,e.href,e.routerOptions)}})}}({...e,elementType:m},l),j=u[m],{hoverProps:v,isHovered:g}=p(e),{focusProps:C,isFocused:y,isFocusVisible:N}=h(),S=b({...e,defaultClassName:"react-aria-Link",values:{isCurrent:!!e["aria-current"],isDisabled:e.isDisabled||!1,isPressed:x,isHovered:g,isFocused:y,isFocusVisible:N}}),k=t(e,{global:!0});return delete k.onClick,s.createElement(j,{ref:l,slot:e.slot||void 0,...i(k,S,f,v,C),"data-focused":y||void 0,"data-hovered":g||void 0,"data-pressed":x||void 0,"data-focus-visible":N||void 0,"data-current":!!e["aria-current"]||void 0,"data-disabled":e.isDisabled||void 0},S.children)});function _({external:e,layout:s,appearance:a,label:n,className:t,quiet:i,secondary:r,small:c,icon:o,accent:d,negative:u,size:p,...h}){const b="button"===a?m({quiet:i,secondary:r,small:c,icon:o,accent:d,negative:u}):`rp-${a}`,v=f(p);return l.jsx(Z,{target:e?"_blank":void 0,rel:e?"noreferrer":void 0,"aria-label":n,"data-layout":s,"data-size":v,...h,className:a?x(t,e=>j(b,e)):t})}const Q=e=>e>12,X=e=>s=>{if("all"===s)return;const l=[...s][0];null!=l&&e(String(l))};function Y({item:e,children:s,onAction:a}){return l.jsxs(O,{id:e.id,className:"rp-item",textValue:e.label,onAction:a,children:[l.jsx(K,{}),l.jsx(U,{i:e,children:s})]})}function G({children:s,content:a,label:n,quiet:t,small:i,size:r,chevron:c=!0,isDisabled:o,appearance:d,placement:u="bottom end",count:p,onIntent:h}){const b=p?l.jsx("span",{className:"rp-count","aria-hidden":"true",children:p}):null,x=g(o),[j,v]=e.useState(!1),M=f(r),D=e.useRef(null),w=l.jsxs(C,{ref:D,className:d?"rp-select":m({quiet:t,small:i,icon:!c}),"data-size":M,"aria-label":n,"aria-describedby":x?.id,isDisabled:o,onHoverStart:h,onFocus:h,children:[s,b,c&&l.jsx(y,{className:"rp-chev"})]});return l.jsxs(N,{children:[c&&!x?w:l.jsxs(S,{delay:400,isOpen:j,onOpenChange:v,children:[l.jsx(k,{children:l.jsx("span",{className:"rp-tipwrap",tabIndex:o?0:-1,"data-passive":o?void 0:"",onPointerDown:e=>{o&&"touch"===e.pointerType&&v(e=>!e)},children:w})}),l.jsx(A,{triggerRef:D,children:x?.text??n})]}),l.jsx(P,{className:"rp-popover rp-list-popover",placement:u,children:a})]})}function J({label:e,labelledBy:s,sections:a,headers:n=!0,focusedByCaller:t,onAction:i,searchLabel:r,actions:c=[]}){const o="function"==typeof a?a():a,d=!!r&&Q(ee(o)),u=l.jsxs(q,{"aria-label":e,"aria-labelledby":s??"",className:d?"rp-menu-scroll":void 0,autoFocus:!t&&void 0,children:[o.map(e=>l.jsxs(V,{id:e.title,"aria-label":n&&!e.hideHeader?void 0:e.title,selectionMode:e.selectionMode??"single",selectedKeys:[e.value],onSelectionChange:e.onChange&&X(e.onChange),children:[n&&!e.hideHeader&&l.jsx(H,{className:"rp-sec-h",children:e.title}),e.items.map(e=>l.jsx(Y,{item:e,onAction:i&&(()=>i(e.id))},e.id))]},e.title)),c.length>0&&l.jsx(F,{className:"rp-hrule"}),c.map((e,s)=>l.jsx(le,{id:ae(s),...e},e.label))]});return d?l.jsx(E,{label:r,children:u}):u}const ee=e=>e.reduce((e,s)=>e+s.items.length,0);function se(e,s){for(const l of e){const a=l.items.find(e=>e.id===l.value);if(a)return e.length>1&&!l.plain&&a.label!==l.title?s("ui.sectionChoice",{section:l.title,item:a.label}):a.label}return""}const le=({id:e,label:s,icon:a,onAction:n})=>l.jsxs(O,{id:e,className:"rp-item rp-subitem",textValue:s,onAction:n,shouldCloseOnSelect:!0,children:[l.jsx("span",{className:"ic",children:a}),l.jsx(z,{children:s})]}),ae=e=>`/action-${e}`,ne=({id:e,label:s,icon:a,sections:n})=>{const t=M();return l.jsxs(O,{id:e,className:"rp-item rp-subitem",textValue:s,children:[l.jsx("span",{className:"ic",children:a}),l.jsx(z,{children:s}),l.jsxs("span",{className:"desc",children:[se(n,t),l.jsx(y,{className:"rp-chev-end"})]})]})};function te({label:s,submenus:a,actions:n=[]}){const t="function"==typeof a?a():a,i=M(),r=D(w),[c,o]="rtl"===L().direction?["ArrowLeft","ArrowRight"]:["ArrowRight","ArrowLeft"],[{open:d,left:u},p]=e.useState({open:null,left:null}),h=e.useRef(null),Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{r as e,$ as s,j as l}from"./vendor-react-64fcanlc.js";import{cB as a,cA as n,cD as t,cC as c,fU as i,dZ as r,fV as o,cQ as d,cV as u,d3 as p,d2 as b,cU as h,eW as m,cl as f,fW as x,b7 as j,fX as v,fY as g,cn as C,bw as y,fZ as N,dh as k,f_ as A,di as P,co as S,u as M,b4 as D,f$ as w,bp as L,fr as q,g0 as I,fs as V,dj as $,fu as H,g1 as F,ft as E,T as O,I as z,bg as B,B as R,dV as T}from"./index-XeGFdFb3.js";import{a as K,b as U}from"./ItemText-Bvif-kkw.js";const W=e.createContext(null),Z=e.forwardRef(function(e,l){[e,l]=d(e,l,W);let m=e.href&&!e.isDisabled?"a":"span",{linkProps:f,isPressed:x}=function(e,s){let{elementType:l="a",onPress:d,onPressStart:u,onPressEnd:p,onPressChange:b,onClick:h,isDisabled:m,...f}=e,x={};"a"!==l&&(x={role:"link",tabIndex:m?void 0:0});let{focusableProps:j}=a(e,s),{pressProps:v,isPressed:g}=n({onPress:d,onPressStart:u,onPressEnd:p,onPressChange:b,onClick:h,isDisabled:m,ref:s}),C=t(f,{labelable:!0}),y=c(j,v),N=i(),k=r(e);return{isPressed:g,linkProps:c(C,k,{...y,...x,"aria-disabled":m||void 0,"aria-current":e["aria-current"],onClick:s=>{v.onClick?.(s),o(s,N,e.href,e.routerOptions)}})}}({...e,elementType:m},l),j=u[m],{hoverProps:v,isHovered:g}=p(e),{focusProps:C,isFocused:y,isFocusVisible:N}=b(),k=h({...e,defaultClassName:"react-aria-Link",values:{isCurrent:!!e["aria-current"],isDisabled:e.isDisabled||!1,isPressed:x,isHovered:g,isFocused:y,isFocusVisible:N}}),A=t(e,{global:!0});return delete A.onClick,s.createElement(j,{ref:l,slot:e.slot||void 0,...c(A,k,f,v,C),"data-focused":y||void 0,"data-hovered":g||void 0,"data-pressed":x||void 0,"data-focus-visible":N||void 0,"data-current":!!e["aria-current"]||void 0,"data-disabled":e.isDisabled||void 0},k.children)});function _({external:e,layout:s,appearance:a,label:n,className:t,quiet:c,secondary:i,small:r,icon:o,accent:d,negative:u,size:p,...b}){const h="button"===a?m({quiet:c,secondary:i,small:r,icon:o,accent:d,negative:u}):`rp-${a}`,v=f(p);return l.jsx(Z,{target:e?"_blank":void 0,rel:e?"noreferrer":void 0,"aria-label":n,"data-layout":s,"data-size":v,...b,className:a?x(t,e=>j(h,e)):t})}const Q=e=>e>12,X=e=>s=>{if("all"===s)return;const l=[...s][0];null!=l&&e(String(l))};function Y({item:e,children:s,onAction:a}){return l.jsxs(E,{id:e.id,className:"rp-item",textValue:e.label,onAction:a,children:[l.jsx(K,{}),l.jsx(U,{i:e,children:s})]})}function G({children:s,content:a,label:n,quiet:t,small:c,size:i,chevron:r=!0,isDisabled:o,appearance:d,placement:u="bottom end",count:p,onIntent:b}){const h=p?l.jsx("span",{className:"rp-count","aria-hidden":"true",children:p}):null,x=g(o),[j,v]=e.useState(!1),M=f(i),D=e.useRef(null),w=l.jsxs(C,{ref:D,className:d?"rp-select":m({quiet:t,small:c,icon:!r}),"data-size":M,"aria-label":n,"aria-describedby":x?.id,isDisabled:o,onHoverStart:b,onFocus:b,children:[s,h,r&&l.jsx(y,{className:"rp-chev"})]});return l.jsxs(N,{children:[r&&!x?w:l.jsxs(k,{delay:400,isOpen:j,onOpenChange:v,children:[l.jsx(A,{children:l.jsx("span",{className:"rp-tipwrap",tabIndex:o?0:-1,"data-passive":o?void 0:"",onPointerDown:e=>{o&&"touch"===e.pointerType&&v(e=>!e)},children:w})}),l.jsx(P,{triggerRef:D,children:x?.text??n})]}),l.jsx(S,{className:"rp-popover rp-list-popover",placement:u,children:a})]})}function J({label:e,labelledBy:s,sections:a,headers:n=!0,focusedByCaller:t,onAction:c,searchLabel:i,actions:r=[]}){const o="function"==typeof a?a():a,d=!!i&&Q(ee(o)),u=l.jsxs(q,{"aria-label":e,"aria-labelledby":s??"",className:d?"rp-menu-scroll":void 0,autoFocus:!t&&void 0,children:[o.map(e=>l.jsxs(V,{"aria-label":n&&!e.hideHeader?void 0:e.title,selectionMode:e.selectionMode??"single",selectedKeys:[`/choice-${e.value}`],onSelectionChange:e.onChange&&X(s=>e.onChange(s.slice(8))),children:[n&&!e.hideHeader&&l.jsx($,{className:"rp-sec-h",children:e.title}),e.items.map(e=>l.jsx(Y,{item:{...e,id:`/choice-${e.id}`},onAction:c&&(()=>c(e.id))},e.id))]},e.title)),r.length>0&&l.jsx(H,{className:"rp-hrule"}),r.map(e=>l.jsx(le,{...e},e.label))]});return d?l.jsx(F,{label:i,children:u}):u}const ee=e=>e.reduce((e,s)=>e+s.items.length,0);function se(e,s){for(const l of e){const a=l.items.find(e=>e.id===l.value);if(a)return e.length>1&&!l.plain&&a.label!==l.title?s("ui.sectionChoice",{section:l.title,item:a.label}):a.label}return""}const le=({label:e,icon:s,onAction:a})=>l.jsxs(E,{className:"rp-item rp-subitem",textValue:e,onAction:a,shouldCloseOnSelect:!0,children:[l.jsx("span",{className:"ic",children:s}),l.jsx(O,{children:e})]}),ae=({id:e,label:s,icon:a,sections:n})=>{const t=M();return l.jsxs(E,{id:e,className:"rp-item rp-subitem",textValue:s,children:[l.jsx("span",{className:"ic",children:a}),l.jsx(O,{children:s}),l.jsxs("span",{className:"desc",children:[se(n,t),l.jsx(y,{className:"rp-chev-end"})]})]})};function ne({label:s,submenus:a,actions:n=[]}){const t="function"==typeof a?a():a,c=M(),i=D(w),[r,o]="rtl"===L().direction?["ArrowLeft","ArrowRight"]:["ArrowRight","ArrowLeft"],[{open:d,left:u},p]=e.useState({open:null,left:null}),b=e.useRef(null),hLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{u as a,f as s,g2 as n,dr as o,g3 as l}from"./index-C-WQXF8v.js";import{a as i,aW as r,aX as c,aY as u,aZ as h,a_ as m,a$ as p,b0 as d,b1 as x}from"./activity-BQ91A1_2.js";import{G as f,C as M}from"./AreaCurve-DQSHOSpG.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-D39HfuKn.js";import"./AppearanceControls-CRuy5orf.js";import"./ItemText-CnmwoDur.js";import"./logs-B-rowQjz.js";import"./Select-B67-iUq2.js";import"./array-C0VuvQyb.js";const g=[30,60,120,300,600,900,1800,3600,7200,21600,43200,86400].map(e=>1e3*e);function j(t,a){const[s,n]=e.useState([]),o=e.useRef("");return e.useLayoutEffect(()=>{const e=[a,...t].join("\0");if(e===o.current)return;o.current=e;const s=document.createElement("span");s.className="rp-area-tick",Object.assign(s.style,{position:"absolute",top:"-20000px",whiteSpace:"pre"}),document.body.appendChild(s),n(t.map(e=>{s.textContent=e;const{width:t,height:a}=s.getBoundingClientRect();return{width:t,height:a}})),s.remove()},[t,a]),s}function y({label:y,series:b,timestamps:v,fmt:w,locale:k,height:C=150,baseline:D="zero",window:$,fill:N,bare:S=!1,inset:A=2}){const L=a(),T=i(),B=e.useId(),[E,F]=s(Math.round,120),{tip:P,showAt:I,hide:K}=r(),[W,z]=e.useState(null),O=W&&W.index<v.length?W.index:null,R=$?$.until-$.since:v.length?v[v.length-1]-v[0]:0,_=$?.since,G=$?.until,H=e.useMemo(()=>void 0!==_&&void 0!==G?function(e,t){const a=t-e,s=g.find(e=>a/e<=6)??g[g.length-1],n=s>=864e5?6e4*new Date(t).getTimezoneOffset():0,o=[];for(let l=Math.ceil((e-n)/s)*s+n;l<=t;l+=s)l-e>=.04*a&&t-l>=.04*a&&o.push(l);return{ticks:o,step:s}}(_,G):void 0,[_,G]),X=H?H.step<6e4:R<18e4,Y=H?H.step>=864e5:R>1296e5,Z=e.useMemo(()=>Y?n(k):o(k,X),[k,X,Y]),{yDomain:q,yTicks:J}=e.useMemo(()=>{const e=b.flatMap(e=>e.values.filter(e=>null!==e));let t=0,a=(e=>{const t=Math.pow(10,Math.floor(Math.log10(e))),a=e/t;return([1,1.2,1.5,2,2.5,3,4,5,6,8,10].find(e=>a<=e)??10)*t})(1.08*Math.max(1,...e));if("auto"===D&&e.length){const s=Math.min(...e),n=Math.max(...e),o=(e=>{const t=Math.pow(10,Math.floor(Math.log10(Math.max(e,1e-9)))),a=e/t;return(a<=1?.2:a<=2?.5:a<=5?1:2)*t})(Math.max(n-s,.02*n,1));t=Math.max(0,Math.floor(s/o)*o-o),a=Math.ceil(n/o)*o+o}return{yDomain:[t,a],yTicks:"auto"===D?[t,(t+a)/2,a]:[a/2,a]}},[b,D]),Q=e.useMemo(()=>{const e=v.length-1;return H?H.ticks:[...new Set((X?[0,Math.round(e/2),e]:[0,Math.round(e/3),Math.round(2*e/3),e]).map(e=>v[e]))]},[H,X,v]),U=e.useMemo(()=>void 0!==_&&void 0!==G?[_,G]:[Math.min(...v),Math.max(...v)],[_,G,v]),V=F?.width??0,ee=F?.height??C,te=S?A:20,ae=S?2:8,se=ee-(S?2:30),ne=V-(S?A:64),oe=e.useMemo(()=>[Math.min(U[0],...v),Math.max(U[1],...v)],[U,v]),le=e.useCallback(e=>c(e,oe,[te,ne]),[oe,te,ne]),ie=e.useCallback(e=>c(e,q,[se,ae]),[q,se,ae]),re=e.useMemo(()=>v.map(le),[v,le]),ce=e.useMemo(()=>b.map(e=>v.map((t,a)=>null==e.values[a]?null:{x:re[a],y:ie(e.values[a])})),[b,v,re,ie]),ue={x:te,y:ae,width:ne-te,height:se-ae},he=(e,t)=>z({index:e,y:t}),me=()=>{z(null),K()};e.useLayoutEffect(()=>{null!==O&&b.some(e=>null!=e.values[O])?I({x:re[O],y:W?.y??(ae+se)/2,width:V,bounds:S&&E.current?u(E.current):ue,label:l(k).format(v[O]),lines:b.filter(e=>null!=e.values[O]).sort((e,t)=>e.label<t.label?-1:e.label>t.label?1:0).map(e=>L("ui.valuePair",{label:e.label,value:w(e.values[O])}))}):K()});const pe=h(v.length,he,me),de=e.useMemo(()=>Q.map(e=>Z.format(e)),[Q,Z]),xe=e.useMemo(()=>J.map(w),[J,w]),fe=j(de,k),Me=j(xe,k),ge=H?m(Q.map(le),fe.map(e=>e.width),0,V,16,!0):function(e,t,a){const s=a=>[e[a]-(t[a]??0)/2,e[a]+(t[a]??0)/2],n=e.length-1,o=[];let l=1/0;for(let i=n;i>=0;i--){const[t,r]=s(i);r+a>l||i>0&&i<n&&t<s(0)[1]+a||(o.unshift({index:i,position:e[i]}),l=t)}return o}(Q.map(le),fe.map(e=>e.width),8),je=m(J.map(ie),Me.map(e=>e.height),0,ee,5,!1),ye=[...new Set([...(S?J:je.map(e=>J[e.index])).map(ie),ae,se])];return t.jsx("div",{ref:E,style:{height:C,width:"100%",flex:N?"1 0 auto":void 0,position:"relative"},onPointerLeave:pe.onPointerLeave,children:v.length>0&&F&&t.jsxs(t.Fragment,{children:[t.jsx(p,{tip:P}),t.jsxs("svg",{className:"rp-activity-surface",width:V,height:ee,viewBox:`0 0 ${V} ${ee}`,style:{display:"block"},role:"application","aria-label":y,tabIndex:0,onFocus:pe.onFocus,onBlur:pe.onBlur,onKeyDown:pe.onKeyDown,onPointerMove:e=>{const{x:t,y:a}=d(e,e.currentTarget,{width:V,height:ee});if(t<te||t>ne||a<ae||a>se)return void me();const s=x(re,t);he(s,a)},children:[t.jsx("g",{className:"rp-area-grid",children:ye.map(e=>t.jsx("line",{x1:te,x2:ne,y1:e,y2:e,stroke:T["hl-med"],strokeDasharray:"2 4",fill:"none"},e))}),t.jsx("defs",{children:b.map((e,a)=>t.jsx(f,{id:B+a,color:e.color},e.label))}),b.map((e,a)=>t.jsx(M,{points:ce[a],baseline:ie(Math.max(0,q[0])),color:e.color,id:B+a,strokeWidth:2},e.label)),null!==O&&t.jsx("path",{d:`M${re[O]},${ae}L${re[O]},${se}`,stroke:T.subtle,strokeDasharray:"3 3",fill:"none",pointerEvents:"none"}),!S&&t.jsxs(t.Fragment,{children:[t.jsx("g",{children:ge.map(({index:e,position:a})=>t.jsx("text",{x:Line truncated
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{u as a,f as s,g2 as n,dr as o,g3 as l}from"./index-XeGFdFb3.js";import{a as i,aW as r,aX as c,aY as u,aZ as h,a_ as m,a$ as p,b0 as d,b1 as x}from"./activity-7OeQMmIs.js";import{G as f,C as M}from"./AreaCurve-DQSHOSpG.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-Bm1vmvln.js";import"./AppearanceControls-Q-jHRGz9.js";import"./ItemText-Bvif-kkw.js";import"./logs-DNePHVHd.js";import"./Select-OqnbuzuK.js";import"./array-C0VuvQyb.js";const g=[30,60,120,300,600,900,1800,3600,7200,21600,43200,86400].map(e=>1e3*e);function j(t,a){const[s,n]=e.useState([]),o=e.useRef("");return e.useLayoutEffect(()=>{const e=[a,...t].join("\0");if(e===o.current)return;o.current=e;const s=document.createElement("span");s.className="rp-area-tick",Object.assign(s.style,{position:"absolute",top:"-20000px",whiteSpace:"pre"}),document.body.appendChild(s),n(t.map(e=>{s.textContent=e;const{width:t,height:a}=s.getBoundingClientRect();return{width:t,height:a}})),s.remove()},[t,a]),s}function y({label:y,series:b,timestamps:v,fmt:w,locale:k,height:C=150,baseline:D="zero",window:$,fill:N,bare:S=!1,inset:A=2}){const L=a(),T=i(),B=e.useId(),[E,F]=s(Math.round,120),{tip:P,showAt:I,hide:K}=r(),[W,z]=e.useState(null),O=W&&W.index<v.length?W.index:null,R=$?$.until-$.since:v.length?v[v.length-1]-v[0]:0,_=$?.since,G=$?.until,H=e.useMemo(()=>void 0!==_&&void 0!==G?function(e,t){const a=t-e,s=g.find(e=>a/e<=6)??g[g.length-1],n=s>=864e5?6e4*new Date(t).getTimezoneOffset():0,o=[];for(let l=Math.ceil((e-n)/s)*s+n;l<=t;l+=s)l-e>=.04*a&&t-l>=.04*a&&o.push(l);return{ticks:o,step:s}}(_,G):void 0,[_,G]),X=H?H.step<6e4:R<18e4,Y=H?H.step>=864e5:R>1296e5,Z=e.useMemo(()=>Y?n(k):o(k,X),[k,X,Y]),{yDomain:q,yTicks:J}=e.useMemo(()=>{const e=b.flatMap(e=>e.values.filter(e=>null!==e));let t=0,a=(e=>{const t=Math.pow(10,Math.floor(Math.log10(e))),a=e/t;return([1,1.2,1.5,2,2.5,3,4,5,6,8,10].find(e=>a<=e)??10)*t})(1.08*Math.max(1,...e));if("auto"===D&&e.length){const s=Math.min(...e),n=Math.max(...e),o=(e=>{const t=Math.pow(10,Math.floor(Math.log10(Math.max(e,1e-9)))),a=e/t;return(a<=1?.2:a<=2?.5:a<=5?1:2)*t})(Math.max(n-s,.02*n,1));t=Math.max(0,Math.floor(s/o)*o-o),a=Math.ceil(n/o)*o+o}return{yDomain:[t,a],yTicks:"auto"===D?[t,(t+a)/2,a]:[a/2,a]}},[b,D]),Q=e.useMemo(()=>{const e=v.length-1;return H?H.ticks:[...new Set((X?[0,Math.round(e/2),e]:[0,Math.round(e/3),Math.round(2*e/3),e]).map(e=>v[e]))]},[H,X,v]),U=e.useMemo(()=>void 0!==_&&void 0!==G?[_,G]:[Math.min(...v),Math.max(...v)],[_,G,v]),V=F?.width??0,ee=F?.height??C,te=S?A:20,ae=S?2:8,se=ee-(S?2:30),ne=V-(S?A:64),oe=e.useMemo(()=>[Math.min(U[0],...v),Math.max(U[1],...v)],[U,v]),le=e.useCallback(e=>c(e,oe,[te,ne]),[oe,te,ne]),ie=e.useCallback(e=>c(e,q,[se,ae]),[q,se,ae]),re=e.useMemo(()=>v.map(le),[v,le]),ce=e.useMemo(()=>b.map(e=>v.map((t,a)=>null==e.values[a]?null:{x:re[a],y:ie(e.values[a])})),[b,v,re,ie]),ue={x:te,y:ae,width:ne-te,height:se-ae},he=(e,t)=>z({index:e,y:t}),me=()=>{z(null),K()};e.useLayoutEffect(()=>{null!==O&&b.some(e=>null!=e.values[O])?I({x:re[O],y:W?.y??(ae+se)/2,width:V,bounds:S&&E.current?u(E.current):ue,label:l(k).format(v[O]),lines:b.filter(e=>null!=e.values[O]).sort((e,t)=>e.label<t.label?-1:e.label>t.label?1:0).map(e=>L("ui.valuePair",{label:e.label,value:w(e.values[O])}))}):K()});const pe=h(v.length,he,me),de=e.useMemo(()=>Q.map(e=>Z.format(e)),[Q,Z]),xe=e.useMemo(()=>J.map(w),[J,w]),fe=j(de,k),Me=j(xe,k),ge=H?m(Q.map(le),fe.map(e=>e.width),0,V,16,!0):function(e,t,a){const s=a=>[e[a]-(t[a]??0)/2,e[a]+(t[a]??0)/2],n=e.length-1,o=[];let l=1/0;for(let i=n;i>=0;i--){const[t,r]=s(i);r+a>l||i>0&&i<n&&t<s(0)[1]+a||(o.unshift({index:i,position:e[i]}),l=t)}return o}(Q.map(le),fe.map(e=>e.width),8),je=m(J.map(ie),Me.map(e=>e.height),0,ee,5,!1),ye=[...new Set([...(S?J:je.map(e=>J[e.index])).map(ie),ae,se])];return t.jsx("div",{ref:E,style:{height:C,width:"100%",flex:N?"1 0 auto":void 0,position:"relative"},onPointerLeave:pe.onPointerLeave,children:v.length>0&&F&&t.jsxs(t.Fragment,{children:[t.jsx(p,{tip:P}),t.jsxs("svg",{className:"rp-activity-surface",width:V,height:ee,viewBox:`0 0 ${V} ${ee}`,style:{display:"block"},role:"application","aria-label":y,tabIndex:0,onFocus:pe.onFocus,onBlur:pe.onBlur,onKeyDown:pe.onKeyDown,onPointerMove:e=>{const{x:t,y:a}=d(e,e.currentTarget,{width:V,height:ee});if(t<te||t>ne||a<ae||a>se)return void me();const s=x(re,t);he(s,a)},children:[t.jsx("g",{className:"rp-area-grid",children:ye.map(e=>t.jsx("line",{x1:te,x2:ne,y1:e,y2:e,stroke:T["hl-med"],strokeDasharray:"2 4",fill:"none"},e))}),t.jsx("defs",{children:b.map((e,a)=>t.jsx(f,{id:B+a,color:e.color},e.label))}),b.map((e,a)=>t.jsx(M,{points:ce[a],baseline:ie(Math.max(0,q[0])),color:e.color,id:B+a,strokeWidth:2},e.label)),null!==O&&t.jsx("path",{d:`M${re[O]},${ae}L${re[O]},${se}`,stroke:T.subtle,strokeDasharray:"3 3",fill:"none",pointerEvents:"none"}),!S&&t.jsxs(t.Fragment,{children:[t.jsx("g",{children:ge.map(({index:e,position:a})=>t.jsx("text",{x:Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{ez as e,g4 as t,cC as i,fj as a,cP as s,g5 as l,g6 as n,em as r,en as o,ep as d,eP as c,cL as u,ey as m,eo as f,cK as v,cQ as p,cR as g,cS as b,c$ as h,d0 as R,d1 as I,d2 as M,d3 as P,cU as y,cD as S,cV as C,aD as V}from"./index-C-WQXF8v.js";import{r as x,$ as D}from"./vendor-react-64fcanlc.js";function $(t,i){const a=x.useRef(!0),s=x.useRef(null);let l=e(t);x.useEffect(()=>(a.current=!0,()=>{a.current=!1}),[]),x.useEffect(()=>{let e=s.current;a.current?a.current=!1:e&&!i.some((t,i)=>!Object.is(t,e[i]))||l(),s.current=i},i)}function E(e,a,s){let{labelProps:l,inputProps:n,descriptionProps:r,errorMessageProps:o,isSelected:d,isPressed:c,isDisabled:u,isReadOnly:m,isInvalid:f,validationErrors:v,validationDetails:p}=t(e,a,s),{isIndeterminate:g}=e;return x.useEffect(()=>{s.current&&(s.current.indeterminate=!!g)}),{labelProps:i(l,x.useMemo(()=>({onMouseDown:e=>e.preventDefault()}),[])),inputProps:n,descriptionProps:r,errorMessageProps:o,isSelected:d,isPressed:c,isDisabled:u,isReadOnly:m,isInvalid:f,validationErrors:v,validationDetails:p}}const B=new WeakMap;var O;function k(e,t){let{getRowText:i=e=>t.collection.getTextValue?.(e)??t.collection.getItem(e)?.textValue}=e,a=o((s=O)&&s.__esModule?s.default:s,"@react-aria/grid");var s;let l=t.selectionManager.rawSelection,n=x.useRef(l),r=x.useCallback(()=>{if(!t.selectionManager.isFocused||l===n.current)return void(n.current=l);let e=F(l,n.current),s=F(n.current,l),r="replace"===t.selectionManager.selectionBehavior,o=[];if(1===t.selectionManager.selectedKeys.size&&r){let e=t.selectionManager.selectedKeys.keys().next().value;if(null!=e&&t.collection.getItem(e)){let t=i(e);t&&o.push(a.format("selectedItem",{item:t}))}}else if(1===e.size&&0===s.size){let t=e.keys().next().value;if(null!=t){let e=i(t);e&&o.push(a.format("selectedItem",{item:e}))}}else if(1===s.size&&0===e.size){let e=s.keys().next().value;if(null!=e&&t.collection.getItem(e)){let t=i(e);t&&o.push(a.format("deselectedItem",{item:t}))}}"multiple"===t.selectionManager.selectionMode&&(0===o.length||"all"===l||l.size>1||"all"===n.current||n.current?.size>1)&&o.push("all"===l?a.format("selectedAll"):a.format("selectedCount",{count:l.size})),o.length>0&&d(o.join(" ")),n.current=l},[l,t.selectionManager.selectedKeys,t.selectionManager.isFocused,t.selectionManager.selectionBehavior,t.selectionManager.selectionMode,t.collection,i,a]);$(()=>{if(!t.selectionManager.isFocused){let e=requestAnimationFrame(r);return()=>cancelAnimationFrame(e)}r()},[l,t.selectionManager.isFocused])}function F(e,t){let i=new Set;if("all"===e||"all"===t)return i;for(let a of e.keys())t.has(a)||i.add(a);return i}function w(e,t){let i=t?.isDisabled,[a,s]=x.useState(!1);return c(()=>{if(e?.current&&!i){let t=()=>{if(e.current){let t=u(e.current,{tabbable:!0});s(!!t.nextNode())}};t();let i=new MutationObserver(t);return i.observe(e.current,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["tabIndex","disabled"]}),()=>{i.disconnect()}}}),!i&&a}function T(e){let t=o((i=O)&&i.__esModule?i.default:i,"@react-aria/grid");var i;let a=m(),s=("pointer"===a||"virtual"===a||null==a)&&"undefined"!=typeof window&&"ontouchstart"in window,l=x.useMemo(()=>{let i,a=e.selectionManager.selectionMode,l=e.selectionManager.selectionBehavior;return s&&(i=t.format("longPressToSelect")),"replace"===l&&"none"!==a&&e.hasItemActions?i:void 0},[e.selectionManager.selectionMode,e.selectionManager.selectionBehavior,e.hasItemActions,t,s]);return f(l)}function z(e,t){let{key:i}=e,a=t.selectionManager,s=v(),l=!t.selectionManager.canSelectItem(i),n=t.selectionManager.isSelected(i);var r;return{checkboxProps:{id:s,"aria-label":o((r=O)&&r.__esModule?r.default:r,"@react-aria/grid").format("select"),isSelected:n,isDisabled:l,onChange:()=>a.toggleSelection(i)}}}O={"ar-AE":r,"bg-BG":r,"cs-CZ":r,"da-DK":r,"de-DE":r,"el-GR":r,"en-US":{deselectedItem:e=>`${e.item} not selected.`,select:"Select",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"No items selected",one:()=>`${t.number(e.count)} item selected`,other:()=>`${t.number(e.count)} items selected`})}.`,selectedAll:"All items selected.",selectedItem:e=>`${e.item} selected.`,longPressToSelect:"Long press to enter selection mode."},"es-ES":r,"et-EE":r,"fi-FI":r,"fr-FR":r,"he-IL":r,"hr-HR":r,"hu-HU":r,"it-IT":r,"ja-JP":r,"ko-KR":r,"lt-LT":r,"lv-LV":r,"nb-NO":r,"nl-NL":r,"pl-PL":r,"pt-BR":r,"pt-PT":r,"ro-RO":r,"ru-RU":r,"sk-SK":r,"sl-SI":r,"sr-SP":r,"sv-SE":r,"tr-TR":r,"uk-UA":r,"zh-CN":{deselectedItem:e=>`未选择 ${e.item}。`,longPressToSelect:"长按以进入选择模式。",select:"选择",selectedAll:"已选择所有项目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未选择项目",one:()=>`已选择 ${t.number(e.count)} 个项目`,other:()=>`已选择 ${t.number(e.count)} 个项目`})}。`,selectedItem:e=>`已选择 ${e.item}。`},"zh-TW":{deselectedItem:e=>`未選取「${e.item}」。`,longPressToSelect:"長按以進入選擇模式。",select:"選取",selectedAll:"已選取所有項目。",selectedCount:(e,t)=>Line truncated
|
||||
import{ez as e,g4 as t,cC as i,fj as a,cP as s,g5 as l,g6 as n,em as r,en as o,ep as d,eP as c,cL as u,ey as m,eo as f,cK as v,cQ as p,cR as g,cS as b,c$ as h,d0 as R,d1 as I,d2 as M,d3 as P,cU as y,cD as S,cV as C,aD as V}from"./index-XeGFdFb3.js";import{r as x,$ as D}from"./vendor-react-64fcanlc.js";function $(t,i){const a=x.useRef(!0),s=x.useRef(null);let l=e(t);x.useEffect(()=>(a.current=!0,()=>{a.current=!1}),[]),x.useEffect(()=>{let e=s.current;a.current?a.current=!1:e&&!i.some((t,i)=>!Object.is(t,e[i]))||l(),s.current=i},i)}function E(e,a,s){let{labelProps:l,inputProps:n,descriptionProps:r,errorMessageProps:o,isSelected:d,isPressed:c,isDisabled:u,isReadOnly:m,isInvalid:f,validationErrors:v,validationDetails:p}=t(e,a,s),{isIndeterminate:g}=e;return x.useEffect(()=>{s.current&&(s.current.indeterminate=!!g)}),{labelProps:i(l,x.useMemo(()=>({onMouseDown:e=>e.preventDefault()}),[])),inputProps:n,descriptionProps:r,errorMessageProps:o,isSelected:d,isPressed:c,isDisabled:u,isReadOnly:m,isInvalid:f,validationErrors:v,validationDetails:p}}const B=new WeakMap;var O;function k(e,t){let{getRowText:i=e=>t.collection.getTextValue?.(e)??t.collection.getItem(e)?.textValue}=e,a=o((s=O)&&s.__esModule?s.default:s,"@react-aria/grid");var s;let l=t.selectionManager.rawSelection,n=x.useRef(l),r=x.useCallback(()=>{if(!t.selectionManager.isFocused||l===n.current)return void(n.current=l);let e=F(l,n.current),s=F(n.current,l),r="replace"===t.selectionManager.selectionBehavior,o=[];if(1===t.selectionManager.selectedKeys.size&&r){let e=t.selectionManager.selectedKeys.keys().next().value;if(null!=e&&t.collection.getItem(e)){let t=i(e);t&&o.push(a.format("selectedItem",{item:t}))}}else if(1===e.size&&0===s.size){let t=e.keys().next().value;if(null!=t){let e=i(t);e&&o.push(a.format("selectedItem",{item:e}))}}else if(1===s.size&&0===e.size){let e=s.keys().next().value;if(null!=e&&t.collection.getItem(e)){let t=i(e);t&&o.push(a.format("deselectedItem",{item:t}))}}"multiple"===t.selectionManager.selectionMode&&(0===o.length||"all"===l||l.size>1||"all"===n.current||n.current?.size>1)&&o.push("all"===l?a.format("selectedAll"):a.format("selectedCount",{count:l.size})),o.length>0&&d(o.join(" ")),n.current=l},[l,t.selectionManager.selectedKeys,t.selectionManager.isFocused,t.selectionManager.selectionBehavior,t.selectionManager.selectionMode,t.collection,i,a]);$(()=>{if(!t.selectionManager.isFocused){let e=requestAnimationFrame(r);return()=>cancelAnimationFrame(e)}r()},[l,t.selectionManager.isFocused])}function F(e,t){let i=new Set;if("all"===e||"all"===t)return i;for(let a of e.keys())t.has(a)||i.add(a);return i}function w(e,t){let i=t?.isDisabled,[a,s]=x.useState(!1);return c(()=>{if(e?.current&&!i){let t=()=>{if(e.current){let t=u(e.current,{tabbable:!0});s(!!t.nextNode())}};t();let i=new MutationObserver(t);return i.observe(e.current,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["tabIndex","disabled"]}),()=>{i.disconnect()}}}),!i&&a}function T(e){let t=o((i=O)&&i.__esModule?i.default:i,"@react-aria/grid");var i;let a=m(),s=("pointer"===a||"virtual"===a||null==a)&&"undefined"!=typeof window&&"ontouchstart"in window,l=x.useMemo(()=>{let i,a=e.selectionManager.selectionMode,l=e.selectionManager.selectionBehavior;return s&&(i=t.format("longPressToSelect")),"replace"===l&&"none"!==a&&e.hasItemActions?i:void 0},[e.selectionManager.selectionMode,e.selectionManager.selectionBehavior,e.hasItemActions,t,s]);return f(l)}function z(e,t){let{key:i}=e,a=t.selectionManager,s=v(),l=!t.selectionManager.canSelectItem(i),n=t.selectionManager.isSelected(i);var r;return{checkboxProps:{id:s,"aria-label":o((r=O)&&r.__esModule?r.default:r,"@react-aria/grid").format("select"),isSelected:n,isDisabled:l,onChange:()=>a.toggleSelection(i)}}}O={"ar-AE":r,"bg-BG":r,"cs-CZ":r,"da-DK":r,"de-DE":r,"el-GR":r,"en-US":{deselectedItem:e=>`${e.item} not selected.`,select:"Select",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"No items selected",one:()=>`${t.number(e.count)} item selected`,other:()=>`${t.number(e.count)} items selected`})}.`,selectedAll:"All items selected.",selectedItem:e=>`${e.item} selected.`,longPressToSelect:"Long press to enter selection mode."},"es-ES":r,"et-EE":r,"fi-FI":r,"fr-FR":r,"he-IL":r,"hr-HR":r,"hu-HU":r,"it-IT":r,"ja-JP":r,"ko-KR":r,"lt-LT":r,"lv-LV":r,"nb-NO":r,"nl-NL":r,"pl-PL":r,"pt-BR":r,"pt-PT":r,"ro-RO":r,"ru-RU":r,"sk-SK":r,"sl-SI":r,"sr-SP":r,"sv-SE":r,"tr-TR":r,"uk-UA":r,"zh-CN":{deselectedItem:e=>`未选择 ${e.item}。`,longPressToSelect:"长按以进入选择模式。",select:"选择",selectedAll:"已选择所有项目。",selectedCount:(e,t)=>`${t.plural(e.count,{"=0":"未选择项目",one:()=>`已选择 ${t.number(e.count)} 个项目`,other:()=>`已选择 ${t.number(e.count)} 个项目`})}。`,selectedItem:e=>`已选择 ${e.item}。`},"zh-TW":{deselectedItem:e=>`未選取「${e.item}」。`,longPressToSelect:"長按以進入選擇模式。",select:"選取",selectedAll:"已選取所有項目。",selectedCount:(e,t)=>Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as r}from"./vendor-react-64fcanlc.js";import{bN as t,gr as o,bM as n,fl as a,bq as c,u as s,df as i,B as l,fr as d,ft as p}from"./index-C-WQXF8v.js";import{S as m,a as u,E as f,C as g,b,l as v,c as x,h,d as y,r as k,e as w,f as C,g as j,i as R,j as A,s as E,k as L,t as M,m as N,n as F,o as O,p as S,q as $,u as q,v as B,w as D,x as I,y as T,z as H,D as K,R as V,A as z,B as G,F as U,G as W,H as P,I as J,J as _,K as Q,L as X}from"./vendor-editor-BRV-W12m.js";import{d as Y,s as Z}from"./daeTokens-BVtuNnWZ.js";import{s as ee}from"./nodes-D39HfuKn.js";import{M as re}from"./AppearanceControls-CRuy5orf.js";import{A as te,n as oe}from"./logs-B-rowQjz.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./index-DUM-iwa2.js";import"./ItemText-CnmwoDur.js";import"./Select-B67-iUq2.js";const ne=m.define({name:"dae",languageData:{commentTokens:{line:"#"},closeBrackets:{brackets:["(","{","'",'"']}},startState:Z,token:Y}),ae=["global","subscription","node","group","dns","routing"].map(e=>({label:e,type:"keyword"})),ce=n.map(e=>({label:e,type:"property",apply:e+": "})),se=["domain","dip","sip","dport","sport","l4proto","ipversion","pname","mac","dscp","qname","qtype","upstream"].map(e=>({label:e,type:"function",apply:e+"("})),ie=["geosite","geoip","suffix","full","keyword","regex"].map(e=>({label:e,type:"constant",apply:e+":"})),le=o.map(e=>({label:e,type:"constant"})),de=t.map(e=>({label:e,type:"keyword"})),pe=[{label:"fallback",type:"keyword",apply:"fallback: "},{label:"include",type:"keyword",apply:"include "}];function me(e){return u({override:[r=>function(e,r){const t=e.matchBefore(/[\w.-]*/);if(!t)return null;const o=e.state.doc.lineAt(e.pos),n=o.text.slice(0,e.pos-o.from),a=/->\s*[\w.-]*$/.test(n)||/^\s*fallback:\s*[\w.-]*$/.test(n);if(t.from===t.to&&!e.explicit&&!a)return null;const c=e.state.doc.sliceString(0,e.pos),{blocks:s,tokens:i}=ee(c),l=i.at(-1);if(l?.to===e.pos&&("quoted"===l.kind||"comment"===l.kind))return null;const d=s.find(r=>r.close===e.pos)?.name;let p;if(a)p=[...r().map(e=>({label:e.name,apply:e.written,type:"variable"})),...de];else if(/\b(domain|dip|sip|qname)\(\s*[\w.-]*$/.test(n))p=ie;else if(void 0===d)p=ae.map(e=>({...e,apply:(r,t,o,n)=>{const a=e.label+" {\n \n}";r.dispatch({changes:{from:o,to:n,insert:a},selection:{anchor:o+e.label.length+4}})}}));else if("routing"===d||"dns"===d)p=[...se,...pe];else if("global"===d)p=ce;else{if("group"!==d)return null;p=/\bpolicy\s*:\s*[\w.-]*$/.test(n)?le:[...le.map(e=>({...e,apply:"policy: "+e.label})),{label:"filter",type:"property",apply:"filter: "}]}return{from:t.from,options:p,validFor:/^[\w.-]*$/}}(r,e)]})}function ue(e){let r=!1;const t=r=>(r.state.readOnly&&e(),!1);return f.domEventHandlers({keydown:(e,r)=>function(e){return"Backspace"===e.key||"Delete"===e.key||"Enter"===e.key||1===[...e.key].length&&!e.ctrlKey&&!e.metaKey}(e)&&t(r),paste:(e,r)=>t(r),cut:(e,r)=>t(r),pointerdown:e=>(r="touch"===e.pointerType,!1),click:(e,o)=>r&&t(o)})}const fe=[["Completions","cm.completions"],["Find","cm.find"],["Replace","cm.replace"],["next","cm.next"],["previous","cm.previous"],["all","cm.all"],["match case","cm.matchCase"],["regexp","cm.regexp"],["by word","cm.byWord"],["replace","cm.replaceOne"],["replace all","cm.replaceAll"],["close","ui.close"],["Go to line","cm.gotoLine"],["go","cm.go"],["current match","cm.currentMatch"],["replaced $ matches","cm.replacedMatches"],["replaced match on line $","cm.replacedOnLine"],["on line","cm.onLine"],["Selection deleted","cm.selectionDeleted"],["Control character","cm.controlCharacter"]],ge=e=>b.phrases.of(Object.fromEntries(fe.map(([r,t])=>[r,e(t)]))),be=f.theme({"&":{backgroundColor:"var(--rp-base)",color:"var(--rp-text)",border:"1px solid var(--rp-hl-high)",borderRadius:"var(--rp-r-md)",fontSize:"var(--rp-text-sm)"},"&.cm-focused":{outline:"none",borderColor:"var(--rp-text)"},".cm-scroller":{fontFamily:"var(--rp-font-mono)",lineHeight:"var(--rp-line-body)",fontVariantLigatures:"none",borderRadius:"calc(var(--rp-r-md) - 1px)"},".cm-content":{padding:"var(--rp-space-2) 0",caretColor:"var(--rp-text)"},".cm-line":{padding:"0 var(--rp-space-3)"},".cm-gutters":{backgroundColor:"var(--rp-base)",color:"var(--rp-muted)",border:"none"},".cm-lineNumbers .cm-gutterElement":{padding:"0 var(--rp-space-2) 0 var(--rp-space-3)",minWidth:"40px"},".cm-activeLine, .cm-focusLine":{backgroundColor:"color-mix(in srgb, var(--rp-hl-med) 60%, transparent)"},".cm-activeLineGutter":{backgroundColor:"transparent",color:"var(--rp-text)"},".cm-selectionBackground, &.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--rp-hl-high)"},".cm-cursor":{borderLeftColor:"var(--rp-text)"},".cm-matchingBracket":{backgroundColor:"color-mix(in srgb, var(--rp-accent) 20%, transparent)",outline:"none"},".cm-selectionMatch":{backgroundColor:"color-mix(in srgb, var(--rp-notice) 25%, transparent)"},".cm-gutter-lint":{width:"12px"},".cm-gutter-lint .cm-gutterElement":{padding:"0"},".cm-lint-marker":{width:"8px",height:"8px",marginLine truncated
|
||||
import{r as e,j as r}from"./vendor-react-64fcanlc.js";import{bN as t,gr as o,bM as n,fl as a,bq as c,u as s,df as i,B as l,fr as d,ft as p}from"./index-XeGFdFb3.js";import{S as m,a as u,E as f,C as g,b,l as v,c as x,h,d as y,r as k,e as w,f as C,g as j,i as R,j as A,s as E,k as L,t as M,m as N,n as F,o as O,p as S,q as $,u as q,v as B,w as D,x as I,y as T,z as H,D as K,R as V,A as z,B as G,F as U,G as W,H as P,I as J,J as _,K as Q,L as X}from"./vendor-editor-BRV-W12m.js";import{d as Y,s as Z}from"./daeTokens-BVtuNnWZ.js";import{s as ee}from"./nodes-Bm1vmvln.js";import{M as re}from"./AppearanceControls-Q-jHRGz9.js";import{A as te,n as oe}from"./logs-DNePHVHd.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./index-DUM-iwa2.js";import"./ItemText-Bvif-kkw.js";import"./Select-OqnbuzuK.js";const ne=m.define({name:"dae",languageData:{commentTokens:{line:"#"},closeBrackets:{brackets:["(","{","'",'"']}},startState:Z,token:Y}),ae=["global","subscription","node","group","dns","routing"].map(e=>({label:e,type:"keyword"})),ce=n.map(e=>({label:e,type:"property",apply:e+": "})),se=["domain","dip","sip","dport","sport","l4proto","ipversion","pname","mac","dscp","qname","qtype","upstream"].map(e=>({label:e,type:"function",apply:e+"("})),ie=["geosite","geoip","suffix","full","keyword","regex"].map(e=>({label:e,type:"constant",apply:e+":"})),le=o.map(e=>({label:e,type:"constant"})),de=t.map(e=>({label:e,type:"keyword"})),pe=[{label:"fallback",type:"keyword",apply:"fallback: "},{label:"include",type:"keyword",apply:"include "}];function me(e){return u({override:[r=>function(e,r){const t=e.matchBefore(/[\w.-]*/);if(!t)return null;const o=e.state.doc.lineAt(e.pos),n=o.text.slice(0,e.pos-o.from),a=/->\s*[\w.-]*$/.test(n)||/^\s*fallback:\s*[\w.-]*$/.test(n);if(t.from===t.to&&!e.explicit&&!a)return null;const c=e.state.doc.sliceString(0,e.pos),{blocks:s,tokens:i}=ee(c),l=i.at(-1);if(l?.to===e.pos&&("quoted"===l.kind||"comment"===l.kind))return null;const d=s.find(r=>r.close===e.pos)?.name;let p;if(a)p=[...r().map(e=>({label:e.name,apply:e.written,type:"variable"})),...de];else if(/\b(domain|dip|sip|qname)\(\s*[\w.-]*$/.test(n))p=ie;else if(void 0===d)p=ae.map(e=>({...e,apply:(r,t,o,n)=>{const a=e.label+" {\n \n}";r.dispatch({changes:{from:o,to:n,insert:a},selection:{anchor:o+e.label.length+4}})}}));else if("routing"===d||"dns"===d)p=[...se,...pe];else if("global"===d)p=ce;else{if("group"!==d)return null;p=/\bpolicy\s*:\s*[\w.-]*$/.test(n)?le:[...le.map(e=>({...e,apply:"policy: "+e.label})),{label:"filter",type:"property",apply:"filter: "}]}return{from:t.from,options:p,validFor:/^[\w.-]*$/}}(r,e)]})}function ue(e){let r=!1;const t=r=>(r.state.readOnly&&e(),!1);return f.domEventHandlers({keydown:(e,r)=>function(e){return"Backspace"===e.key||"Delete"===e.key||"Enter"===e.key||1===[...e.key].length&&!e.ctrlKey&&!e.metaKey}(e)&&t(r),paste:(e,r)=>t(r),cut:(e,r)=>t(r),pointerdown:e=>(r="touch"===e.pointerType,!1),click:(e,o)=>r&&t(o)})}const fe=[["Completions","cm.completions"],["Find","cm.find"],["Replace","cm.replace"],["next","cm.next"],["previous","cm.previous"],["all","cm.all"],["match case","cm.matchCase"],["regexp","cm.regexp"],["by word","cm.byWord"],["replace","cm.replaceOne"],["replace all","cm.replaceAll"],["close","ui.close"],["Go to line","cm.gotoLine"],["go","cm.go"],["current match","cm.currentMatch"],["replaced $ matches","cm.replacedMatches"],["replaced match on line $","cm.replacedOnLine"],["on line","cm.onLine"],["Selection deleted","cm.selectionDeleted"],["Control character","cm.controlCharacter"]],ge=e=>b.phrases.of(Object.fromEntries(fe.map(([r,t])=>[r,e(t)]))),be=f.theme({"&":{backgroundColor:"var(--rp-base)",color:"var(--rp-text)",border:"1px solid var(--rp-hl-high)",borderRadius:"var(--rp-r-md)",fontSize:"var(--rp-text-sm)"},"&.cm-focused":{outline:"none",borderColor:"var(--rp-text)"},".cm-scroller":{fontFamily:"var(--rp-font-mono)",lineHeight:"var(--rp-line-body)",fontVariantLigatures:"none",borderRadius:"calc(var(--rp-r-md) - 1px)"},".cm-content":{padding:"var(--rp-space-2) 0",caretColor:"var(--rp-text)"},".cm-line":{padding:"0 var(--rp-space-3)"},".cm-gutters":{backgroundColor:"var(--rp-base)",color:"var(--rp-muted)",border:"none"},".cm-lineNumbers .cm-gutterElement":{padding:"0 var(--rp-space-2) 0 var(--rp-space-3)",minWidth:"40px"},".cm-activeLine, .cm-focusLine":{backgroundColor:"color-mix(in srgb, var(--rp-hl-med) 60%, transparent)"},".cm-activeLineGutter":{backgroundColor:"transparent",color:"var(--rp-text)"},".cm-selectionBackground, &.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--rp-hl-high)"},".cm-cursor":{borderLeftColor:"var(--rp-text)"},".cm-matchingBracket":{backgroundColor:"color-mix(in srgb, var(--rp-accent) 20%, transparent)",outline:"none"},".cm-selectionMatch":{backgroundColor:"color-mix(in srgb, var(--rp-notice) 25%, transparent)"},".cm-gutter-lint":{width:"12px"},".cm-gutter-lint .cm-gutterElement":{padding:"0"},".cm-lint-marker":{width:"8px",height:"8px",marginLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as s,j as e}from"./vendor-react-64fcanlc.js";import{$ as a}from"./Checkbox-DiXDVgGl.js";import{C as r}from"./ItemText-CnmwoDur.js";import{da as i,I as l,cq as n,ch as c,B as d}from"./index-C-WQXF8v.js";function o({label:l,description:n,isSelected:c,onChange:d,isDisabled:o}){const t=s.useId(),h=s.useId(),x=i({isDisabled:o});return e.jsxs(a,{className:"rp-radio rp-checkbox",isSelected:c,onChange:d,isDisabled:x.isDisabled,"aria-labelledby":t,"aria-describedby":n?h:void 0,children:[e.jsx("span",{className:"rp-checkbox-mark",children:e.jsx(r,{})}),e.jsxs("span",{className:"rp-radio-text",children:[e.jsx("span",{id:t,children:l}),n&&e.jsx("span",{id:h,className:"rp-note",children:n})]})]})}function t(s){return e.jsx(l,{...s,children:e.jsx("path",{fill:"currentColor",d:"M17.78 1.757C16.51.716 14.555.858 13.33 2.08L3.079 12.334c-.32.32-.559.717-.69 1.15l-1.384 4.584c-.08.265-.007.552.188.747.142.143.334.22.53.22q.11 0 .217-.032l4.582-1.384c.434-.13.832-.368 1.151-.688L18.028 6.575c.648-.647.993-1.545.948-2.46s-.482-1.775-1.195-2.358M2.846 17.163l.98-3.246q.042-.135.113-.257l2.41 2.409q-.123.07-.259.114zM16.966 5.516l-9.525 9.526-2.475-2.476 9.425-9.425c.386-.387.896-.586 1.39-.586.38 0 .752.119 1.05.362.392.321.621.772.646 1.272.025.494-.161.977-.51 1.327"})})}function h({children:s}){return e.jsx("div",{className:"rp-toolbar",children:s})}function x({children:s,negate:a,onNegate:r,negateLabel:i,removeLabel:l,onRemove:o,isDisabled:t,removeDisabled:x}){return e.jsxs(n,{children:[s,e.jsxs(h,{children:[e.jsx(c,{isDisabled:t,isSelected:a,onChange:r,children:i}),e.jsx("span",{className:"rp-grow"}),e.jsx(d,{small:!0,isDisabled:t||x,onPress:o,children:l})]})]})}export{o as C,t as E,x as a,h as b};
|
||||
import{r as s,j as e}from"./vendor-react-64fcanlc.js";import{$ as a}from"./Checkbox-BewExwKL.js";import{C as r}from"./ItemText-Bvif-kkw.js";import{da as i,I as l,cq as n,ch as c,B as d}from"./index-XeGFdFb3.js";function o({label:l,description:n,isSelected:c,onChange:d,isDisabled:o}){const t=s.useId(),h=s.useId(),x=i({isDisabled:o});return e.jsxs(a,{className:"rp-radio rp-checkbox",isSelected:c,onChange:d,isDisabled:x.isDisabled,"aria-labelledby":t,"aria-describedby":n?h:void 0,children:[e.jsx("span",{className:"rp-checkbox-mark",children:e.jsx(r,{})}),e.jsxs("span",{className:"rp-radio-text",children:[e.jsx("span",{id:t,children:l}),n&&e.jsx("span",{id:h,className:"rp-note",children:n})]})]})}function t(s){return e.jsx(l,{...s,children:e.jsx("path",{fill:"currentColor",d:"M17.78 1.757C16.51.716 14.555.858 13.33 2.08L3.079 12.334c-.32.32-.559.717-.69 1.15l-1.384 4.584c-.08.265-.007.552.188.747.142.143.334.22.53.22q.11 0 .217-.032l4.582-1.384c.434-.13.832-.368 1.151-.688L18.028 6.575c.648-.647.993-1.545.948-2.46s-.482-1.775-1.195-2.358M2.846 17.163l.98-3.246q.042-.135.113-.257l2.41 2.409q-.123.07-.259.114zM16.966 5.516l-9.525 9.526-2.475-2.476 9.425-9.425c.386-.387.896-.586 1.39-.586.38 0 .752.119 1.05.362.392.321.621.772.646 1.272.025.494-.161.977-.51 1.327"})})}function h({children:s}){return e.jsx("div",{className:"rp-toolbar",children:s})}function x({children:s,negate:a,onNegate:r,negateLabel:i,removeLabel:l,onRemove:o,isDisabled:t,removeDisabled:x}){return e.jsxs(n,{children:[s,e.jsxs(h,{children:[e.jsx(c,{isDisabled:t,isSelected:a,onChange:r,children:i}),e.jsx("span",{className:"rp-grow"}),e.jsx(d,{small:!0,isDisabled:t||x,onPress:o,children:l})]})]})}export{o as C,t as E,x as a,h as b};
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CodeEditor-bkEq3lkg.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./index-C-WQXF8v.js","./index-BClYdby3.css","./vendor-editor-BRV-W12m.js","./index-DUM-iwa2.js","./daeTokens-BVtuNnWZ.js","./nodes-D39HfuKn.js","./AppearanceControls-CRuy5orf.js","./ItemText-CnmwoDur.js","./logs-B-rowQjz.js","./Select-B67-iUq2.js"])))=>i.map(i=>d[i]);
|
||||
import{r as e,j as n}from"./vendor-react-64fcanlc.js";import{h as i,u as s,al as a,l as r,q as t,r as o,x as l,c4 as c,w as d,c6 as u,Y as g,A as f,aK as p,c2 as m,cw as h,dk as b,dl as x,a1 as v,a0 as j,a9 as y,bO as w,z as k,cv as N,dm as S,t as D,aM as C,aV as T,B as P,aA as O,E as _,bk as R,ax as E,af as M,b5 as A,cq as L,aL as F,C as I,m as H,dn as q,bF as $,bG as K,df as V,a as W,b as U,v as B,aN as z,cs as G,p as J,aD as Q,aG as Y,d9 as X,_ as Z,av as ee,T as ne}from"./index-C-WQXF8v.js";import{a as ie,u as se,w as ae,e as re,c as te,H as oe,I as le,K as ce,D as de,L as ue,J as ge,S as fe}from"./logs-B-rowQjz.js";import{T as pe}from"./Tabs-DVxF89X7.js";import{T as me}from"./Toolbar-Yd2KR-zd.js";import{aL as he,a2 as be,aa as xe,aM as ve,y as je,aN as ye,a8 as we,D as ke}from"./activity-BQ91A1_2.js";import{s as Ne,N as Se,O as De,r as Ce,ag as Te,ah as Pe,ai as Oe,aj as _e,K as Re,ak as Ee}from"./nodes-D39HfuKn.js";import{s as Me,c as Ae,r as Le,a as Fe,b as Ie,d as He,e as qe,f as $e,g as Ke,h as Ve,v as We,i as Ue,j as Be,k as ze,l as Ge,m as Je,n as Qe,o as Ye,w as Xe}from"./nav-DrKp2w73.js";import{u as Ze,c as en}from"./flows-Bm5f0qGx.js";import{d as nn}from"./files-Dt8K7QfP.js";import{D as sn}from"./Table-DDHjB8la.js";import{T as an}from"./TimeCell-B2wYTQbc.js";import{L as rn}from"./AppearanceControls-CRuy5orf.js";import{N as tn,t as on}from"./NumberField-Cd9mdKJI.js";import{A as ln}from"./AddCircle-Bsrf2UoO.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Select-B67-iUq2.js";import"./ItemText-CnmwoDur.js";import"./Checkbox-DiXDVgGl.js";import"./Virtualizer-DBBzjqSD.js";function cn(e,n,s,a="main"){if(!s.daeText)return[];const{blocks:r,tokens:t}=Ne(e),o=s.globalSettings;return r.flatMap(s=>{if(s.name===o?.name){const a=r.filter(e=>e.name===o.name).indexOf(s),l=Se(e,s,t);return l.filter(e=>1===l.filter(n=>n.name===e.name).length&&o.fields.some(n=>n.key===e.name)).map(r=>({kind:s.name,from:r.from,to:r.to,label:r.name,line:e.slice(0,r.from).split("\n").length,href:i("config",{tab:"global",source:n,section:String(a),field:r.name})}))}const l=Me[s.name];return"subscription"===s.name?"main"!==a?[]:De(e).filter(e=>e.from>s.open&&e.to<=s.close).map(e=>({kind:s.name,from:e.from,to:e.to,label:e.tag,line:e.line,href:i("nodes",{editSubscriptionTag:e.tag})})):"dns"===s.name?s.children.filter(e=>"routing"===e.name).flatMap(e=>e.children.filter(e=>"request"===e.name||"response"===e.name).map(e=>({kind:s.name,from:e.from,to:e.to,label:e.name,line:e.line+1,href:l}))):l?[{kind:s.name,from:s.from,to:s.to,label:s.name,line:s.line+1,href:l}]:[]})}const dn=()=>{};const un=new Map;function gn({go:n,query:i}){const m=s(),h=a[r()],b=t(),x=b.data?.resources,v=se(o(x,"config",{whileLoading:!0})),j=function(n){const i=s(),a=ie(n),r=e.useMemo(()=>{const e=xe(a.error);return e?e.diagnostics??[]:null},[a.error]);return e.useEffect(()=>{if(a.error)if(r){const e=ve(r);f("negative",e?i("config.writeRestart",{n:e}):i("ui.writeInvalid",{n:r.filter(e=>"error"===e.level).length}))}else p(a.error,i,i("ui.writeFailed"))},[a.error,r,i]),{...a,diagnostics:r}}(v.refetch),y=e.useMemo(()=>new URLSearchParams(i),[i]),w=e.useMemo(()=>v.data?.sources??[],[v.data]),k=w.find(e=>"main"===e.kind)??null,N=w.find(e=>e.id===y.get("source"))??w[0]??null,S=N?.id??null,D=(e,s)=>n("config",d(i,{tab:"source",source:e,line:null===s?null:String(s)})),C=Number(y.get("line"))||null,T=v.data?.diagnostics??[],P=e.useMemo(()=>{const e=v.data?.diagnostics??[];return{error:e.filter(e=>"error"===e.level).length,warning:e.filter(e=>"warning"===e.level).length}},[v.data]),O=o(x,"config_validate",{whileLoading:!1})&&(x?.config_validate.modes??[]).includes("full"),_=!0===x?.config.writable,R=ae(w),E=l().data,M=e.useMemo(()=>re(E),[E]),A=Ae(!!M.globalSettings,b.data),L=N?Le(N,_,R(N),M,m):null,F=!!N&&!L,[I,H]=e.useState(un),[q,$]=e.useState(null),K=q??P.error,V=y.has("source")||void 0===k?.content?"source":"modules",W=c("validate"===y.get("tab")?d(i,{tab:"source"}):i,A.map(e=>e.id),V),U=N?{source:N,sources:w,open:D,diagnostics:T,canValidate:O&&("main"===N.kind||"include"===N.kind),canWrite:F,readOnly:L,isComplete:R,editor:j,focusLine:C,generation:v.data?.generation_id??"",focusDiagnostics:"validate"===y.get("tab"),diagnosticsChoice:I.get(N.id)??null,chooseDiagnostics:e=>H(n=>new Map(n).set(N.id,e)),reportErrors:$}:null,B=!0===x?.config.create&&!0===x.config.writable?{sources:w,refetch:v.refetch,open:e=>D(e,null)}:null;return{error:b.error??v.error,reload:()=>{b.refetch(),v.refetch()},loading:v.loading&&!v.data,ready:!!v.data,tabsReady:!!v.data||A.some(e=>"history"===e.id),metadata:v.data?Ie(v.data.revision,m):[],redacted:!!v.data?.secrets_redacted,tabs:A.map(e=>({id:e.id,label:"source"===e.id&&K?m("ui.aside",{text:m(e.titleKey),note:g(K,h)}):m(e.titleKey)})),tab:W,setTab:e=>n("config",d(u(i,e,null),{field:null})),selectedId:S??"",select:e=>n("config",d(i,{source:e,line:null})),sourceProps:U,newSourceProps:B,modulesProps:v.data?{config:v.data}:null,sourceModel:N?{...FeLine truncated
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CodeEditor-B7e2c4Ke.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./index-XeGFdFb3.js","./index-BClYdby3.css","./vendor-editor-BRV-W12m.js","./index-DUM-iwa2.js","./daeTokens-BVtuNnWZ.js","./nodes-Bm1vmvln.js","./AppearanceControls-Q-jHRGz9.js","./ItemText-Bvif-kkw.js","./logs-DNePHVHd.js","./Select-OqnbuzuK.js"])))=>i.map(i=>d[i]);
|
||||
import{r as e,j as n}from"./vendor-react-64fcanlc.js";import{h as i,u as s,al as a,l as r,q as t,r as o,x as l,c4 as c,w as d,c6 as u,Y as g,A as f,aK as p,c2 as m,cw as h,dk as b,dl as x,a1 as v,a0 as j,a9 as y,bO as w,z as k,cv as N,dm as S,t as D,aM as C,aV as T,B as P,aA as O,E as _,bk as R,ax as E,af as M,b5 as A,cq as L,aL as F,C as I,m as H,dn as q,bF as $,bG as K,df as V,a as W,b as U,v as B,aN as z,cs as G,p as J,aD as Q,aG as Y,d9 as X,_ as Z,av as ee,T as ne}from"./index-XeGFdFb3.js";import{a as ie,u as se,w as ae,e as re,c as te,H as oe,I as le,K as ce,D as de,L as ue,J as ge,S as fe}from"./logs-DNePHVHd.js";import{T as pe}from"./Tabs-BGWzF0yW.js";import{T as me}from"./Toolbar-CFyWgMbW.js";import{aL as he,a2 as be,aa as xe,aM as ve,y as je,aN as ye,a8 as we,D as ke}from"./activity-7OeQMmIs.js";import{s as Ne,N as Se,O as De,r as Ce,ag as Te,ah as Pe,ai as Oe,aj as _e,K as Re,ak as Ee}from"./nodes-Bm1vmvln.js";import{s as Me,c as Ae,r as Le,a as Fe,b as Ie,d as He,e as qe,f as $e,g as Ke,h as Ve,v as We,i as Ue,j as Be,k as ze,l as Ge,m as Je,n as Qe,o as Ye,w as Xe}from"./nav-B6IjqlWU.js";import{u as Ze,c as en}from"./flows-CjEC9Jxw.js";import{d as nn}from"./files-Dt8K7QfP.js";import{D as sn}from"./Table-DqqJleJD.js";import{T as an}from"./TimeCell-B6QtVZge.js";import{L as rn}from"./AppearanceControls-Q-jHRGz9.js";import{N as tn,t as on}from"./NumberField-Bo9iJ94r.js";import{A as ln}from"./AddCircle-7x8u9Pw1.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Select-OqnbuzuK.js";import"./ItemText-Bvif-kkw.js";import"./Checkbox-BewExwKL.js";import"./Virtualizer-FvdVRagH.js";function cn(e,n,s,a="main"){if(!s.daeText)return[];const{blocks:r,tokens:t}=Ne(e),o=s.globalSettings;return r.flatMap(s=>{if(s.name===o?.name){const a=r.filter(e=>e.name===o.name).indexOf(s),l=Se(e,s,t);return l.filter(e=>1===l.filter(n=>n.name===e.name).length&&o.fields.some(n=>n.key===e.name)).map(r=>({kind:s.name,from:r.from,to:r.to,label:r.name,line:e.slice(0,r.from).split("\n").length,href:i("config",{tab:"global",source:n,section:String(a),field:r.name})}))}const l=Me[s.name];return"subscription"===s.name?"main"!==a?[]:De(e).filter(e=>e.from>s.open&&e.to<=s.close).map(e=>({kind:s.name,from:e.from,to:e.to,label:e.tag,line:e.line,href:i("nodes",{editSubscriptionTag:e.tag})})):"dns"===s.name?s.children.filter(e=>"routing"===e.name).flatMap(e=>e.children.filter(e=>"request"===e.name||"response"===e.name).map(e=>({kind:s.name,from:e.from,to:e.to,label:e.name,line:e.line+1,href:l}))):l?[{kind:s.name,from:s.from,to:s.to,label:s.name,line:s.line+1,href:l}]:[]})}const dn=()=>{};const un=new Map;function gn({go:n,query:i}){const m=s(),h=a[r()],b=t(),x=b.data?.resources,v=se(o(x,"config",{whileLoading:!0})),j=function(n){const i=s(),a=ie(n),r=e.useMemo(()=>{const e=xe(a.error);return e?e.diagnostics??[]:null},[a.error]);return e.useEffect(()=>{if(a.error)if(r){const e=ve(r);f("negative",e?i("config.writeRestart",{n:e}):i("ui.writeInvalid",{n:r.filter(e=>"error"===e.level).length}))}else p(a.error,i,i("ui.writeFailed"))},[a.error,r,i]),{...a,diagnostics:r}}(v.refetch),y=e.useMemo(()=>new URLSearchParams(i),[i]),w=e.useMemo(()=>v.data?.sources??[],[v.data]),k=w.find(e=>"main"===e.kind)??null,N=w.find(e=>e.id===y.get("source"))??w[0]??null,S=N?.id??null,D=(e,s)=>n("config",d(i,{tab:"source",source:e,line:null===s?null:String(s)})),C=Number(y.get("line"))||null,T=v.data?.diagnostics??[],P=e.useMemo(()=>{const e=v.data?.diagnostics??[];return{error:e.filter(e=>"error"===e.level).length,warning:e.filter(e=>"warning"===e.level).length}},[v.data]),O=o(x,"config_validate",{whileLoading:!1})&&(x?.config_validate.modes??[]).includes("full"),_=!0===x?.config.writable,R=ae(w),E=l().data,M=e.useMemo(()=>re(E),[E]),A=Ae(!!M.globalSettings,b.data),L=N?Le(N,_,R(N),M,m):null,F=!!N&&!L,[I,H]=e.useState(un),[q,$]=e.useState(null),K=q??P.error,V=y.has("source")||void 0===k?.content?"source":"modules",W=c("validate"===y.get("tab")?d(i,{tab:"source"}):i,A.map(e=>e.id),V),U=N?{source:N,sources:w,open:D,diagnostics:T,canValidate:O&&("main"===N.kind||"include"===N.kind),canWrite:F,readOnly:L,isComplete:R,editor:j,focusLine:C,generation:v.data?.generation_id??"",focusDiagnostics:"validate"===y.get("tab"),diagnosticsChoice:I.get(N.id)??null,chooseDiagnostics:e=>H(n=>new Map(n).set(N.id,e)),reportErrors:$}:null,B=!0===x?.config.create&&!0===x.config.writable?{sources:w,refetch:v.refetch,open:e=>D(e,null)}:null;return{error:b.error??v.error,reload:()=>{b.refetch(),v.refetch()},loading:v.loading&&!v.data,ready:!!v.data,tabsReady:!!v.data||A.some(e=>"history"===e.id),metadata:v.data?Ie(v.data.revision,m):[],redacted:!!v.data?.secrets_redacted,tabs:A.map(e=>({id:e.id,label:"source"===e.id&&K?m("ui.aside",{text:m(e.titleKey),note:g(K,h)}):m(e.titleKey)})),tab:W,setTab:e=>n("config",d(u(i,e,null),{field:null})),selectedId:S??"",select:e=>n("config",d(i,{source:e,line:null})),sourceProps:U,newSourceProps:B,modulesProps:v.data?{config:v.data}:null,sourceModel:N?{...FeLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as n}from"./vendor-react-64fcanlc.js";import{O as t}from"./OutboundTag-yFgWAs1b.js";import{aU as o,u as s,al as l,l as a,a0 as i,o as r,aB as c,C as u,E as d,Y as p,a8 as m,s as b,M as h,bW as g,ax as f,N as w,T as v,bX as y,w as x,bY as j,U as _,bZ as k,b_ as C,Z as S,a1 as A,q as L,r as N,O as T,b$ as M,a6 as R,c0 as O,ah as P,G as F,c1 as U,b4 as W,c2 as q,bS as D,c3 as E,c4 as I,c5 as V,K as H,am as Q,c6 as B,A as K,c7 as G,aV as J,b9 as Y,c8 as Z,aM as X,c9 as z,bG as $,B as ee,ca as ne,bx as te,av as oe,p as se}from"./index-C-WQXF8v.js";import{R as le,u as ae,i as ie,o as re,h as ce,c as ue,S as de,L as pe,n as me,K as be}from"./logs-B-rowQjz.js";import{C as he}from"./AppearanceControls-CRuy5orf.js";import{T as ge}from"./Tabs-DVxF89X7.js";import{T as fe}from"./Toolbar-Yd2KR-zd.js";import{a as we,D as ve,U as ye,F as xe,S as je,c as _e,B as ke,L as Ce,t as Se,d as Ae,f as Le,g as Ne,p as Te,o as Me,k as Re,h as Oe}from"./activity-BQ91A1_2.js";import{S as Pe}from"./SearchSelect-ZK-gprFX.js";import{D as Fe}from"./Table-DDHjB8la.js";import{T as Ue}from"./TimeCell-B2wYTQbc.js";import{Q as We,u as qe,R as De}from"./useQuickRule-Dg2XjZII.js";import{u as Ee}from"./outbounds-CStRcMI8.js";import{c as Ie,d as Ve,e as He}from"./files-Dt8K7QfP.js";import{w as Qe}from"./labels-D8xxfRTQ.js";import{u as Be}from"./flows-Bm5f0qGx.js";import{r as Ke}from"./rule-C502aJft.js";import{c as Ge}from"./nav-BO8viH9G.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Tag-Bizvcn28.js";import"./Select-B67-iUq2.js";import"./ItemText-CnmwoDur.js";import"./nodes-D39HfuKn.js";import"./Checkbox-DiXDVgGl.js";import"./SearchList-B2h2qAe4.js";import"./Virtualizer-DBBzjqSD.js";import"./DaeCode-DEjXqvav.js";import"./daeTokens-BVtuNnWZ.js";import"./AddCircle-Bsrf2UoO.js";const Je=[0,2,3,1,4,5,6,7],Ye=e.memo(function({records:t,outbounds:p,latency:m,latencyError:b,retryLatency:h,truncated:g,uncounted:f,onSelect:w}){const v=s(),y=we(),x=l[a()],j=e.useCallback(e=>i(e,x),[x]),_=e.useMemo(()=>function(e,n){const t=new Map;let s=0;for(const o of e){if(null===o.upload_bytes||null===o.download_bytes){s++;continue}const e={id:o.id,up:Number(o.upload_bytes),down:Number(o.download_bytes),name:o.domain||o.dst||o.id},n=t.get(o.outbound);n?n.push(e):t.set(o.outbound,[e])}const l=[...t].map(([e,n])=>({outbound:e,points:n})).sort((e,t)=>o(n)(e.outbound??"",t.outbound??""));let a,i=-1n;for(const o of e){if(null===o.upload_bytes||null===o.download_bytes)continue;const e=BigInt(o.upload_bytes)+BigInt(o.download_bytes);e>i&&(i=e,a={id:o.id,up:Number(o.upload_bytes),down:Number(o.download_bytes),name:o.domain||o.dst||o.id,outbound:o.outbound})}return{series:l,unknown:s,heaviest:a,placed:e.length-s}}(t,x),[t,x]),k=e.useMemo(()=>{const e=p.filter(e=>"block"!==e);return _.series.map(n=>{return{id:n.outbound??"",label:r(n.outbound,v),color:(t=n.outbound,"block"===t?y.negative:y.cat[Je[Math.max(0,e.indexOf(t))%Je.length]]),points:n.points.map(e=>({id:e.id,x:e.up,y:e.down,name:e.name,detail:v("conn.chart.point",{download:j(e.down),upload:j(e.up)})}))};var t})},[_,p,y,v,j]),C=_.heaviest?[{label:v("conn.chart.busiest"),icon:n.jsx(c,{}),tint:"c3",value:_.heaviest.name,caption:r(_.heaviest.outbound,v)},{label:v("ui.download"),value:j(_.heaviest.down),icon:n.jsx(ve,{}),tint:"c1"},{label:v("ui.upload"),value:j(_.heaviest.up),icon:n.jsx(ye,{}),tint:"c4"}]:[],S=_.unknown?v("conn.chart.sampleUnknown",{n:t.length,unknown:_.unknown}):v("conn.chart.sample",{n:t.length});return n.jsxs("div",{className:"rp-chart-page",children:[n.jsx(xe,{facts:C,lead:!0}),n.jsxs(u,{title:v("conn.chart.title"),help:f?{title:v("conn.chart.title"),text:v("ui.trafficUncounted")}:void 0,note:S,children:[g&&n.jsx("p",{className:"rp-note",children:v("conn.truncated")}),_.placed>0&&n.jsxs(n.Fragment,{children:[n.jsx(je,{label:v("conn.chart.title"),series:k,fmt:j,onSelect:w,regions:{above:v("conn.chart.moreDown"),below:v("conn.chart.moreUp")}}),n.jsx(_e,{series:k}),n.jsx("p",{className:"rp-note",children:v("conn.chart.hint")})]})]}),m?n.jsx(Ze,{latency:m}):b&&n.jsx(u,{title:v("ui.nodeLatency"),children:n.jsx(d,{error:b,onRetry:h})})]})});function Ze({latency:e}){const t=s(),o=we(),i=e=>m(e,t),r=l[a()],c=n=>!e.chains||n?o.cat[0]:o.muted;return n.jsx(u,{title:t("ui.nodeLatency"),note:t("conn.latency.sample",{n:e.samples.length,missing:e.missing}),children:e.samples.length?n.jsxs(n.Fragment,{children:[n.jsx("p",{className:"rp-note",children:t("conn.latency.percentiles",{p50:i(e.p50),p90:i(e.p90)})}),null!==e.weightedP50&&n.jsx("p",{className:"rp-note",children:e.unplaced?t("conn.latency.weightedUnplaced",{p50:i(e.weightedP50),n:e.unplaced}):t("conn.latency.weighted",{p50:i(e.weightedP50)})}),n.jsx(ke,{label:t("ui.nodeLatency"),points:e.samples.map(e=>({id:e.node,nodeName:!0,value:e.value,color:c(e.connections>0),lines:[e.name,i(e.value),...e.connections?[t("conn.chart.sample",{n:e.connections})]:[]]})),fmt:i}),e.chains&&n.jsxs("div",{className:"rp-legend",children:[n.jsx(Ce,{swatch:c(!0),labeLine truncated
|
||||
import{r as e,j as n}from"./vendor-react-64fcanlc.js";import{O as t}from"./OutboundTag-B01P-KVW.js";import{aU as o,u as s,al as l,l as a,a0 as i,o as r,aB as c,C as u,E as d,Y as p,a8 as m,s as b,M as h,bW as g,ax as f,N as w,T as v,bX as y,w as x,bY as j,U as _,bZ as k,b_ as C,Z as S,a1 as A,q as L,r as N,O as T,b$ as M,a6 as R,c0 as O,ah as P,G as F,c1 as U,b4 as W,c2 as q,bS as D,c3 as E,c4 as I,c5 as V,K as H,am as Q,c6 as B,A as K,c7 as G,aV as J,b9 as Y,c8 as Z,aM as X,c9 as z,bG as $,B as ee,ca as ne,bx as te,av as oe,p as se}from"./index-XeGFdFb3.js";import{R as le,u as ae,i as ie,o as re,h as ce,c as ue,S as de,L as pe,n as me,K as be}from"./logs-DNePHVHd.js";import{C as he}from"./AppearanceControls-Q-jHRGz9.js";import{T as ge}from"./Tabs-BGWzF0yW.js";import{T as fe}from"./Toolbar-CFyWgMbW.js";import{a as we,D as ve,U as ye,F as xe,S as je,c as _e,B as ke,L as Ce,t as Se,d as Ae,f as Le,g as Ne,p as Te,o as Me,k as Re,h as Oe}from"./activity-7OeQMmIs.js";import{S as Pe}from"./SearchSelect-BVGce3l_.js";import{D as Fe}from"./Table-DqqJleJD.js";import{T as Ue}from"./TimeCell-B6QtVZge.js";import{Q as We,u as qe,R as De}from"./useQuickRule-8yoKk9d5.js";import{u as Ee}from"./outbounds-UWplA2Qq.js";import{c as Ie,d as Ve,e as He}from"./files-Dt8K7QfP.js";import{w as Qe}from"./labels-D8xxfRTQ.js";import{u as Be}from"./flows-CjEC9Jxw.js";import{r as Ke}from"./rule-BUktGcKO.js";import{c as Ge}from"./nav-BO8viH9G.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Tag-BaZZD5o2.js";import"./Select-OqnbuzuK.js";import"./ItemText-Bvif-kkw.js";import"./nodes-Bm1vmvln.js";import"./Checkbox-BewExwKL.js";import"./SearchList-DWooTdFX.js";import"./Virtualizer-FvdVRagH.js";import"./DaeCode-DEjXqvav.js";import"./daeTokens-BVtuNnWZ.js";import"./AddCircle-7x8u9Pw1.js";const Je=[0,2,3,1,4,5,6,7],Ye=e.memo(function({records:t,outbounds:p,latency:m,latencyError:b,retryLatency:h,truncated:g,uncounted:f,onSelect:w}){const v=s(),y=we(),x=l[a()],j=e.useCallback(e=>i(e,x),[x]),_=e.useMemo(()=>function(e,n){const t=new Map;let s=0;for(const o of e){if(null===o.upload_bytes||null===o.download_bytes){s++;continue}const e={id:o.id,up:Number(o.upload_bytes),down:Number(o.download_bytes),name:o.domain||o.dst||o.id},n=t.get(o.outbound);n?n.push(e):t.set(o.outbound,[e])}const l=[...t].map(([e,n])=>({outbound:e,points:n})).sort((e,t)=>o(n)(e.outbound??"",t.outbound??""));let a,i=-1n;for(const o of e){if(null===o.upload_bytes||null===o.download_bytes)continue;const e=BigInt(o.upload_bytes)+BigInt(o.download_bytes);e>i&&(i=e,a={id:o.id,up:Number(o.upload_bytes),down:Number(o.download_bytes),name:o.domain||o.dst||o.id,outbound:o.outbound})}return{series:l,unknown:s,heaviest:a,placed:e.length-s}}(t,x),[t,x]),k=e.useMemo(()=>{const e=p.filter(e=>"block"!==e);return _.series.map(n=>{return{id:n.outbound??"",label:r(n.outbound,v),color:(t=n.outbound,"block"===t?y.negative:y.cat[Je[Math.max(0,e.indexOf(t))%Je.length]]),points:n.points.map(e=>({id:e.id,x:e.up,y:e.down,name:e.name,detail:v("conn.chart.point",{download:j(e.down),upload:j(e.up)})}))};var t})},[_,p,y,v,j]),C=_.heaviest?[{label:v("conn.chart.busiest"),icon:n.jsx(c,{}),tint:"c3",value:_.heaviest.name,caption:r(_.heaviest.outbound,v)},{label:v("ui.download"),value:j(_.heaviest.down),icon:n.jsx(ve,{}),tint:"c1"},{label:v("ui.upload"),value:j(_.heaviest.up),icon:n.jsx(ye,{}),tint:"c4"}]:[],S=_.unknown?v("conn.chart.sampleUnknown",{n:t.length,unknown:_.unknown}):v("conn.chart.sample",{n:t.length});return n.jsxs("div",{className:"rp-chart-page",children:[n.jsx(xe,{facts:C,lead:!0}),n.jsxs(u,{title:v("conn.chart.title"),help:f?{title:v("conn.chart.title"),text:v("ui.trafficUncounted")}:void 0,note:S,children:[g&&n.jsx("p",{className:"rp-note",children:v("conn.truncated")}),_.placed>0&&n.jsxs(n.Fragment,{children:[n.jsx(je,{label:v("conn.chart.title"),series:k,fmt:j,onSelect:w,regions:{above:v("conn.chart.moreDown"),below:v("conn.chart.moreUp")}}),n.jsx(_e,{series:k}),n.jsx("p",{className:"rp-note",children:v("conn.chart.hint")})]})]}),m?n.jsx(Ze,{latency:m}):b&&n.jsx(u,{title:v("ui.nodeLatency"),children:n.jsx(d,{error:b,onRetry:h})})]})});function Ze({latency:e}){const t=s(),o=we(),i=e=>m(e,t),r=l[a()],c=n=>!e.chains||n?o.cat[0]:o.muted;return n.jsx(u,{title:t("ui.nodeLatency"),note:t("conn.latency.sample",{n:e.samples.length,missing:e.missing}),children:e.samples.length?n.jsxs(n.Fragment,{children:[n.jsx("p",{className:"rp-note",children:t("conn.latency.percentiles",{p50:i(e.p50),p90:i(e.p90)})}),null!==e.weightedP50&&n.jsx("p",{className:"rp-note",children:e.unplaced?t("conn.latency.weightedUnplaced",{p50:i(e.weightedP50),n:e.unplaced}):t("conn.latency.weighted",{p50:i(e.weightedP50)})}),n.jsx(ke,{label:t("ui.nodeLatency"),points:e.samples.map(e=>({id:e.node,nodeName:!0,value:e.value,color:c(e.connections>0),lines:[e.name,i(e.value),...e.connections?[t("conn.chart.sample",{n:e.connections})]:[]]})),fmt:i}),e.chains&&n.jsxs("div",{className:"rp-legend",children:[n.jsx(Ce,{swatch:c(!0),labeLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as c,j as r}from"./vendor-react-64fcanlc.js";import{u as s,dn as o,A as l,I as t}from"./index-C-WQXF8v.js";function a(){const r=s();return c.useCallback(async c=>{const s=await o(c);l(s?"positive":"negative",r(s?"ui.recordCopied":"ui.recordCopyFailed"))},[r])}function e(c){return r.jsxs(t,{...c,children:[r.jsx("path",{fill:"currentColor",d:"m11.75,18h-7.5c-1.24023,0-2.25-1.00977-2.25-2.25v-7.5c0-1.24023,1.00977-2.25,2.25-2.25.41406,0,.75.33594.75.75s-.33594.75-.75.75c-.41309,0-.75.33691-.75.75v7.5c0,.41309.33691.75.75.75h7.5c.41309,0,.75-.33691.75-.75,0-.41406.33594-.75.75-.75s.75.33594.75.75c0,1.24023-1.00977,2.25-2.25,2.25Z"}),r.jsx("path",{fill:"currentColor",d:"m6.75,5c-.41406,0-.75-.33594-.75-.75,0-1.24023,1.00977-2.25,2.25-2.25.41406,0,.75.33594.75.75s-.33594.75-.75.75c-.41309,0-.75.33691-.75.75,0,.41406-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m13,3.5h-2c-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75h2c.41406,0,.75.33594.75.75s-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m13,14h-2c-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75h2c.41406,0,.75.33594.75.75s-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m15.75,14c-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75c.41309,0,.75-.33691.75-.75,0-.41406.33594-.75.75-.75s.75.33594.75.75c0,1.24023-1.00977,2.25-2.25,2.25Z"}),r.jsx("path",{fill:"currentColor",d:"m17.25,5c-.41406,0-.75-.33594-.75-.75,0-.41309-.33691-.75-.75-.75-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75c1.24023,0,2.25,1.00977,2.25,2.25,0,.41406-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m17.25,9.75c-.41406,0-.75-.33594-.75-.75v-2c0-.41406.33594-.75.75-.75s.75.33594.75.75v2c0,.41406-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m6.75,9.75c-.41406,0-.75-.33594-.75-.75v-2c0-.41406.33594-.75.75-.75s.75.33594.75.75v2c0,.41406-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m8.25,14c-1.24023,0-2.25-1.00977-2.25-2.25,0-.41406.33594-.75.75-.75s.75.33594.75.75c0,.41309.33691.75.75.75.41406,0,.75.33594.75.75s-.33594.75-.75.75Z"})]})}export{e as C,a as u};
|
||||
import{r as c,j as r}from"./vendor-react-64fcanlc.js";import{u as s,dn as o,A as l,I as t}from"./index-XeGFdFb3.js";function a(){const r=s();return c.useCallback(async c=>{const s=await o(c);l(s?"positive":"negative",r(s?"ui.recordCopied":"ui.recordCopyFailed"))},[r])}function e(c){return r.jsxs(t,{...c,children:[r.jsx("path",{fill:"currentColor",d:"m11.75,18h-7.5c-1.24023,0-2.25-1.00977-2.25-2.25v-7.5c0-1.24023,1.00977-2.25,2.25-2.25.41406,0,.75.33594.75.75s-.33594.75-.75.75c-.41309,0-.75.33691-.75.75v7.5c0,.41309.33691.75.75.75h7.5c.41309,0,.75-.33691.75-.75,0-.41406.33594-.75.75-.75s.75.33594.75.75c0,1.24023-1.00977,2.25-2.25,2.25Z"}),r.jsx("path",{fill:"currentColor",d:"m6.75,5c-.41406,0-.75-.33594-.75-.75,0-1.24023,1.00977-2.25,2.25-2.25.41406,0,.75.33594.75.75s-.33594.75-.75.75c-.41309,0-.75.33691-.75.75,0,.41406-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m13,3.5h-2c-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75h2c.41406,0,.75.33594.75.75s-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m13,14h-2c-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75h2c.41406,0,.75.33594.75.75s-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m15.75,14c-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75c.41309,0,.75-.33691.75-.75,0-.41406.33594-.75.75-.75s.75.33594.75.75c0,1.24023-1.00977,2.25-2.25,2.25Z"}),r.jsx("path",{fill:"currentColor",d:"m17.25,5c-.41406,0-.75-.33594-.75-.75,0-.41309-.33691-.75-.75-.75-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75c1.24023,0,2.25,1.00977,2.25,2.25,0,.41406-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m17.25,9.75c-.41406,0-.75-.33594-.75-.75v-2c0-.41406.33594-.75.75-.75s.75.33594.75.75v2c0,.41406-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m6.75,9.75c-.41406,0-.75-.33594-.75-.75v-2c0-.41406.33594-.75.75-.75s.75.33594.75.75v2c0,.41406-.33594.75-.75.75Z"}),r.jsx("path",{fill:"currentColor",d:"m8.25,14c-1.24023,0-2.25-1.00977-2.25-2.25,0-.41406.33594-.75.75-.75s.75.33594.75.75c0,.41309.33691.75.75.75.41406,0,.75.33594.75.75s-.33594.75-.75.75Z"})]})}export{e as C,a as u};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{ah as e,ak as l,U as r,u as a,T as s,p as n}from"./index-C-WQXF8v.js";import{j as o}from"./vendor-react-64fcanlc.js";const t={userspace_tcp:"flow.userspaceTcp",userspace_udp:"flow.userspaceUdp",kernel_direct:"flow.kernelDirect",kernel_block:"flow.kernelBlock",dns_intercept:"flow.dnsIntercept",kernel_bypass:"flow.kernelBypass"},p={full:"flow.full",partial:"flow.partialVisibility",none:"ui.none"};function c(a,s,n){const o=Object.entries(a.coverage).filter(([,e])=>"full"!==e),c=e(a.dropped_records),i=c?s("flow.dropped",{n:c}):null;return o.length||i?{summary:o.length?s("flow.coverageSummary",{n:o.length}):null,detail:l(n,o.map(([e,l])=>s("ui.valuePair",{label:r(t,e,s),value:r(p,l,s)}))),dropped:i}:null}function i({view:e}){const l=a();return o.jsxs("div",{className:"rp-cluster",role:"group","aria-label":l("flow.coverage"),children:[e.summary&&o.jsx(s,{text:e.detail,children:o.jsx(n,{small:!0,tone:"warn",children:e.summary})}),e.dropped&&o.jsx(n,{small:!0,tone:"warn",children:e.dropped})]})}export{i as C,c};
|
||||
import{ah as e,ak as l,U as r,u as a,T as s,p as n}from"./index-XeGFdFb3.js";import{j as o}from"./vendor-react-64fcanlc.js";const t={userspace_tcp:"flow.userspaceTcp",userspace_udp:"flow.userspaceUdp",kernel_direct:"flow.kernelDirect",kernel_block:"flow.kernelBlock",dns_intercept:"flow.dnsIntercept",kernel_bypass:"flow.kernelBypass"},p={full:"flow.full",partial:"flow.partialVisibility",none:"ui.none"};function c(a,s,n){const o=Object.entries(a.coverage).filter(([,e])=>"full"!==e),c=e(a.dropped_records),i=c?s("flow.dropped",{n:c}):null;return o.length||i?{summary:o.length?s("flow.coverageSummary",{n:o.length}):null,detail:l(n,o.map(([e,l])=>s("ui.valuePair",{label:r(t,e,s),value:r(p,l,s)}))),dropped:i}:null}function i({view:e}){const l=a();return o.jsxs("div",{className:"rp-cluster",role:"group","aria-label":l("flow.coverage"),children:[e.summary&&o.jsx(s,{text:e.detail,children:o.jsx(n,{small:!0,tone:"warn",children:e.summary})}),e.dropped&&o.jsx(n,{small:!0,tone:"warn",children:e.dropped})]})}export{i as C,c};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{j as c}from"./vendor-react-64fcanlc.js";import{I as r}from"./index-C-WQXF8v.js";function l(l){return c.jsxs(r,{...l,children:[c.jsx("path",{fill:"currentColor",d:"M8.249 15.021c-.4 0-.733-.317-.748-.72l-.25-6.5c-.017-.414.307-.763.72-.779H8c.4 0 .733.317.748.72l.25 6.5c.017.414-.307.763-.72.778zM11.751 15.021h-.03c-.413-.016-.737-.365-.72-.779l.25-6.5c.015-.403.348-.72.748-.72h.03c.413.016.737.365.72.779l-.25 6.5c-.015.403-.348.72-.748.72"}),c.jsx("path",{fill:"currentColor",d:"M17 4h-3.5v-.75C13.5 2.01 12.49 1 11.25 1h-2.5C7.51 1 6.5 2.01 6.5 3.25V4H3c-.414 0-.75.336-.75.75s.336.75.75.75h.52l.422 10.342C3.99 17.052 4.98 18 6.19 18h7.62c1.211 0 2.2-.948 2.248-2.158L16.48 5.5H17c.414 0 .75-.336.75-.75S17.414 4 17 4m-9-.75c0-.413.337-.75.75-.75h2.5c.413 0 .75.337.75.75V4H8zm6.56 12.531c-.017.404-.346.719-.75.719H6.19c-.404 0-.733-.315-.75-.719L5.02 5.5h9.96z"})]})}export{l as D};
|
||||
import{j as c}from"./vendor-react-64fcanlc.js";import{I as r}from"./index-XeGFdFb3.js";function l(l){return c.jsxs(r,{...l,children:[c.jsx("path",{fill:"currentColor",d:"M8.249 15.021c-.4 0-.733-.317-.748-.72l-.25-6.5c-.017-.414.307-.763.72-.779H8c.4 0 .733.317.748.72l.25 6.5c.017.414-.307.763-.72.778zM11.751 15.021h-.03c-.413-.016-.737-.365-.72-.779l.25-6.5c.015-.403.348-.72.748-.72h.03c.413.016.737.365.72.779l-.25 6.5c-.015.403-.348.72-.748.72"}),c.jsx("path",{fill:"currentColor",d:"M17 4h-3.5v-.75C13.5 2.01 12.49 1 11.25 1h-2.5C7.51 1 6.5 2.01 6.5 3.25V4H3c-.414 0-.75.336-.75.75s.336.75.75.75h.52l.422 10.342C3.99 17.052 4.98 18 6.19 18h7.62c1.211 0 2.2-.948 2.248-2.158L16.48 5.5H17c.414 0 .75-.336.75-.75S17.414 4 17 4m-9-.75c0-.413.337-.75.75-.75h2.5c.413 0 .75.337.75.75V4H8zm6.56 12.531c-.017.404-.346.719-.75.719H6.19c-.404 0-.733-.315-.75-.719L5.02 5.5h9.96z"})]})}export{l as D};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as s}from"./vendor-react-64fcanlc.js";import{M as a,U as t,a8 as n,a1 as r,Y as l,Q as i,ah as d,aM as c,u as o,a9 as u,q as m,c2 as h,z as p,c4 as x,r as g,w as y,h as f,c6 as b,al as j,l as v,cb as w,bS as _,cc as N,b4 as S,c8 as T,A as q,c9 as C,aV as k,cd as M,bR as R,az as L,af as A,E as F,ce as E,bh as D,cf as P,C as W,S as O,ae as U,ay as H,T as B,bu as K,bF as I,cg as Q,bG as $,ch as z,B as J,ci as V,ax as G,p as X,av as Y,bx as Z,ca as ee}from"./index-C-WQXF8v.js";import{D as se}from"./Delete-Kzat-N3j.js";import{s as ae,l as te,a as ne,m as re,C as le,F as ie,B as de,L as ce,W as oe,n as ue,q as me,D as he}from"./activity-BQ91A1_2.js";import{u as pe,q as xe,k as ge,s as ye,t as fe,S as be,L as je,K as ve,A as we}from"./logs-B-rowQjz.js";import{T as _e}from"./Tabs-DVxF89X7.js";import{T as Ne}from"./Toolbar-Yd2KR-zd.js";import{D as Se}from"./Table-DDHjB8la.js";import{T as Te}from"./TimeCell-B2wYTQbc.js";import{c as qe,d as Ce,e as ke}from"./files-Dt8K7QfP.js";import{d as Me}from"./nav-DORsPGf3.js";import{a as Re}from"./rule-C502aJft.js";import{J as Le,u as Ae}from"./nodes-D39HfuKn.js";import{u as Fe,R as Ee,Q as De}from"./useQuickRule-Dg2XjZII.js";import{L as Pe}from"./AppearanceControls-CRuy5orf.js";/* empty css */import"./_commonjsHelpers-CXUWDbkB.js";import"./ItemText-CnmwoDur.js";import"./Select-B67-iUq2.js";import"./Checkbox-DiXDVgGl.js";import"./Virtualizer-DBBzjqSD.js";import"./DaeCode-DEjXqvav.js";import"./daeTokens-BVtuNnWZ.js";import"./AddCircle-Bsrf2UoO.js";import"./SearchSelect-ZK-gprFX.js";import"./SearchList-B2h2qAe4.js";import"./flows-Bm5f0qGx.js";function We(e,s,t,n,r){return{domain:e,dip:null,sip:(r&&a(r))??null,outbound:null,matched:null,dns:{type:s,answers:Re(t),upstream:n,query:{name:e,type:s}}}}const Oe=(e,s,a)=>({domain:null,dip:e,sip:null,outbound:null,matched:null,dns:{type:a,answers:[e],upstream:null,query:{name:s,type:a}}}),Ue={forced:"dns.route.forced","dns.routing":"dns.route.rules",default:"dns.route.default"};function He(e,s){return{fields:[[s("ui.state"),e.status],[s("ui.upstream"),e.upstream??"—"],[s("dns.routeSource"),t(Ue,e.route.source,s)],[s("dns.routeRule"),e.route.rule??"—"],[s("ui.elapsed"),n(e.elapsed_ms,s)]],answers:(e.answers??[]).map(e=>s("dns.answer",{name:e.name,type:e.type,ttl:e.ttl,data:e.data})),cacheText:s(e.cached?"dns.hit":"dns.miss"),cacheTone:e.cached?void 0:"warn"}}function Be(e,s,a){return e?a instanceof c&&503===a.status?"unavailable":s?"ready":a?"error":"loading":"unlisted"}const Ke=[{id:"full",label:"rule.kind.domain"},{id:"suffix",label:"rule.kind.domainSuffix"},{id:"keyword",label:"rule.kind.domainKeyword"},{id:"regex",label:"dns.matchRegex"}],Ie=e=>e.trim().toLowerCase().replace(/\.$/,"");function Qe(e,s){if(!s.trim())return()=>!0;if("regex"===e){const e=function(e){try{return new RegExp(e,"iu")}catch{return null}}(s);return e&&(s=>e.test(Ie(s)))}if("keyword"===e){const e=s.trim().toLowerCase();return s=>Ie(s).includes(e)}const a=Ie(s),t="suffix"===e&&a.startsWith("."),n=t?a.slice(1):a;return n?"full"===e?e=>Ie(e)===n:e=>{const s=Ie(e);return s.endsWith("."+n)||!t&&s===n}:null}function $e({go:s,query:a}){const t=o(),n=u(),r=m(),l=e.useMemo(()=>new URLSearchParams(a),[a]),[i,d]=e.useState(l.get("domain")??""),[c,j]=e.useState(l.get("type")??"A"),[v,w]=e.useState(!1);h(l.get("domain"),e=>d(e??"")),h(l.get("type"),e=>j(e??"A"));const[_,N]=e.useState(null),{busy:S,error:T,run:q}=p({rethrow:!0}),C=r.data?.resources,k=e.useMemo(()=>function(e,s,a,t,n,r){const l=s?.dns_query.record_types??[],i="all"===a?l.length>0:l.includes(a);return{types:l,choices:[...l.map(e=>({id:e,label:e})),{id:"all",label:r("dns.allTypes")}],disabled:n||!s?.dns_query.available||!i||!t.trim(),reason:!s||n?null:s.dns_query.available?i?null:r("all"===a?"dns.noTypes":"dns.typeUnsupported"):r("dns.queryUnavailable"),showCache:!!s?.dns_cache.available,cards:e?.results.map(s=>({id:s.type,title:`${e.domain} ${s.type}`,...He(s,r),seed:We(e.domain,s.type,s.answers??[],s.upstream,null),answerSeeds:(s.answers??[]).map(a=>Re([a]).length?{address:a.data,seed:Oe(a.data,e.domain,s.type)}:null)}))??[],tabs:Me(s).map(e=>({id:e.id,label:r(e.titleKey)}))}}(_,C,c,i,!!S,t),[_,C,c,i,S,t]),M=k.tabs.map(e=>e.id),R=l.has("domain")||l.has("device"),L=M.includes("log")?R?"log":"stats":M.includes("query")?"query":M[0]??"query",A=x(a,M,L),F=g(C,"config",{whileLoading:!1}),E=pe("query"===A&&F&&g(C,"dns_query",{whileLoading:!1})),D=e.useMemo(()=>F?function(e,s){const a=[...new Set((e??[]).flatMap(e=>e.content?Le(e.content).map(Ae):[]))];return a.length?[{id:"",label:s("dns.upstreamAuto")},...a.map(e=>({id:e,label:e}))]:[]}(E.data?.sources,t):[],[F,E.data,t]),[P,W]=e.useState(""),O=D.some(e=>e.id===P)?P:"";E.data&&P&&!O&&W("");const U=async(e={domain:i,type:c})=>{try{await q("query",async s=>{const a=await xe(n.dnsQuery,e.domain.trim(),"all"===e.type?k.types:[e.type],C?.dns_query.limits?.max_types_per_request??1,s,v?"bypass":"normal",O||void 0);return s.aborted||N(a),a})Line truncated
|
||||
import{r as e,j as s}from"./vendor-react-64fcanlc.js";import{M as a,U as t,a8 as n,a1 as r,Y as l,Q as i,ah as d,aM as c,u as o,a9 as u,q as m,c2 as h,z as p,c4 as x,r as g,w as y,h as f,c6 as b,al as j,l as v,cb as w,bS as _,cc as N,b4 as S,c8 as T,A as q,c9 as C,aV as k,cd as M,bR as R,az as L,af as A,E as F,ce as E,bh as D,cf as P,C as W,S as O,ae as U,ay as H,T as B,bu as K,bF as I,cg as Q,bG as $,ch as z,B as J,ci as V,ax as G,p as X,av as Y,bx as Z,ca as ee}from"./index-XeGFdFb3.js";import{D as se}from"./Delete-BlpuXHjZ.js";import{s as ae,l as te,a as ne,m as re,C as le,F as ie,B as de,L as ce,W as oe,n as ue,q as me,D as he}from"./activity-7OeQMmIs.js";import{u as pe,q as xe,k as ge,s as ye,t as fe,S as be,L as je,K as ve,A as we}from"./logs-DNePHVHd.js";import{T as _e}from"./Tabs-BGWzF0yW.js";import{T as Ne}from"./Toolbar-CFyWgMbW.js";import{D as Se}from"./Table-DqqJleJD.js";import{T as Te}from"./TimeCell-B6QtVZge.js";import{c as qe,d as Ce,e as ke}from"./files-Dt8K7QfP.js";import{d as Me}from"./nav-BgyFg1Tl.js";import{a as Re}from"./rule-BUktGcKO.js";import{J as Le,u as Ae}from"./nodes-Bm1vmvln.js";import{u as Fe,R as Ee,Q as De}from"./useQuickRule-8yoKk9d5.js";import{L as Pe}from"./AppearanceControls-Q-jHRGz9.js";/* empty css */import"./_commonjsHelpers-CXUWDbkB.js";import"./ItemText-Bvif-kkw.js";import"./Select-OqnbuzuK.js";import"./Checkbox-BewExwKL.js";import"./Virtualizer-FvdVRagH.js";import"./DaeCode-DEjXqvav.js";import"./daeTokens-BVtuNnWZ.js";import"./AddCircle-7x8u9Pw1.js";import"./SearchSelect-BVGce3l_.js";import"./SearchList-DWooTdFX.js";import"./flows-CjEC9Jxw.js";function We(e,s,t,n,r){return{domain:e,dip:null,sip:(r&&a(r))??null,outbound:null,matched:null,dns:{type:s,answers:Re(t),upstream:n,query:{name:e,type:s}}}}const Oe=(e,s,a)=>({domain:null,dip:e,sip:null,outbound:null,matched:null,dns:{type:a,answers:[e],upstream:null,query:{name:s,type:a}}}),Ue={forced:"dns.route.forced","dns.routing":"dns.route.rules",default:"dns.route.default"};function He(e,s){return{fields:[[s("ui.state"),e.status],[s("ui.upstream"),e.upstream??"—"],[s("dns.routeSource"),t(Ue,e.route.source,s)],[s("dns.routeRule"),e.route.rule??"—"],[s("ui.elapsed"),n(e.elapsed_ms,s)]],answers:(e.answers??[]).map(e=>s("dns.answer",{name:e.name,type:e.type,ttl:e.ttl,data:e.data})),cacheText:s(e.cached?"dns.hit":"dns.miss"),cacheTone:e.cached?void 0:"warn"}}function Be(e,s,a){return e?a instanceof c&&503===a.status?"unavailable":s?"ready":a?"error":"loading":"unlisted"}const Ke=[{id:"full",label:"rule.kind.domain"},{id:"suffix",label:"rule.kind.domainSuffix"},{id:"keyword",label:"rule.kind.domainKeyword"},{id:"regex",label:"dns.matchRegex"}],Ie=e=>e.trim().toLowerCase().replace(/\.$/,"");function Qe(e,s){if(!s.trim())return()=>!0;if("regex"===e){const e=function(e){try{return new RegExp(e,"iu")}catch{return null}}(s);return e&&(s=>e.test(Ie(s)))}if("keyword"===e){const e=s.trim().toLowerCase();return s=>Ie(s).includes(e)}const a=Ie(s),t="suffix"===e&&a.startsWith("."),n=t?a.slice(1):a;return n?"full"===e?e=>Ie(e)===n:e=>{const s=Ie(e);return s.endsWith("."+n)||!t&&s===n}:null}function $e({go:s,query:a}){const t=o(),n=u(),r=m(),l=e.useMemo(()=>new URLSearchParams(a),[a]),[i,d]=e.useState(l.get("domain")??""),[c,j]=e.useState(l.get("type")??"A"),[v,w]=e.useState(!1);h(l.get("domain"),e=>d(e??"")),h(l.get("type"),e=>j(e??"A"));const[_,N]=e.useState(null),{busy:S,error:T,run:q}=p({rethrow:!0}),C=r.data?.resources,k=e.useMemo(()=>function(e,s,a,t,n,r){const l=s?.dns_query.record_types??[],i="all"===a?l.length>0:l.includes(a);return{types:l,choices:[...l.map(e=>({id:e,label:e})),{id:"all",label:r("dns.allTypes")}],disabled:n||!s?.dns_query.available||!i||!t.trim(),reason:!s||n?null:s.dns_query.available?i?null:r("all"===a?"dns.noTypes":"dns.typeUnsupported"):r("dns.queryUnavailable"),showCache:!!s?.dns_cache.available,cards:e?.results.map(s=>({id:s.type,title:`${e.domain} ${s.type}`,...He(s,r),seed:We(e.domain,s.type,s.answers??[],s.upstream,null),answerSeeds:(s.answers??[]).map(a=>Re([a]).length?{address:a.data,seed:Oe(a.data,e.domain,s.type)}:null)}))??[],tabs:Me(s).map(e=>({id:e.id,label:r(e.titleKey)}))}}(_,C,c,i,!!S,t),[_,C,c,i,S,t]),M=k.tabs.map(e=>e.id),R=l.has("domain")||l.has("device"),L=M.includes("log")?R?"log":"stats":M.includes("query")?"query":M[0]??"query",A=x(a,M,L),F=g(C,"config",{whileLoading:!1}),E=pe("query"===A&&F&&g(C,"dns_query",{whileLoading:!1})),D=e.useMemo(()=>F?function(e,s){const a=[...new Set((e??[]).flatMap(e=>e.content?Le(e.content).map(Ae):[]))];return a.length?[{id:"",label:s("dns.upstreamAuto")},...a.map(e=>({id:e,label:e}))]:[]}(E.data?.sources,t):[],[F,E.data,t]),[P,W]=e.useState(""),O=D.some(e=>e.id===P)?P:"";E.data&&P&&!O&&W("");const U=async(e={domain:i,type:c})=>{try{await q("query",async s=>{const a=await xe(n.dnsQuery,e.domain.trim(),"all"===e.type?k.types:[e.type],C?.dns_query.limits?.max_types_per_request??1,s,v?"bypass":"normal",O||void 0);return s.aborted||N(a),a})Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as n,j as t}from"./vendor-react-64fcanlc.js";import{u as e,f as r}from"./index-C-WQXF8v.js";import{aW as o,b4 as a,aZ as i,a$ as l}from"./activity-BQ91A1_2.js";import{w as u,c,a as s}from"./array-C0VuvQyb.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-D39HfuKn.js";import"./AppearanceControls-CRuy5orf.js";import"./ItemText-CnmwoDur.js";import"./logs-B-rowQjz.js";import"./Select-B67-iUq2.js";const f=Math.abs,h=Math.atan2,y=Math.cos,p=Math.max,d=Math.min,x=Math.sin,g=Math.sqrt,v=1e-12,m=Math.PI,M=m/2,A=2*m;function j(n){return n>=1?M:n<=-1?-M:Math.asin(n)}function w(n){return n.innerRadius}function b(n){return n.outerRadius}function P(n){return n.startAngle}function T(n){return n.endAngle}function R(n){return n&&n.padAngle}function L(n,t,e,r,o,a,i){var l=n-e,u=t-r,c=(i?a:-a)/g(l*l+u*u),s=c*u,f=-c*l,h=n+s,y=t+f,d=e+s,x=r+f,v=(h+d)/2,m=(y+x)/2,M=d-h,A=x-y,j=M*M+A*A,w=o-a,b=h*x-d*y,P=(A<0?-1:1)*g(p(0,w*w*j-b*b)),T=(b*A-M*P)/j,R=(-b*M-A*P)/j,L=(b*A+M*P)/j,$=(-b*M+A*P)/j,I=T-v,k=R-m,B=L-v,K=$-m;return I*I+k*k>B*B+K*K&&(T=L,R=$),{cx:T,cy:R,x01:-s,y01:-f,x11:T*(o/w-1),y11:R*(o/w-1)}}function $(){var n=w,t=b,e=c(0),r=null,o=P,a=T,i=R,l=null,s=u(p);function p(){var u,c,p,w=+n.apply(this,arguments),b=+t.apply(this,arguments),P=o.apply(this,arguments)-M,T=a.apply(this,arguments)-M,R=f(T-P),$=T>P;if(l||(l=u=s()),b<w&&(c=b,b=w,w=c),b>v)if(R>A-v)l.moveTo(b*y(P),b*x(P)),l.arc(0,0,b,P,T,!$),w>v&&(l.moveTo(w*y(T),w*x(T)),l.arc(0,0,w,T,P,$));else{var I,k,B=P,K=T,N=P,S=T,D=R,E=R,F=i.apply(this,arguments)/2,q=F>v&&(r?+r.apply(this,arguments):g(w*w+b*b)),C=d(f(b-w)/2,+e.apply(this,arguments)),H=C,V=C;if(q>v){var W=j(q/w*x(F)),Z=j(q/b*x(F));(D-=2*W)>v?(N+=W*=$?1:-1,S-=W):(D=0,N=S=(P+T)/2),(E-=2*Z)>v?(B+=Z*=$?1:-1,K-=Z):(E=0,B=K=(P+T)/2)}var _=b*y(B),z=b*x(B),G=w*y(S),J=w*x(S);if(C>v){var O,Q=b*y(K),U=b*x(K),X=w*y(N),Y=w*x(N);if(R<m)if(O=function(n,t,e,r,o,a,i,l){var u=e-n,c=r-t,s=i-o,f=l-a,h=f*u-s*c;if(!(h*h<v))return[n+(h=(s*(t-a)-f*(n-o))/h)*u,t+h*c]}(_,z,X,Y,Q,U,G,J)){var nn=_-O[0],tn=z-O[1],en=Q-O[0],rn=U-O[1],on=1/x(((p=(nn*en+tn*rn)/(g(nn*nn+tn*tn)*g(en*en+rn*rn)))>1?0:p<-1?m:Math.acos(p))/2),an=g(O[0]*O[0]+O[1]*O[1]);H=d(C,(w-an)/(on-1)),V=d(C,(b-an)/(on+1))}else H=V=0}E>v?V>v?(I=L(X,Y,_,z,b,V,$),k=L(Q,U,G,J,b,V,$),l.moveTo(I.cx+I.x01,I.cy+I.y01),V<C?l.arc(I.cx,I.cy,V,h(I.y01,I.x01),h(k.y01,k.x01),!$):(l.arc(I.cx,I.cy,V,h(I.y01,I.x01),h(I.y11,I.x11),!$),l.arc(0,0,b,h(I.cy+I.y11,I.cx+I.x11),h(k.cy+k.y11,k.cx+k.x11),!$),l.arc(k.cx,k.cy,V,h(k.y11,k.x11),h(k.y01,k.x01),!$))):(l.moveTo(_,z),l.arc(0,0,b,B,K,!$)):l.moveTo(_,z),w>v&&D>v?H>v?(I=L(G,J,Q,U,w,-H,$),k=L(_,z,X,Y,w,-H,$),l.lineTo(I.cx+I.x01,I.cy+I.y01),H<C?l.arc(I.cx,I.cy,H,h(I.y01,I.x01),h(k.y01,k.x01),!$):(l.arc(I.cx,I.cy,H,h(I.y01,I.x01),h(I.y11,I.x11),!$),l.arc(0,0,w,h(I.cy+I.y11,I.cx+I.x11),h(k.cy+k.y11,k.cx+k.x11),$),l.arc(k.cx,k.cy,H,h(k.y11,k.x11),h(k.y01,k.x01),!$))):l.arc(0,0,w,S,N,$):l.lineTo(G,J)}else l.moveTo(0,0);if(l.closePath(),u)return l=null,u+""||null}return p.centroid=function(){var e=(+n.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-m/2;return[y(r)*e,x(r)*e]},p.innerRadius=function(t){return arguments.length?(n="function"==typeof t?t:c(+t),p):n},p.outerRadius=function(n){return arguments.length?(t="function"==typeof n?n:c(+n),p):t},p.cornerRadius=function(n){return arguments.length?(e="function"==typeof n?n:c(+n),p):e},p.padRadius=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:c(+n),p):r},p.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:c(+n),p):o},p.endAngle=function(n){return arguments.length?(a="function"==typeof n?n:c(+n),p):a},p.padAngle=function(n){return arguments.length?(i="function"==typeof n?n:c(+n),p):i},p.context=function(n){return arguments.length?(l=null==n?null:n,p):l},p}function I(n,t){return t<n?-1:t>n?1:t>=n?0:NaN}function k(n){return n}function B({label:u,rows:f}){const h=e(),[y,p]=r(Math.round,120),{tip:d,showAt:x,hide:g}=o(),[v,m]=n.useState(null),M=f.filter(n=>null!==n.value&&n.value>0),j=p?.width??0,w=p?.height??0,b=a(M.map(n=>n.value)),P=function(){var n=k,t=I,e=null,r=c(0),o=c(A),a=c(0);function i(i){var l,u,c,f,h,y=(i=s(i)).length,p=0,d=new Array(y),x=new Array(y),g=+r.apply(this,arguments),v=Math.min(A,Math.max(-A,o.apply(this,arguments)-g)),m=Math.min(Math.abs(v)/y,a.apply(this,arguments)),M=m*(v<0?-1:1);for(l=0;l<y;++l)(h=x[d[l]=l]=+n(i[l],l,i))>0&&(p+=h);for(null!=t?d.sort(function(n,e){return t(x[n],x[e])}):null!=e&&d.sort(function(n,t){return e(i[n],i[t])}),l=0,c=p?(v-y*M)/p:0;l<y;++l,g=f)u=d[l],f=g+((h=x[u])>0?h*c:0)+M,x[u]={data:i[u],index:l,value:h,startAngle:g,endAngle:f,padAngle:m};return x}return i.value=function(t){return arguments.length?(n="function"==typeof t?t:c(+t),i):n},i.sortValues=function(n){return arguments.length?(t=n,e=null,i):t},i.sort=function(n){return arguments.length?(e=n,t=null,i):e},i.startAngle=function(n){return arguments.length?(r="function"==typeof n?n:c(+nLine truncated
|
||||
import{r as n,j as t}from"./vendor-react-64fcanlc.js";import{u as e,f as r}from"./index-XeGFdFb3.js";import{aW as o,b4 as a,aZ as i,a$ as l}from"./activity-7OeQMmIs.js";import{w as u,c,a as s}from"./array-C0VuvQyb.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-Bm1vmvln.js";import"./AppearanceControls-Q-jHRGz9.js";import"./ItemText-Bvif-kkw.js";import"./logs-DNePHVHd.js";import"./Select-OqnbuzuK.js";const f=Math.abs,h=Math.atan2,y=Math.cos,p=Math.max,d=Math.min,x=Math.sin,g=Math.sqrt,v=1e-12,m=Math.PI,M=m/2,A=2*m;function j(n){return n>=1?M:n<=-1?-M:Math.asin(n)}function w(n){return n.innerRadius}function b(n){return n.outerRadius}function P(n){return n.startAngle}function T(n){return n.endAngle}function R(n){return n&&n.padAngle}function L(n,t,e,r,o,a,i){var l=n-e,u=t-r,c=(i?a:-a)/g(l*l+u*u),s=c*u,f=-c*l,h=n+s,y=t+f,d=e+s,x=r+f,v=(h+d)/2,m=(y+x)/2,M=d-h,A=x-y,j=M*M+A*A,w=o-a,b=h*x-d*y,P=(A<0?-1:1)*g(p(0,w*w*j-b*b)),T=(b*A-M*P)/j,R=(-b*M-A*P)/j,L=(b*A+M*P)/j,$=(-b*M+A*P)/j,I=T-v,k=R-m,B=L-v,K=$-m;return I*I+k*k>B*B+K*K&&(T=L,R=$),{cx:T,cy:R,x01:-s,y01:-f,x11:T*(o/w-1),y11:R*(o/w-1)}}function $(){var n=w,t=b,e=c(0),r=null,o=P,a=T,i=R,l=null,s=u(p);function p(){var u,c,p,w=+n.apply(this,arguments),b=+t.apply(this,arguments),P=o.apply(this,arguments)-M,T=a.apply(this,arguments)-M,R=f(T-P),$=T>P;if(l||(l=u=s()),b<w&&(c=b,b=w,w=c),b>v)if(R>A-v)l.moveTo(b*y(P),b*x(P)),l.arc(0,0,b,P,T,!$),w>v&&(l.moveTo(w*y(T),w*x(T)),l.arc(0,0,w,T,P,$));else{var I,k,B=P,K=T,N=P,S=T,D=R,E=R,F=i.apply(this,arguments)/2,q=F>v&&(r?+r.apply(this,arguments):g(w*w+b*b)),C=d(f(b-w)/2,+e.apply(this,arguments)),H=C,V=C;if(q>v){var W=j(q/w*x(F)),Z=j(q/b*x(F));(D-=2*W)>v?(N+=W*=$?1:-1,S-=W):(D=0,N=S=(P+T)/2),(E-=2*Z)>v?(B+=Z*=$?1:-1,K-=Z):(E=0,B=K=(P+T)/2)}var _=b*y(B),z=b*x(B),G=w*y(S),J=w*x(S);if(C>v){var O,Q=b*y(K),U=b*x(K),X=w*y(N),Y=w*x(N);if(R<m)if(O=function(n,t,e,r,o,a,i,l){var u=e-n,c=r-t,s=i-o,f=l-a,h=f*u-s*c;if(!(h*h<v))return[n+(h=(s*(t-a)-f*(n-o))/h)*u,t+h*c]}(_,z,X,Y,Q,U,G,J)){var nn=_-O[0],tn=z-O[1],en=Q-O[0],rn=U-O[1],on=1/x(((p=(nn*en+tn*rn)/(g(nn*nn+tn*tn)*g(en*en+rn*rn)))>1?0:p<-1?m:Math.acos(p))/2),an=g(O[0]*O[0]+O[1]*O[1]);H=d(C,(w-an)/(on-1)),V=d(C,(b-an)/(on+1))}else H=V=0}E>v?V>v?(I=L(X,Y,_,z,b,V,$),k=L(Q,U,G,J,b,V,$),l.moveTo(I.cx+I.x01,I.cy+I.y01),V<C?l.arc(I.cx,I.cy,V,h(I.y01,I.x01),h(k.y01,k.x01),!$):(l.arc(I.cx,I.cy,V,h(I.y01,I.x01),h(I.y11,I.x11),!$),l.arc(0,0,b,h(I.cy+I.y11,I.cx+I.x11),h(k.cy+k.y11,k.cx+k.x11),!$),l.arc(k.cx,k.cy,V,h(k.y11,k.x11),h(k.y01,k.x01),!$))):(l.moveTo(_,z),l.arc(0,0,b,B,K,!$)):l.moveTo(_,z),w>v&&D>v?H>v?(I=L(G,J,Q,U,w,-H,$),k=L(_,z,X,Y,w,-H,$),l.lineTo(I.cx+I.x01,I.cy+I.y01),H<C?l.arc(I.cx,I.cy,H,h(I.y01,I.x01),h(k.y01,k.x01),!$):(l.arc(I.cx,I.cy,H,h(I.y01,I.x01),h(I.y11,I.x11),!$),l.arc(0,0,w,h(I.cy+I.y11,I.cx+I.x11),h(k.cy+k.y11,k.cx+k.x11),$),l.arc(k.cx,k.cy,H,h(k.y11,k.x11),h(k.y01,k.x01),!$))):l.arc(0,0,w,S,N,$):l.lineTo(G,J)}else l.moveTo(0,0);if(l.closePath(),u)return l=null,u+""||null}return p.centroid=function(){var e=(+n.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-m/2;return[y(r)*e,x(r)*e]},p.innerRadius=function(t){return arguments.length?(n="function"==typeof t?t:c(+t),p):n},p.outerRadius=function(n){return arguments.length?(t="function"==typeof n?n:c(+n),p):t},p.cornerRadius=function(n){return arguments.length?(e="function"==typeof n?n:c(+n),p):e},p.padRadius=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:c(+n),p):r},p.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:c(+n),p):o},p.endAngle=function(n){return arguments.length?(a="function"==typeof n?n:c(+n),p):a},p.padAngle=function(n){return arguments.length?(i="function"==typeof n?n:c(+n),p):i},p.context=function(n){return arguments.length?(l=null==n?null:n,p):l},p}function I(n,t){return t<n?-1:t>n?1:t>=n?0:NaN}function k(n){return n}function B({label:u,rows:f}){const h=e(),[y,p]=r(Math.round,120),{tip:d,showAt:x,hide:g}=o(),[v,m]=n.useState(null),M=f.filter(n=>null!==n.value&&n.value>0),j=p?.width??0,w=p?.height??0,b=a(M.map(n=>n.value)),P=function(){var n=k,t=I,e=null,r=c(0),o=c(A),a=c(0);function i(i){var l,u,c,f,h,y=(i=s(i)).length,p=0,d=new Array(y),x=new Array(y),g=+r.apply(this,arguments),v=Math.min(A,Math.max(-A,o.apply(this,arguments)-g)),m=Math.min(Math.abs(v)/y,a.apply(this,arguments)),M=m*(v<0?-1:1);for(l=0;l<y;++l)(h=x[d[l]=l]=+n(i[l],l,i))>0&&(p+=h);for(null!=t?d.sort(function(n,e){return t(x[n],x[e])}):null!=e&&d.sort(function(n,t){return e(i[n],i[t])}),l=0,c=p?(v-y*M)/p:0;l<y;++l,g=f)u=d[l],f=g+((h=x[u])>0?h*c:0)+M,x[u]={data:i[u],index:l,value:h,startAngle:g,endAngle:f,padAngle:m};return x}return i.value=function(t){return arguments.length?(n="function"==typeof t?t:c(+t),i):n},i.sortValues=function(n){return arguments.length?(t=n,e=null,i):t},i.sort=function(n){return arguments.length?(e=n,t=null,i):e},i.startAngle=function(n){return arguments.length?(r="function"==typeof n?n:c(+nLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,$ as t,a as r,j as n}from"./vendor-react-64fcanlc.js";import{ey as o,gi as i,ep as a,el as s,cN as l,gj as d,gk as c,gl as p,er as u,em as g,en as f,dv as m,eo as h,gb as y,gm as D,ez as v,eP as b,gn as w,go as x,eQ as T,ew as k,dx as E,bp as P,cK as K,cC as O,b7 as S,aD as C,cn as I,eW as j,az as A,bs as R,B as M,f as B,u as L,R as F,ch as $,q as z,d2 as N,bK as V,cw as X,df as Y,b5 as H,aL as q,gp as U,P as J,gq as W,A as _}from"./index-C-WQXF8v.js";import{b5 as G,b6 as Q,b7 as Z,b8 as ee,b9 as te,ba as re,bb as ne,bc as oe,bd as ie,be as ae,bf as se,bg as le,bh as de,bi as ce,bj as pe,bk as ue,bl as ge,bm as fe,bn as me,bo as he,bp as ye,bq as De,br as ve,bs as be,bt as we,bu as xe,bv as Te,bw as ke,bx as Ee,by as Pe,bz as Ke,bA as Oe,bB as Se,bC as Ce,bD as Ie,bE as je,bF as Ae}from"./activity-BQ91A1_2.js";import{$ as Re,a as Me}from"./GridList-CYOcEmX9.js";import{m as Be}from"./Select-B67-iUq2.js";import{D as Le}from"./Delete-Kzat-N3j.js";import{S as Fe,c as $e,$ as ze}from"./logs-B-rowQjz.js";import{C as Ne}from"./AppearanceControls-CRuy5orf.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-D39HfuKn.js";import"./ItemText-CnmwoDur.js";import"./Checkbox-DiXDVgGl.js";var Ve=function(e){return e[e.none=0]="none",e[e.cancel=0]="cancel",e[e.move=1]="move",e[e.copy=2]="copy",e[e.link=4]="link",e[e.all=7]="all",e}({});const Xe={...Ve,copyMove:3,copyLink:6,linkMove:5,all:7,uninitialized:7},Ye=Ue(Xe);Ye[7]="all";const He={none:"cancel",link:"link",copy:"copy",move:"move"},qe=Ue(He);function Ue(e){let t={};for(let r in e)t[e[r]]=r;return t}const Je=new Set(["text/plain","text/uri-list","text/html"]),We="application/vnd.react-aria.items+json",_e="application/octet-stream",Ge=new WeakMap,Qe=Symbol();function Ze(e){let t=new Set;for(let r of e)for(let e of Object.keys(r))t.add(e);return t}function et(e){return e||(e="virtual"),"pointer"===e&&(e="virtual"),"virtual"===e&&"undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia("(pointer: coarse)").matches&&(e="touch"),e}function tt(){return et(o())}function rt(){return et(i())}class nt{constructor(e){this.types=new Set;let t=!1;for(let r of e.items)r.type!==We&&("file"===r.kind&&(t=!0),r.type?this.types.add(r.type):this.types.add(_e));this.includesUnknownTypes=!t&&e.types.includes("Files")}has(e){if(Array.isArray(e))return e.some(e=>this.has(e));if(this.includesUnknownTypes||e===Qe&&this.types.has(_e)||"*/*"===e)return!0;if("string"==typeof e){if(e.endsWith("/*")){for(let t of this.types)if(t.startsWith(e.slice(0,-2)))return!0;return!1}return this.types.has(e)}return!1}}function ot(e){if(!e)throw new Error("No file provided");return{kind:"file",type:e.type||_e,name:e.name,getText:()=>{return"function"==typeof(t=e).text?t.text():new Promise((e,r)=>{let n=new FileReader;n.onload=()=>{e(n.result)},n.onerror=r,n.readAsText(t)});var t},getFile:()=>Promise.resolve(e)}}function it(e){return{kind:"directory",name:e.name,getEntries:()=>async function*(e){let t,r=e.createReader();do{t=await new Promise((e,t)=>{r.readEntries(e,t)});for(let e of t)if(e.isFile){let t=await at(e);yield ot(t)}else e.isDirectory&&(yield it(e))}while(t.length>0)}(e)}}function at(e){return new Promise((t,r)=>e.file(t,r))}let st,lt={draggingKeys:new Set};function dt(e){lt.dropCollectionRef=e}function ct(){lt={draggingKeys:new Set}}function pt(e){let{draggingCollectionRef:t,dropCollectionRef:r}=lt;return null!=t?.current&&t.current===(e?.current||r?.current)}function ut(e){st=e}let gt=Ve.none;function ft(e){gt=e}let mt=new Map,ht=new Map,yt=null,Dt=new Set;function vt(e){return mt.set(e.element,e),yt?.updateValidDropTargets(),()=>{mt.delete(e.element),yt?.updateValidDropTargets()}}function bt(){let[t,r]=e.useState(yt);return e.useEffect(()=>{let e=()=>r(yt);return Dt.add(e),()=>{Dt.delete(e)}},[]),t}function wt(){return!!yt}const xt=["pointerdown","pointermove","pointerenter","pointerleave","pointerover","pointerout","pointerup","mousedown","mousemove","mouseenter","mouseleave","mouseover","mouseout","mouseup","touchstart","touchmove","touchend","focusin","focusout"],Tt=["pointerup","mouseup","touchend"],kt={keyboard:"dragStartedKeyboard",touch:"dragStartedTouch",virtual:"dragStartedVirtual"};class Et{constructor(e,t){this.validDropTargets=[],this.currentDropTarget=null,this.currentDropItem=null,this.dropOperation=null,this.mutationObserver=null,this.restoreAriaHidden=null,this.isVirtualClick=!1,this.dragTarget=e,this.stringFormatter=t,this.onKeyDown=this.onKeyDown.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onClick=this.onClick.bind(this),this.onPointerDown=this.onPointerDown.bind(this),this.cancelEvent=this.cancelEvent.bind(this),this.initialFocused=!1}setup(){document.addEventListener("keydown",this.onKeyDown,!0),document.addEventListener("keyup",this.onKeyUp,!0),window.addEventListener("focus",this.onFocus,!0),window.addEventListener("blur",this.onBlur,!0),document.addELine truncated
|
||||
import{r as e,$ as t,a as r,j as n}from"./vendor-react-64fcanlc.js";import{ey as o,gi as i,ep as a,el as s,cN as l,gj as d,gk as c,gl as p,er as u,em as g,en as f,dv as m,eo as h,gb as y,gm as D,ez as v,eP as b,gn as w,go as x,eQ as T,ew as k,dx as E,bp as P,cK as K,cC as O,b7 as S,aD as C,cn as I,eW as j,az as A,bs as R,B as M,f as B,u as L,R as F,ch as $,q as z,d2 as N,bK as V,cw as X,df as Y,b5 as H,aL as q,gp as U,P as J,gq as W,A as _}from"./index-XeGFdFb3.js";import{b5 as G,b6 as Q,b7 as Z,b8 as ee,b9 as te,ba as re,bb as ne,bc as oe,bd as ie,be as ae,bf as se,bg as le,bh as de,bi as ce,bj as pe,bk as ue,bl as ge,bm as fe,bn as me,bo as he,bp as ye,bq as De,br as ve,bs as be,bt as we,bu as xe,bv as Te,bw as ke,bx as Ee,by as Pe,bz as Ke,bA as Oe,bB as Se,bC as Ce,bD as Ie,bE as je,bF as Ae}from"./activity-7OeQMmIs.js";import{$ as Re,a as Me}from"./GridList-wfRSpULl.js";import{m as Be}from"./Select-OqnbuzuK.js";import{D as Le}from"./Delete-BlpuXHjZ.js";import{S as Fe,c as $e,$ as ze}from"./logs-DNePHVHd.js";import{C as Ne}from"./AppearanceControls-Q-jHRGz9.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-Bm1vmvln.js";import"./ItemText-Bvif-kkw.js";import"./Checkbox-BewExwKL.js";var Ve=function(e){return e[e.none=0]="none",e[e.cancel=0]="cancel",e[e.move=1]="move",e[e.copy=2]="copy",e[e.link=4]="link",e[e.all=7]="all",e}({});const Xe={...Ve,copyMove:3,copyLink:6,linkMove:5,all:7,uninitialized:7},Ye=Ue(Xe);Ye[7]="all";const He={none:"cancel",link:"link",copy:"copy",move:"move"},qe=Ue(He);function Ue(e){let t={};for(let r in e)t[e[r]]=r;return t}const Je=new Set(["text/plain","text/uri-list","text/html"]),We="application/vnd.react-aria.items+json",_e="application/octet-stream",Ge=new WeakMap,Qe=Symbol();function Ze(e){let t=new Set;for(let r of e)for(let e of Object.keys(r))t.add(e);return t}function et(e){return e||(e="virtual"),"pointer"===e&&(e="virtual"),"virtual"===e&&"undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia("(pointer: coarse)").matches&&(e="touch"),e}function tt(){return et(o())}function rt(){return et(i())}class nt{constructor(e){this.types=new Set;let t=!1;for(let r of e.items)r.type!==We&&("file"===r.kind&&(t=!0),r.type?this.types.add(r.type):this.types.add(_e));this.includesUnknownTypes=!t&&e.types.includes("Files")}has(e){if(Array.isArray(e))return e.some(e=>this.has(e));if(this.includesUnknownTypes||e===Qe&&this.types.has(_e)||"*/*"===e)return!0;if("string"==typeof e){if(e.endsWith("/*")){for(let t of this.types)if(t.startsWith(e.slice(0,-2)))return!0;return!1}return this.types.has(e)}return!1}}function ot(e){if(!e)throw new Error("No file provided");return{kind:"file",type:e.type||_e,name:e.name,getText:()=>{return"function"==typeof(t=e).text?t.text():new Promise((e,r)=>{let n=new FileReader;n.onload=()=>{e(n.result)},n.onerror=r,n.readAsText(t)});var t},getFile:()=>Promise.resolve(e)}}function it(e){return{kind:"directory",name:e.name,getEntries:()=>async function*(e){let t,r=e.createReader();do{t=await new Promise((e,t)=>{r.readEntries(e,t)});for(let e of t)if(e.isFile){let t=await at(e);yield ot(t)}else e.isDirectory&&(yield it(e))}while(t.length>0)}(e)}}function at(e){return new Promise((t,r)=>e.file(t,r))}let st,lt={draggingKeys:new Set};function dt(e){lt.dropCollectionRef=e}function ct(){lt={draggingKeys:new Set}}function pt(e){let{draggingCollectionRef:t,dropCollectionRef:r}=lt;return null!=t?.current&&t.current===(e?.current||r?.current)}function ut(e){st=e}let gt=Ve.none;function ft(e){gt=e}let mt=new Map,ht=new Map,yt=null,Dt=new Set;function vt(e){return mt.set(e.element,e),yt?.updateValidDropTargets(),()=>{mt.delete(e.element),yt?.updateValidDropTargets()}}function bt(){let[t,r]=e.useState(yt);return e.useEffect(()=>{let e=()=>r(yt);return Dt.add(e),()=>{Dt.delete(e)}},[]),t}function wt(){return!!yt}const xt=["pointerdown","pointermove","pointerenter","pointerleave","pointerover","pointerout","pointerup","mousedown","mousemove","mouseenter","mouseleave","mouseover","mouseout","mouseup","touchstart","touchmove","touchend","focusin","focusout"],Tt=["pointerup","mouseup","touchend"],kt={keyboard:"dragStartedKeyboard",touch:"dragStartedTouch",virtual:"dragStartedVirtual"};class Et{constructor(e,t){this.validDropTargets=[],this.currentDropTarget=null,this.currentDropItem=null,this.dropOperation=null,this.mutationObserver=null,this.restoreAriaHidden=null,this.isVirtualClick=!1,this.dragTarget=e,this.stringFormatter=t,this.onKeyDown=this.onKeyDown.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onClick=this.onClick.bind(this),this.onPointerDown=this.onPointerDown.bind(this),this.cancelEvent=this.cancelEvent.bind(this),this.initialFocused=!1}setup(){document.addEventListener("keydown",this.onKeyDown,!0),document.addEventListener("keyup",this.onKeyUp,!0),window.addEventListener("focus",this.onFocus,!0),window.addEventListener("blur",this.onBlur,!0),document.addELine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{U as n,a2 as s,a4 as r,a1 as a,h as i,a9 as o,u as l,al as d,l as c,q as m,c2 as u,ab as p,ac as v,dp as h,dq as j,T as f,av as x,B as b,p as g,E as w}from"./index-C-WQXF8v.js";import{L as k}from"./AppearanceControls-CRuy5orf.js";import{d as y,O as T,K as N,L as C}from"./logs-B-rowQjz.js";import{T as H}from"./Toolbar-Yd2KR-zd.js";import{D as _}from"./Table-DDHjB8la.js";import{d as K,e as O}from"./files-Dt8K7QfP.js";import{j as S,D as W}from"./activity-BQ91A1_2.js";import{u as L,C as M}from"./Copy-BqPmUS7m.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./ItemText-CnmwoDur.js";import"./Select-B67-iUq2.js";import"./nodes-D39HfuKn.js";import"./Checkbox-DiXDVgGl.js";import"./Virtualizer-DBBzjqSD.js";const R={buffer_overflow:["event.gap.overflow","event.gapHelp.overflow"],evicted:["event.gap.evicted","event.gapHelp.evicted"]};function q(e,t){const n="flow.gap"===e.event&&Object.hasOwn(R,e.data.reason)?R[e.data.reason]:void 0;return n&&{title:t(n[0]),text:t(n[1])}}function D(e,t){const n=e=>e?[{id:"flow",label:t("event.viewFlow"),href:i("flows",{tab:"records",id:e})}]:[];switch(e.event){case"flow.updated":return n(e.data.resource_id);case"flow.gap":return[...n(e.data.resource_id),{id:"recording",label:t("ui.recordingSettings"),href:S}];case"generation.changed":return[{id:"config",label:t("event.viewConfig"),href:i("config")}];default:return[]}}const F=new WeakMap;function I(e,t,i,o,l,d,c,m,u=!1,p=()=>!1){const v="without-runtime"===t||m.includes(t)?t:"all",h=e.filter(e=>"all"===v||("without-runtime"===v?"runtime.updated"!==e.event:e.event===v)).slice(0,l);return{kind:v,rows:h.map(e=>function(e,t,i,o){const l=F.get(e);if(l&&l.locale===t)return l.row;const d=o?{key:"event.lostHistory"}:r(e,i),c={id:y(e),timestamp:a(e.data.observed_at,t),iso:e.data.observed_at,kind:e.event,kindText:n(s,e.event,i),summary:i(d.key,d.params),help:q(e,i),links:D(e,i),event:e};return F.set(e,{locale:t,row:c}),c}(e,d,c,p(e))),kinds:[{id:"without-runtime",label:c("event.withoutRuntime")},{id:"all",label:c("event.allKinds")},...m.map(e=>({id:e,label:n(s,e,c)}))],status:u&&!1!==o?{tone:"err",text:c("event.disconnected")}:{tone:i?"ok":null===o?"muted":"warn",text:c(!1===o?"event.unavailable":i?"event.connected":null===o?"ui.loading":"event.reconnecting")},limitText:c("event.limit",{n:l}),shown:h}}function J(){const t=o(),n=l(),s=d[c()],r=m(),a=r.data?.resources.events.kinds,[i,f]=e.useState("without-runtime"),x="all"!==i&&"runtime.updated"!==i&&a?.includes(i),b=T("without-runtime"!==i&&!x),g=e.useMemo(()=>I(b.events,i,b.connected,b.available,j,s,n,a??[],!!b.error,h),[b.events,i,b.connected,b.available,b.error,s,n,a]);return u(g.kind,f),{...g,setKind:f,cursor:b.cursor,error:b.error,retry:()=>{p().then(()=>v(t))},loading:!b.error&&!b.connected&&!1!==b.available&&!b.events.length,export:()=>{return K(O("doona-events","json"),(e=g.shown,JSON.stringify(e,null,2)+"\n"),"application/json");var e}}}function P(){const n=l(),s=J(),r=L(),a=e.useMemo(()=>[{id:"t",label:n("ui.time"),minWidth:212,grow:0,drop:1,render:e=>t.jsx(f,{className:"rp-code",text:e.iso,children:e.timestamp})},{id:"k",label:n("event.kind"),minWidth:224,drop:2,render:e=>t.jsx(f,{text:e.kind,children:e.kindText})},{id:"m",label:n("event.summary"),minWidth:176,isRowHeader:!0,render:e=>t.jsx(x,{fill:!0,help:e.help,children:t.jsx(f,{children:e.summary})})},{id:"actions",actions:!0,label:n("ui.actions"),hideLabel:!0,minWidth:64,grow:0,render:e=>t.jsx(b,{small:!0,quiet:!0,icon:!0,label:n("ui.copyRecord"),onPress:()=>{r((e=>JSON.stringify(e,null,2))(e.event))},children:t.jsx(M,{})})}],[n,r]),i=e.useCallback(e=>t.jsxs(t.Fragment,{children:[t.jsx(N,{inline:!0,items:[[n("ui.time"),e.timestamp],[n("event.kind"),e.kindText],[n("event.summary"),e.summary]]}),e.links.length>0&&t.jsx("div",{className:"rp-cluster",children:e.links.map(e=>t.jsx(k,{appearance:"button",href:e.href,children:e.label},e.id))})]}),[n]);return t.jsxs("div",{className:"rp-page",children:[t.jsxs(H,{page:!0,children:[t.jsx(C,{label:n("event.kind"),side:!0,value:s.kind,onChange:s.setKind,items:s.kinds}),t.jsx(g,{small:!0,tone:s.status.tone,children:s.status.text}),s.cursor&&t.jsx(f,{text:s.cursor,children:t.jsx("span",{className:"rp-label",children:n("event.cursor")})}),t.jsx("span",{className:"rp-label",children:s.limitText}),t.jsx("span",{className:"rp-grow"}),t.jsxs(b,{isDisabled:!s.rows.length,onPress:s.export,children:[t.jsx(W,{}),n("event.export")]})]}),s.error&&t.jsx(w,{error:s.error,onRetry:s.retry}),t.jsx(_,{label:n("nav.events"),stream:!0,flow:!0,loading:s.loading,rows:s.rows,empty:n("event.empty"),cols:a,detail:i})]})}export{P as Events};
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{U as n,a2 as s,a4 as r,a1 as a,h as i,a9 as o,u as l,al as d,l as c,q as m,c2 as u,ab as p,ac as v,dp as h,dq as j,T as f,av as x,B as b,p as g,E as w}from"./index-XeGFdFb3.js";import{L as k}from"./AppearanceControls-Q-jHRGz9.js";import{d as y,O as T,K as N,L as C}from"./logs-DNePHVHd.js";import{T as H}from"./Toolbar-CFyWgMbW.js";import{D as _}from"./Table-DqqJleJD.js";import{d as K,e as O}from"./files-Dt8K7QfP.js";import{j as S,D as W}from"./activity-7OeQMmIs.js";import{u as L,C as M}from"./Copy-Cix1qeo3.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./ItemText-Bvif-kkw.js";import"./Select-OqnbuzuK.js";import"./nodes-Bm1vmvln.js";import"./Checkbox-BewExwKL.js";import"./Virtualizer-FvdVRagH.js";const R={buffer_overflow:["event.gap.overflow","event.gapHelp.overflow"],evicted:["event.gap.evicted","event.gapHelp.evicted"]};function q(e,t){const n="flow.gap"===e.event&&Object.hasOwn(R,e.data.reason)?R[e.data.reason]:void 0;return n&&{title:t(n[0]),text:t(n[1])}}function D(e,t){const n=e=>e?[{id:"flow",label:t("event.viewFlow"),href:i("flows",{tab:"records",id:e})}]:[];switch(e.event){case"flow.updated":return n(e.data.resource_id);case"flow.gap":return[...n(e.data.resource_id),{id:"recording",label:t("ui.recordingSettings"),href:S}];case"generation.changed":return[{id:"config",label:t("event.viewConfig"),href:i("config")}];default:return[]}}const F=new WeakMap;function I(e,t,i,o,l,d,c,m,u=!1,p=()=>!1){const v="without-runtime"===t||m.includes(t)?t:"all",h=e.filter(e=>"all"===v||("without-runtime"===v?"runtime.updated"!==e.event:e.event===v)).slice(0,l);return{kind:v,rows:h.map(e=>function(e,t,i,o){const l=F.get(e);if(l&&l.locale===t)return l.row;const d=o?{key:"event.lostHistory"}:r(e,i),c={id:y(e),timestamp:a(e.data.observed_at,t),iso:e.data.observed_at,kind:e.event,kindText:n(s,e.event,i),summary:i(d.key,d.params),help:q(e,i),links:D(e,i),event:e};return F.set(e,{locale:t,row:c}),c}(e,d,c,p(e))),kinds:[{id:"without-runtime",label:c("event.withoutRuntime")},{id:"all",label:c("event.allKinds")},...m.map(e=>({id:e,label:n(s,e,c)}))],status:u&&!1!==o?{tone:"err",text:c("event.disconnected")}:{tone:i?"ok":null===o?"muted":"warn",text:c(!1===o?"event.unavailable":i?"event.connected":null===o?"ui.loading":"event.reconnecting")},limitText:c("event.limit",{n:l}),shown:h}}function J(){const t=o(),n=l(),s=d[c()],r=m(),a=r.data?.resources.events.kinds,[i,f]=e.useState("without-runtime"),x="all"!==i&&"runtime.updated"!==i&&a?.includes(i),b=T("without-runtime"!==i&&!x),g=e.useMemo(()=>I(b.events,i,b.connected,b.available,j,s,n,a??[],!!b.error,h),[b.events,i,b.connected,b.available,b.error,s,n,a]);return u(g.kind,f),{...g,setKind:f,cursor:b.cursor,error:b.error,retry:()=>{p().then(()=>v(t))},loading:!b.error&&!b.connected&&!1!==b.available&&!b.events.length,export:()=>{return K(O("doona-events","json"),(e=g.shown,JSON.stringify(e,null,2)+"\n"),"application/json");var e}}}function P(){const n=l(),s=J(),r=L(),a=e.useMemo(()=>[{id:"t",label:n("ui.time"),minWidth:212,grow:0,drop:1,render:e=>t.jsx(f,{className:"rp-code",text:e.iso,children:e.timestamp})},{id:"k",label:n("event.kind"),minWidth:224,drop:2,render:e=>t.jsx(f,{text:e.kind,children:e.kindText})},{id:"m",label:n("event.summary"),minWidth:176,isRowHeader:!0,render:e=>t.jsx(x,{fill:!0,help:e.help,children:t.jsx(f,{children:e.summary})})},{id:"actions",actions:!0,label:n("ui.actions"),hideLabel:!0,minWidth:64,grow:0,render:e=>t.jsx(b,{small:!0,quiet:!0,icon:!0,label:n("ui.copyRecord"),onPress:()=>{r((e=>JSON.stringify(e,null,2))(e.event))},children:t.jsx(M,{})})}],[n,r]),i=e.useCallback(e=>t.jsxs(t.Fragment,{children:[t.jsx(N,{inline:!0,items:[[n("ui.time"),e.timestamp],[n("event.kind"),e.kindText],[n("event.summary"),e.summary]]}),e.links.length>0&&t.jsx("div",{className:"rp-cluster",children:e.links.map(e=>t.jsx(k,{appearance:"button",href:e.href,children:e.label},e.id))})]}),[n]);return t.jsxs("div",{className:"rp-page",children:[t.jsxs(H,{page:!0,children:[t.jsx(C,{label:n("event.kind"),side:!0,value:s.kind,onChange:s.setKind,items:s.kinds}),t.jsx(g,{small:!0,tone:s.status.tone,children:s.status.text}),s.cursor&&t.jsx(f,{text:s.cursor,children:t.jsx("span",{className:"rp-label",children:n("event.cursor")})}),t.jsx("span",{className:"rp-label",children:s.limitText}),t.jsx("span",{className:"rp-grow"}),t.jsxs(b,{isDisabled:!s.rows.length,onPress:s.export,children:[t.jsx(W,{}),n("event.export")]})]}),s.error&&t.jsx(w,{error:s.error,onRetry:s.retry}),t.jsx(_,{label:n("nav.events"),stream:!0,flow:!0,loading:s.loading,rows:s.rows,empty:n("event.empty"),cols:a,detail:i})]})}export{P as Events};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as s}from"./vendor-react-64fcanlc.js";import{u as a,l,ct as t,al as o,dg as i,b5 as n,B as r}from"./index-C-WQXF8v.js";import{S as c}from"./SearchSelect-ZK-gprFX.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Select-B67-iUq2.js";import"./ItemText-CnmwoDur.js";import"./SearchList-B2h2qAe4.js";import"./Virtualizer-DBBzjqSD.js";function m({name:n,value:r,automaticFlag:m,onChange:d}){const f=a(),g=l(),p=e.useMemo(()=>t(o[g]),[g]),j=i(n),u=p.find(e=>e.flag===m),h=u?f("flags.detected",{region:u.label}):f("flags.automatic");return s.jsx("div",{className:"rp-list",children:s.jsx(c,{label:f("flags.region"),description:f(j?"flags.embedded":"flags.help"),isDisabled:j,searchLabel:f("flags.search"),value:j?"automatic":r,onChange:d,sections:[{id:"flags",items:[{id:"automatic",label:h,flag:m},{id:"none",label:f("flags.none"),flag:null},...p]}]})})}function d({name:e,onClose:l,...t}){const o=a();return s.jsxs(n,{narrow:!0,title:o("flags.edit"),isOpen:!0,onOpenChange:e=>{e||l()},footer:()=>s.jsx(r,{onPress:l,children:o("ui.close")}),children:[s.jsx("p",{className:"rp-note",children:e}),s.jsx(m,{name:e,...t})]})}export{m as FlagField,d as FlagPicker};
|
||||
import{r as e,j as s}from"./vendor-react-64fcanlc.js";import{u as a,l,ct as t,al as o,dg as i,b5 as n,B as r}from"./index-XeGFdFb3.js";import{S as c}from"./SearchSelect-BVGce3l_.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Select-OqnbuzuK.js";import"./ItemText-Bvif-kkw.js";import"./SearchList-DWooTdFX.js";import"./Virtualizer-FvdVRagH.js";function m({name:n,value:r,automaticFlag:m,onChange:d}){const f=a(),g=l(),p=e.useMemo(()=>t(o[g]),[g]),j=i(n),u=p.find(e=>e.flag===m),h=u?f("flags.detected",{region:u.label}):f("flags.automatic");return s.jsx("div",{className:"rp-list",children:s.jsx(c,{label:f("flags.region"),description:f(j?"flags.embedded":"flags.help"),isDisabled:j,searchLabel:f("flags.search"),value:j?"automatic":r,onChange:d,sections:[{id:"flags",items:[{id:"automatic",label:h,flag:m},{id:"none",label:f("flags.none"),flag:null},...p]}]})})}function d({name:e,onClose:l,...t}){const o=a();return s.jsxs(n,{narrow:!0,title:o("flags.edit"),isOpen:!0,onOpenChange:e=>{e||l()},footer:()=>s.jsx(r,{onPress:l,children:o("ui.close")}),children:[s.jsx("p",{className:"rp-note",children:e}),s.jsx(m,{name:e,...t})]})}export{m as FlagField,d as FlagPicker};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{O as n}from"./OutboundTag-yFgWAs1b.js";import{l as a,p as o,c as s,h as r,R as l,S as i,L as d,K as u}from"./logs-B-rowQjz.js";import{a6 as c,M as p,a3 as m,H as f,G as g,c4 as w,c6 as h,w as b,bZ as v,U as j,b$ as x,c0 as y,al as k,a1 as _,h as M,ak as N,o as L,a8 as S,Y as T,u as C,l as P,i as O,B as F,N as R,b7 as E,ax as H,q,r as W,b4 as $,c8 as I,c3 as D,aG as A,E as U,T as B,aE as J,bx as K,S as Q,af as G,C as V}from"./index-C-WQXF8v.js";import{h as Z,f as z,i as X,o as Y,j as ee,d as te}from"./activity-BQ91A1_2.js";import{w as ne}from"./labels-D8xxfRTQ.js";import{c as ae,C as oe}from"./Coverage-BvvFzjoN.js";import{f as se}from"./nav-C9NL8eDT.js";import{L as re}from"./AppearanceControls-CRuy5orf.js";import{T as le}from"./Tabs-DVxF89X7.js";import{T as ie}from"./Toolbar-Yd2KR-zd.js";import{D as de}from"./Table-DDHjB8la.js";import{T as ue}from"./TimeCell-B2wYTQbc.js";import{a as ce,u as pe,b as me}from"./flows-Bm5f0qGx.js";import{u as fe}from"./outbounds-CStRcMI8.js";import{u as ge,Q as we,R as he}from"./useQuickRule-Dg2XjZII.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Tag-Bizvcn28.js";import"./Select-B67-iUq2.js";import"./ItemText-CnmwoDur.js";import"./nodes-D39HfuKn.js";import"./Checkbox-DiXDVgGl.js";import"./Virtualizer-DBBzjqSD.js";import"./DaeCode-DEjXqvav.js";import"./daeTokens-BVtuNnWZ.js";import"./AddCircle-Bsrf2UoO.js";import"./SearchSelect-ZK-gprFX.js";import"./SearchList-B2h2qAe4.js";import"./rule-C502aJft.js";const be=["client","rule","outbound","node"];function ve(e,t){if(e.rule_id)return null!==e.rule_generation_id&&e.rule_generation_id===t?e.rule_id:e.rule_id+"\0"+e.rule_expression}function je(e,t,n,a){switch(t){case"client":{const t=p(e.input?.src??void 0);return{label:t??"unknown",unknown:!t}}case"rule":return e.rule_expression?{label:e.rule_expression,unknown:!1,key:ve(e,a)}:{label:"unknown",unknown:!0};case"outbound":return e.outbound?{label:e.outbound,unknown:!1}:{label:"unknown",unknown:!0};case"node":{if(c(e.outbound))return null;const t=e.chain.at(-1)??null;return t?{label:n.get(t)??t,unknown:!1,key:t}:{label:"unknown",unknown:!0}}}}const xe=(e,t)=>z(e,t.unknown?"":t.key??t.label),ye=e=>Z(e,be)?.kind,ke=new Map;function _e(e,t,n){const a=ye(t);return a?e.filter(e=>{const o=je(e,a,ke,n?.generation_id);return null!==o&&xe(a,o)===t}):[]}function Me(e,t,n,a){const o=Z(e,be);if(!o||""===o.value)return a(null);const{kind:s,value:r}=o;return"rule"===s?r.includes("\0")?r.slice(r.indexOf("\0")+1):t.find(e=>e.rule_id===r)?.expression??r:"node"===s?n.get(r)??r:"client"===s?r:a(r)}function Ne(e,t,n,a,o="rule"){const s=(e=>new Map(e.map(e=>[e.id,e.name])))(n),r=new Map(t.map(e=>[e.id,e])),l=new Map(t.map(e=>[e.name,e])),i=new Map(n.map(e=>[e.id,e])),d=new Map,u=new Map,p=new Map,w=new Map,h=(e,t)=>{const n=e+">"+t;let a=w.get(n);return a||w.set(n,a={source:e,target:t,count:0}),a},b=(e,t,n=!1)=>{const a=xe("node",{key:e,label:t,unknown:n});let o=p.get(a);if(!o){const s=n?void 0:i.get(e),r=s&&f(s);p.set(a,o={id:a,label:t,count:0,unknown:n||void 0,latency:g(r),unavailable:"unavailable"===r?.state})}return o},v=(e,t=!1)=>{const n=xe("outbound",{label:e,unknown:t});let a=u.get(n);if(a)return a;const o=t?void 0:l.get(e),d=t?{groups:[],member:null}:m(e,o?.selection.tcp_member_id?"tcp":"udp",l,r,i),p=d.groups.map(e=>({name:e.name,kind:e.policy.kind,policy:e.policy.native})),f=d.member;return a={id:n,label:e,count:0,unknown:t||void 0,kind:t?"unknown":c(e)?e:p.length?"group":"unknown",groups:p,node:f&&b(f,s.get(f)??f).id},u.set(n,a),a.node&&h(n,a.node),a},j=(e,t,n=!1)=>{let a=d.get(e);return a||d.set(e,a={id:e,label:t,count:0,unknown:n||void 0,outbound:null,must:!1}),a};if("rule"===o)for(const c of a?.rules??[]){const e=j(xe("rule",{key:c.rule_id,label:c.expression}),c.expression);e.must=c.must,c.outbound&&(e.outbound=v(c.outbound).id,h(e.id,e.outbound))}const x=[o,"outbound","node"];for(const c of e){let e;for(const t of x){const n=je(c,t,s,a?.generation_id);if(!n)break;const o="outbound"===t?v(n.label,n.unknown):"node"===t?b(n.key??n.label,n.label,n.unknown):j(xe(t,n),n.label,n.unknown);o.count++,e&&h(e.id,o.id).count++,e=o}}for(const c of t)v(c.name);const y=new Set([...d.values()].map(e=>e.outbound)),k=new Set([...u.values()].flatMap(e=>e.groups.slice(1).map(e=>e.name))),_=[...u.values()].filter(e=>e.count||y.has(e.id)||!k.has(e.label)),M=new Set(_.map(e=>e.id)),N=[...w.values()].filter(e=>M.has(e.source)||M.has(e.target)),L=new Set(N.map(e=>e.target));return{by:o,leaves:[...d.values()],outbounds:_,nodes:[...p.values()].filter(e=>L.has(e.id)),links:N}}const Le=new WeakMap;function Se(e){const t=Le.get(e);if(t)return t;const n=new Map,a=new Map,o=new Map;for(const l of e.links){for(const[e,t]of[[n,l.source],[a,l.target]]){let n=e.get(t);n||e.set(t,n=[]),n.push(l)}(!o.has(l.source)||o.get(l.source).count<l.count)&&o.set(l.source,l)}const s=new Map;for(const l of[...e.leaves,...e.outbounds]){const e=("groups"in l?l.node:l.outbound)??oLine truncated
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{O as n}from"./OutboundTag-B01P-KVW.js";import{l as a,p as o,c as s,h as r,R as l,S as i,L as d,K as u}from"./logs-DNePHVHd.js";import{a6 as c,M as p,a3 as m,H as f,G as g,c4 as w,c6 as h,w as b,bZ as v,U as j,b$ as x,c0 as y,al as k,a1 as _,h as M,ak as N,o as L,a8 as S,Y as T,u as C,l as P,i as O,B as F,N as R,b7 as E,ax as H,q,r as W,b4 as $,c8 as I,c3 as D,aG as A,E as U,T as B,aE as J,bx as K,S as Q,af as G,C as V}from"./index-XeGFdFb3.js";import{h as Z,f as z,i as X,o as Y,j as ee,d as te}from"./activity-7OeQMmIs.js";import{w as ne}from"./labels-D8xxfRTQ.js";import{c as ae,C as oe}from"./Coverage-fmBkVF9H.js";import{f as se}from"./nav-BIicxOIW.js";import{L as re}from"./AppearanceControls-Q-jHRGz9.js";import{T as le}from"./Tabs-BGWzF0yW.js";import{T as ie}from"./Toolbar-CFyWgMbW.js";import{D as de}from"./Table-DqqJleJD.js";import{T as ue}from"./TimeCell-B6QtVZge.js";import{a as ce,u as pe,b as me}from"./flows-CjEC9Jxw.js";import{u as fe}from"./outbounds-UWplA2Qq.js";import{u as ge,Q as we,R as he}from"./useQuickRule-8yoKk9d5.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Tag-BaZZD5o2.js";import"./Select-OqnbuzuK.js";import"./ItemText-Bvif-kkw.js";import"./nodes-Bm1vmvln.js";import"./Checkbox-BewExwKL.js";import"./Virtualizer-FvdVRagH.js";import"./DaeCode-DEjXqvav.js";import"./daeTokens-BVtuNnWZ.js";import"./AddCircle-7x8u9Pw1.js";import"./SearchSelect-BVGce3l_.js";import"./SearchList-DWooTdFX.js";import"./rule-BUktGcKO.js";const be=["client","rule","outbound","node"];function ve(e,t){if(e.rule_id)return null!==e.rule_generation_id&&e.rule_generation_id===t?e.rule_id:e.rule_id+"\0"+e.rule_expression}function je(e,t,n,a){switch(t){case"client":{const t=p(e.input?.src??void 0);return{label:t??"unknown",unknown:!t}}case"rule":return e.rule_expression?{label:e.rule_expression,unknown:!1,key:ve(e,a)}:{label:"unknown",unknown:!0};case"outbound":return e.outbound?{label:e.outbound,unknown:!1}:{label:"unknown",unknown:!0};case"node":{if(c(e.outbound))return null;const t=e.chain.at(-1)??null;return t?{label:n.get(t)??t,unknown:!1,key:t}:{label:"unknown",unknown:!0}}}}const xe=(e,t)=>z(e,t.unknown?"":t.key??t.label),ye=e=>Z(e,be)?.kind,ke=new Map;function _e(e,t,n){const a=ye(t);return a?e.filter(e=>{const o=je(e,a,ke,n?.generation_id);return null!==o&&xe(a,o)===t}):[]}function Me(e,t,n,a){const o=Z(e,be);if(!o||""===o.value)return a(null);const{kind:s,value:r}=o;return"rule"===s?r.includes("\0")?r.slice(r.indexOf("\0")+1):t.find(e=>e.rule_id===r)?.expression??r:"node"===s?n.get(r)??r:"client"===s?r:a(r)}function Ne(e,t,n,a,o="rule"){const s=(e=>new Map(e.map(e=>[e.id,e.name])))(n),r=new Map(t.map(e=>[e.id,e])),l=new Map(t.map(e=>[e.name,e])),i=new Map(n.map(e=>[e.id,e])),d=new Map,u=new Map,p=new Map,w=new Map,h=(e,t)=>{const n=e+">"+t;let a=w.get(n);return a||w.set(n,a={source:e,target:t,count:0}),a},b=(e,t,n=!1)=>{const a=xe("node",{key:e,label:t,unknown:n});let o=p.get(a);if(!o){const s=n?void 0:i.get(e),r=s&&f(s);p.set(a,o={id:a,label:t,count:0,unknown:n||void 0,latency:g(r),unavailable:"unavailable"===r?.state})}return o},v=(e,t=!1)=>{const n=xe("outbound",{label:e,unknown:t});let a=u.get(n);if(a)return a;const o=t?void 0:l.get(e),d=t?{groups:[],member:null}:m(e,o?.selection.tcp_member_id?"tcp":"udp",l,r,i),p=d.groups.map(e=>({name:e.name,kind:e.policy.kind,policy:e.policy.native})),f=d.member;return a={id:n,label:e,count:0,unknown:t||void 0,kind:t?"unknown":c(e)?e:p.length?"group":"unknown",groups:p,node:f&&b(f,s.get(f)??f).id},u.set(n,a),a.node&&h(n,a.node),a},j=(e,t,n=!1)=>{let a=d.get(e);return a||d.set(e,a={id:e,label:t,count:0,unknown:n||void 0,outbound:null,must:!1}),a};if("rule"===o)for(const c of a?.rules??[]){const e=j(xe("rule",{key:c.rule_id,label:c.expression}),c.expression);e.must=c.must,c.outbound&&(e.outbound=v(c.outbound).id,h(e.id,e.outbound))}const x=[o,"outbound","node"];for(const c of e){let e;for(const t of x){const n=je(c,t,s,a?.generation_id);if(!n)break;const o="outbound"===t?v(n.label,n.unknown):"node"===t?b(n.key??n.label,n.label,n.unknown):j(xe(t,n),n.label,n.unknown);o.count++,e&&h(e.id,o.id).count++,e=o}}for(const c of t)v(c.name);const y=new Set([...d.values()].map(e=>e.outbound)),k=new Set([...u.values()].flatMap(e=>e.groups.slice(1).map(e=>e.name))),_=[...u.values()].filter(e=>e.count||y.has(e.id)||!k.has(e.label)),M=new Set(_.map(e=>e.id)),N=[...w.values()].filter(e=>M.has(e.source)||M.has(e.target)),L=new Set(N.map(e=>e.target));return{by:o,leaves:[...d.values()],outbounds:_,nodes:[...p.values()].filter(e=>L.has(e.id)),links:N}}const Le=new WeakMap;function Se(e){const t=Le.get(e);if(t)return t;const n=new Map,a=new Map,o=new Map;for(const l of e.links){for(const[e,t]of[[n,l.source],[a,l.target]]){let n=e.get(t);n||e.set(t,n=[]),n.push(l)}(!o.has(l.source)||o.get(l.source).count<l.count)&&o.set(l.source,l)}const s=new Map;for(const l of[...e.leaves,...e.outbounds]){const e=("groups"in l?l.node:l.outbound)??oLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{fG as e,cK as t,cD as r,cC as o,bp as a,fH as i,dY as l,eB as n,eC as s,eq as c,er as d,es as u,cL as p,et as g,ev as f,ew as y,cN as v,eu as b,el as h,e1 as m,fM as k,c$ as D,e6 as w,d3 as E,d2 as P,eA as M,cU as x,cV as S,cW as A,eN as K,cY as C,eb as T,eH as N,eJ as B,e2 as I,eO as F,cQ as L,e3 as R,e0 as V,ek as H,eI as U,eK as O,c_ as z,eT as $,eU as G,ea as W}from"./index-C-WQXF8v.js";import{b as _,a as j,c as q,e as Y,f as J,g as Q}from"./Checkbox-DiXDVgGl.js";import{k as X,f as Z,e as ee,l as te,g as re,i as oe,h as ae}from"./Select-B67-iUq2.js";import{r as ie,$ as le}from"./vendor-react-64fcanlc.js";const ne=new WeakMap;function se(e,t){let{id:r}=ne.get(e)??{};if(!r)throw new Error("Unknown list");return`${r}-${function(e){return"string"==typeof e?e.replace(/\s*/g,""):""+e}(t)}`}const ce={ltr:"ArrowRight",rtl:"ArrowLeft"},de={ltr:"ArrowLeft",rtl:"ArrowRight"};function ue(e,t,r){let{node:m,isVirtualized:k,focusMode:D="row",allowsArrowNavigation:w}=e,{direction:E}=a(),{onAction:P,linkBehavior:M,keyboardNavigationBehavior:x,shouldSelectOnPressUp:S}=ne.get(t),A=i(),K=ie.useRef(null),C=()=>{if(null!==r.current){if("child"===D){if(c(r.current)&&r.current!==d(u(r.current)))return;let e=p(r.current,{tabbable:!0}).firstChild();if(e)return g(e),void f(e,{containingElement:y(e)})}(null!=K.current&&m.key!==K.current||!c(r.current))&&g(r.current)}},T={},N=e.hasChildItems,B=t.selectionManager.isLink(m.key);if(null!=m&&"expandedKeys"in t){let e=t.collection.getChildren?.(m.key);N=N||[...e??[]].length>1,null==P&&!B&&"none"===t.selectionManager.selectionMode&&N&&(P=()=>t.toggleKey(m.key));let r=N?t.expandedKeys.has(m.key):void 0,o=1,a=m.index;if(m.level>=0&&null!=m?.parentKey){let e=t.collection.getItem(m.parentKey);if(e){let r=function(e,t){let r=t.getChildren?.(e.key),o=r?Array.from(r):[],a=o.length>0?o[0]:null,i=[];for(;a;)i.push(a),a=null!=a.nextKey?t.getItem(a.nextKey):null;return i}(e,t.collection);o=[...r].filter(e=>"item"===e.type).length,a>0&&"item"!==r[0].type&&(a-=1)}}else o=[...t.collection].filter(e=>0===e.level&&"item"===e.type).length;T={"aria-expanded":r,"aria-level":m.level+1,"aria-posinset":a+1,"aria-setsize":o}}let{itemProps:I,...F}=l({selectionManager:t.selectionManager,key:m.key,ref:r,isVirtualized:k,shouldSelectOnPressUp:e.shouldSelectOnPressUp||S,onAction:P||m.props?.onAction?n(m.props?.onAction,P?()=>P(m.key):void 0):void 0,focus:C,linkBehavior:M}),L=s(m.props),R=F.hasAction?L:{},V=o(I,R,{role:"row",onKeyDownCapture:"arrow"===x||w?e=>{let o=d(u(r.current));if(!h(e.currentTarget,v(e))||!r.current||!o)return;let a=p(r.current);if(a.currentNode=o,!pe(e,t,m,N,E,o,r.current,w))switch(e.key){case"ArrowLeft":if("arrow"===x){let t="rtl"===E?a.nextNode():a.previousNode();if(t)e.preventDefault(),e.stopPropagation(),g(t),f(t,{containingElement:y(r.current)});else if(e.preventDefault(),e.stopPropagation(),"rtl"===E)g(r.current),f(r.current,{containingElement:y(r.current)});else{a.currentNode=r.current;let e=ge(a);e&&(g(e),f(e,{containingElement:y(r.current)}))}}break;case"ArrowRight":if("arrow"===x){let t="rtl"===E?a.previousNode():a.nextNode();if(t)e.preventDefault(),e.stopPropagation(),g(t),f(t,{containingElement:y(r.current)});else if(e.preventDefault(),e.stopPropagation(),"ltr"===E)g(r.current),f(r.current,{containingElement:y(r.current)});else{a.currentNode=r.current;let e=ge(a);e&&(g(e),f(e,{containingElement:y(r.current)}))}}break;case"ArrowUp":case"ArrowDown":!e.altKey&&h(r.current,v(e))&&(e.stopPropagation(),e.preventDefault(),r.current.parentElement?.dispatchEvent(new KeyboardEvent(e.nativeEvent.type,e.nativeEvent)))}}:void 0,onFocus:e=>{K.current=m.key,v(e)===r.current?"child"===D&&e.relatedTarget&&h(r.current,e.relatedTarget)||requestAnimationFrame(()=>{"child"===D&&d(u(r.current))===r.current&&C()}):b()||t.selectionManager.setFocusedKey(m.key)},"aria-label":m["aria-label"]||m.textValue||void 0,"aria-selected":t.selectionManager.canSelectItem(m.key)?t.selectionManager.isSelected(m.key):void 0,"aria-disabled":t.selectionManager.isDisabled(m.key)||void 0,"aria-labelledby":A&&(m["aria-label"]||m.textValue)?`${se(t,m.key)} ${A}`:void 0,id:se(t,m.key)});"child"===D&&w&&"tab"===x&&(V.tabIndex=-1);let H=V.onKeyDown;if(V.onKeyDown=e=>{(e=>{let o=d(u(r.current));if(h(e.currentTarget,v(e))&&r.current&&o){if("tab"===x){if(v(e)!==r.current&&"Tab"!==e.key)return void e.stopPropagation();if(pe(e,t,m,N,E,o,r.current,w))return}if("Tab"===e.key&&"tab"===x){let t=p(r.current,{tabbable:!0});t.currentNode=o,(e.shiftKey?t.previousNode():t.nextNode())&&e.stopPropagation()}}})(e),e.isPropagationStopped()||H?.(e)},k){let{collection:e}=t,r=[...e];V["aria-rowindex"]=r.find(e=>"section"===e.type)?[...e.getKeys()].filter(t=>"section"!==e.getItem(t)?.type).findIndex(e=>e===m.key)+1:m.index+1}return{rowProps:{...o(V,T)},gridCellProps:{role:"gridcell","aria-colindex":1},descriptionProps:{id:A},...F}}function pe(e,t,r,o,a,i,l,n){if(!("expandedKeys"in t)||!n&&i!==l)return!1;if(e.key===ce[a]&&t.selectionManager.focusLine truncated
|
||||
import{fG as e,cK as t,cD as r,cC as o,bp as a,fH as i,dY as l,eB as n,eC as s,eq as c,er as d,es as u,cL as p,et as g,ev as f,ew as y,cN as v,eu as b,el as h,e1 as m,fM as k,c$ as D,e6 as w,d3 as E,d2 as P,eA as M,cU as x,cV as S,cW as A,eN as K,cY as C,eb as T,eH as N,eJ as B,e2 as I,eO as F,cQ as L,e3 as R,e0 as V,ek as H,eI as U,eK as O,c_ as z,eT as $,eU as G,ea as W}from"./index-XeGFdFb3.js";import{b as _,a as j,c as q,e as Y,f as J,g as Q}from"./Checkbox-BewExwKL.js";import{k as X,f as Z,e as ee,l as te,g as re,i as oe,h as ae}from"./Select-OqnbuzuK.js";import{r as ie,$ as le}from"./vendor-react-64fcanlc.js";const ne=new WeakMap;function se(e,t){let{id:r}=ne.get(e)??{};if(!r)throw new Error("Unknown list");return`${r}-${function(e){return"string"==typeof e?e.replace(/\s*/g,""):""+e}(t)}`}const ce={ltr:"ArrowRight",rtl:"ArrowLeft"},de={ltr:"ArrowLeft",rtl:"ArrowRight"};function ue(e,t,r){let{node:m,isVirtualized:k,focusMode:D="row",allowsArrowNavigation:w}=e,{direction:E}=a(),{onAction:P,linkBehavior:M,keyboardNavigationBehavior:x,shouldSelectOnPressUp:S}=ne.get(t),A=i(),K=ie.useRef(null),C=()=>{if(null!==r.current){if("child"===D){if(c(r.current)&&r.current!==d(u(r.current)))return;let e=p(r.current,{tabbable:!0}).firstChild();if(e)return g(e),void f(e,{containingElement:y(e)})}(null!=K.current&&m.key!==K.current||!c(r.current))&&g(r.current)}},T={},N=e.hasChildItems,B=t.selectionManager.isLink(m.key);if(null!=m&&"expandedKeys"in t){let e=t.collection.getChildren?.(m.key);N=N||[...e??[]].length>1,null==P&&!B&&"none"===t.selectionManager.selectionMode&&N&&(P=()=>t.toggleKey(m.key));let r=N?t.expandedKeys.has(m.key):void 0,o=1,a=m.index;if(m.level>=0&&null!=m?.parentKey){let e=t.collection.getItem(m.parentKey);if(e){let r=function(e,t){let r=t.getChildren?.(e.key),o=r?Array.from(r):[],a=o.length>0?o[0]:null,i=[];for(;a;)i.push(a),a=null!=a.nextKey?t.getItem(a.nextKey):null;return i}(e,t.collection);o=[...r].filter(e=>"item"===e.type).length,a>0&&"item"!==r[0].type&&(a-=1)}}else o=[...t.collection].filter(e=>0===e.level&&"item"===e.type).length;T={"aria-expanded":r,"aria-level":m.level+1,"aria-posinset":a+1,"aria-setsize":o}}let{itemProps:I,...F}=l({selectionManager:t.selectionManager,key:m.key,ref:r,isVirtualized:k,shouldSelectOnPressUp:e.shouldSelectOnPressUp||S,onAction:P||m.props?.onAction?n(m.props?.onAction,P?()=>P(m.key):void 0):void 0,focus:C,linkBehavior:M}),L=s(m.props),R=F.hasAction?L:{},V=o(I,R,{role:"row",onKeyDownCapture:"arrow"===x||w?e=>{let o=d(u(r.current));if(!h(e.currentTarget,v(e))||!r.current||!o)return;let a=p(r.current);if(a.currentNode=o,!pe(e,t,m,N,E,o,r.current,w))switch(e.key){case"ArrowLeft":if("arrow"===x){let t="rtl"===E?a.nextNode():a.previousNode();if(t)e.preventDefault(),e.stopPropagation(),g(t),f(t,{containingElement:y(r.current)});else if(e.preventDefault(),e.stopPropagation(),"rtl"===E)g(r.current),f(r.current,{containingElement:y(r.current)});else{a.currentNode=r.current;let e=ge(a);e&&(g(e),f(e,{containingElement:y(r.current)}))}}break;case"ArrowRight":if("arrow"===x){let t="rtl"===E?a.previousNode():a.nextNode();if(t)e.preventDefault(),e.stopPropagation(),g(t),f(t,{containingElement:y(r.current)});else if(e.preventDefault(),e.stopPropagation(),"ltr"===E)g(r.current),f(r.current,{containingElement:y(r.current)});else{a.currentNode=r.current;let e=ge(a);e&&(g(e),f(e,{containingElement:y(r.current)}))}}break;case"ArrowUp":case"ArrowDown":!e.altKey&&h(r.current,v(e))&&(e.stopPropagation(),e.preventDefault(),r.current.parentElement?.dispatchEvent(new KeyboardEvent(e.nativeEvent.type,e.nativeEvent)))}}:void 0,onFocus:e=>{K.current=m.key,v(e)===r.current?"child"===D&&e.relatedTarget&&h(r.current,e.relatedTarget)||requestAnimationFrame(()=>{"child"===D&&d(u(r.current))===r.current&&C()}):b()||t.selectionManager.setFocusedKey(m.key)},"aria-label":m["aria-label"]||m.textValue||void 0,"aria-selected":t.selectionManager.canSelectItem(m.key)?t.selectionManager.isSelected(m.key):void 0,"aria-disabled":t.selectionManager.isDisabled(m.key)||void 0,"aria-labelledby":A&&(m["aria-label"]||m.textValue)?`${se(t,m.key)} ${A}`:void 0,id:se(t,m.key)});"child"===D&&w&&"tab"===x&&(V.tabIndex=-1);let H=V.onKeyDown;if(V.onKeyDown=e=>{(e=>{let o=d(u(r.current));if(h(e.currentTarget,v(e))&&r.current&&o){if("tab"===x){if(v(e)!==r.current&&"Tab"!==e.key)return void e.stopPropagation();if(pe(e,t,m,N,E,o,r.current,w))return}if("Tab"===e.key&&"tab"===x){let t=p(r.current,{tabbable:!0});t.currentNode=o,(e.shiftKey?t.previousNode():t.nextNode())&&e.stopPropagation()}}})(e),e.isPropagationStopped()||H?.(e)},k){let{collection:e}=t,r=[...e];V["aria-rowindex"]=r.find(e=>"section"===e.type)?[...e.getKeys()].filter(t=>"section"!==e.getItem(t)?.type).findIndex(e=>e===m.key)+1:m.index+1}return{rowProps:{...o(V,T)},gridCellProps:{role:"gridcell","aria-colindex":1},descriptionProps:{id:A},...F}}function pe(e,t,r,o,a,i,l,n){if(!("expandedKeys"in t)||!n&&i!==l)return!1;if(e.key===ce[a]&&t.selectionManager.focusLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{j as s}from"./vendor-react-64fcanlc.js";import{I as e,d5 as a,N as l,T as c}from"./index-C-WQXF8v.js";function r(a){return s.jsx(e,{...a,children:s.jsx("path",{fill:"currentColor",d:"M7.864 15.734c-.222 0-.433-.098-.576-.27l-3.747-4.497c-.266-.319-.222-.792.096-1.057.317-.265.79-.223 1.056.096l3.154 3.786 7.44-9.469c.255-.326.728-.382 1.052-.127.326.256.383.728.127 1.053L8.454 15.447c-.14.179-.352.284-.579.287z"})})}const t=()=>s.jsx(r,{className:"rp-check-mark"}),i=({i:e,cut:a,reserveFlag:r=!1})=>{const t="path"===a?e.label.lastIndexOf("/")+1:0;return s.jsxs("span",{className:"rp-il",children:[(e.flag||r&&void 0!==e.flag)&&s.jsx("span",{className:"rp-node-flag","data-flag":e.flag,"aria-hidden":"true"}),e.icon&&s.jsx("span",{className:"ic",children:e.icon}),e.nodeName?s.jsx(l,{name:e.label,cut:"start"===a?a:void 0}):t?s.jsxs(c,{className:"rp-path",text:e.label,children:[s.jsx("span",{className:"rp-truncate rp-truncate-start",children:s.jsx("bdi",{children:e.label.slice(0,t)})}),s.jsx("bdi",{children:e.label.slice(t)})]}):s.jsx(c,{cut:"start"===a?a:void 0,tooltipText:e.label,children:e.label})]})},n=({i:e,children:l})=>s.jsxs("span",{className:"rp-item-text",children:[s.jsx(a,{slot:"label",elementType:"span",children:s.jsx(i,{i:e,reserveFlag:!0})}),l??(e.desc&&s.jsx(a,{slot:"description",className:e.aside?"desc aside":"desc",children:e.desc}))]});export{r as C,i as I,t as a,n as b};
|
||||
import{j as s}from"./vendor-react-64fcanlc.js";import{I as e,d5 as a,N as l,T as c}from"./index-XeGFdFb3.js";function r(a){return s.jsx(e,{...a,children:s.jsx("path",{fill:"currentColor",d:"M7.864 15.734c-.222 0-.433-.098-.576-.27l-3.747-4.497c-.266-.319-.222-.792.096-1.057.317-.265.79-.223 1.056.096l3.154 3.786 7.44-9.469c.255-.326.728-.382 1.052-.127.326.256.383.728.127 1.053L8.454 15.447c-.14.179-.352.284-.579.287z"})})}const t=()=>s.jsx(r,{className:"rp-check-mark"}),i=({i:e,cut:a,reserveFlag:r=!1})=>{const t="path"===a?e.label.lastIndexOf("/")+1:0;return s.jsxs("span",{className:"rp-il",children:[(e.flag||r&&void 0!==e.flag)&&s.jsx("span",{className:"rp-node-flag","data-flag":e.flag,"aria-hidden":"true"}),e.icon&&s.jsx("span",{className:"ic",children:e.icon}),e.nodeName?s.jsx(l,{name:e.label,cut:"start"===a?a:void 0}):t?s.jsxs(c,{className:"rp-path",text:e.label,children:[s.jsx("span",{className:"rp-truncate rp-truncate-start",children:s.jsx("bdi",{children:e.label.slice(0,t)})}),s.jsx("bdi",{children:e.label.slice(t)})]}):s.jsx(c,{cut:"start"===a?a:void 0,tooltipText:e.label,children:e.label})]})},n=({i:e,children:l})=>s.jsxs("span",{className:"rp-item-text",children:[s.jsx(a,{slot:"label",elementType:"span",children:s.jsx(i,{i:e,reserveFlag:!0})}),l??(e.desc&&s.jsx(a,{slot:"description",className:e.aside?"desc aside":"desc",children:e.desc}))]});export{r as C,i as I,t as a,n as b};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{j as s}from"./vendor-react-64fcanlc.js";import{b7 as r}from"./index-C-WQXF8v.js";function e({className:e,...o}){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:10,height:10,viewBox:"0 0 12 12","aria-hidden":"true",focusable:"false",className:r("rp-icon rp-link-out",e),...o,children:s.jsx("path",{fill:"currentColor",d:"m10.08887,1h-5.51074c-.50293,0-.91113.4082-.91113.91113s.4082.91113.91113.91113h3.31055L1.35547,9.35547c-.35645.35645-.35645.93262,0,1.28906.17773.17773.41113.2666.64453.2666s.4668-.08887.64453-.2666l6.5332-6.5332v3.31055c0,.50293.4082.91113.91113.91113s.91113-.4082.91113-.91113V1.91113c0-.50293-.4082-.91113-.91113-.91113Z"})})}export{e as L};
|
||||
import{j as s}from"./vendor-react-64fcanlc.js";import{b7 as r}from"./index-XeGFdFb3.js";function e({className:e,...o}){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:10,height:10,viewBox:"0 0 12 12","aria-hidden":"true",focusable:"false",className:r("rp-icon rp-link-out",e),...o,children:s.jsx("path",{fill:"currentColor",d:"m10.08887,1h-5.51074c-.50293,0-.91113.4082-.91113.91113s.4082.91113.91113.91113h3.31055L1.35547,9.35547c-.35645.35645-.35645.93262,0,1.28906.17773.17773.41113.2666.64453.2666s.4668-.08887.64453-.2666l6.5332-6.5332v3.31055c0,.50293.4082.91113.91113.91113s.91113-.4082.91113-.91113V1.91113c0-.50293-.4082-.91113-.91113-.91113Z"})})}export{e as L};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{u as n,l as r,by as s,m as o,aM as a,bz as i,aV as l,bA as c,bB as u,bC as d,bD as p,h as m,C as g,b6 as f,E as h,bE as x,bF as w,bk as k,bG as j,B as y}from"./index-C-WQXF8v.js";import{D as b,s as v,d as T,a as S,o as E}from"./auth-CGURHhWN.js";import{L as N,a as C,P as D,S as L}from"./AppearanceControls-CRuy5orf.js";import{L as A}from"./LinkOut-Ff0bS5Fx.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./ItemText-CnmwoDur.js";const _=/^[A-Za-z0-9_.-]{1,64}$/;async function q(e,t){try{return v(await T(e,t))}catch(n){if(!function(e){return e instanceof SyntaxError||e instanceof a&&(404===e.status||401===e.status&&(!e.code||"authentication_required"===e.code))}(n))throw n;return n instanceof a&&404===n.status?await S(e,t)?"token":"no-api":"token"}}function I(e,t,n){try{const{profiles:r,activeId:s}=u(),o=function(e,t,n,r){return e.some(e=>e.id===t&&p(e.api)===p(n))?e.map(e=>e.id===t?{...e,token:r.trim()}:e):null}(r,e,t,n);if(!o)return"login.stale";d({profiles:o,activeId:s})}catch{return"settings.saveError"}return null}async function P(e,t,n,r){let s;try{s=await E(t,n,r)}catch(o){return function(e){if(!(e instanceof a))return null;if("invalid_credentials"===e.code)return{key:"login.invalidCredentials"};if("setup_required"===e.code)return{key:"login.needsSetup",switchTo:"setup"};if("setup_already_completed"===e.code)return{key:"login.alreadySetUp",switchTo:"login"};if("rate_limited"===e.code){const t=e.retryAfter??60;return{key:"login.rateLimited",params:{n:t},wait:t}}return null}(o)??{error:o}}try{c(e,t,s.token)}catch{return{key:"settings.saveError"}}return null}function R(e,t){const{kind:n,failure:r,attempt:s,ended:o,rejected:a}=e;return"no-api"===n?null:null!==r?{tone:"negative",text:"string"==typeof r?r:t(r.key,r.params),focus:!0,id:s}:o?{tone:"informative",text:t("login.sessionEnded"),focus:!1,id:0}:a&&"token"===n?{tone:"negative",text:t("login.rejected"),focus:!1,id:0}:null}const F=e=>"string"!=typeof e&&"login.rateLimited"===e.key;function H(t,a,c,u,d){const p=n(),m=r(),[g]=e.useState(()=>s(t,a)),[f,h]=e.useState(null),x=d?"no-api":f,[w,k]=e.useState({attempt:0,error:null});e.useEffect(()=>{if(d)return;const e=new AbortController;return q(a,e.signal).then(e=>h(e),t=>{e.signal.aborted||k(e=>({...e,error:t instanceof Error?t:new Error(String(t))}))}),()=>e.abort()},[a,w.attempt,d]);const[j,y]=e.useState(""),v=i(a),[T,S]=e.useState(v?b.username:""),[E,N]=e.useState(v?b.password:""),[C,D]=e.useState(""),[L,A]=e.useState(!1),[H,U]=e.useState(!1),[M,z]=e.useState({}),[B,O]=e.useState(null),[G,V]=e.useState(0),[Z,$]=e.useState(0),[J,K]=e.useState(Date.now);e.useEffect(()=>{if(Z<=J)return;const e=setTimeout(()=>K(Date.now()),(Z-J)%1e3||1e3);return()=>clearTimeout(e)},[Z,J]);const Q=function(e,t){return Math.max(0,Math.ceil((e-t)/1e3))}(Z,J),W=(e,t)=>n=>{t(n),M[e]&&z(({[e]:t,...n})=>n)},X=async e=>{const n=function(e,t,n,r){const s={};t?_.test(t)||(s.username="login.badUsername"):s.username="login.usernameRequired";const o=[...n].length;return o?"setup"===e&&o<8?s.password="login.passwordShort":o>128||(new TextEncoder).encode(n).length>512?s.password="login.passwordLong":"setup"===e&&n!==r&&(s.confirm="login.mismatch"):s.password="login.passwordRequired",s}(e,T,E,C);if(z(n),Object.keys(n).length)return;U(!0);const r=await P(t,a,e,{username:T,password:E});if(r)if(U(!1),"error"in r)O(p("login.failed",{error:l(r.error,p)}));else{if(r.wait){const e=Date.now();K(e),$(e+1e3*r.wait)}r.switchTo&&(h(r.switchTo),D("")),O(r)}else location.reload()},Y="setup"===x||"login"===x,ee=e=>M[e]?p(M[e]):void 0;return{kind:x,discoveryError:w.error,retryDiscovery:()=>k(e=>({attempt:e.attempt+1,error:null})),title:p("no-api"===x?"login.noApiTitle":"setup"===x?"login.setupTitle":"token"===x?"login.title":"login.passwordTitle"),note:"no-api"===x?p("login.noApiNote"):p("setup"===x?"login.setupNote":"login"===x?"login.connectedTo":"login.note",{backend:c}),demoNote:v&&"login"===x?p("login.demoNote",b):null,alert:R({kind:x,failure:B&&!Q&&F(B)?null:B,attempt:G,ended:g,rejected:u},p),busy:H,token:j,setToken:y,username:T,setUsername:W("username",S),usernameError:ee("username"),password:E,setPassword:W("password",N),passwordError:ee("password"),confirm:C,setConfirm:W("confirm",D),confirmError:ee("confirm"),submit:()=>{H||Q||null===x||"no-api"===x||(O(null),V(e=>e+1),Y?X(x):(()=>{if(!j.trim())return;const e=I(t,a,j);e?O({key:e}):location.reload()})())},canSubmit:null!==x&&"no-api"!==x&&!Q&&(Y||!!j.trim()),submitText:Q?p("login.retryIn",{n:Q}):p("setup"===x?"login.create":"login"===x?"login.signIn":"login.submit"),secretType:L?"text":"password",toggle:()=>A(e=>!e),toggleText:p(Y?L?"login.hidePassword":"login.showPassword":L?"settings.hideToken":"settings.showToken"),guideHref:o(m),requirementsHref:o(m,"no-native-api")}}function U({profileId:e,api:r,backend:s,rejected:o,missingApi:a,lang:i,pickLang:l,dark:c,themeLabel:u,toggleScheme:d,palette:p,wordmark:b,error:v,onRetry:T}){const S=n(),Line truncated
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{u as n,l as r,by as s,m as o,aM as a,bz as i,aV as l,bA as c,bB as u,bC as d,bD as p,h as m,C as g,b6 as f,E as h,bE as x,bF as w,bk as k,bG as j,B as y}from"./index-XeGFdFb3.js";import{D as b,s as v,d as T,a as S,o as E}from"./auth-5ngSjiJI.js";import{L as N,a as C,P as D,S as L}from"./AppearanceControls-Q-jHRGz9.js";import{L as A}from"./LinkOut-BfQApT3z.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./ItemText-Bvif-kkw.js";const _=/^[A-Za-z0-9_.-]{1,64}$/;async function q(e,t){try{return v(await T(e,t))}catch(n){if(!function(e){return e instanceof SyntaxError||e instanceof a&&(404===e.status||401===e.status&&(!e.code||"authentication_required"===e.code))}(n))throw n;return n instanceof a&&404===n.status?await S(e,t)?"token":"no-api":"token"}}function I(e,t,n){try{const{profiles:r,activeId:s}=u(),o=function(e,t,n,r){return e.some(e=>e.id===t&&p(e.api)===p(n))?e.map(e=>e.id===t?{...e,token:r.trim()}:e):null}(r,e,t,n);if(!o)return"login.stale";d({profiles:o,activeId:s})}catch{return"settings.saveError"}return null}async function P(e,t,n,r){let s;try{s=await E(t,n,r)}catch(o){return function(e){if(!(e instanceof a))return null;if("invalid_credentials"===e.code)return{key:"login.invalidCredentials"};if("setup_required"===e.code)return{key:"login.needsSetup",switchTo:"setup"};if("setup_already_completed"===e.code)return{key:"login.alreadySetUp",switchTo:"login"};if("rate_limited"===e.code){const t=e.retryAfter??60;return{key:"login.rateLimited",params:{n:t},wait:t}}return null}(o)??{error:o}}try{c(e,t,s.token)}catch{return{key:"settings.saveError"}}return null}function R(e,t){const{kind:n,failure:r,attempt:s,ended:o,rejected:a}=e;return"no-api"===n?null:null!==r?{tone:"negative",text:"string"==typeof r?r:t(r.key,r.params),focus:!0,id:s}:o?{tone:"informative",text:t("login.sessionEnded"),focus:!1,id:0}:a&&"token"===n?{tone:"negative",text:t("login.rejected"),focus:!1,id:0}:null}const F=e=>"string"!=typeof e&&"login.rateLimited"===e.key;function H(t,a,c,u,d){const p=n(),m=r(),[g]=e.useState(()=>s(t,a)),[f,h]=e.useState(null),x=d?"no-api":f,[w,k]=e.useState({attempt:0,error:null});e.useEffect(()=>{if(d)return;const e=new AbortController;return q(a,e.signal).then(e=>h(e),t=>{e.signal.aborted||k(e=>({...e,error:t instanceof Error?t:new Error(String(t))}))}),()=>e.abort()},[a,w.attempt,d]);const[j,y]=e.useState(""),v=i(a),[T,S]=e.useState(v?b.username:""),[E,N]=e.useState(v?b.password:""),[C,D]=e.useState(""),[L,A]=e.useState(!1),[H,U]=e.useState(!1),[M,z]=e.useState({}),[B,O]=e.useState(null),[G,V]=e.useState(0),[Z,$]=e.useState(0),[J,K]=e.useState(Date.now);e.useEffect(()=>{if(Z<=J)return;const e=setTimeout(()=>K(Date.now()),(Z-J)%1e3||1e3);return()=>clearTimeout(e)},[Z,J]);const Q=function(e,t){return Math.max(0,Math.ceil((e-t)/1e3))}(Z,J),W=(e,t)=>n=>{t(n),M[e]&&z(({[e]:t,...n})=>n)},X=async e=>{const n=function(e,t,n,r){const s={};t?_.test(t)||(s.username="login.badUsername"):s.username="login.usernameRequired";const o=[...n].length;return o?"setup"===e&&o<8?s.password="login.passwordShort":o>128||(new TextEncoder).encode(n).length>512?s.password="login.passwordLong":"setup"===e&&n!==r&&(s.confirm="login.mismatch"):s.password="login.passwordRequired",s}(e,T,E,C);if(z(n),Object.keys(n).length)return;U(!0);const r=await P(t,a,e,{username:T,password:E});if(r)if(U(!1),"error"in r)O(p("login.failed",{error:l(r.error,p)}));else{if(r.wait){const e=Date.now();K(e),$(e+1e3*r.wait)}r.switchTo&&(h(r.switchTo),D("")),O(r)}else location.reload()},Y="setup"===x||"login"===x,ee=e=>M[e]?p(M[e]):void 0;return{kind:x,discoveryError:w.error,retryDiscovery:()=>k(e=>({attempt:e.attempt+1,error:null})),title:p("no-api"===x?"login.noApiTitle":"setup"===x?"login.setupTitle":"token"===x?"login.title":"login.passwordTitle"),note:"no-api"===x?p("login.noApiNote"):p("setup"===x?"login.setupNote":"login"===x?"login.connectedTo":"login.note",{backend:c}),demoNote:v&&"login"===x?p("login.demoNote",b):null,alert:R({kind:x,failure:B&&!Q&&F(B)?null:B,attempt:G,ended:g,rejected:u},p),busy:H,token:j,setToken:y,username:T,setUsername:W("username",S),usernameError:ee("username"),password:E,setPassword:W("password",N),passwordError:ee("password"),confirm:C,setConfirm:W("confirm",D),confirmError:ee("confirm"),submit:()=>{H||Q||null===x||"no-api"===x||(O(null),V(e=>e+1),Y?X(x):(()=>{if(!j.trim())return;const e=I(t,a,j);e?O({key:e}):location.reload()})())},canSubmit:null!==x&&"no-api"!==x&&!Q&&(Y||!!j.trim()),submitText:Q?p("login.retryIn",{n:Q}):p("setup"===x?"login.create":"login"===x?"login.signIn":"login.submit"),secretType:L?"text":"password",toggle:()=>A(e=>!e),toggleText:p(Y?L?"login.hidePassword":"login.showPassword":L?"settings.hideToken":"settings.showToken"),guideHref:o(m),requirementsHref:o(m,"no-native-api")}}function U({profileId:e,api:r,backend:s,rejected:o,missingApi:a,lang:i,pickLang:l,dark:c,themeLabel:u,toggleScheme:d,palette:p,wordmark:b,error:v,onRetry:T}){const S=n(),Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{bI as r,u as s,al as a,l,dr as o,bP as n,B as i,cf as c,ds as d,C as g,dt as m,U as u,a1 as p,q as h,x as f,cb as x,bT as v,T as j,p as b,bG as w,ch as y,E as M}from"./index-C-WQXF8v.js";import{aO as T,a as N,F as k,aP as C,D as $}from"./activity-BQ91A1_2.js";import{C as S}from"./ItemText-CnmwoDur.js";import{P as A,Q as O,K as P,L as R,A as W}from"./logs-B-rowQjz.js";import{T as L}from"./Toolbar-Yd2KR-zd.js";import{D}from"./Table-DDHjB8la.js";import{d as F,e as q}from"./files-Dt8K7QfP.js";import{r as B}from"./recorder-BHyqDNp5.js";import{u as E,C as H}from"./Copy-BqPmUS7m.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-D39HfuKn.js";import"./AppearanceControls-CRuy5orf.js";import"./Select-B67-iUq2.js";import"./Checkbox-DiXDVgGl.js";import"./Virtualizer-DBBzjqSD.js";const I=new WeakMap;function _(e){let t=I.get(e);return void 0===t&&I.set(e,t=Date.parse(e.ts)),t}const J=[...r].reverse();function K({records:m,offered:u,minimum:p,setMinimum:h,waiting:f}){const x=s(),v=a[l()],j=N(),b=e.useMemo(()=>function(e,t,r,s=24){const a=r?J.indexOf(r):J.length-1,l=J.filter((e,r)=>t.includes(e)&&r<=a),o=e.map(_).filter(Number.isFinite);if(!o.length)return{rows:l.map(e=>({level:e,counts:[]})),buckets:[],width:0,busiest:null};const n=Math.min(...o),i=Math.max(...o),c=T(n,i,s),d=c.length>1?c[1]-c[0]:Math.max(i-n,6e4),g=new Map(l.map(e=>[e,new Array(c.length).fill(0)])),m=new Array(c.length).fill(0),u=new Array(c.length).fill(0);for(const x of e){const e=_(x),t=g.get(x.level);if(!t||!Number.isFinite(e))continue;const r=Math.min(c.length-1,Math.floor((e-c[0])/d));t[r]++,m[r]++,"error"===x.level&&u[r]++}const p=e=>e.reduce((t,r,s)=>r>e[t]?s:t,0),h=u.reduce((e,t)=>e+t,0),f=p(h?u:m);return{rows:l.map(e=>({level:e,counts:g.get(e)})),buckets:c,width:d,busiest:{start:c[f],count:h?u[f]:m[f],errors:h}}}(m,u,p),[m,u,p]),w=e.useMemo(()=>o(v),[v]),y=e.useCallback(e=>`${w.format(e)}–${w.format(e+b.width)}`,[w,b.width]),M=e.useMemo(()=>{const e=r.map(e=>{const r=x(n[e]);return[e,{text:r,label:t.jsxs(i,{quiet:!0,small:!0,className:e===p?"current":void 0,label:x(e===p?"log.chart.current":"log.chart.minimum",{level:r}),onPress:()=>h(e),children:[e===p&&t.jsx(S,{}),r]})}]});return new Map(e)},[p,h,x]),$=e.useMemo(()=>{const e={error:j.negative,warn:j.notice,info:j.info,debug:j.subtle,trace:j.muted},t=b.buckets.map(y);return{columns:b.buckets.map(e=>w.format(e)),rows:b.rows.map(r=>{const{text:s,label:a}=M.get(r.level);return{id:r.level,color:e[r.level],label:a,counts:r.counts,titles:r.counts.map((e,r)=>x("log.chart.cell",{time:t[r],level:s,n:e}))}})}},[b,y,w,M,j,x]);if(!m.length)return f?t.jsx(Q,{heads:M,levels:b.rows.map(e=>e.level),time:w.format(0)}):null;const A=b.busiest,O=A?A.errors?[{label:x("log.chart.errors"),value:x("log.chart.count",{n:A.errors}),icon:t.jsx(c,{}),tone:"negative"},{label:x("log.chart.peakErrors"),icon:t.jsx(d,{}),tint:"c1",value:y(A.start),caption:x("log.chart.count",{n:A.count})}]:[{label:x("log.chart.errors"),value:x("log.chart.count",{n:0}),icon:t.jsx(c,{}),tint:"c5"},{label:x("log.chart.peak"),icon:t.jsx(d,{}),tint:"c1",value:y(A.start),caption:x("log.chart.count",{n:A.count})}]:[];return t.jsxs("div",{className:"rp-chart-page",children:[t.jsx(k,{facts:O}),t.jsx(g,{title:x("log.chart.title"),note:x("log.chart.sample",{n:m.length}),children:t.jsx(C,{label:x("log.chart.title"),columns:$.columns,rows:$.rows})})]})}function Q({heads:e,levels:r,time:a}){const l=s(),o=[{label:l("log.chart.errors"),value:l("log.chart.count",{n:0}),icon:t.jsx(c,{}),tint:"c5"},{label:l("log.chart.peak"),icon:t.jsx(d,{}),tint:"c1",value:`${a}–${a}`,caption:l("log.chart.count",{n:0})}],n=r.map(t=>({id:t,color:"transparent",label:e.get(t).label,counts:[0],titles:[""]}));return t.jsxs("div",{className:"rp-chart-page",inert:!0,"aria-hidden":"true",children:[t.jsxs("div",{className:"rp-chart-hold",children:[t.jsx(k,{facts:o}),t.jsx(m,{})]}),t.jsxs("div",{className:"rp-chart-hold",children:[t.jsx(g,{title:l("log.chart.title"),note:l("log.chart.sample",{n:0}),children:t.jsx(C,{label:l("log.chart.title"),columns:[a],rows:n})}),t.jsx(m,{})]})]})}const U={trace:"muted",debug:"neutral",info:"info",warn:"warn",error:"err"},z=new WeakMap;function G(e,t,s,a,l,o=new Set,i){return{rows:e.flatMap(e=>{const t=function(e,t,r){const s=z.get(e);if(s&&s.locale===t)return s.row;const a={id:e.id,timestamp:p(e.ts,t),iso:e.ts,levelText:u(n,e.level,r),tone:U[e.level],target:e.target,gap:!1,record:e,message:e.message+(e.fields?" "+Object.entries(e.fields).map(([e,t])=>`${e}=${"string"==typeof t?t:JSON.stringify(t)}`).join(" "):"")};return z.set(e,{locale:t,row:a}),a}(e,a,l);return o.has(e)?[{...t,id:`gap ${e.id}`,timestamp:"",iso:"",levelText:"",target:"",gap:!0,message:l("log.gap")},t]:[t]}),levels:t.map(e=>{return{id:e,label:(t=e,i&&r.indexOf(t)<r.indexOf(i)?l("log.levelNotRecorded",{level:u(n,e,l)}):u(n,e,l))};var t}),recordedText:i?l("log.recorded",{level:u(n,i,l)}):null,exportBase:`${s||"engLine truncated
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{bI as r,u as s,al as a,l,dr as o,bP as n,B as i,cf as c,ds as d,C as g,dt as m,U as u,a1 as p,q as h,x as f,cb as x,bT as v,T as j,p as b,bG as w,ch as y,E as M}from"./index-XeGFdFb3.js";import{aO as T,a as N,F as k,aP as C,D as $}from"./activity-7OeQMmIs.js";import{C as S}from"./ItemText-Bvif-kkw.js";import{P as A,Q as O,K as P,L as R,A as W}from"./logs-DNePHVHd.js";import{T as L}from"./Toolbar-CFyWgMbW.js";import{D}from"./Table-DqqJleJD.js";import{d as F,e as q}from"./files-Dt8K7QfP.js";import{r as B}from"./recorder-BHyqDNp5.js";import{u as E,C as H}from"./Copy-Cix1qeo3.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-Bm1vmvln.js";import"./AppearanceControls-Q-jHRGz9.js";import"./Select-OqnbuzuK.js";import"./Checkbox-BewExwKL.js";import"./Virtualizer-FvdVRagH.js";const I=new WeakMap;function _(e){let t=I.get(e);return void 0===t&&I.set(e,t=Date.parse(e.ts)),t}const J=[...r].reverse();function K({records:m,offered:u,minimum:p,setMinimum:h,waiting:f}){const x=s(),v=a[l()],j=N(),b=e.useMemo(()=>function(e,t,r,s=24){const a=r?J.indexOf(r):J.length-1,l=J.filter((e,r)=>t.includes(e)&&r<=a),o=e.map(_).filter(Number.isFinite);if(!o.length)return{rows:l.map(e=>({level:e,counts:[]})),buckets:[],width:0,busiest:null};const n=Math.min(...o),i=Math.max(...o),c=T(n,i,s),d=c.length>1?c[1]-c[0]:Math.max(i-n,6e4),g=new Map(l.map(e=>[e,new Array(c.length).fill(0)])),m=new Array(c.length).fill(0),u=new Array(c.length).fill(0);for(const x of e){const e=_(x),t=g.get(x.level);if(!t||!Number.isFinite(e))continue;const r=Math.min(c.length-1,Math.floor((e-c[0])/d));t[r]++,m[r]++,"error"===x.level&&u[r]++}const p=e=>e.reduce((t,r,s)=>r>e[t]?s:t,0),h=u.reduce((e,t)=>e+t,0),f=p(h?u:m);return{rows:l.map(e=>({level:e,counts:g.get(e)})),buckets:c,width:d,busiest:{start:c[f],count:h?u[f]:m[f],errors:h}}}(m,u,p),[m,u,p]),w=e.useMemo(()=>o(v),[v]),y=e.useCallback(e=>`${w.format(e)}–${w.format(e+b.width)}`,[w,b.width]),M=e.useMemo(()=>{const e=r.map(e=>{const r=x(n[e]);return[e,{text:r,label:t.jsxs(i,{quiet:!0,small:!0,className:e===p?"current":void 0,label:x(e===p?"log.chart.current":"log.chart.minimum",{level:r}),onPress:()=>h(e),children:[e===p&&t.jsx(S,{}),r]})}]});return new Map(e)},[p,h,x]),$=e.useMemo(()=>{const e={error:j.negative,warn:j.notice,info:j.info,debug:j.subtle,trace:j.muted},t=b.buckets.map(y);return{columns:b.buckets.map(e=>w.format(e)),rows:b.rows.map(r=>{const{text:s,label:a}=M.get(r.level);return{id:r.level,color:e[r.level],label:a,counts:r.counts,titles:r.counts.map((e,r)=>x("log.chart.cell",{time:t[r],level:s,n:e}))}})}},[b,y,w,M,j,x]);if(!m.length)return f?t.jsx(Q,{heads:M,levels:b.rows.map(e=>e.level),time:w.format(0)}):null;const A=b.busiest,O=A?A.errors?[{label:x("log.chart.errors"),value:x("log.chart.count",{n:A.errors}),icon:t.jsx(c,{}),tone:"negative"},{label:x("log.chart.peakErrors"),icon:t.jsx(d,{}),tint:"c1",value:y(A.start),caption:x("log.chart.count",{n:A.count})}]:[{label:x("log.chart.errors"),value:x("log.chart.count",{n:0}),icon:t.jsx(c,{}),tint:"c5"},{label:x("log.chart.peak"),icon:t.jsx(d,{}),tint:"c1",value:y(A.start),caption:x("log.chart.count",{n:A.count})}]:[];return t.jsxs("div",{className:"rp-chart-page",children:[t.jsx(k,{facts:O}),t.jsx(g,{title:x("log.chart.title"),note:x("log.chart.sample",{n:m.length}),children:t.jsx(C,{label:x("log.chart.title"),columns:$.columns,rows:$.rows})})]})}function Q({heads:e,levels:r,time:a}){const l=s(),o=[{label:l("log.chart.errors"),value:l("log.chart.count",{n:0}),icon:t.jsx(c,{}),tint:"c5"},{label:l("log.chart.peak"),icon:t.jsx(d,{}),tint:"c1",value:`${a}–${a}`,caption:l("log.chart.count",{n:0})}],n=r.map(t=>({id:t,color:"transparent",label:e.get(t).label,counts:[0],titles:[""]}));return t.jsxs("div",{className:"rp-chart-page",inert:!0,"aria-hidden":"true",children:[t.jsxs("div",{className:"rp-chart-hold",children:[t.jsx(k,{facts:o}),t.jsx(m,{})]}),t.jsxs("div",{className:"rp-chart-hold",children:[t.jsx(g,{title:l("log.chart.title"),note:l("log.chart.sample",{n:0}),children:t.jsx(C,{label:l("log.chart.title"),columns:[a],rows:n})}),t.jsx(m,{})]})]})}const U={trace:"muted",debug:"neutral",info:"info",warn:"warn",error:"err"},z=new WeakMap;function G(e,t,s,a,l,o=new Set,i){return{rows:e.flatMap(e=>{const t=function(e,t,r){const s=z.get(e);if(s&&s.locale===t)return s.row;const a={id:e.id,timestamp:p(e.ts,t),iso:e.ts,levelText:u(n,e.level,r),tone:U[e.level],target:e.target,gap:!1,record:e,message:e.message+(e.fields?" "+Object.entries(e.fields).map(([e,t])=>`${e}=${"string"==typeof t?t:JSON.stringify(t)}`).join(" "):"")};return z.set(e,{locale:t,row:a}),a}(e,a,l);return o.has(e)?[{...t,id:`gap ${e.id}`,timestamp:"",iso:"",levelText:"",target:"",gap:!0,message:l("log.gap")},t]:[t]}),levels:t.map(e=>{return{id:e,label:(t=e,i&&r.indexOf(t)<r.indexOf(i)?l("log.levelNotRecorded",{level:u(n,e,l)}):u(n,e,l))};var t}),recordedText:i?l("log.recorded",{level:u(n,i,l)}):null,exportBase:`${s||"engLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{j as e,r as n}from"./vendor-react-64fcanlc.js";import{T as a,ci as s,u as r,S as o,af as i,al as t,l,q as d,r as c,cc as u,c5 as m,E as p,a8 as g,ce as h,cf as v,C as b,ak as f,N as j,B as x,ax as y,p as k,cg as w,I as N,b4 as S,ap as P,db as A,aE as C,a as M,b as F,bG as T,dc as L,dd as G,b9 as R,A as D,aK as O,v as E,c9 as q,c2 as _,aU as I,h as B,aV as H,Y as Q,cv as U,cw as K,x as V,w as J,de as W,aa as z,c6 as $,c4 as X,cx as Y,aN as Z,ch as ee,av as ne,df as ae,b5 as se,cs as re,bF as oe,d8 as ie,aL as te}from"./index-XeGFdFb3.js";import{L as le,C as de,l as ce}from"./AppearanceControls-Q-jHRGz9.js";import{T as ue}from"./Tabs-BGWzF0yW.js";import{h as me,c as pe,g as ge,S as he,K as ve,n as be,A as fe,L as je,z as xe,v as ye,u as ke,B as we,E as Ne,e as Se,w as Pe}from"./logs-DNePHVHd.js";import{ad as Ae,a1 as Ce,ae as Me,af as Fe,C as Te,F as Le,ag as Ge,ah as Re,ai as De,aj as Oe,q as Ee,ak as qe,al as _e,am as Ie,an as Be,ao as He,ap as Qe,aq as Ue,ar as Ke,V as Ve,as as Je,at as We,au as ze,av as $e,aw as Xe,ax as Ye,ay as Ze,az as en,aA as nn,aB as an,aC as sn,aD as rn,aE as on,aF as tn,aG as ln,Q as dn,aH as cn,aI as un,aJ as mn,aK as pn}from"./activity-7OeQMmIs.js";import{T as gn}from"./Toolbar-CFyWgMbW.js";import{T as hn}from"./TimeCell-B6QtVZge.js";import{a as vn,$ as bn}from"./GridList-wfRSpULl.js";import{P as fn}from"./ProbeOptionsDialog-fRxfzbxN.js";import{D as jn,c as xn}from"./Table-DqqJleJD.js";import{F as yn,T as kn,L as wn}from"./Tag-BaZZD5o2.js";import{FlagField as Nn}from"./FlagPicker-YsJ19Gt1.js";import{S as Sn}from"./SearchSelect-BVGce3l_.js";import{u as Pn}from"./outbounds-UWplA2Qq.js";import{aa as An,z as Cn,ab as Mn,ac as Fn,A as Tn,ad as Ln,ae as Gn,m as Rn,O as Dn,r as On,v as En,l as qn,q as _n,af as In}from"./nodes-Bm1vmvln.js";import{$ as Bn}from"./SearchList-DWooTdFX.js";import{a as Hn,p as Qn}from"./probe-Bp5QvROd.js";import{n as Un}from"./nav-xz-AMjAg.js";import{N as Kn,t as Vn,n as Jn}from"./NumberField-Bo9iJ94r.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./ItemText-Bvif-kkw.js";import"./Checkbox-BewExwKL.js";import"./Select-OqnbuzuK.js";import"./Virtualizer-FvdVRagH.js";function Wn({label:n,items:a,selected:s,onSelect:t,loading:l,empty:d,children:c}){const u=r();return e.jsx(bn,{className:"rp-cardview","aria-label":n,layout:"grid",items:a,dependencies:[c],selectionMode:"single",selectionBehavior:"replace",disallowEmptySelection:!0,selectedKeys:s?[s]:[],onSelectionChange:e=>{if("all"===e)return;const n=[...e][0];null!=n&&t(String(n))},renderEmptyState:()=>l?e.jsx(o,{shape:"cards",count:3,height:224,grid:!0}):e.jsx(i,{children:d??u("ui.empty")}),children:c})}function zn({id:n,title:r,titleFull:o,meta:i,actions:t,children:l}){return e.jsxs(vn,{id:n,textValue:r,className:s("rp-cardview-card"),children:[e.jsxs("div",{className:"rp-cardview-head",children:[e.jsx(a,{className:"rp-cardview-title",text:o,children:r}),t&&e.jsx("span",{className:"rp-cardview-actions",children:t})]}),i&&e.jsx("div",{className:"rp-cardview-meta",children:i}),l]})}function $n(a,s){return a.split("{names}").map((a,r)=>e.jsxs(n.Fragment,{children:[r>0&&s,a]},r))}function Xn(a,s,r,o){const i=f(s,["",""]),t=a.slice(0,6).map((a,s)=>e.jsxs(n.Fragment,{children:[s>0&&i,e.jsx(le,{appearance:"link",layout:"inline",href:o.get(a.id)??Oe([a.id]),children:e.jsx(j,{name:a.name})})]},a.id));if(a.length<=6)return t;const l=e.jsx(le,{appearance:"link",layout:"inline",href:Oe(a.map(e=>e.id)),children:r("nodes.latency.more",{n:a.length-6})});return r("nodes.latency.andMore",{names:"{names}",more:"{more}"}).split(/(\{names\}|\{more\})/).map((a,s)=>e.jsx(n.Fragment,{children:"{names}"===a?t:"{more}"===a?l:a},s))}const Yn=n=>[{label:n("nodes.latency.lowest"),icon:e.jsx(h,{}),tint:"c2",value:"",caption:" "},{label:n("nodes.latency.highest"),icon:e.jsx(Te,{}),tint:"c4",value:"",caption:" "},{label:n("ui.unavailable"),icon:e.jsx(v,{}),tint:"c5",value:""}];function Zn(){const a=r(),s=l(),{nodes:f,by:j,setBy:x,view:y,hrefs:k}=function(){const e=t[l()],a=d().data?.resources,s=me(c(a,"nodes",{whileLoading:!0})),r=pe(c(a,"groups",{whileLoading:!1})),o=ge(c(a,"providers",{whileLoading:!0})),[i,p]=n.useState("group"),g=u(),h=m(s.data,g),v=m(r.data,g),b=m(o.data,g),f=n.useMemo(()=>Ae(h??[],v,i,e),[h,v,i,e]),j=n.useMemo(()=>new Map((h??[]).map(e=>[e.id,Ce(e,b?.providers??[],!0)])),[h,b]);return{nodes:{...s,data:h},by:i,setBy:p,view:f,hrefs:j}}();if(f.error&&!f.data)return e.jsx(p,{error:f.error,onRetry:f.refetch});const w=!f.data;if(f.data&&!f.data.length)return e.jsx(i,{children:a("ui.empty")});const N=Me(y),{measured:S,down:P}=Fe(y),A=S[0],C=S.at(-1),M=A&&C?[{label:a("nodes.latency.lowest"),icon:e.jsx(h,{}),tint:"c2",value:A.name,nodeName:!0,valueRole:"name",caption:g(A.latest,a)},{label:a("nodes.latency.highest"),icon:e.jsx(Te,{}),tint:"c4",value:C.name,nodeName:!0,valueRole:"name",caption:g(C.latest,a)},{label:a("ui.unavailable"),value:a("nodes.latency.count",{n:P}),icon:e.jsx(v,{}),tint:"c5",tone:P?"negative":voidLine truncated
|
||||
@@ -1 +0,0 @@
|
||||
import{j as e,r as n}from"./vendor-react-64fcanlc.js";import{T as a,ci as s,u as r,S as o,af as i,al as t,l,q as d,r as c,cc as u,c5 as m,E as p,a8 as g,ce as h,cf as v,C as b,ak as f,N as j,B as x,ax as y,p as k,cg as w,I as N,b4 as S,ap as P,db as A,aE as C,a as M,b as F,bG as T,dc as L,dd as G,b9 as R,A as D,aK as O,v as E,c9 as q,c2 as _,aU as I,h as B,aV as H,Y as Q,cv as U,cw as K,x as V,w as J,de as W,aa as z,c6 as $,c4 as X,cx as Y,aN as Z,ch as ee,av as ne,df as ae,b5 as se,cs as re,bF as oe,d8 as ie,aL as te}from"./index-C-WQXF8v.js";import{L as le,C as de,l as ce}from"./AppearanceControls-CRuy5orf.js";import{T as ue}from"./Tabs-DVxF89X7.js";import{h as me,c as pe,g as ge,S as he,K as ve,n as be,A as fe,L as je,z as xe,v as ye,B as ke,E as we,e as Ne,u as Se,w as Pe}from"./logs-B-rowQjz.js";import{ad as Ae,a1 as Ce,ae as Me,af as Fe,C as Te,F as Le,ag as Ge,ah as Re,ai as De,aj as Oe,q as Ee,ak as qe,al as _e,am as Ie,an as Be,ao as He,ap as Qe,aq as Ue,ar as Ke,V as Ve,as as Je,at as We,au as ze,av as $e,aw as Xe,ax as Ye,ay as Ze,az as en,aA as nn,aB as an,aC as sn,aD as rn,aE as on,aF as tn,aG as ln,Q as dn,aH as cn,aI as un,aJ as mn,aK as pn}from"./activity-BQ91A1_2.js";import{T as gn}from"./Toolbar-Yd2KR-zd.js";import{T as hn}from"./TimeCell-B2wYTQbc.js";import{a as vn,$ as bn}from"./GridList-CYOcEmX9.js";import{P as fn}from"./ProbeOptionsDialog-bv58UQw7.js";import{D as jn,c as xn}from"./Table-DDHjB8la.js";import{F as yn,T as kn,L as wn}from"./Tag-Bizvcn28.js";import{FlagField as Nn}from"./FlagPicker-D2kKSyH6.js";import{S as Sn}from"./SearchSelect-ZK-gprFX.js";import{u as Pn}from"./outbounds-CStRcMI8.js";import{aa as An,z as Cn,ab as Mn,ac as Fn,A as Tn,ad as Ln,ae as Gn,m as Rn,O as Dn,r as On,v as En,l as qn,q as _n,af as In}from"./nodes-D39HfuKn.js";import{$ as Bn}from"./SearchList-B2h2qAe4.js";import{a as Hn,p as Qn}from"./probe-BRKajYpx.js";import{n as Un}from"./nav-BNyZNOjO.js";import{N as Kn,t as Vn,n as Jn}from"./NumberField-Cd9mdKJI.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./ItemText-CnmwoDur.js";import"./Checkbox-DiXDVgGl.js";import"./Select-B67-iUq2.js";import"./Virtualizer-DBBzjqSD.js";function Wn({label:n,items:a,selected:s,onSelect:t,loading:l,empty:d,children:c}){const u=r();return e.jsx(bn,{className:"rp-cardview","aria-label":n,layout:"grid",items:a,dependencies:[c],selectionMode:"single",selectionBehavior:"replace",disallowEmptySelection:!0,selectedKeys:s?[s]:[],onSelectionChange:e=>{if("all"===e)return;const n=[...e][0];null!=n&&t(String(n))},renderEmptyState:()=>l?e.jsx(o,{shape:"cards",count:3,height:224,grid:!0}):e.jsx(i,{children:d??u("ui.empty")}),children:c})}function zn({id:n,title:r,titleFull:o,meta:i,actions:t,children:l}){return e.jsxs(vn,{id:n,textValue:r,className:s("rp-cardview-card"),children:[e.jsxs("div",{className:"rp-cardview-head",children:[e.jsx(a,{className:"rp-cardview-title",text:o,children:r}),t&&e.jsx("span",{className:"rp-cardview-actions",children:t})]}),i&&e.jsx("div",{className:"rp-cardview-meta",children:i}),l]})}function $n(a,s){return a.split("{names}").map((a,r)=>e.jsxs(n.Fragment,{children:[r>0&&s,a]},r))}function Xn(a,s,r,o){const i=f(s,["",""]),t=a.slice(0,6).map((a,s)=>e.jsxs(n.Fragment,{children:[s>0&&i,e.jsx(le,{appearance:"link",layout:"inline",href:o.get(a.id)??Oe([a.id]),children:e.jsx(j,{name:a.name})})]},a.id));if(a.length<=6)return t;const l=e.jsx(le,{appearance:"link",layout:"inline",href:Oe(a.map(e=>e.id)),children:r("nodes.latency.more",{n:a.length-6})});return r("nodes.latency.andMore",{names:"{names}",more:"{more}"}).split(/(\{names\}|\{more\})/).map((a,s)=>e.jsx(n.Fragment,{children:"{names}"===a?t:"{more}"===a?l:a},s))}const Yn=n=>[{label:n("nodes.latency.lowest"),icon:e.jsx(h,{}),tint:"c2",value:"",caption:" "},{label:n("nodes.latency.highest"),icon:e.jsx(Te,{}),tint:"c4",value:"",caption:" "},{label:n("ui.unavailable"),icon:e.jsx(v,{}),tint:"c5",value:""}];function Zn(){const a=r(),s=l(),{nodes:f,by:j,setBy:x,view:y,hrefs:k}=function(){const e=t[l()],a=d().data?.resources,s=me(c(a,"nodes",{whileLoading:!0})),r=pe(c(a,"groups",{whileLoading:!1})),o=ge(c(a,"providers",{whileLoading:!0})),[i,p]=n.useState("group"),g=u(),h=m(s.data,g),v=m(r.data,g),b=m(o.data,g),f=n.useMemo(()=>Ae(h??[],v,i,e),[h,v,i,e]),j=n.useMemo(()=>new Map((h??[]).map(e=>[e.id,Ce(e,b?.providers??[],!0)])),[h,b]);return{nodes:{...s,data:h},by:i,setBy:p,view:f,hrefs:j}}();if(f.error&&!f.data)return e.jsx(p,{error:f.error,onRetry:f.refetch});const w=!f.data;if(f.data&&!f.data.length)return e.jsx(i,{children:a("ui.empty")});const N=Me(y),{measured:S,down:P}=Fe(y),A=S[0],C=S.at(-1),M=A&&C?[{label:a("nodes.latency.lowest"),icon:e.jsx(h,{}),tint:"c2",value:A.name,nodeName:!0,valueRole:"name",caption:g(A.latest,a)},{label:a("nodes.latency.highest"),icon:e.jsx(Te,{}),tint:"c4",value:C.name,nodeName:!0,valueRole:"name",caption:g(C.latest,a)},{label:a("ui.unavailable"),value:a("nodes.latency.count",{n:P}),icon:e.jsx(v,{}),tint:"c5",tone:P?"negative":voidLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,a as t,$ as i,j as a}from"./vendor-react-64fcanlc.js";import{g7 as s,em as n,ez as r,g8 as l,cC as o,cN as u,fi as c,en as d,cJ as m,g9 as p,ep as v,dv as h,cK as f,fN as b,dA as g,cI as y,ga as N,ex as S,cD as x,g6 as P,cE as D,gb as w,eP as E,er as V,dw as M,dz as F,cO as R,cP as I,cQ as C,cR as B,cS as O,bp as T,cT as j,d1 as L,cU as k,cW as $,gc as U,gd as A,cX as q,eN as G,cY as K,cZ as W,cV as z,I as H,da as Y,u as Z,cl as _,d4 as X,fk as J,ge as Q,cn as ee,b7 as te,d5 as ie,gf as ae,cf as se,dC as ne}from"./index-C-WQXF8v.js";const re=new RegExp("^.*\\(.*\\).*$"),le=["latn","arab","hanidec","deva","beng","fullwide"];class oe{constructor(e,t={}){this.locale=e,this.options=t}parse(e){return ce(this.locale,this.options,e).parse(e)}isValidPartialNumber(e,t,i){return ce(this.locale,this.options,e).isValidPartialNumber(e,t,i)}getNumberingSystem(e){return ce(this.locale,this.options,e).options.numberingSystem}}const ue=new Map;function ce(e,t,i){let a=de(e,t);if(!e.includes("-nu-")&&!a.isValidPartialNumber(i))for(let s of le)if(s!==a.options.numberingSystem){let a=de(e+(e.includes("-u-")?"-nu-":"-u-nu-")+s,t);if(a.isValidPartialNumber(i))return a}return a}function de(e,t){let i=e+(t?Object.entries(t).sort((e,t)=>e[0]<t[0]?-1:1).join():""),a=ue.get(i);return a||(a=new me(e,t),ue.set(i,a)),a}class me{constructor(e,t={}){this.locale=e,1!==t.roundingIncrement&&null!=t.roundingIncrement&&(null==t.maximumFractionDigits&&null==t.minimumFractionDigits?(t.maximumFractionDigits=0,t.minimumFractionDigits=0):null==t.maximumFractionDigits?t.maximumFractionDigits=t.minimumFractionDigits:null==t.minimumFractionDigits&&(t.minimumFractionDigits=t.maximumFractionDigits)),this.formatter=new Intl.NumberFormat(e,t),this.options=this.formatter.resolvedOptions(),this.symbols=function(e,t,i,a){let s=new Intl.NumberFormat(e,{...i,minimumSignificantDigits:1,maximumSignificantDigits:21,roundingIncrement:1,roundingPriority:"auto",roundingMode:"halfExpand",useGrouping:!0}),n=s.formatToParts(-10000.111),r=s.formatToParts(10000.111),l=ve.map(e=>s.formatToParts(e)),o=l.map((e,t)=>{let i=e.find(e=>"unit"===e.type);return i&&!e.some(e=>"integer"===e.type||"fraction"===e.type)?{unit:i.value,value:ve[t]}:null}).filter(e=>!!e),u=n.find(e=>"minusSign"===e.type)?.value??"-",c=r.find(e=>"plusSign"===e.type)?.value;c||"exceptZero"!==a?.signDisplay&&"always"!==a?.signDisplay||(c="+");let d=new Intl.NumberFormat(e,{...i,minimumFractionDigits:2,maximumFractionDigits:2}).formatToParts(.001),m=d.find(e=>"decimal"===e.type)?.value,p=n.find(e=>"group"===e.type)?.value,v=n.filter(e=>!pe.has(e.type)).map(e=>fe(e.value)),h=l.flatMap(e=>e.filter(e=>!pe.has(e.type)).map(e=>fe(e.value))),f=[...new Set([...v,...h])].sort((e,t)=>t.length-e.length),b=0===f.length?new RegExp("\\p{White_Space}|\\p{Cf}","gu"):new RegExp(`${f.join("|")}|\\p{White_Space}|\\p{Cf}`,"gu"),g=[...new Intl.NumberFormat(i.locale,{useGrouping:!1}).format(9876543210)].reverse(),y=new Map(g.map((e,t)=>[e,t])),N=new RegExp(`[${g.join("")}]`,"g");return{minusSign:u,plusSign:c,decimal:m,group:p,literals:b,numeral:N,numerals:g,index:e=>String(y.get(e)),noNumeralUnits:o}}(e,this.formatter,this.options,t),"percent"===this.options.style&&((this.options.minimumFractionDigits??0)>18||(this.options.maximumFractionDigits??0)>18)&&console.warn("NumberParser cannot handle percentages with greater than 18 decimal places, please reduce the number in your options.")}parse(e){let t=this.formatter.resolvedOptions().useGrouping,i=this.sanitize(e);if(!t&&this.symbols.group&&i.includes(this.symbols.group))return NaN;if(this.symbols.group&&(i=i.replaceAll(this.symbols.group,"")),this.symbols.decimal&&(i=i.replace(this.symbols.decimal,".")),this.symbols.minusSign&&(i=i.replace(this.symbols.minusSign,"-")),i=i.replace(this.symbols.numeral,this.symbols.index),"percent"===this.options.style){let e=i.indexOf("-");i=i.replace("-",""),i=i.replace("+","");let t=i.indexOf(".");-1===t&&(t=i.length),i=i.replace(".",""),i=t-2==0?`0.${i}`:t-2==-1?`0.0${i}`:t-2==-2?"0.00":`${i.slice(0,t-2)}.${i.slice(t-2)}`,e>-1&&(i=`-${i}`)}let a=i?+i:NaN;if(isNaN(a))return NaN;if("percent"===this.options.style){let e={...this.options,style:"decimal",minimumFractionDigits:Math.min((this.options.minimumFractionDigits??0)+2,20),maximumFractionDigits:Math.min((this.options.maximumFractionDigits??0)+2,20)};return new oe(this.locale,e).parse(new s(this.locale,e).format(a))}return"accounting"===this.options.currencySign&&re.test(e)&&(a*=-1),a}sanitize(e){let t=this.formatter.resolvedOptions().useGrouping;return this.symbols.noNumeralUnits.length>0&&this.symbols.noNumeralUnits.find(t=>t.unit===e)?this.symbols.noNumeralUnits.find(t=>t.unit===e).value.toString():(e=e.replace(this.symbols.literals,""),this.symbols.minusSign&&(e=e.replace("-",this.symbols.minusSign)),"arab"===this.options.numberingSystem&&(this.symbols.decimal&&(e=he(e,",",this.symbols.decimal),e=he(e,String.fromCharCode(1548),this.symbols.decimal)),this.symbols.group&&t&&(eLine truncated
|
||||
import{r as e,a as t,$ as i,j as a}from"./vendor-react-64fcanlc.js";import{g7 as s,em as n,ez as r,g8 as l,cC as o,cN as u,fi as c,en as d,cJ as m,g9 as p,ep as v,dv as h,cK as f,fN as b,dA as g,cI as y,ga as N,ex as S,cD as x,g6 as P,cE as D,gb as w,eP as E,er as V,dw as M,dz as F,cO as R,cP as I,cQ as C,cR as B,cS as O,bp as T,cT as j,d1 as L,cU as k,cW as $,gc as U,gd as A,cX as q,eN as G,cY as K,cZ as W,cV as z,I as H,da as Y,u as Z,cl as _,d4 as X,fk as J,ge as Q,cn as ee,b7 as te,d5 as ie,gf as ae,cf as se,dC as ne}from"./index-XeGFdFb3.js";const re=new RegExp("^.*\\(.*\\).*$"),le=["latn","arab","hanidec","deva","beng","fullwide"];class oe{constructor(e,t={}){this.locale=e,this.options=t}parse(e){return ce(this.locale,this.options,e).parse(e)}isValidPartialNumber(e,t,i){return ce(this.locale,this.options,e).isValidPartialNumber(e,t,i)}getNumberingSystem(e){return ce(this.locale,this.options,e).options.numberingSystem}}const ue=new Map;function ce(e,t,i){let a=de(e,t);if(!e.includes("-nu-")&&!a.isValidPartialNumber(i))for(let s of le)if(s!==a.options.numberingSystem){let a=de(e+(e.includes("-u-")?"-nu-":"-u-nu-")+s,t);if(a.isValidPartialNumber(i))return a}return a}function de(e,t){let i=e+(t?Object.entries(t).sort((e,t)=>e[0]<t[0]?-1:1).join():""),a=ue.get(i);return a||(a=new me(e,t),ue.set(i,a)),a}class me{constructor(e,t={}){this.locale=e,1!==t.roundingIncrement&&null!=t.roundingIncrement&&(null==t.maximumFractionDigits&&null==t.minimumFractionDigits?(t.maximumFractionDigits=0,t.minimumFractionDigits=0):null==t.maximumFractionDigits?t.maximumFractionDigits=t.minimumFractionDigits:null==t.minimumFractionDigits&&(t.minimumFractionDigits=t.maximumFractionDigits)),this.formatter=new Intl.NumberFormat(e,t),this.options=this.formatter.resolvedOptions(),this.symbols=function(e,t,i,a){let s=new Intl.NumberFormat(e,{...i,minimumSignificantDigits:1,maximumSignificantDigits:21,roundingIncrement:1,roundingPriority:"auto",roundingMode:"halfExpand",useGrouping:!0}),n=s.formatToParts(-10000.111),r=s.formatToParts(10000.111),l=ve.map(e=>s.formatToParts(e)),o=l.map((e,t)=>{let i=e.find(e=>"unit"===e.type);return i&&!e.some(e=>"integer"===e.type||"fraction"===e.type)?{unit:i.value,value:ve[t]}:null}).filter(e=>!!e),u=n.find(e=>"minusSign"===e.type)?.value??"-",c=r.find(e=>"plusSign"===e.type)?.value;c||"exceptZero"!==a?.signDisplay&&"always"!==a?.signDisplay||(c="+");let d=new Intl.NumberFormat(e,{...i,minimumFractionDigits:2,maximumFractionDigits:2}).formatToParts(.001),m=d.find(e=>"decimal"===e.type)?.value,p=n.find(e=>"group"===e.type)?.value,v=n.filter(e=>!pe.has(e.type)).map(e=>fe(e.value)),h=l.flatMap(e=>e.filter(e=>!pe.has(e.type)).map(e=>fe(e.value))),f=[...new Set([...v,...h])].sort((e,t)=>t.length-e.length),b=0===f.length?new RegExp("\\p{White_Space}|\\p{Cf}","gu"):new RegExp(`${f.join("|")}|\\p{White_Space}|\\p{Cf}`,"gu"),g=[...new Intl.NumberFormat(i.locale,{useGrouping:!1}).format(9876543210)].reverse(),y=new Map(g.map((e,t)=>[e,t])),N=new RegExp(`[${g.join("")}]`,"g");return{minusSign:u,plusSign:c,decimal:m,group:p,literals:b,numeral:N,numerals:g,index:e=>String(y.get(e)),noNumeralUnits:o}}(e,this.formatter,this.options,t),"percent"===this.options.style&&((this.options.minimumFractionDigits??0)>18||(this.options.maximumFractionDigits??0)>18)&&console.warn("NumberParser cannot handle percentages with greater than 18 decimal places, please reduce the number in your options.")}parse(e){let t=this.formatter.resolvedOptions().useGrouping,i=this.sanitize(e);if(!t&&this.symbols.group&&i.includes(this.symbols.group))return NaN;if(this.symbols.group&&(i=i.replaceAll(this.symbols.group,"")),this.symbols.decimal&&(i=i.replace(this.symbols.decimal,".")),this.symbols.minusSign&&(i=i.replace(this.symbols.minusSign,"-")),i=i.replace(this.symbols.numeral,this.symbols.index),"percent"===this.options.style){let e=i.indexOf("-");i=i.replace("-",""),i=i.replace("+","");let t=i.indexOf(".");-1===t&&(t=i.length),i=i.replace(".",""),i=t-2==0?`0.${i}`:t-2==-1?`0.0${i}`:t-2==-2?"0.00":`${i.slice(0,t-2)}.${i.slice(t-2)}`,e>-1&&(i=`-${i}`)}let a=i?+i:NaN;if(isNaN(a))return NaN;if("percent"===this.options.style){let e={...this.options,style:"decimal",minimumFractionDigits:Math.min((this.options.minimumFractionDigits??0)+2,20),maximumFractionDigits:Math.min((this.options.maximumFractionDigits??0)+2,20)};return new oe(this.locale,e).parse(new s(this.locale,e).format(a))}return"accounting"===this.options.currencySign&&re.test(e)&&(a*=-1),a}sanitize(e){let t=this.formatter.resolvedOptions().useGrouping;return this.symbols.noNumeralUnits.length>0&&this.symbols.noNumeralUnits.find(t=>t.unit===e)?this.symbols.noNumeralUnits.find(t=>t.unit===e).value.toString():(e=e.replace(this.symbols.literals,""),this.symbols.minusSign&&(e=e.replace("-",this.symbols.minusSign)),"arab"===this.options.numberingSystem&&(this.symbols.decimal&&(e=he(e,",",this.symbols.decimal),e=he(e,String.fromCharCode(1548),this.symbols.decimal)),this.symbols.group&&t&&(eLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
import{j as r}from"./vendor-react-64fcanlc.js";import"./index-XeGFdFb3.js";import{L as e}from"./Tag-BaZZD5o2.js";function o({label:o,href:s}){return s?r.jsx(e,{href:s,children:o}):o}export{o as O};
|
||||
@@ -1 +0,0 @@
|
||||
import{j as r}from"./vendor-react-64fcanlc.js";import"./index-C-WQXF8v.js";import{L as e}from"./Tag-Bizvcn28.js";function o({label:o,href:s}){return s?r.jsx(e,{href:s,children:o}):o}export{o as O};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{ah as a,Q as s,aO as r,aZ as o,a_ as i,b0 as n,a1 as l,a0 as c,a5 as d,aX as p,X as u,h as v,Y as m,u as h,l as f,al as g,q as x,am as b,r as j,ao as y,an as w,x as k,bT as _,p as N,E as H,T as S,C as L,ax as R,bU as A,af as C,av as I,aD as V,S as D,P as E,B as P,bV as W}from"./index-C-WQXF8v.js";import{d as B,e as F}from"./files-Dt8K7QfP.js";import{r as q,e as M,u as O,b as T,D as K,R as U}from"./activity-BQ91A1_2.js";import{e as J,K as X,A as z}from"./logs-B-rowQjz.js";import{L as Q}from"./AppearanceControls-CRuy5orf.js";import{D as Y,t as Z}from"./Table-DDHjB8la.js";import{D as G}from"./DaeCode-DEjXqvav.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-D39HfuKn.js";import"./ItemText-CnmwoDur.js";import"./Select-B67-iUq2.js";import"./Checkbox-DiXDVgGl.js";import"./Virtualizer-DBBzjqSD.js";import"./daeTokens-BVtuNnWZ.js";const $={connections:v("connections",{tab:"list"}),flows:v("flows",{tab:"records"}),routing_trace:v("rules",{tab:"trace"}),dns_query:v("dns",{tab:"query"}),dns_cache:v("dns",{tab:"cache"}),dns_log:v("dns",{tab:"log"}),events:v("events"),probes:v("nodes",{tab:"latency"}),traffic_history:v("activity"),memory_history:v("activity"),runtime_outbounds:v("activity"),logs:v("logs"),providers:v("nodes"),rules:v("rules",{tab:"list"}),config:v("config"),config_validate:v("config",{tab:"source",panel:"diagnostics"}),runtime_settings:v("settings",{card:"runtime"}),geodata:v("settings",{card:"geodata"})},ee={ebpf:"ov.v.ebpf",userspace:"ov.v.userspace",mock:"ov.v.mock",active:"ov.v.active",degraded:"ov.v.degraded",detached:"ov.v.detached",failed:"ov.v.failed",disabled:"ov.v.disabled",full:"ov.v.full",partial:"ov.v.partial",none:"ov.v.none",real:"ov.v.real",loaded:"ov.v.loaded",not_loaded:"ov.v.notLoaded",attached:"ov.v.attached",partially_attached:"ov.v.partiallyAttached",published:"ov.v.published",not_published:"ov.v.notPublished",healthy:"ov.v.healthy",ready:"ov.v.ready",error:"ov.v.error",unknown:"ov.v.unknown",ingress:"ov.v.ingress",egress:"ov.v.egress"};function te(e,t){return ee[e]?t(ee[e]):e}function ae(e,t,a,s,r=!1,o=[]){const i=e.ebpf,n=i?.maps?.conn_state,l=(e,t)=>{const s=function(e,t,a){return"degraded"===e?{title:a("ov.v.degraded"),text:a(t?"ov.degradedHelp.runtime":"ov.degradedHelp.datapath")}:"unknown"===e?{title:a("ov.v.unknown"),text:a("ov.unknownHelp")}:void 0}(t,r,a);return s?{label:a(e),value:te(t,a),help:s}:[a(e),te(t,a)]},c=i?.maps?.state??"unknown",d=i&&function(e,t,a,s){if("unknown"!==e||!t.length)return;const r=new Intl.ListFormat(s,{type:"conjunction"}).format(t);return{title:a("ov.v.notVerified"),text:a("ov.notVerifiedHelp",{hooks:r})}}(i.hooks,o,a,s);return[l("ov.f.kind",e.kind),l("ov.f.state",e.state),..."partial"===e.visibility&&i?[]:[l("ov.f.visibility",e.visibility)],...i?[l("ov.f.backend",i.backend),l("ov.f.programs",i.programs),d?{label:a("ov.f.hooks"),value:a("ov.v.notVerified"),help:d}:l("ov.f.hooks",i.hooks),l("ov.f.routing",i.routing.state),l("ov.f.health",i.health),..."partial"===c&&n&&!n.occupancy_known?[[a("ov.f.maps"),a("ov.mapCapacity",{capacity:m(n.capacity,s)})]]:[l("ov.f.maps",c),[a("ov.f.connState"),n?.occupancy_known&&null!==n.occupancy?a("ui.fraction",{part:m(n.occupancy,s),whole:m(n.capacity,s)}):n?a("ov.occupancyUnknown",{capacity:m(n.capacity,s)}):t]]]:[]]}const se={service:"ov.v.cgroupService",shared:"ov.v.cgroupShared"},re={service:"ov.cgroupHelp.service",shared:"ov.cgroupHelp.shared"};function oe(e,t,s,r=[],o=!1){const i=e.cgroup?.scope,n=e=>{const t=a(e??null);return null===t?"—":m(t,s)},l=[["ov.f.rss",c(e.process?.rss_bytes??null,s)],["ov.f.cgroupCurrent",c(e.cgroup?.current_bytes??null,s)],["ov.f.cgroupLimit",o&&null===e.cgroup?.limit_bytes?t("ov.noLimit"):c(e.cgroup?.limit_bytes??null,s)],["ov.f.cgroupScope",i&&"unknown"!==i?t(se[i]):"—"],["ov.f.oomHigh",n(e.cgroup?.events?.high)],["ov.f.oom",n(e.cgroup?.events?.oom)],["ov.f.oomKill",n(e.cgroup?.events?.oom_kill)],["ov.f.ebpfBytes",c(e.kernel?.ebpf_bytes??null,s)]],d=[...r,..."unknown"===i?["ov.f.cgroupScope"]:[],...e.kernel?[]:["ov.f.ebpfBytes"]];return l.filter(([e])=>!d.includes(e)).map(([e,a])=>"ov.f.cgroupScope"===e&&i&&"unknown"!==i?{label:t(e),value:a,help:{title:t(e),text:t("ui.valuePair",{label:a,value:t(re[i])})}}:[t(e),a])}const ie={status:"overview-status",limits:"overview-limits",datapath:"overview-datapath"};function ne(t=""){const v=h(),N=f(),H=g[N],S=x(),L=S.data?.resources,R=b(j(L,"runtime",{whileLoading:!1})),A=y(j(L,"datapath",{whileLoading:!1})),C=w(j(L,"runtime_memory",{whileLoading:!1})),I=k(),V=_(j(L,"runtime_settings",{whileLoading:!1})),D=O(R.data,S.data,R.refetch),[E,P]=e.useState(!1),W=e.useMemo(()=>({capabilities:S.data,runtime:R.data,version:I.data,memory:C.data,datapath:A.data}),[S.data,R.data,I.data,C.data,A.data]),K=e.useMemo(()=>S.data?T(S.data,I.data,v,N,V.data?.recording):[],[S.data,I.data,v,N,V.data?.recording]),U=K.length>0,X=!!A.data,z=S.loading||R.loading||I.loading||C.loading||A.loadiLine truncated
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{ah as a,Q as s,aO as r,aZ as o,a_ as i,b0 as n,a1 as l,a0 as c,a5 as d,aX as p,X as u,h as v,Y as m,u as h,l as f,al as g,q as x,am as b,r as j,ao as y,an as w,x as k,bT as _,p as N,E as H,T as S,C as L,ax as R,bU as A,af as C,av as I,aD as V,S as D,P as E,B as P,bV as W}from"./index-XeGFdFb3.js";import{d as B,e as F}from"./files-Dt8K7QfP.js";import{r as q,e as M,u as O,b as T,D as K,R as U}from"./activity-7OeQMmIs.js";import{e as J,K as X,A as z}from"./logs-DNePHVHd.js";import{L as Q}from"./AppearanceControls-Q-jHRGz9.js";import{D as Y,t as Z}from"./Table-DqqJleJD.js";import{D as G}from"./DaeCode-DEjXqvav.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-Bm1vmvln.js";import"./ItemText-Bvif-kkw.js";import"./Select-OqnbuzuK.js";import"./Checkbox-BewExwKL.js";import"./Virtualizer-FvdVRagH.js";import"./daeTokens-BVtuNnWZ.js";const $={connections:v("connections",{tab:"list"}),flows:v("flows",{tab:"records"}),routing_trace:v("rules",{tab:"trace"}),dns_query:v("dns",{tab:"query"}),dns_cache:v("dns",{tab:"cache"}),dns_log:v("dns",{tab:"log"}),events:v("events"),probes:v("nodes",{tab:"latency"}),traffic_history:v("activity"),memory_history:v("activity"),runtime_outbounds:v("activity"),logs:v("logs"),providers:v("nodes"),rules:v("rules",{tab:"list"}),config:v("config"),config_validate:v("config",{tab:"source",panel:"diagnostics"}),runtime_settings:v("settings",{card:"runtime"}),geodata:v("settings",{card:"geodata"})},ee={ebpf:"ov.v.ebpf",userspace:"ov.v.userspace",mock:"ov.v.mock",active:"ov.v.active",degraded:"ov.v.degraded",detached:"ov.v.detached",failed:"ov.v.failed",disabled:"ov.v.disabled",full:"ov.v.full",partial:"ov.v.partial",none:"ov.v.none",real:"ov.v.real",loaded:"ov.v.loaded",not_loaded:"ov.v.notLoaded",attached:"ov.v.attached",partially_attached:"ov.v.partiallyAttached",published:"ov.v.published",not_published:"ov.v.notPublished",healthy:"ov.v.healthy",ready:"ov.v.ready",error:"ov.v.error",unknown:"ov.v.unknown",ingress:"ov.v.ingress",egress:"ov.v.egress"};function te(e,t){return ee[e]?t(ee[e]):e}function ae(e,t,a,s,r=!1,o=[]){const i=e.ebpf,n=i?.maps?.conn_state,l=(e,t)=>{const s=function(e,t,a){return"degraded"===e?{title:a("ov.v.degraded"),text:a(t?"ov.degradedHelp.runtime":"ov.degradedHelp.datapath")}:"unknown"===e?{title:a("ov.v.unknown"),text:a("ov.unknownHelp")}:void 0}(t,r,a);return s?{label:a(e),value:te(t,a),help:s}:[a(e),te(t,a)]},c=i?.maps?.state??"unknown",d=i&&function(e,t,a,s){if("unknown"!==e||!t.length)return;const r=new Intl.ListFormat(s,{type:"conjunction"}).format(t);return{title:a("ov.v.notVerified"),text:a("ov.notVerifiedHelp",{hooks:r})}}(i.hooks,o,a,s);return[l("ov.f.kind",e.kind),l("ov.f.state",e.state),..."partial"===e.visibility&&i?[]:[l("ov.f.visibility",e.visibility)],...i?[l("ov.f.backend",i.backend),l("ov.f.programs",i.programs),d?{label:a("ov.f.hooks"),value:a("ov.v.notVerified"),help:d}:l("ov.f.hooks",i.hooks),l("ov.f.routing",i.routing.state),l("ov.f.health",i.health),..."partial"===c&&n&&!n.occupancy_known?[[a("ov.f.maps"),a("ov.mapCapacity",{capacity:m(n.capacity,s)})]]:[l("ov.f.maps",c),[a("ov.f.connState"),n?.occupancy_known&&null!==n.occupancy?a("ui.fraction",{part:m(n.occupancy,s),whole:m(n.capacity,s)}):n?a("ov.occupancyUnknown",{capacity:m(n.capacity,s)}):t]]]:[]]}const se={service:"ov.v.cgroupService",shared:"ov.v.cgroupShared"},re={service:"ov.cgroupHelp.service",shared:"ov.cgroupHelp.shared"};function oe(e,t,s,r=[],o=!1){const i=e.cgroup?.scope,n=e=>{const t=a(e??null);return null===t?"—":m(t,s)},l=[["ov.f.rss",c(e.process?.rss_bytes??null,s)],["ov.f.cgroupCurrent",c(e.cgroup?.current_bytes??null,s)],["ov.f.cgroupLimit",o&&null===e.cgroup?.limit_bytes?t("ov.noLimit"):c(e.cgroup?.limit_bytes??null,s)],["ov.f.cgroupScope",i&&"unknown"!==i?t(se[i]):"—"],["ov.f.oomHigh",n(e.cgroup?.events?.high)],["ov.f.oom",n(e.cgroup?.events?.oom)],["ov.f.oomKill",n(e.cgroup?.events?.oom_kill)],["ov.f.ebpfBytes",c(e.kernel?.ebpf_bytes??null,s)]],d=[...r,..."unknown"===i?["ov.f.cgroupScope"]:[],...e.kernel?[]:["ov.f.ebpfBytes"]];return l.filter(([e])=>!d.includes(e)).map(([e,a])=>"ov.f.cgroupScope"===e&&i&&"unknown"!==i?{label:t(e),value:a,help:{title:t(e),text:t("ui.valuePair",{label:a,value:t(re[i])})}}:[t(e),a])}const ie={status:"overview-status",limits:"overview-limits",datapath:"overview-datapath"};function ne(t=""){const v=h(),N=f(),H=g[N],S=x(),L=S.data?.resources,R=b(j(L,"runtime",{whileLoading:!1})),A=y(j(L,"datapath",{whileLoading:!1})),C=w(j(L,"runtime_memory",{whileLoading:!1})),I=k(),V=_(j(L,"runtime_settings",{whileLoading:!1})),D=O(R.data,S.data,R.refetch),[E,P]=e.useState(!1),W=e.useMemo(()=>({capabilities:S.data,runtime:R.data,version:I.data,memory:C.data,datapath:A.data}),[S.data,R.data,I.data,C.data,A.data]),K=e.useMemo(()=>S.data?T(S.data,I.data,v,N,V.data?.recording):[],[S.data,I.data,v,N,V.data?.recording]),U=K.length>0,X=!!A.data,z=S.loading||R.loading||I.loading||C.loading||A.loadiLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{P as n}from"./ProbeOptionsDialog-bv58UQw7.js";import{C as i,a as s,b as r,E as l}from"./ConditionRow-EvG4rKpT.js";import{A as o}from"./AddCircle-Bsrf2UoO.js";import{T as a,R as d,j as c,s as u,u as p,w as m,l as h,k as g,U as f,V as b,S as y,O as v,Q as x,r as j,P as k}from"./nodes-D39HfuKn.js";import{bp as w,u as S,h as N,I as C,N as M,w as _,aV as I,cj as E,U as D,G as O,aW as L,bQ as P,ck as R,b1 as z,aU as T,Y as $,al as q,l as K,b7 as A,i as F,af as H,bG as V,ch as G,cl as U,cm as J,cn as B,bw as Q,co as Y,cp as W,B as X,aE as Z,bk as ee,cq as te,b5 as ne,cr as ie,cs as se,aA as re,bF as le,c1 as oe,a9 as ae,ct as de,cu as ce,q as ue,r as pe,cv as me,cw as he,aR as ge,t as fe,A as be,aN as ye,aq as ve,H as xe,az as je,c2 as ke,v as we,cx as Se,E as Ne,cg as Ce,aG as Me,cy as _e,C as Ie,p as Ee,T as De,cz as Oe,ax as Le,av as Pe,b as Re,a as ze}from"./index-C-WQXF8v.js";import{T as Te,a as $e,L as qe}from"./Tag-Bizvcn28.js";import{D as Ke}from"./DaeCode-DEjXqvav.js";import{N as Ae,p as Fe,L as He,D as Ve,K as Ge,h as Ue,g as Je,u as Be,c as Qe,v as Ye,w as We,m as Xe,x as Ze,S as et,n as tt}from"./logs-B-rowQjz.js";import{T as nt}from"./Toolbar-Yd2KR-zd.js";import{C as it,L as st}from"./AppearanceControls-CRuy5orf.js";import{$ as rt,S as lt}from"./SearchList-B2h2qAe4.js";import{i as ot,v as at,w as dt,x as ct,y as ut,z as pt,A as mt,E as ht,G as gt,H as ft,I as bt,J as yt,K as vt,M as xt,N as jt,O as kt,P as wt,Q as St,T as Nt,V as Ct,X as Mt,Y as _t,Z as It}from"./activity-BQ91A1_2.js";import{$ as Et,a as Dt}from"./GridList-CYOcEmX9.js";import{$ as Ot,a as Lt,b as Pt,c as Rt,d as zt}from"./Virtualizer-DBBzjqSD.js";import{$ as Tt,a as $t}from"./Select-B67-iUq2.js";import{a as qt,b as Kt}from"./ItemText-CnmwoDur.js";import{S as At}from"./SearchSelect-ZK-gprFX.js";import{N as Ft,t as Ht,n as Vt}from"./NumberField-Cd9mdKJI.js";import{p as Gt}from"./probe-BRKajYpx.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Checkbox-DiXDVgGl.js";import"./daeTokens-BVtuNnWZ.js";const Ut={minItemSize:new Lt(200,200),maxItemSize:new Lt(1/0,1/0),preserveAspectRatio:!1,minSpace:new Lt(18,18),maxSpace:1/0,maxColumns:1/0,dropIndicatorThickness:2,loaderHeight:48};class Jt extends Ot{shouldInvalidateLayoutOptions(e,t){return e.maxColumns!==t.maxColumns||e.dropIndicatorThickness!==t.dropIndicatorThickness||e.preserveAspectRatio!==t.preserveAspectRatio||!(e.minItemSize||Ut.minItemSize).equals(t.minItemSize||Ut.minItemSize)||!(e.maxItemSize||Ut.maxItemSize).equals(t.maxItemSize||Ut.maxItemSize)||!(e.minSpace||Ut.minSpace).equals(t.minSpace||Ut.minSpace)||e.maxHorizontalSpace!==t.maxHorizontalSpace||e.loaderHeight!==t.loaderHeight||e.direction!==t.direction}update(e){let{minItemSize:t=Ut.minItemSize,maxItemSize:n=Ut.maxItemSize,preserveAspectRatio:i=Ut.preserveAspectRatio,minSpace:s=Ut.minSpace,maxHorizontalSpace:r=Ut.maxSpace,maxColumns:l=Ut.maxColumns,dropIndicatorThickness:o=Ut.dropIndicatorThickness,loaderHeight:a=Ut.loaderHeight,direction:d="ltr"}=e.layoutOptions||{};this.dropIndicatorThickness=o,this.direction=d;let c=this.virtualizer.size.width,u=Math.min(n.width,c),p=Number.isFinite(n.height)?n.height:Math.floor(t.height/t.width*u),m=Math.floor(c/(t.width+s.width)),h=Math.max(1,Math.min(l,m));this.numColumns=h;let g=c-s.width*Math.max(0,h),f=Math.floor(g/h);f=Math.max(t.width,Math.min(u,f));let b=(f-t.width)/Math.max(1,u-t.width),y=t.height+Math.floor((p-t.height)*b);y=Math.max(t.height,Math.min(p,y));let v=Math.min(Math.max(r,s.width),Math.floor((c-h*f)/(h+1)));this.gap=new Lt(v,s.height),this.margin=Math.floor((c-h*f-v*(h+1))/2);let x=this.virtualizer.collection,j=x.size,k=x.getLastKey();for(let E=0;E<2&&null!=k;E++){let e=x.getItem(k);if("skeleton"===e?.type){j++;break}k=x.getKeyBefore(k)}let w=Math.ceil(j/h),S=x[Symbol.iterator](),N=w>0?s.height:0,C=new Map,M=null,_=0;for(let E=0;E<w;E++){let t=0,n=[];for(let s=0;s<h;s++){let r=M||S.next().value;if(!r)break;if("loader"===r.type)continue;"skeleton"===r.type&&(M=r);let l=M?`${M.key}-${_++}`:r.key,o=this.layoutInfos.get(l),a=r;M&&(a=o&&o.content.key===l?o.content:{...M,key:l});let d=v+s*(f+v)+this.margin,c=y,u=!i;o&&u&&(c=o.rect.height,u=e.layoutOptionsChanged||e.sizeChanged||o.estimatedSize||o.content!==a);let p=new Rt(d,N,f,c),m=new Pt(r.type,l,p);m.estimatedSize=u,m.allowOverflow=!0,m.content=a,C.set(l,m),n.push(m),t=Math.max(t,m.rect.height)}for(let e of n)e.rect.height=t;N+=t+s.height,M&&E===w-1&&N<this.virtualizer.size.height&&w++}let I=x.getItem(x.getLastKey());if("loader"===I?.type){(_>0||!I.props.isLoading)&&(a=0);let e=new Rt(v,N,c-2*v,a),t=new Pt("loader",I.key,e);C.set(I.key,t),N=t.rect.maxY}this.layoutInfos=C,this.contentSize=new Lt(this.virtualizer.size.width,N)}getLayoutInfo(e){return this.layoutInfos.get(e)||null}getContentSize(){return this.contentSize}getVisibleLayoutInfos(e){let t=[];for(let n of this.layoutInfos.values())(n.rect.intersects(e)||this.virtualizer.isPersistedKey(n.key)||"loadeLine truncated
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{P as n}from"./ProbeOptionsDialog-fRxfzbxN.js";import{C as i,a as s,b as r,E as l}from"./ConditionRow-mKWPcuZs.js";import{A as o}from"./AddCircle-7x8u9Pw1.js";import{T as a,R as d,j as c,s as u,u as p,w as m,l as h,k as g,U as f,V as b,S as y,O as v,Q as x,r as j,P as k}from"./nodes-Bm1vmvln.js";import{bp as w,u as S,h as N,I as C,N as M,w as _,aV as I,cj as E,U as D,G as O,aW as L,bQ as P,ck as R,b1 as z,aU as T,Y as $,al as q,l as K,b7 as A,i as F,af as H,bG as V,ch as G,cl as U,cm as J,cn as B,bw as Q,co as Y,cp as W,B as X,aE as Z,bk as ee,cq as te,b5 as ne,cr as ie,cs as se,aA as re,bF as le,c1 as oe,a9 as ae,ct as de,cu as ce,q as ue,r as pe,cv as me,cw as he,aR as ge,t as fe,A as be,aN as ye,aq as ve,H as xe,az as je,c2 as ke,v as we,cx as Se,E as Ne,cg as Ce,aG as Me,cy as _e,C as Ie,p as Ee,T as De,cz as Oe,ax as Le,av as Pe,b as Re,a as ze}from"./index-XeGFdFb3.js";import{T as Te,a as $e,L as qe}from"./Tag-BaZZD5o2.js";import{D as Ke}from"./DaeCode-DEjXqvav.js";import{N as Ae,p as Fe,L as He,D as Ve,K as Ge,h as Ue,g as Je,u as Be,c as Qe,v as Ye,w as We,m as Xe,x as Ze,S as et,n as tt}from"./logs-DNePHVHd.js";import{T as nt}from"./Toolbar-CFyWgMbW.js";import{C as it,L as st}from"./AppearanceControls-Q-jHRGz9.js";import{$ as rt,S as lt}from"./SearchList-DWooTdFX.js";import{i as ot,v as at,w as dt,x as ct,y as ut,z as pt,A as mt,E as ht,G as gt,H as ft,I as bt,J as yt,K as vt,M as xt,N as jt,O as kt,P as wt,Q as St,T as Nt,V as Ct,X as Mt,Y as _t,Z as It}from"./activity-7OeQMmIs.js";import{$ as Et,a as Dt}from"./GridList-wfRSpULl.js";import{$ as Ot,a as Lt,b as Pt,c as Rt,d as zt}from"./Virtualizer-FvdVRagH.js";import{$ as Tt,a as $t}from"./Select-OqnbuzuK.js";import{a as qt,b as Kt}from"./ItemText-Bvif-kkw.js";import{S as At}from"./SearchSelect-BVGce3l_.js";import{N as Ft,t as Ht,n as Vt}from"./NumberField-Bo9iJ94r.js";import{p as Gt}from"./probe-Bp5QvROd.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Checkbox-BewExwKL.js";import"./daeTokens-BVtuNnWZ.js";const Ut={minItemSize:new Lt(200,200),maxItemSize:new Lt(1/0,1/0),preserveAspectRatio:!1,minSpace:new Lt(18,18),maxSpace:1/0,maxColumns:1/0,dropIndicatorThickness:2,loaderHeight:48};class Jt extends Ot{shouldInvalidateLayoutOptions(e,t){return e.maxColumns!==t.maxColumns||e.dropIndicatorThickness!==t.dropIndicatorThickness||e.preserveAspectRatio!==t.preserveAspectRatio||!(e.minItemSize||Ut.minItemSize).equals(t.minItemSize||Ut.minItemSize)||!(e.maxItemSize||Ut.maxItemSize).equals(t.maxItemSize||Ut.maxItemSize)||!(e.minSpace||Ut.minSpace).equals(t.minSpace||Ut.minSpace)||e.maxHorizontalSpace!==t.maxHorizontalSpace||e.loaderHeight!==t.loaderHeight||e.direction!==t.direction}update(e){let{minItemSize:t=Ut.minItemSize,maxItemSize:n=Ut.maxItemSize,preserveAspectRatio:i=Ut.preserveAspectRatio,minSpace:s=Ut.minSpace,maxHorizontalSpace:r=Ut.maxSpace,maxColumns:l=Ut.maxColumns,dropIndicatorThickness:o=Ut.dropIndicatorThickness,loaderHeight:a=Ut.loaderHeight,direction:d="ltr"}=e.layoutOptions||{};this.dropIndicatorThickness=o,this.direction=d;let c=this.virtualizer.size.width,u=Math.min(n.width,c),p=Number.isFinite(n.height)?n.height:Math.floor(t.height/t.width*u),m=Math.floor(c/(t.width+s.width)),h=Math.max(1,Math.min(l,m));this.numColumns=h;let g=c-s.width*Math.max(0,h),f=Math.floor(g/h);f=Math.max(t.width,Math.min(u,f));let b=(f-t.width)/Math.max(1,u-t.width),y=t.height+Math.floor((p-t.height)*b);y=Math.max(t.height,Math.min(p,y));let v=Math.min(Math.max(r,s.width),Math.floor((c-h*f)/(h+1)));this.gap=new Lt(v,s.height),this.margin=Math.floor((c-h*f-v*(h+1))/2);let x=this.virtualizer.collection,j=x.size,k=x.getLastKey();for(let E=0;E<2&&null!=k;E++){let e=x.getItem(k);if("skeleton"===e?.type){j++;break}k=x.getKeyBefore(k)}let w=Math.ceil(j/h),S=x[Symbol.iterator](),N=w>0?s.height:0,C=new Map,M=null,_=0;for(let E=0;E<w;E++){let t=0,n=[];for(let s=0;s<h;s++){let r=M||S.next().value;if(!r)break;if("loader"===r.type)continue;"skeleton"===r.type&&(M=r);let l=M?`${M.key}-${_++}`:r.key,o=this.layoutInfos.get(l),a=r;M&&(a=o&&o.content.key===l?o.content:{...M,key:l});let d=v+s*(f+v)+this.margin,c=y,u=!i;o&&u&&(c=o.rect.height,u=e.layoutOptionsChanged||e.sizeChanged||o.estimatedSize||o.content!==a);let p=new Rt(d,N,f,c),m=new Pt(r.type,l,p);m.estimatedSize=u,m.allowOverflow=!0,m.content=a,C.set(l,m),n.push(m),t=Math.max(t,m.rect.height)}for(let e of n)e.rect.height=t;N+=t+s.height,M&&E===w-1&&N<this.virtualizer.size.height&&w++}let I=x.getItem(x.getLastKey());if("loader"===I?.type){(_>0||!I.props.isLoading)&&(a=0);let e=new Rt(v,N,c-2*v,a),t=new Pt("loader",I.key,e);C.set(I.key,t),N=t.rect.maxY}this.layoutInfos=C,this.contentSize=new Lt(this.virtualizer.size.width,N)}getLayoutInfo(e){return this.layoutInfos.get(e)||null}getContentSize(){return this.contentSize}getVisibleLayoutInfos(e){let t=[];for(let n of this.layoutInfos.values())(n.rect.intersects(e)||this.virtualizer.isPersistedKey(n.key)||"loadeLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as s}from"./vendor-react-64fcanlc.js";import{u as o,b5 as i,cr as c,ch as a,B as r}from"./index-C-WQXF8v.js";import{F as n,G as t,L as l}from"./logs-B-rowQjz.js";function d({model:d}){const h=o(),m=e.useId(),p=n(),[u,b]=e.useState(t(d.choices,p.choice)?.id??""),[j,x]=e.useState(p.cold),[f,g]=e.useState(p.leaves),v=d.busy||!d.choices.some(e=>e.id===u);return s.jsx(i,{narrow:!0,isOpen:!0,onOpenChange:e=>!e&&d.close(),title:h("probe.title"),description:d.name,footer:()=>s.jsxs(s.Fragment,{children:[s.jsx(r,{onPress:d.close,children:h("ui.cancel")}),s.jsx(r,{accent:!0,type:"submit",form:m,isDisabled:v,children:h("probe.submit")})]}),children:s.jsxs(c,{id:m,onSubmit:e=>{e.preventDefault(),v||d.submit({...p,choice:u,cold:j,leaves:f})},children:[s.jsx(l,{label:h("probe.kind"),value:u,onChange:b,items:d.choices.map(e=>({id:e.id,label:h(e.label)}))}),s.jsx(a,{isSelected:j,onChange:x,children:h("probe.cold")}),d.group&&s.jsx(a,{isSelected:f,onChange:g,children:h("probe.leaves")})]})})}export{d as P};
|
||||
import{r as e,j as s}from"./vendor-react-64fcanlc.js";import{u as o,b5 as i,cr as c,ch as a,B as r}from"./index-XeGFdFb3.js";import{F as n,G as t,L as l}from"./logs-DNePHVHd.js";function d({model:d}){const h=o(),m=e.useId(),p=n(),[u,b]=e.useState(t(d.choices,p.choice)?.id??""),[j,x]=e.useState(p.cold),[f,g]=e.useState(p.leaves),v=d.busy||!d.choices.some(e=>e.id===u);return s.jsx(i,{narrow:!0,isOpen:!0,onOpenChange:e=>!e&&d.close(),title:h("probe.title"),description:d.name,footer:()=>s.jsxs(s.Fragment,{children:[s.jsx(r,{onPress:d.close,children:h("ui.cancel")}),s.jsx(r,{accent:!0,type:"submit",form:m,isDisabled:v,children:h("probe.submit")})]}),children:s.jsxs(c,{id:m,onSubmit:e=>{e.preventDefault(),v||d.submit({...p,choice:u,cold:j,leaves:f})},children:[s.jsx(l,{label:h("probe.kind"),value:u,onChange:b,items:d.choices.map(e=>({id:e.id,label:h(e.label)}))}),s.jsx(a,{isSelected:j,onChange:x,children:h("probe.cold")}),d.group&&s.jsx(a,{isSelected:f,onChange:g,children:h("probe.leaves")})]})})}export{d as P};
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Trace-L5yFUuZV.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./index-C-WQXF8v.js","./index-BClYdby3.css","./flows-Bm5f0qGx.js","./logs-B-rowQjz.js","./Select-B67-iUq2.js","./ItemText-CnmwoDur.js","./AppearanceControls-CRuy5orf.js","./nodes-D39HfuKn.js","./probe-BRKajYpx.js","./useQuickRule-Dg2XjZII.js","./DaeCode-DEjXqvav.js","./daeTokens-BVtuNnWZ.js","./AddCircle-Bsrf2UoO.js","./SearchSelect-ZK-gprFX.js","./SearchList-B2h2qAe4.js","./Virtualizer-DBBzjqSD.js","./Toolbar-Yd2KR-zd.js","./rule-C502aJft.js","./activity-BQ91A1_2.js","./activity-Db7VRWAG.css","./NumberField-Cd9mdKJI.js","./Table-DDHjB8la.js","./Checkbox-DiXDVgGl.js","./Tabs-DVxF89X7.js","./ConditionRow-EvG4rKpT.js","./Coverage-BvvFzjoN.js","./labels-D8xxfRTQ.js","./nav-DN3M4Ewk.js","./recorder-BHyqDNp5.js","./geodataUpdate-b_z-ddHs.js","./LinkOut-Ff0bS5Fx.js","./impact-B8feJDtJ.css"])))=>i.map(i=>d[i]);
|
||||
import{cA as e,cB as n,cC as s,cD as i,cE as l,cF as a,cG as r,bp as t,cH as o,cI as d,cJ as u,cK as c,cL as p,cM as m,cN as f,cO as b,cP as h,cQ as g,cR as v,cS as x,cT as y,cU as k,cV as w,cW as j,cX as S,cY as _,cZ as C,c_ as N,c$ as D,d0 as M,d1 as P,d2 as R,d3 as I,aD as H,d4 as q,d5 as O,aA as E,b7 as L,c2 as A,c4 as F,al as T,Y as V,U as W,H as B,a8 as $,ak as U,a6 as Q,o as G,h as J,r as K,d6 as X,a1 as Y,w as Z,u as z,aK as ee,cw as ne,A as se,l as ie,q as le,bT as ae,aP as re,aQ as te,m as oe,x as de,aO as ue,aM as ce,ab as pe,C as me,bk as fe,bF as be,ch as he,B as ge,aL as ve,cr as xe,cq as ye,p as ke,d7 as we,bG as je,d8 as Se,E as _e,cy as Ce,ax as Ne,b8 as De,aE as Me,cg as Pe,av as Re,T as Ie,c3 as He,c6 as qe,L as Oe,aG as Ee,d9 as Le,_ as Ae}from"./index-C-WQXF8v.js";import{r as Fe,$ as Te,j as Ve}from"./vendor-react-64fcanlc.js";import{_ as We,$ as Be,a0 as $e,a1 as Ue,a2 as Qe,a3 as Ge,a4 as Je,a5 as Ke,a6 as Xe,a7 as Ye,a8 as Ze,a9 as ze,aa as en,ab as nn,ac as sn,s as ln}from"./activity-BQ91A1_2.js";import{T as an}from"./Tabs-DVxF89X7.js";import{D as rn}from"./DaeCode-DEjXqvav.js";import{L as tn}from"./AppearanceControls-CRuy5orf.js";import{a as on,c as dn,u as un,y as cn,e as pn,w as mn,h as fn,D as bn,L as hn,S as gn}from"./logs-B-rowQjz.js";import{T as vn}from"./Toolbar-Yd2KR-zd.js";import{D as xn}from"./Table-DDHjB8la.js";import{C as yn,a as kn,E as wn}from"./ConditionRow-EvG4rKpT.js";import{c as jn,C as Sn}from"./Coverage-BvvFzjoN.js";import{d as _n,b as Cn,c as Nn,e as Dn,B as Mn}from"./rule-C502aJft.js";import{u as Pn,a as Rn,c as In}from"./flows-Bm5f0qGx.js";import{W as Hn,s as qn,u as On,b as En,X as Ln,Y as An,f as Fn,c as Tn,Z as Vn,j as Wn,e as Bn,_ as $n,$ as Un,a0 as Qn,a1 as Gn,a2 as Jn,a3 as Kn,r as Xn,a4 as Yn,a5 as Zn,a6 as zn,a7 as es,d as ns,D as ss,a8 as is}from"./nodes-D39HfuKn.js";import{w as ls}from"./labels-D8xxfRTQ.js";import{r as as}from"./nav-DN3M4Ewk.js";import{r as rs}from"./recorder-BHyqDNp5.js";import{g as ts,a as os,b as ds}from"./geodataUpdate-b_z-ddHs.js";/* empty css */import{L as us}from"./LinkOut-Ff0bS5Fx.js";import{S as cs}from"./SearchSelect-ZK-gprFX.js";const ps=new WeakMap;let ms=Math.round(1e10*Math.random()),fs=0;const bs=Fe.createContext(null),hs=Fe.createContext(null),gs=Fe.createContext(null),vs=Fe.forwardRef(function(e,n){[e,n]=g(e,n,bs);let{validationBehavior:l}=v(x)||{},a=e.validationBehavior??l??"native",r=function(e){let n=Fe.useMemo(()=>e.name||`radio-group-${ms}-${++fs}`,[e.name]),[s,i]=b(e.value,e.defaultValue??null,e.onChange),[l]=Fe.useState(s),[a,r]=Fe.useState(null),t=h({...e,value:s}),o=t.displayValidation.isInvalid;return{...t,name:n,selectedValue:s,defaultSelectedValue:void 0!==e.value?l:e.defaultValue??null,setSelectedValue:n=>{e.isReadOnly||e.isDisabled||(i(n),t.commitValidation())},lastFocusedValue:a,setLastFocusedValue:r,isDisabled:e.isDisabled||!1,isReadOnly:e.isReadOnly||!1,isRequired:e.isRequired||!1,validationState:e.validationState||(o?"invalid":null),isInvalid:o}}({...e,validationBehavior:a}),[D,M]=y(!e["aria-label"]&&!e["aria-labelledby"]),{radioGroupProps:P,labelProps:R,descriptionProps:I,errorMessageProps:H,...q}=function(e,n){let{name:l,form:a,isReadOnly:r,isRequired:b,isDisabled:h,orientation:g="vertical",validationBehavior:v="aria"}=e,{direction:x}=t(),{isInvalid:y,validationErrors:k,validationDetails:w}=n.displayValidation,{labelProps:j,fieldProps:S,descriptionProps:_,errorMessageProps:C}=o({...e,labelElementType:"span",isInvalid:n.isInvalid,errorMessage:e.errorMessage||k}),N=i(e,{labelable:!0}),{focusWithinProps:D}=d({onBlurWithin(s){e.onBlur?.(s),n.selectedValue||n.setLastFocusedValue(null)},onFocusWithin:e.onFocus,onFocusWithinChange:e.onFocusChange});function M(e,s){let i,l=p(s.currentTarget,{from:f(s),accept:e=>e instanceof m(e).HTMLInputElement&&"radio"===e.type});return"next"===e?(i=l.nextNode(),i||(l.currentNode=s.currentTarget,i=l.firstChild())):(i=l.previousNode(),i||(l.currentNode=s.currentTarget,i=l.lastChild())),!!i&&(i.focus(),n.setSelectedValue(i.value),!0)}let{keyboardProps:P}=u({shortcuts:{ArrowRight:e=>M("rtl"===x&&"vertical"!==g?"prev":"next",e),ArrowLeft:e=>M("rtl"===x&&"vertical"!==g?"next":"prev",e),ArrowDown:e=>M("next",e),ArrowUp:e=>M("prev",e)},allowRepeats:!0}),R=c(l);return ps.set(n,{name:R,form:a,descriptionId:_.id,errorMessageId:C.id,validationBehavior:v}),{radioGroupProps:s(N,{role:"radiogroup",...P,"aria-invalid":n.isInvalid||void 0,"aria-errormessage":e["aria-errormessage"],"aria-readonly":r||void 0,"aria-required":b||void 0,"aria-disabled":h||void 0,"aria-orientation":g,...S,...D}),labelProps:j,descriptionProps:_,errorMessageProps:C,isInvalid:y,validationErrors:k,validationDetails:w}}({...e,label:M,validationBehavior:a},r),O=k({...e,values:{orientation:e.orientation||"vertical",isDisabled:r.isDisabled,isReadOnly:r.isReadOnly,isRequired:r.isRequired,isInvalid:r.isInvalid,state:r},defaultClassName:"react-aria-RadioGroup"}),E=i(e,{global:!0});return Te.createElemeLine truncated
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Trace-Cq_wRvDo.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./index-XeGFdFb3.js","./index-BClYdby3.css","./flows-CjEC9Jxw.js","./logs-DNePHVHd.js","./Select-OqnbuzuK.js","./ItemText-Bvif-kkw.js","./AppearanceControls-Q-jHRGz9.js","./nodes-Bm1vmvln.js","./probe-Bp5QvROd.js","./useQuickRule-8yoKk9d5.js","./DaeCode-DEjXqvav.js","./daeTokens-BVtuNnWZ.js","./AddCircle-7x8u9Pw1.js","./SearchSelect-BVGce3l_.js","./SearchList-DWooTdFX.js","./Virtualizer-FvdVRagH.js","./Toolbar-CFyWgMbW.js","./rule-BUktGcKO.js","./activity-7OeQMmIs.js","./activity-Db7VRWAG.css","./NumberField-Bo9iJ94r.js","./Table-DqqJleJD.js","./Checkbox-BewExwKL.js","./Tabs-BGWzF0yW.js","./ConditionRow-mKWPcuZs.js","./Coverage-fmBkVF9H.js","./labels-D8xxfRTQ.js","./nav-4iHQTLCW.js","./recorder-BHyqDNp5.js","./geodataUpdate-Blcy6CRD.js","./LinkOut-BfQApT3z.js","./impact-B8feJDtJ.css"])))=>i.map(i=>d[i]);
|
||||
import{cA as e,cB as n,cC as s,cD as i,cE as l,cF as a,cG as r,bp as t,cH as o,cI as d,cJ as u,cK as c,cL as p,cM as m,cN as f,cO as b,cP as h,cQ as g,cR as v,cS as x,cT as y,cU as k,cV as w,cW as j,cX as S,cY as _,cZ as C,c_ as N,c$ as D,d0 as M,d1 as P,d2 as R,d3 as I,aD as H,d4 as q,d5 as O,aA as E,b7 as L,c2 as A,c4 as F,al as T,Y as V,U as W,H as B,a8 as $,ak as U,a6 as Q,o as G,h as J,r as K,d6 as X,a1 as Y,w as Z,u as z,aK as ee,cw as ne,A as se,l as ie,q as le,bT as ae,aP as re,aQ as te,m as oe,x as de,aO as ue,aM as ce,ab as pe,C as me,bk as fe,bF as be,ch as he,B as ge,aL as ve,cr as xe,cq as ye,p as ke,d7 as we,bG as je,d8 as Se,E as _e,cy as Ce,ax as Ne,b8 as De,aE as Me,cg as Pe,av as Re,T as Ie,c3 as He,c6 as qe,L as Oe,aG as Ee,d9 as Le,_ as Ae}from"./index-XeGFdFb3.js";import{r as Fe,$ as Te,j as Ve}from"./vendor-react-64fcanlc.js";import{_ as We,$ as Be,a0 as $e,a1 as Ue,a2 as Qe,a3 as Ge,a4 as Je,a5 as Ke,a6 as Xe,a7 as Ye,a8 as Ze,a9 as ze,aa as en,ab as nn,ac as sn,s as ln}from"./activity-7OeQMmIs.js";import{T as an}from"./Tabs-BGWzF0yW.js";import{D as rn}from"./DaeCode-DEjXqvav.js";import{L as tn}from"./AppearanceControls-Q-jHRGz9.js";import{a as on,c as dn,u as un,y as cn,e as pn,w as mn,h as fn,D as bn,L as hn,S as gn}from"./logs-DNePHVHd.js";import{T as vn}from"./Toolbar-CFyWgMbW.js";import{D as xn}from"./Table-DqqJleJD.js";import{C as yn,a as kn,E as wn}from"./ConditionRow-mKWPcuZs.js";import{c as jn,C as Sn}from"./Coverage-fmBkVF9H.js";import{d as _n,b as Cn,c as Nn,e as Dn,B as Mn}from"./rule-BUktGcKO.js";import{u as Pn,a as Rn,c as In}from"./flows-CjEC9Jxw.js";import{W as Hn,s as qn,u as On,b as En,X as Ln,Y as An,f as Fn,c as Tn,Z as Vn,j as Wn,e as Bn,_ as $n,$ as Un,a0 as Qn,a1 as Gn,a2 as Jn,a3 as Kn,r as Xn,a4 as Yn,a5 as Zn,a6 as zn,a7 as es,d as ns,D as ss,a8 as is}from"./nodes-Bm1vmvln.js";import{w as ls}from"./labels-D8xxfRTQ.js";import{r as as}from"./nav-4iHQTLCW.js";import{r as rs}from"./recorder-BHyqDNp5.js";import{g as ts,a as os,b as ds}from"./geodataUpdate-Blcy6CRD.js";/* empty css */import{L as us}from"./LinkOut-BfQApT3z.js";import{S as cs}from"./SearchSelect-BVGce3l_.js";const ps=new WeakMap;let ms=Math.round(1e10*Math.random()),fs=0;const bs=Fe.createContext(null),hs=Fe.createContext(null),gs=Fe.createContext(null),vs=Fe.forwardRef(function(e,n){[e,n]=g(e,n,bs);let{validationBehavior:l}=v(x)||{},a=e.validationBehavior??l??"native",r=function(e){let n=Fe.useMemo(()=>e.name||`radio-group-${ms}-${++fs}`,[e.name]),[s,i]=b(e.value,e.defaultValue??null,e.onChange),[l]=Fe.useState(s),[a,r]=Fe.useState(null),t=h({...e,value:s}),o=t.displayValidation.isInvalid;return{...t,name:n,selectedValue:s,defaultSelectedValue:void 0!==e.value?l:e.defaultValue??null,setSelectedValue:n=>{e.isReadOnly||e.isDisabled||(i(n),t.commitValidation())},lastFocusedValue:a,setLastFocusedValue:r,isDisabled:e.isDisabled||!1,isReadOnly:e.isReadOnly||!1,isRequired:e.isRequired||!1,validationState:e.validationState||(o?"invalid":null),isInvalid:o}}({...e,validationBehavior:a}),[D,M]=y(!e["aria-label"]&&!e["aria-labelledby"]),{radioGroupProps:P,labelProps:R,descriptionProps:I,errorMessageProps:H,...q}=function(e,n){let{name:l,form:a,isReadOnly:r,isRequired:b,isDisabled:h,orientation:g="vertical",validationBehavior:v="aria"}=e,{direction:x}=t(),{isInvalid:y,validationErrors:k,validationDetails:w}=n.displayValidation,{labelProps:j,fieldProps:S,descriptionProps:_,errorMessageProps:C}=o({...e,labelElementType:"span",isInvalid:n.isInvalid,errorMessage:e.errorMessage||k}),N=i(e,{labelable:!0}),{focusWithinProps:D}=d({onBlurWithin(s){e.onBlur?.(s),n.selectedValue||n.setLastFocusedValue(null)},onFocusWithin:e.onFocus,onFocusWithinChange:e.onFocusChange});function M(e,s){let i,l=p(s.currentTarget,{from:f(s),accept:e=>e instanceof m(e).HTMLInputElement&&"radio"===e.type});return"next"===e?(i=l.nextNode(),i||(l.currentNode=s.currentTarget,i=l.firstChild())):(i=l.previousNode(),i||(l.currentNode=s.currentTarget,i=l.lastChild())),!!i&&(i.focus(),n.setSelectedValue(i.value),!0)}let{keyboardProps:P}=u({shortcuts:{ArrowRight:e=>M("rtl"===x&&"vertical"!==g?"prev":"next",e),ArrowLeft:e=>M("rtl"===x&&"vertical"!==g?"next":"prev",e),ArrowDown:e=>M("next",e),ArrowUp:e=>M("prev",e)},allowRepeats:!0}),R=c(l);return ps.set(n,{name:R,form:a,descriptionId:_.id,errorMessageId:C.id,validationBehavior:v}),{radioGroupProps:s(N,{role:"radiogroup",...P,"aria-invalid":n.isInvalid||void 0,"aria-errormessage":e["aria-errormessage"],"aria-readonly":r||void 0,"aria-required":b||void 0,"aria-disabled":h||void 0,"aria-orientation":g,...S,...D}),labelProps:j,descriptionProps:_,errorMessageProps:C,isInvalid:y,validationErrors:k,validationDetails:w}}({...e,label:M,validationBehavior:a},r),O=k({...e,values:{orientation:e.orientation||"vertical",isDisabled:r.isDisabled,isReadOnly:r.isReadOnly,isRequired:r.isRequired,isInvalid:r.isInvalid,state:r},defaultClassName:"react-aria-RadioGroup"}),E=i(e,{global:!0});return Te.createElemeLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{r as s,f1 as a,w as i,f2 as r,K as n,bY as o,ak as l,U as d,Y as u,al as p,f3 as c,f4 as m,f5 as f,dH as h,u as g,l as y,q as b,x as j,f6 as v,b5 as K,eY as x,bG as w,B as M,aE as $,E as k,bE as q,af as L,dj as S}from"./index-C-WQXF8v.js";import{$ as _,d as C,a as N}from"./Select-B67-iUq2.js";import{b as E}from"./ItemText-CnmwoDur.js";import{i as I,h as Y,c as R,g as T,u as G,e as O}from"./logs-B-rowQjz.js";import{u as A,c as H}from"./flows-Bm5f0qGx.js";import{Y as P}from"./nodes-D39HfuKn.js";import{c as Q,o as U,p as V,q as W}from"./nav-DrKp2w73.js";import{d as z}from"./nav-DORsPGf3.js";import{r as B,a as F}from"./nav-DN3M4Ewk.js";import{f as D}from"./nav-C9NL8eDT.js";import{f as J,r as X,g as Z,h as ee}from"./nav-DPUoWWE6.js";import{aT as te,a1 as se,aU as ae}from"./activity-BQ91A1_2.js";import{c as ie}from"./nav-BO8viH9G.js";import{n as re,a as ne}from"./nav-BNyZNOjO.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./AppearanceControls-CRuy5orf.js";const oe=e=>s(e,"groups",{whileLoading:!1})&&!0===e?.config.writable?[{id:"policies:new",titleKey:"group.newGroup",parentKey:"nav.policies",route:"policies",params:{new:"1"},aliases:["group editor"]}]:[],le=e=>e.trim().toLowerCase().replace(/\s+/g," "),de=(e,t,s,a,i,r="",n)=>({hit:{id:t,label:s,description:a,route:i,query:r,...n&&{open:n}},keys:[...new Set(e.flatMap(e=>null==e?[]:[le(e)]))]}),ue=(e,t,s,a,i)=>{const{route:r,query:n}=h(i);return de(e,t,s,a,r,n)};function pe(e,t,s){const a=[{title:e(t),parent:s&&e(s)}];for(const i of c)m(i.id)&&a.push({title:f(i.id,t),parent:s&&f(i.id,s)});return a.flatMap(({title:e,parent:t})=>t?[e,t+" "+e]:[e])}function ce(e,t){let s=3;for(const a of e){if(a===t)return 0;a.startsWith(t)?s=1:3===s&&a.includes(t)&&(s=2)}return s}function me(t,m){const f=g(),h=y(),[K,x]=e.useState(""),w=b(),M=w.data?.resources,$=I(void 0,s(M,"connections",{whileLoading:!1})),k=Y(s(M,"nodes",{whileLoading:!1})),q=R(s(M,"groups",{whileLoading:!1})),L=T(s(M,"providers",{whileLoading:!1})),S=G(s(M,"config",{whileLoading:!1})),_=A(s(M,"rules",{whileLoading:!1})),C=H(s(M,"dns_rules",{whileLoading:!1})),N=[w,$,k,q,L,S,_,C],E=O(j().data),me=!!E.globalSettings,[fe,he]=e.useState(0);e.useEffect(()=>{let e=!0;for(const t of c)v(t.id).then(()=>e&&he(e=>e+1),()=>{});return()=>{e=!1}},[]);const ge=e.useMemo(()=>function(e,t,s){const n=t=>r(t,e),o=e?.resources,l=[...ie().map(e=>({path:"connections",params:{tab:e.id},titleKey:e.titleKey})),...re(o).map(e=>({path:"nodes",params:{tab:e.id},titleKey:e.titleKey})),...D(o).map(e=>({path:"flows",params:{tab:e.id},titleKey:e.titleKey})),...B(o).map(e=>({path:"rules",params:{tab:e.id},titleKey:e.titleKey})),...z(o).map(e=>({path:"dns",params:{tab:e.id},titleKey:e.titleKey})),...Q(s,e).map(e=>({path:"config",params:{tab:e.id},titleKey:e.titleKey,aliases:e.aliases})),...J(o).map(e=>({path:"settings",params:{card:e.id},titleKey:e.titleKey,aliases:e.aliases}))],d=e=>a.find(t=>t.path===e).nav.titleKey;return[...a.filter(e=>e.nav&&n(e.path)).map(e=>de(pe(t,e.nav.titleKey),`page:${e.path}?`,t(e.nav.titleKey),void 0,e.path)),...l.filter(e=>n(e.path)).map(e=>{const s=i("",e.params);return de([...pe(t,e.titleKey,d(e.path)),...e.aliases??[]],`page:${e.path}?${s}`,t(e.titleKey),t(d(e.path)),e.path,s)})]}(w.data,f,me),[w.data,f,me,fe]),ye=e.useMemo(()=>function(e,t){const s=e?.resources,a=new Map(J(s).map(e=>[e.id,e])),r=new Set(s?.runtime_settings.available?s.runtime_settings.fields??[]:[]),n=Object.entries(X).filter(([e])=>r.has(e)).map(([e,t])=>({id:e,labelKey:t,card:"runtime",aliases:void 0})),o=Z(s);return[...ee.filter(e=>!e.sources||o),...n].flatMap(e=>{const s=a.get(e.card);return s?[de([...pe(t,e.labelKey),...e.aliases??[]],`setting:${e.id}`,t(e.labelKey),t(s.titleKey),"settings",i("",{card:e.card,field:e.id}))]:[]})}(w.data,f),[w.data,f,fe]),be=e.useMemo(()=>function(e,t,a){return e&&s(t?.resources,"config",{whileLoading:!1})?e.fields.map(e=>de([...pe(a,e.label),e.key],`global:${e.key}`,a(e.label),a(U[e.group]),"config",i("",{tab:"global",field:e.key}))):[]}(E.globalSettings,w.data,f),[E.globalSettings,w.data,f,fe]),je=e.useMemo(()=>function(e,t){const s=e?.resources;return[...F(s),...oe(s),...ne(s),...V(e),...te].filter(t=>null===t.route||r(t.route,e)).map(e=>de([...pe(t,e.titleKey,e.parentKey),...(e.aliasKeys??[]).flatMap(e=>pe(t,e)),...e.aliases??[]],`feature:${e.id}`,t(e.titleKey),e.parentKey&&t(e.parentKey),e.route,i("",e.params??{}),e.open))}(w.data,f),[w.data,f,fe]),ve=e.useMemo(()=>function(e,t,s){return W(e,t,s).map(e=>ue([e.kind,e.summary],`module:${e.id}`,e.kind,e.range,e.href))}(S.data,E,f),[S.data,E,f]),Ke=e.useMemo(()=>function(e,t){return n(e).map(e=>de([e.domain,e.dst,e.src],`connection:${e.id}`,e.domain||e.dst||e.src||e.id,o(e,t),"connections",i("",{id:e.id})))}($.data,f),[$.data,f]),xe=e.useMemo(()=>function(e,t,s){const a=t?.providers??[];return(e??[]).map(e=>ue([e.name],`node:${e.id}`,e.name,l(s,e.group_ids)||void 0,se(e,a,!0)))}(k.data,L.dataLine truncated
|
||||
import{r as e,j as t}from"./vendor-react-64fcanlc.js";import{r as s,f1 as a,w as i,f2 as r,K as n,bY as o,ak as l,U as d,Y as u,al as p,f3 as c,f4 as m,f5 as f,dH as h,u as g,l as y,q as b,x as j,f6 as v,b5 as K,eY as x,bG as w,B as M,aE as $,E as k,bE as q,af as L,dj as S}from"./index-XeGFdFb3.js";import{$ as _,d as C,a as N}from"./Select-OqnbuzuK.js";import{b as E}from"./ItemText-Bvif-kkw.js";import{i as I,h as Y,c as R,g as T,u as G,e as O}from"./logs-DNePHVHd.js";import{u as A,c as H}from"./flows-CjEC9Jxw.js";import{Y as P}from"./nodes-Bm1vmvln.js";import{c as Q,o as U,p as V,q as W}from"./nav-B6IjqlWU.js";import{d as z}from"./nav-BgyFg1Tl.js";import{r as B,a as F}from"./nav-4iHQTLCW.js";import{f as D}from"./nav-BIicxOIW.js";import{f as J,r as X,g as Z,h as ee}from"./nav-DxD_yNm9.js";import{aT as te,a1 as se,aU as ae}from"./activity-7OeQMmIs.js";import{c as ie}from"./nav-BO8viH9G.js";import{n as re,a as ne}from"./nav-xz-AMjAg.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./AppearanceControls-Q-jHRGz9.js";const oe=e=>s(e,"groups",{whileLoading:!1})&&!0===e?.config.writable?[{id:"policies:new",titleKey:"group.newGroup",parentKey:"nav.policies",route:"policies",params:{new:"1"},aliases:["group editor"]}]:[],le=e=>e.trim().toLowerCase().replace(/\s+/g," "),de=(e,t,s,a,i,r="",n)=>({hit:{id:t,label:s,description:a,route:i,query:r,...n&&{open:n}},keys:[...new Set(e.flatMap(e=>null==e?[]:[le(e)]))]}),ue=(e,t,s,a,i)=>{const{route:r,query:n}=h(i);return de(e,t,s,a,r,n)};function pe(e,t,s){const a=[{title:e(t),parent:s&&e(s)}];for(const i of c)m(i.id)&&a.push({title:f(i.id,t),parent:s&&f(i.id,s)});return a.flatMap(({title:e,parent:t})=>t?[e,t+" "+e]:[e])}function ce(e,t){let s=3;for(const a of e){if(a===t)return 0;a.startsWith(t)?s=1:3===s&&a.includes(t)&&(s=2)}return s}function me(t,m){const f=g(),h=y(),[K,x]=e.useState(""),w=b(),M=w.data?.resources,$=I(void 0,s(M,"connections",{whileLoading:!1})),k=Y(s(M,"nodes",{whileLoading:!1})),q=R(s(M,"groups",{whileLoading:!1})),L=T(s(M,"providers",{whileLoading:!1})),S=G(s(M,"config",{whileLoading:!1})),_=A(s(M,"rules",{whileLoading:!1})),C=H(s(M,"dns_rules",{whileLoading:!1})),N=[w,$,k,q,L,S,_,C],E=O(j().data),me=!!E.globalSettings,[fe,he]=e.useState(0);e.useEffect(()=>{let e=!0;for(const t of c)v(t.id).then(()=>e&&he(e=>e+1),()=>{});return()=>{e=!1}},[]);const ge=e.useMemo(()=>function(e,t,s){const n=t=>r(t,e),o=e?.resources,l=[...ie().map(e=>({path:"connections",params:{tab:e.id},titleKey:e.titleKey})),...re(o).map(e=>({path:"nodes",params:{tab:e.id},titleKey:e.titleKey})),...D(o).map(e=>({path:"flows",params:{tab:e.id},titleKey:e.titleKey})),...B(o).map(e=>({path:"rules",params:{tab:e.id},titleKey:e.titleKey})),...z(o).map(e=>({path:"dns",params:{tab:e.id},titleKey:e.titleKey})),...Q(s,e).map(e=>({path:"config",params:{tab:e.id},titleKey:e.titleKey,aliases:e.aliases})),...J(o).map(e=>({path:"settings",params:{card:e.id},titleKey:e.titleKey,aliases:e.aliases}))],d=e=>a.find(t=>t.path===e).nav.titleKey;return[...a.filter(e=>e.nav&&n(e.path)).map(e=>de(pe(t,e.nav.titleKey),`page:${e.path}?`,t(e.nav.titleKey),void 0,e.path)),...l.filter(e=>n(e.path)).map(e=>{const s=i("",e.params);return de([...pe(t,e.titleKey,d(e.path)),...e.aliases??[]],`page:${e.path}?${s}`,t(e.titleKey),t(d(e.path)),e.path,s)})]}(w.data,f,me),[w.data,f,me,fe]),ye=e.useMemo(()=>function(e,t){const s=e?.resources,a=new Map(J(s).map(e=>[e.id,e])),r=new Set(s?.runtime_settings.available?s.runtime_settings.fields??[]:[]),n=Object.entries(X).filter(([e])=>r.has(e)).map(([e,t])=>({id:e,labelKey:t,card:"runtime",aliases:void 0})),o=Z(s);return[...ee.filter(e=>!e.sources||o),...n].flatMap(e=>{const s=a.get(e.card);return s?[de([...pe(t,e.labelKey),...e.aliases??[]],`setting:${e.id}`,t(e.labelKey),t(s.titleKey),"settings",i("",{card:e.card,field:e.id}))]:[]})}(w.data,f),[w.data,f,fe]),be=e.useMemo(()=>function(e,t,a){return e&&s(t?.resources,"config",{whileLoading:!1})?e.fields.map(e=>de([...pe(a,e.label),e.key],`global:${e.key}`,a(e.label),a(U[e.group]),"config",i("",{tab:"global",field:e.key}))):[]}(E.globalSettings,w.data,f),[E.globalSettings,w.data,f,fe]),je=e.useMemo(()=>function(e,t){const s=e?.resources;return[...F(s),...oe(s),...ne(s),...V(e),...te].filter(t=>null===t.route||r(t.route,e)).map(e=>de([...pe(t,e.titleKey,e.parentKey),...(e.aliasKeys??[]).flatMap(e=>pe(t,e)),...e.aliases??[]],`feature:${e.id}`,t(e.titleKey),e.parentKey&&t(e.parentKey),e.route,i("",e.params??{}),e.open))}(w.data,f),[w.data,f,fe]),ve=e.useMemo(()=>function(e,t,s){return W(e,t,s).map(e=>ue([e.kind,e.summary],`module:${e.id}`,e.kind,e.range,e.href))}(S.data,E,f),[S.data,E,f]),Ke=e.useMemo(()=>function(e,t){return n(e).map(e=>de([e.domain,e.dst,e.src],`connection:${e.id}`,e.domain||e.dst||e.src||e.id,o(e,t),"connections",i("",{id:e.id})))}($.data,f),[$.data,f]),xe=e.useMemo(()=>function(e,t,s){const a=t?.providers??[];return(e??[]).map(e=>ue([e.name],`node:${e.id}`,e.name,l(s,e.group_ids)||void 0,se(e,a,!0)))}(k.data,L.dataLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as a}from"./vendor-react-64fcanlc.js";import{ek as t,eX as r,eY as s,bG as l}from"./index-C-WQXF8v.js";import{d as n,e as i}from"./Virtualizer-DBBzjqSD.js";function o(a){let r=t({usage:"search",...a}),s=e.useCallback((e,a)=>0===a.length||(e=e.normalize("NFC"),a=a.normalize("NFC"),0===r.compare(e.slice(0,a.length),a)),[r]),l=e.useCallback((e,a)=>0===a.length||(e=e.normalize("NFC"),a=a.normalize("NFC"),0===r.compare(e.slice(-a.length),a)),[r]),n=e.useCallback((e,a)=>{if(0===a.length)return!0;e=e.normalize("NFC");let t=0,s=(a=a.normalize("NFC")).length;for(;t+s<=e.length;t++){let l=e.slice(t,t+s);if(0===r.compare(a,l))return!0}return!1},[r]);return e.useMemo(()=>({startsWith:s,endsWith:l,contains:n}),[s,l,n])}function c({label:e,children:t}){const{contains:c}=o({sensitivity:"base"});return a.jsx(r,{value:null,children:a.jsxs(s,{filter:c,children:[a.jsx(l,{search:!0,label:e,autoFocus:!0,className:"rp-menu-search"}),a.jsx(n,{layout:i,layoutOptions:{estimatedRowHeight:32,estimatedHeadingHeight:26},children:t})]})})}const u=Object.freeze(Object.defineProperty({__proto__:null,SearchList:c},Symbol.toStringTag,{value:"Module"}));export{o as $,c as S,u as a};
|
||||
import{r as e,j as a}from"./vendor-react-64fcanlc.js";import{ek as t,eX as r,eY as s,bG as l}from"./index-XeGFdFb3.js";import{d as n,e as i}from"./Virtualizer-FvdVRagH.js";function o(a){let r=t({usage:"search",...a}),s=e.useCallback((e,a)=>0===a.length||(e=e.normalize("NFC"),a=a.normalize("NFC"),0===r.compare(e.slice(0,a.length),a)),[r]),l=e.useCallback((e,a)=>0===a.length||(e=e.normalize("NFC"),a=a.normalize("NFC"),0===r.compare(e.slice(-a.length),a)),[r]),n=e.useCallback((e,a)=>{if(0===a.length)return!0;e=e.normalize("NFC");let t=0,s=(a=a.normalize("NFC")).length;for(;t+s<=e.length;t++){let l=e.slice(t,t+s);if(0===r.compare(a,l))return!0}return!1},[r]);return e.useMemo(()=>({startsWith:s,endsWith:l,contains:n}),[s,l,n])}function c({label:e,children:t}){const{contains:c}=o({sensitivity:"base"});return a.jsx(r,{value:null,children:a.jsxs(s,{filter:c,children:[a.jsx(l,{search:!0,label:e,autoFocus:!0,className:"rp-menu-search"}),a.jsx(n,{layout:i,layoutOptions:{estimatedRowHeight:32,estimatedHeadingHeight:26},children:t})]})})}const u=Object.freeze(Object.defineProperty({__proto__:null,SearchList:c},Symbol.toStringTag,{value:"Module"}));export{o as $,c as S,u as a};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as s,j as e}from"./vendor-react-64fcanlc.js";import{cl as a,d4 as l,cn as r,bw as i,d5 as c,co as t,dj as d,b7 as n}from"./index-C-WQXF8v.js";import{b as o,c as p,$ as m,d as j,a as x}from"./Select-B67-iUq2.js";import{I as h,a as b,b as f}from"./ItemText-CnmwoDur.js";import{S as u}from"./SearchList-B2h2qAe4.js";const N=s=>e.jsxs(x,{id:s.id,className:"rp-item",textValue:s.keywords?`${s.label} ${s.keywords}`:s.label,children:[e.jsx(b,{}),e.jsx(f,{i:s,children:s.desc&&e.jsx(c,{slot:"description",className:n("desc",s.tone),children:s.desc})})]},s.id);function v({label:x,searchLabel:b,sections:f,value:v,onChange:S,isDisabled:g,description:y,side:k,size:w}){const R=s.useRef(null),$=s.useRef(null),z=a(w),C=f.flatMap(s=>s.items).find(s=>s.id===v);return e.jsxs(o,{className:n("rp-picker",k?"rp-cluster":"rp-field"),selectedKey:v,onSelectionChange:s=>{null!=s&&S(String(s))},isDisabled:g,children:[e.jsxs("div",{ref:R,className:k?"rp-cluster":"rp-field",children:[e.jsx(l,{className:k?"rp-label":"lbl",children:x}),e.jsxs(r,{ref:$,className:"rp-selectbtn","data-size":z,children:[e.jsx(p,{children:()=>C?e.jsx(h,{i:C}):v}),e.jsx(i,{})]})]}),y&&e.jsx(c,{slot:"description",className:"rp-label",children:y}),e.jsx(t,{className:"rp-popover rp-search-popover",placement:"bottom start",triggerRef:k?$:R,children:e.jsx(u,{label:b,children:e.jsx(m,{className:"rp-menu-scroll rp-overlay-scroll",children:f.map(s=>s.title?e.jsxs(j,{id:s.id,children:[e.jsx(d,{className:"rp-sec-h",children:s.title}),s.items.map(N)]},s.id):s.items.map(N))})})})]})}export{v as S};
|
||||
import{r as s,j as e}from"./vendor-react-64fcanlc.js";import{cl as a,d4 as l,cn as r,bw as i,d5 as c,co as t,dj as d,b7 as n}from"./index-XeGFdFb3.js";import{b as o,c as p,$ as m,d as j,a as x}from"./Select-OqnbuzuK.js";import{I as h,a as b,b as f}from"./ItemText-Bvif-kkw.js";import{S as u}from"./SearchList-DWooTdFX.js";const N=s=>e.jsxs(x,{id:s.id,className:"rp-item",textValue:s.keywords?`${s.label} ${s.keywords}`:s.label,children:[e.jsx(b,{}),e.jsx(f,{i:s,children:s.desc&&e.jsx(c,{slot:"description",className:n("desc",s.tone),children:s.desc})})]},s.id);function v({label:x,searchLabel:b,sections:f,value:v,onChange:S,isDisabled:g,description:y,side:k,size:w}){const R=s.useRef(null),$=s.useRef(null),z=a(w),C=f.flatMap(s=>s.items).find(s=>s.id===v);return e.jsxs(o,{className:n("rp-picker",k?"rp-cluster":"rp-field"),selectedKey:v,onSelectionChange:s=>{null!=s&&S(String(s))},isDisabled:g,children:[e.jsxs("div",{ref:R,className:k?"rp-cluster":"rp-field",children:[e.jsx(l,{className:k?"rp-label":"lbl",children:x}),e.jsxs(r,{ref:$,className:"rp-selectbtn","data-size":z,children:[e.jsx(p,{children:()=>C?e.jsx(h,{i:C}):v}),e.jsx(i,{})]})]}),y&&e.jsx(c,{slot:"description",className:"rp-label",children:y}),e.jsx(t,{className:"rp-popover rp-search-popover",placement:"bottom start",triggerRef:k?$:R,children:e.jsx(u,{label:b,children:e.jsx(m,{className:"rp-menu-scroll rp-overlay-scroll",children:f.map(s=>s.title?e.jsxs(j,{id:s.id,children:[e.jsx(d,{className:"rp-sec-h",children:s.title}),s.items.map(N)]},s.id):s.items.map(N))})})})]})}export{v as S};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{bp as e,cD as t,fG as l,cI as o,cK as a,du as s,cC as i,fH as r,fI as n,dY as c,eB as d,d3 as u,eu as p,dZ as g,ek as f,eI as y,fJ as v,cJ as m,fK as b,cH as h,el as D,dx as P,eA as M,cE as S,cF as K,cN as E,em as k,eD as C,eF as F,eE as B,cQ as x,e3 as I,e0 as R,eL as w,fL as A,e1 as V,fM as T,c$ as O,fN as U,cU as H,cV as L,cW as z,cY as N,e2 as q,eO as W,eH as _,e6 as j,d2 as $,eK as Z,fO as G,fP as J,c_ as Q,cT as Y,fQ as X,eT as ee,eU as te,ea as le,fR as oe,cO as ae,cP as se,e4 as ie,cR as re,en as ne,cS as ce,d1 as de,cX as ue,eN as pe,fS as ge,fT as fe,cZ as ye}from"./index-C-WQXF8v.js";import{r as ve,$ as me}from"./vendor-react-64fcanlc.js";const be=new WeakMap;function he(e,l,o){let{key:a}=e,s=be.get(l),f=e.isDisabled??l.selectionManager.isDisabled(a),y=e.isSelected??l.selectionManager.isSelected(a),v=e.shouldSelectOnPressUp??s?.shouldSelectOnPressUp,m=e.shouldFocusOnHover??s?.shouldFocusOnHover,b=e.shouldUseVirtualFocus??s?.shouldUseVirtualFocus,h=e.isVirtualized??s?.isVirtualized,D=r(),P=r(),M={role:"option","aria-disabled":f||void 0,"aria-selected":"none"!==l.selectionManager.selectionMode?y:void 0,"aria-label":e["aria-label"],"aria-labelledby":D,"aria-describedby":P},S=l.collection.getItem(a);if(h){let e=Number(S?.index);M["aria-posinset"]=Number.isNaN(e)?void 0:e+1,M["aria-setsize"]=n(l.collection)}let K=s?.onAction?()=>s?.onAction?.(a):void 0,E=function(e,t){let l=be.get(e);if(!l)throw new Error("Unknown list");return`${l.id}-option-${o=t,"string"==typeof o?o.replace(/\s*/g,""):""+o}`;var o}(l,a),{itemProps:k,isPressed:C,isFocused:F,hasAction:B,allowsSelection:x}=c({selectionManager:l.selectionManager,key:a,ref:o,shouldSelectOnPressUp:v,allowsDifferentPressOrigin:v&&m,isVirtualized:h,shouldUseVirtualFocus:b,isDisabled:f,onAction:K||S?.props?.onAction?d(S?.props?.onAction,K):void 0,linkBehavior:s?.linkBehavior,UNSTABLE_itemBehavior:s?.UNSTABLE_itemBehavior,id:E}),{hoverProps:I}=u({isDisabled:f||!m,onHoverStart(){p()||(l.selectionManager.setFocused(!0),l.selectionManager.setFocusedKey(a))}}),R=t(S?.props);delete R.id;let w=g(S?.props);return{optionProps:{...M,...i(R,k,I,w),id:E},labelProps:{id:D},descriptionProps:{id:P},isFocused:F,isFocusVisible:F&&l.selectionManager.isFocused&&p(),isSelected:y,isDisabled:f,isPressed:C,allowsSelection:x,hasAction:B}}const De=new WeakMap;function Pe(e){let{state:t,triggerRef:l,label:o,name:a,form:s,isDisabled:i}=e,r=ve.useRef(null),n=ve.useRef(null),{containerProps:c,selectProps:d}=function(e,t,l){let o=De.get(t)||{},{autoComplete:a,name:s=o.name,form:i=o.form,isDisabled:r=o.isDisabled}=e,{validationBehavior:n,isRequired:c}=o,{visuallyHiddenProps:d}=M({style:{position:"fixed",top:0,left:0}});S(e.selectRef,t.defaultValue,t.setValue),K({validationBehavior:n,focus:()=>l.current?.focus()},t,e.selectRef);let u=t.setValue,p=ve.useCallback(e=>{let t=E(e);t.multiple?u(Array.from(t.selectedOptions,e=>e.value)):u(e.currentTarget.value)},[u]);return{containerProps:{...d,"aria-hidden":!0,"data-react-aria-prevent-focus":!0,"data-a11y-ignore":"aria-hidden-focus"},inputProps:{style:{display:"none"}},selectProps:{tabIndex:-1,autoComplete:a,disabled:r,multiple:"multiple"===t.selectionManager.selectionMode,required:"native"===n&&c,name:s,form:i,value:t.value??"",onChange:p,onInput:p}}}({...e,selectRef:t.collection.size<=300?r:n},t,l),u=Array.isArray(t.value)?t.value:[t.value];if(t.collection.size<=300)return me.createElement("div",{...c,"data-testid":"hidden-select-container"},me.createElement("label",null,o,me.createElement("select",{...d,ref:r},me.createElement("option",{value:"",label:" "}," "),[...t.collection.getKeys()].map(e=>{let l=t.collection.getItem(e);if(l&&"item"===l.type)return me.createElement("option",{key:l.key,value:l.key},l.textValue)}),0===t.collection.size&&a&&u.map((e,t)=>me.createElement("option",{key:t,value:e??""})))));if(a){let e=De.get(t)||{},{validationBehavior:l}=e;0===u.length&&(u=[null]);let o=u.map((e,t)=>{let o={type:"hidden",autoComplete:d.autoComplete,name:a,form:s,disabled:i,value:e??""};return"native"===l?me.createElement("input",{key:t,...o,ref:0===t?n:null,style:{display:"none"},type:"text",required:0===t&&d.required,onChange:()=>{}}):me.createElement("input",{key:t,...o,ref:0===t?n:null})});return me.createElement(me.Fragment,null,o)}return null}var Me;Me={"ar-AE":k,"bg-BG":k,"cs-CZ":k,"da-DK":k,"de-DE":k,"el-GR":k,"en-US":{selectPlaceholder:"Select an item",tableResizer:"Resizer",dropzoneLabel:"DropZone",colorSwatchPicker:"Color swatches"},"es-ES":k,"et-EE":k,"fi-FI":k,"fr-FR":k,"he-IL":k,"hr-HR":k,"hu-HU":k,"it-IT":k,"ja-JP":k,"ko-KR":k,"lt-LT":k,"lv-LV":k,"nb-NO":k,"nl-NL":k,"pl-PL":k,"pt-BR":k,"pt-PT":k,"ro-RO":k,"ru-RU":k,"sk-SK":k,"sl-SI":k,"sr-SP":k,"sv-SE":k,"tr-TR":k,"uk-UA":k,"zh-CN":{colorSwatchPicker:"颜色色板",dropzoneLabel:"放置区域",selectPlaceholder:"选择一个项目",tableResizer:"尺寸调整器"},"zh-TW":{colorSwatchPicker:"色票",dropzoneLabel:"放置區",selectPlaceholder:"選取項目",tableResizeLine truncated
|
||||
import{bp as e,cD as t,fG as l,cI as o,cK as a,du as s,cC as i,fH as r,fI as n,dY as c,eB as d,d3 as u,eu as p,dZ as g,ek as f,eI as y,fJ as v,cJ as m,fK as b,cH as h,el as D,dx as P,eA as M,cE as S,cF as K,cN as E,em as k,eD as C,eF as F,eE as B,cQ as x,e3 as I,e0 as R,eL as w,fL as A,e1 as V,fM as T,c$ as O,fN as U,cU as H,cV as L,cW as z,cY as N,e2 as q,eO as W,eH as _,e6 as j,d2 as $,eK as Z,fO as G,fP as J,c_ as Q,cT as Y,fQ as X,eT as ee,eU as te,ea as le,fR as oe,cO as ae,cP as se,e4 as ie,cR as re,en as ne,cS as ce,d1 as de,cX as ue,eN as pe,fS as ge,fT as fe,cZ as ye}from"./index-XeGFdFb3.js";import{r as ve,$ as me}from"./vendor-react-64fcanlc.js";const be=new WeakMap;function he(e,l,o){let{key:a}=e,s=be.get(l),f=e.isDisabled??l.selectionManager.isDisabled(a),y=e.isSelected??l.selectionManager.isSelected(a),v=e.shouldSelectOnPressUp??s?.shouldSelectOnPressUp,m=e.shouldFocusOnHover??s?.shouldFocusOnHover,b=e.shouldUseVirtualFocus??s?.shouldUseVirtualFocus,h=e.isVirtualized??s?.isVirtualized,D=r(),P=r(),M={role:"option","aria-disabled":f||void 0,"aria-selected":"none"!==l.selectionManager.selectionMode?y:void 0,"aria-label":e["aria-label"],"aria-labelledby":D,"aria-describedby":P},S=l.collection.getItem(a);if(h){let e=Number(S?.index);M["aria-posinset"]=Number.isNaN(e)?void 0:e+1,M["aria-setsize"]=n(l.collection)}let K=s?.onAction?()=>s?.onAction?.(a):void 0,E=function(e,t){let l=be.get(e);if(!l)throw new Error("Unknown list");return`${l.id}-option-${o=t,"string"==typeof o?o.replace(/\s*/g,""):""+o}`;var o}(l,a),{itemProps:k,isPressed:C,isFocused:F,hasAction:B,allowsSelection:x}=c({selectionManager:l.selectionManager,key:a,ref:o,shouldSelectOnPressUp:v,allowsDifferentPressOrigin:v&&m,isVirtualized:h,shouldUseVirtualFocus:b,isDisabled:f,onAction:K||S?.props?.onAction?d(S?.props?.onAction,K):void 0,linkBehavior:s?.linkBehavior,UNSTABLE_itemBehavior:s?.UNSTABLE_itemBehavior,id:E}),{hoverProps:I}=u({isDisabled:f||!m,onHoverStart(){p()||(l.selectionManager.setFocused(!0),l.selectionManager.setFocusedKey(a))}}),R=t(S?.props);delete R.id;let w=g(S?.props);return{optionProps:{...M,...i(R,k,I,w),id:E},labelProps:{id:D},descriptionProps:{id:P},isFocused:F,isFocusVisible:F&&l.selectionManager.isFocused&&p(),isSelected:y,isDisabled:f,isPressed:C,allowsSelection:x,hasAction:B}}const De=new WeakMap;function Pe(e){let{state:t,triggerRef:l,label:o,name:a,form:s,isDisabled:i}=e,r=ve.useRef(null),n=ve.useRef(null),{containerProps:c,selectProps:d}=function(e,t,l){let o=De.get(t)||{},{autoComplete:a,name:s=o.name,form:i=o.form,isDisabled:r=o.isDisabled}=e,{validationBehavior:n,isRequired:c}=o,{visuallyHiddenProps:d}=M({style:{position:"fixed",top:0,left:0}});S(e.selectRef,t.defaultValue,t.setValue),K({validationBehavior:n,focus:()=>l.current?.focus()},t,e.selectRef);let u=t.setValue,p=ve.useCallback(e=>{let t=E(e);t.multiple?u(Array.from(t.selectedOptions,e=>e.value)):u(e.currentTarget.value)},[u]);return{containerProps:{...d,"aria-hidden":!0,"data-react-aria-prevent-focus":!0,"data-a11y-ignore":"aria-hidden-focus"},inputProps:{style:{display:"none"}},selectProps:{tabIndex:-1,autoComplete:a,disabled:r,multiple:"multiple"===t.selectionManager.selectionMode,required:"native"===n&&c,name:s,form:i,value:t.value??"",onChange:p,onInput:p}}}({...e,selectRef:t.collection.size<=300?r:n},t,l),u=Array.isArray(t.value)?t.value:[t.value];if(t.collection.size<=300)return me.createElement("div",{...c,"data-testid":"hidden-select-container"},me.createElement("label",null,o,me.createElement("select",{...d,ref:r},me.createElement("option",{value:"",label:" "}," "),[...t.collection.getKeys()].map(e=>{let l=t.collection.getItem(e);if(l&&"item"===l.type)return me.createElement("option",{key:l.key,value:l.key},l.textValue)}),0===t.collection.size&&a&&u.map((e,t)=>me.createElement("option",{key:t,value:e??""})))));if(a){let e=De.get(t)||{},{validationBehavior:l}=e;0===u.length&&(u=[null]);let o=u.map((e,t)=>{let o={type:"hidden",autoComplete:d.autoComplete,name:a,form:s,disabled:i,value:e??""};return"native"===l?me.createElement("input",{key:t,...o,ref:0===t?n:null,style:{display:"none"},type:"text",required:0===t&&d.required,onChange:()=>{}}):me.createElement("input",{key:t,...o,ref:0===t?n:null})});return me.createElement(me.Fragment,null,o)}return null}var Me;Me={"ar-AE":k,"bg-BG":k,"cs-CZ":k,"da-DK":k,"de-DE":k,"el-GR":k,"en-US":{selectPlaceholder:"Select an item",tableResizer:"Resizer",dropzoneLabel:"DropZone",colorSwatchPicker:"Color swatches"},"es-ES":k,"et-EE":k,"fi-FI":k,"fr-FR":k,"he-IL":k,"hr-HR":k,"hu-HU":k,"it-IT":k,"ja-JP":k,"ko-KR":k,"lt-LT":k,"lv-LV":k,"nb-NO":k,"nl-NL":k,"pl-PL":k,"pt-BR":k,"pt-PT":k,"ro-RO":k,"ru-RU":k,"sk-SK":k,"sl-SI":k,"sr-SP":k,"sv-SE":k,"tr-TR":k,"uk-UA":k,"zh-CN":{colorSwatchPicker:"颜色色板",dropzoneLabel:"放置区域",selectPlaceholder:"选择一个项目",tableResizer:"尺寸调整器"},"zh-TW":{colorSwatchPicker:"色票",dropzoneLabel:"放置區",selectPlaceholder:"選取項目",tableResizeLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,$ as t,j as s,a}from"./vendor-react-64fcanlc.js";import{du as n,bp as i,dv as r,dw as l,dx as o,cC as d,dy as c,cJ as u,cB as g,cE as p,cN as m,dz as f,cO as h,cQ as b,dA as v,cT as x,cU as j,cD as y,cW as w,cX as k,cV as N,d3 as C,cR as S,d2 as P,aD as T,c$ as _,dB as D,dC as R,dj as I,d5 as E,B as F,cl as M,d4 as V,u as L,bk as H,ch as U,dD as O,a0 as A,ak as q,h as B,m as z,Y as K,aM as $,dE as W,dF as G,dG as Y,cw as X,de as J,bD as Q,bz as Z,A as ee,bB as te,dH as se,bK as ae,dI as ne,bC as ie,dJ as re,s as le,dK as oe,q as de,x as ce,ap as ue,dL as ge,dM as pe,dN as me,dO as fe,dP as he,c9 as be,al as ve,l as xe,bT as je,r as ye,bI as we,U as ke,bP as Ne,aK as Ce,C as Se,E as Pe,ae as Te,S as _e,a as De,b as Re,bF as Ie,p as Ee,cg as Fe,df as Me,aO as Ve,aZ as Le,dQ as He,dR as Ue,aA as Oe,T as Ae,aL as qe,bG as Be,bw as ze,dS as Ke,dT as $e,dU as We,dV as Ge,w as Ye}from"./index-C-WQXF8v.js";import{L as Xe}from"./AppearanceControls-CRuy5orf.js";import{$ as Je,e as Qe,L as Ze,y as et,c as tt,D as st,K as at,F as nt,T as it,U as rt,G as lt}from"./logs-B-rowQjz.js";import{T as ot}from"./Tabs-DVxF89X7.js";import{T as dt}from"./Toolbar-Yd2KR-zd.js";import{$ as ct,d as ut,a as gt}from"./Select-B67-iUq2.js";import{C as pt}from"./ItemText-CnmwoDur.js";import{u as mt,s as ft,M as ht,w as bt,D as vt}from"./wallpaper-CEC7gitM.js";import{d as xt,c as jt}from"./auth-CGURHhWN.js";import{g as yt,r as wt,c as kt,s as Nt,a as Ct,b as St,d as Pt,e as Tt}from"./nav-DPUoWWE6.js";import{N as _t,t as Dt,n as Rt}from"./NumberField-Cd9mdKJI.js";import{aQ as It,aR as Et,aS as Ft}from"./activity-BQ91A1_2.js";import{D as Mt}from"./Table-DDHjB8la.js";import{T as Vt}from"./TimeCell-B2wYTQbc.js";import{a as Lt}from"./geodataUpdate-b_z-ddHs.js";import{g as Ht,v as Ut}from"./geodata-X0pHz03D.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-D39HfuKn.js";import"./Checkbox-DiXDVgGl.js";import"./Virtualizer-DBBzjqSD.js";const Ot=new WeakMap;function At(e,t){let s=Ot.get(e);if(!s)throw new Error("Unknown slider state");return`${s.id}-${t}`}const qt=0,Bt=100,zt=1;function Kt(t){const{isDisabled:s=!1,minValue:a=qt,maxValue:n=Bt,numberFormatter:i,step:r=zt,orientation:o="horizontal"}=t;let d=e.useMemo(()=>{let e=(n-a)/10;return e=f(e,0,e+r,r),Math.max(e,r)},[r,n,a]),c=e.useCallback(e=>e?.map((t,s)=>{let i=0===s?a:e[s-1],l=s===e.length-1?n:e[s+1];return f(t,i,l,r)}),[a,n,r]),u=e.useMemo(()=>c(Wt(t.value)),[t.value,c]),g=e.useMemo(()=>c(Wt(t.defaultValue)??[a]),[t.defaultValue,a,c]),p=Gt(t.value,t.defaultValue,t.onChange),m=Gt(t.value,t.defaultValue,t.onChangeEnd);const[b,v]=h(u,g,p);let[x]=e.useState(b);const[j,y]=e.useState(new Array(b.length).fill(!1)),w=e.useRef(new Array(b.length).fill(!0)),[k,N]=e.useState(void 0),C=e.useRef(b),S=e.useRef(j);function P(e){return(e-a)/(n-a)}function T(e){return 0===e?a:b[e-1]}function _(e){return e===b.length-1?n:b[e+1]}function D(e){return w.current[e]}function R(e,t){if(s||!D(e))return;const a=T(e),n=_(e);t=f(t,a,n,r);let i=$t(C.current,e,t);var l;l=i,C.current=l,v(l)}let I=e.useRef(null);function E(e=b){switch("number"==typeof e&&(e=[e]),e.length){case 0:return"";case 1:return i.format(e[0]);case 2:return i.formatRange(e[0],e[1]);default:{let t=e.map(e=>i.format(e)),s=I.current;return s&&s.resolvedOptions().locale===i.resolvedOptions().locale||(s=I.current=new Intl.ListFormat(i.resolvedOptions().locale,{type:"unit"})),s.format(t)}}}function F(e){return l((t=e*(n-a)+a,Math.round((t-a)/r)*r+a),a,n);var t}return{values:b,defaultValues:void 0!==t.defaultValue?g:x,getThumbValue:e=>b[e],setThumbValue:R,setThumbPercent:function(e,t){R(e,F(t))},isThumbDragging:e=>j[e],setThumbDragging:function(e,t){if(s||!D(e))return;t&&(C.current=b);const a=S.current[e];var n;S.current=$t(S.current,e,t),n=S.current,S.current=n,y(n),m&&a&&!S.current.some(Boolean)&&m(C.current)},focusedThumb:k,setFocusedThumb:N,getThumbPercent:e=>P(b[e]),getValuePercent:P,getThumbValueLabel:e=>E(b[e]),getFormattedValue:E,getThumbMinValue:T,getThumbMaxValue:_,getPercentValue:F,isThumbEditable:D,setThumbEditable:function(e,t){w.current[e]=t},incrementThumb:function(e,t=1){let s=Math.max(t,r);R(e,f(b[e]+s,a,n,r))},decrementThumb:function(e,t=1){let s=Math.max(t,r);R(e,f(b[e]-s,a,n,r))},step:r,pageSize:d,orientation:o,isDisabled:s}}function $t(e,t,s){return e[t]===s?e:[...e.slice(0,t),s,...e.slice(t+1)]}function Wt(e){if(null!=e)return Array.isArray(e)?e:[e]}function Gt(e,t,s){return a=>{s?.("number"==typeof e||"number"==typeof t?a[0]:a)}}const Yt=e.createContext(null),Xt=e.createContext(null),Jt=e.createContext(null),Qt=e.createContext(null),Zt=e.forwardRef(function(s,a){[s,a]=b(s,a,Yt);let c=e.useRef(null),u=v(s.formatOptions),g=Kt({...s,numberFormatter:u}),[p,m]=x(!s["aria-label"]&&!s["aria-labelledby"]),{groupProps:f,trackProps:h,labelProps:C,outputProps:S}=function(t,s,a){let{labelProps:c,fieldProps:u}=n(t),g="vertical"===t.orientation;Ot.set(s,{id:c.id??u.id,"aria-describedby":t["aria-describedby"],"aria-details":t["Line truncated
|
||||
import{r as e,$ as t,j as s,a}from"./vendor-react-64fcanlc.js";import{du as n,bp as i,dv as r,dw as l,dx as o,cC as d,dy as c,cJ as u,cB as g,cE as p,cN as m,dz as f,cO as h,cQ as b,dA as v,cT as x,cU as j,cD as y,cW as w,cX as k,cV as N,d3 as C,cR as S,d2 as P,aD as T,c$ as _,dB as D,dC as R,dj as I,d5 as E,B as F,cl as M,d4 as V,u as L,bk as H,ch as U,dD as O,a0 as A,ak as q,h as B,m as z,Y as K,aM as $,dE as W,dF as G,dG as Y,cw as X,de as J,bD as Q,bz as Z,A as ee,bB as te,dH as se,bK as ae,dI as ne,bC as ie,dJ as re,s as le,dK as oe,q as de,x as ce,ap as ue,dL as ge,dM as pe,dN as me,dO as fe,dP as he,c9 as be,al as ve,l as xe,bT as je,r as ye,bI as we,U as ke,bP as Ne,aK as Ce,C as Se,E as Pe,ae as Te,S as _e,a as De,b as Re,bF as Ie,p as Ee,cg as Fe,df as Me,aO as Ve,aZ as Le,dQ as He,dR as Ue,aA as Oe,T as Ae,aL as qe,bG as Be,bw as ze,dS as Ke,dT as $e,dU as We,dV as Ge,w as Ye}from"./index-XeGFdFb3.js";import{L as Xe}from"./AppearanceControls-Q-jHRGz9.js";import{$ as Je,e as Qe,L as Ze,y as et,c as tt,D as st,K as at,F as nt,T as it,U as rt,G as lt}from"./logs-DNePHVHd.js";import{T as ot}from"./Tabs-BGWzF0yW.js";import{T as dt}from"./Toolbar-CFyWgMbW.js";import{$ as ct,d as ut,a as gt}from"./Select-OqnbuzuK.js";import{C as pt}from"./ItemText-Bvif-kkw.js";import{u as mt,s as ft,M as ht,w as bt,D as vt}from"./wallpaper-CEC7gitM.js";import{d as xt,c as jt}from"./auth-5ngSjiJI.js";import{g as yt,r as wt,c as kt,s as Nt,a as Ct,b as St,d as Pt,e as Tt}from"./nav-DxD_yNm9.js";import{N as _t,t as Dt,n as Rt}from"./NumberField-Bo9iJ94r.js";import{aQ as It,aR as Et,aS as Ft}from"./activity-7OeQMmIs.js";import{D as Mt}from"./Table-DqqJleJD.js";import{T as Vt}from"./TimeCell-B6QtVZge.js";import{a as Lt}from"./geodataUpdate-Blcy6CRD.js";import{g as Ht,v as Ut}from"./geodata-X0pHz03D.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-Bm1vmvln.js";import"./Checkbox-BewExwKL.js";import"./Virtualizer-FvdVRagH.js";const Ot=new WeakMap;function At(e,t){let s=Ot.get(e);if(!s)throw new Error("Unknown slider state");return`${s.id}-${t}`}const qt=0,Bt=100,zt=1;function Kt(t){const{isDisabled:s=!1,minValue:a=qt,maxValue:n=Bt,numberFormatter:i,step:r=zt,orientation:o="horizontal"}=t;let d=e.useMemo(()=>{let e=(n-a)/10;return e=f(e,0,e+r,r),Math.max(e,r)},[r,n,a]),c=e.useCallback(e=>e?.map((t,s)=>{let i=0===s?a:e[s-1],l=s===e.length-1?n:e[s+1];return f(t,i,l,r)}),[a,n,r]),u=e.useMemo(()=>c(Wt(t.value)),[t.value,c]),g=e.useMemo(()=>c(Wt(t.defaultValue)??[a]),[t.defaultValue,a,c]),p=Gt(t.value,t.defaultValue,t.onChange),m=Gt(t.value,t.defaultValue,t.onChangeEnd);const[b,v]=h(u,g,p);let[x]=e.useState(b);const[j,y]=e.useState(new Array(b.length).fill(!1)),w=e.useRef(new Array(b.length).fill(!0)),[k,N]=e.useState(void 0),C=e.useRef(b),S=e.useRef(j);function P(e){return(e-a)/(n-a)}function T(e){return 0===e?a:b[e-1]}function _(e){return e===b.length-1?n:b[e+1]}function D(e){return w.current[e]}function R(e,t){if(s||!D(e))return;const a=T(e),n=_(e);t=f(t,a,n,r);let i=$t(C.current,e,t);var l;l=i,C.current=l,v(l)}let I=e.useRef(null);function E(e=b){switch("number"==typeof e&&(e=[e]),e.length){case 0:return"";case 1:return i.format(e[0]);case 2:return i.formatRange(e[0],e[1]);default:{let t=e.map(e=>i.format(e)),s=I.current;return s&&s.resolvedOptions().locale===i.resolvedOptions().locale||(s=I.current=new Intl.ListFormat(i.resolvedOptions().locale,{type:"unit"})),s.format(t)}}}function F(e){return l((t=e*(n-a)+a,Math.round((t-a)/r)*r+a),a,n);var t}return{values:b,defaultValues:void 0!==t.defaultValue?g:x,getThumbValue:e=>b[e],setThumbValue:R,setThumbPercent:function(e,t){R(e,F(t))},isThumbDragging:e=>j[e],setThumbDragging:function(e,t){if(s||!D(e))return;t&&(C.current=b);const a=S.current[e];var n;S.current=$t(S.current,e,t),n=S.current,S.current=n,y(n),m&&a&&!S.current.some(Boolean)&&m(C.current)},focusedThumb:k,setFocusedThumb:N,getThumbPercent:e=>P(b[e]),getValuePercent:P,getThumbValueLabel:e=>E(b[e]),getFormattedValue:E,getThumbMinValue:T,getThumbMaxValue:_,getPercentValue:F,isThumbEditable:D,setThumbEditable:function(e,t){w.current[e]=t},incrementThumb:function(e,t=1){let s=Math.max(t,r);R(e,f(b[e]+s,a,n,r))},decrementThumb:function(e,t=1){let s=Math.max(t,r);R(e,f(b[e]-s,a,n,r))},step:r,pageSize:d,orientation:o,isDisabled:s}}function $t(e,t,s){return e[t]===s?e:[...e.slice(0,t),s,...e.slice(t+1)]}function Wt(e){if(null!=e)return Array.isArray(e)?e:[e]}function Gt(e,t,s){return a=>{s?.("number"==typeof e||"number"==typeof t?a[0]:a)}}const Yt=e.createContext(null),Xt=e.createContext(null),Jt=e.createContext(null),Qt=e.createContext(null),Zt=e.forwardRef(function(s,a){[s,a]=b(s,a,Yt);let c=e.useRef(null),u=v(s.formatOptions),g=Kt({...s,numberFormatter:u}),[p,m]=x(!s["aria-label"]&&!s["aria-labelledby"]),{groupProps:f,trackProps:h,labelProps:C,outputProps:S}=function(t,s,a){let{labelProps:c,fieldProps:u}=n(t),g="vertical"===t.orientation;Ot.set(s,{id:c.id??u.id,"aria-describedby":t["aria-describedby"],"aria-details":t["Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as t,j as e}from"./vendor-react-64fcanlc.js";import{f as s,g3 as i}from"./index-C-WQXF8v.js";import{a,aW as r,aX as o,aY as l,a$ as n,b0 as h,b1 as d}from"./activity-BQ91A1_2.js";import{G as m,C as c}from"./AreaCurve-DQSHOSpG.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-D39HfuKn.js";import"./AppearanceControls-CRuy5orf.js";import"./ItemText-CnmwoDur.js";import"./logs-B-rowQjz.js";import"./Select-B67-iUq2.js";import"./array-C0VuvQyb.js";function u({values:u,timestamps:p,color:x,fmt:j,locale:f,height:y=32,floor:g=0,inset:v=0,lines:w}){const M=t.useId(),b=a(),[k,C]=t.useState(null),[$,A]=s(Math.round,120),{tip:W,showAt:I,hide:L}=r(),P=t.useMemo(()=>u.filter(t=>null!==t),[u]),S=P.length>1,T=t.useMemo(()=>[g>0?0:.85*Math.min(...P),Math.max(1.05*Math.max(...P)||1,g)],[P,g]),B=A?.width??0,D=(A?.height??y)-2,E=t.useMemo(()=>{const t=[Math.min(...p),Math.max(...p)];return p.map(e=>o(e,t,[v,Math.max(v,B-v)]))},[p,B,v]),F=t.useCallback(t=>o(t,T,[D,2]),[T,D]),G=t.useMemo(()=>u.map((t,e)=>null===t?null:{x:E[e],y:F(t)}),[u,E,F]);return t.useLayoutEffect(()=>{null!==k&&null!=u[k]&&j&&f&&$.current&&A?I({x:E[k],y:F(u[k]),width:A.width,bounds:l($.current),label:i(f).format(p[k]),lines:w?.(k)??[j(u[k])]}):L()}),e.jsxs("div",{ref:$,style:{height:`var(--rp-spark-fill, ${y}px)`,width:"100%",position:"relative"},"aria-hidden":!!S||void 0,onPointerLeave:()=>C(null),children:[A&&!S&&e.jsx("svg",{"aria-hidden":!0,width:A.width,height:A.height,style:{display:"block",position:"absolute",inset:0},children:e.jsx("line",{x1:v,x2:A.width-v,y1:D,y2:D,stroke:b["hl-med"],strokeDasharray:"2 4"})}),S&&A&&e.jsxs(e.Fragment,{children:[e.jsx(n,{tip:W}),e.jsxs("svg",{className:"rp-activity-surface",width:A.width,height:A.height,viewBox:`0 0 ${A.width} ${A.height}`,style:{display:"block",position:"absolute",inset:0},onPointerMove:t=>{const e=h(t,t.currentTarget,A);C(e.x<0||e.x>A.width||e.y<2||e.y>A.height-2?null:d(E,e.x))},children:[e.jsx("defs",{children:e.jsx(m,{id:M,color:x})}),e.jsx(c,{points:G,baseline:F(Math.max(0,T[0])),color:x,id:M,strokeWidth:1.5}),null!==k&&null!=u[k]&&e.jsx("circle",{cx:E[k],cy:F(u[k]),r:4,fill:x,stroke:b.base,strokeWidth:2})]})]})]})}export{u as SparkPlot};
|
||||
import{r as t,j as e}from"./vendor-react-64fcanlc.js";import{f as s,g3 as i}from"./index-XeGFdFb3.js";import{a,aW as r,aX as o,aY as l,a$ as n,b0 as h,b1 as d}from"./activity-7OeQMmIs.js";import{G as m,C as c}from"./AreaCurve-DQSHOSpG.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./nodes-Bm1vmvln.js";import"./AppearanceControls-Q-jHRGz9.js";import"./ItemText-Bvif-kkw.js";import"./logs-DNePHVHd.js";import"./Select-OqnbuzuK.js";import"./array-C0VuvQyb.js";function u({values:u,timestamps:p,color:x,fmt:j,locale:f,height:y=32,floor:g=0,inset:v=0,lines:w}){const M=t.useId(),b=a(),[k,C]=t.useState(null),[$,A]=s(Math.round,120),{tip:W,showAt:I,hide:L}=r(),P=t.useMemo(()=>u.filter(t=>null!==t),[u]),S=P.length>1,T=t.useMemo(()=>[g>0?0:.85*Math.min(...P),Math.max(1.05*Math.max(...P)||1,g)],[P,g]),B=A?.width??0,D=(A?.height??y)-2,E=t.useMemo(()=>{const t=[Math.min(...p),Math.max(...p)];return p.map(e=>o(e,t,[v,Math.max(v,B-v)]))},[p,B,v]),F=t.useCallback(t=>o(t,T,[D,2]),[T,D]),G=t.useMemo(()=>u.map((t,e)=>null===t?null:{x:E[e],y:F(t)}),[u,E,F]);return t.useLayoutEffect(()=>{null!==k&&null!=u[k]&&j&&f&&$.current&&A?I({x:E[k],y:F(u[k]),width:A.width,bounds:l($.current),label:i(f).format(p[k]),lines:w?.(k)??[j(u[k])]}):L()}),e.jsxs("div",{ref:$,style:{height:`var(--rp-spark-fill, ${y}px)`,width:"100%",position:"relative"},"aria-hidden":!!S||void 0,onPointerLeave:()=>C(null),children:[A&&!S&&e.jsx("svg",{"aria-hidden":!0,width:A.width,height:A.height,style:{display:"block",position:"absolute",inset:0},children:e.jsx("line",{x1:v,x2:A.width-v,y1:D,y2:D,stroke:b["hl-med"],strokeDasharray:"2 4"})}),S&&A&&e.jsxs(e.Fragment,{children:[e.jsx(n,{tip:W}),e.jsxs("svg",{className:"rp-activity-surface",width:A.width,height:A.height,viewBox:`0 0 ${A.width} ${A.height}`,style:{display:"block",position:"absolute",inset:0},onPointerMove:t=>{const e=h(t,t.currentTarget,A);C(e.x<0||e.x>A.width||e.y<2||e.y>A.height-2?null:d(E,e.x))},children:[e.jsx("defs",{children:e.jsx(m,{id:M,color:x})}),e.jsx(c,{points:G,baseline:F(Math.max(0,T[0])),color:x,id:M,strokeWidth:1.5}),null!==k&&null!=u[k]&&e.jsx("circle",{cx:E[k],cy:F(u[k]),r:4,fill:x,stroke:b.base,strokeWidth:2})]})]})]})}export{u as SparkPlot};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,$ as t,b as l,j as n}from"./vendor-react-64fcanlc.js";import{ef as i,eg as o,eh as r,ei as s,ej as a,ek as d,bp as c,d_ as u,cK as h,cD as y,el as p,cN as f,cC as g,em as m,en as b,eo as w,ep as v,dY as x,cL as k,eq as C,er as K,es as I,et as S,eu as M,ev as E,ew as R,cA as z,cB as D,ex as P,cJ as N,ey as H,ez as W,eA as A,eB as T,d$ as F,eC as V,eD as L,eE as B,eF as j,cO as O,cQ as $,e0 as U,e3 as _,eG as q,eH as Y,c$ as X,d0 as G,e6 as J,eI as Q,d2 as Z,cU as ee,cW as te,eJ as le,eK as ne,c_ as ie,eL as oe,eM as re,d3 as se,e1 as ae,eb as de,cV as ce,eN as ue,e2 as he,eO as ye,eP as pe,eQ as fe,eR as ge,eS as me,e8 as be,eT as we,eU as ve,ea as xe,u as ke,i as Ce,b4 as Ke,eV as Ie,af as Se,cn as Me,aE as Ee,b9 as Re,aD as ze,bw as De,b7 as Pe,eW as Ne,T as He}from"./index-C-WQXF8v.js";import{b as We,a as Ae,c as Te,d as Fe,e as Ve,f as Le,g as Be}from"./Checkbox-DiXDVgGl.js";import{f as je,g as Oe,h as $e,i as Ue,j as _e}from"./Select-B67-iUq2.js";import{$ as qe}from"./logs-B-rowQjz.js";import{e as Ye,a as Xe,c as Ge,b as Je,d as Qe}from"./Virtualizer-DBBzjqSD.js";class Ze{constructor(e){if(this.collection=e.collection,this.disabledKeys=e.disabledKeys,this.disabledBehavior=e.disabledBehavior||"all",this.direction=e.direction,this.collator=e.collator,!e.layout&&!e.ref)throw new Error("Either a layout or a ref must be specified.");this.layoutDelegate=e.layoutDelegate||(e.layout?new et(e.layout):new i(e.ref)),this.focusMode=e.focusMode??"row"}isCell(e){return"cell"===e.type}isRow(e){return"row"===e.type||"item"===e.type}isDisabled(e){return"all"===this.disabledBehavior&&(e.props?.isDisabled||this.disabledKeys.has(e.key))&&"selection"!==e.props?.disabledBehavior}findPreviousKey(e,t,l=!1){let n=null!=e?this.collection.getKeyBefore(e):this.collection.getLastKey();for(;null!=n;){let e=this.collection.getItem(n);if(!e)return null;if((l||!this.isDisabled(e))&&(!t||t(e)))return n;n=this.collection.getKeyBefore(n)}return null}findNextKey(e,t,l=!1){let n=null!=e?this.collection.getKeyAfter(e):this.collection.getFirstKey();for(;null!=n;){let e=this.collection.getItem(n);if(!e)return null;if((l||!this.isDisabled(e))&&(!t||t(e)))return n;if(n=this.collection.getKeyAfter(n),null==n)return null}return null}getKeyForItemInRowByIndex(e,t=0){if(t<0)return null;let l=this.collection.getItem(e);if(!l)return null;let n=0;for(let i of o(l,this.collection)){if(i.colSpan&&i.colSpan+n>t)return i.key??null;if(i.colSpan&&(n=n+i.colSpan-1),n===t)return i.key??null;n++}return null}getKeyBelow(e,t){let l=e,n=this.collection.getItem(l);if(!n)return null;if(this.isCell(n)&&(l=n.parentKey??null),null==l)return null;if(l=this.findNextKey(l,e=>"item"===e.type,t?.includeDisabled),null!=l){if(this.isCell(n)){let e=n.colIndex?n.colIndex:n.index;return this.getKeyForItemInRowByIndex(l,e)}if("row"===this.focusMode)return l}return null}getKeyAbove(e,t){let l=e,n=this.collection.getItem(l);if(!n)return null;if(this.isCell(n)&&(l=n.parentKey??null),null==l)return null;if(l=this.findPreviousKey(l,e=>"item"===e.type,t?.includeDisabled),null!=l){if(this.isCell(n)){let e=n.colIndex?n.colIndex:n.index;return this.getKeyForItemInRowByIndex(l,e)}if("row"===this.focusMode)return l}return null}getKeyRightOf(e){let t=this.collection.getItem(e);if(!t)return null;if(this.isRow(t)){let e=o(t,this.collection);return("rtl"===this.direction?r(e)?.key:s(e)?.key)??null}if(this.isCell(t)&&null!=t.parentKey){let l=this.collection.getItem(t.parentKey);if(!l)return null;let n=o(l,this.collection),i=("rtl"===this.direction?a(n,t.index-1):a(n,t.index+1))??null;return i?i.key??null:"row"===this.focusMode?t.parentKey??null:("rtl"===this.direction?this.getFirstKey(e):this.getLastKey(e))??null}return null}getKeyLeftOf(e){let t=this.collection.getItem(e);if(!t)return null;if(this.isRow(t)){let e=o(t,this.collection);return("rtl"===this.direction?s(e)?.key:r(e)?.key)??null}if(this.isCell(t)&&null!=t.parentKey){let l=this.collection.getItem(t.parentKey);if(!l)return null;let n=o(l,this.collection),i=("rtl"===this.direction?a(n,t.index+1):a(n,t.index-1))??null;return i?i.key??null:"row"===this.focusMode?t.parentKey??null:("rtl"===this.direction?this.getLastKey(e):this.getFirstKey(e))??null}return null}getFirstKey(e,t){let l,n=e??null;if(null!=n){if(l=this.collection.getItem(n),!l)return null;if(this.isCell(l)&&!t&&null!=l.parentKey){let e=this.collection.getItem(l.parentKey);return e?s(o(e,this.collection))?.key??null:null}}if(n=this.findNextKey(void 0,e=>"item"===e.type),null!=n&&(l&&this.isCell(l)&&t||"cell"===this.focusMode)){let e=this.collection.getItem(n);if(!e)return null;n=s(o(e,this.collection))?.key??null}return n}getLastKey(e,t){let l,n=e??null;if(null!=n){if(l=this.collection.getItem(n),!l)return null;if(this.isCell(l)&&!t&&null!=l.parentKey){let e=this.collection.getItem(l.parentKey);if(!e)return null;let t=o(e,this.collection);return r(t)?.key??null}}if(n=this.findPreviousKey(void 0,e=>"item"===e.type),null!=n&&(l&&this.isCell(l)&&t||"cell"===this.focLine truncated
|
||||
import{r as e,$ as t,b as l,j as n}from"./vendor-react-64fcanlc.js";import{ef as i,eg as o,eh as r,ei as s,ej as a,ek as d,bp as c,d_ as u,cK as h,cD as y,el as p,cN as f,cC as g,em as m,en as b,eo as w,ep as v,dY as x,cL as k,eq as C,er as K,es as I,et as S,eu as M,ev as E,ew as R,cA as z,cB as D,ex as P,cJ as N,ey as H,ez as W,eA as A,eB as T,d$ as F,eC as V,eD as L,eE as B,eF as j,cO as O,cQ as $,e0 as U,e3 as _,eG as q,eH as Y,c$ as X,d0 as G,e6 as J,eI as Q,d2 as Z,cU as ee,cW as te,eJ as le,eK as ne,c_ as ie,eL as oe,eM as re,d3 as se,e1 as ae,eb as de,cV as ce,eN as ue,e2 as he,eO as ye,eP as pe,eQ as fe,eR as ge,eS as me,e8 as be,eT as we,eU as ve,ea as xe,u as ke,i as Ce,b4 as Ke,eV as Ie,af as Se,cn as Me,aE as Ee,b9 as Re,aD as ze,bw as De,b7 as Pe,eW as Ne,T as He}from"./index-XeGFdFb3.js";import{b as We,a as Ae,c as Te,d as Fe,e as Ve,f as Le,g as Be}from"./Checkbox-BewExwKL.js";import{f as je,g as Oe,h as $e,i as Ue,j as _e}from"./Select-OqnbuzuK.js";import{$ as qe}from"./logs-DNePHVHd.js";import{e as Ye,a as Xe,c as Ge,b as Je,d as Qe}from"./Virtualizer-FvdVRagH.js";class Ze{constructor(e){if(this.collection=e.collection,this.disabledKeys=e.disabledKeys,this.disabledBehavior=e.disabledBehavior||"all",this.direction=e.direction,this.collator=e.collator,!e.layout&&!e.ref)throw new Error("Either a layout or a ref must be specified.");this.layoutDelegate=e.layoutDelegate||(e.layout?new et(e.layout):new i(e.ref)),this.focusMode=e.focusMode??"row"}isCell(e){return"cell"===e.type}isRow(e){return"row"===e.type||"item"===e.type}isDisabled(e){return"all"===this.disabledBehavior&&(e.props?.isDisabled||this.disabledKeys.has(e.key))&&"selection"!==e.props?.disabledBehavior}findPreviousKey(e,t,l=!1){let n=null!=e?this.collection.getKeyBefore(e):this.collection.getLastKey();for(;null!=n;){let e=this.collection.getItem(n);if(!e)return null;if((l||!this.isDisabled(e))&&(!t||t(e)))return n;n=this.collection.getKeyBefore(n)}return null}findNextKey(e,t,l=!1){let n=null!=e?this.collection.getKeyAfter(e):this.collection.getFirstKey();for(;null!=n;){let e=this.collection.getItem(n);if(!e)return null;if((l||!this.isDisabled(e))&&(!t||t(e)))return n;if(n=this.collection.getKeyAfter(n),null==n)return null}return null}getKeyForItemInRowByIndex(e,t=0){if(t<0)return null;let l=this.collection.getItem(e);if(!l)return null;let n=0;for(let i of o(l,this.collection)){if(i.colSpan&&i.colSpan+n>t)return i.key??null;if(i.colSpan&&(n=n+i.colSpan-1),n===t)return i.key??null;n++}return null}getKeyBelow(e,t){let l=e,n=this.collection.getItem(l);if(!n)return null;if(this.isCell(n)&&(l=n.parentKey??null),null==l)return null;if(l=this.findNextKey(l,e=>"item"===e.type,t?.includeDisabled),null!=l){if(this.isCell(n)){let e=n.colIndex?n.colIndex:n.index;return this.getKeyForItemInRowByIndex(l,e)}if("row"===this.focusMode)return l}return null}getKeyAbove(e,t){let l=e,n=this.collection.getItem(l);if(!n)return null;if(this.isCell(n)&&(l=n.parentKey??null),null==l)return null;if(l=this.findPreviousKey(l,e=>"item"===e.type,t?.includeDisabled),null!=l){if(this.isCell(n)){let e=n.colIndex?n.colIndex:n.index;return this.getKeyForItemInRowByIndex(l,e)}if("row"===this.focusMode)return l}return null}getKeyRightOf(e){let t=this.collection.getItem(e);if(!t)return null;if(this.isRow(t)){let e=o(t,this.collection);return("rtl"===this.direction?r(e)?.key:s(e)?.key)??null}if(this.isCell(t)&&null!=t.parentKey){let l=this.collection.getItem(t.parentKey);if(!l)return null;let n=o(l,this.collection),i=("rtl"===this.direction?a(n,t.index-1):a(n,t.index+1))??null;return i?i.key??null:"row"===this.focusMode?t.parentKey??null:("rtl"===this.direction?this.getFirstKey(e):this.getLastKey(e))??null}return null}getKeyLeftOf(e){let t=this.collection.getItem(e);if(!t)return null;if(this.isRow(t)){let e=o(t,this.collection);return("rtl"===this.direction?s(e)?.key:r(e)?.key)??null}if(this.isCell(t)&&null!=t.parentKey){let l=this.collection.getItem(t.parentKey);if(!l)return null;let n=o(l,this.collection),i=("rtl"===this.direction?a(n,t.index+1):a(n,t.index-1))??null;return i?i.key??null:"row"===this.focusMode?t.parentKey??null:("rtl"===this.direction?this.getLastKey(e):this.getFirstKey(e))??null}return null}getFirstKey(e,t){let l,n=e??null;if(null!=n){if(l=this.collection.getItem(n),!l)return null;if(this.isCell(l)&&!t&&null!=l.parentKey){let e=this.collection.getItem(l.parentKey);return e?s(o(e,this.collection))?.key??null:null}}if(n=this.findNextKey(void 0,e=>"item"===e.type),null!=n&&(l&&this.isCell(l)&&t||"cell"===this.focusMode)){let e=this.collection.getItem(n);if(!e)return null;n=s(o(e,this.collection))?.key??null}return n}getLastKey(e,t){let l,n=e??null;if(null!=n){if(l=this.collection.getItem(n),!l)return null;if(this.isCell(l)&&!t&&null!=l.parentKey){let e=this.collection.getItem(l.parentKey);if(!e)return null;let t=o(e,this.collection);return r(t)?.key??null}}if(n=this.findPreviousKey(void 0,e=>"item"===e.type),null!=n&&(l&&this.isCell(l)&&t||"cell"===this.focLine truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,$ as t,j as s}from"./vendor-react-64fcanlc.js";import{dY as i,cD as l,dZ as a,cB as o,cC as n,bp as r,d_ as d,cK as c,d$ as u,cO as b,e0 as h,e1 as f,c$ as p,d2 as y,d3 as v,cU as g,cV as K,e2 as m,cQ as S,e3 as x,e4 as P,e5 as D,e6 as C,cR as E,c_ as w,e7 as F,e8 as M,cW as I,e9 as N,ea as j,eb as k,ec as R,ed as L,ee as H}from"./index-C-WQXF8v.js";import{a as V}from"./Checkbox-DiXDVgGl.js";import{e as T}from"./Select-B67-iUq2.js";import{T as A}from"./Toolbar-Yd2KR-zd.js";const O=new WeakMap;function $(e,t,s){if(!e)return"";return"string"==typeof t&&(t=t.replace(/\s+/g,"")),`${O.get(e)}-${s}-${t}`}class z{constructor(e,t,s,i=new Set){this.collection=e,this.flipDirection="rtl"===t,this.disabledKeys=i,this.tabDirection="horizontal"===s}getKeyLeftOf(e){return this.flipDirection?this.getNextKey(e):this.getPreviousKey(e)}getKeyRightOf(e){return this.flipDirection?this.getPreviousKey(e):this.getNextKey(e)}isDisabled(e){return this.disabledKeys.has(e)||!!this.collection.getItem(e)?.props?.isDisabled}getFirstKey(){let e=this.collection.getFirstKey();return null!=e&&this.isDisabled(e)&&(e=this.getNextKey(e)),e}getLastKey(){let e=this.collection.getLastKey();return null!=e&&this.isDisabled(e)&&(e=this.getPreviousKey(e)),e}getKeyAbove(e){return this.tabDirection?null:this.getPreviousKey(e)}getKeyBelow(e){return this.tabDirection?null:this.getNextKey(e)}getNextKey(e){let t=e;do{t=this.collection.getKeyAfter(t),null==t&&(t=this.collection.getFirstKey())}while(null!=t&&this.isDisabled(t)&&t!==e);return t}getPreviousKey(e){let t=e;do{t=this.collection.getKeyBefore(t),null==t&&(t=this.collection.getLastKey())}while(null!=t&&this.isDisabled(t)&&t!==e);return t}}function B(t){let s=function(t){let[s,i]=b(t.selectedKey,t.defaultSelectedKey??null,t.onSelectionChange),l=e.useMemo(()=>null!=s?[s]:[],[s]),{collection:a,disabledKeys:o,selectionManager:n}=T({...t,selectionMode:"single",disallowEmptySelection:!0,allowDuplicateSelectionEvents:!0,selectedKeys:l,onSelectionChange:e=>{if("all"===e)return;let l=e.values().next().value??null;l===s&&t.onSelectionChange&&t.onSelectionChange(l),i(l)}}),r=null!=s?a.getItem(s):null;return{collection:a,disabledKeys:o,selectionManager:n,selectedKey:s,setSelectedKey:i,selectedItem:r}}({...t,onSelectionChange:t.onSelectionChange?e=>{null!=e&&t.onSelectionChange?.(e)}:void 0,suppressTextValueWarning:!0,defaultSelectedKey:t.defaultSelectedKey??W(t.collection,t.disabledKeys?new Set(t.disabledKeys):new Set)??void 0}),{selectionManager:i,collection:l,selectedKey:a}=s,o=e.useRef(a);return e.useEffect(()=>{let e=a;null!=t.selectedKey||!i.isEmpty&&null!=e&&l.getItem(e)||(e=W(l,s.disabledKeys),null!=e&&i.setSelectedKeys([e])),(null!=e&&null==i.focusedKey||!i.isFocused&&e!==o.current)&&i.setFocusedKey(e),o.current=e}),{...s,isDisabled:t.isDisabled||!1}}function W(e,t){let s=null;if(e){for(s=e.getFirstKey();null!=s&&(t.has(s)||e.getItem(s)?.props?.isDisabled)&&s!==e.getLastKey();)s=e.getKeyAfter(s);null!=s&&(t.has(s)||e.getItem(s)?.props?.isDisabled)&&s===e.getLastKey()&&(s=e.getFirstKey())}return s}const U=e.createContext(null),Q=e.createContext(null),_=e.forwardRef(function(s,i){[s,i]=S(s,i,U);let{children:l,orientation:a="horizontal"}=s;return l=e.useMemo(()=>"function"==typeof l?l({orientation:a,defaultChildren:null}):l,[l,a]),t.createElement(x,{content:l},e=>t.createElement(Y,{props:s,collection:e,tabsRef:i}))});function Y({props:s,tabsRef:i,collection:a}){let{orientation:o="horizontal"}=s,r=B({...s,collection:a,children:void 0}),{focusProps:d,isFocused:c,isFocusVisible:u}=y({within:!0}),b=e.useMemo(()=>({orientation:o,isFocusWithin:c,isFocusVisible:u}),[o,c,u]),h=g({...s,defaultClassName:"react-aria-Tabs",values:b}),f=l(s,{global:!0});return t.createElement(K.div,{...n(f,h,d),ref:i,slot:s.slot||void 0,"data-focused":c||void 0,"data-orientation":o,"data-focus-visible":u||void 0,"data-disabled":r.isDisabled||void 0},t.createElement(I,{values:[[U,s],[Q,r]]},h.children))}const Z=e.forwardRef(function(s,i){return e.useContext(Q)?t.createElement(q,{props:s,forwardedRef:i}):t.createElement(h,s)});function q({props:s,forwardedRef:i}){let a=e.useContext(Q),{CollectionRoot:o}=e.useContext(C),{orientation:b="horizontal",keyboardActivation:h="automatic"}=E(U),f=p(i),{tabListProps:y}=function(t,s,i){let{orientation:l="horizontal",keyboardActivation:a="automatic"}=t,{collection:o,selectionManager:b,disabledKeys:h}=s,{direction:f}=r(),p=e.useMemo(()=>new z(o,f,l,h),[o,h,l,f]),{collectionProps:y}=d({ref:i,selectionManager:b,keyboardDelegate:p,selectOnFocus:"automatic"===a,disallowEmptySelection:!0,scrollRef:i,linkBehavior:"selection"}),v=c();O.set(s,v);let g=u({...t,id:v});return{tabListProps:{...n(y,g),role:"tablist","aria-orientation":l,tabIndex:void 0}}}({...s,orientation:b,keyboardActivation:h},a,f),v=g({...s,children:null,defaultClassName:"react-aria-TabList",values:{orientation:b,state:a}}),m=l(s,{global:!0});return delete m.id,t.createElement(K.div,{...n(m,v,y),ref:f,"data-orientation":b||void 0Line truncated
|
||||
import{r as e,$ as t,j as s}from"./vendor-react-64fcanlc.js";import{dY as i,cD as l,dZ as a,cB as o,cC as n,bp as r,d_ as d,cK as c,d$ as u,cO as b,e0 as h,e1 as f,c$ as p,d2 as y,d3 as v,cU as g,cV as K,e2 as m,cQ as S,e3 as x,e4 as P,e5 as D,e6 as C,cR as E,c_ as w,e7 as F,e8 as M,cW as I,e9 as N,ea as j,eb as k,ec as R,ed as L,ee as H}from"./index-XeGFdFb3.js";import{a as V}from"./Checkbox-BewExwKL.js";import{e as T}from"./Select-OqnbuzuK.js";import{T as A}from"./Toolbar-CFyWgMbW.js";const O=new WeakMap;function $(e,t,s){if(!e)return"";return"string"==typeof t&&(t=t.replace(/\s+/g,"")),`${O.get(e)}-${s}-${t}`}class z{constructor(e,t,s,i=new Set){this.collection=e,this.flipDirection="rtl"===t,this.disabledKeys=i,this.tabDirection="horizontal"===s}getKeyLeftOf(e){return this.flipDirection?this.getNextKey(e):this.getPreviousKey(e)}getKeyRightOf(e){return this.flipDirection?this.getPreviousKey(e):this.getNextKey(e)}isDisabled(e){return this.disabledKeys.has(e)||!!this.collection.getItem(e)?.props?.isDisabled}getFirstKey(){let e=this.collection.getFirstKey();return null!=e&&this.isDisabled(e)&&(e=this.getNextKey(e)),e}getLastKey(){let e=this.collection.getLastKey();return null!=e&&this.isDisabled(e)&&(e=this.getPreviousKey(e)),e}getKeyAbove(e){return this.tabDirection?null:this.getPreviousKey(e)}getKeyBelow(e){return this.tabDirection?null:this.getNextKey(e)}getNextKey(e){let t=e;do{t=this.collection.getKeyAfter(t),null==t&&(t=this.collection.getFirstKey())}while(null!=t&&this.isDisabled(t)&&t!==e);return t}getPreviousKey(e){let t=e;do{t=this.collection.getKeyBefore(t),null==t&&(t=this.collection.getLastKey())}while(null!=t&&this.isDisabled(t)&&t!==e);return t}}function B(t){let s=function(t){let[s,i]=b(t.selectedKey,t.defaultSelectedKey??null,t.onSelectionChange),l=e.useMemo(()=>null!=s?[s]:[],[s]),{collection:a,disabledKeys:o,selectionManager:n}=T({...t,selectionMode:"single",disallowEmptySelection:!0,allowDuplicateSelectionEvents:!0,selectedKeys:l,onSelectionChange:e=>{if("all"===e)return;let l=e.values().next().value??null;l===s&&t.onSelectionChange&&t.onSelectionChange(l),i(l)}}),r=null!=s?a.getItem(s):null;return{collection:a,disabledKeys:o,selectionManager:n,selectedKey:s,setSelectedKey:i,selectedItem:r}}({...t,onSelectionChange:t.onSelectionChange?e=>{null!=e&&t.onSelectionChange?.(e)}:void 0,suppressTextValueWarning:!0,defaultSelectedKey:t.defaultSelectedKey??W(t.collection,t.disabledKeys?new Set(t.disabledKeys):new Set)??void 0}),{selectionManager:i,collection:l,selectedKey:a}=s,o=e.useRef(a);return e.useEffect(()=>{let e=a;null!=t.selectedKey||!i.isEmpty&&null!=e&&l.getItem(e)||(e=W(l,s.disabledKeys),null!=e&&i.setSelectedKeys([e])),(null!=e&&null==i.focusedKey||!i.isFocused&&e!==o.current)&&i.setFocusedKey(e),o.current=e}),{...s,isDisabled:t.isDisabled||!1}}function W(e,t){let s=null;if(e){for(s=e.getFirstKey();null!=s&&(t.has(s)||e.getItem(s)?.props?.isDisabled)&&s!==e.getLastKey();)s=e.getKeyAfter(s);null!=s&&(t.has(s)||e.getItem(s)?.props?.isDisabled)&&s===e.getLastKey()&&(s=e.getFirstKey())}return s}const U=e.createContext(null),Q=e.createContext(null),_=e.forwardRef(function(s,i){[s,i]=S(s,i,U);let{children:l,orientation:a="horizontal"}=s;return l=e.useMemo(()=>"function"==typeof l?l({orientation:a,defaultChildren:null}):l,[l,a]),t.createElement(x,{content:l},e=>t.createElement(Y,{props:s,collection:e,tabsRef:i}))});function Y({props:s,tabsRef:i,collection:a}){let{orientation:o="horizontal"}=s,r=B({...s,collection:a,children:void 0}),{focusProps:d,isFocused:c,isFocusVisible:u}=y({within:!0}),b=e.useMemo(()=>({orientation:o,isFocusWithin:c,isFocusVisible:u}),[o,c,u]),h=g({...s,defaultClassName:"react-aria-Tabs",values:b}),f=l(s,{global:!0});return t.createElement(K.div,{...n(f,h,d),ref:i,slot:s.slot||void 0,"data-focused":c||void 0,"data-orientation":o,"data-focus-visible":u||void 0,"data-disabled":r.isDisabled||void 0},t.createElement(I,{values:[[U,s],[Q,r]]},h.children))}const Z=e.forwardRef(function(s,i){return e.useContext(Q)?t.createElement(q,{props:s,forwardedRef:i}):t.createElement(h,s)});function q({props:s,forwardedRef:i}){let a=e.useContext(Q),{CollectionRoot:o}=e.useContext(C),{orientation:b="horizontal",keyboardActivation:h="automatic"}=E(U),f=p(i),{tabListProps:y}=function(t,s,i){let{orientation:l="horizontal",keyboardActivation:a="automatic"}=t,{collection:o,selectionManager:b,disabledKeys:h}=s,{direction:f}=r(),p=e.useMemo(()=>new z(o,f,l,h),[o,h,l,f]),{collectionProps:y}=d({ref:i,selectionManager:b,keyboardDelegate:p,selectOnFocus:"automatic"===a,disallowEmptySelection:!0,scrollRef:i,linkBehavior:"selection"}),v=c();O.set(s,v);let g=u({...t,id:v});return{tabListProps:{...n(y,g),role:"tablist","aria-orientation":l,tabIndex:void 0}}}({...s,orientation:b,keyboardActivation:h},a,f),v=g({...s,children:null,defaultClassName:"react-aria-TabList",values:{orientation:b,state:a}}),m=l(s,{global:!0});return delete m.id,t.createElement(K.div,{...n(m,v,y),ref:f,"data-orientation":b||void 0Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as n,a as t}from"./vendor-react-64fcanlc.js";import{l as r,ak as l,dh as s,cn as a,di as c,b7 as o}from"./index-C-WQXF8v.js";import{L as u}from"./AppearanceControls-CRuy5orf.js";function i({children:e,tone:t,action:r}){return n.jsxs("span",{className:o("rp-tag",t),children:[n.jsx("span",{className:"rp-tag-label",children:e}),r]})}function g({label:e,children:t}){return n.jsx("div",{className:"rp-tags",role:"group","aria-label":e,children:t})}function h({href:e,children:t}){return n.jsx(u,{href:e,className:"rp-tag rp-tag-link",children:n.jsx("span",{className:"rp-tag-label",children:t})})}function d(e,n,t,r){const l=e=>e<=t+.01,s=e.reduce((e,n)=>[...e,e[e.length-1]+n+r],[0]);if(l(s[e.length]-r))return e.length;let a=e.length-1;for(;a>0&&!l(s[a]+n(e.length-a));)a--;return a}function f({count:t,label:r,names:l}){const[o,u]=e.useState(!1);return n.jsxs(s,{delay:400,isOpen:o,onOpenChange:u,shouldCloseOnPress:!1,children:[n.jsx(a,{className:"rp-tag rp-tag-more","aria-label":r,onPress:e=>u(n=>"touch"!==e.pointerType||!n),children:n.jsxs("span",{className:"rp-tag-label",children:["+",t]})}),n.jsx(c,{children:l})]})}const p=e=>n=>e.more[String(n).length-1],m=new Map;let b=null;function j(e){const n=e.filter(e=>null!==e);n.length&&t.flushSync(()=>n.forEach(e=>e()))}function x({label:t,items:s,more:a}){const c=r(),o=e.useRef(null),u=e.useRef(null),i=e.useRef(new Set),g=`${c}\n${s.map(e=>e.label).join("\n")}`,[x,y]=e.useState({key:g,count:null}),w=x.key===g?x.count:null;e.useLayoutEffect(()=>{const e=o.current;if(null!==w||!e?.getClientRects().length)return;const n=[...e.children].map(e=>e.getBoundingClientRect().width),t={key:g,tags:n.slice(0,s.length),more:n.slice(s.length),gap:Number.parseFloat(getComputedStyle(e).columnGap)||0};u.current=t,y({key:g,count:d(t.tags,p(t),e.getBoundingClientRect().width,t.gap)})},[x,g,w,s.length]),e.useLayoutEffect(()=>{const e=o.current;if(!e)return;const n=()=>y({key:g,count:null});m.set(e,{remeasure:n,read:()=>{const t=u.current;if(!e.getClientRects().length)return null;const r=[...e.children].filter(e=>!e.classList.contains("rp-tag-more"));if(t?.key!==g||r.some((e,n)=>Math.abs(e.getBoundingClientRect().width-t.tags[n])>.5))return n;const l=d(t.tags,p(t),e.getBoundingClientRect().width,t.gap);return l===w?null:()=>y({key:g,count:l})}});const t=(b||(b=new ResizeObserver(e=>{j([...new Set(e.map(e=>e.target.closest(".rp-tags[data-fit]")))].map(e=>(e&&m.get(e)?.read())??null))}),document.fonts?.addEventListener("loadingdone",()=>j([...m.values()].map(e=>e.remeasure)))),b),r=new Set([e,...e.children]);for(const l of i.current)r.has(l)||t.unobserve(l);for(const l of r)i.current.has(l)||t.observe(l);i.current=r}),e.useLayoutEffect(()=>{const e=o.current,n=i;return()=>{e&&m.delete(e);for(const e of n.current)b?.unobserve(e);n.current=new Set}},[]);const C=l(c,s.map(e=>e.label)),R=null===w?0:s.length-w,S=null===w&&s.length?Array.from({length:String(s.length).length},(e,n)=>10**(n+1)-1):[];return n.jsxs("div",{ref:o,className:"rp-tags",role:"group","aria-label":t,"data-fit":"",children:[s.slice(0,w??s.length).map(e=>n.jsx(h,{href:e.href,children:e.label},e.id)),S.map(e=>n.jsx(f,{count:e,label:a(e),names:C},e)),R>0&&n.jsx(f,{count:R,label:a(R),names:C})]})}export{x as F,h as L,g as T,i as a};
|
||||
import{r as e,j as n,a as t}from"./vendor-react-64fcanlc.js";import{l as r,ak as l,dh as s,cn as a,di as c,b7 as o}from"./index-XeGFdFb3.js";import{L as u}from"./AppearanceControls-Q-jHRGz9.js";function i({children:e,tone:t,action:r}){return n.jsxs("span",{className:o("rp-tag",t),children:[n.jsx("span",{className:"rp-tag-label",children:e}),r]})}function g({label:e,children:t}){return n.jsx("div",{className:"rp-tags",role:"group","aria-label":e,children:t})}function h({href:e,children:t}){return n.jsx(u,{href:e,className:"rp-tag rp-tag-link",children:n.jsx("span",{className:"rp-tag-label",children:t})})}function d(e,n,t,r){const l=e=>e<=t+.01,s=e.reduce((e,n)=>[...e,e[e.length-1]+n+r],[0]);if(l(s[e.length]-r))return e.length;let a=e.length-1;for(;a>0&&!l(s[a]+n(e.length-a));)a--;return a}function f({count:t,label:r,names:l}){const[o,u]=e.useState(!1);return n.jsxs(s,{delay:400,isOpen:o,onOpenChange:u,shouldCloseOnPress:!1,children:[n.jsx(a,{className:"rp-tag rp-tag-more","aria-label":r,onPress:e=>u(n=>"touch"!==e.pointerType||!n),children:n.jsxs("span",{className:"rp-tag-label",children:["+",t]})}),n.jsx(c,{children:l})]})}const p=e=>n=>e.more[String(n).length-1],m=new Map;let b=null;function j(e){const n=e.filter(e=>null!==e);n.length&&t.flushSync(()=>n.forEach(e=>e()))}function x({label:t,items:s,more:a}){const c=r(),o=e.useRef(null),u=e.useRef(null),i=e.useRef(new Set),g=`${c}\n${s.map(e=>e.label).join("\n")}`,[x,y]=e.useState({key:g,count:null}),w=x.key===g?x.count:null;e.useLayoutEffect(()=>{const e=o.current;if(null!==w||!e?.getClientRects().length)return;const n=[...e.children].map(e=>e.getBoundingClientRect().width),t={key:g,tags:n.slice(0,s.length),more:n.slice(s.length),gap:Number.parseFloat(getComputedStyle(e).columnGap)||0};u.current=t,y({key:g,count:d(t.tags,p(t),e.getBoundingClientRect().width,t.gap)})},[x,g,w,s.length]),e.useLayoutEffect(()=>{const e=o.current;if(!e)return;const n=()=>y({key:g,count:null});m.set(e,{remeasure:n,read:()=>{const t=u.current;if(!e.getClientRects().length)return null;const r=[...e.children].filter(e=>!e.classList.contains("rp-tag-more"));if(t?.key!==g||r.some((e,n)=>Math.abs(e.getBoundingClientRect().width-t.tags[n])>.5))return n;const l=d(t.tags,p(t),e.getBoundingClientRect().width,t.gap);return l===w?null:()=>y({key:g,count:l})}});const t=(b||(b=new ResizeObserver(e=>{j([...new Set(e.map(e=>e.target.closest(".rp-tags[data-fit]")))].map(e=>(e&&m.get(e)?.read())??null))}),document.fonts?.addEventListener("loadingdone",()=>j([...m.values()].map(e=>e.remeasure)))),b),r=new Set([e,...e.children]);for(const l of i.current)r.has(l)||t.unobserve(l);for(const l of r)i.current.has(l)||t.observe(l);i.current=r}),e.useLayoutEffect(()=>{const e=o.current,n=i;return()=>{e&&m.delete(e);for(const e of n.current)b?.unobserve(e);n.current=new Set}},[]);const C=l(c,s.map(e=>e.label)),R=null===w?0:s.length-w,S=null===w&&s.length?Array.from({length:String(s.length).length},(e,n)=>10**(n+1)-1):[];return n.jsxs("div",{ref:o,className:"rp-tags",role:"group","aria-label":t,"data-fit":"",children:[s.slice(0,w??s.length).map(e=>n.jsx(h,{href:e.href,children:e.label},e.id)),S.map(e=>n.jsx(f,{count:e,label:a(e),names:C},e)),R>0&&n.jsx(f,{count:R,label:a(R),names:C})]})}export{x as F,h as L,g as T,i as a};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{j as a}from"./vendor-react-64fcanlc.js";import{al as s,l as r,dR as t,T as o,dQ as e,a1 as n}from"./index-C-WQXF8v.js";function d({at:d}){const i=s[r()],c=t();return a.jsx(o,{text:d?n(d,i):void 0,children:e(d,i,c)})}export{d as T};
|
||||
import{j as a}from"./vendor-react-64fcanlc.js";import{al as s,l as r,dR as t,T as o,dQ as e,a1 as n}from"./index-XeGFdFb3.js";function d({at:d}){const i=s[r()],c=t();return a.jsx(o,{text:d?n(d,i):void 0,children:e(d,i,c)})}export{d as T};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{j as a}from"./vendor-react-64fcanlc.js";import{b7 as r}from"./index-C-WQXF8v.js";function o({page:o,className:e,children:s,...t}){return a.jsx("div",{...t,className:r("rp-toolbar",e),"data-page-toolbar":o||void 0,children:s})}export{o as T};
|
||||
import{j as a}from"./vendor-react-64fcanlc.js";import{b7 as r}from"./index-XeGFdFb3.js";function o({page:o,className:e,children:s,...t}){return a.jsx("div",{...t,className:r("rp-toolbar",e),"data-page-toolbar":o||void 0,children:s})}export{o as T};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as e,j as s}from"./vendor-react-64fcanlc.js";import{bS as r,u as a,l as i,a9 as l,q as n,r as o,z as t,A as d,c9 as u,a6 as p,a3 as m,aK as c,p as j,bF as v,cg as b,bG as h,B as _,ci as f,T as x,C as y}from"./index-C-WQXF8v.js";import{u as g,r as k}from"./flows-Bm5f0qGx.js";import{c as w,h as N,z as q,g as C,q as M,R as A,L,D as T,K as D}from"./logs-B-rowQjz.js";import{e as R,t as S,c as V,n as E,d as F,q as P,a as I,b as O}from"./Rules-Bsj3Y9L1.js";import{a as Q,p as W}from"./probe-BRKajYpx.js";import{u as z,R as K}from"./useQuickRule-Dg2XjZII.js";import{d as $}from"./activity-BQ91A1_2.js";import{L as H}from"./AppearanceControls-CRuy5orf.js";import{N as B,t as G,n as J}from"./NumberField-Cd9mdKJI.js";import{T as U}from"./Toolbar-Yd2KR-zd.js";import{D as X}from"./Table-DDHjB8la.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Select-B67-iUq2.js";import"./ItemText-CnmwoDur.js";import"./nodes-D39HfuKn.js";import"./Tabs-DVxF89X7.js";import"./Checkbox-DiXDVgGl.js";import"./DaeCode-DEjXqvav.js";import"./daeTokens-BVtuNnWZ.js";import"./ConditionRow-EvG4rKpT.js";import"./Coverage-BvvFzjoN.js";import"./rule-C502aJft.js";import"./labels-D8xxfRTQ.js";import"./nav-DN3M4Ewk.js";import"./recorder-BHyqDNp5.js";import"./geodataUpdate-b_z-ddHs.js";/* empty css */import"./LinkOut-Ff0bS5Fx.js";import"./SearchSelect-ZK-gprFX.js";import"./SearchList-B2h2qAe4.js";import"./Virtualizer-DBBzjqSD.js";import"./AddCircle-Bsrf2UoO.js";const Y=e=>/^\d+$/.test(e)&&Number(e)>=1&&Number(e)<=65535,Z={none:"rule.resolveNone",live:"rule.resolveLive",query:"rule.resolveQuery"};function ee({form:s,setForm:j,advanced:v,setAdvanced:b,touched:h},_){const f=a(),x=i(),y=l(),A=n(),L=A.data?.resources,T=w(o(L,"groups",{whileLoading:!1})),D=N(o(L,"nodes",{whileLoading:!1})),K=g(o(L,"rules",{whileLoading:!1})),H=q(D.refetch),{choices:B}=H,G=z(_),J=e.useMemo(()=>new Map(T.data?.map(e=>[e.name,e])??[]),[T.data]),U=e.useMemo(()=>new Map(T.data?.map(e=>[e.id,e])??[]),[T.data]),X=e.useMemo(()=>new Map(D.data?.map(e=>[e.id,e])??[]),[D.data]),ee=e.useMemo(()=>new Map(K.data?.rules.map(e=>[e.rule_id,e])??[]),[K.data]),[se,re]=e.useState(null),ae=o(L,"providers",{whileLoading:!1}),ie=C(!!se&&ae),le=o(L,"groups",{whileLoading:!1}),{busy:ne,error:oe,run:te}=t(),de=oe??A.error,ue=e.useEffectEvent(e=>d("negative",f("rule.traceFailed"),u(e,f)));e.useEffect(()=>{de&&ue(de)},[de]);const pe=s.domain.trim()||s.dst_ip.trim()?s.dst_ip.trim()&&!r(s.dst_ip)?{field:"dst_ip",key:"ui.invalidIp"}:Y(s.dst_port)?s.src_ip.trim()&&!r(s.src_ip)?{field:"src_ip",key:"ui.invalidIp"}:s.src_port.trim()&&!Y(s.src_port)?{field:"src_port",key:"rule.invalidPort"}:!s.dscp.trim()||(me=s.dscp,/^\d+$/.test(me)&&Number(me)>=0&&Number(me)<=63)?"live"!==s.resolve&&"query"!==s.resolve||s.domain.trim()?"live"!==s.resolve&&"query"!==s.resolve||!s.dst_ip.trim()?null:{field:"dst_ip",key:"rule.invalidLive"}:{field:"domain",key:"rule.invalidLive"}:{field:"dscp",key:"rule.invalidDscp"}:{field:"dst_port",key:"rule.invalidPort"}:{field:"domain",key:"rule.invalidTarget"};var me;const ce=h?pe:null,je=A.data?.resources.routing_trace,ve=je?.resolve_modes??[],be=A.data?.resources.dns_query,he=be?.record_types,_e=e.useMemo(()=>(he??[]).filter(e=>"A"===e||"AAAA"===e),[he]),fe=be?.limits?.max_types_per_request??1,xe=[...ve,...!ve.includes("live")&&ve.includes("none")&&be?.available&&_e.length?["query"]:[]],ye=!1!==je?.available,ge=""!==s.domain.trim()&&!s.dst_ip.trim(),ke=s.resolve??(ge&&xe.includes("live")?"live":ge&&xe.includes("query")?"query":"none"),we=!pe&&ye&&xe.includes(ke),Ne=e.useCallback(async()=>{if(ne||!we)return;const e=function(e){const s=e=>r(e),a={network:e.network,dst_port:Number(e.dst_port),...e.domain.trim()?{domain:e.domain.trim()}:{dst_ip:s(e.dst_ip)}};return e.domain.trim()&&e.dst_ip.trim()&&(a.dst_ip=s(e.dst_ip)),e.src_ip.trim()&&(a.src_ip=s(e.src_ip)),e.src_port.trim()&&(a.src_port=Number(e.src_port)),e.pname.trim()&&(a.pname=e.pname.trim()),e.dscp.trim()&&(a.dscp=Number(e.dscp)),a}(s),a=await te("trace",s=>k({...y,dnsQuery:(e,r)=>M(y.dnsQuery,e,r,fe,s)},{input:e,resolve:ke,recordTypes:_e},s));re(a?{run:a,input:e}:null)},[y,ne,we,s,ke,_e,fe,te]),qe=K.data?.generation_id,Ce=e.useMemo(()=>se?.run.traces.flatMap(e=>e.evaluations.map(s=>({evaluation:s,traced:e.generation_id,current:qe===e.generation_id}))).map(({evaluation:e,traced:s,current:r},a)=>{const i=e.rules.find(e=>"matched"===e.result),l="determinate"!==e.decision&&!e.outbound&&r?(i&&ee.get(i.rule_id)?.outbound)??null:null,n=e.outbound??l,o=n&&!p(n)?m(n,se.input.network,J,U,X):null,t=R(e,a,se.input.domain??void 0,l,o,!!o?.node&&B(o.node).length>0,H.busy,f,x);return{...t,rows:t.rows.map(e=>({...e,href:$(e.id,r&&ee.has(e.id))})),links:V(o,le,ae?ie.data?.providers:[],f),seed:S(se.input,e,s)}})??[],[se,qe,ee,J,U,X,le,ae,ie.data,B,H.busy,f,x]),Me=e.useMemo(()=>se?{status:I(se.run.traces[0],se.run.query,f,x),query:se.run.query&&{...P(se.run.query,f,x),links:E(se.run.query.domain,L,f)},dns:se.run.traces.flatMap(e=>e.Line truncated
|
||||
import{r as e,j as s}from"./vendor-react-64fcanlc.js";import{bS as r,u as a,l as i,a9 as l,q as n,r as o,z as t,A as d,c9 as u,a6 as p,a3 as m,aK as c,p as j,bF as v,cg as b,bG as h,B as _,ci as f,T as x,C as y}from"./index-XeGFdFb3.js";import{u as g,r as k}from"./flows-CjEC9Jxw.js";import{c as w,h as N,z as q,g as C,q as M,R as A,L,D as T,K as D}from"./logs-DNePHVHd.js";import{e as R,t as S,c as V,n as E,d as F,q as P,a as I,b as O}from"./Rules-gNsJvc3i.js";import{a as Q,p as W}from"./probe-Bp5QvROd.js";import{u as z,R as K}from"./useQuickRule-8yoKk9d5.js";import{d as $}from"./activity-7OeQMmIs.js";import{L as H}from"./AppearanceControls-Q-jHRGz9.js";import{N as B,t as G,n as J}from"./NumberField-Bo9iJ94r.js";import{T as U}from"./Toolbar-CFyWgMbW.js";import{D as X}from"./Table-DqqJleJD.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./Select-OqnbuzuK.js";import"./ItemText-Bvif-kkw.js";import"./nodes-Bm1vmvln.js";import"./Tabs-BGWzF0yW.js";import"./Checkbox-BewExwKL.js";import"./DaeCode-DEjXqvav.js";import"./daeTokens-BVtuNnWZ.js";import"./ConditionRow-mKWPcuZs.js";import"./Coverage-fmBkVF9H.js";import"./rule-BUktGcKO.js";import"./labels-D8xxfRTQ.js";import"./nav-4iHQTLCW.js";import"./recorder-BHyqDNp5.js";import"./geodataUpdate-Blcy6CRD.js";/* empty css */import"./LinkOut-BfQApT3z.js";import"./SearchSelect-BVGce3l_.js";import"./SearchList-DWooTdFX.js";import"./Virtualizer-FvdVRagH.js";import"./AddCircle-7x8u9Pw1.js";const Y=e=>/^\d+$/.test(e)&&Number(e)>=1&&Number(e)<=65535,Z={none:"rule.resolveNone",live:"rule.resolveLive",query:"rule.resolveQuery"};function ee({form:s,setForm:j,advanced:v,setAdvanced:b,touched:h},_){const f=a(),x=i(),y=l(),A=n(),L=A.data?.resources,T=w(o(L,"groups",{whileLoading:!1})),D=N(o(L,"nodes",{whileLoading:!1})),K=g(o(L,"rules",{whileLoading:!1})),H=q(D.refetch),{choices:B}=H,G=z(_),J=e.useMemo(()=>new Map(T.data?.map(e=>[e.name,e])??[]),[T.data]),U=e.useMemo(()=>new Map(T.data?.map(e=>[e.id,e])??[]),[T.data]),X=e.useMemo(()=>new Map(D.data?.map(e=>[e.id,e])??[]),[D.data]),ee=e.useMemo(()=>new Map(K.data?.rules.map(e=>[e.rule_id,e])??[]),[K.data]),[se,re]=e.useState(null),ae=o(L,"providers",{whileLoading:!1}),ie=C(!!se&&ae),le=o(L,"groups",{whileLoading:!1}),{busy:ne,error:oe,run:te}=t(),de=oe??A.error,ue=e.useEffectEvent(e=>d("negative",f("rule.traceFailed"),u(e,f)));e.useEffect(()=>{de&&ue(de)},[de]);const pe=s.domain.trim()||s.dst_ip.trim()?s.dst_ip.trim()&&!r(s.dst_ip)?{field:"dst_ip",key:"ui.invalidIp"}:Y(s.dst_port)?s.src_ip.trim()&&!r(s.src_ip)?{field:"src_ip",key:"ui.invalidIp"}:s.src_port.trim()&&!Y(s.src_port)?{field:"src_port",key:"rule.invalidPort"}:!s.dscp.trim()||(me=s.dscp,/^\d+$/.test(me)&&Number(me)>=0&&Number(me)<=63)?"live"!==s.resolve&&"query"!==s.resolve||s.domain.trim()?"live"!==s.resolve&&"query"!==s.resolve||!s.dst_ip.trim()?null:{field:"dst_ip",key:"rule.invalidLive"}:{field:"domain",key:"rule.invalidLive"}:{field:"dscp",key:"rule.invalidDscp"}:{field:"dst_port",key:"rule.invalidPort"}:{field:"domain",key:"rule.invalidTarget"};var me;const ce=h?pe:null,je=A.data?.resources.routing_trace,ve=je?.resolve_modes??[],be=A.data?.resources.dns_query,he=be?.record_types,_e=e.useMemo(()=>(he??[]).filter(e=>"A"===e||"AAAA"===e),[he]),fe=be?.limits?.max_types_per_request??1,xe=[...ve,...!ve.includes("live")&&ve.includes("none")&&be?.available&&_e.length?["query"]:[]],ye=!1!==je?.available,ge=""!==s.domain.trim()&&!s.dst_ip.trim(),ke=s.resolve??(ge&&xe.includes("live")?"live":ge&&xe.includes("query")?"query":"none"),we=!pe&&ye&&xe.includes(ke),Ne=e.useCallback(async()=>{if(ne||!we)return;const e=function(e){const s=e=>r(e),a={network:e.network,dst_port:Number(e.dst_port),...e.domain.trim()?{domain:e.domain.trim()}:{dst_ip:s(e.dst_ip)}};return e.domain.trim()&&e.dst_ip.trim()&&(a.dst_ip=s(e.dst_ip)),e.src_ip.trim()&&(a.src_ip=s(e.src_ip)),e.src_port.trim()&&(a.src_port=Number(e.src_port)),e.pname.trim()&&(a.pname=e.pname.trim()),e.dscp.trim()&&(a.dscp=Number(e.dscp)),a}(s),a=await te("trace",s=>k({...y,dnsQuery:(e,r)=>M(y.dnsQuery,e,r,fe,s)},{input:e,resolve:ke,recordTypes:_e},s));re(a?{run:a,input:e}:null)},[y,ne,we,s,ke,_e,fe,te]),qe=K.data?.generation_id,Ce=e.useMemo(()=>se?.run.traces.flatMap(e=>e.evaluations.map(s=>({evaluation:s,traced:e.generation_id,current:qe===e.generation_id}))).map(({evaluation:e,traced:s,current:r},a)=>{const i=e.rules.find(e=>"matched"===e.result),l="determinate"!==e.decision&&!e.outbound&&r?(i&&ee.get(i.rule_id)?.outbound)??null:null,n=e.outbound??l,o=n&&!p(n)?m(n,se.input.network,J,U,X):null,t=R(e,a,se.input.domain??void 0,l,o,!!o?.node&&B(o.node).length>0,H.busy,f,x);return{...t,rows:t.rows.map(e=>({...e,href:$(e.id,r&&ee.has(e.id))})),links:V(o,le,ae?ie.data?.providers:[],f),seed:S(se.input,e,s)}})??[],[se,qe,ee,J,U,X,le,ae,ie.data,B,H.busy,f,x]),Me=e.useMemo(()=>se?{status:I(se.run.traces[0],se.run.query,f,x),query:se.run.query&&{...P(se.run.query,f,x),links:E(se.run.query.domain,L,f)},dns:se.run.traces.flatMap(e=>e.Line truncated
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{eg as t,bp as e,cN as i,el as n,eZ as s,e_ as o,es as r,ez as l,eP as a,eR as h,e$ as d,e6 as u,f0 as c}from"./index-C-WQXF8v.js";import{r as y,$ as g,a as f}from"./vendor-react-64fcanlc.js";class p{constructor(t=0,e=0){this.x=t,this.y=e}copy(){return new p(this.x,this.y)}equals(t){return this.x===t.x&&this.y===t.y}isOrigin(){return 0===this.x&&0===this.y}}class w{constructor(t=0,e=0,i=0,n=0){this.x=t,this.y=e,this.width=i,this.height=n}get maxX(){return this.x+this.width}get maxY(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new p(this.x,this.y)}get topRight(){return new p(this.maxX,this.y)}get bottomLeft(){return new p(this.x,this.maxY)}get bottomRight(){return new p(this.maxX,this.maxY)}intersects(t){return this.area>0&&t.area>0&&this.x<=t.x+t.width&&t.x<=this.x+this.width&&this.y<=t.y+t.height&&t.y<=this.y+this.height}containsRect(t){return this.x<=t.x&&this.y<=t.y&&this.maxX>=t.maxX&&this.maxY>=t.maxY}containsPoint(t){return this.x<=t.x&&this.y<=t.y&&this.maxX>=t.x&&this.maxY>=t.y}getCornerInRect(t){for(let e of["topLeft","topRight","bottomLeft","bottomRight"])if(t.containsPoint(this[e]))return e;return null}equals(t){return t.x===this.x&&t.y===this.y&&t.width===this.width&&t.height===this.height}pointEquals(t){return this.x===t.x&&this.y===t.y}sizeEquals(t){return this.width===t.width&&this.height===t.height}union(t){let e=Math.min(this.x,t.x),i=Math.min(this.y,t.y),n=Math.max(this.maxX,t.maxX)-e,s=Math.max(this.maxY,t.maxY)-i;return new w(e,i,n,s)}intersection(t){if(!this.intersects(t))return new w(0,0,0,0);let e=Math.max(this.x,t.x),i=Math.max(this.y,t.y);return new w(e,i,Math.min(this.maxX,t.maxX)-e,Math.min(this.maxY,t.maxY)-i)}copy(){return new w(this.x,this.y,this.width,this.height)}}class z{constructor(t=0,e=0){this.width=Math.max(t,0),this.height=Math.max(e,0)}copy(){return new z(this.width,this.height)}equals(t){return this.width===t.width&&this.height===t.height}get area(){return this.width*this.height}}let v=0;class m{constructor(t,e){this.virtualizer=t,this.key=++v,this.viewType=e,this.children=new Set,this.reusableViews=new Map,this.layoutInfo=null,this.content=null,this.rendered=null}prepareForReuse(){this.content=null,this.rendered=null,this.layoutInfo=null}getReusableView(t){let e=this.reusableViews.get(t);return e&&e.length>0?e.shift():new b(this.virtualizer,this,t)}reuseChild(t){t.prepareForReuse();let e=this.reusableViews.get(t.viewType);e||(e=[],this.reusableViews.set(t.viewType,e)),e.push(t)}}class S extends m{constructor(t){super(t,"root")}}class b extends m{constructor(t,e,i){super(t,i),this.parent=e}}class x{setVisibleRect(t){let e=performance.now()-this.startTime;e<500&&(t.x!==this.visibleRect.x&&e>0&&(this.velocity.x=(t.x-this.visibleRect.x)/e),t.y!==this.visibleRect.y&&e>0&&(this.velocity.y=(t.y-this.visibleRect.y)/e)),this.startTime=performance.now(),this.visibleRect=t}getOverscannedRect(){let t=this.visibleRect.copy(),e=this.visibleRect.height/3;t.height+=e,this.velocity.y<0&&(t.y-=e);let i=this.visibleRect.width/3;return t.width+=i,this.velocity.x<0&&(t.x-=i),t}constructor(){this.startTime=0,this.velocity=new p(0,0),this.visibleRect=new w}}function I(t){return"x"===t?"width":"height"}function R(t,e,i,n,s){if("start"===i)return t[n]<=s;let o=I(n);return e[o]-(t[n]+t[o])<=s}function C(t,e,i,n,s,o,r,l,a,h){let d=t=>"x"===e?new w(t,a.y,a.width,a.height):new w(a.x,t,a.width,a.height);if(i){let t=function(t,e,i,n,s){let o=i(t.key);if(!o)return null;let r=o.rect[t.corner][e]-n[e]-t.offset;if(0===r)return null;let l=n[e]+r,a=I(e),h=Math.max(0,s[a]-n[a]),d=Math.max(0,Math.min(h,l));return d!==n[e]?d:null}(i,e,l,a,h);if(null!=t)return d(t)}if(n&&!s&&(!o||r>0)){let i=d(function(t,e,i,n){if("start"===t)return 0;let s=I(e);return Math.max(0,i[s]-n[s])}(t,e,h,a));return i.equals(a)?null:i}return null}class k{reset(){this.hasSnappedToEdge=!1,this.hadEstimatedVisibleItems=!1,this.wasNearAnchorEdge=!1}captureBeforeLayout(t,e,i){return t?function(t,e,i,n,s=()=>!0){let o=I(e),r=null;for(let[l,a]of n){if(!a||!s(a))continue;let n=a.rect.intersection(i)[o];if(a.rect.area>0&&n>=4){let n=a.rect.getCornerInRect(i)??"topLeft",s=a.rect[n][e]-i[e];(!r||("end"===t?s<r.offset:s>r.offset))&&(r={key:l,corner:n,offset:s})}}return r}(t.edge,t.axis,i,e,t.isAnchorable):null}resolveAfterLayout(t){let{anchorInfo:e,anchor:i,postLayoutInfos:n,previousVisibleRect:s,previousContentSize:o,contentSize:r,itemSizeChanged:l,isScrolling:a,getLayoutInfo:h}=t;if(!e)return null;let d=this.hadEstimatedVisibleItems,u=this.wasNearAnchorEdge,c=!1;for(let z of n.values())if(z.estimatedSize){c=!0;break}if(this.hadEstimatedVisibleItems=c,d||(this.wasNearAnchorEdge=R(s,o,e.edge,e.axis,e.threshold)),0===s.area)return null;let y="x"===e.axis?"width":"height",g=r[y]-o[y],f=!this.hasSnappedToEdge;if(this.hasSnappedToEdge=!0,!f&&0===g&&!l)return null;let p=f||d&&u||R(s,o,e.edge,e.axis,e.threshold);d||(this.wasNearAnchorEdge=p);let w=f||d&&u?null:i;return C(e.edge,e.axis,w,p,a,l,g,h,sLine truncated
|
||||
import{eg as t,bp as e,cN as i,el as n,eZ as s,e_ as o,es as r,ez as l,eP as a,eR as h,e$ as d,e6 as u,f0 as c}from"./index-XeGFdFb3.js";import{r as y,$ as g,a as f}from"./vendor-react-64fcanlc.js";class p{constructor(t=0,e=0){this.x=t,this.y=e}copy(){return new p(this.x,this.y)}equals(t){return this.x===t.x&&this.y===t.y}isOrigin(){return 0===this.x&&0===this.y}}class w{constructor(t=0,e=0,i=0,n=0){this.x=t,this.y=e,this.width=i,this.height=n}get maxX(){return this.x+this.width}get maxY(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new p(this.x,this.y)}get topRight(){return new p(this.maxX,this.y)}get bottomLeft(){return new p(this.x,this.maxY)}get bottomRight(){return new p(this.maxX,this.maxY)}intersects(t){return this.area>0&&t.area>0&&this.x<=t.x+t.width&&t.x<=this.x+this.width&&this.y<=t.y+t.height&&t.y<=this.y+this.height}containsRect(t){return this.x<=t.x&&this.y<=t.y&&this.maxX>=t.maxX&&this.maxY>=t.maxY}containsPoint(t){return this.x<=t.x&&this.y<=t.y&&this.maxX>=t.x&&this.maxY>=t.y}getCornerInRect(t){for(let e of["topLeft","topRight","bottomLeft","bottomRight"])if(t.containsPoint(this[e]))return e;return null}equals(t){return t.x===this.x&&t.y===this.y&&t.width===this.width&&t.height===this.height}pointEquals(t){return this.x===t.x&&this.y===t.y}sizeEquals(t){return this.width===t.width&&this.height===t.height}union(t){let e=Math.min(this.x,t.x),i=Math.min(this.y,t.y),n=Math.max(this.maxX,t.maxX)-e,s=Math.max(this.maxY,t.maxY)-i;return new w(e,i,n,s)}intersection(t){if(!this.intersects(t))return new w(0,0,0,0);let e=Math.max(this.x,t.x),i=Math.max(this.y,t.y);return new w(e,i,Math.min(this.maxX,t.maxX)-e,Math.min(this.maxY,t.maxY)-i)}copy(){return new w(this.x,this.y,this.width,this.height)}}class z{constructor(t=0,e=0){this.width=Math.max(t,0),this.height=Math.max(e,0)}copy(){return new z(this.width,this.height)}equals(t){return this.width===t.width&&this.height===t.height}get area(){return this.width*this.height}}let v=0;class m{constructor(t,e){this.virtualizer=t,this.key=++v,this.viewType=e,this.children=new Set,this.reusableViews=new Map,this.layoutInfo=null,this.content=null,this.rendered=null}prepareForReuse(){this.content=null,this.rendered=null,this.layoutInfo=null}getReusableView(t){let e=this.reusableViews.get(t);return e&&e.length>0?e.shift():new b(this.virtualizer,this,t)}reuseChild(t){t.prepareForReuse();let e=this.reusableViews.get(t.viewType);e||(e=[],this.reusableViews.set(t.viewType,e)),e.push(t)}}class S extends m{constructor(t){super(t,"root")}}class b extends m{constructor(t,e,i){super(t,i),this.parent=e}}class x{setVisibleRect(t){let e=performance.now()-this.startTime;e<500&&(t.x!==this.visibleRect.x&&e>0&&(this.velocity.x=(t.x-this.visibleRect.x)/e),t.y!==this.visibleRect.y&&e>0&&(this.velocity.y=(t.y-this.visibleRect.y)/e)),this.startTime=performance.now(),this.visibleRect=t}getOverscannedRect(){let t=this.visibleRect.copy(),e=this.visibleRect.height/3;t.height+=e,this.velocity.y<0&&(t.y-=e);let i=this.visibleRect.width/3;return t.width+=i,this.velocity.x<0&&(t.x-=i),t}constructor(){this.startTime=0,this.velocity=new p(0,0),this.visibleRect=new w}}function I(t){return"x"===t?"width":"height"}function R(t,e,i,n,s){if("start"===i)return t[n]<=s;let o=I(n);return e[o]-(t[n]+t[o])<=s}function C(t,e,i,n,s,o,r,l,a,h){let d=t=>"x"===e?new w(t,a.y,a.width,a.height):new w(a.x,t,a.width,a.height);if(i){let t=function(t,e,i,n,s){let o=i(t.key);if(!o)return null;let r=o.rect[t.corner][e]-n[e]-t.offset;if(0===r)return null;let l=n[e]+r,a=I(e),h=Math.max(0,s[a]-n[a]),d=Math.max(0,Math.min(h,l));return d!==n[e]?d:null}(i,e,l,a,h);if(null!=t)return d(t)}if(n&&!s&&(!o||r>0)){let i=d(function(t,e,i,n){if("start"===t)return 0;let s=I(e);return Math.max(0,i[s]-n[s])}(t,e,h,a));return i.equals(a)?null:i}return null}class k{reset(){this.hasSnappedToEdge=!1,this.hadEstimatedVisibleItems=!1,this.wasNearAnchorEdge=!1}captureBeforeLayout(t,e,i){return t?function(t,e,i,n,s=()=>!0){let o=I(e),r=null;for(let[l,a]of n){if(!a||!s(a))continue;let n=a.rect.intersection(i)[o];if(a.rect.area>0&&n>=4){let n=a.rect.getCornerInRect(i)??"topLeft",s=a.rect[n][e]-i[e];(!r||("end"===t?s<r.offset:s>r.offset))&&(r={key:l,corner:n,offset:s})}}return r}(t.edge,t.axis,i,e,t.isAnchorable):null}resolveAfterLayout(t){let{anchorInfo:e,anchor:i,postLayoutInfos:n,previousVisibleRect:s,previousContentSize:o,contentSize:r,itemSizeChanged:l,isScrolling:a,getLayoutInfo:h}=t;if(!e)return null;let d=this.hadEstimatedVisibleItems,u=this.wasNearAnchorEdge,c=!1;for(let z of n.values())if(z.estimatedSize){c=!0;break}if(this.hadEstimatedVisibleItems=c,d||(this.wasNearAnchorEdge=R(s,o,e.edge,e.axis,e.threshold)),0===s.area)return null;let y="x"===e.axis?"width":"height",g=r[y]-o[y],f=!this.hasSnappedToEdge;if(this.hasSnappedToEdge=!0,!f&&0===g&&!l)return null;let p=f||d&&u||R(s,o,e.edge,e.axis,e.threshold);d||(this.wasNearAnchorEdge=p);let w=f||d&&u?null:i;return C(e.edge,e.axis,w,p,a,l,g,h,sLine truncated
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./AreaChart-Cr3bgyVc.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./index-C-WQXF8v.js","./index-BClYdby3.css","./AreaCurve-DQSHOSpG.js","./array-C0VuvQyb.js","./nodes-D39HfuKn.js","./AppearanceControls-CRuy5orf.js","./ItemText-CnmwoDur.js","./logs-B-rowQjz.js","./Select-B67-iUq2.js","./Sparkline-hC597b6M.js","./Donut-Wa5QWvM-.js","./Editors-9WzBYpJ9.js","./GridList-CYOcEmX9.js","./Checkbox-DiXDVgGl.js","./Delete-Kzat-N3j.js","./Editors-rPgk_VZK.css","./index-BpLc3-JM.js","./geodata-X0pHz03D.js","./auth-BW588zN2.js","./auth-CGURHhWN.js"])))=>i.map(i=>d[i]);
|
||||
import{r as e,a as t,j as n}from"./vendor-react-64fcanlc.js";import{d as s,h as a,n as r,o as i,w as o,s as l,R as c,S as d,a as u,b as m,I as h,L as p,u as f,_ as g,c as b,e as x,N as v,T as y,f as j,g as w,i as k,j as N,B as M,E as _,C as S,k as C,l as E,P as L,m as z,p as R,q as O,r as P,t as A,v as q,x as I,y as T,z as D,A as H,D as F,F as B,G as $,H as V,J as W,K as U,M as G,O as K,Q as J,U as X,V as Y,W as Q,X as Z,Y as ee,Z as te,$ as ne,a0 as se,a1 as ae,a2 as re,a3 as ie,a4 as oe,a5 as le,a6 as ce,a7 as de,a8 as ue,a9 as me,aa as he,ab as pe,ac as fe,ad as ge,ae as be,af as xe,ag as ve,ah as ye,ai as je,aj as we,ak as ke,al as Ne,am as Me,an as _e,ao as Se,ap as Ce,aq as Ee,ar as Le,as as ze,at as Re,au as Oe,av as Pe,aw as Ae,ax as qe,ay as Ie,az as Te,aA as De,aB as He,aC as Fe,aD as Be,aE as $e,aF as Ve,aG as We,aH as Ue,aI as Ge,aJ as Ke,aK as Je,aL as Xe,aM as Ye,aN as Qe,aO as Ze,aP as et,aQ as tt,aR as nt,aS as st,aT as at,aU as rt,aV as it,aW as ot,aX as lt,aY as ct,aZ as dt,a_ as ut,a$ as mt,b0 as ht,b1 as pt,b2 as ft,b3 as gt,b4 as bt,b5 as xt,b6 as vt,b7 as yt,b8 as jt,b9 as wt,ba as kt,bb as Nt,bc as Mt,bd as _t,be as St,bf as Ct,bg as Et,bh as Lt,bi as zt,bj as Rt,bk as Ot,bl as Pt,bm as At,bn as qt,bo as It,bp as Tt,bq as Dt,br as Ht,bs as Ft,bt as Bt,bu as $t,bv as Vt,bw as Wt,bx as Ut}from"./index-C-WQXF8v.js";import{r as Gt,c as Kt,s as Jt,h as Xt,d as Yt,i as Qt,a as Zt,b as en,e as tn,f as nn,g as sn,j as an,n as rn,u as on,k as ln,l as cn,p as dn,m as un,o as mn,q as hn,t as pn,v as fn,w as gn,x as bn,y as xn,z as vn,A as yn,B as jn}from"./nodes-D39HfuKn.js";import{L as wn,C as kn,u as Nn,a as Mn,P as _n,S as Sn,T as Cn,b as En,c as Ln}from"./AppearanceControls-CRuy5orf.js";import{W as zn,S as Rn,u as On,a as Pn,b as An,c as qn,e as In,d as Tn,l as Dn,f as Hn,g as Fn,h as Bn,i as $n,V as Vn,C as Wn,r as Un,K as Gn,D as Kn,j as Jn,M as Xn,$ as Yn,k as Qn,m as Zn,n as es}from"./logs-B-rowQjz.js";import{I as ts,C as ns}from"./ItemText-CnmwoDur.js";const ss={"missing-offline-dependency":"config.diagnostic.offlineMissing","offline-dependency-denied":"config.diagnostic.offlineDenied","invalid-offline-dependency":"config.diagnostic.offlineInvalid","unreadable-offline-dependency":"config.diagnostic.offlineUnreadable"},as=e=>Object.hasOwn(ss,e);function rs(e,t,n){return as(e.code)?{summary:t("config.diagnostic.offline",{reason:t(ss[e.code]),which:n?t("config.diagnostic.offlineGeodata",{files:n}):t("config.diagnostic.offlineUsual")})}:s(e,t)}const is=e=>[...new Set(e.flatMap(({item:e,message:t})=>e.message&&!t.includes(e.message)?[e.message]:[]))];function os(e,t){const n=e.map(e=>e.id===t?.id?t.content:e.content).flatMap(e=>void 0===e?[]:Gt(e));return[...new Map(n.map(({name:e,written:t})=>[t,{name:e,written:t}])).values()]}const ls=e=>"<redacted>"===e.path||""===e.path,cs=e=>ls(e)?"main"===e.kind?"config.dae":`${e.kind}-${e.id.slice(0,8)}.dae`:e.path.split("/").pop()||"config.dae";function ds(e,t){const n=e.find(e=>"main"===e.kind);if(!n)return null;const s=[n,...e.filter(e=>"include"===e.kind&&!ls(e))];return t&&!s.some(e=>e.id===t.id)?null:s.map(e=>({id:e.id,...ls(e)?{}:{path:e.path},content:e.id===t?.id?t.content:e.content}))}const us=e=>e.filter(e=>"error"===e.level&&"restart-required"===e.code).map(e=>({key:/\b[a-z][a-z0-9_]*(?:\.[a-z0-9_]+)+\b/.exec(e.message)?.[0]??(e.message||null),sourceId:e.source_id,line:e.line})),ms=e=>us(e).length,hs={main:"config.kind.main",include:"config.kind.include",subscription:"nodes.kind.subscription",generated:"config.kind.generated"},ps=(e,t)=>`${e}:${t}`;function fs(e,t){const n=e.indexOf(":"),s=e.slice(0,n);return n>0&&t.includes(s)?{kind:s,value:e.slice(n+1)}:null}const gs=(e,t)=>t&&e?a("rules",{tab:"list",rule:e}):void 0,bs=(e,t,n=!1)=>a("nodes",{provider:r(e,t),q:e.name,node:n?e.id??null:null});function xs(e,t){const n=e?.find(e=>e.name===t)?.id;return n?o("",{group:n}):""}function vs(e,t,n){const s=t?.find(t=>t.name===e);return s?{label:s.name,href:a("policies",{group:s.id})}:{label:i(e,n),href:null}}const ys=["network","domain","dst_ip","dst_port","src_ip","src_port","pname"],js=e=>o("",{tab:"trace",...Object.fromEntries(ys.map(t=>[t,e[t]||null]))});function ws(e){const t=new URLSearchParams(e),n=e=>t.get(e)??"";return n("domain")||n("dst_ip")?{network:"udp"===n("network")?"udp":"tcp",domain:n("domain"),dst_ip:n("dst_ip"),dst_port:n("dst_port"),src_ip:n("src_ip"),src_port:n("src_port"),pname:n("pname")}:null}const ks=a("settings",{card:"runtime"});function Ns(e,t=Kt){return e?fs(e,t):null}function Ms(e,t){const n=e.filter(e=>"main"===e.kind||"include"===e.kind);for(const s of n){const e=Jt(s.content).blocks.find(e=>e.name===t);if(e)return a("config",{tab:"source",source:s.id,line:String(e.line+1)})}return a("config",{tab:"source",source:n.find(e=>"main"===e.kind)?.id??null})}const _s=a("activity",{card:"mode"}),Ss=a("overview",{card:"limits"}),Cs=e=>a("nodes",{nodes:JSON.stringify(e)});let Es=!1;const Ls=new Set,zs={snapshot:()=>Es,set(e){Line truncated
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./AreaChart-hPc0US1K.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./index-XeGFdFb3.js","./index-BClYdby3.css","./AreaCurve-DQSHOSpG.js","./array-C0VuvQyb.js","./nodes-Bm1vmvln.js","./AppearanceControls-Q-jHRGz9.js","./ItemText-Bvif-kkw.js","./logs-DNePHVHd.js","./Select-OqnbuzuK.js","./Sparkline-ByQBSxiF.js","./Donut-BMxkBF7W.js","./Editors-D7Xgy5vR.js","./GridList-wfRSpULl.js","./Checkbox-BewExwKL.js","./Delete-BlpuXHjZ.js","./Editors-rPgk_VZK.css","./index-BF-omOFK.js","./geodata-X0pHz03D.js","./auth-C2Jiec7E.js","./auth-5ngSjiJI.js"])))=>i.map(i=>d[i]);
|
||||
import{r as e,a as t,j as n}from"./vendor-react-64fcanlc.js";import{d as s,h as a,n as r,o as i,w as o,s as l,R as c,S as d,a as u,b as m,I as h,L as p,u as f,_ as g,c as b,e as x,N as v,T as y,f as j,g as w,i as k,j as N,B as M,E as _,C as S,k as C,l as E,P as L,m as z,p as R,q as O,r as P,t as A,v as q,x as I,y as T,z as D,A as H,D as F,F as B,G as $,H as V,J as W,K as U,M as G,O as K,Q as J,U as X,V as Y,W as Q,X as Z,Y as ee,Z as te,$ as ne,a0 as se,a1 as ae,a2 as re,a3 as ie,a4 as oe,a5 as le,a6 as ce,a7 as de,a8 as ue,a9 as me,aa as he,ab as pe,ac as fe,ad as ge,ae as be,af as xe,ag as ve,ah as ye,ai as je,aj as we,ak as ke,al as Ne,am as Me,an as _e,ao as Se,ap as Ce,aq as Ee,ar as Le,as as ze,at as Re,au as Oe,av as Pe,aw as Ae,ax as qe,ay as Ie,az as Te,aA as De,aB as He,aC as Fe,aD as Be,aE as $e,aF as Ve,aG as We,aH as Ue,aI as Ge,aJ as Ke,aK as Je,aL as Xe,aM as Ye,aN as Qe,aO as Ze,aP as et,aQ as tt,aR as nt,aS as st,aT as at,aU as rt,aV as it,aW as ot,aX as lt,aY as ct,aZ as dt,a_ as ut,a$ as mt,b0 as ht,b1 as pt,b2 as ft,b3 as gt,b4 as bt,b5 as xt,b6 as vt,b7 as yt,b8 as jt,b9 as wt,ba as kt,bb as Nt,bc as Mt,bd as _t,be as St,bf as Ct,bg as Et,bh as Lt,bi as zt,bj as Rt,bk as Ot,bl as Pt,bm as At,bn as qt,bo as It,bp as Tt,bq as Dt,br as Ht,bs as Ft,bt as Bt,bu as $t,bv as Vt,bw as Wt,bx as Ut}from"./index-XeGFdFb3.js";import{r as Gt,c as Kt,s as Jt,h as Xt,d as Yt,i as Qt,a as Zt,b as en,e as tn,f as nn,g as sn,j as an,n as rn,u as on,k as ln,l as cn,p as dn,m as un,o as mn,q as hn,t as pn,v as fn,w as gn,x as bn,y as xn,z as vn,A as yn,B as jn}from"./nodes-Bm1vmvln.js";import{L as wn,C as kn,u as Nn,a as Mn,P as _n,S as Sn,T as Cn,b as En,c as Ln}from"./AppearanceControls-Q-jHRGz9.js";import{W as zn,S as Rn,u as On,a as Pn,b as An,c as qn,e as In,d as Tn,l as Dn,f as Hn,g as Fn,h as Bn,i as $n,V as Vn,C as Wn,r as Un,K as Gn,D as Kn,j as Jn,M as Xn,$ as Yn,k as Qn,m as Zn,n as es}from"./logs-DNePHVHd.js";import{I as ts,C as ns}from"./ItemText-Bvif-kkw.js";const ss={"missing-offline-dependency":"config.diagnostic.offlineMissing","offline-dependency-denied":"config.diagnostic.offlineDenied","invalid-offline-dependency":"config.diagnostic.offlineInvalid","unreadable-offline-dependency":"config.diagnostic.offlineUnreadable"},as=e=>Object.hasOwn(ss,e);function rs(e,t,n){return as(e.code)?{summary:t("config.diagnostic.offline",{reason:t(ss[e.code]),which:n?t("config.diagnostic.offlineGeodata",{files:n}):t("config.diagnostic.offlineUsual")})}:s(e,t)}const is=e=>[...new Set(e.flatMap(({item:e,message:t})=>e.message&&!t.includes(e.message)?[e.message]:[]))];function os(e,t){const n=e.map(e=>e.id===t?.id?t.content:e.content).flatMap(e=>void 0===e?[]:Gt(e));return[...new Map(n.map(({name:e,written:t})=>[t,{name:e,written:t}])).values()]}const ls=e=>"<redacted>"===e.path||""===e.path,cs=e=>ls(e)?"main"===e.kind?"config.dae":`${e.kind}-${e.id.slice(0,8)}.dae`:e.path.split("/").pop()||"config.dae";function ds(e,t){const n=e.find(e=>"main"===e.kind);if(!n)return null;const s=[n,...e.filter(e=>"include"===e.kind&&!ls(e))];return t&&!s.some(e=>e.id===t.id)?null:s.map(e=>({id:e.id,...ls(e)?{}:{path:e.path},content:e.id===t?.id?t.content:e.content}))}const us=e=>e.filter(e=>"error"===e.level&&"restart-required"===e.code).map(e=>({key:/\b[a-z][a-z0-9_]*(?:\.[a-z0-9_]+)+\b/.exec(e.message)?.[0]??(e.message||null),sourceId:e.source_id,line:e.line})),ms=e=>us(e).length,hs={main:"config.kind.main",include:"config.kind.include",subscription:"nodes.kind.subscription",generated:"config.kind.generated"},ps=(e,t)=>`${e}:${t}`;function fs(e,t){const n=e.indexOf(":"),s=e.slice(0,n);return n>0&&t.includes(s)?{kind:s,value:e.slice(n+1)}:null}const gs=(e,t)=>t&&e?a("rules",{tab:"list",rule:e}):void 0,bs=(e,t,n=!1)=>a("nodes",{provider:r(e,t),q:e.name,node:n?e.id??null:null});function xs(e,t){const n=e?.find(e=>e.name===t)?.id;return n?o("",{group:n}):""}function vs(e,t,n){const s=t?.find(t=>t.name===e);return s?{label:s.name,href:a("policies",{group:s.id})}:{label:i(e,n),href:null}}const ys=["network","domain","dst_ip","dst_port","src_ip","src_port","pname"],js=e=>o("",{tab:"trace",...Object.fromEntries(ys.map(t=>[t,e[t]||null]))});function ws(e){const t=new URLSearchParams(e),n=e=>t.get(e)??"";return n("domain")||n("dst_ip")?{network:"udp"===n("network")?"udp":"tcp",domain:n("domain"),dst_ip:n("dst_ip"),dst_port:n("dst_port"),src_ip:n("src_ip"),src_port:n("src_port"),pname:n("pname")}:null}const ks=a("settings",{card:"runtime"});function Ns(e,t=Kt){return e?fs(e,t):null}function Ms(e,t){const n=e.filter(e=>"main"===e.kind||"include"===e.kind);for(const s of n){const e=Jt(s.content).blocks.find(e=>e.name===t);if(e)return a("config",{tab:"source",source:s.id,line:String(e.line+1)})}return a("config",{tab:"source",source:n.find(e=>"main"===e.kind)?.id??null})}const _s=a("activity",{card:"mode"}),Ss=a("overview",{card:"limits"}),Cs=e=>a("nodes",{nodes:JSON.stringify(e)});let Es=!1;const Ls=new Set,zs={snapshot:()=>Es,set(e){Line truncated
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./auth-BW588zN2.js","./index-C-WQXF8v.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./index-BClYdby3.css"])))=>i.map(i=>d[i]);
|
||||
import{bz as a,dW as t,dX as o,t as n,_ as e}from"./index-C-WQXF8v.js";const i=(a,t)=>new URL(a.replace(/\/+$/,"")+t,globalThis.location?.href),s=()=>e(()=>import("./auth-BW588zN2.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),r={username:"demo",password:"demo"};async function c(e,r){if(a(e))return(await s()).mockDiscovery();const c=await t(i(e,"/api"),{headers:{Accept:"application/json"},cache:"no-store",signal:r});if(!c.ok)throw await o(c);const p=await c.json();if("dae/honk-native"===p.name)throw new n("login.engineOutdated");return p.auth}async function p(a,o){return 404!==(await t(i(a,"/api/v1/capabilities"),{headers:{Accept:"application/json"},cache:"no-store",signal:o})).status}function u(a){return"password"!==a.mode?"token":a.setup_required?"setup":"login"}async function h(n,e,r,c){if(a(n))return(await s()).mockOpenSession(e,r);const p=await t(i(n,`/api/v1/auth/${e}`),{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(r),cache:"no-store",signal:c},"setup"===e);if(!p.ok)throw await o(p,"POST");return p.json()}async function d(n,e,s){if(a(n))return;const r=await t(i(n,"/api/v1/auth/logout"),{method:"POST",headers:{Accept:"application/json",Authorization:"Bearer "+e},cache:"no-store",signal:s});if(!r.ok&&401!==r.status)throw await o(r,"POST")}export{r as D,p as a,d as c,c as d,h as o,u as s};
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./auth-C2Jiec7E.js","./index-XeGFdFb3.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./index-BClYdby3.css"])))=>i.map(i=>d[i]);
|
||||
import{bz as a,dW as t,dX as o,t as n,_ as e}from"./index-XeGFdFb3.js";const i=(a,t)=>new URL(a.replace(/\/+$/,"")+t,globalThis.location?.href),s=()=>e(()=>import("./auth-C2Jiec7E.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),r={username:"demo",password:"demo"};async function c(e,r){if(a(e))return(await s()).mockDiscovery();const c=await t(i(e,"/api"),{headers:{Accept:"application/json"},cache:"no-store",signal:r});if(!c.ok)throw await o(c);const p=await c.json();if("dae/honk-native"===p.name)throw new n("login.engineOutdated");return p.auth}async function p(a,o){return 404!==(await t(i(a,"/api/v1/capabilities"),{headers:{Accept:"application/json"},cache:"no-store",signal:o})).status}function u(a){return"password"!==a.mode?"token":a.setup_required?"setup":"login"}async function h(n,e,r,c){if(a(n))return(await s()).mockOpenSession(e,r);const p=await t(i(n,`/api/v1/auth/${e}`),{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(r),cache:"no-store",signal:c},"setup"===e);if(!p.ok)throw await o(p,"POST");return p.json()}async function d(n,e,s){if(a(n))return;const r=await t(i(n,"/api/v1/auth/logout"),{method:"POST",headers:{Accept:"application/json",Authorization:"Bearer "+e},cache:"no-store",signal:s});if(!r.ok&&401!==r.status)throw await o(r,"POST")}export{r as D,p as a,d as c,c as d,h as o,u as s};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{D as e}from"./auth-CGURHhWN.js";import{aM as t,bK as o}from"./index-C-WQXF8v.js";import"./vendor-react-64fcanlc.js";import"./_commonjsHelpers-CXUWDbkB.js";const r="demo-session-";function n(){return{mode:"password",setup_required:!1}}const s={auth_setup:"/api/v1/auth/setup",auth_login:"/api/v1/auth/login"};function a(n,s){if("setup"===n)throw new t(409,"setup_already_completed","Setup already completed");if(s.username!==e.username||s.password!==e.password)throw new t(401,"invalid_credentials","Invalid credentials");return{token:r+o(),expires_at:new Date(Date.now()+432e5).toISOString()}}function i(e){return!!e?.startsWith(r)}function u(e){return{...e,discovery:async t=>{const o=await e.discovery(t);return"status"in o?{...o,links:{...o.links,...s,auth_logout:"/api/v1/auth/logout"},auth:{mode:"password",setup_required:!1,anonymous_loopback:!1}}:o}}}function d(e){const o=()=>Promise.reject(new t(401,"authentication_required","Authentication required")),r=async e=>(e?.throwIfAborted(),{name:"daeuniverse/native",api_major:1,links:{...s},auth:{mode:"password",setup_required:!1}});return new Proxy(e,{get:(e,t,n)=>"discovery"===t?r:"function"==typeof Reflect.get(e,t,n)?o:void 0})}export{n as mockDiscovery,a as mockOpenSession,i as mockSessionValid,d as refuseWithoutSession,u as withPasswordAuth};
|
||||
import{D as e}from"./auth-5ngSjiJI.js";import{aM as t,bK as o}from"./index-XeGFdFb3.js";import"./vendor-react-64fcanlc.js";import"./_commonjsHelpers-CXUWDbkB.js";const r="demo-session-";function n(){return{mode:"password",setup_required:!1}}const s={auth_setup:"/api/v1/auth/setup",auth_login:"/api/v1/auth/login"};function a(n,s){if("setup"===n)throw new t(409,"setup_already_completed","Setup already completed");if(s.username!==e.username||s.password!==e.password)throw new t(401,"invalid_credentials","Invalid credentials");return{token:r+o(),expires_at:new Date(Date.now()+432e5).toISOString()}}function i(e){return!!e?.startsWith(r)}function u(e){return{...e,discovery:async t=>{const o=await e.discovery(t);return"status"in o?{...o,links:{...o.links,...s,auth_logout:"/api/v1/auth/logout"},auth:{mode:"password",setup_required:!1,anonymous_loopback:!1}}:o}}}function d(e){const o=()=>Promise.reject(new t(401,"authentication_required","Authentication required")),r=async e=>(e?.throwIfAborted(),{name:"daeuniverse/native",api_major:1,links:{...s},auth:{mode:"password",setup_required:!1}});return new Proxy(e,{get:(e,t,n)=>"discovery"===t?r:"function"==typeof Reflect.get(e,t,n)?o:void 0})}export{n as mockDiscovery,a as mockOpenSession,i as mockSessionValid,d as refuseWithoutSession,u as withPasswordAuth};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{a9 as e,f8 as n,q as t,f9 as s,fa as a,aq as r,fb as o,d6 as i,fc as l}from"./index-C-WQXF8v.js";async function u(e,{input:n,resolve:t,recordTypes:s},a){if("query"!==t)return{traces:[await e.routingTrace({input:n,resolve:t},a)],query:null};const r=await e.dnsQuery(n.domain,s,a),o=[...new Set(["A","AAAA"].flatMap(e=>r.results.filter(n=>n.type===e).map(i).find(Boolean)??[]))],u=[];for(const i of o.length?o:[null])u.push(await e.routingTrace({input:i?{...n,dst_ip:i}:n,resolve:"none"},a));if(u.some(e=>e.instance_id!==u[0].instance_id||e.generation_id!==u[0].generation_id))throw l(409,"snapshot_unavailable","The routing generation changed during simulation; retry the query","ui.errGenerationChanged");return{traces:u,query:r}}function c({connection_id:i,network:l="all",state:u="all"}={},c=!0,f=!1){const d=e(),{data:w,error:p}=t(),y=s(w,w?.resources.flows.max_page_size);return n({key:["flows",{connection_id:i,network:l,state:u,limit:y}],every:r.lists,fetch:e=>o(n=>d.flows({network:l,state:u,connection_id:i,cursor:n,limit:y,detail:"full"},e),(e,n)=>e?(e.flows.push(...n.flows),e):{...n,flows:[...n.flows]})},{...a(w,p,c),paused:f})}function f(t){const s=e();return n({key:["flow",{id:t}],fetch:e=>t?s.flow(t,e):Promise.resolve(null),acceptEvent:e=>"flow.updated"!==e.event||e.data.resource_id===t},{enabled:null!==t})}function d(t=!0){const s=e();return n({key:["rules"],every:0,fetch:e=>s.rules(e)},{enabled:t})}function w(t=!0){const s=e();return n({key:["dnsRules"],every:0,fetch:e=>s.dnsRules(e)},{enabled:t})}export{c as a,f as b,w as c,u as r,d as u};
|
||||
import{a9 as e,f8 as n,q as t,f9 as s,fa as a,aq as r,fb as o,d6 as i,fc as l}from"./index-XeGFdFb3.js";async function u(e,{input:n,resolve:t,recordTypes:s},a){if("query"!==t)return{traces:[await e.routingTrace({input:n,resolve:t},a)],query:null};const r=await e.dnsQuery(n.domain,s,a),o=[...new Set(["A","AAAA"].flatMap(e=>r.results.filter(n=>n.type===e).map(i).find(Boolean)??[]))],u=[];for(const i of o.length?o:[null])u.push(await e.routingTrace({input:i?{...n,dst_ip:i}:n,resolve:"none"},a));if(u.some(e=>e.instance_id!==u[0].instance_id||e.generation_id!==u[0].generation_id))throw l(409,"snapshot_unavailable","The routing generation changed during simulation; retry the query","ui.errGenerationChanged");return{traces:u,query:r}}function c({connection_id:i,network:l="all",state:u="all"}={},c=!0,f=!1){const d=e(),{data:w,error:p}=t(),y=s(w,w?.resources.flows.max_page_size);return n({key:["flows",{connection_id:i,network:l,state:u,limit:y}],every:r.lists,fetch:e=>o(n=>d.flows({network:l,state:u,connection_id:i,cursor:n,limit:y,detail:"full"},e),(e,n)=>e?(e.flows.push(...n.flows),e):{...n,flows:[...n.flows]})},{...a(w,p,c),paused:f})}function f(t){const s=e();return n({key:["flow",{id:t}],fetch:e=>t?s.flow(t,e):Promise.resolve(null),acceptEvent:e=>"flow.updated"!==e.event||e.data.resource_id===t},{enabled:null!==t})}function d(t=!0){const s=e();return n({key:["rules"],every:0,fetch:e=>s.rules(e)},{enabled:t})}function w(t=!0){const s=e();return n({key:["dnsRules"],every:0,fetch:e=>s.dnsRules(e)},{enabled:t})}export{c as a,f as b,w as c,u as r,d as u};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{A as e,aK as s}from"./index-C-WQXF8v.js";import"./vendor-react-64fcanlc.js";import{s as t}from"./nodes-D39HfuKn.js";function a(e){const{tokens:s}=t(e),a=t=>s[t]?e.slice(s[t].from,s[t].to):"",i=new Set(s.flatMap((e,s)=>"text"===e.kind&&e.parens>0&&":"===a(s+1)&&["(",","].includes(a(s-1))?[a(s)]:[]));return["geosite","geoip"].filter(e=>i.has(e))}function i(e,s,t){const a=s?.available?s.assets??[]:null,i=e=>t?.assets.some(s=>s.kind===e&&"0"===s.size_bytes)??!1,n=e&&a?e.filter(e=>!a.includes(e)||i(e)):(a??[]).filter(i),o=!!s?.can_update&&!!e?.length&&!!a&&e.every(e=>a.includes(e));return{missing:n.map(e=>`${e}.dat`),repair:o}}const n=(t,a)=>t.then(s=>(s&&e("positive",a("settings.geodataUpdated")),!!s),e=>(s(e,a,a("settings.geodataFailed")),!1));export{n as a,a as b,i as g};
|
||||
import{A as e,aK as s}from"./index-XeGFdFb3.js";import"./vendor-react-64fcanlc.js";import{s as t}from"./nodes-Bm1vmvln.js";function a(e){const{tokens:s}=t(e),a=t=>s[t]?e.slice(s[t].from,s[t].to):"",i=new Set(s.flatMap((e,s)=>"text"===e.kind&&e.parens>0&&":"===a(s+1)&&["(",","].includes(a(s-1))?[a(s)]:[]));return["geosite","geoip"].filter(e=>i.has(e))}function i(e,s,t){const a=s?.available?s.assets??[]:null,i=e=>t?.assets.some(s=>s.kind===e&&"0"===s.size_bytes)??!1,n=e&&a?e.filter(e=>!a.includes(e)||i(e)):(a??[]).filter(i),o=!!s?.can_update&&!!e?.length&&!!a&&e.every(e=>a.includes(e));return{missing:n.map(e=>`${e}.dat`),repair:o}}const n=(t,a)=>t.then(s=>(s&&e("positive",a("settings.geodataUpdated")),!!s),e=>(s(e,a,a("settings.geodataFailed")),!1));export{n as a,a as b,i as g};
|
||||
@@ -0,0 +1 @@
|
||||
import{bH as e,bI as t,aM as n,bJ as o,bK as r,bL as a,bM as i,bN as s,bO as l,bP as d,aT as c,bQ as u,aS as p,bR as _,M as m,bS as f}from"./index-XeGFdFb3.js";import{C as g,D as h,s as b,u as w,E as v,F as y,G as k,H as x,I as S,J as I,r as A,K as q,L as M,M as N,n as $,N as O,O as D,P as C,Q as R,R as j,S as E,v as L}from"./nodes-Bm1vmvln.js";import{d as T,v as P,g as z}from"./geodata-X0pHz03D.js";import{mockSessionValid as U,withPasswordAuth as G,refuseWithoutSession as H}from"./auth-C2Jiec7E.js";import"./vendor-react-64fcanlc.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./auth-5ngSjiJI.js";const F=Date.now(),J=e=>new Date(F-1e3*e).toISOString(),B=e=>new Date(F+1e3*e).toISOString(),W=J(0),Q="mock-instance-1",V="40",K={"x-honk":{config_export:{available:!0},config_import:{available:!0,replace_required:!0},config_revisions:{available:!0,can_activate:!0,max_revisions:50}}},X={extensions:K,observed_at:W,profiles:["base","full_transparency"],limits:{max_request_target_bytes:4096,max_header_bytes:16384,max_json_body_bytes:65536},resources:{...K,runtime:{available:!0},runtime_memory:{available:!0,metrics:["process.rss_bytes","cgroup.current_bytes","cgroup.limit_bytes","cgroup.events.high","cgroup.events.oom","cgroup.events.oom_kill","kernel.ebpf_bytes"]},datapath:{available:!0,kinds:["ebpf"],details:["attachments","maps"]},runtime_outbounds:{available:!0},traffic_history:{available:!0,max_window_seconds:604800,max_points:360},memory_history:{available:!0,max_window_seconds:604800,max_points:720},nodes:{available:!0,can_manage:!0},providers:{available:!0,can_refresh:!0,can_manage:!0,create_options:{update_interval:86400,user_agent:"honk/0.0.1-alpha",cache:!0},max_page_size:1e3},geodata:{available:!0,can_update:!0,assets:["geosite","geoip"],configurable_sources:!0,checksum:"sha256sum",max_urls:4,interval_hours:{min:1,max:168,default:24},lifecycle:{file_values:"start",overrides_persist:!0}},rules:{available:!0,max_rules:4096},config:{available:!0,writable:!0,create:!0,max_bytes:1048576,max_sources:32},config_validate:{available:!0,modes:["syntax","full"],max_bytes:1048576,max_sources:32},logs:{available:!0,levels:[...t],filters:["level","target"],retention_seconds:86400,min_buffered_records:64,max_buffered_records:4096},dns_log:{available:!0,min_records:64,max_records:2048,max_page_size:500},dns_rules:{available:!0,max_rules:1024},runtime_settings:{available:!0,fields:["log.level","log.buffered_records","dns_log.max_records","flows.max_flows","flows.retention_seconds","record_flows","record_logs","record_dns_log","geodata"]},groups:{available:!0,config_patch:!0,selection:!0,max_patch_operations:32},probes:{available:!0,targets:["node","group"],kinds:["tcp_connect","http","dns"],transports:["tcp","udp"],ip_versions:["ipv4","ipv6"],limits:{max_members_per_job:64,max_results_per_job:256,max_active_jobs:4,max_queued_jobs:16,max_concurrent_per_target:1,job_timeout_ms:3e4,per_principal_requests_per_minute:60,global_requests_per_minute:120}},connections:{available:!0,can_close:!0,max_bulk_close:200},flows:{available:!0,recording:"auto",scopes:["userspace_tcp","userspace_udp","kernel_direct","kernel_block","dns_intercept","kernel_bypass"],min_flows:64,max_flows:4096,max_steps_per_flow:64,retention_seconds:300,snapshot_ttl_seconds:60,max_page_size:1e3},routing_trace:{available:!0,resolve_modes:["none","live"],max_addresses:16,max_rule_steps:128,timeout_ms:5e3,per_principal_requests_per_minute:60,global_requests_per_minute:120},events:{available:!0,kinds:[...e],retention_seconds:300,max_buffered_events:1024,max_clients:16,heartbeat_seconds:15},dns_query:{available:!0,record_types:["A","AAAA","HTTPS"],limits:{max_types_per_request:8,query_timeout_ms:5e3,max_response_bytes:65536,per_principal_requests_per_minute:60,global_requests_per_minute:120}},dns_cache:{available:!0,read:!0,delete_entry:!0,delete_name:!0,flush:!0,entry_kinds:["positive","negative"]},operations:{available:!0,retention_seconds:300},reload:{available:!0},suspend:{available:!0},resume:{available:!0}}},Y={...X.resources};delete Y["x-honk"];const Z={...X,extensions:{},profiles:["base"],resources:{...Y,groups:{...X.resources.groups,config_patch:!1},runtime_outbounds:{available:!1},traffic_history:{available:!1},memory_history:{available:!1},logs:{available:!1},dns_log:{available:!1},dns_rules:{available:!1},runtime_settings:{available:!1},geodata:{available:!1},rules:{available:!1},nodes:{available:!0,can_manage:!1},providers:{available:!0,can_refresh:!1,can_manage:!1,max_page_size:1e3},config:{available:!1,create:!1},config_validate:{available:!1},flows:{...X.resources.flows,available:!1},routing_trace:{...X.resources.routing_trace,available:!1},events:{...X.resources.events,available:!1}}},ee={...X,extensions:{},profiles:["base"],resources:{...Object.fromEntries(Object.keys(Y).map(e=>[e,{available:!1}])),runtime:{available:!0},connections:{available:!0,can_close:!1,max_bulk_close:1e3},config:{available:!1,create:!1}}},te=g("regions").filter(e=>!e.startsLine truncated
|
||||
@@ -1 +0,0 @@
|
||||
import{bH as e,bI as t,aM as n,bJ as o,bK as r,bL as a,bM as i,bN as s,bO as l,bP as d,aT as c,bQ as u,aS as p,bR as _,M as m,bS as f}from"./index-C-WQXF8v.js";import{C as g,D as h,s as b,u as w,E as v,F as y,G as k,H as x,I as S,J as I,r as A,K as q,L as M,M as N,n as $,N as O,O as D,P as C,Q as R,R as j,S as E,v as T}from"./nodes-D39HfuKn.js";import{d as L,v as P,g as z}from"./geodata-X0pHz03D.js";import{mockSessionValid as G,withPasswordAuth as U,refuseWithoutSession as H}from"./auth-BW588zN2.js";import"./vendor-react-64fcanlc.js";import"./_commonjsHelpers-CXUWDbkB.js";import"./auth-CGURHhWN.js";const F=Date.now(),J=e=>new Date(F-1e3*e).toISOString(),B=e=>new Date(F+1e3*e).toISOString(),W=J(0),Q="mock-instance-1",V="40",K={"x-honk":{config_export:{available:!0},config_import:{available:!0,replace_required:!0},config_revisions:{available:!0,can_activate:!0,max_revisions:50}}},X={extensions:K,observed_at:W,profiles:["base","full_transparency"],limits:{max_request_target_bytes:4096,max_header_bytes:16384,max_json_body_bytes:65536},resources:{...K,runtime:{available:!0},runtime_memory:{available:!0,metrics:["process.rss_bytes","cgroup.current_bytes","cgroup.limit_bytes","cgroup.events.high","cgroup.events.oom","cgroup.events.oom_kill","kernel.ebpf_bytes"]},datapath:{available:!0,kinds:["ebpf"],details:["attachments","maps"]},runtime_outbounds:{available:!0},traffic_history:{available:!0,max_window_seconds:604800,max_points:360},memory_history:{available:!0,max_window_seconds:604800,max_points:720},nodes:{available:!0,can_manage:!0},providers:{available:!0,can_refresh:!0,can_manage:!0,create_options:{update_interval:86400,user_agent:"honk/0.0.1-alpha",cache:!0},max_page_size:1e3},geodata:{available:!0,can_update:!0,assets:["geosite","geoip"],configurable_sources:!0,checksum:"sha256sum",max_urls:4,interval_hours:{min:1,max:168,default:24},lifecycle:{file_values:"start",overrides_persist:!0}},rules:{available:!0,max_rules:4096},config:{available:!0,writable:!0,create:!0,max_bytes:1048576,max_sources:32},config_validate:{available:!0,modes:["syntax","full"],max_bytes:1048576,max_sources:32},logs:{available:!0,levels:[...t],filters:["level","target"],retention_seconds:86400,min_buffered_records:64,max_buffered_records:4096},dns_log:{available:!0,min_records:64,max_records:2048,max_page_size:500},dns_rules:{available:!0,max_rules:1024},runtime_settings:{available:!0,fields:["log.level","log.buffered_records","dns_log.max_records","flows.max_flows","flows.retention_seconds","record_flows","record_logs","record_dns_log","geodata"]},groups:{available:!0,config_patch:!0,selection:!0,max_patch_operations:32},probes:{available:!0,targets:["node","group"],kinds:["tcp_connect","http","dns"],transports:["tcp","udp"],ip_versions:["ipv4","ipv6"],limits:{max_members_per_job:64,max_results_per_job:256,max_active_jobs:4,max_queued_jobs:16,max_concurrent_per_target:1,job_timeout_ms:3e4,per_principal_requests_per_minute:60,global_requests_per_minute:120}},connections:{available:!0,can_close:!0,max_bulk_close:200},flows:{available:!0,recording:"auto",scopes:["userspace_tcp","userspace_udp","kernel_direct","kernel_block","dns_intercept","kernel_bypass"],min_flows:64,max_flows:4096,max_steps_per_flow:64,retention_seconds:300,snapshot_ttl_seconds:60,max_page_size:1e3},routing_trace:{available:!0,resolve_modes:["none","live"],max_addresses:16,max_rule_steps:128,timeout_ms:5e3,per_principal_requests_per_minute:60,global_requests_per_minute:120},events:{available:!0,kinds:[...e],retention_seconds:300,max_buffered_events:1024,max_clients:16,heartbeat_seconds:15},dns_query:{available:!0,record_types:["A","AAAA","HTTPS"],limits:{max_types_per_request:8,query_timeout_ms:5e3,max_response_bytes:65536,per_principal_requests_per_minute:60,global_requests_per_minute:120}},dns_cache:{available:!0,read:!0,delete_entry:!0,delete_name:!0,flush:!0,entry_kinds:["positive","negative"]},operations:{available:!0,retention_seconds:300},reload:{available:!0},suspend:{available:!0},resume:{available:!0}}},Y={...X.resources};delete Y["x-honk"];const Z={...X,extensions:{},profiles:["base"],resources:{...Y,groups:{...X.resources.groups,config_patch:!1},runtime_outbounds:{available:!1},traffic_history:{available:!1},memory_history:{available:!1},logs:{available:!1},dns_log:{available:!1},dns_rules:{available:!1},runtime_settings:{available:!1},geodata:{available:!1},rules:{available:!1},nodes:{available:!0,can_manage:!1},providers:{available:!0,can_refresh:!1,can_manage:!1,max_page_size:1e3},config:{available:!1,create:!1},config_validate:{available:!1},flows:{...X.resources.flows,available:!1},routing_trace:{...X.resources.routing_trace,available:!1},events:{...X.resources.events,available:!1}}},ee={...X,extensions:{},profiles:["base"],resources:{...Object.fromEntries(Object.keys(Y).map(e=>[e,{available:!1}])),runtime:{available:!0},connections:{available:!0,can_close:!1,max_bulk_close:1e3},config:{available:!1,create:!1}}},te=g("regions").filter(e=>!e.startsLine truncated
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./fonts-C5_wsAqZ.css","./fonts-sc-Dyn9aW84.css","./fonts-tc-D9rvq3k7.css","./SearchList-B2h2qAe4.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./Virtualizer-DBBzjqSD.js","./index-BpLc3-JM.js","./nodes-D39HfuKn.js","./geodata-X0pHz03D.js","./auth-BW588zN2.js","./auth-CGURHhWN.js","./SearchDialog-0G_oHUD5.js","./Select-B67-iUq2.js","./ItemText-CnmwoDur.js","./logs-B-rowQjz.js","./AppearanceControls-CRuy5orf.js","./flows-Bm5f0qGx.js","./nav-DrKp2w73.js","./activity-BQ91A1_2.js","./activity-Db7VRWAG.css","./nav-DORsPGf3.js","./nav-DN3M4Ewk.js","./nav-C9NL8eDT.js","./nav-DPUoWWE6.js","./nav-BO8viH9G.js","./nav-BNyZNOjO.js","./Overview-CF2yJv8R.js","./files-Dt8K7QfP.js","./Table-DDHjB8la.js","./Checkbox-DiXDVgGl.js","./DaeCode-DEjXqvav.js","./daeTokens-BVtuNnWZ.js","./Connections-DGa-2OdM.js","./OutboundTag-yFgWAs1b.js","./Tag-Bizvcn28.js","./Tabs-DVxF89X7.js","./Toolbar-Yd2KR-zd.js","./SearchSelect-ZK-gprFX.js","./TimeCell-B2wYTQbc.js","./useQuickRule-Dg2XjZII.js","./AddCircle-Bsrf2UoO.js","./rule-C502aJft.js","./outbounds-CStRcMI8.js","./labels-D8xxfRTQ.js","./Flows-CL9Xh__A.js","./Coverage-BvvFzjoN.js","./Flows-B78_vhjx.css","./Dns-4R7nsCX0.js","./Delete-Kzat-N3j.js","./impact-B8feJDtJ.css","./Policies-CVSnSSix.js","./ProbeOptionsDialog-bv58UQw7.js","./ConditionRow-EvG4rKpT.js","./GridList-CYOcEmX9.js","./NumberField-Cd9mdKJI.js","./probe-BRKajYpx.js","./Rules-Bsj3Y9L1.js","./recorder-BHyqDNp5.js","./geodataUpdate-b_z-ddHs.js","./LinkOut-Ff0bS5Fx.js","./Nodes-DyFFhzXj.js","./FlagPicker-D2kKSyH6.js","./Config-Bt4CbrM4.js","./Events-j3kIhFYp.js","./Copy-BqPmUS7m.js","./Logs-DRG0t3ZH.js","./Settings-CKdUz8fA.js","./wallpaper-CEC7gitM.js","./Settings-BVpmQMTB.css","./glass-DWGGOADV.js","./Login-DgbRG-H2.js"])))=>i.map(i=>d[i]);
|
||||
import{r as e,$ as t,c as n,s as r,a as i,b as o,j as s,d as a}from"./vendor-react-64fcanlc.js";import"./_commonjsHelpers-CXUWDbkB.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();const l={},c=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=function(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))};const i=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),s=o?.nonce||o?.getAttribute("nonce");r=e(t.map(e=>{if(e=function(e,t){return new URL(e,t).href}(e,n),e in l)return;l[e]=!0;const t=e.endsWith(".css"),r=t?'[rel="stylesheet"]':"";if(!!n)for(let n=i.length-1;n>=0;n--){const r=i[n];if(r.href===e&&(!t||"stylesheet"===r.rel))return}else if(document.querySelector(`link[href="${e}"]${r}`))return;const o=document.createElement("link");return o.rel=t?"stylesheet":"modulepreload",t||(o.as="script"),o.crossOrigin="",o.href=e,s&&o.setAttribute("nonce",s),document.head.appendChild(o),t?new Promise((t,n)=>{o.addEventListener("load",t),o.addEventListener("error",()=>n(new Error(`Unable to preload CSS for ${e}`)))}):void 0}))}function i(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(const e of t||[])"rejected"===e.status&&i(e.reason);return e().catch(i)})};class u{constructor(e){this.value=null,this.level=0,this.hasChildNodes=!1,this.rendered=null,this.textValue="",this["aria-label"]=void 0,this.index=0,this.parentKey=null,this.prevKey=null,this.nextKey=null,this.firstChildKey=null,this.lastChildKey=null,this.props={},this.colSpan=null,this.colIndex=null,this.type=this.constructor.type,this.key=e}get childNodes(){throw new Error("childNodes is not supported")}clone(){let e=new this.constructor(this.key);return e.value=this.value,e.level=this.level,e.hasChildNodes=this.hasChildNodes,e.rendered=this.rendered,e.textValue=this.textValue,e["aria-label"]=this["aria-label"],e.index=this.index,e.parentKey=this.parentKey,e.prevKey=this.prevKey,e.nextKey=this.nextKey,e.firstChildKey=this.firstChildKey,e.lastChildKey=this.lastChildKey,e.props=this.props,e.render=this.render,e.colSpan=this.colSpan,e.colIndex=this.colIndex,e}filter(e,t,n){let r=this.clone();return t.addDescendants(r,e),r}}class d extends u{filter(e,t,n){let[r,i]=y(e,t,this.firstChildKey,n),o=this.clone();return o.firstChildKey=r,o.lastChildKey=i,o}}class f extends u{static{this.type="header"}}class p extends u{static{this.type="loader"}}class h extends d{static{this.type="item"}filter(e,t,n){if(n(this.textValue,this)){let n=this.clone();return t.addDescendants(n,e),n}return null}}class m extends d{static{this.type="section"}filter(e,t,n){let r=super.filter(e,t,n);if(r&&null!==r.lastChildKey){let t=e.getItem(r.lastChildKey);if(t&&"header"!==t.type)return r}return null}}class g{get size(){return this.itemCount}getKeys(){return this.keyMap.keys()}*[Symbol.iterator](){let e=null!=this.firstKey?this.keyMap.get(this.firstKey):void 0;for(;e;)yield e,e=null!=e.nextKey?this.keyMap.get(e.nextKey):void 0}getChildren(e){let t=this.keyMap;return{*[Symbol.iterator](){let n=t.get(e),r=null!=n?.firstChildKey?t.get(n.firstChildKey):null;for(;r;)yield r,r=null!=r.nextKey?t.get(r.nextKey):void 0}}}getKeyBefore(e){let t=this.keyMap.get(e);if(!t)return null;if(null!=t.prevKey){for(t=this.keyMap.get(t.prevKey);t&&"item"!==t.type&&null!=t.lastChildKey;)t=this.keyMap.get(t.lastChildKey);return t?.key??null}return t.parentKey}getKeyAfter(e){let t=this.keyMap.get(e);if(!t)return null;if("item"!==t.type&&null!=t.firstChildKey)return t.firstChildKey;for(;t;){if(null!=t.nextKey)return t.nextKey;if(null==t.parentKey)return null;t=this.keyMap.get(t.parentKey)}return null}getFirstKey(){return this.firstKey}getLastKey(){let e=null!=this.lastKey?this.keyMap.get(this.lastKey):null;for(;null!=e?.lastChildKey;)e=this.keyMap.get(e.lastChildKey);return e?.key??null}getItem(e){return this.keyMap.get(e)??null}at(){throw new Error("Not implemented")}clone(){let e=new(0,this.constructor);return e.keyMap=new Map(this.keyMap),e.firstKey=this.firstKey,e.lastKey=this.lastKey,e.itemCount=this.itemCount,e}addNode(e){if(this.frozen)throw new Error("Cannot add a node to a frozen collection");"item"===e.type&&null==this.keyMap.get(e.key)&&thisLine truncated
|
||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./fonts-C5_wsAqZ.css","./fonts-sc-Dyn9aW84.css","./fonts-tc-D9rvq3k7.css","./SearchList-DWooTdFX.js","./vendor-react-64fcanlc.js","./_commonjsHelpers-CXUWDbkB.js","./Virtualizer-FvdVRagH.js","./index-BF-omOFK.js","./nodes-Bm1vmvln.js","./geodata-X0pHz03D.js","./auth-C2Jiec7E.js","./auth-5ngSjiJI.js","./SearchDialog-mIEPMN0z.js","./Select-OqnbuzuK.js","./ItemText-Bvif-kkw.js","./logs-DNePHVHd.js","./AppearanceControls-Q-jHRGz9.js","./flows-CjEC9Jxw.js","./nav-B6IjqlWU.js","./activity-7OeQMmIs.js","./activity-Db7VRWAG.css","./nav-BgyFg1Tl.js","./nav-4iHQTLCW.js","./nav-BIicxOIW.js","./nav-DxD_yNm9.js","./nav-BO8viH9G.js","./nav-xz-AMjAg.js","./Overview-Drw6LT_U.js","./files-Dt8K7QfP.js","./Table-DqqJleJD.js","./Checkbox-BewExwKL.js","./DaeCode-DEjXqvav.js","./daeTokens-BVtuNnWZ.js","./Connections-D4_pDN1k.js","./OutboundTag-B01P-KVW.js","./Tag-BaZZD5o2.js","./Tabs-BGWzF0yW.js","./Toolbar-CFyWgMbW.js","./SearchSelect-BVGce3l_.js","./TimeCell-B6QtVZge.js","./useQuickRule-8yoKk9d5.js","./AddCircle-7x8u9Pw1.js","./rule-BUktGcKO.js","./outbounds-UWplA2Qq.js","./labels-D8xxfRTQ.js","./Flows-DlYoWpUG.js","./Coverage-fmBkVF9H.js","./Flows-B78_vhjx.css","./Dns-BhjuEpsD.js","./Delete-BlpuXHjZ.js","./impact-B8feJDtJ.css","./Policies-DaY31pHO.js","./ProbeOptionsDialog-fRxfzbxN.js","./ConditionRow-mKWPcuZs.js","./GridList-wfRSpULl.js","./NumberField-Bo9iJ94r.js","./probe-Bp5QvROd.js","./Rules-gNsJvc3i.js","./recorder-BHyqDNp5.js","./geodataUpdate-Blcy6CRD.js","./LinkOut-BfQApT3z.js","./Nodes-B55C7kXE.js","./FlagPicker-YsJ19Gt1.js","./Config-D4r3VSJ0.js","./Events-fDbWsOSi.js","./Copy-Cix1qeo3.js","./Logs-CFjmcBrv.js","./Settings-Bf16OoOZ.js","./wallpaper-CEC7gitM.js","./Settings-BVpmQMTB.css","./glass-DWGGOADV.js","./Login-CYtOUqQI.js"])))=>i.map(i=>d[i]);
|
||||
import{r as e,$ as t,c as n,s as r,a as i,b as o,j as s,d as a}from"./vendor-react-64fcanlc.js";import"./_commonjsHelpers-CXUWDbkB.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const n of e)if("childList"===n.type)for(const e of n.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();const l={},c=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=function(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))};const i=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),s=o?.nonce||o?.getAttribute("nonce");r=e(t.map(e=>{if(e=function(e,t){return new URL(e,t).href}(e,n),e in l)return;l[e]=!0;const t=e.endsWith(".css"),r=t?'[rel="stylesheet"]':"";if(!!n)for(let n=i.length-1;n>=0;n--){const r=i[n];if(r.href===e&&(!t||"stylesheet"===r.rel))return}else if(document.querySelector(`link[href="${e}"]${r}`))return;const o=document.createElement("link");return o.rel=t?"stylesheet":"modulepreload",t||(o.as="script"),o.crossOrigin="",o.href=e,s&&o.setAttribute("nonce",s),document.head.appendChild(o),t?new Promise((t,n)=>{o.addEventListener("load",t),o.addEventListener("error",()=>n(new Error(`Unable to preload CSS for ${e}`)))}):void 0}))}function i(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(const e of t||[])"rejected"===e.status&&i(e.reason);return e().catch(i)})};class u{constructor(e){this.value=null,this.level=0,this.hasChildNodes=!1,this.rendered=null,this.textValue="",this["aria-label"]=void 0,this.index=0,this.parentKey=null,this.prevKey=null,this.nextKey=null,this.firstChildKey=null,this.lastChildKey=null,this.props={},this.colSpan=null,this.colIndex=null,this.type=this.constructor.type,this.key=e}get childNodes(){throw new Error("childNodes is not supported")}clone(){let e=new this.constructor(this.key);return e.value=this.value,e.level=this.level,e.hasChildNodes=this.hasChildNodes,e.rendered=this.rendered,e.textValue=this.textValue,e["aria-label"]=this["aria-label"],e.index=this.index,e.parentKey=this.parentKey,e.prevKey=this.prevKey,e.nextKey=this.nextKey,e.firstChildKey=this.firstChildKey,e.lastChildKey=this.lastChildKey,e.props=this.props,e.render=this.render,e.colSpan=this.colSpan,e.colIndex=this.colIndex,e}filter(e,t,n){let r=this.clone();return t.addDescendants(r,e),r}}class d extends u{filter(e,t,n){let[r,i]=y(e,t,this.firstChildKey,n),o=this.clone();return o.firstChildKey=r,o.lastChildKey=i,o}}class f extends u{static{this.type="header"}}class p extends u{static{this.type="loader"}}class h extends d{static{this.type="item"}filter(e,t,n){if(n(this.textValue,this)){let n=this.clone();return t.addDescendants(n,e),n}return null}}class m extends d{static{this.type="section"}filter(e,t,n){let r=super.filter(e,t,n);if(r&&null!==r.lastChildKey){let t=e.getItem(r.lastChildKey);if(t&&"header"!==t.type)return r}return null}}class g{get size(){return this.itemCount}getKeys(){return this.keyMap.keys()}*[Symbol.iterator](){let e=null!=this.firstKey?this.keyMap.get(this.firstKey):void 0;for(;e;)yield e,e=null!=e.nextKey?this.keyMap.get(e.nextKey):void 0}getChildren(e){let t=this.keyMap;return{*[Symbol.iterator](){let n=t.get(e),r=null!=n?.firstChildKey?t.get(n.firstChildKey):null;for(;r;)yield r,r=null!=r.nextKey?t.get(r.nextKey):void 0}}}getKeyBefore(e){let t=this.keyMap.get(e);if(!t)return null;if(null!=t.prevKey){for(t=this.keyMap.get(t.prevKey);t&&"item"!==t.type&&null!=t.lastChildKey;)t=this.keyMap.get(t.lastChildKey);return t?.key??null}return t.parentKey}getKeyAfter(e){let t=this.keyMap.get(e);if(!t)return null;if("item"!==t.type&&null!=t.firstChildKey)return t.firstChildKey;for(;t;){if(null!=t.nextKey)return t.nextKey;if(null==t.parentKey)return null;t=this.keyMap.get(t.parentKey)}return null}getFirstKey(){return this.firstKey}getLastKey(){let e=null!=this.lastKey?this.keyMap.get(this.lastKey):null;for(;null!=e?.lastChildKey;)e=this.keyMap.get(e.lastChildKey);return e?.key??null}getItem(e){return this.keyMap.get(e)??null}at(){throw new Error("Not implemented")}clone(){let e=new(0,this.constructor);return e.keyMap=new Map(this.keyMap),e.firstKey=this.firstKey,e.lastKey=this.lastKey,e.itemCount=this.itemCount,e}addNode(e){if(this.frozen)throw new Error("Cannot add a node to a frozen collection");"item"===e.type&&null==this.keyMap.get(e.key)&&thisLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
const e=JSON.parse('{"about.contract":"Contract commit","about.credits":"Fonts Noto Sans TC/SC (OFL); icons Adobe Spectrum (Apache-2.0); palettes from Rosé Pine, Catppuccin, Nord, Kary Pro Colors, Ant Design, Arco Design and Semi Design.","about.duck":"Pet me","about.license":"License","about.privacy":"doona talks only to the backend you connect it to. It collects no data and sends nothing anywhere else.","about.quack":"Honk!","about.tagline":"Web UI for {engine}","about.title":"About doona","act.active":"Active connections","act.cgroup":"cgroup used","act.chooseRoutingMode":"Choose a routing mode","act.cpu":"CPU usage","act.cpuHelp":"The share of one CPU core that the process uses. A value above 100% means it uses more than one core.","act.d7":"7 d","act.devices":"Devices","act.domains":"Domains","act.emptyHistory":"No history samples yet","act.global":"Global outbound","act.globalMissing":"Global mode needs an outbound","act.groupFollow":"Automatic","act.groupPickHelp":"By default, this card follows the group with the most connections; choosing a group changes only this card.","act.h1":"1 h","act.h24":"24 h","act.h6":"6 h","act.historyRange":"History range","act.issues":"Notifications","act.latency":"Latency","act.limited":{"one":"{n} feature is off","other":"{n} features are off"},"act.live":"Live","act.m10":"10 min","act.memory":"Memory","act.mode":"Outbound mode","act.modeApplied":"Outbound mode written to the configuration and reloaded: {mode}","act.modeInterleaved":"An ordinary rule comes before a must rule in the routing block. Move the must rules to the top of the routing block, then change the outbound mode.","act.modeNoRouting":"The main configuration has no routing section","act.modeReadOnly":"Read-only","act.modeReadOnlyAction":"Make the main file writable by honk and keep native_api in its own include file.","act.modeReadOnlyReason":"honk requires configuration writes and authenticated control. It marks the main config file read-only if it contains a secret field or nested block in native_api or clash_api, or an active listener secret.","act.modeUnavailable":"Not provided by this backend","act.modeWhyReadOnly":"Why is the mode read-only?","act.noConnections":"This backend does not provide connections","act.noHistory":"This backend does not provide history","act.noIssues":"No issues require attention","act.noOutbounds":"This backend does not provide outbound counters","act.noRoutingMode":"No routing rules configured","act.noSubscriptions":"No subscriptions yet","act.noticeGap":"{reason}, records dropped since recording started: {n}","act.noticeRepeat":{"one":"{n} time","other":"{n} times"},"act.outUsage":"Outbound downloads","act.rankingEmpty":"No connections to rank","act.rankingScope":"Ranked by download totals for visible connections. Shares use all visible data.","act.rankingTruncated":"The connection list is truncated. Rankings cover only the retrieved data.","act.readOnlyDocs":"Read-only config files","act.rss":"Resident memory","act.sampling":"Sampling","act.setup.checkConnection":"Check connection","act.setup.chooseRules":"Choose rules","act.setup.complete":"Complete","act.setup.connection":"Check the connection","act.setup.connectionHint":"Measure the selected node.","act.setup.dismiss":"Dismiss","act.setup.incomplete":"Incomplete","act.setup.nodes":"Add a subscription or nodes","act.setup.nodesHint":"Import proxy nodes.","act.setup.rules":"Choose routing rules","act.setup.rulesHint":"Select a routing template.","act.setup.title":"Getting started","act.since":"Since {time}","act.topDevices":"Top traffic","act.traffic":"Traffic","act.truncated":"Truncated","act.viewAll":"View all","act.viewDetails":"View details","cm.all":"All","cm.byWord":"By word","cm.commands":"Editing commands","cm.completions":"Completions","cm.controlCharacter":"Control character","cm.currentMatch":"Current match","cm.find":"Find","cm.findReplace":"Find and replace","cm.go":"Go","cm.gotoLine":"Go to line","cm.matchCase":"Match case","cm.next":"Next","cm.onLine":"On line","cm.previous":"Previous","cm.redo":"Redo","cm.regexp":"Regexp","cm.replace":"Replace","cm.replaceAll":"Replace all","cm.replaceOne":"Replace","cm.replacedMatches":"Matches replaced: $","cm.replacedOnLine":"Replaced match on line $","cm.selectionDeleted":"Selection deleted","cm.toggleComment":"Toggle comment","cm.undo":"Undo","config.acceptedDiagnostics":"Diagnostics kept for the accepted configuration (generation {generation})","config.atFile":"{file} line {line}: {message}","config.atLine":"Line {line}: {message}","config.backendDetail":"{text}. Backend message: {message}","config.backendText":"Details","config.backup.export":"Export configuration","config.backup.exportFailed":"Export failed: {error}","config.backup.exportHelp":"Exports accepted configuration. Listener secrets are omitted; other credentials may remain. Review before sharing.","config.backup.import":"Import server files","config.backup.importHelp":"Reads the file tree specified
Line truncated
|
||||
@@ -1 +0,0 @@
|
||||
const e=JSON.parse('{"about.contract":"Contract commit","about.credits":"Fonts Noto Sans TC/SC (OFL); icons Adobe Spectrum (Apache-2.0); palettes from Rosé Pine, Catppuccin, Nord, Kary Pro Colors, Ant Design, Arco Design and Semi Design.","about.duck":"Pet me","about.license":"License","about.privacy":"doona talks only to the backend you connect it to. It collects no data and sends nothing anywhere else.","about.quack":"Honk!","about.tagline":"Web UI for {engine}","about.title":"About doona","act.active":"Active connections","act.cgroup":"cgroup used","act.chooseRoutingMode":"Choose a routing mode","act.cpu":"CPU usage","act.cpuHelp":"The share of one CPU core that the process uses. A value above 100% means it uses more than one core.","act.d7":"7 d","act.devices":"Devices","act.domains":"Domains","act.emptyHistory":"No history samples yet","act.global":"Global outbound","act.globalMissing":"Global mode needs an outbound","act.groupFollow":"Automatic","act.groupPickHelp":"By default, this card follows the group with the most connections; choosing a group changes only this card.","act.h1":"1 h","act.h24":"24 h","act.h6":"6 h","act.historyRange":"History range","act.issues":"Notifications","act.latency":"Latency","act.limited":{"one":"{n} feature is off","other":"{n} features are off"},"act.live":"Live","act.m10":"10 min","act.memory":"Memory","act.mode":"Outbound mode","act.modeApplied":"Outbound mode written to the configuration and reloaded: {mode}","act.modeInterleaved":"An ordinary rule comes before a must rule in the routing block. Move the must rules to the top of the routing block, then change the outbound mode.","act.modeNoRouting":"The main configuration has no routing section","act.modeReadOnly":"Read-only","act.modeReadOnlyAction":"Make the main file writable by honk and keep native_api in its own include file.","act.modeReadOnlyReason":"honk requires configuration writes and authenticated control. It marks the main config file read-only if it contains a secret field or nested block in native_api or clash_api, or an active listener secret.","act.modeUnavailable":"Not provided by this backend","act.modeWhyReadOnly":"Why is the mode read-only?","act.noConnections":"This backend does not provide connections","act.noHistory":"This backend does not provide history","act.noIssues":"No issues require attention","act.noOutbounds":"This backend does not provide outbound counters","act.noRoutingMode":"No routing rules configured","act.noSubscriptions":"No subscriptions yet","act.noticeGap":"{reason}, records dropped since recording started: {n}","act.noticeRepeat":{"one":"{n} time","other":"{n} times"},"act.outUsage":"Outbound downloads","act.rankingEmpty":"No connections to rank","act.rankingScope":"Ranked by download totals for visible connections. Shares use all visible data.","act.rankingTruncated":"The connection list is truncated. Rankings cover only the retrieved data.","act.readOnlyDocs":"Read-only config files","act.rss":"Resident memory","act.sampling":"Sampling","act.setup.checkConnection":"Check connection","act.setup.chooseRules":"Choose rules","act.setup.complete":"Complete","act.setup.connection":"Check the connection","act.setup.connectionHint":"Measure the selected node.","act.setup.dismiss":"Dismiss","act.setup.incomplete":"Incomplete","act.setup.nodes":"Add a subscription or nodes","act.setup.nodesHint":"Import proxy nodes.","act.setup.rules":"Choose routing rules","act.setup.rulesHint":"Select a routing template.","act.setup.title":"Getting started","act.since":"Since {time}","act.topDevices":"Top traffic","act.traffic":"Traffic","act.truncated":"Truncated","act.viewAll":"View all","act.viewDetails":"View details","cm.all":"All","cm.byWord":"By word","cm.commands":"Editing commands","cm.completions":"Completions","cm.controlCharacter":"Control character","cm.currentMatch":"Current match","cm.find":"Find","cm.findReplace":"Find and replace","cm.go":"Go","cm.gotoLine":"Go to line","cm.matchCase":"Match case","cm.next":"Next","cm.onLine":"On line","cm.previous":"Previous","cm.redo":"Redo","cm.regexp":"Regexp","cm.replace":"Replace","cm.replaceAll":"Replace all","cm.replaceOne":"Replace","cm.replacedMatches":"Matches replaced: $","cm.replacedOnLine":"Replaced match on line $","cm.selectionDeleted":"Selection deleted","cm.toggleComment":"Toggle comment","cm.undo":"Undo","config.acceptedDiagnostics":"Diagnostics kept for the accepted configuration (generation {generation})","config.atFile":"{file} line {line}: {message}","config.atLine":"Line {line}: {message}","config.backendDetail":"{text}. Backend message: {message}","config.backendText":"Details","config.backup.export":"Export configuration","config.backup.exportFailed":"Export failed: {error}","config.backup.exportHelp":"Exports accepted configuration. Listener secrets are omitted; other credentials may remain. Review before sharing.","config.backup.import":"Import server files","config.backup.importHelp":"Reads the file tree specified
Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
const e=JSON.parse('{"about.contract":"契约提交","about.credits":"字体 Noto Sans TC/SC(OFL);图标 Adobe Spectrum(Apache-2.0);配色来自 Rosé Pine、Catppuccin、Nord、Kary Pro Colors、Ant Design、Arco Design 与 Semi Design。","about.duck":"摸摸我","about.license":"许可证","about.privacy":"doona 只与你连接的后端通信,不收集数据,也不发送到其他地方。","about.quack":"嘎!","about.tagline":"{engine} 的 Web 界面","about.title":"关于 doona","act.active":"活动连接","act.cgroup":"cgroup 已用","act.chooseRoutingMode":"选择分流方式","act.cpu":"CPU 使用率","act.cpuHelp":"进程占用单个 CPU 核心的百分比。超过 100% 表示使用了一个以上的核心。","act.d7":"7 天","act.devices":"设备","act.domains":"域名","act.emptyHistory":"暂无历史样本","act.global":"全局出站","act.globalMissing":"全局模式须指定出站","act.groupFollow":"自动","act.groupPickHelp":"默认跟随连接最多的策略组,选择组只会更改此卡片。","act.h1":"1 小时","act.h24":"24 小时","act.h6":"6 小时","act.historyRange":"历史范围","act.issues":"通知与问题","act.latency":"延迟","act.limited":"{n} 项功能未开启","act.live":"实时","act.m10":"10 分钟","act.memory":"内存","act.mode":"出站模式","act.modeApplied":"出站模式已写入配置并重载:{mode}","act.modeInterleaved":"routing 区段有普通规则排在 must 规则前面。请先把 must 规则移到 routing 区段最前面,再切换出站模式。","act.modeNoRouting":"主配置未包含 routing 区段","act.modeReadOnly":"只读","act.modeReadOnlyAction":"请确认 honk 对主配置文件有写入权限,并将 native_api 设置放在独立的 include 文件。","act.modeReadOnlyReason":"honk 须允许配置写入,且控制端已设置身份验证。主配置若含 native_api 或 clash_api 的密钥字段或嵌套区块,会标记为只读。配置含当前的监听密钥时也一样。","act.modeUnavailable":"此后端不提供","act.modeWhyReadOnly":"查看只读原因","act.noConnections":"此后端不提供连接","act.noHistory":"此后端不提供历史数据","act.noIssues":"当前没有需要处理的问题","act.noOutbounds":"此后端不提供出站统计","act.noRoutingMode":"尚未配置分流规则","act.noSubscriptions":"尚无订阅","act.noticeGap":"{reason},本次记录期间累计丢弃:{n}","act.noticeRepeat":"重复 {n} 次","act.outUsage":"出站下载量","act.rankingEmpty":"当前没有可排行的连接","act.rankingScope":"按当前可见连接的下载量排序,占比以全部可见数据计算。","act.rankingTruncated":"连接列表已截断,排行仅涵盖已获取的数据。","act.readOnlyDocs":"只读的配置文件","act.rss":"常驻内存","act.sampling":"采样中","act.setup.checkConnection":"检查连接","act.setup.chooseRules":"选择规则","act.setup.complete":"已完成","act.setup.connection":"检查连接","act.setup.connectionHint":"测试当前节点延迟。","act.setup.dismiss":"不再显示","act.setup.incomplete":"未完成","act.setup.nodes":"添加订阅或节点","act.setup.nodesHint":"导入代理节点。","act.setup.rules":"选择路由规则","act.setup.rulesHint":"选择路由模板。","act.setup.title":"开始使用","act.since":"自 {time} 起","act.topDevices":"流量排行","act.traffic":"流量","act.truncated":"已截断","act.viewAll":"查看全部","act.viewDetails":"查看详情","cm.all":"全部","cm.byWord":"整词","cm.commands":"编辑命令","cm.completions":"补全建议","cm.controlCharacter":"控制字符","cm.currentMatch":"当前匹配项","cm.find":"查找","cm.findReplace":"查找和替换","cm.go":"跳转","cm.gotoLine":"跳转到行","cm.matchCase":"区分大小写","cm.next":"下一个","cm.onLine":"行号","cm.previous":"上一个","cm.redo":"重做","cm.regexp":"正则表达式","cm.replace":"替换","cm.replaceAll":"全部替换","cm.replaceOne":"替换","cm.replacedMatches":"已替换 $ 处","cm.replacedOnLine":"已替换第 $ 行的匹配项","cm.selectionDeleted":"已删除选区","cm.toggleComment":"切换注释","cm.undo":"撤销","config.acceptedDiagnostics":"生效配置(generation {generation})保留的诊断","config.atFile":"{file} 第 {line} 行:{message}","config.atLine":"第 {line} 行:{message}","config.backendDetail":"{text}。后端消息:{message}","config.backendText":"详细","config.backup.export":"导出配置","config.backup.exportFailed":"无法导出:{error}","config.backup.exportHelp":"导出已接受的配置。不含 listener secrets,但可能保留其他凭据;分享前请检查。","config.backup.import":"导入服务器文件","config.backup.importHelp":"重新读取启动时 -c 指定的文件树,验证后替换数据库配置并立即应用。此操作不会上传本地文件。","config.backup.importTitle":"用服务器文件替换配置?","config.backup.imported":"已导入Line truncated
|
||||
@@ -1 +0,0 @@
|
||||
const e=JSON.parse('{"about.contract":"契约提交","about.credits":"字体 Noto Sans TC/SC(OFL);图标 Adobe Spectrum(Apache-2.0);配色来自 Rosé Pine、Catppuccin、Nord、Kary Pro Colors、Ant Design、Arco Design 与 Semi Design。","about.duck":"摸摸我","about.license":"许可证","about.privacy":"doona 只与你连接的后端通信,不收集数据,也不发送到其他地方。","about.quack":"嘎!","about.tagline":"{engine} 的 Web 界面","about.title":"关于 doona","act.active":"活动连接","act.cgroup":"cgroup 已用","act.chooseRoutingMode":"选择分流方式","act.cpu":"CPU 使用率","act.cpuHelp":"进程占用单个 CPU 核心的百分比。超过 100% 表示使用了一个以上的核心。","act.d7":"7 天","act.devices":"设备","act.domains":"域名","act.emptyHistory":"暂无历史样本","act.global":"全局出站","act.globalMissing":"全局模式须指定出站","act.groupFollow":"自动","act.groupPickHelp":"默认跟随连接最多的策略组,选择组只会更改此卡片。","act.h1":"1 小时","act.h24":"24 小时","act.h6":"6 小时","act.historyRange":"历史范围","act.issues":"通知与问题","act.latency":"延迟","act.limited":"{n} 项功能未开启","act.live":"实时","act.m10":"10 分钟","act.memory":"内存","act.mode":"出站模式","act.modeApplied":"出站模式已写入配置并重载:{mode}","act.modeInterleaved":"routing 区段有普通规则排在 must 规则前面。请先把 must 规则移到 routing 区段最前面,再切换出站模式。","act.modeNoRouting":"主配置未包含 routing 区段","act.modeReadOnly":"只读","act.modeReadOnlyAction":"请确认 honk 对主配置文件有写入权限,并将 native_api 设置放在独立的 include 文件。","act.modeReadOnlyReason":"honk 须允许配置写入,且控制端已设置身份验证。主配置若含 native_api 或 clash_api 的密钥字段或嵌套区块,会标记为只读。配置含当前的监听密钥时也一样。","act.modeUnavailable":"此后端不提供","act.modeWhyReadOnly":"查看只读原因","act.noConnections":"此后端不提供连接","act.noHistory":"此后端不提供历史数据","act.noIssues":"当前没有需要处理的问题","act.noOutbounds":"此后端不提供出站统计","act.noRoutingMode":"尚未配置分流规则","act.noSubscriptions":"尚无订阅","act.noticeGap":"{reason},本次记录期间累计丢弃:{n}","act.noticeRepeat":"重复 {n} 次","act.outUsage":"出站下载量","act.rankingEmpty":"当前没有可排行的连接","act.rankingScope":"按当前可见连接的下载量排序,占比以全部可见数据计算。","act.rankingTruncated":"连接列表已截断,排行仅涵盖已获取的数据。","act.readOnlyDocs":"只读的配置文件","act.rss":"常驻内存","act.sampling":"采样中","act.setup.checkConnection":"检查连接","act.setup.chooseRules":"选择规则","act.setup.complete":"已完成","act.setup.connection":"检查连接","act.setup.connectionHint":"测试当前节点延迟。","act.setup.dismiss":"不再显示","act.setup.incomplete":"未完成","act.setup.nodes":"添加订阅或节点","act.setup.nodesHint":"导入代理节点。","act.setup.rules":"选择路由规则","act.setup.rulesHint":"选择路由模板。","act.setup.title":"开始使用","act.since":"自 {time} 起","act.topDevices":"流量排行","act.traffic":"流量","act.truncated":"已截断","act.viewAll":"查看全部","act.viewDetails":"查看详情","cm.all":"全部","cm.byWord":"整词","cm.commands":"编辑命令","cm.completions":"补全建议","cm.controlCharacter":"控制字符","cm.currentMatch":"当前匹配项","cm.find":"查找","cm.findReplace":"查找和替换","cm.go":"跳转","cm.gotoLine":"跳转到行","cm.matchCase":"区分大小写","cm.next":"下一个","cm.onLine":"行号","cm.previous":"上一个","cm.redo":"重做","cm.regexp":"正则表达式","cm.replace":"替换","cm.replaceAll":"全部替换","cm.replaceOne":"替换","cm.replacedMatches":"已替换 $ 处","cm.replacedOnLine":"已替换第 $ 行的匹配项","cm.selectionDeleted":"已删除选区","cm.toggleComment":"切换注释","cm.undo":"撤销","config.acceptedDiagnostics":"生效配置(generation {generation})保留的诊断","config.atFile":"{file} 第 {line} 行:{message}","config.atLine":"第 {line} 行:{message}","config.backendDetail":"{text}。后端消息:{message}","config.backendText":"详细","config.backup.export":"导出配置","config.backup.exportFailed":"无法导出:{error}","config.backup.exportHelp":"导出已接受的配置。不含 listener secrets,但可能保留其他凭据;分享前请检查。","config.backup.import":"导入服务器文件","config.backup.importHelp":"重新读取启动时 -c 指定的文件树,验证后替换数据库配置并立即应用。此操作不会上传本地文件。","config.backup.importTitle":"用服务器文件替换配置?","config.backup.imported":"已导入Line truncated
|
||||
Loaded 100 of 154 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user