vue-safe-force-graph 2.0.98 → 2.0.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -6
- package/lib/style.css +24 -24
- package/lib/vue-safe-force-graph.js +300 -88
- package/lib/vue-safe-force-graph.umd.cjs +300 -88
- package/package.json +1 -1
|
@@ -5016,7 +5016,7 @@ function _wrapNativeSuper(Class) {
|
|
|
5016
5016
|
var formatRegExp = /%[sdj%]/g;
|
|
5017
5017
|
var warning = function warning2() {
|
|
5018
5018
|
};
|
|
5019
|
-
if (typeof process !== "undefined" && { "NVM_DIR": "/home/jiangzhenxiang/.nvm", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:", "npm_config_node_gyp": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", "SSH_CONNECTION": "10.41.8.17 60202 172.17.0.18 22", "npm_package_engines_npm": ">= 3.0.0", "npm_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/bin/npm-cli.js", "_": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin/vite", "LANG": "en_US.UTF-8", "HISTCONTROL": "ignoredups", "LESS": "-R", "GK_GL_PATH": "/tmp/gitkraken/gitlens/gitlens-ipc-server-1013371-41573.json", "HOSTNAME": "0b850022b261", "OLDPWD": "/home/jiangzhenxiang/fe_force_graph", "EDITOR": "vi", "COLORTERM": "truecolor", "NVM_CD_FLAGS": "-q", "npm_config_global_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_package_json": "/home/jiangzhenxiang/fe_force_graph/package.json", "VSCODE_GIT_ASKPASS_EXTRA_ARGS": "", "npm_config_user_agent": "npm/11.6.2 node/v24.13.0 linux x64 workspaces/false", "ZSH": "/home/jiangzhenxiang/.oh-my-zsh", "npm_config_init_module": "/home/jiangzhenxiang/.npm-init.js", "which_declare": "typeset -f", "USER": "jiangzhenxiang", "PAGER": "less", "LSCOLORS": "Gxfxcxdxbxegedabagacad", "npm_config_userconfig": "/home/jiangzhenxiang/.npmrc", "npm_lifecycle_event": "lib:base64", "PWD": "/home/jiangzhenxiang/fe_force_graph", "HOME": "/home/jiangzhenxiang", "npm_config_cache": "/home/jiangzhenxiang/.npm", "BROWSER": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/bin/helpers/browser.sh", "VSCODE_GIT_ASKPASS_NODE": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/node", "TERM_PROGRAM": "vscode", "SSH_CLIENT": "10.41.8.17 60202 22", "TERM_PROGRAM_VERSION": "1.112.0", "npm_command": "run", "AUTOJUMP_ERROR_PATH": "/home/jiangzhenxiang/.local/share/autojump/errors.log", "npm_config_noproxy": "", "ANTHROPIC_BASE_URL": "https://claudecode-internal.geelib.360.cn", "GK_GL_ADDR": "http://127.0.0.1:41573", "VSCODE_IPC_HOOK_CLI": "/tmp/vscode-ipc-2e6307dd-74df-40c0-90d4-7635c9a4e8c5.sock", "npm_config_npm_version": "11.6.2", "npm_config_globalconfig": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/etc/npmrc", "MAIL": "/var/spool/mail/jiangzhenxiang", "VSCODE_GIT_ASKPASS_MAIN": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/extensions/git/dist/askpass-main.js", "npm_lifecycle_script": "vite build --mode production_base64", "AUTOJUMP_SOURCED": "1", "INIT_CWD": "/home/jiangzhenxiang/fe_force_graph", "TERM": "xterm-256color", "SHELL": "/bin/bash", "VSCODE_STABLE": "1", "VSCODE_NONCE": "030c1f9f-b2cc-4208-b90c-e5cbe3454434", "VSCODE_INJECTION": "1", "NVM_BIN": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin", "COLOR": "1", "npm_package_engines_node": ">=8.9", "SHLVL": "7", "VSCODE_GIT_IPC_HANDLE": "/tmp/vscode-git-40681f0e0a.sock", "npm_config_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_node_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "npm_config_local_prefix": "/home/jiangzhenxiang/fe_force_graph", "ANTHROPIC_API_KEY": "sk-xiCMRqTeHrt4tuS7lStOhNGsBAExtBewVo0gXtMeK1mevRSt", "npm_package_version": "2.0.98", "LOGNAME": "jiangzhenxiang", "GIT_ASKPASS": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/extensions/git/dist/askpass.sh", "PATH": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/bin/remote-cli:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/usr/local/bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.local/bin:/home/jiangzhenxiang/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin", "NVM_INC": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/include/node", "NODE": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "HISTSIZE": "50000", "npm_package_name": "vue-safe-force-graph", "ANTHROPIC_AUTH_TOKEN": "zhixiao", "LESSOPEN": "||/usr/bin/lesspipe.sh %s", "BASH_FUNC_which%%": '() { ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot "$@"\n}', "NODE_ENV": "production" } && { "NVM_DIR": "/home/jiangzhenxiang/.nvm", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:", "npm_config_node_gyp": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", "SSH_CONNECTION": "10.41.8.17 60202 172.17.0.18 22", "npm_package_engines_npm": ">= 3.0.0", "npm_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/bin/npm-cli.js", "_": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin/vite", "LANG": "en_US.UTF-8", "HISTCONTROL": "ignoredups", "LESS": "-R", "GK_GL_PATH": "/tmp/gitkraken/gitlens/gitlens-ipc-server-1013371-41573.json", "HOSTNAME": "0b850022b261", "OLDPWD": "/home/jiangzhenxiang/fe_force_graph", "EDITOR": "vi", "COLORTERM": "truecolor", "NVM_CD_FLAGS": "-q", "npm_config_global_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_package_json": "/home/jiangzhenxiang/fe_force_graph/package.json", "VSCODE_GIT_ASKPASS_EXTRA_ARGS": "", "npm_config_user_agent": "npm/11.6.2 node/v24.13.0 linux x64 workspaces/false", "ZSH": "/home/jiangzhenxiang/.oh-my-zsh", "npm_config_init_module": "/home/jiangzhenxiang/.npm-init.js", "which_declare": "typeset -f", "USER": "jiangzhenxiang", "PAGER": "less", "LSCOLORS": "Gxfxcxdxbxegedabagacad", "npm_config_userconfig": "/home/jiangzhenxiang/.npmrc", "npm_lifecycle_event": "lib:base64", "PWD": "/home/jiangzhenxiang/fe_force_graph", "HOME": "/home/jiangzhenxiang", "npm_config_cache": "/home/jiangzhenxiang/.npm", "BROWSER": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/bin/helpers/browser.sh", "VSCODE_GIT_ASKPASS_NODE": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/node", "TERM_PROGRAM": "vscode", "SSH_CLIENT": "10.41.8.17 60202 22", "TERM_PROGRAM_VERSION": "1.112.0", "npm_command": "run", "AUTOJUMP_ERROR_PATH": "/home/jiangzhenxiang/.local/share/autojump/errors.log", "npm_config_noproxy": "", "ANTHROPIC_BASE_URL": "https://claudecode-internal.geelib.360.cn", "GK_GL_ADDR": "http://127.0.0.1:41573", "VSCODE_IPC_HOOK_CLI": "/tmp/vscode-ipc-2e6307dd-74df-40c0-90d4-7635c9a4e8c5.sock", "npm_config_npm_version": "11.6.2", "npm_config_globalconfig": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/etc/npmrc", "MAIL": "/var/spool/mail/jiangzhenxiang", "VSCODE_GIT_ASKPASS_MAIN": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/extensions/git/dist/askpass-main.js", "npm_lifecycle_script": "vite build --mode production_base64", "AUTOJUMP_SOURCED": "1", "INIT_CWD": "/home/jiangzhenxiang/fe_force_graph", "TERM": "xterm-256color", "SHELL": "/bin/bash", "VSCODE_STABLE": "1", "VSCODE_NONCE": "030c1f9f-b2cc-4208-b90c-e5cbe3454434", "VSCODE_INJECTION": "1", "NVM_BIN": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin", "COLOR": "1", "npm_package_engines_node": ">=8.9", "SHLVL": "7", "VSCODE_GIT_IPC_HANDLE": "/tmp/vscode-git-40681f0e0a.sock", "npm_config_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_node_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "npm_config_local_prefix": "/home/jiangzhenxiang/fe_force_graph", "ANTHROPIC_API_KEY": "sk-xiCMRqTeHrt4tuS7lStOhNGsBAExtBewVo0gXtMeK1mevRSt", "npm_package_version": "2.0.98", "LOGNAME": "jiangzhenxiang", "GIT_ASKPASS": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/extensions/git/dist/askpass.sh", "PATH": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-07ff9d6178ede9a1bd12ad3399074d726ebe6e43/server/bin/remote-cli:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/usr/local/bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.local/bin:/home/jiangzhenxiang/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin", "NVM_INC": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/include/node", "NODE": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "HISTSIZE": "50000", "npm_package_name": "vue-safe-force-graph", "ANTHROPIC_AUTH_TOKEN": "zhixiao", "LESSOPEN": "||/usr/bin/lesspipe.sh %s", "BASH_FUNC_which%%": '() { ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot "$@"\n}', "NODE_ENV": "production" }.NODE_ENV !== "production" && typeof window !== "undefined" && typeof document !== "undefined") {
|
|
5019
|
+
if (typeof process !== "undefined" && { "NVM_DIR": "/home/jiangzhenxiang/.nvm", "npm_config_node_gyp": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", "SSH_CONNECTION": "10.41.8.17 61655 172.17.0.18 22", "npm_package_engines_npm": ">= 3.0.0", "npm_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/bin/npm-cli.js", "_": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin/vite", "LANG": "en_US.UTF-8", "HISTCONTROL": "ignoredups", "GK_GL_PATH": "/tmp/gitkraken/gitlens/gitlens-ipc-server-1166248-45385.json", "HOSTNAME": "0b850022b261", "OLDPWD": "/home/jiangzhenxiang/fe_force_graph", "EDITOR": "vi", "COLORTERM": "truecolor", "NVM_CD_FLAGS": "", "npm_config_global_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_package_json": "/home/jiangzhenxiang/fe_force_graph/package.json", "VSCODE_GIT_ASKPASS_EXTRA_ARGS": "", "npm_config_user_agent": "npm/11.6.2 node/v24.13.0 linux x64 workspaces/false", "npm_config_init_module": "/home/jiangzhenxiang/.npm-init.js", "which_declare": "typeset -f", "USER": "jiangzhenxiang", "npm_config_userconfig": "/home/jiangzhenxiang/.npmrc", "npm_lifecycle_event": "lib:base64", "PWD": "/home/jiangzhenxiang/fe_force_graph", "HOME": "/home/jiangzhenxiang", "npm_config_cache": "/home/jiangzhenxiang/.npm", "BROWSER": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/bin/helpers/browser.sh", "VSCODE_GIT_ASKPASS_NODE": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/node", "TERM_PROGRAM": "vscode", "SSH_CLIENT": "10.41.8.17 61655 22", "TERM_PROGRAM_VERSION": "1.113.0", "npm_command": "run", "AUTOJUMP_ERROR_PATH": "/home/jiangzhenxiang/.local/share/autojump/errors.log", "npm_config_noproxy": "", "GK_GL_ADDR": "http://127.0.0.1:45385", "VSCODE_IPC_HOOK_CLI": "/tmp/vscode-ipc-53872512-4f59-4bd5-872d-c88e74fd3d8c.sock", "npm_config_npm_version": "11.6.2", "npm_config_globalconfig": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/etc/npmrc", "MAIL": "/var/spool/mail/jiangzhenxiang", "VSCODE_GIT_ASKPASS_MAIN": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/extensions/git/dist/askpass-main.js", "npm_lifecycle_script": "vite build --mode production_base64", "AUTOJUMP_SOURCED": "1", "INIT_CWD": "/home/jiangzhenxiang/fe_force_graph", "SHELL": "/bin/bash", "TERM": "xterm-256color", "VSCODE_NONCE": "8f291120-d6f4-4d8d-a570-82ce080cd880", "NVM_BIN": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin", "COLOR": "1", "npm_package_engines_node": ">=8.9", "SHLVL": "6", "VSCODE_GIT_IPC_HANDLE": "/tmp/vscode-git-40681f0e0a.sock", "npm_config_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_node_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "npm_config_local_prefix": "/home/jiangzhenxiang/fe_force_graph", "npm_package_version": "2.0.99", "LOGNAME": "jiangzhenxiang", "GIT_ASKPASS": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/extensions/git/dist/askpass.sh", "PATH": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/bin:/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/bin/remote-cli:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/usr/local/bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.local/bin:/home/jiangzhenxiang/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/jiangzhenxiang/bin", "NVM_INC": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/include/node", "NODE": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "HISTSIZE": "1000", "npm_package_name": "vue-safe-force-graph", "LESSOPEN": "||/usr/bin/lesspipe.sh %s", "BASH_FUNC_which%%": '() { ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot "$@"\n}', "NODE_ENV": "production" } && { "NVM_DIR": "/home/jiangzhenxiang/.nvm", "npm_config_node_gyp": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", "SSH_CONNECTION": "10.41.8.17 61655 172.17.0.18 22", "npm_package_engines_npm": ">= 3.0.0", "npm_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/bin/npm-cli.js", "_": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin/vite", "LANG": "en_US.UTF-8", "HISTCONTROL": "ignoredups", "GK_GL_PATH": "/tmp/gitkraken/gitlens/gitlens-ipc-server-1166248-45385.json", "HOSTNAME": "0b850022b261", "OLDPWD": "/home/jiangzhenxiang/fe_force_graph", "EDITOR": "vi", "COLORTERM": "truecolor", "NVM_CD_FLAGS": "", "npm_config_global_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_package_json": "/home/jiangzhenxiang/fe_force_graph/package.json", "VSCODE_GIT_ASKPASS_EXTRA_ARGS": "", "npm_config_user_agent": "npm/11.6.2 node/v24.13.0 linux x64 workspaces/false", "npm_config_init_module": "/home/jiangzhenxiang/.npm-init.js", "which_declare": "typeset -f", "USER": "jiangzhenxiang", "npm_config_userconfig": "/home/jiangzhenxiang/.npmrc", "npm_lifecycle_event": "lib:base64", "PWD": "/home/jiangzhenxiang/fe_force_graph", "HOME": "/home/jiangzhenxiang", "npm_config_cache": "/home/jiangzhenxiang/.npm", "BROWSER": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/bin/helpers/browser.sh", "VSCODE_GIT_ASKPASS_NODE": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/node", "TERM_PROGRAM": "vscode", "SSH_CLIENT": "10.41.8.17 61655 22", "TERM_PROGRAM_VERSION": "1.113.0", "npm_command": "run", "AUTOJUMP_ERROR_PATH": "/home/jiangzhenxiang/.local/share/autojump/errors.log", "npm_config_noproxy": "", "GK_GL_ADDR": "http://127.0.0.1:45385", "VSCODE_IPC_HOOK_CLI": "/tmp/vscode-ipc-53872512-4f59-4bd5-872d-c88e74fd3d8c.sock", "npm_config_npm_version": "11.6.2", "npm_config_globalconfig": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/etc/npmrc", "MAIL": "/var/spool/mail/jiangzhenxiang", "VSCODE_GIT_ASKPASS_MAIN": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/extensions/git/dist/askpass-main.js", "npm_lifecycle_script": "vite build --mode production_base64", "AUTOJUMP_SOURCED": "1", "INIT_CWD": "/home/jiangzhenxiang/fe_force_graph", "SHELL": "/bin/bash", "TERM": "xterm-256color", "VSCODE_NONCE": "8f291120-d6f4-4d8d-a570-82ce080cd880", "NVM_BIN": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin", "COLOR": "1", "npm_package_engines_node": ">=8.9", "SHLVL": "6", "VSCODE_GIT_IPC_HANDLE": "/tmp/vscode-git-40681f0e0a.sock", "npm_config_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_node_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "npm_config_local_prefix": "/home/jiangzhenxiang/fe_force_graph", "npm_package_version": "2.0.99", "LOGNAME": "jiangzhenxiang", "GIT_ASKPASS": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/extensions/git/dist/askpass.sh", "PATH": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/bin:/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/bin/remote-cli:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/usr/local/bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.local/bin:/home/jiangzhenxiang/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/jiangzhenxiang/bin", "NVM_INC": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/include/node", "NODE": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "HISTSIZE": "1000", "npm_package_name": "vue-safe-force-graph", "LESSOPEN": "||/usr/bin/lesspipe.sh %s", "BASH_FUNC_which%%": '() { ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot "$@"\n}', "NODE_ENV": "production" }.NODE_ENV !== "production" && typeof window !== "undefined" && typeof document !== "undefined") {
|
|
5020
5020
|
warning = function warning3(type4, errors) {
|
|
5021
5021
|
if (typeof console !== "undefined" && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === "undefined") {
|
|
5022
5022
|
if (errors.every(function(e2) {
|
|
@@ -22588,7 +22588,7 @@ function compile(message2, context) {
|
|
|
22588
22588
|
return cached;
|
|
22589
22589
|
}
|
|
22590
22590
|
const { ast, detectError } = baseCompile(message2, __spreadProps(__spreadValues({}, context), {
|
|
22591
|
-
location: { "NVM_DIR": "/home/jiangzhenxiang/.nvm", "
|
|
22591
|
+
location: { "NVM_DIR": "/home/jiangzhenxiang/.nvm", "npm_config_node_gyp": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", "SSH_CONNECTION": "10.41.8.17 61655 172.17.0.18 22", "npm_package_engines_npm": ">= 3.0.0", "npm_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/bin/npm-cli.js", "_": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin/vite", "LANG": "en_US.UTF-8", "HISTCONTROL": "ignoredups", "GK_GL_PATH": "/tmp/gitkraken/gitlens/gitlens-ipc-server-1166248-45385.json", "HOSTNAME": "0b850022b261", "OLDPWD": "/home/jiangzhenxiang/fe_force_graph", "EDITOR": "vi", "COLORTERM": "truecolor", "NVM_CD_FLAGS": "", "npm_config_global_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_package_json": "/home/jiangzhenxiang/fe_force_graph/package.json", "VSCODE_GIT_ASKPASS_EXTRA_ARGS": "", "npm_config_user_agent": "npm/11.6.2 node/v24.13.0 linux x64 workspaces/false", "npm_config_init_module": "/home/jiangzhenxiang/.npm-init.js", "which_declare": "typeset -f", "USER": "jiangzhenxiang", "npm_config_userconfig": "/home/jiangzhenxiang/.npmrc", "npm_lifecycle_event": "lib:base64", "PWD": "/home/jiangzhenxiang/fe_force_graph", "HOME": "/home/jiangzhenxiang", "npm_config_cache": "/home/jiangzhenxiang/.npm", "BROWSER": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/bin/helpers/browser.sh", "VSCODE_GIT_ASKPASS_NODE": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/node", "TERM_PROGRAM": "vscode", "SSH_CLIENT": "10.41.8.17 61655 22", "TERM_PROGRAM_VERSION": "1.113.0", "npm_command": "run", "AUTOJUMP_ERROR_PATH": "/home/jiangzhenxiang/.local/share/autojump/errors.log", "npm_config_noproxy": "", "GK_GL_ADDR": "http://127.0.0.1:45385", "VSCODE_IPC_HOOK_CLI": "/tmp/vscode-ipc-53872512-4f59-4bd5-872d-c88e74fd3d8c.sock", "npm_config_npm_version": "11.6.2", "npm_config_globalconfig": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/etc/npmrc", "MAIL": "/var/spool/mail/jiangzhenxiang", "VSCODE_GIT_ASKPASS_MAIN": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/extensions/git/dist/askpass-main.js", "npm_lifecycle_script": "vite build --mode production_base64", "AUTOJUMP_SOURCED": "1", "INIT_CWD": "/home/jiangzhenxiang/fe_force_graph", "SHELL": "/bin/bash", "TERM": "xterm-256color", "VSCODE_NONCE": "8f291120-d6f4-4d8d-a570-82ce080cd880", "NVM_BIN": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin", "COLOR": "1", "npm_package_engines_node": ">=8.9", "SHLVL": "6", "VSCODE_GIT_IPC_HANDLE": "/tmp/vscode-git-40681f0e0a.sock", "npm_config_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_node_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "npm_config_local_prefix": "/home/jiangzhenxiang/fe_force_graph", "npm_package_version": "2.0.99", "LOGNAME": "jiangzhenxiang", "GIT_ASKPASS": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/extensions/git/dist/askpass.sh", "PATH": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/bin:/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/bin/remote-cli:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/usr/local/bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.local/bin:/home/jiangzhenxiang/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/jiangzhenxiang/bin", "NVM_INC": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/include/node", "NODE": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "HISTSIZE": "1000", "npm_package_name": "vue-safe-force-graph", "LESSOPEN": "||/usr/bin/lesspipe.sh %s", "BASH_FUNC_which%%": '() { ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot "$@"\n}', "NODE_ENV": "production" }.NODE_ENV !== "production",
|
|
22592
22592
|
jit: true
|
|
22593
22593
|
}));
|
|
22594
22594
|
const msg = format(ast);
|
|
@@ -24162,7 +24162,7 @@ function createComposer(options = {}) {
|
|
|
24162
24162
|
trackReactivityValues();
|
|
24163
24163
|
let ret;
|
|
24164
24164
|
try {
|
|
24165
|
-
if ({ "NVM_DIR": "/home/jiangzhenxiang/.nvm", "
|
|
24165
|
+
if ({ "NVM_DIR": "/home/jiangzhenxiang/.nvm", "npm_config_node_gyp": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", "SSH_CONNECTION": "10.41.8.17 61655 172.17.0.18 22", "npm_package_engines_npm": ">= 3.0.0", "npm_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/bin/npm-cli.js", "_": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin/vite", "LANG": "en_US.UTF-8", "HISTCONTROL": "ignoredups", "GK_GL_PATH": "/tmp/gitkraken/gitlens/gitlens-ipc-server-1166248-45385.json", "HOSTNAME": "0b850022b261", "OLDPWD": "/home/jiangzhenxiang/fe_force_graph", "EDITOR": "vi", "COLORTERM": "truecolor", "NVM_CD_FLAGS": "", "npm_config_global_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_package_json": "/home/jiangzhenxiang/fe_force_graph/package.json", "VSCODE_GIT_ASKPASS_EXTRA_ARGS": "", "npm_config_user_agent": "npm/11.6.2 node/v24.13.0 linux x64 workspaces/false", "npm_config_init_module": "/home/jiangzhenxiang/.npm-init.js", "which_declare": "typeset -f", "USER": "jiangzhenxiang", "npm_config_userconfig": "/home/jiangzhenxiang/.npmrc", "npm_lifecycle_event": "lib:base64", "PWD": "/home/jiangzhenxiang/fe_force_graph", "HOME": "/home/jiangzhenxiang", "npm_config_cache": "/home/jiangzhenxiang/.npm", "BROWSER": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/bin/helpers/browser.sh", "VSCODE_GIT_ASKPASS_NODE": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/node", "TERM_PROGRAM": "vscode", "SSH_CLIENT": "10.41.8.17 61655 22", "TERM_PROGRAM_VERSION": "1.113.0", "npm_command": "run", "AUTOJUMP_ERROR_PATH": "/home/jiangzhenxiang/.local/share/autojump/errors.log", "npm_config_noproxy": "", "GK_GL_ADDR": "http://127.0.0.1:45385", "VSCODE_IPC_HOOK_CLI": "/tmp/vscode-ipc-53872512-4f59-4bd5-872d-c88e74fd3d8c.sock", "npm_config_npm_version": "11.6.2", "npm_config_globalconfig": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/etc/npmrc", "MAIL": "/var/spool/mail/jiangzhenxiang", "VSCODE_GIT_ASKPASS_MAIN": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/extensions/git/dist/askpass-main.js", "npm_lifecycle_script": "vite build --mode production_base64", "AUTOJUMP_SOURCED": "1", "INIT_CWD": "/home/jiangzhenxiang/fe_force_graph", "SHELL": "/bin/bash", "TERM": "xterm-256color", "VSCODE_NONCE": "8f291120-d6f4-4d8d-a570-82ce080cd880", "NVM_BIN": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin", "COLOR": "1", "npm_package_engines_node": ">=8.9", "SHLVL": "6", "VSCODE_GIT_IPC_HANDLE": "/tmp/vscode-git-40681f0e0a.sock", "npm_config_prefix": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0", "npm_node_execpath": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "npm_config_local_prefix": "/home/jiangzhenxiang/fe_force_graph", "npm_package_version": "2.0.99", "LOGNAME": "jiangzhenxiang", "GIT_ASKPASS": "/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/extensions/git/dist/askpass.sh", "PATH": "/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/home/jiangzhenxiang/fe_force_graph/node_modules/.bin:/home/jiangzhenxiang/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/bin:/home/jiangzhenxiang/.vscode-server/cli/servers/Stable-cfbea10c5ffb233ea9177d34726e6056e89913dc/server/bin/remote-cli:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/usr/local/bin:/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin:/home/jiangzhenxiang/.local/bin:/home/jiangzhenxiang/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/jiangzhenxiang/bin", "NVM_INC": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/include/node", "NODE": "/home/jiangzhenxiang/.nvm/versions/node/v24.13.0/bin/node", "HISTSIZE": "1000", "npm_package_name": "vue-safe-force-graph", "LESSOPEN": "||/usr/bin/lesspipe.sh %s", "BASH_FUNC_which%%": '() { ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot "$@"\n}', "NODE_ENV": "production" }.NODE_ENV !== "production" || __INTLIFY_PROD_DEVTOOLS__) {
|
|
24166
24166
|
/* @__PURE__ */ setAdditionalMeta(/* @__PURE__ */ getMetaInfo());
|
|
24167
24167
|
}
|
|
24168
24168
|
if (!_isGlobal) {
|
|
@@ -27863,7 +27863,7 @@ function getNodeImage(_0) {
|
|
|
27863
27863
|
console.log("loadCompleted error", e2);
|
|
27864
27864
|
}
|
|
27865
27865
|
} else if (node.type === "nodeType" || node.type === "aggregation") {
|
|
27866
|
-
const iconKey = node.icon || "node_type";
|
|
27866
|
+
const iconKey = node.icon || (node.type === "aggregation" ? "aggregation" : "node_type");
|
|
27867
27867
|
image = getIconFile(iconKey) ? getIconFile(iconKey) : getIconFile("node_type");
|
|
27868
27868
|
} else if (flag && (node.type === "ip" || node.type === "internet")) {
|
|
27869
27869
|
image = getImgPath(`./public/d3svg1/flags/${flag}.png`);
|
|
@@ -57116,7 +57116,7 @@ const NodeContextmenu = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sf
|
|
|
57116
57116
|
const elTable = "";
|
|
57117
57117
|
const elCheckbox = "";
|
|
57118
57118
|
const elTableColumn = "";
|
|
57119
|
-
const
|
|
57119
|
+
const Popover_vue_vue_type_style_index_0_scoped_b035d1fc_lang = "";
|
|
57120
57120
|
const _sfc_main$4 = {
|
|
57121
57121
|
name: "Popover",
|
|
57122
57122
|
components: {
|
|
@@ -57249,26 +57249,34 @@ const _sfc_main$4 = {
|
|
|
57249
57249
|
nodeInfo: {
|
|
57250
57250
|
handler: function() {
|
|
57251
57251
|
var _a2;
|
|
57252
|
-
|
|
57253
|
-
var _a3, _b2, _c2;
|
|
57254
|
-
const detail = item.detail;
|
|
57255
|
-
return __spreadProps(__spreadValues({}, item), {
|
|
57256
|
-
name: ((_a3 = detail == null ? void 0 : detail.info) == null ? void 0 : _a3.name) || item.name,
|
|
57257
|
-
level: ((_c2 = (_b2 = detail == null ? void 0 : detail.info) == null ? void 0 : _b2.basic) == null ? void 0 : _c2.level) || ""
|
|
57258
|
-
});
|
|
57259
|
-
});
|
|
57260
|
-
list == null ? void 0 : list.sort((a2, b2) => {
|
|
57261
|
-
var _a3, _b2;
|
|
57262
|
-
const ADangerNumber = (_a3 = this.levelList.find((item) => item.level === a2.level)) == null ? void 0 : _a3.dangerNumber;
|
|
57263
|
-
const BDangerNumber = (_b2 = this.levelList.find((item) => item.level === b2.level)) == null ? void 0 : _b2.dangerNumber;
|
|
57264
|
-
return BDangerNumber - ADangerNumber;
|
|
57265
|
-
});
|
|
57266
|
-
this.aggregationList = list;
|
|
57252
|
+
this.aggregationList = this.buildAggregationList(((_a2 = this.nodeInfo) == null ? void 0 : _a2.list) || []);
|
|
57267
57253
|
},
|
|
57268
|
-
immediate: true
|
|
57254
|
+
immediate: true,
|
|
57255
|
+
deep: true
|
|
57269
57256
|
}
|
|
57270
57257
|
},
|
|
57271
57258
|
methods: {
|
|
57259
|
+
buildAggregationList(list) {
|
|
57260
|
+
const aggregationList = list.map((item) => {
|
|
57261
|
+
var _a2, _b2, _c2;
|
|
57262
|
+
const detail = item.detail;
|
|
57263
|
+
return __spreadProps(__spreadValues({}, item), {
|
|
57264
|
+
name: ((_a2 = detail == null ? void 0 : detail.info) == null ? void 0 : _a2.name) || item.name,
|
|
57265
|
+
level: ((_c2 = (_b2 = detail == null ? void 0 : detail.info) == null ? void 0 : _b2.basic) == null ? void 0 : _c2.level) || ""
|
|
57266
|
+
});
|
|
57267
|
+
});
|
|
57268
|
+
aggregationList.sort((a2, b2) => {
|
|
57269
|
+
var _a2, _b2;
|
|
57270
|
+
const ADangerNumber = (_a2 = this.levelList.find((item) => item.level === a2.level)) == null ? void 0 : _a2.dangerNumber;
|
|
57271
|
+
const BDangerNumber = (_b2 = this.levelList.find((item) => item.level === b2.level)) == null ? void 0 : _b2.dangerNumber;
|
|
57272
|
+
return BDangerNumber - ADangerNumber;
|
|
57273
|
+
});
|
|
57274
|
+
return aggregationList;
|
|
57275
|
+
},
|
|
57276
|
+
getAggregationSourceNode(nodeId) {
|
|
57277
|
+
var _a2, _b2;
|
|
57278
|
+
return (_b2 = (_a2 = this.nodeInfo) == null ? void 0 : _a2.list) == null ? void 0 : _b2.find((node) => node.id === nodeId);
|
|
57279
|
+
},
|
|
57272
57280
|
handleMouseEnter() {
|
|
57273
57281
|
this.showSelf = true;
|
|
57274
57282
|
},
|
|
@@ -57369,21 +57377,23 @@ const _sfc_main$4 = {
|
|
|
57369
57377
|
return sortTags(uniqueTags(tags));
|
|
57370
57378
|
},
|
|
57371
57379
|
addToGraph(item) {
|
|
57380
|
+
var _a2;
|
|
57381
|
+
const node = this.getAggregationSourceNode(item.id) || item;
|
|
57382
|
+
const aggregationList = (((_a2 = this.nodeInfo) == null ? void 0 : _a2.list) || []).filter((currentNode) => currentNode.id !== item.id);
|
|
57372
57383
|
const actions = {
|
|
57373
57384
|
type: "addFromAggregation",
|
|
57374
57385
|
// 从聚合节点中 插入到图中
|
|
57375
57386
|
addOne: {
|
|
57376
|
-
nodes: [
|
|
57387
|
+
nodes: [node],
|
|
57377
57388
|
links: [{
|
|
57378
57389
|
source: this.nodeInfo.relationId,
|
|
57379
|
-
target:
|
|
57390
|
+
target: node.id
|
|
57380
57391
|
}]
|
|
57381
57392
|
}
|
|
57382
57393
|
};
|
|
57383
|
-
this.aggregationList
|
|
57384
|
-
this.history.updateAggregationNode(this.aggregationList, this.nodeInfo.id);
|
|
57394
|
+
this.history.updateAggregationNode(aggregationList, this.nodeInfo.id);
|
|
57385
57395
|
this.history.pushState(actions);
|
|
57386
|
-
if (!
|
|
57396
|
+
if (!aggregationList.length) {
|
|
57387
57397
|
const aggregationNode = this.nodeInfo;
|
|
57388
57398
|
const deleteAggregation = {
|
|
57389
57399
|
deleteOne: {
|
|
@@ -57689,7 +57699,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
57689
57699
|
])
|
|
57690
57700
|
], 38);
|
|
57691
57701
|
}
|
|
57692
|
-
const Popover = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-
|
|
57702
|
+
const Popover = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-b035d1fc"]]);
|
|
57693
57703
|
const clusterMenuPlugs = [
|
|
57694
57704
|
{
|
|
57695
57705
|
id: 52,
|
|
@@ -57725,7 +57735,7 @@ const clusterMenuPlugs = [
|
|
|
57725
57735
|
}
|
|
57726
57736
|
];
|
|
57727
57737
|
const name = "vue-safe-force-graph";
|
|
57728
|
-
const version = "2.0.
|
|
57738
|
+
const version = "2.0.99";
|
|
57729
57739
|
const description = "force_graph in security area";
|
|
57730
57740
|
const author = "jason zhang";
|
|
57731
57741
|
const module$1 = "./lib/vue-safe-force-graph.js";
|
|
@@ -58078,7 +58088,17 @@ const _sfc_main$3 = {
|
|
|
58078
58088
|
ticking: false,
|
|
58079
58089
|
anim1: null,
|
|
58080
58090
|
anim2: null,
|
|
58081
|
-
anim3: null
|
|
58091
|
+
anim3: null,
|
|
58092
|
+
// renderPending 只表示当前这轮 Konva 节点/边是否已经真正绘制到画布,
|
|
58093
|
+
// 供父组件在读取 getClientRect 前等待异步图标加载和 update() 完成。
|
|
58094
|
+
renderStablePromise: Promise.resolve(),
|
|
58095
|
+
resolveRenderStable: null,
|
|
58096
|
+
renderPending: false,
|
|
58097
|
+
// layoutPending 只表示 d3 力导布局是否还在继续推进,
|
|
58098
|
+
// 供父组件在适配视图前等待节点坐标稳定。
|
|
58099
|
+
layoutStablePromise: Promise.resolve(),
|
|
58100
|
+
resolveLayoutStable: null,
|
|
58101
|
+
layoutPending: false
|
|
58082
58102
|
};
|
|
58083
58103
|
},
|
|
58084
58104
|
computed: {
|
|
@@ -58118,6 +58138,7 @@ const _sfc_main$3 = {
|
|
|
58118
58138
|
this.nodes = this.data.nodes;
|
|
58119
58139
|
this.links = this.data.links;
|
|
58120
58140
|
this.nodesLength = this.data.nodes.length;
|
|
58141
|
+
this.markRenderPending();
|
|
58121
58142
|
this.update(isUpdateSimulation);
|
|
58122
58143
|
},
|
|
58123
58144
|
deep: true
|
|
@@ -58129,6 +58150,7 @@ const _sfc_main$3 = {
|
|
|
58129
58150
|
yield this.loadCustomIcon();
|
|
58130
58151
|
yield this.loadIcons();
|
|
58131
58152
|
this.initForceGraph();
|
|
58153
|
+
this.markRenderPending();
|
|
58132
58154
|
setTimeout(() => {
|
|
58133
58155
|
this.update();
|
|
58134
58156
|
}, 50);
|
|
@@ -58363,6 +58385,7 @@ const _sfc_main$3 = {
|
|
|
58363
58385
|
this.simulation.force("collision", forceCollide().radius(this.nodeWidth / 2));
|
|
58364
58386
|
}
|
|
58365
58387
|
if (this.isAutoTick) {
|
|
58388
|
+
this.markLayoutPending();
|
|
58366
58389
|
this.simulation.alpha(1).restart();
|
|
58367
58390
|
this.simulation.on("tick", this.ticked);
|
|
58368
58391
|
} else {
|
|
@@ -58370,6 +58393,7 @@ const _sfc_main$3 = {
|
|
|
58370
58393
|
this.sendManualTick();
|
|
58371
58394
|
}
|
|
58372
58395
|
this.simulation.on("end", () => {
|
|
58396
|
+
this.markLayoutStable();
|
|
58373
58397
|
log("simulation end time", Date.now());
|
|
58374
58398
|
if (this.isThreatPath) {
|
|
58375
58399
|
this.centerAndZoom(1);
|
|
@@ -58382,6 +58406,7 @@ const _sfc_main$3 = {
|
|
|
58382
58406
|
if (this.ticking) {
|
|
58383
58407
|
return;
|
|
58384
58408
|
}
|
|
58409
|
+
this.markLayoutPending();
|
|
58385
58410
|
this.ticking = true;
|
|
58386
58411
|
this.doClearCanvas();
|
|
58387
58412
|
this.simulation.alphaDecay(this.alphaDecay * 2);
|
|
@@ -58396,9 +58421,25 @@ const _sfc_main$3 = {
|
|
|
58396
58421
|
console.timeEnd("tick");
|
|
58397
58422
|
this.ticking = false;
|
|
58398
58423
|
this.update();
|
|
58399
|
-
this.
|
|
58424
|
+
this.markLayoutStable();
|
|
58400
58425
|
}, 1e3);
|
|
58401
58426
|
},
|
|
58427
|
+
clearGraphView() {
|
|
58428
|
+
var _a2;
|
|
58429
|
+
(_a2 = this.simulation) == null ? void 0 : _a2.stop();
|
|
58430
|
+
this.simulation = null;
|
|
58431
|
+
this.hasSimulation = false;
|
|
58432
|
+
this.selection = [];
|
|
58433
|
+
this.markRenderStable();
|
|
58434
|
+
this.markLayoutStable();
|
|
58435
|
+
if (!this.layer || !this.stage) {
|
|
58436
|
+
this.nodesGroup = {};
|
|
58437
|
+
this.linksGroup = {};
|
|
58438
|
+
return;
|
|
58439
|
+
}
|
|
58440
|
+
this.doClearCanvas();
|
|
58441
|
+
this.stage.batchDraw();
|
|
58442
|
+
},
|
|
58402
58443
|
update(isUpdateSimulation = false) {
|
|
58403
58444
|
return __async(this, null, function* () {
|
|
58404
58445
|
var _a2, _b2, _c2;
|
|
@@ -58407,9 +58448,11 @@ const _sfc_main$3 = {
|
|
|
58407
58448
|
yield this.loadCustomIcon();
|
|
58408
58449
|
}
|
|
58409
58450
|
if (this.destroyed) {
|
|
58451
|
+
this.markRenderStable();
|
|
58410
58452
|
return;
|
|
58411
58453
|
}
|
|
58412
58454
|
if (!((_c2 = this.nodes) == null ? void 0 : _c2.length)) {
|
|
58455
|
+
this.clearGraphView();
|
|
58413
58456
|
return;
|
|
58414
58457
|
}
|
|
58415
58458
|
this.initScript();
|
|
@@ -58427,6 +58470,7 @@ const _sfc_main$3 = {
|
|
|
58427
58470
|
this.centerAndZoom(0.8);
|
|
58428
58471
|
}, 200);
|
|
58429
58472
|
}
|
|
58473
|
+
this.markRenderStable();
|
|
58430
58474
|
});
|
|
58431
58475
|
},
|
|
58432
58476
|
doClearCanvas() {
|
|
@@ -58883,6 +58927,7 @@ const _sfc_main$3 = {
|
|
|
58883
58927
|
}
|
|
58884
58928
|
this.simulation.nodes(this.nodes);
|
|
58885
58929
|
this.simulation.force("link").links(this.links);
|
|
58930
|
+
this.markLayoutPending();
|
|
58886
58931
|
this.simulation.alpha(0.4).restart();
|
|
58887
58932
|
if (this.history.layoutIndex === 0) {
|
|
58888
58933
|
if (((_a2 = this.nodes) == null ? void 0 : _a2.length) < this.manualTickNumber) {
|
|
@@ -58897,7 +58942,73 @@ const _sfc_main$3 = {
|
|
|
58897
58942
|
} catch (e2) {
|
|
58898
58943
|
console.log(e2, "simulation-e1");
|
|
58899
58944
|
(_b2 = this.simulation) == null ? void 0 : _b2.stop();
|
|
58945
|
+
this.markLayoutStable();
|
|
58946
|
+
}
|
|
58947
|
+
},
|
|
58948
|
+
// 开始等待一轮新的 d3 布局稳定事件。
|
|
58949
|
+
// 同一轮布局只创建一个 Promise,避免重复覆盖等待对象。
|
|
58950
|
+
markLayoutPending() {
|
|
58951
|
+
if (this.layoutPending) {
|
|
58952
|
+
return;
|
|
58953
|
+
}
|
|
58954
|
+
this.layoutPending = true;
|
|
58955
|
+
this.layoutStablePromise = new Promise((resolve) => {
|
|
58956
|
+
this.resolveLayoutStable = resolve;
|
|
58957
|
+
});
|
|
58958
|
+
},
|
|
58959
|
+
// 结束当前布局等待,并释放所有挂起的适配逻辑。
|
|
58960
|
+
markLayoutStable() {
|
|
58961
|
+
if (!this.layoutPending) {
|
|
58962
|
+
return;
|
|
58963
|
+
}
|
|
58964
|
+
this.layoutPending = false;
|
|
58965
|
+
this.resolveLayoutStable && this.resolveLayoutStable();
|
|
58966
|
+
this.resolveLayoutStable = null;
|
|
58967
|
+
},
|
|
58968
|
+
// 对外暴露布局稳定等待接口;如果当前没有布局任务,直接返回已完成状态。
|
|
58969
|
+
waitForLayoutStable() {
|
|
58970
|
+
return this.layoutPending ? this.layoutStablePromise : Promise.resolve();
|
|
58971
|
+
},
|
|
58972
|
+
// 开始等待一轮新的 Konva 渲染完成事件,
|
|
58973
|
+
// 用于父组件在读取 grab 边界前确认画布元素已经真正落到 stage 上。
|
|
58974
|
+
markRenderPending() {
|
|
58975
|
+
if (this.renderPending) {
|
|
58976
|
+
return;
|
|
58977
|
+
}
|
|
58978
|
+
this.renderPending = true;
|
|
58979
|
+
this.renderStablePromise = new Promise((resolve) => {
|
|
58980
|
+
this.resolveRenderStable = resolve;
|
|
58981
|
+
});
|
|
58982
|
+
},
|
|
58983
|
+
// 标记当前画布重绘结束,释放依赖最新边界的外部逻辑。
|
|
58984
|
+
markRenderStable() {
|
|
58985
|
+
if (!this.renderPending) {
|
|
58986
|
+
return;
|
|
58900
58987
|
}
|
|
58988
|
+
this.renderPending = false;
|
|
58989
|
+
this.resolveRenderStable && this.resolveRenderStable();
|
|
58990
|
+
this.resolveRenderStable = null;
|
|
58991
|
+
},
|
|
58992
|
+
// 对外暴露渲染完成等待接口;如果当前没有重绘任务,直接返回已完成状态。
|
|
58993
|
+
waitForGraphRender() {
|
|
58994
|
+
return this.renderPending ? this.renderStablePromise : Promise.resolve();
|
|
58995
|
+
},
|
|
58996
|
+
// 额外等待一个浏览器绘制帧,让最新的节点坐标和 Konva 变换真正体现在边界计算里。
|
|
58997
|
+
waitForNextFrame() {
|
|
58998
|
+
return new Promise((resolve) => {
|
|
58999
|
+
requestAnimationFrame(() => {
|
|
59000
|
+
resolve();
|
|
59001
|
+
});
|
|
59002
|
+
});
|
|
59003
|
+
},
|
|
59004
|
+
// 给父组件提供一个稳定的“适配入口”:
|
|
59005
|
+
// 只有在布局停止推进且画布完成一帧刷新后,才执行 centerAndZoom。
|
|
59006
|
+
centerAndZoomAfterLayoutStable(paddingPercent = 0.8, canLarger = false) {
|
|
59007
|
+
return __async(this, null, function* () {
|
|
59008
|
+
yield this.waitForLayoutStable();
|
|
59009
|
+
yield this.waitForNextFrame();
|
|
59010
|
+
yield this.centerAndZoom(paddingPercent, canLarger);
|
|
59011
|
+
});
|
|
58901
59012
|
},
|
|
58902
59013
|
ticked() {
|
|
58903
59014
|
log("ticked");
|
|
@@ -59810,7 +59921,6 @@ const _sfc_main$3 = {
|
|
|
59810
59921
|
y: offsetY
|
|
59811
59922
|
});
|
|
59812
59923
|
this.layer.batchDraw();
|
|
59813
|
-
yield new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
59814
59924
|
const newBounds = this.grab.getClientRect();
|
|
59815
59925
|
if ((_a2 = this.simulation) == null ? void 0 : _a2.force) {
|
|
59816
59926
|
const forceCenterWidth = fullWidth / (2 * scale);
|
|
@@ -60255,7 +60365,7 @@ const _sfc_main$3 = {
|
|
|
60255
60365
|
console.log("loadCompleted error", e2);
|
|
60256
60366
|
}
|
|
60257
60367
|
}
|
|
60258
|
-
const iconKey = node.icon || "node_type";
|
|
60368
|
+
const iconKey = node.icon || (node.type === "aggregation" ? "aggregation" : "node_type");
|
|
60259
60369
|
if (iconImages[iconKey]) {
|
|
60260
60370
|
image = iconImages[iconKey];
|
|
60261
60371
|
return image;
|
|
@@ -60995,6 +61105,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
60995
61105
|
}
|
|
60996
61106
|
const SnapShotDialog = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
|
|
60997
61107
|
const graphByCanvas_vue_vue_type_style_index_0_lang = "";
|
|
61108
|
+
const INITIAL_PREVIEW_FIT_PADDING = 0.7;
|
|
61109
|
+
const INITIAL_FINAL_FIT_PADDING = 0.8;
|
|
60998
61110
|
const _sfc_main = {
|
|
60999
61111
|
name: "ForceGraphByCanvas",
|
|
61000
61112
|
components: {
|
|
@@ -61279,12 +61391,16 @@ const _sfc_main = {
|
|
|
61279
61391
|
// 间距
|
|
61280
61392
|
requestGraphData: true,
|
|
61281
61393
|
// 是否有编辑权限
|
|
61282
|
-
nodeTypeList: []
|
|
61394
|
+
nodeTypeList: [],
|
|
61395
|
+
// 下面这组状态只服务于首屏自动适配:
|
|
61396
|
+
// startNode 并发加载时,允许先做一次预览适配,全部完成后再串行做最终适配。
|
|
61397
|
+
initialAutoFitPending: false,
|
|
61398
|
+
initialPreviewFitDone: false,
|
|
61399
|
+
pendingStartNodeLoads: 0,
|
|
61400
|
+
initialStartNodeTaskCount: 0,
|
|
61401
|
+
initialFitSequence: Promise.resolve()
|
|
61283
61402
|
};
|
|
61284
61403
|
},
|
|
61285
|
-
created() {
|
|
61286
|
-
ensureI18nGlobals(this);
|
|
61287
|
-
},
|
|
61288
61404
|
computed: {
|
|
61289
61405
|
topFrame() {
|
|
61290
61406
|
return window.top.location === window.location;
|
|
@@ -61314,12 +61430,15 @@ const _sfc_main = {
|
|
|
61314
61430
|
}
|
|
61315
61431
|
}
|
|
61316
61432
|
},
|
|
61433
|
+
created() {
|
|
61434
|
+
ensureI18nGlobals(this);
|
|
61435
|
+
},
|
|
61317
61436
|
unmounted() {
|
|
61318
61437
|
window.onresize = null;
|
|
61319
61438
|
},
|
|
61320
61439
|
mounted() {
|
|
61321
61440
|
return __async(this, null, function* () {
|
|
61322
|
-
console.log('"2026/3/
|
|
61441
|
+
console.log('"2026/3/26 15:30:50"', "2026/3/26 15:30:50");
|
|
61323
61442
|
this.initializeGraphApi();
|
|
61324
61443
|
window.onresize = () => {
|
|
61325
61444
|
this.fullScreen = !!document.fullscreenElement;
|
|
@@ -61341,10 +61460,7 @@ const _sfc_main = {
|
|
|
61341
61460
|
this.graphApi.getSnapshotDetail({ snapshot_id: this.snapshot_id, vcode: this.vcode }).then((res) => {
|
|
61342
61461
|
this.moduleDetail = res.data.config;
|
|
61343
61462
|
this.history.initFromSnapshot(JSON.parse(res.data.data));
|
|
61344
|
-
|
|
61345
|
-
this.$refs.render.updateNodeStyle();
|
|
61346
|
-
this.centerAndZoom(0.8, false);
|
|
61347
|
-
}, 1e3);
|
|
61463
|
+
this.fitAfterLayoutStable(INITIAL_FINAL_FIT_PADDING, false);
|
|
61348
61464
|
}).catch((e2) => {
|
|
61349
61465
|
console.log(e2, "e");
|
|
61350
61466
|
}).finally((e2) => {
|
|
@@ -61365,6 +61481,95 @@ const _sfc_main = {
|
|
|
61365
61481
|
this.onOutdate(e2.res);
|
|
61366
61482
|
});
|
|
61367
61483
|
},
|
|
61484
|
+
// 等待子组件完成“渲染 + 布局稳定”后再做一次适配,
|
|
61485
|
+
// 供快照恢复、首屏自动适配和首次手动加点三条链路复用。
|
|
61486
|
+
fitAfterLayoutStable() {
|
|
61487
|
+
return __async(this, arguments, function* (paddingPercent = INITIAL_FINAL_FIT_PADDING, canLarger = false) {
|
|
61488
|
+
yield this.$nextTick();
|
|
61489
|
+
const render2 = this.$refs.render;
|
|
61490
|
+
if (!render2) {
|
|
61491
|
+
return;
|
|
61492
|
+
}
|
|
61493
|
+
yield render2.waitForGraphRender();
|
|
61494
|
+
render2.updateNodeStyle();
|
|
61495
|
+
yield render2.centerAndZoomAfterLayoutStable(paddingPercent, canLarger);
|
|
61496
|
+
});
|
|
61497
|
+
},
|
|
61498
|
+
// 把所有首屏适配串到同一条 Promise 链上,
|
|
61499
|
+
// 保证多次 fit 请求按顺序执行,不会互相覆盖 stage 状态。
|
|
61500
|
+
queueInitialFit(paddingPercent, canLarger = false) {
|
|
61501
|
+
this.initialFitSequence = this.initialFitSequence.then(() => {
|
|
61502
|
+
return this.fitAfterLayoutStable(paddingPercent, canLarger);
|
|
61503
|
+
});
|
|
61504
|
+
return this.initialFitSequence;
|
|
61505
|
+
},
|
|
61506
|
+
// 在首批 startNode 部分返回时先做一次预览适配,
|
|
61507
|
+
// 尽快把节点放进可视区,避免首屏长时间停在空白或角落。
|
|
61508
|
+
previewFitDuringInitialLoad() {
|
|
61509
|
+
return this.queueInitialFit(INITIAL_PREVIEW_FIT_PADDING, false);
|
|
61510
|
+
},
|
|
61511
|
+
// 每次首屏初始化结束后清空自动适配上下文,
|
|
61512
|
+
// 避免后续普通扩图沿用首屏专用状态。
|
|
61513
|
+
resetInitialAutoFitState() {
|
|
61514
|
+
this.initialAutoFitPending = false;
|
|
61515
|
+
this.initialPreviewFitDone = false;
|
|
61516
|
+
this.pendingStartNodeLoads = 0;
|
|
61517
|
+
this.initialStartNodeTaskCount = 0;
|
|
61518
|
+
this.initialFitSequence = Promise.resolve();
|
|
61519
|
+
},
|
|
61520
|
+
// 只有在“首屏初始化中、已有节点渲染出来、且仍有未完成请求”时,
|
|
61521
|
+
// 才允许触发一次预览适配。
|
|
61522
|
+
shouldTriggerInitialPreviewFit() {
|
|
61523
|
+
return this.initialAutoFitPending && !this.initialPreviewFitDone && this.history.dataNow.nodes.length > 0 && this.pendingStartNodeLoads > 0 && this.pendingStartNodeLoads < this.initialStartNodeTaskCount;
|
|
61524
|
+
},
|
|
61525
|
+
shouldFitAfterFirstExpand() {
|
|
61526
|
+
return !this.initialAutoFitPending && this.history.length === 2;
|
|
61527
|
+
},
|
|
61528
|
+
// 包装单个 startNode 的异步加载任务,统一统计并发数量,
|
|
61529
|
+
// 并在满足条件时触发一次首屏预览适配。
|
|
61530
|
+
trackStartNodeLoad(task) {
|
|
61531
|
+
this.pendingStartNodeLoads++;
|
|
61532
|
+
return task.finally(() => {
|
|
61533
|
+
this.pendingStartNodeLoads = Math.max(this.pendingStartNodeLoads - 1, 0);
|
|
61534
|
+
if (this.shouldTriggerInitialPreviewFit()) {
|
|
61535
|
+
this.initialPreviewFitDone = true;
|
|
61536
|
+
this.previewFitDuringInitialLoad();
|
|
61537
|
+
}
|
|
61538
|
+
});
|
|
61539
|
+
},
|
|
61540
|
+
// 把 startNode 参数转成实际的扩图任务。
|
|
61541
|
+
// 这里先做节点类型校验,避免无效类型进入扩图链路。
|
|
61542
|
+
createStartNodeLoadTask(item) {
|
|
61543
|
+
const node = {
|
|
61544
|
+
type: item.type,
|
|
61545
|
+
id: item.id,
|
|
61546
|
+
startNode: true
|
|
61547
|
+
};
|
|
61548
|
+
const hasNodeConfig = this.moduleDetail.nodes.findIndex((nodeItem) => {
|
|
61549
|
+
return item.type === nodeItem.name;
|
|
61550
|
+
}) >= 0;
|
|
61551
|
+
if (!hasNodeConfig) {
|
|
61552
|
+
ElMessage({
|
|
61553
|
+
message: "无相关数据",
|
|
61554
|
+
type: "warning"
|
|
61555
|
+
});
|
|
61556
|
+
this.emitDataLoaded();
|
|
61557
|
+
return Promise.resolve();
|
|
61558
|
+
}
|
|
61559
|
+
return this.addNewNodesAndExpand(node, { rejectOnError: true });
|
|
61560
|
+
},
|
|
61561
|
+
// 等待所有 startNode 任务结束后,再按最终留白比例做一次收口适配,
|
|
61562
|
+
// 让首屏在“尽快可见”和“最终排版稳定”之间取得平衡。
|
|
61563
|
+
scheduleInitialAutoFit(startNodeTasks) {
|
|
61564
|
+
Promise.allSettled(startNodeTasks).then(() => __async(this, null, function* () {
|
|
61565
|
+
if (!this.initialAutoFitPending || !this.history.dataNow.nodes.length) {
|
|
61566
|
+
this.resetInitialAutoFitState();
|
|
61567
|
+
return;
|
|
61568
|
+
}
|
|
61569
|
+
yield this.queueInitialFit(INITIAL_FINAL_FIT_PADDING, false);
|
|
61570
|
+
this.resetInitialAutoFitState();
|
|
61571
|
+
}));
|
|
61572
|
+
},
|
|
61368
61573
|
handleCustomContextMenuClick(data) {
|
|
61369
61574
|
if (this.customContextMenuEvent && typeof this.customContextMenuEvent === "function") {
|
|
61370
61575
|
this.customContextMenuEvent(toRaw(data));
|
|
@@ -61380,27 +61585,18 @@ const _sfc_main = {
|
|
|
61380
61585
|
}
|
|
61381
61586
|
},
|
|
61382
61587
|
searchStartNode() {
|
|
61383
|
-
if (this.startNode.length
|
|
61384
|
-
|
|
61385
|
-
const node = {
|
|
61386
|
-
type: item.type,
|
|
61387
|
-
id: item.id,
|
|
61388
|
-
startNode: true
|
|
61389
|
-
};
|
|
61390
|
-
this.inited = true;
|
|
61391
|
-
if (this.moduleDetail.nodes.findIndex((node2) => {
|
|
61392
|
-
return item.type === node2.name;
|
|
61393
|
-
}) >= 0) {
|
|
61394
|
-
this.addNewNodesAndExpand(node);
|
|
61395
|
-
} else {
|
|
61396
|
-
ElMessage({
|
|
61397
|
-
message: "无相关数据",
|
|
61398
|
-
type: "warning"
|
|
61399
|
-
});
|
|
61400
|
-
this.emitDataLoaded();
|
|
61401
|
-
}
|
|
61402
|
-
});
|
|
61588
|
+
if (!this.startNode.length || this.inited) {
|
|
61589
|
+
return;
|
|
61403
61590
|
}
|
|
61591
|
+
this.inited = true;
|
|
61592
|
+
this.initialAutoFitPending = true;
|
|
61593
|
+
this.initialPreviewFitDone = false;
|
|
61594
|
+
this.initialStartNodeTaskCount = this.startNode.length;
|
|
61595
|
+
this.initialFitSequence = Promise.resolve();
|
|
61596
|
+
const startNodeTasks = this.startNode.map((item) => {
|
|
61597
|
+
return this.trackStartNodeLoad(this.createStartNodeLoadTask(item));
|
|
61598
|
+
});
|
|
61599
|
+
this.scheduleInitialAutoFit(startNodeTasks);
|
|
61404
61600
|
},
|
|
61405
61601
|
initGraph() {
|
|
61406
61602
|
return __async(this, null, function* () {
|
|
@@ -61429,9 +61625,9 @@ const _sfc_main = {
|
|
|
61429
61625
|
});
|
|
61430
61626
|
});
|
|
61431
61627
|
},
|
|
61432
|
-
addNewNodesAndExpand(node) {
|
|
61628
|
+
addNewNodesAndExpand(node, { rejectOnError = false } = {}) {
|
|
61433
61629
|
this.isLoading = true;
|
|
61434
|
-
this.graphApi.getNodesDetail({
|
|
61630
|
+
return this.graphApi.getNodesDetail({
|
|
61435
61631
|
api: this.moduleDetail.node_info[node.type],
|
|
61436
61632
|
node_id: [node.id],
|
|
61437
61633
|
nodeType: node.type,
|
|
@@ -61471,7 +61667,7 @@ const _sfc_main = {
|
|
|
61471
61667
|
}, 0);
|
|
61472
61668
|
}, 500);
|
|
61473
61669
|
}
|
|
61474
|
-
this.expandNodes(nodeOne);
|
|
61670
|
+
return this.expandNodes(nodeOne);
|
|
61475
61671
|
}).catch((e2) => {
|
|
61476
61672
|
console.log(e2, "e");
|
|
61477
61673
|
this.emitDataLoaded();
|
|
@@ -61480,6 +61676,10 @@ const _sfc_main = {
|
|
|
61480
61676
|
message: "无该节点信息",
|
|
61481
61677
|
type: "warning"
|
|
61482
61678
|
});
|
|
61679
|
+
if (rejectOnError) {
|
|
61680
|
+
return Promise.reject(e2);
|
|
61681
|
+
}
|
|
61682
|
+
return Promise.resolve();
|
|
61483
61683
|
}).finally(() => {
|
|
61484
61684
|
this.isLoading = false;
|
|
61485
61685
|
});
|
|
@@ -61737,12 +61937,11 @@ const _sfc_main = {
|
|
|
61737
61937
|
if (nodesThisTime.length > 0 || linksThisTime.length > 0) {
|
|
61738
61938
|
this.history.pushState(actions);
|
|
61739
61939
|
}
|
|
61740
|
-
|
|
61741
|
-
|
|
61742
|
-
|
|
61743
|
-
}, 1e3);
|
|
61940
|
+
const detailTask = this.getNodeDetail(nodesThisTime);
|
|
61941
|
+
if (this.shouldFitAfterFirstExpand()) {
|
|
61942
|
+
this.fitAfterLayoutStable(INITIAL_FINAL_FIT_PADDING, false);
|
|
61744
61943
|
}
|
|
61745
|
-
|
|
61944
|
+
return detailTask;
|
|
61746
61945
|
});
|
|
61747
61946
|
},
|
|
61748
61947
|
findGrandSonNodeIds(nodeNow) {
|
|
@@ -61769,11 +61968,14 @@ const _sfc_main = {
|
|
|
61769
61968
|
reset() {
|
|
61770
61969
|
this.$refs["render"].reset();
|
|
61771
61970
|
},
|
|
61772
|
-
|
|
61773
|
-
|
|
61774
|
-
|
|
61971
|
+
getNodeDetailCandidates(nodes) {
|
|
61972
|
+
return nodes.map((node) => {
|
|
61973
|
+
const currentNode = this.history.dataNow.nodes.find((item) => item.id === node.id);
|
|
61974
|
+
return currentNode || node;
|
|
61775
61975
|
});
|
|
61776
|
-
|
|
61976
|
+
},
|
|
61977
|
+
getNodeDetail(nodes, aggregationId) {
|
|
61978
|
+
const nodeCanload = this.getNodeDetailCandidates(nodes).filter((node) => {
|
|
61777
61979
|
return !node.detail && node.noDetail !== true && node.type !== "aggregation" && node.type !== "nodeType";
|
|
61778
61980
|
});
|
|
61779
61981
|
const nodesByType = {};
|
|
@@ -61784,8 +61986,12 @@ const _sfc_main = {
|
|
|
61784
61986
|
nodesByType[node.type].push(node);
|
|
61785
61987
|
}
|
|
61786
61988
|
});
|
|
61787
|
-
|
|
61788
|
-
|
|
61989
|
+
const nodeTypes = Object.keys(nodesByType);
|
|
61990
|
+
if (!nodeTypes.length) {
|
|
61991
|
+
this.emitDataLoaded();
|
|
61992
|
+
return Promise.resolve();
|
|
61993
|
+
}
|
|
61994
|
+
const detailTasks = nodeTypes.map((key) => {
|
|
61789
61995
|
const nodesNow = nodesByType[key];
|
|
61790
61996
|
const origin = {};
|
|
61791
61997
|
nodesNow.map((item) => {
|
|
@@ -61793,7 +61999,7 @@ const _sfc_main = {
|
|
|
61793
61999
|
origin[item.id] = item.origin;
|
|
61794
62000
|
}
|
|
61795
62001
|
});
|
|
61796
|
-
this.graphApi.getNodesDetail({
|
|
62002
|
+
return this.graphApi.getNodesDetail({
|
|
61797
62003
|
api: this.moduleDetail.node_info[nodesByType[key][0].type],
|
|
61798
62004
|
node_id: nodesByType[key].map((item) => {
|
|
61799
62005
|
return item.id;
|
|
@@ -61821,17 +62027,12 @@ const _sfc_main = {
|
|
|
61821
62027
|
}
|
|
61822
62028
|
}).catch((e2) => {
|
|
61823
62029
|
this.onOutdate(e2.res);
|
|
61824
|
-
}).finally(() => {
|
|
61825
|
-
needDetailCount = needDetailCount - 1;
|
|
61826
|
-
if (needDetailCount === 0) {
|
|
61827
|
-
log(" 数据加载完");
|
|
61828
|
-
this.emitDataLoaded();
|
|
61829
|
-
}
|
|
61830
62030
|
});
|
|
61831
|
-
}
|
|
61832
|
-
|
|
62031
|
+
});
|
|
62032
|
+
return Promise.allSettled(detailTasks).then(() => {
|
|
62033
|
+
log(" 数据加载完");
|
|
61833
62034
|
this.emitDataLoaded();
|
|
61834
|
-
}
|
|
62035
|
+
});
|
|
61835
62036
|
},
|
|
61836
62037
|
// 数据加载完后的事件通知
|
|
61837
62038
|
emitDataLoaded() {
|
|
@@ -61956,6 +62157,17 @@ const _sfc_main = {
|
|
|
61956
62157
|
handleTableSelect(selection = []) {
|
|
61957
62158
|
this.$refs.render.handleTableSelect(selection);
|
|
61958
62159
|
},
|
|
62160
|
+
syncSelectionWithData() {
|
|
62161
|
+
const validNodeIds = this.history.dataNow.nodes.map((item) => {
|
|
62162
|
+
return item.id;
|
|
62163
|
+
});
|
|
62164
|
+
const selectionIds = this.selection.map((item) => {
|
|
62165
|
+
return item.id;
|
|
62166
|
+
}).filter((id2) => {
|
|
62167
|
+
return validNodeIds.includes(id2);
|
|
62168
|
+
});
|
|
62169
|
+
this.handleTableSelect(selectionIds);
|
|
62170
|
+
},
|
|
61959
62171
|
updateSelection() {
|
|
61960
62172
|
this.selection = this.$refs.render.selection;
|
|
61961
62173
|
this.$refs.render.selectEdgesByNode(this.selection);
|
|
@@ -62019,7 +62231,6 @@ const _sfc_main = {
|
|
|
62019
62231
|
this.history.dataNow.links.map((item) => {
|
|
62020
62232
|
if (item.source.id === node.id && item.target.type === "aggregation") {
|
|
62021
62233
|
aggregationNode = aggregationNode || item.target;
|
|
62022
|
-
item.source;
|
|
62023
62234
|
}
|
|
62024
62235
|
});
|
|
62025
62236
|
if (aggregationNode) {
|
|
@@ -62045,14 +62256,15 @@ const _sfc_main = {
|
|
|
62045
62256
|
type: "aggregation"
|
|
62046
62257
|
};
|
|
62047
62258
|
for (const i2 in this.history.dataNow.nodes) {
|
|
62048
|
-
const indexNow = aggregationNode.list.findIndex((value
|
|
62049
|
-
return value === this.history.dataNow.nodes[i2].id;
|
|
62259
|
+
const indexNow = aggregationNode.list.findIndex((value) => {
|
|
62260
|
+
return value.id === this.history.dataNow.nodes[i2].id;
|
|
62050
62261
|
});
|
|
62051
62262
|
if (indexNow >= 0) {
|
|
62052
62263
|
this.history.dataNow.nodes[i2].aggregation = false;
|
|
62053
62264
|
}
|
|
62054
62265
|
}
|
|
62055
62266
|
this.history.pushState(deleteAggregation);
|
|
62267
|
+
this.syncSelectionWithData();
|
|
62056
62268
|
this.emitDataLoaded();
|
|
62057
62269
|
}
|
|
62058
62270
|
},
|