From 5498c297589a8017659b43bf97dd3414da23cde8 Mon Sep 17 00:00:00 2001 From: 7yuee <167525702+7yuee@users.noreply.github.com> Date: Sun, 14 Jul 2024 08:32:40 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=207yuee/na?= =?UTF-8?q?v@e0801819a341b09131f8d01e27b3652f890a60a3=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 21 +++++++-------------- index.html | 21 +++++++-------------- main.2c0a6f45b8149d2e.js | 1 - main.bee27f4f26af917e.js | 1 + 4 files changed, 15 insertions(+), 29 deletions(-) delete mode 100644 main.2c0a6f45b8149d2e.js create mode 100644 main.bee27f4f26af917e.js diff --git a/404.html b/404.html index 290066250..662206d62 100644 --- a/404.html +++ b/404.html @@ -32,8 +32,8 @@ - 发现导航 - 精选实用导航网站 - + 7yue个人导航 + @@ -43,22 +43,15 @@ - -
- - - -
- + +
......
-
-

Github-CLI

https://github.githubassets.com/favicons/favicon.svg

GitHub的官方命令行工具

Coveralls

https://coveralls.io/favicon.png

通过显示测试套件未涵盖代码的哪些部分,我们可以帮助您自信地交付代码。免费提供开源软件库

Releasly

在新的开源版本发布时收到通知,直接发送到您的电子邮件中。

Convert cURL

将curl命令转换为Python,JavaScript,PHP,R,Go,Rust,Dart,JSON,Ansible,Elixir。

Supervisor

Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的多个进程。

SonarQube

https://www.sonarqube.org/favicon-152.png

代码质量和安全性检查, 支持所有开发人员编写更干净,更安全的代码。

Pastebin

https://paste.ubuntu.com/favicon.ico

在线共享代码,将代码以URL形式发送以便查看

UPX

https://avatars2.githubusercontent.com/u/30217756?s=200&v=4

UPX-可执行文件的终极打包器

askgit

https://avatars2.githubusercontent.com/u/30217756?s=200&v=4

使用SQL查询git存储库。生成报告,执行状态检查,分析代码库。

Sentry

https://avatars3.githubusercontent.com/u/1396951?s=200&v=4

Web应用程序,移动应用程序和游戏的实时崩溃报告。

randomuser

https://randomuser.me/favicon.ico

随机用户生成器是用于生成占位符用户信息的免费API。 获取个人资料照片,姓名等。 对于人们来说,就像Lorem Ipsum。

github-readme-stats

https://camo.githubusercontent.com/ebfdd465daa90626d0ab0d0fddc0e457c942a392/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f616e7572616768617a72612f696d6167652f75706c6f61642f76313539343930383234322f6c6f676f5f636373776d652e737667

在你的 README 中 获取动态生成的 GitHub 统计信息

Hits

https://i.imgur.com/zBEQq4w.png

了解有多少人正在查看您的GitHub项目的简单方法

GitHub 文件加速

GitHub 文件加速

Shields IO

svg生成版本号图标

FunDebug

https://www.fundebug.com/favicon.ico

支持前端JavaScript,后端Node.js以及微信小程序错误监控

Asciiworld

http://www.asciiworld.com/favicon.ico

WA!原来那些年程序猿搞怪的注释都在这里

jsfiddle

https://jsfiddle.net/img/favicon.png

强大的前端代码在线演示的网站

CODEIF

https://user-images.githubusercontent.com/799578/50462941-8075fe80-09c3-11e9-89e7-af0cb7991406.png

变量命名神器

ASCIIFlow Infinity

http://asciiflow.com/images/favicon.png

无限的ASCII图表,保存到谷歌驱动器,调整大小,自由绘制,并直接输出到文本/HTML。

gitzip

https://kinolien.github.io/gitzip/images/gitzip.png

它可以将GITHUB存储库的子文件夹/子目录作为zip并下载

Server酱

http://sc.ftqq.com/static/image/favlogo.png

「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。

mkcert

一个简单的零配置工具,可以使用您喜欢的任何名称制作本地可信赖的SSL开发证书

carbon

https://carbon.now.sh/favicon.ico

创建和分享源代码的精美图像

setup-ipsec-vpn

用于构建您自己的IPsec VPN服务器的脚本,在Ubuntu,Debian和CentOS上使用IPsec / L2TP和Cisco IPsec

nginxconfig

https://www.digitalocean.com/favicon.ico

nginx配置生成器

GraphQL Explorer

GraphQL资源管理器利用真实的、实时的生产数据

patorjk

将文本转换成ASCII

lens

https://avatars0.githubusercontent.com/u/62133242?s=200&v=4

Lens控制Kubernetes集群所需的唯一IDE。它是适用于MacOS,Windows和Linux操作系统的独立应用程序。它是开源的,免费的。

public-apis

一些可用在 Web 或软件开发的开放 API 接口

astexplorer

https://astexplorer.net/favicon.png

一个Web工具,用于探索由各种解析器生成的AST

uTools

http://www.u.tools/assets/img/brand/favicon.png

uTools是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合

ihateregex

https://ihateregex.io/favicon.ico

正则表达式备忘录

Oh My ZSH

https://avatars3.githubusercontent.com/u/22552083?s=200&v=4

是一个开放源代码,社区驱动的框架,用于管理zsh配置。

Tampermonkey

https://tampermonkey.freetls.fastly.net/images/icon144.png

一款免费的浏览器扩展和最为流行的用户脚本管理器

Greasy Fork

提供用户脚本的网站

免费代理

https://img.kuaidaili.com/img/favicon.ico?v=3

免费HTTP代理IP

Google Workspace

https://avatars2.githubusercontent.com/u/1342004?s=200&v=4

Google Workspace状态信息中心

开发神器

发现导航 - 精选实用导航网站

eoLinker接口管理平台

https://www.eolinker.com/assets/images/favicon.ico

国内最大的在线接口管理服务方案供应商

YApi

https://avatars2.githubusercontent.com/u/19645609?s=200&v=4

YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台

RAP2

http://rap2.taobao.org/favicon.png

Web接口管理工具,开源免费,接口自动化,MOCK数据自动生成,自动化测试,企业级管理。阿里妈妈MUX团队出品

showdoc

https://www.showdoc.cc/static/logo/b_64.png

一个非常适合IT团队的在线API文档、技术文档工具

docsify

https://avatars3.githubusercontent.com/u/40133106?s=200&v=4

一个神奇的文档站点生成器

apiDoc

https://avatars2.githubusercontent.com/u/4103663?s=200&v=4

RESTful Web API文档生成器

docusaurus

https://avatars2.githubusercontent.com/u/69631?s=200&v=4

易于维护的开源文档网站

禅道

https://www.zentao.net/favicon.ico

禅道是灵活的项目管理软件

Tapd

https://www.tapd.cn/favicon.ico

一站式敏捷研发协作云平台, 凝聚腾讯研发方法及敏捷实践精髓, 助力企业研发更高效、协作更敏捷

Hoppscotch

https://avatars2.githubusercontent.com/u/56705483?s=200&v=4

一个免费,快速,美观的API请求构建器,供10万多个开发人员使用。(原名叫 Postwoman)

接口/开发文档管理

发现导航 - 精选实用导航网站

Sunny-Ngrok

一条命令解决的外网访问内网问题,无需任何配置,下载客户端之后直接一条命令让外网访问您的内网不再是距离

frp

一个快速反向代理,可帮助您将NAT或防火墙后面的本地服务器暴露给Internet。

zan-proxy

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

本地代码调试线上页面,环境再也不是问题

ngrok

https://ngrok.com/static/img/favicon.png

ngrok是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,便于后期分析和重放

内网穿透/代理

发现导航 - 精选实用导航网站

查MD5

http://www.chamd5.org/favicon.ico

MD5在线解密|md5在线破解|批量破解md5网站

JSON Web Tokens

https://jwt.io/img/favicon/apple-icon-76x76.png

jwt 在线解码

base64

http://www.xpcha.com/favicon.ico

base64在线解码编码

编码/解码

发现导航 - 精选实用导航网站

ipify

https://www.ipify.org/static/images/favicon-96x96.png

一个简单的公共IP地址API

归属地查询

淘宝免费归属地查询

免费公开API

发现导航 - 精选实用导航网站

开发相关

发现导航 - 精选实用导航网站

draw

https://www.draw.io/images/apple-touch-icon.png

免费的在线图表软件,用于制作流程图、流程图、组织图、UML、ER和网络图

ProcessOn

https://www.processon.com/favicon.ico

免费在线作图工具,UML作图,UI界面原型设计,iOS原型设计,BPMN,流程图,思维导图,多人协作绘图

蓝湖

https://lhcdn.lanhuapp.com/web/static/favicon.ico

蓝湖是一款设计图共享平台,帮助互联网团队管理设计图

Zeplin

https://zeplin.io/img/favicon/228x228.png

为设计师和前端而生的协作应用

幕布

https://mubu.com/favicon.ico

极简大纲笔记 | 一键生成思维导图

声享

https://p.ssl.qhimg.com/t01a54d9106629dda0e.png

在线制作 PPT,让分享更有价值

墨刀

https://modao.cc/images/logo.png

原型设计工具,web原型设计工具,app原型设计工具

小智LOGO

https://xzlogo.com/static/images/favicon-16x16.png?v2

LOGO在线制作神器 - 3分钟完成LOGO设计在线生成

创客贴

https://www.chuangkit.com/favicon.ico

一款简单易用、功能强大的线上图形设计工具

在线制作图表

https://cdn.jifo.co/favicon/favicon.ico

信息图表是一种易于使用的信息图表和图表制造商。创建和分享美丽的信息图表,在线报告和互动地图。在这里做你自己

CLIPPING MAGIC

删除图像背景在线。使背景透明,白色等编辑,裁剪,旋转,固定颜色,添加阴影,一款在线抠图工具

稿定抠图

https://koutu.gaoding.com/favicon.ico

稿定设计是一款专为淘宝店主、新媒体运营人员和修图爱好者打造的免费在线抠图工具。

UZER.ME

https://uzer.me/favicon.ico

超级应用空间致力于全生命周期的文档管理,无需安装,即可在线编辑Office, CAD,PS等任意格式文档,支持远程协作,全文检索,版本管理,权限管理,安全外发等.提高工作效率,降低安全风险

launchaco

https://www.launchaco.com/static/favicon.ico

免费在线制作LOGO

鹿班

https://g.alicdn.com/acca/resource/luban/image/favicon.png

鹿班 - 让设计更美好(阿里出品)

图片裁剪

https://www.yasuotu.com/favicon.ico

在线裁剪照片大小尺寸

设计相关

发现导航 - 精选实用导航网站

设计相关

发现导航 - 精选实用导航网站

Bitwarden

https://bitwarden.com/images/icons/favicon-32x32.png

个人和企业在任何设备上存储,共享和保护敏感数据的最简单,最安全的方法

Typeora

https://typora.io/img/favicon-48.png

Typora是一款跨平台的最小Markdown编辑器,可为Markdown读者和作家提供无缝的体验

iterm2

https://www.iterm2.com/favicon.ico

iTerm2是Terminal的替代品,是iTerm的后续产品

Sourcetree

https://www.sourcetreeapp.com/assets/img/favicons/sourcetree/favicon-32x32.png

美丽的Git GUI中的简单性和强大功能

charles

https://www.charlesproxy.com/static/img/icon.8b97278f.png

Charles是HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。

Tunnelblick

https://tunnelblick.net/favicon.ico

适用于macOS的免费开源OpenVPN VPN客户端服务器软件。

Keka

https://www.keka.io/img/Keka-120x120.png

macOS文件存档器, 储存更多,私密分享

Kap

https://getkap.co/static/favicon/kap.ico

使用Web技术构建的开源屏幕录像机。

Vscode

https://code.visualstudio.com/apple-touch-icon.png

VScode是一款轻量级的编辑器,自由。 建立在开源上。 无处不在。

zenmap

https://nmap.org/shared/images/tiny-eyeicon.png

开源免费的网络发现工具,通过它能够找出网络上在线的主机,并测试主机上哪些端口处于监听状态,接着通过端口确定主机上运行的应用程序类型与版本信息,最后利用它还能侦测出操作系统的类型和版本

obsproject

https://obsproject.com/favicon-32x32.png

免费和开源软件,用于视频录制和实时流。

hyper

https://avatars1.githubusercontent.com/u/14985020?s=200&v=4

基于WEB技术的终端

Listary

https://www.listary.com/wp-content/themes/listary5/images/favicon.ico

Listary是Windows的革命性搜索实用程序,它使休闲用户和高级用户都能快速找到文件并启动应用程序!

GUI

发现导航 - 精选实用导航网站

vmware

https://www.vmware.com/favicon.ico

利用VMware提供的软件定义的云,移动性,网络和安全解决方案来建立您的数字基础。

parallels

https://www.parallels.cn/typo3conf/ext/prls_theme/Resources/Public/theme/res/img/favicon/favicon.png

Mac和Windows虚拟化|管理Mac|VDI和RDS解决方案

mumu Android模拟器

http://mumu.163.com/favicon.ico

网易MuMu[手游模拟器][安卓模拟器]

虚拟机

发现导航 - 精选实用导航网站

DBeaver

https://avatars3.githubusercontent.com/u/34743864?s=200&v=4

适用于开发人员,数据库管理员,分析师和所有需要使用数据库的人员的免费的多平台数据库工具。支持所有流行的数据库:MySQL,PostgreSQL,SQLite,Oracle,DB2,SQL Server,Sybase,MS Access,Teradata,Firebird,Apache Hive,Phoenix,Presto等

RedisDesktopManager

https://redisdesktop.com/static/css/favicon.png

Redis Desktop Manager(又名RDM)—是用于Windows,Linux,MacOS和iPadOS的快速Redis数据库管理应用程序。

Sequel Pro

https://sequelpro.com/favicon/favicon-32x32.png

Sequel Pro是一个快速,易于使用的Mac数据库管理应用程序,用于处理MySQL数据库。

Robo 3T

https://robomongo.org/static/favicon-11ace079.ico

一个现代,强大且由社区驱动的MongoDB管理工具

DataGrip

https://www.jetbrains.com/favicon-32x32.png

jetbrains出品的数据库管理系统

tableplus

https://tableplus.com/resources/favicons/apple-icon-57x57.png

用于关系数据库的现代,本地且友好的GUI工具:MySQL,PostgreSQL,SQLite等

数据库

发现导航 - 精选实用导航网站

TeamViewer

https://www.teamviewer.cn/wp-content/themes/tv-wordpress-theme/dist/media/favicon.png

TeamViewer远程连接控制软件是一款随时随地连接到远程桌面电脑、移动设备及Iot,让远程连接过程更加的快速和安全,轻松实现对文件、网络及程序的实时支持或访问。

向日葵

https://sunlogin.oray.com/favicon.ico

向日葵远程控制软件是一款免费的集远程控制电脑手机、远程桌面连接、远程开机、远程管理、支持内网穿透的一体化远程控制管理工具软件

远程控制

发现导航 - 精选实用导航网站

v2ray

https://avatars0.githubusercontent.com/u/14110142?s=200&v=4

用于构建代理绕过网络限制的平台。

clash

https://github.com/Dreamacro/clash/raw/master/docs/logo.png

Go中基于规则的隧道

飞机场

发现导航 - 精选实用导航网站

GUI软件

发现导航 - 精选实用导航网站

哔哩哔哩

https://www.bilibili.com/favicon.ico

国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主

爱奇艺

https://www.iqiyipic.com/common/images/PCW-114x114.png

拥有海量、优质、高清的网络视频的大型视频网站,专业的网络视频播放平台

Youtube

https://www.youtube.com/favicon.ico

全球最大的视频网站

斗鱼

https://www.douyu.com/favicon.ico

斗鱼 - 每个人的直播平台

疯狂影视搜索

https://cdn.jsdelivr.net/gh/txxxjs/fk/ifkdy/2020-03-16/favicon.ico

疯狂影视搜索是一款全能影视搜索引擎,帮你找到最新影视资源,一站拥有无尽影视资源

全民vip视频在线解析

http://www.qmaile.com/favicon.ico

免费全网VIP视频会员免广告看电影!优酷vip解析,爱奇艺vip解析,腾讯vip解析,乐视vip解析,芒果vip解析

蜜蜂剪辑

https://qncdnimg.aoscdn.com/local/beecut.cn/img/favicon.png

免费在线视频剪辑、视频制作、视频剪切、视频转gif等实用功能

kk高清影院

kk高清影院,1080p电影下载,高清电影迅雷下载,免费高清电影网

影视

发现导航 - 精选实用导航网站

自由的音乐

自由的音乐是一个免费试听并下载全网音乐的网站

音乐

发现导航 - 精选实用导航网站

影视/音乐

发现导航 - 精选实用导航网站

智联招聘

https://www.zhaopin.com/favicon.ico

智联招聘,更懂你的价值

前程无忧

https://www.51job.com/favicon.ico

招聘网,人才网,求职,找工作

BOSS直聘

https://www.zhipin.com/favicon.ico

BOSS直聘是权威领先的招聘网,开启人才网招聘求职新时代,让求职者与Boss直接开聊、加快面试、即时反馈,找工作就来BOSS直聘和Boss开聊吧

招聘/求职

发现导航 - 精选实用导航网站

ResumeSample

程序员简历模板系列, WEB/IOS/Android/C++/node等以及通用程序员简历模板

程序员找工作黑名单

http://coder.shengxinjing.cn/logo.ico

有些事情,应该被记住

看准网

https://www.kanzhun.com/favicon.ico

看准网★中国领先的职场信息平台,专注于公司评论,晒工资,工资待遇,面试,公司福利等.您可以在看准网上匿名分享您的职业信息

其他

发现导航 - 精选实用导航网站

招聘/求职

发现导航 - 精选实用导航网站

TinyPNG

https://tinypng.com/images/apple-touch-icon.png

智能PNG和JPEG压缩,以质量和文件大小的完美平衡来优化您的图像

Squoosh

https://squoosh.app/assets/favicon.ico

在浏览器中用不同的编解码器压缩和比较图像(Google出品)

压缩工具

发现导航 - 精选实用导航网站

草料二维码

https://static.clewm.net/static/images/favicon.ico

用专业的二维码产品帮助企业创造价值

Feed 验证器

验证RSS是否符合标准规范

淘捏捏

https://www.taonienie.com/favicon.ico

淘宝信誉查询 - 淘捏捏卖家工具箱 淘宝信誉查询_淘宝信用查询_淘宝小号查询_淘宝黑号查询

天眼查

https://www.tianyancha.com/favicon.ico

人人都在用商业安全工具_企业信息查询_公司查询_工商查询_企业信用信息查询系统

语雀

https://yuque.com/favicon.ico

优雅高效的在线文档编辑与协同工具,让每个企业轻松拥有文档中心 - 阿里巴巴

求是潮云U盘

https://www.qsc.zju.edu.cn/box/favicon.ico

临时文件上传, 快速和稳定

云转换

https://www.360converter.com/images/favicon.ico

在线免费转换视频,音频,YouTube视频到文字,视频到文字,音频到文字,语音转换成文字

Picdiet

https://www.picdiet.com/css/favicon.ico

独特且强悍的JavaScript算法,能极速压缩80%的图片大小,而不损害其质量

easyicon

https://cdn-img.easyicon.net/favicon.ico

在线图标转换ico、icns

Smallpdf

https://smallpdf.com/favicon.png

压缩pdf、各种文件格式转换pdf

Cool Backgrounds

https://coolbackgrounds.io/images/favicon-fe5a0ff5.png

生成非常酷的彩色背景图像

Unsplash Source

https://source.unsplash.com/favicon-32x32.png

随机生成图片链接

石墨文档

https://assets.smcdn.cn/from_qbox/favicon.ico

一款轻便、简洁的在线协作文档工具,PC端和移动端全覆盖,支持多人同时对文档编辑和评论...

Emoji searcher

https://emoji.muan.co/appicon.png

Emoji表情大全

imgURL

https://imgurl.org/favicon.ico

ImgURL是一个简单、纯粹的图床程序,让个人图床多一个选择

拷贝兔

https://f0cdn.anyknew.com/web/img/icons/favicon-32x32.png

跨平台分享工具,纯Web,IOS,MAC,Linux,Android互传

表格工具

https://tableconvert.com/static/images/favicon.png

一个功能强大的在线表格编辑器,支持Excel、Markdown、JSON、CSV、HTML等格式的相互转换

360查字体

https://p2.ssl.qhimg.com/t014de4ba13ada26743.png

360查字体 - 查版权,免纠纷

sejda

https://www.sejda.com/images/icon_128.png

在线HTML转换pdf

AI人工智能图片放大

https://bigjpg.com/static/css/touch-icon-iphone.png

Bigjpg - 使用开源waifu2x人工智能深度卷积神经网络(CNN)智能无损免费放大图片

VVV文档在线导出工具

免费下载百度文库文档

在线文件编码识别

http://tools.bugscaner.com/static/images/favicon.ico

在线文件编码识别

iptv

http://tools.bugscaner.com/static/images/favicon.ico

收集来自世界各地的5000多个公共IPTV频道

临时邮箱

https://www.linshiyouxiang.net/public/zh-CN/img/favicon.ico

10分钟邮箱,临时邮箱,临时邮,临时电子邮箱,24小时邮箱,一次性邮箱,匿名邮箱,安全邮箱

辅助工具

发现导航 - 精选实用导航网站

其他

发现导航 - 精选实用导航网站

实用工具

发现导航 - 精选实用导航网站

jQuery

https://jquery.com/jquery-wp-content/themes/jquery.com/i/favicon.ico

jQuery是一个JavaScript函数库

webpack

https://www.webpackjs.com/assets/favicon.ico

webpack是一个模块打包器

Babel

https://babeljs.io/img/favicon.png

用于编写下一代 JavaScript 的编译器

ESLint

https://cn.eslint.org/img/favicon.512x512.png

可组装的JavaScript和JSX检查工具

stylelint

https://avatars3.githubusercontent.com/u/10076935?s=200&v=4

一个强大的现代样式风格的linter

Mocha

https://avatars0.githubusercontent.com/u/8770005?s=200&v=4

Mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行

MUI

https://avatars1.githubusercontent.com/u/5485517?s=200&v=4

MUI: 最接近原生APP体验的高性能前端框架

rollup

https://avatars0.githubusercontent.com/u/12554859?s=200&v=4

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序

standard

https://avatars1.githubusercontent.com/u/29208316?s=200&v=4

JavaScript样式指南,带有linter和自动代码修复程序

JavaScript

发现导航 - 精选实用导航网站

Faker

https://github.com/favicon.ico

在Node.js和浏览器中生成大量逼真的假数据

sweetalert

JavaScript Alert 的漂亮替代品

Sortable

https://avatars0.githubusercontent.com/u/17040762?s=200&v=4

一个JavaScript库,用于在现代浏览器和触摸设备上对拖放列表进行重新排序

formilyjs

Formily 是一个由阿里巴巴集团多 BU 共建的面向中后台复杂场景的表单解决方案,它也是一个表单框架

rough-notation

https://roughnotation.com/images/fav.png

一个小的JavaScript库,用于在网页上创建手绘动画并为其添加动画效果

AntV

https://avatars3.githubusercontent.com/u/19199542?s=200&v=4

AntV 是蚂蚁金服全新一代数据可视化解决方案

Lodash

https://www.lodashjs.com/icons/favicon-32x32.png

Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库

Swiper

https://www.swiper.com.cn/favicon.ico

轻量级的移动设备触控滑块的js框架,使用硬件加速过渡

fastclick

Polyfill 解决移动端具有300ms延迟的库

Layer

丰富多样的Web弹出层组件,可轻松实现Alert/Confirm/Prompt/普通提示/页面区块/iframe/tips等等几乎所有的弹出交互

moment.js

https://momentjs.com/static/img/moment-favicon.png

一个轻量级的JavaScript日期库,用于解析,验证,操作和格式化日期

js-cookie

一个简单,轻量级的JavaScript API,用于处理浏览器cookie

qs

具有嵌套支持的查询字符串解析器

Mock.js

生成随机数据,拦截 Ajax 请求

GITALK

https://gitalk.github.io/favicon.ico

凹凸实验室出品的一款基于 Github Issue 和 Preact 开发的评论插件

prism

https://prismjs.com/assets/favicon.png

轻巧,强大,优雅的代码语法高亮

nprogress

顶部加载进度条

iNotify

JS实现浏览器标题闪烁,滚动,语音提示,Chrome/Safari/FireFox/IE通知

html2canvas

最流行的JavaScript屏幕截图

dayjs

使用与Moment.js兼容的API来解析,验证,操作和显示现代浏览器的日期和时间

JsBarcode

易于使用但功能强大的条形码生成器,适用于Web和Node.js

clipboard.js

现代复制到剪贴板。没有Flash。只需3kb gzipped。

lib-flexible

可伸缩布局方案, 淘宝rem解决方案

js-xss

根据白名单过滤HTML(防止XSS攻击)

mescroll

精致的下拉刷新和上拉加载 js框架.支持vue,完美运行于移动端和主流PC浏览器

better-scroll

灵感来自iscroll,它具有更好的滚动性能

pinyinjs

一个实现汉字与拼音互转的小巧web工具库

ms

使用此包可以轻松地将各种时间格式转换为毫秒。

ramda

https://avatars2.githubusercontent.com/u/5298359?s=200&v=4

适用于JavaScript程序员的实用函数库

decimal.js

JavaScript的任意精度Decimal类型 (0.1+0.2=0.3)

copy-to-clipboard

简单的模块公开copy功能,它将尝试使用execCommand与特定于IE的clipboardData接口的回退,最后,通常prompt使用适当的文本内容和消息

path-to-regexp

将字符串路径转换成正则表达式

autosize

autosize是一个小的独立脚本,可以自动调整textarea域的高度以适合文本

shake.js

监听手机设备摇动

progressbar

可以轻松地为Web创建响应式和时尚的进度栏。动画即使在移动设备上也表现良好

easy-mock

https://avatars0.githubusercontent.com/u/28626637?s=200&v=4

Easy Mock 是一个可视化,并且能快速生成模拟数据的持久化服务

Clamp.js

https://joe.sh/assets/images/favicon.ico

JS版本的多行文本溢出省略

json-bigint

带有bigints支持的JSON.parse / stringify

exif-js

用于读取EXIF图像元数据的JavaScript库

lunr.js

Lunr.js是一个用于浏览器的小型全文本搜索库。它为JSON文档建立索引,并提供一个简单的搜索界面来检索与文本查询最匹配的文档

hotkeys

强大的Javascript库,用于捕获键盘输入和输入的按键组合。它没有依赖性。

dom-to-image

使用HTML5 canvas从DOM节点生成图像

single-spa

https://avatars1.githubusercontent.com/u/59940233?s=200&v=4

使微前端变得简单

qiankun

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

为微型前端提供快速,简单和完整的解决方案

nanoid

https://zelark.github.io/nano-id-cc/favicon.ico

一个很小的,安全的,URL友好的,唯一的JavaScript字符串ID生成器。

Numeral-js

一个用于格式化和处理数字的javascript库

ua-parser-js

用于从userAgent字符串检测浏览器,引擎,操作系统,CPU和设备类型/模型。支持浏览器和node.js环境

hammer.js

https://avatars0.githubusercontent.com/u/7997161?s=200&v=4

一个用于多点触摸手势的javascript库

常用插件

发现导航 - 精选实用导航网站

i18next

https://avatars1.githubusercontent.com/u/8546082?s=200&v=4

i18next是一个非常流行的国际化框架,适用于浏览器或任何其他JavaScript环境(例如,node.js)。

js-lingui

https://avatars3.githubusercontent.com/u/11225539?s=200&v=4

JavaScript的可读,自动化和优化(5 kb)国际化

国际化多语言方案

发现导航 - 精选实用导航网站

wow.js

基于Animate.css,向下滚动页面时显示CSS动画,轻松自定义动画设置:样式,延迟,长度,偏移,迭代...

Waves

受Google材质设计启发的点击效果, 波纹效果

velocity

加速JavaScript动画

anime

轻量级的JavaScript动画库。它适用于任何CSS属性,单个CSS转换,SVG或任何DOM属性以及JavaScript对象

Hover-Buttons

hover动画CSS / SCSS按钮

动画

发现导航 - 精选实用导航网站

JavaScript-MD5

JavaScript MD5实现。兼容服务器端环境,如node.js,RequireJS等模块加载器和所有Web浏览器

js-sha1

JavaScript的简单SHA1哈希函数支持UTF-8编码。

js-base64

JavaScript的Base64实现

jsSHA

SHA-1,SHA-224,SHA3-224,SHA-256,SHA3-256,SHA-384,SHA3-384,SHA-512,SHA3-512,SHAKE128 ,和SHAKE256以及HMAC

crypto-js

加密标准的JavaScript库

加盐

发现导航 - 精选实用导航网站

pdf.js

PDF.js是一个使用HTML5构建的可移植文档格式(PDF)查看器

webuploader

百度出品,采用大文件分片并发上传,极大的提高了文件上传效率。

pdfmake

纯JavaScript中的客户端/服务器端PDF打印, HTML转换Pdf

ViewerJS

JavaScript中的文档阅读器, pdf/ppt/opt/odt等文件渲染成HTML

filepond

灵活而有趣的JavaScript文件上传库

FileSaver.js

客户端保存文件的解决方案,非常适合在客户端上生成文件的Web应用程序

jsPDF

一个使用JavaScript生成PDF的库

文件插件相关

发现导航 - 精选实用导航网站

PhotoSwipe

适用于移动和桌面的JavaScript图像库, 图片预览

viewerjs

javascript图片预览

图片预览

发现导航 - 精选实用导航网站

howler.js

https://howlerjs.com/assets/images/favicon.ico

现代 Web 音频 javascript 库

DPlayer

哇,这么可爱的HTML5 danmaku视频播放器

APlayer

哇,这么可爱的HTML5音乐播放器

音频/视频

发现导航 - 精选实用导航网站

three.js

https://threejs.org/files/favicon.ico

JavaScript 3D引擎

flowy

创建流程图的最小JavaScript库

incubator-echarts

https://echarts.apache.org/examples/images/favicon.png

浏览器的功能强大的交互式图表和可视化库

d3

https://avatars1.githubusercontent.com/u/1562726?s=200&v=4

借助SVG,Canvas和HTML使数据栩栩如生。

图形

发现导航 - 精选实用导航网站

uikit

https://getuikit.com/images/favicon.png

一款轻量级、模块化的前端框架可快速构建强大的web前端界面

UI组件库

发现导航 - 精选实用导航网站

JsBridge

android java和javascript桥接,灵感来自微信webview jsbridge

DSBridge-Android

一个现代的跨平台JavaScript桥接,通过它您可以在JavaScript和本机之间同步或异步地调用彼此的功能

原生APP交互webview桥接

发现导航 - 精选实用导航网站

joi

对象模式验证

validator.js

字符串验证插件、表单验证

async-validator

异步验证器

yup

无效的简单对象架构验证

参数验证

发现导航 - 精选实用导航网站

localForage

https://avatars2.githubusercontent.com/u/18673496?s=200&v=4

离线存储,使用简单但功能强大的API包装IndexedDB,WebSQL或localStorage。

数据库

发现导航 - 精选实用导航网站

introjs

https://avatars2.githubusercontent.com/u/2010360?s=200&v=4

为您的网站和项目提供新功能介绍和逐步用户指南的更好方法

shepherd

https://avatars3.githubusercontent.com/u/17297725?s=200&v=4

引导您的用户浏览您的应用程序

bootstrap-tour

使用Twitter Bootstrap Popovers快速方便地进行产品浏览

步骤引导

发现导航 - 精选实用导航网站

JavaScript

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

发现导航 - 精选实用导航网站

React

用于构建用户界面的 JavaScript 库

React Router

React 路由管理

Redux

https://avatars2.githubusercontent.com/u/13142323?s=200&v=4

React 状态管理

create-react-app

React官方脚手架

生态系统

发现导航 - 精选实用导航网站

React Redux

Redux的官方React绑定(通常配合redux使用)

redux-actions

Redux的Flux标准action实用程序(用于生成action)

redux-thunk

Redux的Thunk中间件, 用于处理异步逻辑

redux-saga

https://avatars2.githubusercontent.com/u/24776643?s=200&v=4

一个旨在使应用程序副作用(即异步事物,如数据获取和不纯的东西,如访问浏览器缓存)更容易管理,执行更高效,易于测试,以及更好地处理故障的库

Redux相关

发现导航 - 精选实用导航网站

React Native

使用React构建原生APP程序的框架

React Navigation

https://avatars0.githubusercontent.com/u/29647600?s=200&v=4

为您的本地应用程序提供路由和导航

expo

https://avatars0.githubusercontent.com/u/12504344?s=200&v=4

用于制作跨平台移动应用程序的Expo平台

ant-design-mobile-rn

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

一个基于 React Native 的 UI 组件库

React Native相关

发现导航 - 精选实用导航网站

Ant Design

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

Ant Design - A UI Design Language

MATERIAL-UI

https://material-ui.com/static/favicon.ico

React 组件用于更快速、更简便的 web 开发。你也可以建立你自己的设计系统,或者从 Material Design 开始

element

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

elementUI组件库

react-bootstrap

https://avatars0.githubusercontent.com/u/6853419?s=200&v=4

基于Bootstrap 3构建的组件库

evergreen

Evergreen是一个React UI框架,用于在Web上构建雄心勃勃的产品。由Segment带给您。

@alifd/next

@alifd/next 是 Alibaba Fusion Design 的官方 React 实现, 赋能企业中后台产品开发

zent

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

Zent 是有赞 PC 端 WebUI 规范的 React 实现,提供了一整套基础的 UI 组件以及一些常用的业务组件

React95

装修一新的现代的应用程序做出React Windows95的UI组件。

rsuite

https://avatars1.githubusercontent.com/u/19635045?s=200&v=4

React Suite 是一套 React 组件库,为后台产品而生。同时也是一个具有贴心设计以及对开发者友好的 UI 框架

chakra-ui

https://avatars2.githubusercontent.com/u/54212428?s=200&v=4

适用于您的React应用程序的简单,模块化和可访问的UI组件

PC端UI组件库

发现导航 - 精选实用导航网站

Ant Design Mobile

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

一个基于 Preact / React / React Native 的 UI 组件库

移动端UI组件库

发现导航 - 精选实用导航网站

React Helmet

这个可重用的反应组件将管理对文档头的所有更改

react-image-crop

用于React的响应式图像裁剪工具

React Helmet

这个可重用的反应组件将管理对文档头的所有更改

react-transition-group

当React组件进入或离开DOM时执行动画的简单方法

React Loadable

用于加载具有promise的组件的更高阶组件 - 路由懒加载

react-swipe

基于swipe.js封装的react组件/走马灯

Ant Motion

使用 Ant Motion 能够快速在 React 框架中使用动画,我们提供了单项,组合动画,以及整套解决方案

video-react

网络视频播放器使用React库从头开始构建HTML5世界

react-keeper

一个react路由库,更适合移动端使用,拥有缓存等功能

Fusion Design

基于React构建的Web可配置组件库

recharts

https://avatars0.githubusercontent.com/u/13690587?s=200&v=4

基于 React和D3 的组合式图表库

react-json-view

JSON查看器

BizCharts

基于G2和React的强大数据可视化库

react-draggable

一个简单的组件,用于使元素可拖动

react-slick

react走马灯组件

react-color

react 拾色器

react-intl

https://avatars1.githubusercontent.com/u/50559490?s=200&v=4

国际化React应用程序。这个库提供了React组件和一个API,用于格式化日期,数字和字符串,包括复数形式和处理翻译

react-data-grid

https://avatars3.githubusercontent.com/u/1763971?s=200&v=4

使用React构建的类似于Excel的网格组件,具有编辑器,键盘导航,复制和粘贴等功能

react-virtualized

https://cloud.githubusercontent.com/assets/29597/11736841/c0497158-9f87-11e5-8dfe-9c0be97d4286.png

React组件可有效呈现大型列表和表格数据

react-live

https://avatars3.githubusercontent.com/u/5078602?s=200&v=4

一个用于实时编辑React组件的灵活组件库

formik

https://jaredpalmer.com/formik/img/favicon.png

在React中轻松创建表单

其他组件库

发现导航 - 精选实用导航网站

react-move

https://github.com/favicon.ico

一个React组件,它创建可移动,可拖动,可调整大小,可缩放,可旋转,可扭曲,可收缩,可分组,可捕捉。

react-dnd

https://avatars2.githubusercontent.com/u/25307599?s=200&v=4

React DnD是一组React实用程序,可帮助您构建复杂的拖放接口,同时保持组件分离

react-beautiful-dnd

漂亮的和可访问的拖放列表

react-rnd

一个可调整大小且可拖动的React组件。

拖拽组件

发现导航 - 精选实用导航网站

ANT DESIGN PRO

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

开箱即用的中台前端/设计解决方案

开箱即用

发现导航 - 精选实用导航网站

enzyme

适用于React的JavaScript测试实用程序

Jest

Jest是一个令人愉快的JavaScript测试框架,专注于简单性。

单元测试

发现导航 - 精选实用导航网站

umijs

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

插件化的企业级前端应用框架。

DvaJS

https://avatars1.githubusercontent.com/u/20552239?s=200&v=4

基于React和Redux的轻量级和elm风格框架

umijs/hooks

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

你可以将 umi hooks 使用在任何地方,和任意组件库搭配使用。虽然我们的代码示例都是基于 ant design 的,但是并不代表我们的 Hooks 只能和 ant design 配合使用

umi-plugin-cache-route

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

路由缓存,类似vue keep-alive

umi/dva

发现导航 - 精选实用导航网站

React.js 小书

这是一本关于 React.js 的小书

TypeScript-React-Starter

TypeScript和React的入门模板,带有详细的README,描述了如何将两者结合使用。

react-redux-typescript-guide

TypeScript中的React和 Redux - 使用说明

知识

发现导航 - 精选实用导航网站

Mobx

https://avatars1.githubusercontent.com/u/17475736?s=200&v=4

简单、可扩展的状态管理

next.js

服务端渲染框架、SEO解决方案

nwb

适用于Web的React,Preact,Inferno和Vanilla JS应用,React库和其他npm模块的工具包,无需配置

ahooks

为 React Hooks 而生

react-app-rewired

覆盖create-react-app webpack配置而不弹出

其他

发现导航 - 精选实用导航网站

React

https://reactjs.org/favicon.ico

发现导航 - 精选实用导航网站

Vue.js

渐进式JavaScript 框架

Vue Router

Vue Router 是 Vue.js 官方的路由管理器

Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。

vue-devtools

vue.js调试工具

vue-cli

Vue.js开发的标准脚手架工具

vuepress

Vue 驱动的静态网站生成器

Vue SSR

Vue服务端渲染、SEO解决方案

vue-class-component

用于类式Vue组件的ECMAScript / TypeScript装饰器。

eslint-plugin-vue

Vue.js的官方ESLint插件

vite

Vite是一个经过验证的Web开发人员构建工具,可在开发过程中通过本机ES模块导入为您的代码提供服务,并将其与Rollup捆绑在一起进行生产

Vue 组合式 API

Vue 组合式 API在线文档阅读

生态系统

发现导航 - 精选实用导航网站

iView

https://avatars0.githubusercontent.com/u/20693613?s=200&v=4

一套基于 Vue.js 的高质量UI 组件库

Element

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库

Element Plus

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

支持Vue3.0的Element

Muse-UI

https://avatars0.githubusercontent.com/u/22283362?s=200&v=4

基于 Vue 2.0 优雅的 Material Design UI 组件库

Ant Design Vue

https://qn.antdv.com/favicon.ico

这里是 Ant Design 的 Vue 实现,开发和服务于企业级后台产品

vuetify

https://avatars2.githubusercontent.com/u/22138497?s=200&v=4

让Vue和Material Design的强大力量在开发上助您一臂之力

bootstrap-vue

https://avatars1.githubusercontent.com/u/22965283?s=200&v=4

BootstrapVue为Vue.js提供了最全面的Bootstrap 4组件和网格系统实现之一,并提供了广泛的自动WAI-ARIA可访问性标记

vue-material

https://avatars0.githubusercontent.com/u/23659108?s=200&v=4

Vue material简单,轻巧,完全符合Google Material Design规范

buefy

https://avatars1.githubusercontent.com/u/26799900?s=200&v=4

Buefy是一个基于Bulma框架和设计的Vue.js响应式UI组件的轻量级库。

PC端UI组件库

发现导航 - 精选实用导航网站

vant

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

轻量、可靠的移动端 Vue 组件库

vux

一个凑合的 Vue.js 移动端 UI 组件库

cube-ui

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

基于 Vue.js 实现的精致移动端组件库

Mand Mobile

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单

Mint UI

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

基于 Vue.js 的移动端组件库

NutUI

一套京东风格的轻量级移动端Vue组件库

移动端UI组件库

发现导航 - 精选实用导航网站

vue-awesome-swiper

基于swiper封装的轮播图组件

vue-meta

管理Vue 2.0组件中的页面元信息。支持SSR + Streaming

vue-scroller

Vue Scroller是Vonic UI 的基础组件。为了平滑滚动,拉动刷新和无限加载。

vue-infinite-loading

Vue.js的无限滚动插件(支持向上和向下)

其他组件/插件

发现导航 - 精选实用导航网站

iview-admin

基于iView的Vue 2.0管理系统模板

开箱即用

发现导航 - 精选实用导航网站

nuxt

https://avatars2.githubusercontent.com/u/23360933?s=200&v=4

Vue.js 通用应用框架

创建nuxt的脚手架工具

https://avatars2.githubusercontent.com/u/23360933?s=200&v=4

create-nuxt-app

nuxt服务端渲染框架

发现导航 - 精选实用导航网站

Vue.js

https://v3.vuejs.org/images/icons/apple-icon-152x152.png

发现导航 - 精选实用导航网站

Angular

一个框架,移动 & 桌面

angular-cli

用于Angular CLI脚手架工具

augury

Angular调试和可视化工具

生态系统

发现导航 - 精选实用导航网站

NG-ZORRO

https://avatars2.githubusercontent.com/u/30223759?s=200&v=4

基于Ant Design的Angular企业级UI组件

ng-bootstrap

https://avatars3.githubusercontent.com/u/14283866?s=200&v=4

基于Bootstrap 4的Angular组件

element-angular

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

Element Angular组件库

primeng

https://avatars1.githubusercontent.com/u/3494069?s=200&v=4

PrimeNG是Angular的丰富UI组件的集合

material

Material Design是一个统一的视觉,动作和交互设计系统的规范,适用于不同的设备。

PC端UI组件库

发现导航 - 精选实用导航网站

material

Material Design是一个统一的视觉,动作和交互设计系统的规范,适用于不同的设备。

移动端UI组件库

发现导航 - 精选实用导航网站

Angular

https://avatars0.githubusercontent.com/u/139426?s=200&v=4

发现导航 - 精选实用导航网站

小程序开发

微信小程序

小游戏开发

微信小游戏

小程序文档

发现导航 - 精选实用导航网站

mpvue

Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心

wepy

官方小程序组件化开发框架

mpx

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

Mpx是一款致力于提高小程序开发体验的增强型小程序框架(滴滴出品,基于vue)

uni-app

https://avatars1.githubusercontent.com/u/5485517?s=200&v=4

uni-app 是使用 Vue 语法开发小程序、H5、App的统一框架

omix

https://tencent.github.io/omi/assets/omi-logo2019.svg

腾讯原生小程序框架 OMIX 2.0

小程序框架

发现导航 - 精选实用导航网站

vant-weapp

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

轻量、可靠的小程序 UI 组件库

weui-wxss

https://avatars0.githubusercontent.com/u/18461506?s=200&v=4

这是一套基于样式库weui-wxss开发的小程序扩展组件库,同微信原生视觉体验一致的UI组件库

wxParse

wxParse-微信小程序富文本解析自定义组件,支持HTML及markdown解析

mpvue-wxParse

适用于 Mpvue 的微信小程序富文本解析自定义组件

echarts-for-weixin

https://avatars1.githubusercontent.com/u/2268460?s=200&v=4

ECharts 的微信小程序版本

腾讯位置服务

https://lbs.qq.com/favicon.ico

微信小程序原生LBS能力的最佳拍档

ColorUI

鲜亮的高饱和色彩,专注视觉的小程序组件库

weapp-input-frame

验证码、支付密码输入框组件

小程序组件库/插件

发现导航 - 精选实用导航网站

JS接口签名校验工具

微信 JS 接口签名校验工具

接口调试工具

微信公众平台接口调试工具

computed

小程序自定义组件 computed / watch 扩展

微信公众号开发辅助工具

发现导航 - 精选实用导航网站

awesome-github-wechat-weapp

微信小程序开源项目库汇总

awesome-wechat-weapp

微信小程序开发资源汇总

资源

发现导航 - 精选实用导航网站

微信开放社区

小程序开发者专区,微信公众平台,微信开放社区,开发者专区

wechat-format

微信公众号排版编辑器,转换 Markdown 到微信特制的 HTML

微信开放平台

微信开放平台

其他

发现导航 - 精选实用导航网站

微信开发

https://avatars0.githubusercontent.com/u/18461506?s=200&v=4

发现导航 - 精选实用导航网站

CSS3 UI Lib

CSS动画集成、在线调试阴影

CSS Sprites Generator

CSS雪碧图生成

CSS渐变调试器

http://www.colorzilla.com/favicon.ico

前端开发调试CSS渐变必备神器

Animista

https://animista.net/favicon.ico

在线生成CSS动画

CSS Gradient

https://cssgradient.io/favicon.ico

CSS渐变调试并生成CSS代码

Grabient

https://www.grabient.com/favicon.ico

CSS渐变调试并生成CSS代码,还可以角度变换

px与em单位转换

http://pxtoem.com/favicon.ico

px与em单位转换

CSS三角形產生器

http://apps.eky.hk/css-triangle-generator/favicon.gif

CSS三角形產生器 - 使用純CSS繪畫三角形

SassMeister

https://www.sassmeister.com/favicon.ico

将sass语法转换成CSS语法

transfonter

https://transfonter.org/favicon.ico

字体图标转换Base64

Loading集合

上千种Loading认你选

CSS Reference

https://cssreference.io/favicons/favicon-32x32.png

css参考是一个免费的视觉指导css。它以最受欢迎的特性为特色,并用插图和动画示例对其进行说明

在线CSS阴影调试

https://www.w3cschool.cn/favicon.ico

CSS3 Box Shadow(阴影)效果在线调试工具

CSS

发现导航 - 精选实用导航网站

正则表达式验证器

https://regexper.com/favicon.ico

验证JavaScript正则表达式

JSON在线解析及格式化验证

https://www.json.cn/favicon.ico

json在线解析,json格式化,json格式验证,json转xml,xml转json

prettier

https://avatars0.githubusercontent.com/u/25822731?s=200&v=4

Prettier是一个固定的代码格式化程序。它通过解析代码并使用自己的规则重新打印它来强制执行一致的样式,这些规则考虑了最大行长度,并在必要时包装代码

正则表达式在线测试

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

正则表达式在线测试

spy-debugger

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

微信调试,各种WebView样式调试、手机浏览器的页面真机调试。便捷的远程调试手机页面、抓包工具,支持:HTTP/HTTPS,无需USB连接设备

VConsole

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

一个轻量、可拓展、针对手机网页的前端开发者调试面板

JavaScript

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

发现导航 - 精选实用导航网站

Staticfile CDN

https://www.staticfile.org/assets/images/logo.png

免费CDN服务,包括 JavaScript、CSS、图片和 swf 等静态文件

jsDelivr

https://www.jsdelivr.com/favicon.ico

jsDelivr – 开源 CDN

BootCDN

https://www.bootcdn.cn/assets/ico/favicon.ico

稳定、快速、免费的前端开源项目 CDN 加速服务

cdnjs

https://avatars0.githubusercontent.com/u/637362?s=200&v=4

面向Web开发人员的免费和开源公共Web CDN!

CDN

发现导航 - 精选实用导航网站

FunDebug

https://www.fundebug.com/favicon.ico

支持前端JavaScript,后端Node.js以及微信小程序错误监控

前端兼容性查询

https://www.caniuse.com/img/favicon-128.png

前端查询API各个厂商兼容性情况

Browserhacks

http://browserhacks.com/assets/images/browserhacks.ico

Browserhacks是来自各个互联网的浏览器特定CSS和JavaScript hacks的广泛列表。

Character Entity Reference Chart

字符实体参考图,>

awesome-web-editor

开源web编辑器汇总列表

jsfiddle

https://jsfiddle.net/img/favicon.png

强大的前端代码在线演示的网站

jsperf

https://avatars0.githubusercontent.com/u/11043997?s=200&v=4

jsPerf旨在提供一种简单的方法来创建和共享测试用例,通过运行基准测试来比较不同JavaScript代码段的性能

codesandbox

https://codesandbox.io/favicon.ico

codesandbox是为Web应用程序定制的在线编辑器。

HTML Reference

https://htmlreference.io/favicons/favicon-32x32.png

所有HTML元素和属性的免费指南参考

jsbin

https://static.jsbin.com/images/dave.min.svg

一个轻量级的html/css/js在线编辑器Debug调试器

jsfuck

http://www.jsfuck.com/favicon.ico

JSFuck是基于JavaScript原子部分的深奥和教育性编程风格。它仅使用六个不同的字符来编写和执行代码。

其他

发现导航 - 精选实用导航网站

工具

发现导航 - 精选实用导航网站

Bootstrap

https://getbootstrap.com/docs/4.5/assets/img/favicons/favicon.ico

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架

Sass

https://avatars2.githubusercontent.com/u/317889?s=200&v=4

Sass 是成熟、稳定、强大的 CSS 扩展语言

Less

https://avatars0.githubusercontent.com/u/3538330?s=200&v=4

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性

magic

CSS3动画特效

Animate.css

https://avatars3.githubusercontent.com/u/64791939?s=200&v=4

CSS动画的跨浏览器库,简单易用

normalize.css

http://necolas.github.io/normalize.css/favicon.ico

使浏览器更加一致地呈现所有元素并符合现代标准。它只针对需要规范化的样式

Hover

CSS3动力悬停效果的集合,适用于链接,按钮,徽标,SVG,特色图像等

github-markdown-css

复制GitHub Markdown样式的最小CSS量

autoprefixer

https://avatars1.githubusercontent.com/u/8296347?s=200&v=4

Autoprefixer是一款自动管理浏览器前缀的插件,它可以解析CSS文件并且添加浏览器前缀到CSS内容里

vivify

http://vivify.mkcreative.cz/assets/img/apple-icon-57x57.png

Vivify是免费的CSS动画库。

cubic-bezier

在线制作CSS动画

CSS

发现导航 - 精选实用导航网站

iconfont

http://www.iconfont.cn/favicon.ico

阿里妈妈MUX倾力打造的矢量图标管理、交流平台

Font Awesome

https://avatars1.githubusercontent.com/u/1505683?s=200&v=4

一套绝佳的图标字体库和CSS框架

LivIcons Evolution

https://livicons.com/apple-icon-57x57.png

会动的纯svg矢量图标库

ionicons

https://avatars0.githubusercontent.com/u/3171503?s=200&v=4

适用于Ionic Framework和Web应用程序的高级图标字体

material-design-icons

Google的Material Design图标

图标库

发现导航 - 精选实用导航网站

css battle

https://cssbattle.dev/images/logo-square.png

在线比拼CSS

学习CSS布局

http://zh.learnlayout.com/images/logo.png

学习CSS布局

资源

发现导航 - 精选实用导航网站

CSS

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/css/css.png

发现导航 - 精选实用导航网站

TypeScript

TypeScript 是一种由微软开发的自由和开源的编程语言,它是JavaScript的一个超集

TypeSearch

搜索typescript 类型包 @types/node

DefinitelyTyped

高质量TypeScript类型定义的存储库

typescript-eslint

https://avatars0.githubusercontent.com/u/46634674?s=200&v=4

Monorepo用于所有工具,使ESLint能够支持TypeScript

awesome-typescript

用于客户端和服务器端开发的强大TypeScript资源的集合。在TypeScript中编写精彩的JavaScript

TypeScript 入门教程

TypeScript 入门教程

TypeScript

发现导航 - 精选实用导航网站

TypeScript

https://www.typescriptlang.org/favicon-32x32.png

发现导航 - 精选实用导航网站

JavaScript 20 年

JavaScript 20 年

你不知道的JavaScript

你不知道的JavaScript

现代 JavaScript 教程

https://zh.javascript.info/img/favicon/favicon.png

以最新的 JavaScript 标准为基准。通过简单但足够详细的内容,为你讲解从基础到高阶的 JavaScript 相关知识

ECMAScript 6入门

ECMAScript 6入门

JavaScript教程

JavaScript 标准参考教程

书籍

发现导航 - 精选实用导航网站

JavaScript Puzzlers

你真的了解JavaScript吗?来试试吧!

InterviewMap

https://avatars1.githubusercontent.com/u/41361384?s=200&v=4

打造最好的面试图谱

飞冰早报

飞冰早报

jsdoc

用于JavaScript的API文档生成器。

30 seconds of code

https://avatars3.githubusercontent.com/u/43479428?s=200&v=4

精选的有用JavaScript代码段集合,您可以在30秒或更短的时间内理解这些代码段。

33-js-concepts

JavaScript开发者应懂的33个概念

ECMAScript Proposals

https://avatars1.githubusercontent.com/u/1725583?s=200&v=4

跟踪ECMAScript 提案

ecma262

https://avatars1.githubusercontent.com/u/1725583?s=200&v=4

ECMA-262的状态,流程和文档

JavaScript 秘密花园

https://bonsaiden.github.io/JavaScript-Garden/favicon.ico?v=2

JavaScript 语言最古怪用法的文档集合

Airbnb JavaScript 编码规范

Airbnb JavaScript 编码规范

Daily-Interview-Question

工作日每天一道前端大厂面试题,祝大家天天进步,一年后会看到不一样的自己

javascript-algorithms

JavaScript 算法与数据结构

weekly

https://avatars2.githubusercontent.com/u/26534952?s=200&v=4

前端精读周刊

文档

发现导航 - 精选实用导航网站

参考资料

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

发现导航 - 精选实用导航网站

WEB前端

发现导航 - 精选实用导航网站

Node.js

Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时

npm1

npm是JavaScript世界的包管理工具,并且是 Node.js 平台的默认包管理工具

官方

发现导航 - 精选实用导航网站

urllib

在复杂的世界中请求HTTP(s)URL

formstream

multipart / form-data编码流,用于文件上传的帮助程序。

validate-npm-package-name

给我一个字符串,我会告诉你它是否是有效的npm软件包名称

模块

发现导航 - 精选实用导航网站

Yarn

https://classic.yarnpkg.com/favicon.ico

快速、可靠、安全的依赖管理

awesome-nodejs

Node.js软件包和资源

nodebestpractices

最大的Node.js最佳实践列表

其他

发现导航 - 精选实用导航网站

NodeBB

https://avatars0.githubusercontent.com/u/4449608?s=200&v=4

基于Node.js的论坛软件,为现代网站

Ghost

https://avatars1.githubusercontent.com/u/2178663?s=200&v=4

Ghost 是基于 Node.js 构建的开源博客平台。Ghost 具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写。Ghost 的目标是取代臃肿的 Wordpress

CMS

发现导航 - 精选实用导航网站

nodebestpractices

Node.js 最佳实践, 最大的汇集,且每周都在增长 - 当前,超过50个最佳实现,样式指南,架构建议已经呈现

资料

发现导航 - 精选实用导航网站

生态系统

https://nodejs.org/static/images/favicons/favicon.ico

发现导航 - 精选实用导航网站

request

简化的HTTP请求客户端

superagent

一个小型渐进式客户端HTTP请求库,Node.js模块具有相同的API,具有许多高级HTTP客户端功能

axios

基于Promise的HTTP客户端,用于浏览器和node.js

node-fetch

一个轻量级的模块,将window.fetch带到Node.js

bent

带有async await的功能性JS HTTP客户端(Node.js和Fetch)

superagent-proxy

superagent代理扩展,这使您可以通过某种代理来代理HTTP请求

网络请求

发现导航 - 精选实用导航网站

Puppeteer

https://pptr.dev/favicons/apple-touch-icon.png

Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制Chromium或Chrome

cypress

https://avatars0.githubusercontent.com/u/8908513?s=200&v=4

对浏览器中运行的所有内容进行快速,轻松和可靠的测试,(类Puppeteer)

Mocha

https://avatars0.githubusercontent.com/u/8770005?s=200&v=4

Node.js和浏览器的简单,灵活,有趣的JavaScript测试框架

chai

https://avatars0.githubusercontent.com/u/1515293?s=200&v=4

node.js的BDD/TDD断言框架和可以与任何测试框架配对的浏览器

ava

https://avatars2.githubusercontent.com/u/8527916?s=200&v=4

未来的JavaScript测试运行器

Jest

https://jestjs.io/img/favicon/favicon.ico

Jest是一个令人愉快的JavaScript测试框架,专注于简单性。

testcafe

https://avatars1.githubusercontent.com/u/4243232?s=200&v=4

一个Node.js工具,用于自动化端到端Web测试

jest-puppeteer

https://avatars2.githubusercontent.com/u/26206404?s=200&v=4

使用Jest&Puppeteer运行测试 🎪✨

ts-jest

https://kulshekhar.github.io/ts-jest/assets/img/logo.png

具有对Jest的Sourcemap支持的TypeScript预处理器

jest-extended

https://avatars2.githubusercontent.com/u/26206404?s=200&v=4

扩展 jest 匹配器

单元测试

发现导航 - 精选实用导航网站

node-mysql2

node.js的快速node-mysql兼容的mysql驱动程序

sequelize

基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, SQLite 和 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 读取和复制等功能

mongoose

mongodb对象模型设计用于在异步环境中工作。

ioredis

适用于Node.js,以性能为中心且功能齐全的Redis客户端。

objection.js

Objection.js是Node.js的一个ORM ,它旨在避免使用SQL和底层数据库引擎的全部功能,同时尽可能简单地将magic保持在最低限度。

nedb

JavaScript数据库,用于Node.js,nw.js,electron和浏览器

typeorm

https://avatars0.githubusercontent.com/u/20165699?s=200&v=4

ORM for TypeScript和JavaScript(ES7,ES6,ES5)。支持MySQL,PostgreSQL,MariaDB,SQLite,MS SQL Server,Oracle,WebSQL数据库。适用于NodeJS,浏览器,Ionic,Cordova和Electron平台

knexjs

https://avatars0.githubusercontent.com/u/10490573?s=200&v=4

PostgreSQL,MySQL和SQLite3的查询构建器,旨在灵活,可移植且易于使用。

node-redis

https://avatars1.githubusercontent.com/u/5845577?s=200&v=4

高性能Node.js Redis客户端。

数据库

发现导航 - 精选实用导航网站

node-canvas

node-canvas是Node.js的Cairo -backed Canvas实现。

svg-captcha

在node.js中生成svg验证码

ccap

node.js使用C++库CImg生成验证码,无需安装任何其他库或软件

text-to-svg

将文本转换为SVG路径而不依赖于本机

svg2png

使用PhantomJS将SVG转换为PNG

图形相关

发现导航 - 精选实用导航网站

node-http-proxy

一个HTTP可编程代理库,支持websocket。它适用于实现反向代理和负载平衡器等组件

http-proxy-middleware

用于连接,快速和浏览器同步的单线程node.js http-proxy中间件(基于node-http-proxy)

代理

发现导航 - 精选实用导航网站

esprima

ECMAScript解析基础架构,可进行多用途分析, 将代码转换成AST

recast

JavaScript AST转换器,非破坏性漂亮打印机和自动源映射生成器

AST辅助工具

发现导航 - 精选实用导航网站

node-xlsx

NodeJS excel文件解析器和构建器

fs-extra

操作系统文件,用于替代内置的fs模块

js-xlsx

https://avatars0.githubusercontent.com/u/5826089?s=200&v=4

SheetJS社区版 - 电子表格工具包

node-archiver

https://www.archiverjs.com/images/logo.svg

文件压缩

文件相关

发现导航 - 精选实用导航网站

wechat-oauth

微信公共平台OAuth接口消息接口服务中间件与API SDK

wechat-api

微信公共平台API

wechat

微信公共平台消息接口服务中间件

wechaty

是适用于微信个人帐户的Bot SDK ,可以帮助您创建6行javascript的机器人

微信开发

发现导航 - 精选实用导航网站

Glob

匹配文件。 **/*.js

prompts

轻巧,美观和用户友好的交互式提示

enquirer

https://avatars3.githubusercontent.com/u/21160645?s=200&v=4

时尚,直观和用户友好的提示

cli-table3

https://avatars2.githubusercontent.com/u/887802?s=200&v=4

带有Node.JS的CLI的漂亮unicode表

commander.js

node.js命令行界面的完整解决方案,受Ruby指挥官的启发

ora

优雅的终端微调器

Inquirer.js

常用交互式命令行用户界面的集合

shelljs

Node.js的可移植Unix shell命令

download-git-repo

下载并提取git存储库(GitHub,GitLab,Bitbucket)

node-semver

https://avatars0.githubusercontent.com/u/6078720?s=200&v=4

node的semver解析器

node-progress

node.js的灵活ascii进度条

node-qrcode

二维码生成

open

打开URL,文件,可执行文件等内容。跨平台。

ssh2

用纯JavaScript编写的SSH2客户端和服务器模块,用于node.js

minimist

解析参数选项

node-clear

清空终端屏幕信息

chalk

https://avatars2.githubusercontent.com/u/13122722?s=200&v=4

终端字符串样式

yargs

https://avatars3.githubusercontent.com/u/16504989?s=200&v=4

通过解析参数并生成优雅的用户界面来帮助您构建交互式命令行工具。

CLI

发现导航 - 精选实用导航网站

handlebars

https://handlebarsjs.com/images/favicon.png

JavaScript模板引擎

ejs

https://ejs.co/favicon.svg

JavaScript模板引擎

mustache.js

https://github.githubassets.com/favicons/favicon.svg

使用JavaScript的无逻辑{{mustache}}模板

模板引擎

发现导航 - 精选实用导航网站

node-xml2js

简单的XML到JavaScript对象转换器。它支持双向转换。使用sax-js和 xmlbuilder-js

iconv-lite

纯JavaScript中转换字符编码。

node-uuid

在JavaScript中生成符合RFC的UUID

nativefier

使任何网页成为桌面应用程序

getmac

通过Node.js获取当前计算机的mac地址

http-server

一个简单的零配置命令行http服务器

node-schedule

Node的类似cron-like和非not-cron-like的作业调度程序。

qrcode-terminal

QRCode终端版

localtunnel

https://avatars1.githubusercontent.com/u/13612933?s=200&v=4

localtunnel将您的localhost暴露给世界,以便于测试和共享!无需混淆DNS或部署只是为了让其他人测试您的更改

passport

http://www.passportjs.org/images/favicon/apple-icon-57x57.png

Node.js的简单,不显眼的身份验证

parameter

参数验证工具

bytes

用于解析字符串字节, b/kb/mb/gb/tb/pb

js-yaml

https://avatars2.githubusercontent.com/u/723678?s=200&v=4

JavaScript YAML解析器和转储器。非常快

acorn

https://avatars0.githubusercontent.com/u/34631683?s=200&v=4

一个小型,基于JavaScript的快速JavaScript解析器

figlet.js

用JavaScript编写的FIG驱动程序,旨在完全实现FIGfont规范, 生成ascii

node-printer

本机 node.js 打印机

fontmin

无缝缩小字体

morgan

https://avatars1.githubusercontent.com/u/5658226?s=200&v=4

Node.js的HTTP请求记录器中间件

jsdom

https://avatars0.githubusercontent.com/u/9271229?s=200&v=4

与Node.js一起使用的各种Web标准的JavaScript实现

其他

发现导航 - 精选实用导航网站

依赖包

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

发现导航 - 精选实用导航网站

Electron

https://www.electronjs.org/images/favicon.ico

使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用

electron-packager

https://www.electronjs.org/images/favicon.ico

通过JS或CLI自定义和封装您的Electron应用程序与特定于操作系统的软件包(.app,.exe等)

electron-installer-dmg

https://www.electronjs.org/images/favicon.ico

使用AppDMG为电子应用程序创建DMG安装程序

electron-vue

https://simulatedgreg.gitbooks.io/electron-vue/content/gitbook/images/apple-touch-icon-precomposed-152.png

基于 vue (基本上是它听起来的样子) 来构造 electron 应用程序的样板代码。

electron-builder

https://www.electron.build/assets/images/favicon.png

一个开箱即用的完整解决方案,用于将Electron, Proton Native or Muon 打包、构建成支持macOS, Windows and Linux三大系统的,可”自动更新”的可发布安装程序

electron-react-boilerplate

https://electron-react-boilerplate.js.org/logo/logo.png

基于React可扩展跨平台应用程序的App

menubar

https://www.electronjs.org/images/favicon.ico

Electron创建菜单栏桌面应用程序的高级方法。

Electron

https://www.electronjs.org/images/favicon.ico

发现导航 - 精选实用导航网站

nw.js

https://nwjs.org.cn/asset/img/favicon.ico

从DOM/WebWorker层,直接调用所有的Node模块,使用现有的web技术,开启一个全新的编写应用的方式

nw-builder

https://nwjs.org.cn/asset/img/favicon.ico

以编程方式或通过CLI 构建适用于Mac,Win和Linux的NW.js应用程序。

nwjs-ffmpeg-prebuilt

https://nwjs.org.cn/asset/img/favicon.ico

FFMpeg预构建的二进制文件具有专有的编解码器和构建窗口。

nw.js

发现导航 - 精选实用导航网站

跨平台框架

发现导航 - 精选实用导航网站

nest

https://avatars1.githubusercontent.com/u/28507035?s=200&v=4

Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(功能编程)和 FRP(功能反应编程)的元素

awesome-nestjs

https://avatars1.githubusercontent.com/u/28507035?s=200&v=4

NestJS的精选列表

nest

发现导航 - 精选实用导航网站

Egg.js

https://eggjs.org/images/favicon.png

Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本

egg-validate

https://eggjs.org/images/favicon.png

基于 parameter 封装的参数验证插件

egg-mailer

https://eggjs.org/images/favicon.png

基于 nodemailer 封装的参数验证插件

egg.js

发现导航 - 精选实用导航网站

Koa

https://avatars2.githubusercontent.com/u/5055057?s=200&v=4

Koa -- 基于Node.js 平台的下一代web开发框架

Express

https://avatars1.githubusercontent.com/u/5658226?s=200&v=4

Express - 快速、开放、极简的 Web 开发框架

Express/Koa

发现导航 - 精选实用导航网站

WEB框架

发现导航 - 精选实用导航网站

node-inspector

Node.js调试器基于Blink Developer Tools

debug

一个微小的JavaScript调试工具,以Node.js核心的调试技术为模型。适用于Node.js和Web浏览器

ndb

ndb是针对Node.js的改进调试体验,由Chrome DevTools启用

调试debugger

发现导航 - 精选实用导航网站

nvm

Node版本管理器 - 用于管理多个活动node.js版本的简单bash脚本

nvm-windows

适用于Windows的node.js版本管理实用程序

nvs

Node Version Switcher - 用于在Node.js的版本和分支之间切换的跨平台工具(受到nvm的启发)

n

Node.js版本管理:无配置文件,无复杂的API,非常简单

node版本管理

发现导航 - 精选实用导航网站

log4js-node

log4js 是一个 nodejs 日志管理工具,可以将日志以各种形式输出到各种渠道。

node-bunyan

用于node.js服务的简单快速的JSON日志记录模块

日志管理

发现导航 - 精选实用导航网站

yeoman

https://avatars0.githubusercontent.com/u/1714870?s=200&v=4

一套用于自动化开发工作流程的工具

nodemailer

https://avatars0.githubusercontent.com/u/16486629?s=200&v=4

发送来自Node.js的电子邮件 - 很容易就像蛋糕一样!

gh-pages

将文件发布到GitHub上的gh-pages分支的常规任务

集成工具

发现导航 - 精选实用导航网站

terser

https://avatars1.githubusercontent.com/u/43502240?s=200&v=4

适用于ES6+的JavaScript解析器,mangler和压缩器工具包

代码压缩

发现导航 - 精选实用导航网站

Awehunt

npm包下载量曲线对比图

nodemon

监视node.js应用程序中的任何更改并自动重新启动服务器 - 非常适合开发

pkg

将Node.js项目打包成可执行文件

npm-check-updates

查找package.json或bower.json允许的更新版本的软件包依赖项

husky

husky 可以防止错误的 git commit, git push 等

bundlephobia

找出在项目中添加新的依赖项的包大小

npm-run-all

一个CLI工具,可并行或顺序运行多个npm脚本

dotenv

从.env加载用于nodejs项目的环境变量

cross-env

运行跨平台设置和使用环境变量的脚本

nrm

npm源快速切换, npm, cnpm, taobao, nj, 内网

其他

发现导航 - 精选实用导航网站

辅助工具

https://nodejs.org/static/images/favicons/favicon.ico

发现导航 - 精选实用导航网站

Deno

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

一个安全的运行时的JavaScript和TypeScript

Deno 标准库

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

Deno 标准库

官方

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

发现导航 - 精选实用导航网站

Deno

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

适用于Deno的Visual Studio Code插件

工具

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

发现导航 - 精选实用导航网站

Deno

发现导航 - 精选实用导航网站

Node.js

发现导航 - 精选实用导航网站

Golang

Go编程语言

go.dev

大规模构建快速,可靠,高效的软件

awesome-go

精选的Go框架,库和软件的精选列表

Goproxy

https://avatars1.githubusercontent.com/u/49926011?s=200&v=4

中国最可靠的 Go 模块代理

Go语言中文网

https://static.studygolang.com/static/img/favicon.ico

Go语言中文网

Go标准库中文文档

https://studygolang.com/static/img/go.ico

Go标准库中文文档

生态

发现导航 - 精选实用导航网站

gin

Gin是用Go(Golang)编写的Web框架。它具有类似于martini的API,其性能比httprouter快40倍。如果您需要性能和良好的生产率,您会喜欢Gin

beego

beego是用于Go编程语言的开源,高性能Web框架

martini

Go的经典Web框架

echo

https://avatars1.githubusercontent.com/u/2624634?s=200&v=4

高性能,简约的Go Web框架

iris

https://www.iris-go.com/favicon.ico

最快的HTTP / 2 Go Web框架。AWS Lambda,gRPC,MVC,唯一路由器,Websocket,会话,测试套件,依赖注入等。expressjs和laravel的真正继承者|

fiber

https://avatars1.githubusercontent.com/u/59947262?s=200&v=4

Fiber是一个受Express启发的Web框架,建立在Fasthttp(Go最快的HTTP引擎)的基础上。 旨在简化零内存分配和性能的情况,以便快速开发。

WEB框架

发现导航 - 精选实用导航网站

生态系统

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

发现导航 - 精选实用导航网站

Fyne

https://avatars3.githubusercontent.com/u/36045855?s=200&v=4

基于Material Design的Go跨平台GUI

GUI

发现导航 - 精选实用导航网站

logrus

Go的结构化,可插入日志记录。

zap

https://avatars3.githubusercontent.com/u/19262598?s=200&v=4

在Go中实现快速,结构化,水平的日志记录。

日志模块

发现导航 - 精选实用导航网站

gorm

适用于Golang的绝佳ORM库,旨在对开发人员友好

ent

https://entgo.io/img/favicon.ico

用于Go的简单但功能强大的实体框架,可轻松构建和维护具有大型数据模型的应用程序。

mysql

Go MySQL驱动程序是Go(golang)数据库/ sql包的MySQL驱动程序

sqlite3

sqlite3驱动程序

pq

适用于database/sql的Pure Go Postgres驱动程序

redis

https://redis.uptrace.dev/assets/images/favicon.png

用于Golang的类型安全的Redis客户端

数据库

发现导航 - 精选实用导航网站

json-iterator

高性能100%兼容的“ encoding / json”替代产品

blackfriday

Markdown处理器,安全、快速。

goldmark

用Go语言编写的markdown解析器。易于扩展,符合标准(CommonMark),结构合理。

goquery

接近jQuery语法的DOM解析库

go-yaml

yaml包使Go程序能够轻松地对yaml值进行编码和解码, 可以快速可靠地解析和生成YAML数据。

xurls

从文本中提取Urls

解析器

发现导航 - 精选实用导航网站

govalidator

参数验证程序,用于字符串,数字,切片和结构

validator

基于标签对结构和各个字段实现值验证。

参数验证

发现导航 - 精选实用导航网站

ip

获取公网IP地址、v4/v6

terminal

提供了用于处理终端的支持功能,这在UNIX系统上很常见

gopsutil

用于检索正在运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,概要分析和限制进程资源以及管理正在运行的进程

air

Go热重载

go-micro

分布式系统开发框架

xlsx

xlsx是一个库,用于简化在Go程序中读写Microsoft Excel最新版本使用的XML格式。

email

Go强大而灵活的电子邮件库。

websocket

Go的一种快速,经过测试且广泛使用的WebSocket实现

jwt-go

Golang 实现的 JSON WEB TOKEN

cron

Go 实现的 cron 包

qrcode

二维码生成

casbin

https://avatars3.githubusercontent.com/u/27810343?s=200&v=4

权限管理库,支持Golang中的访问控制模型,如ACL,RBAC,ABAC

resty

用于Go的简单HTTP和REST客户端库

grpc-go

https://grpc.io/favicons/apple-touch-icon.png

gRPC的Go语言实现。基于HTTP/2的RPC

colly

https://avatars2.githubusercontent.com/u/33584194?s=200&v=4

Colly提供了一个干净的界面来编写任何种类的爬虫

cors

使用net / http可配置的处理程序来处理CORS请求

其他

发现导航 - 精选实用导航网站

依赖包

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

发现导航 - 精选实用导航网站

color

CLI 控制台颜色渲染工具库, 支持Windows

终端颜色

发现导航 - 精选实用导航网站

cli

一个简单,快速且有趣的软件包,用于在Go中构建命令行应用

cobra

Cobra既是用于创建功能强大的现代CLI应用程序的库,又是用于生成应用程序和命令文件的程序

命令行解析

发现导航 - 精选实用导航网站

pb

Golang的控制台进度栏

mpb

Go cli应用程序的多进度条

控制台进度条

发现导航 - 精选实用导航网站

promptui

命令行应用程序的交互式提示

godotenv

从`.env`文件加载环境变量。

go-prompt

受python-prompt-toolkit启发,在Go中构建强大的交互式提示。

其他

发现导航 - 精选实用导航网站

CLI

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

发现导航 - 精选实用导航网站

gvm

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go版本管理器,类似 nvm

json-to-go

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

在线 JSON 转 Struct结构体

golangci-lint

https://avatars3.githubusercontent.com/u/35628013?s=200&v=4

Go的快速Linters Runner

The Go Playground

https://play.golang.org/favicon.ico

在线运行Golang

nuclei

https://nuclei.projectdiscovery.io/

Nuclei是基于模板的可配置目标扫描的快速工具,具有广泛的可扩展性和易用性。

jaeger

https://avatars3.githubusercontent.com/u/35628013?s=200&v=4

分布式链路追踪

delve

https://avatars1.githubusercontent.com/u/19232073?s=200&v=4

Delve是Go编程语言的调试器。

工具

发现导航 - 精选实用导航网站

工具

发现导航 - 精选实用导航网站

Go 入门指南

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《The Way to Go》中文译本,中文正式名《Go 入门指南》

Go语言圣经

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go语言圣经 《The Go Programming Language》 中文版本

Go WEB 编程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Golang电子书介绍如何使用Golang建立网络

Go简易教程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《The Little Go Book》中文译本,中文正式名《Go简易教程》

Go by Example 中文版

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go by Example 是对 Go 基于实践的介绍,包含一系列带有注释说明的示例程序。

Go语言之旅

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

本指南涵盖了该语言的大部分重要特性,主要包括:基础、方法和接口、并发等

Go语言101

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

一本着墨于Go语法语义以及运行时相关知识点的编程指导书(Go 1.15就绪)。 此书旨在尽可能地帮助Go程序员更深更全面地理解Go语言

Go语言高级编程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

本书涵盖CGO、Go汇编语言、RPC实现、Web框架实现、分布式系统等高阶主题,针对Go语言有一定经验想深入了解Go语言各种高级用法的开发人员(不推荐新手)

Mastering GO

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《Mastering GO》中文译本,《玩转 GO》。

Mastering GO2

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Mastering Go 第二版中文版来袭!

书籍

发现导航 - 精选实用导航网站

100天从新手到大师

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Golang - 100天从新手到大师

project-layout

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go标准布局结构,项目架构结构参考。

编码规范

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Uber Go 语言编码规范

Gin实战

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

WEB 框架Gin实战

其他

发现导航 - 精选实用导航网站

参考资料

发现导航 - 精选实用导航网站

Golang

发现导航 - 精选实用导航网站

Dart

https://pub.dev/favicon.ico

Dart语言

DartPad

https://pub.dev/favicon.ico

在线运行Dart语法

Dart packages

https://pub.dev/favicon.ico

Dart packages

Flutter

https://flutter.dev/images/favicon.png

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的

Flutter Icon

https://flutter.dev/images/favicon.png

Flutter内置Icon组件图标速查表

官方

发现导航 - 精选实用导航网站

imei_plugin

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

用flutter在Android中获取imei的插件

multi_image_picker

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

Flutter插件,可让您在iOS和Android上显示多图像选择器。

sqflite

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

SQLite flutter plugin

dio

https://flutter.dev/images/favicon.png

dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等

fish-redux

https://camo.githubusercontent.com/a53c432bb9c2222880a6eca54b5ed091d1ab3d40/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317237344e4a794c614b31526a535a46785858616d504658612d313032342d313032342e706e67

一个基于Redux状态管理的组合式flutter应用程序框架。它适用于建筑中型和大型应用。

flutter_pulltorefresh

https://flutter.dev/images/favicon.png

一个提供上拉加载和下拉刷新的组件,同时支持Android和Ios

json_serializable

https://flutter.dev/images/favicon.png

JSON序列化和反序列化的代码

flutter_swiper

https://flutter.dev/images/favicon.png

flutter最强大的siwiper, 多种布局方式,无限轮播,Android和IOS双端适配

FlutterToast

https://flutter.dev/images/favicon.png

适用于Flutter的Android Toast插件

dart-uuid

https://flutter.dev/images/favicon.png

生成 RFC4122(v1,v4,v5) UUIDs

fluwx

https://flutter.dev/images/favicon.png

Flutter版微信SDK.WeChat SDK for flutter.

常用模块

发现导航 - 精选实用导航网站

Material Design

https://flutter.dev/images/favicon.png

Material是一个由开源代码支持的设计系统,可以帮助团队构建高质量的数字体验

Flutter实战

https://flutter.dev/images/favicon.png

Flutter实战

samples

https://flutter.dev/images/favicon.png

Flutter示例和演示的集合

flutter-go

https://img.alicdn.com/tfs/TB1OJkeHNYaK1RjSZFnXXa80pXa-229-229.png

flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档

Flutter-Notebook

https://flutter.dev/images/favicon.png

flutter相关功能demo的集合,它能够帮助您快速学习一些零碎的知识

plugins

https://flutter.dev/images/favicon.png

Flutter团队维护的Flutter插件

awesome-flutter

https://flutter.dev/images/favicon.png

很棒的清单,精选了最好的Flutter库,工具,教程,文章等

flutter-do

https://flutter.dev/images/favicon.png

330+Widgets在线查看预览和使用。

文档资料

发现导航 - 精选实用导航网站

flutter_wanandroid

https://flutter.dev/images/favicon.png

基于Google Flutter的WanAndroid客户端,支持Android和iOS。包括BLoC、RxDart 、国际化、主题色、启动页、引导页,拥有较好的项目结构&比较规范的代码

Best-Flutter-UI-Templates

https://flutter.dev/images/favicon.png

Best-Flutter-UI-模板, 对所有人完全免费。其内置的Flutter Dart。

其他

发现导航 - 精选实用导航网站

生态系统

发现导航 - 精选实用导航网站

Flutter

发现导航 - 精选实用导航网站

Python

是一种解释型、面向对象、动态数据类型的高级程序设计语言。

PyPi

使用Python软件包索引查找,安装和发布Python软件包

官方

发现导航 - 精选实用导航网站

PCU

python-check-updates, 检查 pip 当前依赖包最新版本

工具

发现导航 - 精选实用导航网站

生态系统

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

requests

https://www.python.org/static/favicon.ico

requests是一个简单而优雅的HTTP库。

aiohttp

https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png

用于asyncio和Python的异步HTTP客户端/服务器框架

Scrapy

https://avatars2.githubusercontent.com/u/733635?s=200&v=4

一个用于Python的快速高级Web爬虫框架。

selenium

https://avatars0.githubusercontent.com/u/983927?s=200&v=4

浏览器自动化框架和生态系统。

beautifulsoup

可以从HTML或XML文件中提取数据的Python库

HTTP/爬虫

发现导航 - 精选实用导航网站

Pillow

友好的PIL前叉,是一个出色的图像处理库

图像

发现导航 - 精选实用导航网站

numpy

使用Python进行科学计算的基本软件包。

运算

发现导航 - 精选实用导航网站

pandas

https://avatars1.githubusercontent.com/u/21206976?s=200&v=4

功能强大的Python数据分析工具包

数据分析

发现导航 - 精选实用导航网站

rich

https://github.com/favicon.ico

Rich是一个Python库,用于在终端中提供富文本和精美的格式。

Fire

Python Fire是一个用于从绝对任何Python对象自动生成命令行界面(CLI)的库。

colorama

Python中简单的跨平台彩色终端文本

tqdm

https://avatars1.githubusercontent.com/u/12731565?s=200&v=4

适用于Python和CLI的快速,可扩展的进度栏

paramiko

领先的Python SSHv2协议库

click

Python可组合命令行界面工具包

CLI

发现导航 - 精选实用导航网站

JMESPath

https://github.com/favicon.ico

JMESPath是JSON的查询语言

其他

发现导航 - 精选实用导航网站

依赖包

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

Django

https://avatars3.githubusercontent.com/u/27804?s=200&v=4

具有期限的完美主义者的Web框架。

flask

https://avatars0.githubusercontent.com/u/16748505?s=200&v=4

用于构建Web应用程序的Python微框架。

WEB框架

发现导航 - 精选实用导航网站

框架

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

简明 Python 教程

https://www.python.org/static/favicon.ico

旨在于介绍如何使用 Python 语言进行编程的自由图书。它以教材与指南的形式为入门者介绍 Python 语言。如果你对电脑知识的了解仅限于如何保存文本文件的话,那这本书就是为你准备的。

书籍

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

100天从新手到大师

https://www.python.org/static/favicon.ico

Python - 100天从新手到大师

Python 入门指南

https://www.python.org/static/favicon.ico

Python 入门指南

What the f*ck Python!

https://www.python.org/static/favicon.ico

一些有趣且鲜为人知的 Python 特性.

awesome-python-cn

https://www.python.org/static/favicon.ico

Python 资源大全中文版

cheatsheet

https://www.python.org/static/favicon.ico

Python大全备忘单

awesome-python

https://www.python.org/static/favicon.ico

精选的Python框架,库,软件和资源的精选清单。

文档资料

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

参考资料

发现导航 - 精选实用导航网站

Python

发现导航 - 精选实用导航网站

segmentfault

https://cdn.segmentfault.com/v-5f64887f/global/img/touch-icon.png

是中文领域最大的技术问答交流社区平台

掘金

https://b-gold-cdn.xitu.io/favicons/v2/apple-touch-icon.png

一个帮助开发者成长的社区

DiyCode1

致力于构建开发工程师高端交流分享社区

黑客派

https://static.ld246.com/images/favicon.png

黑客派是程序员和设计师的聚集地,汇聚了严谨求实的工程师和富有创意的设计师

Node.js专业中文社区

国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究

吾爱破解

https://www.52pojie.cn/favicon.ico

吾爱破解关注PC软件安全和移动安全领域,致力于软件安全与病毒分析的前沿

FreeBuf

https://www.freebuf.com/favicon.ico

FreeBuf黑客与极客,国内关注度最高的全球互联网安全媒体平台

IMWeb

https://imweb.io/public/icon.png

Web前端 腾讯IMWeb 团队社区

Stack Overflow

https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a

全球最大的技术问答网站,是一个与程序相关的IT技术问答网站

React社区

https://reactjs.org/favicon.ico

React论坛社区

众成翻译

https://p1.ssl.qhimg.com/t010e845cdf71587354.png

中国最好的技术翻译社区,最懂译者的翻译平台,奇虎360最大前端团队“奇舞团”出品

MDN web docs

https://developer.mozilla.org/favicon.ico

Mozilla 开发者社区,是一个完整的学习平台,你可以在这里深入学习Web技术以及能够驱动Web的软件

DEV Community

https://dev-to.s3.us-east-2.amazonaws.com/favicon.ico

在这里程序员分享想法并帮助彼此成长

问答社区1

发现导航 - 精选实用导航网站

V2EX

https://www.v2ex.com/static/img/v2ex_192.png

创意工作者们的社区

知乎

https://static.zhihu.com/static/favicon.ico

知乎,中文互联网最大的知识分享和社交平台

简书

https://www.jianshu.com/favicon.ico

简书是一个创作社区,任何人均可以在其上进行创作

小专栏

https://images.xiaozhuanlan.com/assets/favicon-bd135558698197f509ada06695c03a4f458f0077fa476f9a4e7ba9664f3dc55f.ico

小专栏是一个专业人士的创作知识社区,在这里您可以看到各个领域最专业的专栏和观点

Hacker News

https://news.ycombinator.com/favicon.ico

Hacker News

程序员客栈

https://stacdn.proginn.com/favicon_new.ico

程序员客栈是领先的程序员自由工作平台,未来互联网企业用人方式。提供优秀程序员为您进行网站建设制作、测试运维服务、人工智能AI、大数据区块链、软件开发等优质服务

职Q

https://fecdn4.zhaopin.cn/zq/assets/logoIcon.7a3e67.png

智联招聘旗下专业的招聘求职社交问答平台,覆盖了求职、招聘、职业规划、升职加薪、面试技巧、工作经验分享等热门话 题,涉及各种行业职场问题,1.5亿用户的职场社区

煎蛋

http://cdn.jandan.net/static/img/appicon.png

煎蛋以译介方式传播网络新鲜资讯

其他

发现导航 - 精选实用导航网站

Github

https://github.githubassets.com/favicons/favicon.svg

面向开源及私有软件项目的托管平台

码云

https://gitee.com/favicon.ico

码云专为开发者提供稳定、高效、安全的云端软件开发协作平台

GitLab

https://about.gitlab.com/ico/apple-touch-icon-57x57.png

用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

Coding

https://dn-coding-net-production-static.codehub.cn/platform/favicon.ico

面向开发者的云端开发平台,提供 git/svn 代码托管,代码质量分析,在线WebIDE,项目管理...

代码托管

发现导航 - 精选实用导航网站

社区站点

发现导航 - 精选实用导航网站

社区站点

发现导航 - 精选实用导航网站

觅元素

http://www.51yuansu.com/favicon.ico

觅元素,为您提供免费设计元素,设计元素的资源站

千库网

https://js.588ku.com/comp/public/css/iconfont/favicon.ico

致力于为设计师提供最优质的素材

花瓣网

https://huaban.com/img/touch-icon-ipad.png

花瓣,陪你做生活的设计师

Dribbble

https://cdn.dribbble.com/assets/favicon-b38525134603b9513174ec887944bde1a869eb6cd414f4d640ee48ab2a15a26b.ico

Dribbble是展示和宣传,推广,发现和探索设计的地方

万素网

https://669pic.com/669pic.ico

万素网致力于为国内各行业设计师,网站编辑,新媒体工作人员提供免费png素材与背景图片服务

ArtStation

https://www.artstation.com/assets/favicon.ico

ArtStation是游戏,电影,媒体和娱乐艺术家的展示平台。它使艺术家能够以流畅的方式展示他们的作品集,发现和保持灵感,并与新的机会联系起来。

Design Templates - Canva

https://static.canva.com/static/images/favicon.ico

设计模板 - Canva

Unsplash

https://unsplash.com/favicon-32x32.png

美丽,免费的照片。由世界上最慷慨的摄影师社区赠送。

稿定设计

https://www.gaoding.com/favicon.ico

电商素材、新媒体配图、手机海报等。

unDraw

https://undraw.co/favicon-32x32.png

带有开源插图的设计项目,可满足您可以想象和创建的任何想法。 免费使用您的颜色创建漂亮的网站,产品和应用程序

UI中国用户体验设计平台

https://www.ui.cn/Public/img/favicon.ico

UI中国用户体验平台,中国用户体验联盟理事单位。国内极具影响力的设计平台之一。十多年来,携手会员150万+,共同致力于为设计师与企业搭建健康的设计生态!

GitHub Octodex

https://octodex.github.com/favicon.ico

由GitHub Design团队创建和维护的所有吉祥物素材

Collect UI

http://collectui.com/img/favicon.ico

从每日ui档案库及其他收集的每日灵感。 根据Dribbble拍摄的照片,手工挑选,每天更新

材料

发现导航 - 精选实用导航网站

icons8

https://icons8.cn/vue-static/landings/primary-landings/favs/icons8_fav_96%C3%9796.png

下载免费图标,音乐,素材图片,矢量,UX插图和视频音乐

vectorlogo

https://www.vectorlogo.zone/favicon.ico

3000多种精美的SVG徽标,非常适合您的自述文件或积分页面

shareicon

https://www.shareicon.net/favicon.ico

超过25万个icon免费集合

SVG Logos

超过1000+SVG Logos集合

iconfont

https://www.iconfont.cn/favicon.ico

阿里妈妈MUX倾力打造的矢量图标管理、交流平台

iconscount

https://iconscout.com/favicon.ico

免费下载图标,插图和库存照片

图标

发现导航 - 精选实用导航网站

创客贴

https://www.chuangkit.com/favicon.ico

一款简单易用、功能强大的线上图形设计工具

Ps Play

Ps Play - 移动设计零阻力

鹿班

https://g.alicdn.com/acca/resource/luban/image/favicon.png

鹿班 - 让设计更美好(阿里出品)

fontspace

https://www.fontspace.com/android-chrome-192x192.png?v=00Bdv4Q5g6

6500+免费字体下载

工具

发现导航 - 精选实用导航网站

Color Hunt

https://colorhunt.co/img/color-hunt-icon-ios.png

Color Hunt是一个免费开放的平台,可通过数千种精选的时尚调色板来激发色彩灵感

配色

发现导航 - 精选实用导航网站

Design

发现导航 - 精选实用导航网站

Design

发现导航 - 精选实用导航网站

Docker — 从入门到实践

https://github.com/favicon.ico

Docker — 从入门到实践

Docker官方映像文档

https://github.com/favicon.ico

docker-library中的Docker官方映像文档

Docker Hub

https://avatars2.githubusercontent.com/u/7739233?s=200&v=4

Docker 镜像仓库

Docker-Compose

https://avatars2.githubusercontent.com/u/7739233?s=200&v=4

使用Docker定义和运行多容器应用程序

Docker

发现导航 - 精选实用导航网站

git-manual

https://github.com/favicon.ico

Git常用命令参考手册 (推荐学习)

GitHub Docs

https://github.com/favicon.ico

github 官方帮助文档

awesome-actions

https://github.com/favicon.ico

精选的GitHub上很棒的Action列表

Github - Actions

https://github.com/favicon.ico

Github 官方Actions 资源列表

growing-up

https://github.com/favicon.ico

程序猿成长计划

Git

发现导航 - 精选实用导航网站

nginx

https://avatars0.githubusercontent.com/u/1412239?s=200&v=4

nginx参考文档

Nginx开发从入门到精通

https://avatars0.githubusercontent.com/u/1412239?s=200&v=4

Nginx开发从入门到精通

服务器

发现导航 - 精选实用导航网站

redis

https://avatars3.githubusercontent.com/u/1529926?s=200&v=4

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构

MySQL

https://labs.mysql.com/common/themes/sakila/favicon.ico

MySQL数据库服务是一个完全托管的数据库服务,可使用世界上最受欢迎的开源数据库来部署云原生应用程序。 它是百分百由MySQL原厂开发,管理和提供支持

数据库

发现导航 - 精选实用导航网站

免费的编程中文书籍索引

https://avatars1.githubusercontent.com/u/14127308?s=200&v=4

免费的编程中文书籍索引

Zlibrary

https://zh.b-ok.global/apple-touch-icon.png

Z-Library 项目部分. 全球最大的数字图书馆, 电子书

IT-eBOOK

IT类技术书籍PDF

Refactoring.Guru

https://refactoringguru.cn/favicon.ico

22种常用设计模式

书籍

发现导航 - 精选实用导航网站

Linux 常用命令参考手册

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/linux/linux.png

Linux 常用命令参考手册

developer-roadmap

https://github.com/favicon.ico

2020年成为网络开发人员的路线图

Devhints

https://devhints.io/assets/favicon.png

WEB开发速查表,mysql/go/java/js/bash/react/git...

linux-command

https://wangchujiang.com/linux-command/img/favicon.ico

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集

learn-regex

https://github.com/favicon.ico

正则表达式学习

the-art-of-command-line

https://github.com/favicon.ico

命令行的艺术

Peter Beverloo

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/chrome/chrome.png

Chrome浏览器命令参数参考手册

vimrc

https://avatars2.githubusercontent.com/u/11618545?s=200&v=4

vim配置参考手册

Jenkins

https://www.jenkins.io/zh/sites/default/files/jenkins_favicon.ico

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要

learnxinyminutes-docs

https://learnxinyminutes.com/favicon.ico

在Y分钟内学习X

Vscode Docs

https://code.visualstudio.com/apple-touch-icon.png

Vscode 扩展开发文档

YAML教程

YAML教程

Chrome Extension

https://www.google.com/images/icons/product/chrome-32.png

谷歌浏览器扩展插件开发文档

其他文档

发现导航 - 精选实用导航网站

参考文档

发现导航 - 精选实用导航网站

菜鸟教程

https://static.runoob.com/images/icon/mobile-icon.png

提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程

慕课网

https://www.imooc.com/static/img/common/touch-icon-ipad.png

慕课网-程序员的梦工厂

极客学院

https://www.jikexueyuan.com/favicon.ico

致力于“让IT学习更有效”,以实战为特色,为注重自我提升的IT从业者提供高品质职业教育

腾讯课堂

https://9.idqqimg.com/edu/edu_modules/edu-ui/img/nohash/favicon.ico

腾讯课堂 - 专业的在线教育平台

i春秋

https://static2.ichunqiu.com/icq/resources/images/favicon.ico

【i春秋】-专注网络安全_信息安全_白帽子的在线学习_教育_培训平台

实验吧

http://www.shiyanbar.com/favicon.ico

实验吧是国内最大的在线虚拟机实验IT教育平台

合天网安实验室

https://www.hetianlab.com/img/ico/favicon.ico

合天网安实验室是支持在线实验的信息安全学习的大型服务平台

网易云课堂

https://study.163.com/favicon.ico

网易云课堂 - 领先的实用技能学习平台

蓝桥

https://study.163.com/favicon.ico

蓝桥是国内领先的IT在线编程及在线实训学习平台,专业导师提供精选的实践项目,创新的技术使得学习者无需配置繁琐的本地环境,随时在线流畅使用

W3Cschool

https://7n.w3cschool.cn/statics/images/favicon.ico?v=2.2

编程狮,是一个专业的W3C前端开发及编程入门学习平台

发现导航 - 精选实用导航网站

发现导航 - 精选实用导航网站

教程相关

发现导航 - 精选实用导航网站

LeetCode

https://static.leetcode-cn.com/cn-assets/icons/favicon-96x96.png

提高你的编码技能,快速找到一份工作。这是扩展你知识和为下一次面试做好准备的最佳地方。

牛客网

https://www.nowcoder.com/favicon.ico

牛客网是互联网求职神器,C++、Java、前端、产品、运营技能学习/备考/求职题库

CS-Notes

https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/LogoMakr_1J56bI.png

技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计、Java、Python、C++

数据结构和算法动态可视化

https://visualgo.net/img/favicon.png

数据结构和算法动态可视化

algorithm-pattern

https://github.com/favicon.ico

算法模板,最科学的刷题方式,最快速的刷题路径,你值得拥有~

面试刷题

发现导航 - 精选实用导航网站

面试刷题

发现导航 - 精选实用导航网站

学无止境

发现导航 - 精选实用导航网站

乌云网镜像

WooYun是一个位于厂商和安全研究者之间的漏洞报告平台,注重尊重,进步,与意义

安全联盟

https://www.anquan.org/aq_static/images/favicon/favicon.ico

安全联盟 - 国内最大的第三方网络安全数据共享交换平台

360网站安全检测

https://www.360.cn/favicon.ico

为站长免费提供了网站漏洞检测、网站漏洞修复、网站后门检测、木马查杀,网址安全查询等服务

红黑联盟

https://www.2cto.com/favicon.ico

红黑联盟作为老牌的信息安全网站,致力于培训电脑技术高手.网站集网络安全,系统网络,编程开发,网站建设等频道于一体

知道创宇

https://www.knownsec.com/static/favicon.ico

知道创宇,网络空间安全专家,长期致力于为政府、企业类客户提供完善的云安全解决方案

安全周

关注安全资讯 专注资源共享

全球被黑站点统计系统

https://www.hacked.com.cn/favicon.ico

主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据...

安全脉搏

https://www.secpulse.com/favicon.ico

高质量的全球互联网安全媒体和技术平台,安全爱好者们交流与分享前沿安全技术的最佳社区

网络安全

发现导航 - 精选实用导航网站

XSS-CTF

http://xss.xiejiahe.com/favicon.png

XSS-CTF 是一个练习和入门的XSS平台, 每一位WEB工程师都应具备的基础知识,提高网络安全意识

XSS测试

XSS小游戏

Pasteurize

XSS CTF

CTF

发现导航 - 精选实用导航网站

fiddler

https://www.telerik.com/favicon.ico

Fiddler是一个用于HTTP调试的代理服务器应用程序

wireshark

https://www.wireshark.org/assets/images/favicon.ico

是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换

XSS平台-白帽安全测试

XSS平台是一个免费给白帽安全测试的平台

Security Headers

快速轻松地评估HTTP响应头的安全性

w9scan

一款全能型的网站漏洞扫描器,内置1200+插件可对网站进行一次规模的检测,功能包括但不限于web指纹检测、端口指纹检测、网站结构分析、各种流行的漏洞检测、爬虫以及SQL注入检测、XSS检测...

xray

https://avatars0.githubusercontent.com/u/7302766?s=200&v=4

xray 安全评估工具

cmd5

https://www.cmd5.com/favicon.ico

md5在线解密破解,md5解密加密

sqlmap

https://avatars3.githubusercontent.com/u/735289?s=200&v=4

自动SQL注入和数据库接管工具

nmap

https://avatars2.githubusercontent.com/u/63385?s=200&v=4

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端

xssor

http://xssor.io/s/favicon.ico

编码/解码,Codz,探针

在线子域名查询

https://phpinfo.me/favicon.ico

在线子域名查询

fuzzDicts

Web Pentesting Fuzz 字典

BurpSuitePro

免费的BurpSuitePro版本

辅助工具

发现导航 - 精选实用导航网站

Vulhub

https://vulhub.org/img/favicon.ico

基于docker和docker-compose的漏洞环境集合...

SRC-experience

工欲善其事,必先利其器,一些src挖掘奇技淫巧,国外新技术的学习网站分享

Intranet_Penetration_Tips

内网渗透TIPS

知识/测试

发现导航 - 精选实用导航网站

网络安全

发现导航 - 精选实用导航网站

网络安全

发现导航 - 精选实用导航网站

百度统计

https://tongji.baidu.com/favicon.ico

全球最大的中文网站流量分析平台,帮助企业收集网站访问数据,提供流量趋势、来源分析...

CNZZ

https://www.umeng.com/favicon.ico

CNZZ数据专家是全球最大的中文网站统计分析平台,为各类网站提供免费、安全、稳定

百度搜索资源平台

https://www.baidu.com/img/baidu.svg

百度搜索资源平台_让网站更具价值

问卷星

https://www.wjx.cn/favicon.ico

免费使用问卷星创建问卷调查、在线考试、360度评估等应用

金数据

https://gd-assets.jinshujucdn.com/favicon.ico

金数据是人人可用的在线表单工具,帮助用户收集和管理日常工作中的数据,提升工作效率

Google Analytics

https://ssl.gstatic.com/analytics/20201013-01/app/static/analytics_standard_icon.png

Google Analytics是一个收集数据并将其分析整理成实用报告的平台

腾讯移动分析

https://mta.qq.com/mta/resource/imgcache/images/favicon.ico

腾讯移动分析是腾讯数据云,腾讯大数据战略的核心产品,提供app应用的移动统计分析,支持android/iOS平台,实现用户画像、数据可视化、数据挖掘、渠道效果分析等综合数据服务

Google Adsense

https://www.google.com/favicon.ico

Google Adsense

运营相关

发现导航 - 精选实用导航网站

运营相关

发现导航 - 精选实用导航网站

运营相关

发现导航 - 精选实用导航网站

凹凸实验室

https://aotu.io/img/favicon-48x48.png

O2面向多终端技术体系,致力于构建沉淀与分享包括但不限于交互、页面制作技巧...

腾讯IMWeb

https://imweb.io/public/icon.png

Web前端 腾讯IMWeb 团队社区

字节跳动技术博客

https://avatars1.githubusercontent.com/u/4158466?s=200&v=4

字节跳动技术博客

淘系前端团队

https://fed.taobao.org/favicon.ico

用技术为体验提供无限可能

有赞技术团队

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

有赞技术团队

Team

发现导航 - 精选实用导航网站

阮一峰的网络日志

http://www.ruanyifeng.com/favicon.ico

阮一峰的网络日志

谢家和的博客

https://www.xiejiahe.com/favicon-128x128.png

WEB Developer

王垠的博客

https://www.yinwang.org/images/Yc.jpg

当然我在扯淡

Dan

https://overreacted.io/favicon.ico

react作者的博客

个人博客

发现导航 - 精选实用导航网站

博客看点

发现导航 - 精选实用导航网站

博客看点

发现导航 - 精选实用导航网站

+
+

Github-CLI

https://github.githubassets.com/favicons/favicon.svg

GitHub的官方命令行工具

Coveralls

https://coveralls.io/favicon.png

通过显示测试套件未涵盖代码的哪些部分,我们可以帮助您自信地交付代码。免费提供开源软件库

Releasly

在新的开源版本发布时收到通知,直接发送到您的电子邮件中。

Convert cURL

将curl命令转换为Python,JavaScript,PHP,R,Go,Rust,Dart,JSON,Ansible,Elixir。

Supervisor

Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的多个进程。

SonarQube

https://www.sonarqube.org/favicon-152.png

代码质量和安全性检查, 支持所有开发人员编写更干净,更安全的代码。

Pastebin

https://paste.ubuntu.com/favicon.ico

在线共享代码,将代码以URL形式发送以便查看

UPX

https://avatars2.githubusercontent.com/u/30217756?s=200&v=4

UPX-可执行文件的终极打包器

askgit

https://avatars2.githubusercontent.com/u/30217756?s=200&v=4

使用SQL查询git存储库。生成报告,执行状态检查,分析代码库。

Sentry

https://avatars3.githubusercontent.com/u/1396951?s=200&v=4

Web应用程序,移动应用程序和游戏的实时崩溃报告。

randomuser

https://randomuser.me/favicon.ico

随机用户生成器是用于生成占位符用户信息的免费API。 获取个人资料照片,姓名等。 对于人们来说,就像Lorem Ipsum。

github-readme-stats

https://camo.githubusercontent.com/ebfdd465daa90626d0ab0d0fddc0e457c942a392/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f616e7572616768617a72612f696d6167652f75706c6f61642f76313539343930383234322f6c6f676f5f636373776d652e737667

在你的 README 中 获取动态生成的 GitHub 统计信息

Hits

https://i.imgur.com/zBEQq4w.png

了解有多少人正在查看您的GitHub项目的简单方法

GitHub 文件加速

GitHub 文件加速

Shields IO

svg生成版本号图标

FunDebug

https://www.fundebug.com/favicon.ico

支持前端JavaScript,后端Node.js以及微信小程序错误监控

Asciiworld

http://www.asciiworld.com/favicon.ico

WA!原来那些年程序猿搞怪的注释都在这里

jsfiddle

https://jsfiddle.net/img/favicon.png

强大的前端代码在线演示的网站

CODEIF

https://user-images.githubusercontent.com/799578/50462941-8075fe80-09c3-11e9-89e7-af0cb7991406.png

变量命名神器

ASCIIFlow Infinity

http://asciiflow.com/images/favicon.png

无限的ASCII图表,保存到谷歌驱动器,调整大小,自由绘制,并直接输出到文本/HTML。

gitzip

https://kinolien.github.io/gitzip/images/gitzip.png

它可以将GITHUB存储库的子文件夹/子目录作为zip并下载

Server酱

http://sc.ftqq.com/static/image/favlogo.png

「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。

mkcert

一个简单的零配置工具,可以使用您喜欢的任何名称制作本地可信赖的SSL开发证书

carbon

https://carbon.now.sh/favicon.ico

创建和分享源代码的精美图像

setup-ipsec-vpn

用于构建您自己的IPsec VPN服务器的脚本,在Ubuntu,Debian和CentOS上使用IPsec / L2TP和Cisco IPsec

nginxconfig

https://www.digitalocean.com/favicon.ico

nginx配置生成器

GraphQL Explorer

GraphQL资源管理器利用真实的、实时的生产数据

patorjk

将文本转换成ASCII

lens

https://avatars0.githubusercontent.com/u/62133242?s=200&v=4

Lens控制Kubernetes集群所需的唯一IDE。它是适用于MacOS,Windows和Linux操作系统的独立应用程序。它是开源的,免费的。

public-apis

一些可用在 Web 或软件开发的开放 API 接口

astexplorer

https://astexplorer.net/favicon.png

一个Web工具,用于探索由各种解析器生成的AST

uTools

http://www.u.tools/assets/img/brand/favicon.png

uTools是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合

ihateregex

https://ihateregex.io/favicon.ico

正则表达式备忘录

Oh My ZSH

https://avatars3.githubusercontent.com/u/22552083?s=200&v=4

是一个开放源代码,社区驱动的框架,用于管理zsh配置。

Tampermonkey

https://tampermonkey.freetls.fastly.net/images/icon144.png

一款免费的浏览器扩展和最为流行的用户脚本管理器

Greasy Fork

提供用户脚本的网站

免费代理

https://img.kuaidaili.com/img/favicon.ico?v=3

免费HTTP代理IP

Google Workspace

https://avatars2.githubusercontent.com/u/1342004?s=200&v=4

Google Workspace状态信息中心

开发神器

eoLinker接口管理平台

https://www.eolinker.com/assets/images/favicon.ico

国内最大的在线接口管理服务方案供应商

YApi

https://avatars2.githubusercontent.com/u/19645609?s=200&v=4

YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台

RAP2

http://rap2.taobao.org/favicon.png

Web接口管理工具,开源免费,接口自动化,MOCK数据自动生成,自动化测试,企业级管理。阿里妈妈MUX团队出品

showdoc

https://www.showdoc.cc/static/logo/b_64.png

一个非常适合IT团队的在线API文档、技术文档工具

docsify

https://avatars3.githubusercontent.com/u/40133106?s=200&v=4

一个神奇的文档站点生成器

apiDoc

https://avatars2.githubusercontent.com/u/4103663?s=200&v=4

RESTful Web API文档生成器

docusaurus

https://avatars2.githubusercontent.com/u/69631?s=200&v=4

易于维护的开源文档网站

禅道

https://www.zentao.net/favicon.ico

禅道是灵活的项目管理软件

Tapd

https://www.tapd.cn/favicon.ico

一站式敏捷研发协作云平台, 凝聚腾讯研发方法及敏捷实践精髓, 助力企业研发更高效、协作更敏捷

Hoppscotch

https://avatars2.githubusercontent.com/u/56705483?s=200&v=4

一个免费,快速,美观的API请求构建器,供10万多个开发人员使用。(原名叫 Postwoman)

接口/开发文档管理

Sunny-Ngrok

一条命令解决的外网访问内网问题,无需任何配置,下载客户端之后直接一条命令让外网访问您的内网不再是距离

frp

一个快速反向代理,可帮助您将NAT或防火墙后面的本地服务器暴露给Internet。

zan-proxy

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

本地代码调试线上页面,环境再也不是问题

ngrok

https://ngrok.com/static/img/favicon.png

ngrok是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,便于后期分析和重放

内网穿透/代理

查MD5

http://www.chamd5.org/favicon.ico

MD5在线解密|md5在线破解|批量破解md5网站

JSON Web Tokens

https://jwt.io/img/favicon/apple-icon-76x76.png

jwt 在线解码

base64

http://www.xpcha.com/favicon.ico

base64在线解码编码

编码/解码

ipify

https://www.ipify.org/static/images/favicon-96x96.png

一个简单的公共IP地址API

归属地查询

淘宝免费归属地查询

免费公开API

开发相关

draw

https://www.draw.io/images/apple-touch-icon.png

免费的在线图表软件,用于制作流程图、流程图、组织图、UML、ER和网络图

ProcessOn

https://www.processon.com/favicon.ico

免费在线作图工具,UML作图,UI界面原型设计,iOS原型设计,BPMN,流程图,思维导图,多人协作绘图

蓝湖

https://lhcdn.lanhuapp.com/web/static/favicon.ico

蓝湖是一款设计图共享平台,帮助互联网团队管理设计图

Zeplin

https://zeplin.io/img/favicon/228x228.png

为设计师和前端而生的协作应用

幕布

https://mubu.com/favicon.ico

极简大纲笔记 | 一键生成思维导图

声享

https://p.ssl.qhimg.com/t01a54d9106629dda0e.png

在线制作 PPT,让分享更有价值

墨刀

https://modao.cc/images/logo.png

原型设计工具,web原型设计工具,app原型设计工具

小智LOGO

https://xzlogo.com/static/images/favicon-16x16.png?v2

LOGO在线制作神器 - 3分钟完成LOGO设计在线生成

创客贴

https://www.chuangkit.com/favicon.ico

一款简单易用、功能强大的线上图形设计工具

在线制作图表

https://cdn.jifo.co/favicon/favicon.ico

信息图表是一种易于使用的信息图表和图表制造商。创建和分享美丽的信息图表,在线报告和互动地图。在这里做你自己

CLIPPING MAGIC

删除图像背景在线。使背景透明,白色等编辑,裁剪,旋转,固定颜色,添加阴影,一款在线抠图工具

稿定抠图

https://koutu.gaoding.com/favicon.ico

稿定设计是一款专为淘宝店主、新媒体运营人员和修图爱好者打造的免费在线抠图工具。

UZER.ME

https://uzer.me/favicon.ico

超级应用空间致力于全生命周期的文档管理,无需安装,即可在线编辑Office, CAD,PS等任意格式文档,支持远程协作,全文检索,版本管理,权限管理,安全外发等.提高工作效率,降低安全风险

launchaco

https://www.launchaco.com/static/favicon.ico

免费在线制作LOGO

鹿班

https://g.alicdn.com/acca/resource/luban/image/favicon.png

鹿班 - 让设计更美好(阿里出品)

图片裁剪

https://www.yasuotu.com/favicon.ico

在线裁剪照片大小尺寸

设计相关

设计相关

Bitwarden

https://bitwarden.com/images/icons/favicon-32x32.png

个人和企业在任何设备上存储,共享和保护敏感数据的最简单,最安全的方法

Typeora

https://typora.io/img/favicon-48.png

Typora是一款跨平台的最小Markdown编辑器,可为Markdown读者和作家提供无缝的体验

iterm2

https://www.iterm2.com/favicon.ico

iTerm2是Terminal的替代品,是iTerm的后续产品

Sourcetree

https://www.sourcetreeapp.com/assets/img/favicons/sourcetree/favicon-32x32.png

美丽的Git GUI中的简单性和强大功能

charles

https://www.charlesproxy.com/static/img/icon.8b97278f.png

Charles是HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。

Tunnelblick

https://tunnelblick.net/favicon.ico

适用于macOS的免费开源OpenVPN VPN客户端服务器软件。

Keka

https://www.keka.io/img/Keka-120x120.png

macOS文件存档器, 储存更多,私密分享

Kap

https://getkap.co/static/favicon/kap.ico

使用Web技术构建的开源屏幕录像机。

Vscode

https://code.visualstudio.com/apple-touch-icon.png

VScode是一款轻量级的编辑器,自由。 建立在开源上。 无处不在。

zenmap

https://nmap.org/shared/images/tiny-eyeicon.png

开源免费的网络发现工具,通过它能够找出网络上在线的主机,并测试主机上哪些端口处于监听状态,接着通过端口确定主机上运行的应用程序类型与版本信息,最后利用它还能侦测出操作系统的类型和版本

obsproject

https://obsproject.com/favicon-32x32.png

免费和开源软件,用于视频录制和实时流。

hyper

https://avatars1.githubusercontent.com/u/14985020?s=200&v=4

基于WEB技术的终端

Listary

https://www.listary.com/wp-content/themes/listary5/images/favicon.ico

Listary是Windows的革命性搜索实用程序,它使休闲用户和高级用户都能快速找到文件并启动应用程序!

GUI

vmware

https://www.vmware.com/favicon.ico

利用VMware提供的软件定义的云,移动性,网络和安全解决方案来建立您的数字基础。

parallels

https://www.parallels.cn/typo3conf/ext/prls_theme/Resources/Public/theme/res/img/favicon/favicon.png

Mac和Windows虚拟化|管理Mac|VDI和RDS解决方案

mumu Android模拟器

http://mumu.163.com/favicon.ico

网易MuMu[手游模拟器][安卓模拟器]

虚拟机

DBeaver

https://avatars3.githubusercontent.com/u/34743864?s=200&v=4

适用于开发人员,数据库管理员,分析师和所有需要使用数据库的人员的免费的多平台数据库工具。支持所有流行的数据库:MySQL,PostgreSQL,SQLite,Oracle,DB2,SQL Server,Sybase,MS Access,Teradata,Firebird,Apache Hive,Phoenix,Presto等

RedisDesktopManager

https://redisdesktop.com/static/css/favicon.png

Redis Desktop Manager(又名RDM)—是用于Windows,Linux,MacOS和iPadOS的快速Redis数据库管理应用程序。

Sequel Pro

https://sequelpro.com/favicon/favicon-32x32.png

Sequel Pro是一个快速,易于使用的Mac数据库管理应用程序,用于处理MySQL数据库。

Robo 3T

https://robomongo.org/static/favicon-11ace079.ico

一个现代,强大且由社区驱动的MongoDB管理工具

DataGrip

https://www.jetbrains.com/favicon-32x32.png

jetbrains出品的数据库管理系统

tableplus

https://tableplus.com/resources/favicons/apple-icon-57x57.png

用于关系数据库的现代,本地且友好的GUI工具:MySQL,PostgreSQL,SQLite等

数据库

TeamViewer

https://www.teamviewer.cn/wp-content/themes/tv-wordpress-theme/dist/media/favicon.png

TeamViewer远程连接控制软件是一款随时随地连接到远程桌面电脑、移动设备及Iot,让远程连接过程更加的快速和安全,轻松实现对文件、网络及程序的实时支持或访问。

向日葵

https://sunlogin.oray.com/favicon.ico

向日葵远程控制软件是一款免费的集远程控制电脑手机、远程桌面连接、远程开机、远程管理、支持内网穿透的一体化远程控制管理工具软件

远程控制

v2ray

https://avatars0.githubusercontent.com/u/14110142?s=200&v=4

用于构建代理绕过网络限制的平台。

clash

https://github.com/Dreamacro/clash/raw/master/docs/logo.png

Go中基于规则的隧道

飞机场

GUI软件

哔哩哔哩

https://www.bilibili.com/favicon.ico

国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主

爱奇艺

https://www.iqiyipic.com/common/images/PCW-114x114.png

拥有海量、优质、高清的网络视频的大型视频网站,专业的网络视频播放平台

Youtube

https://www.youtube.com/favicon.ico

全球最大的视频网站

斗鱼

https://www.douyu.com/favicon.ico

斗鱼 - 每个人的直播平台

疯狂影视搜索

https://cdn.jsdelivr.net/gh/txxxjs/fk/ifkdy/2020-03-16/favicon.ico

疯狂影视搜索是一款全能影视搜索引擎,帮你找到最新影视资源,一站拥有无尽影视资源

全民vip视频在线解析

http://www.qmaile.com/favicon.ico

免费全网VIP视频会员免广告看电影!优酷vip解析,爱奇艺vip解析,腾讯vip解析,乐视vip解析,芒果vip解析

蜜蜂剪辑

https://qncdnimg.aoscdn.com/local/beecut.cn/img/favicon.png

免费在线视频剪辑、视频制作、视频剪切、视频转gif等实用功能

kk高清影院

kk高清影院,1080p电影下载,高清电影迅雷下载,免费高清电影网

影视

自由的音乐

自由的音乐是一个免费试听并下载全网音乐的网站

音乐

影视/音乐

智联招聘

https://www.zhaopin.com/favicon.ico

智联招聘,更懂你的价值

前程无忧

https://www.51job.com/favicon.ico

招聘网,人才网,求职,找工作

BOSS直聘

https://www.zhipin.com/favicon.ico

BOSS直聘是权威领先的招聘网,开启人才网招聘求职新时代,让求职者与Boss直接开聊、加快面试、即时反馈,找工作就来BOSS直聘和Boss开聊吧

招聘/求职

ResumeSample

程序员简历模板系列, WEB/IOS/Android/C++/node等以及通用程序员简历模板

程序员找工作黑名单

http://coder.shengxinjing.cn/logo.ico

有些事情,应该被记住

看准网

https://www.kanzhun.com/favicon.ico

看准网★中国领先的职场信息平台,专注于公司评论,晒工资,工资待遇,面试,公司福利等.您可以在看准网上匿名分享您的职业信息

其他

招聘/求职

TinyPNG

https://tinypng.com/images/apple-touch-icon.png

智能PNG和JPEG压缩,以质量和文件大小的完美平衡来优化您的图像

Squoosh

https://squoosh.app/assets/favicon.ico

在浏览器中用不同的编解码器压缩和比较图像(Google出品)

压缩工具

草料二维码

https://static.clewm.net/static/images/favicon.ico

用专业的二维码产品帮助企业创造价值

Feed 验证器

验证RSS是否符合标准规范

淘捏捏

https://www.taonienie.com/favicon.ico

淘宝信誉查询 - 淘捏捏卖家工具箱 淘宝信誉查询_淘宝信用查询_淘宝小号查询_淘宝黑号查询

天眼查

https://www.tianyancha.com/favicon.ico

人人都在用商业安全工具_企业信息查询_公司查询_工商查询_企业信用信息查询系统

语雀

https://yuque.com/favicon.ico

优雅高效的在线文档编辑与协同工具,让每个企业轻松拥有文档中心 - 阿里巴巴

求是潮云U盘

https://www.qsc.zju.edu.cn/box/favicon.ico

临时文件上传, 快速和稳定

云转换

https://www.360converter.com/images/favicon.ico

在线免费转换视频,音频,YouTube视频到文字,视频到文字,音频到文字,语音转换成文字

Picdiet

https://www.picdiet.com/css/favicon.ico

独特且强悍的JavaScript算法,能极速压缩80%的图片大小,而不损害其质量

easyicon

https://cdn-img.easyicon.net/favicon.ico

在线图标转换ico、icns

Smallpdf

https://smallpdf.com/favicon.png

压缩pdf、各种文件格式转换pdf

Cool Backgrounds

https://coolbackgrounds.io/images/favicon-fe5a0ff5.png

生成非常酷的彩色背景图像

Unsplash Source

https://source.unsplash.com/favicon-32x32.png

随机生成图片链接

石墨文档

https://assets.smcdn.cn/from_qbox/favicon.ico

一款轻便、简洁的在线协作文档工具,PC端和移动端全覆盖,支持多人同时对文档编辑和评论...

Emoji searcher

https://emoji.muan.co/appicon.png

Emoji表情大全

imgURL

https://imgurl.org/favicon.ico

ImgURL是一个简单、纯粹的图床程序,让个人图床多一个选择

拷贝兔

https://f0cdn.anyknew.com/web/img/icons/favicon-32x32.png

跨平台分享工具,纯Web,IOS,MAC,Linux,Android互传

表格工具

https://tableconvert.com/static/images/favicon.png

一个功能强大的在线表格编辑器,支持Excel、Markdown、JSON、CSV、HTML等格式的相互转换

360查字体

https://p2.ssl.qhimg.com/t014de4ba13ada26743.png

360查字体 - 查版权,免纠纷

sejda

https://www.sejda.com/images/icon_128.png

在线HTML转换pdf

AI人工智能图片放大

https://bigjpg.com/static/css/touch-icon-iphone.png

Bigjpg - 使用开源waifu2x人工智能深度卷积神经网络(CNN)智能无损免费放大图片

VVV文档在线导出工具

免费下载百度文库文档

在线文件编码识别

http://tools.bugscaner.com/static/images/favicon.ico

在线文件编码识别

iptv

http://tools.bugscaner.com/static/images/favicon.ico

收集来自世界各地的5000多个公共IPTV频道

临时邮箱

https://www.linshiyouxiang.net/public/zh-CN/img/favicon.ico

10分钟邮箱,临时邮箱,临时邮,临时电子邮箱,24小时邮箱,一次性邮箱,匿名邮箱,安全邮箱

辅助工具

其他

实用工具

jQuery

https://jquery.com/jquery-wp-content/themes/jquery.com/i/favicon.ico

jQuery是一个JavaScript函数库

webpack

https://www.webpackjs.com/assets/favicon.ico

webpack是一个模块打包器

Babel

https://babeljs.io/img/favicon.png

用于编写下一代 JavaScript 的编译器

ESLint

https://cn.eslint.org/img/favicon.512x512.png

可组装的JavaScript和JSX检查工具

stylelint

https://avatars3.githubusercontent.com/u/10076935?s=200&v=4

一个强大的现代样式风格的linter

Mocha

https://avatars0.githubusercontent.com/u/8770005?s=200&v=4

Mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行

MUI

https://avatars1.githubusercontent.com/u/5485517?s=200&v=4

MUI: 最接近原生APP体验的高性能前端框架

rollup

https://avatars0.githubusercontent.com/u/12554859?s=200&v=4

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序

standard

https://avatars1.githubusercontent.com/u/29208316?s=200&v=4

JavaScript样式指南,带有linter和自动代码修复程序

JavaScript

Faker

https://github.com/favicon.ico

在Node.js和浏览器中生成大量逼真的假数据

sweetalert

JavaScript Alert 的漂亮替代品

Sortable

https://avatars0.githubusercontent.com/u/17040762?s=200&v=4

一个JavaScript库,用于在现代浏览器和触摸设备上对拖放列表进行重新排序

formilyjs

Formily 是一个由阿里巴巴集团多 BU 共建的面向中后台复杂场景的表单解决方案,它也是一个表单框架

rough-notation

https://roughnotation.com/images/fav.png

一个小的JavaScript库,用于在网页上创建手绘动画并为其添加动画效果

AntV

https://avatars3.githubusercontent.com/u/19199542?s=200&v=4

AntV 是蚂蚁金服全新一代数据可视化解决方案

Lodash

https://www.lodashjs.com/icons/favicon-32x32.png

Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库

Swiper

https://www.swiper.com.cn/favicon.ico

轻量级的移动设备触控滑块的js框架,使用硬件加速过渡

fastclick

Polyfill 解决移动端具有300ms延迟的库

Layer

丰富多样的Web弹出层组件,可轻松实现Alert/Confirm/Prompt/普通提示/页面区块/iframe/tips等等几乎所有的弹出交互

moment.js

https://momentjs.com/static/img/moment-favicon.png

一个轻量级的JavaScript日期库,用于解析,验证,操作和格式化日期

js-cookie

一个简单,轻量级的JavaScript API,用于处理浏览器cookie

qs

具有嵌套支持的查询字符串解析器

Mock.js

生成随机数据,拦截 Ajax 请求

GITALK

https://gitalk.github.io/favicon.ico

凹凸实验室出品的一款基于 Github Issue 和 Preact 开发的评论插件

prism

https://prismjs.com/assets/favicon.png

轻巧,强大,优雅的代码语法高亮

nprogress

顶部加载进度条

iNotify

JS实现浏览器标题闪烁,滚动,语音提示,Chrome/Safari/FireFox/IE通知

html2canvas

最流行的JavaScript屏幕截图

dayjs

使用与Moment.js兼容的API来解析,验证,操作和显示现代浏览器的日期和时间

JsBarcode

易于使用但功能强大的条形码生成器,适用于Web和Node.js

clipboard.js

现代复制到剪贴板。没有Flash。只需3kb gzipped。

lib-flexible

可伸缩布局方案, 淘宝rem解决方案

js-xss

根据白名单过滤HTML(防止XSS攻击)

mescroll

精致的下拉刷新和上拉加载 js框架.支持vue,完美运行于移动端和主流PC浏览器

better-scroll

灵感来自iscroll,它具有更好的滚动性能

pinyinjs

一个实现汉字与拼音互转的小巧web工具库

ms

使用此包可以轻松地将各种时间格式转换为毫秒。

ramda

https://avatars2.githubusercontent.com/u/5298359?s=200&v=4

适用于JavaScript程序员的实用函数库

decimal.js

JavaScript的任意精度Decimal类型 (0.1+0.2=0.3)

copy-to-clipboard

简单的模块公开copy功能,它将尝试使用execCommand与特定于IE的clipboardData接口的回退,最后,通常prompt使用适当的文本内容和消息

path-to-regexp

将字符串路径转换成正则表达式

autosize

autosize是一个小的独立脚本,可以自动调整textarea域的高度以适合文本

shake.js

监听手机设备摇动

progressbar

可以轻松地为Web创建响应式和时尚的进度栏。动画即使在移动设备上也表现良好

easy-mock

https://avatars0.githubusercontent.com/u/28626637?s=200&v=4

Easy Mock 是一个可视化,并且能快速生成模拟数据的持久化服务

Clamp.js

https://joe.sh/assets/images/favicon.ico

JS版本的多行文本溢出省略

json-bigint

带有bigints支持的JSON.parse / stringify

exif-js

用于读取EXIF图像元数据的JavaScript库

lunr.js

Lunr.js是一个用于浏览器的小型全文本搜索库。它为JSON文档建立索引,并提供一个简单的搜索界面来检索与文本查询最匹配的文档

hotkeys

强大的Javascript库,用于捕获键盘输入和输入的按键组合。它没有依赖性。

dom-to-image

使用HTML5 canvas从DOM节点生成图像

single-spa

https://avatars1.githubusercontent.com/u/59940233?s=200&v=4

使微前端变得简单

qiankun

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

为微型前端提供快速,简单和完整的解决方案

nanoid

https://zelark.github.io/nano-id-cc/favicon.ico

一个很小的,安全的,URL友好的,唯一的JavaScript字符串ID生成器。

Numeral-js

一个用于格式化和处理数字的javascript库

ua-parser-js

用于从userAgent字符串检测浏览器,引擎,操作系统,CPU和设备类型/模型。支持浏览器和node.js环境

hammer.js

https://avatars0.githubusercontent.com/u/7997161?s=200&v=4

一个用于多点触摸手势的javascript库

常用插件

i18next

https://avatars1.githubusercontent.com/u/8546082?s=200&v=4

i18next是一个非常流行的国际化框架,适用于浏览器或任何其他JavaScript环境(例如,node.js)。

js-lingui

https://avatars3.githubusercontent.com/u/11225539?s=200&v=4

JavaScript的可读,自动化和优化(5 kb)国际化

国际化多语言方案

wow.js

基于Animate.css,向下滚动页面时显示CSS动画,轻松自定义动画设置:样式,延迟,长度,偏移,迭代...

Waves

受Google材质设计启发的点击效果, 波纹效果

velocity

加速JavaScript动画

anime

轻量级的JavaScript动画库。它适用于任何CSS属性,单个CSS转换,SVG或任何DOM属性以及JavaScript对象

Hover-Buttons

hover动画CSS / SCSS按钮

动画

JavaScript-MD5

JavaScript MD5实现。兼容服务器端环境,如node.js,RequireJS等模块加载器和所有Web浏览器

js-sha1

JavaScript的简单SHA1哈希函数支持UTF-8编码。

js-base64

JavaScript的Base64实现

jsSHA

SHA-1,SHA-224,SHA3-224,SHA-256,SHA3-256,SHA-384,SHA3-384,SHA-512,SHA3-512,SHAKE128 ,和SHAKE256以及HMAC

crypto-js

加密标准的JavaScript库

加盐

pdf.js

PDF.js是一个使用HTML5构建的可移植文档格式(PDF)查看器

webuploader

百度出品,采用大文件分片并发上传,极大的提高了文件上传效率。

pdfmake

纯JavaScript中的客户端/服务器端PDF打印, HTML转换Pdf

ViewerJS

JavaScript中的文档阅读器, pdf/ppt/opt/odt等文件渲染成HTML

filepond

灵活而有趣的JavaScript文件上传库

FileSaver.js

客户端保存文件的解决方案,非常适合在客户端上生成文件的Web应用程序

jsPDF

一个使用JavaScript生成PDF的库

文件插件相关

PhotoSwipe

适用于移动和桌面的JavaScript图像库, 图片预览

viewerjs

javascript图片预览

图片预览

howler.js

https://howlerjs.com/assets/images/favicon.ico

现代 Web 音频 javascript 库

DPlayer

哇,这么可爱的HTML5 danmaku视频播放器

APlayer

哇,这么可爱的HTML5音乐播放器

音频/视频

three.js

https://threejs.org/files/favicon.ico

JavaScript 3D引擎

flowy

创建流程图的最小JavaScript库

incubator-echarts

https://echarts.apache.org/examples/images/favicon.png

浏览器的功能强大的交互式图表和可视化库

d3

https://avatars1.githubusercontent.com/u/1562726?s=200&v=4

借助SVG,Canvas和HTML使数据栩栩如生。

图形

uikit

https://getuikit.com/images/favicon.png

一款轻量级、模块化的前端框架可快速构建强大的web前端界面

UI组件库

JsBridge

android java和javascript桥接,灵感来自微信webview jsbridge

DSBridge-Android

一个现代的跨平台JavaScript桥接,通过它您可以在JavaScript和本机之间同步或异步地调用彼此的功能

原生APP交互webview桥接

joi

对象模式验证

validator.js

字符串验证插件、表单验证

async-validator

异步验证器

yup

无效的简单对象架构验证

参数验证

localForage

https://avatars2.githubusercontent.com/u/18673496?s=200&v=4

离线存储,使用简单但功能强大的API包装IndexedDB,WebSQL或localStorage。

数据库

introjs

https://avatars2.githubusercontent.com/u/2010360?s=200&v=4

为您的网站和项目提供新功能介绍和逐步用户指南的更好方法

shepherd

https://avatars3.githubusercontent.com/u/17297725?s=200&v=4

引导您的用户浏览您的应用程序

bootstrap-tour

使用Twitter Bootstrap Popovers快速方便地进行产品浏览

步骤引导

JavaScript

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

React

用于构建用户界面的 JavaScript 库

React Router

React 路由管理

Redux

https://avatars2.githubusercontent.com/u/13142323?s=200&v=4

React 状态管理

create-react-app

React官方脚手架

生态系统

React Redux

Redux的官方React绑定(通常配合redux使用)

redux-actions

Redux的Flux标准action实用程序(用于生成action)

redux-thunk

Redux的Thunk中间件, 用于处理异步逻辑

redux-saga

https://avatars2.githubusercontent.com/u/24776643?s=200&v=4

一个旨在使应用程序副作用(即异步事物,如数据获取和不纯的东西,如访问浏览器缓存)更容易管理,执行更高效,易于测试,以及更好地处理故障的库

Redux相关

React Native

使用React构建原生APP程序的框架

React Navigation

https://avatars0.githubusercontent.com/u/29647600?s=200&v=4

为您的本地应用程序提供路由和导航

expo

https://avatars0.githubusercontent.com/u/12504344?s=200&v=4

用于制作跨平台移动应用程序的Expo平台

ant-design-mobile-rn

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

一个基于 React Native 的 UI 组件库

React Native相关

Ant Design

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

Ant Design - A UI Design Language

MATERIAL-UI

https://material-ui.com/static/favicon.ico

React 组件用于更快速、更简便的 web 开发。你也可以建立你自己的设计系统,或者从 Material Design 开始

element

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

elementUI组件库

react-bootstrap

https://avatars0.githubusercontent.com/u/6853419?s=200&v=4

基于Bootstrap 3构建的组件库

evergreen

Evergreen是一个React UI框架,用于在Web上构建雄心勃勃的产品。由Segment带给您。

@alifd/next

@alifd/next 是 Alibaba Fusion Design 的官方 React 实现, 赋能企业中后台产品开发

zent

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

Zent 是有赞 PC 端 WebUI 规范的 React 实现,提供了一整套基础的 UI 组件以及一些常用的业务组件

React95

装修一新的现代的应用程序做出React Windows95的UI组件。

rsuite

https://avatars1.githubusercontent.com/u/19635045?s=200&v=4

React Suite 是一套 React 组件库,为后台产品而生。同时也是一个具有贴心设计以及对开发者友好的 UI 框架

chakra-ui

https://avatars2.githubusercontent.com/u/54212428?s=200&v=4

适用于您的React应用程序的简单,模块化和可访问的UI组件

PC端UI组件库

Ant Design Mobile

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

一个基于 Preact / React / React Native 的 UI 组件库

移动端UI组件库

React Helmet

这个可重用的反应组件将管理对文档头的所有更改

react-image-crop

用于React的响应式图像裁剪工具

React Helmet

这个可重用的反应组件将管理对文档头的所有更改

react-transition-group

当React组件进入或离开DOM时执行动画的简单方法

React Loadable

用于加载具有promise的组件的更高阶组件 - 路由懒加载

react-swipe

基于swipe.js封装的react组件/走马灯

Ant Motion

使用 Ant Motion 能够快速在 React 框架中使用动画,我们提供了单项,组合动画,以及整套解决方案

video-react

网络视频播放器使用React库从头开始构建HTML5世界

react-keeper

一个react路由库,更适合移动端使用,拥有缓存等功能

Fusion Design

基于React构建的Web可配置组件库

recharts

https://avatars0.githubusercontent.com/u/13690587?s=200&v=4

基于 React和D3 的组合式图表库

react-json-view

JSON查看器

BizCharts

基于G2和React的强大数据可视化库

react-draggable

一个简单的组件,用于使元素可拖动

react-slick

react走马灯组件

react-color

react 拾色器

react-intl

https://avatars1.githubusercontent.com/u/50559490?s=200&v=4

国际化React应用程序。这个库提供了React组件和一个API,用于格式化日期,数字和字符串,包括复数形式和处理翻译

react-data-grid

https://avatars3.githubusercontent.com/u/1763971?s=200&v=4

使用React构建的类似于Excel的网格组件,具有编辑器,键盘导航,复制和粘贴等功能

react-virtualized

https://cloud.githubusercontent.com/assets/29597/11736841/c0497158-9f87-11e5-8dfe-9c0be97d4286.png

React组件可有效呈现大型列表和表格数据

react-live

https://avatars3.githubusercontent.com/u/5078602?s=200&v=4

一个用于实时编辑React组件的灵活组件库

formik

https://jaredpalmer.com/formik/img/favicon.png

在React中轻松创建表单

其他组件库

react-move

https://github.com/favicon.ico

一个React组件,它创建可移动,可拖动,可调整大小,可缩放,可旋转,可扭曲,可收缩,可分组,可捕捉。

react-dnd

https://avatars2.githubusercontent.com/u/25307599?s=200&v=4

React DnD是一组React实用程序,可帮助您构建复杂的拖放接口,同时保持组件分离

react-beautiful-dnd

漂亮的和可访问的拖放列表

react-rnd

一个可调整大小且可拖动的React组件。

拖拽组件

ANT DESIGN PRO

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

开箱即用的中台前端/设计解决方案

开箱即用

enzyme

适用于React的JavaScript测试实用程序

Jest

Jest是一个令人愉快的JavaScript测试框架,专注于简单性。

单元测试

umijs

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

插件化的企业级前端应用框架。

DvaJS

https://avatars1.githubusercontent.com/u/20552239?s=200&v=4

基于React和Redux的轻量级和elm风格框架

umijs/hooks

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

你可以将 umi hooks 使用在任何地方,和任意组件库搭配使用。虽然我们的代码示例都是基于 ant design 的,但是并不代表我们的 Hooks 只能和 ant design 配合使用

umi-plugin-cache-route

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

路由缓存,类似vue keep-alive

umi/dva

React.js 小书

这是一本关于 React.js 的小书

TypeScript-React-Starter

TypeScript和React的入门模板,带有详细的README,描述了如何将两者结合使用。

react-redux-typescript-guide

TypeScript中的React和 Redux - 使用说明

知识

Mobx

https://avatars1.githubusercontent.com/u/17475736?s=200&v=4

简单、可扩展的状态管理

next.js

服务端渲染框架、SEO解决方案

nwb

适用于Web的React,Preact,Inferno和Vanilla JS应用,React库和其他npm模块的工具包,无需配置

ahooks

为 React Hooks 而生

react-app-rewired

覆盖create-react-app webpack配置而不弹出

其他

React

https://reactjs.org/favicon.ico

Vue.js

渐进式JavaScript 框架

Vue Router

Vue Router 是 Vue.js 官方的路由管理器

Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。

vue-devtools

vue.js调试工具

vue-cli

Vue.js开发的标准脚手架工具

vuepress

Vue 驱动的静态网站生成器

Vue SSR

Vue服务端渲染、SEO解决方案

vue-class-component

用于类式Vue组件的ECMAScript / TypeScript装饰器。

eslint-plugin-vue

Vue.js的官方ESLint插件

vite

Vite是一个经过验证的Web开发人员构建工具,可在开发过程中通过本机ES模块导入为您的代码提供服务,并将其与Rollup捆绑在一起进行生产

Vue 组合式 API

Vue 组合式 API在线文档阅读

生态系统

iView

https://avatars0.githubusercontent.com/u/20693613?s=200&v=4

一套基于 Vue.js 的高质量UI 组件库

Element

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库

Element Plus

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

支持Vue3.0的Element

Muse-UI

https://avatars0.githubusercontent.com/u/22283362?s=200&v=4

基于 Vue 2.0 优雅的 Material Design UI 组件库

Ant Design Vue

https://qn.antdv.com/favicon.ico

这里是 Ant Design 的 Vue 实现,开发和服务于企业级后台产品

vuetify

https://avatars2.githubusercontent.com/u/22138497?s=200&v=4

让Vue和Material Design的强大力量在开发上助您一臂之力

bootstrap-vue

https://avatars1.githubusercontent.com/u/22965283?s=200&v=4

BootstrapVue为Vue.js提供了最全面的Bootstrap 4组件和网格系统实现之一,并提供了广泛的自动WAI-ARIA可访问性标记

vue-material

https://avatars0.githubusercontent.com/u/23659108?s=200&v=4

Vue material简单,轻巧,完全符合Google Material Design规范

buefy

https://avatars1.githubusercontent.com/u/26799900?s=200&v=4

Buefy是一个基于Bulma框架和设计的Vue.js响应式UI组件的轻量级库。

PC端UI组件库

vant

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

轻量、可靠的移动端 Vue 组件库

vux

一个凑合的 Vue.js 移动端 UI 组件库

cube-ui

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

基于 Vue.js 实现的精致移动端组件库

Mand Mobile

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单

Mint UI

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

基于 Vue.js 的移动端组件库

NutUI

一套京东风格的轻量级移动端Vue组件库

移动端UI组件库

vue-awesome-swiper

基于swiper封装的轮播图组件

vue-meta

管理Vue 2.0组件中的页面元信息。支持SSR + Streaming

vue-scroller

Vue Scroller是Vonic UI 的基础组件。为了平滑滚动,拉动刷新和无限加载。

vue-infinite-loading

Vue.js的无限滚动插件(支持向上和向下)

其他组件/插件

iview-admin

基于iView的Vue 2.0管理系统模板

开箱即用

nuxt

https://avatars2.githubusercontent.com/u/23360933?s=200&v=4

Vue.js 通用应用框架

创建nuxt的脚手架工具

https://avatars2.githubusercontent.com/u/23360933?s=200&v=4

create-nuxt-app

nuxt服务端渲染框架

Vue.js

https://v3.vuejs.org/images/icons/apple-icon-152x152.png

Angular

一个框架,移动 & 桌面

angular-cli

用于Angular CLI脚手架工具

augury

Angular调试和可视化工具

生态系统

NG-ZORRO

https://avatars2.githubusercontent.com/u/30223759?s=200&v=4

基于Ant Design的Angular企业级UI组件

ng-bootstrap

https://avatars3.githubusercontent.com/u/14283866?s=200&v=4

基于Bootstrap 4的Angular组件

element-angular

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

Element Angular组件库

primeng

https://avatars1.githubusercontent.com/u/3494069?s=200&v=4

PrimeNG是Angular的丰富UI组件的集合

material

Material Design是一个统一的视觉,动作和交互设计系统的规范,适用于不同的设备。

PC端UI组件库

material

Material Design是一个统一的视觉,动作和交互设计系统的规范,适用于不同的设备。

移动端UI组件库

Angular

https://avatars0.githubusercontent.com/u/139426?s=200&v=4

小程序开发

微信小程序

小游戏开发

微信小游戏

小程序文档

mpvue

Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心

wepy

官方小程序组件化开发框架

mpx

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

Mpx是一款致力于提高小程序开发体验的增强型小程序框架(滴滴出品,基于vue)

uni-app

https://avatars1.githubusercontent.com/u/5485517?s=200&v=4

uni-app 是使用 Vue 语法开发小程序、H5、App的统一框架

omix

https://tencent.github.io/omi/assets/omi-logo2019.svg

腾讯原生小程序框架 OMIX 2.0

小程序框架

vant-weapp

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

轻量、可靠的小程序 UI 组件库

weui-wxss

https://avatars0.githubusercontent.com/u/18461506?s=200&v=4

这是一套基于样式库weui-wxss开发的小程序扩展组件库,同微信原生视觉体验一致的UI组件库

wxParse

wxParse-微信小程序富文本解析自定义组件,支持HTML及markdown解析

mpvue-wxParse

适用于 Mpvue 的微信小程序富文本解析自定义组件

echarts-for-weixin

https://avatars1.githubusercontent.com/u/2268460?s=200&v=4

ECharts 的微信小程序版本

腾讯位置服务

https://lbs.qq.com/favicon.ico

微信小程序原生LBS能力的最佳拍档

ColorUI

鲜亮的高饱和色彩,专注视觉的小程序组件库

weapp-input-frame

验证码、支付密码输入框组件

小程序组件库/插件

JS接口签名校验工具

微信 JS 接口签名校验工具

接口调试工具

微信公众平台接口调试工具

computed

小程序自定义组件 computed / watch 扩展

微信公众号开发辅助工具

awesome-github-wechat-weapp

微信小程序开源项目库汇总

awesome-wechat-weapp

微信小程序开发资源汇总

资源

微信开放社区

小程序开发者专区,微信公众平台,微信开放社区,开发者专区

wechat-format

微信公众号排版编辑器,转换 Markdown 到微信特制的 HTML

微信开放平台

微信开放平台

其他

微信开发

https://avatars0.githubusercontent.com/u/18461506?s=200&v=4

CSS3 UI Lib

CSS动画集成、在线调试阴影

CSS Sprites Generator

CSS雪碧图生成

CSS渐变调试器

http://www.colorzilla.com/favicon.ico

前端开发调试CSS渐变必备神器

Animista

https://animista.net/favicon.ico

在线生成CSS动画

CSS Gradient

https://cssgradient.io/favicon.ico

CSS渐变调试并生成CSS代码

Grabient

https://www.grabient.com/favicon.ico

CSS渐变调试并生成CSS代码,还可以角度变换

px与em单位转换

http://pxtoem.com/favicon.ico

px与em单位转换

CSS三角形產生器

http://apps.eky.hk/css-triangle-generator/favicon.gif

CSS三角形產生器 - 使用純CSS繪畫三角形

SassMeister

https://www.sassmeister.com/favicon.ico

将sass语法转换成CSS语法

transfonter

https://transfonter.org/favicon.ico

字体图标转换Base64

Loading集合

上千种Loading认你选

CSS Reference

https://cssreference.io/favicons/favicon-32x32.png

css参考是一个免费的视觉指导css。它以最受欢迎的特性为特色,并用插图和动画示例对其进行说明

在线CSS阴影调试

https://www.w3cschool.cn/favicon.ico

CSS3 Box Shadow(阴影)效果在线调试工具

CSS

正则表达式验证器

https://regexper.com/favicon.ico

验证JavaScript正则表达式

JSON在线解析及格式化验证

https://www.json.cn/favicon.ico

json在线解析,json格式化,json格式验证,json转xml,xml转json

prettier

https://avatars0.githubusercontent.com/u/25822731?s=200&v=4

Prettier是一个固定的代码格式化程序。它通过解析代码并使用自己的规则重新打印它来强制执行一致的样式,这些规则考虑了最大行长度,并在必要时包装代码

正则表达式在线测试

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

正则表达式在线测试

spy-debugger

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

微信调试,各种WebView样式调试、手机浏览器的页面真机调试。便捷的远程调试手机页面、抓包工具,支持:HTTP/HTTPS,无需USB连接设备

VConsole

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

一个轻量、可拓展、针对手机网页的前端开发者调试面板

JavaScript

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

Staticfile CDN

https://www.staticfile.org/assets/images/logo.png

免费CDN服务,包括 JavaScript、CSS、图片和 swf 等静态文件

jsDelivr

https://www.jsdelivr.com/favicon.ico

jsDelivr – 开源 CDN

BootCDN

https://www.bootcdn.cn/assets/ico/favicon.ico

稳定、快速、免费的前端开源项目 CDN 加速服务

cdnjs

https://avatars0.githubusercontent.com/u/637362?s=200&v=4

面向Web开发人员的免费和开源公共Web CDN!

CDN

FunDebug

https://www.fundebug.com/favicon.ico

支持前端JavaScript,后端Node.js以及微信小程序错误监控

前端兼容性查询

https://www.caniuse.com/img/favicon-128.png

前端查询API各个厂商兼容性情况

Browserhacks

http://browserhacks.com/assets/images/browserhacks.ico

Browserhacks是来自各个互联网的浏览器特定CSS和JavaScript hacks的广泛列表。

Character Entity Reference Chart

字符实体参考图,>

awesome-web-editor

开源web编辑器汇总列表

jsfiddle

https://jsfiddle.net/img/favicon.png

强大的前端代码在线演示的网站

jsperf

https://avatars0.githubusercontent.com/u/11043997?s=200&v=4

jsPerf旨在提供一种简单的方法来创建和共享测试用例,通过运行基准测试来比较不同JavaScript代码段的性能

codesandbox

https://codesandbox.io/favicon.ico

codesandbox是为Web应用程序定制的在线编辑器。

HTML Reference

https://htmlreference.io/favicons/favicon-32x32.png

所有HTML元素和属性的免费指南参考

jsbin

https://static.jsbin.com/images/dave.min.svg

一个轻量级的html/css/js在线编辑器Debug调试器

jsfuck

http://www.jsfuck.com/favicon.ico

JSFuck是基于JavaScript原子部分的深奥和教育性编程风格。它仅使用六个不同的字符来编写和执行代码。

其他

工具

Bootstrap

https://getbootstrap.com/docs/4.5/assets/img/favicons/favicon.ico

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架

Sass

https://avatars2.githubusercontent.com/u/317889?s=200&v=4

Sass 是成熟、稳定、强大的 CSS 扩展语言

Less

https://avatars0.githubusercontent.com/u/3538330?s=200&v=4

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性

magic

CSS3动画特效

Animate.css

https://avatars3.githubusercontent.com/u/64791939?s=200&v=4

CSS动画的跨浏览器库,简单易用

normalize.css

http://necolas.github.io/normalize.css/favicon.ico

使浏览器更加一致地呈现所有元素并符合现代标准。它只针对需要规范化的样式

Hover

CSS3动力悬停效果的集合,适用于链接,按钮,徽标,SVG,特色图像等

github-markdown-css

复制GitHub Markdown样式的最小CSS量

autoprefixer

https://avatars1.githubusercontent.com/u/8296347?s=200&v=4

Autoprefixer是一款自动管理浏览器前缀的插件,它可以解析CSS文件并且添加浏览器前缀到CSS内容里

vivify

http://vivify.mkcreative.cz/assets/img/apple-icon-57x57.png

Vivify是免费的CSS动画库。

cubic-bezier

在线制作CSS动画

CSS

iconfont

http://www.iconfont.cn/favicon.ico

阿里妈妈MUX倾力打造的矢量图标管理、交流平台

Font Awesome

https://avatars1.githubusercontent.com/u/1505683?s=200&v=4

一套绝佳的图标字体库和CSS框架

LivIcons Evolution

https://livicons.com/apple-icon-57x57.png

会动的纯svg矢量图标库

ionicons

https://avatars0.githubusercontent.com/u/3171503?s=200&v=4

适用于Ionic Framework和Web应用程序的高级图标字体

material-design-icons

Google的Material Design图标

图标库

css battle

https://cssbattle.dev/images/logo-square.png

在线比拼CSS

学习CSS布局

http://zh.learnlayout.com/images/logo.png

学习CSS布局

资源

CSS

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/css/css.png

TypeScript

TypeScript 是一种由微软开发的自由和开源的编程语言,它是JavaScript的一个超集

TypeSearch

搜索typescript 类型包 @types/node

DefinitelyTyped

高质量TypeScript类型定义的存储库

typescript-eslint

https://avatars0.githubusercontent.com/u/46634674?s=200&v=4

Monorepo用于所有工具,使ESLint能够支持TypeScript

awesome-typescript

用于客户端和服务器端开发的强大TypeScript资源的集合。在TypeScript中编写精彩的JavaScript

TypeScript 入门教程

TypeScript 入门教程

TypeScript

TypeScript

https://www.typescriptlang.org/favicon-32x32.png

JavaScript 20 年

JavaScript 20 年

你不知道的JavaScript

你不知道的JavaScript

现代 JavaScript 教程

https://zh.javascript.info/img/favicon/favicon.png

以最新的 JavaScript 标准为基准。通过简单但足够详细的内容,为你讲解从基础到高阶的 JavaScript 相关知识

ECMAScript 6入门

ECMAScript 6入门

JavaScript教程

JavaScript 标准参考教程

书籍

JavaScript Puzzlers

你真的了解JavaScript吗?来试试吧!

InterviewMap

https://avatars1.githubusercontent.com/u/41361384?s=200&v=4

打造最好的面试图谱

飞冰早报

飞冰早报

jsdoc

用于JavaScript的API文档生成器。

30 seconds of code

https://avatars3.githubusercontent.com/u/43479428?s=200&v=4

精选的有用JavaScript代码段集合,您可以在30秒或更短的时间内理解这些代码段。

33-js-concepts

JavaScript开发者应懂的33个概念

ECMAScript Proposals

https://avatars1.githubusercontent.com/u/1725583?s=200&v=4

跟踪ECMAScript 提案

ecma262

https://avatars1.githubusercontent.com/u/1725583?s=200&v=4

ECMA-262的状态,流程和文档

JavaScript 秘密花园

https://bonsaiden.github.io/JavaScript-Garden/favicon.ico?v=2

JavaScript 语言最古怪用法的文档集合

Airbnb JavaScript 编码规范

Airbnb JavaScript 编码规范

Daily-Interview-Question

工作日每天一道前端大厂面试题,祝大家天天进步,一年后会看到不一样的自己

javascript-algorithms

JavaScript 算法与数据结构

weekly

https://avatars2.githubusercontent.com/u/26534952?s=200&v=4

前端精读周刊

文档

参考资料

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

WEB前端

Node.js

Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时

npm1

npm是JavaScript世界的包管理工具,并且是 Node.js 平台的默认包管理工具

官方

urllib

在复杂的世界中请求HTTP(s)URL

formstream

multipart / form-data编码流,用于文件上传的帮助程序。

validate-npm-package-name

给我一个字符串,我会告诉你它是否是有效的npm软件包名称

模块

Yarn

https://classic.yarnpkg.com/favicon.ico

快速、可靠、安全的依赖管理

awesome-nodejs

Node.js软件包和资源

nodebestpractices

最大的Node.js最佳实践列表

其他

NodeBB

https://avatars0.githubusercontent.com/u/4449608?s=200&v=4

基于Node.js的论坛软件,为现代网站

Ghost

https://avatars1.githubusercontent.com/u/2178663?s=200&v=4

Ghost 是基于 Node.js 构建的开源博客平台。Ghost 具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写。Ghost 的目标是取代臃肿的 Wordpress

CMS

nodebestpractices

Node.js 最佳实践, 最大的汇集,且每周都在增长 - 当前,超过50个最佳实现,样式指南,架构建议已经呈现

资料

生态系统

https://nodejs.org/static/images/favicons/favicon.ico

request

简化的HTTP请求客户端

superagent

一个小型渐进式客户端HTTP请求库,Node.js模块具有相同的API,具有许多高级HTTP客户端功能

axios

基于Promise的HTTP客户端,用于浏览器和node.js

node-fetch

一个轻量级的模块,将window.fetch带到Node.js

bent

带有async await的功能性JS HTTP客户端(Node.js和Fetch)

superagent-proxy

superagent代理扩展,这使您可以通过某种代理来代理HTTP请求

网络请求

Puppeteer

https://pptr.dev/favicons/apple-touch-icon.png

Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制Chromium或Chrome

cypress

https://avatars0.githubusercontent.com/u/8908513?s=200&v=4

对浏览器中运行的所有内容进行快速,轻松和可靠的测试,(类Puppeteer)

Mocha

https://avatars0.githubusercontent.com/u/8770005?s=200&v=4

Node.js和浏览器的简单,灵活,有趣的JavaScript测试框架

chai

https://avatars0.githubusercontent.com/u/1515293?s=200&v=4

node.js的BDD/TDD断言框架和可以与任何测试框架配对的浏览器

ava

https://avatars2.githubusercontent.com/u/8527916?s=200&v=4

未来的JavaScript测试运行器

Jest

https://jestjs.io/img/favicon/favicon.ico

Jest是一个令人愉快的JavaScript测试框架,专注于简单性。

testcafe

https://avatars1.githubusercontent.com/u/4243232?s=200&v=4

一个Node.js工具,用于自动化端到端Web测试

jest-puppeteer

https://avatars2.githubusercontent.com/u/26206404?s=200&v=4

使用Jest&Puppeteer运行测试 🎪✨

ts-jest

https://kulshekhar.github.io/ts-jest/assets/img/logo.png

具有对Jest的Sourcemap支持的TypeScript预处理器

jest-extended

https://avatars2.githubusercontent.com/u/26206404?s=200&v=4

扩展 jest 匹配器

单元测试

node-mysql2

node.js的快速node-mysql兼容的mysql驱动程序

sequelize

基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, SQLite 和 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 读取和复制等功能

mongoose

mongodb对象模型设计用于在异步环境中工作。

ioredis

适用于Node.js,以性能为中心且功能齐全的Redis客户端。

objection.js

Objection.js是Node.js的一个ORM ,它旨在避免使用SQL和底层数据库引擎的全部功能,同时尽可能简单地将magic保持在最低限度。

nedb

JavaScript数据库,用于Node.js,nw.js,electron和浏览器

typeorm

https://avatars0.githubusercontent.com/u/20165699?s=200&v=4

ORM for TypeScript和JavaScript(ES7,ES6,ES5)。支持MySQL,PostgreSQL,MariaDB,SQLite,MS SQL Server,Oracle,WebSQL数据库。适用于NodeJS,浏览器,Ionic,Cordova和Electron平台

knexjs

https://avatars0.githubusercontent.com/u/10490573?s=200&v=4

PostgreSQL,MySQL和SQLite3的查询构建器,旨在灵活,可移植且易于使用。

node-redis

https://avatars1.githubusercontent.com/u/5845577?s=200&v=4

高性能Node.js Redis客户端。

数据库

node-canvas

node-canvas是Node.js的Cairo -backed Canvas实现。

svg-captcha

在node.js中生成svg验证码

ccap

node.js使用C++库CImg生成验证码,无需安装任何其他库或软件

text-to-svg

将文本转换为SVG路径而不依赖于本机

svg2png

使用PhantomJS将SVG转换为PNG

图形相关

node-http-proxy

一个HTTP可编程代理库,支持websocket。它适用于实现反向代理和负载平衡器等组件

http-proxy-middleware

用于连接,快速和浏览器同步的单线程node.js http-proxy中间件(基于node-http-proxy)

代理

esprima

ECMAScript解析基础架构,可进行多用途分析, 将代码转换成AST

recast

JavaScript AST转换器,非破坏性漂亮打印机和自动源映射生成器

AST辅助工具

node-xlsx

NodeJS excel文件解析器和构建器

fs-extra

操作系统文件,用于替代内置的fs模块

js-xlsx

https://avatars0.githubusercontent.com/u/5826089?s=200&v=4

SheetJS社区版 - 电子表格工具包

node-archiver

https://www.archiverjs.com/images/logo.svg

文件压缩

文件相关

wechat-oauth

微信公共平台OAuth接口消息接口服务中间件与API SDK

wechat-api

微信公共平台API

wechat

微信公共平台消息接口服务中间件

wechaty

是适用于微信个人帐户的Bot SDK ,可以帮助您创建6行javascript的机器人

微信开发

Glob

匹配文件。 **/*.js

prompts

轻巧,美观和用户友好的交互式提示

enquirer

https://avatars3.githubusercontent.com/u/21160645?s=200&v=4

时尚,直观和用户友好的提示

cli-table3

https://avatars2.githubusercontent.com/u/887802?s=200&v=4

带有Node.JS的CLI的漂亮unicode表

commander.js

node.js命令行界面的完整解决方案,受Ruby指挥官的启发

ora

优雅的终端微调器

Inquirer.js

常用交互式命令行用户界面的集合

shelljs

Node.js的可移植Unix shell命令

download-git-repo

下载并提取git存储库(GitHub,GitLab,Bitbucket)

node-semver

https://avatars0.githubusercontent.com/u/6078720?s=200&v=4

node的semver解析器

node-progress

node.js的灵活ascii进度条

node-qrcode

二维码生成

open

打开URL,文件,可执行文件等内容。跨平台。

ssh2

用纯JavaScript编写的SSH2客户端和服务器模块,用于node.js

minimist

解析参数选项

node-clear

清空终端屏幕信息

chalk

https://avatars2.githubusercontent.com/u/13122722?s=200&v=4

终端字符串样式

yargs

https://avatars3.githubusercontent.com/u/16504989?s=200&v=4

通过解析参数并生成优雅的用户界面来帮助您构建交互式命令行工具。

CLI

handlebars

https://handlebarsjs.com/images/favicon.png

JavaScript模板引擎

ejs

https://ejs.co/favicon.svg

JavaScript模板引擎

mustache.js

https://github.githubassets.com/favicons/favicon.svg

使用JavaScript的无逻辑{{mustache}}模板

模板引擎

node-xml2js

简单的XML到JavaScript对象转换器。它支持双向转换。使用sax-js和 xmlbuilder-js

iconv-lite

纯JavaScript中转换字符编码。

node-uuid

在JavaScript中生成符合RFC的UUID

nativefier

使任何网页成为桌面应用程序

getmac

通过Node.js获取当前计算机的mac地址

http-server

一个简单的零配置命令行http服务器

node-schedule

Node的类似cron-like和非not-cron-like的作业调度程序。

qrcode-terminal

QRCode终端版

localtunnel

https://avatars1.githubusercontent.com/u/13612933?s=200&v=4

localtunnel将您的localhost暴露给世界,以便于测试和共享!无需混淆DNS或部署只是为了让其他人测试您的更改

passport

http://www.passportjs.org/images/favicon/apple-icon-57x57.png

Node.js的简单,不显眼的身份验证

parameter

参数验证工具

bytes

用于解析字符串字节, b/kb/mb/gb/tb/pb

js-yaml

https://avatars2.githubusercontent.com/u/723678?s=200&v=4

JavaScript YAML解析器和转储器。非常快

acorn

https://avatars0.githubusercontent.com/u/34631683?s=200&v=4

一个小型,基于JavaScript的快速JavaScript解析器

figlet.js

用JavaScript编写的FIG驱动程序,旨在完全实现FIGfont规范, 生成ascii

node-printer

本机 node.js 打印机

fontmin

无缝缩小字体

morgan

https://avatars1.githubusercontent.com/u/5658226?s=200&v=4

Node.js的HTTP请求记录器中间件

jsdom

https://avatars0.githubusercontent.com/u/9271229?s=200&v=4

与Node.js一起使用的各种Web标准的JavaScript实现

其他

依赖包

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

Electron

https://www.electronjs.org/images/favicon.ico

使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用

electron-packager

https://www.electronjs.org/images/favicon.ico

通过JS或CLI自定义和封装您的Electron应用程序与特定于操作系统的软件包(.app,.exe等)

electron-installer-dmg

https://www.electronjs.org/images/favicon.ico

使用AppDMG为电子应用程序创建DMG安装程序

electron-vue

https://simulatedgreg.gitbooks.io/electron-vue/content/gitbook/images/apple-touch-icon-precomposed-152.png

基于 vue (基本上是它听起来的样子) 来构造 electron 应用程序的样板代码。

electron-builder

https://www.electron.build/assets/images/favicon.png

一个开箱即用的完整解决方案,用于将Electron, Proton Native or Muon 打包、构建成支持macOS, Windows and Linux三大系统的,可”自动更新”的可发布安装程序

electron-react-boilerplate

https://electron-react-boilerplate.js.org/logo/logo.png

基于React可扩展跨平台应用程序的App

menubar

https://www.electronjs.org/images/favicon.ico

Electron创建菜单栏桌面应用程序的高级方法。

Electron

https://www.electronjs.org/images/favicon.ico

nw.js

https://nwjs.org.cn/asset/img/favicon.ico

从DOM/WebWorker层,直接调用所有的Node模块,使用现有的web技术,开启一个全新的编写应用的方式

nw-builder

https://nwjs.org.cn/asset/img/favicon.ico

以编程方式或通过CLI 构建适用于Mac,Win和Linux的NW.js应用程序。

nwjs-ffmpeg-prebuilt

https://nwjs.org.cn/asset/img/favicon.ico

FFMpeg预构建的二进制文件具有专有的编解码器和构建窗口。

nw.js

跨平台框架

nest

https://avatars1.githubusercontent.com/u/28507035?s=200&v=4

Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(功能编程)和 FRP(功能反应编程)的元素

awesome-nestjs

https://avatars1.githubusercontent.com/u/28507035?s=200&v=4

NestJS的精选列表

nest

Egg.js

https://eggjs.org/images/favicon.png

Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本

egg-validate

https://eggjs.org/images/favicon.png

基于 parameter 封装的参数验证插件

egg-mailer

https://eggjs.org/images/favicon.png

基于 nodemailer 封装的参数验证插件

egg.js

Koa

https://avatars2.githubusercontent.com/u/5055057?s=200&v=4

Koa -- 基于Node.js 平台的下一代web开发框架

Express

https://avatars1.githubusercontent.com/u/5658226?s=200&v=4

Express - 快速、开放、极简的 Web 开发框架

Express/Koa

WEB框架

node-inspector

Node.js调试器基于Blink Developer Tools

debug

一个微小的JavaScript调试工具,以Node.js核心的调试技术为模型。适用于Node.js和Web浏览器

ndb

ndb是针对Node.js的改进调试体验,由Chrome DevTools启用

调试debugger

nvm

Node版本管理器 - 用于管理多个活动node.js版本的简单bash脚本

nvm-windows

适用于Windows的node.js版本管理实用程序

nvs

Node Version Switcher - 用于在Node.js的版本和分支之间切换的跨平台工具(受到nvm的启发)

n

Node.js版本管理:无配置文件,无复杂的API,非常简单

node版本管理

log4js-node

log4js 是一个 nodejs 日志管理工具,可以将日志以各种形式输出到各种渠道。

node-bunyan

用于node.js服务的简单快速的JSON日志记录模块

日志管理

yeoman

https://avatars0.githubusercontent.com/u/1714870?s=200&v=4

一套用于自动化开发工作流程的工具

nodemailer

https://avatars0.githubusercontent.com/u/16486629?s=200&v=4

发送来自Node.js的电子邮件 - 很容易就像蛋糕一样!

gh-pages

将文件发布到GitHub上的gh-pages分支的常规任务

集成工具

terser

https://avatars1.githubusercontent.com/u/43502240?s=200&v=4

适用于ES6+的JavaScript解析器,mangler和压缩器工具包

代码压缩

Awehunt

npm包下载量曲线对比图

nodemon

监视node.js应用程序中的任何更改并自动重新启动服务器 - 非常适合开发

pkg

将Node.js项目打包成可执行文件

npm-check-updates

查找package.json或bower.json允许的更新版本的软件包依赖项

husky

husky 可以防止错误的 git commit, git push 等

bundlephobia

找出在项目中添加新的依赖项的包大小

npm-run-all

一个CLI工具,可并行或顺序运行多个npm脚本

dotenv

从.env加载用于nodejs项目的环境变量

cross-env

运行跨平台设置和使用环境变量的脚本

nrm

npm源快速切换, npm, cnpm, taobao, nj, 内网

其他

辅助工具

https://nodejs.org/static/images/favicons/favicon.ico

Deno

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

一个安全的运行时的JavaScript和TypeScript

Deno 标准库

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

Deno 标准库

官方

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

Deno

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

适用于Deno的Visual Studio Code插件

工具

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

Deno

Node.js

Golang

Go编程语言

go.dev

大规模构建快速,可靠,高效的软件

awesome-go

精选的Go框架,库和软件的精选列表

Goproxy

https://avatars1.githubusercontent.com/u/49926011?s=200&v=4

中国最可靠的 Go 模块代理

Go语言中文网

https://static.studygolang.com/static/img/favicon.ico

Go语言中文网

Go标准库中文文档

https://studygolang.com/static/img/go.ico

Go标准库中文文档

生态

gin

Gin是用Go(Golang)编写的Web框架。它具有类似于martini的API,其性能比httprouter快40倍。如果您需要性能和良好的生产率,您会喜欢Gin

beego

beego是用于Go编程语言的开源,高性能Web框架

martini

Go的经典Web框架

echo

https://avatars1.githubusercontent.com/u/2624634?s=200&v=4

高性能,简约的Go Web框架

iris

https://www.iris-go.com/favicon.ico

最快的HTTP / 2 Go Web框架。AWS Lambda,gRPC,MVC,唯一路由器,Websocket,会话,测试套件,依赖注入等。expressjs和laravel的真正继承者|

fiber

https://avatars1.githubusercontent.com/u/59947262?s=200&v=4

Fiber是一个受Express启发的Web框架,建立在Fasthttp(Go最快的HTTP引擎)的基础上。 旨在简化零内存分配和性能的情况,以便快速开发。

WEB框架

生态系统

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Fyne

https://avatars3.githubusercontent.com/u/36045855?s=200&v=4

基于Material Design的Go跨平台GUI

GUI

logrus

Go的结构化,可插入日志记录。

zap

https://avatars3.githubusercontent.com/u/19262598?s=200&v=4

在Go中实现快速,结构化,水平的日志记录。

日志模块

gorm

适用于Golang的绝佳ORM库,旨在对开发人员友好

ent

https://entgo.io/img/favicon.ico

用于Go的简单但功能强大的实体框架,可轻松构建和维护具有大型数据模型的应用程序。

mysql

Go MySQL驱动程序是Go(golang)数据库/ sql包的MySQL驱动程序

sqlite3

sqlite3驱动程序

pq

适用于database/sql的Pure Go Postgres驱动程序

redis

https://redis.uptrace.dev/assets/images/favicon.png

用于Golang的类型安全的Redis客户端

数据库

json-iterator

高性能100%兼容的“ encoding / json”替代产品

blackfriday

Markdown处理器,安全、快速。

goldmark

用Go语言编写的markdown解析器。易于扩展,符合标准(CommonMark),结构合理。

goquery

接近jQuery语法的DOM解析库

go-yaml

yaml包使Go程序能够轻松地对yaml值进行编码和解码, 可以快速可靠地解析和生成YAML数据。

xurls

从文本中提取Urls

解析器

govalidator

参数验证程序,用于字符串,数字,切片和结构

validator

基于标签对结构和各个字段实现值验证。

参数验证

ip

获取公网IP地址、v4/v6

terminal

提供了用于处理终端的支持功能,这在UNIX系统上很常见

gopsutil

用于检索正在运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,概要分析和限制进程资源以及管理正在运行的进程

air

Go热重载

go-micro

分布式系统开发框架

xlsx

xlsx是一个库,用于简化在Go程序中读写Microsoft Excel最新版本使用的XML格式。

email

Go强大而灵活的电子邮件库。

websocket

Go的一种快速,经过测试且广泛使用的WebSocket实现

jwt-go

Golang 实现的 JSON WEB TOKEN

cron

Go 实现的 cron 包

qrcode

二维码生成

casbin

https://avatars3.githubusercontent.com/u/27810343?s=200&v=4

权限管理库,支持Golang中的访问控制模型,如ACL,RBAC,ABAC

resty

用于Go的简单HTTP和REST客户端库

grpc-go

https://grpc.io/favicons/apple-touch-icon.png

gRPC的Go语言实现。基于HTTP/2的RPC

colly

https://avatars2.githubusercontent.com/u/33584194?s=200&v=4

Colly提供了一个干净的界面来编写任何种类的爬虫

cors

使用net / http可配置的处理程序来处理CORS请求

其他

依赖包

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

color

CLI 控制台颜色渲染工具库, 支持Windows

终端颜色

cli

一个简单,快速且有趣的软件包,用于在Go中构建命令行应用

cobra

Cobra既是用于创建功能强大的现代CLI应用程序的库,又是用于生成应用程序和命令文件的程序

命令行解析

pb

Golang的控制台进度栏

mpb

Go cli应用程序的多进度条

控制台进度条

promptui

命令行应用程序的交互式提示

godotenv

从`.env`文件加载环境变量。

go-prompt

受python-prompt-toolkit启发,在Go中构建强大的交互式提示。

其他

CLI

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

gvm

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go版本管理器,类似 nvm

json-to-go

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

在线 JSON 转 Struct结构体

golangci-lint

https://avatars3.githubusercontent.com/u/35628013?s=200&v=4

Go的快速Linters Runner

The Go Playground

https://play.golang.org/favicon.ico

在线运行Golang

nuclei

https://nuclei.projectdiscovery.io/

Nuclei是基于模板的可配置目标扫描的快速工具,具有广泛的可扩展性和易用性。

jaeger

https://avatars3.githubusercontent.com/u/35628013?s=200&v=4

分布式链路追踪

delve

https://avatars1.githubusercontent.com/u/19232073?s=200&v=4

Delve是Go编程语言的调试器。

工具

工具

Go 入门指南

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《The Way to Go》中文译本,中文正式名《Go 入门指南》

Go语言圣经

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go语言圣经 《The Go Programming Language》 中文版本

Go WEB 编程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Golang电子书介绍如何使用Golang建立网络

Go简易教程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《The Little Go Book》中文译本,中文正式名《Go简易教程》

Go by Example 中文版

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go by Example 是对 Go 基于实践的介绍,包含一系列带有注释说明的示例程序。

Go语言之旅

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

本指南涵盖了该语言的大部分重要特性,主要包括:基础、方法和接口、并发等

Go语言101

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

一本着墨于Go语法语义以及运行时相关知识点的编程指导书(Go 1.15就绪)。 此书旨在尽可能地帮助Go程序员更深更全面地理解Go语言

Go语言高级编程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

本书涵盖CGO、Go汇编语言、RPC实现、Web框架实现、分布式系统等高阶主题,针对Go语言有一定经验想深入了解Go语言各种高级用法的开发人员(不推荐新手)

Mastering GO

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《Mastering GO》中文译本,《玩转 GO》。

Mastering GO2

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Mastering Go 第二版中文版来袭!

书籍

100天从新手到大师

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Golang - 100天从新手到大师

project-layout

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go标准布局结构,项目架构结构参考。

编码规范

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Uber Go 语言编码规范

Gin实战

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

WEB 框架Gin实战

其他

参考资料

Golang

Dart

https://pub.dev/favicon.ico

Dart语言

DartPad

https://pub.dev/favicon.ico

在线运行Dart语法

Dart packages

https://pub.dev/favicon.ico

Dart packages

Flutter

https://flutter.dev/images/favicon.png

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的

Flutter Icon

https://flutter.dev/images/favicon.png

Flutter内置Icon组件图标速查表

官方

imei_plugin

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

用flutter在Android中获取imei的插件

multi_image_picker

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

Flutter插件,可让您在iOS和Android上显示多图像选择器。

sqflite

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

SQLite flutter plugin

dio

https://flutter.dev/images/favicon.png

dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等

fish-redux

https://camo.githubusercontent.com/a53c432bb9c2222880a6eca54b5ed091d1ab3d40/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317237344e4a794c614b31526a535a46785858616d504658612d313032342d313032342e706e67

一个基于Redux状态管理的组合式flutter应用程序框架。它适用于建筑中型和大型应用。

flutter_pulltorefresh

https://flutter.dev/images/favicon.png

一个提供上拉加载和下拉刷新的组件,同时支持Android和Ios

json_serializable

https://flutter.dev/images/favicon.png

JSON序列化和反序列化的代码

flutter_swiper

https://flutter.dev/images/favicon.png

flutter最强大的siwiper, 多种布局方式,无限轮播,Android和IOS双端适配

FlutterToast

https://flutter.dev/images/favicon.png

适用于Flutter的Android Toast插件

dart-uuid

https://flutter.dev/images/favicon.png

生成 RFC4122(v1,v4,v5) UUIDs

fluwx

https://flutter.dev/images/favicon.png

Flutter版微信SDK.WeChat SDK for flutter.

常用模块

Material Design

https://flutter.dev/images/favicon.png

Material是一个由开源代码支持的设计系统,可以帮助团队构建高质量的数字体验

Flutter实战

https://flutter.dev/images/favicon.png

Flutter实战

samples

https://flutter.dev/images/favicon.png

Flutter示例和演示的集合

flutter-go

https://img.alicdn.com/tfs/TB1OJkeHNYaK1RjSZFnXXa80pXa-229-229.png

flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档

Flutter-Notebook

https://flutter.dev/images/favicon.png

flutter相关功能demo的集合,它能够帮助您快速学习一些零碎的知识

plugins

https://flutter.dev/images/favicon.png

Flutter团队维护的Flutter插件

awesome-flutter

https://flutter.dev/images/favicon.png

很棒的清单,精选了最好的Flutter库,工具,教程,文章等

flutter-do

https://flutter.dev/images/favicon.png

330+Widgets在线查看预览和使用。

文档资料

flutter_wanandroid

https://flutter.dev/images/favicon.png

基于Google Flutter的WanAndroid客户端,支持Android和iOS。包括BLoC、RxDart 、国际化、主题色、启动页、引导页,拥有较好的项目结构&比较规范的代码

Best-Flutter-UI-Templates

https://flutter.dev/images/favicon.png

Best-Flutter-UI-模板, 对所有人完全免费。其内置的Flutter Dart。

其他

生态系统

Flutter

Python

是一种解释型、面向对象、动态数据类型的高级程序设计语言。

PyPi

使用Python软件包索引查找,安装和发布Python软件包

官方

PCU

python-check-updates, 检查 pip 当前依赖包最新版本

工具

生态系统

https://www.python.org/static/favicon.ico

requests

https://www.python.org/static/favicon.ico

requests是一个简单而优雅的HTTP库。

aiohttp

https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png

用于asyncio和Python的异步HTTP客户端/服务器框架

Scrapy

https://avatars2.githubusercontent.com/u/733635?s=200&v=4

一个用于Python的快速高级Web爬虫框架。

selenium

https://avatars0.githubusercontent.com/u/983927?s=200&v=4

浏览器自动化框架和生态系统。

beautifulsoup

可以从HTML或XML文件中提取数据的Python库

HTTP/爬虫

Pillow

友好的PIL前叉,是一个出色的图像处理库

图像

numpy

使用Python进行科学计算的基本软件包。

运算

pandas

https://avatars1.githubusercontent.com/u/21206976?s=200&v=4

功能强大的Python数据分析工具包

数据分析

rich

https://github.com/favicon.ico

Rich是一个Python库,用于在终端中提供富文本和精美的格式。

Fire

Python Fire是一个用于从绝对任何Python对象自动生成命令行界面(CLI)的库。

colorama

Python中简单的跨平台彩色终端文本

tqdm

https://avatars1.githubusercontent.com/u/12731565?s=200&v=4

适用于Python和CLI的快速,可扩展的进度栏

paramiko

领先的Python SSHv2协议库

click

Python可组合命令行界面工具包

CLI

JMESPath

https://github.com/favicon.ico

JMESPath是JSON的查询语言

其他

依赖包

https://www.python.org/static/favicon.ico

Django

https://avatars3.githubusercontent.com/u/27804?s=200&v=4

具有期限的完美主义者的Web框架。

flask

https://avatars0.githubusercontent.com/u/16748505?s=200&v=4

用于构建Web应用程序的Python微框架。

WEB框架

框架

https://www.python.org/static/favicon.ico

简明 Python 教程

https://www.python.org/static/favicon.ico

旨在于介绍如何使用 Python 语言进行编程的自由图书。它以教材与指南的形式为入门者介绍 Python 语言。如果你对电脑知识的了解仅限于如何保存文本文件的话,那这本书就是为你准备的。

书籍

https://www.python.org/static/favicon.ico

100天从新手到大师

https://www.python.org/static/favicon.ico

Python - 100天从新手到大师

Python 入门指南

https://www.python.org/static/favicon.ico

Python 入门指南

What the f*ck Python!

https://www.python.org/static/favicon.ico

一些有趣且鲜为人知的 Python 特性.

awesome-python-cn

https://www.python.org/static/favicon.ico

Python 资源大全中文版

cheatsheet

https://www.python.org/static/favicon.ico

Python大全备忘单

awesome-python

https://www.python.org/static/favicon.ico

精选的Python框架,库,软件和资源的精选清单。

文档资料

https://www.python.org/static/favicon.ico

参考资料

Python

segmentfault

https://cdn.segmentfault.com/v-5f64887f/global/img/touch-icon.png

是中文领域最大的技术问答交流社区平台

掘金

https://b-gold-cdn.xitu.io/favicons/v2/apple-touch-icon.png

一个帮助开发者成长的社区

DiyCode1

致力于构建开发工程师高端交流分享社区

黑客派

https://static.ld246.com/images/favicon.png

黑客派是程序员和设计师的聚集地,汇聚了严谨求实的工程师和富有创意的设计师

Node.js专业中文社区

国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究

吾爱破解

https://www.52pojie.cn/favicon.ico

吾爱破解关注PC软件安全和移动安全领域,致力于软件安全与病毒分析的前沿

FreeBuf

https://www.freebuf.com/favicon.ico

FreeBuf黑客与极客,国内关注度最高的全球互联网安全媒体平台

IMWeb

https://imweb.io/public/icon.png

Web前端 腾讯IMWeb 团队社区

Stack Overflow

https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a

全球最大的技术问答网站,是一个与程序相关的IT技术问答网站

React社区

https://reactjs.org/favicon.ico

React论坛社区

众成翻译

https://p1.ssl.qhimg.com/t010e845cdf71587354.png

中国最好的技术翻译社区,最懂译者的翻译平台,奇虎360最大前端团队“奇舞团”出品

MDN web docs

https://developer.mozilla.org/favicon.ico

Mozilla 开发者社区,是一个完整的学习平台,你可以在这里深入学习Web技术以及能够驱动Web的软件

DEV Community

https://dev-to.s3.us-east-2.amazonaws.com/favicon.ico

在这里程序员分享想法并帮助彼此成长

问答社区1

V2EX

https://www.v2ex.com/static/img/v2ex_192.png

创意工作者们的社区

知乎

https://static.zhihu.com/static/favicon.ico

知乎,中文互联网最大的知识分享和社交平台

简书

https://www.jianshu.com/favicon.ico

简书是一个创作社区,任何人均可以在其上进行创作

小专栏

https://images.xiaozhuanlan.com/assets/favicon-bd135558698197f509ada06695c03a4f458f0077fa476f9a4e7ba9664f3dc55f.ico

小专栏是一个专业人士的创作知识社区,在这里您可以看到各个领域最专业的专栏和观点

Hacker News

https://news.ycombinator.com/favicon.ico

Hacker News

程序员客栈

https://stacdn.proginn.com/favicon_new.ico

程序员客栈是领先的程序员自由工作平台,未来互联网企业用人方式。提供优秀程序员为您进行网站建设制作、测试运维服务、人工智能AI、大数据区块链、软件开发等优质服务

职Q

https://fecdn4.zhaopin.cn/zq/assets/logoIcon.7a3e67.png

智联招聘旗下专业的招聘求职社交问答平台,覆盖了求职、招聘、职业规划、升职加薪、面试技巧、工作经验分享等热门话 题,涉及各种行业职场问题,1.5亿用户的职场社区

煎蛋

http://cdn.jandan.net/static/img/appicon.png

煎蛋以译介方式传播网络新鲜资讯

其他

Github

https://github.githubassets.com/favicons/favicon.svg

面向开源及私有软件项目的托管平台

码云

https://gitee.com/favicon.ico

码云专为开发者提供稳定、高效、安全的云端软件开发协作平台

GitLab

https://about.gitlab.com/ico/apple-touch-icon-57x57.png

用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

Coding

https://dn-coding-net-production-static.codehub.cn/platform/favicon.ico

面向开发者的云端开发平台,提供 git/svn 代码托管,代码质量分析,在线WebIDE,项目管理...

代码托管

社区站点

社区站点

觅元素

http://www.51yuansu.com/favicon.ico

觅元素,为您提供免费设计元素,设计元素的资源站

千库网

https://js.588ku.com/comp/public/css/iconfont/favicon.ico

致力于为设计师提供最优质的素材

花瓣网

https://huaban.com/img/touch-icon-ipad.png

花瓣,陪你做生活的设计师

Dribbble

https://cdn.dribbble.com/assets/favicon-b38525134603b9513174ec887944bde1a869eb6cd414f4d640ee48ab2a15a26b.ico

Dribbble是展示和宣传,推广,发现和探索设计的地方

万素网

https://669pic.com/669pic.ico

万素网致力于为国内各行业设计师,网站编辑,新媒体工作人员提供免费png素材与背景图片服务

ArtStation

https://www.artstation.com/assets/favicon.ico

ArtStation是游戏,电影,媒体和娱乐艺术家的展示平台。它使艺术家能够以流畅的方式展示他们的作品集,发现和保持灵感,并与新的机会联系起来。

Design Templates - Canva

https://static.canva.com/static/images/favicon.ico

设计模板 - Canva

Unsplash

https://unsplash.com/favicon-32x32.png

美丽,免费的照片。由世界上最慷慨的摄影师社区赠送。

稿定设计

https://www.gaoding.com/favicon.ico

电商素材、新媒体配图、手机海报等。

unDraw

https://undraw.co/favicon-32x32.png

带有开源插图的设计项目,可满足您可以想象和创建的任何想法。 免费使用您的颜色创建漂亮的网站,产品和应用程序

UI中国用户体验设计平台

https://www.ui.cn/Public/img/favicon.ico

UI中国用户体验平台,中国用户体验联盟理事单位。国内极具影响力的设计平台之一。十多年来,携手会员150万+,共同致力于为设计师与企业搭建健康的设计生态!

GitHub Octodex

https://octodex.github.com/favicon.ico

由GitHub Design团队创建和维护的所有吉祥物素材

Collect UI

http://collectui.com/img/favicon.ico

从每日ui档案库及其他收集的每日灵感。 根据Dribbble拍摄的照片,手工挑选,每天更新

材料

icons8

https://icons8.cn/vue-static/landings/primary-landings/favs/icons8_fav_96%C3%9796.png

下载免费图标,音乐,素材图片,矢量,UX插图和视频音乐

vectorlogo

https://www.vectorlogo.zone/favicon.ico

3000多种精美的SVG徽标,非常适合您的自述文件或积分页面

shareicon

https://www.shareicon.net/favicon.ico

超过25万个icon免费集合

SVG Logos

超过1000+SVG Logos集合

iconfont

https://www.iconfont.cn/favicon.ico

阿里妈妈MUX倾力打造的矢量图标管理、交流平台

iconscount

https://iconscout.com/favicon.ico

免费下载图标,插图和库存照片

图标

创客贴

https://www.chuangkit.com/favicon.ico

一款简单易用、功能强大的线上图形设计工具

Ps Play

Ps Play - 移动设计零阻力

鹿班

https://g.alicdn.com/acca/resource/luban/image/favicon.png

鹿班 - 让设计更美好(阿里出品)

fontspace

https://www.fontspace.com/android-chrome-192x192.png?v=00Bdv4Q5g6

6500+免费字体下载

工具

Color Hunt

https://colorhunt.co/img/color-hunt-icon-ios.png

Color Hunt是一个免费开放的平台,可通过数千种精选的时尚调色板来激发色彩灵感

配色

Design

Design

Docker — 从入门到实践

https://github.com/favicon.ico

Docker — 从入门到实践

Docker官方映像文档

https://github.com/favicon.ico

docker-library中的Docker官方映像文档

Docker Hub

https://avatars2.githubusercontent.com/u/7739233?s=200&v=4

Docker 镜像仓库

Docker-Compose

https://avatars2.githubusercontent.com/u/7739233?s=200&v=4

使用Docker定义和运行多容器应用程序

Docker

git-manual

https://github.com/favicon.ico

Git常用命令参考手册 (推荐学习)

GitHub Docs

https://github.com/favicon.ico

github 官方帮助文档

awesome-actions

https://github.com/favicon.ico

精选的GitHub上很棒的Action列表

Github - Actions

https://github.com/favicon.ico

Github 官方Actions 资源列表

growing-up

https://github.com/favicon.ico

程序猿成长计划

Git

nginx

https://avatars0.githubusercontent.com/u/1412239?s=200&v=4

nginx参考文档

Nginx开发从入门到精通

https://avatars0.githubusercontent.com/u/1412239?s=200&v=4

Nginx开发从入门到精通

服务器

redis

https://avatars3.githubusercontent.com/u/1529926?s=200&v=4

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构

MySQL

https://labs.mysql.com/common/themes/sakila/favicon.ico

MySQL数据库服务是一个完全托管的数据库服务,可使用世界上最受欢迎的开源数据库来部署云原生应用程序。 它是百分百由MySQL原厂开发,管理和提供支持

数据库

免费的编程中文书籍索引

https://avatars1.githubusercontent.com/u/14127308?s=200&v=4

免费的编程中文书籍索引

Zlibrary

https://zh.b-ok.global/apple-touch-icon.png

Z-Library 项目部分. 全球最大的数字图书馆, 电子书

IT-eBOOK

IT类技术书籍PDF

Refactoring.Guru

https://refactoringguru.cn/favicon.ico

22种常用设计模式

书籍

Linux 常用命令参考手册

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/linux/linux.png

Linux 常用命令参考手册

developer-roadmap

https://github.com/favicon.ico

2020年成为网络开发人员的路线图

Devhints

https://devhints.io/assets/favicon.png

WEB开发速查表,mysql/go/java/js/bash/react/git...

linux-command

https://wangchujiang.com/linux-command/img/favicon.ico

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集

learn-regex

https://github.com/favicon.ico

正则表达式学习

the-art-of-command-line

https://github.com/favicon.ico

命令行的艺术

Peter Beverloo

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/chrome/chrome.png

Chrome浏览器命令参数参考手册

vimrc

https://avatars2.githubusercontent.com/u/11618545?s=200&v=4

vim配置参考手册

Jenkins

https://www.jenkins.io/zh/sites/default/files/jenkins_favicon.ico

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要

learnxinyminutes-docs

https://learnxinyminutes.com/favicon.ico

在Y分钟内学习X

Vscode Docs

https://code.visualstudio.com/apple-touch-icon.png

Vscode 扩展开发文档

YAML教程

YAML教程

Chrome Extension

https://www.google.com/images/icons/product/chrome-32.png

谷歌浏览器扩展插件开发文档

其他文档

参考文档

菜鸟教程

https://static.runoob.com/images/icon/mobile-icon.png

提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程

慕课网

https://www.imooc.com/static/img/common/touch-icon-ipad.png

慕课网-程序员的梦工厂

极客学院

https://www.jikexueyuan.com/favicon.ico

致力于“让IT学习更有效”,以实战为特色,为注重自我提升的IT从业者提供高品质职业教育

腾讯课堂

https://9.idqqimg.com/edu/edu_modules/edu-ui/img/nohash/favicon.ico

腾讯课堂 - 专业的在线教育平台

i春秋

https://static2.ichunqiu.com/icq/resources/images/favicon.ico

【i春秋】-专注网络安全_信息安全_白帽子的在线学习_教育_培训平台

实验吧

http://www.shiyanbar.com/favicon.ico

实验吧是国内最大的在线虚拟机实验IT教育平台

合天网安实验室

https://www.hetianlab.com/img/ico/favicon.ico

合天网安实验室是支持在线实验的信息安全学习的大型服务平台

网易云课堂

https://study.163.com/favicon.ico

网易云课堂 - 领先的实用技能学习平台

蓝桥

https://study.163.com/favicon.ico

蓝桥是国内领先的IT在线编程及在线实训学习平台,专业导师提供精选的实践项目,创新的技术使得学习者无需配置繁琐的本地环境,随时在线流畅使用

W3Cschool

https://7n.w3cschool.cn/statics/images/favicon.ico?v=2.2

编程狮,是一个专业的W3C前端开发及编程入门学习平台

7yue个人导航

教程相关

LeetCode

https://static.leetcode-cn.com/cn-assets/icons/favicon-96x96.png

提高你的编码技能,快速找到一份工作。这是扩展你知识和为下一次面试做好准备的最佳地方。

牛客网

https://www.nowcoder.com/favicon.ico

牛客网是互联网求职神器,C++、Java、前端、产品、运营技能学习/备考/求职题库

CS-Notes

https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/LogoMakr_1J56bI.png

技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计、Java、Python、C++

数据结构和算法动态可视化

https://visualgo.net/img/favicon.png

数据结构和算法动态可视化

algorithm-pattern

https://github.com/favicon.ico

算法模板,最科学的刷题方式,最快速的刷题路径,你值得拥有~

面试刷题

面试刷题

学无止境

乌云网镜像

WooYun是一个位于厂商和安全研究者之间的漏洞报告平台,注重尊重,进步,与意义

安全联盟

https://www.anquan.org/aq_static/images/favicon/favicon.ico

安全联盟 - 国内最大的第三方网络安全数据共享交换平台

360网站安全检测

https://www.360.cn/favicon.ico

为站长免费提供了网站漏洞检测、网站漏洞修复、网站后门检测、木马查杀,网址安全查询等服务

红黑联盟

https://www.2cto.com/favicon.ico

红黑联盟作为老牌的信息安全网站,致力于培训电脑技术高手.网站集网络安全,系统网络,编程开发,网站建设等频道于一体

知道创宇

https://www.knownsec.com/static/favicon.ico

知道创宇,网络空间安全专家,长期致力于为政府、企业类客户提供完善的云安全解决方案

安全周

关注安全资讯 专注资源共享

全球被黑站点统计系统

https://www.hacked.com.cn/favicon.ico

主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据...

安全脉搏

https://www.secpulse.com/favicon.ico

高质量的全球互联网安全媒体和技术平台,安全爱好者们交流与分享前沿安全技术的最佳社区

网络安全

XSS-CTF

http://xss.xiejiahe.com/favicon.png

XSS-CTF 是一个练习和入门的XSS平台, 每一位WEB工程师都应具备的基础知识,提高网络安全意识

XSS测试

XSS小游戏

Pasteurize

XSS CTF

CTF

fiddler

https://www.telerik.com/favicon.ico

Fiddler是一个用于HTTP调试的代理服务器应用程序

wireshark

https://www.wireshark.org/assets/images/favicon.ico

是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换

XSS平台-白帽安全测试

XSS平台是一个免费给白帽安全测试的平台

Security Headers

快速轻松地评估HTTP响应头的安全性

w9scan

一款全能型的网站漏洞扫描器,内置1200+插件可对网站进行一次规模的检测,功能包括但不限于web指纹检测、端口指纹检测、网站结构分析、各种流行的漏洞检测、爬虫以及SQL注入检测、XSS检测...

xray

https://avatars0.githubusercontent.com/u/7302766?s=200&v=4

xray 安全评估工具

cmd5

https://www.cmd5.com/favicon.ico

md5在线解密破解,md5解密加密

sqlmap

https://avatars3.githubusercontent.com/u/735289?s=200&v=4

自动SQL注入和数据库接管工具

nmap

https://avatars2.githubusercontent.com/u/63385?s=200&v=4

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端

xssor

http://xssor.io/s/favicon.ico

编码/解码,Codz,探针

在线子域名查询

https://phpinfo.me/favicon.ico

在线子域名查询

fuzzDicts

Web Pentesting Fuzz 字典

BurpSuitePro

免费的BurpSuitePro版本

辅助工具

Vulhub

https://vulhub.org/img/favicon.ico

基于docker和docker-compose的漏洞环境集合...

SRC-experience

工欲善其事,必先利其器,一些src挖掘奇技淫巧,国外新技术的学习网站分享

Intranet_Penetration_Tips

内网渗透TIPS

知识/测试

网络安全

网络安全

百度统计

https://tongji.baidu.com/favicon.ico

全球最大的中文网站流量分析平台,帮助企业收集网站访问数据,提供流量趋势、来源分析...

CNZZ

https://www.umeng.com/favicon.ico

CNZZ数据专家是全球最大的中文网站统计分析平台,为各类网站提供免费、安全、稳定

百度搜索资源平台

https://www.baidu.com/img/baidu.svg

百度搜索资源平台_让网站更具价值

问卷星

https://www.wjx.cn/favicon.ico

免费使用问卷星创建问卷调查、在线考试、360度评估等应用

金数据

https://gd-assets.jinshujucdn.com/favicon.ico

金数据是人人可用的在线表单工具,帮助用户收集和管理日常工作中的数据,提升工作效率

Google Analytics

https://ssl.gstatic.com/analytics/20201013-01/app/static/analytics_standard_icon.png

Google Analytics是一个收集数据并将其分析整理成实用报告的平台

腾讯移动分析

https://mta.qq.com/mta/resource/imgcache/images/favicon.ico

腾讯移动分析是腾讯数据云,腾讯大数据战略的核心产品,提供app应用的移动统计分析,支持android/iOS平台,实现用户画像、数据可视化、数据挖掘、渠道效果分析等综合数据服务

Google Adsense

https://www.google.com/favicon.ico

Google Adsense

运营相关

运营相关

运营相关

凹凸实验室

https://aotu.io/img/favicon-48x48.png

O2面向多终端技术体系,致力于构建沉淀与分享包括但不限于交互、页面制作技巧...

腾讯IMWeb

https://imweb.io/public/icon.png

Web前端 腾讯IMWeb 团队社区

字节跳动技术博客

https://avatars1.githubusercontent.com/u/4158466?s=200&v=4

字节跳动技术博客

淘系前端团队

https://fed.taobao.org/favicon.ico

用技术为体验提供无限可能

有赞技术团队

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

有赞技术团队

Team

阮一峰的网络日志

http://www.ruanyifeng.com/favicon.ico

阮一峰的网络日志

谢家和的博客

https://www.xiejiahe.com/favicon-128x128.png

WEB Developer

王垠的博客

https://www.yinwang.org/images/Yc.jpg

当然我在扯淡

Dan

https://overreacted.io/favicon.ico

react作者的博客

个人博客

博客看点

博客看点

- + diff --git a/index.html b/index.html index 290066250..662206d62 100644 --- a/index.html +++ b/index.html @@ -32,8 +32,8 @@ - 发现导航 - 精选实用导航网站 - + 7yue个人导航 + @@ -43,22 +43,15 @@ - -
- - - -
- + +
......
-
-

Github-CLI

https://github.githubassets.com/favicons/favicon.svg

GitHub的官方命令行工具

Coveralls

https://coveralls.io/favicon.png

通过显示测试套件未涵盖代码的哪些部分,我们可以帮助您自信地交付代码。免费提供开源软件库

Releasly

在新的开源版本发布时收到通知,直接发送到您的电子邮件中。

Convert cURL

将curl命令转换为Python,JavaScript,PHP,R,Go,Rust,Dart,JSON,Ansible,Elixir。

Supervisor

Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的多个进程。

SonarQube

https://www.sonarqube.org/favicon-152.png

代码质量和安全性检查, 支持所有开发人员编写更干净,更安全的代码。

Pastebin

https://paste.ubuntu.com/favicon.ico

在线共享代码,将代码以URL形式发送以便查看

UPX

https://avatars2.githubusercontent.com/u/30217756?s=200&v=4

UPX-可执行文件的终极打包器

askgit

https://avatars2.githubusercontent.com/u/30217756?s=200&v=4

使用SQL查询git存储库。生成报告,执行状态检查,分析代码库。

Sentry

https://avatars3.githubusercontent.com/u/1396951?s=200&v=4

Web应用程序,移动应用程序和游戏的实时崩溃报告。

randomuser

https://randomuser.me/favicon.ico

随机用户生成器是用于生成占位符用户信息的免费API。 获取个人资料照片,姓名等。 对于人们来说,就像Lorem Ipsum。

github-readme-stats

https://camo.githubusercontent.com/ebfdd465daa90626d0ab0d0fddc0e457c942a392/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f616e7572616768617a72612f696d6167652f75706c6f61642f76313539343930383234322f6c6f676f5f636373776d652e737667

在你的 README 中 获取动态生成的 GitHub 统计信息

Hits

https://i.imgur.com/zBEQq4w.png

了解有多少人正在查看您的GitHub项目的简单方法

GitHub 文件加速

GitHub 文件加速

Shields IO

svg生成版本号图标

FunDebug

https://www.fundebug.com/favicon.ico

支持前端JavaScript,后端Node.js以及微信小程序错误监控

Asciiworld

http://www.asciiworld.com/favicon.ico

WA!原来那些年程序猿搞怪的注释都在这里

jsfiddle

https://jsfiddle.net/img/favicon.png

强大的前端代码在线演示的网站

CODEIF

https://user-images.githubusercontent.com/799578/50462941-8075fe80-09c3-11e9-89e7-af0cb7991406.png

变量命名神器

ASCIIFlow Infinity

http://asciiflow.com/images/favicon.png

无限的ASCII图表,保存到谷歌驱动器,调整大小,自由绘制,并直接输出到文本/HTML。

gitzip

https://kinolien.github.io/gitzip/images/gitzip.png

它可以将GITHUB存储库的子文件夹/子目录作为zip并下载

Server酱

http://sc.ftqq.com/static/image/favlogo.png

「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。

mkcert

一个简单的零配置工具,可以使用您喜欢的任何名称制作本地可信赖的SSL开发证书

carbon

https://carbon.now.sh/favicon.ico

创建和分享源代码的精美图像

setup-ipsec-vpn

用于构建您自己的IPsec VPN服务器的脚本,在Ubuntu,Debian和CentOS上使用IPsec / L2TP和Cisco IPsec

nginxconfig

https://www.digitalocean.com/favicon.ico

nginx配置生成器

GraphQL Explorer

GraphQL资源管理器利用真实的、实时的生产数据

patorjk

将文本转换成ASCII

lens

https://avatars0.githubusercontent.com/u/62133242?s=200&v=4

Lens控制Kubernetes集群所需的唯一IDE。它是适用于MacOS,Windows和Linux操作系统的独立应用程序。它是开源的,免费的。

public-apis

一些可用在 Web 或软件开发的开放 API 接口

astexplorer

https://astexplorer.net/favicon.png

一个Web工具,用于探索由各种解析器生成的AST

uTools

http://www.u.tools/assets/img/brand/favicon.png

uTools是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合

ihateregex

https://ihateregex.io/favicon.ico

正则表达式备忘录

Oh My ZSH

https://avatars3.githubusercontent.com/u/22552083?s=200&v=4

是一个开放源代码,社区驱动的框架,用于管理zsh配置。

Tampermonkey

https://tampermonkey.freetls.fastly.net/images/icon144.png

一款免费的浏览器扩展和最为流行的用户脚本管理器

Greasy Fork

提供用户脚本的网站

免费代理

https://img.kuaidaili.com/img/favicon.ico?v=3

免费HTTP代理IP

Google Workspace

https://avatars2.githubusercontent.com/u/1342004?s=200&v=4

Google Workspace状态信息中心

开发神器

发现导航 - 精选实用导航网站

eoLinker接口管理平台

https://www.eolinker.com/assets/images/favicon.ico

国内最大的在线接口管理服务方案供应商

YApi

https://avatars2.githubusercontent.com/u/19645609?s=200&v=4

YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台

RAP2

http://rap2.taobao.org/favicon.png

Web接口管理工具,开源免费,接口自动化,MOCK数据自动生成,自动化测试,企业级管理。阿里妈妈MUX团队出品

showdoc

https://www.showdoc.cc/static/logo/b_64.png

一个非常适合IT团队的在线API文档、技术文档工具

docsify

https://avatars3.githubusercontent.com/u/40133106?s=200&v=4

一个神奇的文档站点生成器

apiDoc

https://avatars2.githubusercontent.com/u/4103663?s=200&v=4

RESTful Web API文档生成器

docusaurus

https://avatars2.githubusercontent.com/u/69631?s=200&v=4

易于维护的开源文档网站

禅道

https://www.zentao.net/favicon.ico

禅道是灵活的项目管理软件

Tapd

https://www.tapd.cn/favicon.ico

一站式敏捷研发协作云平台, 凝聚腾讯研发方法及敏捷实践精髓, 助力企业研发更高效、协作更敏捷

Hoppscotch

https://avatars2.githubusercontent.com/u/56705483?s=200&v=4

一个免费,快速,美观的API请求构建器,供10万多个开发人员使用。(原名叫 Postwoman)

接口/开发文档管理

发现导航 - 精选实用导航网站

Sunny-Ngrok

一条命令解决的外网访问内网问题,无需任何配置,下载客户端之后直接一条命令让外网访问您的内网不再是距离

frp

一个快速反向代理,可帮助您将NAT或防火墙后面的本地服务器暴露给Internet。

zan-proxy

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

本地代码调试线上页面,环境再也不是问题

ngrok

https://ngrok.com/static/img/favicon.png

ngrok是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,便于后期分析和重放

内网穿透/代理

发现导航 - 精选实用导航网站

查MD5

http://www.chamd5.org/favicon.ico

MD5在线解密|md5在线破解|批量破解md5网站

JSON Web Tokens

https://jwt.io/img/favicon/apple-icon-76x76.png

jwt 在线解码

base64

http://www.xpcha.com/favicon.ico

base64在线解码编码

编码/解码

发现导航 - 精选实用导航网站

ipify

https://www.ipify.org/static/images/favicon-96x96.png

一个简单的公共IP地址API

归属地查询

淘宝免费归属地查询

免费公开API

发现导航 - 精选实用导航网站

开发相关

发现导航 - 精选实用导航网站

draw

https://www.draw.io/images/apple-touch-icon.png

免费的在线图表软件,用于制作流程图、流程图、组织图、UML、ER和网络图

ProcessOn

https://www.processon.com/favicon.ico

免费在线作图工具,UML作图,UI界面原型设计,iOS原型设计,BPMN,流程图,思维导图,多人协作绘图

蓝湖

https://lhcdn.lanhuapp.com/web/static/favicon.ico

蓝湖是一款设计图共享平台,帮助互联网团队管理设计图

Zeplin

https://zeplin.io/img/favicon/228x228.png

为设计师和前端而生的协作应用

幕布

https://mubu.com/favicon.ico

极简大纲笔记 | 一键生成思维导图

声享

https://p.ssl.qhimg.com/t01a54d9106629dda0e.png

在线制作 PPT,让分享更有价值

墨刀

https://modao.cc/images/logo.png

原型设计工具,web原型设计工具,app原型设计工具

小智LOGO

https://xzlogo.com/static/images/favicon-16x16.png?v2

LOGO在线制作神器 - 3分钟完成LOGO设计在线生成

创客贴

https://www.chuangkit.com/favicon.ico

一款简单易用、功能强大的线上图形设计工具

在线制作图表

https://cdn.jifo.co/favicon/favicon.ico

信息图表是一种易于使用的信息图表和图表制造商。创建和分享美丽的信息图表,在线报告和互动地图。在这里做你自己

CLIPPING MAGIC

删除图像背景在线。使背景透明,白色等编辑,裁剪,旋转,固定颜色,添加阴影,一款在线抠图工具

稿定抠图

https://koutu.gaoding.com/favicon.ico

稿定设计是一款专为淘宝店主、新媒体运营人员和修图爱好者打造的免费在线抠图工具。

UZER.ME

https://uzer.me/favicon.ico

超级应用空间致力于全生命周期的文档管理,无需安装,即可在线编辑Office, CAD,PS等任意格式文档,支持远程协作,全文检索,版本管理,权限管理,安全外发等.提高工作效率,降低安全风险

launchaco

https://www.launchaco.com/static/favicon.ico

免费在线制作LOGO

鹿班

https://g.alicdn.com/acca/resource/luban/image/favicon.png

鹿班 - 让设计更美好(阿里出品)

图片裁剪

https://www.yasuotu.com/favicon.ico

在线裁剪照片大小尺寸

设计相关

发现导航 - 精选实用导航网站

设计相关

发现导航 - 精选实用导航网站

Bitwarden

https://bitwarden.com/images/icons/favicon-32x32.png

个人和企业在任何设备上存储,共享和保护敏感数据的最简单,最安全的方法

Typeora

https://typora.io/img/favicon-48.png

Typora是一款跨平台的最小Markdown编辑器,可为Markdown读者和作家提供无缝的体验

iterm2

https://www.iterm2.com/favicon.ico

iTerm2是Terminal的替代品,是iTerm的后续产品

Sourcetree

https://www.sourcetreeapp.com/assets/img/favicons/sourcetree/favicon-32x32.png

美丽的Git GUI中的简单性和强大功能

charles

https://www.charlesproxy.com/static/img/icon.8b97278f.png

Charles是HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。

Tunnelblick

https://tunnelblick.net/favicon.ico

适用于macOS的免费开源OpenVPN VPN客户端服务器软件。

Keka

https://www.keka.io/img/Keka-120x120.png

macOS文件存档器, 储存更多,私密分享

Kap

https://getkap.co/static/favicon/kap.ico

使用Web技术构建的开源屏幕录像机。

Vscode

https://code.visualstudio.com/apple-touch-icon.png

VScode是一款轻量级的编辑器,自由。 建立在开源上。 无处不在。

zenmap

https://nmap.org/shared/images/tiny-eyeicon.png

开源免费的网络发现工具,通过它能够找出网络上在线的主机,并测试主机上哪些端口处于监听状态,接着通过端口确定主机上运行的应用程序类型与版本信息,最后利用它还能侦测出操作系统的类型和版本

obsproject

https://obsproject.com/favicon-32x32.png

免费和开源软件,用于视频录制和实时流。

hyper

https://avatars1.githubusercontent.com/u/14985020?s=200&v=4

基于WEB技术的终端

Listary

https://www.listary.com/wp-content/themes/listary5/images/favicon.ico

Listary是Windows的革命性搜索实用程序,它使休闲用户和高级用户都能快速找到文件并启动应用程序!

GUI

发现导航 - 精选实用导航网站

vmware

https://www.vmware.com/favicon.ico

利用VMware提供的软件定义的云,移动性,网络和安全解决方案来建立您的数字基础。

parallels

https://www.parallels.cn/typo3conf/ext/prls_theme/Resources/Public/theme/res/img/favicon/favicon.png

Mac和Windows虚拟化|管理Mac|VDI和RDS解决方案

mumu Android模拟器

http://mumu.163.com/favicon.ico

网易MuMu[手游模拟器][安卓模拟器]

虚拟机

发现导航 - 精选实用导航网站

DBeaver

https://avatars3.githubusercontent.com/u/34743864?s=200&v=4

适用于开发人员,数据库管理员,分析师和所有需要使用数据库的人员的免费的多平台数据库工具。支持所有流行的数据库:MySQL,PostgreSQL,SQLite,Oracle,DB2,SQL Server,Sybase,MS Access,Teradata,Firebird,Apache Hive,Phoenix,Presto等

RedisDesktopManager

https://redisdesktop.com/static/css/favicon.png

Redis Desktop Manager(又名RDM)—是用于Windows,Linux,MacOS和iPadOS的快速Redis数据库管理应用程序。

Sequel Pro

https://sequelpro.com/favicon/favicon-32x32.png

Sequel Pro是一个快速,易于使用的Mac数据库管理应用程序,用于处理MySQL数据库。

Robo 3T

https://robomongo.org/static/favicon-11ace079.ico

一个现代,强大且由社区驱动的MongoDB管理工具

DataGrip

https://www.jetbrains.com/favicon-32x32.png

jetbrains出品的数据库管理系统

tableplus

https://tableplus.com/resources/favicons/apple-icon-57x57.png

用于关系数据库的现代,本地且友好的GUI工具:MySQL,PostgreSQL,SQLite等

数据库

发现导航 - 精选实用导航网站

TeamViewer

https://www.teamviewer.cn/wp-content/themes/tv-wordpress-theme/dist/media/favicon.png

TeamViewer远程连接控制软件是一款随时随地连接到远程桌面电脑、移动设备及Iot,让远程连接过程更加的快速和安全,轻松实现对文件、网络及程序的实时支持或访问。

向日葵

https://sunlogin.oray.com/favicon.ico

向日葵远程控制软件是一款免费的集远程控制电脑手机、远程桌面连接、远程开机、远程管理、支持内网穿透的一体化远程控制管理工具软件

远程控制

发现导航 - 精选实用导航网站

v2ray

https://avatars0.githubusercontent.com/u/14110142?s=200&v=4

用于构建代理绕过网络限制的平台。

clash

https://github.com/Dreamacro/clash/raw/master/docs/logo.png

Go中基于规则的隧道

飞机场

发现导航 - 精选实用导航网站

GUI软件

发现导航 - 精选实用导航网站

哔哩哔哩

https://www.bilibili.com/favicon.ico

国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主

爱奇艺

https://www.iqiyipic.com/common/images/PCW-114x114.png

拥有海量、优质、高清的网络视频的大型视频网站,专业的网络视频播放平台

Youtube

https://www.youtube.com/favicon.ico

全球最大的视频网站

斗鱼

https://www.douyu.com/favicon.ico

斗鱼 - 每个人的直播平台

疯狂影视搜索

https://cdn.jsdelivr.net/gh/txxxjs/fk/ifkdy/2020-03-16/favicon.ico

疯狂影视搜索是一款全能影视搜索引擎,帮你找到最新影视资源,一站拥有无尽影视资源

全民vip视频在线解析

http://www.qmaile.com/favicon.ico

免费全网VIP视频会员免广告看电影!优酷vip解析,爱奇艺vip解析,腾讯vip解析,乐视vip解析,芒果vip解析

蜜蜂剪辑

https://qncdnimg.aoscdn.com/local/beecut.cn/img/favicon.png

免费在线视频剪辑、视频制作、视频剪切、视频转gif等实用功能

kk高清影院

kk高清影院,1080p电影下载,高清电影迅雷下载,免费高清电影网

影视

发现导航 - 精选实用导航网站

自由的音乐

自由的音乐是一个免费试听并下载全网音乐的网站

音乐

发现导航 - 精选实用导航网站

影视/音乐

发现导航 - 精选实用导航网站

智联招聘

https://www.zhaopin.com/favicon.ico

智联招聘,更懂你的价值

前程无忧

https://www.51job.com/favicon.ico

招聘网,人才网,求职,找工作

BOSS直聘

https://www.zhipin.com/favicon.ico

BOSS直聘是权威领先的招聘网,开启人才网招聘求职新时代,让求职者与Boss直接开聊、加快面试、即时反馈,找工作就来BOSS直聘和Boss开聊吧

招聘/求职

发现导航 - 精选实用导航网站

ResumeSample

程序员简历模板系列, WEB/IOS/Android/C++/node等以及通用程序员简历模板

程序员找工作黑名单

http://coder.shengxinjing.cn/logo.ico

有些事情,应该被记住

看准网

https://www.kanzhun.com/favicon.ico

看准网★中国领先的职场信息平台,专注于公司评论,晒工资,工资待遇,面试,公司福利等.您可以在看准网上匿名分享您的职业信息

其他

发现导航 - 精选实用导航网站

招聘/求职

发现导航 - 精选实用导航网站

TinyPNG

https://tinypng.com/images/apple-touch-icon.png

智能PNG和JPEG压缩,以质量和文件大小的完美平衡来优化您的图像

Squoosh

https://squoosh.app/assets/favicon.ico

在浏览器中用不同的编解码器压缩和比较图像(Google出品)

压缩工具

发现导航 - 精选实用导航网站

草料二维码

https://static.clewm.net/static/images/favicon.ico

用专业的二维码产品帮助企业创造价值

Feed 验证器

验证RSS是否符合标准规范

淘捏捏

https://www.taonienie.com/favicon.ico

淘宝信誉查询 - 淘捏捏卖家工具箱 淘宝信誉查询_淘宝信用查询_淘宝小号查询_淘宝黑号查询

天眼查

https://www.tianyancha.com/favicon.ico

人人都在用商业安全工具_企业信息查询_公司查询_工商查询_企业信用信息查询系统

语雀

https://yuque.com/favicon.ico

优雅高效的在线文档编辑与协同工具,让每个企业轻松拥有文档中心 - 阿里巴巴

求是潮云U盘

https://www.qsc.zju.edu.cn/box/favicon.ico

临时文件上传, 快速和稳定

云转换

https://www.360converter.com/images/favicon.ico

在线免费转换视频,音频,YouTube视频到文字,视频到文字,音频到文字,语音转换成文字

Picdiet

https://www.picdiet.com/css/favicon.ico

独特且强悍的JavaScript算法,能极速压缩80%的图片大小,而不损害其质量

easyicon

https://cdn-img.easyicon.net/favicon.ico

在线图标转换ico、icns

Smallpdf

https://smallpdf.com/favicon.png

压缩pdf、各种文件格式转换pdf

Cool Backgrounds

https://coolbackgrounds.io/images/favicon-fe5a0ff5.png

生成非常酷的彩色背景图像

Unsplash Source

https://source.unsplash.com/favicon-32x32.png

随机生成图片链接

石墨文档

https://assets.smcdn.cn/from_qbox/favicon.ico

一款轻便、简洁的在线协作文档工具,PC端和移动端全覆盖,支持多人同时对文档编辑和评论...

Emoji searcher

https://emoji.muan.co/appicon.png

Emoji表情大全

imgURL

https://imgurl.org/favicon.ico

ImgURL是一个简单、纯粹的图床程序,让个人图床多一个选择

拷贝兔

https://f0cdn.anyknew.com/web/img/icons/favicon-32x32.png

跨平台分享工具,纯Web,IOS,MAC,Linux,Android互传

表格工具

https://tableconvert.com/static/images/favicon.png

一个功能强大的在线表格编辑器,支持Excel、Markdown、JSON、CSV、HTML等格式的相互转换

360查字体

https://p2.ssl.qhimg.com/t014de4ba13ada26743.png

360查字体 - 查版权,免纠纷

sejda

https://www.sejda.com/images/icon_128.png

在线HTML转换pdf

AI人工智能图片放大

https://bigjpg.com/static/css/touch-icon-iphone.png

Bigjpg - 使用开源waifu2x人工智能深度卷积神经网络(CNN)智能无损免费放大图片

VVV文档在线导出工具

免费下载百度文库文档

在线文件编码识别

http://tools.bugscaner.com/static/images/favicon.ico

在线文件编码识别

iptv

http://tools.bugscaner.com/static/images/favicon.ico

收集来自世界各地的5000多个公共IPTV频道

临时邮箱

https://www.linshiyouxiang.net/public/zh-CN/img/favicon.ico

10分钟邮箱,临时邮箱,临时邮,临时电子邮箱,24小时邮箱,一次性邮箱,匿名邮箱,安全邮箱

辅助工具

发现导航 - 精选实用导航网站

其他

发现导航 - 精选实用导航网站

实用工具

发现导航 - 精选实用导航网站

jQuery

https://jquery.com/jquery-wp-content/themes/jquery.com/i/favicon.ico

jQuery是一个JavaScript函数库

webpack

https://www.webpackjs.com/assets/favicon.ico

webpack是一个模块打包器

Babel

https://babeljs.io/img/favicon.png

用于编写下一代 JavaScript 的编译器

ESLint

https://cn.eslint.org/img/favicon.512x512.png

可组装的JavaScript和JSX检查工具

stylelint

https://avatars3.githubusercontent.com/u/10076935?s=200&v=4

一个强大的现代样式风格的linter

Mocha

https://avatars0.githubusercontent.com/u/8770005?s=200&v=4

Mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行

MUI

https://avatars1.githubusercontent.com/u/5485517?s=200&v=4

MUI: 最接近原生APP体验的高性能前端框架

rollup

https://avatars0.githubusercontent.com/u/12554859?s=200&v=4

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序

standard

https://avatars1.githubusercontent.com/u/29208316?s=200&v=4

JavaScript样式指南,带有linter和自动代码修复程序

JavaScript

发现导航 - 精选实用导航网站

Faker

https://github.com/favicon.ico

在Node.js和浏览器中生成大量逼真的假数据

sweetalert

JavaScript Alert 的漂亮替代品

Sortable

https://avatars0.githubusercontent.com/u/17040762?s=200&v=4

一个JavaScript库,用于在现代浏览器和触摸设备上对拖放列表进行重新排序

formilyjs

Formily 是一个由阿里巴巴集团多 BU 共建的面向中后台复杂场景的表单解决方案,它也是一个表单框架

rough-notation

https://roughnotation.com/images/fav.png

一个小的JavaScript库,用于在网页上创建手绘动画并为其添加动画效果

AntV

https://avatars3.githubusercontent.com/u/19199542?s=200&v=4

AntV 是蚂蚁金服全新一代数据可视化解决方案

Lodash

https://www.lodashjs.com/icons/favicon-32x32.png

Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库

Swiper

https://www.swiper.com.cn/favicon.ico

轻量级的移动设备触控滑块的js框架,使用硬件加速过渡

fastclick

Polyfill 解决移动端具有300ms延迟的库

Layer

丰富多样的Web弹出层组件,可轻松实现Alert/Confirm/Prompt/普通提示/页面区块/iframe/tips等等几乎所有的弹出交互

moment.js

https://momentjs.com/static/img/moment-favicon.png

一个轻量级的JavaScript日期库,用于解析,验证,操作和格式化日期

js-cookie

一个简单,轻量级的JavaScript API,用于处理浏览器cookie

qs

具有嵌套支持的查询字符串解析器

Mock.js

生成随机数据,拦截 Ajax 请求

GITALK

https://gitalk.github.io/favicon.ico

凹凸实验室出品的一款基于 Github Issue 和 Preact 开发的评论插件

prism

https://prismjs.com/assets/favicon.png

轻巧,强大,优雅的代码语法高亮

nprogress

顶部加载进度条

iNotify

JS实现浏览器标题闪烁,滚动,语音提示,Chrome/Safari/FireFox/IE通知

html2canvas

最流行的JavaScript屏幕截图

dayjs

使用与Moment.js兼容的API来解析,验证,操作和显示现代浏览器的日期和时间

JsBarcode

易于使用但功能强大的条形码生成器,适用于Web和Node.js

clipboard.js

现代复制到剪贴板。没有Flash。只需3kb gzipped。

lib-flexible

可伸缩布局方案, 淘宝rem解决方案

js-xss

根据白名单过滤HTML(防止XSS攻击)

mescroll

精致的下拉刷新和上拉加载 js框架.支持vue,完美运行于移动端和主流PC浏览器

better-scroll

灵感来自iscroll,它具有更好的滚动性能

pinyinjs

一个实现汉字与拼音互转的小巧web工具库

ms

使用此包可以轻松地将各种时间格式转换为毫秒。

ramda

https://avatars2.githubusercontent.com/u/5298359?s=200&v=4

适用于JavaScript程序员的实用函数库

decimal.js

JavaScript的任意精度Decimal类型 (0.1+0.2=0.3)

copy-to-clipboard

简单的模块公开copy功能,它将尝试使用execCommand与特定于IE的clipboardData接口的回退,最后,通常prompt使用适当的文本内容和消息

path-to-regexp

将字符串路径转换成正则表达式

autosize

autosize是一个小的独立脚本,可以自动调整textarea域的高度以适合文本

shake.js

监听手机设备摇动

progressbar

可以轻松地为Web创建响应式和时尚的进度栏。动画即使在移动设备上也表现良好

easy-mock

https://avatars0.githubusercontent.com/u/28626637?s=200&v=4

Easy Mock 是一个可视化,并且能快速生成模拟数据的持久化服务

Clamp.js

https://joe.sh/assets/images/favicon.ico

JS版本的多行文本溢出省略

json-bigint

带有bigints支持的JSON.parse / stringify

exif-js

用于读取EXIF图像元数据的JavaScript库

lunr.js

Lunr.js是一个用于浏览器的小型全文本搜索库。它为JSON文档建立索引,并提供一个简单的搜索界面来检索与文本查询最匹配的文档

hotkeys

强大的Javascript库,用于捕获键盘输入和输入的按键组合。它没有依赖性。

dom-to-image

使用HTML5 canvas从DOM节点生成图像

single-spa

https://avatars1.githubusercontent.com/u/59940233?s=200&v=4

使微前端变得简单

qiankun

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

为微型前端提供快速,简单和完整的解决方案

nanoid

https://zelark.github.io/nano-id-cc/favicon.ico

一个很小的,安全的,URL友好的,唯一的JavaScript字符串ID生成器。

Numeral-js

一个用于格式化和处理数字的javascript库

ua-parser-js

用于从userAgent字符串检测浏览器,引擎,操作系统,CPU和设备类型/模型。支持浏览器和node.js环境

hammer.js

https://avatars0.githubusercontent.com/u/7997161?s=200&v=4

一个用于多点触摸手势的javascript库

常用插件

发现导航 - 精选实用导航网站

i18next

https://avatars1.githubusercontent.com/u/8546082?s=200&v=4

i18next是一个非常流行的国际化框架,适用于浏览器或任何其他JavaScript环境(例如,node.js)。

js-lingui

https://avatars3.githubusercontent.com/u/11225539?s=200&v=4

JavaScript的可读,自动化和优化(5 kb)国际化

国际化多语言方案

发现导航 - 精选实用导航网站

wow.js

基于Animate.css,向下滚动页面时显示CSS动画,轻松自定义动画设置:样式,延迟,长度,偏移,迭代...

Waves

受Google材质设计启发的点击效果, 波纹效果

velocity

加速JavaScript动画

anime

轻量级的JavaScript动画库。它适用于任何CSS属性,单个CSS转换,SVG或任何DOM属性以及JavaScript对象

Hover-Buttons

hover动画CSS / SCSS按钮

动画

发现导航 - 精选实用导航网站

JavaScript-MD5

JavaScript MD5实现。兼容服务器端环境,如node.js,RequireJS等模块加载器和所有Web浏览器

js-sha1

JavaScript的简单SHA1哈希函数支持UTF-8编码。

js-base64

JavaScript的Base64实现

jsSHA

SHA-1,SHA-224,SHA3-224,SHA-256,SHA3-256,SHA-384,SHA3-384,SHA-512,SHA3-512,SHAKE128 ,和SHAKE256以及HMAC

crypto-js

加密标准的JavaScript库

加盐

发现导航 - 精选实用导航网站

pdf.js

PDF.js是一个使用HTML5构建的可移植文档格式(PDF)查看器

webuploader

百度出品,采用大文件分片并发上传,极大的提高了文件上传效率。

pdfmake

纯JavaScript中的客户端/服务器端PDF打印, HTML转换Pdf

ViewerJS

JavaScript中的文档阅读器, pdf/ppt/opt/odt等文件渲染成HTML

filepond

灵活而有趣的JavaScript文件上传库

FileSaver.js

客户端保存文件的解决方案,非常适合在客户端上生成文件的Web应用程序

jsPDF

一个使用JavaScript生成PDF的库

文件插件相关

发现导航 - 精选实用导航网站

PhotoSwipe

适用于移动和桌面的JavaScript图像库, 图片预览

viewerjs

javascript图片预览

图片预览

发现导航 - 精选实用导航网站

howler.js

https://howlerjs.com/assets/images/favicon.ico

现代 Web 音频 javascript 库

DPlayer

哇,这么可爱的HTML5 danmaku视频播放器

APlayer

哇,这么可爱的HTML5音乐播放器

音频/视频

发现导航 - 精选实用导航网站

three.js

https://threejs.org/files/favicon.ico

JavaScript 3D引擎

flowy

创建流程图的最小JavaScript库

incubator-echarts

https://echarts.apache.org/examples/images/favicon.png

浏览器的功能强大的交互式图表和可视化库

d3

https://avatars1.githubusercontent.com/u/1562726?s=200&v=4

借助SVG,Canvas和HTML使数据栩栩如生。

图形

发现导航 - 精选实用导航网站

uikit

https://getuikit.com/images/favicon.png

一款轻量级、模块化的前端框架可快速构建强大的web前端界面

UI组件库

发现导航 - 精选实用导航网站

JsBridge

android java和javascript桥接,灵感来自微信webview jsbridge

DSBridge-Android

一个现代的跨平台JavaScript桥接,通过它您可以在JavaScript和本机之间同步或异步地调用彼此的功能

原生APP交互webview桥接

发现导航 - 精选实用导航网站

joi

对象模式验证

validator.js

字符串验证插件、表单验证

async-validator

异步验证器

yup

无效的简单对象架构验证

参数验证

发现导航 - 精选实用导航网站

localForage

https://avatars2.githubusercontent.com/u/18673496?s=200&v=4

离线存储,使用简单但功能强大的API包装IndexedDB,WebSQL或localStorage。

数据库

发现导航 - 精选实用导航网站

introjs

https://avatars2.githubusercontent.com/u/2010360?s=200&v=4

为您的网站和项目提供新功能介绍和逐步用户指南的更好方法

shepherd

https://avatars3.githubusercontent.com/u/17297725?s=200&v=4

引导您的用户浏览您的应用程序

bootstrap-tour

使用Twitter Bootstrap Popovers快速方便地进行产品浏览

步骤引导

发现导航 - 精选实用导航网站

JavaScript

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

发现导航 - 精选实用导航网站

React

用于构建用户界面的 JavaScript 库

React Router

React 路由管理

Redux

https://avatars2.githubusercontent.com/u/13142323?s=200&v=4

React 状态管理

create-react-app

React官方脚手架

生态系统

发现导航 - 精选实用导航网站

React Redux

Redux的官方React绑定(通常配合redux使用)

redux-actions

Redux的Flux标准action实用程序(用于生成action)

redux-thunk

Redux的Thunk中间件, 用于处理异步逻辑

redux-saga

https://avatars2.githubusercontent.com/u/24776643?s=200&v=4

一个旨在使应用程序副作用(即异步事物,如数据获取和不纯的东西,如访问浏览器缓存)更容易管理,执行更高效,易于测试,以及更好地处理故障的库

Redux相关

发现导航 - 精选实用导航网站

React Native

使用React构建原生APP程序的框架

React Navigation

https://avatars0.githubusercontent.com/u/29647600?s=200&v=4

为您的本地应用程序提供路由和导航

expo

https://avatars0.githubusercontent.com/u/12504344?s=200&v=4

用于制作跨平台移动应用程序的Expo平台

ant-design-mobile-rn

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

一个基于 React Native 的 UI 组件库

React Native相关

发现导航 - 精选实用导航网站

Ant Design

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

Ant Design - A UI Design Language

MATERIAL-UI

https://material-ui.com/static/favicon.ico

React 组件用于更快速、更简便的 web 开发。你也可以建立你自己的设计系统,或者从 Material Design 开始

element

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

elementUI组件库

react-bootstrap

https://avatars0.githubusercontent.com/u/6853419?s=200&v=4

基于Bootstrap 3构建的组件库

evergreen

Evergreen是一个React UI框架,用于在Web上构建雄心勃勃的产品。由Segment带给您。

@alifd/next

@alifd/next 是 Alibaba Fusion Design 的官方 React 实现, 赋能企业中后台产品开发

zent

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

Zent 是有赞 PC 端 WebUI 规范的 React 实现,提供了一整套基础的 UI 组件以及一些常用的业务组件

React95

装修一新的现代的应用程序做出React Windows95的UI组件。

rsuite

https://avatars1.githubusercontent.com/u/19635045?s=200&v=4

React Suite 是一套 React 组件库,为后台产品而生。同时也是一个具有贴心设计以及对开发者友好的 UI 框架

chakra-ui

https://avatars2.githubusercontent.com/u/54212428?s=200&v=4

适用于您的React应用程序的简单,模块化和可访问的UI组件

PC端UI组件库

发现导航 - 精选实用导航网站

Ant Design Mobile

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

一个基于 Preact / React / React Native 的 UI 组件库

移动端UI组件库

发现导航 - 精选实用导航网站

React Helmet

这个可重用的反应组件将管理对文档头的所有更改

react-image-crop

用于React的响应式图像裁剪工具

React Helmet

这个可重用的反应组件将管理对文档头的所有更改

react-transition-group

当React组件进入或离开DOM时执行动画的简单方法

React Loadable

用于加载具有promise的组件的更高阶组件 - 路由懒加载

react-swipe

基于swipe.js封装的react组件/走马灯

Ant Motion

使用 Ant Motion 能够快速在 React 框架中使用动画,我们提供了单项,组合动画,以及整套解决方案

video-react

网络视频播放器使用React库从头开始构建HTML5世界

react-keeper

一个react路由库,更适合移动端使用,拥有缓存等功能

Fusion Design

基于React构建的Web可配置组件库

recharts

https://avatars0.githubusercontent.com/u/13690587?s=200&v=4

基于 React和D3 的组合式图表库

react-json-view

JSON查看器

BizCharts

基于G2和React的强大数据可视化库

react-draggable

一个简单的组件,用于使元素可拖动

react-slick

react走马灯组件

react-color

react 拾色器

react-intl

https://avatars1.githubusercontent.com/u/50559490?s=200&v=4

国际化React应用程序。这个库提供了React组件和一个API,用于格式化日期,数字和字符串,包括复数形式和处理翻译

react-data-grid

https://avatars3.githubusercontent.com/u/1763971?s=200&v=4

使用React构建的类似于Excel的网格组件,具有编辑器,键盘导航,复制和粘贴等功能

react-virtualized

https://cloud.githubusercontent.com/assets/29597/11736841/c0497158-9f87-11e5-8dfe-9c0be97d4286.png

React组件可有效呈现大型列表和表格数据

react-live

https://avatars3.githubusercontent.com/u/5078602?s=200&v=4

一个用于实时编辑React组件的灵活组件库

formik

https://jaredpalmer.com/formik/img/favicon.png

在React中轻松创建表单

其他组件库

发现导航 - 精选实用导航网站

react-move

https://github.com/favicon.ico

一个React组件,它创建可移动,可拖动,可调整大小,可缩放,可旋转,可扭曲,可收缩,可分组,可捕捉。

react-dnd

https://avatars2.githubusercontent.com/u/25307599?s=200&v=4

React DnD是一组React实用程序,可帮助您构建复杂的拖放接口,同时保持组件分离

react-beautiful-dnd

漂亮的和可访问的拖放列表

react-rnd

一个可调整大小且可拖动的React组件。

拖拽组件

发现导航 - 精选实用导航网站

ANT DESIGN PRO

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

开箱即用的中台前端/设计解决方案

开箱即用

发现导航 - 精选实用导航网站

enzyme

适用于React的JavaScript测试实用程序

Jest

Jest是一个令人愉快的JavaScript测试框架,专注于简单性。

单元测试

发现导航 - 精选实用导航网站

umijs

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

插件化的企业级前端应用框架。

DvaJS

https://avatars1.githubusercontent.com/u/20552239?s=200&v=4

基于React和Redux的轻量级和elm风格框架

umijs/hooks

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

你可以将 umi hooks 使用在任何地方,和任意组件库搭配使用。虽然我们的代码示例都是基于 ant design 的,但是并不代表我们的 Hooks 只能和 ant design 配合使用

umi-plugin-cache-route

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

路由缓存,类似vue keep-alive

umi/dva

发现导航 - 精选实用导航网站

React.js 小书

这是一本关于 React.js 的小书

TypeScript-React-Starter

TypeScript和React的入门模板,带有详细的README,描述了如何将两者结合使用。

react-redux-typescript-guide

TypeScript中的React和 Redux - 使用说明

知识

发现导航 - 精选实用导航网站

Mobx

https://avatars1.githubusercontent.com/u/17475736?s=200&v=4

简单、可扩展的状态管理

next.js

服务端渲染框架、SEO解决方案

nwb

适用于Web的React,Preact,Inferno和Vanilla JS应用,React库和其他npm模块的工具包,无需配置

ahooks

为 React Hooks 而生

react-app-rewired

覆盖create-react-app webpack配置而不弹出

其他

发现导航 - 精选实用导航网站

React

https://reactjs.org/favicon.ico

发现导航 - 精选实用导航网站

Vue.js

渐进式JavaScript 框架

Vue Router

Vue Router 是 Vue.js 官方的路由管理器

Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。

vue-devtools

vue.js调试工具

vue-cli

Vue.js开发的标准脚手架工具

vuepress

Vue 驱动的静态网站生成器

Vue SSR

Vue服务端渲染、SEO解决方案

vue-class-component

用于类式Vue组件的ECMAScript / TypeScript装饰器。

eslint-plugin-vue

Vue.js的官方ESLint插件

vite

Vite是一个经过验证的Web开发人员构建工具,可在开发过程中通过本机ES模块导入为您的代码提供服务,并将其与Rollup捆绑在一起进行生产

Vue 组合式 API

Vue 组合式 API在线文档阅读

生态系统

发现导航 - 精选实用导航网站

iView

https://avatars0.githubusercontent.com/u/20693613?s=200&v=4

一套基于 Vue.js 的高质量UI 组件库

Element

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库

Element Plus

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

支持Vue3.0的Element

Muse-UI

https://avatars0.githubusercontent.com/u/22283362?s=200&v=4

基于 Vue 2.0 优雅的 Material Design UI 组件库

Ant Design Vue

https://qn.antdv.com/favicon.ico

这里是 Ant Design 的 Vue 实现,开发和服务于企业级后台产品

vuetify

https://avatars2.githubusercontent.com/u/22138497?s=200&v=4

让Vue和Material Design的强大力量在开发上助您一臂之力

bootstrap-vue

https://avatars1.githubusercontent.com/u/22965283?s=200&v=4

BootstrapVue为Vue.js提供了最全面的Bootstrap 4组件和网格系统实现之一,并提供了广泛的自动WAI-ARIA可访问性标记

vue-material

https://avatars0.githubusercontent.com/u/23659108?s=200&v=4

Vue material简单,轻巧,完全符合Google Material Design规范

buefy

https://avatars1.githubusercontent.com/u/26799900?s=200&v=4

Buefy是一个基于Bulma框架和设计的Vue.js响应式UI组件的轻量级库。

PC端UI组件库

发现导航 - 精选实用导航网站

vant

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

轻量、可靠的移动端 Vue 组件库

vux

一个凑合的 Vue.js 移动端 UI 组件库

cube-ui

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

基于 Vue.js 实现的精致移动端组件库

Mand Mobile

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单

Mint UI

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

基于 Vue.js 的移动端组件库

NutUI

一套京东风格的轻量级移动端Vue组件库

移动端UI组件库

发现导航 - 精选实用导航网站

vue-awesome-swiper

基于swiper封装的轮播图组件

vue-meta

管理Vue 2.0组件中的页面元信息。支持SSR + Streaming

vue-scroller

Vue Scroller是Vonic UI 的基础组件。为了平滑滚动,拉动刷新和无限加载。

vue-infinite-loading

Vue.js的无限滚动插件(支持向上和向下)

其他组件/插件

发现导航 - 精选实用导航网站

iview-admin

基于iView的Vue 2.0管理系统模板

开箱即用

发现导航 - 精选实用导航网站

nuxt

https://avatars2.githubusercontent.com/u/23360933?s=200&v=4

Vue.js 通用应用框架

创建nuxt的脚手架工具

https://avatars2.githubusercontent.com/u/23360933?s=200&v=4

create-nuxt-app

nuxt服务端渲染框架

发现导航 - 精选实用导航网站

Vue.js

https://v3.vuejs.org/images/icons/apple-icon-152x152.png

发现导航 - 精选实用导航网站

Angular

一个框架,移动 & 桌面

angular-cli

用于Angular CLI脚手架工具

augury

Angular调试和可视化工具

生态系统

发现导航 - 精选实用导航网站

NG-ZORRO

https://avatars2.githubusercontent.com/u/30223759?s=200&v=4

基于Ant Design的Angular企业级UI组件

ng-bootstrap

https://avatars3.githubusercontent.com/u/14283866?s=200&v=4

基于Bootstrap 4的Angular组件

element-angular

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

Element Angular组件库

primeng

https://avatars1.githubusercontent.com/u/3494069?s=200&v=4

PrimeNG是Angular的丰富UI组件的集合

material

Material Design是一个统一的视觉,动作和交互设计系统的规范,适用于不同的设备。

PC端UI组件库

发现导航 - 精选实用导航网站

material

Material Design是一个统一的视觉,动作和交互设计系统的规范,适用于不同的设备。

移动端UI组件库

发现导航 - 精选实用导航网站

Angular

https://avatars0.githubusercontent.com/u/139426?s=200&v=4

发现导航 - 精选实用导航网站

小程序开发

微信小程序

小游戏开发

微信小游戏

小程序文档

发现导航 - 精选实用导航网站

mpvue

Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心

wepy

官方小程序组件化开发框架

mpx

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

Mpx是一款致力于提高小程序开发体验的增强型小程序框架(滴滴出品,基于vue)

uni-app

https://avatars1.githubusercontent.com/u/5485517?s=200&v=4

uni-app 是使用 Vue 语法开发小程序、H5、App的统一框架

omix

https://tencent.github.io/omi/assets/omi-logo2019.svg

腾讯原生小程序框架 OMIX 2.0

小程序框架

发现导航 - 精选实用导航网站

vant-weapp

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

轻量、可靠的小程序 UI 组件库

weui-wxss

https://avatars0.githubusercontent.com/u/18461506?s=200&v=4

这是一套基于样式库weui-wxss开发的小程序扩展组件库,同微信原生视觉体验一致的UI组件库

wxParse

wxParse-微信小程序富文本解析自定义组件,支持HTML及markdown解析

mpvue-wxParse

适用于 Mpvue 的微信小程序富文本解析自定义组件

echarts-for-weixin

https://avatars1.githubusercontent.com/u/2268460?s=200&v=4

ECharts 的微信小程序版本

腾讯位置服务

https://lbs.qq.com/favicon.ico

微信小程序原生LBS能力的最佳拍档

ColorUI

鲜亮的高饱和色彩,专注视觉的小程序组件库

weapp-input-frame

验证码、支付密码输入框组件

小程序组件库/插件

发现导航 - 精选实用导航网站

JS接口签名校验工具

微信 JS 接口签名校验工具

接口调试工具

微信公众平台接口调试工具

computed

小程序自定义组件 computed / watch 扩展

微信公众号开发辅助工具

发现导航 - 精选实用导航网站

awesome-github-wechat-weapp

微信小程序开源项目库汇总

awesome-wechat-weapp

微信小程序开发资源汇总

资源

发现导航 - 精选实用导航网站

微信开放社区

小程序开发者专区,微信公众平台,微信开放社区,开发者专区

wechat-format

微信公众号排版编辑器,转换 Markdown 到微信特制的 HTML

微信开放平台

微信开放平台

其他

发现导航 - 精选实用导航网站

微信开发

https://avatars0.githubusercontent.com/u/18461506?s=200&v=4

发现导航 - 精选实用导航网站

CSS3 UI Lib

CSS动画集成、在线调试阴影

CSS Sprites Generator

CSS雪碧图生成

CSS渐变调试器

http://www.colorzilla.com/favicon.ico

前端开发调试CSS渐变必备神器

Animista

https://animista.net/favicon.ico

在线生成CSS动画

CSS Gradient

https://cssgradient.io/favicon.ico

CSS渐变调试并生成CSS代码

Grabient

https://www.grabient.com/favicon.ico

CSS渐变调试并生成CSS代码,还可以角度变换

px与em单位转换

http://pxtoem.com/favicon.ico

px与em单位转换

CSS三角形產生器

http://apps.eky.hk/css-triangle-generator/favicon.gif

CSS三角形產生器 - 使用純CSS繪畫三角形

SassMeister

https://www.sassmeister.com/favicon.ico

将sass语法转换成CSS语法

transfonter

https://transfonter.org/favicon.ico

字体图标转换Base64

Loading集合

上千种Loading认你选

CSS Reference

https://cssreference.io/favicons/favicon-32x32.png

css参考是一个免费的视觉指导css。它以最受欢迎的特性为特色,并用插图和动画示例对其进行说明

在线CSS阴影调试

https://www.w3cschool.cn/favicon.ico

CSS3 Box Shadow(阴影)效果在线调试工具

CSS

发现导航 - 精选实用导航网站

正则表达式验证器

https://regexper.com/favicon.ico

验证JavaScript正则表达式

JSON在线解析及格式化验证

https://www.json.cn/favicon.ico

json在线解析,json格式化,json格式验证,json转xml,xml转json

prettier

https://avatars0.githubusercontent.com/u/25822731?s=200&v=4

Prettier是一个固定的代码格式化程序。它通过解析代码并使用自己的规则重新打印它来强制执行一致的样式,这些规则考虑了最大行长度,并在必要时包装代码

正则表达式在线测试

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

正则表达式在线测试

spy-debugger

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

微信调试,各种WebView样式调试、手机浏览器的页面真机调试。便捷的远程调试手机页面、抓包工具,支持:HTTP/HTTPS,无需USB连接设备

VConsole

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

一个轻量、可拓展、针对手机网页的前端开发者调试面板

JavaScript

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

发现导航 - 精选实用导航网站

Staticfile CDN

https://www.staticfile.org/assets/images/logo.png

免费CDN服务,包括 JavaScript、CSS、图片和 swf 等静态文件

jsDelivr

https://www.jsdelivr.com/favicon.ico

jsDelivr – 开源 CDN

BootCDN

https://www.bootcdn.cn/assets/ico/favicon.ico

稳定、快速、免费的前端开源项目 CDN 加速服务

cdnjs

https://avatars0.githubusercontent.com/u/637362?s=200&v=4

面向Web开发人员的免费和开源公共Web CDN!

CDN

发现导航 - 精选实用导航网站

FunDebug

https://www.fundebug.com/favicon.ico

支持前端JavaScript,后端Node.js以及微信小程序错误监控

前端兼容性查询

https://www.caniuse.com/img/favicon-128.png

前端查询API各个厂商兼容性情况

Browserhacks

http://browserhacks.com/assets/images/browserhacks.ico

Browserhacks是来自各个互联网的浏览器特定CSS和JavaScript hacks的广泛列表。

Character Entity Reference Chart

字符实体参考图,>

awesome-web-editor

开源web编辑器汇总列表

jsfiddle

https://jsfiddle.net/img/favicon.png

强大的前端代码在线演示的网站

jsperf

https://avatars0.githubusercontent.com/u/11043997?s=200&v=4

jsPerf旨在提供一种简单的方法来创建和共享测试用例,通过运行基准测试来比较不同JavaScript代码段的性能

codesandbox

https://codesandbox.io/favicon.ico

codesandbox是为Web应用程序定制的在线编辑器。

HTML Reference

https://htmlreference.io/favicons/favicon-32x32.png

所有HTML元素和属性的免费指南参考

jsbin

https://static.jsbin.com/images/dave.min.svg

一个轻量级的html/css/js在线编辑器Debug调试器

jsfuck

http://www.jsfuck.com/favicon.ico

JSFuck是基于JavaScript原子部分的深奥和教育性编程风格。它仅使用六个不同的字符来编写和执行代码。

其他

发现导航 - 精选实用导航网站

工具

发现导航 - 精选实用导航网站

Bootstrap

https://getbootstrap.com/docs/4.5/assets/img/favicons/favicon.ico

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架

Sass

https://avatars2.githubusercontent.com/u/317889?s=200&v=4

Sass 是成熟、稳定、强大的 CSS 扩展语言

Less

https://avatars0.githubusercontent.com/u/3538330?s=200&v=4

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性

magic

CSS3动画特效

Animate.css

https://avatars3.githubusercontent.com/u/64791939?s=200&v=4

CSS动画的跨浏览器库,简单易用

normalize.css

http://necolas.github.io/normalize.css/favicon.ico

使浏览器更加一致地呈现所有元素并符合现代标准。它只针对需要规范化的样式

Hover

CSS3动力悬停效果的集合,适用于链接,按钮,徽标,SVG,特色图像等

github-markdown-css

复制GitHub Markdown样式的最小CSS量

autoprefixer

https://avatars1.githubusercontent.com/u/8296347?s=200&v=4

Autoprefixer是一款自动管理浏览器前缀的插件,它可以解析CSS文件并且添加浏览器前缀到CSS内容里

vivify

http://vivify.mkcreative.cz/assets/img/apple-icon-57x57.png

Vivify是免费的CSS动画库。

cubic-bezier

在线制作CSS动画

CSS

发现导航 - 精选实用导航网站

iconfont

http://www.iconfont.cn/favicon.ico

阿里妈妈MUX倾力打造的矢量图标管理、交流平台

Font Awesome

https://avatars1.githubusercontent.com/u/1505683?s=200&v=4

一套绝佳的图标字体库和CSS框架

LivIcons Evolution

https://livicons.com/apple-icon-57x57.png

会动的纯svg矢量图标库

ionicons

https://avatars0.githubusercontent.com/u/3171503?s=200&v=4

适用于Ionic Framework和Web应用程序的高级图标字体

material-design-icons

Google的Material Design图标

图标库

发现导航 - 精选实用导航网站

css battle

https://cssbattle.dev/images/logo-square.png

在线比拼CSS

学习CSS布局

http://zh.learnlayout.com/images/logo.png

学习CSS布局

资源

发现导航 - 精选实用导航网站

CSS

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/css/css.png

发现导航 - 精选实用导航网站

TypeScript

TypeScript 是一种由微软开发的自由和开源的编程语言,它是JavaScript的一个超集

TypeSearch

搜索typescript 类型包 @types/node

DefinitelyTyped

高质量TypeScript类型定义的存储库

typescript-eslint

https://avatars0.githubusercontent.com/u/46634674?s=200&v=4

Monorepo用于所有工具,使ESLint能够支持TypeScript

awesome-typescript

用于客户端和服务器端开发的强大TypeScript资源的集合。在TypeScript中编写精彩的JavaScript

TypeScript 入门教程

TypeScript 入门教程

TypeScript

发现导航 - 精选实用导航网站

TypeScript

https://www.typescriptlang.org/favicon-32x32.png

发现导航 - 精选实用导航网站

JavaScript 20 年

JavaScript 20 年

你不知道的JavaScript

你不知道的JavaScript

现代 JavaScript 教程

https://zh.javascript.info/img/favicon/favicon.png

以最新的 JavaScript 标准为基准。通过简单但足够详细的内容,为你讲解从基础到高阶的 JavaScript 相关知识

ECMAScript 6入门

ECMAScript 6入门

JavaScript教程

JavaScript 标准参考教程

书籍

发现导航 - 精选实用导航网站

JavaScript Puzzlers

你真的了解JavaScript吗?来试试吧!

InterviewMap

https://avatars1.githubusercontent.com/u/41361384?s=200&v=4

打造最好的面试图谱

飞冰早报

飞冰早报

jsdoc

用于JavaScript的API文档生成器。

30 seconds of code

https://avatars3.githubusercontent.com/u/43479428?s=200&v=4

精选的有用JavaScript代码段集合,您可以在30秒或更短的时间内理解这些代码段。

33-js-concepts

JavaScript开发者应懂的33个概念

ECMAScript Proposals

https://avatars1.githubusercontent.com/u/1725583?s=200&v=4

跟踪ECMAScript 提案

ecma262

https://avatars1.githubusercontent.com/u/1725583?s=200&v=4

ECMA-262的状态,流程和文档

JavaScript 秘密花园

https://bonsaiden.github.io/JavaScript-Garden/favicon.ico?v=2

JavaScript 语言最古怪用法的文档集合

Airbnb JavaScript 编码规范

Airbnb JavaScript 编码规范

Daily-Interview-Question

工作日每天一道前端大厂面试题,祝大家天天进步,一年后会看到不一样的自己

javascript-algorithms

JavaScript 算法与数据结构

weekly

https://avatars2.githubusercontent.com/u/26534952?s=200&v=4

前端精读周刊

文档

发现导航 - 精选实用导航网站

参考资料

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

发现导航 - 精选实用导航网站

WEB前端

发现导航 - 精选实用导航网站

Node.js

Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时

npm1

npm是JavaScript世界的包管理工具,并且是 Node.js 平台的默认包管理工具

官方

发现导航 - 精选实用导航网站

urllib

在复杂的世界中请求HTTP(s)URL

formstream

multipart / form-data编码流,用于文件上传的帮助程序。

validate-npm-package-name

给我一个字符串,我会告诉你它是否是有效的npm软件包名称

模块

发现导航 - 精选实用导航网站

Yarn

https://classic.yarnpkg.com/favicon.ico

快速、可靠、安全的依赖管理

awesome-nodejs

Node.js软件包和资源

nodebestpractices

最大的Node.js最佳实践列表

其他

发现导航 - 精选实用导航网站

NodeBB

https://avatars0.githubusercontent.com/u/4449608?s=200&v=4

基于Node.js的论坛软件,为现代网站

Ghost

https://avatars1.githubusercontent.com/u/2178663?s=200&v=4

Ghost 是基于 Node.js 构建的开源博客平台。Ghost 具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写。Ghost 的目标是取代臃肿的 Wordpress

CMS

发现导航 - 精选实用导航网站

nodebestpractices

Node.js 最佳实践, 最大的汇集,且每周都在增长 - 当前,超过50个最佳实现,样式指南,架构建议已经呈现

资料

发现导航 - 精选实用导航网站

生态系统

https://nodejs.org/static/images/favicons/favicon.ico

发现导航 - 精选实用导航网站

request

简化的HTTP请求客户端

superagent

一个小型渐进式客户端HTTP请求库,Node.js模块具有相同的API,具有许多高级HTTP客户端功能

axios

基于Promise的HTTP客户端,用于浏览器和node.js

node-fetch

一个轻量级的模块,将window.fetch带到Node.js

bent

带有async await的功能性JS HTTP客户端(Node.js和Fetch)

superagent-proxy

superagent代理扩展,这使您可以通过某种代理来代理HTTP请求

网络请求

发现导航 - 精选实用导航网站

Puppeteer

https://pptr.dev/favicons/apple-touch-icon.png

Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制Chromium或Chrome

cypress

https://avatars0.githubusercontent.com/u/8908513?s=200&v=4

对浏览器中运行的所有内容进行快速,轻松和可靠的测试,(类Puppeteer)

Mocha

https://avatars0.githubusercontent.com/u/8770005?s=200&v=4

Node.js和浏览器的简单,灵活,有趣的JavaScript测试框架

chai

https://avatars0.githubusercontent.com/u/1515293?s=200&v=4

node.js的BDD/TDD断言框架和可以与任何测试框架配对的浏览器

ava

https://avatars2.githubusercontent.com/u/8527916?s=200&v=4

未来的JavaScript测试运行器

Jest

https://jestjs.io/img/favicon/favicon.ico

Jest是一个令人愉快的JavaScript测试框架,专注于简单性。

testcafe

https://avatars1.githubusercontent.com/u/4243232?s=200&v=4

一个Node.js工具,用于自动化端到端Web测试

jest-puppeteer

https://avatars2.githubusercontent.com/u/26206404?s=200&v=4

使用Jest&Puppeteer运行测试 🎪✨

ts-jest

https://kulshekhar.github.io/ts-jest/assets/img/logo.png

具有对Jest的Sourcemap支持的TypeScript预处理器

jest-extended

https://avatars2.githubusercontent.com/u/26206404?s=200&v=4

扩展 jest 匹配器

单元测试

发现导航 - 精选实用导航网站

node-mysql2

node.js的快速node-mysql兼容的mysql驱动程序

sequelize

基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, SQLite 和 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 读取和复制等功能

mongoose

mongodb对象模型设计用于在异步环境中工作。

ioredis

适用于Node.js,以性能为中心且功能齐全的Redis客户端。

objection.js

Objection.js是Node.js的一个ORM ,它旨在避免使用SQL和底层数据库引擎的全部功能,同时尽可能简单地将magic保持在最低限度。

nedb

JavaScript数据库,用于Node.js,nw.js,electron和浏览器

typeorm

https://avatars0.githubusercontent.com/u/20165699?s=200&v=4

ORM for TypeScript和JavaScript(ES7,ES6,ES5)。支持MySQL,PostgreSQL,MariaDB,SQLite,MS SQL Server,Oracle,WebSQL数据库。适用于NodeJS,浏览器,Ionic,Cordova和Electron平台

knexjs

https://avatars0.githubusercontent.com/u/10490573?s=200&v=4

PostgreSQL,MySQL和SQLite3的查询构建器,旨在灵活,可移植且易于使用。

node-redis

https://avatars1.githubusercontent.com/u/5845577?s=200&v=4

高性能Node.js Redis客户端。

数据库

发现导航 - 精选实用导航网站

node-canvas

node-canvas是Node.js的Cairo -backed Canvas实现。

svg-captcha

在node.js中生成svg验证码

ccap

node.js使用C++库CImg生成验证码,无需安装任何其他库或软件

text-to-svg

将文本转换为SVG路径而不依赖于本机

svg2png

使用PhantomJS将SVG转换为PNG

图形相关

发现导航 - 精选实用导航网站

node-http-proxy

一个HTTP可编程代理库,支持websocket。它适用于实现反向代理和负载平衡器等组件

http-proxy-middleware

用于连接,快速和浏览器同步的单线程node.js http-proxy中间件(基于node-http-proxy)

代理

发现导航 - 精选实用导航网站

esprima

ECMAScript解析基础架构,可进行多用途分析, 将代码转换成AST

recast

JavaScript AST转换器,非破坏性漂亮打印机和自动源映射生成器

AST辅助工具

发现导航 - 精选实用导航网站

node-xlsx

NodeJS excel文件解析器和构建器

fs-extra

操作系统文件,用于替代内置的fs模块

js-xlsx

https://avatars0.githubusercontent.com/u/5826089?s=200&v=4

SheetJS社区版 - 电子表格工具包

node-archiver

https://www.archiverjs.com/images/logo.svg

文件压缩

文件相关

发现导航 - 精选实用导航网站

wechat-oauth

微信公共平台OAuth接口消息接口服务中间件与API SDK

wechat-api

微信公共平台API

wechat

微信公共平台消息接口服务中间件

wechaty

是适用于微信个人帐户的Bot SDK ,可以帮助您创建6行javascript的机器人

微信开发

发现导航 - 精选实用导航网站

Glob

匹配文件。 **/*.js

prompts

轻巧,美观和用户友好的交互式提示

enquirer

https://avatars3.githubusercontent.com/u/21160645?s=200&v=4

时尚,直观和用户友好的提示

cli-table3

https://avatars2.githubusercontent.com/u/887802?s=200&v=4

带有Node.JS的CLI的漂亮unicode表

commander.js

node.js命令行界面的完整解决方案,受Ruby指挥官的启发

ora

优雅的终端微调器

Inquirer.js

常用交互式命令行用户界面的集合

shelljs

Node.js的可移植Unix shell命令

download-git-repo

下载并提取git存储库(GitHub,GitLab,Bitbucket)

node-semver

https://avatars0.githubusercontent.com/u/6078720?s=200&v=4

node的semver解析器

node-progress

node.js的灵活ascii进度条

node-qrcode

二维码生成

open

打开URL,文件,可执行文件等内容。跨平台。

ssh2

用纯JavaScript编写的SSH2客户端和服务器模块,用于node.js

minimist

解析参数选项

node-clear

清空终端屏幕信息

chalk

https://avatars2.githubusercontent.com/u/13122722?s=200&v=4

终端字符串样式

yargs

https://avatars3.githubusercontent.com/u/16504989?s=200&v=4

通过解析参数并生成优雅的用户界面来帮助您构建交互式命令行工具。

CLI

发现导航 - 精选实用导航网站

handlebars

https://handlebarsjs.com/images/favicon.png

JavaScript模板引擎

ejs

https://ejs.co/favicon.svg

JavaScript模板引擎

mustache.js

https://github.githubassets.com/favicons/favicon.svg

使用JavaScript的无逻辑{{mustache}}模板

模板引擎

发现导航 - 精选实用导航网站

node-xml2js

简单的XML到JavaScript对象转换器。它支持双向转换。使用sax-js和 xmlbuilder-js

iconv-lite

纯JavaScript中转换字符编码。

node-uuid

在JavaScript中生成符合RFC的UUID

nativefier

使任何网页成为桌面应用程序

getmac

通过Node.js获取当前计算机的mac地址

http-server

一个简单的零配置命令行http服务器

node-schedule

Node的类似cron-like和非not-cron-like的作业调度程序。

qrcode-terminal

QRCode终端版

localtunnel

https://avatars1.githubusercontent.com/u/13612933?s=200&v=4

localtunnel将您的localhost暴露给世界,以便于测试和共享!无需混淆DNS或部署只是为了让其他人测试您的更改

passport

http://www.passportjs.org/images/favicon/apple-icon-57x57.png

Node.js的简单,不显眼的身份验证

parameter

参数验证工具

bytes

用于解析字符串字节, b/kb/mb/gb/tb/pb

js-yaml

https://avatars2.githubusercontent.com/u/723678?s=200&v=4

JavaScript YAML解析器和转储器。非常快

acorn

https://avatars0.githubusercontent.com/u/34631683?s=200&v=4

一个小型,基于JavaScript的快速JavaScript解析器

figlet.js

用JavaScript编写的FIG驱动程序,旨在完全实现FIGfont规范, 生成ascii

node-printer

本机 node.js 打印机

fontmin

无缝缩小字体

morgan

https://avatars1.githubusercontent.com/u/5658226?s=200&v=4

Node.js的HTTP请求记录器中间件

jsdom

https://avatars0.githubusercontent.com/u/9271229?s=200&v=4

与Node.js一起使用的各种Web标准的JavaScript实现

其他

发现导航 - 精选实用导航网站

依赖包

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

发现导航 - 精选实用导航网站

Electron

https://www.electronjs.org/images/favicon.ico

使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用

electron-packager

https://www.electronjs.org/images/favicon.ico

通过JS或CLI自定义和封装您的Electron应用程序与特定于操作系统的软件包(.app,.exe等)

electron-installer-dmg

https://www.electronjs.org/images/favicon.ico

使用AppDMG为电子应用程序创建DMG安装程序

electron-vue

https://simulatedgreg.gitbooks.io/electron-vue/content/gitbook/images/apple-touch-icon-precomposed-152.png

基于 vue (基本上是它听起来的样子) 来构造 electron 应用程序的样板代码。

electron-builder

https://www.electron.build/assets/images/favicon.png

一个开箱即用的完整解决方案,用于将Electron, Proton Native or Muon 打包、构建成支持macOS, Windows and Linux三大系统的,可”自动更新”的可发布安装程序

electron-react-boilerplate

https://electron-react-boilerplate.js.org/logo/logo.png

基于React可扩展跨平台应用程序的App

menubar

https://www.electronjs.org/images/favicon.ico

Electron创建菜单栏桌面应用程序的高级方法。

Electron

https://www.electronjs.org/images/favicon.ico

发现导航 - 精选实用导航网站

nw.js

https://nwjs.org.cn/asset/img/favicon.ico

从DOM/WebWorker层,直接调用所有的Node模块,使用现有的web技术,开启一个全新的编写应用的方式

nw-builder

https://nwjs.org.cn/asset/img/favicon.ico

以编程方式或通过CLI 构建适用于Mac,Win和Linux的NW.js应用程序。

nwjs-ffmpeg-prebuilt

https://nwjs.org.cn/asset/img/favicon.ico

FFMpeg预构建的二进制文件具有专有的编解码器和构建窗口。

nw.js

发现导航 - 精选实用导航网站

跨平台框架

发现导航 - 精选实用导航网站

nest

https://avatars1.githubusercontent.com/u/28507035?s=200&v=4

Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(功能编程)和 FRP(功能反应编程)的元素

awesome-nestjs

https://avatars1.githubusercontent.com/u/28507035?s=200&v=4

NestJS的精选列表

nest

发现导航 - 精选实用导航网站

Egg.js

https://eggjs.org/images/favicon.png

Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本

egg-validate

https://eggjs.org/images/favicon.png

基于 parameter 封装的参数验证插件

egg-mailer

https://eggjs.org/images/favicon.png

基于 nodemailer 封装的参数验证插件

egg.js

发现导航 - 精选实用导航网站

Koa

https://avatars2.githubusercontent.com/u/5055057?s=200&v=4

Koa -- 基于Node.js 平台的下一代web开发框架

Express

https://avatars1.githubusercontent.com/u/5658226?s=200&v=4

Express - 快速、开放、极简的 Web 开发框架

Express/Koa

发现导航 - 精选实用导航网站

WEB框架

发现导航 - 精选实用导航网站

node-inspector

Node.js调试器基于Blink Developer Tools

debug

一个微小的JavaScript调试工具,以Node.js核心的调试技术为模型。适用于Node.js和Web浏览器

ndb

ndb是针对Node.js的改进调试体验,由Chrome DevTools启用

调试debugger

发现导航 - 精选实用导航网站

nvm

Node版本管理器 - 用于管理多个活动node.js版本的简单bash脚本

nvm-windows

适用于Windows的node.js版本管理实用程序

nvs

Node Version Switcher - 用于在Node.js的版本和分支之间切换的跨平台工具(受到nvm的启发)

n

Node.js版本管理:无配置文件,无复杂的API,非常简单

node版本管理

发现导航 - 精选实用导航网站

log4js-node

log4js 是一个 nodejs 日志管理工具,可以将日志以各种形式输出到各种渠道。

node-bunyan

用于node.js服务的简单快速的JSON日志记录模块

日志管理

发现导航 - 精选实用导航网站

yeoman

https://avatars0.githubusercontent.com/u/1714870?s=200&v=4

一套用于自动化开发工作流程的工具

nodemailer

https://avatars0.githubusercontent.com/u/16486629?s=200&v=4

发送来自Node.js的电子邮件 - 很容易就像蛋糕一样!

gh-pages

将文件发布到GitHub上的gh-pages分支的常规任务

集成工具

发现导航 - 精选实用导航网站

terser

https://avatars1.githubusercontent.com/u/43502240?s=200&v=4

适用于ES6+的JavaScript解析器,mangler和压缩器工具包

代码压缩

发现导航 - 精选实用导航网站

Awehunt

npm包下载量曲线对比图

nodemon

监视node.js应用程序中的任何更改并自动重新启动服务器 - 非常适合开发

pkg

将Node.js项目打包成可执行文件

npm-check-updates

查找package.json或bower.json允许的更新版本的软件包依赖项

husky

husky 可以防止错误的 git commit, git push 等

bundlephobia

找出在项目中添加新的依赖项的包大小

npm-run-all

一个CLI工具,可并行或顺序运行多个npm脚本

dotenv

从.env加载用于nodejs项目的环境变量

cross-env

运行跨平台设置和使用环境变量的脚本

nrm

npm源快速切换, npm, cnpm, taobao, nj, 内网

其他

发现导航 - 精选实用导航网站

辅助工具

https://nodejs.org/static/images/favicons/favicon.ico

发现导航 - 精选实用导航网站

Deno

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

一个安全的运行时的JavaScript和TypeScript

Deno 标准库

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

Deno 标准库

官方

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

发现导航 - 精选实用导航网站

Deno

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

适用于Deno的Visual Studio Code插件

工具

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

发现导航 - 精选实用导航网站

Deno

发现导航 - 精选实用导航网站

Node.js

发现导航 - 精选实用导航网站

Golang

Go编程语言

go.dev

大规模构建快速,可靠,高效的软件

awesome-go

精选的Go框架,库和软件的精选列表

Goproxy

https://avatars1.githubusercontent.com/u/49926011?s=200&v=4

中国最可靠的 Go 模块代理

Go语言中文网

https://static.studygolang.com/static/img/favicon.ico

Go语言中文网

Go标准库中文文档

https://studygolang.com/static/img/go.ico

Go标准库中文文档

生态

发现导航 - 精选实用导航网站

gin

Gin是用Go(Golang)编写的Web框架。它具有类似于martini的API,其性能比httprouter快40倍。如果您需要性能和良好的生产率,您会喜欢Gin

beego

beego是用于Go编程语言的开源,高性能Web框架

martini

Go的经典Web框架

echo

https://avatars1.githubusercontent.com/u/2624634?s=200&v=4

高性能,简约的Go Web框架

iris

https://www.iris-go.com/favicon.ico

最快的HTTP / 2 Go Web框架。AWS Lambda,gRPC,MVC,唯一路由器,Websocket,会话,测试套件,依赖注入等。expressjs和laravel的真正继承者|

fiber

https://avatars1.githubusercontent.com/u/59947262?s=200&v=4

Fiber是一个受Express启发的Web框架,建立在Fasthttp(Go最快的HTTP引擎)的基础上。 旨在简化零内存分配和性能的情况,以便快速开发。

WEB框架

发现导航 - 精选实用导航网站

生态系统

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

发现导航 - 精选实用导航网站

Fyne

https://avatars3.githubusercontent.com/u/36045855?s=200&v=4

基于Material Design的Go跨平台GUI

GUI

发现导航 - 精选实用导航网站

logrus

Go的结构化,可插入日志记录。

zap

https://avatars3.githubusercontent.com/u/19262598?s=200&v=4

在Go中实现快速,结构化,水平的日志记录。

日志模块

发现导航 - 精选实用导航网站

gorm

适用于Golang的绝佳ORM库,旨在对开发人员友好

ent

https://entgo.io/img/favicon.ico

用于Go的简单但功能强大的实体框架,可轻松构建和维护具有大型数据模型的应用程序。

mysql

Go MySQL驱动程序是Go(golang)数据库/ sql包的MySQL驱动程序

sqlite3

sqlite3驱动程序

pq

适用于database/sql的Pure Go Postgres驱动程序

redis

https://redis.uptrace.dev/assets/images/favicon.png

用于Golang的类型安全的Redis客户端

数据库

发现导航 - 精选实用导航网站

json-iterator

高性能100%兼容的“ encoding / json”替代产品

blackfriday

Markdown处理器,安全、快速。

goldmark

用Go语言编写的markdown解析器。易于扩展,符合标准(CommonMark),结构合理。

goquery

接近jQuery语法的DOM解析库

go-yaml

yaml包使Go程序能够轻松地对yaml值进行编码和解码, 可以快速可靠地解析和生成YAML数据。

xurls

从文本中提取Urls

解析器

发现导航 - 精选实用导航网站

govalidator

参数验证程序,用于字符串,数字,切片和结构

validator

基于标签对结构和各个字段实现值验证。

参数验证

发现导航 - 精选实用导航网站

ip

获取公网IP地址、v4/v6

terminal

提供了用于处理终端的支持功能,这在UNIX系统上很常见

gopsutil

用于检索正在运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,概要分析和限制进程资源以及管理正在运行的进程

air

Go热重载

go-micro

分布式系统开发框架

xlsx

xlsx是一个库,用于简化在Go程序中读写Microsoft Excel最新版本使用的XML格式。

email

Go强大而灵活的电子邮件库。

websocket

Go的一种快速,经过测试且广泛使用的WebSocket实现

jwt-go

Golang 实现的 JSON WEB TOKEN

cron

Go 实现的 cron 包

qrcode

二维码生成

casbin

https://avatars3.githubusercontent.com/u/27810343?s=200&v=4

权限管理库,支持Golang中的访问控制模型,如ACL,RBAC,ABAC

resty

用于Go的简单HTTP和REST客户端库

grpc-go

https://grpc.io/favicons/apple-touch-icon.png

gRPC的Go语言实现。基于HTTP/2的RPC

colly

https://avatars2.githubusercontent.com/u/33584194?s=200&v=4

Colly提供了一个干净的界面来编写任何种类的爬虫

cors

使用net / http可配置的处理程序来处理CORS请求

其他

发现导航 - 精选实用导航网站

依赖包

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

发现导航 - 精选实用导航网站

color

CLI 控制台颜色渲染工具库, 支持Windows

终端颜色

发现导航 - 精选实用导航网站

cli

一个简单,快速且有趣的软件包,用于在Go中构建命令行应用

cobra

Cobra既是用于创建功能强大的现代CLI应用程序的库,又是用于生成应用程序和命令文件的程序

命令行解析

发现导航 - 精选实用导航网站

pb

Golang的控制台进度栏

mpb

Go cli应用程序的多进度条

控制台进度条

发现导航 - 精选实用导航网站

promptui

命令行应用程序的交互式提示

godotenv

从`.env`文件加载环境变量。

go-prompt

受python-prompt-toolkit启发,在Go中构建强大的交互式提示。

其他

发现导航 - 精选实用导航网站

CLI

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

发现导航 - 精选实用导航网站

gvm

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go版本管理器,类似 nvm

json-to-go

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

在线 JSON 转 Struct结构体

golangci-lint

https://avatars3.githubusercontent.com/u/35628013?s=200&v=4

Go的快速Linters Runner

The Go Playground

https://play.golang.org/favicon.ico

在线运行Golang

nuclei

https://nuclei.projectdiscovery.io/

Nuclei是基于模板的可配置目标扫描的快速工具,具有广泛的可扩展性和易用性。

jaeger

https://avatars3.githubusercontent.com/u/35628013?s=200&v=4

分布式链路追踪

delve

https://avatars1.githubusercontent.com/u/19232073?s=200&v=4

Delve是Go编程语言的调试器。

工具

发现导航 - 精选实用导航网站

工具

发现导航 - 精选实用导航网站

Go 入门指南

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《The Way to Go》中文译本,中文正式名《Go 入门指南》

Go语言圣经

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go语言圣经 《The Go Programming Language》 中文版本

Go WEB 编程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Golang电子书介绍如何使用Golang建立网络

Go简易教程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《The Little Go Book》中文译本,中文正式名《Go简易教程》

Go by Example 中文版

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go by Example 是对 Go 基于实践的介绍,包含一系列带有注释说明的示例程序。

Go语言之旅

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

本指南涵盖了该语言的大部分重要特性,主要包括:基础、方法和接口、并发等

Go语言101

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

一本着墨于Go语法语义以及运行时相关知识点的编程指导书(Go 1.15就绪)。 此书旨在尽可能地帮助Go程序员更深更全面地理解Go语言

Go语言高级编程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

本书涵盖CGO、Go汇编语言、RPC实现、Web框架实现、分布式系统等高阶主题,针对Go语言有一定经验想深入了解Go语言各种高级用法的开发人员(不推荐新手)

Mastering GO

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《Mastering GO》中文译本,《玩转 GO》。

Mastering GO2

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Mastering Go 第二版中文版来袭!

书籍

发现导航 - 精选实用导航网站

100天从新手到大师

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Golang - 100天从新手到大师

project-layout

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go标准布局结构,项目架构结构参考。

编码规范

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Uber Go 语言编码规范

Gin实战

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

WEB 框架Gin实战

其他

发现导航 - 精选实用导航网站

参考资料

发现导航 - 精选实用导航网站

Golang

发现导航 - 精选实用导航网站

Dart

https://pub.dev/favicon.ico

Dart语言

DartPad

https://pub.dev/favicon.ico

在线运行Dart语法

Dart packages

https://pub.dev/favicon.ico

Dart packages

Flutter

https://flutter.dev/images/favicon.png

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的

Flutter Icon

https://flutter.dev/images/favicon.png

Flutter内置Icon组件图标速查表

官方

发现导航 - 精选实用导航网站

imei_plugin

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

用flutter在Android中获取imei的插件

multi_image_picker

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

Flutter插件,可让您在iOS和Android上显示多图像选择器。

sqflite

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

SQLite flutter plugin

dio

https://flutter.dev/images/favicon.png

dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等

fish-redux

https://camo.githubusercontent.com/a53c432bb9c2222880a6eca54b5ed091d1ab3d40/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317237344e4a794c614b31526a535a46785858616d504658612d313032342d313032342e706e67

一个基于Redux状态管理的组合式flutter应用程序框架。它适用于建筑中型和大型应用。

flutter_pulltorefresh

https://flutter.dev/images/favicon.png

一个提供上拉加载和下拉刷新的组件,同时支持Android和Ios

json_serializable

https://flutter.dev/images/favicon.png

JSON序列化和反序列化的代码

flutter_swiper

https://flutter.dev/images/favicon.png

flutter最强大的siwiper, 多种布局方式,无限轮播,Android和IOS双端适配

FlutterToast

https://flutter.dev/images/favicon.png

适用于Flutter的Android Toast插件

dart-uuid

https://flutter.dev/images/favicon.png

生成 RFC4122(v1,v4,v5) UUIDs

fluwx

https://flutter.dev/images/favicon.png

Flutter版微信SDK.WeChat SDK for flutter.

常用模块

发现导航 - 精选实用导航网站

Material Design

https://flutter.dev/images/favicon.png

Material是一个由开源代码支持的设计系统,可以帮助团队构建高质量的数字体验

Flutter实战

https://flutter.dev/images/favicon.png

Flutter实战

samples

https://flutter.dev/images/favicon.png

Flutter示例和演示的集合

flutter-go

https://img.alicdn.com/tfs/TB1OJkeHNYaK1RjSZFnXXa80pXa-229-229.png

flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档

Flutter-Notebook

https://flutter.dev/images/favicon.png

flutter相关功能demo的集合,它能够帮助您快速学习一些零碎的知识

plugins

https://flutter.dev/images/favicon.png

Flutter团队维护的Flutter插件

awesome-flutter

https://flutter.dev/images/favicon.png

很棒的清单,精选了最好的Flutter库,工具,教程,文章等

flutter-do

https://flutter.dev/images/favicon.png

330+Widgets在线查看预览和使用。

文档资料

发现导航 - 精选实用导航网站

flutter_wanandroid

https://flutter.dev/images/favicon.png

基于Google Flutter的WanAndroid客户端,支持Android和iOS。包括BLoC、RxDart 、国际化、主题色、启动页、引导页,拥有较好的项目结构&比较规范的代码

Best-Flutter-UI-Templates

https://flutter.dev/images/favicon.png

Best-Flutter-UI-模板, 对所有人完全免费。其内置的Flutter Dart。

其他

发现导航 - 精选实用导航网站

生态系统

发现导航 - 精选实用导航网站

Flutter

发现导航 - 精选实用导航网站

Python

是一种解释型、面向对象、动态数据类型的高级程序设计语言。

PyPi

使用Python软件包索引查找,安装和发布Python软件包

官方

发现导航 - 精选实用导航网站

PCU

python-check-updates, 检查 pip 当前依赖包最新版本

工具

发现导航 - 精选实用导航网站

生态系统

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

requests

https://www.python.org/static/favicon.ico

requests是一个简单而优雅的HTTP库。

aiohttp

https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png

用于asyncio和Python的异步HTTP客户端/服务器框架

Scrapy

https://avatars2.githubusercontent.com/u/733635?s=200&v=4

一个用于Python的快速高级Web爬虫框架。

selenium

https://avatars0.githubusercontent.com/u/983927?s=200&v=4

浏览器自动化框架和生态系统。

beautifulsoup

可以从HTML或XML文件中提取数据的Python库

HTTP/爬虫

发现导航 - 精选实用导航网站

Pillow

友好的PIL前叉,是一个出色的图像处理库

图像

发现导航 - 精选实用导航网站

numpy

使用Python进行科学计算的基本软件包。

运算

发现导航 - 精选实用导航网站

pandas

https://avatars1.githubusercontent.com/u/21206976?s=200&v=4

功能强大的Python数据分析工具包

数据分析

发现导航 - 精选实用导航网站

rich

https://github.com/favicon.ico

Rich是一个Python库,用于在终端中提供富文本和精美的格式。

Fire

Python Fire是一个用于从绝对任何Python对象自动生成命令行界面(CLI)的库。

colorama

Python中简单的跨平台彩色终端文本

tqdm

https://avatars1.githubusercontent.com/u/12731565?s=200&v=4

适用于Python和CLI的快速,可扩展的进度栏

paramiko

领先的Python SSHv2协议库

click

Python可组合命令行界面工具包

CLI

发现导航 - 精选实用导航网站

JMESPath

https://github.com/favicon.ico

JMESPath是JSON的查询语言

其他

发现导航 - 精选实用导航网站

依赖包

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

Django

https://avatars3.githubusercontent.com/u/27804?s=200&v=4

具有期限的完美主义者的Web框架。

flask

https://avatars0.githubusercontent.com/u/16748505?s=200&v=4

用于构建Web应用程序的Python微框架。

WEB框架

发现导航 - 精选实用导航网站

框架

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

简明 Python 教程

https://www.python.org/static/favicon.ico

旨在于介绍如何使用 Python 语言进行编程的自由图书。它以教材与指南的形式为入门者介绍 Python 语言。如果你对电脑知识的了解仅限于如何保存文本文件的话,那这本书就是为你准备的。

书籍

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

100天从新手到大师

https://www.python.org/static/favicon.ico

Python - 100天从新手到大师

Python 入门指南

https://www.python.org/static/favicon.ico

Python 入门指南

What the f*ck Python!

https://www.python.org/static/favicon.ico

一些有趣且鲜为人知的 Python 特性.

awesome-python-cn

https://www.python.org/static/favicon.ico

Python 资源大全中文版

cheatsheet

https://www.python.org/static/favicon.ico

Python大全备忘单

awesome-python

https://www.python.org/static/favicon.ico

精选的Python框架,库,软件和资源的精选清单。

文档资料

https://www.python.org/static/favicon.ico

发现导航 - 精选实用导航网站

参考资料

发现导航 - 精选实用导航网站

Python

发现导航 - 精选实用导航网站

segmentfault

https://cdn.segmentfault.com/v-5f64887f/global/img/touch-icon.png

是中文领域最大的技术问答交流社区平台

掘金

https://b-gold-cdn.xitu.io/favicons/v2/apple-touch-icon.png

一个帮助开发者成长的社区

DiyCode1

致力于构建开发工程师高端交流分享社区

黑客派

https://static.ld246.com/images/favicon.png

黑客派是程序员和设计师的聚集地,汇聚了严谨求实的工程师和富有创意的设计师

Node.js专业中文社区

国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究

吾爱破解

https://www.52pojie.cn/favicon.ico

吾爱破解关注PC软件安全和移动安全领域,致力于软件安全与病毒分析的前沿

FreeBuf

https://www.freebuf.com/favicon.ico

FreeBuf黑客与极客,国内关注度最高的全球互联网安全媒体平台

IMWeb

https://imweb.io/public/icon.png

Web前端 腾讯IMWeb 团队社区

Stack Overflow

https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a

全球最大的技术问答网站,是一个与程序相关的IT技术问答网站

React社区

https://reactjs.org/favicon.ico

React论坛社区

众成翻译

https://p1.ssl.qhimg.com/t010e845cdf71587354.png

中国最好的技术翻译社区,最懂译者的翻译平台,奇虎360最大前端团队“奇舞团”出品

MDN web docs

https://developer.mozilla.org/favicon.ico

Mozilla 开发者社区,是一个完整的学习平台,你可以在这里深入学习Web技术以及能够驱动Web的软件

DEV Community

https://dev-to.s3.us-east-2.amazonaws.com/favicon.ico

在这里程序员分享想法并帮助彼此成长

问答社区1

发现导航 - 精选实用导航网站

V2EX

https://www.v2ex.com/static/img/v2ex_192.png

创意工作者们的社区

知乎

https://static.zhihu.com/static/favicon.ico

知乎,中文互联网最大的知识分享和社交平台

简书

https://www.jianshu.com/favicon.ico

简书是一个创作社区,任何人均可以在其上进行创作

小专栏

https://images.xiaozhuanlan.com/assets/favicon-bd135558698197f509ada06695c03a4f458f0077fa476f9a4e7ba9664f3dc55f.ico

小专栏是一个专业人士的创作知识社区,在这里您可以看到各个领域最专业的专栏和观点

Hacker News

https://news.ycombinator.com/favicon.ico

Hacker News

程序员客栈

https://stacdn.proginn.com/favicon_new.ico

程序员客栈是领先的程序员自由工作平台,未来互联网企业用人方式。提供优秀程序员为您进行网站建设制作、测试运维服务、人工智能AI、大数据区块链、软件开发等优质服务

职Q

https://fecdn4.zhaopin.cn/zq/assets/logoIcon.7a3e67.png

智联招聘旗下专业的招聘求职社交问答平台,覆盖了求职、招聘、职业规划、升职加薪、面试技巧、工作经验分享等热门话 题,涉及各种行业职场问题,1.5亿用户的职场社区

煎蛋

http://cdn.jandan.net/static/img/appicon.png

煎蛋以译介方式传播网络新鲜资讯

其他

发现导航 - 精选实用导航网站

Github

https://github.githubassets.com/favicons/favicon.svg

面向开源及私有软件项目的托管平台

码云

https://gitee.com/favicon.ico

码云专为开发者提供稳定、高效、安全的云端软件开发协作平台

GitLab

https://about.gitlab.com/ico/apple-touch-icon-57x57.png

用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

Coding

https://dn-coding-net-production-static.codehub.cn/platform/favicon.ico

面向开发者的云端开发平台,提供 git/svn 代码托管,代码质量分析,在线WebIDE,项目管理...

代码托管

发现导航 - 精选实用导航网站

社区站点

发现导航 - 精选实用导航网站

社区站点

发现导航 - 精选实用导航网站

觅元素

http://www.51yuansu.com/favicon.ico

觅元素,为您提供免费设计元素,设计元素的资源站

千库网

https://js.588ku.com/comp/public/css/iconfont/favicon.ico

致力于为设计师提供最优质的素材

花瓣网

https://huaban.com/img/touch-icon-ipad.png

花瓣,陪你做生活的设计师

Dribbble

https://cdn.dribbble.com/assets/favicon-b38525134603b9513174ec887944bde1a869eb6cd414f4d640ee48ab2a15a26b.ico

Dribbble是展示和宣传,推广,发现和探索设计的地方

万素网

https://669pic.com/669pic.ico

万素网致力于为国内各行业设计师,网站编辑,新媒体工作人员提供免费png素材与背景图片服务

ArtStation

https://www.artstation.com/assets/favicon.ico

ArtStation是游戏,电影,媒体和娱乐艺术家的展示平台。它使艺术家能够以流畅的方式展示他们的作品集,发现和保持灵感,并与新的机会联系起来。

Design Templates - Canva

https://static.canva.com/static/images/favicon.ico

设计模板 - Canva

Unsplash

https://unsplash.com/favicon-32x32.png

美丽,免费的照片。由世界上最慷慨的摄影师社区赠送。

稿定设计

https://www.gaoding.com/favicon.ico

电商素材、新媒体配图、手机海报等。

unDraw

https://undraw.co/favicon-32x32.png

带有开源插图的设计项目,可满足您可以想象和创建的任何想法。 免费使用您的颜色创建漂亮的网站,产品和应用程序

UI中国用户体验设计平台

https://www.ui.cn/Public/img/favicon.ico

UI中国用户体验平台,中国用户体验联盟理事单位。国内极具影响力的设计平台之一。十多年来,携手会员150万+,共同致力于为设计师与企业搭建健康的设计生态!

GitHub Octodex

https://octodex.github.com/favicon.ico

由GitHub Design团队创建和维护的所有吉祥物素材

Collect UI

http://collectui.com/img/favicon.ico

从每日ui档案库及其他收集的每日灵感。 根据Dribbble拍摄的照片,手工挑选,每天更新

材料

发现导航 - 精选实用导航网站

icons8

https://icons8.cn/vue-static/landings/primary-landings/favs/icons8_fav_96%C3%9796.png

下载免费图标,音乐,素材图片,矢量,UX插图和视频音乐

vectorlogo

https://www.vectorlogo.zone/favicon.ico

3000多种精美的SVG徽标,非常适合您的自述文件或积分页面

shareicon

https://www.shareicon.net/favicon.ico

超过25万个icon免费集合

SVG Logos

超过1000+SVG Logos集合

iconfont

https://www.iconfont.cn/favicon.ico

阿里妈妈MUX倾力打造的矢量图标管理、交流平台

iconscount

https://iconscout.com/favicon.ico

免费下载图标,插图和库存照片

图标

发现导航 - 精选实用导航网站

创客贴

https://www.chuangkit.com/favicon.ico

一款简单易用、功能强大的线上图形设计工具

Ps Play

Ps Play - 移动设计零阻力

鹿班

https://g.alicdn.com/acca/resource/luban/image/favicon.png

鹿班 - 让设计更美好(阿里出品)

fontspace

https://www.fontspace.com/android-chrome-192x192.png?v=00Bdv4Q5g6

6500+免费字体下载

工具

发现导航 - 精选实用导航网站

Color Hunt

https://colorhunt.co/img/color-hunt-icon-ios.png

Color Hunt是一个免费开放的平台,可通过数千种精选的时尚调色板来激发色彩灵感

配色

发现导航 - 精选实用导航网站

Design

发现导航 - 精选实用导航网站

Design

发现导航 - 精选实用导航网站

Docker — 从入门到实践

https://github.com/favicon.ico

Docker — 从入门到实践

Docker官方映像文档

https://github.com/favicon.ico

docker-library中的Docker官方映像文档

Docker Hub

https://avatars2.githubusercontent.com/u/7739233?s=200&v=4

Docker 镜像仓库

Docker-Compose

https://avatars2.githubusercontent.com/u/7739233?s=200&v=4

使用Docker定义和运行多容器应用程序

Docker

发现导航 - 精选实用导航网站

git-manual

https://github.com/favicon.ico

Git常用命令参考手册 (推荐学习)

GitHub Docs

https://github.com/favicon.ico

github 官方帮助文档

awesome-actions

https://github.com/favicon.ico

精选的GitHub上很棒的Action列表

Github - Actions

https://github.com/favicon.ico

Github 官方Actions 资源列表

growing-up

https://github.com/favicon.ico

程序猿成长计划

Git

发现导航 - 精选实用导航网站

nginx

https://avatars0.githubusercontent.com/u/1412239?s=200&v=4

nginx参考文档

Nginx开发从入门到精通

https://avatars0.githubusercontent.com/u/1412239?s=200&v=4

Nginx开发从入门到精通

服务器

发现导航 - 精选实用导航网站

redis

https://avatars3.githubusercontent.com/u/1529926?s=200&v=4

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构

MySQL

https://labs.mysql.com/common/themes/sakila/favicon.ico

MySQL数据库服务是一个完全托管的数据库服务,可使用世界上最受欢迎的开源数据库来部署云原生应用程序。 它是百分百由MySQL原厂开发,管理和提供支持

数据库

发现导航 - 精选实用导航网站

免费的编程中文书籍索引

https://avatars1.githubusercontent.com/u/14127308?s=200&v=4

免费的编程中文书籍索引

Zlibrary

https://zh.b-ok.global/apple-touch-icon.png

Z-Library 项目部分. 全球最大的数字图书馆, 电子书

IT-eBOOK

IT类技术书籍PDF

Refactoring.Guru

https://refactoringguru.cn/favicon.ico

22种常用设计模式

书籍

发现导航 - 精选实用导航网站

Linux 常用命令参考手册

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/linux/linux.png

Linux 常用命令参考手册

developer-roadmap

https://github.com/favicon.ico

2020年成为网络开发人员的路线图

Devhints

https://devhints.io/assets/favicon.png

WEB开发速查表,mysql/go/java/js/bash/react/git...

linux-command

https://wangchujiang.com/linux-command/img/favicon.ico

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集

learn-regex

https://github.com/favicon.ico

正则表达式学习

the-art-of-command-line

https://github.com/favicon.ico

命令行的艺术

Peter Beverloo

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/chrome/chrome.png

Chrome浏览器命令参数参考手册

vimrc

https://avatars2.githubusercontent.com/u/11618545?s=200&v=4

vim配置参考手册

Jenkins

https://www.jenkins.io/zh/sites/default/files/jenkins_favicon.ico

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要

learnxinyminutes-docs

https://learnxinyminutes.com/favicon.ico

在Y分钟内学习X

Vscode Docs

https://code.visualstudio.com/apple-touch-icon.png

Vscode 扩展开发文档

YAML教程

YAML教程

Chrome Extension

https://www.google.com/images/icons/product/chrome-32.png

谷歌浏览器扩展插件开发文档

其他文档

发现导航 - 精选实用导航网站

参考文档

发现导航 - 精选实用导航网站

菜鸟教程

https://static.runoob.com/images/icon/mobile-icon.png

提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程

慕课网

https://www.imooc.com/static/img/common/touch-icon-ipad.png

慕课网-程序员的梦工厂

极客学院

https://www.jikexueyuan.com/favicon.ico

致力于“让IT学习更有效”,以实战为特色,为注重自我提升的IT从业者提供高品质职业教育

腾讯课堂

https://9.idqqimg.com/edu/edu_modules/edu-ui/img/nohash/favicon.ico

腾讯课堂 - 专业的在线教育平台

i春秋

https://static2.ichunqiu.com/icq/resources/images/favicon.ico

【i春秋】-专注网络安全_信息安全_白帽子的在线学习_教育_培训平台

实验吧

http://www.shiyanbar.com/favicon.ico

实验吧是国内最大的在线虚拟机实验IT教育平台

合天网安实验室

https://www.hetianlab.com/img/ico/favicon.ico

合天网安实验室是支持在线实验的信息安全学习的大型服务平台

网易云课堂

https://study.163.com/favicon.ico

网易云课堂 - 领先的实用技能学习平台

蓝桥

https://study.163.com/favicon.ico

蓝桥是国内领先的IT在线编程及在线实训学习平台,专业导师提供精选的实践项目,创新的技术使得学习者无需配置繁琐的本地环境,随时在线流畅使用

W3Cschool

https://7n.w3cschool.cn/statics/images/favicon.ico?v=2.2

编程狮,是一个专业的W3C前端开发及编程入门学习平台

发现导航 - 精选实用导航网站

发现导航 - 精选实用导航网站

教程相关

发现导航 - 精选实用导航网站

LeetCode

https://static.leetcode-cn.com/cn-assets/icons/favicon-96x96.png

提高你的编码技能,快速找到一份工作。这是扩展你知识和为下一次面试做好准备的最佳地方。

牛客网

https://www.nowcoder.com/favicon.ico

牛客网是互联网求职神器,C++、Java、前端、产品、运营技能学习/备考/求职题库

CS-Notes

https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/LogoMakr_1J56bI.png

技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计、Java、Python、C++

数据结构和算法动态可视化

https://visualgo.net/img/favicon.png

数据结构和算法动态可视化

algorithm-pattern

https://github.com/favicon.ico

算法模板,最科学的刷题方式,最快速的刷题路径,你值得拥有~

面试刷题

发现导航 - 精选实用导航网站

面试刷题

发现导航 - 精选实用导航网站

学无止境

发现导航 - 精选实用导航网站

乌云网镜像

WooYun是一个位于厂商和安全研究者之间的漏洞报告平台,注重尊重,进步,与意义

安全联盟

https://www.anquan.org/aq_static/images/favicon/favicon.ico

安全联盟 - 国内最大的第三方网络安全数据共享交换平台

360网站安全检测

https://www.360.cn/favicon.ico

为站长免费提供了网站漏洞检测、网站漏洞修复、网站后门检测、木马查杀,网址安全查询等服务

红黑联盟

https://www.2cto.com/favicon.ico

红黑联盟作为老牌的信息安全网站,致力于培训电脑技术高手.网站集网络安全,系统网络,编程开发,网站建设等频道于一体

知道创宇

https://www.knownsec.com/static/favicon.ico

知道创宇,网络空间安全专家,长期致力于为政府、企业类客户提供完善的云安全解决方案

安全周

关注安全资讯 专注资源共享

全球被黑站点统计系统

https://www.hacked.com.cn/favicon.ico

主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据...

安全脉搏

https://www.secpulse.com/favicon.ico

高质量的全球互联网安全媒体和技术平台,安全爱好者们交流与分享前沿安全技术的最佳社区

网络安全

发现导航 - 精选实用导航网站

XSS-CTF

http://xss.xiejiahe.com/favicon.png

XSS-CTF 是一个练习和入门的XSS平台, 每一位WEB工程师都应具备的基础知识,提高网络安全意识

XSS测试

XSS小游戏

Pasteurize

XSS CTF

CTF

发现导航 - 精选实用导航网站

fiddler

https://www.telerik.com/favicon.ico

Fiddler是一个用于HTTP调试的代理服务器应用程序

wireshark

https://www.wireshark.org/assets/images/favicon.ico

是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换

XSS平台-白帽安全测试

XSS平台是一个免费给白帽安全测试的平台

Security Headers

快速轻松地评估HTTP响应头的安全性

w9scan

一款全能型的网站漏洞扫描器,内置1200+插件可对网站进行一次规模的检测,功能包括但不限于web指纹检测、端口指纹检测、网站结构分析、各种流行的漏洞检测、爬虫以及SQL注入检测、XSS检测...

xray

https://avatars0.githubusercontent.com/u/7302766?s=200&v=4

xray 安全评估工具

cmd5

https://www.cmd5.com/favicon.ico

md5在线解密破解,md5解密加密

sqlmap

https://avatars3.githubusercontent.com/u/735289?s=200&v=4

自动SQL注入和数据库接管工具

nmap

https://avatars2.githubusercontent.com/u/63385?s=200&v=4

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端

xssor

http://xssor.io/s/favicon.ico

编码/解码,Codz,探针

在线子域名查询

https://phpinfo.me/favicon.ico

在线子域名查询

fuzzDicts

Web Pentesting Fuzz 字典

BurpSuitePro

免费的BurpSuitePro版本

辅助工具

发现导航 - 精选实用导航网站

Vulhub

https://vulhub.org/img/favicon.ico

基于docker和docker-compose的漏洞环境集合...

SRC-experience

工欲善其事,必先利其器,一些src挖掘奇技淫巧,国外新技术的学习网站分享

Intranet_Penetration_Tips

内网渗透TIPS

知识/测试

发现导航 - 精选实用导航网站

网络安全

发现导航 - 精选实用导航网站

网络安全

发现导航 - 精选实用导航网站

百度统计

https://tongji.baidu.com/favicon.ico

全球最大的中文网站流量分析平台,帮助企业收集网站访问数据,提供流量趋势、来源分析...

CNZZ

https://www.umeng.com/favicon.ico

CNZZ数据专家是全球最大的中文网站统计分析平台,为各类网站提供免费、安全、稳定

百度搜索资源平台

https://www.baidu.com/img/baidu.svg

百度搜索资源平台_让网站更具价值

问卷星

https://www.wjx.cn/favicon.ico

免费使用问卷星创建问卷调查、在线考试、360度评估等应用

金数据

https://gd-assets.jinshujucdn.com/favicon.ico

金数据是人人可用的在线表单工具,帮助用户收集和管理日常工作中的数据,提升工作效率

Google Analytics

https://ssl.gstatic.com/analytics/20201013-01/app/static/analytics_standard_icon.png

Google Analytics是一个收集数据并将其分析整理成实用报告的平台

腾讯移动分析

https://mta.qq.com/mta/resource/imgcache/images/favicon.ico

腾讯移动分析是腾讯数据云,腾讯大数据战略的核心产品,提供app应用的移动统计分析,支持android/iOS平台,实现用户画像、数据可视化、数据挖掘、渠道效果分析等综合数据服务

Google Adsense

https://www.google.com/favicon.ico

Google Adsense

运营相关

发现导航 - 精选实用导航网站

运营相关

发现导航 - 精选实用导航网站

运营相关

发现导航 - 精选实用导航网站

凹凸实验室

https://aotu.io/img/favicon-48x48.png

O2面向多终端技术体系,致力于构建沉淀与分享包括但不限于交互、页面制作技巧...

腾讯IMWeb

https://imweb.io/public/icon.png

Web前端 腾讯IMWeb 团队社区

字节跳动技术博客

https://avatars1.githubusercontent.com/u/4158466?s=200&v=4

字节跳动技术博客

淘系前端团队

https://fed.taobao.org/favicon.ico

用技术为体验提供无限可能

有赞技术团队

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

有赞技术团队

Team

发现导航 - 精选实用导航网站

阮一峰的网络日志

http://www.ruanyifeng.com/favicon.ico

阮一峰的网络日志

谢家和的博客

https://www.xiejiahe.com/favicon-128x128.png

WEB Developer

王垠的博客

https://www.yinwang.org/images/Yc.jpg

当然我在扯淡

Dan

https://overreacted.io/favicon.ico

react作者的博客

个人博客

发现导航 - 精选实用导航网站

博客看点

发现导航 - 精选实用导航网站

博客看点

发现导航 - 精选实用导航网站

+
+

Github-CLI

https://github.githubassets.com/favicons/favicon.svg

GitHub的官方命令行工具

Coveralls

https://coveralls.io/favicon.png

通过显示测试套件未涵盖代码的哪些部分,我们可以帮助您自信地交付代码。免费提供开源软件库

Releasly

在新的开源版本发布时收到通知,直接发送到您的电子邮件中。

Convert cURL

将curl命令转换为Python,JavaScript,PHP,R,Go,Rust,Dart,JSON,Ansible,Elixir。

Supervisor

Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的多个进程。

SonarQube

https://www.sonarqube.org/favicon-152.png

代码质量和安全性检查, 支持所有开发人员编写更干净,更安全的代码。

Pastebin

https://paste.ubuntu.com/favicon.ico

在线共享代码,将代码以URL形式发送以便查看

UPX

https://avatars2.githubusercontent.com/u/30217756?s=200&v=4

UPX-可执行文件的终极打包器

askgit

https://avatars2.githubusercontent.com/u/30217756?s=200&v=4

使用SQL查询git存储库。生成报告,执行状态检查,分析代码库。

Sentry

https://avatars3.githubusercontent.com/u/1396951?s=200&v=4

Web应用程序,移动应用程序和游戏的实时崩溃报告。

randomuser

https://randomuser.me/favicon.ico

随机用户生成器是用于生成占位符用户信息的免费API。 获取个人资料照片,姓名等。 对于人们来说,就像Lorem Ipsum。

github-readme-stats

https://camo.githubusercontent.com/ebfdd465daa90626d0ab0d0fddc0e457c942a392/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f616e7572616768617a72612f696d6167652f75706c6f61642f76313539343930383234322f6c6f676f5f636373776d652e737667

在你的 README 中 获取动态生成的 GitHub 统计信息

Hits

https://i.imgur.com/zBEQq4w.png

了解有多少人正在查看您的GitHub项目的简单方法

GitHub 文件加速

GitHub 文件加速

Shields IO

svg生成版本号图标

FunDebug

https://www.fundebug.com/favicon.ico

支持前端JavaScript,后端Node.js以及微信小程序错误监控

Asciiworld

http://www.asciiworld.com/favicon.ico

WA!原来那些年程序猿搞怪的注释都在这里

jsfiddle

https://jsfiddle.net/img/favicon.png

强大的前端代码在线演示的网站

CODEIF

https://user-images.githubusercontent.com/799578/50462941-8075fe80-09c3-11e9-89e7-af0cb7991406.png

变量命名神器

ASCIIFlow Infinity

http://asciiflow.com/images/favicon.png

无限的ASCII图表,保存到谷歌驱动器,调整大小,自由绘制,并直接输出到文本/HTML。

gitzip

https://kinolien.github.io/gitzip/images/gitzip.png

它可以将GITHUB存储库的子文件夹/子目录作为zip并下载

Server酱

http://sc.ftqq.com/static/image/favlogo.png

「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。

mkcert

一个简单的零配置工具,可以使用您喜欢的任何名称制作本地可信赖的SSL开发证书

carbon

https://carbon.now.sh/favicon.ico

创建和分享源代码的精美图像

setup-ipsec-vpn

用于构建您自己的IPsec VPN服务器的脚本,在Ubuntu,Debian和CentOS上使用IPsec / L2TP和Cisco IPsec

nginxconfig

https://www.digitalocean.com/favicon.ico

nginx配置生成器

GraphQL Explorer

GraphQL资源管理器利用真实的、实时的生产数据

patorjk

将文本转换成ASCII

lens

https://avatars0.githubusercontent.com/u/62133242?s=200&v=4

Lens控制Kubernetes集群所需的唯一IDE。它是适用于MacOS,Windows和Linux操作系统的独立应用程序。它是开源的,免费的。

public-apis

一些可用在 Web 或软件开发的开放 API 接口

astexplorer

https://astexplorer.net/favicon.png

一个Web工具,用于探索由各种解析器生成的AST

uTools

http://www.u.tools/assets/img/brand/favicon.png

uTools是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合

ihateregex

https://ihateregex.io/favicon.ico

正则表达式备忘录

Oh My ZSH

https://avatars3.githubusercontent.com/u/22552083?s=200&v=4

是一个开放源代码,社区驱动的框架,用于管理zsh配置。

Tampermonkey

https://tampermonkey.freetls.fastly.net/images/icon144.png

一款免费的浏览器扩展和最为流行的用户脚本管理器

Greasy Fork

提供用户脚本的网站

免费代理

https://img.kuaidaili.com/img/favicon.ico?v=3

免费HTTP代理IP

Google Workspace

https://avatars2.githubusercontent.com/u/1342004?s=200&v=4

Google Workspace状态信息中心

开发神器

eoLinker接口管理平台

https://www.eolinker.com/assets/images/favicon.ico

国内最大的在线接口管理服务方案供应商

YApi

https://avatars2.githubusercontent.com/u/19645609?s=200&v=4

YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台

RAP2

http://rap2.taobao.org/favicon.png

Web接口管理工具,开源免费,接口自动化,MOCK数据自动生成,自动化测试,企业级管理。阿里妈妈MUX团队出品

showdoc

https://www.showdoc.cc/static/logo/b_64.png

一个非常适合IT团队的在线API文档、技术文档工具

docsify

https://avatars3.githubusercontent.com/u/40133106?s=200&v=4

一个神奇的文档站点生成器

apiDoc

https://avatars2.githubusercontent.com/u/4103663?s=200&v=4

RESTful Web API文档生成器

docusaurus

https://avatars2.githubusercontent.com/u/69631?s=200&v=4

易于维护的开源文档网站

禅道

https://www.zentao.net/favicon.ico

禅道是灵活的项目管理软件

Tapd

https://www.tapd.cn/favicon.ico

一站式敏捷研发协作云平台, 凝聚腾讯研发方法及敏捷实践精髓, 助力企业研发更高效、协作更敏捷

Hoppscotch

https://avatars2.githubusercontent.com/u/56705483?s=200&v=4

一个免费,快速,美观的API请求构建器,供10万多个开发人员使用。(原名叫 Postwoman)

接口/开发文档管理

Sunny-Ngrok

一条命令解决的外网访问内网问题,无需任何配置,下载客户端之后直接一条命令让外网访问您的内网不再是距离

frp

一个快速反向代理,可帮助您将NAT或防火墙后面的本地服务器暴露给Internet。

zan-proxy

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

本地代码调试线上页面,环境再也不是问题

ngrok

https://ngrok.com/static/img/favicon.png

ngrok是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,便于后期分析和重放

内网穿透/代理

查MD5

http://www.chamd5.org/favicon.ico

MD5在线解密|md5在线破解|批量破解md5网站

JSON Web Tokens

https://jwt.io/img/favicon/apple-icon-76x76.png

jwt 在线解码

base64

http://www.xpcha.com/favicon.ico

base64在线解码编码

编码/解码

ipify

https://www.ipify.org/static/images/favicon-96x96.png

一个简单的公共IP地址API

归属地查询

淘宝免费归属地查询

免费公开API

开发相关

draw

https://www.draw.io/images/apple-touch-icon.png

免费的在线图表软件,用于制作流程图、流程图、组织图、UML、ER和网络图

ProcessOn

https://www.processon.com/favicon.ico

免费在线作图工具,UML作图,UI界面原型设计,iOS原型设计,BPMN,流程图,思维导图,多人协作绘图

蓝湖

https://lhcdn.lanhuapp.com/web/static/favicon.ico

蓝湖是一款设计图共享平台,帮助互联网团队管理设计图

Zeplin

https://zeplin.io/img/favicon/228x228.png

为设计师和前端而生的协作应用

幕布

https://mubu.com/favicon.ico

极简大纲笔记 | 一键生成思维导图

声享

https://p.ssl.qhimg.com/t01a54d9106629dda0e.png

在线制作 PPT,让分享更有价值

墨刀

https://modao.cc/images/logo.png

原型设计工具,web原型设计工具,app原型设计工具

小智LOGO

https://xzlogo.com/static/images/favicon-16x16.png?v2

LOGO在线制作神器 - 3分钟完成LOGO设计在线生成

创客贴

https://www.chuangkit.com/favicon.ico

一款简单易用、功能强大的线上图形设计工具

在线制作图表

https://cdn.jifo.co/favicon/favicon.ico

信息图表是一种易于使用的信息图表和图表制造商。创建和分享美丽的信息图表,在线报告和互动地图。在这里做你自己

CLIPPING MAGIC

删除图像背景在线。使背景透明,白色等编辑,裁剪,旋转,固定颜色,添加阴影,一款在线抠图工具

稿定抠图

https://koutu.gaoding.com/favicon.ico

稿定设计是一款专为淘宝店主、新媒体运营人员和修图爱好者打造的免费在线抠图工具。

UZER.ME

https://uzer.me/favicon.ico

超级应用空间致力于全生命周期的文档管理,无需安装,即可在线编辑Office, CAD,PS等任意格式文档,支持远程协作,全文检索,版本管理,权限管理,安全外发等.提高工作效率,降低安全风险

launchaco

https://www.launchaco.com/static/favicon.ico

免费在线制作LOGO

鹿班

https://g.alicdn.com/acca/resource/luban/image/favicon.png

鹿班 - 让设计更美好(阿里出品)

图片裁剪

https://www.yasuotu.com/favicon.ico

在线裁剪照片大小尺寸

设计相关

设计相关

Bitwarden

https://bitwarden.com/images/icons/favicon-32x32.png

个人和企业在任何设备上存储,共享和保护敏感数据的最简单,最安全的方法

Typeora

https://typora.io/img/favicon-48.png

Typora是一款跨平台的最小Markdown编辑器,可为Markdown读者和作家提供无缝的体验

iterm2

https://www.iterm2.com/favicon.ico

iTerm2是Terminal的替代品,是iTerm的后续产品

Sourcetree

https://www.sourcetreeapp.com/assets/img/favicons/sourcetree/favicon-32x32.png

美丽的Git GUI中的简单性和强大功能

charles

https://www.charlesproxy.com/static/img/icon.8b97278f.png

Charles是HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。这包括请求,响应和HTTP标头(其中包含cookie和缓存信息)。

Tunnelblick

https://tunnelblick.net/favicon.ico

适用于macOS的免费开源OpenVPN VPN客户端服务器软件。

Keka

https://www.keka.io/img/Keka-120x120.png

macOS文件存档器, 储存更多,私密分享

Kap

https://getkap.co/static/favicon/kap.ico

使用Web技术构建的开源屏幕录像机。

Vscode

https://code.visualstudio.com/apple-touch-icon.png

VScode是一款轻量级的编辑器,自由。 建立在开源上。 无处不在。

zenmap

https://nmap.org/shared/images/tiny-eyeicon.png

开源免费的网络发现工具,通过它能够找出网络上在线的主机,并测试主机上哪些端口处于监听状态,接着通过端口确定主机上运行的应用程序类型与版本信息,最后利用它还能侦测出操作系统的类型和版本

obsproject

https://obsproject.com/favicon-32x32.png

免费和开源软件,用于视频录制和实时流。

hyper

https://avatars1.githubusercontent.com/u/14985020?s=200&v=4

基于WEB技术的终端

Listary

https://www.listary.com/wp-content/themes/listary5/images/favicon.ico

Listary是Windows的革命性搜索实用程序,它使休闲用户和高级用户都能快速找到文件并启动应用程序!

GUI

vmware

https://www.vmware.com/favicon.ico

利用VMware提供的软件定义的云,移动性,网络和安全解决方案来建立您的数字基础。

parallels

https://www.parallels.cn/typo3conf/ext/prls_theme/Resources/Public/theme/res/img/favicon/favicon.png

Mac和Windows虚拟化|管理Mac|VDI和RDS解决方案

mumu Android模拟器

http://mumu.163.com/favicon.ico

网易MuMu[手游模拟器][安卓模拟器]

虚拟机

DBeaver

https://avatars3.githubusercontent.com/u/34743864?s=200&v=4

适用于开发人员,数据库管理员,分析师和所有需要使用数据库的人员的免费的多平台数据库工具。支持所有流行的数据库:MySQL,PostgreSQL,SQLite,Oracle,DB2,SQL Server,Sybase,MS Access,Teradata,Firebird,Apache Hive,Phoenix,Presto等

RedisDesktopManager

https://redisdesktop.com/static/css/favicon.png

Redis Desktop Manager(又名RDM)—是用于Windows,Linux,MacOS和iPadOS的快速Redis数据库管理应用程序。

Sequel Pro

https://sequelpro.com/favicon/favicon-32x32.png

Sequel Pro是一个快速,易于使用的Mac数据库管理应用程序,用于处理MySQL数据库。

Robo 3T

https://robomongo.org/static/favicon-11ace079.ico

一个现代,强大且由社区驱动的MongoDB管理工具

DataGrip

https://www.jetbrains.com/favicon-32x32.png

jetbrains出品的数据库管理系统

tableplus

https://tableplus.com/resources/favicons/apple-icon-57x57.png

用于关系数据库的现代,本地且友好的GUI工具:MySQL,PostgreSQL,SQLite等

数据库

TeamViewer

https://www.teamviewer.cn/wp-content/themes/tv-wordpress-theme/dist/media/favicon.png

TeamViewer远程连接控制软件是一款随时随地连接到远程桌面电脑、移动设备及Iot,让远程连接过程更加的快速和安全,轻松实现对文件、网络及程序的实时支持或访问。

向日葵

https://sunlogin.oray.com/favicon.ico

向日葵远程控制软件是一款免费的集远程控制电脑手机、远程桌面连接、远程开机、远程管理、支持内网穿透的一体化远程控制管理工具软件

远程控制

v2ray

https://avatars0.githubusercontent.com/u/14110142?s=200&v=4

用于构建代理绕过网络限制的平台。

clash

https://github.com/Dreamacro/clash/raw/master/docs/logo.png

Go中基于规则的隧道

飞机场

GUI软件

哔哩哔哩

https://www.bilibili.com/favicon.ico

国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主

爱奇艺

https://www.iqiyipic.com/common/images/PCW-114x114.png

拥有海量、优质、高清的网络视频的大型视频网站,专业的网络视频播放平台

Youtube

https://www.youtube.com/favicon.ico

全球最大的视频网站

斗鱼

https://www.douyu.com/favicon.ico

斗鱼 - 每个人的直播平台

疯狂影视搜索

https://cdn.jsdelivr.net/gh/txxxjs/fk/ifkdy/2020-03-16/favicon.ico

疯狂影视搜索是一款全能影视搜索引擎,帮你找到最新影视资源,一站拥有无尽影视资源

全民vip视频在线解析

http://www.qmaile.com/favicon.ico

免费全网VIP视频会员免广告看电影!优酷vip解析,爱奇艺vip解析,腾讯vip解析,乐视vip解析,芒果vip解析

蜜蜂剪辑

https://qncdnimg.aoscdn.com/local/beecut.cn/img/favicon.png

免费在线视频剪辑、视频制作、视频剪切、视频转gif等实用功能

kk高清影院

kk高清影院,1080p电影下载,高清电影迅雷下载,免费高清电影网

影视

自由的音乐

自由的音乐是一个免费试听并下载全网音乐的网站

音乐

影视/音乐

智联招聘

https://www.zhaopin.com/favicon.ico

智联招聘,更懂你的价值

前程无忧

https://www.51job.com/favicon.ico

招聘网,人才网,求职,找工作

BOSS直聘

https://www.zhipin.com/favicon.ico

BOSS直聘是权威领先的招聘网,开启人才网招聘求职新时代,让求职者与Boss直接开聊、加快面试、即时反馈,找工作就来BOSS直聘和Boss开聊吧

招聘/求职

ResumeSample

程序员简历模板系列, WEB/IOS/Android/C++/node等以及通用程序员简历模板

程序员找工作黑名单

http://coder.shengxinjing.cn/logo.ico

有些事情,应该被记住

看准网

https://www.kanzhun.com/favicon.ico

看准网★中国领先的职场信息平台,专注于公司评论,晒工资,工资待遇,面试,公司福利等.您可以在看准网上匿名分享您的职业信息

其他

招聘/求职

TinyPNG

https://tinypng.com/images/apple-touch-icon.png

智能PNG和JPEG压缩,以质量和文件大小的完美平衡来优化您的图像

Squoosh

https://squoosh.app/assets/favicon.ico

在浏览器中用不同的编解码器压缩和比较图像(Google出品)

压缩工具

草料二维码

https://static.clewm.net/static/images/favicon.ico

用专业的二维码产品帮助企业创造价值

Feed 验证器

验证RSS是否符合标准规范

淘捏捏

https://www.taonienie.com/favicon.ico

淘宝信誉查询 - 淘捏捏卖家工具箱 淘宝信誉查询_淘宝信用查询_淘宝小号查询_淘宝黑号查询

天眼查

https://www.tianyancha.com/favicon.ico

人人都在用商业安全工具_企业信息查询_公司查询_工商查询_企业信用信息查询系统

语雀

https://yuque.com/favicon.ico

优雅高效的在线文档编辑与协同工具,让每个企业轻松拥有文档中心 - 阿里巴巴

求是潮云U盘

https://www.qsc.zju.edu.cn/box/favicon.ico

临时文件上传, 快速和稳定

云转换

https://www.360converter.com/images/favicon.ico

在线免费转换视频,音频,YouTube视频到文字,视频到文字,音频到文字,语音转换成文字

Picdiet

https://www.picdiet.com/css/favicon.ico

独特且强悍的JavaScript算法,能极速压缩80%的图片大小,而不损害其质量

easyicon

https://cdn-img.easyicon.net/favicon.ico

在线图标转换ico、icns

Smallpdf

https://smallpdf.com/favicon.png

压缩pdf、各种文件格式转换pdf

Cool Backgrounds

https://coolbackgrounds.io/images/favicon-fe5a0ff5.png

生成非常酷的彩色背景图像

Unsplash Source

https://source.unsplash.com/favicon-32x32.png

随机生成图片链接

石墨文档

https://assets.smcdn.cn/from_qbox/favicon.ico

一款轻便、简洁的在线协作文档工具,PC端和移动端全覆盖,支持多人同时对文档编辑和评论...

Emoji searcher

https://emoji.muan.co/appicon.png

Emoji表情大全

imgURL

https://imgurl.org/favicon.ico

ImgURL是一个简单、纯粹的图床程序,让个人图床多一个选择

拷贝兔

https://f0cdn.anyknew.com/web/img/icons/favicon-32x32.png

跨平台分享工具,纯Web,IOS,MAC,Linux,Android互传

表格工具

https://tableconvert.com/static/images/favicon.png

一个功能强大的在线表格编辑器,支持Excel、Markdown、JSON、CSV、HTML等格式的相互转换

360查字体

https://p2.ssl.qhimg.com/t014de4ba13ada26743.png

360查字体 - 查版权,免纠纷

sejda

https://www.sejda.com/images/icon_128.png

在线HTML转换pdf

AI人工智能图片放大

https://bigjpg.com/static/css/touch-icon-iphone.png

Bigjpg - 使用开源waifu2x人工智能深度卷积神经网络(CNN)智能无损免费放大图片

VVV文档在线导出工具

免费下载百度文库文档

在线文件编码识别

http://tools.bugscaner.com/static/images/favicon.ico

在线文件编码识别

iptv

http://tools.bugscaner.com/static/images/favicon.ico

收集来自世界各地的5000多个公共IPTV频道

临时邮箱

https://www.linshiyouxiang.net/public/zh-CN/img/favicon.ico

10分钟邮箱,临时邮箱,临时邮,临时电子邮箱,24小时邮箱,一次性邮箱,匿名邮箱,安全邮箱

辅助工具

其他

实用工具

jQuery

https://jquery.com/jquery-wp-content/themes/jquery.com/i/favicon.ico

jQuery是一个JavaScript函数库

webpack

https://www.webpackjs.com/assets/favicon.ico

webpack是一个模块打包器

Babel

https://babeljs.io/img/favicon.png

用于编写下一代 JavaScript 的编译器

ESLint

https://cn.eslint.org/img/favicon.512x512.png

可组装的JavaScript和JSX检查工具

stylelint

https://avatars3.githubusercontent.com/u/10076935?s=200&v=4

一个强大的现代样式风格的linter

Mocha

https://avatars0.githubusercontent.com/u/8770005?s=200&v=4

Mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行

MUI

https://avatars1.githubusercontent.com/u/5485517?s=200&v=4

MUI: 最接近原生APP体验的高性能前端框架

rollup

https://avatars0.githubusercontent.com/u/12554859?s=200&v=4

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序

standard

https://avatars1.githubusercontent.com/u/29208316?s=200&v=4

JavaScript样式指南,带有linter和自动代码修复程序

JavaScript

Faker

https://github.com/favicon.ico

在Node.js和浏览器中生成大量逼真的假数据

sweetalert

JavaScript Alert 的漂亮替代品

Sortable

https://avatars0.githubusercontent.com/u/17040762?s=200&v=4

一个JavaScript库,用于在现代浏览器和触摸设备上对拖放列表进行重新排序

formilyjs

Formily 是一个由阿里巴巴集团多 BU 共建的面向中后台复杂场景的表单解决方案,它也是一个表单框架

rough-notation

https://roughnotation.com/images/fav.png

一个小的JavaScript库,用于在网页上创建手绘动画并为其添加动画效果

AntV

https://avatars3.githubusercontent.com/u/19199542?s=200&v=4

AntV 是蚂蚁金服全新一代数据可视化解决方案

Lodash

https://www.lodashjs.com/icons/favicon-32x32.png

Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库

Swiper

https://www.swiper.com.cn/favicon.ico

轻量级的移动设备触控滑块的js框架,使用硬件加速过渡

fastclick

Polyfill 解决移动端具有300ms延迟的库

Layer

丰富多样的Web弹出层组件,可轻松实现Alert/Confirm/Prompt/普通提示/页面区块/iframe/tips等等几乎所有的弹出交互

moment.js

https://momentjs.com/static/img/moment-favicon.png

一个轻量级的JavaScript日期库,用于解析,验证,操作和格式化日期

js-cookie

一个简单,轻量级的JavaScript API,用于处理浏览器cookie

qs

具有嵌套支持的查询字符串解析器

Mock.js

生成随机数据,拦截 Ajax 请求

GITALK

https://gitalk.github.io/favicon.ico

凹凸实验室出品的一款基于 Github Issue 和 Preact 开发的评论插件

prism

https://prismjs.com/assets/favicon.png

轻巧,强大,优雅的代码语法高亮

nprogress

顶部加载进度条

iNotify

JS实现浏览器标题闪烁,滚动,语音提示,Chrome/Safari/FireFox/IE通知

html2canvas

最流行的JavaScript屏幕截图

dayjs

使用与Moment.js兼容的API来解析,验证,操作和显示现代浏览器的日期和时间

JsBarcode

易于使用但功能强大的条形码生成器,适用于Web和Node.js

clipboard.js

现代复制到剪贴板。没有Flash。只需3kb gzipped。

lib-flexible

可伸缩布局方案, 淘宝rem解决方案

js-xss

根据白名单过滤HTML(防止XSS攻击)

mescroll

精致的下拉刷新和上拉加载 js框架.支持vue,完美运行于移动端和主流PC浏览器

better-scroll

灵感来自iscroll,它具有更好的滚动性能

pinyinjs

一个实现汉字与拼音互转的小巧web工具库

ms

使用此包可以轻松地将各种时间格式转换为毫秒。

ramda

https://avatars2.githubusercontent.com/u/5298359?s=200&v=4

适用于JavaScript程序员的实用函数库

decimal.js

JavaScript的任意精度Decimal类型 (0.1+0.2=0.3)

copy-to-clipboard

简单的模块公开copy功能,它将尝试使用execCommand与特定于IE的clipboardData接口的回退,最后,通常prompt使用适当的文本内容和消息

path-to-regexp

将字符串路径转换成正则表达式

autosize

autosize是一个小的独立脚本,可以自动调整textarea域的高度以适合文本

shake.js

监听手机设备摇动

progressbar

可以轻松地为Web创建响应式和时尚的进度栏。动画即使在移动设备上也表现良好

easy-mock

https://avatars0.githubusercontent.com/u/28626637?s=200&v=4

Easy Mock 是一个可视化,并且能快速生成模拟数据的持久化服务

Clamp.js

https://joe.sh/assets/images/favicon.ico

JS版本的多行文本溢出省略

json-bigint

带有bigints支持的JSON.parse / stringify

exif-js

用于读取EXIF图像元数据的JavaScript库

lunr.js

Lunr.js是一个用于浏览器的小型全文本搜索库。它为JSON文档建立索引,并提供一个简单的搜索界面来检索与文本查询最匹配的文档

hotkeys

强大的Javascript库,用于捕获键盘输入和输入的按键组合。它没有依赖性。

dom-to-image

使用HTML5 canvas从DOM节点生成图像

single-spa

https://avatars1.githubusercontent.com/u/59940233?s=200&v=4

使微前端变得简单

qiankun

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

为微型前端提供快速,简单和完整的解决方案

nanoid

https://zelark.github.io/nano-id-cc/favicon.ico

一个很小的,安全的,URL友好的,唯一的JavaScript字符串ID生成器。

Numeral-js

一个用于格式化和处理数字的javascript库

ua-parser-js

用于从userAgent字符串检测浏览器,引擎,操作系统,CPU和设备类型/模型。支持浏览器和node.js环境

hammer.js

https://avatars0.githubusercontent.com/u/7997161?s=200&v=4

一个用于多点触摸手势的javascript库

常用插件

i18next

https://avatars1.githubusercontent.com/u/8546082?s=200&v=4

i18next是一个非常流行的国际化框架,适用于浏览器或任何其他JavaScript环境(例如,node.js)。

js-lingui

https://avatars3.githubusercontent.com/u/11225539?s=200&v=4

JavaScript的可读,自动化和优化(5 kb)国际化

国际化多语言方案

wow.js

基于Animate.css,向下滚动页面时显示CSS动画,轻松自定义动画设置:样式,延迟,长度,偏移,迭代...

Waves

受Google材质设计启发的点击效果, 波纹效果

velocity

加速JavaScript动画

anime

轻量级的JavaScript动画库。它适用于任何CSS属性,单个CSS转换,SVG或任何DOM属性以及JavaScript对象

Hover-Buttons

hover动画CSS / SCSS按钮

动画

JavaScript-MD5

JavaScript MD5实现。兼容服务器端环境,如node.js,RequireJS等模块加载器和所有Web浏览器

js-sha1

JavaScript的简单SHA1哈希函数支持UTF-8编码。

js-base64

JavaScript的Base64实现

jsSHA

SHA-1,SHA-224,SHA3-224,SHA-256,SHA3-256,SHA-384,SHA3-384,SHA-512,SHA3-512,SHAKE128 ,和SHAKE256以及HMAC

crypto-js

加密标准的JavaScript库

加盐

pdf.js

PDF.js是一个使用HTML5构建的可移植文档格式(PDF)查看器

webuploader

百度出品,采用大文件分片并发上传,极大的提高了文件上传效率。

pdfmake

纯JavaScript中的客户端/服务器端PDF打印, HTML转换Pdf

ViewerJS

JavaScript中的文档阅读器, pdf/ppt/opt/odt等文件渲染成HTML

filepond

灵活而有趣的JavaScript文件上传库

FileSaver.js

客户端保存文件的解决方案,非常适合在客户端上生成文件的Web应用程序

jsPDF

一个使用JavaScript生成PDF的库

文件插件相关

PhotoSwipe

适用于移动和桌面的JavaScript图像库, 图片预览

viewerjs

javascript图片预览

图片预览

howler.js

https://howlerjs.com/assets/images/favicon.ico

现代 Web 音频 javascript 库

DPlayer

哇,这么可爱的HTML5 danmaku视频播放器

APlayer

哇,这么可爱的HTML5音乐播放器

音频/视频

three.js

https://threejs.org/files/favicon.ico

JavaScript 3D引擎

flowy

创建流程图的最小JavaScript库

incubator-echarts

https://echarts.apache.org/examples/images/favicon.png

浏览器的功能强大的交互式图表和可视化库

d3

https://avatars1.githubusercontent.com/u/1562726?s=200&v=4

借助SVG,Canvas和HTML使数据栩栩如生。

图形

uikit

https://getuikit.com/images/favicon.png

一款轻量级、模块化的前端框架可快速构建强大的web前端界面

UI组件库

JsBridge

android java和javascript桥接,灵感来自微信webview jsbridge

DSBridge-Android

一个现代的跨平台JavaScript桥接,通过它您可以在JavaScript和本机之间同步或异步地调用彼此的功能

原生APP交互webview桥接

joi

对象模式验证

validator.js

字符串验证插件、表单验证

async-validator

异步验证器

yup

无效的简单对象架构验证

参数验证

localForage

https://avatars2.githubusercontent.com/u/18673496?s=200&v=4

离线存储,使用简单但功能强大的API包装IndexedDB,WebSQL或localStorage。

数据库

introjs

https://avatars2.githubusercontent.com/u/2010360?s=200&v=4

为您的网站和项目提供新功能介绍和逐步用户指南的更好方法

shepherd

https://avatars3.githubusercontent.com/u/17297725?s=200&v=4

引导您的用户浏览您的应用程序

bootstrap-tour

使用Twitter Bootstrap Popovers快速方便地进行产品浏览

步骤引导

JavaScript

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

React

用于构建用户界面的 JavaScript 库

React Router

React 路由管理

Redux

https://avatars2.githubusercontent.com/u/13142323?s=200&v=4

React 状态管理

create-react-app

React官方脚手架

生态系统

React Redux

Redux的官方React绑定(通常配合redux使用)

redux-actions

Redux的Flux标准action实用程序(用于生成action)

redux-thunk

Redux的Thunk中间件, 用于处理异步逻辑

redux-saga

https://avatars2.githubusercontent.com/u/24776643?s=200&v=4

一个旨在使应用程序副作用(即异步事物,如数据获取和不纯的东西,如访问浏览器缓存)更容易管理,执行更高效,易于测试,以及更好地处理故障的库

Redux相关

React Native

使用React构建原生APP程序的框架

React Navigation

https://avatars0.githubusercontent.com/u/29647600?s=200&v=4

为您的本地应用程序提供路由和导航

expo

https://avatars0.githubusercontent.com/u/12504344?s=200&v=4

用于制作跨平台移动应用程序的Expo平台

ant-design-mobile-rn

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

一个基于 React Native 的 UI 组件库

React Native相关

Ant Design

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

Ant Design - A UI Design Language

MATERIAL-UI

https://material-ui.com/static/favicon.ico

React 组件用于更快速、更简便的 web 开发。你也可以建立你自己的设计系统,或者从 Material Design 开始

element

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

elementUI组件库

react-bootstrap

https://avatars0.githubusercontent.com/u/6853419?s=200&v=4

基于Bootstrap 3构建的组件库

evergreen

Evergreen是一个React UI框架,用于在Web上构建雄心勃勃的产品。由Segment带给您。

@alifd/next

@alifd/next 是 Alibaba Fusion Design 的官方 React 实现, 赋能企业中后台产品开发

zent

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

Zent 是有赞 PC 端 WebUI 规范的 React 实现,提供了一整套基础的 UI 组件以及一些常用的业务组件

React95

装修一新的现代的应用程序做出React Windows95的UI组件。

rsuite

https://avatars1.githubusercontent.com/u/19635045?s=200&v=4

React Suite 是一套 React 组件库,为后台产品而生。同时也是一个具有贴心设计以及对开发者友好的 UI 框架

chakra-ui

https://avatars2.githubusercontent.com/u/54212428?s=200&v=4

适用于您的React应用程序的简单,模块化和可访问的UI组件

PC端UI组件库

Ant Design Mobile

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

一个基于 Preact / React / React Native 的 UI 组件库

移动端UI组件库

React Helmet

这个可重用的反应组件将管理对文档头的所有更改

react-image-crop

用于React的响应式图像裁剪工具

React Helmet

这个可重用的反应组件将管理对文档头的所有更改

react-transition-group

当React组件进入或离开DOM时执行动画的简单方法

React Loadable

用于加载具有promise的组件的更高阶组件 - 路由懒加载

react-swipe

基于swipe.js封装的react组件/走马灯

Ant Motion

使用 Ant Motion 能够快速在 React 框架中使用动画,我们提供了单项,组合动画,以及整套解决方案

video-react

网络视频播放器使用React库从头开始构建HTML5世界

react-keeper

一个react路由库,更适合移动端使用,拥有缓存等功能

Fusion Design

基于React构建的Web可配置组件库

recharts

https://avatars0.githubusercontent.com/u/13690587?s=200&v=4

基于 React和D3 的组合式图表库

react-json-view

JSON查看器

BizCharts

基于G2和React的强大数据可视化库

react-draggable

一个简单的组件,用于使元素可拖动

react-slick

react走马灯组件

react-color

react 拾色器

react-intl

https://avatars1.githubusercontent.com/u/50559490?s=200&v=4

国际化React应用程序。这个库提供了React组件和一个API,用于格式化日期,数字和字符串,包括复数形式和处理翻译

react-data-grid

https://avatars3.githubusercontent.com/u/1763971?s=200&v=4

使用React构建的类似于Excel的网格组件,具有编辑器,键盘导航,复制和粘贴等功能

react-virtualized

https://cloud.githubusercontent.com/assets/29597/11736841/c0497158-9f87-11e5-8dfe-9c0be97d4286.png

React组件可有效呈现大型列表和表格数据

react-live

https://avatars3.githubusercontent.com/u/5078602?s=200&v=4

一个用于实时编辑React组件的灵活组件库

formik

https://jaredpalmer.com/formik/img/favicon.png

在React中轻松创建表单

其他组件库

react-move

https://github.com/favicon.ico

一个React组件,它创建可移动,可拖动,可调整大小,可缩放,可旋转,可扭曲,可收缩,可分组,可捕捉。

react-dnd

https://avatars2.githubusercontent.com/u/25307599?s=200&v=4

React DnD是一组React实用程序,可帮助您构建复杂的拖放接口,同时保持组件分离

react-beautiful-dnd

漂亮的和可访问的拖放列表

react-rnd

一个可调整大小且可拖动的React组件。

拖拽组件

ANT DESIGN PRO

https://avatars1.githubusercontent.com/u/12101536?s=200&v=4

开箱即用的中台前端/设计解决方案

开箱即用

enzyme

适用于React的JavaScript测试实用程序

Jest

Jest是一个令人愉快的JavaScript测试框架,专注于简单性。

单元测试

umijs

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

插件化的企业级前端应用框架。

DvaJS

https://avatars1.githubusercontent.com/u/20552239?s=200&v=4

基于React和Redux的轻量级和elm风格框架

umijs/hooks

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

你可以将 umi hooks 使用在任何地方,和任意组件库搭配使用。虽然我们的代码示例都是基于 ant design 的,但是并不代表我们的 Hooks 只能和 ant design 配合使用

umi-plugin-cache-route

https://avatars2.githubusercontent.com/u/33895495?s=200&v=4

路由缓存,类似vue keep-alive

umi/dva

React.js 小书

这是一本关于 React.js 的小书

TypeScript-React-Starter

TypeScript和React的入门模板,带有详细的README,描述了如何将两者结合使用。

react-redux-typescript-guide

TypeScript中的React和 Redux - 使用说明

知识

Mobx

https://avatars1.githubusercontent.com/u/17475736?s=200&v=4

简单、可扩展的状态管理

next.js

服务端渲染框架、SEO解决方案

nwb

适用于Web的React,Preact,Inferno和Vanilla JS应用,React库和其他npm模块的工具包,无需配置

ahooks

为 React Hooks 而生

react-app-rewired

覆盖create-react-app webpack配置而不弹出

其他

React

https://reactjs.org/favicon.ico

Vue.js

渐进式JavaScript 框架

Vue Router

Vue Router 是 Vue.js 官方的路由管理器

Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。

vue-devtools

vue.js调试工具

vue-cli

Vue.js开发的标准脚手架工具

vuepress

Vue 驱动的静态网站生成器

Vue SSR

Vue服务端渲染、SEO解决方案

vue-class-component

用于类式Vue组件的ECMAScript / TypeScript装饰器。

eslint-plugin-vue

Vue.js的官方ESLint插件

vite

Vite是一个经过验证的Web开发人员构建工具,可在开发过程中通过本机ES模块导入为您的代码提供服务,并将其与Rollup捆绑在一起进行生产

Vue 组合式 API

Vue 组合式 API在线文档阅读

生态系统

iView

https://avatars0.githubusercontent.com/u/20693613?s=200&v=4

一套基于 Vue.js 的高质量UI 组件库

Element

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库

Element Plus

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

支持Vue3.0的Element

Muse-UI

https://avatars0.githubusercontent.com/u/22283362?s=200&v=4

基于 Vue 2.0 优雅的 Material Design UI 组件库

Ant Design Vue

https://qn.antdv.com/favicon.ico

这里是 Ant Design 的 Vue 实现,开发和服务于企业级后台产品

vuetify

https://avatars2.githubusercontent.com/u/22138497?s=200&v=4

让Vue和Material Design的强大力量在开发上助您一臂之力

bootstrap-vue

https://avatars1.githubusercontent.com/u/22965283?s=200&v=4

BootstrapVue为Vue.js提供了最全面的Bootstrap 4组件和网格系统实现之一,并提供了广泛的自动WAI-ARIA可访问性标记

vue-material

https://avatars0.githubusercontent.com/u/23659108?s=200&v=4

Vue material简单,轻巧,完全符合Google Material Design规范

buefy

https://avatars1.githubusercontent.com/u/26799900?s=200&v=4

Buefy是一个基于Bulma框架和设计的Vue.js响应式UI组件的轻量级库。

PC端UI组件库

vant

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

轻量、可靠的移动端 Vue 组件库

vux

一个凑合的 Vue.js 移动端 UI 组件库

cube-ui

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

基于 Vue.js 实现的精致移动端组件库

Mand Mobile

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

面向金融场景的Vue移动端UI组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单

Mint UI

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

基于 Vue.js 的移动端组件库

NutUI

一套京东风格的轻量级移动端Vue组件库

移动端UI组件库

vue-awesome-swiper

基于swiper封装的轮播图组件

vue-meta

管理Vue 2.0组件中的页面元信息。支持SSR + Streaming

vue-scroller

Vue Scroller是Vonic UI 的基础组件。为了平滑滚动,拉动刷新和无限加载。

vue-infinite-loading

Vue.js的无限滚动插件(支持向上和向下)

其他组件/插件

iview-admin

基于iView的Vue 2.0管理系统模板

开箱即用

nuxt

https://avatars2.githubusercontent.com/u/23360933?s=200&v=4

Vue.js 通用应用框架

创建nuxt的脚手架工具

https://avatars2.githubusercontent.com/u/23360933?s=200&v=4

create-nuxt-app

nuxt服务端渲染框架

Vue.js

https://v3.vuejs.org/images/icons/apple-icon-152x152.png

Angular

一个框架,移动 & 桌面

angular-cli

用于Angular CLI脚手架工具

augury

Angular调试和可视化工具

生态系统

NG-ZORRO

https://avatars2.githubusercontent.com/u/30223759?s=200&v=4

基于Ant Design的Angular企业级UI组件

ng-bootstrap

https://avatars3.githubusercontent.com/u/14283866?s=200&v=4

基于Bootstrap 4的Angular组件

element-angular

https://avatars2.githubusercontent.com/u/12810740?s=200&v=4

Element Angular组件库

primeng

https://avatars1.githubusercontent.com/u/3494069?s=200&v=4

PrimeNG是Angular的丰富UI组件的集合

material

Material Design是一个统一的视觉,动作和交互设计系统的规范,适用于不同的设备。

PC端UI组件库

material

Material Design是一个统一的视觉,动作和交互设计系统的规范,适用于不同的设备。

移动端UI组件库

Angular

https://avatars0.githubusercontent.com/u/139426?s=200&v=4

小程序开发

微信小程序

小游戏开发

微信小游戏

小程序文档

mpvue

Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心

wepy

官方小程序组件化开发框架

mpx

https://avatars0.githubusercontent.com/u/27521938?s=200&v=4

Mpx是一款致力于提高小程序开发体验的增强型小程序框架(滴滴出品,基于vue)

uni-app

https://avatars1.githubusercontent.com/u/5485517?s=200&v=4

uni-app 是使用 Vue 语法开发小程序、H5、App的统一框架

omix

https://tencent.github.io/omi/assets/omi-logo2019.svg

腾讯原生小程序框架 OMIX 2.0

小程序框架

vant-weapp

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

轻量、可靠的小程序 UI 组件库

weui-wxss

https://avatars0.githubusercontent.com/u/18461506?s=200&v=4

这是一套基于样式库weui-wxss开发的小程序扩展组件库,同微信原生视觉体验一致的UI组件库

wxParse

wxParse-微信小程序富文本解析自定义组件,支持HTML及markdown解析

mpvue-wxParse

适用于 Mpvue 的微信小程序富文本解析自定义组件

echarts-for-weixin

https://avatars1.githubusercontent.com/u/2268460?s=200&v=4

ECharts 的微信小程序版本

腾讯位置服务

https://lbs.qq.com/favicon.ico

微信小程序原生LBS能力的最佳拍档

ColorUI

鲜亮的高饱和色彩,专注视觉的小程序组件库

weapp-input-frame

验证码、支付密码输入框组件

小程序组件库/插件

JS接口签名校验工具

微信 JS 接口签名校验工具

接口调试工具

微信公众平台接口调试工具

computed

小程序自定义组件 computed / watch 扩展

微信公众号开发辅助工具

awesome-github-wechat-weapp

微信小程序开源项目库汇总

awesome-wechat-weapp

微信小程序开发资源汇总

资源

微信开放社区

小程序开发者专区,微信公众平台,微信开放社区,开发者专区

wechat-format

微信公众号排版编辑器,转换 Markdown 到微信特制的 HTML

微信开放平台

微信开放平台

其他

微信开发

https://avatars0.githubusercontent.com/u/18461506?s=200&v=4

CSS3 UI Lib

CSS动画集成、在线调试阴影

CSS Sprites Generator

CSS雪碧图生成

CSS渐变调试器

http://www.colorzilla.com/favicon.ico

前端开发调试CSS渐变必备神器

Animista

https://animista.net/favicon.ico

在线生成CSS动画

CSS Gradient

https://cssgradient.io/favicon.ico

CSS渐变调试并生成CSS代码

Grabient

https://www.grabient.com/favicon.ico

CSS渐变调试并生成CSS代码,还可以角度变换

px与em单位转换

http://pxtoem.com/favicon.ico

px与em单位转换

CSS三角形產生器

http://apps.eky.hk/css-triangle-generator/favicon.gif

CSS三角形產生器 - 使用純CSS繪畫三角形

SassMeister

https://www.sassmeister.com/favicon.ico

将sass语法转换成CSS语法

transfonter

https://transfonter.org/favicon.ico

字体图标转换Base64

Loading集合

上千种Loading认你选

CSS Reference

https://cssreference.io/favicons/favicon-32x32.png

css参考是一个免费的视觉指导css。它以最受欢迎的特性为特色,并用插图和动画示例对其进行说明

在线CSS阴影调试

https://www.w3cschool.cn/favicon.ico

CSS3 Box Shadow(阴影)效果在线调试工具

CSS

正则表达式验证器

https://regexper.com/favicon.ico

验证JavaScript正则表达式

JSON在线解析及格式化验证

https://www.json.cn/favicon.ico

json在线解析,json格式化,json格式验证,json转xml,xml转json

prettier

https://avatars0.githubusercontent.com/u/25822731?s=200&v=4

Prettier是一个固定的代码格式化程序。它通过解析代码并使用自己的规则重新打印它来强制执行一致的样式,这些规则考虑了最大行长度,并在必要时包装代码

正则表达式在线测试

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

正则表达式在线测试

spy-debugger

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

微信调试,各种WebView样式调试、手机浏览器的页面真机调试。便捷的远程调试手机页面、抓包工具,支持:HTTP/HTTPS,无需USB连接设备

VConsole

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

一个轻量、可拓展、针对手机网页的前端开发者调试面板

JavaScript

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

Staticfile CDN

https://www.staticfile.org/assets/images/logo.png

免费CDN服务,包括 JavaScript、CSS、图片和 swf 等静态文件

jsDelivr

https://www.jsdelivr.com/favicon.ico

jsDelivr – 开源 CDN

BootCDN

https://www.bootcdn.cn/assets/ico/favicon.ico

稳定、快速、免费的前端开源项目 CDN 加速服务

cdnjs

https://avatars0.githubusercontent.com/u/637362?s=200&v=4

面向Web开发人员的免费和开源公共Web CDN!

CDN

FunDebug

https://www.fundebug.com/favicon.ico

支持前端JavaScript,后端Node.js以及微信小程序错误监控

前端兼容性查询

https://www.caniuse.com/img/favicon-128.png

前端查询API各个厂商兼容性情况

Browserhacks

http://browserhacks.com/assets/images/browserhacks.ico

Browserhacks是来自各个互联网的浏览器特定CSS和JavaScript hacks的广泛列表。

Character Entity Reference Chart

字符实体参考图,>

awesome-web-editor

开源web编辑器汇总列表

jsfiddle

https://jsfiddle.net/img/favicon.png

强大的前端代码在线演示的网站

jsperf

https://avatars0.githubusercontent.com/u/11043997?s=200&v=4

jsPerf旨在提供一种简单的方法来创建和共享测试用例,通过运行基准测试来比较不同JavaScript代码段的性能

codesandbox

https://codesandbox.io/favicon.ico

codesandbox是为Web应用程序定制的在线编辑器。

HTML Reference

https://htmlreference.io/favicons/favicon-32x32.png

所有HTML元素和属性的免费指南参考

jsbin

https://static.jsbin.com/images/dave.min.svg

一个轻量级的html/css/js在线编辑器Debug调试器

jsfuck

http://www.jsfuck.com/favicon.ico

JSFuck是基于JavaScript原子部分的深奥和教育性编程风格。它仅使用六个不同的字符来编写和执行代码。

其他

工具

Bootstrap

https://getbootstrap.com/docs/4.5/assets/img/favicons/favicon.ico

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架

Sass

https://avatars2.githubusercontent.com/u/317889?s=200&v=4

Sass 是成熟、稳定、强大的 CSS 扩展语言

Less

https://avatars0.githubusercontent.com/u/3538330?s=200&v=4

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性

magic

CSS3动画特效

Animate.css

https://avatars3.githubusercontent.com/u/64791939?s=200&v=4

CSS动画的跨浏览器库,简单易用

normalize.css

http://necolas.github.io/normalize.css/favicon.ico

使浏览器更加一致地呈现所有元素并符合现代标准。它只针对需要规范化的样式

Hover

CSS3动力悬停效果的集合,适用于链接,按钮,徽标,SVG,特色图像等

github-markdown-css

复制GitHub Markdown样式的最小CSS量

autoprefixer

https://avatars1.githubusercontent.com/u/8296347?s=200&v=4

Autoprefixer是一款自动管理浏览器前缀的插件,它可以解析CSS文件并且添加浏览器前缀到CSS内容里

vivify

http://vivify.mkcreative.cz/assets/img/apple-icon-57x57.png

Vivify是免费的CSS动画库。

cubic-bezier

在线制作CSS动画

CSS

iconfont

http://www.iconfont.cn/favicon.ico

阿里妈妈MUX倾力打造的矢量图标管理、交流平台

Font Awesome

https://avatars1.githubusercontent.com/u/1505683?s=200&v=4

一套绝佳的图标字体库和CSS框架

LivIcons Evolution

https://livicons.com/apple-icon-57x57.png

会动的纯svg矢量图标库

ionicons

https://avatars0.githubusercontent.com/u/3171503?s=200&v=4

适用于Ionic Framework和Web应用程序的高级图标字体

material-design-icons

Google的Material Design图标

图标库

css battle

https://cssbattle.dev/images/logo-square.png

在线比拼CSS

学习CSS布局

http://zh.learnlayout.com/images/logo.png

学习CSS布局

资源

CSS

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/css/css.png

TypeScript

TypeScript 是一种由微软开发的自由和开源的编程语言,它是JavaScript的一个超集

TypeSearch

搜索typescript 类型包 @types/node

DefinitelyTyped

高质量TypeScript类型定义的存储库

typescript-eslint

https://avatars0.githubusercontent.com/u/46634674?s=200&v=4

Monorepo用于所有工具,使ESLint能够支持TypeScript

awesome-typescript

用于客户端和服务器端开发的强大TypeScript资源的集合。在TypeScript中编写精彩的JavaScript

TypeScript 入门教程

TypeScript 入门教程

TypeScript

TypeScript

https://www.typescriptlang.org/favicon-32x32.png

JavaScript 20 年

JavaScript 20 年

你不知道的JavaScript

你不知道的JavaScript

现代 JavaScript 教程

https://zh.javascript.info/img/favicon/favicon.png

以最新的 JavaScript 标准为基准。通过简单但足够详细的内容,为你讲解从基础到高阶的 JavaScript 相关知识

ECMAScript 6入门

ECMAScript 6入门

JavaScript教程

JavaScript 标准参考教程

书籍

JavaScript Puzzlers

你真的了解JavaScript吗?来试试吧!

InterviewMap

https://avatars1.githubusercontent.com/u/41361384?s=200&v=4

打造最好的面试图谱

飞冰早报

飞冰早报

jsdoc

用于JavaScript的API文档生成器。

30 seconds of code

https://avatars3.githubusercontent.com/u/43479428?s=200&v=4

精选的有用JavaScript代码段集合,您可以在30秒或更短的时间内理解这些代码段。

33-js-concepts

JavaScript开发者应懂的33个概念

ECMAScript Proposals

https://avatars1.githubusercontent.com/u/1725583?s=200&v=4

跟踪ECMAScript 提案

ecma262

https://avatars1.githubusercontent.com/u/1725583?s=200&v=4

ECMA-262的状态,流程和文档

JavaScript 秘密花园

https://bonsaiden.github.io/JavaScript-Garden/favicon.ico?v=2

JavaScript 语言最古怪用法的文档集合

Airbnb JavaScript 编码规范

Airbnb JavaScript 编码规范

Daily-Interview-Question

工作日每天一道前端大厂面试题,祝大家天天进步,一年后会看到不一样的自己

javascript-algorithms

JavaScript 算法与数据结构

weekly

https://avatars2.githubusercontent.com/u/26534952?s=200&v=4

前端精读周刊

文档

参考资料

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

WEB前端

Node.js

Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时

npm1

npm是JavaScript世界的包管理工具,并且是 Node.js 平台的默认包管理工具

官方

urllib

在复杂的世界中请求HTTP(s)URL

formstream

multipart / form-data编码流,用于文件上传的帮助程序。

validate-npm-package-name

给我一个字符串,我会告诉你它是否是有效的npm软件包名称

模块

Yarn

https://classic.yarnpkg.com/favicon.ico

快速、可靠、安全的依赖管理

awesome-nodejs

Node.js软件包和资源

nodebestpractices

最大的Node.js最佳实践列表

其他

NodeBB

https://avatars0.githubusercontent.com/u/4449608?s=200&v=4

基于Node.js的论坛软件,为现代网站

Ghost

https://avatars1.githubusercontent.com/u/2178663?s=200&v=4

Ghost 是基于 Node.js 构建的开源博客平台。Ghost 具有易用的书写界面和体验,博客内容默认采用 Markdown 语法书写。Ghost 的目标是取代臃肿的 Wordpress

CMS

nodebestpractices

Node.js 最佳实践, 最大的汇集,且每周都在增长 - 当前,超过50个最佳实现,样式指南,架构建议已经呈现

资料

生态系统

https://nodejs.org/static/images/favicons/favicon.ico

request

简化的HTTP请求客户端

superagent

一个小型渐进式客户端HTTP请求库,Node.js模块具有相同的API,具有许多高级HTTP客户端功能

axios

基于Promise的HTTP客户端,用于浏览器和node.js

node-fetch

一个轻量级的模块,将window.fetch带到Node.js

bent

带有async await的功能性JS HTTP客户端(Node.js和Fetch)

superagent-proxy

superagent代理扩展,这使您可以通过某种代理来代理HTTP请求

网络请求

Puppeteer

https://pptr.dev/favicons/apple-touch-icon.png

Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制Chromium或Chrome

cypress

https://avatars0.githubusercontent.com/u/8908513?s=200&v=4

对浏览器中运行的所有内容进行快速,轻松和可靠的测试,(类Puppeteer)

Mocha

https://avatars0.githubusercontent.com/u/8770005?s=200&v=4

Node.js和浏览器的简单,灵活,有趣的JavaScript测试框架

chai

https://avatars0.githubusercontent.com/u/1515293?s=200&v=4

node.js的BDD/TDD断言框架和可以与任何测试框架配对的浏览器

ava

https://avatars2.githubusercontent.com/u/8527916?s=200&v=4

未来的JavaScript测试运行器

Jest

https://jestjs.io/img/favicon/favicon.ico

Jest是一个令人愉快的JavaScript测试框架,专注于简单性。

testcafe

https://avatars1.githubusercontent.com/u/4243232?s=200&v=4

一个Node.js工具,用于自动化端到端Web测试

jest-puppeteer

https://avatars2.githubusercontent.com/u/26206404?s=200&v=4

使用Jest&Puppeteer运行测试 🎪✨

ts-jest

https://kulshekhar.github.io/ts-jest/assets/img/logo.png

具有对Jest的Sourcemap支持的TypeScript预处理器

jest-extended

https://avatars2.githubusercontent.com/u/26206404?s=200&v=4

扩展 jest 匹配器

单元测试

node-mysql2

node.js的快速node-mysql兼容的mysql驱动程序

sequelize

基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, SQLite 和 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 读取和复制等功能

mongoose

mongodb对象模型设计用于在异步环境中工作。

ioredis

适用于Node.js,以性能为中心且功能齐全的Redis客户端。

objection.js

Objection.js是Node.js的一个ORM ,它旨在避免使用SQL和底层数据库引擎的全部功能,同时尽可能简单地将magic保持在最低限度。

nedb

JavaScript数据库,用于Node.js,nw.js,electron和浏览器

typeorm

https://avatars0.githubusercontent.com/u/20165699?s=200&v=4

ORM for TypeScript和JavaScript(ES7,ES6,ES5)。支持MySQL,PostgreSQL,MariaDB,SQLite,MS SQL Server,Oracle,WebSQL数据库。适用于NodeJS,浏览器,Ionic,Cordova和Electron平台

knexjs

https://avatars0.githubusercontent.com/u/10490573?s=200&v=4

PostgreSQL,MySQL和SQLite3的查询构建器,旨在灵活,可移植且易于使用。

node-redis

https://avatars1.githubusercontent.com/u/5845577?s=200&v=4

高性能Node.js Redis客户端。

数据库

node-canvas

node-canvas是Node.js的Cairo -backed Canvas实现。

svg-captcha

在node.js中生成svg验证码

ccap

node.js使用C++库CImg生成验证码,无需安装任何其他库或软件

text-to-svg

将文本转换为SVG路径而不依赖于本机

svg2png

使用PhantomJS将SVG转换为PNG

图形相关

node-http-proxy

一个HTTP可编程代理库,支持websocket。它适用于实现反向代理和负载平衡器等组件

http-proxy-middleware

用于连接,快速和浏览器同步的单线程node.js http-proxy中间件(基于node-http-proxy)

代理

esprima

ECMAScript解析基础架构,可进行多用途分析, 将代码转换成AST

recast

JavaScript AST转换器,非破坏性漂亮打印机和自动源映射生成器

AST辅助工具

node-xlsx

NodeJS excel文件解析器和构建器

fs-extra

操作系统文件,用于替代内置的fs模块

js-xlsx

https://avatars0.githubusercontent.com/u/5826089?s=200&v=4

SheetJS社区版 - 电子表格工具包

node-archiver

https://www.archiverjs.com/images/logo.svg

文件压缩

文件相关

wechat-oauth

微信公共平台OAuth接口消息接口服务中间件与API SDK

wechat-api

微信公共平台API

wechat

微信公共平台消息接口服务中间件

wechaty

是适用于微信个人帐户的Bot SDK ,可以帮助您创建6行javascript的机器人

微信开发

Glob

匹配文件。 **/*.js

prompts

轻巧,美观和用户友好的交互式提示

enquirer

https://avatars3.githubusercontent.com/u/21160645?s=200&v=4

时尚,直观和用户友好的提示

cli-table3

https://avatars2.githubusercontent.com/u/887802?s=200&v=4

带有Node.JS的CLI的漂亮unicode表

commander.js

node.js命令行界面的完整解决方案,受Ruby指挥官的启发

ora

优雅的终端微调器

Inquirer.js

常用交互式命令行用户界面的集合

shelljs

Node.js的可移植Unix shell命令

download-git-repo

下载并提取git存储库(GitHub,GitLab,Bitbucket)

node-semver

https://avatars0.githubusercontent.com/u/6078720?s=200&v=4

node的semver解析器

node-progress

node.js的灵活ascii进度条

node-qrcode

二维码生成

open

打开URL,文件,可执行文件等内容。跨平台。

ssh2

用纯JavaScript编写的SSH2客户端和服务器模块,用于node.js

minimist

解析参数选项

node-clear

清空终端屏幕信息

chalk

https://avatars2.githubusercontent.com/u/13122722?s=200&v=4

终端字符串样式

yargs

https://avatars3.githubusercontent.com/u/16504989?s=200&v=4

通过解析参数并生成优雅的用户界面来帮助您构建交互式命令行工具。

CLI

handlebars

https://handlebarsjs.com/images/favicon.png

JavaScript模板引擎

ejs

https://ejs.co/favicon.svg

JavaScript模板引擎

mustache.js

https://github.githubassets.com/favicons/favicon.svg

使用JavaScript的无逻辑{{mustache}}模板

模板引擎

node-xml2js

简单的XML到JavaScript对象转换器。它支持双向转换。使用sax-js和 xmlbuilder-js

iconv-lite

纯JavaScript中转换字符编码。

node-uuid

在JavaScript中生成符合RFC的UUID

nativefier

使任何网页成为桌面应用程序

getmac

通过Node.js获取当前计算机的mac地址

http-server

一个简单的零配置命令行http服务器

node-schedule

Node的类似cron-like和非not-cron-like的作业调度程序。

qrcode-terminal

QRCode终端版

localtunnel

https://avatars1.githubusercontent.com/u/13612933?s=200&v=4

localtunnel将您的localhost暴露给世界,以便于测试和共享!无需混淆DNS或部署只是为了让其他人测试您的更改

passport

http://www.passportjs.org/images/favicon/apple-icon-57x57.png

Node.js的简单,不显眼的身份验证

parameter

参数验证工具

bytes

用于解析字符串字节, b/kb/mb/gb/tb/pb

js-yaml

https://avatars2.githubusercontent.com/u/723678?s=200&v=4

JavaScript YAML解析器和转储器。非常快

acorn

https://avatars0.githubusercontent.com/u/34631683?s=200&v=4

一个小型,基于JavaScript的快速JavaScript解析器

figlet.js

用JavaScript编写的FIG驱动程序,旨在完全实现FIGfont规范, 生成ascii

node-printer

本机 node.js 打印机

fontmin

无缝缩小字体

morgan

https://avatars1.githubusercontent.com/u/5658226?s=200&v=4

Node.js的HTTP请求记录器中间件

jsdom

https://avatars0.githubusercontent.com/u/9271229?s=200&v=4

与Node.js一起使用的各种Web标准的JavaScript实现

其他

依赖包

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png

Electron

https://www.electronjs.org/images/favicon.ico

使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用

electron-packager

https://www.electronjs.org/images/favicon.ico

通过JS或CLI自定义和封装您的Electron应用程序与特定于操作系统的软件包(.app,.exe等)

electron-installer-dmg

https://www.electronjs.org/images/favicon.ico

使用AppDMG为电子应用程序创建DMG安装程序

electron-vue

https://simulatedgreg.gitbooks.io/electron-vue/content/gitbook/images/apple-touch-icon-precomposed-152.png

基于 vue (基本上是它听起来的样子) 来构造 electron 应用程序的样板代码。

electron-builder

https://www.electron.build/assets/images/favicon.png

一个开箱即用的完整解决方案,用于将Electron, Proton Native or Muon 打包、构建成支持macOS, Windows and Linux三大系统的,可”自动更新”的可发布安装程序

electron-react-boilerplate

https://electron-react-boilerplate.js.org/logo/logo.png

基于React可扩展跨平台应用程序的App

menubar

https://www.electronjs.org/images/favicon.ico

Electron创建菜单栏桌面应用程序的高级方法。

Electron

https://www.electronjs.org/images/favicon.ico

nw.js

https://nwjs.org.cn/asset/img/favicon.ico

从DOM/WebWorker层,直接调用所有的Node模块,使用现有的web技术,开启一个全新的编写应用的方式

nw-builder

https://nwjs.org.cn/asset/img/favicon.ico

以编程方式或通过CLI 构建适用于Mac,Win和Linux的NW.js应用程序。

nwjs-ffmpeg-prebuilt

https://nwjs.org.cn/asset/img/favicon.ico

FFMpeg预构建的二进制文件具有专有的编解码器和构建窗口。

nw.js

跨平台框架

nest

https://avatars1.githubusercontent.com/u/28507035?s=200&v=4

Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,内置并完全支持 TypeScript(但仍然允许开发人员使用纯 JavaScript 编写代码)并结合了 OOP(面向对象编程),FP(功能编程)和 FRP(功能反应编程)的元素

awesome-nestjs

https://avatars1.githubusercontent.com/u/28507035?s=200&v=4

NestJS的精选列表

nest

Egg.js

https://eggjs.org/images/favicon.png

Egg.js 为企业级框架和应用而生,我们希望由 Egg.js 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本

egg-validate

https://eggjs.org/images/favicon.png

基于 parameter 封装的参数验证插件

egg-mailer

https://eggjs.org/images/favicon.png

基于 nodemailer 封装的参数验证插件

egg.js

Koa

https://avatars2.githubusercontent.com/u/5055057?s=200&v=4

Koa -- 基于Node.js 平台的下一代web开发框架

Express

https://avatars1.githubusercontent.com/u/5658226?s=200&v=4

Express - 快速、开放、极简的 Web 开发框架

Express/Koa

WEB框架

node-inspector

Node.js调试器基于Blink Developer Tools

debug

一个微小的JavaScript调试工具,以Node.js核心的调试技术为模型。适用于Node.js和Web浏览器

ndb

ndb是针对Node.js的改进调试体验,由Chrome DevTools启用

调试debugger

nvm

Node版本管理器 - 用于管理多个活动node.js版本的简单bash脚本

nvm-windows

适用于Windows的node.js版本管理实用程序

nvs

Node Version Switcher - 用于在Node.js的版本和分支之间切换的跨平台工具(受到nvm的启发)

n

Node.js版本管理:无配置文件,无复杂的API,非常简单

node版本管理

log4js-node

log4js 是一个 nodejs 日志管理工具,可以将日志以各种形式输出到各种渠道。

node-bunyan

用于node.js服务的简单快速的JSON日志记录模块

日志管理

yeoman

https://avatars0.githubusercontent.com/u/1714870?s=200&v=4

一套用于自动化开发工作流程的工具

nodemailer

https://avatars0.githubusercontent.com/u/16486629?s=200&v=4

发送来自Node.js的电子邮件 - 很容易就像蛋糕一样!

gh-pages

将文件发布到GitHub上的gh-pages分支的常规任务

集成工具

terser

https://avatars1.githubusercontent.com/u/43502240?s=200&v=4

适用于ES6+的JavaScript解析器,mangler和压缩器工具包

代码压缩

Awehunt

npm包下载量曲线对比图

nodemon

监视node.js应用程序中的任何更改并自动重新启动服务器 - 非常适合开发

pkg

将Node.js项目打包成可执行文件

npm-check-updates

查找package.json或bower.json允许的更新版本的软件包依赖项

husky

husky 可以防止错误的 git commit, git push 等

bundlephobia

找出在项目中添加新的依赖项的包大小

npm-run-all

一个CLI工具,可并行或顺序运行多个npm脚本

dotenv

从.env加载用于nodejs项目的环境变量

cross-env

运行跨平台设置和使用环境变量的脚本

nrm

npm源快速切换, npm, cnpm, taobao, nj, 内网

其他

辅助工具

https://nodejs.org/static/images/favicons/favicon.ico

Deno

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

一个安全的运行时的JavaScript和TypeScript

Deno 标准库

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

Deno 标准库

官方

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

Deno

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

适用于Deno的Visual Studio Code插件

工具

https://avatars1.githubusercontent.com/u/42048915?s=200&v=4

Deno

Node.js

Golang

Go编程语言

go.dev

大规模构建快速,可靠,高效的软件

awesome-go

精选的Go框架,库和软件的精选列表

Goproxy

https://avatars1.githubusercontent.com/u/49926011?s=200&v=4

中国最可靠的 Go 模块代理

Go语言中文网

https://static.studygolang.com/static/img/favicon.ico

Go语言中文网

Go标准库中文文档

https://studygolang.com/static/img/go.ico

Go标准库中文文档

生态

gin

Gin是用Go(Golang)编写的Web框架。它具有类似于martini的API,其性能比httprouter快40倍。如果您需要性能和良好的生产率,您会喜欢Gin

beego

beego是用于Go编程语言的开源,高性能Web框架

martini

Go的经典Web框架

echo

https://avatars1.githubusercontent.com/u/2624634?s=200&v=4

高性能,简约的Go Web框架

iris

https://www.iris-go.com/favicon.ico

最快的HTTP / 2 Go Web框架。AWS Lambda,gRPC,MVC,唯一路由器,Websocket,会话,测试套件,依赖注入等。expressjs和laravel的真正继承者|

fiber

https://avatars1.githubusercontent.com/u/59947262?s=200&v=4

Fiber是一个受Express启发的Web框架,建立在Fasthttp(Go最快的HTTP引擎)的基础上。 旨在简化零内存分配和性能的情况,以便快速开发。

WEB框架

生态系统

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Fyne

https://avatars3.githubusercontent.com/u/36045855?s=200&v=4

基于Material Design的Go跨平台GUI

GUI

logrus

Go的结构化,可插入日志记录。

zap

https://avatars3.githubusercontent.com/u/19262598?s=200&v=4

在Go中实现快速,结构化,水平的日志记录。

日志模块

gorm

适用于Golang的绝佳ORM库,旨在对开发人员友好

ent

https://entgo.io/img/favicon.ico

用于Go的简单但功能强大的实体框架,可轻松构建和维护具有大型数据模型的应用程序。

mysql

Go MySQL驱动程序是Go(golang)数据库/ sql包的MySQL驱动程序

sqlite3

sqlite3驱动程序

pq

适用于database/sql的Pure Go Postgres驱动程序

redis

https://redis.uptrace.dev/assets/images/favicon.png

用于Golang的类型安全的Redis客户端

数据库

json-iterator

高性能100%兼容的“ encoding / json”替代产品

blackfriday

Markdown处理器,安全、快速。

goldmark

用Go语言编写的markdown解析器。易于扩展,符合标准(CommonMark),结构合理。

goquery

接近jQuery语法的DOM解析库

go-yaml

yaml包使Go程序能够轻松地对yaml值进行编码和解码, 可以快速可靠地解析和生成YAML数据。

xurls

从文本中提取Urls

解析器

govalidator

参数验证程序,用于字符串,数字,切片和结构

validator

基于标签对结构和各个字段实现值验证。

参数验证

ip

获取公网IP地址、v4/v6

terminal

提供了用于处理终端的支持功能,这在UNIX系统上很常见

gopsutil

用于检索正在运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,概要分析和限制进程资源以及管理正在运行的进程

air

Go热重载

go-micro

分布式系统开发框架

xlsx

xlsx是一个库,用于简化在Go程序中读写Microsoft Excel最新版本使用的XML格式。

email

Go强大而灵活的电子邮件库。

websocket

Go的一种快速,经过测试且广泛使用的WebSocket实现

jwt-go

Golang 实现的 JSON WEB TOKEN

cron

Go 实现的 cron 包

qrcode

二维码生成

casbin

https://avatars3.githubusercontent.com/u/27810343?s=200&v=4

权限管理库,支持Golang中的访问控制模型,如ACL,RBAC,ABAC

resty

用于Go的简单HTTP和REST客户端库

grpc-go

https://grpc.io/favicons/apple-touch-icon.png

gRPC的Go语言实现。基于HTTP/2的RPC

colly

https://avatars2.githubusercontent.com/u/33584194?s=200&v=4

Colly提供了一个干净的界面来编写任何种类的爬虫

cors

使用net / http可配置的处理程序来处理CORS请求

其他

依赖包

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

color

CLI 控制台颜色渲染工具库, 支持Windows

终端颜色

cli

一个简单,快速且有趣的软件包,用于在Go中构建命令行应用

cobra

Cobra既是用于创建功能强大的现代CLI应用程序的库,又是用于生成应用程序和命令文件的程序

命令行解析

pb

Golang的控制台进度栏

mpb

Go cli应用程序的多进度条

控制台进度条

promptui

命令行应用程序的交互式提示

godotenv

从`.env`文件加载环境变量。

go-prompt

受python-prompt-toolkit启发,在Go中构建强大的交互式提示。

其他

CLI

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

gvm

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go版本管理器,类似 nvm

json-to-go

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

在线 JSON 转 Struct结构体

golangci-lint

https://avatars3.githubusercontent.com/u/35628013?s=200&v=4

Go的快速Linters Runner

The Go Playground

https://play.golang.org/favicon.ico

在线运行Golang

nuclei

https://nuclei.projectdiscovery.io/

Nuclei是基于模板的可配置目标扫描的快速工具,具有广泛的可扩展性和易用性。

jaeger

https://avatars3.githubusercontent.com/u/35628013?s=200&v=4

分布式链路追踪

delve

https://avatars1.githubusercontent.com/u/19232073?s=200&v=4

Delve是Go编程语言的调试器。

工具

工具

Go 入门指南

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《The Way to Go》中文译本,中文正式名《Go 入门指南》

Go语言圣经

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go语言圣经 《The Go Programming Language》 中文版本

Go WEB 编程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Golang电子书介绍如何使用Golang建立网络

Go简易教程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《The Little Go Book》中文译本,中文正式名《Go简易教程》

Go by Example 中文版

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go by Example 是对 Go 基于实践的介绍,包含一系列带有注释说明的示例程序。

Go语言之旅

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

本指南涵盖了该语言的大部分重要特性,主要包括:基础、方法和接口、并发等

Go语言101

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

一本着墨于Go语法语义以及运行时相关知识点的编程指导书(Go 1.15就绪)。 此书旨在尽可能地帮助Go程序员更深更全面地理解Go语言

Go语言高级编程

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

本书涵盖CGO、Go汇编语言、RPC实现、Web框架实现、分布式系统等高阶主题,针对Go语言有一定经验想深入了解Go语言各种高级用法的开发人员(不推荐新手)

Mastering GO

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

《Mastering GO》中文译本,《玩转 GO》。

Mastering GO2

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Mastering Go 第二版中文版来袭!

书籍

100天从新手到大师

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Golang - 100天从新手到大师

project-layout

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Go标准布局结构,项目架构结构参考。

编码规范

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

Uber Go 语言编码规范

Gin实战

https://avatars1.githubusercontent.com/u/4314092?s=200&v=4

WEB 框架Gin实战

其他

参考资料

Golang

Dart

https://pub.dev/favicon.ico

Dart语言

DartPad

https://pub.dev/favicon.ico

在线运行Dart语法

Dart packages

https://pub.dev/favicon.ico

Dart packages

Flutter

https://flutter.dev/images/favicon.png

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的

Flutter Icon

https://flutter.dev/images/favicon.png

Flutter内置Icon组件图标速查表

官方

imei_plugin

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

用flutter在Android中获取imei的插件

multi_image_picker

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

Flutter插件,可让您在iOS和Android上显示多图像选择器。

sqflite

https://avatars1.githubusercontent.com/u/2605412?s=200&v=4

SQLite flutter plugin

dio

https://flutter.dev/images/favicon.png

dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等

fish-redux

https://camo.githubusercontent.com/a53c432bb9c2222880a6eca54b5ed091d1ab3d40/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317237344e4a794c614b31526a535a46785858616d504658612d313032342d313032342e706e67

一个基于Redux状态管理的组合式flutter应用程序框架。它适用于建筑中型和大型应用。

flutter_pulltorefresh

https://flutter.dev/images/favicon.png

一个提供上拉加载和下拉刷新的组件,同时支持Android和Ios

json_serializable

https://flutter.dev/images/favicon.png

JSON序列化和反序列化的代码

flutter_swiper

https://flutter.dev/images/favicon.png

flutter最强大的siwiper, 多种布局方式,无限轮播,Android和IOS双端适配

FlutterToast

https://flutter.dev/images/favicon.png

适用于Flutter的Android Toast插件

dart-uuid

https://flutter.dev/images/favicon.png

生成 RFC4122(v1,v4,v5) UUIDs

fluwx

https://flutter.dev/images/favicon.png

Flutter版微信SDK.WeChat SDK for flutter.

常用模块

Material Design

https://flutter.dev/images/favicon.png

Material是一个由开源代码支持的设计系统,可以帮助团队构建高质量的数字体验

Flutter实战

https://flutter.dev/images/favicon.png

Flutter实战

samples

https://flutter.dev/images/favicon.png

Flutter示例和演示的集合

flutter-go

https://img.alicdn.com/tfs/TB1OJkeHNYaK1RjSZFnXXa80pXa-229-229.png

flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档

Flutter-Notebook

https://flutter.dev/images/favicon.png

flutter相关功能demo的集合,它能够帮助您快速学习一些零碎的知识

plugins

https://flutter.dev/images/favicon.png

Flutter团队维护的Flutter插件

awesome-flutter

https://flutter.dev/images/favicon.png

很棒的清单,精选了最好的Flutter库,工具,教程,文章等

flutter-do

https://flutter.dev/images/favicon.png

330+Widgets在线查看预览和使用。

文档资料

flutter_wanandroid

https://flutter.dev/images/favicon.png

基于Google Flutter的WanAndroid客户端,支持Android和iOS。包括BLoC、RxDart 、国际化、主题色、启动页、引导页,拥有较好的项目结构&比较规范的代码

Best-Flutter-UI-Templates

https://flutter.dev/images/favicon.png

Best-Flutter-UI-模板, 对所有人完全免费。其内置的Flutter Dart。

其他

生态系统

Flutter

Python

是一种解释型、面向对象、动态数据类型的高级程序设计语言。

PyPi

使用Python软件包索引查找,安装和发布Python软件包

官方

PCU

python-check-updates, 检查 pip 当前依赖包最新版本

工具

生态系统

https://www.python.org/static/favicon.ico

requests

https://www.python.org/static/favicon.ico

requests是一个简单而优雅的HTTP库。

aiohttp

https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png

用于asyncio和Python的异步HTTP客户端/服务器框架

Scrapy

https://avatars2.githubusercontent.com/u/733635?s=200&v=4

一个用于Python的快速高级Web爬虫框架。

selenium

https://avatars0.githubusercontent.com/u/983927?s=200&v=4

浏览器自动化框架和生态系统。

beautifulsoup

可以从HTML或XML文件中提取数据的Python库

HTTP/爬虫

Pillow

友好的PIL前叉,是一个出色的图像处理库

图像

numpy

使用Python进行科学计算的基本软件包。

运算

pandas

https://avatars1.githubusercontent.com/u/21206976?s=200&v=4

功能强大的Python数据分析工具包

数据分析

rich

https://github.com/favicon.ico

Rich是一个Python库,用于在终端中提供富文本和精美的格式。

Fire

Python Fire是一个用于从绝对任何Python对象自动生成命令行界面(CLI)的库。

colorama

Python中简单的跨平台彩色终端文本

tqdm

https://avatars1.githubusercontent.com/u/12731565?s=200&v=4

适用于Python和CLI的快速,可扩展的进度栏

paramiko

领先的Python SSHv2协议库

click

Python可组合命令行界面工具包

CLI

JMESPath

https://github.com/favicon.ico

JMESPath是JSON的查询语言

其他

依赖包

https://www.python.org/static/favicon.ico

Django

https://avatars3.githubusercontent.com/u/27804?s=200&v=4

具有期限的完美主义者的Web框架。

flask

https://avatars0.githubusercontent.com/u/16748505?s=200&v=4

用于构建Web应用程序的Python微框架。

WEB框架

框架

https://www.python.org/static/favicon.ico

简明 Python 教程

https://www.python.org/static/favicon.ico

旨在于介绍如何使用 Python 语言进行编程的自由图书。它以教材与指南的形式为入门者介绍 Python 语言。如果你对电脑知识的了解仅限于如何保存文本文件的话,那这本书就是为你准备的。

书籍

https://www.python.org/static/favicon.ico

100天从新手到大师

https://www.python.org/static/favicon.ico

Python - 100天从新手到大师

Python 入门指南

https://www.python.org/static/favicon.ico

Python 入门指南

What the f*ck Python!

https://www.python.org/static/favicon.ico

一些有趣且鲜为人知的 Python 特性.

awesome-python-cn

https://www.python.org/static/favicon.ico

Python 资源大全中文版

cheatsheet

https://www.python.org/static/favicon.ico

Python大全备忘单

awesome-python

https://www.python.org/static/favicon.ico

精选的Python框架,库,软件和资源的精选清单。

文档资料

https://www.python.org/static/favicon.ico

参考资料

Python

segmentfault

https://cdn.segmentfault.com/v-5f64887f/global/img/touch-icon.png

是中文领域最大的技术问答交流社区平台

掘金

https://b-gold-cdn.xitu.io/favicons/v2/apple-touch-icon.png

一个帮助开发者成长的社区

DiyCode1

致力于构建开发工程师高端交流分享社区

黑客派

https://static.ld246.com/images/favicon.png

黑客派是程序员和设计师的聚集地,汇聚了严谨求实的工程师和富有创意的设计师

Node.js专业中文社区

国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究

吾爱破解

https://www.52pojie.cn/favicon.ico

吾爱破解关注PC软件安全和移动安全领域,致力于软件安全与病毒分析的前沿

FreeBuf

https://www.freebuf.com/favicon.ico

FreeBuf黑客与极客,国内关注度最高的全球互联网安全媒体平台

IMWeb

https://imweb.io/public/icon.png

Web前端 腾讯IMWeb 团队社区

Stack Overflow

https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a

全球最大的技术问答网站,是一个与程序相关的IT技术问答网站

React社区

https://reactjs.org/favicon.ico

React论坛社区

众成翻译

https://p1.ssl.qhimg.com/t010e845cdf71587354.png

中国最好的技术翻译社区,最懂译者的翻译平台,奇虎360最大前端团队“奇舞团”出品

MDN web docs

https://developer.mozilla.org/favicon.ico

Mozilla 开发者社区,是一个完整的学习平台,你可以在这里深入学习Web技术以及能够驱动Web的软件

DEV Community

https://dev-to.s3.us-east-2.amazonaws.com/favicon.ico

在这里程序员分享想法并帮助彼此成长

问答社区1

V2EX

https://www.v2ex.com/static/img/v2ex_192.png

创意工作者们的社区

知乎

https://static.zhihu.com/static/favicon.ico

知乎,中文互联网最大的知识分享和社交平台

简书

https://www.jianshu.com/favicon.ico

简书是一个创作社区,任何人均可以在其上进行创作

小专栏

https://images.xiaozhuanlan.com/assets/favicon-bd135558698197f509ada06695c03a4f458f0077fa476f9a4e7ba9664f3dc55f.ico

小专栏是一个专业人士的创作知识社区,在这里您可以看到各个领域最专业的专栏和观点

Hacker News

https://news.ycombinator.com/favicon.ico

Hacker News

程序员客栈

https://stacdn.proginn.com/favicon_new.ico

程序员客栈是领先的程序员自由工作平台,未来互联网企业用人方式。提供优秀程序员为您进行网站建设制作、测试运维服务、人工智能AI、大数据区块链、软件开发等优质服务

职Q

https://fecdn4.zhaopin.cn/zq/assets/logoIcon.7a3e67.png

智联招聘旗下专业的招聘求职社交问答平台,覆盖了求职、招聘、职业规划、升职加薪、面试技巧、工作经验分享等热门话 题,涉及各种行业职场问题,1.5亿用户的职场社区

煎蛋

http://cdn.jandan.net/static/img/appicon.png

煎蛋以译介方式传播网络新鲜资讯

其他

Github

https://github.githubassets.com/favicons/favicon.svg

面向开源及私有软件项目的托管平台

码云

https://gitee.com/favicon.ico

码云专为开发者提供稳定、高效、安全的云端软件开发协作平台

GitLab

https://about.gitlab.com/ico/apple-touch-icon-57x57.png

用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

Coding

https://dn-coding-net-production-static.codehub.cn/platform/favicon.ico

面向开发者的云端开发平台,提供 git/svn 代码托管,代码质量分析,在线WebIDE,项目管理...

代码托管

社区站点

社区站点

觅元素

http://www.51yuansu.com/favicon.ico

觅元素,为您提供免费设计元素,设计元素的资源站

千库网

https://js.588ku.com/comp/public/css/iconfont/favicon.ico

致力于为设计师提供最优质的素材

花瓣网

https://huaban.com/img/touch-icon-ipad.png

花瓣,陪你做生活的设计师

Dribbble

https://cdn.dribbble.com/assets/favicon-b38525134603b9513174ec887944bde1a869eb6cd414f4d640ee48ab2a15a26b.ico

Dribbble是展示和宣传,推广,发现和探索设计的地方

万素网

https://669pic.com/669pic.ico

万素网致力于为国内各行业设计师,网站编辑,新媒体工作人员提供免费png素材与背景图片服务

ArtStation

https://www.artstation.com/assets/favicon.ico

ArtStation是游戏,电影,媒体和娱乐艺术家的展示平台。它使艺术家能够以流畅的方式展示他们的作品集,发现和保持灵感,并与新的机会联系起来。

Design Templates - Canva

https://static.canva.com/static/images/favicon.ico

设计模板 - Canva

Unsplash

https://unsplash.com/favicon-32x32.png

美丽,免费的照片。由世界上最慷慨的摄影师社区赠送。

稿定设计

https://www.gaoding.com/favicon.ico

电商素材、新媒体配图、手机海报等。

unDraw

https://undraw.co/favicon-32x32.png

带有开源插图的设计项目,可满足您可以想象和创建的任何想法。 免费使用您的颜色创建漂亮的网站,产品和应用程序

UI中国用户体验设计平台

https://www.ui.cn/Public/img/favicon.ico

UI中国用户体验平台,中国用户体验联盟理事单位。国内极具影响力的设计平台之一。十多年来,携手会员150万+,共同致力于为设计师与企业搭建健康的设计生态!

GitHub Octodex

https://octodex.github.com/favicon.ico

由GitHub Design团队创建和维护的所有吉祥物素材

Collect UI

http://collectui.com/img/favicon.ico

从每日ui档案库及其他收集的每日灵感。 根据Dribbble拍摄的照片,手工挑选,每天更新

材料

icons8

https://icons8.cn/vue-static/landings/primary-landings/favs/icons8_fav_96%C3%9796.png

下载免费图标,音乐,素材图片,矢量,UX插图和视频音乐

vectorlogo

https://www.vectorlogo.zone/favicon.ico

3000多种精美的SVG徽标,非常适合您的自述文件或积分页面

shareicon

https://www.shareicon.net/favicon.ico

超过25万个icon免费集合

SVG Logos

超过1000+SVG Logos集合

iconfont

https://www.iconfont.cn/favicon.ico

阿里妈妈MUX倾力打造的矢量图标管理、交流平台

iconscount

https://iconscout.com/favicon.ico

免费下载图标,插图和库存照片

图标

创客贴

https://www.chuangkit.com/favicon.ico

一款简单易用、功能强大的线上图形设计工具

Ps Play

Ps Play - 移动设计零阻力

鹿班

https://g.alicdn.com/acca/resource/luban/image/favicon.png

鹿班 - 让设计更美好(阿里出品)

fontspace

https://www.fontspace.com/android-chrome-192x192.png?v=00Bdv4Q5g6

6500+免费字体下载

工具

Color Hunt

https://colorhunt.co/img/color-hunt-icon-ios.png

Color Hunt是一个免费开放的平台,可通过数千种精选的时尚调色板来激发色彩灵感

配色

Design

Design

Docker — 从入门到实践

https://github.com/favicon.ico

Docker — 从入门到实践

Docker官方映像文档

https://github.com/favicon.ico

docker-library中的Docker官方映像文档

Docker Hub

https://avatars2.githubusercontent.com/u/7739233?s=200&v=4

Docker 镜像仓库

Docker-Compose

https://avatars2.githubusercontent.com/u/7739233?s=200&v=4

使用Docker定义和运行多容器应用程序

Docker

git-manual

https://github.com/favicon.ico

Git常用命令参考手册 (推荐学习)

GitHub Docs

https://github.com/favicon.ico

github 官方帮助文档

awesome-actions

https://github.com/favicon.ico

精选的GitHub上很棒的Action列表

Github - Actions

https://github.com/favicon.ico

Github 官方Actions 资源列表

growing-up

https://github.com/favicon.ico

程序猿成长计划

Git

nginx

https://avatars0.githubusercontent.com/u/1412239?s=200&v=4

nginx参考文档

Nginx开发从入门到精通

https://avatars0.githubusercontent.com/u/1412239?s=200&v=4

Nginx开发从入门到精通

服务器

redis

https://avatars3.githubusercontent.com/u/1529926?s=200&v=4

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构

MySQL

https://labs.mysql.com/common/themes/sakila/favicon.ico

MySQL数据库服务是一个完全托管的数据库服务,可使用世界上最受欢迎的开源数据库来部署云原生应用程序。 它是百分百由MySQL原厂开发,管理和提供支持

数据库

免费的编程中文书籍索引

https://avatars1.githubusercontent.com/u/14127308?s=200&v=4

免费的编程中文书籍索引

Zlibrary

https://zh.b-ok.global/apple-touch-icon.png

Z-Library 项目部分. 全球最大的数字图书馆, 电子书

IT-eBOOK

IT类技术书籍PDF

Refactoring.Guru

https://refactoringguru.cn/favicon.ico

22种常用设计模式

书籍

Linux 常用命令参考手册

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/linux/linux.png

Linux 常用命令参考手册

developer-roadmap

https://github.com/favicon.ico

2020年成为网络开发人员的路线图

Devhints

https://devhints.io/assets/favicon.png

WEB开发速查表,mysql/go/java/js/bash/react/git...

linux-command

https://wangchujiang.com/linux-command/img/favicon.ico

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集

learn-regex

https://github.com/favicon.ico

正则表达式学习

the-art-of-command-line

https://github.com/favicon.ico

命令行的艺术

Peter Beverloo

https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/chrome/chrome.png

Chrome浏览器命令参数参考手册

vimrc

https://avatars2.githubusercontent.com/u/11618545?s=200&v=4

vim配置参考手册

Jenkins

https://www.jenkins.io/zh/sites/default/files/jenkins_favicon.ico

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要

learnxinyminutes-docs

https://learnxinyminutes.com/favicon.ico

在Y分钟内学习X

Vscode Docs

https://code.visualstudio.com/apple-touch-icon.png

Vscode 扩展开发文档

YAML教程

YAML教程

Chrome Extension

https://www.google.com/images/icons/product/chrome-32.png

谷歌浏览器扩展插件开发文档

其他文档

参考文档

菜鸟教程

https://static.runoob.com/images/icon/mobile-icon.png

提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程

慕课网

https://www.imooc.com/static/img/common/touch-icon-ipad.png

慕课网-程序员的梦工厂

极客学院

https://www.jikexueyuan.com/favicon.ico

致力于“让IT学习更有效”,以实战为特色,为注重自我提升的IT从业者提供高品质职业教育

腾讯课堂

https://9.idqqimg.com/edu/edu_modules/edu-ui/img/nohash/favicon.ico

腾讯课堂 - 专业的在线教育平台

i春秋

https://static2.ichunqiu.com/icq/resources/images/favicon.ico

【i春秋】-专注网络安全_信息安全_白帽子的在线学习_教育_培训平台

实验吧

http://www.shiyanbar.com/favicon.ico

实验吧是国内最大的在线虚拟机实验IT教育平台

合天网安实验室

https://www.hetianlab.com/img/ico/favicon.ico

合天网安实验室是支持在线实验的信息安全学习的大型服务平台

网易云课堂

https://study.163.com/favicon.ico

网易云课堂 - 领先的实用技能学习平台

蓝桥

https://study.163.com/favicon.ico

蓝桥是国内领先的IT在线编程及在线实训学习平台,专业导师提供精选的实践项目,创新的技术使得学习者无需配置繁琐的本地环境,随时在线流畅使用

W3Cschool

https://7n.w3cschool.cn/statics/images/favicon.ico?v=2.2

编程狮,是一个专业的W3C前端开发及编程入门学习平台

7yue个人导航

教程相关

LeetCode

https://static.leetcode-cn.com/cn-assets/icons/favicon-96x96.png

提高你的编码技能,快速找到一份工作。这是扩展你知识和为下一次面试做好准备的最佳地方。

牛客网

https://www.nowcoder.com/favicon.ico

牛客网是互联网求职神器,C++、Java、前端、产品、运营技能学习/备考/求职题库

CS-Notes

https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/LogoMakr_1J56bI.png

技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计、Java、Python、C++

数据结构和算法动态可视化

https://visualgo.net/img/favicon.png

数据结构和算法动态可视化

algorithm-pattern

https://github.com/favicon.ico

算法模板,最科学的刷题方式,最快速的刷题路径,你值得拥有~

面试刷题

面试刷题

学无止境

乌云网镜像

WooYun是一个位于厂商和安全研究者之间的漏洞报告平台,注重尊重,进步,与意义

安全联盟

https://www.anquan.org/aq_static/images/favicon/favicon.ico

安全联盟 - 国内最大的第三方网络安全数据共享交换平台

360网站安全检测

https://www.360.cn/favicon.ico

为站长免费提供了网站漏洞检测、网站漏洞修复、网站后门检测、木马查杀,网址安全查询等服务

红黑联盟

https://www.2cto.com/favicon.ico

红黑联盟作为老牌的信息安全网站,致力于培训电脑技术高手.网站集网络安全,系统网络,编程开发,网站建设等频道于一体

知道创宇

https://www.knownsec.com/static/favicon.ico

知道创宇,网络空间安全专家,长期致力于为政府、企业类客户提供完善的云安全解决方案

安全周

关注安全资讯 专注资源共享

全球被黑站点统计系统

https://www.hacked.com.cn/favicon.ico

主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据...

安全脉搏

https://www.secpulse.com/favicon.ico

高质量的全球互联网安全媒体和技术平台,安全爱好者们交流与分享前沿安全技术的最佳社区

网络安全

XSS-CTF

http://xss.xiejiahe.com/favicon.png

XSS-CTF 是一个练习和入门的XSS平台, 每一位WEB工程师都应具备的基础知识,提高网络安全意识

XSS测试

XSS小游戏

Pasteurize

XSS CTF

CTF

fiddler

https://www.telerik.com/favicon.ico

Fiddler是一个用于HTTP调试的代理服务器应用程序

wireshark

https://www.wireshark.org/assets/images/favicon.ico

是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换

XSS平台-白帽安全测试

XSS平台是一个免费给白帽安全测试的平台

Security Headers

快速轻松地评估HTTP响应头的安全性

w9scan

一款全能型的网站漏洞扫描器,内置1200+插件可对网站进行一次规模的检测,功能包括但不限于web指纹检测、端口指纹检测、网站结构分析、各种流行的漏洞检测、爬虫以及SQL注入检测、XSS检测...

xray

https://avatars0.githubusercontent.com/u/7302766?s=200&v=4

xray 安全评估工具

cmd5

https://www.cmd5.com/favicon.ico

md5在线解密破解,md5解密加密

sqlmap

https://avatars3.githubusercontent.com/u/735289?s=200&v=4

自动SQL注入和数据库接管工具

nmap

https://avatars2.githubusercontent.com/u/63385?s=200&v=4

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端

xssor

http://xssor.io/s/favicon.ico

编码/解码,Codz,探针

在线子域名查询

https://phpinfo.me/favicon.ico

在线子域名查询

fuzzDicts

Web Pentesting Fuzz 字典

BurpSuitePro

免费的BurpSuitePro版本

辅助工具

Vulhub

https://vulhub.org/img/favicon.ico

基于docker和docker-compose的漏洞环境集合...

SRC-experience

工欲善其事,必先利其器,一些src挖掘奇技淫巧,国外新技术的学习网站分享

Intranet_Penetration_Tips

内网渗透TIPS

知识/测试

网络安全

网络安全

百度统计

https://tongji.baidu.com/favicon.ico

全球最大的中文网站流量分析平台,帮助企业收集网站访问数据,提供流量趋势、来源分析...

CNZZ

https://www.umeng.com/favicon.ico

CNZZ数据专家是全球最大的中文网站统计分析平台,为各类网站提供免费、安全、稳定

百度搜索资源平台

https://www.baidu.com/img/baidu.svg

百度搜索资源平台_让网站更具价值

问卷星

https://www.wjx.cn/favicon.ico

免费使用问卷星创建问卷调查、在线考试、360度评估等应用

金数据

https://gd-assets.jinshujucdn.com/favicon.ico

金数据是人人可用的在线表单工具,帮助用户收集和管理日常工作中的数据,提升工作效率

Google Analytics

https://ssl.gstatic.com/analytics/20201013-01/app/static/analytics_standard_icon.png

Google Analytics是一个收集数据并将其分析整理成实用报告的平台

腾讯移动分析

https://mta.qq.com/mta/resource/imgcache/images/favicon.ico

腾讯移动分析是腾讯数据云,腾讯大数据战略的核心产品,提供app应用的移动统计分析,支持android/iOS平台,实现用户画像、数据可视化、数据挖掘、渠道效果分析等综合数据服务

Google Adsense

https://www.google.com/favicon.ico

Google Adsense

运营相关

运营相关

运营相关

凹凸实验室

https://aotu.io/img/favicon-48x48.png

O2面向多终端技术体系,致力于构建沉淀与分享包括但不限于交互、页面制作技巧...

腾讯IMWeb

https://imweb.io/public/icon.png

Web前端 腾讯IMWeb 团队社区

字节跳动技术博客

https://avatars1.githubusercontent.com/u/4158466?s=200&v=4

字节跳动技术博客

淘系前端团队

https://fed.taobao.org/favicon.ico

用技术为体验提供无限可能

有赞技术团队

https://avatars2.githubusercontent.com/u/11404085?s=200&v=4

有赞技术团队

Team

阮一峰的网络日志

http://www.ruanyifeng.com/favicon.ico

阮一峰的网络日志

谢家和的博客

https://www.xiejiahe.com/favicon-128x128.png

WEB Developer

王垠的博客

https://www.yinwang.org/images/Yc.jpg

当然我在扯淡

Dan

https://overreacted.io/favicon.ico

react作者的博客

个人博客

博客看点

博客看点

- + diff --git a/main.2c0a6f45b8149d2e.js b/main.2c0a6f45b8149d2e.js deleted file mode 100644 index b56aaad76..000000000 --- a/main.2c0a6f45b8149d2e.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunknav2=self.webpackChunknav2||[]).push([[792],{285:(Ve,jt,fe)=>{"use strict";var X={};fe.r(X),fe.d(X,{hasBrowserEnv:()=>Kg,hasStandardBrowserEnv:()=>wee,hasStandardBrowserWebWorkerEnv:()=>zee,origin:()=>See});let $=null,V=!1,Me=1;const ce=Symbol("SIGNAL");function Z(t){const n=$;return $=t,n}const te={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Re(t){if(V)throw new Error("");if(null===$)return;$.consumerOnSignalRead(t);const n=$.nextProducerIndex++;nt($),n<$.producerNode.length&&$.producerNode[n]!==t&&ut($)&&Se($.producerNode[n],$.producerIndexOfThis[n]),$.producerNode[n]!==t&&($.producerNode[n]=t,$.producerIndexOfThis[n]=ut($)?ge(t,$,n):0),$.producerLastReadVersion[n]=t.version}function ne(t){if((!ut(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==Me)){if(!t.producerMustRecompute(t)&&!se(t))return t.dirty=!1,void(t.lastCleanEpoch=Me);t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=Me}}function K(t){if(void 0===t.liveConsumerNode)return;const n=V;V=!0;try{for(const e of t.liveConsumerNode)e.dirty||P(e)}finally{V=n}}function ee(){return!1!==$?.consumerAllowSignalWrites}function P(t){t.dirty=!0,K(t),t.consumerMarkedDirty?.(t)}function L(t){return t&&(t.nextProducerIndex=0),Z(t)}function B(t,n){if(Z(n),t&&void 0!==t.producerNode&&void 0!==t.producerIndexOfThis&&void 0!==t.producerLastReadVersion){if(ut(t))for(let e=t.nextProducerIndex;et.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function se(t){nt(t);for(let n=0;n0}function nt(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function Yt(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function ht(t){return void 0!==t.producerNode}let Nn=function Lo(){throw new Error};function ve(){Nn()}let we=null;function Vt(t,n){ee()||ve(),t.equal(t.value,n)||(t.value=n,function Sr(t){t.version++,function re(){Me++}(),K(t),we?.()}(t))}const lr={...te,equal:function le(t,n){return Object.is(t,n)},value:void 0};const _i=()=>{},lo={...te,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:_i};function Ct(t){return"function"==typeof t}function ka(t){const e=t(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const uo=ka(t=>function(e){t(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,o)=>`${o+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Fi(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class Ft{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const r of e)r.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(Ct(i))try{i()}catch(r){n=r instanceof uo?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{U2(r)}catch(s){n=n??[],s instanceof uo?n=[...n,...s.errors]:n.push(s)}}if(n)throw new uo(n)}}add(n){var e;if(n&&n!==this)if(this.closed)U2(n);else{if(n instanceof Ft){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}}_hasParent(n){const{_parentage:e}=this;return e===n||Array.isArray(e)&&e.includes(n)}_addParent(n){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(n),e):e?[e,n]:n}_removeParent(n){const{_parentage:e}=this;e===n?this._parentage=null:Array.isArray(e)&&Fi(e,n)}remove(n){const{_finalizers:e}=this;e&&Fi(e,n),n instanceof Ft&&n._removeParent(this)}}Ft.EMPTY=(()=>{const t=new Ft;return t.closed=!0,t})();const G1=Ft.EMPTY;function Y2(t){return t instanceof Ft||t&&"closed"in t&&Ct(t.remove)&&Ct(t.add)&&Ct(t.unsubscribe)}function U2(t){Ct(t)?t():t.unsubscribe()}const ys={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Wc={setTimeout(t,n,...e){const{delegate:i}=Wc;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=Wc;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function W2(t){Wc.setTimeout(()=>{const{onUnhandledError:n}=ys;if(!n)throw t;n(t)})}function qs(){}const G2=Oa("C",void 0,void 0);function Oa(t,n,e){return{kind:t,value:n,error:e}}let Zr=null;function Gc(t){if(ys.useDeprecatedSynchronousErrorHandling){const n=!Zr;if(n&&(Zr={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=Zr;if(Zr=null,e)throw i}}else t()}class Pa extends Ft{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,Y2(n)&&n.add(this)):this.destination=Qr}static create(n,e,i){return new Rt(n,e,i)}next(n){this.isStopped?St(function Aa(t){return Oa("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?St(function np(t){return Oa("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?St(G2,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const qc=Function.prototype.bind;function F(t,n){return qc.call(t,n)}class Y{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){en(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){en(i)}else en(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){en(e)}}}class Rt extends Pa{constructor(n,e,i){let o;if(super(),Ct(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&ys.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&F(n.next,r),error:n.error&&F(n.error,r),complete:n.complete&&F(n.complete,r)}):o=n}this.destination=new Y(o)}}function en(t){ys.useDeprecatedSynchronousErrorHandling?function ip(t){ys.useDeprecatedSynchronousErrorHandling&&Zr&&(Zr.errorThrown=!0,Zr.error=t)}(t):W2(t)}function St(t,n){const{onStoppedNotification:e}=ys;e&&Wc.setTimeout(()=>e(t,n))}const Qr={closed:!0,next:qs,error:function Hn(t){throw t},complete:qs},Mr="function"==typeof Symbol&&Symbol.observable||"@@observable";function Bn(t){return t}function Kc(t){return 0===t.length?Bn:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let Ut=(()=>{class t{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,o){const r=function K2(t){return t&&t instanceof Pa||function q2(t){return t&&Ct(t.next)&&Ct(t.error)&&Ct(t.complete)}(t)&&Y2(t)}(e)?e:new Rt(e,i,o);return Gc(()=>{const{operator:s,source:a}=this;r.add(s?s.call(r,a):a?this._subscribe(r):this._trySubscribe(r))}),r}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Mo(i))((o,r)=>{const s=new Rt({next:a=>{try{e(a)}catch(c){r(c),s.unsubscribe()}},error:r,complete:o});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Mr](){return this}pipe(...e){return Kc(e)(this)}toPromise(e){return new(e=Mo(e))((i,o)=>{let r;this.subscribe(s=>r=s,s=>o(s),()=>i(r))})}}return t.create=n=>new t(n),t})();function Mo(t){var n;return null!==(n=t??ys.Promise)&&void 0!==n?n:Promise}const J2=ka(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let N=(()=>{class t extends Ut{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Jc(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new J2}next(e){Gc(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Gc(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Gc(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:o,observers:r}=this;return i||o?G1:(this.currentObservers=null,r.push(e),new Ft(()=>{this.currentObservers=null,Fi(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new Ut;return e.source=this,e}}return t.create=(n,e)=>new Jc(n,e),t})();class Jc extends N{constructor(n,e){super(),this.destination=n,this.source=e}next(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,n)}error(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,n)}complete(){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===e||e.call(n)}_subscribe(n){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(n))&&void 0!==i?i:G1}}class rt extends N{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return!e.closed&&n.next(this._value),e}getValue(){const{hasError:n,thrownError:e,_value:i}=this;if(n)throw e;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}}function Zc(t){return Ct(t?.lift)}function dn(t){return n=>{if(Zc(n))return n.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Zt(t,n,e,i,o){return new Z2(t,n,e,i,o)}class Z2 extends Pa{constructor(n,e,i,o,r,s){super(n),this.onFinalize=r,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(c){n.error(c)}}:super._next,this._error=o?function(a){try{o(a)}catch(c){n.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function Ie(t,n){return dn((e,i)=>{let o=0;e.subscribe(Zt(i,r=>{i.next(t.call(n,r,o++))}))})}typeof navigator<"u"&&navigator,typeof navigator<"u"&&!/Opera/.test(navigator.userAgent)&&navigator,typeof navigator<"u"&&(/MSIE/.test(navigator.userAgent)||navigator),typeof navigator<"u"&&!/Opera|WebKit/.test(navigator.userAgent)&&navigator,typeof navigator<"u"&&navigator;const D9="https://g.co/ng/security#xss";class j extends Error{constructor(n,e){super(function el(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function ws(t){return{toString:t}.toString()}const nl="__parameters__";function ol(t,n,e){return ws(()=>{const i=function hp(t){return function(...e){if(t){const i=t(...e);for(const o in i)this[o]=i[o]}}}(n);function o(...r){if(this instanceof o)return i.apply(this,r),this;const s=new o(...r);return a.annotation=s,a;function a(c,l,u){const p=c.hasOwnProperty(nl)?c[nl]:Object.defineProperty(c,nl,{value:[]})[nl];for(;p.length<=u;)p.push(null);return(p[u]=p[u]||[]).push(s),c}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}const Cn=globalThis;function hn(t){for(let n in t)if(t[n]===hn)return n;throw Error("Could not find renamed property on target object.")}function uV(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function bi(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(bi).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function pp(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}const hV=hn({__forward_ref__:hn});function Wt(t){return t.__forward_ref__=Wt,t.toString=function(){return bi(this())},t}function st(t){return ih(t)?t():t}function ih(t){return"function"==typeof t&&t.hasOwnProperty(hV)&&t.__forward_ref__===Wt}function ae(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Ze(t){return{providers:t.providers||[],imports:t.imports||[]}}function oh(t){return A9(t,sh)||A9(t,O9)}function A9(t,n){return t.hasOwnProperty(n)?t[n]:null}function rh(t){return t&&(t.hasOwnProperty(fp)||t.hasOwnProperty(_V))?t[fp]:null}const sh=hn({\u0275prov:hn}),fp=hn({\u0275inj:hn}),O9=hn({ngInjectableDef:hn}),_V=hn({ngInjectorDef:hn});class oe{constructor(n,e){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=ae({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function bp(t){return t&&!!t.\u0275providers}const J1=hn({\u0275cmp:hn}),yp=hn({\u0275dir:hn}),Cp=hn({\u0275pipe:hn}),I9=hn({\u0275mod:hn}),zs=hn({\u0275fac:hn}),Z1=hn({__NG_ELEMENT_ID__:hn}),N9=hn({__NG_ENV_ID__:hn});function vt(t){return"string"==typeof t?t:null==t?"":String(t)}function wp(t,n){throw new j(-201,!1)}var At=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(At||{});let zp;function V9(){return zp}function Do(t){const n=zp;return zp=t,n}function F9(t,n,e){const i=oh(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&At.Optional?null:void 0!==n?n:void wp()}const Q1={},Sp="__NG_DI_FLAG__",ah="ngTempTokenPath",SV=/\n/gm,R9="__source";let rl;function Zs(t){const n=rl;return rl=t,n}function DV(t,n=At.Default){if(void 0===rl)throw new j(-203,!1);return null===rl?F9(t,void 0,n):rl.get(t,n&At.Optional?null:void 0,n)}function R(t,n=At.Default){return(V9()||DV)(st(t),n)}function W(t,n=At.Default){return R(t,ch(n))}function ch(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Tp(t){const n=[];for(let e=0;e({token:t})),-1),ed=X1(ol("Optional"),8),lh=X1(ol("SkipSelf"),4);function Va(t,n){return t.hasOwnProperty(zs)?t[zs]:null}function sl(t,n){t.forEach(e=>Array.isArray(e)?sl(e,n):n(e))}function B9(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function dh(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function jo(t,n,e){let i=al(t,n);return i>=0?t[1|i]=e:(i=~i,function j9(t,n,e,i){let o=t.length;if(o==n)t.push(e,i);else if(1===o)t.push(i,t[0]),t[0]=e;else{for(o--,t.push(t[o-1],t[o]);o>n;)t[o]=t[o-2],o--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function Dp(t,n){const e=al(t,n);if(e>=0)return t[1|e]}function al(t,n){return function $9(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),s=t[r<n?o=r:i=r+1}return~(o<n){s=r-1;break}}}for(;r-1){let r;for(;++or?"":o[u+1].toLowerCase(),2&i&&l!==p){if(xr(i))return!1;s=!0}}}}else{if(!s&&!xr(i)&&!xr(c))return!1;if(s&&xr(c))continue;s=!1,i=c|1&i}}return xr(i)||s}function xr(t){return!(1&t)}function RV(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?o+="."+s:4&i&&(o+=" "+s);else""!==o&&!xr(s)&&(n+=J9(r,o),o=""),i=s,r=r||!xr(i);e++}return""!==o&&(n+=J9(r,o)),n}function q(t){return ws(()=>{const n=Q9(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===ph.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Dr.Emulated,styles:t.styles||Qt,_:null,schemas:t.schemas||null,tView:null,id:""};X9(e);const i=t.dependencies;return e.directiveDefs=fh(i,!1),e.pipeDefs=fh(i,!0),e.id=function KV(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const o of e)n=Math.imul(31,n)+o.charCodeAt(0)|0;return n+=2147483648,"c"+n}(e),e})}function WV(t){return xt(t)||yi(t)}function GV(t){return null!==t}function Qe(t){return ws(()=>({type:t.type,bootstrap:t.bootstrap||Qt,declarations:t.declarations||Qt,imports:t.imports||Qt,exports:t.exports||Qt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Z9(t,n){if(null==t)return es;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,s,a=cl.None;Array.isArray(o)?(a=o[0],r=o[1],s=o[2]??r):(r=o,s=o),n?(e[r]=a!==cl.None?[i,a]:i,n[r]=s):e[r]=i}return e}function de(t){return ws(()=>{const n=Q9(t);return X9(n),n})}function jn(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function xt(t){return t[J1]||null}function yi(t){return t[yp]||null}function Ri(t){return t[Cp]||null}function eo(t,n){const e=t[I9]||null;if(!e&&!0===n)throw new Error(`Type ${bi(t)} does not have '\u0275mod' property.`);return e}function Q9(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:t.inputs||es,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Qt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Z9(t.inputs,n),outputs:Z9(t.outputs),debugInfo:null}}function X9(t){t.features?.forEach(n=>n(t))}function fh(t,n){if(!t)return null;const e=n?Ri:WV;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(GV)}function JV(...t){return{\u0275providers:Ap(0,t),\u0275fromNgModule:!0}}function Ap(t,...n){const e=[],i=new Set;let o;const r=s=>{e.push(s)};return sl(n,s=>{const a=s;mh(a,r,[],i)&&(o||=[],o.push(a))}),void 0!==o&&e_(o,r),e}function e_(t,n){for(let e=0;e{n(r,i)})}}function mh(t,n,e,i){if(!(t=st(t)))return!1;let o=null,r=rh(t);const s=!r&&xt(t);if(r||s){if(s&&!s.standalone)return!1;o=t}else{const c=t.ngModule;if(r=rh(c),!r)return!1;o=c}const a=i.has(o);if(s){if(a)return!1;if(i.add(o),s.dependencies){const c="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const l of c)mh(l,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!a){let l;i.add(o);try{sl(r.imports,u=>{mh(u,n,e,i)&&(l||=[],l.push(u))})}finally{}void 0!==l&&e_(l,n)}if(!a){const l=Va(o)||(()=>new o);n({provide:o,useFactory:l,deps:Qt},o),n({provide:xp,useValue:o,multi:!0},o),n({provide:ts,useValue:()=>R(o),multi:!0},o)}const c=r.providers;if(null!=c&&!a){const l=t;Op(c,u=>{n(u,l)})}}}return o!==t&&void 0!==t.providers}function Op(t,n){for(let e of t)bp(e)&&(e=e.\u0275providers),Array.isArray(e)?Op(e,n):n(e)}const ZV=hn({provide:String,useValue:hn});function Pp(t){return null!==t&&"object"==typeof t&&ZV in t}function Fa(t){return"function"==typeof t}const Ip=new oe(""),gh={},XV={};let Np;function vh(){return void 0===Np&&(Np=new hh),Np}class Li{}class ll extends Li{get destroyed(){return this._destroyed}constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Fp(n,s=>this.processProvider(s)),this.records.set(Y9,dl(void 0,this)),o.has("environment")&&this.records.set(Li,dl(void 0,this));const r=this.records.get(Ip);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(xp,Qt,At.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const n=Z(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Z(n)}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=Zs(this),i=Do(void 0);try{return n()}finally{Zs(e),Do(i)}}get(n,e=Q1,i=At.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(N9))return n[N9](this);i=ch(i);const r=Zs(this),s=Do(void 0);try{if(!(i&At.SkipSelf)){let c=this.records.get(n);if(void 0===c){const l=function oF(t){return"function"==typeof t||"object"==typeof t&&t instanceof oe}(n)&&oh(n);c=l&&this.injectableDefInScope(l)?dl(Vp(n),gh):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c)}return(i&At.Self?vh():this.parent).get(n,e=i&At.Optional&&e===Q1?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[ah]=a[ah]||[]).unshift(bi(n)),r)throw a;return function EV(t,n,e,i){const o=t[ah];throw n[R9]&&o.unshift(n[R9]),t.message=function kV(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let o=bi(n);if(Array.isArray(n))o=n.map(bi).join(" -> ");else if("object"==typeof n){let r=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];r.push(s+":"+("string"==typeof a?JSON.stringify(a):bi(a)))}o=`{${r.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${t.replace(SV,"\n ")}`}("\n"+t.message,o,e,i),t.ngTokenPath=o,t[ah]=null,t}(a,n,"R3InjectorError",this.source)}throw a}finally{Do(s),Zs(r)}}resolveInjectorInitializers(){const n=Z(null),e=Zs(this),i=Do(void 0);try{const r=this.get(ts,Qt,At.Self);for(const s of r)s()}finally{Zs(e),Do(i),Z(n)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(bi(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new j(205,!1)}processProvider(n){let e=Fa(n=st(n))?n:st(n&&n.provide);const i=function tF(t){return Pp(t)?dl(void 0,t.useValue):dl(i_(t),gh)}(n);if(!Fa(n)&&!0===n.multi){let o=this.records.get(e);o||(o=dl(void 0,gh,!0),o.factory=()=>Tp(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e){const i=Z(null);try{return e.value===gh&&(e.value=XV,e.value=e.factory()),"object"==typeof e.value&&e.value&&function iF(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{Z(i)}}injectableDefInScope(n){if(!n.providedIn)return!1;const e=st(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function Vp(t){const n=oh(t),e=null!==n?n.factory:Va(t);if(null!==e)return e;if(t instanceof oe)throw new j(204,!1);if(t instanceof Function)return function eF(t){if(t.length>0)throw new j(204,!1);const e=function vV(t){return t&&(t[sh]||t[O9])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new j(204,!1)}function i_(t,n,e){let i;if(Fa(t)){const o=st(t);return Va(o)||Vp(o)}if(Pp(t))i=()=>st(t.useValue);else if(function n_(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...Tp(t.deps||[]));else if(function t_(t){return!(!t||!t.useExisting)}(t))i=()=>R(st(t.useExisting));else{const o=st(t&&(t.useClass||t.provide));if(!function nF(t){return!!t.deps}(t))return Va(o)||Vp(o);i=()=>new o(...Tp(t.deps))}return i}function dl(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function Fp(t,n){for(const e of t)Array.isArray(e)?Fp(e,n):e&&bp(e)?Fp(e.\u0275providers,n):n(e)}function Er(t,n){t instanceof ll&&t.assertNotDestroyed();const i=Zs(t),o=Do(void 0);try{return n()}finally{Zs(i),Do(o)}}function o_(){return void 0!==V9()||null!=function MV(){return rl}()}function _h(t){if(!o_())throw new j(-203,!1)}const Rp=Function;const Rn=0,be=1,Xe=2,ci=3,kr=4,Hi=5,ho=6,hl=7,Mn=8,li=9,ns=10,at=11,od=12,s_=13,pl=14,Ln=15,Ra=16,fl=17,Ss=18,ml=19,a_=20,Xs=21,yh=22,dr=23,Be=25,Hp=1,is=7,gl=9,Zn=10;var wh=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(wh||{});function ki(t){return Array.isArray(t)&&"object"==typeof t[Hp]}function to(t){return Array.isArray(t)&&!0===t[Hp]}function Bp(t){return!!(4&t.flags)}function La(t){return t.componentOffset>-1}function zh(t){return!(1&~t.flags)}function Ar(t){return!!t.template}function sd(t){return!!(512&t[Xe])}class gF{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function u_(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}function ke(){return h_}function h_(t){return t.type.prototype.ngOnChanges&&(t.setInput=_F),vF}function vF(){const t=f_(this),n=t?.current;if(n){const e=t.previous;if(e===es)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function _F(t,n,e,i,o){const r=this.declaredInputs[i],s=f_(t)||function bF(t,n){return t[p_]=n}(t,{previous:es,current:null}),a=s.current||(s.current={}),c=s.previous,l=c[r];a[r]=new gF(l&&l.currentValue,e,c===es),u_(t,n,o,e)}ke.ngInherit=!0;const p_="__ngSimpleChanges__";function f_(t){return t[p_]||null}const os=function(t,n,e){},m_="svg";function Xt(t){for(;Array.isArray(t);)t=t[Rn];return t}function ad(t,n){return Xt(n[t])}function po(t,n){return Xt(n[t.index])}function cd(t,n){return t.data[n]}function Ha(t,n){return t[n]}function $o(t,n){const e=n[t];return ki(e)?e:e[Rn]}function Wp(t){return!(128&~t[Xe])}function ur(t,n){return null==n?null:t[n]}function v_(t){t[fl]=0}function __(t){1024&t[Xe]||(t[Xe]|=1024,Wp(t)&&Sh(t))}function ld(t){return!!(9216&t[Xe]||t[dr]?.dirty)}function Gp(t){t[ns].changeDetectionScheduler?.notify(7),64&t[Xe]&&(t[Xe]|=1024),ld(t)&&Sh(t)}function Sh(t){t[ns].changeDetectionScheduler?.notify(0);let n=Ts(t);for(;null!==n&&!(8192&n[Xe])&&(n[Xe]|=8192,Wp(n));)n=Ts(n)}function Th(t,n){if(!(256&~t[Xe]))throw new j(911,!1);null===t[Xs]&&(t[Xs]=[]),t[Xs].push(n)}function Ts(t){const n=t[ci];return to(n)?n[ci]:n}const ct={lFrame:A_(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let y_=!1;function C_(){return ct.bindingsEnabled}function Ba(){return null!==ct.skipHydrationRootTNode}function G(){return ct.lFrame.lView}function Dt(){return ct.lFrame.tView}function T(t){return ct.lFrame.contextLView=t,t[Mn]}function M(t){return ct.lFrame.contextLView=null,t}function pn(){let t=w_();for(;null!==t&&64===t.type;)t=t.parent;return t}function w_(){return ct.lFrame.currentTNode}function Or(t,n){const e=ct.lFrame;e.currentTNode=t,e.isParent=n}function Jp(){return ct.lFrame.isParent}function Zp(){ct.lFrame.isParent=!1}function T_(){return y_}function M_(t){y_=t}function fo(){const t=ct.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function Ms(){return ct.lFrame.bindingIndex}function Pr(){return ct.lFrame.bindingIndex++}function Ds(t){const n=ct.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function PF(t,n){const e=ct.lFrame;e.bindingIndex=e.bindingRootIndex=t,Qp(n)}function Qp(t){ct.lFrame.currentDirectiveIndex=t}function Xp(t){const n=ct.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}function e8(){return ct.lFrame.currentQueryIndex}function Dh(t){ct.lFrame.currentQueryIndex=t}function NF(t){const n=t[be];return 2===n.type?n.declTNode:1===n.type?t[Hi]:null}function E_(t,n,e){if(e&At.SkipSelf){let o=n,r=t;for(;!(o=o.parent,null!==o||e&At.Host||(o=NF(r),null===o||(r=r[pl],10&o.type))););if(null===o)return!1;n=o,t=r}const i=ct.lFrame=k_();return i.currentTNode=n,i.lView=t,!0}function t8(t){const n=k_(),e=t[be];ct.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function k_(){const t=ct.lFrame,n=null===t?null:t.child;return null===n?A_(t):n}function A_(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function O_(){const t=ct.lFrame;return ct.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const P_=O_;function n8(){const t=O_();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Bi(){return ct.lFrame.selectedIndex}function ja(t){ct.lFrame.selectedIndex=t}function Dn(){const t=ct.lFrame;return cd(t.tView,t.selectedIndex)}function xh(){ct.lFrame.currentNamespace=m_}let N_=!0;function ud(){return N_}function rs(t){N_=t}function Eh(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[c]<0&&(t[fl]+=65536),(a>14>16&&(3&t[Xe])===n&&(t[Xe]+=16384,F_(a,r)):F_(a,r)}const vl=-1;class hd{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}const r8={};class Oh{constructor(n,e){this.injector=n,this.parentInjector=e}get(n,e,i){i=ch(i);const o=this.injector.get(n,r8,i);return o!==r8||e===r8?o:this.parentInjector.get(n,e,i)}}function s8(t){return t!==vl}function pd(t){return 32767&t}function fd(t,n){let e=function UF(t){return t>>16}(t),i=n;for(;e>0;)i=i[pl],e--;return i}let a8=!0;function Ph(t){const n=a8;return a8=t,n}const H_=255,B_=5;let WF=0;const ss={};function Ih(t,n){const e=j_(t,n);if(-1!==e)return e;const i=n[be];i.firstCreatePass&&(t.injectorIndex=n.length,c8(i.data,t),c8(n,null),c8(i.blueprint,null));const o=Nh(t,n),r=t.injectorIndex;if(s8(o)){const s=pd(o),a=fd(o,n),c=a[be].data;for(let l=0;l<8;l++)n[r+l]=a[s+l]|c[s+l]}return n[r+8]=o,r}function c8(t,n){t.push(0,0,0,0,0,0,0,0,n)}function j_(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function Nh(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,o=n;for(;null!==o;){if(i=K_(o),null===i)return vl;if(e++,o=o[pl],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return vl}function l8(t,n,e){!function GF(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Z1)&&(i=e[Z1]),null==i&&(i=e[Z1]=WF++);const o=i&H_;n.data[t+(o>>B_)]|=1<=0?n&H_:ZF:n}(e);if("function"==typeof r){if(!E_(n,t,i))return i&At.Host?$_(o,0,i):Y_(n,e,i,o);try{let s;if(s=r(i),null!=s||i&At.Optional)return s;wp()}finally{P_()}}else if("number"==typeof r){let s=null,a=j_(t,n),c=vl,l=i&At.Host?n[Ln][Hi]:null;for((-1===a||i&At.SkipSelf)&&(c=-1===a?Nh(t,n):n[a+8],c!==vl&&q_(i,!1)?(s=n[be],a=pd(c),n=fd(c,n)):a=-1);-1!==a;){const u=n[be];if(G_(r,a,u.data)){const p=KF(a,n,e,s,i,l);if(p!==ss)return p}c=n[a+8],c!==vl&&q_(i,n[be].data[a+8]===l)&&G_(r,a,n)?(s=u,a=pd(c),n=fd(c,n)):a=-1}}return o}function KF(t,n,e,i,o,r){const s=n[be],a=s.data[t+8],u=Vh(a,s,e,null==i?La(a)&&a8:i!=s&&!!(3&a.type),o&At.Host&&r===a);return null!==u?$a(n,s,u,a):ss}function Vh(t,n,e,i,o){const r=t.providerIndexes,s=n.data,a=1048575&r,c=t.directiveStart,u=r>>20,_=o?a+u:t.directiveEnd;for(let b=i?a:a+u;b<_;b++){const y=s[b];if(b=c&&y.type===e)return b}if(o){const b=s[c];if(b&&Ar(b)&&b.type===e)return c}return null}function $a(t,n,e,i){let o=t[e];const r=n.data;if(function jF(t){return t instanceof hd}(o)){const s=o;s.resolving&&function CV(t,n){throw n&&n.join(" > "),new j(-200,t)}(function on(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():vt(t)}(r[e]));const a=Ph(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?Do(s.injectImpl):null;E_(t,i,At.Default);try{o=t[e]=s.factory(void 0,r,t,i),n.firstCreatePass&&e>=i.directiveStart&&function HF(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const s=h_(n);(e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,r[e],n)}finally{null!==l&&Do(l),Ph(a),s.resolving=!1,P_()}}return o}function G_(t,n,e){return!!(e[n+(t>>B_)]&1<{const n=t.prototype.constructor,e=n[zs]||d8(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[zs]||d8(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function d8(t){return ih(t)?()=>{const n=d8(st(t));return n&&n()}:Va(t)}function K_(t){const n=t[be],e=n.type;return 2===e?n.declTNode:1===e?t[Hi]:null}function eb(t,n=null,e=null,i){const o=tb(t,n,e,i);return o.resolveInjectorInitializers(),o}function tb(t,n=null,e=null,i,o=new Set){const r=[e||Qt,JV(t)];return i=i||("object"==typeof t?void 0:bi(t)),new ll(r,n||vh(),i||null,o)}class tn{static#e=this.THROW_IF_NOT_FOUND=Q1;static#t=this.NULL=new hh;static create(n,e){if(Array.isArray(n))return eb({name:""},e,n,"");{const i=n.name??"";return eb({name:i},n.parent,n.providers,i)}}static#n=this.\u0275prov=ae({token:tn,providedIn:"any",factory:()=>R(Y9)});static#i=this.__NG_ELEMENT_ID__=-1}new oe("").__NG_ELEMENT_ID__=t=>{const n=pn();if(null===n)throw new j(204,!1);if(2&n.type)return n.value;if(t&At.Optional)return null;throw new j(204,!1)};function h8(t){return t.ngOriginalError}class hr{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&h8(n);for(;e&&h8(e);)e=h8(e);return e||null}}const ib=new oe("",{providedIn:"root",factory:()=>W(hr).handleError.bind(void 0)});let yl=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=cR;static#t=this.__NG_ENV_ID__=e=>e}return t})();class aR extends yl{constructor(n){super(),this._lView=n}onDestroy(n){return Th(this._lView,n),()=>function qp(t,n){if(null===t[Xs])return;const e=t[Xs].indexOf(n);-1!==e&&t[Xs].splice(e,1)}(this._lView,n)}}function cR(){return new aR(G())}function lR(){return Cl(pn(),G())}function Cl(t,n){return new Te(po(t,n))}let Te=(()=>{class t{constructor(e){this.nativeElement=e}static#e=this.__NG_ELEMENT_ID__=lR}return t})();function rb(t){return t instanceof Te?t.nativeElement:t}let Ya=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new rt(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>new t})}return t})();const H=class dR extends N{constructor(n=!1){super(),this.destroyRef=void 0,this.pendingTasks=void 0,this.__isAsync=n,o_()&&(this.destroyRef=W(yl,{optional:!0})??void 0,this.pendingTasks=W(Ya,{optional:!0})??void 0)}emit(n){const e=Z(null);try{super.next(n)}finally{Z(e)}}subscribe(n,e,i){let o=n,r=e||(()=>null),s=i;if(n&&"object"==typeof n){const c=n;o=c.next?.bind(c),r=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(r=this.wrapInTimeout(r),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));const a=super.subscribe({next:o,error:r,complete:s});return n instanceof Ft&&n.add(a),a}wrapInTimeout(n){return e=>{const i=this.pendingTasks?.add();setTimeout(()=>{n(e),void 0!==i&&this.pendingTasks?.remove(i)})}}};function uR(){return this._results[Symbol.iterator]()}class Ua{static#e=Symbol.iterator;get changes(){return this._changes??=new H}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const e=Ua.prototype;e[Symbol.iterator]||(e[Symbol.iterator]=uR)}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){this.dirty=!1;const i=function xo(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function PV(t,n,e){if(t.length!==n.length)return!1;for(let i=0;iPR}),PR="ng",Tb=new oe(""),Ir=new oe("",{providedIn:"platform",factory:()=>"unknown"}),ta=new oe(""),vd=new oe("",{providedIn:"root",factory:()=>ea().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Mb=()=>null;function w8(t,n,e=!1){return Mb(t,n,e)}const Ib=new oe("",{providedIn:"root",factory:()=>!1});let Kh,Jh;function D8(){if(void 0===Kh&&(Kh=null,Cn.trustedTypes))try{Kh=Cn.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Kh}function Ml(t){return D8()?.createHTML(t)||t}function x8(){if(void 0===Jh&&(Jh=null,Cn.trustedTypes))try{Jh=Cn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Jh}function Vb(t){return x8()?.createHTML(t)||t}function Rb(t){return x8()?.createScriptURL(t)||t}class Wa{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${D9})`}}class qR extends Wa{getTypeName(){return"HTML"}}class KR extends Wa{getTypeName(){return"Style"}}class JR extends Wa{getTypeName(){return"Script"}}class ZR extends Wa{getTypeName(){return"URL"}}class QR extends Wa{getTypeName(){return"ResourceURL"}}function Yo(t){return t instanceof Wa?t.changingThisBreaksApplicationSecurity:t}function as(t,n){const e=function XR(t){return t instanceof Wa&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${D9})`)}return e===n}class rL{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(Ml(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class sL{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=Ml(n),e}}const cL=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Zh(t){return(t=String(t)).match(cL)?t:"unsafe:"+t}function xs(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function Sd(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const Hb=xs("area,br,col,hr,img,wbr"),Bb=xs("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),jb=xs("rp,rt"),E8=Sd(Hb,Sd(Bb,xs("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Sd(jb,xs("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Sd(jb,Bb)),k8=xs("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),$b=Sd(k8,xs("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),xs("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),lL=xs("script,style,template");class dL{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0,o=[];for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)o.push(e),e=pL(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=hL(e);if(r){e=r;break}e=o.pop()}return this.buf.join("")}startElement(n){const e=Yb(n).toLowerCase();if(!E8.hasOwnProperty(e))return this.sanitizedSomething=!0,!lL.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=Yb(n).toLowerCase();E8.hasOwnProperty(e)&&!Hb.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(Wb(n))}}function hL(t){const n=t.nextSibling;if(n&&t!==n.previousSibling)throw Ub(n);return n}function pL(t){const n=t.firstChild;if(n&&function uL(t,n){return(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,n))throw Ub(n);return n}function Yb(t){const n=t.nodeName;return"string"==typeof n?n:"FORM"}function Ub(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const fL=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,mL=/([^\#-~ |!])/g;function Wb(t){return t.replace(/&/g,"&").replace(fL,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(mL,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let Qh;function Gb(t,n){let e=null;try{Qh=Qh||function Lb(t){const n=new sL(t);return function aL(){try{return!!(new window.DOMParser).parseFromString(Ml(""),"text/html")}catch{return!1}}()?new rL(n):n}(t);let i=n?String(n):"";e=Qh.getInertBodyElement(i);let o=5,r=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=r,r=e.innerHTML,e=Qh.getInertBodyElement(i)}while(i!==r);return Ml((new dL).sanitizeChildren(A8(e)||e))}finally{if(e){const i=A8(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function A8(t){return"content"in t&&function gL(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var Uo=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Uo||{});function Wn(t){const n=Td();return n?Vb(n.sanitize(Uo.HTML,t)||""):as(t,"HTML")?Vb(Yo(t)):Gb(ea(),vt(t))}function Ot(t){const n=Td();return n?n.sanitize(Uo.URL,t)||"":as(t,"URL")?Yo(t):Zh(vt(t))}function qb(t){const n=Td();if(n)return Rb(n.sanitize(Uo.RESOURCE_URL,t)||"");if(as(t,"ResourceURL"))return Rb(Yo(t));throw new j(904,!1)}function O8(t){return function GR(t){return D8()?.createScriptURL(t)||t}(t[0])}function Td(){const t=G();return t&&t[ns].sanitizer}const CL=/^>|^->||--!>|)/g,zL="\u200b$1\u200b";function Wo(t){return t instanceof Function?t():t}function ko(t){return"browser"===(t??W(tn)).get(Ir)}var na=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(na||{});let N8;function V8(t,n){return N8(t,n)}function xl(t,n,e,i,o){if(null!=i){let r,s=!1;to(i)?r=i:ki(i)&&(s=!0,i=i[Rn]);const a=Xt(i);0===t&&null!==e?null==o?cy(n,e,a):Ga(n,e,a,o||null,!0):1===t&&null!==e?Ga(n,e,a,o||null,!0):2===t?function Dd(t,n,e){const i=i4(t,n);i&&function BL(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,a,s):3===t&&n.destroyNode(a),null!=r&&function YL(t,n,e,i,o){const r=e[is];r!==Xt(e)&&xl(n,t,i,r,o);for(let a=Zn;an.replace(wL,zL))}(n))}function t4(t,n,e){return t.createElement(n,e)}function ry(t,n){n[ns].changeDetectionScheduler?.notify(8),r4(t,n,n[at],2,null,null)}function sy(t,n){const e=t[gl],i=n[ci];(ki(i)||n[Ln]!==i[ci][Ln])&&(t[Xe]|=wh.HasTransplantedViews),null===e?t[gl]=[n]:e.push(n)}function L8(t,n){const e=t[gl],i=e.indexOf(n);e.splice(i,1)}function Md(t,n){if(t.length<=Zn)return;const e=Zn+n,i=t[e];if(i){const o=i[Ra];null!==o&&o!==t&&L8(o,i),n>0&&(t[e-1][kr]=i[kr]);const r=dh(t,Zn+n);!function NL(t,n){ry(t,n),n[Rn]=null,n[Hi]=null}(i[be],i);const s=r[Ss];null!==s&&s.detachView(r[be]),i[ci]=null,i[kr]=null,i[Xe]&=-129}return i}function n4(t,n){if(!(256&n[Xe])){const e=n[at];e.destroyNode&&r4(t,n,e,3,null,null),function FL(t){let n=t[od];if(!n)return H8(t[be],t);for(;n;){let e=null;if(ki(n))e=n[od];else{const i=n[Zn];i&&(e=i)}if(!e){for(;n&&!n[kr]&&n!==t;)ki(n)&&H8(n[be],n),n=n[ci];null===n&&(n=t),ki(n)&&H8(n[be],n),e=n&&n[kr]}n=e}}(n)}}function H8(t,n){if(256&n[Xe])return;const e=Z(null);try{n[Xe]&=-129,n[Xe]|=256,n[dr]&&ue(n[dr]),function HL(t,n){let e;if(null!=t&&null!=(e=t.destroyHooks))for(let i=0;i=0?i[s]():i[-s].unsubscribe(),r+=2}else e[r].call(i[e[r+1]]);null!==i&&(n[hl]=null);const o=n[Xs];if(null!==o){n[Xs]=null;for(let r=0;r-1){const{encapsulation:r}=t.data[i.directiveStart+o];if(r===Dr.None||r===Dr.Emulated)return null}return po(i,e)}}(t,n.parent,e)}function Ga(t,n,e,i,o){t.insertBefore(n,e,i,o)}function cy(t,n,e){t.appendChild(n,e)}function ly(t,n,e,i,o){null!==i?Ga(t,n,e,i,o):cy(t,n,e)}function i4(t,n){return t.parentNode(n)}function dy(t,n,e){return hy(t,n,e)}let j8,hy=function uy(t,n,e){return 40&t.type?po(t,e):null};function o4(t,n,e,i){const o=B8(t,i,n),r=n[at],a=dy(i.parent||n[Hi],i,n);if(null!=o)if(Array.isArray(e))for(let c=0;cBe&&by(t,n,Be,!1),os(s?2:0,o),e(i,o)}finally{ja(r),os(s?3:1,o)}}function G8(t,n,e){if(Bp(n)){const i=Z(null);try{const r=n.directiveEnd;for(let s=n.directiveStart;snull;function Sy(t,n,e,i,o){for(let r in n){if(!n.hasOwnProperty(r))continue;const s=n[r];if(void 0===s)continue;i??={};let a,c=cl.None;Array.isArray(s)?(a=s[0],c=s[1]):a=s;let l=r;if(null!==o){if(!o.hasOwnProperty(r))continue;l=o[r]}0===t?Ty(i,e,l,a,c):Ty(i,e,l,a)}return i}function Ty(t,n,e,i,o){let r;t.hasOwnProperty(e)?(r=t[e]).push(n,i):r=t[e]=[n,i],void 0!==o&&r.push(o)}function Ao(t,n,e,i,o,r,s,a){const c=po(n,e);let u,l=n.inputs;!a&&null!=l&&(u=l[i])?(tf(t,e,u,i,o),La(n)&&function iH(t,n){const e=$o(n,t);16&e[Xe]||(e[Xe]|=64)}(e,n.index)):3&n.type&&(i=function nH(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),o=null!=s?s(o,n.value||"",i):o,r.setProperty(c,i,o))}function Z8(t,n,e,i){if(C_()){const o=null===i?null:{"":-1},r=function lH(t,n){const e=t.directiveRegistry;let i=null,o=null;if(e)for(let r=0;r0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,r)}}(t,n,i,xd(t,e,o.hostVars,_t),o)}function cs(t,n,e,i,o,r){const s=po(t,n);!function X8(t,n,e,i,o,r,s){if(null==r)t.removeAttribute(n,o,e);else{const a=null==s?vt(r):s(r,i||"",o);t.setAttribute(n,o,a,e)}}(n[at],s,r,t.value,e,i,o)}function mH(t,n,e,i,o,r){const s=r[n];if(null!==s)for(let a=0;a0&&(e[o-1][kr]=n),i{Sh(t.lView)},consumerOnSignalRead(){this.lView[dr]=this}},TH={...te,consumerIsAlwaysLive:!0,consumerMarkedDirty:t=>{let n=Ts(t.lView);for(;n&&!Vy(n[be]);)n=Ts(n);n&&__(n)},consumerOnSignalRead(){this.lView[dr]=this}};function Vy(t){return 2!==t.type}const MH=100;function l4(t,n=!0,e=0){const i=t[ns],o=i.rendererFactory;o.begin?.();try{!function DH(t,n){const e=T_();try{M_(!0),sf(t,n);let i=0;for(;ld(t);){if(i===MH)throw new j(103,!1);i++,sf(t,1)}}finally{M_(e)}}(t,e)}catch(s){throw n&&c4(t,s),s}finally{o.end?.(),i.inlineEffectRunner?.flush()}}function xH(t,n,e,i){const o=n[Xe];if(!(256&~o))return;n[ns].inlineEffectRunner?.flush(),t8(n);let a=!0,c=null,l=null;Vy(t)?(l=function yH(t){return t[dr]??function CH(t){const n=Ny.pop()??Object.create(zH);return n.lView=t,n}(t)}(n),c=L(l)):null===function Ne(){return $}()?(a=!1,l=function SH(t){const n=t[dr]??Object.create(TH);return n.lView=t,n}(n),c=L(l)):n[dr]&&(ue(n[dr]),n[dr]=null);try{v_(n),function D_(t){return ct.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&Cy(t,n,e,2,i);const u=!(3&~o);if(u){const b=t.preOrderCheckHooks;null!==b&&kh(n,b,null)}else{const b=t.preOrderHooks;null!==b&&Ah(n,b,0,null),i8(n,0)}if(function EH(t){for(let n=mb(t);null!==n;n=gb(n)){if(!(n[Xe]&wh.HasTransplantedViews))continue;const e=n[gl];for(let i=0;i-1&&(Md(n,i),dh(e,i))}this._attachedToViewContainer=!1}n4(this._lView[be],this._lView)}onDestroy(n){Th(this._lView,n)}markForCheck(){kd(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[Xe]&=-129}reattach(){Gp(this._lView),this._lView[Xe]|=128}detectChanges(){this._lView[Xe]|=1024,l4(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new j(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const n=sd(this._lView),e=this._lView[Ra];null!==e&&!n&&L8(e,this._lView),ry(this._lView[be],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new j(902,!1);this._appRef=n;const e=sd(this._lView),i=this._lView[Ra];null!==i&&!e&&sy(i,this._lView),Gp(this._lView)}}let Gt=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=PH}return t})();const AH=Gt,OH=class extends AH{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e)}createEmbeddedViewImpl(n,e,i){const o=kl(this._declarationLView,this._declarationTContainer,n,{embeddedViewInjector:e,dehydratedView:i});return new Ad(o)}};function PH(){return d4(pn(),G())}function d4(t,n){return 4&t.type?new OH(n,t,Cl(t,n)):null}let aC=()=>null;function Za(t,n){return aC(t,n)}class Pl{}const Ld=new oe("",{providedIn:"root",factory:()=>!1}),cC=new oe("");class TB{}class lC{}class DB{resolveComponentFactory(n){throw function MB(t){const n=Error(`No component factory found for ${bi(t)}.`);return n.ngComponent=t,n}(n)}}class Il{static#e=this.NULL=new DB}class Qa{}let $t=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function xB(){const t=G(),e=$o(pn().index,t);return(ki(e)?e:t)[at]}()}return t})(),EB=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>null})}return t})();const uC=new Set;function mo(t){uC.has(t)||(uC.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function hC(t){let n=!0;return setTimeout(()=>{n&&(n=!1,t())}),"function"==typeof Cn.requestAnimationFrame&&Cn.requestAnimationFrame(()=>{n&&(n=!1,t())}),()=>{n=!1}}function pC(t){let n=!0;return queueMicrotask(()=>{n&&t()}),()=>{n=!1}}function fC(...t){}class De{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new H(!1),this.onMicrotaskEmpty=new H(!1),this.onStable=new H(!1),this.onError=new H(!1),typeof Zone>"u")throw new j(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.callbackScheduled=!1,function OB(t){const n=()=>{!function AB(t){t.isCheckStableRunning||t.callbackScheduled||(t.callbackScheduled=!0,Zone.root.run(()=>{hC(()=>{t.callbackScheduled=!1,_f(t),t.isCheckStableRunning=!0,vf(t),t.isCheckStableRunning=!1})}),_f(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,r,s,a)=>{if(function PB(t){return vC(t,"__ignore_ng_zone__")}(a))return e.invokeTask(o,r,s,a);try{return mC(t),e.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===r.type||t.shouldCoalesceRunChangeDetection)&&n(),gC(t)}},onInvoke:(e,i,o,r,s,a,c)=>{try{return mC(t),e.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!function IB(t){return vC(t,"__scheduler_tick__")}(a)&&n(),gC(t)}},onHasTask:(e,i,o,r)=>{e.hasTask(o,r),i===o&&("microTask"==r.change?(t._hasPendingMicrotasks=r.microTask,_f(t),vf(t)):"macroTask"==r.change&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(e,i,o,r)=>(e.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!De.isInAngularZone())throw new j(909,!1)}static assertNotInAngularZone(){if(De.isInAngularZone())throw new j(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,s=r.scheduleEventTask("NgZoneEvent: "+o,n,kB,fC,fC);try{return r.runTask(s,e,i)}finally{r.cancelTask(s)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const kB={};function vf(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function _f(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&!0===t.callbackScheduled)}function mC(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function gC(t){t._nesting--,vf(t)}class bf{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new H,this.onMicrotaskEmpty=new H,this.onStable=new H,this.onError=new H}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,o){return n.apply(e,i)}}function vC(t,n){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0]?.data?.[n]}var ia=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(ia||{});const _C={destroy(){}};function Xa(t,n){!n&&_h();const e=n?.injector??W(tn);if(!ko(e))return _C;mo("NgAfterNextRender");const i=e.get(Hd),o=i.handler??=new CC,r=n?.phase??ia.MixedReadWrite,s=()=>{o.unregister(c),a()},a=e.get(yl).onDestroy(s),c=Er(e,()=>new yC(r,()=>{s(),t()}));return o.register(c),{destroy:s}}class yC{constructor(n,e){this.phase=n,this.callbackFn=e,this.zone=W(De),this.errorHandler=W(hr,{optional:!0}),W(Pl,{optional:!0})?.notify(6)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class CC{constructor(){this.executingCallbacks=!1,this.buckets={[ia.EarlyRead]:new Set,[ia.Write]:new Set,[ia.MixedReadWrite]:new Set,[ia.Read]:new Set},this.deferredCallbacks=new Set}register(n){(this.executingCallbacks?this.deferredCallbacks:this.buckets[n.phase]).add(n)}unregister(n){this.buckets[n.phase].delete(n),this.deferredCallbacks.delete(n)}execute(){this.executingCallbacks=!0;for(const n of Object.values(this.buckets))for(const e of n)e.invoke();this.executingCallbacks=!1;for(const n of this.deferredCallbacks)this.buckets[n.phase].add(n);this.deferredCallbacks.clear()}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let Hd=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>new t})}return t})();function v4(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let s=0;s0&&vy(t,e,r.join(" "))}}(b,Ge,z,i),void 0!==e&&function UB(t,n,e){const i=t.projection=[];for(let o=0;o{class t{static#e=this.__NG_ELEMENT_ID__=GB}return t})();function GB(){return xC(pn(),G())}const qB=Gn,MC=class extends qB{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Cl(this._hostTNode,this._hostLView)}get injector(){return new wi(this._hostTNode,this._hostLView)}get parentInjector(){const n=Nh(this._hostTNode,this._hostLView);if(s8(n)){const e=fd(n,this._hostLView),i=pd(n);return new wi(e[be].data[i+8],e)}return new wi(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=DC(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-Zn}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const s=Za(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(e||{},r,s);return this.insertImpl(a,o,Ka(this._hostTNode,s)),a}createComponent(n,e,i,o,r){const s=n&&!function id(t){return"function"==typeof t}(n);let a;if(s)a=e;else{const y=e||{};a=y.index,i=y.injector,o=y.projectableNodes,r=y.environmentInjector||y.ngModuleRef}const c=s?n:new $d(xt(n)),l=i||this.parentInjector;if(!r&&null==c.ngModule){const z=(s?l:this.parentInjector).get(Li,null);z&&(r=z)}const u=xt(c.componentType??{}),p=Za(this._lContainer,u?.id??null),b=c.create(l,o,p?.firstChild??null,r);return this.insertImpl(b.hostView,a,Ka(this._hostTNode,p)),b}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function zF(t){return to(t[ci])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const c=o[ci],l=new MC(c,c[Hi],c[ci]);l.detach(l.indexOf(n))}}const r=this._adjustIndex(e),s=this._lContainer;return Al(s,o,r,i),n.attachToViewContainerRef(),B9(zf(s),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=DC(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=Md(this._lContainer,e);i&&(dh(zf(this._lContainer),e),n4(i[be],i))}detach(n){const e=this._adjustIndex(n,-1),i=Md(this._lContainer,e);return i&&null!=dh(zf(this._lContainer),e)?new Ad(i):null}_adjustIndex(n,e=0){return n??this.length+e}};function DC(t){return t[8]}function zf(t){return t[8]||(t[8]=[])}function xC(t,n){let e;const i=n[t.index];return to(i)?e=i:(e=xy(i,n,null,t),n[t.index]=e,a4(n,e)),EC(e,n,t,i),new MC(e,t,n)}let EC=function AC(t,n,e,i){if(t[is])return;let o;o=8&e.type?Xt(i):function KB(t,n){const e=t[at],i=e.createComment(""),o=po(n,t);return Ga(e,i4(e,o),i,function jL(t,n){return t.nextSibling(n)}(e,o),!1),i}(n,e),t[is]=o},Sf=()=>!1;class Tf{constructor(n){this.queryList=n,this.matches=null}clone(){return new Tf(this.queryList)}setDirty(){this.queryList.setDirty()}}class Mf{constructor(n=[]){this.queries=n}createEmbeddedView(n){const e=n.queries;if(null!==e){const i=null!==n.contentQueries?n.contentQueries[0]:e.length,o=[];for(let r=0;rn.trim())}(n):n}}class Df{constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(s[a/2]);else{const l=r[a+1],u=n[-c];for(let p=Zn;p(Re(n),n.value);return e[ce]=n,e}(t),i=e[ce];return n?.equal&&(i.equal=n.equal),e.set=o=>Vt(i,o),e.update=o=>function vi(t,n){ee()||ve(),Vt(t,n(t.value))}(i,o),e.asReadonly=LC.bind(e),e}function LC(){const t=this[ce];if(void 0===t.readonlyFn){const n=()=>this();n[ce]=t,t.readonlyFn=n}return t.readonlyFn}function HC(t){return _4(t)&&"function"==typeof t.set}function mt(t){let n=function ZC(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),e=!0;const i=[t];for(;n;){let o;if(Ar(t))o=n.\u0275cmp||n.\u0275dir;else{if(n.\u0275cmp)throw new j(903,!1);o=n.\u0275dir}if(o){if(e){i.push(o);const s=t;s.inputs=y4(t.inputs),s.inputTransforms=y4(t.inputTransforms),s.declaredInputs=y4(t.declaredInputs),s.outputs=y4(t.outputs);const a=o.hostBindings;a&&_j(t,a);const c=o.viewQuery,l=o.contentQueries;if(c&&gj(t,c),l&&vj(t,l),fj(t,o),uV(t.outputs,o.outputs),Ar(o)&&o.data.animation){const u=t.data;u.animation=(u.animation||[]).concat(o.data.animation)}}const r=o.features;if(r)for(let s=0;s=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=td(o.hostAttrs,e=td(e,o.hostAttrs))}}(i)}function fj(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];if(void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e],null!==n.inputTransforms)){const o=Array.isArray(i)?i[0]:i;if(!n.inputTransforms.hasOwnProperty(o))continue;t.inputTransforms??={},t.inputTransforms[o]=n.inputTransforms[o]}}}function y4(t){return t===es?{}:t===Qt?[]:t}function gj(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function vj(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function _j(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function je(t){const n=t.inputConfig,e={};for(const i in n)if(n.hasOwnProperty(i)){const o=n[i];Array.isArray(o)&&o[3]&&(e[i]=o[3])}t.inputTransforms=e}class ec{}class tw{}class If extends ec{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new SC(this);const o=eo(n);this._bootstrapComponents=Wo(o.bootstrap),this._r3Injector=tb(n,e,[{provide:ec,useValue:this},{provide:Il,useValue:this.componentFactoryResolver},...i],bi(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class Nf extends tw{constructor(n){super(),this.moduleType=n}create(n){return new If(this.moduleType,n,[])}}class nw extends ec{constructor(n){super(),this.componentFactoryResolver=new SC(this),this.instance=null;const e=new ll([...n.providers,{provide:ec,useValue:this},{provide:Il,useValue:this.componentFactoryResolver}],n.parent||vh(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function C4(t,n,e=null){return new nw({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}function w4(t){return!!Vf(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Vf(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function ls(t,n,e){return t[n]=e}function Qn(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function tc(t,n,e,i){const o=Qn(t,n,e);return Qn(t,n+1,i)||o}function z4(t,n,e,i,o){const r=tc(t,n,e,i);return Qn(t,n+2,o)||r}function Wd(t,n,e,i,o,r,s,a,c,l){const u=e+Be,p=n.firstCreatePass?function kj(t,n,e,i,o,r,s,a,c){const l=n.consts,u=qa(n,t,4,s||null,a||null);Z8(n,e,u,ur(l,c)),Eh(n,u);const p=u.tView=J8(2,u,i,o,r,n.directiveRegistry,n.pipeRegistry,null,n.schemas,l,null);return null!==n.queries&&(n.queries.template(n,u),p.queries=n.queries.embeddedTView(u)),u}(u,n,t,i,o,r,s,a,c):n.data[u];Or(p,!1);const _=iw(n,t,p,e);ud()&&o4(n,t,_,p),no(_,t);const b=xy(_,t,_,p);return t[u]=b,a4(t,b),function kC(t,n,e){return Sf(t,n,e)}(b,p,t),zh(p)&&q8(n,t,p),null!=c&&K8(t,p,l),p}function w(t,n,e,i,o,r,s,a){const c=G(),l=Dt();return Wd(c,l,t,n,e,i,o,ur(l.consts,r),s,a),w}let iw=function ow(t,n,e,i){return rs(!0),n[at].createComment("")};function Pt(t,n,e,i){const o=G();return Qn(o,Pr(),n)&&(Dt(),cs(Dn(),o,t,n,e,i)),Pt}function E4(t,n){return t<<17|n<<2}function aa(t){return t>>17&32767}function Wf(t){return 2|t}function ic(t){return(131068&t)>>2}function Gf(t,n){return-131069&t|n<<2}function qf(t){return 1|t}function Nw(t,n,e,i){const o=t[e+1],r=null===n;let s=i?aa(o):ic(o),a=!1;for(;0!==s&&(!1===a||r);){const l=t[s+1];m$(t[s],n)&&(a=!0,t[s+1]=i?qf(l):Wf(l)),s=i?aa(l):ic(l)}a&&(t[e+1]=i?Wf(o):qf(o))}function m$(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&al(t,n)>=0}const Si={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Vw(t){return t.substring(Si.key,Si.keyEnd)}function g$(t){return t.substring(Si.value,Si.valueEnd)}function Fw(t,n){const e=Si.textEnd;return e===n?-1:(n=Si.keyEnd=function b$(t,n,e){for(;n32;)n++;return n}(t,Si.key=n,e),Ql(t,n,e))}function Rw(t,n){const e=Si.textEnd;let i=Si.key=Ql(t,n,e);return e===i?-1:(i=Si.keyEnd=function y$(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=Hw(t,i,e),i=Si.value=Ql(t,i,e),i=Si.valueEnd=function C$(t,n,e){let i=-1,o=-1,r=-1,s=n,a=s;for(;s32&&(a=s),r=o,o=i,i=-33&c}return a}(t,i,e),Hw(t,i,e))}function Lw(t){Si.key=0,Si.keyEnd=0,Si.value=0,Si.valueEnd=0,Si.textEnd=t.length}function Ql(t,n,e){for(;n=0;e=Rw(n,e))Yw(t,Vw(n),g$(n))}function k4(t){Vr(x$,ds,t,!0)}function ds(t,n){for(let e=function v$(t){return Lw(t),Fw(t,Ql(t,0,Si.textEnd))}(n);e>=0;e=Fw(n,e))jo(t,Vw(n),!0)}function Nr(t,n,e,i){const o=G(),r=Dt(),s=Ds(2);r.firstUpdatePass&&$w(r,t,s,i),n!==_t&&Qn(o,s,n)&&Uw(r,r.data[Bi()],o,o[at],t,o[s+1]=function k$(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=bi(Yo(t)))),t}(n,e),i,s)}function Vr(t,n,e,i){const o=Dt(),r=Ds(2);o.firstUpdatePass&&$w(o,null,r,i);const s=G();if(e!==_t&&Qn(s,r,e)){const a=o.data[Bi()];if(Gw(a,i)&&!jw(o,r)){let c=i?a.classesWithoutHost:a.stylesWithoutHost;null!==c&&(e=pp(c,e||"")),Kf(o,a,s,e,i)}else!function E$(t,n,e,i,o,r,s,a){o===_t&&(o=Qt);let c=0,l=0,u=0=t.expandoStartIndex}function $w(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[Bi()],s=jw(t,e);Gw(r,i)&&null===n&&!s&&(n=!1),n=function z$(t,n,e,i){const o=Xp(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=Jd(e=Jf(null,t,n,e,i),n.attrs,i),r=null);else{const s=n.directiveStylingLast;if(-1===s||t[s]!==o)if(e=Jf(o,t,n,e,i),null===r){let c=function S$(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==ic(i))return t[aa(i)]}(t,n,i);void 0!==c&&Array.isArray(c)&&(c=Jf(null,t,n,c[1],i),c=Jd(c,n.attrs,i),function T$(t,n,e,i){t[aa(e?n.classBindings:n.styleBindings)]=i}(t,n,i,c))}else r=function M$(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(l=!0)):u=e,o)if(0!==c){const _=aa(t[a+1]);t[i+1]=E4(_,a),0!==_&&(t[_+1]=Gf(t[_+1],i)),t[a+1]=function u$(t,n){return 131071&t|n<<17}(t[a+1],i)}else t[i+1]=E4(a,0),0!==a&&(t[a+1]=Gf(t[a+1],i)),a=i;else t[i+1]=E4(c,0),0===a?a=i:t[c+1]=Gf(t[c+1],i),c=i;l&&(t[i+1]=Wf(t[i+1])),Nw(t,u,i,!0),Nw(t,u,i,!1),function f$(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&al(r,n)>=0&&(e[i+1]=qf(e[i+1]))}(n,u,t,i,r),s=E4(a,c),r?n.classBindings=s:n.styleBindings=s}(o,r,n,e,s,i)}}function Jf(t,n,e,i,o){let r=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const c=t[o],l=Array.isArray(c),u=l?c[1]:c,p=null===u;let _=e[o+1];_===_t&&(_=p?Qt:void 0);let b=p?Dp(_,i):u===i?_:void 0;if(l&&!A4(b)&&(b=Dp(c,i)),A4(b)&&(a=b,s))return a;const y=t[o+1];o=s?aa(y):ic(y)}if(null!==n){let c=r?n.residualClasses:n.residualStyles;null!=c&&(a=Dp(c,i))}return a}function A4(t){return void 0!==t}function Gw(t,n){return!!(t.flags&(n?8:16))}class B${destroy(n){}updateValue(n,e){}swap(n,e){const i=Math.min(n,e),o=Math.max(n,e),r=this.detach(o);if(o-i>1){const s=this.detach(i);this.attach(i,r),this.attach(o,s)}else this.attach(i,r)}move(n,e){this.attach(e,this.detach(n))}}function Zf(t,n,e,i,o){return t===e&&Object.is(n,i)?1:Object.is(o(t,n),o(e,i))?-1:0}function Qf(t,n,e,i){return!(void 0===n||!n.has(i)||(t.attach(e,n.get(i)),n.delete(i),0))}function qw(t,n,e,i,o){if(Qf(t,n,i,e(i,o)))t.updateValue(i,o);else{const r=t.create(i,o);t.attach(i,r)}}function Kw(t,n,e,i){const o=new Set;for(let r=n;r<=e;r++)o.add(i(r,t.at(r)));return o}class Jw{constructor(){this.kvMap=new Map,this._vMap=void 0}has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;const e=this.kvMap.get(n);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(n,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,e){if(this.kvMap.has(n)){let i=this.kvMap.get(n);void 0===this._vMap&&(this._vMap=new Map);const o=this._vMap;for(;o.has(i);)i=o.get(i);o.set(i,e)}else this.kvMap.set(n,e)}forEach(n){for(let[e,i]of this.kvMap)if(n(i,e),void 0!==this._vMap){const o=this._vMap;for(;o.has(i);)i=o.get(i),n(i,e)}}}function he(t,n){mo("NgControlFlow");const e=G(),i=Pr(),o=e[i]!==_t?e[i]:-1,r=-1!==o?O4(e,Be+o):void 0;if(Qn(e,i,t)){const a=Z(null);try{if(void 0!==r&&rf(r,0),-1!==t){const c=Be+t,l=O4(e,c),u=Xf(e[be],c),p=Za(l,u.tView.ssrId);Al(l,kl(e,u,n,{dehydratedView:p}),0,Ka(u,p))}}finally{Z(a)}}else if(void 0!==r){const a=Py(r,0);void 0!==a&&(a[Mn]=n)}}class $${constructor(n,e,i){this.lContainer=n,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-Zn}}function Zw(t){return t}function fr(t,n){return n}class Y${constructor(n,e,i){this.hasEmptyBlock=n,this.trackByFn=e,this.liveCollection=i}}function ji(t,n,e,i,o,r,s,a,c,l,u,p,_){mo("NgControlFlow");const b=G(),y=Dt(),z=void 0!==c,E=G(),k=a?s.bind(E[Ln][Mn]):s,A=new Y$(z,k);E[Be+t]=A,Wd(b,y,t+1,n,e,i,o,ur(y.consts,r)),z&&Wd(b,y,t+2,c,l,u,p,ur(y.consts,_))}class U$ extends B${constructor(n,e,i){super(),this.lContainer=n,this.hostLView=e,this.templateTNode=i,this.operationsCounter=void 0,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Zn}at(n){return this.getLView(n)[Mn].$implicit}attach(n,e){const i=e[ho];this.needsIndexUpdate||=n!==this.length,Al(this.lContainer,e,n,Ka(this.templateTNode,i))}detach(n){return this.needsIndexUpdate||=n!==this.length-1,function W$(t,n){return Md(t,n)}(this.lContainer,n)}create(n,e){const i=Za(this.lContainer,this.templateTNode.tView.ssrId),o=kl(this.hostLView,this.templateTNode,new $$(this.lContainer,e,n),{dehydratedView:i});return this.operationsCounter?.recordCreate(),o}destroy(n){n4(n[be],n),this.operationsCounter?.recordDestroy()}updateValue(n,e){this.getLView(n)[Mn].$implicit=e}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n{t.destroy(c)})}(c,t,r.trackByFn),c.updateIndexes(),r.hasEmptyBlock){const l=Pr(),u=0===c.length;if(Qn(i,l,u)){const p=e+2,_=O4(i,p);if(u){const b=Xf(o,p),y=Za(_,b.tView.ssrId);Al(_,kl(i,b,void 0,{dehydratedView:y}),0,Ka(b,y))}else rf(_,0)}}}finally{Z(n)}}function O4(t,n){return t[n]}function Xf(t,n){return cd(t,n)}function f(t,n,e,i){const o=G(),r=Dt(),s=Be+t,a=o[at],c=r.firstCreatePass?function q$(t,n,e,i,o,r){const s=n.consts,c=qa(n,t,2,i,ur(s,o));return Z8(n,e,c,ur(s,r)),null!==c.attrs&&v4(c,c.attrs,!1),null!==c.mergedAttrs&&v4(c,c.mergedAttrs,!0),null!==n.queries&&n.queries.elementStart(n,c),c}(s,r,o,n,e,i):r.data[s],l=Qw(r,o,c,a,n,t);o[s]=l;const u=zh(c);return Or(c,!0),_y(a,l,c),!function Vl(t){return!(32&~t.flags)}(c)&&ud()&&o4(r,o,l,c),0===function SF(){return ct.lFrame.elementDepthCount}()&&no(l,o),function TF(){ct.lFrame.elementDepthCount++}(),u&&(q8(r,o,c),G8(r,c,o)),null!==i&&K8(o,c),f}function m(){let t=pn();Jp()?Zp():(t=t.parent,Or(t,!1));const n=t;(function DF(t){return ct.skipHydrationRootTNode===t})(n)&&function AF(){ct.skipHydrationRootTNode=null}(),function MF(){ct.lFrame.elementDepthCount--}();const e=Dt();return e.firstCreatePass&&(Eh(e,t),Bp(t)&&e.queries.elementEnd(t)),null!=n.classesWithoutHost&&function $F(t){return!!(8&t.flags)}(n)&&Kf(e,n,G(),n.classesWithoutHost,!0),null!=n.stylesWithoutHost&&function YF(t){return!!(16&t.flags)}(n)&&Kf(e,n,G(),n.stylesWithoutHost,!1),m}function S(t,n,e,i){return f(t,n,e,i),m(),S}let Qw=(t,n,e,i,o,r)=>(rs(!0),t4(i,o,function I_(){return ct.lFrame.currentNamespace}()));function $e(t,n,e){const i=G(),o=Dt(),r=t+Be,s=o.firstCreatePass?function Z$(t,n,e,i,o){const r=n.consts,s=ur(r,i),a=qa(n,t,8,"ng-container",s);return null!==s&&v4(a,s,!0),Z8(n,e,a,ur(r,o)),null!==n.queries&&n.queries.elementStart(n,a),a}(r,o,i,n,e):o.data[r];Or(s,!0);const a=Xw(o,i,s,t);return i[r]=a,ud()&&o4(o,i,a,s),no(a,i),zh(s)&&(q8(o,i,s),G8(o,s,i)),null!=e&&K8(i,s),$e}function Ye(){let t=pn();const n=Dt();return Jp()?Zp():(t=t.parent,Or(t,!1)),n.firstCreatePass&&(Eh(n,t),Bp(t)&&n.queries.elementEnd(t)),Ye}function P4(t,n,e){return $e(t,n,e),Ye(),P4}let Xw=(t,n,e,i)=>(rs(!0),R8(n[at],""));function U(){return G()}function em(t,n,e){const i=G();return Qn(i,Pr(),n)&&Ao(Dt(),Dn(),i,t,n,i[at],e,!0),em}function oc(t,n,e){const i=G();if(Qn(i,Pr(),n)){const r=Dt(),s=Dn();Ao(r,s,i,t,n,Oy(Xp(r.data),s,i),e,!0)}return oc}const e1="en-US";let nz=e1;let Cz=(t,n,e)=>{};function D(t,n,e,i){const o=G(),r=Dt(),s=pn();return im(r,o,o[at],s,t,n,i),D}function F4(t,n){const e=pn(),i=G(),o=Dt();return im(o,i,Oy(Xp(o.data),e,i),e,t,n),F4}function im(t,n,e,i,o,r,s){const a=zh(i),l=t.firstCreatePass&&Ay(t),u=n[Mn],p=ky(n);let _=!0;if(3&i.type||s){const z=po(i,n),E=s?s(z):z,k=p.length,A=s?pe=>s(Xt(pe[i.index])):i.index;let ie=null;if(!s&&a&&(ie=function $Y(t,n,e,i){const o=t.cleanup;if(null!=o)for(let r=0;rc?a[c]:null}"string"==typeof s&&(r+=2)}return null}(t,n,o,i.index)),null!==ie)(ie.__ngLastListenerFn__||ie).__ngNextListenerFn__=r,ie.__ngLastListenerFn__=r,_=!1;else{r=Sz(i,n,u,r),Cz(z,o,r);const pe=e.listen(E,o,r);p.push(r,pe),l&&l.push(o,A,k,k+1)}}else r=Sz(i,n,u,r);const b=i.outputs;let y;if(_&&null!==b&&(y=b[o])){const z=y.length;if(z)for(let E=0;E-1?$o(t.index,n):n,5);let a=zz(n,e,i,r),c=o.__ngNextListenerFn__;for(;c;)a=zz(n,e,c,r)&&a,c=c.__ngNextListenerFn__;return a}}function g(t=1){return function VF(t){return(ct.lFrame.contextLView=function b_(t,n){for(;t>0;)n=n[pl],t--;return n}(t,ct.lFrame.contextLView))[Mn]}(t)}function YY(t,n){let e=null;const i=function LV(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let o=0;o(rs(!0),function F8(t,n){return t.createText(n)}(n[at],i));function x(t){return Ce("",t,""),x}function Ce(t,n,e){const i=G(),o=function Yl(t,n,e,i){return Qn(t,Pr(),e)?n+vt(e)+i:_t}(i,t,n,e);return o!==_t&&Es(i,Bi(),o),Ce}function ca(t,n,e,i,o){const r=G(),s=function Ul(t,n,e,i,o,r){const a=tc(t,Ms(),e,o);return Ds(2),a?n+vt(e)+i+vt(o)+r:_t}(r,t,n,e,i,o);return s!==_t&&Es(r,Bi(),s),ca}function sm(t,n,e,i,o,r,s){const a=G(),c=function Wl(t,n,e,i,o,r,s,a){const l=z4(t,Ms(),e,o,s);return Ds(3),l?n+vt(e)+i+vt(o)+r+vt(s)+a:_t}(a,t,n,e,i,o,r,s);return c!==_t&&Es(a,Bi(),c),sm}function Ai(t,n,e){HC(n)&&(n=n());const i=G();return Qn(i,Pr(),n)&&Ao(Dt(),Dn(),i,t,n,i[at],e,!1),Ai}function Yi(t,n){const e=HC(t);return e&&t.set(n),e}function Oi(t,n){const e=G(),i=Dt(),o=pn();return im(i,e,e[at],o,t,n),Oi}function am(t,n,e,i,o){if(t=st(t),Array.isArray(t))for(let r=0;r>20;if(Fa(t)||!t.multi){const b=new hd(l,o,v),y=lm(c,n,o?u:u+_,p);-1===y?(l8(Ih(a,s),r,c),cm(r,t,n.length),n.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(b),s.push(b)):(e[y]=b,s[y]=b)}else{const b=lm(c,n,u+_,p),y=lm(c,n,u,u+_),E=y>=0&&e[y];if(o&&!E||!o&&!(b>=0&&e[b])){l8(Ih(a,s),r,c);const k=function uU(t,n,e,i,o){const r=new hd(t,e,v);return r.multi=[],r.index=n,r.componentProviders=0,Qz(r,o,i&&!e),r}(o?dU:lU,e.length,o,i,l);!o&&E&&(e[y].providerFactory=k),cm(r,t,n.length,0),n.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(k),s.push(k)}else cm(r,t,b>-1?b:y,Qz(e[o?y:b],l,!o&&i));!o&&i&&E&&e[y].componentProviders++}}}function cm(t,n,e,i){const o=Fa(n),r=function QV(t){return!!t.useClass}(n);if(o||r){const c=(r?st(n.useClass):n).prototype.ngOnDestroy;if(c){const l=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const u=l.indexOf(e);-1===u?l.push(e,[i,c]):l[u+1].push(i,c)}else l.push(e,c)}}}function Qz(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function lm(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function cU(t,n,e){const i=Dt();if(i.firstCreatePass){const o=Ar(t);am(e,i.data,i.blueprint,o,!0),am(n,i.data,i.blueprint,o,!1)}}(i,o?o(t):t,n)}}let hU=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Ap(0,e.type),o=i.length>0?C4([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,o)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=ae({token:t,providedIn:"environment",factory:()=>new t(R(Li))})}return t})();function me(t){mo("NgStandalone"),t.getStandaloneInjector=n=>n.get(hU).getOrCreateStandaloneInjector(t)}function Ti(t,n,e){const i=fo()+t,o=G();return o[i]===_t?ls(o,i,e?n.call(e):n()):function Ud(t,n){return t[n]}(o,i)}function mr(t,n,e,i){return nS(G(),fo(),t,n,e,i)}function sc(t,n,e,i,o){return function iS(t,n,e,i,o,r,s){const a=n+e;return tc(t,a,o,r)?ls(t,a+2,s?i.call(s,o,r):i(o,r)):iu(t,a+2)}(G(),fo(),t,n,e,i,o)}function tS(t,n,e,i,o,r){return function oS(t,n,e,i,o,r,s,a){const c=n+e;return z4(t,c,o,r,s)?ls(t,c+3,a?i.call(a,o,r,s):i(o,r,s)):iu(t,c+3)}(G(),fo(),t,n,e,i,o,r)}function nu(t,n,e,i,o,r,s){return function rS(t,n,e,i,o,r,s,a,c){const l=n+e;return function pr(t,n,e,i,o,r){const s=tc(t,n,e,i);return tc(t,n+2,o,r)||s}(t,l,o,r,s,a)?ls(t,l+4,c?i.call(c,o,r,s,a):i(o,r,s,a)):iu(t,l+4)}(G(),fo(),t,n,e,i,o,r,s)}function iu(t,n){const e=t[n];return e===_t?void 0:e}function nS(t,n,e,i,o,r){const s=n+e;return Qn(t,s,o)?ls(t,s+1,r?i.call(r,o):i(o)):iu(t,s+1)}function Fr(t,n){const e=Dt();let i;const o=t+Be;e.firstCreatePass?(i=function CU(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks??=[]).push(o,i.onDestroy)):i=e.data[o];const r=i.factory||(i.factory=Va(i.type)),a=Do(v);try{const c=Ph(!1),l=r();return Ph(c),function rm(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,G(),o,l),l}finally{Do(a)}}function Rr(t,n,e){const i=t+Be,o=G(),r=Ha(o,i);return function ou(t,n){return t[be].data[n].pure}(o,i)?nS(o,fo(),n,r.transform,e,r):r.transform(e)}function ot(t,n){return d4(t,n)}let wS=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const DS=new oe(""),j4=new oe("");let _m,gm=(()=>{class t{constructor(e,i,o){this._ngZone=e,this.registry=i,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,_m||(function _W(t){_m=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{De.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let r=-1;i&&i>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==r),e()},i)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static#e=this.\u0275fac=function(i){return new(i||t)(R(De),R(vm),R(j4))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),vm=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return _m?.findTestabilityInTree(this,e,i)??null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function cu(t){return!!t&&"function"==typeof t.then}function xS(t){return!!t&&"function"==typeof t.subscribe}const bm=new oe("");let ym=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=W(bm,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=o();if(cu(r))e.push(r);else if(xS(r)){const s=new Promise((a,c)=>{r.subscribe({complete:a,error:c})});e.push(s)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const $4=new oe("");function AS(t,n){return Array.isArray(n)?n.reduce(AS,t):{...t,...n}}let Ko=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=W(ib),this.afterRenderEffectManager=W(Hd),this.zonelessEnabled=W(Ld),this.externalTestViews=new Set,this.beforeRender=new N,this.afterTick=new N,this.componentTypes=[],this.components=[],this.isStable=W(Ya).hasPendingTasks.pipe(Ie(e=>!e)),this._injector=W(Li)}get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof lC;if(!this._injector.get(ym).done)throw!o&&function Qs(t){const n=xt(t)||yi(t)||Ri(t);return null!==n&&n.standalone}(e),new j(405,!1);let s;s=o?e:this._injector.get(Il).resolveComponentFactory(e),this.componentTypes.push(s.componentType);const a=function bW(t){return t.isBoundToModule}(s)?void 0:this._injector.get(ec),l=s.create(tn.NULL,[],i||s.selector,a),u=l.location.nativeElement,p=l.injector.get(DS,null);return p?.registerApplication(u),l.onDestroy(()=>{this.detachView(l.hostView),Y4(this.components,l),p?.unregisterApplication(u)}),this._loadComponent(l),l}tick(){this._tick(!0)}_tick(e){if(this._runningTick)throw new j(101,!1);const i=Z(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(e)}catch(o){this.internalErrorHandler(o)}finally{this._runningTick=!1,Z(i),this.afterTick.next()}}detectChangesInAttachedViews(e){let i=null;this._injector.destroyed||(i=this._injector.get(Qa,null,{optional:!0}));let o=0;const r=this.afterRenderEffectManager;for(;o<10;){const s=0===o;if(e||!s){this.beforeRender.next(s);for(let{_lView:a,notifyErrorHandler:c}of this._views)CW(a,c,s,this.zonelessEnabled)}else i?.begin?.(),i?.end?.();if(o++,r.executeInternalCallbacks(),!this.allViews.some(({_lView:a})=>ld(a))&&(r.execute(),!this.allViews.some(({_lView:a})=>ld(a))))break}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Y4(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get($4,[]);[...this._bootstrapListeners,...i].forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Y4(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new j(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Y4(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function CW(t,n,e,i){(e||ld(t))&&l4(t,n,e&&!i?0:1)}class wW{constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let PS=(()=>{class t{compileModuleSync(e){return new Nf(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Wo(eo(e).declarations).reduce((s,a)=>{const c=xt(a);return c&&s.push(new $d(c)),s},[]);return new wW(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),TW=(()=>{class t{constructor(){this.zone=W(De),this.changeDetectionScheduler=W(Pl),this.applicationRef=W(Ko)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Cm({ngZoneFactory:t,ignoreChangesOutsideZone:n}){return t??=()=>new De(wm()),[{provide:De,useFactory:t},{provide:ts,multi:!0,useFactory:()=>{const e=W(TW,{optional:!0});return()=>e.initialize()}},{provide:ts,multi:!0,useFactory:()=>{const e=W(xW);return()=>{e.initialize()}}},{provide:ib,useFactory:DW},!0===n?{provide:cC,useValue:!0}:[]]}function DW(){const t=W(De),n=W(hr);return e=>t.runOutsideAngular(()=>n.handleError(e))}function wm(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}let xW=(()=>{class t{constructor(){this.subscription=new Ft,this.initialized=!1,this.zone=W(De),this.pendingTasks=W(Ya)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{De.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{De.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),lu=(()=>{class t{constructor(){this.appRef=W(Ko),this.taskService=W(Ya),this.ngZone=W(De),this.zonelessEnabled=W(Ld),this.disableScheduling=W(cC,{optional:!0})??!1,this.zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run,this.schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}],this.subscriptions=new Ft,this.cancelScheduledCallback=null,this.shouldRefreshViews=!1,this.useMicrotaskScheduler=!1,this.runningTick=!1,this.pendingRenderTaskId=null,this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof bf||!this.zoneIsDefined)}notify(e){if(!this.zonelessEnabled&&5===e)return;switch(e){case 3:case 2:case 0:case 4:case 5:case 1:this.shouldRefreshViews=!0}if(!this.shouldScheduleTick())return;const i=this.useMicrotaskScheduler?pC:hC;this.pendingRenderTaskId=this.taskService.add(),this.zoneIsDefined?Zone.root.run(()=>{this.cancelScheduledCallback=i(()=>{this.tick(this.shouldRefreshViews)})}):this.cancelScheduledCallback=i(()=>{this.tick(this.shouldRefreshViews)})}shouldScheduleTick(){return!(this.disableScheduling||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&De.isInAngularZone())}tick(e){if(this.runningTick||this.appRef.destroyed)return;const i=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick(e)},void 0,this.schedulerTickApplyArgs)}catch(o){throw this.taskService.remove(i),o}finally{this.cleanup()}this.useMicrotaskScheduler=!0,pC(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(i)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.shouldRefreshViews=!1,this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const e=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(e)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ks=new oe("",{providedIn:"root",factory:()=>W(ks,At.Optional|At.SkipSelf)||function EW(){return typeof $localize<"u"&&$localize.locale||e1}()}),Sm=new oe("");let FS=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function NB(t="zone.js",n){return"noop"===t?new bf:"zone.js"===t?new De(n):t}(i?.ngZone,wm({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return o.run(()=>{const r=i?.ignoreChangesOutsideZone,s=function Tj(t,n,e){return new If(t,n,e)}(e.moduleType,this.injector,[...Cm({ngZoneFactory:()=>o,ignoreChangesOutsideZone:r}),{provide:Pl,useExisting:lu}]),a=s.injector.get(hr,null);return o.runOutsideAngular(()=>{const c=o.onError.subscribe({next:l=>{a.handleError(l)}});s.onDestroy(()=>{Y4(this._modules,s),c.unsubscribe()})}),function kS(t,n,e){try{const i=e();return cu(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t.handleError(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(a,o,()=>{const c=s.injector.get(ym);return c.runInitializers(),c.donePromise.then(()=>(function iz(t){"string"==typeof t&&(nz=t.toLowerCase().replace(/_/g,"-"))}(s.injector.get(ks,e1)||e1),this._moduleDoBootstrap(s),s))})})}bootstrapModule(e,i=[]){const o=AS({},i);return function SW(t,n,e){const i=new Nf(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}_moduleDoBootstrap(e){const i=e.injector.get(Ko);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new j(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new j(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Sm,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||t)(R(tn))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),la=null;const RS=new oe("");function LS(t,n,e=[]){const i=`Platform: ${n}`,o=new oe(i);return(r=[])=>{let s=Tm();if(!s||s.injector.get(RS,!1)){const a=[...e,...r,{provide:o,useValue:!0}];t?t(a):function OW(t){if(la&&!la.get(RS,!1))throw new j(400,!1);(function ES(){!function ze(t){Nn=t}(()=>{throw new j(600,!1)})})(),la=t;const n=t.get(FS);(function BS(t){t.get(Tb,null)?.forEach(e=>e())})(t)}(function HS(t=[],n){return tn.create({name:n,providers:[{provide:Ip,useValue:"platform"},{provide:Sm,useValue:new Set([()=>la=null])},...t]})}(a,i))}return function PW(t){const n=Tm();if(!n)throw new j(401,!1);return n}()}}function Tm(){return la?.get(FS)??null}let Ue=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=NW}return t})();function NW(t){return function VW(t,n,e){if(La(t)&&!e){const i=$o(t.index,n);return new Ad(i,i)}return 175&t.type?new Ad(n[Ln],n):null}(pn(),G(),!(16&~t))}class GS{constructor(){}supports(n){return w4(n)}create(n){return new BW(n)}}const HW=(t,n)=>n;class BW{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||HW}forEachItem(n){let e;for(e=this._itHead;null!==e;e=e._next)n(e)}forEachOperation(n){let e=this._itHead,i=this._removalsHead,o=0,r=null;for(;e||i;){const s=!i||e&&e.currentIndex{s=this._trackByFn(o,a),null!==e&&Object.is(e.trackById,s)?(i&&(e=this._verifyReinsertion(e,a,s,o)),Object.is(e.item,a)||this._addIdentityChange(e,a)):(e=this._mismatch(e,a,s,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,e,i,o){let r;return null===n?r=this._itTail:(r=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._reinsertAfter(n,r,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._moveAfter(n,r,o)):n=this._addAfter(new jW(e,i),r,o),n}_verifyReinsertion(n,e,i,o){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==r?n=this._reinsertAfter(r,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const e=n._next;this._addToRemovals(this._unlink(n)),n=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,r=n._nextRemoved;return null===o?this._removalsHead=r:o._nextRemoved=r,null===r?this._removalsTail=o:r._prevRemoved=o,this._insertAfter(n,e,i),this._addToMoves(n,i),n}_moveAfter(n,e,i){return this._unlink(n),this._insertAfter(n,e,i),this._addToMoves(n,i),n}_addAfter(n,e,i){return this._insertAfter(n,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,e,i){const o=null===e?this._itHead:e._next;return n._next=o,n._prev=e,null===o?this._itTail=n:o._prev=n,null===e?this._itHead=n:e._next=n,null===this._linkedRecords&&(this._linkedRecords=new qS),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const e=n._prev,i=n._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,n}_addToMoves(n,e){return n.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new qS),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,e){return n.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class jW{constructor(n,e){this.item=n,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class $W{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const e=n._prevDup,i=n._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class qS{constructor(){this.map=new Map}put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new $W,this.map.set(e,i)),i.add(n)}get(n,e){const o=this.map.get(n);return o?o.get(n,e):null}remove(n){const e=n.trackById;return this.map.get(e).remove(n)&&this.map.delete(e),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function KS(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,e);const r=o._prev,s=o._next;return r&&(r._next=s),s&&(s._prev=r),o._next=null,o._prev=null,o}const i=new UW(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class UW{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function ZS(){return new q4([new GS])}let q4=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:ZS});constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||ZS()),deps:[[t,new lh,new ed]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new j(901,!1)}}return t})();function QS(){return new K4([new JS])}let K4=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:QS});constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||QS()),deps:[[t,new lh,new ed]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new j(901,!1)}}return t})();const qW=LS(null,"core",[]);let KW=(()=>{class t{constructor(e){}static#e=this.\u0275fac=function(i){return new(i||t)(R(Ko))};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function O(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function Pi(t,n=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?n:Number(t)}function Pm(t){const n=Z(null);try{return t()}finally{Z(n)}}const AG=new oe("",{providedIn:"root",factory:()=>W(OG)});let OG=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>new PG})}return t})();class PG{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=W(Ya),this.taskId=null}scheduleEffect(n){if(this.enqueue(n),null===this.taskId){const e=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(e),this.taskId=null})}}enqueue(n){const e=n.creationZone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(n)||(this.queuedEffectCount++,i.add(n))}flush(){for(;this.queuedEffectCount>0;)for(const[n,e]of this.queues)null===n?this.flushQueue(e):n.run(()=>this.flushQueue(e))}flushQueue(n){for(const e of n)n.delete(e),this.queuedEffectCount--,e.run()}}class IG{constructor(n,e,i,o,r,s){this.scheduler=n,this.effectFn=e,this.creationZone=i,this.injector=r,this.watcher=function To(t,n,e){const i=Object.create(lo);e&&(i.consumerAllowSignalWrites=!0),i.fn=t,i.schedule=n;const o=c=>{i.cleanupFn=c};return i.ref={notify:()=>P(i),run:()=>{if(null===i.fn)return;if(function Ee(){return V}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(i.dirty=!1,i.hasRun&&!se(i))return;i.hasRun=!0;const c=L(i);try{i.cleanupFn(),i.cleanupFn=_i,i.fn(o)}finally{B(i,c)}},cleanup:()=>i.cleanupFn(),destroy:()=>function s(c){(function r(c){return null===c.fn&&null===c.schedule})(c)||(ue(c),c.cleanupFn(),c.fn=null,c.schedule=null,c.cleanupFn=_i)}(i),[ce]:i},i.ref}(a=>this.runEffect(a),()=>this.schedule(),s),this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}runEffect(n){try{this.effectFn(n)}catch(e){this.injector.get(hr,null,{optional:!0})?.handleError(e)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}let MT=null;function da(){return MT}class RG{}const It=new oe("");let Im=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(HG),providedIn:"platform"})}return t})();const LG=new oe("");let HG=(()=>{class t extends Im{constructor(){super(),this._doc=W(It),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return da().getBaseHref(this._doc)}onPopState(e){const i=da().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=da().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,o){this._history.pushState(e,i,o)}replaceState(e,i,o){this._history.replaceState(e,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Nm(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function DT(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function As(t){return t&&"?"!==t[0]?"?"+t:t}let cc=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(ET),providedIn:"root"})}return t})();const xT=new oe("");let ET=(()=>{class t extends cc{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??W(It).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Nm(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+As(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+As(r));this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+As(r));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(Im),R(xT,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),BG=(()=>{class t extends cc{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){const i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=Nm(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){let s=this.prepareExternalUrl(o+As(r));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){let s=this.prepareExternalUrl(o+As(r));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(Im),R(xT,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),o1=(()=>{class t{constructor(e){this._subject=new H,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function YG(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(DT(kT(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+As(i))}normalize(e){return t.stripTrailingSlash(function $G(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,kT(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+As(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+As(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}static#e=this.normalizeQueryParams=As;static#t=this.joinWithSlash=Nm;static#n=this.stripTrailingSlash=DT;static#i=this.\u0275fac=function(i){return new(i||t)(R(cc))};static#o=this.\u0275prov=ae({token:t,factory:()=>function jG(){return new o1(R(cc))}(),providedIn:"root"})}return t})();function kT(t){return t.replace(/\/index.html$/,"")}const Um=/\s+/,LT=[];let Zo=(()=>{class t{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=LT,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(Um):LT}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(Um):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const o=this.stateMap.get(e);void 0!==o?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],o=e[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(Um).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"},standalone:!0})}return t})();class kq{constructor(n,e,i,o){this.$implicit=n,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let zn=(()=>{class t{set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,r,s)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new kq(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)i.remove(null===r?void 0:r);else if(null!==r){const a=i.get(r);i.move(a,s),BT(a,o)}});for(let o=0,r=i.length;o{BT(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt),v(q4))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return t})();function BT(t,n){t.context.$implicit=n.item}let Tt=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new Aq,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){jT("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){jT("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return t})();class Aq{constructor(){this.$implicit=null,this.ngIf=null}}function jT(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${bi(n)}'.`)}class Wm{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let lc=(()=>{class t{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const i=e===this._ngSwitch;return this._lastCasesMatched||=i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const i of this._defaultViews)i.enforceState(e)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return t})(),fu=(()=>{class t{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new Wm(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt),v(lc,9))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return t})(),Gm=(()=>{class t{constructor(e,i,o){o._addDefault(new Wm(e,i))}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt),v(lc,9))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return t})(),ti=(()=>{class t{constructor(e,i,o){this._ngEl=e,this._differs=i,this._renderer=o,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[o,r]=e.split("."),s=-1===o.indexOf("-")?void 0:na.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,o,r?`${i}${r}`:i,s):this._renderer.removeStyle(this._ngEl.nativeElement,o,s)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(K4),v($t))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return t})(),Vn=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const o=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,o)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,o),get:(e,i,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,o)}})}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[ke]})}return t})();class Iq{createSubscription(n,e){return Pm(()=>n.subscribe({next:e,error:i=>{throw i}}))}dispose(n){Pm(()=>n.unsubscribe())}}class Nq{createSubscription(n,e){return n.then(e,i=>{throw i})}dispose(n){}}const Vq=new Nq,Fq=new Iq;let qm=(()=>{class t{constructor(e){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){if(!this._obj){if(e)try{this.markForCheckOnValueUpdate=!1,this._subscribe(e)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(cu(e))return Vq;if(xS(e))return Fq;throw function Hr(t,n){return new j(2100,!1)}()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue,16))};static#t=this.\u0275pipe=jn({name:"async",type:t,pure:!1,standalone:!0})}return t})(),UT=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const WT="browser";function p0(t){return t===WT}function GT(t){return"server"===t}let nK=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>p0(W(Ir))?new iK(W(It),window):new rK})}return t})();class iK{constructor(n,e){this.document=n,this.window=e,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n){this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){const e=function oK(t,n){const e=t.getElementById(n)||t.getElementsByName(n)[0];if(e)return e;if("function"==typeof t.createTreeWalker&&t.body&&"function"==typeof t.body.attachShadow){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const r=o.shadowRoot;if(r){const s=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(s)return s}o=i.nextNode()}}return null}(this.document,n);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(n){this.window.history.scrollRestoration=n}scrollToElement(n){const e=n.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(i-r[0],o-r[1])}}class rK{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class IK extends RG{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Qm extends IK{static makeCurrent(){!function FG(t){MT??=t}(new Qm)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function NK(){return vu=vu||document.querySelector("base"),vu?vu.getAttribute("href"):null}();return null==e?null:function VK(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){vu=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function xq(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[o,r]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===n)return decodeURIComponent(r)}return null}(document.cookie,n)}}let vu=null,RK=(()=>{class t{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const Xm=new oe("");let nM=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>{o.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(r=>r.supports(e)),!i)throw new j(5101,!1);return this._eventNameToPlugin.set(e,i),i}static#e=this.\u0275fac=function(i){return new(i||t)(R(Xm),R(De))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();class iM{constructor(n){this._doc=n}}const eg="ng-app-id";let oM=(()=>{class t{constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,this.platformId=r,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=GT(r),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(o=>o.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${eg}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(o=>{null!=o.textContent&&i.set(o.textContent,o)}),i}return null}changeUsageCount(e,i){const o=this.styleRef;if(o.has(e)){const r=o.get(e);return r.usage+=i,r.usage}return o.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const o=this.styleNodesInDOM,r=o?.get(i);if(r?.parentNode===e)return o.delete(i),r.removeAttribute(eg),r;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=i,this.platformIsServer&&s.setAttribute(eg,this.appId),e.appendChild(s),s}}addStyleToHost(e,i){const o=this.getStyleElement(e,i),r=this.styleRef,s=r.get(i)?.elements;s?s.push(o):r.set(i,{elements:[o],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R(zl),R(vd,8),R(Ir))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const tg={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},ng=/%COMP%/g,jK=new oe("",{providedIn:"root",factory:()=>!0});function sM(t,n){return n.map(e=>e.replace(ng,t))}let ig=(()=>{class t{constructor(e,i,o,r,s,a,c,l=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=l,this.rendererByCompId=new Map,this.platformIsServer=GT(a),this.defaultRenderer=new og(e,s,c,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===Dr.ShadowDom&&(i={...i,encapsulation:Dr.Emulated});const o=this.getOrCreateRenderer(e,i);return o instanceof cM?o.applyToHost(e):o instanceof rg&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const s=this.doc,a=this.ngZone,c=this.eventManager,l=this.sharedStylesHost,u=this.removeStylesOnCompDestroy,p=this.platformIsServer;switch(i.encapsulation){case Dr.Emulated:r=new cM(c,l,i,this.appId,u,s,a,p);break;case Dr.ShadowDom:return new WK(c,l,e,i,s,a,this.nonce,p);default:r=new rg(c,l,i,u,s,a,p)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||t)(R(nM),R(oM),R(zl),R(jK),R(It),R(Ir),R(De),R(vd))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();class og{constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(tg[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(aM(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(aM(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new j(-5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,o){if(o){e=o+":"+e;const r=tg[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=tg[i];o?n.removeAttributeNS(o,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,o){o&(na.DashCase|na.Important)?n.style.setProperty(e,i,o&na.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&na.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){null!=n&&(n[e]=i)}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=da().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function aM(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class WK extends og{constructor(n,e,i,o,r,s,a,c){super(n,r,s,c),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const l=sM(o.id,o.styles);for(const u of l){const p=document.createElement("style");a&&p.setAttribute("nonce",a),p.textContent=u,this.shadowRoot.appendChild(p)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class rg extends og{constructor(n,e,i,o,r,s,a,c){super(n,r,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o,this.styles=c?sM(c,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class cM extends rg{constructor(n,e,i,o,r,s,a,c){const l=o+"-"+i.id;super(n,e,i,r,s,a,c,l),this.contentAttr=function $K(t){return"_ngcontent-%COMP%".replace(ng,t)}(l),this.hostAttr=function YK(t){return"_nghost-%COMP%".replace(ng,t)}(l)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let GK=(()=>{class t extends iM{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const lM=["alt","control","meta","shift"],qK={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},KK={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let JK=(()=>{class t extends iM{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o){const r=t.parseEventName(i),s=t.eventCallback(r.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>da().onAndCancel(e,r.domEventName,s))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const r=t._normalizeKey(i.pop());let s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),lM.forEach(l=>{const u=i.indexOf(l);u>-1&&(i.splice(u,1),s+=l+".")}),s+=r,0!=i.length||0===r.length)return null;const c={};return c.domEventName=o,c.fullKey=s,c}static matchEventFullKeyCode(e,i){let o=qK[e.key]||e.key,r="";return i.indexOf("code.")>-1&&(o=e.code,r="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),lM.forEach(s=>{s!==o&&(0,KK[s])(e)&&(r+=s+".")}),r+=o,r===i)}static eventCallback(e,i,o){return r=>{t.matchEventFullKeyCode(r,e)&&o.runGuarded(()=>i(r))}}static _normalizeKey(e){return"esc"===e?"escape":e}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const uM=[{provide:Ir,useValue:WT},{provide:Tb,useValue:function ZK(){Qm.makeCurrent()},multi:!0},{provide:It,useFactory:function XK(){return function OR(t){m8=t}(document),document},deps:[]}],eJ=LS(qW,"browser",uM),tJ=new oe(""),hM=[{provide:j4,useClass:class FK{addToWindow(n){Cn.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new j(5103,!1);return r},Cn.getAllAngularTestabilities=()=>n.getAllTestabilities(),Cn.getAllAngularRootElements=()=>n.getAllRootElements(),Cn.frameworkStabilizers||(Cn.frameworkStabilizers=[]),Cn.frameworkStabilizers.push(i=>{const o=Cn.getAllAngularTestabilities();let r=o.length;const s=function(){r--,0==r&&i()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?da().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:DS,useClass:gm,deps:[De,vm,j4]},{provide:gm,useClass:gm,deps:[De,vm,j4]}],pM=[{provide:Ip,useValue:"root"},{provide:hr,useFactory:function QK(){return new hr},deps:[]},{provide:Xm,useClass:GK,multi:!0,deps:[It,De,Ir]},{provide:Xm,useClass:JK,multi:!0,deps:[It]},ig,oM,nM,{provide:Qa,useExisting:ig},{provide:class sK{},useClass:RK,deps:[]},[]];let sg=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:zl,useValue:e.appId}]}}static#e=this.\u0275fac=function(i){return new(i||t)(R(tJ,12))};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[...pM,...hM],imports:[UT,KW]})}return t})(),nJ=(()=>{class t{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_u=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:function(i){let o=null;return o=i?new(i||t):R(sJ),o},providedIn:"root"})}return t})(),sJ=(()=>{class t extends _u{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case Uo.NONE:return i;case Uo.HTML:return as(i,"HTML")?Yo(i):Gb(this._doc,String(i)).toString();case Uo.STYLE:return as(i,"Style")?Yo(i):i;case Uo.SCRIPT:if(as(i,"Script"))return Yo(i);throw new j(5200,!1);case Uo.URL:return as(i,"URL")?Yo(i):Zh(String(i));case Uo.RESOURCE_URL:if(as(i,"ResourceURL"))return Yo(i);throw new j(5201,!1);default:throw new j(5202,!1)}}bypassSecurityTrustHtml(e){return function eL(t){return new qR(t)}(e)}bypassSecurityTrustStyle(e){return function tL(t){return new KR(t)}(e)}bypassSecurityTrustScript(e){return function nL(t){return new JR(t)}(e)}bypassSecurityTrustUrl(e){return function iL(t){return new ZR(t)}(e)}bypassSecurityTrustResourceUrl(e){return function oL(t){return new QR(t)}(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function gM(t,n,e,i,o,r,s){try{var a=t[r](s),c=a.value}catch(l){return void e(l)}a.done?n(c):Promise.resolve(c).then(i,o)}function Di(t){return function(){var n=this,e=arguments;return new Promise(function(i,o){var r=t.apply(n,e);function s(c){gM(r,i,o,s,a,"next",c)}function a(c){gM(r,i,o,s,a,"throw",c)}s(void 0)})}}function _0(t){return!!t&&(t instanceof Ut||Ct(t.lift)&&Ct(t.subscribe))}function kt(t,n,e,i){var s,o=arguments.length,r=o<3?n:null===i?i=Object.getOwnPropertyDescriptor(n,e):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,n,e,i);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(n,e,r):s(n,e))||r);return o>3&&r&&Object.defineProperty(n,e,r),r}function ua(t){return this instanceof ua?(this.v=t,this):new ua(t)}function yM(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=function dg(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],i=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(r){e[r]=t[r]&&function(s){return new Promise(function(a,c){!function o(r,s,a,c){Promise.resolve(c).then(function(l){r({value:l,done:a})},s)}(a,c,(s=t[r](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const ug=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function CM(t){return Ct(t?.then)}function wM(t){return Ct(t[Mr])}function zM(t){return Symbol.asyncIterator&&Ct(t?.[Symbol.asyncIterator])}function SM(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const TM=function DJ(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function MM(t){return Ct(t?.[TM])}function DM(t){return function bM(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o={},a("next"),a("throw"),a("return",function s(b){return function(y){return Promise.resolve(y).then(b,p)}}),o[Symbol.asyncIterator]=function(){return this},o;function a(b,y){i[b]&&(o[b]=function(z){return new Promise(function(E,k){r.push([b,z,E,k])>1||c(b,z)})},y&&(o[b]=y(o[b])))}function c(b,y){try{!function l(b){b.value instanceof ua?Promise.resolve(b.value.v).then(u,p):_(r[0][2],b)}(i[b](y))}catch(z){_(r[0][3],z)}}function u(b){c("next",b)}function p(b){c("throw",b)}function _(b,y){b(y),r.shift(),r.length&&c(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield ua(e.read());if(o)return yield ua(void 0);yield yield ua(i)}}finally{e.releaseLock()}})}function xM(t){return Ct(t?.getReader)}function Ii(t){if(t instanceof Ut)return t;if(null!=t){if(wM(t))return function xJ(t){return new Ut(n=>{const e=t[Mr]();if(Ct(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(ug(t))return function EJ(t){return new Ut(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,W2)})}(t);if(zM(t))return EM(t);if(MM(t))return function AJ(t){return new Ut(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(xM(t))return function OJ(t){return EM(DM(t))}(t)}throw SM(t)}function EM(t){return new Ut(n=>{(function PJ(t,n){var e,i,o,r;return function vM(t,n,e,i){return new(e||(e=Promise))(function(r,s){function a(u){try{l(i.next(u))}catch(p){s(p)}}function c(u){try{l(i.throw(u))}catch(p){s(p)}}function l(u){u.done?r(u.value):function o(r){return r instanceof e?r:new e(function(s){s(r)})}(u.value).then(a,c)}l((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=yM(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(s){o={error:s}}finally{try{i&&!i.done&&(r=e.return)&&(yield r.call(e))}finally{if(o)throw o.error}}n.complete()})})(t,n).catch(e=>n.error(e))})}function Is(t,n,e,i=0,o=!1){const r=n.schedule(function(){e(),o?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(r),!o)return r}function kM(t,n=0){return dn((e,i)=>{e.subscribe(Zt(i,o=>Is(i,t,()=>i.next(o),n),()=>Is(i,t,()=>i.complete(),n),o=>Is(i,t,()=>i.error(o),n)))})}function AM(t,n=0){return dn((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function OM(t,n){if(!t)throw new Error("Iterable cannot be null");return new Ut(e=>{Is(e,n,()=>{const i=t[Symbol.asyncIterator]();Is(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function ni(t,n){return n?function LJ(t,n){if(null!=t){if(wM(t))return function IJ(t,n){return Ii(t).pipe(AM(n),kM(n))}(t,n);if(ug(t))return function VJ(t,n){return new Ut(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(CM(t))return function NJ(t,n){return Ii(t).pipe(AM(n),kM(n))}(t,n);if(zM(t))return OM(t,n);if(MM(t))return function FJ(t,n){return new Ut(e=>{let i;return Is(e,n,()=>{i=t[TM](),Is(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(s){return void e.error(s)}r?e.complete():e.next(o)},0,!0)}),()=>Ct(i?.return)&&i.return()})}(t,n);if(xM(t))return function RJ(t,n){return OM(DM(t),n)}(t,n)}throw SM(t)}(t,n):Ii(t)}function PM(t){return t&&Ct(t.schedule)}function hg(t){return t[t.length-1]}function pg(t){return Ct(hg(t))?t.pop():void 0}function bu(t){return PM(hg(t))?t.pop():void 0}function We(...t){return ni(t,bu(t))}const{isArray:BJ}=Array,{getPrototypeOf:jJ,prototype:$J,keys:YJ}=Object;function IM(t){if(1===t.length){const n=t[0];if(BJ(n))return{args:n,keys:null};if(function UJ(t){return t&&"object"==typeof t&&jJ(t)===$J}(n)){const e=YJ(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:WJ}=Array;function fg(t){return Ie(n=>function GJ(t,n){return WJ(n)?t(...n):t(n)}(t,n))}function NM(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function xi(...t){const n=bu(t),e=pg(t),{args:i,keys:o}=IM(t);if(0===i.length)return ni([],n);const r=new Ut(function qJ(t,n,e=Bn){return i=>{VM(n,()=>{const{length:o}=t,r=new Array(o);let s=o,a=o;for(let c=0;c{const l=ni(t[c],n);let u=!1;l.subscribe(Zt(i,p=>{r[c]=p,u||(u=!0,a--),a||i.next(e(r.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,n,o?s=>NM(o,s):Bn));return e?r.pipe(fg(e)):r}function VM(t,n,e){t?Is(e,t,n):n()}const b0=ka(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function $n(t,n,e=1/0){return Ct(n)?$n((i,o)=>Ie((r,s)=>n(i,r,o,s))(Ii(t(i,o))),e):("number"==typeof n&&(e=n),dn((i,o)=>function KJ(t,n,e,i,o,r,s,a){const c=[];let l=0,u=0,p=!1;const _=()=>{p&&!c.length&&!l&&n.complete()},b=z=>l{r&&n.next(z),l++;let E=!1;Ii(e(z,u++)).subscribe(Zt(n,k=>{o?.(k),r?b(k):n.next(k)},()=>{E=!0},void 0,()=>{if(E)try{for(l--;c.length&&ly(k)):y(k)}_()}catch(k){n.error(k)}}))};return t.subscribe(Zt(n,b,()=>{p=!0,_()})),()=>{a?.()}}(i,o,t,e)))}function s1(t=1/0){return $n(Bn,t)}function yu(...t){return function JJ(){return s1(1)}()(ni(t,bu(t)))}function mg(t){return new Ut(n=>{Ii(t()).subscribe(n)})}function y0(t,n){const e=Ct(t)?t:()=>t,i=o=>o.error(e());return new Ut(n?o=>n.schedule(i,0,o):i)}const bo=new Ut(t=>t.complete());function gg(){return dn((t,n)=>{let e=null;t._refCount++;const i=Zt(n,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount)return void(e=null);const o=t._connection,r=e;e=null,o&&(!r||o===r)&&o.unsubscribe(),n.unsubscribe()});t.subscribe(i),i.closed||(e=t.connect())})}class vg extends Ut{constructor(n,e){super(),this.source=n,this.subjectFactory=e,this._subject=null,this._refCount=0,this._connection=null,Zc(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new Ft;const e=this.getSubject();n.add(this.source.subscribe(Zt(e,void 0,()=>{this._teardown(),e.complete()},i=>{this._teardown(),e.error(i)},()=>this._teardown()))),n.closed&&(this._connection=null,n=Ft.EMPTY)}return n}refCount(){return gg()(this)}}function mn(t,n){return dn((e,i)=>{let o=null,r=0,s=!1;const a=()=>s&&!o&&i.complete();e.subscribe(Zt(i,c=>{o?.unsubscribe();let l=0;const u=r++;Ii(t(c,u)).subscribe(o=Zt(i,p=>i.next(n?n(c,p,u,l++):p),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function io(t){return t<=0?()=>bo:dn((n,e)=>{let i=0;n.subscribe(Zt(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function gn(...t){const n=bu(t);return dn((e,i)=>{(n?yu(t,e,n):yu(t,e)).subscribe(i)})}function yt(t,n){return dn((e,i)=>{let o=0;e.subscribe(Zt(i,r=>t.call(n,r,o++)&&i.next(r)))})}function C0(t){return dn((n,e)=>{let i=!1;n.subscribe(Zt(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}function FM(t=QJ){return dn((n,e)=>{let i=!1;n.subscribe(Zt(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function QJ(){return new b0}function Ns(t,n){const e=arguments.length>=2;return i=>i.pipe(t?yt((o,r)=>t(o,r,i)):Bn,io(1),e?C0(n):FM(()=>new b0))}function a1(t,n){return Ct(n)?$n(t,n,1):$n(t,1)}function ii(t,n,e){const i=Ct(t)||n||e?{next:t,error:n,complete:e}:t;return i?dn((o,r)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;o.subscribe(Zt(r,c=>{var l;null===(l=i.next)||void 0===l||l.call(i,c),r.next(c)},()=>{var c;a=!1,null===(c=i.complete)||void 0===c||c.call(i),r.complete()},c=>{var l;a=!1,null===(l=i.error)||void 0===l||l.call(i,c),r.error(c)},()=>{var c,l;a&&(null===(c=i.unsubscribe)||void 0===c||c.call(i)),null===(l=i.finalize)||void 0===l||l.call(i)}))}):Bn}function uc(t){return dn((n,e)=>{let r,i=null,o=!1;i=n.subscribe(Zt(e,void 0,void 0,s=>{r=Ii(t(s,uc(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}function _g(t){return t<=0?()=>bo:dn((n,e)=>{let i=[];n.subscribe(Zt(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}function hc(t){return Ie(()=>t)}function c1(t){return dn((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function I(t){return dn((n,e)=>{Ii(t).subscribe(Zt(e,()=>e.complete(),qs)),!e.closed&&n.subscribe(e)})}const Mt="primary",Cu=Symbol("RouteTitle");class nZ{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e[0]:e}return null}getAll(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function l1(t){return new nZ(t)}function iZ(t,n,e){const i=e.path.split("/");if(i.length>t.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengthi[r]===o)}return t===n}function LM(t){return t.length>0?t[t.length-1]:null}function ha(t){return _0(t)?t:cu(t)?ni(Promise.resolve(t)):We(t)}const rZ={exact:function jM(t,n,e){if(!pc(t.segments,n.segments)||!w0(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!jM(t.children[i],n.children[i],e))return!1;return!0},subset:$M},HM={exact:function sZ(t,n){return us(t,n)},subset:function aZ(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>RM(t[e],n[e]))},ignored:()=>!0};function BM(t,n,e){return rZ[e.paths](t.root,n.root,e.matrixParams)&&HM[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function $M(t,n,e){return YM(t,n,n.segments,e)}function YM(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!pc(o,e)||n.hasChildren()||!w0(o,e,i))}if(t.segments.length===e.length){if(!pc(t.segments,e)||!w0(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!$M(t.children[o],n.children[o],i))return!1;return!0}{const o=e.slice(0,t.segments.length),r=e.slice(t.segments.length);return!!(pc(t.segments,o)&&w0(t.segments,o,i)&&t.children[Mt])&&YM(t.children[Mt],n,r,i)}}function w0(t,n,e){return n.every((i,o)=>HM[e](t[o].parameters,i.parameters))}class d1{constructor(n=new bn([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=l1(this.queryParams),this._queryParamMap}toString(){return dZ.serialize(this)}}class bn{constructor(n,e){this.segments=n,this.children=e,this.parent=null,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return S0(this)}}class wu{constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=l1(this.parameters),this._parameterMap}toString(){return GM(this)}}function pc(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let u1=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>new z0,providedIn:"root"})}return t})();class z0{parse(n){const e=new CZ(n);return new d1(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${zu(n.root,!0)}`,i=function pZ(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${T0(e)}=${T0(o)}`).join("&"):`${T0(e)}=${T0(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function uZ(t){return encodeURI(t)}(n.fragment)}`:""}`}}const dZ=new z0;function S0(t){return t.segments.map(n=>GM(n)).join("/")}function zu(t,n){if(!t.hasChildren())return S0(t);if(n){const e=t.children[Mt]?zu(t.children[Mt],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Mt&&i.push(`${o}:${zu(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function lZ(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Mt&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Mt&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Mt?[zu(t.children[Mt],!1)]:[`${o}:${zu(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Mt]?`${S0(t)}/${e[0]}`:`${S0(t)}/(${e.join("//")})`}}function UM(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function T0(t){return UM(t).replace(/%3B/gi,";")}function yg(t){return UM(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function M0(t){return decodeURIComponent(t)}function WM(t){return M0(t.replace(/\+/g,"%20"))}function GM(t){return`${yg(t.path)}${function hZ(t){return Object.entries(t).map(([n,e])=>`;${yg(n)}=${yg(e)}`).join("")}(t.parameters)}`}const fZ=/^[^\/()?;#]+/;function Cg(t){const n=t.match(fZ);return n?n[0]:""}const mZ=/^[^\/()?;=#]+/,vZ=/^[^=?&#]+/,bZ=/^[^&#]+/;class CZ{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new bn([],{}):new bn([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(e).length>0)&&(i[Mt]=new bn(n,e)),i}parseSegment(){const n=Cg(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new j(4009,!1);return this.capture(n),new wu(M0(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function gZ(t){const n=t.match(mZ);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=Cg(this.remaining);o&&(i=o,this.capture(i))}n[M0(e)]=M0(i)}parseQueryParam(n){const e=function _Z(t){const n=t.match(vZ);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const s=function yZ(t){const n=t.match(bZ);return n?n[0]:""}(this.remaining);s&&(i=s,this.capture(i))}const o=WM(e),r=WM(i);if(n.hasOwnProperty(o)){let s=n[o];Array.isArray(s)||(s=[s],n[o]=s),s.push(r)}else n[o]=r}parseParens(n){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=Cg(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new j(4010,!1);let r;i.indexOf(":")>-1?(r=i.slice(0,i.indexOf(":")),this.capture(r),this.capture(":")):n&&(r=Mt);const s=this.parseChildren();e[r]=1===Object.keys(s).length?s[Mt]:new bn([],s),this.consumeOptional("//")}return e}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new j(4011,!1)}}function qM(t){return t.segments.length>0?new bn([],{[Mt]:t}):t}function KM(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=KM(o);if(i===Mt&&0===r.segments.length&&r.hasChildren())for(const[s,a]of Object.entries(r.children))n[s]=a;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function wZ(t){if(1===t.numberOfChildren&&t.children[Mt]){const n=t.children[Mt];return new bn(t.segments.concat(n.segments),n.children)}return t}(new bn(t.segments,n))}function Su(t){return t instanceof d1}function JM(t){let n;const o=qM(function e(r){const s={};for(const c of r.children){const l=e(c);s[c.outlet]=l}const a=new bn(r.url,s);return r===t&&(n=a),a}(t.root));return n??o}function ZM(t,n,e,i){let o=t;for(;o.parent;)o=o.parent;if(0===n.length)return wg(o,o,o,e,i);const r=function SZ(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new XM(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,s)=>{if("object"==typeof r&&null!=r){if(r.outlets){const a={};return Object.entries(r.outlets).forEach(([c,l])=>{a[c]="string"==typeof l?l.split("/"):l}),[...o,{outlets:a}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===s?(r.split("/").forEach((a,c)=>{0==c&&"."===a||(0==c&&""===a?e=!0:".."===a?n++:""!=a&&o.push(a))}),o):[...o,r]},[]);return new XM(e,n,i)}(n);if(r.toRoot())return wg(o,o,new bn([],{}),e,i);const s=function TZ(t,n,e){if(t.isAbsolute)return new x0(n,!0,0);if(!e)return new x0(n,!1,NaN);if(null===e.parent)return new x0(e,!0,0);const i=D0(t.commands[0])?0:1;return function MZ(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new j(4005,!1);o=i.segments.length}return new x0(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(r,o,t),a=s.processChildren?Mu(s.segmentGroup,s.index,r.commands):eD(s.segmentGroup,s.index,r.commands);return wg(o,s.segmentGroup,a,e,i)}function D0(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function Tu(t){return"object"==typeof t&&null!=t&&t.outlets}function wg(t,n,e,i,o){let s,r={};i&&Object.entries(i).forEach(([c,l])=>{r[c]=Array.isArray(l)?l.map(u=>`${u}`):`${l}`}),s=t===n?e:QM(t,n,e);const a=qM(KM(s));return new d1(a,r,o)}function QM(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:QM(r,n,e)}),new bn(t.segments,i)}class XM{constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&D0(i[0]))throw new j(4003,!1);const o=i.find(Tu);if(o&&o!==LM(i))throw new j(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class x0{constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function eD(t,n,e){if(t??=new bn([],{}),0===t.segments.length&&t.hasChildren())return Mu(t,n,e);const i=function xZ(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const s=t.segments[o],a=e[i];if(Tu(a))break;const c=`${a}`,l=i0&&void 0===c)break;if(c&&l&&"object"==typeof l&&void 0===l.outlets){if(!nD(c,l,s))return r;i+=2}else{if(!nD(c,{},s))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Mt)&&t.children[Mt]&&1===t.numberOfChildren&&0===t.children[Mt].segments.length){const r=Mu(t.children[Mt],n,e);return new bn(t.segments,r.children)}return Object.entries(i).forEach(([r,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[r]=eD(t.children[r],n,s))}),Object.entries(t.children).forEach(([r,s])=>{void 0===i[r]&&(o[r]=s)}),new bn(t.segments,o)}}function zg(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=zg(new bn([],{}),0,i))}),n}function tD(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function nD(t,n,e){return t==e.path&&us(n,e.parameters)}const Du="imperative";var qt=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(qt||{});class hs{constructor(n,e){this.id=n,this.url=e}}class E0 extends hs{constructor(n,e,i="imperative",o=null){super(n,e),this.type=qt.NavigationStart,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Br extends hs{constructor(n,e,i){super(n,e),this.urlAfterRedirects=i,this.type=qt.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Qo=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(Qo||{}),k0=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(k0||{});class fc extends hs{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=qt.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class h1 extends hs{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=qt.NavigationSkipped}}class Sg extends hs{constructor(n,e,i,o){super(n,e),this.error=i,this.target=o,this.type=qt.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class iD extends hs{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=qt.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class kZ extends hs{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=qt.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class AZ extends hs{constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r,this.type=qt.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class OZ extends hs{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=qt.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class PZ extends hs{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=qt.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class IZ{constructor(n){this.route=n,this.type=qt.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class NZ{constructor(n){this.route=n,this.type=qt.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class VZ{constructor(n){this.snapshot=n,this.type=qt.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class FZ{constructor(n){this.snapshot=n,this.type=qt.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class RZ{constructor(n){this.snapshot=n,this.type=qt.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class LZ{constructor(n){this.snapshot=n,this.type=qt.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class oD{constructor(n,e,i){this.routerEvent=n,this.position=e,this.anchor=i,this.type=qt.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Tg{}class A0{constructor(n,e){this.url=n,this.navigationBehaviorOptions=e}}class HZ{constructor(n){this.injector=n,this.outlet=null,this.route=null,this.children=new xu(this.injector),this.attachRef=null}}let xu=(()=>{class t{constructor(e){this.parentInjector=e,this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new HZ(this.parentInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static#e=this.\u0275fac=function(i){return new(i||t)(R(Li))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class rD{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const e=this.pathFromRoot(n);return e.length>1?e[e.length-2]:null}children(n){const e=Mg(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=Mg(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=Dg(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return Dg(n,this._root).map(e=>e.value)}}function Mg(t,n){if(t===n.value)return n;for(const e of n.children){const i=Mg(t,e);if(i)return i}return null}function Dg(t,n){if(t===n.value)return[n];for(const e of n.children){const i=Dg(t,e);if(i.length)return i.unshift(n),i}return[]}class jr{constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function p1(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class sD extends rD{constructor(n,e){super(n),this.snapshot=e,xg(this,n)}toString(){return this.snapshot.toString()}}function aD(t){const n=function BZ(t){const r=new P0([],{},{},"",{},Mt,t,null,{});return new cD("",new jr(r,[]))}(t),e=new rt([new wu("",{})]),i=new rt({}),o=new rt({}),r=new rt({}),s=new rt(""),a=new Po(e,i,r,s,o,Mt,t,n.root);return a.snapshot=n.root,new sD(new jr(a,[]),n)}class Po{constructor(n,e,i,o,r,s,a,c){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=s,this.component=a,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(Ie(l=>l[Cu]))??We(void 0),this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(Ie(n=>l1(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Ie(n=>l1(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function O0(t,n,e="emptyOnly"){let i;const{routeConfig:o}=t;return i=null===n||"always"!==e&&""!==o?.path&&(n.component||n.routeConfig?.loadComponent)?{params:{...t.params},data:{...t.data},resolve:{...t.data,...t._resolvedData??{}}}:{params:{...n.params,...t.params},data:{...n.data,...t.data},resolve:{...t.data,...n.data,...o?.data,...t._resolvedData}},o&&dD(o)&&(i.resolve[Cu]=o.title),i}class P0{get title(){return this.data?.[Cu]}constructor(n,e,i,o,r,s,a,c,l){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=s,this.component=a,this.routeConfig=c,this._resolve=l}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=l1(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=l1(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class cD extends rD{constructor(n,e){super(e),this.url=n,xg(this,e)}toString(){return lD(this._root)}}function xg(t,n){n.value._routerState=t,n.children.forEach(e=>xg(t,e))}function lD(t){const n=t.children.length>0?` { ${t.children.map(lD).join(", ")} } `:"";return`${t.value}${n}`}function Eg(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,us(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),us(n.params,e.params)||t.paramsSubject.next(e.params),function oZ(t,n){if(t.length!==n.length)return!1;for(let e=0;eus(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||kg(t.parent,n.parent))}function dD(t){return"string"==typeof t.title||null===t.title}let I0=(()=>{class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=Mt,this.activateEvents=new H,this.deactivateEvents=new H,this.attachEvents=new H,this.detachEvents=new H,this.parentContexts=W(xu),this.location=W(Gn),this.changeDetector=W(Ue),this.inputBinder=W(N0,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new j(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new j(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new j(4012,!1);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new j(4013,!1);this._activatedRoute=e;const o=this.location,s=e.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,c=new Ag(e,a,o.injector);this.activated=o.createComponent(s,{index:o.length,injector:c,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[ke]})}return t})();class Ag{__ngOutletInjector(n){return new Ag(this.route,this.childContexts,n)}constructor(n,e,i){this.route=n,this.childContexts=e,this.parent=i}get(n,e){return n===Po?this.route:n===xu?this.childContexts:this.parent.get(n,e)}}const N0=new oe("");let uD=(()=>{class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){const{activatedRoute:i}=e,o=xi([i.queryParams,i.params,i.data]).pipe(mn(([r,s,a],c)=>(a={...r,...s,...a},0===c?We(a):Promise.resolve(a)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const s=function VG(t){const n=xt(t);if(!n)return null;const e=new $d(n);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}(i.component);if(s)for(const{templateName:a}of s.inputs)e.activatedComponentRef.setInput(a,r[a]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();function Eu(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function $Z(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return Eu(t,i,o);return Eu(t,i)})}(t,n,e);return new jr(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const s=r.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>Eu(t,a)),s}}const i=function YZ(t){return new Po(new rt(t.url),new rt(t.params),new rt(t.queryParams),new rt(t.fragment),new rt(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>Eu(t,r));return new jr(i,o)}}class Og{constructor(n,e){this.redirectTo=n,this.navigationBehaviorOptions=e}}const hD="ngNavigationCancelingError";function V0(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=Su(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=pD(!1,Qo.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function pD(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[hD]=!0,e.cancellationCode=n,e}function fD(t){return!!t&&t[hD]}let mD=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["ng-component"]],standalone:!0,features:[me],decls:1,vars:0,template:function(i,o){1&i&&S(0,"router-outlet")},dependencies:[I0],encapsulation:2})}return t})();function Pg(t){const n=t.children&&t.children.map(Pg),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Mt&&(e.component=mD),e}function $r(t){return t.outlet||Mt}function ku(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let n=t.parent;n;n=n.parent){const e=n.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class QZ{constructor(n,e,i,o,r){this.routeReuseStrategy=n,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=r}activate(n){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,n),Eg(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=p1(e);n.children.forEach(r=>{const s=r.value.outlet;this.deactivateRoutes(r,o[s],i),delete o[s]}),Object.values(o).forEach(r=>{this.deactivateRouteAndItsChildren(r,i)})}deactivateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(o===r)if(o.component){const s=i.getContext(o.outlet);s&&this.deactivateChildRoutes(n,e,s.children)}else this.deactivateChildRoutes(n,e,i);else r&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(n,e){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,e):this.deactivateRouteAndOutlet(n,e)}detachAndStoreRouteSubtree(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=p1(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);if(i&&i.outlet){const s=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=p1(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=p1(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new LZ(r.value.snapshot))}),n.children.length&&this.forwardEvent(new FZ(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(Eg(o),o===r)if(o.component){const s=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,s.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const s=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Eg(a.route.value),this.activateChildRoutes(n,null,s.children)}else{const a=ku(o.snapshot);s.attachRef=null,s.route=o,s.injector=a??s.injector,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(n,null,s.children)}}else this.activateChildRoutes(n,null,i)}}class gD{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class F0{constructor(n,e){this.component=n,this.route=e}}function XZ(t,n,e){const i=t._root;return Au(i,n?n._root:null,e,[i.value])}function f1(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function gV(t){return null!==oh(t)}(t)?n.get(t):t:i}function Au(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=p1(n);return t.children.forEach(s=>{(function tQ(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,s=n?n.value:null,a=e?e.getContext(t.value.outlet):null;if(s&&r.routeConfig===s.routeConfig){const c=function nQ(t,n,e){if("function"==typeof e)return e(t,n);switch(e){case"pathParamsChange":return!pc(t.url,n.url);case"pathParamsOrQueryParamsChange":return!pc(t.url,n.url)||!us(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!kg(t,n)||!us(t.queryParams,n.queryParams);default:return!kg(t,n)}}(s,r,r.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new gD(i)):(r.data=s.data,r._resolvedData=s._resolvedData),Au(t,n,r.component?a?a.children:null:e,i,o),c&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new F0(a.outlet.component,s))}else s&&Ou(n,a,o),o.canActivateChecks.push(new gD(i)),Au(t,null,r.component?a?a.children:null:e,i,o)})(s,r[s.value.outlet],e,i.concat([s.value]),o),delete r[s.value.outlet]}),Object.entries(r).forEach(([s,a])=>Ou(a,e.getContext(s),o)),o}function Ou(t,n,e){const i=p1(t),o=t.value;Object.entries(i).forEach(([r,s])=>{Ou(s,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new F0(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function Pu(t){return"function"==typeof t}function vD(t){return t instanceof b0||"EmptyError"===t?.name}const R0=Symbol("INITIAL_VALUE");function m1(){return mn(t=>xi(t.map(n=>n.pipe(io(1),gn(R0)))).pipe(Ie(n=>{for(const e of n)if(!0!==e){if(e===R0)return R0;if(!1===e||lQ(e))return e}return!0}),yt(n=>n!==R0),io(1)))}function lQ(t){return Su(t)||t instanceof Og}function _D(t){return function Xr(...t){return Kc(t)}(ii(n=>{if("boolean"!=typeof n)throw V0(0,n)}),Ie(n=>!0===n))}class Ig{constructor(n){this.segmentGroup=n||null}}class L0 extends Error{constructor(n){super(),this.urlTree=n}}function g1(t){return y0(new Ig(t))}class wQ{constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return We(i);if(o.numberOfChildren>1||!o.children[Mt])return y0(new j(4e3,!1));o=o.children[Mt]}}applyRedirectCommands(n,e,i,o,r){if("string"!=typeof e){const a=e,{queryParams:c,fragment:l,routeConfig:u,url:p,outlet:_,params:b,data:y,title:z}=o,E=Er(r,()=>a({params:b,data:y,queryParams:c,fragment:l,routeConfig:u,url:p,outlet:_,title:z}));if(E instanceof d1)throw new L0(E);e=E}const s=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),n,i);if("/"===e[0])throw new L0(s);return s}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new d1(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(n,e){const i={};return Object.entries(n).forEach(([o,r])=>{if("string"==typeof r&&":"===r[0]){const a=r.substring(1);i[o]=e[a]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let s={};return Object.entries(e.children).forEach(([a,c])=>{s[a]=this.createSegmentGroup(n,c,i,o)}),new bn(r,s)}createSegments(n,e,i,o){return e.map(r=>":"===r.path[0]?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new j(4001,!1);return o}findOrReturn(n,e){let i=0;for(const o of e){if(o.path===n.path)return e.splice(i),o;i++}return n}}const Ng={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function zQ(t,n,e,i,o){const r=Vg(t,n,e);return r.matched?(i=function WZ(t,n){return t.providers&&!t._injector&&(t._injector=C4(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function bQ(t,n,e,i){const o=n.canMatch;return o&&0!==o.length?We(o.map(s=>{const a=f1(s,t);return ha(function cQ(t){return t&&Pu(t.canMatch)}(a)?a.canMatch(n,e):Er(t,()=>a(n,e)))})).pipe(m1(),_D()):We(!0)}(i,n,e).pipe(Ie(s=>!0===s?r:{...Ng}))):We(r)}function Vg(t,n,e){if("**"===n.path)return function SQ(t){return{matched:!0,parameters:t.length>0?LM(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}(e);if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...Ng}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||iZ)(e,t,n);if(!o)return{...Ng};const r={};Object.entries(o.posParams??{}).forEach(([a,c])=>{r[a]=c.path});const s=o.consumed.length>0?{...r,...o.consumed[o.consumed.length-1].parameters}:r;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function bD(t,n,e,i){return e.length>0&&function DQ(t,n,e){return e.some(i=>H0(t,n,i)&&$r(i)!==Mt)}(t,e,i)?{segmentGroup:new bn(n,MQ(i,new bn(e,t.children))),slicedSegments:[]}:0===e.length&&function xQ(t,n,e){return e.some(i=>H0(t,n,i))}(t,e,i)?{segmentGroup:new bn(t.segments,TQ(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new bn(t.segments,t.children),slicedSegments:e}}function TQ(t,n,e,i){const o={};for(const r of e)if(H0(t,n,r)&&!i[$r(r)]){const s=new bn([],{});o[$r(r)]=s}return{...i,...o}}function MQ(t,n){const e={};e[Mt]=n;for(const i of t)if(""===i.path&&$r(i)!==Mt){const o=new bn([],{});e[$r(i)]=o}return e}function H0(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class AQ{}class IQ{constructor(n,e,i,o,r,s,a){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.applyRedirects=new wQ(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new j(4002,`'${n.segmentGroup}'`)}recognize(){const n=bD(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(Ie(({children:e,rootSnapshot:i})=>{const o=new jr(i,e),r=new cD("",o),s=function zZ(t,n,e=null,i=null){return ZM(JM(t),n,e,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(s),{state:r,tree:s}}))}match(n){const e=new P0([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,Object.freeze({}),Mt,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,n,Mt,e).pipe(Ie(i=>({children:i,rootSnapshot:e})),uc(i=>{if(i instanceof L0)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Ig?this.noMatchError(i):i}))}processSegmentGroup(n,e,i,o,r){return 0===i.segments.length&&i.hasChildren()?this.processChildren(n,e,i,r):this.processSegment(n,e,i,i.segments,o,!0,r).pipe(Ie(s=>s instanceof jr?[s]:[]))}processChildren(n,e,i,o){const r=[];for(const s of Object.keys(i.children))"primary"===s?r.unshift(s):r.push(s);return ni(r).pipe(a1(s=>{const a=i.children[s],c=function JZ(t,n){const e=t.filter(i=>$r(i)===n);return e.push(...t.filter(i=>$r(i)!==n)),e}(e,s);return this.processSegmentGroup(n,c,a,s,o)}),function eZ(t,n){return dn(function XJ(t,n,e,i,o){return(r,s)=>{let a=e,c=n,l=0;r.subscribe(Zt(s,u=>{const p=l++;c=a?t(c,u,p):(a=!0,u),i&&s.next(c)},o&&(()=>{a&&s.next(c),s.complete()})))}}(t,n,arguments.length>=2,!0))}((s,a)=>(s.push(...a),s)),C0(null),function tZ(t,n){const e=arguments.length>=2;return i=>i.pipe(t?yt((o,r)=>t(o,r,i)):Bn,_g(1),e?C0(n):FM(()=>new b0))}(),$n(s=>{if(null===s)return g1(i);const a=yD(s);return function NQ(t){t.sort((n,e)=>n.value.outlet===Mt?-1:e.value.outlet===Mt?1:n.value.outlet.localeCompare(e.value.outlet))}(a),We(a)}))}processSegment(n,e,i,o,r,s,a){return ni(e).pipe(a1(c=>this.processSegmentAgainstRoute(c._injector??n,e,c,i,o,r,s,a).pipe(uc(l=>{if(l instanceof Ig)return We(null);throw l}))),Ns(c=>!!c),uc(c=>{if(vD(c))return function kQ(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r)?We(new AQ):g1(i);throw c}))}processSegmentAgainstRoute(n,e,i,o,r,s,a,c){return function EQ(t,n,e,i){return!!($r(t)===i||i!==Mt&&H0(n,e,t))&&Vg(n,t,e).matched}(i,o,r,s)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(n,o,i,r,s,c):this.allowRedirects&&a?this.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,s,c):g1(o):g1(o)}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,s,a){const{matched:c,parameters:l,consumedSegments:u,positionalParamSegments:p,remainingSegments:_}=Vg(e,o,r);if(!c)return g1(e);"string"==typeof o.redirectTo&&"/"===o.redirectTo[0]&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const b=new P0(r,l,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,CD(o),$r(o),o.component??o._loadedComponent??null,o,wD(o)),y=O0(b,a,this.paramsInheritanceStrategy);b.params=Object.freeze(y.params),b.data=Object.freeze(y.data);const z=this.applyRedirects.applyRedirectCommands(u,o.redirectTo,p,b,n);return this.applyRedirects.lineralizeSegments(o,z).pipe($n(E=>this.processSegment(n,i,e,E.concat(_),s,!1,a)))}matchSegmentAgainstRoute(n,e,i,o,r,s){const a=zQ(e,i,o,n);return"**"===i.path&&(e.children={}),a.pipe(mn(c=>c.matched?this.getChildConfig(n=i._injector??n,i,o).pipe(mn(({routes:l})=>{const u=i._loadedInjector??n,{parameters:p,consumedSegments:_,remainingSegments:b}=c,y=new P0(_,p,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,CD(i),$r(i),i.component??i._loadedComponent??null,i,wD(i)),z=O0(y,s,this.paramsInheritanceStrategy);y.params=Object.freeze(z.params),y.data=Object.freeze(z.data);const{segmentGroup:E,slicedSegments:k}=bD(e,_,b,l);if(0===k.length&&E.hasChildren())return this.processChildren(u,l,E,y).pipe(Ie(ie=>new jr(y,ie)));if(0===l.length&&0===k.length)return We(new jr(y,[]));const A=$r(i)===r;return this.processSegment(u,l,E,k,A?Mt:r,!0,y).pipe(Ie(ie=>new jr(y,ie instanceof jr?[ie]:[])))})):g1(e)))}getChildConfig(n,e,i){return e.children?We({routes:e.children,injector:n}):e.loadChildren?void 0!==e._loadedRoutes?We({routes:e._loadedRoutes,injector:e._loadedInjector}):function _Q(t,n,e,i){const o=n.canLoad;return void 0===o||0===o.length?We(!0):We(o.map(s=>{const a=f1(s,t);return ha(function oQ(t){return t&&Pu(t.canLoad)}(a)?a.canLoad(n,e):Er(t,()=>a(n,e)))})).pipe(m1(),_D())}(n,e,i).pipe($n(o=>o?this.configLoader.loadChildren(n,e).pipe(ii(r=>{e._loadedRoutes=r.routes,e._loadedInjector=r.injector})):function CQ(t){return y0(pD(!1,Qo.GuardRejected))}())):We({routes:[],injector:n})}}function VQ(t){const n=t.value.routeConfig;return n&&""===n.path}function yD(t){const n=[],e=new Set;for(const i of t){if(!VQ(i)){n.push(i);continue}const o=n.find(r=>i.value.routeConfig===r.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):n.push(i)}for(const i of e){const o=yD(i.children);n.push(new jr(i.value,o))}return n.filter(i=>!e.has(i))}function CD(t){return t.data||{}}function wD(t){return t.resolve||{}}function zD(t){const n=t.children.map(e=>zD(e)).flat();return[t,...n]}function Fg(t){return mn(n=>{const e=t(n);return e?ni(e).pipe(Ie(()=>n)):We(n)})}let SD=(()=>{class t{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(r=>r.outlet===Mt);return i}getResolvedTitleForRoute(e){return e.data[Cu]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(jQ),providedIn:"root"})}return t})(),jQ=(()=>{class t extends SD{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static#e=this.\u0275fac=function(i){return new(i||t)(R(nJ))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const v1=new oe("",{providedIn:"root",factory:()=>({})}),_1=new oe("");let Rg=(()=>{class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=W(PS)}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return We(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=ha(e.loadComponent()).pipe(Ie(TD),ii(r=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=r}),c1(()=>{this.componentLoaders.delete(e)})),o=new vg(i,()=>new N).pipe(gg());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return We({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=function $Q(t,n,e,i){return ha(t.loadChildren()).pipe(Ie(TD),$n(o=>o instanceof tw||Array.isArray(o)?We(o):ni(n.compileModuleAsync(o))),Ie(o=>{i&&i(t);let r,s,a=!1;return Array.isArray(o)?(s=o,!0):(r=o.create(e).injector,s=r.get(_1,[],{optional:!0,self:!0}).flat()),{routes:s.map(Pg),injector:r}}))}(i,this.compiler,e,this.onLoadEndListener).pipe(c1(()=>{this.childrenLoaders.delete(i)})),s=new vg(r,()=>new N).pipe(gg());return this.childrenLoaders.set(i,s),s}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function TD(t){return function YQ(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}let Lg=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(UQ),providedIn:"root"})}return t})(),UQ=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const MD=new oe(""),DD=new oe("");function WQ(t,n,e){const i=t.get(DD),o=t.get(It);return t.get(De).runOutsideAngular(()=>{if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(l=>setTimeout(l));let r;const s=new Promise(l=>{r=l}),a=o.startViewTransition(()=>(r(),function GQ(t){return new Promise(n=>{Xa(()=>setTimeout(n),{injector:t,phase:ia.Read})})}(t))),{onViewTransitionCreated:c}=i;return c&&Er(t,()=>c({transition:a,from:n,to:e})),s})}const xD=new oe("");let B0=(()=>{class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new N,this.transitionAbortSubject=new N,this.configLoader=W(Rg),this.environmentInjector=W(Li),this.urlSerializer=W(u1),this.rootContexts=W(xu),this.location=W(o1),this.inputBindingEnabled=null!==W(N0,{optional:!0}),this.titleStrategy=W(SD),this.options=W(v1,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=W(Lg),this.createViewTransition=W(MD,{optional:!0}),this.navigationErrorHandler=W(xD,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>We(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new NZ(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new IZ(o))}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e,i,o){return this.transitions=new rt({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:()=>{},reject:()=>{},promise:Promise.resolve(!0),source:Du,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(yt(r=>0!==r.id),Ie(r=>({...r,extractedUrl:this.urlHandlingStrategy.extract(r.rawUrl)})),mn(r=>{let s=!1,a=!1;return We(r).pipe(mn(c=>{if(this.navigationId>r.id)return this.cancelNavigationTransition(r,"",Qo.SupersededByNewNavigation),bo;this.currentTransition=r,this.currentNavigation={id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,trigger:c.source,extras:c.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const l=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!l&&"reload"!==(c.extras.onSameUrlNavigation??e.onSameUrlNavigation)){const p="";return this.events.next(new h1(c.id,this.urlSerializer.serialize(c.rawUrl),p,k0.IgnoredSameUrlNavigation)),c.resolve(!1),bo}if(this.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return We(c).pipe(mn(p=>{const _=this.transitions?.getValue();return this.events.next(new E0(p.id,this.urlSerializer.serialize(p.extractedUrl),p.source,p.restoredState)),_!==this.transitions?.getValue()?bo:Promise.resolve(p)}),function FQ(t,n,e,i,o,r){return $n(s=>function OQ(t,n,e,i,o,r,s="emptyOnly"){return new IQ(t,n,e,i,o,s,r).recognize()}(t,n,e,i,s.extractedUrl,o,r).pipe(Ie(({state:a,tree:c})=>({...s,targetSnapshot:a,urlAfterRedirects:c}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),ii(p=>{r.targetSnapshot=p.targetSnapshot,r.urlAfterRedirects=p.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:p.urlAfterRedirects};const _=new iD(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot);this.events.next(_)}));if(l&&this.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){const{id:p,extractedUrl:_,source:b,restoredState:y,extras:z}=c,E=new E0(p,this.urlSerializer.serialize(_),b,y);this.events.next(E);const k=aD(this.rootComponentType).snapshot;return this.currentTransition=r={...c,targetSnapshot:k,urlAfterRedirects:_,extras:{...z,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=_,We(r)}{const p="";return this.events.next(new h1(c.id,this.urlSerializer.serialize(c.extractedUrl),p,k0.IgnoredByUrlHandlingStrategy)),c.resolve(!1),bo}}),ii(c=>{const l=new kZ(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}),Ie(c=>(this.currentTransition=r={...c,guards:XZ(c.targetSnapshot,c.currentSnapshot,this.rootContexts)},r)),function dQ(t,n){return $n(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:r,canDeactivateChecks:s}}=e;return 0===s.length&&0===r.length?We({...e,guardsResult:!0}):function uQ(t,n,e,i){return ni(t).pipe($n(o=>function vQ(t,n,e,i,o){const r=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return r&&0!==r.length?We(r.map(a=>{const c=ku(n)??o,l=f1(a,c);return ha(function aQ(t){return t&&Pu(t.canDeactivate)}(l)?l.canDeactivate(t,n,e,i):Er(c,()=>l(t,n,e,i))).pipe(Ns())})).pipe(m1()):We(!0)}(o.component,o.route,e,n,i)),Ns(o=>!0!==o,!0))}(s,i,o,t).pipe($n(a=>a&&function iQ(t){return"boolean"==typeof t}(a)?function hQ(t,n,e,i){return ni(n).pipe(a1(o=>yu(function fQ(t,n){return null!==t&&n&&n(new VZ(t)),We(!0)}(o.route.parent,i),function pQ(t,n){return null!==t&&n&&n(new RZ(t)),We(!0)}(o.route,i),function gQ(t,n,e){const i=n[n.length-1],r=n.slice(0,n.length-1).reverse().map(s=>function eQ(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(s)).filter(s=>null!==s).map(s=>mg(()=>We(s.guards.map(c=>{const l=ku(s.node)??e,u=f1(c,l);return ha(function sQ(t){return t&&Pu(t.canActivateChild)}(u)?u.canActivateChild(i,t):Er(l,()=>u(i,t))).pipe(Ns())})).pipe(m1())));return We(r).pipe(m1())}(t,o.path,e),function mQ(t,n,e){const i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||0===i.length)return We(!0);const o=i.map(r=>mg(()=>{const s=ku(n)??e,a=f1(r,s);return ha(function rQ(t){return t&&Pu(t.canActivate)}(a)?a.canActivate(n,t):Er(s,()=>a(n,t))).pipe(Ns())}));return We(o).pipe(m1())}(t,o.route,e))),Ns(o=>!0!==o,!0))}(i,r,t,n):We(a)),Ie(a=>({...e,guardsResult:a})))})}(this.environmentInjector,c=>this.events.next(c)),ii(c=>{if(r.guardsResult=c.guardsResult,c.guardsResult&&"boolean"!=typeof c.guardsResult)throw V0(0,c.guardsResult);const l=new AZ(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);this.events.next(l)}),yt(c=>!!c.guardsResult||(this.cancelNavigationTransition(c,"",Qo.GuardRejected),!1)),Fg(c=>{if(c.guards.canActivateChecks.length)return We(c).pipe(ii(l=>{const u=new OZ(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(u)}),mn(l=>{let u=!1;return We(l).pipe(function RQ(t,n){return $n(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return We(e);const r=new Set(o.map(c=>c.route)),s=new Set;for(const c of r)if(!s.has(c))for(const l of zD(c))s.add(l);let a=0;return ni(s).pipe(a1(c=>r.has(c)?function LQ(t,n,e,i){const o=t.routeConfig,r=t._resolve;return void 0!==o?.title&&!dD(o)&&(r[Cu]=o.title),function HQ(t,n,e,i){const o=bg(t);if(0===o.length)return We({});const r={};return ni(o).pipe($n(s=>function BQ(t,n,e,i){const o=ku(n)??i,r=f1(t,o);return ha(r.resolve?r.resolve(n,e):Er(o,()=>r(n,e)))}(t[s],n,e,i).pipe(Ns(),ii(a=>{if(a instanceof Og)throw V0(new z0,a);r[s]=a}))),_g(1),hc(r),uc(s=>vD(s)?bo:y0(s)))}(r,t,n,i).pipe(Ie(s=>(t._resolvedData=s,t.data=O0(t,t.parent,e).resolve,null)))}(c,i,t,n):(c.data=O0(c,c.parent,t).resolve,We(void 0))),ii(()=>a++),_g(1),$n(c=>a===s.size?We(e):bo))})}(this.paramsInheritanceStrategy,this.environmentInjector),ii({next:()=>u=!0,complete:()=>{u||this.cancelNavigationTransition(l,"",Qo.NoDataFromResolver)}}))}),ii(l=>{const u=new PZ(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(u)}))}),Fg(c=>{const l=u=>{const p=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&p.push(this.configLoader.loadComponent(u.routeConfig).pipe(ii(_=>{u.component=_}),Ie(()=>{})));for(const _ of u.children)p.push(...l(_));return p};return xi(l(c.targetSnapshot.root)).pipe(C0(null),io(1))}),Fg(()=>this.afterPreactivation()),mn(()=>{const{currentSnapshot:c,targetSnapshot:l}=r,u=this.createViewTransition?.(this.environmentInjector,c.root,l.root);return u?ni(u).pipe(Ie(()=>r)):We(r)}),Ie(c=>{const l=function jZ(t,n,e){const i=Eu(t,n._root,e?e._root:void 0);return new sD(i,n)}(e.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=r={...c,targetRouterState:l},this.currentNavigation.targetRouterState=l,r}),ii(()=>{this.events.next(new Tg)}),((t,n,e,i)=>Ie(o=>(new QZ(n,o.targetRouterState,o.currentRouterState,e,i).activate(t),o)))(this.rootContexts,e.routeReuseStrategy,c=>this.events.next(c),this.inputBindingEnabled),io(1),ii({next:c=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Br(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),this.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0)},complete:()=>{s=!0}}),I(this.transitionAbortSubject.pipe(ii(c=>{throw c}))),c1(()=>{!s&&!a&&this.cancelNavigationTransition(r,"",Qo.SupersededByNewNavigation),this.currentTransition?.id===r.id&&(this.currentNavigation=null,this.currentTransition=null)}),uc(c=>{if(a=!0,fD(c))this.events.next(new fc(r.id,this.urlSerializer.serialize(r.extractedUrl),c.message,c.cancellationCode)),function UZ(t){return fD(t)&&Su(t.url)}(c)?this.events.next(new A0(c.url,c.navigationBehaviorOptions)):r.resolve(!1);else{const l=new Sg(r.id,this.urlSerializer.serialize(r.extractedUrl),c,r.targetSnapshot??void 0);try{const u=Er(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(u instanceof Og){const{message:p,cancellationCode:_}=V0(0,u);this.events.next(new fc(r.id,this.urlSerializer.serialize(r.extractedUrl),p,_)),this.events.next(new A0(u.redirectTo,u.navigationBehaviorOptions))}else{this.events.next(l);const p=e.errorHandler(c);r.resolve(!!p)}}catch(u){this.options.resolveNavigationPromiseOnError?r.resolve(!1):r.reject(u)}}return bo}))}))}cancelNavigationTransition(e,i,o){const r=new fc(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(r),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function qQ(t){return t!==Du}let KQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(ZQ),providedIn:"root"})}return t})();class JQ{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}}let ZQ=(()=>{class t extends JQ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ED=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(QQ),providedIn:"root"})}return t})(),QQ=(()=>{class t extends ED{constructor(){super(...arguments),this.location=W(o1),this.urlSerializer=W(u1),this.options=W(v1,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=W(Lg),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new d1,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=aD(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&e(i.url,i.state)})}handleRouterEvent(e,i){if(e instanceof E0)this.stateMemento=this.createStateMemento();else if(e instanceof h1)this.rawUrlTree=i.initialUrl;else if(e instanceof iD){if("eager"===this.urlUpdateStrategy&&!i.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(o,i)}}else e instanceof Tg?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i))):e instanceof fc&&(e.code===Qo.GuardRejected||e.code===Qo.NoDataFromResolver)?this.restoreHistory(i):e instanceof Sg?this.restoreHistory(i,!0):e instanceof Br&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e);if(this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl){const s={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(o,"",s)}else{const r={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(o,"",r)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.currentUrlTree===e.finalUrl&&0===r&&(this.resetState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Iu=function(t){return t[t.COMPLETE=0]="COMPLETE",t[t.FAILED=1]="FAILED",t[t.REDIRECTING=2]="REDIRECTING",t}(Iu||{});function kD(t,n){t.events.pipe(yt(e=>e instanceof Br||e instanceof fc||e instanceof Sg||e instanceof h1),Ie(e=>e instanceof Br||e instanceof h1?Iu.COMPLETE:e instanceof fc&&(e.code===Qo.Redirect||e.code===Qo.SupersededByNewNavigation)?Iu.REDIRECTING:Iu.FAILED),yt(e=>e!==Iu.REDIRECTING),io(1)).subscribe(()=>{n()})}function XQ(t){throw t}const eX={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},tX={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let oi=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.console=W(wS),this.stateManager=W(ED),this.options=W(v1,{optional:!0})||{},this.pendingTasks=W(Ya),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=W(B0),this.urlSerializer=W(u1),this.location=W(o1),this.urlHandlingStrategy=W(Lg),this._events=new N,this.errorHandler=this.options.errorHandler||XQ,this.navigated=!1,this.routeReuseStrategy=W(KQ),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=W(_1,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!W(N0,{optional:!0}),this.eventsSubscription=new Ft,this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=this.navigationTransitions.currentNavigation;if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof fc&&i.code!==Qo.Redirect&&i.code!==Qo.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Br)this.navigated=!0;else if(i instanceof A0){const s=i.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),c={info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||"eager"===this.urlUpdateStrategy||qQ(o.source),...s};this.scheduleNavigation(a,Du,null,c,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function iX(t){return!(t instanceof Tg||t instanceof A0)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Du,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(e,"popstate",i)},0)})}navigateToSyncWithBrowser(e,i,o){const r={replaceUrl:!0},s=o?.navigationId?o:null;if(o){const c={...o};delete c.navigationId,delete c.\u0275routerPageId,0!==Object.keys(c).length&&(r.state=c)}const a=this.parseUrl(e);this.scheduleNavigation(a,i,s,r)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(Pg),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:s,queryParamsHandling:a,preserveFragment:c}=i,l=c?this.currentUrlTree.fragment:s;let p,u=null;switch(a){case"merge":u={...this.currentUrlTree.queryParams,...r};break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=r||null}null!==u&&(u=this.removeEmptyProps(u));try{p=JM(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||"/"!==e[0][0])&&(e=[]),p=this.currentUrlTree.root}return ZM(p,e,u,l??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Su(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,Du,null,i)}navigate(e,i={skipLocationChange:!1}){return function nX(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,s){if(this.disposed)return Promise.resolve(!1);let a,c,l;s?(a=s.resolve,c=s.reject,l=s.promise):l=new Promise((p,_)=>{a=p,c=_});const u=this.pendingTasks.add();return kD(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:a,reject:c,promise:l,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),l.catch(p=>Promise.reject(p))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),b1=(()=>{class t{constructor(e,i,o,r,s,a){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=s,this.locationStrategy=a,this.href=null,this.commands=null,this.onChanges=new N,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const c=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===c||"area"===c,this.isAnchorElement?this.subscription=e.events.subscribe(l=>{l instanceof Br&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,r,s){const a=this.urlTree;return!!(null===a||this.isAnchorElement&&(0!==e||i||o||r||s||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(a,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const e=this.urlTree;this.href=null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;const i=null===this.href?null:function Kb(t,n,e){return function yL(t,n){return"src"===n&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===n&&("base"===t||"link"===t)?qb:Ot}(n,e)(t)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po),function md(t){return function qF(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let o=0;for(;o{class t{constructor(e,i,o,r,s){this.router=e,this.injector=o,this.preloadingStrategy=r,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(yt(e=>e instanceof Br),a1(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=C4(r.providers,e,`Route: ${r.path}`));const s=r._injector??e,a=r._loadedInjector??s;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(s,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(a,r.children??r._loadedRoutes))}return ni(o).pipe(s1())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):We(null);const r=o.pipe($n(s=>null===s?We(void 0):(i._loadedRoutes=s.routes,i._loadedInjector=s.injector,this.processRoutes(s.injector??e,s.routes))));return i.loadComponent&&!i._loadedComponent?ni([r,this.loader.loadComponent(i)]).pipe(s1()):r})}static#e=this.\u0275fac=function(i){return new(i||t)(R(oi),R(PS),R(Li),R(AD),R(Rg))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Hg=new oe("");let OD=(()=>{class t{constructor(e,i,o,r,s={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=r,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},this.environmentInjector=W(Li),s.scrollPositionRestoration||="disabled",s.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof E0?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Br?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof h1&&e.code===k0.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof oD&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){var o=this;this.zone.runOutsideAngular(Di(function*(){yield new Promise(r=>{setTimeout(()=>{r()}),Xa(()=>{r()},{injector:o.environmentInjector})}),o.zone.run(()=>{o.transitions.events.next(new oD(e,"popstate"===o.lastSource?o.store[o.restoredId]:null,i))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){U8()};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();function ps(t,n){return{\u0275kind:t,\u0275providers:n}}function ID(){const t=W(tn);return n=>{const e=t.get(Ko);if(n!==e.components[0])return;const i=t.get(oi),o=t.get(ND);1===t.get(Bg)&&i.initialNavigation(),t.get(VD,null,At.Optional)?.setUpPreloading(),t.get(Hg,null,At.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const ND=new oe("",{factory:()=>new N}),Bg=new oe("",{providedIn:"root",factory:()=>1}),VD=new oe("");function dX(t){return ps(0,[{provide:VD,useExisting:sX},{provide:AD,useExisting:t}])}function hX(t){return ps(9,[{provide:MD,useValue:WQ},{provide:DD,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const FD=new oe("ROUTER_FORROOT_GUARD"),pX=[o1,{provide:u1,useClass:z0},oi,xu,{provide:Po,useFactory:function PD(t){return t.routerState.root},deps:[oi]},Rg,[]];let RD=(()=>{class t{constructor(e){}static forRoot(e,i){return{ngModule:t,providers:[pX,[],{provide:_1,multi:!0,useValue:e},{provide:FD,useFactory:vX,deps:[[oi,new ed,new lh]]},{provide:v1,useValue:i||{}},i?.useHash?{provide:cc,useClass:BG}:{provide:cc,useClass:ET},{provide:Hg,useFactory:()=>{const t=W(nK),n=W(De),e=W(v1),i=W(B0),o=W(u1);return e.scrollOffset&&t.setOffset(e.scrollOffset),new OD(o,i,t,n,e)}},i?.preloadingStrategy?dX(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?_X(i):[],i?.bindToComponentInputs?ps(8,[uD,{provide:N0,useExisting:uD}]).\u0275providers:[],i?.enableViewTransitions?hX().\u0275providers:[],[{provide:LD,useFactory:ID},{provide:$4,multi:!0,useExisting:LD}]]}}static forChild(e){return{ngModule:t,providers:[{provide:_1,multi:!0,useValue:e}]}}static#e=this.\u0275fac=function(i){return new(i||t)(R(FD,8))};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function vX(t){return"guarded"}function _X(t){return["disabled"===t.initialNavigation?ps(3,[{provide:bm,multi:!0,useFactory:()=>{const n=W(oi);return()=>{n.setUpLocationChangeListener()}}},{provide:Bg,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?ps(2,[{provide:Bg,useValue:0},{provide:bm,multi:!0,deps:[tn],useFactory:n=>{const e=n.get(LG,Promise.resolve());return()=>e.then(()=>new Promise(i=>{const o=n.get(oi),r=n.get(ND);kD(o,()=>{i(!0)}),n.get(B0).afterPreactivation=()=>(i(!0),r.closed?We(void 0):r),o.initialNavigation()}))}}]).\u0275providers:[]]}const LD=new oe(""),Vs={gitRepoUrl:"https://github.com/7yuee/nav",provider:"Github",branch:"main",hashMode:!0};var yX=fe(476),CX=fe.n(yX),wX=fe(821),zX=fe.n(wX);const SX=JSON.parse('[{"title":"\u5b9e\u7528\u5de5\u5177","nav":[{"title":"\u5f00\u53d1\u76f8\u5173","nav":[{"title":"\u5f00\u53d1\u795e\u5668","nav":[{"name":"Github-CLI","createdAt":"2021-02-18 21:06:06","rate":5,"desc":"GitHub\u7684\u5b98\u65b9\u547d\u4ee4\u884c\u5de5\u5177","top":false,"icon":"https://github.githubassets.com/favicons/favicon.svg","url":"https://cli.github.com/","urls":{"-3":"https://github.com/cli/cli"},"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":1},{"name":"Coveralls","icon":"https://coveralls.io/favicon.png","url":"https://coveralls.io/","desc":"\u901a\u8fc7\u663e\u793a\u6d4b\u8bd5\u5957\u4ef6\u672a\u6db5\u76d6\u4ee3\u7801\u7684\u54ea\u4e9b\u90e8\u5206\uff0c\u6211\u4eec\u53ef\u4ee5\u5e2e\u52a9\u60a8\u81ea\u4fe1\u5730\u4ea4\u4ed8\u4ee3\u7801\u3002\u514d\u8d39\u63d0\u4f9b\u5f00\u6e90\u8f6f\u4ef6\u5e93","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":2},{"name":"Releasly","desc":"\u5728\u65b0\u7684\u5f00\u6e90\u7248\u672c\u53d1\u5e03\u65f6\u6536\u5230\u901a\u77e5\uff0c\u76f4\u63a5\u53d1\u9001\u5230\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u4e2d\u3002","url":"https://www.releasly.co/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":3},{"name":"Convert cURL","desc":"\u5c06curl\u547d\u4ee4\u8f6c\u6362\u4e3aPython\uff0cJavaScript\uff0cPHP\uff0cR\uff0cGo\uff0cRust\uff0cDart\uff0cJSON\uff0cAnsible\uff0cElixir\u3002","url":"https://curl.trillworks.com/","urls":{"-3":"https://github.com/NickCarneiro/curlconverter"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":4},{"name":"Supervisor","desc":"Supervisor\u662f\u4e00\u4e2a\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u7cfb\u7edf\uff0c\u5141\u8bb8\u5176\u7528\u6237\u76d1\u89c6\u548c\u63a7\u5236\u7c7b\u4f3cUNIX\u7684\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u591a\u4e2a\u8fdb\u7a0b\u3002","url":"http://supervisord.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":5},{"icon":"https://www.sonarqube.org/favicon-152.png","name":"SonarQube","desc":"\u4ee3\u7801\u8d28\u91cf\u548c\u5b89\u5168\u6027\u68c0\u67e5, \u652f\u6301\u6240\u6709\u5f00\u53d1\u4eba\u5458\u7f16\u5199\u66f4\u5e72\u51c0\uff0c\u66f4\u5b89\u5168\u7684\u4ee3\u7801\u3002","url":"https://www.sonarqube.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":6},{"icon":"https://paste.ubuntu.com/favicon.ico","name":"Pastebin","desc":"\u5728\u7ebf\u5171\u4eab\u4ee3\u7801\uff0c\u5c06\u4ee3\u7801\u4ee5URL\u5f62\u5f0f\u53d1\u9001\u4ee5\u4fbf\u67e5\u770b","url":"https://paste.ubuntu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":7},{"icon":"https://avatars2.githubusercontent.com/u/30217756?s=200&v=4","name":"UPX","desc":"UPX-\u53ef\u6267\u884c\u6587\u4ef6\u7684\u7ec8\u6781\u6253\u5305\u5668","url":"https://github.com/upx/upx","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":8},{"icon":"https://avatars2.githubusercontent.com/u/30217756?s=200&v=4","name":"askgit","desc":"\u4f7f\u7528SQL\u67e5\u8be2git\u5b58\u50a8\u5e93\u3002\u751f\u6210\u62a5\u544a\uff0c\u6267\u884c\u72b6\u6001\u68c0\u67e5\uff0c\u5206\u6790\u4ee3\u7801\u5e93\u3002","url":"https://github.com/augmentable-dev/askgit","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":9},{"icon":"https://avatars3.githubusercontent.com/u/1396951?s=200&v=4","name":"Sentry","desc":"Web\u5e94\u7528\u7a0b\u5e8f\uff0c\u79fb\u52a8\u5e94\u7528\u7a0b\u5e8f\u548c\u6e38\u620f\u7684\u5b9e\u65f6\u5d29\u6e83\u62a5\u544a\u3002","url":"https://sentry.io/","urls":{"-3":"https://github.com/getsentry"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":10},{"icon":"https://randomuser.me/favicon.ico","name":"randomuser","desc":"\u968f\u673a\u7528\u6237\u751f\u6210\u5668\u662f\u7528\u4e8e\u751f\u6210\u5360\u4f4d\u7b26\u7528\u6237\u4fe1\u606f\u7684\u514d\u8d39API\u3002 \u83b7\u53d6\u4e2a\u4eba\u8d44\u6599\u7167\u7247\uff0c\u59d3\u540d\u7b49\u3002 \u5bf9\u4e8e\u4eba\u4eec\u6765\u8bf4\uff0c\u5c31\u50cfLorem Ipsum\u3002","url":"https://randomuser.me/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":11},{"icon":"https://camo.githubusercontent.com/ebfdd465daa90626d0ab0d0fddc0e457c942a392/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f616e7572616768617a72612f696d6167652f75706c6f61642f76313539343930383234322f6c6f676f5f636373776d652e737667","name":"github-readme-stats","desc":"\u5728\u4f60\u7684 README \u4e2d \u83b7\u53d6\u52a8\u6001\u751f\u6210\u7684 GitHub \u7edf\u8ba1\u4fe1\u606f","url":"https://github.com/anuraghazra/github-readme-stats/blob/master/readme_cn.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":12},{"icon":"https://i.imgur.com/zBEQq4w.png","name":"Hits","desc":"\u4e86\u89e3\u6709\u591a\u5c11\u4eba\u6b63\u5728\u67e5\u770b\u60a8\u7684GitHub\u9879\u76ee\u7684\u7b80\u5355\u65b9\u6cd5","url":"http://hits.dwyl.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":13},{"name":"GitHub \u6587\u4ef6\u52a0\u901f","desc":"GitHub \u6587\u4ef6\u52a0\u901f","url":"https://shrill-pond-3e81.hunsh.workers.dev/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":14},{"name":"Shields IO","desc":"svg\u751f\u6210\u7248\u672c\u53f7\u56fe\u6807","url":"https://shields.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":15},{"icon":"https://www.fundebug.com/favicon.ico","name":"FunDebug","desc":"\u652f\u6301\u524d\u7aefJavaScript\uff0c\u540e\u7aefNode.js\u4ee5\u53ca\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u9519\u8bef\u76d1\u63a7","url":"https://www.fundebug.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":16},{"icon":"http://www.asciiworld.com/favicon.ico","name":"Asciiworld","desc":"WA\uff01\u539f\u6765\u90a3\u4e9b\u5e74\u7a0b\u5e8f\u733f\u641e\u602a\u7684\u6ce8\u91ca\u90fd\u5728\u8fd9\u91cc","url":"http://www.asciiworld.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":17},{"icon":"https://jsfiddle.net/img/favicon.png","name":"jsfiddle","desc":"\u5f3a\u5927\u7684\u524d\u7aef\u4ee3\u7801\u5728\u7ebf\u6f14\u793a\u7684\u7f51\u7ad9","url":"http://jsfiddle.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":18},{"icon":"https://user-images.githubusercontent.com/799578/50462941-8075fe80-09c3-11e9-89e7-af0cb7991406.png","name":"CODEIF","desc":"\u53d8\u91cf\u547d\u540d\u795e\u5668","url":"https://unbug.github.io/codelf/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":19},{"icon":"http://asciiflow.com/images/favicon.png","name":"ASCIIFlow Infinity","desc":"\u65e0\u9650\u7684ASCII\u56fe\u8868\uff0c\u4fdd\u5b58\u5230\u8c37\u6b4c\u9a71\u52a8\u5668\uff0c\u8c03\u6574\u5927\u5c0f\uff0c\u81ea\u7531\u7ed8\u5236\uff0c\u5e76\u76f4\u63a5\u8f93\u51fa\u5230\u6587\u672c/HTML\u3002","url":"http://asciiflow.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":20},{"icon":"https://kinolien.github.io/gitzip/images/gitzip.png","name":"gitzip","desc":"\u5b83\u53ef\u4ee5\u5c06GITHUB\u5b58\u50a8\u5e93\u7684\u5b50\u6587\u4ef6\u5939/\u5b50\u76ee\u5f55\u4f5c\u4e3azip\u5e76\u4e0b\u8f7d","url":"https://kinolien.github.io/gitzip/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":21},{"icon":"http://sc.ftqq.com/static/image/favlogo.png","name":"Server\u9171","desc":"\u300cServer\u9171\u300d\uff0c\u82f1\u6587\u540d\u300cServerChan\u300d\uff0c\u662f\u4e00\u6b3e\u300c\u7a0b\u5e8f\u5458\u300d\u548c\u300c\u670d\u52a1\u5668\u300d\u4e4b\u95f4\u7684\u901a\u4fe1\u8f6f\u4ef6\u3002","url":"http://sc.ftqq.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":22},{"name":"mkcert","desc":"\u4e00\u4e2a\u7b80\u5355\u7684\u96f6\u914d\u7f6e\u5de5\u5177\uff0c\u53ef\u4ee5\u4f7f\u7528\u60a8\u559c\u6b22\u7684\u4efb\u4f55\u540d\u79f0\u5236\u4f5c\u672c\u5730\u53ef\u4fe1\u8d56\u7684SSL\u5f00\u53d1\u8bc1\u4e66","url":"https://github.com/FiloSottile/mkcert","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":23},{"icon":"https://carbon.now.sh/favicon.ico","name":"carbon","desc":"\u521b\u5efa\u548c\u5206\u4eab\u6e90\u4ee3\u7801\u7684\u7cbe\u7f8e\u56fe\u50cf","url":"https://carbon.now.sh","urls":{"-3":"https://github.com/dawnlabs/carbon"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":24},{"name":"setup-ipsec-vpn","desc":"\u7528\u4e8e\u6784\u5efa\u60a8\u81ea\u5df1\u7684IPsec VPN\u670d\u52a1\u5668\u7684\u811a\u672c\uff0c\u5728Ubuntu\uff0cDebian\u548cCentOS\u4e0a\u4f7f\u7528IPsec / L2TP\u548cCisco IPsec","url":"https://github.com/hwdsl2/setup-ipsec-vpn","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":25},{"icon":"https://www.digitalocean.com/favicon.ico","name":"nginxconfig","desc":"nginx\u914d\u7f6e\u751f\u6210\u5668","url":"https://www.digitalocean.com/community/tools/nginx#?","urls":{"-3":"https://github.com/digitalocean/nginxconfig.io"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":26},{"name":"GraphQL Explorer","desc":"GraphQL\u8d44\u6e90\u7ba1\u7406\u5668\u5229\u7528\u771f\u5b9e\u7684\u3001\u5b9e\u65f6\u7684\u751f\u4ea7\u6570\u636e","url":"https://developer.github.com/v4/explorer/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":27},{"name":"patorjk","desc":"\u5c06\u6587\u672c\u8f6c\u6362\u6210ASCII","url":"http://patorjk.com/software/taag/#p=display&f=Graffiti&t=xiejiahe","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":28},{"icon":"https://avatars0.githubusercontent.com/u/62133242?s=200&v=4","name":"lens","desc":"Lens\u63a7\u5236Kubernetes\u96c6\u7fa4\u6240\u9700\u7684\u552f\u4e00IDE\u3002\u5b83\u662f\u9002\u7528\u4e8eMacOS\uff0cWindows\u548cLinux\u64cd\u4f5c\u7cfb\u7edf\u7684\u72ec\u7acb\u5e94\u7528\u7a0b\u5e8f\u3002\u5b83\u662f\u5f00\u6e90\u7684\uff0c\u514d\u8d39\u7684\u3002","url":"https://k8slens.dev/","urls":{"-3":"https://github.com/lensapp/lens"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":29},{"name":"public-apis","desc":"\u4e00\u4e9b\u53ef\u7528\u5728 Web \u6216\u8f6f\u4ef6\u5f00\u53d1\u7684\u5f00\u653e API \u63a5\u53e3","url":"https://github.com/public-apis/public-apis","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":30},{"icon":"https://astexplorer.net/favicon.png","name":"astexplorer","desc":"\u4e00\u4e2aWeb\u5de5\u5177\uff0c\u7528\u4e8e\u63a2\u7d22\u7531\u5404\u79cd\u89e3\u6790\u5668\u751f\u6210\u7684AST","url":"https://astexplorer.net/","urls":{"-3":"https://github.com/fkling/astexplorer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":31},{"icon":"http://www.u.tools/assets/img/brand/favicon.png","name":"uTools","desc":"uTools\u662f\u4e00\u4e2a\u6781\u7b80\u3001\u63d2\u4ef6\u5316\u3001\u8de8\u5e73\u53f0\u7684\u73b0\u4ee3\u684c\u9762\u8f6f\u4ef6\u3002\u901a\u8fc7\u81ea\u7531\u9009\u914d\u4e30\u5bcc\u7684\u63d2\u4ef6\uff0c\u6253\u9020\u4f60\u5f97\u5fc3\u5e94\u624b\u7684\u5de5\u5177\u96c6\u5408","url":"http://www.u.tools/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":32},{"icon":"https://ihateregex.io/favicon.ico","name":"ihateregex","desc":"\u6b63\u5219\u8868\u8fbe\u5f0f\u5907\u5fd8\u5f55","url":"https://ihateregex.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":33},{"icon":"https://avatars3.githubusercontent.com/u/22552083?s=200&v=4","name":"Oh My ZSH","desc":"\u662f\u4e00\u4e2a\u5f00\u653e\u6e90\u4ee3\u7801\uff0c\u793e\u533a\u9a71\u52a8\u7684\u6846\u67b6\uff0c\u7528\u4e8e\u7ba1\u7406zsh\u914d\u7f6e\u3002","url":"https://ohmyz.sh/","urls":{"-3":"https://github.com/ohmyzsh"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":34},{"icon":"https://tampermonkey.freetls.fastly.net/images/icon144.png","name":"Tampermonkey","desc":"\u4e00\u6b3e\u514d\u8d39\u7684\u6d4f\u89c8\u5668\u6269\u5c55\u548c\u6700\u4e3a\u6d41\u884c\u7684\u7528\u6237\u811a\u672c\u7ba1\u7406\u5668","url":"https://www.tampermonkey.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":35},{"name":"Greasy Fork","desc":"\u63d0\u4f9b\u7528\u6237\u811a\u672c\u7684\u7f51\u7ad9","url":"https://greasyfork.org/zh-CN","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":36},{"icon":"https://img.kuaidaili.com/img/favicon.ico?v=3","name":"\u514d\u8d39\u4ee3\u7406","desc":"\u514d\u8d39HTTP\u4ee3\u7406IP","url":"https://www.kuaidaili.com/free/inha/1/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":37},{"icon":"https://avatars2.githubusercontent.com/u/1342004?s=200&v=4","name":"Google Workspace","desc":"Google Workspace\u72b6\u6001\u4fe1\u606f\u4e2d\u5fc3","url":"https://www.google.com/appsstatus#hl=en&v=status","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":38}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406","nav":[{"icon":"https://www.eolinker.com/assets/images/favicon.ico","name":"eoLinker\u63a5\u53e3\u7ba1\u7406\u5e73\u53f0","desc":"\u56fd\u5185\u6700\u5927\u7684\u5728\u7ebf\u63a5\u53e3\u7ba1\u7406\u670d\u52a1\u65b9\u6848\u4f9b\u5e94\u5546","url":"https://www.eolinker.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":39},{"icon":"https://avatars2.githubusercontent.com/u/19645609?s=200&v=4","name":"YApi","desc":"YApi \u662f\u4e00\u4e2a\u53ef\u672c\u5730\u90e8\u7f72\u7684\u3001\u6253\u901a\u524d\u540e\u7aef\u53caQA\u7684\u3001\u53ef\u89c6\u5316\u7684\u63a5\u53e3\u7ba1\u7406\u5e73\u53f0","url":"https://yapi.baidu.com/","urls":{"-3":"https://github.com/YMFE/yapi"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":40},{"icon":"http://rap2.taobao.org/favicon.png","name":"RAP2","desc":"Web\u63a5\u53e3\u7ba1\u7406\u5de5\u5177\uff0c\u5f00\u6e90\u514d\u8d39\uff0c\u63a5\u53e3\u81ea\u52a8\u5316\uff0cMOCK\u6570\u636e\u81ea\u52a8\u751f\u6210\uff0c\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4f01\u4e1a\u7ea7\u7ba1\u7406\u3002\u963f\u91cc\u5988\u5988MUX\u56e2\u961f\u51fa\u54c1","url":"http://rap2.taobao.org/","urls":{"-3":"https://github.com/thx/rap2-delos"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":41},{"icon":"https://www.showdoc.cc/static/logo/b_64.png","name":"showdoc","desc":"\u4e00\u4e2a\u975e\u5e38\u9002\u5408IT\u56e2\u961f\u7684\u5728\u7ebfAPI\u6587\u6863\u3001\u6280\u672f\u6587\u6863\u5de5\u5177","url":"https://www.showdoc.cc/","urls":{"-3":"https://github.com/star7th/showdoc"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":42},{"icon":"https://avatars3.githubusercontent.com/u/40133106?s=200&v=4","name":"docsify","desc":"\u4e00\u4e2a\u795e\u5947\u7684\u6587\u6863\u7ad9\u70b9\u751f\u6210\u5668","url":"https://docsify.js.org","urls":{"-3":"https://github.com/docsifyjs/docsify"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":43},{"icon":"https://avatars2.githubusercontent.com/u/4103663?s=200&v=4","name":"apiDoc","desc":"RESTful Web API\u6587\u6863\u751f\u6210\u5668","url":"http://apidocjs.com","urls":{"-3":"https://github.com/apidoc/apidoc"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":44},{"icon":"https://avatars2.githubusercontent.com/u/69631?s=200&v=4","name":"docusaurus","desc":"\u6613\u4e8e\u7ef4\u62a4\u7684\u5f00\u6e90\u6587\u6863\u7f51\u7ad9","url":"https://docusaurus.io/","urls":{"-3":"https://github.com/facebook/docusaurus"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":45},{"icon":"https://www.zentao.net/favicon.ico","name":"\u7985\u9053","desc":"\u7985\u9053\u662f\u7075\u6d3b\u7684\u9879\u76ee\u7ba1\u7406\u8f6f\u4ef6","url":"https://www.zentao.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":46},{"icon":"https://www.tapd.cn/favicon.ico","name":"Tapd","desc":"\u4e00\u7ad9\u5f0f\u654f\u6377\u7814\u53d1\u534f\u4f5c\u4e91\u5e73\u53f0, \u51dd\u805a\u817e\u8baf\u7814\u53d1\u65b9\u6cd5\u53ca\u654f\u6377\u5b9e\u8df5\u7cbe\u9ad3, \u52a9\u529b\u4f01\u4e1a\u7814\u53d1\u66f4\u9ad8\u6548\u3001\u534f\u4f5c\u66f4\u654f\u6377","url":"https://www.tapd.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":47},{"icon":"https://avatars2.githubusercontent.com/u/56705483?s=200&v=4","name":"Hoppscotch","desc":"\u4e00\u4e2a\u514d\u8d39\uff0c\u5feb\u901f\uff0c\u7f8e\u89c2\u7684API\u8bf7\u6c42\u6784\u5efa\u5668\uff0c\u4f9b10\u4e07\u591a\u4e2a\u5f00\u53d1\u4eba\u5458\u4f7f\u7528\u3002(\u539f\u540d\u53eb Postwoman)","url":"https://hoppscotch.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":48}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406","nav":[{"name":"Sunny-Ngrok","desc":"\u4e00\u6761\u547d\u4ee4\u89e3\u51b3\u7684\u5916\u7f51\u8bbf\u95ee\u5185\u7f51\u95ee\u9898\uff0c\u65e0\u9700\u4efb\u4f55\u914d\u7f6e\uff0c\u4e0b\u8f7d\u5ba2\u6237\u7aef\u4e4b\u540e\u76f4\u63a5\u4e00\u6761\u547d\u4ee4\u8ba9\u5916\u7f51\u8bbf\u95ee\u60a8\u7684\u5185\u7f51\u4e0d\u518d\u662f\u8ddd\u79bb","url":"https://www.ngrok.cc/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406"],"ownVisible":false,"id":49},{"name":"frp","desc":"\u4e00\u4e2a\u5feb\u901f\u53cd\u5411\u4ee3\u7406\uff0c\u53ef\u5e2e\u52a9\u60a8\u5c06NAT\u6216\u9632\u706b\u5899\u540e\u9762\u7684\u672c\u5730\u670d\u52a1\u5668\u66b4\u9732\u7ed9Internet\u3002","url":"https://github.com/fatedier/frp","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406"],"ownVisible":false,"id":50},{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"zan-proxy","desc":"\u672c\u5730\u4ee3\u7801\u8c03\u8bd5\u7ebf\u4e0a\u9875\u9762\uff0c\u73af\u5883\u518d\u4e5f\u4e0d\u662f\u95ee\u9898","url":"https://youzan.github.io/zan-proxy/","urls":{"-3":"https://github.com/youzan/zan-proxy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406"],"ownVisible":false,"id":51},{"icon":"https://ngrok.com/static/img/favicon.png","name":"ngrok","desc":"ngrok\u662f\u4e00\u4e2a\u53cd\u5411\u4ee3\u7406\uff0c\u901a\u8fc7\u5728\u516c\u5171\u7684\u7aef\u70b9\u548c\u672c\u5730\u8fd0\u884c\u7684 Web \u670d\u52a1\u5668\u4e4b\u95f4\u5efa\u7acb\u4e00\u4e2a\u5b89\u5168\u7684\u901a\u9053\u3002ngrok\u53ef\u6355\u83b7\u548c\u5206\u6790\u6240\u6709\u901a\u9053\u4e0a\u7684\u6d41\u91cf\uff0c\u4fbf\u4e8e\u540e\u671f\u5206\u6790\u548c\u91cd\u653e","url":"https://ngrok.com/","urls":{"-3":"https://github.com/inconshreveable/ngrok"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406"],"ownVisible":false,"id":52}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u7f16\u7801/\u89e3\u7801","nav":[{"icon":"http://www.chamd5.org/favicon.ico","name":"\u67e5MD5","desc":"MD5\u5728\u7ebf\u89e3\u5bc6|md5\u5728\u7ebf\u7834\u89e3|\u6279\u91cf\u7834\u89e3md5\u7f51\u7ad9","url":"http://www.cmd5.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u7f16\u7801/\u89e3\u7801"],"ownVisible":false,"id":53},{"icon":"https://jwt.io/img/favicon/apple-icon-76x76.png","name":"JSON Web Tokens","desc":"jwt \u5728\u7ebf\u89e3\u7801","url":"https://jwt.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u7f16\u7801/\u89e3\u7801"],"ownVisible":false,"id":54},{"icon":"http://www.xpcha.com/favicon.ico","name":"base64","desc":"base64\u5728\u7ebf\u89e3\u7801\u7f16\u7801","url":"http://base64.xpcha.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u7f16\u7801/\u89e3\u7801"],"ownVisible":false,"id":55}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u514d\u8d39\u516c\u5f00API","nav":[{"icon":"https://www.ipify.org/static/images/favicon-96x96.png","name":"ipify","desc":"\u4e00\u4e2a\u7b80\u5355\u7684\u516c\u5171IP\u5730\u5740API","url":"https://www.ipify.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u514d\u8d39\u516c\u5f00API"],"ownVisible":false,"id":56},{"name":"\u5f52\u5c5e\u5730\u67e5\u8be2","desc":"\u6dd8\u5b9d\u514d\u8d39\u5f52\u5c5e\u5730\u67e5\u8be2","url":"https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13333333333","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u514d\u8d39\u516c\u5f00API"],"ownVisible":false,"id":57}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u8bbe\u8ba1\u76f8\u5173","nav":[{"title":"\u8bbe\u8ba1\u76f8\u5173","nav":[{"icon":"https://www.draw.io/images/apple-touch-icon.png","name":"draw","desc":"\u514d\u8d39\u7684\u5728\u7ebf\u56fe\u8868\u8f6f\u4ef6\uff0c\u7528\u4e8e\u5236\u4f5c\u6d41\u7a0b\u56fe\u3001\u6d41\u7a0b\u56fe\u3001\u7ec4\u7ec7\u56fe\u3001UML\u3001ER\u548c\u7f51\u7edc\u56fe","url":"https://www.draw.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":58},{"icon":"https://www.processon.com/favicon.ico","name":"ProcessOn","desc":"\u514d\u8d39\u5728\u7ebf\u4f5c\u56fe\u5de5\u5177,UML\u4f5c\u56fe,UI\u754c\u9762\u539f\u578b\u8bbe\u8ba1,iOS\u539f\u578b\u8bbe\u8ba1,BPMN,\u6d41\u7a0b\u56fe,\u601d\u7ef4\u5bfc\u56fe,\u591a\u4eba\u534f\u4f5c\u7ed8\u56fe","url":"https://www.processon.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":59},{"icon":"https://lhcdn.lanhuapp.com/web/static/favicon.ico","name":"\u84dd\u6e56","desc":"\u84dd\u6e56\u662f\u4e00\u6b3e\u8bbe\u8ba1\u56fe\u5171\u4eab\u5e73\u53f0,\u5e2e\u52a9\u4e92\u8054\u7f51\u56e2\u961f\u7ba1\u7406\u8bbe\u8ba1\u56fe","url":"https://lanhuapp.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":60},{"icon":"https://zeplin.io/img/favicon/228x228.png","name":"Zeplin","desc":"\u4e3a\u8bbe\u8ba1\u5e08\u548c\u524d\u7aef\u800c\u751f\u7684\u534f\u4f5c\u5e94\u7528","url":"https://zeplin.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":61},{"icon":"https://mubu.com/favicon.ico","name":"\u5e55\u5e03","desc":"\u6781\u7b80\u5927\u7eb2\u7b14\u8bb0 | \u4e00\u952e\u751f\u6210\u601d\u7ef4\u5bfc\u56fe","url":"https://mubu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":62},{"icon":"https://p.ssl.qhimg.com/t01a54d9106629dda0e.png","name":"\u58f0\u4eab","desc":"\u5728\u7ebf\u5236\u4f5c PPT\uff0c\u8ba9\u5206\u4eab\u66f4\u6709\u4ef7\u503c","url":"https://ppt.baomitu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":63},{"icon":"https://modao.cc/images/logo.png","name":"\u58a8\u5200","desc":"\u539f\u578b\u8bbe\u8ba1\u5de5\u5177\uff0cweb\u539f\u578b\u8bbe\u8ba1\u5de5\u5177\uff0capp\u539f\u578b\u8bbe\u8ba1\u5de5\u5177","url":"https://modao.cc/features","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":64},{"icon":"https://xzlogo.com/static/images/favicon-16x16.png?v2","name":"\u5c0f\u667aLOGO","desc":"LOGO\u5728\u7ebf\u5236\u4f5c\u795e\u5668 - 3\u5206\u949f\u5b8c\u6210LOGO\u8bbe\u8ba1\u5728\u7ebf\u751f\u6210","url":"https://xzlogo.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":65},{"icon":"https://www.chuangkit.com/favicon.ico","name":"\u521b\u5ba2\u8d34","desc":"\u4e00\u6b3e\u7b80\u5355\u6613\u7528\u3001\u529f\u80fd\u5f3a\u5927\u7684\u7ebf\u4e0a\u56fe\u5f62\u8bbe\u8ba1\u5de5\u5177","url":"https://www.chuangkit.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":66},{"icon":"https://cdn.jifo.co/favicon/favicon.ico","name":"\u5728\u7ebf\u5236\u4f5c\u56fe\u8868","desc":"\u4fe1\u606f\u56fe\u8868\u662f\u4e00\u79cd\u6613\u4e8e\u4f7f\u7528\u7684\u4fe1\u606f\u56fe\u8868\u548c\u56fe\u8868\u5236\u9020\u5546\u3002\u521b\u5efa\u548c\u5206\u4eab\u7f8e\u4e3d\u7684\u4fe1\u606f\u56fe\u8868\uff0c\u5728\u7ebf\u62a5\u544a\u548c\u4e92\u52a8\u5730\u56fe\u3002\u5728\u8fd9\u91cc\u505a\u4f60\u81ea\u5df1","url":"https://infogram.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":67},{"name":"CLIPPING MAGIC","desc":"\u5220\u9664\u56fe\u50cf\u80cc\u666f\u5728\u7ebf\u3002\u4f7f\u80cc\u666f\u900f\u660e\uff0c\u767d\u8272\u7b49\u7f16\u8f91\uff0c\u88c1\u526a\uff0c\u65cb\u8f6c\uff0c\u56fa\u5b9a\u989c\u8272\uff0c\u6dfb\u52a0\u9634\u5f71\uff0c\u4e00\u6b3e\u5728\u7ebf\u62a0\u56fe\u5de5\u5177","url":"https://clippingmagic.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":68},{"icon":"https://koutu.gaoding.com/favicon.ico","name":"\u7a3f\u5b9a\u62a0\u56fe","desc":"\u7a3f\u5b9a\u8bbe\u8ba1\u662f\u4e00\u6b3e\u4e13\u4e3a\u6dd8\u5b9d\u5e97\u4e3b\u3001\u65b0\u5a92\u4f53\u8fd0\u8425\u4eba\u5458\u548c\u4fee\u56fe\u7231\u597d\u8005\u6253\u9020\u7684\u514d\u8d39\u5728\u7ebf\u62a0\u56fe\u5de5\u5177\u3002","url":"https://www.gaoding.com/koutu","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":69},{"icon":"https://uzer.me/favicon.ico","name":"UZER.ME","desc":"\u8d85\u7ea7\u5e94\u7528\u7a7a\u95f4\u81f4\u529b\u4e8e\u5168\u751f\u547d\u5468\u671f\u7684\u6587\u6863\u7ba1\u7406,\u65e0\u9700\u5b89\u88c5,\u5373\u53ef\u5728\u7ebf\u7f16\u8f91Office, CAD,PS\u7b49\u4efb\u610f\u683c\u5f0f\u6587\u6863,\u652f\u6301\u8fdc\u7a0b\u534f\u4f5c,\u5168\u6587\u68c0\u7d22,\u7248\u672c\u7ba1\u7406,\u6743\u9650\u7ba1\u7406,\u5b89\u5168\u5916\u53d1\u7b49.\u63d0\u9ad8\u5de5\u4f5c\u6548\u7387,\u964d\u4f4e\u5b89\u5168\u98ce\u9669","url":"https://uzer.me/index.html","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":70},{"icon":"https://www.launchaco.com/static/favicon.ico","name":"launchaco","desc":"\u514d\u8d39\u5728\u7ebf\u5236\u4f5cLOGO","url":"https://www.launchaco.com/logo","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":71},{"icon":"https://g.alicdn.com/acca/resource/luban/image/favicon.png","name":"\u9e7f\u73ed","desc":"\u9e7f\u73ed - \u8ba9\u8bbe\u8ba1\u66f4\u7f8e\u597d(\u963f\u91cc\u51fa\u54c1)","url":"https://luban.aliyun.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":72},{"icon":"https://www.yasuotu.com/favicon.ico","name":"\u56fe\u7247\u88c1\u526a","desc":"\u5728\u7ebf\u88c1\u526a\u7167\u7247\u5927\u5c0f\u5c3a\u5bf8","url":"https://www.yasuotu.com/meditor","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":73}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"GUI\u8f6f\u4ef6","nav":[{"title":"GUI","nav":[{"icon":"https://bitwarden.com/images/icons/favicon-32x32.png","name":"Bitwarden","desc":"\u4e2a\u4eba\u548c\u4f01\u4e1a\u5728\u4efb\u4f55\u8bbe\u5907\u4e0a\u5b58\u50a8\uff0c\u5171\u4eab\u548c\u4fdd\u62a4\u654f\u611f\u6570\u636e\u7684\u6700\u7b80\u5355\uff0c\u6700\u5b89\u5168\u7684\u65b9\u6cd5","url":"https://bitwarden.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":74},{"icon":"https://typora.io/img/favicon-48.png","name":"Typeora","desc":"Typora\u662f\u4e00\u6b3e\u8de8\u5e73\u53f0\u7684\u6700\u5c0fMarkdown\u7f16\u8f91\u5668\uff0c\u53ef\u4e3aMarkdown\u8bfb\u8005\u548c\u4f5c\u5bb6\u63d0\u4f9b\u65e0\u7f1d\u7684\u4f53\u9a8c","url":"https://typora.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":75},{"icon":"https://www.iterm2.com/favicon.ico","name":"iterm2","desc":"iTerm2\u662fTerminal\u7684\u66ff\u4ee3\u54c1\uff0c\u662fiTerm\u7684\u540e\u7eed\u4ea7\u54c1","url":"https://www.iterm2.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":76},{"icon":"https://www.sourcetreeapp.com/assets/img/favicons/sourcetree/favicon-32x32.png","name":"Sourcetree","desc":"\u7f8e\u4e3d\u7684Git GUI\u4e2d\u7684\u7b80\u5355\u6027\u548c\u5f3a\u5927\u529f\u80fd","url":"https://www.sourcetreeapp.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":77},{"icon":"https://www.charlesproxy.com/static/img/icon.8b97278f.png","name":"charles","desc":"Charles\u662fHTTP\u4ee3\u7406/ HTTP\u76d1\u89c6\u5668/\u53cd\u5411\u4ee3\u7406\uff0c\u4f7f\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u67e5\u770b\u5176\u8ba1\u7b97\u673a\u4e0eInternet\u4e4b\u95f4\u7684\u6240\u6709HTTP\u548cSSL / HTTPS\u901a\u4fe1\u3002\u8fd9\u5305\u62ec\u8bf7\u6c42\uff0c\u54cd\u5e94\u548cHTTP\u6807\u5934\uff08\u5176\u4e2d\u5305\u542bcookie\u548c\u7f13\u5b58\u4fe1\u606f\uff09\u3002","url":"https://www.charlesproxy.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":78},{"icon":"https://tunnelblick.net/favicon.ico","name":"Tunnelblick","desc":"\u9002\u7528\u4e8emacOS\u7684\u514d\u8d39\u5f00\u6e90OpenVPN VPN\u5ba2\u6237\u7aef\u670d\u52a1\u5668\u8f6f\u4ef6\u3002","url":"https://tunnelblick.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":79},{"icon":"https://www.keka.io/img/Keka-120x120.png","name":"Keka","desc":"macOS\u6587\u4ef6\u5b58\u6863\u5668, \u50a8\u5b58\u66f4\u591a\uff0c\u79c1\u5bc6\u5206\u4eab","url":"https://www.keka.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":80},{"icon":"https://getkap.co/static/favicon/kap.ico","name":"Kap","desc":"\u4f7f\u7528Web\u6280\u672f\u6784\u5efa\u7684\u5f00\u6e90\u5c4f\u5e55\u5f55\u50cf\u673a\u3002","url":"https://getkap.co/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":81},{"icon":"https://code.visualstudio.com/apple-touch-icon.png","name":"Vscode","desc":"VScode\u662f\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u7684\u7f16\u8f91\u5668\uff0c\u81ea\u7531\u3002 \u5efa\u7acb\u5728\u5f00\u6e90\u4e0a\u3002 \u65e0\u5904\u4e0d\u5728\u3002","url":"https://code.visualstudio.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":82},{"icon":"https://nmap.org/shared/images/tiny-eyeicon.png","name":"zenmap","desc":"\u5f00\u6e90\u514d\u8d39\u7684\u7f51\u7edc\u53d1\u73b0\u5de5\u5177\uff0c\u901a\u8fc7\u5b83\u80fd\u591f\u627e\u51fa\u7f51\u7edc\u4e0a\u5728\u7ebf\u7684\u4e3b\u673a\uff0c\u5e76\u6d4b\u8bd5\u4e3b\u673a\u4e0a\u54ea\u4e9b\u7aef\u53e3\u5904\u4e8e\u76d1\u542c\u72b6\u6001\uff0c\u63a5\u7740\u901a\u8fc7\u7aef\u53e3\u786e\u5b9a\u4e3b\u673a\u4e0a\u8fd0\u884c\u7684\u5e94\u7528\u7a0b\u5e8f\u7c7b\u578b\u4e0e\u7248\u672c\u4fe1\u606f\uff0c\u6700\u540e\u5229\u7528\u5b83\u8fd8\u80fd\u4fa6\u6d4b\u51fa\u64cd\u4f5c\u7cfb\u7edf\u7684\u7c7b\u578b\u548c\u7248\u672c","url":"https://nmap.org/zenmap/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":83},{"icon":"https://obsproject.com/favicon-32x32.png","name":"obsproject","desc":"\u514d\u8d39\u548c\u5f00\u6e90\u8f6f\u4ef6\uff0c\u7528\u4e8e\u89c6\u9891\u5f55\u5236\u548c\u5b9e\u65f6\u6d41\u3002","url":"https://obsproject.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":84},{"icon":"https://avatars1.githubusercontent.com/u/14985020?s=200&v=4","name":"hyper","desc":"\u57fa\u4e8eWEB\u6280\u672f\u7684\u7ec8\u7aef","url":"https://hyper.is/","urls":{"-3":"https://github.com/zeit/hyper"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":85},{"icon":"https://www.listary.com/wp-content/themes/listary5/images/favicon.ico","name":"Listary","desc":"Listary\u662fWindows\u7684\u9769\u547d\u6027\u641c\u7d22\u5b9e\u7528\u7a0b\u5e8f\uff0c\u5b83\u4f7f\u4f11\u95f2\u7528\u6237\u548c\u9ad8\u7ea7\u7528\u6237\u90fd\u80fd\u5feb\u901f\u627e\u5230\u6587\u4ef6\u5e76\u542f\u52a8\u5e94\u7528\u7a0b\u5e8f\uff01","url":"https://www.listary.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":86}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u865a\u62df\u673a","nav":[{"icon":"https://www.vmware.com/favicon.ico","name":"vmware","desc":"\u5229\u7528VMware\u63d0\u4f9b\u7684\u8f6f\u4ef6\u5b9a\u4e49\u7684\u4e91\uff0c\u79fb\u52a8\u6027\uff0c\u7f51\u7edc\u548c\u5b89\u5168\u89e3\u51b3\u65b9\u6848\u6765\u5efa\u7acb\u60a8\u7684\u6570\u5b57\u57fa\u7840\u3002","url":"https://www.vmware.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u865a\u62df\u673a"],"ownVisible":false,"id":87},{"icon":"https://www.parallels.cn/typo3conf/ext/prls_theme/Resources/Public/theme/res/img/favicon/favicon.png","name":"parallels","desc":"Mac\u548cWindows\u865a\u62df\u5316|\u7ba1\u7406Mac|VDI\u548cRDS\u89e3\u51b3\u65b9\u6848","url":"https://www.parallels.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u865a\u62df\u673a"],"ownVisible":false,"id":88},{"icon":"http://mumu.163.com/favicon.ico","name":"mumu Android\u6a21\u62df\u5668","desc":"\u7f51\u6613MuMu[\u624b\u6e38\u6a21\u62df\u5668][\u5b89\u5353\u6a21\u62df\u5668]","url":"http://mumu.163.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u865a\u62df\u673a"],"ownVisible":false,"id":89}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"icon":"https://avatars3.githubusercontent.com/u/34743864?s=200&v=4","name":"DBeaver","desc":"\u9002\u7528\u4e8e\u5f00\u53d1\u4eba\u5458\uff0c\u6570\u636e\u5e93\u7ba1\u7406\u5458\uff0c\u5206\u6790\u5e08\u548c\u6240\u6709\u9700\u8981\u4f7f\u7528\u6570\u636e\u5e93\u7684\u4eba\u5458\u7684\u514d\u8d39\u7684\u591a\u5e73\u53f0\u6570\u636e\u5e93\u5de5\u5177\u3002\u652f\u6301\u6240\u6709\u6d41\u884c\u7684\u6570\u636e\u5e93\uff1aMySQL\uff0cPostgreSQL\uff0cSQLite\uff0cOracle\uff0cDB2\uff0cSQL Server\uff0cSybase\uff0cMS Access\uff0cTeradata\uff0cFirebird\uff0cApache Hive\uff0cPhoenix\uff0cPresto\u7b49","url":"https://dbeaver.io/","urls":{"-3":"https://github.com/dbeaver/dbeaver"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":90},{"icon":"https://redisdesktop.com/static/css/favicon.png","name":"RedisDesktopManager","desc":"Redis Desktop Manager\uff08\u53c8\u540dRDM\uff09\u2014\u662f\u7528\u4e8eWindows\uff0cLinux\uff0cMacOS\u548ciPadOS\u7684\u5feb\u901fRedis\u6570\u636e\u5e93\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u3002","url":"https://redisdesktop.com/","urls":{"-3":"https://github.com/uglide/RedisDesktopManager"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":91},{"icon":"https://sequelpro.com/favicon/favicon-32x32.png","name":"Sequel Pro","desc":"Sequel Pro\u662f\u4e00\u4e2a\u5feb\u901f\uff0c\u6613\u4e8e\u4f7f\u7528\u7684Mac\u6570\u636e\u5e93\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\uff0c\u7528\u4e8e\u5904\u7406MySQL\u6570\u636e\u5e93\u3002","url":"https://www.sequelpro.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":92},{"icon":"https://robomongo.org/static/favicon-11ace079.ico","name":"Robo 3T","desc":"\u4e00\u4e2a\u73b0\u4ee3\uff0c\u5f3a\u5927\u4e14\u7531\u793e\u533a\u9a71\u52a8\u7684MongoDB\u7ba1\u7406\u5de5\u5177","url":"https://robomongo.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":93},{"icon":"https://www.jetbrains.com/favicon-32x32.png","name":"DataGrip","desc":"jetbrains\u51fa\u54c1\u7684\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf","url":"https://www.jetbrains.com/datagrip/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":94},{"icon":"https://tableplus.com/resources/favicons/apple-icon-57x57.png","name":"tableplus","desc":"\u7528\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u7684\u73b0\u4ee3\uff0c\u672c\u5730\u4e14\u53cb\u597d\u7684GUI\u5de5\u5177\uff1aMySQL\uff0cPostgreSQL\uff0cSQLite\u7b49","url":"https://tableplus.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":95}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8fdc\u7a0b\u63a7\u5236","nav":[{"icon":"https://www.teamviewer.cn/wp-content/themes/tv-wordpress-theme/dist/media/favicon.png","name":"TeamViewer","desc":"TeamViewer\u8fdc\u7a0b\u8fde\u63a5\u63a7\u5236\u8f6f\u4ef6\u662f\u4e00\u6b3e\u968f\u65f6\u968f\u5730\u8fde\u63a5\u5230\u8fdc\u7a0b\u684c\u9762\u7535\u8111\u3001\u79fb\u52a8\u8bbe\u5907\u53caIot,\u8ba9\u8fdc\u7a0b\u8fde\u63a5\u8fc7\u7a0b\u66f4\u52a0\u7684\u5feb\u901f\u548c\u5b89\u5168,\u8f7b\u677e\u5b9e\u73b0\u5bf9\u6587\u4ef6\u3001\u7f51\u7edc\u53ca\u7a0b\u5e8f\u7684\u5b9e\u65f6\u652f\u6301\u6216\u8bbf\u95ee\u3002","url":"https://www.teamviewer.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u8fdc\u7a0b\u63a7\u5236"],"ownVisible":false,"id":96},{"icon":"https://sunlogin.oray.com/favicon.ico","name":"\u5411\u65e5\u8475","desc":"\u5411\u65e5\u8475\u8fdc\u7a0b\u63a7\u5236\u8f6f\u4ef6\u662f\u4e00\u6b3e\u514d\u8d39\u7684\u96c6\u8fdc\u7a0b\u63a7\u5236\u7535\u8111\u624b\u673a\u3001\u8fdc\u7a0b\u684c\u9762\u8fde\u63a5\u3001\u8fdc\u7a0b\u5f00\u673a\u3001\u8fdc\u7a0b\u7ba1\u7406\u3001\u652f\u6301\u5185\u7f51\u7a7f\u900f\u7684\u4e00\u4f53\u5316\u8fdc\u7a0b\u63a7\u5236\u7ba1\u7406\u5de5\u5177\u8f6f\u4ef6","url":"https://sunlogin.oray.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u8fdc\u7a0b\u63a7\u5236"],"ownVisible":false,"id":97}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u98de\u673a\u573a","nav":[{"icon":"https://avatars0.githubusercontent.com/u/14110142?s=200&v=4","name":"v2ray","desc":"\u7528\u4e8e\u6784\u5efa\u4ee3\u7406\u7ed5\u8fc7\u7f51\u7edc\u9650\u5236\u7684\u5e73\u53f0\u3002","url":"https://github.com/v2ray/v2ray-core","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u98de\u673a\u573a"],"ownVisible":false,"id":98},{"icon":"https://github.com/Dreamacro/clash/raw/master/docs/logo.png","name":"clash","desc":"Go\u4e2d\u57fa\u4e8e\u89c4\u5219\u7684\u96a7\u9053","url":"https://github.com/Dreamacro/clash","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u98de\u673a\u573a"],"ownVisible":false,"id":99}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5f71\u89c6/\u97f3\u4e50","nav":[{"title":"\u5f71\u89c6","nav":[{"icon":"https://www.bilibili.com/favicon.ico","name":"\u54d4\u54e9\u54d4\u54e9","desc":"\u56fd\u5185\u77e5\u540d\u7684\u89c6\u9891\u5f39\u5e55\u7f51\u7ad9\uff0c\u8fd9\u91cc\u6709\u6700\u53ca\u65f6\u7684\u52a8\u6f2b\u65b0\u756a\uff0c\u6700\u68d2\u7684ACG\u6c1b\u56f4\uff0c\u6700\u6709\u521b\u610f\u7684Up\u4e3b","url":"https://www.bilibili.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":100},{"icon":"https://www.iqiyipic.com/common/images/PCW-114x114.png","name":"\u7231\u5947\u827a","desc":"\u62e5\u6709\u6d77\u91cf\u3001\u4f18\u8d28\u3001\u9ad8\u6e05\u7684\u7f51\u7edc\u89c6\u9891\u7684\u5927\u578b\u89c6\u9891\u7f51\u7ad9\uff0c\u4e13\u4e1a\u7684\u7f51\u7edc\u89c6\u9891\u64ad\u653e\u5e73\u53f0","url":"https://www.iqiyi.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":101},{"icon":"https://www.youtube.com/favicon.ico","name":"Youtube","desc":"\u5168\u7403\u6700\u5927\u7684\u89c6\u9891\u7f51\u7ad9","url":"https://www.youtube.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":102},{"icon":"https://www.douyu.com/favicon.ico","name":"\u6597\u9c7c","desc":"\u6597\u9c7c - \u6bcf\u4e2a\u4eba\u7684\u76f4\u64ad\u5e73\u53f0","url":"https://www.douyu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":103},{"icon":"https://cdn.jsdelivr.net/gh/txxxjs/fk/ifkdy/2020-03-16/favicon.ico","name":"\u75af\u72c2\u5f71\u89c6\u641c\u7d22","desc":"\u75af\u72c2\u5f71\u89c6\u641c\u7d22\u662f\u4e00\u6b3e\u5168\u80fd\u5f71\u89c6\u641c\u7d22\u5f15\u64ce\uff0c\u5e2e\u4f60\u627e\u5230\u6700\u65b0\u5f71\u89c6\u8d44\u6e90\uff0c\u4e00\u7ad9\u62e5\u6709\u65e0\u5c3d\u5f71\u89c6\u8d44\u6e90","url":"http://ifkdy.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":104},{"icon":"http://www.qmaile.com/favicon.ico","name":"\u5168\u6c11vip\u89c6\u9891\u5728\u7ebf\u89e3\u6790","desc":"\u514d\u8d39\u5168\u7f51VIP\u89c6\u9891\u4f1a\u5458\u514d\u5e7f\u544a\u770b\u7535\u5f71\uff01\u4f18\u9177vip\u89e3\u6790\uff0c\u7231\u5947\u827avip\u89e3\u6790\uff0c\u817e\u8bafvip\u89e3\u6790\uff0c\u4e50\u89c6vip\u89e3\u6790\uff0c\u8292\u679cvip\u89e3\u6790","url":"http://www.qmaile.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":105},{"icon":"https://qncdnimg.aoscdn.com/local/beecut.cn/img/favicon.png","name":"\u871c\u8702\u526a\u8f91","desc":"\u514d\u8d39\u5728\u7ebf\u89c6\u9891\u526a\u8f91\u3001\u89c6\u9891\u5236\u4f5c\u3001\u89c6\u9891\u526a\u5207\u3001\u89c6\u9891\u8f6cgif\u7b49\u5b9e\u7528\u529f\u80fd","url":"https://beecut.cn/online-video-editor","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":106},{"name":"kk\u9ad8\u6e05\u5f71\u9662","desc":"kk\u9ad8\u6e05\u5f71\u9662,1080p\u7535\u5f71\u4e0b\u8f7d,\u9ad8\u6e05\u7535\u5f71\u8fc5\u96f7\u4e0b\u8f7d,\u514d\u8d39\u9ad8\u6e05\u7535\u5f71\u7f51","url":"http://www.kk3.tv/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":107}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u97f3\u4e50","nav":[{"name":"\u81ea\u7531\u7684\u97f3\u4e50","desc":"\u81ea\u7531\u7684\u97f3\u4e50\u662f\u4e00\u4e2a\u514d\u8d39\u8bd5\u542c\u5e76\u4e0b\u8f7d\u5168\u7f51\u97f3\u4e50\u7684\u7f51\u7ad9","url":"https://www.tikitiki.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u97f3\u4e50"],"ownVisible":false,"id":108}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u62db\u8058/\u6c42\u804c","nav":[{"title":"\u62db\u8058/\u6c42\u804c","nav":[{"icon":"https://www.zhaopin.com/favicon.ico","name":"\u667a\u8054\u62db\u8058","desc":"\u667a\u8054\u62db\u8058\uff0c\u66f4\u61c2\u4f60\u7684\u4ef7\u503c","url":"https://www.zhaopin.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u62db\u8058/\u6c42\u804c"],"ownVisible":false,"id":109},{"icon":"https://www.51job.com/favicon.ico","name":"\u524d\u7a0b\u65e0\u5fe7","desc":"\u62db\u8058\u7f51,\u4eba\u624d\u7f51,\u6c42\u804c,\u627e\u5de5\u4f5c","url":"https://www.51job.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u62db\u8058/\u6c42\u804c"],"ownVisible":false,"id":110},{"icon":"https://www.zhipin.com/favicon.ico","name":"BOSS\u76f4\u8058","desc":"BOSS\u76f4\u8058\u662f\u6743\u5a01\u9886\u5148\u7684\u62db\u8058\u7f51\uff0c\u5f00\u542f\u4eba\u624d\u7f51\u62db\u8058\u6c42\u804c\u65b0\u65f6\u4ee3\uff0c\u8ba9\u6c42\u804c\u8005\u4e0eBoss\u76f4\u63a5\u5f00\u804a\u3001\u52a0\u5feb\u9762\u8bd5\u3001\u5373\u65f6\u53cd\u9988\uff0c\u627e\u5de5\u4f5c\u5c31\u6765BOSS\u76f4\u8058\u548cBoss\u5f00\u804a\u5427","url":"https://www.zhipin.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u62db\u8058/\u6c42\u804c"],"ownVisible":false,"id":111}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"ResumeSample","desc":"\u7a0b\u5e8f\u5458\u7b80\u5386\u6a21\u677f\u7cfb\u5217, WEB/IOS/Android/C++/node\u7b49\u4ee5\u53ca\u901a\u7528\u7a0b\u5e8f\u5458\u7b80\u5386\u6a21\u677f","url":"https://github.com/geekcompany/ResumeSample","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u5176\u4ed6"],"ownVisible":false,"id":112},{"icon":"http://coder.shengxinjing.cn/logo.ico","name":"\u7a0b\u5e8f\u5458\u627e\u5de5\u4f5c\u9ed1\u540d\u5355","desc":"\u6709\u4e9b\u4e8b\u60c5\uff0c\u5e94\u8be5\u88ab\u8bb0\u4f4f","url":"http://coder.shengxinjing.cn/","urls":{"-3":"https://github.com/shengxinjing/programmer-job-blacklist"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u5176\u4ed6"],"ownVisible":false,"id":113},{"icon":"https://www.kanzhun.com/favicon.ico","name":"\u770b\u51c6\u7f51","desc":"\u770b\u51c6\u7f51\u2605\u4e2d\u56fd\u9886\u5148\u7684\u804c\u573a\u4fe1\u606f\u5e73\u53f0,\u4e13\u6ce8\u4e8e\u516c\u53f8\u8bc4\u8bba,\u6652\u5de5\u8d44,\u5de5\u8d44\u5f85\u9047,\u9762\u8bd5,\u516c\u53f8\u798f\u5229\u7b49.\u60a8\u53ef\u4ee5\u5728\u770b\u51c6\u7f51\u4e0a\u533f\u540d\u5206\u4eab\u60a8\u7684\u804c\u4e1a\u4fe1\u606f","url":"https://www.kanzhun.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u5176\u4ed6"],"ownVisible":false,"id":114}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"title":"\u538b\u7f29\u5de5\u5177","nav":[{"icon":"https://tinypng.com/images/apple-touch-icon.png","name":"TinyPNG","desc":"\u667a\u80fdPNG\u548cJPEG\u538b\u7f29\uff0c\u4ee5\u8d28\u91cf\u548c\u6587\u4ef6\u5927\u5c0f\u7684\u5b8c\u7f8e\u5e73\u8861\u6765\u4f18\u5316\u60a8\u7684\u56fe\u50cf","url":"https://tinypng.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u538b\u7f29\u5de5\u5177"],"ownVisible":false,"id":115},{"icon":"https://squoosh.app/assets/favicon.ico","name":"Squoosh","desc":"\u5728\u6d4f\u89c8\u5668\u4e2d\u7528\u4e0d\u540c\u7684\u7f16\u89e3\u7801\u5668\u538b\u7f29\u548c\u6bd4\u8f83\u56fe\u50cf(Google\u51fa\u54c1)","url":"https://squoosh.app/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u538b\u7f29\u5de5\u5177"],"ownVisible":false,"id":116}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8f85\u52a9\u5de5\u5177","nav":[{"icon":"https://static.clewm.net/static/images/favicon.ico","name":"\u8349\u6599\u4e8c\u7ef4\u7801","desc":"\u7528\u4e13\u4e1a\u7684\u4e8c\u7ef4\u7801\u4ea7\u54c1\u5e2e\u52a9\u4f01\u4e1a\u521b\u9020\u4ef7\u503c","url":"https://cli.im/url/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":117},{"name":"Feed \u9a8c\u8bc1\u5668","desc":"\u9a8c\u8bc1RSS\u662f\u5426\u7b26\u5408\u6807\u51c6\u89c4\u8303","url":"http://www.feedvalidator.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":118},{"icon":"https://www.taonienie.com/favicon.ico","name":"\u6dd8\u634f\u634f","desc":"\u6dd8\u5b9d\u4fe1\u8a89\u67e5\u8be2 - \u6dd8\u634f\u634f\u5356\u5bb6\u5de5\u5177\u7bb1 \u6dd8\u5b9d\u4fe1\u8a89\u67e5\u8be2_\u6dd8\u5b9d\u4fe1\u7528\u67e5\u8be2_\u6dd8\u5b9d\u5c0f\u53f7\u67e5\u8be2_\u6dd8\u5b9d\u9ed1\u53f7\u67e5\u8be2","url":"http://taonienie.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":119},{"icon":"https://www.tianyancha.com/favicon.ico","name":"\u5929\u773c\u67e5","desc":"\u4eba\u4eba\u90fd\u5728\u7528\u5546\u4e1a\u5b89\u5168\u5de5\u5177_\u4f01\u4e1a\u4fe1\u606f\u67e5\u8be2_\u516c\u53f8\u67e5\u8be2_\u5de5\u5546\u67e5\u8be2_\u4f01\u4e1a\u4fe1\u7528\u4fe1\u606f\u67e5\u8be2\u7cfb\u7edf","url":"https://www.tianyancha.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":120},{"icon":"https://yuque.com/favicon.ico","name":"\u8bed\u96c0","desc":"\u4f18\u96c5\u9ad8\u6548\u7684\u5728\u7ebf\u6587\u6863\u7f16\u8f91\u4e0e\u534f\u540c\u5de5\u5177\uff0c\u8ba9\u6bcf\u4e2a\u4f01\u4e1a\u8f7b\u677e\u62e5\u6709\u6587\u6863\u4e2d\u5fc3 - \u963f\u91cc\u5df4\u5df4","url":"https://yuque.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":121},{"icon":"https://www.qsc.zju.edu.cn/box/favicon.ico","name":"\u6c42\u662f\u6f6e\u4e91U\u76d8","desc":"\u4e34\u65f6\u6587\u4ef6\u4e0a\u4f20, \u5feb\u901f\u548c\u7a33\u5b9a","url":"https://box.zjuqsc.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":122},{"icon":"https://www.360converter.com/images/favicon.ico","name":"\u4e91\u8f6c\u6362","desc":"\u5728\u7ebf\u514d\u8d39\u8f6c\u6362\u89c6\u9891,\u97f3\u9891,YouTube\u89c6\u9891\u5230\u6587\u5b57,\u89c6\u9891\u5230\u6587\u5b57,\u97f3\u9891\u5230\u6587\u5b57,\u8bed\u97f3\u8f6c\u6362\u6210\u6587\u5b57","url":"http://www.360converter.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":123},{"icon":"https://www.picdiet.com/css/favicon.ico","name":"Picdiet","desc":"\u72ec\u7279\u4e14\u5f3a\u608d\u7684JavaScript\u7b97\u6cd5\uff0c\u80fd\u6781\u901f\u538b\u7f2980%\u7684\u56fe\u7247\u5927\u5c0f\uff0c\u800c\u4e0d\u635f\u5bb3\u5176\u8d28\u91cf","url":"https://www.picdiet.com/zh-cn","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":124},{"icon":"https://cdn-img.easyicon.net/favicon.ico","name":"easyicon","desc":"\u5728\u7ebf\u56fe\u6807\u8f6c\u6362ico\u3001icns","url":"https://www.easyicon.net/covert/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":125},{"icon":"https://smallpdf.com/favicon.png","name":"Smallpdf","desc":"\u538b\u7f29pdf\u3001\u5404\u79cd\u6587\u4ef6\u683c\u5f0f\u8f6c\u6362pdf","url":"https://smallpdf.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":126},{"icon":"https://coolbackgrounds.io/images/favicon-fe5a0ff5.png","name":"Cool Backgrounds","desc":"\u751f\u6210\u975e\u5e38\u9177\u7684\u5f69\u8272\u80cc\u666f\u56fe\u50cf","url":"https://coolbackgrounds.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":127},{"icon":"https://source.unsplash.com/favicon-32x32.png","name":"Unsplash Source","desc":"\u968f\u673a\u751f\u6210\u56fe\u7247\u94fe\u63a5","url":"https://source.unsplash.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":128},{"icon":"https://assets.smcdn.cn/from_qbox/favicon.ico","name":"\u77f3\u58a8\u6587\u6863","desc":"\u4e00\u6b3e\u8f7b\u4fbf\u3001\u7b80\u6d01\u7684\u5728\u7ebf\u534f\u4f5c\u6587\u6863\u5de5\u5177\uff0cPC\u7aef\u548c\u79fb\u52a8\u7aef\u5168\u8986\u76d6\uff0c\u652f\u6301\u591a\u4eba\u540c\u65f6\u5bf9\u6587\u6863\u7f16\u8f91\u548c\u8bc4\u8bba...","url":"https://shimo.im/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":129},{"icon":"https://emoji.muan.co/appicon.png","name":"Emoji searcher","desc":"Emoji\u8868\u60c5\u5927\u5168","url":"http://emoji.muan.co/","urls":{"-3":"https://github.com/muan/emoji/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":130},{"icon":"https://imgurl.org/favicon.ico","name":"imgURL","desc":"ImgURL\u662f\u4e00\u4e2a\u7b80\u5355\u3001\u7eaf\u7cb9\u7684\u56fe\u5e8a\u7a0b\u5e8f\uff0c\u8ba9\u4e2a\u4eba\u56fe\u5e8a\u591a\u4e00\u4e2a\u9009\u62e9","url":"https://imgurl.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":131},{"icon":"https://f0cdn.anyknew.com/web/img/icons/favicon-32x32.png","name":"\u62f7\u8d1d\u5154","desc":"\u8de8\u5e73\u53f0\u5206\u4eab\u5de5\u5177\uff0c\u7eafWeb\uff0cIOS\uff0cMAC\uff0cLinux\uff0cAndroid\u4e92\u4f20","url":"https://cp.ifval.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":132},{"icon":"https://tableconvert.com/static/images/favicon.png","name":"\u8868\u683c\u5de5\u5177","desc":"\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684\u5728\u7ebf\u8868\u683c\u7f16\u8f91\u5668\uff0c\u652f\u6301Excel\u3001Markdown\u3001JSON\u3001CSV\u3001HTML\u7b49\u683c\u5f0f\u7684\u76f8\u4e92\u8f6c\u6362","url":"https://tableconvert.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":133},{"icon":"https://p2.ssl.qhimg.com/t014de4ba13ada26743.png","name":"360\u67e5\u5b57\u4f53","desc":"360\u67e5\u5b57\u4f53 - \u67e5\u7248\u6743\uff0c\u514d\u7ea0\u7eb7","url":"https://fonts.safe.360.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":134},{"icon":"https://www.sejda.com/images/icon_128.png","name":"sejda","desc":"\u5728\u7ebfHTML\u8f6c\u6362pdf","url":"https://www.sejda.com/html-to-pdf","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":135},{"icon":"https://bigjpg.com/static/css/touch-icon-iphone.png","name":"AI\u4eba\u5de5\u667a\u80fd\u56fe\u7247\u653e\u5927","desc":"Bigjpg - \u4f7f\u7528\u5f00\u6e90waifu2x\u4eba\u5de5\u667a\u80fd\u6df1\u5ea6\u5377\u79ef\u795e\u7ecf\u7f51\u7edc\uff08CNN\uff09\u667a\u80fd\u65e0\u635f\u514d\u8d39\u653e\u5927\u56fe\u7247","url":"https://bigjpg.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":136},{"name":"VVV\u6587\u6863\u5728\u7ebf\u5bfc\u51fa\u5de5\u5177","desc":"\u514d\u8d39\u4e0b\u8f7d\u767e\u5ea6\u6587\u5e93\u6587\u6863","url":"http://wenku.baiduvvv.com/doc","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":137},{"icon":"http://tools.bugscaner.com/static/images/favicon.ico","name":"\u5728\u7ebf\u6587\u4ef6\u7f16\u7801\u8bc6\u522b","desc":"\u5728\u7ebf\u6587\u4ef6\u7f16\u7801\u8bc6\u522b","url":"http://tools.bugscaner.com/filebianma/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":138},{"icon":"http://tools.bugscaner.com/static/images/favicon.ico","name":"iptv","desc":"\u6536\u96c6\u6765\u81ea\u4e16\u754c\u5404\u5730\u76845000\u591a\u4e2a\u516c\u5171IPTV\u9891\u9053","url":"https://github.com/iptv-org/iptv","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":139},{"icon":"https://www.linshiyouxiang.net/public/zh-CN/img/favicon.ico","name":"\u4e34\u65f6\u90ae\u7bb1","desc":"10\u5206\u949f\u90ae\u7bb1\uff0c\u4e34\u65f6\u90ae\u7bb1\uff0c\u4e34\u65f6\u90ae\uff0c\u4e34\u65f6\u7535\u5b50\u90ae\u7bb1\uff0c24\u5c0f\u65f6\u90ae\u7bb1\uff0c\u4e00\u6b21\u6027\u90ae\u7bb1\uff0c\u533f\u540d\u90ae\u7bb1\uff0c\u5b89\u5168\u90ae\u7bb1","url":"https://www.linshiyouxiang.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":140}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"id":0,"createdAt":"2021-01-23 09:32:06"},{"title":"WEB\u524d\u7aef","nav":[{"title":"JavaScript","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","nav":[{"title":"JavaScript","nav":[{"icon":"https://jquery.com/jquery-wp-content/themes/jquery.com/i/favicon.ico","name":"jQuery","desc":"jQuery\u662f\u4e00\u4e2aJavaScript\u51fd\u6570\u5e93","url":"http://jquery.com/","urls":{"-2":"http://jquery.com/","-1":"https://www.jquery123.com/","-3":"https://github.com/jquery/jquery"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":141},{"icon":"https://www.webpackjs.com/assets/favicon.ico","name":"webpack","desc":"webpack\u662f\u4e00\u4e2a\u6a21\u5757\u6253\u5305\u5668","url":"https://www.webpackjs.com/","urls":{"-2":"https://webpack.js.org/","-1":"https://www.webpackjs.com/","-3":"https://github.com/webpack/webpack"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":142},{"icon":"https://babeljs.io/img/favicon.png","name":"Babel","desc":"\u7528\u4e8e\u7f16\u5199\u4e0b\u4e00\u4ee3 JavaScript \u7684\u7f16\u8bd1\u5668","url":"http://babeljs.io/","urls":{"-2":"http://babeljs.io/","-1":"https://babeljs.cn/","-3":"https://github.com/babel/babel"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":143},{"icon":"https://cn.eslint.org/img/favicon.512x512.png","name":"ESLint","desc":"\u53ef\u7ec4\u88c5\u7684JavaScript\u548cJSX\u68c0\u67e5\u5de5\u5177","url":"https://cn.eslint.org/","urls":{"-2":"https://cn.eslint.org/","-1":"http://eslint.cn/","-3":"https://github.com/eslint/eslint"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":144},{"icon":"https://avatars3.githubusercontent.com/u/10076935?s=200&v=4","name":"stylelint","desc":"\u4e00\u4e2a\u5f3a\u5927\u7684\u73b0\u4ee3\u6837\u5f0f\u98ce\u683c\u7684linter","url":"https://stylelint.io/","urls":{"-3":"https://github.com/stylelint/stylelint"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":145},{"icon":"https://avatars0.githubusercontent.com/u/8770005?s=200&v=4","name":"Mocha","desc":"Mocha\u662fJavaScript\u7684\u4e00\u79cd\u5355\u5143\u6d4b\u8bd5\u6846\u67b6\uff0c\u65e2\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u73af\u5883\u4e0b\u8fd0\u884c\uff0c\u4e5f\u53ef\u4ee5\u5728Node.js\u73af\u5883\u4e0b\u8fd0\u884c","url":"https://mochajs.org/","urls":{"-3":"https://github.com/mochajs/mocha"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":146},{"icon":"https://avatars1.githubusercontent.com/u/5485517?s=200&v=4","name":"MUI","desc":"MUI: \u6700\u63a5\u8fd1\u539f\u751fAPP\u4f53\u9a8c\u7684\u9ad8\u6027\u80fd\u524d\u7aef\u6846\u67b6","url":"http://dev.dcloud.net.cn/mui/","urls":{"-3":"https://github.com/dcloudio/mui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":147},{"icon":"https://avatars0.githubusercontent.com/u/12554859?s=200&v=4","name":"rollup","desc":"Rollup \u662f\u4e00\u4e2a JavaScript \u6a21\u5757\u6253\u5305\u5668\uff0c\u53ef\u4ee5\u5c06\u5c0f\u5757\u4ee3\u7801\u7f16\u8bd1\u6210\u5927\u5757\u590d\u6742\u7684\u4ee3\u7801\uff0c\u4f8b\u5982 library \u6216\u5e94\u7528\u7a0b\u5e8f","url":"https://rollupjs.org/guide/zh/","urls":{"-2":"https://rollupjs.org/guide/en/","-1":"https://rollupjs.org/guide/zh/","-3":"https://github.com/rollup/rollup"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":148},{"icon":"https://avatars1.githubusercontent.com/u/29208316?s=200&v=4","name":"standard","desc":"JavaScript\u6837\u5f0f\u6307\u5357\uff0c\u5e26\u6709linter\u548c\u81ea\u52a8\u4ee3\u7801\u4fee\u590d\u7a0b\u5e8f","url":"https://standardjs.com","urls":{"-3":"https://github.com/standard/standard"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":149}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u5e38\u7528\u63d2\u4ef6","nav":[{"urls":{},"name":"Faker","icon":"https://github.com/favicon.ico","url":"https://github.com/Marak/faker.js","createdAt":"2021-01-23 17:37:03","desc":"\u5728Node.js\u548c\u6d4f\u89c8\u5668\u4e2d\u751f\u6210\u5927\u91cf\u903c\u771f\u7684\u5047\u6570\u636e","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":150},{"name":"sweetalert","desc":"JavaScript Alert \u7684\u6f02\u4eae\u66ff\u4ee3\u54c1","url":"https://sweetalert.js.org/","urls":{"-3":"https://github.com/t4t5/sweetalert"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":151},{"icon":"https://avatars0.githubusercontent.com/u/17040762?s=200&v=4","name":"Sortable","desc":"\u4e00\u4e2aJavaScript\u5e93\uff0c\u7528\u4e8e\u5728\u73b0\u4ee3\u6d4f\u89c8\u5668\u548c\u89e6\u6478\u8bbe\u5907\u4e0a\u5bf9\u62d6\u653e\u5217\u8868\u8fdb\u884c\u91cd\u65b0\u6392\u5e8f","url":"https://sortablejs.github.io/Sortable/","urls":{"-3":"https://github.com/SortableJS/Sortable"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":152},{"name":"formilyjs","desc":"Formily \u662f\u4e00\u4e2a\u7531\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u591a BU \u5171\u5efa\u7684\u9762\u5411\u4e2d\u540e\u53f0\u590d\u6742\u573a\u666f\u7684\u8868\u5355\u89e3\u51b3\u65b9\u6848\uff0c\u5b83\u4e5f\u662f\u4e00\u4e2a\u8868\u5355\u6846\u67b6","url":"https://formilyjs.org/","urls":{"-3":"https://github.com/alibaba/formily"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":153},{"icon":"https://roughnotation.com/images/fav.png","name":"rough-notation","desc":"\u4e00\u4e2a\u5c0f\u7684JavaScript\u5e93\uff0c\u7528\u4e8e\u5728\u7f51\u9875\u4e0a\u521b\u5efa\u624b\u7ed8\u52a8\u753b\u5e76\u4e3a\u5176\u6dfb\u52a0\u52a8\u753b\u6548\u679c","url":"https://roughnotation.com/","urls":{"-3":"https://github.com/rough-stuff/rough-notation"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":154},{"icon":"https://avatars3.githubusercontent.com/u/19199542?s=200&v=4","name":"AntV","desc":"AntV \u662f\u8682\u8681\u91d1\u670d\u5168\u65b0\u4e00\u4ee3\u6570\u636e\u53ef\u89c6\u5316\u89e3\u51b3\u65b9\u6848","url":"https://antv.alipay.com/","urls":{"-3":"https://github.com/antvis/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":155},{"icon":"https://www.lodashjs.com/icons/favicon-32x32.png","name":"Lodash","desc":"Lodash\u662f\u4e00\u4e2a\u4e00\u81f4\u6027\u3001\u6a21\u5757\u5316\u3001\u9ad8\u6027\u80fd\u7684 JavaScript \u5b9e\u7528\u5de5\u5177\u5e93","url":"https://www.lodashjs.com/","urls":{"-2":"https://lodash.com/","-1":"https://www.lodashjs.com/","-3":"https://github.com/lodash/lodash"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":156},{"icon":"https://www.swiper.com.cn/favicon.ico","name":"Swiper","desc":"\u8f7b\u91cf\u7ea7\u7684\u79fb\u52a8\u8bbe\u5907\u89e6\u63a7\u6ed1\u5757\u7684js\u6846\u67b6\uff0c\u4f7f\u7528\u786c\u4ef6\u52a0\u901f\u8fc7\u6e21","url":"https://www.swiper.com.cn/","urls":{"-2":"http://idangero.us/swiper/","-1":"https://www.swiper.com.cn/","-3":"https://github.com/nolimits4web/swiper"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":157},{"name":"fastclick","desc":"Polyfill \u89e3\u51b3\u79fb\u52a8\u7aef\u5177\u6709300ms\u5ef6\u8fdf\u7684\u5e93","url":"https://github.com/ftlabs/fastclick","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":158},{"name":"Layer","desc":"\u4e30\u5bcc\u591a\u6837\u7684Web\u5f39\u51fa\u5c42\u7ec4\u4ef6,\u53ef\u8f7b\u677e\u5b9e\u73b0Alert/Confirm/Prompt/\u666e\u901a\u63d0\u793a/\u9875\u9762\u533a\u5757/iframe/tips\u7b49\u7b49\u51e0\u4e4e\u6240\u6709\u7684\u5f39\u51fa\u4ea4\u4e92","url":"http://layer.layui.com/","urls":{"-3":"https://github.com/sentsin/layer/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":159},{"icon":"https://momentjs.com/static/img/moment-favicon.png","name":"moment.js","desc":"\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684JavaScript\u65e5\u671f\u5e93\uff0c\u7528\u4e8e\u89e3\u6790\uff0c\u9a8c\u8bc1\uff0c\u64cd\u4f5c\u548c\u683c\u5f0f\u5316\u65e5\u671f","url":"http://momentjs.cn/","urls":{"-2":"http://momentjs.com/","-1":"http://momentjs.cn/","-3":"https://github.com/moment/moment"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":160},{"name":"js-cookie","desc":"\u4e00\u4e2a\u7b80\u5355\uff0c\u8f7b\u91cf\u7ea7\u7684JavaScript API\uff0c\u7528\u4e8e\u5904\u7406\u6d4f\u89c8\u5668cookie","url":"https://github.com/js-cookie/js-cookie","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":161},{"name":"qs","desc":"\u5177\u6709\u5d4c\u5957\u652f\u6301\u7684\u67e5\u8be2\u5b57\u7b26\u4e32\u89e3\u6790\u5668","url":"https://github.com/ljharb/qs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":162},{"name":"Mock.js","desc":"\u751f\u6210\u968f\u673a\u6570\u636e\uff0c\u62e6\u622a Ajax \u8bf7\u6c42","url":"http://mockjs.com/","urls":{"-3":"https://github.com/nuysoft/Mock"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":163},{"icon":"https://gitalk.github.io/favicon.ico","name":"GITALK","desc":"\u51f9\u51f8\u5b9e\u9a8c\u5ba4\u51fa\u54c1\u7684\u4e00\u6b3e\u57fa\u4e8e Github Issue \u548c Preact \u5f00\u53d1\u7684\u8bc4\u8bba\u63d2\u4ef6","url":"https://gitalk.github.io/","urls":{"-3":"https://github.com/gitalk/gitalk"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":164},{"icon":"https://prismjs.com/assets/favicon.png","name":"prism","desc":"\u8f7b\u5de7\uff0c\u5f3a\u5927\uff0c\u4f18\u96c5\u7684\u4ee3\u7801\u8bed\u6cd5\u9ad8\u4eae","url":"https://prismjs.com/","urls":{"-3":"https://github.com/PrismJS/prism"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":165},{"name":"nprogress","desc":"\u9876\u90e8\u52a0\u8f7d\u8fdb\u5ea6\u6761","url":"http://ricostacruz.com/nprogress/","urls":{"-3":"https://github.com/rstacruz/nprogress"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":166},{"name":"iNotify","desc":"JS\u5b9e\u73b0\u6d4f\u89c8\u5668\u6807\u9898\u95ea\u70c1\uff0c\u6eda\u52a8\uff0c\u8bed\u97f3\u63d0\u793a\uff0cChrome/Safari/FireFox/IE\u901a\u77e5","url":"https://git.io/iNotify","urls":{"-3":"https://github.com/jaywcjlove/iNotify"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":167},{"name":"html2canvas","desc":"\u6700\u6d41\u884c\u7684JavaScript\u5c4f\u5e55\u622a\u56fe","url":"https://html2canvas.hertzen.com/","urls":{"-3":"https://github.com/niklasvh/html2canvas"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":168},{"name":"dayjs","desc":"\u4f7f\u7528\u4e0eMoment.js\u517c\u5bb9\u7684API\u6765\u89e3\u6790\uff0c\u9a8c\u8bc1\uff0c\u64cd\u4f5c\u548c\u663e\u793a\u73b0\u4ee3\u6d4f\u89c8\u5668\u7684\u65e5\u671f\u548c\u65f6\u95f4","url":"https://github.com/iamkun/dayjs/blob/master/docs/zh-cn/API-reference.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":169},{"name":"JsBarcode","desc":"\u6613\u4e8e\u4f7f\u7528\u4f46\u529f\u80fd\u5f3a\u5927\u7684\u6761\u5f62\u7801\u751f\u6210\u5668\uff0c\u9002\u7528\u4e8eWeb\u548cNode.js","url":"https://lindell.me/JsBarcode/","urls":{"-3":"https://github.com/lindell/JsBarcode"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":170},{"name":"clipboard.js","desc":"\u73b0\u4ee3\u590d\u5236\u5230\u526a\u8d34\u677f\u3002\u6ca1\u6709Flash\u3002\u53ea\u97003kb gzipped\u3002","url":"https://clipboardjs.com/","urls":{"-3":"https://github.com/zenorocha/clipboard.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":171},{"name":"lib-flexible","desc":"\u53ef\u4f38\u7f29\u5e03\u5c40\u65b9\u6848, \u6dd8\u5b9drem\u89e3\u51b3\u65b9\u6848","url":"https://github.com/amfe/lib-flexible","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":172},{"name":"js-xss","desc":"\u6839\u636e\u767d\u540d\u5355\u8fc7\u6ee4HTML(\u9632\u6b62XSS\u653b\u51fb)","url":"https://github.com/leizongmin/js-xss","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":173},{"name":"mescroll","desc":"\u7cbe\u81f4\u7684\u4e0b\u62c9\u5237\u65b0\u548c\u4e0a\u62c9\u52a0\u8f7d js\u6846\u67b6.\u652f\u6301vue,\u5b8c\u7f8e\u8fd0\u884c\u4e8e\u79fb\u52a8\u7aef\u548c\u4e3b\u6d41PC\u6d4f\u89c8\u5668","url":"http://www.mescroll.com/index.html","urls":{"-3":"https://github.com/mescroll/mescroll"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":174},{"name":"better-scroll","desc":"\u7075\u611f\u6765\u81eaiscroll\uff0c\u5b83\u5177\u6709\u66f4\u597d\u7684\u6eda\u52a8\u6027\u80fd","url":"https://ustbhuangyi.github.io/better-scroll/","urls":{"-3":"https://github.com/ustbhuangyi/better-scroll"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":175},{"name":"pinyinjs","desc":"\u4e00\u4e2a\u5b9e\u73b0\u6c49\u5b57\u4e0e\u62fc\u97f3\u4e92\u8f6c\u7684\u5c0f\u5de7web\u5de5\u5177\u5e93","url":"http://demo.haoji.me/pinyinjs/","urls":{"-3":"https://github.com/sxei/pinyinjs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":176},{"name":"ms","desc":"\u4f7f\u7528\u6b64\u5305\u53ef\u4ee5\u8f7b\u677e\u5730\u5c06\u5404\u79cd\u65f6\u95f4\u683c\u5f0f\u8f6c\u6362\u4e3a\u6beb\u79d2\u3002","url":"https://github.com/zeit/ms","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":177},{"icon":"https://avatars2.githubusercontent.com/u/5298359?s=200&v=4","name":"ramda","desc":"\u9002\u7528\u4e8eJavaScript\u7a0b\u5e8f\u5458\u7684\u5b9e\u7528\u51fd\u6570\u5e93","url":"https://ramdajs.com","urls":{"-3":"https://github.com/ramda/ramda"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":178},{"name":"decimal.js","desc":"JavaScript\u7684\u4efb\u610f\u7cbe\u5ea6Decimal\u7c7b\u578b (0.1+0.2=0.3)","url":"http://mikemcl.github.io/decimal.js","urls":{"-3":"https://github.com/MikeMcl/decimal.js/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":179},{"name":"copy-to-clipboard","desc":"\u7b80\u5355\u7684\u6a21\u5757\u516c\u5f00copy\u529f\u80fd\uff0c\u5b83\u5c06\u5c1d\u8bd5\u4f7f\u7528execCommand\u4e0e\u7279\u5b9a\u4e8eIE\u7684clipboardData\u63a5\u53e3\u7684\u56de\u9000\uff0c\u6700\u540e\uff0c\u901a\u5e38prompt\u4f7f\u7528\u9002\u5f53\u7684\u6587\u672c\u5185\u5bb9\u548c\u6d88\u606f","url":"https://github.com/sudodoki/copy-to-clipboard","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":180},{"name":"path-to-regexp","desc":"\u5c06\u5b57\u7b26\u4e32\u8def\u5f84\u8f6c\u6362\u6210\u6b63\u5219\u8868\u8fbe\u5f0f","url":"https://github.com/pillarjs/path-to-regexp","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":181},{"name":"autosize","desc":"autosize\u662f\u4e00\u4e2a\u5c0f\u7684\u72ec\u7acb\u811a\u672c\uff0c\u53ef\u4ee5\u81ea\u52a8\u8c03\u6574textarea\u57df\u7684\u9ad8\u5ea6\u4ee5\u9002\u5408\u6587\u672c","url":"http://www.jacklmoore.com/autosize/","urls":{"-3":"https://github.com/jackmoore/autosize"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":182},{"name":"shake.js","desc":"\u76d1\u542c\u624b\u673a\u8bbe\u5907\u6447\u52a8","url":"https://github.com/alexgibson/shake.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":183},{"name":"progressbar","desc":"\u53ef\u4ee5\u8f7b\u677e\u5730\u4e3aWeb\u521b\u5efa\u54cd\u5e94\u5f0f\u548c\u65f6\u5c1a\u7684\u8fdb\u5ea6\u680f\u3002\u52a8\u753b\u5373\u4f7f\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4e5f\u8868\u73b0\u826f\u597d","url":"https://kimmobrunfeldt.github.io/progressbar.js/","urls":{"-3":"https://github.com/kimmobrunfeldt/progressbar.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":184},{"icon":"https://avatars0.githubusercontent.com/u/28626637?s=200&v=4","name":"easy-mock","desc":"Easy Mock \u662f\u4e00\u4e2a\u53ef\u89c6\u5316\uff0c\u5e76\u4e14\u80fd\u5feb\u901f\u751f\u6210\u6a21\u62df\u6570\u636e\u7684\u6301\u4e45\u5316\u670d\u52a1","url":"https://easy-mock.com","urls":{"-3":"https://github.com/easy-mock/easy-mock/blob/dev/README.zh-CN.md"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":185},{"icon":"https://joe.sh/assets/images/favicon.ico","name":"Clamp.js","desc":"JS\u7248\u672c\u7684\u591a\u884c\u6587\u672c\u6ea2\u51fa\u7701\u7565","url":"https://joe.sh/clamp-js","urls":{"-3":"https://github.com/josephschmitt/Clamp.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":186},{"name":"json-bigint","desc":"\u5e26\u6709bigints\u652f\u6301\u7684JSON.parse / stringify","url":"https://github.com/sidorares/json-bigint","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":187},{"name":"exif-js","desc":"\u7528\u4e8e\u8bfb\u53d6EXIF\u56fe\u50cf\u5143\u6570\u636e\u7684JavaScript\u5e93","url":"https://github.com/exif-js/exif-js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":188},{"name":"lunr.js","desc":"Lunr.js\u662f\u4e00\u4e2a\u7528\u4e8e\u6d4f\u89c8\u5668\u7684\u5c0f\u578b\u5168\u6587\u672c\u641c\u7d22\u5e93\u3002\u5b83\u4e3aJSON\u6587\u6863\u5efa\u7acb\u7d22\u5f15\uff0c\u5e76\u63d0\u4f9b\u4e00\u4e2a\u7b80\u5355\u7684\u641c\u7d22\u754c\u9762\u6765\u68c0\u7d22\u4e0e\u6587\u672c\u67e5\u8be2\u6700\u5339\u914d\u7684\u6587\u6863","url":"https://github.com/olivernn/lunr.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":189},{"name":"hotkeys","desc":"\u5f3a\u5927\u7684Javascript\u5e93\uff0c\u7528\u4e8e\u6355\u83b7\u952e\u76d8\u8f93\u5165\u548c\u8f93\u5165\u7684\u6309\u952e\u7ec4\u5408\u3002\u5b83\u6ca1\u6709\u4f9d\u8d56\u6027\u3002","url":"https://wangchujiang.com/hotkeys/","urls":{"-3":"https://github.com/jaywcjlove/hotkeys"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":190},{"name":"dom-to-image","desc":"\u4f7f\u7528HTML5 canvas\u4eceDOM\u8282\u70b9\u751f\u6210\u56fe\u50cf","url":"https://github.com/tsayen/dom-to-image","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":191},{"icon":"https://avatars1.githubusercontent.com/u/59940233?s=200&v=4","name":"single-spa","desc":"\u4f7f\u5fae\u524d\u7aef\u53d8\u5f97\u7b80\u5355","url":"https://single-spa.js.org/","urls":{"-3":"https://github.com/single-spa/single-spa"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":192},{"icon":"https://avatars2.githubusercontent.com/u/33895495?s=200&v=4","name":"qiankun","desc":"\u4e3a\u5fae\u578b\u524d\u7aef\u63d0\u4f9b\u5feb\u901f\uff0c\u7b80\u5355\u548c\u5b8c\u6574\u7684\u89e3\u51b3\u65b9\u6848","url":"https://qiankun.umijs.org/","urls":{"-3":"https://github.com/umijs/qiankun"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":193},{"icon":"https://zelark.github.io/nano-id-cc/favicon.ico","name":"nanoid","desc":"\u4e00\u4e2a\u5f88\u5c0f\u7684\uff0c\u5b89\u5168\u7684\uff0cURL\u53cb\u597d\u7684\uff0c\u552f\u4e00\u7684JavaScript\u5b57\u7b26\u4e32ID\u751f\u6210\u5668\u3002","url":"https://zelark.github.io/nano-id-cc/","urls":{"-3":"https://github.com/ai/nanoid"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":194},{"name":"Numeral-js","desc":"\u4e00\u4e2a\u7528\u4e8e\u683c\u5f0f\u5316\u548c\u5904\u7406\u6570\u5b57\u7684javascript\u5e93","url":"http://numeraljs.com","urls":{"-3":"https://github.com/adamwdraper/Numeral-js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":195},{"name":"ua-parser-js","desc":"\u7528\u4e8e\u4eceuserAgent\u5b57\u7b26\u4e32\u68c0\u6d4b\u6d4f\u89c8\u5668\uff0c\u5f15\u64ce\uff0c\u64cd\u4f5c\u7cfb\u7edf\uff0cCPU\u548c\u8bbe\u5907\u7c7b\u578b/\u6a21\u578b\u3002\u652f\u6301\u6d4f\u89c8\u5668\u548cnode.js\u73af\u5883","url":"http://faisalman.github.io/ua-parser-js/","urls":{"-3":"https://github.com/faisalman/ua-parser-js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":196},{"icon":"https://avatars0.githubusercontent.com/u/7997161?s=200&v=4","name":"hammer.js","desc":"\u4e00\u4e2a\u7528\u4e8e\u591a\u70b9\u89e6\u6478\u624b\u52bf\u7684javascript\u5e93","url":"http://hammerjs.github.io","urls":{"-3":"https://github.com/hammerjs/hammer.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":197}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fd\u9645\u5316\u591a\u8bed\u8a00\u65b9\u6848","nav":[{"icon":"https://avatars1.githubusercontent.com/u/8546082?s=200&v=4","name":"i18next","desc":"i18next\u662f\u4e00\u4e2a\u975e\u5e38\u6d41\u884c\u7684\u56fd\u9645\u5316\u6846\u67b6\uff0c\u9002\u7528\u4e8e\u6d4f\u89c8\u5668\u6216\u4efb\u4f55\u5176\u4ed6JavaScript\u73af\u5883\uff08\u4f8b\u5982\uff0cnode.js\uff09\u3002","url":"http://i18next.com/","urls":{"-3":"https://github.com/i18next/i18next"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fd\u9645\u5316\u591a\u8bed\u8a00\u65b9\u6848"],"ownVisible":false,"id":198},{"icon":"https://avatars3.githubusercontent.com/u/11225539?s=200&v=4","name":"js-lingui","desc":"JavaScript\u7684\u53ef\u8bfb\uff0c\u81ea\u52a8\u5316\u548c\u4f18\u5316\uff085 kb\uff09\u56fd\u9645\u5316","url":"https://lingui.js.org/","urls":{"-3":"https://github.com/lingui/js-lingui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fd\u9645\u5316\u591a\u8bed\u8a00\u65b9\u6848"],"ownVisible":false,"id":199}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u52a8\u753b","nav":[{"name":"wow.js","desc":"\u57fa\u4e8eAnimate.css,\u5411\u4e0b\u6eda\u52a8\u9875\u9762\u65f6\u663e\u793aCSS\u52a8\u753b,\u8f7b\u677e\u81ea\u5b9a\u4e49\u52a8\u753b\u8bbe\u7f6e\uff1a\u6837\u5f0f\uff0c\u5ef6\u8fdf\uff0c\u957f\u5ea6\uff0c\u504f\u79fb\uff0c\u8fed\u4ee3...","url":"http://mynameismatthieu.com/WOW/","urls":{"-3":"https://github.com/matthieua/WOW"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":200},{"name":"Waves","desc":"\u53d7Google\u6750\u8d28\u8bbe\u8ba1\u542f\u53d1\u7684\u70b9\u51fb\u6548\u679c, \u6ce2\u7eb9\u6548\u679c","url":"http://fian.my.id/Waves/#examples","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":201},{"name":"velocity","desc":"\u52a0\u901fJavaScript\u52a8\u753b","url":"http://velocityjs.org/","urls":{"-3":"https://github.com/julianshapiro/velocity"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":202},{"name":"anime","desc":"\u8f7b\u91cf\u7ea7\u7684JavaScript\u52a8\u753b\u5e93\u3002\u5b83\u9002\u7528\u4e8e\u4efb\u4f55CSS\u5c5e\u6027\uff0c\u5355\u4e2aCSS\u8f6c\u6362\uff0cSVG\u6216\u4efb\u4f55DOM\u5c5e\u6027\u4ee5\u53caJavaScript\u5bf9\u8c61","url":"http://animejs.com/","urls":{"-3":"https://github.com/juliangarnier/anime"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":203},{"name":"Hover-Buttons","desc":"hover\u52a8\u753bCSS / SCSS\u6309\u94ae","url":"https://varin6.github.io/Hover-Buttons/","urls":{"-3":"https://github.com/Varin6/Hover-Buttons"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":204}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u52a0\u76d0","nav":[{"name":"JavaScript-MD5","desc":"JavaScript MD5\u5b9e\u73b0\u3002\u517c\u5bb9\u670d\u52a1\u5668\u7aef\u73af\u5883\uff0c\u5982node.js\uff0cRequireJS\u7b49\u6a21\u5757\u52a0\u8f7d\u5668\u548c\u6240\u6709Web\u6d4f\u89c8\u5668","url":"https://blueimp.github.io/JavaScript-MD5/","urls":{"-3":"https://github.com/blueimp/JavaScript-MD5"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":205},{"name":"js-sha1","desc":"JavaScript\u7684\u7b80\u5355SHA1\u54c8\u5e0c\u51fd\u6570\u652f\u6301UTF-8\u7f16\u7801\u3002","url":"https://github.com/emn178/js-sha1","urls":{"-3":"https://github.com/emn178/js-sha1"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":206},{"name":"js-base64","desc":"JavaScript\u7684Base64\u5b9e\u73b0","url":"https://github.com/dankogai/js-base64","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":207},{"name":"jsSHA","desc":"SHA-1\uff0cSHA-224\uff0cSHA3-224\uff0cSHA-256\uff0cSHA3-256\uff0cSHA-384\uff0cSHA3-384\uff0cSHA-512\uff0cSHA3-512\uff0cSHAKE128 \uff0c\u548cSHAKE256\u4ee5\u53caHMAC","url":"https://caligatio.github.io/jsSHA/","urls":{"-3":"https://github.com/Caligatio/jsSHA"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":208},{"name":"crypto-js","desc":"\u52a0\u5bc6\u6807\u51c6\u7684JavaScript\u5e93","url":"https://cryptojs.gitbook.io","urls":{"-3":"https://github.com/brix/crypto-js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":209}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173","nav":[{"name":"pdf.js","desc":"PDF.js\u662f\u4e00\u4e2a\u4f7f\u7528HTML5\u6784\u5efa\u7684\u53ef\u79fb\u690d\u6587\u6863\u683c\u5f0f\uff08PDF\uff09\u67e5\u770b\u5668","url":"https://mozilla.github.io/pdf.js/web/viewer.html","urls":{"-3":"https://github.com/mozilla/pdf.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":210},{"name":"webuploader","desc":"\u767e\u5ea6\u51fa\u54c1\uff0c\u91c7\u7528\u5927\u6587\u4ef6\u5206\u7247\u5e76\u53d1\u4e0a\u4f20\uff0c\u6781\u5927\u7684\u63d0\u9ad8\u4e86\u6587\u4ef6\u4e0a\u4f20\u6548\u7387\u3002","url":"http://fex.baidu.com/webuploader/","urls":{"-3":"https://github.com/fex-team/webuploader"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":211},{"name":"pdfmake","desc":"\u7eafJavaScript\u4e2d\u7684\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u7aefPDF\u6253\u5370, HTML\u8f6c\u6362Pdf","url":"http://pdfmake.org/","urls":{"-3":"https://github.com/bpampuch/pdfmake"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":212},{"name":"ViewerJS","desc":"JavaScript\u4e2d\u7684\u6587\u6863\u9605\u8bfb\u5668, pdf/ppt/opt/odt\u7b49\u6587\u4ef6\u6e32\u67d3\u6210HTML","url":"https://viewerjs.org/","urls":{"-3":"https://github.com/kogmbh/ViewerJS"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":213},{"name":"filepond","desc":"\u7075\u6d3b\u800c\u6709\u8da3\u7684JavaScript\u6587\u4ef6\u4e0a\u4f20\u5e93","url":"https://pqina.nl/filepond/","urls":{"-3":"https://github.com/pqina/filepond"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":214},{"name":"FileSaver.js","desc":"\u5ba2\u6237\u7aef\u4fdd\u5b58\u6587\u4ef6\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u975e\u5e38\u9002\u5408\u5728\u5ba2\u6237\u7aef\u4e0a\u751f\u6210\u6587\u4ef6\u7684Web\u5e94\u7528\u7a0b\u5e8f","url":"https://github.com/eligrey/FileSaver.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":215},{"name":"jsPDF","desc":"\u4e00\u4e2a\u4f7f\u7528JavaScript\u751f\u6210PDF\u7684\u5e93","url":"https://parall.ax/products/jspdf","urls":{"-3":"https://github.com/MrRio/jsPDF"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":216}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u7247\u9884\u89c8","nav":[{"name":"PhotoSwipe","desc":"\u9002\u7528\u4e8e\u79fb\u52a8\u548c\u684c\u9762\u7684JavaScript\u56fe\u50cf\u5e93, \u56fe\u7247\u9884\u89c8","url":"http://photoswipe.com/","urls":{"-3":"https://github.com/dimsemenov/PhotoSwipe"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u7247\u9884\u89c8"],"ownVisible":false,"id":217},{"name":"viewerjs","desc":"javascript\u56fe\u7247\u9884\u89c8","url":"https://fengyuanchen.github.io/viewerjs/","urls":{"-3":"https://github.com/fengyuanchen/viewerjs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u7247\u9884\u89c8"],"ownVisible":false,"id":218}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u97f3\u9891/\u89c6\u9891","nav":[{"icon":"https://howlerjs.com/assets/images/favicon.ico","name":"howler.js","desc":"\u73b0\u4ee3 Web \u97f3\u9891 javascript \u5e93","url":"https://howlerjs.com/","urls":{"-3":"https://github.com/goldfire/howler.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u97f3\u9891/\u89c6\u9891"],"ownVisible":false,"id":219},{"name":"DPlayer","desc":"\u54c7\uff0c\u8fd9\u4e48\u53ef\u7231\u7684HTML5 danmaku\u89c6\u9891\u64ad\u653e\u5668","url":"http://dplayer.js.org/#/zh-Hans/","urls":{"-2":"http://dplayer.js.org/#/home","-1":"http://dplayer.js.org/#/zh-Hans/","-3":"https://github.com/MoePlayer/DPlayer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u97f3\u9891/\u89c6\u9891"],"ownVisible":false,"id":220},{"name":"APlayer","desc":"\u54c7\uff0c\u8fd9\u4e48\u53ef\u7231\u7684HTML5\u97f3\u4e50\u64ad\u653e\u5668","url":"https://aplayer.js.org/#/zh-Hans/","urls":{"-2":"http://aplayer.js.org/","-1":"https://aplayer.js.org/#/zh-Hans/","-3":"https://github.com/MoePlayer/APlayer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u97f3\u9891/\u89c6\u9891"],"ownVisible":false,"id":221}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u5f62","nav":[{"icon":"https://threejs.org/files/favicon.ico","name":"three.js","desc":"JavaScript 3D\u5f15\u64ce","url":"https://threejs.org/","urls":{"-2":"https://threejs.org/","-1":"http://techbrood.com/threejs/docs","-3":"https://github.com/mrdoob/three.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u5f62"],"ownVisible":false,"id":222},{"name":"flowy","desc":"\u521b\u5efa\u6d41\u7a0b\u56fe\u7684\u6700\u5c0fJavaScript\u5e93","url":"https://github.com/alyssaxuu/flowy","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u5f62"],"ownVisible":false,"id":223},{"icon":"https://echarts.apache.org/examples/images/favicon.png","name":"incubator-echarts","desc":"\u6d4f\u89c8\u5668\u7684\u529f\u80fd\u5f3a\u5927\u7684\u4ea4\u4e92\u5f0f\u56fe\u8868\u548c\u53ef\u89c6\u5316\u5e93","url":"http://echarts.apache.org/","urls":{"-3":"https://github.com/apache/incubator-echarts"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u5f62"],"ownVisible":false,"id":224},{"icon":"https://avatars1.githubusercontent.com/u/1562726?s=200&v=4","name":"d3","desc":"\u501f\u52a9SVG\uff0cCanvas\u548cHTML\u4f7f\u6570\u636e\u6829\u6829\u5982\u751f\u3002","url":"https://github.com/d3/d3","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u5f62"],"ownVisible":false,"id":225}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"UI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://getuikit.com/images/favicon.png","name":"uikit","desc":"\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u3001\u6a21\u5757\u5316\u7684\u524d\u7aef\u6846\u67b6\u53ef\u5feb\u901f\u6784\u5efa\u5f3a\u5927\u7684web\u524d\u7aef\u754c\u9762","url":"http://www.getuikit.net/","urls":{"-2":"https://getuikit.com/docs/installation","-1":"http://www.getuikit.net/","-3":"https://github.com/uikit/uikit"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","UI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":226}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u539f\u751fAPP\u4ea4\u4e92webview\u6865\u63a5","nav":[{"name":"JsBridge","desc":"android java\u548cjavascript\u6865\u63a5\uff0c\u7075\u611f\u6765\u81ea\u5fae\u4fe1webview jsbridge","url":"https://github.com/lzyzsd/JsBridge","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u539f\u751fAPP\u4ea4\u4e92webview\u6865\u63a5"],"ownVisible":false,"id":227},{"name":"DSBridge-Android","desc":"\u4e00\u4e2a\u73b0\u4ee3\u7684\u8de8\u5e73\u53f0JavaScript\u6865\u63a5\uff0c\u901a\u8fc7\u5b83\u60a8\u53ef\u4ee5\u5728JavaScript\u548c\u672c\u673a\u4e4b\u95f4\u540c\u6b65\u6216\u5f02\u6b65\u5730\u8c03\u7528\u5f7c\u6b64\u7684\u529f\u80fd","url":"https://github.com/wendux/DSBridge-Android","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u539f\u751fAPP\u4ea4\u4e92webview\u6865\u63a5"],"ownVisible":false,"id":228}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u6570\u9a8c\u8bc1","nav":[{"name":"joi","desc":"\u5bf9\u8c61\u6a21\u5f0f\u9a8c\u8bc1","url":"https://github.com/hapijs/joi","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":229},{"name":"validator.js","desc":"\u5b57\u7b26\u4e32\u9a8c\u8bc1\u63d2\u4ef6\u3001\u8868\u5355\u9a8c\u8bc1","url":"https://github.com/chriso/validator.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":230},{"name":"async-validator","desc":"\u5f02\u6b65\u9a8c\u8bc1\u5668","url":"https://github.com/yiminghe/async-validator","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":231},{"name":"yup","desc":"\u65e0\u6548\u7684\u7b80\u5355\u5bf9\u8c61\u67b6\u6784\u9a8c\u8bc1","url":"https://runkit.com/jquense/yup","urls":{"-3":"https://github.com/jquense/yup#using-a-custom-locale-dictionary"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":232}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"icon":"https://avatars2.githubusercontent.com/u/18673496?s=200&v=4","name":"localForage","desc":"\u79bb\u7ebf\u5b58\u50a8\uff0c\u4f7f\u7528\u7b80\u5355\u4f46\u529f\u80fd\u5f3a\u5927\u7684API\u5305\u88c5IndexedDB\uff0cWebSQL\u6216localStorage\u3002","url":"https://github.com/localForage/localForage","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6570\u636e\u5e93"],"ownVisible":false,"id":233}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u6b65\u9aa4\u5f15\u5bfc","nav":[{"icon":"https://avatars2.githubusercontent.com/u/2010360?s=200&v=4","name":"introjs","desc":"\u4e3a\u60a8\u7684\u7f51\u7ad9\u548c\u9879\u76ee\u63d0\u4f9b\u65b0\u529f\u80fd\u4ecb\u7ecd\u548c\u9010\u6b65\u7528\u6237\u6307\u5357\u7684\u66f4\u597d\u65b9\u6cd5","url":"https://introjs.com/","urls":{"-3":"https://github.com/usablica/intro.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6b65\u9aa4\u5f15\u5bfc"],"ownVisible":false,"id":234},{"icon":"https://avatars3.githubusercontent.com/u/17297725?s=200&v=4","name":"shepherd","desc":"\u5f15\u5bfc\u60a8\u7684\u7528\u6237\u6d4f\u89c8\u60a8\u7684\u5e94\u7528\u7a0b\u5e8f","url":"https://shepherdjs.dev/","urls":{"-3":"https://github.com/shipshapecode/shepherd"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6b65\u9aa4\u5f15\u5bfc"],"ownVisible":false,"id":235},{"name":"bootstrap-tour","desc":"\u4f7f\u7528Twitter Bootstrap Popovers\u5feb\u901f\u65b9\u4fbf\u5730\u8fdb\u884c\u4ea7\u54c1\u6d4f\u89c8","url":"http://bootstraptour.com/","urls":{"-3":"https://github.com/sorich87/bootstrap-tour"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6b65\u9aa4\u5f15\u5bfc"],"ownVisible":false,"id":236}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"React","icon":"https://reactjs.org/favicon.ico","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","nav":[{"name":"React","desc":"\u7528\u4e8e\u6784\u5efa\u7528\u6237\u754c\u9762\u7684 JavaScript \u5e93","url":"https://zh-hans.reactjs.org/","urls":{"-2":"https://reactjs.org/","-1":"https://zh-hans.reactjs.org/","-3":"https://github.com/facebook/react/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":237},{"name":"React Router","desc":"React \u8def\u7531\u7ba1\u7406","url":"https://react-router.docschina.org/","urls":{"-2":"https://reacttraining.com/react-router/","-1":"https://react-router.docschina.org/","-3":"https://github.com/ReactTraining/react-router"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":238},{"icon":"https://avatars2.githubusercontent.com/u/13142323?s=200&v=4","name":"Redux","desc":"React \u72b6\u6001\u7ba1\u7406","url":"http://www.redux.org.cn/docs/react-redux/api.html","urls":{"-2":"https://redux.js.org/basics/usagewithreact","-1":"http://www.redux.org.cn/docs/react-redux/api.html","-3":"https://github.com/reduxjs/redux"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":239},{"name":"create-react-app","desc":"React\u5b98\u65b9\u811a\u624b\u67b6","url":"https://www.html.cn/create-react-app/","urls":{"-2":"https://facebook.github.io/create-react-app/","-1":"https://www.html.cn/create-react-app/","-3":"https://github.com/facebook/create-react-app"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":240}],"createdAt":"2021-01-23 09:32:06"},{"title":"Redux\u76f8\u5173","nav":[{"name":"React Redux","desc":"Redux\u7684\u5b98\u65b9React\u7ed1\u5b9a(\u901a\u5e38\u914d\u5408redux\u4f7f\u7528)","url":"https://react-redux.js.org/","urls":{"-3":"https://github.com/reduxjs/react-redux"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","Redux\u76f8\u5173"],"ownVisible":false,"id":241},{"name":"redux-actions","desc":"Redux\u7684Flux\u6807\u51c6action\u5b9e\u7528\u7a0b\u5e8f(\u7528\u4e8e\u751f\u6210action)","url":"https://redux-actions.js.org/","urls":{"-3":"https://github.com/redux-utilities/redux-actions"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","Redux\u76f8\u5173"],"ownVisible":false,"id":242},{"name":"redux-thunk","desc":"Redux\u7684Thunk\u4e2d\u95f4\u4ef6, \u7528\u4e8e\u5904\u7406\u5f02\u6b65\u903b\u8f91","url":"https://github.com/reduxjs/redux-thunk","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","Redux\u76f8\u5173"],"ownVisible":false,"id":243},{"icon":"https://avatars2.githubusercontent.com/u/24776643?s=200&v=4","name":"redux-saga","desc":"\u4e00\u4e2a\u65e8\u5728\u4f7f\u5e94\u7528\u7a0b\u5e8f\u526f\u4f5c\u7528\uff08\u5373\u5f02\u6b65\u4e8b\u7269\uff0c\u5982\u6570\u636e\u83b7\u53d6\u548c\u4e0d\u7eaf\u7684\u4e1c\u897f\uff0c\u5982\u8bbf\u95ee\u6d4f\u89c8\u5668\u7f13\u5b58\uff09\u66f4\u5bb9\u6613\u7ba1\u7406\uff0c\u6267\u884c\u66f4\u9ad8\u6548\uff0c\u6613\u4e8e\u6d4b\u8bd5\uff0c\u4ee5\u53ca\u66f4\u597d\u5730\u5904\u7406\u6545\u969c\u7684\u5e93","url":"https://redux-saga.js.org/","urls":{"-3":"https://github.com/redux-saga/redux-saga"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","Redux\u76f8\u5173"],"ownVisible":false,"id":244}],"createdAt":"2021-01-23 09:32:06"},{"title":"React Native\u76f8\u5173","nav":[{"name":"React Native","desc":"\u4f7f\u7528React\u6784\u5efa\u539f\u751fAPP\u7a0b\u5e8f\u7684\u6846\u67b6","url":"https://reactnative.cn/docs/0.51/tutorial.html","urls":{"-2":"https://facebook.github.io/react-native/docs/getting-started.html","-1":"https://reactnative.cn/docs/0.51/tutorial.html","-3":"https://github.com/facebook/react-native"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","React Native\u76f8\u5173"],"ownVisible":false,"id":245},{"icon":"https://avatars0.githubusercontent.com/u/29647600?s=200&v=4","name":"React Navigation","desc":"\u4e3a\u60a8\u7684\u672c\u5730\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u8def\u7531\u548c\u5bfc\u822a","url":"https://reactnavigation.org/zh-Hans/","urls":{"-2":"https://reactnavigation.org/en/","-1":"https://reactnavigation.org/zh-Hans/","-3":"https://github.com/react-navigation/react-navigation"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","React Native\u76f8\u5173"],"ownVisible":false,"id":246},{"icon":"https://avatars0.githubusercontent.com/u/12504344?s=200&v=4","name":"expo","desc":"\u7528\u4e8e\u5236\u4f5c\u8de8\u5e73\u53f0\u79fb\u52a8\u5e94\u7528\u7a0b\u5e8f\u7684Expo\u5e73\u53f0","url":"https://docs.expo.io","urls":{"-3":"https://github.com/expo/expo"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","React Native\u76f8\u5173"],"ownVisible":false,"id":247},{"icon":"https://avatars1.githubusercontent.com/u/12101536?s=200&v=4","name":"ant-design-mobile-rn","desc":"\u4e00\u4e2a\u57fa\u4e8e React Native \u7684 UI \u7ec4\u4ef6\u5e93","url":"https://rn.mobile.ant.design/index-cn","urls":{"-2":"https://rn.mobile.ant.design/","-1":"https://rn.mobile.ant.design/index-cn","-3":"https://github.com/ant-design/ant-design-mobile-rn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","React Native\u76f8\u5173"],"ownVisible":false,"id":248}],"createdAt":"2021-01-23 09:32:06"},{"title":"PC\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars1.githubusercontent.com/u/12101536?s=200&v=4","name":"Ant Design","desc":"Ant Design - A UI Design Language","url":"https://ant.design/docs/react/introduce-cn","urls":{"-2":"https://ant.design/docs/react/introduce","-1":"https://ant.design/docs/react/introduce-cn","-3":"https://github.com/ant-design/ant-design"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":249},{"icon":"https://material-ui.com/static/favicon.ico","name":"MATERIAL-UI","desc":"React \u7ec4\u4ef6\u7528\u4e8e\u66f4\u5feb\u901f\u3001\u66f4\u7b80\u4fbf\u7684 web \u5f00\u53d1\u3002\u4f60\u4e5f\u53ef\u4ee5\u5efa\u7acb\u4f60\u81ea\u5df1\u7684\u8bbe\u8ba1\u7cfb\u7edf\uff0c\u6216\u8005\u4ece Material Design \u5f00\u59cb","url":"https://material-ui.com/zh/","urls":{"-2":"https://material-ui.com/","-1":"https://material-ui.com/zh/","-3":"https://github.com/mui-org/material-ui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":250},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"element","desc":"elementUI\u7ec4\u4ef6\u5e93","url":"https://elemefe.github.io/element-react/#/zh-CN/quick-start","urls":{"-2":"https://elemefe.github.io/element-react/#/en-US/quick-start","-1":"https://elemefe.github.io/element-react/#/zh-CN/quick-start","-3":"https://github.com/ElemeFE/element-react"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":251},{"icon":"https://avatars0.githubusercontent.com/u/6853419?s=200&v=4","name":"react-bootstrap","desc":"\u57fa\u4e8eBootstrap 3\u6784\u5efa\u7684\u7ec4\u4ef6\u5e93","url":"https://react-bootstrap.github.io/getting-started/introduction","urls":{"-3":"https://github.com/react-bootstrap/react-bootstrap"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":252},{"name":"evergreen","desc":"Evergreen\u662f\u4e00\u4e2aReact UI\u6846\u67b6\uff0c\u7528\u4e8e\u5728Web\u4e0a\u6784\u5efa\u96c4\u5fc3\u52c3\u52c3\u7684\u4ea7\u54c1\u3002\u7531Segment\u5e26\u7ed9\u60a8\u3002","url":"https://evergreen.segment.com/","urls":{"-3":"https://github.com/segmentio/evergreen"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":253},{"name":"@alifd/next","desc":"@alifd/next \u662f Alibaba Fusion Design \u7684\u5b98\u65b9 React \u5b9e\u73b0, \u8d4b\u80fd\u4f01\u4e1a\u4e2d\u540e\u53f0\u4ea7\u54c1\u5f00\u53d1","url":"https://fusion.design/component/doc/102","urls":{"-3":"https://github.com/alibaba-fusion/next"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":254},{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"zent","desc":"Zent \u662f\u6709\u8d5e PC \u7aef WebUI \u89c4\u8303\u7684 React \u5b9e\u73b0\uff0c\u63d0\u4f9b\u4e86\u4e00\u6574\u5957\u57fa\u7840\u7684 UI \u7ec4\u4ef6\u4ee5\u53ca\u4e00\u4e9b\u5e38\u7528\u7684\u4e1a\u52a1\u7ec4\u4ef6","url":"https://youzan.github.io/zent/zh/guides/install","urls":{"-3":"https://github.com/youzan/zent"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":255},{"name":"React95","desc":"\u88c5\u4fee\u4e00\u65b0\u7684\u73b0\u4ee3\u7684\u5e94\u7528\u7a0b\u5e8f\u505a\u51faReact Windows95\u7684UI\u7ec4\u4ef6\u3002","url":"https://arturbien.github.io/React95","urls":{"-3":"https://github.com/arturbien/React95"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":256},{"icon":"https://avatars1.githubusercontent.com/u/19635045?s=200&v=4","name":"rsuite","desc":"React Suite \u662f\u4e00\u5957 React \u7ec4\u4ef6\u5e93\uff0c\u4e3a\u540e\u53f0\u4ea7\u54c1\u800c\u751f\u3002\u540c\u65f6\u4e5f\u662f\u4e00\u4e2a\u5177\u6709\u8d34\u5fc3\u8bbe\u8ba1\u4ee5\u53ca\u5bf9\u5f00\u53d1\u8005\u53cb\u597d\u7684 UI \u6846\u67b6","url":"https://rsuitejs.com","urls":{"-3":"https://github.com/rsuite/rsuite"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":257},{"icon":"https://avatars2.githubusercontent.com/u/54212428?s=200&v=4","name":"chakra-ui","desc":"\u9002\u7528\u4e8e\u60a8\u7684React\u5e94\u7528\u7a0b\u5e8f\u7684\u7b80\u5355\uff0c\u6a21\u5757\u5316\u548c\u53ef\u8bbf\u95ee\u7684UI\u7ec4\u4ef6","url":"https://chakra-ui.com/","urls":{"-3":"https://github.com/chakra-ui/chakra-ui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":258}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars1.githubusercontent.com/u/12101536?s=200&v=4","name":"Ant Design Mobile","desc":"\u4e00\u4e2a\u57fa\u4e8e Preact / React / React Native \u7684 UI \u7ec4\u4ef6\u5e93","url":"https://mobile.ant.design/index-cn","urls":{"-2":"https://mobile.ant.design/","-1":"https://mobile.ant.design/index-cn","-3":"https://github.com/ant-design/ant-design-mobile/stargazers/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":259}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6\u7ec4\u4ef6\u5e93","nav":[{"name":"React Helmet","desc":"\u8fd9\u4e2a\u53ef\u91cd\u7528\u7684\u53cd\u5e94\u7ec4\u4ef6\u5c06\u7ba1\u7406\u5bf9\u6587\u6863\u5934\u7684\u6240\u6709\u66f4\u6539","url":"https://github.com/nfl/react-helmet","urls":{"-3":"https://github.com/nfl/react-helmet"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":260},{"name":"react-image-crop","desc":"\u7528\u4e8eReact\u7684\u54cd\u5e94\u5f0f\u56fe\u50cf\u88c1\u526a\u5de5\u5177","url":"https://github.com/DominicTobias/react-image-crop","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":261},{"name":"React Helmet","desc":"\u8fd9\u4e2a\u53ef\u91cd\u7528\u7684\u53cd\u5e94\u7ec4\u4ef6\u5c06\u7ba1\u7406\u5bf9\u6587\u6863\u5934\u7684\u6240\u6709\u66f4\u6539","url":"https://github.com/nfl/react-helmet","urls":{"-3":"https://github.com/nfl/react-helmet"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":262},{"name":"react-transition-group","desc":"\u5f53React\u7ec4\u4ef6\u8fdb\u5165\u6216\u79bb\u5f00DOM\u65f6\u6267\u884c\u52a8\u753b\u7684\u7b80\u5355\u65b9\u6cd5","url":"https://reactcommunity.org/react-transition-group/","urls":{"-2":"https://reactcommunity.org/react-transition-group/","-3":"https://github.com/reactjs/react-transition-group"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":263},{"name":"React Loadable","desc":"\u7528\u4e8e\u52a0\u8f7d\u5177\u6709promise\u7684\u7ec4\u4ef6\u7684\u66f4\u9ad8\u9636\u7ec4\u4ef6 - \u8def\u7531\u61d2\u52a0\u8f7d","url":"https://github.com/jamiebuilds/react-loadable","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":264},{"name":"react-swipe","desc":"\u57fa\u4e8eswipe.js\u5c01\u88c5\u7684react\u7ec4\u4ef6/\u8d70\u9a6c\u706f","url":"https://github.com/voronianski/react-swipe","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":265},{"name":"Ant Motion","desc":"\u4f7f\u7528 Ant Motion \u80fd\u591f\u5feb\u901f\u5728 React \u6846\u67b6\u4e2d\u4f7f\u7528\u52a8\u753b,\u6211\u4eec\u63d0\u4f9b\u4e86\u5355\u9879\uff0c\u7ec4\u5408\u52a8\u753b\uff0c\u4ee5\u53ca\u6574\u5957\u89e3\u51b3\u65b9\u6848","url":"https://motion.ant.design/","urls":{"-3":"https://github.com/ant-design/ant-motion/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":266},{"desc":"\u7f51\u7edc\u89c6\u9891\u64ad\u653e\u5668\u4f7f\u7528React\u5e93\u4ece\u5934\u5f00\u59cb\u6784\u5efaHTML5\u4e16\u754c","name":"video-react","url":"https://video-react.js.org/","urls":{"-3":"https://github.com/video-react/video-react"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":267},{"name":"react-keeper","desc":"\u4e00\u4e2areact\u8def\u7531\u5e93\uff0c\u66f4\u9002\u5408\u79fb\u52a8\u7aef\u4f7f\u7528\uff0c\u62e5\u6709\u7f13\u5b58\u7b49\u529f\u80fd","url":"https://github.com/vifird/react-keeper","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":268},{"name":"Fusion Design","desc":"\u57fa\u4e8eReact\u6784\u5efa\u7684Web\u53ef\u914d\u7f6e\u7ec4\u4ef6\u5e93","url":"https://fusion.design","urls":{"-3":"https://github.com/alibaba-fusion/next"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":269},{"icon":"https://avatars0.githubusercontent.com/u/13690587?s=200&v=4","name":"recharts","desc":"\u57fa\u4e8e React\u548cD3 \u7684\u7ec4\u5408\u5f0f\u56fe\u8868\u5e93","url":"http://recharts.org/zh-CN/","urls":{"-3":"https://github.com/recharts/recharts"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":270},{"name":"react-json-view","desc":"JSON\u67e5\u770b\u5668","url":"https://mac-s-g.github.io/react-json-view/demo/dist/","urls":{"-3":"https://github.com/mac-s-g/react-json-view"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":271},{"name":"BizCharts","desc":"\u57fa\u4e8eG2\u548cReact\u7684\u5f3a\u5927\u6570\u636e\u53ef\u89c6\u5316\u5e93","url":"https://bizcharts.net/products/bizCharts","urls":{"-3":"https://github.com/alibaba/BizCharts"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":272},{"name":"react-draggable","desc":"\u4e00\u4e2a\u7b80\u5355\u7684\u7ec4\u4ef6\uff0c\u7528\u4e8e\u4f7f\u5143\u7d20\u53ef\u62d6\u52a8","url":"https://github.com/mzabriskie/react-draggable","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":273},{"name":"react-slick","desc":"react\u8d70\u9a6c\u706f\u7ec4\u4ef6","url":"https://react-slick.neostack.com/","urls":{"-3":"https://github.com/akiran/react-slick"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":274},{"name":"react-color","desc":"react \u62fe\u8272\u5668","url":"http://casesandberg.github.io/react-color/","urls":{"-3":"https://github.com/casesandberg/react-color"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":275},{"icon":"https://avatars1.githubusercontent.com/u/50559490?s=200&v=4","name":"react-intl","desc":"\u56fd\u9645\u5316React\u5e94\u7528\u7a0b\u5e8f\u3002\u8fd9\u4e2a\u5e93\u63d0\u4f9b\u4e86React\u7ec4\u4ef6\u548c\u4e00\u4e2aAPI\uff0c\u7528\u4e8e\u683c\u5f0f\u5316\u65e5\u671f\uff0c\u6570\u5b57\u548c\u5b57\u7b26\u4e32\uff0c\u5305\u62ec\u590d\u6570\u5f62\u5f0f\u548c\u5904\u7406\u7ffb\u8bd1","url":"https://github.com/formatjs/react-intl","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":276},{"icon":"https://avatars3.githubusercontent.com/u/1763971?s=200&v=4","name":"react-data-grid","desc":"\u4f7f\u7528React\u6784\u5efa\u7684\u7c7b\u4f3c\u4e8eExcel\u7684\u7f51\u683c\u7ec4\u4ef6\uff0c\u5177\u6709\u7f16\u8f91\u5668\uff0c\u952e\u76d8\u5bfc\u822a\uff0c\u590d\u5236\u548c\u7c98\u8d34\u7b49\u529f\u80fd","url":"http://adazzle.github.io/react-data-grid/","urls":{"-3":"https://github.com/adazzle/react-data-grid"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":277},{"icon":"https://cloud.githubusercontent.com/assets/29597/11736841/c0497158-9f87-11e5-8dfe-9c0be97d4286.png","name":"react-virtualized","desc":"React\u7ec4\u4ef6\u53ef\u6709\u6548\u5448\u73b0\u5927\u578b\u5217\u8868\u548c\u8868\u683c\u6570\u636e","url":"http://www.reactvirtualized.com","urls":{"-3":"https://github.com/bvaughn/react-virtualized"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":278},{"icon":"https://avatars3.githubusercontent.com/u/5078602?s=200&v=4","name":"react-live","desc":"\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u7f16\u8f91React\u7ec4\u4ef6\u7684\u7075\u6d3b\u7ec4\u4ef6\u5e93","url":"https://react-live.netlify.com/","urls":{"-3":"https://github.com/FormidableLabs/react-live"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":279},{"icon":"https://jaredpalmer.com/formik/img/favicon.png","name":"formik","desc":"\u5728React\u4e2d\u8f7b\u677e\u521b\u5efa\u8868\u5355","url":"https://jaredpalmer.com/formik/docs/overview","urls":{"-3":"https://github.com/jaredpalmer/formik"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":280}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u62d6\u62fd\u7ec4\u4ef6","nav":[{"name":"react-move","icon":"https://github.com/favicon.ico","url":"https://github.com/daybrush/moveable/tree/master/packages/react-moveable","desc":"\u4e00\u4e2aReact\u7ec4\u4ef6\uff0c\u5b83\u521b\u5efa\u53ef\u79fb\u52a8\uff0c\u53ef\u62d6\u52a8\uff0c\u53ef\u8c03\u6574\u5927\u5c0f\uff0c\u53ef\u7f29\u653e\uff0c\u53ef\u65cb\u8f6c\uff0c\u53ef\u626d\u66f2\uff0c\u53ef\u6536\u7f29\uff0c\u53ef\u5206\u7ec4\uff0c\u53ef\u6355\u6349\u3002","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u62d6\u62fd\u7ec4\u4ef6"],"ownVisible":false,"id":281},{"icon":"https://avatars2.githubusercontent.com/u/25307599?s=200&v=4","name":"react-dnd","desc":"React DnD\u662f\u4e00\u7ec4React\u5b9e\u7528\u7a0b\u5e8f\uff0c\u53ef\u5e2e\u52a9\u60a8\u6784\u5efa\u590d\u6742\u7684\u62d6\u653e\u63a5\u53e3\uff0c\u540c\u65f6\u4fdd\u6301\u7ec4\u4ef6\u5206\u79bb","url":"https://react-dnd.github.io/react-dnd/about","urls":{"-3":"https://github.com/react-dnd/react-dnd"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u62d6\u62fd\u7ec4\u4ef6"],"ownVisible":false,"id":282},{"name":"react-beautiful-dnd","desc":"\u6f02\u4eae\u7684\u548c\u53ef\u8bbf\u95ee\u7684\u62d6\u653e\u5217\u8868","url":"https://github.com/atlassian/react-beautiful-dnd","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u62d6\u62fd\u7ec4\u4ef6"],"ownVisible":false,"id":283},{"name":"react-rnd","desc":"\u4e00\u4e2a\u53ef\u8c03\u6574\u5927\u5c0f\u4e14\u53ef\u62d6\u52a8\u7684React\u7ec4\u4ef6\u3002","url":"https://bokuweb.github.io/react-rnd/stories","urls":{"-3":"https://github.com/bokuweb/react-rnd"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u62d6\u62fd\u7ec4\u4ef6"],"ownVisible":false,"id":284}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5f00\u7bb1\u5373\u7528","nav":[{"icon":"https://avatars1.githubusercontent.com/u/12101536?s=200&v=4","name":"ANT DESIGN PRO","desc":"\u5f00\u7bb1\u5373\u7528\u7684\u4e2d\u53f0\u524d\u7aef/\u8bbe\u8ba1\u89e3\u51b3\u65b9\u6848","url":"https://pro.ant.design/","urls":{"-1":"https://pro.ant.design/","-3":"https://github.com/ant-design/ant-design-pro/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5f00\u7bb1\u5373\u7528"],"ownVisible":false,"id":285}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5355\u5143\u6d4b\u8bd5","nav":[{"name":"enzyme","desc":"\u9002\u7528\u4e8eReact\u7684JavaScript\u6d4b\u8bd5\u5b9e\u7528\u7a0b\u5e8f","url":"https://enzymejs.github.io/enzyme/","urls":{"-3":"https://github.com/enzymejs/enzyme"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":286},{"name":"Jest","desc":"Jest\u662f\u4e00\u4e2a\u4ee4\u4eba\u6109\u5feb\u7684JavaScript\u6d4b\u8bd5\u6846\u67b6\uff0c\u4e13\u6ce8\u4e8e\u7b80\u5355\u6027\u3002","url":"https://jestjs.io/zh-Hans/","urls":{"-3":"https://github.com/facebook/jest"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":287}],"createdAt":"2021-01-23 09:32:06"},{"title":"umi/dva","nav":[{"icon":"https://avatars2.githubusercontent.com/u/33895495?s=200&v=4","name":"umijs","desc":"\u63d2\u4ef6\u5316\u7684\u4f01\u4e1a\u7ea7\u524d\u7aef\u5e94\u7528\u6846\u67b6\u3002","url":"https://umijs.org/zh-CN","urls":{"-2":"https://umijs.org/","-1":"https://umijs.org/zh-CN","-3":"https://github.com/umijs/umi"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","umi/dva"],"ownVisible":false,"id":288},{"icon":"https://avatars1.githubusercontent.com/u/20552239?s=200&v=4","name":"DvaJS","desc":"\u57fa\u4e8eReact\u548cRedux\u7684\u8f7b\u91cf\u7ea7\u548celm\u98ce\u683c\u6846\u67b6","url":"https://dvajs.com/","urls":{"-3":"https://github.com/dvajs/dva"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","umi/dva"],"ownVisible":false,"id":289},{"icon":"https://avatars2.githubusercontent.com/u/33895495?s=200&v=4","name":"umijs/hooks","desc":"\u4f60\u53ef\u4ee5\u5c06 umi hooks \u4f7f\u7528\u5728\u4efb\u4f55\u5730\u65b9\uff0c\u548c\u4efb\u610f\u7ec4\u4ef6\u5e93\u642d\u914d\u4f7f\u7528\u3002\u867d\u7136\u6211\u4eec\u7684\u4ee3\u7801\u793a\u4f8b\u90fd\u662f\u57fa\u4e8e ant design \u7684\uff0c\u4f46\u662f\u5e76\u4e0d\u4ee3\u8868\u6211\u4eec\u7684 Hooks \u53ea\u80fd\u548c ant design \u914d\u5408\u4f7f\u7528","url":"https://hooks.umijs.org/","urls":{"-1":"https://hooks.umijs.org/","-3":"https://github.com/umijs/hooks"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","umi/dva"],"ownVisible":false,"id":290},{"icon":"https://avatars2.githubusercontent.com/u/33895495?s=200&v=4","name":"umi-plugin-cache-route","desc":"\u8def\u7531\u7f13\u5b58\uff0c\u7c7b\u4f3cvue keep-alive","url":"https://www.npmjs.com/package/umi-plugin-cache-route","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","umi/dva"],"ownVisible":false,"id":291}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u77e5\u8bc6","nav":[{"name":"React.js \u5c0f\u4e66","desc":"\u8fd9\u662f\u4e00\u672c\u5173\u4e8e React.js \u7684\u5c0f\u4e66","url":"http://huziketang.mangojuice.top/books/react/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u77e5\u8bc6"],"ownVisible":false,"id":292},{"name":"TypeScript-React-Starter","desc":"TypeScript\u548cReact\u7684\u5165\u95e8\u6a21\u677f\uff0c\u5e26\u6709\u8be6\u7ec6\u7684README\uff0c\u63cf\u8ff0\u4e86\u5982\u4f55\u5c06\u4e24\u8005\u7ed3\u5408\u4f7f\u7528\u3002","url":"https://github.com/Microsoft/TypeScript-React-Starter","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u77e5\u8bc6"],"ownVisible":false,"id":293},{"name":"react-redux-typescript-guide","desc":"TypeScript\u4e2d\u7684React\u548c Redux - \u4f7f\u7528\u8bf4\u660e","url":"https://piotrwitek.github.io/react-redux-typescript-guide/","urls":{"-3":"https://github.com/piotrwitek/react-redux-typescript-guide"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u77e5\u8bc6"],"ownVisible":false,"id":294}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://avatars1.githubusercontent.com/u/17475736?s=200&v=4","name":"Mobx","desc":"\u7b80\u5355\u3001\u53ef\u6269\u5c55\u7684\u72b6\u6001\u7ba1\u7406","url":"https://cn.mobx.js.org/","urls":{"-2":"https://mobx.js.org/","-1":"https://cn.mobx.js.org/","-3":"https://github.com/mobxjs/mobx"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":295},{"name":"next.js","desc":"\u670d\u52a1\u7aef\u6e32\u67d3\u6846\u67b6\u3001SEO\u89e3\u51b3\u65b9\u6848","url":"https://www.nextjs.cn/","urls":{"-2":"https://nextjs.org/","-1":"https://www.nextjs.cn/","-3":"https://github.com/zeit/next.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":296},{"name":"nwb","desc":"\u9002\u7528\u4e8eWeb\u7684React\uff0cPreact\uff0cInferno\u548cVanilla JS\u5e94\u7528\uff0cReact\u5e93\u548c\u5176\u4ed6npm\u6a21\u5757\u7684\u5de5\u5177\u5305\uff0c\u65e0\u9700\u914d\u7f6e","url":"https://github.com/insin/nwb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":297},{"name":"ahooks","desc":"\u4e3a React Hooks \u800c\u751f","url":"https://ahooks.js.org/zh-CN","urls":{"-3":"https://github.com/alibaba/hooks"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":298},{"name":"react-app-rewired","desc":"\u8986\u76d6create-react-app webpack\u914d\u7f6e\u800c\u4e0d\u5f39\u51fa","url":"https://github.com/timarney/react-app-rewired","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":299}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Vue.js","icon":"https://v3.vuejs.org/images/icons/apple-icon-152x152.png","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","nav":[{"name":"Vue.js","desc":"\u6e10\u8fdb\u5f0fJavaScript \u6846\u67b6","url":"https://cn.vuejs.org/","urls":{"-2":"https://vuejs.org/index.html","-1":"https://cn.vuejs.org/","-3":"https://github.com/vuejs/vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":300},{"name":"Vue Router","desc":"Vue Router \u662f Vue.js \u5b98\u65b9\u7684\u8def\u7531\u7ba1\u7406\u5668","url":"https://router.vuejs.org/zh/","urls":{"-2":"https://router.vuejs.org/","-1":"https://router.vuejs.org/zh/","-3":"https://github.com/vuejs/vue-router"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":301},{"name":"Vuex","desc":"Vuex \u662f\u4e00\u4e2a\u4e13\u4e3a Vue.js \u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u7684\u72b6\u6001\u7ba1\u7406\u6a21\u5f0f\u3002","url":"https://vuex.vuejs.org/zh/","urls":{"-2":"https://vuex.vuejs.org/","-1":"https://vuex.vuejs.org/zh/","-3":"https://github.com/vuejs/vuex"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":302},{"name":"vue-devtools","desc":"vue.js\u8c03\u8bd5\u5de5\u5177","url":"https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd","urls":{"-3":"https://github.com/vuejs/vue-devtools"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":303},{"name":"vue-cli","desc":"Vue.js\u5f00\u53d1\u7684\u6807\u51c6\u811a\u624b\u67b6\u5de5\u5177","url":"https://cli.vuejs.org/zh/","urls":{"-2":"https://cli.vuejs.org/","-1":"https://cli.vuejs.org/zh/","-3":"https://github.com/vuejs/vue-cli"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":304},{"name":"vuepress","desc":"Vue \u9a71\u52a8\u7684\u9759\u6001\u7f51\u7ad9\u751f\u6210\u5668","url":"https://vuepress.vuejs.org/zh/","urls":{"-2":"https://vuepress.vuejs.org/","-1":"https://vuepress.vuejs.org/zh/","-3":"https://github.com/vuejs/vuepress"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":305},{"name":"Vue SSR","desc":"Vue\u670d\u52a1\u7aef\u6e32\u67d3\u3001SEO\u89e3\u51b3\u65b9\u6848","url":"https://vuepress.vuejs.org/zh/","urls":{"-2":"https://ssr.vuejs.org/","-1":"https://ssr.vuejs.org/zh/","-3":"https://github.com/vuejs/vue-ssr-docs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":306},{"name":"vue-class-component","desc":"\u7528\u4e8e\u7c7b\u5f0fVue\u7ec4\u4ef6\u7684ECMAScript / TypeScript\u88c5\u9970\u5668\u3002","url":"https://github.com/vuejs/vue-class-component","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":307},{"name":"eslint-plugin-vue","desc":"Vue.js\u7684\u5b98\u65b9ESLint\u63d2\u4ef6","url":"https://eslint.vuejs.org/","urls":{"-3":"https://github.com/vuejs/eslint-plugin-vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":308},{"name":"vite","desc":"Vite\u662f\u4e00\u4e2a\u7ecf\u8fc7\u9a8c\u8bc1\u7684Web\u5f00\u53d1\u4eba\u5458\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u5728\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u901a\u8fc7\u672c\u673aES\u6a21\u5757\u5bfc\u5165\u4e3a\u60a8\u7684\u4ee3\u7801\u63d0\u4f9b\u670d\u52a1\uff0c\u5e76\u5c06\u5176\u4e0eRollup\u6346\u7ed1\u5728\u4e00\u8d77\u8fdb\u884c\u751f\u4ea7","url":"https://github.com/vitejs/vite","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":309},{"name":"Vue \u7ec4\u5408\u5f0f API","desc":"Vue \u7ec4\u5408\u5f0f API\u5728\u7ebf\u6587\u6863\u9605\u8bfb","url":"https://composition-api.vuejs.org/zh","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":310}],"createdAt":"2021-01-23 09:32:06"},{"title":"PC\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars0.githubusercontent.com/u/20693613?s=200&v=4","name":"iView","desc":"\u4e00\u5957\u57fa\u4e8e Vue.js \u7684\u9ad8\u8d28\u91cfUI \u7ec4\u4ef6\u5e93","url":"https://www.iviewui.com/docs/guide/install","urls":{"-2":"https://www.iviewui.com/","-1":"https://www.iviewui.com/docs/guide/install","-3":"https://github.com/iview/iview"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":311},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"Element","desc":"\u4e00\u5957\u4e3a\u5f00\u53d1\u8005\u3001\u8bbe\u8ba1\u5e08\u548c\u4ea7\u54c1\u7ecf\u7406\u51c6\u5907\u7684\u57fa\u4e8e Vue 2.0 \u7684\u684c\u9762\u7aef\u7ec4\u4ef6\u5e93","url":"http://element-cn.eleme.io/#/zh-CN","urls":{"-2":"http://element-cn.eleme.io/#/en-US","-1":"http://element-cn.eleme.io/#/zh-CN","-3":"https://github.com/ElemeFE/element"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":312},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"Element Plus","desc":"\u652f\u6301Vue3.0\u7684Element","url":"https://element-plus.org/#/zh-CN","urls":{"-3":"https://github.com/element-plus/element-plus"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":313},{"icon":"https://avatars0.githubusercontent.com/u/22283362?s=200&v=4","name":"Muse-UI","desc":"\u57fa\u4e8e Vue 2.0 \u4f18\u96c5\u7684 Material Design UI \u7ec4\u4ef6\u5e93","url":"https://muse-ui.org/#/zh-CN","urls":{"-2":"https://muse-ui.org/#/en-US/","-1":"https://muse-ui.org/#/zh-CN","-3":"https://github.com/museui/muse-ui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":314},{"icon":"https://qn.antdv.com/favicon.ico","name":"Ant Design Vue","desc":"\u8fd9\u91cc\u662f Ant Design \u7684 Vue \u5b9e\u73b0\uff0c\u5f00\u53d1\u548c\u670d\u52a1\u4e8e\u4f01\u4e1a\u7ea7\u540e\u53f0\u4ea7\u54c1","url":"https://antdv.com/docs/vue/introduce-cn/","urls":{"-2":"https://antdv.com/docs/vue/introduce/","-1":"https://antdv.com/docs/vue/introduce-cn/","-3":"https://github.com/vueComponent/ant-design-vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":315},{"icon":"https://avatars2.githubusercontent.com/u/22138497?s=200&v=4","name":"vuetify","desc":"\u8ba9Vue\u548cMaterial Design\u7684\u5f3a\u5927\u529b\u91cf\u5728\u5f00\u53d1\u4e0a\u52a9\u60a8\u4e00\u81c2\u4e4b\u529b","url":"https://vuetifyjs.com/zh-Hans/","urls":{"-2":"https://vuetifyjs.com/en/","-1":"https://vuetifyjs.com/zh-Hans/","-3":"https://github.com/vuetifyjs/vuetify"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":316},{"icon":"https://avatars1.githubusercontent.com/u/22965283?s=200&v=4","name":"bootstrap-vue","desc":"BootstrapVue\u4e3aVue.js\u63d0\u4f9b\u4e86\u6700\u5168\u9762\u7684Bootstrap 4\u7ec4\u4ef6\u548c\u7f51\u683c\u7cfb\u7edf\u5b9e\u73b0\u4e4b\u4e00\uff0c\u5e76\u63d0\u4f9b\u4e86\u5e7f\u6cdb\u7684\u81ea\u52a8WAI-ARIA\u53ef\u8bbf\u95ee\u6027\u6807\u8bb0","url":"https://bootstrap-vue.js.org/","urls":{"-3":"https://github.com/bootstrap-vue/bootstrap-vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":317},{"icon":"https://avatars0.githubusercontent.com/u/23659108?s=200&v=4","name":"vue-material","desc":"Vue material\u7b80\u5355\uff0c\u8f7b\u5de7\uff0c\u5b8c\u5168\u7b26\u5408Google Material Design\u89c4\u8303","url":"https://vuematerial.io","urls":{"-3":"https://github.com/vuematerial/vue-material"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":318},{"icon":"https://avatars1.githubusercontent.com/u/26799900?s=200&v=4","name":"buefy","desc":"Buefy\u662f\u4e00\u4e2a\u57fa\u4e8eBulma\u6846\u67b6\u548c\u8bbe\u8ba1\u7684Vue.js\u54cd\u5e94\u5f0fUI\u7ec4\u4ef6\u7684\u8f7b\u91cf\u7ea7\u5e93\u3002","url":"https://buefy.org","urls":{"-3":"https://github.com/buefy/buefy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":319}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"vant","desc":"\u8f7b\u91cf\u3001\u53ef\u9760\u7684\u79fb\u52a8\u7aef Vue \u7ec4\u4ef6\u5e93","url":"https://youzan.github.io/vant/#/zh-CN/intro","urls":{"-2":"https://youzan.github.io/vant/#/en-US/intro","-1":"https://youzan.github.io/vant/#/zh-CN/intro","-3":"https://github.com/youzan/vant"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":320},{"name":"vux","desc":"\u4e00\u4e2a\u51d1\u5408\u7684 Vue.js \u79fb\u52a8\u7aef UI \u7ec4\u4ef6\u5e93","url":"https://vux.li/","urls":{"-1":"https://vux.li/","-3":"https://github.com/airyland/vux"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":321},{"icon":"https://avatars0.githubusercontent.com/u/27521938?s=200&v=4","name":"cube-ui","desc":"\u57fa\u4e8e Vue.js \u5b9e\u73b0\u7684\u7cbe\u81f4\u79fb\u52a8\u7aef\u7ec4\u4ef6\u5e93","url":"https://didi.github.io/cube-ui/#/zh-CN","urls":{"-2":"https://didi.github.io/cube-ui/#/en-US","-1":"https://didi.github.io/cube-ui/#/zh-CN","-3":"https://github.com/didi/cube-ui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":322},{"icon":"https://avatars0.githubusercontent.com/u/27521938?s=200&v=4","name":"Mand Mobile","desc":"\u9762\u5411\u91d1\u878d\u573a\u666f\u7684Vue\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93\uff0c\u4e30\u5bcc\u3001\u7075\u6d3b\u3001\u5b9e\u7528\uff0c\u5feb\u901f\u642d\u5efa\u4f18\u8d28\u7684\u91d1\u878d\u7c7b\u4ea7\u54c1\uff0c\u8ba9\u590d\u6742\u7684\u91d1\u878d\u573a\u666f\u53d8\u7b80\u5355","url":"https://didi.github.io/mand-mobile/#/zh-CN/home","urls":{"-2":"https://didi.github.io/mand-mobile/#/en-US/home","-1":"https://didi.github.io/mand-mobile/#/zh-CN/home","-3":"https://github.com/didi/mand-mobile"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":323},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"Mint UI","desc":"\u57fa\u4e8e Vue.js \u7684\u79fb\u52a8\u7aef\u7ec4\u4ef6\u5e93","url":"http://mint-ui.github.io/#!/zh-cn","urls":{"-2":"http://mint-ui.github.io/#!/en","-1":"http://mint-ui.github.io/#!/zh-cn","-3":"https://github.com/ElemeFE/mint-ui/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":324},{"name":"NutUI","desc":"\u4e00\u5957\u4eac\u4e1c\u98ce\u683c\u7684\u8f7b\u91cf\u7ea7\u79fb\u52a8\u7aefVue\u7ec4\u4ef6\u5e93","url":"https://nutui.jd.com","urls":{"-3":"https://github.com/jdf2e/nutui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":325}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6","nav":[{"name":"vue-awesome-swiper","desc":"\u57fa\u4e8eswiper\u5c01\u88c5\u7684\u8f6e\u64ad\u56fe\u7ec4\u4ef6","url":"https://surmon-china.github.io/vue-awesome-swiper/","urls":{"-3":"https://github.com/surmon-china/vue-awesome-swiper"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6"],"ownVisible":false,"id":326},{"name":"vue-meta","desc":"\u7ba1\u7406Vue 2.0\u7ec4\u4ef6\u4e2d\u7684\u9875\u9762\u5143\u4fe1\u606f\u3002\u652f\u6301SSR + Streaming","url":"https://github.com/nuxt/vue-meta","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6"],"ownVisible":false,"id":327},{"name":"vue-scroller","desc":"Vue Scroller\u662fVonic UI \u7684\u57fa\u7840\u7ec4\u4ef6\u3002\u4e3a\u4e86\u5e73\u6ed1\u6eda\u52a8\uff0c\u62c9\u52a8\u5237\u65b0\u548c\u65e0\u9650\u52a0\u8f7d\u3002","url":"https://wangdahoo.github.io/vue-scroller/#/","urls":{"-3":"https://github.com/wangdahoo/vue-scroller"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6"],"ownVisible":false,"id":328},{"name":"vue-infinite-loading","desc":"Vue.js\u7684\u65e0\u9650\u6eda\u52a8\u63d2\u4ef6(\u652f\u6301\u5411\u4e0a\u548c\u5411\u4e0b)","url":"https://peachscript.github.io/vue-infinite-loading/zh/","urls":{"-3":"https://github.com//PeachScript/vue-infinite-loading"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6"],"ownVisible":false,"id":329}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5f00\u7bb1\u5373\u7528","nav":[{"name":"iview-admin","desc":"\u57fa\u4e8eiView\u7684Vue 2.0\u7ba1\u7406\u7cfb\u7edf\u6a21\u677f","url":"https://admin.iviewui.com/login","urls":{"-3":"https://github.com/iview/iview-admin"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5f00\u7bb1\u5373\u7528"],"ownVisible":false,"id":330}],"createdAt":"2021-01-23 09:32:06"},{"title":"nuxt\u670d\u52a1\u7aef\u6e32\u67d3\u6846\u67b6","nav":[{"icon":"https://avatars2.githubusercontent.com/u/23360933?s=200&v=4","name":"nuxt","desc":"Vue.js \u901a\u7528\u5e94\u7528\u6846\u67b6","url":"https://zh.nuxtjs.org/","urls":{"-2":"https://nuxtjs.org/","-1":"https://zh.nuxtjs.org/","-3":"https://github.com/nuxt/nuxt.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","nuxt\u670d\u52a1\u7aef\u6e32\u67d3\u6846\u67b6"],"ownVisible":false,"id":331},{"icon":"https://avatars2.githubusercontent.com/u/23360933?s=200&v=4","name":"\u521b\u5efanuxt\u7684\u811a\u624b\u67b6\u5de5\u5177","desc":"create-nuxt-app","url":"https://github.com/nuxt/create-nuxt-app","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","nuxt\u670d\u52a1\u7aef\u6e32\u67d3\u6846\u67b6"],"ownVisible":false,"id":332}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Angular","icon":"https://avatars0.githubusercontent.com/u/139426?s=200&v=4","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","nav":[{"name":"Angular","desc":"\u4e00\u4e2a\u6846\u67b6\uff0c\u79fb\u52a8 & \u684c\u9762","url":"https://www.angular.cn/","urls":{"-2":"https://angular.io/","-1":"https://www.angular.cn/","-3":"https://github.com/angular/angular"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":333},{"name":"angular-cli","desc":"\u7528\u4e8eAngular CLI\u811a\u624b\u67b6\u5de5\u5177","url":"https://cli.angular.io/","urls":{"-2":"https://cli.angular.io/","-3":"https://github.com/angular/angular-cli"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":334},{"name":"augury","desc":"Angular\u8c03\u8bd5\u548c\u53ef\u89c6\u5316\u5de5\u5177","url":"https://augury.angular.io/","urls":{"-2":"https://augury.angular.io/","-3":"https://github.com/rangle/augury"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":335}],"createdAt":"2021-01-23 09:32:06"},{"title":"PC\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars2.githubusercontent.com/u/30223759?s=200&v=4","name":"NG-ZORRO","desc":"\u57fa\u4e8eAnt Design\u7684Angular\u4f01\u4e1a\u7ea7UI\u7ec4\u4ef6","url":"http://ng.ant.design/docs/introduce/zh","urls":{"-2":"http://ng.ant.design/docs/introduce/en","-1":"http://ng.ant.design/docs/introduce/zh","-3":"https://github.com/NG-ZORRO/ng-zorro-antd"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":336},{"icon":"https://avatars3.githubusercontent.com/u/14283866?s=200&v=4","name":"ng-bootstrap","desc":"\u57fa\u4e8eBootstrap 4\u7684Angular\u7ec4\u4ef6","url":"https://ng-bootstrap.github.io/#/components/accordion/examples","urls":{"-2":"https://ng-bootstrap.github.io/#/components/accordion/examples","-3":"https://github.com/ng-bootstrap/ng-bootstrap"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":337},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"element-angular","desc":"Element Angular\u7ec4\u4ef6\u5e93","url":"https://element-angular.faas.ele.me/guide/install","urls":{"-2":"https://element-angular.faas.ele.me/","-1":"https://element-angular.faas.ele.me/guide/install","-3":"https://github.com/ElemeFE/element-angular"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":338},{"icon":"https://avatars1.githubusercontent.com/u/3494069?s=200&v=4","name":"primeng","desc":"PrimeNG\u662fAngular\u7684\u4e30\u5bccUI\u7ec4\u4ef6\u7684\u96c6\u5408","url":"https://www.primefaces.org/primeng/#/button","urls":{"-3":"https://github.com/primefaces/primeng"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":339},{"name":"material","desc":"Material Design\u662f\u4e00\u4e2a\u7edf\u4e00\u7684\u89c6\u89c9\uff0c\u52a8\u4f5c\u548c\u4ea4\u4e92\u8bbe\u8ba1\u7cfb\u7edf\u7684\u89c4\u8303\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u7684\u8bbe\u5907\u3002","url":"https://www.primefaces.org/primeng/#/button","urls":{"-3":"https://github.com/angular/material"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":340}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"name":"material","desc":"Material Design\u662f\u4e00\u4e2a\u7edf\u4e00\u7684\u89c6\u89c9\uff0c\u52a8\u4f5c\u548c\u4ea4\u4e92\u8bbe\u8ba1\u7cfb\u7edf\u7684\u89c4\u8303\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u7684\u8bbe\u5907\u3002","url":"https://www.primefaces.org/primeng/#/button","urls":{"-3":"https://github.com/angular/material"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":341}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5fae\u4fe1\u5f00\u53d1","icon":"https://avatars0.githubusercontent.com/u/18461506?s=200&v=4","nav":[{"title":"\u5c0f\u7a0b\u5e8f\u6587\u6863","nav":[{"name":"\u5c0f\u7a0b\u5e8f\u5f00\u53d1","desc":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f","url":"https://developers.weixin.qq.com/miniprogram/dev/index.html","urls":{"-2":"https://developers.weixin.qq.com/miniprogram/en/dev/index.html?t=18082922","-1":"https://developers.weixin.qq.com/miniprogram/dev/index.html"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6587\u6863"],"ownVisible":false,"id":342},{"name":"\u5c0f\u6e38\u620f\u5f00\u53d1","desc":"\u5fae\u4fe1\u5c0f\u6e38\u620f","url":"https://developers.weixin.qq.com/minigame/dev/index.html?t=18082922","urls":{"-2":"https://developers.weixin.qq.com/minigame/en/dev/index.html?t=18081820","-1":"https://developers.weixin.qq.com/minigame/dev/index.html?t=18082922"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6587\u6863"],"ownVisible":false,"id":343}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5c0f\u7a0b\u5e8f\u6846\u67b6","nav":[{"name":"mpvue","desc":"Vue.js \u5f00\u53d1\u5c0f\u7a0b\u5e8f\u7684\u524d\u7aef\u6846\u67b6\u3002\u6846\u67b6\u57fa\u4e8e Vue.js \u6838\u5fc3","url":"http://mpvue.com/","urls":{"-1":"http://mpvue.com/","-3":"https://github.com/Meituan-Dianping/mpvue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":344},{"name":"wepy","desc":"\u5b98\u65b9\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5316\u5f00\u53d1\u6846\u67b6","url":"https://tencent.github.io/wepy/","urls":{"-1":"https://tencent.github.io/wepy/","-3":"https://github.com/Tencent/wepy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":345},{"icon":"https://avatars0.githubusercontent.com/u/27521938?s=200&v=4","name":"mpx","desc":"Mpx\u662f\u4e00\u6b3e\u81f4\u529b\u4e8e\u63d0\u9ad8\u5c0f\u7a0b\u5e8f\u5f00\u53d1\u4f53\u9a8c\u7684\u589e\u5f3a\u578b\u5c0f\u7a0b\u5e8f\u6846\u67b6(\u6ef4\u6ef4\u51fa\u54c1\uff0c\u57fa\u4e8evue)","url":"https://didi.github.io/mpx/","urls":{"-1":"https://didi.github.io/mpx/","-3":"https://github.com/didi/mpx"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":346},{"icon":"https://avatars1.githubusercontent.com/u/5485517?s=200&v=4","name":"uni-app","desc":"uni-app \u662f\u4f7f\u7528 Vue \u8bed\u6cd5\u5f00\u53d1\u5c0f\u7a0b\u5e8f\u3001H5\u3001App\u7684\u7edf\u4e00\u6846\u67b6","url":"https://uniapp.dcloud.io/","urls":{"-3":"https://github.com/dcloudio/uni-app"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":347},{"icon":"https://tencent.github.io/omi/assets/omi-logo2019.svg","name":"omix","desc":"\u817e\u8baf\u539f\u751f\u5c0f\u7a0b\u5e8f\u6846\u67b6 OMIX 2.0","url":"https://github.com/Tencent/omi/tree/master/packages/omix","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":348}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6","nav":[{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"vant-weapp","desc":"\u8f7b\u91cf\u3001\u53ef\u9760\u7684\u5c0f\u7a0b\u5e8f UI \u7ec4\u4ef6\u5e93","url":"https://vant-contrib.gitee.io/vant-weapp/#/intro","urls":{"-3":"https://github.com/youzan/vant-weapp"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":349},{"icon":"https://avatars0.githubusercontent.com/u/18461506?s=200&v=4","name":"weui-wxss","desc":"\u8fd9\u662f\u4e00\u5957\u57fa\u4e8e\u6837\u5f0f\u5e93weui-wxss\u5f00\u53d1\u7684\u5c0f\u7a0b\u5e8f\u6269\u5c55\u7ec4\u4ef6\u5e93\uff0c\u540c\u5fae\u4fe1\u539f\u751f\u89c6\u89c9\u4f53\u9a8c\u4e00\u81f4\u7684UI\u7ec4\u4ef6\u5e93","url":"https://github.com/Tencent/weui-wxss/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":350},{"name":"wxParse","desc":"wxParse-\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u5bcc\u6587\u672c\u89e3\u6790\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u652f\u6301HTML\u53camarkdown\u89e3\u6790","url":"https://github.com/icindy/wxParse","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":351},{"name":"mpvue-wxParse","desc":"\u9002\u7528\u4e8e Mpvue \u7684\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u5bcc\u6587\u672c\u89e3\u6790\u81ea\u5b9a\u4e49\u7ec4\u4ef6","url":"https://github.com/F-loat/mpvue-wxParse","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":352},{"icon":"https://avatars1.githubusercontent.com/u/2268460?s=200&v=4","name":"echarts-for-weixin","desc":"ECharts \u7684\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u7248\u672c","url":"https://github.com/ecomfe/echarts-for-weixin","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":353},{"icon":"https://lbs.qq.com/favicon.ico","name":"\u817e\u8baf\u4f4d\u7f6e\u670d\u52a1","desc":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u539f\u751fLBS\u80fd\u529b\u7684\u6700\u4f73\u62cd\u6863","url":"https://lbs.qq.com/qqmap_wx_jssdk/index.html","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":354},{"name":"ColorUI","desc":"\u9c9c\u4eae\u7684\u9ad8\u9971\u548c\u8272\u5f69\uff0c\u4e13\u6ce8\u89c6\u89c9\u7684\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93","url":"https://www.color-ui.com/","urls":{"-3":"https://github.com/weilanwl/ColorUI"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":355},{"name":"weapp-input-frame","desc":"\u9a8c\u8bc1\u7801\u3001\u652f\u4ed8\u5bc6\u7801\u8f93\u5165\u6846\u7ec4\u4ef6","url":"https://github.com/xjh22222228/weapp-input-frame","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":356}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5fae\u4fe1\u516c\u4f17\u53f7\u5f00\u53d1\u8f85\u52a9\u5de5\u5177","nav":[{"name":"JS\u63a5\u53e3\u7b7e\u540d\u6821\u9a8c\u5de5\u5177","desc":"\u5fae\u4fe1 JS \u63a5\u53e3\u7b7e\u540d\u6821\u9a8c\u5de5\u5177","url":"https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5fae\u4fe1\u516c\u4f17\u53f7\u5f00\u53d1\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":357},{"name":"\u63a5\u53e3\u8c03\u8bd5\u5de5\u5177","desc":"\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u63a5\u53e3\u8c03\u8bd5\u5de5\u5177","url":"https://mp.weixin.qq.com/debug/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5fae\u4fe1\u516c\u4f17\u53f7\u5f00\u53d1\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":358},{"name":"computed","desc":"\u5c0f\u7a0b\u5e8f\u81ea\u5b9a\u4e49\u7ec4\u4ef6 computed / watch \u6269\u5c55","url":"https://github.com/wechat-miniprogram/computed","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5fae\u4fe1\u516c\u4f17\u53f7\u5f00\u53d1\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":359}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8d44\u6e90","nav":[{"name":"awesome-github-wechat-weapp","desc":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u5f00\u6e90\u9879\u76ee\u5e93\u6c47\u603b","url":"https://github.com/opendigg/awesome-github-wechat-weapp","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u8d44\u6e90"],"ownVisible":false,"id":360},{"name":"awesome-wechat-weapp","desc":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u5f00\u53d1\u8d44\u6e90\u6c47\u603b","url":"https://github.com/justjavac/awesome-wechat-weapp","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u8d44\u6e90"],"ownVisible":false,"id":361}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"\u5fae\u4fe1\u5f00\u653e\u793e\u533a","desc":"\u5c0f\u7a0b\u5e8f\u5f00\u53d1\u8005\u4e13\u533a\uff0c\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0,\u5fae\u4fe1\u5f00\u653e\u793e\u533a,\u5f00\u53d1\u8005\u4e13\u533a","url":"https://developers.weixin.qq.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5176\u4ed6"],"ownVisible":false,"id":362},{"name":"wechat-format","desc":"\u5fae\u4fe1\u516c\u4f17\u53f7\u6392\u7248\u7f16\u8f91\u5668\uff0c\u8f6c\u6362 Markdown \u5230\u5fae\u4fe1\u7279\u5236\u7684 HTML","url":"https://lab.lyric.im/wxformat/","urls":{"-3":"https://github.com/lyricat/wechat-format"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5176\u4ed6"],"ownVisible":false,"id":363},{"name":"\u5fae\u4fe1\u5f00\u653e\u5e73\u53f0","desc":"\u5fae\u4fe1\u5f00\u653e\u5e73\u53f0","url":"https://open.weixin.qq.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5176\u4ed6"],"ownVisible":false,"id":364}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","nav":[{"title":"CSS","nav":[{"name":"CSS3 UI Lib","desc":"CSS\u52a8\u753b\u96c6\u6210\u3001\u5728\u7ebf\u8c03\u8bd5\u9634\u5f71","url":"http://css3lib.alloyteam.com/#panel/demo1","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":365},{"name":"CSS Sprites Generator","desc":"CSS\u96ea\u78a7\u56fe\u751f\u6210","url":"https://www.toptal.com/developers/css/sprite-generator","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":366},{"icon":"http://www.colorzilla.com/favicon.ico","name":"CSS\u6e10\u53d8\u8c03\u8bd5\u5668","desc":"\u524d\u7aef\u5f00\u53d1\u8c03\u8bd5CSS\u6e10\u53d8\u5fc5\u5907\u795e\u5668","url":"http://www.colorzilla.com/gradient-editor/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":367},{"icon":"https://animista.net/favicon.ico","name":"Animista","desc":"\u5728\u7ebf\u751f\u6210CSS\u52a8\u753b","url":"http://animista.net/play/background/ken-burns","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":368},{"icon":"https://cssgradient.io/favicon.ico","name":"CSS Gradient","desc":"CSS\u6e10\u53d8\u8c03\u8bd5\u5e76\u751f\u6210CSS\u4ee3\u7801","url":"https://cssgradient.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":369},{"icon":"https://www.grabient.com/favicon.ico","name":"Grabient","desc":"CSS\u6e10\u53d8\u8c03\u8bd5\u5e76\u751f\u6210CSS\u4ee3\u7801\uff0c\u8fd8\u53ef\u4ee5\u89d2\u5ea6\u53d8\u6362","url":"https://www.grabient.com/","urls":{"-3":"https://github.com/johnkorzhuk/grabient"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":370},{"icon":"http://pxtoem.com/favicon.ico","name":"px\u4e0eem\u5355\u4f4d\u8f6c\u6362","desc":"px\u4e0eem\u5355\u4f4d\u8f6c\u6362","url":"http://pxtoem.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":371},{"icon":"http://apps.eky.hk/css-triangle-generator/favicon.gif","name":"CSS\u4e09\u89d2\u5f62\u7522\u751f\u5668","desc":"CSS\u4e09\u89d2\u5f62\u7522\u751f\u5668 - \u4f7f\u7528\u7d14CSS\u7e6a\u756b\u4e09\u89d2\u5f62","url":"http://apps.eky.hk/css-triangle-generator/zh-hant","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":372},{"icon":"https://www.sassmeister.com/favicon.ico","name":"SassMeister","desc":"\u5c06sass\u8bed\u6cd5\u8f6c\u6362\u6210CSS\u8bed\u6cd5","url":"https://www.sassmeister.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":373},{"icon":"https://transfonter.org/favicon.ico","name":"transfonter","desc":"\u5b57\u4f53\u56fe\u6807\u8f6c\u6362Base64","url":"https://transfonter.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":374},{"name":"Loading\u96c6\u5408","desc":"\u4e0a\u5343\u79cdLoading\u8ba4\u4f60\u9009","url":"https://www.xiejiahe.com/detail/59ec506be9b3310879551f5e","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":375},{"icon":"https://cssreference.io/favicons/favicon-32x32.png","name":"CSS Reference","desc":"css\u53c2\u8003\u662f\u4e00\u4e2a\u514d\u8d39\u7684\u89c6\u89c9\u6307\u5bfccss\u3002\u5b83\u4ee5\u6700\u53d7\u6b22\u8fce\u7684\u7279\u6027\u4e3a\u7279\u8272\uff0c\u5e76\u7528\u63d2\u56fe\u548c\u52a8\u753b\u793a\u4f8b\u5bf9\u5176\u8fdb\u884c\u8bf4\u660e","url":"https://cssreference.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":376},{"icon":"https://www.w3cschool.cn/favicon.ico","name":"\u5728\u7ebfCSS\u9634\u5f71\u8c03\u8bd5","desc":"CSS3 Box Shadow(\u9634\u5f71)\u6548\u679c\u5728\u7ebf\u8c03\u8bd5\u5de5\u5177","url":"https://www.w3cschool.cn/tools/index?name=css3_boxshadow","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":377}],"createdAt":"2021-01-23 09:32:06"},{"title":"JavaScript","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","nav":[{"icon":"https://regexper.com/favicon.ico","name":"\u6b63\u5219\u8868\u8fbe\u5f0f\u9a8c\u8bc1\u5668","desc":"\u9a8c\u8bc1JavaScript\u6b63\u5219\u8868\u8fbe\u5f0f","url":"https://regexper.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":378},{"icon":"https://www.json.cn/favicon.ico","name":"JSON\u5728\u7ebf\u89e3\u6790\u53ca\u683c\u5f0f\u5316\u9a8c\u8bc1","desc":"json\u5728\u7ebf\u89e3\u6790,json\u683c\u5f0f\u5316,json\u683c\u5f0f\u9a8c\u8bc1,json\u8f6cxml,xml\u8f6cjson","url":"https://www.json.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":379},{"icon":"https://avatars0.githubusercontent.com/u/25822731?s=200&v=4","name":"prettier","desc":"Prettier\u662f\u4e00\u4e2a\u56fa\u5b9a\u7684\u4ee3\u7801\u683c\u5f0f\u5316\u7a0b\u5e8f\u3002\u5b83\u901a\u8fc7\u89e3\u6790\u4ee3\u7801\u5e76\u4f7f\u7528\u81ea\u5df1\u7684\u89c4\u5219\u91cd\u65b0\u6253\u5370\u5b83\u6765\u5f3a\u5236\u6267\u884c\u4e00\u81f4\u7684\u6837\u5f0f\uff0c\u8fd9\u4e9b\u89c4\u5219\u8003\u8651\u4e86\u6700\u5927\u884c\u957f\u5ea6\uff0c\u5e76\u5728\u5fc5\u8981\u65f6\u5305\u88c5\u4ee3\u7801","url":"https://prettier.io/","urls":{"-3":"https://github.com/prettier/prettier"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":380},{"name":"\u6b63\u5219\u8868\u8fbe\u5f0f\u5728\u7ebf\u6d4b\u8bd5","desc":"\u6b63\u5219\u8868\u8fbe\u5f0f\u5728\u7ebf\u6d4b\u8bd5","url":"http://tool.chinaz.com/regex","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":381},{"name":"spy-debugger","desc":"\u5fae\u4fe1\u8c03\u8bd5\uff0c\u5404\u79cdWebView\u6837\u5f0f\u8c03\u8bd5\u3001\u624b\u673a\u6d4f\u89c8\u5668\u7684\u9875\u9762\u771f\u673a\u8c03\u8bd5\u3002\u4fbf\u6377\u7684\u8fdc\u7a0b\u8c03\u8bd5\u624b\u673a\u9875\u9762\u3001\u6293\u5305\u5de5\u5177\uff0c\u652f\u6301\uff1aHTTP/HTTPS\uff0c\u65e0\u9700USB\u8fde\u63a5\u8bbe\u5907","url":"https://github.com/wuchangming/spy-debugger","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":382},{"name":"VConsole","desc":"\u4e00\u4e2a\u8f7b\u91cf\u3001\u53ef\u62d3\u5c55\u3001\u9488\u5bf9\u624b\u673a\u7f51\u9875\u7684\u524d\u7aef\u5f00\u53d1\u8005\u8c03\u8bd5\u9762\u677f","url":"https://github.com/Tencent/vConsole/","urls":{"-2":"https://github.com/Tencent/vConsole","-1":"https://github.com/Tencent/vConsole/blob/dev/README_CN.md"},"icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":383}],"createdAt":"2021-01-23 09:32:06"},{"title":"CDN","nav":[{"icon":"https://www.staticfile.org/assets/images/logo.png","name":"Staticfile CDN","desc":"\u514d\u8d39CDN\u670d\u52a1\uff0c\u5305\u62ec JavaScript\u3001CSS\u3001\u56fe\u7247\u548c swf \u7b49\u9759\u6001\u6587\u4ef6","url":"https://www.staticfile.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CDN"],"ownVisible":false,"id":384},{"icon":"https://www.jsdelivr.com/favicon.ico","name":"jsDelivr","desc":"jsDelivr \u2013 \u5f00\u6e90 CDN","url":"https://www.jsdelivr.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CDN"],"ownVisible":false,"id":385},{"icon":"https://www.bootcdn.cn/assets/ico/favicon.ico","name":"BootCDN","desc":"\u7a33\u5b9a\u3001\u5feb\u901f\u3001\u514d\u8d39\u7684\u524d\u7aef\u5f00\u6e90\u9879\u76ee CDN \u52a0\u901f\u670d\u52a1","url":"https://www.bootcdn.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CDN"],"ownVisible":false,"id":386},{"icon":"https://avatars0.githubusercontent.com/u/637362?s=200&v=4","name":"cdnjs","desc":"\u9762\u5411Web\u5f00\u53d1\u4eba\u5458\u7684\u514d\u8d39\u548c\u5f00\u6e90\u516c\u5171Web CDN\uff01","url":"https://cdnjs.com/","urls":{"-3":"https://github.com/cdnjs/cdnjs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CDN"],"ownVisible":false,"id":387}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://www.fundebug.com/favicon.ico","name":"FunDebug","desc":"\u652f\u6301\u524d\u7aefJavaScript\uff0c\u540e\u7aefNode.js\u4ee5\u53ca\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u9519\u8bef\u76d1\u63a7","url":"https://www.fundebug.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":388},{"icon":"https://www.caniuse.com/img/favicon-128.png","name":"\u524d\u7aef\u517c\u5bb9\u6027\u67e5\u8be2","desc":"\u524d\u7aef\u67e5\u8be2API\u5404\u4e2a\u5382\u5546\u517c\u5bb9\u6027\u60c5\u51b5","url":"https://www.caniuse.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":389},{"icon":"http://browserhacks.com/assets/images/browserhacks.ico","name":"Browserhacks","desc":"Browserhacks\u662f\u6765\u81ea\u5404\u4e2a\u4e92\u8054\u7f51\u7684\u6d4f\u89c8\u5668\u7279\u5b9aCSS\u548cJavaScript hacks\u7684\u5e7f\u6cdb\u5217\u8868\u3002","url":"http://browserhacks.com/","urls":{"-3":"https://github.com/4ae9b8/browserhacks"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":390},{"name":"Character Entity Reference Chart","desc":"\u5b57\u7b26\u5b9e\u4f53\u53c2\u8003\u56fe\uff0c>","url":"https://dev.w3.org/html5/html-author/charref","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":391},{"name":"awesome-web-editor","desc":"\u5f00\u6e90web\u7f16\u8f91\u5668\u6c47\u603b\u5217\u8868","url":"https://github.com/xjh22222228/awesome-web-editor","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":392},{"icon":"https://jsfiddle.net/img/favicon.png","name":"jsfiddle","desc":"\u5f3a\u5927\u7684\u524d\u7aef\u4ee3\u7801\u5728\u7ebf\u6f14\u793a\u7684\u7f51\u7ad9","url":"http://jsfiddle.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":393},{"icon":"https://avatars0.githubusercontent.com/u/11043997?s=200&v=4","name":"jsperf","desc":"jsPerf\u65e8\u5728\u63d0\u4f9b\u4e00\u79cd\u7b80\u5355\u7684\u65b9\u6cd5\u6765\u521b\u5efa\u548c\u5171\u4eab\u6d4b\u8bd5\u7528\u4f8b\uff0c\u901a\u8fc7\u8fd0\u884c\u57fa\u51c6\u6d4b\u8bd5\u6765\u6bd4\u8f83\u4e0d\u540cJavaScript\u4ee3\u7801\u6bb5\u7684\u6027\u80fd","url":"https://jsperf.com/","urls":{"-3":"https://github.com/jsperf/jsperf.com"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":394},{"icon":"https://codesandbox.io/favicon.ico","name":"codesandbox","desc":"codesandbox\u662f\u4e3aWeb\u5e94\u7528\u7a0b\u5e8f\u5b9a\u5236\u7684\u5728\u7ebf\u7f16\u8f91\u5668\u3002","url":"https://codesandbox.io","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":395},{"icon":"https://htmlreference.io/favicons/favicon-32x32.png","name":"HTML Reference","desc":"\u6240\u6709HTML\u5143\u7d20\u548c\u5c5e\u6027\u7684\u514d\u8d39\u6307\u5357\u53c2\u8003","url":"https://htmlreference.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":396},{"icon":"https://static.jsbin.com/images/dave.min.svg","name":"jsbin","desc":"\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684html/css/js\u5728\u7ebf\u7f16\u8f91\u5668Debug\u8c03\u8bd5\u5668","url":"https://jsbin.com/juduyibeku/edit?html,css,js,console,output","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":397},{"icon":"http://www.jsfuck.com/favicon.ico","name":"jsfuck","desc":"JSFuck\u662f\u57fa\u4e8eJavaScript\u539f\u5b50\u90e8\u5206\u7684\u6df1\u5965\u548c\u6559\u80b2\u6027\u7f16\u7a0b\u98ce\u683c\u3002\u5b83\u4ec5\u4f7f\u7528\u516d\u4e2a\u4e0d\u540c\u7684\u5b57\u7b26\u6765\u7f16\u5199\u548c\u6267\u884c\u4ee3\u7801\u3002","url":"http://www.jsfuck.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":398}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"CSS","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/css/css.png","nav":[{"title":"CSS","nav":[{"icon":"https://getbootstrap.com/docs/4.5/assets/img/favicons/favicon.ico","name":"Bootstrap","desc":"Bootstrap \u662f\u4e00\u4e2a\u7528\u4e8e\u5feb\u901f\u5f00\u53d1 Web \u5e94\u7528\u7a0b\u5e8f\u548c\u7f51\u7ad9\u7684\u524d\u7aef\u6846\u67b6","url":"http://getbootstrap.com/","urls":{"-2":"http://getbootstrap.com/","-1":"http://www.bootcss.com/","-3":"https://github.com/twbs/bootstrap"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":399},{"icon":"https://avatars2.githubusercontent.com/u/317889?s=200&v=4","name":"Sass","desc":"Sass \u662f\u6210\u719f\u3001\u7a33\u5b9a\u3001\u5f3a\u5927\u7684 CSS \u6269\u5c55\u8bed\u8a00","url":"http://sass-lang.com/","urls":{"-2":"http://sass-lang.com/","-1":"http://sass.bootcss.com/","-3":"https://github.com/sass/sass"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":400},{"icon":"https://avatars0.githubusercontent.com/u/3538330?s=200&v=4","name":"Less","desc":"Less \u662f\u4e00\u95e8 CSS \u9884\u5904\u7406\u8bed\u8a00,\u5b83\u6269\u5c55\u4e86 CSS \u8bed\u8a00,\u589e\u52a0\u4e86\u53d8\u91cf\u3001Mixin\u3001\u51fd\u6570\u7b49\u7279\u6027","url":"http://lesscss.org/","urls":{"-2":"http://lesscss.org/","-1":"http://lesscss.cn/","-3":"https://github.com/less/less.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":401},{"name":"magic","desc":"CSS3\u52a8\u753b\u7279\u6548","url":"https://minimamente.com/example/magic_animations/","urls":{"-3":"https://github.com/miniMAC/magic"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":402},{"icon":"https://avatars3.githubusercontent.com/u/64791939?s=200&v=4","name":"Animate.css","desc":"CSS\u52a8\u753b\u7684\u8de8\u6d4f\u89c8\u5668\u5e93,\u7b80\u5355\u6613\u7528","url":"https://daneden.github.io/animate.css/","urls":{"-3":"https://github.com/animate-css/animate.css"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":403},{"icon":"http://necolas.github.io/normalize.css/favicon.ico","name":"normalize.css","desc":"\u4f7f\u6d4f\u89c8\u5668\u66f4\u52a0\u4e00\u81f4\u5730\u5448\u73b0\u6240\u6709\u5143\u7d20\u5e76\u7b26\u5408\u73b0\u4ee3\u6807\u51c6\u3002\u5b83\u53ea\u9488\u5bf9\u9700\u8981\u89c4\u8303\u5316\u7684\u6837\u5f0f","url":"http://necolas.github.io/normalize.css/","urls":{"-3":"https://github.com/necolas/normalize.css"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":404},{"name":"Hover","desc":"CSS3\u52a8\u529b\u60ac\u505c\u6548\u679c\u7684\u96c6\u5408\uff0c\u9002\u7528\u4e8e\u94fe\u63a5\uff0c\u6309\u94ae\uff0c\u5fbd\u6807\uff0cSVG\uff0c\u7279\u8272\u56fe\u50cf\u7b49","url":"http://ianlunn.github.io/Hover/","urls":{"-3":"https://github.com/IanLunn/Hover"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":405},{"name":"github-markdown-css","desc":"\u590d\u5236GitHub Markdown\u6837\u5f0f\u7684\u6700\u5c0fCSS\u91cf","url":"https://sindresorhus.com/github-markdown-css/","urls":{"-3":"https://github.com/sindresorhus/github-markdown-css"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":406},{"icon":"https://avatars1.githubusercontent.com/u/8296347?s=200&v=4","name":"autoprefixer","desc":"Autoprefixer\u662f\u4e00\u6b3e\u81ea\u52a8\u7ba1\u7406\u6d4f\u89c8\u5668\u524d\u7f00\u7684\u63d2\u4ef6\uff0c\u5b83\u53ef\u4ee5\u89e3\u6790CSS\u6587\u4ef6\u5e76\u4e14\u6dfb\u52a0\u6d4f\u89c8\u5668\u524d\u7f00\u5230CSS\u5185\u5bb9\u91cc","url":"https://github.com/postcss/autoprefixer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":407},{"icon":"http://vivify.mkcreative.cz/assets/img/apple-icon-57x57.png","name":"vivify","desc":"Vivify\u662f\u514d\u8d39\u7684CSS\u52a8\u753b\u5e93\u3002","url":"http://vivify.mkcreative.cz/","urls":{"-3":"https://github.com/Martz90/vivify"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":408},{"name":"cubic-bezier","desc":"\u5728\u7ebf\u5236\u4f5cCSS\u52a8\u753b","url":"https://cubic-bezier.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":409}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u6807\u5e93","nav":[{"icon":"http://www.iconfont.cn/favicon.ico","name":"iconfont","desc":"\u963f\u91cc\u5988\u5988MUX\u503e\u529b\u6253\u9020\u7684\u77e2\u91cf\u56fe\u6807\u7ba1\u7406\u3001\u4ea4\u6d41\u5e73\u53f0","url":"http://www.iconfont.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":410},{"icon":"https://avatars1.githubusercontent.com/u/1505683?s=200&v=4","name":"Font Awesome","desc":"\u4e00\u5957\u7edd\u4f73\u7684\u56fe\u6807\u5b57\u4f53\u5e93\u548cCSS\u6846\u67b6","url":"https://fontawesome.com/","urls":{"-2":"https://fontawesome.com/","-1":"http://www.fontawesome.com.cn/","-3":"https://github.com/FortAwesome/Font-Awesome"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":411},{"icon":"https://livicons.com/apple-icon-57x57.png","name":"LivIcons Evolution","desc":"\u4f1a\u52a8\u7684\u7eafsvg\u77e2\u91cf\u56fe\u6807\u5e93","url":"https://livicons.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":412},{"icon":"https://avatars0.githubusercontent.com/u/3171503?s=200&v=4","name":"ionicons","desc":"\u9002\u7528\u4e8eIonic Framework\u548cWeb\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u7ea7\u56fe\u6807\u5b57\u4f53","url":"https://ionicons.com/","urls":{"-3":"https://github.com/ionic-team/ionicons"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":413},{"name":"material-design-icons","desc":"Google\u7684Material Design\u56fe\u6807","url":"https://material.io/tools/icons","urls":{"-3":"https://github.com/google/material-design-icons"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":414}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8d44\u6e90","nav":[{"icon":"https://cssbattle.dev/images/logo-square.png","name":"css battle","desc":"\u5728\u7ebf\u6bd4\u62fcCSS","url":"https://cssbattle.dev/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u8d44\u6e90"],"ownVisible":false,"id":415},{"icon":"http://zh.learnlayout.com/images/logo.png","name":"\u5b66\u4e60CSS\u5e03\u5c40","desc":"\u5b66\u4e60CSS\u5e03\u5c40","url":"http://zh.learnlayout.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u8d44\u6e90"],"ownVisible":false,"id":416}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"TypeScript","icon":"https://www.typescriptlang.org/favicon-32x32.png","nav":[{"title":"TypeScript","nav":[{"name":"TypeScript","desc":"TypeScript \u662f\u4e00\u79cd\u7531\u5fae\u8f6f\u5f00\u53d1\u7684\u81ea\u7531\u548c\u5f00\u6e90\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u5b83\u662fJavaScript\u7684\u4e00\u4e2a\u8d85\u96c6","url":"https://www.tslang.cn/index.html","urls":{"-2":"http://www.typescriptlang.org/","-1":"https://www.tslang.cn/index.html","-3":"https://github.com/Microsoft/TypeScript"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":417},{"name":"TypeSearch","desc":"\u641c\u7d22typescript \u7c7b\u578b\u5305 @types/node","url":"https://microsoft.github.io/TypeSearch/","urls":{"-3":"https://github.com/Microsoft/TypeSearch"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":418},{"name":"DefinitelyTyped","desc":"\u9ad8\u8d28\u91cfTypeScript\u7c7b\u578b\u5b9a\u4e49\u7684\u5b58\u50a8\u5e93","url":"http://definitelytyped.org/","urls":{"-3":"https://github.com/DefinitelyTyped/DefinitelyTyped"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":419},{"icon":"https://avatars0.githubusercontent.com/u/46634674?s=200&v=4","name":"typescript-eslint","desc":"Monorepo\u7528\u4e8e\u6240\u6709\u5de5\u5177\uff0c\u4f7fESLint\u80fd\u591f\u652f\u6301TypeScript","url":"https://github.com/typescript-eslint/typescript-eslint","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":420},{"name":"awesome-typescript","desc":"\u7528\u4e8e\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u7aef\u5f00\u53d1\u7684\u5f3a\u5927TypeScript\u8d44\u6e90\u7684\u96c6\u5408\u3002\u5728TypeScript\u4e2d\u7f16\u5199\u7cbe\u5f69\u7684JavaScript","url":"https://github.com/dzharii/awesome-typescript","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":421},{"name":"TypeScript \u5165\u95e8\u6559\u7a0b","desc":"TypeScript \u5165\u95e8\u6559\u7a0b","url":"https://ts.xcatliu.com/","urls":{"-3":"https://github.com/xcatliu/typescript-tutorial"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":422}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u8003\u8d44\u6599","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","nav":[{"title":"\u4e66\u7c4d","nav":[{"name":"JavaScript 20 \u5e74","desc":"JavaScript 20 \u5e74","url":"https://cn.history.js.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":423},{"name":"\u4f60\u4e0d\u77e5\u9053\u7684JavaScript","desc":"\u4f60\u4e0d\u77e5\u9053\u7684JavaScript","url":"https://github.com/getify/You-Dont-Know-JS","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":424},{"icon":"https://zh.javascript.info/img/favicon/favicon.png","name":"\u73b0\u4ee3 JavaScript \u6559\u7a0b","desc":"\u4ee5\u6700\u65b0\u7684 JavaScript \u6807\u51c6\u4e3a\u57fa\u51c6\u3002\u901a\u8fc7\u7b80\u5355\u4f46\u8db3\u591f\u8be6\u7ec6\u7684\u5185\u5bb9\uff0c\u4e3a\u4f60\u8bb2\u89e3\u4ece\u57fa\u7840\u5230\u9ad8\u9636\u7684 JavaScript \u76f8\u5173\u77e5\u8bc6","url":"https://zh.javascript.info/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":425},{"name":"ECMAScript 6\u5165\u95e8","desc":"ECMAScript 6\u5165\u95e8","url":"http://es6.ruanyifeng.com/#README","urls":{"-3":"https://github.com/ruanyf/es6tutorial/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":426},{"name":"JavaScript\u6559\u7a0b","desc":"JavaScript \u6807\u51c6\u53c2\u8003\u6559\u7a0b","url":"https://wangdoc.com/javascript/basic/index.html","urls":{"-3":"https://github.com/ruanyf/jstutorial"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":427}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u6863","nav":[{"name":"JavaScript Puzzlers","desc":"\u4f60\u771f\u7684\u4e86\u89e3JavaScript\u5417\uff1f\u6765\u8bd5\u8bd5\u5427\uff01","url":"http://javascript-puzzlers.herokuapp.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":428},{"icon":"https://avatars1.githubusercontent.com/u/41361384?s=200&v=4","name":"InterviewMap","desc":"\u6253\u9020\u6700\u597d\u7684\u9762\u8bd5\u56fe\u8c31","url":"https://yuchengkai.cn/docs/zh/","urls":{"-2":"https://yuchengkai.cn/docs/","-1":"https://yuchengkai.cn/docs/zh/","-3":"https://github.com/InterviewMap/CS-Interview-Knowledge-Map"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":429},{"name":"\u98de\u51b0\u65e9\u62a5","desc":"\u98de\u51b0\u65e9\u62a5","url":"http://fe.jskou.com/ice","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":430},{"name":"jsdoc","desc":"\u7528\u4e8eJavaScript\u7684API\u6587\u6863\u751f\u6210\u5668\u3002","url":"http://www.css88.com/doc/jsdoc/index.html","urls":{"-2":"http://usejsdoc.org/","-1":"http://www.css88.com/doc/jsdoc/index.html","-3":"https://github.com/jsdoc3/jsdoc"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":431},{"icon":"https://avatars3.githubusercontent.com/u/43479428?s=200&v=4","name":"30 seconds of code","desc":"\u7cbe\u9009\u7684\u6709\u7528JavaScript\u4ee3\u7801\u6bb5\u96c6\u5408\uff0c\u60a8\u53ef\u4ee5\u572830\u79d2\u6216\u66f4\u77ed\u7684\u65f6\u95f4\u5185\u7406\u89e3\u8fd9\u4e9b\u4ee3\u7801\u6bb5\u3002","url":"https://30secondsofcode.org/","urls":{"-3":"https://github.com/30-seconds/30-seconds-of-code"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":432},{"name":"33-js-concepts","desc":"JavaScript\u5f00\u53d1\u8005\u5e94\u61c2\u768433\u4e2a\u6982\u5ff5","url":"https://github.com/stephentian/33-js-concepts","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":433},{"icon":"https://avatars1.githubusercontent.com/u/1725583?s=200&v=4","name":"ECMAScript Proposals","desc":"\u8ddf\u8e2aECMAScript \u63d0\u6848","url":"https://tc39.github.io/process-document/","urls":{"-3":"https://github.com/tc39/proposals"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":434},{"icon":"https://avatars1.githubusercontent.com/u/1725583?s=200&v=4","name":"ecma262","desc":"ECMA-262\u7684\u72b6\u6001\uff0c\u6d41\u7a0b\u548c\u6587\u6863","url":"https://tc39.es/ecma262/","urls":{"-3":"https://github.com/tc39/ecma262"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":435},{"icon":"https://bonsaiden.github.io/JavaScript-Garden/favicon.ico?v=2","name":"JavaScript \u79d8\u5bc6\u82b1\u56ed","desc":"JavaScript \u8bed\u8a00\u6700\u53e4\u602a\u7528\u6cd5\u7684\u6587\u6863\u96c6\u5408","url":"https://bonsaiden.github.io/JavaScript-Garden/zh/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":436},{"name":"Airbnb JavaScript \u7f16\u7801\u89c4\u8303","desc":"Airbnb JavaScript \u7f16\u7801\u89c4\u8303","url":"https://github.com/yuche/javascript","urls":{"-2":"https://github.com/airbnb/javascript","-1":"https://github.com/yuche/javascript"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":437},{"name":"Daily-Interview-Question","desc":"\u5de5\u4f5c\u65e5\u6bcf\u5929\u4e00\u9053\u524d\u7aef\u5927\u5382\u9762\u8bd5\u9898\uff0c\u795d\u5927\u5bb6\u5929\u5929\u8fdb\u6b65\uff0c\u4e00\u5e74\u540e\u4f1a\u770b\u5230\u4e0d\u4e00\u6837\u7684\u81ea\u5df1","url":"https://github.com/Advanced-Frontend/Daily-Interview-Question","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":438},{"name":"javascript-algorithms","desc":"JavaScript \u7b97\u6cd5\u4e0e\u6570\u636e\u7ed3\u6784","url":"https://github.com/trekhleb/javascript-algorithms","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":439},{"icon":"https://avatars2.githubusercontent.com/u/26534952?s=200&v=4","name":"weekly","desc":"\u524d\u7aef\u7cbe\u8bfb\u5468\u520a","url":"https://github.com/dt-fe/weekly","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":440}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"id":0,"createdAt":"2021-01-23 09:32:06"},{"title":"Node.js","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","icon":"https://nodejs.org/static/images/favicons/favicon.ico","nav":[{"title":"\u5b98\u65b9","nav":[{"name":"Node.js","desc":"Node.js\xae \u662f\u4e00\u4e2a\u57fa\u4e8e Chrome V8 \u5f15\u64ce \u7684 JavaScript \u8fd0\u884c\u65f6","url":"http://nodejs.cn","urls":{"-2":"https://nodejs.org/en/","-1":"http://nodejs.cn","-3":"https://github.com/nodejs/node"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":441},{"name":"npm1","desc":"npm\u662fJavaScript\u4e16\u754c\u7684\u5305\u7ba1\u7406\u5de5\u5177,\u5e76\u4e14\u662f Node.js \u5e73\u53f0\u7684\u9ed8\u8ba4\u5305\u7ba1\u7406\u5de5\u5177","url":"https://www.npmjs.com/","urls":{"-2":"https://www.npmjs.com/","-1":"https://www.npmjs.com.cn/","-3":"https://github.com/npm/cli"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":442}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6a21\u5757","nav":[{"name":"urllib","desc":"\u5728\u590d\u6742\u7684\u4e16\u754c\u4e2d\u8bf7\u6c42HTTP(s)URL","url":"https://github.com/node-modules/urllib","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u6a21\u5757"],"ownVisible":false,"id":443},{"name":"formstream","desc":"multipart / form-data\u7f16\u7801\u6d41\uff0c\u7528\u4e8e\u6587\u4ef6\u4e0a\u4f20\u7684\u5e2e\u52a9\u7a0b\u5e8f\u3002","url":"https://github.com/node-modules/formstream","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u6a21\u5757"],"ownVisible":false,"id":444},{"name":"validate-npm-package-name","desc":"\u7ed9\u6211\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u6211\u4f1a\u544a\u8bc9\u4f60\u5b83\u662f\u5426\u662f\u6709\u6548\u7684npm\u8f6f\u4ef6\u5305\u540d\u79f0","url":"https://github.com/npm/validate-npm-package-name","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u6a21\u5757"],"ownVisible":false,"id":445}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://classic.yarnpkg.com/favicon.ico","name":"Yarn","desc":"\u5feb\u901f\u3001\u53ef\u9760\u3001\u5b89\u5168\u7684\u4f9d\u8d56\u7ba1\u7406","url":"https://yarnpkg.com/zh-Hans/","urls":{"-2":"https://yarnpkg.com/en/","-1":"https://yarnpkg.com/zh-Hans/","-3":"https://github.com/yarnpkg/yarn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":446},{"name":"awesome-nodejs","desc":"Node.js\u8f6f\u4ef6\u5305\u548c\u8d44\u6e90","url":"https://github.com/sindresorhus/awesome-nodejs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":447},{"name":"nodebestpractices","desc":"\u6700\u5927\u7684Node.js\u6700\u4f73\u5b9e\u8df5\u5217\u8868","url":"https://github.com/goldbergyoni/nodebestpractices","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":448}],"createdAt":"2021-01-23 09:32:06"},{"title":"CMS","nav":[{"icon":"https://avatars0.githubusercontent.com/u/4449608?s=200&v=4","name":"NodeBB","desc":"\u57fa\u4e8eNode.js\u7684\u8bba\u575b\u8f6f\u4ef6\uff0c\u4e3a\u73b0\u4ee3\u7f51\u7ad9","url":"https://nodebb.org/","urls":{"-3":"https://github.com/NodeBB/NodeBB"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","CMS"],"ownVisible":false,"id":449},{"icon":"https://avatars1.githubusercontent.com/u/2178663?s=200&v=4","name":"Ghost","desc":"Ghost \u662f\u57fa\u4e8e Node.js \u6784\u5efa\u7684\u5f00\u6e90\u535a\u5ba2\u5e73\u53f0\u3002Ghost \u5177\u6709\u6613\u7528\u7684\u4e66\u5199\u754c\u9762\u548c\u4f53\u9a8c,\u535a\u5ba2\u5185\u5bb9\u9ed8\u8ba4\u91c7\u7528 Markdown \u8bed\u6cd5\u4e66\u5199\u3002Ghost \u7684\u76ee\u6807\u662f\u53d6\u4ee3\u81c3\u80bf\u7684 Wordpress","url":"https://ghost.org/","urls":{"-3":"https://github.com/TryGhost/Ghost"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","CMS"],"ownVisible":false,"id":450}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8d44\u6599","nav":[{"name":"nodebestpractices","desc":"Node.js \u6700\u4f73\u5b9e\u8df5, \u6700\u5927\u7684\u6c47\u96c6\uff0c\u4e14\u6bcf\u5468\u90fd\u5728\u589e\u957f - \u5f53\u524d\uff0c\u8d85\u8fc750\u4e2a\u6700\u4f73\u5b9e\u73b0\uff0c\u6837\u5f0f\u6307\u5357\uff0c\u67b6\u6784\u5efa\u8bae\u5df2\u7ecf\u5448\u73b0","url":"https://github.com/goldbergyoni/nodebestpractices","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u8d44\u6599"],"ownVisible":false,"id":451}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4f9d\u8d56\u5305","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","nav":[{"title":"\u7f51\u7edc\u8bf7\u6c42","nav":[{"name":"request","desc":"\u7b80\u5316\u7684HTTP\u8bf7\u6c42\u5ba2\u6237\u7aef","url":"https://github.com/request/request","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":452},{"name":"superagent","desc":"\u4e00\u4e2a\u5c0f\u578b\u6e10\u8fdb\u5f0f\u5ba2\u6237\u7aefHTTP\u8bf7\u6c42\u5e93\uff0cNode.js\u6a21\u5757\u5177\u6709\u76f8\u540c\u7684API\uff0c\u5177\u6709\u8bb8\u591a\u9ad8\u7ea7HTTP\u5ba2\u6237\u7aef\u529f\u80fd","url":"http://visionmedia.github.io/superagent/","urls":{"-3":"https://github.com/visionmedia/superagent"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":453},{"name":"axios","desc":"\u57fa\u4e8ePromise\u7684HTTP\u5ba2\u6237\u7aef\uff0c\u7528\u4e8e\u6d4f\u89c8\u5668\u548cnode.js","url":"https://github.com/axios/axios","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":454},{"name":"node-fetch","desc":"\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u6a21\u5757\uff0c\u5c06window.fetch\u5e26\u5230Node.js","url":"https://github.com/node-fetch/node-fetch","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":455},{"name":"bent","desc":"\u5e26\u6709async await\u7684\u529f\u80fd\u6027JS HTTP\u5ba2\u6237\u7aef\uff08Node.js\u548cFetch\uff09","url":"https://github.com/mikeal/bent","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":456},{"name":"superagent-proxy","desc":"superagent\u4ee3\u7406\u6269\u5c55\uff0c\u8fd9\u4f7f\u60a8\u53ef\u4ee5\u901a\u8fc7\u67d0\u79cd\u4ee3\u7406\u6765\u4ee3\u7406HTTP\u8bf7\u6c42","url":"https://github.com/TooTallNate/superagent-proxy","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":457}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5355\u5143\u6d4b\u8bd5","nav":[{"icon":"https://pptr.dev/favicons/apple-touch-icon.png","name":"Puppeteer","desc":"Puppeteer\u662f\u4e00\u4e2aNode\u5e93\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u9ad8\u7ea7API\u6765\u901a\u8fc7DevTools\u534f\u8bae\u63a7\u5236Chromium\u6216Chrome","url":"https://pptr.dev/","urls":{"-2":"https://pptr.dev/","-1":"https://zhaoqize.github.io/puppeteer-api-zh_CN/","-3":"https://github.com/GoogleChrome/puppeteer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":458},{"icon":"https://avatars0.githubusercontent.com/u/8908513?s=200&v=4","name":"cypress","desc":"\u5bf9\u6d4f\u89c8\u5668\u4e2d\u8fd0\u884c\u7684\u6240\u6709\u5185\u5bb9\u8fdb\u884c\u5feb\u901f\uff0c\u8f7b\u677e\u548c\u53ef\u9760\u7684\u6d4b\u8bd5\uff0c\uff08\u7c7bPuppeteer\uff09","url":"https://www.cypress.io/","urls":{"-3":"https://github.com/cypress-io/cypress"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":459},{"icon":"https://avatars0.githubusercontent.com/u/8770005?s=200&v=4","name":"Mocha","desc":"Node.js\u548c\u6d4f\u89c8\u5668\u7684\u7b80\u5355\uff0c\u7075\u6d3b\uff0c\u6709\u8da3\u7684JavaScript\u6d4b\u8bd5\u6846\u67b6","url":"https://mochajs.org/","urls":{"-3":"https://github.com/mochajs/mocha"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":460},{"icon":"https://avatars0.githubusercontent.com/u/1515293?s=200&v=4","name":"chai","desc":"node.js\u7684BDD/TDD\u65ad\u8a00\u6846\u67b6\u548c\u53ef\u4ee5\u4e0e\u4efb\u4f55\u6d4b\u8bd5\u6846\u67b6\u914d\u5bf9\u7684\u6d4f\u89c8\u5668","url":"http://www.chaijs.com/","urls":{"-3":"https://github.com/chaijs/chai"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":461},{"icon":"https://avatars2.githubusercontent.com/u/8527916?s=200&v=4","name":"ava","desc":"\u672a\u6765\u7684JavaScript\u6d4b\u8bd5\u8fd0\u884c\u5668","url":"https://github.com/avajs/ava","urls":{"-1":"https://github.com/avajs/ava-docs/blob/master/zh_CN/readme.md"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":462},{"icon":"https://jestjs.io/img/favicon/favicon.ico","name":"Jest","desc":"Jest\u662f\u4e00\u4e2a\u4ee4\u4eba\u6109\u5feb\u7684JavaScript\u6d4b\u8bd5\u6846\u67b6\uff0c\u4e13\u6ce8\u4e8e\u7b80\u5355\u6027\u3002","url":"https://jestjs.io/zh-Hans/","urls":{"-3":"https://github.com/facebook/jest"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":463},{"icon":"https://avatars1.githubusercontent.com/u/4243232?s=200&v=4","name":"testcafe","desc":"\u4e00\u4e2aNode.js\u5de5\u5177\uff0c\u7528\u4e8e\u81ea\u52a8\u5316\u7aef\u5230\u7aefWeb\u6d4b\u8bd5","url":"https://devexpress.github.io/testcafe/","urls":{"-3":"https://github.com/DevExpress/testcafe"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":464},{"icon":"https://avatars2.githubusercontent.com/u/26206404?s=200&v=4","name":"jest-puppeteer","desc":"\u4f7f\u7528Jest\uff06Puppeteer\u8fd0\u884c\u6d4b\u8bd5 \u{1f3aa}\u2728","url":"https://github.com/smooth-code/jest-puppeteer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":465},{"icon":"https://kulshekhar.github.io/ts-jest/assets/img/logo.png","name":"ts-jest","desc":"\u5177\u6709\u5bf9Jest\u7684Sourcemap\u652f\u6301\u7684TypeScript\u9884\u5904\u7406\u5668","url":"https://kulshekhar.github.io/ts-jest","urls":{"-3":"https://github.com/kulshekhar/ts-jest"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":466},{"icon":"https://avatars2.githubusercontent.com/u/26206404?s=200&v=4","name":"jest-extended","desc":"\u6269\u5c55 jest \u5339\u914d\u5668","url":"https://github.com/jest-community/jest-extended","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":467}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"name":"node-mysql2","desc":"node.js\u7684\u5feb\u901fnode-mysql\u517c\u5bb9\u7684mysql\u9a71\u52a8\u7a0b\u5e8f","url":"https://github.com/sidorares/node-mysql2","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":468},{"name":"sequelize","desc":"\u57fa\u4e8e promise \u7684 Node.js ORM, \u76ee\u524d\u652f\u6301 Postgres, MySQL, SQLite \u548c Microsoft SQL Server. \u5b83\u5177\u6709\u5f3a\u5927\u7684\u4e8b\u52a1\u652f\u6301, \u5173\u8054\u5173\u7cfb, \u8bfb\u53d6\u548c\u590d\u5236\u7b49\u529f\u80fd","url":"https://demopark.github.io/sequelize-docs-Zh-CN/","urls":{"-2":"http://docs.sequelizejs.com/","-1":"https://demopark.github.io/sequelize-docs-Zh-CN/","-3":"https://github.com/sequelize/sequelize"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":469},{"name":"mongoose","desc":"mongodb\u5bf9\u8c61\u6a21\u578b\u8bbe\u8ba1\u7528\u4e8e\u5728\u5f02\u6b65\u73af\u5883\u4e2d\u5de5\u4f5c\u3002","url":"http://www.mongoosejs.net/","urls":{"-2":"http://mongoosejs.com/","-1":"http://www.mongoosejs.net/","-3":"https://github.com/Automattic/mongoose"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":470},{"name":"ioredis","desc":"\u9002\u7528\u4e8eNode.js\uff0c\u4ee5\u6027\u80fd\u4e3a\u4e2d\u5fc3\u4e14\u529f\u80fd\u9f50\u5168\u7684Redis\u5ba2\u6237\u7aef\u3002","url":"https://github.com/luin/ioredis","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":471},{"name":"objection.js","desc":"Objection.js\u662fNode.js\u7684\u4e00\u4e2aORM \uff0c\u5b83\u65e8\u5728\u907f\u514d\u4f7f\u7528SQL\u548c\u5e95\u5c42\u6570\u636e\u5e93\u5f15\u64ce\u7684\u5168\u90e8\u529f\u80fd\uff0c\u540c\u65f6\u5c3d\u53ef\u80fd\u7b80\u5355\u5730\u5c06magic\u4fdd\u6301\u5728\u6700\u4f4e\u9650\u5ea6\u3002","url":"http://vincit.github.io/objection.js/","urls":{"-3":"https://github.com/Vincit/objection.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":472},{"name":"nedb","desc":"JavaScript\u6570\u636e\u5e93\uff0c\u7528\u4e8eNode.js\uff0cnw.js\uff0celectron\u548c\u6d4f\u89c8\u5668","url":"https://github.com/louischatriot/nedb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":473},{"icon":"https://avatars0.githubusercontent.com/u/20165699?s=200&v=4","name":"typeorm","desc":"ORM for TypeScript\u548cJavaScript\uff08ES7\uff0cES6\uff0cES5\uff09\u3002\u652f\u6301MySQL\uff0cPostgreSQL\uff0cMariaDB\uff0cSQLite\uff0cMS SQL Server\uff0cOracle\uff0cWebSQL\u6570\u636e\u5e93\u3002\u9002\u7528\u4e8eNodeJS\uff0c\u6d4f\u89c8\u5668\uff0cIonic\uff0cCordova\u548cElectron\u5e73\u53f0","url":"http://typeorm.io","urls":{"-1":"https://github.com/typeorm/typeorm/tree/master/docs/zh_CN","-3":"https://github.com/typeorm/typeorm"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":474},{"icon":"https://avatars0.githubusercontent.com/u/10490573?s=200&v=4","name":"knexjs","desc":"PostgreSQL\uff0cMySQL\u548cSQLite3\u7684\u67e5\u8be2\u6784\u5efa\u5668\uff0c\u65e8\u5728\u7075\u6d3b\uff0c\u53ef\u79fb\u690d\u4e14\u6613\u4e8e\u4f7f\u7528\u3002","url":"http://knexjs.org","urls":{"-3":"https://github.com/knex/knex"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":475},{"icon":"https://avatars1.githubusercontent.com/u/5845577?s=200&v=4","name":"node-redis","desc":"\u9ad8\u6027\u80fdNode.js Redis\u5ba2\u6237\u7aef\u3002","url":"https://github.com/NodeRedis/node-redis","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":476}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u5f62\u76f8\u5173","nav":[{"name":"node-canvas","desc":"node-canvas\u662fNode.js\u7684Cairo -backed Canvas\u5b9e\u73b0\u3002","url":"https://github.com/Automattic/node-canvas","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":477},{"name":"svg-captcha","desc":"\u5728node.js\u4e2d\u751f\u6210svg\u9a8c\u8bc1\u7801","url":"https://github.com/lemonce/svg-captcha","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":478},{"name":"ccap","desc":"node.js\u4f7f\u7528C++\u5e93CImg\u751f\u6210\u9a8c\u8bc1\u7801\uff0c\u65e0\u9700\u5b89\u88c5\u4efb\u4f55\u5176\u4ed6\u5e93\u6216\u8f6f\u4ef6","url":"https://github.com/DoubleSpout/ccap","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":479},{"name":"text-to-svg","desc":"\u5c06\u6587\u672c\u8f6c\u6362\u4e3aSVG\u8def\u5f84\u800c\u4e0d\u4f9d\u8d56\u4e8e\u672c\u673a","url":"https://github.com/shrhdk/text-to-svg","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":480},{"name":"svg2png","desc":"\u4f7f\u7528PhantomJS\u5c06SVG\u8f6c\u6362\u4e3aPNG","url":"https://github.com/domenic/svg2png","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":481}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4ee3\u7406","nav":[{"name":"node-http-proxy","desc":"\u4e00\u4e2aHTTP\u53ef\u7f16\u7a0b\u4ee3\u7406\u5e93\uff0c\u652f\u6301websocket\u3002\u5b83\u9002\u7528\u4e8e\u5b9e\u73b0\u53cd\u5411\u4ee3\u7406\u548c\u8d1f\u8f7d\u5e73\u8861\u5668\u7b49\u7ec4\u4ef6","url":"https://github.com/nodejitsu/node-http-proxy","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u4ee3\u7406"],"ownVisible":false,"id":482},{"name":"http-proxy-middleware","desc":"\u7528\u4e8e\u8fde\u63a5\uff0c\u5feb\u901f\u548c\u6d4f\u89c8\u5668\u540c\u6b65\u7684\u5355\u7ebf\u7a0bnode.js http-proxy\u4e2d\u95f4\u4ef6\uff08\u57fa\u4e8enode-http-proxy\uff09","url":"https://github.com/chimurai/http-proxy-middleware","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u4ee3\u7406"],"ownVisible":false,"id":483}],"createdAt":"2021-01-23 09:32:06"},{"title":"AST\u8f85\u52a9\u5de5\u5177","nav":[{"name":"esprima","desc":"ECMAScript\u89e3\u6790\u57fa\u7840\u67b6\u6784\uff0c\u53ef\u8fdb\u884c\u591a\u7528\u9014\u5206\u6790, \u5c06\u4ee3\u7801\u8f6c\u6362\u6210AST","url":"https://esprima.org/","urls":{"-3":"https://github.com/jquery/esprima"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","AST\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":484},{"name":"recast","desc":"JavaScript AST\u8f6c\u6362\u5668\uff0c\u975e\u7834\u574f\u6027\u6f02\u4eae\u6253\u5370\u673a\u548c\u81ea\u52a8\u6e90\u6620\u5c04\u751f\u6210\u5668","url":"https://github.com/benjamn/recast","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","AST\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":485}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u4ef6\u76f8\u5173","nav":[{"name":"node-xlsx","desc":"NodeJS excel\u6587\u4ef6\u89e3\u6790\u5668\u548c\u6784\u5efa\u5668","url":"https://github.com/mgcrea/node-xlsx","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6587\u4ef6\u76f8\u5173"],"ownVisible":false,"id":486},{"name":"fs-extra","desc":"\u64cd\u4f5c\u7cfb\u7edf\u6587\u4ef6\uff0c\u7528\u4e8e\u66ff\u4ee3\u5185\u7f6e\u7684fs\u6a21\u5757","url":"https://www.xiejiahe.com/detail/5b52fca1df53a14006035e1e","urls":{"-1":"https://www.xiejiahe.com/detail/5b52fca1df53a14006035e1e","-3":"https://github.com/jprichardson/node-fs-extra"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6587\u4ef6\u76f8\u5173"],"ownVisible":false,"id":487},{"icon":"https://avatars0.githubusercontent.com/u/5826089?s=200&v=4","name":"js-xlsx","desc":"SheetJS\u793e\u533a\u7248 - \u7535\u5b50\u8868\u683c\u5de5\u5177\u5305","url":"https://sheetjs.com/","urls":{"-3":"https://github.com/SheetJS/js-xlsx"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6587\u4ef6\u76f8\u5173"],"ownVisible":false,"id":488},{"icon":"https://www.archiverjs.com/images/logo.svg","name":"node-archiver","desc":"\u6587\u4ef6\u538b\u7f29","url":"https://www.archiverjs.com/","urls":{"-3":"https://github.com/archiverjs/node-archiver"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6587\u4ef6\u76f8\u5173"],"ownVisible":false,"id":489}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5fae\u4fe1\u5f00\u53d1","nav":[{"name":"wechat-oauth","desc":"\u5fae\u4fe1\u516c\u5171\u5e73\u53f0OAuth\u63a5\u53e3\u6d88\u606f\u63a5\u53e3\u670d\u52a1\u4e2d\u95f4\u4ef6\u4e0eAPI SDK","url":"https://github.com/node-webot/wechat-oauth","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5fae\u4fe1\u5f00\u53d1"],"ownVisible":false,"id":490},{"name":"wechat-api","desc":"\u5fae\u4fe1\u516c\u5171\u5e73\u53f0API","url":"https://github.com/node-webot/wechat-api","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5fae\u4fe1\u5f00\u53d1"],"ownVisible":false,"id":491},{"name":"wechat","desc":"\u5fae\u4fe1\u516c\u5171\u5e73\u53f0\u6d88\u606f\u63a5\u53e3\u670d\u52a1\u4e2d\u95f4\u4ef6","url":"https://github.com/node-webot/wechat","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5fae\u4fe1\u5f00\u53d1"],"ownVisible":false,"id":492},{"name":"wechaty","desc":"\u662f\u9002\u7528\u4e8e\u5fae\u4fe1\u4e2a\u4eba\u5e10\u6237\u7684Bot SDK \uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u521b\u5efa6\u884cjavascript\u7684\u673a\u5668\u4eba","url":"https://chatie.io/wechaty/","urls":{"-3":"https://github.com/Chatie/wechaty"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5fae\u4fe1\u5f00\u53d1"],"ownVisible":false,"id":493}],"createdAt":"2021-01-23 09:32:06"},{"title":"CLI","nav":[{"name":"Glob","desc":"\u5339\u914d\u6587\u4ef6\u3002 **/*.js","url":"https://github.com/isaacs/node-glob","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":494},{"name":"prompts","desc":"\u8f7b\u5de7\uff0c\u7f8e\u89c2\u548c\u7528\u6237\u53cb\u597d\u7684\u4ea4\u4e92\u5f0f\u63d0\u793a","url":"https://github.com/terkelg/prompts","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":495},{"icon":"https://avatars3.githubusercontent.com/u/21160645?s=200&v=4","name":"enquirer","desc":"\u65f6\u5c1a\uff0c\u76f4\u89c2\u548c\u7528\u6237\u53cb\u597d\u7684\u63d0\u793a","url":"https://github.com/enquirer/enquirer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":496},{"icon":"https://avatars2.githubusercontent.com/u/887802?s=200&v=4","name":"cli-table3","desc":"\u5e26\u6709Node.JS\u7684CLI\u7684\u6f02\u4eaeunicode\u8868","url":"https://github.com/cli-table/cli-table3","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":497},{"name":"commander.js","desc":"node.js\u547d\u4ee4\u884c\u754c\u9762\u7684\u5b8c\u6574\u89e3\u51b3\u65b9\u6848\uff0c\u53d7Ruby\u6307\u6325\u5b98\u7684\u542f\u53d1","url":"https://github.com/tj/commander.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":498},{"name":"ora","desc":"\u4f18\u96c5\u7684\u7ec8\u7aef\u5fae\u8c03\u5668","url":"https://github.com/sindresorhus/ora","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":499},{"name":"Inquirer.js","desc":"\u5e38\u7528\u4ea4\u4e92\u5f0f\u547d\u4ee4\u884c\u7528\u6237\u754c\u9762\u7684\u96c6\u5408","url":"https://github.com/SBoudrias/Inquirer.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":500},{"name":"shelljs","desc":"Node.js\u7684\u53ef\u79fb\u690dUnix shell\u547d\u4ee4","url":"https://documentup.com/shelljs/shelljs","urls":{"-3":"https://github.com/shelljs/shelljs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":501},{"name":"download-git-repo","desc":"\u4e0b\u8f7d\u5e76\u63d0\u53d6git\u5b58\u50a8\u5e93\uff08GitHub\uff0cGitLab\uff0cBitbucket\uff09","url":"https://github.com/flipxfx/download-git-repo","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":502},{"icon":"https://avatars0.githubusercontent.com/u/6078720?s=200&v=4","name":"node-semver","desc":"node\u7684semver\u89e3\u6790\u5668","url":"https://github.com/npm/node-semver","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":503},{"name":"node-progress","desc":"node.js\u7684\u7075\u6d3bascii\u8fdb\u5ea6\u6761","url":"https://github.com/visionmedia/node-progress","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":504},{"name":"node-qrcode","desc":"\u4e8c\u7ef4\u7801\u751f\u6210","url":"https://github.com/soldair/node-qrcode","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":505},{"name":"open","desc":"\u6253\u5f00URL\uff0c\u6587\u4ef6\uff0c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5185\u5bb9\u3002\u8de8\u5e73\u53f0\u3002","url":"https://github.com/sindresorhus/open","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":506},{"name":"ssh2","desc":"\u7528\u7eafJavaScript\u7f16\u5199\u7684SSH2\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u6a21\u5757\uff0c\u7528\u4e8enode.js","url":"https://github.com/mscdex/ssh2","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":507},{"name":"minimist","desc":"\u89e3\u6790\u53c2\u6570\u9009\u9879","url":"https://github.com/substack/minimist","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":508},{"name":"node-clear","desc":"\u6e05\u7a7a\u7ec8\u7aef\u5c4f\u5e55\u4fe1\u606f","url":"https://github.com/bahamas10/node-clear","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":509},{"icon":"https://avatars2.githubusercontent.com/u/13122722?s=200&v=4","name":"chalk","desc":"\u7ec8\u7aef\u5b57\u7b26\u4e32\u6837\u5f0f","url":"https://github.com/chalk/chalk","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":510},{"icon":"https://avatars3.githubusercontent.com/u/16504989?s=200&v=4","name":"yargs","desc":"\u901a\u8fc7\u89e3\u6790\u53c2\u6570\u5e76\u751f\u6210\u4f18\u96c5\u7684\u7528\u6237\u754c\u9762\u6765\u5e2e\u52a9\u60a8\u6784\u5efa\u4ea4\u4e92\u5f0f\u547d\u4ee4\u884c\u5de5\u5177\u3002","url":"https://github.com/yargs/yargs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":511}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6a21\u677f\u5f15\u64ce","nav":[{"icon":"https://handlebarsjs.com/images/favicon.png","name":"handlebars","desc":"JavaScript\u6a21\u677f\u5f15\u64ce","url":"http://handlebarsjs.com/","urls":{"-3":"https://github.com/wycats/handlebars.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6a21\u677f\u5f15\u64ce"],"ownVisible":false,"id":512},{"icon":"https://ejs.co/favicon.svg","name":"ejs","desc":"JavaScript\u6a21\u677f\u5f15\u64ce","url":"https://ejs.co/","urls":{"-3":"https://github.com/mde/ejs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6a21\u677f\u5f15\u64ce"],"ownVisible":false,"id":513},{"icon":"https://github.githubassets.com/favicons/favicon.svg","name":"mustache.js","desc":"\u4f7f\u7528JavaScript\u7684\u65e0\u903b\u8f91{{mustache}}\u6a21\u677f","url":"https://github.com/janl/mustache.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6a21\u677f\u5f15\u64ce"],"ownVisible":false,"id":514}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"node-xml2js","desc":"\u7b80\u5355\u7684XML\u5230JavaScript\u5bf9\u8c61\u8f6c\u6362\u5668\u3002\u5b83\u652f\u6301\u53cc\u5411\u8f6c\u6362\u3002\u4f7f\u7528sax-js\u548c xmlbuilder-js","url":"https://github.com/Leonidas-from-XIV/node-xml2js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":515},{"name":"iconv-lite","desc":"\u7eafJavaScript\u4e2d\u8f6c\u6362\u5b57\u7b26\u7f16\u7801\u3002","url":"https://github.com/ashtuchkin/iconv-lite","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":516},{"name":"node-uuid","desc":"\u5728JavaScript\u4e2d\u751f\u6210\u7b26\u5408RFC\u7684UUID","url":"https://github.com/kelektiv/node-uuid","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":517},{"name":"nativefier","desc":"\u4f7f\u4efb\u4f55\u7f51\u9875\u6210\u4e3a\u684c\u9762\u5e94\u7528\u7a0b\u5e8f","url":"https://github.com/jiahaog/nativefier","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":518},{"name":"getmac","desc":"\u901a\u8fc7Node.js\u83b7\u53d6\u5f53\u524d\u8ba1\u7b97\u673a\u7684mac\u5730\u5740","url":"https://github.com/bevry/getmac","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":519},{"name":"http-server","desc":"\u4e00\u4e2a\u7b80\u5355\u7684\u96f6\u914d\u7f6e\u547d\u4ee4\u884chttp\u670d\u52a1\u5668","url":"https://github.com/indexzero/http-server","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":520},{"name":"node-schedule","desc":"Node\u7684\u7c7b\u4f3ccron-like\u548c\u975enot-cron-like\u7684\u4f5c\u4e1a\u8c03\u5ea6\u7a0b\u5e8f\u3002","url":"https://github.com/node-schedule/node-schedule","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":521},{"name":"qrcode-terminal","desc":"QRCode\u7ec8\u7aef\u7248","url":"https://github.com/gtanner/qrcode-terminal","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":522},{"icon":"https://avatars1.githubusercontent.com/u/13612933?s=200&v=4","name":"localtunnel","desc":"localtunnel\u5c06\u60a8\u7684localhost\u66b4\u9732\u7ed9\u4e16\u754c\uff0c\u4ee5\u4fbf\u4e8e\u6d4b\u8bd5\u548c\u5171\u4eab\uff01\u65e0\u9700\u6df7\u6dc6DNS\u6216\u90e8\u7f72\u53ea\u662f\u4e3a\u4e86\u8ba9\u5176\u4ed6\u4eba\u6d4b\u8bd5\u60a8\u7684\u66f4\u6539","url":"https://localtunnel.github.io/www/","urls":{"-3":"https://github.com/localtunnel/localtunnel"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":523},{"icon":"http://www.passportjs.org/images/favicon/apple-icon-57x57.png","name":"passport","desc":"Node.js\u7684\u7b80\u5355\uff0c\u4e0d\u663e\u773c\u7684\u8eab\u4efd\u9a8c\u8bc1","url":"http://www.passportjs.org/","urls":{"-3":"https://github.com/jaredhanson/passport"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":524},{"name":"parameter","desc":"\u53c2\u6570\u9a8c\u8bc1\u5de5\u5177","url":"https://github.com/node-modules/parameter","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":525},{"name":"bytes","desc":"\u7528\u4e8e\u89e3\u6790\u5b57\u7b26\u4e32\u5b57\u8282, b/kb/mb/gb/tb/pb","url":"https://github.com/visionmedia/bytes.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":526},{"icon":"https://avatars2.githubusercontent.com/u/723678?s=200&v=4","name":"js-yaml","desc":"JavaScript YAML\u89e3\u6790\u5668\u548c\u8f6c\u50a8\u5668\u3002\u975e\u5e38\u5feb","url":"https://nodeca.github.io/js-yaml/","urls":{"-3":"https://github.com/nodeca/js-yaml"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":527},{"icon":"https://avatars0.githubusercontent.com/u/34631683?s=200&v=4","name":"acorn","desc":"\u4e00\u4e2a\u5c0f\u578b\uff0c\u57fa\u4e8eJavaScript\u7684\u5feb\u901fJavaScript\u89e3\u6790\u5668","url":"https://github.com/acornjs/acorn","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":528},{"name":"figlet.js","desc":"\u7528JavaScript\u7f16\u5199\u7684FIG\u9a71\u52a8\u7a0b\u5e8f\uff0c\u65e8\u5728\u5b8c\u5168\u5b9e\u73b0FIGfont\u89c4\u8303, \u751f\u6210ascii","url":"https://github.com/patorjk/figlet.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":529},{"name":"node-printer","desc":"\u672c\u673a node.js \u6253\u5370\u673a","url":"https://github.com/tojocky/node-printer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":530},{"name":"fontmin","desc":"\u65e0\u7f1d\u7f29\u5c0f\u5b57\u4f53","url":"https://github.com/ecomfe/fontmin","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":531},{"icon":"https://avatars1.githubusercontent.com/u/5658226?s=200&v=4","name":"morgan","desc":"Node.js\u7684HTTP\u8bf7\u6c42\u8bb0\u5f55\u5668\u4e2d\u95f4\u4ef6","url":"https://github.com/expressjs/morgan","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":532},{"icon":"https://avatars0.githubusercontent.com/u/9271229?s=200&v=4","name":"jsdom","desc":"\u4e0eNode.js\u4e00\u8d77\u4f7f\u7528\u7684\u5404\u79cdWeb\u6807\u51c6\u7684JavaScript\u5b9e\u73b0","url":"https://github.com/jsdom/jsdom","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":533}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8de8\u5e73\u53f0\u6846\u67b6","nav":[{"title":"Electron","icon":"https://www.electronjs.org/images/favicon.ico","nav":[{"name":"Electron","desc":"\u4f7f\u7528 JavaScript, HTML \u548c CSS \u6784\u5efa\u8de8\u5e73\u53f0\u7684\u684c\u9762\u5e94\u7528","url":"https://electronjs.org/","urls":{"-3":"https://github.com/electron/electron"},"icon":"https://www.electronjs.org/images/favicon.ico","createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":534},{"name":"electron-packager","desc":"\u901a\u8fc7JS\u6216CLI\u81ea\u5b9a\u4e49\u548c\u5c01\u88c5\u60a8\u7684Electron\u5e94\u7528\u7a0b\u5e8f\u4e0e\u7279\u5b9a\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u7684\u8f6f\u4ef6\u5305\uff08.app\uff0c.exe\u7b49\uff09","url":"https://github.com/electron-userland/electron-packager","icon":"https://www.electronjs.org/images/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":535},{"name":"electron-installer-dmg","desc":"\u4f7f\u7528AppDMG\u4e3a\u7535\u5b50\u5e94\u7528\u7a0b\u5e8f\u521b\u5efaDMG\u5b89\u88c5\u7a0b\u5e8f","url":"https://github.com/electron-userland/electron-installer-dmg","icon":"https://www.electronjs.org/images/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":536},{"icon":"https://simulatedgreg.gitbooks.io/electron-vue/content/gitbook/images/apple-touch-icon-precomposed-152.png","name":"electron-vue","desc":"\u57fa\u4e8e vue (\u57fa\u672c\u4e0a\u662f\u5b83\u542c\u8d77\u6765\u7684\u6837\u5b50) \u6765\u6784\u9020 electron \u5e94\u7528\u7a0b\u5e8f\u7684\u6837\u677f\u4ee3\u7801\u3002","url":"https://simulatedgreg.gitbooks.io/electron-vue/content/cn/","urls":{"-2":"https://simulatedgreg.gitbooks.io/electron-vue/content/en/","-1":"https://simulatedgreg.gitbooks.io/electron-vue/content/cn/","-3":"https://github.com/SimulatedGREG/electron-vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":537},{"icon":"https://www.electron.build/assets/images/favicon.png","name":"electron-builder","desc":"\u4e00\u4e2a\u5f00\u7bb1\u5373\u7528\u7684\u5b8c\u6574\u89e3\u51b3\u65b9\u6848\uff0c\u7528\u4e8e\u5c06Electron, Proton Native or Muon \u6253\u5305\u3001\u6784\u5efa\u6210\u652f\u6301macOS, Windows and Linux\u4e09\u5927\u7cfb\u7edf\u7684\uff0c\u53ef\u201d\u81ea\u52a8\u66f4\u65b0\u201d\u7684\u53ef\u53d1\u5e03\u5b89\u88c5\u7a0b\u5e8f","url":"https://www.electron.build/","urls":{"-3":"https://github.com/electron-userland/electron-builder"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":538},{"icon":"https://electron-react-boilerplate.js.org/logo/logo.png","name":"electron-react-boilerplate","desc":"\u57fa\u4e8eReact\u53ef\u6269\u5c55\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u7684App","url":"https://electron-react-boilerplate.js.org/","urls":{"-3":"https://github.com/electron-react-boilerplate/electron-react-boilerplate"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":539},{"name":"menubar","desc":"Electron\u521b\u5efa\u83dc\u5355\u680f\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u7ea7\u65b9\u6cd5\u3002","url":"https://github.com/maxogden/menubar","icon":"https://www.electronjs.org/images/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":540}],"createdAt":"2021-01-23 09:32:06"},{"title":"nw.js","nav":[{"icon":"https://nwjs.org.cn/asset/img/favicon.ico","name":"nw.js","desc":"\u4eceDOM/WebWorker\u5c42,\u76f4\u63a5\u8c03\u7528\u6240\u6709\u7684Node\u6a21\u5757\uff0c\u4f7f\u7528\u73b0\u6709\u7684web\u6280\u672f\uff0c\u5f00\u542f\u4e00\u4e2a\u5168\u65b0\u7684\u7f16\u5199\u5e94\u7528\u7684\u65b9\u5f0f","url":"https://nwjs.org.cn/","urls":{"-2":"https://nwjs.io/","-1":"https://nwjs.org.cn/","-3":"https://github.com/nwjs/nw.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","nw.js"],"ownVisible":false,"id":541},{"icon":"https://nwjs.org.cn/asset/img/favicon.ico","name":"nw-builder","desc":"\u4ee5\u7f16\u7a0b\u65b9\u5f0f\u6216\u901a\u8fc7CLI \u6784\u5efa\u9002\u7528\u4e8eMac\uff0cWin\u548cLinux\u7684NW.js\u5e94\u7528\u7a0b\u5e8f\u3002","url":"https://github.com/nwjs-community/nw-builder","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","nw.js"],"ownVisible":false,"id":542},{"icon":"https://nwjs.org.cn/asset/img/favicon.ico","name":"nwjs-ffmpeg-prebuilt","desc":"FFMpeg\u9884\u6784\u5efa\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u5177\u6709\u4e13\u6709\u7684\u7f16\u89e3\u7801\u5668\u548c\u6784\u5efa\u7a97\u53e3\u3002","url":"https://github.com/iteufel/nwjs-ffmpeg-prebuilt","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","nw.js"],"ownVisible":false,"id":543}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"WEB\u6846\u67b6","nav":[{"title":"nest","nav":[{"icon":"https://avatars1.githubusercontent.com/u/28507035?s=200&v=4","name":"nest","desc":"Nest \u662f\u4e00\u4e2a\u7528\u4e8e\u6784\u5efa\u9ad8\u6548\uff0c\u53ef\u6269\u5c55\u7684 Node.js \u670d\u52a1\u5668\u7aef\u5e94\u7528\u7a0b\u5e8f\u7684\u6846\u67b6\u3002\u5b83\u4f7f\u7528\u6e10\u8fdb\u5f0f JavaScript\uff0c\u5185\u7f6e\u5e76\u5b8c\u5168\u652f\u6301 TypeScript\uff08\u4f46\u4ecd\u7136\u5141\u8bb8\u5f00\u53d1\u4eba\u5458\u4f7f\u7528\u7eaf JavaScript \u7f16\u5199\u4ee3\u7801\uff09\u5e76\u7ed3\u5408\u4e86 OOP\uff08\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\uff09\uff0cFP\uff08\u529f\u80fd\u7f16\u7a0b\uff09\u548c FRP\uff08\u529f\u80fd\u53cd\u5e94\u7f16\u7a0b\uff09\u7684\u5143\u7d20","url":"https://docs.nestjs.cn/6/introduction","urls":{"-2":"https://nestjs.com/","-1":"https://docs.nestjs.cn/6/introduction","-3":"https://github.com/nestjs/nest"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","nest"],"ownVisible":false,"id":544},{"icon":"https://avatars1.githubusercontent.com/u/28507035?s=200&v=4","name":"awesome-nestjs","desc":"NestJS\u7684\u7cbe\u9009\u5217\u8868","url":"https://github.com/juliandavidmr/awesome-nestjs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","nest"],"ownVisible":false,"id":545}],"createdAt":"2021-01-23 09:32:06"},{"title":"egg.js","nav":[{"icon":"https://eggjs.org/images/favicon.png","name":"Egg.js","desc":"Egg.js \u4e3a\u4f01\u4e1a\u7ea7\u6846\u67b6\u548c\u5e94\u7528\u800c\u751f\uff0c\u6211\u4eec\u5e0c\u671b\u7531 Egg.js \u5b55\u80b2\u51fa\u66f4\u591a\u4e0a\u5c42\u6846\u67b6\uff0c\u5e2e\u52a9\u5f00\u53d1\u56e2\u961f\u548c\u5f00\u53d1\u4eba\u5458\u964d\u4f4e\u5f00\u53d1\u548c\u7ef4\u62a4\u6210\u672c","url":"https://eggjs.org/zh-cn/intro/index.html","urls":{"-2":"https://eggjs.org","-1":"https://eggjs.org/zh-cn/intro/index.html","-3":"https://github.com/eggjs/egg/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","egg.js"],"ownVisible":false,"id":546},{"icon":"https://eggjs.org/images/favicon.png","name":"egg-validate","desc":"\u57fa\u4e8e parameter \u5c01\u88c5\u7684\u53c2\u6570\u9a8c\u8bc1\u63d2\u4ef6","url":"https://github.com/eggjs/egg-validate","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","egg.js"],"ownVisible":false,"id":547},{"icon":"https://eggjs.org/images/favicon.png","name":"egg-mailer","desc":"\u57fa\u4e8e nodemailer \u5c01\u88c5\u7684\u53c2\u6570\u9a8c\u8bc1\u63d2\u4ef6","url":"https://github.com/xjh22222228/egg-mailer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","egg.js"],"ownVisible":false,"id":548}],"createdAt":"2021-01-23 09:32:06"},{"title":"Express/Koa","nav":[{"icon":"https://avatars2.githubusercontent.com/u/5055057?s=200&v=4","name":"Koa","desc":"Koa -- \u57fa\u4e8eNode.js \u5e73\u53f0\u7684\u4e0b\u4e00\u4ee3web\u5f00\u53d1\u6846\u67b6","url":"https://koa.bootcss.com/","urls":{"-2":"https://koajs.com/","-1":"https://koa.bootcss.com/","-3":"https://github.com/koajs/koa"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","Express/Koa"],"ownVisible":false,"id":549},{"icon":"https://avatars1.githubusercontent.com/u/5658226?s=200&v=4","name":"Express","desc":"Express - \u5feb\u901f\u3001\u5f00\u653e\u3001\u6781\u7b80\u7684 Web \u5f00\u53d1\u6846\u67b6","url":"http://expressjs.jser.us/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","Express/Koa"],"ownVisible":false,"id":550}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8f85\u52a9\u5de5\u5177","icon":"https://nodejs.org/static/images/favicons/favicon.ico","nav":[{"title":"\u8c03\u8bd5debugger","nav":[{"name":"node-inspector","desc":"Node.js\u8c03\u8bd5\u5668\u57fa\u4e8eBlink Developer Tools","url":"https://github.com/node-inspector/node-inspector","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u8c03\u8bd5debugger"],"ownVisible":false,"id":551},{"name":"debug","desc":"\u4e00\u4e2a\u5fae\u5c0f\u7684JavaScript\u8c03\u8bd5\u5de5\u5177\uff0c\u4ee5Node.js\u6838\u5fc3\u7684\u8c03\u8bd5\u6280\u672f\u4e3a\u6a21\u578b\u3002\u9002\u7528\u4e8eNode.js\u548cWeb\u6d4f\u89c8\u5668","url":"https://github.com/visionmedia/debug","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u8c03\u8bd5debugger"],"ownVisible":false,"id":552},{"name":"ndb","desc":"ndb\u662f\u9488\u5bf9Node.js\u7684\u6539\u8fdb\u8c03\u8bd5\u4f53\u9a8c\uff0c\u7531Chrome DevTools\u542f\u7528","url":"https://github.com/GoogleChromeLabs/ndb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u8c03\u8bd5debugger"],"ownVisible":false,"id":553}],"createdAt":"2021-01-23 09:32:06"},{"title":"node\u7248\u672c\u7ba1\u7406","nav":[{"name":"nvm","desc":"Node\u7248\u672c\u7ba1\u7406\u5668 - \u7528\u4e8e\u7ba1\u7406\u591a\u4e2a\u6d3b\u52a8node.js\u7248\u672c\u7684\u7b80\u5355bash\u811a\u672c","url":"https://github.com/creationix/nvm","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","node\u7248\u672c\u7ba1\u7406"],"ownVisible":false,"id":554},{"name":"nvm-windows","desc":"\u9002\u7528\u4e8eWindows\u7684node.js\u7248\u672c\u7ba1\u7406\u5b9e\u7528\u7a0b\u5e8f","url":"https://github.com/coreybutler/nvm-windows","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","node\u7248\u672c\u7ba1\u7406"],"ownVisible":false,"id":555},{"name":"nvs","desc":"Node Version Switcher - \u7528\u4e8e\u5728Node.js\u7684\u7248\u672c\u548c\u5206\u652f\u4e4b\u95f4\u5207\u6362\u7684\u8de8\u5e73\u53f0\u5de5\u5177(\u53d7\u5230nvm\u7684\u542f\u53d1)","url":"https://github.com/jasongin/nvs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","node\u7248\u672c\u7ba1\u7406"],"ownVisible":false,"id":556},{"name":"n","desc":"Node.js\u7248\u672c\u7ba1\u7406\uff1a\u65e0\u914d\u7f6e\u6587\u4ef6\uff0c\u65e0\u590d\u6742\u7684API\uff0c\u975e\u5e38\u7b80\u5355","url":"https://github.com/tj/n","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","node\u7248\u672c\u7ba1\u7406"],"ownVisible":false,"id":557}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u65e5\u5fd7\u7ba1\u7406","nav":[{"name":"log4js-node","desc":"log4js \u662f\u4e00\u4e2a nodejs \u65e5\u5fd7\u7ba1\u7406\u5de5\u5177\uff0c\u53ef\u4ee5\u5c06\u65e5\u5fd7\u4ee5\u5404\u79cd\u5f62\u5f0f\u8f93\u51fa\u5230\u5404\u79cd\u6e20\u9053\u3002","url":"https://log4js-node.github.io/log4js-node/index.html","urls":{"-3":"https://github.com/log4js-node/log4js-node"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u65e5\u5fd7\u7ba1\u7406"],"ownVisible":false,"id":558},{"name":"node-bunyan","desc":"\u7528\u4e8enode.js\u670d\u52a1\u7684\u7b80\u5355\u5feb\u901f\u7684JSON\u65e5\u5fd7\u8bb0\u5f55\u6a21\u5757","url":"https://github.com/trentm/node-bunyan","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u65e5\u5fd7\u7ba1\u7406"],"ownVisible":false,"id":559}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u96c6\u6210\u5de5\u5177","nav":[{"icon":"https://avatars0.githubusercontent.com/u/1714870?s=200&v=4","name":"yeoman","desc":"\u4e00\u5957\u7528\u4e8e\u81ea\u52a8\u5316\u5f00\u53d1\u5de5\u4f5c\u6d41\u7a0b\u7684\u5de5\u5177","url":"https://yeoman.io/","urls":{"-3":"https://github.com/yeoman/yeoman"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u96c6\u6210\u5de5\u5177"],"ownVisible":false,"id":560},{"icon":"https://avatars0.githubusercontent.com/u/16486629?s=200&v=4","name":"nodemailer","desc":"\u53d1\u9001\u6765\u81eaNode.js\u7684\u7535\u5b50\u90ae\u4ef6 - \u5f88\u5bb9\u6613\u5c31\u50cf\u86cb\u7cd5\u4e00\u6837\uff01","url":"http://nodemailer.com/","urls":{"-3":"https://github.com/nodemailer/nodemailer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u96c6\u6210\u5de5\u5177"],"ownVisible":false,"id":561},{"name":"gh-pages","desc":"\u5c06\u6587\u4ef6\u53d1\u5e03\u5230GitHub\u4e0a\u7684gh-pages\u5206\u652f\u7684\u5e38\u89c4\u4efb\u52a1","url":"https://github.com/tschaub/gh-pages","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u96c6\u6210\u5de5\u5177"],"ownVisible":false,"id":562}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4ee3\u7801\u538b\u7f29","nav":[{"icon":"https://avatars1.githubusercontent.com/u/43502240?s=200&v=4","name":"terser","desc":"\u9002\u7528\u4e8eES6+\u7684JavaScript\u89e3\u6790\u5668\uff0cmangler\u548c\u538b\u7f29\u5668\u5de5\u5177\u5305","url":"https://terser.org/","urls":{"-3":"https://github.com/terser/terser"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u4ee3\u7801\u538b\u7f29"],"ownVisible":false,"id":563}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"Awehunt","desc":"npm\u5305\u4e0b\u8f7d\u91cf\u66f2\u7ebf\u5bf9\u6bd4\u56fe","url":"https://awehunt.com/npmdownloads?ids=react,angular,vue","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":564},{"name":"nodemon","desc":"\u76d1\u89c6node.js\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4efb\u4f55\u66f4\u6539\u5e76\u81ea\u52a8\u91cd\u65b0\u542f\u52a8\u670d\u52a1\u5668 - \u975e\u5e38\u9002\u5408\u5f00\u53d1","url":"https://nodemon.io/","urls":{"-3":"https://github.com/remy/nodemon"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":565},{"name":"pkg","desc":"\u5c06Node.js\u9879\u76ee\u6253\u5305\u6210\u53ef\u6267\u884c\u6587\u4ef6","url":"https://github.com/zeit/pkg","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":566},{"name":"npm-check-updates","desc":"\u67e5\u627epackage.json\u6216bower.json\u5141\u8bb8\u7684\u66f4\u65b0\u7248\u672c\u7684\u8f6f\u4ef6\u5305\u4f9d\u8d56\u9879","url":"https://github.com/tjunnone/npm-check-updates","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":567},{"name":"husky","desc":"husky \u53ef\u4ee5\u9632\u6b62\u9519\u8bef\u7684 git commit, git push \u7b49","url":"https://github.com/typicode/husky","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":568},{"name":"bundlephobia","desc":"\u627e\u51fa\u5728\u9879\u76ee\u4e2d\u6dfb\u52a0\u65b0\u7684\u4f9d\u8d56\u9879\u7684\u5305\u5927\u5c0f","url":"https://bundlephobia.com","urls":{"-3":"https://github.com/pastelsky/bundlephobia"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":569},{"name":"npm-run-all","desc":"\u4e00\u4e2aCLI\u5de5\u5177\uff0c\u53ef\u5e76\u884c\u6216\u987a\u5e8f\u8fd0\u884c\u591a\u4e2anpm\u811a\u672c","url":"https://github.com/mysticatea/npm-run-all","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":570},{"name":"dotenv","desc":"\u4ece.env\u52a0\u8f7d\u7528\u4e8enodejs\u9879\u76ee\u7684\u73af\u5883\u53d8\u91cf","url":"https://github.com/motdotla/dotenv#readme","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":571},{"name":"cross-env","desc":"\u8fd0\u884c\u8de8\u5e73\u53f0\u8bbe\u7f6e\u548c\u4f7f\u7528\u73af\u5883\u53d8\u91cf\u7684\u811a\u672c","url":"https://github.com/kentcdodds/cross-env","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":572},{"name":"nrm","desc":"npm\u6e90\u5feb\u901f\u5207\u6362\uff0c npm, cnpm, taobao, nj, \u5185\u7f51","url":"https://github.com/Pana/nrm","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":573}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Deno","nav":[{"title":"\u5b98\u65b9","icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","nav":[{"name":"Deno","desc":"\u4e00\u4e2a\u5b89\u5168\u7684\u8fd0\u884c\u65f6\u7684JavaScript\u548cTypeScript","url":"https://deno.land/","urls":{"-3":"https://github.com/denoland"},"icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","Deno","\u5b98\u65b9"],"ownVisible":false,"id":574},{"name":"Deno \u6807\u51c6\u5e93","desc":"Deno \u6807\u51c6\u5e93","url":"https://deno.land/std","icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","Deno","\u5b98\u65b9"],"ownVisible":false,"id":575}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","nav":[{"name":"Deno","desc":"\u9002\u7528\u4e8eDeno\u7684Visual Studio Code\u63d2\u4ef6","url":"https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno","urls":{"-3":"https://github.com/denoland/vscode_deno"},"icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","Deno","\u5de5\u5177"],"ownVisible":false,"id":576}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"id":0,"createdAt":"2021-01-23 09:32:06"},{"title":"Golang","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","nav":[{"title":"\u751f\u6001","nav":[{"name":"Golang","desc":"Go\u7f16\u7a0b\u8bed\u8a00","url":"https://go-zh.org/","urls":{"-2":"https://golang.org/","-1":"https://go-zh.org/","-3":"https://github.com/golang/go"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":577},{"name":"go.dev","desc":"\u5927\u89c4\u6a21\u6784\u5efa\u5feb\u901f\uff0c\u53ef\u9760\uff0c\u9ad8\u6548\u7684\u8f6f\u4ef6","url":"https://go.dev/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":578},{"name":"awesome-go","desc":"\u7cbe\u9009\u7684Go\u6846\u67b6\uff0c\u5e93\u548c\u8f6f\u4ef6\u7684\u7cbe\u9009\u5217\u8868","url":"https://github.com/jobbole/awesome-go-cn","urls":{"-2":"https://github.com/avelino/awesome-Go","-1":"https://github.com/jobbole/awesome-go-cn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":579},{"icon":"https://avatars1.githubusercontent.com/u/49926011?s=200&v=4","name":"Goproxy","desc":"\u4e2d\u56fd\u6700\u53ef\u9760\u7684 Go \u6a21\u5757\u4ee3\u7406","url":"https://goproxy.cn/","urls":{"-3":"https://github.com/goproxy/goproxy.cn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":580},{"icon":"https://static.studygolang.com/static/img/favicon.ico","name":"Go\u8bed\u8a00\u4e2d\u6587\u7f51","desc":"Go\u8bed\u8a00\u4e2d\u6587\u7f51","url":"https://studygolang.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":581},{"icon":"https://studygolang.com/static/img/go.ico","name":"Go\u6807\u51c6\u5e93\u4e2d\u6587\u6587\u6863","desc":"Go\u6807\u51c6\u5e93\u4e2d\u6587\u6587\u6863","url":"https://studygolang.com/pkgdoc","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":582}],"createdAt":"2021-01-23 09:32:06"},{"title":"WEB\u6846\u67b6","nav":[{"name":"gin","desc":"Gin\u662f\u7528Go\uff08Golang\uff09\u7f16\u5199\u7684Web\u6846\u67b6\u3002\u5b83\u5177\u6709\u7c7b\u4f3c\u4e8emartini\u7684API\uff0c\u5176\u6027\u80fd\u6bd4httprouter\u5feb40\u500d\u3002\u5982\u679c\u60a8\u9700\u8981\u6027\u80fd\u548c\u826f\u597d\u7684\u751f\u4ea7\u7387\uff0c\u60a8\u4f1a\u559c\u6b22Gin","url":"https://learnku.com/docs/gin-gonic/2019/go-gin-document","urls":{"-2":"https://gin-gonic.com/","-1":"https://learnku.com/docs/gin-gonic/2019/go-gin-document","-3":"https://github.com/gin-gonic/gin"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":583},{"name":"beego","desc":"beego\u662f\u7528\u4e8eGo\u7f16\u7a0b\u8bed\u8a00\u7684\u5f00\u6e90\uff0c\u9ad8\u6027\u80fdWeb\u6846\u67b6","url":"http://beego.me","urls":{"-2":"http://beego.me","-3":"https://github.com/astaxie/beego"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":584},{"name":"martini","desc":"Go\u7684\u7ecf\u5178Web\u6846\u67b6","url":"http://martini.codegangsta.io","urls":{"-2":"http://martini.codegangsta.io","-3":"https://github.com/go-martini/martini"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":585},{"icon":"https://avatars1.githubusercontent.com/u/2624634?s=200&v=4","name":"echo","desc":"\u9ad8\u6027\u80fd\uff0c\u7b80\u7ea6\u7684Go Web\u6846\u67b6","url":"https://echo.labstack.com","urls":{"-2":"https://echo.labstack.com","-3":"https://github.com/labstack/echo"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":586},{"icon":"https://www.iris-go.com/favicon.ico","name":"iris","desc":"\u6700\u5feb\u7684HTTP / 2 Go Web\u6846\u67b6\u3002AWS Lambda\uff0cgRPC\uff0cMVC\uff0c\u552f\u4e00\u8def\u7531\u5668\uff0cWebsocket\uff0c\u4f1a\u8bdd\uff0c\u6d4b\u8bd5\u5957\u4ef6\uff0c\u4f9d\u8d56\u6ce8\u5165\u7b49\u3002expressjs\u548claravel\u7684\u771f\u6b63\u7ee7\u627f\u8005|","url":"https://www.iris-go.com/","urls":{"-3":"https://github.com/kataras/iris"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":587},{"icon":"https://avatars1.githubusercontent.com/u/59947262?s=200&v=4","name":"fiber","desc":"Fiber\u662f\u4e00\u4e2a\u53d7Express\u542f\u53d1\u7684Web\u6846\u67b6\uff0c\u5efa\u7acb\u5728Fasthttp\uff08Go\u6700\u5feb\u7684HTTP\u5f15\u64ce\uff09\u7684\u57fa\u7840\u4e0a\u3002 \u65e8\u5728\u7b80\u5316\u96f6\u5185\u5b58\u5206\u914d\u548c\u6027\u80fd\u7684\u60c5\u51b5\uff0c\u4ee5\u4fbf\u5feb\u901f\u5f00\u53d1\u3002","url":"https://gofiber.io/","urls":{"-3":"https://github.com/gofiber/fiber"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":588}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4f9d\u8d56\u5305","icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","nav":[{"title":"GUI","nav":[{"icon":"https://avatars3.githubusercontent.com/u/36045855?s=200&v=4","name":"Fyne","desc":"\u57fa\u4e8eMaterial Design\u7684Go\u8de8\u5e73\u53f0GUI","url":"https://fyne.io/","urls":{"-3":"https://github.com/fyne-io/fyne"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","GUI"],"ownVisible":false,"id":589}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u65e5\u5fd7\u6a21\u5757","nav":[{"name":"logrus","desc":"Go\u7684\u7ed3\u6784\u5316\uff0c\u53ef\u63d2\u5165\u65e5\u5fd7\u8bb0\u5f55\u3002","url":"https://github.com/sirupsen/logrus","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u65e5\u5fd7\u6a21\u5757"],"ownVisible":false,"id":590},{"icon":"https://avatars3.githubusercontent.com/u/19262598?s=200&v=4","name":"zap","desc":"\u5728Go\u4e2d\u5b9e\u73b0\u5feb\u901f\uff0c\u7ed3\u6784\u5316\uff0c\u6c34\u5e73\u7684\u65e5\u5fd7\u8bb0\u5f55\u3002","url":"https://github.com/uber-go/zap","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u65e5\u5fd7\u6a21\u5757"],"ownVisible":false,"id":591}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"name":"gorm","desc":"\u9002\u7528\u4e8eGolang\u7684\u7edd\u4f73ORM\u5e93\uff0c\u65e8\u5728\u5bf9\u5f00\u53d1\u4eba\u5458\u53cb\u597d","url":"https://gorm.io/zh_CN/","urls":{"-2":"https://gorm.io/","-1":"https://gorm.io/zh_CN/","-3":"https://github.com/go-gorm/gorm"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":592},{"icon":"https://entgo.io/img/favicon.ico","name":"ent","desc":"\u7528\u4e8eGo\u7684\u7b80\u5355\u4f46\u529f\u80fd\u5f3a\u5927\u7684\u5b9e\u4f53\u6846\u67b6\uff0c\u53ef\u8f7b\u677e\u6784\u5efa\u548c\u7ef4\u62a4\u5177\u6709\u5927\u578b\u6570\u636e\u6a21\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u3002","url":"https://entgo.io/","urls":{"-3":"https://github.com/facebook/ent"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":593},{"name":"mysql","desc":"Go MySQL\u9a71\u52a8\u7a0b\u5e8f\u662fGo\uff08golang\uff09\u6570\u636e\u5e93/ sql\u5305\u7684MySQL\u9a71\u52a8\u7a0b\u5e8f","url":"https://github.com/go-sql-driver/mysql","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":594},{"name":"sqlite3","desc":"sqlite3\u9a71\u52a8\u7a0b\u5e8f","url":"https://github.com/mattn/go-sqlite3","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":595},{"name":"pq","desc":"\u9002\u7528\u4e8edatabase/sql\u7684Pure Go Postgres\u9a71\u52a8\u7a0b\u5e8f","url":"https://github.com/lib/pq","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":596},{"icon":"https://redis.uptrace.dev/assets/images/favicon.png","name":"redis","desc":"\u7528\u4e8eGolang\u7684\u7c7b\u578b\u5b89\u5168\u7684Redis\u5ba2\u6237\u7aef","url":"https://redis.uptrace.dev/","urls":{"-3":"https://github.com/go-redis/redis"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":597}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u89e3\u6790\u5668","nav":[{"name":"json-iterator","desc":"\u9ad8\u6027\u80fd100\uff05\u517c\u5bb9\u7684\u201c encoding / json\u201d\u66ff\u4ee3\u4ea7\u54c1","url":"http://jsoniter.com/migrate-from-go-std.html","urls":{"-3":"https://github.com/json-iterator/go"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":598},{"name":"blackfriday","desc":"Markdown\u5904\u7406\u5668\uff0c\u5b89\u5168\u3001\u5feb\u901f\u3002","url":"https://github.com/russross/blackfriday","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":599},{"name":"goldmark","desc":"\u7528Go\u8bed\u8a00\u7f16\u5199\u7684markdown\u89e3\u6790\u5668\u3002\u6613\u4e8e\u6269\u5c55\uff0c\u7b26\u5408\u6807\u51c6\uff08CommonMark\uff09\uff0c\u7ed3\u6784\u5408\u7406\u3002","url":"https://github.com/yuin/goldmark","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":600},{"name":"goquery","desc":"\u63a5\u8fd1jQuery\u8bed\u6cd5\u7684DOM\u89e3\u6790\u5e93","url":"https://github.com/PuerkitoBio/goquery","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":601},{"name":"go-yaml","desc":"yaml\u5305\u4f7fGo\u7a0b\u5e8f\u80fd\u591f\u8f7b\u677e\u5730\u5bf9yaml\u503c\u8fdb\u884c\u7f16\u7801\u548c\u89e3\u7801, \u53ef\u4ee5\u5feb\u901f\u53ef\u9760\u5730\u89e3\u6790\u548c\u751f\u6210YAML\u6570\u636e\u3002","url":"https://github.com/go-yaml/yaml/tree/v3","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":602},{"name":"xurls","desc":"\u4ece\u6587\u672c\u4e2d\u63d0\u53d6Urls","url":"https://github.com/mvdan/xurls","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":603}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u6570\u9a8c\u8bc1","nav":[{"name":"govalidator","desc":"\u53c2\u6570\u9a8c\u8bc1\u7a0b\u5e8f\uff0c\u7528\u4e8e\u5b57\u7b26\u4e32\uff0c\u6570\u5b57\uff0c\u5207\u7247\u548c\u7ed3\u6784","url":"https://github.com/asaskevich/govalidator","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":604},{"name":"validator","desc":"\u57fa\u4e8e\u6807\u7b7e\u5bf9\u7ed3\u6784\u548c\u5404\u4e2a\u5b57\u6bb5\u5b9e\u73b0\u503c\u9a8c\u8bc1\u3002","url":"https://github.com/go-playground/validator","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":605}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"ip","desc":"\u83b7\u53d6\u516c\u7f51IP\u5730\u5740\u3001v4/v6","url":"https://github.com/xjh22222228/ip","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":606},{"name":"terminal","desc":"\u63d0\u4f9b\u4e86\u7528\u4e8e\u5904\u7406\u7ec8\u7aef\u7684\u652f\u6301\u529f\u80fd\uff0c\u8fd9\u5728UNIX\u7cfb\u7edf\u4e0a\u5f88\u5e38\u89c1","url":"https://godoc.org/golang.org/x/crypto/ssh/terminal","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":607},{"name":"gopsutil","desc":"\u7528\u4e8e\u68c0\u7d22\u6b63\u5728\u8fd0\u884c\u7684\u8fdb\u7a0b\u548c\u7cfb\u7edf\u5229\u7528\u7387\uff08CPU\uff0c\u5185\u5b58\uff0c\u78c1\u76d8\uff0c\u7f51\u7edc\uff0c\u4f20\u611f\u5668\uff09\u7684\u4fe1\u606f\u3002\u5b83\u4e3b\u8981\u7528\u4e8e\u7cfb\u7edf\u76d1\u89c6\uff0c\u6982\u8981\u5206\u6790\u548c\u9650\u5236\u8fdb\u7a0b\u8d44\u6e90\u4ee5\u53ca\u7ba1\u7406\u6b63\u5728\u8fd0\u884c\u7684\u8fdb\u7a0b","url":"https://github.com/shirou/gopsutil","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":608},{"name":"air","desc":"Go\u70ed\u91cd\u8f7d","url":"https://github.com/cosmtrek/air","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":609},{"name":"go-micro","desc":"\u5206\u5e03\u5f0f\u7cfb\u7edf\u5f00\u53d1\u6846\u67b6","url":"https://go-micro.dev","urls":{"-3":"https://github.com/micro/go-micro"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":610},{"name":"xlsx","desc":"xlsx\u662f\u4e00\u4e2a\u5e93\uff0c\u7528\u4e8e\u7b80\u5316\u5728Go\u7a0b\u5e8f\u4e2d\u8bfb\u5199Microsoft Excel\u6700\u65b0\u7248\u672c\u4f7f\u7528\u7684XML\u683c\u5f0f\u3002","url":"https://github.com/tealeg/xlsx","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":611},{"name":"email","desc":"Go\u5f3a\u5927\u800c\u7075\u6d3b\u7684\u7535\u5b50\u90ae\u4ef6\u5e93\u3002","url":"https://github.com/jordan-wright/email","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":612},{"name":"websocket","desc":"Go\u7684\u4e00\u79cd\u5feb\u901f\uff0c\u7ecf\u8fc7\u6d4b\u8bd5\u4e14\u5e7f\u6cdb\u4f7f\u7528\u7684WebSocket\u5b9e\u73b0","url":"https://github.com/gorilla/websocket","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":613},{"name":"jwt-go","desc":"Golang \u5b9e\u73b0\u7684 JSON WEB TOKEN","url":"https://github.com/dgrijalva/jwt-go","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":614},{"name":"cron","desc":"Go \u5b9e\u73b0\u7684 cron \u5305","url":"https://github.com/robfig/cron","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":615},{"name":"qrcode","desc":"\u4e8c\u7ef4\u7801\u751f\u6210","url":"https://github.com/skip2/go-qrcode","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":616},{"icon":"https://avatars3.githubusercontent.com/u/27810343?s=200&v=4","name":"casbin","desc":"\u6743\u9650\u7ba1\u7406\u5e93\uff0c\u652f\u6301Golang\u4e2d\u7684\u8bbf\u95ee\u63a7\u5236\u6a21\u578b\uff0c\u5982ACL\uff0cRBAC\uff0cABAC","url":"https://casbin.org/zh-CN/","urls":{"-3":"https://github.com/casbin/casbin"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":617},{"name":"resty","desc":"\u7528\u4e8eGo\u7684\u7b80\u5355HTTP\u548cREST\u5ba2\u6237\u7aef\u5e93","url":"https://github.com/go-resty/resty","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":618},{"icon":"https://grpc.io/favicons/apple-touch-icon.png","name":"grpc-go","desc":"gRPC\u7684Go\u8bed\u8a00\u5b9e\u73b0\u3002\u57fa\u4e8eHTTP/2\u7684RPC","url":"https://grpc.io/","urls":{"-3":"https://github.com/grpc/grpc-go"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":619},{"icon":"https://avatars2.githubusercontent.com/u/33584194?s=200&v=4","name":"colly","desc":"Colly\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5e72\u51c0\u7684\u754c\u9762\u6765\u7f16\u5199\u4efb\u4f55\u79cd\u7c7b\u7684\u722c\u866b","url":"http://go-colly.org/","urls":{"-3":"https://github.com/gocolly/colly"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":620},{"name":"cors","desc":"\u4f7f\u7528net / http\u53ef\u914d\u7f6e\u7684\u5904\u7406\u7a0b\u5e8f\u6765\u5904\u7406CORS\u8bf7\u6c42","url":"https://github.com/rs/cors","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":621}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"CLI","icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","nav":[{"title":"\u7ec8\u7aef\u989c\u8272","nav":[{"name":"color","desc":"CLI \u63a7\u5236\u53f0\u989c\u8272\u6e32\u67d3\u5de5\u5177\u5e93, \u652f\u6301Windows","url":"https://github.com/fatih/color","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u7ec8\u7aef\u989c\u8272"],"ownVisible":false,"id":622}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u547d\u4ee4\u884c\u89e3\u6790","nav":[{"name":"cli","desc":"\u4e00\u4e2a\u7b80\u5355\uff0c\u5feb\u901f\u4e14\u6709\u8da3\u7684\u8f6f\u4ef6\u5305\uff0c\u7528\u4e8e\u5728Go\u4e2d\u6784\u5efa\u547d\u4ee4\u884c\u5e94\u7528","url":"https://github.com/urfave/cli/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u547d\u4ee4\u884c\u89e3\u6790"],"ownVisible":false,"id":623},{"name":"cobra","desc":"Cobra\u65e2\u662f\u7528\u4e8e\u521b\u5efa\u529f\u80fd\u5f3a\u5927\u7684\u73b0\u4ee3CLI\u5e94\u7528\u7a0b\u5e8f\u7684\u5e93\uff0c\u53c8\u662f\u7528\u4e8e\u751f\u6210\u5e94\u7528\u7a0b\u5e8f\u548c\u547d\u4ee4\u6587\u4ef6\u7684\u7a0b\u5e8f","url":"https://github.com/spf13/cobra","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u547d\u4ee4\u884c\u89e3\u6790"],"ownVisible":false,"id":624}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u63a7\u5236\u53f0\u8fdb\u5ea6\u6761","nav":[{"name":"pb","desc":"Golang\u7684\u63a7\u5236\u53f0\u8fdb\u5ea6\u680f","url":"https://github.com/cheggaaa/pb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u63a7\u5236\u53f0\u8fdb\u5ea6\u6761"],"ownVisible":false,"id":625},{"name":"mpb","desc":"Go cli\u5e94\u7528\u7a0b\u5e8f\u7684\u591a\u8fdb\u5ea6\u6761","url":"https://github.com/vbauerster/mpb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u63a7\u5236\u53f0\u8fdb\u5ea6\u6761"],"ownVisible":false,"id":626}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"promptui","desc":"\u547d\u4ee4\u884c\u5e94\u7528\u7a0b\u5e8f\u7684\u4ea4\u4e92\u5f0f\u63d0\u793a","url":"https://github.com/manifoldco/promptui","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u5176\u4ed6"],"ownVisible":false,"id":627},{"name":"godotenv","desc":"\u4ece`.env`\u6587\u4ef6\u52a0\u8f7d\u73af\u5883\u53d8\u91cf\u3002","url":"https://github.com/joho/godotenv","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u5176\u4ed6"],"ownVisible":false,"id":628},{"name":"go-prompt","desc":"\u53d7python-prompt-toolkit\u542f\u53d1\uff0c\u5728Go\u4e2d\u6784\u5efa\u5f3a\u5927\u7684\u4ea4\u4e92\u5f0f\u63d0\u793a\u3002","url":"https://github.com/c-bata/go-prompt","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u5176\u4ed6"],"ownVisible":false,"id":629}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","nav":[{"title":"\u5de5\u5177","nav":[{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"gvm","desc":"Go\u7248\u672c\u7ba1\u7406\u5668\uff0c\u7c7b\u4f3c nvm","url":"https://github.com/moovweb/gvm","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":630},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"json-to-go","desc":"\u5728\u7ebf JSON \u8f6c Struct\u7ed3\u6784\u4f53","url":"https://mholt.github.io/json-to-go/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":631},{"icon":"https://avatars3.githubusercontent.com/u/35628013?s=200&v=4","name":"golangci-lint","desc":"Go\u7684\u5feb\u901fLinters Runner","url":"https://github.com/golangci/golangci-lint","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":632},{"icon":"https://play.golang.org/favicon.ico","name":"The Go Playground","desc":"\u5728\u7ebf\u8fd0\u884cGolang","url":"https://play.golang.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":633},{"icon":"https://nuclei.projectdiscovery.io/","name":"nuclei","desc":"Nuclei\u662f\u57fa\u4e8e\u6a21\u677f\u7684\u53ef\u914d\u7f6e\u76ee\u6807\u626b\u63cf\u7684\u5feb\u901f\u5de5\u5177\uff0c\u5177\u6709\u5e7f\u6cdb\u7684\u53ef\u6269\u5c55\u6027\u548c\u6613\u7528\u6027\u3002","url":"https://play.golang.org/","urls":{"-3":"https://github.com/projectdiscovery/nuclei"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":634},{"icon":"https://avatars3.githubusercontent.com/u/35628013?s=200&v=4","name":"jaeger","desc":"\u5206\u5e03\u5f0f\u94fe\u8def\u8ffd\u8e2a","url":"https://www.jaegertracing.io/","urls":{"-3":"https://github.com/jaegertracing/jaeger"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":635},{"icon":"https://avatars1.githubusercontent.com/u/19232073?s=200&v=4","name":"delve","desc":"Delve\u662fGo\u7f16\u7a0b\u8bed\u8a00\u7684\u8c03\u8bd5\u5668\u3002","url":"https://github.com/go-delve/delve","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":636}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u8003\u8d44\u6599","nav":[{"title":"\u4e66\u7c4d","nav":[{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go \u5165\u95e8\u6307\u5357","desc":"\u300aThe Way to Go\u300b\u4e2d\u6587\u8bd1\u672c\uff0c\u4e2d\u6587\u6b63\u5f0f\u540d\u300aGo \u5165\u95e8\u6307\u5357\u300b","url":"https://github.com/unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":637},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u8bed\u8a00\u5723\u7ecf","desc":"Go\u8bed\u8a00\u5723\u7ecf \u300aThe Go Programming Language\u300b \u4e2d\u6587\u7248\u672c","url":"https://yar999.gitbook.io/gopl-zh/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":638},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go WEB \u7f16\u7a0b","desc":"Golang\u7535\u5b50\u4e66\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528Golang\u5efa\u7acb\u7f51\u7edc","url":"https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":639},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u7b80\u6613\u6559\u7a0b","desc":"\u300aThe Little Go Book\u300b\u4e2d\u6587\u8bd1\u672c\uff0c\u4e2d\u6587\u6b63\u5f0f\u540d\u300aGo\u7b80\u6613\u6559\u7a0b\u300b","url":"https://github.com/songleo/the-little-go-book_ZH_CN","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":640},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go by Example \u4e2d\u6587\u7248","desc":"Go by Example \u662f\u5bf9 Go \u57fa\u4e8e\u5b9e\u8df5\u7684\u4ecb\u7ecd\uff0c\u5305\u542b\u4e00\u7cfb\u5217\u5e26\u6709\u6ce8\u91ca\u8bf4\u660e\u7684\u793a\u4f8b\u7a0b\u5e8f\u3002","url":"https://gobyexample-cn.github.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":641},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u8bed\u8a00\u4e4b\u65c5","desc":"\u672c\u6307\u5357\u6db5\u76d6\u4e86\u8be5\u8bed\u8a00\u7684\u5927\u90e8\u5206\u91cd\u8981\u7279\u6027\uff0c\u4e3b\u8981\u5305\u62ec\uff1a\u57fa\u7840\u3001\u65b9\u6cd5\u548c\u63a5\u53e3\u3001\u5e76\u53d1\u7b49","url":"https://tour.go-zh.org/welcome/1","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":642},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u8bed\u8a00101","desc":"\u4e00\u672c\u7740\u58a8\u4e8eGo\u8bed\u6cd5\u8bed\u4e49\u4ee5\u53ca\u8fd0\u884c\u65f6\u76f8\u5173\u77e5\u8bc6\u70b9\u7684\u7f16\u7a0b\u6307\u5bfc\u4e66\uff08Go 1.15\u5c31\u7eea\uff09\u3002 \u6b64\u4e66\u65e8\u5728\u5c3d\u53ef\u80fd\u5730\u5e2e\u52a9Go\u7a0b\u5e8f\u5458\u66f4\u6df1\u66f4\u5168\u9762\u5730\u7406\u89e3Go\u8bed\u8a00","url":"https://gfw.go101.org/article/101.html","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":643},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u8bed\u8a00\u9ad8\u7ea7\u7f16\u7a0b","desc":"\u672c\u4e66\u6db5\u76d6CGO\u3001Go\u6c47\u7f16\u8bed\u8a00\u3001RPC\u5b9e\u73b0\u3001Web\u6846\u67b6\u5b9e\u73b0\u3001\u5206\u5e03\u5f0f\u7cfb\u7edf\u7b49\u9ad8\u9636\u4e3b\u9898\uff0c\u9488\u5bf9Go\u8bed\u8a00\u6709\u4e00\u5b9a\u7ecf\u9a8c\u60f3\u6df1\u5165\u4e86\u89e3Go\u8bed\u8a00\u5404\u79cd\u9ad8\u7ea7\u7528\u6cd5\u7684\u5f00\u53d1\u4eba\u5458(\u4e0d\u63a8\u8350\u65b0\u624b)","url":"https://chai2010.cn/advanced-go-programming-book/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":644},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Mastering GO","desc":"\u300aMastering GO\u300b\u4e2d\u6587\u8bd1\u672c\uff0c\u300a\u73a9\u8f6c GO\u300b\u3002","url":"https://github.com/hantmac/Mastering_Go_ZH_CN","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":645},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Mastering GO2","desc":"Mastering Go \u7b2c\u4e8c\u7248\u4e2d\u6587\u7248\u6765\u88ad\uff01","url":"https://github.com/hantmac/Mastering_Go_Second_Edition_Zh_CN","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":646}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"100\u5929\u4ece\u65b0\u624b\u5230\u5927\u5e08","desc":"Golang - 100\u5929\u4ece\u65b0\u624b\u5230\u5927\u5e08","url":"https://www.qfgolang.com/","urls":{"-3":"https://github.com/rubyhan1314/Golang-100-Days"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u5176\u4ed6"],"ownVisible":false,"id":647},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"project-layout","desc":"Go\u6807\u51c6\u5e03\u5c40\u7ed3\u6784\uff0c\u9879\u76ee\u67b6\u6784\u7ed3\u6784\u53c2\u8003\u3002","url":"https://github.com/golang-standards/project-layout/blob/master/README_zh.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u5176\u4ed6"],"ownVisible":false,"id":648},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"\u7f16\u7801\u89c4\u8303","desc":"Uber Go \u8bed\u8a00\u7f16\u7801\u89c4\u8303","url":"https://github.com/xxjwxc/uber_go_guide_cn","urls":{"-2":"https://github.com/uber-go/guide/blob/master/style.md","-1":"https://github.com/xxjwxc/uber_go_guide_cn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u5176\u4ed6"],"ownVisible":false,"id":649},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Gin\u5b9e\u6218","desc":"WEB \u6846\u67b6Gin\u5b9e\u6218","url":"https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI3MjU4Njk3Ng==&action=getalbum&album_id=1362784031968149504&scene=173#wechat_redirect","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u5176\u4ed6"],"ownVisible":false,"id":650}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Flutter","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","nav":[{"title":"\u5b98\u65b9","nav":[{"icon":"https://pub.dev/favicon.ico","name":"Dart","desc":"Dart\u8bed\u8a00","url":"http://www.dartdoc.cn/","urls":{"-2":"https://dart.dev/","-1":"http://www.dartdoc.cn/","-3":"https://github.com/dart-lang/sdk"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":651},{"icon":"https://pub.dev/favicon.ico","name":"DartPad","desc":"\u5728\u7ebf\u8fd0\u884cDart\u8bed\u6cd5","url":"https://dartpad.cn/embed-inline.html?id=7a9764702c0608711e08&split=90","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":652},{"icon":"https://pub.dev/favicon.ico","name":"Dart packages","desc":"Dart packages","url":"https://pub.dev/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":653},{"icon":"https://flutter.dev/images/favicon.png","name":"Flutter","desc":"Flutter\u662f\u8c37\u6b4c\u7684\u79fb\u52a8UI\u6846\u67b6\uff0c\u53ef\u4ee5\u5feb\u901f\u5728iOS\u548cAndroid\u4e0a\u6784\u5efa\u9ad8\u8d28\u91cf\u7684\u539f\u751f\u7528\u6237\u754c\u9762\u3002 Flutter\u53ef\u4ee5\u4e0e\u73b0\u6709\u7684\u4ee3\u7801\u4e00\u8d77\u5de5\u4f5c\u3002\u5728\u5168\u4e16\u754c\uff0cFlutter\u6b63\u5728\u88ab\u8d8a\u6765\u8d8a\u591a\u7684\u5f00\u53d1\u8005\u548c\u7ec4\u7ec7\u4f7f\u7528\uff0c\u5e76\u4e14Flutter\u662f\u5b8c\u5168\u514d\u8d39\u3001\u5f00\u6e90\u7684","url":"https://flutterchina.club/","urls":{"-2":"https://flutter.dev/","-1":"https://flutterchina.club/","-3":"https://github.com/flutter/flutter"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":654},{"icon":"https://flutter.dev/images/favicon.png","name":"Flutter Icon","desc":"Flutter\u5185\u7f6eIcon\u7ec4\u4ef6\u56fe\u6807\u901f\u67e5\u8868","url":"https://material.io/resources/icons/?style=baseline","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":655}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u5e38\u7528\u6a21\u5757","nav":[{"icon":"https://avatars1.githubusercontent.com/u/2605412?s=200&v=4","name":"imei_plugin","desc":"\u7528flutter\u5728Android\u4e2d\u83b7\u53d6imei\u7684\u63d2\u4ef6","url":"https://github.com/kevincaicedo/imei_plugin","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":656},{"icon":"https://avatars1.githubusercontent.com/u/2605412?s=200&v=4","name":"multi_image_picker","desc":"Flutter\u63d2\u4ef6\uff0c\u53ef\u8ba9\u60a8\u5728iOS\u548cAndroid\u4e0a\u663e\u793a\u591a\u56fe\u50cf\u9009\u62e9\u5668\u3002","url":"https://github.com/Sh1d0w/multi_image_picker","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":657},{"icon":"https://avatars1.githubusercontent.com/u/2605412?s=200&v=4","name":"sqflite","desc":"SQLite flutter plugin","url":"https://github.com/tekartik/sqflite","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":658},{"icon":"https://flutter.dev/images/favicon.png","name":"dio","desc":"dio\u662f\u4e00\u4e2a\u5f3a\u5927\u7684Dart Http\u8bf7\u6c42\u5e93\uff0c\u652f\u6301Restful API\u3001FormData\u3001\u62e6\u622a\u5668\u3001\u8bf7\u6c42\u53d6\u6d88\u3001Cookie\u7ba1\u7406\u3001\u6587\u4ef6\u4e0a\u4f20/\u4e0b\u8f7d\u3001\u8d85\u65f6\u3001\u81ea\u5b9a\u4e49\u9002\u914d\u5668\u7b49","url":"https://github.com/flutterchina/dio","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":659},{"icon":"https://camo.githubusercontent.com/a53c432bb9c2222880a6eca54b5ed091d1ab3d40/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317237344e4a794c614b31526a535a46785858616d504658612d313032342d313032342e706e67","name":"fish-redux","desc":"\u4e00\u4e2a\u57fa\u4e8eRedux\u72b6\u6001\u7ba1\u7406\u7684\u7ec4\u5408\u5f0fflutter\u5e94\u7528\u7a0b\u5e8f\u6846\u67b6\u3002\u5b83\u9002\u7528\u4e8e\u5efa\u7b51\u4e2d\u578b\u548c\u5927\u578b\u5e94\u7528\u3002","url":"https://github.com/alibaba/fish-redux","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":660},{"icon":"https://flutter.dev/images/favicon.png","name":"flutter_pulltorefresh","desc":"\u4e00\u4e2a\u63d0\u4f9b\u4e0a\u62c9\u52a0\u8f7d\u548c\u4e0b\u62c9\u5237\u65b0\u7684\u7ec4\u4ef6,\u540c\u65f6\u652f\u6301Android\u548cIos","url":"https://github.com/peng8350/flutter_pulltorefresh","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":661},{"icon":"https://flutter.dev/images/favicon.png","name":"json_serializable","desc":"JSON\u5e8f\u5217\u5316\u548c\u53cd\u5e8f\u5217\u5316\u7684\u4ee3\u7801","url":"https://github.com/dart-lang/json_serializable","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":662},{"icon":"https://flutter.dev/images/favicon.png","name":"flutter_swiper","desc":"flutter\u6700\u5f3a\u5927\u7684siwiper, \u591a\u79cd\u5e03\u5c40\u65b9\u5f0f\uff0c\u65e0\u9650\u8f6e\u64ad\uff0cAndroid\u548cIOS\u53cc\u7aef\u9002\u914d","url":"https://github.com/best-flutter/flutter_swiper/blob/master/README-ZH.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":663},{"icon":"https://flutter.dev/images/favicon.png","name":"FlutterToast","desc":"\u9002\u7528\u4e8eFlutter\u7684Android Toast\u63d2\u4ef6","url":"https://github.com/PonnamKarthik/FlutterToast","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":664},{"icon":"https://flutter.dev/images/favicon.png","name":"dart-uuid","desc":"\u751f\u6210 RFC4122(v1,v4,v5) UUIDs","url":"https://github.com/Daegalus/dart-uuid","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":665},{"icon":"https://flutter.dev/images/favicon.png","name":"fluwx","desc":"Flutter\u7248\u5fae\u4fe1SDK.WeChat SDK for flutter.","url":"https://github.com/OpenFlutter/fluwx","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":666}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u6863\u8d44\u6599","nav":[{"icon":"https://flutter.dev/images/favicon.png","name":"Material Design","desc":"Material\u662f\u4e00\u4e2a\u7531\u5f00\u6e90\u4ee3\u7801\u652f\u6301\u7684\u8bbe\u8ba1\u7cfb\u7edf\uff0c\u53ef\u4ee5\u5e2e\u52a9\u56e2\u961f\u6784\u5efa\u9ad8\u8d28\u91cf\u7684\u6570\u5b57\u4f53\u9a8c","url":"https://material.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":667},{"icon":"https://flutter.dev/images/favicon.png","name":"Flutter\u5b9e\u6218","desc":"Flutter\u5b9e\u6218","url":"https://book.flutterchina.club/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":668},{"icon":"https://flutter.dev/images/favicon.png","name":"samples","desc":"Flutter\u793a\u4f8b\u548c\u6f14\u793a\u7684\u96c6\u5408","url":"https://github.com/flutter/samples","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":669},{"icon":"https://img.alicdn.com/tfs/TB1OJkeHNYaK1RjSZFnXXa80pXa-229-229.png","name":"flutter-go","desc":"flutter \u5f00\u53d1\u8005\u5e2e\u52a9 APP\uff0c\u5305\u542b flutter \u5e38\u7528 140+ \u7ec4\u4ef6\u7684demo \u6f14\u793a\u4e0e\u4e2d\u6587\u6587\u6863","url":"https://flutter-go.pub/flutter_go_web/#FirstPage","urls":{"-3":"https://github.com/alibaba/flutter-go"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":670},{"icon":"https://flutter.dev/images/favicon.png","name":"Flutter-Notebook","desc":"flutter\u76f8\u5173\u529f\u80fddemo\u7684\u96c6\u5408\uff0c\u5b83\u80fd\u591f\u5e2e\u52a9\u60a8\u5feb\u901f\u5b66\u4e60\u4e00\u4e9b\u96f6\u788e\u7684\u77e5\u8bc6","url":"https://github.com/OpenFlutter/Flutter-Notebook","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":671},{"icon":"https://flutter.dev/images/favicon.png","name":"plugins","desc":"Flutter\u56e2\u961f\u7ef4\u62a4\u7684Flutter\u63d2\u4ef6","url":"https://github.com/flutter/plugins","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":672},{"icon":"https://flutter.dev/images/favicon.png","name":"awesome-flutter","desc":"\u5f88\u68d2\u7684\u6e05\u5355\uff0c\u7cbe\u9009\u4e86\u6700\u597d\u7684Flutter\u5e93\uff0c\u5de5\u5177\uff0c\u6559\u7a0b\uff0c\u6587\u7ae0\u7b49","url":"https://github.com/Solido/awesome-flutter","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":673},{"icon":"https://flutter.dev/images/favicon.png","name":"flutter-do","desc":"330+Widgets\u5728\u7ebf\u67e5\u770b\u9884\u89c8\u548c\u4f7f\u7528\u3002","url":"http://laomengit.com/flutter/widgets/widgets_structure.html","urls":{"-3":"https://github.com/781238222/flutter-do"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":674}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://flutter.dev/images/favicon.png","name":"flutter_wanandroid","desc":"\u57fa\u4e8eGoogle Flutter\u7684WanAndroid\u5ba2\u6237\u7aef\uff0c\u652f\u6301Android\u548ciOS\u3002\u5305\u62ecBLoC\u3001RxDart \u3001\u56fd\u9645\u5316\u3001\u4e3b\u9898\u8272\u3001\u542f\u52a8\u9875\u3001\u5f15\u5bfc\u9875\uff0c\u62e5\u6709\u8f83\u597d\u7684\u9879\u76ee\u7ed3\u6784&\u6bd4\u8f83\u89c4\u8303\u7684\u4ee3\u7801","url":"https://github.com/Sky24n/flutter_wanandroid","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":675},{"icon":"https://flutter.dev/images/favicon.png","name":"Best-Flutter-UI-Templates","desc":"Best-Flutter-UI-\u6a21\u677f, \u5bf9\u6240\u6709\u4eba\u5b8c\u5168\u514d\u8d39\u3002\u5176\u5185\u7f6e\u7684Flutter Dart\u3002","url":"https://github.com/mitesh77/Best-Flutter-UI-Templates","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":676}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Python","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","icon":"https://www.python.org/static/favicon.ico","nav":[{"title":"\u5b98\u65b9","nav":[{"name":"Python","desc":"\u662f\u4e00\u79cd\u89e3\u91ca\u578b\u3001\u9762\u5411\u5bf9\u8c61\u3001\u52a8\u6001\u6570\u636e\u7c7b\u578b\u7684\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3002","url":"https://www.python.org/","urls":{"-3":"https://github.com/TheAlgorithms/Python"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":677},{"name":"PyPi","desc":"\u4f7f\u7528Python\u8f6f\u4ef6\u5305\u7d22\u5f15\u67e5\u627e\uff0c\u5b89\u88c5\u548c\u53d1\u5e03Python\u8f6f\u4ef6\u5305","url":"https://pypi.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":678}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","nav":[{"name":"PCU","desc":"python-check-updates, \u68c0\u67e5 pip \u5f53\u524d\u4f9d\u8d56\u5305\u6700\u65b0\u7248\u672c","url":"https://github.com/xjh22222228/python-check-updates","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u751f\u6001\u7cfb\u7edf","\u5de5\u5177"],"ownVisible":false,"id":679}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4f9d\u8d56\u5305","icon":"https://www.python.org/static/favicon.ico","nav":[{"title":"HTTP/\u722c\u866b","nav":[{"icon":"https://www.python.org/static/favicon.ico","name":"requests","desc":"requests\u662f\u4e00\u4e2a\u7b80\u5355\u800c\u4f18\u96c5\u7684HTTP\u5e93\u3002","url":"https://requests.readthedocs.io/en/master/","urls":{"-3":"https://github.com/psf/requests"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":680},{"icon":"https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png","name":"aiohttp","desc":"\u7528\u4e8easyncio\u548cPython\u7684\u5f02\u6b65HTTP\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u6846\u67b6","url":"https://docs.aiohttp.org/en/stable/","urls":{"-3":"https://github.com/aio-libs/aiohttp"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":681},{"icon":"https://avatars2.githubusercontent.com/u/733635?s=200&v=4","name":"Scrapy","desc":"\u4e00\u4e2a\u7528\u4e8ePython\u7684\u5feb\u901f\u9ad8\u7ea7Web\u722c\u866b\u6846\u67b6\u3002","url":"https://scrapy.org/","urls":{"-3":"https://github.com/scrapy/scrapy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":682},{"icon":"https://avatars0.githubusercontent.com/u/983927?s=200&v=4","name":"selenium","desc":"\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\u6846\u67b6\u548c\u751f\u6001\u7cfb\u7edf\u3002","url":"https://www.selenium.dev/","urls":{"-3":"https://github.com/SeleniumHQ/selenium/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":683},{"name":"beautifulsoup","desc":"\u53ef\u4ee5\u4eceHTML\u6216XML\u6587\u4ef6\u4e2d\u63d0\u53d6\u6570\u636e\u7684Python\u5e93","url":"https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":684}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u50cf","nav":[{"name":"Pillow","desc":"\u53cb\u597d\u7684PIL\u524d\u53c9\uff0c\u662f\u4e00\u4e2a\u51fa\u8272\u7684\u56fe\u50cf\u5904\u7406\u5e93","url":"https://python-pillow.org/","urls":{"-3":"https://github.com/python-pillow/Pillow"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","\u56fe\u50cf"],"ownVisible":false,"id":685}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8fd0\u7b97","nav":[{"name":"numpy","desc":"\u4f7f\u7528Python\u8fdb\u884c\u79d1\u5b66\u8ba1\u7b97\u7684\u57fa\u672c\u8f6f\u4ef6\u5305\u3002","url":"https://numpy.org/","urls":{"-3":"https://github.com/numpy/numpy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","\u8fd0\u7b97"],"ownVisible":false,"id":686}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5206\u6790","nav":[{"icon":"https://avatars1.githubusercontent.com/u/21206976?s=200&v=4","name":"pandas","desc":"\u529f\u80fd\u5f3a\u5927\u7684Python\u6570\u636e\u5206\u6790\u5de5\u5177\u5305","url":"https://github.com/pandas-dev/pandas","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","\u6570\u636e\u5206\u6790"],"ownVisible":false,"id":687}],"createdAt":"2021-01-23 09:32:06"},{"title":"CLI","nav":[{"createdAt":"2021-02-04 20:25:26","name":"rich","icon":"https://github.com/favicon.ico","url":"https://github.com/willmcgugan/rich","desc":"Rich\u662f\u4e00\u4e2aPython\u5e93\uff0c\u7528\u4e8e\u5728\u7ec8\u7aef\u4e2d\u63d0\u4f9b\u5bcc\u6587\u672c\u548c\u7cbe\u7f8e\u7684\u683c\u5f0f\u3002","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":688},{"name":"Fire","desc":"Python Fire\u662f\u4e00\u4e2a\u7528\u4e8e\u4ece\u7edd\u5bf9\u4efb\u4f55Python\u5bf9\u8c61\u81ea\u52a8\u751f\u6210\u547d\u4ee4\u884c\u754c\u9762\uff08CLI\uff09\u7684\u5e93\u3002","url":"https://github.com/google/python-fire","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":689},{"name":"colorama","desc":"Python\u4e2d\u7b80\u5355\u7684\u8de8\u5e73\u53f0\u5f69\u8272\u7ec8\u7aef\u6587\u672c","url":"https://pypi.org/project/colorama/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":690},{"icon":"https://avatars1.githubusercontent.com/u/12731565?s=200&v=4","name":"tqdm","desc":"\u9002\u7528\u4e8ePython\u548cCLI\u7684\u5feb\u901f\uff0c\u53ef\u6269\u5c55\u7684\u8fdb\u5ea6\u680f","url":"https://github.com/tqdm/tqdm","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":691},{"name":"paramiko","desc":"\u9886\u5148\u7684Python SSHv2\u534f\u8bae\u5e93","url":"https://github.com/paramiko/paramiko","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":692},{"name":"click","desc":"Python\u53ef\u7ec4\u5408\u547d\u4ee4\u884c\u754c\u9762\u5de5\u5177\u5305","url":"https://github.com/pallets/click","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":693}],"createdAt":"2021-01-23 09:32:06"},{"createdAt":"2021-01-24 11:58:47","title":"\u5176\u4ed6","icon":null,"nav":[{"createdAt":"2021-01-24 11:59:58","name":"JMESPath","icon":"https://github.com/favicon.ico","url":"https://github.com/jmespath/jmespath.py","desc":"JMESPath\u662fJSON\u7684\u67e5\u8be2\u8bed\u8a00","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":694}]}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6846\u67b6","icon":"https://www.python.org/static/favicon.ico","nav":[{"title":"WEB\u6846\u67b6","nav":[{"icon":"https://avatars3.githubusercontent.com/u/27804?s=200&v=4","name":"Django","desc":"\u5177\u6709\u671f\u9650\u7684\u5b8c\u7f8e\u4e3b\u4e49\u8005\u7684Web\u6846\u67b6\u3002","url":"https://www.djangoproject.com/","urls":{"-3":"https://github.com/django/django"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u6846\u67b6","WEB\u6846\u67b6"],"ownVisible":false,"id":695},{"icon":"https://avatars0.githubusercontent.com/u/16748505?s=200&v=4","name":"flask","desc":"\u7528\u4e8e\u6784\u5efaWeb\u5e94\u7528\u7a0b\u5e8f\u7684Python\u5fae\u6846\u67b6\u3002","url":"https://palletsprojects.com/p/flask/","urls":{"-3":"https://github.com/pallets/flask"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u6846\u67b6","WEB\u6846\u67b6"],"ownVisible":false,"id":696}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u8003\u8d44\u6599","nav":[{"title":"\u4e66\u7c4d","icon":"https://www.python.org/static/favicon.ico","nav":[{"name":"\u7b80\u660e Python \u6559\u7a0b","desc":"\u65e8\u5728\u4e8e\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Python \u8bed\u8a00\u8fdb\u884c\u7f16\u7a0b\u7684\u81ea\u7531\u56fe\u4e66\u3002\u5b83\u4ee5\u6559\u6750\u4e0e\u6307\u5357\u7684\u5f62\u5f0f\u4e3a\u5165\u95e8\u8005\u4ecb\u7ecd Python \u8bed\u8a00\u3002\u5982\u679c\u4f60\u5bf9\u7535\u8111\u77e5\u8bc6\u7684\u4e86\u89e3\u4ec5\u9650\u4e8e\u5982\u4f55\u4fdd\u5b58\u6587\u672c\u6587\u4ef6\u7684\u8bdd\uff0c\u90a3\u8fd9\u672c\u4e66\u5c31\u662f\u4e3a\u4f60\u51c6\u5907\u7684\u3002","url":"https://bop.mol.uno/","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":697}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u6863\u8d44\u6599","icon":"https://www.python.org/static/favicon.ico","nav":[{"name":"100\u5929\u4ece\u65b0\u624b\u5230\u5927\u5e08","desc":"Python - 100\u5929\u4ece\u65b0\u624b\u5230\u5927\u5e08","url":"https://github.com/jackfrued/Python-100-Days","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":698},{"name":"Python \u5165\u95e8\u6307\u5357","desc":"Python \u5165\u95e8\u6307\u5357","url":"https://python666.cn/cls/lesson/list/","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":699},{"name":"What the f*ck Python!","desc":"\u4e00\u4e9b\u6709\u8da3\u4e14\u9c9c\u4e3a\u4eba\u77e5\u7684 Python \u7279\u6027.","url":"https://github.com/satwikkansal/wtfpython","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":700},{"name":"awesome-python-cn","desc":"Python \u8d44\u6e90\u5927\u5168\u4e2d\u6587\u7248","url":"https://github.com/jobbole/awesome-python-cn","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":701},{"name":"cheatsheet","desc":"Python\u5927\u5168\u5907\u5fd8\u5355","url":"https://github.com/gto76/python-cheatsheet","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":702},{"name":"awesome-python","desc":"\u7cbe\u9009\u7684Python\u6846\u67b6\uff0c\u5e93\uff0c\u8f6f\u4ef6\u548c\u8d44\u6e90\u7684\u7cbe\u9009\u6e05\u5355\u3002","url":"https://github.com/vinta/awesome-python","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":703}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06","id":1},{"title":"\u793e\u533a\u7ad9\u70b9","nav":[{"title":"\u793e\u533a\u7ad9\u70b9","nav":[{"title":"\u95ee\u7b54\u793e\u533a1","nav":[{"icon":"https://cdn.segmentfault.com/v-5f64887f/global/img/touch-icon.png","name":"segmentfault","desc":"\u662f\u4e2d\u6587\u9886\u57df\u6700\u5927\u7684\u6280\u672f\u95ee\u7b54\u4ea4\u6d41\u793e\u533a\u5e73\u53f0","url":"https://segmentfault.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":704},{"icon":"https://b-gold-cdn.xitu.io/favicons/v2/apple-touch-icon.png","name":"\u6398\u91d1","desc":"\u4e00\u4e2a\u5e2e\u52a9\u5f00\u53d1\u8005\u6210\u957f\u7684\u793e\u533a","url":"https://juejin.im/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":705},{"name":"DiyCode1","desc":"\u81f4\u529b\u4e8e\u6784\u5efa\u5f00\u53d1\u5de5\u7a0b\u5e08\u9ad8\u7aef\u4ea4\u6d41\u5206\u4eab\u793e\u533a","url":"https://www.diycode.cc/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":706},{"icon":"https://static.ld246.com/images/favicon.png","name":"\u9ed1\u5ba2\u6d3e","desc":"\u9ed1\u5ba2\u6d3e\u662f\u7a0b\u5e8f\u5458\u548c\u8bbe\u8ba1\u5e08\u7684\u805a\u96c6\u5730\uff0c\u6c47\u805a\u4e86\u4e25\u8c28\u6c42\u5b9e\u7684\u5de5\u7a0b\u5e08\u548c\u5bcc\u6709\u521b\u610f\u7684\u8bbe\u8ba1\u5e08","url":"https://hacpai.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":707},{"name":"Node.js\u4e13\u4e1a\u4e2d\u6587\u793e\u533a","desc":"\u56fd\u5185\u6700\u4e13\u4e1a\u7684 Node.js \u5f00\u6e90\u6280\u672f\u793e\u533a\uff0c\u81f4\u529b\u4e8e Node.js \u7684\u6280\u672f\u7814\u7a76","url":"https://cnodejs.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":708},{"icon":"https://www.52pojie.cn/favicon.ico","name":"\u543e\u7231\u7834\u89e3","desc":"\u543e\u7231\u7834\u89e3\u5173\u6ce8PC\u8f6f\u4ef6\u5b89\u5168\u548c\u79fb\u52a8\u5b89\u5168\u9886\u57df\uff0c\u81f4\u529b\u4e8e\u8f6f\u4ef6\u5b89\u5168\u4e0e\u75c5\u6bd2\u5206\u6790\u7684\u524d\u6cbf","url":"https://www.52pojie.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":709},{"icon":"https://www.freebuf.com/favicon.ico","name":"FreeBuf","desc":"FreeBuf\u9ed1\u5ba2\u4e0e\u6781\u5ba2,\u56fd\u5185\u5173\u6ce8\u5ea6\u6700\u9ad8\u7684\u5168\u7403\u4e92\u8054\u7f51\u5b89\u5168\u5a92\u4f53\u5e73\u53f0","url":"http://www.freebuf.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":710},{"icon":"https://imweb.io/public/icon.png","name":"IMWeb","desc":"Web\u524d\u7aef \u817e\u8bafIMWeb \u56e2\u961f\u793e\u533a","url":"http://imweb.io/topic/tab/all","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":711},{"icon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a","name":"Stack Overflow","desc":"\u5168\u7403\u6700\u5927\u7684\u6280\u672f\u95ee\u7b54\u7f51\u7ad9\uff0c\u662f\u4e00\u4e2a\u4e0e\u7a0b\u5e8f\u76f8\u5173\u7684IT\u6280\u672f\u95ee\u7b54\u7f51\u7ad9","url":"https://stackoverflow.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":712},{"icon":"https://reactjs.org/favicon.ico","name":"React\u793e\u533a","desc":"React\u8bba\u575b\u793e\u533a","url":"http://react-china.org/","urls":{"-2":"https://discuss.reactjs.org/","-1":"http://react-china.org/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":713},{"icon":"https://p1.ssl.qhimg.com/t010e845cdf71587354.png","name":"\u4f17\u6210\u7ffb\u8bd1","desc":"\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u7ffb\u8bd1\u793e\u533a\uff0c\u6700\u61c2\u8bd1\u8005\u7684\u7ffb\u8bd1\u5e73\u53f0\uff0c\u5947\u864e360\u6700\u5927\u524d\u7aef\u56e2\u961f\u201c\u5947\u821e\u56e2\u201d\u51fa\u54c1","url":"https://zcfy.cc/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":714},{"icon":"https://developer.mozilla.org/favicon.ico","name":"MDN web docs","desc":"Mozilla \u5f00\u53d1\u8005\u793e\u533a\uff0c\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u5b66\u4e60\u5e73\u53f0\uff0c\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u6df1\u5165\u5b66\u4e60Web\u6280\u672f\u4ee5\u53ca\u80fd\u591f\u9a71\u52a8Web\u7684\u8f6f\u4ef6","url":"https://developer.mozilla.org/zh-CN/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":715},{"icon":"https://dev-to.s3.us-east-2.amazonaws.com/favicon.ico","name":"DEV Community","desc":"\u5728\u8fd9\u91cc\u7a0b\u5e8f\u5458\u5206\u4eab\u60f3\u6cd5\u5e76\u5e2e\u52a9\u5f7c\u6b64\u6210\u957f","url":"https://dev.to/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":716}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://www.v2ex.com/static/img/v2ex_192.png","name":"V2EX","desc":"\u521b\u610f\u5de5\u4f5c\u8005\u4eec\u7684\u793e\u533a","url":"https://www.v2ex.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":717},{"icon":"https://static.zhihu.com/static/favicon.ico","name":"\u77e5\u4e4e","desc":"\u77e5\u4e4e\uff0c\u4e2d\u6587\u4e92\u8054\u7f51\u6700\u5927\u7684\u77e5\u8bc6\u5206\u4eab\u548c\u793e\u4ea4\u5e73\u53f0","url":"https://www.zhihu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":718},{"icon":"https://www.jianshu.com/favicon.ico","name":"\u7b80\u4e66","desc":"\u7b80\u4e66\u662f\u4e00\u4e2a\u521b\u4f5c\u793e\u533a\uff0c\u4efb\u4f55\u4eba\u5747\u53ef\u4ee5\u5728\u5176\u4e0a\u8fdb\u884c\u521b\u4f5c","url":"https://www.jianshu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":719},{"icon":"https://images.xiaozhuanlan.com/assets/favicon-bd135558698197f509ada06695c03a4f458f0077fa476f9a4e7ba9664f3dc55f.ico","name":"\u5c0f\u4e13\u680f","desc":"\u5c0f\u4e13\u680f\u662f\u4e00\u4e2a\u4e13\u4e1a\u4eba\u58eb\u7684\u521b\u4f5c\u77e5\u8bc6\u793e\u533a\uff0c\u5728\u8fd9\u91cc\u60a8\u53ef\u4ee5\u770b\u5230\u5404\u4e2a\u9886\u57df\u6700\u4e13\u4e1a\u7684\u4e13\u680f\u548c\u89c2\u70b9","url":"https://xiaozhuanlan.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":720},{"icon":"https://news.ycombinator.com/favicon.ico","name":"Hacker News","desc":"Hacker News","url":"https://news.ycombinator.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":721},{"icon":"https://stacdn.proginn.com/favicon_new.ico","name":"\u7a0b\u5e8f\u5458\u5ba2\u6808","desc":"\u7a0b\u5e8f\u5458\u5ba2\u6808\u662f\u9886\u5148\u7684\u7a0b\u5e8f\u5458\u81ea\u7531\u5de5\u4f5c\u5e73\u53f0\uff0c\u672a\u6765\u4e92\u8054\u7f51\u4f01\u4e1a\u7528\u4eba\u65b9\u5f0f\u3002\u63d0\u4f9b\u4f18\u79c0\u7a0b\u5e8f\u5458\u4e3a\u60a8\u8fdb\u884c\u7f51\u7ad9\u5efa\u8bbe\u5236\u4f5c\u3001\u6d4b\u8bd5\u8fd0\u7ef4\u670d\u52a1\u3001\u4eba\u5de5\u667a\u80fdAI\u3001\u5927\u6570\u636e\u533a\u5757\u94fe\u3001\u8f6f\u4ef6\u5f00\u53d1\u7b49\u4f18\u8d28\u670d\u52a1","url":"https://www.proginn.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":722},{"icon":"https://fecdn4.zhaopin.cn/zq/assets/logoIcon.7a3e67.png","name":"\u804cQ","desc":"\u667a\u8054\u62db\u8058\u65d7\u4e0b\u4e13\u4e1a\u7684\u62db\u8058\u6c42\u804c\u793e\u4ea4\u95ee\u7b54\u5e73\u53f0\uff0c\u8986\u76d6\u4e86\u6c42\u804c\u3001\u62db\u8058\u3001\u804c\u4e1a\u89c4\u5212\u3001\u5347\u804c\u52a0\u85aa\u3001\u9762\u8bd5\u6280\u5de7\u3001\u5de5\u4f5c\u7ecf\u9a8c\u5206\u4eab\u7b49\u70ed\u95e8\u8bdd \u9898\uff0c\u6d89\u53ca\u5404\u79cd\u884c\u4e1a\u804c\u573a\u95ee\u9898\uff0c1.5\u4ebf\u7528\u6237\u7684\u804c\u573a\u793e\u533a","url":"https://zq.zhaopin.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":723},{"icon":"http://cdn.jandan.net/static/img/appicon.png","name":"\u714e\u86cb","desc":"\u714e\u86cb\u4ee5\u8bd1\u4ecb\u65b9\u5f0f\u4f20\u64ad\u7f51\u7edc\u65b0\u9c9c\u8d44\u8baf","url":"http://jandan.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":724}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4ee3\u7801\u6258\u7ba1","nav":[{"icon":"https://github.githubassets.com/favicons/favicon.svg","name":"Github","desc":"\u9762\u5411\u5f00\u6e90\u53ca\u79c1\u6709\u8f6f\u4ef6\u9879\u76ee\u7684\u6258\u7ba1\u5e73\u53f0","url":"https://github.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u4ee3\u7801\u6258\u7ba1"],"ownVisible":false,"id":725},{"icon":"https://gitee.com/favicon.ico","name":"\u7801\u4e91","desc":"\u7801\u4e91\u4e13\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u7a33\u5b9a\u3001\u9ad8\u6548\u3001\u5b89\u5168\u7684\u4e91\u7aef\u8f6f\u4ef6\u5f00\u53d1\u534f\u4f5c\u5e73\u53f0","url":"https://gitee.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u4ee3\u7801\u6258\u7ba1"],"ownVisible":false,"id":726},{"icon":"https://about.gitlab.com/ico/apple-touch-icon-57x57.png","name":"GitLab","desc":"\u7528\u4e8e\u4ed3\u5e93\u7ba1\u7406\u7cfb\u7edf\u7684\u5f00\u6e90\u9879\u76ee\uff0c\u4f7f\u7528Git\u4f5c\u4e3a\u4ee3\u7801\u7ba1\u7406\u5de5\u5177\uff0c\u5e76\u5728\u6b64\u57fa\u7840\u4e0a\u642d\u5efa\u8d77\u6765\u7684web\u670d\u52a1","url":"https://gitlab.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u4ee3\u7801\u6258\u7ba1"],"ownVisible":false,"id":727},{"icon":"https://dn-coding-net-production-static.codehub.cn/platform/favicon.ico","name":"Coding","desc":"\u9762\u5411\u5f00\u53d1\u8005\u7684\u4e91\u7aef\u5f00\u53d1\u5e73\u53f0\uff0c\u63d0\u4f9b git/svn \u4ee3\u7801\u6258\u7ba1\uff0c\u4ee3\u7801\u8d28\u91cf\u5206\u6790\uff0c\u5728\u7ebfWebIDE\uff0c\u9879\u76ee\u7ba1\u7406...","url":"https://coding.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u4ee3\u7801\u6258\u7ba1"],"ownVisible":false,"id":728}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Design","nav":[{"title":"Design","nav":[{"title":"\u6750\u6599","nav":[{"icon":"http://www.51yuansu.com/favicon.ico","name":"\u89c5\u5143\u7d20","desc":"\u89c5\u5143\u7d20,\u4e3a\u60a8\u63d0\u4f9b\u514d\u8d39\u8bbe\u8ba1\u5143\u7d20,\u8bbe\u8ba1\u5143\u7d20\u7684\u8d44\u6e90\u7ad9","url":"http://www.51yuansu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":729},{"icon":"https://js.588ku.com/comp/public/css/iconfont/favicon.ico","name":"\u5343\u5e93\u7f51","desc":"\u81f4\u529b\u4e8e\u4e3a\u8bbe\u8ba1\u5e08\u63d0\u4f9b\u6700\u4f18\u8d28\u7684\u7d20\u6750","url":"http://588ku.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":730},{"icon":"https://huaban.com/img/touch-icon-ipad.png","name":"\u82b1\u74e3\u7f51","desc":"\u82b1\u74e3\uff0c\u966a\u4f60\u505a\u751f\u6d3b\u7684\u8bbe\u8ba1\u5e08","url":"http://huaban.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":731},{"icon":"https://cdn.dribbble.com/assets/favicon-b38525134603b9513174ec887944bde1a869eb6cd414f4d640ee48ab2a15a26b.ico","name":"Dribbble","desc":"Dribbble\u662f\u5c55\u793a\u548c\u5ba3\u4f20\uff0c\u63a8\u5e7f\uff0c\u53d1\u73b0\u548c\u63a2\u7d22\u8bbe\u8ba1\u7684\u5730\u65b9","url":"https://dribbble.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":732},{"icon":"https://669pic.com/669pic.ico","name":"\u4e07\u7d20\u7f51","desc":"\u4e07\u7d20\u7f51\u81f4\u529b\u4e8e\u4e3a\u56fd\u5185\u5404\u884c\u4e1a\u8bbe\u8ba1\u5e08\uff0c\u7f51\u7ad9\u7f16\u8f91\uff0c\u65b0\u5a92\u4f53\u5de5\u4f5c\u4eba\u5458\u63d0\u4f9b\u514d\u8d39png\u7d20\u6750\u4e0e\u80cc\u666f\u56fe\u7247\u670d\u52a1","url":"http://669pic.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":733},{"icon":"https://www.artstation.com/assets/favicon.ico","name":"ArtStation","desc":"ArtStation\u662f\u6e38\u620f\uff0c\u7535\u5f71\uff0c\u5a92\u4f53\u548c\u5a31\u4e50\u827a\u672f\u5bb6\u7684\u5c55\u793a\u5e73\u53f0\u3002\u5b83\u4f7f\u827a\u672f\u5bb6\u80fd\u591f\u4ee5\u6d41\u7545\u7684\u65b9\u5f0f\u5c55\u793a\u4ed6\u4eec\u7684\u4f5c\u54c1\u96c6\uff0c\u53d1\u73b0\u548c\u4fdd\u6301\u7075\u611f\uff0c\u5e76\u4e0e\u65b0\u7684\u673a\u4f1a\u8054\u7cfb\u8d77\u6765\u3002","url":"https://www.artstation.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":734},{"icon":"https://static.canva.com/static/images/favicon.ico","name":"Design Templates - Canva","desc":"\u8bbe\u8ba1\u6a21\u677f - Canva","url":"https://www.canva.com/templates/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":735},{"icon":"https://unsplash.com/favicon-32x32.png","name":"Unsplash","desc":"\u7f8e\u4e3d\uff0c\u514d\u8d39\u7684\u7167\u7247\u3002\u7531\u4e16\u754c\u4e0a\u6700\u6177\u6168\u7684\u6444\u5f71\u5e08\u793e\u533a\u8d60\u9001\u3002","url":"https://unsplash.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":736},{"icon":"https://www.gaoding.com/favicon.ico","name":"\u7a3f\u5b9a\u8bbe\u8ba1","desc":"\u7535\u5546\u7d20\u6750\u3001\u65b0\u5a92\u4f53\u914d\u56fe\u3001\u624b\u673a\u6d77\u62a5\u7b49\u3002","url":"https://www.gaoding.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":737},{"icon":"https://undraw.co/favicon-32x32.png","name":"unDraw","desc":"\u5e26\u6709\u5f00\u6e90\u63d2\u56fe\u7684\u8bbe\u8ba1\u9879\u76ee\uff0c\u53ef\u6ee1\u8db3\u60a8\u53ef\u4ee5\u60f3\u8c61\u548c\u521b\u5efa\u7684\u4efb\u4f55\u60f3\u6cd5\u3002 \u514d\u8d39\u4f7f\u7528\u60a8\u7684\u989c\u8272\u521b\u5efa\u6f02\u4eae\u7684\u7f51\u7ad9\uff0c\u4ea7\u54c1\u548c\u5e94\u7528\u7a0b\u5e8f","url":"https://undraw.co/illustrations","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":738},{"icon":"https://www.ui.cn/Public/img/favicon.ico","name":"UI\u4e2d\u56fd\u7528\u6237\u4f53\u9a8c\u8bbe\u8ba1\u5e73\u53f0","desc":"UI\u4e2d\u56fd\u7528\u6237\u4f53\u9a8c\u5e73\u53f0,\u4e2d\u56fd\u7528\u6237\u4f53\u9a8c\u8054\u76df\u7406\u4e8b\u5355\u4f4d\u3002\u56fd\u5185\u6781\u5177\u5f71\u54cd\u529b\u7684\u8bbe\u8ba1\u5e73\u53f0\u4e4b\u4e00\u3002\u5341\u591a\u5e74\u6765,\u643a\u624b\u4f1a\u5458150\u4e07+,\u5171\u540c\u81f4\u529b\u4e8e\u4e3a\u8bbe\u8ba1\u5e08\u4e0e\u4f01\u4e1a\u642d\u5efa\u5065\u5eb7\u7684\u8bbe\u8ba1\u751f\u6001\uff01","url":"https://www.ui.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":739},{"icon":"https://octodex.github.com/favicon.ico","name":"GitHub Octodex","desc":"\u7531GitHub Design\u56e2\u961f\u521b\u5efa\u548c\u7ef4\u62a4\u7684\u6240\u6709\u5409\u7965\u7269\u7d20\u6750","url":"https://octodex.github.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":740},{"icon":"http://collectui.com/img/favicon.ico","name":"Collect UI","desc":"\u4ece\u6bcf\u65e5ui\u6863\u6848\u5e93\u53ca\u5176\u4ed6\u6536\u96c6\u7684\u6bcf\u65e5\u7075\u611f\u3002 \u6839\u636eDribbble\u62cd\u6444\u7684\u7167\u7247\uff0c\u624b\u5de5\u6311\u9009\uff0c\u6bcf\u5929\u66f4\u65b0","url":"http://collectui.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":741}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u6807","nav":[{"icon":"https://icons8.cn/vue-static/landings/primary-landings/favs/icons8_fav_96%C3%9796.png","name":"icons8","desc":"\u4e0b\u8f7d\u514d\u8d39\u56fe\u6807\uff0c\u97f3\u4e50\uff0c\u7d20\u6750\u56fe\u7247\uff0c\u77e2\u91cf\uff0cUX\u63d2\u56fe\u548c\u89c6\u9891\u97f3\u4e50","url":"https://icons8.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":742},{"icon":"https://www.vectorlogo.zone/favicon.ico","name":"vectorlogo","desc":"3000\u591a\u79cd\u7cbe\u7f8e\u7684SVG\u5fbd\u6807\uff0c\u975e\u5e38\u9002\u5408\u60a8\u7684\u81ea\u8ff0\u6587\u4ef6\u6216\u79ef\u5206\u9875\u9762","url":"https://www.vectorlogo.zone/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":743},{"icon":"https://www.shareicon.net/favicon.ico","name":"shareicon","desc":"\u8d85\u8fc725\u4e07\u4e2aicon\u514d\u8d39\u96c6\u5408","url":"https://www.shareicon.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":744},{"name":"SVG Logos","desc":"\u8d85\u8fc71000+SVG Logos\u96c6\u5408","url":"https://github.com/gilbarbara/logos/archive/master.zip","urls":{"-3":"https://github.com/gilbarbara/logos/tree/master/logos"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":745},{"icon":"https://www.iconfont.cn/favicon.ico","name":"iconfont","desc":"\u963f\u91cc\u5988\u5988MUX\u503e\u529b\u6253\u9020\u7684\u77e2\u91cf\u56fe\u6807\u7ba1\u7406\u3001\u4ea4\u6d41\u5e73\u53f0","url":"http://www.iconfont.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":746},{"icon":"https://iconscout.com/favicon.ico","name":"iconscount","desc":"\u514d\u8d39\u4e0b\u8f7d\u56fe\u6807\uff0c\u63d2\u56fe\u548c\u5e93\u5b58\u7167\u7247","url":"https://iconscout.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":747}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","nav":[{"icon":"https://www.chuangkit.com/favicon.ico","name":"\u521b\u5ba2\u8d34","desc":"\u4e00\u6b3e\u7b80\u5355\u6613\u7528\u3001\u529f\u80fd\u5f3a\u5927\u7684\u7ebf\u4e0a\u56fe\u5f62\u8bbe\u8ba1\u5de5\u5177","url":"https://www.chuangkit.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u5de5\u5177"],"ownVisible":false,"id":748},{"name":"Ps Play","desc":"Ps Play - \u79fb\u52a8\u8bbe\u8ba1\u96f6\u963b\u529b","url":"https://isux.tencent.com/resources/psplay/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u5de5\u5177"],"ownVisible":false,"id":749},{"icon":"https://g.alicdn.com/acca/resource/luban/image/favicon.png","name":"\u9e7f\u73ed","desc":"\u9e7f\u73ed - \u8ba9\u8bbe\u8ba1\u66f4\u7f8e\u597d(\u963f\u91cc\u51fa\u54c1)","url":"https://luban.aliyun.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u5de5\u5177"],"ownVisible":false,"id":750},{"icon":"https://www.fontspace.com/android-chrome-192x192.png?v=00Bdv4Q5g6","name":"fontspace","desc":"6500+\u514d\u8d39\u5b57\u4f53\u4e0b\u8f7d","url":"https://www.fontspace.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u5de5\u5177"],"ownVisible":false,"id":751}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u914d\u8272","nav":[{"icon":"https://colorhunt.co/img/color-hunt-icon-ios.png","name":"Color Hunt","desc":"Color Hunt\u662f\u4e00\u4e2a\u514d\u8d39\u5f00\u653e\u7684\u5e73\u53f0\uff0c\u53ef\u901a\u8fc7\u6570\u5343\u79cd\u7cbe\u9009\u7684\u65f6\u5c1a\u8c03\u8272\u677f\u6765\u6fc0\u53d1\u8272\u5f69\u7075\u611f","url":"https://colorhunt.co/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u914d\u8272"],"ownVisible":false,"id":752}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5b66\u65e0\u6b62\u5883","nav":[{"title":"\u53c2\u8003\u6587\u6863","nav":[{"title":"Docker","nav":[{"icon":"https://github.com/favicon.ico","name":"Docker \u2014 \u4ece\u5165\u95e8\u5230\u5b9e\u8df5","desc":"Docker \u2014 \u4ece\u5165\u95e8\u5230\u5b9e\u8df5","url":"https://yeasy.gitbooks.io/docker_practice/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Docker"],"ownVisible":false,"id":753},{"icon":"https://github.com/favicon.ico","name":"Docker\u5b98\u65b9\u6620\u50cf\u6587\u6863","desc":"docker-library\u4e2d\u7684Docker\u5b98\u65b9\u6620\u50cf\u6587\u6863","url":"https://github.com/docker-library/docs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Docker"],"ownVisible":false,"id":754},{"icon":"https://avatars2.githubusercontent.com/u/7739233?s=200&v=4","name":"Docker Hub","desc":"Docker \u955c\u50cf\u4ed3\u5e93","url":"https://hub.docker.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Docker"],"ownVisible":false,"id":755},{"icon":"https://avatars2.githubusercontent.com/u/7739233?s=200&v=4","name":"Docker-Compose","desc":"\u4f7f\u7528Docker\u5b9a\u4e49\u548c\u8fd0\u884c\u591a\u5bb9\u5668\u5e94\u7528\u7a0b\u5e8f","url":"https://docs.docker.com/compose/","urls":{"-3":"https://github.com/docker/compose"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Docker"],"ownVisible":false,"id":756}],"createdAt":"2021-01-23 09:32:06"},{"title":"Git","nav":[{"icon":"https://github.com/favicon.ico","name":"git-manual","desc":"Git\u5e38\u7528\u547d\u4ee4\u53c2\u8003\u624b\u518c (\u63a8\u8350\u5b66\u4e60)","url":"https://github.com/xjh22222228/git-manual","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":757},{"icon":"https://github.com/favicon.ico","name":"GitHub Docs","desc":"github \u5b98\u65b9\u5e2e\u52a9\u6587\u6863","url":"https://help.github.com/cn","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":758},{"icon":"https://github.com/favicon.ico","name":"awesome-actions","desc":"\u7cbe\u9009\u7684GitHub\u4e0a\u5f88\u68d2\u7684Action\u5217\u8868","url":"https://github.com/sdras/awesome-actions","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":759},{"icon":"https://github.com/favicon.ico","name":"Github - Actions","desc":"Github \u5b98\u65b9Actions \u8d44\u6e90\u5217\u8868","url":"https://github.com/marketplace?type=actions","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":760},{"icon":"https://github.com/favicon.ico","name":"growing-up","desc":"\u7a0b\u5e8f\u733f\u6210\u957f\u8ba1\u5212","url":"https://github.com/mylxsw/growing-up","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":761}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u670d\u52a1\u5668","nav":[{"icon":"https://avatars0.githubusercontent.com/u/1412239?s=200&v=4","name":"nginx","desc":"nginx\u53c2\u8003\u6587\u6863","url":"https://www.docs4dev.com/docs/zh/nginx/current/reference#toolbar-title","urls":{"-2":"http://nginx.org/en/docs/","-1":"https://www.docs4dev.com/docs/zh/nginx/current/reference#toolbar-title","-3":"https://github.com/nginx/nginx"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u670d\u52a1\u5668"],"ownVisible":false,"id":762},{"icon":"https://avatars0.githubusercontent.com/u/1412239?s=200&v=4","name":"Nginx\u5f00\u53d1\u4ece\u5165\u95e8\u5230\u7cbe\u901a","desc":"Nginx\u5f00\u53d1\u4ece\u5165\u95e8\u5230\u7cbe\u901a","url":"http://tengine.taobao.org/book/index.html","urls":{"-3":"https://github.com/taobao/nginx-book"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u670d\u52a1\u5668"],"ownVisible":false,"id":763}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"icon":"https://avatars3.githubusercontent.com/u/1529926?s=200&v=4","name":"redis","desc":"Redis \u662f\u4e00\u4e2a\u5f00\u6e90\uff08BSD\u8bb8\u53ef\uff09\u7684\uff0c\u5185\u5b58\u4e2d\u7684\u6570\u636e\u7ed3\u6784\u5b58\u50a8\u7cfb\u7edf\uff0c\u5b83\u53ef\u4ee5\u7528\u4f5c\u6570\u636e\u5e93\u3001\u7f13\u5b58\u548c\u6d88\u606f\u4e2d\u95f4\u4ef6\u3002 \u5b83\u652f\u6301\u591a\u79cd\u7c7b\u578b\u7684\u6570\u636e\u7ed3\u6784","url":"http://www.redis.cn/","urls":{"-2":"https://redis.io/","-1":"http://www.redis.cn/","-3":"https://github.com/redis/redis"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u6570\u636e\u5e93"],"ownVisible":false,"id":764},{"icon":"https://labs.mysql.com/common/themes/sakila/favicon.ico","name":"MySQL","desc":"MySQL\u6570\u636e\u5e93\u670d\u52a1\u662f\u4e00\u4e2a\u5b8c\u5168\u6258\u7ba1\u7684\u6570\u636e\u5e93\u670d\u52a1\uff0c\u53ef\u4f7f\u7528\u4e16\u754c\u4e0a\u6700\u53d7\u6b22\u8fce\u7684\u5f00\u6e90\u6570\u636e\u5e93\u6765\u90e8\u7f72\u4e91\u539f\u751f\u5e94\u7528\u7a0b\u5e8f\u3002 \u5b83\u662f\u767e\u5206\u767e\u7531MySQL\u539f\u5382\u5f00\u53d1\uff0c\u7ba1\u7406\u548c\u63d0\u4f9b\u652f\u6301","url":"https://www.mysql.com/cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u6570\u636e\u5e93"],"ownVisible":false,"id":765}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4e66\u7c4d","nav":[{"icon":"https://avatars1.githubusercontent.com/u/14127308?s=200&v=4","name":"\u514d\u8d39\u7684\u7f16\u7a0b\u4e2d\u6587\u4e66\u7c4d\u7d22\u5f15","desc":"\u514d\u8d39\u7684\u7f16\u7a0b\u4e2d\u6587\u4e66\u7c4d\u7d22\u5f15","url":"https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-zh.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u4e66\u7c4d"],"ownVisible":false,"id":766},{"icon":"https://zh.b-ok.global/apple-touch-icon.png","name":"Zlibrary","desc":"Z-Library \u9879\u76ee\u90e8\u5206. \u5168\u7403\u6700\u5927\u7684\u6570\u5b57\u56fe\u4e66\u9986, \u7535\u5b50\u4e66","url":"https://zh.b-ok.global/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u4e66\u7c4d"],"ownVisible":false,"id":767},{"name":"IT-eBOOK","desc":"IT\u7c7b\u6280\u672f\u4e66\u7c4dPDF","url":"https://github.com/asyncfun/IT-eBOOK","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u4e66\u7c4d"],"ownVisible":false,"id":768},{"icon":"https://refactoringguru.cn/favicon.ico","name":"Refactoring.Guru","desc":"22\u79cd\u5e38\u7528\u8bbe\u8ba1\u6a21\u5f0f","url":"https://refactoringguru.cn/design-patterns","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u4e66\u7c4d"],"ownVisible":false,"id":769}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6\u6587\u6863","nav":[{"icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/linux/linux.png","name":"Linux \u5e38\u7528\u547d\u4ee4\u53c2\u8003\u624b\u518c","desc":"Linux \u5e38\u7528\u547d\u4ee4\u53c2\u8003\u624b\u518c","url":"https://github.com/xjh22222228/linux-manual","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":770},{"icon":"https://github.com/favicon.ico","name":"developer-roadmap","desc":"2020\u5e74\u6210\u4e3a\u7f51\u7edc\u5f00\u53d1\u4eba\u5458\u7684\u8def\u7ebf\u56fe","url":"https://github.com/kamranahmedse/developer-roadmap","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":771},{"icon":"https://devhints.io/assets/favicon.png","name":"Devhints","desc":"WEB\u5f00\u53d1\u901f\u67e5\u8868\uff0cmysql/go/java/js/bash/react/git...","url":"https://devhints.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":772},{"icon":"https://wangchujiang.com/linux-command/img/favicon.ico","name":"linux-command","desc":"Linux\u547d\u4ee4\u5927\u5168\u641c\u7d22\u5de5\u5177\uff0c\u5185\u5bb9\u5305\u542bLinux\u547d\u4ee4\u624b\u518c\u3001\u8be6\u89e3\u3001\u5b66\u4e60\u3001\u641c\u96c6","url":"https://git.io/linux","urls":{"-3":"https://github.com/jaywcjlove/linux-command"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":773},{"icon":"https://github.com/favicon.ico","name":"learn-regex","desc":"\u6b63\u5219\u8868\u8fbe\u5f0f\u5b66\u4e60","url":"https://github.com/ziishaned/learn-regex","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":774},{"icon":"https://github.com/favicon.ico","name":"the-art-of-command-line","desc":"\u547d\u4ee4\u884c\u7684\u827a\u672f","url":"https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":775},{"icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/chrome/chrome.png","name":"Peter Beverloo","desc":"Chrome\u6d4f\u89c8\u5668\u547d\u4ee4\u53c2\u6570\u53c2\u8003\u624b\u518c","url":"https://peter.sh/experiments/chromium-command-line-switches/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":776},{"icon":"https://avatars2.githubusercontent.com/u/11618545?s=200&v=4","name":"vimrc","desc":"vim\u914d\u7f6e\u53c2\u8003\u624b\u518c","url":"https://github.com/amix/vimrc","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":777},{"icon":"https://www.jenkins.io/zh/sites/default/files/jenkins_favicon.ico","name":"Jenkins","desc":"Jenkins\u662f\u5f00\u6e90CI&CD\u8f6f\u4ef6\u9886\u5bfc\u8005\uff0c \u63d0\u4f9b\u8d85\u8fc71000\u4e2a\u63d2\u4ef6\u6765\u652f\u6301\u6784\u5efa\u3001\u90e8\u7f72\u3001\u81ea\u52a8\u5316\uff0c \u6ee1\u8db3\u4efb\u4f55\u9879\u76ee\u7684\u9700\u8981","url":"https://www.jenkins.io/zh/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":778},{"icon":"https://learnxinyminutes.com/favicon.ico","name":"learnxinyminutes-docs","desc":"\u5728Y\u5206\u949f\u5185\u5b66\u4e60X","url":"https://learnxinyminutes.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":779},{"icon":"https://code.visualstudio.com/apple-touch-icon.png","name":"Vscode Docs","desc":"Vscode \u6269\u5c55\u5f00\u53d1\u6587\u6863","url":"https://liiked.github.io/VS-Code-Extension-Doc-ZH/#/","urls":{"-2":"https://code.visualstudio.com/api","-1":"https://liiked.github.io/VS-Code-Extension-Doc-ZH/#/","-3":"https://github.com/microsoft/vscode-docs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":780},{"name":"YAML\u6559\u7a0b","desc":"YAML\u6559\u7a0b","url":"https://www.yiibai.com/yaml","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":781},{"icon":"https://www.google.com/images/icons/product/chrome-32.png","name":"Chrome Extension","desc":"\u8c37\u6b4c\u6d4f\u89c8\u5668\u6269\u5c55\u63d2\u4ef6\u5f00\u53d1\u6587\u6863","url":"https://developer.chrome.com/extensions","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":782}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6559\u7a0b\u76f8\u5173","nav":[{"nav":[{"icon":"https://static.runoob.com/images/icon/mobile-icon.png","name":"\u83dc\u9e1f\u6559\u7a0b","desc":"\u63d0\u4f9b\u4e86\u7f16\u7a0b\u7684\u57fa\u7840\u6280\u672f\u6559\u7a0b, \u4ecb\u7ecd\u4e86HTML\u3001CSS\u3001Javascript\u3001Python\uff0cJava\uff0cRuby\uff0cC\uff0cPHP , MySQL\u7b49\u5404\u79cd\u7f16\u7a0b\u8bed\u8a00\u7684\u57fa\u7840\u77e5\u8bc6\u3002 \u540c\u65f6\u672c\u7ad9\u4e2d\u4e5f\u63d0\u4f9b\u4e86\u5927\u91cf\u7684\u5728\u7ebf\u5b9e\u4f8b\uff0c\u901a\u8fc7\u5b9e\u4f8b\uff0c\u60a8\u53ef\u4ee5\u66f4\u597d\u7684\u5b66\u4e60\u7f16\u7a0b","url":"https://www.runoob.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":783},{"icon":"https://www.imooc.com/static/img/common/touch-icon-ipad.png","name":"\u6155\u8bfe\u7f51","desc":"\u6155\u8bfe\u7f51-\u7a0b\u5e8f\u5458\u7684\u68a6\u5de5\u5382","url":"https://www.imooc.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":784},{"icon":"https://www.jikexueyuan.com/favicon.ico","name":"\u6781\u5ba2\u5b66\u9662","desc":"\u81f4\u529b\u4e8e\u201c\u8ba9IT\u5b66\u4e60\u66f4\u6709\u6548\u201d\uff0c\u4ee5\u5b9e\u6218\u4e3a\u7279\u8272\uff0c\u4e3a\u6ce8\u91cd\u81ea\u6211\u63d0\u5347\u7684IT\u4ece\u4e1a\u8005\u63d0\u4f9b\u9ad8\u54c1\u8d28\u804c\u4e1a\u6559\u80b2","url":"https://www.jikexueyuan.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":785},{"icon":"https://9.idqqimg.com/edu/edu_modules/edu-ui/img/nohash/favicon.ico","name":"\u817e\u8baf\u8bfe\u5802","desc":"\u817e\u8baf\u8bfe\u5802 - \u4e13\u4e1a\u7684\u5728\u7ebf\u6559\u80b2\u5e73\u53f0","url":"https://ke.qq.com/index.html","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":786},{"icon":"https://static2.ichunqiu.com/icq/resources/images/favicon.ico","name":"i\u6625\u79cb","desc":"\u3010i\u6625\u79cb\u3011-\u4e13\u6ce8\u7f51\u7edc\u5b89\u5168_\u4fe1\u606f\u5b89\u5168_\u767d\u5e3d\u5b50\u7684\u5728\u7ebf\u5b66\u4e60_\u6559\u80b2_\u57f9\u8bad\u5e73\u53f0","url":"https://www.ichunqiu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":787},{"icon":"http://www.shiyanbar.com/favicon.ico","name":"\u5b9e\u9a8c\u5427","desc":"\u5b9e\u9a8c\u5427\u662f\u56fd\u5185\u6700\u5927\u7684\u5728\u7ebf\u865a\u62df\u673a\u5b9e\u9a8cIT\u6559\u80b2\u5e73\u53f0","url":"http://www.shiyanbar.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":788},{"icon":"https://www.hetianlab.com/img/ico/favicon.ico","name":"\u5408\u5929\u7f51\u5b89\u5b9e\u9a8c\u5ba4","desc":"\u5408\u5929\u7f51\u5b89\u5b9e\u9a8c\u5ba4\u662f\u652f\u6301\u5728\u7ebf\u5b9e\u9a8c\u7684\u4fe1\u606f\u5b89\u5168\u5b66\u4e60\u7684\u5927\u578b\u670d\u52a1\u5e73\u53f0","url":"http://www.hetianlab.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":789},{"icon":"https://study.163.com/favicon.ico","name":"\u7f51\u6613\u4e91\u8bfe\u5802","desc":"\u7f51\u6613\u4e91\u8bfe\u5802 - \u9886\u5148\u7684\u5b9e\u7528\u6280\u80fd\u5b66\u4e60\u5e73\u53f0","url":"http://study.163.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":790},{"icon":"https://study.163.com/favicon.ico","name":"\u84dd\u6865","desc":"\u84dd\u6865\u662f\u56fd\u5185\u9886\u5148\u7684IT\u5728\u7ebf\u7f16\u7a0b\u53ca\u5728\u7ebf\u5b9e\u8bad\u5b66\u4e60\u5e73\u53f0\uff0c\u4e13\u4e1a\u5bfc\u5e08\u63d0\u4f9b\u7cbe\u9009\u7684\u5b9e\u8df5\u9879\u76ee\uff0c\u521b\u65b0\u7684\u6280\u672f\u4f7f\u5f97\u5b66\u4e60\u8005\u65e0\u9700\u914d\u7f6e\u7e41\u7410\u7684\u672c\u5730\u73af\u5883\uff0c\u968f\u65f6\u5728\u7ebf\u6d41\u7545\u4f7f\u7528","url":"https://www.lanqiao.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":791},{"icon":"https://7n.w3cschool.cn/statics/images/favicon.ico?v=2.2","name":"W3Cschool","desc":"\u7f16\u7a0b\u72ee\uff0c\u662f\u4e00\u4e2a\u4e13\u4e1a\u7684W3C\u524d\u7aef\u5f00\u53d1\u53ca\u7f16\u7a0b\u5165\u95e8\u5b66\u4e60\u5e73\u53f0","url":"https://www.w3cschool.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":792}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u9762\u8bd5\u5237\u9898","nav":[{"title":"\u9762\u8bd5\u5237\u9898","nav":[{"icon":"https://static.leetcode-cn.com/cn-assets/icons/favicon-96x96.png","name":"LeetCode","desc":"\u63d0\u9ad8\u4f60\u7684\u7f16\u7801\u6280\u80fd\uff0c\u5feb\u901f\u627e\u5230\u4e00\u4efd\u5de5\u4f5c\u3002\u8fd9\u662f\u6269\u5c55\u4f60\u77e5\u8bc6\u548c\u4e3a\u4e0b\u4e00\u6b21\u9762\u8bd5\u505a\u597d\u51c6\u5907\u7684\u6700\u4f73\u5730\u65b9\u3002","url":"https://leetcode-cn.com/","urls":{"-2":"https://leetcode.com/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":793},{"icon":"https://www.nowcoder.com/favicon.ico","name":"\u725b\u5ba2\u7f51","desc":"\u725b\u5ba2\u7f51\u662f\u4e92\u8054\u7f51\u6c42\u804c\u795e\u5668\uff0cC++\u3001Java\u3001\u524d\u7aef\u3001\u4ea7\u54c1\u3001\u8fd0\u8425\u6280\u80fd\u5b66\u4e60/\u5907\u8003/\u6c42\u804c\u9898\u5e93","url":"https://www.nowcoder.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":794},{"icon":"https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/LogoMakr_1J56bI.png","name":"CS-Notes","desc":"\u6280\u672f\u9762\u8bd5\u5fc5\u5907\u57fa\u7840\u77e5\u8bc6\u3001Leetcode\u3001\u8ba1\u7b97\u673a\u64cd\u4f5c\u7cfb\u7edf\u3001\u8ba1\u7b97\u673a\u7f51\u7edc\u3001\u7cfb\u7edf\u8bbe\u8ba1\u3001Java\u3001Python\u3001C++","url":"https://cyc2018.github.io/CS-Notes","urls":{"-3":"https://github.com/CyC2018/CS-Notes"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":795},{"icon":"https://visualgo.net/img/favicon.png","name":"\u6570\u636e\u7ed3\u6784\u548c\u7b97\u6cd5\u52a8\u6001\u53ef\u89c6\u5316","desc":"\u6570\u636e\u7ed3\u6784\u548c\u7b97\u6cd5\u52a8\u6001\u53ef\u89c6\u5316","url":"https://visualgo.net/zh","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":796},{"icon":"https://github.com/favicon.ico","name":"algorithm-pattern","desc":"\u7b97\u6cd5\u6a21\u677f\uff0c\u6700\u79d1\u5b66\u7684\u5237\u9898\u65b9\u5f0f\uff0c\u6700\u5feb\u901f\u7684\u5237\u9898\u8def\u5f84\uff0c\u4f60\u503c\u5f97\u62e5\u6709~","url":"https://github.com/greyireland/algorithm-pattern","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":797}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u7f51\u7edc\u5b89\u5168","nav":[{"title":"\u7f51\u7edc\u5b89\u5168","nav":[{"title":"\u7f51\u7edc\u5b89\u5168","nav":[{"name":"\u4e4c\u4e91\u7f51\u955c\u50cf","desc":"WooYun\u662f\u4e00\u4e2a\u4f4d\u4e8e\u5382\u5546\u548c\u5b89\u5168\u7814\u7a76\u8005\u4e4b\u95f4\u7684\u6f0f\u6d1e\u62a5\u544a\u5e73\u53f0,\u6ce8\u91cd\u5c0a\u91cd,\u8fdb\u6b65,\u4e0e\u610f\u4e49","url":"http://wooyun.2xss.cc/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":798},{"icon":"https://www.anquan.org/aq_static/images/favicon/favicon.ico","name":"\u5b89\u5168\u8054\u76df","desc":"\u5b89\u5168\u8054\u76df - \u56fd\u5185\u6700\u5927\u7684\u7b2c\u4e09\u65b9\u7f51\u7edc\u5b89\u5168\u6570\u636e\u5171\u4eab\u4ea4\u6362\u5e73\u53f0","url":"https://www.anquan.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":799},{"icon":"https://www.360.cn/favicon.ico","name":"360\u7f51\u7ad9\u5b89\u5168\u68c0\u6d4b","desc":"\u4e3a\u7ad9\u957f\u514d\u8d39\u63d0\u4f9b\u4e86\u7f51\u7ad9\u6f0f\u6d1e\u68c0\u6d4b\u3001\u7f51\u7ad9\u6f0f\u6d1e\u4fee\u590d\u3001\u7f51\u7ad9\u540e\u95e8\u68c0\u6d4b\u3001\u6728\u9a6c\u67e5\u6740\uff0c\u7f51\u5740\u5b89\u5168\u67e5\u8be2\u7b49\u670d\u52a1","url":"http://webscan.360.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":800},{"icon":"https://www.2cto.com/favicon.ico","name":"\u7ea2\u9ed1\u8054\u76df","desc":"\u7ea2\u9ed1\u8054\u76df\u4f5c\u4e3a\u8001\u724c\u7684\u4fe1\u606f\u5b89\u5168\u7f51\u7ad9,\u81f4\u529b\u4e8e\u57f9\u8bad\u7535\u8111\u6280\u672f\u9ad8\u624b.\u7f51\u7ad9\u96c6\u7f51\u7edc\u5b89\u5168,\u7cfb\u7edf\u7f51\u7edc,\u7f16\u7a0b\u5f00\u53d1,\u7f51\u7ad9\u5efa\u8bbe\u7b49\u9891\u9053\u4e8e\u4e00\u4f53","url":"https://www.2cto.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":801},{"icon":"https://www.knownsec.com/static/favicon.ico","name":"\u77e5\u9053\u521b\u5b87","desc":"\u77e5\u9053\u521b\u5b87\uff0c\u7f51\u7edc\u7a7a\u95f4\u5b89\u5168\u4e13\u5bb6\uff0c\u957f\u671f\u81f4\u529b\u4e8e\u4e3a\u653f\u5e9c\u3001\u4f01\u4e1a\u7c7b\u5ba2\u6237\u63d0\u4f9b\u5b8c\u5584\u7684\u4e91\u5b89\u5168\u89e3\u51b3\u65b9\u6848","url":"https://www.knownsec.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":802},{"name":"\u5b89\u5168\u5468","desc":"\u5173\u6ce8\u5b89\u5168\u8d44\u8baf \u4e13\u6ce8\u8d44\u6e90\u5171\u4eab","url":"https://www.secz.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":803},{"icon":"https://www.hacked.com.cn/favicon.ico","name":"\u5168\u7403\u88ab\u9ed1\u7ad9\u70b9\u7edf\u8ba1\u7cfb\u7edf","desc":"\u4e3b\u8981\u901a\u8fc7\u7f51\u7edc\u641c\u96c6\u56fd\u5185\u88ab\u9ed1\u7f51\u7ad9\u4fe1\u606f\uff0c\u7edf\u8ba1\u5206\u6790\u6570\u636e\uff0c\u4e3a\u90e8\u7f72\u5b89\u5168\u578b\u7f51\u7edc\u63d0\u4f9b\u5f3a\u6709\u529b\u7684\u4f9d\u636e...","url":"http://www.hacked.com.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":804},{"icon":"https://www.secpulse.com/favicon.ico","name":"\u5b89\u5168\u8109\u640f","desc":"\u9ad8\u8d28\u91cf\u7684\u5168\u7403\u4e92\u8054\u7f51\u5b89\u5168\u5a92\u4f53\u548c\u6280\u672f\u5e73\u53f0,\u5b89\u5168\u7231\u597d\u8005\u4eec\u4ea4\u6d41\u4e0e\u5206\u4eab\u524d\u6cbf\u5b89\u5168\u6280\u672f\u7684\u6700\u4f73\u793e\u533a","url":"https://www.secpulse.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":805}],"createdAt":"2021-01-23 09:32:06"},{"title":"CTF","nav":[{"icon":"http://xss.xiejiahe.com/favicon.png","name":"XSS-CTF","desc":"XSS-CTF \u662f\u4e00\u4e2a\u7ec3\u4e60\u548c\u5165\u95e8\u7684XSS\u5e73\u53f0, \u6bcf\u4e00\u4f4dWEB\u5de5\u7a0b\u5e08\u90fd\u5e94\u5177\u5907\u7684\u57fa\u7840\u77e5\u8bc6\uff0c\u63d0\u9ad8\u7f51\u7edc\u5b89\u5168\u610f\u8bc6","url":"http://xss.xiejiahe.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","CTF"],"ownVisible":false,"id":806},{"name":"XSS\u6d4b\u8bd5","desc":"XSS\u5c0f\u6e38\u620f","url":"https://xss.haozi.me/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","CTF"],"ownVisible":false,"id":807},{"name":"Pasteurize","desc":"XSS CTF","url":"https://pasteurize.web.ctfcompetition.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","CTF"],"ownVisible":false,"id":808}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8f85\u52a9\u5de5\u5177","nav":[{"icon":"https://www.telerik.com/favicon.ico","name":"fiddler","desc":"Fiddler\u662f\u4e00\u4e2a\u7528\u4e8eHTTP\u8c03\u8bd5\u7684\u4ee3\u7406\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f","url":"https://www.telerik.com/fiddler","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":809},{"icon":"https://www.wireshark.org/assets/images/favicon.ico","name":"wireshark","desc":"\u662f\u4e00\u4e2a\u7f51\u7edc\u5c01\u5305\u5206\u6790\u8f6f\u4ef6\u3002\u7f51\u7edc\u5c01\u5305\u5206\u6790\u8f6f\u4ef6\u7684\u529f\u80fd\u662f\u64b7\u53d6\u7f51\u7edc\u5c01\u5305\uff0c\u5e76\u5c3d\u53ef\u80fd\u663e\u793a\u51fa\u6700\u4e3a\u8be6\u7ec6\u7684\u7f51\u7edc\u5c01\u5305\u8d44\u6599\u3002Wireshark\u4f7f\u7528WinPCAP\u4f5c\u4e3a\u63a5\u53e3\uff0c\u76f4\u63a5\u4e0e\u7f51\u5361\u8fdb\u884c\u6570\u636e\u62a5\u6587\u4ea4\u6362","url":"https://www.wireshark.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":810},{"name":"XSS\u5e73\u53f0-\u767d\u5e3d\u5b89\u5168\u6d4b\u8bd5","desc":"XSS\u5e73\u53f0\u662f\u4e00\u4e2a\u514d\u8d39\u7ed9\u767d\u5e3d\u5b89\u5168\u6d4b\u8bd5\u7684\u5e73\u53f0","url":"https://xsspt.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":811},{"name":"Security Headers","desc":"\u5feb\u901f\u8f7b\u677e\u5730\u8bc4\u4f30HTTP\u54cd\u5e94\u5934\u7684\u5b89\u5168\u6027","url":"https://securityheaders.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":812},{"name":"w9scan","desc":"\u4e00\u6b3e\u5168\u80fd\u578b\u7684\u7f51\u7ad9\u6f0f\u6d1e\u626b\u63cf\u5668\uff0c\u5185\u7f6e1200+\u63d2\u4ef6\u53ef\u5bf9\u7f51\u7ad9\u8fdb\u884c\u4e00\u6b21\u89c4\u6a21\u7684\u68c0\u6d4b\uff0c\u529f\u80fd\u5305\u62ec\u4f46\u4e0d\u9650\u4e8eweb\u6307\u7eb9\u68c0\u6d4b\u3001\u7aef\u53e3\u6307\u7eb9\u68c0\u6d4b\u3001\u7f51\u7ad9\u7ed3\u6784\u5206\u6790\u3001\u5404\u79cd\u6d41\u884c\u7684\u6f0f\u6d1e\u68c0\u6d4b\u3001\u722c\u866b\u4ee5\u53caSQL\u6ce8\u5165\u68c0\u6d4b\u3001XSS\u68c0\u6d4b...","url":"https://github.com/w-digital-scanner/w9scan","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":813},{"icon":"https://avatars0.githubusercontent.com/u/7302766?s=200&v=4","name":"xray","desc":"xray \u5b89\u5168\u8bc4\u4f30\u5de5\u5177","url":"https://github.com/chaitin/xray","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":814},{"icon":"https://www.cmd5.com/favicon.ico","name":"cmd5","desc":"md5\u5728\u7ebf\u89e3\u5bc6\u7834\u89e3,md5\u89e3\u5bc6\u52a0\u5bc6","url":"https://www.cmd5.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":815},{"icon":"https://avatars3.githubusercontent.com/u/735289?s=200&v=4","name":"sqlmap","desc":"\u81ea\u52a8SQL\u6ce8\u5165\u548c\u6570\u636e\u5e93\u63a5\u7ba1\u5de5\u5177","url":"http://sqlmap.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":816},{"icon":"https://avatars2.githubusercontent.com/u/63385?s=200&v=4","name":"nmap","desc":"nmap\u662f\u4e00\u4e2a\u7f51\u7edc\u8fde\u63a5\u7aef\u626b\u63cf\u8f6f\u4ef6\uff0c\u7528\u6765\u626b\u63cf\u7f51\u4e0a\u7535\u8111\u5f00\u653e\u7684\u7f51\u7edc\u8fde\u63a5\u7aef","url":"https://nmap.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":817},{"icon":"http://xssor.io/s/favicon.ico","name":"xssor","desc":"\u7f16\u7801/\u89e3\u7801\uff0cCodz\uff0c\u63a2\u9488","url":"http://xssor.io","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":818},{"icon":"https://phpinfo.me/favicon.ico","name":"\u5728\u7ebf\u5b50\u57df\u540d\u67e5\u8be2","desc":"\u5728\u7ebf\u5b50\u57df\u540d\u67e5\u8be2","url":"https://phpinfo.me/domain/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":819},{"name":"fuzzDicts","desc":"Web Pentesting Fuzz \u5b57\u5178","url":"https://github.com/TheKingOfDuck/fuzzDicts","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":820},{"name":"BurpSuitePro","desc":"\u514d\u8d39\u7684BurpSuitePro\u7248\u672c","url":"https://github.com/TrojanAZhen/BurpSuitePro-2.1","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":821}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u77e5\u8bc6/\u6d4b\u8bd5","nav":[{"icon":"https://vulhub.org/img/favicon.ico","name":"Vulhub","desc":"\u57fa\u4e8edocker\u548cdocker-compose\u7684\u6f0f\u6d1e\u73af\u5883\u96c6\u5408...","url":"https://vulhub.org","langguage":["","","https://github.com/vulhub/vulhub"],"createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u77e5\u8bc6/\u6d4b\u8bd5"],"ownVisible":false,"id":822},{"name":"SRC-experience","desc":"\u5de5\u6b32\u5584\u5176\u4e8b\uff0c\u5fc5\u5148\u5229\u5176\u5668,\u4e00\u4e9bsrc\u6316\u6398\u5947\u6280\u6deb\u5de7\uff0c\u56fd\u5916\u65b0\u6280\u672f\u7684\u5b66\u4e60\u7f51\u7ad9\u5206\u4eab","url":"https://github.com/Wh0ale/SRC-experience","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u77e5\u8bc6/\u6d4b\u8bd5"],"ownVisible":false,"id":823},{"name":"Intranet_Penetration_Tips","desc":"\u5185\u7f51\u6e17\u900fTIPS","url":"https://github.com/Ridter/Intranet_Penetration_Tips","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u77e5\u8bc6/\u6d4b\u8bd5"],"ownVisible":false,"id":824}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8fd0\u8425\u76f8\u5173","nav":[{"title":"\u8fd0\u8425\u76f8\u5173","nav":[{"title":"\u8fd0\u8425\u76f8\u5173","nav":[{"icon":"https://tongji.baidu.com/favicon.ico","name":"\u767e\u5ea6\u7edf\u8ba1","desc":"\u5168\u7403\u6700\u5927\u7684\u4e2d\u6587\u7f51\u7ad9\u6d41\u91cf\u5206\u6790\u5e73\u53f0\uff0c\u5e2e\u52a9\u4f01\u4e1a\u6536\u96c6\u7f51\u7ad9\u8bbf\u95ee\u6570\u636e\uff0c\u63d0\u4f9b\u6d41\u91cf\u8d8b\u52bf\u3001\u6765\u6e90\u5206\u6790...","url":"https://tongji.baidu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":825},{"icon":"https://www.umeng.com/favicon.ico","name":"CNZZ","desc":"CNZZ\u6570\u636e\u4e13\u5bb6\u662f\u5168\u7403\u6700\u5927\u7684\u4e2d\u6587\u7f51\u7ad9\u7edf\u8ba1\u5206\u6790\u5e73\u53f0\uff0c\u4e3a\u5404\u7c7b\u7f51\u7ad9\u63d0\u4f9b\u514d\u8d39\u3001\u5b89\u5168\u3001\u7a33\u5b9a","url":"http://www.cnzz.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":826},{"icon":"https://www.baidu.com/img/baidu.svg","name":"\u767e\u5ea6\u641c\u7d22\u8d44\u6e90\u5e73\u53f0","desc":"\u767e\u5ea6\u641c\u7d22\u8d44\u6e90\u5e73\u53f0_\u8ba9\u7f51\u7ad9\u66f4\u5177\u4ef7\u503c","url":"https://ziyuan.baidu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":827},{"icon":"https://www.wjx.cn/favicon.ico","name":"\u95ee\u5377\u661f","desc":"\u514d\u8d39\u4f7f\u7528\u95ee\u5377\u661f\u521b\u5efa\u95ee\u5377\u8c03\u67e5\u3001\u5728\u7ebf\u8003\u8bd5\u3001360\u5ea6\u8bc4\u4f30\u7b49\u5e94\u7528","url":"https://www.wjx.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":828},{"icon":"https://gd-assets.jinshujucdn.com/favicon.ico","name":"\u91d1\u6570\u636e","desc":"\u91d1\u6570\u636e\u662f\u4eba\u4eba\u53ef\u7528\u7684\u5728\u7ebf\u8868\u5355\u5de5\u5177\uff0c\u5e2e\u52a9\u7528\u6237\u6536\u96c6\u548c\u7ba1\u7406\u65e5\u5e38\u5de5\u4f5c\u4e2d\u7684\u6570\u636e\uff0c\u63d0\u5347\u5de5\u4f5c\u6548\u7387","url":"https://jinshuju.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":829},{"icon":"https://ssl.gstatic.com/analytics/20201013-01/app/static/analytics_standard_icon.png","name":"Google Analytics","desc":"Google Analytics\u662f\u4e00\u4e2a\u6536\u96c6\u6570\u636e\u5e76\u5c06\u5176\u5206\u6790\u6574\u7406\u6210\u5b9e\u7528\u62a5\u544a\u7684\u5e73\u53f0","url":"https://analytics.google.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":830},{"icon":"https://mta.qq.com/mta/resource/imgcache/images/favicon.ico","name":"\u817e\u8baf\u79fb\u52a8\u5206\u6790","desc":"\u817e\u8baf\u79fb\u52a8\u5206\u6790\u662f\u817e\u8baf\u6570\u636e\u4e91\uff0c\u817e\u8baf\u5927\u6570\u636e\u6218\u7565\u7684\u6838\u5fc3\u4ea7\u54c1\uff0c\u63d0\u4f9bapp\u5e94\u7528\u7684\u79fb\u52a8\u7edf\u8ba1\u5206\u6790\uff0c\u652f\u6301android/iOS\u5e73\u53f0\uff0c\u5b9e\u73b0\u7528\u6237\u753b\u50cf\u3001\u6570\u636e\u53ef\u89c6\u5316\u3001\u6570\u636e\u6316\u6398\u3001\u6e20\u9053\u6548\u679c\u5206\u6790\u7b49\u7efc\u5408\u6570\u636e\u670d\u52a1","url":"https://mta.qq.com/mta/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":831},{"icon":"https://www.google.com/favicon.ico","name":"Google Adsense","desc":"Google Adsense","url":"https://www.google.com/adsense","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":832}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u535a\u5ba2\u770b\u70b9","nav":[{"title":"\u535a\u5ba2\u770b\u70b9","nav":[{"title":"Team","nav":[{"icon":"https://aotu.io/img/favicon-48x48.png","name":"\u51f9\u51f8\u5b9e\u9a8c\u5ba4","desc":"O2\u9762\u5411\u591a\u7ec8\u7aef\u6280\u672f\u4f53\u7cfb\uff0c\u81f4\u529b\u4e8e\u6784\u5efa\u6c89\u6dc0\u4e0e\u5206\u4eab\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4ea4\u4e92\u3001\u9875\u9762\u5236\u4f5c\u6280\u5de7...","url":"https://aotu.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":833},{"icon":"https://imweb.io/public/icon.png","name":"\u817e\u8bafIMWeb","desc":"Web\u524d\u7aef \u817e\u8bafIMWeb \u56e2\u961f\u793e\u533a","url":"https://imweb.io/topic/tab/all","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":834},{"icon":"https://avatars1.githubusercontent.com/u/4158466?s=200&v=4","name":"\u5b57\u8282\u8df3\u52a8\u6280\u672f\u535a\u5ba2","desc":"\u5b57\u8282\u8df3\u52a8\u6280\u672f\u535a\u5ba2","url":"https://techblog.toutiao.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":835},{"icon":"https://fed.taobao.org/favicon.ico","name":"\u6dd8\u7cfb\u524d\u7aef\u56e2\u961f","desc":"\u7528\u6280\u672f\u4e3a\u4f53\u9a8c\u63d0\u4f9b\u65e0\u9650\u53ef\u80fd","url":"https://fed.taobao.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":836},{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"\u6709\u8d5e\u6280\u672f\u56e2\u961f","desc":"\u6709\u8d5e\u6280\u672f\u56e2\u961f","url":"https://tech.youzan.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":837}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4e2a\u4eba\u535a\u5ba2","nav":[{"name":"\u962e\u4e00\u5cf0\u7684\u7f51\u7edc\u65e5\u5fd7","icon":"http://www.ruanyifeng.com/favicon.ico","url":"http://www.ruanyifeng.com/blog/","desc":"\u962e\u4e00\u5cf0\u7684\u7f51\u7edc\u65e5\u5fd7","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","\u4e2a\u4eba\u535a\u5ba2"],"ownVisible":false,"id":838},{"icon":"https://www.xiejiahe.com/favicon-128x128.png","name":"\u8c22\u5bb6\u548c\u7684\u535a\u5ba2","desc":"WEB Developer","url":"https://www.xiejiahe.com/?from=nav2","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","\u4e2a\u4eba\u535a\u5ba2"],"ownVisible":false,"id":839},{"icon":"https://www.yinwang.org/images/Yc.jpg","name":"\u738b\u57a0\u7684\u535a\u5ba2","desc":"\u5f53\u7136\u6211\u5728\u626f\u6de1","url":"http://www.yinwang.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","\u4e2a\u4eba\u535a\u5ba2"],"ownVisible":false,"id":840},{"icon":"https://overreacted.io/favicon.ico","name":"Dan","desc":"react\u4f5c\u8005\u7684\u535a\u5ba2","url":"https://overreacted.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","\u4e2a\u4eba\u535a\u5ba2"],"ownVisible":false,"id":841}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}]'),jg=JSON.parse('[{"name":"\u7ad9\u5185","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/logo.png","placeholder":"\u7ad9\u5185\u641c\u7d22","blocked":false,"isInner":true},{"name":"\u767e\u5ea6","url":"https://www.baidu.com/s?wd=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/baidu.svg","placeholder":"\u767e\u5ea6\u4e00\u4e0b","blocked":false,"isInner":false},{"name":"Google","url":"https://www.google.com/search?q=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/google.svg","blocked":false,"isInner":false},{"name":"\u5fc5\u5e94","url":"https://cn.bing.com/search?q=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/bing.svg","blocked":false,"isInner":false},{"name":"GitHub","url":"https://github.com/search?q=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/github.svg","placeholder":"Search GitHub","blocked":false,"isInner":false},{"name":"\u77e5\u4e4e","url":"https://www.zhihu.com/search?type=content&q=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/zhihu.svg","blocked":false,"isInner":false},{"name":"\u8c46\u74e3","url":"https://search.douban.com/book/subject_search?search_text=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/douban.svg","placeholder":"\u4e66\u540d\u3001\u4f5c\u8005\u3001ISBN","blocked":false,"isInner":false}]'),$g="data/db.json",Ui={token:"token",location:"location",s_url:"s_url",isDark:"isDark",website:"website",engine:"engine",language:"language",total:"total",authCode:"AUTH_CODE"};function j0(){return window.localStorage.getItem("token")||""}function Yg(){return window.localStorage.getItem("AUTH_CODE")||""}function HD(t){return window.localStorage.setItem("AUTH_CODE",t.trim())}function BD(){const t=Yg();window.localStorage.clear(),HD(t)}const Wi=!!j0();var pa=function(t){return t[t.All=1]="All",t[t.Title=2]="Title",t[t.Desc=3]="Desc",t[t.Url=4]="Url",t[t.Current=5]="Current",t}(pa||{});function jD(t,n){return function(){return t.apply(n,arguments)}}const{toString:PX}=Object.prototype,{getPrototypeOf:Ug}=Object,$0=(t=>n=>{const e=PX.call(n);return t[e]||(t[e]=e.slice(8,-1).toLowerCase())})(Object.create(null)),Yr=t=>(t=t.toLowerCase(),n=>$0(n)===t),Y0=t=>n=>typeof n===t,{isArray:y1}=Array,Nu=Y0("undefined"),$D=Yr("ArrayBuffer"),VX=Y0("string"),_r=Y0("function"),YD=Y0("number"),U0=t=>null!==t&&"object"==typeof t,W0=t=>{if("object"!==$0(t))return!1;const n=Ug(t);return!(null!==n&&n!==Object.prototype&&null!==Object.getPrototypeOf(n)||Symbol.toStringTag in t||Symbol.iterator in t)},RX=Yr("Date"),LX=Yr("File"),HX=Yr("Blob"),BX=Yr("FileList"),YX=Yr("URLSearchParams"),[UX,WX,GX,qX]=["ReadableStream","Request","Response","Headers"].map(Yr);function Vu(t,n,{allOwnKeys:e=!1}={}){if(null===t||typeof t>"u")return;let i,o;if("object"!=typeof t&&(t=[t]),y1(t))for(i=0,o=t.length;i0;)if(o=e[i],n===o.toLowerCase())return o;return null}const WD=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,GD=t=>!Nu(t)&&t!==WD,nee=(t=>n=>t&&n instanceof t)(typeof Uint8Array<"u"&&Ug(Uint8Array)),ree=Yr("HTMLFormElement"),qD=(({hasOwnProperty:t})=>(n,e)=>t.call(n,e))(Object.prototype),aee=Yr("RegExp"),KD=(t,n)=>{const e=Object.getOwnPropertyDescriptors(t),i={};Vu(e,(o,r)=>{let s;!1!==(s=n(o,r,t))&&(i[r]=s||o)}),Object.defineProperties(t,i)},Gg="abcdefghijklmnopqrstuvwxyz",JD="0123456789",ZD={DIGIT:JD,ALPHA:Gg,ALPHA_DIGIT:Gg+Gg.toUpperCase()+JD},mee=Yr("AsyncFunction"),J={isArray:y1,isArrayBuffer:$D,isBuffer:function IX(t){return null!==t&&!Nu(t)&&null!==t.constructor&&!Nu(t.constructor)&&_r(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let n;return t&&("function"==typeof FormData&&t instanceof FormData||_r(t.append)&&("formdata"===(n=$0(t))||"object"===n&&_r(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function NX(t){let n;return n=typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&$D(t.buffer),n},isString:VX,isNumber:YD,isBoolean:t=>!0===t||!1===t,isObject:U0,isPlainObject:W0,isReadableStream:UX,isRequest:WX,isResponse:GX,isHeaders:qX,isUndefined:Nu,isDate:RX,isFile:LX,isBlob:HX,isRegExp:aee,isFunction:_r,isStream:t=>U0(t)&&_r(t.pipe),isURLSearchParams:YX,isTypedArray:nee,isFileList:BX,forEach:Vu,merge:function Wg(){const{caseless:t}=GD(this)&&this||{},n={},e=(i,o)=>{const r=t&&UD(n,o)||o;n[r]=W0(n[r])&&W0(i)?Wg(n[r],i):W0(i)?Wg({},i):y1(i)?i.slice():i};for(let i=0,o=arguments.length;i(Vu(n,(o,r)=>{t[r]=e&&_r(o)?jD(o,e):o},{allOwnKeys:i}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,n,e,i)=>{t.prototype=Object.create(n.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:n.prototype}),e&&Object.assign(t.prototype,e)},toFlatObject:(t,n,e,i)=>{let o,r,s;const a={};if(n=n||{},null==t)return n;do{for(o=Object.getOwnPropertyNames(t),r=o.length;r-- >0;)s=o[r],(!i||i(s,t,n))&&!a[s]&&(n[s]=t[s],a[s]=!0);t=!1!==e&&Ug(t)}while(t&&(!e||e(t,n))&&t!==Object.prototype);return n},kindOf:$0,kindOfTest:Yr,endsWith:(t,n,e)=>{t=String(t),(void 0===e||e>t.length)&&(e=t.length);const i=t.indexOf(n,e-=n.length);return-1!==i&&i===e},toArray:t=>{if(!t)return null;if(y1(t))return t;let n=t.length;if(!YD(n))return null;const e=new Array(n);for(;n-- >0;)e[n]=t[n];return e},forEachEntry:(t,n)=>{const i=(t&&t[Symbol.iterator]).call(t);let o;for(;(o=i.next())&&!o.done;){const r=o.value;n.call(t,r[0],r[1])}},matchAll:(t,n)=>{let e;const i=[];for(;null!==(e=t.exec(n));)i.push(e);return i},isHTMLForm:ree,hasOwnProperty:qD,hasOwnProp:qD,reduceDescriptors:KD,freezeMethods:t=>{KD(t,(n,e)=>{if(_r(t)&&-1!==["arguments","caller","callee"].indexOf(e))return!1;if(_r(t[e])){if(n.enumerable=!1,"writable"in n)return void(n.writable=!1);n.set||(n.set=()=>{throw Error("Can not rewrite read-only method '"+e+"'")})}})},toObjectSet:(t,n)=>{const e={},i=o=>{o.forEach(r=>{e[r]=!0})};return y1(t)?i(t):i(String(t).split(n)),e},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,i,o){return i.toUpperCase()+o}),noop:()=>{},toFiniteNumber:(t,n)=>null!=t&&Number.isFinite(t=+t)?t:n,findKey:UD,global:WD,isContextDefined:GD,ALPHABET:ZD,generateString:(t=16,n=ZD.ALPHA_DIGIT)=>{let e="";const{length:i}=n;for(;t--;)e+=n[Math.random()*i|0];return e},isSpecCompliantForm:function pee(t){return!!(t&&_r(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const n=new Array(10),e=(i,o)=>{if(U0(i)){if(n.indexOf(i)>=0)return;if(!("toJSON"in i)){n[o]=i;const r=y1(i)?[]:{};return Vu(i,(s,a)=>{const c=e(s,o+1);!Nu(c)&&(r[a]=c)}),n[o]=void 0,r}}return i};return e(t,0)},isAsyncFn:mee,isThenable:t=>t&&(U0(t)||_r(t))&&_r(t.then)&&_r(t.catch)};function C1(t,n,e,i,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",n&&(this.code=n),e&&(this.config=e),i&&(this.request=i),o&&(this.response=o)}J.inherits(C1,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:J.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const QD=C1.prototype,XD={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{XD[t]={value:t}}),Object.defineProperties(C1,XD),Object.defineProperty(QD,"isAxiosError",{value:!0}),C1.from=(t,n,e,i,o,r)=>{const s=Object.create(QD);return J.toFlatObject(t,s,function(c){return c!==Error.prototype},a=>"isAxiosError"!==a),C1.call(s,t.message,n,e,i,o),s.cause=t,s.name=t.name,r&&Object.assign(s,r),s};const Ht=C1;function qg(t){return J.isPlainObject(t)||J.isArray(t)}function tx(t){return J.endsWith(t,"[]")?t.slice(0,-2):t}function nx(t,n,e){return t?t.concat(n).map(function(o,r){return o=tx(o),!e&&r?"["+o+"]":o}).join(e?".":""):n}const vee=J.toFlatObject(J,{},null,function(n){return/^is[A-Z]/.test(n)}),G0=function _ee(t,n,e){if(!J.isObject(t))throw new TypeError("target must be an object");n=n||new FormData;const i=(e=J.toFlatObject(e,{metaTokens:!0,dots:!1,indexes:!1},!1,function(z,E){return!J.isUndefined(E[z])})).metaTokens,o=e.visitor||u,r=e.dots,s=e.indexes,c=(e.Blob||typeof Blob<"u"&&Blob)&&J.isSpecCompliantForm(n);if(!J.isFunction(o))throw new TypeError("visitor must be a function");function l(y){if(null===y)return"";if(J.isDate(y))return y.toISOString();if(!c&&J.isBlob(y))throw new Ht("Blob is not supported. Use a Buffer instead.");return J.isArrayBuffer(y)||J.isTypedArray(y)?c&&"function"==typeof Blob?new Blob([y]):Buffer.from(y):y}function u(y,z,E){let k=y;if(y&&!E&&"object"==typeof y)if(J.endsWith(z,"{}"))z=i?z:z.slice(0,-2),y=JSON.stringify(y);else if(J.isArray(y)&&function gee(t){return J.isArray(t)&&!t.some(qg)}(y)||(J.isFileList(y)||J.endsWith(z,"[]"))&&(k=J.toArray(y)))return z=tx(z),k.forEach(function(ie,pe){!J.isUndefined(ie)&&null!==ie&&n.append(!0===s?nx([z],pe,r):null===s?z:z+"[]",l(ie))}),!1;return!!qg(y)||(n.append(nx(E,z,r),l(y)),!1)}const p=[],_=Object.assign(vee,{defaultVisitor:u,convertValue:l,isVisitable:qg});if(!J.isObject(t))throw new TypeError("data must be an object");return function b(y,z){if(!J.isUndefined(y)){if(-1!==p.indexOf(y))throw Error("Circular reference detected in "+z.join("."));p.push(y),J.forEach(y,function(k,A){!0===(!(J.isUndefined(k)||null===k)&&o.call(n,k,J.isString(A)?A.trim():A,z,_))&&b(k,z?z.concat(A):[A])}),p.pop()}}(t),n};function ix(t){const n={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(i){return n[i]})}function ox(t,n){this._pairs=[],t&&G0(t,this,n)}const rx=ox.prototype;rx.append=function(n,e){this._pairs.push([n,e])},rx.toString=function(n){const e=n?function(i){return n.call(this,i,ix)}:ix;return this._pairs.map(function(o){return e(o[0])+"="+e(o[1])},"").join("&")};const sx=ox;function bee(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ax(t,n,e){if(!n)return t;const i=e&&e.encode||bee,o=e&&e.serialize;let r;if(r=o?o(n,e):J.isURLSearchParams(n)?n.toString():new sx(n,e).toString(i),r){const s=t.indexOf("#");-1!==s&&(t=t.slice(0,s)),t+=(-1===t.indexOf("?")?"?":"&")+r}return t}const cx=class yee{constructor(){this.handlers=[]}use(n,e,i){return this.handlers.push({fulfilled:n,rejected:e,synchronous:!!i&&i.synchronous,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(n){this.handlers[n]&&(this.handlers[n]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(n){J.forEach(this.handlers,function(i){null!==i&&n(i)})}},lx={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Cee={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:sx,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},Kg=typeof window<"u"&&typeof document<"u",wee=(t=typeof navigator<"u"&&navigator.product,Kg&&["ReactNative","NativeScript","NS"].indexOf(t)<0),zee=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,See=Kg&&window.location.href||"http://localhost",Ur={...X,...Cee};var t;const dx=function xee(t){function n(e,i,o,r){let s=e[r++];if("__proto__"===s)return!0;const a=Number.isFinite(+s),c=r>=e.length;return s=!s&&J.isArray(o)?o.length:s,c?(o[s]=J.hasOwnProp(o,s)?[o[s],i]:i,!a):((!o[s]||!J.isObject(o[s]))&&(o[s]=[]),n(e,i,o[s],r)&&J.isArray(o[s])&&(o[s]=function Dee(t){const n={},e=Object.keys(t);let i;const o=e.length;let r;for(i=0;i{n(function Mee(t){return J.matchAll(/\w+|\[(\w*)]/g,t).map(n=>"[]"===n[0]?"":n[1]||n[0])}(i),o,e,0)}),e}return null},Jg={transitional:lx,adapter:["xhr","http","fetch"],transformRequest:[function(n,e){const i=e.getContentType()||"",o=i.indexOf("application/json")>-1,r=J.isObject(n);if(r&&J.isHTMLForm(n)&&(n=new FormData(n)),J.isFormData(n))return o?JSON.stringify(dx(n)):n;if(J.isArrayBuffer(n)||J.isBuffer(n)||J.isStream(n)||J.isFile(n)||J.isBlob(n)||J.isReadableStream(n))return n;if(J.isArrayBufferView(n))return n.buffer;if(J.isURLSearchParams(n))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),n.toString();let a;if(r){if(i.indexOf("application/x-www-form-urlencoded")>-1)return function Tee(t,n){return G0(t,new Ur.classes.URLSearchParams,Object.assign({visitor:function(e,i,o,r){return Ur.isNode&&J.isBuffer(e)?(this.append(i,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},n))}(n,this.formSerializer).toString();if((a=J.isFileList(n))||i.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return G0(a?{"files[]":n}:n,c&&new c,this.formSerializer)}}return r||o?(e.setContentType("application/json",!1),function Eee(t,n,e){if(J.isString(t))try{return(n||JSON.parse)(t),J.trim(t)}catch(i){if("SyntaxError"!==i.name)throw i}return(e||JSON.stringify)(t)}(n)):n}],transformResponse:[function(n){const e=this.transitional||Jg.transitional,i=e&&e.forcedJSONParsing,o="json"===this.responseType;if(J.isResponse(n)||J.isReadableStream(n))return n;if(n&&J.isString(n)&&(i&&!this.responseType||o)){const s=!(e&&e.silentJSONParsing)&&o;try{return JSON.parse(n)}catch(a){if(s)throw"SyntaxError"===a.name?Ht.from(a,Ht.ERR_BAD_RESPONSE,this,null,this.response):a}}return n}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ur.classes.FormData,Blob:Ur.classes.Blob},validateStatus:function(n){return n>=200&&n<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};J.forEach(["delete","get","head","post","put","patch"],t=>{Jg.headers[t]={}});const Zg=Jg,kee=J.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ux=Symbol("internals");function Fu(t){return t&&String(t).trim().toLowerCase()}function q0(t){return!1===t||null==t?t:J.isArray(t)?t.map(q0):String(t)}function Qg(t,n,e,i,o){if(J.isFunction(i))return i.call(this,n,e);if(o&&(n=e),J.isString(n)){if(J.isString(i))return-1!==n.indexOf(i);if(J.isRegExp(i))return i.test(n)}}class K0{constructor(n){n&&this.set(n)}set(n,e,i){const o=this;function r(a,c,l){const u=Fu(c);if(!u)throw new Error("header name must be a non-empty string");const p=J.findKey(o,u);(!p||void 0===o[p]||!0===l||void 0===l&&!1!==o[p])&&(o[p||c]=q0(a))}const s=(a,c)=>J.forEach(a,(l,u)=>r(l,u,c));if(J.isPlainObject(n)||n instanceof this.constructor)s(n,e);else if(J.isString(n)&&(n=n.trim())&&!(t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))(n))s((t=>{const n={};let e,i,o;return t&&t.split("\n").forEach(function(s){o=s.indexOf(":"),e=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!e||n[e]&&kee[e])&&("set-cookie"===e?n[e]?n[e].push(i):n[e]=[i]:n[e]=n[e]?n[e]+", "+i:i)}),n})(n),e);else if(J.isHeaders(n))for(const[a,c]of n.entries())r(c,a,i);else null!=n&&r(e,n,i);return this}get(n,e){if(n=Fu(n)){const i=J.findKey(this,n);if(i){const o=this[i];if(!e)return o;if(!0===e)return function Oee(t){const n=Object.create(null),e=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=e.exec(t);)n[i[1]]=i[2];return n}(o);if(J.isFunction(e))return e.call(this,o,i);if(J.isRegExp(e))return e.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(n,e){if(n=Fu(n)){const i=J.findKey(this,n);return!(!i||void 0===this[i]||e&&!Qg(0,this[i],i,e))}return!1}delete(n,e){const i=this;let o=!1;function r(s){if(s=Fu(s)){const a=J.findKey(i,s);a&&(!e||Qg(0,i[a],a,e))&&(delete i[a],o=!0)}}return J.isArray(n)?n.forEach(r):r(n),o}clear(n){const e=Object.keys(this);let i=e.length,o=!1;for(;i--;){const r=e[i];(!n||Qg(0,this[r],r,n,!0))&&(delete this[r],o=!0)}return o}normalize(n){const e=this,i={};return J.forEach(this,(o,r)=>{const s=J.findKey(i,r);if(s)return e[s]=q0(o),void delete e[r];const a=n?function Iee(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(n,e,i)=>e.toUpperCase()+i)}(r):String(r).trim();a!==r&&delete e[r],e[a]=q0(o),i[a]=!0}),this}concat(...n){return this.constructor.concat(this,...n)}toJSON(n){const e=Object.create(null);return J.forEach(this,(i,o)=>{null!=i&&!1!==i&&(e[o]=n&&J.isArray(i)?i.join(", "):i)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([n,e])=>n+": "+e).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(n){return n instanceof this?n:new this(n)}static concat(n,...e){const i=new this(n);return e.forEach(o=>i.set(o)),i}static accessor(n){const i=(this[ux]=this[ux]={accessors:{}}).accessors,o=this.prototype;function r(s){const a=Fu(s);i[a]||(function Nee(t,n){const e=J.toCamelCase(" "+n);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+e,{value:function(o,r,s){return this[i].call(this,n,o,r,s)},configurable:!0})})}(o,s),i[a]=!0)}return J.isArray(n)?n.forEach(r):r(n),this}}K0.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),J.reduceDescriptors(K0.prototype,({value:t},n)=>{let e=n[0].toUpperCase()+n.slice(1);return{get:()=>t,set(i){this[e]=i}}}),J.freezeMethods(K0);const Wr=K0;function Xg(t,n){const e=this||Zg,i=n||e,o=Wr.from(i.headers);let r=i.data;return J.forEach(t,function(a){r=a.call(e,r,o.normalize(),n?n.status:void 0)}),o.normalize(),r}function hx(t){return!(!t||!t.__CANCEL__)}function px(t,n,e){Ht.call(this,t??"canceled",Ht.ERR_CANCELED,n,e),this.name="CanceledError"}J.inherits(px,Ht,{__CANCEL__:!0});const Ru=px;function fx(t,n,e){const i=e.config.validateStatus;e.status&&i&&!i(e.status)?n(new Ht("Request failed with status code "+e.status,[Ht.ERR_BAD_REQUEST,Ht.ERR_BAD_RESPONSE][Math.floor(e.status/100)-4],e.config,e.request,e)):t(e)}const J0=(t,n,e=3)=>{let i=0;const o=function Fee(t,n){t=t||10;const e=new Array(t),i=new Array(t);let s,o=0,r=0;return n=void 0!==n?n:1e3,function(c){const l=Date.now(),u=i[r];s||(s=l),e[o]=c,i[o]=l;let p=r,_=0;for(;p!==o;)_+=e[p++],p%=t;if(o=(o+1)%t,o===r&&(r=(r+1)%t),l-si)return o&&(clearTimeout(o),o=null),e=a,t.apply(null,arguments);o||(o=setTimeout(()=>(o=null,e=Date.now(),t.apply(null,arguments)),i-(a-e)))}}(r=>{const s=r.loaded,a=r.lengthComputable?r.total:void 0,c=s-i,l=o(c);i=s;const p={loaded:s,total:a,progress:a?s/a:void 0,bytes:c,rate:l||void 0,estimated:l&&a&&s<=a?(a-s)/l:void 0,event:r,lengthComputable:null!=a};p[n?"download":"upload"]=!0,t(p)},e)},Bee=Ur.hasStandardBrowserEnv?function(){const n=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let i;function o(r){let s=r;return n&&(e.setAttribute("href",s),s=e.href),e.setAttribute("href",s),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return i=o(window.location.href),function(s){const a=J.isString(s)?o(s):s;return a.protocol===i.protocol&&a.host===i.host}}():function(){return function(){return!0}}(),jee=Ur.hasStandardBrowserEnv?{write(t,n,e,i,o,r){const s=[t+"="+encodeURIComponent(n)];J.isNumber(e)&&s.push("expires="+new Date(e).toGMTString()),J.isString(i)&&s.push("path="+i),J.isString(o)&&s.push("domain="+o),!0===r&&s.push("secure"),document.cookie=s.join("; ")},read(t){const n=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function mx(t,n){return t&&!function $ee(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}(n)?function Yee(t,n){return n?t.replace(/\/?\/$/,"")+"/"+n.replace(/^\/+/,""):t}(t,n):n}const gx=t=>t instanceof Wr?{...t}:t;function mc(t,n){n=n||{};const e={};function i(l,u,p){return J.isPlainObject(l)&&J.isPlainObject(u)?J.merge.call({caseless:p},l,u):J.isPlainObject(u)?J.merge({},u):J.isArray(u)?u.slice():u}function o(l,u,p){return J.isUndefined(u)?J.isUndefined(l)?void 0:i(void 0,l,p):i(l,u,p)}function r(l,u){if(!J.isUndefined(u))return i(void 0,u)}function s(l,u){return J.isUndefined(u)?J.isUndefined(l)?void 0:i(void 0,l):i(void 0,u)}function a(l,u,p){return p in n?i(l,u):p in t?i(void 0,l):void 0}const c={url:r,method:r,data:r,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(l,u)=>o(gx(l),gx(u),!0)};return J.forEach(Object.keys(Object.assign({},t,n)),function(u){const p=c[u]||o,_=p(t[u],n[u],u);J.isUndefined(_)&&p!==a||(e[u]=_)}),e}const vx=t=>{const n=mc({},t);let c,{data:e,withXSRFToken:i,xsrfHeaderName:o,xsrfCookieName:r,headers:s,auth:a}=n;if(n.headers=s=Wr.from(s),n.url=ax(mx(n.baseURL,n.url),t.params,t.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),J.isFormData(e))if(Ur.hasStandardBrowserEnv||Ur.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(c=s.getContentType())){const[l,...u]=c?c.split(";").map(p=>p.trim()).filter(Boolean):[];s.setContentType([l||"multipart/form-data",...u].join("; "))}if(Ur.hasStandardBrowserEnv&&(i&&J.isFunction(i)&&(i=i(n)),i||!1!==i&&Bee(n.url))){const l=o&&r&&jee.read(r);l&&s.set(o,l)}return n},Uee=typeof XMLHttpRequest<"u"&&function(t){return new Promise(function(e,i){const o=vx(t);let r=o.data;const s=Wr.from(o.headers).normalize();let c,{responseType:a}=o;function l(){o.cancelToken&&o.cancelToken.unsubscribe(c),o.signal&&o.signal.removeEventListener("abort",c)}let u=new XMLHttpRequest;function p(){if(!u)return;const b=Wr.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());fx(function(k){e(k),l()},function(k){i(k),l()},{data:a&&"text"!==a&&"json"!==a?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:b,config:t,request:u}),u=null}u.open(o.method.toUpperCase(),o.url,!0),u.timeout=o.timeout,"onloadend"in u?u.onloadend=p:u.onreadystatechange=function(){!u||4!==u.readyState||0===u.status&&(!u.responseURL||0!==u.responseURL.indexOf("file:"))||setTimeout(p)},u.onabort=function(){u&&(i(new Ht("Request aborted",Ht.ECONNABORTED,o,u)),u=null)},u.onerror=function(){i(new Ht("Network Error",Ht.ERR_NETWORK,o,u)),u=null},u.ontimeout=function(){let y=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";o.timeoutErrorMessage&&(y=o.timeoutErrorMessage),i(new Ht(y,(o.transitional||lx).clarifyTimeoutError?Ht.ETIMEDOUT:Ht.ECONNABORTED,o,u)),u=null},void 0===r&&s.setContentType(null),"setRequestHeader"in u&&J.forEach(s.toJSON(),function(y,z){u.setRequestHeader(z,y)}),J.isUndefined(o.withCredentials)||(u.withCredentials=!!o.withCredentials),a&&"json"!==a&&(u.responseType=o.responseType),"function"==typeof o.onDownloadProgress&&u.addEventListener("progress",J0(o.onDownloadProgress,!0)),"function"==typeof o.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",J0(o.onUploadProgress)),(o.cancelToken||o.signal)&&(c=b=>{u&&(i(!b||b.type?new Ru(null,t,u):b),u.abort(),u=null)},o.cancelToken&&o.cancelToken.subscribe(c),o.signal&&(o.signal.aborted?c():o.signal.addEventListener("abort",c)));const _=function Vee(t){const n=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return n&&n[1]||""}(o.url);_&&-1===Ur.protocols.indexOf(_)?i(new Ht("Unsupported protocol "+_+":",Ht.ERR_BAD_REQUEST,t)):u.send(r||null)})},Wee=(t,n)=>{let i,e=new AbortController;const o=function(c){if(!i){i=!0,s();const l=c instanceof Error?c:this.reason;e.abort(l instanceof Ht?l:new Ru(l instanceof Error?l.message:l))}};let r=n&&setTimeout(()=>{o(new Ht(`timeout ${n} of ms exceeded`,Ht.ETIMEDOUT))},n);const s=()=>{t&&(r&&clearTimeout(r),r=null,t.forEach(c=>{c&&(c.removeEventListener?c.removeEventListener("abort",o):c.unsubscribe(o))}),t=null)};t.forEach(c=>c&&c.addEventListener&&c.addEventListener("abort",o));const{signal:a}=e;return a.unsubscribe=s,[a,()=>{r&&clearTimeout(r),r=null}]};function e5(t,n){this.v=t,this.k=n}function Lu(t){var n,e;function i(r,s){try{var a=t[r](s),c=a.value,l=c instanceof e5;Promise.resolve(l?c.v:c).then(function(u){if(l){var p="return"===r?"return":"next";if(!c.k||u.done)return i(p,u);u=t[p](u).value}o(a.done?"return":"normal",u)},function(u){i("throw",u)})}catch(u){o("throw",u)}}function o(r,s){switch(r){case"return":n.resolve({value:s,done:!0});break;case"throw":n.reject(s);break;default:n.resolve({value:s,done:!1})}(n=n.next)?i(n.key,n.arg):e=null}this._invoke=function(r,s){return new Promise(function(a,c){var l={key:r,arg:s,resolve:a,reject:c,next:null};e?e=e.next=l:(n=e=l,i(r,s))})},"function"!=typeof t.return&&(this.return=void 0)}function Z0(t){return new e5(t,0)}function qee(t){var n={},e=!1;function i(o,r){return e=!0,{done:!1,value:new e5(r=new Promise(function(s){s(t[o](r))}),1)}}return n[typeof Symbol<"u"&&Symbol.iterator||"@@iterator"]=function(){return this},n.next=function(o){return e?(e=!1,o):i("next",o)},"function"==typeof t.throw&&(n.throw=function(o){if(e)throw e=!1,o;return i("throw",o)}),"function"==typeof t.return&&(n.return=function(o){return e?(e=!1,o):i("return",o)}),n}function _x(t){var n,e,i,o=2;for(typeof Symbol<"u"&&(e=Symbol.asyncIterator,i=Symbol.iterator);o--;){if(e&&null!=(n=t[e]))return n.call(t);if(i&&null!=(n=t[i]))return new Q0(n.call(t));e="@@asyncIterator",i="@@iterator"}throw new TypeError("Object is not async iterable")}function Q0(t){function n(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var i=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:i}})}return(Q0=function(i){this.s=i,this.n=i.next}).prototype={s:null,n:null,next:function(){return n(this.n.apply(this.s,arguments))},return:function(i){var o=this.s.return;return void 0===o?Promise.resolve({value:i,done:!0}):n(o.apply(this.s,arguments))},throw:function(i){var o=this.s.return;return void 0===o?Promise.reject(i):n(o.apply(this.s,arguments))}},new Q0(t)}Lu.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Lu.prototype.next=function(t){return this._invoke("next",t)},Lu.prototype.throw=function(t){return this._invoke("throw",t)},Lu.prototype.return=function(t){return this._invoke("return",t)};const Kee=function*(t,n){let e=t.byteLength;if(!n||e{const r=Jee(t,n,o);let s=0;return new ReadableStream({type:"bytes",pull:a=>Di(function*(){const{done:c,value:l}=yield r.next();if(c)return a.close(),void i();e&&e(s+=l.byteLength),a.enqueue(new Uint8Array(l))})(),cancel:a=>(i(a),r.return())},{highWaterMark:2})},yx=(t,n)=>{const e=null!=t;return i=>setTimeout(()=>n({lengthComputable:e,total:t,loaded:i}))},X0="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Cx=X0&&"function"==typeof ReadableStream,t5=X0&&("function"==typeof TextEncoder?(t=>n=>t.encode(n))(new TextEncoder):function(){var t=Di(function*(n){return new Uint8Array(yield new Response(n).arrayBuffer())});return function(n){return t.apply(this,arguments)}}()),Zee=Cx&&(()=>{let t=!1;const n=new Request(Ur.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!n})(),n5=Cx&&!!(()=>{try{return J.isReadableStream(new Response("").body)}catch{}})(),e3={stream:n5&&(t=>t.body)};X0&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(n=>{!e3[n]&&(e3[n]=J.isFunction(t[n])?e=>e[n]():(e,i)=>{throw new Ht(`Response type '${n}' is not supported`,Ht.ERR_NOT_SUPPORT,i)})})})(new Response);const Qee=function(){var t=Di(function*(n){return null==n?0:J.isBlob(n)?n.size:J.isSpecCompliantForm(n)?(yield new Request(n).arrayBuffer()).byteLength:J.isArrayBufferView(n)?n.byteLength:(J.isURLSearchParams(n)&&(n+=""),J.isString(n)?(yield t5(n)).byteLength:void 0)});return function(e){return t.apply(this,arguments)}}(),Xee=function(){var t=Di(function*(n,e){return J.toFiniteNumber(n.getContentLength())??Qee(e)});return function(e,i){return t.apply(this,arguments)}}(),i5={http:null,xhr:Uee,fetch:X0&&function(){var t=Di(function*(n){let{url:e,method:i,data:o,signal:r,cancelToken:s,timeout:a,onDownloadProgress:c,onUploadProgress:l,responseType:u,headers:p,withCredentials:_="same-origin",fetchOptions:b}=vx(n);u=u?(u+"").toLowerCase():"text";let E,k,[y,z]=r||s||a?Wee([r,s],a):[];const A=()=>{!E&&setTimeout(()=>{y&&y.unsubscribe()}),E=!0};let ie;try{if(l&&Zee&&"get"!==i&&"head"!==i&&0!==(ie=yield Xee(p,o))){let Bt,dt=new Request(e,{method:"POST",body:o,duplex:"half"});J.isFormData(o)&&(Bt=dt.headers.get("content-type"))&&p.setContentType(Bt),dt.body&&(o=bx(dt.body,65536,yx(ie,J0(l)),null,t5))}J.isString(_)||(_=_?"cors":"omit"),k=new Request(e,{...b,signal:y,method:i.toUpperCase(),headers:p.normalize().toJSON(),body:o,duplex:"half",withCredentials:_});let pe=yield fetch(k);const xe=n5&&("stream"===u||"response"===u);if(n5&&(c||xe)){const dt={};["status","statusText","headers"].forEach(zt=>{dt[zt]=pe[zt]});const Bt=J.toFiniteNumber(pe.headers.get("content-length"));pe=new Response(bx(pe.body,65536,c&&yx(Bt,J0(c,!0)),xe&&A,t5),dt)}u=u||"text";let Ge=yield e3[J.findKey(e3,u)||"text"](pe,n);return!xe&&A(),z&&z(),yield new Promise((dt,Bt)=>{fx(dt,Bt,{data:Ge,headers:Wr.from(pe.headers),status:pe.status,statusText:pe.statusText,config:n,request:k})})}catch(pe){throw A(),pe&&"TypeError"===pe.name&&/fetch/i.test(pe.message)?Object.assign(new Ht("Network Error",Ht.ERR_NETWORK,n,k),{cause:pe.cause||pe}):Ht.from(pe,pe&&pe.code,n,k)}});return function(n){return t.apply(this,arguments)}}()};J.forEach(i5,(t,n)=>{if(t){try{Object.defineProperty(t,"name",{value:n})}catch{}Object.defineProperty(t,"adapterName",{value:n})}});const zx=t=>`- ${t}`,ete=t=>J.isFunction(t)||null===t||!1===t,Sx_getAdapter=t=>{t=J.isArray(t)?t:[t];const{length:n}=t;let e,i;const o={};for(let r=0;r`adapter ${a} `+(!1===c?"is not supported by the environment":"is not available in the build"));let s=n?r.length>1?"since :\n"+r.map(zx).join("\n"):" "+zx(r[0]):"as no adapter specified";throw new Ht("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return i};function o5(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Ru(null,t)}function Tx(t){return o5(t),t.headers=Wr.from(t.headers),t.data=Xg.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Sx_getAdapter(t.adapter||Zg.adapter)(t).then(function(i){return o5(t),i.data=Xg.call(t,t.transformResponse,i),i.headers=Wr.from(i.headers),i},function(i){return hx(i)||(o5(t),i&&i.response&&(i.response.data=Xg.call(t,t.transformResponse,i.response),i.response.headers=Wr.from(i.response.headers))),Promise.reject(i)})}const r5={};["object","boolean","number","function","string","symbol"].forEach((t,n)=>{r5[t]=function(i){return typeof i===t||"a"+(n<1?"n ":" ")+t}});const Dx={};r5.transitional=function(n,e,i){function o(r,s){return"[Axios v1.7.2] Transitional option '"+r+"'"+s+(i?". "+i:"")}return(r,s,a)=>{if(!1===n)throw new Ht(o(s," has been removed"+(e?" in "+e:"")),Ht.ERR_DEPRECATED);return e&&!Dx[s]&&(Dx[s]=!0,console.warn(o(s," has been deprecated since v"+e+" and will be removed in the near future"))),!n||n(r,s,a)}};const s5={assertOptions:function tte(t,n,e){if("object"!=typeof t)throw new Ht("options must be an object",Ht.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let o=i.length;for(;o-- >0;){const r=i[o],s=n[r];if(s){const a=t[r],c=void 0===a||s(a,r,t);if(!0!==c)throw new Ht("option "+r+" must be "+c,Ht.ERR_BAD_OPTION_VALUE)}else if(!0!==e)throw new Ht("Unknown option "+r,Ht.ERR_BAD_OPTION)}},validators:r5},fa=s5.validators;class t3{constructor(n){this.defaults=n,this.interceptors={request:new cx,response:new cx}}request(n,e){var i=this;return Di(function*(){try{return yield i._request(n,e)}catch(o){if(o instanceof Error){let r;Error.captureStackTrace?Error.captureStackTrace(r={}):r=new Error;const s=r.stack?r.stack.replace(/^.+\n/,""):"";try{o.stack?s&&!String(o.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(o.stack+="\n"+s):o.stack=s}catch{}}throw o}})()}_request(n,e){"string"==typeof n?(e=e||{}).url=n:e=n||{},e=mc(this.defaults,e);const{transitional:i,paramsSerializer:o,headers:r}=e;void 0!==i&&s5.assertOptions(i,{silentJSONParsing:fa.transitional(fa.boolean),forcedJSONParsing:fa.transitional(fa.boolean),clarifyTimeoutError:fa.transitional(fa.boolean)},!1),null!=o&&(J.isFunction(o)?e.paramsSerializer={serialize:o}:s5.assertOptions(o,{encode:fa.function,serialize:fa.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=r&&J.merge(r.common,r[e.method]);r&&J.forEach(["delete","get","head","post","put","patch","common"],y=>{delete r[y]}),e.headers=Wr.concat(s,r);const a=[];let c=!0;this.interceptors.request.forEach(function(z){"function"==typeof z.runWhen&&!1===z.runWhen(e)||(c=c&&z.synchronous,a.unshift(z.fulfilled,z.rejected))});const l=[];this.interceptors.response.forEach(function(z){l.push(z.fulfilled,z.rejected)});let u,_,p=0;if(!c){const y=[Tx.bind(this),void 0];for(y.unshift.apply(y,a),y.push.apply(y,l),_=y.length,u=Promise.resolve(e);p<_;)u=u.then(y[p++],y[p++]);return u}_=a.length;let b=e;for(p=0;p<_;){const y=a[p++],z=a[p++];try{b=y(b)}catch(E){z.call(this,E);break}}try{u=Tx.call(this,b)}catch(y){return Promise.reject(y)}for(p=0,_=l.length;p<_;)u=u.then(l[p++],l[p++]);return u}getUri(n){return ax(mx((n=mc(this.defaults,n)).baseURL,n.url),n.params,n.paramsSerializer)}}J.forEach(["delete","get","head","options"],function(n){t3.prototype[n]=function(e,i){return this.request(mc(i||{},{method:n,url:e,data:(i||{}).data}))}}),J.forEach(["post","put","patch"],function(n){function e(i){return function(r,s,a){return this.request(mc(a||{},{method:n,headers:i?{"Content-Type":"multipart/form-data"}:{},url:r,data:s}))}}t3.prototype[n]=e(),t3.prototype[n+"Form"]=e(!0)});const n3=t3;class a5{constructor(n){if("function"!=typeof n)throw new TypeError("executor must be a function.");let e;this.promise=new Promise(function(r){e=r});const i=this;this.promise.then(o=>{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](o);i._listeners=null}),this.promise.then=o=>{let r;const s=new Promise(a=>{i.subscribe(a),r=a}).then(o);return s.cancel=function(){i.unsubscribe(r)},s},n(function(r,s,a){i.reason||(i.reason=new Ru(r,s,a),e(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(n){this.reason?n(this.reason):this._listeners?this._listeners.push(n):this._listeners=[n]}unsubscribe(n){if(!this._listeners)return;const e=this._listeners.indexOf(n);-1!==e&&this._listeners.splice(e,1)}static source(){let n;return{token:new a5(function(o){n=o}),cancel:n}}}const nte=a5,c5={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(c5).forEach(([t,n])=>{c5[n]=t});const rte=c5,hi=function xx(t){const n=new n3(t),e=jD(n3.prototype.request,n);return J.extend(e,n3.prototype,n,{allOwnKeys:!0}),J.extend(e,n,null,{allOwnKeys:!0}),e.create=function(o){return xx(mc(t,o))},e}(Zg);hi.Axios=n3,hi.CanceledError=Ru,hi.CancelToken=nte,hi.isCancel=hx,hi.VERSION="1.7.2",hi.toFormData=G0,hi.AxiosError=Ht,hi.Cancel=hi.CanceledError,hi.all=function(n){return Promise.all(n)},hi.spread=function ite(t){return function(e){return t.apply(null,e)}},hi.isAxiosError=function ote(t){return J.isObject(t)&&!0===t.isAxiosError},hi.mergeConfig=mc,hi.AxiosHeaders=Wr,hi.formToJSON=t=>dx(J.isHTMLForm(t)?new FormData(t):t),hi.getAdapter=Sx_getAdapter,hi.HttpStatusCode=rte,hi.default=hi;const Ex=hi;var ste=fe(560),kx=fe.n(ste);const Ei=function ate(t){return{all:t=t||new Map,on:function(n,e){var i=t.get(n);i?i.push(e):t.set(n,[e])},off:function(n,e){var i=t.get(n);i&&(e?i.splice(i.indexOf(e)>>>0,1):t.set(n,[]))},emit:function(n,e){var i=t.get(n);i&&i.slice().map(function(o){o(e)}),(i=t.get("*"))&&i.slice().map(function(o){o(n,e)})}}}(),cte=document.title,l5=Ex.create({timeout:18e4,baseURL:"Gitee"===Vs.provider?"https://gitee.com/api/v5":"https://api.github.com",headers:{}});function Ax(){kx().start(),document.title="Connecting..."}function w1(){kx().done(),document.title=cte}l5.interceptors.request.use(function(t){const n=j0();return n&&(t.headers.Authorization=`token ${n}`),Ax(),t},function(t){return w1(),Promise.reject(t)}),l5.interceptors.response.use(function(t){return w1(),t},function(t){return Ei.emit("NOTIFICATION",{type:"error",title:"Error\uff1a"+(t.status||t.response?.data?.status||t.code||""),content:t.response?.data?.message||t.message||""}),w1(),Promise.reject(t)});const d5=Ex.create({timeout:1e4,baseURL:"https://nav-server.netlify.app"});d5.interceptors.request.use(function(t){const n=Yg();return n&&(t.headers.Authorization=n),t.data={code:n,hostname:window.location.hostname,...t.data},Ax(),t},function(t){return w1(),Promise.reject(t)}),d5.interceptors.response.use(function(t){return!1===t.data?.success&&Ei.emit("MESSAGE",{type:"error",content:t.data.message}),w1(),t},function(t){return Ei.emit("NOTIFICATION",{type:"error",title:"Error\uff1a"+(t.status||t.response?.data?.status||t.code||""),content:t.response?.data?.message||t.message||""}),w1(),Promise.reject(t)});const i3=d5,gc=l5,z1="function"==typeof Buffer,Ix=("function"==typeof TextDecoder&&new TextDecoder,"function"==typeof TextEncoder?new TextEncoder:void 0),Hu=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),Gi=((t=>{let n={};t.forEach((e,i)=>n[e]=i)})(Hu),String.fromCharCode.bind(String)),Vx=("function"==typeof Uint8Array.from&&Uint8Array.from.bind(Uint8Array),t=>t.replace(/=/g,"").replace(/[+\/]/g,n=>"+"==n?"-":"_")),u5="function"==typeof btoa?t=>btoa(t):z1?t=>Buffer.from(t,"binary").toString("base64"):t=>{let n,e,i,o,r="";const s=t.length%3;for(let a=0;a255||(i=t.charCodeAt(a++))>255||(o=t.charCodeAt(a++))>255)throw new TypeError("invalid character found");n=e<<16|i<<8|o,r+=Hu[n>>18&63]+Hu[n>>12&63]+Hu[n>>6&63]+Hu[63&n]}return s?r.slice(0,s-3)+"===".substring(s):r},h5=z1?t=>Buffer.from(t).toString("base64"):t=>{let e=[];for(let i=0,o=t.length;i{if(t.length<2)return(n=t.charCodeAt(0))<128?t:n<2048?Gi(192|n>>>6)+Gi(128|63&n):Gi(224|n>>>12&15)+Gi(128|n>>>6&63)+Gi(128|63&n);var n=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return Gi(240|n>>>18&7)+Gi(128|n>>>12&63)+Gi(128|n>>>6&63)+Gi(128|63&n)},pte=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Hx=z1?t=>Buffer.from(t,"utf8").toString("base64"):Ix?t=>h5(Ix.encode(t)):t=>u5((t=>t.replace(pte,hte))(t)),ma=(t,n=!1)=>n?Vx(Hx(t)):Hx(t),{gitRepoUrl:_te}=Vs,s3=_te.split("/"),a3=Vs.branch,Gr=s3[s3.length-2],Fs=s3[s3.length-1];function c3(){return"Gitee"===Vs.provider}function Jx(t){return gc.get(`/users/${Gr}`,{headers:{Authorization:`token ${t.trim()}`}})}function m5(){return m5=Di(function*(t){const n=c3()?`/repos/${Gr}/${Fs}/branches`:`/repos/${Gr}/${Fs}/git/refs`,e={};if(c3())e.owner=`/${Gr}`,e.repo=`/${Gr}/${Fs}`,e.refs=a3,e.branch_name=t;else{e.sha="c1fdab3d29df4740bb97a4ae7f24ed0eaa682557";try{const i=yield function Cte(){return gc.get(`/repos/${Gr}/${Fs}/commits`)}();i.data?.length>0&&(e.sha=i.data[0].sha)}catch{}e.ref=`refs/heads/${t}`}return gc.post(n,e)}),m5.apply(this,arguments)}function vc(t){return g5.apply(this,arguments)}function g5(){return g5=Di(function*({message:t="update",content:n,path:e,branch:i=a3,isEncode:o=!0}){const r=yield function yte(t,n=a3){return gc.get(`/repos/${Gr}/${Fs}/contents/${t}`,{params:{ref:n}})}(e,i);return gc.put(`/repos/${Gr}/${Fs}/contents/${e}`,{message:`rebot(CI): ${t}`,branch:i,content:o?ma(n):n,sha:r.data.sha}).then(s=>(Xx(),s))}),g5.apply(this,arguments)}function Zx(t){return v5.apply(this,arguments)}function v5(){return v5=Di(function*({message:t,content:n,path:e,branch:i=a3,isEncode:o=!0}){return(c3()?gc.post:gc.put)(`/repos/${Gr}/${Fs}/contents/${e}`,{message:`rebot(CI): ${t}`,branch:i,content:o?ma(n):n}).then(s=>(Xx(),s))}),v5.apply(this,arguments)}function _5(){return _5=Di(function*(t){return i3.post("/api/get",t)}),_5.apply(this,arguments)}function b5(){return b5=Di(function*(t){return i3.post("/api/save",t)}),b5.apply(this,arguments)}function y5(){return y5=Di(function*(t){return i3.post("/api/delete",t)}),y5.apply(this,arguments)}function Tte(t){return C5.apply(this,arguments)}function C5(){return C5=Di(function*(t){return i3.post("/api/icon",{url:t})}),C5.apply(this,arguments)}function Qx(t,n="image"){return c3()?`https://gitee.com/${Gr}/${Fs}/raw/${n}/${t}`:`https://cdn.jsdelivr.net/gh/${Gr}/${Fs}@${n}/${t}`}function Xx(){const t=An.actionUrl;if(t){let e=function(){n.parentNode?.removeChild(n)};const n=document.createElement("img");n.src=t,document.body.appendChild(n),n.onload=e,n.onerror=e}}const yo=function Dte(){let t=tE(SX);const n=document.querySelectorAll("script"),e=n[n.length-1].src;if(window.localStorage.getItem(Ui.s_url)!==e){const o=[Ui.token,Ui.isDark,Ui.authCode],r=window.localStorage.length;for(let s=0;s50)break;if(_.name){let A=function(){if(b.includes(E)){let xe={..._};const Ge=new RegExp(`(${n})`,"i");if(xe.__name__=xe.name,xe.name=xe.name.replace(Ge,"$1".bold()),!c[xe.url])return c[xe.url]=!0,s.push(xe),!0}return!1},ie=function(){if(z?.includes?.(n.toLowerCase())&&!c[_.url]||k.some(Ge=>Ge.includes(n))&&!c[_.url])return c[_.url]=!0,s.push(_),!0},pe=function(){if(y.includes(E)){let xe={..._};const Ge=new RegExp(`(${n})`,"i");if(xe.__desc__=xe.desc,xe.desc=xe.desc.replace(Ge,"$1".bold()),!c[xe.url])return c[xe.url]=!0,s.push(xe),!0}return!1};const b=_.name.toLowerCase(),y=_.desc.toLowerCase(),z=_.url.toLowerCase(),E=n.toLowerCase(),k=Object.values(_.urls||{});try{switch(r){case pa.Url:ie();break;case pa.Title:A();break;case pa.Desc:pe();break;default:A(),pe(),ie()}}catch(xe){console.error(xe)}}}}return r===pa.Current?l(t[i].nav[o].nav):l(),s.length<=0?[]:a}function d3(){const t=l3(255),n=l3(255),e=l3(255);return`#${t.toString(16)}${n.toString(16)}${e.toString(16)}000`.slice(0,7)}let w5;function eE(){if(u3())return;clearInterval(w5);const t="random-light-bg",n=document.getElementById(t)||document.createElement("div"),e=l3(360);n.id=t,n.style.cssText="position:fixed;top:0;left:0;right:0;bottom:0;z-index:-3;transition: 1s linear;",n.style.backgroundImage=`linear-gradient(${e}deg, ${d3()} 0%, ${d3()} 100%)`,document.body.appendChild(n),w5=setInterval(function i(){if(u3())return void clearInterval(w5);const o=`linear-gradient(${e}deg, ${d3()} 0%, ${d3()} 100%)`;n.style.opacity=".3",setTimeout(()=>{n.style.backgroundImage=o,n.style.opacity="1"},1e3)},1e4)}function pi(){const{href:t}=window.location,n=t.split("?")[1]||"",e=CX().parse(n);let i=parseInt(e.id)||0,o=parseInt(e.page)||0;if(void 0===e.id&&void 0===e.page)try{const r=window.localStorage.getItem(Ui.location);if(r){const s=JSON.parse(r);o=s.page||0,i=s.id||0}}catch{}return o>yo.length-1?(o=0,i=0):yo[o]&&!(i<=yo[o].nav.length-1)&&(i=yo[o].nav.length-1),o=o<0?0:o,i=i<0?0:i,{...e,q:e.q||"",id:i,page:o}}function tE(t){function n(e){return!(e.ownVisible&&!Wi)}t=t.filter(n);for(let e=0;e(o.collapsed=i,o)),Yn(t),i}function xte(){const{page:t,id:n}=pi();window.localStorage.setItem(Ui.location,JSON.stringify({page:t,id:n}))}function u3(){const t=window.localStorage.getItem(Ui.isDark),n=window?.matchMedia?.("(prefers-color-scheme: dark)")?.matches;return!t&&n?n:!!Number(t)}function S5(){return S5=Di(function*(t){try{return{...(yield Tte(t)).data}}catch{}return{status:!1}}),S5.apply(this,arguments)}function M5(t){(function n(e){for(let i=0;i0&&(Wi||!yo[n].nav[t].ownVisible)?yo[n].nav[t].nav:[]}catch{e=[]}return e}function D5(t){const n=document.querySelectorAll(t);let e=Number.MAX_SAFE_INTEGER;if(n.length<=0)return e;const o=n[0].parentNode.clientWidth;let r=0;for(let s=0;so){e=s-1;break}return e}const Ite=JSON.parse('{"favicon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/logo.png","homeUrl":"https://nav3.cn","language":"zh-CN","loading":"random","allowCollect":false,"email":"","showGithub":true,"showLanguage":true,"showRate":true,"title":"\u53d1\u73b0\u5bfc\u822a - \u7cbe\u9009\u5b9e\u7528\u5bfc\u822a\u7f51\u7ad9","description":"\u53d1\u73b0\u5bfc\u822a - \u7cbe\u9009\u5b9e\u7528\u5bfc\u822a\u7f51\u7ad9","keywords":"\u5bfc\u822a,\u524d\u7aef\u8d44\u6e90,\u793e\u533a\u7ad9\u70b9,\u8bbe\u8ba1\u5e08,\u5b9e\u7528\u5de5\u5177,\u5b66\u4e60\u8d44\u6e90,\u8fd0\u8425,\u7f51\u7edc\u5b89\u5168,node.js","theme":"Light","actionUrl":"","appTheme":"App","openSEO":true,"headerContent":"","footerContent":"
\u5171\u6536\u5f55${total}\u4e2a\u7f51\u7ad9
Copyright \xa9 2018-${year} ${hostname}, All Rights Reserved
","baiduStatisticsUrl":"https://hm.baidu.com/hm.js?4582be7af7e7c95ef75351e07c6c32ba","cnzzStatisticsUrl":"","showThemeToggle":true,"lightCardStyle":"standard","lightOverType":"overflow","simThemeImages":[{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/banner1.jpg","url":"","width":null,"height":null},{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/banner2.jpg","url":"","width":null,"height":null}],"simThemeDesc":"\u8fd9\u91cc\u6536\u5f55\u591a\u8fbe ${total} \u4e2a\u4f18\u8d28\u7f51\u7ad9\uff0c \u52a9\u60a8\u5de5\u4f5c\u3001\u5b66\u4e60\u548c\u751f\u6d3b","simCardStyle":"standard","simOverType":"overflow","simThemeHeight":0,"simThemeAutoplay":true,"simTitle":"","superCardStyle":"column","superOverType":"overflow","checkUrl":false,"superTitle":"","superImages":[],"lightImages":[],"sideTitle":"","sideCardStyle":"example","sideThemeHeight":0,"sideThemeAutoplay":true,"sideThemeImages":[{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/banner2.jpg","url":"","width":null,"height":null},{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/banner1.jpg","url":"","width":null,"height":null}],"shortcutTitle":"","shortcutThemeShowWeather":true,"shortcutThemeImages":[{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/background.jpg","url":"","width":null,"height":null}],"mirrorList":[],"spiderIcon":"NO","spiderDescription":"NO","spiderTitle":"NO","spiderQty":20,"loadingCode":"","errorUrlCount":0}'),Nte=JSON.parse('[{"id":-1,"name":"\u4e2d\u6587","color":"#2db7f5","createdAt":"","desc":"\u7cfb\u7edf\u5185\u7f6e\u4e0d\u53ef\u5220\u9664","isInner":true},{"id":-2,"name":"\u82f1\u6587","color":"#f50","createdAt":"","desc":"\u7cfb\u7edf\u5185\u7f6e\u4e0d\u53ef\u5220\u9664","isInner":true},{"id":-3,"name":"Github","color":"#108ee9","createdAt":"","desc":"\u7cfb\u7edf\u5185\u7f6e\u4e0d\u53ef\u5220\u9664","isInner":true}]'),Vte=JSON.parse('{"userViewCount":841,"loginViewCount":841}'),An={...Ite,actionUrl:""},nE={},x5=jg,h3=Nte;h3.forEach(t=>{t.id&&(nE[t.id]={...t})});const ju=nE,p3=Vte,yn=yo,E5={now:()=>(E5.delegate||Date).now(),delegate:void 0};class fi extends N{constructor(n=1/0,e=1/0,i=E5){super(),this._bufferSize=n,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,e)}next(n){const{isStopped:e,_buffer:i,_infiniteTimeWindow:o,_timestampProvider:r,_windowTime:s}=this;e||(i.push(n),!o&&i.push(r.now()+s)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:o}=this,r=o.slice();for(let s=0;s{let r=function Hte(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let s=0;return e.schedule(function(){o.closed||(o.next(s++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function _c(t,n=Yu){return function Lte(t){return dn((n,e)=>{let i=!1,o=null,r=null,s=!1;const a=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const l=o;o=null,e.next(l)}s&&e.complete()},c=()=>{r=null,s&&e.complete()};n.subscribe(Zt(e,l=>{i=!0,o=l,r||Ii(t(l)).subscribe(r=Zt(e,a,c))},()=>{s=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>m3(t,n))}function qi(t,n=Bn){return t=t??Bte,dn((e,i)=>{let o,r=!0;e.subscribe(Zt(i,s=>{const a=n(s);(r||!t(o,a))&&(r=!1,o=a,i.next(s))}))})}function Bte(t,n){return t===n}function Rs(t,n=0){return function $te(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):n}function Uu(t){return Array.isArray(t)?t:[t]}function ri(t){return null==t?"":"string"==typeof t?t:`${t}px`}function Ni(t){return t instanceof Te?t.nativeElement:t}function O5(t){return yt((n,e)=>t<=e)}function g3(t,n=Yu){return dn((e,i)=>{let o=null,r=null,s=null;const a=()=>{if(o){o.unsubscribe(),o=null;const l=r;r=null,i.next(l)}};function c(){const l=s+t,u=n.now();if(u{r=l,s=n.now(),o||(o=n.schedule(c,t),i.add(o))},()=>{a(),i.complete()},void 0,()=>{r=o=null}))})}let P5;try{P5=typeof Intl<"u"&&Intl.v8BreakIterator}catch{P5=!1}let Wu,qn=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?p0(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!P5)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#e=this.\u0275fac=function(i){return new(i||t)(R(Ir))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function M1(t){return function Yte(){if(null==Wu&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Wu=!0}))}finally{Wu=Wu||!1}return Wu}()?t:!!t.capture}var ms=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(ms||{});let v3,bc,I5;function rE(){if(null==bc){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return bc=!1,bc;if("scrollBehavior"in document.documentElement.style)bc=!0;else{const t=Element.prototype.scrollTo;bc=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return bc}function Gu(){if("object"!=typeof document||!document)return ms.NORMAL;if(null==v3){const t=document.createElement("div"),n=t.style;t.dir="rtl",n.width="1px",n.overflow="auto",n.visibility="hidden",n.pointerEvents="none",n.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",t.appendChild(e),document.body.appendChild(t),v3=ms.NORMAL,0===t.scrollLeft&&(t.scrollLeft=1,v3=0===t.scrollLeft?ms.NEGATED:ms.INVERTED),t.remove()}return v3}function N5(t){if(function Ute(){if(null==I5){const t=typeof document<"u"?document.head:null;I5=!(!t||!t.createShadowRoot&&!t.attachShadow)}return I5}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}function Io(t){return t.composedPath?t.composedPath()[0]:t.target}function sE(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const aE=new Set;let yc,V5=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):qte}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function Gte(t,n){if(!aE.has(t))try{yc||(yc=document.createElement("style"),n&&yc.setAttribute("nonce",n),yc.setAttribute("type","text/css"),document.head.appendChild(yc)),yc.sheet&&(yc.sheet.insertRule(`@media ${t} {body{ }}`,0),aE.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn),R(vd,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function qte(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let Kte=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new N}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return cE(Uu(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=xi(cE(Uu(e)).map(s=>this._registerQuery(s).observable));return r=yu(r.pipe(io(1)),r.pipe(O5(1),g3(0))),r.pipe(Ie(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:c,query:l})=>{a.matches=a.matches||c,a.breakpoints[l]=c}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new Ut(s=>{const a=c=>this._zone.run(()=>s.next(c));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(gn(i),Ie(({matches:s})=>({query:e,matches:s})),I(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static#e=this.\u0275fac=function(i){return new(i||t)(R(V5),R(De))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function cE(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}const F5=()=>{};let R5=(()=>{class t{constructor(e,i){this.ngZone=e,this.rendererFactory2=i,this.resizeSource$=new N,this.listeners=0,this.disposeHandle=F5,this.handler=()=>{this.ngZone.run(()=>{this.resizeSource$.next()})},this.renderer=this.rendererFactory2.createRenderer(null,null)}ngOnDestroy(){this.handler=F5}subscribe(){return this.registerListener(),this.resizeSource$.pipe(_c(16),c1(()=>this.unregisterListener()))}unsubscribe(){this.unregisterListener()}registerListener(){0===this.listeners&&this.ngZone.runOutsideAngular(()=>{this.disposeHandle=this.renderer.listen("window","resize",this.handler)}),this.listeners+=1}unregisterListener(){this.listeners-=1,0===this.listeners&&(this.disposeHandle(),this.disposeHandle=F5)}static#e=this.\u0275fac=function(i){return new(i||t)(R(De),R(Qa))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();let lE=(()=>{class t{constructor(){this._singletonRegistry=new Map}get singletonRegistry(){return this._singletonRegistry}registerSingletonWithKey(e,i){const o=this.singletonRegistry.has(e),r=o?this.singletonRegistry.get(e):this.withNewTarget(i);o||this.singletonRegistry.set(e,r)}unregisterSingletonWithKey(e){this.singletonRegistry.has(e)&&this.singletonRegistry.delete(e)}getSingletonWithKey(e){return this.singletonRegistry.has(e)?this.singletonRegistry.get(e).target:null}withNewTarget(e){return{target:e}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var L5=function(t){return t.xxl="xxl",t.xl="xl",t.lg="lg",t.md="md",t.sm="sm",t.xs="xs",t}(L5||{});const qu={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"},Zte={xs:"(max-width: 479.98px)",sm:"(max-width: 575.98px)",md:"(max-width: 767.98px)",lg:"(max-width: 991.98px)",xl:"(max-width: 1199.98px)",xxl:"(max-width: 1599.98px)"};let H5=(()=>{class t{constructor(e,i){this.resizeService=e,this.mediaMatcher=i,this.destroy$=new N,this.resizeService.subscribe().pipe(I(this.destroy$)).subscribe(()=>{})}ngOnDestroy(){this.destroy$.next()}subscribe(e,i){if(i){const o=()=>this.matchMedia(e,!0);return this.resizeService.subscribe().pipe(Ie(o),gn(o()),qi((r,s)=>r[0]===s[0]),Ie(r=>r[1]))}{const o=()=>this.matchMedia(e);return this.resizeService.subscribe().pipe(Ie(o),gn(o()),qi())}}matchMedia(e,i){let o=L5.md;const r={};return Object.keys(e).map(s=>{const a=s,c=this.mediaMatcher.matchMedia(qu[a]).matches;r[s]=c,c&&(o=a)}),i?[o,r]:o}static#e=this.\u0275fac=function(i){return new(i||t)(R(R5),R(V5))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),No=(()=>{class t extends N{ngOnDestroy(){this.next(),this.complete()}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const Qte=new oe("cdk-dir-doc",{providedIn:"root",factory:function Xte(){return W(It)}}),ene=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let wt=(()=>{class t{constructor(e){this.value="ltr",this.change=new H,e&&(this.value=function tne(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?ene.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(R(Qte,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_3=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function dE(t,n){if(!t||!n||t.length!==n.length)return!1;const e=t.length;for(let i=0;i"u"||null===t}function B5(t){return function jte(t){return null!=t&&"false"!=`${t}`}(t)}function y3(t){return Pi(t,0)}function j5(t,n=0){return Rs(t,n)}function D1(t){return ri(t)}function uE(t){t.stopPropagation(),t.preventDefault()}function hE(t){if(!t.getClientRects().length)return{top:0,left:0};const n=t.getBoundingClientRect(),e=t.ownerDocument.defaultView;return{top:n.top+e.pageYOffset,left:n.left+e.pageXOffset}}function Y5(t){return!!t&&"function"==typeof t.then&&"function"==typeof t.catch}function C3(t,n,e){return isNaN(t)||te?e:t}function fE(t){return"number"==typeof t&&isFinite(t)}function mE(t,n){return Math.round(t*Math.pow(10,n))/Math.pow(10,n)}let q5,K5;typeof window<"u"&&window;const _E={position:"absolute",top:"-9999px",width:"50px",height:"50px"};function bE(t){return _0(t)?t:Y5(t)?ni(Promise.resolve(t)):We(t)}function yE(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}const mne="rc-util-key";function CE({mark:t}={}){return t?t.startsWith("data-")?t:`data-${t}`:mne}function J5(t){return t.attachTo?t.attachTo:document.querySelector("head")||document.body}function wE(t,n={}){if(!yE())return null;const e=document.createElement("style");n.cspNonce&&(e.nonce=n.cspNonce),e.innerHTML=t;const i=J5(n),{firstChild:o}=i;return n.prepend&&i.prepend?i.prepend(e):n.prepend&&o?i.insertBefore(e,o):i.appendChild(e),e}const Z5=new Map;function Ku(t,n,e){return{[`${t}-status-success`]:"success"===n,[`${t}-status-warning`]:"warning"===n,[`${t}-status-error`]:"error"===n,[`${t}-status-validating`]:"validating"===n,[`${t}-has-feedback`]:e}}let Cc=(()=>{class t{getGutter(){const e=[null,null],i=this.nzGutter||0;return(Array.isArray(i)?i:[i,null]).forEach((r,s)=>{"object"==typeof r&&null!==r?(e[s]=null,Object.keys(qu).map(a=>{const c=a;this.mediaMatcher.matchMedia(qu[c]).matches&&r[c]&&(e[s]=r[c])})):e[s]=Number(r)||null}),e}setGutterStyle(){const[e,i]=this.getGutter();this.actualGutter$.next([e,i]);const o=(r,s)=>{null!==s&&this.renderer.setStyle(this.elementRef.nativeElement,r,`-${s/2}px`)};o("margin-left",e),o("margin-right",e),o("margin-top",i),o("margin-bottom",i)}constructor(e,i,o,r,s,a,c){this.elementRef=e,this.renderer=i,this.mediaMatcher=o,this.ngZone=r,this.platform=s,this.breakpointService=a,this.directionality=c,this.nzAlign=null,this.nzJustify=null,this.nzGutter=null,this.actualGutter$=new fi(1),this.dir="ltr",this.destroy$=new N}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e}),this.setGutterStyle()}ngOnChanges(e){e.nzGutter&&this.setGutterStyle()}ngAfterViewInit(){this.platform.isBrowser&&this.breakpointService.subscribe(qu).pipe(I(this.destroy$)).subscribe(()=>{this.setGutterStyle()})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(V5),v(De),v(qn),v(H5),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-row",""],["nz-row"],["nz-form-item"]],hostAttrs:[1,"ant-row"],hostVars:20,hostBindings:function(i,o){2&i&&Q("ant-row-top","top"===o.nzAlign)("ant-row-middle","middle"===o.nzAlign)("ant-row-bottom","bottom"===o.nzAlign)("ant-row-start","start"===o.nzJustify)("ant-row-end","end"===o.nzJustify)("ant-row-center","center"===o.nzJustify)("ant-row-space-around","space-around"===o.nzJustify)("ant-row-space-between","space-between"===o.nzJustify)("ant-row-space-evenly","space-evenly"===o.nzJustify)("ant-row-rtl","rtl"===o.dir)},inputs:{nzAlign:"nzAlign",nzJustify:"nzJustify",nzGutter:"nzGutter"},exportAs:["nzRow"],standalone:!0,features:[ke]})}return t})(),x1=(()=>{class t{setHostClassMap(){const e={"ant-col":!0,[`ant-col-${this.nzSpan}`]:br(this.nzSpan),[`ant-col-order-${this.nzOrder}`]:br(this.nzOrder),[`ant-col-offset-${this.nzOffset}`]:br(this.nzOffset),[`ant-col-pull-${this.nzPull}`]:br(this.nzPull),[`ant-col-push-${this.nzPush}`]:br(this.nzPush),"ant-col-rtl":"rtl"===this.dir,...this.generateClass()};for(const i in this.classMap)this.classMap.hasOwnProperty(i)&&this.renderer.removeClass(this.elementRef.nativeElement,i);this.classMap={...e};for(const i in this.classMap)this.classMap.hasOwnProperty(i)&&this.classMap[i]&&this.renderer.addClass(this.elementRef.nativeElement,i)}setHostFlexStyle(){this.hostFlexStyle=this.parseFlex(this.nzFlex)}parseFlex(e){return"number"==typeof e?`${e} ${e} auto`:"string"==typeof e&&/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}generateClass(){const i={};return["nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl"].forEach(o=>{const r=o.replace("nz","").toLowerCase();if(br(this[o]))if("number"==typeof this[o]||"string"==typeof this[o])i[`ant-col-${r}-${this[o]}`]=!0;else{const s=this[o];["span","pull","push","offset","order"].forEach(c=>{i[`ant-col-${r}${"span"===c?"-":`-${c}-`}${s[c]}`]=s&&br(s[c])})}}),i}constructor(e,i,o,r){this.elementRef=e,this.nzRowDirective=i,this.renderer=o,this.directionality=r,this.classMap={},this.destroy$=new N,this.hostFlexStyle=null,this.dir="ltr",this.nzFlex=null,this.nzSpan=null,this.nzOrder=null,this.nzOffset=null,this.nzPush=null,this.nzPull=null,this.nzXs=null,this.nzSm=null,this.nzMd=null,this.nzLg=null,this.nzXl=null,this.nzXXl=null}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.setHostClassMap()}),this.setHostClassMap(),this.setHostFlexStyle()}ngOnChanges(e){this.setHostClassMap();const{nzFlex:i}=e;i&&this.setHostFlexStyle()}ngAfterViewInit(){this.nzRowDirective&&this.nzRowDirective.actualGutter$.pipe(I(this.destroy$)).subscribe(([e,i])=>{const o=(r,s)=>{null!==s&&this.renderer.setStyle(this.elementRef.nativeElement,r,s/2+"px")};o("padding-left",e),o("padding-right",e),o("padding-top",i),o("padding-bottom",i)})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Cc,9),v($t),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-col",""],["nz-col"],["nz-form-control"],["nz-form-label"]],hostVars:2,hostBindings:function(i,o){2&i&&Lt("flex",o.hostFlexStyle)},inputs:{nzFlex:"nzFlex",nzSpan:"nzSpan",nzOrder:"nzOrder",nzOffset:"nzOffset",nzPush:"nzPush",nzPull:"nzPull",nzXs:"nzXs",nzSm:"nzSm",nzMd:"nzMd",nzLg:"nzLg",nzXl:"nzXl",nzXXl:"nzXXl"},exportAs:["nzCol"],standalone:!0,features:[ke]})}return t})(),SE=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const Q5={en:{_webTitle:"Discovery Navigation",_uncategorized:"Unclassified",_modifySuccess:"Modification succeeded!",_copySuccess:"Copy succeeded!",_copyUrl:"Copy Link",_shareWeb:"Share site",_edit:"Edit",_sort:"Sort",_refresh:"Refresh",_add:"Add",_del:"Delete",_apply:"Apply",_batchDel:"Delete",_confirmDel:"Are you sure you want to delete?",_default:"Default",_title:"Title",_defaultTitle:"Default website title",_desc:"Description",_link:"Link",_current:"Current",_empty:"Sorry, we didn't find the result you want~",_goBack:"Go Back",_viewInfo:"View Info",_syncData:"Sync Data",_addData:"Add Data",_collapse:"Open",_put:"Fold",_closeDark:"Close Dark",_openDark:"Open Dark",_switchTo:"Switch To",_infoTip:"Only you can view the following information, please rest assured!",_know:"Know",_devBranch:"Deploy branch",_curVer:"Current Version",_newVer:"Latest Version",_prevDevTime:"Last build time",_unknow:"Unknow",_repeatOper:"Please do not operate frequently",_syncDataOut:"Synchronize data to remote",_confirmSync:"OK to sync",_confirmSyncTip:"Are you sure to synchronize all data to the remote end?",_syncSuccessTip:"The synchronization is successful. It takes about 5 minutes to build",_error:"Error",_syncFailTip:"Synchronization failed, please try again",_inputToken:"Please enter token",_inputTokenMsg:"Please enter your token below for login verification",_getToken:"I don't know how to get the token?",_readDoc:"Please read our guide first",_authLogin:"Please authorize login",_pleaseInputToken:"Please fill in the correct token",_tokenVerSuc:"Authorization succeeded!",_tokenVerFail:"Token validation failed",_repeatAdd:"Please do not add repeatedly",_addSuccess:"Successfully added!",_delSuccess:"Delete succeeded!",_saveSuccess:"Saved successfully!",_errorBookTip:"Error: bookmark resolution failed",_importSuccess:"Import succeeded!",_acceptPng:"Only PNG format is supported",_updateLogoSuccess:"The replacement was successful. It needs to be updated the next day due to CDN cache problems",_updateLogoFail:"Failed to replace logo, please try again!",_resetInitData:"Undo all actions",_confirmReset:"OK reset",_warnReset:"All current operations will revert to the last build state",_resetSuccess:"The data has been reset back to its initial state",_sel3:"Please select Level 3 category",_sel2:"Please select Level 2 category",_sel1:"Please select Level 1 category",_reserveOne:"At least one item is reserved. Please add it first!",_icon:"ICON",_backHome:"GO Home",_syncRemote:"Sync to remote",_uploading:"Uploading...",_addTag:"Add category",_addWeb:"Add site",_clickEdit:"Click Edit",_importChrome:"Import from Chrome bookmarks",_allContentMsg1:'1. After setting all data, click "synchronize to remote end" and drag the table to sort',_allContentMsg2:"2. Website category needs to be maintained manually,",_updateLogo:"Replace logo",_tagName:"Category name",_onlyOwnVisible:"Only Self",_createAt:"Create At",_action:"Action",_delWarn:"This will delete all data under the category. Are you sure you want to delete it?",_mgr1:"Management level 1 category",_mgr2:"Management level 2 category",_mgr3:"Management level 3 category",_mgrWeb:"Management website",_webName:"Name",_webTag:"Website category",_webDesc:"Description",_webLink:"Link",_requiredName:"Please enter a name",_requiredLink:"Please enter the website link",_uploadSuccess:"Uploaded successfully",_uploadFail:"Upload failed, please try again!",_notUpload:"Please do not upload illegal pictures",_shortcut:"Shortcut",_score:"Score",_iconAddr:"Icon Link",_copyUpload:"Support to paste screenshots or copy pictures here to upload",_upload:"Upload",_continueAdd:"Continue to add affiliate links",_moveTo:"Move to",_move:"Move",_copy:"Copy",_moveSuccess:"Moved successfully",_save:"Save",_color:"Color",_remark:"Description/Remark",_about:"About",_webInfo:"Web info",_systemSet:"Settings",_searchEngines:"Engines",_userCollect:"Collect",_bookmarkImport:"Bookmark",_tagSettings:"Tag settings",_websiteMang:"Website",_addRow:"Add",_bookImportTip:"

Supports most mainstream browsers based on the webkit kernel. If the import fails, it is temporarily not supported

",_engineName:"Engine name",_status:"Status",_isDisable:"Disable",_webLogo:"LOGO",_defLanguage:"Default Language",_pageLoad:"Page Loading",_random:"Random",_noSet:"No set",_showGithub:"Show Github",_defTheme:"Default Theme",_appTheme:"App Theme",_keywords:"Keywords",_footHtml:"Foot HTML",_headHtml:"Head HTML",_showWeather:"Show weather",_weatherTip:'Currently only the "Shortcut" theme is supported',_setSaveTip:"Note: after saving successfully, you need to wait at least 2 minutes for the build time to take effect!",_theme:"Theme",_backgroundImage:"Picture",_engineUrl:"Engine URL",_actionSuccess:"Succeeded",_jumpAddr:"Jump address",_backup:"Backup",_bannerHeight:"Banner height",_autoPlay:"Auto play",_importBackup:"Import backup",_importBackupTip:"After importing, all current website data will be cleared and imported",_showLanguage:"Display switch language",_mirrorList:"Mirror list",_mirrorAddr:"Mirror Address",_mirrorName:"Mirror Name",_showRate:"Show rate",_showCopy:"Display Card Copy",_showShare:"Show card sharing",_angleMark:"Angle Mark",_logout:"Logout Account",_cardStyle:"Card style",_tagPlaceholder:"Can be empty as a regular label",_dragSort:"Drag to sort",_checkWeb:"Last time, {count} website links were detected to be invalid. Please refer to the management website for details. If you need to check the status again, simply click Save to trigger the event.",_buildTip:"After modification, please save and wait for the build to complete. Leaving is invalid",_updateTip:"Frequent system updates, it is recommended to execute updates regularly to enjoy the latest system functions",_clickUpdate:"Click me to update",_enableSEO:"Enable SEO (loading slightly slower)",_allowCollect:"Allow users to submit indexed content",_collectMenuView:"Please refer to the user's inclusion menu for specific details",_displaySwitchTheme:"Display Switch Theme",_requestAddress:"Request Address",_requestTip:"Usually used for deploying self owned servers, when the save button is clicked, a GET request is sent to fill in the address",_followPage:"Follow Page",_bannerTip:"When the height is 0, the width and height of the image will be adaptive, and it is important to ensure that each image has the same size",_checkStatus:"Check website link status(For any of the above updates, it is recommended to enable this, as it takes the same amount of time.)",_ignore:"(This function is not very useful, it is recommended to ignore or remove it)",_standard:"Standard",_column:"Column",_simplicity:"Simplicity",_navOver:"First level navigation beyond display",_scrollBar:"Scroll bar",_ellipsis:"Ellipsis",_sidebarImg:"Sidebar image",_sidebarTitle:"Sidebar title",_defTitle4:"Default website title, recommended to be within 4 words",_inputAuthCode:"Please enter the authorization code",_payTip:"Opening user enrollment requires a payment of \uffe599 as a contribution to the stable operation of this website. Thank you for your understanding",_waitHandle:"Waiting for the stationmaster to handle",_collect:"Get",_confirmCollect:"Are you sure?",_pendingGet:"Getting...",_logoutAuthCode:"Exit authorization",_spiderRule:"Spider rule",_spiderIcon:"Spider icon",_spiderDesc:"Spider description",_spiderTitle:"Spider title",_spiderAlways:"Always update",_spiderStatus:"Spider Status",_spiderTip:"Crawling rules will be triggered every time saving, affecting the construction speed. Crawling and updating information may be necessary when necessary",_spiderQty:"Concurrent quantity",_spiderQtyTip:"",_spiderNetTip:"Due to network factors, some websites may not be accessible and can be skipped directly. For reference only",_spiderBuildTip:"After the construction is completed, the data is correct. Please go to the website management and click save once, otherwise the data will not be permanently stored"},cn:{_webTitle:"\u53d1\u73b0\u5bfc\u822a",_uncategorized:"\u672a\u5206\u7c7b",_modifySuccess:"\u4fee\u6539\u6210\u529f\uff01",_copySuccess:"\u590d\u5236\u6210\u529f",_copyUrl:"\u590d\u5236\u94fe\u63a5",_shareWeb:"\u5206\u4eab\u7f51\u7ad9",_edit:"\u7f16\u8f91",_sort:"\u6392\u5e8f",_refresh:"\u5237\u65b0",_add:"\u65b0\u589e",_del:"\u5220\u9664",_apply:"\u7533\u8bf7\u6536\u5f55",_batchDel:"\u6279\u91cf\u5220\u9664",_confirmDel:"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5417\uff1f",_default:"\u7efc\u5408",_title:"\u6807\u9898",_defaultTitle:"\u9ed8\u8ba4\u7f51\u7ad9\u6807\u9898",_desc:"\u63cf\u8ff0",_link:"\u94fe\u63a5",_current:"\u5f53\u524d",_empty:"\u5bf9\u4e0d\u8d77\uff0c\u6ca1\u6709\u627e\u5230\u60a8\u60f3\u8981\u7684\u7ed3\u679c~",_goBack:"\u8fd4\u56de\u4e0a\u4e00\u5c42",_viewInfo:"\u67e5\u770b\u4fe1\u606f",_syncData:"\u540c\u6b65\u6570\u636e",_addData:"\u65b0\u589e\u6570\u636e",_collapse:"\u5c55\u5f00",_put:"\u6298\u53e0",_closeDark:"\u5173\u95ed\u6697\u9ed1",_openDark:"\u5f00\u542f\u6697\u9ed1",_switchTo:"\u5207\u6362\u5230",_infoTip:"\u4ee5\u4e0b\u4fe1\u606f\u53ea\u6709\u60a8\u80fd\u67e5\u770b\uff0c\u8bf7\u653e\u5fc3\uff01",_know:"\u77e5\u9053\u4e86",_devBranch:"\u90e8\u7f72\u5206\u652f",_curVer:"\u5f53\u524d\u7248\u672c",_newVer:"\u6700\u65b0\u7248\u672c",_prevDevTime:"\u4e0a\u6b21\u6784\u5efa\u65f6\u95f4",_unknow:"\u672a\u77e5",_repeatOper:"\u8bf7\u4e0d\u8981\u9891\u7e41\u64cd\u4f5c",_syncDataOut:"\u540c\u6b65\u6570\u636e\u5230\u8fdc\u7aef",_confirmSync:"\u786e\u5b9a\u540c\u6b65",_confirmSyncTip:"\u786e\u5b9a\u5c06\u6240\u6709\u6570\u636e\u540c\u6b65\u5230\u8fdc\u7aef\u5417\uff1f\uff08\u6bcf\u6b21\u4fdd\u5b58\u9700\u8981\u7b49\u5f85\u6784\u5efa\u5b8c\u6210\u518d\u8fdb\u884c\u4e0b\u4e00\u6b21\u64cd\u4f5c\uff09",_syncSuccessTip:"\u540c\u6b65\u6210\u529f, \u5927\u7ea6\u9700\u89815\u5206\u949f\u6784\u5efa\u65f6\u95f4",_error:"\u9519\u8bef",_syncFailTip:"\u540c\u6b65\u5931\u8d25, \u8bf7\u91cd\u8bd5",_inputToken:"\u8bf7\u8f93\u5165TOKEN",_inputTokenMsg:"\u8bf7\u5728\u4e0b\u65b9\u8f93\u5165\u60a8\u7684TOKEN\u8fdb\u884c\u767b\u5f55\u6821\u9a8c",_getToken:"\u4e0d\u77e5\u9053Token\u5982\u4f55\u83b7\u53d6\uff1f",_readDoc:"\u8bf7\u5148\u9605\u8bfb\u6211\u4eec\u7684\u6307\u5357",_authLogin:"\u8bf7\u6388\u6743\u767b\u5f55",_pleaseInputToken:"\u8bf7\u586b\u5199\u6b63\u786e\u7684Token",_tokenVerSuc:"\u6388\u6743\u6210\u529f!",_tokenVerFail:"Token \u9a8c\u8bc1\u5931\u8d25",_repeatAdd:"\u8bf7\u4e0d\u8981\u91cd\u590d\u6dfb\u52a0",_addSuccess:"\u65b0\u589e\u6210\u529f!",_delSuccess:"\u5220\u9664\u6210\u529f!",_saveSuccess:"\u4fdd\u5b58\u6210\u529f!",_errorBookTip:"\u9519\u8bef: \u4e66\u7b7e\u89e3\u6790\u5931\u8d25",_importSuccess:"\u5bfc\u5165\u6210\u529f\uff01",_acceptPng:"\u4ec5\u652f\u6301 PNG \u683c\u5f0f",_updateLogoSuccess:"\u66f4\u6362\u6210\u529f, \u7531\u4e8eCDN\u7f13\u5b58\u95ee\u9898\u9700\u8981\u6b21\u65e5\u66f4\u65b0",_updateLogoFail:"\u66f4\u6362LOGO\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5\uff01",_resetInitData:"\u64a4\u9500\u672c\u6b21\u6240\u6709\u64cd\u4f5c",_confirmReset:"\u786e\u5b9a\u91cd\u7f6e",_warnReset:"\u5f53\u524d\u6240\u6709\u64cd\u4f5c\u5c06\u8fd8\u539f\u5230\u4e0a\u6b21\u6784\u5efa\u72b6\u6001",_resetSuccess:"\u6570\u636e\u5df2\u91cd\u7f6e\u56de\u521d\u59cb\u72b6\u6001",_sel3:"\u8bf7\u9009\u62e9\u4e09\u7ea7\u5206\u7c7b",_sel2:"\u8bf7\u9009\u62e9\u4e8c\u7ea7\u5206\u7c7b",_sel1:"\u8bf7\u9009\u62e9\u4e00\u7ea7\u5206\u7c7b",_reserveOne:"\u81f3\u5c11\u4fdd\u7559\u4e00\u9879\uff0c\u8bf7\u5148\u6dfb\u52a0!",_icon:"\u56fe\u6807",_backHome:"\u8fd4\u56de\u4e3b\u9875",_syncRemote:"\u540c\u6b65\u5230\u8fdc\u7aef",_uploading:"\u4e0a\u4f20\u4e2d...",_addTag:"\u6dfb\u52a0\u5206\u7c7b",_addWeb:"\u6dfb\u52a0\u7f51\u7ad9",_clickEdit:"\u70b9\u51fb\u7f16\u8f91",_importChrome:"\u4eceChrome\u4e66\u7b7e\u5bfc\u5165",_allContentMsg1:"1\u3001\u6240\u6709\u6570\u636e\u8bbe\u7f6e\u5b8c\u6bd5\u540e\u70b9\u51fb \u201c\u540c\u6b65\u5230\u8fdc\u7aef\u201d\uff0c\u62d6\u62fd\u8868\u683c\u8fdb\u884c\u6392\u5e8f",_allContentMsg2:"2\u3001\u7f51\u7ad9\u5206\u7c7b\u9700\u624b\u52a8\u7ef4\u62a4,",_updateLogo:"\u66f4\u6362LOGO",_tagName:"\u6807\u7b7e\u540d\u79f0",_onlyOwnVisible:"\u81ea\u5df1\u53ef\u89c1",_createAt:"\u521b\u5efa\u65f6\u95f4",_action:"\u64cd\u4f5c",_delWarn:"\u8fd9\u4f1a\u5220\u9664\u5206\u7c7b\u4e0b\u7684\u6240\u6709\u6570\u636e\uff0c\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5417?",_mgr1:"\u7ba1\u7406\u4e00\u7ea7\u5206\u7c7b",_mgr2:"\u7ba1\u7406\u4e8c\u7ea7\u5206\u7c7b",_mgr3:"\u7ba1\u7406\u4e09\u7ea7\u5206\u7c7b",_mgrWeb:"\u7ba1\u7406\u7f51\u7ad9",_webName:"\u7f51\u7ad9\u540d\u79f0",_webTag:"\u7f51\u7ad9\u5206\u7c7b",_webDesc:"\u7f51\u7ad9\u63cf\u8ff0",_webLink:"\u7f51\u7ad9\u94fe\u63a5",_requiredName:"\u8bf7\u8f93\u5165\u540d\u79f0",_requiredLink:"\u8bf7\u8f93\u5165\u7f51\u7ad9\u94fe\u63a5",_uploadSuccess:"\u4e0a\u4f20\u6210\u529f",_uploadFail:"\u4e0a\u4f20\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5\uff01",_notUpload:"\u8bf7\u4e0d\u8981\u4e0a\u4f20\u975e\u6cd5\u56fe\u7247",_shortcut:"\u5feb\u6377\u65b9\u5f0f",_score:"\u8bc4\u5206\u7cfb\u6570",_iconAddr:"\u56fe\u6807\u5730\u5740",_copyUpload:"\u652f\u6301\u5c06\u622a\u56fe\u6216\u590d\u5236\u56fe\u7247\u7c98\u8d34\u6b64\u5904\u4e0a\u4f20",_upload:"\u4e0a\u4f20",_continueAdd:"\u7ee7\u7eed\u6dfb\u52a0\u5173\u8054\u94fe\u63a5",_moveTo:"\u79fb\u52a8\u5230",_move:"\u79fb\u52a8",_copy:"\u590d\u5236",_moveSuccess:"\u79fb\u52a8\u6210\u529f",_save:"\u4fdd \u5b58",_color:"\u989c\u8272",_remark:"\u63cf\u8ff0/\u5907\u6ce8",_about:"\u5173\u4e8e\u672c\u7ad9",_webInfo:"\u7f51\u7ad9\u4fe1\u606f",_systemSet:"\u7cfb\u7edf\u8bbe\u7f6e",_searchEngines:"\u641c\u7d22\u5f15\u64ce",_userCollect:"\u7528\u6237\u6536\u5f55",_bookmarkImport:"\u4e66\u7b7e\u5bfc\u5165",_tagSettings:"\u6807\u7b7e\u8bbe\u7f6e",_websiteMang:"\u7f51\u7ad9\u7ba1\u7406",_addRow:"\u65b0\u589e\u4e00\u6761",_bookImportTip:"

\u652f\u6301\u5927\u90e8\u5206\u4e3b\u6d41\u6d4f\u89c8\u5668\u57fa\u4e8ewebkit\u5185\u6838\uff0c\u82e5\u5bfc\u5165\u5931\u8d25\u8868\u793a\u6682\u4e0d\u652f\u6301

\u81ea\u52a8\u68c0\u6d4b\u6ee1\u8db3\u4e09\u7ea7\u5206\u7c7b\u5bfc\u822a\uff0c\u5176\u4ed6\u4e00\u5f8b\u8bbe\u4e3a\u672a\u5206\u7c7b

",_engineName:"\u5f15\u64ce\u540d\u79f0",_status:"\u72b6\u6001",_isDisable:"\u662f\u5426\u7981\u7528",_webLogo:"\u7f51\u7ad9LOGO",_defLanguage:"\u9ed8\u8ba4\u8bed\u8a00",_pageLoad:"\u9875\u9762Loading",_random:"\u968f\u673a",_noSet:"\u4e0d\u8bbe\u7f6e",_showGithub:"\u663e\u793aGithub",_defTheme:"\u9ed8\u8ba4\u4e3b\u9898",_appTheme:"App\u4e3b\u9898",_keywords:"\u7f51\u7ad9\u5173\u952e\u5b57",_footHtml:"\u5e95\u90e8HTML",_headHtml:"\u5934\u90e8HTML",_showWeather:"\u663e\u793a\u5929\u6c14",_weatherTip:'\u76ee\u524d\u53ea\u652f\u6301 "Shortcut" \u4e3b\u9898',_setSaveTip:"\u6ce8\u610f\uff1a\u4fdd\u5b58\u6210\u529f\u540e\u81f3\u5c11\u9700\u8981\u7b49\u5f852\u5206\u949f\u6784\u5efa\u65f6\u95f4\u65b9\u53ef\u751f\u6548\uff01",_theme:"\u4e3b\u9898",_backgroundImage:"\u56fe\u7247",_engineUrl:"\u5f15\u64ce\u5730\u5740",_actionSuccess:"\u64cd\u4f5c\u6210\u529f",_jumpAddr:"\u8df3\u8f6c\u5730\u5740",_backup:"\u4e0b\u8f7d\u5907\u4efd",_bannerHeight:"Banner\u9ad8\u5ea6",_autoPlay:"\u81ea\u52a8\u8f6e\u64ad",_importBackup:"\u5bfc\u5165\u5907\u4efd",_importBackupTip:"\u5bfc\u5165\u540e\u4f1a\u5c06\u5f53\u524d\u6240\u6709\u7f51\u7ad9\u6570\u636e\u6e05\u7a7a\u5e76\u5bfc\u5165",_showLanguage:"\u663e\u793a\u5207\u6362\u8bed\u8a00",_mirrorList:"\u955c\u50cf\u5217\u8868",_mirrorAddr:"\u955c\u50cf\u5730\u5740",_mirrorName:"\u955c\u50cf\u540d\u79f0",_showRate:"\u663e\u793a\u5361\u7247\u8bc4\u5206",_showCopy:"\u663e\u793a\u5361\u7247\u590d\u5236",_showShare:"\u663e\u793a\u5361\u7247\u5206\u4eab",_angleMark:"\u89d2\u6807\u8bbe\u7f6e",_logout:"\u767b\u51fa\u8d26\u53f7",_cardStyle:"\u5361\u7247\u98ce\u683c",_tagPlaceholder:"\u53ef\u4ee5\u4e3a\u7a7a\u5f53\u4f5c\u4e00\u4e2a\u666e\u901a\u6807\u7b7e",_dragSort:"\u62d6\u52a8\u53ef\u6392\u5e8f",_checkWeb:"\u4e0a\u6b21\u68c0\u6d4b\u51fa {count} \u4e2a\u7f51\u7ad9\u94fe\u63a5\u5931\u6548\uff0c\u5177\u4f53\u5230\u7ba1\u7406\u7f51\u7ad9\u67e5\u770b\uff0c\u5982\u9700\u518d\u6b21\u68c0\u6d4b\u72b6\u6001\u76f4\u63a5\u70b9\u4fdd\u5b58\u89e6\u53d1\u4e8b\u4ef6\u5373\u53ef\u3002",_buildTip:"\u4fee\u6539\u5b8c\u8bf7\u4fdd\u5b58\u5e76\u7b49\u5f85\u6784\u5efa\u5b8c\u6210\uff0c\u79bb\u5f00\u65e0\u6548",_updateTip:"\u7cfb\u7edf\u66f4\u65b0\u9891\u7e41\uff0c\u5efa\u8bae\u5b9a\u65f6\u6267\u884c\u66f4\u65b0\u4eab\u53d7\u6700\u65b0\u7cfb\u7edf\u529f\u80fd",_clickUpdate:"\u70b9\u6211\u66f4\u65b0",_enableSEO:"\u5f00\u542fSEO(\u52a0\u8f7d\u7a0d\u6162)",_allowCollect:"\u5141\u8bb8\u7528\u6237\u63d0\u4ea4\u6536\u5f55",_collectMenuView:"\u5177\u4f53\u5230\u7528\u6237\u6536\u5f55\u83dc\u5355\u67e5\u770b",_displaySwitchTheme:"\u663e\u793a\u5207\u6362\u4e3b\u9898",_requestAddress:"\u8bf7\u6c42\u5730\u5740",_requestTip:"\u901a\u5e38\u7528\u4e8e\u90e8\u7f72\u81ea\u6709\u670d\u52a1\u5668\uff0c\u5f53\u70b9\u51fb\u4fdd\u5b58\u6309\u94ae\u65f6\u4f1a\u53d1\u51faGET\u8bf7\u6c42\u586b\u5199\u7684\u5730\u5740",_followPage:"\u8ddf\u968f\u9875\u9762",_bannerTip:"\u5f53\u9ad8\u5ea6\u4e3a0\u65f6\uff0c\u56fe\u7247\u5bbd\u9ad8\u4f1a\u81ea\u9002\u5e94\uff0c\u52a1\u5fc5\u4fdd\u8bc1\u6bcf\u5f20\u56fe\u7247\u5c3a\u5bf8\u4e00\u81f4",_checkStatus:"\u68c0\u67e5\u7f51\u7ad9\u94fe\u63a5\u72b6\u6001(\u4e0a\u8ff0\u4efb\u4e00\u9879\u66f4\u65b0\uff0c\u5efa\u8bae\u6b64\u5f00\u542f\uff0c\u8017\u65f6\u76f8\u540c)",_ignore:"\uff08\u6b64\u529f\u80fd\u4f5c\u7528\u4e0d\u5927\uff0c\u5efa\u8bae\u5ffd\u7565\u6216\u5220\u9664\uff09",_standard:"\u6807\u51c6",_column:"\u680f\u76ee",_simplicity:"\u7b80\u7ea6",_navOver:"\u4e00\u7ea7\u5bfc\u822a\u8d85\u51fa\u663e\u793a",_scrollBar:"\u6eda\u52a8\u6761",_ellipsis:"\u4e09\u70b9\u5f0f",_sidebarImg:"\u4fa7\u680f\u56fe\u7247\u677f\u5757",_sidebarTitle:"\u4fa7\u680f\u6807\u9898",_defTitle4:"\u9ed8\u8ba4\u7f51\u7ad9\u6807\u9898, \u5efa\u8bae4\u5b57\u4ee5\u5185",_inputAuthCode:"\u8bf7\u8f93\u5165\u6388\u6743\u7801",_payTip:"\u5f00\u901a\u7528\u6237\u6536\u5f55\u529f\u80fd\u9700\u652f\u4ed8 \uffe599 \u4f5c\u4e3a\u672c\u7ad9\u7a33\u5b9a\u8fd0\u884c\u7684\u8d21\u732e\uff0c\u611f\u8c22\u60a8\u7684\u7406\u89e3",_waitHandle:"\u63d0\u4ea4\u6210\u529f\uff0c\u7b49\u5f85\u7ad9\u957f\u5904\u7406",_collect:"\u6536\u5f55",_confirmCollect:"\u60a8\u786e\u5b9a\u8981\u6536\u5f55\u5417\uff1f",_pendingGet:"\u6b63\u5728\u83b7\u53d6...",_logoutAuthCode:"\u9000\u51fa\u6388\u6743",_spiderRule:"\u722c\u53d6\u89c4\u5219",_spiderTitle:"\u66f4\u65b0\u6807\u9898",_spiderIcon:"\u66f4\u65b0\u56fe\u6807",_spiderDesc:"\u66f4\u65b0\u63cf\u8ff0",_notSpider:"\u4e0d\u66f4\u65b0",_spiderAlways:"\u603b\u662f\u66f4\u65b0",_spiderEmpty:"\u4e3a\u7a7a\u65f6\u66f4\u65b0",_spiderStatus:"\u722c\u53d6\u72b6\u6001",_spiderTip:"\u6bcf\u6b21\u4fdd\u5b58\u65f6\u4f1a\u89e6\u53d1\u722c\u53d6\u89c4\u5219\uff0c\u5f71\u54cd\u6784\u5efa\u901f\u5ea6\uff0c\u5728\u5fc5\u8981\u65f6\u8fdb\u884c\u722c\u53d6\u66f4\u65b0\u4fe1\u606f",_spiderQty:"\u5e76\u53d1\u6570\u91cf",_spiderQtyTip:"",_spiderNetTip:"\u7531\u4e8e\u7f51\u7edc\u56e0\u7d20\uff0c\u90e8\u5206\u7f51\u7ad9\u53ef\u80fd\u65e0\u6cd5\u8bbf\u95ee\u76f4\u63a5\u8df3\u8fc7\uff0c\u4ec5\u4f9b\u53c2\u8003",_spiderBuildTip:"\u6784\u5efa\u5b8c\u6210\u540e\u5bf9\u6570\u636e\u65e0\u8bef\uff0c\u8bf7\u5230\u7f51\u7ad9\u7ba1\u7406\u70b9\u51fb\u4e00\u6b21\u4fdd\u5b58\uff0c\u5426\u5219\u6570\u636e\u4e0d\u4f1a\u6c38\u4e45\u5b58\u50a8"}};function X5(){return window.localStorage.getItem(Ui.language)||An.language}const vne=X5();function _e(t){return"zh-CN"===vne?Q5.cn[t]:Q5.en[t]??Q5.cn[t]}class e7{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class Ju extends e7{constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=r}}class Zu extends e7{constructor(n,e,i,o){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class _ne extends e7{constructor(n){super(),this.element=n instanceof Te?n.nativeElement:n}}class t7{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Ju?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof Zu?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof _ne?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class bne extends t7{constructor(n,e,i,o,r){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=s=>{const a=s.element,c=this._document.createComment("dom-portal");a.parentNode.insertBefore(c,a),this.outletElement.appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{c.parentNode&&c.parentNode.replaceChild(a,c)})},this._document=r}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let o;return n.viewContainerRef?(o=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(n.injector||this._defaultInjector||tn.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=n,o}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let Qu=(()=>{class t extends t7{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new H,this.attachDomPortal=r=>{const s=r.element,a=this._document.createComment("dom-portal");r.setAttachedHost(this),s.parentNode.insertBefore(a,s),this._getRootNode().appendChild(s),this._attachedPortal=r,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(s,a)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,r=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),s=i.createComponent(r,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(s.hostView.rootNodes[0]),super.setDisposeFn(()=>s.destroy()),this._attachedPortal=e,this._attachedRef=s,this.attached.emit(s),s}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static#e=this.\u0275fac=function(i){return new(i||t)(v(Il),v(Gn),v(It))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[mt]})}return t})(),z3=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function Ki(t,n){(function yne(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var e=function Cne(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===n?t:Math.min(n,Math.max(0,parseFloat(t))),e&&(t=parseInt(String(t*n),10)/100),Math.abs(t-n)<1e-6?1:t=360===n?(t<0?t%n+n:t%n)/parseFloat(String(n)):t%n/parseFloat(String(n))}function S3(t){return Math.min(1,Math.max(0,t))}function TE(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function T3(t){return t<=1?"".concat(100*Number(t),"%"):t}function wc(t){return 1===t.length?"0"+t:String(t)}function ME(t,n,e){t=Ki(t,255),n=Ki(n,255),e=Ki(e,255);var i=Math.max(t,n,e),o=Math.min(t,n,e),r=0,s=0,a=(i+o)/2;if(i===o)s=0,r=0;else{var c=i-o;switch(s=a>.5?c/(2-i-o):c/(i+o),i){case t:r=(n-e)/c+(n1&&(e-=1),e<1/6?t+6*e*(n-t):e<.5?n:e<2/3?t+(n-t)*(2/3-e)*6:t}function M3(t,n,e){t=Ki(t,255),n=Ki(n,255),e=Ki(e,255);var i=Math.max(t,n,e),o=Math.min(t,n,e),r=0,s=i,a=i-o,c=0===i?0:a/i;if(i===o)r=0;else{switch(i){case t:r=(n-e)/a+(n>16,g:(65280&t)>>8,b:255&t}}(n)),this.originalInput=n;var o=qr(n);this.originalInput=n,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(i=e.format)&&void 0!==i?i:o.format,this.gradientType=e.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var n=this.toRgb();return(299*n.r+587*n.g+114*n.b)/1e3},t.prototype.getLuminance=function(){var n=this.toRgb(),r=n.r/255,s=n.g/255,a=n.b/255;return.2126*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.7152*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.0722*(a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(n){return this.a=TE(n),this.roundA=Math.round(100*this.a)/100,this},t.prototype.isMonochrome=function(){return 0===this.toHsl().s},t.prototype.toHsv=function(){var n=M3(this.r,this.g,this.b);return{h:360*n.h,s:n.s,v:n.v,a:this.a}},t.prototype.toHsvString=function(){var n=M3(this.r,this.g,this.b),e=Math.round(360*n.h),i=Math.round(100*n.s),o=Math.round(100*n.v);return 1===this.a?"hsv(".concat(e,", ").concat(i,"%, ").concat(o,"%)"):"hsva(".concat(e,", ").concat(i,"%, ").concat(o,"%, ").concat(this.roundA,")")},t.prototype.toHsl=function(){var n=ME(this.r,this.g,this.b);return{h:360*n.h,s:n.s,l:n.l,a:this.a}},t.prototype.toHslString=function(){var n=ME(this.r,this.g,this.b),e=Math.round(360*n.h),i=Math.round(100*n.s),o=Math.round(100*n.l);return 1===this.a?"hsl(".concat(e,", ").concat(i,"%, ").concat(o,"%)"):"hsla(".concat(e,", ").concat(i,"%, ").concat(o,"%, ").concat(this.roundA,")")},t.prototype.toHex=function(n){return void 0===n&&(n=!1),D3(this.r,this.g,this.b,n)},t.prototype.toHexString=function(n){return void 0===n&&(n=!1),"#"+this.toHex(n)},t.prototype.toHex8=function(n){return void 0===n&&(n=!1),function Tne(t,n,e,i,o){var r=[wc(Math.round(t).toString(16)),wc(Math.round(n).toString(16)),wc(Math.round(e).toString(16)),wc(DE(i))];return o&&r[0].startsWith(r[0].charAt(1))&&r[1].startsWith(r[1].charAt(1))&&r[2].startsWith(r[2].charAt(1))&&r[3].startsWith(r[3].charAt(1))?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0)+r[3].charAt(0):r.join("")}(this.r,this.g,this.b,this.a,n)},t.prototype.toHex8String=function(n){return void 0===n&&(n=!1),"#"+this.toHex8(n)},t.prototype.toHexShortString=function(n){return void 0===n&&(n=!1),1===this.a?this.toHexString(n):this.toHex8String(n)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var n=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb(".concat(n,", ").concat(e,", ").concat(i,")"):"rgba(".concat(n,", ").concat(e,", ").concat(i,", ").concat(this.roundA,")")},t.prototype.toPercentageRgb=function(){var n=function(e){return"".concat(Math.round(100*Ki(e,255)),"%")};return{r:n(this.r),g:n(this.g),b:n(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var n=function(e){return Math.round(100*Ki(e,255))};return 1===this.a?"rgb(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%)"):"rgba(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%, ").concat(this.roundA,")")},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var n="#"+D3(this.r,this.g,this.b,!1),e=0,i=Object.entries(i7);e=0&&(n.startsWith("hex")||"name"===n)?"name"===n&&0===this.a?this.toName():this.toRgbString():("rgb"===n&&(i=this.toRgbString()),"prgb"===n&&(i=this.toPercentageRgbString()),("hex"===n||"hex6"===n)&&(i=this.toHexString()),"hex3"===n&&(i=this.toHexString(!0)),"hex4"===n&&(i=this.toHex8String(!0)),"hex8"===n&&(i=this.toHex8String()),"name"===n&&(i=this.toName()),"hsl"===n&&(i=this.toHslString()),"hsv"===n&&(i=this.toHsvString()),i||this.toHexString())},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.l+=n/100,e.l=S3(e.l),new t(e)},t.prototype.brighten=function(n){void 0===n&&(n=10);var e=this.toRgb();return e.r=Math.max(0,Math.min(255,e.r-Math.round(-n/100*255))),e.g=Math.max(0,Math.min(255,e.g-Math.round(-n/100*255))),e.b=Math.max(0,Math.min(255,e.b-Math.round(-n/100*255))),new t(e)},t.prototype.darken=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.l-=n/100,e.l=S3(e.l),new t(e)},t.prototype.tint=function(n){return void 0===n&&(n=10),this.mix("white",n)},t.prototype.shade=function(n){return void 0===n&&(n=10),this.mix("black",n)},t.prototype.desaturate=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.s-=n/100,e.s=S3(e.s),new t(e)},t.prototype.saturate=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.s+=n/100,e.s=S3(e.s),new t(e)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(n){var e=this.toHsl(),i=(e.h+n)%360;return e.h=i<0?360+i:i,new t(e)},t.prototype.mix=function(n,e){void 0===e&&(e=50);var i=this.toRgb(),o=new t(n).toRgb(),r=e/100;return new t({r:(o.r-i.r)*r+i.r,g:(o.g-i.g)*r+i.g,b:(o.b-i.b)*r+i.b,a:(o.a-i.a)*r+i.a})},t.prototype.analogous=function(n,e){void 0===n&&(n=6),void 0===e&&(e=30);var i=this.toHsl(),o=360/e,r=[this];for(i.h=(i.h-(o*n>>1)+720)%360;--n;)i.h=(i.h+o)%360,r.push(new t(i));return r},t.prototype.complement=function(){var n=this.toHsl();return n.h=(n.h+180)%360,new t(n)},t.prototype.monochromatic=function(n){void 0===n&&(n=6);for(var e=this.toHsv(),i=e.h,o=e.s,r=e.v,s=[],a=1/n;n--;)s.push(new t({h:i,s:o,v:r})),r=(r+a)%1;return s},t.prototype.splitcomplement=function(){var n=this.toHsl(),e=n.h;return[this,new t({h:(e+72)%360,s:n.s,l:n.l}),new t({h:(e+216)%360,s:n.s,l:n.l})]},t.prototype.onBackground=function(n){var e=this.toRgb(),i=new t(n).toRgb(),o=e.a+i.a*(1-e.a);return new t({r:(e.r*e.a+i.r*i.a*(1-e.a))/o,g:(e.g*e.a+i.g*i.a*(1-e.a))/o,b:(e.b*e.a+i.b*i.a*(1-e.a))/o,a:o})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(n){for(var e=this.toHsl(),i=e.h,o=[this],r=360/n,s=1;s=60&&Math.round(t.h)<=240?e?Math.round(t.h)-E3*n:Math.round(t.h)+E3*n:e?Math.round(t.h)+E3*n:Math.round(t.h)-E3*n,i<0?i+=360:i>=360&&(i-=360),i}function FE(t,n,e){if(0===t.h&&0===t.s)return t.s;let i;return i=e?t.s-OE*n:n===IE?t.s+OE:t.s+Ane*n,i>1&&(i=1),e&&n===PE&&i>.1&&(i=.1),i<.06&&(i=.06),Number(i.toFixed(2))}function RE(t,n,e){let i;return i=e?t.v+One*n:t.v-Pne*n,i>1&&(i=1),Number(i.toFixed(2))}function LE(t,n={}){const e=[],i=qr(t);for(let o=PE;o>0;o-=1){const r=NE(i),s=k3(qr({h:VE(r,o,!0),s:FE(r,o,!0),v:RE(r,o,!0)}));e.push(s)}e.push(k3(i));for(let o=1;o<=IE;o+=1){const r=NE(i),s=k3(qr({h:VE(r,o),s:FE(r,o),v:RE(r,o)}));e.push(s)}return"dark"===n.theme?Ine.map(({index:o,opacity:r})=>k3(function Nne(t,n,e){const i=e/100;return{r:(n.r-t.r)*i+t.r,g:(n.g-t.g)*i+t.g,b:(n.b-t.b)*i+t.b}}(qr(n.backgroundColor||"#141414"),qr(e[o]),100*r))):e}const A3="[NG-ZORRO]:";const Xu=(...t)=>{},jE=new oe("nz-config"),Fne=`-ant-${Date.now()}-${Math.random()}`;function $E(t,n,e){const i=function Rne(t,n){const e={},i=(s,a)=>{let c=s.clone();return c=a?.(c)||c,c.toRgbString()},o=(s,a)=>{const c=new x3(s),l=LE(c.toRgbString());e[`${a}-color`]=i(c),e[`${a}-color-disabled`]=l[1],e[`${a}-color-hover`]=l[4],e[`${a}-color-active`]=l[7],e[`${a}-color-outline`]=c.clone().setAlpha(.2).toRgbString(),e[`${a}-color-deprecated-bg`]=l[1],e[`${a}-color-deprecated-border`]=l[3]};if(n.primaryColor){o(n.primaryColor,"primary");const s=new x3(n.primaryColor),a=LE(s.toRgbString());a.forEach((l,u)=>{e[`primary-${u+1}`]=l}),e["primary-color-deprecated-l-35"]=i(s,l=>l.lighten(35)),e["primary-color-deprecated-l-20"]=i(s,l=>l.lighten(20)),e["primary-color-deprecated-t-20"]=i(s,l=>l.tint(20)),e["primary-color-deprecated-t-50"]=i(s,l=>l.tint(50)),e["primary-color-deprecated-f-12"]=i(s,l=>l.setAlpha(.12*l.getAlpha()));const c=new x3(a[0]);e["primary-color-active-deprecated-f-30"]=i(c,l=>l.setAlpha(.3*l.getAlpha())),e["primary-color-active-deprecated-d-02"]=i(c,l=>l.darken(2))}return n.successColor&&o(n.successColor,"success"),n.warningColor&&o(n.warningColor,"warning"),n.errorColor&&o(n.errorColor,"error"),n.infoColor&&o(n.infoColor,"info"),`\n :root {\n ${Object.keys(e).map(s=>`--${t}-${s}: ${e[s]};`).join("\n")}\n }\n `.trim()}(t,n);yE()&&function gne(t,n,e={}){const i=J5(e);if(!Z5.has(i)){const s=wE("",e),{parentNode:a}=s;Z5.set(i,a),a.removeChild(s)}const o=function zE(t,n={}){const e=J5(n);return Array.from(Z5.get(e)?.children||[]).find(i=>"STYLE"===i.tagName&&i.getAttribute(CE(n))===t)}(n,e);if(o)return e.cspNonce&&o.nonce!==e.cspNonce&&(o.nonce=e.cspNonce),o.innerHTML!==t&&(o.innerHTML=t),o;const r=wE(t,e);r?.setAttribute(CE(e),n)}(i,`${Fne}-dynamic-theme`,{cspNonce:e})}const YE=function(t){return void 0!==t};let si=(()=>{class t{constructor(e,i){this.configUpdated$=new N,this.config=e||{},this.cspNonce=i,this.config.theme&&$E(this.getConfig().prefixCls?.prefixCls||"ant",this.config.theme,i)}getConfig(){return this.config}getConfigForComponent(e){return this.config[e]}getConfigChangeEventForComponent(e){return this.configUpdated$.pipe(yt(i=>i===e),hc(void 0))}set(e,i){this.config[e]={...this.config[e],...i},"theme"===e&&this.config.theme&&$E(this.getConfig().prefixCls?.prefixCls||"ant",this.config.theme,this.cspNonce),this.configUpdated$.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(jE,8),R(vd,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Nt(){return function(n,e,i){const o=`$$__zorroConfigDecorator__${e}`;return Object.defineProperty(n,o,{configurable:!0,writable:!0,enumerable:!1}),{get(){const r=i?.get?i.get.bind(this)():this[o],s=(this.propertyAssignCounter?.[e]||0)>1,a=this.nzConfigService.getConfigForComponent(this._nzModuleName)?.[e];return s&&YE(r)?r:YE(a)?a:r},set(r){this.propertyAssignCounter=this.propertyAssignCounter||{},this.propertyAssignCounter[e]=(this.propertyAssignCounter[e]||0)+1,i?.set?i.set.bind(this)(r):this[o]=r},configurable:!0,enumerable:!0}}}var lt=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(lt||{});const Hs="*";function Vo(t,n){return{type:lt.Trigger,name:t,definitions:n,options:{}}}function an(t,n=null){return{type:lt.Animate,styles:n,timings:t}}function Ke(t){return{type:lt.Style,styles:t,offset:null}}function Co(t,n,e){return{type:lt.State,name:t,styles:n,options:e}}function un(t,n,e=null){return{type:lt.Transition,expr:t,animation:n,options:e}}function WE(t,n,e=null){return{type:lt.Query,selector:t,animation:n,options:e}}function GE(t,n){return{type:lt.Stagger,timings:t,animation:n}}class e2{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class qE{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==r&&this._onFinish()}),s.onDestroy(()=>{++i==r&&this._onDestroy()}),s.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}let Ji=(()=>{class t{static#e=this.SLOW="0.3s";static#t=this.BASE="0.2s";static#n=this.FAST="0.1s"}return t})(),oo=(()=>{class t{static#e=this.EASE_BASE_OUT="cubic-bezier(0.7, 0.3, 0.1, 1)";static#t=this.EASE_BASE_IN="cubic-bezier(0.9, 0, 0.3, 0.7)";static#n=this.EASE_OUT="cubic-bezier(0.215, 0.61, 0.355, 1)";static#i=this.EASE_IN="cubic-bezier(0.55, 0.055, 0.675, 0.19)";static#o=this.EASE_IN_OUT="cubic-bezier(0.645, 0.045, 0.355, 1)";static#r=this.EASE_OUT_BACK="cubic-bezier(0.12, 0.4, 0.29, 1.46)";static#s=this.EASE_IN_BACK="cubic-bezier(0.71, -0.46, 0.88, 0.6)";static#a=this.EASE_IN_OUT_BACK="cubic-bezier(0.71, -0.46, 0.29, 1.46)";static#c=this.EASE_OUT_CIRC="cubic-bezier(0.08, 0.82, 0.17, 1)";static#l=this.EASE_IN_CIRC="cubic-bezier(0.6, 0.04, 0.98, 0.34)";static#d=this.EASE_IN_OUT_CIRC="cubic-bezier(0.78, 0.14, 0.15, 0.86)";static#u=this.EASE_OUT_QUINT="cubic-bezier(0.23, 1, 0.32, 1)";static#h=this.EASE_IN_QUINT="cubic-bezier(0.755, 0.05, 0.855, 0.06)";static#p=this.EASE_IN_OUT_QUINT="cubic-bezier(0.86, 0, 0.07, 1)"}return t})();const Yne=Vo("collapseMotion",[Co("expanded",Ke({height:"*"})),Co("collapsed",Ke({height:0,overflow:"hidden"})),Co("hidden",Ke({height:0,overflow:"hidden",borderTopWidth:"0"})),un("expanded => collapsed",an(`150ms ${oo.EASE_IN_OUT}`)),un("expanded => hidden",an(`150ms ${oo.EASE_IN_OUT}`)),un("collapsed => expanded",an(`150ms ${oo.EASE_IN_OUT}`)),un("hidden => expanded",an(`150ms ${oo.EASE_IN_OUT}`))]),Une=(Vo("treeCollapseMotion",[un("* => *",[WE("nz-tree-node:leave,nz-tree-builtin-node:leave",[Ke({overflow:"hidden"}),GE(0,[an(`150ms ${oo.EASE_IN_OUT}`,Ke({height:0,opacity:0,"padding-bottom":0}))])],{optional:!0}),WE("nz-tree-node:enter,nz-tree-builtin-node:enter",[Ke({overflow:"hidden",height:0,opacity:0,"padding-bottom":0}),GE(0,[an(`150ms ${oo.EASE_IN_OUT}`,Ke({overflow:"hidden",height:"*",opacity:"*","padding-bottom":"*"}))])],{optional:!0})])]),Vo("drawerMaskMotion",[un(":enter",[Ke({opacity:0}),an(`${Ji.SLOW}`,Ke({opacity:1}))]),un(":leave",[Ke({opacity:1}),an(`${Ji.SLOW}`,Ke({opacity:0}))])]),Vo("fadeMotion",[un("* => enter",[Ke({opacity:0}),an(`${Ji.BASE}`,Ke({opacity:1}))]),un("* => leave, :leave",[Ke({opacity:1}),an(`${Ji.BASE}`,Ke({opacity:0}))])]),Vo("helpMotion",[un(":enter",[Ke({opacity:0,transform:"translateY(-5px)"}),an(`${Ji.SLOW} ${oo.EASE_IN_OUT}`,Ke({opacity:1,transform:"translateY(0)"}))]),un(":leave",[Ke({opacity:1,transform:"translateY(0)"}),an(`${Ji.SLOW} ${oo.EASE_IN_OUT}`,Ke({opacity:0,transform:"translateY(-5px)"}))])])),Wne=Vo("moveUpMotion",[un("* => enter",[Ke({transformOrigin:"0 0",transform:"translateY(-100%)",opacity:0}),an(`${Ji.BASE}`,Ke({transformOrigin:"0 0",transform:"translateY(0%)",opacity:1}))]),un("* => leave",[Ke({transformOrigin:"0 0",transform:"translateY(0%)",opacity:1}),an(`${Ji.BASE}`,Ke({transformOrigin:"0 0",transform:"translateY(-100%)",opacity:0}))])]),Gne=Vo("notificationMotion",[Co("enterRight",Ke({opacity:1,transform:"translateX(0)"})),un("* => enterRight",[Ke({opacity:0,transform:"translateX(5%)"}),an("100ms linear")]),Co("enterLeft",Ke({opacity:1,transform:"translateX(0)"})),un("* => enterLeft",[Ke({opacity:0,transform:"translateX(-5%)"}),an("100ms linear")]),Co("enterTop",Ke({opacity:1,transform:"translateY(0)"})),un("* => enterTop",[Ke({opacity:0,transform:"translateY(-5%)"}),an("100ms linear")]),Co("enterBottom",Ke({opacity:1,transform:"translateY(0)"})),un("* => enterBottom",[Ke({opacity:0,transform:"translateY(5%)"}),an("100ms linear")]),Co("leave",Ke({opacity:0,transform:"scaleY(0.8)",transformOrigin:"0% 0%"})),un("* => leave",[Ke({opacity:1,transform:"scaleY(1)",transformOrigin:"0% 0%"}),an("100ms linear")])]),qne=`${Ji.BASE} ${oo.EASE_OUT_QUINT}`,Kne=`${Ji.BASE} ${oo.EASE_IN_QUINT}`,a7=Vo("slideMotion",[Co("void",Ke({opacity:0,transform:"scaleY(0.8)"})),Co("enter",Ke({opacity:1,transform:"scaleY(1)"})),un("void => *",[an(qne)]),un("* => void",[an(Kne)])]),Jne=(Vo("slideAlertMotion",[un(":leave",[Ke({opacity:1,transform:"scaleY(1)",transformOrigin:"0% 0%"}),an(`${Ji.SLOW} ${oo.EASE_IN_OUT_CIRC}`,Ke({opacity:0,transform:"scaleY(0)",transformOrigin:"0% 0%"}))])]),Vo("tabSwitchMotion",[Co("leave",Ke({display:"none"})),un("* => enter",[Ke({display:"block",opacity:0}),an(Ji.SLOW)]),un("* => leave, :leave",[Ke({position:"absolute",top:0,left:0,width:"100%"}),an(Ji.SLOW,Ke({opacity:0})),Ke({display:"none"})])])),O3=(Vo("thumbMotion",[Co("from",Ke({transform:"translateX({{ transform }}px)",width:"{{ width }}px"}),{params:{transform:0,width:0}}),Co("to",Ke({transform:"translateX({{ transform }}px)",width:"{{ width }}px"}),{params:{transform:100,width:0}}),un("from => to",an(`300ms ${oo.EASE_IN_OUT}`))]),Vo("zoomBigMotion",[un("void => active",[Ke({opacity:0,transform:"scale(0.8)"}),an(`${Ji.BASE} ${oo.EASE_OUT_CIRC}`,Ke({opacity:1,transform:"scale(1)"}))]),un("active => void",[Ke({opacity:1,transform:"scale(1)"}),an(`${Ji.BASE} ${oo.EASE_IN_OUT_CIRC}`,Ke({opacity:0,transform:"scale(0.8)"}))])]));Vo("zoomBadgeMotion",[un(":enter",[Ke({opacity:0,transform:"scale(0) translate(50%, -50%)"}),an(`${Ji.SLOW} ${oo.EASE_OUT_BACK}`,Ke({opacity:1,transform:"scale(1) translate(50%, -50%)"}))]),un(":leave",[Ke({opacity:1,transform:"scale(1) translate(50%, -50%)"}),an(`${Ji.SLOW} ${oo.EASE_IN_BACK}`,Ke({opacity:0,transform:"scale(0) translate(50%, -50%)"}))])]);let Sn=(()=>{class t{static ngTemplateContextGuard(e,i){return!0}recreateView(){this.viewContainer.clear();const e=this.nzStringTemplateOutlet instanceof Gt;this.embeddedViewRef=this.viewContainer.createEmbeddedView(e?this.nzStringTemplateOutlet:this.templateRef,e?this.nzStringTemplateOutletContext:this.context)}updateContext(){const i=this.nzStringTemplateOutlet instanceof Gt?this.nzStringTemplateOutletContext:this.context,o=this.embeddedViewRef.context;if(i)for(const r of Object.keys(i))o[r]=i[r]}constructor(e,i){this.viewContainer=e,this.templateRef=i,this.embeddedViewRef=null,this.context=new Zne,this.nzStringTemplateOutletContext=null,this.nzStringTemplateOutlet=null}ngOnChanges(e){const{nzStringTemplateOutletContext:i,nzStringTemplateOutlet:o}=e;o&&(this.context.$implicit=o.currentValue),(()=>{let a=!1;return o&&(a=!!o.firstChange||(o.previousValue instanceof Gt||o.currentValue instanceof Gt)),i&&(u=>{const p=Object.keys(u.previousValue||{}),_=Object.keys(u.currentValue||{});if(p.length===_.length){for(const b of _)if(-1===p.indexOf(b))return!0;return!1}return!0})(i)||a})()?this.recreateView():this.updateContext()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzStringTemplateOutlet",""]],inputs:{nzStringTemplateOutletContext:"nzStringTemplateOutletContext",nzStringTemplateOutlet:"nzStringTemplateOutlet"},exportAs:["nzStringTemplateOutlet"],standalone:!0,features:[ke]})}return t})();class Zne{}let Tn=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();var P3=2,KE=.16,Qne=.05,Xne=.05,eie=.15,JE=5,ZE=4,tie=[{index:7,opacity:.15},{index:6,opacity:.25},{index:5,opacity:.3},{index:5,opacity:.45},{index:5,opacity:.65},{index:5,opacity:.85},{index:4,opacity:.9},{index:3,opacity:.95},{index:2,opacity:.97},{index:1,opacity:.98}];function QE(t){var o=M3(t.r,t.g,t.b);return{h:360*o.h,s:o.s,v:o.v}}function I3(t){return"#".concat(D3(t.r,t.g,t.b,!1))}function XE(t,n,e){var i;return(i=Math.round(t.h)>=60&&Math.round(t.h)<=240?e?Math.round(t.h)-P3*n:Math.round(t.h)+P3*n:e?Math.round(t.h)+P3*n:Math.round(t.h)-P3*n)<0?i+=360:i>=360&&(i-=360),i}function ek(t,n,e){return 0===t.h&&0===t.s?t.s:((i=e?t.s-KE*n:n===ZE?t.s+KE:t.s+Qne*n)>1&&(i=1),e&&n===JE&&i>.1&&(i=.1),i<.06&&(i=.06),Number(i.toFixed(2)));var i}function tk(t,n,e){var i;return(i=e?t.v+Xne*n:t.v-eie*n)>1&&(i=1),Number(i.toFixed(2))}function c7(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=[],i=qr(t),o=JE;o>0;o-=1){var r=QE(i),s=I3(qr({h:XE(r,o,!0),s:ek(r,o,!0),v:tk(r,o,!0)}));e.push(s)}e.push(I3(i));for(var a=1;a<=ZE;a+=1){var c=QE(i),l=I3(qr({h:XE(c,a),s:ek(c,a),v:tk(c,a)}));e.push(l)}return"dark"===n.theme?tie.map(function(u){var p=u.index,_=u.opacity,b=I3(function nie(t,n,e){var i=e/100;return{r:(n.r-t.r)*i+t.r,g:(n.g-t.g)*i+t.g,b:(n.b-t.b)*i+t.b}}(qr(n.backgroundColor||"#141414"),qr(e[p]),100*_));return b}):e}var l7={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},Zi={},d7={};Object.keys(l7).forEach(function(t){Zi[t]=c7(l7[t]),Zi[t].primary=Zi[t][5],d7[t]=c7(l7[t],{theme:"dark",backgroundColor:"#141414"}),d7[t].primary=d7[t][5]});class u7{}class t2{}class Bs{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),r=o.toLowerCase(),s=e.slice(i+1).trim();this.maybeSetNormalizedName(o,r),this.headers.has(r)?this.headers.get(r).push(s):this.headers.set(r,[s])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof Bs?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new Bs;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Bs?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const o=("a"===n.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const r=n.value;if(r){let s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===r.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(n,e){const i=(Array.isArray(e)?e:[e]).map(r=>r.toString()),o=n.toLowerCase();this.headers.set(o,i),this.maybeSetNormalizedName(n,o)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class iie{encodeKey(n){return nk(n)}encodeValue(n){return nk(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const rie=/%(\d[a-f0-9])/gi,sie={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function nk(t){return encodeURIComponent(t).replace(rie,(n,e)=>sie[e]??n)}function N3(t){return`${t}`}class va{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new iie,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function oie(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[s,a]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],c=e.get(s)||[];c.push(a),e.set(s,c)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],o=Array.isArray(i)?i.map(N3):[N3(i)];this.map.set(e,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const o=n[i];Array.isArray(o)?o.forEach(r=>{e.push({param:i,value:r,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new va({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(N3(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const o=i.indexOf(N3(n.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class aie{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function ik(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function ok(t){return typeof Blob<"u"&&t instanceof Blob}function rk(t){return typeof FormData<"u"&&t instanceof FormData}class n2{constructor(n,e,i,o){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function cie(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,r=o):r=i,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),this.transferCache=r.transferCache),this.headers??=new Bs,this.context??=new aie,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":a_.set(b,n.setHeaders[b]),l)),n.setParams&&(u=Object.keys(n.setParams).reduce((_,b)=>_.set(b,n.setParams[b]),u)),new n2(e,i,s,{params:u,headers:l,context:p,reportProgress:c,responseType:o,withCredentials:a,transferCache:r})}}var h7=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(h7||{});class p7{constructor(n,e=200,i="OK"){this.headers=n.headers||new Bs,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class o2 extends p7{constructor(n={}){super(n),this.type=h7.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new o2({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}function f7(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}let ak=(()=>{class t{constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof n2)r=e;else{let c,l;c=o.headers instanceof Bs?o.headers:new Bs(o.headers),o.params&&(l=o.params instanceof va?o.params:new va({fromObject:o.params})),r=new n2(e,i,void 0!==o.body?o.body:null,{headers:c,context:o.context,params:l,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const s=We(r).pipe(a1(c=>this.handler.handle(c)));if(e instanceof n2||"events"===o.observe)return s;const a=s.pipe(yt(c=>c instanceof o2));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return a.pipe(Ie(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return a.pipe(Ie(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return a.pipe(Ie(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return a.pipe(Ie(c=>c.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new va).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,f7(o,i))}post(e,i,o={}){return this.request("POST",e,f7(o,i))}put(e,i,o={}){return this.request("PUT",e,f7(o,i))}static#e=this.\u0275fac=function(i){return new(i||t)(R(u7))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();function wk(t={}){const{connector:n=(()=>new N),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let s,a,c,l=0,u=!1,p=!1;const _=()=>{a?.unsubscribe(),a=void 0},b=()=>{_(),s=c=void 0,u=p=!1},y=()=>{const z=s;b(),z?.unsubscribe()};return dn((z,E)=>{l++,!p&&!u&&_();const k=c=c??n();E.add(()=>{l--,0===l&&!p&&!u&&(a=v7(y,o))}),k.subscribe(E),!s&&l>0&&(s=new Rt({next:A=>k.next(A),error:A=>{p=!0,_(),a=v7(b,e,A),k.error(A)},complete:()=>{u=!0,_(),a=v7(b,i),k.complete()}}),Ii(z).subscribe(s))})(r)}}function v7(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Rt({next:()=>{i.unsubscribe(),t()}});return Ii(n(...e)).subscribe(i)}const js="[@ant-design/icons-angular]:";function Sk(t){return c7(t)[0]}function R3(t,n){switch(n){case"fill":return`${t}-fill`;case"outline":return`${t}-o`;case"twotone":return`${t}-twotone`;case void 0:return t;default:throw new Error(`${js}Theme "${n}" is not a recognized theme!`)}}function Tk(t){return"object"==typeof t&&"string"==typeof t.name&&("string"==typeof t.theme||void 0===t.theme)&&"string"==typeof t.icon}function L3(t){const n=t.split(":");switch(n.length){case 1:return[t,""];case 2:return[n[1],n[0]];default:throw new Error(`${js}The icon type ${t} is not valid!`)}}function Mk(t){return new Error(`${js}the icon ${t} does not exist or is not registered.`)}function Wie(){return new Error(`${js} tag not found.`)}const Kie=new oe("ant_icons");let Dk=(()=>{class t{set twoToneColor({primaryColor:e,secondaryColor:i}){this._twoToneColorPalette.primaryColor=e,this._twoToneColorPalette.secondaryColor=i||Sk(e)}get twoToneColor(){return{...this._twoToneColorPalette}}get _disableDynamicLoading(){return!1}constructor(e,i,o,r,s){this._rendererFactory=e,this._handler=i,this._document=o,this.sanitizer=r,this._antIcons=s,this.defaultTheme="outline",this._svgDefinitions=new Map,this._svgRenderedDefinitions=new Map,this._inProgressFetches=new Map,this._assetsUrlRoot="",this._twoToneColorPalette={primaryColor:"#333333",secondaryColor:"#E6E6E6"},this._enableJsonpLoading=!1,this._jsonpIconLoad$=new N,this._renderer=this._rendererFactory.createRenderer(null,null),this._handler&&(this._http=new ak(this._handler)),this._antIcons&&this.addIcon(...this._antIcons)}useJsonpLoading(){this._enableJsonpLoading||(this._enableJsonpLoading=!0,window.__ant_icon_load=e=>{this._jsonpIconLoad$.next(e)})}changeAssetsSource(e){this._assetsUrlRoot=e.endsWith("/")?e:e+"/"}addIcon(...e){e.forEach(i=>{this._svgDefinitions.set(R3(i.name,i.theme),i)})}addIconLiteral(e,i){const[o,r]=L3(e);if(!r)throw function $ie(){return new Error(`${js}Type should have a namespace. Try "namespace:${name}".`)}();this.addIcon({name:e,icon:i})}clear(){this._svgDefinitions.clear(),this._svgRenderedDefinitions.clear()}getRenderedContent(e,i){const o=Tk(e)?e:this._svgDefinitions.get(e)||null;if(!o&&this._disableDynamicLoading)throw Mk(e);return(o?We(o):this._loadIconDynamically(e)).pipe(Ie(s=>{if(!s)throw Mk(e);return this._loadSVGFromCacheOrCreateNew(s,i)}))}getCachedIcons(){return this._svgDefinitions}_loadIconDynamically(e){if(!this._http&&!this._enableJsonpLoading)return We(function Yie(){return function Nie(t){console.error(`${js} ${t}.`)}('you need to import "HttpClientModule" to use dynamic importing.'),null}());let i=this._inProgressFetches.get(e);if(!i){const[o,r]=L3(e),s=r?{name:e,icon:""}:function Lie(t){const n=t.split("-"),e=function Fie(t){return"o"===t?"outline":t}(n.splice(n.length-1,1)[0]);return{name:n.join("-"),theme:e,icon:""}}(o),c=(r?`${this._assetsUrlRoot}assets/${r}/${o}`:`${this._assetsUrlRoot}assets/${s.theme}/${s.name}`)+(this._enableJsonpLoading?".js":".svg"),l=this.sanitizer.sanitize(Uo.URL,c);if(!l)throw function Uie(t){return new Error(`${js}The url "${t}" is unsafe.`)}(c);i=(this._enableJsonpLoading?this._loadIconDynamicallyWithJsonp(s,l):this._http.get(l,{responseType:"text"}).pipe(Ie(p=>({...s,icon:p})))).pipe(ii(p=>this.addIcon(p)),c1(()=>this._inProgressFetches.delete(e)),uc(()=>We(null)),wk()),this._inProgressFetches.set(e,i)}return i}_loadIconDynamicallyWithJsonp(e,i){return new Ut(o=>{const r=this._document.createElement("script"),s=setTimeout(()=>{a(),o.error(function Gie(){return new Error(`${js}Importing timeout error.`)}())},6e3);function a(){r.parentNode.removeChild(r),clearTimeout(s)}r.src=i,this._document.body.appendChild(r),this._jsonpIconLoad$.pipe(yt(c=>c.name===e.name&&c.theme===e.theme),io(1)).subscribe(c=>{o.next(c),a()})})}_loadSVGFromCacheOrCreateNew(e,i){let o;const r=i||this._twoToneColorPalette.primaryColor,s=Sk(r)||this._twoToneColorPalette.secondaryColor,a="twotone"===e.theme?function Vie(t,n,e,i){return`${R3(t,n)}-${e}-${i}`}(e.name,e.theme,r,s):void 0===e.theme?e.name:R3(e.name,e.theme),c=this._svgRenderedDefinitions.get(a);return c?o=c.icon:(o=this._setSVGAttribute(this._colorizeSVGIcon(this._createSVGElementFromString(function jie(t){return""!==L3(t)[1]}(e.name)?e.icon:function Bie(t){return t.replace(/['"]#333['"]/g,'"primaryColor"').replace(/['"]#E6E6E6['"]/g,'"secondaryColor"').replace(/['"]#D9D9D9['"]/g,'"secondaryColor"').replace(/['"]#D8D8D8['"]/g,'"secondaryColor"')}(e.icon)),"twotone"===e.theme,r,s)),this._svgRenderedDefinitions.set(a,{...e,icon:o})),function Hie(t){return t.cloneNode(!0)}(o)}_createSVGElementFromString(e){const i=this._document.createElement("div");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Wie;return o}_setSVGAttribute(e){return this._renderer.setAttribute(e,"width","1em"),this._renderer.setAttribute(e,"height","1em"),e}_colorizeSVGIcon(e,i,o,r){if(i){const s=e.childNodes,a=s.length;for(let c=0;c{class t{constructor(e,i,o){this._iconService=e,this._elementRef=i,this._renderer=o}ngOnChanges(e){(e.type||e.theme||e.twoToneColor)&&this._changeIcon()}_changeIcon(){return new Promise(e=>{if(!this.type)return this._clearSVGElement(),void e(null);const i=this._getSelfRenderMeta();this._iconService.getRenderedContent(this._parseIconType(this.type,this.theme),this.twoToneColor).subscribe(o=>{const r=this._getSelfRenderMeta();!function Jie(t,n){return t.type===n.type&&t.theme===n.theme&&t.twoToneColor===n.twoToneColor}(i,r)?e(null):(this._setSVGElement(o),e(o))})})}_getSelfRenderMeta(){return{type:this.type,theme:this.theme,twoToneColor:this.twoToneColor}}_parseIconType(e,i){if(Tk(e))return e;{const[o,r]=L3(e);return r?e:function Rie(t){return t.endsWith("-fill")||t.endsWith("-o")||t.endsWith("-twotone")}(o)?o:R3(o,i||this._iconService.defaultTheme)}}_setSVGElement(e){this._clearSVGElement(),this._renderer.appendChild(this._elementRef.nativeElement,e)}_clearSVGElement(){const e=this._elementRef.nativeElement,i=e.childNodes;for(let r=i.length-1;r>=0;r--){const s=i[r];"svg"===s.tagName?.toLowerCase()&&this._renderer.removeChild(e,s)}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Dk),v(Te),v($t))};static#t=this.\u0275dir=de({type:t,selectors:[["","antIcon",""]],inputs:{type:"type",theme:"theme",twoToneColor:"twoToneColor"},features:[ke]})}return t})();const xk={name:"check",theme:"outline",icon:''},Ek={name:"copy",theme:"outline",icon:''},kk={name:"ellipsis",theme:"outline",icon:''},Ak={name:"loading",theme:"outline",icon:''},Ok={name:"star",theme:"fill",icon:''},Pk={name:"upload",theme:"outline",icon:''},Hoe=[{name:"bars",theme:"outline",icon:''},{name:"calendar",theme:"outline",icon:''},{name:"caret-up",theme:"fill",icon:''},{name:"caret-up",theme:"outline",icon:''},{name:"caret-down",theme:"fill",icon:''},{name:"caret-down",theme:"outline",icon:''},{name:"check-circle",theme:"fill",icon:''},{name:"check-circle",theme:"outline",icon:''},xk,{name:"clock-circle",theme:"outline",icon:''},{name:"close-circle",theme:"outline",icon:''},{name:"close-circle",theme:"fill",icon:''},{name:"close",theme:"outline",icon:''},Ek,{name:"delete",theme:"outline",icon:''},{name:"double-left",theme:"outline",icon:''},{name:"double-right",theme:"outline",icon:''},{name:"down",theme:"outline",icon:''},{name:"edit",theme:"outline",icon:''},kk,{name:"exclamation-circle",theme:"fill",icon:''},{name:"exclamation-circle",theme:"outline",icon:''},{name:"eye",theme:"outline",icon:''},{name:"file",theme:"fill",icon:''},{name:"file",theme:"outline",icon:''},{name:"filter",theme:"fill",icon:''},{name:"info-circle",theme:"fill",icon:''},{name:"info-circle",theme:"outline",icon:''},{name:"left",theme:"outline",icon:''},Ak,{name:"paper-clip",theme:"outline",icon:''},{name:"question-circle",theme:"outline",icon:''},{name:"right",theme:"outline",icon:''},{name:"rotate-right",theme:"outline",icon:''},{name:"rotate-left",theme:"outline",icon:''},Ok,{name:"search",theme:"outline",icon:''},Ok,Pk,{name:"vertical-align-top",theme:"outline",icon:''},{name:"up",theme:"outline",icon:''},{name:"swap",theme:"outline",icon:''},{name:"swap-right",theme:"outline",icon:''},{name:"zoom-in",theme:"outline",icon:''},{name:"zoom-out",theme:"outline",icon:''}],Ik=new oe("nz_icons"),Nk=(new oe("nz_icon_default_twotone_color"),"#1890ff");let Vk=(()=>{class t extends Dk{get _disableDynamicLoading(){return!this.platform.isBrowser}ngOnDestroy(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=null)}normalizeSvgElement(e){e.getAttribute("viewBox")||this._renderer.setAttribute(e,"viewBox","0 0 1024 1024"),(!e.getAttribute("width")||!e.getAttribute("height"))&&(this._renderer.setAttribute(e,"width","1em"),this._renderer.setAttribute(e,"height","1em")),e.getAttribute("fill")||this._renderer.setAttribute(e,"fill","currentColor")}fetchFromIconfont(e){const{scriptUrl:i}=e;if(this._document&&!this.iconfontCache.has(i)){const o=this._renderer.createElement("script");this._renderer.setAttribute(o,"src",i),this._renderer.setAttribute(o,"data-namespace",i.replace(/^(https?|http):/g,"")),this._renderer.appendChild(this._document.body,o),this.iconfontCache.add(i)}}createIconfontIcon(e){return this._createSVGElementFromString(``)}constructor(e,i,o,r,s,a,c){super(e,s,a,i,[...Hoe,...c||[]]),this.nzConfigService=o,this.platform=r,this.configUpdated$=new N,this.iconfontCache=new Set,this.subscription=null,this.onConfigChange(),this.configDefaultTwotoneColor(),this.configDefaultTheme()}onConfigChange(){this.subscription=this.nzConfigService.getConfigChangeEventForComponent("icon").subscribe(()=>{this.configDefaultTwotoneColor(),this.configDefaultTheme(),this.configUpdated$.next()})}configDefaultTheme(){const e=this.getConfig();this.defaultTheme=e.nzTheme||"outline"}configDefaultTwotoneColor(){const i=this.getConfig().nzTwotoneColor||Nk;let o=Nk;i&&i.startsWith("#")&&(o=i),this.twoToneColor={primaryColor:o}}getConfig(){return this.nzConfigService.getConfigForComponent("icon")||{}}static#e=this.\u0275fac=function(i){return new(i||t)(R(Qa),R(_u),R(si),R(qn),R(t2,8),R(It,8),R(Ik,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Fk=new oe("nz_icons_patch");let Rk=(()=>{class t{constructor(e,i){this.extraIcons=e,this.rootIconService=i,this.patched=!1}doPatch(){this.patched||(this.extraIcons.forEach(e=>this.rootIconService.addIcon(e)),this.patched=!0)}static#e=this.\u0275fac=function(i){return new(i||t)(R(Fk,2),R(Vk))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),cn=(()=>{class t extends Zie{set nzSpin(e){this.spin=e}set nzType(e){this.type=e}set nzTheme(e){this.theme=e}set nzTwotoneColor(e){this.twoToneColor=e}set nzIconfont(e){this.iconfont=e}constructor(e,i,o,r,s,a){super(r,o,s),this.ngZone=e,this.changeDetectorRef=i,this.iconService=r,this.renderer=s,this.cacheClassName=null,this.nzRotate=0,this.spin=!1,this.destroy$=new N,a&&a.doPatch(),this.el=o.nativeElement}ngOnChanges(e){const{nzType:i,nzTwotoneColor:o,nzSpin:r,nzTheme:s,nzRotate:a}=e;i||o||r||s?this.changeIcon2():a?this.handleRotate(this.el.firstChild):this._setSVGElement(this.iconService.createIconfontIcon(`#${this.iconfont}`))}ngOnInit(){this.renderer.setAttribute(this.el,"class",`anticon ${this.el.className}`.trim())}ngAfterContentChecked(){if(!this.type){const e=this.el.children;let i=e.length;if(!this.type&&e.length)for(;i--;){const o=e[i];"svg"===o.tagName.toLowerCase()&&this.iconService.normalizeSvgElement(o)}}}ngOnDestroy(){this.destroy$.next()}changeIcon2(){this.setClassName(),this.ngZone.runOutsideAngular(()=>{ni(this._changeIcon()).pipe(I(this.destroy$)).subscribe({next:e=>{this.ngZone.run(()=>{this.changeDetectorRef.detectChanges(),e&&(this.setSVGData(e),this.handleSpin(e),this.handleRotate(e))})},error:Xu})})}handleSpin(e){this.spin||"loading"===this.type?this.renderer.addClass(e,"anticon-spin"):this.renderer.removeClass(e,"anticon-spin")}handleRotate(e){this.nzRotate?this.renderer.setAttribute(e,"style",`transform: rotate(${this.nzRotate}deg)`):this.renderer.removeAttribute(e,"style")}setClassName(){this.cacheClassName&&this.renderer.removeClass(this.el,this.cacheClassName),this.cacheClassName=`anticon-${this.type}`,this.renderer.addClass(this.el,this.cacheClassName)}setSVGData(e){this.renderer.setAttribute(e,"data-icon",this.type),this.renderer.setAttribute(e,"aria-hidden","true")}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Ue),v(Te),v(Vk),v($t),v(Rk,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-icon",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("anticon",!0)},inputs:{nzSpin:[2,"nzSpin","nzSpin",O],nzRotate:[2,"nzRotate","nzRotate",Pi],nzType:"nzType",nzTheme:"nzTheme",nzTwotoneColor:"nzTwotoneColor",nzIconfont:"nzIconfont"},exportAs:["nzIcon"],standalone:!0,features:[je,mt,ke]})}return t})(),On=(()=>{class t{static forRoot(e){return{ngModule:t,providers:[{provide:Ik,useValue:e}]}}static forChild(e){return{ngModule:t,providers:[Rk,{provide:Fk,useValue:e}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const Boe=["addListener","removeListener"],joe=["addEventListener","removeEventListener"],$oe=["on","off"];function nn(t,n,e,i){if(Ct(e)&&(i=e,e=void 0),i)return nn(t,n,e).pipe(fg(i));const[o,r]=function Woe(t){return Ct(t.addEventListener)&&Ct(t.removeEventListener)}(t)?joe.map(s=>a=>t[s](n,a,e)):function Yoe(t){return Ct(t.addListener)&&Ct(t.removeListener)}(t)?Boe.map(Lk(t,n)):function Uoe(t){return Ct(t.on)&&Ct(t.off)}(t)?$oe.map(Lk(t,n)):[];if(!o&&ug(t))return $n(s=>nn(s,n,e))(Ii(t));if(!o)throw new TypeError("Invalid event target");return new Ut(s=>{const a=(...c)=>s.next(1r(a)})}function Lk(t,n){return e=>i=>t[e](n,i)}const r2={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=r2;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new Ft(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=r2;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=r2;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0},_7=new class qoe extends A5{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class Goe extends k5{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=r2.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(r2.cancelAnimationFrame(e),n._scheduled=void 0)}});let b7,Koe=1;const H3={};function Hk(t){return t in H3&&(delete H3[t],!0)}const Joe={setImmediate(t){const n=Koe++;return H3[n]=!0,b7||(b7=Promise.resolve()),b7.then(()=>Hk(n)&&t()),n},clearImmediate(t){Hk(t)}},{setImmediate:Zoe,clearImmediate:Qoe}=Joe,B3={setImmediate(...t){const{delegate:n}=B3;return(n?.setImmediate||Zoe)(...t)},clearImmediate(t){const{delegate:n}=B3;return(n?.clearImmediate||Qoe)(t)},delegate:void 0},y7=new class ere extends A5{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class Xoe extends k5{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=B3.setImmediate(n.flush.bind(n,void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(B3.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});class ire{}class rre extends ire{constructor(n){super(),this._data=n}connect(){return _0(this._data)?this._data:We(this._data)}disconnect(){}}var ba=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(ba||{});const Bk=new oe("_ViewRepeater");class sre{constructor(){this.viewCacheSize=20,this._viewCache=[]}applyChanges(n,e,i,o,r){n.forEachOperation((s,a,c)=>{let l,u;null==s.previousIndex?(l=this._insertView(()=>i(s,a,c),c,e,o(s)),u=l?ba.INSERTED:ba.REPLACED):null==c?(this._detachAndCacheView(a,e),u=ba.REMOVED):(l=this._moveView(a,c,e,o(s)),u=ba.MOVED),r&&r({context:l?.context,operation:u,record:s})})}detach(){for(const n of this._viewCache)n.destroy();this._viewCache=[]}_insertView(n,e,i,o){const r=this._insertViewFromCache(e,i);if(r)return void(r.context.$implicit=o);const s=n();return i.createEmbeddedView(s.templateRef,s.context,s.index)}_detachAndCacheView(n,e){const i=e.detach(n);this._maybeCacheView(i,e)}_moveView(n,e,i,o){const r=i.get(n);return i.move(r,e),r.context.$implicit=o,r}_maybeCacheView(n,e){if(this._viewCache.length0?r/this._itemSize:0;if(e.end>o){const c=Math.ceil(i/this._itemSize),l=Math.max(0,Math.min(s,o-c));s!=l&&(s=l,r=l*this._itemSize,e.start=Math.floor(s)),e.end=Math.max(0,Math.min(o,e.start+c))}const a=r-e.start*this._itemSize;if(a0&&(e.end=Math.min(o,e.end+l),e.start=Math.max(0,Math.floor(s-this._minBufferPx/this._itemSize)))}}this._viewport.setRenderedRange(e),this._viewport.setRenderedContentOffset(this._itemSize*e.start),this._scrolledIndexChange.next(Math.floor(s))}}function dre(t){return t._scrollStrategy}let $k=(()=>{class t{constructor(){this._itemSize=20,this._minBufferPx=100,this._maxBufferPx=200,this._scrollStrategy=new lre(this.itemSize,this.minBufferPx,this.maxBufferPx)}get itemSize(){return this._itemSize}set itemSize(e){this._itemSize=Rs(e)}get minBufferPx(){return this._minBufferPx}set minBufferPx(e){this._minBufferPx=Rs(e)}get maxBufferPx(){return this._maxBufferPx}set maxBufferPx(e){this._maxBufferPx=Rs(e)}ngOnChanges(){this._scrollStrategy.updateItemAndBufferSize(this.itemSize,this.minBufferPx,this.maxBufferPx)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["cdk-virtual-scroll-viewport","itemSize",""]],inputs:{itemSize:"itemSize",minBufferPx:"minBufferPx",maxBufferPx:"maxBufferPx"},standalone:!0,features:[et([{provide:jk,useFactory:dre,deps:[Wt(()=>t)]}]),ke]})}return t})(),s2=(()=>{class t{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new N,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new Ut(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(_c(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):We()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(yt(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=Ni(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>nn(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static#e=this.\u0275fac=function(i){return new(i||t)(R(De),R(qn),R(It,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yk=(()=>{class t{constructor(e,i,o,r){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=r,this._destroyed=new N,this._elementScrolled=new Ut(s=>this.ngZone.runOutsideAngular(()=>nn(this.elementRef.nativeElement,"scroll").pipe(I(this._destroyed)).subscribe(s)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&Gu()!=ms.NORMAL?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),Gu()==ms.INVERTED?e.left=e.right:Gu()==ms.NEGATED&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;rE()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",r=this.elementRef.nativeElement;if("top"==e)return r.scrollTop;if("bottom"==e)return r.scrollHeight-r.clientHeight-r.scrollTop;const s=this.dir&&"rtl"==this.dir.value;return"start"==e?e=s?o:i:"end"==e&&(e=s?i:o),s&&Gu()==ms.INVERTED?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:s&&Gu()==ms.NEGATED?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(s2),v(De),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}return t})(),a2=(()=>{class t{constructor(e,i,o){this._platform=e,this._change=new N,this._changeListener=r=>{this._change.next(r)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const r=this._getWindow();r.addEventListener("resize",this._changeListener),r.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,r=o.getBoundingClientRect();return{top:-r.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-r.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(_c(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn),R(De),R(It,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Uk=new oe("VIRTUAL_SCROLLABLE");let pre=(()=>{class t extends Yk{constructor(e,i,o,r){super(e,i,o,r)}measureViewportSize(e){const i=this.elementRef.nativeElement;return"horizontal"===e?i.clientWidth:i.clientHeight}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(s2),v(De),v(wt,8))};static#t=this.\u0275dir=de({type:t,features:[mt]})}return t})();const mre=typeof requestAnimationFrame<"u"?_7:y7;let E1=(()=>{class t extends pre{get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this._calculateSpacerSize())}constructor(e,i,o,r,s,a,c,l){super(e,a,o,s),this.elementRef=e,this._changeDetectorRef=i,this._scrollStrategy=r,this.scrollable=l,this._platform=W(qn),this._detachedSubject=new N,this._renderedRangeSubject=new N,this._orientation="vertical",this.appendOnly=!1,this.scrolledIndexChange=new Ut(u=>this._scrollStrategy.scrolledIndexChange.subscribe(p=>Promise.resolve().then(()=>this.ngZone.run(()=>u.next(p))))),this.renderedRangeStream=this._renderedRangeSubject,this._totalContentSize=0,this._totalContentWidth="",this._totalContentHeight="",this._renderedRange={start:0,end:0},this._dataLength=0,this._viewportSize=0,this._renderedContentOffset=0,this._renderedContentOffsetNeedsRewrite=!1,this._isChangeDetectionPending=!1,this._runAfterChangeDetection=[],this._viewportChanges=Ft.EMPTY,this._injector=W(tn),this._isDestroyed=!1,this._viewportChanges=c.change().subscribe(()=>{this.checkViewportSize()}),this.scrollable||(this.elementRef.nativeElement.classList.add("cdk-virtual-scrollable"),this.scrollable=this)}ngOnInit(){this._platform.isBrowser&&(this.scrollable===this&&super.ngOnInit(),this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._measureViewportSize(),this._scrollStrategy.attach(this),this.scrollable.elementScrolled().pipe(gn(null),_c(0,mre),I(this._destroyed)).subscribe(()=>this._scrollStrategy.onContentScrolled()),this._markChangeDetectionNeeded()})))}ngOnDestroy(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),this._isDestroyed=!0,super.ngOnDestroy()}attach(e){this.ngZone.runOutsideAngular(()=>{this._forOf=e,this._forOf.dataStream.pipe(I(this._detachedSubject)).subscribe(i=>{const o=i.length;o!==this._dataLength&&(this._dataLength=o,this._scrollStrategy.onDataLengthChanged()),this._doChangeDetection()})})}detach(){this._forOf=null,this._detachedSubject.next()}getDataLength(){return this._dataLength}getViewportSize(){return this._viewportSize}getRenderedRange(){return this._renderedRange}measureBoundingClientRectWithScrollOffset(e){return this.getElementRef().nativeElement.getBoundingClientRect()[e]}setTotalContentSize(e){this._totalContentSize!==e&&(this._totalContentSize=e,this._calculateSpacerSize(),this._markChangeDetectionNeeded())}setRenderedRange(e){(function fre(t,n){return t.start==n.start&&t.end==n.end})(this._renderedRange,e)||(this.appendOnly&&(e={start:0,end:Math.max(this._renderedRange.end,e.end)}),this._renderedRangeSubject.next(this._renderedRange=e),this._markChangeDetectionNeeded(()=>this._scrollStrategy.onContentRendered()))}getOffsetToRenderedContentStart(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset}setRenderedContentOffset(e,i="to-start"){e=this.appendOnly&&"to-start"===i?0:e;const r="horizontal"==this.orientation,s=r?"X":"Y";let c=`translate${s}(${Number((r&&this.dir&&"rtl"==this.dir.value?-1:1)*e)}px)`;this._renderedContentOffset=e,"to-end"===i&&(c+=` translate${s}(-100%)`,this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=c&&(this._renderedContentTransform=c,this._markChangeDetectionNeeded(()=>{this._renderedContentOffsetNeedsRewrite?(this._renderedContentOffset-=this.measureRenderedContentSize(),this._renderedContentOffsetNeedsRewrite=!1,this.setRenderedContentOffset(this._renderedContentOffset)):this._scrollStrategy.onRenderedOffsetChanged()}))}scrollToOffset(e,i="auto"){const o={behavior:i};"horizontal"===this.orientation?o.start=e:o.top=e,this.scrollable.scrollTo(o)}scrollToIndex(e,i="auto"){this._scrollStrategy.scrollToIndex(e,i)}measureScrollOffset(e){let i;return i=this.scrollable==this?o=>super.measureScrollOffset(o):o=>this.scrollable.measureScrollOffset(o),Math.max(0,i(e??("horizontal"===this.orientation?"start":"top"))-this.measureViewportOffset())}measureViewportOffset(e){let i;const o="left",r="right",s="rtl"==this.dir?.value;i="start"==e?s?r:o:"end"==e?s?o:r:e||("horizontal"===this.orientation?"left":"top");const a=this.scrollable.measureBoundingClientRectWithScrollOffset(i);return this.elementRef.nativeElement.getBoundingClientRect()[i]-a}measureRenderedContentSize(){const e=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?e.offsetWidth:e.offsetHeight}measureRangeSize(e){return this._forOf?this._forOf.measureRangeSize(e,this.orientation):0}checkViewportSize(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()}_measureViewportSize(){this._viewportSize=this.scrollable.measureViewportSize(this.orientation)}_markChangeDetectionNeeded(e){e&&this._runAfterChangeDetection.push(e),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._doChangeDetection()})))}_doChangeDetection(){this._isDestroyed||this.ngZone.run(()=>{this._changeDetectorRef.markForCheck(),this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,Xa(()=>{this._isChangeDetectionPending=!1;const e=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(const i of e)i()},{injector:this._injector})})}_calculateSpacerSize(){this._totalContentHeight="horizontal"===this.orientation?"":`${this._totalContentSize}px`,this._totalContentWidth="horizontal"===this.orientation?`${this._totalContentSize}px`:""}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Ue),v(De),v(jk,8),v(wt,8),v(s2),v(a2),v(Uk,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(i,o){if(1&i&&ft(are,7),2&i){let r;Ae(r=Oe())&&(o._contentWrapper=r.first)}},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(i,o){2&i&&Q("cdk-virtual-scroll-orientation-horizontal","horizontal"===o.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==o.orientation)},inputs:{orientation:"orientation",appendOnly:[2,"appendOnly","appendOnly",O]},outputs:{scrolledIndexChange:"scrolledIndexChange"},standalone:!0,features:[et([{provide:Yk,useFactory:(e,i)=>e||i,deps:[[new ed,new H9(Uk)],t]}]),je,mt,me],ngContentSelectors:cre,decls:4,vars:4,consts:[["contentWrapper",""],[1,"cdk-virtual-scroll-content-wrapper"],[1,"cdk-virtual-scroll-spacer"]],template:function(i,o){1&i&&(Et(),f(0,"div",1,0),bt(2),m(),S(3,"div",2)),2&i&&(d(3),Lt("width",o._totalContentWidth)("height",o._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"],encapsulation:2,changeDetection:0})}return t})();function Wk(t,n,e){if(!e.getBoundingClientRect)return 0;const o=e.getBoundingClientRect();return"horizontal"===t?"start"===n?o.left:o.right:"start"===n?o.top:o.bottom}let Gk=(()=>{class t{get cdkVirtualForOf(){return this._cdkVirtualForOf}set cdkVirtualForOf(e){this._cdkVirtualForOf=e,function ore(t){return t&&"function"==typeof t.connect&&!(t instanceof vg)}(e)?this._dataSourceChanges.next(e):this._dataSourceChanges.next(new rre(_0(e)?e:Array.from(e||[])))}get cdkVirtualForTrackBy(){return this._cdkVirtualForTrackBy}set cdkVirtualForTrackBy(e){this._needsUpdate=!0,this._cdkVirtualForTrackBy=e?(i,o)=>e(i+(this._renderedRange?this._renderedRange.start:0),o):void 0}set cdkVirtualForTemplate(e){e&&(this._needsUpdate=!0,this._template=e)}get cdkVirtualForTemplateCacheSize(){return this._viewRepeater.viewCacheSize}set cdkVirtualForTemplateCacheSize(e){this._viewRepeater.viewCacheSize=Rs(e)}constructor(e,i,o,r,s,a){this._viewContainerRef=e,this._template=i,this._differs=o,this._viewRepeater=r,this._viewport=s,this.viewChange=new N,this._dataSourceChanges=new N,this.dataStream=this._dataSourceChanges.pipe(gn(null),function tre(){return dn((t,n)=>{let e,i=!1;t.subscribe(Zt(n,o=>{const r=e;e=o,i&&n.next([r,o]),i=!0}))})}(),mn(([c,l])=>this._changeDataSource(c,l)),function nre(t,n,e){let i,o=!1;return t&&"object"==typeof t?({bufferSize:i=1/0,windowTime:n=1/0,refCount:o=!1,scheduler:e}=t):i=t??1/0,wk({connector:()=>new fi(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}(1)),this._differ=null,this._needsUpdate=!1,this._destroyed=new N,this.dataStream.subscribe(c=>{this._data=c,this._onRenderedDataChange()}),this._viewport.renderedRangeStream.pipe(I(this._destroyed)).subscribe(c=>{this._renderedRange=c,this.viewChange.observers.length&&a.run(()=>this.viewChange.next(this._renderedRange)),this._onRenderedDataChange()}),this._viewport.attach(this)}measureRangeSize(e,i){if(e.start>=e.end)return 0;const o=e.start-this._renderedRange.start,r=e.end-e.start;let s,a;for(let c=0;c-1;c--){const l=this._viewContainerRef.get(c+o);if(l&&l.rootNodes.length){a=l.rootNodes[l.rootNodes.length-1];break}}return s&&a?Wk(i,"end",a)-Wk(i,"start",s):0}ngDoCheck(){if(this._differ&&this._needsUpdate){const e=this._differ.diff(this._renderedItems);e?this._applyChanges(e):this._updateContext(),this._needsUpdate=!1}}ngOnDestroy(){this._viewport.detach(),this._dataSourceChanges.next(void 0),this._dataSourceChanges.complete(),this.viewChange.complete(),this._destroyed.next(),this._destroyed.complete(),this._viewRepeater.detach()}_onRenderedDataChange(){this._renderedRange&&(this._renderedItems=this._data.slice(this._renderedRange.start,this._renderedRange.end),this._differ||(this._differ=this._differs.find(this._renderedItems).create((e,i)=>this.cdkVirtualForTrackBy?this.cdkVirtualForTrackBy(e,i):i)),this._needsUpdate=!0)}_changeDataSource(e,i){return e&&e.disconnect(this),this._needsUpdate=!0,i?i.connect(this):We()}_updateContext(){const e=this._data.length;let i=this._viewContainerRef.length;for(;i--;){const o=this._viewContainerRef.get(i);o.context.index=this._renderedRange.start+i,o.context.count=e,this._updateComputedContextProperties(o.context),o.detectChanges()}}_applyChanges(e){this._viewRepeater.applyChanges(e,this._viewContainerRef,(r,s,a)=>this._getEmbeddedViewArgs(r,a),r=>r.item),e.forEachIdentityChange(r=>{this._viewContainerRef.get(r.currentIndex).context.$implicit=r.item});const i=this._data.length;let o=this._viewContainerRef.length;for(;o--;){const r=this._viewContainerRef.get(o);r.context.index=this._renderedRange.start+o,r.context.count=i,this._updateComputedContextProperties(r.context)}}_updateComputedContextProperties(e){e.first=0===e.index,e.last=e.index===e.count-1,e.even=e.index%2==0,e.odd=!e.even}_getEmbeddedViewArgs(e,i){return{templateRef:this._template,context:{$implicit:e.item,cdkVirtualForOf:this._cdkVirtualForOf,index:-1,count:-1,first:!1,last:!1,odd:!1,even:!1},index:i}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt),v(q4),v(Bk),v(E1,4),v(De))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkVirtualFor","","cdkVirtualForOf",""]],inputs:{cdkVirtualForOf:"cdkVirtualForOf",cdkVirtualForTrackBy:"cdkVirtualForTrackBy",cdkVirtualForTemplate:"cdkVirtualForTemplate",cdkVirtualForTemplateCacheSize:"cdkVirtualForTemplateCacheSize"},standalone:!0,features:[et([{provide:Bk,useClass:sre}])]})}return t})(),C7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})(),w7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[_3,C7,_3,C7]})}return t})();function Pn(...t){const n=bu(t),e=function HJ(t,n){return"number"==typeof hg(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Ii(i[0]):s1(e)(ni(i,n)):bo}function l2(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const Kk=rE();class Are{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=ri(-this._previousScrollPosition.left),n.style.top=ri(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,o=this._document.body.style,r=i.scrollBehavior||"",s=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),Kk&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),Kk&&(i.scrollBehavior=r,o.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class Ore{constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(yt(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class Jk{enable(){}disable(){}attach(){}}function z7(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function Zk(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class Pre{constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();z7(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Ire=(()=>{class t{constructor(e,i,o,r){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new Jk,this.close=s=>new Ore(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new Are(this._viewportRuler,this._document),this.reposition=s=>new Pre(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=r}static#e=this.\u0275fac=function(i){return new(i||t)(R(s2),R(a2),R(De),R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class S7{constructor(n){if(this.scrollStrategy=new Jk,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class Fn{constructor(n,e,i,o,r){this.offsetX=i,this.offsetY=o,this.panelClass=r,this.originX=n.originX,this.originY=n.originY,this.overlayX=e.overlayX,this.overlayY=e.overlayY}}class Nre{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let Qk=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Vre=(()=>{class t extends Qk{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const r=this._attachedOverlays;for(let s=r.length-1;s>-1;s--)if(r[s]._keydownEvents.observers.length>0){const a=r[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>a.next(o)):a.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R(De,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Fre=(()=>{class t extends Qk{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=r=>{this._pointerDownEventTarget=Io(r)},this._clickListener=r=>{const s=Io(r),a="click"===r.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const c=this._attachedOverlays.slice();for(let l=c.length-1;l>-1;l--){const u=c[l];if(u._outsidePointerEvents.observers.length<1||!u.hasAttached())continue;if(Xk(u.overlayElement,s)||Xk(u.overlayElement,a))break;const p=u._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>p.next(r)):p.next(r)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R(qn),R(De,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Xk(t,n){const e=typeof ShadowRoot<"u"&&ShadowRoot;let i=n;for(;i;){if(i===t)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let eA=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||sE()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;rthis._backdropClick.next(_),this._backdropTransitionendHandler=_=>{this._disposeBackdrop(_.target)},this._keydownEvents=new N,this._outsidePointerEvents=new N,this._renders=new N,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy,this._afterRenderRef=Pm(()=>function bC(t,n){!n&&_h();const e=n?.injector??W(tn);if(!ko(e))return _C;mo("NgAfterRender");const i=e.get(Hd),o=i.handler??=new CC,r=n?.phase??ia.MixedReadWrite,s=()=>{o.unregister(c),a()},a=e.get(yl).onDestroy(s),c=Er(e,()=>new yC(r,t));return o.register(c),{destroy:s}}(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),Xa(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=ri(this._config.width),n.height=ri(this._config.height),n.minWidth=ri(this._config.minWidth),n.minHeight=ri(this._config.minHeight),n.maxWidth=ri(this._config.maxWidth),n.maxHeight=ri(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const o=Uu(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{const n=this._renders.pipe(I(Pn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const tA="cdk-overlay-connected-position-bounding-box",Rre=/([A-Za-z%]+)$/;class Lre{get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new N,this._resizeSubscription=Ft.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(tA),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let s;for(let a of this._preferredPositions){let c=this._getOriginPoint(n,o,a),l=this._getOverlayPoint(c,e,a),u=this._getOverlayFit(l,e,i,a);if(u.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,c);this._canFitWithFlexibleDimensions(u,l,i)?r.push({position:a,origin:c,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(c,a)}):(!s||s.overlayFit.visibleAreac&&(c=u,a=l)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Sc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(tA),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const s=this._isRtl()?n.right:n.left,a=this._isRtl()?n.left:n.right;o="start"==i.originX?s:a}return e.left<0&&(o-=e.left),r="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(r-=e.top),{x:o,y:r}}_getOverlayPoint(n,e,i){let o,r;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,r="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+o,y:n.y+r}}_getOverlayFit(n,e,i,o){const r=iA(e);let{x:s,y:a}=n,c=this._getOffset(o,"x"),l=this._getOffset(o,"y");c&&(s+=c),l&&(a+=l);let _=0-a,b=a+r.height-i.height,y=this._subtractOverflows(r.width,0-s,s+r.width-i.width),z=this._subtractOverflows(r.height,_,b),E=y*z;return{visibleArea:E,isCompletelyWithinViewport:r.width*r.height===E,fitsInViewportVertically:z===r.height,fitsInViewportHorizontally:y==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,s=nA(this._overlayRef.getConfig().minHeight),a=nA(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=s&&s<=o)&&(n.fitsInViewportHorizontally||null!=a&&a<=r)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const o=iA(e),r=this._viewportRect,s=Math.max(n.x+o.width-r.width,0),a=Math.max(n.y+o.height-r.height,0),c=Math.max(r.top-i.top-n.y,0),l=Math.max(r.left-i.left-n.x,0);let u=0,p=0;return u=o.width<=r.width?l||-s:n.xy&&!this._isInitialRender&&!this._growAfterOpen&&(s=n.y-y/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)_=i.width-n.x+2*this._viewportMargin,u=n.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)p=n.x,u=i.right-n.x;else{const b=Math.min(i.right-n.x+i.left,n.x),y=this._lastBoundingBoxSize.width;u=2*b,p=n.x-b,u>y&&!this._isInitialRender&&!this._growAfterOpen&&(p=n.x-y/2)}return{top:s,left:p,bottom:a,right:_,width:u,height:r}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;o.height=ri(i.height),o.top=ri(i.top),o.bottom=ri(i.bottom),o.width=ri(i.width),o.left=ri(i.left),o.right=ri(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",r&&(o.maxHeight=ri(r)),s&&(o.maxWidth=ri(s))}this._lastBoundingBoxSize=i,Sc(this._boundingBox.style,o)}_resetBoundingBoxStyles(){Sc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Sc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(o){const u=this._viewportRuler.getViewportScrollPosition();Sc(i,this._getExactOverlayY(e,n,u)),Sc(i,this._getExactOverlayX(e,n,u))}else i.position="static";let a="",c=this._getOffset(e,"x"),l=this._getOffset(e,"y");c&&(a+=`translateX(${c}px) `),l&&(a+=`translateY(${l}px)`),i.transform=a.trim(),s.maxHeight&&(o?i.maxHeight=ri(s.maxHeight):r&&(i.maxHeight="")),s.maxWidth&&(o?i.maxWidth=ri(s.maxWidth):r&&(i.maxWidth="")),Sc(this._pane.style,i)}_getExactOverlayY(n,e,i){let o={top:"",bottom:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),"bottom"===n.overlayY?o.bottom=this._document.documentElement.clientHeight-(r.y+this._overlayRect.height)+"px":o.top=ri(r.y),o}_getExactOverlayX(n,e,i){let s,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),s=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===s?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=ri(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:Zk(n,i),isOriginOutsideView:z7(n,i),isOverlayClipped:Zk(e,i),isOverlayOutsideView:z7(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,o)=>i-Math.max(o,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Uu(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof Te)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function Sc(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function nA(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(Rre);return e&&"px"!==e?null:parseFloat(n)}return t||null}function iA(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const oA="cdk-global-overlay-wrapper";class Bre{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(oA),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:r,maxWidth:s,maxHeight:a}=i,c=!("100%"!==o&&"100vw"!==o||s&&"100%"!==s&&"100vw"!==s),l=!("100%"!==r&&"100vh"!==r||a&&"100%"!==a&&"100vh"!==a),u=this._xPosition,p=this._xOffset,_="rtl"===this._overlayRef.getConfig().direction;let b="",y="",z="";c?z="flex-start":"center"===u?(z="center",_?y=p:b=p):_?"left"===u||"end"===u?(z="flex-end",b=p):("right"===u||"start"===u)&&(z="flex-start",y=p):"left"===u||"start"===u?(z="flex-start",b=p):("right"===u||"end"===u)&&(z="flex-end",y=p),n.position=this._cssPosition,n.marginLeft=c?"0":b,n.marginTop=l?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=c?"0":y,e.justifyContent=z,e.alignItems=l?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(oA),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let jre=(()=>{class t{constructor(e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r}global(){return new Bre}flexibleConnectedTo(e){return new Lre(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static#e=this.\u0275fac=function(i){return new(i||t)(R(a2),R(It),R(qn),R(eA))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),$re=0,ya=(()=>{class t{constructor(e,i,o,r,s,a,c,l,u,p,_,b){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=r,this._keyboardDispatcher=s,this._injector=a,this._ngZone=c,this._document=l,this._directionality=u,this._location=p,this._outsideClickDispatcher=_,this._animationsModuleType=b}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),r=this._createPortalOutlet(o),s=new S7(e);return s.direction=s.direction||this._directionality.value,new W3(r,i,o,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType,this._injector.get(Li))}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+$re++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Ko)),new bne(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(R(Ire),R(eA),R(Il),R(jre),R(Vre),R(tn),R(De),R(It),R(wt),R(o1),R(Fre),R(ta,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Yre=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],rA=new oe("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const t=W(ya);return()=>t.scrollStrategies.reposition()}});let Tc=(()=>{class t{constructor(e){this.elementRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}return t})(),Mc=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}constructor(e,i,o,r,s){this._overlay=e,this._dir=s,this._backdropSubscription=Ft.EMPTY,this._attachSubscription=Ft.EMPTY,this._detachSubscription=Ft.EMPTY,this._positionSubscription=Ft.EMPTY,this._disposeOnNavigation=!1,this._ngZone=W(De),this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.hasBackdrop=!1,this.lockPosition=!1,this.flexibleDimensions=!1,this.growAfterOpen=!1,this.push=!1,this.backdropClick=new H,this.positionChange=new H,this.attach=new H,this.detach=new H,this.overlayKeydown=new H,this.overlayOutsideClick=new H,this._templatePortal=new Zu(i,o),this._scrollStrategyFactory=r,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Yre);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!l2(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{const o=this._getOriginElement(),r=Io(i);(!o||o!==r&&!o.contains(r))&&this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new S7({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof Tc?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Tc?this.origin.elementRef.nativeElement:this.origin instanceof Te?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function gre(t,n=!1){return dn((e,i)=>{let o=0;e.subscribe(Zt(i,r=>{const s=t(r,o++);(s||n)&&i.next(r),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(v(ya),v(Gt),v(Gn),v(rA),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",O],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",O],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",O],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",O],push:[2,"cdkConnectedOverlayPush","push",O],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",O]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[je,ke]})}return t})();const Wre={provide:rA,deps:[ya],useFactory:function Ure(t){return()=>t.scrollStrategies.reposition()}};let d2=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[ya,Wre],imports:[_3,z3,w7,w7]})}return t})();function Gre(t,n){1&t&&S(0,"span",10)}function qre(t,n){1&t&&S(0,"span",11)}function Kre(t,n){1&t&&S(0,"span",12)}function Jre(t,n){1&t&&S(0,"span",13)}function Zre(t,n){1&t&&S(0,"span",14)}function Qre(t,n){if(1&t&&($e(0),S(1,"span",15),Ye()),2&t){const e=g();d(),h("innerHTML",e.instance.content,Wn)}}function Xre(t,n){if(1&t){const e=U();f(0,"nz-message",2),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)}let ese=0;class sA{constructor(n,e,i){this.nzSingletonService=n,this.overlay=e,this.injector=i}remove(n){this.container&&(n?this.container.remove(n):this.container.removeAll())}getInstanceId(){return`${this.componentPrefix}-${ese++}`}withContainer(n){let e=this.nzSingletonService.getSingletonWithKey(this.componentPrefix);if(e)return e;const i=this.overlay.create({hasBackdrop:!1,scrollStrategy:this.overlay.scrollStrategies.noop(),positionStrategy:this.overlay.position().global()}),o=new Ju(n,null,this.injector),r=i.attach(o);return i.hostElement.style.zIndex="1010",e||(this.container=e=r.instance,this.nzSingletonService.registerSingletonWithKey(this.componentPrefix,e),this.container.afterAllInstancesRemoved.subscribe(()=>{this.container=void 0,this.nzSingletonService.unregisterSingletonWithKey(this.componentPrefix),i.dispose()})),e}}let aA=(()=>{class t{constructor(e,i){this.cdr=e,this.nzConfigService=i,this.instances=[],this._afterAllInstancesRemoved=new N,this.afterAllInstancesRemoved=this._afterAllInstancesRemoved.asObservable(),this.destroy$=new N,this.updateConfig()}ngOnInit(){this.subscribeConfigChange()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}create(e){const i=this.onCreate(e);return this.instances.length>=this.config.nzMaxStack&&(this.instances=this.instances.slice(1)),this.instances=[...this.instances,i],this.readyInstances(),i}remove(e,i=!1){this.instances.map((o,r)=>({index:r,instance:o})).filter(({instance:o})=>o.messageId===e).forEach(({index:o,instance:r})=>{this.instances.splice(o,1),this.instances=[...this.instances],this.onRemove(r,i),this.readyInstances()}),this.instances.length||this.onAllInstancesRemoved()}removeAll(){this.instances.forEach(e=>this.onRemove(e,!1)),this.instances=[],this.readyInstances(),this.onAllInstancesRemoved()}onCreate(e){return e.options=this.mergeOptions(e.options),e.onClose=new N,e}onRemove(e,i){e.onClose.next(i),e.onClose.complete()}onAllInstancesRemoved(){this._afterAllInstancesRemoved.next(),this._afterAllInstancesRemoved.complete()}readyInstances(){this.cdr.detectChanges()}mergeOptions(e){const{nzDuration:i,nzAnimate:o,nzPauseOnHover:r}=this.config;return{nzDuration:i,nzAnimate:o,nzPauseOnHover:r,...e}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(si))};static#t=this.\u0275dir=de({type:t})}return t})(),cA=(()=>{class t{constructor(e){this.cdr=e,this.destroyed=new H,this.animationStateChanged=new N,this.userAction=!1}ngOnInit(){this.options=this.instance.options,this.options.nzAnimate&&(this.instance.state="enter",this.animationStateChanged.pipe(yt(e=>"done"===e.phaseName&&"leave"===e.toState),io(1)).subscribe(()=>{clearTimeout(this.closeTimer),this.destroyed.next({id:this.instance.messageId,userAction:this.userAction})})),this.autoClose=this.options.nzDuration>0,this.autoClose&&(this.initErase(),this.startEraseTimeout())}ngOnDestroy(){this.autoClose&&this.clearEraseTimeout(),this.animationStateChanged.complete()}onEnter(){this.autoClose&&this.options.nzPauseOnHover&&(this.clearEraseTimeout(),this.updateTTL())}onLeave(){this.autoClose&&this.options.nzPauseOnHover&&this.startEraseTimeout()}destroy(e=!1){this.userAction=e,this.options.nzAnimate?(this.instance.state="leave",this.cdr.detectChanges(),this.closeTimer=setTimeout(()=>{this.closeTimer=void 0,this.destroyed.next({id:this.instance.messageId,userAction:e})},200)):this.destroyed.next({id:this.instance.messageId,userAction:e})}initErase(){this.eraseTTL=this.options.nzDuration,this.eraseTimingStart=Date.now()}updateTTL(){this.autoClose&&(this.eraseTTL-=Date.now()-this.eraseTimingStart)}startEraseTimeout(){this.eraseTTL>0?(this.clearEraseTimeout(),this.eraseTimer=setTimeout(()=>this.destroy(),this.eraseTTL),this.eraseTimingStart=Date.now()):this.destroy()}clearEraseTimeout(){null!==this.eraseTimer&&(clearTimeout(this.eraseTimer),this.eraseTimer=void 0)}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275dir=de({type:t})}return t})(),lA=(()=>{class t extends cA{constructor(e){super(e),this.destroyed=new H}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-message"]],inputs:{instance:"instance"},outputs:{destroyed:"destroyed"},exportAs:["nzMessage"],standalone:!0,features:[mt,me],decls:10,vars:9,consts:[[1,"ant-message-notice",3,"mouseenter","mouseleave"],[1,"ant-message-notice-content"],[1,"ant-message-custom-content",3,"ngClass"],[3,"ngSwitch"],["nz-icon","","nzType","check-circle",4,"ngSwitchCase"],["nz-icon","","nzType","info-circle",4,"ngSwitchCase"],["nz-icon","","nzType","exclamation-circle",4,"ngSwitchCase"],["nz-icon","","nzType","close-circle",4,"ngSwitchCase"],["nz-icon","","nzType","loading",4,"ngSwitchCase"],[4,"nzStringTemplateOutlet"],["nz-icon","","nzType","check-circle"],["nz-icon","","nzType","info-circle"],["nz-icon","","nzType","exclamation-circle"],["nz-icon","","nzType","close-circle"],["nz-icon","","nzType","loading"],[3,"innerHTML"]],template:function(i,o){1&i&&(f(0,"div",0),D("@moveUpMotion.done",function(s){return o.animationStateChanged.next(s)})("mouseenter",function(){return o.onEnter()})("mouseleave",function(){return o.onLeave()}),f(1,"div",1)(2,"div",2),$e(3,3),w(4,Gre,1,0,"span",4)(5,qre,1,0,"span",5)(6,Kre,1,0,"span",6)(7,Jre,1,0,"span",7)(8,Zre,1,0,"span",8),Ye(),w(9,Qre,2,1,"ng-container",9),m()()()),2&i&&(h("@moveUpMotion",o.instance.state),d(2),h("ngClass","ant-message-"+o.instance.type),d(),h("ngSwitch",o.instance.type),d(),h("ngSwitchCase","success"),d(),h("ngSwitchCase","info"),d(),h("ngSwitchCase","warning"),d(),h("ngSwitchCase","error"),d(),h("ngSwitchCase","loading"),d(),h("nzStringTemplateOutlet",o.instance.content))},dependencies:[Zo,lc,fu,On,cn,Tn,Sn],encapsulation:2,data:{animation:[Wne]},changeDetection:0})}return t})();const G3="message",tse={nzAnimate:!0,nzDuration:3e3,nzMaxStack:7,nzPauseOnHover:!0,nzTop:24,nzDirection:"ltr"};let dA=(()=>{class t extends aA{constructor(e,i){super(e,i),this.dir="ltr";const o=this.nzConfigService.getConfigForComponent(G3);this.dir=o?.nzDirection||"ltr"}subscribeConfigChange(){this.nzConfigService.getConfigChangeEventForComponent(G3).pipe(I(this.destroy$)).subscribe(()=>{this.updateConfig();const e=this.nzConfigService.getConfigForComponent(G3);if(e){const{nzDirection:i}=e;this.dir=i||this.dir}})}updateConfig(){this.config={...tse,...this.config,...this.nzConfigService.getConfigForComponent(G3)},this.top=D1(this.config.nzTop),this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(si))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-message-container"]],exportAs:["nzMessageContainer"],standalone:!0,features:[mt,me],decls:2,vars:5,consts:[[1,"ant-message"],[3,"instance","destroyed",4,"ngFor","ngForOf"],[3,"destroyed","instance"]],template:function(i,o){1&i&&(f(0,"div",0),w(1,Xre,1,1,"nz-message",1),m()),2&i&&(Lt("top",o.top),Q("ant-message-rtl","rtl"===o.dir),d(),h("ngForOf",o.instances))},dependencies:[lA,zn],encapsulation:2,changeDetection:0})}return t})(),nse=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[dA,lA]})}return t})(),er=(()=>{class t extends sA{constructor(e,i,o){super(e,i,o),this.componentPrefix="message-"}success(e,i){return this.createInstance({type:"success",content:e},i)}error(e,i){return this.createInstance({type:"error",content:e},i)}info(e,i){return this.createInstance({type:"info",content:e},i)}warning(e,i){return this.createInstance({type:"warning",content:e},i)}loading(e,i){return this.createInstance({type:"loading",content:e},i)}create(e,i,o){return this.createInstance({type:e,content:i},o)}createInstance(e,i){return this.container=this.withContainer(dA),this.container.create({...e,createdAt:new Date,messageId:this.getInstanceId(),options:i})}static#e=this.\u0275fac=function(i){return new(i||t)(R(lE),R(ya),R(tn))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Kt={top:new Fn({originX:"center",originY:"top"},{overlayX:"center",overlayY:"bottom"}),topCenter:new Fn({originX:"center",originY:"top"},{overlayX:"center",overlayY:"bottom"}),topLeft:new Fn({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),topRight:new Fn({originX:"end",originY:"top"},{overlayX:"end",overlayY:"bottom"}),right:new Fn({originX:"end",originY:"center"},{overlayX:"start",overlayY:"center"}),rightTop:new Fn({originX:"end",originY:"top"},{overlayX:"start",overlayY:"top"}),rightBottom:new Fn({originX:"end",originY:"bottom"},{overlayX:"start",overlayY:"bottom"}),bottom:new Fn({originX:"center",originY:"bottom"},{overlayX:"center",overlayY:"top"}),bottomCenter:new Fn({originX:"center",originY:"bottom"},{overlayX:"center",overlayY:"top"}),bottomLeft:new Fn({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"top"}),bottomRight:new Fn({originX:"end",originY:"bottom"},{overlayX:"end",overlayY:"top"}),left:new Fn({originX:"start",originY:"center"},{overlayX:"end",overlayY:"center"}),leftTop:new Fn({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"}),leftBottom:new Fn({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"bottom"})},uA=[Kt.top,Kt.right,Kt.bottom,Kt.left];function q3(t){for(const n in Kt)if(t.connectionPair.originX===Kt[n].originX&&t.connectionPair.originY===Kt[n].originY&&t.connectionPair.overlayX===Kt[n].overlayX&&t.connectionPair.overlayY===Kt[n].overlayY)return n}new Fn({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"bottom"}),new Fn({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"bottom"}),new Fn({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"top"}),new Fn({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"top"},void 0,2),new Fn({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"},void 0,-2),new Fn({originX:"end",originY:"bottom"},{overlayX:"end",overlayY:"top"},void 0,2),new Fn({originX:"end",originY:"top"},{overlayX:"end",overlayY:"bottom"},void 0,-2);let J3=(()=>{class t{constructor(e,i){this.cdkConnectedOverlay=e,this.nzDestroyService=i,this.nzArrowPointAtCenter=!1,this.cdkConnectedOverlay.backdropClass="nz-overlay-transparent-backdrop",this.cdkConnectedOverlay.positionChange.pipe(I(this.nzDestroyService)).subscribe(o=>{this.nzArrowPointAtCenter&&this.updateArrowPosition(o)})}updateArrowPosition(e){const i=this.getOriginRect(),o=q3(e);let r=0,s=0;"topLeft"===o||"bottomLeft"===o?r=i.width/2-14:"topRight"===o||"bottomRight"===o?r=-(i.width/2-14):"leftTop"===o||"rightTop"===o?s=i.height/2-10:("leftBottom"===o||"rightBottom"===o)&&(s=-(i.height/2-10)),(this.cdkConnectedOverlay.offsetX!==r||this.cdkConnectedOverlay.offsetY!==s)&&(this.cdkConnectedOverlay.offsetY=s,this.cdkConnectedOverlay.offsetX=r,this.cdkConnectedOverlay.overlayRef.updatePosition())}getFlexibleConnectedPositionStrategyOrigin(){return this.cdkConnectedOverlay.origin instanceof Tc?this.cdkConnectedOverlay.origin.elementRef:this.cdkConnectedOverlay.origin}getOriginRect(){const e=this.getFlexibleConnectedPositionStrategyOrigin();if(e instanceof Te)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();const i=e.width||0,o=e.height||0;return{top:e.y,bottom:e.y+o,left:e.x,right:e.x+i,height:o,width:i}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Mc),v(No))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkConnectedOverlay","","nzConnectedOverlay",""]],inputs:{nzArrowPointAtCenter:[2,"nzArrowPointAtCenter","nzArrowPointAtCenter",O]},exportAs:["nzConnectedOverlay"],features:[et([No]),je]})}return t})(),u2=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})(),mi=(()=>{class t{setHiddenAttribute(){this.hidden?this.renderer.setAttribute(this.elementRef.nativeElement,"hidden","string"==typeof this.hidden?this.hidden:""):this.renderer.removeAttribute(this.elementRef.nativeElement,"hidden")}constructor(e,i){this.elementRef=e,this.renderer=i,this.hidden=null,this.renderer.setAttribute(this.elementRef.nativeElement,"hidden","")}ngOnChanges(){this.setHiddenAttribute()}ngAfterViewInit(){this.setHiddenAttribute()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-button",""],["nz-button-group"],["","nz-icon",""],["","nz-menu-item",""],["","nz-submenu",""],["nz-select-top-control"],["nz-select-placeholder"],["nz-input-group"]],inputs:{hidden:"hidden"},standalone:!0,features:[ke]})}return t})(),ose=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();class rse{get waveAttributeName(){return this.insertExtraNode?"ant-click-animating":"ant-click-animating-without-extra-node"}constructor(n,e,i,o,r){this.triggerElement=n,this.ngZone=e,this.insertExtraNode=i,this.platformId=o,this.cspNonce=r,this.waveTransitionDuration=400,this.styleForPseudo=null,this.extraNode=null,this.lastTime=0,this.onClick=s=>{!this.triggerElement||!this.triggerElement.getAttribute||this.triggerElement.getAttribute("disabled")||"INPUT"===s.target.tagName||this.triggerElement.className.indexOf("disabled")>=0||this.fadeOutWave()},this.platform=new qn(this.platformId),this.clickHandler=this.onClick.bind(this),this.bindTriggerEvent()}bindTriggerEvent(){this.platform.isBrowser&&this.ngZone.runOutsideAngular(()=>{this.removeTriggerEvent(),this.triggerElement&&this.triggerElement.addEventListener("click",this.clickHandler,!0)})}removeTriggerEvent(){this.triggerElement&&this.triggerElement.removeEventListener("click",this.clickHandler,!0)}removeStyleAndExtraNode(){this.styleForPseudo&&document.body.contains(this.styleForPseudo)&&(document.body.removeChild(this.styleForPseudo),this.styleForPseudo=null),this.insertExtraNode&&this.triggerElement.contains(this.extraNode)&&this.triggerElement.removeChild(this.extraNode)}destroy(){this.removeTriggerEvent(),this.removeStyleAndExtraNode()}fadeOutWave(){const n=this.triggerElement,e=this.getWaveColor(n);n.setAttribute(this.waveAttributeName,"true"),!(Date.now(){n.removeAttribute(this.waveAttributeName),this.removeStyleAndExtraNode()},this.waveTransitionDuration))}isValidColor(n){return!!n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&this.isNotGrey(n)&&!/rgba\(\d*, \d*, \d*, 0\)/.test(n)&&"transparent"!==n}isNotGrey(n){const e=n.match(/rgba?\((\d*), (\d*), (\d*)(, [\.\d]*)?\)/);return!(e&&e[1]&&e[2]&&e[3]&&e[1]===e[2]&&e[2]===e[3])}getWaveColor(n){const e=getComputedStyle(n);return e.getPropertyValue("border-top-color")||e.getPropertyValue("border-color")||e.getPropertyValue("background-color")}runTimeoutOutsideZone(n,e){this.ngZone.runOutsideAngular(()=>setTimeout(n,e))}}const sse={disabled:!1},hA=new oe("nz-wave-global-options");function ase(t){return function nd(t){return{\u0275providers:t}}([{provide:hA,useValue:t}])}let tr=(()=>{class t{get disabled(){return this.waveDisabled}get rendererRef(){return this.waveRenderer}constructor(e,i,o,r,s,a){this.ngZone=e,this.elementRef=i,this.config=o,this.animationType=r,this.platformId=s,this.cspNonce=a,this.nzWaveExtraNode=!1,this.waveDisabled=!1,this.waveDisabled=this.isConfigDisabled()}isConfigDisabled(){let e=!1;return this.config&&"boolean"==typeof this.config.disabled&&(e=this.config.disabled),"NoopAnimations"===this.animationType&&(e=!0),e}ngOnDestroy(){this.waveRenderer&&this.waveRenderer.destroy()}ngOnInit(){this.renderWaveIfEnabled()}renderWaveIfEnabled(){!this.waveDisabled&&this.elementRef.nativeElement&&(this.waveRenderer=new rse(this.elementRef.nativeElement,this.ngZone,this.nzWaveExtraNode,this.platformId,this.cspNonce))}disable(){this.waveDisabled=!0,this.waveRenderer&&(this.waveRenderer.removeTriggerEvent(),this.waveRenderer.removeStyleAndExtraNode())}enable(){this.waveDisabled=this.isConfigDisabled()||!1,this.waveRenderer&&this.waveRenderer.bindTriggerEvent()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(hA,8),v(ta,8),v(Ir),v(vd,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-wave",""],["button","nz-button","",3,"nzType","link",3,"nzType","text"]],inputs:{nzWaveExtraNode:"nzWaveExtraNode"},exportAs:["nzWave"],standalone:!0})}return t})(),pA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[ase(sse)]})}return t})();const cse=["nz-button",""],lse=["*"];function dse(t,n){1&t&&S(0,"span",0)}let nr=(()=>{class t{insertSpan(e,i){e.forEach(o=>{if("#text"===o.nodeName){const r=i.createElement("span"),s=i.parentNode(o);i.insertBefore(s,r,o),i.appendChild(r,o)}})}get iconOnly(){const e=Array.from(this.elementRef?.nativeElement?.childNodes||[]),i=e.every(r=>"#text"!==r.nodeName),o=0==e.filter(r=>!("#comment"===r.nodeName||r?.attributes?.getNamedItem("nz-icon"))).length;return!!this.nzIconDirectiveElement&&o&&i}constructor(e,i,o,r,s,a){this.ngZone=e,this.elementRef=i,this.cdr=o,this.renderer=r,this.nzConfigService=s,this.directionality=a,this._nzModuleName="button",this.nzBlock=!1,this.nzGhost=!1,this.nzSearch=!1,this.nzLoading=!1,this.nzDanger=!1,this.disabled=!1,this.tabIndex=null,this.nzType=null,this.nzShape=null,this.nzSize="default",this.dir="ltr",this.destroy$=new N,this.loading$=new N,this.nzConfigService.getConfigChangeEventForComponent("button").pipe(I(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click",{capture:!0}).pipe(I(this.destroy$)).subscribe(e=>{(this.disabled&&"A"===e.target?.tagName||this.nzLoading)&&(e.preventDefault(),e.stopImmediatePropagation())})})}ngOnChanges(e){const{nzLoading:i}=e;i&&this.loading$.next(this.nzLoading)}ngAfterViewInit(){this.insertSpan(this.elementRef.nativeElement.childNodes,this.renderer)}ngAfterContentInit(){this.loading$.pipe(gn(this.nzLoading),yt(()=>!!this.nzIconDirectiveElement),I(this.destroy$)).subscribe(e=>{const i=this.nzIconDirectiveElement.nativeElement;e?this.renderer.setStyle(i,"display","none"):this.renderer.removeStyle(i,"display")})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(Ue),v($t),v(si),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["button","nz-button",""],["a","nz-button",""]],contentQueries:function(i,o,r){if(1&i&&fn(r,cn,5,Te),2&i){let s;Ae(s=Oe())&&(o.nzIconDirectiveElement=s.first)}},hostAttrs:[1,"ant-btn"],hostVars:34,hostBindings:function(i,o){2&i&&(Pt("tabindex",o.disabled?-1:null===o.tabIndex?null:o.tabIndex)("disabled",o.disabled||null),Q("ant-btn-default","default"===o.nzType)("ant-btn-primary","primary"===o.nzType)("ant-btn-dashed","dashed"===o.nzType)("ant-btn-link","link"===o.nzType)("ant-btn-text","text"===o.nzType)("ant-btn-circle","circle"===o.nzShape)("ant-btn-round","round"===o.nzShape)("ant-btn-lg","large"===o.nzSize)("ant-btn-sm","small"===o.nzSize)("ant-btn-dangerous",o.nzDanger)("ant-btn-loading",o.nzLoading)("ant-btn-background-ghost",o.nzGhost)("ant-btn-block",o.nzBlock)("ant-input-search-button",o.nzSearch)("ant-btn-rtl","rtl"===o.dir)("ant-btn-icon-only",o.iconOnly))},inputs:{nzBlock:[2,"nzBlock","nzBlock",O],nzGhost:[2,"nzGhost","nzGhost",O],nzSearch:[2,"nzSearch","nzSearch",O],nzLoading:[2,"nzLoading","nzLoading",O],nzDanger:[2,"nzDanger","nzDanger",O],disabled:[2,"disabled","disabled",O],tabIndex:"tabIndex",nzType:"nzType",nzShape:"nzShape",nzSize:"nzSize"},exportAs:["nzButton"],standalone:!0,features:[je,ke,me],attrs:cse,ngContentSelectors:lse,decls:2,vars:1,consts:[["nz-icon","","nzType","loading"]],template:function(i,o){1&i&&(Et(),w(0,dse,1,0,"span",0),bt(1)),2&i&&he(o.nzLoading?0:-1)},dependencies:[On,cn],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzSize",void 0),t})(),h2=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[nr,ose,pA]})}return t})();class Fo{static#e=this.formats={B:{max:1024},kB:{max:Math.pow(1024,2),prev:"B"},KB:{max:Math.pow(1024,2),prev:"B"},MB:{max:Math.pow(1024,3),prev:"kB"},GB:{max:Math.pow(1024,4),prev:"MB"},TB:{max:Number.MAX_SAFE_INTEGER,prev:"GB"}};transform(n,e=0,i="B",o){if(!(fE(n)&&fE(e)&&e%1==0&&e>=0))return n;let r=n,s=i;for(;"B"!==s;)r*=1024,s=Fo.formats[s].prev;if(o){const c=mE(Fo.calculateResult(Fo.formats[o],r),e);return Fo.formatResult(c,o)}for(const a in Fo.formats)if(Fo.formats.hasOwnProperty(a)){const c=Fo.formats[a];if(r{class t{transform(e,i="px"){return"number"==typeof e?`${e}${i}`:e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275pipe=jn({name:"nzToCssUnit",type:t,pure:!0,standalone:!0})}return t})(),mA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const gA=["moz","ms","webkit"];function vA(t){if(typeof window>"u")return null;if(window.cancelAnimationFrame)return window.cancelAnimationFrame(t);const n=gA.filter(e=>`${e}CancelAnimationFrame`in window||`${e}CancelRequestAnimationFrame`in window)[0];return n?(window[`${n}CancelAnimationFrame`]||window[`${n}CancelRequestAnimationFrame`]).call(this,t):clearTimeout(t)}const p2=function pse(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const t=gA.filter(n=>`${n}RequestAnimationFrame`in window)[0];return t?window[`${t}RequestAnimationFrame`]:function hse(){let t=0;return function(n){const e=(new Date).getTime(),i=Math.max(0,16-(e-t)),o=window.setTimeout(()=>{n(e+i)},i);return t=e+i,o}}()}();let fse=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mse=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[fse]})}return t})();class _se{constructor(n,e){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new N,this._typeaheadSubscription=Ft.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=i=>i.disabled,this._pressedLetters=[],this.tabOut=new N,this.change=new N,n instanceof Ua?this._itemChangesSubscription=n.changes.subscribe(i=>this._itemsChanged(i.toArray())):_4(n)&&(this._effectRef=function TT(t,n){mo("NgSignals"),!n?.injector&&_h();const e=n?.injector??W(tn),i=!0!==n?.manualCleanup?e.get(yl):null,o=new IG(e.get(AG),t,typeof Zone>"u"?null:Zone.current,i,e,n?.allowSignalWrites??!1),r=e.get(Ue,null,{optional:!0});return r&&8&r._lView[Xe]?(r._lView[yh]??=[]).push(o.watcher.notify):o.watcher.notify(),o}(()=>this._itemsChanged(n()),{injector:e}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(ii(e=>this._pressedLetters.push(e)),g3(n),yt(()=>this._pressedLetters.length>0),Ie(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!n[r]||this._allowedModifierKeys.indexOf(r)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(r>0?r:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex+this._pageUpAndDown.delta,s=this._getItemsArray().length;this._setActiveItemByIndex(r=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._getItemsArray().length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._effectRef?.destroy(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return _4(this._items)?this._items():this._items instanceof Ua?this._items.toArray():this._items}_itemsChanged(n){if(this._activeItem){const e=n.indexOf(this._activeItem);e>-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e)}}}class bse extends _se{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let yse=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function wse(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function Cse(t){try{return t.frameElement}catch{return null}}(function kse(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===CA(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=CA(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function xse(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==r:"video"===o?-1!==r&&(null!==r||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function Ese(t){return!function Sse(t){return function Mse(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function zse(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function Tse(t){return function Dse(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||yA(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function yA(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function CA(t){if(!yA(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class wA{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,o,r=!1,s){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._injector=s,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,r||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._injector?Xa(n,{injector:this._injector}):setTimeout(n)}}let M7=(()=>{class t{constructor(e,i,o){this._checker=e,this._ngZone=i,this._injector=W(tn),this._document=o}create(e,i=!1){return new wA(e,this._checker,this._ngZone,this._document,i,this._injector)}static#e=this.\u0275fac=function(i){return new(i||t)(R(yse),R(De),R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ase=(()=>{class t{get enabled(){return this.focusTrap?.enabled||!1}set enabled(e){this.focusTrap&&(this.focusTrap.enabled=e)}constructor(e,i,o){this._elementRef=e,this._focusTrapFactory=i,this._previouslyFocusedElement=null,W(qn).isBrowser&&(this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0))}ngOnDestroy(){this.focusTrap?.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap?.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap&&!this.focusTrap.hasAttached()&&this.focusTrap.attachAnchors()}ngOnChanges(e){const i=e.autoCapture;i&&!i.firstChange&&this.autoCapture&&this.focusTrap?.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=function Wte(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}(),this.focusTrap?.focusInitialElementWhenReady()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(M7),v(It))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:[2,"cdkTrapFocus","enabled",O],autoCapture:[2,"cdkTrapFocusAutoCapture","autoCapture",O]},exportAs:["cdkTrapFocus"],standalone:!0,features:[je,ke]})}return t})();function zA(t){return 0===t.buttons||0===t.detail}function SA(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const Ose=new oe("cdk-input-modality-detector-options"),Pse={ignoreKeys:[18,17,224,91,16]},O1=M1({passive:!0,capture:!0});let Ise=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,o,r){this._platform=e,this._mostRecentTarget=null,this._modality=new rt(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(a=>a===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Io(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(zA(s)?"keyboard":"mouse"),this._mostRecentTarget=Io(s))},this._onTouchstart=s=>{SA(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Io(s))},this._options={...Pse,...r},this.modalityDetected=this._modality.pipe(O5(1)),this.modalityChanged=this.modalityDetected.pipe(qi()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,O1),o.addEventListener("mousedown",this._onMousedown,O1),o.addEventListener("touchstart",this._onTouchstart,O1)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,O1),document.removeEventListener("mousedown",this._onMousedown,O1),document.removeEventListener("touchstart",this._onTouchstart,O1))}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn),R(De),R(It),R(Ose,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Z3=function(t){return t[t.IMMEDIATE=0]="IMMEDIATE",t[t.EVENTUAL=1]="EVENTUAL",t}(Z3||{});const Vse=new oe("cdk-focus-monitor-default-options"),Q3=M1({passive:!0,capture:!0});let Ca=(()=>{class t{constructor(e,i,o,r,s){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new N,this._rootNodeFocusAndBlurListener=a=>{for(let l=Io(a);l;l=l.parentElement)"focus"===a.type?this._onFocus(a,l):this._onBlur(a,l)},this._document=r,this._detectionMode=s?.detectionMode||Z3.IMMEDIATE}monitor(e,i=!1){const o=Ni(e);if(!this._platform.isBrowser||1!==o.nodeType)return We();const r=N5(o)||this._getDocument(),s=this._elementInfo.get(o);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new N,rootNode:r};return this._elementInfo.set(o,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=Ni(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const r=Ni(e);r===this._getDocument().activeElement?this._getClosestElementsInfo(r).forEach(([a,c])=>this._originChanged(a,i,c)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===Z3.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,this._detectionMode===Z3.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=Io(e);!o||!o.checkChildren&&i!==r||this._originChanged(i,this._getFocusOrigin(r),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,Q3),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Q3)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(I(this._stopInputModalityDetector)).subscribe(r=>{this._setOrigin(r,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Q3),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Q3),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,r)=>{(r===e||o.checkChildren&&r.contains(e))&&i.push([r,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const r=e.labels;if(r)for(let s=0;s{class t{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new H}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Ca))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"],standalone:!0})}return t})();var Dc=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(Dc||{});const MA="cdk-high-contrast-black-on-white",DA="cdk-high-contrast-white-on-black",D7="cdk-high-contrast-active";let Rse=(()=>{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=W(Kte).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Dc.NONE;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,r=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),r){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Dc.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Dc.BLACK_ON_WHITE}return Dc.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(D7,MA,DA),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===Dc.BLACK_ON_WHITE?e.add(D7,MA):i===Dc.WHITE_ON_BLACK&&e.add(D7,DA)}}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn),R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xA=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}static#e=this.\u0275fac=function(i){return new(i||t)(R(Rse))};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[mse]})}return t})();var EA={locale:"en",Pagination:{items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"},DatePicker:{lang:{placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"],locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},timePickerLocale:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]}},TimePicker:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]},Calendar:{lang:{placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"],locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},timePickerLocale:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]}},global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting",filterCheckall:"Select all items",filterSearchPlaceholder:"Search in filters",selectNone:"Clear all data"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"},Image:{preview:"Preview"},CronExpression:{cronError:"Invalid cron expression",second:"second",minute:"minute",hour:"hour",day:"day",month:"month",week:"week"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"}},x7={locale:"zh-cn",Pagination:{items_per_page:"\u6761/\u9875",jump_to:"\u8df3\u81f3",jump_to_confirm:"\u786e\u5b9a",page:"\u9875",prev_page:"\u4e0a\u4e00\u9875",next_page:"\u4e0b\u4e00\u9875",prev_5:"\u5411\u524d 5 \u9875",next_5:"\u5411\u540e 5 \u9875",prev_3:"\u5411\u524d 3 \u9875",next_3:"\u5411\u540e 3 \u9875",page_size:"\u9875\u7801"},DatePicker:{lang:{placeholder:"\u8bf7\u9009\u62e9\u65e5\u671f",yearPlaceholder:"\u8bf7\u9009\u62e9\u5e74\u4efd",quarterPlaceholder:"\u8bf7\u9009\u62e9\u5b63\u5ea6",monthPlaceholder:"\u8bf7\u9009\u62e9\u6708\u4efd",weekPlaceholder:"\u8bf7\u9009\u62e9\u5468",rangePlaceholder:["\u5f00\u59cb\u65e5\u671f","\u7ed3\u675f\u65e5\u671f"],rangeYearPlaceholder:["\u5f00\u59cb\u5e74\u4efd","\u7ed3\u675f\u5e74\u4efd"],rangeQuarterPlaceholder:["\u5f00\u59cb\u5b63\u5ea6","\u7ed3\u675f\u5b63\u5ea6"],rangeMonthPlaceholder:["\u5f00\u59cb\u6708\u4efd","\u7ed3\u675f\u6708\u4efd"],rangeWeekPlaceholder:["\u5f00\u59cb\u5468","\u7ed3\u675f\u5468"],locale:"zh_CN",today:"\u4eca\u5929",now:"\u6b64\u523b",backToToday:"\u8fd4\u56de\u4eca\u5929",ok:"\u786e\u5b9a",timeSelect:"\u9009\u62e9\u65f6\u95f4",dateSelect:"\u9009\u62e9\u65e5\u671f",weekSelect:"\u9009\u62e9\u5468",clear:"\u6e05\u9664",month:"\u6708",year:"\u5e74",previousMonth:"\u4e0a\u4e2a\u6708 (\u7ffb\u9875\u4e0a\u952e)",nextMonth:"\u4e0b\u4e2a\u6708 (\u7ffb\u9875\u4e0b\u952e)",monthSelect:"\u9009\u62e9\u6708\u4efd",yearSelect:"\u9009\u62e9\u5e74\u4efd",decadeSelect:"\u9009\u62e9\u5e74\u4ee3",yearFormat:"YYYY\u5e74",dayFormat:"D\u65e5",dateFormat:"YYYY\u5e74M\u6708D\u65e5",dateTimeFormat:"YYYY\u5e74M\u6708D\u65e5 HH\u65f6mm\u5206ss\u79d2",previousYear:"\u4e0a\u4e00\u5e74 (Control\u952e\u52a0\u5de6\u65b9\u5411\u952e)",nextYear:"\u4e0b\u4e00\u5e74 (Control\u952e\u52a0\u53f3\u65b9\u5411\u952e)",previousDecade:"\u4e0a\u4e00\u5e74\u4ee3",nextDecade:"\u4e0b\u4e00\u5e74\u4ee3",previousCentury:"\u4e0a\u4e00\u4e16\u7eaa",nextCentury:"\u4e0b\u4e00\u4e16\u7eaa"},timePickerLocale:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]}},TimePicker:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]},Calendar:{lang:{placeholder:"\u8bf7\u9009\u62e9\u65e5\u671f",yearPlaceholder:"\u8bf7\u9009\u62e9\u5e74\u4efd",quarterPlaceholder:"\u8bf7\u9009\u62e9\u5b63\u5ea6",monthPlaceholder:"\u8bf7\u9009\u62e9\u6708\u4efd",weekPlaceholder:"\u8bf7\u9009\u62e9\u5468",rangePlaceholder:["\u5f00\u59cb\u65e5\u671f","\u7ed3\u675f\u65e5\u671f"],rangeYearPlaceholder:["\u5f00\u59cb\u5e74\u4efd","\u7ed3\u675f\u5e74\u4efd"],rangeMonthPlaceholder:["\u5f00\u59cb\u6708\u4efd","\u7ed3\u675f\u6708\u4efd"],rangeWeekPlaceholder:["\u5f00\u59cb\u5468","\u7ed3\u675f\u5468"],locale:"zh_CN",today:"\u4eca\u5929",now:"\u6b64\u523b",backToToday:"\u8fd4\u56de\u4eca\u5929",ok:"\u786e\u5b9a",timeSelect:"\u9009\u62e9\u65f6\u95f4",dateSelect:"\u9009\u62e9\u65e5\u671f",weekSelect:"\u9009\u62e9\u5468",clear:"\u6e05\u9664",month:"\u6708",year:"\u5e74",previousMonth:"\u4e0a\u4e2a\u6708 (\u7ffb\u9875\u4e0a\u952e)",nextMonth:"\u4e0b\u4e2a\u6708 (\u7ffb\u9875\u4e0b\u952e)",monthSelect:"\u9009\u62e9\u6708\u4efd",yearSelect:"\u9009\u62e9\u5e74\u4efd",decadeSelect:"\u9009\u62e9\u5e74\u4ee3",yearFormat:"YYYY\u5e74",dayFormat:"D\u65e5",dateFormat:"YYYY\u5e74M\u6708D\u65e5",dateTimeFormat:"YYYY\u5e74M\u6708D\u65e5 HH\u65f6mm\u5206ss\u79d2",previousYear:"\u4e0a\u4e00\u5e74 (Control\u952e\u52a0\u5de6\u65b9\u5411\u952e)",nextYear:"\u4e0b\u4e00\u5e74 (Control\u952e\u52a0\u53f3\u65b9\u5411\u952e)",previousDecade:"\u4e0a\u4e00\u5e74\u4ee3",nextDecade:"\u4e0b\u4e00\u5e74\u4ee3",previousCentury:"\u4e0a\u4e00\u4e16\u7eaa",nextCentury:"\u4e0b\u4e00\u4e16\u7eaa"},timePickerLocale:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]}},global:{placeholder:"\u8bf7\u9009\u62e9"},Table:{filterTitle:"\u7b5b\u9009",filterConfirm:"\u786e\u5b9a",filterReset:"\u91cd\u7f6e",filterEmptyText:"\u65e0\u7b5b\u9009\u9879",selectAll:"\u5168\u9009\u5f53\u9875",selectInvert:"\u53cd\u9009\u5f53\u9875",selectionAll:"\u5168\u9009\u6240\u6709",sortTitle:"\u6392\u5e8f",expand:"\u5c55\u5f00\u884c",collapse:"\u5173\u95ed\u884c",triggerDesc:"\u70b9\u51fb\u964d\u5e8f",triggerAsc:"\u70b9\u51fb\u5347\u5e8f",cancelSort:"\u53d6\u6d88\u6392\u5e8f",filterCheckall:"\u5168\u9009",filterSearchPlaceholder:"\u5728\u7b5b\u9009\u9879\u4e2d\u641c\u7d22",selectNone:"\u6e05\u7a7a\u6240\u6709"},Modal:{okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",justOkText:"\u77e5\u9053\u4e86"},Popconfirm:{cancelText:"\u53d6\u6d88",okText:"\u786e\u5b9a"},Transfer:{searchPlaceholder:"\u8bf7\u8f93\u5165\u641c\u7d22\u5185\u5bb9",itemUnit:"\u9879",itemsUnit:"\u9879",remove:"\u5220\u9664",selectCurrent:"\u5168\u9009\u5f53\u9875",removeCurrent:"\u5220\u9664\u5f53\u9875",selectAll:"\u5168\u9009\u6240\u6709",removeAll:"\u5220\u9664\u5168\u90e8",selectInvert:"\u53cd\u9009\u5f53\u9875"},Upload:{uploading:"\u6587\u4ef6\u4e0a\u4f20\u4e2d",removeFile:"\u5220\u9664\u6587\u4ef6",uploadError:"\u4e0a\u4f20\u9519\u8bef",previewFile:"\u9884\u89c8\u6587\u4ef6",downloadFile:"\u4e0b\u8f7d\u6587\u4ef6"},Empty:{description:"\u6682\u65e0\u6570\u636e"},Icon:{icon:"\u56fe\u6807"},Text:{edit:"\u7f16\u8f91",copy:"\u590d\u5236",copied:"\u590d\u5236\u6210\u529f",expand:"\u5c55\u5f00"},PageHeader:{back:"\u8fd4\u56de"},Image:{preview:"\u9884\u89c8"},CronExpression:{cronError:"cron \u8868\u8fbe\u5f0f\u4e0d\u5408\u6cd5",second:"\u79d2",minute:"\u5206\u949f",hour:"\u5c0f\u65f6",day:"\u65e5",month:"\u6708",week:"\u5468"},QRCode:{expired:"\u4e8c\u7ef4\u7801\u8fc7\u671f",refresh:"\u70b9\u51fb\u5237\u65b0",scanned:"\u5df2\u626b\u63cf"}};const E7=new oe("nz-i18n"),Lse=new oe("nz-date-locale");let $s=(()=>{class t{get localeChange(){return this._change.asObservable()}constructor(e,i){this._change=new rt(this._locale),this.setLocale(e||x7),this.setDateLocale(i||null)}translate(e,i){let o=this._getObjectPath(this._locale,e);return"string"==typeof o?(i&&Object.keys(i).forEach(r=>o=o.replace(new RegExp(`%${r}%`,"g"),i[r])),o):e}setLocale(e){this._locale&&this._locale.locale===e.locale||(this._locale=e,this._change.next(e))}getLocale(){return this._locale}getLocaleId(){return this._locale?this._locale.locale:""}setDateLocale(e){this.dateLocale=e}getDateLocale(){return this.dateLocale}getLocaleData(e,i){const o=e?this._getObjectPath(this._locale,e):this._locale;return o||i||this._getObjectPath(EA,e)||{}}_getObjectPath(e,i){let o=e;const r=i.split("."),s=r.length;let a=0;for(;o&&a{class t{constructor(e){this._locale=e}transform(e,i){return this._locale.translate(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(v($s,16))};static#t=this.\u0275pipe=jn({name:"nzI18n",type:t,pure:!0,standalone:!0})}return t})(),Bse=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function kA(t){const n=t.cloneNode(!0),e=n.querySelectorAll("[id]"),i=t.nodeName.toLowerCase();n.removeAttribute("id");for(let o=0;o=i&&e<=o&&n>=r&&n<=s}function f2(t,n,e){t.top+=n,t.bottom=t.top+t.height,t.left+=e,t.right=t.left+t.width}function IA(t,n,e,i){const{top:o,right:r,bottom:s,left:a,width:c,height:l}=t,u=c*n,p=l*n;return i>o-p&&ia-u&&e{this.positions.set(e,{scrollPosition:{top:e.scrollTop,left:e.scrollLeft},clientRect:k7(e)})})}handleScroll(n){const e=Io(n),i=this.positions.get(e);if(!i)return null;const o=i.scrollPosition;let r,s;if(e===this._document){const l=this.getViewportScrollPosition();r=l.top,s=l.left}else r=e.scrollTop,s=e.scrollLeft;const a=o.top-r,c=o.left-s;return this.positions.forEach((l,u)=>{l.clientRect&&e!==u&&e.contains(u)&&f2(l.clientRect,a,c)}),o.top=r,o.left=s,{top:a,left:c}}getViewportScrollPosition(){return{top:window.scrollY,left:window.scrollX}}}function VA(t,n){const e=t.rootNodes;if(1===e.length&&e[0].nodeType===n.ELEMENT_NODE)return e[0];const i=n.createElement("div");return e.forEach(o=>i.appendChild(o)),i}function O7(t,n,e){for(let i in n)if(n.hasOwnProperty(i)){const o=n[i];o?t.setProperty(i,o,e?.has(i)?"important":""):t.removeProperty(i)}return t}function P1(t,n){const e=n?"":"none";O7(t.style,{"touch-action":n?"":"none","-webkit-user-drag":n?"":"none","-webkit-tap-highlight-color":n?"":"transparent","user-select":e,"-ms-user-select":e,"-webkit-user-select":e,"-moz-user-select":e})}function FA(t,n,e){O7(t.style,{position:n?"":"fixed",top:n?"":"0",opacity:n?"":"0",left:n?"":"-999em"},e)}function X3(t,n){return n&&"none"!=n?t+" "+n:t}function RA(t,n){t.style.width=`${n.width}px`,t.style.height=`${n.height}px`,t.style.transform=e6(n.left,n.top)}function e6(t,n){return`translate3d(${Math.round(t)}px, ${Math.round(n)}px, 0)`}function LA(t){const n=t.toLowerCase().indexOf("ms")>-1?1:1e3;return parseFloat(t)*n}function P7(t,n){return t.getPropertyValue(n).split(",").map(i=>i.trim())}const Kse=new Set(["position"]);class Jse{constructor(n,e,i,o,r,s,a,c,l){this._document=n,this._rootElement=e,this._direction=i,this._initialDomRect=o,this._previewTemplate=r,this._previewClass=s,this._pickupPositionOnPage=a,this._initialTransform=c,this._zIndex=l}attach(n){this._preview=this._createPreview(),n.appendChild(this._preview),"showPopover"in this._preview&&this._preview.showPopover()}destroy(){this._preview.remove(),this._previewEmbeddedView?.destroy(),this._preview=this._previewEmbeddedView=null}setTransform(n){this._preview.style.transform=n}getBoundingClientRect(){return this._preview.getBoundingClientRect()}addClass(n){this._preview.classList.add(n)}getTransitionDuration(){return function qse(t){const n=getComputedStyle(t),e=P7(n,"transition-property"),i=e.find(a=>"transform"===a||"all"===a);if(!i)return 0;const o=e.indexOf(i),r=P7(n,"transition-duration"),s=P7(n,"transition-delay");return LA(r[o])+LA(s[o])}(this._preview)}addEventListener(n,e){this._preview.addEventListener(n,e)}removeEventListener(n,e){this._preview.removeEventListener(n,e)}_createPreview(){const n=this._previewTemplate,e=this._previewClass,i=n?n.template:null;let o;if(i&&n){const r=n.matchSize?this._initialDomRect:null,s=n.viewContainer.createEmbeddedView(i,n.context);s.detectChanges(),o=VA(s,this._document),this._previewEmbeddedView=s,n.matchSize?RA(o,r):o.style.transform=e6(this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else o=kA(this._rootElement),RA(o,this._initialDomRect),this._initialTransform&&(o.style.transform=this._initialTransform);return O7(o.style,{"pointer-events":"none",margin:"0",position:"fixed",top:"0",left:"0","z-index":this._zIndex+""},Kse),P1(o,!1),o.classList.add("cdk-drag-preview"),o.setAttribute("popover","manual"),o.setAttribute("dir",this._direction),e&&(Array.isArray(e)?e.forEach(r=>o.classList.add(r)):o.classList.add(e)),o}}const HA=M1({passive:!0}),t6=M1({passive:!1}),BA=M1({passive:!1,capture:!0}),jA=new Set(["position"]);class Qse{get disabled(){return this._disabled||!(!this._dropContainer||!this._dropContainer.disabled)}set disabled(n){n!==this._disabled&&(this._disabled=n,this._toggleNativeDragInteractions(),this._handles.forEach(e=>P1(e,n)))}constructor(n,e,i,o,r,s){this._config=e,this._document=i,this._ngZone=o,this._viewportRuler=r,this._dragDropRegistry=s,this._passiveTransform={x:0,y:0},this._activeTransform={x:0,y:0},this._hasStartedDragging=Of(!1),this._moveEvents=new N,this._pointerMoveSubscription=Ft.EMPTY,this._pointerUpSubscription=Ft.EMPTY,this._scrollSubscription=Ft.EMPTY,this._resizeSubscription=Ft.EMPTY,this._boundaryElement=null,this._nativeInteractionsEnabled=!0,this._handles=[],this._disabledHandles=new Set,this._direction="ltr",this.dragStartDelay=0,this._disabled=!1,this.beforeStarted=new N,this.started=new N,this.released=new N,this.ended=new N,this.entered=new N,this.exited=new N,this.dropped=new N,this.moved=this._moveEvents,this._pointerDown=a=>{if(this.beforeStarted.next(),this._handles.length){const c=this._getTargetHandle(a);c&&!this._disabledHandles.has(c)&&!this.disabled&&this._initializeDragSequence(c,a)}else this.disabled||this._initializeDragSequence(this._rootElement,a)},this._pointerMove=a=>{const c=this._getPointerPositionOnPage(a);if(!this._hasStartedDragging()){if(Math.abs(c.x-this._pickupPositionOnPage.x)+Math.abs(c.y-this._pickupPositionOnPage.y)>=this._config.dragStartThreshold){const b=Date.now()>=this._dragStartTime+this._getDragStartDelay(a),y=this._dropContainer;if(!b)return void this._endDragSequence(a);(!y||!y.isDragging()&&!y.isReceiving())&&(a.cancelable&&a.preventDefault(),this._hasStartedDragging.set(!0),this._ngZone.run(()=>this._startDragSequence(a)))}return}a.cancelable&&a.preventDefault();const l=this._getConstrainedPointerPosition(c);if(this._hasMoved=!0,this._lastKnownPointerPosition=c,this._updatePointerDirectionDelta(l),this._dropContainer)this._updateActiveDropContainer(l,c);else{const u=this.constrainPosition?this._initialDomRect:this._pickupPositionOnPage,p=this._activeTransform;p.x=l.x-u.x+this._passiveTransform.x,p.y=l.y-u.y+this._passiveTransform.y,this._applyRootElementTransform(p.x,p.y)}this._moveEvents.observers.length&&this._ngZone.run(()=>{this._moveEvents.next({source:this,pointerPosition:l,event:a,distance:this._getDragDistance(l),delta:this._pointerDirectionDelta})})},this._pointerUp=a=>{this._endDragSequence(a)},this._nativeDragStart=a=>{if(this._handles.length){const c=this._getTargetHandle(a);c&&!this._disabledHandles.has(c)&&!this.disabled&&a.preventDefault()}else this.disabled||a.preventDefault()},this.withRootElement(n).withParent(e.parentDragRef||null),this._parentPositions=new NA(i),s.registerDragItem(this)}getPlaceholderElement(){return this._placeholder}getRootElement(){return this._rootElement}getVisibleElement(){return this.isDragging()?this.getPlaceholderElement():this.getRootElement()}withHandles(n){this._handles=n.map(i=>Ni(i)),this._handles.forEach(i=>P1(i,this.disabled)),this._toggleNativeDragInteractions();const e=new Set;return this._disabledHandles.forEach(i=>{this._handles.indexOf(i)>-1&&e.add(i)}),this._disabledHandles=e,this}withPreviewTemplate(n){return this._previewTemplate=n,this}withPlaceholderTemplate(n){return this._placeholderTemplate=n,this}withRootElement(n){const e=Ni(n);return e!==this._rootElement&&(this._rootElement&&this._removeRootElementListeners(this._rootElement),this._ngZone.runOutsideAngular(()=>{e.addEventListener("mousedown",this._pointerDown,t6),e.addEventListener("touchstart",this._pointerDown,HA),e.addEventListener("dragstart",this._nativeDragStart,t6)}),this._initialTransform=void 0,this._rootElement=e),typeof SVGElement<"u"&&this._rootElement instanceof SVGElement&&(this._ownerSVGElement=this._rootElement.ownerSVGElement),this}withBoundaryElement(n){return this._boundaryElement=n?Ni(n):null,this._resizeSubscription.unsubscribe(),n&&(this._resizeSubscription=this._viewportRuler.change(10).subscribe(()=>this._containInsideBoundaryOnResize())),this}withParent(n){return this._parentDragRef=n,this}dispose(){this._removeRootElementListeners(this._rootElement),this.isDragging()&&this._rootElement?.remove(),this._anchor?.remove(),this._destroyPreview(),this._destroyPlaceholder(),this._dragDropRegistry.removeDragItem(this),this._removeListeners(),this.beforeStarted.complete(),this.started.complete(),this.released.complete(),this.ended.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this._moveEvents.complete(),this._handles=[],this._disabledHandles.clear(),this._dropContainer=void 0,this._resizeSubscription.unsubscribe(),this._parentPositions.clear(),this._boundaryElement=this._rootElement=this._ownerSVGElement=this._placeholderTemplate=this._previewTemplate=this._anchor=this._parentDragRef=null}isDragging(){return this._hasStartedDragging()&&this._dragDropRegistry.isDragging(this)}reset(){this._rootElement.style.transform=this._initialTransform||"",this._activeTransform={x:0,y:0},this._passiveTransform={x:0,y:0}}disableHandle(n){!this._disabledHandles.has(n)&&this._handles.indexOf(n)>-1&&(this._disabledHandles.add(n),P1(n,!0))}enableHandle(n){this._disabledHandles.has(n)&&(this._disabledHandles.delete(n),P1(n,this.disabled))}withDirection(n){return this._direction=n,this}_withDropContainer(n){this._dropContainer=n}getFreeDragPosition(){const n=this.isDragging()?this._activeTransform:this._passiveTransform;return{x:n.x,y:n.y}}setFreeDragPosition(n){return this._activeTransform={x:0,y:0},this._passiveTransform.x=n.x,this._passiveTransform.y=n.y,this._dropContainer||this._applyRootElementTransform(n.x,n.y),this}withPreviewContainer(n){return this._previewContainer=n,this}_sortFromLastPointerPosition(){const n=this._lastKnownPointerPosition;n&&this._dropContainer&&this._updateActiveDropContainer(this._getConstrainedPointerPosition(n),n)}_removeListeners(){this._pointerMoveSubscription.unsubscribe(),this._pointerUpSubscription.unsubscribe(),this._scrollSubscription.unsubscribe(),this._getShadowRoot()?.removeEventListener("selectstart",YA,BA)}_destroyPreview(){this._preview?.destroy(),this._preview=null}_destroyPlaceholder(){this._placeholder?.remove(),this._placeholderRef?.destroy(),this._placeholder=this._placeholderRef=null}_endDragSequence(n){if(this._dragDropRegistry.isDragging(this)&&(this._removeListeners(),this._dragDropRegistry.stopDragging(this),this._toggleNativeDragInteractions(),this._handles&&(this._rootElement.style.webkitTapHighlightColor=this._rootElementTapHighlight),this._hasStartedDragging()))if(this.released.next({source:this,event:n}),this._dropContainer)this._dropContainer._stopScrolling(),this._animatePreviewToPlaceholder().then(()=>{this._cleanupDragArtifacts(n),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)});else{this._passiveTransform.x=this._activeTransform.x;const e=this._getPointerPositionOnPage(n);this._passiveTransform.y=this._activeTransform.y,this._ngZone.run(()=>{this.ended.next({source:this,distance:this._getDragDistance(e),dropPoint:e,event:n})}),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)}}_startDragSequence(n){m2(n)&&(this._lastTouchEventTime=Date.now()),this._toggleNativeDragInteractions();const e=this._getShadowRoot(),i=this._dropContainer;if(e&&this._ngZone.runOutsideAngular(()=>{e.addEventListener("selectstart",YA,BA)}),i){const o=this._rootElement,r=o.parentNode,s=this._placeholder=this._createPlaceholderElement(),a=this._anchor=this._anchor||this._document.createComment("");r.insertBefore(a,o),this._initialTransform=o.style.transform||"",this._preview=new Jse(this._document,this._rootElement,this._direction,this._initialDomRect,this._previewTemplate||null,this.previewClass||null,this._pickupPositionOnPage,this._initialTransform,this._config.zIndex||1e3),this._preview.attach(this._getPreviewInsertionPoint(r,e)),FA(o,!1,jA),this._document.body.appendChild(r.replaceChild(s,o)),this.started.next({source:this,event:n}),i.start(),this._initialContainer=i,this._initialIndex=i.getItemIndex(this)}else this.started.next({source:this,event:n}),this._initialContainer=this._initialIndex=void 0;this._parentPositions.cache(i?i.getScrollableParents():[])}_initializeDragSequence(n,e){this._parentDragRef&&e.stopPropagation();const i=this.isDragging(),o=m2(e),r=!o&&0!==e.button,s=this._rootElement,a=Io(e),c=!o&&this._lastTouchEventTime&&this._lastTouchEventTime+800>Date.now(),l=o?SA(e):zA(e);if(a&&a.draggable&&"mousedown"===e.type&&e.preventDefault(),i||r||c||l)return;if(this._handles.length){const _=s.style;this._rootElementTapHighlight=_.webkitTapHighlightColor||"",_.webkitTapHighlightColor="transparent"}this._hasMoved=!1,this._hasStartedDragging.set(this._hasMoved),this._removeListeners(),this._initialDomRect=this._rootElement.getBoundingClientRect(),this._pointerMoveSubscription=this._dragDropRegistry.pointerMove.subscribe(this._pointerMove),this._pointerUpSubscription=this._dragDropRegistry.pointerUp.subscribe(this._pointerUp),this._scrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(_=>this._updateOnScroll(_)),this._boundaryElement&&(this._boundaryRect=k7(this._boundaryElement));const u=this._previewTemplate;this._pickupPositionInElement=u&&u.template&&!u.matchSize?{x:0,y:0}:this._getPointerPositionInElement(this._initialDomRect,n,e);const p=this._pickupPositionOnPage=this._lastKnownPointerPosition=this._getPointerPositionOnPage(e);this._pointerDirectionDelta={x:0,y:0},this._pointerPositionAtLastDirectionChange={x:p.x,y:p.y},this._dragStartTime=Date.now(),this._dragDropRegistry.startDragging(this,e)}_cleanupDragArtifacts(n){FA(this._rootElement,!0,jA),this._anchor.parentNode.replaceChild(this._rootElement,this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._initialDomRect=this._boundaryRect=this._previewRect=this._initialTransform=void 0,this._ngZone.run(()=>{const e=this._dropContainer,i=e.getItemIndex(this),o=this._getPointerPositionOnPage(n),r=this._getDragDistance(o),s=e._isOverContainer(o.x,o.y);this.ended.next({source:this,distance:r,dropPoint:o,event:n}),this.dropped.next({item:this,currentIndex:i,previousIndex:this._initialIndex,container:e,previousContainer:this._initialContainer,isPointerOverContainer:s,distance:r,dropPoint:o,event:n}),e.drop(this,i,this._initialIndex,this._initialContainer,s,r,o,n),this._dropContainer=this._initialContainer})}_updateActiveDropContainer({x:n,y:e},{x:i,y:o}){let r=this._initialContainer._getSiblingContainerFromPosition(this,n,e);!r&&this._dropContainer!==this._initialContainer&&this._initialContainer._isOverContainer(n,e)&&(r=this._initialContainer),r&&r!==this._dropContainer&&this._ngZone.run(()=>{this.exited.next({item:this,container:this._dropContainer}),this._dropContainer.exit(this),this._dropContainer=r,this._dropContainer.enter(this,n,e,r===this._initialContainer&&r.sortingDisabled?this._initialIndex:void 0),this.entered.next({item:this,container:r,currentIndex:r.getItemIndex(this)})}),this.isDragging()&&(this._dropContainer._startScrollingIfNecessary(i,o),this._dropContainer._sortItem(this,n,e,this._pointerDirectionDelta),this.constrainPosition?this._applyPreviewTransform(n,e):this._applyPreviewTransform(n-this._pickupPositionInElement.x,e-this._pickupPositionInElement.y))}_animatePreviewToPlaceholder(){if(!this._hasMoved)return Promise.resolve();const n=this._placeholder.getBoundingClientRect();this._preview.addClass("cdk-drag-animating"),this._applyPreviewTransform(n.left,n.top);const e=this._preview.getTransitionDuration();return 0===e?Promise.resolve():this._ngZone.runOutsideAngular(()=>new Promise(i=>{const o=s=>{(!s||Io(s)===this._preview&&"transform"===s.propertyName)&&(this._preview?.removeEventListener("transitionend",o),i(),clearTimeout(r))},r=setTimeout(o,1.5*e);this._preview.addEventListener("transitionend",o)}))}_createPlaceholderElement(){const n=this._placeholderTemplate,e=n?n.template:null;let i;return e?(this._placeholderRef=n.viewContainer.createEmbeddedView(e,n.context),this._placeholderRef.detectChanges(),i=VA(this._placeholderRef,this._document)):i=kA(this._rootElement),i.style.pointerEvents="none",i.classList.add("cdk-drag-placeholder"),i}_getPointerPositionInElement(n,e,i){const o=e===this._rootElement?null:e,r=o?o.getBoundingClientRect():n,s=m2(i)?i.targetTouches[0]:i,a=this._getViewportScrollPosition();return{x:r.left-n.left+(s.pageX-r.left-a.left),y:r.top-n.top+(s.pageY-r.top-a.top)}}_getPointerPositionOnPage(n){const e=this._getViewportScrollPosition(),i=m2(n)?n.touches[0]||n.changedTouches[0]||{pageX:0,pageY:0}:n,o=i.pageX-e.left,r=i.pageY-e.top;if(this._ownerSVGElement){const s=this._ownerSVGElement.getScreenCTM();if(s){const a=this._ownerSVGElement.createSVGPoint();return a.x=o,a.y=r,a.matrixTransform(s.inverse())}}return{x:o,y:r}}_getConstrainedPointerPosition(n){const e=this._dropContainer?this._dropContainer.lockAxis:null;let{x:i,y:o}=this.constrainPosition?this.constrainPosition(n,this,this._initialDomRect,this._pickupPositionInElement):n;if("x"===this.lockAxis||"x"===e?o=this._pickupPositionOnPage.y-(this.constrainPosition?this._pickupPositionInElement.y:0):("y"===this.lockAxis||"y"===e)&&(i=this._pickupPositionOnPage.x-(this.constrainPosition?this._pickupPositionInElement.x:0)),this._boundaryRect){const{x:r,y:s}=this.constrainPosition?{x:0,y:0}:this._pickupPositionInElement,a=this._boundaryRect,{width:c,height:l}=this._getPreviewRect(),u=a.top+s,p=a.bottom-(l-s);i=$A(i,a.left+r,a.right-(c-r)),o=$A(o,u,p)}return{x:i,y:o}}_updatePointerDirectionDelta(n){const{x:e,y:i}=n,o=this._pointerDirectionDelta,r=this._pointerPositionAtLastDirectionChange,s=Math.abs(e-r.x),a=Math.abs(i-r.y);return s>this._config.pointerDirectionChangeThreshold&&(o.x=e>r.x?1:-1,r.x=e),a>this._config.pointerDirectionChangeThreshold&&(o.y=i>r.y?1:-1,r.y=i),o}_toggleNativeDragInteractions(){if(!this._rootElement||!this._handles)return;const n=this._handles.length>0||!this.isDragging();n!==this._nativeInteractionsEnabled&&(this._nativeInteractionsEnabled=n,P1(this._rootElement,n))}_removeRootElementListeners(n){n.removeEventListener("mousedown",this._pointerDown,t6),n.removeEventListener("touchstart",this._pointerDown,HA),n.removeEventListener("dragstart",this._nativeDragStart,t6)}_applyRootElementTransform(n,e){const i=e6(n,e),o=this._rootElement.style;null==this._initialTransform&&(this._initialTransform=o.transform&&"none"!=o.transform?o.transform:""),o.transform=X3(i,this._initialTransform)}_applyPreviewTransform(n,e){const i=this._previewTemplate?.template?void 0:this._initialTransform,o=e6(n,e);this._preview.setTransform(X3(o,i))}_getDragDistance(n){const e=this._pickupPositionOnPage;return e?{x:n.x-e.x,y:n.y-e.y}:{x:0,y:0}}_cleanupCachedDimensions(){this._boundaryRect=this._previewRect=void 0,this._parentPositions.clear()}_containInsideBoundaryOnResize(){let{x:n,y:e}=this._passiveTransform;if(0===n&&0===e||this.isDragging()||!this._boundaryElement)return;const i=this._rootElement.getBoundingClientRect(),o=this._boundaryElement.getBoundingClientRect();if(0===o.width&&0===o.height||0===i.width&&0===i.height)return;const r=o.left-i.left,s=i.right-o.right,a=o.top-i.top,c=i.bottom-o.bottom;o.width>i.width?(r>0&&(n+=r),s>0&&(n-=s)):n=0,o.height>i.height?(a>0&&(e+=a),c>0&&(e-=c)):e=0,(n!==this._passiveTransform.x||e!==this._passiveTransform.y)&&this.setFreeDragPosition({y:e,x:n})}_getDragStartDelay(n){const e=this.dragStartDelay;return"number"==typeof e?e:m2(n)?e.touch:e?e.mouse:0}_updateOnScroll(n){const e=this._parentPositions.handleScroll(n);if(e){const i=Io(n);this._boundaryRect&&i!==this._boundaryElement&&i.contains(this._boundaryElement)&&f2(this._boundaryRect,e.top,e.left),this._pickupPositionOnPage.x+=e.left,this._pickupPositionOnPage.y+=e.top,this._dropContainer||(this._activeTransform.x-=e.left,this._activeTransform.y-=e.top,this._applyRootElementTransform(this._activeTransform.x,this._activeTransform.y))}}_getViewportScrollPosition(){return this._parentPositions.positions.get(this._document)?.scrollPosition||this._parentPositions.getViewportScrollPosition()}_getShadowRoot(){return void 0===this._cachedShadowRoot&&(this._cachedShadowRoot=N5(this._rootElement)),this._cachedShadowRoot}_getPreviewInsertionPoint(n,e){const i=this._previewContainer||"global";if("parent"===i)return n;if("global"===i){const o=this._document;return e||o.fullscreenElement||o.webkitFullscreenElement||o.mozFullScreenElement||o.msFullscreenElement||o.body}return Ni(i)}_getPreviewRect(){return(!this._previewRect||!this._previewRect.width&&!this._previewRect.height)&&(this._previewRect=this._preview?this._preview.getBoundingClientRect():this._initialDomRect),this._previewRect}_getTargetHandle(n){return this._handles.find(e=>n.target&&(n.target===e||e.contains(n.target)))}}function $A(t,n,e){return Math.max(n,Math.min(e,t))}function m2(t){return"t"===t.type[0]}function YA(t){t.preventDefault()}function xc(t,n,e){const i=g2(n,t.length-1),o=g2(e,t.length-1);if(i===o)return;const r=t[i],s=o0)return null;const a="horizontal"===this.orientation,c=r.findIndex(E=>E.drag===n),l=r[s],p=l.clientRect,_=c>s?1:-1,b=this._getItemOffsetPx(r[c].clientRect,p,_),y=this._getSiblingOffsetPx(c,r,_),z=r.slice();return xc(r,c,s),r.forEach((E,k)=>{if(z[k]===E)return;const A=E.drag===n,ie=A?b:y,pe=A?n.getPlaceholderElement():E.drag.getRootElement();E.offset+=ie,a?(pe.style.transform=X3(`translate3d(${Math.round(E.offset)}px, 0, 0)`,E.initialTransform),f2(E.clientRect,0,ie)):(pe.style.transform=X3(`translate3d(0, ${Math.round(E.offset)}px, 0)`,E.initialTransform),f2(E.clientRect,ie,0))}),this._previousSwap.overlaps=A7(p,e,i),this._previousSwap.drag=l.drag,this._previousSwap.delta=a?o.x:o.y,{previousIndex:c,currentIndex:s}}enter(n,e,i,o){const r=null==o||o<0?this._getItemIndexFromPointerPosition(n,e,i):o,s=this._activeDraggables,a=s.indexOf(n),c=n.getPlaceholderElement();let l=s[r];if(l===n&&(l=s[r+1]),!l&&(null==r||-1===r||r-1&&s.splice(a,1),l&&!this._dragDropRegistry.isDragging(l)){const u=l.getRootElement();u.parentElement.insertBefore(c,u),s.splice(r,0,n)}else Ni(this._element).appendChild(c),s.push(n);c.style.transform="",this._cacheItemPositions()}withItems(n){this._activeDraggables=n.slice(),this._cacheItemPositions()}withSortPredicate(n){this._sortPredicate=n}reset(){this._activeDraggables.forEach(n=>{const e=n.getRootElement();if(e){const i=this._itemPositions.find(o=>o.drag===n)?.initialTransform;e.style.transform=i||""}}),this._itemPositions=[],this._activeDraggables=[],this._previousSwap.drag=null,this._previousSwap.delta=0,this._previousSwap.overlaps=!1}getActiveItemsSnapshot(){return this._activeDraggables}getItemIndex(n){return("horizontal"===this.orientation&&"rtl"===this.direction?this._itemPositions.slice().reverse():this._itemPositions).findIndex(i=>i.drag===n)}updateOnScroll(n,e){this._itemPositions.forEach(({clientRect:i})=>{f2(i,n,e)}),this._itemPositions.forEach(({drag:i})=>{this._dragDropRegistry.isDragging(i)&&i._sortFromLastPointerPosition()})}_cacheItemPositions(){const n="horizontal"===this.orientation;this._itemPositions=this._activeDraggables.map(e=>{const i=e.getVisibleElement();return{drag:e,offset:0,initialTransform:i.style.transform||"",clientRect:k7(i)}}).sort((e,i)=>n?e.clientRect.left-i.clientRect.left:e.clientRect.top-i.clientRect.top)}_getItemOffsetPx(n,e,i){const o="horizontal"===this.orientation;let r=o?e.left-n.left:e.top-n.top;return-1===i&&(r+=o?e.width-n.width:e.height-n.height),r}_getSiblingOffsetPx(n,e,i){const o="horizontal"===this.orientation,r=e[n].clientRect,s=e[n+-1*i];let a=r[o?"width":"height"]*i;if(s){const c=o?"left":"top",l=o?"right":"bottom";-1===i?a-=s.clientRect[c]-r[l]:a+=r[c]-s.clientRect[l]}return a}_shouldEnterAsFirstChild(n,e){if(!this._activeDraggables.length)return!1;const i=this._itemPositions,o="horizontal"===this.orientation;if(i[0].drag!==this._activeDraggables[0]){const s=i[i.length-1].clientRect;return o?n>=s.right:e>=s.bottom}{const s=i[0].clientRect;return o?n<=s.left:e<=s.top}}_getItemIndexFromPointerPosition(n,e,i,o){const r="horizontal"===this.orientation,s=this._itemPositions.findIndex(({drag:a,clientRect:c})=>a!==n&&((!o||a!==this._previousSwap.drag||!this._previousSwap.overlaps||(r?o.x:o.y)!==this._previousSwap.delta)&&(r?e>=Math.floor(c.left)&&e=Math.floor(c.top)&&i!0,this.sortPredicate=()=>!0,this.beforeStarted=new N,this.entered=new N,this.exited=new N,this.dropped=new N,this.sorted=new N,this.receivingStarted=new N,this.receivingStopped=new N,this._isDragging=!1,this._draggables=[],this._siblings=[],this._activeSiblings=new Set,this._viewportScrollSubscription=Ft.EMPTY,this._verticalScrollDirection=yr.NONE,this._horizontalScrollDirection=wo.NONE,this._stopScrollTimers=new N,this._cachedShadowRoot=null,this._startScrollInterval=()=>{this._stopScrolling(),function Wse(t=0,n=Yu){return t<0&&(t=0),m3(t,t,n)}(0,_7).pipe(I(this._stopScrollTimers)).subscribe(()=>{const s=this._scrollNode,a=this.autoScrollStep;this._verticalScrollDirection===yr.UP?s.scrollBy(0,-a):this._verticalScrollDirection===yr.DOWN&&s.scrollBy(0,a),this._horizontalScrollDirection===wo.LEFT?s.scrollBy(-a,0):this._horizontalScrollDirection===wo.RIGHT&&s.scrollBy(a,0)})},this.element=Ni(n),this._document=i,this.withScrollableParents([this.element]),e.registerDropContainer(this),this._parentPositions=new NA(i),this._sortStrategy=new Xse(this.element,e),this._sortStrategy.withSortPredicate((s,a)=>this.sortPredicate(s,a,this))}dispose(){this._stopScrolling(),this._stopScrollTimers.complete(),this._viewportScrollSubscription.unsubscribe(),this.beforeStarted.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this.sorted.complete(),this.receivingStarted.complete(),this.receivingStopped.complete(),this._activeSiblings.clear(),this._scrollNode=null,this._parentPositions.clear(),this._dragDropRegistry.removeDropContainer(this)}isDragging(){return this._isDragging}start(){this._draggingStarted(),this._notifyReceivingSiblings()}enter(n,e,i,o){this._draggingStarted(),null==o&&this.sortingDisabled&&(o=this._draggables.indexOf(n)),this._sortStrategy.enter(n,e,i,o),this._cacheParentPositions(),this._notifyReceivingSiblings(),this.entered.next({item:n,container:this,currentIndex:this.getItemIndex(n)})}exit(n){this._reset(),this.exited.next({item:n,container:this})}drop(n,e,i,o,r,s,a,c={}){this._reset(),this.dropped.next({item:n,currentIndex:e,previousIndex:i,container:this,previousContainer:o,isPointerOverContainer:r,distance:s,dropPoint:a,event:c})}withItems(n){const e=this._draggables;return this._draggables=n,n.forEach(i=>i._withDropContainer(this)),this.isDragging()&&(e.filter(o=>o.isDragging()).every(o=>-1===n.indexOf(o))?this._reset():this._sortStrategy.withItems(this._draggables)),this}withDirection(n){return this._sortStrategy.direction=n,this}connectedTo(n){return this._siblings=n.slice(),this}withOrientation(n){return this._sortStrategy.orientation=n,this}withScrollableParents(n){const e=Ni(this.element);return this._scrollableElements=-1===n.indexOf(e)?[e,...n]:n.slice(),this}getScrollableParents(){return this._scrollableElements}getItemIndex(n){return this._isDragging?this._sortStrategy.getItemIndex(n):this._draggables.indexOf(n)}isReceiving(){return this._activeSiblings.size>0}_sortItem(n,e,i,o){if(this.sortingDisabled||!this._domRect||!IA(this._domRect,.05,e,i))return;const r=this._sortStrategy.sort(n,e,i,o);r&&this.sorted.next({previousIndex:r.previousIndex,currentIndex:r.currentIndex,container:this,item:n})}_startScrollingIfNecessary(n,e){if(this.autoScrollDisabled)return;let i,o=yr.NONE,r=wo.NONE;if(this._parentPositions.positions.forEach((s,a)=>{a===this._document||!s.clientRect||i||IA(s.clientRect,.05,n,e)&&([o,r]=function tae(t,n,e,i,o){const r=GA(n,o),s=qA(n,i);let a=yr.NONE,c=wo.NONE;if(r){const l=t.scrollTop;r===yr.UP?l>0&&(a=yr.UP):t.scrollHeight-l>t.clientHeight&&(a=yr.DOWN)}if(s){const l=t.scrollLeft;"rtl"===e?s===wo.RIGHT?l<0&&(c=wo.RIGHT):t.scrollWidth+l>t.clientWidth&&(c=wo.LEFT):s===wo.LEFT?l>0&&(c=wo.LEFT):t.scrollWidth-l>t.clientWidth&&(c=wo.RIGHT)}return[a,c]}(a,s.clientRect,this._sortStrategy.direction,n,e),(o||r)&&(i=a))}),!o&&!r){const{width:s,height:a}=this._viewportRuler.getViewportSize(),c={width:s,height:a,top:0,right:s,bottom:a,left:0};o=GA(c,e),r=qA(c,n),i=window}i&&(o!==this._verticalScrollDirection||r!==this._horizontalScrollDirection||i!==this._scrollNode)&&(this._verticalScrollDirection=o,this._horizontalScrollDirection=r,this._scrollNode=i,(o||r)&&i?this._ngZone.runOutsideAngular(this._startScrollInterval):this._stopScrolling())}_stopScrolling(){this._stopScrollTimers.next()}_draggingStarted(){const n=Ni(this.element).style;this.beforeStarted.next(),this._isDragging=!0,this._initialScrollSnap=n.msScrollSnapType||n.scrollSnapType||"",n.scrollSnapType=n.msScrollSnapType="none",this._sortStrategy.start(this._draggables),this._cacheParentPositions(),this._viewportScrollSubscription.unsubscribe(),this._listenToScrollEvents()}_cacheParentPositions(){const n=Ni(this.element);this._parentPositions.cache(this._scrollableElements),this._domRect=this._parentPositions.positions.get(n).clientRect}_reset(){this._isDragging=!1;const n=Ni(this.element).style;n.scrollSnapType=n.msScrollSnapType=this._initialScrollSnap,this._siblings.forEach(e=>e._stopReceiving(this)),this._sortStrategy.reset(),this._stopScrolling(),this._viewportScrollSubscription.unsubscribe(),this._parentPositions.clear()}_isOverContainer(n,e){return null!=this._domRect&&A7(this._domRect,n,e)}_getSiblingContainerFromPosition(n,e,i){return this._siblings.find(o=>o._canReceive(n,e,i))}_canReceive(n,e,i){if(!this._domRect||!A7(this._domRect,e,i)||!this.enterPredicate(n,this))return!1;const o=this._getShadowRoot().elementFromPoint(e,i);if(!o)return!1;const r=Ni(this.element);return o===r||r.contains(o)}_startReceiving(n,e){const i=this._activeSiblings;!i.has(n)&&e.every(o=>this.enterPredicate(o,this)||this._draggables.indexOf(o)>-1)&&(i.add(n),this._cacheParentPositions(),this._listenToScrollEvents(),this.receivingStarted.next({initiator:n,receiver:this,items:e}))}_stopReceiving(n){this._activeSiblings.delete(n),this._viewportScrollSubscription.unsubscribe(),this.receivingStopped.next({initiator:n,receiver:this})}_listenToScrollEvents(){this._viewportScrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(n=>{if(this.isDragging()){const e=this._parentPositions.handleScroll(n);e&&this._sortStrategy.updateOnScroll(e.top,e.left)}else this.isReceiving()&&this._cacheParentPositions()})}_getShadowRoot(){if(!this._cachedShadowRoot){const n=N5(Ni(this.element));this._cachedShadowRoot=n||this._document}return this._cachedShadowRoot}_notifyReceivingSiblings(){const n=this._sortStrategy.getActiveItemsSnapshot().filter(e=>e.isDragging());this._siblings.forEach(e=>e._startReceiving(this,n))}}function GA(t,n){const{top:e,bottom:i,height:o}=t,r=.05*o;return n>=e-r&&n<=e+r?yr.UP:n>=i-r&&n<=i+r?yr.DOWN:yr.NONE}function qA(t,n){const{left:e,right:i,width:o}=t,r=.05*o;return n>=e-r&&n<=e+r?wo.LEFT:n>=i-r&&n<=i+r?wo.RIGHT:wo.NONE}const n6=M1({passive:!1,capture:!0}),i6=new Set;let nae=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-drag-resets-container",""],standalone:!0,features:[me],decls:0,vars:0,template:function(i,o){},styles:["@layer cdk-resets{.cdk-drag-preview{background:none;border:none;padding:0;color:inherit}}"],encapsulation:2,changeDetection:0})}return t})(),iae=(()=>{class t{constructor(e,i){this._ngZone=e,this._appRef=W(Ko),this._environmentInjector=W(Li),this._dropInstances=new Set,this._dragInstances=new Set,this._activeDragInstances=Of([]),this._globalListeners=new Map,this._draggingPredicate=o=>o.isDragging(),this.pointerMove=new N,this.pointerUp=new N,this.scroll=new N,this._preventDefaultWhileDragging=o=>{this._activeDragInstances().length>0&&o.preventDefault()},this._persistentTouchmoveListener=o=>{this._activeDragInstances().length>0&&(this._activeDragInstances().some(this._draggingPredicate)&&o.preventDefault(),this.pointerMove.next(o))},this._document=i}registerDropContainer(e){this._dropInstances.has(e)||this._dropInstances.add(e)}registerDragItem(e){this._dragInstances.add(e),1===this._dragInstances.size&&this._ngZone.runOutsideAngular(()=>{this._document.addEventListener("touchmove",this._persistentTouchmoveListener,n6)})}removeDropContainer(e){this._dropInstances.delete(e)}removeDragItem(e){this._dragInstances.delete(e),this.stopDragging(e),0===this._dragInstances.size&&this._document.removeEventListener("touchmove",this._persistentTouchmoveListener,n6)}startDragging(e,i){if(!(this._activeDragInstances().indexOf(e)>-1)&&(this._loadResets(),this._activeDragInstances.update(o=>[...o,e]),1===this._activeDragInstances().length)){const o=i.type.startsWith("touch");this._globalListeners.set(o?"touchend":"mouseup",{handler:r=>this.pointerUp.next(r),options:!0}).set("scroll",{handler:r=>this.scroll.next(r),options:!0}).set("selectstart",{handler:this._preventDefaultWhileDragging,options:n6}),o||this._globalListeners.set("mousemove",{handler:r=>this.pointerMove.next(r),options:n6}),this._ngZone.runOutsideAngular(()=>{this._globalListeners.forEach((r,s)=>{this._document.addEventListener(s,r.handler,r.options)})})}}stopDragging(e){this._activeDragInstances.update(i=>{const o=i.indexOf(e);return o>-1?(i.splice(o,1),[...i]):i}),0===this._activeDragInstances().length&&this._clearGlobalListeners()}isDragging(e){return this._activeDragInstances().indexOf(e)>-1}scrolled(e){const i=[this.scroll];return e&&e!==this._document&&i.push(new Ut(o=>this._ngZone.runOutsideAngular(()=>{const s=a=>{this._activeDragInstances().length&&o.next(a)};return e.addEventListener("scroll",s,!0),()=>{e.removeEventListener("scroll",s,!0)}}))),Pn(...i)}ngOnDestroy(){this._dragInstances.forEach(e=>this.removeDragItem(e)),this._dropInstances.forEach(e=>this.removeDropContainer(e)),this._clearGlobalListeners(),this.pointerMove.complete(),this.pointerUp.complete()}_clearGlobalListeners(){this._globalListeners.forEach((e,i)=>{this._document.removeEventListener(i,e.handler,e.options)}),this._globalListeners.clear()}_loadResets(){if(!i6.has(this._appRef)){i6.add(this._appRef);const e=function NG(t,n){const e=xt(t),i=n.elementInjector||vh();return new $d(e).create(i,n.projectableNodes,n.hostElement,n.environmentInjector)}(nae,{environmentInjector:this._environmentInjector});this._appRef.onDestroy(()=>{i6.delete(this._appRef),0===i6.size&&e.destroy()})}}static#e=this.\u0275fac=function(i){return new(i||t)(R(De),R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const oae={dragStartThreshold:5,pointerDirectionChangeThreshold:5};let I7=(()=>{class t{constructor(e,i,o,r){this._document=e,this._ngZone=i,this._viewportRuler=o,this._dragDropRegistry=r}createDrag(e,i=oae){return new Qse(e,i,this._document,this._ngZone,this._viewportRuler,this._dragDropRegistry)}createDropList(e){return new eae(e,this._dragDropRegistry,this._document,this._ngZone,this._viewportRuler)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R(De),R(a2),R(iae))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const v2=new oe("CDK_DRAG_PARENT"),KA=new oe("CdkDragHandle");let JA=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._stateChanges.next(this)}constructor(e,i){this.element=e,this._parentDrag=i,this._stateChanges=new N,this._disabled=!1,i?._addHandle(this)}ngOnDestroy(){this._parentDrag?._removeHandle(this),this._stateChanges.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(v2,12))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkDragHandle",""]],hostAttrs:[1,"cdk-drag-handle"],inputs:{disabled:[2,"cdkDragHandleDisabled","disabled",O]},standalone:!0,features:[et([{provide:KA,useExisting:t}]),je]})}return t})();const ZA=new oe("CDK_DRAG_CONFIG"),QA=new oe("CdkDropList");let _2=(()=>{class t{static#e=this._dragInstances=[];get disabled(){return this._disabled||this.dropContainer&&this.dropContainer.disabled}set disabled(e){this._disabled=e,this._dragRef.disabled=this._disabled}constructor(e,i,o,r,s,a,c,l,u,p,_){this.element=e,this.dropContainer=i,this._ngZone=r,this._viewContainerRef=s,this._dir=c,this._changeDetectorRef=u,this._selfHandle=p,this._parentDrag=_,this._destroyed=new N,this._handles=new rt([]),this.started=new H,this.released=new H,this.ended=new H,this.entered=new H,this.exited=new H,this.dropped=new H,this.moved=new Ut(b=>{const y=this._dragRef.moved.pipe(Ie(z=>({source:this,pointerPosition:z.pointerPosition,event:z.event,delta:z.delta,distance:z.distance}))).subscribe(b);return()=>{y.unsubscribe()}}),this._injector=W(tn),this._dragRef=l.createDrag(e,{dragStartThreshold:a&&null!=a.dragStartThreshold?a.dragStartThreshold:5,pointerDirectionChangeThreshold:a&&null!=a.pointerDirectionChangeThreshold?a.pointerDirectionChangeThreshold:5,zIndex:a?.zIndex}),this._dragRef.data=this,t._dragInstances.push(this),a&&this._assignDefaults(a),i&&(this._dragRef._withDropContainer(i._dropListRef),i.addItem(this)),this._syncInputs(this._dragRef),this._handleEvents(this._dragRef)}getPlaceholderElement(){return this._dragRef.getPlaceholderElement()}getRootElement(){return this._dragRef.getRootElement()}reset(){this._dragRef.reset()}getFreeDragPosition(){return this._dragRef.getFreeDragPosition()}setFreeDragPosition(e){this._dragRef.setFreeDragPosition(e)}ngAfterViewInit(){Xa(()=>{this._updateRootElement(),this._setupHandlesListener(),this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)},{injector:this._injector})}ngOnChanges(e){const i=e.rootElementSelector,o=e.freeDragPosition;i&&!i.firstChange&&this._updateRootElement(),o&&!o.firstChange&&this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)}ngOnDestroy(){this.dropContainer&&this.dropContainer.removeItem(this);const e=t._dragInstances.indexOf(this);e>-1&&t._dragInstances.splice(e,1),this._ngZone.runOutsideAngular(()=>{this._handles.complete(),this._destroyed.next(),this._destroyed.complete(),this._dragRef.dispose()})}_addHandle(e){const i=this._handles.getValue();i.push(e),this._handles.next(i)}_removeHandle(e){const i=this._handles.getValue(),o=i.indexOf(e);o>-1&&(i.splice(o,1),this._handles.next(i))}_setPreviewTemplate(e){this._previewTemplate=e}_resetPreviewTemplate(e){e===this._previewTemplate&&(this._previewTemplate=null)}_setPlaceholderTemplate(e){this._placeholderTemplate=e}_resetPlaceholderTemplate(e){e===this._placeholderTemplate&&(this._placeholderTemplate=null)}_updateRootElement(){const e=this.element.nativeElement;let i=e;this.rootElementSelector&&(i=void 0!==e.closest?e.closest(this.rootElementSelector):e.parentElement?.closest(this.rootElementSelector)),this._dragRef.withRootElement(i||e)}_getBoundaryElement(){const e=this.boundaryElement;return e?"string"==typeof e?this.element.nativeElement.closest(e):Ni(e):null}_syncInputs(e){e.beforeStarted.subscribe(()=>{if(!e.isDragging()){const i=this._dir,o=this.dragStartDelay,r=this._placeholderTemplate?{template:this._placeholderTemplate.templateRef,context:this._placeholderTemplate.data,viewContainer:this._viewContainerRef}:null,s=this._previewTemplate?{template:this._previewTemplate.templateRef,context:this._previewTemplate.data,matchSize:this._previewTemplate.matchSize,viewContainer:this._viewContainerRef}:null;e.disabled=this.disabled,e.lockAxis=this.lockAxis,e.dragStartDelay="object"==typeof o&&o?o:Rs(o),e.constrainPosition=this.constrainPosition,e.previewClass=this.previewClass,e.withBoundaryElement(this._getBoundaryElement()).withPlaceholderTemplate(r).withPreviewTemplate(s).withPreviewContainer(this.previewContainer||"global"),i&&e.withDirection(i.value)}}),e.beforeStarted.pipe(io(1)).subscribe(()=>{if(this._parentDrag)return void e.withParent(this._parentDrag._dragRef);let i=this.element.nativeElement.parentElement;for(;i;){if(i.classList.contains("cdk-drag")){e.withParent(t._dragInstances.find(o=>o.element.nativeElement===i)?._dragRef||null);break}i=i.parentElement}})}_handleEvents(e){e.started.subscribe(i=>{this.started.emit({source:this,event:i.event}),this._changeDetectorRef.markForCheck()}),e.released.subscribe(i=>{this.released.emit({source:this,event:i.event})}),e.ended.subscribe(i=>{this.ended.emit({source:this,distance:i.distance,dropPoint:i.dropPoint,event:i.event}),this._changeDetectorRef.markForCheck()}),e.entered.subscribe(i=>{this.entered.emit({container:i.container.data,item:this,currentIndex:i.currentIndex})}),e.exited.subscribe(i=>{this.exited.emit({container:i.container.data,item:this})}),e.dropped.subscribe(i=>{this.dropped.emit({previousIndex:i.previousIndex,currentIndex:i.currentIndex,previousContainer:i.previousContainer.data,container:i.container.data,isPointerOverContainer:i.isPointerOverContainer,item:this,distance:i.distance,dropPoint:i.dropPoint,event:i.event})})}_assignDefaults(e){const{lockAxis:i,dragStartDelay:o,constrainPosition:r,previewClass:s,boundaryElement:a,draggingDisabled:c,rootElementSelector:l,previewContainer:u}=e;this.disabled=c??!1,this.dragStartDelay=o||0,i&&(this.lockAxis=i),r&&(this.constrainPosition=r),s&&(this.previewClass=s),a&&(this.boundaryElement=a),l&&(this.rootElementSelector=l),u&&(this.previewContainer=u)}_setupHandlesListener(){this._handles.pipe(ii(e=>{const i=e.map(o=>o.element);this._selfHandle&&this.rootElementSelector&&i.push(this.element),this._dragRef.withHandles(i)}),mn(e=>Pn(...e.map(i=>i._stateChanges.pipe(gn(i))))),I(this._destroyed)).subscribe(e=>{const i=this._dragRef,o=e.element.nativeElement;e.disabled?i.disableHandle(o):i.enableHandle(o)})}static#t=this.\u0275fac=function(i){return new(i||t)(v(Te),v(QA,12),v(It),v(De),v(Gn),v(ZA,8),v(wt,8),v(I7),v(Ue),v(KA,10),v(v2,12))};static#n=this.\u0275dir=de({type:t,selectors:[["","cdkDrag",""]],hostAttrs:[1,"cdk-drag"],hostVars:4,hostBindings:function(i,o){2&i&&Q("cdk-drag-disabled",o.disabled)("cdk-drag-dragging",o._dragRef.isDragging())},inputs:{data:[0,"cdkDragData","data"],lockAxis:[0,"cdkDragLockAxis","lockAxis"],rootElementSelector:[0,"cdkDragRootElement","rootElementSelector"],boundaryElement:[0,"cdkDragBoundary","boundaryElement"],dragStartDelay:[0,"cdkDragStartDelay","dragStartDelay"],freeDragPosition:[0,"cdkDragFreeDragPosition","freeDragPosition"],disabled:[2,"cdkDragDisabled","disabled",O],constrainPosition:[0,"cdkDragConstrainPosition","constrainPosition"],previewClass:[0,"cdkDragPreviewClass","previewClass"],previewContainer:[0,"cdkDragPreviewContainer","previewContainer"]},outputs:{started:"cdkDragStarted",released:"cdkDragReleased",ended:"cdkDragEnded",entered:"cdkDragEntered",exited:"cdkDragExited",dropped:"cdkDragDropped",moved:"cdkDragMoved"},exportAs:["cdkDrag"],standalone:!0,features:[et([{provide:v2,useExisting:t}]),je,ke]})}return t})();const N7=new oe("CdkDropListGroup");let aae=0,o6=(()=>{class t{static#e=this._dropLists=[];get disabled(){return this._disabled||!!this._group&&this._group.disabled}set disabled(e){this._dropListRef.disabled=this._disabled=e}constructor(e,i,o,r,s,a,c){this.element=e,this._changeDetectorRef=o,this._scrollDispatcher=r,this._dir=s,this._group=a,this._destroyed=new N,this.connectedTo=[],this.id="cdk-drop-list-"+aae++,this.enterPredicate=()=>!0,this.sortPredicate=()=>!0,this.dropped=new H,this.entered=new H,this.exited=new H,this.sorted=new H,this._unsortedItems=new Set,this._dropListRef=i.createDropList(e),this._dropListRef.data=this,c&&this._assignDefaults(c),this._dropListRef.enterPredicate=(l,u)=>this.enterPredicate(l.data,u.data),this._dropListRef.sortPredicate=(l,u,p)=>this.sortPredicate(l,u.data,p.data),this._setupInputSyncSubscription(this._dropListRef),this._handleEvents(this._dropListRef),t._dropLists.push(this),a&&a._items.add(this)}addItem(e){this._unsortedItems.add(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()}removeItem(e){this._unsortedItems.delete(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()}getSortedItems(){return Array.from(this._unsortedItems).sort((e,i)=>e._dragRef.getVisibleElement().compareDocumentPosition(i._dragRef.getVisibleElement())&Node.DOCUMENT_POSITION_FOLLOWING?-1:1)}ngOnDestroy(){const e=t._dropLists.indexOf(this);e>-1&&t._dropLists.splice(e,1),this._group&&this._group._items.delete(this),this._unsortedItems.clear(),this._dropListRef.dispose(),this._destroyed.next(),this._destroyed.complete()}_setupInputSyncSubscription(e){this._dir&&this._dir.change.pipe(gn(this._dir.value),I(this._destroyed)).subscribe(i=>e.withDirection(i)),e.beforeStarted.subscribe(()=>{const i=Uu(this.connectedTo).map(o=>"string"==typeof o?t._dropLists.find(s=>s.id===o):o);if(this._group&&this._group._items.forEach(o=>{-1===i.indexOf(o)&&i.push(o)}),!this._scrollableParentsResolved){const o=this._scrollDispatcher.getAncestorScrollContainers(this.element).map(r=>r.getElementRef().nativeElement);this._dropListRef.withScrollableParents(o),this._scrollableParentsResolved=!0}e.disabled=this.disabled,e.lockAxis=this.lockAxis,e.sortingDisabled=this.sortingDisabled,e.autoScrollDisabled=this.autoScrollDisabled,e.autoScrollStep=Rs(this.autoScrollStep,2),e.connectedTo(i.filter(o=>o&&o!==this).map(o=>o._dropListRef)).withOrientation(this.orientation)})}_handleEvents(e){e.beforeStarted.subscribe(()=>{this._syncItemsWithRef(),this._changeDetectorRef.markForCheck()}),e.entered.subscribe(i=>{this.entered.emit({container:this,item:i.item.data,currentIndex:i.currentIndex})}),e.exited.subscribe(i=>{this.exited.emit({container:this,item:i.item.data}),this._changeDetectorRef.markForCheck()}),e.sorted.subscribe(i=>{this.sorted.emit({previousIndex:i.previousIndex,currentIndex:i.currentIndex,container:this,item:i.item.data})}),e.dropped.subscribe(i=>{this.dropped.emit({previousIndex:i.previousIndex,currentIndex:i.currentIndex,previousContainer:i.previousContainer.data,container:i.container.data,item:i.item.data,isPointerOverContainer:i.isPointerOverContainer,distance:i.distance,dropPoint:i.dropPoint,event:i.event}),this._changeDetectorRef.markForCheck()}),Pn(e.receivingStarted,e.receivingStopped).subscribe(()=>this._changeDetectorRef.markForCheck())}_assignDefaults(e){const{lockAxis:i,draggingDisabled:o,sortingDisabled:r,listAutoScrollDisabled:s,listOrientation:a}=e;this.disabled=o??!1,this.sortingDisabled=r??!1,this.autoScrollDisabled=s??!1,this.orientation=a||"vertical",i&&(this.lockAxis=i)}_syncItemsWithRef(){this._dropListRef.withItems(this.getSortedItems().map(e=>e._dragRef))}static#t=this.\u0275fac=function(i){return new(i||t)(v(Te),v(I7),v(Ue),v(s2),v(wt,8),v(N7,12),v(ZA,8))};static#n=this.\u0275dir=de({type:t,selectors:[["","cdkDropList",""],["cdk-drop-list"]],hostAttrs:[1,"cdk-drop-list"],hostVars:7,hostBindings:function(i,o){2&i&&(Pt("id",o.id),Q("cdk-drop-list-disabled",o.disabled)("cdk-drop-list-dragging",o._dropListRef.isDragging())("cdk-drop-list-receiving",o._dropListRef.isReceiving()))},inputs:{connectedTo:[0,"cdkDropListConnectedTo","connectedTo"],data:[0,"cdkDropListData","data"],orientation:[0,"cdkDropListOrientation","orientation"],id:"id",lockAxis:[0,"cdkDropListLockAxis","lockAxis"],disabled:[2,"cdkDropListDisabled","disabled",O],sortingDisabled:[2,"cdkDropListSortingDisabled","sortingDisabled",O],enterPredicate:[0,"cdkDropListEnterPredicate","enterPredicate"],sortPredicate:[0,"cdkDropListSortPredicate","sortPredicate"],autoScrollDisabled:[2,"cdkDropListAutoScrollDisabled","autoScrollDisabled",O],autoScrollStep:[0,"cdkDropListAutoScrollStep","autoScrollStep"]},outputs:{dropped:"cdkDropListDropped",entered:"cdkDropListEntered",exited:"cdkDropListExited",sorted:"cdkDropListSorted"},exportAs:["cdkDropList"],standalone:!0,features:[et([{provide:N7,useValue:void 0},{provide:QA,useExisting:t}]),je]})}return t})(),uae=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[I7],imports:[C7]})}return t})();const hae=["nz-modal-close",""];function pae(t,n){if(1&t&&($e(0),S(1,"span",2),Ye()),2&t){const e=n.$implicit;d(),h("nzType",e)}}const XA=["modalElement"];function fae(t,n){if(1&t){const e=U();f(0,"button",16),D("click",function(){return T(e),M(g().onCloseClick())}),m()}}function mae(t,n){if(1&t&&($e(0),S(1,"span",12),Ye()),2&t){const e=g();d(),h("innerHTML",e.config.nzTitle,Wn)}}function gae(t,n){}function vae(t,n){1&t&&S(0,"div",12),2&t&&h("innerHTML",g().config.nzContent,Wn)}function _ae(t,n){if(1&t){const e=U();f(0,"button",17),D("click",function(){return T(e),M(g().onCancel())}),C(1),m()}if(2&t){const e=g();h("nzLoading",e.config.nzCancelLoading)("disabled",e.config.nzCancelDisabled),Pt("cdkFocusInitial","cancel"===e.config.nzAutofocus||null),d(),Ce(" ",e.config.nzCancelText||e.locale.cancelText," ")}}function bae(t,n){if(1&t){const e=U();f(0,"button",18),D("click",function(){return T(e),M(g().onOk())}),C(1),m()}if(2&t){const e=g();h("nzType",e.config.nzOkType)("nzLoading",e.config.nzOkLoading)("disabled",e.config.nzOkDisabled)("nzDanger",e.config.nzOkDanger),Pt("cdkFocusInitial","ok"===e.config.nzAutofocus||null),d(),Ce(" ",e.config.nzOkText||e.locale.okText," ")}}const yae=["nz-modal-footer",""],Cae=(t,n)=>({$implicit:t,modalRef:n});function wae(t,n){if(1&t){const e=U();f(0,"button",3),D("click",function(){const o=T(e).$implicit;return M(g(4).onButtonClick(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=g(4);h("hidden",!i.getButtonCallableProp(e,"show"))("nzLoading",i.getButtonCallableProp(e,"loading"))("disabled",i.getButtonCallableProp(e,"disabled"))("nzType",e.type)("nzDanger",e.danger)("nzShape",e.shape)("nzSize",e.size)("nzGhost",e.ghost),d(),Ce(" ",e.label," ")}}function zae(t,n){1&t&&ji(0,wae,2,9,"button",2,fr),2&t&&$i(g(3).buttons)}function Sae(t,n){1&t&&S(0,"div",1),2&t&&h("innerHTML",g(3).config.nzFooter,Wn)}function Tae(t,n){if(1&t&&($e(0),w(1,zae,2,0)(2,Sae,1,1,"div",1),Ye()),2&t){const e=g(2);d(),he(e.buttonsFooter?1:2)}}function Mae(t,n){if(1&t&&w(0,Tae,3,1,"ng-container",0),2&t){const e=g();h("nzStringTemplateOutlet",e.config.nzFooter)("nzStringTemplateOutletContext",sc(2,Cae,e.config.nzData,e.modalRef))}}function Dae(t,n){if(1&t){const e=U();f(0,"button",6),D("click",function(){return T(e),M(g(2).onCancel())}),C(1),m()}if(2&t){const e=g(2);h("nzLoading",e.config.nzCancelLoading)("disabled",e.config.nzCancelDisabled),Pt("cdkFocusInitial","cancel"===e.config.nzAutofocus||null),d(),Ce(" ",e.config.nzCancelText||e.locale.cancelText," ")}}function xae(t,n){if(1&t){const e=U();f(0,"button",7),D("click",function(){return T(e),M(g(2).onOk())}),C(1),m()}if(2&t){const e=g(2);h("nzType",e.config.nzOkType)("nzDanger",e.config.nzOkDanger)("nzLoading",e.config.nzOkLoading)("disabled",e.config.nzOkDisabled),Pt("cdkFocusInitial","ok"===e.config.nzAutofocus||null),d(),Ce(" ",e.config.nzOkText||e.locale.okText," ")}}function Eae(t,n){if(1&t&&w(0,Dae,2,4,"button",4)(1,xae,2,6,"button",5),2&t){const e=g();he(null!==e.config.nzCancelText?0:-1),d(),he(null!==e.config.nzOkText?1:-1)}}const kae=["nz-modal-title",""];function Aae(t,n){if(1&t&&($e(0),S(1,"div",2),Ye()),2&t){const e=g();d(),h("innerHTML",e.config.nzTitle,Wn)}}function Oae(t,n){if(1&t){const e=U();f(0,"button",9),D("click",function(){return T(e),M(g().onCloseClick())}),m()}}function Pae(t,n){1&t&&S(0,"div",10),2&t&&Lt("cursor",g().config.nzDraggable?"move":"auto")}function Iae(t,n){}function Nae(t,n){1&t&&S(0,"div",7),2&t&&h("innerHTML",g().config.nzContent,Wn)}function Vae(t,n){if(1&t){const e=U();f(0,"div",11),D("cancelTriggered",function(){return T(e),M(g().onCloseClick())})("okTriggered",function(){return T(e),M(g().onOkClick())}),m()}2&t&&h("modalRef",g().modalRef)}const eO=()=>{};class Ec{constructor(){this.nzCentered=!1,this.nzClosable=!0,this.nzOkLoading=!1,this.nzOkDisabled=!1,this.nzCancelDisabled=!1,this.nzCancelLoading=!1,this.nzDraggable=!1,this.nzNoAnimation=!1,this.nzAutofocus="auto",this.nzKeyboard=!0,this.nzZIndex=1e3,this.nzWidth=520,this.nzCloseIcon="close",this.nzOkType="primary",this.nzOkDanger=!1,this.nzModalType="default",this.nzOnCancel=eO,this.nzOnOk=eO,this.nzIconType="question-circle"}}const r6="ant-modal-mask",s6="modal",Fae=new oe("NZ_MODAL_DATA"),tO={modalContainer:Vo("modalContainer",[Co("void, exit",Ke({})),Co("enter",Ke({})),un("* => enter",an(".24s",Ke({}))),un("* => void, * => exit",an(".2s",Ke({})))])};let V7=(()=>{class t{constructor(e){this.config=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ec))};static#t=this.\u0275cmp=q({type:t,selectors:[["button","nz-modal-close",""]],hostAttrs:["aria-label","Close",1,"ant-modal-close"],exportAs:["NzModalCloseBuiltin"],standalone:!0,features:[me],attrs:hae,decls:2,vars:1,consts:[[1,"ant-modal-close-x"],[4,"nzStringTemplateOutlet"],["nz-icon","",1,"ant-modal-close-icon",3,"nzType"]],template:function(i,o){1&i&&(f(0,"span",0),w(1,pae,2,1,"ng-container",1),m()),2&i&&(d(),h("nzStringTemplateOutlet",o.config.nzCloseIcon))},dependencies:[On,cn,Tn,Sn],encapsulation:2,changeDetection:0})}return t})();function b2(t,n,e){return typeof t>"u"?typeof n>"u"?e:n:t}function nO(t){const{nzCentered:n,nzMask:e,nzMaskClosable:i,nzClosable:o,nzOkLoading:r,nzOkDisabled:s,nzCancelDisabled:a,nzCancelLoading:c,nzKeyboard:l,nzNoAnimation:u,nzDraggable:p,nzContent:_,nzFooter:b,nzZIndex:y,nzWidth:z,nzWrapClassName:E,nzClassName:k,nzStyle:A,nzTitle:ie,nzCloseIcon:pe,nzMaskStyle:xe,nzBodyStyle:Ge,nzOkText:dt,nzCancelText:Bt,nzOkType:zt,nzOkDanger:In,nzIconType:so,nzModalType:Kn,nzOnOk:rr,nzOnCancel:sr,nzAfterOpen:ar,nzAfterClose:Pe,nzCloseOnNavigation:Je,nzAutofocus:tt}=t;return{nzCentered:n,nzMask:e,nzMaskClosable:i,nzDraggable:p,nzClosable:o,nzOkLoading:r,nzOkDisabled:s,nzCancelDisabled:a,nzCancelLoading:c,nzKeyboard:l,nzNoAnimation:u,nzContent:_,nzFooter:b,nzZIndex:y,nzWidth:z,nzWrapClassName:E,nzClassName:k,nzStyle:A,nzTitle:ie,nzCloseIcon:pe,nzMaskStyle:xe,nzBodyStyle:Ge,nzOkText:dt,nzCancelText:Bt,nzOkType:zt,nzOkDanger:In,nzIconType:so,nzModalType:Kn,nzOnOk:rr,nzOnCancel:sr,nzAfterOpen:ar,nzAfterClose:Pe,nzCloseOnNavigation:Je,nzAutofocus:tt}}function iO(){throw Error("Attempting to attach modal content after content is already attached")}let oO=(()=>{class t extends t7{get showMask(){const e=this.nzConfigService.getConfigForComponent(s6)||{};return!!b2(this.config.nzMask,e.nzMask,!0)}get maskClosable(){const e=this.nzConfigService.getConfigForComponent(s6)||{};return!!b2(this.config.nzMaskClosable,e.nzMaskClosable,!0)}constructor(e,i,o,r,s,a,c,l,u,p){super(),this.ngZone=e,this.host=i,this.focusTrapFactory=o,this.cdr=r,this.render=s,this.overlayRef=a,this.nzConfigService=c,this.config=l,this.animationType=p,this.animationStateChanged=new H,this.containerClick=new H,this.cancelTriggered=new H,this.okTriggered=new H,this.state="enter",this.isStringContent=!1,this.dir="ltr",this.elementFocusedBeforeModalWasOpened=null,this.mouseDown=!1,this.oldMaskStyle=null,this.destroy$=new N,this.document=u,this.dir=a.getDirection(),this.isStringContent="string"==typeof l.nzContent,this.nzConfigService.getConfigChangeEventForComponent(s6).pipe(I(this.destroy$)).subscribe(()=>{this.updateMaskClassname()})}onContainerClick(e){e.target===e.currentTarget&&!this.mouseDown&&this.showMask&&this.maskClosable&&this.containerClick.emit()}onCloseClick(){this.cancelTriggered.emit()}onOkClick(){this.okTriggered.emit()}attachComponentPortal(e){return this.portalOutlet.hasAttached()&&iO(),this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop(),this.portalOutlet.attachComponentPortal(e)}attachTemplatePortal(e){return this.portalOutlet.hasAttached()&&iO(),this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop(),this.portalOutlet.attachTemplatePortal(e)}attachStringContent(){this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop()}getNativeElement(){return this.host.nativeElement}animationDisabled(){return this.config.nzNoAnimation||"NoopAnimations"===this.animationType}setModalTransformOrigin(){const e=this.modalElementRef.nativeElement;if(this.elementFocusedBeforeModalWasOpened){const i=this.elementFocusedBeforeModalWasOpened.getBoundingClientRect(),o=hE(this.elementFocusedBeforeModalWasOpened);this.render.setStyle(e,"transform-origin",`${o.left+i.width/2-e.offsetLeft}px ${o.top+i.height/2-e.offsetTop}px 0px`)}}savePreviouslyFocusedElement(){this.focusTrap||(this.focusTrap=this.focusTrapFactory.create(this.host.nativeElement)),this.document&&(this.elementFocusedBeforeModalWasOpened=this.document.activeElement,this.host.nativeElement.focus&&this.ngZone.runOutsideAngular(()=>p2(()=>this.host.nativeElement.focus())))}trapFocus(){const e=this.host.nativeElement;if(this.config.nzAutofocus)this.focusTrap.focusInitialElementWhenReady();else{const i=this.document.activeElement;i!==e&&!e.contains(i)&&e.focus()}}restoreFocus(){const e=this.elementFocusedBeforeModalWasOpened;if(e&&"function"==typeof e.focus){const i=this.document.activeElement,o=this.host.nativeElement;(!i||i===this.document.body||i===o||o.contains(i))&&e.focus()}this.focusTrap&&this.focusTrap.destroy()}setEnterAnimationClass(){if(this.animationDisabled())return;this.setModalTransformOrigin();const e=this.modalElementRef.nativeElement,i=this.overlayRef.backdropElement;e.classList.add("ant-zoom-enter"),e.classList.add("ant-zoom-enter-active"),i&&(i.classList.add("ant-fade-enter"),i.classList.add("ant-fade-enter-active"))}setExitAnimationClass(){const e=this.modalElementRef.nativeElement;e.classList.add("ant-zoom-leave"),e.classList.add("ant-zoom-leave-active"),this.setMaskExitAnimationClass()}setMaskExitAnimationClass(e=!1){const i=this.overlayRef.backdropElement;if(i){if(this.animationDisabled()||e)return void i.classList.remove(r6);i.classList.add("ant-fade-leave"),i.classList.add("ant-fade-leave-active")}}cleanAnimationClass(){if(this.animationDisabled())return;const e=this.overlayRef.backdropElement,i=this.modalElementRef.nativeElement;e&&(e.classList.remove("ant-fade-enter"),e.classList.remove("ant-fade-enter-active")),i.classList.remove("ant-zoom-enter"),i.classList.remove("ant-zoom-enter-active"),i.classList.remove("ant-zoom-leave"),i.classList.remove("ant-zoom-leave-active")}setZIndexForBackdrop(){const e=this.overlayRef.backdropElement;e&&br(this.config.nzZIndex)&&this.render.setStyle(e,"z-index",this.config.nzZIndex)}bindBackdropStyle(){const e=this.overlayRef.backdropElement;if(e&&(this.oldMaskStyle&&(Object.keys(this.oldMaskStyle).forEach(o=>{this.render.removeStyle(e,o)}),this.oldMaskStyle=null),this.setZIndexForBackdrop(),"object"==typeof this.config.nzMaskStyle&&Object.keys(this.config.nzMaskStyle).length)){const i={...this.config.nzMaskStyle};Object.keys(i).forEach(o=>{this.render.setStyle(e,o,i[o])}),this.oldMaskStyle=i}}updateMaskClassname(){const e=this.overlayRef.backdropElement;e&&(this.showMask?e.classList.add(r6):e.classList.remove(r6))}onAnimationDone(e){"enter"===e.toState?this.trapFocus():"exit"===e.toState&&this.restoreFocus(),this.cleanAnimationClass(),this.animationStateChanged.emit(e)}onAnimationStart(e){"enter"===e.toState?(this.setEnterAnimationClass(),this.bindBackdropStyle()):"exit"===e.toState&&this.setExitAnimationClass(),this.animationStateChanged.emit(e)}startExitAnimation(){this.state="exit",this.cdr.markForCheck()}ngOnDestroy(){this.setMaskExitAnimationClass(!0),this.destroy$.next(!0),this.destroy$.complete()}setupMouseListeners(e){this.ngZone.runOutsideAngular(()=>{nn(this.host.nativeElement,"mouseup").pipe(I(this.destroy$)).subscribe(()=>{this.mouseDown&&setTimeout(()=>{this.mouseDown=!1})}),nn(e.nativeElement,"mousedown").pipe(I(this.destroy$)).subscribe(()=>{this.mouseDown=!0})})}static#e=this.\u0275fac=function(i){U8()};static#t=this.\u0275dir=de({type:t,features:[mt]})}return t})(),rO=(()=>{class t extends oO{constructor(e,i,o,r,s,a,c,l,u,p,_){super(e,o,r,s,a,c,l,u,p,_),this.i18n=i,this.config=u,this.cancelTriggered=new H,this.okTriggered=new H,this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Modal")})}ngOnInit(){this.setupMouseListeners(this.modalElementRef)}onCancel(){this.cancelTriggered.emit()}onOk(){this.okTriggered.emit()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v($s),v(Te),v(M7),v(Ue),v($t),v(W3),v(si),v(Ec),v(It,8),v(ta,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-modal-confirm-container"]],viewQuery:function(i,o){if(1&i&&(ft(Qu,7),ft(XA,7)),2&i){let r;Ae(r=Oe())&&(o.portalOutlet=r.first),Ae(r=Oe())&&(o.modalElementRef=r.first)}},hostAttrs:["tabindex","-1","role","dialog"],hostVars:10,hostBindings:function(i,o){1&i&&(F4("@modalContainer.start",function(s){return o.onAnimationStart(s)})("@modalContainer.done",function(s){return o.onAnimationDone(s)}),D("click",function(s){return o.onContainerClick(s)})),2&i&&(oc("@.disabled",o.config.nzNoAnimation)("@modalContainer",o.state),k4(o.config.nzWrapClassName?"ant-modal-wrap "+o.config.nzWrapClassName:"ant-modal-wrap"),Lt("z-index",o.config.nzZIndex),Q("ant-modal-wrap-rtl","rtl"===o.dir)("ant-modal-centered",o.config.nzCentered))},outputs:{cancelTriggered:"cancelTriggered",okTriggered:"okTriggered"},exportAs:["nzModalConfirmContainer"],standalone:!0,features:[mt,me],decls:17,vars:13,consts:[["modalElement",""],["role","document",1,"ant-modal",3,"ngClass","ngStyle"],[1,"ant-modal-content"],["nz-modal-close",""],[1,"ant-modal-body",3,"ngStyle"],[1,"ant-modal-confirm-body-wrapper"],[1,"ant-modal-confirm-body"],["nz-icon","",3,"nzType"],[1,"ant-modal-confirm-title"],[4,"nzStringTemplateOutlet"],[1,"ant-modal-confirm-content"],["cdkPortalOutlet",""],[3,"innerHTML"],[1,"ant-modal-confirm-btns"],["nz-button","",3,"nzLoading","disabled"],["nz-button","",3,"nzType","nzLoading","disabled","nzDanger"],["nz-modal-close","",3,"click"],["nz-button","",3,"click","nzLoading","disabled"],["nz-button","",3,"click","nzType","nzLoading","disabled","nzDanger"]],template:function(i,o){1&i&&(f(0,"div",1,0),Fr(2,"nzToCssUnit"),f(3,"div",2),w(4,fae,1,0,"button",3),f(5,"div",4)(6,"div",5)(7,"div",6),S(8,"span",7),f(9,"span",8),w(10,mae,2,1,"ng-container",9),m(),f(11,"div",10),w(12,gae,0,0,"ng-template",11)(13,vae,1,1,"div",12),m()(),f(14,"div",13),w(15,_ae,2,4,"button",14)(16,bae,2,6,"button",15),m()()()()()),2&i&&(Lt("width",Rr(2,11,null==o.config?null:o.config.nzWidth)),h("ngClass",o.config.nzClassName)("ngStyle",o.config.nzStyle),d(4),he(o.config.nzClosable?4:-1),d(),h("ngStyle",o.config.nzBodyStyle),d(3),h("nzType",o.config.nzIconType),d(2),h("nzStringTemplateOutlet",o.config.nzTitle),d(3),he(o.isStringContent?13:-1),d(2),he(null!==o.config.nzCancelText?15:-1),d(),he(null!==o.config.nzOkText?16:-1))},dependencies:[Zo,ti,mA,T7,On,cn,V7,Tn,Sn,z3,Qu,h2,nr,mi,tr],encapsulation:2,data:{animation:[tO.modalContainer]}})}return t})(),sO=(()=>{class t{constructor(e,i){this.i18n=e,this.config=i,this.buttonsFooter=!1,this.buttons=[],this.cancelTriggered=new H,this.okTriggered=new H,this.destroy$=new N,Array.isArray(i.nzFooter)&&(this.buttonsFooter=!0,this.buttons=i.nzFooter.map(Lae)),this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Modal")})}onCancel(){this.cancelTriggered.emit()}onOk(){this.okTriggered.emit()}getButtonCallableProp(e,i){const o=e[i],r=this.modalRef.getContentComponent();return"function"==typeof o?o.apply(e,r&&[r]):o}onButtonClick(e){if(!this.getButtonCallableProp(e,"loading")){const o=this.getButtonCallableProp(e,"onClick");e.autoLoading&&Y5(o)&&(e.loading=!0,o.then(()=>e.loading=!1).catch(r=>{throw e.loading=!1,r}))}}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v($s),v(Ec))};static#t=this.\u0275cmp=q({type:t,selectors:[["div","nz-modal-footer",""]],hostAttrs:[1,"ant-modal-footer"],inputs:{modalRef:"modalRef"},outputs:{cancelTriggered:"cancelTriggered",okTriggered:"okTriggered"},exportAs:["NzModalFooterBuiltin"],standalone:!0,features:[me],attrs:yae,decls:2,vars:1,consts:[[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[3,"innerHTML"],["nz-button","",3,"hidden","nzLoading","disabled","nzType","nzDanger","nzShape","nzSize","nzGhost"],["nz-button","",3,"click","hidden","nzLoading","disabled","nzType","nzDanger","nzShape","nzSize","nzGhost"],["nz-button","",3,"nzLoading","disabled"],["nz-button","",3,"nzType","nzDanger","nzLoading","disabled"],["nz-button","",3,"click","nzLoading","disabled"],["nz-button","",3,"click","nzType","nzDanger","nzLoading","disabled"]],template:function(i,o){1&i&&w(0,Mae,1,5,"ng-container")(1,Eae,2,2),2&i&&he(o.config.nzFooter?0:1)},dependencies:[Tn,Sn,h2,nr,mi,tr],encapsulation:2})}return t})();function Lae(t){return{type:null,size:"default",autoLoading:!0,show:!0,loading:!1,disabled:!1,...t}}let aO=(()=>{class t{constructor(e){this.config=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ec))};static#t=this.\u0275cmp=q({type:t,selectors:[["div","nz-modal-title",""]],hostAttrs:[1,"ant-modal-header"],exportAs:["NzModalTitleBuiltin"],standalone:!0,features:[me],attrs:kae,decls:2,vars:1,consts:[[1,"ant-modal-title"],[4,"nzStringTemplateOutlet"],[3,"innerHTML"]],template:function(i,o){1&i&&(f(0,"div",0),w(1,Aae,2,1,"ng-container",1),m()),2&i&&(d(),h("nzStringTemplateOutlet",o.config.nzTitle))},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),cO=(()=>{class t extends oO{constructor(e,i,o,r,s,a,c,l,u,p){super(e,i,o,r,s,a,c,l,u,p),this.config=l}ngOnInit(){this.setupMouseListeners(this.modalElementRef)}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(M7),v(Ue),v($t),v(W3),v(si),v(Ec),v(It,8),v(ta,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-modal-container"]],viewQuery:function(i,o){if(1&i&&(ft(Qu,7),ft(XA,7)),2&i){let r;Ae(r=Oe())&&(o.portalOutlet=r.first),Ae(r=Oe())&&(o.modalElementRef=r.first)}},hostAttrs:["tabindex","-1","role","dialog"],hostVars:10,hostBindings:function(i,o){1&i&&(F4("@modalContainer.start",function(s){return o.onAnimationStart(s)})("@modalContainer.done",function(s){return o.onAnimationDone(s)}),D("click",function(s){return o.onContainerClick(s)})),2&i&&(oc("@.disabled",o.config.nzNoAnimation)("@modalContainer",o.state),k4(o.config.nzWrapClassName?"ant-modal-wrap "+o.config.nzWrapClassName:"ant-modal-wrap"),Lt("z-index",o.config.nzZIndex),Q("ant-modal-wrap-rtl","rtl"===o.dir)("ant-modal-centered",o.config.nzCentered))},exportAs:["nzModalContainer"],standalone:!0,features:[mt,me],decls:10,vars:12,consts:[["modalElement",""],["cdkDrag","","cdkDragBoundary",".cdk-overlay-container","role","document",1,"ant-modal",3,"cdkDragDisabled","ngClass","ngStyle"],[1,"ant-modal-content"],["nz-modal-close",""],["nz-modal-title","","cdkDragHandle","",3,"cursor"],[1,"ant-modal-body",3,"ngStyle"],["cdkPortalOutlet",""],[3,"innerHTML"],["nz-modal-footer","",3,"modalRef"],["nz-modal-close","",3,"click"],["nz-modal-title","","cdkDragHandle",""],["nz-modal-footer","",3,"cancelTriggered","okTriggered","modalRef"]],template:function(i,o){1&i&&(f(0,"div",1,0),Fr(2,"nzToCssUnit"),f(3,"div",2),w(4,Oae,1,0,"button",3)(5,Pae,1,2,"div",4),f(6,"div",5),w(7,Iae,0,0,"ng-template",6)(8,Nae,1,1,"div",7),m(),w(9,Vae,1,1,"div",8),m()()),2&i&&(Lt("width",Rr(2,10,null==o.config?null:o.config.nzWidth)),h("cdkDragDisabled",!o.config.nzDraggable)("ngClass",o.config.nzClassName)("ngStyle",o.config.nzStyle),d(4),he(o.config.nzClosable?4:-1),d(),he(o.config.nzTitle?5:-1),d(),h("ngStyle",o.config.nzBodyStyle),d(2),he(o.isStringContent?8:-1),d(),he(null!==o.config.nzFooter?9:-1))},dependencies:[Zo,ti,V7,aO,z3,Qu,sO,mA,T7,_2,JA],encapsulation:2,data:{animation:[tO.modalContainer]}})}return t})();class a6{constructor(n,e,i){this.overlayRef=n,this.config=e,this.containerInstance=i,this.componentInstance=null,this.componentRef=null,this.state=0,this.afterClose=new N,this.afterOpen=new N,this.destroy$=new N,i.animationStateChanged.pipe(yt(o=>"done"===o.phaseName&&"enter"===o.toState),io(1)).subscribe(()=>{this.afterOpen.next(),this.afterOpen.complete(),e.nzAfterOpen instanceof H&&e.nzAfterOpen.emit()}),i.animationStateChanged.pipe(yt(o=>"done"===o.phaseName&&"exit"===o.toState),io(1)).subscribe(()=>{clearTimeout(this.closeTimeout),this._finishDialogClose()}),i.containerClick.pipe(I(this.destroy$)).subscribe(()=>{!this.config.nzCancelLoading&&!this.config.nzOkLoading&&this.trigger("cancel")}),n.keydownEvents().pipe(yt(o=>this.config.nzKeyboard&&!this.config.nzCancelLoading&&!this.config.nzOkLoading&&27===o.keyCode&&!l2(o))).subscribe(o=>{o.preventDefault(),this.trigger("cancel")}),i.cancelTriggered.pipe(I(this.destroy$)).subscribe(()=>this.trigger("cancel")),i.okTriggered.pipe(I(this.destroy$)).subscribe(()=>this.trigger("ok")),n.detachments().subscribe(()=>{this.afterClose.next(this.result),this.afterClose.complete(),e.nzAfterClose instanceof H&&e.nzAfterClose.emit(this.result),this.componentInstance=null,this.componentRef=null,this.overlayRef.dispose()})}getContentComponent(){return this.componentInstance}getContentComponentRef(){return this.componentRef}getElement(){return this.containerInstance.getNativeElement()}destroy(n){this.close(n)}triggerOk(){return this.trigger("ok")}triggerCancel(){return this.trigger("cancel")}close(n){0===this.state&&(this.result=n,this.containerInstance.animationStateChanged.pipe(yt(e=>"start"===e.phaseName),io(1)).subscribe(e=>{this.overlayRef.detachBackdrop(),this.closeTimeout=setTimeout(()=>{this._finishDialogClose()},e.totalTime+100)}),this.containerInstance.startExitAnimation(),this.state=1)}updateConfig(n){Object.assign(this.config,n),this.containerInstance.bindBackdropStyle(),this.containerInstance.cdr.markForCheck()}getState(){return this.state}getConfig(){return this.config}getBackdropElement(){return this.overlayRef.backdropElement}trigger(n){var e=this;return Di(function*(){if(1===e.state)return;const i={ok:e.config.nzOnOk,cancel:e.config.nzOnCancel}[n],o={ok:"nzOkLoading",cancel:"nzCancelLoading"}[n];if(!e.config[o])if(i instanceof H)i.emit(e.getContentComponent());else if("function"==typeof i){const s=i(e.getContentComponent());if(Y5(s)){e.config[o]=!0;let a=!1;try{a=yield s}finally{e.config[o]=!1,e.closeWhitResult(a)}}else e.closeWhitResult(s)}})()}closeWhitResult(n){!1!==n&&this.close(n)}_finishDialogClose(){this.state=2,this.overlayRef.dispose(),this.destroy$.next()}}let za=(()=>{class t{get openModals(){return this.parentModal?this.parentModal.openModals:this.openModalsAtThisLevel}get _afterAllClosed(){const e=this.parentModal;return e?e._afterAllClosed:this.afterAllClosedAtThisLevel}constructor(e,i,o,r,s){this.overlay=e,this.injector=i,this.nzConfigService=o,this.parentModal=r,this.directionality=s,this.openModalsAtThisLevel=[],this.afterAllClosedAtThisLevel=new N,this.afterAllClose=mg(()=>this.openModals.length?this._afterAllClosed:this._afterAllClosed.pipe(gn(void 0)))}create(e){return this.open(e.nzContent,e)}closeAll(){this.closeModals(this.openModals)}confirm(e={},i="confirm"){return"nzWidth"in e||(e.nzWidth=416),"nzMaskClosable"in e||(e.nzMaskClosable=!1),e.nzModalType="confirm",e.nzClassName=`ant-modal-confirm ant-modal-confirm-${i} ${e.nzClassName||""}`,this.create(e)}info(e={}){return this.confirmFactory(e,"info")}success(e={}){return this.confirmFactory(e,"success")}error(e={}){return this.confirmFactory(e,"error")}warning(e={}){return this.confirmFactory(e,"warning")}open(e,i){const o=function Rae(t,n){return{...n,...t}}(i||{},new Ec),r=this.createOverlay(o),s=this.attachModalContainer(r,o),a=this.attachModalContent(e,s,r,o);return s.modalRef=a,function ise(t,n){n&&(t._host.style.zIndex=`${n}`)}(r,i?.nzZIndex),this.openModals.push(a),a.afterClose.subscribe(()=>this.removeOpenModal(a)),a}removeOpenModal(e){const i=this.openModals.indexOf(e);i>-1&&(this.openModals.splice(i,1),this.openModals.length||this._afterAllClosed.next())}closeModals(e){let i=e.length;for(;i--;)e[i].close(),this.openModals.length||this._afterAllClosed.next()}createOverlay(e){const i=this.nzConfigService.getConfigForComponent(s6)||{},o=new S7({hasBackdrop:!0,scrollStrategy:this.overlay.scrollStrategies.block(),positionStrategy:this.overlay.position().global(),disposeOnNavigation:b2(e.nzCloseOnNavigation,i.nzCloseOnNavigation,!0),direction:b2(e.nzDirection,i.nzDirection,this.directionality.value)});return b2(e.nzMask,i.nzMask,!0)&&(o.backdropClass=r6),this.overlay.create(o)}attachModalContainer(e,i){const r=tn.create({parent:i&&i.nzViewContainerRef&&i.nzViewContainerRef.injector||this.injector,providers:[{provide:W3,useValue:e},{provide:Ec,useValue:i}]}),a=new Ju("confirm"===i.nzModalType?rO:cO,i.nzViewContainerRef,r);return e.attach(a).instance}attachModalContent(e,i,o,r){const s=new a6(o,r,i);if(e instanceof Gt)i.attachTemplatePortal(new Zu(e,null,{$implicit:r.nzData,modalRef:s}));else if(br(e)&&"string"!=typeof e){const a=this.createInjector(s,r),c=i.attachComponentPortal(new Ju(e,r.nzViewContainerRef,a));s.componentRef=c,s.componentInstance=c.instance}else i.attachStringContent();return s}createInjector(e,i){return tn.create({parent:i&&i.nzViewContainerRef&&i.nzViewContainerRef.injector||this.injector,providers:[{provide:a6,useValue:e},{provide:Fae,useValue:i.nzData}]})}confirmFactory(e={},i){return"nzIconType"in e||(e.nzIconType={info:"info-circle",success:"check-circle",error:"close-circle",warning:"exclamation-circle"}[i]),"nzCancelText"in e||(e.nzCancelText=null),this.confirm(e,i)}ngOnDestroy(){this.closeModals(this.openModalsAtThisLevel),this.afterAllClosedAtThisLevel.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(R(ya),R(tn),R(si),R(t,12),R(wt,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),y2=(()=>{class t{constructor(e){this.templateRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzModalContent",""]],exportAs:["nzModalContent"],standalone:!0})}return t})(),Hae=(()=>{class t{constructor(e,i){this.nzModalRef=e,this.templateRef=i,this.nzModalRef&&this.nzModalRef.updateConfig({nzFooter:this.templateRef})}static#e=this.\u0275fac=function(i){return new(i||t)(v(a6,8),v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzModalFooter",""]],exportAs:["nzModalFooter"],standalone:!0})}return t})(),Bae=(()=>{class t{constructor(e,i){this.nzModalRef=e,this.templateRef=i,this.nzModalRef&&this.nzModalRef.updateConfig({nzTitle:this.templateRef})}static#e=this.\u0275fac=function(i){return new(i||t)(v(a6,8),v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzModalTitle",""]],exportAs:["nzModalTitle"],standalone:!0})}return t})(),c6=(()=>{class t{set modalTitle(e){e&&this.setTitleWithTemplate(e)}set modalFooter(e){e&&this.setFooterWithTemplate(e)}get afterOpen(){return this.nzAfterOpen.asObservable()}get afterClose(){return this.nzAfterClose.asObservable()}constructor(e,i,o){this.cdr=e,this.modal=i,this.viewContainerRef=o,this.nzVisible=!1,this.nzClosable=!0,this.nzOkLoading=!1,this.nzOkDisabled=!1,this.nzCancelDisabled=!1,this.nzCancelLoading=!1,this.nzKeyboard=!0,this.nzNoAnimation=!1,this.nzCentered=!1,this.nzDraggable=!1,this.nzZIndex=1e3,this.nzWidth=520,this.nzCloseIcon="close",this.nzOkType="primary",this.nzOkDanger=!1,this.nzIconType="question-circle",this.nzModalType="default",this.nzAutofocus="auto",this.nzOnOk=new H,this.nzOnCancel=new H,this.nzAfterOpen=new H,this.nzAfterClose=new H,this.nzVisibleChange=new H,this.modalRef=null,this.destroy$=new N}open(){if(this.nzVisible||(this.nzVisible=!0,this.nzVisibleChange.emit(!0)),!this.modalRef){const e=this.getConfig();this.modalRef=this.modal.create(e),this.modalRef.afterClose.asObservable().pipe(I(this.destroy$)).subscribe(()=>{this.close()})}}close(e){this.nzVisible&&(this.nzVisible=!1,this.nzVisibleChange.emit(!1)),this.modalRef&&(this.modalRef.close(e),this.modalRef=null)}destroy(e){this.close(e)}triggerOk(){this.modalRef?.triggerOk()}triggerCancel(){this.modalRef?.triggerCancel()}getContentComponent(){return this.modalRef?.getContentComponent()}getElement(){return this.modalRef?.getElement()}getModalRef(){return this.modalRef}setTitleWithTemplate(e){this.nzTitle=e,this.modalRef&&Promise.resolve().then(()=>{this.modalRef.updateConfig({nzTitle:this.nzTitle})})}setFooterWithTemplate(e){this.nzFooter=e,this.modalRef&&Promise.resolve().then(()=>{this.modalRef.updateConfig({nzFooter:this.nzFooter})}),this.cdr.markForCheck()}getConfig(){const e=nO(this);return e.nzViewContainerRef=this.viewContainerRef,e.nzContent=this.nzContent||this.contentFromContentChild,e}ngOnChanges(e){const{nzVisible:i,...o}=e;Object.keys(o).length&&this.modalRef&&this.modalRef.updateConfig(nO(this)),i&&(this.nzVisible?this.open():this.close())}ngOnDestroy(){this.modalRef?._finishDialogClose(),this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(za),v(Gn))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-modal"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,Bae,7,Gt),fn(r,y2,7,Gt),fn(r,Hae,7,Gt)),2&i){let s;Ae(s=Oe())&&(o.modalTitle=s.first),Ae(s=Oe())&&(o.contentFromContentChild=s.first),Ae(s=Oe())&&(o.modalFooter=s.first)}},inputs:{nzMask:[2,"nzMask","nzMask",O],nzMaskClosable:[2,"nzMaskClosable","nzMaskClosable",O],nzCloseOnNavigation:[2,"nzCloseOnNavigation","nzCloseOnNavigation",O],nzVisible:[2,"nzVisible","nzVisible",O],nzClosable:[2,"nzClosable","nzClosable",O],nzOkLoading:[2,"nzOkLoading","nzOkLoading",O],nzOkDisabled:[2,"nzOkDisabled","nzOkDisabled",O],nzCancelDisabled:[2,"nzCancelDisabled","nzCancelDisabled",O],nzCancelLoading:[2,"nzCancelLoading","nzCancelLoading",O],nzKeyboard:[2,"nzKeyboard","nzKeyboard",O],nzNoAnimation:[2,"nzNoAnimation","nzNoAnimation",O],nzCentered:[2,"nzCentered","nzCentered",O],nzDraggable:[2,"nzDraggable","nzDraggable",O],nzContent:"nzContent",nzFooter:"nzFooter",nzZIndex:[2,"nzZIndex","nzZIndex",Pi],nzWidth:"nzWidth",nzWrapClassName:"nzWrapClassName",nzClassName:"nzClassName",nzStyle:"nzStyle",nzTitle:"nzTitle",nzCloseIcon:"nzCloseIcon",nzMaskStyle:"nzMaskStyle",nzBodyStyle:"nzBodyStyle",nzOkText:"nzOkText",nzCancelText:"nzCancelText",nzOkType:"nzOkType",nzOkDanger:[2,"nzOkDanger","nzOkDanger",O],nzIconType:"nzIconType",nzModalType:"nzModalType",nzAutofocus:"nzAutofocus",nzOnOk:"nzOnOk",nzOnCancel:"nzOnCancel"},outputs:{nzOnOk:"nzOnOk",nzOnCancel:"nzOnCancel",nzAfterOpen:"nzAfterOpen",nzAfterClose:"nzAfterClose",nzVisibleChange:"nzVisibleChange"},exportAs:["nzModal"],standalone:!0,features:[je,ke,me],decls:0,vars:0,template:function(i,o){},encapsulation:2,changeDetection:0})}return t})(),jae=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[za],imports:[V7,sO,aO,cO,rO]})}return t})(),zo=(()=>{class t{constructor(){this.animationType=W(ta,{optional:!0}),this.nzNoAnimation=!1}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nzNoAnimation",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("nz-animate-disabled",o.nzNoAnimation||"NoopAnimations"===o.animationType)},inputs:{nzNoAnimation:[2,"nzNoAnimation","nzNoAnimation",O]},exportAs:["nzNoAnimation"],standalone:!0,features:[je]})}return t})();const $ae=["nz-menu-item",""],lO=["*"],Yae=["nz-submenu-inline-child",""];function Uae(t,n){}const Wae=["nz-submenu-none-inline-child",""];function Gae(t,n){}const qae=["nz-submenu-title",""];function Kae(t,n){1&t&&S(0,"span",0),2&t&&h("nzType",g().nzIcon)}function Jae(t,n){if(1&t&&($e(0),f(1,"span",4),C(2),m(),Ye()),2&t){const e=g();d(2),x(e.nzTitle)}}function Zae(t,n){1&t&&S(0,"span",5)}function Qae(t,n){1&t&&S(0,"span",6)}function Xae(t,n){if(1&t&&(f(0,"span",2),w(1,Zae,1,0,"span",5)(2,Qae,1,0,"span",6),m()),2&t){let e;const i=g();d(),he("rtl"===(e=i.dir)?1:2)}}function ece(t,n){1&t&&S(0,"span",3)}const tce=["nz-submenu",""],nce=[[["","title",""]],"*"],ice=["[title]","*"];function oce(t,n){1&t&&bt(0)}function rce(t,n){if(1&t&&S(0,"div",3),2&t){const e=g(),i=He(6);h("mode",e.mode)("nzOpen",e.nzOpen)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("menuClass",e.nzMenuClassName)("templateOutlet",i)}}function sce(t,n){if(1&t){const e=U();f(0,"div",6),D("subMenuMouseState",function(o){return T(e),M(g(2).setMouseEnterState(o))}),m()}if(2&t){const e=g(2),i=He(6);h("theme",e.theme)("mode",e.mode)("nzOpen",e.nzOpen)("position",e.position)("nzDisabled",e.nzDisabled)("isMenuInsideDropDown",e.isMenuInsideDropDown)("templateOutlet",i)("menuClass",e.nzMenuClassName)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)}}function ace(t,n){if(1&t){const e=U();w(0,sce,1,10,"ng-template",5),D("positionChange",function(o){return T(e),M(g().onPositionChange(o))})}if(2&t){const e=g(),i=He(1);h("cdkConnectedOverlayPositions",e.overlayPositions)("cdkConnectedOverlayOrigin",i)("cdkConnectedOverlayWidth",e.triggerWidth)("cdkConnectedOverlayOpen",e.nzOpen)("cdkConnectedOverlayTransformOriginOn",".ant-menu-submenu")}}function cce(t,n){1&t&&bt(0,1)}const lce=["titleElement"],dce=["nz-menu-group",""],uce=["*",[["","title",""]]],hce=["*","[title]"];function pce(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.nzTitle)}}function fce(t,n){1&t&&bt(0,1)}const gs=new oe("NzIsInDropDownMenuToken"),dO=new oe("NzMenuServiceLocalToken");let Ys=(()=>{class t{constructor(){this.descendantMenuItemClick$=new N,this.childMenuItemClick$=new N,this.theme$=new rt("light"),this.mode$=new rt("vertical"),this.inlineIndent$=new rt(24),this.isChildSubMenuOpen$=new rt(!1)}onDescendantMenuItemClick(e){this.descendantMenuItemClick$.next(e)}onChildMenuItemClick(e){this.childMenuItemClick$.next(e)}setMode(e){this.mode$.next(e)}setTheme(e){this.theme$.next(e)}setInlineIndent(e){this.inlineIndent$.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),F7=(()=>{class t{onChildMenuItemClick(e){this.childMenuItemClick$.next(e)}setOpenStateWithoutDebounce(e){this.isCurrentSubMenuOpen$.next(e)}setMouseEnterTitleOrOverlayState(e){this.isMouseEnterTitleOrOverlay$.next(e)}constructor(e,i,o){this.nzHostSubmenuService=e,this.nzMenuService=i,this.isMenuInsideDropDown=o,this.mode$=this.nzMenuService.mode$.pipe(Ie(c=>"inline"===c?"inline":"vertical"===c||this.nzHostSubmenuService?"vertical":"horizontal")),this.level=1,this.isCurrentSubMenuOpen$=new rt(!1),this.isChildSubMenuOpen$=new rt(!1),this.isMouseEnterTitleOrOverlay$=new N,this.childMenuItemClick$=new N,this.destroy$=new N,this.nzHostSubmenuService&&(this.level=this.nzHostSubmenuService.level+1);const r=this.childMenuItemClick$.pipe($n(()=>this.mode$),yt(c=>"inline"!==c||this.isMenuInsideDropDown),hc(!1)),s=Pn(this.isMouseEnterTitleOrOverlay$,r);xi([this.isChildSubMenuOpen$,s]).pipe(Ie(([c,l])=>c||l),_c(150),qi(),I(this.destroy$)).pipe(qi()).subscribe(c=>{this.setOpenStateWithoutDebounce(c),this.nzHostSubmenuService?this.nzHostSubmenuService.isChildSubMenuOpen$.next(c):this.nzMenuService.isChildSubMenuOpen$.next(c)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(R(t,12),R(Ys),R(gs))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),Us=(()=>{class t{clickMenuItem(e){this.nzDisabled?(e.preventDefault(),e.stopPropagation()):(this.nzMenuService.onDescendantMenuItemClick(this),this.nzSubmenuService?this.nzSubmenuService.onChildMenuItemClick(this):this.nzMenuService.onChildMenuItemClick(this))}setSelectedState(e){this.nzSelected=e,this.selected$.next(e)}updateRouterActive(){!this.listOfRouterLink||!this.router||!this.router.navigated||!this.nzMatchRouter||Promise.resolve().then(()=>{const e=this.hasActiveLinks();this.nzSelected!==e&&(this.nzSelected=e,this.setSelectedState(this.nzSelected),this.cdr.markForCheck())})}hasActiveLinks(){const e=this.isLinkActive(this.router);return this.routerLink&&e(this.routerLink)||this.listOfRouterLink.some(e)}isLinkActive(e){return i=>e.isActive(i.urlTree||"",{paths:this.nzMatchRouterExact?"exact":"subset",queryParams:this.nzMatchRouterExact?"exact":"subset",fragment:"ignored",matrixParams:"ignored"})}constructor(e,i,o,r,s,a,c){this.nzMenuService=e,this.cdr=i,this.nzSubmenuService=o,this.isMenuInsideDropDown=r,this.directionality=s,this.routerLink=a,this.router=c,this.destroy$=new N,this.level=this.nzSubmenuService?this.nzSubmenuService.level+1:1,this.selected$=new N,this.inlinePaddingLeft=null,this.dir="ltr",this.nzDisabled=!1,this.nzSelected=!1,this.nzDanger=!1,this.nzMatchRouterExact=!1,this.nzMatchRouter=!1,c&&this.router.events.pipe(I(this.destroy$),yt(l=>l instanceof Br)).subscribe(()=>{this.updateRouterActive()})}ngOnInit(){xi([this.nzMenuService.mode$,this.nzMenuService.inlineIndent$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{this.inlinePaddingLeft="inline"===e?this.level*i:null}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngAfterContentInit(){this.listOfRouterLink.changes.pipe(I(this.destroy$)).subscribe(()=>this.updateRouterActive()),this.updateRouterActive()}ngOnChanges(e){e.nzSelected&&this.setSelectedState(this.nzSelected)}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ys),v(Ue),v(F7,8),v(gs),v(wt,8),v(b1,8),v(oi,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-menu-item",""]],contentQueries:function(i,o,r){if(1&i&&fn(r,b1,5),2&i){let s;Ae(s=Oe())&&(o.listOfRouterLink=s)}},hostVars:20,hostBindings:function(i,o){1&i&&D("click",function(s){return o.clickMenuItem(s)}),2&i&&(Lt("padding-left","rtl"===o.dir?null:o.nzPaddingLeft||o.inlinePaddingLeft,"px")("padding-right","rtl"===o.dir?o.nzPaddingLeft||o.inlinePaddingLeft:null,"px"),Q("ant-dropdown-menu-item",o.isMenuInsideDropDown)("ant-dropdown-menu-item-selected",o.isMenuInsideDropDown&&o.nzSelected)("ant-dropdown-menu-item-danger",o.isMenuInsideDropDown&&o.nzDanger)("ant-dropdown-menu-item-disabled",o.isMenuInsideDropDown&&o.nzDisabled)("ant-menu-item",!o.isMenuInsideDropDown)("ant-menu-item-selected",!o.isMenuInsideDropDown&&o.nzSelected)("ant-menu-item-danger",!o.isMenuInsideDropDown&&o.nzDanger)("ant-menu-item-disabled",!o.isMenuInsideDropDown&&o.nzDisabled))},inputs:{nzPaddingLeft:[2,"nzPaddingLeft","nzPaddingLeft",y3],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzSelected:[2,"nzSelected","nzSelected",O],nzDanger:[2,"nzDanger","nzDanger",O],nzMatchRouterExact:[2,"nzMatchRouterExact","nzMatchRouterExact",O],nzMatchRouter:[2,"nzMatchRouter","nzMatchRouter",O]},exportAs:["nzMenuItem"],standalone:!0,features:[je,ke,me],attrs:$ae,ngContentSelectors:lO,decls:2,vars:0,consts:[[1,"ant-menu-title-content"]],template:function(i,o){1&i&&(Et(),f(0,"span",0),bt(1),m())},encapsulation:2,changeDetection:0})}return t})(),mce=(()=>{class t{constructor(e,i,o){this.elementRef=e,this.renderer=i,this.directionality=o,this.templateOutlet=null,this.menuClass="",this.mode="vertical",this.nzOpen=!1,this.listOfCacheClassName=[],this.expandState="collapsed",this.dir="ltr",this.destroy$=new N}calcMotionState(){this.expandState=this.nzOpen?"expanded":"collapsed"}ngOnInit(){this.calcMotionState(),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnChanges(e){const{mode:i,nzOpen:o,menuClass:r}=e;(i||o)&&this.calcMotionState(),r&&(this.listOfCacheClassName.length&&this.listOfCacheClassName.filter(s=>!!s).forEach(s=>{this.renderer.removeClass(this.elementRef.nativeElement,s)}),this.menuClass&&(this.listOfCacheClassName=this.menuClass.split(" "),this.listOfCacheClassName.filter(s=>!!s).forEach(s=>{this.renderer.addClass(this.elementRef.nativeElement,s)})))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-submenu-inline-child",""]],hostAttrs:[1,"ant-menu","ant-menu-inline","ant-menu-sub"],hostVars:3,hostBindings:function(i,o){2&i&&(oc("@collapseMotion",o.expandState),Q("ant-menu-rtl","rtl"===o.dir))},inputs:{templateOutlet:"templateOutlet",menuClass:"menuClass",mode:"mode",nzOpen:"nzOpen"},exportAs:["nzSubmenuInlineChild"],standalone:!0,features:[ke,me],attrs:Yae,decls:1,vars:1,consts:[[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&w(0,Uae,0,0,"ng-template",0),2&i&&h("ngTemplateOutlet",o.templateOutlet)},dependencies:[Vn],encapsulation:2,data:{animation:[Yne]},changeDetection:0})}return t})(),gce=(()=>{class t{constructor(e){this.directionality=e,this.menuClass="",this.theme="light",this.templateOutlet=null,this.isMenuInsideDropDown=!1,this.mode="vertical",this.position="right",this.nzDisabled=!1,this.nzOpen=!1,this.subMenuMouseState=new H,this.expandState="collapsed",this.dir="ltr",this.destroy$=new N}setMouseState(e){this.nzDisabled||this.subMenuMouseState.next(e)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}calcMotionState(){this.nzOpen?"horizontal"===this.mode?this.expandState="bottom":"vertical"===this.mode&&(this.expandState="active"):this.expandState="collapsed"}ngOnInit(){this.calcMotionState(),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnChanges(e){const{mode:i,nzOpen:o}=e;(i||o)&&this.calcMotionState()}static#e=this.\u0275fac=function(i){return new(i||t)(v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-submenu-none-inline-child",""]],hostAttrs:[1,"ant-menu-submenu","ant-menu-submenu-popup"],hostVars:14,hostBindings:function(i,o){1&i&&D("mouseenter",function(){return o.setMouseState(!0)})("mouseleave",function(){return o.setMouseState(!1)}),2&i&&(oc("@slideMotion",o.expandState)("@zoomBigMotion",o.expandState),Q("ant-menu-light","light"===o.theme)("ant-menu-dark","dark"===o.theme)("ant-menu-submenu-placement-bottom","horizontal"===o.mode)("ant-menu-submenu-placement-right","vertical"===o.mode&&"right"===o.position)("ant-menu-submenu-placement-left","vertical"===o.mode&&"left"===o.position)("ant-menu-submenu-rtl","rtl"===o.dir))},inputs:{menuClass:"menuClass",theme:"theme",templateOutlet:"templateOutlet",isMenuInsideDropDown:"isMenuInsideDropDown",mode:"mode",position:"position",nzDisabled:"nzDisabled",nzOpen:"nzOpen"},outputs:{subMenuMouseState:"subMenuMouseState"},exportAs:["nzSubmenuNoneInlineChild"],standalone:!0,features:[ke,me],attrs:Wae,decls:2,vars:16,consts:[[3,"ngClass"],[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&(f(0,"div",0),w(1,Gae,0,0,"ng-template",1),m()),2&i&&(Q("ant-dropdown-menu",o.isMenuInsideDropDown)("ant-menu",!o.isMenuInsideDropDown)("ant-dropdown-menu-vertical",o.isMenuInsideDropDown)("ant-menu-vertical",!o.isMenuInsideDropDown)("ant-dropdown-menu-sub",o.isMenuInsideDropDown)("ant-menu-sub",!o.isMenuInsideDropDown)("ant-menu-rtl","rtl"===o.dir),h("ngClass",o.menuClass),d(),h("ngTemplateOutlet",o.templateOutlet))},dependencies:[Zo,Vn],encapsulation:2,data:{animation:[O3,a7]},changeDetection:0})}return t})(),uO=(()=>{class t{constructor(e,i){this.cdr=e,this.directionality=i,this.nzIcon=null,this.nzTitle=null,this.isMenuInsideDropDown=!1,this.nzDisabled=!1,this.paddingLeft=null,this.mode="vertical",this.toggleSubMenu=new H,this.subMenuMouseState=new H,this.dir="ltr",this.destroy$=new N}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setMouseState(e){this.nzDisabled||this.subMenuMouseState.next(e)}clickTitle(){"inline"===this.mode&&!this.nzDisabled&&this.toggleSubMenu.emit()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-submenu-title",""]],hostVars:8,hostBindings:function(i,o){1&i&&D("click",function(){return o.clickTitle()})("mouseenter",function(){return o.setMouseState(!0)})("mouseleave",function(){return o.setMouseState(!1)}),2&i&&(Lt("padding-left","rtl"===o.dir?null:o.paddingLeft,"px")("padding-right","rtl"===o.dir?o.paddingLeft:null,"px"),Q("ant-dropdown-menu-submenu-title",o.isMenuInsideDropDown)("ant-menu-submenu-title",!o.isMenuInsideDropDown))},inputs:{nzIcon:"nzIcon",nzTitle:"nzTitle",isMenuInsideDropDown:"isMenuInsideDropDown",nzDisabled:"nzDisabled",paddingLeft:"paddingLeft",mode:"mode"},outputs:{toggleSubMenu:"toggleSubMenu",subMenuMouseState:"subMenuMouseState"},exportAs:["nzSubmenuTitle"],standalone:!0,features:[me],attrs:qae,ngContentSelectors:lO,decls:5,vars:3,consts:[["nz-icon","",3,"nzType"],[4,"nzStringTemplateOutlet"],[1,"ant-dropdown-menu-submenu-expand-icon"],[1,"ant-menu-submenu-arrow"],[1,"ant-menu-title-content"],["nz-icon","","nzType","left",1,"ant-dropdown-menu-submenu-arrow-icon"],["nz-icon","","nzType","right",1,"ant-dropdown-menu-submenu-arrow-icon"]],template:function(i,o){1&i&&(Et(),w(0,Kae,1,1,"span",0)(1,Jae,3,1,"ng-container",1),bt(2),w(3,Xae,3,1,"span",2)(4,ece,1,0,"span",3)),2&i&&(he(o.nzIcon?0:-1),d(),h("nzStringTemplateOutlet",o.nzTitle),d(2),he(o.isMenuInsideDropDown?3:4))},dependencies:[On,cn,Tn,Sn],encapsulation:2,changeDetection:0})}return t})();const hO=[Kt.rightTop,Kt.right,Kt.rightBottom,Kt.leftTop,Kt.left,Kt.leftBottom],vce=[Kt.bottomLeft,Kt.bottomRight,Kt.topRight,Kt.topLeft];let l6=(()=>{class t{setOpenStateWithoutDebounce(e){this.nzSubmenuService.setOpenStateWithoutDebounce(e)}toggleSubMenu(){this.setOpenStateWithoutDebounce(!this.nzOpen)}setMouseEnterState(e){this.isActive=e,"inline"!==this.mode&&this.nzSubmenuService.setMouseEnterTitleOrOverlayState(e)}setTriggerWidth(){"horizontal"===this.mode&&this.platform.isBrowser&&this.cdkOverlayOrigin&&"bottomLeft"===this.nzPlacement&&(this.triggerWidth=this.cdkOverlayOrigin.nativeElement.getBoundingClientRect().width)}onPositionChange(e){const i=q3(e);"rightTop"===i||"rightBottom"===i||"right"===i?this.position="right":("leftTop"===i||"leftBottom"===i||"left"===i)&&(this.position="left")}constructor(e,i,o,r,s,a,c){this.nzMenuService=e,this.cdr=i,this.nzSubmenuService=o,this.platform=r,this.isMenuInsideDropDown=s,this.directionality=a,this.noAnimation=c,this.nzMenuClassName="",this.nzPaddingLeft=null,this.nzTitle=null,this.nzIcon=null,this.nzOpen=!1,this.nzDisabled=!1,this.nzPlacement="bottomLeft",this.nzOpenChange=new H,this.cdkOverlayOrigin=null,this.listOfNzSubMenuComponent=null,this.listOfNzMenuItemDirective=null,this.level=this.nzSubmenuService.level,this.destroy$=new N,this.position="right",this.triggerWidth=null,this.theme="light",this.mode="vertical",this.inlinePaddingLeft=null,this.overlayPositions=hO,this.isSelected=!1,this.isActive=!1,this.dir="ltr"}ngOnInit(){this.nzMenuService.theme$.pipe(I(this.destroy$)).subscribe(e=>{this.theme=e,this.cdr.markForCheck()}),this.nzSubmenuService.mode$.pipe(I(this.destroy$)).subscribe(e=>{this.mode=e,"horizontal"===e?this.overlayPositions=[Kt[this.nzPlacement],...vce]:"vertical"===e&&(this.overlayPositions=hO),this.cdr.markForCheck()}),xi([this.nzSubmenuService.mode$,this.nzMenuService.inlineIndent$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{this.inlinePaddingLeft="inline"===e?this.level*i:null,this.cdr.markForCheck()}),this.nzSubmenuService.isCurrentSubMenuOpen$.pipe(I(this.destroy$)).subscribe(e=>{this.isActive=e,e!==this.nzOpen&&(this.setTriggerWidth(),this.nzOpen=e,this.nzOpenChange.emit(this.nzOpen),this.cdr.markForCheck())}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.markForCheck()})}ngAfterContentInit(){this.setTriggerWidth();const e=this.listOfNzMenuItemDirective,i=e.changes,o=Pn(i,...e.map(r=>r.selected$));i.pipe(gn(e),mn(()=>o),gn(!0),Ie(()=>e.some(r=>r.nzSelected)),I(this.destroy$)).subscribe(r=>{this.isSelected=r,this.cdr.markForCheck()})}ngOnChanges(e){const{nzOpen:i}=e;i&&(this.nzSubmenuService.setOpenStateWithoutDebounce(this.nzOpen),this.setTriggerWidth())}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ys),v(Ue),v(F7),v(qn),v(gs),v(wt,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-submenu",""]],contentQueries:function(i,o,r){if(1&i&&(fn(r,t,5),fn(r,Us,5)),2&i){let s;Ae(s=Oe())&&(o.listOfNzSubMenuComponent=s),Ae(s=Oe())&&(o.listOfNzMenuItemDirective=s)}},viewQuery:function(i,o){if(1&i&&ft(Tc,7,Te),2&i){let r;Ae(r=Oe())&&(o.cdkOverlayOrigin=r.first)}},hostVars:34,hostBindings:function(i,o){2&i&&Q("ant-dropdown-menu-submenu",o.isMenuInsideDropDown)("ant-dropdown-menu-submenu-disabled",o.isMenuInsideDropDown&&o.nzDisabled)("ant-dropdown-menu-submenu-open",o.isMenuInsideDropDown&&o.nzOpen)("ant-dropdown-menu-submenu-selected",o.isMenuInsideDropDown&&o.isSelected)("ant-dropdown-menu-submenu-vertical",o.isMenuInsideDropDown&&"vertical"===o.mode)("ant-dropdown-menu-submenu-horizontal",o.isMenuInsideDropDown&&"horizontal"===o.mode)("ant-dropdown-menu-submenu-inline",o.isMenuInsideDropDown&&"inline"===o.mode)("ant-dropdown-menu-submenu-active",o.isMenuInsideDropDown&&o.isActive)("ant-menu-submenu",!o.isMenuInsideDropDown)("ant-menu-submenu-disabled",!o.isMenuInsideDropDown&&o.nzDisabled)("ant-menu-submenu-open",!o.isMenuInsideDropDown&&o.nzOpen)("ant-menu-submenu-selected",!o.isMenuInsideDropDown&&o.isSelected)("ant-menu-submenu-vertical",!o.isMenuInsideDropDown&&"vertical"===o.mode)("ant-menu-submenu-horizontal",!o.isMenuInsideDropDown&&"horizontal"===o.mode)("ant-menu-submenu-inline",!o.isMenuInsideDropDown&&"inline"===o.mode)("ant-menu-submenu-active",!o.isMenuInsideDropDown&&o.isActive)("ant-menu-submenu-rtl","rtl"===o.dir)},inputs:{nzMenuClassName:"nzMenuClassName",nzPaddingLeft:"nzPaddingLeft",nzTitle:"nzTitle",nzIcon:"nzIcon",nzOpen:[2,"nzOpen","nzOpen",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzPlacement:"nzPlacement"},outputs:{nzOpenChange:"nzOpenChange"},exportAs:["nzSubmenu"],standalone:!0,features:[et([F7]),je,ke,me],attrs:tce,ngContentSelectors:ice,decls:7,vars:8,consts:[["origin","cdkOverlayOrigin"],["subMenuTemplate",""],["nz-submenu-title","","cdkOverlayOrigin","",3,"subMenuMouseState","toggleSubMenu","nzIcon","nzTitle","mode","nzDisabled","isMenuInsideDropDown","paddingLeft"],["nz-submenu-inline-child","",3,"mode","nzOpen","nzNoAnimation","menuClass","templateOutlet"],["cdkConnectedOverlay","",3,"cdkConnectedOverlayPositions","cdkConnectedOverlayOrigin","cdkConnectedOverlayWidth","cdkConnectedOverlayOpen","cdkConnectedOverlayTransformOriginOn"],["cdkConnectedOverlay","",3,"positionChange","cdkConnectedOverlayPositions","cdkConnectedOverlayOrigin","cdkConnectedOverlayWidth","cdkConnectedOverlayOpen","cdkConnectedOverlayTransformOriginOn"],["nz-submenu-none-inline-child","",3,"subMenuMouseState","theme","mode","nzOpen","position","nzDisabled","isMenuInsideDropDown","templateOutlet","menuClass","nzNoAnimation"]],template:function(i,o){if(1&i){const r=U();Et(nce),f(0,"div",2,0),D("subMenuMouseState",function(a){return T(r),M(o.setMouseEnterState(a))})("toggleSubMenu",function(){return T(r),M(o.toggleSubMenu())}),w(2,oce,1,0),m(),w(3,rce,1,6,"div",3)(4,ace,1,5,null,4)(5,cce,1,0,"ng-template",null,1,ot)}2&i&&(h("nzIcon",o.nzIcon)("nzTitle",o.nzTitle)("mode",o.mode)("nzDisabled",o.nzDisabled)("isMenuInsideDropDown",o.isMenuInsideDropDown)("paddingLeft",o.nzPaddingLeft||o.inlinePaddingLeft),d(2),he(o.nzTitle?-1:2),d(),he("inline"===o.mode?3:4))},dependencies:[uO,mce,zo,gce,d2,Mc,Tc],encapsulation:2,changeDetection:0})}return t})();function _ce(){const t=W(Ys,{skipSelf:!0,optional:!0}),n=W(dO);return t??n}function bce(){return W(gs,{skipSelf:!0,optional:!0})??!1}let Sa=(()=>{class t{setInlineCollapsed(e){this.nzInlineCollapsed=e,this.inlineCollapsed$.next(e)}updateInlineCollapse(){this.listOfNzMenuItemDirective&&(this.nzInlineCollapsed?(this.listOfOpenedNzSubMenuComponent=this.listOfNzSubMenuComponent.filter(e=>e.nzOpen),this.listOfNzSubMenuComponent.forEach(e=>e.setOpenStateWithoutDebounce(!1))):(this.listOfOpenedNzSubMenuComponent.forEach(e=>e.setOpenStateWithoutDebounce(!0)),this.listOfOpenedNzSubMenuComponent=[]))}constructor(e,i,o,r){this.nzMenuService=e,this.isMenuInsideDropDown=i,this.cdr=o,this.directionality=r,this.nzInlineIndent=24,this.nzTheme="light",this.nzMode="vertical",this.nzInlineCollapsed=!1,this.nzSelectable=!this.isMenuInsideDropDown,this.nzClick=new H,this.actualMode="vertical",this.dir="ltr",this.inlineCollapsed$=new rt(this.nzInlineCollapsed),this.mode$=new rt(this.nzMode),this.destroy$=new N,this.listOfOpenedNzSubMenuComponent=[]}ngOnInit(){xi([this.inlineCollapsed$,this.mode$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{this.actualMode=e?"vertical":i,this.nzMenuService.setMode(this.actualMode),this.cdr.markForCheck()}),this.nzMenuService.descendantMenuItemClick$.pipe(I(this.destroy$)).subscribe(e=>{this.nzClick.emit(e),this.nzSelectable&&!e.nzMatchRouter&&this.listOfNzMenuItemDirective.forEach(i=>i.setSelectedState(i===e))}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.nzMenuService.setMode(this.actualMode),this.cdr.markForCheck()})}ngAfterContentInit(){this.inlineCollapsed$.pipe(I(this.destroy$)).subscribe(()=>{this.updateInlineCollapse(),this.cdr.markForCheck()})}ngOnChanges(e){const{nzInlineCollapsed:i,nzInlineIndent:o,nzTheme:r,nzMode:s}=e;i&&this.inlineCollapsed$.next(this.nzInlineCollapsed),o&&this.nzMenuService.setInlineIndent(this.nzInlineIndent),r&&this.nzMenuService.setTheme(this.nzTheme),s&&(this.mode$.next(this.nzMode),!e.nzMode.isFirstChange()&&this.listOfNzSubMenuComponent&&this.listOfNzSubMenuComponent.forEach(a=>a.setOpenStateWithoutDebounce(!1)))}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ys),v(gs),v(Ue),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-menu",""]],contentQueries:function(i,o,r){if(1&i&&(fn(r,Us,5),fn(r,l6,5)),2&i){let s;Ae(s=Oe())&&(o.listOfNzMenuItemDirective=s),Ae(s=Oe())&&(o.listOfNzSubMenuComponent=s)}},hostVars:34,hostBindings:function(i,o){2&i&&Q("ant-dropdown-menu",o.isMenuInsideDropDown)("ant-dropdown-menu-root",o.isMenuInsideDropDown)("ant-dropdown-menu-light",o.isMenuInsideDropDown&&"light"===o.nzTheme)("ant-dropdown-menu-dark",o.isMenuInsideDropDown&&"dark"===o.nzTheme)("ant-dropdown-menu-vertical",o.isMenuInsideDropDown&&"vertical"===o.actualMode)("ant-dropdown-menu-horizontal",o.isMenuInsideDropDown&&"horizontal"===o.actualMode)("ant-dropdown-menu-inline",o.isMenuInsideDropDown&&"inline"===o.actualMode)("ant-dropdown-menu-inline-collapsed",o.isMenuInsideDropDown&&o.nzInlineCollapsed)("ant-menu",!o.isMenuInsideDropDown)("ant-menu-root",!o.isMenuInsideDropDown)("ant-menu-light",!o.isMenuInsideDropDown&&"light"===o.nzTheme)("ant-menu-dark",!o.isMenuInsideDropDown&&"dark"===o.nzTheme)("ant-menu-vertical",!o.isMenuInsideDropDown&&"vertical"===o.actualMode)("ant-menu-horizontal",!o.isMenuInsideDropDown&&"horizontal"===o.actualMode)("ant-menu-inline",!o.isMenuInsideDropDown&&"inline"===o.actualMode)("ant-menu-inline-collapsed",!o.isMenuInsideDropDown&&o.nzInlineCollapsed)("ant-menu-rtl","rtl"===o.dir)},inputs:{nzInlineIndent:"nzInlineIndent",nzTheme:"nzTheme",nzMode:"nzMode",nzInlineCollapsed:[2,"nzInlineCollapsed","nzInlineCollapsed",O],nzSelectable:[2,"nzSelectable","nzSelectable",O]},outputs:{nzClick:"nzClick"},exportAs:["nzMenu"],standalone:!0,features:[et([{provide:dO,useClass:Ys},{provide:Ys,useFactory:_ce},{provide:gs,useFactory:bce}]),je,ke]})}return t})();function yce(){return W(gs,{optional:!0,skipSelf:!0})??!1}let Cce=(()=>{class t{constructor(e,i,o){this.elementRef=e,this.renderer=i,this.isMenuInsideDropDown=o,this.renderer.addClass(e.nativeElement,this.isMenuInsideDropDown?"ant-dropdown-menu-item-group":"ant-menu-item-group")}ngAfterViewInit(){const e=this.titleElement.nativeElement.nextElementSibling;e&&this.renderer.addClass(e,this.isMenuInsideDropDown?"ant-dropdown-menu-item-group-list":"ant-menu-item-group-list")}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(gs))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-menu-group",""]],viewQuery:function(i,o){if(1&i&&ft(lce,5),2&i){let r;Ae(r=Oe())&&(o.titleElement=r.first)}},inputs:{nzTitle:"nzTitle"},exportAs:["nzMenuGroup"],standalone:!0,features:[et([{provide:gs,useFactory:yce}]),me],attrs:dce,ngContentSelectors:hce,decls:5,vars:6,consts:[["titleElement",""],[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&(Et(uce),f(0,"div",null,0),w(2,pce,2,1,"ng-container",1)(3,fce,1,0),m(),bt(4)),2&i&&(Q("ant-menu-item-group-title",!o.isMenuInsideDropDown)("ant-dropdown-menu-item-group-title",o.isMenuInsideDropDown),d(2),h("nzStringTemplateOutlet",o.nzTitle),d(),he(o.nzTitle?-1:3))},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),R7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[l6,Cce,uO]})}return t})();const wce=["*"];function zce(t,n){if(1&t){const e=U();f(0,"div",0),D("@slideMotion.done",function(o){return T(e),M(g().onAnimationEvent(o))})("mouseenter",function(){return T(e),M(g().setMouseState(!0))})("mouseleave",function(){return T(e),M(g().setMouseState(!1))}),bt(1),m()}if(2&t){const e=g();Q("ant-dropdown-rtl","rtl"===e.dir),h("ngClass",e.nzOverlayClassName)("ngStyle",e.nzOverlayStyle)("@slideMotion",void 0)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)}}const Tce=[Kt.bottomLeft,Kt.bottomRight,Kt.topRight,Kt.topLeft];let N1=(()=>{class t{setDropdownMenuValue(e,i){this.nzDropdownMenu&&this.nzDropdownMenu.setValue(e,i)}constructor(e,i,o,r,s,a){this.nzConfigService=e,this.elementRef=i,this.overlay=o,this.renderer=r,this.viewContainerRef=s,this.platform=a,this._nzModuleName="dropDown",this.overlayRef=null,this.destroy$=new N,this.positionStrategy=this.overlay.position().flexibleConnectedTo(this.elementRef.nativeElement).withLockedPosition().withTransformOriginOn(".ant-dropdown"),this.inputVisible$=new rt(!1),this.nzTrigger$=new rt("hover"),this.overlayClose$=new N,this.nzDropdownMenu=null,this.nzTrigger="hover",this.nzMatchWidthElement=null,this.nzBackdrop=!1,this.nzClickHide=!0,this.nzDisabled=!1,this.nzVisible=!1,this.nzOverlayClassName="",this.nzOverlayStyle={},this.nzPlacement="bottomLeft",this.nzVisibleChange=new H}ngAfterViewInit(){if(this.nzDropdownMenu){const e=this.elementRef.nativeElement,i=Pn(nn(e,"mouseenter").pipe(hc(!0)),nn(e,"mouseleave").pipe(hc(!1))),r=Pn(this.nzDropdownMenu.mouseState$,i),s=nn(e,"click").pipe(Ie(()=>!this.nzVisible)),l=Pn(this.nzTrigger$.pipe(mn(p=>"hover"===p?r:"click"===p?s:bo)),this.nzDropdownMenu.descendantMenuItemClick$.pipe(yt(()=>this.nzClickHide),hc(!1)),this.overlayClose$).pipe(yt(()=>!this.nzDisabled));xi([Pn(this.inputVisible$,l),this.nzDropdownMenu.isChildSubMenuOpen$]).pipe(Ie(([p,_])=>p||_),_c(150),qi(),yt(()=>this.platform.isBrowser),I(this.destroy$)).subscribe(p=>{const b=(this.nzMatchWidthElement?this.nzMatchWidthElement.nativeElement:e).getBoundingClientRect().width;this.nzVisible!==p&&this.nzVisibleChange.emit(p),this.nzVisible=p,p?(this.overlayRef?this.overlayRef.getConfig().minWidth=b:(this.overlayRef=this.overlay.create({positionStrategy:this.positionStrategy,minWidth:b,disposeOnNavigation:!0,hasBackdrop:this.nzBackdrop&&"click"===this.nzTrigger,scrollStrategy:this.overlay.scrollStrategies.reposition()}),Pn(this.overlayRef.backdropClick(),this.overlayRef.detachments(),this.overlayRef.outsidePointerEvents().pipe(yt(y=>!this.elementRef.nativeElement.contains(y.target))),this.overlayRef.keydownEvents().pipe(yt(y=>27===y.keyCode&&!l2(y)))).pipe(I(this.destroy$)).subscribe(()=>{this.overlayClose$.next(!1)})),this.positionStrategy.withPositions([Kt[this.nzPlacement],...Tce]),(!this.portal||this.portal.templateRef!==this.nzDropdownMenu.templateRef)&&(this.portal=new Zu(this.nzDropdownMenu.templateRef,this.viewContainerRef)),this.overlayRef.attach(this.portal)):this.overlayRef&&this.overlayRef.detach()}),this.nzDropdownMenu.animationStateChange$.pipe(I(this.destroy$)).subscribe(p=>{"void"===p.toState&&(this.overlayRef&&this.overlayRef.dispose(),this.overlayRef=null)})}}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete(),this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)}ngOnChanges(e){const{nzVisible:i,nzDisabled:o,nzOverlayClassName:r,nzOverlayStyle:s,nzTrigger:a}=e;if(a&&this.nzTrigger$.next(this.nzTrigger),i&&this.inputVisible$.next(this.nzVisible),o){const c=this.elementRef.nativeElement;this.nzDisabled?(this.renderer.setAttribute(c,"disabled",""),this.inputVisible$.next(!1)):this.renderer.removeAttribute(c,"disabled")}r&&this.setDropdownMenuValue("nzOverlayClassName",this.nzOverlayClassName),s&&this.setDropdownMenuValue("nzOverlayStyle",this.nzOverlayStyle)}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Te),v(ya),v($t),v(Gn),v(qn))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-dropdown",""]],hostAttrs:[1,"ant-dropdown-trigger"],inputs:{nzDropdownMenu:"nzDropdownMenu",nzTrigger:"nzTrigger",nzMatchWidthElement:"nzMatchWidthElement",nzBackdrop:[2,"nzBackdrop","nzBackdrop",O],nzClickHide:[2,"nzClickHide","nzClickHide",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzVisible:[2,"nzVisible","nzVisible",O],nzOverlayClassName:"nzOverlayClassName",nzOverlayStyle:"nzOverlayStyle",nzPlacement:"nzPlacement"},outputs:{nzVisibleChange:"nzVisibleChange"},exportAs:["nzDropdown"],standalone:!0,features:[je,ke]})}return kt([Nt()],t.prototype,"nzBackdrop",void 0),t})(),Mce=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})(),C2=(()=>{class t{onAnimationEvent(e){this.animationStateChange$.emit(e)}setMouseState(e){this.mouseState$.next(e)}setValue(e,i){this[e]=i,this.cdr.markForCheck()}constructor(e,i,o,r,s,a,c){this.cdr=e,this.elementRef=i,this.renderer=o,this.viewContainerRef=r,this.nzMenuService=s,this.directionality=a,this.noAnimation=c,this.mouseState$=new rt(!1),this.isChildSubMenuOpen$=this.nzMenuService.isChildSubMenuOpen$,this.descendantMenuItemClick$=this.nzMenuService.descendantMenuItemClick$,this.animationStateChange$=new H,this.nzOverlayClassName="",this.nzOverlayStyle={},this.dir="ltr",this.destroy$=new N}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngAfterContentInit(){this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(Te),v($t),v(Gn),v(Ys),v(wt,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-dropdown-menu"]],viewQuery:function(i,o){if(1&i&&ft(Gt,7),2&i){let r;Ae(r=Oe())&&(o.templateRef=r.first)}},exportAs:["nzDropdownMenu"],standalone:!0,features:[et([Ys,{provide:gs,useValue:!0}]),me],ngContentSelectors:wce,decls:1,vars:0,consts:[[1,"ant-dropdown",3,"mouseenter","mouseleave","ngClass","ngStyle","nzNoAnimation"]],template:function(i,o){1&i&&(Et(),w(0,zce,2,7,"ng-template"))},dependencies:[Zo,ti,zo],encapsulation:2,data:{animation:[a7]},changeDetection:0})}return t})(),d6=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Mce,R7]})}return t})();function pO(t,n){return n?e=>yu(n.pipe(io(1),function Dce(){return dn((t,n)=>{t.subscribe(Zt(n,qs))})}()),e.pipe(pO(t))):$n((e,i)=>Ii(t(e,i)).pipe(io(1),hc(e)))}function w2(t,n=Yu){const e=m3(t,n);return pO(()=>e)}new Fn({originX:"start",originY:"top"},{overlayX:"start",overlayY:"top"}),new Fn({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),new Fn({originX:"start",originY:"top"},{overlayX:"end",overlayY:"bottom"}),new Fn({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"});const xce=["overlay"];function Ece(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzTitle)}}function kce(t,n){if(1&t&&(f(0,"div",2)(1,"div",3)(2,"div",4),S(3,"span",5),m(),f(4,"div",6),w(5,Ece,2,1,"ng-container",7),m()()()),2&t){const e=g();Q("ant-tooltip-rtl","rtl"===e.dir),h("ngClass",e._classMap)("ngStyle",e.nzOverlayStyle)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("@zoomBigMotion","active"),d(3),h("ngStyle",e._contentStyleMap),d(),h("ngStyle",e._contentStyleMap),d(),h("nzStringTemplateOutlet",e.nzTitle)("nzStringTemplateOutletContext",e.nzTitleContext)}}let L7=(()=>{class t{get _title(){return this.title||this.directiveTitle||null}get _content(){return this.content||this.directiveContent||null}get _trigger(){return typeof this.trigger<"u"?this.trigger:"hover"}get _placement(){const e=this.placement;return Array.isArray(e)&&e.length>0?e:"string"==typeof e&&e?[e]:["top"]}get _visible(){return(typeof this.visible<"u"?this.visible:this.internalVisible)||!1}get _mouseEnterDelay(){return this.mouseEnterDelay||.15}get _mouseLeaveDelay(){return this.mouseLeaveDelay||.1}get _overlayClassName(){return this.overlayClassName||null}get _overlayStyle(){return this.overlayStyle||null}getProxyPropertyMap(){return{noAnimation:["noAnimation",()=>!!this.noAnimation]}}constructor(e){this.componentType=e,this.visibleChange=new H,this.internalVisible=!1,this.destroy$=new N,this.triggerDisposables=[],this.elementRef=W(Te),this.hostView=W(Gn),this.renderer=W($t),this.noAnimation=W(zo,{host:!0,optional:!0}),this.nzConfigService=W(si),this.platformId=W(Ir)}ngAfterViewInit(){p0(this.platformId)&&(this.createComponent(),this.registerTriggers())}ngOnChanges(e){const{trigger:i}=e;i&&!i.isFirstChange()&&this.registerTriggers(),this.component&&this.updatePropertiesByChanges(e)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.clearTogglingTimer(),this.removeTriggerListeners()}show(){this.component?.show()}hide(){this.component?.hide()}updatePosition(){this.component&&this.component.updatePosition()}createComponent(){const e=this.hostView.createComponent(this.componentType);this.component=e.instance,this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),e.location.nativeElement),this.component.setOverlayOrigin(this.origin||this.elementRef),this.initProperties();const i=this.component.nzVisibleChange.pipe(qi());i.pipe(I(this.destroy$)).subscribe(o=>{this.internalVisible=o,this.visibleChange.emit(o)}),i.pipe(yt(o=>o),w2(0,y7),yt(()=>!!this.component?.overlay?.overlayRef),I(this.destroy$)).subscribe(()=>{this.component?.updatePosition()})}registerTriggers(){const e=this.elementRef.nativeElement,i=this.trigger;if(this.removeTriggerListeners(),"hover"===i){let o;this.triggerDisposables.push(this.renderer.listen(e,"mouseenter",()=>{this.delayEnterLeave(!0,!0,this._mouseEnterDelay)})),this.triggerDisposables.push(this.renderer.listen(e,"mouseleave",()=>{this.delayEnterLeave(!0,!1,this._mouseLeaveDelay),this.component?.overlay.overlayRef&&!o&&(o=this.component.overlay.overlayRef.overlayElement,this.triggerDisposables.push(this.renderer.listen(o,"mouseenter",()=>{this.delayEnterLeave(!1,!0,this._mouseEnterDelay)})),this.triggerDisposables.push(this.renderer.listen(o,"mouseleave",()=>{this.delayEnterLeave(!1,!1,this._mouseLeaveDelay)})))}))}else"focus"===i?(this.triggerDisposables.push(this.renderer.listen(e,"focusin",()=>this.show())),this.triggerDisposables.push(this.renderer.listen(e,"focusout",()=>this.hide()))):"click"===i&&this.triggerDisposables.push(this.renderer.listen(e,"click",o=>{o.preventDefault(),this.show()}))}updatePropertiesByChanges(e){this.updatePropertiesByKeys(Object.keys(e))}updatePropertiesByKeys(e){const i={title:["nzTitle",()=>this._title],directiveTitle:["nzTitle",()=>this._title],content:["nzContent",()=>this._content],directiveContent:["nzContent",()=>this._content],trigger:["nzTrigger",()=>this._trigger],placement:["nzPlacement",()=>this._placement],visible:["nzVisible",()=>this._visible],mouseEnterDelay:["nzMouseEnterDelay",()=>this._mouseEnterDelay],mouseLeaveDelay:["nzMouseLeaveDelay",()=>this._mouseLeaveDelay],overlayClassName:["nzOverlayClassName",()=>this._overlayClassName],overlayStyle:["nzOverlayStyle",()=>this._overlayStyle],arrowPointAtCenter:["nzArrowPointAtCenter",()=>this.arrowPointAtCenter],cdkConnectedOverlayPush:["cdkConnectedOverlayPush",()=>this.cdkConnectedOverlayPush],...this.getProxyPropertyMap()};(e||Object.keys(i).filter(o=>!o.startsWith("directive"))).forEach(o=>{if(i[o]){const[r,s]=i[o];this.updateComponentValue(r,s())}}),this.component?.updateByDirective()}initProperties(){this.updatePropertiesByKeys()}updateComponentValue(e,i){typeof i<"u"&&(this.component[e]=i)}delayEnterLeave(e,i,o=-1){this.delayTimer?this.clearTogglingTimer():o>0?this.delayTimer=setTimeout(()=>{this.delayTimer=void 0,i?this.show():this.hide()},1e3*o):i&&e?this.show():this.hide()}removeTriggerListeners(){this.triggerDisposables.forEach(e=>e()),this.triggerDisposables.length=0}clearTogglingTimer(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=void 0)}static#e=this.\u0275fac=function(i){return new(i||t)(v(Rp))};static#t=this.\u0275dir=de({type:t,features:[ke]})}return t})(),Ace=(()=>{class t{set nzVisible(e){const i=B5(e);this._visible!==i&&(this._visible=i,this.nzVisibleChange.next(i))}get nzVisible(){return this._visible}set nzTrigger(e){this._trigger=e}get nzTrigger(){return this._trigger}set nzPlacement(e){const i=e.map(o=>Kt[o]);this._positions=[...i,...uA]}constructor(e,i,o){this.cdr=e,this.directionality=i,this.noAnimation=o,this.nzTitle=null,this.nzContent=null,this.nzArrowPointAtCenter=!1,this.nzOverlayStyle={},this.nzBackdrop=!1,this.cdkConnectedOverlayPush=!0,this.nzVisibleChange=new N,this._visible=!1,this._trigger="hover",this.preferredPlacement="top",this.dir="ltr",this._classMap={},this._prefix="ant-tooltip",this._positions=[...uA],this.destroy$=new N}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.nzVisibleChange.complete(),this.destroy$.next(),this.destroy$.complete()}show(){this.nzVisible||(this.isEmpty()||(this.nzVisible=!0,this.nzVisibleChange.next(!0),this.cdr.detectChanges()),this.origin&&this.overlay&&this.overlay.overlayRef&&"rtl"===this.overlay.overlayRef.getDirection()&&this.overlay.overlayRef.setDirection("ltr"))}hide(){this.nzVisible&&(this.nzVisible=!1,this.nzVisibleChange.next(!1),this.cdr.detectChanges())}updateByDirective(){this.updateStyles(),this.cdr.detectChanges(),Promise.resolve().then(()=>{this.updatePosition(),this.updateVisibilityByTitle()})}updatePosition(){this.origin&&this.overlay&&this.overlay.overlayRef&&this.overlay.overlayRef.updatePosition()}onPositionChange(e){this.preferredPlacement=q3(e),this.updateStyles(),this.cdr.detectChanges()}setOverlayOrigin(e){this.origin=e,this.cdr.markForCheck()}onClickOutside(e){const i=Io(e);!this.origin.nativeElement.contains(i)&&null!==this.nzTrigger&&this.hide()}updateVisibilityByTitle(){this.isEmpty()&&this.hide()}updateStyles(){this._classMap={[this.nzOverlayClassName]:!0,[`${this._prefix}-placement-${this.preferredPlacement}`]:!0}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(wt,8),v(zo))};static#t=this.\u0275dir=de({type:t,viewQuery:function(i,o){if(1&i&&ft(xce,5),2&i){let r;Ae(r=Oe())&&(o.overlay=r.first)}}})}return t})();function H7(t){return!(t instanceof Gt||""!==t&&br(t))}let Ta=(()=>{class t extends L7{constructor(){super(u6),this.titleContext=null,this.trigger="hover",this.placement="top",this.cdkConnectedOverlayPush=!0,this.visibleChange=new H}getProxyPropertyMap(){return{...super.getProxyPropertyMap(),nzTooltipColor:["nzColor",()=>this.nzTooltipColor],titleContext:["nzTitleContext",()=>this.titleContext]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-tooltip",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-tooltip-open",o.visible)},inputs:{title:[0,"nzTooltipTitle","title"],titleContext:[0,"nzTooltipTitleContext","titleContext"],directiveTitle:[0,"nz-tooltip","directiveTitle"],trigger:[0,"nzTooltipTrigger","trigger"],placement:[0,"nzTooltipPlacement","placement"],origin:[0,"nzTooltipOrigin","origin"],visible:[0,"nzTooltipVisible","visible"],mouseEnterDelay:[0,"nzTooltipMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:[0,"nzTooltipMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:[0,"nzTooltipOverlayClassName","overlayClassName"],overlayStyle:[0,"nzTooltipOverlayStyle","overlayStyle"],arrowPointAtCenter:[2,"nzTooltipArrowPointAtCenter","arrowPointAtCenter",O],cdkConnectedOverlayPush:[2,"cdkConnectedOverlayPush","cdkConnectedOverlayPush",O],nzTooltipColor:"nzTooltipColor"},outputs:{visibleChange:"nzTooltipVisibleChange"},exportAs:["nzTooltip"],standalone:!0,features:[je,mt]})}return t})(),u6=(()=>{class t extends Ace{constructor(e,i,o){super(e,i,o),this.nzTitle=null,this.nzTitleContext=null,this._contentStyleMap={}}isEmpty(){return H7(this.nzTitle)}updateStyles(){const e=this.nzColor&&AE(this.nzColor);this._classMap={[this.nzOverlayClassName]:!0,[`${this._prefix}-placement-${this.preferredPlacement}`]:!0,[`${this._prefix}-${this.nzColor}`]:e},this._contentStyleMap={backgroundColor:this.nzColor&&!e?this.nzColor:null,"--antd-arrow-background-color":this.nzColor}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(wt,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tooltip"]],exportAs:["nzTooltipComponent"],standalone:!0,features:[mt,me],decls:2,vars:5,consts:[["overlay","cdkConnectedOverlay"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayPush","nzArrowPointAtCenter"],[1,"ant-tooltip",3,"ngClass","ngStyle","nzNoAnimation"],[1,"ant-tooltip-content"],[1,"ant-tooltip-arrow"],[1,"ant-tooltip-arrow-content",3,"ngStyle"],[1,"ant-tooltip-inner",3,"ngStyle"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"]],template:function(i,o){if(1&i){const r=U();w(0,kce,6,11,"ng-template",1,0,ot),D("overlayOutsideClick",function(a){return T(r),M(o.onClickOutside(a))})("detach",function(){return T(r),M(o.hide())})("positionChange",function(a){return T(r),M(o.onPositionChange(a))})}2&i&&h("cdkConnectedOverlayOrigin",o.origin)("cdkConnectedOverlayOpen",o._visible)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayPush",o.cdkConnectedOverlayPush)("nzArrowPointAtCenter",o.nzArrowPointAtCenter)},dependencies:[d2,Mc,Zo,ti,zo,Tn,Sn,u2,J3],encapsulation:2,data:{animation:[O3]},changeDetection:0})}return t})(),B7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[u6]})}return t})();function Oce(t,n){1&t&&(f(0,"div",13),S(1,"img",14),m()),2&t&&(g(),h("nzDropdownMenu",He(3)))}function Pce(t,n){if(1&t){const e=U();f(0,"li",15),D("click",function(){const o=T(e).$implicit;return M(g().toggleTheme(o))}),C(1),m()}if(2&t){const e=n.$implicit;d(),Ce(" ",e.name," ")}}function Ice(t,n){if(1&t){const e=U();f(0,"span",7)(1,"div",8),D("click",function(){return T(e),M(g().handleSync())}),S(2,"i",16),m()()}if(2&t){const e=g();h("nzTooltipTitle",e.$t("_syncData")),d(),Q("rotate",e.syncLoading)}}function Nce(t,n){if(1&t){const e=U();f(0,"span",7)(1,"div",8),D("click",function(){return T(e),M(g().goSystemPage())}),S(2,"i",17),m()()}2&t&&h("nzTooltipTitle",g().$t("_addData"))}function Vce(t,n){if(1&t){const e=U();f(0,"span",7)(1,"div",8),D("click",function(){return T(e),M(g().collapse())}),S(2,"i",18),m()()}if(2&t){const e=g();h("nzTooltipTitle",e.$t(e.collapsed?"_collapse":"_put")),d(2),Q("active",e.collapsed)}}function Fce(t,n){1&t&&S(0,"i",19)}function Rce(t,n){1&t&&S(0,"img",20)}function Lce(t,n){if(1&t&&(f(0,"li",24)(1,"a",25),C(2),m()()),2&t){const e=n.$implicit;d(),h("href",e.url,Ot),d(),Ce(" ",e.name," ")}}function Hce(t,n){if(1&t&&(f(0,"div")(1,"div",21),S(2,"img",22),m(),f(3,"nz-dropdown-menu",null,1)(5,"ul",4),w(6,Lce,3,2,"li",23),m()()()),2&t){const e=He(4),i=g();d(),h("nzDropdownMenu",e),d(5),h("ngForOf",i.settings.mirrorList)}}function Bce(t,n){1&t&&S(0,"img",28)}function jce(t,n){1&t&&S(0,"img",29)}function $ce(t,n){if(1&t){const e=U();f(0,"span")(1,"div",8),D("click",function(){return T(e),M(g().toggleLocale())}),w(2,Bce,1,0,"img",26)(3,jce,1,0,"img",27),m()()}if(2&t){const e=g();d(2),h("ngIf","zh-CN"===e.language),d(),h("ngIf",!e.language||"en"===e.language)}}let z2=(()=>{class t{constructor(e,i,o,r){this.message=e,this.modal=i,this.router=o,this.activatedRoute=r,this.showCollapse=!0,this.collapsed=!1,this.selector="",this.onCollapse=new H,this.$t=_e,this.settings=An,this.language=X5(),this.websiteList=yn,this.isDark=u3(),this.syncLoading=!1,this.isLogin=Wi,this.themeList=[{name:_e("_switchTo")+" Super",url:"/super"},{name:_e("_switchTo")+" Light",url:"/light"},{name:_e("_switchTo")+" Sim",url:"/sim"},{name:_e("_switchTo")+" Side",url:"/side"},{name:_e("_switchTo")+" Shortcut",url:"/shortcut"},{name:_e("_switchTo")+" App",url:"/app"}],this.isDark&&document.documentElement.classList.add("dark-container");const s=this.router.url.split("?")[0];this.themeList=this.themeList.filter(a=>a.url!==s)}ngOnInit(){}toggleTheme(e){this.router.navigate([e.url],{queryParams:pi()}),this.removeBackground()}goTop(){if(this.selector){const e=document.querySelector(this.selector);e&&(e.scrollTop=0)}else window.scrollTo({top:0,behavior:"smooth"})}collapse(){this.onCollapse.emit()}removeBackground(){const e=document.getElementById("random-light-bg");e?.parentNode?.removeChild?.(e)}toggleMode(){if(this.isDark=!this.isDark,Ei.emit("EVENT_DARK",this.isDark),window.localStorage.setItem(Ui.isDark,String(Number(this.isDark))),document.documentElement.classList.toggle("dark-container"),this.isDark)this.removeBackground();else{const{data:e}=this.activatedRoute.snapshot;e.renderLinear&&eE()}}goSystemPage(){this.router.navigate(["system"])}handleSync(){this.syncLoading?this.message.warning(_e("_repeatOper")):this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{this.syncLoading=!0,vc({message:"update db",content:JSON.stringify(this.websiteList),path:$g}).then(()=>{this.message.success(_e("_syncSuccessTip"))}).finally(()=>{this.syncLoading=!1})}})}toggleLocale(){window.localStorage.setItem(Ui.language,"en"===this.language?"zh-CN":"en"),window.location.reload()}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(za),v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-fixbar"]],inputs:{showCollapse:"showCollapse",collapsed:"collapsed",selector:"selector"},outputs:{onCollapse:"onCollapse"},decls:17,vars:10,consts:[["menu","nzDropdownMenu"],["menuMirror","nzDropdownMenu"],[1,"fixbar"],["class","wrapper dark-bg dark-border-color dark-action-hover","nz-dropdown","","nzPlacement","topLeft",3,"nzDropdownMenu",4,"ngIf"],["nz-menu","","nzSelectable",""],["nz-menu-item","",3,"click",4,"ngFor","ngForOf"],["nz-tooltip","",3,"nzTooltipTitle",4,"ngIf"],["nz-tooltip","",3,"nzTooltipTitle"],[1,"wrapper","dark-bg","dark-border-color","dark-action-hover",3,"click"],["class","iconfont icondark dark",4,"ngIf"],["class","iconfont icondark","src","assets/img/light.svg",4,"ngIf"],[4,"ngIf"],[1,"iconfont","iconjiantouarrow483","arrow"],["nz-dropdown","","nzPlacement","topLeft",1,"wrapper","dark-bg","dark-border-color","dark-action-hover",3,"nzDropdownMenu"],["src","assets/img/theme.svg"],["nz-menu-item","",3,"click"],[1,"iconfont","iconwinfo-icon-tongbu"],[1,"iconfont","iconchuangjian"],[1,"iconfont","iconweibiaoti25","collapse"],[1,"iconfont","icondark","dark"],["src","assets/img/light.svg",1,"iconfont","icondark"],["nz-dropdown","","nzPlacement","topRight",1,"wrapper","dark-bg","dark-border-color","dark-action-hover",3,"nzDropdownMenu"],["src","assets/img/mirror.svg"],["nz-menu-item","",4,"ngFor","ngForOf"],["nz-menu-item",""],[3,"href"],["class","iconfont","src","assets/img/china.svg",4,"ngIf"],["class","iconfont","src","assets/img/ua.svg",4,"ngIf"],["src","assets/img/china.svg",1,"iconfont"],["src","assets/img/ua.svg",1,"iconfont"]],template:function(i,o){if(1&i){const r=U();f(0,"div",2),w(1,Oce,2,1,"div",3),f(2,"nz-dropdown-menu",null,0)(4,"ul",4),w(5,Pce,2,1,"li",5),m()(),w(6,Ice,3,3,"span",6)(7,Nce,3,1,"span",6)(8,Vce,3,3,"span",6),f(9,"span",7)(10,"div",8),D("click",function(){return T(r),M(o.toggleMode())}),w(11,Fce,1,0,"i",9)(12,Rce,1,0,"img",10),m()(),w(13,Hce,7,2,"div",11)(14,$ce,4,2,"span",11),f(15,"div",8),D("click",function(){return T(r),M(o.goTop())}),S(16,"i",12),m()()}2&i&&(d(),h("ngIf",o.settings.showThemeToggle),d(4),h("ngForOf",o.themeList),d(),h("ngIf",o.isLogin),d(),h("ngIf",o.isLogin),d(),h("ngIf",o.showCollapse),d(),h("nzTooltipTitle",o.$t(o.isDark?"_closeDark":"_openDark")),d(2),h("ngIf",!o.isDark),d(),h("ngIf",o.isDark),d(),h("ngIf",o.settings.mirrorList.length>0),d(),h("ngIf",o.settings.showLanguage))},dependencies:[zn,Tt,mi,Sa,Us,N1,C2,Ta],styles:[".fixbar[_ngcontent-%COMP%]{z-index:9;position:fixed;bottom:30px;right:15px;-webkit-user-select:none;user-select:none}.fixbar[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{width:40px;height:40px;margin-top:10px;transition:.1s linear;display:flex;justify-content:center;align-items:center;cursor:pointer;border-radius:50%;background-color:#fff;box-shadow:0 0 5px #00000026}.fixbar[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]:hover{box-shadow:0 0 5px #00000026;transform:scale(1.2)}.fixbar[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:25px;height:25px}.fixbar[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{transition:.1s linear;display:inline-block;font-size:20px;color:#999}.fixbar[_ngcontent-%COMP%] .arrow[_ngcontent-%COMP%]{transform:rotate(180deg);cursor:pointer;font-weight:700}.fixbar[_ngcontent-%COMP%] .collapse[_ngcontent-%COMP%]{transform:rotate(-270deg)}.fixbar[_ngcontent-%COMP%] .collapse.active[_ngcontent-%COMP%]{transform:rotate(-360deg)}"],changeDetection:0})}return t})(),Yce=(()=>{class t{constructor(e){this.sanitized=e}transform(e){return this.sanitized.bypassSecurityTrustHtml(e)}static#e=this.\u0275fac=function(i){return new(i||t)(v(_u,16))};static#t=this.\u0275pipe=jn({name:"safeHtml",type:t,pure:!0})}return t})();function Uce(t,n){1&t&&(S(0,"div",2),Fr(1,"safeHtml")),2&t&&h("innerHTML",Rr(1,1,g().footerContent),Wn)}let S2=(()=>{class t{constructor(){this.footerContent=An.footerContent.replace("${total}",String(Wi?p3.loginViewCount:p3.userViewCount)).replace("${hostname}",window.location.hostname).replace("${year}",String((new Date).getFullYear())),this.className=""}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-footer"]],inputs:{className:"className"},decls:2,vars:3,consts:[["id","app-footer",1,"footer","dark-text","xie-jiahe"],["class","copyright dark-text",3,"innerHTML",4,"ngIf"],[1,"copyright","dark-text",3,"innerHTML"]],template:function(i,o){1&i&&(f(0,"footer",0),w(1,Uce,2,3,"div",1),m()),2&i&&(k4(o.className),d(),h("ngIf",o.footerContent))},dependencies:[Tt,Yce],styles:[".footer[_ngcontent-%COMP%]{text-align:center;margin-top:5px;color:#fff}.footer[_ngcontent-%COMP%] .copyright[_ngcontent-%COMP%]{color:#fff;margin-bottom:5px}"]})}return t})();function Wce(t,n){if(1&t&&($e(0),S(1,"img",4),Ye()),2&t){const e=g(2);d(),h("src",e.nzNotFoundImage,Ot)("alt",e.isContentString?e.nzNotFoundContent:"empty")}}function Gce(t,n){1&t&&w(0,Wce,2,2,"ng-container",3),2&t&&h("nzStringTemplateOutlet",g().nzNotFoundImage)}function qce(t,n){1&t&&S(0,"nz-empty-simple")}function Kce(t,n){1&t&&S(0,"nz-empty-default")}function Jce(t,n){1&t&&w(0,qce,1,0,"nz-empty-simple")(1,Kce,1,0,"nz-empty-default"),2&t&&he("simple"===g().nzNotFoundImage?0:1)}function Zce(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),Ce(" ",e.isContentString?e.nzNotFoundContent:e.locale.description," ")}}function Qce(t,n){if(1&t&&(f(0,"p",1),w(1,Zce,2,1,"ng-container",3),m()),2&t){const e=g();d(),h("nzStringTemplateOutlet",e.nzNotFoundContent)}}function Xce(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),Ce(" ",e.nzNotFoundFooter," ")}}function ele(t,n){if(1&t&&(f(0,"div",2),w(1,Xce,2,1,"ng-container",3),m()),2&t){const e=g();d(),h("nzStringTemplateOutlet",e.nzNotFoundFooter)}}function tle(t,n){1&t&&C(0),2&t&&Ce(" ",g(2).content," ")}function nle(t,n){}function ile(t,n){1&t&&w(0,nle,0,0,"ng-template",0),2&t&&h("cdkPortalOutlet",g(2).contentPortal)}function ole(t,n){1&t&&w(0,tle,1,1)(1,ile,1,1,null,0),2&t&&he("string"===g().contentType?0:1)}function rle(t,n){1&t&&S(0,"nz-empty",1)}function sle(t,n){1&t&&S(0,"nz-empty",2)}function ale(t,n){1&t&&S(0,"nz-empty")}function cle(t,n){if(1&t&&w(0,rle,1,0,"nz-empty",1)(1,sle,1,0,"nz-empty",2)(2,ale,1,0,"nz-empty"),2&t){let e;he("normal"===(e=g(2).size)?0:"small"===e?1:2)}}function lle(t,n){1&t&&w(0,cle,3,1),2&t&&he(null!==g().specificContent?0:-1)}const dle=new oe("nz-empty-component-name");let ule=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-empty-default"]],exportAs:["nzEmptyDefault"],standalone:!0,features:[me],decls:12,vars:0,consts:[["width","184","height","152","viewBox","0 0 184 152","xmlns","http://www.w3.org/2000/svg",1,"ant-empty-img-default"],["fill","none","fill-rule","evenodd"],["transform","translate(24 31.67)"],["cx","67.797","cy","106.89","rx","67.797","ry","12.668",1,"ant-empty-img-default-ellipse"],["d","M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",1,"ant-empty-img-default-path-1"],["d","M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z","transform","translate(13.56)",1,"ant-empty-img-default-path-2"],["d","M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",1,"ant-empty-img-default-path-3"],["d","M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",1,"ant-empty-img-default-path-4"],["d","M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",1,"ant-empty-img-default-path-5"],["transform","translate(149.65 15.383)",1,"ant-empty-img-default-g"],["cx","20.654","cy","3.167","rx","2.849","ry","2.815"],["d","M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"]],template:function(i,o){1&i&&(xh(),f(0,"svg",0)(1,"g",1)(2,"g",2),S(3,"ellipse",3)(4,"path",4)(5,"path",5)(6,"path",6)(7,"path",7),m(),S(8,"path",8),f(9,"g",9),S(10,"ellipse",10)(11,"path",11),m()()())},encapsulation:2,changeDetection:0})}return t})(),hle=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-empty-simple"]],exportAs:["nzEmptySimple"],standalone:!0,features:[me],decls:6,vars:0,consts:[["width","64","height","41","viewBox","0 0 64 41","xmlns","http://www.w3.org/2000/svg",1,"ant-empty-img-simple"],["transform","translate(0 1)","fill","none","fill-rule","evenodd"],["cx","32","cy","33","rx","32","ry","7",1,"ant-empty-img-simple-ellipse"],["fill-rule","nonzero",1,"ant-empty-img-simple-g"],["d","M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"],["d","M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",1,"ant-empty-img-simple-path"]],template:function(i,o){1&i&&(xh(),f(0,"svg",0)(1,"g",1),S(2,"ellipse",2),f(3,"g",3),S(4,"path",4)(5,"path",5),m()()())},encapsulation:2,changeDetection:0})}return t})();const ple=["default","simple"];let j7=(()=>{class t{constructor(e,i){this.i18n=e,this.cdr=i,this.nzNotFoundImage="default",this.isContentString=!1,this.isImageBuildIn=!0,this.destroy$=new N}ngOnChanges(e){const{nzNotFoundContent:i,nzNotFoundImage:o}=e;if(i&&(this.isContentString="string"==typeof i.currentValue),o){const r=o.currentValue||"default";this.isImageBuildIn=ple.findIndex(s=>s===r)>-1}}ngOnInit(){this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Empty"),this.cdr.markForCheck()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v($s),v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-empty"]],hostAttrs:[1,"ant-empty"],inputs:{nzNotFoundImage:"nzNotFoundImage",nzNotFoundContent:"nzNotFoundContent",nzNotFoundFooter:"nzNotFoundFooter"},exportAs:["nzEmpty"],standalone:!0,features:[ke,me],decls:5,vars:3,consts:[[1,"ant-empty-image"],[1,"ant-empty-description"],[1,"ant-empty-footer"],[4,"nzStringTemplateOutlet"],[3,"src","alt"]],template:function(i,o){1&i&&(f(0,"div",0),w(1,Gce,1,1,"ng-container")(2,Jce,2,1),m(),w(3,Qce,2,1,"p",1)(4,ele,2,1,"div",2)),2&i&&(d(),he(o.isImageBuildIn?2:1),d(2),he(null!==o.nzNotFoundContent?3:-1),d(),he(o.nzNotFoundFooter?4:-1))},dependencies:[Tn,Sn,ule,hle],encapsulation:2,changeDetection:0})}return t})(),$7=(()=>{class t{constructor(e,i,o,r){this.configService=e,this.viewContainerRef=i,this.cdr=o,this.injector=r,this.contentType="string",this.size="",this.destroy$=new N}ngOnChanges(e){e.nzComponentName&&(this.size=function fle(t){switch(t){case"table":case"list":return"normal";case"select":case"tree-select":case"cascader":case"transfer":return"small";default:return""}}(e.nzComponentName.currentValue)),e.specificContent&&!e.specificContent.isFirstChange()&&(this.content=e.specificContent.currentValue,this.renderEmpty())}ngOnInit(){this.subscribeDefaultEmptyContentChange()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}renderEmpty(){const e=this.content;if("string"==typeof e)this.contentType="string";else if(e instanceof Gt){const i={$implicit:this.nzComponentName};this.contentType="template",this.contentPortal=new Zu(e,this.viewContainerRef,i)}else if(e instanceof Rp){const i=tn.create({parent:this.injector,providers:[{provide:dle,useValue:this.nzComponentName}]});this.contentType="component",this.contentPortal=new Ju(e,this.viewContainerRef,i)}else this.contentType="string",this.contentPortal=void 0;this.cdr.detectChanges()}subscribeDefaultEmptyContentChange(){this.configService.getConfigChangeEventForComponent("empty").pipe(gn(!0),I(this.destroy$)).subscribe(()=>{this.content=this.specificContent||this.getUserDefaultEmptyContent(),this.renderEmpty()})}getUserDefaultEmptyContent(){return(this.configService.getConfigForComponent("empty")||{}).nzDefaultEmptyContent}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Gn),v(Ue),v(tn))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-embed-empty"]],inputs:{nzComponentName:"nzComponentName",specificContent:"specificContent"},exportAs:["nzEmbedEmpty"],standalone:!0,features:[ke,me],decls:2,vars:1,consts:[[3,"cdkPortalOutlet"],["nzNotFoundImage","simple",1,"ant-empty-normal"],["nzNotFoundImage","simple",1,"ant-empty-small"]],template:function(i,o){1&i&&w(0,ole,2,1)(1,lle,1,1),2&i&&he(o.content?0:1)},dependencies:[j7,z3,Qu],encapsulation:2,changeDetection:0})}return t})(),Y7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[j7,$7]})}return t})(),h6=(()=>{class t{constructor(){this.$t=_e,this.goBack=()=>{history.go(-1)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-no-data"]],decls:5,vars:2,consts:[[1,"no-result","dark-text"],[3,"nzNotFoundContent"],[1,"back"],["nz-button","","nzType","primary",3,"click"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,"nz-empty",1),f(2,"div",2)(3,"button",3),D("click",function(){return o.goBack()}),C(4),m()()()),2&i&&(d(),h("nzNotFoundContent",o.$t("_empty")),d(3),x(o.$t("_goBack")))},dependencies:[j7,nr,mi,tr],styles:[".no-result[_ngcontent-%COMP%]{padding:80px 0;text-align:center}.no-result[_ngcontent-%COMP%] .back[_ngcontent-%COMP%]{margin-top:30px}.no-result[_ngcontent-%COMP%] .back[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:pointer}"]})}return t})();function mle(t,n){1&t&&S(0,"span",1),2&t&&h("nzType",g().iconType)}let kc=(()=>{class t{constructor(){this.formStatusChanges=new fi(1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),p6=(()=>{class t{constructor(){this.noFormStatus=new rt(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const gle={error:"close-circle-fill",validating:"loading",success:"check-circle-fill",warning:"exclamation-circle-fill"};let U7=(()=>{class t{constructor(e){this.cdr=e,this.status="",this.iconType=null}ngOnChanges(e){this.updateIcon()}updateIcon(){this.iconType=this.status?gle[this.status]:null,this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-form-item-feedback-icon"]],hostAttrs:[1,"ant-form-item-feedback-icon"],hostVars:8,hostBindings:function(i,o){2&i&&Q("ant-form-item-feedback-icon-error","error"===o.status)("ant-form-item-feedback-icon-warning","warning"===o.status)("ant-form-item-feedback-icon-success","success"===o.status)("ant-form-item-feedback-icon-validating","validating"===o.status)},inputs:{status:"status"},exportAs:["nzFormFeedbackIcon"],features:[ke],decls:1,vars:1,consts:[["nz-icon","",3,"nzType",4,"ngIf"],["nz-icon","",3,"nzType"]],template:function(i,o){1&i&&w(0,mle,1,1,"span",0),2&i&&h("ngIf",o.iconType)},dependencies:[Tt,cn],encapsulation:2,changeDetection:0})}return t})(),fO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[UT,On]})}return t})(),mO=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(Te))};static#t=this.\u0275dir=de({type:t})}return t})(),Ac=(()=>{class t extends mO{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,features:[mt]})}return t})();const Vi=new oe(""),_le={provide:Vi,useExisting:Wt(()=>W7),multi:!0};let W7=(()=>{class t extends Ac{writeValue(e){this.setProperty("checked",e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,o){1&i&&D("change",function(s){return o.onChange(s.target.checked)})("blur",function(){return o.onTouched()})},features:[et([_le]),mt]})}return t})();const ble={provide:Vi,useExisting:Wt(()=>Cr),multi:!0},gO=new oe("");let Cr=(()=>{class t extends mO{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function yle(){const t=da()?da().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(Te),v(gO,8))};static#t=this.\u0275dir=de({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,o){1&i&&D("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},features:[et([ble]),mt]})}return t})();function Ma(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function vO(t){return null!=t&&"number"==typeof t.length}const ro=new oe(""),Da=new oe(""),Cle=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class G7{static min(n){return function _O(t){return n=>{if(Ma(n.value)||Ma(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(Ma(n.value)||Ma(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return function yO(t){return Ma(t.value)?{required:!0}:null}(n)}static requiredTrue(n){return function CO(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function wO(t){return Ma(t.value)||Cle.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function zO(t){return n=>Ma(n.value)||!vO(n.value)?null:n.value.length{if(Ma(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(n)}static nullValidator(n){return null}static compose(n){return AO(n)}static composeAsync(n){return OO(n)}}function SO(t){return n=>vO(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}function f6(t){return null}function MO(t){return null!=t}function DO(t){return cu(t)?ni(t):t}function xO(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function EO(t,n){return n.map(e=>e(t))}function kO(t){return t.map(n=>function wle(t){return!t.validate}(n)?n:e=>n.validate(e))}function AO(t){if(!t)return null;const n=t.filter(MO);return 0==n.length?null:function(e){return xO(EO(e,n))}}function q7(t){return null!=t?AO(kO(t)):null}function OO(t){if(!t)return null;const n=t.filter(MO);return 0==n.length?null:function(e){return function vle(...t){const n=pg(t),{args:e,keys:i}=IM(t),o=new Ut(r=>{const{length:s}=e;if(!s)return void r.complete();const a=new Array(s);let c=s,l=s;for(let u=0;u{p||(p=!0,l--),a[u]=_},()=>c--,void 0,()=>{(!c||!p)&&(l||r.next(i?NM(i,a):a),r.complete())}))}});return n?o.pipe(fg(n)):o}(EO(e,n).map(DO)).pipe(Ie(xO))}}function K7(t){return null!=t?OO(kO(t)):null}function PO(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function IO(t){return t._rawValidators}function NO(t){return t._rawAsyncValidators}function J7(t){return t?Array.isArray(t)?t:[t]:[]}function m6(t,n){return Array.isArray(t)?t.includes(n):t===n}function VO(t,n){const e=J7(n);return J7(t).forEach(o=>{m6(e,o)||e.push(o)}),e}function FO(t,n){return J7(n).filter(e=>!m6(t,e))}class RO{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=q7(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=K7(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class So extends RO{get formDirective(){return null}get path(){return null}}class vs extends RO{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class LO{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Qi=(()=>{class t extends LO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(v(vs,2))};static#t=this.\u0275dir=de({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&Q("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},features:[mt]})}return t})(),g6=(()=>{class t extends LO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(v(So,10))};static#t=this.\u0275dir=de({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&Q("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},features:[mt]})}return t})();const T2="VALID",_6="INVALID",V1="PENDING",M2="DISABLED";class F1{}class BO extends F1{constructor(n,e){super(),this.value=n,this.source=e}}class X7 extends F1{constructor(n,e){super(),this.pristine=n,this.source=e}}class ev extends F1{constructor(n,e){super(),this.touched=n,this.source=e}}class b6 extends F1{constructor(n,e){super(),this.status=n,this.source=e}}class Dle extends F1{constructor(n){super(),this.source=n}}class xle extends F1{constructor(n){super(),this.source=n}}function tv(t){return(y6(t)?t.validators:t)||null}function nv(t,n){return(y6(n)?n.asyncValidators:t)||null}function y6(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function jO(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new j(1e3,"");if(!i[e])throw new j(1001,"")}function $O(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new j(1002,"")})}class D2{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=null,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._events=new N,this.events=this._events.asObservable(),this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===T2}get invalid(){return this.status===_6}get pending(){return this.status==V1}get disabled(){return this.status===M2}get enabled(){return this.status!==M2}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(VO(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(VO(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(FO(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(FO(n,this._rawAsyncValidators))}hasValidator(n){return m6(this._rawValidators,n)}hasAsyncValidator(n){return m6(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){const e=!1===this.touched;this.touched=!0;const i=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsTouched({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new ev(!0,i))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(n))}markAsUntouched(n={}){const e=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:i})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,i),e&&!1!==n.emitEvent&&this._events.next(new ev(!1,i))}markAsDirty(n={}){const e=!0===this.pristine;this.pristine=!1;const i=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsDirty({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new X7(!1,i))}markAsPristine(n={}){const e=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n,i),e&&!1!==n.emitEvent&&this._events.next(new X7(!0,i))}markAsPending(n={}){this.status=V1;const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new b6(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.markAsPending({...n,sourceControl:e})}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=M2,this.errors=null,this._forEachChild(o=>{o.disable({...n,onlySelf:!0})}),this._updateValue();const i=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new BO(this.value,i)),this._events.next(new b6(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(o=>o(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=T2,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n,e){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===T2||this.status===V1)&&this._runAsyncValidator(i,n.emitEvent)}const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new BO(this.value,e)),this._events.next(new b6(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity({...n,sourceControl:e})}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?M2:T2}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,e){if(this.asyncValidator){this.status=V1,this._hasOwnPendingAsyncValidator={emitEvent:!1!==e};const i=DO(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(o=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(o,{emitEvent:e,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const n=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent,this,e.shouldHaveEmitted)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n,e,i){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||i)&&this._events.next(new b6(this.status,e)),this._parent&&this._parent._updateControlsErrors(n,e,i)}_initObservables(){this.valueChanges=new H,this.statusChanges=new H}_calculateStatus(){return this._allControlsDisabled()?M2:this.errors?_6:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(V1)?V1:this._anyControlsHaveStatus(_6)?_6:T2}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n,e){const i=!this._anyControlsDirty(),o=this.pristine!==i;this.pristine=i,this._parent&&!n.onlySelf&&this._parent._updatePristine(n,e),o&&this._events.next(new X7(this.pristine,e))}_updateTouched(n={},e){this.touched=this._anyControlsTouched(),this._events.next(new ev(this.touched,e)),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,e)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){y6(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function Ele(t){return Array.isArray(t)?q7(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function kle(t){return Array.isArray(t)?K7(t):t||null}(this._rawAsyncValidators)}}class x2 extends D2{constructor(n,e,i){super(tv(e),nv(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){$O(this,0,n),Object.keys(n).forEach(i=>{jO(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const o=this.controls[i];o&&o.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,o)=>{i.reset(n?n[o]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((o,r)=>{i=e(i,o,r)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}class YO extends x2{}const Oc=new oe("CallSetDisabledState",{providedIn:"root",factory:()=>E2}),E2="always";function C6(t,n){return[...n.path,t]}function k2(t,n,e=E2){iv(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function Ole(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&UO(t,n)})}(t,n),function Ile(t,n){const e=(i,o)=>{n.valueAccessor.writeValue(i),o&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function Ple(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&UO(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function Ale(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function w6(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),S6(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function z6(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function iv(t,n){const e=IO(t);null!==n.validator?t.setValidators(PO(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=NO(t);null!==n.asyncValidator?t.setAsyncValidators(PO(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();z6(n._rawValidators,o),z6(n._rawAsyncValidators,o)}function S6(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=IO(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=NO(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return z6(n._rawValidators,i),z6(n._rawAsyncValidators,i),e}function UO(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function rv(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function sv(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===Cr?e=r:function Fle(t){return Object.getPrototypeOf(t.constructor)===Ac}(r)?i=r:o=r}),o||i||e||null}function qO(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function KO(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}Promise.resolve();const O2=class extends D2{constructor(n=null,e,i){super(tv(e),nv(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),y6(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=KO(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){qO(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){qO(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){KO(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}};let JO=(()=>{class t extends So{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return C6(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,features:[mt]})}return t})();const jle={provide:vs,useExisting:Wt(()=>Xi)},QO=Promise.resolve();let Xi=(()=>{class t extends vs{constructor(e,i,o,r,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new O2,this._registered=!1,this.name="",this.update=new H,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=sv(0,r)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),rv(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){k2(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){QO.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&O(i);QO.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?C6(e,this._parent):[e]}static#e=this.\u0275fac=function(i){return new(i||t)(v(So,9),v(ro,10),v(Da,10),v(Vi,10),v(Ue,8),v(Oc,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[et([jle]),mt,ke]})}return t})(),T6=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return t})();const $le={provide:Vi,useExisting:Wt(()=>cv),multi:!0};let cv=(()=>{class t extends Ac{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&D("input",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},features:[et([$le]),mt]})}return t})();const lv=new oe(""),Gle={provide:vs,useExisting:Wt(()=>dv)};let dv=(()=>{class t extends vs{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,s){super(),this._ngModelWarningConfig=r,this.callSetDisabledState=s,this.update=new H,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=sv(0,o)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&w6(i,this,!1),k2(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}rv(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&w6(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static#t=this.\u0275fac=function(i){return new(i||t)(v(ro,10),v(Da,10),v(Vi,10),v(lv,8),v(Oc,8))};static#n=this.\u0275dir=de({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[et([Gle]),mt,ke]})}return t})();const qle={provide:So,useExisting:Wt(()=>R1)};let R1=(()=>{class t extends So{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new H,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(S6(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return k2(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){w6(e.control||null,e,!1),function Rle(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,function GO(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new Dle(this.control)),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1,this.form._events.next(new xle(this.form))}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(w6(i||null,e),(t=>t instanceof O2)(o)&&(k2(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);(function WO(t,n){iv(t,n)})(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function Nle(t,n){return S6(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){iv(this.form,this),this._oldForm&&S6(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(i){return new(i||t)(v(ro,10),v(Da,10),v(Oc,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&D("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[et([qle]),mt,ke]})}return t})();const Kle={provide:So,useExisting:Wt(()=>M6)};let M6=(()=>{class t extends JO{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){tP(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(v(So,13),v(ro,10),v(Da,10))};static#t=this.\u0275dir=de({type:t,selectors:[["","formGroupName",""]],inputs:{name:[0,"formGroupName","name"]},features:[et([Kle]),mt]})}return t})();const Jle={provide:So,useExisting:Wt(()=>D6)};let D6=(()=>{class t extends So{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return C6(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){tP(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(v(So,13),v(ro,10),v(Da,10))};static#t=this.\u0275dir=de({type:t,selectors:[["","formArrayName",""]],inputs:{name:[0,"formArrayName","name"]},features:[et([Jle]),mt]})}return t})();function tP(t){return!(t instanceof M6||t instanceof R1||t instanceof D6)}const Zle={provide:vs,useExisting:Wt(()=>L1)};let L1=(()=>{class t extends vs{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,s){super(),this._ngModelWarningConfig=s,this._added=!1,this.name=null,this.update=new H,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=sv(0,r)}ngOnChanges(e){this._added||this._setUpControl(),rv(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return C6(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(i){return new(i||t)(v(So,13),v(ro,10),v(Da,10),v(Vi,10),v(lv,8))};static#n=this.\u0275dir=de({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[et([Zle]),mt,ke]})}return t})();let Pc=(()=>{class t{constructor(){this._validator=f6}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):f6,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,features:[ke]})}return t})();const d1e={provide:ro,useExisting:Wt(()=>P2),multi:!0};let P2=(()=>{class t extends Pc{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>function oP(t){return"number"==typeof t?t:parseInt(t,10)}(e),this.createValidator=e=>SO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Pt("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[et([d1e]),mt]})}return t})(),hP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();class pP extends D2{constructor(n,e,i){super(tv(e),nv(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){this.controls.push(n),this._registerControl(n),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(n,e,i={}){this.controls.splice(n,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(n,e={}){let i=this._adjustIndex(n);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(n,e,i={}){let o=this._adjustIndex(n);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(n,e={}){$O(this,0,n),n.forEach((i,o)=>{jO(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(n.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n=[],e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(n=>n.getRawValue())}clear(n={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:n.emitEvent}))}_adjustIndex(n){return n<0?n+this.length:n}_syncPendingControls(){let n=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){this.controls.forEach((e,i)=>{n(e,i)})}_updateValue(){this.value=this.controls.filter(n=>n.enabled||this.disabled).map(n=>n.value)}_anyControls(n){return this.controls.some(e=>e.enabled&&n(e))}_setUpControls(){this._forEachChild(n=>this._registerControl(n))}_allControlsDisabled(){for(const n of this.controls)if(n.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(n){n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)}_find(n){return this.at(n)??null}}function fP(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let fv=(()=>{class t{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new t;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let r={};return fP(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new x2(o,r)}record(e,i=null){const o=this._reduceControls(e);return new YO(o,i)}control(e,i,o){let r={};return this.useNonNullable?(fP(i)?r=i:(r.validators=i,r.asyncValidators=o),new O2(e,{...r,nonNullable:!0})):new O2(e,i,o)}array(e,i,o){const r=e.map(s=>this._createControl(s));return new pP(r,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof O2||e instanceof D2?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ic=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:Oc,useValue:e.callSetDisabledState??E2}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[hP]})}return t})(),h1e=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:lv,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:Oc,useValue:e.callSetDisabledState??E2}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[hP]})}return t})();const p1e=["nz-input-group-slot",""],mP=["*"];function f1e(t,n){1&t&&S(0,"span",0),2&t&&h("nzType",g().icon)}function m1e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.template)}}function g1e(t,n){if(1&t&&S(0,"span",3),2&t){const e=g(2);h("icon",e.nzAddOnBeforeIcon)("template",e.nzAddOnBefore)}}function v1e(t,n){}function _1e(t,n){if(1&t&&(f(0,"span",6),w(1,v1e,0,0,"ng-template",5),m()),2&t){const e=g(2),i=He(3);Q("ant-input-affix-wrapper-disabled",e.disabled)("ant-input-affix-wrapper-sm",e.isSmall)("ant-input-affix-wrapper-lg",e.isLarge)("ant-input-affix-wrapper-focused",e.focused),h("ngClass",e.affixInGroupStatusCls),d(),h("ngTemplateOutlet",i)}}function b1e(t,n){}function y1e(t,n){1&t&&w(0,b1e,0,0,"ng-template",5),2&t&&(g(2),h("ngTemplateOutlet",He(5)))}function C1e(t,n){if(1&t&&S(0,"span",3),2&t){const e=g(2);h("icon",e.nzAddOnAfterIcon)("template",e.nzAddOnAfter)}}function w1e(t,n){if(1&t&&(f(0,"span",2),w(1,g1e,1,2,"span",3)(2,_1e,2,10,"span",4)(3,y1e,1,1,null,5)(4,C1e,1,2,"span",3),m()),2&t){const e=g();d(),he(e.nzAddOnBefore||e.nzAddOnBeforeIcon?1:-1),d(),he(e.isAffix||e.hasFeedback?2:3),d(2),he(e.nzAddOnAfter||e.nzAddOnAfterIcon?4:-1)}}function z1e(t,n){}function S1e(t,n){1&t&&w(0,z1e,0,0,"ng-template",5),2&t&&(g(2),h("ngTemplateOutlet",He(3)))}function T1e(t,n){}function M1e(t,n){1&t&&w(0,T1e,0,0,"ng-template",5),2&t&&(g(2),h("ngTemplateOutlet",He(5)))}function D1e(t,n){1&t&&w(0,S1e,1,1,null,5)(1,M1e,1,1,null,5),2&t&&he(g().isAffix?0:1)}function x1e(t,n){if(1&t&&S(0,"span",7),2&t){const e=g(2);h("icon",e.nzPrefixIcon)("template",e.nzPrefix)}}function E1e(t,n){}function k1e(t,n){1&t&&S(0,"nz-form-item-feedback-icon",9),2&t&&h("status",g(3).status)}function A1e(t,n){if(1&t&&(f(0,"span",8),w(1,k1e,1,1,"nz-form-item-feedback-icon",9),m()),2&t){const e=g(2);h("icon",e.nzSuffixIcon)("template",e.nzSuffix),d(),he(e.isFeedback?1:-1)}}function O1e(t,n){if(1&t&&w(0,x1e,1,2,"span",7)(1,E1e,0,0,"ng-template",5)(2,A1e,2,3,"span",8),2&t){const e=g(),i=He(5);he(e.nzPrefix||e.nzPrefixIcon?0:-1),d(),h("ngTemplateOutlet",i),d(),he(e.nzSuffix||e.nzSuffixIcon||e.isFeedback?2:-1)}}function P1e(t,n){if(1&t&&(f(0,"span",10),S(1,"nz-form-item-feedback-icon",9),m()),2&t){const e=g(2);d(),h("status",e.status)}}function I1e(t,n){if(1&t&&(bt(0),w(1,P1e,2,1,"span",10)),2&t){const e=g();d(),he(e.isAddOn||e.isAffix||!e.isFeedback?-1:1)}}let gP=(()=>{class t{constructor(){this.icon=null,this.type=null,this.template=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-input-group-slot",""]],hostVars:6,hostBindings:function(i,o){2&i&&Q("ant-input-group-addon","addon"===o.type)("ant-input-prefix","prefix"===o.type)("ant-input-suffix","suffix"===o.type)},inputs:{icon:"icon",type:"type",template:"template"},standalone:!0,features:[me],attrs:p1e,ngContentSelectors:mP,decls:3,vars:2,consts:[["nz-icon","",3,"nzType"],[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&(Et(),w(0,f1e,1,1,"span",0)(1,m1e,2,1,"ng-container",1),bt(2)),2&i&&(he(o.icon?0:-1),d(),h("nzStringTemplateOutlet",o.template))},dependencies:[On,cn,Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),Ws=(()=>{class t{get disabled(){return this.ngControl&&null!==this.ngControl.disabled?this.ngControl.disabled:this._disabled}set disabled(e){this._disabled=e}constructor(e,i,o,r,s,a,c){this.ngControl=e,this.renderer=i,this.elementRef=o,this.hostView=r,this.directionality=s,this.nzFormStatusService=a,this.nzFormNoStatusService=c,this.nzBorderless=!1,this.nzSize="default",this.nzStepperless=!0,this.nzStatus="",this._disabled=!1,this.disabled$=new N,this.dir="ltr",this.prefixCls="ant-input",this.status="",this.statusCls={},this.hasFeedback=!1,this.feedbackRef=null,this.components=[],this.destroy$=new N}ngOnInit(){this.nzFormStatusService?.formStatusChanges.pipe(qi((e,i)=>e.status===i.status&&e.hasFeedback===i.hasFeedback),I(this.destroy$)).subscribe(({status:e,hasFeedback:i})=>{this.setStatusStyles(e,i)}),this.ngControl&&this.ngControl.statusChanges?.pipe(yt(()=>null!==this.ngControl.disabled),I(this.destroy$)).subscribe(()=>{this.disabled$.next(this.ngControl.disabled)}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnChanges(e){const{disabled:i,nzStatus:o}=e;i&&this.disabled$.next(this.disabled),o&&this.setStatusStyles(this.nzStatus,this.hasFeedback)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setStatusStyles(e,i){this.status=e,this.hasFeedback=i,this.renderFeedbackIcon(),this.statusCls=Ku(this.prefixCls,e,i),Object.keys(this.statusCls).forEach(o=>{this.statusCls[o]?this.renderer.addClass(this.elementRef.nativeElement,o):this.renderer.removeClass(this.elementRef.nativeElement,o)})}renderFeedbackIcon(){if(!this.status||!this.hasFeedback||this.nzFormNoStatusService)return this.hostView.clear(),void(this.feedbackRef=null);this.feedbackRef=this.feedbackRef||this.hostView.createComponent(U7),this.feedbackRef.location.nativeElement.classList.add("ant-input-suffix"),this.feedbackRef.instance.status=this.status,this.feedbackRef.instance.updateIcon()}static#e=this.\u0275fac=function(i){return new(i||t)(v(vs,10),v($t),v(Te),v(Gn),v(wt,8),v(kc,8),v(p6,8))};static#t=this.\u0275dir=de({type:t,selectors:[["input","nz-input",""],["textarea","nz-input",""]],hostAttrs:[1,"ant-input"],hostVars:13,hostBindings:function(i,o){2&i&&(Pt("disabled",o.disabled||null),Q("ant-input-disabled",o.disabled)("ant-input-borderless",o.nzBorderless)("ant-input-lg","large"===o.nzSize)("ant-input-sm","small"===o.nzSize)("ant-input-rtl","rtl"===o.dir)("ant-input-stepperless",o.nzStepperless))},inputs:{nzBorderless:[2,"nzBorderless","nzBorderless",O],nzSize:"nzSize",nzStepperless:[2,"nzStepperless","nzStepperless",O],nzStatus:"nzStatus",disabled:[2,"disabled","disabled",O]},exportAs:["nzInput"],standalone:!0,features:[je,ke]})}return t})(),vP=(()=>{class t{constructor(e){this.elementRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["nz-input-group","nzSuffix",""],["nz-input-group","nzPrefix",""]],standalone:!0})}return t})(),x6=(()=>{class t{constructor(e,i,o,r,s,a,c){this.focusMonitor=e,this.elementRef=i,this.renderer=o,this.cdr=r,this.directionality=s,this.nzFormStatusService=a,this.nzFormNoStatusService=c,this.nzAddOnBeforeIcon=null,this.nzAddOnAfterIcon=null,this.nzPrefixIcon=null,this.nzSuffixIcon=null,this.nzStatus="",this.nzSize="default",this.nzSearch=!1,this.nzCompact=!1,this.isLarge=!1,this.isSmall=!1,this.isAffix=!1,this.isAddOn=!1,this.isFeedback=!1,this.focused=!1,this.disabled=!1,this.dir="ltr",this.prefixCls="ant-input",this.affixStatusCls={},this.groupStatusCls={},this.affixInGroupStatusCls={},this.status="",this.hasFeedback=!1,this.destroy$=new N}updateChildrenInputSize(){this.listOfNzInputDirective&&this.listOfNzInputDirective.forEach(e=>e.nzSize=this.nzSize)}ngOnInit(){this.nzFormStatusService?.formStatusChanges.pipe(qi((e,i)=>e.status===i.status&&e.hasFeedback===i.hasFeedback),I(this.destroy$)).subscribe(({status:e,hasFeedback:i})=>{this.setStatusStyles(e,i)}),this.focusMonitor.monitor(this.elementRef,!0).pipe(I(this.destroy$)).subscribe(e=>{this.focused=!!e,this.cdr.markForCheck()}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngAfterContentInit(){this.updateChildrenInputSize();const e=this.listOfNzInputDirective.changes.pipe(gn(this.listOfNzInputDirective));e.pipe(mn(i=>Pn(e,...i.map(o=>o.disabled$))),$n(()=>e),Ie(i=>i.some(o=>o.disabled)),I(this.destroy$)).subscribe(i=>{this.disabled=i,this.cdr.markForCheck()})}ngOnChanges(e){const{nzSize:i,nzSuffix:o,nzPrefix:r,nzPrefixIcon:s,nzSuffixIcon:a,nzAddOnAfter:c,nzAddOnBefore:l,nzAddOnAfterIcon:u,nzAddOnBeforeIcon:p,nzStatus:_}=e;i&&(this.updateChildrenInputSize(),this.isLarge="large"===this.nzSize,this.isSmall="small"===this.nzSize),(o||r||s||a)&&(this.isAffix=!!(this.nzSuffix||this.nzPrefix||this.nzPrefixIcon||this.nzSuffixIcon)),(c||l||u||p)&&(this.isAddOn=!!(this.nzAddOnAfter||this.nzAddOnBefore||this.nzAddOnAfterIcon||this.nzAddOnBeforeIcon),this.nzFormNoStatusService?.noFormStatus?.next(this.isAddOn)),_&&this.setStatusStyles(this.nzStatus,this.hasFeedback)}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef),this.destroy$.next(),this.destroy$.complete()}setStatusStyles(e,i){this.status=e,this.hasFeedback=i,this.isFeedback=!!e&&i,this.isAffix=!!(this.nzSuffix||this.nzPrefix||this.nzPrefixIcon||this.nzSuffixIcon)||!this.isAddOn&&i,this.affixInGroupStatusCls=this.isAffix||this.isFeedback?this.affixStatusCls=Ku(`${this.prefixCls}-affix-wrapper`,e,i):{},this.cdr.markForCheck(),this.affixStatusCls=Ku(`${this.prefixCls}-affix-wrapper`,this.isAddOn?"":e,!this.isAddOn&&i),this.groupStatusCls=Ku(`${this.prefixCls}-group-wrapper`,this.isAddOn?e:"",!!this.isAddOn&&i);const r={...this.affixStatusCls,...this.groupStatusCls};Object.keys(r).forEach(s=>{r[s]?this.renderer.addClass(this.elementRef.nativeElement,s):this.renderer.removeClass(this.elementRef.nativeElement,s)})}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ca),v(Te),v($t),v(Ue),v(wt,8),v(kc,8),v(p6,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-input-group"]],contentQueries:function(i,o,r){if(1&i&&fn(r,Ws,4),2&i){let s;Ae(s=Oe())&&(o.listOfNzInputDirective=s)}},hostVars:40,hostBindings:function(i,o){2&i&&Q("ant-input-group-compact",o.nzCompact)("ant-input-search-enter-button",o.nzSearch)("ant-input-search",o.nzSearch)("ant-input-search-rtl","rtl"===o.dir)("ant-input-search-sm",o.nzSearch&&o.isSmall)("ant-input-search-large",o.nzSearch&&o.isLarge)("ant-input-group-wrapper",o.isAddOn)("ant-input-group-wrapper-rtl","rtl"===o.dir)("ant-input-group-wrapper-lg",o.isAddOn&&o.isLarge)("ant-input-group-wrapper-sm",o.isAddOn&&o.isSmall)("ant-input-affix-wrapper",o.isAffix&&!o.isAddOn)("ant-input-affix-wrapper-rtl","rtl"===o.dir)("ant-input-affix-wrapper-focused",o.isAffix&&o.focused)("ant-input-affix-wrapper-disabled",o.isAffix&&o.disabled)("ant-input-affix-wrapper-lg",o.isAffix&&!o.isAddOn&&o.isLarge)("ant-input-affix-wrapper-sm",o.isAffix&&!o.isAddOn&&o.isSmall)("ant-input-group",!o.isAffix&&!o.isAddOn)("ant-input-group-rtl","rtl"===o.dir)("ant-input-group-lg",!o.isAffix&&!o.isAddOn&&o.isLarge)("ant-input-group-sm",!o.isAffix&&!o.isAddOn&&o.isSmall)},inputs:{nzAddOnBeforeIcon:"nzAddOnBeforeIcon",nzAddOnAfterIcon:"nzAddOnAfterIcon",nzPrefixIcon:"nzPrefixIcon",nzSuffixIcon:"nzSuffixIcon",nzAddOnBefore:"nzAddOnBefore",nzAddOnAfter:"nzAddOnAfter",nzPrefix:"nzPrefix",nzStatus:"nzStatus",nzSuffix:"nzSuffix",nzSize:"nzSize",nzSearch:[2,"nzSearch","nzSearch",O],nzCompact:[2,"nzCompact","nzCompact",O]},exportAs:["nzInputGroup"],standalone:!0,features:[et([p6]),je,ke,me],ngContentSelectors:mP,decls:6,vars:1,consts:[["affixTemplate",""],["contentTemplate",""],[1,"ant-input-wrapper","ant-input-group"],["nz-input-group-slot","","type","addon",3,"icon","template"],[1,"ant-input-affix-wrapper",3,"ant-input-affix-wrapper-disabled","ant-input-affix-wrapper-sm","ant-input-affix-wrapper-lg","ant-input-affix-wrapper-focused","ngClass"],[3,"ngTemplateOutlet"],[1,"ant-input-affix-wrapper",3,"ngClass"],["nz-input-group-slot","","type","prefix",3,"icon","template"],["nz-input-group-slot","","type","suffix",3,"icon","template"],[3,"status"],["nz-input-group-slot","","type","suffix"]],template:function(i,o){1&i&&(Et(),w(0,w1e,5,3,"span",2)(1,D1e,2,1)(2,O1e,3,3,"ng-template",null,0,ot)(4,I1e,2,1,"ng-template",null,1,ot)),2&i&&he(o.isAddOn?0:1)},dependencies:[gP,Zo,Vn,fO,U7],encapsulation:2,changeDetection:0})}return t})(),_P=(()=>{class t{set nzAutosize(e){var o;"string"==typeof e||!0===e?this.autosize=!0:"string"!=typeof(o=e)&&"boolean"!=typeof o&&(o.maxRows||o.minRows)&&(this.autosize=!0,this.minRows=e.minRows,this.maxRows=e.maxRows,this.maxHeight=this.setMaxHeight(),this.minHeight=this.setMinHeight())}resizeToFitContent(e=!1){if(this.cacheTextareaLineHeight(),!this.cachedLineHeight)return;const i=this.el,o=i.value;if(!e&&this.minRows===this.previousMinRows&&o===this.previousValue)return;const r=i.placeholder;i.classList.add("nz-textarea-autosize-measuring"),i.placeholder="";let s=Math.round((i.scrollHeight-this.inputGap)/this.cachedLineHeight)*this.cachedLineHeight+this.inputGap;null!==this.maxHeight&&s>this.maxHeight&&(s=this.maxHeight),null!==this.minHeight&&srequestAnimationFrame(()=>{const{selectionStart:a,selectionEnd:c}=i;!this.destroy$.isStopped&&document.activeElement===i&&i.setSelectionRange(a,c)})),this.previousValue=o,this.previousMinRows=this.minRows}cacheTextareaLineHeight(){if(this.cachedLineHeight>=0||!this.el.parentNode)return;const e=this.el.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this.el.parentNode.appendChild(e),this.cachedLineHeight=e.clientHeight-this.inputGap,this.el.parentNode.removeChild(e),this.maxHeight=this.setMaxHeight(),this.minHeight=this.setMinHeight()}setMinHeight(){const e=this.minRows&&this.cachedLineHeight?this.minRows*this.cachedLineHeight+this.inputGap:null;return null!==e&&(this.el.style.minHeight=`${e}px`),e}setMaxHeight(){const e=this.maxRows&&this.cachedLineHeight?this.maxRows*this.cachedLineHeight+this.inputGap:null;return null!==e&&(this.el.style.maxHeight=`${e}px`),e}noopInputHandler(){}constructor(e,i,o,r){this.elementRef=e,this.ngZone=i,this.platform=o,this.resizeService=r,this.autosize=!1,this.el=this.elementRef.nativeElement,this.maxHeight=null,this.minHeight=null,this.destroy$=new N,this.inputGap=10}ngAfterViewInit(){this.autosize&&this.platform.isBrowser&&(this.resizeToFitContent(),this.resizeService.subscribe().pipe(I(this.destroy$)).subscribe(()=>this.resizeToFitContent(!0)))}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}ngDoCheck(){this.autosize&&this.platform.isBrowser&&this.resizeToFitContent()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(De),v(qn),v(R5))};static#t=this.\u0275dir=de({type:t,selectors:[["textarea","nzAutosize",""]],hostAttrs:["rows","1"],hostBindings:function(i,o){1&i&&D("input",function(){return o.noopInputHandler()})},inputs:{nzAutosize:"nzAutosize"},exportAs:["nzAutosize"],standalone:!0})}return t})(),N1e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[x6,gP]})}return t})();const bP=["*"];function F1e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.nzLabel)}}function R1e(t,n){}function L1e(t,n){1&t&&w(0,R1e,0,0,"ng-template",4),2&t&&h("ngTemplateOutlet",g().template)}function H1e(t,n){1&t&&C(0),2&t&&x(g().label)}function B1e(t,n){1&t&&S(0,"span",7)}function j1e(t,n){if(1&t&&(f(0,"div",5),w(1,B1e,1,0,"span",6),m()),2&t){const e=g();d(),h("ngIf",!e.icon)("ngIfElse",e.icon)}}function $1e(t,n){if(1&t&&(f(0,"div",4),S(1,"nz-embed-empty",5),m()),2&t){const e=g();d(),h("specificContent",e.notFoundContent)}}function Y1e(t,n){1&t&&S(0,"nz-option-item-group",9),2&t&&h("nzLabel",g().$implicit.groupLabel)}function U1e(t,n){if(1&t){const e=U();f(0,"nz-option-item",10),D("itemHover",function(o){return T(e),M(g(2).onItemHover(o))})("itemClick",function(o){return T(e),M(g(2).onItemClick(o))}),m()}if(2&t){const e=g().$implicit,i=g();h("icon",i.menuItemSelectedIcon)("customContent",e.nzCustomContent)("template",e.template)("grouped",!!e.groupLabel)("disabled",e.nzDisabled||i.isMaxLimitReached&&!i.listOfSelectedValue.includes(e.nzValue))("showState","tags"===i.mode||"multiple"===i.mode)("title",e.nzTitle)("label",e.nzLabel)("compareWith",i.compareWith)("activatedValue",i.activatedValue)("listOfSelectedValue",i.listOfSelectedValue)("value",e.nzValue)}}function W1e(t,n){1&t&&($e(0,6),w(1,Y1e,1,1,"nz-option-item-group",7)(2,U1e,1,12,"nz-option-item",8),Ye()),2&t&&(h("ngSwitch",n.$implicit.type),d(),h("ngSwitchCase","group"),d(),h("ngSwitchCase","item"))}function G1e(t,n){}function q1e(t,n){1&t&&bt(0)}function K1e(t,n){if(1&t&&($e(0),f(1,"span"),C(2),m(),Ye()),2&t){const e=g();d(2),ca("",e.listOfValue.length," / ",e.nzMaxMultipleCount,"")}}function J1e(t,n){1&t&&S(0,"span",5)}function Z1e(t,n){1&t&&S(0,"span",9)}function Q1e(t,n){1&t&&S(0,"span",10)}function X1e(t,n){if(1&t&&($e(0),w(1,Z1e,1,0,"span",7)(2,Q1e,1,0,"span",8),Ye()),2&t){const e=g(2);d(),h("ngIf",!e.search),d(),h("ngIf",e.search)}}function ede(t,n){1&t&&S(0,"span",12),2&t&&h("nzType",g().$implicit)}function tde(t,n){if(1&t&&($e(0),w(1,ede,1,1,"span",11),Ye()),2&t){const e=n.$implicit;d(),h("ngIf",e)}}function nde(t,n){1&t&&w(0,tde,2,1,"ng-container",4),2&t&&h("nzStringTemplateOutlet",g(2).suffixIcon)}function ide(t,n){if(1&t&&w(0,X1e,3,2,"ng-container",6)(1,nde,1,1,"ng-template",null,1,ot),2&t){const e=He(2),i=g();h("ngIf",i.showArrow&&!i.suffixIcon)("ngIfElse",e)}}function ode(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.feedbackIcon)}}function rde(t,n){1&t&&S(0,"span",1)}const sde=t=>({$implicit:t});function ade(t,n){if(1&t&&(f(0,"div",4),C(1),m()),2&t){const e=g(2);d(),x(e.label)}}function cde(t,n){1&t&&C(0),2&t&&x(g(2).label)}function lde(t,n){if(1&t&&($e(0),w(1,ade,2,1,"div",3)(2,cde,1,1,"ng-template",null,0,ot),Ye()),2&t){const e=He(3),i=g();d(),h("ngIf",i.deletable)("ngIfElse",e)}}function dde(t,n){1&t&&S(0,"span",7)}function ude(t,n){if(1&t){const e=U();f(0,"span",5),D("click",function(o){return T(e),M(g().onDelete(o))}),w(1,dde,1,0,"span",6),m()}if(2&t){const e=g();d(),h("ngIf",!e.removeIcon)("ngIfElse",e.removeIcon)}}function hde(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),Ce(" ",e.placeholder," ")}}const pde=["inputElement"],fde=["mirrorElement"];function mde(t,n){1&t&&S(0,"span",4,1)}function gde(t,n){if(1&t&&S(0,"nz-select-item",6),2&t){const e=g(2);h("deletable",!1)("disabled",!1)("removeIcon",e.removeIcon)("label",e.listOfTopItem[0].nzLabel)("contentTemplateOutlet",e.customTemplate)("contentTemplateOutletContext",e.listOfTopItem[0])}}function vde(t,n){if(1&t){const e=U();$e(0),f(1,"nz-select-search",4),D("isComposingChange",function(o){return T(e),M(g().isComposingChange(o))})("valueChange",function(o){return T(e),M(g().onInputValueChange(o))}),m(),w(2,gde,1,6,"nz-select-item",5),Ye()}if(2&t){const e=g();d(),h("nzId",e.nzId)("disabled",e.disabled)("value",e.inputValue)("showInput",e.showSearch)("mirrorSync",!1)("autofocus",e.autofocus)("focusTrigger",e.open),d(),h("ngIf",e.isShowSingleLabel)}}function _de(t,n){if(1&t){const e=U();f(0,"nz-select-item",9),D("delete",function(){const o=T(e).$implicit;return M(g(2).onDeleteItem(o.contentTemplateOutletContext))}),m()}if(2&t){const e=n.$implicit,i=g(2);h("removeIcon",i.removeIcon)("label",e.nzLabel)("disabled",e.nzDisabled||i.disabled)("contentTemplateOutlet",e.contentTemplateOutlet)("deletable",!0)("contentTemplateOutletContext",e.contentTemplateOutletContext)}}function bde(t,n){if(1&t){const e=U();$e(0),w(1,_de,1,6,"nz-select-item",7),f(2,"nz-select-search",8),D("isComposingChange",function(o){return T(e),M(g().isComposingChange(o))})("valueChange",function(o){return T(e),M(g().onInputValueChange(o))}),m(),Ye()}if(2&t){const e=g();d(),h("ngForOf",e.listOfSlicedItem)("ngForTrackBy",e.trackValue),d(),h("nzId",e.nzId)("disabled",e.disabled)("value",e.inputValue)("autofocus",e.autofocus)("showInput",!0)("mirrorSync",!0)("focusTrigger",e.open)}}function yde(t,n){1&t&&S(0,"nz-select-placeholder",10),2&t&&h("placeholder",g().placeHolder)}function Cde(t,n){1&t&&S(0,"nz-form-item-feedback-icon",8),2&t&&h("status",g(3).status)}function wde(t,n){if(1&t&&w(0,Cde,1,1,"nz-form-item-feedback-icon",7),2&t){const e=g(2);h("ngIf",e.hasFeedback&&!!e.status)}}function zde(t,n){if(1&t&&(f(0,"nz-select-arrow",6),w(1,wde,1,1,"ng-template",null,1,ot),m()),2&t){const e=He(2),i=g();h("showArrow",i.nzShowArrow)("loading",i.nzLoading)("search",i.nzOpen&&i.nzShowSearch)("suffixIcon",i.nzSuffixIcon)("feedbackIcon",e)("nzMaxMultipleCount",i.nzMaxMultipleCount)("listOfValue",i.listOfValue)("isMaxTagCountSet",i.isMaxTagCountSet)}}function Sde(t,n){if(1&t){const e=U();f(0,"nz-select-clear",9),D("clear",function(){return T(e),M(g().onClearSelection())}),m()}2&t&&h("clearIcon",g().nzClearIcon)}function Tde(t,n){if(1&t){const e=U();f(0,"nz-option-container",10),D("keydown",function(o){return T(e),M(g().onKeyDown(o))})("itemClick",function(o){return T(e),M(g().onItemClick(o))})("scrollToBottom",function(){return T(e),M(g().nzScrollToBottom.emit())}),m()}if(2&t){const e=g();Q("ant-select-dropdown-placement-bottomLeft","bottomLeft"===e.dropDownPosition)("ant-select-dropdown-placement-topLeft","topLeft"===e.dropDownPosition)("ant-select-dropdown-placement-bottomRight","bottomRight"===e.dropDownPosition)("ant-select-dropdown-placement-topRight","topRight"===e.dropDownPosition),h("ngStyle",e.nzDropdownStyle)("itemSize",e.nzOptionHeightPx)("maxItemLength",e.nzOptionOverflowSize)("matchWidth",e.nzDropdownMatchSelectWidth)("@slideMotion","enter")("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("listOfContainerItem",e.listOfContainerItem)("menuItemSelectedIcon",e.nzMenuItemSelectedIcon)("notFoundContent",e.nzNotFoundContent)("activatedValue",e.activatedValue)("listOfSelectedValue",e.listOfValue)("dropdownRender",e.nzDropdownRender)("compareWith",e.compareWith)("mode",e.nzMode)("isMaxLimitReached",e.isMaxLimitReached)}}let mv=(()=>{class t{constructor(){this.nzLabel=null,this.changes=new N}ngOnChanges(){this.changes.next()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option-group"]],inputs:{nzLabel:"nzLabel"},exportAs:["nzOptionGroup"],standalone:!0,features:[ke,me],ngContentSelectors:bP,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),yP=(()=>{class t{constructor(){this.nzLabel=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option-item-group"]],hostAttrs:[1,"ant-select-item","ant-select-item-group"],inputs:{nzLabel:"nzLabel"},standalone:!0,features:[me],decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&w(0,F1e,2,1,"ng-container",0),2&i&&h("nzStringTemplateOutlet",o.nzLabel)},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),CP=(()=>{class t{constructor(e,i,o){this.elementRef=e,this.ngZone=i,this.destroy$=o,this.selected=!1,this.activated=!1,this.grouped=!1,this.customContent=!1,this.template=null,this.disabled=!1,this.showState=!1,this.label=null,this.value=null,this.activatedValue=null,this.listOfSelectedValue=[],this.icon=null,this.itemClick=new H,this.itemHover=new H}ngOnChanges(e){const{value:i,activatedValue:o,listOfSelectedValue:r}=e;(i||r)&&(this.selected=this.listOfSelectedValue.some(s=>this.compareWith(s,this.value))),(i||o)&&(this.activated=this.compareWith(this.activatedValue,this.value))}ngOnInit(){this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click").pipe(I(this.destroy$)).subscribe(()=>{this.disabled||this.ngZone.run(()=>this.itemClick.emit(this.value))}),nn(this.elementRef.nativeElement,"mouseenter").pipe(I(this.destroy$)).subscribe(()=>{this.disabled||this.ngZone.run(()=>this.itemHover.emit(this.value))})})}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(De),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option-item"]],hostAttrs:[1,"ant-select-item","ant-select-item-option"],hostVars:9,hostBindings:function(i,o){2&i&&(Pt("title",o.title),Q("ant-select-item-option-grouped",o.grouped)("ant-select-item-option-selected",o.selected&&!o.disabled)("ant-select-item-option-disabled",o.disabled)("ant-select-item-option-active",o.activated&&!o.disabled))},inputs:{grouped:"grouped",customContent:"customContent",template:"template",disabled:"disabled",showState:"showState",title:"title",label:"label",value:"value",activatedValue:"activatedValue",listOfSelectedValue:"listOfSelectedValue",icon:"icon",compareWith:"compareWith"},outputs:{itemClick:"itemClick",itemHover:"itemHover"},standalone:!0,features:[et([No]),ke,me],decls:5,vars:3,consts:[["noCustomContent",""],[1,"ant-select-item-option-content"],[3,"ngIf","ngIfElse"],["class","ant-select-item-option-state","style","user-select: none","unselectable","on",4,"ngIf"],[3,"ngTemplateOutlet"],["unselectable","on",1,"ant-select-item-option-state",2,"user-select","none"],["nz-icon","","nzType","check","class","ant-select-selected-icon",4,"ngIf","ngIfElse"],["nz-icon","","nzType","check",1,"ant-select-selected-icon"]],template:function(i,o){if(1&i&&(f(0,"div",1),w(1,L1e,1,1,"ng-template",2)(2,H1e,1,1,"ng-template",null,0,ot),m(),w(4,j1e,2,2,"div",3)),2&i){const r=He(3);d(),h("ngIf",o.customContent)("ngIfElse",r),d(3),h("ngIf",o.showState&&o.selected)}},dependencies:[Tt,Vn,On,cn],encapsulation:2,changeDetection:0})}return t})(),wP=(()=>{class t{constructor(){this.notFoundContent=void 0,this.menuItemSelectedIcon=null,this.dropdownRender=null,this.activatedValue=null,this.listOfSelectedValue=[],this.mode="default",this.matchWidth=!0,this.itemSize=32,this.maxItemLength=8,this.isMaxLimitReached=!1,this.listOfContainerItem=[],this.itemClick=new H,this.scrollToBottom=new H,this.scrolledIndex=0,this.ngZone=W(De),this.platformId=W(Ir)}onItemClick(e){this.itemClick.emit(e)}onItemHover(e){this.activatedValue=e}trackValue(e,i){return i.key}onScrolledIndexChange(e){this.scrolledIndex=e,e===this.listOfContainerItem.length-this.maxItemLength-1&&this.scrollToBottom.emit()}scrollToActivatedValue(){const e=this.listOfContainerItem.findIndex(i=>this.compareWith(i.key,this.activatedValue));(e=this.scrolledIndex+this.maxItemLength)&&this.cdkVirtualScrollViewport.scrollToIndex(e||0)}ngOnChanges(e){const{listOfContainerItem:i,activatedValue:o}=e;(i||o)&&this.scrollToActivatedValue()}ngAfterViewInit(){p0(this.platformId)&&this.ngZone.runOutsideAngular(()=>setTimeout(()=>this.scrollToActivatedValue()))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option-container"]],viewQuery:function(i,o){if(1&i&&ft(E1,7),2&i){let r;Ae(r=Oe())&&(o.cdkVirtualScrollViewport=r.first)}},hostAttrs:[1,"ant-select-dropdown"],inputs:{notFoundContent:"notFoundContent",menuItemSelectedIcon:"menuItemSelectedIcon",dropdownRender:"dropdownRender",activatedValue:"activatedValue",listOfSelectedValue:"listOfSelectedValue",compareWith:"compareWith",mode:"mode",matchWidth:"matchWidth",itemSize:"itemSize",maxItemLength:"maxItemLength",isMaxLimitReached:"isMaxLimitReached",listOfContainerItem:"listOfContainerItem"},outputs:{itemClick:"itemClick",scrollToBottom:"scrollToBottom"},exportAs:["nzOptionContainer"],standalone:!0,features:[ke,me],decls:5,vars:14,consts:[["class","ant-select-item-empty",4,"ngIf"],[3,"scrolledIndexChange","itemSize","maxBufferPx","minBufferPx"],["cdkVirtualFor","",3,"cdkVirtualForOf","cdkVirtualForTrackBy","cdkVirtualForTemplateCacheSize"],[3,"ngTemplateOutlet"],[1,"ant-select-item-empty"],["nzComponentName","select",3,"specificContent"],[3,"ngSwitch"],[3,"nzLabel",4,"ngSwitchCase"],[3,"icon","customContent","template","grouped","disabled","showState","title","label","compareWith","activatedValue","listOfSelectedValue","value","itemHover","itemClick",4,"ngSwitchCase"],[3,"nzLabel"],[3,"itemHover","itemClick","icon","customContent","template","grouped","disabled","showState","title","label","compareWith","activatedValue","listOfSelectedValue","value"]],template:function(i,o){1&i&&(f(0,"div"),w(1,$1e,2,1,"div",0),f(2,"cdk-virtual-scroll-viewport",1),D("scrolledIndexChange",function(s){return o.onScrolledIndexChange(s)}),w(3,W1e,3,3,"ng-template",2),m(),w(4,G1e,0,0,"ng-template",3),m()),2&i&&(d(),h("ngIf",0===o.listOfContainerItem.length),d(),Lt("height",o.listOfContainerItem.length*o.itemSize,"px")("max-height",o.itemSize*o.maxItemLength,"px"),Q("full-width",!o.matchWidth),h("itemSize",o.itemSize)("maxBufferPx",o.itemSize*o.maxItemLength)("minBufferPx",o.itemSize*o.maxItemLength),d(),h("cdkVirtualForOf",o.listOfContainerItem)("cdkVirtualForTrackBy",o.trackValue)("cdkVirtualForTemplateCacheSize",0),d(),h("ngTemplateOutlet",o.dropdownRender))},dependencies:[Y7,$7,Tt,lc,yP,fu,CP,Vn,d2,$k,Gk,E1,u2],encapsulation:2,changeDetection:0})}return t})(),Nc=(()=>{class t{constructor(e,i){this.nzOptionGroupComponent=e,this.destroy$=i,this.changes=new N,this.groupLabel=null,this.nzLabel=null,this.nzValue=null,this.nzDisabled=!1,this.nzHide=!1,this.nzCustomContent=!1}ngOnInit(){this.nzOptionGroupComponent&&this.nzOptionGroupComponent.changes.pipe(gn(!0),I(this.destroy$)).subscribe(()=>{this.groupLabel=this.nzOptionGroupComponent.nzLabel})}ngOnChanges(){this.changes.next()}static#e=this.\u0275fac=function(i){return new(i||t)(v(mv,8),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option"]],viewQuery:function(i,o){if(1&i&&ft(Gt,7),2&i){let r;Ae(r=Oe())&&(o.template=r.first)}},inputs:{nzTitle:"nzTitle",nzLabel:"nzLabel",nzValue:"nzValue",nzKey:"nzKey",nzDisabled:[2,"nzDisabled","nzDisabled",O],nzHide:[2,"nzHide","nzHide",O],nzCustomContent:[2,"nzCustomContent","nzCustomContent",O]},exportAs:["nzOption"],standalone:!0,features:[et([No]),je,ke,me],ngContentSelectors:bP,decls:1,vars:0,template:function(i,o){1&i&&(Et(),w(0,q1e,1,0,"ng-template"))},encapsulation:2,changeDetection:0})}return t})(),zP=(()=>{class t{constructor(){this.listOfValue=[],this.loading=!1,this.search=!1,this.showArrow=!1,this.isMaxTagCountSet=!1,this.suffixIcon=null,this.feedbackIcon=null,this.nzMaxMultipleCount=1/0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-arrow"]],hostAttrs:[1,"ant-select-arrow"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-select-arrow-loading",o.loading)},inputs:{listOfValue:"listOfValue",loading:"loading",search:"search",showArrow:"showArrow",isMaxTagCountSet:"isMaxTagCountSet",suffixIcon:"suffixIcon",feedbackIcon:"feedbackIcon",nzMaxMultipleCount:[2,"nzMaxMultipleCount","nzMaxMultipleCount",Pi]},standalone:!0,features:[je,me],decls:5,vars:4,consts:[["defaultArrow",""],["suffixTemplate",""],[4,"ngIf"],["nz-icon","","nzType","loading",4,"ngIf","ngIfElse"],[4,"nzStringTemplateOutlet"],["nz-icon","","nzType","loading"],[4,"ngIf","ngIfElse"],["nz-icon","","nzType","down",4,"ngIf"],["nz-icon","","nzType","search",4,"ngIf"],["nz-icon","","nzType","down"],["nz-icon","","nzType","search"],["nz-icon","",3,"nzType",4,"ngIf"],["nz-icon","",3,"nzType"]],template:function(i,o){if(1&i&&w(0,K1e,3,2,"ng-container",2)(1,J1e,1,0,"span",3)(2,ide,3,2,"ng-template",null,0,ot)(4,ode,2,1,"ng-container",4),2&i){const r=He(3);h("ngIf",o.isMaxTagCountSet),d(),h("ngIf",o.loading)("ngIfElse",r),d(3),h("nzStringTemplateOutlet",o.feedbackIcon)}},dependencies:[On,cn,Tt,Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),SP=(()=>{class t{constructor(){this.clearIcon=null,this.clear=new H}onClick(e){e.preventDefault(),e.stopPropagation(),this.clear.emit(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-clear"]],hostAttrs:[1,"ant-select-clear"],hostBindings:function(i,o){1&i&&D("click",function(s){return o.onClick(s)})},inputs:{clearIcon:"clearIcon"},outputs:{clear:"clear"},standalone:!0,features:[me],decls:1,vars:2,consts:[["nz-icon","","nzType","close-circle","nzTheme","fill","class","ant-select-close-icon",4,"ngIf","ngIfElse"],["nz-icon","","nzType","close-circle","nzTheme","fill",1,"ant-select-close-icon"]],template:function(i,o){1&i&&w(0,rde,1,0,"span",0),2&i&&h("ngIf",!o.clearIcon)("ngIfElse",o.clearIcon)},dependencies:[On,cn,Tt],encapsulation:2,changeDetection:0})}return t})(),TP=(()=>{class t{constructor(){this.disabled=!1,this.label=null,this.deletable=!1,this.removeIcon=null,this.contentTemplateOutletContext=null,this.contentTemplateOutlet=null,this.delete=new H}onDelete(e){e.preventDefault(),e.stopPropagation(),this.disabled||this.delete.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-item"]],hostAttrs:[1,"ant-select-selection-item"],hostVars:3,hostBindings:function(i,o){2&i&&(Pt("title",o.label),Q("ant-select-selection-item-disabled",o.disabled))},inputs:{disabled:"disabled",label:"label",deletable:"deletable",removeIcon:"removeIcon",contentTemplateOutletContext:"contentTemplateOutletContext",contentTemplateOutlet:"contentTemplateOutlet"},outputs:{delete:"delete"},standalone:!0,features:[me],decls:2,vars:5,consts:[["labelTemplate",""],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],["class","ant-select-selection-item-remove",3,"click",4,"ngIf"],["class","ant-select-selection-item-content",4,"ngIf","ngIfElse"],[1,"ant-select-selection-item-content"],[1,"ant-select-selection-item-remove",3,"click"],["nz-icon","","nzType","close",4,"ngIf","ngIfElse"],["nz-icon","","nzType","close"]],template:function(i,o){1&i&&w(0,lde,4,2,"ng-container",1)(1,ude,2,2,"span",2),2&i&&(h("nzStringTemplateOutlet",o.contentTemplateOutlet)("nzStringTemplateOutletContext",mr(3,sde,o.contentTemplateOutletContext)),d(),h("ngIf",o.deletable&&!o.disabled))},dependencies:[Tn,Sn,Tt,On,cn],encapsulation:2,changeDetection:0})}return t})(),MP=(()=>{class t{constructor(){this.placeholder=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-placeholder"]],hostAttrs:[1,"ant-select-selection-placeholder"],inputs:{placeholder:"placeholder"},standalone:!0,features:[me],decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&w(0,hde,2,1,"ng-container",0),2&i&&h("nzStringTemplateOutlet",o.placeholder)},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),gv=(()=>{class t{setCompositionState(e){this.isComposingChange.next(e)}onValueChange(e){this.value=e,this.valueChange.next(e),this.mirrorSync&&this.syncMirrorWidth()}clearInputValue(){this.inputElement.nativeElement.value="",this.onValueChange("")}syncMirrorWidth(){const e=this.mirrorElement.nativeElement,i=this.elementRef.nativeElement,o=this.inputElement.nativeElement;this.renderer.removeStyle(i,"width"),this.renderer.setProperty(e,"textContent",`${o.value}\xa0`),this.renderer.setStyle(i,"width",`${e.scrollWidth}px`)}focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}constructor(e,i,o){this.elementRef=e,this.renderer=i,this.focusMonitor=o,this.nzId=null,this.disabled=!1,this.mirrorSync=!1,this.showInput=!0,this.focusTrigger=!1,this.value="",this.autofocus=!1,this.valueChange=new H,this.isComposingChange=new H}ngOnChanges(e){const i=this.inputElement.nativeElement,{focusTrigger:o,showInput:r}=e;r&&(this.showInput?this.renderer.removeAttribute(i,"readonly"):this.renderer.setAttribute(i,"readonly","readonly")),o&&!0===o.currentValue&&!1===o.previousValue&&i.focus()}ngAfterViewInit(){this.mirrorSync&&this.syncMirrorWidth(),this.autofocus&&this.focus()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(Ca))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-search"]],viewQuery:function(i,o){if(1&i&&(ft(pde,7),ft(fde,5)),2&i){let r;Ae(r=Oe())&&(o.inputElement=r.first),Ae(r=Oe())&&(o.mirrorElement=r.first)}},hostAttrs:[1,"ant-select-selection-search"],inputs:{nzId:"nzId",disabled:"disabled",mirrorSync:"mirrorSync",showInput:"showInput",focusTrigger:"focusTrigger",value:"value",autofocus:"autofocus"},outputs:{valueChange:"valueChange",isComposingChange:"isComposingChange"},standalone:!0,features:[et([{provide:gO,useValue:!1}]),ke,me],decls:3,vars:7,consts:[["inputElement",""],["mirrorElement",""],["autocomplete","off",1,"ant-select-selection-search-input",3,"ngModelChange","compositionstart","compositionend","ngModel","disabled"],["class","ant-select-selection-search-mirror",4,"ngIf"],[1,"ant-select-selection-search-mirror"]],template:function(i,o){if(1&i){const r=U();f(0,"input",2,0),D("ngModelChange",function(a){return T(r),M(o.onValueChange(a))})("compositionstart",function(){return T(r),M(o.setCompositionState(!0))})("compositionend",function(){return T(r),M(o.setCompositionState(!1))}),m(),w(2,mde,2,0,"span",3)}2&i&&(Lt("opacity",o.showInput?null:0),h("ngModel",o.value)("disabled",o.disabled),Pt("id",o.nzId)("autofocus",o.autofocus?"autofocus":null),d(2),h("ngIf",o.mirrorSync))},dependencies:[Ic,Cr,Qi,Xi,Tt],encapsulation:2,changeDetection:0})}return t})(),E6=(()=>{class t{updateTemplateVariable(){const e=0===this.listOfTopItem.length;this.isShowPlaceholder=e&&!this.isComposing&&!this.inputValue,this.isShowSingleLabel=!e&&!this.isComposing&&!this.inputValue}isComposingChange(e){this.isComposing=e,this.updateTemplateVariable()}onInputValueChange(e){e!==this.inputValue&&(this.inputValue=e,this.updateTemplateVariable(),this.inputValueChange.emit(e),this.tokenSeparate(e,this.tokenSeparators))}tokenSeparate(e,i){if(e&&e.length&&i.length&&"default"!==this.mode&&((s,a)=>{for(let c=0;c0)return!0;return!1})(e,i)){const s=((s,a)=>{const c=new RegExp(`[${a.join()}]`),l=s.split(c).filter(u=>u);return[...new Set(l)]})(e,i);this.tokenize.next(s)}}clearInputValue(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.clearInputValue()}focus(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.focus()}blur(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.blur()}trackValue(e,i){return i.nzValue}onDeleteItem(e){!this.disabled&&!e.nzDisabled&&this.deleteItem.next(e)}constructor(e,i,o){this.elementRef=e,this.ngZone=i,this.noAnimation=o,this.nzId=null,this.showSearch=!1,this.placeHolder=null,this.open=!1,this.maxTagCount=1/0,this.autofocus=!1,this.disabled=!1,this.mode="default",this.customTemplate=null,this.maxTagPlaceholder=null,this.removeIcon=null,this.listOfTopItem=[],this.tokenSeparators=[],this.tokenize=new H,this.inputValueChange=new H,this.deleteItem=new H,this.listOfSlicedItem=[],this.isShowPlaceholder=!0,this.isShowSingleLabel=!1,this.isComposing=!1,this.inputValue=null,this.destroy$=new N}ngOnChanges(e){const{listOfTopItem:i,maxTagCount:o,customTemplate:r,maxTagPlaceholder:s}=e;if(i&&this.updateTemplateVariable(),i||o||r||s){const a=this.listOfTopItem.slice(0,this.maxTagCount).map(c=>({nzLabel:c.nzLabel,nzValue:c.nzValue,nzDisabled:c.nzDisabled,contentTemplateOutlet:this.customTemplate,contentTemplateOutletContext:c}));if(this.listOfTopItem.length>this.maxTagCount){const c=`+ ${this.listOfTopItem.length-this.maxTagCount} ...`,l=this.listOfTopItem.map(p=>p.nzValue),u={nzLabel:c,nzValue:"$$__nz_exceeded_item",nzDisabled:!0,contentTemplateOutlet:this.maxTagPlaceholder,contentTemplateOutletContext:l.slice(this.maxTagCount)};a.push(u)}this.listOfSlicedItem=a}}ngOnInit(){this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.target!==this.nzSelectSearchComponent.inputElement.nativeElement&&this.nzSelectSearchComponent.focus()}),nn(this.elementRef.nativeElement,"keydown").pipe(I(this.destroy$)).subscribe(e=>{e.target instanceof HTMLInputElement&&8===e.keyCode&&"default"!==this.mode&&!e.target.value&&this.listOfTopItem.length>0&&(e.preventDefault(),this.ngZone.run(()=>this.onDeleteItem(this.listOfTopItem[this.listOfTopItem.length-1])))})})}ngOnDestroy(){this.destroy$.next()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(De),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-top-control"]],viewQuery:function(i,o){if(1&i&&ft(gv,5),2&i){let r;Ae(r=Oe())&&(o.nzSelectSearchComponent=r.first)}},hostAttrs:[1,"ant-select-selector"],inputs:{nzId:"nzId",showSearch:"showSearch",placeHolder:"placeHolder",open:"open",maxTagCount:[2,"maxTagCount","maxTagCount",Pi],autofocus:"autofocus",disabled:"disabled",mode:"mode",customTemplate:"customTemplate",maxTagPlaceholder:"maxTagPlaceholder",removeIcon:"removeIcon",listOfTopItem:"listOfTopItem",tokenSeparators:"tokenSeparators"},outputs:{tokenize:"tokenize",inputValueChange:"inputValueChange",deleteItem:"deleteItem"},exportAs:["nzSelectTopControl"],standalone:!0,features:[je,ke,me],decls:4,vars:3,consts:[[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],[3,"placeholder",4,"ngIf"],[3,"isComposingChange","valueChange","nzId","disabled","value","showInput","mirrorSync","autofocus","focusTrigger"],[3,"deletable","disabled","removeIcon","label","contentTemplateOutlet","contentTemplateOutletContext",4,"ngIf"],[3,"deletable","disabled","removeIcon","label","contentTemplateOutlet","contentTemplateOutletContext"],[3,"removeIcon","label","disabled","contentTemplateOutlet","deletable","contentTemplateOutletContext","delete",4,"ngFor","ngForOf","ngForTrackBy"],[3,"isComposingChange","valueChange","nzId","disabled","value","autofocus","showInput","mirrorSync","focusTrigger"],[3,"delete","removeIcon","label","disabled","contentTemplateOutlet","deletable","contentTemplateOutletContext"],[3,"placeholder"]],template:function(i,o){1&i&&($e(0,0),w(1,vde,3,8,"ng-container",1)(2,bde,3,9,"ng-container",2),Ye(),w(3,yde,1,1,"nz-select-placeholder",3)),2&i&&(h("ngSwitch",o.mode),d(),h("ngSwitchCase","default"),d(2),h("ngIf",o.isShowPlaceholder))},dependencies:[lc,gv,fu,TP,Tt,Gm,zn,MP],encapsulation:2,changeDetection:0})}return t})();const Mde=(t,n)=>!(!n||!n.nzLabel)&&n.nzLabel.toString().toLowerCase().indexOf(t.toLowerCase())>-1;let Vc=(()=>{class t{set nzShowArrow(e){this._nzShowArrow=e}get nzShowArrow(){return void 0===this._nzShowArrow?"default"===this.nzMode:this._nzShowArrow}get isMaxTagCountSet(){return this.nzMaxMultipleCount!==1/0}generateTagItem(e){return{nzValue:e,nzLabel:e,type:"item"}}onItemClick(e){if(this.activatedValue=e,"default"===this.nzMode)(0===this.listOfValue.length||!this.compareWith(this.listOfValue[0],e))&&this.updateListOfValue([e]),this.setOpenState(!1);else{const i=this.listOfValue.findIndex(o=>this.compareWith(o,e));if(-1!==i){const o=this.listOfValue.filter((r,s)=>s!==i);this.updateListOfValue(o)}else if(this.listOfValue.length!this.compareWith(o,e.nzValue));this.updateListOfValue(i),this.clearInput()}updateListOfContainerItem(){let e=this.listOfTagAndTemplateItem.filter(r=>!r.nzHide).filter(r=>!(!this.nzServerSearch&&this.searchValue)||this.nzFilterOption(this.searchValue,r));if("tags"===this.nzMode&&this.searchValue){const r=this.listOfTagAndTemplateItem.find(s=>s.nzLabel===this.searchValue);if(r)this.activatedValue=r.nzValue;else{const s=this.generateTagItem(this.searchValue);e=[s,...e],this.activatedValue=s.nzValue}}const i=e.find(r=>r.nzLabel===this.searchValue)||e.find(r=>this.compareWith(r.nzValue,this.activatedValue))||e.find(r=>this.compareWith(r.nzValue,this.listOfValue[0]))||e[0];this.activatedValue=i&&i.nzValue||null;let o=[];this.isReactiveDriven?o=[...new Set(this.nzOptions.filter(r=>r.groupLabel).map(r=>r.groupLabel))]:this.listOfNzOptionGroupComponent&&(o=this.listOfNzOptionGroupComponent.map(r=>r.nzLabel)),o.forEach(r=>{const s=e.findIndex(a=>r===a.groupLabel);s>-1&&e.splice(s,0,{groupLabel:r,type:"group",key:r})}),this.listOfContainerItem=[...e],this.updateCdkConnectedOverlayPositions()}clearInput(){this.nzSelectTopControlComponent.clearInputValue()}updateListOfValue(e){const o=((r,s)=>"default"===this.nzMode?r.length>0?r[0]:null:r)(e);this.value!==o&&(this.listOfValue=e,this.listOfValue$.next(e),this.value=o,this.onChange(this.value)),this.isMaxLimitReached=this.nzMaxMultipleCount!==1/0&&this.listOfValue.length===this.nzMaxMultipleCount}onTokenSeparate(e){const i=this.listOfTagAndTemplateItem.filter(o=>-1!==e.findIndex(r=>r===o.nzLabel)).map(o=>o.nzValue).filter(o=>-1===this.listOfValue.findIndex(r=>this.compareWith(r,o)));if("multiple"===this.nzMode)this.updateListOfValue([...this.listOfValue,...i]);else if("tags"===this.nzMode){const o=e.filter(r=>-1===this.listOfTagAndTemplateItem.findIndex(s=>s.nzLabel===r));this.updateListOfValue([...this.listOfValue,...i,...o])}this.clearInput()}onKeyDown(e){if(this.nzDisabled)return;const i=this.listOfContainerItem.filter(r=>"item"===r.type).filter(r=>!r.nzDisabled),o=i.findIndex(r=>this.compareWith(r.nzValue,this.activatedValue));switch(e.keyCode){case 38:e.preventDefault(),this.nzOpen&&i.length>0&&(this.activatedValue=i[o>0?o-1:i.length-1].nzValue);break;case 40:e.preventDefault(),this.nzOpen&&i.length>0?this.activatedValue=i[o{this.triggerWidth=this.originElement.nativeElement.getBoundingClientRect().width,e!==this.triggerWidth&&this.cdr.detectChanges()})}}updateCdkConnectedOverlayPositions(){p2(()=>{this.cdkConnectedOverlay?.overlayRef?.updatePosition()})}constructor(e,i,o,r,s,a,c,l,u,p,_,b){this.ngZone=e,this.destroy$=i,this.nzConfigService=o,this.cdr=r,this.host=s,this.renderer=a,this.platform=c,this.focusMonitor=l,this.directionality=u,this.noAnimation=p,this.nzFormStatusService=_,this.nzFormNoStatusService=b,this._nzModuleName="select",this.nzId=null,this.nzSize="default",this.nzStatus="",this.nzOptionHeightPx=32,this.nzOptionOverflowSize=8,this.nzDropdownClassName=null,this.nzDropdownMatchSelectWidth=!0,this.nzDropdownStyle=null,this.nzNotFoundContent=void 0,this.nzPlaceHolder=null,this.nzPlacement=null,this.nzMaxTagCount=1/0,this.nzDropdownRender=null,this.nzCustomTemplate=null,this.nzSuffixIcon=null,this.nzClearIcon=null,this.nzRemoveIcon=null,this.nzMenuItemSelectedIcon=null,this.nzTokenSeparators=[],this.nzMaxTagPlaceholder=null,this.nzMaxMultipleCount=1/0,this.nzMode="default",this.nzFilterOption=Mde,this.compareWith=(y,z)=>y===z,this.nzAllowClear=!1,this.nzBorderless=!1,this.nzShowSearch=!1,this.nzLoading=!1,this.nzAutoFocus=!1,this.nzAutoClearSearchValue=!0,this.nzServerSearch=!1,this.nzDisabled=!1,this.nzOpen=!1,this.nzSelectOnTab=!1,this.nzBackdrop=!1,this.nzOptions=[],this.nzOnSearch=new H,this.nzScrollToBottom=new H,this.nzOpenChange=new H,this.nzBlur=new H,this.nzFocus=new H,this.listOfValue$=new rt([]),this.listOfTemplateItem$=new rt([]),this.listOfTagAndTemplateItem=[],this.searchValue="",this.isReactiveDriven=!1,this.requestId=-1,this.isNzDisableFirstChange=!0,this.onChange=()=>{},this.onTouched=()=>{},this.dropDownPosition="bottomLeft",this.triggerWidth=null,this.listOfContainerItem=[],this.listOfTopItem=[],this.activatedValue=null,this.listOfValue=[],this.focused=!1,this.dir="ltr",this.positions=[],this.isMaxLimitReached=!1,this.prefixCls="ant-select",this.statusCls={},this.status="",this.hasFeedback=!1}writeValue(e){if(this.value!==e){this.value=e;const o=((r,s)=>null==r?[]:"default"===this.nzMode?[r]:r)(e);this.listOfValue=o,this.listOfValue$.next(o),this.cdr.markForCheck()}}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.nzDisabled&&this.setOpenState(!1),this.cdr.markForCheck()}ngOnChanges(e){const{nzOpen:i,nzDisabled:o,nzOptions:r,nzStatus:s,nzPlacement:a}=e;if(i&&this.onOpenChange(),o&&this.nzDisabled&&this.setOpenState(!1),r){this.isReactiveDriven=!0;const l=(this.nzOptions||[]).map(u=>({template:u.label instanceof Gt?u.label:null,nzTitle:this.getTitle(u.title,u.label),nzLabel:"string"==typeof u.label||"number"==typeof u.label?u.label:null,nzValue:u.value,nzDisabled:u.disabled||!1,nzHide:u.hide||!1,nzCustomContent:u.label instanceof Gt,groupLabel:u.groupLabel||null,type:"item",key:void 0===u.key?u.value:u.key}));this.listOfTemplateItem$.next(l)}if(s&&this.setStatusStyles(this.nzStatus,this.hasFeedback),a){const{currentValue:c}=a;this.dropDownPosition=c;const l=["bottomLeft","topLeft","bottomRight","topRight"];this.positions=c&&l.includes(c)?[Kt[c]]:l.map(u=>Kt[u])}}ngOnInit(){this.nzFormStatusService?.formStatusChanges.pipe(qi((e,i)=>e.status===i.status&&e.hasFeedback===i.hasFeedback),function V1e(...t){const n=pg(t);return dn((e,i)=>{const o=t.length,r=new Array(o);let s=t.map(()=>!1),a=!1;for(let c=0;c{r[c]=l,!a&&!s[c]&&(s[c]=!0,(a=s.every(Bn))&&(s=null))},qs));e.subscribe(Zt(i,c=>{if(a){const l=[c,...r];i.next(n?n(...l):l)}}))})}(this.nzFormNoStatusService?this.nzFormNoStatusService.noFormStatus:We(!1)),Ie(([{status:e,hasFeedback:i},o])=>({status:o?"":e,hasFeedback:i})),I(this.destroy$)).subscribe(({status:e,hasFeedback:i})=>{this.setStatusStyles(e,i)}),this.focusMonitor.monitor(this.host,!0).pipe(I(this.destroy$)).subscribe(e=>{e?(this.focused=!0,this.cdr.markForCheck(),this.nzFocus.emit()):(this.focused=!1,this.cdr.markForCheck(),this.nzBlur.emit(),Promise.resolve().then(()=>{this.onTouched()}))}),xi([this.listOfValue$,this.listOfTemplateItem$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{const o=e.filter(()=>"tags"===this.nzMode).filter(r=>-1===i.findIndex(s=>this.compareWith(s.nzValue,r))).map(r=>this.listOfTopItem.find(s=>this.compareWith(s.nzValue,r))||this.generateTagItem(r));this.listOfTagAndTemplateItem=[...i,...o],this.listOfTopItem=this.listOfValue.map(r=>[...this.listOfTagAndTemplateItem,...this.listOfTopItem].find(s=>this.compareWith(r,s.nzValue))).filter(r=>!!r),this.updateListOfContainerItem()}),this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.nzConfigService.getConfigChangeEventForComponent("select").pipe(I(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>nn(this.host.nativeElement,"click").pipe(I(this.destroy$)).subscribe(()=>{this.nzOpen&&this.nzShowSearch||this.nzDisabled||this.ngZone.run(()=>this.setOpenState(!this.nzOpen))})),this.cdkConnectedOverlay.overlayKeydown.pipe(I(this.destroy$)).subscribe(e=>{27===e.keyCode&&this.setOpenState(!1)})}ngAfterContentInit(){this.isReactiveDriven||Pn(this.listOfNzOptionGroupComponent.changes,this.listOfNzOptionComponent.changes).pipe(gn(!0),mn(()=>Pn(this.listOfNzOptionComponent.changes,this.listOfNzOptionGroupComponent.changes,...this.listOfNzOptionComponent.map(e=>e.changes),...this.listOfNzOptionGroupComponent.map(e=>e.changes)).pipe(gn(!0))),I(this.destroy$)).subscribe(()=>{const e=this.listOfNzOptionComponent.toArray().map(i=>{const{template:o,nzLabel:r,nzValue:s,nzKey:a,nzDisabled:c,nzHide:l,nzCustomContent:u,groupLabel:p}=i;return{template:o,nzLabel:r,nzValue:s,nzDisabled:c,nzHide:l,nzCustomContent:u,groupLabel:p,nzTitle:this.getTitle(i.nzTitle,i.nzLabel),type:"item",key:void 0===a?s:a}});this.listOfTemplateItem$.next(e),this.cdr.markForCheck()})}ngOnDestroy(){vA(this.requestId),this.focusMonitor.stopMonitoring(this.host)}setStatusStyles(e,i){this.status=e,this.hasFeedback=i,this.cdr.markForCheck(),this.statusCls=Ku(this.prefixCls,e,i),Object.keys(this.statusCls).forEach(o=>{this.statusCls[o]?this.renderer.addClass(this.host.nativeElement,o):this.renderer.removeClass(this.host.nativeElement,o)})}getTitle(e,i){let o;return void 0===e?("string"==typeof i||"number"==typeof i)&&(o=i.toString()):("string"==typeof e||"number"==typeof e)&&(o=e.toString()),o}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(No),v(si),v(Ue),v(Te),v($t),v(qn),v(Ca),v(wt,8),v(zo,9),v(kc,8),v(p6,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,Nc,5),fn(r,mv,5)),2&i){let s;Ae(s=Oe())&&(o.listOfNzOptionComponent=s),Ae(s=Oe())&&(o.listOfNzOptionGroupComponent=s)}},viewQuery:function(i,o){if(1&i&&(ft(Tc,7,Te),ft(Mc,7),ft(E6,7),ft(mv,7,Te),ft(E6,7,Te)),2&i){let r;Ae(r=Oe())&&(o.originElement=r.first),Ae(r=Oe())&&(o.cdkConnectedOverlay=r.first),Ae(r=Oe())&&(o.nzSelectTopControlComponent=r.first),Ae(r=Oe())&&(o.nzOptionGroupComponentElement=r.first),Ae(r=Oe())&&(o.nzSelectTopControlComponentElement=r.first)}},hostAttrs:[1,"ant-select"],hostVars:26,hostBindings:function(i,o){2&i&&Q("ant-select-in-form-item",!!o.nzFormStatusService)("ant-select-lg","large"===o.nzSize)("ant-select-sm","small"===o.nzSize)("ant-select-show-arrow",o.nzShowArrow)("ant-select-disabled",o.nzDisabled)("ant-select-show-search",(o.nzShowSearch||"default"!==o.nzMode)&&!o.nzDisabled)("ant-select-allow-clear",o.nzAllowClear)("ant-select-borderless",o.nzBorderless)("ant-select-open",o.nzOpen)("ant-select-focused",o.nzOpen||o.focused)("ant-select-single","default"===o.nzMode)("ant-select-multiple","default"!==o.nzMode)("ant-select-rtl","rtl"===o.dir)},inputs:{nzId:"nzId",nzSize:"nzSize",nzStatus:"nzStatus",nzOptionHeightPx:"nzOptionHeightPx",nzOptionOverflowSize:"nzOptionOverflowSize",nzDropdownClassName:"nzDropdownClassName",nzDropdownMatchSelectWidth:"nzDropdownMatchSelectWidth",nzDropdownStyle:"nzDropdownStyle",nzNotFoundContent:"nzNotFoundContent",nzPlaceHolder:"nzPlaceHolder",nzPlacement:"nzPlacement",nzMaxTagCount:"nzMaxTagCount",nzDropdownRender:"nzDropdownRender",nzCustomTemplate:"nzCustomTemplate",nzSuffixIcon:"nzSuffixIcon",nzClearIcon:"nzClearIcon",nzRemoveIcon:"nzRemoveIcon",nzMenuItemSelectedIcon:"nzMenuItemSelectedIcon",nzTokenSeparators:"nzTokenSeparators",nzMaxTagPlaceholder:"nzMaxTagPlaceholder",nzMaxMultipleCount:"nzMaxMultipleCount",nzMode:"nzMode",nzFilterOption:"nzFilterOption",compareWith:"compareWith",nzAllowClear:[2,"nzAllowClear","nzAllowClear",O],nzBorderless:[2,"nzBorderless","nzBorderless",O],nzShowSearch:[2,"nzShowSearch","nzShowSearch",O],nzLoading:[2,"nzLoading","nzLoading",O],nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",O],nzAutoClearSearchValue:[2,"nzAutoClearSearchValue","nzAutoClearSearchValue",O],nzServerSearch:[2,"nzServerSearch","nzServerSearch",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzOpen:[2,"nzOpen","nzOpen",O],nzSelectOnTab:[2,"nzSelectOnTab","nzSelectOnTab",O],nzBackdrop:[2,"nzBackdrop","nzBackdrop",O],nzOptions:"nzOptions",nzShowArrow:[2,"nzShowArrow","nzShowArrow",O]},outputs:{nzOnSearch:"nzOnSearch",nzScrollToBottom:"nzScrollToBottom",nzOpenChange:"nzOpenChange",nzBlur:"nzBlur",nzFocus:"nzFocus"},exportAs:["nzSelect"],standalone:!0,features:[et([No,{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,ke,me],decls:5,vars:25,consts:[["origin","cdkOverlayOrigin"],["feedbackIconTpl",""],["cdkOverlayOrigin","",3,"inputValueChange","tokenize","deleteItem","keydown","nzId","open","disabled","mode","nzNoAnimation","maxTagPlaceholder","removeIcon","placeHolder","maxTagCount","customTemplate","tokenSeparators","showSearch","autofocus","listOfTopItem"],[3,"showArrow","loading","search","suffixIcon","feedbackIcon","nzMaxMultipleCount","listOfValue","isMaxTagCountSet",4,"ngIf"],[3,"clearIcon","clear",4,"ngIf"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayMinWidth","cdkConnectedOverlayWidth","cdkConnectedOverlayOrigin","cdkConnectedOverlayTransformOriginOn","cdkConnectedOverlayPanelClass","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions"],[3,"showArrow","loading","search","suffixIcon","feedbackIcon","nzMaxMultipleCount","listOfValue","isMaxTagCountSet"],[3,"status",4,"ngIf"],[3,"status"],[3,"clear","clearIcon"],[3,"keydown","itemClick","scrollToBottom","ngStyle","itemSize","maxItemLength","matchWidth","nzNoAnimation","listOfContainerItem","menuItemSelectedIcon","notFoundContent","activatedValue","listOfSelectedValue","dropdownRender","compareWith","mode","isMaxLimitReached"]],template:function(i,o){if(1&i){const r=U();f(0,"nz-select-top-control",2,0),D("inputValueChange",function(a){return T(r),M(o.onInputValueChange(a))})("tokenize",function(a){return T(r),M(o.onTokenSeparate(a))})("deleteItem",function(a){return T(r),M(o.onItemDelete(a))})("keydown",function(a){return T(r),M(o.onKeyDown(a))}),m(),w(2,zde,3,8,"nz-select-arrow",3)(3,Sde,1,1,"nz-select-clear",4)(4,Tde,1,24,"ng-template",5),D("overlayOutsideClick",function(a){return T(r),M(o.onClickOutside(a))})("detach",function(){return T(r),M(o.setOpenState(!1))})("positionChange",function(a){return T(r),M(o.onPositionChange(a))})}if(2&i){const r=He(1);h("nzId",o.nzId)("open",o.nzOpen)("disabled",o.nzDisabled)("mode",o.nzMode)("@.disabled",!(null==o.noAnimation||!o.noAnimation.nzNoAnimation))("nzNoAnimation",null==o.noAnimation?null:o.noAnimation.nzNoAnimation)("maxTagPlaceholder",o.nzMaxTagPlaceholder)("removeIcon",o.nzRemoveIcon)("placeHolder",o.nzPlaceHolder)("maxTagCount",o.nzMaxTagCount)("customTemplate",o.nzCustomTemplate)("tokenSeparators",o.nzTokenSeparators)("showSearch",o.nzShowSearch)("autofocus",o.nzAutoFocus)("listOfTopItem",o.listOfTopItem),d(2),h("ngIf",o.nzShowArrow||o.hasFeedback&&!!o.status||o.isMaxTagCountSet),d(),h("ngIf",o.nzAllowClear&&!o.nzDisabled&&o.listOfValue.length),d(),h("cdkConnectedOverlayHasBackdrop",o.nzBackdrop)("cdkConnectedOverlayMinWidth",o.nzDropdownMatchSelectWidth?null:o.triggerWidth)("cdkConnectedOverlayWidth",o.nzDropdownMatchSelectWidth?o.triggerWidth:null)("cdkConnectedOverlayOrigin",r)("cdkConnectedOverlayTransformOriginOn",".ant-select-dropdown")("cdkConnectedOverlayPanelClass",o.nzDropdownClassName)("cdkConnectedOverlayOpen",o.nzOpen)("cdkConnectedOverlayPositions",o.positions)}},dependencies:[E6,Tc,zo,zP,Tt,fO,U7,SP,Mc,u2,J3,wP,ti],encapsulation:2,data:{animation:[a7]},changeDetection:0})}return kt([Nt()],t.prototype,"nzOptionHeightPx",void 0),kt([Nt()],t.prototype,"nzSuffixIcon",void 0),kt([Nt()],t.prototype,"nzBorderless",void 0),kt([Nt()],t.prototype,"nzBackdrop",void 0),t})(),DP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Vc,wP,CP,E6,gv,TP,SP,zP,MP,yP]})}return t})();const xde=(t,n)=>({width:t,height:n}),Ede=(t,n,e)=>({"background-color":t,width:n,height:e});function kde(t,n){if(1&t){const e=U();f(0,"img",2),D("error",function(){return T(e),M(g().onError())}),m()}if(2&t){const e=g();h("src",e.url,Ot)("ngStyle",sc(2,xde,e.size+"px",e.size+"px"))}}function Ade(t,n){if(1&t&&(f(0,"div",3),C(1),m()),2&t){const e=g();h("ngStyle",tS(2,Ede,e.colour,e.size+"px",e.size+"px")),d(),Ce(" ",e.name?e.name[0]:""," ")}}let Fc=(()=>{class t{constructor(){this.src="",this.name="",this.colour="#1890ff",this.size=35,this.check=!0,this.hasError=!1}ngOnInit(){}get url(){return this.src?.startsWith("nav-")?Qx(this.src):this.src}onError(){this.hasError=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-logo"]],inputs:{src:"src",name:"name",colour:"colour",size:"size",check:"check"},decls:3,vars:2,consts:[["noSrc",""],["class","icon dark-border-color","draggable","false",3,"src","ngStyle","error",4,"ngIf","ngIfElse"],["draggable","false",1,"icon","dark-border-color",3,"error","src","ngStyle"],[1,"circle",3,"ngStyle"]],template:function(i,o){if(1&i&&w(0,kde,1,5,"img",1)(1,Ade,2,6,"ng-template",null,0,ot),2&i){const r=He(2);h("ngIf",o.url&&!o.hasError)("ngIfElse",r)}},dependencies:[Tt,ti],styles:[".icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:middle;pointer-events:none;background-color:#eee;border-radius:3px}.circle[_ngcontent-%COMP%]{color:#fff;display:flex;justify-content:center;align-items:center;border-radius:50%}"]})}return t})();const Ode=t=>({"background-image":t});function Pde(t,n){if(1&t){const e=U();f(0,"div",9),D("click",function(o){return T(e),M(g(2).toggleEngine(o))}),m()}if(2&t){const e=g(2);h("ngStyle",mr(1,Ode,"url("+e.currentEngine.icon+")"))}}function Ide(t,n){if(1&t){const e=U();f(0,"i",10),D("click",function(){return T(e),M(g(2).triggerSearch())}),m()}}function Nde(t,n){if(1&t){const e=U();f(0,"nz-select",12),Oi("ngModelChange",function(o){T(e);const r=g(3);return Yi(r.searchTypeValue,o)||(r.searchTypeValue=o),M(o)}),S(1,"nz-option",13)(2,"nz-option",13)(3,"nz-option",13)(4,"nz-option",13)(5,"nz-option",13),m()}if(2&t){const e=g(3);Ai("ngModel",e.searchTypeValue),d(),h("nzLabel",e.$t("_default"))("nzValue",e.SearchType.All),d(),h("nzLabel",e.$t("_title"))("nzValue",e.SearchType.Title),d(),h("nzLabel",e.$t("_desc"))("nzValue",e.SearchType.Desc),d(),h("nzLabel",e.$t("_link"))("nzValue",e.SearchType.Url),d(),h("nzLabel",e.$t("_current"))("nzValue",e.SearchType.Current)}}function Vde(t,n){1&t&&w(0,Nde,6,11,"nz-select",11),2&t&&h("ngIf",!g(2).currentEngine.url)}function Fde(t,n){if(1&t){const e=U();f(0,"div",16),D("click",function(){const o=T(e).index;return M(g(3).clickEngineItem(o))}),S(1,"app-logo",17),f(2,"span",18),C(3),m()()}if(2&t){const e=n.$implicit;d(),h("src",e.icon||"")("size",20)("check",!1),d(2),x(e.name)}}function Rde(t,n){if(1&t&&(f(0,"div",14),w(1,Fde,4,4,"div",15),m()),2&t){const e=g(2);d(),h("ngForOf",e.searchEngineList)}}function Lde(t,n){if(1&t){const e=U();f(0,"div",4)(1,"div",5)(2,"nz-input-group",6)(3,"input",7),Oi("ngModelChange",function(o){T(e);const r=g();return Yi(r.keyword,o)||(r.keyword=o),M(o)}),D("keyup",function(o){return T(e),M(g().onKey(o))}),m()(),w(4,Pde,1,3,"ng-template",null,0,ot)(6,Ide,1,0,"ng-template",null,1,ot)(8,Vde,1,1,"ng-template",null,2,ot),m(),w(10,Rde,2,1,"div",8),m()}if(2&t){const e=He(5),i=He(7),o=He(9),r=g();Q("small","small"===r.size),d(),Q("removeAddon",r.currentEngine.url),d(),h("nzPrefix",e)("nzSuffix",i)("nzSize",r.size)("nzAddOnBefore",o),d(),h("placeholder",r.currentEngine.placeholder||""),Ai("ngModel",r.keyword),d(7),h("ngIf",r.showEngine)}}let H1=(()=>{class t{constructor(e){this.router=e,this.size="default",this.$t=_e,this.searchEngineList=jg,this.currentEngine=function Ete(){let t=Mte[0]||{};try{const n=window.localStorage.getItem(Ui.engine);n&&(t=JSON.parse(n))}catch{}return t}(),this.SearchType=pa,this.searchTypeValue=pa.All,this.showEngine=!1,this.keyword=pi().q}inputFocus(){setTimeout(()=>{document.getElementById("search-engine-input")?.focus?.()},100)}ngAfterViewInit(){this.inputFocus(),document.addEventListener("click",()=>{this.toggleEngine(null,!1)})}toggleEngine(e,i){this.searchEngineList.length<=1||(e&&e.stopPropagation(),this.showEngine=typeof i>"u"?!this.showEngine:i)}clickEngineItem(e){this.currentEngine=this.searchEngineList[e],this.toggleEngine(),this.inputFocus(),function kte(t){window.localStorage.setItem(Ui.engine,JSON.stringify(t))}(this.currentEngine)}triggerSearch(){this.currentEngine.url&&window.open(this.currentEngine.url+this.keyword);const e=pi();this.router.navigate([this.router.url.split("?")[0]],{queryParams:{...e,q:this.keyword,type:this.searchTypeValue}})}onKey(e){"Enter"===e.code&&this.triggerSearch()}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-search-engine"]],inputs:{size:"size"},decls:1,vars:1,consts:[["prefixIcon",""],["suffixIcon",""],["addOnBeforeTemplate",""],["class","search-engine",3,"small",4,"ngIf"],[1,"search-engine"],[1,"input-wrapper","dark-bg","dark-border-color"],[3,"nzPrefix","nzSuffix","nzSize","nzAddOnBefore"],["type","text","nz-input","","autofocus","","id","search-engine-input","autocomplete","off",3,"ngModelChange","keyup","placeholder","ngModel"],["class","engine-main dark-bg dark-border-color dark-shadow",4,"ngIf"],[1,"left-icon",3,"click","ngStyle"],[1,"search-icon","iconfont","iconsousuo","dark-text",3,"click"],[3,"ngModel","ngModelChange",4,"ngIf"],[3,"ngModelChange","ngModel"],[3,"nzLabel","nzValue"],[1,"engine-main","dark-bg","dark-border-color","dark-shadow"],["class","item dark-bg-gary dark-item-hover",3,"click",4,"ngFor","ngForOf"],[1,"item","dark-bg-gary","dark-item-hover",3,"click"],[3,"src","size","check"],[1,"name2","dark-text"]],template:function(i,o){1&i&&w(0,Lde,11,11,"div",3),2&i&&h("ngIf",o.searchEngineList&&o.searchEngineList.length>0)},dependencies:[zn,Tt,ti,Ws,x6,vP,Nc,Vc,mi,Cr,Qi,Xi,Fc],styles:['@media (max-width: 768px){.engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{width:100%!important;margin-right:0!important}}.search-engine[_ngcontent-%COMP%]{position:relative;display:flex;justify-content:center;padding:10px 0}.search-engine.small[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%]{width:300px}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%]{position:relative;width:500px;background:#fff;border-radius:5px;overflow:hidden}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding-left:10px;padding-right:10px}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-webkit-autofill-selected{background-color:transparent!important;box-shadow:inset 0 0 0 500px transparent!important}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%] .left-icon[_ngcontent-%COMP%]{width:20px;height:20px;background-repeat:no-repeat;background-size:20px 20px;cursor:pointer}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{cursor:pointer}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%]{z-index:20;position:absolute;top:65px;left:50%;width:500px;max-width:90vw;padding:15px 15px 0;background:#fff;transform:translate(-50%);box-shadow:0 1px 5px #ccc;border-radius:5px;display:flex;flex-wrap:wrap}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%]:after{content:"";position:absolute;top:-11px;left:50%;width:0;height:0;transform:translate(-50%);border-style:solid;border-width:0 10px 20px 10px;border-color:transparent transparent #ffffff transparent}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{width:calc(33.33% - 10px);padding:6px;display:flex;background:#f6f6f6;cursor:pointer;margin-bottom:15px;border-radius:3px;transition:.1s linear;box-sizing:border-box;border:1px solid transparent}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover{background-color:#eee}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:not(:nth-child(3n)){margin-right:15px}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .name2[_ngcontent-%COMP%]{margin-left:10px;font-size:15px;align-self:center}.search-engine[_ngcontent-%COMP%] .removeAddon .ant-input-group-addon{display:none!important}@media screen and (max-width: 768px){.input-wrapper[_ngcontent-%COMP%]{width:90%!important}}']})}return t})();function Hde(t,n){1&t&&S(0,"i",7),2&t&&Q("active",g(2).dataSource.collapsed)}function Bde(t,n){1&t&&S(0,"i",7),2&t&&Q("active",g(2).dataSource.collapsed)}function jde(t,n){if(1&t){const e=U();f(0,"i",8),D("click",function(){return T(e),M(g(2).openCreateWebModal())}),m()}}function $de(t,n){if(1&t){const e=U();f(0,"div",2)(1,"span",3),D("click",function(){return T(e),M(g().onCollapse.emit())}),w(2,Hde,1,2,"i",4)(3,Bde,1,2,"ng-template",null,0,ot),f(5,"span",5),C(6),m()(),w(7,jde,1,0,"i",6),m()}if(2&t){const e=He(4),i=g();d(2),h("ngIf","1"===i.arrowType)("ngIfElse",e),d(4),ca(" ",i.dataSource.title," x ",i.dataSource.nav.length," "),d(),h("ngIf",i.isLogin||i.settings.allowCollect)}}let vv=(()=>{class t{constructor(){this.index=0,this.arrowType="1",this.onCollapse=new H,this.isLogin=Wi,this.websiteList=yn,this.settings=An}ngOnInit(){}openCreateWebModal(){Ei.emit("CREATE_WEB",{threeIndex:this.index})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-toolbar-title"]],inputs:{index:"index",dataSource:"dataSource",arrowType:"arrowType"},outputs:{onCollapse:"onCollapse"},decls:1,vars:1,consts:[["type",""],["class","title tool-title dark-primary dark-border-color",4,"ngIf"],[1,"title","tool-title","dark-primary","dark-border-color"],[1,"cursor-pointer",3,"click"],["class","iconfont iconjiantouarrow483 down-arrow",3,"active",4,"ngIf","ngIfElse"],[2,"margin-left","10px","align-self","center","vertical-align","middle"],["nz-icon","","nzType","plus","nzTheme","outline","class","add-icon",3,"click",4,"ngIf"],[1,"iconfont","iconjiantouarrow483","down-arrow"],["nz-icon","","nzType","plus","nzTheme","outline",1,"add-icon",3,"click"]],template:function(i,o){1&i&&w(0,$de,8,5,"div",1),2&i&&h("ngIf",o.dataSource&&o.dataSource.title)},dependencies:[Tt,mi,cn],styles:[".title[_ngcontent-%COMP%]{position:relative;font-size:16px;border-bottom:1px solid rgba(0,0,0,.05);padding:10px 0 10px 5px;color:#3f51b5;font-weight:500;display:flex;margin-bottom:15px;-webkit-user-select:none;user-select:none;margin-top:10px}.title[_ngcontent-%COMP%] .add-icon[_ngcontent-%COMP%]{position:absolute;top:50%;right:20px;transform:translateY(-50%);cursor:pointer;color:#666}"]})}return t})();const Yde=["okBtn"],Ude=["cancelBtn"];function Wde(t,n){1&t&&(f(0,"div",6),S(1,"span",14),m())}function Gde(t,n){if(1&t&&($e(0),f(1,"span",16),S(2,"span",17),m(),Ye()),2&t){const e=n.$implicit;d(2),h("nzType",e||"exclamation-circle")}}function qde(t,n){if(1&t&&($e(0),w(1,Gde,3,1,"ng-container",10),f(2,"div",15),C(3),m(),Ye()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzIcon),d(2),x(e.nzTitle)}}function Kde(t,n){1&t&&C(0),2&t&&Ce(" ",g(2).nzCancelText," ")}function Jde(t,n){1&t&&(C(0),Fr(1,"nzI18n")),2&t&&Ce(" ",Rr(1,1,"Modal.cancelText")," ")}function Zde(t,n){1&t&&C(0),2&t&&Ce(" ",g(2).nzOkText," ")}function Qde(t,n){1&t&&(C(0),Fr(1,"nzI18n")),2&t&&Ce(" ",Rr(1,1,"Modal.okText")," ")}function Xde(t,n){if(1&t){const e=U();f(0,"div",4)(1,"div",5),w(2,Wde,2,0,"div",6),f(3,"div",7)(4,"div")(5,"div",8)(6,"div",9),w(7,qde,4,2,"ng-container",10),m(),f(8,"div",11)(9,"button",12,1),D("click",function(){return T(e),M(g().onCancel())}),w(11,Kde,1,1)(12,Jde,2,3),m(),f(13,"button",13,2),D("click",function(){return T(e),M(g().onConfirm())}),w(15,Zde,1,1)(16,Qde,2,3),m()()()()()()()}if(2&t){const e=g();Q("ant-popover-rtl","rtl"===e.dir),h("cdkTrapFocusAutoCapture",null!==e.nzAutoFocus)("ngClass",e._classMap)("ngStyle",e.nzOverlayStyle)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("@zoomBigMotion","active"),d(2),he(e.nzPopconfirmShowArrow?2:-1),d(5),h("nzStringTemplateOutlet",e.nzTitle),d(2),h("nzSize","small"),Pt("cdkFocusInitial","cancel"===e.nzAutoFocus||null),d(2),he(e.nzCancelText?11:12),d(2),h("nzSize","small")("nzType","danger"!==e.nzOkType?e.nzOkType:"primary")("nzDanger",e.nzOkDanger||"danger"===e.nzOkType)("nzLoading",e.confirmLoading)("disabled",e.nzOkDisabled),Pt("cdkFocusInitial","ok"===e.nzAutoFocus||null),d(2),he(e.nzOkText?15:16)}}let B1=(()=>{class t extends L7{getProxyPropertyMap(){return{nzOkText:["nzOkText",()=>this.nzOkText],nzOkType:["nzOkType",()=>this.nzOkType],nzOkDanger:["nzOkDanger",()=>this.nzOkDanger],nzOkDisabled:["nzOkDisabled",()=>this.nzOkDisabled],nzCancelText:["nzCancelText",()=>this.nzCancelText],nzBeforeConfirm:["nzBeforeConfirm",()=>this.nzBeforeConfirm],nzCondition:["nzCondition",()=>this.nzCondition],nzIcon:["nzIcon",()=>this.nzIcon],nzPopconfirmShowArrow:["nzPopconfirmShowArrow",()=>this.nzPopconfirmShowArrow],nzPopconfirmBackdrop:["nzBackdrop",()=>this.nzPopconfirmBackdrop],nzAutoFocus:["nzAutoFocus",()=>this.nzAutofocus],...super.getProxyPropertyMap()}}constructor(){super(xP),this._nzModuleName="popconfirm",this.trigger="click",this.placement="top",this.nzCondition=!1,this.nzPopconfirmShowArrow=!0,this.nzPopconfirmBackdrop=!1,this.nzAutofocus=null,this.visibleChange=new H,this.nzOnCancel=new H,this.nzOnConfirm=new H}createComponent(){super.createComponent(),this.component.nzOnCancel.pipe(I(this.destroy$)).subscribe(()=>{this.nzOnCancel.emit()}),this.component.nzOnConfirm.pipe(I(this.destroy$)).subscribe(()=>{this.nzOnConfirm.emit()})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-popconfirm",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-popover-open",o.visible)},inputs:{arrowPointAtCenter:[2,"nzPopconfirmArrowPointAtCenter","arrowPointAtCenter",O],title:[0,"nzPopconfirmTitle","title"],directiveTitle:[0,"nz-popconfirm","directiveTitle"],trigger:[0,"nzPopconfirmTrigger","trigger"],placement:[0,"nzPopconfirmPlacement","placement"],origin:[0,"nzPopconfirmOrigin","origin"],mouseEnterDelay:[0,"nzPopconfirmMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:[0,"nzPopconfirmMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:[0,"nzPopconfirmOverlayClassName","overlayClassName"],overlayStyle:[0,"nzPopconfirmOverlayStyle","overlayStyle"],visible:[0,"nzPopconfirmVisible","visible"],nzOkText:"nzOkText",nzOkType:"nzOkType",nzOkDisabled:[2,"nzOkDisabled","nzOkDisabled",O],nzOkDanger:[2,"nzOkDanger","nzOkDanger",O],nzCancelText:"nzCancelText",nzBeforeConfirm:"nzBeforeConfirm",nzIcon:"nzIcon",nzCondition:[2,"nzCondition","nzCondition",O],nzPopconfirmShowArrow:[2,"nzPopconfirmShowArrow","nzPopconfirmShowArrow",O],nzPopconfirmBackdrop:"nzPopconfirmBackdrop",nzAutofocus:"nzAutofocus"},outputs:{visibleChange:"nzPopconfirmVisibleChange",nzOnCancel:"nzOnCancel",nzOnConfirm:"nzOnConfirm"},exportAs:["nzPopconfirm"],standalone:!0,features:[je,mt]})}return kt([Nt()],t.prototype,"nzPopconfirmBackdrop",void 0),kt([Nt()],t.prototype,"nzAutofocus",void 0),t})(),xP=(()=>{class t extends u6{constructor(e,i,o,r,s){super(e,o,s),this.elementRef=i,this.nzCondition=!1,this.nzPopconfirmShowArrow=!0,this.nzOkType="primary",this.nzOkDanger=!1,this.nzOkDisabled=!1,this.nzAutoFocus=null,this.nzBeforeConfirm=null,this.nzOnCancel=new N,this.nzOnConfirm=new N,this._trigger="click",this.elementFocusedBeforeModalWasOpened=null,this._prefix="ant-popover",this.confirmLoading=!1,this.document=r}ngOnDestroy(){super.ngOnDestroy(),this.nzOnCancel.complete(),this.nzOnConfirm.complete()}show(){this.nzCondition?this.onConfirm():(this.capturePreviouslyFocusedElement(),super.show())}hide(){super.hide(),this.restoreFocus()}handleConfirm(){this.nzOnConfirm.next(),super.hide()}onCancel(){this.nzOnCancel.next(),super.hide()}onConfirm(){if(this.nzBeforeConfirm){const e=bE(this.nzBeforeConfirm()).pipe(Ns());this.confirmLoading=!0,e.pipe(c1(()=>{this.confirmLoading=!1,this.cdr.markForCheck()}),I(this.nzVisibleChange),I(this.destroy$)).subscribe(i=>{i&&this.handleConfirm()})}else this.handleConfirm()}capturePreviouslyFocusedElement(){this.document&&(this.elementFocusedBeforeModalWasOpened=this.document.activeElement)}restoreFocus(){const e=this.elementFocusedBeforeModalWasOpened;if(e&&"function"==typeof e.focus){const i=this.document.activeElement,o=this.elementRef.nativeElement;(!i||i===this.document.body||i===o||o.contains(i))&&e.focus()}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(Te),v(wt,8),v(It,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-popconfirm"]],viewQuery:function(i,o){if(1&i&&(ft(Yde,5,Te),ft(Ude,5,Te)),2&i){let r;Ae(r=Oe())&&(o.okBtn=r),Ae(r=Oe())&&(o.cancelBtn=r)}},exportAs:["nzPopconfirmComponent"],standalone:!0,features:[mt,me],decls:2,vars:6,consts:[["overlay","cdkConnectedOverlay"],["cancelBtn",""],["okBtn",""],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayOpen","cdkConnectedOverlayPush","nzArrowPointAtCenter"],["cdkTrapFocus","",1,"ant-popover",3,"cdkTrapFocusAutoCapture","ngClass","ngStyle","nzNoAnimation"],[1,"ant-popover-content"],[1,"ant-popover-arrow"],[1,"ant-popover-inner"],[1,"ant-popover-inner-content"],[1,"ant-popover-message"],[4,"nzStringTemplateOutlet"],[1,"ant-popover-buttons"],["nz-button","",3,"click","nzSize"],["nz-button","",3,"click","nzSize","nzType","nzDanger","nzLoading","disabled"],[1,"ant-popover-arrow-content"],[1,"ant-popover-message-title"],[1,"ant-popover-message-icon"],["nz-icon","","nzTheme","fill",3,"nzType"]],template:function(i,o){if(1&i){const r=U();w(0,Xde,17,20,"ng-template",3,0,ot),D("overlayOutsideClick",function(a){return T(r),M(o.onClickOutside(a))})("detach",function(){return T(r),M(o.hide())})("positionChange",function(a){return T(r),M(o.onPositionChange(a))})}2&i&&h("cdkConnectedOverlayHasBackdrop",o.nzBackdrop)("cdkConnectedOverlayOrigin",o.origin)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayOpen",o._visible)("cdkConnectedOverlayPush",o.cdkConnectedOverlayPush)("nzArrowPointAtCenter",o.nzArrowPointAtCenter)},dependencies:[d2,Mc,u2,J3,xA,Ase,Zo,ti,zo,Tn,Sn,On,cn,h2,nr,mi,tr,Bse,Hse],encapsulation:2,data:{animation:[O3]},changeDetection:0})}return t})(),tue=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[xP]})}return t})();const nue=["nz-rate-item",""],EP=t=>({$implicit:t});function iue(t,n){}function oue(t,n){}function rue(t,n){1&t&&S(0,"span",4)}const sue=["ulElement"];function aue(t,n){if(1&t){const e=U();f(0,"li",2)(1,"div",3),D("itemHover",function(o){const r=T(e).$index;return M(g().onItemHover(r,o))})("itemClick",function(o){const r=T(e).$index;return M(g().onItemClick(r,o))}),m()()}if(2&t){const e=n.$index,i=g();h("ngClass",i.starStyleArray[e]||"")("nzTooltipTitle",i.nzTooltips[e]),d(),h("allowHalf",i.nzAllowHalf)("character",i.nzCharacter)("index",e)}}let kP=(()=>{class t{constructor(){this.index=0,this.allowHalf=!1,this.itemHover=new H,this.itemClick=new H}hoverRate(e){this.itemHover.next(e&&this.allowHalf)}clickRate(e){this.itemClick.next(e&&this.allowHalf)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-rate-item",""]],inputs:{character:"character",index:"index",allowHalf:[2,"allowHalf","allowHalf",O]},outputs:{itemHover:"itemHover",itemClick:"itemClick"},exportAs:["nzRateItem"],standalone:!0,features:[je,me],attrs:nue,decls:6,vars:8,consts:[["defaultCharacter",""],[1,"ant-rate-star-second",3,"mouseover","click"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ant-rate-star-first",3,"mouseover","click"],["nz-icon","","nzType","star","nzTheme","fill"]],template:function(i,o){if(1&i){const r=U();f(0,"div",1),D("mouseover",function(a){return T(r),o.hoverRate(!1),M(a.stopPropagation())})("click",function(){return T(r),M(o.clickRate(!1))}),w(1,iue,0,0,"ng-template",2),m(),f(2,"div",3),D("mouseover",function(a){return T(r),o.hoverRate(!0),M(a.stopPropagation())})("click",function(){return T(r),M(o.clickRate(!0))}),w(3,oue,0,0,"ng-template",2),m(),w(4,rue,1,0,"ng-template",null,0,ot)}if(2&i){const r=He(5);d(),h("ngTemplateOutlet",o.character||r)("ngTemplateOutletContext",mr(4,EP,o.index)),d(2),h("ngTemplateOutlet",o.character||r)("ngTemplateOutletContext",mr(6,EP,o.index))}},dependencies:[Vn,On,cn],encapsulation:2,changeDetection:0})}return t})(),_v=(()=>{class t{get nzValue(){return this._value}set nzValue(e){this._value!==e&&(this._value=e,this.hasHalf=!Number.isInteger(e)&&this.nzAllowHalf,this.hoverValue=Math.ceil(e))}constructor(e,i,o,r,s,a){this.nzConfigService=e,this.ngZone=i,this.renderer=o,this.cdr=r,this.directionality=s,this.destroy$=a,this._nzModuleName="rate",this.nzAllowClear=!0,this.nzAllowHalf=!1,this.nzDisabled=!1,this.nzAutoFocus=!1,this.nzCount=5,this.nzTooltips=[],this.nzOnBlur=new H,this.nzOnFocus=new H,this.nzOnHoverChange=new H,this.nzOnKeyDown=new H,this.classMap={},this.starArray=[],this.starStyleArray=[],this.dir="ltr",this.hasHalf=!1,this.hoverValue=0,this.isFocused=!1,this._value=0,this.isNzDisableFirstChange=!0,this.onChange=()=>null,this.onTouched=()=>null}ngOnChanges(e){const{nzAutoFocus:i,nzCount:o,nzValue:r}=e;if(i&&!i.isFirstChange()){const s=this.ulElement.nativeElement;this.nzAutoFocus&&!this.nzDisabled?this.renderer.setAttribute(s,"autofocus","autofocus"):this.renderer.removeAttribute(s,"autofocus")}o&&this.updateStarArray(),r&&this.updateStarStyle()}ngOnInit(){this.nzConfigService.getConfigChangeEventForComponent("rate").pipe(I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.directionality.change.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>{nn(this.ulElement.nativeElement,"focus").pipe(I(this.destroy$)).subscribe(e=>{this.isFocused=!0,this.nzOnFocus.observers.length&&this.ngZone.run(()=>this.nzOnFocus.emit(e))}),nn(this.ulElement.nativeElement,"blur").pipe(I(this.destroy$)).subscribe(e=>{this.isFocused=!1,this.nzOnBlur.observers.length&&this.ngZone.run(()=>this.nzOnBlur.emit(e))})})}onItemClick(e,i){if(this.nzDisabled)return;this.hoverValue=e+1;const o=i?e+.5:e+1;this.nzValue===o?this.nzAllowClear&&(this.nzValue=0,this.onChange(this.nzValue)):(this.nzValue=o,this.onChange(this.nzValue)),this.updateStarStyle()}onItemHover(e,i){this.nzDisabled||((this.hoverValue!==e+1||i!==this.hasHalf)&&(this.hoverValue=e+1,this.hasHalf=i,this.updateStarStyle()),this.nzOnHoverChange.emit(this.hoverValue))}onRateLeave(){this.hasHalf=!Number.isInteger(this.nzValue),this.hoverValue=Math.ceil(this.nzValue),this.nzOnHoverChange.emit(this.hoverValue),this.updateStarStyle()}focus(){this.ulElement.nativeElement.focus()}blur(){this.ulElement.nativeElement.blur()}onKeyDown(e){const i=this.nzValue;39===e.keyCode&&this.nzValue0&&(this.nzValue-=this.nzAllowHalf?.5:1),i!==this.nzValue&&(this.onChange(this.nzValue),this.nzOnKeyDown.emit(e),this.updateStarStyle(),this.cdr.markForCheck())}updateStarArray(){this.starArray=Array(this.nzCount).fill(0).map((e,i)=>i),this.updateStarStyle()}updateStarStyle(){this.starStyleArray=this.starArray.map(e=>{const i="ant-rate-star",o=e+1;return{[`${i}-full`]:othis.hoverValue,[`${i}-focused`]:this.hasHalf&&o===this.hoverValue&&this.isFocused}})}writeValue(e){this.nzValue=e||0,this.updateStarArray(),this.cdr.markForCheck()}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(De),v($t),v(Ue),v(wt,8),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-rate"]],viewQuery:function(i,o){if(1&i&&ft(sue,7),2&i){let r;Ae(r=Oe())&&(o.ulElement=r.first)}},inputs:{nzAllowClear:[2,"nzAllowClear","nzAllowClear",O],nzAllowHalf:[2,"nzAllowHalf","nzAllowHalf",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",O],nzCharacter:"nzCharacter",nzCount:[2,"nzCount","nzCount",Pi],nzTooltips:"nzTooltips"},outputs:{nzOnBlur:"nzOnBlur",nzOnFocus:"nzOnFocus",nzOnHoverChange:"nzOnHoverChange",nzOnKeyDown:"nzOnKeyDown"},exportAs:["nzRate"],standalone:!0,features:[et([No,{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,ke,me],decls:4,vars:6,consts:[["ulElement",""],[1,"ant-rate",3,"keydown","mouseleave","ngClass","tabindex"],["nz-tooltip","",1,"ant-rate-star",3,"ngClass","nzTooltipTitle"],["nz-rate-item","",3,"itemHover","itemClick","allowHalf","character","index"]],template:function(i,o){if(1&i){const r=U();f(0,"ul",1,0),D("keydown",function(a){return T(r),o.onKeyDown(a),M(a.preventDefault())})("mouseleave",function(a){return T(r),o.onRateLeave(),M(a.stopPropagation())}),ji(2,aue,2,5,"li",2,fr),m()}2&i&&(Q("ant-rate-disabled",o.nzDisabled)("ant-rate-rtl","rtl"===o.dir),h("ngClass",o.classMap)("tabindex",o.nzDisabled?-1:1),d(2),$i(o.starArray))},dependencies:[Zo,B7,Ta,kP],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzAllowClear",void 0),kt([Nt()],t.prototype,"nzAllowHalf",void 0),t})(),cue=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[_v,kP]})}return t})();const OP=()=>({});function lue(t,n){1&t&&S(0,"span",21)}function due(t,n){1&t&&(f(0,"span",25),C(1,"/"),m())}function uue(t,n){if(1&t&&(f(0,"span"),C(1),w(2,due,2,0,"span",24),m()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),x(e),d(),h("ngIf",i!==o.dataSource.breadcrumb.length-1)}}function hue(t,n){if(1&t&&(f(0,"div",22),w(1,uue,3,2,"span",23),m()),2&t){const e=g(2);d(),h("ngForOf",e.dataSource.breadcrumb)}}function pue(t,n){if(1&t){const e=U();f(0,"div",26)(1,"nz-rate",27),D("ngModelChange",function(o){return T(e),M(g(2).onRateChange(o))}),m()()}if(2&t){const e=g(2);d(),h("ngModel",e.dataSource.rate)("nzDisabled",!e.isLogin)}}function fue(t,n){if(1&t&&(f(0,"div",28)(1,"a",29),C(2),m()()),2&t){const e=n.$implicit,i=g(2);qo("background-color: "+(i.tagMap[e]&&i.tagMap[e].color||"#1890ff")),d(),h("href",(null==i.dataSource.urls?null:i.dataSource.urls[e])||"javascript:void(0)",Ot)("target",null!=i.dataSource.urls&&i.dataSource.urls[e]?"_blank":""),d(),x(i.tagMap[e]&&i.tagMap[e].name)}}function mue(t,n){if(1&t){const e=U();f(0,"div",17)(1,"i",30),D("click",function(){return T(e),M(g(2).openEditWebMoal())}),m()()}2&t&&h("nzTooltipTitle",g(2).$t("_edit"))}function gue(t,n){if(1&t){const e=U();f(0,"div",17)(1,"i",31),D("click",function(){return T(e),M(g(2).openMoveWebModal())}),m()()}2&t&&h("nzTooltipTitle",g(2).$t("_move"))}function vue(t,n){if(1&t){const e=U();f(0,"div",32),D("nzOnConfirm",function(){return T(e),M(g(2).confirmDel())}),S(1,"i",33),m()}2&t&&h("nzPopconfirmTitle",g(2).$t("_confirmDel"))}function _ue(t,n){if(1&t){const e=U();f(0,"div",4),w(1,lue,1,0,"span",5)(2,hue,2,1,"div",6)(3,pue,2,2,"div",7),f(4,"a",8)(5,"div",9),S(6,"app-logo",10)(7,"div",11),m()(),f(8,"div",12)(9,"a",8),S(10,"pre",13),m(),f(11,"div",14),w(12,fue,3,5,"div",15),m()(),f(13,"div",16)(14,"div",17)(15,"i",18),D("click",function(o){return T(e),M(g().copyUrl(o,2))})("mouseout",function(){return T(e),M(g().copyMouseout())}),m()(),f(16,"div",17)(17,"i",18),D("click",function(o){return T(e),M(g().copyUrl(o,1))})("mouseout",function(){return T(e),M(g().copyMouseout())}),m()(),w(18,mue,2,1,"div",19)(19,gue,2,1,"div",19)(20,vue,2,1,"div",20),m()()}if(2&t){const e=g();d(),h("ngIf",e.isLogin&&!1===e.dataSource.ok),d(),h("ngIf",e.searchKeyword&&(null==e.dataSource?null:e.dataSource.breadcrumb)),d(),h("ngIf",e.settings.showRate),d(),h("href",e.dataSource.url,Ot),d(2),h("src",e.dataSource.icon||"")("name",e.dataSource.name),d(),h("innerHTML",e.dataSource.name,Wn)("title",e.dataSource.__name__||e.dataSource.name),d(2),h("href",e.dataSource.url,Ot),d(),h("innerHTML",e.dataSource.desc,Wn)("title",e.dataSource.__desc__||e.dataSource.desc),d(2),h("ngForOf",e.objectKeys(e.dataSource.urls||Ti(19,OP))),d(2),h("nzTooltipTitle",e.$t(e.copyUrlDone?"_copySuccess":"_copyUrl")),d(),h("nzType",e.copyUrlDone?"check":"copy"),d(),h("nzTooltipTitle",e.$t(e.copyPathDone?"_copySuccess":"_shareWeb")),d(),h("nzType",e.copyPathDone?"check":"share-alt"),d(),h("ngIf",e.isLogin),d(),h("ngIf",e.isLogin&&4===e.indexs.length),d(),h("ngIf",e.isLogin)}}function bue(t,n){1&t&&S(0,"span",21)}function yue(t,n){1&t&&(f(0,"span",25),C(1,"/"),m())}function Cue(t,n){if(1&t&&(f(0,"span"),C(1),w(2,yue,2,0,"span",24),m()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),x(e),d(),h("ngIf",i!==o.dataSource.breadcrumb.length-1)}}function wue(t,n){if(1&t&&(f(0,"div",22),w(1,Cue,3,2,"span",23),m()),2&t){const e=g(2);d(),h("ngForOf",e.dataSource.breadcrumb)}}function zue(t,n){if(1&t&&(f(0,"a",34),w(1,bue,1,0,"span",5)(2,wue,2,1,"div",6),f(3,"div",35),S(4,"app-logo",10),f(5,"div",36),S(6,"div",37)(7,"pre",38),m()()()),2&t){const e=g();h("href",e.dataSource.url,Ot),d(),h("ngIf",e.isLogin&&!1===e.dataSource.ok),d(),h("ngIf",e.searchKeyword&&(null==e.dataSource?null:e.dataSource.breadcrumb)),d(2),h("src",e.dataSource.icon||"")("name",e.dataSource.name),d(),h("title",e.dataSource.__desc__||e.dataSource.desc),d(),h("innerHTML",e.dataSource.name,Wn),d(),h("innerHTML",e.dataSource.desc,Wn)}}function Sue(t,n){1&t&&S(0,"span",21)}function Tue(t,n){1&t&&(f(0,"span",25),C(1,"/"),m())}function Mue(t,n){if(1&t&&(f(0,"span"),C(1),w(2,Tue,2,0,"span",24),m()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),x(e),d(),h("ngIf",i!==o.dataSource.breadcrumb.length-1)}}function Due(t,n){if(1&t&&(f(0,"div",22),w(1,Mue,3,2,"span",23),m()),2&t){const e=g(2);d(),h("ngForOf",e.dataSource.breadcrumb)}}function xue(t,n){if(1&t&&(f(0,"div",46),C(1),m()),2&t){const e=g(2);d(),x(e.getRate)}}function Eue(t,n){if(1&t&&(f(0,"div",28)(1,"a",29),C(2),m()()),2&t){const e=n.$implicit,i=g(2);qo("background-color: "+(i.tagMap[e]&&i.tagMap[e].color||"#1890ff")),d(),h("href",(null==i.dataSource.urls?null:i.dataSource.urls[e])||"javascript:void(0)",Ot)("target",null!=i.dataSource.urls&&i.dataSource.urls[e]?"_blank":""),d(),x(i.tagMap[e]&&i.tagMap[e].name)}}function kue(t,n){if(1&t){const e=U();f(0,"span",47),D("click",function(){return T(e),M(g(2).openEditWebMoal())}),C(1),m()}if(2&t){const e=g(2);d(),x(e.$t("_edit"))}}function Aue(t,n){if(1&t){const e=U();f(0,"span",47),D("click",function(){return T(e),M(g(2).openMoveWebModal())}),C(1),m()}if(2&t){const e=g(2);d(),x(e.$t("_move"))}}function Oue(t,n){if(1&t){const e=U();f(0,"div",48),D("nzOnConfirm",function(){return T(e),M(g(2).confirmDel())}),f(1,"span",49),C(2),m()()}if(2&t){const e=g(2);h("nzPopconfirmTitle",e.$t("_confirmDel")),d(2),x(e.$t("_del"))}}function Pue(t,n){if(1&t&&(f(0,"div",39),w(1,Sue,1,0,"span",5)(2,Due,2,1,"div",6),f(3,"a",8)(4,"div",40),S(5,"app-logo",41)(6,"div",37),m(),f(7,"div",36),S(8,"pre",38),m()(),f(9,"div",42)(10,"div",14),w(11,xue,2,1,"div",43)(12,Eue,3,5,"div",15)(13,kue,2,1,"span",44)(14,Aue,2,1,"span",44)(15,Oue,3,2,"div",45),m()()()),2&t){const e=g();d(),h("ngIf",e.isLogin&&!1===e.dataSource.ok),d(),h("ngIf",e.searchKeyword&&(null==e.dataSource?null:e.dataSource.breadcrumb)),d(),h("href",e.dataSource.url,Ot),d(2),h("src",e.dataSource.icon||"")("name",e.dataSource.name)("size",26),d(),h("innerHTML",e.dataSource.name,Wn),d(),h("title",e.dataSource.__desc__||e.dataSource.desc),d(),h("innerHTML",e.dataSource.desc,Wn),d(3),h("ngIf",e.settings.showRate),d(),h("ngForOf",e.objectKeys(e.dataSource.urls||Ti(14,OP))),d(),h("ngIf",e.isLogin),d(),h("ngIf",e.isLogin&&4===e.indexs.length),d(),h("ngIf",e.isLogin)}}let k6=(()=>{class t{constructor(e){this.message=e,this.searchKeyword="",this.dataSource={},this.indexs=[],this.cardStyle="standard",this.$t=_e,this.objectKeys=Object.keys,this.settings=An,this.websiteList=yn,this.isLogin=Wi,this.copyUrlDone=!1,this.copyPathDone=!1,this.tagMap=ju}ngOnInit(){}copyUrl(e,i){var o=this;return Di(function*(){const r=o.dataSource,{origin:s,hash:a,pathname:c}=window.location,l=`${s}${c}${a}?q=${r.name}&url=${encodeURIComponent(r.url)}`,u=yield function Ote(t,n){const e=t.target,i=`copy-${Date.now()}`;return e.id=i,e.setAttribute("data-clipboard-text",n),new Promise(o=>{const r=new(zX())(`#${i}`);r.on("success",function(){r.destroy(),o(!0)}),r.on("error",function(){r.destroy(),o(!1)})})}(e,1===i?l:r.url);1===i?o.copyPathDone=u:o.copyUrlDone=u})()}copyMouseout(){this.copyUrlDone=!1,this.copyPathDone=!1}openEditWebMoal(){Ei.emit("CREATE_WEB",{detail:this.dataSource})}onRateChange(e){this.dataSource.rate=e,Yn(this.websiteList)}confirmDel(){M5({...this.dataSource,name:fs(this.dataSource.name),desc:fs(this.dataSource.desc)})}openMoveWebModal(){Ei.emit("MOVE_WEB",{indexs:this.indexs,data:[this.dataSource]})}get getRate(){if(!this.dataSource.rate)return null;const e=Number(this.dataSource.rate);return e?e.toFixed(1)+"\u5206":null}static#e=this.\u0275fac=function(i){return new(i||t)(v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-card"]],inputs:{searchKeyword:"searchKeyword",dataSource:"dataSource",indexs:"indexs",cardStyle:"cardStyle"},decls:4,vars:3,consts:[[3,"ngSwitch"],["class","container standard dark-border-color",4,"ngSwitchCase"],["target","_blank","rel","noreferer noopener","class","container example2 dark-bg dark-white dark-shadow",3,"href",4,"ngSwitchCase"],["class","container column2 ellipsis dark-bg dark-white dark-border-color dark-shadow dark-hover",4,"ngSwitchDefault"],[1,"container","standard","dark-border-color"],["nz-icon","","nzType","stop","nzTheme","outline","class","stop-icon","title","\u7591\u4f3c\u5f02\u5e38",4,"ngIf"],["class","breadcrumb1 ellipsis",4,"ngIf"],["class","rate",4,"ngIf"],["target","_blank","rel","noreferer noopener",3,"href"],[1,"top"],[3,"src","name"],[1,"title","ellipsis2","dark-white",3,"innerHTML","title"],[1,"middle"],[1,"desc","dark-text","ellipsis3",3,"innerHTML","title"],[1,"tagbox"],["class","tag-item",3,"style",4,"ngFor","ngForOf"],[1,"actionbar","dark-border-color"],["nz-tooltip","",1,"action-item","dark-border-color",3,"nzTooltipTitle"],["nz-icon","","nzTheme","outline",3,"click","mouseout","nzType"],["class","action-item dark-border-color","nz-tooltip","",3,"nzTooltipTitle",4,"ngIf"],["class","action-item dark-border-color","nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzPopconfirmTitle","nzOnConfirm",4,"ngIf"],["nz-icon","","nzType","stop","nzTheme","outline","title","\u7591\u4f3c\u5f02\u5e38",1,"stop-icon"],[1,"breadcrumb1","ellipsis"],[4,"ngFor","ngForOf"],["class","slash",4,"ngIf"],[1,"slash"],[1,"rate"],["nzAllowHalf","",3,"ngModelChange","ngModel","nzDisabled"],[1,"tag-item"],[3,"href","target"],["nz-icon","","nzType","edit","nzTheme","outline",3,"click"],["nz-icon","","nzType","swap","nzTheme","outline",3,"click"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",1,"action-item","dark-border-color",3,"nzOnConfirm","nzPopconfirmTitle"],["nz-icon","","nzType","delete","nzTheme","outline"],["target","_blank","rel","noreferer noopener",1,"container","example2","dark-bg","dark-white","dark-shadow",3,"href"],[1,"wrapper","ellipsis"],[1,"right-box",3,"title"],[1,"title","ellipsis",3,"innerHTML"],[1,"desc","dark-text","ellipsis",3,"innerHTML"],[1,"container","column2","ellipsis","dark-bg","dark-white","dark-border-color","dark-shadow","dark-hover"],[1,"title-bar"],[3,"src","name","size"],[1,"bottom-bar"],["class","rate2",4,"ngIf"],["class","action-btn dark-text dark-hover-text",3,"click",4,"ngIf"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzPopconfirmTitle","nzOnConfirm",4,"ngIf"],[1,"rate2"],[1,"action-btn","dark-text","dark-hover-text",3,"click"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"],[1,"action-btn","dark-text","dark-hover-text"]],template:function(i,o){1&i&&($e(0,0),w(1,_ue,21,20,"div",1)(2,zue,8,8,"a",2)(3,Pue,16,15,"div",3),Ye()),2&i&&(h("ngSwitch",o.cardStyle),d(),h("ngSwitchCase","standard"),d(),h("ngSwitchCase","example"))},dependencies:[zn,Tt,lc,fu,Gm,mi,Qi,B1,Ta,cn,_v,Xi,Fc],styles:[".container[_ngcontent-%COMP%]{position:relative;height:100%}.container[_ngcontent-%COMP%] .breadcrumb1[_ngcontent-%COMP%]{padding:0 0 0 8px;font-size:12px;color:#666}.container[_ngcontent-%COMP%] .breadcrumb1[_ngcontent-%COMP%] .slash[_ngcontent-%COMP%]{margin:0 4px}.container[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{color:#00000073;word-break:break-all;white-space:pre-wrap}.container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{white-space:normal;word-break:break-all}.container[_ngcontent-%COMP%] .stop-icon[_ngcontent-%COMP%]{z-index:3;color:red;font-weight:700;position:absolute;top:12px;right:12px}.standard[_ngcontent-%COMP%]{box-shadow:0 1px 5px #0000001a;border-radius:4px;border:1px solid #eee;display:flex;flex-direction:column;padding-top:5px;transition:all .2s ease-out}.standard[_ngcontent-%COMP%]:hover{transform:translateY(-3px)}.standard[_ngcontent-%COMP%] .rate[_ngcontent-%COMP%]{padding:0 8px}.standard[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%]{flex:1}.standard[_ngcontent-%COMP%] .top[_ngcontent-%COMP%]{margin-top:5px;display:flex;align-items:center;padding:0 8px}.standard[_ngcontent-%COMP%] .top[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{margin-left:8px;font-weight:500;color:#000}.standard[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{padding:8px 8px 0;margin-bottom:5px}.standard[_ngcontent-%COMP%] .tagbox[_ngcontent-%COMP%]{display:flex;padding:0 8px;flex-wrap:wrap}.standard[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]{margin:6px 6px 0 0;padding:0 6px;border-radius:2px;font-size:12px;display:flex;align-items:center;transition:all .1s linear;color:#fff}.standard[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:currentColor}.standard[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]:hover{opacity:.8}.standard[_ngcontent-%COMP%] .actionbar[_ngcontent-%COMP%]{display:flex;border-top:1px solid #eee;padding:8px 0;margin-top:10px}.standard[_ngcontent-%COMP%] .actionbar[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%]{flex:1;text-align:center;font-size:16px;color:#999;cursor:pointer}.standard[_ngcontent-%COMP%] .actionbar[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%]:hover{color:#1890ff}.standard[_ngcontent-%COMP%] .actionbar[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%]:not(:nth-last-child(1)){border-right:1px solid #eee}.example2[_ngcontent-%COMP%]{background-color:#fff;padding:8px;border-radius:8px;cursor:pointer;box-shadow:0 0 3px #0000001a,0 1px 2px -1px #0000001a;border:1px solid transparent;transition:all .15s linear;color:#000;display:block}.example2[_ngcontent-%COMP%]:hover{border:1px solid #78b7fa;transform:translateY(-3px)}.example2[_ngcontent-%COMP%]:hover .title[_ngcontent-%COMP%]{color:#007bff}.example2[_ngcontent-%COMP%] .breadcrumb1[_ngcontent-%COMP%]{padding:0 0 4px}.example2[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{display:flex}.example2[_ngcontent-%COMP%] .right-box[_ngcontent-%COMP%]{flex:1;width:0;margin-left:12px}.example2[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{margin:0;font-size:12px} .column-border .column2{border:1px solid transparent!important;box-shadow:0 1px 5px #0000001a;border-radius:4px}.column2[_ngcontent-%COMP%]{background-color:#fff;padding:8px 12px;border-bottom:1px solid #eee;transition:all .15s linear;color:#000;display:block}.column2[_ngcontent-%COMP%] .breadcrumb1[_ngcontent-%COMP%]{padding:0 0 4px}.column2[_ngcontent-%COMP%]:hover{background-color:#f2f3f5}.column2[_ngcontent-%COMP%]:hover .action-btn[_ngcontent-%COMP%]{display:block}.column2[_ngcontent-%COMP%] .title-bar[_ngcontent-%COMP%]{display:flex;align-items:center}.column2[_ngcontent-%COMP%] .right-box[_ngcontent-%COMP%]{margin-top:6px}.column2[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-weight:700;margin-left:10px;font-size:15px}.column2[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{margin:0;font-size:12px}.column2[_ngcontent-%COMP%] .bottom-bar[_ngcontent-%COMP%]{display:flex;margin-top:4px}.column2[_ngcontent-%COMP%] .tagbox[_ngcontent-%COMP%]{display:flex;flex:1;justify-content:flex-start;align-items:center;flex-wrap:wrap;row-gap:5px}.column2[_ngcontent-%COMP%] .tagbox[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#fff}.column2[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]{margin-right:6px;padding:0 6px;border-radius:2px;font-size:12px;display:flex;align-items:center;transition:all .1s linear}.column2[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]:hover{opacity:.8}.column2[_ngcontent-%COMP%] .rate2[_ngcontent-%COMP%]{color:#8a919f;margin-right:10px}.column2[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{margin-right:4px;color:#8a919f;font-size:12px;display:none;cursor:pointer}.column2[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]:hover{color:#666} .gutter-row .ant-card{height:100%;display:flex;flex-direction:column;justify-content:space-between}"]})}return t})();function Iue(t,n){if(1&t){const e=U();f(0,"li",4),D("click",function(){const o=T(e).index,r=g();return M(r.handleCilck(r.index+o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g();Q("moreActive",o.page===o.index+i)("dark-text-active",o.page===o.index+i),d(),Ce(" ",e.title," ")}}let bv=(()=>{class t{constructor(){this.index=0,this.data=[],this.page=0,this.onClick=new H}ngOnInit(){}handleCilck(e){this.onClick?.emit?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-web-more-menu"]],inputs:{index:"index",data:"data",page:"page"},outputs:{onClick:"onClick"},decls:5,vars:2,consts:[["menu","nzDropdownMenu"],["nz-dropdown","","nzPlacement","bottomRight",1,"more-btn","dark-white","iconfont","icongengduo",2,"color","#08c",3,"nzDropdownMenu"],["nz-menu",""],["nzMenuClassName","navpopover","nz-menu-item","","class","navpopover over-item dark-text dark-hover",3,"moreActive","dark-text-active","click",4,"ngFor","ngForOf"],["nzMenuClassName","navpopover","nz-menu-item","",1,"navpopover","over-item","dark-text","dark-hover",3,"click"]],template:function(i,o){1&i&&(S(0,"span",1),f(1,"nz-dropdown-menu",null,0)(3,"ul",2),w(4,Iue,2,5,"li",3),m()()),2&i&&(h("nzDropdownMenu",He(2)),d(4),h("ngForOf",o.data))},dependencies:[zn,mi,Sa,Us,N1,C2],styles:[".over-item[_ngcontent-%COMP%]{cursor:pointer;margin:0;padding:7px 16px;text-align:center}.over-item.moreActive[_ngcontent-%COMP%]{font-weight:700!important;color:#08c}.more-btn[_ngcontent-%COMP%]{z-index:11;position:relative;cursor:pointer}"]})}return t})();const Nue=()=>[16,16],Vue=(t,n,e,i)=>[t,n,e,i];function Fue(t,n){if(1&t){const e=U();f(0,"span",15),D("click",function(){const o=T(e).index;return M(g().handleCilckTopNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g();Q("active",o.page===i)("dark-text-active",o.page===i),d(),Ce(" ",e.title," ")}}function Rue(t,n){if(1&t){const e=U();f(0,"app-web-more-menu",16),D("onClick",function(o){return T(e),M(g().handleCilckTopNav(o))}),m()}if(2&t){const e=g();h("data",e.websiteList.slice(e.overIndex,9999))("index",e.overIndex)("page",e.page)}}function Lue(t,n){if(1&t){const e=U();f(0,"div",18),D("click",function(){const o=T(e).index;return M(g(2).handleSidebarNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);Q("active",o.id===i)("dark-item-active",o.id===i),d(),Ce(" ",e.title," ")}}function Hue(t,n){if(1&t&&(f(0,"div"),w(1,Lue,2,5,"div",17),m()),2&t){const e=g();d(),h("ngForOf",e.websiteList[e.page].nav)("ngForTrackBy",e.trackByItem)}}function Bue(t,n){if(1&t&&(f(0,"div",23),S(1,"app-card",24),m()),2&t){const e=n.$implicit,i=n.index,o=g().index,r=g(2);h("nzSpan",8)("nzSm",12)("nzMd",8)("nzXs",24),d(),h("cardStyle",r.settings.lightCardStyle)("dataSource",e)("indexs",nu(8,Vue,r.page,r.id,o,i))("searchKeyword",r.searchKeyword)}}function jue(t,n){if(1&t){const e=U();f(0,"div")(1,"app-toolbar-title",20),D("onCollapse",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).onCollapse(r,s))}),m(),f(2,"div",21),w(3,Bue,2,13,"div",22),m()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);d(),h("dataSource",e)("index",i),d(),Lt("display",e.collapsed?"none":""),h("nzGutter",Ti(7,Nue)),d(),h("ngForOf",e.nav)("ngForTrackBy",o.trackByItemWeb)}}function $ue(t,n){if(1&t&&(f(0,"div"),w(1,jue,4,8,"div",19),m()),2&t){const e=g();d(),h("ngForOf",e.currentList.slice(0,e.sliceMax))("ngForTrackBy",e.trackByItem)}}function Yue(t,n){1&t&&S(0,"app-no-data")}function Uue(t,n){if(1&t&&(f(0,"div",27)(1,"a",28),S(2,"img",29),m()()),2&t){const e=n.$implicit;d(),h("href",e.url||"javascript:void(0)",Ot)("target",e.url?"_blank":"_self"),d(),h("src",e.src,Ot)}}function Wue(t,n){if(1&t&&(f(0,"div",25),w(1,Uue,3,3,"div",26),m()),2&t){const e=g();d(),h("ngForOf",e.settings.lightImages)}}let Gue=(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.isLogin=Wi,this.sliceMax=1,this.settings=An,this.overIndex=Number.MAX_SAFE_INTEGER,this.searchKeyword="",this.onCollapse=(o,r)=>{o.collapsed=!o.collapsed,this.websiteList[this.page].nav[this.id].nav[r]=o,Yn(this.websiteList)},this.onCollapseAll=()=>{z5(this.websiteList)}}ngOnInit(){eE(),this.activatedRoute.queryParams.subscribe(()=>{const{id:e,page:i,q:o}=pi();this.page=i,this.id=e,this.searchKeyword=o,this.sliceMax=1,this.currentList=o?S1(this.websiteList,o):Bu(),setTimeout(()=>{this.sliceMax=Number.MAX_SAFE_INTEGER},100)})}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}collapsed(){try{return!!yn[this.page].nav[this.id].collapsed}catch{return!1}}handleCilckTopNav(e){const i=this.websiteList[e].id||0;this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:e,id:i,_:Date.now()}})}handleSidebarNav(e){const{page:i}=pi();this.websiteList[i].id=e,this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:i,id:e,_:Date.now()}})}ngAfterViewInit(){"ellipsis"===this.settings.lightOverType&&queueMicrotask(()=>{const e=D5(".top-nav .over-item");this.overIndex!==e&&(this.overIndex=e)})}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-light"]],decls:18,vars:10,consts:[["noData",""],[1,"index-wrapper"],[1,"light-box"],[1,"homepage","dark-border-color","dark-bg"],["selector",".main",3,"onCollapse","collapsed"],[1,"top-nav","dark-scrollbar","dark-border-color","dark-bg"],["class","over-item ripple-btn dark-text",3,"active","dark-text-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[3,"data","index","page","onClick",4,"ngIf"],[1,"index-section","user-select-none","dark-bg"],["id","sidebar",1,"sidebar","dark-bg","dark-border-color"],[4,"ngIf"],[1,"main","dark-scrollbar"],[4,"ngIf","ngIfElse"],["class","right dark-scrollbar",4,"ngIf"],[1,"layer-bg","dark-bg"],[1,"over-item","ripple-btn","dark-text",3,"click"],[3,"onClick","data","index","page"],["class","tag dark-text",3,"active","dark-item-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"tag","dark-text",3,"click"],[4,"ngFor","ngForOf","ngForTrackBy"],[3,"onCollapse","dataSource","index"],["nz-row","",2,"padding","0 10px",3,"nzGutter"],["class","gutter-row","nz-col","",3,"nzSpan","nzSm","nzMd","nzXs",4,"ngFor","ngForOf","ngForTrackBy"],["nz-col","",1,"gutter-row",3,"nzSpan","nzSm","nzMd","nzXs"],[1,"column-border",3,"cardStyle","dataSource","indexs","searchKeyword"],[1,"right","dark-scrollbar"],["class","aditem",4,"ngFor","ngForOf"],[1,"aditem"],[3,"href","target"],[1,"adsimg",3,"src"]],template:function(i,o){if(1&i){const r=U();f(0,"div",1)(1,"div",2)(2,"main",3)(3,"app-fixbar",4),D("onCollapse",function(){return T(r),M(o.onCollapseAll())}),m(),f(4,"nav",5),w(5,Fue,2,5,"span",6)(6,Rue,1,3,"app-web-more-menu",7),m(),f(7,"section",8)(8,"aside",9),w(9,Hue,2,2,"div",10),m(),f(10,"div",11),S(11,"app-search-engine"),w(12,$ue,2,2,"div",12)(13,Yue,1,0,"ng-template",null,0,ot),m()()(),w(15,Wue,2,1,"div",13),m(),S(16,"app-footer"),m(),S(17,"div",14)}if(2&i){const r=He(14);Q("noimg",o.settings.lightImages.length<=0),d(3),h("collapsed",o.collapsed()),d(2),h("ngForOf",o.websiteList.slice(0,o.overIndex))("ngForTrackBy",o.trackByItem),d(),h("ngIf",o.overIndex0)("ngIfElse",r),d(3),h("ngIf",o.settings.lightImages.length>0)}},dependencies:[zn,Tt,x1,Cc,z2,S2,h6,H1,vv,k6,bv],styles:['.layer-bg[_ngcontent-%COMP%]{z-index:-1;position:fixed;inset:0}@media (max-width: 1280px){.index-wrapper[_ngcontent-%COMP%]{--width: 800px;--rightWidth: 200px}.index-wrapper.noimg[_ngcontent-%COMP%]{--width: 1000px}}@media (max-width: 1080px){.index-wrapper[_ngcontent-%COMP%]{--width: 800px !important}.right[_ngcontent-%COMP%]{display:none}}@media (max-width: 1000px){.light-box[_ngcontent-%COMP%]{width:100%!important}}@media (max-width: 810px){.index-wrapper[_ngcontent-%COMP%]{--top: 0}}.index-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh;padding-top:var(--top, 15px)}.index-wrapper[_ngcontent-%COMP%] .light-box[_ngcontent-%COMP%]{display:flex;justify-content:center;height:100%;margin:0 auto;column-gap:20px}.index-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:var(--rightWidth, 230px);min-width:var(--rightWidth, 230px);max-height:calc(100vh - 50px);overflow:hidden;overflow-y:auto}.index-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .adsimg[_ngcontent-%COMP%]{display:block;width:100%;border-radius:4px}.index-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .aditem[_ngcontent-%COMP%]{margin-bottom:20px;border-radius:4px;overflow:hidden}.homepage[_ngcontent-%COMP%]{width:var(--width, 1000px);height:100%;position:relative;background:#fbfbfb;border-radius:5px;overflow:hidden;transition:.1s linear;border:1px solid transparent}.homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%]{padding:10px 0;overflow:none;overflow-x:auto;white-space:nowrap;border-bottom:1px solid #eee;text-align:center;-webkit-user-select:none;user-select:none}.homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%] .more-btn, .homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%] .ripple-btn[_ngcontent-%COMP%]{height:40px;position:relative;padding:0 15px;color:#000;cursor:pointer;border-radius:5px;overflow:hidden;display:inline-flex;align-items:center}.homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%] .more-btn.active:after, .homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%] .ripple-btn.active[_ngcontent-%COMP%]:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;border-radius:2px;background-color:#108ee9}.index-section[_ngcontent-%COMP%]{position:relative;height:calc(100% - 52px);overflow:hidden}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{position:relative;width:80px;height:100%;text-align:center;border-right:1px solid #eee;overflow-y:auto}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%]{position:relative;cursor:pointer;padding:11px 0}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]{color:#1890ff}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]:after, .index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;width:100%}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]:after{top:0;border-top:1px dashed #ccc}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]:before{content:"";bottom:0;border-bottom:1px dashed #ccc}.index-section[_ngcontent-%COMP%] .main[_ngcontent-%COMP%]{width:calc(100% - 80px);position:absolute;top:0;left:80px;bottom:30px;padding-bottom:50px;overflow:hidden;overflow-y:auto}']})}return t})();const que=(t,n,e,i)=>[t,n,e,i];function Kue(t,n){if(1&t){const e=U();f(0,"div",22),D("click",function(){const o=T(e).index;return M(g().handleCilckTopMenu(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g();Q("active",o.page===i)("dark-text-active",o.page===i),d(),Ce(" ",e.title," ")}}function Jue(t,n){if(1&t){const e=U();f(0,"app-web-more-menu",23),D("onClick",function(o){return T(e),M(g().handleCilckTopMenu(o))}),m()}if(2&t){const e=g();h("data",e.websiteList.slice(e.overIndex,9999))("index",e.overIndex)("page",e.page)}}function Zue(t,n){1&t&&S(0,"img",29),2&t&&h("src",g().$implicit.icon,Ot)}function Que(t,n){if(1&t){const e=U();f(0,"div",26),D("click",function(){const o=T(e).index;return M(g(2).handleSidebarNav(o))}),w(1,Zue,1,1,"img",27),f(2,"span",28),C(3),m()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);Q("active",o.id===i)("dark-item-active",o.id===i),d(),h("ngIf",e.icon),d(2),x(e.title)}}function Xue(t,n){if(1&t&&(f(0,"div",24),w(1,Que,4,6,"div",25),m()),2&t){const e=g();d(),h("ngForOf",e.websiteList[e.page].nav)("ngForTrackBy",e.trackByItem)}}function e2e(t,n){if(1&t){const e=U();f(0,"div",30),D("click",function(){const o=T(e).index;return M(g().handleCheckThree(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index;Q("active",g().selectedIndex===i)("none",!e.title),d(),Ce(" ",e.title," ")}}function t2e(t,n){if(1&t&&S(0,"app-card",32),2&t){const e=n.$implicit,i=n.index,o=g(2);h("indexs",nu(4,que,o.page,o.id,o.selectedIndex,i))("cardStyle",o.settings.superCardStyle)("dataSource",e)("searchKeyword",o.searchKeyword)}}function n2e(t,n){if(1&t&&(f(0,"div"),w(1,t2e,1,9,"app-card",31),m()),2&t){const e=g();d(),h("ngForOf",e.currentList[e.selectedIndex].nav)("ngForTrackBy",e.trackByItemWeb)}}function i2e(t,n){1&t&&S(0,"app-no-data")}function o2e(t,n){if(1&t){const e=U();f(0,"div",33)(1,"span",34),D("click",function(){return T(e),M(g().openCreateWebModal())}),C(2),m()()}if(2&t){const e=g();d(2),x(e.$t(e.isLogin?"_add":"_apply"))}}function r2e(t,n){if(1&t&&(f(0,"div",37)(1,"a",38),S(2,"img",39),m()()),2&t){const e=n.$implicit;d(),h("href",e.url||"javascript:void(0)",Ot)("target",e.url?"_blank":"_self"),d(),h("src",e.src,Ot)}}function s2e(t,n){if(1&t&&(f(0,"div",35),w(1,r2e,3,3,"div",36),m()),2&t){const e=g();d(),h("ngForOf",e.settings.superImages)}}let a2e=(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.$t=_e,this.LOGO_CDN=An.favicon,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.selectedIndex=0,this.title=An.title.trim().split(/\s/)[0],this.searchEngineList=x5,this.isLogin=Wi,this.settings=An,this.overIndex=Number.MAX_SAFE_INTEGER,this.searchKeyword=""}ngOnInit(){this.activatedRoute.queryParams.subscribe(()=>{const{id:e,page:i,q:o}=pi();this.page=i,this.id=e,this.searchKeyword=o,this.handleCheckThree(0),this.currentList=o?S1(this.websiteList,o):Bu()})}ngAfterViewInit(){"ellipsis"===this.settings.superOverType&&queueMicrotask(()=>{const e=D5(".topnav .over-item");this.overIndex!==e&&(this.overIndex=e)})}handleCilckTopMenu(e){const i=this.websiteList[e].id||0;this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:e,id:i,_:Date.now()}})}handleSidebarNav(e){const{page:i}=pi();this.websiteList[i].id=e,this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:i,id:e,_:Date.now()}})}handleCheckThree(e){this.selectedIndex=e}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}openCreateWebModal(){Ei.emit("CREATE_WEB",{threeIndex:this.selectedIndex})}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-side"]],decls:24,vars:15,consts:[["noData",""],[1,"super-xjh","dark-bg"],[1,"sheader","dark-bg"],[1,"headerbox"],[1,"hitem"],[1,"logo",3,"src"],[1,"title","dark-white"],[1,"topnav","dark-scrollbar"],["class","hitem over-item dark-text",3,"active","dark-text-active","click",4,"ngFor","ngForOf","ngForTrackBy"],["class","flex-center",3,"data","index","page","onClick",4,"ngIf"],[1,"main-box"],["class","left dark-bg dark-border-color dark-scrollbar",4,"ngIf"],[1,"middle","dark-bg"],[1,"search-t","dark-border-color"],["size","small"],[1,"bar","dark-scrollbar"],["class","bar-item",3,"active","none","click",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngIf","ngIfElse"],["class","apply",4,"ngIf"],["class","right dark-scrollbar",4,"ngIf"],[2,"color","#ccc"],[3,"showCollapse"],[1,"hitem","over-item","dark-text",3,"click"],[1,"flex-center",3,"onClick","data","index","page"],[1,"left","dark-bg","dark-border-color","dark-scrollbar"],["class","bar-item dark-text dark-hover ellipsis",3,"active","dark-item-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"bar-item","dark-text","dark-hover","ellipsis",3,"click"],["class","sideicon",3,"src",4,"ngIf"],[1,"ellipsis"],[1,"sideicon",3,"src"],[1,"bar-item",3,"click"],[3,"indexs","cardStyle","dataSource","searchKeyword",4,"ngFor","ngForOf","ngForTrackBy"],[3,"indexs","cardStyle","dataSource","searchKeyword"],[1,"apply"],[1,"appbtn",3,"click"],[1,"right","dark-scrollbar"],["class","aditem",4,"ngFor","ngForOf"],[1,"aditem"],[3,"href","target"],[1,"adsimg",3,"src"]],template:function(i,o){if(1&i&&(f(0,"section",1)(1,"header",2)(2,"div",3)(3,"div",4),S(4,"img",5),f(5,"span",6),C(6),m()(),f(7,"div",7),w(8,Kue,2,5,"div",8)(9,Jue,1,3,"app-web-more-menu",9),m()()(),f(10,"div",10),w(11,Xue,2,2,"div",11),f(12,"div",12)(13,"div",13),S(14,"app-search-engine",14),f(15,"div",15),w(16,e2e,2,5,"div",16),m()(),w(17,n2e,2,2,"div",17)(18,i2e,1,0,"ng-template",null,0,ot)(20,o2e,3,1,"div",18),m(),w(21,s2e,2,1,"div",19),m(),S(22,"app-footer",20)(23,"app-fixbar",21),m()),2&i){const r=He(19);d(4),h("src",o.LOGO_CDN,Ot),d(2),x(o.settings.superTitle||o.title),d(2),h("ngForOf",o.websiteList.slice(0,o.overIndex))("ngForTrackBy",o.trackByItem),d(),h("ngIf",o.overIndex0),d(2),h("showCollapse",!1)}},dependencies:[zn,Tt,z2,S2,h6,H1,k6,bv],styles:['@media (max-width: 1200px){.super-xjh[_ngcontent-%COMP%]{--width: 960px;--leftWidth: 180px;--rightWidth: 200px}}@media (max-width: 998px){.super-xjh[_ngcontent-%COMP%]{--width: 100%;--leftWidth: 150px;--rightWidth: 160px}}@media (max-width: 768px){.super-xjh[_ngcontent-%COMP%]{--width: 100%;--leftWidth: 100%;--rightWidth: 100%}.main-box[_ngcontent-%COMP%]{flex-direction:column;row-gap:20px}.sheader[_ngcontent-%COMP%]{z-index:3;position:sticky;top:0;left:0}.right[_ngcontent-%COMP%], .left[_ngcontent-%COMP%]{position:initial!important;max-height:initial!important}.right[_ngcontent-%COMP%]{padding:0 20px;background-color:#fff}}@media (min-width: 1200px){.super-xjh[_ngcontent-%COMP%]{--width: 1150px;--leftWidth: 180px;--rightWidth: 250px}}.super-xjh[_ngcontent-%COMP%]{--stickyTop: 20px;background-color:#f2f3f5;min-height:100vh;display:flex;flex-direction:column}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%]{display:flex;align-items:center;background-color:#fff;height:70px;box-shadow:0 1px 5px #00000017}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .headerbox[_ngcontent-%COMP%]{width:var(--width);overflow:hidden;overflow-x:auto;margin:0 auto;display:flex}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:40px;height:40px}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:#000;margin-left:4px;-webkit-user-select:none;user-select:none;margin-right:8px}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .hitem[_ngcontent-%COMP%]{display:flex;align-items:center;font-weight:700;font-size:18px;margin-left:10px;white-space:nowrap}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .hitem[_ngcontent-%COMP%]:hover{color:#000}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .more-btn, .super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .over-item[_ngcontent-%COMP%]{color:#515767;font-weight:400;font-size:14px;margin-left:0;padding:0 10px;cursor:pointer}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .more-btn.active, .super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .over-item.active[_ngcontent-%COMP%]{font-weight:700;color:#1e80ff}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .topnav[_ngcontent-%COMP%]{display:flex;overflow:hidden;overflow-x:auto}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%]{width:var(--width);margin:24px auto 0;display:flex;flex:1;column-gap:20px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{position:sticky;top:var(--stickyTop);width:var(--leftWidth);min-width:var(--leftWidth);text-align:left;background-color:#fff;padding:8px;font-size:16px;border-radius:4px;overflow:hidden;overflow-y:auto;max-height:calc(100vh - 100px);border:1px solid transparent}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .bar-item[_ngcontent-%COMP%]{padding:10px 17px;cursor:pointer;border-radius:4px;display:flex;align-items:center;color:#515767}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .bar-item[_ngcontent-%COMP%]:hover{background-color:#f7f8fa}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .bar-item.active[_ngcontent-%COMP%]{font-weight:700;color:#1e80ff;background-color:#eaf2ff}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .sideicon[_ngcontent-%COMP%]{width:20px;height:20px;margin-right:12px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%]{position:relative;background:#fff;flex:1;border-radius:4px;overflow:hidden}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle.noads[_ngcontent-%COMP%]{width:initial}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .search-t[_ngcontent-%COMP%]{padding:8px 12px 0;border-bottom:1px solid #eee;margin-bottom:12px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{margin-top:10px;display:flex;overflow:hidden;overflow-x:auto;padding-bottom:8px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item[_ngcontent-%COMP%]{position:relative;padding:0 10px;white-space:nowrap;cursor:pointer;color:#515767}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item[_ngcontent-%COMP%]:hover{color:#1e80ff}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item.active[_ngcontent-%COMP%]{font-weight:700}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item.active[_ngcontent-%COMP%]:after{content:"";display:block;position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:40%;height:3px;background-color:#1e80ff;border-radius:2px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item.none[_ngcontent-%COMP%]{display:none}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .apply[_ngcontent-%COMP%]{text-align:center;padding:20px 0}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .appbtn[_ngcontent-%COMP%]{cursor:pointer;color:#1890ff;-webkit-user-select:none;user-select:none;font-size:12px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{position:sticky;top:var(--stickyTop);width:var(--rightWidth);min-width:var(--rightWidth);max-height:calc(100vh - 100px);overflow:hidden;overflow-y:auto}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .adsimg[_ngcontent-%COMP%]{display:block;width:100%;border-radius:4px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .aditem[_ngcontent-%COMP%]{margin-bottom:20px;border-radius:4px;overflow:hidden}.super-xjh[_ngcontent-%COMP%] .standard{margin-bottom:15px}.super-xjh[_ngcontent-%COMP%] #app-footer{margin-top:40px}.super-xjh[_ngcontent-%COMP%] #app-footer, .super-xjh[_ngcontent-%COMP%] #app-footer .copyright{margin-bottom:10px;color:#666}']})}return t})();const c2e=["*"],l2e=t=>({height:t});function d2e(t,n){if(1&t&&(f(0,"div",4)(1,"a",5),S(2,"img",6),m()()),2&t){const e=n.$implicit,i=g();d(),h("href",e.url||"javascript:void(0)",Ot)("target",e.url?"_blank":""),d(),Q("height100",i.height>0),h("src",e.src,Ot)}}let PP=(()=>{class t{constructor(){this.images=[],this.autoplay=!0,this.height=300,this.mySwiper=null,this.swiperId="swiper",this.swiperId="swiper"+parseInt(String(1e3*Math.random()))}ngAfterViewInit(){this.initSwiper()}ngOnDestroy(){this.destroySwiper()}initSwiper(){this.destroySwiper();const e=document.getElementById(this.swiperId);e&&Swiper?this.mySwiper=new Swiper(e,{autoplay:!!this.autoplay&&{delay:5e3},pagination:{el:".swiper-pagination",clickable:!0}}):console.log("swiper not found")}destroySwiper(){this.mySwiper&&(this.mySwiper?.destroy?.(),this.mySwiper=null)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-swiper"]],inputs:{images:"images",autoplay:"autoplay",height:"height"},ngContentSelectors:c2e,decls:5,vars:5,consts:[[1,"swiper",3,"id","ngStyle"],[1,"swiper-wrapper"],["class","swiper-slide",4,"ngFor","ngForOf"],[1,"swiper-pagination"],[1,"swiper-slide"],[3,"href","target"],["draggable","false",1,"bgimg",3,"src"]],template:function(i,o){1&i&&(Et(),f(0,"div",0)(1,"div",1),w(2,d2e,3,5,"div",2),m(),S(3,"div",3),bt(4),m()),2&i&&(h("id",o.swiperId)("ngStyle",mr(3,l2e,o.height<=0?"":o.height+"px")),d(2),h("ngForOf",o.images))},dependencies:[zn,ti],styles:[".swiper[_ngcontent-%COMP%]{-webkit-user-select:none;user-select:none}.swiper[_ngcontent-%COMP%] .swiper-pagination-bullet{cursor:pointer}.swiper[_ngcontent-%COMP%] .swiper-pagination-bullet-active{background-color:#fff!important}.swiper[_ngcontent-%COMP%] .bgimg[_ngcontent-%COMP%]{width:100%;object-fit:cover}"]})}return t})();const u2e=()=>[16,16],h2e=(t,n,e,i)=>[t,n,e,i];function p2e(t,n){if(1&t&&(f(0,"div",14),S(1,"app-swiper",15),f(2,"div",16)(3,"h1",17),C(4),m(),S(5,"pre",18)(6,"app-search-engine"),m()()),2&t){const e=g();Q("bootstrap",e.settings.simThemeHeight<260),d(),h("images",e.settings.simThemeImages)("autoplay",e.settings.simThemeAutoplay)("height",e.settings.simThemeHeight),d(3),Ce(" ",e.settings.simTitle||e.settings.title," "),d(),h("innerHTML",e.description,Wn)}}function f2e(t,n){if(1&t){const e=U();f(0,"span",19),D("click",function(){const o=T(e).index;return M(g().handleCilckTopNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g();Q("active",o.page===i)("dark-text-active",o.page===i),d(),Ce(" ",e.title," ")}}function m2e(t,n){if(1&t){const e=U();f(0,"app-web-more-menu",20),D("onClick",function(o){return T(e),M(g().handleCilckTopNav(o))}),m()}if(2&t){const e=g();h("data",e.websiteList.slice(e.overIndex,9999))("index",e.overIndex)("page",e.page)}}function g2e(t,n){if(1&t){const e=U();f(0,"div",23),D("click",function(){const o=T(e).index;return M(g(2).handleSidebarNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);Q("active",o.id===i)("dark-item-active",o.id===i),d(),Ce(" ",e.title," ")}}function v2e(t,n){if(1&t&&(f(0,"nav",21),w(1,g2e,2,5,"div",22),m()),2&t){const e=g();d(),h("ngForOf",e.websiteList[e.page].nav)("ngForTrackBy",e.trackByItem)}}function _2e(t,n){if(1&t&&(f(0,"div",29),S(1,"app-card",30),m()),2&t){const e=n.$implicit,i=n.index,o=g().index,r=g(2);h("nzSpan",8)("nzSm",12)("nzMd",12)("nzLg",8)("nzXs",24),d(),h("cardStyle","example")("dataSource",e)("indexs",nu(9,h2e,r.page,r.id,o,i))("searchKeyword",r.searchKeyword)}}function b2e(t,n){if(1&t){const e=U();f(0,"div")(1,"div",25)(2,"app-toolbar-title",26),D("onCollapse",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).onCollapse(r,s))}),m(),f(3,"div",27),w(4,_2e,2,14,"div",28),m()()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);d(2),h("dataSource",e)("index",i),d(),Lt("display",e.collapsed?"none":""),h("nzGutter",Ti(7,u2e)),d(),h("ngForOf",e.nav)("ngForTrackBy",o.trackByItemWeb)}}function y2e(t,n){if(1&t&&(f(0,"div"),w(1,b2e,5,8,"div",24),m()),2&t){const e=g();d(),h("ngForOf",e.currentList.slice(0,e.sliceMax))("ngForTrackBy",e.trackByItem)}}function C2e(t,n){1&t&&S(0,"app-no-data")}let w2e=(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.settings=An,this.description=An.simThemeDesc.replace("${total}",String(Wi?p3.loginViewCount:p3.userViewCount)),this.isLogin=Wi,this.sliceMax=1,this.overIndex=Number.MAX_SAFE_INTEGER,this.searchKeyword="",this.onCollapse=(o,r)=>{o.collapsed=!o.collapsed,this.websiteList[this.page].nav[this.id].nav[r]=o,Yn(this.websiteList)},this.onCollapseAll=()=>{z5(this.websiteList)}}ngOnInit(){this.activatedRoute.queryParams.subscribe(()=>{const{id:e,page:i,q:o}=pi();this.page=i,this.id=e,this.searchKeyword=o,this.sliceMax=1,this.currentList=o?S1(this.websiteList,o):Bu(),setTimeout(()=>{this.sliceMax=Number.MAX_SAFE_INTEGER},100)})}ngOnDestroy(){}ngAfterViewInit(){"ellipsis"===this.settings.simOverType&&queueMicrotask(()=>{const e=D5(".top-nav .over-item");this.overIndex!==e&&(this.overIndex=e)})}handleSidebarNav(e){const{page:i}=pi();this.websiteList[i].id=e,this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:i,id:e,_:Date.now()}})}handleCilckTopNav(e){const i=this.websiteList[e].id||0;this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:e,id:i,_:Date.now()}})}collapsed(){try{return!!yn[this.page].nav[this.id].collapsed}catch{return!1}}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-sim"]],decls:15,vars:8,consts:[["noData",""],[1,"sim"],["class","wallpaper",3,"bootstrap",4,"ngIf"],[1,"hidden","search-sm"],[1,"top-nav","dark-border-color","dark-scrollbar","dark-bg"],["class","over-item dark-text",3,"active","dark-text-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[3,"data","index","page","onClick",4,"ngIf"],[1,"wrapper"],["class","sidebar dark-bg","id","sidebar",4,"ngIf"],[1,"site-box","dark-bg"],[4,"ngIf","ngIfElse"],["className","sim-footer"],[3,"onCollapse","collapsed"],[1,"sim-bg","dark-bg"],[1,"wallpaper"],[3,"images","autoplay","height"],[1,"bar"],[1,"title","dark-white"],[1,"description","dark-white",3,"innerHTML"],[1,"over-item","dark-text",3,"click"],[3,"onClick","data","index","page"],["id","sidebar",1,"sidebar","dark-bg"],["class","ripple-btn dark-text dark-hover",3,"active","dark-item-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ripple-btn","dark-text","dark-hover",3,"click"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"nav-wrapper"],[3,"onCollapse","dataSource","index"],["nz-row","",3,"nzGutter"],["class","gutter-row","nz-col","",3,"nzSpan","nzSm","nzMd","nzLg","nzXs",4,"ngFor","ngForOf","ngForTrackBy"],["nz-col","",1,"gutter-row",3,"nzSpan","nzSm","nzMd","nzLg","nzXs"],[1,"column-border",3,"cardStyle","dataSource","indexs","searchKeyword"]],template:function(i,o){if(1&i){const r=U();f(0,"div",1),w(1,p2e,7,7,"div",2),S(2,"app-search-engine",3),f(3,"nav",4),w(4,f2e,2,5,"span",5)(5,m2e,1,3,"app-web-more-menu",6),m(),f(6,"div",7),w(7,v2e,2,2,"nav",8),f(8,"aside",9),w(9,y2e,2,2,"div",10)(10,C2e,1,0,"ng-template",null,0,ot),m()()(),S(12,"app-footer",11),f(13,"app-fixbar",12),D("onCollapse",function(){return T(r),M(o.onCollapseAll())}),m(),S(14,"div",13)}if(2&i){const r=He(11);d(),h("ngIf",o.settings.simThemeImages.length>0),d(3),h("ngForOf",o.websiteList.slice(0,o.overIndex))("ngForTrackBy",o.trackByItem),d(),h("ngIf",o.overIndex0)("ngIfElse",r),d(4),h("collapsed",o.collapsed())}},dependencies:[zn,Tt,x1,Cc,PP,z2,S2,h6,H1,vv,k6,bv],styles:['@media (max-width: 1280px){.sim[_ngcontent-%COMP%]{--width: 1000px !important}}@media (max-width: 1080px){.sim[_ngcontent-%COMP%]{--width: 900px !important}.sim[_ngcontent-%COMP%] .bootstrap[_ngcontent-%COMP%]{--titleSize: 32px;--textSize: 14px}}@media (max-width: 980px){.sim[_ngcontent-%COMP%]{--width: 768px !important}.sim[_ngcontent-%COMP%] .bootstrap[_ngcontent-%COMP%]{--titleSize: 26px;--textSize: 12px}}@media (max-width: 800px){.bar[_ngcontent-%COMP%]{display:none}.search-sm[_ngcontent-%COMP%]{display:block;margin-top:10px}.wrapper[_ngcontent-%COMP%]{flex-direction:column}.top-nav[_ngcontent-%COMP%]{z-index:9;background-color:#fff;position:sticky;top:0;left:0;-webkit-user-select:none;user-select:none}.sidebar[_ngcontent-%COMP%]{position:relative!important;top:0!important;width:100%!important}.sim[_ngcontent-%COMP%]{--width: 100% !important}}.sim-bg[_ngcontent-%COMP%]{z-index:-1;position:fixed;inset:0;background:#f0f2f5}.top-nav[_ngcontent-%COMP%]{max-width:var(--width);width:100%;margin:10px auto;padding:10px;overflow:none;overflow-x:auto;white-space:nowrap;border-bottom:1px solid #eee;text-align:center}.top-nav[_ngcontent-%COMP%] .more-btn, .top-nav[_ngcontent-%COMP%] .over-item[_ngcontent-%COMP%]{position:relative;display:inline-block;padding:10px 15px;color:#666;cursor:pointer;overflow:hidden}.top-nav[_ngcontent-%COMP%] .more-btn.active:after, .top-nav[_ngcontent-%COMP%] .over-item.active[_ngcontent-%COMP%]:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;border-radius:2px;background-color:#108ee9}.top-nav[_ngcontent-%COMP%] .over-item[_ngcontent-%COMP%]:hover{color:#000}.sim[_ngcontent-%COMP%]{--width: 1200px;display:flex;flex-direction:column;min-height:100vh}.sim[_ngcontent-%COMP%] .wallpaper[_ngcontent-%COMP%]{position:relative;background-color:#fff}.sim[_ngcontent-%COMP%] .wallpaper[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{z-index:10;position:absolute;max-width:600px;top:50%;left:50%;transform:translate(-50%,-50%)}.sim[_ngcontent-%COMP%] .wallpaper[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:#fff;margin-bottom:10px;font-size:var(--titleSize, 36px);text-align:center;line-height:1.3;-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap}.sim[_ngcontent-%COMP%] .wallpaper[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{text-align:center;color:#fff;margin-bottom:10px;font-weight:700;font-size:var(--textSize, 16px);white-space:pre-wrap;-webkit-user-select:none;user-select:none;pointer-events:none}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{flex:1;position:relative;width:var(--width);padding-bottom:50px;margin:0 auto;display:flex;column-gap:30px;row-gap:20px}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{position:sticky;top:20px;left:0;width:180px;height:min-content;padding:10px 0;text-align:center;background-color:#fff;box-shadow:0 0 1px #ccc;max-height:calc(100vh - 50px);overflow-y:auto;border-radius:4px}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .ripple-btn[_ngcontent-%COMP%]{padding:14px 0;cursor:pointer;border-radius:5px;transition:.1s linear;-webkit-user-select:none;user-select:none;font-weight:500}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .ripple-btn[_ngcontent-%COMP%]:hover{background-color:#00000008}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .ripple-btn.active[_ngcontent-%COMP%]{color:#409eff;background-color:#e7f1fd}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .site-box[_ngcontent-%COMP%]{flex:1;position:relative;background-color:#fff;padding:15px;border-radius:4px}.sim[_ngcontent-%COMP%] .search-engine .input-wrapper{width:330px!important} #app-footer, #app-footer .copyright{margin-bottom:10px;color:#666}']})}return t})();const yv=["*"],z2e=["nz-sider-trigger",""];function S2e(t,n){}function T2e(t,n){if(1&t&&w(0,S2e,0,0,"ng-template",2),2&t){const e=g(),i=He(5);h("ngTemplateOutlet",e.nzZeroTrigger||i)}}function M2e(t,n){}function D2e(t,n){if(1&t&&w(0,M2e,0,0,"ng-template",2),2&t){const e=g(),i=He(3);h("ngTemplateOutlet",e.nzTrigger||i)}}function x2e(t,n){1&t&&S(0,"span",3),2&t&&h("nzType",g(2).nzCollapsed?"left":"right")}function E2e(t,n){1&t&&S(0,"span",3),2&t&&h("nzType",g(2).nzCollapsed?"right":"left")}function k2e(t,n){1&t&&w(0,x2e,1,1,"span",3)(1,E2e,1,1,"span",3),2&t&&he(g().nzReverseArrow?0:1)}function A2e(t,n){1&t&&S(0,"span",4)}function O2e(t,n){if(1&t){const e=U();f(0,"div",2),D("click",function(){T(e);const o=g();return M(o.setCollapsed(!o.nzCollapsed))}),m()}if(2&t){const e=g();h("matchBreakPoint",e.matchBreakPoint)("nzCollapsedWidth",e.nzCollapsedWidth)("nzCollapsed",e.nzCollapsed)("nzBreakpoint",e.nzBreakpoint)("nzReverseArrow",e.nzReverseArrow)("nzTrigger",e.nzTrigger)("nzZeroTrigger",e.nzZeroTrigger)("siderWidth",e.widthSetting)}}let IP=(()=>{class t{constructor(e,i){this.elementRef=e,this.renderer=i,this.renderer.addClass(this.elementRef.nativeElement,"ant-layout-content")}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-content"]],exportAs:["nzContent"],standalone:!0,features:[me],ngContentSelectors:yv,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),NP=(()=>{class t{constructor(){this.nzCollapsed=!1,this.nzReverseArrow=!1,this.nzZeroTrigger=null,this.nzTrigger=void 0,this.matchBreakPoint=!1,this.nzCollapsedWidth=null,this.siderWidth=null,this.nzBreakpoint=null,this.isZeroTrigger=!1,this.isNormalTrigger=!1}updateTriggerType(){this.isZeroTrigger=0===this.nzCollapsedWidth&&(this.nzBreakpoint&&this.matchBreakPoint||!this.nzBreakpoint),this.isNormalTrigger=0!==this.nzCollapsedWidth}ngOnInit(){this.updateTriggerType()}ngOnChanges(){this.updateTriggerType()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-sider-trigger",""]],hostVars:10,hostBindings:function(i,o){2&i&&(Lt("width",o.isNormalTrigger?o.siderWidth:null),Q("ant-layout-sider-trigger",o.isNormalTrigger)("ant-layout-sider-zero-width-trigger",o.isZeroTrigger)("ant-layout-sider-zero-width-trigger-right",o.isZeroTrigger&&o.nzReverseArrow)("ant-layout-sider-zero-width-trigger-left",o.isZeroTrigger&&!o.nzReverseArrow))},inputs:{nzCollapsed:"nzCollapsed",nzReverseArrow:"nzReverseArrow",nzZeroTrigger:"nzZeroTrigger",nzTrigger:"nzTrigger",matchBreakPoint:"matchBreakPoint",nzCollapsedWidth:"nzCollapsedWidth",siderWidth:"siderWidth",nzBreakpoint:"nzBreakpoint"},exportAs:["nzSiderTrigger"],standalone:!0,features:[ke,me],attrs:z2e,decls:6,vars:2,consts:[["defaultTrigger",""],["defaultZeroTrigger",""],[3,"ngTemplateOutlet"],["nz-icon","",3,"nzType"],["nz-icon","","nzType","bars"]],template:function(i,o){1&i&&w(0,T2e,1,1,null,2)(1,D2e,1,1,null,2)(2,k2e,2,1,"ng-template",null,0,ot)(4,A2e,1,0,"ng-template",null,1,ot),2&i&&(he(o.isZeroTrigger?0:-1),d(),he(o.isNormalTrigger?1:-1))},dependencies:[Vn,On,cn],encapsulation:2,changeDetection:0})}return t})(),Cv=(()=>{class t{updateStyleMap(){this.widthSetting=this.nzCollapsed?`${this.nzCollapsedWidth}px`:D1(this.nzWidth),this.flexSetting=`0 0 ${this.widthSetting}`,this.cdr.markForCheck()}updateMenuInlineCollapsed(){this.nzMenuDirective&&"inline"===this.nzMenuDirective.nzMode&&0!==this.nzCollapsedWidth&&this.nzMenuDirective.setInlineCollapsed(this.nzCollapsed)}setCollapsed(e){e!==this.nzCollapsed&&(this.nzCollapsed=e,this.nzCollapsedChange.emit(e),this.updateMenuInlineCollapsed(),this.updateStyleMap(),this.cdr.markForCheck())}constructor(e,i,o){this.platform=e,this.cdr=i,this.breakpointService=o,this.destroy$=new N,this.nzMenuDirective=null,this.nzCollapsedChange=new H,this.nzWidth=200,this.nzTheme="dark",this.nzCollapsedWidth=80,this.nzBreakpoint=null,this.nzZeroTrigger=null,this.nzTrigger=void 0,this.nzReverseArrow=!1,this.nzCollapsible=!1,this.nzCollapsed=!1,this.matchBreakPoint=!1,this.flexSetting=null,this.widthSetting=null}ngOnInit(){this.updateStyleMap(),this.platform.isBrowser&&this.breakpointService.subscribe(Zte,!0).pipe(I(this.destroy$)).subscribe(e=>{const i=this.nzBreakpoint;i&&function fne(){const t=new N;return Promise.resolve().then(()=>t.next()),t.pipe(io(1))}().subscribe(()=>{this.matchBreakPoint=!e[i],this.setCollapsed(this.matchBreakPoint),this.cdr.markForCheck()})})}ngOnChanges(e){const{nzCollapsed:i,nzCollapsedWidth:o,nzWidth:r}=e;(i||o||r)&&this.updateStyleMap(),i&&this.updateMenuInlineCollapsed()}ngAfterContentInit(){this.updateMenuInlineCollapsed()}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(qn),v(Ue),v(H5))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-sider"]],contentQueries:function(i,o,r){if(1&i&&fn(r,Sa,5),2&i){let s;Ae(s=Oe())&&(o.nzMenuDirective=s.first)}},hostAttrs:[1,"ant-layout-sider"],hostVars:18,hostBindings:function(i,o){2&i&&(Lt("flex",o.flexSetting)("max-width",o.widthSetting)("min-width",o.widthSetting)("width",o.widthSetting),Q("ant-layout-sider-zero-width",o.nzCollapsed&&0===o.nzCollapsedWidth)("ant-layout-sider-light","light"===o.nzTheme)("ant-layout-sider-dark","dark"===o.nzTheme)("ant-layout-sider-collapsed",o.nzCollapsed)("ant-layout-sider-has-trigger",o.nzCollapsible&&null!==o.nzTrigger))},inputs:{nzWidth:"nzWidth",nzTheme:"nzTheme",nzCollapsedWidth:"nzCollapsedWidth",nzBreakpoint:"nzBreakpoint",nzZeroTrigger:"nzZeroTrigger",nzTrigger:"nzTrigger",nzReverseArrow:[2,"nzReverseArrow","nzReverseArrow",O],nzCollapsible:[2,"nzCollapsible","nzCollapsible",O],nzCollapsed:[2,"nzCollapsed","nzCollapsed",O]},outputs:{nzCollapsedChange:"nzCollapsedChange"},exportAs:["nzSider"],standalone:!0,features:[je,ke,me],ngContentSelectors:yv,decls:3,vars:1,consts:[[1,"ant-layout-sider-children"],["nz-sider-trigger","",3,"matchBreakPoint","nzCollapsedWidth","nzCollapsed","nzBreakpoint","nzReverseArrow","nzTrigger","nzZeroTrigger","siderWidth"],["nz-sider-trigger","",3,"click","matchBreakPoint","nzCollapsedWidth","nzCollapsed","nzBreakpoint","nzReverseArrow","nzTrigger","nzZeroTrigger","siderWidth"]],template:function(i,o){1&i&&(Et(),f(0,"div",0),bt(1),m(),w(2,O2e,1,8,"div",1)),2&i&&(d(2),he(o.nzCollapsible&&null!==o.nzTrigger?2:-1))},dependencies:[NP],encapsulation:2,changeDetection:0})}return t})(),VP=(()=>{class t{constructor(e){this.directionality=e,this.dir="ltr",this.destroy$=new N}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-layout"]],contentQueries:function(i,o,r){if(1&i&&fn(r,Cv,4),2&i){let s;Ae(s=Oe())&&(o.listOfNzSiderComponent=s)}},hostAttrs:[1,"ant-layout"],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-layout-rtl","rtl"===o.dir)("ant-layout-has-sider",o.listOfNzSiderComponent.length>0)},exportAs:["nzLayout"],standalone:!0,features:[me],ngContentSelectors:yv,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),P2e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Cv,NP]})}return t})();function I2e(t,n){if(1&t){const e=U();$e(0),f(1,"p"),C(2),m(),f(3,"input",2),Oi("ngModelChange",function(o){T(e);const r=g();return Yi(r.token,o)||(r.token=o),M(o)}),m(),f(4,"p",3),C(5),f(6,"a",4),C(7),m()(),Ye()}if(2&t){const e=g();d(2),x(e.$t("_inputTokenMsg")),d(),h("placeholder",e.$t("_inputToken")),Ai("ngModel",e.token),d(2),Ce(" ",e.$t("_getToken"),""),d(2),Ce(" ",e.$t("_readDoc"),"")}}let N2e=(()=>{class t{constructor(e){this.message=e,this.visible=!1,this.onCancel=new H,this.$t=_e,this.token="",this.submiting=!1}ngOnInit(){}hanldeCancel(){this.onCancel.emit()}login(){if(!this.token)return this.message.error(_e("_pleaseInputToken"));const e=this.token.trim();this.submiting=!0,Jx(e).then(()=>{(function kX(t){window.localStorage.setItem("token",t)})(e),vc({message:"auth",path:".navauth",content:"OK"}).then(()=>{(function bte(t){return m5.apply(this,arguments)})("image").finally(()=>{this.message.success(_e("_tokenVerSuc")),function OX(){window.localStorage.removeItem("website")}(),setTimeout(()=>window.location.reload(),2e3)})}).catch(()=>{(function AX(){window.localStorage.removeItem("token")})(),this.submiting=!1})}).catch(()=>{this.submiting=!1})}static#e=this.\u0275fac=function(i){return new(i||t)(v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-login"]],inputs:{visible:"visible"},outputs:{onCancel:"onCancel"},decls:2,vars:3,consts:[[3,"nzVisibleChange","nzOnCancel","nzOnOk","nzVisible","nzTitle","nzOkLoading"],[4,"nzModalContent"],["nz-input","","autofocus","",3,"ngModelChange","placeholder","ngModel"],[2,"margin-top","15px"],["href","https://github.com/xjh22222228/nav#%E9%83%A8%E7%BD%B2","target","_blank"]],template:function(i,o){1&i&&(f(0,"nz-modal",0),Oi("nzVisibleChange",function(s){return Yi(o.visible,s)||(o.visible=s),s}),D("nzOnCancel",function(){return o.hanldeCancel()})("nzOnOk",function(){return o.login()}),w(1,I2e,8,5,"ng-container",1),m()),2&i&&(Ai("nzVisible",o.visible),h("nzTitle",o.$t("_authLogin"))("nzOkLoading",o.submiting))},dependencies:[c6,y2,Ws,Cr,Qi,Xi],styles:[".prefix-icon[_ngcontent-%COMP%]{width:20px;height:20px;pointer-events:none}"]})}return t})();function V2e(t,n){if(1&t){const e=U();f(0,"nz-layout",2)(1,"nz-layout")(2,"nz-sider",3)(3,"ul",4)(4,"li",5)(5,"ul")(6,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/web"))}),C(7),m(),f(8,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/tag"))}),C(9),m(),f(10,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/bookmark"))}),C(11),m(),f(12,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/search"))}),C(13),m(),f(14,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/collect"))}),C(15),m(),f(16,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/setting"))}),C(17),m(),f(18,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/info"))}),C(19),m(),f(20,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/about"))}),C(21),m()()()()(),f(22,"nz-layout",7)(23,"nz-content",8)(24,"div")(25,"button",9),D("click",function(){return T(e),M(g().goBack())}),C(26),m(),f(27,"button",10),D("click",function(){return T(e),M(g().logout())}),C(28),m()(),S(29,"router-outlet"),m()()()()}if(2&t){const e=g();d(6),h("nzSelected","web"===e.currentMenu),d(),Ce(" ",e.$t("_websiteMang")," "),d(),h("nzSelected","tag"===e.currentMenu),d(),Ce(" ",e.$t("_tagSettings")," "),d(),h("nzSelected","bookmark"===e.currentMenu),d(),Ce(" ",e.$t("_bookmarkImport")," "),d(),h("nzSelected","search"===e.currentMenu),d(),Ce(" ",e.$t("_searchEngines")," "),d(),h("nzSelected","collect"===e.currentMenu),d(),Ce(" ",e.$t("_userCollect")," "),d(),h("nzSelected","setting"===e.currentMenu),d(),Ce(" ",e.$t("_systemSet")," "),d(),h("nzSelected","info"===e.currentMenu),d(),Ce(" ",e.$t("_webInfo")," "),d(),h("nzSelected","about"===e.currentMenu),d(),Ce(" ",e.$t("_about")," "),d(5),Ce(" ",e.$t("_backHome")," "),d(2),Ce(" ",e.$t("_logout")," ")}}let F2e=(()=>{class t{constructor(e){this.router=e,this.$t=_e,this.isLogin=Wi,this.showLoginModal=!Wi,this.currentMenu=""}ngOnInit(){const e=window.location.href.split("/");if(this.currentMenu=e[e.length-1],"localhost"!==window.location.hostname){const i=window.sessionStorage.getItem("reload");window.sessionStorage.removeItem("reload"),i||(window.sessionStorage.setItem("reload","1"),window.location.reload())}}goBack(){this.router.navigate(["/"])}goRoute(e){this.router.navigate([e])}logout(){BD(),this.router.navigate(["/"]),setTimeout(()=>{location.reload()},26)}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-system"]],decls:2,vars:2,consts:[["class","system-layout",4,"ngIf"],[3,"visible"],[1,"system-layout"],["nzWidth","150px","nzTheme","light",1,"sidebar"],["nz-menu","","nzMode","inline",1,"sider-menu"],["nz-submenu","","nzOpen","","nzTitle","\u8d85\u7ea7\u7cfb\u7edf"],["nz-menu-item","",3,"click","nzSelected"],[1,"inner-layout"],[1,"content"],["nz-button","",2,"margin-bottom","15px",3,"click"],["nz-button","",2,"margin-left","15px",3,"click"]],template:function(i,o){1&i&&(w(0,V2e,30,18,"nz-layout",0),S(1,"app-login",1)),2&i&&(h("ngIf",o.isLogin),d(),h("visible",o.showLoginModal))},dependencies:[Tt,nr,mi,tr,Sa,Us,l6,VP,IP,Cv,I0,N2e],styles:[".system-layout[_ngcontent-%COMP%]{min-height:100vh}.system-layout[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:30px;background-color:#fff}.system-layout[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{z-index:3;position:fixed;top:0;left:0;bottom:0;background-color:#fff}.system-layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%]{margin-left:170px}"]})}return t})(),R2e=(()=>{class t{constructor(){this.$t=_e,this.token=j0(),this.config=Vs,this.date=document.getElementById("META-NAV")?.dataset?.date||_e("_unknow"),this.currentVersionSrc="https://img.shields.io/badge/release-v8.4.0-red.svg?longCache=true&style=flat-square"}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["system-info"]],decls:17,vars:10,consts:[[3,"src"],["src","https://img.shields.io/github/v/release/xjh22222228/nav"],["href","https://github.com/xjh22222228/nav?tab=readme-ov-file#%E5%8D%87%E7%BA%A7","target","_blank"]],template:function(i,o){1&i&&(f(0,"div")(1,"p"),C(2),m(),f(3,"p"),C(4),m(),f(5,"p"),C(6),m(),f(7,"p"),C(8),S(9,"img",0),m(),f(10,"p"),C(11),S(12,"img",1),m(),f(13,"p"),C(14),f(15,"a",2),C(16),m()()()),2&i&&(d(2),Ce("TOKEN: ",o.token,""),d(2),ca("",o.$t("_devBranch"),": ",o.config.branch,""),d(2),ca("",o.$t("_prevDevTime"),": ",o.date,""),d(2),Ce("",o.$t("_curVer"),": "),d(),h("src",o.currentVersionSrc,Ot),d(2),Ce(" ",o.$t("_newVer"),": "),d(3),Ce(" ",o.$t("_updateTip")," "),d(2),x(o.$t("_clickUpdate")))}})}return t})(),FP=-Date.now();function j1(t){const n=(new Date).toString();if(!t)return n;const e=t.getAttribute("add_date");return e?new Date(1e3*Number(e)).toString():n}function I2(t){return t.textContent||""}function RP(t){return t.getAttribute("href")||""}function LP(t){return t.getAttribute("icon")||null}const A6=j1();function wv(t){const n=[];for(let e=0;e({$implicit:t,data:n}),B2e=t=>({$implicit:t});function j2e(t,n){}function $2e(t,n){if(1&t&&w(0,j2e,0,0,"ng-template",1),2&t){const e=g();h("ngTemplateOutlet",e.instance.template)("ngTemplateOutletContext",sc(2,H2e,e,null==e.instance.options?null:e.instance.options.nzData))}}function Y2e(t,n){1&t&&S(0,"span",6)}function U2e(t,n){1&t&&S(0,"span",7)}function W2e(t,n){1&t&&S(0,"span",8)}function G2e(t,n){1&t&&S(0,"span",9)}function q2e(t,n){if(1&t&&($e(0),S(1,"div",14),Ye()),2&t){const e=g(2);d(),h("innerHTML",e.instance.title,Wn)}}function K2e(t,n){if(1&t&&($e(0),S(1,"div",14),Ye()),2&t){const e=g(2);d(),h("innerHTML",e.instance.content,Wn)}}function J2e(t,n){}function Z2e(t,n){if(1&t&&(f(0,"span",13),w(1,J2e,0,0,"ng-template",1),m()),2&t){const e=g(2);d(),h("ngTemplateOutlet",n)("ngTemplateOutletContext",mr(2,B2e,e))}}function Q2e(t,n){if(1&t&&(f(0,"div",2)(1,"div",2)(2,"div"),w(3,Y2e,1,0,"span",6)(4,U2e,1,0,"span",7)(5,W2e,1,0,"span",8)(6,G2e,1,0,"span",9),f(7,"div",10),w(8,q2e,2,1,"ng-container",11),m(),f(9,"div",12),w(10,K2e,2,1,"ng-container",11),m(),w(11,Z2e,2,4,"span",13),m()()()),2&t){let e,i;const o=g();d(2),Q("ant-notification-notice-with-icon","blank"!==o.instance.type),d(),he("success"===(e=o.instance.type)?3:"info"===e?4:"warning"===e?5:"error"===e?6:-1),d(5),h("nzStringTemplateOutlet",o.instance.title),d(2),h("nzStringTemplateOutlet",o.instance.content),d(),he((i=null==o.instance.options?null:o.instance.options.nzButton)?11:-1,i)}}function X2e(t,n){if(1&t&&($e(0),S(1,"span",15),Ye()),2&t){const e=n.$implicit;d(),h("nzType",e)}}function ehe(t,n){if(1&t&&w(0,X2e,2,1,"ng-container",11),2&t){const e=g();h("nzStringTemplateOutlet",null==e.instance.options?null:e.instance.options.nzCloseIcon)}}function the(t,n){1&t&&S(0,"span",5)}function nhe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","topLeft")}function ihe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","topRight")}function ohe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","bottomLeft")}function rhe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","bottomRight")}function she(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","top")}function ahe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","bottom")}let HP=(()=>{class t extends cA{constructor(e){super(e),this.destroyed=new H}ngOnDestroy(){super.ngOnDestroy(),this.instance.onClick.complete()}onClick(e){this.instance.onClick.next(e)}close(){this.destroy(!0)}get state(){if("enter"!==this.instance.state)return this.instance.state;switch(this.placement){case"topLeft":case"bottomLeft":return"enterLeft";case"topRight":case"bottomRight":default:return"enterRight";case"top":return"enterTop";case"bottom":return"enterBottom"}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-notification"]],inputs:{instance:"instance",index:"index",placement:"placement"},outputs:{destroyed:"destroyed"},exportAs:["nzNotification"],standalone:!0,features:[mt,me],decls:7,vars:5,consts:[[1,"ant-notification-notice","ant-notification-notice-closable",3,"click","mouseenter","mouseleave","ngStyle","ngClass"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ant-notification-notice-content"],["tabindex","0",1,"ant-notification-notice-close",3,"click"],[1,"ant-notification-notice-close-x"],["nz-icon","","nzType","close",1,"ant-notification-close-icon"],["nz-icon","","nzType","check-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-success"],["nz-icon","","nzType","info-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-info"],["nz-icon","","nzType","exclamation-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-warning"],["nz-icon","","nzType","close-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-error"],[1,"ant-notification-notice-message"],[4,"nzStringTemplateOutlet"],[1,"ant-notification-notice-description"],[1,"ant-notification-notice-btn"],[3,"innerHTML"],["nz-icon","",3,"nzType"]],template:function(i,o){1&i&&(f(0,"div",0),D("@notificationMotion.done",function(s){return o.animationStateChanged.next(s)})("click",function(s){return o.onClick(s)})("mouseenter",function(){return o.onEnter()})("mouseleave",function(){return o.onLeave()}),w(1,$2e,1,5,null,1)(2,Q2e,12,6,"div",2),f(3,"a",3),D("click",function(){return o.close()}),f(4,"span",4),w(5,ehe,1,1,"ng-container")(6,the,1,0,"span",5),m()()()),2&i&&(h("ngStyle",(null==o.instance.options?null:o.instance.options.nzStyle)||null)("ngClass",(null==o.instance.options?null:o.instance.options.nzClass)||"")("@notificationMotion",o.state),d(),he(o.instance.template?1:2),d(4),he(null!=o.instance.options&&o.instance.options.nzCloseIcon?5:6))},dependencies:[ti,Zo,On,cn,Tn,Sn,Vn],encapsulation:2,data:{animation:[Gne]}})}return t})();const O6="notification",che={nzTop:"24px",nzBottom:"24px",nzPlacement:"topRight",nzDuration:4500,nzMaxStack:8,nzPauseOnHover:!0,nzAnimate:!0,nzDirection:"ltr"};let BP=(()=>{class t extends aA{constructor(e,i){super(e,i),this.dir="ltr",this.instances=[],this.topLeftInstances=[],this.topRightInstances=[],this.bottomLeftInstances=[],this.bottomRightInstances=[],this.topInstances=[],this.bottomInstances=[];const o=this.nzConfigService.getConfigForComponent(O6);this.dir=o?.nzDirection||"ltr"}create(e){const i=this.onCreate(e),o=i.options.nzKey,r=this.instances.find(s=>s.options.nzKey===e.options.nzKey);return o&&r?this.replaceNotification(r,i):(this.instances.length>=this.config.nzMaxStack&&(this.instances=this.instances.slice(1)),this.instances=[...this.instances,i]),this.readyInstances(),i}onCreate(e){return e.options=this.mergeOptions(e.options),e.onClose=new N,e.onClick=new N,e}subscribeConfigChange(){this.nzConfigService.getConfigChangeEventForComponent(O6).pipe(I(this.destroy$)).subscribe(()=>{this.updateConfig();const e=this.nzConfigService.getConfigForComponent(O6);if(e){const{nzDirection:i}=e;this.dir=i||this.dir}})}updateConfig(){this.config={...che,...this.config,...this.nzConfigService.getConfigForComponent(O6)},this.top=D1(this.config.nzTop),this.bottom=D1(this.config.nzBottom),this.cdr.markForCheck()}replaceNotification(e,i){e.title=i.title,e.content=i.content,e.template=i.template,e.type=i.type,e.options=i.options}readyInstances(){const e={topLeft:[],topRight:[],bottomLeft:[],bottomRight:[],top:[],bottom:[]};this.instances.forEach(i=>{switch(i.options.nzPlacement){case"topLeft":e.topLeft.unshift(i);break;case"topRight":default:e.topRight.unshift(i);break;case"bottomLeft":e.bottomLeft.unshift(i);break;case"bottomRight":e.bottomRight.unshift(i);break;case"top":e.top.unshift(i);break;case"bottom":e.bottom.unshift(i)}}),this.topLeftInstances=e.topLeft,this.topRightInstances=e.topRight,this.bottomLeftInstances=e.bottomLeft,this.bottomRightInstances=e.bottomRight,this.topInstances=e.top,this.bottomInstances=e.bottom,this.cdr.detectChanges()}mergeOptions(e){const{nzDuration:i,nzAnimate:o,nzPauseOnHover:r,nzPlacement:s}=this.config;return{nzDuration:i,nzAnimate:o,nzPauseOnHover:r,nzPlacement:s,...e}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(si))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-notification-container"]],exportAs:["nzNotificationContainer"],standalone:!0,features:[mt,me],decls:18,vars:40,consts:[[1,"ant-notification","ant-notification-topLeft"],[3,"instance","placement"],[1,"ant-notification","ant-notification-topRight"],[1,"ant-notification","ant-notification-bottomLeft"],[1,"ant-notification","ant-notification-bottomRight"],[1,"ant-notification","ant-notification-top"],[1,"ant-notification","ant-notification-bottom"],[3,"destroyed","instance","placement"]],template:function(i,o){1&i&&(f(0,"div",0),ji(1,nhe,1,2,"nz-notification",1,fr),m(),f(3,"div",2),ji(4,ihe,1,2,"nz-notification",1,fr),m(),f(6,"div",3),ji(7,ohe,1,2,"nz-notification",1,fr),m(),f(9,"div",4),ji(10,rhe,1,2,"nz-notification",1,fr),m(),f(12,"div",5),ji(13,she,1,2,"nz-notification",1,fr),m(),f(15,"div",6),ji(16,ahe,1,2,"nz-notification",1,fr),m()),2&i&&(Lt("top",o.top)("left","0px"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.topLeftInstances),d(2),Lt("top",o.top)("right","0px"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.topRightInstances),d(2),Lt("bottom",o.bottom)("left","0px"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.bottomLeftInstances),d(2),Lt("bottom",o.bottom)("right","0px"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.bottomRightInstances),d(2),Lt("top",o.top)("left","50%")("transform","translateX(-50%)"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.topInstances),d(2),Lt("bottom",o.bottom)("left","50%")("transform","translateX(-50%)"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.bottomInstances))},dependencies:[HP],encapsulation:2,changeDetection:0})}return t})(),lhe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[HP,BP]})}return t})(),dhe=0,P6=(()=>{class t extends sA{constructor(e,i,o){super(e,i,o),this.componentPrefix="notification-"}success(e,i,o){return this.create("success",e,i,o)}error(e,i,o){return this.create("error",e,i,o)}info(e,i,o){return this.create("info",e,i,o)}warning(e,i,o){return this.create("warning",e,i,o)}blank(e,i,o){return this.create("blank",e,i,o)}create(e,i,o,r){return this.createInstance({type:e,title:i,content:o},r)}template(e,i){return this.createInstance({template:e},i)}generateMessageId(){return`${this.componentPrefix}-${dhe++}`}createInstance(e,i){return this.container=this.withContainer(BP),this.container.create({...e,createdAt:new Date,messageId:i?.nzKey||this.generateMessageId(),options:i})}static#e=this.\u0275fac=function(i){return new(i||t)(R(lE),R(ya),R(tn))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),uhe=(()=>{class t{constructor(e,i){this.message=e,this.notification=i,this.$t=_e,this.websiteList=yn}ngOnInit(){}onBookChange(e){const i=this,{files:o}=e.target;if(o.length<=0)return;const r=o[0],s=new FileReader;s.readAsText(r),s.onload=function(){const c=function L2e(t){const n=JSON.parse(JSON.stringify(yn)),e=[],i=document.createElement("div");i.innerHTML=t;const o=i.querySelector("dl dl");if(!o)return{message:"\u672a\u627e\u5230dl dl\u8282\u70b9"};let r=0,s=0,a=0;try{for(let u=0;u0&&(s++,e[r-1].nav.push({createdAt:A6,title:_e("_uncategorized"),nav:[{title:_e("_uncategorized"),nav:E}]}));for(let k=0;k0&&(a++,e[r-1].nav[s-1].nav.push({createdAt:A6,title:_e("_uncategorized"),nav:dt}));for(let Bt=0;Bt0&&e.push({title:_e("_uncategorized"),createdAt:A6,nav:[{createdAt:A6,title:_e("_uncategorized"),nav:[{title:_e("_uncategorized"),nav:l}]}]})}catch(l){return console.log(l),l}return function c(l,u){for(let p=0;p(z.title||z.name)===b);-1!==y?Array.isArray(_.nav)&&c(_.nav,u[y].nav):u.push(_)}}(e,n),n}(this.result);Array.isArray(c)?(i.message.success(_e("_importSuccess")),i.websiteList=c,Yn(i.websiteList),setTimeout(()=>window.location.reload(),2e3)):i.notification.error(_e("_errorBookTip"),`${c?.message??""}`)}}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(P6))};static#t=this.\u0275cmp=q({type:t,selectors:[["system-bookmark"]],decls:7,vars:2,consts:[[1,"book-wrapper"],[3,"innerHTML"],["id","file"],["src","assets/img/bookmark.svg","draggable","false",1,"logo"],[2,"white-space","nowrap","margin-top","5px"],["type","file","name","file","accept","text/html",3,"change"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,"div",1),f(2,"label",2),S(3,"img",3),f(4,"p",4),C(5),m(),f(6,"input",5),D("change",function(s){return o.onBookChange(s)}),m()()()),2&i&&(d(),h("innerHTML",o.$t("_bookImportTip"),Wn),d(4),x(o.$t("_importChrome")))},styles:[".book-wrapper[_ngcontent-%COMP%]{text-align:center}.book-wrapper[_ngcontent-%COMP%] input[type=file][_ngcontent-%COMP%]{display:none}.book-wrapper[_ngcontent-%COMP%] #file[_ngcontent-%COMP%]{cursor:pointer}"]})}return t})(),hhe=(()=>{class t{constructor(){this.$t=_e}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["system-about"]],decls:11,vars:0,consts:[["href","https://github.com/xjh22222228/nav","target","_blank"],["src","https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/img/32.png","width","600"]],template:function(i,o){1&i&&(f(0,"p")(1,"a",0),C(2,"\u5f00\u6e90\u9879\u76ee"),m(),C(3,"\uff0c\u672a\u7ecf\u4f5c\u8005\u540c\u610f\uff0c\u4e0d\u5f97\u4ee5\u6284\u88ad/\u590d\u5236\u4ee3\u7801/\u4fee\u6539\u6e90\u4ee3\u7801\u7248\u6743\u4fe1\u606f\uff0c\u5141\u8bb8\u5546\u4e1a\u9014\u5f84\u3002\n"),m(),f(4,"p"),C(5,"\u5982\u679c\u8fd9\u4e2a\u9879\u76ee\u80fd\u5e2e\u5230\u60a8\uff0c\u652f\u6301\u4e00\u4e0b\u4f5c\u8005\uff01\u6211\u4f1a\u52aa\u529b\u7ef4\u62a4\uff01"),m(),f(6,"p"),C(7,"\u8054\u7cfb\u65b9\u5f0f: xjh22222228@gmail.com"),m(),f(8,"p"),C(9,"\u5728\u4f7f\u7528\u8fc7\u7a0b\u9047\u5230\u4efb\u4f55\u95ee\u9898\u53ef\u53d1\u9001\u90ae\u4ef6\u5bfb\u6c42\u5e2e\u52a9"),m(),S(10,"img",1))}})}return t})();const jP=["*"],phe=["inputElement"],fhe=["nz-checkbox",""],mhe=(t,n)=>n.value;function ghe(t,n){if(1&t){const e=U();f(0,"label",1),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g().onCheckedChange(r,o))}),f(1,"span"),C(2),m()()}if(2&t){const e=n.$implicit,i=g();h("nzDisabled",e.disabled||i.nzDisabled)("nzChecked",e.checked),d(2),x(e.label)}}let vhe=(()=>{class t{constructor(){this.nzOnChange=new H,this.checkboxList=[]}addCheckbox(e){this.checkboxList.push(e)}removeCheckbox(e){this.checkboxList.splice(this.checkboxList.indexOf(e),1)}onChange(){const e=this.checkboxList.filter(i=>i.nzChecked).map(i=>i.nzValue);this.nzOnChange.emit(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-checkbox-wrapper"]],hostAttrs:[1,"ant-checkbox-group"],outputs:{nzOnChange:"nzOnChange"},exportAs:["nzCheckboxWrapper"],standalone:!0,features:[me],ngContentSelectors:jP,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),Rc=(()=>{class t{innerCheckedChange(e){this.nzDisabled||(this.nzChecked=e,this.onChange(this.nzChecked),this.nzCheckedChange.emit(this.nzChecked),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.onChange())}writeValue(e){this.nzChecked=e,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}constructor(e,i,o,r,s,a,c){this.ngZone=e,this.elementRef=i,this.nzCheckboxWrapperComponent=o,this.cdr=r,this.focusMonitor=s,this.directionality=a,this.nzFormStatusService=c,this.dir="ltr",this.destroy$=new N,this.isNzDisableFirstChange=!0,this.onChange=()=>{},this.onTouched=()=>{},this.nzCheckedChange=new H,this.nzValue=null,this.nzAutoFocus=!1,this.nzDisabled=!1,this.nzIndeterminate=!1,this.nzChecked=!1,this.nzId=null}ngOnInit(){this.focusMonitor.monitor(this.elementRef,!0).pipe(I(this.destroy$)).subscribe(e=>{e||Promise.resolve().then(()=>this.onTouched())}),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.addCheckbox(this),this.directionality.change.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.preventDefault(),this.focus(),!this.nzDisabled&&this.ngZone.run(()=>{this.innerCheckedChange(!this.nzChecked),this.cdr.markForCheck()})}),nn(this.inputElement.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>e.stopPropagation())})}ngAfterViewInit(){this.nzAutoFocus&&this.focus()}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.removeCheckbox(this),this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(vhe,8),v(Ue),v(Ca),v(wt,8),v(kc,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-checkbox",""]],viewQuery:function(i,o){if(1&i&&ft(phe,7),2&i){let r;Ae(r=Oe())&&(o.inputElement=r.first)}},hostAttrs:[1,"ant-checkbox-wrapper"],hostVars:6,hostBindings:function(i,o){2&i&&Q("ant-checkbox-wrapper-in-form-item",!!o.nzFormStatusService)("ant-checkbox-wrapper-checked",o.nzChecked)("ant-checkbox-rtl","rtl"===o.dir)},inputs:{nzValue:"nzValue",nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzIndeterminate:[2,"nzIndeterminate","nzIndeterminate",O],nzChecked:[2,"nzChecked","nzChecked",O],nzId:"nzId"},outputs:{nzCheckedChange:"nzCheckedChange"},exportAs:["nzCheckbox"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,me],attrs:fhe,ngContentSelectors:jP,decls:6,vars:11,consts:[["inputElement",""],[1,"ant-checkbox"],["type","checkbox",1,"ant-checkbox-input",3,"ngModelChange","checked","ngModel","disabled"],[1,"ant-checkbox-inner"]],template:function(i,o){if(1&i){const r=U();Et(),f(0,"span",1)(1,"input",2,0),D("ngModelChange",function(a){return T(r),M(o.innerCheckedChange(a))}),m(),S(3,"span",3),m(),f(4,"span"),bt(5),m()}2&i&&(Q("ant-checkbox-checked",o.nzChecked&&!o.nzIndeterminate)("ant-checkbox-disabled",o.nzDisabled)("ant-checkbox-indeterminate",o.nzIndeterminate),d(),h("checked",o.nzChecked)("ngModel",o.nzChecked)("disabled",o.nzDisabled),Pt("autofocus",o.nzAutoFocus?"autofocus":null)("id",o.nzId))},dependencies:[Ic,W7,Qi,Xi],encapsulation:2,changeDetection:0})}return t})(),_he=(()=>{class t{onCheckedChange(e,i){e.checked=i,this.onChange(this.options)}constructor(e,i,o,r){this.elementRef=e,this.focusMonitor=i,this.cdr=o,this.directionality=r,this.onChange=()=>{},this.onTouched=()=>{},this.options=[],this.nzDisabled=!1,this.dir="ltr",this.destroy$=new N,this.isNzDisableFirstChange=!0}ngOnInit(){this.focusMonitor.monitor(this.elementRef,!0).pipe(I(this.destroy$)).subscribe(e=>{e||Promise.resolve().then(()=>this.onTouched())}),this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef),this.destroy$.next(),this.destroy$.complete()}writeValue(e){this.options=e,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Ca),v(Ue),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-checkbox-group"]],hostAttrs:[1,"ant-checkbox-group"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-checkbox-group-rtl","rtl"===o.dir)},inputs:{nzDisabled:[2,"nzDisabled","nzDisabled",O]},exportAs:["nzCheckboxGroup"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,me],decls:2,vars:0,consts:[["nz-checkbox","",1,"ant-checkbox-group-item",3,"nzDisabled","nzChecked"],["nz-checkbox","",1,"ant-checkbox-group-item",3,"nzCheckedChange","nzDisabled","nzChecked"]],template:function(i,o){1&i&&ji(0,ghe,3,3,"label",0,mhe),2&i&&$i(o.options)},dependencies:[Rc],encapsulation:2})}return t})(),I6=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Rc,_he]})}return t})();const $P=["*"],bhe=["inputElement"],yhe=["nz-radio",""];let zv=(()=>{class t{constructor(){this.selected$=new fi(1),this.touched$=new N,this.disabled$=new fi(1),this.name$=new fi(1)}touch(){this.touched$.next()}select(e){this.selected$.next(e)}setDisabled(e){this.disabled$.next(e)}setName(e){this.name$.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),Che=(()=>{class t{constructor(e,i,o){this.cdr=e,this.nzRadioService=i,this.directionality=o,this.value=null,this.destroy$=new N,this.isNzDisableFirstChange=!0,this.onChange=()=>{},this.onTouched=()=>{},this.nzDisabled=!1,this.nzButtonStyle="outline",this.nzSize="default",this.nzName=null,this.dir="ltr"}ngOnInit(){this.nzRadioService.selected$.pipe(I(this.destroy$)).subscribe(e=>{this.value!==e&&(this.value=e,this.onChange(this.value))}),this.nzRadioService.touched$.pipe(I(this.destroy$)).subscribe(()=>{Promise.resolve().then(()=>this.onTouched())}),this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){const{nzDisabled:i,nzName:o}=e;i&&this.nzRadioService.setDisabled(this.nzDisabled),o&&this.nzRadioService.setName(this.nzName)}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}writeValue(e){this.value=e,this.nzRadioService.select(e),this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.nzRadioService.setDisabled(this.nzDisabled),this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(zv),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-radio-group"]],hostAttrs:[1,"ant-radio-group"],hostVars:8,hostBindings:function(i,o){2&i&&Q("ant-radio-group-large","large"===o.nzSize)("ant-radio-group-small","small"===o.nzSize)("ant-radio-group-solid","solid"===o.nzButtonStyle)("ant-radio-group-rtl","rtl"===o.dir)},inputs:{nzDisabled:[2,"nzDisabled","nzDisabled",O],nzButtonStyle:"nzButtonStyle",nzSize:"nzSize",nzName:"nzName"},exportAs:["nzRadioGroup"],standalone:!0,features:[et([zv,{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,ke,me],ngContentSelectors:$P,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),YP=(()=>{class t{focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}constructor(e,i,o,r,s,a,c){this.ngZone=e,this.elementRef=i,this.cdr=o,this.focusMonitor=r,this.directionality=s,this.nzRadioService=a,this.nzFormStatusService=c,this.isNgModel=!1,this.destroy$=new N,this.isNzDisableFirstChange=!0,this.isChecked=!1,this.name=null,this.onChange=()=>{},this.onTouched=()=>{},this.nzValue=null,this.nzDisabled=!1,this.nzAutoFocus=!1,this.isRadioButton=!1,this.dir="ltr"}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}writeValue(e){this.isChecked=e,this.cdr.markForCheck()}registerOnChange(e){this.isNgModel=!0,this.onChange=e}registerOnTouched(e){this.onTouched=e}ngOnInit(){this.nzRadioService&&(this.nzRadioService.name$.pipe(I(this.destroy$)).subscribe(e=>{this.name=e,this.cdr.markForCheck()}),this.nzRadioService.disabled$.pipe(I(this.destroy$)).subscribe(e=>{this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}),this.nzRadioService.selected$.pipe(I(this.destroy$)).subscribe(e=>{const i=this.isChecked;this.isChecked=this.nzValue===e,this.isNgModel&&i!==this.isChecked&&!1===this.isChecked&&this.onChange(!1),this.cdr.markForCheck()})),this.focusMonitor.monitor(this.elementRef,!0).pipe(I(this.destroy$)).subscribe(e=>{e||(Promise.resolve().then(()=>this.onTouched()),this.nzRadioService&&this.nzRadioService.touch())}),this.directionality.change.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.setupClickListener()}ngAfterViewInit(){this.nzAutoFocus&&this.focus()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.focusMonitor.stopMonitoring(this.elementRef)}setupClickListener(){this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.stopPropagation(),e.preventDefault(),!this.nzDisabled&&!this.isChecked&&this.ngZone.run(()=>{this.focus(),this.nzRadioService?.select(this.nzValue),this.isNgModel&&(this.isChecked=!0,this.onChange(!0)),this.cdr.markForCheck()})})})}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(Ue),v(Ca),v(wt,8),v(zv,8),v(kc,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-radio",""],["","nz-radio-button",""]],viewQuery:function(i,o){if(1&i&&ft(bhe,7),2&i){let r;Ae(r=Oe())&&(o.inputElement=r.first)}},hostVars:18,hostBindings:function(i,o){2&i&&Q("ant-radio-wrapper-in-form-item",!!o.nzFormStatusService)("ant-radio-wrapper",!o.isRadioButton)("ant-radio-button-wrapper",o.isRadioButton)("ant-radio-wrapper-checked",o.isChecked&&!o.isRadioButton)("ant-radio-button-wrapper-checked",o.isChecked&&o.isRadioButton)("ant-radio-wrapper-disabled",o.nzDisabled&&!o.isRadioButton)("ant-radio-button-wrapper-disabled",o.nzDisabled&&o.isRadioButton)("ant-radio-wrapper-rtl",!o.isRadioButton&&"rtl"===o.dir)("ant-radio-button-wrapper-rtl",o.isRadioButton&&"rtl"===o.dir)},inputs:{nzValue:"nzValue",nzDisabled:[2,"nzDisabled","nzDisabled",O],nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",O],isRadioButton:[2,"nz-radio-button","isRadioButton",O]},exportAs:["nzRadio"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,me],attrs:yhe,ngContentSelectors:$P,decls:6,vars:24,consts:[["inputElement",""],["type","radio",3,"disabled","checked"]],template:function(i,o){1&i&&(Et(),f(0,"span"),S(1,"input",1,0)(3,"span"),m(),f(4,"span"),bt(5),m()),2&i&&(Q("ant-radio",!o.isRadioButton)("ant-radio-checked",o.isChecked&&!o.isRadioButton)("ant-radio-disabled",o.nzDisabled&&!o.isRadioButton)("ant-radio-button",o.isRadioButton)("ant-radio-button-checked",o.isChecked&&o.isRadioButton)("ant-radio-button-disabled",o.nzDisabled&&o.isRadioButton),d(),Q("ant-radio-input",!o.isRadioButton)("ant-radio-button-input",o.isRadioButton),h("disabled",o.nzDisabled)("checked",o.isChecked),Pt("autofocus",o.nzAutoFocus?"autofocus":null)("name",o.name),d(2),Q("ant-radio-inner",!o.isRadioButton)("ant-radio-button-inner",o.isRadioButton))},encapsulation:2,changeDetection:0})}return t})(),whe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})(),zhe=(()=>{class t{create(e){return typeof ResizeObserver>"u"?null:new ResizeObserver(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Sv=(()=>{class t{constructor(e){this.nzResizeObserverFactory=e,this.observedElements=new Map}ngOnDestroy(){this.observedElements.forEach((e,i)=>this.cleanupObserver(i))}observe(e){const i=Ni(e);return new Ut(o=>{const s=this.observeElement(i).subscribe(o);return()=>{s.unsubscribe(),this.unobserveElement(i)}})}observeElement(e){if(this.observedElements.has(e))this.observedElements.get(e).count++;else{const i=new N,o=this.nzResizeObserverFactory.create(r=>i.next(r));o&&o.observe(e),this.observedElements.set(e,{observer:o,stream:i,count:1})}return this.observedElements.get(e).stream}unobserveElement(e){this.observedElements.has(e)&&(this.observedElements.get(e).count--,this.observedElements.get(e).count||this.cleanupObserver(e))}cleanupObserver(e){if(this.observedElements.has(e)){const{observer:i,stream:o}=this.observedElements.get(e);i&&i.disconnect(),o.complete(),this.observedElements.delete(e)}}static#e=this.\u0275fac=function(i){return new(i||t)(R(zhe))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const She=["nz-pagination-item",""],The=(t,n)=>({$implicit:t,page:n});function Mhe(t,n){if(1&t&&(f(0,"a"),C(1),m()),2&t){const e=g().page;d(),x(e)}}function Dhe(t,n){1&t&&S(0,"span",4)}function xhe(t,n){1&t&&S(0,"span",5)}function Ehe(t,n){if(1&t&&(f(0,"button",2),w(1,Dhe,1,0,"span",4)(2,xhe,1,0,"span",5),m()),2&t){const e=g(2);h("disabled",e.disabled),Pt("title",e.locale.prev_page),d(),he("rtl"===e.direction?1:2)}}function khe(t,n){1&t&&S(0,"span",5)}function Ahe(t,n){1&t&&S(0,"span",4)}function Ohe(t,n){if(1&t&&(f(0,"button",2),w(1,khe,1,0,"span",5)(2,Ahe,1,0,"span",4),m()),2&t){const e=g(2);h("disabled",e.disabled),Pt("title",e.locale.next_page),d(),he("rtl"===e.direction?1:2)}}function Phe(t,n){1&t&&S(0,"span",8)}function Ihe(t,n){1&t&&S(0,"span",9)}function Nhe(t,n){1&t&&w(0,Phe,1,0,"span",8)(1,Ihe,1,0,"span",9),2&t&&he("rtl"===g(3).direction?0:1)}function Vhe(t,n){1&t&&S(0,"span",9)}function Fhe(t,n){1&t&&S(0,"span",8)}function Rhe(t,n){1&t&&w(0,Vhe,1,0,"span",9)(1,Fhe,1,0,"span",8),2&t&&he("rtl"===g(3).direction?0:1)}function Lhe(t,n){if(1&t&&(f(0,"a",3)(1,"div",6),w(2,Nhe,2,1)(3,Rhe,2,1),f(4,"span",7),C(5,"\u2022\u2022\u2022"),m()()()),2&t){let e;const i=g().$implicit;d(2),he("prev_5"===(e=i)?2:"next_5"===e?3:-1)}}function Hhe(t,n){if(1&t&&w(0,Mhe,2,1,"a")(1,Ehe,3,3,"button",2)(2,Ohe,3,3,"button",2)(3,Lhe,6,1,"a",3),2&t){let e;he("page"===(e=n.$implicit)?0:"prev"===e?1:"next"===e?2:3)}}function Bhe(t,n){}const jhe=["nz-pagination-options",""],$he=(t,n)=>n.value;function Yhe(t,n){if(1&t&&S(0,"nz-option",3),2&t){const e=n.$implicit;h("nzLabel",e.label)("nzValue",e.value)}}function Uhe(t,n){if(1&t){const e=U();f(0,"nz-select",2),D("ngModelChange",function(o){return T(e),M(g().onPageSizeChange(o))}),ji(1,Yhe,1,2,"nz-option",3,$he),m()}if(2&t){const e=g();h("nzDisabled",e.disabled)("nzSize",e.nzSize)("ngModel",e.pageSize),d(),$i(e.listOfPageSizeOption)}}function Whe(t,n){if(1&t){const e=U();f(0,"div",1),C(1),f(2,"input",4),D("keydown.enter",function(o){return T(e),M(g().jumpToPageViaInput(o))}),m(),C(3),m()}if(2&t){const e=g();d(),Ce(" ",e.locale.jump_to," "),d(),h("disabled",e.disabled),d(),Ce(" ",e.locale.page," ")}}const UP=["containerTemplate"];function Ghe(t,n){return this.trackByPageItem}const qhe=(t,n)=>({$implicit:t,range:n});function Khe(t,n){}function Jhe(t,n){if(1&t&&(f(0,"li",1),w(1,Khe,0,0,"ng-template",4),m()),2&t){const e=g(2);d(),h("ngTemplateOutlet",e.showTotal)("ngTemplateOutletContext",sc(2,qhe,e.total,e.ranges))}}function Zhe(t,n){if(1&t){const e=U();f(0,"li",5),D("gotoIndex",function(o){return T(e),M(g(2).jumpPage(o))})("diffIndex",function(o){return T(e),M(g(2).jumpDiff(o))}),m()}if(2&t){const e=n.$implicit,i=g(2);h("locale",i.locale)("type",e.type)("index",e.index)("disabled",!!e.disabled)("itemRender",i.itemRender)("active",i.pageIndex===e.index)("direction",i.dir)}}function Qhe(t,n){if(1&t){const e=U();f(0,"li",6),D("pageIndexChange",function(o){return T(e),M(g(2).onPageIndexChange(o))})("pageSizeChange",function(o){return T(e),M(g(2).onPageSizeChange(o))}),m()}if(2&t){const e=g(2);h("total",e.total)("locale",e.locale)("disabled",e.disabled)("nzSize",e.nzSize)("showSizeChanger",e.showSizeChanger)("showQuickJumper",e.showQuickJumper)("pageIndex",e.pageIndex)("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)}}function Xhe(t,n){if(1&t&&(f(0,"ul"),w(1,Jhe,2,5,"li",1),ji(2,Zhe,1,7,"li",2,Ghe,!0),w(4,Qhe,1,9,"li",3),m()),2&t){const e=g();d(),he(e.showTotal?1:-1),d(),$i(e.listOfPageItem),d(2),he(e.showQuickJumper||e.showSizeChanger?4:-1)}}function e4e(t,n){if(1&t){const e=U();f(0,"ul")(1,"li",1),D("click",function(){return T(e),M(g().prePage())}),m(),f(2,"li",2)(3,"input",3),D("keydown.enter",function(o){return T(e),M(g().jumpToPageViaInput(o))}),m(),f(4,"span",4),C(5,"/"),m(),C(6),m(),f(7,"li",5),D("click",function(){return T(e),M(g().nextPage())}),m()()}if(2&t){const e=g();d(),h("locale",e.locale)("disabled",e.isFirstIndex)("direction",e.dir)("itemRender",e.itemRender),Pt("title",e.locale.prev_page),d(),Pt("title",e.pageIndex+"/"+e.lastIndex),d(),h("disabled",e.disabled)("value",e.pageIndex),d(3),Ce(" ",e.lastIndex," "),d(),h("locale",e.locale)("disabled",e.isLastIndex)("direction",e.dir)("itemRender",e.itemRender),Pt("title",null==e.locale?null:e.locale.next_page)}}function t4e(t,n){}function n4e(t,n){1&t&&w(0,t4e,0,0,"ng-template",4),2&t&&(g(2),h("ngTemplateOutlet",He(2).template))}function i4e(t,n){}function o4e(t,n){1&t&&w(0,i4e,0,0,"ng-template",4),2&t&&(g(2),h("ngTemplateOutlet",He(4).template))}function r4e(t,n){1&t&&w(0,n4e,1,1,null,4)(1,o4e,1,1,null,4),2&t&&he(g().nzSimple?0:1)}let Tv=(()=>{class t{constructor(){this.active=!1,this.index=null,this.disabled=!1,this.direction="ltr",this.type=null,this.itemRender=null,this.diffIndex=new H,this.gotoIndex=new H,this.title=null}clickItem(){this.disabled||("page"===this.type?this.gotoIndex.emit(this.index):this.diffIndex.emit({next:1,prev:-1,prev_5:-5,next_5:5}[this.type]))}ngOnChanges(e){const{locale:i,index:o,type:r}=e;(i||o||r)&&(this.title={page:`${this.index}`,next:this.locale?.next_page,prev:this.locale?.prev_page,prev_5:this.locale?.prev_5,next_5:this.locale?.next_5}[this.type])}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["li","nz-pagination-item",""]],hostVars:19,hostBindings:function(i,o){1&i&&D("click",function(){return o.clickItem()}),2&i&&(Pt("title",o.title),Q("ant-pagination-prev","prev"===o.type)("ant-pagination-next","next"===o.type)("ant-pagination-item","page"===o.type)("ant-pagination-jump-prev","prev_5"===o.type)("ant-pagination-jump-prev-custom-icon","prev_5"===o.type)("ant-pagination-jump-next","next_5"===o.type)("ant-pagination-jump-next-custom-icon","next_5"===o.type)("ant-pagination-disabled",o.disabled)("ant-pagination-item-active",o.active))},inputs:{active:"active",locale:"locale",index:"index",disabled:"disabled",direction:"direction",type:"type",itemRender:"itemRender"},outputs:{diffIndex:"diffIndex",gotoIndex:"gotoIndex"},standalone:!0,features:[ke,me],attrs:She,decls:3,vars:5,consts:[["renderItemTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","button",1,"ant-pagination-item-link",3,"disabled"],[1,"ant-pagination-item-link"],["nz-icon","","nzType","right"],["nz-icon","","nzType","left"],[1,"ant-pagination-item-container"],[1,"ant-pagination-item-ellipsis"],["nz-icon","","nzType","double-right",1,"ant-pagination-item-link-icon"],["nz-icon","","nzType","double-left",1,"ant-pagination-item-link-icon"]],template:function(i,o){if(1&i&&w(0,Hhe,4,1,"ng-template",null,0,ot)(2,Bhe,0,0,"ng-template",1),2&i){const r=He(1);d(2),h("ngTemplateOutlet",o.itemRender||r)("ngTemplateOutletContext",sc(2,The,o.type,o.index))}},dependencies:[On,cn,Vn],encapsulation:2,changeDetection:0})}return t})(),WP=(()=>{class t{constructor(){this.nzSize="default",this.disabled=!1,this.showSizeChanger=!1,this.showQuickJumper=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageSizeOptions=[],this.pageIndexChange=new H,this.pageSizeChange=new H,this.listOfPageSizeOption=[]}onPageSizeChange(e){this.pageSize!==e&&this.pageSizeChange.next(e)}jumpToPageViaInput(e){const i=e.target,o=Math.floor(j5(i.value,this.pageIndex));this.pageIndexChange.next(o),i.value=""}ngOnChanges(e){const{pageSize:i,pageSizeOptions:o,locale:r}=e;(i||o||r)&&(this.listOfPageSizeOption=[...new Set([...this.pageSizeOptions,this.pageSize])].map(s=>({value:s,label:`${s} ${this.locale.items_per_page}`})))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["li","nz-pagination-options",""]],hostAttrs:[1,"ant-pagination-options"],inputs:{nzSize:"nzSize",disabled:"disabled",showSizeChanger:"showSizeChanger",showQuickJumper:"showQuickJumper",locale:"locale",total:"total",pageIndex:"pageIndex",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions"},outputs:{pageIndexChange:"pageIndexChange",pageSizeChange:"pageSizeChange"},standalone:!0,features:[ke,me],attrs:jhe,decls:2,vars:2,consts:[[1,"ant-pagination-options-size-changer",3,"nzDisabled","nzSize","ngModel"],[1,"ant-pagination-options-quick-jumper"],[1,"ant-pagination-options-size-changer",3,"ngModelChange","nzDisabled","nzSize","ngModel"],[3,"nzLabel","nzValue"],[3,"keydown.enter","disabled"]],template:function(i,o){1&i&&w(0,Uhe,3,3,"nz-select",0)(1,Whe,4,3,"div",1),2&i&&(he(o.showSizeChanger?0:-1),d(),he(o.showQuickJumper?1:-1))},dependencies:[DP,Nc,Vc,Ic,Qi,Xi],encapsulation:2,changeDetection:0})}return t})(),GP=(()=>{class t{constructor(e,i,o,r){this.cdr=e,this.renderer=i,this.elementRef=o,this.directionality=r,this.nzSize="default",this.itemRender=null,this.showTotal=null,this.disabled=!1,this.showSizeChanger=!1,this.showQuickJumper=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageSizeOptions=[10,20,30,40],this.pageIndexChange=new H,this.pageSizeChange=new H,this.ranges=[0,0],this.listOfPageItem=[],this.dir="ltr",this.destroy$=new N,i.removeChild(i.parentNode(o.nativeElement),o.nativeElement)}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.updateRtlStyle(),this.cdr.detectChanges()}),this.dir=this.directionality.value,this.updateRtlStyle()}updateRtlStyle(){"rtl"===this.dir?this.renderer.addClass(this.elementRef.nativeElement,"ant-pagination-rtl"):this.renderer.removeClass(this.elementRef.nativeElement,"ant-pagination-rtl")}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}jumpPage(e){this.onPageIndexChange(e)}jumpDiff(e){this.jumpPage(this.pageIndex+e)}trackByPageItem(e,i){return`${i.type}-${i.index}`}onPageIndexChange(e){this.pageIndexChange.next(e)}onPageSizeChange(e){this.pageSizeChange.next(e)}getLastIndex(e,i){return Math.ceil(e/i)}buildIndexes(){const e=this.getLastIndex(this.total,this.pageSize);this.listOfPageItem=this.getListOfPageItem(this.pageIndex,e)}getListOfPageItem(e,i){const r=(s,a)=>{const c=[];for(let l=s;l<=a;l++)c.push({index:l,type:"page"});return c};return s=i<=9?r(1,i):((a,c)=>{let l=[];const u={type:"prev_5"},p={type:"next_5"},_=r(1,1),b=r(i,i);return l=a<5?[...r(2,4===a?6:5),p]:a{class t{constructor(e,i,o,r){this.cdr=e,this.renderer=i,this.elementRef=o,this.directionality=r,this.itemRender=null,this.disabled=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageIndexChange=new H,this.lastIndex=0,this.isFirstIndex=!1,this.isLastIndex=!1,this.dir="ltr",this.destroy$=new N,i.removeChild(i.parentNode(o.nativeElement),o.nativeElement)}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.updateRtlStyle(),this.cdr.detectChanges()}),this.dir=this.directionality.value,this.updateRtlStyle()}updateRtlStyle(){"rtl"===this.dir?this.renderer.addClass(this.elementRef.nativeElement,"ant-pagination-rtl"):this.renderer.removeClass(this.elementRef.nativeElement,"ant-pagination-rtl")}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}jumpToPageViaInput(e){const i=e.target,o=j5(i.value,this.pageIndex);this.onPageIndexChange(o),i.value=`${this.pageIndex}`}prePage(){this.onPageIndexChange(this.pageIndex-1)}nextPage(){this.onPageIndexChange(this.pageIndex+1)}onPageIndexChange(e){this.pageIndexChange.next(e)}updateBindingValue(){this.lastIndex=Math.ceil(this.total/this.pageSize),this.isFirstIndex=1===this.pageIndex,this.isLastIndex=this.pageIndex===this.lastIndex}ngOnChanges(e){const{pageIndex:i,total:o,pageSize:r}=e;(i||o||r)&&this.updateBindingValue()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v($t),v(Te),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-pagination-simple"]],viewQuery:function(i,o){if(1&i&&ft(UP,7),2&i){let r;Ae(r=Oe())&&(o.template=r.first)}},inputs:{itemRender:"itemRender",disabled:"disabled",locale:"locale",total:"total",pageIndex:"pageIndex",pageSize:"pageSize"},outputs:{pageIndexChange:"pageIndexChange"},standalone:!0,features:[ke,me],decls:2,vars:0,consts:[["containerTemplate",""],["nz-pagination-item","","type","prev",3,"click","locale","disabled","direction","itemRender"],[1,"ant-pagination-simple-pager"],["size","3",3,"keydown.enter","disabled","value"],[1,"ant-pagination-slash"],["nz-pagination-item","","type","next",3,"click","locale","disabled","direction","itemRender"]],template:function(i,o){1&i&&w(0,e4e,8,14,"ng-template",null,0,ot)},dependencies:[Tv],encapsulation:2,changeDetection:0})}return t})(),KP=(()=>{class t{validatePageIndex(e,i){return e>i?i:e<1?1:e}onPageIndexChange(e){const i=this.getLastIndex(this.nzTotal,this.nzPageSize),o=this.validatePageIndex(e,i);o!==this.nzPageIndex&&!this.nzDisabled&&(this.nzPageIndex=o,this.nzPageIndexChange.emit(this.nzPageIndex))}onPageSizeChange(e){this.nzPageSize=e,this.nzPageSizeChange.emit(e);const i=this.getLastIndex(this.nzTotal,this.nzPageSize);this.nzPageIndex>i&&this.onPageIndexChange(i)}onTotalChange(e){const i=this.getLastIndex(e,this.nzPageSize);this.nzPageIndex>i&&Promise.resolve().then(()=>{this.onPageIndexChange(i),this.cdr.markForCheck()})}getLastIndex(e,i){return Math.ceil(e/i)}constructor(e,i,o,r,s){this.i18n=e,this.cdr=i,this.breakpointService=o,this.nzConfigService=r,this.directionality=s,this._nzModuleName="pagination",this.nzPageSizeChange=new H,this.nzPageIndexChange=new H,this.nzShowTotal=null,this.nzItemRender=null,this.nzSize="default",this.nzPageSizeOptions=[10,20,30,40],this.nzShowSizeChanger=!1,this.nzShowQuickJumper=!1,this.nzSimple=!1,this.nzDisabled=!1,this.nzResponsive=!1,this.nzHideOnSinglePage=!1,this.nzTotal=0,this.nzPageIndex=1,this.nzPageSize=10,this.showPagination=!0,this.size="default",this.dir="ltr",this.destroy$=new N,this.total$=new fi(1)}ngOnInit(){this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Pagination"),this.cdr.markForCheck()}),this.total$.pipe(I(this.destroy$)).subscribe(e=>{this.onTotalChange(e)}),this.breakpointService.subscribe(qu).pipe(I(this.destroy$)).subscribe(e=>{this.nzResponsive&&(this.size=e===L5.xs?"small":"default",this.cdr.markForCheck())}),this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}ngOnChanges(e){const{nzHideOnSinglePage:i,nzTotal:o,nzPageSize:r,nzSize:s}=e;o&&this.total$.next(this.nzTotal),(i||o||r)&&(this.showPagination=this.nzHideOnSinglePage&&this.nzTotal>this.nzPageSize||this.nzTotal>0&&!this.nzHideOnSinglePage),s&&(this.size=s.currentValue)}static#e=this.\u0275fac=function(i){return new(i||t)(v($s),v(Ue),v(H5),v(si),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-pagination"]],hostAttrs:[1,"ant-pagination"],hostVars:8,hostBindings:function(i,o){2&i&&Q("ant-pagination-simple",o.nzSimple)("ant-pagination-disabled",o.nzDisabled)("ant-pagination-mini",!o.nzSimple&&"small"===o.size)("ant-pagination-rtl","rtl"===o.dir)},inputs:{nzShowTotal:"nzShowTotal",nzItemRender:"nzItemRender",nzSize:"nzSize",nzPageSizeOptions:"nzPageSizeOptions",nzShowSizeChanger:[2,"nzShowSizeChanger","nzShowSizeChanger",O],nzShowQuickJumper:[2,"nzShowQuickJumper","nzShowQuickJumper",O],nzSimple:[2,"nzSimple","nzSimple",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzResponsive:[2,"nzResponsive","nzResponsive",O],nzHideOnSinglePage:[2,"nzHideOnSinglePage","nzHideOnSinglePage",O],nzTotal:[2,"nzTotal","nzTotal",Pi],nzPageIndex:[2,"nzPageIndex","nzPageIndex",Pi],nzPageSize:[2,"nzPageSize","nzPageSize",Pi]},outputs:{nzPageSizeChange:"nzPageSizeChange",nzPageIndexChange:"nzPageIndexChange"},exportAs:["nzPagination"],standalone:!0,features:[je,ke,me],decls:5,vars:18,consts:[["simplePagination",""],["defaultPagination",""],[3,"pageIndexChange","disabled","itemRender","locale","pageSize","total","pageIndex"],[3,"pageIndexChange","pageSizeChange","nzSize","itemRender","showTotal","disabled","locale","showSizeChanger","showQuickJumper","total","pageIndex","pageSize","pageSizeOptions"],[3,"ngTemplateOutlet"]],template:function(i,o){if(1&i){const r=U();w(0,r4e,2,1),f(1,"nz-pagination-simple",2,0),D("pageIndexChange",function(a){return T(r),M(o.onPageIndexChange(a))}),m(),f(3,"nz-pagination-default",3,1),D("pageIndexChange",function(a){return T(r),M(o.onPageIndexChange(a))})("pageSizeChange",function(a){return T(r),M(o.onPageSizeChange(a))}),m()}2&i&&(he(o.showPagination?0:-1),d(),h("disabled",o.nzDisabled)("itemRender",o.nzItemRender)("locale",o.locale)("pageSize",o.nzPageSize)("total",o.nzTotal)("pageIndex",o.nzPageIndex),d(2),h("nzSize",o.size)("itemRender",o.nzItemRender)("showTotal",o.nzShowTotal)("disabled",o.nzDisabled)("locale",o.locale)("showSizeChanger",o.nzShowSizeChanger)("showQuickJumper",o.nzShowQuickJumper)("total",o.nzTotal)("pageIndex",o.nzPageIndex)("pageSize",o.nzPageSize)("pageSizeOptions",o.nzPageSizeOptions))},dependencies:[Vn,qP,GP],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzSize",void 0),kt([Nt()],t.prototype,"nzPageSizeOptions",void 0),kt([Nt()],t.prototype,"nzShowSizeChanger",void 0),kt([Nt()],t.prototype,"nzShowQuickJumper",void 0),kt([Nt()],t.prototype,"nzSimple",void 0),t})(),a4e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[KP,qP,WP,Tv,GP]})}return t})();const l4e=["*"];function d4e(t,n){1&t&&(f(0,"span",3),S(1,"i",4)(2,"i",4)(3,"i",4)(4,"i",4),m())}function u4e(t,n){}function h4e(t,n){if(1&t&&(f(0,"div",8),C(1),m()),2&t){const e=g(2);d(),x(e.nzTip)}}function p4e(t,n){if(1&t&&(f(0,"div")(1,"div",5),w(2,u4e,0,0,"ng-template",6)(3,h4e,2,1,"div",7),m()()),2&t){const e=g(),i=He(1);d(),Q("ant-spin-rtl","rtl"===e.dir)("ant-spin-spinning",e.isLoading)("ant-spin-lg","large"===e.nzSize)("ant-spin-sm","small"===e.nzSize)("ant-spin-show-text",e.nzTip),d(),h("ngTemplateOutlet",e.nzIndicator||i),d(),h("ngIf",e.nzTip)}}function f4e(t,n){1&t&&(f(0,"div",9),bt(1),m()),2&t&&Q("ant-spin-blur",g().isLoading)}let ZP=(()=>{class t{constructor(e,i,o){this.nzConfigService=e,this.cdr=i,this.directionality=o,this._nzModuleName="spin",this.nzIndicator=null,this.nzSize="default",this.nzTip=null,this.nzDelay=0,this.nzSimple=!1,this.nzSpinning=!0,this.destroy$=new N,this.spinning$=new rt(this.nzSpinning),this.delay$=new fi(1),this.isLoading=!1,this.dir="ltr"}ngOnInit(){this.delay$.pipe(gn(this.nzDelay),qi(),mn(i=>0===i?this.spinning$:this.spinning$.pipe(function c4e(t){return dn((n,e)=>{let i=!1,o=null,r=null;const s=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const a=o;o=null,e.next(a)}};n.subscribe(Zt(e,a=>{r?.unsubscribe(),i=!0,o=a,r=Zt(e,s,qs),Ii(t(a)).subscribe(r)},()=>{s(),e.complete()},void 0,()=>{o=r=null}))})}(o=>m3(o?i:0)))),I(this.destroy$)).subscribe(i=>{this.isLoading=i,this.cdr.markForCheck()}),this.nzConfigService.getConfigChangeEventForComponent("spin").pipe(I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.directionality.change?.pipe(I(this.destroy$)).subscribe(i=>{this.dir=i,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){const{nzSpinning:i,nzDelay:o}=e;i&&this.spinning$.next(this.nzSpinning),o&&this.delay$.next(this.nzDelay)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Ue),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-spin"]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-spin-nested-loading",!o.nzSimple)},inputs:{nzIndicator:"nzIndicator",nzSize:"nzSize",nzTip:"nzTip",nzDelay:[2,"nzDelay","nzDelay",Pi],nzSimple:[2,"nzSimple","nzSimple",O],nzSpinning:[2,"nzSpinning","nzSpinning",O]},exportAs:["nzSpin"],standalone:!0,features:[je,ke,me],ngContentSelectors:l4e,decls:4,vars:2,consts:[["defaultTemplate",""],[4,"ngIf"],["class","ant-spin-container",3,"ant-spin-blur",4,"ngIf"],[1,"ant-spin-dot","ant-spin-dot-spin"],[1,"ant-spin-dot-item"],[1,"ant-spin"],[3,"ngTemplateOutlet"],["class","ant-spin-text",4,"ngIf"],[1,"ant-spin-text"],[1,"ant-spin-container"]],template:function(i,o){1&i&&(Et(),w(0,d4e,5,0,"ng-template",null,0,ot)(2,p4e,4,12,"div",1)(3,f4e,2,2,"div",2)),2&i&&(d(2),h("ngIf",o.isLoading),d(),h("ngIf",!o.nzSimple))},dependencies:[Tt,Vn],encapsulation:2})}return kt([Nt()],t.prototype,"nzIndicator",void 0),t})(),m4e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const Lc=["*"],g4e=(t,n)=>n.value;function v4e(t,n){}function _4e(t,n){if(1&t){const e=U();f(0,"label",14),D("ngModelChange",function(){T(e);const o=g().$implicit;return M(g(2).check(o))}),m()}2&t&&h("ngModel",g().$implicit.checked)}function b4e(t,n){if(1&t){const e=U();f(0,"label",15),D("ngModelChange",function(){T(e);const o=g().$implicit;return M(g(2).check(o))}),m()}2&t&&h("ngModel",g().$implicit.checked)}function y4e(t,n){if(1&t){const e=U();f(0,"li",11),D("click",function(){const o=T(e).$implicit;return M(g(2).check(o))}),w(1,_4e,1,1,"label",12)(2,b4e,1,1,"label",13),f(3,"span"),C(4),m()()}if(2&t){const e=n.$implicit,i=g(2);h("nzSelected",e.checked),d(),he(i.filterMultiple?2:1),d(3),x(e.text)}}function C4e(t,n){if(1&t){const e=U();f(0,"nz-filter-trigger",3),D("nzVisibleChange",function(o){return T(e),M(g().onVisibleChange(o))}),S(1,"span",4),m(),f(2,"nz-dropdown-menu",null,0)(4,"div",5)(5,"ul",6),ji(6,y4e,5,3,"li",7,g4e),m(),f(8,"div",8)(9,"button",9),D("click",function(){return T(e),M(g().reset())}),C(10),m(),f(11,"button",10),D("click",function(){return T(e),M(g().confirm())}),C(12),m()()()()}if(2&t){const e=He(3),i=g();h("nzVisible",i.isVisible)("nzActive",i.isChecked)("nzDropdownMenu",e),d(6),$i(i.listOfParsedFilter),d(3),h("disabled",!i.isChecked),d(),Ce(" ",i.locale.filterReset," "),d(2),x(i.locale.filterConfirm)}}function w4e(t,n){1&t&&P4(0,2),2&t&&h("ngTemplateOutlet",g().extraTemplate)}function z4e(t,n){if(1&t){const e=U();f(0,"label",3),D("ngModelChange",function(o){return T(e),M(g().onCheckedChange(o))}),m()}if(2&t){const e=g();Q("ant-table-selection-select-all-custom",e.showRowSelection),h("ngModel",e.checked)("nzDisabled",e.disabled)("nzIndeterminate",e.indeterminate),Pt("aria-label",e.label)}}function S4e(t,n){if(1&t){const e=U();f(0,"li",8),D("click",function(){return M(T(e).$implicit.onSelect())}),C(1),m()}if(2&t){const e=n.$implicit;d(),Ce(" ",e.text," ")}}function T4e(t,n){if(1&t&&(f(0,"div",2)(1,"span",4),S(2,"span",5),m(),f(3,"nz-dropdown-menu",null,0)(5,"ul",6),ji(6,S4e,2,1,"li",7,fr),m()()()),2&t){const e=He(4),i=g();d(),h("nzDropdownMenu",e),d(5),$i(i.listOfSelections)}}function M4e(t,n){}function D4e(t,n){1&t&&S(0,"span",6),2&t&&Q("active","ascend"===g().sortOrder)}function x4e(t,n){1&t&&S(0,"span",7),2&t&&Q("active","descend"===g().sortOrder)}const E4e=["nzChecked",""];function k4e(t,n){}function A4e(t,n){1&t&&w(0,k4e,0,0,"ng-template",2),2&t&&h("ngTemplateOutlet",g(2).nzExpandIcon)}function O4e(t,n){if(1&t){const e=U();f(0,"button",4),D("expandChange",function(o){return T(e),M(g(2).onExpandChange(o))}),m()}if(2&t){const e=g(2);h("expand",e.nzExpand)("spaceMode",!e.nzShowExpand)}}function P4e(t,n){if(1&t&&(S(0,"nz-row-indent",1),w(1,A4e,1,1,null,2)(2,O4e,1,2,"button",3)),2&t){const e=g();h("indentSize",e.nzIndentSize),d(),he(e.nzExpandIcon?1:2)}}function I4e(t,n){if(1&t){const e=U();f(0,"label",5),D("ngModelChange",function(o){return T(e),M(g().onCheckedChange(o))}),m()}if(2&t){const e=g();h("nzDisabled",e.nzDisabled)("ngModel",e.nzChecked)("nzIndeterminate",e.nzIndeterminate),Pt("aria-label",e.nzLabel)}}const N4e=["nzColumnKey",""],V4e=[[["","nz-th-extra",""]],[["nz-filter-trigger"]],"*"],F4e=["[nz-th-extra]","nz-filter-trigger","*"];function R4e(t,n){if(1&t){const e=U();f(0,"nz-table-filter",6),D("filterChange",function(o){return T(e),M(g().onFilterValueChange(o))}),m()}if(2&t){const e=g(),i=He(3),o=He(5);h("contentTemplate",i)("extraTemplate",o)("customFilter",e.nzCustomFilter)("filterMultiple",e.nzFilterMultiple)("listOfFilter",e.nzFilters)}}function L4e(t,n){1&t&&P4(0,5),2&t&&(g(),h("ngTemplateOutlet",He(3)))}function H4e(t,n){}function B4e(t,n){if(1&t&&w(0,H4e,0,0,"ng-template",5),2&t){const e=g(),i=He(7),o=He(9);h("ngTemplateOutlet",e.nzShowSort?i:o)}}function j4e(t,n){1&t&&(bt(0),bt(1,1))}function $4e(t,n){if(1&t&&S(0,"nz-table-sorters",7),2&t){const e=g(),i=He(9);h("sortOrder",e.sortOrder)("sortDirections",e.sortDirections)("contentTemplate",i)}}function Y4e(t,n){1&t&&bt(0,2)}const U4e=["nzSelections",""],W4e=["nz-table-content",""];function G4e(t,n){if(1&t&&S(0,"col"),2&t){const e=n.$implicit;Lt("width",e)("min-width",e)}}function q4e(t,n){}function K4e(t,n){if(1&t&&(f(0,"thead",1),w(1,q4e,0,0,"ng-template",2),m()),2&t){const e=g();d(),h("ngTemplateOutlet",e.theadTemplate)}}function J4e(t,n){}const QP=["tdElement"],Z4e=["nz-table-fixed-row",""],XP=["*","*"];function Q4e(t,n){1&t&&(f(0,"div",3),Fr(1,"async"),bt(2),m()),2&t&&Lt("width",Rr(1,2,g().hostWidth$),"px")}function X4e(t,n){1&t&&bt(0,1)}const e0e=["nz-table-measure-row",""];function t0e(t,n){1&t&&S(0,"td",1,0)}function n0e(t,n){if(1&t){const e=U();f(0,"tr",2),D("listOfAutoWidth",function(o){return T(e),M(g(2).onListOfAutoWidthChange(o))}),m()}2&t&&h("listOfMeasureColumn",g())}function i0e(t,n){1&t&&w(0,n0e,1,1,"tr",1),2&t&&he(g().isInsideTable&&n.length?0:-1)}function o0e(t,n){if(1&t&&(f(0,"tr",0),S(1,"nz-embed-empty",3),Fr(2,"async"),m()),2&t){const e=g();d(),h("specificContent",Rr(2,1,e.noResult$))}}const r0e=["tableHeaderElement"],s0e=["tableBodyElement"],a0e=(t,n)=>({$implicit:t,index:n});function c0e(t,n){if(1&t&&(f(0,"div",5,1),S(2,"table",7),m()),2&t){const e=g(2);h("ngStyle",e.bodyStyleMap),d(2),h("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("contentTemplate",e.contentTemplate)}}function l0e(t,n){}function d0e(t,n){if(1&t&&($e(0),w(1,l0e,0,0,"ng-template",11),Ye()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),h("ngTemplateOutlet",o.virtualTemplate)("ngTemplateOutletContext",sc(2,a0e,e,i))}}function u0e(t,n){if(1&t&&(f(0,"cdk-virtual-scroll-viewport",8,1)(2,"table",9)(3,"tbody"),w(4,d0e,2,5,"ng-container",10),m()()()),2&t){const e=g(2);Lt("height",e.data.length?e.scrollY:e.noDataVirtualHeight),h("itemSize",e.virtualItemSize)("maxBufferPx",e.virtualMaxBufferPx)("minBufferPx",e.virtualMinBufferPx),d(2),h("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth),d(2),h("cdkVirtualForOf",e.data)("cdkVirtualForTrackBy",e.virtualForTrackBy)}}function h0e(t,n){if(1&t&&(f(0,"div",3,0),S(2,"table",4),m(),w(3,c0e,3,4,"div",5)(4,u0e,5,9,"cdk-virtual-scroll-viewport",6)),2&t){const e=g();h("ngStyle",e.headerStyleMap),d(2),h("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("theadTemplate",e.theadTemplate),d(),he(e.virtualTemplate?4:3)}}function p0e(t,n){if(1&t&&(f(0,"div",2,1),S(2,"table",12),m()),2&t){const e=g();h("ngStyle",e.bodyStyleMap),d(2),h("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("theadTemplate",e.theadTemplate)("contentTemplate",e.contentTemplate)}}function f0e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.title)}}function m0e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.footer)}}function g0e(t,n){}function v0e(t,n){1&t&&w(0,g0e,0,0,"ng-template",4),2&t&&(g(),h("ngTemplateOutlet",He(10)))}function _0e(t,n){1&t&&S(0,"nz-table-title-footer",6),2&t&&h("title",g().nzTitle)}function b0e(t,n){if(1&t&&S(0,"nz-table-inner-scroll",7),2&t){const e=g(),i=He(3),o=He(12);h("data",e.data)("scrollX",e.scrollX)("scrollY",e.scrollY)("contentTemplate",o)("listOfColWidth",e.listOfAutoColWidth)("theadTemplate",e.theadTemplate)("verticalScrollBarWidth",e.verticalScrollBarWidth)("virtualTemplate",e.nzVirtualScrollDirective?e.nzVirtualScrollDirective.templateRef:null)("virtualItemSize",e.nzVirtualItemSize)("virtualMaxBufferPx",e.nzVirtualMaxBufferPx)("virtualMinBufferPx",e.nzVirtualMinBufferPx)("tableMainElement",i)("virtualForTrackBy",e.nzVirtualForTrackBy)("noDataVirtualHeight",e.noDataVirtualHeight)}}function y0e(t,n){if(1&t&&S(0,"nz-table-inner-default",8),2&t){const e=g(),i=He(12);h("tableLayout",e.nzTableLayout)("listOfColWidth",e.listOfManualColWidth)("theadTemplate",e.theadTemplate)("contentTemplate",i)}}function C0e(t,n){1&t&&S(0,"nz-table-title-footer",9),2&t&&h("footer",g().nzFooter)}function w0e(t,n){}function z0e(t,n){1&t&&w(0,w0e,0,0,"ng-template",4),2&t&&(g(),h("ngTemplateOutlet",He(10)))}function S0e(t,n){if(1&t){const e=U();f(0,"nz-pagination",11),D("nzPageSizeChange",function(o){return T(e),M(g(2).onPageSizeChange(o))})("nzPageIndexChange",function(o){return T(e),M(g(2).onPageIndexChange(o))}),m()}if(2&t){const e=g(2);h("hidden",!e.showPagination)("nzShowSizeChanger",e.nzShowSizeChanger)("nzPageSizeOptions",e.nzPageSizeOptions)("nzItemRender",e.nzItemRender)("nzShowQuickJumper",e.nzShowQuickJumper)("nzHideOnSinglePage",e.nzHideOnSinglePage)("nzShowTotal",e.nzShowTotal)("nzSize","small"===e.nzPaginationType?"small":"default"===e.nzSize?"default":"small")("nzPageSize",e.nzPageSize)("nzTotal",e.nzTotal)("nzSimple",e.nzSimple)("nzPageIndex",e.nzPageIndex)}}function T0e(t,n){if(1&t&&w(0,S0e,1,12,"nz-pagination",10),2&t){const e=g();he(e.nzShowPagination&&e.data.length?0:-1)}}function M0e(t,n){1&t&&bt(0)}const D0e=["contentTemplate"];function x0e(t,n){1&t&&bt(0)}function E0e(t,n){}function k0e(t,n){1&t&&w(0,E0e,0,0,"ng-template",1),2&t&&(g(),h("ngTemplateOutlet",He(1)))}let eI=(()=>{class t{onVisibleChange(e){this.nzVisible=e,this.nzVisibleChange.next(e)}hide(){this.nzVisible=!1,this.cdr.markForCheck()}show(){this.nzVisible=!0,this.cdr.markForCheck()}constructor(e,i,o,r){this.nzConfigService=e,this.ngZone=i,this.cdr=o,this.destroy$=r,this._nzModuleName="filterTrigger",this.nzActive=!1,this.nzVisible=!1,this.nzBackdrop=!1,this.nzVisibleChange=new H}ngOnInit(){this.ngZone.runOutsideAngular(()=>{nn(this.nzDropdown.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.stopPropagation()})})}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(De),v(Ue),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-filter-trigger"]],viewQuery:function(i,o){if(1&i&&ft(N1,7,Te),2&i){let r;Ae(r=Oe())&&(o.nzDropdown=r.first)}},inputs:{nzActive:"nzActive",nzDropdownMenu:"nzDropdownMenu",nzVisible:"nzVisible",nzBackdrop:[2,"nzBackdrop","nzBackdrop",O]},outputs:{nzVisibleChange:"nzVisibleChange"},exportAs:["nzFilterTrigger"],standalone:!0,features:[et([No]),je,me],ngContentSelectors:Lc,decls:2,vars:8,consts:[["nz-dropdown","","nzTrigger","click","nzPlacement","bottomRight",1,"ant-table-filter-trigger",3,"nzVisibleChange","nzBackdrop","nzClickHide","nzDropdownMenu","nzVisible"]],template:function(i,o){1&i&&(Et(),f(0,"span",0),D("nzVisibleChange",function(s){return o.onVisibleChange(s)}),bt(1),m()),2&i&&(Q("active",o.nzActive)("ant-table-filter-open",o.nzVisible),h("nzBackdrop",o.nzBackdrop)("nzClickHide",!1)("nzDropdownMenu",o.nzDropdownMenu)("nzVisible",o.nzVisible))},dependencies:[d6,N1],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzBackdrop",void 0),t})(),tI=(()=>{class t{check(e){this.filterMultiple?(this.listOfParsedFilter=this.listOfParsedFilter.map(i=>i===e?{...i,checked:!e.checked}:i),e.checked=!e.checked):this.listOfParsedFilter=this.listOfParsedFilter.map(i=>({...i,checked:i===e})),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter)}confirm(){this.isVisible=!1,this.emitFilterData()}reset(){this.isVisible=!1,this.listOfParsedFilter=this.parseListOfFilter(this.listOfFilter,!0),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter),this.emitFilterData()}onVisibleChange(e){this.isVisible=e,e?this.listOfChecked=this.listOfParsedFilter.filter(i=>i.checked).map(i=>i.value):this.emitFilterData()}emitFilterData(){const e=this.listOfParsedFilter.filter(i=>i.checked).map(i=>i.value);dE(this.listOfChecked,e)||this.filterChange.emit(this.filterMultiple?e:e.length>0?e[0]:null)}parseListOfFilter(e,i){return e.map(o=>({text:o.text,value:o.value,checked:!i&&!!o.byDefault}))}getCheckedStatus(e){return e.some(i=>i.checked)}constructor(e,i){this.cdr=e,this.i18n=i,this.contentTemplate=null,this.customFilter=!1,this.extraTemplate=null,this.filterMultiple=!0,this.listOfFilter=[],this.filterChange=new H,this.destroy$=new N,this.isChecked=!1,this.isVisible=!1,this.listOfParsedFilter=[],this.listOfChecked=[]}ngOnInit(){this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Table"),this.cdr.markForCheck()})}ngOnChanges(e){const{listOfFilter:i}=e;i&&this.listOfFilter&&this.listOfFilter.length&&(this.listOfParsedFilter=this.parseListOfFilter(this.listOfFilter),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter))}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v($s))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-filter"]],hostAttrs:[1,"ant-table-filter-column"],inputs:{contentTemplate:"contentTemplate",customFilter:"customFilter",extraTemplate:"extraTemplate",filterMultiple:"filterMultiple",listOfFilter:"listOfFilter"},outputs:{filterChange:"filterChange"},standalone:!0,features:[ke,me],decls:4,vars:2,consts:[["filterMenu","nzDropdownMenu"],[1,"ant-table-column-title"],[3,"ngTemplateOutlet"],[3,"nzVisibleChange","nzVisible","nzActive","nzDropdownMenu"],["nz-icon","","nzType","filter","nzTheme","fill"],[1,"ant-table-filter-dropdown"],["nz-menu",""],["nz-menu-item","",3,"nzSelected"],[1,"ant-table-filter-dropdown-btns"],["nz-button","","nzType","link","nzSize","small",3,"click","disabled"],["nz-button","","nzType","primary","nzSize","small",3,"click"],["nz-menu-item","",3,"click","nzSelected"],["nz-radio","",3,"ngModel"],["nz-checkbox","",3,"ngModel"],["nz-radio","",3,"ngModelChange","ngModel"],["nz-checkbox","",3,"ngModelChange","ngModel"]],template:function(i,o){1&i&&(f(0,"span",1),w(1,v4e,0,0,"ng-template",2),m(),w(2,C4e,13,6)(3,w4e,1,1,"ng-container",2)),2&i&&(d(),h("ngTemplateOutlet",o.contentTemplate),d(),he(o.customFilter?3:2))},dependencies:[Vn,eI,On,cn,d6,Sa,Us,C2,YP,I6,Rc,Ic,Qi,Xi,h2,nr,mi,tr],encapsulation:2,changeDetection:0})}return t})(),O0e=(()=>{class t{constructor(){this.expand=!1,this.spaceMode=!1,this.expandChange=new H}onHostClick(){this.spaceMode||(this.expand=!this.expand,this.expandChange.next(this.expand))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["button","nz-row-expand-button",""]],hostAttrs:[1,"ant-table-row-expand-icon"],hostVars:7,hostBindings:function(i,o){1&i&&D("click",function(){return o.onHostClick()}),2&i&&(em("type","button"),Q("ant-table-row-expand-icon-expanded",!o.spaceMode&&!0===o.expand)("ant-table-row-expand-icon-collapsed",!o.spaceMode&&!1===o.expand)("ant-table-row-expand-icon-spaced",o.spaceMode))},inputs:{expand:"expand",spaceMode:"spaceMode"},outputs:{expandChange:"expandChange"},standalone:!0})}return t})(),P0e=(()=>{class t{constructor(){this.indentSize=0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["nz-row-indent"]],hostAttrs:[1,"ant-table-row-indent"],hostVars:2,hostBindings:function(i,o){2&i&&Lt("padding-left",o.indentSize,"px")},inputs:{indentSize:"indentSize"},standalone:!0})}return t})(),nI=(()=>{class t{constructor(){this.listOfSelections=[],this.checked=!1,this.disabled=!1,this.indeterminate=!1,this.label=null,this.showCheckbox=!1,this.showRowSelection=!1,this.checkedChange=new H}onCheckedChange(e){this.checked=e,this.checkedChange.emit(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-selection"]],hostAttrs:[1,"ant-table-selection"],inputs:{listOfSelections:"listOfSelections",checked:"checked",disabled:"disabled",indeterminate:"indeterminate",label:"label",showCheckbox:"showCheckbox",showRowSelection:"showRowSelection"},outputs:{checkedChange:"checkedChange"},standalone:!0,features:[me],decls:2,vars:2,consts:[["selectionMenu","nzDropdownMenu"],["nz-checkbox","",3,"ant-table-selection-select-all-custom","ngModel","nzDisabled","nzIndeterminate"],[1,"ant-table-selection-extra"],["nz-checkbox","",3,"ngModelChange","ngModel","nzDisabled","nzIndeterminate"],["nz-dropdown","","nzPlacement","bottomLeft",1,"ant-table-selection-down",3,"nzDropdownMenu"],["nz-icon","","nzType","down"],["nz-menu","",1,"ant-table-selection-menu"],["nz-menu-item",""],["nz-menu-item","",3,"click"]],template:function(i,o){1&i&&w(0,z4e,1,6,"label",1)(1,T4e,8,1,"div",2),2&i&&(he(o.showCheckbox?0:-1),d(),he(o.showRowSelection?1:-1))},dependencies:[Ic,Qi,Xi,I6,Rc,d6,Sa,Us,N1,C2,On,cn],encapsulation:2,changeDetection:0})}return t})(),iI=(()=>{class t{constructor(){this.sortDirections=["ascend","descend",null],this.sortOrder=null,this.contentTemplate=null,this.isUp=!1,this.isDown=!1}ngOnChanges(e){const{sortDirections:i}=e;i&&(this.isUp=-1!==this.sortDirections.indexOf("ascend"),this.isDown=-1!==this.sortDirections.indexOf("descend"))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-sorters"]],hostAttrs:[1,"ant-table-column-sorters"],inputs:{sortDirections:"sortDirections",sortOrder:"sortOrder",contentTemplate:"contentTemplate"},standalone:!0,features:[ke,me],decls:6,vars:5,consts:[[1,"ant-table-column-title"],[3,"ngTemplateOutlet"],[1,"ant-table-column-sorter"],[1,"ant-table-column-sorter-inner"],["nz-icon","","nzType","caret-up",1,"ant-table-column-sorter-up",3,"active"],["nz-icon","","nzType","caret-down",1,"ant-table-column-sorter-down",3,"active"],["nz-icon","","nzType","caret-up",1,"ant-table-column-sorter-up"],["nz-icon","","nzType","caret-down",1,"ant-table-column-sorter-down"]],template:function(i,o){1&i&&(f(0,"span",0),w(1,M4e,0,0,"ng-template",1),m(),f(2,"span",2)(3,"span",3),w(4,D4e,1,2,"span",4)(5,x4e,1,2,"span",5),m()()),2&i&&(d(),h("ngTemplateOutlet",o.contentTemplate),d(),Q("ant-table-column-sorter-full",o.isDown&&o.isUp),d(2),he(o.isUp?4:-1),d(),he(o.isDown?5:-1))},dependencies:[On,cn,Vn],encapsulation:2,changeDetection:0})}return t})(),I0e=(()=>{class t{setAutoLeftWidth(e){this.renderer.setStyle(this.elementRef.nativeElement,"left",e)}setAutoRightWidth(e){this.renderer.setStyle(this.elementRef.nativeElement,"right",e)}setIsFirstRight(e){this.setFixClass(e,"ant-table-cell-fix-right-first")}setIsLastLeft(e){this.setFixClass(e,"ant-table-cell-fix-left-last")}setFixClass(e,i){this.renderer.removeClass(this.elementRef.nativeElement,i),e&&this.renderer.addClass(this.elementRef.nativeElement,i)}constructor(e,i){this.renderer=e,this.elementRef=i,this.nzRight=!1,this.nzLeft=!1,this.colspan=null,this.colSpan=null,this.changes$=new N,this.isAutoLeft=!1,this.isAutoRight=!1,this.isFixedLeft=!1,this.isFixedRight=!1,this.isFixed=!1}ngOnChanges(){this.setIsFirstRight(!1),this.setIsLastLeft(!1),this.isAutoLeft=""===this.nzLeft||!0===this.nzLeft,this.isAutoRight=""===this.nzRight||!0===this.nzRight,this.isFixedLeft=!1!==this.nzLeft,this.isFixedRight=!1!==this.nzRight,this.isFixed=this.isFixedLeft||this.isFixedRight;const e=i=>"string"==typeof i&&""!==i?i:null;this.setAutoLeftWidth(e(this.nzLeft)),this.setAutoRightWidth(e(this.nzRight)),this.changes$.next()}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["td","nzRight",""],["th","nzRight",""],["td","nzLeft",""],["th","nzLeft",""]],hostVars:6,hostBindings:function(i,o){2&i&&(Lt("position",o.isFixed?"sticky":null),Q("ant-table-cell-fix-right",o.isFixedRight)("ant-table-cell-fix-left",o.isFixedLeft))},inputs:{nzRight:"nzRight",nzLeft:"nzLeft",colspan:"colspan",colSpan:"colSpan"},standalone:!0,features:[ke]})}return t})(),Hc=(()=>{class t{setTheadTemplate(e){this.theadTemplate$.next(e)}setHasFixLeft(e){this.hasFixLeft$.next(e)}setHasFixRight(e){this.hasFixRight$.next(e)}setTableWidthConfig(e){this.tableWidthConfigPx$.next(e)}setListOfTh(e){let i=0;e.forEach(r=>{i+=r.colspan&&+r.colspan||r.colSpan&&+r.colSpan||1});const o=e.map(r=>r.nzWidth);this.columnCount$.next(i),this.listOfThWidthConfigPx$.next(o)}setListOfMeasureColumn(e){const i=[];e.forEach(o=>{const r=o.colspan&&+o.colspan||o.colSpan&&+o.colSpan||1;for(let s=0;s`${i}px`))}setShowEmpty(e){this.showEmpty$.next(e)}setNoResult(e){this.noResult$.next(e)}setScroll(e,i){const o=!(!e&&!i);o||this.setListOfAutoWidth([]),this.enableAutoMeasure$.next(o)}constructor(){this.theadTemplate$=new fi(1),this.hasFixLeft$=new fi(1),this.hasFixRight$=new fi(1),this.hostWidth$=new fi(1),this.columnCount$=new fi(1),this.showEmpty$=new fi(1),this.noResult$=new fi(1),this.listOfThWidthConfigPx$=new rt([]),this.tableWidthConfigPx$=new rt([]),this.manualWidthConfigPx$=xi([this.tableWidthConfigPx$,this.listOfThWidthConfigPx$]).pipe(Ie(([e,i])=>e.length?e:i)),this.listOfAutoWidthPx$=new fi(1),this.listOfListOfThWidthPx$=Pn(this.manualWidthConfigPx$,xi([this.listOfAutoWidthPx$,this.manualWidthConfigPx$]).pipe(Ie(([e,i])=>e.length===i.length?e.map((o,r)=>"0px"===o?i[r]||null:i[r]||o):i))),this.listOfMeasureColumn$=new fi(1),this.listOfListOfThWidth$=this.listOfAutoWidthPx$.pipe(Ie(e=>e.map(i=>parseInt(i,10)))),this.enableAutoMeasure$=new fi(1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),N2=(()=>{class t{constructor(e){this.isInsideTable=!1,this.isInsideTable=!!e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Hc,8))};static#t=this.\u0275dir=de({type:t,selectors:[["th",9,"nz-disable-th",3,"mat-cell",""],["td",9,"nz-disable-td",3,"mat-cell",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-table-cell",o.isInsideTable)},standalone:!0})}return t})(),Mv=(()=>{class t{updatePageSize(e){this.pageSize$.next(e)}updateFrontPagination(e){this.frontPagination$.next(e)}updatePageIndex(e){this.pageIndex$.next(e)}updateListOfData(e){this.listOfData$.next(e)}updateListOfCustomColumn(e){this.listOfCustomColumn$.next(e)}constructor(){this.destroy$=new N,this.pageIndex$=new rt(1),this.frontPagination$=new rt(!0),this.pageSize$=new rt(10),this.listOfData$=new rt([]),this.listOfCustomColumn$=new rt([]),this.pageIndexDistinct$=this.pageIndex$.pipe(qi()),this.pageSizeDistinct$=this.pageSize$.pipe(qi()),this.listOfCalcOperator$=new rt([]),this.queryParams$=xi([this.pageIndexDistinct$,this.pageSizeDistinct$,this.listOfCalcOperator$]).pipe(g3(0),O5(1),Ie(([e,i,o])=>({pageIndex:e,pageSize:i,sort:o.filter(r=>r.sortFn).map(r=>({key:r.key,value:r.sortOrder})),filter:o.filter(r=>r.filterFn).map(r=>({key:r.key,value:r.filterValue}))}))),this.listOfDataAfterCalc$=xi([this.listOfData$,this.listOfCalcOperator$]).pipe(Ie(([e,i])=>{let o=[...e];const r=i.filter(a=>{const{filterValue:c,filterFn:l}=a;return!(null==c||Array.isArray(c)&&0===c.length)&&"function"==typeof l});for(const a of r){const{filterFn:c,filterValue:l}=a;o=o.filter(u=>c(l,u))}const s=i.filter(a=>null!==a.sortOrder&&"function"==typeof a.sortFn).sort((a,c)=>+c.sortPriority-+a.sortPriority);return i.length&&o.sort((a,c)=>{for(const l of s){const{sortFn:u,sortOrder:p}=l;if(u&&p){const _=u(a,c,p);if(0!==_)return"ascend"===p?_:-_}}return 0}),o})),this.listOfFrontEndCurrentPageData$=xi([this.pageIndexDistinct$,this.pageSizeDistinct$,this.listOfDataAfterCalc$]).pipe(I(this.destroy$),yt(e=>{const[i,o,r]=e;return i<=(Math.ceil(r.length/o)||1)}),Ie(([e,i,o])=>o.slice((e-1)*i,e*i))),this.listOfCurrentPageData$=this.frontPagination$.pipe(mn(e=>e?this.listOfFrontEndCurrentPageData$:this.listOfDataAfterCalc$)),this.total$=this.frontPagination$.pipe(mn(e=>e?this.listOfDataAfterCalc$:this.listOfData$),Ie(e=>e.length),qi())}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),oI=(()=>{class t{constructor(){this.nzChecked=!1,this.nzDisabled=!1,this.nzIndeterminate=!1,this.nzLabel=null,this.nzIndentSize=0,this.nzShowExpand=!1,this.nzShowCheckbox=!1,this.nzExpand=!1,this.nzExpandIcon=null,this.nzCheckedChange=new H,this.nzExpandChange=new H,this.isNzShowExpandChanged=!1,this.isNzShowCheckboxChanged=!1}onCheckedChange(e){this.nzChecked=e,this.nzCheckedChange.emit(e)}onExpandChange(e){this.nzExpand=e,this.nzExpandChange.emit(e)}ngOnChanges(e){const i=c=>c&&c.firstChange&&void 0!==c.currentValue,{nzExpand:o,nzChecked:r,nzShowExpand:s,nzShowCheckbox:a}=e;s&&(this.isNzShowExpandChanged=!0),a&&(this.isNzShowCheckboxChanged=!0),i(o)&&!this.isNzShowExpandChanged&&(this.nzShowExpand=!0),i(r)&&!this.isNzShowCheckboxChanged&&(this.nzShowCheckbox=!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["td","nzChecked",""],["td","nzDisabled",""],["td","nzIndeterminate",""],["td","nzIndentSize",""],["td","nzExpand",""],["td","nzShowExpand",""],["td","nzShowCheckbox",""]],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-table-cell-with-append",o.nzShowExpand||o.nzIndentSize>0)("ant-table-selection-column",o.nzShowCheckbox)},inputs:{nzChecked:"nzChecked",nzDisabled:"nzDisabled",nzIndeterminate:"nzIndeterminate",nzLabel:"nzLabel",nzIndentSize:"nzIndentSize",nzShowExpand:[2,"nzShowExpand","nzShowExpand",O],nzShowCheckbox:[2,"nzShowCheckbox","nzShowCheckbox",O],nzExpand:[2,"nzExpand","nzExpand",O],nzExpandIcon:"nzExpandIcon"},outputs:{nzCheckedChange:"nzCheckedChange",nzExpandChange:"nzExpandChange"},standalone:!0,features:[je,ke,me],attrs:E4e,ngContentSelectors:Lc,decls:3,vars:2,consts:[["nz-checkbox","",3,"nzDisabled","ngModel","nzIndeterminate"],[3,"indentSize"],[3,"ngTemplateOutlet"],["nz-row-expand-button","",3,"expand","spaceMode"],["nz-row-expand-button","",3,"expandChange","expand","spaceMode"],["nz-checkbox","",3,"ngModelChange","nzDisabled","ngModel","nzIndeterminate"]],template:function(i,o){1&i&&(Et(),w(0,P4e,3,2)(1,I4e,1,4,"label",0),bt(2)),2&i&&(he(o.nzShowExpand||o.nzIndentSize>0?0:-1),d(),he(o.nzShowCheckbox?1:-1))},dependencies:[P0e,O0e,Vn,I6,Rc,Ic,Qi,Xi],encapsulation:2,changeDetection:0})}return t})(),rI=(()=>{class t{getNextSortDirection(e,i){const o=e.indexOf(i);return o===e.length-1?e[0]:e[o+1]}setSortOrder(e){this.sortOrderChange$.next(e)}clearSortOrder(){null!==this.sortOrder&&this.setSortOrder(null)}onFilterValueChange(e){this.nzFilterChange.emit(e),this.nzFilterValue=e,this.updateCalcOperator()}updateCalcOperator(){this.calcOperatorChange$.next()}constructor(e,i,o,r){this.host=e,this.cdr=i,this.ngZone=o,this.destroy$=r,this.manualClickOrder$=new N,this.calcOperatorChange$=new N,this.nzFilterValue=null,this.sortOrder=null,this.sortDirections=["ascend","descend",null],this.sortOrderChange$=new N,this.isNzShowSortChanged=!1,this.isNzShowFilterChanged=!1,this.nzFilterMultiple=!0,this.nzSortOrder=null,this.nzSortPriority=!1,this.nzSortDirections=["ascend","descend",null],this.nzFilters=[],this.nzSortFn=null,this.nzFilterFn=null,this.nzShowSort=!1,this.nzShowFilter=!1,this.nzCustomFilter=!1,this.nzCheckedChange=new H,this.nzSortOrderChange=new H,this.nzFilterChange=new H}ngOnInit(){this.ngZone.runOutsideAngular(()=>nn(this.host.nativeElement,"click").pipe(yt(()=>this.nzShowSort),I(this.destroy$)).subscribe(()=>{const e=this.getNextSortDirection(this.sortDirections,this.sortOrder);this.ngZone.run(()=>{this.setSortOrder(e),this.manualClickOrder$.next(this)})})),this.sortOrderChange$.pipe(I(this.destroy$)).subscribe(e=>{this.sortOrder!==e&&(this.sortOrder=e,this.nzSortOrderChange.emit(e)),this.updateCalcOperator(),this.cdr.markForCheck()})}ngOnChanges(e){const{nzSortDirections:i,nzFilters:o,nzSortOrder:r,nzSortFn:s,nzFilterFn:a,nzSortPriority:c,nzFilterMultiple:l,nzShowSort:u,nzShowFilter:p}=e;i&&this.nzSortDirections&&this.nzSortDirections.length&&(this.sortDirections=this.nzSortDirections),r&&(this.sortOrder=this.nzSortOrder,this.setSortOrder(this.nzSortOrder)),u&&(this.isNzShowSortChanged=!0),p&&(this.isNzShowFilterChanged=!0);const _=b=>b&&b.firstChange&&void 0!==b.currentValue;if((_(r)||_(s))&&!this.isNzShowSortChanged&&(this.nzShowSort=!0),_(o)&&!this.isNzShowFilterChanged&&(this.nzShowFilter=!0),(o||l)&&this.nzShowFilter){const b=this.nzFilters.filter(y=>y.byDefault).map(y=>y.value);this.nzFilterValue=this.nzFilterMultiple?b:b[0]||null}(s||a||c||o)&&this.updateCalcOperator()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Ue),v(De),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["th","nzColumnKey",""],["th","nzSortFn",""],["th","nzSortOrder",""],["th","nzFilters",""],["th","nzShowSort",""],["th","nzShowFilter",""],["th","nzCustomFilter",""]],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-table-column-has-sorters",o.nzShowSort)("ant-table-column-sort","descend"===o.sortOrder||"ascend"===o.sortOrder)},inputs:{nzColumnKey:"nzColumnKey",nzFilterMultiple:"nzFilterMultiple",nzSortOrder:"nzSortOrder",nzSortPriority:"nzSortPriority",nzSortDirections:"nzSortDirections",nzFilters:"nzFilters",nzSortFn:"nzSortFn",nzFilterFn:"nzFilterFn",nzShowSort:[2,"nzShowSort","nzShowSort",O],nzShowFilter:[2,"nzShowFilter","nzShowFilter",O],nzCustomFilter:[2,"nzCustomFilter","nzCustomFilter",O]},outputs:{nzCheckedChange:"nzCheckedChange",nzSortOrderChange:"nzSortOrderChange",nzFilterChange:"nzFilterChange"},standalone:!0,features:[et([No]),je,ke,me],attrs:N4e,ngContentSelectors:F4e,decls:10,vars:1,consts:[["notFilterTemplate",""],["extraTemplate",""],["sortTemplate",""],["contentTemplate",""],[3,"contentTemplate","extraTemplate","customFilter","filterMultiple","listOfFilter"],[3,"ngTemplateOutlet"],[3,"filterChange","contentTemplate","extraTemplate","customFilter","filterMultiple","listOfFilter"],[3,"sortOrder","sortDirections","contentTemplate"]],template:function(i,o){1&i&&(Et(V4e),w(0,R4e,1,5,"nz-table-filter",4)(1,L4e,1,1,"ng-container",5)(2,B4e,1,1,"ng-template",null,0,ot)(4,j4e,2,0,"ng-template",null,1,ot)(6,$4e,1,3,"ng-template",null,2,ot)(8,Y4e,1,0,"ng-template",null,3,ot)),2&i&&he(o.nzShowFilter||o.nzCustomFilter?0:1)},dependencies:[tI,Vn,iI],encapsulation:2,changeDetection:0})}return t})(),$1=(()=>{class t{constructor(e,i){this.renderer=e,this.elementRef=i,this.changes$=new N,this.nzWidth=null,this.colspan=null,this.colSpan=null,this.rowspan=null,this.rowSpan=null}ngOnChanges(e){const{nzWidth:i,colspan:o,rowspan:r,colSpan:s,rowSpan:a}=e;if(o||s){const c=this.colspan||this.colSpan;b3(c)?this.renderer.removeAttribute(this.elementRef.nativeElement,"colspan"):this.renderer.setAttribute(this.elementRef.nativeElement,"colspan",`${c}`)}if(r||a){const c=this.rowspan||this.rowSpan;b3(c)?this.renderer.removeAttribute(this.elementRef.nativeElement,"rowspan"):this.renderer.setAttribute(this.elementRef.nativeElement,"rowspan",`${c}`)}(i||o)&&this.changes$.next()}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["th"]],inputs:{nzWidth:"nzWidth",colspan:"colspan",colSpan:"colSpan",rowspan:"rowspan",rowSpan:"rowSpan"},standalone:!0,features:[ke]})}return t})(),sI=(()=>{class t{constructor(){this.nzSelections=[],this.nzChecked=!1,this.nzDisabled=!1,this.nzIndeterminate=!1,this.nzLabel=null,this.nzShowCheckbox=!1,this.nzShowRowSelection=!1,this.nzCheckedChange=new H,this.isNzShowExpandChanged=!1,this.isNzShowCheckboxChanged=!1}onCheckedChange(e){this.nzChecked=e,this.nzCheckedChange.emit(e)}ngOnChanges(e){const i=c=>c&&c.firstChange&&void 0!==c.currentValue,{nzChecked:o,nzSelections:r,nzShowExpand:s,nzShowCheckbox:a}=e;s&&(this.isNzShowExpandChanged=!0),a&&(this.isNzShowCheckboxChanged=!0),i(r)&&!this.isNzShowExpandChanged&&(this.nzShowRowSelection=!0),i(o)&&!this.isNzShowCheckboxChanged&&(this.nzShowCheckbox=!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["th","nzSelections",""],["th","nzChecked",""],["th","nzShowCheckbox",""],["th","nzShowRowSelection",""]],hostAttrs:[1,"ant-table-selection-column"],inputs:{nzSelections:"nzSelections",nzChecked:[2,"nzChecked","nzChecked",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzIndeterminate:"nzIndeterminate",nzLabel:"nzLabel",nzShowCheckbox:[2,"nzShowCheckbox","nzShowCheckbox",O],nzShowRowSelection:[2,"nzShowRowSelection","nzShowRowSelection",O]},outputs:{nzCheckedChange:"nzCheckedChange"},standalone:!0,features:[je,ke,me],attrs:U4e,ngContentSelectors:Lc,decls:2,vars:7,consts:[[3,"checkedChange","checked","disabled","indeterminate","label","listOfSelections","showCheckbox","showRowSelection"]],template:function(i,o){1&i&&(Et(),f(0,"nz-table-selection",0),D("checkedChange",function(s){return o.onCheckedChange(s)}),m(),bt(1)),2&i&&h("checked",o.nzChecked)("disabled",o.nzDisabled)("indeterminate",o.nzIndeterminate)("label",o.nzLabel)("listOfSelections",o.nzSelections)("showCheckbox",o.nzShowCheckbox)("showRowSelection",o.nzShowRowSelection)},dependencies:[nI],encapsulation:2,changeDetection:0})}return t})(),aI=(()=>{class t{constructor(){this.tableLayout="auto",this.theadTemplate=null,this.contentTemplate=null,this.listOfColWidth=[],this.scrollX=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["table","nz-table-content",""]],hostVars:8,hostBindings:function(i,o){2&i&&(Lt("table-layout",o.tableLayout)("width",o.scrollX)("min-width",o.scrollX?"100%":null),Q("ant-table-fixed",o.scrollX))},inputs:{tableLayout:"tableLayout",theadTemplate:"theadTemplate",contentTemplate:"contentTemplate",listOfColWidth:"listOfColWidth",scrollX:"scrollX"},standalone:!0,features:[me],attrs:W4e,ngContentSelectors:Lc,decls:5,vars:2,consts:[[3,"width","minWidth"],[1,"ant-table-thead"],[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&(Et(),ji(0,G4e,1,4,"col",0,fr),w(2,K4e,2,1,"thead",1)(3,J4e,0,0,"ng-template",2),bt(4)),2&i&&($i(o.listOfColWidth),d(2),he(o.theadTemplate?2:-1),d(),h("ngTemplateOutlet",o.contentTemplate))},dependencies:[Vn],encapsulation:2,changeDetection:0})}return t})(),N0e=(()=>{class t{constructor(e,i){this.nzTableStyleService=e,this.renderer=i,this.hostWidth$=new rt(null),this.enableAutoMeasure$=new rt(!1),this.destroy$=new N}ngOnInit(){if(this.nzTableStyleService){const{enableAutoMeasure$:e,hostWidth$:i}=this.nzTableStyleService;e.pipe(I(this.destroy$)).subscribe(this.enableAutoMeasure$),i.pipe(I(this.destroy$)).subscribe(this.hostWidth$)}}ngAfterViewInit(){this.nzTableStyleService.columnCount$.pipe(I(this.destroy$)).subscribe(e=>{this.renderer.setAttribute(this.tdElement.nativeElement,"colspan",`${e}`)})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Hc),v($t))};static#t=this.\u0275cmp=q({type:t,selectors:[["tr","nz-table-fixed-row",""],["tr","nzExpand",""]],viewQuery:function(i,o){if(1&i&&ft(QP,7),2&i){let r;Ae(r=Oe())&&(o.tdElement=r.first)}},standalone:!0,features:[me],attrs:Z4e,ngContentSelectors:XP,decls:5,vars:3,consts:[["tdElement",""],[1,"nz-disable-td","ant-table-cell"],[1,"ant-table-expanded-row-fixed",2,"position","sticky","left","0","overflow","hidden",3,"width"],[1,"ant-table-expanded-row-fixed",2,"position","sticky","left","0","overflow","hidden"]],template:function(i,o){1&i&&(Et(XP),f(0,"td",1,0),w(2,Q4e,3,4,"div",2),Fr(3,"async"),w(4,X4e,1,0),m()),2&i&&(d(2),he(Rr(3,1,o.enableAutoMeasure$)?2:4))},dependencies:[qm],encapsulation:2,changeDetection:0})}return t})(),V0e=(()=>{class t{constructor(){this.tableLayout="auto",this.listOfColWidth=[],this.theadTemplate=null,this.contentTemplate=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-inner-default"]],hostAttrs:[1,"ant-table-container"],inputs:{tableLayout:"tableLayout",listOfColWidth:"listOfColWidth",theadTemplate:"theadTemplate",contentTemplate:"contentTemplate"},standalone:!0,features:[me],decls:2,vars:4,consts:[[1,"ant-table-content"],["nz-table-content","",3,"contentTemplate","tableLayout","listOfColWidth","theadTemplate"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,"table",1),m()),2&i&&(d(),h("contentTemplate",o.contentTemplate)("tableLayout",o.tableLayout)("listOfColWidth",o.listOfColWidth)("theadTemplate",o.theadTemplate))},dependencies:[aI],encapsulation:2,changeDetection:0})}return t})(),F0e=(()=>{class t{constructor(e,i){this.nzResizeObserver=e,this.ngZone=i,this.listOfMeasureColumn=[],this.listOfAutoWidth=new H,this.destroy$=new N}ngAfterViewInit(){this.listOfTdElement.changes.pipe(gn(this.listOfTdElement)).pipe(mn(e=>xi(e.toArray().map(i=>this.nzResizeObserver.observe(i).pipe(Ie(([o])=>{const{width:r}=o.target.getBoundingClientRect();return Math.floor(r)}))))),g3(16),I(this.destroy$)).subscribe(e=>{this.ngZone instanceof De&&De.isInAngularZone()?this.listOfAutoWidth.next(e):this.ngZone.run(()=>this.listOfAutoWidth.next(e))})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Sv),v(De))};static#t=this.\u0275cmp=q({type:t,selectors:[["tr","nz-table-measure-row",""]],viewQuery:function(i,o){if(1&i&&ft(QP,5),2&i){let r;Ae(r=Oe())&&(o.listOfTdElement=r)}},hostAttrs:[1,"ant-table-measure-now"],inputs:{listOfMeasureColumn:"listOfMeasureColumn"},outputs:{listOfAutoWidth:"listOfAutoWidth"},standalone:!0,features:[me],attrs:e0e,decls:2,vars:0,consts:[["tdElement",""],[1,"nz-disable-td",2,"padding","0","border","0","height","0"]],template:function(i,o){1&i&&ji(0,t0e,2,0,"td",1,fr),2&i&&$i(o.listOfMeasureColumn)},encapsulation:2,changeDetection:0})}return t})(),Bc=(()=>{class t{constructor(e){if(this.nzTableStyleService=e,this.isInsideTable=!1,this.showEmpty$=new rt(!1),this.noResult$=new rt(void 0),this.listOfMeasureColumn$=new rt([]),this.destroy$=new N,this.isInsideTable=!!this.nzTableStyleService,this.nzTableStyleService){const{showEmpty$:i,noResult$:o,listOfMeasureColumn$:r}=this.nzTableStyleService;o.pipe(I(this.destroy$)).subscribe(this.noResult$),r.pipe(I(this.destroy$)).subscribe(this.listOfMeasureColumn$),i.pipe(I(this.destroy$)).subscribe(this.showEmpty$)}}onListOfAutoWidthChange(e){this.nzTableStyleService.setListOfAutoWidth(e)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Hc,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["tbody"]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-table-tbody",o.isInsideTable)},standalone:!0,features:[me],ngContentSelectors:Lc,decls:5,vars:6,consts:[["nz-table-fixed-row","",1,"ant-table-placeholder"],["nz-table-measure-row","",3,"listOfMeasureColumn"],["nz-table-measure-row","",3,"listOfAutoWidth","listOfMeasureColumn"],["nzComponentName","table",3,"specificContent"]],template:function(i,o){if(1&i&&(Et(),w(0,i0e,1,1),Fr(1,"async"),bt(2),w(3,o0e,3,3,"tr",0),Fr(4,"async")),2&i){let r;he((r=Rr(1,2,o.listOfMeasureColumn$))?0:-1,r),d(3),he(Rr(4,4,o.showEmpty$)?3:-1)}},dependencies:[qm,F0e,N0e,Y7,$7],encapsulation:2,changeDetection:0})}return t})(),Dv=(()=>{class t{setScrollPositionClassName(e=!1){const{scrollWidth:i,scrollLeft:o,clientWidth:r}=this.tableBodyElement.nativeElement,s="ant-table-ping-left",a="ant-table-ping-right";i===r&&0!==i||e?(this.renderer.removeClass(this.tableMainElement,s),this.renderer.removeClass(this.tableMainElement,a)):0===o?(this.renderer.removeClass(this.tableMainElement,s),this.renderer.addClass(this.tableMainElement,a)):i===o+r?(this.renderer.removeClass(this.tableMainElement,a),this.renderer.addClass(this.tableMainElement,s)):(this.renderer.addClass(this.tableMainElement,s),this.renderer.addClass(this.tableMainElement,a))}constructor(e,i,o,r){this.renderer=e,this.ngZone=i,this.platform=o,this.resizeService=r,this.data=[],this.scrollX=null,this.scrollY=null,this.contentTemplate=null,this.widthConfig=[],this.listOfColWidth=[],this.theadTemplate=null,this.virtualTemplate=null,this.virtualItemSize=0,this.virtualMaxBufferPx=200,this.virtualMinBufferPx=100,this.virtualForTrackBy=s=>s,this.headerStyleMap={},this.bodyStyleMap={},this.verticalScrollBarWidth=0,this.noDataVirtualHeight="182px",this.data$=new N,this.scroll$=new N,this.destroy$=new N}ngOnChanges(e){const{scrollX:i,scrollY:o,data:r}=e;(i||o)&&(this.headerStyleMap={overflowX:"hidden",overflowY:this.scrollY&&0!==this.verticalScrollBarWidth?"scroll":"hidden"},this.bodyStyleMap={overflowY:this.scrollY?"scroll":"hidden",overflowX:this.scrollX?"auto":null,maxHeight:this.scrollY},this.ngZone.runOutsideAngular(()=>this.scroll$.next())),r&&this.ngZone.runOutsideAngular(()=>this.data$.next())}ngAfterViewInit(){this.platform.isBrowser&&this.ngZone.runOutsideAngular(()=>{const e=this.scroll$.pipe(gn(null),w2(0),mn(()=>nn(this.tableBodyElement.nativeElement,"scroll").pipe(gn(!0))),I(this.destroy$));Pn(e,this.resizeService.subscribe().pipe(I(this.destroy$)),this.data$.pipe(I(this.destroy$)),this.scroll$).pipe(gn(!0),w2(0),I(this.destroy$)).subscribe(()=>this.setScrollPositionClassName()),e.pipe(yt(()=>!!this.scrollY)).subscribe(()=>this.tableHeaderElement.nativeElement.scrollLeft=this.tableBodyElement.nativeElement.scrollLeft)})}ngOnDestroy(){this.setScrollPositionClassName(!0),this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(De),v(qn),v(R5))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-inner-scroll"]],viewQuery:function(i,o){if(1&i&&(ft(r0e,5,Te),ft(s0e,5,Te),ft(E1,5,E1)),2&i){let r;Ae(r=Oe())&&(o.tableHeaderElement=r.first),Ae(r=Oe())&&(o.tableBodyElement=r.first),Ae(r=Oe())&&(o.cdkVirtualScrollViewport=r.first)}},hostAttrs:[1,"ant-table-container"],inputs:{data:"data",scrollX:"scrollX",scrollY:"scrollY",contentTemplate:"contentTemplate",widthConfig:"widthConfig",listOfColWidth:"listOfColWidth",theadTemplate:"theadTemplate",virtualTemplate:"virtualTemplate",virtualItemSize:"virtualItemSize",virtualMaxBufferPx:"virtualMaxBufferPx",virtualMinBufferPx:"virtualMinBufferPx",tableMainElement:"tableMainElement",virtualForTrackBy:"virtualForTrackBy",verticalScrollBarWidth:"verticalScrollBarWidth",noDataVirtualHeight:"noDataVirtualHeight"},standalone:!0,features:[ke,me],decls:2,vars:1,consts:[["tableHeaderElement",""],["tableBodyElement",""],[1,"ant-table-content",3,"ngStyle"],[1,"ant-table-header","nz-table-hide-scrollbar",3,"ngStyle"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","theadTemplate"],[1,"ant-table-body",3,"ngStyle"],[3,"itemSize","maxBufferPx","minBufferPx","height"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","contentTemplate"],[3,"itemSize","maxBufferPx","minBufferPx"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth"],[4,"cdkVirtualFor","cdkVirtualForOf","cdkVirtualForTrackBy"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","theadTemplate","contentTemplate"]],template:function(i,o){1&i&&w(0,h0e,5,5)(1,p0e,3,5,"div",2),2&i&&he(o.scrollY?0:1)},dependencies:[aI,ti,w7,$k,Gk,E1,Vn,Bc],encapsulation:2,changeDetection:0})}return t})(),R0e=(()=>{class t{constructor(e){this.templateRef=e}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-virtual-scroll",""]],exportAs:["nzVirtualScroll"],standalone:!0})}return t})(),cI=(()=>{class t{constructor(){this.title=null,this.footer=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-title-footer"]],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-table-title",null!==o.title)("ant-table-footer",null!==o.footer)},inputs:{title:"title",footer:"footer"},standalone:!0,features:[me],decls:2,vars:2,consts:[[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&w(0,f0e,2,1,"ng-container",0)(1,m0e,2,1,"ng-container",0),2&i&&(h("nzStringTemplateOutlet",o.title),d(),h("nzStringTemplateOutlet",o.footer))},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),Y1=(()=>{class t{onPageSizeChange(e){this.nzTableDataService.updatePageSize(e)}onPageIndexChange(e){this.nzTableDataService.updatePageIndex(e)}constructor(e,i,o,r,s,a,c){this.elementRef=e,this.nzResizeObserver=i,this.nzConfigService=o,this.cdr=r,this.nzTableStyleService=s,this.nzTableDataService=a,this.directionality=c,this._nzModuleName="table",this.nzTableLayout="auto",this.nzShowTotal=null,this.nzItemRender=null,this.nzTitle=null,this.nzFooter=null,this.nzNoResult=void 0,this.nzPageSizeOptions=[10,20,30,40,50],this.nzVirtualItemSize=0,this.nzVirtualMaxBufferPx=200,this.nzVirtualMinBufferPx=100,this.nzVirtualForTrackBy=l=>l,this.nzLoadingDelay=0,this.nzPageIndex=1,this.nzPageSize=10,this.nzTotal=0,this.nzWidthConfig=[],this.nzData=[],this.nzCustomColumn=[],this.nzPaginationPosition="bottom",this.nzScroll={x:null,y:null},this.noDataVirtualHeight="182px",this.nzPaginationType="default",this.nzFrontPagination=!0,this.nzTemplateMode=!1,this.nzShowPagination=!0,this.nzLoading=!1,this.nzOuterBordered=!1,this.nzLoadingIndicator=null,this.nzBordered=!1,this.nzSize="default",this.nzShowSizeChanger=!1,this.nzHideOnSinglePage=!1,this.nzShowQuickJumper=!1,this.nzSimple=!1,this.nzPageSizeChange=new H,this.nzPageIndexChange=new H,this.nzQueryParams=new H,this.nzCurrentPageDataChange=new H,this.nzCustomColumnChange=new H,this.data=[],this.scrollX=null,this.scrollY=null,this.theadTemplate=null,this.listOfAutoColWidth=[],this.listOfManualColWidth=[],this.hasFixLeft=!1,this.hasFixRight=!1,this.showPagination=!0,this.destroy$=new N,this.templateMode$=new rt(!1),this.dir="ltr",this.verticalScrollBarWidth=0,this.nzConfigService.getConfigChangeEventForComponent("table").pipe(I(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){const{pageIndexDistinct$:e,pageSizeDistinct$:i,listOfCurrentPageData$:o,total$:r,queryParams$:s,listOfCustomColumn$:a}=this.nzTableDataService,{theadTemplate$:c,hasFixLeft$:l,hasFixRight$:u}=this.nzTableStyleService;this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(p=>{this.dir=p,this.cdr.detectChanges()}),s.pipe(I(this.destroy$)).subscribe(this.nzQueryParams),e.pipe(I(this.destroy$)).subscribe(p=>{p!==this.nzPageIndex&&(this.nzPageIndex=p,this.nzPageIndexChange.next(p))}),i.pipe(I(this.destroy$)).subscribe(p=>{p!==this.nzPageSize&&(this.nzPageSize=p,this.nzPageSizeChange.next(p))}),r.pipe(I(this.destroy$),yt(()=>this.nzFrontPagination)).subscribe(p=>{p!==this.nzTotal&&(this.nzTotal=p,this.cdr.markForCheck())}),o.pipe(I(this.destroy$)).subscribe(p=>{this.data=p,this.nzCurrentPageDataChange.next(p),this.cdr.markForCheck()}),a.pipe(I(this.destroy$)).subscribe(p=>{this.nzCustomColumn=p,this.nzCustomColumnChange.next(p),this.cdr.markForCheck()}),c.pipe(I(this.destroy$)).subscribe(p=>{this.theadTemplate=p,this.cdr.markForCheck()}),l.pipe(I(this.destroy$)).subscribe(p=>{this.hasFixLeft=p,this.cdr.markForCheck()}),u.pipe(I(this.destroy$)).subscribe(p=>{this.hasFixRight=p,this.cdr.markForCheck()}),xi([r,this.templateMode$]).pipe(Ie(([p,_])=>0===p&&!_),I(this.destroy$)).subscribe(p=>{this.nzTableStyleService.setShowEmpty(p)}),this.verticalScrollBarWidth=function pne(t="vertical",n="ant"){if(typeof document>"u"||typeof window>"u")return 0;const e="vertical"===t;if(e&&q5)return q5;if(!e&&K5)return K5;const i=document.createElement("div");Object.keys(_E).forEach(r=>{i.style[r]=_E[r]}),i.className=`${n}-hide-scrollbar scroll-div-append-to-body`,e?i.style.overflowY="scroll":i.style.overflowX="scroll",document.body.appendChild(i);let o=0;return e?(o=i.offsetWidth-i.clientWidth,q5=o):(o=i.offsetHeight-i.clientHeight,K5=o),document.body.removeChild(i),o}("vertical"),this.nzTableStyleService.listOfListOfThWidthPx$.pipe(I(this.destroy$)).subscribe(p=>{this.listOfAutoColWidth=p,this.cdr.markForCheck()}),this.nzTableStyleService.manualWidthConfigPx$.pipe(I(this.destroy$)).subscribe(p=>{this.listOfManualColWidth=p,this.cdr.markForCheck()})}ngOnChanges(e){const{nzScroll:i,nzPageIndex:o,nzPageSize:r,nzFrontPagination:s,nzData:a,nzCustomColumn:c,nzWidthConfig:l,nzNoResult:u,nzTemplateMode:p}=e;o&&this.nzTableDataService.updatePageIndex(this.nzPageIndex),r&&this.nzTableDataService.updatePageSize(this.nzPageSize),a&&(this.nzData=this.nzData||[],this.nzTableDataService.updateListOfData(this.nzData)),c&&(this.nzCustomColumn=this.nzCustomColumn||[],this.nzTableDataService.updateListOfCustomColumn(this.nzCustomColumn)),s&&this.nzTableDataService.updateFrontPagination(this.nzFrontPagination),i&&this.setScrollOnChanges(),l&&this.nzTableStyleService.setTableWidthConfig(this.nzWidthConfig),p&&this.templateMode$.next(this.nzTemplateMode),u&&this.nzTableStyleService.setNoResult(this.nzNoResult),this.updateShowPagination()}ngAfterViewInit(){this.nzResizeObserver.observe(this.elementRef).pipe(Ie(([e])=>{const{width:i}=e.target.getBoundingClientRect();return Math.floor(i-(this.scrollY?this.verticalScrollBarWidth:0))}),I(this.destroy$)).subscribe(this.nzTableStyleService.hostWidth$),this.nzTableInnerScrollComponent&&this.nzTableInnerScrollComponent.cdkVirtualScrollViewport&&(this.cdkVirtualScrollViewport=this.nzTableInnerScrollComponent.cdkVirtualScrollViewport)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setScrollOnChanges(){this.scrollX=this.nzScroll&&this.nzScroll.x||null,this.scrollY=this.nzScroll&&this.nzScroll.y||null,this.nzTableStyleService.setScroll(this.scrollX,this.scrollY)}updateShowPagination(){this.showPagination=this.nzHideOnSinglePage&&this.nzData.length>this.nzPageSize||this.nzData.length>0&&!this.nzHideOnSinglePage||!this.nzFrontPagination&&this.nzTotal>this.nzPageSize}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Sv),v(si),v(Ue),v(Hc),v(Mv),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table"]],contentQueries:function(i,o,r){if(1&i&&fn(r,R0e,5),2&i){let s;Ae(s=Oe())&&(o.nzVirtualScrollDirective=s.first)}},viewQuery:function(i,o){if(1&i&&ft(Dv,5),2&i){let r;Ae(r=Oe())&&(o.nzTableInnerScrollComponent=r.first)}},hostAttrs:[1,"ant-table-wrapper"],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-table-wrapper-rtl","rtl"===o.dir)("ant-table-custom-column",o.nzCustomColumn.length)},inputs:{nzTableLayout:"nzTableLayout",nzShowTotal:"nzShowTotal",nzItemRender:"nzItemRender",nzTitle:"nzTitle",nzFooter:"nzFooter",nzNoResult:"nzNoResult",nzPageSizeOptions:"nzPageSizeOptions",nzVirtualItemSize:"nzVirtualItemSize",nzVirtualMaxBufferPx:"nzVirtualMaxBufferPx",nzVirtualMinBufferPx:"nzVirtualMinBufferPx",nzVirtualForTrackBy:"nzVirtualForTrackBy",nzLoadingDelay:"nzLoadingDelay",nzPageIndex:"nzPageIndex",nzPageSize:"nzPageSize",nzTotal:"nzTotal",nzWidthConfig:"nzWidthConfig",nzData:"nzData",nzCustomColumn:"nzCustomColumn",nzPaginationPosition:"nzPaginationPosition",nzScroll:"nzScroll",noDataVirtualHeight:"noDataVirtualHeight",nzPaginationType:"nzPaginationType",nzFrontPagination:[2,"nzFrontPagination","nzFrontPagination",O],nzTemplateMode:[2,"nzTemplateMode","nzTemplateMode",O],nzShowPagination:[2,"nzShowPagination","nzShowPagination",O],nzLoading:[2,"nzLoading","nzLoading",O],nzOuterBordered:[2,"nzOuterBordered","nzOuterBordered",O],nzLoadingIndicator:"nzLoadingIndicator",nzBordered:[2,"nzBordered","nzBordered",O],nzSize:"nzSize",nzShowSizeChanger:[2,"nzShowSizeChanger","nzShowSizeChanger",O],nzHideOnSinglePage:[2,"nzHideOnSinglePage","nzHideOnSinglePage",O],nzShowQuickJumper:[2,"nzShowQuickJumper","nzShowQuickJumper",O],nzSimple:[2,"nzSimple","nzSimple",O]},outputs:{nzPageSizeChange:"nzPageSizeChange",nzPageIndexChange:"nzPageIndexChange",nzQueryParams:"nzQueryParams",nzCurrentPageDataChange:"nzCurrentPageDataChange",nzCustomColumnChange:"nzCustomColumnChange"},exportAs:["nzTable"],standalone:!0,features:[et([Hc,Mv]),je,ke,me],ngContentSelectors:Lc,decls:13,vars:26,consts:[["tableMainElement",""],["paginationTemplate",""],["contentTemplate",""],[3,"nzDelay","nzSpinning","nzIndicator"],[3,"ngTemplateOutlet"],[1,"ant-table"],[3,"title"],[3,"data","scrollX","scrollY","contentTemplate","listOfColWidth","theadTemplate","verticalScrollBarWidth","virtualTemplate","virtualItemSize","virtualMaxBufferPx","virtualMinBufferPx","tableMainElement","virtualForTrackBy","noDataVirtualHeight"],[3,"tableLayout","listOfColWidth","theadTemplate","contentTemplate"],[3,"footer"],[1,"ant-table-pagination","ant-table-pagination-right",3,"hidden","nzShowSizeChanger","nzPageSizeOptions","nzItemRender","nzShowQuickJumper","nzHideOnSinglePage","nzShowTotal","nzSize","nzPageSize","nzTotal","nzSimple","nzPageIndex"],[1,"ant-table-pagination","ant-table-pagination-right",3,"nzPageSizeChange","nzPageIndexChange","hidden","nzShowSizeChanger","nzPageSizeOptions","nzItemRender","nzShowQuickJumper","nzHideOnSinglePage","nzShowTotal","nzSize","nzPageSize","nzTotal","nzSimple","nzPageIndex"]],template:function(i,o){1&i&&(Et(),f(0,"nz-spin",3),w(1,v0e,1,1,null,4),f(2,"div",5,0),w(4,_0e,1,1,"nz-table-title-footer",6)(5,b0e,1,14,"nz-table-inner-scroll",7)(6,y0e,1,4,"nz-table-inner-default",8)(7,C0e,1,1,"nz-table-title-footer",9),m(),w(8,z0e,1,1,null,4),m(),w(9,T0e,1,1,"ng-template",null,1,ot)(11,M0e,1,0,"ng-template",null,2,ot)),2&i&&(h("nzDelay",o.nzLoadingDelay)("nzSpinning",o.nzLoading)("nzIndicator",o.nzLoadingIndicator),d(),he("both"===o.nzPaginationPosition||"top"===o.nzPaginationPosition?1:-1),d(),Q("ant-table-rtl","rtl"===o.dir)("ant-table-fixed-header",o.nzData.length&&o.scrollY)("ant-table-fixed-column",o.scrollX)("ant-table-has-fix-left",o.hasFixLeft)("ant-table-has-fix-right",o.hasFixRight)("ant-table-bordered",o.nzBordered)("nz-table-out-bordered",o.nzOuterBordered&&!o.nzBordered)("ant-table-middle","middle"===o.nzSize)("ant-table-small","small"===o.nzSize),d(2),he(o.nzTitle?4:-1),d(),he(o.scrollY||o.scrollX?5:6),d(2),he(o.nzFooter?7:-1),d(),he("both"===o.nzPaginationPosition||"bottom"===o.nzPaginationPosition?8:-1))},dependencies:[ZP,Vn,cI,Dv,V0e,a4e,KP],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzLoadingIndicator",void 0),kt([Nt()],t.prototype,"nzBordered",void 0),kt([Nt()],t.prototype,"nzSize",void 0),kt([Nt()],t.prototype,"nzShowSizeChanger",void 0),kt([Nt()],t.prototype,"nzHideOnSinglePage",void 0),kt([Nt()],t.prototype,"nzShowQuickJumper",void 0),kt([Nt()],t.prototype,"nzSimple",void 0),t})(),U1=(()=>{class t{constructor(e){this.nzTableStyleService=e,this.destroy$=new N,this.listOfFixedColumns$=new fi(1),this.listOfColumns$=new fi(1),this.listOfFixedColumnsChanges$=this.listOfFixedColumns$.pipe(mn(i=>Pn(this.listOfFixedColumns$,...i.map(o=>o.changes$)).pipe($n(()=>this.listOfFixedColumns$))),I(this.destroy$)),this.listOfFixedLeftColumnChanges$=this.listOfFixedColumnsChanges$.pipe(Ie(i=>i.filter(o=>!1!==o.nzLeft))),this.listOfFixedRightColumnChanges$=this.listOfFixedColumnsChanges$.pipe(Ie(i=>i.filter(o=>!1!==o.nzRight))),this.listOfColumnsChanges$=this.listOfColumns$.pipe(mn(i=>Pn(this.listOfColumns$,...i.map(o=>o.changes$)).pipe($n(()=>this.listOfColumns$))),I(this.destroy$)),this.isInsideTable=!1,this.isInsideTable=!!e}ngAfterContentInit(){this.nzTableStyleService&&(this.listOfCellFixedDirective.changes.pipe(gn(this.listOfCellFixedDirective),I(this.destroy$)).subscribe(this.listOfFixedColumns$),this.listOfNzThDirective.changes.pipe(gn(this.listOfNzThDirective),I(this.destroy$)).subscribe(this.listOfColumns$),this.listOfFixedLeftColumnChanges$.subscribe(e=>{e.forEach(i=>i.setIsLastLeft(i===e[e.length-1]))}),this.listOfFixedRightColumnChanges$.subscribe(e=>{e.forEach(i=>i.setIsFirstRight(i===e[0]))}),xi([this.nzTableStyleService.listOfListOfThWidth$,this.listOfFixedLeftColumnChanges$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{i.forEach((o,r)=>{if(o.isAutoLeft){const a=i.slice(0,r).reduce((l,u)=>l+(u.colspan||u.colSpan||1),0),c=e.slice(0,a).reduce((l,u)=>l+u,0);o.setAutoLeftWidth(`${c}px`)}})}),xi([this.nzTableStyleService.listOfListOfThWidth$,this.listOfFixedRightColumnChanges$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{i.forEach((o,r)=>{const s=i[i.length-r-1];if(s.isAutoRight){const c=i.slice(i.length-r,i.length).reduce((u,p)=>u+(p.colspan||p.colSpan||1),0),l=e.slice(e.length-c,e.length).reduce((u,p)=>u+p,0);s.setAutoRightWidth(`${l}px`)}})}))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Hc,8))};static#t=this.\u0275dir=de({type:t,selectors:[["tr",3,"mat-row","",3,"mat-header-row","",3,"nz-table-measure-row","",3,"nzExpand","",3,"nz-table-fixed-row",""]],contentQueries:function(i,o,r){if(1&i&&(fn(r,$1,4),fn(r,I0e,4)),2&i){let s;Ae(s=Oe())&&(o.listOfNzThDirective=s),Ae(s=Oe())&&(o.listOfCellFixedDirective=s)}},hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-table-row",o.isInsideTable)},standalone:!0})}return t})(),V2=(()=>{class t{constructor(e,i,o,r){this.elementRef=e,this.renderer=i,this.nzTableStyleService=o,this.nzTableDataService=r,this.destroy$=new N,this.isInsideTable=!1,this.nzSortOrderChange=new H,this.isInsideTable=!!this.nzTableStyleService}ngOnInit(){this.nzTableStyleService&&this.nzTableStyleService.setTheadTemplate(this.templateRef)}ngAfterContentInit(){if(this.nzTableStyleService){const e=this.listOfNzTrDirective.changes.pipe(gn(this.listOfNzTrDirective),Ie(s=>s&&s.first)),i=e.pipe(mn(s=>s?s.listOfColumnsChanges$:bo),I(this.destroy$));i.subscribe(s=>this.nzTableStyleService.setListOfTh(s)),this.nzTableStyleService.enableAutoMeasure$.pipe(mn(s=>s?i:We([]))).pipe(I(this.destroy$)).subscribe(s=>this.nzTableStyleService.setListOfMeasureColumn(s));const o=e.pipe(mn(s=>s?s.listOfFixedLeftColumnChanges$:bo),I(this.destroy$)),r=e.pipe(mn(s=>s?s.listOfFixedRightColumnChanges$:bo),I(this.destroy$));o.subscribe(s=>{this.nzTableStyleService.setHasFixLeft(0!==s.length)}),r.subscribe(s=>{this.nzTableStyleService.setHasFixRight(0!==s.length)})}if(this.nzTableDataService){const e=this.listOfNzThAddOnComponent.changes.pipe(gn(this.listOfNzThAddOnComponent));e.pipe(mn(()=>Pn(...this.listOfNzThAddOnComponent.map(r=>r.manualClickOrder$))),I(this.destroy$)).subscribe(r=>{this.nzSortOrderChange.emit({key:r.nzColumnKey,value:r.sortOrder}),r.nzSortFn&&!1===r.nzSortPriority&&this.listOfNzThAddOnComponent.filter(a=>a!==r).forEach(a=>a.clearSortOrder())}),e.pipe(mn(r=>Pn(e,...r.map(s=>s.calcOperatorChange$)).pipe($n(()=>e))),Ie(r=>r.filter(s=>!!s.nzSortFn||!!s.nzFilterFn).map(s=>{const{nzSortFn:a,sortOrder:c,nzFilterFn:l,nzFilterValue:u,nzSortPriority:p,nzColumnKey:_}=s;return{key:_,sortFn:a,sortPriority:p,sortOrder:c,filterFn:l,filterValue:u}})),w2(0),I(this.destroy$)).subscribe(r=>{this.nzTableDataService.listOfCalcOperator$.next(r)})}}ngAfterViewInit(){this.nzTableStyleService&&this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(Hc,8),v(Mv,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["thead",9,"ant-table-thead"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,U1,5),fn(r,rI,5)),2&i){let s;Ae(s=Oe())&&(o.listOfNzTrDirective=s),Ae(s=Oe())&&(o.listOfNzThAddOnComponent=s)}},viewQuery:function(i,o){if(1&i&&ft(D0e,7),2&i){let r;Ae(r=Oe())&&(o.templateRef=r.first)}},outputs:{nzSortOrderChange:"nzSortOrderChange"},standalone:!0,features:[me],ngContentSelectors:Lc,decls:3,vars:1,consts:[["contentTemplate",""],[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&(Et(),w(0,x0e,1,0,"ng-template",null,0,ot)(2,k0e,1,1,null,1)),2&i&&(d(2),he(o.isInsideTable?-1:2))},dependencies:[Vn],encapsulation:2,changeDetection:0})}return t})(),L0e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Y1,rI,oI,Bc,cI,Dv,iI,tI,nI,eI,sI]})}return t})();function H0e(t,n){if(1&t&&(f(0,"div"),C(1),m()),2&t){const e=g().$implicit;d(),x(e.desc)}}function B0e(t,n){if(1&t){const e=U();f(0,"input",14),Oi("ngModelChange",function(o){T(e);const r=g().$implicit;return Yi(r.desc,o)||(r.desc=o),M(o)}),m()}2&t&&Ai("ngModel",g().$implicit.desc)}function j0e(t,n){if(1&t){const e=U();f(0,"div")(1,"a",15),D("nzOnConfirm",function(){T(e);const o=g().index;return M(g().handleDelete(o))}),f(2,"a"),C(3),m()()()}if(2&t){const e=g(2);d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(2),x(e.$t("_del"))}}function $0e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",6)(2,"input",7),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.name,o)||(r.name=o),M(o)}),m()(),f(3,"td",8)(4,"input",9),D("change",function(o){const r=T(e).index;return M(g().onColorChange(o,r))}),m(),C(5),m(),f(6,"td",10),C(7),m(),f(8,"td",11),w(9,H0e,2,1,"div",12)(10,B0e,1,1,"input",13),m(),f(11,"td"),w(12,j0e,4,2,"div",12),m()()}if(2&t){const e=n.$implicit;d(2),Ai("ngModel",e.name),d(2),h("value",e.color),d(),Ce(" - ",e.color," "),d(2),x(e.createdAt),d(2),h("ngIf",e.isInner),d(),h("ngIf",!e.isInner),d(2),h("ngIf",!e.isInner)}}let Y0e=(()=>{class t{constructor(e,i){this.message=e,this.modal=i,this.$t=_e,this.tagList=h3,this.submitting=!1,this.incrementId=Math.max(...h3.map(o=>o.id))+100}ngOnInit(){}onColorChange(e,i){this.tagList[i].color=e.target.value}handleAdd(){this.incrementId+=1,this.tagList.unshift({id:this.incrementId,name:"",createdAt:"",color:"#f50000",desc:"",isInner:!1})}handleDelete(e){this.tagList.splice(e,1)}handleSubmit(){if(this.submitting)return;const e={};this.tagList.forEach(i=>{i.name?.trim?.()&&(e[i.name]={...i,name:void 0})}),Object.keys(e).length===this.tagList.length?this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{this.submitting=!0,vc({message:"Update Tag",content:JSON.stringify(this.tagList),path:"data/tag.json"}).then(()=>{this.message.success(_e("_saveSuccess"))}).finally(()=>{this.submitting=!1})}}):this.message.error(_e("_repeatAdd"))}trackByItem(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(za))};static#t=this.\u0275cmp=q({type:t,selectors:[["system-tag"]],decls:23,vars:13,consts:[["basicTable",""],["nz-button","",1,"add-btn",3,"click","nzLoading"],["nz-button","","nzType","primary",3,"click","nzLoading"],[1,"mb12"],[3,"nzData"],[4,"ngFor","ngForOf","ngForTrackBy"],["width","150px"],["nz-input","","maxlength","10",3,"ngModelChange","ngModel"],["width","160px"],["type","color",3,"change","value"],["width","220px"],["width","200px"],[4,"ngIf"],["nz-input","","maxlength","20",3,"ngModel","ngModelChange",4,"ngIf"],["nz-input","","maxlength","20",3,"ngModelChange","ngModel"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"]],template:function(i,o){if(1&i){const r=U();f(0,"button",1),D("click",function(){return T(r),M(o.handleAdd())}),C(1),m(),f(2,"button",2),D("click",function(){return T(r),M(o.handleSubmit())}),C(3),m(),f(4,"div",3)(5,"b"),C(6),m()(),f(7,"nz-table",4,0)(9,"thead")(10,"tr")(11,"th"),C(12),m(),f(13,"th"),C(14),m(),f(15,"th"),C(16),m(),f(17,"th"),C(18),m(),f(19,"th"),C(20),m()()(),f(21,"tbody"),w(22,$0e,13,7,"tr",5),m()()}2&i&&(h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_addRow"),"\n"),d(),h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_save"),"\n"),d(3),x(o.$t("_buildTip")),d(),h("nzData",o.tagList),d(5),x(o.$t("_tagName")),d(2),x(o.$t("_color")),d(2),x(o.$t("_createAt")),d(2),x(o.$t("_remark")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.tagList)("ngForTrackBy",o.trackByItem))},dependencies:[zn,Tt,Ws,nr,mi,tr,Cr,Qi,P2,B1,Y1,N2,$1,V2,Bc,U1,Xi],styles:[".add-btn[_ngcontent-%COMP%]{margin-bottom:20px;margin-right:20px}"]})}return t})();const U0e=["switchElement"];function W0e(t,n){1&t&&S(0,"span",8)}function G0e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzCheckedChildren)}}function q0e(t,n){if(1&t&&($e(0),w(1,G0e,2,1,"ng-container",9),Ye()),2&t){const e=g();d(),h("nzStringTemplateOutlet",e.nzCheckedChildren)}}function K0e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzUnCheckedChildren)}}function J0e(t,n){1&t&&w(0,K0e,2,1,"ng-container",9),2&t&&h("nzStringTemplateOutlet",g().nzUnCheckedChildren)}let N6=(()=>{class t{updateValue(e){this.isChecked!==e&&(this.isChecked=e,this.onChange(this.isChecked))}focus(){this.focusMonitor.focusVia(this.switchElement.nativeElement,"keyboard")}blur(){this.switchElement.nativeElement.blur()}constructor(e,i,o,r,s,a){this.nzConfigService=e,this.host=i,this.ngZone=o,this.cdr=r,this.focusMonitor=s,this.directionality=a,this._nzModuleName="switch",this.isChecked=!1,this.onChange=()=>{},this.onTouched=()=>{},this.nzLoading=!1,this.nzDisabled=!1,this.nzControl=!1,this.nzCheckedChildren=null,this.nzUnCheckedChildren=null,this.nzSize="default",this.nzId=null,this.dir="ltr",this.destroy$=new N,this.isNzDisableFirstChange=!0}ngOnInit(){this.directionality.change.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>{nn(this.host.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.preventDefault(),!(this.nzControl||this.nzDisabled||this.nzLoading)&&this.ngZone.run(()=>{this.updateValue(!this.isChecked),this.cdr.markForCheck()})}),nn(this.switchElement.nativeElement,"keydown").pipe(I(this.destroy$)).subscribe(e=>{if(this.nzControl||this.nzDisabled||this.nzLoading)return;const{keyCode:i}=e;37!==i&&39!==i&&32!==i&&13!==i||(e.preventDefault(),this.ngZone.run(()=>{37===i?this.updateValue(!1):39===i?this.updateValue(!0):(32===i||13===i)&&this.updateValue(!this.isChecked),this.cdr.markForCheck()}))})})}ngAfterViewInit(){this.focusMonitor.monitor(this.switchElement.nativeElement,!0).pipe(I(this.destroy$)).subscribe(e=>{e||Promise.resolve().then(()=>this.onTouched())})}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.switchElement.nativeElement),this.destroy$.next(),this.destroy$.complete()}writeValue(e){this.isChecked=e,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Te),v(De),v(Ue),v(Ca),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-switch"]],viewQuery:function(i,o){if(1&i&&ft(U0e,7),2&i){let r;Ae(r=Oe())&&(o.switchElement=r.first)}},inputs:{nzLoading:[2,"nzLoading","nzLoading",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzControl:[2,"nzControl","nzControl",O],nzCheckedChildren:"nzCheckedChildren",nzUnCheckedChildren:"nzUnCheckedChildren",nzSize:"nzSize",nzId:"nzId"},exportAs:["nzSwitch"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,me],decls:9,vars:16,consts:[["switchElement",""],["uncheckTemplate",""],["nz-wave","","type","button",1,"ant-switch",3,"disabled","nzWaveExtraNode"],[1,"ant-switch-handle"],["nz-icon","","nzType","loading","class","ant-switch-loading-icon",4,"ngIf"],[1,"ant-switch-inner"],[4,"ngIf","ngIfElse"],[1,"ant-click-animating-node"],["nz-icon","","nzType","loading",1,"ant-switch-loading-icon"],[4,"nzStringTemplateOutlet"]],template:function(i,o){if(1&i&&(f(0,"button",2,0)(2,"span",3),w(3,W0e,1,0,"span",4),m(),f(4,"span",5),w(5,q0e,2,1,"ng-container",6)(6,J0e,1,1,"ng-template",null,1,ot),m(),S(8,"div",7),m()),2&i){const r=He(7);Q("ant-switch-checked",o.isChecked)("ant-switch-loading",o.nzLoading)("ant-switch-disabled",o.nzDisabled)("ant-switch-small","small"===o.nzSize)("ant-switch-rtl","rtl"===o.dir),h("disabled",o.nzDisabled)("nzWaveExtraNode",!0),Pt("id",o.nzId),d(3),h("ngIf",o.nzLoading),d(2),h("ngIf",o.isChecked)("ngIfElse",r)}},dependencies:[pA,tr,On,cn,Tt,Tn,Sn],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzSize",void 0),t})(),Q0e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[N6]})}return t})();function X0e(t,n){1&t&&S(0,"i",4),2&t&&h("title",g().$t("_upload"))}function e3e(t,n){1&t&&S(0,"i",5),2&t&&h("nzType","loading")}let dI=(()=>{class t{constructor(e){this.message=e,this.onChange=new H,this.$t=_e,this.uploading=!1,this.id=`f${Date.now()}`}onChangeFile(e){if(this.uploading)return;const{files:i}=e.target;if(i.length<=0)return;const o=i[0];if(!o.type.startsWith("image"))return this.message.error(_e("_notUpload"));this.onUpload(o).finally(()=>{e.target.value=""})}onUpload(e){const i=this;return new Promise((o,r)=>{const s=new FileReader;s.readAsDataURL(e),s.onerror=r,s.onload=function(){i.uploading=!0;const c=this.result.split(",")[1],l=`nav-${Date.now()}-${e.name}`;Zx({branch:"image",message:"create image",content:c,isEncode:!1,path:l}).then(()=>{const u={rawPath:l,cdn:Qx(l)};i.onChange.emit(u),i.message.success(_e("_uploadSuccess")),o(u)}).catch(r).finally(()=>{i.uploading=!1})}})}static#e=this.\u0275fac=function(i){return new(i||t)(v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-upload"]],outputs:{onChange:"onChange"},decls:4,vars:4,consts:[[1,"file",3,"id"],["nz-icon","","nzType","upload","nzTheme","outline","class","cursor-pointer",3,"title",4,"ngIf"],["nz-icon","",3,"nzType",4,"ngIf"],["type","file","accept","image/*",1,"file-upload",3,"change","name"],["nz-icon","","nzType","upload","nzTheme","outline",1,"cursor-pointer",3,"title"],["nz-icon","",3,"nzType"]],template:function(i,o){1&i&&(f(0,"label",0),w(1,X0e,1,1,"i",1)(2,e3e,1,1,"i",2),f(3,"input",3),D("change",function(s){return o.onChangeFile(s)}),m()()),2&i&&(h("id",o.id),d(),h("ngIf",!o.uploading),d(),h("ngIf",o.uploading),d(),h("name",o.id))},dependencies:[Tt,mi,cn],styles:[".file[_ngcontent-%COMP%] .file-upload[_ngcontent-%COMP%]{display:none}"]})}return t})();function t3e(t,n){if(1&t){const e=U();f(0,"input",20),Oi("ngModelChange",function(o){T(e);const r=g().$implicit;return Yi(r.url,o)||(r.url=o),M(o)}),m()}2&t&&Ai("ngModel",g().$implicit.url)}function n3e(t,n){1&t&&S(0,"img",21),2&t&&h("src",g().$implicit.icon,Ot)}function i3e(t,n){if(1&t){const e=U();f(0,"div")(1,"a",22),D("nzOnConfirm",function(){T(e);const o=g().index;return M(g().handleDelete(o))}),f(2,"a"),C(3),m()()()}if(2&t){const e=g(2);d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(2),x(e.$t("_del"))}}function o3e(t,n){if(1&t){const e=U();f(0,"tr",7)(1,"td",8)(2,"input",9),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.name,o)||(r.name=o),M(o)}),m()(),f(3,"td",10),w(4,t3e,1,1,"input",11),m(),f(5,"td",12),w(6,n3e,1,1,"img",13),f(7,"input",14),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.icon,o)||(r.icon=o),M(o)}),m(),f(8,"app-upload",15),D("onChange",function(o){const r=T(e).index;return M(g().onChangeUpload(o,r))}),m()(),f(9,"td",10)(10,"input",16),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.placeholder,o)||(r.placeholder=o),M(o)}),m()(),f(11,"td",17)(12,"nz-switch",18),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.blocked,o)||(r.blocked=o),M(o)}),m()(),f(13,"td"),w(14,i3e,4,2,"div",19),m()()}if(2&t){const e=n.$implicit;d(2),Ai("ngModel",e.name),d(2),h("ngIf",!e.isInner),d(2),h("ngIf",e.icon),d(),Ai("ngModel",e.icon),d(3),Ai("ngModel",e.placeholder),d(2),Ai("ngModel",e.blocked),d(2),h("ngIf",!e.isInner)}}let r3e=(()=>{class t{constructor(e,i){this.message=e,this.modal=i,this.$t=_e,this.searchList=x5,this.submitting=!1}handleAdd(){this.searchList.unshift({name:"",url:"",icon:"",placeholder:"",blocked:!1,isInner:!1})}handleDelete(e){this.searchList.splice(e,1)}handleSubmit(){this.submitting||this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{const e={};this.searchList.forEach(i=>{i.name.trim()&&(e[i.name]=null)}),Object.keys(e).length===this.searchList.length?(this.submitting=!0,vc({message:"Update Search",content:JSON.stringify(this.searchList,null,2),path:"data/search.json"}).then(()=>{this.message.success(_e("_saveSuccess"))}).finally(()=>{this.submitting=!1})):this.message.error(_e("_repeatAdd"))}})}onChangeUpload(e,i){this.searchList[i].icon=e.cdn}onDrop(e){xc(this.searchList,e.previousIndex,e.currentIndex)}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(za))};static#t=this.\u0275cmp=q({type:t,selectors:[["system-tag"]],decls:25,vars:13,consts:[["basicTable",""],["nz-button","",1,"add-btn",3,"click","nzLoading"],["nz-button","","nzType","primary",3,"click","nzLoading"],[1,"mb12"],[3,"nzData"],["cdkDropList","",3,"cdkDropListDropped"],["cdkDrag","",4,"ngFor","ngForOf"],["cdkDrag",""],["width","150px"],["nz-input","","maxlength","10",3,"ngModelChange","ngModel"],["width","220px"],["nz-input","",3,"ngModel","ngModelChange",4,"ngIf"],["width","260px",1,"nowrap"],["class","icon",3,"src",4,"ngIf"],["nz-input","","type","text",2,"width","180px",3,"ngModelChange","ngModel"],[3,"onChange"],["nz-input","","maxlength","50",3,"ngModelChange","ngModel"],["width","100px"],[3,"ngModelChange","ngModel"],[4,"ngIf"],["nz-input","",3,"ngModelChange","ngModel"],[1,"icon",3,"src"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"]],template:function(i,o){if(1&i){const r=U();f(0,"button",1),D("click",function(){return T(r),M(o.handleAdd())}),C(1),m(),f(2,"button",2),D("click",function(){return T(r),M(o.handleSubmit())}),C(3),m(),f(4,"div",3)(5,"b"),C(6),m()(),f(7,"nz-table",4,0)(9,"thead")(10,"tr")(11,"th"),C(12),m(),f(13,"th"),C(14),m(),f(15,"th"),C(16),m(),f(17,"th"),C(18),m(),f(19,"th"),C(20),m(),f(21,"th"),C(22),m()()(),f(23,"tbody",5),D("cdkDropListDropped",function(a){return T(r),M(o.onDrop(a))}),w(24,o3e,15,7,"tr",6),m()()}2&i&&(h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_addRow"),"\n"),d(),h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_save"),"\n"),d(3),x(o.$t("_buildTip")),d(),h("nzData",o.searchList),d(5),x(o.$t("_engineName")),d(2),x(o.$t("_engineUrl")),d(2),x(o.$t("_icon")),d(2),x(o.$t("_desc")),d(2),x(o.$t("_isDisable")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.searchList))},dependencies:[zn,Tt,Ws,nr,mi,tr,Cr,Qi,P2,B1,Y1,N2,$1,V2,Bc,U1,N6,o6,_2,Xi,dI],styles:[".add-btn[_ngcontent-%COMP%]{margin-bottom:20px;margin-right:20px}.icon[_ngcontent-%COMP%]{width:30px;height:30px;margin-right:10px;object-fit:cover} #file{vertical-align:middle;margin-left:10px} #file .anticon{font-size:20px}"]})}return t})();const xv=["*"],s3e=t=>[t],a3e=t=>({$implicit:t});function c3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.innerTip)}}function l3e(t,n){if(1&t&&(f(0,"div",2)(1,"div",4),w(2,c3e,2,1,"ng-container",5),m()()),2&t){const e=g();h("@helpMotion",void 0),d(),h("ngClass",mr(4,s3e,"ant-form-item-explain-"+e.status)),d(),h("nzStringTemplateOutlet",e.innerTip)("nzStringTemplateOutletContext",mr(6,a3e,e.validateControl))}}function d3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzExtra)}}function u3e(t,n){if(1&t&&(f(0,"div",3),w(1,d3e,2,1,"ng-container",6),m()),2&t){const e=g();d(),h("nzStringTemplateOutlet",e.nzExtra)}}function h3e(t,n){if(1&t&&($e(0),S(1,"span",2),Ye()),2&t){const e=n.$implicit,i=g(2);d(),h("nzType",e)("nzTheme",i.tooltipIcon.theme)}}function p3e(t,n){if(1&t&&(f(0,"span",0),w(1,h3e,2,2,"ng-container",1),m()),2&t){const e=g();h("nzTooltipTitle",e.nzTooltipTitle),d(),h("nzStringTemplateOutlet",e.tooltipIcon.type)}}let V6=(()=>{class t{setWithHelpViaTips(e){this.withHelpClass=e,this.cdr.markForCheck()}setStatus(e){this.status=e,this.cdr.markForCheck()}setHasFeedback(e){this.hasFeedback=e,this.cdr.markForCheck()}constructor(e){this.cdr=e,this.status="",this.hasFeedback=!1,this.withHelpClass=!1,this.destroy$=new N}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-form-item"]],hostAttrs:[1,"ant-form-item"],hostVars:12,hostBindings:function(i,o){2&i&&Q("ant-form-item-has-success","success"===o.status)("ant-form-item-has-warning","warning"===o.status)("ant-form-item-has-error","error"===o.status)("ant-form-item-is-validating","validating"===o.status)("ant-form-item-has-feedback",o.hasFeedback&&o.status)("ant-form-item-with-help",o.withHelpClass)},exportAs:["nzFormItem"],standalone:!0,features:[me],ngContentSelectors:xv,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})();const Ev={type:"question-circle",theme:"outline"};let F2=(()=>{class t{getInputObservable(e){return this.inputChanges$.pipe(yt(i=>e in i),Ie(i=>i[e]))}constructor(e,i){this.nzConfigService=e,this.directionality=i,this._nzModuleName="form",this.nzLayout="horizontal",this.nzNoColon=!1,this.nzAutoTips={},this.nzDisableAutoTips=!1,this.nzTooltipIcon=Ev,this.nzLabelAlign="right",this.nzLabelWrap=!1,this.dir="ltr",this.destroy$=new N,this.inputChanges$=new N,this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(o=>{this.dir=o})}ngOnChanges(e){this.inputChanges$.next(e)}ngOnDestroy(){this.inputChanges$.complete(),this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-form",""]],hostAttrs:[1,"ant-form"],hostVars:8,hostBindings:function(i,o){2&i&&Q("ant-form-horizontal","horizontal"===o.nzLayout)("ant-form-vertical","vertical"===o.nzLayout)("ant-form-inline","inline"===o.nzLayout)("ant-form-rtl","rtl"===o.dir)},inputs:{nzLayout:"nzLayout",nzNoColon:[2,"nzNoColon","nzNoColon",O],nzAutoTips:"nzAutoTips",nzDisableAutoTips:[2,"nzDisableAutoTips","nzDisableAutoTips",O],nzTooltipIcon:"nzTooltipIcon",nzLabelAlign:"nzLabelAlign",nzLabelWrap:[2,"nzLabelWrap","nzLabelWrap",O]},exportAs:["nzForm"],standalone:!0,features:[je,ke]})}return kt([Nt()],t.prototype,"nzNoColon",void 0),kt([Nt()],t.prototype,"nzAutoTips",void 0),kt([Nt()],t.prototype,"nzTooltipIcon",void 0),kt([Nt()],t.prototype,"nzLabelWrap",void 0),t})(),F6=(()=>{class t{get disableAutoTips(){return void 0!==this.nzDisableAutoTips?B5(this.nzDisableAutoTips):this.nzFormDirective?.nzDisableAutoTips}set nzHasFeedback(e){this._hasFeedback=e,this.nzFormStatusService.formStatusChanges.next({status:this.status,hasFeedback:this._hasFeedback}),this.nzFormItemComponent&&this.nzFormItemComponent.setHasFeedback(this._hasFeedback)}get nzHasFeedback(){return this._hasFeedback}set nzValidateStatus(e){e instanceof D2||e instanceof Xi?(this.validateControl=e,this.validateString=null,this.watchControl()):e instanceof L1?(this.validateControl=e.control,this.validateString=null,this.watchControl()):(this.validateString=e,this.validateControl=null,this.setStatus())}watchControl(){this.validateChanges.unsubscribe(),this.validateControl&&this.validateControl.statusChanges&&(this.validateChanges=this.validateControl.statusChanges.pipe(gn(null),I(this.destroyed$)).subscribe(()=>{this.disableAutoTips||this.updateAutoErrorTip(),this.setStatus(),this.cdr.markForCheck()}))}setStatus(){this.status=this.getControlStatus(this.validateString),this.innerTip=this.getInnerTip(this.status),this.nzFormStatusService.formStatusChanges.next({status:this.status,hasFeedback:this.nzHasFeedback}),this.nzFormItemComponent&&(this.nzFormItemComponent.setWithHelpViaTips(!!this.innerTip),this.nzFormItemComponent.setStatus(this.status))}getControlStatus(e){let i;return i="warning"===e||this.validateControlStatus("INVALID","warning")?"warning":"error"===e||this.validateControlStatus("INVALID")?"error":"validating"===e||"pending"===e||this.validateControlStatus("PENDING")?"validating":"success"===e||this.validateControlStatus("VALID")?"success":"",i}validateControlStatus(e,i){if(this.validateControl){const{dirty:o,touched:r,status:s}=this.validateControl;return(!!o||!!r)&&(i?this.validateControl.hasError(i):s===e)}return!1}getInnerTip(e){switch(e){case"error":return!this.disableAutoTips&&this.autoErrorTip||this.nzErrorTip||null;case"validating":return this.nzValidatingTip||null;case"success":return this.nzSuccessTip||null;case"warning":return this.nzWarningTip||null;default:return null}}updateAutoErrorTip(){if(this.validateControl){const e=this.validateControl.errors||{};let i="";for(const o in e)if(e.hasOwnProperty(o)&&(i=e[o]?.[this.localeId]??this.nzAutoTips?.[this.localeId]?.[o]??this.nzAutoTips.default?.[o]??this.nzFormDirective?.nzAutoTips?.[this.localeId]?.[o]??this.nzFormDirective?.nzAutoTips.default?.[o]),i)break;this.autoErrorTip=i}}subscribeAutoTips(e){e?.pipe(I(this.destroyed$)).subscribe(()=>{this.disableAutoTips||(this.updateAutoErrorTip(),this.setStatus(),this.cdr.markForCheck())})}constructor(e,i,o,r,s){this.nzFormItemComponent=e,this.cdr=i,this.nzFormDirective=r,this.nzFormStatusService=s,this._hasFeedback=!1,this.validateChanges=Ft.EMPTY,this.validateString=null,this.destroyed$=new N,this.status="",this.validateControl=null,this.innerTip=null,this.nzAutoTips={},this.subscribeAutoTips(o.localeChange.pipe(ii(a=>this.localeId=a.locale))),this.subscribeAutoTips(this.nzFormDirective?.getInputObservable("nzAutoTips")),this.subscribeAutoTips(this.nzFormDirective?.getInputObservable("nzDisableAutoTips").pipe(yt(()=>void 0===this.nzDisableAutoTips)))}ngOnChanges(e){const{nzDisableAutoTips:i,nzAutoTips:o,nzSuccessTip:r,nzWarningTip:s,nzErrorTip:a,nzValidatingTip:c}=e;i||o?(this.updateAutoErrorTip(),this.setStatus()):(r||s||a||c)&&this.setStatus()}ngOnInit(){this.setStatus()}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}ngAfterContentInit(){!this.validateControl&&!this.validateString&&(this.nzValidateStatus=this.defaultValidateControl instanceof dv?this.defaultValidateControl.control:this.defaultValidateControl)}static#e=this.\u0275fac=function(i){return new(i||t)(v(V6,9),v(Ue),v($s),v(F2,8),v(kc))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-form-control"]],contentQueries:function(i,o,r){if(1&i&&fn(r,vs,5),2&i){let s;Ae(s=Oe())&&(o.defaultValidateControl=s.first)}},hostAttrs:[1,"ant-form-item-control"],inputs:{nzSuccessTip:"nzSuccessTip",nzWarningTip:"nzWarningTip",nzErrorTip:"nzErrorTip",nzValidatingTip:"nzValidatingTip",nzExtra:"nzExtra",nzAutoTips:"nzAutoTips",nzDisableAutoTips:[2,"nzDisableAutoTips","nzDisableAutoTips",O],nzHasFeedback:[2,"nzHasFeedback","nzHasFeedback",O],nzValidateStatus:"nzValidateStatus"},exportAs:["nzFormControl"],standalone:!0,features:[et([kc]),je,ke,me],ngContentSelectors:xv,decls:5,vars:2,consts:[[1,"ant-form-item-control-input"],[1,"ant-form-item-control-input-content"],[1,"ant-form-item-explain","ant-form-item-explain-connected"],[1,"ant-form-item-extra"],["role","alert",3,"ngClass"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&(Et(),f(0,"div",0)(1,"div",1),bt(2),m()(),w(3,l3e,3,8,"div",2)(4,u3e,2,1,"div",3)),2&i&&(d(3),he(o.innerTip?3:-1),d(),he(o.nzExtra?4:-1))},dependencies:[Zo,Tn,Sn],encapsulation:2,data:{animation:[Une]},changeDetection:0})}return t})();function uI(t){return{...Ev,..."string"==typeof t?{type:t}:t}}let R6=(()=>{class t{set nzNoColon(e){this.noColon=e}get nzNoColon(){return"default"!==this.noColon?this.noColon:this.nzFormDirective?.nzNoColon}set nzTooltipIcon(e){this._tooltipIcon=uI(e)}get tooltipIcon(){return"default"!==this._tooltipIcon?this._tooltipIcon:uI(this.nzFormDirective?.nzTooltipIcon||Ev)}set nzLabelAlign(e){this.labelAlign=e}get nzLabelAlign(){return"default"!==this.labelAlign?this.labelAlign:this.nzFormDirective?.nzLabelAlign||"right"}set nzLabelWrap(e){this.labelWrap=e}get nzLabelWrap(){return"default"!==this.labelWrap?this.labelWrap:this.nzFormDirective?.nzLabelWrap}constructor(e,i){this.cdr=e,this.nzFormDirective=i,this.nzRequired=!1,this.noColon="default",this._tooltipIcon="default",this.labelAlign="default",this.labelWrap="default",this.destroy$=new N,this.nzFormDirective&&(this.nzFormDirective.getInputObservable("nzNoColon").pipe(yt(()=>"default"===this.noColon),I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.nzFormDirective.getInputObservable("nzTooltipIcon").pipe(yt(()=>"default"===this._tooltipIcon),I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.nzFormDirective.getInputObservable("nzLabelAlign").pipe(yt(()=>"default"===this.labelAlign),I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.nzFormDirective.getInputObservable("nzLabelWrap").pipe(yt(()=>"default"===this.labelWrap),I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()))}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(F2,12))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-form-label"]],hostAttrs:[1,"ant-form-item-label"],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-form-item-label-left","left"===o.nzLabelAlign)("ant-form-item-label-wrap",o.nzLabelWrap)},inputs:{nzFor:"nzFor",nzRequired:[2,"nzRequired","nzRequired",O],nzNoColon:[2,"nzNoColon","nzNoColon",O],nzTooltipTitle:"nzTooltipTitle",nzTooltipIcon:"nzTooltipIcon",nzLabelAlign:"nzLabelAlign",nzLabelWrap:[2,"nzLabelWrap","nzLabelWrap",O]},exportAs:["nzFormLabel"],standalone:!0,features:[je,me],ngContentSelectors:xv,decls:3,vars:6,consts:[["nz-tooltip","",1,"ant-form-item-tooltip",3,"nzTooltipTitle"],[4,"nzStringTemplateOutlet"],["nz-icon","",3,"nzType","nzTheme"]],template:function(i,o){1&i&&(Et(),f(0,"label"),bt(1),w(2,p3e,2,2,"span",0),m()),2&i&&(Q("ant-form-item-no-colon",o.nzNoColon)("ant-form-item-required",o.nzRequired),Pt("for",o.nzFor),d(2),he(o.nzTooltipTitle?2:-1))},dependencies:[Tn,Sn,Ta,On,cn],encapsulation:2,changeDetection:0})}return t})(),m3e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[R6,F6,SE]})}return t})();function g3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzTitle)}}function v3e(t,n){if(1&t&&(f(0,"div",7),w(1,g3e,2,1,"ng-container",9),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzTitle)}}function _3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzContent)}}function b3e(t,n){if(1&t&&(f(0,"div",2)(1,"div",3)(2,"div",4),S(3,"span",5),m(),f(4,"div",6)(5,"div"),w(6,v3e,2,1,"div",7),f(7,"div",8),w(8,_3e,2,1,"ng-container",9),m()()()()()),2&t){const e=g();Q("ant-popover-rtl","rtl"===e.dir),h("ngClass",e._classMap)("ngStyle",e.nzOverlayStyle)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("@zoomBigMotion","active"),d(6),he(e.nzTitle?6:-1),d(2),h("nzStringTemplateOutlet",e.nzContent)}}let C3e=(()=>{class t extends L7{getProxyPropertyMap(){return{nzPopoverBackdrop:["nzBackdrop",()=>this.nzPopoverBackdrop],...super.getProxyPropertyMap()}}constructor(){super(hI),this._nzModuleName="popover",this.trigger="hover",this.placement="top",this.nzPopoverBackdrop=!1,this.visibleChange=new H}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-popover",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-popover-open",o.visible)},inputs:{arrowPointAtCenter:[2,"nzPopoverArrowPointAtCenter","arrowPointAtCenter",O],title:[0,"nzPopoverTitle","title"],content:[0,"nzPopoverContent","content"],directiveTitle:[0,"nz-popover","directiveTitle"],trigger:[0,"nzPopoverTrigger","trigger"],placement:[0,"nzPopoverPlacement","placement"],origin:[0,"nzPopoverOrigin","origin"],visible:[0,"nzPopoverVisible","visible"],mouseEnterDelay:[0,"nzPopoverMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:[0,"nzPopoverMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:[0,"nzPopoverOverlayClassName","overlayClassName"],overlayStyle:[0,"nzPopoverOverlayStyle","overlayStyle"],nzPopoverBackdrop:"nzPopoverBackdrop"},outputs:{visibleChange:"nzPopoverVisibleChange"},exportAs:["nzPopover"],standalone:!0,features:[je,mt]})}return kt([Nt()],t.prototype,"nzPopoverBackdrop",void 0),t})(),hI=(()=>{class t extends u6{constructor(e,i,o){super(e,i,o),this._prefix="ant-popover"}get hasBackdrop(){return"click"===this.nzTrigger&&this.nzBackdrop}isEmpty(){return H7(this.nzTitle)&&H7(this.nzContent)}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(wt,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-popover"]],exportAs:["nzPopoverComponent"],standalone:!0,features:[mt,me],decls:2,vars:6,consts:[["overlay","cdkConnectedOverlay"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayOpen","cdkConnectedOverlayPush","nzArrowPointAtCenter"],[1,"ant-popover",3,"ngClass","ngStyle","nzNoAnimation"],[1,"ant-popover-content"],[1,"ant-popover-arrow"],[1,"ant-popover-arrow-content"],["role","tooltip",1,"ant-popover-inner"],[1,"ant-popover-title"],[1,"ant-popover-inner-content"],[4,"nzStringTemplateOutlet"]],template:function(i,o){if(1&i){const r=U();w(0,b3e,9,9,"ng-template",1,0,ot),D("overlayOutsideClick",function(a){return T(r),M(o.onClickOutside(a))})("detach",function(){return T(r),M(o.hide())})("positionChange",function(a){return T(r),M(o.onPositionChange(a))})}2&i&&h("cdkConnectedOverlayHasBackdrop",o.hasBackdrop)("cdkConnectedOverlayOrigin",o.origin)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayOpen",o._visible)("cdkConnectedOverlayPush",o.cdkConnectedOverlayPush)("nzArrowPointAtCenter",o.nzArrowPointAtCenter)},dependencies:[d2,Mc,u2,J3,Zo,ti,zo,Tn,Sn],encapsulation:2,data:{animation:[O3]},changeDetection:0})}return t})(),w3e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[hI]})}return t})();const z3e=["handle"],S3e=t=>({$implicit:t});function T3e(t,n){if(1&t&&S(0,"span",1),2&t){const e=n.$implicit;Q("ant-slider-mark-active",e.active),h("ngStyle",e.style)("innerHTML",e.label,Wn)}}function M3e(t,n){if(1&t&&S(0,"span",1),2&t){const e=n.$implicit;Q("ant-slider-dot-active",e.active),h("ngStyle",e.style)}}function D3e(t,n){if(1&t&&S(0,"nz-slider-step",4),2&t){const e=g();h("vertical",e.nzVertical)("min",e.nzMin)("max",e.nzMax)("lowerBound",e.bounds.lower)("upperBound",e.bounds.upper)("marksArray",e.marksArray)("included",e.nzIncluded)("reverse",e.nzReverse)}}function x3e(t,n){if(1&t){const e=U();f(0,"nz-slider-handle",5),D("focusin",function(){const o=T(e).index;return M(g().onHandleFocusIn(o))}),m()}if(2&t){const e=n.$implicit,i=g();h("vertical",i.nzVertical)("reverse",i.nzReverse)("offset",e.offset)("value",e.value)("active",e.active)("tooltipFormatter",i.nzTipFormatter)("tooltipVisible",i.nzTooltipVisible)("tooltipPlacement",i.nzTooltipPlacement)("dir",i.dir)}}function E3e(t,n){if(1&t&&S(0,"nz-slider-marks",4),2&t){const e=g();h("vertical",e.nzVertical)("min",e.nzMin)("max",e.nzMax)("lowerBound",e.bounds.lower)("upperBound",e.bounds.upper)("marksArray",e.marksArray)("included",e.nzIncluded)("reverse",e.nzReverse)}}let kv=(()=>{class t{constructor(){this.isDragging=!1}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),Av=(()=>{class t{constructor(e,i){this.sliderService=e,this.cdr=i,this.tooltipVisible="default",this.active=!1,this.dir="ltr",this.style={},this.enterHandle=()=>{this.sliderService.isDragging||(this.toggleTooltip(!0),this.updateTooltipPosition(),this.cdr.detectChanges())},this.leaveHandle=()=>{this.sliderService.isDragging||(this.toggleTooltip(!1),this.cdr.detectChanges())}}ngOnChanges(e){const{offset:i,value:o,active:r,tooltipVisible:s,reverse:a,dir:c}=e;(i||a||c)&&this.updateStyle(),o&&(this.updateTooltipTitle(),this.updateTooltipPosition()),r&&this.toggleTooltip(!!r.currentValue),"always"===s?.currentValue&&Promise.resolve().then(()=>this.toggleTooltip(!0,!0))}focus(){this.handleEl?.nativeElement.focus()}toggleTooltip(e,i=!1){!i&&("default"!==this.tooltipVisible||!this.tooltip)||(e?this.tooltip?.show():this.tooltip?.hide())}updateTooltipTitle(){this.tooltipTitle=this.tooltipFormatter?"function"==typeof this.tooltipFormatter?this.tooltipFormatter(this.value):this.tooltipFormatter:`${this.value}`}updateTooltipPosition(){this.tooltip&&Promise.resolve().then(()=>this.tooltip?.updatePosition())}updateStyle(){const i=this.reverse,o=this.offset,r=this.vertical?{[i?"top":"bottom"]:`${o}%`,[i?"bottom":"top"]:"auto",transform:i?null:"translateY(+50%)"}:{...this.getHorizontalStylePosition(),transform:`translateX(${i?"rtl"===this.dir?"-":"+":"rtl"===this.dir?"+":"-"}50%)`};this.style=r,this.cdr.markForCheck()}getHorizontalStylePosition(){let e=this.reverse?"auto":`${this.offset}%`,i=this.reverse?`${this.offset}%`:"auto";if("rtl"===this.dir){const o=e;e=i,i=o}return{left:e,right:i}}static#e=this.\u0275fac=function(i){return new(i||t)(v(kv),v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider-handle"]],viewQuery:function(i,o){if(1&i&&(ft(z3e,5),ft(Ta,5)),2&i){let r;Ae(r=Oe())&&(o.handleEl=r.first),Ae(r=Oe())&&(o.tooltip=r.first)}},hostBindings:function(i,o){1&i&&D("mouseenter",function(){return o.enterHandle()})("mouseleave",function(){return o.leaveHandle()})},inputs:{vertical:[2,"vertical","vertical",O],reverse:[2,"reverse","reverse",O],offset:[2,"offset","offset",y3],value:[2,"value","value",y3],tooltipVisible:"tooltipVisible",tooltipPlacement:"tooltipPlacement",tooltipFormatter:"tooltipFormatter",active:[2,"active","active",O],dir:"dir"},exportAs:["nzSliderHandle"],standalone:!0,features:[je,ke,me],decls:2,vars:7,consts:[["handle",""],["tabindex","0","nz-tooltip","",1,"ant-slider-handle",3,"ngStyle","nzTooltipTitle","nzTooltipTitleContext","nzTooltipTrigger","nzTooltipPlacement"]],template:function(i,o){1&i&&S(0,"div",1,0),2&i&&h("ngStyle",o.style)("nzTooltipTitle",null===o.tooltipFormatter||"never"===o.tooltipVisible?null:o.tooltipTitle)("nzTooltipTitleContext",mr(5,S3e,o.value))("nzTooltipTrigger",null)("nzTooltipPlacement",o.tooltipPlacement)},dependencies:[B7,Ta,ti],encapsulation:2,changeDetection:0})}return t})(),k3e=(()=>{class t{constructor(){this.lowerBound=null,this.upperBound=null,this.marksArray=[],this.vertical=!1,this.included=!1,this.marks=[]}ngOnChanges(e){const{marksArray:i,lowerBound:o,upperBound:r,reverse:s}=e;(i||s)&&this.buildMarks(),(i||o||r||s)&&this.togglePointActive()}trackById(e,i){return i.value}buildMarks(){const e=this.max-this.min;this.marks=this.marksArray.map(i=>{const{value:o,offset:r,config:s}=i,a=this.getMarkStyles(o,e,s);return{label:pI(s)?s.label:s,offset:r,style:a,value:o,config:s,active:!1}})}getMarkStyles(e,i,o){let r;const s=this.reverse?this.max+this.min-e:e;return r=this.vertical?{marginBottom:"-50%",bottom:(s-this.min)/i*100+"%"}:{transform:"translate3d(-50%, 0, 0)",left:(s-this.min)/i*100+"%"},pI(o)&&o.style&&(r={...r,...o.style}),r}togglePointActive(){this.marks&&null!==this.lowerBound&&null!==this.upperBound&&this.marks.forEach(e=>{const i=e.value;e.active=!this.included&&i===this.upperBound||this.included&&i<=this.upperBound&&i>=this.lowerBound})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider-marks"]],hostAttrs:[1,"ant-slider-mark"],inputs:{lowerBound:"lowerBound",upperBound:"upperBound",marksArray:"marksArray",min:[2,"min","min",Pi],max:[2,"max","max",Pi],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O],reverse:[2,"reverse","reverse",O]},exportAs:["nzSliderMarks"],standalone:!0,features:[je,ke,me],decls:1,vars:2,consts:[["class","ant-slider-mark-text",3,"ant-slider-mark-active","ngStyle","innerHTML",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ant-slider-mark-text",3,"ngStyle","innerHTML"]],template:function(i,o){1&i&&w(0,T3e,1,4,"span",0),2&i&&h("ngForOf",o.marks)("ngForTrackBy",o.trackById)},dependencies:[ti,zn],encapsulation:2,changeDetection:0})}return t})();function pI(t){return"string"!=typeof t}let A3e=(()=>{class t{constructor(){this.lowerBound=null,this.upperBound=null,this.marksArray=[],this.vertical=!1,this.included=!1,this.steps=[]}ngOnChanges(e){const{marksArray:i,lowerBound:o,upperBound:r,reverse:s}=e;(i||s)&&this.buildSteps(),(i||o||r||s)&&this.togglePointActive()}trackById(e,i){return i.value}buildSteps(){const e=this.vertical?"bottom":"left";this.steps=this.marksArray.map(i=>{const{value:o,config:r}=i;let s=i.offset;return this.reverse&&(s=(this.max-o)/(this.max-this.min)*100),{value:o,offset:s,config:r,active:!1,style:{[e]:`${s}%`,transform:this.vertical?"translateY(50%)":"translateX(-50%)"}}})}togglePointActive(){this.steps&&null!==this.lowerBound&&null!==this.upperBound&&this.steps.forEach(e=>{const i=e.value;e.active=!this.included&&i===this.upperBound||this.included&&i<=this.upperBound&&i>=this.lowerBound})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider-step"]],hostAttrs:[1,"ant-slider-step"],inputs:{lowerBound:"lowerBound",upperBound:"upperBound",marksArray:"marksArray",min:[2,"min","min",Pi],max:[2,"max","max",Pi],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O],reverse:[2,"reverse","reverse",O]},exportAs:["nzSliderStep"],standalone:!0,features:[je,ke,me],decls:1,vars:2,consts:[["class","ant-slider-dot",3,"ant-slider-dot-active","ngStyle",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ant-slider-dot",3,"ngStyle"]],template:function(i,o){1&i&&w(0,M3e,1,3,"span",0),2&i&&h("ngForOf",o.steps)("ngForTrackBy",o.trackById)},dependencies:[ti,zn],encapsulation:2,changeDetection:0})}return t})(),O3e=(()=>{class t{constructor(){this.offset=0,this.reverse=!1,this.dir="ltr",this.length=0,this.vertical=!1,this.included=!1,this.style={}}ngOnChanges(){const i=this.reverse,o=this.included?"visible":"hidden",r=this.offset,s=this.length,a=this.vertical?{[i?"top":"bottom"]:`${r}%`,[i?"bottom":"top"]:"auto",height:`${s}%`,visibility:o}:{...this.getHorizontalStylePosition(),width:`${s}%`,visibility:o};this.style=a}getHorizontalStylePosition(){let e=this.reverse?"auto":`${this.offset}%`,i=this.reverse?`${this.offset}%`:"auto";if("rtl"===this.dir){const o=e;e=i,i=o}return{left:e,right:i}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider-track"]],inputs:{offset:[2,"offset","offset",Pi],reverse:[2,"reverse","reverse",O],dir:"dir",length:[2,"length","length",Pi],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O]},exportAs:["nzSliderTrack"],standalone:!0,features:[je,ke,me],decls:1,vars:1,consts:[[1,"ant-slider-track",3,"ngStyle"]],template:function(i,o){1&i&&S(0,"div",0),2&i&&h("ngStyle",o.style)},dependencies:[ti],encapsulation:2,changeDetection:0})}return t})(),fI=(()=>{class t{constructor(e,i,o,r,s){this.slider=e,this.sliderService=i,this.cdr=o,this.platform=r,this.directionality=s,this.nzDisabled=!1,this.nzDots=!1,this.nzIncluded=!0,this.nzRange=!1,this.nzVertical=!1,this.nzReverse=!1,this.nzMarks=null,this.nzMax=100,this.nzMin=0,this.nzStep=1,this.nzTooltipVisible="default",this.nzTooltipPlacement="top",this.nzOnAfterChange=new H,this.value=null,this.cacheSliderStart=null,this.cacheSliderLength=null,this.activeValueIndex=void 0,this.track={offset:null,length:null},this.handles=[],this.marksArray=null,this.bounds={lower:null,upper:null},this.dir="ltr",this.destroy$=new N,this.isNzDisableFirstChange=!0}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges(),this.updateTrackAndHandles(),this.onValueChange(this.getValue(!0))}),this.handles=mI(this.nzRange?2:1),this.marksArray=this.nzMarks?this.generateMarkItems(this.nzMarks):null,this.bindDraggingHandlers(),this.toggleDragDisabled(this.nzDisabled),null===this.getValue()&&this.setValue(this.formatValue(null))}ngOnChanges(e){const{nzDisabled:i,nzMarks:o,nzRange:r}=e;i&&!i.firstChange?this.toggleDragDisabled(i.currentValue):o&&!o.firstChange?this.marksArray=this.nzMarks?this.generateMarkItems(this.nzMarks):null:r&&!r.firstChange&&(this.handles=mI(r.currentValue?2:1),this.setValue(this.formatValue(null)))}ngOnDestroy(){this.unsubscribeDrag(),this.destroy$.next(!0),this.destroy$.complete()}writeValue(e){this.setValue(e,!0)}onValueChange(e){}onTouched(){}registerOnChange(e){this.onValueChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.toggleDragDisabled(this.nzDisabled),this.cdr.markForCheck()}onKeyDown(e){if(this.nzDisabled)return;const i=e.keyCode,r=37===i||40===i;if(39!==i&&38!==i&&!r)return;e.preventDefault();let s=(r?-this.nzStep:this.nzStep)*(this.nzReverse?-1:1);s="rtl"===this.dir?-1*s:s,this.setActiveValue(C3(this.nzRange?this.value[this.activeValueIndex]+s:this.value+s,this.nzMin,this.nzMax)),this.nzOnAfterChange.emit(this.getValue(!0))}onHandleFocusIn(e){this.activeValueIndex=e}setValue(e,i=!1){i?(this.value=this.formatValue(e),this.updateTrackAndHandles()):function V3e(t,n){return typeof t==typeof n&&(Ro(t)&&Ro(n)?dE(t,n):t===n)}(this.value,e)||(this.value=e,this.updateTrackAndHandles(),this.onValueChange(this.getValue(!0)))}getValue(e=!1){return e&&this.value&&Ro(this.value)?[...this.value].sort((i,o)=>i-o):this.value}getValueToOffset(e){let i=e;return typeof i>"u"&&(i=this.getValue(!0)),Ro(i)?i.map(o=>this.valueToOffset(o)):this.valueToOffset(i)}setActiveValueIndex(e){const i=this.getValue();if(Ro(i)){let r,o=null,s=-1;i.forEach((a,c)=>{r=Math.abs(e-a),(null===o||r{c.offset=Ro(i)?i[l]:i,c.value=Ro(e)?e[l]:e||0}),[this.bounds.lower,this.bounds.upper]=s,[this.track.offset,this.track.length]=a,this.cdr.markForCheck()}onDragStart(e){this.toggleDragMoving(!0),this.cacheSliderProperty(),this.setActiveValueIndex(this.getLogicalValue(e)),this.setActiveValue(this.getLogicalValue(e)),this.showHandleTooltip(this.nzRange?this.activeValueIndex:0)}onDragMove(e){this.setActiveValue(this.getLogicalValue(e)),this.cdr.markForCheck()}getLogicalValue(e){return this.nzReverse?this.nzVertical||"rtl"!==this.dir?this.nzMax-e+this.nzMin:e:this.nzVertical||"rtl"!==this.dir?e:this.nzMax-e+this.nzMin}onDragEnd(){this.nzOnAfterChange.emit(this.getValue(!0)),this.toggleDragMoving(!1),this.cacheSliderProperty(!0),this.hideAllHandleTooltip(),this.cdr.markForCheck()}bindDraggingHandlers(){if(!this.platform.isBrowser)return;const e=a=>c=>a.reduce((l,u)=>l[u]||l,c),i=this.slider.nativeElement,o=this.nzVertical?"pageY":"pageX",r={start:"mousedown",move:"mousemove",end:"mouseup",pluckKey:[o]},s={start:"touchstart",move:"touchmove",end:"touchend",pluckKey:["touches","0",o],filter:a=>a instanceof TouchEvent};[r,s].forEach(a=>{const{start:c,move:l,end:u,pluckKey:p,filter:_=(()=>!0)}=a;a.startPlucked$=nn(i,c).pipe(yt(_),ii(uE),Ie(e(p)),Ie(b=>this.findClosestValue(b))),a.end$=nn(document,u),a.moveResolved$=nn(document,l).pipe(yt(_),ii(uE),Ie(e(p)),qi(),Ie(b=>this.findClosestValue(b)),qi(),I(a.end$))}),this.dragStart$=Pn(r.startPlucked$,s.startPlucked$),this.dragMove$=Pn(r.moveResolved$,s.moveResolved$),this.dragEnd$=Pn(r.end$,s.end$)}subscribeDrag(e=["start","move","end"]){-1!==e.indexOf("start")&&this.dragStart$&&!this.dragStart_&&(this.dragStart_=this.dragStart$.subscribe(this.onDragStart.bind(this))),-1!==e.indexOf("move")&&this.dragMove$&&!this.dragMove_&&(this.dragMove_=this.dragMove$.subscribe(this.onDragMove.bind(this))),-1!==e.indexOf("end")&&this.dragEnd$&&!this.dragEnd_&&(this.dragEnd_=this.dragEnd$.subscribe(this.onDragEnd.bind(this)))}unsubscribeDrag(e=["start","move","end"]){-1!==e.indexOf("start")&&this.dragStart_&&(this.dragStart_.unsubscribe(),this.dragStart_=null),-1!==e.indexOf("move")&&this.dragMove_&&(this.dragMove_.unsubscribe(),this.dragMove_=null),-1!==e.indexOf("end")&&this.dragEnd_&&(this.dragEnd_.unsubscribe(),this.dragEnd_=null)}toggleDragMoving(e){const i=["move","end"];e?(this.sliderService.isDragging=!0,this.subscribeDrag(i)):(this.sliderService.isDragging=!1,this.unsubscribeDrag(i))}toggleDragDisabled(e){e?this.unsubscribeDrag():this.subscribeDrag(["start"])}findClosestValue(e){const r=C3((e-this.getSliderStartPosition())/this.getSliderLength(),0,1),s=(this.nzMax-this.nzMin)*(this.nzVertical?1-r:r)+this.nzMin,a=null===this.nzMarks?[]:Object.keys(this.nzMarks).map(parseFloat).sort((u,p)=>u-p);if(0!==this.nzStep&&!this.nzDots){const u=Math.round(s/this.nzStep)*this.nzStep;a.push(u)}const c=a.map(u=>Math.abs(s-u)),l=a[c.indexOf(Math.min(...c))];return 0===this.nzStep?l:parseFloat(l.toFixed(function rne(t){const n=t.toString(),e=n.indexOf(".");return e>=0?n.length-e-1:0}(this.nzStep)))}valueToOffset(e){return function one(t,n,e){return(e-t)/(n-t)*100}(this.nzMin,this.nzMax,e)}getSliderStartPosition(){if(null!==this.cacheSliderStart)return this.cacheSliderStart;const e=hE(this.slider.nativeElement);return this.nzVertical?e.top:e.left}getSliderLength(){if(null!==this.cacheSliderLength)return this.cacheSliderLength;const e=this.slider.nativeElement;return this.nzVertical?e.clientHeight:e.clientWidth}cacheSliderProperty(e=!1){this.cacheSliderStart=e?null:this.getSliderStartPosition(),this.cacheSliderLength=e?null:this.getSliderLength()}formatValue(e){return b3(e)?this.nzRange?[this.nzMin,this.nzMax]:this.nzMin:function I3e(t,n){return!(!Ro(t)&&isNaN(t)||Ro(t)&&t.some(e=>isNaN(e)))&&function N3e(t,n=!1){if(Ro(t)!==n)throw function P3e(){return new Error('The "nzRange" can\'t match the "ngModel"\'s type, please check these properties: "nzRange", "ngModel", "nzDefaultValue".')}();return!0}(t,n)}(e,this.nzRange)?Ro(e)?e.map(i=>C3(i,this.nzMin,this.nzMax)):C3(e,this.nzMin,this.nzMax):this.nzDefaultValue?this.nzDefaultValue:this.nzRange?[this.nzMin,this.nzMax]:this.nzMin}showHandleTooltip(e=0){this.handles.forEach((i,o)=>{i.active=o===e})}hideAllHandleTooltip(){this.handles.forEach(e=>e.active=!1)}generateMarkItems(e){const i=[];for(const o in e)if(e.hasOwnProperty(o)){const r=e[o],s="number"==typeof o?o:parseFloat(o);s>=this.nzMin&&s<=this.nzMax&&i.push({value:s,offset:this.valueToOffset(s),config:r})}return i.length?i:null}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(kv),v(Ue),v(qn),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider"]],viewQuery:function(i,o){if(1&i&&ft(Av,5),2&i){let r;Ae(r=Oe())&&(o.handlerComponents=r)}},hostAttrs:[1,"ant-slider"],hostVars:8,hostBindings:function(i,o){1&i&&D("keydown",function(s){return o.onKeyDown(s)}),2&i&&Q("ant-slider-rtl","rtl"===o.dir)("ant-slider-disabled",o.nzDisabled)("ant-slider-vertical",o.nzVertical)("ant-slider-with-marks",o.marksArray)},inputs:{nzDisabled:[2,"nzDisabled","nzDisabled",O],nzDots:[2,"nzDots","nzDots",O],nzIncluded:[2,"nzIncluded","nzIncluded",O],nzRange:[2,"nzRange","nzRange",O],nzVertical:[2,"nzVertical","nzVertical",O],nzReverse:[2,"nzReverse","nzReverse",O],nzDefaultValue:"nzDefaultValue",nzMarks:"nzMarks",nzMax:[2,"nzMax","nzMax",Pi],nzMin:[2,"nzMin","nzMin",Pi],nzStep:[2,"nzStep","nzStep",y3],nzTooltipVisible:"nzTooltipVisible",nzTooltipPlacement:"nzTooltipPlacement",nzTipFormatter:"nzTipFormatter"},outputs:{nzOnAfterChange:"nzOnAfterChange"},exportAs:["nzSlider"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0},kv]),je,ke,me],decls:5,vars:9,consts:[[1,"ant-slider-rail"],[3,"vertical","included","offset","length","reverse","dir"],[3,"vertical","min","max","lowerBound","upperBound","marksArray","included","reverse",4,"ngIf"],[3,"vertical","reverse","offset","value","active","tooltipFormatter","tooltipVisible","tooltipPlacement","dir","focusin",4,"ngFor","ngForOf"],[3,"vertical","min","max","lowerBound","upperBound","marksArray","included","reverse"],[3,"focusin","vertical","reverse","offset","value","active","tooltipFormatter","tooltipVisible","tooltipPlacement","dir"]],template:function(i,o){1&i&&(S(0,"div",0)(1,"nz-slider-track",1),w(2,D3e,1,8,"nz-slider-step",2)(3,x3e,1,9,"nz-slider-handle",3)(4,E3e,1,8,"nz-slider-marks",2)),2&i&&(d(),h("vertical",o.nzVertical)("included",o.nzIncluded)("offset",o.track.offset)("length",o.track.length)("reverse",o.nzReverse)("dir",o.dir),d(),h("ngIf",o.marksArray),d(),h("ngForOf",o.handles),d(),h("ngIf",o.marksArray))},dependencies:[O3e,A3e,Av,zn,k3e,Tt],encapsulation:2,changeDetection:0})}return t})();function Ro(t){return t instanceof Array&&2===t.length}function mI(t){return Array(t).fill(0).map(()=>({offset:null,value:null,active:!1}))}let F3e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[fI,Av]})}return t})();const L6=()=>({minRows:3,maxRows:5});function R3e(t,n){1&t&&S(0,"img",90)}function L3e(t,n){1&t&&S(0,"img",91)}function H3e(t,n){1&t&&S(0,"img",92)}function B3e(t,n){1&t&&S(0,"img",93)}function j3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",94),S(2,"img",95),f(3,"input",96),D("change",function(o){const r=T(e).index;return M(g().onChangeLightBannerUrl(o,r))}),m(),f(4,"app-upload",10),D("onChange",function(o){const r=T(e).index;return M(g().onLightBannerChange(o,r))}),m()(),f(5,"td")(6,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeLightJumpUrl(o,r))}),m()(),f(7,"td")(8,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDeleteLightBanner(o))}),f(9,"a"),C(10),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("src",e.src,Ot),d(),h("value",e.src),d(3),h("value",e.url),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}function $3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",94),S(2,"img",95),f(3,"input",96),D("change",function(o){const r=T(e).index;return M(g().onChangeSuperBannerUrl(o,r))}),m(),f(4,"app-upload",10),D("onChange",function(o){const r=T(e).index;return M(g().onSuperBannerChange(o,r))}),m()(),f(5,"td")(6,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeSuperJumpUrl(o,r))}),m()(),f(7,"td")(8,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDeleteSuperBanner(o))}),f(9,"a"),C(10),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("src",e.src,Ot),d(),h("value",e.src),d(3),h("value",e.url),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}function Y3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",94),S(2,"img",95),f(3,"input",96),D("change",function(o){const r=T(e).index;return M(g().onChangeSimBannerUrl(o,r))}),m(),f(4,"app-upload",10),D("onChange",function(o){const r=T(e).index;return M(g().onSimBannerChange(o,r))}),m()(),f(5,"td")(6,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeSimJumpUrl(o,r))}),m()(),f(7,"td")(8,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDeleteSimBanner(o))}),f(9,"a"),C(10),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("src",e.src,Ot),d(),h("value",e.src),d(3),h("value",e.url),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}function U3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",94),S(2,"img",95),f(3,"input",96),D("change",function(o){const r=T(e).index;return M(g().onChangeSideBannerUrl(o,r))}),m(),f(4,"app-upload",10),D("onChange",function(o){const r=T(e).index;return M(g().onSideBannerChange(o,r))}),m()(),f(5,"td")(6,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeSideJumpUrl(o,r))}),m()(),f(7,"td")(8,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDeleteSideBanner(o))}),f(9,"a"),C(10),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("src",e.src,Ot),d(),h("value",e.src),d(3),h("value",e.url),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}function W3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",99)(2,"input",100),D("change",function(o){const r=T(e).index;return M(g().onChangeMirrorUrl(o,r))}),m()(),f(3,"td",101)(4,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeMirrorName(o,r))}),m()(),f(5,"td")(6,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDelMirror(o))}),f(7,"a"),C(8),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("value",e.url),d(2),h("value",e.name),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}let G3e=(()=>{class t{constructor(e,i,o){this.fb=e,this.message=i,this.modal=o,this.$t=_e,this.submitting=!1,this.settings=An,this.validateForm=this.fb.group({...An})}ngOnInit(){}onLogoChange(e){this.settings.favicon=e.cdn||e.target?.value||""}onSimBannerChange(e,i){this.settings.simThemeImages[i].src=e.cdn}onChangeSimBannerUrl(e,i){const o=e.target.value.trim();this.settings.simThemeImages[i].src=o}onChangeSimJumpUrl(e,i){const o=e.target.value.trim();this.settings.simThemeImages[i].url=o}onDeleteSimBanner(e){this.settings.simThemeImages.splice(e,1)}onAddSimBanner(){this.settings.simThemeImages.push({src:"",url:""})}onSuperBannerChange(e,i){this.settings.superImages[i].src=e.cdn}onChangeSuperBannerUrl(e,i){const o=e.target.value.trim();this.settings.superImages[i].src=o}onChangeSuperJumpUrl(e,i){const o=e.target.value.trim();this.settings.superImages[i].url=o}onDeleteSuperBanner(e){this.settings.superImages.splice(e,1)}onAddSuperBanner(){this.settings.superImages.push({src:"",url:""})}onLightBannerChange(e,i){this.settings.lightImages[i].src=e.cdn}onChangeLightBannerUrl(e,i){const o=e.target.value.trim();this.settings.lightImages[i].src=o}onChangeLightJumpUrl(e,i){const o=e.target.value.trim();this.settings.lightImages[i].url=o}onDeleteLightBanner(e){this.settings.lightImages.splice(e,1)}onAddLightBanner(){this.settings.lightImages.push({src:"",url:""})}onSideBannerChange(e,i){this.settings.sideThemeImages[i].src=e.cdn}onChangeSideBannerUrl(e,i){const o=e.target.value.trim();this.settings.sideThemeImages[i].src=o}onChangeSideJumpUrl(e,i){const o=e.target.value.trim();this.settings.sideThemeImages[i].src=o}onDeleteSideBanner(e){this.settings.sideThemeImages.splice(e,1)}onAddSideBanner(){this.settings.sideThemeImages.push({src:"",url:""})}onMirrorBannerChange(e,i){this.settings.sideThemeImages[i].src=e.cdn}onAddMirror(){this.settings.mirrorList.push({url:"",icon:"",name:""})}onDelMirror(e){this.settings.mirrorList.splice(e,1)}onChangeMirrorUrl(e,i){const o=e.target.value.trim();this.settings.mirrorList[i].url=o}onChangeMirrorName(e,i){const o=e.target.value.trim();this.settings.mirrorList[i].name=o}onShortcutImgChange(e){let i=e?.target?.value?.trim()||e.cdn;i||(i=""),this.settings.shortcutThemeImages[0].src=i}handleSubmit(){this.submitting||this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{function e(o){return o.src}const i={...this.validateForm.value,favicon:this.settings.favicon,simThemeImages:this.settings.simThemeImages.filter(e),shortcutThemeImages:this.settings.shortcutThemeImages.filter(e),sideThemeImages:this.settings.sideThemeImages.filter(e),superImages:this.settings.superImages.filter(e),lightImages:this.settings.lightImages.filter(e),mirrorList:this.settings.mirrorList.filter(o=>o.url&&o.name)};this.submitting=!0,vc({message:"Update settings",content:JSON.stringify(i),path:"data/settings.json"}).then(()=>{this.message.success(_e("_saveSuccess"))}).finally(()=>{this.submitting=!1})}})}static#e=this.\u0275fac=function(i){return new(i||t)(v(fv),v(er),v(za))};static#t=this.\u0275cmp=q({type:t,selectors:[["system-setting"]],decls:451,vars:262,consts:[["loading1",""],["loading2",""],["loading3",""],["loading4",""],["basicTable",""],["nz-form","",3,"formGroup"],[3,"nzSpan"],["id","file"],[1,"logo",3,"src"],[2,"white-space","nowrap","margin-top","5px"],[3,"onChange"],["nz-input","",1,"logo-input",3,"change","value"],["nzRequired","",3,"nzSpan"],["nz-input","","formControlName","title"],["nz-input","","formControlName","description"],["nz-input","","formControlName","keywords"],["formControlName","language"],["nzValue","zh-CN","nzLabel","\u7b80\u4f53\u4e2d\u6587"],["nzValue","en","nzLabel","English"],["nz-input","","formControlName","email","placeholder","\u7528\u6237\u63d0\u4ea4\u6536\u5f55\u901a\u77e5"],["formControlName","loading"],["nz-radio","","nzValue","random"],["nz-radio","","nzValue","null"],["nz-radio","","nzValue","loading1","nz-popover","","nzPopoverPlacement","bottom",3,"nzPopoverContent"],["nz-radio","","nzValue","loading2","nz-popover","","nzPopoverPlacement","bottom",3,"nzPopoverContent"],["nz-radio","","nzValue","loading3","nz-popover","","nzPopoverPlacement","bottom",3,"nzPopoverContent"],["nz-radio","","nzValue","loading4","nz-popover","","nzPopoverPlacement","bottom",3,"nzPopoverContent"],["nz-input","","formControlName","loadingCode","placeholder","
Loading...
",3,"nzAutosize"],[3,"nzSpan","nzNoColon"],["nz-checkbox","","formControlName","allowCollect"],["nz-checkbox","","formControlName","openSEO"],["nz-checkbox","","formControlName","showGithub"],["nz-checkbox","","formControlName","showLanguage"],["nz-checkbox","","formControlName","showRate"],["nz-checkbox","","formControlName","showThemeToggle"],["formControlName","theme"],["nz-radio","","nzValue","Light"],["nz-radio","","nzValue","Super"],["nz-radio","","nzValue","Sim"],["nz-radio","","nzValue","Side"],["nz-radio","","nzValue","App"],["nz-radio","","nzValue","Shortcut"],["formControlName","appTheme"],["nz-radio","","nzValue","Current"],["nz-input","","formControlName","headerContent","placeholder","\u4f4d\u4e8e head \u6807\u7b7e\u5c3e\u90e8\uff0c\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u63d2\u5165\u811a\u672c\u4ee3\u7801\u6216\u5404\u79cd\u6837\u5f0f\u7f51\u7ad9\u7edf\u8ba1\u7b49",3,"nzAutosize"],["nz-input","","formControlName","footerContent","placeholder","\u73b0\u6709\u53d8\u91cf\uff1a${total} = \u7f51\u7ad9\u6570\u91cf\uff1b ${hostname} = \u57df\u540d\uff1b ${year} = \u4eca\u5e74\u5e74\u4efd",3,"nzAutosize"],["nz-input","","formControlName","actionUrl",3,"placeholder"],[1,"divider"],[1,"title"],[1,"mb10"],["formControlName","spiderTitle"],["nz-radio","","nzValue","NO"],["nz-radio","","nzValue","EMPTY"],["nz-radio","","nzValue","ALWAYS"],["formControlName","spiderIcon"],["formControlName","spiderDescription"],["nz-checkbox","","formControlName","checkUrl"],["formControlName","spiderQty",3,"nzMin","nzMax"],["formControlName","lightCardStyle"],["nz-radio","","nzValue","standard"],["nz-radio","","nzValue","column"],["nz-radio","","nzValue","example"],["formControlName","lightOverType"],["nz-radio","","nzValue","overflow"],["nz-radio","","nzValue","ellipsis"],[1,"sim-ban"],[3,"nzData","nzShowPagination"],[4,"ngFor","ngForOf"],[1,"mt10","display-block",3,"click"],["nz-input","","formControlName","superTitle",3,"placeholder"],["formControlName","superCardStyle"],["formControlName","superOverType"],["nz-input","","formControlName","simTitle",3,"placeholder"],["formControlName","simCardStyle"],["formControlName","simOverType"],["nz-checkbox","","formControlName","simThemeAutoplay"],["formControlName","simThemeHeight",3,"nzMin","nzMax"],["nz-input","","formControlName","simThemeDesc",3,"nzAutosize"],["nz-input","","formControlName","sideTitle",3,"placeholder"],["formControlName","sideCardStyle"],["nz-checkbox","","formControlName","sideThemeAutoplay"],["formControlName","sideThemeHeight",3,"nzMin","nzMax"],["nz-input","","formControlName","shortcutTitle",3,"placeholder"],["nz-checkbox","","formControlName","shortcutThemeShowWeather"],[3,"src"],["nz-input","","type","text",2,"width","300px","margin-top","10px",3,"change","value"],[3,"click"],[1,"bottom-bar"],["nz-button","","nzType","primary",2,"margin-right","20px",3,"click","nzLoading"],[1,"save-tip"],["src","assets/img/loading1.png",1,"preview"],["src","assets/img/loading2.png",1,"preview"],["src","assets/img/loading3.png",1,"preview"],["src","assets/img/loading4.png",1,"preview"],["width","260px",1,"nowrap"],[1,"icon",3,"src"],["nz-input","","type","text",2,"width","180px","margin-right","10px",3,"change","value"],["nz-input","","maxlength","200",3,"change","value"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"],[1,"nowrap"],["nz-input","","type","text",2,"width","100%","margin-right","10px",3,"change","value"],["width","400px"]],template:function(i,o){if(1&i){const r=U();f(0,"form",5)(1,"nz-form-item")(2,"nz-form-label",6),C(3),m(),f(4,"nz-form-control",6)(5,"label",7),S(6,"img",8),f(7,"span",9),C(8),m(),f(9,"app-upload",10),D("onChange",function(a){return T(r),M(o.onLogoChange(a))}),m(),f(10,"div")(11,"input",11),D("change",function(a){return T(r),M(o.onLogoChange(a))}),m()()()()(),f(12,"nz-form-item")(13,"nz-form-label",12),C(14),m(),f(15,"nz-form-control",6),S(16,"input",13),m()(),f(17,"nz-form-item")(18,"nz-form-label",6),C(19),m(),f(20,"nz-form-control",6),S(21,"input",14),m()(),f(22,"nz-form-item")(23,"nz-form-label",6),C(24),m(),f(25,"nz-form-control",6),S(26,"input",15),m()(),f(27,"nz-form-item")(28,"nz-form-label",6),C(29),m(),f(30,"nz-form-control",6)(31,"nz-select",16),S(32,"nz-option",17)(33,"nz-option",18),m()()(),f(34,"nz-form-item")(35,"nz-form-label",6),C(36,"Email"),m(),f(37,"nz-form-control",6),S(38,"input",19),m()(),f(39,"nz-form-item")(40,"nz-form-label",6),C(41),m(),f(42,"nz-form-control",6)(43,"nz-radio-group",20)(44,"label",21),C(45),m(),f(46,"label",22),C(47),m(),f(48,"label",23),C(49," loading1 "),m(),w(50,R3e,1,0,"ng-template",null,0,ot),f(52,"label",24),C(53," loading2 "),m(),w(54,L3e,1,0,"ng-template",null,1,ot),f(56,"label",25),C(57," loading3 "),m(),w(58,H3e,1,0,"ng-template",null,2,ot),f(60,"label",26),C(61," loading4 "),m(),w(62,B3e,1,0,"ng-template",null,3,ot),m()()(),f(64,"nz-form-item")(65,"nz-form-label",6),C(66,"DIY Loading code"),m(),f(67,"nz-form-control",6),S(68,"textarea",27),m()(),f(69,"nz-form-item")(70,"nz-form-label",28),C(71),m(),f(72,"nz-form-control",6),S(73,"label",29),m()(),f(74,"nz-form-item")(75,"nz-form-label",28),C(76),m(),f(77,"nz-form-control",6),S(78,"label",30),m()(),f(79,"nz-form-item")(80,"nz-form-label",28),C(81),m(),f(82,"nz-form-control",6),S(83,"label",31),m()(),f(84,"nz-form-item")(85,"nz-form-label",28),C(86),m(),f(87,"nz-form-control",6),S(88,"label",32),m()(),f(89,"nz-form-item")(90,"nz-form-label",28),C(91),m(),f(92,"nz-form-control",6),S(93,"label",33),m()(),f(94,"nz-form-item")(95,"nz-form-label",28),C(96),m(),f(97,"nz-form-control",6),S(98,"label",34),m()(),f(99,"nz-form-item")(100,"nz-form-label",28),C(101),m(),f(102,"nz-form-control",6)(103,"nz-radio-group",35)(104,"label",36),C(105,"Light"),m(),f(106,"label",37),C(107,"Super"),m(),f(108,"label",38),C(109,"Sim"),m(),f(110,"label",39),C(111,"Side"),m(),f(112,"label",40),C(113,"App"),m(),f(114,"label",41),C(115,"Shortcut"),m()()()(),f(116,"nz-form-item")(117,"nz-form-label",28),C(118),m(),f(119,"nz-form-control",6)(120,"nz-radio-group",42)(121,"label",43),C(122),m(),f(123,"label",40),C(124,"App"),m(),f(125,"label",36),C(126,"Light"),m(),f(127,"label",38),C(128,"Sim"),m(),f(129,"label",39),C(130,"Side"),m(),f(131,"label",41),C(132,"Shortcut"),m()()()(),f(133,"nz-form-item")(134,"nz-form-label",6),C(135),m(),f(136,"nz-form-control",6),S(137,"textarea",44),m()(),f(138,"nz-form-item")(139,"nz-form-label",6),C(140),m(),f(141,"nz-form-control",6),S(142,"textarea",45),m()(),f(143,"nz-form-item")(144,"nz-form-label",6),C(145),m(),f(146,"nz-form-control",6),S(147,"input",46),m()(),S(148,"div",47),f(149,"h2",48),C(150),m(),f(151,"div",49)(152,"b"),C(153),m()(),f(154,"div",49)(155,"b"),C(156),m()(),f(157,"div",49)(158,"b"),C(159),m()(),f(160,"nz-form-item")(161,"nz-form-label",28),C(162),m(),f(163,"nz-form-control",6)(164,"nz-radio-group",50)(165,"label",51),C(166),m(),f(167,"label",52),C(168),m(),f(169,"label",53),C(170),m()()()(),f(171,"nz-form-item")(172,"nz-form-label",28),C(173),m(),f(174,"nz-form-control",6)(175,"nz-radio-group",54)(176,"label",51),C(177),m(),f(178,"label",52),C(179),m(),f(180,"label",53),C(181),m()()()(),f(182,"nz-form-item")(183,"nz-form-label",28),C(184),m(),f(185,"nz-form-control",6)(186,"nz-radio-group",55)(187,"label",51),C(188),m(),f(189,"label",52),C(190),m(),f(191,"label",53),C(192),m()()()(),f(193,"nz-form-item")(194,"nz-form-label",28),C(195),m(),f(196,"nz-form-control",6)(197,"label",56),C(198),m()()(),f(199,"nz-form-item")(200,"nz-form-label",6),C(201),m(),f(202,"nz-form-control",6),S(203,"nz-slider",57),f(204,"div"),C(205),m()()(),S(206,"div",47),f(207,"h2",48),C(208),m(),f(209,"nz-form-item")(210,"nz-form-label",6),C(211),m(),f(212,"nz-form-control",6)(213,"nz-radio-group",58)(214,"label",59),C(215),m(),f(216,"label",60),C(217),m(),f(218,"label",61),C(219),m()()()(),f(220,"nz-form-item")(221,"nz-form-label",6),C(222),m(),f(223,"nz-form-control",6)(224,"nz-radio-group",62)(225,"label",63),C(226),m(),f(227,"label",64),C(228),m()()()(),f(229,"nz-form-item",65)(230,"nz-form-label",6),C(231),m(),f(232,"nz-form-control",6)(233,"nz-table",66,4)(235,"thead")(236,"tr")(237,"th"),C(238),m(),f(239,"th"),C(240),m(),f(241,"th"),C(242),m()()(),f(243,"tbody"),w(244,j3e,11,5,"tr",67),m()(),f(245,"a",68),D("click",function(){return T(r),M(o.onAddLightBanner())}),C(246),m()()(),S(247,"div",47),f(248,"h2",48),C(249),m(),f(250,"nz-form-item")(251,"nz-form-label",6),C(252),m(),f(253,"nz-form-control",6),S(254,"input",69),m()(),f(255,"nz-form-item")(256,"nz-form-label",6),C(257),m(),f(258,"nz-form-control",6)(259,"nz-radio-group",70)(260,"label",59),C(261),m(),f(262,"label",60),C(263),m(),f(264,"label",61),C(265),m()()()(),f(266,"nz-form-item")(267,"nz-form-label",6),C(268),m(),f(269,"nz-form-control",6)(270,"nz-radio-group",71)(271,"label",63),C(272),m(),f(273,"label",64),C(274),m()()()(),f(275,"nz-form-item",65)(276,"nz-form-label",6),C(277),m(),f(278,"nz-form-control",6)(279,"nz-table",66,4)(281,"thead")(282,"tr")(283,"th"),C(284),m(),f(285,"th"),C(286),m(),f(287,"th"),C(288),m()()(),f(289,"tbody"),w(290,$3e,11,5,"tr",67),m()(),f(291,"a",68),D("click",function(){return T(r),M(o.onAddSuperBanner())}),C(292),m()()(),S(293,"div",47),f(294,"h2",48),C(295),m(),f(296,"nz-form-item")(297,"nz-form-label",6),C(298),m(),f(299,"nz-form-control",6),S(300,"input",72),m()(),f(301,"nz-form-item")(302,"nz-form-label",6),C(303),m(),f(304,"nz-form-control",6)(305,"nz-radio-group",73)(306,"label",59),C(307),m(),f(308,"label",60),C(309),m(),f(310,"label",61),C(311),m()()()(),f(312,"nz-form-item")(313,"nz-form-label",6),C(314),m(),f(315,"nz-form-control",6)(316,"nz-radio-group",74)(317,"label",63),C(318),m(),f(319,"label",64),C(320),m()()()(),f(321,"nz-form-item",65)(322,"nz-form-label",6),C(323,"Banner"),m(),f(324,"nz-form-control",6)(325,"nz-table",66,4)(327,"thead")(328,"tr")(329,"th"),C(330),m(),f(331,"th"),C(332),m(),f(333,"th"),C(334),m()()(),f(335,"tbody"),w(336,Y3e,11,5,"tr",67),m()(),f(337,"a",68),D("click",function(){return T(r),M(o.onAddSimBanner())}),C(338),m()()(),f(339,"nz-form-item")(340,"nz-form-label",6),C(341),m(),f(342,"nz-form-control",6),S(343,"label",75),m()(),f(344,"nz-form-item")(345,"nz-form-label",6),C(346),m(),f(347,"nz-form-control",6),S(348,"nz-slider",76),f(349,"div"),C(350),m()()(),f(351,"nz-form-item")(352,"nz-form-label",6),C(353),m(),f(354,"nz-form-control",6),S(355,"textarea",77),m()(),S(356,"div",47),f(357,"h2",48),C(358),m(),f(359,"nz-form-item")(360,"nz-form-label",6),C(361),m(),f(362,"nz-form-control",6),S(363,"input",78),m()(),f(364,"nz-form-item")(365,"nz-form-label",6),C(366),m(),f(367,"nz-form-control",6)(368,"nz-radio-group",79)(369,"label",59),C(370),m(),f(371,"label",60),C(372),m(),f(373,"label",61),C(374),m()()()(),f(375,"nz-form-item",65)(376,"nz-form-label",6),C(377,"Banner"),m(),f(378,"nz-form-control",6)(379,"nz-table",66,4)(381,"thead")(382,"tr")(383,"th"),C(384),m(),f(385,"th"),C(386),m(),f(387,"th"),C(388),m()()(),f(389,"tbody"),w(390,U3e,11,5,"tr",67),m()(),f(391,"a",68),D("click",function(){return T(r),M(o.onAddSideBanner())}),C(392),m()()(),f(393,"nz-form-item")(394,"nz-form-label",6),C(395),m(),f(396,"nz-form-control",6),S(397,"label",80),m()(),f(398,"nz-form-item")(399,"nz-form-label",6),C(400),m(),f(401,"nz-form-control",6),S(402,"nz-slider",81),f(403,"div"),C(404),m()()(),S(405,"div",47),f(406,"h2",48),C(407),m(),f(408,"nz-form-item")(409,"nz-form-label",6),C(410),m(),f(411,"nz-form-control",6),S(412,"input",82),m()(),f(413,"nz-form-item")(414,"nz-form-label",28),C(415),m(),f(416,"nz-form-control",6),S(417,"label",83),m()(),f(418,"nz-form-item",65)(419,"nz-form-label",6),C(420),m(),f(421,"nz-form-control",6),S(422,"img",84),f(423,"app-upload",10),D("onChange",function(a){return T(r),M(o.onShortcutImgChange(a))}),m(),f(424,"input",85),D("change",function(a){return T(r),M(o.onShortcutImgChange(a))}),m()()(),S(425,"div",47),f(426,"h2",48),C(427),m(),f(428,"nz-form-item",65)(429,"nz-form-label",6),C(430),m(),f(431,"nz-form-control",6)(432,"nz-table",66,4)(434,"thead")(435,"tr")(436,"th"),C(437),m(),f(438,"th"),C(439),m(),f(440,"th"),C(441),m()()(),f(442,"tbody"),w(443,W3e,9,4,"tr",67),m()(),f(444,"a",86),D("click",function(){return T(r),M(o.onAddMirror())}),C(445),m()()(),f(446,"div",87)(447,"button",88),D("click",function(){return T(r),M(o.handleSubmit())}),C(448),m(),f(449,"p",89),C(450),m()()()}if(2&i){const r=He(51),s=He(55),a=He(59),c=He(63);h("formGroup",o.validateForm),d(2),h("nzSpan",4),d(),x(o.$t("_webLogo")),d(),h("nzSpan",20),d(2),h("src",o.settings.favicon,Ot),d(2),Ce(" ",o.$t("_updateLogo")," "),d(3),h("value",o.settings.favicon),d(2),h("nzSpan",4),d(),x(o.$t("_title")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_webDesc")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_keywords")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_defLanguage")),d(),h("nzSpan",10),d(5),h("nzSpan",4),d(2),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_pageLoad")),d(),h("nzSpan",20),d(3),x(o.$t("_random")),d(2),x(o.$t("_noSet")),d(),h("nzPopoverContent",r),d(4),h("nzPopoverContent",s),d(4),h("nzPopoverContent",a),d(4),h("nzPopoverContent",c),d(5),h("nzSpan",4),d(2),h("nzSpan",10),d(),h("nzAutosize",Ti(258,L6)),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_allowCollect")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_enableSEO")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_showGithub")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_showLanguage")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_showRate")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_displaySwitchTheme")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_defTheme")),d(),h("nzSpan",20),d(15),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_appTheme")),d(),h("nzSpan",20),d(3),x(o.$t("_followPage")),d(12),h("nzSpan",4),d(),x(o.$t("_headHtml")),d(),h("nzSpan",10),d(),h("nzAutosize",Ti(259,L6)),d(2),h("nzSpan",4),d(),x(o.$t("_footHtml")),d(),h("nzSpan",10),d(),h("nzAutosize",Ti(260,L6)),d(2),h("nzSpan",4),d(),x(o.$t("_requestAddress")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_requestTip")),d(3),x(o.$t("_spiderRule")),d(3),x(o.$t("_spiderTip")),d(3),x(o.$t("_spiderNetTip")),d(3),x(o.$t("_spiderBuildTip")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_spiderTitle")),d(),h("nzSpan",20),d(3),x(o.$t("_notSpider")),d(2),x(o.$t("_spiderEmpty")),d(2),x(o.$t("_spiderAlways")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_spiderIcon")),d(),h("nzSpan",20),d(3),x(o.$t("_notSpider")),d(2),x(o.$t("_spiderEmpty")),d(2),x(o.$t("_spiderAlways")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_spiderDesc")),d(),h("nzSpan",20),d(3),x(o.$t("_notSpider")),d(2),x(o.$t("_spiderEmpty")),d(2),x(o.$t("_spiderAlways")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_spiderStatus")),d(),h("nzSpan",20),d(2),x(o.$t("_checkStatus")),d(2),h("nzSpan",4),d(),x(o.$t("_spiderQty")),d(),h("nzSpan",10),d(),h("nzMin",0)("nzMax",200),d(2),x(o.$t("_spiderQtyTip")),d(3),Ce("Light ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_cardStyle")),d(),h("nzSpan",10),d(3),x(o.$t("_standard")),d(2),x(o.$t("_column")),d(2),x(o.$t("_simplicity")),d(2),h("nzSpan",4),d(),x(o.$t("_navOver")),d(),h("nzSpan",10),d(3),x(o.$t("_scrollBar")),d(2),x(o.$t("_ellipsis")),d(2),h("nzSpan",4),d(),x(o.$t("_sidebarImg")),d(),h("nzSpan",20),d(),h("nzData",o.settings.lightImages)("nzShowPagination",!1),d(5),x(o.$t("_backgroundImage")),d(2),x(o.$t("_jumpAddr")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.lightImages),d(2),x(o.$t("_add")),d(3),Ce("Super ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_title")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_defTitle4")),d(2),h("nzSpan",4),d(),x(o.$t("_cardStyle")),d(),h("nzSpan",10),d(3),x(o.$t("_standard")),d(2),x(o.$t("_column")),d(2),x(o.$t("_simplicity")),d(2),h("nzSpan",4),d(),x(o.$t("_navOver")),d(),h("nzSpan",10),d(3),x(o.$t("_scrollBar")),d(2),x(o.$t("_ellipsis")),d(2),h("nzSpan",4),d(),x(o.$t("_sidebarImg")),d(),h("nzSpan",20),d(),h("nzData",o.settings.superImages)("nzShowPagination",!1),d(5),x(o.$t("_backgroundImage")),d(2),x(o.$t("_jumpAddr")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.superImages),d(2),x(o.$t("_add")),d(3),Ce("Sim ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_title")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_defaultTitle")),d(2),h("nzSpan",4),d(),x(o.$t("_cardStyle")),d(),h("nzSpan",10),d(3),x(o.$t("_standard")),d(2),x(o.$t("_column")),d(2),x(o.$t("_simplicity")),d(2),h("nzSpan",4),d(),x(o.$t("_navOver")),d(),h("nzSpan",10),d(3),x(o.$t("_scrollBar")),d(2),x(o.$t("_ellipsis")),d(2),h("nzSpan",4),d(2),h("nzSpan",20),d(),h("nzData",o.settings.simThemeImages)("nzShowPagination",!1),d(5),x(o.$t("_backgroundImage")),d(2),x(o.$t("_jumpAddr")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.simThemeImages),d(2),x(o.$t("_add")),d(2),h("nzSpan",4),d(),x(o.$t("_autoPlay")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_bannerHeight")),d(),h("nzSpan",10),d(),h("nzMin",0)("nzMax",1e3),d(2),x(o.$t("_bannerTip")),d(2),h("nzSpan",4),d(),x(o.$t("_desc")),d(),h("nzSpan",10),d(),h("nzAutosize",Ti(261,L6)),d(3),Ce("Side ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_sidebarTitle")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_defTitle4")),d(2),h("nzSpan",4),d(),x(o.$t("_cardStyle")),d(),h("nzSpan",10),d(3),x(o.$t("_standard")),d(2),x(o.$t("_column")),d(2),x(o.$t("_simplicity")),d(2),h("nzSpan",4),d(2),h("nzSpan",20),d(),h("nzData",o.settings.sideThemeImages)("nzShowPagination",!1),d(5),x(o.$t("_backgroundImage")),d(2),x(o.$t("_jumpAddr")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.sideThemeImages),d(2),x(o.$t("_add")),d(2),h("nzSpan",4),d(),x(o.$t("_autoPlay")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_bannerHeight")),d(),h("nzSpan",10),d(),h("nzMin",0)("nzMax",1e3),d(2),x(o.$t("_bannerTip")),d(3),Ce("Shortcut ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_title")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_defaultTitle")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_showWeather")),d(),h("nzSpan",20),d(3),h("nzSpan",4),d(),x(o.$t("_backgroundImage")),d(),h("nzSpan",10),d(),h("src",o.settings.shortcutThemeImages[0].src,Ot),d(2),h("value",o.settings.shortcutThemeImages[0].src),d(3),ca("",o.$t("_mirrorList"),"",o.$t("_ignore"),""),d(2),h("nzSpan",4),d(),x(o.$t("_mirrorList")),d(),h("nzSpan",20),d(),h("nzData",o.settings.mirrorList)("nzShowPagination",!1),d(5),x(o.$t("_mirrorAddr")),d(2),x(o.$t("_mirrorName")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.mirrorList),d(2),x(o.$t("_add")),d(2),h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_save")," "),d(2),x(o.$t("_setSaveTip"))}},dependencies:[zn,Ws,_P,YP,Che,Nc,Vc,x1,Cc,F2,V6,R6,F6,nr,mi,tr,T6,Cr,Qi,g6,R1,L1,B1,Y1,N2,$1,V2,Bc,U1,Rc,C3e,fI,dI],styles:["#file[_ngcontent-%COMP%]{cursor:pointer}#file[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}#file[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:50px;height:50px}.preview[_ngcontent-%COMP%]{width:300px}.save-tip[_ngcontent-%COMP%]{margin-top:10px;color:#f50;font-weight:700}.divider[_ngcontent-%COMP%]{height:1px;width:100%;margin:20px 0;background-color:#eee}.title[_ngcontent-%COMP%]{margin-bottom:20px}.sim-ban[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:inline-block;width:100px;min-height:60px;object-fit:cover;margin-right:20px;border:1px solid #eee}.sim-ban[_ngcontent-%COMP%] .anticon{font-size:30px}.logo-input[_ngcontent-%COMP%]{display:block!important;width:518px;margin-top:5px}.bottom-bar[_ngcontent-%COMP%]{z-index:3;position:sticky;bottom:0;left:0;padding:10px 0 10px 200px;background-color:#fff;box-shadow:0 0 10px #ccc;margin-top:80px;border-radius:8px;display:flex;align-items:center}"]})}return t})();var q3e=fe(578);function K3e(t,n){if(1&t&&($e(0),S(1,"span",1),Ye()),2&t){const e=n.$implicit;d(),h("nzType",e)}}const J3e=()=>({minWidth:"46px"}),Z3e=()=>({visible:!1});function Q3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g().$implicit;d(),Ce(" ",e.tab.label," ")}}function X3e(t,n){if(1&t){const e=U();f(0,"li",8),D("click",function(){const o=T(e).$implicit;return M(g(2).onSelect(o))})("contextmenu",function(o){const r=T(e).$implicit;return M(g(2).onContextmenu(r,o))}),w(1,Q3e,2,1,"ng-container",9),m()}if(2&t){const e=n.$implicit;Q("ant-tabs-dropdown-menu-item-disabled",e.disabled),h("nzSelected",e.active)("nzDisabled",e.disabled),d(),h("nzStringTemplateOutlet",e.tab.label)("nzStringTemplateOutletContext",Ti(6,Z3e))}}function e6e(t,n){if(1&t&&(f(0,"ul",6),w(1,X3e,2,7,"li",7),m()),2&t){const e=g();d(),h("ngForOf",e.items)}}function t6e(t,n){if(1&t){const e=U();f(0,"button",10),D("click",function(){return T(e),M(g().addClicked.emit())}),m()}2&t&&h("addIcon",g().addIcon)}const n6e=["navWarp"],i6e=["navList"],o6e=["*"];function r6e(t,n){if(1&t){const e=U();f(0,"button",8),D("click",function(){return T(e),M(g().addClicked.emit())}),m()}2&t&&(h("addIcon",g().addIcon),Pt("tabindex",-1))}function s6e(t,n){}function a6e(t,n){if(1&t&&(f(0,"div",9),w(1,s6e,0,0,"ng-template",10),m()),2&t){const e=g();d(),h("ngTemplateOutlet",e.extraTemplate)}}const c6e=["nz-tab-body",""];function l6e(t,n){}function d6e(t,n){if(1&t&&($e(0),w(1,l6e,0,0,"ng-template",1),Ye()),2&t){const e=g();d(),h("ngTemplateOutlet",e.content)}}function u6e(t,n){if(1&t&&($e(0),S(1,"span",1),Ye()),2&t){const e=n.$implicit;d(),h("nzType",e)}}const h6e=["contentTemplate"],p6e=[[["","nz-tab-link",""]],"*"],f6e=["[nz-tab-link]","*"];function m6e(t,n){1&t&&bt(0)}function g6e(t,n){1&t&&bt(0,1)}const v6e=()=>({visible:!0});function _6e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g().$implicit;d(),x(e.label)}}function b6e(t,n){if(1&t){const e=U();f(0,"button",10),D("click",function(o){T(e);const r=g().index;return M(g(2).onClose(r,o))}),m()}2&t&&h("closeIcon",g().$implicit.nzCloseIcon)}function y6e(t,n){if(1&t){const e=U();f(0,"div",6),D("click",function(o){const r=T(e),s=r.$implicit,a=r.index;return M(g(2).clickNavItem(s,a,o))})("contextmenu",function(o){const r=T(e).$implicit;return M(g(2).contextmenuNavItem(r,o))}),f(1,"button",7),w(2,_6e,2,1,"ng-container",8)(3,b6e,1,1,"button",9),m()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);Lt("margin-right","horizontal"===o.position?o.nzTabBarGutter:null,"px")("margin-bottom","vertical"===o.position?o.nzTabBarGutter:null,"px"),Q("ant-tabs-tab-active",o.nzSelectedIndex===i)("ant-tabs-tab-disabled",e.nzDisabled),d(),h("id",o.getTabContentId(i))("disabled",e.nzDisabled)("tab",e)("active",o.nzSelectedIndex===i),Pt("tabIndex",o.getTabIndex(e,i))("aria-disabled",e.nzDisabled)("aria-selected",o.nzSelectedIndex===i&&!o.nzHideAll)("aria-controls",o.getTabContentId(i)),d(),h("nzStringTemplateOutlet",e.label)("nzStringTemplateOutletContext",Ti(19,v6e)),d(),h("ngIf",e.nzClosable&&o.closable&&!e.nzDisabled)}}function C6e(t,n){if(1&t){const e=U();f(0,"nz-tabs-nav",4),D("tabScroll",function(o){return T(e),M(g().nzTabListScroll.emit(o))})("selectFocusedIndex",function(o){return T(e),M(g().setSelectedIndex(o))})("addClicked",function(){return T(e),M(g().onAdd())}),w(1,y6e,4,20,"div",5),m()}if(2&t){const e=g();h("ngStyle",e.nzTabBarStyle)("selectedIndex",e.nzSelectedIndex||0)("inkBarAnimated",e.inkBarAnimated)("addable",e.addable)("addIcon",e.nzAddIcon)("hideBar",e.nzHideAll)("position",e.position)("extraTemplate",e.nzTabBarExtraContent),d(),h("ngForOf",e.tabs)}}function w6e(t,n){if(1&t&&S(0,"div",11),2&t){const e=n.$implicit,i=n.index,o=g();h("id",o.getTabContentId(i))("active",o.nzSelectedIndex===i&&!o.nzHideAll)("content",e.content)("forceRender",e.nzForceRender)("animated",o.tabPaneAnimated),Pt("aria-labelledby",o.getTabContentId(i))}}let R2=(()=>{class t{constructor(e){this.elementRef=e,this.addIcon="plus",this.element=this.elementRef.nativeElement}getElementWidth(){return this.element?.offsetWidth||0}getElementHeight(){return this.element?.offsetHeight||0}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tab-add-button"],["button","nz-tab-add-button",""]],hostAttrs:["aria-label","Add tab","type","button",1,"ant-tabs-nav-add"],inputs:{addIcon:"addIcon"},standalone:!0,features:[me],decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"],["nz-icon","","nzTheme","outline",3,"nzType"]],template:function(i,o){1&i&&w(0,K3e,2,1,"ng-container",0),2&i&&h("nzStringTemplateOutlet",o.addIcon)},dependencies:[Tn,Sn,On,cn],encapsulation:2})}return t})(),Ov=(()=>{class t{get _animated(){return"NoopAnimations"!==this.animationMode&&this.animated}constructor(e,i,o){this.elementRef=e,this.ngZone=i,this.animationMode=o,this.position="horizontal",this.animated=!0}alignToElement(e){this.ngZone.runOutsideAngular(()=>{p2(()=>this.setStyles(e))})}setStyles(e){const i=this.elementRef.nativeElement;"horizontal"===this.position?(i.style.top="",i.style.height="",i.style.left=this.getLeftPosition(e),i.style.width=this.getElementWidth(e)):(i.style.left="",i.style.width="",i.style.top=this.getTopPosition(e),i.style.height=this.getElementHeight(e))}getLeftPosition(e){return e?`${e.offsetLeft||0}px`:"0"}getElementWidth(e){return e?`${e.offsetWidth||0}px`:"0"}getTopPosition(e){return e?`${e.offsetTop||0}px`:"0"}getElementHeight(e){return e?`${e.offsetHeight||0}px`:"0"}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(De),v(ta,8))};static#t=this.\u0275dir=de({type:t,selectors:[["nz-tabs-ink-bar"],["","nz-tabs-ink-bar",""]],hostAttrs:[1,"ant-tabs-ink-bar"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-tabs-ink-bar-animated",o._animated)},inputs:{position:"position",animated:"animated"},standalone:!0})}return t})(),Pv=(()=>{class t{constructor(e){this.elementRef=e,this.disabled=!1,this.active=!1,this.el=e.nativeElement,this.parentElement=this.el.parentElement}focus(){this.el.focus()}get width(){return this.parentElement.offsetWidth}get height(){return this.parentElement.offsetHeight}get left(){return this.parentElement.offsetLeft}get top(){return this.parentElement.offsetTop}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzTabNavItem",""]],inputs:{disabled:[2,"disabled","disabled",O],tab:"tab",active:[2,"active","active",O]},standalone:!0,features:[je]})}return t})(),H6=(()=>{class t{constructor(e,i){this.cdr=e,this.elementRef=i,this.items=[],this.addable=!1,this.addIcon="plus",this.addClicked=new H,this.selected=new H,this.menuOpened=!1,this.element=this.elementRef.nativeElement}onSelect(e){e.disabled||(e.tab.nzClick.emit(),this.selected.emit(e))}onContextmenu(e,i){e.disabled||e.tab.nzContextmenu.emit(i)}showItems(){clearTimeout(this.closeAnimationWaitTimeoutId),this.menuOpened=!0,this.cdr.markForCheck()}menuVisChange(e){e||(this.closeAnimationWaitTimeoutId=setTimeout(()=>{this.menuOpened=!1,this.cdr.markForCheck()},150))}getElementWidth(){return this.element?.offsetWidth||0}getElementHeight(){return this.element?.offsetHeight||0}ngOnDestroy(){clearTimeout(this.closeAnimationWaitTimeoutId)}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(Te))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tab-nav-operation"]],hostAttrs:[1,"ant-tabs-nav-operations"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-tabs-nav-operations-hidden",0===o.items.length)},inputs:{items:"items",addable:[2,"addable","addable",O],addIcon:"addIcon"},outputs:{addClicked:"addClicked",selected:"selected"},exportAs:["nzTabNavOperation"],standalone:!0,features:[je,me],decls:7,vars:6,consts:[["dropdownTrigger","nzDropdown"],["menu","nzDropdownMenu"],["nz-dropdown","","type","button","tabindex","-1","aria-hidden","true","nzOverlayClassName","nz-tabs-dropdown",1,"ant-tabs-nav-more",3,"nzVisibleChange","mouseenter","nzDropdownMenu","nzOverlayStyle","nzMatchWidthElement"],["nz-icon","","nzType","ellipsis"],["nz-menu","",4,"ngIf"],["nz-tab-add-button","",3,"addIcon","click",4,"ngIf"],["nz-menu",""],["nz-menu-item","","class","ant-tabs-dropdown-menu-item",3,"ant-tabs-dropdown-menu-item-disabled","nzSelected","nzDisabled","click","contextmenu",4,"ngFor","ngForOf"],["nz-menu-item","",1,"ant-tabs-dropdown-menu-item",3,"click","contextmenu","nzSelected","nzDisabled"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],["nz-tab-add-button","",3,"click","addIcon"]],template:function(i,o){if(1&i){const r=U();f(0,"button",2,0),D("nzVisibleChange",function(a){return T(r),M(o.menuVisChange(a))})("mouseenter",function(){return T(r),M(o.showItems())}),S(2,"span",3),m(),f(3,"nz-dropdown-menu",null,1),w(5,e6e,2,1,"ul",4),m(),w(6,t6e,1,1,"button",5)}2&i&&(h("nzDropdownMenu",He(4))("nzOverlayStyle",Ti(5,J3e))("nzMatchWidthElement",null),d(5),h("ngIf",o.menuOpened),d(),h("ngIf",o.addable))},dependencies:[On,cn,Tt,zn,Tn,Sn,R2,C2,R7,Sa,Us,N1],encapsulation:2,changeDetection:0})}return t})();const vI=.995**20;let _I=(()=>{class t{constructor(e,i){this.ngZone=e,this.elementRef=i,this.lastWheelDirection=null,this.lastWheelTimestamp=0,this.lastTimestamp=0,this.lastTimeDiff=0,this.lastMixedWheel=0,this.lastWheelPrevent=!1,this.touchPosition=null,this.lastOffset=null,this.motion=-1,this.unsubscribe=()=>{},this.offsetChange=new H,this.tabScroll=new H,this.onTouchEnd=o=>{if(!this.touchPosition)return;const r=this.lastOffset,s=this.lastTimeDiff;if(this.lastOffset=this.touchPosition=null,r){const a=r.x/s,c=r.y/s,l=Math.abs(a),u=Math.abs(c);if(Math.max(l,u)<.1)return;let p=a,_=c;this.motion=window.setInterval(()=>{Math.abs(p)<.01&&Math.abs(_)<.01?window.clearInterval(this.motion):(p*=vI,_*=vI,this.onOffset(20*p,20*_,o))},20)}},this.onTouchMove=o=>{if(!this.touchPosition)return;o.preventDefault();const{screenX:r,screenY:s}=o.touches[0],a=r-this.touchPosition.x,c=s-this.touchPosition.y;this.onOffset(a,c,o);const l=Date.now();this.lastTimeDiff=l-this.lastTimestamp,this.lastTimestamp=l,this.lastOffset={x:a,y:c},this.touchPosition={x:r,y:s}},this.onTouchStart=o=>{const{screenX:r,screenY:s}=o.touches[0];this.touchPosition={x:r,y:s},window.clearInterval(this.motion)},this.onWheel=o=>{const{deltaX:r,deltaY:s}=o;let a;const c=Math.abs(r),l=Math.abs(s);c===l?a="x"===this.lastWheelDirection?r:s:c>l?(a=r,this.lastWheelDirection="x"):(a=s,this.lastWheelDirection="y");const u=Date.now(),p=Math.abs(a);(u-this.lastWheelTimestamp>100||p-this.lastMixedWheel>10)&&(this.lastWheelPrevent=!1),this.onOffset(-a,-a,o),(o.defaultPrevented||this.lastWheelPrevent)&&(this.lastWheelPrevent=!0),this.lastWheelTimestamp=u,this.lastMixedWheel=p}}ngOnInit(){this.unsubscribe=this.ngZone.runOutsideAngular(()=>{const e=this.elementRef.nativeElement,i=nn(e,"wheel"),o=nn(e,"touchstart"),r=nn(e,"touchmove"),s=nn(e,"touchend"),a=new Ft;return a.add(this.subscribeWrap("wheel",i,this.onWheel)),a.add(this.subscribeWrap("touchstart",o,this.onTouchStart)),a.add(this.subscribeWrap("touchmove",r,this.onTouchMove)),a.add(this.subscribeWrap("touchend",s,this.onTouchEnd)),()=>{a.unsubscribe()}})}subscribeWrap(e,i,o){return i.subscribe(r=>{this.tabScroll.emit({type:e,event:r}),r.defaultPrevented||o(r)})}onOffset(e,i,o){this.ngZone.run(()=>{this.offsetChange.emit({x:e,y:i,event:o})})}ngOnDestroy(){this.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzTabScrollList",""]],outputs:{offsetChange:"offsetChange",tabScroll:"tabScroll"},standalone:!0})}return t})();const S6e=typeof requestAnimationFrame<"u"?_7:y7;let j6=(()=>{class t{get selectedIndex(){return this._selectedIndex}set selectedIndex(e){const i=Rs(e);this._selectedIndex!==i&&(this._selectedIndex=e,this.selectedIndexChanged=!0,this.keyManager&&this.keyManager.updateActiveItem(e))}get focusIndex(){return this.keyManager?this.keyManager.activeItemIndex:0}set focusIndex(e){!this.isValidIndex(e)||this.focusIndex===e||!this.keyManager||this.keyManager.setActiveItem(e)}get showAddButton(){return 0===this.hiddenItems.length&&this.addable}constructor(e,i,o,r,s){this.cdr=e,this.ngZone=i,this.viewportRuler=o,this.nzResizeObserver=r,this.dir=s,this.indexFocused=new H,this.selectFocusedIndex=new H,this.addClicked=new H,this.tabScroll=new H,this.position="horizontal",this.addable=!1,this.hideBar=!1,this.addIcon="plus",this.inkBarAnimated=!0,this.translate=null,this.transformX=0,this.transformY=0,this.pingLeft=!1,this.pingRight=!1,this.pingTop=!1,this.pingBottom=!1,this.hiddenItems=[],this.destroy$=new N,this._selectedIndex=0,this.wrapperWidth=0,this.wrapperHeight=0,this.scrollListWidth=0,this.scrollListHeight=0,this.operationWidth=0,this.operationHeight=0,this.addButtonWidth=0,this.addButtonHeight=0,this.selectedIndexChanged=!1}ngAfterViewInit(){const e=this.dir?this.dir.change.asObservable():We(null),i=this.viewportRuler.change(150),o=()=>{this.updateScrollListPosition(),this.alignInkBarToSelectedTab()};this.keyManager=new bse(this.items).withHorizontalOrientation(this.getLayoutDirection()).withWrap(),this.keyManager.updateActiveItem(this.selectedIndex),p2(o),Pn(this.nzResizeObserver.observe(this.navWarpRef),this.nzResizeObserver.observe(this.navListRef)).pipe(I(this.destroy$),_c(16,S6e)).subscribe(()=>{o()}),Pn(e,i,this.items.changes).pipe(I(this.destroy$)).subscribe(()=>{Promise.resolve().then(o),this.keyManager.withHorizontalOrientation(this.getLayoutDirection())}),this.keyManager.change.pipe(I(this.destroy$)).subscribe(r=>{this.indexFocused.emit(r),this.setTabFocus(r),this.scrollToTab(this.keyManager.activeItem)})}ngAfterContentChecked(){this.selectedIndexChanged&&(this.updateScrollListPosition(),this.alignInkBarToSelectedTab(),this.selectedIndexChanged=!1,this.cdr.markForCheck())}ngOnDestroy(){clearTimeout(this.lockAnimationTimeoutId),clearTimeout(this.cssTransformTimeWaitingId),this.destroy$.next(),this.destroy$.complete()}onSelectedFromMenu(e){const i=this.items.toArray().findIndex(o=>o===e);-1!==i&&(this.keyManager.updateActiveItem(i),this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this.scrollToTab(e)))}onOffsetChange(e){if("horizontal"===this.position){if(!this.lockAnimationTimeoutId&&(this.transformX>=0&&e.x>0||this.transformX<=this.wrapperWidth-this.scrollListWidth&&e.x<0))return;e.event.preventDefault(),this.transformX=this.clampTransformX(this.transformX+e.x),this.setTransform(this.transformX,0)}else{if(!this.lockAnimationTimeoutId&&(this.transformY>=0&&e.y>0||this.transformY<=this.wrapperHeight-this.scrollListHeight&&e.y<0))return;e.event.preventDefault(),this.transformY=this.clampTransformY(this.transformY+e.y),this.setTransform(0,this.transformY)}this.lockAnimation(),this.setVisibleRange(),this.setPingStatus()}handleKeydown(e){const i=this.navWarpRef.nativeElement.contains(e.target);if(!l2(e)&&i)switch(e.keyCode){case 37:case 38:case 39:case 40:this.lockAnimation(),this.keyManager.onKeydown(e);break;case 13:case 32:this.focusIndex!==this.selectedIndex&&this.selectFocusedIndex.emit(this.focusIndex);break;default:this.keyManager.onKeydown(e)}}isValidIndex(e){if(!this.items)return!0;const i=this.items?this.items.toArray()[e]:null;return!!i&&!i.disabled}scrollToTab(e){if(!this.items.find(o=>o===e))return;const i=this.items.toArray();if("horizontal"===this.position){let o=this.transformX;if("rtl"===this.getLayoutDirection()){const r=i[0].left+i[0].width-e.left-e.width;rthis.transformX+this.wrapperWidth&&(o=r+e.width-this.wrapperWidth)}else e.left<-this.transformX?o=-e.left:e.left+e.width>-this.transformX+this.wrapperWidth&&(o=-(e.left+e.width-this.wrapperWidth));this.transformX=o,this.transformY=0,this.setTransform(o,0)}else{let o=this.transformY;e.top<-this.transformY?o=-e.top:e.top+e.height>-this.transformY+this.wrapperHeight&&(o=-(e.top+e.height-this.wrapperHeight)),this.transformY=o,this.transformX=0,this.setTransform(0,o)}clearTimeout(this.cssTransformTimeWaitingId),this.cssTransformTimeWaitingId=setTimeout(()=>{this.setVisibleRange()},150)}lockAnimation(){this.lockAnimationTimeoutId||this.ngZone.runOutsideAngular(()=>{this.navListRef.nativeElement.style.transition="none",this.lockAnimationTimeoutId=setTimeout(()=>{this.navListRef.nativeElement.style.transition="",this.lockAnimationTimeoutId=void 0},150)})}setTransform(e,i){this.navListRef.nativeElement.style.transform=`translate(${e}px, ${i}px)`}clampTransformX(e){const i=this.wrapperWidth-this.scrollListWidth;return"rtl"===this.getLayoutDirection()?Math.max(Math.min(i,e),0):Math.min(Math.max(i,e),0)}clampTransformY(e){return Math.min(Math.max(this.wrapperHeight-this.scrollListHeight,e),0)}updateScrollListPosition(){this.resetSizes(),this.transformX=this.clampTransformX(this.transformX),this.transformY=this.clampTransformY(this.transformY),this.setVisibleRange(),this.setPingStatus(),this.keyManager&&(this.keyManager.updateActiveItem(this.keyManager.activeItemIndex),this.keyManager.activeItem&&this.scrollToTab(this.keyManager.activeItem))}resetSizes(){this.addButtonWidth=this.addBtnRef?this.addBtnRef.getElementWidth():0,this.addButtonHeight=this.addBtnRef?this.addBtnRef.getElementHeight():0,this.operationWidth=this.operationRef.getElementWidth(),this.operationHeight=this.operationRef.getElementHeight(),this.wrapperWidth=this.navWarpRef.nativeElement.offsetWidth||0,this.wrapperHeight=this.navWarpRef.nativeElement.offsetHeight||0,this.scrollListHeight=this.navListRef.nativeElement.offsetHeight||0,this.scrollListWidth=this.navListRef.nativeElement.offsetWidth||0}alignInkBarToSelectedTab(){const e=this.items&&this.items.length?this.items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i&&this.inkBar.alignToElement(i.parentElement)}setPingStatus(){const e={top:!1,right:!1,bottom:!1,left:!1},i=this.navWarpRef.nativeElement;"horizontal"===this.position?"rtl"===this.getLayoutDirection()?(e.right=this.transformX>0,e.left=this.transformX+this.wrapperWidth{const r=`ant-tabs-nav-wrap-ping-${o}`;e[o]?i.classList.add(r):i.classList.remove(r)})}setVisibleRange(){let e,i,o,r,s,a;const c=this.items.toArray(),l={width:0,height:0,left:0,top:0,right:0},u=k=>{let A;return A="right"===i?c[0].left+c[0].width-c[k].left-c[k].width:(c[k]||l)[i],A};"horizontal"===this.position?(e="width",r=this.wrapperWidth,s=this.scrollListWidth-(this.hiddenItems.length?this.operationWidth:0),a=this.addButtonWidth,o=Math.abs(this.transformX),"rtl"===this.getLayoutDirection()?(i="right",this.pingRight=this.transformX>0,this.pingLeft=this.transformX+this.wrapperWidthr&&(p=r-a),!c.length)return this.hiddenItems=[],void this.cdr.markForCheck();const _=c.length;let b=_;for(let k=0;k<_;k+=1)if(u(k)+(c[k]||l)[e]>o+p){b=k-1;break}let y=0;for(let k=_-1;k>=0;k-=1)if(u(k){class t{constructor(){this.content=null,this.active=!1,this.animated=!0,this.forceRender=!1,this.hasBeenActive=!1}ngOnChanges(e){const{active:i}=e;i?.currentValue&&(this.hasBeenActive=!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-tab-body",""]],hostAttrs:[1,"ant-tabs-tabpane"],hostVars:10,hostBindings:function(i,o){2&i&&(oc("@tabSwitchMotion",o.active?"enter":"leave")("@.disabled",!o.animated),Pt("tabindex",o.active?0:-1)("aria-hidden",!o.active),Lt("overflow-y",o.animated?o.active?null:"none":null),Q("ant-tabs-tabpane-active",o.active)("ant-tabs-tabpane-hidden",o.animated?null:!o.active))},inputs:{content:"content",active:"active",animated:"animated",forceRender:"forceRender"},exportAs:["nzTabBody"],standalone:!0,features:[ke,me],attrs:c6e,decls:1,vars:1,consts:[[4,"ngIf"],[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&w(0,d6e,2,1,"ng-container",0),2&i&&h("ngIf",o.hasBeenActive||o.forceRender)},dependencies:[Tt,Vn],encapsulation:2,data:{animation:[Jne]},changeDetection:0})}return t})(),Iv=(()=>{class t{constructor(){this.closeIcon="close"}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tab-close-button"],["button","nz-tab-close-button",""]],hostAttrs:["aria-label","Close tab","type","button",1,"ant-tabs-tab-remove"],inputs:{closeIcon:"closeIcon"},standalone:!0,features:[me],decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"],["nz-icon","","nzTheme","outline",3,"nzType"]],template:function(i,o){1&i&&w(0,u6e,2,1,"ng-container",0),2&i&&h("nzStringTemplateOutlet",o.closeIcon)},dependencies:[Tn,Sn,On,cn],encapsulation:2})}return t})(),CI=(()=>{class t{constructor(e){this.templateRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gt,1))};static#t=this.\u0275dir=de({type:t,selectors:[["ng-template","nzTabLink",""]],exportAs:["nzTabLinkTemplate"],standalone:!0})}return t})(),wI=(()=>{class t{constructor(e,i){this.elementRef=e,this.routerLink=i}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(b1,10))};static#t=this.\u0275dir=de({type:t,selectors:[["a","nz-tab-link",""]],exportAs:["nzTabLink"],standalone:!0})}return t})(),zI=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-tab",""]],exportAs:["nzTab"],standalone:!0})}return t})();const SI=new oe("NZ_TAB_SET");let Nv=(()=>{class t{get content(){return this.template||this.contentTemplate}get label(){return this.nzTitle||this.nzTabLinkTemplateDirective?.templateRef}constructor(e){this.closestTabSet=e,this.nzTitle="",this.nzClosable=!1,this.nzCloseIcon="close",this.nzDisabled=!1,this.nzForceRender=!1,this.nzSelect=new H,this.nzDeselect=new H,this.nzClick=new H,this.nzContextmenu=new H,this.template=null,this.isActive=!1,this.position=null,this.origin=null,this.stateChanges=new N}ngOnChanges(e){const{nzTitle:i,nzDisabled:o,nzForceRender:r}=e;(i||o||r)&&this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(SI))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tab"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,CI,5),fn(r,zI,5,Gt),fn(r,wI,5)),2&i){let s;Ae(s=Oe())&&(o.nzTabLinkTemplateDirective=s.first),Ae(s=Oe())&&(o.template=s.first),Ae(s=Oe())&&(o.linkDirective=s.first)}},viewQuery:function(i,o){if(1&i&&ft(h6e,7),2&i){let r;Ae(r=Oe())&&(o.contentTemplate=r.first)}},inputs:{nzTitle:"nzTitle",nzClosable:[2,"nzClosable","nzClosable",O],nzCloseIcon:"nzCloseIcon",nzDisabled:[2,"nzDisabled","nzDisabled",O],nzForceRender:[2,"nzForceRender","nzForceRender",O]},outputs:{nzSelect:"nzSelect",nzDeselect:"nzDeselect",nzClick:"nzClick",nzContextmenu:"nzContextmenu"},exportAs:["nzTab"],standalone:!0,features:[je,ke,me],ngContentSelectors:f6e,decls:4,vars:0,consts:[["tabLinkTemplate",""],["contentTemplate",""]],template:function(i,o){1&i&&(Et(p6e),w(0,m6e,1,0,"ng-template",null,0,ot)(2,g6e,1,0,"ng-template",null,1,ot))},encapsulation:2,changeDetection:0})}return t})();class T6e{}let D6e=0,Vv=(()=>{class t{get nzSelectedIndex(){return this.selectedIndex}set nzSelectedIndex(e){this.indexToSelect=Rs(e,null)}get position(){return-1===["top","bottom"].indexOf(this.nzTabPosition)?"vertical":"horizontal"}get addable(){return"editable-card"===this.nzType&&!this.nzHideAdd}get closable(){return"editable-card"===this.nzType}get line(){return"line"===this.nzType}get inkBarAnimated(){return this.line&&("boolean"==typeof this.nzAnimated?this.nzAnimated:this.nzAnimated.inkBar)}get tabPaneAnimated(){return"boolean"==typeof this.nzAnimated?this.nzAnimated:this.nzAnimated.tabPane}constructor(e,i,o,r,s){this.nzConfigService=e,this.ngZone=i,this.cdr=o,this.directionality=r,this.router=s,this._nzModuleName="tabs",this.nzTabPosition="top",this.nzCanDeactivate=null,this.nzAddIcon="plus",this.nzTabBarStyle=null,this.nzType="line",this.nzSize="default",this.nzAnimated=!0,this.nzTabBarGutter=void 0,this.nzHideAdd=!1,this.nzCentered=!1,this.nzHideAll=!1,this.nzLinkRouter=!1,this.nzLinkExact=!0,this.nzSelectChange=new H(!0),this.nzSelectedIndexChange=new H,this.nzTabListScroll=new H,this.nzClose=new H,this.nzAdd=new H,this.allTabs=new Ua,this.tabs=new Ua,this.dir="ltr",this.destroy$=new N,this.indexToSelect=0,this.selectedIndex=null,this.tabLabelSubscription=Ft.EMPTY,this.tabsSubscription=Ft.EMPTY,this.canDeactivateSubscription=Ft.EMPTY,this.tabSetId=D6e++}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.tabs.destroy(),this.tabLabelSubscription.unsubscribe(),this.tabsSubscription.unsubscribe(),this.canDeactivateSubscription.unsubscribe()}ngAfterContentInit(){this.ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>this.setUpRouter())}),this.subscribeToTabLabels(),this.subscribeToAllTabChanges(),this.tabsSubscription=this.tabs.changes.subscribe(()=>{if(this.clampTabIndex(this.indexToSelect)===this.selectedIndex){const i=this.tabs.toArray();for(let o=0;o{this.tabs.forEach((o,r)=>o.isActive=r===e),i||this.nzSelectedIndexChange.emit(e)})}this.tabs.forEach((i,o)=>{i.position=o-e,null!=this.selectedIndex&&0===i.position&&!i.origin&&(i.origin=e-this.selectedIndex)}),this.selectedIndex!==e&&(this.selectedIndex=e,this.cdr.markForCheck())}onClose(e,i){i.preventDefault(),i.stopPropagation(),this.nzClose.emit({index:e})}onAdd(){this.nzAdd.emit()}clampTabIndex(e){return Math.min(this.tabs.length-1,Math.max(e||0,0))}createChangeEvent(e){const i=new T6e;return i.index=e,this.tabs&&this.tabs.length&&(i.tab=this.tabs.toArray()[e],this.tabs.forEach((o,r)=>{r!==e&&o.nzDeselect.emit()}),i.tab.nzSelect.emit()),i}subscribeToTabLabels(){this.tabLabelSubscription&&this.tabLabelSubscription.unsubscribe(),this.tabLabelSubscription=Pn(...this.tabs.map(e=>e.stateChanges)).subscribe(()=>this.cdr.markForCheck())}subscribeToAllTabChanges(){this.allTabs.changes.pipe(gn(this.allTabs)).subscribe(e=>{this.tabs.reset(e.filter(i=>i.closestTabSet===this)),this.tabs.notifyOnChanges()})}canDeactivateFun(e,i){return"function"==typeof this.nzCanDeactivate?bE(this.nzCanDeactivate(e,i)).pipe(Ns(),I(this.destroy$)):We(!0)}clickNavItem(e,i,o){e.nzDisabled||(e.nzClick.emit(),this.isRouterLinkClickEvent(i,o)||this.setSelectedIndex(i))}isRouterLinkClickEvent(e,i){const o=i.target;return!!this.nzLinkRouter&&!!this.tabs.toArray()[e]?.linkDirective?.elementRef.nativeElement.contains(o)}contextmenuNavItem(e,i){e.nzDisabled||e.nzContextmenu.emit(i)}setSelectedIndex(e){this.canDeactivateSubscription.unsubscribe(),this.canDeactivateSubscription=this.canDeactivateFun(this.selectedIndex,e).subscribe(i=>{i&&(this.nzSelectedIndex=e,this.tabNavBarRef.focusIndex=e,this.cdr.markForCheck())})}getTabIndex(e,i){return e.nzDisabled?null:this.selectedIndex===i?0:-1}getTabContentId(e){return`nz-tabs-${this.tabSetId}-tab-${e}`}setUpRouter(){if(this.nzLinkRouter){if(!this.router)throw new Error(`${A3} you should import 'RouterModule' if you want to use 'nzLinkRouter'!`);this.router.events.pipe(I(this.destroy$),yt(e=>e instanceof Br),gn(!0),w2(0)).subscribe(()=>{this.updateRouterActive(),this.cdr.markForCheck()})}}updateRouterActive(){if(this.router.navigated){const e=this.findShouldActiveTabIndex();e!==this.selectedIndex&&this.setSelectedIndex(e),this.nzHideAll=-1===e}}findShouldActiveTabIndex(){const e=this.tabs.toArray(),i=this.isLinkActive(this.router);return e.findIndex(o=>{const r=o.linkDirective;return!!r&&i(r.routerLink)})}isLinkActive(e){return i=>!!i&&e.isActive(i.urlTree||"",{paths:this.nzLinkExact?"exact":"subset",queryParams:this.nzLinkExact?"exact":"subset",fragment:"ignored",matrixParams:"ignored"})}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(De),v(Ue),v(wt,8),v(oi,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tabset"]],contentQueries:function(i,o,r){if(1&i&&fn(r,Nv,5),2&i){let s;Ae(s=Oe())&&(o.allTabs=s)}},viewQuery:function(i,o){if(1&i&&ft(j6,5),2&i){let r;Ae(r=Oe())&&(o.tabNavBarRef=r.first)}},hostAttrs:[1,"ant-tabs"],hostVars:24,hostBindings:function(i,o){2&i&&Q("ant-tabs-card","card"===o.nzType||"editable-card"===o.nzType)("ant-tabs-editable","editable-card"===o.nzType)("ant-tabs-editable-card","editable-card"===o.nzType)("ant-tabs-centered",o.nzCentered)("ant-tabs-rtl","rtl"===o.dir)("ant-tabs-top","top"===o.nzTabPosition)("ant-tabs-bottom","bottom"===o.nzTabPosition)("ant-tabs-left","left"===o.nzTabPosition)("ant-tabs-right","right"===o.nzTabPosition)("ant-tabs-default","default"===o.nzSize)("ant-tabs-small","small"===o.nzSize)("ant-tabs-large","large"===o.nzSize)},inputs:{nzSelectedIndex:"nzSelectedIndex",nzTabPosition:"nzTabPosition",nzTabBarExtraContent:"nzTabBarExtraContent",nzCanDeactivate:"nzCanDeactivate",nzAddIcon:"nzAddIcon",nzTabBarStyle:"nzTabBarStyle",nzType:"nzType",nzSize:"nzSize",nzAnimated:"nzAnimated",nzTabBarGutter:"nzTabBarGutter",nzHideAdd:[2,"nzHideAdd","nzHideAdd",O],nzCentered:[2,"nzCentered","nzCentered",O],nzHideAll:[2,"nzHideAll","nzHideAll",O],nzLinkRouter:[2,"nzLinkRouter","nzLinkRouter",O],nzLinkExact:[2,"nzLinkExact","nzLinkExact",O]},outputs:{nzSelectChange:"nzSelectChange",nzSelectedIndexChange:"nzSelectedIndexChange",nzTabListScroll:"nzTabListScroll",nzClose:"nzClose",nzAdd:"nzAdd"},exportAs:["nzTabset"],standalone:!0,features:[et([{provide:SI,useExisting:t}]),je,me],decls:4,vars:12,consts:[[3,"ngStyle","selectedIndex","inkBarAnimated","addable","addIcon","hideBar","position","extraTemplate","tabScroll","selectFocusedIndex","addClicked",4,"ngIf"],[1,"ant-tabs-content-holder"],[1,"ant-tabs-content"],["role","tabpanel","nz-tab-body","",3,"id","active","content","forceRender","animated",4,"ngFor","ngForOf"],[3,"tabScroll","selectFocusedIndex","addClicked","ngStyle","selectedIndex","inkBarAnimated","addable","addIcon","hideBar","position","extraTemplate"],["class","ant-tabs-tab",3,"margin-right","margin-bottom","ant-tabs-tab-active","ant-tabs-tab-disabled","click","contextmenu",4,"ngFor","ngForOf"],[1,"ant-tabs-tab",3,"click","contextmenu"],["type","button","role","tab","nzTabNavItem","","cdkMonitorElementFocus","",1,"ant-tabs-tab-btn",3,"id","disabled","tab","active"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],["type","button","nz-tab-close-button","",3,"closeIcon","click",4,"ngIf"],["type","button","nz-tab-close-button","",3,"click","closeIcon"],["role","tabpanel","nz-tab-body","",3,"id","active","content","forceRender","animated"]],template:function(i,o){1&i&&(w(0,C6e,2,9,"nz-tabs-nav",0),f(1,"div",1)(2,"div",2),w(3,w6e,1,6,"div",3),m()()),2&i&&(h("ngIf",o.tabs.length||o.addable),d(2),Q("ant-tabs-content-top","top"===o.nzTabPosition)("ant-tabs-content-bottom","bottom"===o.nzTabPosition)("ant-tabs-content-left","left"===o.nzTabPosition)("ant-tabs-content-right","right"===o.nzTabPosition)("ant-tabs-content-animated",o.tabPaneAnimated),d(),h("ngForOf",o.tabs))},dependencies:[j6,Tt,ti,zn,Pv,xA,Fse,Tn,Sn,Iv,yI],encapsulation:2})}return kt([Nt()],t.prototype,"nzType",void 0),kt([Nt()],t.prototype,"nzSize",void 0),kt([Nt()],t.prototype,"nzAnimated",void 0),kt([Nt()],t.prototype,"nzTabBarGutter",void 0),t})(),x6e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Vv,j6,H6,R2,Iv]})}return t})();const E6e=["*"];function k6e(t,n){if(1&t){const e=U();f(0,"span",1),D("click",function(o){return T(e),M(g().closeTag(o))}),m()}}let Fv=(()=>{class t{constructor(e,i,o,r){this.cdr=e,this.renderer=i,this.elementRef=o,this.directionality=r,this.isPresetColor=!1,this.nzMode="default",this.nzChecked=!1,this.nzBordered=!0,this.nzOnClose=new H,this.nzCheckedChange=new H,this.dir="ltr",this.destroy$=new N}updateCheckedStatus(){"checkable"===this.nzMode&&(this.nzChecked=!this.nzChecked,this.nzCheckedChange.emit(this.nzChecked))}closeTag(e){this.nzOnClose.emit(e),e.defaultPrevented||this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}clearPresetColor(){const e=this.elementRef.nativeElement,i=new RegExp(`(ant-tag-(?:${[...kE,...EE].join("|")}))`,"g"),o=e.classList.toString(),r=[];let s=i.exec(o);for(;null!==s;)r.push(s[1]),s=i.exec(o);e.classList.remove(...r)}setPresetColor(){const e=this.elementRef.nativeElement;this.clearPresetColor(),this.isPresetColor=!!this.nzColor&&(AE(this.nzColor)||function kne(t){return-1!==EE.indexOf(t)}(this.nzColor)),this.isPresetColor&&e.classList.add(`ant-tag-${this.nzColor}`)}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){const{nzColor:i}=e;i&&this.setPresetColor()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v($t),v(Te),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tag"]],hostAttrs:[1,"ant-tag"],hostVars:12,hostBindings:function(i,o){1&i&&D("click",function(){return o.updateCheckedStatus()}),2&i&&(Lt("background-color",o.isPresetColor?"":o.nzColor),Q("ant-tag-has-color",o.nzColor&&!o.isPresetColor)("ant-tag-checkable","checkable"===o.nzMode)("ant-tag-checkable-checked",o.nzChecked)("ant-tag-rtl","rtl"===o.dir)("ant-tag-borderless",!o.nzBordered))},inputs:{nzMode:"nzMode",nzColor:"nzColor",nzChecked:[2,"nzChecked","nzChecked",O],nzBordered:[2,"nzBordered","nzBordered",O]},outputs:{nzOnClose:"nzOnClose",nzCheckedChange:"nzCheckedChange"},exportAs:["nzTag"],standalone:!0,features:[je,ke,me],ngContentSelectors:E6e,decls:2,vars:1,consts:[["nz-icon","","nzType","close","class","ant-tag-close-icon","tabindex","-1",3,"click",4,"ngIf"],["nz-icon","","nzType","close","tabindex","-1",1,"ant-tag-close-icon",3,"click"]],template:function(i,o){1&i&&(Et(),bt(0),w(1,k6e,1,0,"span",0)),2&i&&(d(),h("ngIf","closeable"===o.nzMode))},dependencies:[On,cn,Tt],encapsulation:2,changeDetection:0})}return t})(),A6e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Fv]})}return t})();const O6e=()=>({});function P6e(t,n){1&t&&S(0,"i",40)}function I6e(t,n){if(1&t){const e=U();f(0,"tr",35)(1,"td",18),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g(2).onItemChecked(r.title,o))}),m(),f(2,"td"),S(3,"app-logo",36),m(),f(4,"td"),C(5),m(),f(6,"td"),w(7,P6e,1,0,"i",37),m(),f(8,"td"),C(9),m(),f(10,"td")(11,"a",38),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleEditBtn(r,s))}),C(12),m(),f(13,"a",15),D("nzOnConfirm",function(){const o=T(e).index;return M(g(2).handleConfirmDelOne(o))}),f(14,"a",39),C(15),m()()()()}if(2&t){const e=n.$implicit,i=g(2);d(),h("nzChecked",i.setOfCheckedId.has(e.title)),d(2),h("src",e.icon||"")("name",e.title),d(2),x(e.title),d(2),h("ngIf",e.ownVisible),d(2),x(e.createdAt),d(3),x(i.$t("_edit")),d(),h("nzPopconfirmTitle",i.$t("_delWarn")),d(2),x(i.$t("_del"))}}function N6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title)("nzValue",e.title)}}function V6e(t,n){1&t&&S(0,"i",40)}function F6e(t,n){if(1&t){const e=U();f(0,"tr",35)(1,"td",18),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g(2).onItemChecked(r.title,o))}),m(),f(2,"td"),S(3,"app-logo",36),m(),f(4,"td"),C(5),m(),f(6,"td"),w(7,V6e,1,0,"i",37),m(),f(8,"td"),C(9),m(),f(10,"td")(11,"a",38),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleEditBtn(r,s))}),C(12),m(),f(13,"a",15),D("nzOnConfirm",function(){const o=T(e).index;return M(g(2).handleConfirmDelTwo(o))}),f(14,"a",39),C(15),m()()()()}if(2&t){const e=n.$implicit,i=g(2);d(),h("nzChecked",i.setOfCheckedId.has(e.title||"")),d(2),h("src",e.icon||"")("name",e.title||""),d(2),x(e.title),d(2),h("ngIf",e.ownVisible),d(2),x(e.createdAt),d(3),x(i.$t("_edit")),d(),h("nzPopconfirmTitle",i.$t("_delWarn")),d(2),x(i.$t("_del"))}}function R6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title)("nzValue",e.title)}}function L6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title||"")("nzValue",e.title)}}function H6e(t,n){1&t&&S(0,"i",40)}function B6e(t,n){if(1&t){const e=U();f(0,"tr",35)(1,"td",18),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g(2).onItemChecked(r.title,o))}),m(),f(2,"td"),S(3,"app-logo",36),m(),f(4,"td"),C(5),m(),f(6,"td"),w(7,H6e,1,0,"i",37),m(),f(8,"td"),C(9),m(),f(10,"td")(11,"a",38),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleEditBtn(r,s))}),C(12),m(),f(13,"a",15),D("nzOnConfirm",function(){const o=T(e).index;return M(g(2).handleConfirmDelThree(o))}),f(14,"a",39),C(15),m()()()()}if(2&t){const e=n.$implicit,i=g(2);d(),h("nzChecked",i.setOfCheckedId.has(e.title||"")),d(2),h("src",e.icon||"")("name",e.title||""),d(2),x(e.title),d(2),h("ngIf",e.ownVisible),d(2),x(e.createdAt),d(3),x(i.$t("_edit")),d(),h("nzPopconfirmTitle",i.$t("_delWarn")),d(2),x(i.$t("_del"))}}function j6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title)("nzValue",e.title)}}function $6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title||"")("nzValue",e.title)}}function Y6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title||"")("nzValue",e.title||"")}}function U6e(t,n){1&t&&S(0,"span",48)}function W6e(t,n){if(1&t&&S(0,"app-logo",36),2&t){const e=g().$implicit;h("src",e.icon)("name",e.name)}}function G6e(t,n){if(1&t&&(f(0,"nz-tag",49)(1,"a",50),C(2),m()()),2&t){const e=n.$implicit,i=g().$implicit,o=g(2);h("nzColor",o.tagMap[e]&&o.tagMap[e].color||"#1890ff"),d(),h("href",(null==i.urls?null:i.urls[e])||"javascript:void(0)",Ot)("target",null!=i.urls&&i.urls[e]?"_blank":""),d(),x(o.tagMap[e]&&o.tagMap[e].name)}}function q6e(t,n){1&t&&S(0,"i",40)}function K6e(t,n){if(1&t){const e=U();f(0,"tr",35)(1,"td",18),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g(2).onItemChecked(r.name,o))}),m(),f(2,"td",42)(3,"a",38),D("click",function(){const o=T(e).$implicit;return M(g(2).openEditModal(o))}),C(4),m(),f(5,"div")(6,"a",38),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).openMoveWebModal(r,s))}),C(7),m()(),f(8,"a",15),D("nzOnConfirm",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleConfirmDelWebsite(r,s))}),f(9,"a",39),C(10),m()()(),f(11,"td"),w(12,U6e,1,0,"span",43),m(),f(13,"td"),w(14,W6e,1,2,"app-logo",44),m(),f(15,"td")(16,"a",45),C(17),m()(),f(18,"td"),w(19,G6e,3,4,"nz-tag",46),m(),f(20,"td"),w(21,q6e,1,0,"i",37),m(),f(22,"td")(23,"pre",47),C(24),m()(),f(25,"th",34),C(26),m(),f(27,"td"),C(28),m()()}if(2&t){const e=n.$implicit,i=g(2);d(),h("nzChecked",i.setOfCheckedId.has(e.name)),d(3),x(i.$t("_edit")),d(3),x(i.$t("_move")),d(),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),x(i.$t("_del")),d(2),h("ngIf",!1===e.ok),d(2),h("ngIf",e.icon),d(2),h("href",e.url,Ot),d(),x(e.name),d(2),h("ngForOf",i.objectKeys(e.urls||Ti(14,O6e))),d(2),h("ngIf",e.ownVisible),d(3),x(e.desc),d(2),x(e.breadcrumb),d(2),x(e.createdAt)}}function J6e(t,n){if(1&t){const e=U();f(0,"nz-tabset",12),D("nzSelectedIndexChange",function(o){return T(e),M(g().onTabChange(o))}),f(1,"nz-tab",13)(2,"button",14),D("click",function(){return T(e),M(g().toggleCreateModal())}),C(3),m(),f(4,"a",15),D("nzOnConfirm",function(){return T(e),M(g().onBatchDelete(1))}),f(5,"button",16),C(6),m()(),f(7,"nz-table",17,0)(10,"thead")(11,"tr")(12,"th",18),D("nzCheckedChange",function(o){return T(e),M(g().onAllChecked(o,1))}),m(),f(13,"th"),C(14),m(),f(15,"th"),C(16),m(),f(17,"th"),C(18),m(),f(19,"th"),C(20),m(),f(21,"th"),C(22),m()()(),f(23,"tbody",19),D("cdkDropListDropped",function(o){return T(e),M(g().dropOne(o))}),w(24,I6e,16,9,"tr",20),m()()(),f(25,"nz-tab",13)(26,"nz-select",21),D("ngModelChange",function(o){return T(e),M(g().hanldeOneSelect(o))}),w(27,N6e,1,2,"nz-option",22),m(),f(28,"button",23),D("click",function(){return T(e),M(g().toggleCreateModal())}),C(29),m(),f(30,"a",15),D("nzOnConfirm",function(){return T(e),M(g().onBatchDelete(2))}),f(31,"button",16),C(32),m()(),f(33,"nz-table",17,0)(36,"thead")(37,"tr")(38,"th",18),D("nzCheckedChange",function(o){return T(e),M(g().onAllChecked(o,2))}),m(),f(39,"th"),C(40),m(),f(41,"th"),C(42),m(),f(43,"th"),C(44),m(),f(45,"th"),C(46),m(),f(47,"th"),C(48),m()()(),f(49,"tbody",19),D("cdkDropListDropped",function(o){return T(e),M(g().dropTwo(o))}),w(50,F6e,16,9,"tr",20),m()()(),f(51,"nz-tab",13)(52,"nz-select",24),D("ngModelChange",function(o){return T(e),M(g().hanldeOneSelect(o))}),w(53,R6e,1,2,"nz-option",22),m(),f(54,"nz-select",25),D("ngModelChange",function(o){return T(e),M(g().hanldeTwoSelect(o))}),w(55,L6e,1,2,"nz-option",22),m(),f(56,"button",23),D("click",function(){return T(e),M(g().toggleCreateModal())}),C(57),m(),f(58,"a",15),D("nzOnConfirm",function(){return T(e),M(g().onBatchDelete(3))}),f(59,"button",16),C(60),m()(),f(61,"nz-table",17,0)(64,"thead")(65,"tr")(66,"th",18),D("nzCheckedChange",function(o){return T(e),M(g().onAllChecked(o,3))}),m(),f(67,"th"),C(68),m(),f(69,"th"),C(70),m(),f(71,"th"),C(72),m(),f(73,"th"),C(74),m(),f(75,"th"),C(76),m()()(),f(77,"tbody",19),D("cdkDropListDropped",function(o){return T(e),M(g().dropThree(o))}),w(78,B6e,16,9,"tr",20),m()()(),f(79,"nz-tab",13)(80,"nz-select",26),D("ngModelChange",function(o){return T(e),M(g().hanldeOneSelect(o))}),w(81,j6e,1,2,"nz-option",22),m(),f(82,"nz-select",27),D("ngModelChange",function(o){return T(e),M(g().hanldeTwoSelect(o))}),w(83,$6e,1,2,"nz-option",22),m(),f(84,"nz-select",27),D("ngModelChange",function(o){return T(e),M(g().hanldeThreeSelect(o))}),w(85,Y6e,1,2,"nz-option",22),m(),f(86,"button",23),D("click",function(){return T(e),M(g().openCreateWebModal())}),C(87),m(),f(88,"button",23),D("click",function(){return T(e),M(g().getAllErrorWeb())}),C(89," \u68c0\u7d22\u6240\u6709\u5f02\u5e38\u7f51\u7ad9 "),m(),f(90,"a",15),D("nzOnConfirm",function(){return T(e),M(g().onBatchDelete(4))}),f(91,"button",16),C(92),m()(),f(93,"nz-table",17,0)(96,"thead")(97,"tr")(98,"th",28),D("nzCheckedChange",function(o){return T(e),M(g().onAllChecked(o,4))}),m(),f(99,"th",29),C(100),m(),f(101,"th",30),C(102,"\u72b6\u6001"),m(),f(103,"th",31),C(104),m(),f(105,"th",32),C(106),m(),f(107,"th",32),C(108),m(),f(109,"th",33),C(110),m(),f(111,"th",34),C(112),m(),f(113,"th",34),C(114,"\u5206\u7c7b\u4f4d\u7f6e"),m(),f(115,"th"),C(116),m()()(),f(117,"tbody",19),D("cdkDropListDropped",function(o){return T(e),M(g().dropWebsite(o))}),w(118,K6e,29,15,"tr",20),m()()()()}if(2&t){const e=g();h("nzSelectedIndex",e.tabActive),d(),h("nzTitle",e.$t("_mgr1")),d(2),Ce(" ",e.$t("_addTag")," "),d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(),h("disabled",e.setOfCheckedId.size<=0),d(),Ce(" ",e.$t("_batchDel")," "),d(),h("nzData",e.websiteList)("nzShowPagination",!1),d(5),h("nzChecked",e.checkedAll),d(2),x(e.$t("_icon")),d(2),x(e.$t("_tagName")),d(2),x(e.$t("_onlyOwnVisible")),d(2),x(e.$t("_createAt")),d(2),x(e.$t("_action")),d(2),h("ngForOf",e.websiteList),d(),h("nzTitle",e.$t("_mgr2")),d(),h("ngModel",e.oneSelect)("nzPlaceHolder",e.$t("_sel1")),d(),h("ngForOf",e.websiteList),d(2),Ce(" ",e.$t("_addTag")," "),d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(),h("disabled",e.setOfCheckedId.size<=0),d(),Ce(" ",e.$t("_batchDel")," "),d(),h("nzData",e.twoTableData)("nzShowPagination",!1),d(5),h("nzChecked",e.checkedAll),d(2),x(e.$t("_icon")),d(2),x(e.$t("_tagName")),d(2),x(e.$t("_onlyOwnVisible")),d(2),x(e.$t("_createAt")),d(2),x(e.$t("_action")),d(2),h("ngForOf",e.twoTableData),d(),h("nzTitle",e.$t("_mgr3")),d(),h("ngModel",e.oneSelect)("nzPlaceHolder",e.$t("_sel1")),d(),h("ngForOf",e.websiteList),d(),h("ngModel",e.twoSelect)("nzPlaceHolder",e.$t("_sel2")),d(),h("ngForOf",e.twoTableData),d(2),Ce(" ",e.$t("_addTag")," "),d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(),h("disabled",e.setOfCheckedId.size<=0),d(),Ce(" ",e.$t("_batchDel")," "),d(),h("nzData",e.threeTableData)("nzShowPagination",!1),d(5),h("nzChecked",e.checkedAll),d(2),x(e.$t("_icon")),d(2),x(e.$t("_tagName")),d(2),x(e.$t("_onlyOwnVisible")),d(2),x(e.$t("_createAt")),d(2),x(e.$t("_action")),d(2),h("ngForOf",e.threeTableData),d(),h("nzTitle",e.$t("_mgrWeb")),d(),h("ngModel",e.oneSelect)("nzPlaceHolder",e.$t("_sel1")),d(),h("ngForOf",e.websiteList),d(),h("ngModel",e.twoSelect)("nzPlaceHolder",e.$t("_sel2")),d(),h("ngForOf",e.twoTableData),d(),h("ngModel",e.threeSelect)("nzPlaceHolder",e.$t("_sel3")),d(),h("ngForOf",e.threeTableData),d(2),Ce(" ",e.$t("_addWeb")," "),d(3),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(),h("disabled",e.setOfCheckedId.size<=0),d(),Ce(" ",e.$t("_batchDel")," "),d(),h("nzData",e.websiteTableData)("nzShowPagination",!1),d(5),h("nzChecked",e.checkedAll),d(2),x(e.$t("_action")),d(4),x(e.$t("_icon")),d(2),x(e.$t("_webName")),d(2),x(e.$t("_webTag")),d(2),x(e.$t("_onlyOwnVisible")),d(2),x(e.$t("_webDesc")),d(4),x(e.$t("_createAt")),d(2),h("ngForOf",e.websiteTableData)}}function Z6e(t,n){if(1&t&&($e(0),f(1,"form",51)(2,"nz-form-item")(3,"nz-form-label",52),C(4,"\u5206\u7c7b\u540d\u79f0"),m(),f(5,"nz-form-control",53),S(6,"input",54),m()(),f(7,"nz-form-item")(8,"nz-form-label",52),C(9),m(),f(10,"nz-form-control",55),S(11,"nz-switch",56),m()(),f(12,"nz-form-item")(13,"nz-form-label",55),C(14,"\u56fe\u6807\u5730\u5740"),m(),f(15,"nz-form-control",55)(16,"nz-input-group"),S(17,"input",57),m()()()(),Ye()),2&t){const e=g();d(),h("formGroup",e.validateForm),d(2),h("nzSpan",6),d(2),h("nzSpan",18)("nzErrorTip",e.$t("_requiredName")),d(),h("placeholder",e.$t("_webTitle"))("maxlength",50),d(2),h("nzSpan",6),d(),x(e.$t("_onlyOwnVisible")),d(),h("nzSpan",18),d(3),h("nzSpan",6),d(2),h("nzSpan",18)}}let Q6e=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.modal=i,this.notification=o,this.message=r,this.$t=_e,this.settings=An,this.websiteList=yn,this.gitRepoUrl=Vs.gitRepoUrl,this.isLogin=Wi,this.showCreateModal=!1,this.syncLoading=!1,this.uploading=!1,this.tabActive=0,this.editIdx=0,this.isEdit=!1,this.oneSelect="",this.twoSelect="",this.threeSelect="",this.tagMap=ju,this.objectKeys=Object.keys,this.twoTableData=[],this.threeTableData=[],this.websiteTableData=[],this.checkedAll=!1,this.setOfCheckedId=new Set,this.validateForm=this.fb.group({title:["",[G7.required]],icon:[""],ownVisible:[!1]})}ngOnInit(){}getAllErrorWeb(){this.oneSelect="",this.twoSelect="",this.threeSelect="",this.onTabChange(),this.websiteTableData=[];const e=[];(function i(o){if(Array.isArray(o))for(let r=0;r{e?this.setOfCheckedId.add(o.title):this.setOfCheckedId.delete(o.title)});break;case 2:this.twoTableData.forEach(o=>{e?this.setOfCheckedId.add(o.title):this.setOfCheckedId.delete(o.title)});break;case 3:this.threeTableData.forEach(o=>{e?this.setOfCheckedId.add(o.title):this.setOfCheckedId.delete(o.title)});break;case 4:this.websiteTableData.forEach(o=>{e?this.setOfCheckedId.add(o.name):this.setOfCheckedId.delete(o.name)})}}onItemChecked(e,i){i?this.setOfCheckedId.add(e):this.setOfCheckedId.delete(e)}onBatchDelete(e){switch(e){case 1:this.setOfCheckedId.forEach(i=>{const o=this.websiteList.findIndex(r=>r.title===i);o>=0&&this.websiteList.splice(o,1)});break;case 2:{this.twoTableData=this.twoTableData.filter(o=>!this.setOfCheckedId.has(o.title));const i=this.websiteList.findIndex(o=>o.title===this.oneSelect);i>=0&&(this.websiteList[i].nav=this.twoTableData)}break;case 3:{this.threeTableData=this.threeTableData.filter(o=>!this.setOfCheckedId.has(o.title));const i=this.websiteList.findIndex(o=>o.title===this.oneSelect);if(i>=0){const o=this.websiteList[i].nav.findIndex(r=>r.title===this.twoSelect);o>=0&&(this.websiteList[i].nav[o].nav=this.threeTableData)}}break;case 4:{const i=[];this.websiteTableData=this.websiteTableData.filter(o=>{const r=!this.setOfCheckedId.has(o.name);return r||i.push(o),r}),i.forEach(o=>{M5({...o,name:fs(o.name),desc:fs(o.desc)})}),this.message.success(_e("_delSuccess"))}}this.onTabChange(),Yn(this.websiteList)}handleReset(){this.modal.info({nzTitle:_e("_resetInitData"),nzContent:_e("_warnReset"),nzOnOk:()=>{this.message.success(_e("_actionSuccess")),window.localStorage.removeItem(Ui.website),window.localStorage.removeItem(Ui.s_url),setTimeout(()=>{window.location.reload()},500)}})}handleDownloadBackup(){const e=JSON.stringify(this.websiteList),i=new Blob([e],{type:"text/plain;charset=utf-8"});(0,q3e.saveAs)(i,"db.json")}handleUploadBackup(e){const i=this,o=e.target.files;if(o.length<=0)return;const r=o[0],s=new FileReader;s.readAsText(r),s.onload=function(a){try{const{result:c}=a.target;i.websiteList=JSON.parse(c),Yn(i.websiteList),e.target.value="",i.message.success(_e("_actionSuccess"))}catch(c){i.notification.error(_e("_error"),c.message)}}}goBack(){history.go(-1)}openMoveWebModal(e,i){const o=this.websiteList.findIndex(a=>a.title===this.oneSelect),r=this.twoTableData.findIndex(a=>a.title===this.twoSelect),s=this.threeTableData.findIndex(a=>a.title===this.threeSelect);Ei.emit("MOVE_WEB",{indexs:[o,r,s,i],data:[e]})}openCreateWebModal(){if(3===this.tabActive&&!this.threeSelect)return this.message.error(_e("_sel3"));const e=this.websiteList.findIndex(r=>r.title===this.oneSelect),i=this.twoTableData.findIndex(r=>r.title===this.twoSelect),o=this.threeTableData.findIndex(r=>r.title===this.threeSelect);Ei.emit("CREATE_WEB",{oneIndex:e,twoIndex:i,threeIndex:o})}openEditModal(e){Ei.emit("CREATE_WEB",{detail:e})}toggleCreateModal(){if(!this.showCreateModal){if(1===this.tabActive&&!this.oneSelect)return this.message.error(_e("_sel1"));if(2===this.tabActive&&!this.twoSelect)return this.message.error(_e("_sel2"))}this.isEdit=!1,this.showCreateModal=!this.showCreateModal,this.validateForm.reset()}onTabChange(e){this.tabActive=e??this.tabActive,this.setOfCheckedId.clear(),this.checkedAll||setTimeout(()=>{this.checkedAll=!this.checkedAll,setTimeout(()=>{this.checkedAll=!this.checkedAll})})}handleConfirmDelOne(e){this.websiteList.splice(e,1),this.message.success(_e("_delSuccess")),Yn(this.websiteList)}dropOne(e){xc(this.websiteList,e.previousIndex,e.currentIndex),Yn(this.websiteList)}dropTwo(e){xc(this.twoTableData,e.previousIndex,e.currentIndex),Yn(this.websiteList)}handleConfirmDelTwo(e){this.twoTableData.splice(e,1),this.message.success(_e("_delSuccess")),Yn(this.websiteList)}dropThree(e){xc(this.threeTableData,e.previousIndex,e.currentIndex),Yn(this.websiteList)}handleConfirmDelThree(e){this.threeTableData.splice(e,1),this.message.success(_e("_delSuccess")),Yn(this.websiteList)}dropWebsite(e){xc(this.websiteTableData,e.previousIndex,e.currentIndex),Yn(this.websiteList)}handleConfirmDelWebsite(e,i){this.websiteTableData.splice(i,1),M5({...e,name:fs(e.name),desc:fs(e.desc)}),this.message.success(_e("_delSuccess"))}hanldeOneSelect(e){this.oneSelect=e;const i=this.websiteList.find(o=>o.title===e);i&&(this.twoTableData=i.nav),this.twoSelect="",this.threeSelect="",this.onTabChange()}hanldeTwoSelect(e){this.twoSelect=e;const i=this.twoTableData.find(o=>o.title===e);i&&(this.threeTableData=i.nav),this.threeSelect="",this.onTabChange()}hanldeThreeSelect(e){this.threeSelect=e;const i=this.threeTableData.find(o=>o.title===e);i&&(this.websiteTableData=i.nav),this.onTabChange()}handleEditBtn(e,i){let{title:o,icon:r,name:s,ownVisible:a}=e;this.toggleCreateModal(),this.isEdit=!0,this.editIdx=i,this.validateForm.get("title").setValue(o||s||""),this.validateForm.get("icon").setValue(r||""),this.validateForm.get("ownVisible").setValue(!!a)}handleSync(){this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{this.syncLoading=!0,vc({message:"update db",content:JSON.stringify(this.websiteList),path:$g}).then(()=>{this.message.success(_e("_syncSuccessTip"))}).finally(()=>{this.syncLoading=!1})}})}handleOk(){const e=(new Date).toString();for(const s in this.validateForm.controls)this.validateForm.controls[s].markAsDirty(),this.validateForm.controls[s].updateValueAndValidity();let{title:i,icon:o,ownVisible:r}=this.validateForm.value;if(i&&i.trim()){if(i=i.trim(),this.isEdit){switch(this.tabActive){case 0:if(this.websiteList.some(a=>a.title===i)&&this.websiteList[this.editIdx].title!==i)return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.websiteList[this.editIdx].title=i,this.websiteList[this.editIdx].icon=o,this.websiteList[this.editIdx].ownVisible=r;break;case 1:if(this.twoTableData.some(a=>a.title===i)&&this.twoTableData[this.editIdx].title!==i)return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.twoTableData[this.editIdx].title=i,this.twoTableData[this.editIdx].icon=o,this.twoTableData[this.editIdx].ownVisible=r;break;case 2:if(this.threeTableData.some(a=>a.title===i)&&this.threeTableData[this.editIdx].title!==i)return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.threeTableData[this.editIdx].title=i,this.threeTableData[this.editIdx].icon=o,this.threeTableData[this.editIdx].ownVisible=r}this.message.success(_e("_saveSuccess"))}else{switch(this.tabActive){case 0:if(this.websiteList.some(a=>a.title===i))return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.websiteList.unshift({createdAt:e,title:i,icon:o,ownVisible:r,nav:[]});break;case 1:if(this.twoTableData.some(a=>a.title===i))return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.twoTableData.unshift({createdAt:e,title:i,icon:o,ownVisible:r,nav:[]});break;case 2:if(this.threeTableData.some(a=>a.title===i))return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.threeTableData.unshift({createdAt:e,title:i,icon:o,ownVisible:r,nav:[]})}this.message.success(_e("_addSuccess"))}this.validateForm.reset(),this.toggleCreateModal(),Yn(this.websiteList)}else this.message.error("\u5206\u7c7b\u540d\u79f0\u4e0d\u80fd\u4e3a\u7a7a")}static#e=this.\u0275fac=function(i){return new(i||t)(v(fv),v(za),v(P6),v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-admin"]],decls:18,vars:11,consts:[["rowSelectionTable","","basicTable",""],[1,"admin"],["nz-button","","nzType","primary",3,"click","nzLoading"],["nz-button","",2,"margin","0 15px 20px 15px",3,"click"],["nz-button","",2,"margin-right","15px",3,"click"],["id","file2"],["nz-button","","nz-tooltip","",3,"nzTooltipTitle"],["type","file","name","file2","accept",".json",1,"file-upload",3,"change"],[1,"tip2"],[3,"nzSelectedIndex","nzSelectedIndexChange",4,"ngIf"],[3,"nzVisibleChange","nzOnCancel","nzOnOk","nzVisible","nzTitle"],[4,"nzModalContent"],[3,"nzSelectedIndexChange","nzSelectedIndex"],[3,"nzTitle"],["nz-button","","nzType","primary",3,"click"],["nz-popconfirm","","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"],["nz-button","","nzDanger","",1,"ml10",3,"disabled"],[2,"margin-top","15px",3,"nzData","nzShowPagination"],[3,"nzCheckedChange","nzChecked"],["cdkDropList","",3,"cdkDropListDropped"],["cdkDrag","",4,"ngFor","ngForOf"],["nzShowSearch","",2,"width","260px",3,"ngModelChange","ngModel","nzPlaceHolder"],[3,"nzLabel","nzValue",4,"ngFor","ngForOf"],["nz-button","","nzType","primary",2,"margin-left","20px",3,"click"],["nzShowSearch","",2,"width","200px",3,"ngModelChange","ngModel","nzPlaceHolder"],["nzShowSearch","",2,"width","200px","margin-left","15px",3,"ngModelChange","ngModel","nzPlaceHolder"],["nzShowSearch","",2,"width","150px",3,"ngModelChange","ngModel","nzPlaceHolder"],["nzShowSearch","",2,"width","150px","margin-left","15px",3,"ngModelChange","ngModel","nzPlaceHolder"],["nzWidth","70px",3,"nzCheckedChange","nzChecked"],["nzWidth","60px",1,"center"],["nzWidth","70px"],["nzWidth","80px"],["nzWidth","100px"],["nzWidth","120px"],["nzWidth","300px"],["cdkDrag",""],[3,"src","name"],["nz-icon","","nzType","check","nzTheme","outline",4,"ngIf"],[3,"click"],["nz-button","","nzType","link","nzDanger",""],["nz-icon","","nzType","check","nzTheme","outline"],[3,"nzLabel","nzValue"],[1,"center"],["nz-icon","","nzType","close","nzTheme","outline","style","color: red",4,"ngIf"],[3,"src","name",4,"ngIf"],["target","_blank",3,"href"],["style","margin-bottom: 5px",3,"nzColor",4,"ngFor","ngForOf"],[1,"desc"],["nz-icon","","nzType","close","nzTheme","outline",2,"color","red"],[2,"margin-bottom","5px",3,"nzColor"],[3,"href","target"],["nz-form","",3,"formGroup"],["nzRequired","",3,"nzSpan"],[3,"nzSpan","nzErrorTip"],["formControlName","title","nz-input","",3,"placeholder","maxlength"],[3,"nzSpan"],["formControlName","ownVisible"],["formControlName","icon","nz-input","","placeholder","\u7528\u4e8e\u67d0\u4e9b\u4e3b\u9898icon"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"button",2),D("click",function(){return o.handleSync()}),C(2),m(),f(3,"button",3),D("click",function(){return o.handleReset()}),C(4),m(),f(5,"button",4),D("click",function(){return o.handleDownloadBackup()}),C(6),m(),f(7,"label",5)(8,"button",6),C(9),m(),f(10,"input",7),D("change",function(s){return o.handleUploadBackup(s)}),m()(),f(11,"div",8),C(12),f(13,"span"),C(14),m()(),w(15,J6e,119,77,"nz-tabset",9),m(),f(16,"nz-modal",10),Oi("nzVisibleChange",function(s){return Yi(o.showCreateModal,s)||(o.showCreateModal=s),s}),D("nzOnCancel",function(){return o.toggleCreateModal()})("nzOnOk",function(){return o.handleOk()}),w(17,Z6e,18,11,"ng-container",11),m()),2&i&&(d(),h("nzLoading",o.syncLoading),d(),Ce(" ",o.$t("_save")," "),d(2),Ce(" ",o.$t("_resetInitData")," "),d(2),Ce(" ",o.$t("_backup")," "),d(2),h("nzTooltipTitle",o.$t("_importBackupTip")),d(),Ce(" ",o.$t("_importBackup")," "),d(3),Ce(" ",o.$t("_dragSort"),"\uff1b "),d(2),Ce("\u4e0a\u6b21\u68c0\u6d4b\u51fa ",o.settings.errorUrlCount||0," \u4e2a\u7f51\u7ad9\u94fe\u63a5\u5931\u6548\uff0c\u5177\u4f53\u5230\u7ba1\u7406\u7f51\u7ad9\u67e5\u770b\uff0c\u5982\u9700\u518d\u6b21\u68c0\u6d4b\u72b6\u6001\u76f4\u63a5\u70b9\u4fdd\u5b58\u89e6\u53d1\u4e8b\u4ef6\u5373\u53ef\u3002"),d(),h("ngIf",o.isLogin),d(),Ai("nzVisible",o.showCreateModal),h("nzTitle",o.$t(o.isEdit?"_edit":"_add")))},dependencies:[zn,Tt,c6,y2,Ws,x6,Nc,Vc,x1,Cc,F2,V6,R6,F6,nr,mi,tr,T6,Cr,Qi,g6,P2,R1,L1,B1,Ta,cn,Y1,N2,$1,oI,V2,Bc,U1,sI,Vv,Nv,Fv,N6,o6,_2,Xi,Fc],styles:[".desc[_ngcontent-%COMP%]{width:300px;white-space:pre-wrap;word-break:break-all}#file2[_ngcontent-%COMP%]{position:relative;cursor:pointer}#file2[_ngcontent-%COMP%] .file-upload[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.tip2[_ngcontent-%COMP%]{color:#f50;font-weight:700}.admin[_ngcontent-%COMP%] .ant-table{max-height:600px;overflow:auto}"]})}return t})(),X6e=(()=>{class t{constructor(){this.$t=_e}ngOnInit(){}submitForm(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["system-angle-mark"]],decls:1,vars:0,consts:[[1,"angle-mark"]],template:function(i,o){1&i&&S(0,"div",0)}})}return t})();function epe(t,n){if(1&t&&(f(0,"p"),C(1),m(),C(2)),2&t){const e=g().$implicit;d(),x(e.__name__||e.name),d(),Ce(" ",e.__desc__||e.desc," ")}}function tpe(t,n){if(1&t){const e=U();f(0,"div",4),D("click",function(){const o=T(e).$implicit;return M(g(2).goUrl(o.url))}),w(1,epe,3,2,"ng-template",null,0,ot),f(3,"div",5),S(4,"app-logo",6),m(),S(5,"div",7),m()}if(2&t){const e=n.$implicit;h("nzTooltipTitle",He(2)),d(4),h("src",e.icon||"")("name",e.__name__||e.name)("size",35),d(),h("innerHTML",e.__name__||e.name,Wn)}}function npe(t,n){if(1&t){const e=U();f(0,"div",2),D("cdkDropListDropped",function(o){return T(e),M(g().handleDrop(o))}),w(1,tpe,6,5,"div",3),m()}if(2&t){const e=g();d(),h("ngForOf",e.dataList)("ngForTrackBy",e.trackByItemWeb)}}let TI=[],MI=(()=>{class t{constructor(e){this.activatedRoute=e,this.max=110,this.search=!0,this.websiteList=yn,this.dataList=[]}ngOnInit(){this.getTopWeb(),this.activatedRoute.queryParams.subscribe(()=>{const{q:e}=pi(),i=S1(this.websiteList,e);this.dataList=this.search&&e.trim()?0===i.length?[]:i[0].nav.slice(0,this.max):TI,Yn(this.websiteList)})}getTopWeb(){const e=[],i=this.max;(function o(r){if(Array.isArray(r))for(let s=0;si);s++){const a=r[s];a.url?a.top&&(Wi||!a.ownVisible)&&e.push(a):o(a.nav)}})(yn),this.dataList=e.sort((r,s)=>r.index-s.index),TI=this.dataList}handleDrop(e){xc(this.dataList,e.previousIndex,e.currentIndex);const i={};for(let r=1;r<=this.dataList.length;r++){const s=this.dataList[r-1];i[`${s.name}${s.url}`]=r}(function o(r){if(Array.isArray(r))for(let s=0;s0)},dependencies:[zn,Tt,mi,Ta,o6,_2,Fc],styles:[".container[_ngcontent-%COMP%]{margin-top:15px;margin-bottom:15px;display:flex;padding:0 30px;max-width:960px;flex-wrap:wrap;gap:25px}.container[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{display:flex;text-align:center;cursor:pointer;align-items:center;flex-direction:column;transition:transform .1s ease-in}.container[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]:hover{transform:translateY(-2px)}.container[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{border-radius:50%;margin-bottom:3px}.container[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{width:60px;margin-top:5px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]})}return t})();const ipe=()=>[16,16],ope=(t,n,e,i)=>[t,n,e,i];function rpe(t,n){1&t&&S(0,"img",21),2&t&&h("src",g(2).$implicit.icon,Ot)}function spe(t,n){if(1&t&&(w(0,rpe,1,1,"img",19),f(1,"span",20),C(2),m()),2&t){const e=g().$implicit;h("ngIf",e.icon),d(2),x(e.title)}}function ape(t,n){1&t&&S(0,"img",25),2&t&&h("src",g().$implicit.icon,Ot)}function cpe(t,n){if(1&t){const e=U();f(0,"div",26),D("click",function(o){return T(e),M(g(3).onCollapseAll(o))}),S(1,"i",27),m()}if(2&t){const e=g(3);d(),Q("active",e.collapsed())}}function lpe(t,n){if(1&t){const e=U();f(0,"li",22),D("click",function(){const o=T(e).index,r=g().index;return M(g().handleSidebarNav(r,o))}),w(1,ape,1,1,"img",23),f(2,"span"),C(3),m(),w(4,cpe,2,2,"div",24),m()}if(2&t){const e=n.$implicit,i=n.index,o=g().index,r=g();h("nzSelected",r.page===o&&r.id===i),d(),h("ngIf",e.icon),d(2),x(e.title),d(),h("ngIf",r.page===o&&r.id===i)}}function dpe(t,n){if(1&t){const e=U();f(0,"li",17),D("nzOpenChange",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g().openMenu(r,s))}),w(1,spe,3,2,"ng-template",null,1,ot),f(3,"ul"),w(4,lpe,5,4,"li",18),m()()}if(2&t){const e=n.$implicit,i=He(2),o=g();h("nzTitle",i)("nzOpen",e.collapsed),d(4),h("ngForOf",e.nav)("ngForTrackBy",o.trackByItem)}}function upe(t,n){if(1&t&&(f(0,"div",28),S(1,"app-swiper",29)(2,"app-search-engine",30),m()),2&t){const e=g();d(),h("images",e.settings.sideThemeImages)("autoplay",e.settings.sideThemeAutoplay)("height",e.settings.sideThemeHeight)}}function hpe(t,n){if(1&t&&(f(0,"div",36),S(1,"app-card",37),m()),2&t){const e=n.$implicit,i=n.index,o=g().index,r=g(2);h("nzSpan",6)("nzXs",24)("nzSm",12)("nzMd",12)("nzLg",8)("nzXl",6)("nzXXl","example"===r.settings.sideCardStyle?4:6),d(),h("cardStyle",r.settings.sideCardStyle)("dataSource",e)("indexs",nu(11,ope,r.page,r.id,o,i))("searchKeyword",r.searchKeyword)}}function ppe(t,n){if(1&t){const e=U();f(0,"div")(1,"div",32)(2,"app-toolbar-title",33),D("onCollapse",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).onCollapse(r,s))}),m(),f(3,"div",34),w(4,hpe,2,16,"div",35),m()()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);d(2),h("dataSource",e)("index",i),d(),Lt("display",e.collapsed?"none":""),h("nzGutter",Ti(7,ipe)),d(),h("ngForOf",e.nav)("ngForTrackBy",o.trackByItemWeb)}}function fpe(t,n){if(1&t&&(f(0,"div"),w(1,ppe,5,8,"div",31),m()),2&t){const e=g();d(),h("ngForOf",e.currentList.slice(0,e.sliceMax))("ngForTrackBy",e.trackByItem)}}function mpe(t,n){1&t&&S(0,"app-no-data")}let gpe=(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.LOGO_CDN=An.favicon,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.title=An.title.trim().split(/\s/)[0],this.searchEngineList=x5,this.isLogin=Wi,this.settings=An,this.sliceMax=1,this.searchKeyword="",this.onCollapse=(o,r)=>{o.collapsed=!o.collapsed,this.websiteList[this.page].nav[this.id].nav[r]=o,Yn(this.websiteList)},this.onCollapseAll=o=>{o?.stopPropagation(),z5(this.websiteList),this.handlePositionTop()}}ngOnInit(){this.activatedRoute.queryParams.subscribe(()=>{const{id:e,page:i,q:o}=pi();this.page=i,this.id=e,this.searchKeyword=o,this.sliceMax=1,this.currentList=o?S1(this.websiteList,o):Bu(),setTimeout(()=>{this.sliceMax=Number.MAX_SAFE_INTEGER},25)})}handleSidebarNav(e,i){this.websiteList[e].id=i,this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:e,id:i}}),this.handlePositionTop()}handlePositionTop(){setTimeout(()=>{const e=document.querySelector(".search-header");e&&window.scroll({top:e.offsetHeight,left:0,behavior:"smooth"})},30)}openMenu(e,i){this.websiteList.forEach((o,r)=>{o.collapsed=r===i&&!o.collapsed}),Yn(this.websiteList)}collapsed(){try{return!!yn[this.page].nav[this.id].collapsed}catch{return!1}}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-side"]],decls:19,vars:9,consts:[["noData",""],["titleTpl",""],[1,"layout"],[1,"logo","dark-bg"],[1,"logo-img",3,"src"],[1,"web-title"],["nz-menu","","nzMode","inline",1,"sider","dark-scrollbar"],["nz-submenu","",3,"nzTitle","nzOpen","nzOpenChange",4,"ngFor","ngForOf","ngForTrackBy"],[1,"inner-layout"],["class","search-header",4,"ngIf"],[1,"hidden","search-sm","mobile-search"],["id","content",1,"content"],[3,"search"],[1,"box"],[4,"ngIf","ngIfElse"],["className","side-footer"],[3,"onCollapse","collapsed"],["nz-submenu","",3,"nzOpenChange","nzTitle","nzOpen"],["nz-menu-item","",3,"nzSelected","click",4,"ngFor","ngForOf","ngForTrackBy"],["class","sideicon",3,"src",4,"ngIf"],[1,"menu-title","ellipsis"],[1,"sideicon",3,"src"],["nz-menu-item","",3,"click","nzSelected"],["class","sideicon fixicon",3,"src",4,"ngIf"],["class","collapse-wrapper",3,"click",4,"ngIf"],[1,"sideicon","fixicon",3,"src"],[1,"collapse-wrapper",3,"click"],[1,"iconfont","iconweibiaoti25","collapse"],[1,"search-header"],[3,"images","autoplay","height"],[1,"max768none"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"nav-wrapper"],["arrowType","2",3,"onCollapse","dataSource","index"],["nz-row","",3,"nzGutter"],["class","gutter-row","nz-col","",3,"nzSpan","nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl",4,"ngFor","ngForOf","ngForTrackBy"],["nz-col","",1,"gutter-row",3,"nzSpan","nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl"],[1,"column-border",3,"cardStyle","dataSource","indexs","searchKeyword"]],template:function(i,o){if(1&i){const r=U();f(0,"nz-layout",2)(1,"nz-layout")(2,"div",3),S(3,"img",4),f(4,"span",5),C(5),m()(),f(6,"ul",6),w(7,dpe,5,4,"li",7),m(),f(8,"nz-layout",8),w(9,upe,3,3,"div",9),S(10,"app-search-engine",10),f(11,"nz-content",11),S(12,"app-web-list",12),f(13,"div",13),w(14,fpe,2,2,"div",14)(15,mpe,1,0,"ng-template",null,0,ot),m(),S(17,"app-footer",15),m()()()(),f(18,"app-fixbar",16),D("onCollapse",function(a){return T(r),M(o.onCollapseAll(a))}),m()}if(2&i){const r=He(16);d(3),h("src",o.LOGO_CDN,Ot),d(2),x(o.settings.sideTitle||o.title),d(2),h("ngForOf",o.websiteList)("ngForTrackBy",o.trackByItem),d(2),h("ngIf",o.settings.sideThemeImages.length>0),d(3),h("search",!1),d(2),h("ngIf",o.currentList.length>0)("ngIfElse",r),d(4),h("collapsed",o.collapsed())}},dependencies:[zn,Tt,x1,Cc,mi,Sa,Us,l6,VP,IP,PP,z2,S2,h6,H1,vv,MI,k6],styles:["@media (max-width: 768px){.search-sm[_ngcontent-%COMP%]{display:block;margin-top:10px}.content[_ngcontent-%COMP%]{padding-right:12px!important}.layout[_ngcontent-%COMP%]{--sideWidth: 150px !important}.sider[_ngcontent-%COMP%]{--menuTitleWidth: 85px;padding-top:40px!important}.logo-img[_ngcontent-%COMP%]{width:30px!important;height:30px!important}.web-title[_ngcontent-%COMP%]{font-size:14px!important}}@media (max-width: 568px){.layout[_ngcontent-%COMP%]{--sideWidth: 120px !important}.sider[_ngcontent-%COMP%]{--menuTitleWidth: 70px;padding-top:40px!important}}.layout[_ngcontent-%COMP%]{--sideWidth: 200px;min-height:100vh}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%]{margin-left:var(--sideWidth)}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:10px 70px 0 20px;display:flex;flex-direction:column}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%] .search-header[_ngcontent-%COMP%]{z-index:9;position:relative;text-align:center}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%] .search-header[_ngcontent-%COMP%] .search-engine{z-index:10;position:absolute;top:50%;left:50%;margin-top:-20px;transform:translate(-50%,-50%)}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%] .search-header[_ngcontent-%COMP%] .search-engine .input-wrapper{width:330px!important}.layout[_ngcontent-%COMP%] .box[_ngcontent-%COMP%]{flex:1;transition:.1s linear}.layout[_ngcontent-%COMP%] .collapse-wrapper[_ngcontent-%COMP%]{position:absolute;right:0;top:0;padding:0 15px}.layout[_ngcontent-%COMP%] .collapse-wrapper[_ngcontent-%COMP%] .collapse[_ngcontent-%COMP%]{display:block;transform:rotate(-270deg)}.layout[_ngcontent-%COMP%] .collapse-wrapper[_ngcontent-%COMP%] .collapse.active[_ngcontent-%COMP%]{transform:rotate(-360deg)}.layout[_ngcontent-%COMP%] .ant-menu-item[_ngcontent-%COMP%]{padding-right:40px}.layout[_ngcontent-%COMP%] .web-list{max-width:100%!important}.layout[_ngcontent-%COMP%] .mobile-search .engine-main{max-width:95%!important}.logo[_ngcontent-%COMP%]{z-index:11;position:fixed;top:0;left:0;width:var(--sideWidth);padding:10px 10px 10px 15px;background-color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo[_ngcontent-%COMP%] .logo-img[_ngcontent-%COMP%]{width:50px;height:50px;pointer-events:none}.logo[_ngcontent-%COMP%] .web-title[_ngcontent-%COMP%]{font-weight:500;font-size:18px;margin-left:10px;vertical-align:middle}.sider[_ngcontent-%COMP%]{position:fixed;height:100vh;left:0;overflow:auto;width:var(--sideWidth);padding-top:70px}.sider[_ngcontent-%COMP%] .sideicon[_ngcontent-%COMP%]{width:20px;height:20px;margin-right:12px;object-fit:cover;border-radius:50%}.sider[_ngcontent-%COMP%] .fixicon[_ngcontent-%COMP%]{position:absolute;top:10px;left:25px;margin-right:0}.sider[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px;height:6px}.sider[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:3px}.sider[_ngcontent-%COMP%]::-webkit-scrollbar-track{background-color:#ffffff26;border-radius:3px}.sider[_ngcontent-%COMP%] .menu-title[_ngcontent-%COMP%]{max-width:var(--menuTitleWidth, 130px)} #app-footer{margin-top:45px} #app-footer, #app-footer .copyright{margin-bottom:10px;color:#666}"]})}return t})();const vpe=t=>({"background-image":t}),_pe=t=>({color:t});function bpe(t,n){1&t&&S(0,"iframe",6)}function ype(t,n){1&t&&S(0,"iframe",7)}function Cpe(t,n){if(1&t&&(f(0,"div"),w(1,bpe,1,0,"iframe",5)(2,ype,1,0,"ng-template",null,0,ot),m()),2&t){const e=He(3),i=g();d(),h("ngIf",i.isDark||i.shortcutThemeImage)("ngIfElse",e)}}let wpe=(()=>{class t{constructor(){this.settings=An,this.isDark=u3(),this.shortcutThemeImage=An.shortcutThemeImages?.[0]?.src,Ei.on("EVENT_DARK",e=>{this.isDark=e})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-shortcut"]],decls:8,vars:11,consts:[["other_content",""],[1,"shortcut","dark-bg-gary2",3,"ngStyle"],[1,"title","dark-white",3,"ngStyle"],[3,"showCollapse"],[4,"ngIf"],["class","tianqi","allowtransparency","true","frameborder","0","width","290","height","96","scrolling","no","src","//tianqi.2345.com/plugin/widget/index.htm?s=1&z=1&t=0&v=0&d=2&bd=0&k=&f=ffffff<f=009944&htf=cc0000&q=1&e=1&a=1&c=54511&w=290&h=96&align=center",4,"ngIf","ngIfElse"],["allowtransparency","true","frameborder","0","width","290","height","96","scrolling","no","src",O8`//tianqi.2345.com/plugin/widget/index.htm?s=1&z=1&t=0&v=0&d=2&bd=0&k=&f=ffffff<f=009944&htf=cc0000&q=1&e=1&a=1&c=54511&w=290&h=96&align=center`,1,"tianqi"],["allowtransparency","true","frameborder","0","width","290","height","96","scrolling","no","src",O8`//tianqi.2345.com/plugin/widget/index.htm?s=1&z=1&t=0&v=0&d=2&bd=0&k=&f=<f=009944&htf=cc0000&q=1&e=1&a=1&c=54511&w=290&h=96&align=center`,1,"tianqi"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div")(2,"h1",2),C(3),m(),S(4,"app-search-engine")(5,"app-web-list"),m()(),S(6,"app-fixbar",3),w(7,Cpe,4,2,"div",4)),2&i&&(h("ngStyle",mr(7,vpe,"url("+o.shortcutThemeImage+")")),d(2),Q("color-black",!o.shortcutThemeImage),h("ngStyle",mr(9,_pe,o.shortcutThemeImage?"#fff":"")),d(),Ce(" ",o.settings.shortcutTitle||o.settings.title," "),d(3),h("showCollapse",!1),d(),h("ngIf",o.settings.shortcutThemeShowWeather))},dependencies:[Tt,ti,z2,H1,MI],styles:[".shortcut[_ngcontent-%COMP%]{position:fixed;inset:0;display:flex;justify-content:center;padding-top:150px;text-align:center;background-color:#00000005;background-repeat:no-repeat;background-size:cover;background-position:center}.shortcut[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:30px;font-weight:700}.shortcut[_ngcontent-%COMP%] .name{color:#fff!important}.tianqi[_ngcontent-%COMP%]{position:fixed;top:0;right:100px}"]})}return t})();const zpe=()=>({});function Spe(t,n){if(1&t){const e=U();f(0,"div",4)(1,"input",5),Oi("ngModelChange",function(o){T(e);const r=g();return Yi(r.authCode,o)||(r.authCode=o),M(o)}),m(),f(2,"button",6),D("click",function(){return T(e),M(g().handleSubmitAuthCode())}),C(3),m(),f(4,"div",7)(5,"p"),C(6),m(),f(7,"p"),C(8," \u53d1\u9001\u5230: xjh22222228@gmail.com \uff08\u5907\u6ce8\u5f00\u901a\u57df\u540d\uff0c\u652f\u4ed8\u6e20\u9053\u548c\u652f\u4ed8\u65f6\u95f4\uff0c\u6211\u4eec\u4f1a\u572824\u5c0f\u65f6\u5185\u53d1\u9001\u6388\u6743\u7801\u7ed9\u60a8\u90ae\u7bb1\uff09 "),m(),f(9,"p"),C(10,"\u4e00\u4e2a\u6388\u6743\u7801\u53ea\u7ed1\u5b9a\u4e00\u4e2a\u5168\u7ad9\u57df\u540d"),m(),S(11,"img",8),m()()}if(2&t){const e=g();d(),h("placeholder",e.$t("_inputAuthCode")),Ai("ngModel",e.authCode),d(),h("nzLoading",e.submitting),d(),Ce(" ",e.$t("_save")," "),d(3),x(e.$t("_payTip"))}}function Tpe(t,n){if(1&t&&S(0,"app-logo",24),2&t){const e=g().$implicit;h("src",e.icon)("name",e.name)}}function Mpe(t,n){if(1&t&&(f(0,"nz-tag",25)(1,"a",26),C(2),m()()),2&t){const e=n.$implicit,i=g().$implicit,o=g(2);h("nzColor",o.tagMap[e]&&o.tagMap[e].color||"#1890ff"),d(),h("href",(null==i.urls?null:i.urls[e])||"javascript:void(0)",Ot)("target",null!=i.urls&&i.urls[e]?"_blank":""),d(),x(o.tagMap[e]&&o.tagMap[e].name)}}function Dpe(t,n){if(1&t&&(f(0,"td",15),C(1),m()),2&t){const e=g().$implicit;d(),sm(" ",e.extra.oneName," / ",e.extra.twoName," / ",e.extra.threeName," ")}}function xpe(t,n){if(1&t){const e=U();f(0,"tr")(1,"td")(2,"div")(3,"a",17),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleConfirmGet(r,s))}),C(4),m()(),f(5,"div",7)(6,"a",18),D("nzOnConfirm",function(){const o=T(e).index;return M(g(2).handleDelete(o))}),f(7,"b"),C(8),m()()()(),f(9,"td"),w(10,Tpe,1,2,"app-logo",19),m(),f(11,"td")(12,"a",20),C(13),m()(),f(14,"td"),w(15,Mpe,3,4,"nz-tag",21),m(),f(16,"td")(17,"pre",22),C(18),m()(),w(19,Dpe,2,3,"td",23),f(20,"td"),C(21),m()()}if(2&t){const e=n.$implicit,i=g(2);d(4),x(i.$t("_collect")),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),x(i.$t("_del")),d(2),h("ngIf",e.icon),d(2),h("href",e.url,Ot),d(),x(e.name),d(2),h("ngForOf",i.objectKeys(e.urls||Ti(10,zpe))),d(3),x(e.desc),d(),h("ngIf",e.extra),d(2),x(e.createdAt)}}function Epe(t,n){if(1&t){const e=U();f(0,"div")(1,"button",6),D("click",function(){return T(e),M(g().handleSubmit())}),C(2),m(),f(3,"button",9),D("click",function(){return T(e),M(g().logoutAuthCode())}),C(4),m(),f(5,"button",10),D("click",function(){return T(e),M(g().getUserCollect())}),C(6),m(),f(7,"div",11)(8,"b"),C(9,"\u5904\u7406\u5b8c\u6210\u6240\u6709\u6570\u636e\u540e\u9700\u8981\u70b9\u51fb\u4e00\u6b21\u4fdd\u5b58\u65b9\u53ef\u751f\u6548"),m()(),f(10,"nz-table",12,0)(12,"thead")(13,"tr")(14,"th",13),C(15),m(),f(16,"th",13),C(17),m(),f(18,"th",14),C(19),m(),f(20,"th",14),C(21),m(),f(22,"th",15),C(23),m(),f(24,"th",15),C(25,"\u5206\u7c7b\u4f4d\u7f6e"),m(),f(26,"th"),C(27),m()()(),f(28,"tbody"),w(29,xpe,22,11,"tr",16),m()()()}if(2&t){const e=g();d(),h("nzLoading",e.submitting),d(),Ce(" ",e.$t("_save")," "),d(),h("nzLoading",e.submitting),d(),Ce(" ",e.$t("_logoutAuthCode")," "),d(),h("nzLoading",e.submitting),d(),Ce(" ",e.$t("_refresh")," "),d(4),h("nzData",e.dataList)("nzShowPagination",!1),d(5),x(e.$t("_action")),d(2),x(e.$t("_icon")),d(2),x(e.$t("_webName")),d(2),x(e.$t("_webTag")),d(2),x(e.$t("_webDesc")),d(4),x(e.$t("_createAt")),d(2),h("ngForOf",e.dataList)("ngForTrackBy",e.trackByItem)}}let kpe=(()=>{class t{constructor(e,i,o){this.message=e,this.modal=i,this.notification=o,this.$t=_e,this.objectKeys=Object.keys,this.submitting=!1,this.isPermission=!!Yg(),this.dataList=[],this.authCode="",this.tagMap=ju}ngOnInit(){this.getUserCollect()}handleDelete(e){this.submitting=!0,function Ste(t){return y5.apply(this,arguments)}({data:this.dataList[e]}).then(i=>{i.data.success&&(this.dataList=i.data.data)}).finally(()=>{this.submitting=!1})}getUserCollect(){this.submitting=!0,function wte(t){return _5.apply(this,arguments)}().then(e=>{this.isPermission=!!e.data.success,e.data.success&&e.data.data&&(this.dataList=e.data.data)}).finally(()=>{this.submitting=!1})}handleSubmitAuthCode(){this.submitting||!this.authCode||(HD(this.authCode),this.getUserCollect())}logoutAuthCode(){(function EX(){window.localStorage.removeItem("AUTH_CODE")})(),window.location.reload()}handleConfirmGet(e,i){const o=this;try{const r=yn.findIndex(c=>c.title===e.extra.oneName),s=yn[r].nav.findIndex(c=>c.title===e.extra.twoName),a=yn[r].nav[s].nav.findIndex(c=>c.title===e.extra.threeName);Ei.emit("CREATE_WEB",{detail:e,oneIndex:r,twoIndex:s,threeIndex:a}),Ei.emit("SET_CREATE_WEB",{detail:null,callback(){o.handleDelete(i)}})}catch(r){this.notification.error(`${_e("_error")}`,`\u6536\u5f55\u5931\u8d25\uff0c\u53ef\u80fd\u5206\u7c7b\u4f4d\u7f6e\u540d\u79f0\u53d1\u751f\u6539\u53d8\uff0c\u8bf7\u624b\u52a8\u5220\u9664\uff1a${r.message}`)}}handleSubmit(){this.submitting||this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{this.submitting=!0,vc({message:"update db",content:JSON.stringify(yn),path:$g}).then(()=>{this.message.success(_e("_syncSuccessTip"))}).finally(()=>{this.submitting=!1})}})}trackByItem(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(za),v(P6))};static#t=this.\u0275cmp=q({type:t,selectors:[["user-collect"]],decls:3,vars:3,consts:[["basicTable",""],["nzTip","Loading...",3,"nzSpinning"],["class","center",4,"ngIf"],[4,"ngIf"],[1,"center"],["nz-input","","autofocus","",3,"ngModelChange","placeholder","ngModel"],["nz-button","","nzType","primary",1,"mt10",3,"click","nzLoading"],[1,"mt10"],["src","https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/img/32.png","width","600"],["nz-button","","nzType","primary","nzDanger","",1,"ml10",3,"click","nzLoading"],["nz-button","",1,"ml10",3,"click","nzLoading"],[1,"mb10","mt10"],[3,"nzData","nzShowPagination"],["nzWidth","80px"],["nzWidth","100px"],["nzWidth","300px"],[4,"ngFor","ngForOf","ngForTrackBy"],[3,"click"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"],[3,"src","name",4,"ngIf"],["target","_blank",3,"href"],["style","margin-bottom: 5px",3,"nzColor",4,"ngFor","ngForOf"],[1,"desc"],["nzWidth","300px",4,"ngIf"],[3,"src","name"],[2,"margin-bottom","5px",3,"nzColor"],[3,"href","target"]],template:function(i,o){1&i&&(f(0,"nz-spin",1),w(1,Spe,12,5,"div",2)(2,Epe,30,16,"div",3),m()),2&i&&(h("nzSpinning",o.submitting),d(),h("ngIf",!o.isPermission),d(),h("ngIf",o.isPermission))},dependencies:[zn,Tt,Ws,nr,mi,tr,Cr,Qi,B1,Y1,N2,$1,V2,Bc,U1,Fv,ZP,Xi,Fc],styles:[".add-btn[_ngcontent-%COMP%]{margin-bottom:20px;margin-right:20px}.desc[_ngcontent-%COMP%]{width:300px;white-space:pre-wrap}.ant-table-wrapper[_ngcontent-%COMP%]{overflow:auto}"]})}return t})();const Ape=()=>({});function Ope(t,n){if(1&t){const e=U();f(0,"div",8),D("click",function(){const o=T(e).index;return M(g().handleCilckNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index;Q("active",g().page===i),d(),Ce(" ",e.title," ")}}function Ppe(t,n){if(1&t){const e=U();f(0,"span",14),D("click",function(){const o=T(e).index;return M(g(3).handleSidebarNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index;Q("active",g(3).id===i),d(),Ce(" ",e.title," ")}}function Ipe(t,n){if(1&t&&(f(0,"nav",12),w(1,Ppe,2,3,"span",13),m()),2&t){const e=g(2);d(),h("ngForOf",e.websiteList[e.page].nav)("ngForTrackBy",e.trackByItem)}}function Npe(t,n){if(1&t&&(f(0,"h2",18),C(1),m()),2&t){const e=g().$implicit;d(),ca(" ",e.title," x ",e.nav.length," ")}}function Vpe(t,n){if(1&t&&(f(0,"div",27)(1,"a",28),C(2),m()()),2&t){const e=n.$implicit,i=g().$implicit,o=g(3);qo("background-color: "+(o.tagMap[e]&&o.tagMap[e].color||"#1890ff")),d(),h("href",(null==i.urls?null:i.urls[e])||"javascript:void(0)",Ot)("target",null!=i.urls&&i.urls[e]?"_blank":""),d(),x(o.tagMap[e]&&o.tagMap[e].name)}}function Fpe(t,n){if(1&t&&(f(0,"div",19)(1,"a",20)(2,"div",21),S(3,"app-logo",22)(4,"div",23),m(),S(5,"pre",24),f(6,"div",25),w(7,Vpe,3,5,"div",26),m()()()),2&t){const e=n.$implicit,i=g(3);d(),h("href",e.url,Ot),d(2),h("src",e.icon||"")("name",e.name)("size",30),d(),h("title",e.__name__||e.name)("innerHTML",e.name,Wn),d(),h("title",e.__desc__||e.desc)("innerHTML",e.desc,Wn),d(2),h("ngForOf",i.objectKeys(e.urls||Ti(9,Ape)))}}function Rpe(t,n){if(1&t&&(f(0,"div"),w(1,Npe,2,2,"h2",15),f(2,"div",16),w(3,Fpe,8,10,"div",17),m()()),2&t){const e=n.$implicit,i=g(2);d(),h("ngIf",e.title),d(2),h("ngForOf",e.nav)("ngForTrackBy",i.trackByItem)}}function Lpe(t,n){if(1&t&&(f(0,"div",9),w(1,Ipe,2,2,"nav",10)(2,Rpe,4,3,"div",11),m()),2&t){const e=g();d(),h("ngIf",null==e.websiteList[e.page]||null==e.websiteList[e.page].nav?null:e.websiteList[e.page].nav.length),d(),h("ngForOf",e.currentList)}}const Hpe=[{path:"sim",component:w2e},{path:"super",component:a2e},{path:"side",component:gpe},{path:"shortcut",component:wpe},{path:"light",component:Gue,data:{renderLinear:!0}},{path:"app",component:(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.objectKeys=Object.keys,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.open=!1,this.LOGO_CDN=An.favicon,this.tagMap=ju}ngOnInit(){this.activatedRoute.queryParams.subscribe(()=>{const{page:e,id:i,q:o}=pi();this.page=e,this.id=i,this.currentList=o?S1(this.websiteList,o):Bu()})}handleSidebarNav(e){const{page:i}=pi();this.router.navigate(["/app"],{queryParams:{page:i,id:e}})}handleCilckNav(e){this.router.navigate(["/app"],{queryParams:{page:e}}),this.open=!this.open}handleToggleOpen(){this.open=!this.open}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-home"]],decls:13,vars:8,consts:[[1,"app-page","user-select-none"],[1,"header"],[1,"header-top"],["alt","logo",1,"logo",3,"src"],[1,"open",3,"click"],[1,"nav-open"],["class","nav-title",3,"active","click",4,"ngFor","ngForOf","ngForTrackBy"],["class","wrapper",4,"ngIf"],[1,"nav-title",3,"click"],[1,"wrapper"],["class","children-nav",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"children-nav"],["class","tag",3,"active","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"tag",3,"click"],["class","block-title",4,"ngIf"],[1,"row"],["class","item-list",4,"ngFor","ngForOf","ngForTrackBy"],[1,"block-title"],[1,"item-list"],["target","_blank",3,"href"],[1,"top"],[3,"src","name","size"],[1,"name",3,"title","innerHTML"],[1,"desc",3,"title","innerHTML"],[1,"tagbox"],["class","tag-item",3,"style",4,"ngFor","ngForOf"],[1,"tag-item"],[3,"href","target"]],template:function(i,o){1&i&&(f(0,"section",0)(1,"header",1)(2,"div",2),S(3,"img",3),f(4,"div",4),D("click",function(){return o.handleToggleOpen()}),S(5,"i")(6,"i")(7,"i"),m()(),f(8,"nav",5),w(9,Ope,2,3,"div",6),m()(),S(10,"app-search-engine"),w(11,Lpe,3,2,"div",7),S(12,"app-footer"),m()),2&i&&(d(3),h("src",o.LOGO_CDN,Ot),d(),Q("active",o.open),d(4),Q("active",o.open),d(),h("ngForOf",o.websiteList)("ngForTrackBy",o.trackByItem),d(2),h("ngIf",o.websiteList[o.page]))},dependencies:[zn,Tt,S2,H1,Fc],styles:['.app-page[_ngcontent-%COMP%]{padding:45px 0 15px;min-height:100vh;background:#f6f6f6}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{z-index:9999;position:fixed;top:0;left:0;right:0;text-align:center;background:#fbfbfb;box-shadow:0 0 3px #ccc}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .header-top[_ngcontent-%COMP%]{position:relative;height:45px;border-bottom:1px solid #eee;background:#fbfbfb}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .header-top[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{display:inline-block;width:35px;height:35px;margin-top:4px;pointer-events:none}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open[_ngcontent-%COMP%]{position:absolute;top:9px;left:15px;cursor:pointer}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{display:block;margin-top:6px;height:2px;width:25px;background:#999;transform-origin:right center;transition:.1s linear}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:nth-child(1){transform:rotate(-45deg)}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:nth-child(2){opacity:0}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:nth-child(3){transform:translateY(2px) rotate(45deg)}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-open[_ngcontent-%COMP%]{display:none;box-shadow:1px 1px 5px #ccc;overflow:hidden;background:#fbfbfb;transition:.1s linear}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-open.active[_ngcontent-%COMP%]{display:block}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-title[_ngcontent-%COMP%]{display:inline-block;width:50%;font-size:16px;padding:8px 0}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-title[_ngcontent-%COMP%]:active, .app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-title.active[_ngcontent-%COMP%]{background:#0000000d}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{margin:0 0 30px}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .children-nav[_ngcontent-%COMP%]{background:#fbfbfb;margin:0 0 15px;padding:10px 10px 5px;white-space:nowrap;overflow:auto;box-shadow:0 0 3px #ccc}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .children-nav[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%]{position:relative;display:inline-block;font-size:14px;padding:3px 5px;margin:0 3px 5px 0;transition:background .1s linear;color:#333}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .children-nav[_ngcontent-%COMP%] .active[_ngcontent-%COMP%]:after{content:"";position:absolute;bottom:5px;left:50%;width:50%;transform:translate(-50%);height:3px;border-radius:2px;background:#20a0ff}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-bottom:10px;background:#fbfbfb;box-shadow:0 0 5px #ccc}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:inline-block;font-size:14px;margin-left:5px;width:calc(100% - 50px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{padding:10px;border-top:1px solid #eee;margin-top:8px;margin-bottom:0;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;font-size:12px}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .block-title[_ngcontent-%COMP%]{padding:10px 0 10px 15px;border-bottom:1px solid #eee;color:#3f51b5}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .top[_ngcontent-%COMP%]{padding:10px;display:flex;align-items:center}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#333}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .item-list[_ngcontent-%COMP%]{z-index:111;position:relative;width:calc(50% - 18px);margin:12px;border:1px solid #eee;overflow:hidden}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .item-list[_ngcontent-%COMP%]:nth-child(odd){margin-right:6px}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .item-list[_ngcontent-%COMP%]:nth-child(2n){margin-left:6px}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .item-list[_ngcontent-%COMP%]:hover .mark{bottom:0!important}.app-page[_ngcontent-%COMP%] .tagbox[_ngcontent-%COMP%]{display:flex;padding:0 8px 8px;flex-wrap:wrap}.app-page[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]{margin:6px 6px 0 0;padding:0 6px;border-radius:2px;font-size:12px;display:flex;align-items:center;transition:all .1s linear;color:#fff}.app-page[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:currentColor}.app-page[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]:hover{opacity:.8}.app-page[_ngcontent-%COMP%] #app-footer{margin-top:40px}.app-page[_ngcontent-%COMP%] #app-footer, .app-page[_ngcontent-%COMP%] #app-footer .copyright{margin-bottom:10px;color:#666}']})}return t})()},{path:"system",component:F2e,children:[{path:"info",component:R2e},{path:"bookmark",component:uhe},{path:"collect",component:kpe},{path:"about",component:hhe},{path:"tag",component:Y0e},{path:"search",component:r3e},{path:"setting",component:G3e},{path:"angle",component:X6e},{path:"web",component:Q6e},{path:"**",redirectTo:"/system/web"}]},{path:"**",redirectTo:"/"+An.theme.toLowerCase()}];let Bpe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[RD.forRoot(Hpe,{useHash:Vs.hashMode}),RD]})}return t})();const $pe=class jpe{constructor(n,e){Ei.on("MESSAGE",i=>{n[i.type](i.content)}),Ei.on("NOTIFICATION",i=>{e.create(i.type,i.title,i.content)})}};function Ype(t,n){1&t&&(f(0,"a",1),xh(),f(1,"svg",2),S(2,"path",3)(3,"path",4),f(4,"path",5)(5,"style"),C(6," @keyframes octocat { 0%, 100% { transform: rotate(0); } 20%, 60% { transform: rotate(-25deg); } 40%, 80% { transform: rotate(100deg); } } .octo-arm { animation: octocat 1.1s linear infinite; } "),m()()()()),2&t&&h("href",g().gitRepoUrl,Ot)}let Upe=(()=>{class t{constructor(){this.gitRepoUrl="https://github.com/xjh22222228/nav-web"===Vs.gitRepoUrl?"https://github.com/xjh22222228/nav":Vs.gitRepoUrl,this.showGithub=An.showGithub}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-icon-git"]],decls:1,vars:1,consts:[["target","_blank","rel","noreferer noopener","class","github-link",3,"href",4,"ngIf"],["target","_blank","rel","noreferer noopener",1,"github-link",3,"href"],["width","50","height","50","viewBox","0 0 250 250","aria-hidden","true",2,"fill","#20a0ff","color","#fff"],["d","M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"],["d","M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2","data-url","https://github.com/xjh22222228","fill","currentColor",1,"octo-arm",2,"transform-origin","130px 106px"],["d","M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z","fill","currentColor",1,"octo-body"]],template:function(i,o){1&i&&w(0,Ype,7,1,"a",0),2&i&&h("ngIf",o.gitRepoUrl&&o.showGithub)},dependencies:[Tt],styles:["@media (max-width: 580px){.github-link[_ngcontent-%COMP%]{display:none}}.github-link[_ngcontent-%COMP%]{position:fixed;top:-6px;right:-6px;border:0;z-index:10}"]})}return t})();const Wpe=()=>({maxHeight:"70vh",overflowY:"auto"}),Gpe=()=>({minRows:3,maxRows:5});function qpe(t,n){1&t&&(f(0,"span",22),C(1,"/"),m())}function Kpe(t,n){if(1&t&&(f(0,"span"),C(1),w(2,qpe,2,0,"span",21),m()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),Ce("",e," "),d(),h("ngIf",i!==o.detail.breadcrumb.length-1)}}function Jpe(t,n){if(1&t&&(f(0,"div",19),w(1,Kpe,3,2,"span",20),m()),2&t){const e=g(2);d(),h("ngForOf",e.detail.breadcrumb)}}function Zpe(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14),S(4,"input",23),m()()),2&t){const e=g(2);d(),h("nzSpan",4),d(),x(e.$t("_sort")),d(),h("nzSpan",20)}}function Qpe(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14),S(4,"nz-switch",24),m()()),2&t){const e=g(2);d(),h("nzSpan",4),d(),x(e.$t("_shortcut")),d(),h("nzSpan",20)}}function Xpe(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14),S(4,"nz-switch",25),m()()),2&t){const e=g(2);d(),h("nzSpan",4),d(),x(e.$t("_onlyOwnVisible")),d(),h("nzSpan",20)}}function e8e(t,n){1&t&&S(0,"app-logo",29),2&t&&h("src",g(4).iconUrl)("size",25)}function t8e(t,n){1&t&&w(0,e8e,1,2,"app-logo",28),2&t&&h("ngIf",g(3).iconUrl)}function n8e(t,n){1&t&&S(0,"i",31)}function i8e(t,n){if(1&t){const e=U();f(0,"label",32),S(1,"i",33),f(2,"input",34),D("change",function(o){return T(e),M(g(4).onChangeFile(o))}),m()()}if(2&t){const e=g(4);d(),h("title",e.$t("_upload"))}}function o8e(t,n){if(1&t&&w(0,n8e,1,0,"i",30)(1,i8e,3,1,"ng-template",null,2,ot),2&t){const e=He(2);h("ngIf",g(3).uploading)("ngIfElse",e)}}function r8e(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14)(4,"nz-input-group",26),S(5,"input",27),m(),w(6,t8e,1,1,"ng-template",null,0,ot)(8,o8e,3,2,"ng-template",null,1,ot),m()()),2&t){const e=He(7),i=He(9),o=g(2);d(),h("nzSpan",4),d(),x(o.$t("_iconAddr")),d(),h("nzSpan",20),d(),h("nzPrefix",e)("nzSuffix",i),d(),h("placeholder",o.$t("_copyUpload"))("readonly",o.getting)("placeholder",o.getting?o.$t("_pendingGet"):"")}}function s8e(t,n){1&t&&S(0,"app-logo",29),2&t&&h("src",g(4).iconUrl)("size",25)}function a8e(t,n){1&t&&w(0,s8e,1,2,"app-logo",28),2&t&&h("ngIf",g(3).iconUrl)}function c8e(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14)(4,"nz-input-group",35),S(5,"input",36),m(),w(6,a8e,1,1,"ng-template",null,0,ot),m()()),2&t){const e=He(7),i=g(2);d(),h("nzSpan",4),d(),x(i.$t("_iconAddr")),d(),h("nzSpan",20),d(),h("nzPrefix",e),d(),h("readonly",i.getting)("placeholder",i.getting?i.$t("_pendingGet"):"")}}function l8e(t,n){if(1&t&&S(0,"nz-option",43),2&t){const e=n.$implicit;h("nzLabel",e.name)("nzValue",e.id)}}function d8e(t,n){if(1&t&&(f(0,"nz-select",41),w(1,l8e,1,2,"nz-option",42),m()),2&t){const e=g(3);d(),h("ngForOf",e.tagList)}}function u8e(t,n){if(1&t){const e=U();f(0,"i",44),D("click",function(){T(e);const o=g().index;return M(g(2).lessMoreUrl(o))}),m()}}function h8e(t,n){if(1&t&&(f(0,"nz-form-item",37),S(1,"nz-form-label",38),f(2,"nz-form-control",14)(3,"nz-input-group",39),S(4,"input",40),m(),w(5,d8e,2,1,"ng-template",null,3,ot)(7,u8e,1,0,"ng-template",null,4,ot),m()()),2&t){const e=n.index,i=He(6),o=He(8),r=g(2);h("formGroupName",e),d(),h("nzSpan",4)("nzNoColon",!0),d(),h("nzSpan",20),d(),h("nzAddOnBefore",i)("nzAddOnAfter",o),d(),h("placeholder",r.$t("_tagPlaceholder"))}}function p8e(t,n){if(1&t){const e=U();f(0,"nz-form-item"),S(1,"nz-form-label",38),f(2,"nz-form-control",14)(3,"button",45),D("click",function(){return T(e),M(g(2).addMoreUrl())}),S(4,"i",46),C(5),m()()()}if(2&t){const e=g(2);d(),h("nzSpan",4)("nzNoColon",!0),d(),h("nzSpan",20),d(3),Ce("",e.$t("_continueAdd")," ")}}function f8e(t,n){if(1&t){const e=U();$e(0),w(1,Jpe,2,1,"div",7),f(2,"form",8)(3,"nz-form-item")(4,"nz-form-label",9),C(5),m(),f(6,"nz-form-control",10)(7,"input",11),D("blur",function(o){return T(e),M(g().onUrlBlur(o))}),m()()(),f(8,"nz-form-item")(9,"nz-form-label",9),C(10),m(),f(11,"nz-form-control",10),S(12,"input",12),m()(),w(13,Zpe,5,3,"nz-form-item",13)(14,Qpe,5,3,"nz-form-item",13)(15,Xpe,5,3,"nz-form-item",13),f(16,"nz-form-item")(17,"nz-form-label",14),C(18),m(),f(19,"nz-form-control",14),S(20,"nz-rate",15),m()(),w(21,r8e,10,8,"nz-form-item",13)(22,c8e,8,6,"nz-form-item",13),f(23,"nz-form-item")(24,"nz-form-label",14),C(25),m(),f(26,"nz-form-control",14)(27,"textarea",16),C(28," "),m()()(),f(29,"div",17),w(30,h8e,9,7,"nz-form-item",18),m(),w(31,p8e,6,4,"nz-form-item",13),m(),Ye()}if(2&t){const e=g();d(),h("ngIf",null==e.detail?null:e.detail.breadcrumb),d(),h("formGroup",e.validateForm),d(2),h("nzSpan",4),d(),x(e.$t("_webLink")),d(),h("nzSpan",20)("nzErrorTip",e.$t("_requiredLink")),d(3),h("nzSpan",4),d(),x(e.$t("_webName")),d(),h("nzSpan",20)("nzErrorTip",e.$t("_requiredName")),d(),h("placeholder",e.$t("_webTitle"))("readonly",e.getting)("placeholder",e.getting?e.$t("_pendingGet"):""),d(),h("ngIf",e.isLogin),d(),h("ngIf",e.isLogin),d(),h("ngIf",e.isLogin),d(2),h("nzSpan",4),d(),x(e.$t("_score")),d(),h("nzSpan",20),d(2),h("ngIf",e.isLogin),d(),h("ngIf",!e.isLogin),d(2),h("nzSpan",4),d(),x(e.$t("_webDesc")),d(),h("nzSpan",20),d(),h("placeholder",e.settings.description)("nzAutosize",Ti(30,Gpe))("readonly",e.getting)("placeholder",e.getting?e.$t("_pendingGet"):""),d(3),h("ngForOf",e.urlArray.controls),d(),h("ngIf",e.tagList.length>0)}}let m8e=(()=>{class t{constructor(e,i){this.fb=e,this.message=i,this.onOk=new H,this.$t=_e,this.isLogin=Wi,this.iconUrl="",this.tagList=h3,this.uploading=!1,this.getting=!1,this.settings=An,this.showModal=!1,this.detail=null,this.callback=()=>{},Ei.on("CREATE_WEB",o=>{this.open(this,o)}),Ei.on("SET_CREATE_WEB",o=>{for(const r in o)this[r]=o[r]}),this.validateForm=this.fb.group({title:["",[G7.required]],url:["",[G7.required]],top:[!1],ownVisible:[!1],rate:[5],icon:[""],desc:[""],index:[""],urlArr:this.fb.array([])})}get urlArray(){return this.validateForm.get("urlArr")}open(e,i={}){const o=i.detail;if(e.detail=o,e.showModal=!0,e.oneIndex=i.oneIndex,e.twoIndex=i.twoIndex,e.threeIndex=i.threeIndex,this.validateForm.get("title").setValue(fs(o?.name)),this.validateForm.get("desc").setValue(fs(o?.desc)),this.validateForm.get("index").setValue(o?.index??""),this.validateForm.get("icon").setValue(o?.icon||""),this.validateForm.get("url").setValue(o?.url||""),this.validateForm.get("top").setValue(o?.top??!1),this.validateForm.get("ownVisible").setValue(o?.ownVisible??!1),this.validateForm.get("rate").setValue(o?.rate??5),o&&"object"==typeof o.urls)for(let r in o.urls)this.validateForm?.get("urlArr").push?.(this.fb.group({id:Number(r),name:ju[r]?.name??"",url:o.urls[r]}))}onClose(){this.validateForm.get("urlArr").controls=[],this.validateForm.reset(),this.showModal=!1,this.detail=null,this.iconUrl="",this.oneIndex=void 0,this.twoIndex=void 0,this.threeIndex=void 0,this.uploading=!1,this.callback=Function}onUrlBlur(e){var i=this;return Di(function*(){const o=e.target?.value;if(!o)return;i.getting=!0;const r=yield function Ate(t){return S5.apply(this,arguments)}(o);null!=r.url&&(i.iconUrl=r.url,i.validateForm.get("icon").setValue(i.iconUrl)),null!=r.title&&i.validateForm.get("title").setValue(r.title),null!=r.description&&i.validateForm.get("desc").setValue(r.description),!1===r.status&&i.message.error("\u81ea\u52a8\u6293\u53d6\u5931\u8d25\uff0c\u8bf7\u624b\u52a8\u5199\u5165"),i.getting=!1})()}addMoreUrl(){this.validateForm.get("urlArr").push(this.fb.group({id:"",name:"",url:""}))}lessMoreUrl(e){this.validateForm.get("urlArr").removeAt(e)}handleUploadImage(e){const i=this,o=new FileReader;o.readAsDataURL(e),o.onload=function(){i.uploading=!0,i.iconUrl=this.result;const r=i.iconUrl.split(",")[1],s=`nav-${Date.now()}-${e.name}`;Zx({branch:"image",message:"create image",content:r,isEncode:!1,path:s}).then(()=>{i.validateForm.get("icon").setValue(s),i.message.success(_e("_uploadSuccess"))}).finally(()=>{i.uploading=!1})}}onChangeFile(e){const{files:i}=e.target;if(i.length<=0)return;const o=i[0];if(!o.type.startsWith("image"))return this.message.error(_e("_notUpload"));this.handleUploadImage(o)}handleOk(){var e=this;return Di(function*(){for(const z in e.validateForm.controls)e.validateForm.controls[z].markAsDirty(),e.validateForm.controls[z].updateValueAndValidity();const i=(new Date).toString();let o={},{title:r,icon:s,url:a,top:c,ownVisible:l,rate:u,desc:p,index:_}=e.validateForm.value;if(!r||!a)return;r=r.trim(),(e.validateForm.get("urlArr")?.value||[]).forEach(z=>{null!=z.id&&(o[z.id]=z.url)});const y={id:-Date.now(),name:r,createdAt:e.detail?.createdAt??i,rate:u??5,desc:p||"",top:c??!1,index:_,ownVisible:l??!1,icon:s,url:a,urls:o};if(e.detail)!function Pte(t,n){const e=Object.keys(n);let i=!1;return function o(r){for(let s=0;sGe.name===y.name))return e.message.error(`${_e("_repeatAdd")} "${y.name}"`);if(e.uploading=!0,e.isLogin)pe.unshift(y),Yn(yn),e.message.success(_e("_addSuccess"));else if(e.settings.allowCollect){const Ge=yield function zte(t){return b5.apply(this,arguments)}({email:e.settings.email,data:{...y,extra:{type:"create",oneName:yn[k].title,twoName:yn[k].nav[A].title,threeName:yn[k].nav[A].nav[ie].title}}});e.message.error(!1===Ge.data.success?Ge.data.message:_e("_waitHandle"))}}catch(z){e.message.error(z.message)}e.callback(),e.onOk?.emit?.(y),e.onClose()})()}static#e=this.\u0275fac=function(i){return new(i||t)(v(fv),v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-create-web"]],outputs:{onOk:"onOk"},decls:2,vars:6,consts:[["prefixIcon",""],["suffixIconSearch",""],["loading",""],["addOnBeforeTemplate",""],["addOnAfterTemplate",""],[3,"nzVisibleChange","nzOnCancel","nzOnOk","nzWidth","nzVisible","nzTitle","nzOkLoading","nzBodyStyle"],[4,"nzModalContent"],["class","breadcrumb1",4,"ngIf"],["nz-form","",3,"formGroup"],["nzRequired","",3,"nzSpan"],[3,"nzSpan","nzErrorTip"],["formControlName","url","nz-input","","placeholder","https://github.com/xjh22222228/nav",3,"blur"],["formControlName","title","nz-input","",3,"placeholder","readonly"],[4,"ngIf"],[3,"nzSpan"],["formControlName","rate","nzAllowHalf",""],["formControlName","desc","nz-input","",1,"dark-scrollbar",3,"placeholder","nzAutosize","readonly"],["formArrayName","urlArr"],[3,"formGroupName",4,"ngFor","ngForOf"],[1,"breadcrumb1"],[4,"ngFor","ngForOf"],["class","arrow",4,"ngIf"],[1,"arrow"],["formControlName","index","nz-input","","type","number","placeholder","-1024"],["formControlName","top"],["formControlName","ownVisible"],[3,"nzPrefix","nzSuffix"],["formControlName","icon","nz-input","",3,"placeholder","readonly"],[3,"src","size",4,"ngIf"],[3,"src","size"],["nz-icon","","nzType","loading","nzTheme","outline",4,"ngIf","ngIfElse"],["nz-icon","","nzType","loading","nzTheme","outline"],["id","file"],["nz-icon","","nzType","upload","nzTheme","outline",1,"cursor-pointer",3,"title"],["type","file","name","file","accept","image/*",1,"file-upload",3,"change"],[3,"nzPrefix"],["formControlName","icon","nz-input","",3,"readonly","placeholder"],[3,"formGroupName"],[3,"nzSpan","nzNoColon"],[3,"nzAddOnBefore","nzAddOnAfter"],["formControlName","url","type","text","nz-input","",3,"placeholder"],["formControlName","id",2,"width","100px"],[3,"nzLabel","nzValue",4,"ngFor","ngForOf"],[3,"nzLabel","nzValue"],["nz-icon","","nzType","minus","nzTheme","outline",1,"cursor-pointer",3,"click"],["nz-button","","nzType","default","nzBlock","",3,"click"],["nz-icon","","nzType","plus"]],template:function(i,o){1&i&&(f(0,"nz-modal",5),Oi("nzVisibleChange",function(s){return Yi(o.showModal,s)||(o.showModal=s),s}),D("nzOnCancel",function(){return o.onClose()})("nzOnOk",function(){return o.handleOk()}),w(1,f8e,32,31,"ng-container",6),m()),2&i&&(h("nzWidth",570),Ai("nzVisible",o.showModal),h("nzTitle",o.$t(o.detail?"_edit":"_add"))("nzOkLoading",o.uploading||o.getting)("nzBodyStyle",Ti(5,Wpe)))},dependencies:[zn,Tt,c6,y2,Ws,x6,_P,vP,Nc,Vc,x1,Cc,F2,V6,R6,F6,nr,mi,tr,T6,Cr,cv,Qi,g6,R1,L1,M6,D6,cn,_v,N6,Fc],styles:[".file-upload[_ngcontent-%COMP%]{display:none!important}.row[_ngcontent-%COMP%]{display:flex;justify-content:space-around}.breadcrumb1[_ngcontent-%COMP%]{margin-bottom:10px;padding-left:5px;font-weight:700}.breadcrumb1[_ngcontent-%COMP%] .arrow[_ngcontent-%COMP%]{margin:0 8px 0 5px}@media (max-width: 580px){ .ant-modal{top:0}}"]})}return t})();function g8e(t,n){if(1&t&&S(0,"nz-option",7),2&t){const i=n.index;h("nzLabel",n.$implicit.title)("nzValue",i)}}function v8e(t,n){if(1&t&&S(0,"nz-option",7),2&t){const i=n.index;h("nzLabel",n.$implicit.title||"")("nzValue",i)}}function _8e(t,n){if(1&t&&S(0,"nz-option",7),2&t){const i=n.index;h("nzLabel",n.$implicit.title||"")("nzValue",i)}}function b8e(t,n){if(1&t){const e=U();$e(0),f(1,"nz-select",2),D("ngModelChange",function(o){return T(e),M(g().hanldeOneSelect(o))}),w(2,g8e,1,2,"nz-option",3),m(),f(3,"nz-select",4),D("ngModelChange",function(o){return T(e),M(g().hanldeTwoSelect(o))}),w(4,v8e,1,2,"nz-option",3),m(),f(5,"nz-select",4),D("ngModelChange",function(o){return T(e),M(g().hanldeThreeSelect(o))}),w(6,_8e,1,2,"nz-option",3),m(),f(7,"div",5)(8,"label",6),Oi("ngModelChange",function(o){T(e);const r=g();return Yi(r.checked,o)||(r.checked=o),M(o)}),C(9),m()(),Ye()}if(2&t){const e=g();d(),h("ngModel",e.oneSelect)("nzPlaceHolder",e.$t("_sel1")),d(),h("ngForOf",e.websiteList),d(),h("ngModel",e.twoSelect)("nzPlaceHolder",e.$t("_sel2")),d(),h("ngForOf",e.twoOptList),d(),h("ngModel",e.threeSelect)("nzPlaceHolder",e.$t("_sel3")),d(),h("ngForOf",e.threeOptList),d(2),Ai("ngModel",e.checked),d(),x(e.$t("_copy"))}}let y8e=(()=>{class t{constructor(e){this.message=e,this.$t=_e,this.websiteList=yn,this.twoOptList=[],this.threeOptList=[],this.checked=!1,this.moveSites=[],this.showModal=!1,this.indexs=[],Ei.on("MOVE_WEB",i=>{this.open(this,i)})}ngOnInit(){}open(e,i){e.indexs=i.indexs,e.moveSites=i.data,e.showModal=!0}pushMoveSites(e){this.moveSites=e}hanldeOneSelect(e){this.oneSelect=e;const i=this.websiteList[e].title,o=this.websiteList.find(r=>r.title===i);this.twoOptList=o.nav,this.twoSelect=void 0,this.threeSelect=void 0}hanldeTwoSelect(e){this.twoSelect=e;const i=this.twoOptList[e].title,o=this.twoOptList.find(r=>r.title===i);this.threeOptList=o.nav,this.threeSelect=void 0}hanldeThreeSelect(e){this.threeSelect=e}handleCancel(){this.showModal=!1}hanldeOk(){if(null==this.threeSelect)return this.message.error(_e("_sel3"));const e=this.indexs.filter(i=>null!=i);if(4!==e.length)return this.message.error(`move web: indexs\u6570\u91cf\u4e0d\u6b63\u786e${e.join(",")}`);try{const i=this.oneSelect,o=this.twoSelect,r=this.threeSelect;this.moveSites.forEach(s=>{if(this.websiteList[i].nav[o].nav[r].nav.find(c=>c.name===s.name))this.message.error(`${_e("_repeatAdd")} "${s.name}"`);else{if(this.websiteList[i].nav[o].nav[r].nav.unshift(s),!this.checked){const[c,l,u,p]=e;this.websiteList[c].nav[l].nav[u].nav.splice(p,1)}this.message.success(`"${s.name}" ${_e("_moveSuccess")}`)}}),Yn(this.websiteList),this.handleCancel()}catch(i){this.message.error(i.message)}}static#e=this.\u0275fac=function(i){return new(i||t)(v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-move-web"]],decls:2,vars:3,consts:[[3,"nzVisibleChange","nzOnCancel","nzOnOk","nzWidth","nzVisible","nzTitle"],[4,"nzModalContent"],["nzShowSearch","",2,"width","160px",3,"ngModelChange","ngModel","nzPlaceHolder"],[3,"nzLabel","nzValue",4,"ngFor","ngForOf"],["nzShowSearch","",2,"width","160px","margin-left","15px",3,"ngModelChange","ngModel","nzPlaceHolder"],[1,"act"],["nz-checkbox","",3,"ngModelChange","ngModel"],[3,"nzLabel","nzValue"]],template:function(i,o){1&i&&(f(0,"nz-modal",0),Oi("nzVisibleChange",function(s){return Yi(o.showModal,s)||(o.showModal=s),s}),D("nzOnCancel",function(){return o.handleCancel()})("nzOnOk",function(){return o.hanldeOk()}),w(1,b8e,10,11,"ng-container",1),m()),2&i&&(h("nzWidth",560),Ai("nzVisible",o.showModal),h("nzTitle",o.$t("_moveTo")))},dependencies:[zn,c6,y2,Nc,Vc,Qi,Rc,Xi],styles:[".act[_ngcontent-%COMP%]{margin-top:30px}"]})}return t})();function C8e(t,n){1&t&&S(0,"app-move-web")}let w8e=(()=>{class t{constructor(e,i,o,r,s){this.router=e,this.activatedRoute=i,this.i18n=o,this.message=r,this.notification=s,this.isLogin=Wi,new $pe(r,s)}ngOnInit(){this.goRoute(),this.activatedRoute.queryParams.subscribe(xte),"zh-CN"===X5()?this.i18n.setLocale(x7):this.i18n.setLocale(EA);const e=j0();e&&Jx(e).catch(()=>{BD(),setTimeout(()=>{location.reload()},3e3)})}goRoute(){if("Current"!==An.appTheme&&"ontouchstart"in window){const e=(this.router.url.split("?")[0]||"").toLowerCase(),{page:i,id:o,q:r}=pi(),s={page:i,id:o,q:r},a="/"+String(An.appTheme).toLowerCase();e.includes(a)||this.router.navigate([a],{queryParams:s})}}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po),v($s),v(er),v(P6))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-xiejiahe"]],decls:5,vars:1,consts:[["id","xiejiahe"],[4,"ngIf"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,"app-icon-git")(2,"router-outlet")(3,"app-create-web"),w(4,C8e,1,0,"app-move-web",1),m()),2&i&&(d(4),h("ngIf",o.isLogin))},dependencies:[Tt,I0,Upe,m8e,y8e]})}return t})();function DI(t){return new j(3e3,!1)}function xa(t){switch(t.length){case 0:return new e2;case 1:return t[0];default:return new qE(t)}}function xI(t,n,e=new Map,i=new Map){const o=[],r=[];let s=-1,a=null;if(n.forEach(c=>{const l=c.get("offset"),u=l==s,p=u&&a||new Map;c.forEach((_,b)=>{let y=b,z=_;if("offset"!==b)switch(y=t.normalizePropertyName(y,o),z){case"!":z=e.get(b);break;case Hs:z=i.get(b);break;default:z=t.normalizeStyleValue(b,y,z,o)}p.set(y,z)}),u||r.push(p),a=p,s=l}),o.length)throw function U8e(t){return new j(3502,!1)}();return r}function Rv(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Lv(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Lv(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Lv(e,"destroy",t)))}}function Lv(t,n,e){const r=Hv(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),s=t._data;return null!=s&&(r._data=s),r}function Hv(t,n,e,i,o="",r=0,s){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!s}}function ir(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function EI(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const ife=typeof document>"u"?null:document.documentElement;function Bv(t){const n=t.parentNode||t.host||null;return n===ife?null:n}let jc=null,kI=!1;function AI(t,n){for(;n;){if(n===t)return!0;n=Bv(n)}return!1}function OI(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let jv=(()=>{class t{validateStyleProperty(e){return function rfe(t){jc||(jc=function sfe(){return typeof document<"u"?document.body:null}()||{},kI=!!jc.style&&"WebkitAppearance"in jc.style);let n=!0;return jc.style&&!function ofe(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in jc.style,!n&&kI&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in jc.style)),n}(e)}containsElement(e,i){return AI(e,i)}getParentElement(e){return Bv(e)}query(e,i,o){return OI(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,s,a=[],c){return new e2(o,r)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();class $v{static#e=this.NOOP=new jv}class Yv{}const cfe=1e3,Uv="ng-enter",$6="ng-leave",Y6="ng-trigger",U6=".ng-trigger",II="ng-animating",Wv=".ng-animating";function Gs(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Gv(parseFloat(n[1]),n[2])}function Gv(t,n){return"s"===n?t*cfe:t}function W6(t,n,e){return t.hasOwnProperty("duration")?t:function dfe(t,n,e){let o,r=0,s="";if("string"==typeof t){const a=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return n.push(DI()),{duration:0,delay:0,easing:""};o=Gv(parseFloat(a[1]),a[2]);const c=a[3];null!=c&&(r=Gv(parseFloat(c),a[4]));const l=a[5];l&&(s=l)}else o=t;if(!e){let a=!1,c=n.length;o<0&&(n.push(function z8e(){return new j(3100,!1)}()),a=!0),r<0&&(n.push(function S8e(){return new j(3101,!1)}()),a=!0),a&&n.splice(c,0,DI())}return{duration:o,delay:r,easing:s}}(t,n,e)}function _s(t,n,e){n.forEach((i,o)=>{const r=Kv(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function $c(t,n){n.forEach((e,i)=>{const o=Kv(i);t.style[o]=""})}function L2(t){return Array.isArray(t)?1==t.length?t[0]:function Lne(t,n=null){return{type:lt.Sequence,steps:t,options:n}}(t):t}const qv=new RegExp("{{\\s*(.+?)\\s*}}","g");function VI(t){let n=[];if("string"==typeof t){let e;for(;e=qv.exec(t);)n.push(e[1]);qv.lastIndex=0}return n}function H2(t,n,e){const i=`${t}`,o=i.replace(qv,(r,s)=>{let a=n[s];return null==a&&(e.push(function M8e(t){return new j(3003,!1)}()),a=""),a.toString()});return o==i?t:o}const pfe=/-+([a-z0-9])/g;function Kv(t){return t.replace(pfe,(...n)=>n[1].toUpperCase())}function or(t,n,e){switch(n.type){case lt.Trigger:return t.visitTrigger(n,e);case lt.State:return t.visitState(n,e);case lt.Transition:return t.visitTransition(n,e);case lt.Sequence:return t.visitSequence(n,e);case lt.Group:return t.visitGroup(n,e);case lt.Animate:return t.visitAnimate(n,e);case lt.Keyframes:return t.visitKeyframes(n,e);case lt.Style:return t.visitStyle(n,e);case lt.Reference:return t.visitReference(n,e);case lt.AnimateChild:return t.visitAnimateChild(n,e);case lt.AnimateRef:return t.visitAnimateRef(n,e);case lt.Query:return t.visitQuery(n,e);case lt.Stagger:return t.visitStagger(n,e);default:throw function D8e(t){return new j(3004,!1)}()}}function Jv(t,n){return window.getComputedStyle(t)[n]}const gfe=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class FI extends Yv{normalizePropertyName(n,e){return Kv(n)}normalizeStyleValue(n,e,i,o){let r="";const s=i.toString().trim();if(gfe.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&o.push(function x8e(t,n){return new j(3005,!1)}())}return s+r}}const G6="*";const q6=new Set(["true","1"]),K6=new Set(["false","0"]);function RI(t,n){const e=q6.has(t)||K6.has(t),i=q6.has(n)||K6.has(n);return(o,r)=>{let s=t==G6||t==o,a=n==G6||n==r;return!s&&e&&"boolean"==typeof o&&(s=o?q6.has(t):K6.has(t)),!a&&i&&"boolean"==typeof r&&(a=r?q6.has(n):K6.has(n)),s&&a}}const yfe=new RegExp("s*:selfs*,?","g");function Zv(t,n,e,i){return new Cfe(t).build(n,e,i)}class Cfe{constructor(n){this._driver=n}build(n,e,i){const o=new Sfe(e);return this._resetContextStyleTimingState(o),or(this,L2(n),o)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,o=e.depCount=0;const r=[],s=[];return"@"==n.name.charAt(0)&&e.errors.push(function E8e(){return new j(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==lt.State){const c=a,l=c.name;l.toString().split(/\s*,\s*/).forEach(u=>{c.name=u,r.push(this.visitState(c,e))}),c.name=l}else if(a.type==lt.Transition){const c=this.visitTransition(a,e);i+=c.queryCount,o+=c.depCount,s.push(c)}else e.errors.push(function k8e(){return new j(3007,!1)}())}),{type:lt.Trigger,name:n.name,states:r,transitions:s,queryCount:i,depCount:o,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),o=n.options&&n.options.params||null;if(i.containsDynamicStyles){const r=new Set,s=o||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(c=>{VI(c).forEach(l=>{s.hasOwnProperty(l)||r.add(l)})})}),r.size&&e.errors.push(function A8e(t,n){return new j(3008,!1)}(0,r.values()))}return{type:lt.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=or(this,L2(n.animation),e),o=function vfe(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function _fe(t,n,e){if(":"==t[0]){const c=function bfe(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof c)return void n.push(c);t=c}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function H8e(t){return new j(3015,!1)}()),n;const o=i[1],r=i[2],s=i[3];n.push(RI(o,s)),"<"==r[0]&&(o!=G6||s!=G6)&&n.push(RI(s,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:lt.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Yc(n.options)}}visitSequence(n,e){return{type:lt.Sequence,steps:n.steps.map(i=>or(this,i,e)),options:Yc(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(s=>{e.currentTime=i;const a=or(this,s,e);return o=Math.max(o,e.currentTime),a});return e.currentTime=o,{type:lt.Group,steps:r,options:Yc(n.options)}}visitAnimate(n,e){const i=function Mfe(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Qv(W6(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=Qv(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=W6(e,n);return Qv(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:Ke({});if(r.type==lt.Keyframes)o=this.visitKeyframes(r,e);else{let s=n.styles,a=!1;if(!s){a=!0;const l={};i.easing&&(l.easing=i.easing),s=Ke(l)}e.currentTime+=i.duration+i.delay;const c=this.visitStyle(s,e);c.isEmptyStep=a,o=c}return e.currentAnimateTimings=null,{type:lt.Animate,timings:i,style:o,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],o=Array.isArray(n.styles)?n.styles:[n.styles];for(let a of o)"string"==typeof a?a===Hs?i.push(a):e.errors.push(new j(3002,!1)):i.push(new Map(Object.entries(a)));let r=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!r))for(let c of a.values())if(c.toString().indexOf("{{")>=0){r=!0;break}}),{type:lt.Style,styles:i,easing:s,offset:n.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let o=e.currentTime,r=e.currentTime;i&&r>0&&(r-=i.duration+i.delay),n.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,c)=>{const l=e.collectedStyles.get(e.currentQuerySelector),u=l.get(c);let p=!0;u&&(r!=o&&r>=u.startTime&&o<=u.endTime&&(e.errors.push(function P8e(t,n,e,i,o){return new j(3010,!1)}()),p=!1),r=u.startTime),p&&l.set(c,{startTime:r,endTime:o}),e.options&&function hfe(t,n,e){const i=n.params||{},o=VI(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function T8e(t){return new j(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:lt.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function I8e(){return new j(3011,!1)}()),i;let r=0;const s=[];let a=!1,c=!1,l=0;const u=n.steps.map(k=>{const A=this._makeStyleAst(k,e);let ie=null!=A.offset?A.offset:function Tfe(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(A.styles),pe=0;return null!=ie&&(r++,pe=A.offset=ie),c=c||pe<0||pe>1,a=a||pe0&&r{const ie=_>0?A==b?1:_*A:s[A],pe=ie*E;e.currentTime=y+z.delay+pe,z.duration=pe,this._validateStyleAst(k,e),k.offset=ie,i.styles.push(k)}),i}visitReference(n,e){return{type:lt.Reference,animation:or(this,L2(n.animation),e),options:Yc(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:lt.AnimateChild,options:Yc(n.options)}}visitAnimateRef(n,e){return{type:lt.AnimateRef,animation:this.visitReference(n.animation,e),options:Yc(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,s]=function wfe(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(yfe,"")),t=t.replace(/@\*/g,U6).replace(/@\w+/g,e=>U6+"-"+e.slice(1)).replace(/:animating/g,Wv),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,ir(e.collectedStyles,e.currentQuerySelector,new Map);const a=or(this,L2(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:lt.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:Yc(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function R8e(){return new j(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:W6(n.timings,e.errors,!0);return{type:lt.Stagger,animation:or(this,L2(n.animation),e),timings:i,options:null}}}class Sfe{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Yc(t){return t?(t={...t}).params&&(t.params=function zfe(t){return t?{...t}:null}(t.params)):t={},t}function Qv(t,n,e){return{duration:t,delay:n,easing:e}}function Xv(t,n,e,i,o,r,s=null,a=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:s,subTimeline:a}}class J6{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const Efe=new RegExp(":enter","g"),Afe=new RegExp(":leave","g");function e9(t,n,e,i,o,r=new Map,s=new Map,a,c,l=[]){return(new Ofe).buildKeyframes(t,n,e,i,o,r,s,a,c,l)}class Ofe{buildKeyframes(n,e,i,o,r,s,a,c,l,u=[]){l=l||new J6;const p=new t9(n,e,l,o,r,u,[]);p.options=c;const _=c.delay?Gs(c.delay):0;p.currentTimeline.delayNextStep(_),p.currentTimeline.setStyles([s],null,p.errors,c),or(this,i,p);const b=p.timelines.filter(y=>y.containsAnimation());if(b.length&&a.size){let y;for(let z=b.length-1;z>=0;z--){const E=b[z];if(E.element===e){y=E;break}}y&&!y.allowOnlyTimelineStyles()&&y.setStyles([a],null,p.errors,c)}return b.length?b.map(y=>y.buildKeyframes()):[Xv(e,[],[],[],0,_,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(n.options),r=e.currentTimeline.currentTime,s=this._visitSubInstructions(i,o,o.options);r!=s&&e.transformIntoNewTimeline(s)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const o of n){const r=o?.delay;if(r){const s="number"==typeof r?r:Gs(H2(r,o?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const s=null!=i.duration?Gs(i.duration):null,a=null!=i.delay?Gs(i.delay):null;return 0!==s&&n.forEach(c=>{const l=e.appendInstructionToTimeline(c,s,a);r=Math.max(r,l.duration+l.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),or(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let o=e;const r=n.options;if(r&&(r.params||r.delay)&&(o=e.createSubContext(r),o.transformIntoNewTimeline(),null!=r.delay)){o.previousNode.type==lt.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=Z6);const s=Gs(r.delay);o.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>or(this,s,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let o=e.currentTimeline.currentTime;const r=n.options&&n.options.delay?Gs(n.options.delay):0;n.steps.forEach(s=>{const a=e.createSubContext(n.options);r&&a.delayNextStep(r),or(this,s,a),o=Math.max(o,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return W6(e.params?H2(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const r=n.style;r.type==lt.Keyframes?this.visitKeyframes(r,e):(e.incrementTime(i.duration),this.visitStyle(r,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const r=o&&o.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(r):i.setStyles(n.styles,r,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,r=i.duration,a=e.createSubContext().currentTimeline;a.easing=i.easing,n.styles.forEach(c=>{a.forwardTime((c.offset||0)*r),a.setStyles(c.styles,c.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?Gs(o.delay):0;r&&(e.previousNode.type===lt.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Z6);let s=i;const a=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=a.length;let c=null;a.forEach((l,u)=>{e.currentQueryIndex=u;const p=e.createSubContext(n.options,l);r&&p.delayNextStep(r),l===e.element&&(c=p.currentTimeline),or(this,n.animation,p),p.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,p.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),c&&(e.currentTimeline.mergeTimelineCollectedStyles(c),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,s=Math.abs(r.duration),a=s*(e.currentQueryTotal-1);let c=s*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":c=a-c;break;case"full":c=i.currentStaggerTime}const u=e.currentTimeline;c&&u.delayNextStep(c);const p=u.currentTime;or(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-p+(o.startTime-i.currentTimeline.startTime)}}const Z6={};class t9{constructor(n,e,i,o,r,s,a,c){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=s,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Z6,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new Q6(this._driver,e,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let o=this.options;null!=i.duration&&(o.duration=Gs(i.duration)),null!=i.delay&&(o.delay=Gs(i.delay));const r=i.params;if(r){let s=o.params;s||(s=this.options.params={}),Object.keys(r).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=H2(r[a],s,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return n}createSubContext(n=null,e,i){const o=e||this.element,r=new t9(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(n),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(n){return this.previousNode=Z6,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const o={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},r=new Pfe(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,o,n.stretchStartingKeyframe);return this.timelines.push(r),o}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,o,r,s){let a=[];if(o&&a.push(this.element),n.length>0){n=(n=n.replace(Efe,"."+this._enterClassName)).replace(Afe,"."+this._leaveClassName);let l=this._driver.query(this.element,n,1!=i);0!==i&&(l=i<0?l.slice(l.length+i,l.length):l.slice(0,i)),a.push(...l)}return!r&&0==a.length&&s.push(function L8e(t){return new j(3014,!1)}()),a}}class Q6{constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new Q6(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||Hs),this._currentKeyframe.set(e,Hs);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},s=function Ife(t,n){const e=new Map;let i;return t.forEach(o=>{if("*"===o){i??=n.keys();for(let r of i)e.set(r,Hs)}else for(let[r,s]of o)e.set(r,s)}),e}(n,this._globalTimelineStyles);for(let[a,c]of s){const l=H2(c,r,i);this._pendingStyles.set(a,l),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??Hs),this._updateStyle(a,l)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((a,c)=>{const l=new Map([...this._backFill,...a]);l.forEach((u,p)=>{"!"===u?n.add(p):u===Hs&&e.add(p)}),i||l.set("offset",c/this.duration),o.push(l)});const r=[...n.values()],s=[...e.values()];if(i){const a=o[0],c=new Map(a);a.set("offset",0),c.set("offset",1),o=[a,c]}return Xv(this.element,o,r,s,this.duration,this.startTime,this.easing,!1)}}class Pfe extends Q6{constructor(n,e,i,o,r,s,a=!1){super(n,e,s.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],s=i+e,a=e/s,c=new Map(n[0]);c.set("offset",0),r.push(c);const l=new Map(n[0]);l.set("offset",BI(a)),r.push(l);const u=n.length-1;for(let p=1;p<=u;p++){let _=new Map(n[p]);const b=_.get("offset");_.set("offset",BI((e+b*i)/s)),r.push(_)}i=s,e=0,o="",n=r}return Xv(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function BI(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function jI(t,n,e,i,o,r,s,a,c,l,u,p,_){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:s,timelines:a,queriedElements:c,preStyleProps:l,postStyleProps:u,totalTime:p,errors:_}}const n9={};class $I{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function Nfe(t,n,e,i,o){return t.some(r=>r(n,e,i,o))}(this.ast.matchers,n,e,i,o)}buildStyles(n,e,i){let o=this._stateStyles.get("*");return void 0!==n&&(o=this._stateStyles.get(n?.toString())||o),o?o.buildStyles(e,i):new Map}build(n,e,i,o,r,s,a,c,l,u){const p=[],_=this.ast.options&&this.ast.options.params||n9,y=this.buildStyles(i,a&&a.params||n9,p),z=c&&c.params||n9,E=this.buildStyles(o,z,p),k=new Set,A=new Map,ie=new Map,pe="void"===o,xe={params:YI(z,_),delay:this.ast.options?.delay},Ge=u?[]:e9(n,e,this.ast.animation,r,s,y,E,xe,l,p);let dt=0;return Ge.forEach(Bt=>{dt=Math.max(Bt.duration+Bt.delay,dt)}),p.length?jI(e,this._triggerName,i,o,pe,y,E,[],[],A,ie,dt,p):(Ge.forEach(Bt=>{const zt=Bt.element,In=ir(A,zt,new Set);Bt.preStyleProps.forEach(Kn=>In.add(Kn));const so=ir(ie,zt,new Set);Bt.postStyleProps.forEach(Kn=>so.add(Kn)),zt!==e&&k.add(zt)}),jI(e,this._triggerName,i,o,pe,y,E,Ge,[...k.values()],A,ie,dt))}}function YI(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class Vfe{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=YI(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((s,a)=>{s&&(s=H2(s,o,e));const c=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,c,s,e),i.set(a,s)})}),i}}class Rfe{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new Vfe(o.style,o.options&&o.options.params||{},i))}),UI(this.states,"true","1"),UI(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new $I(n,o,this.states))}),this.fallbackTransition=function Lfe(t,n,e){return new $I(t,{type:lt.Transition,animation:{type:lt.Sequence,steps:[],options:null},matchers:[(s,a)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,o){return this.transitionFactories.find(s=>s.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function UI(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const Hfe=new J6;class Bfe{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],r=Zv(this._driver,e,i,[]);if(i.length)throw function W8e(t){return new j(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=xI(this._normalizer,n.keyframes,e,i);return this._driver.animate(o,r,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const o=[],r=this._animations.get(n);let s;const a=new Map;if(r?(s=e9(this._driver,e,r,Uv,$6,new Map,new Map,i,Hfe,o),s.forEach(u=>{const p=ir(a,u.element,new Map);u.postStyleProps.forEach(_=>p.set(_,null))})):(o.push(function G8e(){return new j(3300,!1)}()),s=[]),o.length)throw function q8e(t){return new j(3504,!1)}();a.forEach((u,p)=>{u.forEach((_,b)=>{u.set(b,this._driver.computeStyle(p,b,Hs))})});const l=xa(s.map(u=>{const p=a.get(u.element);return this._buildPlayer(u,new Map,p)}));return this._playersById.set(n,l),l.onDestroy(()=>this.destroy(n)),this.players.push(l),l}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function K8e(t){return new j(3301,!1)}();return e}listen(n,e,i,o){const r=Hv(e,"","","");return Rv(this._getPlayer(n),i,r,o),()=>{}}command(n,e,i,o){if("register"==i)return void this.register(n,o[0]);if("create"==i)return void this.create(n,e,o[0]||{});const r=this._getPlayer(n);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(n)}}}const WI="ng-animate-queued",i9="ng-animate-disabled",Wfe=[],GI={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Gfe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Jr="__ng_removed";class o9{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function Zfe(t){return t??null}(i?n.value:n),i){const{value:r,...s}=n;this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const B2="void",r9=new o9(B2);class qfe{constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,wr(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function J8e(t,n){return new j(3302,!1)}();if(null==i||0==i.length)throw function Z8e(t){return new j(3303,!1)}();if(!function Qfe(t){return"start"==t||"done"==t}(i))throw function Q8e(t,n){return new j(3400,!1)}();const r=ir(this._elementListeners,n,[]),s={name:e,phase:i,callback:o};r.push(s);const a=ir(this._engine.statesByElement,n,new Map);return a.has(e)||(wr(n,Y6),wr(n,Y6+"-"+e),a.set(e,r9)),()=>{this._engine.afterFlush(()=>{const c=r.indexOf(s);c>=0&&r.splice(c,1),this._triggers.has(e)||a.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function X8e(t){return new j(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),s=new s9(this.id,e,n);let a=this._engine.statesByElement.get(n);a||(wr(n,Y6),wr(n,Y6+"-"+e),this._engine.statesByElement.set(n,a=new Map));let c=a.get(e);const l=new o9(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&l.absorbOptions(c.options),a.set(e,l),c||(c=r9),l.value!==B2&&c.value===l.value){if(!function tme(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{$c(n,E),_s(n,k)})}return}const _=ir(this._engine.playersByElement,n,[]);_.forEach(z=>{z.namespaceId==this.id&&z.triggerName==e&&z.queued&&z.destroy()});let b=r.matchTransition(c.value,l.value,n,l.params),y=!1;if(!b){if(!o)return;b=r.fallbackTransition,y=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:b,fromState:c,toState:l,player:s,isFallbackTransition:y}),y||(wr(n,WI),s.onStart(()=>{W1(n,WI)})),s.onDone(()=>{let z=this.players.indexOf(s);z>=0&&this.players.splice(z,1);const E=this._engine.playersByElement.get(n);if(E){let k=E.indexOf(s);k>=0&&E.splice(k,1)}}),this.players.push(s),_.push(s),s}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,U6,!0);i.forEach(o=>{if(o[Jr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(s=>s.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(n,e,i,o){const r=this._engine.statesByElement.get(n),s=new Map;if(r){const a=[];if(r.forEach((c,l)=>{if(s.set(l,c.value),this._triggers.has(l)){const u=this.trigger(n,l,B2,o);u&&a.push(u)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,s),i&&xa(a).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const o=new Set;e.forEach(r=>{const s=r.name;if(o.has(s))return;o.add(s);const c=this._triggers.get(s).fallbackTransition,l=i.get(s)||r9,u=new o9(B2),p=new s9(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:c,fromState:l,toState:u,player:p,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let o=!1;if(i.totalAnimations){const r=i.players.length?i.playersByQueriedElement.get(n):[];if(r&&r.length)o=!0;else{let s=n;for(;s=s.parentNode;)if(i.statesByElement.get(s)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[Jr];(!r||r===GI)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){wr(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,s=this._elementListeners.get(r);s&&s.forEach(a=>{if(a.name==i.triggerName){const c=Hv(r,i.triggerName,i.fromState.value,i.toState.value);c._data=n,Rv(i.player,a.phase,c,a.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,s=o.transition.ast.depCount;return 0==r||0==s?r-s:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class Kfe{_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i){this.bodyNode=n,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,r)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new qfe(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let s=!1,a=this.driver.getParentElement(e);for(;a;){const c=o.get(a);if(c){const l=i.indexOf(c);i.splice(l+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||i.unshift(n)}else i.push(n);return o.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let o=this._namespaceLookup[n];o&&o.register(e,i)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(n);this.namespacesByHostElement.delete(i.hostElement);const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1),i.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let o of i.values())if(o.namespaceId){const r=this._fetchNamespace(o.namespaceId);r&&e.add(r)}return e}trigger(n,e,i,o){if(X6(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!X6(e))return;const r=e[Jr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),wr(n,i9)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),W1(n,i9))}removeNode(n,e,i){if(X6(e)){const o=n?this._fetchNamespace(n):null;o?o.removeNode(e,i):this.markElementAsRemoved(n,e,!1,i);const r=this.namespacesByHostElement.get(e);r&&r.id!==n&&r.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(n,e,i,o,r){this.collectedLeaveElements.push(e),e[Jr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return X6(e)?this._fetchNamespace(n).listen(e,i,o,r):()=>{}}_buildInstruction(n,e,i,o,r){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,o,n.fromState.options,n.toState.options,e,r)}destroyInnerAnimations(n){let e=this.driver.query(n,U6,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Wv,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return xa(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[Jr];if(e&&e.setForRemoval){if(n[Jr]=GI,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(i9)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?xa(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function efe(t){return new j(3402,!1)}()}_flushAnimations(n,e){const i=new J6,o=[],r=new Map,s=[],a=new Map,c=new Map,l=new Map,u=new Set;this.disabledNodes.forEach(Pe=>{u.add(Pe);const Je=this.driver.query(Pe,".ng-animate-queued",!0);for(let tt=0;tt{const tt=Uv+z++;y.set(Je,tt),Pe.forEach(Jt=>wr(Jt,tt))});const E=[],k=new Set,A=new Set;for(let Pe=0;Pek.add(Jt)):A.add(Je))}const ie=new Map,pe=JI(_,Array.from(k));pe.forEach((Pe,Je)=>{const tt=$6+z++;ie.set(Je,tt),Pe.forEach(Jt=>wr(Jt,tt))}),n.push(()=>{b.forEach((Pe,Je)=>{const tt=y.get(Je);Pe.forEach(Jt=>W1(Jt,tt))}),pe.forEach((Pe,Je)=>{const tt=ie.get(Je);Pe.forEach(Jt=>W1(Jt,tt))}),E.forEach(Pe=>{this.processLeaveNode(Pe)})});const xe=[],Ge=[];for(let Pe=this._namespaceList.length-1;Pe>=0;Pe--)this._namespaceList[Pe].drainQueuedTransitions(e).forEach(tt=>{const Jt=tt.player,gi=tt.element;if(xe.push(Jt),this.collectedEnterElements.length){const ao=gi[Jr];if(ao&&ao.setForMove){if(ao.previousTriggersValues&&ao.previousTriggersValues.has(tt.triggerName)){const Uc=ao.previousTriggersValues.get(tt.triggerName),zr=this.statesByElement.get(tt.element);if(zr&&zr.has(tt.triggerName)){const tp=zr.get(tt.triggerName);tp.value=Uc,zr.set(tt.triggerName,tp)}}return void Jt.destroy()}}const bs=!p||!this.driver.containsElement(p,gi),cr=ie.get(gi),Ea=y.get(gi),Un=this._buildInstruction(tt,i,Ea,cr,bs);if(Un.errors&&Un.errors.length)return void Ge.push(Un);if(bs)return Jt.onStart(()=>$c(gi,Un.fromStyles)),Jt.onDestroy(()=>_s(gi,Un.toStyles)),void o.push(Jt);if(tt.isFallbackTransition)return Jt.onStart(()=>$c(gi,Un.fromStyles)),Jt.onDestroy(()=>_s(gi,Un.toStyles)),void o.push(Jt);const aN=[];Un.timelines.forEach(ao=>{ao.stretchStartingKeyframe=!0,this.disabledNodes.has(ao.element)||aN.push(ao)}),Un.timelines=aN,i.append(gi,Un.timelines),s.push({instruction:Un,player:Jt,element:gi}),Un.queriedElements.forEach(ao=>ir(a,ao,[]).push(Jt)),Un.preStyleProps.forEach((ao,Uc)=>{if(ao.size){let zr=c.get(Uc);zr||c.set(Uc,zr=new Set),ao.forEach((tp,l9)=>zr.add(l9))}}),Un.postStyleProps.forEach((ao,Uc)=>{let zr=l.get(Uc);zr||l.set(Uc,zr=new Set),ao.forEach((tp,l9)=>zr.add(l9))})});if(Ge.length){const Pe=[];Ge.forEach(Je=>{Pe.push(function tfe(t,n){return new j(3505,!1)}())}),xe.forEach(Je=>Je.destroy()),this.reportError(Pe)}const dt=new Map,Bt=new Map;s.forEach(Pe=>{const Je=Pe.element;i.has(Je)&&(Bt.set(Je,Je),this._beforeAnimationBuild(Pe.player.namespaceId,Pe.instruction,dt))}),o.forEach(Pe=>{const Je=Pe.element;this._getPreviousPlayers(Je,!1,Pe.namespaceId,Pe.triggerName,null).forEach(Jt=>{ir(dt,Je,[]).push(Jt),Jt.destroy()})});const zt=E.filter(Pe=>QI(Pe,c,l)),In=new Map;KI(In,this.driver,A,l,Hs).forEach(Pe=>{QI(Pe,c,l)&&zt.push(Pe)});const Kn=new Map;b.forEach((Pe,Je)=>{KI(Kn,this.driver,new Set(Pe),c,"!")}),zt.forEach(Pe=>{const Je=In.get(Pe),tt=Kn.get(Pe);In.set(Pe,new Map([...Je?.entries()??[],...tt?.entries()??[]]))});const rr=[],sr=[],ar={};s.forEach(Pe=>{const{element:Je,player:tt,instruction:Jt}=Pe;if(i.has(Je)){if(u.has(Je))return tt.onDestroy(()=>_s(Je,Jt.toStyles)),tt.disabled=!0,tt.overrideTotalTime(Jt.totalTime),void o.push(tt);let gi=ar;if(Bt.size>1){let cr=Je;const Ea=[];for(;cr=cr.parentNode;){const Un=Bt.get(cr);if(Un){gi=Un;break}Ea.push(cr)}Ea.forEach(Un=>Bt.set(Un,gi))}const bs=this._buildAnimation(tt.namespaceId,Jt,dt,r,Kn,In);if(tt.setRealPlayer(bs),gi===ar)rr.push(tt);else{const cr=this.playersByElement.get(gi);cr&&cr.length&&(tt.parentPlayer=xa(cr)),o.push(tt)}}else $c(Je,Jt.fromStyles),tt.onDestroy(()=>_s(Je,Jt.toStyles)),sr.push(tt),u.has(Je)&&o.push(tt)}),sr.forEach(Pe=>{const Je=r.get(Pe.element);if(Je&&Je.length){const tt=xa(Je);Pe.setRealPlayer(tt)}}),o.forEach(Pe=>{Pe.parentPlayer?Pe.syncPlayerEvents(Pe.parentPlayer):Pe.destroy()});for(let Pe=0;Pe!bs.destroyed);gi.length?Xfe(this,Je,gi):this.processLeaveNode(Je)}return E.length=0,rr.forEach(Pe=>{this.players.push(Pe),Pe.onDone(()=>{Pe.destroy();const Je=this.players.indexOf(Pe);this.players.splice(Je,1)}),Pe.play()}),rr}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let s=[];if(e){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const c=!r||r==B2;a.forEach(l=>{l.queued||!c&&l.triggerName!=o||s.push(l)})}}return(i||o)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||o&&o!=a.triggerName))),s}_beforeAnimationBuild(n,e,i){const r=e.element,s=e.isRemovalTransition?void 0:n,a=e.isRemovalTransition?void 0:e.triggerName;for(const c of e.timelines){const l=c.element,u=l!==r,p=ir(i,l,[]);this._getPreviousPlayers(l,u,s,a,e.toState).forEach(b=>{const y=b.getRealPlayer();y.beforeDestroy&&y.beforeDestroy(),b.destroy(),p.push(b)})}$c(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,s){const a=e.triggerName,c=e.element,l=[],u=new Set,p=new Set,_=e.timelines.map(y=>{const z=y.element;u.add(z);const E=z[Jr];if(E&&E.removedBeforeQueried)return new e2(y.duration,y.delay);const k=z!==c,A=function eme(t){const n=[];return ZI(t,n),n}((i.get(z)||Wfe).map(dt=>dt.getRealPlayer())).filter(dt=>!!dt.element&&dt.element===z),ie=r.get(z),pe=s.get(z),xe=xI(this._normalizer,y.keyframes,ie,pe),Ge=this._buildPlayer(y,xe,A);if(y.subTimeline&&o&&p.add(z),k){const dt=new s9(n,a,z);dt.setRealPlayer(Ge),l.push(dt)}return Ge});l.forEach(y=>{ir(this.playersByQueriedElement,y.element,[]).push(y),y.onDone(()=>function Jfe(t,n,e){let i=t.get(n);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,y.element,y))}),u.forEach(y=>wr(y,II));const b=xa(_);return b.onDestroy(()=>{u.forEach(y=>W1(y,II)),_s(c,e.toStyles)}),p.forEach(y=>{ir(o,y,[]).push(b)}),b}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new e2(n.duration,n.delay)}}class s9{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new e2,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>Rv(n,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){ir(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function X6(t){return t&&1===t.nodeType}function qI(t,n){const e=t.style.display;return t.style.display=n??"none",e}function KI(t,n,e,i,o){const r=[];e.forEach(c=>r.push(qI(c)));const s=[];i.forEach((c,l)=>{const u=new Map;c.forEach(p=>{const _=n.computeStyle(l,p,o);u.set(p,_),(!_||0==_.length)&&(l[Jr]=Gfe,s.push(l))}),t.set(l,u)});let a=0;return e.forEach(c=>qI(c,r[a++])),s}function JI(t,n){const e=new Map;if(t.forEach(a=>e.set(a,[])),0==n.length)return e;const o=new Set(n),r=new Map;function s(a){if(!a)return 1;let c=r.get(a);if(c)return c;const l=a.parentNode;return c=e.has(l)?l:o.has(l)?1:s(l),r.set(a,c),c}return n.forEach(a=>{const c=s(a);1!==c&&e.get(c).push(a)}),e}function wr(t,n){t.classList?.add(n)}function W1(t,n){t.classList?.remove(n)}function Xfe(t,n,e){xa(e).onDone(()=>t.processLeaveNode(n))}function ZI(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class j2{constructor(n,e,i){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,r)=>{},this._transitionEngine=new Kfe(n.body,e,i),this._timelineEngine=new Bfe(n.body,e,i),this._transitionEngine.onRemovalComplete=(o,r)=>this.onRemovalComplete(o,r)}registerTrigger(n,e,i,o,r){const s=n+"-"+o;let a=this._triggerCache[s];if(!a){const c=[],u=Zv(this._driver,r,c,[]);if(c.length)throw function Y8e(t,n){return new j(3404,!1)}();a=function Ffe(t,n,e){return new Rfe(t,n,e)}(o,u,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,o,a)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,o){this._transitionEngine.insertNode(n,e,i,o)}onRemove(n,e,i){this._transitionEngine.removeNode(n,e,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,o){if("@"==i.charAt(0)){const[r,s]=EI(i);this._timelineEngine.command(r,e,s,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[s,a]=EI(i);return this._timelineEngine.listen(s,e,a,r)}return this._transitionEngine.listen(n,e,i,o,r)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class $2{static#e=this.initialStylesByElement=new WeakMap;constructor(n,e,i){this._element=n,this._startStyles=e,this._endStyles=i,this._state=0;let o=$2.initialStylesByElement.get(n);o||$2.initialStylesByElement.set(n,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&_s(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_s(this._element,this._initialStyles),this._endStyles&&(_s(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&($2.initialStylesByElement.delete(this._element),this._startStyles&&($c(this._element,this._startStyles),this._endStyles=null),this._endStyles&&($c(this._element,this._endStyles),this._endStyles=null),_s(this._element,this._initialStyles),this._state=3)}}function a9(t){let n=null;return t.forEach((e,i)=>{(function ime(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class XI{constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;const e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const e=[];return n.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(n,e,i){return n.animate(this._convertKeyframesToObject(e),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&n.set(o,this._finished?i:Jv(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class eN{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,e){return AI(n,e)}getParentElement(n){return Bv(n)}query(n,e,i){return OI(n,e,i)}computeStyle(n,e,i){return Jv(n,e)}animate(n,e,i,o,r,s=[]){const c={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(c.easing=r);const l=new Map,u=s.filter(b=>b instanceof XI);(function ffe(t,n){return 0===t||0===n})(i,o)&&u.forEach(b=>{b.currentSnapshot.forEach((y,z)=>l.set(z,y))});let p=function ufe(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(b=>new Map(b));p=function mfe(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,s)=>{i.has(s)||o.push(s),i.set(s,r)}),o.length)for(let r=1;rs.set(a,Jv(t,a)))}}return n}(n,p,l);const _=function nme(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=a9(n[0]),n.length>1&&(i=a9(n[n.length-1]))):n instanceof Map&&(e=a9(n)),e||i?new $2(t,e,i):null}(n,p);return new XI(n,p,c,_)}}const tN="@.disabled";class nN{constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,o=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,o)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,o){this.delegate.setAttribute(n,e,i,o)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,o){this.delegate.setStyle(n,e,i,o)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==tN?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class ome extends nN{constructor(n,e,i,o,r){super(e,i,o,r),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==tN?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const o=function rme(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let r=e.slice(1),s="";return"@"!=r.charAt(0)&&([r,s]=function sme(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{this.factory.scheduleListenerCallback(a._data||-1,i,a)})}return this.delegate.listen(n,e,i)}}class ame{constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(o,r)=>{const s=r?.parentNode(o);s&&r.removeChild(s,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const l=this._rendererCache;let u=l.get(o);return u||(u=new nN("",o,this.engine,()=>l.delete(o)),l.set(o,u)),u}const r=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=l=>{Array.isArray(l)?l.forEach(a):this.engine.registerTrigger(r,s,n,l.name,l)};return e.data.animation.forEach(a),new ome(this,s,o,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,i){if(n>=0&&ne(i));const o=this._animationCallbacksBuffer;0==o.length&&queueMicrotask(()=>{this._zone.run(()=>{o.forEach(r=>{const[s,a]=r;s(a)}),this._animationCallbacksBuffer=[]})}),o.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}let cme=(()=>{class t extends j2{constructor(e,i,o){super(e,i,o)}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R($v),R(Yv))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const iN=[{provide:Yv,useFactory:function lme(){return new FI}},{provide:j2,useClass:cme},{provide:Qa,useFactory:function dme(t,n,e){return new ame(t,n,e)},deps:[ig,j2,De]}],c9=[{provide:$v,useFactory:()=>new eN},{provide:ta,useValue:"BrowserAnimations"},...iN],oN=[{provide:$v,useClass:jv},{provide:ta,useValue:"NoopAnimations"},...iN];let ume=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?oN:c9}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:c9,imports:[sg]})}return t})();const hme=["nzType","avatar"],pme=["*"];function fme(t,n){if(1&t&&(f(0,"div",5),S(1,"nz-skeleton-element",6),m()),2&t){const e=g(2);d(),h("nzSize",e.avatar.size||"default")("nzShape",e.avatar.shape||"circle")}}function mme(t,n){if(1&t&&S(0,"h3",7),2&t){const e=g(2);Lt("width",e.toCSSUnit(e.title.width))}}function gme(t,n){if(1&t&&S(0,"li"),2&t){const e=n.index,i=g(3);Lt("width",i.toCSSUnit(i.widthList[e]))}}function vme(t,n){if(1&t&&(f(0,"ul",8),w(1,gme,1,2,"li",9),m()),2&t){const e=g(2);d(),h("ngForOf",e.rowsList)}}function _me(t,n){if(1&t&&($e(0),w(1,fme,2,2,"div",1),f(2,"div",2),w(3,mme,1,2,"h3",3)(4,vme,2,1,"ul",4),m(),Ye()),2&t){const e=g();d(),h("ngIf",!!e.nzAvatar),d(2),h("ngIf",!!e.nzTitle),d(),h("ngIf",!!e.nzParagraph)}}function bme(t,n){1&t&&($e(0),bt(1),Ye())}let yme=(()=>{class t{constructor(){this.nzActive=!1,this.nzBlock=!1}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["nz-skeleton-element"]],hostAttrs:[1,"ant-skeleton","ant-skeleton-element"],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-skeleton-active",o.nzActive)("ant-skeleton-block",o.nzBlock)},inputs:{nzActive:[2,"nzActive","nzActive",O],nzType:"nzType",nzBlock:[2,"nzBlock","nzBlock",O]},standalone:!0,features:[je]})}return t})(),Cme=(()=>{class t{constructor(){this.nzShape="circle",this.nzSize="default",this.styleMap={}}ngOnChanges(e){if(e.nzSize&&"number"==typeof this.nzSize){const i=`${this.nzSize}px`;this.styleMap={width:i,height:i,"line-height":i}}else this.styleMap={}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-skeleton-element","nzType","avatar"]],inputs:{nzShape:"nzShape",nzSize:"nzSize"},standalone:!0,features:[ke,me],attrs:hme,decls:1,vars:9,consts:[[1,"ant-skeleton-avatar",3,"ngStyle"]],template:function(i,o){1&i&&S(0,"span",0),2&i&&(Q("ant-skeleton-avatar-square","square"===o.nzShape)("ant-skeleton-avatar-circle","circle"===o.nzShape)("ant-skeleton-avatar-lg","large"===o.nzSize)("ant-skeleton-avatar-sm","small"===o.nzSize),h("ngStyle",o.styleMap))},dependencies:[ti],encapsulation:2,changeDetection:0})}return t})(),wme=(()=>{class t{constructor(e){this.cdr=e,this.nzActive=!1,this.nzLoading=!0,this.nzRound=!1,this.nzTitle=!0,this.nzAvatar=!1,this.nzParagraph=!0,this.rowsList=[],this.widthList=[]}toCSSUnit(e=""){return D1(e)}getTitleProps(){const e=!!this.nzAvatar,i=!!this.nzParagraph;let o="";return!e&&i?o="38%":e&&i&&(o="50%"),{width:o,...this.getProps(this.nzTitle)}}getAvatarProps(){return{shape:this.nzTitle&&!this.nzParagraph?"square":"circle",size:"large",...this.getProps(this.nzAvatar)}}getParagraphProps(){const e=!!this.nzAvatar,i=!!this.nzTitle,o={};return(!e||!i)&&(o.width="61%"),o.rows=!e&&i?3:2,{...o,...this.getProps(this.nzParagraph)}}getProps(e){return e&&"object"==typeof e?e:{}}getWidthList(){const{width:e,rows:i}=this.paragraph;let o=[];return e&&Array.isArray(e)?o=e:e&&!Array.isArray(e)&&(o=[],o[i-1]=e),o}updateProps(){this.title=this.getTitleProps(),this.avatar=this.getAvatarProps(),this.paragraph=this.getParagraphProps(),this.rowsList=[...Array(this.paragraph.rows)],this.widthList=this.getWidthList(),this.cdr.markForCheck()}ngOnInit(){this.updateProps()}ngOnChanges(e){(e.nzTitle||e.nzAvatar||e.nzParagraph)&&this.updateProps()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-skeleton"]],hostAttrs:[1,"ant-skeleton"],hostVars:6,hostBindings:function(i,o){2&i&&Q("ant-skeleton-with-avatar",!!o.nzAvatar)("ant-skeleton-active",o.nzActive)("ant-skeleton-round",!!o.nzRound)},inputs:{nzActive:"nzActive",nzLoading:"nzLoading",nzRound:"nzRound",nzTitle:"nzTitle",nzAvatar:"nzAvatar",nzParagraph:"nzParagraph"},exportAs:["nzSkeleton"],standalone:!0,features:[ke,me],ngContentSelectors:pme,decls:2,vars:2,consts:[[4,"ngIf"],["class","ant-skeleton-header",4,"ngIf"],[1,"ant-skeleton-content"],["class","ant-skeleton-title",3,"width",4,"ngIf"],["class","ant-skeleton-paragraph",4,"ngIf"],[1,"ant-skeleton-header"],["nzType","avatar",3,"nzSize","nzShape"],[1,"ant-skeleton-title"],[1,"ant-skeleton-paragraph"],[3,"width",4,"ngFor","ngForOf"]],template:function(i,o){1&i&&(Et(),w(0,_me,5,3,"ng-container",0)(1,bme,2,0,"ng-container",0)),2&i&&(h("ngIf",o.nzLoading),d(),h("ngIf",!o.nzLoading))},dependencies:[yme,Cme,Tt,zn],encapsulation:2,changeDetection:0})}return t})(),zme=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function Sme(t,n){}function Tme(t,n){if(1&t&&(f(0,"div",0),w(1,Sme,0,0,"ng-template",2),m()),2&t){const e=g();d(),h("ngTemplateOutlet",e.nzAvatar)}}function Mme(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzTitle)}}function Dme(t,n){if(1&t&&(f(0,"div",3),w(1,Mme,2,1,"ng-container",5),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzTitle)}}function xme(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzDescription)}}function Eme(t,n){if(1&t&&(f(0,"div",4),w(1,xme,2,1,"ng-container",5),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzDescription)}}function kme(t,n){if(1&t&&(f(0,"div",1),w(1,Dme,2,1,"div",3)(2,Eme,2,1,"div",4),m()),2&t){const e=g();d(),he(e.nzTitle?1:-1),d(),he(e.nzDescription?2:-1)}}const rN=["*"];function Ame(t,n){1&t&&bt(0)}const Ome=()=>({rows:4});function Pme(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzTitle)}}function Ime(t,n){if(1&t&&(f(0,"div",6),w(1,Pme,2,1,"ng-container",9),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzTitle)}}function Nme(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzExtra)}}function Vme(t,n){if(1&t&&(f(0,"div",7),w(1,Nme,2,1,"ng-container",9),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzExtra)}}function Fme(t,n){}function Rme(t,n){1&t&&w(0,Fme,0,0,"ng-template",8),2&t&&h("ngTemplateOutlet",g(2).listOfNzCardTabComponent.template)}function Lme(t,n){if(1&t&&(f(0,"div",0)(1,"div",5),w(2,Ime,2,1,"div",6)(3,Vme,2,1,"div",7),m(),w(4,Rme,1,1,null,8),m()),2&t){const e=g();d(2),he(e.nzTitle?2:-1),d(),he(e.nzExtra?3:-1),d(),he(e.listOfNzCardTabComponent?4:-1)}}function Hme(t,n){}function Bme(t,n){if(1&t&&(f(0,"div",1),w(1,Hme,0,0,"ng-template",8),m()),2&t){const e=g();d(),h("ngTemplateOutlet",e.nzCover)}}function jme(t,n){1&t&&S(0,"nz-skeleton",3),2&t&&h("nzActive",!0)("nzTitle",!1)("nzParagraph",Ti(3,Ome))}function $me(t,n){1&t&&bt(0)}function Yme(t,n){}function Ume(t,n){if(1&t&&(f(0,"li")(1,"span"),w(2,Yme,0,0,"ng-template",8),m()()),2&t){const e=n.$implicit;Lt("width",100/g(2).nzActions.length,"%"),d(2),h("ngTemplateOutlet",e)}}function Wme(t,n){if(1&t&&(f(0,"ul",4),ji(1,Ume,3,3,"li",10,Zw),m()),2&t){const e=g();d(),$i(e.nzActions)}}let Gme=(()=>{class t{constructor(){this.nzHoverable=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-card-grid",""]],hostAttrs:[1,"ant-card-grid"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-card-hoverable",o.nzHoverable)},inputs:{nzHoverable:[2,"nzHoverable","nzHoverable",O]},exportAs:["nzCardGrid"],standalone:!0,features:[je]})}return t})(),qme=(()=>{class t{constructor(){this.nzTitle=null,this.nzDescription=null,this.nzAvatar=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-card-meta"]],hostAttrs:[1,"ant-card-meta"],inputs:{nzTitle:"nzTitle",nzDescription:"nzDescription",nzAvatar:"nzAvatar"},exportAs:["nzCardMeta"],standalone:!0,features:[me],decls:2,vars:2,consts:[[1,"ant-card-meta-avatar"],[1,"ant-card-meta-detail"],[3,"ngTemplateOutlet"],[1,"ant-card-meta-title"],[1,"ant-card-meta-description"],[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&w(0,Tme,2,1,"div",0)(1,kme,3,2,"div",1),2&i&&(he(o.nzAvatar?0:-1),d(),he(o.nzTitle||o.nzDescription?1:-1))},dependencies:[Vn,Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),Kme=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-card-tab"]],viewQuery:function(i,o){if(1&i&&ft(Gt,7),2&i){let r;Ae(r=Oe())&&(o.template=r.first)}},exportAs:["nzCardTab"],standalone:!0,features:[me],ngContentSelectors:rN,decls:1,vars:0,template:function(i,o){1&i&&(Et(),w(0,Ame,1,0,"ng-template"))},encapsulation:2,changeDetection:0})}return t})(),Jme=(()=>{class t{constructor(e,i,o){this.nzConfigService=e,this.cdr=i,this.directionality=o,this._nzModuleName="card",this.nzBordered=!0,this.nzBorderless=!1,this.nzLoading=!1,this.nzHoverable=!1,this.nzBodyStyle=null,this.nzActions=[],this.nzType=null,this.nzSize="default",this.dir="ltr",this.destroy$=new N,this.nzConfigService.getConfigChangeEventForComponent("card").pipe(I(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Ue),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-card"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,Kme,5),fn(r,Gme,4)),2&i){let s;Ae(s=Oe())&&(o.listOfNzCardTabComponent=s.first),Ae(s=Oe())&&(o.listOfNzCardGridDirective=s)}},hostAttrs:[1,"ant-card"],hostVars:16,hostBindings:function(i,o){2&i&&Q("ant-card-loading",o.nzLoading)("ant-card-bordered",!1===o.nzBorderless&&o.nzBordered)("ant-card-hoverable",o.nzHoverable)("ant-card-small","small"===o.nzSize)("ant-card-contain-grid",o.listOfNzCardGridDirective&&o.listOfNzCardGridDirective.length)("ant-card-type-inner","inner"===o.nzType)("ant-card-contain-tabs",!!o.listOfNzCardTabComponent)("ant-card-rtl","rtl"===o.dir)},inputs:{nzBordered:[2,"nzBordered","nzBordered",O],nzBorderless:[2,"nzBorderless","nzBorderless",O],nzLoading:[2,"nzLoading","nzLoading",O],nzHoverable:[2,"nzHoverable","nzHoverable",O],nzBodyStyle:"nzBodyStyle",nzCover:"nzCover",nzActions:"nzActions",nzType:"nzType",nzSize:"nzSize",nzTitle:"nzTitle",nzExtra:"nzExtra"},exportAs:["nzCard"],standalone:!0,features:[je,me],ngContentSelectors:rN,decls:6,vars:5,consts:[[1,"ant-card-head"],[1,"ant-card-cover"],[1,"ant-card-body",3,"ngStyle"],[3,"nzActive","nzTitle","nzParagraph"],[1,"ant-card-actions"],[1,"ant-card-head-wrapper"],[1,"ant-card-head-title"],[1,"ant-card-extra"],[3,"ngTemplateOutlet"],[4,"nzStringTemplateOutlet"],[3,"width"]],template:function(i,o){1&i&&(Et(),w(0,Lme,5,3,"div",0)(1,Bme,2,1,"div",1),f(2,"div",2),w(3,jme,1,4,"nz-skeleton",3)(4,$me,1,0),m(),w(5,Wme,3,0,"ul",4)),2&i&&(he(o.nzTitle||o.nzExtra||o.listOfNzCardTabComponent?0:-1),d(),he(o.nzCover?1:-1),d(),h("ngStyle",o.nzBodyStyle),d(),he(o.nzLoading?3:4),d(2),he(o.nzActions.length?5:-1))},dependencies:[Tn,Sn,Vn,ti,zme,wme],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzBordered",void 0),kt([Nt()],t.prototype,"nzBorderless",void 0),kt([Nt()],t.prototype,"nzHoverable",void 0),kt([Nt()],t.prototype,"nzSize",void 0),t})(),Zme=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Jme,qme,_3]})}return t})();const Qme=[xk,Ek,{name:"share-alt",theme:"outline",icon:''},kk,Ak,Pk,{name:"minus",theme:"outline",icon:''},{name:"plus",theme:"outline",icon:''},{name:"stop",theme:"outline",icon:''}];let Xme=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t,bootstrap:[w8e]});static#n=this.\u0275inj=Ze({providers:[{provide:E7,useValue:x7}],imports:[ume,jae,N1e,whe,DP,nse,lhe,m3e,Y7,h2,h1e,tue,d6,B7,Zme,On.forRoot(Qme),SE,P2e,R7,L0e,x6e,A6e,cue,I6,w3e,F3e,m4e,Q0e,uae,sg,Ic,sg,Bpe]})}return t})();eJ().bootstrapModule(Xme).catch(t=>console.error(t))},20:(Ve,jt,fe)=>{"use strict";var X=fe(258),le=fe(128),$=le(X("String.prototype.indexOf"));Ve.exports=function(Me,ce){var Z=X(Me,!!ce);return"function"==typeof Z&&$(Me,".prototype.")>-1?le(Z):Z}},128:(Ve,jt,fe)=>{"use strict";var X=fe(992),le=fe(258),$=fe(358),V=fe(758),Me=le("%Function.prototype.apply%"),ce=le("%Function.prototype.call%"),Z=le("%Reflect.apply%",!0)||X.call(ce,Me),Ne=fe(570),Ee=le("%Math.max%");Ve.exports=function(Re){if("function"!=typeof Re)throw new V("a function is required");var re=Z(X,ce,arguments);return $(re,1+Ee(0,Re.length-(arguments.length-1)),!0)};var ye=function(){return Z(X,Me,arguments)};Ne?Ne(Ve.exports,"apply",{value:ye}):Ve.exports.apply=ye},821:function(Ve){Ve.exports=function(){var jt={686:function(le,$,V){"use strict";V.d($,{default:function(){return Nn}});var Me=V(279),ce=V.n(Me),Z=V(370),Ne=V.n(Z),Ee=V(817),ye=V.n(Ee);function te(ve){try{return document.execCommand(ve)}catch{return!1}}var re=function(ze){var we=ye()(ze);return te("cut"),we};var K=function(ze,we){var Le=function ne(ve){var ze="rtl"===document.documentElement.getAttribute("dir"),we=document.createElement("textarea");we.style.fontSize="12pt",we.style.border="0",we.style.padding="0",we.style.margin="0",we.style.position="absolute",we.style[ze?"right":"left"]="-9999px";var Le=window.pageYOffset||document.documentElement.scrollTop;return we.style.top="".concat(Le,"px"),we.setAttribute("readonly",""),we.value=ve,we}(ze);we.container.appendChild(Le);var qe=ye()(Le);return te("copy"),Le.remove(),qe},P=function(ze){var we=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body},Le="";return"string"==typeof ze?Le=K(ze,we):ze instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(ze?.type)?Le=K(ze.value,we):(Le=ye()(ze),te("copy")),Le};function L(ve){return(L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(we){return typeof we}:function(we){return we&&"function"==typeof Symbol&&we.constructor===Symbol&&we!==Symbol.prototype?"symbol":typeof we})(ve)}var se=function(){var ze=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},we=ze.action,Le=void 0===we?"copy":we,qe=ze.container,gt=ze.target,Vt=ze.text;if("copy"!==Le&&"cut"!==Le)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==gt){if(!gt||"object"!==L(gt)||1!==gt.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===Le&>.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===Le&&(gt.hasAttribute("readonly")||gt.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return Vt?P(Vt,{container:qe}):gt?"cut"===Le?re(gt):P(gt,{container:qe}):void 0};function ue(ve){return(ue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(we){return typeof we}:function(we){return we&&"function"==typeof Symbol&&we.constructor===Symbol&&we!==Symbol.prototype?"symbol":typeof we})(ve)}function Se(ve,ze){for(var we=0;we"u"||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var qe,Le=Jn(ve);if(ze){var gt=Jn(this).constructor;qe=Reflect.construct(Le,arguments,gt)}else qe=Le.apply(this,arguments);return function _n(ve,ze){return!ze||"object"!==ue(ze)&&"function"!=typeof ze?function pt(ve){if(void 0===ve)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return ve}(ve):ze}(this,qe)}}function Jn(ve){return(Jn=Object.setPrototypeOf?Object.getPrototypeOf:function(we){return we.__proto__||Object.getPrototypeOf(we)})(ve)}function ln(ve,ze){var we="data-clipboard-".concat(ve);if(ze.hasAttribute(we))return ze.getAttribute(we)}var Lo=function(ve){nt(we,ve);var ze=ht(we);function we(Le,qe){var gt;return function ge(ve,ze){if(!(ve instanceof ze))throw new TypeError("Cannot call a class as a function")}(this,we),(gt=ze.call(this)).resolveOptions(qe),gt.listenClick(Le),gt}return function ut(ve,ze,we){return ze&&Se(ve.prototype,ze),we&&Se(ve,we),ve}(we,[{key:"resolveOptions",value:function(){var qe=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof qe.action?qe.action:this.defaultAction,this.target="function"==typeof qe.target?qe.target:this.defaultTarget,this.text="function"==typeof qe.text?qe.text:this.defaultText,this.container="object"===ue(qe.container)?qe.container:document.body}},{key:"listenClick",value:function(qe){var gt=this;this.listener=Ne()(qe,"click",function(Vt){return gt.onClick(Vt)})}},{key:"onClick",value:function(qe){var gt=qe.delegateTarget||qe.currentTarget,Vt=this.action(gt)||"copy",vi=se({action:Vt,container:this.container,target:this.target(gt),text:this.text(gt)});this.emit(vi?"success":"error",{action:Vt,text:vi,trigger:gt,clearSelection:function(){gt&>.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(qe){return ln("action",qe)}},{key:"defaultTarget",value:function(qe){var gt=ln("target",qe);if(gt)return document.querySelector(gt)}},{key:"defaultText",value:function(qe){return ln("text",qe)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(qe){var gt=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return P(qe,gt)}},{key:"cut",value:function(qe){return re(qe)}},{key:"isSupported",value:function(){var qe=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],Vt=!!document.queryCommandSupported;return("string"==typeof qe?[qe]:qe).forEach(function(vi){Vt=Vt&&!!document.queryCommandSupported(vi)}),Vt}}]),we}(ce()),Nn=Lo},828:function(le){if(typeof Element<"u"&&!Element.prototype.matches){var V=Element.prototype;V.matches=V.matchesSelector||V.mozMatchesSelector||V.msMatchesSelector||V.oMatchesSelector||V.webkitMatchesSelector}le.exports=function Me(ce,Z){for(;ce&&9!==ce.nodeType;){if("function"==typeof ce.matches&&ce.matches(Z))return ce;ce=ce.parentNode}}},438:function(le,$,V){var Me=V(828);function ce(Ee,ye,te,Re,re){var ne=Ne.apply(this,arguments);return Ee.addEventListener(te,ne,re),{destroy:function(){Ee.removeEventListener(te,ne,re)}}}function Ne(Ee,ye,te,Re){return function(re){re.delegateTarget=Me(re.target,ye),re.delegateTarget&&Re.call(Ee,re)}}le.exports=function Z(Ee,ye,te,Re,re){return"function"==typeof Ee.addEventListener?ce.apply(null,arguments):"function"==typeof te?ce.bind(null,document).apply(null,arguments):("string"==typeof Ee&&(Ee=document.querySelectorAll(Ee)),Array.prototype.map.call(Ee,function(ne){return ce(ne,ye,te,Re,re)}))}},879:function(le,$){$.node=function(V){return void 0!==V&&V instanceof HTMLElement&&1===V.nodeType},$.nodeList=function(V){var Me=Object.prototype.toString.call(V);return void 0!==V&&("[object NodeList]"===Me||"[object HTMLCollection]"===Me)&&"length"in V&&(0===V.length||$.node(V[0]))},$.string=function(V){return"string"==typeof V||V instanceof String},$.fn=function(V){return"[object Function]"===Object.prototype.toString.call(V)}},370:function(le,$,V){var Me=V(879),ce=V(438);le.exports=function Z(te,Re,re){if(!te&&!Re&&!re)throw new Error("Missing required arguments");if(!Me.string(Re))throw new TypeError("Second argument must be a String");if(!Me.fn(re))throw new TypeError("Third argument must be a Function");if(Me.node(te))return function Ne(te,Re,re){return te.addEventListener(Re,re),{destroy:function(){te.removeEventListener(Re,re)}}}(te,Re,re);if(Me.nodeList(te))return function Ee(te,Re,re){return Array.prototype.forEach.call(te,function(ne){ne.addEventListener(Re,re)}),{destroy:function(){Array.prototype.forEach.call(te,function(ne){ne.removeEventListener(Re,re)})}}}(te,Re,re);if(Me.string(te))return function ye(te,Re,re){return ce(document.body,te,Re,re)}(te,Re,re);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(le){le.exports=function $(V){var Me;if("SELECT"===V.nodeName)V.focus(),Me=V.value;else if("INPUT"===V.nodeName||"TEXTAREA"===V.nodeName){var ce=V.hasAttribute("readonly");ce||V.setAttribute("readonly",""),V.select(),V.setSelectionRange(0,V.value.length),ce||V.removeAttribute("readonly"),Me=V.value}else{V.hasAttribute("contenteditable")&&V.focus();var Z=window.getSelection(),Ne=document.createRange();Ne.selectNodeContents(V),Z.removeAllRanges(),Z.addRange(Ne),Me=Z.toString()}return Me}},279:function(le){function $(){}$.prototype={on:function(V,Me,ce){var Z=this.e||(this.e={});return(Z[V]||(Z[V]=[])).push({fn:Me,ctx:ce}),this},once:function(V,Me,ce){var Z=this;function Ne(){Z.off(V,Ne),Me.apply(ce,arguments)}return Ne._=Me,this.on(V,Ne,ce)},emit:function(V){for(var Me=[].slice.call(arguments,1),ce=((this.e||(this.e={}))[V]||[]).slice(),Z=0,Ne=ce.length;Z{"use strict";var X=fe(570),le=fe(413),$=fe(758),V=fe(798);Ve.exports=function(ce,Z,Ne){if(!ce||"object"!=typeof ce&&"function"!=typeof ce)throw new $("`obj` must be an object or a function`");if("string"!=typeof Z&&"symbol"!=typeof Z)throw new $("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new $("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new $("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new $("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new $("`loose`, if provided, must be a boolean");var Ee=arguments.length>3?arguments[3]:null,ye=arguments.length>4?arguments[4]:null,te=arguments.length>5?arguments[5]:null,Re=arguments.length>6&&arguments[6],re=!!V&&V(ce,Z);if(X)X(ce,Z,{configurable:null===te&&re?re.configurable:!te,enumerable:null===Ee&&re?re.enumerable:!Ee,value:Ne,writable:null===ye&&re?re.writable:!ye});else{if(!Re&&(Ee||ye||te))throw new le("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");ce[Z]=Ne}}},570:(Ve,jt,fe)=>{"use strict";var le=fe(258)("%Object.defineProperty%",!0)||!1;if(le)try{le({},"a",{value:1})}catch{le=!1}Ve.exports=le},756:Ve=>{"use strict";Ve.exports=EvalError},640:Ve=>{"use strict";Ve.exports=Error},933:Ve=>{"use strict";Ve.exports=RangeError},613:Ve=>{"use strict";Ve.exports=ReferenceError},413:Ve=>{"use strict";Ve.exports=SyntaxError},758:Ve=>{"use strict";Ve.exports=TypeError},286:Ve=>{"use strict";Ve.exports=URIError},578:function(Ve,jt){var fe,le;void 0!==(le="function"==typeof(fe=function(){"use strict";function V(ye,te,Re){var re=new XMLHttpRequest;re.open("GET",ye),re.responseType="blob",re.onload=function(){Ee(re.response,te,Re)},re.onerror=function(){console.error("could not download file")},re.send()}function Me(ye){var te=new XMLHttpRequest;te.open("HEAD",ye,!1);try{te.send()}catch{}return 200<=te.status&&299>=te.status}function ce(ye){try{ye.dispatchEvent(new MouseEvent("click"))}catch{var te=document.createEvent("MouseEvents");te.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),ye.dispatchEvent(te)}}var Z="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,Ne=Z.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),Ee=Z.saveAs||("object"!=typeof window||window!==Z?function(){}:"download"in HTMLAnchorElement.prototype&&!Ne?function(ye,te,Re){var re=Z.URL||Z.webkitURL,ne=document.createElement("a");ne.download=te=te||ye.name||"download",ne.rel="noopener","string"==typeof ye?(ne.href=ye,ne.origin===location.origin?ce(ne):Me(ne.href)?V(ye,te,Re):ce(ne,ne.target="_blank")):(ne.href=re.createObjectURL(ye),setTimeout(function(){re.revokeObjectURL(ne.href)},4e4),setTimeout(function(){ce(ne)},0))}:"msSaveOrOpenBlob"in navigator?function(ye,te,Re){if(te=te||ye.name||"download","string"!=typeof ye)navigator.msSaveOrOpenBlob(function $(ye,te){return typeof te>"u"?te={autoBom:!1}:"object"!=typeof te&&(console.warn("Deprecated: Expected third argument to be a object"),te={autoBom:!te}),te.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(ye.type)?new Blob(["\ufeff",ye],{type:ye.type}):ye}(ye,Re),te);else if(Me(ye))V(ye,te,Re);else{var re=document.createElement("a");re.href=ye,re.target="_blank",setTimeout(function(){ce(re)})}}:function(ye,te,Re,re){if((re=re||open("","_blank"))&&(re.document.title=re.document.body.innerText="downloading..."),"string"==typeof ye)return V(ye,te,Re);var ne="application/octet-stream"===ye.type,K=/constructor/i.test(Z.HTMLElement)||Z.safari,ee=/CriOS\/[\d]+/.test(navigator.userAgent);if((ee||ne&&K||Ne)&&typeof FileReader<"u"){var P=new FileReader;P.onloadend=function(){var se=P.result;se=ee?se:se.replace(/^data:[^;]*;/,"data:attachment/file;"),re?re.location.href=se:location=se,re=null},P.readAsDataURL(ye)}else{var L=Z.URL||Z.webkitURL,B=L.createObjectURL(ye);re?re.location=B:location.href=B,re=null,setTimeout(function(){L.revokeObjectURL(B)},4e4)}});Z.saveAs=Ee.saveAs=Ee,Ve.exports=Ee})?fe.apply(jt,[]):fe)&&(Ve.exports=le)},132:Ve=>{"use strict";var fe=Object.prototype.toString,X=Math.max,$=function(Z,Ne){for(var Ee=[],ye=0;ye{"use strict";var X=fe(132);Ve.exports=Function.prototype.bind||X},258:(Ve,jt,fe)=>{"use strict";var X,le=fe(640),$=fe(756),V=fe(933),Me=fe(613),ce=fe(413),Z=fe(758),Ne=fe(286),Ee=Function,ye=function(Nn){try{return Ee('"use strict"; return ('+Nn+").constructor;")()}catch{}},te=Object.getOwnPropertyDescriptor;if(te)try{te({},"")}catch{te=null}var Re=function(){throw new Z},re=te?function(){try{return Re}catch{try{return te(arguments,"callee").get}catch{return Re}}}():Re,ne=fe(900)(),K=fe(119)(),ee=Object.getPrototypeOf||(K?function(Nn){return Nn.__proto__}:null),P={},L=typeof Uint8Array>"u"||!ee?X:ee(Uint8Array),B={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?X:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?X:ArrayBuffer,"%ArrayIteratorPrototype%":ne&&ee?ee([][Symbol.iterator]()):X,"%AsyncFromSyncIteratorPrototype%":X,"%AsyncFunction%":P,"%AsyncGenerator%":P,"%AsyncGeneratorFunction%":P,"%AsyncIteratorPrototype%":P,"%Atomics%":typeof Atomics>"u"?X:Atomics,"%BigInt%":typeof BigInt>"u"?X:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?X:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?X:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?X:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":le,"%eval%":eval,"%EvalError%":$,"%Float32Array%":typeof Float32Array>"u"?X:Float32Array,"%Float64Array%":typeof Float64Array>"u"?X:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?X:FinalizationRegistry,"%Function%":Ee,"%GeneratorFunction%":P,"%Int8Array%":typeof Int8Array>"u"?X:Int8Array,"%Int16Array%":typeof Int16Array>"u"?X:Int16Array,"%Int32Array%":typeof Int32Array>"u"?X:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":ne&&ee?ee(ee([][Symbol.iterator]())):X,"%JSON%":"object"==typeof JSON?JSON:X,"%Map%":typeof Map>"u"?X:Map,"%MapIteratorPrototype%":typeof Map>"u"||!ne||!ee?X:ee((new Map)[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?X:Promise,"%Proxy%":typeof Proxy>"u"?X:Proxy,"%RangeError%":V,"%ReferenceError%":Me,"%Reflect%":typeof Reflect>"u"?X:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?X:Set,"%SetIteratorPrototype%":typeof Set>"u"||!ne||!ee?X:ee((new Set)[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?X:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":ne&&ee?ee(""[Symbol.iterator]()):X,"%Symbol%":ne?Symbol:X,"%SyntaxError%":ce,"%ThrowTypeError%":re,"%TypedArray%":L,"%TypeError%":Z,"%Uint8Array%":typeof Uint8Array>"u"?X:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?X:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?X:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?X:Uint32Array,"%URIError%":Ne,"%WeakMap%":typeof WeakMap>"u"?X:WeakMap,"%WeakRef%":typeof WeakRef>"u"?X:WeakRef,"%WeakSet%":typeof WeakSet>"u"?X:WeakSet};if(ee)try{null.error}catch(Nn){var se=ee(ee(Nn));B["%Error.prototype%"]=se}var ue=function Nn(ve){var ze;if("%AsyncFunction%"===ve)ze=ye("async function () {}");else if("%GeneratorFunction%"===ve)ze=ye("function* () {}");else if("%AsyncGeneratorFunction%"===ve)ze=ye("async function* () {}");else if("%AsyncGenerator%"===ve){var we=Nn("%AsyncGeneratorFunction%");we&&(ze=we.prototype)}else if("%AsyncIteratorPrototype%"===ve){var Le=Nn("%AsyncGenerator%");Le&&ee&&(ze=ee(Le.prototype))}return B[ve]=ze,ze},ge={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Se=fe(992),ut=fe(368),nt=Se.call(Function.call,Array.prototype.concat),Yt=Se.call(Function.apply,Array.prototype.splice),ht=Se.call(Function.call,String.prototype.replace),_n=Se.call(Function.call,String.prototype.slice),pt=Se.call(Function.call,RegExp.prototype.exec),co=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Jn=/\\(\\)?/g,Lo=function(ve,ze){var Le,we=ve;if(ut(ge,we)&&(we="%"+(Le=ge[we])[0]+"%"),ut(B,we)){var qe=B[we];if(qe===P&&(qe=ue(we)),typeof qe>"u"&&!ze)throw new Z("intrinsic "+ve+" exists, but is not available. Please file an issue!");return{alias:Le,name:we,value:qe}}throw new ce("intrinsic "+ve+" does not exist!")};Ve.exports=function(ve,ze){if("string"!=typeof ve||0===ve.length)throw new Z("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof ze)throw new Z('"allowMissing" argument must be a boolean');if(null===pt(/^%?[^%]*%?$/,ve))throw new ce("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var we=function(ve){var ze=_n(ve,0,1),we=_n(ve,-1);if("%"===ze&&"%"!==we)throw new ce("invalid intrinsic syntax, expected closing `%`");if("%"===we&&"%"!==ze)throw new ce("invalid intrinsic syntax, expected opening `%`");var Le=[];return ht(ve,co,function(qe,gt,Vt,vi){Le[Le.length]=Vt?ht(vi,Jn,"$1"):gt||qe}),Le}(ve),Le=we.length>0?we[0]:"",qe=Lo("%"+Le+"%",ze),gt=qe.name,Vt=qe.value,vi=!1,lr=qe.alias;lr&&(Le=lr[0],Yt(we,nt([0,1],lr)));for(var Sr=1,To=!0;Sr=we.length){var Ct=te(Vt,_i);Vt=(To=!!Ct)&&"get"in Ct&&!("originalValue"in Ct.get)?Ct.get:Vt[_i]}else To=ut(Vt,_i),Vt=Vt[_i];To&&!vi&&(B[gt]=Vt)}}return Vt}},798:(Ve,jt,fe)=>{"use strict";var le=fe(258)("%Object.getOwnPropertyDescriptor%",!0);if(le)try{le([],"length")}catch{le=null}Ve.exports=le},861:(Ve,jt,fe)=>{"use strict";var X=fe(570),le=function(){return!!X};le.hasArrayLengthDefineBug=function(){if(!X)return null;try{return 1!==X([],"length",{value:1}).length}catch{return!0}},Ve.exports=le},119:Ve=>{"use strict";var jt={__proto__:null,foo:{}},fe=Object;Ve.exports=function(){return{__proto__:jt}.foo===jt.foo&&!(jt instanceof fe)}},900:(Ve,jt,fe)=>{"use strict";var X=typeof Symbol<"u"&&Symbol,le=fe(310);Ve.exports=function(){return"function"==typeof X&&"function"==typeof Symbol&&"symbol"==typeof X("foo")&&"symbol"==typeof Symbol("bar")&&le()}},310:Ve=>{"use strict";Ve.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var fe={},X=Symbol("test"),le=Object(X);if("string"==typeof X||"[object Symbol]"!==Object.prototype.toString.call(X)||"[object Symbol]"!==Object.prototype.toString.call(le))return!1;for(X in fe[X]=42,fe)return!1;if("function"==typeof Object.keys&&0!==Object.keys(fe).length||"function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(fe).length)return!1;var V=Object.getOwnPropertySymbols(fe);if(1!==V.length||V[0]!==X||!Object.prototype.propertyIsEnumerable.call(fe,X))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var Me=Object.getOwnPropertyDescriptor(fe,X);if(42!==Me.value||!0!==Me.enumerable)return!1}return!0}},368:(Ve,jt,fe)=>{"use strict";var X=Function.prototype.call,le=Object.prototype.hasOwnProperty,$=fe(992);Ve.exports=$.call(X,le)},560:function(Ve,jt,fe){var X,le;X=function(){var K,ee,$={version:"0.2.0"},V=$.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function Me(K,ee,P){return KP?P:K}function ce(K){return 100*(-1+K)}$.configure=function(K){var ee,P;for(ee in K)void 0!==(P=K[ee])&&K.hasOwnProperty(ee)&&(V[ee]=P);return this},$.status=null,$.set=function(K){var ee=$.isStarted();K=Me(K,V.minimum,1),$.status=1===K?null:K;var P=$.render(!ee),L=P.querySelector(V.barSelector),B=V.speed,se=V.easing;return Ne(function(ue){""===V.positionUsing&&(V.positionUsing=$.getPositioningCSS()),Ee(L,function Z(K,ee,P){var L;return(L="translate3d"===V.positionUsing?{transform:"translate3d("+ce(K)+"%,0,0)"}:"translate"===V.positionUsing?{transform:"translate("+ce(K)+"%,0)"}:{"margin-left":ce(K)+"%"}).transition="all "+ee+"ms "+P,L}(K,B,se)),1===K?(Ee(P,{transition:"none",opacity:1}),setTimeout(function(){Ee(P,{transition:"all "+B+"ms linear",opacity:0}),setTimeout(function(){$.remove(),ue()},B)},B)):setTimeout(ue,B)}),this},$.isStarted=function(){return"number"==typeof $.status},$.start=function(){$.status||$.set(0);var K=function(){setTimeout(function(){$.status&&($.trickle(),K())},V.trickleSpeed)};return V.trickle&&K(),this},$.done=function(K){return K||$.status?$.inc(.3+.5*Math.random()).set(1):this},$.inc=function(K){var ee=$.status;return ee?("number"!=typeof K&&(K=(1-ee)*Me(Math.random()*ee,.1,.95)),ee=Me(ee+K,0,.994),$.set(ee)):$.start()},$.trickle=function(){return $.inc(Math.random()*V.trickleRate)},K=0,ee=0,$.promise=function(P){return P&&"resolved"!==P.state()?(0===ee&&$.start(),K++,ee++,P.always(function(){0==--ee?(K=0,$.done()):$.set((K-ee)/K)}),this):this},$.render=function(K){if($.isRendered())return document.getElementById("nprogress");te(document.documentElement,"nprogress-busy");var ee=document.createElement("div");ee.id="nprogress",ee.innerHTML=V.template;var se,P=ee.querySelector(V.barSelector),L=K?"-100":ce($.status||0),B=document.querySelector(V.parent);return Ee(P,{transition:"all 0 linear",transform:"translate3d("+L+"%,0,0)"}),V.showSpinner||(se=ee.querySelector(V.spinnerSelector))&&ne(se),B!=document.body&&te(B,"nprogress-custom-parent"),B.appendChild(ee),ee},$.remove=function(){Re(document.documentElement,"nprogress-busy"),Re(document.querySelector(V.parent),"nprogress-custom-parent");var K=document.getElementById("nprogress");K&&ne(K)},$.isRendered=function(){return!!document.getElementById("nprogress")},$.getPositioningCSS=function(){var K=document.body.style,ee="WebkitTransform"in K?"Webkit":"MozTransform"in K?"Moz":"msTransform"in K?"ms":"OTransform"in K?"O":"";return ee+"Perspective"in K?"translate3d":ee+"Transform"in K?"translate":"margin"};var Ne=function(){var K=[];function ee(){var P=K.shift();P&&P(ee)}return function(P){K.push(P),1==K.length&&ee()}}(),Ee=function(){var K=["Webkit","O","Moz","ms"],ee={};function B(ue){return ue=function P(ue){return ue.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(ge,Se){return Se.toUpperCase()})}(ue),ee[ue]||(ee[ue]=function L(ue){var ge=document.body.style;if(ue in ge)return ue;for(var nt,Se=K.length,ut=ue.charAt(0).toUpperCase()+ue.slice(1);Se--;)if((nt=K[Se]+ut)in ge)return nt;return ue}(ue))}function se(ue,ge,Se){ge=B(ge),ue.style[ge]=Se}return function(ue,ge){var ut,nt,Se=arguments;if(2==Se.length)for(ut in ge)void 0!==(nt=ge[ut])&&ge.hasOwnProperty(ut)&&se(ue,ut,nt);else se(ue,Se[1],Se[2])}}();function ye(K,ee){return("string"==typeof K?K:re(K)).indexOf(" "+ee+" ")>=0}function te(K,ee){var P=re(K),L=P+ee;ye(P,ee)||(K.className=L.substring(1))}function Re(K,ee){var L,P=re(K);ye(K,ee)&&(L=P.replace(" "+ee+" "," "),K.className=L.substring(1,L.length-1))}function re(K){return(" "+(K.className||"")+" ").replace(/\s+/gi," ")}function ne(K){K&&K.parentNode&&K.parentNode.removeChild(K)}return $},void 0!==(le=X.call(jt,fe,jt,Ve))&&(Ve.exports=le)},150:(Ve,jt,fe)=>{var X="function"==typeof Map&&Map.prototype,le=Object.getOwnPropertyDescriptor&&X?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,$=X&&le&&"function"==typeof le.get?le.get:null,V=X&&Map.prototype.forEach,Me="function"==typeof Set&&Set.prototype,ce=Object.getOwnPropertyDescriptor&&Me?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Z=Me&&ce&&"function"==typeof ce.get?ce.get:null,Ne=Me&&Set.prototype.forEach,ye="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,Re="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,ne="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,K=Boolean.prototype.valueOf,ee=Object.prototype.toString,P=Function.prototype.toString,L=String.prototype.match,B=String.prototype.slice,se=String.prototype.replace,ue=String.prototype.toUpperCase,ge=String.prototype.toLowerCase,Se=RegExp.prototype.test,ut=Array.prototype.concat,nt=Array.prototype.join,Yt=Array.prototype.slice,ht=Math.floor,_n="function"==typeof BigInt?BigInt.prototype.valueOf:null,pt=Object.getOwnPropertySymbols,co="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,Jn="function"==typeof Symbol&&"object"==typeof Symbol.iterator,ln="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol,1)?Symbol.toStringTag:null,Lo=Object.prototype.propertyIsEnumerable,Nn=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(F){return F.__proto__}:null);function ve(F,Y){if(F===1/0||F===-1/0||F!=F||F&&F>-1e3&&F<1e3||Se.call(/e/,Y))return Y;var Rt=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof F){var en=F<0?-ht(-F):ht(F);if(en!==F){var Hn=String(en),St=B.call(Y,Hn.length+1);return se.call(Hn,Rt,"$&_")+"."+se.call(se.call(St,/([0-9]{3})/g,"$&_"),/_$/,"")}}return se.call(Y,Rt,"$&_")}var ze=fe(634),we=ze.custom,Le=Tr(we)?we:null;function qe(F,Y,Rt){var en="double"===(Rt.quoteStyle||Y)?'"':"'";return en+F+en}function gt(F){return se.call(String(F),/"/g,""")}function Vt(F){return!("[object Array]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}function lr(F){return!("[object RegExp]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}function Tr(F){if(Jn)return F&&"object"==typeof F&&F instanceof Symbol;if("symbol"==typeof F)return!0;if(!F||"object"!=typeof F||!co)return!1;try{return co.call(F),!0}catch{}return!1}Ve.exports=function F(Y,Rt,en,Hn){var St=Rt||{};if(uo(St,"quoteStyle")&&"single"!==St.quoteStyle&&"double"!==St.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(uo(St,"maxStringLength")&&("number"==typeof St.maxStringLength?St.maxStringLength<0&&St.maxStringLength!==1/0:null!==St.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var Qr=!uo(St,"customInspect")||St.customInspect;if("boolean"!=typeof Qr&&"symbol"!==Qr)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(uo(St,"indent")&&null!==St.indent&&"\t"!==St.indent&&!(parseInt(St.indent,10)===St.indent&&St.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(uo(St,"numericSeparator")&&"boolean"!=typeof St.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var Mr=St.numericSeparator;if(typeof Y>"u")return"undefined";if(null===Y)return"null";if("boolean"==typeof Y)return Y?"true":"false";if("string"==typeof Y)return G2(Y,St);if("number"==typeof Y){if(0===Y)return 1/0/Y>0?"0":"-0";var Bn=String(Y);return Mr?ve(Y,Bn):Bn}if("bigint"==typeof Y){var Xr=String(Y)+"n";return Mr?ve(Y,Xr):Xr}var Kc=typeof St.depth>"u"?5:St.depth;if(typeof en>"u"&&(en=0),en>=Kc&&Kc>0&&"object"==typeof Y)return Vt(Y)?"[Array]":"[Object]";var Ut=function ip(F,Y){var Rt;if("\t"===F.indent)Rt="\t";else{if(!("number"==typeof F.indent&&F.indent>0))return null;Rt=nt.call(Array(F.indent+1)," ")}return{base:Rt,prev:nt.call(Array(Y+1),Rt)}}(St,en);if(typeof Hn>"u")Hn=[];else if(G1(Hn,Y)>=0)return"[Circular]";function Mo(Ia,Xc,rp){if(Xc&&(Hn=Yt.call(Hn)).push(Xc),rp){var Fe={depth:St.depth};return uo(St,"quoteStyle")&&(Fe.quoteStyle=St.quoteStyle),F(Ia,Fe,en+1,Hn)}return F(Ia,St,en+1,Hn)}if("function"==typeof Y&&!lr(Y)){var q2=function Ft(F){if(F.name)return F.name;var Y=L.call(P.call(F),/^function\s*([\w$]+)/);return Y?Y[1]:null}(Y),K2=qc(Y,Mo);return"[Function"+(q2?": "+q2:" (anonymous)")+"]"+(K2.length>0?" { "+nt.call(K2,", ")+" }":"")}if(Tr(Y)){var J2=Jn?se.call(String(Y),/^(Symbol\(.*\))_[^)]*$/,"$1"):co.call(Y);return"object"!=typeof Y||Jn?J2:Aa(J2)}if(function qs(F){return!(!F||"object"!=typeof F)&&(typeof HTMLElement<"u"&&F instanceof HTMLElement||"string"==typeof F.nodeName&&"function"==typeof F.getAttribute)}(Y)){for(var N="<"+ge.call(String(Y.nodeName)),Jc=Y.attributes||[],rt=0;rt"}if(Vt(Y)){if(0===Y.length)return"[]";var Zc=qc(Y,Mo);return Ut&&!function Gc(F){for(var Y=0;Y=0)return!1;return!0}(Zc)?"["+Pa(Zc,Ut)+"]":"[ "+nt.call(Zc,", ")+" ]"}if(function Sr(F){return!("[object Error]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y)){var dn=qc(Y,Mo);return"cause"in Error.prototype||!("cause"in Y)||Lo.call(Y,"cause")?0===dn.length?"["+String(Y)+"]":"{ ["+String(Y)+"] "+nt.call(dn,", ")+" }":"{ ["+String(Y)+"] "+nt.call(ut.call("[cause]: "+Mo(Y.cause),dn),", ")+" }"}if("object"==typeof Y&&Qr){if(Le&&"function"==typeof Y[Le]&&ze)return ze(Y,{depth:Kc-en});if("symbol"!==Qr&&"function"==typeof Y.inspect)return Y.inspect()}if(function Y2(F){if(!$||!F||"object"!=typeof F)return!1;try{$.call(F);try{Z.call(F)}catch{return!0}return F instanceof Map}catch{}return!1}(Y)){var Zt=[];return V&&V.call(Y,function(Ia,Xc){Zt.push(Mo(Xc,Y,!0)+" => "+Mo(Ia,Y))}),Zr("Map",$.call(Y),Zt,Ut)}if(function Wc(F){if(!Z||!F||"object"!=typeof F)return!1;try{Z.call(F);try{$.call(F)}catch{return!0}return F instanceof Set}catch{}return!1}(Y)){var Z2=[];return Ne&&Ne.call(Y,function(Ia){Z2.push(Mo(Ia,Y))}),Zr("Set",Z.call(Y),Z2,Ut)}if(function U2(F){if(!ye||!F||"object"!=typeof F)return!1;try{ye.call(F,ye);try{Re.call(F,Re)}catch{return!0}return F instanceof WeakMap}catch{}return!1}(Y))return Oa("WeakMap");if(function W2(F){if(!Re||!F||"object"!=typeof F)return!1;try{Re.call(F,Re);try{ye.call(F,ye)}catch{return!0}return F instanceof WeakSet}catch{}return!1}(Y))return Oa("WeakSet");if(function ys(F){if(!ne||!F||"object"!=typeof F)return!1;try{return ne.call(F),!0}catch{}return!1}(Y))return Oa("WeakRef");if(function _i(F){return!("[object Number]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y))return Aa(Mo(Number(Y)));if(function Ct(F){if(!F||"object"!=typeof F||!_n)return!1;try{return _n.call(F),!0}catch{}return!1}(Y))return Aa(Mo(_n.call(Y)));if(function lo(F){return!("[object Boolean]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y))return Aa(K.call(Y));if(function To(F){return!("[object String]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y))return Aa(Mo(String(Y)));if(typeof window<"u"&&Y===window)return"{ [object Window] }";if(typeof globalThis<"u"&&Y===globalThis||typeof global<"u"&&Y===global)return"{ [object globalThis] }";if(!function vi(F){return!("[object Date]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y)&&!lr(Y)){var Ie=qc(Y,Mo),Qc=Nn?Nn(Y)===Object.prototype:Y instanceof Object||Y.constructor===Object,Q2=Y instanceof Object?"":"null prototype",op=!Qc&&ln&&Object(Y)===Y&&ln in Y?B.call(Fi(Y),8,-1):Q2?"Object":"",X2=(Qc||"function"!=typeof Y.constructor?"":Y.constructor.name?Y.constructor.name+" ":"")+(op||Q2?"["+nt.call(ut.call([],op||[],Q2||[]),": ")+"] ":"");return 0===Ie.length?X2+"{}":Ut?X2+"{"+Pa(Ie,Ut)+"}":X2+"{ "+nt.call(Ie,", ")+" }"}return String(Y)};var ka=Object.prototype.hasOwnProperty||function(F){return F in this};function uo(F,Y){return ka.call(F,Y)}function Fi(F){return ee.call(F)}function G1(F,Y){if(F.indexOf)return F.indexOf(Y);for(var Rt=0,en=F.length;RtY.maxStringLength){var Rt=F.length-Y.maxStringLength,en="... "+Rt+" more character"+(Rt>1?"s":"");return G2(B.call(F,0,Y.maxStringLength),Y)+en}return qe(se.call(se.call(F,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,np),"single",Y)}function np(F){var Y=F.charCodeAt(0),Rt={8:"b",9:"t",10:"n",12:"f",13:"r"}[Y];return Rt?"\\"+Rt:"\\x"+(Y<16?"0":"")+ue.call(Y.toString(16))}function Aa(F){return"Object("+F+")"}function Oa(F){return F+" { ? }"}function Zr(F,Y,Rt,en){return F+" ("+Y+") {"+(en?Pa(Rt,en):nt.call(Rt,", "))+"}"}function Pa(F,Y){if(0===F.length)return"";var Rt="\n"+Y.prev+Y.base;return Rt+nt.call(F,","+Rt)+"\n"+Y.prev}function qc(F,Y){var Rt=Vt(F),en=[];if(Rt){en.length=F.length;for(var Hn=0;Hn{"use strict";var jt=String.prototype.replace,fe=/%20/g;Ve.exports={default:"RFC3986",formatters:{RFC1738:function(le){return jt.call(le,fe,"+")},RFC3986:function(le){return String(le)}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},476:(Ve,jt,fe)=>{"use strict";var X=fe(801),le=fe(919),$=fe(140);Ve.exports={formats:$,parse:le,stringify:X}},919:(Ve,jt,fe)=>{"use strict";var X=fe(221),le=Object.prototype.hasOwnProperty,$=Array.isArray,V={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:X.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},ce=function(re,ne){return re&&"string"==typeof re&&ne.comma&&re.indexOf(",")>-1?re.split(","):re},te=function(ne,K,ee,P){if(ne){var L=ee.allowDots?ne.replace(/\.([^.[]+)/g,"[$1]"):ne,se=/(\[[^[\]]*])/g,ue=ee.depth>0&&/(\[[^[\]]*])/.exec(L),ge=ue?L.slice(0,ue.index):L,Se=[];if(ge){if(!ee.plainObjects&&le.call(Object.prototype,ge)&&!ee.allowPrototypes)return;Se.push(ge)}for(var ut=0;ee.depth>0&&null!==(ue=se.exec(L))&&ut=0;--L){var B,se=re[L];if("[]"===se&&K.parseArrays)B=K.allowEmptyArrays&&""===P?[]:[].concat(P);else{B=K.plainObjects?Object.create(null):{};var ue="["===se.charAt(0)&&"]"===se.charAt(se.length-1)?se.slice(1,-1):se,ge=K.decodeDotInKeys?ue.replace(/%2E/g,"."):ue,Se=parseInt(ge,10);K.parseArrays||""!==ge?!isNaN(Se)&&se!==ge&&String(Se)===ge&&Se>=0&&K.parseArrays&&Se<=K.arrayLimit?(B=[])[Se]=P:"__proto__"!==ge&&(B[ge]=P):B={0:P}}P=B}return P}(Se,K,ee,P)}};Ve.exports=function(re,ne){var K=function(ne){if(!ne)return V;if(typeof ne.allowEmptyArrays<"u"&&"boolean"!=typeof ne.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof ne.decodeDotInKeys<"u"&&"boolean"!=typeof ne.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==ne.decoder&&typeof ne.decoder<"u"&&"function"!=typeof ne.decoder)throw new TypeError("Decoder has to be a function.");if(typeof ne.charset<"u"&&"utf-8"!==ne.charset&&"iso-8859-1"!==ne.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var K=typeof ne.charset>"u"?V.charset:ne.charset,ee=typeof ne.duplicates>"u"?V.duplicates:ne.duplicates;if("combine"!==ee&&"first"!==ee&&"last"!==ee)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:typeof ne.allowDots>"u"?!0===ne.decodeDotInKeys||V.allowDots:!!ne.allowDots,allowEmptyArrays:"boolean"==typeof ne.allowEmptyArrays?!!ne.allowEmptyArrays:V.allowEmptyArrays,allowPrototypes:"boolean"==typeof ne.allowPrototypes?ne.allowPrototypes:V.allowPrototypes,allowSparse:"boolean"==typeof ne.allowSparse?ne.allowSparse:V.allowSparse,arrayLimit:"number"==typeof ne.arrayLimit?ne.arrayLimit:V.arrayLimit,charset:K,charsetSentinel:"boolean"==typeof ne.charsetSentinel?ne.charsetSentinel:V.charsetSentinel,comma:"boolean"==typeof ne.comma?ne.comma:V.comma,decodeDotInKeys:"boolean"==typeof ne.decodeDotInKeys?ne.decodeDotInKeys:V.decodeDotInKeys,decoder:"function"==typeof ne.decoder?ne.decoder:V.decoder,delimiter:"string"==typeof ne.delimiter||X.isRegExp(ne.delimiter)?ne.delimiter:V.delimiter,depth:"number"==typeof ne.depth||!1===ne.depth?+ne.depth:V.depth,duplicates:ee,ignoreQueryPrefix:!0===ne.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof ne.interpretNumericEntities?ne.interpretNumericEntities:V.interpretNumericEntities,parameterLimit:"number"==typeof ne.parameterLimit?ne.parameterLimit:V.parameterLimit,parseArrays:!1!==ne.parseArrays,plainObjects:"boolean"==typeof ne.plainObjects?ne.plainObjects:V.plainObjects,strictNullHandling:"boolean"==typeof ne.strictNullHandling?ne.strictNullHandling:V.strictNullHandling}}(ne);if(""===re||null===re||typeof re>"u")return K.plainObjects?Object.create(null):{};for(var ee="string"==typeof re?function(ne,K){var ue,ee={__proto__:null},B=(K.ignoreQueryPrefix?ne.replace(/^\?/,""):ne).split(K.delimiter,K.parameterLimit===1/0?void 0:K.parameterLimit),se=-1,ge=K.charset;if(K.charsetSentinel)for(ue=0;ue{"use strict";var X=fe(541),le=fe(221),$=fe(140),V=Object.prototype.hasOwnProperty,Me={brackets:function(P){return P+"[]"},comma:"comma",indices:function(P,L){return P+"["+L+"]"},repeat:function(P){return P}},ce=Array.isArray,Z=Array.prototype.push,Ne=function(ee,P){Z.apply(ee,ce(P)?P:[P])},Ee=Date.prototype.toISOString,ye=$.default,te={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:le.encode,encodeValuesOnly:!1,format:ye,formatter:$.formatters[ye],indices:!1,serializeDate:function(P){return Ee.call(P)},skipNulls:!1,strictNullHandling:!1},re={},ne=function ee(P,L,B,se,ue,ge,Se,ut,nt,Yt,ht,_n,pt,co,Jn,ln,Lo,Nn){for(var ve=P,ze=Nn,we=0,Le=!1;void 0!==(ze=ze.get(re))&&!Le;){var qe=ze.get(P);if(we+=1,typeof qe<"u"){if(qe===we)throw new RangeError("Cyclic object value");Le=!0}typeof ze.get(re)>"u"&&(we=0)}if("function"==typeof Yt?ve=Yt(L,ve):ve instanceof Date?ve=pt(ve):"comma"===B&&ce(ve)&&(ve=le.maybeMap(ve,function(Fi){return Fi instanceof Date?pt(Fi):Fi})),null===ve){if(ge)return nt&&!ln?nt(L,te.encoder,Lo,"key",co):L;ve=""}if(function(P){return"string"==typeof P||"number"==typeof P||"boolean"==typeof P||"symbol"==typeof P||"bigint"==typeof P}(ve)||le.isBuffer(ve))return nt?[Jn(ln?L:nt(L,te.encoder,Lo,"key",co))+"="+Jn(nt(ve,te.encoder,Lo,"value",co))]:[Jn(L)+"="+Jn(String(ve))];var vi,Vt=[];if(typeof ve>"u")return Vt;if("comma"===B&&ce(ve))ln&&nt&&(ve=le.maybeMap(ve,nt)),vi=[{value:ve.length>0?ve.join(",")||null:void 0}];else if(ce(Yt))vi=Yt;else{var lr=Object.keys(ve);vi=ht?lr.sort(ht):lr}var Sr=ut?L.replace(/\./g,"%2E"):L,To=se&&ce(ve)&&1===ve.length?Sr+"[]":Sr;if(ue&&ce(ve)&&0===ve.length)return To+"[]";for(var _i=0;_i"u"?!0===P.encodeDotInKeys||te.allowDots:!!P.allowDots,allowEmptyArrays:"boolean"==typeof P.allowEmptyArrays?!!P.allowEmptyArrays:te.allowEmptyArrays,arrayFormat:ge,charset:L,charsetSentinel:"boolean"==typeof P.charsetSentinel?P.charsetSentinel:te.charsetSentinel,commaRoundTrip:P.commaRoundTrip,delimiter:typeof P.delimiter>"u"?te.delimiter:P.delimiter,encode:"boolean"==typeof P.encode?P.encode:te.encode,encodeDotInKeys:"boolean"==typeof P.encodeDotInKeys?P.encodeDotInKeys:te.encodeDotInKeys,encoder:"function"==typeof P.encoder?P.encoder:te.encoder,encodeValuesOnly:"boolean"==typeof P.encodeValuesOnly?P.encodeValuesOnly:te.encodeValuesOnly,filter:ue,format:B,formatter:se,serializeDate:"function"==typeof P.serializeDate?P.serializeDate:te.serializeDate,skipNulls:"boolean"==typeof P.skipNulls?P.skipNulls:te.skipNulls,sort:"function"==typeof P.sort?P.sort:null,strictNullHandling:"boolean"==typeof P.strictNullHandling?P.strictNullHandling:te.strictNullHandling}}(P);"function"==typeof B.filter?L=(0,B.filter)("",L):ce(B.filter)&&(se=B.filter);var ge=[];if("object"!=typeof L||null===L)return"";var Se=Me[B.arrayFormat],ut="comma"===Se&&B.commaRoundTrip;se||(se=Object.keys(L)),B.sort&&se.sort(B.sort);for(var nt=X(),Yt=0;Yt0?pt+_n:""}},221:(Ve,jt,fe)=>{"use strict";var X=fe(140),le=Object.prototype.hasOwnProperty,$=Array.isArray,V=function(){for(var P=[],L=0;L<256;++L)P.push("%"+((L<16?"0":"")+L.toString(16)).toUpperCase());return P}(),ce=function(L,B){for(var se=B&&B.plainObjects?Object.create(null):{},ue=0;ue1;){var B=L.pop(),se=B.obj[B.prop];if($(se)){for(var ue=[],ge=0;ge=1024?Se.slice(nt,nt+1024):Se,ht=[],_n=0;_n=48&&pt<=57||pt>=65&&pt<=90||pt>=97&&pt<=122||ge===X.RFC1738&&(40===pt||41===pt)?ht[ht.length]=Yt.charAt(_n):pt<128?ht[ht.length]=V[pt]:pt<2048?ht[ht.length]=V[192|pt>>6]+V[128|63&pt]:pt<55296||pt>=57344?ht[ht.length]=V[224|pt>>12]+V[128|pt>>6&63]+V[128|63&pt]:(pt=65536+((1023&pt)<<10|1023&Yt.charCodeAt(_n+=1)),ht[ht.length]=V[240|pt>>18]+V[128|pt>>12&63]+V[128|pt>>6&63]+V[128|63&pt])}ut+=ht.join("")}return ut},isBuffer:function(L){return!(!L||"object"!=typeof L||!(L.constructor&&L.constructor.isBuffer&&L.constructor.isBuffer(L)))},isRegExp:function(L){return"[object RegExp]"===Object.prototype.toString.call(L)},maybeMap:function(L,B){if($(L)){for(var se=[],ue=0;ue{"use strict";var X=fe(258),le=fe(736),$=fe(861)(),V=fe(798),Me=fe(758),ce=X("%Math.floor%");Ve.exports=function(Ne,Ee){if("function"!=typeof Ne)throw new Me("`fn` is not a function");if("number"!=typeof Ee||Ee<0||Ee>4294967295||ce(Ee)!==Ee)throw new Me("`length` must be a positive 32-bit integer");var ye=arguments.length>2&&!!arguments[2],te=!0,Re=!0;if("length"in Ne&&V){var re=V(Ne,"length");re&&!re.configurable&&(te=!1),re&&!re.writable&&(Re=!1)}return(te||Re||!ye)&&($?le(Ne,"length",Ee,!0,!0):le(Ne,"length",Ee)),Ne}},541:(Ve,jt,fe)=>{"use strict";var X=fe(258),le=fe(20),$=fe(150),V=fe(758),Me=X("%WeakMap%",!0),ce=X("%Map%",!0),Z=le("WeakMap.prototype.get",!0),Ne=le("WeakMap.prototype.set",!0),Ee=le("WeakMap.prototype.has",!0),ye=le("Map.prototype.get",!0),te=le("Map.prototype.set",!0),Re=le("Map.prototype.has",!0),re=function(P,L){for(var se,B=P;null!==(se=B.next);B=se)if(se.key===L)return B.next=se.next,se.next=P.next,P.next=se,se};Ve.exports=function(){var L,B,se,ue={assert:function(ge){if(!ue.has(ge))throw new V("Side channel does not contain "+$(ge))},get:function(ge){if(Me&&ge&&("object"==typeof ge||"function"==typeof ge)){if(L)return Z(L,ge)}else if(ce){if(B)return ye(B,ge)}else if(se)return function(P,L){var B=re(P,L);return B&&B.value}(se,ge)},has:function(ge){if(Me&&ge&&("object"==typeof ge||"function"==typeof ge)){if(L)return Ee(L,ge)}else if(ce){if(B)return Re(B,ge)}else if(se)return function(P,L){return!!re(P,L)}(se,ge);return!1},set:function(ge,Se){Me&&ge&&("object"==typeof ge||"function"==typeof ge)?(L||(L=new Me),Ne(L,ge,Se)):ce?(B||(B=new ce),te(B,ge,Se)):(se||(se={key:{},next:null}),function(P,L,B){var se=re(P,L);se?se.value=B:P.next={key:L,next:P.next,value:B}}(se,ge,Se))}};return ue}},634:()=>{}},Ve=>{Ve(Ve.s=285)}]); \ No newline at end of file diff --git a/main.bee27f4f26af917e.js b/main.bee27f4f26af917e.js new file mode 100644 index 000000000..f1d37ac16 --- /dev/null +++ b/main.bee27f4f26af917e.js @@ -0,0 +1 @@ +(self.webpackChunknav2=self.webpackChunknav2||[]).push([[792],{285:(Ve,jt,fe)=>{"use strict";var X={};fe.r(X),fe.d(X,{hasBrowserEnv:()=>Kg,hasStandardBrowserEnv:()=>wee,hasStandardBrowserWebWorkerEnv:()=>zee,origin:()=>See});let $=null,V=!1,Me=1;const ce=Symbol("SIGNAL");function Z(t){const n=$;return $=t,n}const te={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Re(t){if(V)throw new Error("");if(null===$)return;$.consumerOnSignalRead(t);const n=$.nextProducerIndex++;nt($),n<$.producerNode.length&&$.producerNode[n]!==t&&ut($)&&Se($.producerNode[n],$.producerIndexOfThis[n]),$.producerNode[n]!==t&&($.producerNode[n]=t,$.producerIndexOfThis[n]=ut($)?ge(t,$,n):0),$.producerLastReadVersion[n]=t.version}function ne(t){if((!ut(t)||t.dirty)&&(t.dirty||t.lastCleanEpoch!==Me)){if(!t.producerMustRecompute(t)&&!se(t))return t.dirty=!1,void(t.lastCleanEpoch=Me);t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=Me}}function K(t){if(void 0===t.liveConsumerNode)return;const n=V;V=!0;try{for(const e of t.liveConsumerNode)e.dirty||P(e)}finally{V=n}}function ee(){return!1!==$?.consumerAllowSignalWrites}function P(t){t.dirty=!0,K(t),t.consumerMarkedDirty?.(t)}function L(t){return t&&(t.nextProducerIndex=0),Z(t)}function B(t,n){if(Z(n),t&&void 0!==t.producerNode&&void 0!==t.producerIndexOfThis&&void 0!==t.producerLastReadVersion){if(ut(t))for(let e=t.nextProducerIndex;et.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function se(t){nt(t);for(let n=0;n0}function nt(t){t.producerNode??=[],t.producerIndexOfThis??=[],t.producerLastReadVersion??=[]}function Yt(t){t.liveConsumerNode??=[],t.liveConsumerIndexOfThis??=[]}function ht(t){return void 0!==t.producerNode}let Nn=function Lo(){throw new Error};function ve(){Nn()}let we=null;function Vt(t,n){ee()||ve(),t.equal(t.value,n)||(t.value=n,function Sr(t){t.version++,function re(){Me++}(),K(t),we?.()}(t))}const lr={...te,equal:function le(t,n){return Object.is(t,n)},value:void 0};const _i=()=>{},lo={...te,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!1,consumerMarkedDirty:t=>{null!==t.schedule&&t.schedule(t.ref)},hasRun:!1,cleanupFn:_i};function Ct(t){return"function"==typeof t}function ka(t){const e=t(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const uo=ka(t=>function(e){t(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,o)=>`${o+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Fi(t,n){if(t){const e=t.indexOf(n);0<=e&&t.splice(e,1)}}class Ft{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const r of e)r.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(Ct(i))try{i()}catch(r){n=r instanceof uo?r.errors:[r]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const r of o)try{U2(r)}catch(s){n=n??[],s instanceof uo?n=[...n,...s.errors]:n.push(s)}}if(n)throw new uo(n)}}add(n){var e;if(n&&n!==this)if(this.closed)U2(n);else{if(n instanceof Ft){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(n)}}_hasParent(n){const{_parentage:e}=this;return e===n||Array.isArray(e)&&e.includes(n)}_addParent(n){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(n),e):e?[e,n]:n}_removeParent(n){const{_parentage:e}=this;e===n?this._parentage=null:Array.isArray(e)&&Fi(e,n)}remove(n){const{_finalizers:e}=this;e&&Fi(e,n),n instanceof Ft&&n._removeParent(this)}}Ft.EMPTY=(()=>{const t=new Ft;return t.closed=!0,t})();const G1=Ft.EMPTY;function Y2(t){return t instanceof Ft||t&&"closed"in t&&Ct(t.remove)&&Ct(t.add)&&Ct(t.unsubscribe)}function U2(t){Ct(t)?t():t.unsubscribe()}const ys={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Wc={setTimeout(t,n,...e){const{delegate:i}=Wc;return i?.setTimeout?i.setTimeout(t,n,...e):setTimeout(t,n,...e)},clearTimeout(t){const{delegate:n}=Wc;return(n?.clearTimeout||clearTimeout)(t)},delegate:void 0};function W2(t){Wc.setTimeout(()=>{const{onUnhandledError:n}=ys;if(!n)throw t;n(t)})}function qs(){}const G2=Oa("C",void 0,void 0);function Oa(t,n,e){return{kind:t,value:n,error:e}}let Zr=null;function Gc(t){if(ys.useDeprecatedSynchronousErrorHandling){const n=!Zr;if(n&&(Zr={errorThrown:!1,error:null}),t(),n){const{errorThrown:e,error:i}=Zr;if(Zr=null,e)throw i}}else t()}class Pa extends Ft{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,Y2(n)&&n.add(this)):this.destination=Qr}static create(n,e,i){return new Rt(n,e,i)}next(n){this.isStopped?St(function Aa(t){return Oa("N",t,void 0)}(n),this):this._next(n)}error(n){this.isStopped?St(function np(t){return Oa("E",void 0,t)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?St(G2,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const qc=Function.prototype.bind;function F(t,n){return qc.call(t,n)}class Y{constructor(n){this.partialObserver=n}next(n){const{partialObserver:e}=this;if(e.next)try{e.next(n)}catch(i){en(i)}}error(n){const{partialObserver:e}=this;if(e.error)try{e.error(n)}catch(i){en(i)}else en(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(e){en(e)}}}class Rt extends Pa{constructor(n,e,i){let o;if(super(),Ct(n)||!n)o={next:n??void 0,error:e??void 0,complete:i??void 0};else{let r;this&&ys.useDeprecatedNextContext?(r=Object.create(n),r.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&F(n.next,r),error:n.error&&F(n.error,r),complete:n.complete&&F(n.complete,r)}):o=n}this.destination=new Y(o)}}function en(t){ys.useDeprecatedSynchronousErrorHandling?function ip(t){ys.useDeprecatedSynchronousErrorHandling&&Zr&&(Zr.errorThrown=!0,Zr.error=t)}(t):W2(t)}function St(t,n){const{onStoppedNotification:e}=ys;e&&Wc.setTimeout(()=>e(t,n))}const Qr={closed:!0,next:qs,error:function Hn(t){throw t},complete:qs},Mr="function"==typeof Symbol&&Symbol.observable||"@@observable";function Bn(t){return t}function Kc(t){return 0===t.length?Bn:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let Ut=(()=>{class t{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,o){const r=function K2(t){return t&&t instanceof Pa||function q2(t){return t&&Ct(t.next)&&Ct(t.error)&&Ct(t.complete)}(t)&&Y2(t)}(e)?e:new Rt(e,i,o);return Gc(()=>{const{operator:s,source:a}=this;r.add(s?s.call(r,a):a?this._subscribe(r):this._trySubscribe(r))}),r}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Mo(i))((o,r)=>{const s=new Rt({next:a=>{try{e(a)}catch(c){r(c),s.unsubscribe()}},error:r,complete:o});this.subscribe(s)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[Mr](){return this}pipe(...e){return Kc(e)(this)}toPromise(e){return new(e=Mo(e))((i,o)=>{let r;this.subscribe(s=>r=s,s=>o(s),()=>i(r))})}}return t.create=n=>new t(n),t})();function Mo(t){var n;return null!==(n=t??ys.Promise)&&void 0!==n?n:Promise}const J2=ka(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let N=(()=>{class t extends Ut{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Jc(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new J2}next(e){Gc(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Gc(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Gc(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:o,observers:r}=this;return i||o?G1:(this.currentObservers=null,r.push(e),new Ft(()=>{this.currentObservers=null,Fi(r,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:o,isStopped:r}=this;i?e.error(o):r&&e.complete()}asObservable(){const e=new Ut;return e.source=this,e}}return t.create=(n,e)=>new Jc(n,e),t})();class Jc extends N{constructor(n,e){super(),this.destination=n,this.source=e}next(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,n)}error(n){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,n)}complete(){var n,e;null===(e=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===e||e.call(n)}_subscribe(n){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(n))&&void 0!==i?i:G1}}class rt extends N{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return!e.closed&&n.next(this._value),e}getValue(){const{hasError:n,thrownError:e,_value:i}=this;if(n)throw e;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}}function Zc(t){return Ct(t?.lift)}function dn(t){return n=>{if(Zc(n))return n.lift(function(e){try{return t(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Zt(t,n,e,i,o){return new Z2(t,n,e,i,o)}class Z2 extends Pa{constructor(n,e,i,o,r,s){super(n),this.onFinalize=r,this.shouldUnsubscribe=s,this._next=e?function(a){try{e(a)}catch(c){n.error(c)}}:super._next,this._error=o?function(a){try{o(a)}catch(c){n.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function Ie(t,n){return dn((e,i)=>{let o=0;e.subscribe(Zt(i,r=>{i.next(t.call(n,r,o++))}))})}typeof navigator<"u"&&navigator,typeof navigator<"u"&&!/Opera/.test(navigator.userAgent)&&navigator,typeof navigator<"u"&&(/MSIE/.test(navigator.userAgent)||navigator),typeof navigator<"u"&&!/Opera|WebKit/.test(navigator.userAgent)&&navigator,typeof navigator<"u"&&navigator;const D9="https://g.co/ng/security#xss";class j extends Error{constructor(n,e){super(function el(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function ws(t){return{toString:t}.toString()}const nl="__parameters__";function ol(t,n,e){return ws(()=>{const i=function hp(t){return function(...e){if(t){const i=t(...e);for(const o in i)this[o]=i[o]}}}(n);function o(...r){if(this instanceof o)return i.apply(this,r),this;const s=new o(...r);return a.annotation=s,a;function a(c,l,u){const p=c.hasOwnProperty(nl)?c[nl]:Object.defineProperty(c,nl,{value:[]})[nl];for(;p.length<=u;)p.push(null);return(p[u]=p[u]||[]).push(s),c}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}const Cn=globalThis;function hn(t){for(let n in t)if(t[n]===hn)return n;throw Error("Could not find renamed property on target object.")}function uV(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function bi(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(bi).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function pp(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}const hV=hn({__forward_ref__:hn});function Wt(t){return t.__forward_ref__=Wt,t.toString=function(){return bi(this())},t}function st(t){return ih(t)?t():t}function ih(t){return"function"==typeof t&&t.hasOwnProperty(hV)&&t.__forward_ref__===Wt}function ae(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Ze(t){return{providers:t.providers||[],imports:t.imports||[]}}function oh(t){return A9(t,sh)||A9(t,O9)}function A9(t,n){return t.hasOwnProperty(n)?t[n]:null}function rh(t){return t&&(t.hasOwnProperty(fp)||t.hasOwnProperty(_V))?t[fp]:null}const sh=hn({\u0275prov:hn}),fp=hn({\u0275inj:hn}),O9=hn({ngInjectableDef:hn}),_V=hn({ngInjectorDef:hn});class oe{constructor(n,e){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=ae({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function bp(t){return t&&!!t.\u0275providers}const J1=hn({\u0275cmp:hn}),yp=hn({\u0275dir:hn}),Cp=hn({\u0275pipe:hn}),I9=hn({\u0275mod:hn}),zs=hn({\u0275fac:hn}),Z1=hn({__NG_ELEMENT_ID__:hn}),N9=hn({__NG_ENV_ID__:hn});function vt(t){return"string"==typeof t?t:null==t?"":String(t)}function wp(t,n){throw new j(-201,!1)}var At=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}(At||{});let zp;function V9(){return zp}function Do(t){const n=zp;return zp=t,n}function F9(t,n,e){const i=oh(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&At.Optional?null:void 0!==n?n:void wp()}const Q1={},Sp="__NG_DI_FLAG__",ah="ngTempTokenPath",SV=/\n/gm,R9="__source";let rl;function Zs(t){const n=rl;return rl=t,n}function DV(t,n=At.Default){if(void 0===rl)throw new j(-203,!1);return null===rl?F9(t,void 0,n):rl.get(t,n&At.Optional?null:void 0,n)}function R(t,n=At.Default){return(V9()||DV)(st(t),n)}function W(t,n=At.Default){return R(t,ch(n))}function ch(t){return typeof t>"u"||"number"==typeof t?t:(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Tp(t){const n=[];for(let e=0;e({token:t})),-1),ed=X1(ol("Optional"),8),lh=X1(ol("SkipSelf"),4);function Va(t,n){return t.hasOwnProperty(zs)?t[zs]:null}function sl(t,n){t.forEach(e=>Array.isArray(e)?sl(e,n):n(e))}function B9(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function dh(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function jo(t,n,e){let i=al(t,n);return i>=0?t[1|i]=e:(i=~i,function j9(t,n,e,i){let o=t.length;if(o==n)t.push(e,i);else if(1===o)t.push(i,t[0]),t[0]=e;else{for(o--,t.push(t[o-1],t[o]);o>n;)t[o]=t[o-2],o--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function Dp(t,n){const e=al(t,n);if(e>=0)return t[1|e]}function al(t,n){return function $9(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const r=i+(o-i>>1),s=t[r<n?o=r:i=r+1}return~(o<n){s=r-1;break}}}for(;r-1){let r;for(;++or?"":o[u+1].toLowerCase(),2&i&&l!==p){if(xr(i))return!1;s=!0}}}}else{if(!s&&!xr(i)&&!xr(c))return!1;if(s&&xr(c))continue;s=!1,i=c|1&i}}return xr(i)||s}function xr(t){return!(1&t)}function RV(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let r=!1;for(;o-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?o+="."+s:4&i&&(o+=" "+s);else""!==o&&!xr(s)&&(n+=J9(r,o),o=""),i=s,r=r||!xr(i);e++}return""!==o&&(n+=J9(r,o)),n}function q(t){return ws(()=>{const n=Q9(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===ph.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,signals:t.signals??!1,data:t.data||{},encapsulation:t.encapsulation||Dr.Emulated,styles:t.styles||Qt,_:null,schemas:t.schemas||null,tView:null,id:""};X9(e);const i=t.dependencies;return e.directiveDefs=fh(i,!1),e.pipeDefs=fh(i,!0),e.id=function KV(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.signals,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const o of e)n=Math.imul(31,n)+o.charCodeAt(0)|0;return n+=2147483648,"c"+n}(e),e})}function WV(t){return xt(t)||yi(t)}function GV(t){return null!==t}function Qe(t){return ws(()=>({type:t.type,bootstrap:t.bootstrap||Qt,declarations:t.declarations||Qt,imports:t.imports||Qt,exports:t.exports||Qt,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Z9(t,n){if(null==t)return es;const e={};for(const i in t)if(t.hasOwnProperty(i)){const o=t[i];let r,s,a=cl.None;Array.isArray(o)?(a=o[0],r=o[1],s=o[2]??r):(r=o,s=o),n?(e[r]=a!==cl.None?[i,a]:i,n[r]=s):e[r]=i}return e}function de(t){return ws(()=>{const n=Q9(t);return X9(n),n})}function jn(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function xt(t){return t[J1]||null}function yi(t){return t[yp]||null}function Ri(t){return t[Cp]||null}function eo(t,n){const e=t[I9]||null;if(!e&&!0===n)throw new Error(`Type ${bi(t)} does not have '\u0275mod' property.`);return e}function Q9(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:t.inputs||es,exportAs:t.exportAs||null,standalone:!0===t.standalone,signals:!0===t.signals,selectors:t.selectors||Qt,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Z9(t.inputs,n),outputs:Z9(t.outputs),debugInfo:null}}function X9(t){t.features?.forEach(n=>n(t))}function fh(t,n){if(!t)return null;const e=n?Ri:WV;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(GV)}function JV(...t){return{\u0275providers:Ap(0,t),\u0275fromNgModule:!0}}function Ap(t,...n){const e=[],i=new Set;let o;const r=s=>{e.push(s)};return sl(n,s=>{const a=s;mh(a,r,[],i)&&(o||=[],o.push(a))}),void 0!==o&&e_(o,r),e}function e_(t,n){for(let e=0;e{n(r,i)})}}function mh(t,n,e,i){if(!(t=st(t)))return!1;let o=null,r=rh(t);const s=!r&&xt(t);if(r||s){if(s&&!s.standalone)return!1;o=t}else{const c=t.ngModule;if(r=rh(c),!r)return!1;o=c}const a=i.has(o);if(s){if(a)return!1;if(i.add(o),s.dependencies){const c="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const l of c)mh(l,n,e,i)}}else{if(!r)return!1;{if(null!=r.imports&&!a){let l;i.add(o);try{sl(r.imports,u=>{mh(u,n,e,i)&&(l||=[],l.push(u))})}finally{}void 0!==l&&e_(l,n)}if(!a){const l=Va(o)||(()=>new o);n({provide:o,useFactory:l,deps:Qt},o),n({provide:xp,useValue:o,multi:!0},o),n({provide:ts,useValue:()=>R(o),multi:!0},o)}const c=r.providers;if(null!=c&&!a){const l=t;Op(c,u=>{n(u,l)})}}}return o!==t&&void 0!==t.providers}function Op(t,n){for(let e of t)bp(e)&&(e=e.\u0275providers),Array.isArray(e)?Op(e,n):n(e)}const ZV=hn({provide:String,useValue:hn});function Pp(t){return null!==t&&"object"==typeof t&&ZV in t}function Fa(t){return"function"==typeof t}const Ip=new oe(""),gh={},XV={};let Np;function vh(){return void 0===Np&&(Np=new hh),Np}class Li{}class ll extends Li{get destroyed(){return this._destroyed}constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Fp(n,s=>this.processProvider(s)),this.records.set(Y9,dl(void 0,this)),o.has("environment")&&this.records.set(Li,dl(void 0,this));const r=this.records.get(Ip);null!=r&&"string"==typeof r.value&&this.scopes.add(r.value),this.injectorDefTypes=new Set(this.get(xp,Qt,At.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const n=Z(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const e=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of e)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Z(n)}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=Zs(this),i=Do(void 0);try{return n()}finally{Zs(e),Do(i)}}get(n,e=Q1,i=At.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(N9))return n[N9](this);i=ch(i);const r=Zs(this),s=Do(void 0);try{if(!(i&At.SkipSelf)){let c=this.records.get(n);if(void 0===c){const l=function oF(t){return"function"==typeof t||"object"==typeof t&&t instanceof oe}(n)&&oh(n);c=l&&this.injectableDefInScope(l)?dl(Vp(n),gh):null,this.records.set(n,c)}if(null!=c)return this.hydrate(n,c)}return(i&At.Self?vh():this.parent).get(n,e=i&At.Optional&&e===Q1?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[ah]=a[ah]||[]).unshift(bi(n)),r)throw a;return function EV(t,n,e,i){const o=t[ah];throw n[R9]&&o.unshift(n[R9]),t.message=function kV(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let o=bi(n);if(Array.isArray(n))o=n.map(bi).join(" -> ");else if("object"==typeof n){let r=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];r.push(s+":"+("string"==typeof a?JSON.stringify(a):bi(a)))}o=`{${r.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${t.replace(SV,"\n ")}`}("\n"+t.message,o,e,i),t.ngTokenPath=o,t[ah]=null,t}(a,n,"R3InjectorError",this.source)}throw a}finally{Do(s),Zs(r)}}resolveInjectorInitializers(){const n=Z(null),e=Zs(this),i=Do(void 0);try{const r=this.get(ts,Qt,At.Self);for(const s of r)s()}finally{Zs(e),Do(i),Z(n)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(bi(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new j(205,!1)}processProvider(n){let e=Fa(n=st(n))?n:st(n&&n.provide);const i=function tF(t){return Pp(t)?dl(void 0,t.useValue):dl(i_(t),gh)}(n);if(!Fa(n)&&!0===n.multi){let o=this.records.get(e);o||(o=dl(void 0,gh,!0),o.factory=()=>Tp(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e){const i=Z(null);try{return e.value===gh&&(e.value=XV,e.value=e.factory()),"object"==typeof e.value&&e.value&&function iF(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}finally{Z(i)}}injectableDefInScope(n){if(!n.providedIn)return!1;const e=st(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function Vp(t){const n=oh(t),e=null!==n?n.factory:Va(t);if(null!==e)return e;if(t instanceof oe)throw new j(204,!1);if(t instanceof Function)return function eF(t){if(t.length>0)throw new j(204,!1);const e=function vV(t){return t&&(t[sh]||t[O9])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new j(204,!1)}function i_(t,n,e){let i;if(Fa(t)){const o=st(t);return Va(o)||Vp(o)}if(Pp(t))i=()=>st(t.useValue);else if(function n_(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...Tp(t.deps||[]));else if(function t_(t){return!(!t||!t.useExisting)}(t))i=()=>R(st(t.useExisting));else{const o=st(t&&(t.useClass||t.provide));if(!function nF(t){return!!t.deps}(t))return Va(o)||Vp(o);i=()=>new o(...Tp(t.deps))}return i}function dl(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function Fp(t,n){for(const e of t)Array.isArray(e)?Fp(e,n):e&&bp(e)?Fp(e.\u0275providers,n):n(e)}function Er(t,n){t instanceof ll&&t.assertNotDestroyed();const i=Zs(t),o=Do(void 0);try{return n()}finally{Zs(i),Do(o)}}function o_(){return void 0!==V9()||null!=function MV(){return rl}()}function _h(t){if(!o_())throw new j(-203,!1)}const Rp=Function;const Rn=0,be=1,Xe=2,ci=3,kr=4,Hi=5,ho=6,hl=7,Mn=8,li=9,ns=10,at=11,od=12,s_=13,pl=14,Ln=15,Ra=16,fl=17,Ss=18,ml=19,a_=20,Xs=21,yh=22,dr=23,Be=25,Hp=1,is=7,gl=9,Zn=10;var wh=function(t){return t[t.None=0]="None",t[t.HasTransplantedViews=2]="HasTransplantedViews",t}(wh||{});function ki(t){return Array.isArray(t)&&"object"==typeof t[Hp]}function to(t){return Array.isArray(t)&&!0===t[Hp]}function Bp(t){return!!(4&t.flags)}function La(t){return t.componentOffset>-1}function zh(t){return!(1&~t.flags)}function Ar(t){return!!t.template}function sd(t){return!!(512&t[Xe])}class gF{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function u_(t,n,e,i){null!==n?n.applyValueToInputSignal(n,i):t[e]=i}function ke(){return h_}function h_(t){return t.type.prototype.ngOnChanges&&(t.setInput=_F),vF}function vF(){const t=f_(this),n=t?.current;if(n){const e=t.previous;if(e===es)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function _F(t,n,e,i,o){const r=this.declaredInputs[i],s=f_(t)||function bF(t,n){return t[p_]=n}(t,{previous:es,current:null}),a=s.current||(s.current={}),c=s.previous,l=c[r];a[r]=new gF(l&&l.currentValue,e,c===es),u_(t,n,o,e)}ke.ngInherit=!0;const p_="__ngSimpleChanges__";function f_(t){return t[p_]||null}const os=function(t,n,e){},m_="svg";function Xt(t){for(;Array.isArray(t);)t=t[Rn];return t}function ad(t,n){return Xt(n[t])}function po(t,n){return Xt(n[t.index])}function cd(t,n){return t.data[n]}function Ha(t,n){return t[n]}function $o(t,n){const e=n[t];return ki(e)?e:e[Rn]}function Wp(t){return!(128&~t[Xe])}function ur(t,n){return null==n?null:t[n]}function v_(t){t[fl]=0}function __(t){1024&t[Xe]||(t[Xe]|=1024,Wp(t)&&Sh(t))}function ld(t){return!!(9216&t[Xe]||t[dr]?.dirty)}function Gp(t){t[ns].changeDetectionScheduler?.notify(7),64&t[Xe]&&(t[Xe]|=1024),ld(t)&&Sh(t)}function Sh(t){t[ns].changeDetectionScheduler?.notify(0);let n=Ts(t);for(;null!==n&&!(8192&n[Xe])&&(n[Xe]|=8192,Wp(n));)n=Ts(n)}function Th(t,n){if(!(256&~t[Xe]))throw new j(911,!1);null===t[Xs]&&(t[Xs]=[]),t[Xs].push(n)}function Ts(t){const n=t[ci];return to(n)?n[ci]:n}const ct={lFrame:A_(null),bindingsEnabled:!0,skipHydrationRootTNode:null};let y_=!1;function C_(){return ct.bindingsEnabled}function Ba(){return null!==ct.skipHydrationRootTNode}function G(){return ct.lFrame.lView}function Dt(){return ct.lFrame.tView}function T(t){return ct.lFrame.contextLView=t,t[Mn]}function M(t){return ct.lFrame.contextLView=null,t}function pn(){let t=w_();for(;null!==t&&64===t.type;)t=t.parent;return t}function w_(){return ct.lFrame.currentTNode}function Or(t,n){const e=ct.lFrame;e.currentTNode=t,e.isParent=n}function Jp(){return ct.lFrame.isParent}function Zp(){ct.lFrame.isParent=!1}function T_(){return y_}function M_(t){y_=t}function fo(){const t=ct.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function Ms(){return ct.lFrame.bindingIndex}function Pr(){return ct.lFrame.bindingIndex++}function Ds(t){const n=ct.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function PF(t,n){const e=ct.lFrame;e.bindingIndex=e.bindingRootIndex=t,Qp(n)}function Qp(t){ct.lFrame.currentDirectiveIndex=t}function Xp(t){const n=ct.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}function e8(){return ct.lFrame.currentQueryIndex}function Dh(t){ct.lFrame.currentQueryIndex=t}function NF(t){const n=t[be];return 2===n.type?n.declTNode:1===n.type?t[Hi]:null}function E_(t,n,e){if(e&At.SkipSelf){let o=n,r=t;for(;!(o=o.parent,null!==o||e&At.Host||(o=NF(r),null===o||(r=r[pl],10&o.type))););if(null===o)return!1;n=o,t=r}const i=ct.lFrame=k_();return i.currentTNode=n,i.lView=t,!0}function t8(t){const n=k_(),e=t[be];ct.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function k_(){const t=ct.lFrame,n=null===t?null:t.child;return null===n?A_(t):n}function A_(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function O_(){const t=ct.lFrame;return ct.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const P_=O_;function n8(){const t=O_();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Bi(){return ct.lFrame.selectedIndex}function ja(t){ct.lFrame.selectedIndex=t}function Dn(){const t=ct.lFrame;return cd(t.tView,t.selectedIndex)}function xh(){ct.lFrame.currentNamespace=m_}let N_=!0;function ud(){return N_}function rs(t){N_=t}function Eh(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[c]<0&&(t[fl]+=65536),(a>14>16&&(3&t[Xe])===n&&(t[Xe]+=16384,F_(a,r)):F_(a,r)}const vl=-1;class hd{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}const r8={};class Oh{constructor(n,e){this.injector=n,this.parentInjector=e}get(n,e,i){i=ch(i);const o=this.injector.get(n,r8,i);return o!==r8||e===r8?o:this.parentInjector.get(n,e,i)}}function s8(t){return t!==vl}function pd(t){return 32767&t}function fd(t,n){let e=function UF(t){return t>>16}(t),i=n;for(;e>0;)i=i[pl],e--;return i}let a8=!0;function Ph(t){const n=a8;return a8=t,n}const H_=255,B_=5;let WF=0;const ss={};function Ih(t,n){const e=j_(t,n);if(-1!==e)return e;const i=n[be];i.firstCreatePass&&(t.injectorIndex=n.length,c8(i.data,t),c8(n,null),c8(i.blueprint,null));const o=Nh(t,n),r=t.injectorIndex;if(s8(o)){const s=pd(o),a=fd(o,n),c=a[be].data;for(let l=0;l<8;l++)n[r+l]=a[s+l]|c[s+l]}return n[r+8]=o,r}function c8(t,n){t.push(0,0,0,0,0,0,0,0,n)}function j_(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function Nh(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,o=n;for(;null!==o;){if(i=K_(o),null===i)return vl;if(e++,o=o[pl],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return vl}function l8(t,n,e){!function GF(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Z1)&&(i=e[Z1]),null==i&&(i=e[Z1]=WF++);const o=i&H_;n.data[t+(o>>B_)]|=1<=0?n&H_:ZF:n}(e);if("function"==typeof r){if(!E_(n,t,i))return i&At.Host?$_(o,0,i):Y_(n,e,i,o);try{let s;if(s=r(i),null!=s||i&At.Optional)return s;wp()}finally{P_()}}else if("number"==typeof r){let s=null,a=j_(t,n),c=vl,l=i&At.Host?n[Ln][Hi]:null;for((-1===a||i&At.SkipSelf)&&(c=-1===a?Nh(t,n):n[a+8],c!==vl&&q_(i,!1)?(s=n[be],a=pd(c),n=fd(c,n)):a=-1);-1!==a;){const u=n[be];if(G_(r,a,u.data)){const p=KF(a,n,e,s,i,l);if(p!==ss)return p}c=n[a+8],c!==vl&&q_(i,n[be].data[a+8]===l)&&G_(r,a,n)?(s=u,a=pd(c),n=fd(c,n)):a=-1}}return o}function KF(t,n,e,i,o,r){const s=n[be],a=s.data[t+8],u=Vh(a,s,e,null==i?La(a)&&a8:i!=s&&!!(3&a.type),o&At.Host&&r===a);return null!==u?$a(n,s,u,a):ss}function Vh(t,n,e,i,o){const r=t.providerIndexes,s=n.data,a=1048575&r,c=t.directiveStart,u=r>>20,_=o?a+u:t.directiveEnd;for(let b=i?a:a+u;b<_;b++){const y=s[b];if(b=c&&y.type===e)return b}if(o){const b=s[c];if(b&&Ar(b)&&b.type===e)return c}return null}function $a(t,n,e,i){let o=t[e];const r=n.data;if(function jF(t){return t instanceof hd}(o)){const s=o;s.resolving&&function CV(t,n){throw n&&n.join(" > "),new j(-200,t)}(function on(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():vt(t)}(r[e]));const a=Ph(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?Do(s.injectImpl):null;E_(t,i,At.Default);try{o=t[e]=s.factory(void 0,r,t,i),n.firstCreatePass&&e>=i.directiveStart&&function HF(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:r}=n.type.prototype;if(i){const s=h_(n);(e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s)}o&&(e.preOrderHooks??=[]).push(0-t,o),r&&((e.preOrderHooks??=[]).push(t,r),(e.preOrderCheckHooks??=[]).push(t,r))}(e,r[e],n)}finally{null!==l&&Do(l),Ph(a),s.resolving=!1,P_()}}return o}function G_(t,n,e){return!!(e[n+(t>>B_)]&1<{const n=t.prototype.constructor,e=n[zs]||d8(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const r=o[zs]||d8(o);if(r&&r!==e)return r;o=Object.getPrototypeOf(o)}return r=>new r})}function d8(t){return ih(t)?()=>{const n=d8(st(t));return n&&n()}:Va(t)}function K_(t){const n=t[be],e=n.type;return 2===e?n.declTNode:1===e?t[Hi]:null}function eb(t,n=null,e=null,i){const o=tb(t,n,e,i);return o.resolveInjectorInitializers(),o}function tb(t,n=null,e=null,i,o=new Set){const r=[e||Qt,JV(t)];return i=i||("object"==typeof t?void 0:bi(t)),new ll(r,n||vh(),i||null,o)}class tn{static#e=this.THROW_IF_NOT_FOUND=Q1;static#t=this.NULL=new hh;static create(n,e){if(Array.isArray(n))return eb({name:""},e,n,"");{const i=n.name??"";return eb({name:i},n.parent,n.providers,i)}}static#n=this.\u0275prov=ae({token:tn,providedIn:"any",factory:()=>R(Y9)});static#i=this.__NG_ELEMENT_ID__=-1}new oe("").__NG_ELEMENT_ID__=t=>{const n=pn();if(null===n)throw new j(204,!1);if(2&n.type)return n.value;if(t&At.Optional)return null;throw new j(204,!1)};function h8(t){return t.ngOriginalError}class hr{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&h8(n);for(;e&&h8(e);)e=h8(e);return e||null}}const ib=new oe("",{providedIn:"root",factory:()=>W(hr).handleError.bind(void 0)});let yl=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=cR;static#t=this.__NG_ENV_ID__=e=>e}return t})();class aR extends yl{constructor(n){super(),this._lView=n}onDestroy(n){return Th(this._lView,n),()=>function qp(t,n){if(null===t[Xs])return;const e=t[Xs].indexOf(n);-1!==e&&t[Xs].splice(e,1)}(this._lView,n)}}function cR(){return new aR(G())}function lR(){return Cl(pn(),G())}function Cl(t,n){return new Te(po(t,n))}let Te=(()=>{class t{constructor(e){this.nativeElement=e}static#e=this.__NG_ELEMENT_ID__=lR}return t})();function rb(t){return t instanceof Te?t.nativeElement:t}let Ya=(()=>{class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new rt(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const e=this.taskId++;return this.pendingTasks.add(e),e}remove(e){this.pendingTasks.delete(e),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>new t})}return t})();const H=class dR extends N{constructor(n=!1){super(),this.destroyRef=void 0,this.pendingTasks=void 0,this.__isAsync=n,o_()&&(this.destroyRef=W(yl,{optional:!0})??void 0,this.pendingTasks=W(Ya,{optional:!0})??void 0)}emit(n){const e=Z(null);try{super.next(n)}finally{Z(e)}}subscribe(n,e,i){let o=n,r=e||(()=>null),s=i;if(n&&"object"==typeof n){const c=n;o=c.next?.bind(c),r=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(r=this.wrapInTimeout(r),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));const a=super.subscribe({next:o,error:r,complete:s});return n instanceof Ft&&n.add(a),a}wrapInTimeout(n){return e=>{const i=this.pendingTasks?.add();setTimeout(()=>{n(e),void 0!==i&&this.pendingTasks?.remove(i)})}}};function uR(){return this._results[Symbol.iterator]()}class Ua{static#e=Symbol.iterator;get changes(){return this._changes??=new H}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const e=Ua.prototype;e[Symbol.iterator]||(e[Symbol.iterator]=uR)}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){this.dirty=!1;const i=function xo(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function PV(t,n,e){if(t.length!==n.length)return!1;for(let i=0;iPR}),PR="ng",Tb=new oe(""),Ir=new oe("",{providedIn:"platform",factory:()=>"unknown"}),ta=new oe(""),vd=new oe("",{providedIn:"root",factory:()=>ea().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Mb=()=>null;function w8(t,n,e=!1){return Mb(t,n,e)}const Ib=new oe("",{providedIn:"root",factory:()=>!1});let Kh,Jh;function D8(){if(void 0===Kh&&(Kh=null,Cn.trustedTypes))try{Kh=Cn.trustedTypes.createPolicy("angular",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Kh}function Ml(t){return D8()?.createHTML(t)||t}function x8(){if(void 0===Jh&&(Jh=null,Cn.trustedTypes))try{Jh=Cn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return Jh}function Vb(t){return x8()?.createHTML(t)||t}function Rb(t){return x8()?.createScriptURL(t)||t}class Wa{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${D9})`}}class qR extends Wa{getTypeName(){return"HTML"}}class KR extends Wa{getTypeName(){return"Style"}}class JR extends Wa{getTypeName(){return"Script"}}class ZR extends Wa{getTypeName(){return"URL"}}class QR extends Wa{getTypeName(){return"ResourceURL"}}function Yo(t){return t instanceof Wa?t.changingThisBreaksApplicationSecurity:t}function as(t,n){const e=function XR(t){return t instanceof Wa&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${D9})`)}return e===n}class rL{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(Ml(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class sL{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=Ml(n),e}}const cL=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Zh(t){return(t=String(t)).match(cL)?t:"unsafe:"+t}function xs(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function Sd(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const Hb=xs("area,br,col,hr,img,wbr"),Bb=xs("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),jb=xs("rp,rt"),E8=Sd(Hb,Sd(Bb,xs("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Sd(jb,xs("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Sd(jb,Bb)),k8=xs("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),$b=Sd(k8,xs("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),xs("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),lL=xs("script,style,template");class dL{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0,o=[];for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)o.push(e),e=pL(e);else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let r=hL(e);if(r){e=r;break}e=o.pop()}return this.buf.join("")}startElement(n){const e=Yb(n).toLowerCase();if(!E8.hasOwnProperty(e))return this.sanitizedSomething=!0,!lL.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=Yb(n).toLowerCase();E8.hasOwnProperty(e)&&!Hb.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(Wb(n))}}function hL(t){const n=t.nextSibling;if(n&&t!==n.previousSibling)throw Ub(n);return n}function pL(t){const n=t.firstChild;if(n&&function uL(t,n){return(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}(t,n))throw Ub(n);return n}function Yb(t){const n=t.nodeName;return"string"==typeof n?n:"FORM"}function Ub(t){return new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`)}const fL=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,mL=/([^\#-~ |!])/g;function Wb(t){return t.replace(/&/g,"&").replace(fL,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(mL,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let Qh;function Gb(t,n){let e=null;try{Qh=Qh||function Lb(t){const n=new sL(t);return function aL(){try{return!!(new window.DOMParser).parseFromString(Ml(""),"text/html")}catch{return!1}}()?new rL(n):n}(t);let i=n?String(n):"";e=Qh.getInertBodyElement(i);let o=5,r=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=r,r=e.innerHTML,e=Qh.getInertBodyElement(i)}while(i!==r);return Ml((new dL).sanitizeChildren(A8(e)||e))}finally{if(e){const i=A8(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function A8(t){return"content"in t&&function gL(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var Uo=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}(Uo||{});function Wn(t){const n=Td();return n?Vb(n.sanitize(Uo.HTML,t)||""):as(t,"HTML")?Vb(Yo(t)):Gb(ea(),vt(t))}function Ot(t){const n=Td();return n?n.sanitize(Uo.URL,t)||"":as(t,"URL")?Yo(t):Zh(vt(t))}function qb(t){const n=Td();if(n)return Rb(n.sanitize(Uo.RESOURCE_URL,t)||"");if(as(t,"ResourceURL"))return Rb(Yo(t));throw new j(904,!1)}function O8(t){return function GR(t){return D8()?.createScriptURL(t)||t}(t[0])}function Td(){const t=G();return t&&t[ns].sanitizer}const CL=/^>|^->||--!>|)/g,zL="\u200b$1\u200b";function Wo(t){return t instanceof Function?t():t}function ko(t){return"browser"===(t??W(tn)).get(Ir)}var na=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}(na||{});let N8;function V8(t,n){return N8(t,n)}function xl(t,n,e,i,o){if(null!=i){let r,s=!1;to(i)?r=i:ki(i)&&(s=!0,i=i[Rn]);const a=Xt(i);0===t&&null!==e?null==o?cy(n,e,a):Ga(n,e,a,o||null,!0):1===t&&null!==e?Ga(n,e,a,o||null,!0):2===t?function Dd(t,n,e){const i=i4(t,n);i&&function BL(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,a,s):3===t&&n.destroyNode(a),null!=r&&function YL(t,n,e,i,o){const r=e[is];r!==Xt(e)&&xl(n,t,i,r,o);for(let a=Zn;an.replace(wL,zL))}(n))}function t4(t,n,e){return t.createElement(n,e)}function ry(t,n){n[ns].changeDetectionScheduler?.notify(8),r4(t,n,n[at],2,null,null)}function sy(t,n){const e=t[gl],i=n[ci];(ki(i)||n[Ln]!==i[ci][Ln])&&(t[Xe]|=wh.HasTransplantedViews),null===e?t[gl]=[n]:e.push(n)}function L8(t,n){const e=t[gl],i=e.indexOf(n);e.splice(i,1)}function Md(t,n){if(t.length<=Zn)return;const e=Zn+n,i=t[e];if(i){const o=i[Ra];null!==o&&o!==t&&L8(o,i),n>0&&(t[e-1][kr]=i[kr]);const r=dh(t,Zn+n);!function NL(t,n){ry(t,n),n[Rn]=null,n[Hi]=null}(i[be],i);const s=r[Ss];null!==s&&s.detachView(r[be]),i[ci]=null,i[kr]=null,i[Xe]&=-129}return i}function n4(t,n){if(!(256&n[Xe])){const e=n[at];e.destroyNode&&r4(t,n,e,3,null,null),function FL(t){let n=t[od];if(!n)return H8(t[be],t);for(;n;){let e=null;if(ki(n))e=n[od];else{const i=n[Zn];i&&(e=i)}if(!e){for(;n&&!n[kr]&&n!==t;)ki(n)&&H8(n[be],n),n=n[ci];null===n&&(n=t),ki(n)&&H8(n[be],n),e=n&&n[kr]}n=e}}(n)}}function H8(t,n){if(256&n[Xe])return;const e=Z(null);try{n[Xe]&=-129,n[Xe]|=256,n[dr]&&ue(n[dr]),function HL(t,n){let e;if(null!=t&&null!=(e=t.destroyHooks))for(let i=0;i=0?i[s]():i[-s].unsubscribe(),r+=2}else e[r].call(i[e[r+1]]);null!==i&&(n[hl]=null);const o=n[Xs];if(null!==o){n[Xs]=null;for(let r=0;r-1){const{encapsulation:r}=t.data[i.directiveStart+o];if(r===Dr.None||r===Dr.Emulated)return null}return po(i,e)}}(t,n.parent,e)}function Ga(t,n,e,i,o){t.insertBefore(n,e,i,o)}function cy(t,n,e){t.appendChild(n,e)}function ly(t,n,e,i,o){null!==i?Ga(t,n,e,i,o):cy(t,n,e)}function i4(t,n){return t.parentNode(n)}function dy(t,n,e){return hy(t,n,e)}let j8,hy=function uy(t,n,e){return 40&t.type?po(t,e):null};function o4(t,n,e,i){const o=B8(t,i,n),r=n[at],a=dy(i.parent||n[Hi],i,n);if(null!=o)if(Array.isArray(e))for(let c=0;cBe&&by(t,n,Be,!1),os(s?2:0,o),e(i,o)}finally{ja(r),os(s?3:1,o)}}function G8(t,n,e){if(Bp(n)){const i=Z(null);try{const r=n.directiveEnd;for(let s=n.directiveStart;snull;function Sy(t,n,e,i,o){for(let r in n){if(!n.hasOwnProperty(r))continue;const s=n[r];if(void 0===s)continue;i??={};let a,c=cl.None;Array.isArray(s)?(a=s[0],c=s[1]):a=s;let l=r;if(null!==o){if(!o.hasOwnProperty(r))continue;l=o[r]}0===t?Ty(i,e,l,a,c):Ty(i,e,l,a)}return i}function Ty(t,n,e,i,o){let r;t.hasOwnProperty(e)?(r=t[e]).push(n,i):r=t[e]=[n,i],void 0!==o&&r.push(o)}function Ao(t,n,e,i,o,r,s,a){const c=po(n,e);let u,l=n.inputs;!a&&null!=l&&(u=l[i])?(tf(t,e,u,i,o),La(n)&&function iH(t,n){const e=$o(n,t);16&e[Xe]||(e[Xe]|=64)}(e,n.index)):3&n.type&&(i=function nH(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),o=null!=s?s(o,n.value||"",i):o,r.setProperty(c,i,o))}function Z8(t,n,e,i){if(C_()){const o=null===i?null:{"":-1},r=function lH(t,n){const e=t.directiveRegistry;let i=null,o=null;if(e)for(let r=0;r0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(s)!=a&&s.push(a),s.push(e,i,r)}}(t,n,i,xd(t,e,o.hostVars,_t),o)}function cs(t,n,e,i,o,r){const s=po(t,n);!function X8(t,n,e,i,o,r,s){if(null==r)t.removeAttribute(n,o,e);else{const a=null==s?vt(r):s(r,i||"",o);t.setAttribute(n,o,a,e)}}(n[at],s,r,t.value,e,i,o)}function mH(t,n,e,i,o,r){const s=r[n];if(null!==s)for(let a=0;a0&&(e[o-1][kr]=n),i{Sh(t.lView)},consumerOnSignalRead(){this.lView[dr]=this}},TH={...te,consumerIsAlwaysLive:!0,consumerMarkedDirty:t=>{let n=Ts(t.lView);for(;n&&!Vy(n[be]);)n=Ts(n);n&&__(n)},consumerOnSignalRead(){this.lView[dr]=this}};function Vy(t){return 2!==t.type}const MH=100;function l4(t,n=!0,e=0){const i=t[ns],o=i.rendererFactory;o.begin?.();try{!function DH(t,n){const e=T_();try{M_(!0),sf(t,n);let i=0;for(;ld(t);){if(i===MH)throw new j(103,!1);i++,sf(t,1)}}finally{M_(e)}}(t,e)}catch(s){throw n&&c4(t,s),s}finally{o.end?.(),i.inlineEffectRunner?.flush()}}function xH(t,n,e,i){const o=n[Xe];if(!(256&~o))return;n[ns].inlineEffectRunner?.flush(),t8(n);let a=!0,c=null,l=null;Vy(t)?(l=function yH(t){return t[dr]??function CH(t){const n=Ny.pop()??Object.create(zH);return n.lView=t,n}(t)}(n),c=L(l)):null===function Ne(){return $}()?(a=!1,l=function SH(t){const n=t[dr]??Object.create(TH);return n.lView=t,n}(n),c=L(l)):n[dr]&&(ue(n[dr]),n[dr]=null);try{v_(n),function D_(t){return ct.lFrame.bindingIndex=t}(t.bindingStartIndex),null!==e&&Cy(t,n,e,2,i);const u=!(3&~o);if(u){const b=t.preOrderCheckHooks;null!==b&&kh(n,b,null)}else{const b=t.preOrderHooks;null!==b&&Ah(n,b,0,null),i8(n,0)}if(function EH(t){for(let n=mb(t);null!==n;n=gb(n)){if(!(n[Xe]&wh.HasTransplantedViews))continue;const e=n[gl];for(let i=0;i-1&&(Md(n,i),dh(e,i))}this._attachedToViewContainer=!1}n4(this._lView[be],this._lView)}onDestroy(n){Th(this._lView,n)}markForCheck(){kd(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[Xe]&=-129}reattach(){Gp(this._lView),this._lView[Xe]|=128}detectChanges(){this._lView[Xe]|=1024,l4(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new j(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;const n=sd(this._lView),e=this._lView[Ra];null!==e&&!n&&L8(e,this._lView),ry(this._lView[be],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new j(902,!1);this._appRef=n;const e=sd(this._lView),i=this._lView[Ra];null!==i&&!e&&sy(i,this._lView),Gp(this._lView)}}let Gt=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=PH}return t})();const AH=Gt,OH=class extends AH{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e)}createEmbeddedViewImpl(n,e,i){const o=kl(this._declarationLView,this._declarationTContainer,n,{embeddedViewInjector:e,dehydratedView:i});return new Ad(o)}};function PH(){return d4(pn(),G())}function d4(t,n){return 4&t.type?new OH(n,t,Cl(t,n)):null}let aC=()=>null;function Za(t,n){return aC(t,n)}class Pl{}const Ld=new oe("",{providedIn:"root",factory:()=>!1}),cC=new oe("");class TB{}class lC{}class DB{resolveComponentFactory(n){throw function MB(t){const n=Error(`No component factory found for ${bi(t)}.`);return n.ngComponent=t,n}(n)}}class Il{static#e=this.NULL=new DB}class Qa{}let $t=(()=>{class t{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function xB(){const t=G(),e=$o(pn().index,t);return(ki(e)?e:t)[at]}()}return t})(),EB=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>null})}return t})();const uC=new Set;function mo(t){uC.has(t)||(uC.add(t),performance?.mark?.("mark_feature_usage",{detail:{feature:t}}))}function hC(t){let n=!0;return setTimeout(()=>{n&&(n=!1,t())}),"function"==typeof Cn.requestAnimationFrame&&Cn.requestAnimationFrame(()=>{n&&(n=!1,t())}),()=>{n=!1}}function pC(t){let n=!0;return queueMicrotask(()=>{n&&t()}),()=>{n=!1}}function fC(...t){}class De{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new H(!1),this.onMicrotaskEmpty=new H(!1),this.onStable=new H(!1),this.onError=new H(!1),typeof Zone>"u")throw new j(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.callbackScheduled=!1,function OB(t){const n=()=>{!function AB(t){t.isCheckStableRunning||t.callbackScheduled||(t.callbackScheduled=!0,Zone.root.run(()=>{hC(()=>{t.callbackScheduled=!1,_f(t),t.isCheckStableRunning=!0,vf(t),t.isCheckStableRunning=!1})}),_f(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,r,s,a)=>{if(function PB(t){return vC(t,"__ignore_ng_zone__")}(a))return e.invokeTask(o,r,s,a);try{return mC(t),e.invokeTask(o,r,s,a)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===r.type||t.shouldCoalesceRunChangeDetection)&&n(),gC(t)}},onInvoke:(e,i,o,r,s,a,c)=>{try{return mC(t),e.invoke(o,r,s,a,c)}finally{t.shouldCoalesceRunChangeDetection&&!t.callbackScheduled&&!function IB(t){return vC(t,"__scheduler_tick__")}(a)&&n(),gC(t)}},onHasTask:(e,i,o,r)=>{e.hasTask(o,r),i===o&&("microTask"==r.change?(t._hasPendingMicrotasks=r.microTask,_f(t),vf(t)):"macroTask"==r.change&&(t.hasPendingMacrotasks=r.macroTask))},onHandleError:(e,i,o,r)=>(e.handleError(o,r),t.runOutsideAngular(()=>t.onError.emit(r)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!De.isInAngularZone())throw new j(909,!1)}static assertNotInAngularZone(){if(De.isInAngularZone())throw new j(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const r=this._inner,s=r.scheduleEventTask("NgZoneEvent: "+o,n,kB,fC,fC);try{return r.runTask(s,e,i)}finally{r.cancelTask(s)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const kB={};function vf(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function _f(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&!0===t.callbackScheduled)}function mC(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function gC(t){t._nesting--,vf(t)}class bf{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new H,this.onMicrotaskEmpty=new H,this.onStable=new H,this.onError=new H}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,o){return n.apply(e,i)}}function vC(t,n){return!(!Array.isArray(t)||1!==t.length)&&!0===t[0]?.data?.[n]}var ia=function(t){return t[t.EarlyRead=0]="EarlyRead",t[t.Write=1]="Write",t[t.MixedReadWrite=2]="MixedReadWrite",t[t.Read=3]="Read",t}(ia||{});const _C={destroy(){}};function Xa(t,n){!n&&_h();const e=n?.injector??W(tn);if(!ko(e))return _C;mo("NgAfterNextRender");const i=e.get(Hd),o=i.handler??=new CC,r=n?.phase??ia.MixedReadWrite,s=()=>{o.unregister(c),a()},a=e.get(yl).onDestroy(s),c=Er(e,()=>new yC(r,()=>{s(),t()}));return o.register(c),{destroy:s}}class yC{constructor(n,e){this.phase=n,this.callbackFn=e,this.zone=W(De),this.errorHandler=W(hr,{optional:!0}),W(Pl,{optional:!0})?.notify(6)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class CC{constructor(){this.executingCallbacks=!1,this.buckets={[ia.EarlyRead]:new Set,[ia.Write]:new Set,[ia.MixedReadWrite]:new Set,[ia.Read]:new Set},this.deferredCallbacks=new Set}register(n){(this.executingCallbacks?this.deferredCallbacks:this.buckets[n.phase]).add(n)}unregister(n){this.buckets[n.phase].delete(n),this.deferredCallbacks.delete(n)}execute(){this.executingCallbacks=!0;for(const n of Object.values(this.buckets))for(const e of n)e.invoke();this.executingCallbacks=!1;for(const n of this.deferredCallbacks)this.buckets[n.phase].add(n);this.deferredCallbacks.clear()}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let Hd=(()=>{class t{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const e=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of e)i()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>new t})}return t})();function v4(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,r=0;if(null!==n)for(let s=0;s0&&vy(t,e,r.join(" "))}}(b,Ge,z,i),void 0!==e&&function UB(t,n,e){const i=t.projection=[];for(let o=0;o{class t{static#e=this.__NG_ELEMENT_ID__=GB}return t})();function GB(){return xC(pn(),G())}const qB=Gn,MC=class extends qB{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Cl(this._hostTNode,this._hostLView)}get injector(){return new wi(this._hostTNode,this._hostLView)}get parentInjector(){const n=Nh(this._hostTNode,this._hostLView);if(s8(n)){const e=fd(n,this._hostLView),i=pd(n);return new wi(e[be].data[i+8],e)}return new wi(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=DC(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-Zn}createEmbeddedView(n,e,i){let o,r;"number"==typeof i?o=i:null!=i&&(o=i.index,r=i.injector);const s=Za(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(e||{},r,s);return this.insertImpl(a,o,Ka(this._hostTNode,s)),a}createComponent(n,e,i,o,r){const s=n&&!function id(t){return"function"==typeof t}(n);let a;if(s)a=e;else{const y=e||{};a=y.index,i=y.injector,o=y.projectableNodes,r=y.environmentInjector||y.ngModuleRef}const c=s?n:new $d(xt(n)),l=i||this.parentInjector;if(!r&&null==c.ngModule){const z=(s?l:this.parentInjector).get(Li,null);z&&(r=z)}const u=xt(c.componentType??{}),p=Za(this._lContainer,u?.id??null),b=c.create(l,o,p?.firstChild??null,r);return this.insertImpl(b.hostView,a,Ka(this._hostTNode,p)),b}insert(n,e){return this.insertImpl(n,e,!0)}insertImpl(n,e,i){const o=n._lView;if(function zF(t){return to(t[ci])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const c=o[ci],l=new MC(c,c[Hi],c[ci]);l.detach(l.indexOf(n))}}const r=this._adjustIndex(e),s=this._lContainer;return Al(s,o,r,i),n.attachToViewContainerRef(),B9(zf(s),r,n),n}move(n,e){return this.insert(n,e)}indexOf(n){const e=DC(this._lContainer);return null!==e?e.indexOf(n):-1}remove(n){const e=this._adjustIndex(n,-1),i=Md(this._lContainer,e);i&&(dh(zf(this._lContainer),e),n4(i[be],i))}detach(n){const e=this._adjustIndex(n,-1),i=Md(this._lContainer,e);return i&&null!=dh(zf(this._lContainer),e)?new Ad(i):null}_adjustIndex(n,e=0){return n??this.length+e}};function DC(t){return t[8]}function zf(t){return t[8]||(t[8]=[])}function xC(t,n){let e;const i=n[t.index];return to(i)?e=i:(e=xy(i,n,null,t),n[t.index]=e,a4(n,e)),EC(e,n,t,i),new MC(e,t,n)}let EC=function AC(t,n,e,i){if(t[is])return;let o;o=8&e.type?Xt(i):function KB(t,n){const e=t[at],i=e.createComment(""),o=po(n,t);return Ga(e,i4(e,o),i,function jL(t,n){return t.nextSibling(n)}(e,o),!1),i}(n,e),t[is]=o},Sf=()=>!1;class Tf{constructor(n){this.queryList=n,this.matches=null}clone(){return new Tf(this.queryList)}setDirty(){this.queryList.setDirty()}}class Mf{constructor(n=[]){this.queries=n}createEmbeddedView(n){const e=n.queries;if(null!==e){const i=null!==n.contentQueries?n.contentQueries[0]:e.length,o=[];for(let r=0;rn.trim())}(n):n}}class Df{constructor(n=[]){this.queries=n}elementStart(n,e){for(let i=0;i0)i.push(s[a/2]);else{const l=r[a+1],u=n[-c];for(let p=Zn;p(Re(n),n.value);return e[ce]=n,e}(t),i=e[ce];return n?.equal&&(i.equal=n.equal),e.set=o=>Vt(i,o),e.update=o=>function vi(t,n){ee()||ve(),Vt(t,n(t.value))}(i,o),e.asReadonly=LC.bind(e),e}function LC(){const t=this[ce];if(void 0===t.readonlyFn){const n=()=>this();n[ce]=t,t.readonlyFn=n}return t.readonlyFn}function HC(t){return _4(t)&&"function"==typeof t.set}function mt(t){let n=function ZC(t){return Object.getPrototypeOf(t.prototype).constructor}(t.type),e=!0;const i=[t];for(;n;){let o;if(Ar(t))o=n.\u0275cmp||n.\u0275dir;else{if(n.\u0275cmp)throw new j(903,!1);o=n.\u0275dir}if(o){if(e){i.push(o);const s=t;s.inputs=y4(t.inputs),s.inputTransforms=y4(t.inputTransforms),s.declaredInputs=y4(t.declaredInputs),s.outputs=y4(t.outputs);const a=o.hostBindings;a&&_j(t,a);const c=o.viewQuery,l=o.contentQueries;if(c&&gj(t,c),l&&vj(t,l),fj(t,o),uV(t.outputs,o.outputs),Ar(o)&&o.data.animation){const u=t.data;u.animation=(u.animation||[]).concat(o.data.animation)}}const r=o.features;if(r)for(let s=0;s=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=td(o.hostAttrs,e=td(e,o.hostAttrs))}}(i)}function fj(t,n){for(const e in n.inputs){if(!n.inputs.hasOwnProperty(e)||t.inputs.hasOwnProperty(e))continue;const i=n.inputs[e];if(void 0!==i&&(t.inputs[e]=i,t.declaredInputs[e]=n.declaredInputs[e],null!==n.inputTransforms)){const o=Array.isArray(i)?i[0]:i;if(!n.inputTransforms.hasOwnProperty(o))continue;t.inputTransforms??={},t.inputTransforms[o]=n.inputTransforms[o]}}}function y4(t){return t===es?{}:t===Qt?[]:t}function gj(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function vj(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,r)=>{n(i,o,r),e(i,o,r)}:n}function _j(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function je(t){const n=t.inputConfig,e={};for(const i in n)if(n.hasOwnProperty(i)){const o=n[i];Array.isArray(o)&&o[3]&&(e[i]=o[3])}t.inputTransforms=e}class ec{}class tw{}class If extends ec{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new SC(this);const o=eo(n);this._bootstrapComponents=Wo(o.bootstrap),this._r3Injector=tb(n,e,[{provide:ec,useValue:this},{provide:Il,useValue:this.componentFactoryResolver},...i],bi(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class Nf extends tw{constructor(n){super(),this.moduleType=n}create(n){return new If(this.moduleType,n,[])}}class nw extends ec{constructor(n){super(),this.componentFactoryResolver=new SC(this),this.instance=null;const e=new ll([...n.providers,{provide:ec,useValue:this},{provide:Il,useValue:this.componentFactoryResolver}],n.parent||vh(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function C4(t,n,e=null){return new nw({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}function w4(t){return!!Vf(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function Vf(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function ls(t,n,e){return t[n]=e}function Qn(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function tc(t,n,e,i){const o=Qn(t,n,e);return Qn(t,n+1,i)||o}function z4(t,n,e,i,o){const r=tc(t,n,e,i);return Qn(t,n+2,o)||r}function Wd(t,n,e,i,o,r,s,a,c,l){const u=e+Be,p=n.firstCreatePass?function kj(t,n,e,i,o,r,s,a,c){const l=n.consts,u=qa(n,t,4,s||null,a||null);Z8(n,e,u,ur(l,c)),Eh(n,u);const p=u.tView=J8(2,u,i,o,r,n.directiveRegistry,n.pipeRegistry,null,n.schemas,l,null);return null!==n.queries&&(n.queries.template(n,u),p.queries=n.queries.embeddedTView(u)),u}(u,n,t,i,o,r,s,a,c):n.data[u];Or(p,!1);const _=iw(n,t,p,e);ud()&&o4(n,t,_,p),no(_,t);const b=xy(_,t,_,p);return t[u]=b,a4(t,b),function kC(t,n,e){return Sf(t,n,e)}(b,p,t),zh(p)&&q8(n,t,p),null!=c&&K8(t,p,l),p}function w(t,n,e,i,o,r,s,a){const c=G(),l=Dt();return Wd(c,l,t,n,e,i,o,ur(l.consts,r),s,a),w}let iw=function ow(t,n,e,i){return rs(!0),n[at].createComment("")};function Pt(t,n,e,i){const o=G();return Qn(o,Pr(),n)&&(Dt(),cs(Dn(),o,t,n,e,i)),Pt}function E4(t,n){return t<<17|n<<2}function aa(t){return t>>17&32767}function Wf(t){return 2|t}function ic(t){return(131068&t)>>2}function Gf(t,n){return-131069&t|n<<2}function qf(t){return 1|t}function Nw(t,n,e,i){const o=t[e+1],r=null===n;let s=i?aa(o):ic(o),a=!1;for(;0!==s&&(!1===a||r);){const l=t[s+1];m$(t[s],n)&&(a=!0,t[s+1]=i?qf(l):Wf(l)),s=i?aa(l):ic(l)}a&&(t[e+1]=i?Wf(o):qf(o))}function m$(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&al(t,n)>=0}const Si={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Vw(t){return t.substring(Si.key,Si.keyEnd)}function g$(t){return t.substring(Si.value,Si.valueEnd)}function Fw(t,n){const e=Si.textEnd;return e===n?-1:(n=Si.keyEnd=function b$(t,n,e){for(;n32;)n++;return n}(t,Si.key=n,e),Ql(t,n,e))}function Rw(t,n){const e=Si.textEnd;let i=Si.key=Ql(t,n,e);return e===i?-1:(i=Si.keyEnd=function y$(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=Hw(t,i,e),i=Si.value=Ql(t,i,e),i=Si.valueEnd=function C$(t,n,e){let i=-1,o=-1,r=-1,s=n,a=s;for(;s32&&(a=s),r=o,o=i,i=-33&c}return a}(t,i,e),Hw(t,i,e))}function Lw(t){Si.key=0,Si.keyEnd=0,Si.value=0,Si.valueEnd=0,Si.textEnd=t.length}function Ql(t,n,e){for(;n=0;e=Rw(n,e))Yw(t,Vw(n),g$(n))}function k4(t){Vr(x$,ds,t,!0)}function ds(t,n){for(let e=function v$(t){return Lw(t),Fw(t,Ql(t,0,Si.textEnd))}(n);e>=0;e=Fw(n,e))jo(t,Vw(n),!0)}function Nr(t,n,e,i){const o=G(),r=Dt(),s=Ds(2);r.firstUpdatePass&&$w(r,t,s,i),n!==_t&&Qn(o,s,n)&&Uw(r,r.data[Bi()],o,o[at],t,o[s+1]=function k$(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=bi(Yo(t)))),t}(n,e),i,s)}function Vr(t,n,e,i){const o=Dt(),r=Ds(2);o.firstUpdatePass&&$w(o,null,r,i);const s=G();if(e!==_t&&Qn(s,r,e)){const a=o.data[Bi()];if(Gw(a,i)&&!jw(o,r)){let c=i?a.classesWithoutHost:a.stylesWithoutHost;null!==c&&(e=pp(c,e||"")),Kf(o,a,s,e,i)}else!function E$(t,n,e,i,o,r,s,a){o===_t&&(o=Qt);let c=0,l=0,u=0=t.expandoStartIndex}function $w(t,n,e,i){const o=t.data;if(null===o[e+1]){const r=o[Bi()],s=jw(t,e);Gw(r,i)&&null===n&&!s&&(n=!1),n=function z$(t,n,e,i){const o=Xp(t);let r=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=Jd(e=Jf(null,t,n,e,i),n.attrs,i),r=null);else{const s=n.directiveStylingLast;if(-1===s||t[s]!==o)if(e=Jf(o,t,n,e,i),null===r){let c=function S$(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==ic(i))return t[aa(i)]}(t,n,i);void 0!==c&&Array.isArray(c)&&(c=Jf(null,t,n,c[1],i),c=Jd(c,n.attrs,i),function T$(t,n,e,i){t[aa(e?n.classBindings:n.styleBindings)]=i}(t,n,i,c))}else r=function M$(t,n,e){let i;const o=n.directiveEnd;for(let r=1+n.directiveStylingLast;r0)&&(l=!0)):u=e,o)if(0!==c){const _=aa(t[a+1]);t[i+1]=E4(_,a),0!==_&&(t[_+1]=Gf(t[_+1],i)),t[a+1]=function u$(t,n){return 131071&t|n<<17}(t[a+1],i)}else t[i+1]=E4(a,0),0!==a&&(t[a+1]=Gf(t[a+1],i)),a=i;else t[i+1]=E4(c,0),0===a?a=i:t[c+1]=Gf(t[c+1],i),c=i;l&&(t[i+1]=Wf(t[i+1])),Nw(t,u,i,!0),Nw(t,u,i,!1),function f$(t,n,e,i,o){const r=o?t.residualClasses:t.residualStyles;null!=r&&"string"==typeof n&&al(r,n)>=0&&(e[i+1]=qf(e[i+1]))}(n,u,t,i,r),s=E4(a,c),r?n.classBindings=s:n.styleBindings=s}(o,r,n,e,s,i)}}function Jf(t,n,e,i,o){let r=null;const s=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const c=t[o],l=Array.isArray(c),u=l?c[1]:c,p=null===u;let _=e[o+1];_===_t&&(_=p?Qt:void 0);let b=p?Dp(_,i):u===i?_:void 0;if(l&&!A4(b)&&(b=Dp(c,i)),A4(b)&&(a=b,s))return a;const y=t[o+1];o=s?aa(y):ic(y)}if(null!==n){let c=r?n.residualClasses:n.residualStyles;null!=c&&(a=Dp(c,i))}return a}function A4(t){return void 0!==t}function Gw(t,n){return!!(t.flags&(n?8:16))}class B${destroy(n){}updateValue(n,e){}swap(n,e){const i=Math.min(n,e),o=Math.max(n,e),r=this.detach(o);if(o-i>1){const s=this.detach(i);this.attach(i,r),this.attach(o,s)}else this.attach(i,r)}move(n,e){this.attach(e,this.detach(n))}}function Zf(t,n,e,i,o){return t===e&&Object.is(n,i)?1:Object.is(o(t,n),o(e,i))?-1:0}function Qf(t,n,e,i){return!(void 0===n||!n.has(i)||(t.attach(e,n.get(i)),n.delete(i),0))}function qw(t,n,e,i,o){if(Qf(t,n,i,e(i,o)))t.updateValue(i,o);else{const r=t.create(i,o);t.attach(i,r)}}function Kw(t,n,e,i){const o=new Set;for(let r=n;r<=e;r++)o.add(i(r,t.at(r)));return o}class Jw{constructor(){this.kvMap=new Map,this._vMap=void 0}has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;const e=this.kvMap.get(n);return void 0!==this._vMap&&this._vMap.has(e)?(this.kvMap.set(n,this._vMap.get(e)),this._vMap.delete(e)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,e){if(this.kvMap.has(n)){let i=this.kvMap.get(n);void 0===this._vMap&&(this._vMap=new Map);const o=this._vMap;for(;o.has(i);)i=o.get(i);o.set(i,e)}else this.kvMap.set(n,e)}forEach(n){for(let[e,i]of this.kvMap)if(n(i,e),void 0!==this._vMap){const o=this._vMap;for(;o.has(i);)i=o.get(i),n(i,e)}}}function he(t,n){mo("NgControlFlow");const e=G(),i=Pr(),o=e[i]!==_t?e[i]:-1,r=-1!==o?O4(e,Be+o):void 0;if(Qn(e,i,t)){const a=Z(null);try{if(void 0!==r&&rf(r,0),-1!==t){const c=Be+t,l=O4(e,c),u=Xf(e[be],c),p=Za(l,u.tView.ssrId);Al(l,kl(e,u,n,{dehydratedView:p}),0,Ka(u,p))}}finally{Z(a)}}else if(void 0!==r){const a=Py(r,0);void 0!==a&&(a[Mn]=n)}}class $${constructor(n,e,i){this.lContainer=n,this.$implicit=e,this.$index=i}get $count(){return this.lContainer.length-Zn}}function Zw(t){return t}function fr(t,n){return n}class Y${constructor(n,e,i){this.hasEmptyBlock=n,this.trackByFn=e,this.liveCollection=i}}function ji(t,n,e,i,o,r,s,a,c,l,u,p,_){mo("NgControlFlow");const b=G(),y=Dt(),z=void 0!==c,E=G(),k=a?s.bind(E[Ln][Mn]):s,A=new Y$(z,k);E[Be+t]=A,Wd(b,y,t+1,n,e,i,o,ur(y.consts,r)),z&&Wd(b,y,t+2,c,l,u,p,ur(y.consts,_))}class U$ extends B${constructor(n,e,i){super(),this.lContainer=n,this.hostLView=e,this.templateTNode=i,this.operationsCounter=void 0,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Zn}at(n){return this.getLView(n)[Mn].$implicit}attach(n,e){const i=e[ho];this.needsIndexUpdate||=n!==this.length,Al(this.lContainer,e,n,Ka(this.templateTNode,i))}detach(n){return this.needsIndexUpdate||=n!==this.length-1,function W$(t,n){return Md(t,n)}(this.lContainer,n)}create(n,e){const i=Za(this.lContainer,this.templateTNode.tView.ssrId),o=kl(this.hostLView,this.templateTNode,new $$(this.lContainer,e,n),{dehydratedView:i});return this.operationsCounter?.recordCreate(),o}destroy(n){n4(n[be],n),this.operationsCounter?.recordDestroy()}updateValue(n,e){this.getLView(n)[Mn].$implicit=e}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n{t.destroy(c)})}(c,t,r.trackByFn),c.updateIndexes(),r.hasEmptyBlock){const l=Pr(),u=0===c.length;if(Qn(i,l,u)){const p=e+2,_=O4(i,p);if(u){const b=Xf(o,p),y=Za(_,b.tView.ssrId);Al(_,kl(i,b,void 0,{dehydratedView:y}),0,Ka(b,y))}else rf(_,0)}}}finally{Z(n)}}function O4(t,n){return t[n]}function Xf(t,n){return cd(t,n)}function f(t,n,e,i){const o=G(),r=Dt(),s=Be+t,a=o[at],c=r.firstCreatePass?function q$(t,n,e,i,o,r){const s=n.consts,c=qa(n,t,2,i,ur(s,o));return Z8(n,e,c,ur(s,r)),null!==c.attrs&&v4(c,c.attrs,!1),null!==c.mergedAttrs&&v4(c,c.mergedAttrs,!0),null!==n.queries&&n.queries.elementStart(n,c),c}(s,r,o,n,e,i):r.data[s],l=Qw(r,o,c,a,n,t);o[s]=l;const u=zh(c);return Or(c,!0),_y(a,l,c),!function Vl(t){return!(32&~t.flags)}(c)&&ud()&&o4(r,o,l,c),0===function SF(){return ct.lFrame.elementDepthCount}()&&no(l,o),function TF(){ct.lFrame.elementDepthCount++}(),u&&(q8(r,o,c),G8(r,c,o)),null!==i&&K8(o,c),f}function m(){let t=pn();Jp()?Zp():(t=t.parent,Or(t,!1));const n=t;(function DF(t){return ct.skipHydrationRootTNode===t})(n)&&function AF(){ct.skipHydrationRootTNode=null}(),function MF(){ct.lFrame.elementDepthCount--}();const e=Dt();return e.firstCreatePass&&(Eh(e,t),Bp(t)&&e.queries.elementEnd(t)),null!=n.classesWithoutHost&&function $F(t){return!!(8&t.flags)}(n)&&Kf(e,n,G(),n.classesWithoutHost,!0),null!=n.stylesWithoutHost&&function YF(t){return!!(16&t.flags)}(n)&&Kf(e,n,G(),n.stylesWithoutHost,!1),m}function S(t,n,e,i){return f(t,n,e,i),m(),S}let Qw=(t,n,e,i,o,r)=>(rs(!0),t4(i,o,function I_(){return ct.lFrame.currentNamespace}()));function $e(t,n,e){const i=G(),o=Dt(),r=t+Be,s=o.firstCreatePass?function Z$(t,n,e,i,o){const r=n.consts,s=ur(r,i),a=qa(n,t,8,"ng-container",s);return null!==s&&v4(a,s,!0),Z8(n,e,a,ur(r,o)),null!==n.queries&&n.queries.elementStart(n,a),a}(r,o,i,n,e):o.data[r];Or(s,!0);const a=Xw(o,i,s,t);return i[r]=a,ud()&&o4(o,i,a,s),no(a,i),zh(s)&&(q8(o,i,s),G8(o,s,i)),null!=e&&K8(i,s),$e}function Ye(){let t=pn();const n=Dt();return Jp()?Zp():(t=t.parent,Or(t,!1)),n.firstCreatePass&&(Eh(n,t),Bp(t)&&n.queries.elementEnd(t)),Ye}function P4(t,n,e){return $e(t,n,e),Ye(),P4}let Xw=(t,n,e,i)=>(rs(!0),R8(n[at],""));function U(){return G()}function em(t,n,e){const i=G();return Qn(i,Pr(),n)&&Ao(Dt(),Dn(),i,t,n,i[at],e,!0),em}function oc(t,n,e){const i=G();if(Qn(i,Pr(),n)){const r=Dt(),s=Dn();Ao(r,s,i,t,n,Oy(Xp(r.data),s,i),e,!0)}return oc}const e1="en-US";let nz=e1;let Cz=(t,n,e)=>{};function D(t,n,e,i){const o=G(),r=Dt(),s=pn();return im(r,o,o[at],s,t,n,i),D}function F4(t,n){const e=pn(),i=G(),o=Dt();return im(o,i,Oy(Xp(o.data),e,i),e,t,n),F4}function im(t,n,e,i,o,r,s){const a=zh(i),l=t.firstCreatePass&&Ay(t),u=n[Mn],p=ky(n);let _=!0;if(3&i.type||s){const z=po(i,n),E=s?s(z):z,k=p.length,A=s?pe=>s(Xt(pe[i.index])):i.index;let ie=null;if(!s&&a&&(ie=function $Y(t,n,e,i){const o=t.cleanup;if(null!=o)for(let r=0;rc?a[c]:null}"string"==typeof s&&(r+=2)}return null}(t,n,o,i.index)),null!==ie)(ie.__ngLastListenerFn__||ie).__ngNextListenerFn__=r,ie.__ngLastListenerFn__=r,_=!1;else{r=Sz(i,n,u,r),Cz(z,o,r);const pe=e.listen(E,o,r);p.push(r,pe),l&&l.push(o,A,k,k+1)}}else r=Sz(i,n,u,r);const b=i.outputs;let y;if(_&&null!==b&&(y=b[o])){const z=y.length;if(z)for(let E=0;E-1?$o(t.index,n):n,5);let a=zz(n,e,i,r),c=o.__ngNextListenerFn__;for(;c;)a=zz(n,e,c,r)&&a,c=c.__ngNextListenerFn__;return a}}function g(t=1){return function VF(t){return(ct.lFrame.contextLView=function b_(t,n){for(;t>0;)n=n[pl],t--;return n}(t,ct.lFrame.contextLView))[Mn]}(t)}function YY(t,n){let e=null;const i=function LV(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let o=0;o(rs(!0),function F8(t,n){return t.createText(n)}(n[at],i));function x(t){return Ce("",t,""),x}function Ce(t,n,e){const i=G(),o=function Yl(t,n,e,i){return Qn(t,Pr(),e)?n+vt(e)+i:_t}(i,t,n,e);return o!==_t&&Es(i,Bi(),o),Ce}function ca(t,n,e,i,o){const r=G(),s=function Ul(t,n,e,i,o,r){const a=tc(t,Ms(),e,o);return Ds(2),a?n+vt(e)+i+vt(o)+r:_t}(r,t,n,e,i,o);return s!==_t&&Es(r,Bi(),s),ca}function sm(t,n,e,i,o,r,s){const a=G(),c=function Wl(t,n,e,i,o,r,s,a){const l=z4(t,Ms(),e,o,s);return Ds(3),l?n+vt(e)+i+vt(o)+r+vt(s)+a:_t}(a,t,n,e,i,o,r,s);return c!==_t&&Es(a,Bi(),c),sm}function Ai(t,n,e){HC(n)&&(n=n());const i=G();return Qn(i,Pr(),n)&&Ao(Dt(),Dn(),i,t,n,i[at],e,!1),Ai}function Yi(t,n){const e=HC(t);return e&&t.set(n),e}function Oi(t,n){const e=G(),i=Dt(),o=pn();return im(i,e,e[at],o,t,n),Oi}function am(t,n,e,i,o){if(t=st(t),Array.isArray(t))for(let r=0;r>20;if(Fa(t)||!t.multi){const b=new hd(l,o,v),y=lm(c,n,o?u:u+_,p);-1===y?(l8(Ih(a,s),r,c),cm(r,t,n.length),n.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(b),s.push(b)):(e[y]=b,s[y]=b)}else{const b=lm(c,n,u+_,p),y=lm(c,n,u,u+_),E=y>=0&&e[y];if(o&&!E||!o&&!(b>=0&&e[b])){l8(Ih(a,s),r,c);const k=function uU(t,n,e,i,o){const r=new hd(t,e,v);return r.multi=[],r.index=n,r.componentProviders=0,Qz(r,o,i&&!e),r}(o?dU:lU,e.length,o,i,l);!o&&E&&(e[y].providerFactory=k),cm(r,t,n.length,0),n.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),e.push(k),s.push(k)}else cm(r,t,b>-1?b:y,Qz(e[o?y:b],l,!o&&i));!o&&i&&E&&e[y].componentProviders++}}}function cm(t,n,e,i){const o=Fa(n),r=function QV(t){return!!t.useClass}(n);if(o||r){const c=(r?st(n.useClass):n).prototype.ngOnDestroy;if(c){const l=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const u=l.indexOf(e);-1===u?l.push(e,[i,c]):l[u+1].push(i,c)}else l.push(e,c)}}}function Qz(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function lm(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function cU(t,n,e){const i=Dt();if(i.firstCreatePass){const o=Ar(t);am(e,i.data,i.blueprint,o,!0),am(n,i.data,i.blueprint,o,!1)}}(i,o?o(t):t,n)}}let hU=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){const i=Ap(0,e.type),o=i.length>0?C4([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e,o)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=ae({token:t,providedIn:"environment",factory:()=>new t(R(Li))})}return t})();function me(t){mo("NgStandalone"),t.getStandaloneInjector=n=>n.get(hU).getOrCreateStandaloneInjector(t)}function Ti(t,n,e){const i=fo()+t,o=G();return o[i]===_t?ls(o,i,e?n.call(e):n()):function Ud(t,n){return t[n]}(o,i)}function mr(t,n,e,i){return nS(G(),fo(),t,n,e,i)}function sc(t,n,e,i,o){return function iS(t,n,e,i,o,r,s){const a=n+e;return tc(t,a,o,r)?ls(t,a+2,s?i.call(s,o,r):i(o,r)):iu(t,a+2)}(G(),fo(),t,n,e,i,o)}function tS(t,n,e,i,o,r){return function oS(t,n,e,i,o,r,s,a){const c=n+e;return z4(t,c,o,r,s)?ls(t,c+3,a?i.call(a,o,r,s):i(o,r,s)):iu(t,c+3)}(G(),fo(),t,n,e,i,o,r)}function nu(t,n,e,i,o,r,s){return function rS(t,n,e,i,o,r,s,a,c){const l=n+e;return function pr(t,n,e,i,o,r){const s=tc(t,n,e,i);return tc(t,n+2,o,r)||s}(t,l,o,r,s,a)?ls(t,l+4,c?i.call(c,o,r,s,a):i(o,r,s,a)):iu(t,l+4)}(G(),fo(),t,n,e,i,o,r,s)}function iu(t,n){const e=t[n];return e===_t?void 0:e}function nS(t,n,e,i,o,r){const s=n+e;return Qn(t,s,o)?ls(t,s+1,r?i.call(r,o):i(o)):iu(t,s+1)}function Fr(t,n){const e=Dt();let i;const o=t+Be;e.firstCreatePass?(i=function CU(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks??=[]).push(o,i.onDestroy)):i=e.data[o];const r=i.factory||(i.factory=Va(i.type)),a=Do(v);try{const c=Ph(!1),l=r();return Ph(c),function rm(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,G(),o,l),l}finally{Do(a)}}function Rr(t,n,e){const i=t+Be,o=G(),r=Ha(o,i);return function ou(t,n){return t[be].data[n].pure}(o,i)?nS(o,fo(),n,r.transform,e,r):r.transform(e)}function ot(t,n){return d4(t,n)}let wS=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();const DS=new oe(""),j4=new oe("");let _m,gm=(()=>{class t{constructor(e,i,o){this._ngZone=e,this.registry=i,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,_m||(function _W(t){_m=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{De.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}isStable(){return this._isZoneStable&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb()}});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let r=-1;i&&i>0&&(r=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==r),e()},i)),this._callbacks.push({doneCb:e,timeoutId:r,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}static#e=this.\u0275fac=function(i){return new(i||t)(R(De),R(vm),R(j4))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),vm=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return _m?.findTestabilityInTree(this,e,i)??null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})();function cu(t){return!!t&&"function"==typeof t.then}function xS(t){return!!t&&"function"==typeof t.subscribe}const bm=new oe("");let ym=(()=>{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=W(bm,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const r=o();if(cu(r))e.push(r);else if(xS(r)){const s=new Promise((a,c)=>{r.subscribe({complete:a,error:c})});e.push(s)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const $4=new oe("");function AS(t,n){return Array.isArray(n)?n.reduce(AS,t):{...t,...n}}let Ko=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=W(ib),this.afterRenderEffectManager=W(Hd),this.zonelessEnabled=W(Ld),this.externalTestViews=new Set,this.beforeRender=new N,this.afterTick=new N,this.componentTypes=[],this.components=[],this.isStable=W(Ya).hasPendingTasks.pipe(Ie(e=>!e)),this._injector=W(Li)}get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof lC;if(!this._injector.get(ym).done)throw!o&&function Qs(t){const n=xt(t)||yi(t)||Ri(t);return null!==n&&n.standalone}(e),new j(405,!1);let s;s=o?e:this._injector.get(Il).resolveComponentFactory(e),this.componentTypes.push(s.componentType);const a=function bW(t){return t.isBoundToModule}(s)?void 0:this._injector.get(ec),l=s.create(tn.NULL,[],i||s.selector,a),u=l.location.nativeElement,p=l.injector.get(DS,null);return p?.registerApplication(u),l.onDestroy(()=>{this.detachView(l.hostView),Y4(this.components,l),p?.unregisterApplication(u)}),this._loadComponent(l),l}tick(){this._tick(!0)}_tick(e){if(this._runningTick)throw new j(101,!1);const i=Z(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(e)}catch(o){this.internalErrorHandler(o)}finally{this._runningTick=!1,Z(i),this.afterTick.next()}}detectChangesInAttachedViews(e){let i=null;this._injector.destroyed||(i=this._injector.get(Qa,null,{optional:!0}));let o=0;const r=this.afterRenderEffectManager;for(;o<10;){const s=0===o;if(e||!s){this.beforeRender.next(s);for(let{_lView:a,notifyErrorHandler:c}of this._views)CW(a,c,s,this.zonelessEnabled)}else i?.begin?.(),i?.end?.();if(o++,r.executeInternalCallbacks(),!this.allViews.some(({_lView:a})=>ld(a))&&(r.execute(),!this.allViews.some(({_lView:a})=>ld(a))))break}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Y4(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get($4,[]);[...this._bootstrapListeners,...i].forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Y4(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new j(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Y4(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function CW(t,n,e,i){(e||ld(t))&&l4(t,n,e&&!i?0:1)}class wW{constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let PS=(()=>{class t{compileModuleSync(e){return new Nf(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),r=Wo(eo(e).declarations).reduce((s,a)=>{const c=xt(a);return c&&s.push(new $d(c)),s},[]);return new wW(i,r)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),TW=(()=>{class t{constructor(){this.zone=W(De),this.changeDetectionScheduler=W(Pl),this.applicationRef=W(Ko)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Cm({ngZoneFactory:t,ignoreChangesOutsideZone:n}){return t??=()=>new De(wm()),[{provide:De,useFactory:t},{provide:ts,multi:!0,useFactory:()=>{const e=W(TW,{optional:!0});return()=>e.initialize()}},{provide:ts,multi:!0,useFactory:()=>{const e=W(xW);return()=>{e.initialize()}}},{provide:ib,useFactory:DW},!0===n?{provide:cC,useValue:!0}:[]]}function DW(){const t=W(De),n=W(hr);return e=>t.runOutsideAngular(()=>n.handleError(e))}function wm(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}let xW=(()=>{class t{constructor(){this.subscription=new Ft,this.initialized=!1,this.zone=W(De),this.pendingTasks=W(Ya)}initialize(){if(this.initialized)return;this.initialized=!0;let e=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(e=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{De.assertNotInAngularZone(),queueMicrotask(()=>{null!==e&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(e),e=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{De.assertInAngularZone(),e??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),lu=(()=>{class t{constructor(){this.appRef=W(Ko),this.taskService=W(Ya),this.ngZone=W(De),this.zonelessEnabled=W(Ld),this.disableScheduling=W(cC,{optional:!0})??!1,this.zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run,this.schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}],this.subscriptions=new Ft,this.cancelScheduledCallback=null,this.shouldRefreshViews=!1,this.useMicrotaskScheduler=!1,this.runningTick=!1,this.pendingRenderTaskId=null,this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof bf||!this.zoneIsDefined)}notify(e){if(!this.zonelessEnabled&&5===e)return;switch(e){case 3:case 2:case 0:case 4:case 5:case 1:this.shouldRefreshViews=!0}if(!this.shouldScheduleTick())return;const i=this.useMicrotaskScheduler?pC:hC;this.pendingRenderTaskId=this.taskService.add(),this.zoneIsDefined?Zone.root.run(()=>{this.cancelScheduledCallback=i(()=>{this.tick(this.shouldRefreshViews)})}):this.cancelScheduledCallback=i(()=>{this.tick(this.shouldRefreshViews)})}shouldScheduleTick(){return!(this.disableScheduling||null!==this.pendingRenderTaskId||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&De.isInAngularZone())}tick(e){if(this.runningTick||this.appRef.destroyed)return;const i=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick(e)},void 0,this.schedulerTickApplyArgs)}catch(o){throw this.taskService.remove(i),o}finally{this.cleanup()}this.useMicrotaskScheduler=!0,pC(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(i)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.shouldRefreshViews=!1,this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,null!==this.pendingRenderTaskId){const e=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(e)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const ks=new oe("",{providedIn:"root",factory:()=>W(ks,At.Optional|At.SkipSelf)||function EW(){return typeof $localize<"u"&&$localize.locale||e1}()}),Sm=new oe("");let FS=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function NB(t="zone.js",n){return"noop"===t?new bf:"zone.js"===t?new De(n):t}(i?.ngZone,wm({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return o.run(()=>{const r=i?.ignoreChangesOutsideZone,s=function Tj(t,n,e){return new If(t,n,e)}(e.moduleType,this.injector,[...Cm({ngZoneFactory:()=>o,ignoreChangesOutsideZone:r}),{provide:Pl,useExisting:lu}]),a=s.injector.get(hr,null);return o.runOutsideAngular(()=>{const c=o.onError.subscribe({next:l=>{a.handleError(l)}});s.onDestroy(()=>{Y4(this._modules,s),c.unsubscribe()})}),function kS(t,n,e){try{const i=e();return cu(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t.handleError(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(a,o,()=>{const c=s.injector.get(ym);return c.runInitializers(),c.donePromise.then(()=>(function iz(t){"string"==typeof t&&(nz=t.toLowerCase().replace(/_/g,"-"))}(s.injector.get(ks,e1)||e1),this._moduleDoBootstrap(s),s))})})}bootstrapModule(e,i=[]){const o=AS({},i);return function SW(t,n,e){const i=new Nf(e);return Promise.resolve(i)}(0,0,e).then(r=>this.bootstrapModuleFactory(r,o))}_moduleDoBootstrap(e){const i=e.injector.get(Ko);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new j(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new j(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(Sm,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||t)(R(tn))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"platform"})}return t})(),la=null;const RS=new oe("");function LS(t,n,e=[]){const i=`Platform: ${n}`,o=new oe(i);return(r=[])=>{let s=Tm();if(!s||s.injector.get(RS,!1)){const a=[...e,...r,{provide:o,useValue:!0}];t?t(a):function OW(t){if(la&&!la.get(RS,!1))throw new j(400,!1);(function ES(){!function ze(t){Nn=t}(()=>{throw new j(600,!1)})})(),la=t;const n=t.get(FS);(function BS(t){t.get(Tb,null)?.forEach(e=>e())})(t)}(function HS(t=[],n){return tn.create({name:n,providers:[{provide:Ip,useValue:"platform"},{provide:Sm,useValue:new Set([()=>la=null])},...t]})}(a,i))}return function PW(t){const n=Tm();if(!n)throw new j(401,!1);return n}()}}function Tm(){return la?.get(FS)??null}let Ue=(()=>{class t{static#e=this.__NG_ELEMENT_ID__=NW}return t})();function NW(t){return function VW(t,n,e){if(La(t)&&!e){const i=$o(t.index,n);return new Ad(i,i)}return 175&t.type?new Ad(n[Ln],n):null}(pn(),G(),!(16&~t))}class GS{constructor(){}supports(n){return w4(n)}create(n){return new BW(n)}}const HW=(t,n)=>n;class BW{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||HW}forEachItem(n){let e;for(e=this._itHead;null!==e;e=e._next)n(e)}forEachOperation(n){let e=this._itHead,i=this._removalsHead,o=0,r=null;for(;e||i;){const s=!i||e&&e.currentIndex{s=this._trackByFn(o,a),null!==e&&Object.is(e.trackById,s)?(i&&(e=this._verifyReinsertion(e,a,s,o)),Object.is(e.item,a)||this._addIdentityChange(e,a)):(e=this._mismatch(e,a,s,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,e,i,o){let r;return null===n?r=this._itTail:(r=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._reinsertAfter(n,r,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._moveAfter(n,r,o)):n=this._addAfter(new jW(e,i),r,o),n}_verifyReinsertion(n,e,i,o){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==r?n=this._reinsertAfter(r,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const e=n._next;this._addToRemovals(this._unlink(n)),n=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,r=n._nextRemoved;return null===o?this._removalsHead=r:o._nextRemoved=r,null===r?this._removalsTail=o:r._prevRemoved=o,this._insertAfter(n,e,i),this._addToMoves(n,i),n}_moveAfter(n,e,i){return this._unlink(n),this._insertAfter(n,e,i),this._addToMoves(n,i),n}_addAfter(n,e,i){return this._insertAfter(n,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,e,i){const o=null===e?this._itHead:e._next;return n._next=o,n._prev=e,null===o?this._itTail=n:o._prev=n,null===e?this._itHead=n:e._next=n,null===this._linkedRecords&&(this._linkedRecords=new qS),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const e=n._prev,i=n._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,n}_addToMoves(n,e){return n.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new qS),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,e){return n.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class jW{constructor(n,e){this.item=n,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class $W{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const e=n._prevDup,i=n._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class qS{constructor(){this.map=new Map}put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new $W,this.map.set(e,i)),i.add(n)}get(n,e){const o=this.map.get(n);return o?o.get(n,e):null}remove(n){const e=n.trackById;return this.map.get(e).remove(n)&&this.map.delete(e),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function KS(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const r=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,r)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,e);const r=o._prev,s=o._next;return r&&(r._next=s),s&&(s._prev=r),o._next=null,o._prev=null,o}const i=new UW(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class UW{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function ZS(){return new q4([new GS])}let q4=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:ZS});constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||ZS()),deps:[[t,new lh,new ed]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new j(901,!1)}}return t})();function QS(){return new K4([new JS])}let K4=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:QS});constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||QS()),deps:[[t,new lh,new ed]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new j(901,!1)}}return t})();const qW=LS(null,"core",[]);let KW=(()=>{class t{constructor(e){}static#e=this.\u0275fac=function(i){return new(i||t)(R(Ko))};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function O(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}function Pi(t,n=NaN){return isNaN(parseFloat(t))||isNaN(Number(t))?n:Number(t)}function Pm(t){const n=Z(null);try{return t()}finally{Z(n)}}const AG=new oe("",{providedIn:"root",factory:()=>W(OG)});let OG=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>new PG})}return t})();class PG{constructor(){this.queuedEffectCount=0,this.queues=new Map,this.pendingTasks=W(Ya),this.taskId=null}scheduleEffect(n){if(this.enqueue(n),null===this.taskId){const e=this.taskId=this.pendingTasks.add();queueMicrotask(()=>{this.flush(),this.pendingTasks.remove(e),this.taskId=null})}}enqueue(n){const e=n.creationZone;this.queues.has(e)||this.queues.set(e,new Set);const i=this.queues.get(e);i.has(n)||(this.queuedEffectCount++,i.add(n))}flush(){for(;this.queuedEffectCount>0;)for(const[n,e]of this.queues)null===n?this.flushQueue(e):n.run(()=>this.flushQueue(e))}flushQueue(n){for(const e of n)n.delete(e),this.queuedEffectCount--,e.run()}}class IG{constructor(n,e,i,o,r,s){this.scheduler=n,this.effectFn=e,this.creationZone=i,this.injector=r,this.watcher=function To(t,n,e){const i=Object.create(lo);e&&(i.consumerAllowSignalWrites=!0),i.fn=t,i.schedule=n;const o=c=>{i.cleanupFn=c};return i.ref={notify:()=>P(i),run:()=>{if(null===i.fn)return;if(function Ee(){return V}())throw new Error("Schedulers cannot synchronously execute watches while scheduling.");if(i.dirty=!1,i.hasRun&&!se(i))return;i.hasRun=!0;const c=L(i);try{i.cleanupFn(),i.cleanupFn=_i,i.fn(o)}finally{B(i,c)}},cleanup:()=>i.cleanupFn(),destroy:()=>function s(c){(function r(c){return null===c.fn&&null===c.schedule})(c)||(ue(c),c.cleanupFn(),c.fn=null,c.schedule=null,c.cleanupFn=_i)}(i),[ce]:i},i.ref}(a=>this.runEffect(a),()=>this.schedule(),s),this.unregisterOnDestroy=o?.onDestroy(()=>this.destroy())}runEffect(n){try{this.effectFn(n)}catch(e){this.injector.get(hr,null,{optional:!0})?.handleError(e)}}run(){this.watcher.run()}schedule(){this.scheduler.scheduleEffect(this)}destroy(){this.watcher.destroy(),this.unregisterOnDestroy?.()}}let MT=null;function da(){return MT}class RG{}const It=new oe("");let Im=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(HG),providedIn:"platform"})}return t})();const LG=new oe("");let HG=(()=>{class t extends Im{constructor(){super(),this._doc=W(It),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return da().getBaseHref(this._doc)}onPopState(e){const i=da().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=da().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,o){this._history.pushState(e,i,o)}replaceState(e,i,o){this._history.replaceState(e,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Nm(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function DT(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function As(t){return t&&"?"!==t[0]?"?"+t:t}let cc=(()=>{class t{historyGo(e){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(ET),providedIn:"root"})}return t})();const xT=new oe("");let ET=(()=>{class t extends cc{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??W(It).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Nm(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+As(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,r){const s=this.prepareExternalUrl(o+As(r));this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){const s=this.prepareExternalUrl(o+As(r));this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(Im),R(xT,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),BG=(()=>{class t extends cc{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){const i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=Nm(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,r){let s=this.prepareExternalUrl(o+As(r));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(e,i,s)}replaceState(e,i,o,r){let s=this.prepareExternalUrl(o+As(r));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(Im),R(xT,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),o1=(()=>{class t{constructor(e){this._subject=new H,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function YG(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(DT(kT(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+As(i))}normalize(e){return t.stripTrailingSlash(function $G(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,kT(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+As(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+As(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}static#e=this.normalizeQueryParams=As;static#t=this.joinWithSlash=Nm;static#n=this.stripTrailingSlash=DT;static#i=this.\u0275fac=function(i){return new(i||t)(R(cc))};static#o=this.\u0275prov=ae({token:t,factory:()=>function jG(){return new o1(R(cc))}(),providedIn:"root"})}return t})();function kT(t){return t.replace(/\/index.html$/,"")}const Um=/\s+/,LT=[];let Zo=(()=>{class t{constructor(e,i){this._ngEl=e,this._renderer=i,this.initialClasses=LT,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(Um):LT}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(Um):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const o=this.stateMap.get(e);void 0!==o?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],o=e[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(Um).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"},standalone:!0})}return t})();class kq{constructor(n,e,i,o){this.$implicit=n,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let zn=(()=>{class t{set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,r,s)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new kq(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)i.remove(null===r?void 0:r);else if(null!==r){const a=i.get(r);i.move(a,s),BT(a,o)}});for(let o=0,r=i.length;o{BT(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt),v(q4))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return t})();function BT(t,n){t.context.$implicit=n.item}let Tt=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new Aq,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){jT("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){jT("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return t})();class Aq{constructor(){this.$implicit=null,this.ngIf=null}}function jT(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${bi(n)}'.`)}class Wm{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let lc=(()=>{class t{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const i=e===this._ngSwitch;return this._lastCasesMatched||=i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const i of this._defaultViews)i.enforceState(e)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return t})(),fu=(()=>{class t{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new Wm(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt),v(lc,9))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return t})(),Gm=(()=>{class t{constructor(e,i,o){o._addDefault(new Wm(e,i))}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt),v(lc,9))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngSwitchDefault",""]],standalone:!0})}return t})(),ti=(()=>{class t{constructor(e,i,o){this._ngEl=e,this._differs=i,this._renderer=o,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[o,r]=e.split("."),s=-1===o.indexOf("-")?void 0:na.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,o,r?`${i}${r}`:i,s):this._renderer.removeStyle(this._ngEl.nativeElement,o,s)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(K4),v($t))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return t})(),Vn=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(this._shouldRecreateView(e)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const o=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,o,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,i,o)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,o),get:(e,i,o)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,o)}})}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[ke]})}return t})();class Iq{createSubscription(n,e){return Pm(()=>n.subscribe({next:e,error:i=>{throw i}}))}dispose(n){Pm(()=>n.unsubscribe())}}class Nq{createSubscription(n,e){return n.then(e,i=>{throw i})}dispose(n){}}const Vq=new Nq,Fq=new Iq;let qm=(()=>{class t{constructor(e){this._latestValue=null,this.markForCheckOnValueUpdate=!0,this._subscription=null,this._obj=null,this._strategy=null,this._ref=e}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(e){if(!this._obj){if(e)try{this.markForCheckOnValueUpdate=!1,this._subscribe(e)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue}_subscribe(e){this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,i=>this._updateLatestValue(e,i))}_selectStrategy(e){if(cu(e))return Vq;if(xS(e))return Fq;throw function Hr(t,n){return new j(2100,!1)}()}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(e,i){e===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue,16))};static#t=this.\u0275pipe=jn({name:"async",type:t,pure:!1,standalone:!0})}return t})(),UT=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const WT="browser";function p0(t){return t===WT}function GT(t){return"server"===t}let nK=(()=>{class t{static#e=this.\u0275prov=ae({token:t,providedIn:"root",factory:()=>p0(W(Ir))?new iK(W(It),window):new rK})}return t})();class iK{constructor(n,e){this.document=n,this.window=e,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n){this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){const e=function oK(t,n){const e=t.getElementById(n)||t.getElementsByName(n)[0];if(e)return e;if("function"==typeof t.createTreeWalker&&t.body&&"function"==typeof t.body.attachShadow){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const r=o.shadowRoot;if(r){const s=r.getElementById(n)||r.querySelector(`[name="${n}"]`);if(s)return s}o=i.nextNode()}}return null}(this.document,n);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(n){this.window.history.scrollRestoration=n}scrollToElement(n){const e=n.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(i-r[0],o-r[1])}}class rK{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class IK extends RG{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Qm extends IK{static makeCurrent(){!function FG(t){MT??=t}(new Qm)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function NK(){return vu=vu||document.querySelector("base"),vu?vu.getAttribute("href"):null}();return null==e?null:function VK(t){return new URL(t,document.baseURI).pathname}(e)}resetBaseElement(){vu=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function xq(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[o,r]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===n)return decodeURIComponent(r)}return null}(document.cookie,n)}}let vu=null,RK=(()=>{class t{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const Xm=new oe("");let nM=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>{o.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(r=>r.supports(e)),!i)throw new j(5101,!1);return this._eventNameToPlugin.set(e,i),i}static#e=this.\u0275fac=function(i){return new(i||t)(R(Xm),R(De))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();class iM{constructor(n){this._doc=n}}const eg="ng-app-id";let oM=(()=>{class t{constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,this.platformId=r,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=GT(r),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(o=>o.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${eg}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(o=>{null!=o.textContent&&i.set(o.textContent,o)}),i}return null}changeUsageCount(e,i){const o=this.styleRef;if(o.has(e)){const r=o.get(e);return r.usage+=i,r.usage}return o.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const o=this.styleNodesInDOM,r=o?.get(i);if(r?.parentNode===e)return o.delete(i),r.removeAttribute(eg),r;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=i,this.platformIsServer&&s.setAttribute(eg,this.appId),e.appendChild(s),s}}addStyleToHost(e,i){const o=this.getStyleElement(e,i),r=this.styleRef,s=r.get(i)?.elements;s?s.push(o):r.set(i,{elements:[o],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R(zl),R(vd,8),R(Ir))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const tg={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},ng=/%COMP%/g,jK=new oe("",{providedIn:"root",factory:()=>!0});function sM(t,n){return n.map(e=>e.replace(ng,t))}let ig=(()=>{class t{constructor(e,i,o,r,s,a,c,l=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=l,this.rendererByCompId=new Map,this.platformIsServer=GT(a),this.defaultRenderer=new og(e,s,c,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===Dr.ShadowDom&&(i={...i,encapsulation:Dr.Emulated});const o=this.getOrCreateRenderer(e,i);return o instanceof cM?o.applyToHost(e):o instanceof rg&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let r=o.get(i.id);if(!r){const s=this.doc,a=this.ngZone,c=this.eventManager,l=this.sharedStylesHost,u=this.removeStylesOnCompDestroy,p=this.platformIsServer;switch(i.encapsulation){case Dr.Emulated:r=new cM(c,l,i,this.appId,u,s,a,p);break;case Dr.ShadowDom:return new WK(c,l,e,i,s,a,this.nonce,p);default:r=new rg(c,l,i,u,s,a,p)}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||t)(R(nM),R(oM),R(zl),R(jK),R(It),R(Ir),R(De),R(vd))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();class og{constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(tg[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(aM(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(aM(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new j(-5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,o){if(o){e=o+":"+e;const r=tg[o];r?n.setAttributeNS(r,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=tg[i];o?n.removeAttributeNS(o,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,o){o&(na.DashCase|na.Important)?n.style.setProperty(e,i,o&na.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&na.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){null!=n&&(n[e]=i)}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=da().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function aM(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class WK extends og{constructor(n,e,i,o,r,s,a,c){super(n,r,s,c),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const l=sM(o.id,o.styles);for(const u of l){const p=document.createElement("style");a&&p.setAttribute("nonce",a),p.textContent=u,this.shadowRoot.appendChild(p)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class rg extends og{constructor(n,e,i,o,r,s,a,c){super(n,r,s,a),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o,this.styles=c?sM(c,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class cM extends rg{constructor(n,e,i,o,r,s,a,c){const l=o+"-"+i.id;super(n,e,i,r,s,a,c,l),this.contentAttr=function $K(t){return"_ngcontent-%COMP%".replace(ng,t)}(l),this.hostAttr=function YK(t){return"_nghost-%COMP%".replace(ng,t)}(l)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let GK=(()=>{class t extends iM{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const lM=["alt","control","meta","shift"],qK={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},KK={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let JK=(()=>{class t extends iM{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o){const r=t.parseEventName(i),s=t.eventCallback(r.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>da().onAndCancel(e,r.domEventName,s))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const r=t._normalizeKey(i.pop());let s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),lM.forEach(l=>{const u=i.indexOf(l);u>-1&&(i.splice(u,1),s+=l+".")}),s+=r,0!=i.length||0===r.length)return null;const c={};return c.domEventName=o,c.fullKey=s,c}static matchEventFullKeyCode(e,i){let o=qK[e.key]||e.key,r="";return i.indexOf("code.")>-1&&(o=e.code,r="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),lM.forEach(s=>{s!==o&&(0,KK[s])(e)&&(r+=s+".")}),r+=o,r===i)}static eventCallback(e,i,o){return r=>{t.matchEventFullKeyCode(r,e)&&o.runGuarded(()=>i(r))}}static _normalizeKey(e){return"esc"===e?"escape":e}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const uM=[{provide:Ir,useValue:WT},{provide:Tb,useValue:function ZK(){Qm.makeCurrent()},multi:!0},{provide:It,useFactory:function XK(){return function OR(t){m8=t}(document),document},deps:[]}],eJ=LS(qW,"browser",uM),tJ=new oe(""),hM=[{provide:j4,useClass:class FK{addToWindow(n){Cn.getAngularTestability=(i,o=!0)=>{const r=n.findTestabilityInTree(i,o);if(null==r)throw new j(5103,!1);return r},Cn.getAllAngularTestabilities=()=>n.getAllTestabilities(),Cn.getAllAngularRootElements=()=>n.getAllRootElements(),Cn.frameworkStabilizers||(Cn.frameworkStabilizers=[]),Cn.frameworkStabilizers.push(i=>{const o=Cn.getAllAngularTestabilities();let r=o.length;const s=function(){r--,0==r&&i()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?da().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:DS,useClass:gm,deps:[De,vm,j4]},{provide:gm,useClass:gm,deps:[De,vm,j4]}],pM=[{provide:Ip,useValue:"root"},{provide:hr,useFactory:function QK(){return new hr},deps:[]},{provide:Xm,useClass:GK,multi:!0,deps:[It,De,Ir]},{provide:Xm,useClass:JK,multi:!0,deps:[It]},ig,oM,nM,{provide:Qa,useExisting:ig},{provide:class sK{},useClass:RK,deps:[]},[]];let sg=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:zl,useValue:e.appId}]}}static#e=this.\u0275fac=function(i){return new(i||t)(R(tJ,12))};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[...pM,...hM],imports:[UT,KW]})}return t})(),nJ=(()=>{class t{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_u=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:function(i){let o=null;return o=i?new(i||t):R(sJ),o},providedIn:"root"})}return t})(),sJ=(()=>{class t extends _u{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case Uo.NONE:return i;case Uo.HTML:return as(i,"HTML")?Yo(i):Gb(this._doc,String(i)).toString();case Uo.STYLE:return as(i,"Style")?Yo(i):i;case Uo.SCRIPT:if(as(i,"Script"))return Yo(i);throw new j(5200,!1);case Uo.URL:return as(i,"URL")?Yo(i):Zh(String(i));case Uo.RESOURCE_URL:if(as(i,"ResourceURL"))return Yo(i);throw new j(5201,!1);default:throw new j(5202,!1)}}bypassSecurityTrustHtml(e){return function eL(t){return new qR(t)}(e)}bypassSecurityTrustStyle(e){return function tL(t){return new KR(t)}(e)}bypassSecurityTrustScript(e){return function nL(t){return new JR(t)}(e)}bypassSecurityTrustUrl(e){return function iL(t){return new ZR(t)}(e)}bypassSecurityTrustResourceUrl(e){return function oL(t){return new QR(t)}(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function gM(t,n,e,i,o,r,s){try{var a=t[r](s),c=a.value}catch(l){return void e(l)}a.done?n(c):Promise.resolve(c).then(i,o)}function Di(t){return function(){var n=this,e=arguments;return new Promise(function(i,o){var r=t.apply(n,e);function s(c){gM(r,i,o,s,a,"next",c)}function a(c){gM(r,i,o,s,a,"throw",c)}s(void 0)})}}function _0(t){return!!t&&(t instanceof Ut||Ct(t.lift)&&Ct(t.subscribe))}function kt(t,n,e,i){var s,o=arguments.length,r=o<3?n:null===i?i=Object.getOwnPropertyDescriptor(n,e):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,n,e,i);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(n,e,r):s(n,e))||r);return o>3&&r&&Object.defineProperty(n,e,r),r}function ua(t){return this instanceof ua?(this.v=t,this):new ua(t)}function yM(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=function dg(t){var n="function"==typeof Symbol&&Symbol.iterator,e=n&&t[n],i=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(r){e[r]=t[r]&&function(s){return new Promise(function(a,c){!function o(r,s,a,c){Promise.resolve(c).then(function(l){r({value:l,done:a})},s)}(a,c,(s=t[r](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const ug=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function CM(t){return Ct(t?.then)}function wM(t){return Ct(t[Mr])}function zM(t){return Symbol.asyncIterator&&Ct(t?.[Symbol.asyncIterator])}function SM(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const TM=function DJ(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function MM(t){return Ct(t?.[TM])}function DM(t){return function bM(t,n,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,i=e.apply(t,n||[]),r=[];return o={},a("next"),a("throw"),a("return",function s(b){return function(y){return Promise.resolve(y).then(b,p)}}),o[Symbol.asyncIterator]=function(){return this},o;function a(b,y){i[b]&&(o[b]=function(z){return new Promise(function(E,k){r.push([b,z,E,k])>1||c(b,z)})},y&&(o[b]=y(o[b])))}function c(b,y){try{!function l(b){b.value instanceof ua?Promise.resolve(b.value.v).then(u,p):_(r[0][2],b)}(i[b](y))}catch(z){_(r[0][3],z)}}function u(b){c("next",b)}function p(b){c("throw",b)}function _(b,y){b(y),r.shift(),r.length&&c(r[0][0],r[0][1])}}(this,arguments,function*(){const e=t.getReader();try{for(;;){const{value:i,done:o}=yield ua(e.read());if(o)return yield ua(void 0);yield yield ua(i)}}finally{e.releaseLock()}})}function xM(t){return Ct(t?.getReader)}function Ii(t){if(t instanceof Ut)return t;if(null!=t){if(wM(t))return function xJ(t){return new Ut(n=>{const e=t[Mr]();if(Ct(e.subscribe))return e.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(ug(t))return function EJ(t){return new Ut(n=>{for(let e=0;e{t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,W2)})}(t);if(zM(t))return EM(t);if(MM(t))return function AJ(t){return new Ut(n=>{for(const e of t)if(n.next(e),n.closed)return;n.complete()})}(t);if(xM(t))return function OJ(t){return EM(DM(t))}(t)}throw SM(t)}function EM(t){return new Ut(n=>{(function PJ(t,n){var e,i,o,r;return function vM(t,n,e,i){return new(e||(e=Promise))(function(r,s){function a(u){try{l(i.next(u))}catch(p){s(p)}}function c(u){try{l(i.throw(u))}catch(p){s(p)}}function l(u){u.done?r(u.value):function o(r){return r instanceof e?r:new e(function(s){s(r)})}(u.value).then(a,c)}l((i=i.apply(t,n||[])).next())})}(this,void 0,void 0,function*(){try{for(e=yM(t);!(i=yield e.next()).done;)if(n.next(i.value),n.closed)return}catch(s){o={error:s}}finally{try{i&&!i.done&&(r=e.return)&&(yield r.call(e))}finally{if(o)throw o.error}}n.complete()})})(t,n).catch(e=>n.error(e))})}function Is(t,n,e,i=0,o=!1){const r=n.schedule(function(){e(),o?t.add(this.schedule(null,i)):this.unsubscribe()},i);if(t.add(r),!o)return r}function kM(t,n=0){return dn((e,i)=>{e.subscribe(Zt(i,o=>Is(i,t,()=>i.next(o),n),()=>Is(i,t,()=>i.complete(),n),o=>Is(i,t,()=>i.error(o),n)))})}function AM(t,n=0){return dn((e,i)=>{i.add(t.schedule(()=>e.subscribe(i),n))})}function OM(t,n){if(!t)throw new Error("Iterable cannot be null");return new Ut(e=>{Is(e,n,()=>{const i=t[Symbol.asyncIterator]();Is(e,n,()=>{i.next().then(o=>{o.done?e.complete():e.next(o.value)})},0,!0)})})}function ni(t,n){return n?function LJ(t,n){if(null!=t){if(wM(t))return function IJ(t,n){return Ii(t).pipe(AM(n),kM(n))}(t,n);if(ug(t))return function VJ(t,n){return new Ut(e=>{let i=0;return n.schedule(function(){i===t.length?e.complete():(e.next(t[i++]),e.closed||this.schedule())})})}(t,n);if(CM(t))return function NJ(t,n){return Ii(t).pipe(AM(n),kM(n))}(t,n);if(zM(t))return OM(t,n);if(MM(t))return function FJ(t,n){return new Ut(e=>{let i;return Is(e,n,()=>{i=t[TM](),Is(e,n,()=>{let o,r;try{({value:o,done:r}=i.next())}catch(s){return void e.error(s)}r?e.complete():e.next(o)},0,!0)}),()=>Ct(i?.return)&&i.return()})}(t,n);if(xM(t))return function RJ(t,n){return OM(DM(t),n)}(t,n)}throw SM(t)}(t,n):Ii(t)}function PM(t){return t&&Ct(t.schedule)}function hg(t){return t[t.length-1]}function pg(t){return Ct(hg(t))?t.pop():void 0}function bu(t){return PM(hg(t))?t.pop():void 0}function We(...t){return ni(t,bu(t))}const{isArray:BJ}=Array,{getPrototypeOf:jJ,prototype:$J,keys:YJ}=Object;function IM(t){if(1===t.length){const n=t[0];if(BJ(n))return{args:n,keys:null};if(function UJ(t){return t&&"object"==typeof t&&jJ(t)===$J}(n)){const e=YJ(n);return{args:e.map(i=>n[i]),keys:e}}}return{args:t,keys:null}}const{isArray:WJ}=Array;function fg(t){return Ie(n=>function GJ(t,n){return WJ(n)?t(...n):t(n)}(t,n))}function NM(t,n){return t.reduce((e,i,o)=>(e[i]=n[o],e),{})}function xi(...t){const n=bu(t),e=pg(t),{args:i,keys:o}=IM(t);if(0===i.length)return ni([],n);const r=new Ut(function qJ(t,n,e=Bn){return i=>{VM(n,()=>{const{length:o}=t,r=new Array(o);let s=o,a=o;for(let c=0;c{const l=ni(t[c],n);let u=!1;l.subscribe(Zt(i,p=>{r[c]=p,u||(u=!0,a--),a||i.next(e(r.slice()))},()=>{--s||i.complete()}))},i)},i)}}(i,n,o?s=>NM(o,s):Bn));return e?r.pipe(fg(e)):r}function VM(t,n,e){t?Is(e,t,n):n()}const b0=ka(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"});function $n(t,n,e=1/0){return Ct(n)?$n((i,o)=>Ie((r,s)=>n(i,r,o,s))(Ii(t(i,o))),e):("number"==typeof n&&(e=n),dn((i,o)=>function KJ(t,n,e,i,o,r,s,a){const c=[];let l=0,u=0,p=!1;const _=()=>{p&&!c.length&&!l&&n.complete()},b=z=>l{r&&n.next(z),l++;let E=!1;Ii(e(z,u++)).subscribe(Zt(n,k=>{o?.(k),r?b(k):n.next(k)},()=>{E=!0},void 0,()=>{if(E)try{for(l--;c.length&&ly(k)):y(k)}_()}catch(k){n.error(k)}}))};return t.subscribe(Zt(n,b,()=>{p=!0,_()})),()=>{a?.()}}(i,o,t,e)))}function s1(t=1/0){return $n(Bn,t)}function yu(...t){return function JJ(){return s1(1)}()(ni(t,bu(t)))}function mg(t){return new Ut(n=>{Ii(t()).subscribe(n)})}function y0(t,n){const e=Ct(t)?t:()=>t,i=o=>o.error(e());return new Ut(n?o=>n.schedule(i,0,o):i)}const bo=new Ut(t=>t.complete());function gg(){return dn((t,n)=>{let e=null;t._refCount++;const i=Zt(n,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount)return void(e=null);const o=t._connection,r=e;e=null,o&&(!r||o===r)&&o.unsubscribe(),n.unsubscribe()});t.subscribe(i),i.closed||(e=t.connect())})}class vg extends Ut{constructor(n,e){super(),this.source=n,this.subjectFactory=e,this._subject=null,this._refCount=0,this._connection=null,Zc(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new Ft;const e=this.getSubject();n.add(this.source.subscribe(Zt(e,void 0,()=>{this._teardown(),e.complete()},i=>{this._teardown(),e.error(i)},()=>this._teardown()))),n.closed&&(this._connection=null,n=Ft.EMPTY)}return n}refCount(){return gg()(this)}}function mn(t,n){return dn((e,i)=>{let o=null,r=0,s=!1;const a=()=>s&&!o&&i.complete();e.subscribe(Zt(i,c=>{o?.unsubscribe();let l=0;const u=r++;Ii(t(c,u)).subscribe(o=Zt(i,p=>i.next(n?n(c,p,u,l++):p),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function io(t){return t<=0?()=>bo:dn((n,e)=>{let i=0;n.subscribe(Zt(e,o=>{++i<=t&&(e.next(o),t<=i&&e.complete())}))})}function gn(...t){const n=bu(t);return dn((e,i)=>{(n?yu(t,e,n):yu(t,e)).subscribe(i)})}function yt(t,n){return dn((e,i)=>{let o=0;e.subscribe(Zt(i,r=>t.call(n,r,o++)&&i.next(r)))})}function C0(t){return dn((n,e)=>{let i=!1;n.subscribe(Zt(e,o=>{i=!0,e.next(o)},()=>{i||e.next(t),e.complete()}))})}function FM(t=QJ){return dn((n,e)=>{let i=!1;n.subscribe(Zt(e,o=>{i=!0,e.next(o)},()=>i?e.complete():e.error(t())))})}function QJ(){return new b0}function Ns(t,n){const e=arguments.length>=2;return i=>i.pipe(t?yt((o,r)=>t(o,r,i)):Bn,io(1),e?C0(n):FM(()=>new b0))}function a1(t,n){return Ct(n)?$n(t,n,1):$n(t,1)}function ii(t,n,e){const i=Ct(t)||n||e?{next:t,error:n,complete:e}:t;return i?dn((o,r)=>{var s;null===(s=i.subscribe)||void 0===s||s.call(i);let a=!0;o.subscribe(Zt(r,c=>{var l;null===(l=i.next)||void 0===l||l.call(i,c),r.next(c)},()=>{var c;a=!1,null===(c=i.complete)||void 0===c||c.call(i),r.complete()},c=>{var l;a=!1,null===(l=i.error)||void 0===l||l.call(i,c),r.error(c)},()=>{var c,l;a&&(null===(c=i.unsubscribe)||void 0===c||c.call(i)),null===(l=i.finalize)||void 0===l||l.call(i)}))}):Bn}function uc(t){return dn((n,e)=>{let r,i=null,o=!1;i=n.subscribe(Zt(e,void 0,void 0,s=>{r=Ii(t(s,uc(t)(n))),i?(i.unsubscribe(),i=null,r.subscribe(e)):o=!0})),o&&(i.unsubscribe(),i=null,r.subscribe(e))})}function _g(t){return t<=0?()=>bo:dn((n,e)=>{let i=[];n.subscribe(Zt(e,o=>{i.push(o),t{for(const o of i)e.next(o);e.complete()},void 0,()=>{i=null}))})}function hc(t){return Ie(()=>t)}function c1(t){return dn((n,e)=>{try{n.subscribe(e)}finally{e.add(t)}})}function I(t){return dn((n,e)=>{Ii(t).subscribe(Zt(e,()=>e.complete(),qs)),!e.closed&&n.subscribe(e)})}const Mt="primary",Cu=Symbol("RouteTitle");class nZ{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e[0]:e}return null}getAll(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function l1(t){return new nZ(t)}function iZ(t,n,e){const i=e.path.split("/");if(i.length>t.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengthi[r]===o)}return t===n}function LM(t){return t.length>0?t[t.length-1]:null}function ha(t){return _0(t)?t:cu(t)?ni(Promise.resolve(t)):We(t)}const rZ={exact:function jM(t,n,e){if(!pc(t.segments,n.segments)||!w0(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!jM(t.children[i],n.children[i],e))return!1;return!0},subset:$M},HM={exact:function sZ(t,n){return us(t,n)},subset:function aZ(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>RM(t[e],n[e]))},ignored:()=>!0};function BM(t,n,e){return rZ[e.paths](t.root,n.root,e.matrixParams)&&HM[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function $M(t,n,e){return YM(t,n,n.segments,e)}function YM(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!pc(o,e)||n.hasChildren()||!w0(o,e,i))}if(t.segments.length===e.length){if(!pc(t.segments,e)||!w0(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!$M(t.children[o],n.children[o],i))return!1;return!0}{const o=e.slice(0,t.segments.length),r=e.slice(t.segments.length);return!!(pc(t.segments,o)&&w0(t.segments,o,i)&&t.children[Mt])&&YM(t.children[Mt],n,r,i)}}function w0(t,n,e){return n.every((i,o)=>HM[e](t[o].parameters,i.parameters))}class d1{constructor(n=new bn([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=l1(this.queryParams),this._queryParamMap}toString(){return dZ.serialize(this)}}class bn{constructor(n,e){this.segments=n,this.children=e,this.parent=null,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return S0(this)}}class wu{constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap??=l1(this.parameters),this._parameterMap}toString(){return GM(this)}}function pc(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let u1=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>new z0,providedIn:"root"})}return t})();class z0{parse(n){const e=new CZ(n);return new d1(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${zu(n.root,!0)}`,i=function pZ(t){const n=Object.entries(t).map(([e,i])=>Array.isArray(i)?i.map(o=>`${T0(e)}=${T0(o)}`).join("&"):`${T0(e)}=${T0(i)}`).filter(e=>e);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${e}${i}${"string"==typeof n.fragment?`#${function uZ(t){return encodeURI(t)}(n.fragment)}`:""}`}}const dZ=new z0;function S0(t){return t.segments.map(n=>GM(n)).join("/")}function zu(t,n){if(!t.hasChildren())return S0(t);if(n){const e=t.children[Mt]?zu(t.children[Mt],!1):"",i=[];return Object.entries(t.children).forEach(([o,r])=>{o!==Mt&&i.push(`${o}:${zu(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function lZ(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===Mt&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==Mt&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===Mt?[zu(t.children[Mt],!1)]:[`${o}:${zu(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[Mt]?`${S0(t)}/${e[0]}`:`${S0(t)}/(${e.join("//")})`}}function UM(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function T0(t){return UM(t).replace(/%3B/gi,";")}function yg(t){return UM(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function M0(t){return decodeURIComponent(t)}function WM(t){return M0(t.replace(/\+/g,"%20"))}function GM(t){return`${yg(t.path)}${function hZ(t){return Object.entries(t).map(([n,e])=>`;${yg(n)}=${yg(e)}`).join("")}(t.parameters)}`}const fZ=/^[^\/()?;#]+/;function Cg(t){const n=t.match(fZ);return n?n[0]:""}const mZ=/^[^\/()?;=#]+/,vZ=/^[^=?&#]+/,bZ=/^[^&#]+/;class CZ{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new bn([],{}):new bn([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(e).length>0)&&(i[Mt]=new bn(n,e)),i}parseSegment(){const n=Cg(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new j(4009,!1);return this.capture(n),new wu(M0(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function gZ(t){const n=t.match(mZ);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=Cg(this.remaining);o&&(i=o,this.capture(i))}n[M0(e)]=M0(i)}parseQueryParam(n){const e=function _Z(t){const n=t.match(vZ);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const s=function yZ(t){const n=t.match(bZ);return n?n[0]:""}(this.remaining);s&&(i=s,this.capture(i))}const o=WM(e),r=WM(i);if(n.hasOwnProperty(o)){let s=n[o];Array.isArray(s)||(s=[s],n[o]=s),s.push(r)}else n[o]=r}parseParens(n){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=Cg(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new j(4010,!1);let r;i.indexOf(":")>-1?(r=i.slice(0,i.indexOf(":")),this.capture(r),this.capture(":")):n&&(r=Mt);const s=this.parseChildren();e[r]=1===Object.keys(s).length?s[Mt]:new bn([],s),this.consumeOptional("//")}return e}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new j(4011,!1)}}function qM(t){return t.segments.length>0?new bn([],{[Mt]:t}):t}function KM(t){const n={};for(const[i,o]of Object.entries(t.children)){const r=KM(o);if(i===Mt&&0===r.segments.length&&r.hasChildren())for(const[s,a]of Object.entries(r.children))n[s]=a;else(r.segments.length>0||r.hasChildren())&&(n[i]=r)}return function wZ(t){if(1===t.numberOfChildren&&t.children[Mt]){const n=t.children[Mt];return new bn(t.segments.concat(n.segments),n.children)}return t}(new bn(t.segments,n))}function Su(t){return t instanceof d1}function JM(t){let n;const o=qM(function e(r){const s={};for(const c of r.children){const l=e(c);s[c.outlet]=l}const a=new bn(r.url,s);return r===t&&(n=a),a}(t.root));return n??o}function ZM(t,n,e,i){let o=t;for(;o.parent;)o=o.parent;if(0===n.length)return wg(o,o,o,e,i);const r=function SZ(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new XM(!0,0,t);let n=0,e=!1;const i=t.reduce((o,r,s)=>{if("object"==typeof r&&null!=r){if(r.outlets){const a={};return Object.entries(r.outlets).forEach(([c,l])=>{a[c]="string"==typeof l?l.split("/"):l}),[...o,{outlets:a}]}if(r.segmentPath)return[...o,r.segmentPath]}return"string"!=typeof r?[...o,r]:0===s?(r.split("/").forEach((a,c)=>{0==c&&"."===a||(0==c&&""===a?e=!0:".."===a?n++:""!=a&&o.push(a))}),o):[...o,r]},[]);return new XM(e,n,i)}(n);if(r.toRoot())return wg(o,o,new bn([],{}),e,i);const s=function TZ(t,n,e){if(t.isAbsolute)return new x0(n,!0,0);if(!e)return new x0(n,!1,NaN);if(null===e.parent)return new x0(e,!0,0);const i=D0(t.commands[0])?0:1;return function MZ(t,n,e){let i=t,o=n,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new j(4005,!1);o=i.segments.length}return new x0(i,!1,o-r)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(r,o,t),a=s.processChildren?Mu(s.segmentGroup,s.index,r.commands):eD(s.segmentGroup,s.index,r.commands);return wg(o,s.segmentGroup,a,e,i)}function D0(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function Tu(t){return"object"==typeof t&&null!=t&&t.outlets}function wg(t,n,e,i,o){let s,r={};i&&Object.entries(i).forEach(([c,l])=>{r[c]=Array.isArray(l)?l.map(u=>`${u}`):`${l}`}),s=t===n?e:QM(t,n,e);const a=qM(KM(s));return new d1(a,r,o)}function QM(t,n,e){const i={};return Object.entries(t.children).forEach(([o,r])=>{i[o]=r===n?e:QM(r,n,e)}),new bn(t.segments,i)}class XM{constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&D0(i[0]))throw new j(4003,!1);const o=i.find(Tu);if(o&&o!==LM(i))throw new j(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class x0{constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function eD(t,n,e){if(t??=new bn([],{}),0===t.segments.length&&t.hasChildren())return Mu(t,n,e);const i=function xZ(t,n,e){let i=0,o=n;const r={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return r;const s=t.segments[o],a=e[i];if(Tu(a))break;const c=`${a}`,l=i0&&void 0===c)break;if(c&&l&&"object"==typeof l&&void 0===l.outlets){if(!nD(c,l,s))return r;i+=2}else{if(!nD(c,{},s))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndexr!==Mt)&&t.children[Mt]&&1===t.numberOfChildren&&0===t.children[Mt].segments.length){const r=Mu(t.children[Mt],n,e);return new bn(t.segments,r.children)}return Object.entries(i).forEach(([r,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[r]=eD(t.children[r],n,s))}),Object.entries(t.children).forEach(([r,s])=>{void 0===i[r]&&(o[r]=s)}),new bn(t.segments,o)}}function zg(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=zg(new bn([],{}),0,i))}),n}function tD(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function nD(t,n,e){return t==e.path&&us(n,e.parameters)}const Du="imperative";var qt=function(t){return t[t.NavigationStart=0]="NavigationStart",t[t.NavigationEnd=1]="NavigationEnd",t[t.NavigationCancel=2]="NavigationCancel",t[t.NavigationError=3]="NavigationError",t[t.RoutesRecognized=4]="RoutesRecognized",t[t.ResolveStart=5]="ResolveStart",t[t.ResolveEnd=6]="ResolveEnd",t[t.GuardsCheckStart=7]="GuardsCheckStart",t[t.GuardsCheckEnd=8]="GuardsCheckEnd",t[t.RouteConfigLoadStart=9]="RouteConfigLoadStart",t[t.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",t[t.ChildActivationStart=11]="ChildActivationStart",t[t.ChildActivationEnd=12]="ChildActivationEnd",t[t.ActivationStart=13]="ActivationStart",t[t.ActivationEnd=14]="ActivationEnd",t[t.Scroll=15]="Scroll",t[t.NavigationSkipped=16]="NavigationSkipped",t}(qt||{});class hs{constructor(n,e){this.id=n,this.url=e}}class E0 extends hs{constructor(n,e,i="imperative",o=null){super(n,e),this.type=qt.NavigationStart,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Br extends hs{constructor(n,e,i){super(n,e),this.urlAfterRedirects=i,this.type=qt.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Qo=function(t){return t[t.Redirect=0]="Redirect",t[t.SupersededByNewNavigation=1]="SupersededByNewNavigation",t[t.NoDataFromResolver=2]="NoDataFromResolver",t[t.GuardRejected=3]="GuardRejected",t}(Qo||{}),k0=function(t){return t[t.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",t[t.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",t}(k0||{});class fc extends hs{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=qt.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class h1 extends hs{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=qt.NavigationSkipped}}class Sg extends hs{constructor(n,e,i,o){super(n,e),this.error=i,this.target=o,this.type=qt.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class iD extends hs{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=qt.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class kZ extends hs{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=qt.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class AZ extends hs{constructor(n,e,i,o,r){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r,this.type=qt.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class OZ extends hs{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=qt.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class PZ extends hs{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=qt.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class IZ{constructor(n){this.route=n,this.type=qt.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class NZ{constructor(n){this.route=n,this.type=qt.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class VZ{constructor(n){this.snapshot=n,this.type=qt.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class FZ{constructor(n){this.snapshot=n,this.type=qt.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class RZ{constructor(n){this.snapshot=n,this.type=qt.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class LZ{constructor(n){this.snapshot=n,this.type=qt.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class oD{constructor(n,e,i){this.routerEvent=n,this.position=e,this.anchor=i,this.type=qt.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Tg{}class A0{constructor(n,e){this.url=n,this.navigationBehaviorOptions=e}}class HZ{constructor(n){this.injector=n,this.outlet=null,this.route=null,this.children=new xu(this.injector),this.attachRef=null}}let xu=(()=>{class t{constructor(e){this.parentInjector=e,this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new HZ(this.parentInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static#e=this.\u0275fac=function(i){return new(i||t)(R(Li))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class rD{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const e=this.pathFromRoot(n);return e.length>1?e[e.length-2]:null}children(n){const e=Mg(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=Mg(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=Dg(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return Dg(n,this._root).map(e=>e.value)}}function Mg(t,n){if(t===n.value)return n;for(const e of n.children){const i=Mg(t,e);if(i)return i}return null}function Dg(t,n){if(t===n.value)return[n];for(const e of n.children){const i=Dg(t,e);if(i.length)return i.unshift(n),i}return[]}class jr{constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function p1(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class sD extends rD{constructor(n,e){super(n),this.snapshot=e,xg(this,n)}toString(){return this.snapshot.toString()}}function aD(t){const n=function BZ(t){const r=new P0([],{},{},"",{},Mt,t,null,{});return new cD("",new jr(r,[]))}(t),e=new rt([new wu("",{})]),i=new rt({}),o=new rt({}),r=new rt({}),s=new rt(""),a=new Po(e,i,r,s,o,Mt,t,n.root);return a.snapshot=n.root,new sD(new jr(a,[]),n)}class Po{constructor(n,e,i,o,r,s,a,c){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=s,this.component=a,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(Ie(l=>l[Cu]))??We(void 0),this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(Ie(n=>l1(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Ie(n=>l1(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function O0(t,n,e="emptyOnly"){let i;const{routeConfig:o}=t;return i=null===n||"always"!==e&&""!==o?.path&&(n.component||n.routeConfig?.loadComponent)?{params:{...t.params},data:{...t.data},resolve:{...t.data,...t._resolvedData??{}}}:{params:{...n.params,...t.params},data:{...n.data,...t.data},resolve:{...t.data,...n.data,...o?.data,...t._resolvedData}},o&&dD(o)&&(i.resolve[Cu]=o.title),i}class P0{get title(){return this.data?.[Cu]}constructor(n,e,i,o,r,s,a,c,l){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=s,this.component=a,this.routeConfig=c,this._resolve=l}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=l1(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=l1(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class cD extends rD{constructor(n,e){super(e),this.url=n,xg(this,e)}toString(){return lD(this._root)}}function xg(t,n){n.value._routerState=t,n.children.forEach(e=>xg(t,e))}function lD(t){const n=t.children.length>0?` { ${t.children.map(lD).join(", ")} } `:"";return`${t.value}${n}`}function Eg(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,us(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),us(n.params,e.params)||t.paramsSubject.next(e.params),function oZ(t,n){if(t.length!==n.length)return!1;for(let e=0;eus(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||kg(t.parent,n.parent))}function dD(t){return"string"==typeof t.title||null===t.title}let I0=(()=>{class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=Mt,this.activateEvents=new H,this.deactivateEvents=new H,this.attachEvents=new H,this.detachEvents=new H,this.parentContexts=W(xu),this.location=W(Gn),this.changeDetector=W(Ue),this.inputBinder=W(N0,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new j(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new j(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new j(4012,!1);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new j(4013,!1);this._activatedRoute=e;const o=this.location,s=e.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,c=new Ag(e,a,o.injector);this.activated=o.createComponent(s,{index:o.length,injector:c,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[ke]})}return t})();class Ag{__ngOutletInjector(n){return new Ag(this.route,this.childContexts,n)}constructor(n,e,i){this.route=n,this.childContexts=e,this.parent=i}get(n,e){return n===Po?this.route:n===xu?this.childContexts:this.parent.get(n,e)}}const N0=new oe("");let uD=(()=>{class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){const{activatedRoute:i}=e,o=xi([i.queryParams,i.params,i.data]).pipe(mn(([r,s,a],c)=>(a={...r,...s,...a},0===c?We(a):Promise.resolve(a)))).subscribe(r=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const s=function VG(t){const n=xt(t);if(!n)return null;const e=new $d(n);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}(i.component);if(s)for(const{templateName:a}of s.inputs)e.activatedComponentRef.setInput(a,r[a]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();function Eu(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function $Z(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return Eu(t,i,o);return Eu(t,i)})}(t,n,e);return new jr(i,o)}{if(t.shouldAttach(n.value)){const r=t.retrieve(n.value);if(null!==r){const s=r.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>Eu(t,a)),s}}const i=function YZ(t){return new Po(new rt(t.url),new rt(t.params),new rt(t.queryParams),new rt(t.fragment),new rt(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(r=>Eu(t,r));return new jr(i,o)}}class Og{constructor(n,e){this.redirectTo=n,this.navigationBehaviorOptions=e}}const hD="ngNavigationCancelingError";function V0(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=Su(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=pD(!1,Qo.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function pD(t,n){const e=new Error(`NavigationCancelingError: ${t||""}`);return e[hD]=!0,e.cancellationCode=n,e}function fD(t){return!!t&&t[hD]}let mD=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["ng-component"]],standalone:!0,features:[me],decls:1,vars:0,template:function(i,o){1&i&&S(0,"router-outlet")},dependencies:[I0],encapsulation:2})}return t})();function Pg(t){const n=t.children&&t.children.map(Pg),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==Mt&&(e.component=mD),e}function $r(t){return t.outlet||Mt}function ku(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let n=t.parent;n;n=n.parent){const e=n.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class QZ{constructor(n,e,i,o,r){this.routeReuseStrategy=n,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=r}activate(n){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,n),Eg(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=p1(e);n.children.forEach(r=>{const s=r.value.outlet;this.deactivateRoutes(r,o[s],i),delete o[s]}),Object.values(o).forEach(r=>{this.deactivateRouteAndItsChildren(r,i)})}deactivateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(o===r)if(o.component){const s=i.getContext(o.outlet);s&&this.deactivateChildRoutes(n,e,s.children)}else this.deactivateChildRoutes(n,e,i);else r&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(n,e){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,e):this.deactivateRouteAndOutlet(n,e)}detachAndStoreRouteSubtree(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=p1(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);if(i&&i.outlet){const s=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,r=p1(n);for(const s of Object.values(r))this.deactivateRouteAndItsChildren(s,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=p1(e);n.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new LZ(r.value.snapshot))}),n.children.length&&this.forwardEvent(new FZ(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,r=e?e.value:null;if(Eg(o),o===r)if(o.component){const s=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,s.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const s=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Eg(a.route.value),this.activateChildRoutes(n,null,s.children)}else{const a=ku(o.snapshot);s.attachRef=null,s.route=o,s.injector=a??s.injector,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(n,null,s.children)}}else this.activateChildRoutes(n,null,i)}}class gD{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class F0{constructor(n,e){this.component=n,this.route=e}}function XZ(t,n,e){const i=t._root;return Au(i,n?n._root:null,e,[i.value])}function f1(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function gV(t){return null!==oh(t)}(t)?n.get(t):t:i}function Au(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=p1(n);return t.children.forEach(s=>{(function tQ(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const r=t.value,s=n?n.value:null,a=e?e.getContext(t.value.outlet):null;if(s&&r.routeConfig===s.routeConfig){const c=function nQ(t,n,e){if("function"==typeof e)return e(t,n);switch(e){case"pathParamsChange":return!pc(t.url,n.url);case"pathParamsOrQueryParamsChange":return!pc(t.url,n.url)||!us(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!kg(t,n)||!us(t.queryParams,n.queryParams);default:return!kg(t,n)}}(s,r,r.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new gD(i)):(r.data=s.data,r._resolvedData=s._resolvedData),Au(t,n,r.component?a?a.children:null:e,i,o),c&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new F0(a.outlet.component,s))}else s&&Ou(n,a,o),o.canActivateChecks.push(new gD(i)),Au(t,null,r.component?a?a.children:null:e,i,o)})(s,r[s.value.outlet],e,i.concat([s.value]),o),delete r[s.value.outlet]}),Object.entries(r).forEach(([s,a])=>Ou(a,e.getContext(s),o)),o}function Ou(t,n,e){const i=p1(t),o=t.value;Object.entries(i).forEach(([r,s])=>{Ou(s,o.component?n?n.children.getContext(r):null:n,e)}),e.canDeactivateChecks.push(new F0(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function Pu(t){return"function"==typeof t}function vD(t){return t instanceof b0||"EmptyError"===t?.name}const R0=Symbol("INITIAL_VALUE");function m1(){return mn(t=>xi(t.map(n=>n.pipe(io(1),gn(R0)))).pipe(Ie(n=>{for(const e of n)if(!0!==e){if(e===R0)return R0;if(!1===e||lQ(e))return e}return!0}),yt(n=>n!==R0),io(1)))}function lQ(t){return Su(t)||t instanceof Og}function _D(t){return function Xr(...t){return Kc(t)}(ii(n=>{if("boolean"!=typeof n)throw V0(0,n)}),Ie(n=>!0===n))}class Ig{constructor(n){this.segmentGroup=n||null}}class L0 extends Error{constructor(n){super(),this.urlTree=n}}function g1(t){return y0(new Ig(t))}class wQ{constructor(n,e){this.urlSerializer=n,this.urlTree=e}lineralizeSegments(n,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return We(i);if(o.numberOfChildren>1||!o.children[Mt])return y0(new j(4e3,!1));o=o.children[Mt]}}applyRedirectCommands(n,e,i,o,r){if("string"!=typeof e){const a=e,{queryParams:c,fragment:l,routeConfig:u,url:p,outlet:_,params:b,data:y,title:z}=o,E=Er(r,()=>a({params:b,data:y,queryParams:c,fragment:l,routeConfig:u,url:p,outlet:_,title:z}));if(E instanceof d1)throw new L0(E);e=E}const s=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),n,i);if("/"===e[0])throw new L0(s);return s}applyRedirectCreateUrlTree(n,e,i,o){const r=this.createSegmentGroup(n,e.root,i,o);return new d1(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(n,e){const i={};return Object.entries(n).forEach(([o,r])=>{if("string"==typeof r&&":"===r[0]){const a=r.substring(1);i[o]=e[a]}else i[o]=r}),i}createSegmentGroup(n,e,i,o){const r=this.createSegments(n,e.segments,i,o);let s={};return Object.entries(e.children).forEach(([a,c])=>{s[a]=this.createSegmentGroup(n,c,i,o)}),new bn(r,s)}createSegments(n,e,i,o){return e.map(r=>":"===r.path[0]?this.findPosParam(n,r,o):this.findOrReturn(r,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new j(4001,!1);return o}findOrReturn(n,e){let i=0;for(const o of e){if(o.path===n.path)return e.splice(i),o;i++}return n}}const Ng={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function zQ(t,n,e,i,o){const r=Vg(t,n,e);return r.matched?(i=function WZ(t,n){return t.providers&&!t._injector&&(t._injector=C4(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function bQ(t,n,e,i){const o=n.canMatch;return o&&0!==o.length?We(o.map(s=>{const a=f1(s,t);return ha(function cQ(t){return t&&Pu(t.canMatch)}(a)?a.canMatch(n,e):Er(t,()=>a(n,e)))})).pipe(m1(),_D()):We(!0)}(i,n,e).pipe(Ie(s=>!0===s?r:{...Ng}))):We(r)}function Vg(t,n,e){if("**"===n.path)return function SQ(t){return{matched:!0,parameters:t.length>0?LM(t).parameters:{},consumedSegments:t,remainingSegments:[],positionalParamSegments:{}}}(e);if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...Ng}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||iZ)(e,t,n);if(!o)return{...Ng};const r={};Object.entries(o.posParams??{}).forEach(([a,c])=>{r[a]=c.path});const s=o.consumed.length>0?{...r,...o.consumed[o.consumed.length-1].parameters}:r;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function bD(t,n,e,i){return e.length>0&&function DQ(t,n,e){return e.some(i=>H0(t,n,i)&&$r(i)!==Mt)}(t,e,i)?{segmentGroup:new bn(n,MQ(i,new bn(e,t.children))),slicedSegments:[]}:0===e.length&&function xQ(t,n,e){return e.some(i=>H0(t,n,i))}(t,e,i)?{segmentGroup:new bn(t.segments,TQ(t,e,i,t.children)),slicedSegments:e}:{segmentGroup:new bn(t.segments,t.children),slicedSegments:e}}function TQ(t,n,e,i){const o={};for(const r of e)if(H0(t,n,r)&&!i[$r(r)]){const s=new bn([],{});o[$r(r)]=s}return{...i,...o}}function MQ(t,n){const e={};e[Mt]=n;for(const i of t)if(""===i.path&&$r(i)!==Mt){const o=new bn([],{});e[$r(i)]=o}return e}function H0(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class AQ{}class IQ{constructor(n,e,i,o,r,s,a){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.applyRedirects=new wQ(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new j(4002,`'${n.segmentGroup}'`)}recognize(){const n=bD(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(Ie(({children:e,rootSnapshot:i})=>{const o=new jr(i,e),r=new cD("",o),s=function zZ(t,n,e=null,i=null){return ZM(JM(t),n,e,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(s),{state:r,tree:s}}))}match(n){const e=new P0([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,Object.freeze({}),Mt,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,n,Mt,e).pipe(Ie(i=>({children:i,rootSnapshot:e})),uc(i=>{if(i instanceof L0)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Ig?this.noMatchError(i):i}))}processSegmentGroup(n,e,i,o,r){return 0===i.segments.length&&i.hasChildren()?this.processChildren(n,e,i,r):this.processSegment(n,e,i,i.segments,o,!0,r).pipe(Ie(s=>s instanceof jr?[s]:[]))}processChildren(n,e,i,o){const r=[];for(const s of Object.keys(i.children))"primary"===s?r.unshift(s):r.push(s);return ni(r).pipe(a1(s=>{const a=i.children[s],c=function JZ(t,n){const e=t.filter(i=>$r(i)===n);return e.push(...t.filter(i=>$r(i)!==n)),e}(e,s);return this.processSegmentGroup(n,c,a,s,o)}),function eZ(t,n){return dn(function XJ(t,n,e,i,o){return(r,s)=>{let a=e,c=n,l=0;r.subscribe(Zt(s,u=>{const p=l++;c=a?t(c,u,p):(a=!0,u),i&&s.next(c)},o&&(()=>{a&&s.next(c),s.complete()})))}}(t,n,arguments.length>=2,!0))}((s,a)=>(s.push(...a),s)),C0(null),function tZ(t,n){const e=arguments.length>=2;return i=>i.pipe(t?yt((o,r)=>t(o,r,i)):Bn,_g(1),e?C0(n):FM(()=>new b0))}(),$n(s=>{if(null===s)return g1(i);const a=yD(s);return function NQ(t){t.sort((n,e)=>n.value.outlet===Mt?-1:e.value.outlet===Mt?1:n.value.outlet.localeCompare(e.value.outlet))}(a),We(a)}))}processSegment(n,e,i,o,r,s,a){return ni(e).pipe(a1(c=>this.processSegmentAgainstRoute(c._injector??n,e,c,i,o,r,s,a).pipe(uc(l=>{if(l instanceof Ig)return We(null);throw l}))),Ns(c=>!!c),uc(c=>{if(vD(c))return function kQ(t,n,e){return 0===n.length&&!t.children[e]}(i,o,r)?We(new AQ):g1(i);throw c}))}processSegmentAgainstRoute(n,e,i,o,r,s,a,c){return function EQ(t,n,e,i){return!!($r(t)===i||i!==Mt&&H0(n,e,t))&&Vg(n,t,e).matched}(i,o,r,s)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(n,o,i,r,s,c):this.allowRedirects&&a?this.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,r,s,c):g1(o):g1(o)}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,r,s,a){const{matched:c,parameters:l,consumedSegments:u,positionalParamSegments:p,remainingSegments:_}=Vg(e,o,r);if(!c)return g1(e);"string"==typeof o.redirectTo&&"/"===o.redirectTo[0]&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const b=new P0(r,l,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,CD(o),$r(o),o.component??o._loadedComponent??null,o,wD(o)),y=O0(b,a,this.paramsInheritanceStrategy);b.params=Object.freeze(y.params),b.data=Object.freeze(y.data);const z=this.applyRedirects.applyRedirectCommands(u,o.redirectTo,p,b,n);return this.applyRedirects.lineralizeSegments(o,z).pipe($n(E=>this.processSegment(n,i,e,E.concat(_),s,!1,a)))}matchSegmentAgainstRoute(n,e,i,o,r,s){const a=zQ(e,i,o,n);return"**"===i.path&&(e.children={}),a.pipe(mn(c=>c.matched?this.getChildConfig(n=i._injector??n,i,o).pipe(mn(({routes:l})=>{const u=i._loadedInjector??n,{parameters:p,consumedSegments:_,remainingSegments:b}=c,y=new P0(_,p,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,CD(i),$r(i),i.component??i._loadedComponent??null,i,wD(i)),z=O0(y,s,this.paramsInheritanceStrategy);y.params=Object.freeze(z.params),y.data=Object.freeze(z.data);const{segmentGroup:E,slicedSegments:k}=bD(e,_,b,l);if(0===k.length&&E.hasChildren())return this.processChildren(u,l,E,y).pipe(Ie(ie=>new jr(y,ie)));if(0===l.length&&0===k.length)return We(new jr(y,[]));const A=$r(i)===r;return this.processSegment(u,l,E,k,A?Mt:r,!0,y).pipe(Ie(ie=>new jr(y,ie instanceof jr?[ie]:[])))})):g1(e)))}getChildConfig(n,e,i){return e.children?We({routes:e.children,injector:n}):e.loadChildren?void 0!==e._loadedRoutes?We({routes:e._loadedRoutes,injector:e._loadedInjector}):function _Q(t,n,e,i){const o=n.canLoad;return void 0===o||0===o.length?We(!0):We(o.map(s=>{const a=f1(s,t);return ha(function oQ(t){return t&&Pu(t.canLoad)}(a)?a.canLoad(n,e):Er(t,()=>a(n,e)))})).pipe(m1(),_D())}(n,e,i).pipe($n(o=>o?this.configLoader.loadChildren(n,e).pipe(ii(r=>{e._loadedRoutes=r.routes,e._loadedInjector=r.injector})):function CQ(t){return y0(pD(!1,Qo.GuardRejected))}())):We({routes:[],injector:n})}}function VQ(t){const n=t.value.routeConfig;return n&&""===n.path}function yD(t){const n=[],e=new Set;for(const i of t){if(!VQ(i)){n.push(i);continue}const o=n.find(r=>i.value.routeConfig===r.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):n.push(i)}for(const i of e){const o=yD(i.children);n.push(new jr(i.value,o))}return n.filter(i=>!e.has(i))}function CD(t){return t.data||{}}function wD(t){return t.resolve||{}}function zD(t){const n=t.children.map(e=>zD(e)).flat();return[t,...n]}function Fg(t){return mn(n=>{const e=t(n);return e?ni(e).pipe(Ie(()=>n)):We(n)})}let SD=(()=>{class t{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(r=>r.outlet===Mt);return i}getResolvedTitleForRoute(e){return e.data[Cu]}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(jQ),providedIn:"root"})}return t})(),jQ=(()=>{class t extends SD{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}static#e=this.\u0275fac=function(i){return new(i||t)(R(nJ))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const v1=new oe("",{providedIn:"root",factory:()=>({})}),_1=new oe("");let Rg=(()=>{class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=W(PS)}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return We(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=ha(e.loadComponent()).pipe(Ie(TD),ii(r=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=r}),c1(()=>{this.componentLoaders.delete(e)})),o=new vg(i,()=>new N).pipe(gg());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return We({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const r=function $Q(t,n,e,i){return ha(t.loadChildren()).pipe(Ie(TD),$n(o=>o instanceof tw||Array.isArray(o)?We(o):ni(n.compileModuleAsync(o))),Ie(o=>{i&&i(t);let r,s,a=!1;return Array.isArray(o)?(s=o,!0):(r=o.create(e).injector,s=r.get(_1,[],{optional:!0,self:!0}).flat()),{routes:s.map(Pg),injector:r}}))}(i,this.compiler,e,this.onLoadEndListener).pipe(c1(()=>{this.childrenLoaders.delete(i)})),s=new vg(r,()=>new N).pipe(gg());return this.childrenLoaders.set(i,s),s}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function TD(t){return function YQ(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}let Lg=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(UQ),providedIn:"root"})}return t})(),UQ=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const MD=new oe(""),DD=new oe("");function WQ(t,n,e){const i=t.get(DD),o=t.get(It);return t.get(De).runOutsideAngular(()=>{if(!o.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,new Promise(l=>setTimeout(l));let r;const s=new Promise(l=>{r=l}),a=o.startViewTransition(()=>(r(),function GQ(t){return new Promise(n=>{Xa(()=>setTimeout(n),{injector:t,phase:ia.Read})})}(t))),{onViewTransitionCreated:c}=i;return c&&Er(t,()=>c({transition:a,from:n,to:e})),s})}const xD=new oe("");let B0=(()=>{class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new N,this.transitionAbortSubject=new N,this.configLoader=W(Rg),this.environmentInjector=W(Li),this.urlSerializer=W(u1),this.rootContexts=W(xu),this.location=W(o1),this.inputBindingEnabled=null!==W(N0,{optional:!0}),this.titleStrategy=W(SD),this.options=W(v1,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=W(Lg),this.createViewTransition=W(MD,{optional:!0}),this.navigationErrorHandler=W(xD,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>We(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new NZ(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new IZ(o))}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e,i,o){return this.transitions=new rt({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:()=>{},reject:()=>{},promise:Promise.resolve(!0),source:Du,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(yt(r=>0!==r.id),Ie(r=>({...r,extractedUrl:this.urlHandlingStrategy.extract(r.rawUrl)})),mn(r=>{let s=!1,a=!1;return We(r).pipe(mn(c=>{if(this.navigationId>r.id)return this.cancelNavigationTransition(r,"",Qo.SupersededByNewNavigation),bo;this.currentTransition=r,this.currentNavigation={id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,trigger:c.source,extras:c.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const l=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!l&&"reload"!==(c.extras.onSameUrlNavigation??e.onSameUrlNavigation)){const p="";return this.events.next(new h1(c.id,this.urlSerializer.serialize(c.rawUrl),p,k0.IgnoredSameUrlNavigation)),c.resolve(!1),bo}if(this.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return We(c).pipe(mn(p=>{const _=this.transitions?.getValue();return this.events.next(new E0(p.id,this.urlSerializer.serialize(p.extractedUrl),p.source,p.restoredState)),_!==this.transitions?.getValue()?bo:Promise.resolve(p)}),function FQ(t,n,e,i,o,r){return $n(s=>function OQ(t,n,e,i,o,r,s="emptyOnly"){return new IQ(t,n,e,i,o,s,r).recognize()}(t,n,e,i,s.extractedUrl,o,r).pipe(Ie(({state:a,tree:c})=>({...s,targetSnapshot:a,urlAfterRedirects:c}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),ii(p=>{r.targetSnapshot=p.targetSnapshot,r.urlAfterRedirects=p.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:p.urlAfterRedirects};const _=new iD(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot);this.events.next(_)}));if(l&&this.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){const{id:p,extractedUrl:_,source:b,restoredState:y,extras:z}=c,E=new E0(p,this.urlSerializer.serialize(_),b,y);this.events.next(E);const k=aD(this.rootComponentType).snapshot;return this.currentTransition=r={...c,targetSnapshot:k,urlAfterRedirects:_,extras:{...z,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=_,We(r)}{const p="";return this.events.next(new h1(c.id,this.urlSerializer.serialize(c.extractedUrl),p,k0.IgnoredByUrlHandlingStrategy)),c.resolve(!1),bo}}),ii(c=>{const l=new kZ(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(l)}),Ie(c=>(this.currentTransition=r={...c,guards:XZ(c.targetSnapshot,c.currentSnapshot,this.rootContexts)},r)),function dQ(t,n){return $n(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:r,canDeactivateChecks:s}}=e;return 0===s.length&&0===r.length?We({...e,guardsResult:!0}):function uQ(t,n,e,i){return ni(t).pipe($n(o=>function vQ(t,n,e,i,o){const r=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return r&&0!==r.length?We(r.map(a=>{const c=ku(n)??o,l=f1(a,c);return ha(function aQ(t){return t&&Pu(t.canDeactivate)}(l)?l.canDeactivate(t,n,e,i):Er(c,()=>l(t,n,e,i))).pipe(Ns())})).pipe(m1()):We(!0)}(o.component,o.route,e,n,i)),Ns(o=>!0!==o,!0))}(s,i,o,t).pipe($n(a=>a&&function iQ(t){return"boolean"==typeof t}(a)?function hQ(t,n,e,i){return ni(n).pipe(a1(o=>yu(function fQ(t,n){return null!==t&&n&&n(new VZ(t)),We(!0)}(o.route.parent,i),function pQ(t,n){return null!==t&&n&&n(new RZ(t)),We(!0)}(o.route,i),function gQ(t,n,e){const i=n[n.length-1],r=n.slice(0,n.length-1).reverse().map(s=>function eQ(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(s)).filter(s=>null!==s).map(s=>mg(()=>We(s.guards.map(c=>{const l=ku(s.node)??e,u=f1(c,l);return ha(function sQ(t){return t&&Pu(t.canActivateChild)}(u)?u.canActivateChild(i,t):Er(l,()=>u(i,t))).pipe(Ns())})).pipe(m1())));return We(r).pipe(m1())}(t,o.path,e),function mQ(t,n,e){const i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||0===i.length)return We(!0);const o=i.map(r=>mg(()=>{const s=ku(n)??e,a=f1(r,s);return ha(function rQ(t){return t&&Pu(t.canActivate)}(a)?a.canActivate(n,t):Er(s,()=>a(n,t))).pipe(Ns())}));return We(o).pipe(m1())}(t,o.route,e))),Ns(o=>!0!==o,!0))}(i,r,t,n):We(a)),Ie(a=>({...e,guardsResult:a})))})}(this.environmentInjector,c=>this.events.next(c)),ii(c=>{if(r.guardsResult=c.guardsResult,c.guardsResult&&"boolean"!=typeof c.guardsResult)throw V0(0,c.guardsResult);const l=new AZ(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);this.events.next(l)}),yt(c=>!!c.guardsResult||(this.cancelNavigationTransition(c,"",Qo.GuardRejected),!1)),Fg(c=>{if(c.guards.canActivateChecks.length)return We(c).pipe(ii(l=>{const u=new OZ(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(u)}),mn(l=>{let u=!1;return We(l).pipe(function RQ(t,n){return $n(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return We(e);const r=new Set(o.map(c=>c.route)),s=new Set;for(const c of r)if(!s.has(c))for(const l of zD(c))s.add(l);let a=0;return ni(s).pipe(a1(c=>r.has(c)?function LQ(t,n,e,i){const o=t.routeConfig,r=t._resolve;return void 0!==o?.title&&!dD(o)&&(r[Cu]=o.title),function HQ(t,n,e,i){const o=bg(t);if(0===o.length)return We({});const r={};return ni(o).pipe($n(s=>function BQ(t,n,e,i){const o=ku(n)??i,r=f1(t,o);return ha(r.resolve?r.resolve(n,e):Er(o,()=>r(n,e)))}(t[s],n,e,i).pipe(Ns(),ii(a=>{if(a instanceof Og)throw V0(new z0,a);r[s]=a}))),_g(1),hc(r),uc(s=>vD(s)?bo:y0(s)))}(r,t,n,i).pipe(Ie(s=>(t._resolvedData=s,t.data=O0(t,t.parent,e).resolve,null)))}(c,i,t,n):(c.data=O0(c,c.parent,t).resolve,We(void 0))),ii(()=>a++),_g(1),$n(c=>a===s.size?We(e):bo))})}(this.paramsInheritanceStrategy,this.environmentInjector),ii({next:()=>u=!0,complete:()=>{u||this.cancelNavigationTransition(l,"",Qo.NoDataFromResolver)}}))}),ii(l=>{const u=new PZ(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(u)}))}),Fg(c=>{const l=u=>{const p=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&p.push(this.configLoader.loadComponent(u.routeConfig).pipe(ii(_=>{u.component=_}),Ie(()=>{})));for(const _ of u.children)p.push(...l(_));return p};return xi(l(c.targetSnapshot.root)).pipe(C0(null),io(1))}),Fg(()=>this.afterPreactivation()),mn(()=>{const{currentSnapshot:c,targetSnapshot:l}=r,u=this.createViewTransition?.(this.environmentInjector,c.root,l.root);return u?ni(u).pipe(Ie(()=>r)):We(r)}),Ie(c=>{const l=function jZ(t,n,e){const i=Eu(t,n._root,e?e._root:void 0);return new sD(i,n)}(e.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=r={...c,targetRouterState:l},this.currentNavigation.targetRouterState=l,r}),ii(()=>{this.events.next(new Tg)}),((t,n,e,i)=>Ie(o=>(new QZ(n,o.targetRouterState,o.currentRouterState,e,i).activate(t),o)))(this.rootContexts,e.routeReuseStrategy,c=>this.events.next(c),this.inputBindingEnabled),io(1),ii({next:c=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Br(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),this.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0)},complete:()=>{s=!0}}),I(this.transitionAbortSubject.pipe(ii(c=>{throw c}))),c1(()=>{!s&&!a&&this.cancelNavigationTransition(r,"",Qo.SupersededByNewNavigation),this.currentTransition?.id===r.id&&(this.currentNavigation=null,this.currentTransition=null)}),uc(c=>{if(a=!0,fD(c))this.events.next(new fc(r.id,this.urlSerializer.serialize(r.extractedUrl),c.message,c.cancellationCode)),function UZ(t){return fD(t)&&Su(t.url)}(c)?this.events.next(new A0(c.url,c.navigationBehaviorOptions)):r.resolve(!1);else{const l=new Sg(r.id,this.urlSerializer.serialize(r.extractedUrl),c,r.targetSnapshot??void 0);try{const u=Er(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(u instanceof Og){const{message:p,cancellationCode:_}=V0(0,u);this.events.next(new fc(r.id,this.urlSerializer.serialize(r.extractedUrl),p,_)),this.events.next(new A0(u.redirectTo,u.navigationBehaviorOptions))}else{this.events.next(l);const p=e.errorHandler(c);r.resolve(!!p)}}catch(u){this.options.resolveNavigationPromiseOnError?r.resolve(!1):r.reject(u)}}return bo}))}))}cancelNavigationTransition(e,i,o){const r=new fc(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(r),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function qQ(t){return t!==Du}let KQ=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(ZQ),providedIn:"root"})}return t})();class JQ{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}}let ZQ=(()=>{class t extends JQ{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ED=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:()=>W(QQ),providedIn:"root"})}return t})(),QQ=(()=>{class t extends ED{constructor(){super(...arguments),this.location=W(o1),this.urlSerializer=W(u1),this.options=W(v1,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=W(Lg),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new d1,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=aD(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{"popstate"===i.type&&e(i.url,i.state)})}handleRouterEvent(e,i){if(e instanceof E0)this.stateMemento=this.createStateMemento();else if(e instanceof h1)this.rawUrlTree=i.initialUrl;else if(e instanceof iD){if("eager"===this.urlUpdateStrategy&&!i.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(o,i)}}else e instanceof Tg?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i))):e instanceof fc&&(e.code===Qo.GuardRejected||e.code===Qo.NoDataFromResolver)?this.restoreHistory(i):e instanceof Sg?this.restoreHistory(i,!0):e instanceof Br&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e);if(this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl){const s={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(o,"",s)}else{const r={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(o,"",r)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-this.browserPageId;0!==r?this.location.historyGo(r):this.currentUrlTree===e.finalUrl&&0===r&&(this.resetState(e),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Iu=function(t){return t[t.COMPLETE=0]="COMPLETE",t[t.FAILED=1]="FAILED",t[t.REDIRECTING=2]="REDIRECTING",t}(Iu||{});function kD(t,n){t.events.pipe(yt(e=>e instanceof Br||e instanceof fc||e instanceof Sg||e instanceof h1),Ie(e=>e instanceof Br||e instanceof h1?Iu.COMPLETE:e instanceof fc&&(e.code===Qo.Redirect||e.code===Qo.SupersededByNewNavigation)?Iu.REDIRECTING:Iu.FAILED),yt(e=>e!==Iu.REDIRECTING),io(1)).subscribe(()=>{n()})}function XQ(t){throw t}const eX={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},tX={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let oi=(()=>{class t{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.console=W(wS),this.stateManager=W(ED),this.options=W(v1,{optional:!0})||{},this.pendingTasks=W(Ya),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=W(B0),this.urlSerializer=W(u1),this.location=W(o1),this.urlHandlingStrategy=W(Lg),this._events=new N,this.errorHandler=this.options.errorHandler||XQ,this.navigated=!1,this.routeReuseStrategy=W(KQ),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=W(_1,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!W(N0,{optional:!0}),this.eventsSubscription=new Ft,this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const e=this.navigationTransitions.events.subscribe(i=>{try{const o=this.navigationTransitions.currentTransition,r=this.navigationTransitions.currentNavigation;if(null!==o&&null!==r)if(this.stateManager.handleRouterEvent(i,r),i instanceof fc&&i.code!==Qo.Redirect&&i.code!==Qo.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Br)this.navigated=!0;else if(i instanceof A0){const s=i.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),c={info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||"eager"===this.urlUpdateStrategy||qQ(o.source),...s};this.scheduleNavigation(a,Du,null,c,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function iX(t){return!(t instanceof Tg||t instanceof A0)})(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Du,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(e,"popstate",i)},0)})}navigateToSyncWithBrowser(e,i,o){const r={replaceUrl:!0},s=o?.navigationId?o:null;if(o){const c={...o};delete c.navigationId,delete c.\u0275routerPageId,0!==Object.keys(c).length&&(r.state=c)}const a=this.parseUrl(e);this.scheduleNavigation(a,i,s,r)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(Pg),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){const{relativeTo:o,queryParams:r,fragment:s,queryParamsHandling:a,preserveFragment:c}=i,l=c?this.currentUrlTree.fragment:s;let p,u=null;switch(a){case"merge":u={...this.currentUrlTree.queryParams,...r};break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=r||null}null!==u&&(u=this.removeEmptyProps(u));try{p=JM(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||"/"!==e[0][0])&&(e=[]),p=this.currentUrlTree.root}return ZM(p,e,u,l??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Su(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,Du,null,i)}navigate(e,i={skipLocationChange:!1}){return function nX(t){for(let n=0;n(null!=r&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,s){if(this.disposed)return Promise.resolve(!1);let a,c,l;s?(a=s.resolve,c=s.reject,l=s.promise):l=new Promise((p,_)=>{a=p,c=_});const u=this.pendingTasks.add();return kD(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:a,reject:c,promise:l,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),l.catch(p=>Promise.reject(p))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),b1=(()=>{class t{constructor(e,i,o,r,s,a){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=r,this.el=s,this.locationStrategy=a,this.href=null,this.commands=null,this.onChanges=new N,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const c=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===c||"area"===c,this.isAnchorElement?this.subscription=e.events.subscribe(l=>{l instanceof Br&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,r,s){const a=this.urlTree;return!!(null===a||this.isAnchorElement&&(0!==e||i||o||r||s||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(a,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const e=this.urlTree;this.href=null!==e&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(e)):null;const i=null===this.href?null:function Kb(t,n,e){return function yL(t,n){return"src"===n&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===n&&("base"===t||"link"===t)?qb:Ot}(n,e)(t)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(e,i){const o=this.renderer,r=this.el.nativeElement;null!==i?o.setAttribute(r,e,i):o.removeAttribute(r,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po),function md(t){return function qF(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let o=0;for(;o{class t{constructor(e,i,o,r,s){this.router=e,this.injector=o,this.preloadingStrategy=r,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(yt(e=>e instanceof Br),a1(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const r of i){r.providers&&!r._injector&&(r._injector=C4(r.providers,e,`Route: ${r.path}`));const s=r._injector??e,a=r._loadedInjector??s;(r.loadChildren&&!r._loadedRoutes&&void 0===r.canLoad||r.loadComponent&&!r._loadedComponent)&&o.push(this.preloadConfig(s,r)),(r.children||r._loadedRoutes)&&o.push(this.processRoutes(a,r.children??r._loadedRoutes))}return ni(o).pipe(s1())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):We(null);const r=o.pipe($n(s=>null===s?We(void 0):(i._loadedRoutes=s.routes,i._loadedInjector=s.injector,this.processRoutes(s.injector??e,s.routes))));return i.loadComponent&&!i._loadedComponent?ni([r,this.loader.loadComponent(i)]).pipe(s1()):r})}static#e=this.\u0275fac=function(i){return new(i||t)(R(oi),R(PS),R(Li),R(AD),R(Rg))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Hg=new oe("");let OD=(()=>{class t{constructor(e,i,o,r,s={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=r,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},this.environmentInjector=W(Li),s.scrollPositionRestoration||="disabled",s.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof E0?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Br?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof h1&&e.code===k0.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof oD&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){var o=this;this.zone.runOutsideAngular(Di(function*(){yield new Promise(r=>{setTimeout(()=>{r()}),Xa(()=>{r()},{injector:o.environmentInjector})}),o.zone.run(()=>{o.transitions.events.next(new oD(e,"popstate"===o.lastSource?o.store[o.restoredId]:null,i))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){U8()};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();function ps(t,n){return{\u0275kind:t,\u0275providers:n}}function ID(){const t=W(tn);return n=>{const e=t.get(Ko);if(n!==e.components[0])return;const i=t.get(oi),o=t.get(ND);1===t.get(Bg)&&i.initialNavigation(),t.get(VD,null,At.Optional)?.setUpPreloading(),t.get(Hg,null,At.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const ND=new oe("",{factory:()=>new N}),Bg=new oe("",{providedIn:"root",factory:()=>1}),VD=new oe("");function dX(t){return ps(0,[{provide:VD,useExisting:sX},{provide:AD,useExisting:t}])}function hX(t){return ps(9,[{provide:MD,useValue:WQ},{provide:DD,useValue:{skipNextTransition:!!t?.skipInitialTransition,...t}}])}const FD=new oe("ROUTER_FORROOT_GUARD"),pX=[o1,{provide:u1,useClass:z0},oi,xu,{provide:Po,useFactory:function PD(t){return t.routerState.root},deps:[oi]},Rg,[]];let RD=(()=>{class t{constructor(e){}static forRoot(e,i){return{ngModule:t,providers:[pX,[],{provide:_1,multi:!0,useValue:e},{provide:FD,useFactory:vX,deps:[[oi,new ed,new lh]]},{provide:v1,useValue:i||{}},i?.useHash?{provide:cc,useClass:BG}:{provide:cc,useClass:ET},{provide:Hg,useFactory:()=>{const t=W(nK),n=W(De),e=W(v1),i=W(B0),o=W(u1);return e.scrollOffset&&t.setOffset(e.scrollOffset),new OD(o,i,t,n,e)}},i?.preloadingStrategy?dX(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?_X(i):[],i?.bindToComponentInputs?ps(8,[uD,{provide:N0,useExisting:uD}]).\u0275providers:[],i?.enableViewTransitions?hX().\u0275providers:[],[{provide:LD,useFactory:ID},{provide:$4,multi:!0,useExisting:LD}]]}}static forChild(e){return{ngModule:t,providers:[{provide:_1,multi:!0,useValue:e}]}}static#e=this.\u0275fac=function(i){return new(i||t)(R(FD,8))};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function vX(t){return"guarded"}function _X(t){return["disabled"===t.initialNavigation?ps(3,[{provide:bm,multi:!0,useFactory:()=>{const n=W(oi);return()=>{n.setUpLocationChangeListener()}}},{provide:Bg,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?ps(2,[{provide:Bg,useValue:0},{provide:bm,multi:!0,deps:[tn],useFactory:n=>{const e=n.get(LG,Promise.resolve());return()=>e.then(()=>new Promise(i=>{const o=n.get(oi),r=n.get(ND);kD(o,()=>{i(!0)}),n.get(B0).afterPreactivation=()=>(i(!0),r.closed?We(void 0):r),o.initialNavigation()}))}}]).\u0275providers:[]]}const LD=new oe(""),Vs={gitRepoUrl:"https://github.com/7yuee/nav",provider:"Github",branch:"main",hashMode:!0};var yX=fe(476),CX=fe.n(yX),wX=fe(821),zX=fe.n(wX);const SX=JSON.parse('[{"title":"\u5b9e\u7528\u5de5\u5177","nav":[{"title":"\u5f00\u53d1\u76f8\u5173","nav":[{"title":"\u5f00\u53d1\u795e\u5668","nav":[{"name":"Github-CLI","createdAt":"2021-02-18 21:06:06","rate":5,"desc":"GitHub\u7684\u5b98\u65b9\u547d\u4ee4\u884c\u5de5\u5177","top":false,"icon":"https://github.githubassets.com/favicons/favicon.svg","url":"https://cli.github.com/","urls":{"-3":"https://github.com/cli/cli"},"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":1},{"name":"Coveralls","icon":"https://coveralls.io/favicon.png","url":"https://coveralls.io/","desc":"\u901a\u8fc7\u663e\u793a\u6d4b\u8bd5\u5957\u4ef6\u672a\u6db5\u76d6\u4ee3\u7801\u7684\u54ea\u4e9b\u90e8\u5206\uff0c\u6211\u4eec\u53ef\u4ee5\u5e2e\u52a9\u60a8\u81ea\u4fe1\u5730\u4ea4\u4ed8\u4ee3\u7801\u3002\u514d\u8d39\u63d0\u4f9b\u5f00\u6e90\u8f6f\u4ef6\u5e93","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":2},{"name":"Releasly","desc":"\u5728\u65b0\u7684\u5f00\u6e90\u7248\u672c\u53d1\u5e03\u65f6\u6536\u5230\u901a\u77e5\uff0c\u76f4\u63a5\u53d1\u9001\u5230\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u4e2d\u3002","url":"https://www.releasly.co/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":3},{"name":"Convert cURL","desc":"\u5c06curl\u547d\u4ee4\u8f6c\u6362\u4e3aPython\uff0cJavaScript\uff0cPHP\uff0cR\uff0cGo\uff0cRust\uff0cDart\uff0cJSON\uff0cAnsible\uff0cElixir\u3002","url":"https://curl.trillworks.com/","urls":{"-3":"https://github.com/NickCarneiro/curlconverter"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":4},{"name":"Supervisor","desc":"Supervisor\u662f\u4e00\u4e2a\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u7cfb\u7edf\uff0c\u5141\u8bb8\u5176\u7528\u6237\u76d1\u89c6\u548c\u63a7\u5236\u7c7b\u4f3cUNIX\u7684\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u591a\u4e2a\u8fdb\u7a0b\u3002","url":"http://supervisord.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":5},{"icon":"https://www.sonarqube.org/favicon-152.png","name":"SonarQube","desc":"\u4ee3\u7801\u8d28\u91cf\u548c\u5b89\u5168\u6027\u68c0\u67e5, \u652f\u6301\u6240\u6709\u5f00\u53d1\u4eba\u5458\u7f16\u5199\u66f4\u5e72\u51c0\uff0c\u66f4\u5b89\u5168\u7684\u4ee3\u7801\u3002","url":"https://www.sonarqube.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":6},{"icon":"https://paste.ubuntu.com/favicon.ico","name":"Pastebin","desc":"\u5728\u7ebf\u5171\u4eab\u4ee3\u7801\uff0c\u5c06\u4ee3\u7801\u4ee5URL\u5f62\u5f0f\u53d1\u9001\u4ee5\u4fbf\u67e5\u770b","url":"https://paste.ubuntu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":7},{"icon":"https://avatars2.githubusercontent.com/u/30217756?s=200&v=4","name":"UPX","desc":"UPX-\u53ef\u6267\u884c\u6587\u4ef6\u7684\u7ec8\u6781\u6253\u5305\u5668","url":"https://github.com/upx/upx","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":8},{"icon":"https://avatars2.githubusercontent.com/u/30217756?s=200&v=4","name":"askgit","desc":"\u4f7f\u7528SQL\u67e5\u8be2git\u5b58\u50a8\u5e93\u3002\u751f\u6210\u62a5\u544a\uff0c\u6267\u884c\u72b6\u6001\u68c0\u67e5\uff0c\u5206\u6790\u4ee3\u7801\u5e93\u3002","url":"https://github.com/augmentable-dev/askgit","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":9},{"icon":"https://avatars3.githubusercontent.com/u/1396951?s=200&v=4","name":"Sentry","desc":"Web\u5e94\u7528\u7a0b\u5e8f\uff0c\u79fb\u52a8\u5e94\u7528\u7a0b\u5e8f\u548c\u6e38\u620f\u7684\u5b9e\u65f6\u5d29\u6e83\u62a5\u544a\u3002","url":"https://sentry.io/","urls":{"-3":"https://github.com/getsentry"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":10},{"icon":"https://randomuser.me/favicon.ico","name":"randomuser","desc":"\u968f\u673a\u7528\u6237\u751f\u6210\u5668\u662f\u7528\u4e8e\u751f\u6210\u5360\u4f4d\u7b26\u7528\u6237\u4fe1\u606f\u7684\u514d\u8d39API\u3002 \u83b7\u53d6\u4e2a\u4eba\u8d44\u6599\u7167\u7247\uff0c\u59d3\u540d\u7b49\u3002 \u5bf9\u4e8e\u4eba\u4eec\u6765\u8bf4\uff0c\u5c31\u50cfLorem Ipsum\u3002","url":"https://randomuser.me/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":11},{"icon":"https://camo.githubusercontent.com/ebfdd465daa90626d0ab0d0fddc0e457c942a392/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f616e7572616768617a72612f696d6167652f75706c6f61642f76313539343930383234322f6c6f676f5f636373776d652e737667","name":"github-readme-stats","desc":"\u5728\u4f60\u7684 README \u4e2d \u83b7\u53d6\u52a8\u6001\u751f\u6210\u7684 GitHub \u7edf\u8ba1\u4fe1\u606f","url":"https://github.com/anuraghazra/github-readme-stats/blob/master/readme_cn.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":12},{"icon":"https://i.imgur.com/zBEQq4w.png","name":"Hits","desc":"\u4e86\u89e3\u6709\u591a\u5c11\u4eba\u6b63\u5728\u67e5\u770b\u60a8\u7684GitHub\u9879\u76ee\u7684\u7b80\u5355\u65b9\u6cd5","url":"http://hits.dwyl.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":13},{"name":"GitHub \u6587\u4ef6\u52a0\u901f","desc":"GitHub \u6587\u4ef6\u52a0\u901f","url":"https://shrill-pond-3e81.hunsh.workers.dev/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":14},{"name":"Shields IO","desc":"svg\u751f\u6210\u7248\u672c\u53f7\u56fe\u6807","url":"https://shields.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":15},{"icon":"https://www.fundebug.com/favicon.ico","name":"FunDebug","desc":"\u652f\u6301\u524d\u7aefJavaScript\uff0c\u540e\u7aefNode.js\u4ee5\u53ca\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u9519\u8bef\u76d1\u63a7","url":"https://www.fundebug.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":16},{"icon":"http://www.asciiworld.com/favicon.ico","name":"Asciiworld","desc":"WA\uff01\u539f\u6765\u90a3\u4e9b\u5e74\u7a0b\u5e8f\u733f\u641e\u602a\u7684\u6ce8\u91ca\u90fd\u5728\u8fd9\u91cc","url":"http://www.asciiworld.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":17},{"icon":"https://jsfiddle.net/img/favicon.png","name":"jsfiddle","desc":"\u5f3a\u5927\u7684\u524d\u7aef\u4ee3\u7801\u5728\u7ebf\u6f14\u793a\u7684\u7f51\u7ad9","url":"http://jsfiddle.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":18},{"icon":"https://user-images.githubusercontent.com/799578/50462941-8075fe80-09c3-11e9-89e7-af0cb7991406.png","name":"CODEIF","desc":"\u53d8\u91cf\u547d\u540d\u795e\u5668","url":"https://unbug.github.io/codelf/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":19},{"icon":"http://asciiflow.com/images/favicon.png","name":"ASCIIFlow Infinity","desc":"\u65e0\u9650\u7684ASCII\u56fe\u8868\uff0c\u4fdd\u5b58\u5230\u8c37\u6b4c\u9a71\u52a8\u5668\uff0c\u8c03\u6574\u5927\u5c0f\uff0c\u81ea\u7531\u7ed8\u5236\uff0c\u5e76\u76f4\u63a5\u8f93\u51fa\u5230\u6587\u672c/HTML\u3002","url":"http://asciiflow.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":20},{"icon":"https://kinolien.github.io/gitzip/images/gitzip.png","name":"gitzip","desc":"\u5b83\u53ef\u4ee5\u5c06GITHUB\u5b58\u50a8\u5e93\u7684\u5b50\u6587\u4ef6\u5939/\u5b50\u76ee\u5f55\u4f5c\u4e3azip\u5e76\u4e0b\u8f7d","url":"https://kinolien.github.io/gitzip/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":21},{"icon":"http://sc.ftqq.com/static/image/favlogo.png","name":"Server\u9171","desc":"\u300cServer\u9171\u300d\uff0c\u82f1\u6587\u540d\u300cServerChan\u300d\uff0c\u662f\u4e00\u6b3e\u300c\u7a0b\u5e8f\u5458\u300d\u548c\u300c\u670d\u52a1\u5668\u300d\u4e4b\u95f4\u7684\u901a\u4fe1\u8f6f\u4ef6\u3002","url":"http://sc.ftqq.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":22},{"name":"mkcert","desc":"\u4e00\u4e2a\u7b80\u5355\u7684\u96f6\u914d\u7f6e\u5de5\u5177\uff0c\u53ef\u4ee5\u4f7f\u7528\u60a8\u559c\u6b22\u7684\u4efb\u4f55\u540d\u79f0\u5236\u4f5c\u672c\u5730\u53ef\u4fe1\u8d56\u7684SSL\u5f00\u53d1\u8bc1\u4e66","url":"https://github.com/FiloSottile/mkcert","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":23},{"icon":"https://carbon.now.sh/favicon.ico","name":"carbon","desc":"\u521b\u5efa\u548c\u5206\u4eab\u6e90\u4ee3\u7801\u7684\u7cbe\u7f8e\u56fe\u50cf","url":"https://carbon.now.sh","urls":{"-3":"https://github.com/dawnlabs/carbon"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":24},{"name":"setup-ipsec-vpn","desc":"\u7528\u4e8e\u6784\u5efa\u60a8\u81ea\u5df1\u7684IPsec VPN\u670d\u52a1\u5668\u7684\u811a\u672c\uff0c\u5728Ubuntu\uff0cDebian\u548cCentOS\u4e0a\u4f7f\u7528IPsec / L2TP\u548cCisco IPsec","url":"https://github.com/hwdsl2/setup-ipsec-vpn","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":25},{"icon":"https://www.digitalocean.com/favicon.ico","name":"nginxconfig","desc":"nginx\u914d\u7f6e\u751f\u6210\u5668","url":"https://www.digitalocean.com/community/tools/nginx#?","urls":{"-3":"https://github.com/digitalocean/nginxconfig.io"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":26},{"name":"GraphQL Explorer","desc":"GraphQL\u8d44\u6e90\u7ba1\u7406\u5668\u5229\u7528\u771f\u5b9e\u7684\u3001\u5b9e\u65f6\u7684\u751f\u4ea7\u6570\u636e","url":"https://developer.github.com/v4/explorer/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":27},{"name":"patorjk","desc":"\u5c06\u6587\u672c\u8f6c\u6362\u6210ASCII","url":"http://patorjk.com/software/taag/#p=display&f=Graffiti&t=xiejiahe","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":28},{"icon":"https://avatars0.githubusercontent.com/u/62133242?s=200&v=4","name":"lens","desc":"Lens\u63a7\u5236Kubernetes\u96c6\u7fa4\u6240\u9700\u7684\u552f\u4e00IDE\u3002\u5b83\u662f\u9002\u7528\u4e8eMacOS\uff0cWindows\u548cLinux\u64cd\u4f5c\u7cfb\u7edf\u7684\u72ec\u7acb\u5e94\u7528\u7a0b\u5e8f\u3002\u5b83\u662f\u5f00\u6e90\u7684\uff0c\u514d\u8d39\u7684\u3002","url":"https://k8slens.dev/","urls":{"-3":"https://github.com/lensapp/lens"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":29},{"name":"public-apis","desc":"\u4e00\u4e9b\u53ef\u7528\u5728 Web \u6216\u8f6f\u4ef6\u5f00\u53d1\u7684\u5f00\u653e API \u63a5\u53e3","url":"https://github.com/public-apis/public-apis","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":30},{"icon":"https://astexplorer.net/favicon.png","name":"astexplorer","desc":"\u4e00\u4e2aWeb\u5de5\u5177\uff0c\u7528\u4e8e\u63a2\u7d22\u7531\u5404\u79cd\u89e3\u6790\u5668\u751f\u6210\u7684AST","url":"https://astexplorer.net/","urls":{"-3":"https://github.com/fkling/astexplorer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":31},{"icon":"http://www.u.tools/assets/img/brand/favicon.png","name":"uTools","desc":"uTools\u662f\u4e00\u4e2a\u6781\u7b80\u3001\u63d2\u4ef6\u5316\u3001\u8de8\u5e73\u53f0\u7684\u73b0\u4ee3\u684c\u9762\u8f6f\u4ef6\u3002\u901a\u8fc7\u81ea\u7531\u9009\u914d\u4e30\u5bcc\u7684\u63d2\u4ef6\uff0c\u6253\u9020\u4f60\u5f97\u5fc3\u5e94\u624b\u7684\u5de5\u5177\u96c6\u5408","url":"http://www.u.tools/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":32},{"icon":"https://ihateregex.io/favicon.ico","name":"ihateregex","desc":"\u6b63\u5219\u8868\u8fbe\u5f0f\u5907\u5fd8\u5f55","url":"https://ihateregex.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":33},{"icon":"https://avatars3.githubusercontent.com/u/22552083?s=200&v=4","name":"Oh My ZSH","desc":"\u662f\u4e00\u4e2a\u5f00\u653e\u6e90\u4ee3\u7801\uff0c\u793e\u533a\u9a71\u52a8\u7684\u6846\u67b6\uff0c\u7528\u4e8e\u7ba1\u7406zsh\u914d\u7f6e\u3002","url":"https://ohmyz.sh/","urls":{"-3":"https://github.com/ohmyzsh"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":34},{"icon":"https://tampermonkey.freetls.fastly.net/images/icon144.png","name":"Tampermonkey","desc":"\u4e00\u6b3e\u514d\u8d39\u7684\u6d4f\u89c8\u5668\u6269\u5c55\u548c\u6700\u4e3a\u6d41\u884c\u7684\u7528\u6237\u811a\u672c\u7ba1\u7406\u5668","url":"https://www.tampermonkey.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":35},{"name":"Greasy Fork","desc":"\u63d0\u4f9b\u7528\u6237\u811a\u672c\u7684\u7f51\u7ad9","url":"https://greasyfork.org/zh-CN","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":36},{"icon":"https://img.kuaidaili.com/img/favicon.ico?v=3","name":"\u514d\u8d39\u4ee3\u7406","desc":"\u514d\u8d39HTTP\u4ee3\u7406IP","url":"https://www.kuaidaili.com/free/inha/1/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":37},{"icon":"https://avatars2.githubusercontent.com/u/1342004?s=200&v=4","name":"Google Workspace","desc":"Google Workspace\u72b6\u6001\u4fe1\u606f\u4e2d\u5fc3","url":"https://www.google.com/appsstatus#hl=en&v=status","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5f00\u53d1\u795e\u5668"],"ownVisible":false,"id":38}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406","nav":[{"icon":"https://www.eolinker.com/assets/images/favicon.ico","name":"eoLinker\u63a5\u53e3\u7ba1\u7406\u5e73\u53f0","desc":"\u56fd\u5185\u6700\u5927\u7684\u5728\u7ebf\u63a5\u53e3\u7ba1\u7406\u670d\u52a1\u65b9\u6848\u4f9b\u5e94\u5546","url":"https://www.eolinker.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":39},{"icon":"https://avatars2.githubusercontent.com/u/19645609?s=200&v=4","name":"YApi","desc":"YApi \u662f\u4e00\u4e2a\u53ef\u672c\u5730\u90e8\u7f72\u7684\u3001\u6253\u901a\u524d\u540e\u7aef\u53caQA\u7684\u3001\u53ef\u89c6\u5316\u7684\u63a5\u53e3\u7ba1\u7406\u5e73\u53f0","url":"https://yapi.baidu.com/","urls":{"-3":"https://github.com/YMFE/yapi"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":40},{"icon":"http://rap2.taobao.org/favicon.png","name":"RAP2","desc":"Web\u63a5\u53e3\u7ba1\u7406\u5de5\u5177\uff0c\u5f00\u6e90\u514d\u8d39\uff0c\u63a5\u53e3\u81ea\u52a8\u5316\uff0cMOCK\u6570\u636e\u81ea\u52a8\u751f\u6210\uff0c\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4f01\u4e1a\u7ea7\u7ba1\u7406\u3002\u963f\u91cc\u5988\u5988MUX\u56e2\u961f\u51fa\u54c1","url":"http://rap2.taobao.org/","urls":{"-3":"https://github.com/thx/rap2-delos"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":41},{"icon":"https://www.showdoc.cc/static/logo/b_64.png","name":"showdoc","desc":"\u4e00\u4e2a\u975e\u5e38\u9002\u5408IT\u56e2\u961f\u7684\u5728\u7ebfAPI\u6587\u6863\u3001\u6280\u672f\u6587\u6863\u5de5\u5177","url":"https://www.showdoc.cc/","urls":{"-3":"https://github.com/star7th/showdoc"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":42},{"icon":"https://avatars3.githubusercontent.com/u/40133106?s=200&v=4","name":"docsify","desc":"\u4e00\u4e2a\u795e\u5947\u7684\u6587\u6863\u7ad9\u70b9\u751f\u6210\u5668","url":"https://docsify.js.org","urls":{"-3":"https://github.com/docsifyjs/docsify"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":43},{"icon":"https://avatars2.githubusercontent.com/u/4103663?s=200&v=4","name":"apiDoc","desc":"RESTful Web API\u6587\u6863\u751f\u6210\u5668","url":"http://apidocjs.com","urls":{"-3":"https://github.com/apidoc/apidoc"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":44},{"icon":"https://avatars2.githubusercontent.com/u/69631?s=200&v=4","name":"docusaurus","desc":"\u6613\u4e8e\u7ef4\u62a4\u7684\u5f00\u6e90\u6587\u6863\u7f51\u7ad9","url":"https://docusaurus.io/","urls":{"-3":"https://github.com/facebook/docusaurus"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":45},{"icon":"https://www.zentao.net/favicon.ico","name":"\u7985\u9053","desc":"\u7985\u9053\u662f\u7075\u6d3b\u7684\u9879\u76ee\u7ba1\u7406\u8f6f\u4ef6","url":"https://www.zentao.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":46},{"icon":"https://www.tapd.cn/favicon.ico","name":"Tapd","desc":"\u4e00\u7ad9\u5f0f\u654f\u6377\u7814\u53d1\u534f\u4f5c\u4e91\u5e73\u53f0, \u51dd\u805a\u817e\u8baf\u7814\u53d1\u65b9\u6cd5\u53ca\u654f\u6377\u5b9e\u8df5\u7cbe\u9ad3, \u52a9\u529b\u4f01\u4e1a\u7814\u53d1\u66f4\u9ad8\u6548\u3001\u534f\u4f5c\u66f4\u654f\u6377","url":"https://www.tapd.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":47},{"icon":"https://avatars2.githubusercontent.com/u/56705483?s=200&v=4","name":"Hoppscotch","desc":"\u4e00\u4e2a\u514d\u8d39\uff0c\u5feb\u901f\uff0c\u7f8e\u89c2\u7684API\u8bf7\u6c42\u6784\u5efa\u5668\uff0c\u4f9b10\u4e07\u591a\u4e2a\u5f00\u53d1\u4eba\u5458\u4f7f\u7528\u3002(\u539f\u540d\u53eb Postwoman)","url":"https://hoppscotch.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u63a5\u53e3/\u5f00\u53d1\u6587\u6863\u7ba1\u7406"],"ownVisible":false,"id":48}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406","nav":[{"name":"Sunny-Ngrok","desc":"\u4e00\u6761\u547d\u4ee4\u89e3\u51b3\u7684\u5916\u7f51\u8bbf\u95ee\u5185\u7f51\u95ee\u9898\uff0c\u65e0\u9700\u4efb\u4f55\u914d\u7f6e\uff0c\u4e0b\u8f7d\u5ba2\u6237\u7aef\u4e4b\u540e\u76f4\u63a5\u4e00\u6761\u547d\u4ee4\u8ba9\u5916\u7f51\u8bbf\u95ee\u60a8\u7684\u5185\u7f51\u4e0d\u518d\u662f\u8ddd\u79bb","url":"https://www.ngrok.cc/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406"],"ownVisible":false,"id":49},{"name":"frp","desc":"\u4e00\u4e2a\u5feb\u901f\u53cd\u5411\u4ee3\u7406\uff0c\u53ef\u5e2e\u52a9\u60a8\u5c06NAT\u6216\u9632\u706b\u5899\u540e\u9762\u7684\u672c\u5730\u670d\u52a1\u5668\u66b4\u9732\u7ed9Internet\u3002","url":"https://github.com/fatedier/frp","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406"],"ownVisible":false,"id":50},{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"zan-proxy","desc":"\u672c\u5730\u4ee3\u7801\u8c03\u8bd5\u7ebf\u4e0a\u9875\u9762\uff0c\u73af\u5883\u518d\u4e5f\u4e0d\u662f\u95ee\u9898","url":"https://youzan.github.io/zan-proxy/","urls":{"-3":"https://github.com/youzan/zan-proxy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406"],"ownVisible":false,"id":51},{"icon":"https://ngrok.com/static/img/favicon.png","name":"ngrok","desc":"ngrok\u662f\u4e00\u4e2a\u53cd\u5411\u4ee3\u7406\uff0c\u901a\u8fc7\u5728\u516c\u5171\u7684\u7aef\u70b9\u548c\u672c\u5730\u8fd0\u884c\u7684 Web \u670d\u52a1\u5668\u4e4b\u95f4\u5efa\u7acb\u4e00\u4e2a\u5b89\u5168\u7684\u901a\u9053\u3002ngrok\u53ef\u6355\u83b7\u548c\u5206\u6790\u6240\u6709\u901a\u9053\u4e0a\u7684\u6d41\u91cf\uff0c\u4fbf\u4e8e\u540e\u671f\u5206\u6790\u548c\u91cd\u653e","url":"https://ngrok.com/","urls":{"-3":"https://github.com/inconshreveable/ngrok"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u5185\u7f51\u7a7f\u900f/\u4ee3\u7406"],"ownVisible":false,"id":52}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u7f16\u7801/\u89e3\u7801","nav":[{"icon":"http://www.chamd5.org/favicon.ico","name":"\u67e5MD5","desc":"MD5\u5728\u7ebf\u89e3\u5bc6|md5\u5728\u7ebf\u7834\u89e3|\u6279\u91cf\u7834\u89e3md5\u7f51\u7ad9","url":"http://www.cmd5.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u7f16\u7801/\u89e3\u7801"],"ownVisible":false,"id":53},{"icon":"https://jwt.io/img/favicon/apple-icon-76x76.png","name":"JSON Web Tokens","desc":"jwt \u5728\u7ebf\u89e3\u7801","url":"https://jwt.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u7f16\u7801/\u89e3\u7801"],"ownVisible":false,"id":54},{"icon":"http://www.xpcha.com/favicon.ico","name":"base64","desc":"base64\u5728\u7ebf\u89e3\u7801\u7f16\u7801","url":"http://base64.xpcha.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u7f16\u7801/\u89e3\u7801"],"ownVisible":false,"id":55}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u514d\u8d39\u516c\u5f00API","nav":[{"icon":"https://www.ipify.org/static/images/favicon-96x96.png","name":"ipify","desc":"\u4e00\u4e2a\u7b80\u5355\u7684\u516c\u5171IP\u5730\u5740API","url":"https://www.ipify.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u514d\u8d39\u516c\u5f00API"],"ownVisible":false,"id":56},{"name":"\u5f52\u5c5e\u5730\u67e5\u8be2","desc":"\u6dd8\u5b9d\u514d\u8d39\u5f52\u5c5e\u5730\u67e5\u8be2","url":"https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13333333333","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f00\u53d1\u76f8\u5173","\u514d\u8d39\u516c\u5f00API"],"ownVisible":false,"id":57}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u8bbe\u8ba1\u76f8\u5173","nav":[{"title":"\u8bbe\u8ba1\u76f8\u5173","nav":[{"icon":"https://www.draw.io/images/apple-touch-icon.png","name":"draw","desc":"\u514d\u8d39\u7684\u5728\u7ebf\u56fe\u8868\u8f6f\u4ef6\uff0c\u7528\u4e8e\u5236\u4f5c\u6d41\u7a0b\u56fe\u3001\u6d41\u7a0b\u56fe\u3001\u7ec4\u7ec7\u56fe\u3001UML\u3001ER\u548c\u7f51\u7edc\u56fe","url":"https://www.draw.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":58},{"icon":"https://www.processon.com/favicon.ico","name":"ProcessOn","desc":"\u514d\u8d39\u5728\u7ebf\u4f5c\u56fe\u5de5\u5177,UML\u4f5c\u56fe,UI\u754c\u9762\u539f\u578b\u8bbe\u8ba1,iOS\u539f\u578b\u8bbe\u8ba1,BPMN,\u6d41\u7a0b\u56fe,\u601d\u7ef4\u5bfc\u56fe,\u591a\u4eba\u534f\u4f5c\u7ed8\u56fe","url":"https://www.processon.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":59},{"icon":"https://lhcdn.lanhuapp.com/web/static/favicon.ico","name":"\u84dd\u6e56","desc":"\u84dd\u6e56\u662f\u4e00\u6b3e\u8bbe\u8ba1\u56fe\u5171\u4eab\u5e73\u53f0,\u5e2e\u52a9\u4e92\u8054\u7f51\u56e2\u961f\u7ba1\u7406\u8bbe\u8ba1\u56fe","url":"https://lanhuapp.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":60},{"icon":"https://zeplin.io/img/favicon/228x228.png","name":"Zeplin","desc":"\u4e3a\u8bbe\u8ba1\u5e08\u548c\u524d\u7aef\u800c\u751f\u7684\u534f\u4f5c\u5e94\u7528","url":"https://zeplin.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":61},{"icon":"https://mubu.com/favicon.ico","name":"\u5e55\u5e03","desc":"\u6781\u7b80\u5927\u7eb2\u7b14\u8bb0 | \u4e00\u952e\u751f\u6210\u601d\u7ef4\u5bfc\u56fe","url":"https://mubu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":62},{"icon":"https://p.ssl.qhimg.com/t01a54d9106629dda0e.png","name":"\u58f0\u4eab","desc":"\u5728\u7ebf\u5236\u4f5c PPT\uff0c\u8ba9\u5206\u4eab\u66f4\u6709\u4ef7\u503c","url":"https://ppt.baomitu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":63},{"icon":"https://modao.cc/images/logo.png","name":"\u58a8\u5200","desc":"\u539f\u578b\u8bbe\u8ba1\u5de5\u5177\uff0cweb\u539f\u578b\u8bbe\u8ba1\u5de5\u5177\uff0capp\u539f\u578b\u8bbe\u8ba1\u5de5\u5177","url":"https://modao.cc/features","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":64},{"icon":"https://xzlogo.com/static/images/favicon-16x16.png?v2","name":"\u5c0f\u667aLOGO","desc":"LOGO\u5728\u7ebf\u5236\u4f5c\u795e\u5668 - 3\u5206\u949f\u5b8c\u6210LOGO\u8bbe\u8ba1\u5728\u7ebf\u751f\u6210","url":"https://xzlogo.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":65},{"icon":"https://www.chuangkit.com/favicon.ico","name":"\u521b\u5ba2\u8d34","desc":"\u4e00\u6b3e\u7b80\u5355\u6613\u7528\u3001\u529f\u80fd\u5f3a\u5927\u7684\u7ebf\u4e0a\u56fe\u5f62\u8bbe\u8ba1\u5de5\u5177","url":"https://www.chuangkit.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":66},{"icon":"https://cdn.jifo.co/favicon/favicon.ico","name":"\u5728\u7ebf\u5236\u4f5c\u56fe\u8868","desc":"\u4fe1\u606f\u56fe\u8868\u662f\u4e00\u79cd\u6613\u4e8e\u4f7f\u7528\u7684\u4fe1\u606f\u56fe\u8868\u548c\u56fe\u8868\u5236\u9020\u5546\u3002\u521b\u5efa\u548c\u5206\u4eab\u7f8e\u4e3d\u7684\u4fe1\u606f\u56fe\u8868\uff0c\u5728\u7ebf\u62a5\u544a\u548c\u4e92\u52a8\u5730\u56fe\u3002\u5728\u8fd9\u91cc\u505a\u4f60\u81ea\u5df1","url":"https://infogram.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":67},{"name":"CLIPPING MAGIC","desc":"\u5220\u9664\u56fe\u50cf\u80cc\u666f\u5728\u7ebf\u3002\u4f7f\u80cc\u666f\u900f\u660e\uff0c\u767d\u8272\u7b49\u7f16\u8f91\uff0c\u88c1\u526a\uff0c\u65cb\u8f6c\uff0c\u56fa\u5b9a\u989c\u8272\uff0c\u6dfb\u52a0\u9634\u5f71\uff0c\u4e00\u6b3e\u5728\u7ebf\u62a0\u56fe\u5de5\u5177","url":"https://clippingmagic.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":68},{"icon":"https://koutu.gaoding.com/favicon.ico","name":"\u7a3f\u5b9a\u62a0\u56fe","desc":"\u7a3f\u5b9a\u8bbe\u8ba1\u662f\u4e00\u6b3e\u4e13\u4e3a\u6dd8\u5b9d\u5e97\u4e3b\u3001\u65b0\u5a92\u4f53\u8fd0\u8425\u4eba\u5458\u548c\u4fee\u56fe\u7231\u597d\u8005\u6253\u9020\u7684\u514d\u8d39\u5728\u7ebf\u62a0\u56fe\u5de5\u5177\u3002","url":"https://www.gaoding.com/koutu","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":69},{"icon":"https://uzer.me/favicon.ico","name":"UZER.ME","desc":"\u8d85\u7ea7\u5e94\u7528\u7a7a\u95f4\u81f4\u529b\u4e8e\u5168\u751f\u547d\u5468\u671f\u7684\u6587\u6863\u7ba1\u7406,\u65e0\u9700\u5b89\u88c5,\u5373\u53ef\u5728\u7ebf\u7f16\u8f91Office, CAD,PS\u7b49\u4efb\u610f\u683c\u5f0f\u6587\u6863,\u652f\u6301\u8fdc\u7a0b\u534f\u4f5c,\u5168\u6587\u68c0\u7d22,\u7248\u672c\u7ba1\u7406,\u6743\u9650\u7ba1\u7406,\u5b89\u5168\u5916\u53d1\u7b49.\u63d0\u9ad8\u5de5\u4f5c\u6548\u7387,\u964d\u4f4e\u5b89\u5168\u98ce\u9669","url":"https://uzer.me/index.html","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":70},{"icon":"https://www.launchaco.com/static/favicon.ico","name":"launchaco","desc":"\u514d\u8d39\u5728\u7ebf\u5236\u4f5cLOGO","url":"https://www.launchaco.com/logo","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":71},{"icon":"https://g.alicdn.com/acca/resource/luban/image/favicon.png","name":"\u9e7f\u73ed","desc":"\u9e7f\u73ed - \u8ba9\u8bbe\u8ba1\u66f4\u7f8e\u597d(\u963f\u91cc\u51fa\u54c1)","url":"https://luban.aliyun.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":72},{"icon":"https://www.yasuotu.com/favicon.ico","name":"\u56fe\u7247\u88c1\u526a","desc":"\u5728\u7ebf\u88c1\u526a\u7167\u7247\u5927\u5c0f\u5c3a\u5bf8","url":"https://www.yasuotu.com/meditor","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u8bbe\u8ba1\u76f8\u5173","\u8bbe\u8ba1\u76f8\u5173"],"ownVisible":false,"id":73}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"GUI\u8f6f\u4ef6","nav":[{"title":"GUI","nav":[{"icon":"https://bitwarden.com/images/icons/favicon-32x32.png","name":"Bitwarden","desc":"\u4e2a\u4eba\u548c\u4f01\u4e1a\u5728\u4efb\u4f55\u8bbe\u5907\u4e0a\u5b58\u50a8\uff0c\u5171\u4eab\u548c\u4fdd\u62a4\u654f\u611f\u6570\u636e\u7684\u6700\u7b80\u5355\uff0c\u6700\u5b89\u5168\u7684\u65b9\u6cd5","url":"https://bitwarden.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":74},{"icon":"https://typora.io/img/favicon-48.png","name":"Typeora","desc":"Typora\u662f\u4e00\u6b3e\u8de8\u5e73\u53f0\u7684\u6700\u5c0fMarkdown\u7f16\u8f91\u5668\uff0c\u53ef\u4e3aMarkdown\u8bfb\u8005\u548c\u4f5c\u5bb6\u63d0\u4f9b\u65e0\u7f1d\u7684\u4f53\u9a8c","url":"https://typora.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":75},{"icon":"https://www.iterm2.com/favicon.ico","name":"iterm2","desc":"iTerm2\u662fTerminal\u7684\u66ff\u4ee3\u54c1\uff0c\u662fiTerm\u7684\u540e\u7eed\u4ea7\u54c1","url":"https://www.iterm2.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":76},{"icon":"https://www.sourcetreeapp.com/assets/img/favicons/sourcetree/favicon-32x32.png","name":"Sourcetree","desc":"\u7f8e\u4e3d\u7684Git GUI\u4e2d\u7684\u7b80\u5355\u6027\u548c\u5f3a\u5927\u529f\u80fd","url":"https://www.sourcetreeapp.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":77},{"icon":"https://www.charlesproxy.com/static/img/icon.8b97278f.png","name":"charles","desc":"Charles\u662fHTTP\u4ee3\u7406/ HTTP\u76d1\u89c6\u5668/\u53cd\u5411\u4ee3\u7406\uff0c\u4f7f\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u67e5\u770b\u5176\u8ba1\u7b97\u673a\u4e0eInternet\u4e4b\u95f4\u7684\u6240\u6709HTTP\u548cSSL / HTTPS\u901a\u4fe1\u3002\u8fd9\u5305\u62ec\u8bf7\u6c42\uff0c\u54cd\u5e94\u548cHTTP\u6807\u5934\uff08\u5176\u4e2d\u5305\u542bcookie\u548c\u7f13\u5b58\u4fe1\u606f\uff09\u3002","url":"https://www.charlesproxy.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":78},{"icon":"https://tunnelblick.net/favicon.ico","name":"Tunnelblick","desc":"\u9002\u7528\u4e8emacOS\u7684\u514d\u8d39\u5f00\u6e90OpenVPN VPN\u5ba2\u6237\u7aef\u670d\u52a1\u5668\u8f6f\u4ef6\u3002","url":"https://tunnelblick.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":79},{"icon":"https://www.keka.io/img/Keka-120x120.png","name":"Keka","desc":"macOS\u6587\u4ef6\u5b58\u6863\u5668, \u50a8\u5b58\u66f4\u591a\uff0c\u79c1\u5bc6\u5206\u4eab","url":"https://www.keka.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":80},{"icon":"https://getkap.co/static/favicon/kap.ico","name":"Kap","desc":"\u4f7f\u7528Web\u6280\u672f\u6784\u5efa\u7684\u5f00\u6e90\u5c4f\u5e55\u5f55\u50cf\u673a\u3002","url":"https://getkap.co/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":81},{"icon":"https://code.visualstudio.com/apple-touch-icon.png","name":"Vscode","desc":"VScode\u662f\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u7684\u7f16\u8f91\u5668\uff0c\u81ea\u7531\u3002 \u5efa\u7acb\u5728\u5f00\u6e90\u4e0a\u3002 \u65e0\u5904\u4e0d\u5728\u3002","url":"https://code.visualstudio.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":82},{"icon":"https://nmap.org/shared/images/tiny-eyeicon.png","name":"zenmap","desc":"\u5f00\u6e90\u514d\u8d39\u7684\u7f51\u7edc\u53d1\u73b0\u5de5\u5177\uff0c\u901a\u8fc7\u5b83\u80fd\u591f\u627e\u51fa\u7f51\u7edc\u4e0a\u5728\u7ebf\u7684\u4e3b\u673a\uff0c\u5e76\u6d4b\u8bd5\u4e3b\u673a\u4e0a\u54ea\u4e9b\u7aef\u53e3\u5904\u4e8e\u76d1\u542c\u72b6\u6001\uff0c\u63a5\u7740\u901a\u8fc7\u7aef\u53e3\u786e\u5b9a\u4e3b\u673a\u4e0a\u8fd0\u884c\u7684\u5e94\u7528\u7a0b\u5e8f\u7c7b\u578b\u4e0e\u7248\u672c\u4fe1\u606f\uff0c\u6700\u540e\u5229\u7528\u5b83\u8fd8\u80fd\u4fa6\u6d4b\u51fa\u64cd\u4f5c\u7cfb\u7edf\u7684\u7c7b\u578b\u548c\u7248\u672c","url":"https://nmap.org/zenmap/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":83},{"icon":"https://obsproject.com/favicon-32x32.png","name":"obsproject","desc":"\u514d\u8d39\u548c\u5f00\u6e90\u8f6f\u4ef6\uff0c\u7528\u4e8e\u89c6\u9891\u5f55\u5236\u548c\u5b9e\u65f6\u6d41\u3002","url":"https://obsproject.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":84},{"icon":"https://avatars1.githubusercontent.com/u/14985020?s=200&v=4","name":"hyper","desc":"\u57fa\u4e8eWEB\u6280\u672f\u7684\u7ec8\u7aef","url":"https://hyper.is/","urls":{"-3":"https://github.com/zeit/hyper"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":85},{"icon":"https://www.listary.com/wp-content/themes/listary5/images/favicon.ico","name":"Listary","desc":"Listary\u662fWindows\u7684\u9769\u547d\u6027\u641c\u7d22\u5b9e\u7528\u7a0b\u5e8f\uff0c\u5b83\u4f7f\u4f11\u95f2\u7528\u6237\u548c\u9ad8\u7ea7\u7528\u6237\u90fd\u80fd\u5feb\u901f\u627e\u5230\u6587\u4ef6\u5e76\u542f\u52a8\u5e94\u7528\u7a0b\u5e8f\uff01","url":"https://www.listary.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","GUI"],"ownVisible":false,"id":86}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u865a\u62df\u673a","nav":[{"icon":"https://www.vmware.com/favicon.ico","name":"vmware","desc":"\u5229\u7528VMware\u63d0\u4f9b\u7684\u8f6f\u4ef6\u5b9a\u4e49\u7684\u4e91\uff0c\u79fb\u52a8\u6027\uff0c\u7f51\u7edc\u548c\u5b89\u5168\u89e3\u51b3\u65b9\u6848\u6765\u5efa\u7acb\u60a8\u7684\u6570\u5b57\u57fa\u7840\u3002","url":"https://www.vmware.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u865a\u62df\u673a"],"ownVisible":false,"id":87},{"icon":"https://www.parallels.cn/typo3conf/ext/prls_theme/Resources/Public/theme/res/img/favicon/favicon.png","name":"parallels","desc":"Mac\u548cWindows\u865a\u62df\u5316|\u7ba1\u7406Mac|VDI\u548cRDS\u89e3\u51b3\u65b9\u6848","url":"https://www.parallels.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u865a\u62df\u673a"],"ownVisible":false,"id":88},{"icon":"http://mumu.163.com/favicon.ico","name":"mumu Android\u6a21\u62df\u5668","desc":"\u7f51\u6613MuMu[\u624b\u6e38\u6a21\u62df\u5668][\u5b89\u5353\u6a21\u62df\u5668]","url":"http://mumu.163.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u865a\u62df\u673a"],"ownVisible":false,"id":89}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"icon":"https://avatars3.githubusercontent.com/u/34743864?s=200&v=4","name":"DBeaver","desc":"\u9002\u7528\u4e8e\u5f00\u53d1\u4eba\u5458\uff0c\u6570\u636e\u5e93\u7ba1\u7406\u5458\uff0c\u5206\u6790\u5e08\u548c\u6240\u6709\u9700\u8981\u4f7f\u7528\u6570\u636e\u5e93\u7684\u4eba\u5458\u7684\u514d\u8d39\u7684\u591a\u5e73\u53f0\u6570\u636e\u5e93\u5de5\u5177\u3002\u652f\u6301\u6240\u6709\u6d41\u884c\u7684\u6570\u636e\u5e93\uff1aMySQL\uff0cPostgreSQL\uff0cSQLite\uff0cOracle\uff0cDB2\uff0cSQL Server\uff0cSybase\uff0cMS Access\uff0cTeradata\uff0cFirebird\uff0cApache Hive\uff0cPhoenix\uff0cPresto\u7b49","url":"https://dbeaver.io/","urls":{"-3":"https://github.com/dbeaver/dbeaver"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":90},{"icon":"https://redisdesktop.com/static/css/favicon.png","name":"RedisDesktopManager","desc":"Redis Desktop Manager\uff08\u53c8\u540dRDM\uff09\u2014\u662f\u7528\u4e8eWindows\uff0cLinux\uff0cMacOS\u548ciPadOS\u7684\u5feb\u901fRedis\u6570\u636e\u5e93\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u3002","url":"https://redisdesktop.com/","urls":{"-3":"https://github.com/uglide/RedisDesktopManager"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":91},{"icon":"https://sequelpro.com/favicon/favicon-32x32.png","name":"Sequel Pro","desc":"Sequel Pro\u662f\u4e00\u4e2a\u5feb\u901f\uff0c\u6613\u4e8e\u4f7f\u7528\u7684Mac\u6570\u636e\u5e93\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\uff0c\u7528\u4e8e\u5904\u7406MySQL\u6570\u636e\u5e93\u3002","url":"https://www.sequelpro.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":92},{"icon":"https://robomongo.org/static/favicon-11ace079.ico","name":"Robo 3T","desc":"\u4e00\u4e2a\u73b0\u4ee3\uff0c\u5f3a\u5927\u4e14\u7531\u793e\u533a\u9a71\u52a8\u7684MongoDB\u7ba1\u7406\u5de5\u5177","url":"https://robomongo.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":93},{"icon":"https://www.jetbrains.com/favicon-32x32.png","name":"DataGrip","desc":"jetbrains\u51fa\u54c1\u7684\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf","url":"https://www.jetbrains.com/datagrip/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":94},{"icon":"https://tableplus.com/resources/favicons/apple-icon-57x57.png","name":"tableplus","desc":"\u7528\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u7684\u73b0\u4ee3\uff0c\u672c\u5730\u4e14\u53cb\u597d\u7684GUI\u5de5\u5177\uff1aMySQL\uff0cPostgreSQL\uff0cSQLite\u7b49","url":"https://tableplus.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u6570\u636e\u5e93"],"ownVisible":false,"id":95}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8fdc\u7a0b\u63a7\u5236","nav":[{"icon":"https://www.teamviewer.cn/wp-content/themes/tv-wordpress-theme/dist/media/favicon.png","name":"TeamViewer","desc":"TeamViewer\u8fdc\u7a0b\u8fde\u63a5\u63a7\u5236\u8f6f\u4ef6\u662f\u4e00\u6b3e\u968f\u65f6\u968f\u5730\u8fde\u63a5\u5230\u8fdc\u7a0b\u684c\u9762\u7535\u8111\u3001\u79fb\u52a8\u8bbe\u5907\u53caIot,\u8ba9\u8fdc\u7a0b\u8fde\u63a5\u8fc7\u7a0b\u66f4\u52a0\u7684\u5feb\u901f\u548c\u5b89\u5168,\u8f7b\u677e\u5b9e\u73b0\u5bf9\u6587\u4ef6\u3001\u7f51\u7edc\u53ca\u7a0b\u5e8f\u7684\u5b9e\u65f6\u652f\u6301\u6216\u8bbf\u95ee\u3002","url":"https://www.teamviewer.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u8fdc\u7a0b\u63a7\u5236"],"ownVisible":false,"id":96},{"icon":"https://sunlogin.oray.com/favicon.ico","name":"\u5411\u65e5\u8475","desc":"\u5411\u65e5\u8475\u8fdc\u7a0b\u63a7\u5236\u8f6f\u4ef6\u662f\u4e00\u6b3e\u514d\u8d39\u7684\u96c6\u8fdc\u7a0b\u63a7\u5236\u7535\u8111\u624b\u673a\u3001\u8fdc\u7a0b\u684c\u9762\u8fde\u63a5\u3001\u8fdc\u7a0b\u5f00\u673a\u3001\u8fdc\u7a0b\u7ba1\u7406\u3001\u652f\u6301\u5185\u7f51\u7a7f\u900f\u7684\u4e00\u4f53\u5316\u8fdc\u7a0b\u63a7\u5236\u7ba1\u7406\u5de5\u5177\u8f6f\u4ef6","url":"https://sunlogin.oray.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u8fdc\u7a0b\u63a7\u5236"],"ownVisible":false,"id":97}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u98de\u673a\u573a","nav":[{"icon":"https://avatars0.githubusercontent.com/u/14110142?s=200&v=4","name":"v2ray","desc":"\u7528\u4e8e\u6784\u5efa\u4ee3\u7406\u7ed5\u8fc7\u7f51\u7edc\u9650\u5236\u7684\u5e73\u53f0\u3002","url":"https://github.com/v2ray/v2ray-core","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u98de\u673a\u573a"],"ownVisible":false,"id":98},{"icon":"https://github.com/Dreamacro/clash/raw/master/docs/logo.png","name":"clash","desc":"Go\u4e2d\u57fa\u4e8e\u89c4\u5219\u7684\u96a7\u9053","url":"https://github.com/Dreamacro/clash","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","GUI\u8f6f\u4ef6","\u98de\u673a\u573a"],"ownVisible":false,"id":99}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5f71\u89c6/\u97f3\u4e50","nav":[{"title":"\u5f71\u89c6","nav":[{"icon":"https://www.bilibili.com/favicon.ico","name":"\u54d4\u54e9\u54d4\u54e9","desc":"\u56fd\u5185\u77e5\u540d\u7684\u89c6\u9891\u5f39\u5e55\u7f51\u7ad9\uff0c\u8fd9\u91cc\u6709\u6700\u53ca\u65f6\u7684\u52a8\u6f2b\u65b0\u756a\uff0c\u6700\u68d2\u7684ACG\u6c1b\u56f4\uff0c\u6700\u6709\u521b\u610f\u7684Up\u4e3b","url":"https://www.bilibili.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":100},{"icon":"https://www.iqiyipic.com/common/images/PCW-114x114.png","name":"\u7231\u5947\u827a","desc":"\u62e5\u6709\u6d77\u91cf\u3001\u4f18\u8d28\u3001\u9ad8\u6e05\u7684\u7f51\u7edc\u89c6\u9891\u7684\u5927\u578b\u89c6\u9891\u7f51\u7ad9\uff0c\u4e13\u4e1a\u7684\u7f51\u7edc\u89c6\u9891\u64ad\u653e\u5e73\u53f0","url":"https://www.iqiyi.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":101},{"icon":"https://www.youtube.com/favicon.ico","name":"Youtube","desc":"\u5168\u7403\u6700\u5927\u7684\u89c6\u9891\u7f51\u7ad9","url":"https://www.youtube.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":102},{"icon":"https://www.douyu.com/favicon.ico","name":"\u6597\u9c7c","desc":"\u6597\u9c7c - \u6bcf\u4e2a\u4eba\u7684\u76f4\u64ad\u5e73\u53f0","url":"https://www.douyu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":103},{"icon":"https://cdn.jsdelivr.net/gh/txxxjs/fk/ifkdy/2020-03-16/favicon.ico","name":"\u75af\u72c2\u5f71\u89c6\u641c\u7d22","desc":"\u75af\u72c2\u5f71\u89c6\u641c\u7d22\u662f\u4e00\u6b3e\u5168\u80fd\u5f71\u89c6\u641c\u7d22\u5f15\u64ce\uff0c\u5e2e\u4f60\u627e\u5230\u6700\u65b0\u5f71\u89c6\u8d44\u6e90\uff0c\u4e00\u7ad9\u62e5\u6709\u65e0\u5c3d\u5f71\u89c6\u8d44\u6e90","url":"http://ifkdy.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":104},{"icon":"http://www.qmaile.com/favicon.ico","name":"\u5168\u6c11vip\u89c6\u9891\u5728\u7ebf\u89e3\u6790","desc":"\u514d\u8d39\u5168\u7f51VIP\u89c6\u9891\u4f1a\u5458\u514d\u5e7f\u544a\u770b\u7535\u5f71\uff01\u4f18\u9177vip\u89e3\u6790\uff0c\u7231\u5947\u827avip\u89e3\u6790\uff0c\u817e\u8bafvip\u89e3\u6790\uff0c\u4e50\u89c6vip\u89e3\u6790\uff0c\u8292\u679cvip\u89e3\u6790","url":"http://www.qmaile.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":105},{"icon":"https://qncdnimg.aoscdn.com/local/beecut.cn/img/favicon.png","name":"\u871c\u8702\u526a\u8f91","desc":"\u514d\u8d39\u5728\u7ebf\u89c6\u9891\u526a\u8f91\u3001\u89c6\u9891\u5236\u4f5c\u3001\u89c6\u9891\u526a\u5207\u3001\u89c6\u9891\u8f6cgif\u7b49\u5b9e\u7528\u529f\u80fd","url":"https://beecut.cn/online-video-editor","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":106},{"name":"kk\u9ad8\u6e05\u5f71\u9662","desc":"kk\u9ad8\u6e05\u5f71\u9662,1080p\u7535\u5f71\u4e0b\u8f7d,\u9ad8\u6e05\u7535\u5f71\u8fc5\u96f7\u4e0b\u8f7d,\u514d\u8d39\u9ad8\u6e05\u7535\u5f71\u7f51","url":"http://www.kk3.tv/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u5f71\u89c6"],"ownVisible":false,"id":107}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u97f3\u4e50","nav":[{"name":"\u81ea\u7531\u7684\u97f3\u4e50","desc":"\u81ea\u7531\u7684\u97f3\u4e50\u662f\u4e00\u4e2a\u514d\u8d39\u8bd5\u542c\u5e76\u4e0b\u8f7d\u5168\u7f51\u97f3\u4e50\u7684\u7f51\u7ad9","url":"https://www.tikitiki.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5f71\u89c6/\u97f3\u4e50","\u97f3\u4e50"],"ownVisible":false,"id":108}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u62db\u8058/\u6c42\u804c","nav":[{"title":"\u62db\u8058/\u6c42\u804c","nav":[{"icon":"https://www.zhaopin.com/favicon.ico","name":"\u667a\u8054\u62db\u8058","desc":"\u667a\u8054\u62db\u8058\uff0c\u66f4\u61c2\u4f60\u7684\u4ef7\u503c","url":"https://www.zhaopin.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u62db\u8058/\u6c42\u804c"],"ownVisible":false,"id":109},{"icon":"https://www.51job.com/favicon.ico","name":"\u524d\u7a0b\u65e0\u5fe7","desc":"\u62db\u8058\u7f51,\u4eba\u624d\u7f51,\u6c42\u804c,\u627e\u5de5\u4f5c","url":"https://www.51job.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u62db\u8058/\u6c42\u804c"],"ownVisible":false,"id":110},{"icon":"https://www.zhipin.com/favicon.ico","name":"BOSS\u76f4\u8058","desc":"BOSS\u76f4\u8058\u662f\u6743\u5a01\u9886\u5148\u7684\u62db\u8058\u7f51\uff0c\u5f00\u542f\u4eba\u624d\u7f51\u62db\u8058\u6c42\u804c\u65b0\u65f6\u4ee3\uff0c\u8ba9\u6c42\u804c\u8005\u4e0eBoss\u76f4\u63a5\u5f00\u804a\u3001\u52a0\u5feb\u9762\u8bd5\u3001\u5373\u65f6\u53cd\u9988\uff0c\u627e\u5de5\u4f5c\u5c31\u6765BOSS\u76f4\u8058\u548cBoss\u5f00\u804a\u5427","url":"https://www.zhipin.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u62db\u8058/\u6c42\u804c"],"ownVisible":false,"id":111}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"ResumeSample","desc":"\u7a0b\u5e8f\u5458\u7b80\u5386\u6a21\u677f\u7cfb\u5217, WEB/IOS/Android/C++/node\u7b49\u4ee5\u53ca\u901a\u7528\u7a0b\u5e8f\u5458\u7b80\u5386\u6a21\u677f","url":"https://github.com/geekcompany/ResumeSample","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u5176\u4ed6"],"ownVisible":false,"id":112},{"icon":"http://coder.shengxinjing.cn/logo.ico","name":"\u7a0b\u5e8f\u5458\u627e\u5de5\u4f5c\u9ed1\u540d\u5355","desc":"\u6709\u4e9b\u4e8b\u60c5\uff0c\u5e94\u8be5\u88ab\u8bb0\u4f4f","url":"http://coder.shengxinjing.cn/","urls":{"-3":"https://github.com/shengxinjing/programmer-job-blacklist"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u5176\u4ed6"],"ownVisible":false,"id":113},{"icon":"https://www.kanzhun.com/favicon.ico","name":"\u770b\u51c6\u7f51","desc":"\u770b\u51c6\u7f51\u2605\u4e2d\u56fd\u9886\u5148\u7684\u804c\u573a\u4fe1\u606f\u5e73\u53f0,\u4e13\u6ce8\u4e8e\u516c\u53f8\u8bc4\u8bba,\u6652\u5de5\u8d44,\u5de5\u8d44\u5f85\u9047,\u9762\u8bd5,\u516c\u53f8\u798f\u5229\u7b49.\u60a8\u53ef\u4ee5\u5728\u770b\u51c6\u7f51\u4e0a\u533f\u540d\u5206\u4eab\u60a8\u7684\u804c\u4e1a\u4fe1\u606f","url":"https://www.kanzhun.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u62db\u8058/\u6c42\u804c","\u5176\u4ed6"],"ownVisible":false,"id":114}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"title":"\u538b\u7f29\u5de5\u5177","nav":[{"icon":"https://tinypng.com/images/apple-touch-icon.png","name":"TinyPNG","desc":"\u667a\u80fdPNG\u548cJPEG\u538b\u7f29\uff0c\u4ee5\u8d28\u91cf\u548c\u6587\u4ef6\u5927\u5c0f\u7684\u5b8c\u7f8e\u5e73\u8861\u6765\u4f18\u5316\u60a8\u7684\u56fe\u50cf","url":"https://tinypng.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u538b\u7f29\u5de5\u5177"],"ownVisible":false,"id":115},{"icon":"https://squoosh.app/assets/favicon.ico","name":"Squoosh","desc":"\u5728\u6d4f\u89c8\u5668\u4e2d\u7528\u4e0d\u540c\u7684\u7f16\u89e3\u7801\u5668\u538b\u7f29\u548c\u6bd4\u8f83\u56fe\u50cf(Google\u51fa\u54c1)","url":"https://squoosh.app/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u538b\u7f29\u5de5\u5177"],"ownVisible":false,"id":116}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8f85\u52a9\u5de5\u5177","nav":[{"icon":"https://static.clewm.net/static/images/favicon.ico","name":"\u8349\u6599\u4e8c\u7ef4\u7801","desc":"\u7528\u4e13\u4e1a\u7684\u4e8c\u7ef4\u7801\u4ea7\u54c1\u5e2e\u52a9\u4f01\u4e1a\u521b\u9020\u4ef7\u503c","url":"https://cli.im/url/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":117},{"name":"Feed \u9a8c\u8bc1\u5668","desc":"\u9a8c\u8bc1RSS\u662f\u5426\u7b26\u5408\u6807\u51c6\u89c4\u8303","url":"http://www.feedvalidator.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":118},{"icon":"https://www.taonienie.com/favicon.ico","name":"\u6dd8\u634f\u634f","desc":"\u6dd8\u5b9d\u4fe1\u8a89\u67e5\u8be2 - \u6dd8\u634f\u634f\u5356\u5bb6\u5de5\u5177\u7bb1 \u6dd8\u5b9d\u4fe1\u8a89\u67e5\u8be2_\u6dd8\u5b9d\u4fe1\u7528\u67e5\u8be2_\u6dd8\u5b9d\u5c0f\u53f7\u67e5\u8be2_\u6dd8\u5b9d\u9ed1\u53f7\u67e5\u8be2","url":"http://taonienie.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":119},{"icon":"https://www.tianyancha.com/favicon.ico","name":"\u5929\u773c\u67e5","desc":"\u4eba\u4eba\u90fd\u5728\u7528\u5546\u4e1a\u5b89\u5168\u5de5\u5177_\u4f01\u4e1a\u4fe1\u606f\u67e5\u8be2_\u516c\u53f8\u67e5\u8be2_\u5de5\u5546\u67e5\u8be2_\u4f01\u4e1a\u4fe1\u7528\u4fe1\u606f\u67e5\u8be2\u7cfb\u7edf","url":"https://www.tianyancha.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":120},{"icon":"https://yuque.com/favicon.ico","name":"\u8bed\u96c0","desc":"\u4f18\u96c5\u9ad8\u6548\u7684\u5728\u7ebf\u6587\u6863\u7f16\u8f91\u4e0e\u534f\u540c\u5de5\u5177\uff0c\u8ba9\u6bcf\u4e2a\u4f01\u4e1a\u8f7b\u677e\u62e5\u6709\u6587\u6863\u4e2d\u5fc3 - \u963f\u91cc\u5df4\u5df4","url":"https://yuque.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":121},{"icon":"https://www.qsc.zju.edu.cn/box/favicon.ico","name":"\u6c42\u662f\u6f6e\u4e91U\u76d8","desc":"\u4e34\u65f6\u6587\u4ef6\u4e0a\u4f20, \u5feb\u901f\u548c\u7a33\u5b9a","url":"https://box.zjuqsc.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":122},{"icon":"https://www.360converter.com/images/favicon.ico","name":"\u4e91\u8f6c\u6362","desc":"\u5728\u7ebf\u514d\u8d39\u8f6c\u6362\u89c6\u9891,\u97f3\u9891,YouTube\u89c6\u9891\u5230\u6587\u5b57,\u89c6\u9891\u5230\u6587\u5b57,\u97f3\u9891\u5230\u6587\u5b57,\u8bed\u97f3\u8f6c\u6362\u6210\u6587\u5b57","url":"http://www.360converter.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":123},{"icon":"https://www.picdiet.com/css/favicon.ico","name":"Picdiet","desc":"\u72ec\u7279\u4e14\u5f3a\u608d\u7684JavaScript\u7b97\u6cd5\uff0c\u80fd\u6781\u901f\u538b\u7f2980%\u7684\u56fe\u7247\u5927\u5c0f\uff0c\u800c\u4e0d\u635f\u5bb3\u5176\u8d28\u91cf","url":"https://www.picdiet.com/zh-cn","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":124},{"icon":"https://cdn-img.easyicon.net/favicon.ico","name":"easyicon","desc":"\u5728\u7ebf\u56fe\u6807\u8f6c\u6362ico\u3001icns","url":"https://www.easyicon.net/covert/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":125},{"icon":"https://smallpdf.com/favicon.png","name":"Smallpdf","desc":"\u538b\u7f29pdf\u3001\u5404\u79cd\u6587\u4ef6\u683c\u5f0f\u8f6c\u6362pdf","url":"https://smallpdf.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":126},{"icon":"https://coolbackgrounds.io/images/favicon-fe5a0ff5.png","name":"Cool Backgrounds","desc":"\u751f\u6210\u975e\u5e38\u9177\u7684\u5f69\u8272\u80cc\u666f\u56fe\u50cf","url":"https://coolbackgrounds.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":127},{"icon":"https://source.unsplash.com/favicon-32x32.png","name":"Unsplash Source","desc":"\u968f\u673a\u751f\u6210\u56fe\u7247\u94fe\u63a5","url":"https://source.unsplash.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":128},{"icon":"https://assets.smcdn.cn/from_qbox/favicon.ico","name":"\u77f3\u58a8\u6587\u6863","desc":"\u4e00\u6b3e\u8f7b\u4fbf\u3001\u7b80\u6d01\u7684\u5728\u7ebf\u534f\u4f5c\u6587\u6863\u5de5\u5177\uff0cPC\u7aef\u548c\u79fb\u52a8\u7aef\u5168\u8986\u76d6\uff0c\u652f\u6301\u591a\u4eba\u540c\u65f6\u5bf9\u6587\u6863\u7f16\u8f91\u548c\u8bc4\u8bba...","url":"https://shimo.im/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":129},{"icon":"https://emoji.muan.co/appicon.png","name":"Emoji searcher","desc":"Emoji\u8868\u60c5\u5927\u5168","url":"http://emoji.muan.co/","urls":{"-3":"https://github.com/muan/emoji/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":130},{"icon":"https://imgurl.org/favicon.ico","name":"imgURL","desc":"ImgURL\u662f\u4e00\u4e2a\u7b80\u5355\u3001\u7eaf\u7cb9\u7684\u56fe\u5e8a\u7a0b\u5e8f\uff0c\u8ba9\u4e2a\u4eba\u56fe\u5e8a\u591a\u4e00\u4e2a\u9009\u62e9","url":"https://imgurl.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":131},{"icon":"https://f0cdn.anyknew.com/web/img/icons/favicon-32x32.png","name":"\u62f7\u8d1d\u5154","desc":"\u8de8\u5e73\u53f0\u5206\u4eab\u5de5\u5177\uff0c\u7eafWeb\uff0cIOS\uff0cMAC\uff0cLinux\uff0cAndroid\u4e92\u4f20","url":"https://cp.ifval.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":132},{"icon":"https://tableconvert.com/static/images/favicon.png","name":"\u8868\u683c\u5de5\u5177","desc":"\u4e00\u4e2a\u529f\u80fd\u5f3a\u5927\u7684\u5728\u7ebf\u8868\u683c\u7f16\u8f91\u5668\uff0c\u652f\u6301Excel\u3001Markdown\u3001JSON\u3001CSV\u3001HTML\u7b49\u683c\u5f0f\u7684\u76f8\u4e92\u8f6c\u6362","url":"https://tableconvert.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":133},{"icon":"https://p2.ssl.qhimg.com/t014de4ba13ada26743.png","name":"360\u67e5\u5b57\u4f53","desc":"360\u67e5\u5b57\u4f53 - \u67e5\u7248\u6743\uff0c\u514d\u7ea0\u7eb7","url":"https://fonts.safe.360.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":134},{"icon":"https://www.sejda.com/images/icon_128.png","name":"sejda","desc":"\u5728\u7ebfHTML\u8f6c\u6362pdf","url":"https://www.sejda.com/html-to-pdf","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":135},{"icon":"https://bigjpg.com/static/css/touch-icon-iphone.png","name":"AI\u4eba\u5de5\u667a\u80fd\u56fe\u7247\u653e\u5927","desc":"Bigjpg - \u4f7f\u7528\u5f00\u6e90waifu2x\u4eba\u5de5\u667a\u80fd\u6df1\u5ea6\u5377\u79ef\u795e\u7ecf\u7f51\u7edc\uff08CNN\uff09\u667a\u80fd\u65e0\u635f\u514d\u8d39\u653e\u5927\u56fe\u7247","url":"https://bigjpg.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":136},{"name":"VVV\u6587\u6863\u5728\u7ebf\u5bfc\u51fa\u5de5\u5177","desc":"\u514d\u8d39\u4e0b\u8f7d\u767e\u5ea6\u6587\u5e93\u6587\u6863","url":"http://wenku.baiduvvv.com/doc","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":137},{"icon":"http://tools.bugscaner.com/static/images/favicon.ico","name":"\u5728\u7ebf\u6587\u4ef6\u7f16\u7801\u8bc6\u522b","desc":"\u5728\u7ebf\u6587\u4ef6\u7f16\u7801\u8bc6\u522b","url":"http://tools.bugscaner.com/filebianma/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":138},{"icon":"http://tools.bugscaner.com/static/images/favicon.ico","name":"iptv","desc":"\u6536\u96c6\u6765\u81ea\u4e16\u754c\u5404\u5730\u76845000\u591a\u4e2a\u516c\u5171IPTV\u9891\u9053","url":"https://github.com/iptv-org/iptv","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":139},{"icon":"https://www.linshiyouxiang.net/public/zh-CN/img/favicon.ico","name":"\u4e34\u65f6\u90ae\u7bb1","desc":"10\u5206\u949f\u90ae\u7bb1\uff0c\u4e34\u65f6\u90ae\u7bb1\uff0c\u4e34\u65f6\u90ae\uff0c\u4e34\u65f6\u7535\u5b50\u90ae\u7bb1\uff0c24\u5c0f\u65f6\u90ae\u7bb1\uff0c\u4e00\u6b21\u6027\u90ae\u7bb1\uff0c\u533f\u540d\u90ae\u7bb1\uff0c\u5b89\u5168\u90ae\u7bb1","url":"https://www.linshiyouxiang.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b9e\u7528\u5de5\u5177","\u5176\u4ed6","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":140}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"id":0,"createdAt":"2021-01-23 09:32:06"},{"title":"WEB\u524d\u7aef","nav":[{"title":"JavaScript","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","nav":[{"title":"JavaScript","nav":[{"icon":"https://jquery.com/jquery-wp-content/themes/jquery.com/i/favicon.ico","name":"jQuery","desc":"jQuery\u662f\u4e00\u4e2aJavaScript\u51fd\u6570\u5e93","url":"http://jquery.com/","urls":{"-2":"http://jquery.com/","-1":"https://www.jquery123.com/","-3":"https://github.com/jquery/jquery"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":141},{"icon":"https://www.webpackjs.com/assets/favicon.ico","name":"webpack","desc":"webpack\u662f\u4e00\u4e2a\u6a21\u5757\u6253\u5305\u5668","url":"https://www.webpackjs.com/","urls":{"-2":"https://webpack.js.org/","-1":"https://www.webpackjs.com/","-3":"https://github.com/webpack/webpack"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":142},{"icon":"https://babeljs.io/img/favicon.png","name":"Babel","desc":"\u7528\u4e8e\u7f16\u5199\u4e0b\u4e00\u4ee3 JavaScript \u7684\u7f16\u8bd1\u5668","url":"http://babeljs.io/","urls":{"-2":"http://babeljs.io/","-1":"https://babeljs.cn/","-3":"https://github.com/babel/babel"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":143},{"icon":"https://cn.eslint.org/img/favicon.512x512.png","name":"ESLint","desc":"\u53ef\u7ec4\u88c5\u7684JavaScript\u548cJSX\u68c0\u67e5\u5de5\u5177","url":"https://cn.eslint.org/","urls":{"-2":"https://cn.eslint.org/","-1":"http://eslint.cn/","-3":"https://github.com/eslint/eslint"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":144},{"icon":"https://avatars3.githubusercontent.com/u/10076935?s=200&v=4","name":"stylelint","desc":"\u4e00\u4e2a\u5f3a\u5927\u7684\u73b0\u4ee3\u6837\u5f0f\u98ce\u683c\u7684linter","url":"https://stylelint.io/","urls":{"-3":"https://github.com/stylelint/stylelint"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":145},{"icon":"https://avatars0.githubusercontent.com/u/8770005?s=200&v=4","name":"Mocha","desc":"Mocha\u662fJavaScript\u7684\u4e00\u79cd\u5355\u5143\u6d4b\u8bd5\u6846\u67b6\uff0c\u65e2\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u73af\u5883\u4e0b\u8fd0\u884c\uff0c\u4e5f\u53ef\u4ee5\u5728Node.js\u73af\u5883\u4e0b\u8fd0\u884c","url":"https://mochajs.org/","urls":{"-3":"https://github.com/mochajs/mocha"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":146},{"icon":"https://avatars1.githubusercontent.com/u/5485517?s=200&v=4","name":"MUI","desc":"MUI: \u6700\u63a5\u8fd1\u539f\u751fAPP\u4f53\u9a8c\u7684\u9ad8\u6027\u80fd\u524d\u7aef\u6846\u67b6","url":"http://dev.dcloud.net.cn/mui/","urls":{"-3":"https://github.com/dcloudio/mui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":147},{"icon":"https://avatars0.githubusercontent.com/u/12554859?s=200&v=4","name":"rollup","desc":"Rollup \u662f\u4e00\u4e2a JavaScript \u6a21\u5757\u6253\u5305\u5668\uff0c\u53ef\u4ee5\u5c06\u5c0f\u5757\u4ee3\u7801\u7f16\u8bd1\u6210\u5927\u5757\u590d\u6742\u7684\u4ee3\u7801\uff0c\u4f8b\u5982 library \u6216\u5e94\u7528\u7a0b\u5e8f","url":"https://rollupjs.org/guide/zh/","urls":{"-2":"https://rollupjs.org/guide/en/","-1":"https://rollupjs.org/guide/zh/","-3":"https://github.com/rollup/rollup"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":148},{"icon":"https://avatars1.githubusercontent.com/u/29208316?s=200&v=4","name":"standard","desc":"JavaScript\u6837\u5f0f\u6307\u5357\uff0c\u5e26\u6709linter\u548c\u81ea\u52a8\u4ee3\u7801\u4fee\u590d\u7a0b\u5e8f","url":"https://standardjs.com","urls":{"-3":"https://github.com/standard/standard"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","JavaScript"],"ownVisible":false,"id":149}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u5e38\u7528\u63d2\u4ef6","nav":[{"urls":{},"name":"Faker","icon":"https://github.com/favicon.ico","url":"https://github.com/Marak/faker.js","createdAt":"2021-01-23 17:37:03","desc":"\u5728Node.js\u548c\u6d4f\u89c8\u5668\u4e2d\u751f\u6210\u5927\u91cf\u903c\u771f\u7684\u5047\u6570\u636e","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":150},{"name":"sweetalert","desc":"JavaScript Alert \u7684\u6f02\u4eae\u66ff\u4ee3\u54c1","url":"https://sweetalert.js.org/","urls":{"-3":"https://github.com/t4t5/sweetalert"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":151},{"icon":"https://avatars0.githubusercontent.com/u/17040762?s=200&v=4","name":"Sortable","desc":"\u4e00\u4e2aJavaScript\u5e93\uff0c\u7528\u4e8e\u5728\u73b0\u4ee3\u6d4f\u89c8\u5668\u548c\u89e6\u6478\u8bbe\u5907\u4e0a\u5bf9\u62d6\u653e\u5217\u8868\u8fdb\u884c\u91cd\u65b0\u6392\u5e8f","url":"https://sortablejs.github.io/Sortable/","urls":{"-3":"https://github.com/SortableJS/Sortable"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":152},{"name":"formilyjs","desc":"Formily \u662f\u4e00\u4e2a\u7531\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u591a BU \u5171\u5efa\u7684\u9762\u5411\u4e2d\u540e\u53f0\u590d\u6742\u573a\u666f\u7684\u8868\u5355\u89e3\u51b3\u65b9\u6848\uff0c\u5b83\u4e5f\u662f\u4e00\u4e2a\u8868\u5355\u6846\u67b6","url":"https://formilyjs.org/","urls":{"-3":"https://github.com/alibaba/formily"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":153},{"icon":"https://roughnotation.com/images/fav.png","name":"rough-notation","desc":"\u4e00\u4e2a\u5c0f\u7684JavaScript\u5e93\uff0c\u7528\u4e8e\u5728\u7f51\u9875\u4e0a\u521b\u5efa\u624b\u7ed8\u52a8\u753b\u5e76\u4e3a\u5176\u6dfb\u52a0\u52a8\u753b\u6548\u679c","url":"https://roughnotation.com/","urls":{"-3":"https://github.com/rough-stuff/rough-notation"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":154},{"icon":"https://avatars3.githubusercontent.com/u/19199542?s=200&v=4","name":"AntV","desc":"AntV \u662f\u8682\u8681\u91d1\u670d\u5168\u65b0\u4e00\u4ee3\u6570\u636e\u53ef\u89c6\u5316\u89e3\u51b3\u65b9\u6848","url":"https://antv.alipay.com/","urls":{"-3":"https://github.com/antvis/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":155},{"icon":"https://www.lodashjs.com/icons/favicon-32x32.png","name":"Lodash","desc":"Lodash\u662f\u4e00\u4e2a\u4e00\u81f4\u6027\u3001\u6a21\u5757\u5316\u3001\u9ad8\u6027\u80fd\u7684 JavaScript \u5b9e\u7528\u5de5\u5177\u5e93","url":"https://www.lodashjs.com/","urls":{"-2":"https://lodash.com/","-1":"https://www.lodashjs.com/","-3":"https://github.com/lodash/lodash"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":156},{"icon":"https://www.swiper.com.cn/favicon.ico","name":"Swiper","desc":"\u8f7b\u91cf\u7ea7\u7684\u79fb\u52a8\u8bbe\u5907\u89e6\u63a7\u6ed1\u5757\u7684js\u6846\u67b6\uff0c\u4f7f\u7528\u786c\u4ef6\u52a0\u901f\u8fc7\u6e21","url":"https://www.swiper.com.cn/","urls":{"-2":"http://idangero.us/swiper/","-1":"https://www.swiper.com.cn/","-3":"https://github.com/nolimits4web/swiper"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":157},{"name":"fastclick","desc":"Polyfill \u89e3\u51b3\u79fb\u52a8\u7aef\u5177\u6709300ms\u5ef6\u8fdf\u7684\u5e93","url":"https://github.com/ftlabs/fastclick","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":158},{"name":"Layer","desc":"\u4e30\u5bcc\u591a\u6837\u7684Web\u5f39\u51fa\u5c42\u7ec4\u4ef6,\u53ef\u8f7b\u677e\u5b9e\u73b0Alert/Confirm/Prompt/\u666e\u901a\u63d0\u793a/\u9875\u9762\u533a\u5757/iframe/tips\u7b49\u7b49\u51e0\u4e4e\u6240\u6709\u7684\u5f39\u51fa\u4ea4\u4e92","url":"http://layer.layui.com/","urls":{"-3":"https://github.com/sentsin/layer/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":159},{"icon":"https://momentjs.com/static/img/moment-favicon.png","name":"moment.js","desc":"\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684JavaScript\u65e5\u671f\u5e93\uff0c\u7528\u4e8e\u89e3\u6790\uff0c\u9a8c\u8bc1\uff0c\u64cd\u4f5c\u548c\u683c\u5f0f\u5316\u65e5\u671f","url":"http://momentjs.cn/","urls":{"-2":"http://momentjs.com/","-1":"http://momentjs.cn/","-3":"https://github.com/moment/moment"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":160},{"name":"js-cookie","desc":"\u4e00\u4e2a\u7b80\u5355\uff0c\u8f7b\u91cf\u7ea7\u7684JavaScript API\uff0c\u7528\u4e8e\u5904\u7406\u6d4f\u89c8\u5668cookie","url":"https://github.com/js-cookie/js-cookie","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":161},{"name":"qs","desc":"\u5177\u6709\u5d4c\u5957\u652f\u6301\u7684\u67e5\u8be2\u5b57\u7b26\u4e32\u89e3\u6790\u5668","url":"https://github.com/ljharb/qs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":162},{"name":"Mock.js","desc":"\u751f\u6210\u968f\u673a\u6570\u636e\uff0c\u62e6\u622a Ajax \u8bf7\u6c42","url":"http://mockjs.com/","urls":{"-3":"https://github.com/nuysoft/Mock"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":163},{"icon":"https://gitalk.github.io/favicon.ico","name":"GITALK","desc":"\u51f9\u51f8\u5b9e\u9a8c\u5ba4\u51fa\u54c1\u7684\u4e00\u6b3e\u57fa\u4e8e Github Issue \u548c Preact \u5f00\u53d1\u7684\u8bc4\u8bba\u63d2\u4ef6","url":"https://gitalk.github.io/","urls":{"-3":"https://github.com/gitalk/gitalk"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":164},{"icon":"https://prismjs.com/assets/favicon.png","name":"prism","desc":"\u8f7b\u5de7\uff0c\u5f3a\u5927\uff0c\u4f18\u96c5\u7684\u4ee3\u7801\u8bed\u6cd5\u9ad8\u4eae","url":"https://prismjs.com/","urls":{"-3":"https://github.com/PrismJS/prism"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":165},{"name":"nprogress","desc":"\u9876\u90e8\u52a0\u8f7d\u8fdb\u5ea6\u6761","url":"http://ricostacruz.com/nprogress/","urls":{"-3":"https://github.com/rstacruz/nprogress"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":166},{"name":"iNotify","desc":"JS\u5b9e\u73b0\u6d4f\u89c8\u5668\u6807\u9898\u95ea\u70c1\uff0c\u6eda\u52a8\uff0c\u8bed\u97f3\u63d0\u793a\uff0cChrome/Safari/FireFox/IE\u901a\u77e5","url":"https://git.io/iNotify","urls":{"-3":"https://github.com/jaywcjlove/iNotify"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":167},{"name":"html2canvas","desc":"\u6700\u6d41\u884c\u7684JavaScript\u5c4f\u5e55\u622a\u56fe","url":"https://html2canvas.hertzen.com/","urls":{"-3":"https://github.com/niklasvh/html2canvas"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":168},{"name":"dayjs","desc":"\u4f7f\u7528\u4e0eMoment.js\u517c\u5bb9\u7684API\u6765\u89e3\u6790\uff0c\u9a8c\u8bc1\uff0c\u64cd\u4f5c\u548c\u663e\u793a\u73b0\u4ee3\u6d4f\u89c8\u5668\u7684\u65e5\u671f\u548c\u65f6\u95f4","url":"https://github.com/iamkun/dayjs/blob/master/docs/zh-cn/API-reference.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":169},{"name":"JsBarcode","desc":"\u6613\u4e8e\u4f7f\u7528\u4f46\u529f\u80fd\u5f3a\u5927\u7684\u6761\u5f62\u7801\u751f\u6210\u5668\uff0c\u9002\u7528\u4e8eWeb\u548cNode.js","url":"https://lindell.me/JsBarcode/","urls":{"-3":"https://github.com/lindell/JsBarcode"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":170},{"name":"clipboard.js","desc":"\u73b0\u4ee3\u590d\u5236\u5230\u526a\u8d34\u677f\u3002\u6ca1\u6709Flash\u3002\u53ea\u97003kb gzipped\u3002","url":"https://clipboardjs.com/","urls":{"-3":"https://github.com/zenorocha/clipboard.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":171},{"name":"lib-flexible","desc":"\u53ef\u4f38\u7f29\u5e03\u5c40\u65b9\u6848, \u6dd8\u5b9drem\u89e3\u51b3\u65b9\u6848","url":"https://github.com/amfe/lib-flexible","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":172},{"name":"js-xss","desc":"\u6839\u636e\u767d\u540d\u5355\u8fc7\u6ee4HTML(\u9632\u6b62XSS\u653b\u51fb)","url":"https://github.com/leizongmin/js-xss","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":173},{"name":"mescroll","desc":"\u7cbe\u81f4\u7684\u4e0b\u62c9\u5237\u65b0\u548c\u4e0a\u62c9\u52a0\u8f7d js\u6846\u67b6.\u652f\u6301vue,\u5b8c\u7f8e\u8fd0\u884c\u4e8e\u79fb\u52a8\u7aef\u548c\u4e3b\u6d41PC\u6d4f\u89c8\u5668","url":"http://www.mescroll.com/index.html","urls":{"-3":"https://github.com/mescroll/mescroll"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":174},{"name":"better-scroll","desc":"\u7075\u611f\u6765\u81eaiscroll\uff0c\u5b83\u5177\u6709\u66f4\u597d\u7684\u6eda\u52a8\u6027\u80fd","url":"https://ustbhuangyi.github.io/better-scroll/","urls":{"-3":"https://github.com/ustbhuangyi/better-scroll"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":175},{"name":"pinyinjs","desc":"\u4e00\u4e2a\u5b9e\u73b0\u6c49\u5b57\u4e0e\u62fc\u97f3\u4e92\u8f6c\u7684\u5c0f\u5de7web\u5de5\u5177\u5e93","url":"http://demo.haoji.me/pinyinjs/","urls":{"-3":"https://github.com/sxei/pinyinjs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":176},{"name":"ms","desc":"\u4f7f\u7528\u6b64\u5305\u53ef\u4ee5\u8f7b\u677e\u5730\u5c06\u5404\u79cd\u65f6\u95f4\u683c\u5f0f\u8f6c\u6362\u4e3a\u6beb\u79d2\u3002","url":"https://github.com/zeit/ms","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":177},{"icon":"https://avatars2.githubusercontent.com/u/5298359?s=200&v=4","name":"ramda","desc":"\u9002\u7528\u4e8eJavaScript\u7a0b\u5e8f\u5458\u7684\u5b9e\u7528\u51fd\u6570\u5e93","url":"https://ramdajs.com","urls":{"-3":"https://github.com/ramda/ramda"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":178},{"name":"decimal.js","desc":"JavaScript\u7684\u4efb\u610f\u7cbe\u5ea6Decimal\u7c7b\u578b (0.1+0.2=0.3)","url":"http://mikemcl.github.io/decimal.js","urls":{"-3":"https://github.com/MikeMcl/decimal.js/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":179},{"name":"copy-to-clipboard","desc":"\u7b80\u5355\u7684\u6a21\u5757\u516c\u5f00copy\u529f\u80fd\uff0c\u5b83\u5c06\u5c1d\u8bd5\u4f7f\u7528execCommand\u4e0e\u7279\u5b9a\u4e8eIE\u7684clipboardData\u63a5\u53e3\u7684\u56de\u9000\uff0c\u6700\u540e\uff0c\u901a\u5e38prompt\u4f7f\u7528\u9002\u5f53\u7684\u6587\u672c\u5185\u5bb9\u548c\u6d88\u606f","url":"https://github.com/sudodoki/copy-to-clipboard","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":180},{"name":"path-to-regexp","desc":"\u5c06\u5b57\u7b26\u4e32\u8def\u5f84\u8f6c\u6362\u6210\u6b63\u5219\u8868\u8fbe\u5f0f","url":"https://github.com/pillarjs/path-to-regexp","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":181},{"name":"autosize","desc":"autosize\u662f\u4e00\u4e2a\u5c0f\u7684\u72ec\u7acb\u811a\u672c\uff0c\u53ef\u4ee5\u81ea\u52a8\u8c03\u6574textarea\u57df\u7684\u9ad8\u5ea6\u4ee5\u9002\u5408\u6587\u672c","url":"http://www.jacklmoore.com/autosize/","urls":{"-3":"https://github.com/jackmoore/autosize"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":182},{"name":"shake.js","desc":"\u76d1\u542c\u624b\u673a\u8bbe\u5907\u6447\u52a8","url":"https://github.com/alexgibson/shake.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":183},{"name":"progressbar","desc":"\u53ef\u4ee5\u8f7b\u677e\u5730\u4e3aWeb\u521b\u5efa\u54cd\u5e94\u5f0f\u548c\u65f6\u5c1a\u7684\u8fdb\u5ea6\u680f\u3002\u52a8\u753b\u5373\u4f7f\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4e5f\u8868\u73b0\u826f\u597d","url":"https://kimmobrunfeldt.github.io/progressbar.js/","urls":{"-3":"https://github.com/kimmobrunfeldt/progressbar.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":184},{"icon":"https://avatars0.githubusercontent.com/u/28626637?s=200&v=4","name":"easy-mock","desc":"Easy Mock \u662f\u4e00\u4e2a\u53ef\u89c6\u5316\uff0c\u5e76\u4e14\u80fd\u5feb\u901f\u751f\u6210\u6a21\u62df\u6570\u636e\u7684\u6301\u4e45\u5316\u670d\u52a1","url":"https://easy-mock.com","urls":{"-3":"https://github.com/easy-mock/easy-mock/blob/dev/README.zh-CN.md"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":185},{"icon":"https://joe.sh/assets/images/favicon.ico","name":"Clamp.js","desc":"JS\u7248\u672c\u7684\u591a\u884c\u6587\u672c\u6ea2\u51fa\u7701\u7565","url":"https://joe.sh/clamp-js","urls":{"-3":"https://github.com/josephschmitt/Clamp.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":186},{"name":"json-bigint","desc":"\u5e26\u6709bigints\u652f\u6301\u7684JSON.parse / stringify","url":"https://github.com/sidorares/json-bigint","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":187},{"name":"exif-js","desc":"\u7528\u4e8e\u8bfb\u53d6EXIF\u56fe\u50cf\u5143\u6570\u636e\u7684JavaScript\u5e93","url":"https://github.com/exif-js/exif-js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":188},{"name":"lunr.js","desc":"Lunr.js\u662f\u4e00\u4e2a\u7528\u4e8e\u6d4f\u89c8\u5668\u7684\u5c0f\u578b\u5168\u6587\u672c\u641c\u7d22\u5e93\u3002\u5b83\u4e3aJSON\u6587\u6863\u5efa\u7acb\u7d22\u5f15\uff0c\u5e76\u63d0\u4f9b\u4e00\u4e2a\u7b80\u5355\u7684\u641c\u7d22\u754c\u9762\u6765\u68c0\u7d22\u4e0e\u6587\u672c\u67e5\u8be2\u6700\u5339\u914d\u7684\u6587\u6863","url":"https://github.com/olivernn/lunr.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":189},{"name":"hotkeys","desc":"\u5f3a\u5927\u7684Javascript\u5e93\uff0c\u7528\u4e8e\u6355\u83b7\u952e\u76d8\u8f93\u5165\u548c\u8f93\u5165\u7684\u6309\u952e\u7ec4\u5408\u3002\u5b83\u6ca1\u6709\u4f9d\u8d56\u6027\u3002","url":"https://wangchujiang.com/hotkeys/","urls":{"-3":"https://github.com/jaywcjlove/hotkeys"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":190},{"name":"dom-to-image","desc":"\u4f7f\u7528HTML5 canvas\u4eceDOM\u8282\u70b9\u751f\u6210\u56fe\u50cf","url":"https://github.com/tsayen/dom-to-image","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":191},{"icon":"https://avatars1.githubusercontent.com/u/59940233?s=200&v=4","name":"single-spa","desc":"\u4f7f\u5fae\u524d\u7aef\u53d8\u5f97\u7b80\u5355","url":"https://single-spa.js.org/","urls":{"-3":"https://github.com/single-spa/single-spa"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":192},{"icon":"https://avatars2.githubusercontent.com/u/33895495?s=200&v=4","name":"qiankun","desc":"\u4e3a\u5fae\u578b\u524d\u7aef\u63d0\u4f9b\u5feb\u901f\uff0c\u7b80\u5355\u548c\u5b8c\u6574\u7684\u89e3\u51b3\u65b9\u6848","url":"https://qiankun.umijs.org/","urls":{"-3":"https://github.com/umijs/qiankun"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":193},{"icon":"https://zelark.github.io/nano-id-cc/favicon.ico","name":"nanoid","desc":"\u4e00\u4e2a\u5f88\u5c0f\u7684\uff0c\u5b89\u5168\u7684\uff0cURL\u53cb\u597d\u7684\uff0c\u552f\u4e00\u7684JavaScript\u5b57\u7b26\u4e32ID\u751f\u6210\u5668\u3002","url":"https://zelark.github.io/nano-id-cc/","urls":{"-3":"https://github.com/ai/nanoid"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":194},{"name":"Numeral-js","desc":"\u4e00\u4e2a\u7528\u4e8e\u683c\u5f0f\u5316\u548c\u5904\u7406\u6570\u5b57\u7684javascript\u5e93","url":"http://numeraljs.com","urls":{"-3":"https://github.com/adamwdraper/Numeral-js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":195},{"name":"ua-parser-js","desc":"\u7528\u4e8e\u4eceuserAgent\u5b57\u7b26\u4e32\u68c0\u6d4b\u6d4f\u89c8\u5668\uff0c\u5f15\u64ce\uff0c\u64cd\u4f5c\u7cfb\u7edf\uff0cCPU\u548c\u8bbe\u5907\u7c7b\u578b/\u6a21\u578b\u3002\u652f\u6301\u6d4f\u89c8\u5668\u548cnode.js\u73af\u5883","url":"http://faisalman.github.io/ua-parser-js/","urls":{"-3":"https://github.com/faisalman/ua-parser-js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":196},{"icon":"https://avatars0.githubusercontent.com/u/7997161?s=200&v=4","name":"hammer.js","desc":"\u4e00\u4e2a\u7528\u4e8e\u591a\u70b9\u89e6\u6478\u624b\u52bf\u7684javascript\u5e93","url":"http://hammerjs.github.io","urls":{"-3":"https://github.com/hammerjs/hammer.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u5e38\u7528\u63d2\u4ef6"],"ownVisible":false,"id":197}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fd\u9645\u5316\u591a\u8bed\u8a00\u65b9\u6848","nav":[{"icon":"https://avatars1.githubusercontent.com/u/8546082?s=200&v=4","name":"i18next","desc":"i18next\u662f\u4e00\u4e2a\u975e\u5e38\u6d41\u884c\u7684\u56fd\u9645\u5316\u6846\u67b6\uff0c\u9002\u7528\u4e8e\u6d4f\u89c8\u5668\u6216\u4efb\u4f55\u5176\u4ed6JavaScript\u73af\u5883\uff08\u4f8b\u5982\uff0cnode.js\uff09\u3002","url":"http://i18next.com/","urls":{"-3":"https://github.com/i18next/i18next"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fd\u9645\u5316\u591a\u8bed\u8a00\u65b9\u6848"],"ownVisible":false,"id":198},{"icon":"https://avatars3.githubusercontent.com/u/11225539?s=200&v=4","name":"js-lingui","desc":"JavaScript\u7684\u53ef\u8bfb\uff0c\u81ea\u52a8\u5316\u548c\u4f18\u5316\uff085 kb\uff09\u56fd\u9645\u5316","url":"https://lingui.js.org/","urls":{"-3":"https://github.com/lingui/js-lingui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fd\u9645\u5316\u591a\u8bed\u8a00\u65b9\u6848"],"ownVisible":false,"id":199}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u52a8\u753b","nav":[{"name":"wow.js","desc":"\u57fa\u4e8eAnimate.css,\u5411\u4e0b\u6eda\u52a8\u9875\u9762\u65f6\u663e\u793aCSS\u52a8\u753b,\u8f7b\u677e\u81ea\u5b9a\u4e49\u52a8\u753b\u8bbe\u7f6e\uff1a\u6837\u5f0f\uff0c\u5ef6\u8fdf\uff0c\u957f\u5ea6\uff0c\u504f\u79fb\uff0c\u8fed\u4ee3...","url":"http://mynameismatthieu.com/WOW/","urls":{"-3":"https://github.com/matthieua/WOW"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":200},{"name":"Waves","desc":"\u53d7Google\u6750\u8d28\u8bbe\u8ba1\u542f\u53d1\u7684\u70b9\u51fb\u6548\u679c, \u6ce2\u7eb9\u6548\u679c","url":"http://fian.my.id/Waves/#examples","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":201},{"name":"velocity","desc":"\u52a0\u901fJavaScript\u52a8\u753b","url":"http://velocityjs.org/","urls":{"-3":"https://github.com/julianshapiro/velocity"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":202},{"name":"anime","desc":"\u8f7b\u91cf\u7ea7\u7684JavaScript\u52a8\u753b\u5e93\u3002\u5b83\u9002\u7528\u4e8e\u4efb\u4f55CSS\u5c5e\u6027\uff0c\u5355\u4e2aCSS\u8f6c\u6362\uff0cSVG\u6216\u4efb\u4f55DOM\u5c5e\u6027\u4ee5\u53caJavaScript\u5bf9\u8c61","url":"http://animejs.com/","urls":{"-3":"https://github.com/juliangarnier/anime"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":203},{"name":"Hover-Buttons","desc":"hover\u52a8\u753bCSS / SCSS\u6309\u94ae","url":"https://varin6.github.io/Hover-Buttons/","urls":{"-3":"https://github.com/Varin6/Hover-Buttons"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a8\u753b"],"ownVisible":false,"id":204}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u52a0\u76d0","nav":[{"name":"JavaScript-MD5","desc":"JavaScript MD5\u5b9e\u73b0\u3002\u517c\u5bb9\u670d\u52a1\u5668\u7aef\u73af\u5883\uff0c\u5982node.js\uff0cRequireJS\u7b49\u6a21\u5757\u52a0\u8f7d\u5668\u548c\u6240\u6709Web\u6d4f\u89c8\u5668","url":"https://blueimp.github.io/JavaScript-MD5/","urls":{"-3":"https://github.com/blueimp/JavaScript-MD5"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":205},{"name":"js-sha1","desc":"JavaScript\u7684\u7b80\u5355SHA1\u54c8\u5e0c\u51fd\u6570\u652f\u6301UTF-8\u7f16\u7801\u3002","url":"https://github.com/emn178/js-sha1","urls":{"-3":"https://github.com/emn178/js-sha1"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":206},{"name":"js-base64","desc":"JavaScript\u7684Base64\u5b9e\u73b0","url":"https://github.com/dankogai/js-base64","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":207},{"name":"jsSHA","desc":"SHA-1\uff0cSHA-224\uff0cSHA3-224\uff0cSHA-256\uff0cSHA3-256\uff0cSHA-384\uff0cSHA3-384\uff0cSHA-512\uff0cSHA3-512\uff0cSHAKE128 \uff0c\u548cSHAKE256\u4ee5\u53caHMAC","url":"https://caligatio.github.io/jsSHA/","urls":{"-3":"https://github.com/Caligatio/jsSHA"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":208},{"name":"crypto-js","desc":"\u52a0\u5bc6\u6807\u51c6\u7684JavaScript\u5e93","url":"https://cryptojs.gitbook.io","urls":{"-3":"https://github.com/brix/crypto-js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u52a0\u76d0"],"ownVisible":false,"id":209}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173","nav":[{"name":"pdf.js","desc":"PDF.js\u662f\u4e00\u4e2a\u4f7f\u7528HTML5\u6784\u5efa\u7684\u53ef\u79fb\u690d\u6587\u6863\u683c\u5f0f\uff08PDF\uff09\u67e5\u770b\u5668","url":"https://mozilla.github.io/pdf.js/web/viewer.html","urls":{"-3":"https://github.com/mozilla/pdf.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":210},{"name":"webuploader","desc":"\u767e\u5ea6\u51fa\u54c1\uff0c\u91c7\u7528\u5927\u6587\u4ef6\u5206\u7247\u5e76\u53d1\u4e0a\u4f20\uff0c\u6781\u5927\u7684\u63d0\u9ad8\u4e86\u6587\u4ef6\u4e0a\u4f20\u6548\u7387\u3002","url":"http://fex.baidu.com/webuploader/","urls":{"-3":"https://github.com/fex-team/webuploader"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":211},{"name":"pdfmake","desc":"\u7eafJavaScript\u4e2d\u7684\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u7aefPDF\u6253\u5370, HTML\u8f6c\u6362Pdf","url":"http://pdfmake.org/","urls":{"-3":"https://github.com/bpampuch/pdfmake"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":212},{"name":"ViewerJS","desc":"JavaScript\u4e2d\u7684\u6587\u6863\u9605\u8bfb\u5668, pdf/ppt/opt/odt\u7b49\u6587\u4ef6\u6e32\u67d3\u6210HTML","url":"https://viewerjs.org/","urls":{"-3":"https://github.com/kogmbh/ViewerJS"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":213},{"name":"filepond","desc":"\u7075\u6d3b\u800c\u6709\u8da3\u7684JavaScript\u6587\u4ef6\u4e0a\u4f20\u5e93","url":"https://pqina.nl/filepond/","urls":{"-3":"https://github.com/pqina/filepond"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":214},{"name":"FileSaver.js","desc":"\u5ba2\u6237\u7aef\u4fdd\u5b58\u6587\u4ef6\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u975e\u5e38\u9002\u5408\u5728\u5ba2\u6237\u7aef\u4e0a\u751f\u6210\u6587\u4ef6\u7684Web\u5e94\u7528\u7a0b\u5e8f","url":"https://github.com/eligrey/FileSaver.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":215},{"name":"jsPDF","desc":"\u4e00\u4e2a\u4f7f\u7528JavaScript\u751f\u6210PDF\u7684\u5e93","url":"https://parall.ax/products/jspdf","urls":{"-3":"https://github.com/MrRio/jsPDF"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6587\u4ef6\u63d2\u4ef6\u76f8\u5173"],"ownVisible":false,"id":216}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u7247\u9884\u89c8","nav":[{"name":"PhotoSwipe","desc":"\u9002\u7528\u4e8e\u79fb\u52a8\u548c\u684c\u9762\u7684JavaScript\u56fe\u50cf\u5e93, \u56fe\u7247\u9884\u89c8","url":"http://photoswipe.com/","urls":{"-3":"https://github.com/dimsemenov/PhotoSwipe"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u7247\u9884\u89c8"],"ownVisible":false,"id":217},{"name":"viewerjs","desc":"javascript\u56fe\u7247\u9884\u89c8","url":"https://fengyuanchen.github.io/viewerjs/","urls":{"-3":"https://github.com/fengyuanchen/viewerjs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u7247\u9884\u89c8"],"ownVisible":false,"id":218}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u97f3\u9891/\u89c6\u9891","nav":[{"icon":"https://howlerjs.com/assets/images/favicon.ico","name":"howler.js","desc":"\u73b0\u4ee3 Web \u97f3\u9891 javascript \u5e93","url":"https://howlerjs.com/","urls":{"-3":"https://github.com/goldfire/howler.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u97f3\u9891/\u89c6\u9891"],"ownVisible":false,"id":219},{"name":"DPlayer","desc":"\u54c7\uff0c\u8fd9\u4e48\u53ef\u7231\u7684HTML5 danmaku\u89c6\u9891\u64ad\u653e\u5668","url":"http://dplayer.js.org/#/zh-Hans/","urls":{"-2":"http://dplayer.js.org/#/home","-1":"http://dplayer.js.org/#/zh-Hans/","-3":"https://github.com/MoePlayer/DPlayer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u97f3\u9891/\u89c6\u9891"],"ownVisible":false,"id":220},{"name":"APlayer","desc":"\u54c7\uff0c\u8fd9\u4e48\u53ef\u7231\u7684HTML5\u97f3\u4e50\u64ad\u653e\u5668","url":"https://aplayer.js.org/#/zh-Hans/","urls":{"-2":"http://aplayer.js.org/","-1":"https://aplayer.js.org/#/zh-Hans/","-3":"https://github.com/MoePlayer/APlayer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u97f3\u9891/\u89c6\u9891"],"ownVisible":false,"id":221}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u5f62","nav":[{"icon":"https://threejs.org/files/favicon.ico","name":"three.js","desc":"JavaScript 3D\u5f15\u64ce","url":"https://threejs.org/","urls":{"-2":"https://threejs.org/","-1":"http://techbrood.com/threejs/docs","-3":"https://github.com/mrdoob/three.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u5f62"],"ownVisible":false,"id":222},{"name":"flowy","desc":"\u521b\u5efa\u6d41\u7a0b\u56fe\u7684\u6700\u5c0fJavaScript\u5e93","url":"https://github.com/alyssaxuu/flowy","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u5f62"],"ownVisible":false,"id":223},{"icon":"https://echarts.apache.org/examples/images/favicon.png","name":"incubator-echarts","desc":"\u6d4f\u89c8\u5668\u7684\u529f\u80fd\u5f3a\u5927\u7684\u4ea4\u4e92\u5f0f\u56fe\u8868\u548c\u53ef\u89c6\u5316\u5e93","url":"http://echarts.apache.org/","urls":{"-3":"https://github.com/apache/incubator-echarts"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u5f62"],"ownVisible":false,"id":224},{"icon":"https://avatars1.githubusercontent.com/u/1562726?s=200&v=4","name":"d3","desc":"\u501f\u52a9SVG\uff0cCanvas\u548cHTML\u4f7f\u6570\u636e\u6829\u6829\u5982\u751f\u3002","url":"https://github.com/d3/d3","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u56fe\u5f62"],"ownVisible":false,"id":225}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"UI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://getuikit.com/images/favicon.png","name":"uikit","desc":"\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u3001\u6a21\u5757\u5316\u7684\u524d\u7aef\u6846\u67b6\u53ef\u5feb\u901f\u6784\u5efa\u5f3a\u5927\u7684web\u524d\u7aef\u754c\u9762","url":"http://www.getuikit.net/","urls":{"-2":"https://getuikit.com/docs/installation","-1":"http://www.getuikit.net/","-3":"https://github.com/uikit/uikit"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","UI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":226}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u539f\u751fAPP\u4ea4\u4e92webview\u6865\u63a5","nav":[{"name":"JsBridge","desc":"android java\u548cjavascript\u6865\u63a5\uff0c\u7075\u611f\u6765\u81ea\u5fae\u4fe1webview jsbridge","url":"https://github.com/lzyzsd/JsBridge","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u539f\u751fAPP\u4ea4\u4e92webview\u6865\u63a5"],"ownVisible":false,"id":227},{"name":"DSBridge-Android","desc":"\u4e00\u4e2a\u73b0\u4ee3\u7684\u8de8\u5e73\u53f0JavaScript\u6865\u63a5\uff0c\u901a\u8fc7\u5b83\u60a8\u53ef\u4ee5\u5728JavaScript\u548c\u672c\u673a\u4e4b\u95f4\u540c\u6b65\u6216\u5f02\u6b65\u5730\u8c03\u7528\u5f7c\u6b64\u7684\u529f\u80fd","url":"https://github.com/wendux/DSBridge-Android","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u539f\u751fAPP\u4ea4\u4e92webview\u6865\u63a5"],"ownVisible":false,"id":228}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u6570\u9a8c\u8bc1","nav":[{"name":"joi","desc":"\u5bf9\u8c61\u6a21\u5f0f\u9a8c\u8bc1","url":"https://github.com/hapijs/joi","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":229},{"name":"validator.js","desc":"\u5b57\u7b26\u4e32\u9a8c\u8bc1\u63d2\u4ef6\u3001\u8868\u5355\u9a8c\u8bc1","url":"https://github.com/chriso/validator.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":230},{"name":"async-validator","desc":"\u5f02\u6b65\u9a8c\u8bc1\u5668","url":"https://github.com/yiminghe/async-validator","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":231},{"name":"yup","desc":"\u65e0\u6548\u7684\u7b80\u5355\u5bf9\u8c61\u67b6\u6784\u9a8c\u8bc1","url":"https://runkit.com/jquense/yup","urls":{"-3":"https://github.com/jquense/yup#using-a-custom-locale-dictionary"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":232}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"icon":"https://avatars2.githubusercontent.com/u/18673496?s=200&v=4","name":"localForage","desc":"\u79bb\u7ebf\u5b58\u50a8\uff0c\u4f7f\u7528\u7b80\u5355\u4f46\u529f\u80fd\u5f3a\u5927\u7684API\u5305\u88c5IndexedDB\uff0cWebSQL\u6216localStorage\u3002","url":"https://github.com/localForage/localForage","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6570\u636e\u5e93"],"ownVisible":false,"id":233}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u6b65\u9aa4\u5f15\u5bfc","nav":[{"icon":"https://avatars2.githubusercontent.com/u/2010360?s=200&v=4","name":"introjs","desc":"\u4e3a\u60a8\u7684\u7f51\u7ad9\u548c\u9879\u76ee\u63d0\u4f9b\u65b0\u529f\u80fd\u4ecb\u7ecd\u548c\u9010\u6b65\u7528\u6237\u6307\u5357\u7684\u66f4\u597d\u65b9\u6cd5","url":"https://introjs.com/","urls":{"-3":"https://github.com/usablica/intro.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6b65\u9aa4\u5f15\u5bfc"],"ownVisible":false,"id":234},{"icon":"https://avatars3.githubusercontent.com/u/17297725?s=200&v=4","name":"shepherd","desc":"\u5f15\u5bfc\u60a8\u7684\u7528\u6237\u6d4f\u89c8\u60a8\u7684\u5e94\u7528\u7a0b\u5e8f","url":"https://shepherdjs.dev/","urls":{"-3":"https://github.com/shipshapecode/shepherd"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6b65\u9aa4\u5f15\u5bfc"],"ownVisible":false,"id":235},{"name":"bootstrap-tour","desc":"\u4f7f\u7528Twitter Bootstrap Popovers\u5feb\u901f\u65b9\u4fbf\u5730\u8fdb\u884c\u4ea7\u54c1\u6d4f\u89c8","url":"http://bootstraptour.com/","urls":{"-3":"https://github.com/sorich87/bootstrap-tour"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","JavaScript","\u6b65\u9aa4\u5f15\u5bfc"],"ownVisible":false,"id":236}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"React","icon":"https://reactjs.org/favicon.ico","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","nav":[{"name":"React","desc":"\u7528\u4e8e\u6784\u5efa\u7528\u6237\u754c\u9762\u7684 JavaScript \u5e93","url":"https://zh-hans.reactjs.org/","urls":{"-2":"https://reactjs.org/","-1":"https://zh-hans.reactjs.org/","-3":"https://github.com/facebook/react/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":237},{"name":"React Router","desc":"React \u8def\u7531\u7ba1\u7406","url":"https://react-router.docschina.org/","urls":{"-2":"https://reacttraining.com/react-router/","-1":"https://react-router.docschina.org/","-3":"https://github.com/ReactTraining/react-router"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":238},{"icon":"https://avatars2.githubusercontent.com/u/13142323?s=200&v=4","name":"Redux","desc":"React \u72b6\u6001\u7ba1\u7406","url":"http://www.redux.org.cn/docs/react-redux/api.html","urls":{"-2":"https://redux.js.org/basics/usagewithreact","-1":"http://www.redux.org.cn/docs/react-redux/api.html","-3":"https://github.com/reduxjs/redux"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":239},{"name":"create-react-app","desc":"React\u5b98\u65b9\u811a\u624b\u67b6","url":"https://www.html.cn/create-react-app/","urls":{"-2":"https://facebook.github.io/create-react-app/","-1":"https://www.html.cn/create-react-app/","-3":"https://github.com/facebook/create-react-app"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":240}],"createdAt":"2021-01-23 09:32:06"},{"title":"Redux\u76f8\u5173","nav":[{"name":"React Redux","desc":"Redux\u7684\u5b98\u65b9React\u7ed1\u5b9a(\u901a\u5e38\u914d\u5408redux\u4f7f\u7528)","url":"https://react-redux.js.org/","urls":{"-3":"https://github.com/reduxjs/react-redux"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","Redux\u76f8\u5173"],"ownVisible":false,"id":241},{"name":"redux-actions","desc":"Redux\u7684Flux\u6807\u51c6action\u5b9e\u7528\u7a0b\u5e8f(\u7528\u4e8e\u751f\u6210action)","url":"https://redux-actions.js.org/","urls":{"-3":"https://github.com/redux-utilities/redux-actions"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","Redux\u76f8\u5173"],"ownVisible":false,"id":242},{"name":"redux-thunk","desc":"Redux\u7684Thunk\u4e2d\u95f4\u4ef6, \u7528\u4e8e\u5904\u7406\u5f02\u6b65\u903b\u8f91","url":"https://github.com/reduxjs/redux-thunk","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","Redux\u76f8\u5173"],"ownVisible":false,"id":243},{"icon":"https://avatars2.githubusercontent.com/u/24776643?s=200&v=4","name":"redux-saga","desc":"\u4e00\u4e2a\u65e8\u5728\u4f7f\u5e94\u7528\u7a0b\u5e8f\u526f\u4f5c\u7528\uff08\u5373\u5f02\u6b65\u4e8b\u7269\uff0c\u5982\u6570\u636e\u83b7\u53d6\u548c\u4e0d\u7eaf\u7684\u4e1c\u897f\uff0c\u5982\u8bbf\u95ee\u6d4f\u89c8\u5668\u7f13\u5b58\uff09\u66f4\u5bb9\u6613\u7ba1\u7406\uff0c\u6267\u884c\u66f4\u9ad8\u6548\uff0c\u6613\u4e8e\u6d4b\u8bd5\uff0c\u4ee5\u53ca\u66f4\u597d\u5730\u5904\u7406\u6545\u969c\u7684\u5e93","url":"https://redux-saga.js.org/","urls":{"-3":"https://github.com/redux-saga/redux-saga"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","Redux\u76f8\u5173"],"ownVisible":false,"id":244}],"createdAt":"2021-01-23 09:32:06"},{"title":"React Native\u76f8\u5173","nav":[{"name":"React Native","desc":"\u4f7f\u7528React\u6784\u5efa\u539f\u751fAPP\u7a0b\u5e8f\u7684\u6846\u67b6","url":"https://reactnative.cn/docs/0.51/tutorial.html","urls":{"-2":"https://facebook.github.io/react-native/docs/getting-started.html","-1":"https://reactnative.cn/docs/0.51/tutorial.html","-3":"https://github.com/facebook/react-native"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","React Native\u76f8\u5173"],"ownVisible":false,"id":245},{"icon":"https://avatars0.githubusercontent.com/u/29647600?s=200&v=4","name":"React Navigation","desc":"\u4e3a\u60a8\u7684\u672c\u5730\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u8def\u7531\u548c\u5bfc\u822a","url":"https://reactnavigation.org/zh-Hans/","urls":{"-2":"https://reactnavigation.org/en/","-1":"https://reactnavigation.org/zh-Hans/","-3":"https://github.com/react-navigation/react-navigation"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","React Native\u76f8\u5173"],"ownVisible":false,"id":246},{"icon":"https://avatars0.githubusercontent.com/u/12504344?s=200&v=4","name":"expo","desc":"\u7528\u4e8e\u5236\u4f5c\u8de8\u5e73\u53f0\u79fb\u52a8\u5e94\u7528\u7a0b\u5e8f\u7684Expo\u5e73\u53f0","url":"https://docs.expo.io","urls":{"-3":"https://github.com/expo/expo"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","React Native\u76f8\u5173"],"ownVisible":false,"id":247},{"icon":"https://avatars1.githubusercontent.com/u/12101536?s=200&v=4","name":"ant-design-mobile-rn","desc":"\u4e00\u4e2a\u57fa\u4e8e React Native \u7684 UI \u7ec4\u4ef6\u5e93","url":"https://rn.mobile.ant.design/index-cn","urls":{"-2":"https://rn.mobile.ant.design/","-1":"https://rn.mobile.ant.design/index-cn","-3":"https://github.com/ant-design/ant-design-mobile-rn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","React Native\u76f8\u5173"],"ownVisible":false,"id":248}],"createdAt":"2021-01-23 09:32:06"},{"title":"PC\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars1.githubusercontent.com/u/12101536?s=200&v=4","name":"Ant Design","desc":"Ant Design - A UI Design Language","url":"https://ant.design/docs/react/introduce-cn","urls":{"-2":"https://ant.design/docs/react/introduce","-1":"https://ant.design/docs/react/introduce-cn","-3":"https://github.com/ant-design/ant-design"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":249},{"icon":"https://material-ui.com/static/favicon.ico","name":"MATERIAL-UI","desc":"React \u7ec4\u4ef6\u7528\u4e8e\u66f4\u5feb\u901f\u3001\u66f4\u7b80\u4fbf\u7684 web \u5f00\u53d1\u3002\u4f60\u4e5f\u53ef\u4ee5\u5efa\u7acb\u4f60\u81ea\u5df1\u7684\u8bbe\u8ba1\u7cfb\u7edf\uff0c\u6216\u8005\u4ece Material Design \u5f00\u59cb","url":"https://material-ui.com/zh/","urls":{"-2":"https://material-ui.com/","-1":"https://material-ui.com/zh/","-3":"https://github.com/mui-org/material-ui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":250},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"element","desc":"elementUI\u7ec4\u4ef6\u5e93","url":"https://elemefe.github.io/element-react/#/zh-CN/quick-start","urls":{"-2":"https://elemefe.github.io/element-react/#/en-US/quick-start","-1":"https://elemefe.github.io/element-react/#/zh-CN/quick-start","-3":"https://github.com/ElemeFE/element-react"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":251},{"icon":"https://avatars0.githubusercontent.com/u/6853419?s=200&v=4","name":"react-bootstrap","desc":"\u57fa\u4e8eBootstrap 3\u6784\u5efa\u7684\u7ec4\u4ef6\u5e93","url":"https://react-bootstrap.github.io/getting-started/introduction","urls":{"-3":"https://github.com/react-bootstrap/react-bootstrap"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":252},{"name":"evergreen","desc":"Evergreen\u662f\u4e00\u4e2aReact UI\u6846\u67b6\uff0c\u7528\u4e8e\u5728Web\u4e0a\u6784\u5efa\u96c4\u5fc3\u52c3\u52c3\u7684\u4ea7\u54c1\u3002\u7531Segment\u5e26\u7ed9\u60a8\u3002","url":"https://evergreen.segment.com/","urls":{"-3":"https://github.com/segmentio/evergreen"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":253},{"name":"@alifd/next","desc":"@alifd/next \u662f Alibaba Fusion Design \u7684\u5b98\u65b9 React \u5b9e\u73b0, \u8d4b\u80fd\u4f01\u4e1a\u4e2d\u540e\u53f0\u4ea7\u54c1\u5f00\u53d1","url":"https://fusion.design/component/doc/102","urls":{"-3":"https://github.com/alibaba-fusion/next"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":254},{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"zent","desc":"Zent \u662f\u6709\u8d5e PC \u7aef WebUI \u89c4\u8303\u7684 React \u5b9e\u73b0\uff0c\u63d0\u4f9b\u4e86\u4e00\u6574\u5957\u57fa\u7840\u7684 UI \u7ec4\u4ef6\u4ee5\u53ca\u4e00\u4e9b\u5e38\u7528\u7684\u4e1a\u52a1\u7ec4\u4ef6","url":"https://youzan.github.io/zent/zh/guides/install","urls":{"-3":"https://github.com/youzan/zent"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":255},{"name":"React95","desc":"\u88c5\u4fee\u4e00\u65b0\u7684\u73b0\u4ee3\u7684\u5e94\u7528\u7a0b\u5e8f\u505a\u51faReact Windows95\u7684UI\u7ec4\u4ef6\u3002","url":"https://arturbien.github.io/React95","urls":{"-3":"https://github.com/arturbien/React95"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":256},{"icon":"https://avatars1.githubusercontent.com/u/19635045?s=200&v=4","name":"rsuite","desc":"React Suite \u662f\u4e00\u5957 React \u7ec4\u4ef6\u5e93\uff0c\u4e3a\u540e\u53f0\u4ea7\u54c1\u800c\u751f\u3002\u540c\u65f6\u4e5f\u662f\u4e00\u4e2a\u5177\u6709\u8d34\u5fc3\u8bbe\u8ba1\u4ee5\u53ca\u5bf9\u5f00\u53d1\u8005\u53cb\u597d\u7684 UI \u6846\u67b6","url":"https://rsuitejs.com","urls":{"-3":"https://github.com/rsuite/rsuite"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":257},{"icon":"https://avatars2.githubusercontent.com/u/54212428?s=200&v=4","name":"chakra-ui","desc":"\u9002\u7528\u4e8e\u60a8\u7684React\u5e94\u7528\u7a0b\u5e8f\u7684\u7b80\u5355\uff0c\u6a21\u5757\u5316\u548c\u53ef\u8bbf\u95ee\u7684UI\u7ec4\u4ef6","url":"https://chakra-ui.com/","urls":{"-3":"https://github.com/chakra-ui/chakra-ui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":258}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars1.githubusercontent.com/u/12101536?s=200&v=4","name":"Ant Design Mobile","desc":"\u4e00\u4e2a\u57fa\u4e8e Preact / React / React Native \u7684 UI \u7ec4\u4ef6\u5e93","url":"https://mobile.ant.design/index-cn","urls":{"-2":"https://mobile.ant.design/","-1":"https://mobile.ant.design/index-cn","-3":"https://github.com/ant-design/ant-design-mobile/stargazers/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":259}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6\u7ec4\u4ef6\u5e93","nav":[{"name":"React Helmet","desc":"\u8fd9\u4e2a\u53ef\u91cd\u7528\u7684\u53cd\u5e94\u7ec4\u4ef6\u5c06\u7ba1\u7406\u5bf9\u6587\u6863\u5934\u7684\u6240\u6709\u66f4\u6539","url":"https://github.com/nfl/react-helmet","urls":{"-3":"https://github.com/nfl/react-helmet"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":260},{"name":"react-image-crop","desc":"\u7528\u4e8eReact\u7684\u54cd\u5e94\u5f0f\u56fe\u50cf\u88c1\u526a\u5de5\u5177","url":"https://github.com/DominicTobias/react-image-crop","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":261},{"name":"React Helmet","desc":"\u8fd9\u4e2a\u53ef\u91cd\u7528\u7684\u53cd\u5e94\u7ec4\u4ef6\u5c06\u7ba1\u7406\u5bf9\u6587\u6863\u5934\u7684\u6240\u6709\u66f4\u6539","url":"https://github.com/nfl/react-helmet","urls":{"-3":"https://github.com/nfl/react-helmet"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":262},{"name":"react-transition-group","desc":"\u5f53React\u7ec4\u4ef6\u8fdb\u5165\u6216\u79bb\u5f00DOM\u65f6\u6267\u884c\u52a8\u753b\u7684\u7b80\u5355\u65b9\u6cd5","url":"https://reactcommunity.org/react-transition-group/","urls":{"-2":"https://reactcommunity.org/react-transition-group/","-3":"https://github.com/reactjs/react-transition-group"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":263},{"name":"React Loadable","desc":"\u7528\u4e8e\u52a0\u8f7d\u5177\u6709promise\u7684\u7ec4\u4ef6\u7684\u66f4\u9ad8\u9636\u7ec4\u4ef6 - \u8def\u7531\u61d2\u52a0\u8f7d","url":"https://github.com/jamiebuilds/react-loadable","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":264},{"name":"react-swipe","desc":"\u57fa\u4e8eswipe.js\u5c01\u88c5\u7684react\u7ec4\u4ef6/\u8d70\u9a6c\u706f","url":"https://github.com/voronianski/react-swipe","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":265},{"name":"Ant Motion","desc":"\u4f7f\u7528 Ant Motion \u80fd\u591f\u5feb\u901f\u5728 React \u6846\u67b6\u4e2d\u4f7f\u7528\u52a8\u753b,\u6211\u4eec\u63d0\u4f9b\u4e86\u5355\u9879\uff0c\u7ec4\u5408\u52a8\u753b\uff0c\u4ee5\u53ca\u6574\u5957\u89e3\u51b3\u65b9\u6848","url":"https://motion.ant.design/","urls":{"-3":"https://github.com/ant-design/ant-motion/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":266},{"desc":"\u7f51\u7edc\u89c6\u9891\u64ad\u653e\u5668\u4f7f\u7528React\u5e93\u4ece\u5934\u5f00\u59cb\u6784\u5efaHTML5\u4e16\u754c","name":"video-react","url":"https://video-react.js.org/","urls":{"-3":"https://github.com/video-react/video-react"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":267},{"name":"react-keeper","desc":"\u4e00\u4e2areact\u8def\u7531\u5e93\uff0c\u66f4\u9002\u5408\u79fb\u52a8\u7aef\u4f7f\u7528\uff0c\u62e5\u6709\u7f13\u5b58\u7b49\u529f\u80fd","url":"https://github.com/vifird/react-keeper","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":268},{"name":"Fusion Design","desc":"\u57fa\u4e8eReact\u6784\u5efa\u7684Web\u53ef\u914d\u7f6e\u7ec4\u4ef6\u5e93","url":"https://fusion.design","urls":{"-3":"https://github.com/alibaba-fusion/next"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":269},{"icon":"https://avatars0.githubusercontent.com/u/13690587?s=200&v=4","name":"recharts","desc":"\u57fa\u4e8e React\u548cD3 \u7684\u7ec4\u5408\u5f0f\u56fe\u8868\u5e93","url":"http://recharts.org/zh-CN/","urls":{"-3":"https://github.com/recharts/recharts"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":270},{"name":"react-json-view","desc":"JSON\u67e5\u770b\u5668","url":"https://mac-s-g.github.io/react-json-view/demo/dist/","urls":{"-3":"https://github.com/mac-s-g/react-json-view"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":271},{"name":"BizCharts","desc":"\u57fa\u4e8eG2\u548cReact\u7684\u5f3a\u5927\u6570\u636e\u53ef\u89c6\u5316\u5e93","url":"https://bizcharts.net/products/bizCharts","urls":{"-3":"https://github.com/alibaba/BizCharts"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":272},{"name":"react-draggable","desc":"\u4e00\u4e2a\u7b80\u5355\u7684\u7ec4\u4ef6\uff0c\u7528\u4e8e\u4f7f\u5143\u7d20\u53ef\u62d6\u52a8","url":"https://github.com/mzabriskie/react-draggable","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":273},{"name":"react-slick","desc":"react\u8d70\u9a6c\u706f\u7ec4\u4ef6","url":"https://react-slick.neostack.com/","urls":{"-3":"https://github.com/akiran/react-slick"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":274},{"name":"react-color","desc":"react \u62fe\u8272\u5668","url":"http://casesandberg.github.io/react-color/","urls":{"-3":"https://github.com/casesandberg/react-color"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":275},{"icon":"https://avatars1.githubusercontent.com/u/50559490?s=200&v=4","name":"react-intl","desc":"\u56fd\u9645\u5316React\u5e94\u7528\u7a0b\u5e8f\u3002\u8fd9\u4e2a\u5e93\u63d0\u4f9b\u4e86React\u7ec4\u4ef6\u548c\u4e00\u4e2aAPI\uff0c\u7528\u4e8e\u683c\u5f0f\u5316\u65e5\u671f\uff0c\u6570\u5b57\u548c\u5b57\u7b26\u4e32\uff0c\u5305\u62ec\u590d\u6570\u5f62\u5f0f\u548c\u5904\u7406\u7ffb\u8bd1","url":"https://github.com/formatjs/react-intl","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":276},{"icon":"https://avatars3.githubusercontent.com/u/1763971?s=200&v=4","name":"react-data-grid","desc":"\u4f7f\u7528React\u6784\u5efa\u7684\u7c7b\u4f3c\u4e8eExcel\u7684\u7f51\u683c\u7ec4\u4ef6\uff0c\u5177\u6709\u7f16\u8f91\u5668\uff0c\u952e\u76d8\u5bfc\u822a\uff0c\u590d\u5236\u548c\u7c98\u8d34\u7b49\u529f\u80fd","url":"http://adazzle.github.io/react-data-grid/","urls":{"-3":"https://github.com/adazzle/react-data-grid"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":277},{"icon":"https://cloud.githubusercontent.com/assets/29597/11736841/c0497158-9f87-11e5-8dfe-9c0be97d4286.png","name":"react-virtualized","desc":"React\u7ec4\u4ef6\u53ef\u6709\u6548\u5448\u73b0\u5927\u578b\u5217\u8868\u548c\u8868\u683c\u6570\u636e","url":"http://www.reactvirtualized.com","urls":{"-3":"https://github.com/bvaughn/react-virtualized"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":278},{"icon":"https://avatars3.githubusercontent.com/u/5078602?s=200&v=4","name":"react-live","desc":"\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u7f16\u8f91React\u7ec4\u4ef6\u7684\u7075\u6d3b\u7ec4\u4ef6\u5e93","url":"https://react-live.netlify.com/","urls":{"-3":"https://github.com/FormidableLabs/react-live"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":279},{"icon":"https://jaredpalmer.com/formik/img/favicon.png","name":"formik","desc":"\u5728React\u4e2d\u8f7b\u677e\u521b\u5efa\u8868\u5355","url":"https://jaredpalmer.com/formik/docs/overview","urls":{"-3":"https://github.com/jaredpalmer/formik"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":280}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u62d6\u62fd\u7ec4\u4ef6","nav":[{"name":"react-move","icon":"https://github.com/favicon.ico","url":"https://github.com/daybrush/moveable/tree/master/packages/react-moveable","desc":"\u4e00\u4e2aReact\u7ec4\u4ef6\uff0c\u5b83\u521b\u5efa\u53ef\u79fb\u52a8\uff0c\u53ef\u62d6\u52a8\uff0c\u53ef\u8c03\u6574\u5927\u5c0f\uff0c\u53ef\u7f29\u653e\uff0c\u53ef\u65cb\u8f6c\uff0c\u53ef\u626d\u66f2\uff0c\u53ef\u6536\u7f29\uff0c\u53ef\u5206\u7ec4\uff0c\u53ef\u6355\u6349\u3002","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u62d6\u62fd\u7ec4\u4ef6"],"ownVisible":false,"id":281},{"icon":"https://avatars2.githubusercontent.com/u/25307599?s=200&v=4","name":"react-dnd","desc":"React DnD\u662f\u4e00\u7ec4React\u5b9e\u7528\u7a0b\u5e8f\uff0c\u53ef\u5e2e\u52a9\u60a8\u6784\u5efa\u590d\u6742\u7684\u62d6\u653e\u63a5\u53e3\uff0c\u540c\u65f6\u4fdd\u6301\u7ec4\u4ef6\u5206\u79bb","url":"https://react-dnd.github.io/react-dnd/about","urls":{"-3":"https://github.com/react-dnd/react-dnd"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u62d6\u62fd\u7ec4\u4ef6"],"ownVisible":false,"id":282},{"name":"react-beautiful-dnd","desc":"\u6f02\u4eae\u7684\u548c\u53ef\u8bbf\u95ee\u7684\u62d6\u653e\u5217\u8868","url":"https://github.com/atlassian/react-beautiful-dnd","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u62d6\u62fd\u7ec4\u4ef6"],"ownVisible":false,"id":283},{"name":"react-rnd","desc":"\u4e00\u4e2a\u53ef\u8c03\u6574\u5927\u5c0f\u4e14\u53ef\u62d6\u52a8\u7684React\u7ec4\u4ef6\u3002","url":"https://bokuweb.github.io/react-rnd/stories","urls":{"-3":"https://github.com/bokuweb/react-rnd"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u62d6\u62fd\u7ec4\u4ef6"],"ownVisible":false,"id":284}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5f00\u7bb1\u5373\u7528","nav":[{"icon":"https://avatars1.githubusercontent.com/u/12101536?s=200&v=4","name":"ANT DESIGN PRO","desc":"\u5f00\u7bb1\u5373\u7528\u7684\u4e2d\u53f0\u524d\u7aef/\u8bbe\u8ba1\u89e3\u51b3\u65b9\u6848","url":"https://pro.ant.design/","urls":{"-1":"https://pro.ant.design/","-3":"https://github.com/ant-design/ant-design-pro/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5f00\u7bb1\u5373\u7528"],"ownVisible":false,"id":285}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5355\u5143\u6d4b\u8bd5","nav":[{"name":"enzyme","desc":"\u9002\u7528\u4e8eReact\u7684JavaScript\u6d4b\u8bd5\u5b9e\u7528\u7a0b\u5e8f","url":"https://enzymejs.github.io/enzyme/","urls":{"-3":"https://github.com/enzymejs/enzyme"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":286},{"name":"Jest","desc":"Jest\u662f\u4e00\u4e2a\u4ee4\u4eba\u6109\u5feb\u7684JavaScript\u6d4b\u8bd5\u6846\u67b6\uff0c\u4e13\u6ce8\u4e8e\u7b80\u5355\u6027\u3002","url":"https://jestjs.io/zh-Hans/","urls":{"-3":"https://github.com/facebook/jest"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":287}],"createdAt":"2021-01-23 09:32:06"},{"title":"umi/dva","nav":[{"icon":"https://avatars2.githubusercontent.com/u/33895495?s=200&v=4","name":"umijs","desc":"\u63d2\u4ef6\u5316\u7684\u4f01\u4e1a\u7ea7\u524d\u7aef\u5e94\u7528\u6846\u67b6\u3002","url":"https://umijs.org/zh-CN","urls":{"-2":"https://umijs.org/","-1":"https://umijs.org/zh-CN","-3":"https://github.com/umijs/umi"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","umi/dva"],"ownVisible":false,"id":288},{"icon":"https://avatars1.githubusercontent.com/u/20552239?s=200&v=4","name":"DvaJS","desc":"\u57fa\u4e8eReact\u548cRedux\u7684\u8f7b\u91cf\u7ea7\u548celm\u98ce\u683c\u6846\u67b6","url":"https://dvajs.com/","urls":{"-3":"https://github.com/dvajs/dva"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","umi/dva"],"ownVisible":false,"id":289},{"icon":"https://avatars2.githubusercontent.com/u/33895495?s=200&v=4","name":"umijs/hooks","desc":"\u4f60\u53ef\u4ee5\u5c06 umi hooks \u4f7f\u7528\u5728\u4efb\u4f55\u5730\u65b9\uff0c\u548c\u4efb\u610f\u7ec4\u4ef6\u5e93\u642d\u914d\u4f7f\u7528\u3002\u867d\u7136\u6211\u4eec\u7684\u4ee3\u7801\u793a\u4f8b\u90fd\u662f\u57fa\u4e8e ant design \u7684\uff0c\u4f46\u662f\u5e76\u4e0d\u4ee3\u8868\u6211\u4eec\u7684 Hooks \u53ea\u80fd\u548c ant design \u914d\u5408\u4f7f\u7528","url":"https://hooks.umijs.org/","urls":{"-1":"https://hooks.umijs.org/","-3":"https://github.com/umijs/hooks"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","umi/dva"],"ownVisible":false,"id":290},{"icon":"https://avatars2.githubusercontent.com/u/33895495?s=200&v=4","name":"umi-plugin-cache-route","desc":"\u8def\u7531\u7f13\u5b58\uff0c\u7c7b\u4f3cvue keep-alive","url":"https://www.npmjs.com/package/umi-plugin-cache-route","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","umi/dva"],"ownVisible":false,"id":291}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u77e5\u8bc6","nav":[{"name":"React.js \u5c0f\u4e66","desc":"\u8fd9\u662f\u4e00\u672c\u5173\u4e8e React.js \u7684\u5c0f\u4e66","url":"http://huziketang.mangojuice.top/books/react/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u77e5\u8bc6"],"ownVisible":false,"id":292},{"name":"TypeScript-React-Starter","desc":"TypeScript\u548cReact\u7684\u5165\u95e8\u6a21\u677f\uff0c\u5e26\u6709\u8be6\u7ec6\u7684README\uff0c\u63cf\u8ff0\u4e86\u5982\u4f55\u5c06\u4e24\u8005\u7ed3\u5408\u4f7f\u7528\u3002","url":"https://github.com/Microsoft/TypeScript-React-Starter","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u77e5\u8bc6"],"ownVisible":false,"id":293},{"name":"react-redux-typescript-guide","desc":"TypeScript\u4e2d\u7684React\u548c Redux - \u4f7f\u7528\u8bf4\u660e","url":"https://piotrwitek.github.io/react-redux-typescript-guide/","urls":{"-3":"https://github.com/piotrwitek/react-redux-typescript-guide"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u77e5\u8bc6"],"ownVisible":false,"id":294}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://avatars1.githubusercontent.com/u/17475736?s=200&v=4","name":"Mobx","desc":"\u7b80\u5355\u3001\u53ef\u6269\u5c55\u7684\u72b6\u6001\u7ba1\u7406","url":"https://cn.mobx.js.org/","urls":{"-2":"https://mobx.js.org/","-1":"https://cn.mobx.js.org/","-3":"https://github.com/mobxjs/mobx"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":295},{"name":"next.js","desc":"\u670d\u52a1\u7aef\u6e32\u67d3\u6846\u67b6\u3001SEO\u89e3\u51b3\u65b9\u6848","url":"https://www.nextjs.cn/","urls":{"-2":"https://nextjs.org/","-1":"https://www.nextjs.cn/","-3":"https://github.com/zeit/next.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":296},{"name":"nwb","desc":"\u9002\u7528\u4e8eWeb\u7684React\uff0cPreact\uff0cInferno\u548cVanilla JS\u5e94\u7528\uff0cReact\u5e93\u548c\u5176\u4ed6npm\u6a21\u5757\u7684\u5de5\u5177\u5305\uff0c\u65e0\u9700\u914d\u7f6e","url":"https://github.com/insin/nwb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":297},{"name":"ahooks","desc":"\u4e3a React Hooks \u800c\u751f","url":"https://ahooks.js.org/zh-CN","urls":{"-3":"https://github.com/alibaba/hooks"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":298},{"name":"react-app-rewired","desc":"\u8986\u76d6create-react-app webpack\u914d\u7f6e\u800c\u4e0d\u5f39\u51fa","url":"https://github.com/timarney/react-app-rewired","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","React","\u5176\u4ed6"],"ownVisible":false,"id":299}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Vue.js","icon":"https://v3.vuejs.org/images/icons/apple-icon-152x152.png","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","nav":[{"name":"Vue.js","desc":"\u6e10\u8fdb\u5f0fJavaScript \u6846\u67b6","url":"https://cn.vuejs.org/","urls":{"-2":"https://vuejs.org/index.html","-1":"https://cn.vuejs.org/","-3":"https://github.com/vuejs/vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":300},{"name":"Vue Router","desc":"Vue Router \u662f Vue.js \u5b98\u65b9\u7684\u8def\u7531\u7ba1\u7406\u5668","url":"https://router.vuejs.org/zh/","urls":{"-2":"https://router.vuejs.org/","-1":"https://router.vuejs.org/zh/","-3":"https://github.com/vuejs/vue-router"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":301},{"name":"Vuex","desc":"Vuex \u662f\u4e00\u4e2a\u4e13\u4e3a Vue.js \u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u7684\u72b6\u6001\u7ba1\u7406\u6a21\u5f0f\u3002","url":"https://vuex.vuejs.org/zh/","urls":{"-2":"https://vuex.vuejs.org/","-1":"https://vuex.vuejs.org/zh/","-3":"https://github.com/vuejs/vuex"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":302},{"name":"vue-devtools","desc":"vue.js\u8c03\u8bd5\u5de5\u5177","url":"https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd","urls":{"-3":"https://github.com/vuejs/vue-devtools"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":303},{"name":"vue-cli","desc":"Vue.js\u5f00\u53d1\u7684\u6807\u51c6\u811a\u624b\u67b6\u5de5\u5177","url":"https://cli.vuejs.org/zh/","urls":{"-2":"https://cli.vuejs.org/","-1":"https://cli.vuejs.org/zh/","-3":"https://github.com/vuejs/vue-cli"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":304},{"name":"vuepress","desc":"Vue \u9a71\u52a8\u7684\u9759\u6001\u7f51\u7ad9\u751f\u6210\u5668","url":"https://vuepress.vuejs.org/zh/","urls":{"-2":"https://vuepress.vuejs.org/","-1":"https://vuepress.vuejs.org/zh/","-3":"https://github.com/vuejs/vuepress"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":305},{"name":"Vue SSR","desc":"Vue\u670d\u52a1\u7aef\u6e32\u67d3\u3001SEO\u89e3\u51b3\u65b9\u6848","url":"https://vuepress.vuejs.org/zh/","urls":{"-2":"https://ssr.vuejs.org/","-1":"https://ssr.vuejs.org/zh/","-3":"https://github.com/vuejs/vue-ssr-docs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":306},{"name":"vue-class-component","desc":"\u7528\u4e8e\u7c7b\u5f0fVue\u7ec4\u4ef6\u7684ECMAScript / TypeScript\u88c5\u9970\u5668\u3002","url":"https://github.com/vuejs/vue-class-component","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":307},{"name":"eslint-plugin-vue","desc":"Vue.js\u7684\u5b98\u65b9ESLint\u63d2\u4ef6","url":"https://eslint.vuejs.org/","urls":{"-3":"https://github.com/vuejs/eslint-plugin-vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":308},{"name":"vite","desc":"Vite\u662f\u4e00\u4e2a\u7ecf\u8fc7\u9a8c\u8bc1\u7684Web\u5f00\u53d1\u4eba\u5458\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u5728\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u901a\u8fc7\u672c\u673aES\u6a21\u5757\u5bfc\u5165\u4e3a\u60a8\u7684\u4ee3\u7801\u63d0\u4f9b\u670d\u52a1\uff0c\u5e76\u5c06\u5176\u4e0eRollup\u6346\u7ed1\u5728\u4e00\u8d77\u8fdb\u884c\u751f\u4ea7","url":"https://github.com/vitejs/vite","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":309},{"name":"Vue \u7ec4\u5408\u5f0f API","desc":"Vue \u7ec4\u5408\u5f0f API\u5728\u7ebf\u6587\u6863\u9605\u8bfb","url":"https://composition-api.vuejs.org/zh","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":310}],"createdAt":"2021-01-23 09:32:06"},{"title":"PC\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars0.githubusercontent.com/u/20693613?s=200&v=4","name":"iView","desc":"\u4e00\u5957\u57fa\u4e8e Vue.js \u7684\u9ad8\u8d28\u91cfUI \u7ec4\u4ef6\u5e93","url":"https://www.iviewui.com/docs/guide/install","urls":{"-2":"https://www.iviewui.com/","-1":"https://www.iviewui.com/docs/guide/install","-3":"https://github.com/iview/iview"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":311},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"Element","desc":"\u4e00\u5957\u4e3a\u5f00\u53d1\u8005\u3001\u8bbe\u8ba1\u5e08\u548c\u4ea7\u54c1\u7ecf\u7406\u51c6\u5907\u7684\u57fa\u4e8e Vue 2.0 \u7684\u684c\u9762\u7aef\u7ec4\u4ef6\u5e93","url":"http://element-cn.eleme.io/#/zh-CN","urls":{"-2":"http://element-cn.eleme.io/#/en-US","-1":"http://element-cn.eleme.io/#/zh-CN","-3":"https://github.com/ElemeFE/element"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":312},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"Element Plus","desc":"\u652f\u6301Vue3.0\u7684Element","url":"https://element-plus.org/#/zh-CN","urls":{"-3":"https://github.com/element-plus/element-plus"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":313},{"icon":"https://avatars0.githubusercontent.com/u/22283362?s=200&v=4","name":"Muse-UI","desc":"\u57fa\u4e8e Vue 2.0 \u4f18\u96c5\u7684 Material Design UI \u7ec4\u4ef6\u5e93","url":"https://muse-ui.org/#/zh-CN","urls":{"-2":"https://muse-ui.org/#/en-US/","-1":"https://muse-ui.org/#/zh-CN","-3":"https://github.com/museui/muse-ui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":314},{"icon":"https://qn.antdv.com/favicon.ico","name":"Ant Design Vue","desc":"\u8fd9\u91cc\u662f Ant Design \u7684 Vue \u5b9e\u73b0\uff0c\u5f00\u53d1\u548c\u670d\u52a1\u4e8e\u4f01\u4e1a\u7ea7\u540e\u53f0\u4ea7\u54c1","url":"https://antdv.com/docs/vue/introduce-cn/","urls":{"-2":"https://antdv.com/docs/vue/introduce/","-1":"https://antdv.com/docs/vue/introduce-cn/","-3":"https://github.com/vueComponent/ant-design-vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":315},{"icon":"https://avatars2.githubusercontent.com/u/22138497?s=200&v=4","name":"vuetify","desc":"\u8ba9Vue\u548cMaterial Design\u7684\u5f3a\u5927\u529b\u91cf\u5728\u5f00\u53d1\u4e0a\u52a9\u60a8\u4e00\u81c2\u4e4b\u529b","url":"https://vuetifyjs.com/zh-Hans/","urls":{"-2":"https://vuetifyjs.com/en/","-1":"https://vuetifyjs.com/zh-Hans/","-3":"https://github.com/vuetifyjs/vuetify"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":316},{"icon":"https://avatars1.githubusercontent.com/u/22965283?s=200&v=4","name":"bootstrap-vue","desc":"BootstrapVue\u4e3aVue.js\u63d0\u4f9b\u4e86\u6700\u5168\u9762\u7684Bootstrap 4\u7ec4\u4ef6\u548c\u7f51\u683c\u7cfb\u7edf\u5b9e\u73b0\u4e4b\u4e00\uff0c\u5e76\u63d0\u4f9b\u4e86\u5e7f\u6cdb\u7684\u81ea\u52a8WAI-ARIA\u53ef\u8bbf\u95ee\u6027\u6807\u8bb0","url":"https://bootstrap-vue.js.org/","urls":{"-3":"https://github.com/bootstrap-vue/bootstrap-vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":317},{"icon":"https://avatars0.githubusercontent.com/u/23659108?s=200&v=4","name":"vue-material","desc":"Vue material\u7b80\u5355\uff0c\u8f7b\u5de7\uff0c\u5b8c\u5168\u7b26\u5408Google Material Design\u89c4\u8303","url":"https://vuematerial.io","urls":{"-3":"https://github.com/vuematerial/vue-material"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":318},{"icon":"https://avatars1.githubusercontent.com/u/26799900?s=200&v=4","name":"buefy","desc":"Buefy\u662f\u4e00\u4e2a\u57fa\u4e8eBulma\u6846\u67b6\u548c\u8bbe\u8ba1\u7684Vue.js\u54cd\u5e94\u5f0fUI\u7ec4\u4ef6\u7684\u8f7b\u91cf\u7ea7\u5e93\u3002","url":"https://buefy.org","urls":{"-3":"https://github.com/buefy/buefy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":319}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"vant","desc":"\u8f7b\u91cf\u3001\u53ef\u9760\u7684\u79fb\u52a8\u7aef Vue \u7ec4\u4ef6\u5e93","url":"https://youzan.github.io/vant/#/zh-CN/intro","urls":{"-2":"https://youzan.github.io/vant/#/en-US/intro","-1":"https://youzan.github.io/vant/#/zh-CN/intro","-3":"https://github.com/youzan/vant"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":320},{"name":"vux","desc":"\u4e00\u4e2a\u51d1\u5408\u7684 Vue.js \u79fb\u52a8\u7aef UI \u7ec4\u4ef6\u5e93","url":"https://vux.li/","urls":{"-1":"https://vux.li/","-3":"https://github.com/airyland/vux"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":321},{"icon":"https://avatars0.githubusercontent.com/u/27521938?s=200&v=4","name":"cube-ui","desc":"\u57fa\u4e8e Vue.js \u5b9e\u73b0\u7684\u7cbe\u81f4\u79fb\u52a8\u7aef\u7ec4\u4ef6\u5e93","url":"https://didi.github.io/cube-ui/#/zh-CN","urls":{"-2":"https://didi.github.io/cube-ui/#/en-US","-1":"https://didi.github.io/cube-ui/#/zh-CN","-3":"https://github.com/didi/cube-ui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":322},{"icon":"https://avatars0.githubusercontent.com/u/27521938?s=200&v=4","name":"Mand Mobile","desc":"\u9762\u5411\u91d1\u878d\u573a\u666f\u7684Vue\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93\uff0c\u4e30\u5bcc\u3001\u7075\u6d3b\u3001\u5b9e\u7528\uff0c\u5feb\u901f\u642d\u5efa\u4f18\u8d28\u7684\u91d1\u878d\u7c7b\u4ea7\u54c1\uff0c\u8ba9\u590d\u6742\u7684\u91d1\u878d\u573a\u666f\u53d8\u7b80\u5355","url":"https://didi.github.io/mand-mobile/#/zh-CN/home","urls":{"-2":"https://didi.github.io/mand-mobile/#/en-US/home","-1":"https://didi.github.io/mand-mobile/#/zh-CN/home","-3":"https://github.com/didi/mand-mobile"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":323},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"Mint UI","desc":"\u57fa\u4e8e Vue.js \u7684\u79fb\u52a8\u7aef\u7ec4\u4ef6\u5e93","url":"http://mint-ui.github.io/#!/zh-cn","urls":{"-2":"http://mint-ui.github.io/#!/en","-1":"http://mint-ui.github.io/#!/zh-cn","-3":"https://github.com/ElemeFE/mint-ui/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":324},{"name":"NutUI","desc":"\u4e00\u5957\u4eac\u4e1c\u98ce\u683c\u7684\u8f7b\u91cf\u7ea7\u79fb\u52a8\u7aefVue\u7ec4\u4ef6\u5e93","url":"https://nutui.jd.com","urls":{"-3":"https://github.com/jdf2e/nutui"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":325}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6","nav":[{"name":"vue-awesome-swiper","desc":"\u57fa\u4e8eswiper\u5c01\u88c5\u7684\u8f6e\u64ad\u56fe\u7ec4\u4ef6","url":"https://surmon-china.github.io/vue-awesome-swiper/","urls":{"-3":"https://github.com/surmon-china/vue-awesome-swiper"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6"],"ownVisible":false,"id":326},{"name":"vue-meta","desc":"\u7ba1\u7406Vue 2.0\u7ec4\u4ef6\u4e2d\u7684\u9875\u9762\u5143\u4fe1\u606f\u3002\u652f\u6301SSR + Streaming","url":"https://github.com/nuxt/vue-meta","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6"],"ownVisible":false,"id":327},{"name":"vue-scroller","desc":"Vue Scroller\u662fVonic UI \u7684\u57fa\u7840\u7ec4\u4ef6\u3002\u4e3a\u4e86\u5e73\u6ed1\u6eda\u52a8\uff0c\u62c9\u52a8\u5237\u65b0\u548c\u65e0\u9650\u52a0\u8f7d\u3002","url":"https://wangdahoo.github.io/vue-scroller/#/","urls":{"-3":"https://github.com/wangdahoo/vue-scroller"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6"],"ownVisible":false,"id":328},{"name":"vue-infinite-loading","desc":"Vue.js\u7684\u65e0\u9650\u6eda\u52a8\u63d2\u4ef6(\u652f\u6301\u5411\u4e0a\u548c\u5411\u4e0b)","url":"https://peachscript.github.io/vue-infinite-loading/zh/","urls":{"-3":"https://github.com//PeachScript/vue-infinite-loading"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5176\u4ed6\u7ec4\u4ef6/\u63d2\u4ef6"],"ownVisible":false,"id":329}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5f00\u7bb1\u5373\u7528","nav":[{"name":"iview-admin","desc":"\u57fa\u4e8eiView\u7684Vue 2.0\u7ba1\u7406\u7cfb\u7edf\u6a21\u677f","url":"https://admin.iviewui.com/login","urls":{"-3":"https://github.com/iview/iview-admin"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","\u5f00\u7bb1\u5373\u7528"],"ownVisible":false,"id":330}],"createdAt":"2021-01-23 09:32:06"},{"title":"nuxt\u670d\u52a1\u7aef\u6e32\u67d3\u6846\u67b6","nav":[{"icon":"https://avatars2.githubusercontent.com/u/23360933?s=200&v=4","name":"nuxt","desc":"Vue.js \u901a\u7528\u5e94\u7528\u6846\u67b6","url":"https://zh.nuxtjs.org/","urls":{"-2":"https://nuxtjs.org/","-1":"https://zh.nuxtjs.org/","-3":"https://github.com/nuxt/nuxt.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","nuxt\u670d\u52a1\u7aef\u6e32\u67d3\u6846\u67b6"],"ownVisible":false,"id":331},{"icon":"https://avatars2.githubusercontent.com/u/23360933?s=200&v=4","name":"\u521b\u5efanuxt\u7684\u811a\u624b\u67b6\u5de5\u5177","desc":"create-nuxt-app","url":"https://github.com/nuxt/create-nuxt-app","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Vue.js","nuxt\u670d\u52a1\u7aef\u6e32\u67d3\u6846\u67b6"],"ownVisible":false,"id":332}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Angular","icon":"https://avatars0.githubusercontent.com/u/139426?s=200&v=4","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","nav":[{"name":"Angular","desc":"\u4e00\u4e2a\u6846\u67b6\uff0c\u79fb\u52a8 & \u684c\u9762","url":"https://www.angular.cn/","urls":{"-2":"https://angular.io/","-1":"https://www.angular.cn/","-3":"https://github.com/angular/angular"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":333},{"name":"angular-cli","desc":"\u7528\u4e8eAngular CLI\u811a\u624b\u67b6\u5de5\u5177","url":"https://cli.angular.io/","urls":{"-2":"https://cli.angular.io/","-3":"https://github.com/angular/angular-cli"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":334},{"name":"augury","desc":"Angular\u8c03\u8bd5\u548c\u53ef\u89c6\u5316\u5de5\u5177","url":"https://augury.angular.io/","urls":{"-2":"https://augury.angular.io/","-3":"https://github.com/rangle/augury"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","\u751f\u6001\u7cfb\u7edf"],"ownVisible":false,"id":335}],"createdAt":"2021-01-23 09:32:06"},{"title":"PC\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"icon":"https://avatars2.githubusercontent.com/u/30223759?s=200&v=4","name":"NG-ZORRO","desc":"\u57fa\u4e8eAnt Design\u7684Angular\u4f01\u4e1a\u7ea7UI\u7ec4\u4ef6","url":"http://ng.ant.design/docs/introduce/zh","urls":{"-2":"http://ng.ant.design/docs/introduce/en","-1":"http://ng.ant.design/docs/introduce/zh","-3":"https://github.com/NG-ZORRO/ng-zorro-antd"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":336},{"icon":"https://avatars3.githubusercontent.com/u/14283866?s=200&v=4","name":"ng-bootstrap","desc":"\u57fa\u4e8eBootstrap 4\u7684Angular\u7ec4\u4ef6","url":"https://ng-bootstrap.github.io/#/components/accordion/examples","urls":{"-2":"https://ng-bootstrap.github.io/#/components/accordion/examples","-3":"https://github.com/ng-bootstrap/ng-bootstrap"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":337},{"icon":"https://avatars2.githubusercontent.com/u/12810740?s=200&v=4","name":"element-angular","desc":"Element Angular\u7ec4\u4ef6\u5e93","url":"https://element-angular.faas.ele.me/guide/install","urls":{"-2":"https://element-angular.faas.ele.me/","-1":"https://element-angular.faas.ele.me/guide/install","-3":"https://github.com/ElemeFE/element-angular"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":338},{"icon":"https://avatars1.githubusercontent.com/u/3494069?s=200&v=4","name":"primeng","desc":"PrimeNG\u662fAngular\u7684\u4e30\u5bccUI\u7ec4\u4ef6\u7684\u96c6\u5408","url":"https://www.primefaces.org/primeng/#/button","urls":{"-3":"https://github.com/primefaces/primeng"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":339},{"name":"material","desc":"Material Design\u662f\u4e00\u4e2a\u7edf\u4e00\u7684\u89c6\u89c9\uff0c\u52a8\u4f5c\u548c\u4ea4\u4e92\u8bbe\u8ba1\u7cfb\u7edf\u7684\u89c4\u8303\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u7684\u8bbe\u5907\u3002","url":"https://www.primefaces.org/primeng/#/button","urls":{"-3":"https://github.com/angular/material"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","PC\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":340}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93","nav":[{"name":"material","desc":"Material Design\u662f\u4e00\u4e2a\u7edf\u4e00\u7684\u89c6\u89c9\uff0c\u52a8\u4f5c\u548c\u4ea4\u4e92\u8bbe\u8ba1\u7cfb\u7edf\u7684\u89c4\u8303\uff0c\u9002\u7528\u4e8e\u4e0d\u540c\u7684\u8bbe\u5907\u3002","url":"https://www.primefaces.org/primeng/#/button","urls":{"-3":"https://github.com/angular/material"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","Angular","\u79fb\u52a8\u7aefUI\u7ec4\u4ef6\u5e93"],"ownVisible":false,"id":341}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5fae\u4fe1\u5f00\u53d1","icon":"https://avatars0.githubusercontent.com/u/18461506?s=200&v=4","nav":[{"title":"\u5c0f\u7a0b\u5e8f\u6587\u6863","nav":[{"name":"\u5c0f\u7a0b\u5e8f\u5f00\u53d1","desc":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f","url":"https://developers.weixin.qq.com/miniprogram/dev/index.html","urls":{"-2":"https://developers.weixin.qq.com/miniprogram/en/dev/index.html?t=18082922","-1":"https://developers.weixin.qq.com/miniprogram/dev/index.html"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6587\u6863"],"ownVisible":false,"id":342},{"name":"\u5c0f\u6e38\u620f\u5f00\u53d1","desc":"\u5fae\u4fe1\u5c0f\u6e38\u620f","url":"https://developers.weixin.qq.com/minigame/dev/index.html?t=18082922","urls":{"-2":"https://developers.weixin.qq.com/minigame/en/dev/index.html?t=18081820","-1":"https://developers.weixin.qq.com/minigame/dev/index.html?t=18082922"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6587\u6863"],"ownVisible":false,"id":343}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5c0f\u7a0b\u5e8f\u6846\u67b6","nav":[{"name":"mpvue","desc":"Vue.js \u5f00\u53d1\u5c0f\u7a0b\u5e8f\u7684\u524d\u7aef\u6846\u67b6\u3002\u6846\u67b6\u57fa\u4e8e Vue.js \u6838\u5fc3","url":"http://mpvue.com/","urls":{"-1":"http://mpvue.com/","-3":"https://github.com/Meituan-Dianping/mpvue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":344},{"name":"wepy","desc":"\u5b98\u65b9\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5316\u5f00\u53d1\u6846\u67b6","url":"https://tencent.github.io/wepy/","urls":{"-1":"https://tencent.github.io/wepy/","-3":"https://github.com/Tencent/wepy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":345},{"icon":"https://avatars0.githubusercontent.com/u/27521938?s=200&v=4","name":"mpx","desc":"Mpx\u662f\u4e00\u6b3e\u81f4\u529b\u4e8e\u63d0\u9ad8\u5c0f\u7a0b\u5e8f\u5f00\u53d1\u4f53\u9a8c\u7684\u589e\u5f3a\u578b\u5c0f\u7a0b\u5e8f\u6846\u67b6(\u6ef4\u6ef4\u51fa\u54c1\uff0c\u57fa\u4e8evue)","url":"https://didi.github.io/mpx/","urls":{"-1":"https://didi.github.io/mpx/","-3":"https://github.com/didi/mpx"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":346},{"icon":"https://avatars1.githubusercontent.com/u/5485517?s=200&v=4","name":"uni-app","desc":"uni-app \u662f\u4f7f\u7528 Vue \u8bed\u6cd5\u5f00\u53d1\u5c0f\u7a0b\u5e8f\u3001H5\u3001App\u7684\u7edf\u4e00\u6846\u67b6","url":"https://uniapp.dcloud.io/","urls":{"-3":"https://github.com/dcloudio/uni-app"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":347},{"icon":"https://tencent.github.io/omi/assets/omi-logo2019.svg","name":"omix","desc":"\u817e\u8baf\u539f\u751f\u5c0f\u7a0b\u5e8f\u6846\u67b6 OMIX 2.0","url":"https://github.com/Tencent/omi/tree/master/packages/omix","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u6846\u67b6"],"ownVisible":false,"id":348}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6","nav":[{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"vant-weapp","desc":"\u8f7b\u91cf\u3001\u53ef\u9760\u7684\u5c0f\u7a0b\u5e8f UI \u7ec4\u4ef6\u5e93","url":"https://vant-contrib.gitee.io/vant-weapp/#/intro","urls":{"-3":"https://github.com/youzan/vant-weapp"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":349},{"icon":"https://avatars0.githubusercontent.com/u/18461506?s=200&v=4","name":"weui-wxss","desc":"\u8fd9\u662f\u4e00\u5957\u57fa\u4e8e\u6837\u5f0f\u5e93weui-wxss\u5f00\u53d1\u7684\u5c0f\u7a0b\u5e8f\u6269\u5c55\u7ec4\u4ef6\u5e93\uff0c\u540c\u5fae\u4fe1\u539f\u751f\u89c6\u89c9\u4f53\u9a8c\u4e00\u81f4\u7684UI\u7ec4\u4ef6\u5e93","url":"https://github.com/Tencent/weui-wxss/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":350},{"name":"wxParse","desc":"wxParse-\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u5bcc\u6587\u672c\u89e3\u6790\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u652f\u6301HTML\u53camarkdown\u89e3\u6790","url":"https://github.com/icindy/wxParse","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":351},{"name":"mpvue-wxParse","desc":"\u9002\u7528\u4e8e Mpvue \u7684\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u5bcc\u6587\u672c\u89e3\u6790\u81ea\u5b9a\u4e49\u7ec4\u4ef6","url":"https://github.com/F-loat/mpvue-wxParse","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":352},{"icon":"https://avatars1.githubusercontent.com/u/2268460?s=200&v=4","name":"echarts-for-weixin","desc":"ECharts \u7684\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u7248\u672c","url":"https://github.com/ecomfe/echarts-for-weixin","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":353},{"icon":"https://lbs.qq.com/favicon.ico","name":"\u817e\u8baf\u4f4d\u7f6e\u670d\u52a1","desc":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u539f\u751fLBS\u80fd\u529b\u7684\u6700\u4f73\u62cd\u6863","url":"https://lbs.qq.com/qqmap_wx_jssdk/index.html","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":354},{"name":"ColorUI","desc":"\u9c9c\u4eae\u7684\u9ad8\u9971\u548c\u8272\u5f69\uff0c\u4e13\u6ce8\u89c6\u89c9\u7684\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93","url":"https://www.color-ui.com/","urls":{"-3":"https://github.com/weilanwl/ColorUI"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":355},{"name":"weapp-input-frame","desc":"\u9a8c\u8bc1\u7801\u3001\u652f\u4ed8\u5bc6\u7801\u8f93\u5165\u6846\u7ec4\u4ef6","url":"https://github.com/xjh22222228/weapp-input-frame","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5c0f\u7a0b\u5e8f\u7ec4\u4ef6\u5e93/\u63d2\u4ef6"],"ownVisible":false,"id":356}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5fae\u4fe1\u516c\u4f17\u53f7\u5f00\u53d1\u8f85\u52a9\u5de5\u5177","nav":[{"name":"JS\u63a5\u53e3\u7b7e\u540d\u6821\u9a8c\u5de5\u5177","desc":"\u5fae\u4fe1 JS \u63a5\u53e3\u7b7e\u540d\u6821\u9a8c\u5de5\u5177","url":"https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5fae\u4fe1\u516c\u4f17\u53f7\u5f00\u53d1\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":357},{"name":"\u63a5\u53e3\u8c03\u8bd5\u5de5\u5177","desc":"\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0\u63a5\u53e3\u8c03\u8bd5\u5de5\u5177","url":"https://mp.weixin.qq.com/debug/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5fae\u4fe1\u516c\u4f17\u53f7\u5f00\u53d1\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":358},{"name":"computed","desc":"\u5c0f\u7a0b\u5e8f\u81ea\u5b9a\u4e49\u7ec4\u4ef6 computed / watch \u6269\u5c55","url":"https://github.com/wechat-miniprogram/computed","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5fae\u4fe1\u516c\u4f17\u53f7\u5f00\u53d1\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":359}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8d44\u6e90","nav":[{"name":"awesome-github-wechat-weapp","desc":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u5f00\u6e90\u9879\u76ee\u5e93\u6c47\u603b","url":"https://github.com/opendigg/awesome-github-wechat-weapp","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u8d44\u6e90"],"ownVisible":false,"id":360},{"name":"awesome-wechat-weapp","desc":"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u5f00\u53d1\u8d44\u6e90\u6c47\u603b","url":"https://github.com/justjavac/awesome-wechat-weapp","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u8d44\u6e90"],"ownVisible":false,"id":361}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"\u5fae\u4fe1\u5f00\u653e\u793e\u533a","desc":"\u5c0f\u7a0b\u5e8f\u5f00\u53d1\u8005\u4e13\u533a\uff0c\u5fae\u4fe1\u516c\u4f17\u5e73\u53f0,\u5fae\u4fe1\u5f00\u653e\u793e\u533a,\u5f00\u53d1\u8005\u4e13\u533a","url":"https://developers.weixin.qq.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5176\u4ed6"],"ownVisible":false,"id":362},{"name":"wechat-format","desc":"\u5fae\u4fe1\u516c\u4f17\u53f7\u6392\u7248\u7f16\u8f91\u5668\uff0c\u8f6c\u6362 Markdown \u5230\u5fae\u4fe1\u7279\u5236\u7684 HTML","url":"https://lab.lyric.im/wxformat/","urls":{"-3":"https://github.com/lyricat/wechat-format"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5176\u4ed6"],"ownVisible":false,"id":363},{"name":"\u5fae\u4fe1\u5f00\u653e\u5e73\u53f0","desc":"\u5fae\u4fe1\u5f00\u653e\u5e73\u53f0","url":"https://open.weixin.qq.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5fae\u4fe1\u5f00\u53d1","\u5176\u4ed6"],"ownVisible":false,"id":364}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","nav":[{"title":"CSS","nav":[{"name":"CSS3 UI Lib","desc":"CSS\u52a8\u753b\u96c6\u6210\u3001\u5728\u7ebf\u8c03\u8bd5\u9634\u5f71","url":"http://css3lib.alloyteam.com/#panel/demo1","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":365},{"name":"CSS Sprites Generator","desc":"CSS\u96ea\u78a7\u56fe\u751f\u6210","url":"https://www.toptal.com/developers/css/sprite-generator","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":366},{"icon":"http://www.colorzilla.com/favicon.ico","name":"CSS\u6e10\u53d8\u8c03\u8bd5\u5668","desc":"\u524d\u7aef\u5f00\u53d1\u8c03\u8bd5CSS\u6e10\u53d8\u5fc5\u5907\u795e\u5668","url":"http://www.colorzilla.com/gradient-editor/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":367},{"icon":"https://animista.net/favicon.ico","name":"Animista","desc":"\u5728\u7ebf\u751f\u6210CSS\u52a8\u753b","url":"http://animista.net/play/background/ken-burns","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":368},{"icon":"https://cssgradient.io/favicon.ico","name":"CSS Gradient","desc":"CSS\u6e10\u53d8\u8c03\u8bd5\u5e76\u751f\u6210CSS\u4ee3\u7801","url":"https://cssgradient.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":369},{"icon":"https://www.grabient.com/favicon.ico","name":"Grabient","desc":"CSS\u6e10\u53d8\u8c03\u8bd5\u5e76\u751f\u6210CSS\u4ee3\u7801\uff0c\u8fd8\u53ef\u4ee5\u89d2\u5ea6\u53d8\u6362","url":"https://www.grabient.com/","urls":{"-3":"https://github.com/johnkorzhuk/grabient"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":370},{"icon":"http://pxtoem.com/favicon.ico","name":"px\u4e0eem\u5355\u4f4d\u8f6c\u6362","desc":"px\u4e0eem\u5355\u4f4d\u8f6c\u6362","url":"http://pxtoem.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":371},{"icon":"http://apps.eky.hk/css-triangle-generator/favicon.gif","name":"CSS\u4e09\u89d2\u5f62\u7522\u751f\u5668","desc":"CSS\u4e09\u89d2\u5f62\u7522\u751f\u5668 - \u4f7f\u7528\u7d14CSS\u7e6a\u756b\u4e09\u89d2\u5f62","url":"http://apps.eky.hk/css-triangle-generator/zh-hant","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":372},{"icon":"https://www.sassmeister.com/favicon.ico","name":"SassMeister","desc":"\u5c06sass\u8bed\u6cd5\u8f6c\u6362\u6210CSS\u8bed\u6cd5","url":"https://www.sassmeister.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":373},{"icon":"https://transfonter.org/favicon.ico","name":"transfonter","desc":"\u5b57\u4f53\u56fe\u6807\u8f6c\u6362Base64","url":"https://transfonter.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":374},{"name":"Loading\u96c6\u5408","desc":"\u4e0a\u5343\u79cdLoading\u8ba4\u4f60\u9009","url":"https://www.xiejiahe.com/detail/59ec506be9b3310879551f5e","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":375},{"icon":"https://cssreference.io/favicons/favicon-32x32.png","name":"CSS Reference","desc":"css\u53c2\u8003\u662f\u4e00\u4e2a\u514d\u8d39\u7684\u89c6\u89c9\u6307\u5bfccss\u3002\u5b83\u4ee5\u6700\u53d7\u6b22\u8fce\u7684\u7279\u6027\u4e3a\u7279\u8272\uff0c\u5e76\u7528\u63d2\u56fe\u548c\u52a8\u753b\u793a\u4f8b\u5bf9\u5176\u8fdb\u884c\u8bf4\u660e","url":"https://cssreference.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":376},{"icon":"https://www.w3cschool.cn/favicon.ico","name":"\u5728\u7ebfCSS\u9634\u5f71\u8c03\u8bd5","desc":"CSS3 Box Shadow(\u9634\u5f71)\u6548\u679c\u5728\u7ebf\u8c03\u8bd5\u5de5\u5177","url":"https://www.w3cschool.cn/tools/index?name=css3_boxshadow","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CSS"],"ownVisible":false,"id":377}],"createdAt":"2021-01-23 09:32:06"},{"title":"JavaScript","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","nav":[{"icon":"https://regexper.com/favicon.ico","name":"\u6b63\u5219\u8868\u8fbe\u5f0f\u9a8c\u8bc1\u5668","desc":"\u9a8c\u8bc1JavaScript\u6b63\u5219\u8868\u8fbe\u5f0f","url":"https://regexper.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":378},{"icon":"https://www.json.cn/favicon.ico","name":"JSON\u5728\u7ebf\u89e3\u6790\u53ca\u683c\u5f0f\u5316\u9a8c\u8bc1","desc":"json\u5728\u7ebf\u89e3\u6790,json\u683c\u5f0f\u5316,json\u683c\u5f0f\u9a8c\u8bc1,json\u8f6cxml,xml\u8f6cjson","url":"https://www.json.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":379},{"icon":"https://avatars0.githubusercontent.com/u/25822731?s=200&v=4","name":"prettier","desc":"Prettier\u662f\u4e00\u4e2a\u56fa\u5b9a\u7684\u4ee3\u7801\u683c\u5f0f\u5316\u7a0b\u5e8f\u3002\u5b83\u901a\u8fc7\u89e3\u6790\u4ee3\u7801\u5e76\u4f7f\u7528\u81ea\u5df1\u7684\u89c4\u5219\u91cd\u65b0\u6253\u5370\u5b83\u6765\u5f3a\u5236\u6267\u884c\u4e00\u81f4\u7684\u6837\u5f0f\uff0c\u8fd9\u4e9b\u89c4\u5219\u8003\u8651\u4e86\u6700\u5927\u884c\u957f\u5ea6\uff0c\u5e76\u5728\u5fc5\u8981\u65f6\u5305\u88c5\u4ee3\u7801","url":"https://prettier.io/","urls":{"-3":"https://github.com/prettier/prettier"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":380},{"name":"\u6b63\u5219\u8868\u8fbe\u5f0f\u5728\u7ebf\u6d4b\u8bd5","desc":"\u6b63\u5219\u8868\u8fbe\u5f0f\u5728\u7ebf\u6d4b\u8bd5","url":"http://tool.chinaz.com/regex","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":381},{"name":"spy-debugger","desc":"\u5fae\u4fe1\u8c03\u8bd5\uff0c\u5404\u79cdWebView\u6837\u5f0f\u8c03\u8bd5\u3001\u624b\u673a\u6d4f\u89c8\u5668\u7684\u9875\u9762\u771f\u673a\u8c03\u8bd5\u3002\u4fbf\u6377\u7684\u8fdc\u7a0b\u8c03\u8bd5\u624b\u673a\u9875\u9762\u3001\u6293\u5305\u5de5\u5177\uff0c\u652f\u6301\uff1aHTTP/HTTPS\uff0c\u65e0\u9700USB\u8fde\u63a5\u8bbe\u5907","url":"https://github.com/wuchangming/spy-debugger","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":382},{"name":"VConsole","desc":"\u4e00\u4e2a\u8f7b\u91cf\u3001\u53ef\u62d3\u5c55\u3001\u9488\u5bf9\u624b\u673a\u7f51\u9875\u7684\u524d\u7aef\u5f00\u53d1\u8005\u8c03\u8bd5\u9762\u677f","url":"https://github.com/Tencent/vConsole/","urls":{"-2":"https://github.com/Tencent/vConsole","-1":"https://github.com/Tencent/vConsole/blob/dev/README_CN.md"},"icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","JavaScript"],"ownVisible":false,"id":383}],"createdAt":"2021-01-23 09:32:06"},{"title":"CDN","nav":[{"icon":"https://www.staticfile.org/assets/images/logo.png","name":"Staticfile CDN","desc":"\u514d\u8d39CDN\u670d\u52a1\uff0c\u5305\u62ec JavaScript\u3001CSS\u3001\u56fe\u7247\u548c swf \u7b49\u9759\u6001\u6587\u4ef6","url":"https://www.staticfile.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CDN"],"ownVisible":false,"id":384},{"icon":"https://www.jsdelivr.com/favicon.ico","name":"jsDelivr","desc":"jsDelivr \u2013 \u5f00\u6e90 CDN","url":"https://www.jsdelivr.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CDN"],"ownVisible":false,"id":385},{"icon":"https://www.bootcdn.cn/assets/ico/favicon.ico","name":"BootCDN","desc":"\u7a33\u5b9a\u3001\u5feb\u901f\u3001\u514d\u8d39\u7684\u524d\u7aef\u5f00\u6e90\u9879\u76ee CDN \u52a0\u901f\u670d\u52a1","url":"https://www.bootcdn.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CDN"],"ownVisible":false,"id":386},{"icon":"https://avatars0.githubusercontent.com/u/637362?s=200&v=4","name":"cdnjs","desc":"\u9762\u5411Web\u5f00\u53d1\u4eba\u5458\u7684\u514d\u8d39\u548c\u5f00\u6e90\u516c\u5171Web CDN\uff01","url":"https://cdnjs.com/","urls":{"-3":"https://github.com/cdnjs/cdnjs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","CDN"],"ownVisible":false,"id":387}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://www.fundebug.com/favicon.ico","name":"FunDebug","desc":"\u652f\u6301\u524d\u7aefJavaScript\uff0c\u540e\u7aefNode.js\u4ee5\u53ca\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u9519\u8bef\u76d1\u63a7","url":"https://www.fundebug.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":388},{"icon":"https://www.caniuse.com/img/favicon-128.png","name":"\u524d\u7aef\u517c\u5bb9\u6027\u67e5\u8be2","desc":"\u524d\u7aef\u67e5\u8be2API\u5404\u4e2a\u5382\u5546\u517c\u5bb9\u6027\u60c5\u51b5","url":"https://www.caniuse.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":389},{"icon":"http://browserhacks.com/assets/images/browserhacks.ico","name":"Browserhacks","desc":"Browserhacks\u662f\u6765\u81ea\u5404\u4e2a\u4e92\u8054\u7f51\u7684\u6d4f\u89c8\u5668\u7279\u5b9aCSS\u548cJavaScript hacks\u7684\u5e7f\u6cdb\u5217\u8868\u3002","url":"http://browserhacks.com/","urls":{"-3":"https://github.com/4ae9b8/browserhacks"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":390},{"name":"Character Entity Reference Chart","desc":"\u5b57\u7b26\u5b9e\u4f53\u53c2\u8003\u56fe\uff0c>","url":"https://dev.w3.org/html5/html-author/charref","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":391},{"name":"awesome-web-editor","desc":"\u5f00\u6e90web\u7f16\u8f91\u5668\u6c47\u603b\u5217\u8868","url":"https://github.com/xjh22222228/awesome-web-editor","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":392},{"icon":"https://jsfiddle.net/img/favicon.png","name":"jsfiddle","desc":"\u5f3a\u5927\u7684\u524d\u7aef\u4ee3\u7801\u5728\u7ebf\u6f14\u793a\u7684\u7f51\u7ad9","url":"http://jsfiddle.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":393},{"icon":"https://avatars0.githubusercontent.com/u/11043997?s=200&v=4","name":"jsperf","desc":"jsPerf\u65e8\u5728\u63d0\u4f9b\u4e00\u79cd\u7b80\u5355\u7684\u65b9\u6cd5\u6765\u521b\u5efa\u548c\u5171\u4eab\u6d4b\u8bd5\u7528\u4f8b\uff0c\u901a\u8fc7\u8fd0\u884c\u57fa\u51c6\u6d4b\u8bd5\u6765\u6bd4\u8f83\u4e0d\u540cJavaScript\u4ee3\u7801\u6bb5\u7684\u6027\u80fd","url":"https://jsperf.com/","urls":{"-3":"https://github.com/jsperf/jsperf.com"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":394},{"icon":"https://codesandbox.io/favicon.ico","name":"codesandbox","desc":"codesandbox\u662f\u4e3aWeb\u5e94\u7528\u7a0b\u5e8f\u5b9a\u5236\u7684\u5728\u7ebf\u7f16\u8f91\u5668\u3002","url":"https://codesandbox.io","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":395},{"icon":"https://htmlreference.io/favicons/favicon-32x32.png","name":"HTML Reference","desc":"\u6240\u6709HTML\u5143\u7d20\u548c\u5c5e\u6027\u7684\u514d\u8d39\u6307\u5357\u53c2\u8003","url":"https://htmlreference.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":396},{"icon":"https://static.jsbin.com/images/dave.min.svg","name":"jsbin","desc":"\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684html/css/js\u5728\u7ebf\u7f16\u8f91\u5668Debug\u8c03\u8bd5\u5668","url":"https://jsbin.com/juduyibeku/edit?html,css,js,console,output","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":397},{"icon":"http://www.jsfuck.com/favicon.ico","name":"jsfuck","desc":"JSFuck\u662f\u57fa\u4e8eJavaScript\u539f\u5b50\u90e8\u5206\u7684\u6df1\u5965\u548c\u6559\u80b2\u6027\u7f16\u7a0b\u98ce\u683c\u3002\u5b83\u4ec5\u4f7f\u7528\u516d\u4e2a\u4e0d\u540c\u7684\u5b57\u7b26\u6765\u7f16\u5199\u548c\u6267\u884c\u4ee3\u7801\u3002","url":"http://www.jsfuck.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":398}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"CSS","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/css/css.png","nav":[{"title":"CSS","nav":[{"icon":"https://getbootstrap.com/docs/4.5/assets/img/favicons/favicon.ico","name":"Bootstrap","desc":"Bootstrap \u662f\u4e00\u4e2a\u7528\u4e8e\u5feb\u901f\u5f00\u53d1 Web \u5e94\u7528\u7a0b\u5e8f\u548c\u7f51\u7ad9\u7684\u524d\u7aef\u6846\u67b6","url":"http://getbootstrap.com/","urls":{"-2":"http://getbootstrap.com/","-1":"http://www.bootcss.com/","-3":"https://github.com/twbs/bootstrap"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":399},{"icon":"https://avatars2.githubusercontent.com/u/317889?s=200&v=4","name":"Sass","desc":"Sass \u662f\u6210\u719f\u3001\u7a33\u5b9a\u3001\u5f3a\u5927\u7684 CSS \u6269\u5c55\u8bed\u8a00","url":"http://sass-lang.com/","urls":{"-2":"http://sass-lang.com/","-1":"http://sass.bootcss.com/","-3":"https://github.com/sass/sass"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":400},{"icon":"https://avatars0.githubusercontent.com/u/3538330?s=200&v=4","name":"Less","desc":"Less \u662f\u4e00\u95e8 CSS \u9884\u5904\u7406\u8bed\u8a00,\u5b83\u6269\u5c55\u4e86 CSS \u8bed\u8a00,\u589e\u52a0\u4e86\u53d8\u91cf\u3001Mixin\u3001\u51fd\u6570\u7b49\u7279\u6027","url":"http://lesscss.org/","urls":{"-2":"http://lesscss.org/","-1":"http://lesscss.cn/","-3":"https://github.com/less/less.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":401},{"name":"magic","desc":"CSS3\u52a8\u753b\u7279\u6548","url":"https://minimamente.com/example/magic_animations/","urls":{"-3":"https://github.com/miniMAC/magic"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":402},{"icon":"https://avatars3.githubusercontent.com/u/64791939?s=200&v=4","name":"Animate.css","desc":"CSS\u52a8\u753b\u7684\u8de8\u6d4f\u89c8\u5668\u5e93,\u7b80\u5355\u6613\u7528","url":"https://daneden.github.io/animate.css/","urls":{"-3":"https://github.com/animate-css/animate.css"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":403},{"icon":"http://necolas.github.io/normalize.css/favicon.ico","name":"normalize.css","desc":"\u4f7f\u6d4f\u89c8\u5668\u66f4\u52a0\u4e00\u81f4\u5730\u5448\u73b0\u6240\u6709\u5143\u7d20\u5e76\u7b26\u5408\u73b0\u4ee3\u6807\u51c6\u3002\u5b83\u53ea\u9488\u5bf9\u9700\u8981\u89c4\u8303\u5316\u7684\u6837\u5f0f","url":"http://necolas.github.io/normalize.css/","urls":{"-3":"https://github.com/necolas/normalize.css"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":404},{"name":"Hover","desc":"CSS3\u52a8\u529b\u60ac\u505c\u6548\u679c\u7684\u96c6\u5408\uff0c\u9002\u7528\u4e8e\u94fe\u63a5\uff0c\u6309\u94ae\uff0c\u5fbd\u6807\uff0cSVG\uff0c\u7279\u8272\u56fe\u50cf\u7b49","url":"http://ianlunn.github.io/Hover/","urls":{"-3":"https://github.com/IanLunn/Hover"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":405},{"name":"github-markdown-css","desc":"\u590d\u5236GitHub Markdown\u6837\u5f0f\u7684\u6700\u5c0fCSS\u91cf","url":"https://sindresorhus.com/github-markdown-css/","urls":{"-3":"https://github.com/sindresorhus/github-markdown-css"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":406},{"icon":"https://avatars1.githubusercontent.com/u/8296347?s=200&v=4","name":"autoprefixer","desc":"Autoprefixer\u662f\u4e00\u6b3e\u81ea\u52a8\u7ba1\u7406\u6d4f\u89c8\u5668\u524d\u7f00\u7684\u63d2\u4ef6\uff0c\u5b83\u53ef\u4ee5\u89e3\u6790CSS\u6587\u4ef6\u5e76\u4e14\u6dfb\u52a0\u6d4f\u89c8\u5668\u524d\u7f00\u5230CSS\u5185\u5bb9\u91cc","url":"https://github.com/postcss/autoprefixer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":407},{"icon":"http://vivify.mkcreative.cz/assets/img/apple-icon-57x57.png","name":"vivify","desc":"Vivify\u662f\u514d\u8d39\u7684CSS\u52a8\u753b\u5e93\u3002","url":"http://vivify.mkcreative.cz/","urls":{"-3":"https://github.com/Martz90/vivify"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":408},{"name":"cubic-bezier","desc":"\u5728\u7ebf\u5236\u4f5cCSS\u52a8\u753b","url":"https://cubic-bezier.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","CSS"],"ownVisible":false,"id":409}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u6807\u5e93","nav":[{"icon":"http://www.iconfont.cn/favicon.ico","name":"iconfont","desc":"\u963f\u91cc\u5988\u5988MUX\u503e\u529b\u6253\u9020\u7684\u77e2\u91cf\u56fe\u6807\u7ba1\u7406\u3001\u4ea4\u6d41\u5e73\u53f0","url":"http://www.iconfont.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":410},{"icon":"https://avatars1.githubusercontent.com/u/1505683?s=200&v=4","name":"Font Awesome","desc":"\u4e00\u5957\u7edd\u4f73\u7684\u56fe\u6807\u5b57\u4f53\u5e93\u548cCSS\u6846\u67b6","url":"https://fontawesome.com/","urls":{"-2":"https://fontawesome.com/","-1":"http://www.fontawesome.com.cn/","-3":"https://github.com/FortAwesome/Font-Awesome"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":411},{"icon":"https://livicons.com/apple-icon-57x57.png","name":"LivIcons Evolution","desc":"\u4f1a\u52a8\u7684\u7eafsvg\u77e2\u91cf\u56fe\u6807\u5e93","url":"https://livicons.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":412},{"icon":"https://avatars0.githubusercontent.com/u/3171503?s=200&v=4","name":"ionicons","desc":"\u9002\u7528\u4e8eIonic Framework\u548cWeb\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u7ea7\u56fe\u6807\u5b57\u4f53","url":"https://ionicons.com/","urls":{"-3":"https://github.com/ionic-team/ionicons"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":413},{"name":"material-design-icons","desc":"Google\u7684Material Design\u56fe\u6807","url":"https://material.io/tools/icons","urls":{"-3":"https://github.com/google/material-design-icons"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u56fe\u6807\u5e93"],"ownVisible":false,"id":414}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8d44\u6e90","nav":[{"icon":"https://cssbattle.dev/images/logo-square.png","name":"css battle","desc":"\u5728\u7ebf\u6bd4\u62fcCSS","url":"https://cssbattle.dev/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u8d44\u6e90"],"ownVisible":false,"id":415},{"icon":"http://zh.learnlayout.com/images/logo.png","name":"\u5b66\u4e60CSS\u5e03\u5c40","desc":"\u5b66\u4e60CSS\u5e03\u5c40","url":"http://zh.learnlayout.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","CSS","\u8d44\u6e90"],"ownVisible":false,"id":416}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"TypeScript","icon":"https://www.typescriptlang.org/favicon-32x32.png","nav":[{"title":"TypeScript","nav":[{"name":"TypeScript","desc":"TypeScript \u662f\u4e00\u79cd\u7531\u5fae\u8f6f\u5f00\u53d1\u7684\u81ea\u7531\u548c\u5f00\u6e90\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u5b83\u662fJavaScript\u7684\u4e00\u4e2a\u8d85\u96c6","url":"https://www.tslang.cn/index.html","urls":{"-2":"http://www.typescriptlang.org/","-1":"https://www.tslang.cn/index.html","-3":"https://github.com/Microsoft/TypeScript"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":417},{"name":"TypeSearch","desc":"\u641c\u7d22typescript \u7c7b\u578b\u5305 @types/node","url":"https://microsoft.github.io/TypeSearch/","urls":{"-3":"https://github.com/Microsoft/TypeSearch"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":418},{"name":"DefinitelyTyped","desc":"\u9ad8\u8d28\u91cfTypeScript\u7c7b\u578b\u5b9a\u4e49\u7684\u5b58\u50a8\u5e93","url":"http://definitelytyped.org/","urls":{"-3":"https://github.com/DefinitelyTyped/DefinitelyTyped"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":419},{"icon":"https://avatars0.githubusercontent.com/u/46634674?s=200&v=4","name":"typescript-eslint","desc":"Monorepo\u7528\u4e8e\u6240\u6709\u5de5\u5177\uff0c\u4f7fESLint\u80fd\u591f\u652f\u6301TypeScript","url":"https://github.com/typescript-eslint/typescript-eslint","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":420},{"name":"awesome-typescript","desc":"\u7528\u4e8e\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u7aef\u5f00\u53d1\u7684\u5f3a\u5927TypeScript\u8d44\u6e90\u7684\u96c6\u5408\u3002\u5728TypeScript\u4e2d\u7f16\u5199\u7cbe\u5f69\u7684JavaScript","url":"https://github.com/dzharii/awesome-typescript","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":421},{"name":"TypeScript \u5165\u95e8\u6559\u7a0b","desc":"TypeScript \u5165\u95e8\u6559\u7a0b","url":"https://ts.xcatliu.com/","urls":{"-3":"https://github.com/xcatliu/typescript-tutorial"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","TypeScript","TypeScript"],"ownVisible":false,"id":422}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u8003\u8d44\u6599","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","nav":[{"title":"\u4e66\u7c4d","nav":[{"name":"JavaScript 20 \u5e74","desc":"JavaScript 20 \u5e74","url":"https://cn.history.js.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":423},{"name":"\u4f60\u4e0d\u77e5\u9053\u7684JavaScript","desc":"\u4f60\u4e0d\u77e5\u9053\u7684JavaScript","url":"https://github.com/getify/You-Dont-Know-JS","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":424},{"icon":"https://zh.javascript.info/img/favicon/favicon.png","name":"\u73b0\u4ee3 JavaScript \u6559\u7a0b","desc":"\u4ee5\u6700\u65b0\u7684 JavaScript \u6807\u51c6\u4e3a\u57fa\u51c6\u3002\u901a\u8fc7\u7b80\u5355\u4f46\u8db3\u591f\u8be6\u7ec6\u7684\u5185\u5bb9\uff0c\u4e3a\u4f60\u8bb2\u89e3\u4ece\u57fa\u7840\u5230\u9ad8\u9636\u7684 JavaScript \u76f8\u5173\u77e5\u8bc6","url":"https://zh.javascript.info/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":425},{"name":"ECMAScript 6\u5165\u95e8","desc":"ECMAScript 6\u5165\u95e8","url":"http://es6.ruanyifeng.com/#README","urls":{"-3":"https://github.com/ruanyf/es6tutorial/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":426},{"name":"JavaScript\u6559\u7a0b","desc":"JavaScript \u6807\u51c6\u53c2\u8003\u6559\u7a0b","url":"https://wangdoc.com/javascript/basic/index.html","urls":{"-3":"https://github.com/ruanyf/jstutorial"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":427}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u6863","nav":[{"name":"JavaScript Puzzlers","desc":"\u4f60\u771f\u7684\u4e86\u89e3JavaScript\u5417\uff1f\u6765\u8bd5\u8bd5\u5427\uff01","url":"http://javascript-puzzlers.herokuapp.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":428},{"icon":"https://avatars1.githubusercontent.com/u/41361384?s=200&v=4","name":"InterviewMap","desc":"\u6253\u9020\u6700\u597d\u7684\u9762\u8bd5\u56fe\u8c31","url":"https://yuchengkai.cn/docs/zh/","urls":{"-2":"https://yuchengkai.cn/docs/","-1":"https://yuchengkai.cn/docs/zh/","-3":"https://github.com/InterviewMap/CS-Interview-Knowledge-Map"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":429},{"name":"\u98de\u51b0\u65e9\u62a5","desc":"\u98de\u51b0\u65e9\u62a5","url":"http://fe.jskou.com/ice","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":430},{"name":"jsdoc","desc":"\u7528\u4e8eJavaScript\u7684API\u6587\u6863\u751f\u6210\u5668\u3002","url":"http://www.css88.com/doc/jsdoc/index.html","urls":{"-2":"http://usejsdoc.org/","-1":"http://www.css88.com/doc/jsdoc/index.html","-3":"https://github.com/jsdoc3/jsdoc"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":431},{"icon":"https://avatars3.githubusercontent.com/u/43479428?s=200&v=4","name":"30 seconds of code","desc":"\u7cbe\u9009\u7684\u6709\u7528JavaScript\u4ee3\u7801\u6bb5\u96c6\u5408\uff0c\u60a8\u53ef\u4ee5\u572830\u79d2\u6216\u66f4\u77ed\u7684\u65f6\u95f4\u5185\u7406\u89e3\u8fd9\u4e9b\u4ee3\u7801\u6bb5\u3002","url":"https://30secondsofcode.org/","urls":{"-3":"https://github.com/30-seconds/30-seconds-of-code"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":432},{"name":"33-js-concepts","desc":"JavaScript\u5f00\u53d1\u8005\u5e94\u61c2\u768433\u4e2a\u6982\u5ff5","url":"https://github.com/stephentian/33-js-concepts","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":433},{"icon":"https://avatars1.githubusercontent.com/u/1725583?s=200&v=4","name":"ECMAScript Proposals","desc":"\u8ddf\u8e2aECMAScript \u63d0\u6848","url":"https://tc39.github.io/process-document/","urls":{"-3":"https://github.com/tc39/proposals"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":434},{"icon":"https://avatars1.githubusercontent.com/u/1725583?s=200&v=4","name":"ecma262","desc":"ECMA-262\u7684\u72b6\u6001\uff0c\u6d41\u7a0b\u548c\u6587\u6863","url":"https://tc39.es/ecma262/","urls":{"-3":"https://github.com/tc39/ecma262"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":435},{"icon":"https://bonsaiden.github.io/JavaScript-Garden/favicon.ico?v=2","name":"JavaScript \u79d8\u5bc6\u82b1\u56ed","desc":"JavaScript \u8bed\u8a00\u6700\u53e4\u602a\u7528\u6cd5\u7684\u6587\u6863\u96c6\u5408","url":"https://bonsaiden.github.io/JavaScript-Garden/zh/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":436},{"name":"Airbnb JavaScript \u7f16\u7801\u89c4\u8303","desc":"Airbnb JavaScript \u7f16\u7801\u89c4\u8303","url":"https://github.com/yuche/javascript","urls":{"-2":"https://github.com/airbnb/javascript","-1":"https://github.com/yuche/javascript"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":437},{"name":"Daily-Interview-Question","desc":"\u5de5\u4f5c\u65e5\u6bcf\u5929\u4e00\u9053\u524d\u7aef\u5927\u5382\u9762\u8bd5\u9898\uff0c\u795d\u5927\u5bb6\u5929\u5929\u8fdb\u6b65\uff0c\u4e00\u5e74\u540e\u4f1a\u770b\u5230\u4e0d\u4e00\u6837\u7684\u81ea\u5df1","url":"https://github.com/Advanced-Frontend/Daily-Interview-Question","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":438},{"name":"javascript-algorithms","desc":"JavaScript \u7b97\u6cd5\u4e0e\u6570\u636e\u7ed3\u6784","url":"https://github.com/trekhleb/javascript-algorithms","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":439},{"icon":"https://avatars2.githubusercontent.com/u/26534952?s=200&v=4","name":"weekly","desc":"\u524d\u7aef\u7cbe\u8bfb\u5468\u520a","url":"https://github.com/dt-fe/weekly","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["WEB\u524d\u7aef","\u53c2\u8003\u8d44\u6599","\u6587\u6863"],"ownVisible":false,"id":440}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"id":0,"createdAt":"2021-01-23 09:32:06"},{"title":"Node.js","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","icon":"https://nodejs.org/static/images/favicons/favicon.ico","nav":[{"title":"\u5b98\u65b9","nav":[{"name":"Node.js","desc":"Node.js\xae \u662f\u4e00\u4e2a\u57fa\u4e8e Chrome V8 \u5f15\u64ce \u7684 JavaScript \u8fd0\u884c\u65f6","url":"http://nodejs.cn","urls":{"-2":"https://nodejs.org/en/","-1":"http://nodejs.cn","-3":"https://github.com/nodejs/node"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":441},{"name":"npm1","desc":"npm\u662fJavaScript\u4e16\u754c\u7684\u5305\u7ba1\u7406\u5de5\u5177,\u5e76\u4e14\u662f Node.js \u5e73\u53f0\u7684\u9ed8\u8ba4\u5305\u7ba1\u7406\u5de5\u5177","url":"https://www.npmjs.com/","urls":{"-2":"https://www.npmjs.com/","-1":"https://www.npmjs.com.cn/","-3":"https://github.com/npm/cli"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":442}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6a21\u5757","nav":[{"name":"urllib","desc":"\u5728\u590d\u6742\u7684\u4e16\u754c\u4e2d\u8bf7\u6c42HTTP(s)URL","url":"https://github.com/node-modules/urllib","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u6a21\u5757"],"ownVisible":false,"id":443},{"name":"formstream","desc":"multipart / form-data\u7f16\u7801\u6d41\uff0c\u7528\u4e8e\u6587\u4ef6\u4e0a\u4f20\u7684\u5e2e\u52a9\u7a0b\u5e8f\u3002","url":"https://github.com/node-modules/formstream","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u6a21\u5757"],"ownVisible":false,"id":444},{"name":"validate-npm-package-name","desc":"\u7ed9\u6211\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u6211\u4f1a\u544a\u8bc9\u4f60\u5b83\u662f\u5426\u662f\u6709\u6548\u7684npm\u8f6f\u4ef6\u5305\u540d\u79f0","url":"https://github.com/npm/validate-npm-package-name","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u6a21\u5757"],"ownVisible":false,"id":445}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://classic.yarnpkg.com/favicon.ico","name":"Yarn","desc":"\u5feb\u901f\u3001\u53ef\u9760\u3001\u5b89\u5168\u7684\u4f9d\u8d56\u7ba1\u7406","url":"https://yarnpkg.com/zh-Hans/","urls":{"-2":"https://yarnpkg.com/en/","-1":"https://yarnpkg.com/zh-Hans/","-3":"https://github.com/yarnpkg/yarn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":446},{"name":"awesome-nodejs","desc":"Node.js\u8f6f\u4ef6\u5305\u548c\u8d44\u6e90","url":"https://github.com/sindresorhus/awesome-nodejs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":447},{"name":"nodebestpractices","desc":"\u6700\u5927\u7684Node.js\u6700\u4f73\u5b9e\u8df5\u5217\u8868","url":"https://github.com/goldbergyoni/nodebestpractices","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":448}],"createdAt":"2021-01-23 09:32:06"},{"title":"CMS","nav":[{"icon":"https://avatars0.githubusercontent.com/u/4449608?s=200&v=4","name":"NodeBB","desc":"\u57fa\u4e8eNode.js\u7684\u8bba\u575b\u8f6f\u4ef6\uff0c\u4e3a\u73b0\u4ee3\u7f51\u7ad9","url":"https://nodebb.org/","urls":{"-3":"https://github.com/NodeBB/NodeBB"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","CMS"],"ownVisible":false,"id":449},{"icon":"https://avatars1.githubusercontent.com/u/2178663?s=200&v=4","name":"Ghost","desc":"Ghost \u662f\u57fa\u4e8e Node.js \u6784\u5efa\u7684\u5f00\u6e90\u535a\u5ba2\u5e73\u53f0\u3002Ghost \u5177\u6709\u6613\u7528\u7684\u4e66\u5199\u754c\u9762\u548c\u4f53\u9a8c,\u535a\u5ba2\u5185\u5bb9\u9ed8\u8ba4\u91c7\u7528 Markdown \u8bed\u6cd5\u4e66\u5199\u3002Ghost \u7684\u76ee\u6807\u662f\u53d6\u4ee3\u81c3\u80bf\u7684 Wordpress","url":"https://ghost.org/","urls":{"-3":"https://github.com/TryGhost/Ghost"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","CMS"],"ownVisible":false,"id":450}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8d44\u6599","nav":[{"name":"nodebestpractices","desc":"Node.js \u6700\u4f73\u5b9e\u8df5, \u6700\u5927\u7684\u6c47\u96c6\uff0c\u4e14\u6bcf\u5468\u90fd\u5728\u589e\u957f - \u5f53\u524d\uff0c\u8d85\u8fc750\u4e2a\u6700\u4f73\u5b9e\u73b0\uff0c\u6837\u5f0f\u6307\u5357\uff0c\u67b6\u6784\u5efa\u8bae\u5df2\u7ecf\u5448\u73b0","url":"https://github.com/goldbergyoni/nodebestpractices","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u751f\u6001\u7cfb\u7edf","\u8d44\u6599"],"ownVisible":false,"id":451}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4f9d\u8d56\u5305","icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/javascript/javascript.png","nav":[{"title":"\u7f51\u7edc\u8bf7\u6c42","nav":[{"name":"request","desc":"\u7b80\u5316\u7684HTTP\u8bf7\u6c42\u5ba2\u6237\u7aef","url":"https://github.com/request/request","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":452},{"name":"superagent","desc":"\u4e00\u4e2a\u5c0f\u578b\u6e10\u8fdb\u5f0f\u5ba2\u6237\u7aefHTTP\u8bf7\u6c42\u5e93\uff0cNode.js\u6a21\u5757\u5177\u6709\u76f8\u540c\u7684API\uff0c\u5177\u6709\u8bb8\u591a\u9ad8\u7ea7HTTP\u5ba2\u6237\u7aef\u529f\u80fd","url":"http://visionmedia.github.io/superagent/","urls":{"-3":"https://github.com/visionmedia/superagent"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":453},{"name":"axios","desc":"\u57fa\u4e8ePromise\u7684HTTP\u5ba2\u6237\u7aef\uff0c\u7528\u4e8e\u6d4f\u89c8\u5668\u548cnode.js","url":"https://github.com/axios/axios","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":454},{"name":"node-fetch","desc":"\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u6a21\u5757\uff0c\u5c06window.fetch\u5e26\u5230Node.js","url":"https://github.com/node-fetch/node-fetch","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":455},{"name":"bent","desc":"\u5e26\u6709async await\u7684\u529f\u80fd\u6027JS HTTP\u5ba2\u6237\u7aef\uff08Node.js\u548cFetch\uff09","url":"https://github.com/mikeal/bent","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":456},{"name":"superagent-proxy","desc":"superagent\u4ee3\u7406\u6269\u5c55\uff0c\u8fd9\u4f7f\u60a8\u53ef\u4ee5\u901a\u8fc7\u67d0\u79cd\u4ee3\u7406\u6765\u4ee3\u7406HTTP\u8bf7\u6c42","url":"https://github.com/TooTallNate/superagent-proxy","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u7f51\u7edc\u8bf7\u6c42"],"ownVisible":false,"id":457}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5355\u5143\u6d4b\u8bd5","nav":[{"icon":"https://pptr.dev/favicons/apple-touch-icon.png","name":"Puppeteer","desc":"Puppeteer\u662f\u4e00\u4e2aNode\u5e93\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u4e2a\u9ad8\u7ea7API\u6765\u901a\u8fc7DevTools\u534f\u8bae\u63a7\u5236Chromium\u6216Chrome","url":"https://pptr.dev/","urls":{"-2":"https://pptr.dev/","-1":"https://zhaoqize.github.io/puppeteer-api-zh_CN/","-3":"https://github.com/GoogleChrome/puppeteer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":458},{"icon":"https://avatars0.githubusercontent.com/u/8908513?s=200&v=4","name":"cypress","desc":"\u5bf9\u6d4f\u89c8\u5668\u4e2d\u8fd0\u884c\u7684\u6240\u6709\u5185\u5bb9\u8fdb\u884c\u5feb\u901f\uff0c\u8f7b\u677e\u548c\u53ef\u9760\u7684\u6d4b\u8bd5\uff0c\uff08\u7c7bPuppeteer\uff09","url":"https://www.cypress.io/","urls":{"-3":"https://github.com/cypress-io/cypress"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":459},{"icon":"https://avatars0.githubusercontent.com/u/8770005?s=200&v=4","name":"Mocha","desc":"Node.js\u548c\u6d4f\u89c8\u5668\u7684\u7b80\u5355\uff0c\u7075\u6d3b\uff0c\u6709\u8da3\u7684JavaScript\u6d4b\u8bd5\u6846\u67b6","url":"https://mochajs.org/","urls":{"-3":"https://github.com/mochajs/mocha"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":460},{"icon":"https://avatars0.githubusercontent.com/u/1515293?s=200&v=4","name":"chai","desc":"node.js\u7684BDD/TDD\u65ad\u8a00\u6846\u67b6\u548c\u53ef\u4ee5\u4e0e\u4efb\u4f55\u6d4b\u8bd5\u6846\u67b6\u914d\u5bf9\u7684\u6d4f\u89c8\u5668","url":"http://www.chaijs.com/","urls":{"-3":"https://github.com/chaijs/chai"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":461},{"icon":"https://avatars2.githubusercontent.com/u/8527916?s=200&v=4","name":"ava","desc":"\u672a\u6765\u7684JavaScript\u6d4b\u8bd5\u8fd0\u884c\u5668","url":"https://github.com/avajs/ava","urls":{"-1":"https://github.com/avajs/ava-docs/blob/master/zh_CN/readme.md"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":462},{"icon":"https://jestjs.io/img/favicon/favicon.ico","name":"Jest","desc":"Jest\u662f\u4e00\u4e2a\u4ee4\u4eba\u6109\u5feb\u7684JavaScript\u6d4b\u8bd5\u6846\u67b6\uff0c\u4e13\u6ce8\u4e8e\u7b80\u5355\u6027\u3002","url":"https://jestjs.io/zh-Hans/","urls":{"-3":"https://github.com/facebook/jest"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":463},{"icon":"https://avatars1.githubusercontent.com/u/4243232?s=200&v=4","name":"testcafe","desc":"\u4e00\u4e2aNode.js\u5de5\u5177\uff0c\u7528\u4e8e\u81ea\u52a8\u5316\u7aef\u5230\u7aefWeb\u6d4b\u8bd5","url":"https://devexpress.github.io/testcafe/","urls":{"-3":"https://github.com/DevExpress/testcafe"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":464},{"icon":"https://avatars2.githubusercontent.com/u/26206404?s=200&v=4","name":"jest-puppeteer","desc":"\u4f7f\u7528Jest\uff06Puppeteer\u8fd0\u884c\u6d4b\u8bd5 \u{1f3aa}\u2728","url":"https://github.com/smooth-code/jest-puppeteer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":465},{"icon":"https://kulshekhar.github.io/ts-jest/assets/img/logo.png","name":"ts-jest","desc":"\u5177\u6709\u5bf9Jest\u7684Sourcemap\u652f\u6301\u7684TypeScript\u9884\u5904\u7406\u5668","url":"https://kulshekhar.github.io/ts-jest","urls":{"-3":"https://github.com/kulshekhar/ts-jest"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":466},{"icon":"https://avatars2.githubusercontent.com/u/26206404?s=200&v=4","name":"jest-extended","desc":"\u6269\u5c55 jest \u5339\u914d\u5668","url":"https://github.com/jest-community/jest-extended","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5355\u5143\u6d4b\u8bd5"],"ownVisible":false,"id":467}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"name":"node-mysql2","desc":"node.js\u7684\u5feb\u901fnode-mysql\u517c\u5bb9\u7684mysql\u9a71\u52a8\u7a0b\u5e8f","url":"https://github.com/sidorares/node-mysql2","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":468},{"name":"sequelize","desc":"\u57fa\u4e8e promise \u7684 Node.js ORM, \u76ee\u524d\u652f\u6301 Postgres, MySQL, SQLite \u548c Microsoft SQL Server. \u5b83\u5177\u6709\u5f3a\u5927\u7684\u4e8b\u52a1\u652f\u6301, \u5173\u8054\u5173\u7cfb, \u8bfb\u53d6\u548c\u590d\u5236\u7b49\u529f\u80fd","url":"https://demopark.github.io/sequelize-docs-Zh-CN/","urls":{"-2":"http://docs.sequelizejs.com/","-1":"https://demopark.github.io/sequelize-docs-Zh-CN/","-3":"https://github.com/sequelize/sequelize"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":469},{"name":"mongoose","desc":"mongodb\u5bf9\u8c61\u6a21\u578b\u8bbe\u8ba1\u7528\u4e8e\u5728\u5f02\u6b65\u73af\u5883\u4e2d\u5de5\u4f5c\u3002","url":"http://www.mongoosejs.net/","urls":{"-2":"http://mongoosejs.com/","-1":"http://www.mongoosejs.net/","-3":"https://github.com/Automattic/mongoose"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":470},{"name":"ioredis","desc":"\u9002\u7528\u4e8eNode.js\uff0c\u4ee5\u6027\u80fd\u4e3a\u4e2d\u5fc3\u4e14\u529f\u80fd\u9f50\u5168\u7684Redis\u5ba2\u6237\u7aef\u3002","url":"https://github.com/luin/ioredis","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":471},{"name":"objection.js","desc":"Objection.js\u662fNode.js\u7684\u4e00\u4e2aORM \uff0c\u5b83\u65e8\u5728\u907f\u514d\u4f7f\u7528SQL\u548c\u5e95\u5c42\u6570\u636e\u5e93\u5f15\u64ce\u7684\u5168\u90e8\u529f\u80fd\uff0c\u540c\u65f6\u5c3d\u53ef\u80fd\u7b80\u5355\u5730\u5c06magic\u4fdd\u6301\u5728\u6700\u4f4e\u9650\u5ea6\u3002","url":"http://vincit.github.io/objection.js/","urls":{"-3":"https://github.com/Vincit/objection.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":472},{"name":"nedb","desc":"JavaScript\u6570\u636e\u5e93\uff0c\u7528\u4e8eNode.js\uff0cnw.js\uff0celectron\u548c\u6d4f\u89c8\u5668","url":"https://github.com/louischatriot/nedb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":473},{"icon":"https://avatars0.githubusercontent.com/u/20165699?s=200&v=4","name":"typeorm","desc":"ORM for TypeScript\u548cJavaScript\uff08ES7\uff0cES6\uff0cES5\uff09\u3002\u652f\u6301MySQL\uff0cPostgreSQL\uff0cMariaDB\uff0cSQLite\uff0cMS SQL Server\uff0cOracle\uff0cWebSQL\u6570\u636e\u5e93\u3002\u9002\u7528\u4e8eNodeJS\uff0c\u6d4f\u89c8\u5668\uff0cIonic\uff0cCordova\u548cElectron\u5e73\u53f0","url":"http://typeorm.io","urls":{"-1":"https://github.com/typeorm/typeorm/tree/master/docs/zh_CN","-3":"https://github.com/typeorm/typeorm"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":474},{"icon":"https://avatars0.githubusercontent.com/u/10490573?s=200&v=4","name":"knexjs","desc":"PostgreSQL\uff0cMySQL\u548cSQLite3\u7684\u67e5\u8be2\u6784\u5efa\u5668\uff0c\u65e8\u5728\u7075\u6d3b\uff0c\u53ef\u79fb\u690d\u4e14\u6613\u4e8e\u4f7f\u7528\u3002","url":"http://knexjs.org","urls":{"-3":"https://github.com/knex/knex"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":475},{"icon":"https://avatars1.githubusercontent.com/u/5845577?s=200&v=4","name":"node-redis","desc":"\u9ad8\u6027\u80fdNode.js Redis\u5ba2\u6237\u7aef\u3002","url":"https://github.com/NodeRedis/node-redis","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":476}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u5f62\u76f8\u5173","nav":[{"name":"node-canvas","desc":"node-canvas\u662fNode.js\u7684Cairo -backed Canvas\u5b9e\u73b0\u3002","url":"https://github.com/Automattic/node-canvas","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":477},{"name":"svg-captcha","desc":"\u5728node.js\u4e2d\u751f\u6210svg\u9a8c\u8bc1\u7801","url":"https://github.com/lemonce/svg-captcha","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":478},{"name":"ccap","desc":"node.js\u4f7f\u7528C++\u5e93CImg\u751f\u6210\u9a8c\u8bc1\u7801\uff0c\u65e0\u9700\u5b89\u88c5\u4efb\u4f55\u5176\u4ed6\u5e93\u6216\u8f6f\u4ef6","url":"https://github.com/DoubleSpout/ccap","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":479},{"name":"text-to-svg","desc":"\u5c06\u6587\u672c\u8f6c\u6362\u4e3aSVG\u8def\u5f84\u800c\u4e0d\u4f9d\u8d56\u4e8e\u672c\u673a","url":"https://github.com/shrhdk/text-to-svg","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":480},{"name":"svg2png","desc":"\u4f7f\u7528PhantomJS\u5c06SVG\u8f6c\u6362\u4e3aPNG","url":"https://github.com/domenic/svg2png","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u56fe\u5f62\u76f8\u5173"],"ownVisible":false,"id":481}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4ee3\u7406","nav":[{"name":"node-http-proxy","desc":"\u4e00\u4e2aHTTP\u53ef\u7f16\u7a0b\u4ee3\u7406\u5e93\uff0c\u652f\u6301websocket\u3002\u5b83\u9002\u7528\u4e8e\u5b9e\u73b0\u53cd\u5411\u4ee3\u7406\u548c\u8d1f\u8f7d\u5e73\u8861\u5668\u7b49\u7ec4\u4ef6","url":"https://github.com/nodejitsu/node-http-proxy","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u4ee3\u7406"],"ownVisible":false,"id":482},{"name":"http-proxy-middleware","desc":"\u7528\u4e8e\u8fde\u63a5\uff0c\u5feb\u901f\u548c\u6d4f\u89c8\u5668\u540c\u6b65\u7684\u5355\u7ebf\u7a0bnode.js http-proxy\u4e2d\u95f4\u4ef6\uff08\u57fa\u4e8enode-http-proxy\uff09","url":"https://github.com/chimurai/http-proxy-middleware","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u4ee3\u7406"],"ownVisible":false,"id":483}],"createdAt":"2021-01-23 09:32:06"},{"title":"AST\u8f85\u52a9\u5de5\u5177","nav":[{"name":"esprima","desc":"ECMAScript\u89e3\u6790\u57fa\u7840\u67b6\u6784\uff0c\u53ef\u8fdb\u884c\u591a\u7528\u9014\u5206\u6790, \u5c06\u4ee3\u7801\u8f6c\u6362\u6210AST","url":"https://esprima.org/","urls":{"-3":"https://github.com/jquery/esprima"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","AST\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":484},{"name":"recast","desc":"JavaScript AST\u8f6c\u6362\u5668\uff0c\u975e\u7834\u574f\u6027\u6f02\u4eae\u6253\u5370\u673a\u548c\u81ea\u52a8\u6e90\u6620\u5c04\u751f\u6210\u5668","url":"https://github.com/benjamn/recast","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","AST\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":485}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u4ef6\u76f8\u5173","nav":[{"name":"node-xlsx","desc":"NodeJS excel\u6587\u4ef6\u89e3\u6790\u5668\u548c\u6784\u5efa\u5668","url":"https://github.com/mgcrea/node-xlsx","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6587\u4ef6\u76f8\u5173"],"ownVisible":false,"id":486},{"name":"fs-extra","desc":"\u64cd\u4f5c\u7cfb\u7edf\u6587\u4ef6\uff0c\u7528\u4e8e\u66ff\u4ee3\u5185\u7f6e\u7684fs\u6a21\u5757","url":"https://www.xiejiahe.com/detail/5b52fca1df53a14006035e1e","urls":{"-1":"https://www.xiejiahe.com/detail/5b52fca1df53a14006035e1e","-3":"https://github.com/jprichardson/node-fs-extra"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6587\u4ef6\u76f8\u5173"],"ownVisible":false,"id":487},{"icon":"https://avatars0.githubusercontent.com/u/5826089?s=200&v=4","name":"js-xlsx","desc":"SheetJS\u793e\u533a\u7248 - \u7535\u5b50\u8868\u683c\u5de5\u5177\u5305","url":"https://sheetjs.com/","urls":{"-3":"https://github.com/SheetJS/js-xlsx"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6587\u4ef6\u76f8\u5173"],"ownVisible":false,"id":488},{"icon":"https://www.archiverjs.com/images/logo.svg","name":"node-archiver","desc":"\u6587\u4ef6\u538b\u7f29","url":"https://www.archiverjs.com/","urls":{"-3":"https://github.com/archiverjs/node-archiver"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6587\u4ef6\u76f8\u5173"],"ownVisible":false,"id":489}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5fae\u4fe1\u5f00\u53d1","nav":[{"name":"wechat-oauth","desc":"\u5fae\u4fe1\u516c\u5171\u5e73\u53f0OAuth\u63a5\u53e3\u6d88\u606f\u63a5\u53e3\u670d\u52a1\u4e2d\u95f4\u4ef6\u4e0eAPI SDK","url":"https://github.com/node-webot/wechat-oauth","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5fae\u4fe1\u5f00\u53d1"],"ownVisible":false,"id":490},{"name":"wechat-api","desc":"\u5fae\u4fe1\u516c\u5171\u5e73\u53f0API","url":"https://github.com/node-webot/wechat-api","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5fae\u4fe1\u5f00\u53d1"],"ownVisible":false,"id":491},{"name":"wechat","desc":"\u5fae\u4fe1\u516c\u5171\u5e73\u53f0\u6d88\u606f\u63a5\u53e3\u670d\u52a1\u4e2d\u95f4\u4ef6","url":"https://github.com/node-webot/wechat","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5fae\u4fe1\u5f00\u53d1"],"ownVisible":false,"id":492},{"name":"wechaty","desc":"\u662f\u9002\u7528\u4e8e\u5fae\u4fe1\u4e2a\u4eba\u5e10\u6237\u7684Bot SDK \uff0c\u53ef\u4ee5\u5e2e\u52a9\u60a8\u521b\u5efa6\u884cjavascript\u7684\u673a\u5668\u4eba","url":"https://chatie.io/wechaty/","urls":{"-3":"https://github.com/Chatie/wechaty"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5fae\u4fe1\u5f00\u53d1"],"ownVisible":false,"id":493}],"createdAt":"2021-01-23 09:32:06"},{"title":"CLI","nav":[{"name":"Glob","desc":"\u5339\u914d\u6587\u4ef6\u3002 **/*.js","url":"https://github.com/isaacs/node-glob","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":494},{"name":"prompts","desc":"\u8f7b\u5de7\uff0c\u7f8e\u89c2\u548c\u7528\u6237\u53cb\u597d\u7684\u4ea4\u4e92\u5f0f\u63d0\u793a","url":"https://github.com/terkelg/prompts","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":495},{"icon":"https://avatars3.githubusercontent.com/u/21160645?s=200&v=4","name":"enquirer","desc":"\u65f6\u5c1a\uff0c\u76f4\u89c2\u548c\u7528\u6237\u53cb\u597d\u7684\u63d0\u793a","url":"https://github.com/enquirer/enquirer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":496},{"icon":"https://avatars2.githubusercontent.com/u/887802?s=200&v=4","name":"cli-table3","desc":"\u5e26\u6709Node.JS\u7684CLI\u7684\u6f02\u4eaeunicode\u8868","url":"https://github.com/cli-table/cli-table3","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":497},{"name":"commander.js","desc":"node.js\u547d\u4ee4\u884c\u754c\u9762\u7684\u5b8c\u6574\u89e3\u51b3\u65b9\u6848\uff0c\u53d7Ruby\u6307\u6325\u5b98\u7684\u542f\u53d1","url":"https://github.com/tj/commander.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":498},{"name":"ora","desc":"\u4f18\u96c5\u7684\u7ec8\u7aef\u5fae\u8c03\u5668","url":"https://github.com/sindresorhus/ora","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":499},{"name":"Inquirer.js","desc":"\u5e38\u7528\u4ea4\u4e92\u5f0f\u547d\u4ee4\u884c\u7528\u6237\u754c\u9762\u7684\u96c6\u5408","url":"https://github.com/SBoudrias/Inquirer.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":500},{"name":"shelljs","desc":"Node.js\u7684\u53ef\u79fb\u690dUnix shell\u547d\u4ee4","url":"https://documentup.com/shelljs/shelljs","urls":{"-3":"https://github.com/shelljs/shelljs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":501},{"name":"download-git-repo","desc":"\u4e0b\u8f7d\u5e76\u63d0\u53d6git\u5b58\u50a8\u5e93\uff08GitHub\uff0cGitLab\uff0cBitbucket\uff09","url":"https://github.com/flipxfx/download-git-repo","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":502},{"icon":"https://avatars0.githubusercontent.com/u/6078720?s=200&v=4","name":"node-semver","desc":"node\u7684semver\u89e3\u6790\u5668","url":"https://github.com/npm/node-semver","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":503},{"name":"node-progress","desc":"node.js\u7684\u7075\u6d3bascii\u8fdb\u5ea6\u6761","url":"https://github.com/visionmedia/node-progress","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":504},{"name":"node-qrcode","desc":"\u4e8c\u7ef4\u7801\u751f\u6210","url":"https://github.com/soldair/node-qrcode","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":505},{"name":"open","desc":"\u6253\u5f00URL\uff0c\u6587\u4ef6\uff0c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5185\u5bb9\u3002\u8de8\u5e73\u53f0\u3002","url":"https://github.com/sindresorhus/open","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":506},{"name":"ssh2","desc":"\u7528\u7eafJavaScript\u7f16\u5199\u7684SSH2\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u6a21\u5757\uff0c\u7528\u4e8enode.js","url":"https://github.com/mscdex/ssh2","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":507},{"name":"minimist","desc":"\u89e3\u6790\u53c2\u6570\u9009\u9879","url":"https://github.com/substack/minimist","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":508},{"name":"node-clear","desc":"\u6e05\u7a7a\u7ec8\u7aef\u5c4f\u5e55\u4fe1\u606f","url":"https://github.com/bahamas10/node-clear","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":509},{"icon":"https://avatars2.githubusercontent.com/u/13122722?s=200&v=4","name":"chalk","desc":"\u7ec8\u7aef\u5b57\u7b26\u4e32\u6837\u5f0f","url":"https://github.com/chalk/chalk","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":510},{"icon":"https://avatars3.githubusercontent.com/u/16504989?s=200&v=4","name":"yargs","desc":"\u901a\u8fc7\u89e3\u6790\u53c2\u6570\u5e76\u751f\u6210\u4f18\u96c5\u7684\u7528\u6237\u754c\u9762\u6765\u5e2e\u52a9\u60a8\u6784\u5efa\u4ea4\u4e92\u5f0f\u547d\u4ee4\u884c\u5de5\u5177\u3002","url":"https://github.com/yargs/yargs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":511}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6a21\u677f\u5f15\u64ce","nav":[{"icon":"https://handlebarsjs.com/images/favicon.png","name":"handlebars","desc":"JavaScript\u6a21\u677f\u5f15\u64ce","url":"http://handlebarsjs.com/","urls":{"-3":"https://github.com/wycats/handlebars.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6a21\u677f\u5f15\u64ce"],"ownVisible":false,"id":512},{"icon":"https://ejs.co/favicon.svg","name":"ejs","desc":"JavaScript\u6a21\u677f\u5f15\u64ce","url":"https://ejs.co/","urls":{"-3":"https://github.com/mde/ejs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6a21\u677f\u5f15\u64ce"],"ownVisible":false,"id":513},{"icon":"https://github.githubassets.com/favicons/favicon.svg","name":"mustache.js","desc":"\u4f7f\u7528JavaScript\u7684\u65e0\u903b\u8f91{{mustache}}\u6a21\u677f","url":"https://github.com/janl/mustache.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u6a21\u677f\u5f15\u64ce"],"ownVisible":false,"id":514}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"node-xml2js","desc":"\u7b80\u5355\u7684XML\u5230JavaScript\u5bf9\u8c61\u8f6c\u6362\u5668\u3002\u5b83\u652f\u6301\u53cc\u5411\u8f6c\u6362\u3002\u4f7f\u7528sax-js\u548c xmlbuilder-js","url":"https://github.com/Leonidas-from-XIV/node-xml2js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":515},{"name":"iconv-lite","desc":"\u7eafJavaScript\u4e2d\u8f6c\u6362\u5b57\u7b26\u7f16\u7801\u3002","url":"https://github.com/ashtuchkin/iconv-lite","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":516},{"name":"node-uuid","desc":"\u5728JavaScript\u4e2d\u751f\u6210\u7b26\u5408RFC\u7684UUID","url":"https://github.com/kelektiv/node-uuid","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":517},{"name":"nativefier","desc":"\u4f7f\u4efb\u4f55\u7f51\u9875\u6210\u4e3a\u684c\u9762\u5e94\u7528\u7a0b\u5e8f","url":"https://github.com/jiahaog/nativefier","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":518},{"name":"getmac","desc":"\u901a\u8fc7Node.js\u83b7\u53d6\u5f53\u524d\u8ba1\u7b97\u673a\u7684mac\u5730\u5740","url":"https://github.com/bevry/getmac","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":519},{"name":"http-server","desc":"\u4e00\u4e2a\u7b80\u5355\u7684\u96f6\u914d\u7f6e\u547d\u4ee4\u884chttp\u670d\u52a1\u5668","url":"https://github.com/indexzero/http-server","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":520},{"name":"node-schedule","desc":"Node\u7684\u7c7b\u4f3ccron-like\u548c\u975enot-cron-like\u7684\u4f5c\u4e1a\u8c03\u5ea6\u7a0b\u5e8f\u3002","url":"https://github.com/node-schedule/node-schedule","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":521},{"name":"qrcode-terminal","desc":"QRCode\u7ec8\u7aef\u7248","url":"https://github.com/gtanner/qrcode-terminal","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":522},{"icon":"https://avatars1.githubusercontent.com/u/13612933?s=200&v=4","name":"localtunnel","desc":"localtunnel\u5c06\u60a8\u7684localhost\u66b4\u9732\u7ed9\u4e16\u754c\uff0c\u4ee5\u4fbf\u4e8e\u6d4b\u8bd5\u548c\u5171\u4eab\uff01\u65e0\u9700\u6df7\u6dc6DNS\u6216\u90e8\u7f72\u53ea\u662f\u4e3a\u4e86\u8ba9\u5176\u4ed6\u4eba\u6d4b\u8bd5\u60a8\u7684\u66f4\u6539","url":"https://localtunnel.github.io/www/","urls":{"-3":"https://github.com/localtunnel/localtunnel"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":523},{"icon":"http://www.passportjs.org/images/favicon/apple-icon-57x57.png","name":"passport","desc":"Node.js\u7684\u7b80\u5355\uff0c\u4e0d\u663e\u773c\u7684\u8eab\u4efd\u9a8c\u8bc1","url":"http://www.passportjs.org/","urls":{"-3":"https://github.com/jaredhanson/passport"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":524},{"name":"parameter","desc":"\u53c2\u6570\u9a8c\u8bc1\u5de5\u5177","url":"https://github.com/node-modules/parameter","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":525},{"name":"bytes","desc":"\u7528\u4e8e\u89e3\u6790\u5b57\u7b26\u4e32\u5b57\u8282, b/kb/mb/gb/tb/pb","url":"https://github.com/visionmedia/bytes.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":526},{"icon":"https://avatars2.githubusercontent.com/u/723678?s=200&v=4","name":"js-yaml","desc":"JavaScript YAML\u89e3\u6790\u5668\u548c\u8f6c\u50a8\u5668\u3002\u975e\u5e38\u5feb","url":"https://nodeca.github.io/js-yaml/","urls":{"-3":"https://github.com/nodeca/js-yaml"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":527},{"icon":"https://avatars0.githubusercontent.com/u/34631683?s=200&v=4","name":"acorn","desc":"\u4e00\u4e2a\u5c0f\u578b\uff0c\u57fa\u4e8eJavaScript\u7684\u5feb\u901fJavaScript\u89e3\u6790\u5668","url":"https://github.com/acornjs/acorn","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":528},{"name":"figlet.js","desc":"\u7528JavaScript\u7f16\u5199\u7684FIG\u9a71\u52a8\u7a0b\u5e8f\uff0c\u65e8\u5728\u5b8c\u5168\u5b9e\u73b0FIGfont\u89c4\u8303, \u751f\u6210ascii","url":"https://github.com/patorjk/figlet.js","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":529},{"name":"node-printer","desc":"\u672c\u673a node.js \u6253\u5370\u673a","url":"https://github.com/tojocky/node-printer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":530},{"name":"fontmin","desc":"\u65e0\u7f1d\u7f29\u5c0f\u5b57\u4f53","url":"https://github.com/ecomfe/fontmin","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":531},{"icon":"https://avatars1.githubusercontent.com/u/5658226?s=200&v=4","name":"morgan","desc":"Node.js\u7684HTTP\u8bf7\u6c42\u8bb0\u5f55\u5668\u4e2d\u95f4\u4ef6","url":"https://github.com/expressjs/morgan","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":532},{"icon":"https://avatars0.githubusercontent.com/u/9271229?s=200&v=4","name":"jsdom","desc":"\u4e0eNode.js\u4e00\u8d77\u4f7f\u7528\u7684\u5404\u79cdWeb\u6807\u51c6\u7684JavaScript\u5b9e\u73b0","url":"https://github.com/jsdom/jsdom","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":533}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8de8\u5e73\u53f0\u6846\u67b6","nav":[{"title":"Electron","icon":"https://www.electronjs.org/images/favicon.ico","nav":[{"name":"Electron","desc":"\u4f7f\u7528 JavaScript, HTML \u548c CSS \u6784\u5efa\u8de8\u5e73\u53f0\u7684\u684c\u9762\u5e94\u7528","url":"https://electronjs.org/","urls":{"-3":"https://github.com/electron/electron"},"icon":"https://www.electronjs.org/images/favicon.ico","createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":534},{"name":"electron-packager","desc":"\u901a\u8fc7JS\u6216CLI\u81ea\u5b9a\u4e49\u548c\u5c01\u88c5\u60a8\u7684Electron\u5e94\u7528\u7a0b\u5e8f\u4e0e\u7279\u5b9a\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u7684\u8f6f\u4ef6\u5305\uff08.app\uff0c.exe\u7b49\uff09","url":"https://github.com/electron-userland/electron-packager","icon":"https://www.electronjs.org/images/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":535},{"name":"electron-installer-dmg","desc":"\u4f7f\u7528AppDMG\u4e3a\u7535\u5b50\u5e94\u7528\u7a0b\u5e8f\u521b\u5efaDMG\u5b89\u88c5\u7a0b\u5e8f","url":"https://github.com/electron-userland/electron-installer-dmg","icon":"https://www.electronjs.org/images/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":536},{"icon":"https://simulatedgreg.gitbooks.io/electron-vue/content/gitbook/images/apple-touch-icon-precomposed-152.png","name":"electron-vue","desc":"\u57fa\u4e8e vue (\u57fa\u672c\u4e0a\u662f\u5b83\u542c\u8d77\u6765\u7684\u6837\u5b50) \u6765\u6784\u9020 electron \u5e94\u7528\u7a0b\u5e8f\u7684\u6837\u677f\u4ee3\u7801\u3002","url":"https://simulatedgreg.gitbooks.io/electron-vue/content/cn/","urls":{"-2":"https://simulatedgreg.gitbooks.io/electron-vue/content/en/","-1":"https://simulatedgreg.gitbooks.io/electron-vue/content/cn/","-3":"https://github.com/SimulatedGREG/electron-vue"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":537},{"icon":"https://www.electron.build/assets/images/favicon.png","name":"electron-builder","desc":"\u4e00\u4e2a\u5f00\u7bb1\u5373\u7528\u7684\u5b8c\u6574\u89e3\u51b3\u65b9\u6848\uff0c\u7528\u4e8e\u5c06Electron, Proton Native or Muon \u6253\u5305\u3001\u6784\u5efa\u6210\u652f\u6301macOS, Windows and Linux\u4e09\u5927\u7cfb\u7edf\u7684\uff0c\u53ef\u201d\u81ea\u52a8\u66f4\u65b0\u201d\u7684\u53ef\u53d1\u5e03\u5b89\u88c5\u7a0b\u5e8f","url":"https://www.electron.build/","urls":{"-3":"https://github.com/electron-userland/electron-builder"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":538},{"icon":"https://electron-react-boilerplate.js.org/logo/logo.png","name":"electron-react-boilerplate","desc":"\u57fa\u4e8eReact\u53ef\u6269\u5c55\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u7684App","url":"https://electron-react-boilerplate.js.org/","urls":{"-3":"https://github.com/electron-react-boilerplate/electron-react-boilerplate"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":539},{"name":"menubar","desc":"Electron\u521b\u5efa\u83dc\u5355\u680f\u684c\u9762\u5e94\u7528\u7a0b\u5e8f\u7684\u9ad8\u7ea7\u65b9\u6cd5\u3002","url":"https://github.com/maxogden/menubar","icon":"https://www.electronjs.org/images/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","Electron"],"ownVisible":false,"id":540}],"createdAt":"2021-01-23 09:32:06"},{"title":"nw.js","nav":[{"icon":"https://nwjs.org.cn/asset/img/favicon.ico","name":"nw.js","desc":"\u4eceDOM/WebWorker\u5c42,\u76f4\u63a5\u8c03\u7528\u6240\u6709\u7684Node\u6a21\u5757\uff0c\u4f7f\u7528\u73b0\u6709\u7684web\u6280\u672f\uff0c\u5f00\u542f\u4e00\u4e2a\u5168\u65b0\u7684\u7f16\u5199\u5e94\u7528\u7684\u65b9\u5f0f","url":"https://nwjs.org.cn/","urls":{"-2":"https://nwjs.io/","-1":"https://nwjs.org.cn/","-3":"https://github.com/nwjs/nw.js"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","nw.js"],"ownVisible":false,"id":541},{"icon":"https://nwjs.org.cn/asset/img/favicon.ico","name":"nw-builder","desc":"\u4ee5\u7f16\u7a0b\u65b9\u5f0f\u6216\u901a\u8fc7CLI \u6784\u5efa\u9002\u7528\u4e8eMac\uff0cWin\u548cLinux\u7684NW.js\u5e94\u7528\u7a0b\u5e8f\u3002","url":"https://github.com/nwjs-community/nw-builder","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","nw.js"],"ownVisible":false,"id":542},{"icon":"https://nwjs.org.cn/asset/img/favicon.ico","name":"nwjs-ffmpeg-prebuilt","desc":"FFMpeg\u9884\u6784\u5efa\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u5177\u6709\u4e13\u6709\u7684\u7f16\u89e3\u7801\u5668\u548c\u6784\u5efa\u7a97\u53e3\u3002","url":"https://github.com/iteufel/nwjs-ffmpeg-prebuilt","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8de8\u5e73\u53f0\u6846\u67b6","nw.js"],"ownVisible":false,"id":543}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"WEB\u6846\u67b6","nav":[{"title":"nest","nav":[{"icon":"https://avatars1.githubusercontent.com/u/28507035?s=200&v=4","name":"nest","desc":"Nest \u662f\u4e00\u4e2a\u7528\u4e8e\u6784\u5efa\u9ad8\u6548\uff0c\u53ef\u6269\u5c55\u7684 Node.js \u670d\u52a1\u5668\u7aef\u5e94\u7528\u7a0b\u5e8f\u7684\u6846\u67b6\u3002\u5b83\u4f7f\u7528\u6e10\u8fdb\u5f0f JavaScript\uff0c\u5185\u7f6e\u5e76\u5b8c\u5168\u652f\u6301 TypeScript\uff08\u4f46\u4ecd\u7136\u5141\u8bb8\u5f00\u53d1\u4eba\u5458\u4f7f\u7528\u7eaf JavaScript \u7f16\u5199\u4ee3\u7801\uff09\u5e76\u7ed3\u5408\u4e86 OOP\uff08\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\uff09\uff0cFP\uff08\u529f\u80fd\u7f16\u7a0b\uff09\u548c FRP\uff08\u529f\u80fd\u53cd\u5e94\u7f16\u7a0b\uff09\u7684\u5143\u7d20","url":"https://docs.nestjs.cn/6/introduction","urls":{"-2":"https://nestjs.com/","-1":"https://docs.nestjs.cn/6/introduction","-3":"https://github.com/nestjs/nest"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","nest"],"ownVisible":false,"id":544},{"icon":"https://avatars1.githubusercontent.com/u/28507035?s=200&v=4","name":"awesome-nestjs","desc":"NestJS\u7684\u7cbe\u9009\u5217\u8868","url":"https://github.com/juliandavidmr/awesome-nestjs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","nest"],"ownVisible":false,"id":545}],"createdAt":"2021-01-23 09:32:06"},{"title":"egg.js","nav":[{"icon":"https://eggjs.org/images/favicon.png","name":"Egg.js","desc":"Egg.js \u4e3a\u4f01\u4e1a\u7ea7\u6846\u67b6\u548c\u5e94\u7528\u800c\u751f\uff0c\u6211\u4eec\u5e0c\u671b\u7531 Egg.js \u5b55\u80b2\u51fa\u66f4\u591a\u4e0a\u5c42\u6846\u67b6\uff0c\u5e2e\u52a9\u5f00\u53d1\u56e2\u961f\u548c\u5f00\u53d1\u4eba\u5458\u964d\u4f4e\u5f00\u53d1\u548c\u7ef4\u62a4\u6210\u672c","url":"https://eggjs.org/zh-cn/intro/index.html","urls":{"-2":"https://eggjs.org","-1":"https://eggjs.org/zh-cn/intro/index.html","-3":"https://github.com/eggjs/egg/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","egg.js"],"ownVisible":false,"id":546},{"icon":"https://eggjs.org/images/favicon.png","name":"egg-validate","desc":"\u57fa\u4e8e parameter \u5c01\u88c5\u7684\u53c2\u6570\u9a8c\u8bc1\u63d2\u4ef6","url":"https://github.com/eggjs/egg-validate","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","egg.js"],"ownVisible":false,"id":547},{"icon":"https://eggjs.org/images/favicon.png","name":"egg-mailer","desc":"\u57fa\u4e8e nodemailer \u5c01\u88c5\u7684\u53c2\u6570\u9a8c\u8bc1\u63d2\u4ef6","url":"https://github.com/xjh22222228/egg-mailer","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","egg.js"],"ownVisible":false,"id":548}],"createdAt":"2021-01-23 09:32:06"},{"title":"Express/Koa","nav":[{"icon":"https://avatars2.githubusercontent.com/u/5055057?s=200&v=4","name":"Koa","desc":"Koa -- \u57fa\u4e8eNode.js \u5e73\u53f0\u7684\u4e0b\u4e00\u4ee3web\u5f00\u53d1\u6846\u67b6","url":"https://koa.bootcss.com/","urls":{"-2":"https://koajs.com/","-1":"https://koa.bootcss.com/","-3":"https://github.com/koajs/koa"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","Express/Koa"],"ownVisible":false,"id":549},{"icon":"https://avatars1.githubusercontent.com/u/5658226?s=200&v=4","name":"Express","desc":"Express - \u5feb\u901f\u3001\u5f00\u653e\u3001\u6781\u7b80\u7684 Web \u5f00\u53d1\u6846\u67b6","url":"http://expressjs.jser.us/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","WEB\u6846\u67b6","Express/Koa"],"ownVisible":false,"id":550}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8f85\u52a9\u5de5\u5177","icon":"https://nodejs.org/static/images/favicons/favicon.ico","nav":[{"title":"\u8c03\u8bd5debugger","nav":[{"name":"node-inspector","desc":"Node.js\u8c03\u8bd5\u5668\u57fa\u4e8eBlink Developer Tools","url":"https://github.com/node-inspector/node-inspector","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u8c03\u8bd5debugger"],"ownVisible":false,"id":551},{"name":"debug","desc":"\u4e00\u4e2a\u5fae\u5c0f\u7684JavaScript\u8c03\u8bd5\u5de5\u5177\uff0c\u4ee5Node.js\u6838\u5fc3\u7684\u8c03\u8bd5\u6280\u672f\u4e3a\u6a21\u578b\u3002\u9002\u7528\u4e8eNode.js\u548cWeb\u6d4f\u89c8\u5668","url":"https://github.com/visionmedia/debug","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u8c03\u8bd5debugger"],"ownVisible":false,"id":552},{"name":"ndb","desc":"ndb\u662f\u9488\u5bf9Node.js\u7684\u6539\u8fdb\u8c03\u8bd5\u4f53\u9a8c\uff0c\u7531Chrome DevTools\u542f\u7528","url":"https://github.com/GoogleChromeLabs/ndb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u8c03\u8bd5debugger"],"ownVisible":false,"id":553}],"createdAt":"2021-01-23 09:32:06"},{"title":"node\u7248\u672c\u7ba1\u7406","nav":[{"name":"nvm","desc":"Node\u7248\u672c\u7ba1\u7406\u5668 - \u7528\u4e8e\u7ba1\u7406\u591a\u4e2a\u6d3b\u52a8node.js\u7248\u672c\u7684\u7b80\u5355bash\u811a\u672c","url":"https://github.com/creationix/nvm","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","node\u7248\u672c\u7ba1\u7406"],"ownVisible":false,"id":554},{"name":"nvm-windows","desc":"\u9002\u7528\u4e8eWindows\u7684node.js\u7248\u672c\u7ba1\u7406\u5b9e\u7528\u7a0b\u5e8f","url":"https://github.com/coreybutler/nvm-windows","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","node\u7248\u672c\u7ba1\u7406"],"ownVisible":false,"id":555},{"name":"nvs","desc":"Node Version Switcher - \u7528\u4e8e\u5728Node.js\u7684\u7248\u672c\u548c\u5206\u652f\u4e4b\u95f4\u5207\u6362\u7684\u8de8\u5e73\u53f0\u5de5\u5177(\u53d7\u5230nvm\u7684\u542f\u53d1)","url":"https://github.com/jasongin/nvs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","node\u7248\u672c\u7ba1\u7406"],"ownVisible":false,"id":556},{"name":"n","desc":"Node.js\u7248\u672c\u7ba1\u7406\uff1a\u65e0\u914d\u7f6e\u6587\u4ef6\uff0c\u65e0\u590d\u6742\u7684API\uff0c\u975e\u5e38\u7b80\u5355","url":"https://github.com/tj/n","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","node\u7248\u672c\u7ba1\u7406"],"ownVisible":false,"id":557}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u65e5\u5fd7\u7ba1\u7406","nav":[{"name":"log4js-node","desc":"log4js \u662f\u4e00\u4e2a nodejs \u65e5\u5fd7\u7ba1\u7406\u5de5\u5177\uff0c\u53ef\u4ee5\u5c06\u65e5\u5fd7\u4ee5\u5404\u79cd\u5f62\u5f0f\u8f93\u51fa\u5230\u5404\u79cd\u6e20\u9053\u3002","url":"https://log4js-node.github.io/log4js-node/index.html","urls":{"-3":"https://github.com/log4js-node/log4js-node"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u65e5\u5fd7\u7ba1\u7406"],"ownVisible":false,"id":558},{"name":"node-bunyan","desc":"\u7528\u4e8enode.js\u670d\u52a1\u7684\u7b80\u5355\u5feb\u901f\u7684JSON\u65e5\u5fd7\u8bb0\u5f55\u6a21\u5757","url":"https://github.com/trentm/node-bunyan","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u65e5\u5fd7\u7ba1\u7406"],"ownVisible":false,"id":559}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u96c6\u6210\u5de5\u5177","nav":[{"icon":"https://avatars0.githubusercontent.com/u/1714870?s=200&v=4","name":"yeoman","desc":"\u4e00\u5957\u7528\u4e8e\u81ea\u52a8\u5316\u5f00\u53d1\u5de5\u4f5c\u6d41\u7a0b\u7684\u5de5\u5177","url":"https://yeoman.io/","urls":{"-3":"https://github.com/yeoman/yeoman"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u96c6\u6210\u5de5\u5177"],"ownVisible":false,"id":560},{"icon":"https://avatars0.githubusercontent.com/u/16486629?s=200&v=4","name":"nodemailer","desc":"\u53d1\u9001\u6765\u81eaNode.js\u7684\u7535\u5b50\u90ae\u4ef6 - \u5f88\u5bb9\u6613\u5c31\u50cf\u86cb\u7cd5\u4e00\u6837\uff01","url":"http://nodemailer.com/","urls":{"-3":"https://github.com/nodemailer/nodemailer"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u96c6\u6210\u5de5\u5177"],"ownVisible":false,"id":561},{"name":"gh-pages","desc":"\u5c06\u6587\u4ef6\u53d1\u5e03\u5230GitHub\u4e0a\u7684gh-pages\u5206\u652f\u7684\u5e38\u89c4\u4efb\u52a1","url":"https://github.com/tschaub/gh-pages","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u96c6\u6210\u5de5\u5177"],"ownVisible":false,"id":562}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4ee3\u7801\u538b\u7f29","nav":[{"icon":"https://avatars1.githubusercontent.com/u/43502240?s=200&v=4","name":"terser","desc":"\u9002\u7528\u4e8eES6+\u7684JavaScript\u89e3\u6790\u5668\uff0cmangler\u548c\u538b\u7f29\u5668\u5de5\u5177\u5305","url":"https://terser.org/","urls":{"-3":"https://github.com/terser/terser"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u4ee3\u7801\u538b\u7f29"],"ownVisible":false,"id":563}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"Awehunt","desc":"npm\u5305\u4e0b\u8f7d\u91cf\u66f2\u7ebf\u5bf9\u6bd4\u56fe","url":"https://awehunt.com/npmdownloads?ids=react,angular,vue","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":564},{"name":"nodemon","desc":"\u76d1\u89c6node.js\u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684\u4efb\u4f55\u66f4\u6539\u5e76\u81ea\u52a8\u91cd\u65b0\u542f\u52a8\u670d\u52a1\u5668 - \u975e\u5e38\u9002\u5408\u5f00\u53d1","url":"https://nodemon.io/","urls":{"-3":"https://github.com/remy/nodemon"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":565},{"name":"pkg","desc":"\u5c06Node.js\u9879\u76ee\u6253\u5305\u6210\u53ef\u6267\u884c\u6587\u4ef6","url":"https://github.com/zeit/pkg","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":566},{"name":"npm-check-updates","desc":"\u67e5\u627epackage.json\u6216bower.json\u5141\u8bb8\u7684\u66f4\u65b0\u7248\u672c\u7684\u8f6f\u4ef6\u5305\u4f9d\u8d56\u9879","url":"https://github.com/tjunnone/npm-check-updates","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":567},{"name":"husky","desc":"husky \u53ef\u4ee5\u9632\u6b62\u9519\u8bef\u7684 git commit, git push \u7b49","url":"https://github.com/typicode/husky","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":568},{"name":"bundlephobia","desc":"\u627e\u51fa\u5728\u9879\u76ee\u4e2d\u6dfb\u52a0\u65b0\u7684\u4f9d\u8d56\u9879\u7684\u5305\u5927\u5c0f","url":"https://bundlephobia.com","urls":{"-3":"https://github.com/pastelsky/bundlephobia"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":569},{"name":"npm-run-all","desc":"\u4e00\u4e2aCLI\u5de5\u5177\uff0c\u53ef\u5e76\u884c\u6216\u987a\u5e8f\u8fd0\u884c\u591a\u4e2anpm\u811a\u672c","url":"https://github.com/mysticatea/npm-run-all","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":570},{"name":"dotenv","desc":"\u4ece.env\u52a0\u8f7d\u7528\u4e8enodejs\u9879\u76ee\u7684\u73af\u5883\u53d8\u91cf","url":"https://github.com/motdotla/dotenv#readme","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":571},{"name":"cross-env","desc":"\u8fd0\u884c\u8de8\u5e73\u53f0\u8bbe\u7f6e\u548c\u4f7f\u7528\u73af\u5883\u53d8\u91cf\u7684\u811a\u672c","url":"https://github.com/kentcdodds/cross-env","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":572},{"name":"nrm","desc":"npm\u6e90\u5feb\u901f\u5207\u6362\uff0c npm, cnpm, taobao, nj, \u5185\u7f51","url":"https://github.com/Pana/nrm","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","\u8f85\u52a9\u5de5\u5177","\u5176\u4ed6"],"ownVisible":false,"id":573}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Deno","nav":[{"title":"\u5b98\u65b9","icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","nav":[{"name":"Deno","desc":"\u4e00\u4e2a\u5b89\u5168\u7684\u8fd0\u884c\u65f6\u7684JavaScript\u548cTypeScript","url":"https://deno.land/","urls":{"-3":"https://github.com/denoland"},"icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","Deno","\u5b98\u65b9"],"ownVisible":false,"id":574},{"name":"Deno \u6807\u51c6\u5e93","desc":"Deno \u6807\u51c6\u5e93","url":"https://deno.land/std","icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Node.js","Deno","\u5b98\u65b9"],"ownVisible":false,"id":575}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","nav":[{"name":"Deno","desc":"\u9002\u7528\u4e8eDeno\u7684Visual Studio Code\u63d2\u4ef6","url":"https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno","urls":{"-3":"https://github.com/denoland/vscode_deno"},"icon":"https://avatars1.githubusercontent.com/u/42048915?s=200&v=4","createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Node.js","Deno","\u5de5\u5177"],"ownVisible":false,"id":576}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"id":0,"createdAt":"2021-01-23 09:32:06"},{"title":"Golang","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","nav":[{"title":"\u751f\u6001","nav":[{"name":"Golang","desc":"Go\u7f16\u7a0b\u8bed\u8a00","url":"https://go-zh.org/","urls":{"-2":"https://golang.org/","-1":"https://go-zh.org/","-3":"https://github.com/golang/go"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":577},{"name":"go.dev","desc":"\u5927\u89c4\u6a21\u6784\u5efa\u5feb\u901f\uff0c\u53ef\u9760\uff0c\u9ad8\u6548\u7684\u8f6f\u4ef6","url":"https://go.dev/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":578},{"name":"awesome-go","desc":"\u7cbe\u9009\u7684Go\u6846\u67b6\uff0c\u5e93\u548c\u8f6f\u4ef6\u7684\u7cbe\u9009\u5217\u8868","url":"https://github.com/jobbole/awesome-go-cn","urls":{"-2":"https://github.com/avelino/awesome-Go","-1":"https://github.com/jobbole/awesome-go-cn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":579},{"icon":"https://avatars1.githubusercontent.com/u/49926011?s=200&v=4","name":"Goproxy","desc":"\u4e2d\u56fd\u6700\u53ef\u9760\u7684 Go \u6a21\u5757\u4ee3\u7406","url":"https://goproxy.cn/","urls":{"-3":"https://github.com/goproxy/goproxy.cn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":580},{"icon":"https://static.studygolang.com/static/img/favicon.ico","name":"Go\u8bed\u8a00\u4e2d\u6587\u7f51","desc":"Go\u8bed\u8a00\u4e2d\u6587\u7f51","url":"https://studygolang.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":581},{"icon":"https://studygolang.com/static/img/go.ico","name":"Go\u6807\u51c6\u5e93\u4e2d\u6587\u6587\u6863","desc":"Go\u6807\u51c6\u5e93\u4e2d\u6587\u6587\u6863","url":"https://studygolang.com/pkgdoc","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","\u751f\u6001"],"ownVisible":false,"id":582}],"createdAt":"2021-01-23 09:32:06"},{"title":"WEB\u6846\u67b6","nav":[{"name":"gin","desc":"Gin\u662f\u7528Go\uff08Golang\uff09\u7f16\u5199\u7684Web\u6846\u67b6\u3002\u5b83\u5177\u6709\u7c7b\u4f3c\u4e8emartini\u7684API\uff0c\u5176\u6027\u80fd\u6bd4httprouter\u5feb40\u500d\u3002\u5982\u679c\u60a8\u9700\u8981\u6027\u80fd\u548c\u826f\u597d\u7684\u751f\u4ea7\u7387\uff0c\u60a8\u4f1a\u559c\u6b22Gin","url":"https://learnku.com/docs/gin-gonic/2019/go-gin-document","urls":{"-2":"https://gin-gonic.com/","-1":"https://learnku.com/docs/gin-gonic/2019/go-gin-document","-3":"https://github.com/gin-gonic/gin"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":583},{"name":"beego","desc":"beego\u662f\u7528\u4e8eGo\u7f16\u7a0b\u8bed\u8a00\u7684\u5f00\u6e90\uff0c\u9ad8\u6027\u80fdWeb\u6846\u67b6","url":"http://beego.me","urls":{"-2":"http://beego.me","-3":"https://github.com/astaxie/beego"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":584},{"name":"martini","desc":"Go\u7684\u7ecf\u5178Web\u6846\u67b6","url":"http://martini.codegangsta.io","urls":{"-2":"http://martini.codegangsta.io","-3":"https://github.com/go-martini/martini"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":585},{"icon":"https://avatars1.githubusercontent.com/u/2624634?s=200&v=4","name":"echo","desc":"\u9ad8\u6027\u80fd\uff0c\u7b80\u7ea6\u7684Go Web\u6846\u67b6","url":"https://echo.labstack.com","urls":{"-2":"https://echo.labstack.com","-3":"https://github.com/labstack/echo"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":586},{"icon":"https://www.iris-go.com/favicon.ico","name":"iris","desc":"\u6700\u5feb\u7684HTTP / 2 Go Web\u6846\u67b6\u3002AWS Lambda\uff0cgRPC\uff0cMVC\uff0c\u552f\u4e00\u8def\u7531\u5668\uff0cWebsocket\uff0c\u4f1a\u8bdd\uff0c\u6d4b\u8bd5\u5957\u4ef6\uff0c\u4f9d\u8d56\u6ce8\u5165\u7b49\u3002expressjs\u548claravel\u7684\u771f\u6b63\u7ee7\u627f\u8005|","url":"https://www.iris-go.com/","urls":{"-3":"https://github.com/kataras/iris"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":587},{"icon":"https://avatars1.githubusercontent.com/u/59947262?s=200&v=4","name":"fiber","desc":"Fiber\u662f\u4e00\u4e2a\u53d7Express\u542f\u53d1\u7684Web\u6846\u67b6\uff0c\u5efa\u7acb\u5728Fasthttp\uff08Go\u6700\u5feb\u7684HTTP\u5f15\u64ce\uff09\u7684\u57fa\u7840\u4e0a\u3002 \u65e8\u5728\u7b80\u5316\u96f6\u5185\u5b58\u5206\u914d\u548c\u6027\u80fd\u7684\u60c5\u51b5\uff0c\u4ee5\u4fbf\u5feb\u901f\u5f00\u53d1\u3002","url":"https://gofiber.io/","urls":{"-3":"https://github.com/gofiber/fiber"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u751f\u6001\u7cfb\u7edf","WEB\u6846\u67b6"],"ownVisible":false,"id":588}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4f9d\u8d56\u5305","icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","nav":[{"title":"GUI","nav":[{"icon":"https://avatars3.githubusercontent.com/u/36045855?s=200&v=4","name":"Fyne","desc":"\u57fa\u4e8eMaterial Design\u7684Go\u8de8\u5e73\u53f0GUI","url":"https://fyne.io/","urls":{"-3":"https://github.com/fyne-io/fyne"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","GUI"],"ownVisible":false,"id":589}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u65e5\u5fd7\u6a21\u5757","nav":[{"name":"logrus","desc":"Go\u7684\u7ed3\u6784\u5316\uff0c\u53ef\u63d2\u5165\u65e5\u5fd7\u8bb0\u5f55\u3002","url":"https://github.com/sirupsen/logrus","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u65e5\u5fd7\u6a21\u5757"],"ownVisible":false,"id":590},{"icon":"https://avatars3.githubusercontent.com/u/19262598?s=200&v=4","name":"zap","desc":"\u5728Go\u4e2d\u5b9e\u73b0\u5feb\u901f\uff0c\u7ed3\u6784\u5316\uff0c\u6c34\u5e73\u7684\u65e5\u5fd7\u8bb0\u5f55\u3002","url":"https://github.com/uber-go/zap","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u65e5\u5fd7\u6a21\u5757"],"ownVisible":false,"id":591}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"name":"gorm","desc":"\u9002\u7528\u4e8eGolang\u7684\u7edd\u4f73ORM\u5e93\uff0c\u65e8\u5728\u5bf9\u5f00\u53d1\u4eba\u5458\u53cb\u597d","url":"https://gorm.io/zh_CN/","urls":{"-2":"https://gorm.io/","-1":"https://gorm.io/zh_CN/","-3":"https://github.com/go-gorm/gorm"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":592},{"icon":"https://entgo.io/img/favicon.ico","name":"ent","desc":"\u7528\u4e8eGo\u7684\u7b80\u5355\u4f46\u529f\u80fd\u5f3a\u5927\u7684\u5b9e\u4f53\u6846\u67b6\uff0c\u53ef\u8f7b\u677e\u6784\u5efa\u548c\u7ef4\u62a4\u5177\u6709\u5927\u578b\u6570\u636e\u6a21\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u3002","url":"https://entgo.io/","urls":{"-3":"https://github.com/facebook/ent"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":593},{"name":"mysql","desc":"Go MySQL\u9a71\u52a8\u7a0b\u5e8f\u662fGo\uff08golang\uff09\u6570\u636e\u5e93/ sql\u5305\u7684MySQL\u9a71\u52a8\u7a0b\u5e8f","url":"https://github.com/go-sql-driver/mysql","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":594},{"name":"sqlite3","desc":"sqlite3\u9a71\u52a8\u7a0b\u5e8f","url":"https://github.com/mattn/go-sqlite3","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":595},{"name":"pq","desc":"\u9002\u7528\u4e8edatabase/sql\u7684Pure Go Postgres\u9a71\u52a8\u7a0b\u5e8f","url":"https://github.com/lib/pq","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":596},{"icon":"https://redis.uptrace.dev/assets/images/favicon.png","name":"redis","desc":"\u7528\u4e8eGolang\u7684\u7c7b\u578b\u5b89\u5168\u7684Redis\u5ba2\u6237\u7aef","url":"https://redis.uptrace.dev/","urls":{"-3":"https://github.com/go-redis/redis"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u6570\u636e\u5e93"],"ownVisible":false,"id":597}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u89e3\u6790\u5668","nav":[{"name":"json-iterator","desc":"\u9ad8\u6027\u80fd100\uff05\u517c\u5bb9\u7684\u201c encoding / json\u201d\u66ff\u4ee3\u4ea7\u54c1","url":"http://jsoniter.com/migrate-from-go-std.html","urls":{"-3":"https://github.com/json-iterator/go"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":598},{"name":"blackfriday","desc":"Markdown\u5904\u7406\u5668\uff0c\u5b89\u5168\u3001\u5feb\u901f\u3002","url":"https://github.com/russross/blackfriday","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":599},{"name":"goldmark","desc":"\u7528Go\u8bed\u8a00\u7f16\u5199\u7684markdown\u89e3\u6790\u5668\u3002\u6613\u4e8e\u6269\u5c55\uff0c\u7b26\u5408\u6807\u51c6\uff08CommonMark\uff09\uff0c\u7ed3\u6784\u5408\u7406\u3002","url":"https://github.com/yuin/goldmark","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":600},{"name":"goquery","desc":"\u63a5\u8fd1jQuery\u8bed\u6cd5\u7684DOM\u89e3\u6790\u5e93","url":"https://github.com/PuerkitoBio/goquery","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":601},{"name":"go-yaml","desc":"yaml\u5305\u4f7fGo\u7a0b\u5e8f\u80fd\u591f\u8f7b\u677e\u5730\u5bf9yaml\u503c\u8fdb\u884c\u7f16\u7801\u548c\u89e3\u7801, \u53ef\u4ee5\u5feb\u901f\u53ef\u9760\u5730\u89e3\u6790\u548c\u751f\u6210YAML\u6570\u636e\u3002","url":"https://github.com/go-yaml/yaml/tree/v3","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":602},{"name":"xurls","desc":"\u4ece\u6587\u672c\u4e2d\u63d0\u53d6Urls","url":"https://github.com/mvdan/xurls","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u89e3\u6790\u5668"],"ownVisible":false,"id":603}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u6570\u9a8c\u8bc1","nav":[{"name":"govalidator","desc":"\u53c2\u6570\u9a8c\u8bc1\u7a0b\u5e8f\uff0c\u7528\u4e8e\u5b57\u7b26\u4e32\uff0c\u6570\u5b57\uff0c\u5207\u7247\u548c\u7ed3\u6784","url":"https://github.com/asaskevich/govalidator","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":604},{"name":"validator","desc":"\u57fa\u4e8e\u6807\u7b7e\u5bf9\u7ed3\u6784\u548c\u5404\u4e2a\u5b57\u6bb5\u5b9e\u73b0\u503c\u9a8c\u8bc1\u3002","url":"https://github.com/go-playground/validator","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u53c2\u6570\u9a8c\u8bc1"],"ownVisible":false,"id":605}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"ip","desc":"\u83b7\u53d6\u516c\u7f51IP\u5730\u5740\u3001v4/v6","url":"https://github.com/xjh22222228/ip","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":606},{"name":"terminal","desc":"\u63d0\u4f9b\u4e86\u7528\u4e8e\u5904\u7406\u7ec8\u7aef\u7684\u652f\u6301\u529f\u80fd\uff0c\u8fd9\u5728UNIX\u7cfb\u7edf\u4e0a\u5f88\u5e38\u89c1","url":"https://godoc.org/golang.org/x/crypto/ssh/terminal","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":607},{"name":"gopsutil","desc":"\u7528\u4e8e\u68c0\u7d22\u6b63\u5728\u8fd0\u884c\u7684\u8fdb\u7a0b\u548c\u7cfb\u7edf\u5229\u7528\u7387\uff08CPU\uff0c\u5185\u5b58\uff0c\u78c1\u76d8\uff0c\u7f51\u7edc\uff0c\u4f20\u611f\u5668\uff09\u7684\u4fe1\u606f\u3002\u5b83\u4e3b\u8981\u7528\u4e8e\u7cfb\u7edf\u76d1\u89c6\uff0c\u6982\u8981\u5206\u6790\u548c\u9650\u5236\u8fdb\u7a0b\u8d44\u6e90\u4ee5\u53ca\u7ba1\u7406\u6b63\u5728\u8fd0\u884c\u7684\u8fdb\u7a0b","url":"https://github.com/shirou/gopsutil","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":608},{"name":"air","desc":"Go\u70ed\u91cd\u8f7d","url":"https://github.com/cosmtrek/air","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":609},{"name":"go-micro","desc":"\u5206\u5e03\u5f0f\u7cfb\u7edf\u5f00\u53d1\u6846\u67b6","url":"https://go-micro.dev","urls":{"-3":"https://github.com/micro/go-micro"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":610},{"name":"xlsx","desc":"xlsx\u662f\u4e00\u4e2a\u5e93\uff0c\u7528\u4e8e\u7b80\u5316\u5728Go\u7a0b\u5e8f\u4e2d\u8bfb\u5199Microsoft Excel\u6700\u65b0\u7248\u672c\u4f7f\u7528\u7684XML\u683c\u5f0f\u3002","url":"https://github.com/tealeg/xlsx","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":611},{"name":"email","desc":"Go\u5f3a\u5927\u800c\u7075\u6d3b\u7684\u7535\u5b50\u90ae\u4ef6\u5e93\u3002","url":"https://github.com/jordan-wright/email","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":612},{"name":"websocket","desc":"Go\u7684\u4e00\u79cd\u5feb\u901f\uff0c\u7ecf\u8fc7\u6d4b\u8bd5\u4e14\u5e7f\u6cdb\u4f7f\u7528\u7684WebSocket\u5b9e\u73b0","url":"https://github.com/gorilla/websocket","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":613},{"name":"jwt-go","desc":"Golang \u5b9e\u73b0\u7684 JSON WEB TOKEN","url":"https://github.com/dgrijalva/jwt-go","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":614},{"name":"cron","desc":"Go \u5b9e\u73b0\u7684 cron \u5305","url":"https://github.com/robfig/cron","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":615},{"name":"qrcode","desc":"\u4e8c\u7ef4\u7801\u751f\u6210","url":"https://github.com/skip2/go-qrcode","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":616},{"icon":"https://avatars3.githubusercontent.com/u/27810343?s=200&v=4","name":"casbin","desc":"\u6743\u9650\u7ba1\u7406\u5e93\uff0c\u652f\u6301Golang\u4e2d\u7684\u8bbf\u95ee\u63a7\u5236\u6a21\u578b\uff0c\u5982ACL\uff0cRBAC\uff0cABAC","url":"https://casbin.org/zh-CN/","urls":{"-3":"https://github.com/casbin/casbin"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":617},{"name":"resty","desc":"\u7528\u4e8eGo\u7684\u7b80\u5355HTTP\u548cREST\u5ba2\u6237\u7aef\u5e93","url":"https://github.com/go-resty/resty","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":618},{"icon":"https://grpc.io/favicons/apple-touch-icon.png","name":"grpc-go","desc":"gRPC\u7684Go\u8bed\u8a00\u5b9e\u73b0\u3002\u57fa\u4e8eHTTP/2\u7684RPC","url":"https://grpc.io/","urls":{"-3":"https://github.com/grpc/grpc-go"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":619},{"icon":"https://avatars2.githubusercontent.com/u/33584194?s=200&v=4","name":"colly","desc":"Colly\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5e72\u51c0\u7684\u754c\u9762\u6765\u7f16\u5199\u4efb\u4f55\u79cd\u7c7b\u7684\u722c\u866b","url":"http://go-colly.org/","urls":{"-3":"https://github.com/gocolly/colly"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":620},{"name":"cors","desc":"\u4f7f\u7528net / http\u53ef\u914d\u7f6e\u7684\u5904\u7406\u7a0b\u5e8f\u6765\u5904\u7406CORS\u8bf7\u6c42","url":"https://github.com/rs/cors","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":621}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"CLI","icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","nav":[{"title":"\u7ec8\u7aef\u989c\u8272","nav":[{"name":"color","desc":"CLI \u63a7\u5236\u53f0\u989c\u8272\u6e32\u67d3\u5de5\u5177\u5e93, \u652f\u6301Windows","url":"https://github.com/fatih/color","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u7ec8\u7aef\u989c\u8272"],"ownVisible":false,"id":622}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u547d\u4ee4\u884c\u89e3\u6790","nav":[{"name":"cli","desc":"\u4e00\u4e2a\u7b80\u5355\uff0c\u5feb\u901f\u4e14\u6709\u8da3\u7684\u8f6f\u4ef6\u5305\uff0c\u7528\u4e8e\u5728Go\u4e2d\u6784\u5efa\u547d\u4ee4\u884c\u5e94\u7528","url":"https://github.com/urfave/cli/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u547d\u4ee4\u884c\u89e3\u6790"],"ownVisible":false,"id":623},{"name":"cobra","desc":"Cobra\u65e2\u662f\u7528\u4e8e\u521b\u5efa\u529f\u80fd\u5f3a\u5927\u7684\u73b0\u4ee3CLI\u5e94\u7528\u7a0b\u5e8f\u7684\u5e93\uff0c\u53c8\u662f\u7528\u4e8e\u751f\u6210\u5e94\u7528\u7a0b\u5e8f\u548c\u547d\u4ee4\u6587\u4ef6\u7684\u7a0b\u5e8f","url":"https://github.com/spf13/cobra","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u547d\u4ee4\u884c\u89e3\u6790"],"ownVisible":false,"id":624}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u63a7\u5236\u53f0\u8fdb\u5ea6\u6761","nav":[{"name":"pb","desc":"Golang\u7684\u63a7\u5236\u53f0\u8fdb\u5ea6\u680f","url":"https://github.com/cheggaaa/pb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u63a7\u5236\u53f0\u8fdb\u5ea6\u6761"],"ownVisible":false,"id":625},{"name":"mpb","desc":"Go cli\u5e94\u7528\u7a0b\u5e8f\u7684\u591a\u8fdb\u5ea6\u6761","url":"https://github.com/vbauerster/mpb","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u63a7\u5236\u53f0\u8fdb\u5ea6\u6761"],"ownVisible":false,"id":626}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"name":"promptui","desc":"\u547d\u4ee4\u884c\u5e94\u7528\u7a0b\u5e8f\u7684\u4ea4\u4e92\u5f0f\u63d0\u793a","url":"https://github.com/manifoldco/promptui","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u5176\u4ed6"],"ownVisible":false,"id":627},{"name":"godotenv","desc":"\u4ece`.env`\u6587\u4ef6\u52a0\u8f7d\u73af\u5883\u53d8\u91cf\u3002","url":"https://github.com/joho/godotenv","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u5176\u4ed6"],"ownVisible":false,"id":628},{"name":"go-prompt","desc":"\u53d7python-prompt-toolkit\u542f\u53d1\uff0c\u5728Go\u4e2d\u6784\u5efa\u5f3a\u5927\u7684\u4ea4\u4e92\u5f0f\u63d0\u793a\u3002","url":"https://github.com/c-bata/go-prompt","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","CLI","\u5176\u4ed6"],"ownVisible":false,"id":629}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","nav":[{"title":"\u5de5\u5177","nav":[{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"gvm","desc":"Go\u7248\u672c\u7ba1\u7406\u5668\uff0c\u7c7b\u4f3c nvm","url":"https://github.com/moovweb/gvm","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":630},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"json-to-go","desc":"\u5728\u7ebf JSON \u8f6c Struct\u7ed3\u6784\u4f53","url":"https://mholt.github.io/json-to-go/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":631},{"icon":"https://avatars3.githubusercontent.com/u/35628013?s=200&v=4","name":"golangci-lint","desc":"Go\u7684\u5feb\u901fLinters Runner","url":"https://github.com/golangci/golangci-lint","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":632},{"icon":"https://play.golang.org/favicon.ico","name":"The Go Playground","desc":"\u5728\u7ebf\u8fd0\u884cGolang","url":"https://play.golang.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":633},{"icon":"https://nuclei.projectdiscovery.io/","name":"nuclei","desc":"Nuclei\u662f\u57fa\u4e8e\u6a21\u677f\u7684\u53ef\u914d\u7f6e\u76ee\u6807\u626b\u63cf\u7684\u5feb\u901f\u5de5\u5177\uff0c\u5177\u6709\u5e7f\u6cdb\u7684\u53ef\u6269\u5c55\u6027\u548c\u6613\u7528\u6027\u3002","url":"https://play.golang.org/","urls":{"-3":"https://github.com/projectdiscovery/nuclei"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":634},{"icon":"https://avatars3.githubusercontent.com/u/35628013?s=200&v=4","name":"jaeger","desc":"\u5206\u5e03\u5f0f\u94fe\u8def\u8ffd\u8e2a","url":"https://www.jaegertracing.io/","urls":{"-3":"https://github.com/jaegertracing/jaeger"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":635},{"icon":"https://avatars1.githubusercontent.com/u/19232073?s=200&v=4","name":"delve","desc":"Delve\u662fGo\u7f16\u7a0b\u8bed\u8a00\u7684\u8c03\u8bd5\u5668\u3002","url":"https://github.com/go-delve/delve","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u5de5\u5177","\u5de5\u5177"],"ownVisible":false,"id":636}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u8003\u8d44\u6599","nav":[{"title":"\u4e66\u7c4d","nav":[{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go \u5165\u95e8\u6307\u5357","desc":"\u300aThe Way to Go\u300b\u4e2d\u6587\u8bd1\u672c\uff0c\u4e2d\u6587\u6b63\u5f0f\u540d\u300aGo \u5165\u95e8\u6307\u5357\u300b","url":"https://github.com/unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":637},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u8bed\u8a00\u5723\u7ecf","desc":"Go\u8bed\u8a00\u5723\u7ecf \u300aThe Go Programming Language\u300b \u4e2d\u6587\u7248\u672c","url":"https://yar999.gitbook.io/gopl-zh/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":638},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go WEB \u7f16\u7a0b","desc":"Golang\u7535\u5b50\u4e66\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528Golang\u5efa\u7acb\u7f51\u7edc","url":"https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":639},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u7b80\u6613\u6559\u7a0b","desc":"\u300aThe Little Go Book\u300b\u4e2d\u6587\u8bd1\u672c\uff0c\u4e2d\u6587\u6b63\u5f0f\u540d\u300aGo\u7b80\u6613\u6559\u7a0b\u300b","url":"https://github.com/songleo/the-little-go-book_ZH_CN","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":640},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go by Example \u4e2d\u6587\u7248","desc":"Go by Example \u662f\u5bf9 Go \u57fa\u4e8e\u5b9e\u8df5\u7684\u4ecb\u7ecd\uff0c\u5305\u542b\u4e00\u7cfb\u5217\u5e26\u6709\u6ce8\u91ca\u8bf4\u660e\u7684\u793a\u4f8b\u7a0b\u5e8f\u3002","url":"https://gobyexample-cn.github.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":641},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u8bed\u8a00\u4e4b\u65c5","desc":"\u672c\u6307\u5357\u6db5\u76d6\u4e86\u8be5\u8bed\u8a00\u7684\u5927\u90e8\u5206\u91cd\u8981\u7279\u6027\uff0c\u4e3b\u8981\u5305\u62ec\uff1a\u57fa\u7840\u3001\u65b9\u6cd5\u548c\u63a5\u53e3\u3001\u5e76\u53d1\u7b49","url":"https://tour.go-zh.org/welcome/1","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":642},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u8bed\u8a00101","desc":"\u4e00\u672c\u7740\u58a8\u4e8eGo\u8bed\u6cd5\u8bed\u4e49\u4ee5\u53ca\u8fd0\u884c\u65f6\u76f8\u5173\u77e5\u8bc6\u70b9\u7684\u7f16\u7a0b\u6307\u5bfc\u4e66\uff08Go 1.15\u5c31\u7eea\uff09\u3002 \u6b64\u4e66\u65e8\u5728\u5c3d\u53ef\u80fd\u5730\u5e2e\u52a9Go\u7a0b\u5e8f\u5458\u66f4\u6df1\u66f4\u5168\u9762\u5730\u7406\u89e3Go\u8bed\u8a00","url":"https://gfw.go101.org/article/101.html","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":643},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Go\u8bed\u8a00\u9ad8\u7ea7\u7f16\u7a0b","desc":"\u672c\u4e66\u6db5\u76d6CGO\u3001Go\u6c47\u7f16\u8bed\u8a00\u3001RPC\u5b9e\u73b0\u3001Web\u6846\u67b6\u5b9e\u73b0\u3001\u5206\u5e03\u5f0f\u7cfb\u7edf\u7b49\u9ad8\u9636\u4e3b\u9898\uff0c\u9488\u5bf9Go\u8bed\u8a00\u6709\u4e00\u5b9a\u7ecf\u9a8c\u60f3\u6df1\u5165\u4e86\u89e3Go\u8bed\u8a00\u5404\u79cd\u9ad8\u7ea7\u7528\u6cd5\u7684\u5f00\u53d1\u4eba\u5458(\u4e0d\u63a8\u8350\u65b0\u624b)","url":"https://chai2010.cn/advanced-go-programming-book/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":644},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Mastering GO","desc":"\u300aMastering GO\u300b\u4e2d\u6587\u8bd1\u672c\uff0c\u300a\u73a9\u8f6c GO\u300b\u3002","url":"https://github.com/hantmac/Mastering_Go_ZH_CN","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":645},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Mastering GO2","desc":"Mastering Go \u7b2c\u4e8c\u7248\u4e2d\u6587\u7248\u6765\u88ad\uff01","url":"https://github.com/hantmac/Mastering_Go_Second_Edition_Zh_CN","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":646}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"100\u5929\u4ece\u65b0\u624b\u5230\u5927\u5e08","desc":"Golang - 100\u5929\u4ece\u65b0\u624b\u5230\u5927\u5e08","url":"https://www.qfgolang.com/","urls":{"-3":"https://github.com/rubyhan1314/Golang-100-Days"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u5176\u4ed6"],"ownVisible":false,"id":647},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"project-layout","desc":"Go\u6807\u51c6\u5e03\u5c40\u7ed3\u6784\uff0c\u9879\u76ee\u67b6\u6784\u7ed3\u6784\u53c2\u8003\u3002","url":"https://github.com/golang-standards/project-layout/blob/master/README_zh.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u5176\u4ed6"],"ownVisible":false,"id":648},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"\u7f16\u7801\u89c4\u8303","desc":"Uber Go \u8bed\u8a00\u7f16\u7801\u89c4\u8303","url":"https://github.com/xxjwxc/uber_go_guide_cn","urls":{"-2":"https://github.com/uber-go/guide/blob/master/style.md","-1":"https://github.com/xxjwxc/uber_go_guide_cn"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u5176\u4ed6"],"ownVisible":false,"id":649},{"icon":"https://avatars1.githubusercontent.com/u/4314092?s=200&v=4","name":"Gin\u5b9e\u6218","desc":"WEB \u6846\u67b6Gin\u5b9e\u6218","url":"https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI3MjU4Njk3Ng==&action=getalbum&album_id=1362784031968149504&scene=173#wechat_redirect","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Golang","\u53c2\u8003\u8d44\u6599","\u5176\u4ed6"],"ownVisible":false,"id":650}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Flutter","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","nav":[{"title":"\u5b98\u65b9","nav":[{"icon":"https://pub.dev/favicon.ico","name":"Dart","desc":"Dart\u8bed\u8a00","url":"http://www.dartdoc.cn/","urls":{"-2":"https://dart.dev/","-1":"http://www.dartdoc.cn/","-3":"https://github.com/dart-lang/sdk"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":651},{"icon":"https://pub.dev/favicon.ico","name":"DartPad","desc":"\u5728\u7ebf\u8fd0\u884cDart\u8bed\u6cd5","url":"https://dartpad.cn/embed-inline.html?id=7a9764702c0608711e08&split=90","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":652},{"icon":"https://pub.dev/favicon.ico","name":"Dart packages","desc":"Dart packages","url":"https://pub.dev/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":653},{"icon":"https://flutter.dev/images/favicon.png","name":"Flutter","desc":"Flutter\u662f\u8c37\u6b4c\u7684\u79fb\u52a8UI\u6846\u67b6\uff0c\u53ef\u4ee5\u5feb\u901f\u5728iOS\u548cAndroid\u4e0a\u6784\u5efa\u9ad8\u8d28\u91cf\u7684\u539f\u751f\u7528\u6237\u754c\u9762\u3002 Flutter\u53ef\u4ee5\u4e0e\u73b0\u6709\u7684\u4ee3\u7801\u4e00\u8d77\u5de5\u4f5c\u3002\u5728\u5168\u4e16\u754c\uff0cFlutter\u6b63\u5728\u88ab\u8d8a\u6765\u8d8a\u591a\u7684\u5f00\u53d1\u8005\u548c\u7ec4\u7ec7\u4f7f\u7528\uff0c\u5e76\u4e14Flutter\u662f\u5b8c\u5168\u514d\u8d39\u3001\u5f00\u6e90\u7684","url":"https://flutterchina.club/","urls":{"-2":"https://flutter.dev/","-1":"https://flutterchina.club/","-3":"https://github.com/flutter/flutter"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":654},{"icon":"https://flutter.dev/images/favicon.png","name":"Flutter Icon","desc":"Flutter\u5185\u7f6eIcon\u7ec4\u4ef6\u56fe\u6807\u901f\u67e5\u8868","url":"https://material.io/resources/icons/?style=baseline","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":655}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u5e38\u7528\u6a21\u5757","nav":[{"icon":"https://avatars1.githubusercontent.com/u/2605412?s=200&v=4","name":"imei_plugin","desc":"\u7528flutter\u5728Android\u4e2d\u83b7\u53d6imei\u7684\u63d2\u4ef6","url":"https://github.com/kevincaicedo/imei_plugin","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":656},{"icon":"https://avatars1.githubusercontent.com/u/2605412?s=200&v=4","name":"multi_image_picker","desc":"Flutter\u63d2\u4ef6\uff0c\u53ef\u8ba9\u60a8\u5728iOS\u548cAndroid\u4e0a\u663e\u793a\u591a\u56fe\u50cf\u9009\u62e9\u5668\u3002","url":"https://github.com/Sh1d0w/multi_image_picker","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":657},{"icon":"https://avatars1.githubusercontent.com/u/2605412?s=200&v=4","name":"sqflite","desc":"SQLite flutter plugin","url":"https://github.com/tekartik/sqflite","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":658},{"icon":"https://flutter.dev/images/favicon.png","name":"dio","desc":"dio\u662f\u4e00\u4e2a\u5f3a\u5927\u7684Dart Http\u8bf7\u6c42\u5e93\uff0c\u652f\u6301Restful API\u3001FormData\u3001\u62e6\u622a\u5668\u3001\u8bf7\u6c42\u53d6\u6d88\u3001Cookie\u7ba1\u7406\u3001\u6587\u4ef6\u4e0a\u4f20/\u4e0b\u8f7d\u3001\u8d85\u65f6\u3001\u81ea\u5b9a\u4e49\u9002\u914d\u5668\u7b49","url":"https://github.com/flutterchina/dio","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":659},{"icon":"https://camo.githubusercontent.com/a53c432bb9c2222880a6eca54b5ed091d1ab3d40/68747470733a2f2f696d672e616c6963646e2e636f6d2f7466732f5442317237344e4a794c614b31526a535a46785858616d504658612d313032342d313032342e706e67","name":"fish-redux","desc":"\u4e00\u4e2a\u57fa\u4e8eRedux\u72b6\u6001\u7ba1\u7406\u7684\u7ec4\u5408\u5f0fflutter\u5e94\u7528\u7a0b\u5e8f\u6846\u67b6\u3002\u5b83\u9002\u7528\u4e8e\u5efa\u7b51\u4e2d\u578b\u548c\u5927\u578b\u5e94\u7528\u3002","url":"https://github.com/alibaba/fish-redux","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":660},{"icon":"https://flutter.dev/images/favicon.png","name":"flutter_pulltorefresh","desc":"\u4e00\u4e2a\u63d0\u4f9b\u4e0a\u62c9\u52a0\u8f7d\u548c\u4e0b\u62c9\u5237\u65b0\u7684\u7ec4\u4ef6,\u540c\u65f6\u652f\u6301Android\u548cIos","url":"https://github.com/peng8350/flutter_pulltorefresh","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":661},{"icon":"https://flutter.dev/images/favicon.png","name":"json_serializable","desc":"JSON\u5e8f\u5217\u5316\u548c\u53cd\u5e8f\u5217\u5316\u7684\u4ee3\u7801","url":"https://github.com/dart-lang/json_serializable","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":662},{"icon":"https://flutter.dev/images/favicon.png","name":"flutter_swiper","desc":"flutter\u6700\u5f3a\u5927\u7684siwiper, \u591a\u79cd\u5e03\u5c40\u65b9\u5f0f\uff0c\u65e0\u9650\u8f6e\u64ad\uff0cAndroid\u548cIOS\u53cc\u7aef\u9002\u914d","url":"https://github.com/best-flutter/flutter_swiper/blob/master/README-ZH.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":663},{"icon":"https://flutter.dev/images/favicon.png","name":"FlutterToast","desc":"\u9002\u7528\u4e8eFlutter\u7684Android Toast\u63d2\u4ef6","url":"https://github.com/PonnamKarthik/FlutterToast","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":664},{"icon":"https://flutter.dev/images/favicon.png","name":"dart-uuid","desc":"\u751f\u6210 RFC4122(v1,v4,v5) UUIDs","url":"https://github.com/Daegalus/dart-uuid","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":665},{"icon":"https://flutter.dev/images/favicon.png","name":"fluwx","desc":"Flutter\u7248\u5fae\u4fe1SDK.WeChat SDK for flutter.","url":"https://github.com/OpenFlutter/fluwx","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5e38\u7528\u6a21\u5757"],"ownVisible":false,"id":666}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u6863\u8d44\u6599","nav":[{"icon":"https://flutter.dev/images/favicon.png","name":"Material Design","desc":"Material\u662f\u4e00\u4e2a\u7531\u5f00\u6e90\u4ee3\u7801\u652f\u6301\u7684\u8bbe\u8ba1\u7cfb\u7edf\uff0c\u53ef\u4ee5\u5e2e\u52a9\u56e2\u961f\u6784\u5efa\u9ad8\u8d28\u91cf\u7684\u6570\u5b57\u4f53\u9a8c","url":"https://material.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":667},{"icon":"https://flutter.dev/images/favicon.png","name":"Flutter\u5b9e\u6218","desc":"Flutter\u5b9e\u6218","url":"https://book.flutterchina.club/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":668},{"icon":"https://flutter.dev/images/favicon.png","name":"samples","desc":"Flutter\u793a\u4f8b\u548c\u6f14\u793a\u7684\u96c6\u5408","url":"https://github.com/flutter/samples","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":669},{"icon":"https://img.alicdn.com/tfs/TB1OJkeHNYaK1RjSZFnXXa80pXa-229-229.png","name":"flutter-go","desc":"flutter \u5f00\u53d1\u8005\u5e2e\u52a9 APP\uff0c\u5305\u542b flutter \u5e38\u7528 140+ \u7ec4\u4ef6\u7684demo \u6f14\u793a\u4e0e\u4e2d\u6587\u6587\u6863","url":"https://flutter-go.pub/flutter_go_web/#FirstPage","urls":{"-3":"https://github.com/alibaba/flutter-go"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":670},{"icon":"https://flutter.dev/images/favicon.png","name":"Flutter-Notebook","desc":"flutter\u76f8\u5173\u529f\u80fddemo\u7684\u96c6\u5408\uff0c\u5b83\u80fd\u591f\u5e2e\u52a9\u60a8\u5feb\u901f\u5b66\u4e60\u4e00\u4e9b\u96f6\u788e\u7684\u77e5\u8bc6","url":"https://github.com/OpenFlutter/Flutter-Notebook","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":671},{"icon":"https://flutter.dev/images/favicon.png","name":"plugins","desc":"Flutter\u56e2\u961f\u7ef4\u62a4\u7684Flutter\u63d2\u4ef6","url":"https://github.com/flutter/plugins","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":672},{"icon":"https://flutter.dev/images/favicon.png","name":"awesome-flutter","desc":"\u5f88\u68d2\u7684\u6e05\u5355\uff0c\u7cbe\u9009\u4e86\u6700\u597d\u7684Flutter\u5e93\uff0c\u5de5\u5177\uff0c\u6559\u7a0b\uff0c\u6587\u7ae0\u7b49","url":"https://github.com/Solido/awesome-flutter","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":673},{"icon":"https://flutter.dev/images/favicon.png","name":"flutter-do","desc":"330+Widgets\u5728\u7ebf\u67e5\u770b\u9884\u89c8\u548c\u4f7f\u7528\u3002","url":"http://laomengit.com/flutter/widgets/widgets_structure.html","urls":{"-3":"https://github.com/781238222/flutter-do"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":674}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://flutter.dev/images/favicon.png","name":"flutter_wanandroid","desc":"\u57fa\u4e8eGoogle Flutter\u7684WanAndroid\u5ba2\u6237\u7aef\uff0c\u652f\u6301Android\u548ciOS\u3002\u5305\u62ecBLoC\u3001RxDart \u3001\u56fd\u9645\u5316\u3001\u4e3b\u9898\u8272\u3001\u542f\u52a8\u9875\u3001\u5f15\u5bfc\u9875\uff0c\u62e5\u6709\u8f83\u597d\u7684\u9879\u76ee\u7ed3\u6784&\u6bd4\u8f83\u89c4\u8303\u7684\u4ee3\u7801","url":"https://github.com/Sky24n/flutter_wanandroid","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":675},{"icon":"https://flutter.dev/images/favicon.png","name":"Best-Flutter-UI-Templates","desc":"Best-Flutter-UI-\u6a21\u677f, \u5bf9\u6240\u6709\u4eba\u5b8c\u5168\u514d\u8d39\u3002\u5176\u5185\u7f6e\u7684Flutter Dart\u3002","url":"https://github.com/mitesh77/Best-Flutter-UI-Templates","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Flutter","\u751f\u6001\u7cfb\u7edf","\u5176\u4ed6"],"ownVisible":false,"id":676}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"}],"collapsed":false,"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Python","nav":[{"title":"\u751f\u6001\u7cfb\u7edf","icon":"https://www.python.org/static/favicon.ico","nav":[{"title":"\u5b98\u65b9","nav":[{"name":"Python","desc":"\u662f\u4e00\u79cd\u89e3\u91ca\u578b\u3001\u9762\u5411\u5bf9\u8c61\u3001\u52a8\u6001\u6570\u636e\u7c7b\u578b\u7684\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3002","url":"https://www.python.org/","urls":{"-3":"https://github.com/TheAlgorithms/Python"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":677},{"name":"PyPi","desc":"\u4f7f\u7528Python\u8f6f\u4ef6\u5305\u7d22\u5f15\u67e5\u627e\uff0c\u5b89\u88c5\u548c\u53d1\u5e03Python\u8f6f\u4ef6\u5305","url":"https://pypi.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u751f\u6001\u7cfb\u7edf","\u5b98\u65b9"],"ownVisible":false,"id":678}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","nav":[{"name":"PCU","desc":"python-check-updates, \u68c0\u67e5 pip \u5f53\u524d\u4f9d\u8d56\u5305\u6700\u65b0\u7248\u672c","url":"https://github.com/xjh22222228/python-check-updates","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u751f\u6001\u7cfb\u7edf","\u5de5\u5177"],"ownVisible":false,"id":679}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4f9d\u8d56\u5305","icon":"https://www.python.org/static/favicon.ico","nav":[{"title":"HTTP/\u722c\u866b","nav":[{"icon":"https://www.python.org/static/favicon.ico","name":"requests","desc":"requests\u662f\u4e00\u4e2a\u7b80\u5355\u800c\u4f18\u96c5\u7684HTTP\u5e93\u3002","url":"https://requests.readthedocs.io/en/master/","urls":{"-3":"https://github.com/psf/requests"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":680},{"icon":"https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png","name":"aiohttp","desc":"\u7528\u4e8easyncio\u548cPython\u7684\u5f02\u6b65HTTP\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u6846\u67b6","url":"https://docs.aiohttp.org/en/stable/","urls":{"-3":"https://github.com/aio-libs/aiohttp"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":681},{"icon":"https://avatars2.githubusercontent.com/u/733635?s=200&v=4","name":"Scrapy","desc":"\u4e00\u4e2a\u7528\u4e8ePython\u7684\u5feb\u901f\u9ad8\u7ea7Web\u722c\u866b\u6846\u67b6\u3002","url":"https://scrapy.org/","urls":{"-3":"https://github.com/scrapy/scrapy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":682},{"icon":"https://avatars0.githubusercontent.com/u/983927?s=200&v=4","name":"selenium","desc":"\u6d4f\u89c8\u5668\u81ea\u52a8\u5316\u6846\u67b6\u548c\u751f\u6001\u7cfb\u7edf\u3002","url":"https://www.selenium.dev/","urls":{"-3":"https://github.com/SeleniumHQ/selenium/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":683},{"name":"beautifulsoup","desc":"\u53ef\u4ee5\u4eceHTML\u6216XML\u6587\u4ef6\u4e2d\u63d0\u53d6\u6570\u636e\u7684Python\u5e93","url":"https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","HTTP/\u722c\u866b"],"ownVisible":false,"id":684}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u50cf","nav":[{"name":"Pillow","desc":"\u53cb\u597d\u7684PIL\u524d\u53c9\uff0c\u662f\u4e00\u4e2a\u51fa\u8272\u7684\u56fe\u50cf\u5904\u7406\u5e93","url":"https://python-pillow.org/","urls":{"-3":"https://github.com/python-pillow/Pillow"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","\u56fe\u50cf"],"ownVisible":false,"id":685}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8fd0\u7b97","nav":[{"name":"numpy","desc":"\u4f7f\u7528Python\u8fdb\u884c\u79d1\u5b66\u8ba1\u7b97\u7684\u57fa\u672c\u8f6f\u4ef6\u5305\u3002","url":"https://numpy.org/","urls":{"-3":"https://github.com/numpy/numpy"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","\u8fd0\u7b97"],"ownVisible":false,"id":686}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5206\u6790","nav":[{"icon":"https://avatars1.githubusercontent.com/u/21206976?s=200&v=4","name":"pandas","desc":"\u529f\u80fd\u5f3a\u5927\u7684Python\u6570\u636e\u5206\u6790\u5de5\u5177\u5305","url":"https://github.com/pandas-dev/pandas","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","\u6570\u636e\u5206\u6790"],"ownVisible":false,"id":687}],"createdAt":"2021-01-23 09:32:06"},{"title":"CLI","nav":[{"createdAt":"2021-02-04 20:25:26","name":"rich","icon":"https://github.com/favicon.ico","url":"https://github.com/willmcgugan/rich","desc":"Rich\u662f\u4e00\u4e2aPython\u5e93\uff0c\u7528\u4e8e\u5728\u7ec8\u7aef\u4e2d\u63d0\u4f9b\u5bcc\u6587\u672c\u548c\u7cbe\u7f8e\u7684\u683c\u5f0f\u3002","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":688},{"name":"Fire","desc":"Python Fire\u662f\u4e00\u4e2a\u7528\u4e8e\u4ece\u7edd\u5bf9\u4efb\u4f55Python\u5bf9\u8c61\u81ea\u52a8\u751f\u6210\u547d\u4ee4\u884c\u754c\u9762\uff08CLI\uff09\u7684\u5e93\u3002","url":"https://github.com/google/python-fire","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":689},{"name":"colorama","desc":"Python\u4e2d\u7b80\u5355\u7684\u8de8\u5e73\u53f0\u5f69\u8272\u7ec8\u7aef\u6587\u672c","url":"https://pypi.org/project/colorama/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":690},{"icon":"https://avatars1.githubusercontent.com/u/12731565?s=200&v=4","name":"tqdm","desc":"\u9002\u7528\u4e8ePython\u548cCLI\u7684\u5feb\u901f\uff0c\u53ef\u6269\u5c55\u7684\u8fdb\u5ea6\u680f","url":"https://github.com/tqdm/tqdm","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":691},{"name":"paramiko","desc":"\u9886\u5148\u7684Python SSHv2\u534f\u8bae\u5e93","url":"https://github.com/paramiko/paramiko","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":692},{"name":"click","desc":"Python\u53ef\u7ec4\u5408\u547d\u4ee4\u884c\u754c\u9762\u5de5\u5177\u5305","url":"https://github.com/pallets/click","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","CLI"],"ownVisible":false,"id":693}],"createdAt":"2021-01-23 09:32:06"},{"createdAt":"2021-01-24 11:58:47","title":"\u5176\u4ed6","icon":null,"nav":[{"createdAt":"2021-01-24 11:59:58","name":"JMESPath","icon":"https://github.com/favicon.ico","url":"https://github.com/jmespath/jmespath.py","desc":"JMESPath\u662fJSON\u7684\u67e5\u8be2\u8bed\u8a00","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u4f9d\u8d56\u5305","\u5176\u4ed6"],"ownVisible":false,"id":694}]}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6846\u67b6","icon":"https://www.python.org/static/favicon.ico","nav":[{"title":"WEB\u6846\u67b6","nav":[{"icon":"https://avatars3.githubusercontent.com/u/27804?s=200&v=4","name":"Django","desc":"\u5177\u6709\u671f\u9650\u7684\u5b8c\u7f8e\u4e3b\u4e49\u8005\u7684Web\u6846\u67b6\u3002","url":"https://www.djangoproject.com/","urls":{"-3":"https://github.com/django/django"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u6846\u67b6","WEB\u6846\u67b6"],"ownVisible":false,"id":695},{"icon":"https://avatars0.githubusercontent.com/u/16748505?s=200&v=4","name":"flask","desc":"\u7528\u4e8e\u6784\u5efaWeb\u5e94\u7528\u7a0b\u5e8f\u7684Python\u5fae\u6846\u67b6\u3002","url":"https://palletsprojects.com/p/flask/","urls":{"-3":"https://github.com/pallets/flask"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Python","\u6846\u67b6","WEB\u6846\u67b6"],"ownVisible":false,"id":696}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u53c2\u8003\u8d44\u6599","nav":[{"title":"\u4e66\u7c4d","icon":"https://www.python.org/static/favicon.ico","nav":[{"name":"\u7b80\u660e Python \u6559\u7a0b","desc":"\u65e8\u5728\u4e8e\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Python \u8bed\u8a00\u8fdb\u884c\u7f16\u7a0b\u7684\u81ea\u7531\u56fe\u4e66\u3002\u5b83\u4ee5\u6559\u6750\u4e0e\u6307\u5357\u7684\u5f62\u5f0f\u4e3a\u5165\u95e8\u8005\u4ecb\u7ecd Python \u8bed\u8a00\u3002\u5982\u679c\u4f60\u5bf9\u7535\u8111\u77e5\u8bc6\u7684\u4e86\u89e3\u4ec5\u9650\u4e8e\u5982\u4f55\u4fdd\u5b58\u6587\u672c\u6587\u4ef6\u7684\u8bdd\uff0c\u90a3\u8fd9\u672c\u4e66\u5c31\u662f\u4e3a\u4f60\u51c6\u5907\u7684\u3002","url":"https://bop.mol.uno/","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u4e66\u7c4d"],"ownVisible":false,"id":697}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6587\u6863\u8d44\u6599","icon":"https://www.python.org/static/favicon.ico","nav":[{"name":"100\u5929\u4ece\u65b0\u624b\u5230\u5927\u5e08","desc":"Python - 100\u5929\u4ece\u65b0\u624b\u5230\u5927\u5e08","url":"https://github.com/jackfrued/Python-100-Days","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":698},{"name":"Python \u5165\u95e8\u6307\u5357","desc":"Python \u5165\u95e8\u6307\u5357","url":"https://python666.cn/cls/lesson/list/","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":699},{"name":"What the f*ck Python!","desc":"\u4e00\u4e9b\u6709\u8da3\u4e14\u9c9c\u4e3a\u4eba\u77e5\u7684 Python \u7279\u6027.","url":"https://github.com/satwikkansal/wtfpython","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":700},{"name":"awesome-python-cn","desc":"Python \u8d44\u6e90\u5927\u5168\u4e2d\u6587\u7248","url":"https://github.com/jobbole/awesome-python-cn","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":701},{"name":"cheatsheet","desc":"Python\u5927\u5168\u5907\u5fd8\u5355","url":"https://github.com/gto76/python-cheatsheet","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":702},{"name":"awesome-python","desc":"\u7cbe\u9009\u7684Python\u6846\u67b6\uff0c\u5e93\uff0c\u8f6f\u4ef6\u548c\u8d44\u6e90\u7684\u7cbe\u9009\u6e05\u5355\u3002","url":"https://github.com/vinta/awesome-python","icon":"https://www.python.org/static/favicon.ico","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Python","\u53c2\u8003\u8d44\u6599","\u6587\u6863\u8d44\u6599"],"ownVisible":false,"id":703}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06","id":1},{"title":"\u793e\u533a\u7ad9\u70b9","nav":[{"title":"\u793e\u533a\u7ad9\u70b9","nav":[{"title":"\u95ee\u7b54\u793e\u533a1","nav":[{"icon":"https://cdn.segmentfault.com/v-5f64887f/global/img/touch-icon.png","name":"segmentfault","desc":"\u662f\u4e2d\u6587\u9886\u57df\u6700\u5927\u7684\u6280\u672f\u95ee\u7b54\u4ea4\u6d41\u793e\u533a\u5e73\u53f0","url":"https://segmentfault.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":704},{"icon":"https://b-gold-cdn.xitu.io/favicons/v2/apple-touch-icon.png","name":"\u6398\u91d1","desc":"\u4e00\u4e2a\u5e2e\u52a9\u5f00\u53d1\u8005\u6210\u957f\u7684\u793e\u533a","url":"https://juejin.im/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":705},{"name":"DiyCode1","desc":"\u81f4\u529b\u4e8e\u6784\u5efa\u5f00\u53d1\u5de5\u7a0b\u5e08\u9ad8\u7aef\u4ea4\u6d41\u5206\u4eab\u793e\u533a","url":"https://www.diycode.cc/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":706},{"icon":"https://static.ld246.com/images/favicon.png","name":"\u9ed1\u5ba2\u6d3e","desc":"\u9ed1\u5ba2\u6d3e\u662f\u7a0b\u5e8f\u5458\u548c\u8bbe\u8ba1\u5e08\u7684\u805a\u96c6\u5730\uff0c\u6c47\u805a\u4e86\u4e25\u8c28\u6c42\u5b9e\u7684\u5de5\u7a0b\u5e08\u548c\u5bcc\u6709\u521b\u610f\u7684\u8bbe\u8ba1\u5e08","url":"https://hacpai.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":707},{"name":"Node.js\u4e13\u4e1a\u4e2d\u6587\u793e\u533a","desc":"\u56fd\u5185\u6700\u4e13\u4e1a\u7684 Node.js \u5f00\u6e90\u6280\u672f\u793e\u533a\uff0c\u81f4\u529b\u4e8e Node.js \u7684\u6280\u672f\u7814\u7a76","url":"https://cnodejs.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":708},{"icon":"https://www.52pojie.cn/favicon.ico","name":"\u543e\u7231\u7834\u89e3","desc":"\u543e\u7231\u7834\u89e3\u5173\u6ce8PC\u8f6f\u4ef6\u5b89\u5168\u548c\u79fb\u52a8\u5b89\u5168\u9886\u57df\uff0c\u81f4\u529b\u4e8e\u8f6f\u4ef6\u5b89\u5168\u4e0e\u75c5\u6bd2\u5206\u6790\u7684\u524d\u6cbf","url":"https://www.52pojie.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":709},{"icon":"https://www.freebuf.com/favicon.ico","name":"FreeBuf","desc":"FreeBuf\u9ed1\u5ba2\u4e0e\u6781\u5ba2,\u56fd\u5185\u5173\u6ce8\u5ea6\u6700\u9ad8\u7684\u5168\u7403\u4e92\u8054\u7f51\u5b89\u5168\u5a92\u4f53\u5e73\u53f0","url":"http://www.freebuf.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":710},{"icon":"https://imweb.io/public/icon.png","name":"IMWeb","desc":"Web\u524d\u7aef \u817e\u8bafIMWeb \u56e2\u961f\u793e\u533a","url":"http://imweb.io/topic/tab/all","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":711},{"icon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a","name":"Stack Overflow","desc":"\u5168\u7403\u6700\u5927\u7684\u6280\u672f\u95ee\u7b54\u7f51\u7ad9\uff0c\u662f\u4e00\u4e2a\u4e0e\u7a0b\u5e8f\u76f8\u5173\u7684IT\u6280\u672f\u95ee\u7b54\u7f51\u7ad9","url":"https://stackoverflow.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":712},{"icon":"https://reactjs.org/favicon.ico","name":"React\u793e\u533a","desc":"React\u8bba\u575b\u793e\u533a","url":"http://react-china.org/","urls":{"-2":"https://discuss.reactjs.org/","-1":"http://react-china.org/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":713},{"icon":"https://p1.ssl.qhimg.com/t010e845cdf71587354.png","name":"\u4f17\u6210\u7ffb\u8bd1","desc":"\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u7ffb\u8bd1\u793e\u533a\uff0c\u6700\u61c2\u8bd1\u8005\u7684\u7ffb\u8bd1\u5e73\u53f0\uff0c\u5947\u864e360\u6700\u5927\u524d\u7aef\u56e2\u961f\u201c\u5947\u821e\u56e2\u201d\u51fa\u54c1","url":"https://zcfy.cc/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":714},{"icon":"https://developer.mozilla.org/favicon.ico","name":"MDN web docs","desc":"Mozilla \u5f00\u53d1\u8005\u793e\u533a\uff0c\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u5b66\u4e60\u5e73\u53f0\uff0c\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u6df1\u5165\u5b66\u4e60Web\u6280\u672f\u4ee5\u53ca\u80fd\u591f\u9a71\u52a8Web\u7684\u8f6f\u4ef6","url":"https://developer.mozilla.org/zh-CN/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":715},{"icon":"https://dev-to.s3.us-east-2.amazonaws.com/favicon.ico","name":"DEV Community","desc":"\u5728\u8fd9\u91cc\u7a0b\u5e8f\u5458\u5206\u4eab\u60f3\u6cd5\u5e76\u5e2e\u52a9\u5f7c\u6b64\u6210\u957f","url":"https://dev.to/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u95ee\u7b54\u793e\u533a1"],"ownVisible":false,"id":716}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6","nav":[{"icon":"https://www.v2ex.com/static/img/v2ex_192.png","name":"V2EX","desc":"\u521b\u610f\u5de5\u4f5c\u8005\u4eec\u7684\u793e\u533a","url":"https://www.v2ex.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":717},{"icon":"https://static.zhihu.com/static/favicon.ico","name":"\u77e5\u4e4e","desc":"\u77e5\u4e4e\uff0c\u4e2d\u6587\u4e92\u8054\u7f51\u6700\u5927\u7684\u77e5\u8bc6\u5206\u4eab\u548c\u793e\u4ea4\u5e73\u53f0","url":"https://www.zhihu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":718},{"icon":"https://www.jianshu.com/favicon.ico","name":"\u7b80\u4e66","desc":"\u7b80\u4e66\u662f\u4e00\u4e2a\u521b\u4f5c\u793e\u533a\uff0c\u4efb\u4f55\u4eba\u5747\u53ef\u4ee5\u5728\u5176\u4e0a\u8fdb\u884c\u521b\u4f5c","url":"https://www.jianshu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":719},{"icon":"https://images.xiaozhuanlan.com/assets/favicon-bd135558698197f509ada06695c03a4f458f0077fa476f9a4e7ba9664f3dc55f.ico","name":"\u5c0f\u4e13\u680f","desc":"\u5c0f\u4e13\u680f\u662f\u4e00\u4e2a\u4e13\u4e1a\u4eba\u58eb\u7684\u521b\u4f5c\u77e5\u8bc6\u793e\u533a\uff0c\u5728\u8fd9\u91cc\u60a8\u53ef\u4ee5\u770b\u5230\u5404\u4e2a\u9886\u57df\u6700\u4e13\u4e1a\u7684\u4e13\u680f\u548c\u89c2\u70b9","url":"https://xiaozhuanlan.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":720},{"icon":"https://news.ycombinator.com/favicon.ico","name":"Hacker News","desc":"Hacker News","url":"https://news.ycombinator.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":721},{"icon":"https://stacdn.proginn.com/favicon_new.ico","name":"\u7a0b\u5e8f\u5458\u5ba2\u6808","desc":"\u7a0b\u5e8f\u5458\u5ba2\u6808\u662f\u9886\u5148\u7684\u7a0b\u5e8f\u5458\u81ea\u7531\u5de5\u4f5c\u5e73\u53f0\uff0c\u672a\u6765\u4e92\u8054\u7f51\u4f01\u4e1a\u7528\u4eba\u65b9\u5f0f\u3002\u63d0\u4f9b\u4f18\u79c0\u7a0b\u5e8f\u5458\u4e3a\u60a8\u8fdb\u884c\u7f51\u7ad9\u5efa\u8bbe\u5236\u4f5c\u3001\u6d4b\u8bd5\u8fd0\u7ef4\u670d\u52a1\u3001\u4eba\u5de5\u667a\u80fdAI\u3001\u5927\u6570\u636e\u533a\u5757\u94fe\u3001\u8f6f\u4ef6\u5f00\u53d1\u7b49\u4f18\u8d28\u670d\u52a1","url":"https://www.proginn.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":722},{"icon":"https://fecdn4.zhaopin.cn/zq/assets/logoIcon.7a3e67.png","name":"\u804cQ","desc":"\u667a\u8054\u62db\u8058\u65d7\u4e0b\u4e13\u4e1a\u7684\u62db\u8058\u6c42\u804c\u793e\u4ea4\u95ee\u7b54\u5e73\u53f0\uff0c\u8986\u76d6\u4e86\u6c42\u804c\u3001\u62db\u8058\u3001\u804c\u4e1a\u89c4\u5212\u3001\u5347\u804c\u52a0\u85aa\u3001\u9762\u8bd5\u6280\u5de7\u3001\u5de5\u4f5c\u7ecf\u9a8c\u5206\u4eab\u7b49\u70ed\u95e8\u8bdd \u9898\uff0c\u6d89\u53ca\u5404\u79cd\u884c\u4e1a\u804c\u573a\u95ee\u9898\uff0c1.5\u4ebf\u7528\u6237\u7684\u804c\u573a\u793e\u533a","url":"https://zq.zhaopin.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":723},{"icon":"http://cdn.jandan.net/static/img/appicon.png","name":"\u714e\u86cb","desc":"\u714e\u86cb\u4ee5\u8bd1\u4ecb\u65b9\u5f0f\u4f20\u64ad\u7f51\u7edc\u65b0\u9c9c\u8d44\u8baf","url":"http://jandan.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u5176\u4ed6"],"ownVisible":false,"id":724}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4ee3\u7801\u6258\u7ba1","nav":[{"icon":"https://github.githubassets.com/favicons/favicon.svg","name":"Github","desc":"\u9762\u5411\u5f00\u6e90\u53ca\u79c1\u6709\u8f6f\u4ef6\u9879\u76ee\u7684\u6258\u7ba1\u5e73\u53f0","url":"https://github.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u4ee3\u7801\u6258\u7ba1"],"ownVisible":false,"id":725},{"icon":"https://gitee.com/favicon.ico","name":"\u7801\u4e91","desc":"\u7801\u4e91\u4e13\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u7a33\u5b9a\u3001\u9ad8\u6548\u3001\u5b89\u5168\u7684\u4e91\u7aef\u8f6f\u4ef6\u5f00\u53d1\u534f\u4f5c\u5e73\u53f0","url":"https://gitee.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u4ee3\u7801\u6258\u7ba1"],"ownVisible":false,"id":726},{"icon":"https://about.gitlab.com/ico/apple-touch-icon-57x57.png","name":"GitLab","desc":"\u7528\u4e8e\u4ed3\u5e93\u7ba1\u7406\u7cfb\u7edf\u7684\u5f00\u6e90\u9879\u76ee\uff0c\u4f7f\u7528Git\u4f5c\u4e3a\u4ee3\u7801\u7ba1\u7406\u5de5\u5177\uff0c\u5e76\u5728\u6b64\u57fa\u7840\u4e0a\u642d\u5efa\u8d77\u6765\u7684web\u670d\u52a1","url":"https://gitlab.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u4ee3\u7801\u6258\u7ba1"],"ownVisible":false,"id":727},{"icon":"https://dn-coding-net-production-static.codehub.cn/platform/favicon.ico","name":"Coding","desc":"\u9762\u5411\u5f00\u53d1\u8005\u7684\u4e91\u7aef\u5f00\u53d1\u5e73\u53f0\uff0c\u63d0\u4f9b git/svn \u4ee3\u7801\u6258\u7ba1\uff0c\u4ee3\u7801\u8d28\u91cf\u5206\u6790\uff0c\u5728\u7ebfWebIDE\uff0c\u9879\u76ee\u7ba1\u7406...","url":"https://coding.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u793e\u533a\u7ad9\u70b9","\u793e\u533a\u7ad9\u70b9","\u4ee3\u7801\u6258\u7ba1"],"ownVisible":false,"id":728}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"Design","nav":[{"title":"Design","nav":[{"title":"\u6750\u6599","nav":[{"icon":"http://www.51yuansu.com/favicon.ico","name":"\u89c5\u5143\u7d20","desc":"\u89c5\u5143\u7d20,\u4e3a\u60a8\u63d0\u4f9b\u514d\u8d39\u8bbe\u8ba1\u5143\u7d20,\u8bbe\u8ba1\u5143\u7d20\u7684\u8d44\u6e90\u7ad9","url":"http://www.51yuansu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":729},{"icon":"https://js.588ku.com/comp/public/css/iconfont/favicon.ico","name":"\u5343\u5e93\u7f51","desc":"\u81f4\u529b\u4e8e\u4e3a\u8bbe\u8ba1\u5e08\u63d0\u4f9b\u6700\u4f18\u8d28\u7684\u7d20\u6750","url":"http://588ku.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":730},{"icon":"https://huaban.com/img/touch-icon-ipad.png","name":"\u82b1\u74e3\u7f51","desc":"\u82b1\u74e3\uff0c\u966a\u4f60\u505a\u751f\u6d3b\u7684\u8bbe\u8ba1\u5e08","url":"http://huaban.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":731},{"icon":"https://cdn.dribbble.com/assets/favicon-b38525134603b9513174ec887944bde1a869eb6cd414f4d640ee48ab2a15a26b.ico","name":"Dribbble","desc":"Dribbble\u662f\u5c55\u793a\u548c\u5ba3\u4f20\uff0c\u63a8\u5e7f\uff0c\u53d1\u73b0\u548c\u63a2\u7d22\u8bbe\u8ba1\u7684\u5730\u65b9","url":"https://dribbble.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":732},{"icon":"https://669pic.com/669pic.ico","name":"\u4e07\u7d20\u7f51","desc":"\u4e07\u7d20\u7f51\u81f4\u529b\u4e8e\u4e3a\u56fd\u5185\u5404\u884c\u4e1a\u8bbe\u8ba1\u5e08\uff0c\u7f51\u7ad9\u7f16\u8f91\uff0c\u65b0\u5a92\u4f53\u5de5\u4f5c\u4eba\u5458\u63d0\u4f9b\u514d\u8d39png\u7d20\u6750\u4e0e\u80cc\u666f\u56fe\u7247\u670d\u52a1","url":"http://669pic.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":733},{"icon":"https://www.artstation.com/assets/favicon.ico","name":"ArtStation","desc":"ArtStation\u662f\u6e38\u620f\uff0c\u7535\u5f71\uff0c\u5a92\u4f53\u548c\u5a31\u4e50\u827a\u672f\u5bb6\u7684\u5c55\u793a\u5e73\u53f0\u3002\u5b83\u4f7f\u827a\u672f\u5bb6\u80fd\u591f\u4ee5\u6d41\u7545\u7684\u65b9\u5f0f\u5c55\u793a\u4ed6\u4eec\u7684\u4f5c\u54c1\u96c6\uff0c\u53d1\u73b0\u548c\u4fdd\u6301\u7075\u611f\uff0c\u5e76\u4e0e\u65b0\u7684\u673a\u4f1a\u8054\u7cfb\u8d77\u6765\u3002","url":"https://www.artstation.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":734},{"icon":"https://static.canva.com/static/images/favicon.ico","name":"Design Templates - Canva","desc":"\u8bbe\u8ba1\u6a21\u677f - Canva","url":"https://www.canva.com/templates/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":735},{"icon":"https://unsplash.com/favicon-32x32.png","name":"Unsplash","desc":"\u7f8e\u4e3d\uff0c\u514d\u8d39\u7684\u7167\u7247\u3002\u7531\u4e16\u754c\u4e0a\u6700\u6177\u6168\u7684\u6444\u5f71\u5e08\u793e\u533a\u8d60\u9001\u3002","url":"https://unsplash.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":736},{"icon":"https://www.gaoding.com/favicon.ico","name":"\u7a3f\u5b9a\u8bbe\u8ba1","desc":"\u7535\u5546\u7d20\u6750\u3001\u65b0\u5a92\u4f53\u914d\u56fe\u3001\u624b\u673a\u6d77\u62a5\u7b49\u3002","url":"https://www.gaoding.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":737},{"icon":"https://undraw.co/favicon-32x32.png","name":"unDraw","desc":"\u5e26\u6709\u5f00\u6e90\u63d2\u56fe\u7684\u8bbe\u8ba1\u9879\u76ee\uff0c\u53ef\u6ee1\u8db3\u60a8\u53ef\u4ee5\u60f3\u8c61\u548c\u521b\u5efa\u7684\u4efb\u4f55\u60f3\u6cd5\u3002 \u514d\u8d39\u4f7f\u7528\u60a8\u7684\u989c\u8272\u521b\u5efa\u6f02\u4eae\u7684\u7f51\u7ad9\uff0c\u4ea7\u54c1\u548c\u5e94\u7528\u7a0b\u5e8f","url":"https://undraw.co/illustrations","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":738},{"icon":"https://www.ui.cn/Public/img/favicon.ico","name":"UI\u4e2d\u56fd\u7528\u6237\u4f53\u9a8c\u8bbe\u8ba1\u5e73\u53f0","desc":"UI\u4e2d\u56fd\u7528\u6237\u4f53\u9a8c\u5e73\u53f0,\u4e2d\u56fd\u7528\u6237\u4f53\u9a8c\u8054\u76df\u7406\u4e8b\u5355\u4f4d\u3002\u56fd\u5185\u6781\u5177\u5f71\u54cd\u529b\u7684\u8bbe\u8ba1\u5e73\u53f0\u4e4b\u4e00\u3002\u5341\u591a\u5e74\u6765,\u643a\u624b\u4f1a\u5458150\u4e07+,\u5171\u540c\u81f4\u529b\u4e8e\u4e3a\u8bbe\u8ba1\u5e08\u4e0e\u4f01\u4e1a\u642d\u5efa\u5065\u5eb7\u7684\u8bbe\u8ba1\u751f\u6001\uff01","url":"https://www.ui.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":739},{"icon":"https://octodex.github.com/favicon.ico","name":"GitHub Octodex","desc":"\u7531GitHub Design\u56e2\u961f\u521b\u5efa\u548c\u7ef4\u62a4\u7684\u6240\u6709\u5409\u7965\u7269\u7d20\u6750","url":"https://octodex.github.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":740},{"icon":"http://collectui.com/img/favicon.ico","name":"Collect UI","desc":"\u4ece\u6bcf\u65e5ui\u6863\u6848\u5e93\u53ca\u5176\u4ed6\u6536\u96c6\u7684\u6bcf\u65e5\u7075\u611f\u3002 \u6839\u636eDribbble\u62cd\u6444\u7684\u7167\u7247\uff0c\u624b\u5de5\u6311\u9009\uff0c\u6bcf\u5929\u66f4\u65b0","url":"http://collectui.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u6750\u6599"],"ownVisible":false,"id":741}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u56fe\u6807","nav":[{"icon":"https://icons8.cn/vue-static/landings/primary-landings/favs/icons8_fav_96%C3%9796.png","name":"icons8","desc":"\u4e0b\u8f7d\u514d\u8d39\u56fe\u6807\uff0c\u97f3\u4e50\uff0c\u7d20\u6750\u56fe\u7247\uff0c\u77e2\u91cf\uff0cUX\u63d2\u56fe\u548c\u89c6\u9891\u97f3\u4e50","url":"https://icons8.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":742},{"icon":"https://www.vectorlogo.zone/favicon.ico","name":"vectorlogo","desc":"3000\u591a\u79cd\u7cbe\u7f8e\u7684SVG\u5fbd\u6807\uff0c\u975e\u5e38\u9002\u5408\u60a8\u7684\u81ea\u8ff0\u6587\u4ef6\u6216\u79ef\u5206\u9875\u9762","url":"https://www.vectorlogo.zone/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":743},{"icon":"https://www.shareicon.net/favicon.ico","name":"shareicon","desc":"\u8d85\u8fc725\u4e07\u4e2aicon\u514d\u8d39\u96c6\u5408","url":"https://www.shareicon.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":744},{"name":"SVG Logos","desc":"\u8d85\u8fc71000+SVG Logos\u96c6\u5408","url":"https://github.com/gilbarbara/logos/archive/master.zip","urls":{"-3":"https://github.com/gilbarbara/logos/tree/master/logos"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":745},{"icon":"https://www.iconfont.cn/favicon.ico","name":"iconfont","desc":"\u963f\u91cc\u5988\u5988MUX\u503e\u529b\u6253\u9020\u7684\u77e2\u91cf\u56fe\u6807\u7ba1\u7406\u3001\u4ea4\u6d41\u5e73\u53f0","url":"http://www.iconfont.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":746},{"icon":"https://iconscout.com/favicon.ico","name":"iconscount","desc":"\u514d\u8d39\u4e0b\u8f7d\u56fe\u6807\uff0c\u63d2\u56fe\u548c\u5e93\u5b58\u7167\u7247","url":"https://iconscout.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u56fe\u6807"],"ownVisible":false,"id":747}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5de5\u5177","nav":[{"icon":"https://www.chuangkit.com/favicon.ico","name":"\u521b\u5ba2\u8d34","desc":"\u4e00\u6b3e\u7b80\u5355\u6613\u7528\u3001\u529f\u80fd\u5f3a\u5927\u7684\u7ebf\u4e0a\u56fe\u5f62\u8bbe\u8ba1\u5de5\u5177","url":"https://www.chuangkit.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u5de5\u5177"],"ownVisible":false,"id":748},{"name":"Ps Play","desc":"Ps Play - \u79fb\u52a8\u8bbe\u8ba1\u96f6\u963b\u529b","url":"https://isux.tencent.com/resources/psplay/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u5de5\u5177"],"ownVisible":false,"id":749},{"icon":"https://g.alicdn.com/acca/resource/luban/image/favicon.png","name":"\u9e7f\u73ed","desc":"\u9e7f\u73ed - \u8ba9\u8bbe\u8ba1\u66f4\u7f8e\u597d(\u963f\u91cc\u51fa\u54c1)","url":"https://luban.aliyun.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u5de5\u5177"],"ownVisible":false,"id":750},{"icon":"https://www.fontspace.com/android-chrome-192x192.png?v=00Bdv4Q5g6","name":"fontspace","desc":"6500+\u514d\u8d39\u5b57\u4f53\u4e0b\u8f7d","url":"https://www.fontspace.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u5de5\u5177"],"ownVisible":false,"id":751}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u914d\u8272","nav":[{"icon":"https://colorhunt.co/img/color-hunt-icon-ios.png","name":"Color Hunt","desc":"Color Hunt\u662f\u4e00\u4e2a\u514d\u8d39\u5f00\u653e\u7684\u5e73\u53f0\uff0c\u53ef\u901a\u8fc7\u6570\u5343\u79cd\u7cbe\u9009\u7684\u65f6\u5c1a\u8c03\u8272\u677f\u6765\u6fc0\u53d1\u8272\u5f69\u7075\u611f","url":"https://colorhunt.co/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["Design","Design","\u914d\u8272"],"ownVisible":false,"id":752}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5b66\u65e0\u6b62\u5883","nav":[{"title":"\u53c2\u8003\u6587\u6863","nav":[{"title":"Docker","nav":[{"icon":"https://github.com/favicon.ico","name":"Docker \u2014 \u4ece\u5165\u95e8\u5230\u5b9e\u8df5","desc":"Docker \u2014 \u4ece\u5165\u95e8\u5230\u5b9e\u8df5","url":"https://yeasy.gitbooks.io/docker_practice/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Docker"],"ownVisible":false,"id":753},{"icon":"https://github.com/favicon.ico","name":"Docker\u5b98\u65b9\u6620\u50cf\u6587\u6863","desc":"docker-library\u4e2d\u7684Docker\u5b98\u65b9\u6620\u50cf\u6587\u6863","url":"https://github.com/docker-library/docs","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Docker"],"ownVisible":false,"id":754},{"icon":"https://avatars2.githubusercontent.com/u/7739233?s=200&v=4","name":"Docker Hub","desc":"Docker \u955c\u50cf\u4ed3\u5e93","url":"https://hub.docker.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Docker"],"ownVisible":false,"id":755},{"icon":"https://avatars2.githubusercontent.com/u/7739233?s=200&v=4","name":"Docker-Compose","desc":"\u4f7f\u7528Docker\u5b9a\u4e49\u548c\u8fd0\u884c\u591a\u5bb9\u5668\u5e94\u7528\u7a0b\u5e8f","url":"https://docs.docker.com/compose/","urls":{"-3":"https://github.com/docker/compose"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Docker"],"ownVisible":false,"id":756}],"createdAt":"2021-01-23 09:32:06"},{"title":"Git","nav":[{"icon":"https://github.com/favicon.ico","name":"git-manual","desc":"Git\u5e38\u7528\u547d\u4ee4\u53c2\u8003\u624b\u518c (\u63a8\u8350\u5b66\u4e60)","url":"https://github.com/xjh22222228/git-manual","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":757},{"icon":"https://github.com/favicon.ico","name":"GitHub Docs","desc":"github \u5b98\u65b9\u5e2e\u52a9\u6587\u6863","url":"https://help.github.com/cn","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":758},{"icon":"https://github.com/favicon.ico","name":"awesome-actions","desc":"\u7cbe\u9009\u7684GitHub\u4e0a\u5f88\u68d2\u7684Action\u5217\u8868","url":"https://github.com/sdras/awesome-actions","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":759},{"icon":"https://github.com/favicon.ico","name":"Github - Actions","desc":"Github \u5b98\u65b9Actions \u8d44\u6e90\u5217\u8868","url":"https://github.com/marketplace?type=actions","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":760},{"icon":"https://github.com/favicon.ico","name":"growing-up","desc":"\u7a0b\u5e8f\u733f\u6210\u957f\u8ba1\u5212","url":"https://github.com/mylxsw/growing-up","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","Git"],"ownVisible":false,"id":761}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u670d\u52a1\u5668","nav":[{"icon":"https://avatars0.githubusercontent.com/u/1412239?s=200&v=4","name":"nginx","desc":"nginx\u53c2\u8003\u6587\u6863","url":"https://www.docs4dev.com/docs/zh/nginx/current/reference#toolbar-title","urls":{"-2":"http://nginx.org/en/docs/","-1":"https://www.docs4dev.com/docs/zh/nginx/current/reference#toolbar-title","-3":"https://github.com/nginx/nginx"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u670d\u52a1\u5668"],"ownVisible":false,"id":762},{"icon":"https://avatars0.githubusercontent.com/u/1412239?s=200&v=4","name":"Nginx\u5f00\u53d1\u4ece\u5165\u95e8\u5230\u7cbe\u901a","desc":"Nginx\u5f00\u53d1\u4ece\u5165\u95e8\u5230\u7cbe\u901a","url":"http://tengine.taobao.org/book/index.html","urls":{"-3":"https://github.com/taobao/nginx-book"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u670d\u52a1\u5668"],"ownVisible":false,"id":763}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6570\u636e\u5e93","nav":[{"icon":"https://avatars3.githubusercontent.com/u/1529926?s=200&v=4","name":"redis","desc":"Redis \u662f\u4e00\u4e2a\u5f00\u6e90\uff08BSD\u8bb8\u53ef\uff09\u7684\uff0c\u5185\u5b58\u4e2d\u7684\u6570\u636e\u7ed3\u6784\u5b58\u50a8\u7cfb\u7edf\uff0c\u5b83\u53ef\u4ee5\u7528\u4f5c\u6570\u636e\u5e93\u3001\u7f13\u5b58\u548c\u6d88\u606f\u4e2d\u95f4\u4ef6\u3002 \u5b83\u652f\u6301\u591a\u79cd\u7c7b\u578b\u7684\u6570\u636e\u7ed3\u6784","url":"http://www.redis.cn/","urls":{"-2":"https://redis.io/","-1":"http://www.redis.cn/","-3":"https://github.com/redis/redis"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u6570\u636e\u5e93"],"ownVisible":false,"id":764},{"icon":"https://labs.mysql.com/common/themes/sakila/favicon.ico","name":"MySQL","desc":"MySQL\u6570\u636e\u5e93\u670d\u52a1\u662f\u4e00\u4e2a\u5b8c\u5168\u6258\u7ba1\u7684\u6570\u636e\u5e93\u670d\u52a1\uff0c\u53ef\u4f7f\u7528\u4e16\u754c\u4e0a\u6700\u53d7\u6b22\u8fce\u7684\u5f00\u6e90\u6570\u636e\u5e93\u6765\u90e8\u7f72\u4e91\u539f\u751f\u5e94\u7528\u7a0b\u5e8f\u3002 \u5b83\u662f\u767e\u5206\u767e\u7531MySQL\u539f\u5382\u5f00\u53d1\uff0c\u7ba1\u7406\u548c\u63d0\u4f9b\u652f\u6301","url":"https://www.mysql.com/cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u6570\u636e\u5e93"],"ownVisible":false,"id":765}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4e66\u7c4d","nav":[{"icon":"https://avatars1.githubusercontent.com/u/14127308?s=200&v=4","name":"\u514d\u8d39\u7684\u7f16\u7a0b\u4e2d\u6587\u4e66\u7c4d\u7d22\u5f15","desc":"\u514d\u8d39\u7684\u7f16\u7a0b\u4e2d\u6587\u4e66\u7c4d\u7d22\u5f15","url":"https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-zh.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u4e66\u7c4d"],"ownVisible":false,"id":766},{"icon":"https://zh.b-ok.global/apple-touch-icon.png","name":"Zlibrary","desc":"Z-Library \u9879\u76ee\u90e8\u5206. \u5168\u7403\u6700\u5927\u7684\u6570\u5b57\u56fe\u4e66\u9986, \u7535\u5b50\u4e66","url":"https://zh.b-ok.global/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u4e66\u7c4d"],"ownVisible":false,"id":767},{"name":"IT-eBOOK","desc":"IT\u7c7b\u6280\u672f\u4e66\u7c4dPDF","url":"https://github.com/asyncfun/IT-eBOOK","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u4e66\u7c4d"],"ownVisible":false,"id":768},{"icon":"https://refactoringguru.cn/favicon.ico","name":"Refactoring.Guru","desc":"22\u79cd\u5e38\u7528\u8bbe\u8ba1\u6a21\u5f0f","url":"https://refactoringguru.cn/design-patterns","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u4e66\u7c4d"],"ownVisible":false,"id":769}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u5176\u4ed6\u6587\u6863","nav":[{"icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/linux/linux.png","name":"Linux \u5e38\u7528\u547d\u4ee4\u53c2\u8003\u624b\u518c","desc":"Linux \u5e38\u7528\u547d\u4ee4\u53c2\u8003\u624b\u518c","url":"https://github.com/xjh22222228/linux-manual","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":770},{"icon":"https://github.com/favicon.ico","name":"developer-roadmap","desc":"2020\u5e74\u6210\u4e3a\u7f51\u7edc\u5f00\u53d1\u4eba\u5458\u7684\u8def\u7ebf\u56fe","url":"https://github.com/kamranahmedse/developer-roadmap","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":771},{"icon":"https://devhints.io/assets/favicon.png","name":"Devhints","desc":"WEB\u5f00\u53d1\u901f\u67e5\u8868\uff0cmysql/go/java/js/bash/react/git...","url":"https://devhints.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":772},{"icon":"https://wangchujiang.com/linux-command/img/favicon.ico","name":"linux-command","desc":"Linux\u547d\u4ee4\u5927\u5168\u641c\u7d22\u5de5\u5177\uff0c\u5185\u5bb9\u5305\u542bLinux\u547d\u4ee4\u624b\u518c\u3001\u8be6\u89e3\u3001\u5b66\u4e60\u3001\u641c\u96c6","url":"https://git.io/linux","urls":{"-3":"https://github.com/jaywcjlove/linux-command"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":773},{"icon":"https://github.com/favicon.ico","name":"learn-regex","desc":"\u6b63\u5219\u8868\u8fbe\u5f0f\u5b66\u4e60","url":"https://github.com/ziishaned/learn-regex","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":774},{"icon":"https://github.com/favicon.ico","name":"the-art-of-command-line","desc":"\u547d\u4ee4\u884c\u7684\u827a\u672f","url":"https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":775},{"icon":"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/chrome/chrome.png","name":"Peter Beverloo","desc":"Chrome\u6d4f\u89c8\u5668\u547d\u4ee4\u53c2\u6570\u53c2\u8003\u624b\u518c","url":"https://peter.sh/experiments/chromium-command-line-switches/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":776},{"icon":"https://avatars2.githubusercontent.com/u/11618545?s=200&v=4","name":"vimrc","desc":"vim\u914d\u7f6e\u53c2\u8003\u624b\u518c","url":"https://github.com/amix/vimrc","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":777},{"icon":"https://www.jenkins.io/zh/sites/default/files/jenkins_favicon.ico","name":"Jenkins","desc":"Jenkins\u662f\u5f00\u6e90CI&CD\u8f6f\u4ef6\u9886\u5bfc\u8005\uff0c \u63d0\u4f9b\u8d85\u8fc71000\u4e2a\u63d2\u4ef6\u6765\u652f\u6301\u6784\u5efa\u3001\u90e8\u7f72\u3001\u81ea\u52a8\u5316\uff0c \u6ee1\u8db3\u4efb\u4f55\u9879\u76ee\u7684\u9700\u8981","url":"https://www.jenkins.io/zh/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":778},{"icon":"https://learnxinyminutes.com/favicon.ico","name":"learnxinyminutes-docs","desc":"\u5728Y\u5206\u949f\u5185\u5b66\u4e60X","url":"https://learnxinyminutes.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":779},{"icon":"https://code.visualstudio.com/apple-touch-icon.png","name":"Vscode Docs","desc":"Vscode \u6269\u5c55\u5f00\u53d1\u6587\u6863","url":"https://liiked.github.io/VS-Code-Extension-Doc-ZH/#/","urls":{"-2":"https://code.visualstudio.com/api","-1":"https://liiked.github.io/VS-Code-Extension-Doc-ZH/#/","-3":"https://github.com/microsoft/vscode-docs"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":780},{"name":"YAML\u6559\u7a0b","desc":"YAML\u6559\u7a0b","url":"https://www.yiibai.com/yaml","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":781},{"icon":"https://www.google.com/images/icons/product/chrome-32.png","name":"Chrome Extension","desc":"\u8c37\u6b4c\u6d4f\u89c8\u5668\u6269\u5c55\u63d2\u4ef6\u5f00\u53d1\u6587\u6863","url":"https://developer.chrome.com/extensions","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u53c2\u8003\u6587\u6863","\u5176\u4ed6\u6587\u6863"],"ownVisible":false,"id":782}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u6559\u7a0b\u76f8\u5173","nav":[{"nav":[{"icon":"https://static.runoob.com/images/icon/mobile-icon.png","name":"\u83dc\u9e1f\u6559\u7a0b","desc":"\u63d0\u4f9b\u4e86\u7f16\u7a0b\u7684\u57fa\u7840\u6280\u672f\u6559\u7a0b, \u4ecb\u7ecd\u4e86HTML\u3001CSS\u3001Javascript\u3001Python\uff0cJava\uff0cRuby\uff0cC\uff0cPHP , MySQL\u7b49\u5404\u79cd\u7f16\u7a0b\u8bed\u8a00\u7684\u57fa\u7840\u77e5\u8bc6\u3002 \u540c\u65f6\u672c\u7ad9\u4e2d\u4e5f\u63d0\u4f9b\u4e86\u5927\u91cf\u7684\u5728\u7ebf\u5b9e\u4f8b\uff0c\u901a\u8fc7\u5b9e\u4f8b\uff0c\u60a8\u53ef\u4ee5\u66f4\u597d\u7684\u5b66\u4e60\u7f16\u7a0b","url":"https://www.runoob.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":783},{"icon":"https://www.imooc.com/static/img/common/touch-icon-ipad.png","name":"\u6155\u8bfe\u7f51","desc":"\u6155\u8bfe\u7f51-\u7a0b\u5e8f\u5458\u7684\u68a6\u5de5\u5382","url":"https://www.imooc.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":784},{"icon":"https://www.jikexueyuan.com/favicon.ico","name":"\u6781\u5ba2\u5b66\u9662","desc":"\u81f4\u529b\u4e8e\u201c\u8ba9IT\u5b66\u4e60\u66f4\u6709\u6548\u201d\uff0c\u4ee5\u5b9e\u6218\u4e3a\u7279\u8272\uff0c\u4e3a\u6ce8\u91cd\u81ea\u6211\u63d0\u5347\u7684IT\u4ece\u4e1a\u8005\u63d0\u4f9b\u9ad8\u54c1\u8d28\u804c\u4e1a\u6559\u80b2","url":"https://www.jikexueyuan.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":785},{"icon":"https://9.idqqimg.com/edu/edu_modules/edu-ui/img/nohash/favicon.ico","name":"\u817e\u8baf\u8bfe\u5802","desc":"\u817e\u8baf\u8bfe\u5802 - \u4e13\u4e1a\u7684\u5728\u7ebf\u6559\u80b2\u5e73\u53f0","url":"https://ke.qq.com/index.html","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":786},{"icon":"https://static2.ichunqiu.com/icq/resources/images/favicon.ico","name":"i\u6625\u79cb","desc":"\u3010i\u6625\u79cb\u3011-\u4e13\u6ce8\u7f51\u7edc\u5b89\u5168_\u4fe1\u606f\u5b89\u5168_\u767d\u5e3d\u5b50\u7684\u5728\u7ebf\u5b66\u4e60_\u6559\u80b2_\u57f9\u8bad\u5e73\u53f0","url":"https://www.ichunqiu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":787},{"icon":"http://www.shiyanbar.com/favicon.ico","name":"\u5b9e\u9a8c\u5427","desc":"\u5b9e\u9a8c\u5427\u662f\u56fd\u5185\u6700\u5927\u7684\u5728\u7ebf\u865a\u62df\u673a\u5b9e\u9a8cIT\u6559\u80b2\u5e73\u53f0","url":"http://www.shiyanbar.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":788},{"icon":"https://www.hetianlab.com/img/ico/favicon.ico","name":"\u5408\u5929\u7f51\u5b89\u5b9e\u9a8c\u5ba4","desc":"\u5408\u5929\u7f51\u5b89\u5b9e\u9a8c\u5ba4\u662f\u652f\u6301\u5728\u7ebf\u5b9e\u9a8c\u7684\u4fe1\u606f\u5b89\u5168\u5b66\u4e60\u7684\u5927\u578b\u670d\u52a1\u5e73\u53f0","url":"http://www.hetianlab.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":789},{"icon":"https://study.163.com/favicon.ico","name":"\u7f51\u6613\u4e91\u8bfe\u5802","desc":"\u7f51\u6613\u4e91\u8bfe\u5802 - \u9886\u5148\u7684\u5b9e\u7528\u6280\u80fd\u5b66\u4e60\u5e73\u53f0","url":"http://study.163.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":790},{"icon":"https://study.163.com/favicon.ico","name":"\u84dd\u6865","desc":"\u84dd\u6865\u662f\u56fd\u5185\u9886\u5148\u7684IT\u5728\u7ebf\u7f16\u7a0b\u53ca\u5728\u7ebf\u5b9e\u8bad\u5b66\u4e60\u5e73\u53f0\uff0c\u4e13\u4e1a\u5bfc\u5e08\u63d0\u4f9b\u7cbe\u9009\u7684\u5b9e\u8df5\u9879\u76ee\uff0c\u521b\u65b0\u7684\u6280\u672f\u4f7f\u5f97\u5b66\u4e60\u8005\u65e0\u9700\u914d\u7f6e\u7e41\u7410\u7684\u672c\u5730\u73af\u5883\uff0c\u968f\u65f6\u5728\u7ebf\u6d41\u7545\u4f7f\u7528","url":"https://www.lanqiao.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":791},{"icon":"https://7n.w3cschool.cn/statics/images/favicon.ico?v=2.2","name":"W3Cschool","desc":"\u7f16\u7a0b\u72ee\uff0c\u662f\u4e00\u4e2a\u4e13\u4e1a\u7684W3C\u524d\u7aef\u5f00\u53d1\u53ca\u7f16\u7a0b\u5165\u95e8\u5b66\u4e60\u5e73\u53f0","url":"https://www.w3cschool.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u6559\u7a0b\u76f8\u5173"],"ownVisible":false,"id":792}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u9762\u8bd5\u5237\u9898","nav":[{"title":"\u9762\u8bd5\u5237\u9898","nav":[{"icon":"https://static.leetcode-cn.com/cn-assets/icons/favicon-96x96.png","name":"LeetCode","desc":"\u63d0\u9ad8\u4f60\u7684\u7f16\u7801\u6280\u80fd\uff0c\u5feb\u901f\u627e\u5230\u4e00\u4efd\u5de5\u4f5c\u3002\u8fd9\u662f\u6269\u5c55\u4f60\u77e5\u8bc6\u548c\u4e3a\u4e0b\u4e00\u6b21\u9762\u8bd5\u505a\u597d\u51c6\u5907\u7684\u6700\u4f73\u5730\u65b9\u3002","url":"https://leetcode-cn.com/","urls":{"-2":"https://leetcode.com/"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":793},{"icon":"https://www.nowcoder.com/favicon.ico","name":"\u725b\u5ba2\u7f51","desc":"\u725b\u5ba2\u7f51\u662f\u4e92\u8054\u7f51\u6c42\u804c\u795e\u5668\uff0cC++\u3001Java\u3001\u524d\u7aef\u3001\u4ea7\u54c1\u3001\u8fd0\u8425\u6280\u80fd\u5b66\u4e60/\u5907\u8003/\u6c42\u804c\u9898\u5e93","url":"https://www.nowcoder.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":794},{"icon":"https://cyc-1256109796.cos.ap-guangzhou.myqcloud.com/LogoMakr_1J56bI.png","name":"CS-Notes","desc":"\u6280\u672f\u9762\u8bd5\u5fc5\u5907\u57fa\u7840\u77e5\u8bc6\u3001Leetcode\u3001\u8ba1\u7b97\u673a\u64cd\u4f5c\u7cfb\u7edf\u3001\u8ba1\u7b97\u673a\u7f51\u7edc\u3001\u7cfb\u7edf\u8bbe\u8ba1\u3001Java\u3001Python\u3001C++","url":"https://cyc2018.github.io/CS-Notes","urls":{"-3":"https://github.com/CyC2018/CS-Notes"},"createdAt":"2021-01-23 09:32:06","rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":795},{"icon":"https://visualgo.net/img/favicon.png","name":"\u6570\u636e\u7ed3\u6784\u548c\u7b97\u6cd5\u52a8\u6001\u53ef\u89c6\u5316","desc":"\u6570\u636e\u7ed3\u6784\u548c\u7b97\u6cd5\u52a8\u6001\u53ef\u89c6\u5316","url":"https://visualgo.net/zh","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":796},{"icon":"https://github.com/favicon.ico","name":"algorithm-pattern","desc":"\u7b97\u6cd5\u6a21\u677f\uff0c\u6700\u79d1\u5b66\u7684\u5237\u9898\u65b9\u5f0f\uff0c\u6700\u5feb\u901f\u7684\u5237\u9898\u8def\u5f84\uff0c\u4f60\u503c\u5f97\u62e5\u6709~","url":"https://github.com/greyireland/algorithm-pattern","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u5b66\u65e0\u6b62\u5883","\u9762\u8bd5\u5237\u9898","\u9762\u8bd5\u5237\u9898"],"ownVisible":false,"id":797}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u7f51\u7edc\u5b89\u5168","nav":[{"title":"\u7f51\u7edc\u5b89\u5168","nav":[{"title":"\u7f51\u7edc\u5b89\u5168","nav":[{"name":"\u4e4c\u4e91\u7f51\u955c\u50cf","desc":"WooYun\u662f\u4e00\u4e2a\u4f4d\u4e8e\u5382\u5546\u548c\u5b89\u5168\u7814\u7a76\u8005\u4e4b\u95f4\u7684\u6f0f\u6d1e\u62a5\u544a\u5e73\u53f0,\u6ce8\u91cd\u5c0a\u91cd,\u8fdb\u6b65,\u4e0e\u610f\u4e49","url":"http://wooyun.2xss.cc/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":798},{"icon":"https://www.anquan.org/aq_static/images/favicon/favicon.ico","name":"\u5b89\u5168\u8054\u76df","desc":"\u5b89\u5168\u8054\u76df - \u56fd\u5185\u6700\u5927\u7684\u7b2c\u4e09\u65b9\u7f51\u7edc\u5b89\u5168\u6570\u636e\u5171\u4eab\u4ea4\u6362\u5e73\u53f0","url":"https://www.anquan.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":799},{"icon":"https://www.360.cn/favicon.ico","name":"360\u7f51\u7ad9\u5b89\u5168\u68c0\u6d4b","desc":"\u4e3a\u7ad9\u957f\u514d\u8d39\u63d0\u4f9b\u4e86\u7f51\u7ad9\u6f0f\u6d1e\u68c0\u6d4b\u3001\u7f51\u7ad9\u6f0f\u6d1e\u4fee\u590d\u3001\u7f51\u7ad9\u540e\u95e8\u68c0\u6d4b\u3001\u6728\u9a6c\u67e5\u6740\uff0c\u7f51\u5740\u5b89\u5168\u67e5\u8be2\u7b49\u670d\u52a1","url":"http://webscan.360.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":800},{"icon":"https://www.2cto.com/favicon.ico","name":"\u7ea2\u9ed1\u8054\u76df","desc":"\u7ea2\u9ed1\u8054\u76df\u4f5c\u4e3a\u8001\u724c\u7684\u4fe1\u606f\u5b89\u5168\u7f51\u7ad9,\u81f4\u529b\u4e8e\u57f9\u8bad\u7535\u8111\u6280\u672f\u9ad8\u624b.\u7f51\u7ad9\u96c6\u7f51\u7edc\u5b89\u5168,\u7cfb\u7edf\u7f51\u7edc,\u7f16\u7a0b\u5f00\u53d1,\u7f51\u7ad9\u5efa\u8bbe\u7b49\u9891\u9053\u4e8e\u4e00\u4f53","url":"https://www.2cto.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":801},{"icon":"https://www.knownsec.com/static/favicon.ico","name":"\u77e5\u9053\u521b\u5b87","desc":"\u77e5\u9053\u521b\u5b87\uff0c\u7f51\u7edc\u7a7a\u95f4\u5b89\u5168\u4e13\u5bb6\uff0c\u957f\u671f\u81f4\u529b\u4e8e\u4e3a\u653f\u5e9c\u3001\u4f01\u4e1a\u7c7b\u5ba2\u6237\u63d0\u4f9b\u5b8c\u5584\u7684\u4e91\u5b89\u5168\u89e3\u51b3\u65b9\u6848","url":"https://www.knownsec.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":802},{"name":"\u5b89\u5168\u5468","desc":"\u5173\u6ce8\u5b89\u5168\u8d44\u8baf \u4e13\u6ce8\u8d44\u6e90\u5171\u4eab","url":"https://www.secz.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":803},{"icon":"https://www.hacked.com.cn/favicon.ico","name":"\u5168\u7403\u88ab\u9ed1\u7ad9\u70b9\u7edf\u8ba1\u7cfb\u7edf","desc":"\u4e3b\u8981\u901a\u8fc7\u7f51\u7edc\u641c\u96c6\u56fd\u5185\u88ab\u9ed1\u7f51\u7ad9\u4fe1\u606f\uff0c\u7edf\u8ba1\u5206\u6790\u6570\u636e\uff0c\u4e3a\u90e8\u7f72\u5b89\u5168\u578b\u7f51\u7edc\u63d0\u4f9b\u5f3a\u6709\u529b\u7684\u4f9d\u636e...","url":"http://www.hacked.com.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":804},{"icon":"https://www.secpulse.com/favicon.ico","name":"\u5b89\u5168\u8109\u640f","desc":"\u9ad8\u8d28\u91cf\u7684\u5168\u7403\u4e92\u8054\u7f51\u5b89\u5168\u5a92\u4f53\u548c\u6280\u672f\u5e73\u53f0,\u5b89\u5168\u7231\u597d\u8005\u4eec\u4ea4\u6d41\u4e0e\u5206\u4eab\u524d\u6cbf\u5b89\u5168\u6280\u672f\u7684\u6700\u4f73\u793e\u533a","url":"https://www.secpulse.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168"],"ownVisible":false,"id":805}],"createdAt":"2021-01-23 09:32:06"},{"title":"CTF","nav":[{"icon":"http://xss.xiejiahe.com/favicon.png","name":"XSS-CTF","desc":"XSS-CTF \u662f\u4e00\u4e2a\u7ec3\u4e60\u548c\u5165\u95e8\u7684XSS\u5e73\u53f0, \u6bcf\u4e00\u4f4dWEB\u5de5\u7a0b\u5e08\u90fd\u5e94\u5177\u5907\u7684\u57fa\u7840\u77e5\u8bc6\uff0c\u63d0\u9ad8\u7f51\u7edc\u5b89\u5168\u610f\u8bc6","url":"http://xss.xiejiahe.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","CTF"],"ownVisible":false,"id":806},{"name":"XSS\u6d4b\u8bd5","desc":"XSS\u5c0f\u6e38\u620f","url":"https://xss.haozi.me/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","CTF"],"ownVisible":false,"id":807},{"name":"Pasteurize","desc":"XSS CTF","url":"https://pasteurize.web.ctfcompetition.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","CTF"],"ownVisible":false,"id":808}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8f85\u52a9\u5de5\u5177","nav":[{"icon":"https://www.telerik.com/favicon.ico","name":"fiddler","desc":"Fiddler\u662f\u4e00\u4e2a\u7528\u4e8eHTTP\u8c03\u8bd5\u7684\u4ee3\u7406\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f","url":"https://www.telerik.com/fiddler","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":809},{"icon":"https://www.wireshark.org/assets/images/favicon.ico","name":"wireshark","desc":"\u662f\u4e00\u4e2a\u7f51\u7edc\u5c01\u5305\u5206\u6790\u8f6f\u4ef6\u3002\u7f51\u7edc\u5c01\u5305\u5206\u6790\u8f6f\u4ef6\u7684\u529f\u80fd\u662f\u64b7\u53d6\u7f51\u7edc\u5c01\u5305\uff0c\u5e76\u5c3d\u53ef\u80fd\u663e\u793a\u51fa\u6700\u4e3a\u8be6\u7ec6\u7684\u7f51\u7edc\u5c01\u5305\u8d44\u6599\u3002Wireshark\u4f7f\u7528WinPCAP\u4f5c\u4e3a\u63a5\u53e3\uff0c\u76f4\u63a5\u4e0e\u7f51\u5361\u8fdb\u884c\u6570\u636e\u62a5\u6587\u4ea4\u6362","url":"https://www.wireshark.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":810},{"name":"XSS\u5e73\u53f0-\u767d\u5e3d\u5b89\u5168\u6d4b\u8bd5","desc":"XSS\u5e73\u53f0\u662f\u4e00\u4e2a\u514d\u8d39\u7ed9\u767d\u5e3d\u5b89\u5168\u6d4b\u8bd5\u7684\u5e73\u53f0","url":"https://xsspt.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":811},{"name":"Security Headers","desc":"\u5feb\u901f\u8f7b\u677e\u5730\u8bc4\u4f30HTTP\u54cd\u5e94\u5934\u7684\u5b89\u5168\u6027","url":"https://securityheaders.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":812},{"name":"w9scan","desc":"\u4e00\u6b3e\u5168\u80fd\u578b\u7684\u7f51\u7ad9\u6f0f\u6d1e\u626b\u63cf\u5668\uff0c\u5185\u7f6e1200+\u63d2\u4ef6\u53ef\u5bf9\u7f51\u7ad9\u8fdb\u884c\u4e00\u6b21\u89c4\u6a21\u7684\u68c0\u6d4b\uff0c\u529f\u80fd\u5305\u62ec\u4f46\u4e0d\u9650\u4e8eweb\u6307\u7eb9\u68c0\u6d4b\u3001\u7aef\u53e3\u6307\u7eb9\u68c0\u6d4b\u3001\u7f51\u7ad9\u7ed3\u6784\u5206\u6790\u3001\u5404\u79cd\u6d41\u884c\u7684\u6f0f\u6d1e\u68c0\u6d4b\u3001\u722c\u866b\u4ee5\u53caSQL\u6ce8\u5165\u68c0\u6d4b\u3001XSS\u68c0\u6d4b...","url":"https://github.com/w-digital-scanner/w9scan","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":813},{"icon":"https://avatars0.githubusercontent.com/u/7302766?s=200&v=4","name":"xray","desc":"xray \u5b89\u5168\u8bc4\u4f30\u5de5\u5177","url":"https://github.com/chaitin/xray","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":814},{"icon":"https://www.cmd5.com/favicon.ico","name":"cmd5","desc":"md5\u5728\u7ebf\u89e3\u5bc6\u7834\u89e3,md5\u89e3\u5bc6\u52a0\u5bc6","url":"https://www.cmd5.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":815},{"icon":"https://avatars3.githubusercontent.com/u/735289?s=200&v=4","name":"sqlmap","desc":"\u81ea\u52a8SQL\u6ce8\u5165\u548c\u6570\u636e\u5e93\u63a5\u7ba1\u5de5\u5177","url":"http://sqlmap.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":816},{"icon":"https://avatars2.githubusercontent.com/u/63385?s=200&v=4","name":"nmap","desc":"nmap\u662f\u4e00\u4e2a\u7f51\u7edc\u8fde\u63a5\u7aef\u626b\u63cf\u8f6f\u4ef6\uff0c\u7528\u6765\u626b\u63cf\u7f51\u4e0a\u7535\u8111\u5f00\u653e\u7684\u7f51\u7edc\u8fde\u63a5\u7aef","url":"https://nmap.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":817},{"icon":"http://xssor.io/s/favicon.ico","name":"xssor","desc":"\u7f16\u7801/\u89e3\u7801\uff0cCodz\uff0c\u63a2\u9488","url":"http://xssor.io","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":818},{"icon":"https://phpinfo.me/favicon.ico","name":"\u5728\u7ebf\u5b50\u57df\u540d\u67e5\u8be2","desc":"\u5728\u7ebf\u5b50\u57df\u540d\u67e5\u8be2","url":"https://phpinfo.me/domain/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":819},{"name":"fuzzDicts","desc":"Web Pentesting Fuzz \u5b57\u5178","url":"https://github.com/TheKingOfDuck/fuzzDicts","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":820},{"name":"BurpSuitePro","desc":"\u514d\u8d39\u7684BurpSuitePro\u7248\u672c","url":"https://github.com/TrojanAZhen/BurpSuitePro-2.1","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u8f85\u52a9\u5de5\u5177"],"ownVisible":false,"id":821}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u77e5\u8bc6/\u6d4b\u8bd5","nav":[{"icon":"https://vulhub.org/img/favicon.ico","name":"Vulhub","desc":"\u57fa\u4e8edocker\u548cdocker-compose\u7684\u6f0f\u6d1e\u73af\u5883\u96c6\u5408...","url":"https://vulhub.org","langguage":["","","https://github.com/vulhub/vulhub"],"createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u77e5\u8bc6/\u6d4b\u8bd5"],"ownVisible":false,"id":822},{"name":"SRC-experience","desc":"\u5de5\u6b32\u5584\u5176\u4e8b\uff0c\u5fc5\u5148\u5229\u5176\u5668,\u4e00\u4e9bsrc\u6316\u6398\u5947\u6280\u6deb\u5de7\uff0c\u56fd\u5916\u65b0\u6280\u672f\u7684\u5b66\u4e60\u7f51\u7ad9\u5206\u4eab","url":"https://github.com/Wh0ale/SRC-experience","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u77e5\u8bc6/\u6d4b\u8bd5"],"ownVisible":false,"id":823},{"name":"Intranet_Penetration_Tips","desc":"\u5185\u7f51\u6e17\u900fTIPS","url":"https://github.com/Ridter/Intranet_Penetration_Tips","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u7f51\u7edc\u5b89\u5168","\u7f51\u7edc\u5b89\u5168","\u77e5\u8bc6/\u6d4b\u8bd5"],"ownVisible":false,"id":824}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u8fd0\u8425\u76f8\u5173","nav":[{"title":"\u8fd0\u8425\u76f8\u5173","nav":[{"title":"\u8fd0\u8425\u76f8\u5173","nav":[{"icon":"https://tongji.baidu.com/favicon.ico","name":"\u767e\u5ea6\u7edf\u8ba1","desc":"\u5168\u7403\u6700\u5927\u7684\u4e2d\u6587\u7f51\u7ad9\u6d41\u91cf\u5206\u6790\u5e73\u53f0\uff0c\u5e2e\u52a9\u4f01\u4e1a\u6536\u96c6\u7f51\u7ad9\u8bbf\u95ee\u6570\u636e\uff0c\u63d0\u4f9b\u6d41\u91cf\u8d8b\u52bf\u3001\u6765\u6e90\u5206\u6790...","url":"https://tongji.baidu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":825},{"icon":"https://www.umeng.com/favicon.ico","name":"CNZZ","desc":"CNZZ\u6570\u636e\u4e13\u5bb6\u662f\u5168\u7403\u6700\u5927\u7684\u4e2d\u6587\u7f51\u7ad9\u7edf\u8ba1\u5206\u6790\u5e73\u53f0\uff0c\u4e3a\u5404\u7c7b\u7f51\u7ad9\u63d0\u4f9b\u514d\u8d39\u3001\u5b89\u5168\u3001\u7a33\u5b9a","url":"http://www.cnzz.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":826},{"icon":"https://www.baidu.com/img/baidu.svg","name":"\u767e\u5ea6\u641c\u7d22\u8d44\u6e90\u5e73\u53f0","desc":"\u767e\u5ea6\u641c\u7d22\u8d44\u6e90\u5e73\u53f0_\u8ba9\u7f51\u7ad9\u66f4\u5177\u4ef7\u503c","url":"https://ziyuan.baidu.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":827},{"icon":"https://www.wjx.cn/favicon.ico","name":"\u95ee\u5377\u661f","desc":"\u514d\u8d39\u4f7f\u7528\u95ee\u5377\u661f\u521b\u5efa\u95ee\u5377\u8c03\u67e5\u3001\u5728\u7ebf\u8003\u8bd5\u3001360\u5ea6\u8bc4\u4f30\u7b49\u5e94\u7528","url":"https://www.wjx.cn/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":828},{"icon":"https://gd-assets.jinshujucdn.com/favicon.ico","name":"\u91d1\u6570\u636e","desc":"\u91d1\u6570\u636e\u662f\u4eba\u4eba\u53ef\u7528\u7684\u5728\u7ebf\u8868\u5355\u5de5\u5177\uff0c\u5e2e\u52a9\u7528\u6237\u6536\u96c6\u548c\u7ba1\u7406\u65e5\u5e38\u5de5\u4f5c\u4e2d\u7684\u6570\u636e\uff0c\u63d0\u5347\u5de5\u4f5c\u6548\u7387","url":"https://jinshuju.net/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":829},{"icon":"https://ssl.gstatic.com/analytics/20201013-01/app/static/analytics_standard_icon.png","name":"Google Analytics","desc":"Google Analytics\u662f\u4e00\u4e2a\u6536\u96c6\u6570\u636e\u5e76\u5c06\u5176\u5206\u6790\u6574\u7406\u6210\u5b9e\u7528\u62a5\u544a\u7684\u5e73\u53f0","url":"https://analytics.google.com","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":830},{"icon":"https://mta.qq.com/mta/resource/imgcache/images/favicon.ico","name":"\u817e\u8baf\u79fb\u52a8\u5206\u6790","desc":"\u817e\u8baf\u79fb\u52a8\u5206\u6790\u662f\u817e\u8baf\u6570\u636e\u4e91\uff0c\u817e\u8baf\u5927\u6570\u636e\u6218\u7565\u7684\u6838\u5fc3\u4ea7\u54c1\uff0c\u63d0\u4f9bapp\u5e94\u7528\u7684\u79fb\u52a8\u7edf\u8ba1\u5206\u6790\uff0c\u652f\u6301android/iOS\u5e73\u53f0\uff0c\u5b9e\u73b0\u7528\u6237\u753b\u50cf\u3001\u6570\u636e\u53ef\u89c6\u5316\u3001\u6570\u636e\u6316\u6398\u3001\u6e20\u9053\u6548\u679c\u5206\u6790\u7b49\u7efc\u5408\u6570\u636e\u670d\u52a1","url":"https://mta.qq.com/mta/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":831},{"icon":"https://www.google.com/favicon.ico","name":"Google Adsense","desc":"Google Adsense","url":"https://www.google.com/adsense","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173","\u8fd0\u8425\u76f8\u5173"],"ownVisible":false,"id":832}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u535a\u5ba2\u770b\u70b9","nav":[{"title":"\u535a\u5ba2\u770b\u70b9","nav":[{"title":"Team","nav":[{"icon":"https://aotu.io/img/favicon-48x48.png","name":"\u51f9\u51f8\u5b9e\u9a8c\u5ba4","desc":"O2\u9762\u5411\u591a\u7ec8\u7aef\u6280\u672f\u4f53\u7cfb\uff0c\u81f4\u529b\u4e8e\u6784\u5efa\u6c89\u6dc0\u4e0e\u5206\u4eab\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4ea4\u4e92\u3001\u9875\u9762\u5236\u4f5c\u6280\u5de7...","url":"https://aotu.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":833},{"icon":"https://imweb.io/public/icon.png","name":"\u817e\u8bafIMWeb","desc":"Web\u524d\u7aef \u817e\u8bafIMWeb \u56e2\u961f\u793e\u533a","url":"https://imweb.io/topic/tab/all","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":834},{"icon":"https://avatars1.githubusercontent.com/u/4158466?s=200&v=4","name":"\u5b57\u8282\u8df3\u52a8\u6280\u672f\u535a\u5ba2","desc":"\u5b57\u8282\u8df3\u52a8\u6280\u672f\u535a\u5ba2","url":"https://techblog.toutiao.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":835},{"icon":"https://fed.taobao.org/favicon.ico","name":"\u6dd8\u7cfb\u524d\u7aef\u56e2\u961f","desc":"\u7528\u6280\u672f\u4e3a\u4f53\u9a8c\u63d0\u4f9b\u65e0\u9650\u53ef\u80fd","url":"https://fed.taobao.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":836},{"icon":"https://avatars2.githubusercontent.com/u/11404085?s=200&v=4","name":"\u6709\u8d5e\u6280\u672f\u56e2\u961f","desc":"\u6709\u8d5e\u6280\u672f\u56e2\u961f","url":"https://tech.youzan.com/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","Team"],"ownVisible":false,"id":837}],"createdAt":"2021-01-23 09:32:06"},{"title":"\u4e2a\u4eba\u535a\u5ba2","nav":[{"name":"\u962e\u4e00\u5cf0\u7684\u7f51\u7edc\u65e5\u5fd7","icon":"http://www.ruanyifeng.com/favicon.ico","url":"http://www.ruanyifeng.com/blog/","desc":"\u962e\u4e00\u5cf0\u7684\u7f51\u7edc\u65e5\u5fd7","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","\u4e2a\u4eba\u535a\u5ba2"],"ownVisible":false,"id":838},{"icon":"https://www.xiejiahe.com/favicon-128x128.png","name":"\u8c22\u5bb6\u548c\u7684\u535a\u5ba2","desc":"WEB Developer","url":"https://www.xiejiahe.com/?from=nav2","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","\u4e2a\u4eba\u535a\u5ba2"],"ownVisible":false,"id":839},{"icon":"https://www.yinwang.org/images/Yc.jpg","name":"\u738b\u57a0\u7684\u535a\u5ba2","desc":"\u5f53\u7136\u6211\u5728\u626f\u6de1","url":"http://www.yinwang.org/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","\u4e2a\u4eba\u535a\u5ba2"],"ownVisible":false,"id":840},{"icon":"https://overreacted.io/favicon.ico","name":"Dan","desc":"react\u4f5c\u8005\u7684\u535a\u5ba2","url":"https://overreacted.io/","createdAt":"2021-01-23 09:32:06","urls":{},"rate":5,"top":false,"breadcrumb":["\u535a\u5ba2\u770b\u70b9","\u535a\u5ba2\u770b\u70b9","\u4e2a\u4eba\u535a\u5ba2"],"ownVisible":false,"id":841}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}],"createdAt":"2021-01-23 09:32:06"}]'),jg=JSON.parse('[{"name":"\u7ad9\u5185","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/logo.png","placeholder":"\u7ad9\u5185\u641c\u7d22","blocked":false,"isInner":true},{"name":"\u767e\u5ea6","url":"https://www.baidu.com/s?wd=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/baidu.svg","placeholder":"\u767e\u5ea6\u4e00\u4e0b","blocked":false,"isInner":false},{"name":"Google","url":"https://www.google.com/search?q=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/google.svg","blocked":false,"isInner":false},{"name":"\u5fc5\u5e94","url":"https://cn.bing.com/search?q=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/bing.svg","blocked":false,"isInner":false},{"name":"GitHub","url":"https://github.com/search?q=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/github.svg","placeholder":"Search GitHub","blocked":false,"isInner":false},{"name":"\u77e5\u4e4e","url":"https://www.zhihu.com/search?type=content&q=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/zhihu.svg","blocked":false,"isInner":false},{"name":"\u8c46\u74e3","url":"https://search.douban.com/book/subject_search?search_text=","icon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/douban.svg","placeholder":"\u4e66\u540d\u3001\u4f5c\u8005\u3001ISBN","blocked":false,"isInner":false}]'),$g="data/db.json",Ui={token:"token",location:"location",s_url:"s_url",isDark:"isDark",website:"website",engine:"engine",language:"language",total:"total",authCode:"AUTH_CODE"};function j0(){return window.localStorage.getItem("token")||""}function Yg(){return window.localStorage.getItem("AUTH_CODE")||""}function HD(t){return window.localStorage.setItem("AUTH_CODE",t.trim())}function BD(){const t=Yg();window.localStorage.clear(),HD(t)}const Wi=!!j0();var pa=function(t){return t[t.All=1]="All",t[t.Title=2]="Title",t[t.Desc=3]="Desc",t[t.Url=4]="Url",t[t.Current=5]="Current",t}(pa||{});function jD(t,n){return function(){return t.apply(n,arguments)}}const{toString:PX}=Object.prototype,{getPrototypeOf:Ug}=Object,$0=(t=>n=>{const e=PX.call(n);return t[e]||(t[e]=e.slice(8,-1).toLowerCase())})(Object.create(null)),Yr=t=>(t=t.toLowerCase(),n=>$0(n)===t),Y0=t=>n=>typeof n===t,{isArray:y1}=Array,Nu=Y0("undefined"),$D=Yr("ArrayBuffer"),VX=Y0("string"),_r=Y0("function"),YD=Y0("number"),U0=t=>null!==t&&"object"==typeof t,W0=t=>{if("object"!==$0(t))return!1;const n=Ug(t);return!(null!==n&&n!==Object.prototype&&null!==Object.getPrototypeOf(n)||Symbol.toStringTag in t||Symbol.iterator in t)},RX=Yr("Date"),LX=Yr("File"),HX=Yr("Blob"),BX=Yr("FileList"),YX=Yr("URLSearchParams"),[UX,WX,GX,qX]=["ReadableStream","Request","Response","Headers"].map(Yr);function Vu(t,n,{allOwnKeys:e=!1}={}){if(null===t||typeof t>"u")return;let i,o;if("object"!=typeof t&&(t=[t]),y1(t))for(i=0,o=t.length;i0;)if(o=e[i],n===o.toLowerCase())return o;return null}const WD=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,GD=t=>!Nu(t)&&t!==WD,nee=(t=>n=>t&&n instanceof t)(typeof Uint8Array<"u"&&Ug(Uint8Array)),ree=Yr("HTMLFormElement"),qD=(({hasOwnProperty:t})=>(n,e)=>t.call(n,e))(Object.prototype),aee=Yr("RegExp"),KD=(t,n)=>{const e=Object.getOwnPropertyDescriptors(t),i={};Vu(e,(o,r)=>{let s;!1!==(s=n(o,r,t))&&(i[r]=s||o)}),Object.defineProperties(t,i)},Gg="abcdefghijklmnopqrstuvwxyz",JD="0123456789",ZD={DIGIT:JD,ALPHA:Gg,ALPHA_DIGIT:Gg+Gg.toUpperCase()+JD},mee=Yr("AsyncFunction"),J={isArray:y1,isArrayBuffer:$D,isBuffer:function IX(t){return null!==t&&!Nu(t)&&null!==t.constructor&&!Nu(t.constructor)&&_r(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let n;return t&&("function"==typeof FormData&&t instanceof FormData||_r(t.append)&&("formdata"===(n=$0(t))||"object"===n&&_r(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function NX(t){let n;return n=typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&$D(t.buffer),n},isString:VX,isNumber:YD,isBoolean:t=>!0===t||!1===t,isObject:U0,isPlainObject:W0,isReadableStream:UX,isRequest:WX,isResponse:GX,isHeaders:qX,isUndefined:Nu,isDate:RX,isFile:LX,isBlob:HX,isRegExp:aee,isFunction:_r,isStream:t=>U0(t)&&_r(t.pipe),isURLSearchParams:YX,isTypedArray:nee,isFileList:BX,forEach:Vu,merge:function Wg(){const{caseless:t}=GD(this)&&this||{},n={},e=(i,o)=>{const r=t&&UD(n,o)||o;n[r]=W0(n[r])&&W0(i)?Wg(n[r],i):W0(i)?Wg({},i):y1(i)?i.slice():i};for(let i=0,o=arguments.length;i(Vu(n,(o,r)=>{t[r]=e&&_r(o)?jD(o,e):o},{allOwnKeys:i}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,n,e,i)=>{t.prototype=Object.create(n.prototype,i),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:n.prototype}),e&&Object.assign(t.prototype,e)},toFlatObject:(t,n,e,i)=>{let o,r,s;const a={};if(n=n||{},null==t)return n;do{for(o=Object.getOwnPropertyNames(t),r=o.length;r-- >0;)s=o[r],(!i||i(s,t,n))&&!a[s]&&(n[s]=t[s],a[s]=!0);t=!1!==e&&Ug(t)}while(t&&(!e||e(t,n))&&t!==Object.prototype);return n},kindOf:$0,kindOfTest:Yr,endsWith:(t,n,e)=>{t=String(t),(void 0===e||e>t.length)&&(e=t.length);const i=t.indexOf(n,e-=n.length);return-1!==i&&i===e},toArray:t=>{if(!t)return null;if(y1(t))return t;let n=t.length;if(!YD(n))return null;const e=new Array(n);for(;n-- >0;)e[n]=t[n];return e},forEachEntry:(t,n)=>{const i=(t&&t[Symbol.iterator]).call(t);let o;for(;(o=i.next())&&!o.done;){const r=o.value;n.call(t,r[0],r[1])}},matchAll:(t,n)=>{let e;const i=[];for(;null!==(e=t.exec(n));)i.push(e);return i},isHTMLForm:ree,hasOwnProperty:qD,hasOwnProp:qD,reduceDescriptors:KD,freezeMethods:t=>{KD(t,(n,e)=>{if(_r(t)&&-1!==["arguments","caller","callee"].indexOf(e))return!1;if(_r(t[e])){if(n.enumerable=!1,"writable"in n)return void(n.writable=!1);n.set||(n.set=()=>{throw Error("Can not rewrite read-only method '"+e+"'")})}})},toObjectSet:(t,n)=>{const e={},i=o=>{o.forEach(r=>{e[r]=!0})};return y1(t)?i(t):i(String(t).split(n)),e},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,i,o){return i.toUpperCase()+o}),noop:()=>{},toFiniteNumber:(t,n)=>null!=t&&Number.isFinite(t=+t)?t:n,findKey:UD,global:WD,isContextDefined:GD,ALPHABET:ZD,generateString:(t=16,n=ZD.ALPHA_DIGIT)=>{let e="";const{length:i}=n;for(;t--;)e+=n[Math.random()*i|0];return e},isSpecCompliantForm:function pee(t){return!!(t&&_r(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const n=new Array(10),e=(i,o)=>{if(U0(i)){if(n.indexOf(i)>=0)return;if(!("toJSON"in i)){n[o]=i;const r=y1(i)?[]:{};return Vu(i,(s,a)=>{const c=e(s,o+1);!Nu(c)&&(r[a]=c)}),n[o]=void 0,r}}return i};return e(t,0)},isAsyncFn:mee,isThenable:t=>t&&(U0(t)||_r(t))&&_r(t.then)&&_r(t.catch)};function C1(t,n,e,i,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",n&&(this.code=n),e&&(this.config=e),i&&(this.request=i),o&&(this.response=o)}J.inherits(C1,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:J.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const QD=C1.prototype,XD={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{XD[t]={value:t}}),Object.defineProperties(C1,XD),Object.defineProperty(QD,"isAxiosError",{value:!0}),C1.from=(t,n,e,i,o,r)=>{const s=Object.create(QD);return J.toFlatObject(t,s,function(c){return c!==Error.prototype},a=>"isAxiosError"!==a),C1.call(s,t.message,n,e,i,o),s.cause=t,s.name=t.name,r&&Object.assign(s,r),s};const Ht=C1;function qg(t){return J.isPlainObject(t)||J.isArray(t)}function tx(t){return J.endsWith(t,"[]")?t.slice(0,-2):t}function nx(t,n,e){return t?t.concat(n).map(function(o,r){return o=tx(o),!e&&r?"["+o+"]":o}).join(e?".":""):n}const vee=J.toFlatObject(J,{},null,function(n){return/^is[A-Z]/.test(n)}),G0=function _ee(t,n,e){if(!J.isObject(t))throw new TypeError("target must be an object");n=n||new FormData;const i=(e=J.toFlatObject(e,{metaTokens:!0,dots:!1,indexes:!1},!1,function(z,E){return!J.isUndefined(E[z])})).metaTokens,o=e.visitor||u,r=e.dots,s=e.indexes,c=(e.Blob||typeof Blob<"u"&&Blob)&&J.isSpecCompliantForm(n);if(!J.isFunction(o))throw new TypeError("visitor must be a function");function l(y){if(null===y)return"";if(J.isDate(y))return y.toISOString();if(!c&&J.isBlob(y))throw new Ht("Blob is not supported. Use a Buffer instead.");return J.isArrayBuffer(y)||J.isTypedArray(y)?c&&"function"==typeof Blob?new Blob([y]):Buffer.from(y):y}function u(y,z,E){let k=y;if(y&&!E&&"object"==typeof y)if(J.endsWith(z,"{}"))z=i?z:z.slice(0,-2),y=JSON.stringify(y);else if(J.isArray(y)&&function gee(t){return J.isArray(t)&&!t.some(qg)}(y)||(J.isFileList(y)||J.endsWith(z,"[]"))&&(k=J.toArray(y)))return z=tx(z),k.forEach(function(ie,pe){!J.isUndefined(ie)&&null!==ie&&n.append(!0===s?nx([z],pe,r):null===s?z:z+"[]",l(ie))}),!1;return!!qg(y)||(n.append(nx(E,z,r),l(y)),!1)}const p=[],_=Object.assign(vee,{defaultVisitor:u,convertValue:l,isVisitable:qg});if(!J.isObject(t))throw new TypeError("data must be an object");return function b(y,z){if(!J.isUndefined(y)){if(-1!==p.indexOf(y))throw Error("Circular reference detected in "+z.join("."));p.push(y),J.forEach(y,function(k,A){!0===(!(J.isUndefined(k)||null===k)&&o.call(n,k,J.isString(A)?A.trim():A,z,_))&&b(k,z?z.concat(A):[A])}),p.pop()}}(t),n};function ix(t){const n={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(i){return n[i]})}function ox(t,n){this._pairs=[],t&&G0(t,this,n)}const rx=ox.prototype;rx.append=function(n,e){this._pairs.push([n,e])},rx.toString=function(n){const e=n?function(i){return n.call(this,i,ix)}:ix;return this._pairs.map(function(o){return e(o[0])+"="+e(o[1])},"").join("&")};const sx=ox;function bee(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ax(t,n,e){if(!n)return t;const i=e&&e.encode||bee,o=e&&e.serialize;let r;if(r=o?o(n,e):J.isURLSearchParams(n)?n.toString():new sx(n,e).toString(i),r){const s=t.indexOf("#");-1!==s&&(t=t.slice(0,s)),t+=(-1===t.indexOf("?")?"?":"&")+r}return t}const cx=class yee{constructor(){this.handlers=[]}use(n,e,i){return this.handlers.push({fulfilled:n,rejected:e,synchronous:!!i&&i.synchronous,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(n){this.handlers[n]&&(this.handlers[n]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(n){J.forEach(this.handlers,function(i){null!==i&&n(i)})}},lx={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Cee={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:sx,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},Kg=typeof window<"u"&&typeof document<"u",wee=(t=typeof navigator<"u"&&navigator.product,Kg&&["ReactNative","NativeScript","NS"].indexOf(t)<0),zee=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,See=Kg&&window.location.href||"http://localhost",Ur={...X,...Cee};var t;const dx=function xee(t){function n(e,i,o,r){let s=e[r++];if("__proto__"===s)return!0;const a=Number.isFinite(+s),c=r>=e.length;return s=!s&&J.isArray(o)?o.length:s,c?(o[s]=J.hasOwnProp(o,s)?[o[s],i]:i,!a):((!o[s]||!J.isObject(o[s]))&&(o[s]=[]),n(e,i,o[s],r)&&J.isArray(o[s])&&(o[s]=function Dee(t){const n={},e=Object.keys(t);let i;const o=e.length;let r;for(i=0;i{n(function Mee(t){return J.matchAll(/\w+|\[(\w*)]/g,t).map(n=>"[]"===n[0]?"":n[1]||n[0])}(i),o,e,0)}),e}return null},Jg={transitional:lx,adapter:["xhr","http","fetch"],transformRequest:[function(n,e){const i=e.getContentType()||"",o=i.indexOf("application/json")>-1,r=J.isObject(n);if(r&&J.isHTMLForm(n)&&(n=new FormData(n)),J.isFormData(n))return o?JSON.stringify(dx(n)):n;if(J.isArrayBuffer(n)||J.isBuffer(n)||J.isStream(n)||J.isFile(n)||J.isBlob(n)||J.isReadableStream(n))return n;if(J.isArrayBufferView(n))return n.buffer;if(J.isURLSearchParams(n))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),n.toString();let a;if(r){if(i.indexOf("application/x-www-form-urlencoded")>-1)return function Tee(t,n){return G0(t,new Ur.classes.URLSearchParams,Object.assign({visitor:function(e,i,o,r){return Ur.isNode&&J.isBuffer(e)?(this.append(i,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},n))}(n,this.formSerializer).toString();if((a=J.isFileList(n))||i.indexOf("multipart/form-data")>-1){const c=this.env&&this.env.FormData;return G0(a?{"files[]":n}:n,c&&new c,this.formSerializer)}}return r||o?(e.setContentType("application/json",!1),function Eee(t,n,e){if(J.isString(t))try{return(n||JSON.parse)(t),J.trim(t)}catch(i){if("SyntaxError"!==i.name)throw i}return(e||JSON.stringify)(t)}(n)):n}],transformResponse:[function(n){const e=this.transitional||Jg.transitional,i=e&&e.forcedJSONParsing,o="json"===this.responseType;if(J.isResponse(n)||J.isReadableStream(n))return n;if(n&&J.isString(n)&&(i&&!this.responseType||o)){const s=!(e&&e.silentJSONParsing)&&o;try{return JSON.parse(n)}catch(a){if(s)throw"SyntaxError"===a.name?Ht.from(a,Ht.ERR_BAD_RESPONSE,this,null,this.response):a}}return n}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ur.classes.FormData,Blob:Ur.classes.Blob},validateStatus:function(n){return n>=200&&n<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};J.forEach(["delete","get","head","post","put","patch"],t=>{Jg.headers[t]={}});const Zg=Jg,kee=J.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ux=Symbol("internals");function Fu(t){return t&&String(t).trim().toLowerCase()}function q0(t){return!1===t||null==t?t:J.isArray(t)?t.map(q0):String(t)}function Qg(t,n,e,i,o){if(J.isFunction(i))return i.call(this,n,e);if(o&&(n=e),J.isString(n)){if(J.isString(i))return-1!==n.indexOf(i);if(J.isRegExp(i))return i.test(n)}}class K0{constructor(n){n&&this.set(n)}set(n,e,i){const o=this;function r(a,c,l){const u=Fu(c);if(!u)throw new Error("header name must be a non-empty string");const p=J.findKey(o,u);(!p||void 0===o[p]||!0===l||void 0===l&&!1!==o[p])&&(o[p||c]=q0(a))}const s=(a,c)=>J.forEach(a,(l,u)=>r(l,u,c));if(J.isPlainObject(n)||n instanceof this.constructor)s(n,e);else if(J.isString(n)&&(n=n.trim())&&!(t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))(n))s((t=>{const n={};let e,i,o;return t&&t.split("\n").forEach(function(s){o=s.indexOf(":"),e=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!e||n[e]&&kee[e])&&("set-cookie"===e?n[e]?n[e].push(i):n[e]=[i]:n[e]=n[e]?n[e]+", "+i:i)}),n})(n),e);else if(J.isHeaders(n))for(const[a,c]of n.entries())r(c,a,i);else null!=n&&r(e,n,i);return this}get(n,e){if(n=Fu(n)){const i=J.findKey(this,n);if(i){const o=this[i];if(!e)return o;if(!0===e)return function Oee(t){const n=Object.create(null),e=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=e.exec(t);)n[i[1]]=i[2];return n}(o);if(J.isFunction(e))return e.call(this,o,i);if(J.isRegExp(e))return e.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(n,e){if(n=Fu(n)){const i=J.findKey(this,n);return!(!i||void 0===this[i]||e&&!Qg(0,this[i],i,e))}return!1}delete(n,e){const i=this;let o=!1;function r(s){if(s=Fu(s)){const a=J.findKey(i,s);a&&(!e||Qg(0,i[a],a,e))&&(delete i[a],o=!0)}}return J.isArray(n)?n.forEach(r):r(n),o}clear(n){const e=Object.keys(this);let i=e.length,o=!1;for(;i--;){const r=e[i];(!n||Qg(0,this[r],r,n,!0))&&(delete this[r],o=!0)}return o}normalize(n){const e=this,i={};return J.forEach(this,(o,r)=>{const s=J.findKey(i,r);if(s)return e[s]=q0(o),void delete e[r];const a=n?function Iee(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(n,e,i)=>e.toUpperCase()+i)}(r):String(r).trim();a!==r&&delete e[r],e[a]=q0(o),i[a]=!0}),this}concat(...n){return this.constructor.concat(this,...n)}toJSON(n){const e=Object.create(null);return J.forEach(this,(i,o)=>{null!=i&&!1!==i&&(e[o]=n&&J.isArray(i)?i.join(", "):i)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([n,e])=>n+": "+e).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(n){return n instanceof this?n:new this(n)}static concat(n,...e){const i=new this(n);return e.forEach(o=>i.set(o)),i}static accessor(n){const i=(this[ux]=this[ux]={accessors:{}}).accessors,o=this.prototype;function r(s){const a=Fu(s);i[a]||(function Nee(t,n){const e=J.toCamelCase(" "+n);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+e,{value:function(o,r,s){return this[i].call(this,n,o,r,s)},configurable:!0})})}(o,s),i[a]=!0)}return J.isArray(n)?n.forEach(r):r(n),this}}K0.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),J.reduceDescriptors(K0.prototype,({value:t},n)=>{let e=n[0].toUpperCase()+n.slice(1);return{get:()=>t,set(i){this[e]=i}}}),J.freezeMethods(K0);const Wr=K0;function Xg(t,n){const e=this||Zg,i=n||e,o=Wr.from(i.headers);let r=i.data;return J.forEach(t,function(a){r=a.call(e,r,o.normalize(),n?n.status:void 0)}),o.normalize(),r}function hx(t){return!(!t||!t.__CANCEL__)}function px(t,n,e){Ht.call(this,t??"canceled",Ht.ERR_CANCELED,n,e),this.name="CanceledError"}J.inherits(px,Ht,{__CANCEL__:!0});const Ru=px;function fx(t,n,e){const i=e.config.validateStatus;e.status&&i&&!i(e.status)?n(new Ht("Request failed with status code "+e.status,[Ht.ERR_BAD_REQUEST,Ht.ERR_BAD_RESPONSE][Math.floor(e.status/100)-4],e.config,e.request,e)):t(e)}const J0=(t,n,e=3)=>{let i=0;const o=function Fee(t,n){t=t||10;const e=new Array(t),i=new Array(t);let s,o=0,r=0;return n=void 0!==n?n:1e3,function(c){const l=Date.now(),u=i[r];s||(s=l),e[o]=c,i[o]=l;let p=r,_=0;for(;p!==o;)_+=e[p++],p%=t;if(o=(o+1)%t,o===r&&(r=(r+1)%t),l-si)return o&&(clearTimeout(o),o=null),e=a,t.apply(null,arguments);o||(o=setTimeout(()=>(o=null,e=Date.now(),t.apply(null,arguments)),i-(a-e)))}}(r=>{const s=r.loaded,a=r.lengthComputable?r.total:void 0,c=s-i,l=o(c);i=s;const p={loaded:s,total:a,progress:a?s/a:void 0,bytes:c,rate:l||void 0,estimated:l&&a&&s<=a?(a-s)/l:void 0,event:r,lengthComputable:null!=a};p[n?"download":"upload"]=!0,t(p)},e)},Bee=Ur.hasStandardBrowserEnv?function(){const n=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let i;function o(r){let s=r;return n&&(e.setAttribute("href",s),s=e.href),e.setAttribute("href",s),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return i=o(window.location.href),function(s){const a=J.isString(s)?o(s):s;return a.protocol===i.protocol&&a.host===i.host}}():function(){return function(){return!0}}(),jee=Ur.hasStandardBrowserEnv?{write(t,n,e,i,o,r){const s=[t+"="+encodeURIComponent(n)];J.isNumber(e)&&s.push("expires="+new Date(e).toGMTString()),J.isString(i)&&s.push("path="+i),J.isString(o)&&s.push("domain="+o),!0===r&&s.push("secure"),document.cookie=s.join("; ")},read(t){const n=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function mx(t,n){return t&&!function $ee(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}(n)?function Yee(t,n){return n?t.replace(/\/?\/$/,"")+"/"+n.replace(/^\/+/,""):t}(t,n):n}const gx=t=>t instanceof Wr?{...t}:t;function mc(t,n){n=n||{};const e={};function i(l,u,p){return J.isPlainObject(l)&&J.isPlainObject(u)?J.merge.call({caseless:p},l,u):J.isPlainObject(u)?J.merge({},u):J.isArray(u)?u.slice():u}function o(l,u,p){return J.isUndefined(u)?J.isUndefined(l)?void 0:i(void 0,l,p):i(l,u,p)}function r(l,u){if(!J.isUndefined(u))return i(void 0,u)}function s(l,u){return J.isUndefined(u)?J.isUndefined(l)?void 0:i(void 0,l):i(void 0,u)}function a(l,u,p){return p in n?i(l,u):p in t?i(void 0,l):void 0}const c={url:r,method:r,data:r,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(l,u)=>o(gx(l),gx(u),!0)};return J.forEach(Object.keys(Object.assign({},t,n)),function(u){const p=c[u]||o,_=p(t[u],n[u],u);J.isUndefined(_)&&p!==a||(e[u]=_)}),e}const vx=t=>{const n=mc({},t);let c,{data:e,withXSRFToken:i,xsrfHeaderName:o,xsrfCookieName:r,headers:s,auth:a}=n;if(n.headers=s=Wr.from(s),n.url=ax(mx(n.baseURL,n.url),t.params,t.paramsSerializer),a&&s.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),J.isFormData(e))if(Ur.hasStandardBrowserEnv||Ur.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(c=s.getContentType())){const[l,...u]=c?c.split(";").map(p=>p.trim()).filter(Boolean):[];s.setContentType([l||"multipart/form-data",...u].join("; "))}if(Ur.hasStandardBrowserEnv&&(i&&J.isFunction(i)&&(i=i(n)),i||!1!==i&&Bee(n.url))){const l=o&&r&&jee.read(r);l&&s.set(o,l)}return n},Uee=typeof XMLHttpRequest<"u"&&function(t){return new Promise(function(e,i){const o=vx(t);let r=o.data;const s=Wr.from(o.headers).normalize();let c,{responseType:a}=o;function l(){o.cancelToken&&o.cancelToken.unsubscribe(c),o.signal&&o.signal.removeEventListener("abort",c)}let u=new XMLHttpRequest;function p(){if(!u)return;const b=Wr.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());fx(function(k){e(k),l()},function(k){i(k),l()},{data:a&&"text"!==a&&"json"!==a?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:b,config:t,request:u}),u=null}u.open(o.method.toUpperCase(),o.url,!0),u.timeout=o.timeout,"onloadend"in u?u.onloadend=p:u.onreadystatechange=function(){!u||4!==u.readyState||0===u.status&&(!u.responseURL||0!==u.responseURL.indexOf("file:"))||setTimeout(p)},u.onabort=function(){u&&(i(new Ht("Request aborted",Ht.ECONNABORTED,o,u)),u=null)},u.onerror=function(){i(new Ht("Network Error",Ht.ERR_NETWORK,o,u)),u=null},u.ontimeout=function(){let y=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";o.timeoutErrorMessage&&(y=o.timeoutErrorMessage),i(new Ht(y,(o.transitional||lx).clarifyTimeoutError?Ht.ETIMEDOUT:Ht.ECONNABORTED,o,u)),u=null},void 0===r&&s.setContentType(null),"setRequestHeader"in u&&J.forEach(s.toJSON(),function(y,z){u.setRequestHeader(z,y)}),J.isUndefined(o.withCredentials)||(u.withCredentials=!!o.withCredentials),a&&"json"!==a&&(u.responseType=o.responseType),"function"==typeof o.onDownloadProgress&&u.addEventListener("progress",J0(o.onDownloadProgress,!0)),"function"==typeof o.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",J0(o.onUploadProgress)),(o.cancelToken||o.signal)&&(c=b=>{u&&(i(!b||b.type?new Ru(null,t,u):b),u.abort(),u=null)},o.cancelToken&&o.cancelToken.subscribe(c),o.signal&&(o.signal.aborted?c():o.signal.addEventListener("abort",c)));const _=function Vee(t){const n=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return n&&n[1]||""}(o.url);_&&-1===Ur.protocols.indexOf(_)?i(new Ht("Unsupported protocol "+_+":",Ht.ERR_BAD_REQUEST,t)):u.send(r||null)})},Wee=(t,n)=>{let i,e=new AbortController;const o=function(c){if(!i){i=!0,s();const l=c instanceof Error?c:this.reason;e.abort(l instanceof Ht?l:new Ru(l instanceof Error?l.message:l))}};let r=n&&setTimeout(()=>{o(new Ht(`timeout ${n} of ms exceeded`,Ht.ETIMEDOUT))},n);const s=()=>{t&&(r&&clearTimeout(r),r=null,t.forEach(c=>{c&&(c.removeEventListener?c.removeEventListener("abort",o):c.unsubscribe(o))}),t=null)};t.forEach(c=>c&&c.addEventListener&&c.addEventListener("abort",o));const{signal:a}=e;return a.unsubscribe=s,[a,()=>{r&&clearTimeout(r),r=null}]};function e5(t,n){this.v=t,this.k=n}function Lu(t){var n,e;function i(r,s){try{var a=t[r](s),c=a.value,l=c instanceof e5;Promise.resolve(l?c.v:c).then(function(u){if(l){var p="return"===r?"return":"next";if(!c.k||u.done)return i(p,u);u=t[p](u).value}o(a.done?"return":"normal",u)},function(u){i("throw",u)})}catch(u){o("throw",u)}}function o(r,s){switch(r){case"return":n.resolve({value:s,done:!0});break;case"throw":n.reject(s);break;default:n.resolve({value:s,done:!1})}(n=n.next)?i(n.key,n.arg):e=null}this._invoke=function(r,s){return new Promise(function(a,c){var l={key:r,arg:s,resolve:a,reject:c,next:null};e?e=e.next=l:(n=e=l,i(r,s))})},"function"!=typeof t.return&&(this.return=void 0)}function Z0(t){return new e5(t,0)}function qee(t){var n={},e=!1;function i(o,r){return e=!0,{done:!1,value:new e5(r=new Promise(function(s){s(t[o](r))}),1)}}return n[typeof Symbol<"u"&&Symbol.iterator||"@@iterator"]=function(){return this},n.next=function(o){return e?(e=!1,o):i("next",o)},"function"==typeof t.throw&&(n.throw=function(o){if(e)throw e=!1,o;return i("throw",o)}),"function"==typeof t.return&&(n.return=function(o){return e?(e=!1,o):i("return",o)}),n}function _x(t){var n,e,i,o=2;for(typeof Symbol<"u"&&(e=Symbol.asyncIterator,i=Symbol.iterator);o--;){if(e&&null!=(n=t[e]))return n.call(t);if(i&&null!=(n=t[i]))return new Q0(n.call(t));e="@@asyncIterator",i="@@iterator"}throw new TypeError("Object is not async iterable")}function Q0(t){function n(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var i=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:i}})}return(Q0=function(i){this.s=i,this.n=i.next}).prototype={s:null,n:null,next:function(){return n(this.n.apply(this.s,arguments))},return:function(i){var o=this.s.return;return void 0===o?Promise.resolve({value:i,done:!0}):n(o.apply(this.s,arguments))},throw:function(i){var o=this.s.return;return void 0===o?Promise.reject(i):n(o.apply(this.s,arguments))}},new Q0(t)}Lu.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Lu.prototype.next=function(t){return this._invoke("next",t)},Lu.prototype.throw=function(t){return this._invoke("throw",t)},Lu.prototype.return=function(t){return this._invoke("return",t)};const Kee=function*(t,n){let e=t.byteLength;if(!n||e{const r=Jee(t,n,o);let s=0;return new ReadableStream({type:"bytes",pull:a=>Di(function*(){const{done:c,value:l}=yield r.next();if(c)return a.close(),void i();e&&e(s+=l.byteLength),a.enqueue(new Uint8Array(l))})(),cancel:a=>(i(a),r.return())},{highWaterMark:2})},yx=(t,n)=>{const e=null!=t;return i=>setTimeout(()=>n({lengthComputable:e,total:t,loaded:i}))},X0="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,Cx=X0&&"function"==typeof ReadableStream,t5=X0&&("function"==typeof TextEncoder?(t=>n=>t.encode(n))(new TextEncoder):function(){var t=Di(function*(n){return new Uint8Array(yield new Response(n).arrayBuffer())});return function(n){return t.apply(this,arguments)}}()),Zee=Cx&&(()=>{let t=!1;const n=new Request(Ur.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!n})(),n5=Cx&&!!(()=>{try{return J.isReadableStream(new Response("").body)}catch{}})(),e3={stream:n5&&(t=>t.body)};X0&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(n=>{!e3[n]&&(e3[n]=J.isFunction(t[n])?e=>e[n]():(e,i)=>{throw new Ht(`Response type '${n}' is not supported`,Ht.ERR_NOT_SUPPORT,i)})})})(new Response);const Qee=function(){var t=Di(function*(n){return null==n?0:J.isBlob(n)?n.size:J.isSpecCompliantForm(n)?(yield new Request(n).arrayBuffer()).byteLength:J.isArrayBufferView(n)?n.byteLength:(J.isURLSearchParams(n)&&(n+=""),J.isString(n)?(yield t5(n)).byteLength:void 0)});return function(e){return t.apply(this,arguments)}}(),Xee=function(){var t=Di(function*(n,e){return J.toFiniteNumber(n.getContentLength())??Qee(e)});return function(e,i){return t.apply(this,arguments)}}(),i5={http:null,xhr:Uee,fetch:X0&&function(){var t=Di(function*(n){let{url:e,method:i,data:o,signal:r,cancelToken:s,timeout:a,onDownloadProgress:c,onUploadProgress:l,responseType:u,headers:p,withCredentials:_="same-origin",fetchOptions:b}=vx(n);u=u?(u+"").toLowerCase():"text";let E,k,[y,z]=r||s||a?Wee([r,s],a):[];const A=()=>{!E&&setTimeout(()=>{y&&y.unsubscribe()}),E=!0};let ie;try{if(l&&Zee&&"get"!==i&&"head"!==i&&0!==(ie=yield Xee(p,o))){let Bt,dt=new Request(e,{method:"POST",body:o,duplex:"half"});J.isFormData(o)&&(Bt=dt.headers.get("content-type"))&&p.setContentType(Bt),dt.body&&(o=bx(dt.body,65536,yx(ie,J0(l)),null,t5))}J.isString(_)||(_=_?"cors":"omit"),k=new Request(e,{...b,signal:y,method:i.toUpperCase(),headers:p.normalize().toJSON(),body:o,duplex:"half",withCredentials:_});let pe=yield fetch(k);const xe=n5&&("stream"===u||"response"===u);if(n5&&(c||xe)){const dt={};["status","statusText","headers"].forEach(zt=>{dt[zt]=pe[zt]});const Bt=J.toFiniteNumber(pe.headers.get("content-length"));pe=new Response(bx(pe.body,65536,c&&yx(Bt,J0(c,!0)),xe&&A,t5),dt)}u=u||"text";let Ge=yield e3[J.findKey(e3,u)||"text"](pe,n);return!xe&&A(),z&&z(),yield new Promise((dt,Bt)=>{fx(dt,Bt,{data:Ge,headers:Wr.from(pe.headers),status:pe.status,statusText:pe.statusText,config:n,request:k})})}catch(pe){throw A(),pe&&"TypeError"===pe.name&&/fetch/i.test(pe.message)?Object.assign(new Ht("Network Error",Ht.ERR_NETWORK,n,k),{cause:pe.cause||pe}):Ht.from(pe,pe&&pe.code,n,k)}});return function(n){return t.apply(this,arguments)}}()};J.forEach(i5,(t,n)=>{if(t){try{Object.defineProperty(t,"name",{value:n})}catch{}Object.defineProperty(t,"adapterName",{value:n})}});const zx=t=>`- ${t}`,ete=t=>J.isFunction(t)||null===t||!1===t,Sx_getAdapter=t=>{t=J.isArray(t)?t:[t];const{length:n}=t;let e,i;const o={};for(let r=0;r`adapter ${a} `+(!1===c?"is not supported by the environment":"is not available in the build"));let s=n?r.length>1?"since :\n"+r.map(zx).join("\n"):" "+zx(r[0]):"as no adapter specified";throw new Ht("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return i};function o5(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Ru(null,t)}function Tx(t){return o5(t),t.headers=Wr.from(t.headers),t.data=Xg.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Sx_getAdapter(t.adapter||Zg.adapter)(t).then(function(i){return o5(t),i.data=Xg.call(t,t.transformResponse,i),i.headers=Wr.from(i.headers),i},function(i){return hx(i)||(o5(t),i&&i.response&&(i.response.data=Xg.call(t,t.transformResponse,i.response),i.response.headers=Wr.from(i.response.headers))),Promise.reject(i)})}const r5={};["object","boolean","number","function","string","symbol"].forEach((t,n)=>{r5[t]=function(i){return typeof i===t||"a"+(n<1?"n ":" ")+t}});const Dx={};r5.transitional=function(n,e,i){function o(r,s){return"[Axios v1.7.2] Transitional option '"+r+"'"+s+(i?". "+i:"")}return(r,s,a)=>{if(!1===n)throw new Ht(o(s," has been removed"+(e?" in "+e:"")),Ht.ERR_DEPRECATED);return e&&!Dx[s]&&(Dx[s]=!0,console.warn(o(s," has been deprecated since v"+e+" and will be removed in the near future"))),!n||n(r,s,a)}};const s5={assertOptions:function tte(t,n,e){if("object"!=typeof t)throw new Ht("options must be an object",Ht.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let o=i.length;for(;o-- >0;){const r=i[o],s=n[r];if(s){const a=t[r],c=void 0===a||s(a,r,t);if(!0!==c)throw new Ht("option "+r+" must be "+c,Ht.ERR_BAD_OPTION_VALUE)}else if(!0!==e)throw new Ht("Unknown option "+r,Ht.ERR_BAD_OPTION)}},validators:r5},fa=s5.validators;class t3{constructor(n){this.defaults=n,this.interceptors={request:new cx,response:new cx}}request(n,e){var i=this;return Di(function*(){try{return yield i._request(n,e)}catch(o){if(o instanceof Error){let r;Error.captureStackTrace?Error.captureStackTrace(r={}):r=new Error;const s=r.stack?r.stack.replace(/^.+\n/,""):"";try{o.stack?s&&!String(o.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(o.stack+="\n"+s):o.stack=s}catch{}}throw o}})()}_request(n,e){"string"==typeof n?(e=e||{}).url=n:e=n||{},e=mc(this.defaults,e);const{transitional:i,paramsSerializer:o,headers:r}=e;void 0!==i&&s5.assertOptions(i,{silentJSONParsing:fa.transitional(fa.boolean),forcedJSONParsing:fa.transitional(fa.boolean),clarifyTimeoutError:fa.transitional(fa.boolean)},!1),null!=o&&(J.isFunction(o)?e.paramsSerializer={serialize:o}:s5.assertOptions(o,{encode:fa.function,serialize:fa.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=r&&J.merge(r.common,r[e.method]);r&&J.forEach(["delete","get","head","post","put","patch","common"],y=>{delete r[y]}),e.headers=Wr.concat(s,r);const a=[];let c=!0;this.interceptors.request.forEach(function(z){"function"==typeof z.runWhen&&!1===z.runWhen(e)||(c=c&&z.synchronous,a.unshift(z.fulfilled,z.rejected))});const l=[];this.interceptors.response.forEach(function(z){l.push(z.fulfilled,z.rejected)});let u,_,p=0;if(!c){const y=[Tx.bind(this),void 0];for(y.unshift.apply(y,a),y.push.apply(y,l),_=y.length,u=Promise.resolve(e);p<_;)u=u.then(y[p++],y[p++]);return u}_=a.length;let b=e;for(p=0;p<_;){const y=a[p++],z=a[p++];try{b=y(b)}catch(E){z.call(this,E);break}}try{u=Tx.call(this,b)}catch(y){return Promise.reject(y)}for(p=0,_=l.length;p<_;)u=u.then(l[p++],l[p++]);return u}getUri(n){return ax(mx((n=mc(this.defaults,n)).baseURL,n.url),n.params,n.paramsSerializer)}}J.forEach(["delete","get","head","options"],function(n){t3.prototype[n]=function(e,i){return this.request(mc(i||{},{method:n,url:e,data:(i||{}).data}))}}),J.forEach(["post","put","patch"],function(n){function e(i){return function(r,s,a){return this.request(mc(a||{},{method:n,headers:i?{"Content-Type":"multipart/form-data"}:{},url:r,data:s}))}}t3.prototype[n]=e(),t3.prototype[n+"Form"]=e(!0)});const n3=t3;class a5{constructor(n){if("function"!=typeof n)throw new TypeError("executor must be a function.");let e;this.promise=new Promise(function(r){e=r});const i=this;this.promise.then(o=>{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](o);i._listeners=null}),this.promise.then=o=>{let r;const s=new Promise(a=>{i.subscribe(a),r=a}).then(o);return s.cancel=function(){i.unsubscribe(r)},s},n(function(r,s,a){i.reason||(i.reason=new Ru(r,s,a),e(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(n){this.reason?n(this.reason):this._listeners?this._listeners.push(n):this._listeners=[n]}unsubscribe(n){if(!this._listeners)return;const e=this._listeners.indexOf(n);-1!==e&&this._listeners.splice(e,1)}static source(){let n;return{token:new a5(function(o){n=o}),cancel:n}}}const nte=a5,c5={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(c5).forEach(([t,n])=>{c5[n]=t});const rte=c5,hi=function xx(t){const n=new n3(t),e=jD(n3.prototype.request,n);return J.extend(e,n3.prototype,n,{allOwnKeys:!0}),J.extend(e,n,null,{allOwnKeys:!0}),e.create=function(o){return xx(mc(t,o))},e}(Zg);hi.Axios=n3,hi.CanceledError=Ru,hi.CancelToken=nte,hi.isCancel=hx,hi.VERSION="1.7.2",hi.toFormData=G0,hi.AxiosError=Ht,hi.Cancel=hi.CanceledError,hi.all=function(n){return Promise.all(n)},hi.spread=function ite(t){return function(e){return t.apply(null,e)}},hi.isAxiosError=function ote(t){return J.isObject(t)&&!0===t.isAxiosError},hi.mergeConfig=mc,hi.AxiosHeaders=Wr,hi.formToJSON=t=>dx(J.isHTMLForm(t)?new FormData(t):t),hi.getAdapter=Sx_getAdapter,hi.HttpStatusCode=rte,hi.default=hi;const Ex=hi;var ste=fe(560),kx=fe.n(ste);const Ei=function ate(t){return{all:t=t||new Map,on:function(n,e){var i=t.get(n);i?i.push(e):t.set(n,[e])},off:function(n,e){var i=t.get(n);i&&(e?i.splice(i.indexOf(e)>>>0,1):t.set(n,[]))},emit:function(n,e){var i=t.get(n);i&&i.slice().map(function(o){o(e)}),(i=t.get("*"))&&i.slice().map(function(o){o(n,e)})}}}(),cte=document.title,l5=Ex.create({timeout:18e4,baseURL:"Gitee"===Vs.provider?"https://gitee.com/api/v5":"https://api.github.com",headers:{}});function Ax(){kx().start(),document.title="Connecting..."}function w1(){kx().done(),document.title=cte}l5.interceptors.request.use(function(t){const n=j0();return n&&(t.headers.Authorization=`token ${n}`),Ax(),t},function(t){return w1(),Promise.reject(t)}),l5.interceptors.response.use(function(t){return w1(),t},function(t){return Ei.emit("NOTIFICATION",{type:"error",title:"Error\uff1a"+(t.status||t.response?.data?.status||t.code||""),content:t.response?.data?.message||t.message||""}),w1(),Promise.reject(t)});const d5=Ex.create({timeout:1e4,baseURL:"https://nav-server.netlify.app"});d5.interceptors.request.use(function(t){const n=Yg();return n&&(t.headers.Authorization=n),t.data={code:n,hostname:window.location.hostname,...t.data},Ax(),t},function(t){return w1(),Promise.reject(t)}),d5.interceptors.response.use(function(t){return!1===t.data?.success&&Ei.emit("MESSAGE",{type:"error",content:t.data.message}),w1(),t},function(t){return Ei.emit("NOTIFICATION",{type:"error",title:"Error\uff1a"+(t.status||t.response?.data?.status||t.code||""),content:t.response?.data?.message||t.message||""}),w1(),Promise.reject(t)});const i3=d5,gc=l5,z1="function"==typeof Buffer,Ix=("function"==typeof TextDecoder&&new TextDecoder,"function"==typeof TextEncoder?new TextEncoder:void 0),Hu=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),Gi=((t=>{let n={};t.forEach((e,i)=>n[e]=i)})(Hu),String.fromCharCode.bind(String)),Vx=("function"==typeof Uint8Array.from&&Uint8Array.from.bind(Uint8Array),t=>t.replace(/=/g,"").replace(/[+\/]/g,n=>"+"==n?"-":"_")),u5="function"==typeof btoa?t=>btoa(t):z1?t=>Buffer.from(t,"binary").toString("base64"):t=>{let n,e,i,o,r="";const s=t.length%3;for(let a=0;a255||(i=t.charCodeAt(a++))>255||(o=t.charCodeAt(a++))>255)throw new TypeError("invalid character found");n=e<<16|i<<8|o,r+=Hu[n>>18&63]+Hu[n>>12&63]+Hu[n>>6&63]+Hu[63&n]}return s?r.slice(0,s-3)+"===".substring(s):r},h5=z1?t=>Buffer.from(t).toString("base64"):t=>{let e=[];for(let i=0,o=t.length;i{if(t.length<2)return(n=t.charCodeAt(0))<128?t:n<2048?Gi(192|n>>>6)+Gi(128|63&n):Gi(224|n>>>12&15)+Gi(128|n>>>6&63)+Gi(128|63&n);var n=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return Gi(240|n>>>18&7)+Gi(128|n>>>12&63)+Gi(128|n>>>6&63)+Gi(128|63&n)},pte=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,Hx=z1?t=>Buffer.from(t,"utf8").toString("base64"):Ix?t=>h5(Ix.encode(t)):t=>u5((t=>t.replace(pte,hte))(t)),ma=(t,n=!1)=>n?Vx(Hx(t)):Hx(t),{gitRepoUrl:_te}=Vs,s3=_te.split("/"),a3=Vs.branch,Gr=s3[s3.length-2],Fs=s3[s3.length-1];function c3(){return"Gitee"===Vs.provider}function Jx(t){return gc.get(`/users/${Gr}`,{headers:{Authorization:`token ${t.trim()}`}})}function m5(){return m5=Di(function*(t){const n=c3()?`/repos/${Gr}/${Fs}/branches`:`/repos/${Gr}/${Fs}/git/refs`,e={};if(c3())e.owner=`/${Gr}`,e.repo=`/${Gr}/${Fs}`,e.refs=a3,e.branch_name=t;else{e.sha="c1fdab3d29df4740bb97a4ae7f24ed0eaa682557";try{const i=yield function Cte(){return gc.get(`/repos/${Gr}/${Fs}/commits`)}();i.data?.length>0&&(e.sha=i.data[0].sha)}catch{}e.ref=`refs/heads/${t}`}return gc.post(n,e)}),m5.apply(this,arguments)}function vc(t){return g5.apply(this,arguments)}function g5(){return g5=Di(function*({message:t="update",content:n,path:e,branch:i=a3,isEncode:o=!0}){const r=yield function yte(t,n=a3){return gc.get(`/repos/${Gr}/${Fs}/contents/${t}`,{params:{ref:n}})}(e,i);return gc.put(`/repos/${Gr}/${Fs}/contents/${e}`,{message:`rebot(CI): ${t}`,branch:i,content:o?ma(n):n,sha:r.data.sha}).then(s=>(Xx(),s))}),g5.apply(this,arguments)}function Zx(t){return v5.apply(this,arguments)}function v5(){return v5=Di(function*({message:t,content:n,path:e,branch:i=a3,isEncode:o=!0}){return(c3()?gc.post:gc.put)(`/repos/${Gr}/${Fs}/contents/${e}`,{message:`rebot(CI): ${t}`,branch:i,content:o?ma(n):n}).then(s=>(Xx(),s))}),v5.apply(this,arguments)}function _5(){return _5=Di(function*(t){return i3.post("/api/get",t)}),_5.apply(this,arguments)}function b5(){return b5=Di(function*(t){return i3.post("/api/save",t)}),b5.apply(this,arguments)}function y5(){return y5=Di(function*(t){return i3.post("/api/delete",t)}),y5.apply(this,arguments)}function Tte(t){return C5.apply(this,arguments)}function C5(){return C5=Di(function*(t){return i3.post("/api/icon",{url:t})}),C5.apply(this,arguments)}function Qx(t,n="image"){return c3()?`https://gitee.com/${Gr}/${Fs}/raw/${n}/${t}`:`https://cdn.jsdelivr.net/gh/${Gr}/${Fs}@${n}/${t}`}function Xx(){const t=An.actionUrl;if(t){let e=function(){n.parentNode?.removeChild(n)};const n=document.createElement("img");n.src=t,document.body.appendChild(n),n.onload=e,n.onerror=e}}const yo=function Dte(){let t=tE(SX);const n=document.querySelectorAll("script"),e=n[n.length-1].src;if(window.localStorage.getItem(Ui.s_url)!==e){const o=[Ui.token,Ui.isDark,Ui.authCode],r=window.localStorage.length;for(let s=0;s50)break;if(_.name){let A=function(){if(b.includes(E)){let xe={..._};const Ge=new RegExp(`(${n})`,"i");if(xe.__name__=xe.name,xe.name=xe.name.replace(Ge,"$1".bold()),!c[xe.url])return c[xe.url]=!0,s.push(xe),!0}return!1},ie=function(){if(z?.includes?.(n.toLowerCase())&&!c[_.url]||k.some(Ge=>Ge.includes(n))&&!c[_.url])return c[_.url]=!0,s.push(_),!0},pe=function(){if(y.includes(E)){let xe={..._};const Ge=new RegExp(`(${n})`,"i");if(xe.__desc__=xe.desc,xe.desc=xe.desc.replace(Ge,"$1".bold()),!c[xe.url])return c[xe.url]=!0,s.push(xe),!0}return!1};const b=_.name.toLowerCase(),y=_.desc.toLowerCase(),z=_.url.toLowerCase(),E=n.toLowerCase(),k=Object.values(_.urls||{});try{switch(r){case pa.Url:ie();break;case pa.Title:A();break;case pa.Desc:pe();break;default:A(),pe(),ie()}}catch(xe){console.error(xe)}}}}return r===pa.Current?l(t[i].nav[o].nav):l(),s.length<=0?[]:a}function d3(){const t=l3(255),n=l3(255),e=l3(255);return`#${t.toString(16)}${n.toString(16)}${e.toString(16)}000`.slice(0,7)}let w5;function eE(){if(u3())return;clearInterval(w5);const t="random-light-bg",n=document.getElementById(t)||document.createElement("div"),e=l3(360);n.id=t,n.style.cssText="position:fixed;top:0;left:0;right:0;bottom:0;z-index:-3;transition: 1s linear;",n.style.backgroundImage=`linear-gradient(${e}deg, ${d3()} 0%, ${d3()} 100%)`,document.body.appendChild(n),w5=setInterval(function i(){if(u3())return void clearInterval(w5);const o=`linear-gradient(${e}deg, ${d3()} 0%, ${d3()} 100%)`;n.style.opacity=".3",setTimeout(()=>{n.style.backgroundImage=o,n.style.opacity="1"},1e3)},1e4)}function pi(){const{href:t}=window.location,n=t.split("?")[1]||"",e=CX().parse(n);let i=parseInt(e.id)||0,o=parseInt(e.page)||0;if(void 0===e.id&&void 0===e.page)try{const r=window.localStorage.getItem(Ui.location);if(r){const s=JSON.parse(r);o=s.page||0,i=s.id||0}}catch{}return o>yo.length-1?(o=0,i=0):yo[o]&&!(i<=yo[o].nav.length-1)&&(i=yo[o].nav.length-1),o=o<0?0:o,i=i<0?0:i,{...e,q:e.q||"",id:i,page:o}}function tE(t){function n(e){return!(e.ownVisible&&!Wi)}t=t.filter(n);for(let e=0;e(o.collapsed=i,o)),Yn(t),i}function xte(){const{page:t,id:n}=pi();window.localStorage.setItem(Ui.location,JSON.stringify({page:t,id:n}))}function u3(){const t=window.localStorage.getItem(Ui.isDark),n=window?.matchMedia?.("(prefers-color-scheme: dark)")?.matches;return!t&&n?n:!!Number(t)}function S5(){return S5=Di(function*(t){try{return{...(yield Tte(t)).data}}catch{}return{status:!1}}),S5.apply(this,arguments)}function M5(t){(function n(e){for(let i=0;i0&&(Wi||!yo[n].nav[t].ownVisible)?yo[n].nav[t].nav:[]}catch{e=[]}return e}function D5(t){const n=document.querySelectorAll(t);let e=Number.MAX_SAFE_INTEGER;if(n.length<=0)return e;const o=n[0].parentNode.clientWidth;let r=0;for(let s=0;so){e=s-1;break}return e}const Ite=JSON.parse('{"favicon":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/logo.png","homeUrl":"https://nav3.cn","language":"zh-CN","loading":"random","allowCollect":false,"email":"","showGithub":true,"showLanguage":true,"showRate":true,"title":"7yue\u4e2a\u4eba\u5bfc\u822a","description":"","keywords":"\u5bfc\u822a,\u524d\u7aef\u8d44\u6e90,\u793e\u533a\u7ad9\u70b9,\u8bbe\u8ba1\u5e08,\u5b9e\u7528\u5de5\u5177,\u5b66\u4e60\u8d44\u6e90,\u8fd0\u8425,\u7f51\u7edc\u5b89\u5168,node.js","theme":"Light","actionUrl":"","appTheme":"App","openSEO":true,"headerContent":"","footerContent":"
\u5171\u6536\u5f55${total}\u4e2a\u7f51\u7ad9
Copyright \xa9 2018-${year} ${hostname}, All Rights Reserved
","baiduStatisticsUrl":"https://hm.baidu.com/hm.js?4582be7af7e7c95ef75351e07c6c32ba","cnzzStatisticsUrl":"","showThemeToggle":true,"lightCardStyle":"standard","lightOverType":"overflow","simThemeImages":[{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/banner1.jpg","url":"","width":null,"height":null},{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/banner2.jpg","url":"","width":null,"height":null}],"simThemeDesc":"\u8fd9\u91cc\u6536\u5f55\u591a\u8fbe ${total} \u4e2a\u4f18\u8d28\u7f51\u7ad9\uff0c \u52a9\u60a8\u5de5\u4f5c\u3001\u5b66\u4e60\u548c\u751f\u6d3b","simCardStyle":"standard","simOverType":"overflow","simThemeHeight":0,"simThemeAutoplay":true,"simTitle":"","superCardStyle":"column","superOverType":"overflow","checkUrl":false,"superTitle":"","superImages":[{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/nav-1717494364392-ad.jpg","url":"https://haokawx.lot-ml.com/Product/index/454266"},{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/img/10.png","url":""}],"lightImages":[{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/nav-web@image/nav-1717494364392-ad.jpg","url":"https://haokawx.lot-ml.com/Product/index/454266"},{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/img/10.png","url":""}],"sideTitle":"","sideCardStyle":"example","sideThemeHeight":0,"sideThemeAutoplay":true,"sideThemeImages":[{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/banner2.jpg","url":"","width":null,"height":null},{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/banner1.jpg","url":"","width":null,"height":null}],"shortcutTitle":"","shortcutThemeShowWeather":true,"shortcutThemeImages":[{"src":"https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/nav/background.jpg","url":"","width":null,"height":null}],"mirrorList":[],"spiderIcon":"NO","spiderDescription":"NO","spiderTitle":"NO","spiderQty":20,"loadingCode":"","errorUrlCount":0}'),Nte=JSON.parse('[{"id":-1,"name":"\u4e2d\u6587","color":"#2db7f5","createdAt":"","desc":"\u7cfb\u7edf\u5185\u7f6e\u4e0d\u53ef\u5220\u9664","isInner":true},{"id":-2,"name":"\u82f1\u6587","color":"#f50","createdAt":"","desc":"\u7cfb\u7edf\u5185\u7f6e\u4e0d\u53ef\u5220\u9664","isInner":true},{"id":-3,"name":"Github","color":"#108ee9","createdAt":"","desc":"\u7cfb\u7edf\u5185\u7f6e\u4e0d\u53ef\u5220\u9664","isInner":true}]'),Vte=JSON.parse('{"userViewCount":841,"loginViewCount":841}'),An={...Ite,actionUrl:""},nE={},x5=jg,h3=Nte;h3.forEach(t=>{t.id&&(nE[t.id]={...t})});const ju=nE,p3=Vte,yn=yo,E5={now:()=>(E5.delegate||Date).now(),delegate:void 0};class fi extends N{constructor(n=1/0,e=1/0,i=E5){super(),this._bufferSize=n,this._windowTime=e,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=e===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,e)}next(n){const{isStopped:e,_buffer:i,_infiniteTimeWindow:o,_timestampProvider:r,_windowTime:s}=this;e||(i.push(n),!o&&i.push(r.now()+s)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();const e=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:o}=this,r=o.slice();for(let s=0;s{let r=function Hte(t){return t instanceof Date&&!isNaN(t)}(t)?+t-e.now():t;r<0&&(r=0);let s=0;return e.schedule(function(){o.closed||(o.next(s++),0<=i?this.schedule(void 0,i):o.complete())},r)})}function _c(t,n=Yu){return function Lte(t){return dn((n,e)=>{let i=!1,o=null,r=null,s=!1;const a=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const l=o;o=null,e.next(l)}s&&e.complete()},c=()=>{r=null,s&&e.complete()};n.subscribe(Zt(e,l=>{i=!0,o=l,r||Ii(t(l)).subscribe(r=Zt(e,a,c))},()=>{s=!0,(!i||!r||r.closed)&&e.complete()}))})}(()=>m3(t,n))}function qi(t,n=Bn){return t=t??Bte,dn((e,i)=>{let o,r=!0;e.subscribe(Zt(i,s=>{const a=n(s);(r||!t(o,a))&&(r=!1,o=a,i.next(s))}))})}function Bte(t,n){return t===n}function Rs(t,n=0){return function $te(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):n}function Uu(t){return Array.isArray(t)?t:[t]}function ri(t){return null==t?"":"string"==typeof t?t:`${t}px`}function Ni(t){return t instanceof Te?t.nativeElement:t}function O5(t){return yt((n,e)=>t<=e)}function g3(t,n=Yu){return dn((e,i)=>{let o=null,r=null,s=null;const a=()=>{if(o){o.unsubscribe(),o=null;const l=r;r=null,i.next(l)}};function c(){const l=s+t,u=n.now();if(u{r=l,s=n.now(),o||(o=n.schedule(c,t),i.add(o))},()=>{a(),i.complete()},void 0,()=>{r=o=null}))})}let P5;try{P5=typeof Intl<"u"&&Intl.v8BreakIterator}catch{P5=!1}let Wu,qn=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?p0(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!P5)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#e=this.\u0275fac=function(i){return new(i||t)(R(Ir))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function M1(t){return function Yte(){if(null==Wu&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Wu=!0}))}finally{Wu=Wu||!1}return Wu}()?t:!!t.capture}var ms=function(t){return t[t.NORMAL=0]="NORMAL",t[t.NEGATED=1]="NEGATED",t[t.INVERTED=2]="INVERTED",t}(ms||{});let v3,bc,I5;function rE(){if(null==bc){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return bc=!1,bc;if("scrollBehavior"in document.documentElement.style)bc=!0;else{const t=Element.prototype.scrollTo;bc=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return bc}function Gu(){if("object"!=typeof document||!document)return ms.NORMAL;if(null==v3){const t=document.createElement("div"),n=t.style;t.dir="rtl",n.width="1px",n.overflow="auto",n.visibility="hidden",n.pointerEvents="none",n.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",t.appendChild(e),document.body.appendChild(t),v3=ms.NORMAL,0===t.scrollLeft&&(t.scrollLeft=1,v3=0===t.scrollLeft?ms.NEGATED:ms.INVERTED),t.remove()}return v3}function N5(t){if(function Ute(){if(null==I5){const t=typeof document<"u"?document.head:null;I5=!(!t||!t.createShadowRoot&&!t.attachShadow)}return I5}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}function Io(t){return t.composedPath?t.composedPath()[0]:t.target}function sE(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const aE=new Set;let yc,V5=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):qte}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function Gte(t,n){if(!aE.has(t))try{yc||(yc=document.createElement("style"),n&&yc.setAttribute("nonce",n),yc.setAttribute("type","text/css"),document.head.appendChild(yc)),yc.sheet&&(yc.sheet.insertRule(`@media ${t} {body{ }}`,0),aE.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn),R(vd,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function qte(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let Kte=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new N}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return cE(Uu(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let r=xi(cE(Uu(e)).map(s=>this._registerQuery(s).observable));return r=yu(r.pipe(io(1)),r.pipe(O5(1),g3(0))),r.pipe(Ie(s=>{const a={matches:!1,breakpoints:{}};return s.forEach(({matches:c,query:l})=>{a.matches=a.matches||c,a.breakpoints[l]=c}),a}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),r={observable:new Ut(s=>{const a=c=>this._zone.run(()=>s.next(c));return i.addListener(a),()=>{i.removeListener(a)}}).pipe(gn(i),Ie(({matches:s})=>({query:e,matches:s})),I(this._destroySubject)),mql:i};return this._queries.set(e,r),r}static#e=this.\u0275fac=function(i){return new(i||t)(R(V5),R(De))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function cE(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}const F5=()=>{};let R5=(()=>{class t{constructor(e,i){this.ngZone=e,this.rendererFactory2=i,this.resizeSource$=new N,this.listeners=0,this.disposeHandle=F5,this.handler=()=>{this.ngZone.run(()=>{this.resizeSource$.next()})},this.renderer=this.rendererFactory2.createRenderer(null,null)}ngOnDestroy(){this.handler=F5}subscribe(){return this.registerListener(),this.resizeSource$.pipe(_c(16),c1(()=>this.unregisterListener()))}unsubscribe(){this.unregisterListener()}registerListener(){0===this.listeners&&this.ngZone.runOutsideAngular(()=>{this.disposeHandle=this.renderer.listen("window","resize",this.handler)}),this.listeners+=1}unregisterListener(){this.listeners-=1,0===this.listeners&&(this.disposeHandle(),this.disposeHandle=F5)}static#e=this.\u0275fac=function(i){return new(i||t)(R(De),R(Qa))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();let lE=(()=>{class t{constructor(){this._singletonRegistry=new Map}get singletonRegistry(){return this._singletonRegistry}registerSingletonWithKey(e,i){const o=this.singletonRegistry.has(e),r=o?this.singletonRegistry.get(e):this.withNewTarget(i);o||this.singletonRegistry.set(e,r)}unregisterSingletonWithKey(e){this.singletonRegistry.has(e)&&this.singletonRegistry.delete(e)}getSingletonWithKey(e){return this.singletonRegistry.has(e)?this.singletonRegistry.get(e).target:null}withNewTarget(e){return{target:e}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var L5=function(t){return t.xxl="xxl",t.xl="xl",t.lg="lg",t.md="md",t.sm="sm",t.xs="xs",t}(L5||{});const qu={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"},Zte={xs:"(max-width: 479.98px)",sm:"(max-width: 575.98px)",md:"(max-width: 767.98px)",lg:"(max-width: 991.98px)",xl:"(max-width: 1199.98px)",xxl:"(max-width: 1599.98px)"};let H5=(()=>{class t{constructor(e,i){this.resizeService=e,this.mediaMatcher=i,this.destroy$=new N,this.resizeService.subscribe().pipe(I(this.destroy$)).subscribe(()=>{})}ngOnDestroy(){this.destroy$.next()}subscribe(e,i){if(i){const o=()=>this.matchMedia(e,!0);return this.resizeService.subscribe().pipe(Ie(o),gn(o()),qi((r,s)=>r[0]===s[0]),Ie(r=>r[1]))}{const o=()=>this.matchMedia(e);return this.resizeService.subscribe().pipe(Ie(o),gn(o()),qi())}}matchMedia(e,i){let o=L5.md;const r={};return Object.keys(e).map(s=>{const a=s,c=this.mediaMatcher.matchMedia(qu[a]).matches;r[s]=c,c&&(o=a)}),i?[o,r]:o}static#e=this.\u0275fac=function(i){return new(i||t)(R(R5),R(V5))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),No=(()=>{class t extends N{ngOnDestroy(){this.next(),this.complete()}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const Qte=new oe("cdk-dir-doc",{providedIn:"root",factory:function Xte(){return W(It)}}),ene=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let wt=(()=>{class t{constructor(e){this.value="ltr",this.change=new H,e&&(this.value=function tne(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?ene.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(R(Qte,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),_3=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function dE(t,n){if(!t||!n||t.length!==n.length)return!1;const e=t.length;for(let i=0;i"u"||null===t}function B5(t){return function jte(t){return null!=t&&"false"!=`${t}`}(t)}function y3(t){return Pi(t,0)}function j5(t,n=0){return Rs(t,n)}function D1(t){return ri(t)}function uE(t){t.stopPropagation(),t.preventDefault()}function hE(t){if(!t.getClientRects().length)return{top:0,left:0};const n=t.getBoundingClientRect(),e=t.ownerDocument.defaultView;return{top:n.top+e.pageYOffset,left:n.left+e.pageXOffset}}function Y5(t){return!!t&&"function"==typeof t.then&&"function"==typeof t.catch}function C3(t,n,e){return isNaN(t)||te?e:t}function fE(t){return"number"==typeof t&&isFinite(t)}function mE(t,n){return Math.round(t*Math.pow(10,n))/Math.pow(10,n)}let q5,K5;typeof window<"u"&&window;const _E={position:"absolute",top:"-9999px",width:"50px",height:"50px"};function bE(t){return _0(t)?t:Y5(t)?ni(Promise.resolve(t)):We(t)}function yE(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}const mne="rc-util-key";function CE({mark:t}={}){return t?t.startsWith("data-")?t:`data-${t}`:mne}function J5(t){return t.attachTo?t.attachTo:document.querySelector("head")||document.body}function wE(t,n={}){if(!yE())return null;const e=document.createElement("style");n.cspNonce&&(e.nonce=n.cspNonce),e.innerHTML=t;const i=J5(n),{firstChild:o}=i;return n.prepend&&i.prepend?i.prepend(e):n.prepend&&o?i.insertBefore(e,o):i.appendChild(e),e}const Z5=new Map;function Ku(t,n,e){return{[`${t}-status-success`]:"success"===n,[`${t}-status-warning`]:"warning"===n,[`${t}-status-error`]:"error"===n,[`${t}-status-validating`]:"validating"===n,[`${t}-has-feedback`]:e}}let Cc=(()=>{class t{getGutter(){const e=[null,null],i=this.nzGutter||0;return(Array.isArray(i)?i:[i,null]).forEach((r,s)=>{"object"==typeof r&&null!==r?(e[s]=null,Object.keys(qu).map(a=>{const c=a;this.mediaMatcher.matchMedia(qu[c]).matches&&r[c]&&(e[s]=r[c])})):e[s]=Number(r)||null}),e}setGutterStyle(){const[e,i]=this.getGutter();this.actualGutter$.next([e,i]);const o=(r,s)=>{null!==s&&this.renderer.setStyle(this.elementRef.nativeElement,r,`-${s/2}px`)};o("margin-left",e),o("margin-right",e),o("margin-top",i),o("margin-bottom",i)}constructor(e,i,o,r,s,a,c){this.elementRef=e,this.renderer=i,this.mediaMatcher=o,this.ngZone=r,this.platform=s,this.breakpointService=a,this.directionality=c,this.nzAlign=null,this.nzJustify=null,this.nzGutter=null,this.actualGutter$=new fi(1),this.dir="ltr",this.destroy$=new N}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e}),this.setGutterStyle()}ngOnChanges(e){e.nzGutter&&this.setGutterStyle()}ngAfterViewInit(){this.platform.isBrowser&&this.breakpointService.subscribe(qu).pipe(I(this.destroy$)).subscribe(()=>{this.setGutterStyle()})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(V5),v(De),v(qn),v(H5),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-row",""],["nz-row"],["nz-form-item"]],hostAttrs:[1,"ant-row"],hostVars:20,hostBindings:function(i,o){2&i&&Q("ant-row-top","top"===o.nzAlign)("ant-row-middle","middle"===o.nzAlign)("ant-row-bottom","bottom"===o.nzAlign)("ant-row-start","start"===o.nzJustify)("ant-row-end","end"===o.nzJustify)("ant-row-center","center"===o.nzJustify)("ant-row-space-around","space-around"===o.nzJustify)("ant-row-space-between","space-between"===o.nzJustify)("ant-row-space-evenly","space-evenly"===o.nzJustify)("ant-row-rtl","rtl"===o.dir)},inputs:{nzAlign:"nzAlign",nzJustify:"nzJustify",nzGutter:"nzGutter"},exportAs:["nzRow"],standalone:!0,features:[ke]})}return t})(),x1=(()=>{class t{setHostClassMap(){const e={"ant-col":!0,[`ant-col-${this.nzSpan}`]:br(this.nzSpan),[`ant-col-order-${this.nzOrder}`]:br(this.nzOrder),[`ant-col-offset-${this.nzOffset}`]:br(this.nzOffset),[`ant-col-pull-${this.nzPull}`]:br(this.nzPull),[`ant-col-push-${this.nzPush}`]:br(this.nzPush),"ant-col-rtl":"rtl"===this.dir,...this.generateClass()};for(const i in this.classMap)this.classMap.hasOwnProperty(i)&&this.renderer.removeClass(this.elementRef.nativeElement,i);this.classMap={...e};for(const i in this.classMap)this.classMap.hasOwnProperty(i)&&this.classMap[i]&&this.renderer.addClass(this.elementRef.nativeElement,i)}setHostFlexStyle(){this.hostFlexStyle=this.parseFlex(this.nzFlex)}parseFlex(e){return"number"==typeof e?`${e} ${e} auto`:"string"==typeof e&&/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}generateClass(){const i={};return["nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl"].forEach(o=>{const r=o.replace("nz","").toLowerCase();if(br(this[o]))if("number"==typeof this[o]||"string"==typeof this[o])i[`ant-col-${r}-${this[o]}`]=!0;else{const s=this[o];["span","pull","push","offset","order"].forEach(c=>{i[`ant-col-${r}${"span"===c?"-":`-${c}-`}${s[c]}`]=s&&br(s[c])})}}),i}constructor(e,i,o,r){this.elementRef=e,this.nzRowDirective=i,this.renderer=o,this.directionality=r,this.classMap={},this.destroy$=new N,this.hostFlexStyle=null,this.dir="ltr",this.nzFlex=null,this.nzSpan=null,this.nzOrder=null,this.nzOffset=null,this.nzPush=null,this.nzPull=null,this.nzXs=null,this.nzSm=null,this.nzMd=null,this.nzLg=null,this.nzXl=null,this.nzXXl=null}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.setHostClassMap()}),this.setHostClassMap(),this.setHostFlexStyle()}ngOnChanges(e){this.setHostClassMap();const{nzFlex:i}=e;i&&this.setHostFlexStyle()}ngAfterViewInit(){this.nzRowDirective&&this.nzRowDirective.actualGutter$.pipe(I(this.destroy$)).subscribe(([e,i])=>{const o=(r,s)=>{null!==s&&this.renderer.setStyle(this.elementRef.nativeElement,r,s/2+"px")};o("padding-left",e),o("padding-right",e),o("padding-top",i),o("padding-bottom",i)})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Cc,9),v($t),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-col",""],["nz-col"],["nz-form-control"],["nz-form-label"]],hostVars:2,hostBindings:function(i,o){2&i&&Lt("flex",o.hostFlexStyle)},inputs:{nzFlex:"nzFlex",nzSpan:"nzSpan",nzOrder:"nzOrder",nzOffset:"nzOffset",nzPush:"nzPush",nzPull:"nzPull",nzXs:"nzXs",nzSm:"nzSm",nzMd:"nzMd",nzLg:"nzLg",nzXl:"nzXl",nzXXl:"nzXXl"},exportAs:["nzCol"],standalone:!0,features:[ke]})}return t})(),SE=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const Q5={en:{_webTitle:"Discovery Navigation",_uncategorized:"Unclassified",_modifySuccess:"Modification succeeded!",_copySuccess:"Copy succeeded!",_copyUrl:"Copy Link",_shareWeb:"Share site",_edit:"Edit",_sort:"Sort",_refresh:"Refresh",_add:"Add",_del:"Delete",_apply:"Apply",_batchDel:"Delete",_confirmDel:"Are you sure you want to delete?",_default:"Default",_title:"Title",_defaultTitle:"Default website title",_desc:"Description",_link:"Link",_current:"Current",_empty:"Sorry, we didn't find the result you want~",_goBack:"Go Back",_viewInfo:"View Info",_syncData:"Sync Data",_addData:"Add Data",_collapse:"Open",_put:"Fold",_closeDark:"Close Dark",_openDark:"Open Dark",_switchTo:"Switch To",_infoTip:"Only you can view the following information, please rest assured!",_know:"Know",_devBranch:"Deploy branch",_curVer:"Current Version",_newVer:"Latest Version",_prevDevTime:"Last build time",_unknow:"Unknow",_repeatOper:"Please do not operate frequently",_syncDataOut:"Synchronize data to remote",_confirmSync:"OK to sync",_confirmSyncTip:"Are you sure to synchronize all data to the remote end?",_syncSuccessTip:"The synchronization is successful. It takes about 5 minutes to build",_error:"Error",_syncFailTip:"Synchronization failed, please try again",_inputToken:"Please enter token",_inputTokenMsg:"Please enter your token below for login verification",_getToken:"I don't know how to get the token?",_readDoc:"Please read our guide first",_authLogin:"Please authorize login",_pleaseInputToken:"Please fill in the correct token",_tokenVerSuc:"Authorization succeeded!",_tokenVerFail:"Token validation failed",_repeatAdd:"Please do not add repeatedly",_addSuccess:"Successfully added!",_delSuccess:"Delete succeeded!",_saveSuccess:"Saved successfully!",_errorBookTip:"Error: bookmark resolution failed",_importSuccess:"Import succeeded!",_acceptPng:"Only PNG format is supported",_updateLogoSuccess:"The replacement was successful. It needs to be updated the next day due to CDN cache problems",_updateLogoFail:"Failed to replace logo, please try again!",_resetInitData:"Undo all actions",_confirmReset:"OK reset",_warnReset:"All current operations will revert to the last build state",_resetSuccess:"The data has been reset back to its initial state",_sel3:"Please select Level 3 category",_sel2:"Please select Level 2 category",_sel1:"Please select Level 1 category",_reserveOne:"At least one item is reserved. Please add it first!",_icon:"ICON",_backHome:"GO Home",_syncRemote:"Sync to remote",_uploading:"Uploading...",_addTag:"Add category",_addWeb:"Add site",_clickEdit:"Click Edit",_importChrome:"Import from Chrome bookmarks",_allContentMsg1:'1. After setting all data, click "synchronize to remote end" and drag the table to sort',_allContentMsg2:"2. Website category needs to be maintained manually,",_updateLogo:"Replace logo",_tagName:"Category name",_onlyOwnVisible:"Only Self",_createAt:"Create At",_action:"Action",_delWarn:"This will delete all data under the category. Are you sure you want to delete it?",_mgr1:"Management level 1 category",_mgr2:"Management level 2 category",_mgr3:"Management level 3 category",_mgrWeb:"Management website",_webName:"Name",_webTag:"Website category",_webDesc:"Description",_webLink:"Link",_requiredName:"Please enter a name",_requiredLink:"Please enter the website link",_uploadSuccess:"Uploaded successfully",_uploadFail:"Upload failed, please try again!",_notUpload:"Please do not upload illegal pictures",_shortcut:"Shortcut",_score:"Score",_iconAddr:"Icon Link",_copyUpload:"Support to paste screenshots or copy pictures here to upload",_upload:"Upload",_continueAdd:"Continue to add affiliate links",_moveTo:"Move to",_move:"Move",_copy:"Copy",_moveSuccess:"Moved successfully",_save:"Save",_color:"Color",_remark:"Description/Remark",_about:"About",_webInfo:"Web info",_systemSet:"Settings",_searchEngines:"Engines",_userCollect:"Collect",_bookmarkImport:"Bookmark",_tagSettings:"Tag settings",_websiteMang:"Website",_addRow:"Add",_bookImportTip:"

Supports most mainstream browsers based on the webkit kernel. If the import fails, it is temporarily not supported

",_engineName:"Engine name",_status:"Status",_isDisable:"Disable",_webLogo:"LOGO",_defLanguage:"Default Language",_pageLoad:"Page Loading",_random:"Random",_noSet:"No set",_showGithub:"Show Github",_defTheme:"Default Theme",_appTheme:"App Theme",_keywords:"Keywords",_footHtml:"Foot HTML",_headHtml:"Head HTML",_showWeather:"Show weather",_weatherTip:'Currently only the "Shortcut" theme is supported',_setSaveTip:"Note: after saving successfully, you need to wait at least 2 minutes for the build time to take effect!",_theme:"Theme",_backgroundImage:"Picture",_engineUrl:"Engine URL",_actionSuccess:"Succeeded",_jumpAddr:"Jump address",_backup:"Backup",_bannerHeight:"Banner height",_autoPlay:"Auto play",_importBackup:"Import backup",_importBackupTip:"After importing, all current website data will be cleared and imported",_showLanguage:"Display switch language",_mirrorList:"Mirror list",_mirrorAddr:"Mirror Address",_mirrorName:"Mirror Name",_showRate:"Show rate",_showCopy:"Display Card Copy",_showShare:"Show card sharing",_angleMark:"Angle Mark",_logout:"Logout Account",_cardStyle:"Card style",_tagPlaceholder:"Can be empty as a regular label",_dragSort:"Drag to sort",_checkWeb:"Last time, {count} website links were detected to be invalid. Please refer to the management website for details. If you need to check the status again, simply click Save to trigger the event.",_buildTip:"After modification, please save and wait for the build to complete. Leaving is invalid",_updateTip:"Frequent system updates, it is recommended to execute updates regularly to enjoy the latest system functions",_clickUpdate:"Click me to update",_enableSEO:"Enable SEO (loading slightly slower)",_allowCollect:"Allow users to submit indexed content",_collectMenuView:"Please refer to the user's inclusion menu for specific details",_displaySwitchTheme:"Display Switch Theme",_requestAddress:"Request Address",_requestTip:"Usually used for deploying self owned servers, when the save button is clicked, a GET request is sent to fill in the address",_followPage:"Follow Page",_bannerTip:"When the height is 0, the width and height of the image will be adaptive, and it is important to ensure that each image has the same size",_checkStatus:"Check website link status(For any of the above updates, it is recommended to enable this, as it takes the same amount of time.)",_ignore:"(This function is not very useful, it is recommended to ignore or remove it)",_standard:"Standard",_column:"Column",_simplicity:"Simplicity",_navOver:"First level navigation beyond display",_scrollBar:"Scroll bar",_ellipsis:"Ellipsis",_sidebarImg:"Sidebar image",_sidebarTitle:"Sidebar title",_defTitle4:"Default website title, recommended to be within 4 words",_inputAuthCode:"Please enter the authorization code",_payTip:"Opening user enrollment requires a payment of \uffe599 as a contribution to the stable operation of this website. Thank you for your understanding",_waitHandle:"Waiting for the stationmaster to handle",_collect:"Get",_confirmCollect:"Are you sure?",_pendingGet:"Getting...",_logoutAuthCode:"Exit authorization",_spiderRule:"Spider rule",_spiderIcon:"Spider icon",_spiderDesc:"Spider description",_spiderTitle:"Spider title",_spiderAlways:"Always update",_spiderStatus:"Spider Status",_spiderTip:"Crawling rules will be triggered every time saving, affecting the construction speed. Crawling and updating information may be necessary when necessary",_spiderQty:"Concurrent quantity",_spiderQtyTip:"",_spiderNetTip:"Due to network factors, some websites may not be accessible and can be skipped directly. For reference only",_spiderBuildTip:"After the construction is completed, the data is correct. Please go to the website management and click save once, otherwise the data will not be permanently stored"},cn:{_webTitle:"\u53d1\u73b0\u5bfc\u822a",_uncategorized:"\u672a\u5206\u7c7b",_modifySuccess:"\u4fee\u6539\u6210\u529f\uff01",_copySuccess:"\u590d\u5236\u6210\u529f",_copyUrl:"\u590d\u5236\u94fe\u63a5",_shareWeb:"\u5206\u4eab\u7f51\u7ad9",_edit:"\u7f16\u8f91",_sort:"\u6392\u5e8f",_refresh:"\u5237\u65b0",_add:"\u65b0\u589e",_del:"\u5220\u9664",_apply:"\u7533\u8bf7\u6536\u5f55",_batchDel:"\u6279\u91cf\u5220\u9664",_confirmDel:"\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5417\uff1f",_default:"\u7efc\u5408",_title:"\u6807\u9898",_defaultTitle:"\u9ed8\u8ba4\u7f51\u7ad9\u6807\u9898",_desc:"\u63cf\u8ff0",_link:"\u94fe\u63a5",_current:"\u5f53\u524d",_empty:"\u5bf9\u4e0d\u8d77\uff0c\u6ca1\u6709\u627e\u5230\u60a8\u60f3\u8981\u7684\u7ed3\u679c~",_goBack:"\u8fd4\u56de\u4e0a\u4e00\u5c42",_viewInfo:"\u67e5\u770b\u4fe1\u606f",_syncData:"\u540c\u6b65\u6570\u636e",_addData:"\u65b0\u589e\u6570\u636e",_collapse:"\u5c55\u5f00",_put:"\u6298\u53e0",_closeDark:"\u5173\u95ed\u6697\u9ed1",_openDark:"\u5f00\u542f\u6697\u9ed1",_switchTo:"\u5207\u6362\u5230",_infoTip:"\u4ee5\u4e0b\u4fe1\u606f\u53ea\u6709\u60a8\u80fd\u67e5\u770b\uff0c\u8bf7\u653e\u5fc3\uff01",_know:"\u77e5\u9053\u4e86",_devBranch:"\u90e8\u7f72\u5206\u652f",_curVer:"\u5f53\u524d\u7248\u672c",_newVer:"\u6700\u65b0\u7248\u672c",_prevDevTime:"\u4e0a\u6b21\u6784\u5efa\u65f6\u95f4",_unknow:"\u672a\u77e5",_repeatOper:"\u8bf7\u4e0d\u8981\u9891\u7e41\u64cd\u4f5c",_syncDataOut:"\u540c\u6b65\u6570\u636e\u5230\u8fdc\u7aef",_confirmSync:"\u786e\u5b9a\u540c\u6b65",_confirmSyncTip:"\u786e\u5b9a\u5c06\u6240\u6709\u6570\u636e\u540c\u6b65\u5230\u8fdc\u7aef\u5417\uff1f\uff08\u6bcf\u6b21\u4fdd\u5b58\u9700\u8981\u7b49\u5f85\u6784\u5efa\u5b8c\u6210\u518d\u8fdb\u884c\u4e0b\u4e00\u6b21\u64cd\u4f5c\uff09",_syncSuccessTip:"\u540c\u6b65\u6210\u529f, \u5927\u7ea6\u9700\u89815\u5206\u949f\u6784\u5efa\u65f6\u95f4",_error:"\u9519\u8bef",_syncFailTip:"\u540c\u6b65\u5931\u8d25, \u8bf7\u91cd\u8bd5",_inputToken:"\u8bf7\u8f93\u5165TOKEN",_inputTokenMsg:"\u8bf7\u5728\u4e0b\u65b9\u8f93\u5165\u60a8\u7684TOKEN\u8fdb\u884c\u767b\u5f55\u6821\u9a8c",_getToken:"\u4e0d\u77e5\u9053Token\u5982\u4f55\u83b7\u53d6\uff1f",_readDoc:"\u8bf7\u5148\u9605\u8bfb\u6211\u4eec\u7684\u6307\u5357",_authLogin:"\u8bf7\u6388\u6743\u767b\u5f55",_pleaseInputToken:"\u8bf7\u586b\u5199\u6b63\u786e\u7684Token",_tokenVerSuc:"\u6388\u6743\u6210\u529f!",_tokenVerFail:"Token \u9a8c\u8bc1\u5931\u8d25",_repeatAdd:"\u8bf7\u4e0d\u8981\u91cd\u590d\u6dfb\u52a0",_addSuccess:"\u65b0\u589e\u6210\u529f!",_delSuccess:"\u5220\u9664\u6210\u529f!",_saveSuccess:"\u4fdd\u5b58\u6210\u529f!",_errorBookTip:"\u9519\u8bef: \u4e66\u7b7e\u89e3\u6790\u5931\u8d25",_importSuccess:"\u5bfc\u5165\u6210\u529f\uff01",_acceptPng:"\u4ec5\u652f\u6301 PNG \u683c\u5f0f",_updateLogoSuccess:"\u66f4\u6362\u6210\u529f, \u7531\u4e8eCDN\u7f13\u5b58\u95ee\u9898\u9700\u8981\u6b21\u65e5\u66f4\u65b0",_updateLogoFail:"\u66f4\u6362LOGO\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5\uff01",_resetInitData:"\u64a4\u9500\u672c\u6b21\u6240\u6709\u64cd\u4f5c",_confirmReset:"\u786e\u5b9a\u91cd\u7f6e",_warnReset:"\u5f53\u524d\u6240\u6709\u64cd\u4f5c\u5c06\u8fd8\u539f\u5230\u4e0a\u6b21\u6784\u5efa\u72b6\u6001",_resetSuccess:"\u6570\u636e\u5df2\u91cd\u7f6e\u56de\u521d\u59cb\u72b6\u6001",_sel3:"\u8bf7\u9009\u62e9\u4e09\u7ea7\u5206\u7c7b",_sel2:"\u8bf7\u9009\u62e9\u4e8c\u7ea7\u5206\u7c7b",_sel1:"\u8bf7\u9009\u62e9\u4e00\u7ea7\u5206\u7c7b",_reserveOne:"\u81f3\u5c11\u4fdd\u7559\u4e00\u9879\uff0c\u8bf7\u5148\u6dfb\u52a0!",_icon:"\u56fe\u6807",_backHome:"\u8fd4\u56de\u4e3b\u9875",_syncRemote:"\u540c\u6b65\u5230\u8fdc\u7aef",_uploading:"\u4e0a\u4f20\u4e2d...",_addTag:"\u6dfb\u52a0\u5206\u7c7b",_addWeb:"\u6dfb\u52a0\u7f51\u7ad9",_clickEdit:"\u70b9\u51fb\u7f16\u8f91",_importChrome:"\u4eceChrome\u4e66\u7b7e\u5bfc\u5165",_allContentMsg1:"1\u3001\u6240\u6709\u6570\u636e\u8bbe\u7f6e\u5b8c\u6bd5\u540e\u70b9\u51fb \u201c\u540c\u6b65\u5230\u8fdc\u7aef\u201d\uff0c\u62d6\u62fd\u8868\u683c\u8fdb\u884c\u6392\u5e8f",_allContentMsg2:"2\u3001\u7f51\u7ad9\u5206\u7c7b\u9700\u624b\u52a8\u7ef4\u62a4,",_updateLogo:"\u66f4\u6362LOGO",_tagName:"\u6807\u7b7e\u540d\u79f0",_onlyOwnVisible:"\u81ea\u5df1\u53ef\u89c1",_createAt:"\u521b\u5efa\u65f6\u95f4",_action:"\u64cd\u4f5c",_delWarn:"\u8fd9\u4f1a\u5220\u9664\u5206\u7c7b\u4e0b\u7684\u6240\u6709\u6570\u636e\uff0c\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5417?",_mgr1:"\u7ba1\u7406\u4e00\u7ea7\u5206\u7c7b",_mgr2:"\u7ba1\u7406\u4e8c\u7ea7\u5206\u7c7b",_mgr3:"\u7ba1\u7406\u4e09\u7ea7\u5206\u7c7b",_mgrWeb:"\u7ba1\u7406\u7f51\u7ad9",_webName:"\u7f51\u7ad9\u540d\u79f0",_webTag:"\u7f51\u7ad9\u5206\u7c7b",_webDesc:"\u7f51\u7ad9\u63cf\u8ff0",_webLink:"\u7f51\u7ad9\u94fe\u63a5",_requiredName:"\u8bf7\u8f93\u5165\u540d\u79f0",_requiredLink:"\u8bf7\u8f93\u5165\u7f51\u7ad9\u94fe\u63a5",_uploadSuccess:"\u4e0a\u4f20\u6210\u529f",_uploadFail:"\u4e0a\u4f20\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5\uff01",_notUpload:"\u8bf7\u4e0d\u8981\u4e0a\u4f20\u975e\u6cd5\u56fe\u7247",_shortcut:"\u5feb\u6377\u65b9\u5f0f",_score:"\u8bc4\u5206\u7cfb\u6570",_iconAddr:"\u56fe\u6807\u5730\u5740",_copyUpload:"\u652f\u6301\u5c06\u622a\u56fe\u6216\u590d\u5236\u56fe\u7247\u7c98\u8d34\u6b64\u5904\u4e0a\u4f20",_upload:"\u4e0a\u4f20",_continueAdd:"\u7ee7\u7eed\u6dfb\u52a0\u5173\u8054\u94fe\u63a5",_moveTo:"\u79fb\u52a8\u5230",_move:"\u79fb\u52a8",_copy:"\u590d\u5236",_moveSuccess:"\u79fb\u52a8\u6210\u529f",_save:"\u4fdd \u5b58",_color:"\u989c\u8272",_remark:"\u63cf\u8ff0/\u5907\u6ce8",_about:"\u5173\u4e8e\u672c\u7ad9",_webInfo:"\u7f51\u7ad9\u4fe1\u606f",_systemSet:"\u7cfb\u7edf\u8bbe\u7f6e",_searchEngines:"\u641c\u7d22\u5f15\u64ce",_userCollect:"\u7528\u6237\u6536\u5f55",_bookmarkImport:"\u4e66\u7b7e\u5bfc\u5165",_tagSettings:"\u6807\u7b7e\u8bbe\u7f6e",_websiteMang:"\u7f51\u7ad9\u7ba1\u7406",_addRow:"\u65b0\u589e\u4e00\u6761",_bookImportTip:"

\u652f\u6301\u5927\u90e8\u5206\u4e3b\u6d41\u6d4f\u89c8\u5668\u57fa\u4e8ewebkit\u5185\u6838\uff0c\u82e5\u5bfc\u5165\u5931\u8d25\u8868\u793a\u6682\u4e0d\u652f\u6301

\u81ea\u52a8\u68c0\u6d4b\u6ee1\u8db3\u4e09\u7ea7\u5206\u7c7b\u5bfc\u822a\uff0c\u5176\u4ed6\u4e00\u5f8b\u8bbe\u4e3a\u672a\u5206\u7c7b

",_engineName:"\u5f15\u64ce\u540d\u79f0",_status:"\u72b6\u6001",_isDisable:"\u662f\u5426\u7981\u7528",_webLogo:"\u7f51\u7ad9LOGO",_defLanguage:"\u9ed8\u8ba4\u8bed\u8a00",_pageLoad:"\u9875\u9762Loading",_random:"\u968f\u673a",_noSet:"\u4e0d\u8bbe\u7f6e",_showGithub:"\u663e\u793aGithub",_defTheme:"\u9ed8\u8ba4\u4e3b\u9898",_appTheme:"App\u4e3b\u9898",_keywords:"\u7f51\u7ad9\u5173\u952e\u5b57",_footHtml:"\u5e95\u90e8HTML",_headHtml:"\u5934\u90e8HTML",_showWeather:"\u663e\u793a\u5929\u6c14",_weatherTip:'\u76ee\u524d\u53ea\u652f\u6301 "Shortcut" \u4e3b\u9898',_setSaveTip:"\u6ce8\u610f\uff1a\u4fdd\u5b58\u6210\u529f\u540e\u81f3\u5c11\u9700\u8981\u7b49\u5f852\u5206\u949f\u6784\u5efa\u65f6\u95f4\u65b9\u53ef\u751f\u6548\uff01",_theme:"\u4e3b\u9898",_backgroundImage:"\u56fe\u7247",_engineUrl:"\u5f15\u64ce\u5730\u5740",_actionSuccess:"\u64cd\u4f5c\u6210\u529f",_jumpAddr:"\u8df3\u8f6c\u5730\u5740",_backup:"\u4e0b\u8f7d\u5907\u4efd",_bannerHeight:"Banner\u9ad8\u5ea6",_autoPlay:"\u81ea\u52a8\u8f6e\u64ad",_importBackup:"\u5bfc\u5165\u5907\u4efd",_importBackupTip:"\u5bfc\u5165\u540e\u4f1a\u5c06\u5f53\u524d\u6240\u6709\u7f51\u7ad9\u6570\u636e\u6e05\u7a7a\u5e76\u5bfc\u5165",_showLanguage:"\u663e\u793a\u5207\u6362\u8bed\u8a00",_mirrorList:"\u955c\u50cf\u5217\u8868",_mirrorAddr:"\u955c\u50cf\u5730\u5740",_mirrorName:"\u955c\u50cf\u540d\u79f0",_showRate:"\u663e\u793a\u5361\u7247\u8bc4\u5206",_showCopy:"\u663e\u793a\u5361\u7247\u590d\u5236",_showShare:"\u663e\u793a\u5361\u7247\u5206\u4eab",_angleMark:"\u89d2\u6807\u8bbe\u7f6e",_logout:"\u767b\u51fa\u8d26\u53f7",_cardStyle:"\u5361\u7247\u98ce\u683c",_tagPlaceholder:"\u53ef\u4ee5\u4e3a\u7a7a\u5f53\u4f5c\u4e00\u4e2a\u666e\u901a\u6807\u7b7e",_dragSort:"\u62d6\u52a8\u53ef\u6392\u5e8f",_checkWeb:"\u4e0a\u6b21\u68c0\u6d4b\u51fa {count} \u4e2a\u7f51\u7ad9\u94fe\u63a5\u5931\u6548\uff0c\u5177\u4f53\u5230\u7ba1\u7406\u7f51\u7ad9\u67e5\u770b\uff0c\u5982\u9700\u518d\u6b21\u68c0\u6d4b\u72b6\u6001\u76f4\u63a5\u70b9\u4fdd\u5b58\u89e6\u53d1\u4e8b\u4ef6\u5373\u53ef\u3002",_buildTip:"\u4fee\u6539\u5b8c\u8bf7\u4fdd\u5b58\u5e76\u7b49\u5f85\u6784\u5efa\u5b8c\u6210\uff0c\u79bb\u5f00\u65e0\u6548",_updateTip:"\u7cfb\u7edf\u66f4\u65b0\u9891\u7e41\uff0c\u5efa\u8bae\u5b9a\u65f6\u6267\u884c\u66f4\u65b0\u4eab\u53d7\u6700\u65b0\u7cfb\u7edf\u529f\u80fd",_clickUpdate:"\u70b9\u6211\u66f4\u65b0",_enableSEO:"\u5f00\u542fSEO(\u52a0\u8f7d\u7a0d\u6162)",_allowCollect:"\u5141\u8bb8\u7528\u6237\u63d0\u4ea4\u6536\u5f55",_collectMenuView:"\u5177\u4f53\u5230\u7528\u6237\u6536\u5f55\u83dc\u5355\u67e5\u770b",_displaySwitchTheme:"\u663e\u793a\u5207\u6362\u4e3b\u9898",_requestAddress:"\u8bf7\u6c42\u5730\u5740",_requestTip:"\u901a\u5e38\u7528\u4e8e\u90e8\u7f72\u81ea\u6709\u670d\u52a1\u5668\uff0c\u5f53\u70b9\u51fb\u4fdd\u5b58\u6309\u94ae\u65f6\u4f1a\u53d1\u51faGET\u8bf7\u6c42\u586b\u5199\u7684\u5730\u5740",_followPage:"\u8ddf\u968f\u9875\u9762",_bannerTip:"\u5f53\u9ad8\u5ea6\u4e3a0\u65f6\uff0c\u56fe\u7247\u5bbd\u9ad8\u4f1a\u81ea\u9002\u5e94\uff0c\u52a1\u5fc5\u4fdd\u8bc1\u6bcf\u5f20\u56fe\u7247\u5c3a\u5bf8\u4e00\u81f4",_checkStatus:"\u68c0\u67e5\u7f51\u7ad9\u94fe\u63a5\u72b6\u6001(\u4e0a\u8ff0\u4efb\u4e00\u9879\u66f4\u65b0\uff0c\u5efa\u8bae\u6b64\u5f00\u542f\uff0c\u8017\u65f6\u76f8\u540c)",_ignore:"\uff08\u6b64\u529f\u80fd\u4f5c\u7528\u4e0d\u5927\uff0c\u5efa\u8bae\u5ffd\u7565\u6216\u5220\u9664\uff09",_standard:"\u6807\u51c6",_column:"\u680f\u76ee",_simplicity:"\u7b80\u7ea6",_navOver:"\u4e00\u7ea7\u5bfc\u822a\u8d85\u51fa\u663e\u793a",_scrollBar:"\u6eda\u52a8\u6761",_ellipsis:"\u4e09\u70b9\u5f0f",_sidebarImg:"\u4fa7\u680f\u56fe\u7247\u677f\u5757",_sidebarTitle:"\u4fa7\u680f\u6807\u9898",_defTitle4:"\u9ed8\u8ba4\u7f51\u7ad9\u6807\u9898, \u5efa\u8bae4\u5b57\u4ee5\u5185",_inputAuthCode:"\u8bf7\u8f93\u5165\u6388\u6743\u7801",_payTip:"\u5f00\u901a\u7528\u6237\u6536\u5f55\u529f\u80fd\u9700\u652f\u4ed8 \uffe599 \u4f5c\u4e3a\u672c\u7ad9\u7a33\u5b9a\u8fd0\u884c\u7684\u8d21\u732e\uff0c\u611f\u8c22\u60a8\u7684\u7406\u89e3",_waitHandle:"\u63d0\u4ea4\u6210\u529f\uff0c\u7b49\u5f85\u7ad9\u957f\u5904\u7406",_collect:"\u6536\u5f55",_confirmCollect:"\u60a8\u786e\u5b9a\u8981\u6536\u5f55\u5417\uff1f",_pendingGet:"\u6b63\u5728\u83b7\u53d6...",_logoutAuthCode:"\u9000\u51fa\u6388\u6743",_spiderRule:"\u722c\u53d6\u89c4\u5219",_spiderTitle:"\u66f4\u65b0\u6807\u9898",_spiderIcon:"\u66f4\u65b0\u56fe\u6807",_spiderDesc:"\u66f4\u65b0\u63cf\u8ff0",_notSpider:"\u4e0d\u66f4\u65b0",_spiderAlways:"\u603b\u662f\u66f4\u65b0",_spiderEmpty:"\u4e3a\u7a7a\u65f6\u66f4\u65b0",_spiderStatus:"\u722c\u53d6\u72b6\u6001",_spiderTip:"\u6bcf\u6b21\u4fdd\u5b58\u65f6\u4f1a\u89e6\u53d1\u722c\u53d6\u89c4\u5219\uff0c\u5f71\u54cd\u6784\u5efa\u901f\u5ea6\uff0c\u5728\u5fc5\u8981\u65f6\u8fdb\u884c\u722c\u53d6\u66f4\u65b0\u4fe1\u606f",_spiderQty:"\u5e76\u53d1\u6570\u91cf",_spiderQtyTip:"",_spiderNetTip:"\u7531\u4e8e\u7f51\u7edc\u56e0\u7d20\uff0c\u90e8\u5206\u7f51\u7ad9\u53ef\u80fd\u65e0\u6cd5\u8bbf\u95ee\u76f4\u63a5\u8df3\u8fc7\uff0c\u4ec5\u4f9b\u53c2\u8003",_spiderBuildTip:"\u6784\u5efa\u5b8c\u6210\u540e\u5bf9\u6570\u636e\u65e0\u8bef\uff0c\u8bf7\u5230\u7f51\u7ad9\u7ba1\u7406\u70b9\u51fb\u4e00\u6b21\u4fdd\u5b58\uff0c\u5426\u5219\u6570\u636e\u4e0d\u4f1a\u6c38\u4e45\u5b58\u50a8"}};function X5(){return window.localStorage.getItem(Ui.language)||An.language}const vne=X5();function _e(t){return"zh-CN"===vne?Q5.cn[t]:Q5.en[t]??Q5.cn[t]}class e7{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class Ju extends e7{constructor(n,e,i,o,r){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=r}}class Zu extends e7{constructor(n,e,i,o){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class _ne extends e7{constructor(n){super(),this.element=n instanceof Te?n.nativeElement:n}}class t7{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Ju?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof Zu?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof _ne?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class bne extends t7{constructor(n,e,i,o,r){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=s=>{const a=s.element,c=this._document.createComment("dom-portal");a.parentNode.insertBefore(c,a),this.outletElement.appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{c.parentNode&&c.parentNode.replaceChild(a,c)})},this._document=r}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let o;return n.viewContainerRef?(o=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(n.injector||this._defaultInjector||tn.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=n,o}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let Qu=(()=>{class t extends t7{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new H,this.attachDomPortal=r=>{const s=r.element,a=this._document.createComment("dom-portal");r.setAttachedHost(this),s.parentNode.insertBefore(a,s),this._getRootNode().appendChild(s),this._attachedPortal=r,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(s,a)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,r=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),s=i.createComponent(r,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(s.hostView.rootNodes[0]),super.setDisposeFn(()=>s.destroy()),this._attachedPortal=e,this._attachedRef=s,this.attached.emit(s),s}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}static#e=this.\u0275fac=function(i){return new(i||t)(v(Il),v(Gn),v(It))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[mt]})}return t})(),z3=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function Ki(t,n){(function yne(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var e=function Cne(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===n?t:Math.min(n,Math.max(0,parseFloat(t))),e&&(t=parseInt(String(t*n),10)/100),Math.abs(t-n)<1e-6?1:t=360===n?(t<0?t%n+n:t%n)/parseFloat(String(n)):t%n/parseFloat(String(n))}function S3(t){return Math.min(1,Math.max(0,t))}function TE(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function T3(t){return t<=1?"".concat(100*Number(t),"%"):t}function wc(t){return 1===t.length?"0"+t:String(t)}function ME(t,n,e){t=Ki(t,255),n=Ki(n,255),e=Ki(e,255);var i=Math.max(t,n,e),o=Math.min(t,n,e),r=0,s=0,a=(i+o)/2;if(i===o)s=0,r=0;else{var c=i-o;switch(s=a>.5?c/(2-i-o):c/(i+o),i){case t:r=(n-e)/c+(n1&&(e-=1),e<1/6?t+6*e*(n-t):e<.5?n:e<2/3?t+(n-t)*(2/3-e)*6:t}function M3(t,n,e){t=Ki(t,255),n=Ki(n,255),e=Ki(e,255);var i=Math.max(t,n,e),o=Math.min(t,n,e),r=0,s=i,a=i-o,c=0===i?0:a/i;if(i===o)r=0;else{switch(i){case t:r=(n-e)/a+(n>16,g:(65280&t)>>8,b:255&t}}(n)),this.originalInput=n;var o=qr(n);this.originalInput=n,this.r=o.r,this.g=o.g,this.b=o.b,this.a=o.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(i=e.format)&&void 0!==i?i:o.format,this.gradientType=e.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=o.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var n=this.toRgb();return(299*n.r+587*n.g+114*n.b)/1e3},t.prototype.getLuminance=function(){var n=this.toRgb(),r=n.r/255,s=n.g/255,a=n.b/255;return.2126*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.7152*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.0722*(a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(n){return this.a=TE(n),this.roundA=Math.round(100*this.a)/100,this},t.prototype.isMonochrome=function(){return 0===this.toHsl().s},t.prototype.toHsv=function(){var n=M3(this.r,this.g,this.b);return{h:360*n.h,s:n.s,v:n.v,a:this.a}},t.prototype.toHsvString=function(){var n=M3(this.r,this.g,this.b),e=Math.round(360*n.h),i=Math.round(100*n.s),o=Math.round(100*n.v);return 1===this.a?"hsv(".concat(e,", ").concat(i,"%, ").concat(o,"%)"):"hsva(".concat(e,", ").concat(i,"%, ").concat(o,"%, ").concat(this.roundA,")")},t.prototype.toHsl=function(){var n=ME(this.r,this.g,this.b);return{h:360*n.h,s:n.s,l:n.l,a:this.a}},t.prototype.toHslString=function(){var n=ME(this.r,this.g,this.b),e=Math.round(360*n.h),i=Math.round(100*n.s),o=Math.round(100*n.l);return 1===this.a?"hsl(".concat(e,", ").concat(i,"%, ").concat(o,"%)"):"hsla(".concat(e,", ").concat(i,"%, ").concat(o,"%, ").concat(this.roundA,")")},t.prototype.toHex=function(n){return void 0===n&&(n=!1),D3(this.r,this.g,this.b,n)},t.prototype.toHexString=function(n){return void 0===n&&(n=!1),"#"+this.toHex(n)},t.prototype.toHex8=function(n){return void 0===n&&(n=!1),function Tne(t,n,e,i,o){var r=[wc(Math.round(t).toString(16)),wc(Math.round(n).toString(16)),wc(Math.round(e).toString(16)),wc(DE(i))];return o&&r[0].startsWith(r[0].charAt(1))&&r[1].startsWith(r[1].charAt(1))&&r[2].startsWith(r[2].charAt(1))&&r[3].startsWith(r[3].charAt(1))?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0)+r[3].charAt(0):r.join("")}(this.r,this.g,this.b,this.a,n)},t.prototype.toHex8String=function(n){return void 0===n&&(n=!1),"#"+this.toHex8(n)},t.prototype.toHexShortString=function(n){return void 0===n&&(n=!1),1===this.a?this.toHexString(n):this.toHex8String(n)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var n=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb(".concat(n,", ").concat(e,", ").concat(i,")"):"rgba(".concat(n,", ").concat(e,", ").concat(i,", ").concat(this.roundA,")")},t.prototype.toPercentageRgb=function(){var n=function(e){return"".concat(Math.round(100*Ki(e,255)),"%")};return{r:n(this.r),g:n(this.g),b:n(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var n=function(e){return Math.round(100*Ki(e,255))};return 1===this.a?"rgb(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%)"):"rgba(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%, ").concat(this.roundA,")")},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var n="#"+D3(this.r,this.g,this.b,!1),e=0,i=Object.entries(i7);e=0&&(n.startsWith("hex")||"name"===n)?"name"===n&&0===this.a?this.toName():this.toRgbString():("rgb"===n&&(i=this.toRgbString()),"prgb"===n&&(i=this.toPercentageRgbString()),("hex"===n||"hex6"===n)&&(i=this.toHexString()),"hex3"===n&&(i=this.toHexString(!0)),"hex4"===n&&(i=this.toHex8String(!0)),"hex8"===n&&(i=this.toHex8String()),"name"===n&&(i=this.toName()),"hsl"===n&&(i=this.toHslString()),"hsv"===n&&(i=this.toHsvString()),i||this.toHexString())},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.l+=n/100,e.l=S3(e.l),new t(e)},t.prototype.brighten=function(n){void 0===n&&(n=10);var e=this.toRgb();return e.r=Math.max(0,Math.min(255,e.r-Math.round(-n/100*255))),e.g=Math.max(0,Math.min(255,e.g-Math.round(-n/100*255))),e.b=Math.max(0,Math.min(255,e.b-Math.round(-n/100*255))),new t(e)},t.prototype.darken=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.l-=n/100,e.l=S3(e.l),new t(e)},t.prototype.tint=function(n){return void 0===n&&(n=10),this.mix("white",n)},t.prototype.shade=function(n){return void 0===n&&(n=10),this.mix("black",n)},t.prototype.desaturate=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.s-=n/100,e.s=S3(e.s),new t(e)},t.prototype.saturate=function(n){void 0===n&&(n=10);var e=this.toHsl();return e.s+=n/100,e.s=S3(e.s),new t(e)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(n){var e=this.toHsl(),i=(e.h+n)%360;return e.h=i<0?360+i:i,new t(e)},t.prototype.mix=function(n,e){void 0===e&&(e=50);var i=this.toRgb(),o=new t(n).toRgb(),r=e/100;return new t({r:(o.r-i.r)*r+i.r,g:(o.g-i.g)*r+i.g,b:(o.b-i.b)*r+i.b,a:(o.a-i.a)*r+i.a})},t.prototype.analogous=function(n,e){void 0===n&&(n=6),void 0===e&&(e=30);var i=this.toHsl(),o=360/e,r=[this];for(i.h=(i.h-(o*n>>1)+720)%360;--n;)i.h=(i.h+o)%360,r.push(new t(i));return r},t.prototype.complement=function(){var n=this.toHsl();return n.h=(n.h+180)%360,new t(n)},t.prototype.monochromatic=function(n){void 0===n&&(n=6);for(var e=this.toHsv(),i=e.h,o=e.s,r=e.v,s=[],a=1/n;n--;)s.push(new t({h:i,s:o,v:r})),r=(r+a)%1;return s},t.prototype.splitcomplement=function(){var n=this.toHsl(),e=n.h;return[this,new t({h:(e+72)%360,s:n.s,l:n.l}),new t({h:(e+216)%360,s:n.s,l:n.l})]},t.prototype.onBackground=function(n){var e=this.toRgb(),i=new t(n).toRgb(),o=e.a+i.a*(1-e.a);return new t({r:(e.r*e.a+i.r*i.a*(1-e.a))/o,g:(e.g*e.a+i.g*i.a*(1-e.a))/o,b:(e.b*e.a+i.b*i.a*(1-e.a))/o,a:o})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(n){for(var e=this.toHsl(),i=e.h,o=[this],r=360/n,s=1;s=60&&Math.round(t.h)<=240?e?Math.round(t.h)-E3*n:Math.round(t.h)+E3*n:e?Math.round(t.h)+E3*n:Math.round(t.h)-E3*n,i<0?i+=360:i>=360&&(i-=360),i}function FE(t,n,e){if(0===t.h&&0===t.s)return t.s;let i;return i=e?t.s-OE*n:n===IE?t.s+OE:t.s+Ane*n,i>1&&(i=1),e&&n===PE&&i>.1&&(i=.1),i<.06&&(i=.06),Number(i.toFixed(2))}function RE(t,n,e){let i;return i=e?t.v+One*n:t.v-Pne*n,i>1&&(i=1),Number(i.toFixed(2))}function LE(t,n={}){const e=[],i=qr(t);for(let o=PE;o>0;o-=1){const r=NE(i),s=k3(qr({h:VE(r,o,!0),s:FE(r,o,!0),v:RE(r,o,!0)}));e.push(s)}e.push(k3(i));for(let o=1;o<=IE;o+=1){const r=NE(i),s=k3(qr({h:VE(r,o),s:FE(r,o),v:RE(r,o)}));e.push(s)}return"dark"===n.theme?Ine.map(({index:o,opacity:r})=>k3(function Nne(t,n,e){const i=e/100;return{r:(n.r-t.r)*i+t.r,g:(n.g-t.g)*i+t.g,b:(n.b-t.b)*i+t.b}}(qr(n.backgroundColor||"#141414"),qr(e[o]),100*r))):e}const A3="[NG-ZORRO]:";const Xu=(...t)=>{},jE=new oe("nz-config"),Fne=`-ant-${Date.now()}-${Math.random()}`;function $E(t,n,e){const i=function Rne(t,n){const e={},i=(s,a)=>{let c=s.clone();return c=a?.(c)||c,c.toRgbString()},o=(s,a)=>{const c=new x3(s),l=LE(c.toRgbString());e[`${a}-color`]=i(c),e[`${a}-color-disabled`]=l[1],e[`${a}-color-hover`]=l[4],e[`${a}-color-active`]=l[7],e[`${a}-color-outline`]=c.clone().setAlpha(.2).toRgbString(),e[`${a}-color-deprecated-bg`]=l[1],e[`${a}-color-deprecated-border`]=l[3]};if(n.primaryColor){o(n.primaryColor,"primary");const s=new x3(n.primaryColor),a=LE(s.toRgbString());a.forEach((l,u)=>{e[`primary-${u+1}`]=l}),e["primary-color-deprecated-l-35"]=i(s,l=>l.lighten(35)),e["primary-color-deprecated-l-20"]=i(s,l=>l.lighten(20)),e["primary-color-deprecated-t-20"]=i(s,l=>l.tint(20)),e["primary-color-deprecated-t-50"]=i(s,l=>l.tint(50)),e["primary-color-deprecated-f-12"]=i(s,l=>l.setAlpha(.12*l.getAlpha()));const c=new x3(a[0]);e["primary-color-active-deprecated-f-30"]=i(c,l=>l.setAlpha(.3*l.getAlpha())),e["primary-color-active-deprecated-d-02"]=i(c,l=>l.darken(2))}return n.successColor&&o(n.successColor,"success"),n.warningColor&&o(n.warningColor,"warning"),n.errorColor&&o(n.errorColor,"error"),n.infoColor&&o(n.infoColor,"info"),`\n :root {\n ${Object.keys(e).map(s=>`--${t}-${s}: ${e[s]};`).join("\n")}\n }\n `.trim()}(t,n);yE()&&function gne(t,n,e={}){const i=J5(e);if(!Z5.has(i)){const s=wE("",e),{parentNode:a}=s;Z5.set(i,a),a.removeChild(s)}const o=function zE(t,n={}){const e=J5(n);return Array.from(Z5.get(e)?.children||[]).find(i=>"STYLE"===i.tagName&&i.getAttribute(CE(n))===t)}(n,e);if(o)return e.cspNonce&&o.nonce!==e.cspNonce&&(o.nonce=e.cspNonce),o.innerHTML!==t&&(o.innerHTML=t),o;const r=wE(t,e);r?.setAttribute(CE(e),n)}(i,`${Fne}-dynamic-theme`,{cspNonce:e})}const YE=function(t){return void 0!==t};let si=(()=>{class t{constructor(e,i){this.configUpdated$=new N,this.config=e||{},this.cspNonce=i,this.config.theme&&$E(this.getConfig().prefixCls?.prefixCls||"ant",this.config.theme,i)}getConfig(){return this.config}getConfigForComponent(e){return this.config[e]}getConfigChangeEventForComponent(e){return this.configUpdated$.pipe(yt(i=>i===e),hc(void 0))}set(e,i){this.config[e]={...this.config[e],...i},"theme"===e&&this.config.theme&&$E(this.getConfig().prefixCls?.prefixCls||"ant",this.config.theme,this.cspNonce),this.configUpdated$.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)(R(jE,8),R(vd,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Nt(){return function(n,e,i){const o=`$$__zorroConfigDecorator__${e}`;return Object.defineProperty(n,o,{configurable:!0,writable:!0,enumerable:!1}),{get(){const r=i?.get?i.get.bind(this)():this[o],s=(this.propertyAssignCounter?.[e]||0)>1,a=this.nzConfigService.getConfigForComponent(this._nzModuleName)?.[e];return s&&YE(r)?r:YE(a)?a:r},set(r){this.propertyAssignCounter=this.propertyAssignCounter||{},this.propertyAssignCounter[e]=(this.propertyAssignCounter[e]||0)+1,i?.set?i.set.bind(this)(r):this[o]=r},configurable:!0,enumerable:!0}}}var lt=function(t){return t[t.State=0]="State",t[t.Transition=1]="Transition",t[t.Sequence=2]="Sequence",t[t.Group=3]="Group",t[t.Animate=4]="Animate",t[t.Keyframes=5]="Keyframes",t[t.Style=6]="Style",t[t.Trigger=7]="Trigger",t[t.Reference=8]="Reference",t[t.AnimateChild=9]="AnimateChild",t[t.AnimateRef=10]="AnimateRef",t[t.Query=11]="Query",t[t.Stagger=12]="Stagger",t}(lt||{});const Hs="*";function Vo(t,n){return{type:lt.Trigger,name:t,definitions:n,options:{}}}function an(t,n=null){return{type:lt.Animate,styles:n,timings:t}}function Ke(t){return{type:lt.Style,styles:t,offset:null}}function Co(t,n,e){return{type:lt.State,name:t,styles:n,options:e}}function un(t,n,e=null){return{type:lt.Transition,expr:t,animation:n,options:e}}function WE(t,n,e=null){return{type:lt.Query,selector:t,animation:n,options:e}}function GE(t,n){return{type:lt.Stagger,timings:t,animation:n}}class e2{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class qE{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,o=0;const r=this.players.length;0==r?queueMicrotask(()=>this._onFinish()):this.players.forEach(s=>{s.onDone(()=>{++e==r&&this._onFinish()}),s.onDestroy(()=>{++i==r&&this._onDestroy()}),s.onStart(()=>{++o==r&&this._onStart()})}),this.totalTime=this.players.reduce((s,a)=>Math.max(s,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}let Ji=(()=>{class t{static#e=this.SLOW="0.3s";static#t=this.BASE="0.2s";static#n=this.FAST="0.1s"}return t})(),oo=(()=>{class t{static#e=this.EASE_BASE_OUT="cubic-bezier(0.7, 0.3, 0.1, 1)";static#t=this.EASE_BASE_IN="cubic-bezier(0.9, 0, 0.3, 0.7)";static#n=this.EASE_OUT="cubic-bezier(0.215, 0.61, 0.355, 1)";static#i=this.EASE_IN="cubic-bezier(0.55, 0.055, 0.675, 0.19)";static#o=this.EASE_IN_OUT="cubic-bezier(0.645, 0.045, 0.355, 1)";static#r=this.EASE_OUT_BACK="cubic-bezier(0.12, 0.4, 0.29, 1.46)";static#s=this.EASE_IN_BACK="cubic-bezier(0.71, -0.46, 0.88, 0.6)";static#a=this.EASE_IN_OUT_BACK="cubic-bezier(0.71, -0.46, 0.29, 1.46)";static#c=this.EASE_OUT_CIRC="cubic-bezier(0.08, 0.82, 0.17, 1)";static#l=this.EASE_IN_CIRC="cubic-bezier(0.6, 0.04, 0.98, 0.34)";static#d=this.EASE_IN_OUT_CIRC="cubic-bezier(0.78, 0.14, 0.15, 0.86)";static#u=this.EASE_OUT_QUINT="cubic-bezier(0.23, 1, 0.32, 1)";static#h=this.EASE_IN_QUINT="cubic-bezier(0.755, 0.05, 0.855, 0.06)";static#p=this.EASE_IN_OUT_QUINT="cubic-bezier(0.86, 0, 0.07, 1)"}return t})();const Yne=Vo("collapseMotion",[Co("expanded",Ke({height:"*"})),Co("collapsed",Ke({height:0,overflow:"hidden"})),Co("hidden",Ke({height:0,overflow:"hidden",borderTopWidth:"0"})),un("expanded => collapsed",an(`150ms ${oo.EASE_IN_OUT}`)),un("expanded => hidden",an(`150ms ${oo.EASE_IN_OUT}`)),un("collapsed => expanded",an(`150ms ${oo.EASE_IN_OUT}`)),un("hidden => expanded",an(`150ms ${oo.EASE_IN_OUT}`))]),Une=(Vo("treeCollapseMotion",[un("* => *",[WE("nz-tree-node:leave,nz-tree-builtin-node:leave",[Ke({overflow:"hidden"}),GE(0,[an(`150ms ${oo.EASE_IN_OUT}`,Ke({height:0,opacity:0,"padding-bottom":0}))])],{optional:!0}),WE("nz-tree-node:enter,nz-tree-builtin-node:enter",[Ke({overflow:"hidden",height:0,opacity:0,"padding-bottom":0}),GE(0,[an(`150ms ${oo.EASE_IN_OUT}`,Ke({overflow:"hidden",height:"*",opacity:"*","padding-bottom":"*"}))])],{optional:!0})])]),Vo("drawerMaskMotion",[un(":enter",[Ke({opacity:0}),an(`${Ji.SLOW}`,Ke({opacity:1}))]),un(":leave",[Ke({opacity:1}),an(`${Ji.SLOW}`,Ke({opacity:0}))])]),Vo("fadeMotion",[un("* => enter",[Ke({opacity:0}),an(`${Ji.BASE}`,Ke({opacity:1}))]),un("* => leave, :leave",[Ke({opacity:1}),an(`${Ji.BASE}`,Ke({opacity:0}))])]),Vo("helpMotion",[un(":enter",[Ke({opacity:0,transform:"translateY(-5px)"}),an(`${Ji.SLOW} ${oo.EASE_IN_OUT}`,Ke({opacity:1,transform:"translateY(0)"}))]),un(":leave",[Ke({opacity:1,transform:"translateY(0)"}),an(`${Ji.SLOW} ${oo.EASE_IN_OUT}`,Ke({opacity:0,transform:"translateY(-5px)"}))])])),Wne=Vo("moveUpMotion",[un("* => enter",[Ke({transformOrigin:"0 0",transform:"translateY(-100%)",opacity:0}),an(`${Ji.BASE}`,Ke({transformOrigin:"0 0",transform:"translateY(0%)",opacity:1}))]),un("* => leave",[Ke({transformOrigin:"0 0",transform:"translateY(0%)",opacity:1}),an(`${Ji.BASE}`,Ke({transformOrigin:"0 0",transform:"translateY(-100%)",opacity:0}))])]),Gne=Vo("notificationMotion",[Co("enterRight",Ke({opacity:1,transform:"translateX(0)"})),un("* => enterRight",[Ke({opacity:0,transform:"translateX(5%)"}),an("100ms linear")]),Co("enterLeft",Ke({opacity:1,transform:"translateX(0)"})),un("* => enterLeft",[Ke({opacity:0,transform:"translateX(-5%)"}),an("100ms linear")]),Co("enterTop",Ke({opacity:1,transform:"translateY(0)"})),un("* => enterTop",[Ke({opacity:0,transform:"translateY(-5%)"}),an("100ms linear")]),Co("enterBottom",Ke({opacity:1,transform:"translateY(0)"})),un("* => enterBottom",[Ke({opacity:0,transform:"translateY(5%)"}),an("100ms linear")]),Co("leave",Ke({opacity:0,transform:"scaleY(0.8)",transformOrigin:"0% 0%"})),un("* => leave",[Ke({opacity:1,transform:"scaleY(1)",transformOrigin:"0% 0%"}),an("100ms linear")])]),qne=`${Ji.BASE} ${oo.EASE_OUT_QUINT}`,Kne=`${Ji.BASE} ${oo.EASE_IN_QUINT}`,a7=Vo("slideMotion",[Co("void",Ke({opacity:0,transform:"scaleY(0.8)"})),Co("enter",Ke({opacity:1,transform:"scaleY(1)"})),un("void => *",[an(qne)]),un("* => void",[an(Kne)])]),Jne=(Vo("slideAlertMotion",[un(":leave",[Ke({opacity:1,transform:"scaleY(1)",transformOrigin:"0% 0%"}),an(`${Ji.SLOW} ${oo.EASE_IN_OUT_CIRC}`,Ke({opacity:0,transform:"scaleY(0)",transformOrigin:"0% 0%"}))])]),Vo("tabSwitchMotion",[Co("leave",Ke({display:"none"})),un("* => enter",[Ke({display:"block",opacity:0}),an(Ji.SLOW)]),un("* => leave, :leave",[Ke({position:"absolute",top:0,left:0,width:"100%"}),an(Ji.SLOW,Ke({opacity:0})),Ke({display:"none"})])])),O3=(Vo("thumbMotion",[Co("from",Ke({transform:"translateX({{ transform }}px)",width:"{{ width }}px"}),{params:{transform:0,width:0}}),Co("to",Ke({transform:"translateX({{ transform }}px)",width:"{{ width }}px"}),{params:{transform:100,width:0}}),un("from => to",an(`300ms ${oo.EASE_IN_OUT}`))]),Vo("zoomBigMotion",[un("void => active",[Ke({opacity:0,transform:"scale(0.8)"}),an(`${Ji.BASE} ${oo.EASE_OUT_CIRC}`,Ke({opacity:1,transform:"scale(1)"}))]),un("active => void",[Ke({opacity:1,transform:"scale(1)"}),an(`${Ji.BASE} ${oo.EASE_IN_OUT_CIRC}`,Ke({opacity:0,transform:"scale(0.8)"}))])]));Vo("zoomBadgeMotion",[un(":enter",[Ke({opacity:0,transform:"scale(0) translate(50%, -50%)"}),an(`${Ji.SLOW} ${oo.EASE_OUT_BACK}`,Ke({opacity:1,transform:"scale(1) translate(50%, -50%)"}))]),un(":leave",[Ke({opacity:1,transform:"scale(1) translate(50%, -50%)"}),an(`${Ji.SLOW} ${oo.EASE_IN_BACK}`,Ke({opacity:0,transform:"scale(0) translate(50%, -50%)"}))])]);let Sn=(()=>{class t{static ngTemplateContextGuard(e,i){return!0}recreateView(){this.viewContainer.clear();const e=this.nzStringTemplateOutlet instanceof Gt;this.embeddedViewRef=this.viewContainer.createEmbeddedView(e?this.nzStringTemplateOutlet:this.templateRef,e?this.nzStringTemplateOutletContext:this.context)}updateContext(){const i=this.nzStringTemplateOutlet instanceof Gt?this.nzStringTemplateOutletContext:this.context,o=this.embeddedViewRef.context;if(i)for(const r of Object.keys(i))o[r]=i[r]}constructor(e,i){this.viewContainer=e,this.templateRef=i,this.embeddedViewRef=null,this.context=new Zne,this.nzStringTemplateOutletContext=null,this.nzStringTemplateOutlet=null}ngOnChanges(e){const{nzStringTemplateOutletContext:i,nzStringTemplateOutlet:o}=e;o&&(this.context.$implicit=o.currentValue),(()=>{let a=!1;return o&&(a=!!o.firstChange||(o.previousValue instanceof Gt||o.currentValue instanceof Gt)),i&&(u=>{const p=Object.keys(u.previousValue||{}),_=Object.keys(u.currentValue||{});if(p.length===_.length){for(const b of _)if(-1===p.indexOf(b))return!0;return!1}return!0})(i)||a})()?this.recreateView():this.updateContext()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzStringTemplateOutlet",""]],inputs:{nzStringTemplateOutletContext:"nzStringTemplateOutletContext",nzStringTemplateOutlet:"nzStringTemplateOutlet"},exportAs:["nzStringTemplateOutlet"],standalone:!0,features:[ke]})}return t})();class Zne{}let Tn=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();var P3=2,KE=.16,Qne=.05,Xne=.05,eie=.15,JE=5,ZE=4,tie=[{index:7,opacity:.15},{index:6,opacity:.25},{index:5,opacity:.3},{index:5,opacity:.45},{index:5,opacity:.65},{index:5,opacity:.85},{index:4,opacity:.9},{index:3,opacity:.95},{index:2,opacity:.97},{index:1,opacity:.98}];function QE(t){var o=M3(t.r,t.g,t.b);return{h:360*o.h,s:o.s,v:o.v}}function I3(t){return"#".concat(D3(t.r,t.g,t.b,!1))}function XE(t,n,e){var i;return(i=Math.round(t.h)>=60&&Math.round(t.h)<=240?e?Math.round(t.h)-P3*n:Math.round(t.h)+P3*n:e?Math.round(t.h)+P3*n:Math.round(t.h)-P3*n)<0?i+=360:i>=360&&(i-=360),i}function ek(t,n,e){return 0===t.h&&0===t.s?t.s:((i=e?t.s-KE*n:n===ZE?t.s+KE:t.s+Qne*n)>1&&(i=1),e&&n===JE&&i>.1&&(i=.1),i<.06&&(i=.06),Number(i.toFixed(2)));var i}function tk(t,n,e){var i;return(i=e?t.v+Xne*n:t.v-eie*n)>1&&(i=1),Number(i.toFixed(2))}function c7(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=[],i=qr(t),o=JE;o>0;o-=1){var r=QE(i),s=I3(qr({h:XE(r,o,!0),s:ek(r,o,!0),v:tk(r,o,!0)}));e.push(s)}e.push(I3(i));for(var a=1;a<=ZE;a+=1){var c=QE(i),l=I3(qr({h:XE(c,a),s:ek(c,a),v:tk(c,a)}));e.push(l)}return"dark"===n.theme?tie.map(function(u){var p=u.index,_=u.opacity,b=I3(function nie(t,n,e){var i=e/100;return{r:(n.r-t.r)*i+t.r,g:(n.g-t.g)*i+t.g,b:(n.b-t.b)*i+t.b}}(qr(n.backgroundColor||"#141414"),qr(e[p]),100*_));return b}):e}var l7={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},Zi={},d7={};Object.keys(l7).forEach(function(t){Zi[t]=c7(l7[t]),Zi[t].primary=Zi[t][5],d7[t]=c7(l7[t],{theme:"dark",backgroundColor:"#141414"}),d7[t].primary=d7[t][5]});class u7{}class t2{}class Bs{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),r=o.toLowerCase(),s=e.slice(i+1).trim();this.maybeSetNormalizedName(o,r),this.headers.has(r)?this.headers.get(r).push(s):this.headers.set(r,[s])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((e,i)=>{this.setHeaderEntries(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof Bs?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new Bs;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Bs?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const o=("a"===n.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const r=n.value;if(r){let s=this.headers.get(e);if(!s)return;s=s.filter(a=>-1===r.indexOf(a)),0===s.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}}setHeaderEntries(n,e){const i=(Array.isArray(e)?e:[e]).map(r=>r.toString()),o=n.toLowerCase();this.headers.set(o,i),this.maybeSetNormalizedName(n,o)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class iie{encodeKey(n){return nk(n)}encodeValue(n){return nk(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const rie=/%(\d[a-f0-9])/gi,sie={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function nk(t){return encodeURIComponent(t).replace(rie,(n,e)=>sie[e]??n)}function N3(t){return`${t}`}class va{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new iie,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function oie(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const r=o.indexOf("="),[s,a]=-1==r?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,r)),n.decodeValue(o.slice(r+1))],c=e.get(s)||[];c.push(a),e.set(s,c)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],o=Array.isArray(i)?i.map(N3):[N3(i)];this.map.set(e,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const o=n[i];Array.isArray(o)?o.forEach(r=>{e.push({param:i,value:r,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new va({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(N3(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const o=i.indexOf(N3(n.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class aie{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function ik(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function ok(t){return typeof Blob<"u"&&t instanceof Blob}function rk(t){return typeof FormData<"u"&&t instanceof FormData}class n2{constructor(n,e,i,o){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function cie(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,r=o):r=i,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),this.transferCache=r.transferCache),this.headers??=new Bs,this.context??=new aie,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":a_.set(b,n.setHeaders[b]),l)),n.setParams&&(u=Object.keys(n.setParams).reduce((_,b)=>_.set(b,n.setParams[b]),u)),new n2(e,i,s,{params:u,headers:l,context:p,reportProgress:c,responseType:o,withCredentials:a,transferCache:r})}}var h7=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}(h7||{});class p7{constructor(n,e=200,i="OK"){this.headers=n.headers||new Bs,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class o2 extends p7{constructor(n={}){super(n),this.type=h7.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new o2({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}function f7(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,transferCache:t.transferCache}}let ak=(()=>{class t{constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof n2)r=e;else{let c,l;c=o.headers instanceof Bs?o.headers:new Bs(o.headers),o.params&&(l=o.params instanceof va?o.params:new va({fromObject:o.params})),r=new n2(e,i,void 0!==o.body?o.body:null,{headers:c,context:o.context,params:l,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const s=We(r).pipe(a1(c=>this.handler.handle(c)));if(e instanceof n2||"events"===o.observe)return s;const a=s.pipe(yt(c=>c instanceof o2));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return a.pipe(Ie(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return a.pipe(Ie(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return a.pipe(Ie(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return a.pipe(Ie(c=>c.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new va).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,f7(o,i))}post(e,i,o={}){return this.request("POST",e,f7(o,i))}put(e,i,o={}){return this.request("PUT",e,f7(o,i))}static#e=this.\u0275fac=function(i){return new(i||t)(R(u7))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();function wk(t={}){const{connector:n=(()=>new N),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:o=!0}=t;return r=>{let s,a,c,l=0,u=!1,p=!1;const _=()=>{a?.unsubscribe(),a=void 0},b=()=>{_(),s=c=void 0,u=p=!1},y=()=>{const z=s;b(),z?.unsubscribe()};return dn((z,E)=>{l++,!p&&!u&&_();const k=c=c??n();E.add(()=>{l--,0===l&&!p&&!u&&(a=v7(y,o))}),k.subscribe(E),!s&&l>0&&(s=new Rt({next:A=>k.next(A),error:A=>{p=!0,_(),a=v7(b,e,A),k.error(A)},complete:()=>{u=!0,_(),a=v7(b,i),k.complete()}}),Ii(z).subscribe(s))})(r)}}function v7(t,n,...e){if(!0===n)return void t();if(!1===n)return;const i=new Rt({next:()=>{i.unsubscribe(),t()}});return Ii(n(...e)).subscribe(i)}const js="[@ant-design/icons-angular]:";function Sk(t){return c7(t)[0]}function R3(t,n){switch(n){case"fill":return`${t}-fill`;case"outline":return`${t}-o`;case"twotone":return`${t}-twotone`;case void 0:return t;default:throw new Error(`${js}Theme "${n}" is not a recognized theme!`)}}function Tk(t){return"object"==typeof t&&"string"==typeof t.name&&("string"==typeof t.theme||void 0===t.theme)&&"string"==typeof t.icon}function L3(t){const n=t.split(":");switch(n.length){case 1:return[t,""];case 2:return[n[1],n[0]];default:throw new Error(`${js}The icon type ${t} is not valid!`)}}function Mk(t){return new Error(`${js}the icon ${t} does not exist or is not registered.`)}function Wie(){return new Error(`${js} tag not found.`)}const Kie=new oe("ant_icons");let Dk=(()=>{class t{set twoToneColor({primaryColor:e,secondaryColor:i}){this._twoToneColorPalette.primaryColor=e,this._twoToneColorPalette.secondaryColor=i||Sk(e)}get twoToneColor(){return{...this._twoToneColorPalette}}get _disableDynamicLoading(){return!1}constructor(e,i,o,r,s){this._rendererFactory=e,this._handler=i,this._document=o,this.sanitizer=r,this._antIcons=s,this.defaultTheme="outline",this._svgDefinitions=new Map,this._svgRenderedDefinitions=new Map,this._inProgressFetches=new Map,this._assetsUrlRoot="",this._twoToneColorPalette={primaryColor:"#333333",secondaryColor:"#E6E6E6"},this._enableJsonpLoading=!1,this._jsonpIconLoad$=new N,this._renderer=this._rendererFactory.createRenderer(null,null),this._handler&&(this._http=new ak(this._handler)),this._antIcons&&this.addIcon(...this._antIcons)}useJsonpLoading(){this._enableJsonpLoading||(this._enableJsonpLoading=!0,window.__ant_icon_load=e=>{this._jsonpIconLoad$.next(e)})}changeAssetsSource(e){this._assetsUrlRoot=e.endsWith("/")?e:e+"/"}addIcon(...e){e.forEach(i=>{this._svgDefinitions.set(R3(i.name,i.theme),i)})}addIconLiteral(e,i){const[o,r]=L3(e);if(!r)throw function $ie(){return new Error(`${js}Type should have a namespace. Try "namespace:${name}".`)}();this.addIcon({name:e,icon:i})}clear(){this._svgDefinitions.clear(),this._svgRenderedDefinitions.clear()}getRenderedContent(e,i){const o=Tk(e)?e:this._svgDefinitions.get(e)||null;if(!o&&this._disableDynamicLoading)throw Mk(e);return(o?We(o):this._loadIconDynamically(e)).pipe(Ie(s=>{if(!s)throw Mk(e);return this._loadSVGFromCacheOrCreateNew(s,i)}))}getCachedIcons(){return this._svgDefinitions}_loadIconDynamically(e){if(!this._http&&!this._enableJsonpLoading)return We(function Yie(){return function Nie(t){console.error(`${js} ${t}.`)}('you need to import "HttpClientModule" to use dynamic importing.'),null}());let i=this._inProgressFetches.get(e);if(!i){const[o,r]=L3(e),s=r?{name:e,icon:""}:function Lie(t){const n=t.split("-"),e=function Fie(t){return"o"===t?"outline":t}(n.splice(n.length-1,1)[0]);return{name:n.join("-"),theme:e,icon:""}}(o),c=(r?`${this._assetsUrlRoot}assets/${r}/${o}`:`${this._assetsUrlRoot}assets/${s.theme}/${s.name}`)+(this._enableJsonpLoading?".js":".svg"),l=this.sanitizer.sanitize(Uo.URL,c);if(!l)throw function Uie(t){return new Error(`${js}The url "${t}" is unsafe.`)}(c);i=(this._enableJsonpLoading?this._loadIconDynamicallyWithJsonp(s,l):this._http.get(l,{responseType:"text"}).pipe(Ie(p=>({...s,icon:p})))).pipe(ii(p=>this.addIcon(p)),c1(()=>this._inProgressFetches.delete(e)),uc(()=>We(null)),wk()),this._inProgressFetches.set(e,i)}return i}_loadIconDynamicallyWithJsonp(e,i){return new Ut(o=>{const r=this._document.createElement("script"),s=setTimeout(()=>{a(),o.error(function Gie(){return new Error(`${js}Importing timeout error.`)}())},6e3);function a(){r.parentNode.removeChild(r),clearTimeout(s)}r.src=i,this._document.body.appendChild(r),this._jsonpIconLoad$.pipe(yt(c=>c.name===e.name&&c.theme===e.theme),io(1)).subscribe(c=>{o.next(c),a()})})}_loadSVGFromCacheOrCreateNew(e,i){let o;const r=i||this._twoToneColorPalette.primaryColor,s=Sk(r)||this._twoToneColorPalette.secondaryColor,a="twotone"===e.theme?function Vie(t,n,e,i){return`${R3(t,n)}-${e}-${i}`}(e.name,e.theme,r,s):void 0===e.theme?e.name:R3(e.name,e.theme),c=this._svgRenderedDefinitions.get(a);return c?o=c.icon:(o=this._setSVGAttribute(this._colorizeSVGIcon(this._createSVGElementFromString(function jie(t){return""!==L3(t)[1]}(e.name)?e.icon:function Bie(t){return t.replace(/['"]#333['"]/g,'"primaryColor"').replace(/['"]#E6E6E6['"]/g,'"secondaryColor"').replace(/['"]#D9D9D9['"]/g,'"secondaryColor"').replace(/['"]#D8D8D8['"]/g,'"secondaryColor"')}(e.icon)),"twotone"===e.theme,r,s)),this._svgRenderedDefinitions.set(a,{...e,icon:o})),function Hie(t){return t.cloneNode(!0)}(o)}_createSVGElementFromString(e){const i=this._document.createElement("div");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Wie;return o}_setSVGAttribute(e){return this._renderer.setAttribute(e,"width","1em"),this._renderer.setAttribute(e,"height","1em"),e}_colorizeSVGIcon(e,i,o,r){if(i){const s=e.childNodes,a=s.length;for(let c=0;c{class t{constructor(e,i,o){this._iconService=e,this._elementRef=i,this._renderer=o}ngOnChanges(e){(e.type||e.theme||e.twoToneColor)&&this._changeIcon()}_changeIcon(){return new Promise(e=>{if(!this.type)return this._clearSVGElement(),void e(null);const i=this._getSelfRenderMeta();this._iconService.getRenderedContent(this._parseIconType(this.type,this.theme),this.twoToneColor).subscribe(o=>{const r=this._getSelfRenderMeta();!function Jie(t,n){return t.type===n.type&&t.theme===n.theme&&t.twoToneColor===n.twoToneColor}(i,r)?e(null):(this._setSVGElement(o),e(o))})})}_getSelfRenderMeta(){return{type:this.type,theme:this.theme,twoToneColor:this.twoToneColor}}_parseIconType(e,i){if(Tk(e))return e;{const[o,r]=L3(e);return r?e:function Rie(t){return t.endsWith("-fill")||t.endsWith("-o")||t.endsWith("-twotone")}(o)?o:R3(o,i||this._iconService.defaultTheme)}}_setSVGElement(e){this._clearSVGElement(),this._renderer.appendChild(this._elementRef.nativeElement,e)}_clearSVGElement(){const e=this._elementRef.nativeElement,i=e.childNodes;for(let r=i.length-1;r>=0;r--){const s=i[r];"svg"===s.tagName?.toLowerCase()&&this._renderer.removeChild(e,s)}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Dk),v(Te),v($t))};static#t=this.\u0275dir=de({type:t,selectors:[["","antIcon",""]],inputs:{type:"type",theme:"theme",twoToneColor:"twoToneColor"},features:[ke]})}return t})();const xk={name:"check",theme:"outline",icon:''},Ek={name:"copy",theme:"outline",icon:''},kk={name:"ellipsis",theme:"outline",icon:''},Ak={name:"loading",theme:"outline",icon:''},Ok={name:"star",theme:"fill",icon:''},Pk={name:"upload",theme:"outline",icon:''},Hoe=[{name:"bars",theme:"outline",icon:''},{name:"calendar",theme:"outline",icon:''},{name:"caret-up",theme:"fill",icon:''},{name:"caret-up",theme:"outline",icon:''},{name:"caret-down",theme:"fill",icon:''},{name:"caret-down",theme:"outline",icon:''},{name:"check-circle",theme:"fill",icon:''},{name:"check-circle",theme:"outline",icon:''},xk,{name:"clock-circle",theme:"outline",icon:''},{name:"close-circle",theme:"outline",icon:''},{name:"close-circle",theme:"fill",icon:''},{name:"close",theme:"outline",icon:''},Ek,{name:"delete",theme:"outline",icon:''},{name:"double-left",theme:"outline",icon:''},{name:"double-right",theme:"outline",icon:''},{name:"down",theme:"outline",icon:''},{name:"edit",theme:"outline",icon:''},kk,{name:"exclamation-circle",theme:"fill",icon:''},{name:"exclamation-circle",theme:"outline",icon:''},{name:"eye",theme:"outline",icon:''},{name:"file",theme:"fill",icon:''},{name:"file",theme:"outline",icon:''},{name:"filter",theme:"fill",icon:''},{name:"info-circle",theme:"fill",icon:''},{name:"info-circle",theme:"outline",icon:''},{name:"left",theme:"outline",icon:''},Ak,{name:"paper-clip",theme:"outline",icon:''},{name:"question-circle",theme:"outline",icon:''},{name:"right",theme:"outline",icon:''},{name:"rotate-right",theme:"outline",icon:''},{name:"rotate-left",theme:"outline",icon:''},Ok,{name:"search",theme:"outline",icon:''},Ok,Pk,{name:"vertical-align-top",theme:"outline",icon:''},{name:"up",theme:"outline",icon:''},{name:"swap",theme:"outline",icon:''},{name:"swap-right",theme:"outline",icon:''},{name:"zoom-in",theme:"outline",icon:''},{name:"zoom-out",theme:"outline",icon:''}],Ik=new oe("nz_icons"),Nk=(new oe("nz_icon_default_twotone_color"),"#1890ff");let Vk=(()=>{class t extends Dk{get _disableDynamicLoading(){return!this.platform.isBrowser}ngOnDestroy(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=null)}normalizeSvgElement(e){e.getAttribute("viewBox")||this._renderer.setAttribute(e,"viewBox","0 0 1024 1024"),(!e.getAttribute("width")||!e.getAttribute("height"))&&(this._renderer.setAttribute(e,"width","1em"),this._renderer.setAttribute(e,"height","1em")),e.getAttribute("fill")||this._renderer.setAttribute(e,"fill","currentColor")}fetchFromIconfont(e){const{scriptUrl:i}=e;if(this._document&&!this.iconfontCache.has(i)){const o=this._renderer.createElement("script");this._renderer.setAttribute(o,"src",i),this._renderer.setAttribute(o,"data-namespace",i.replace(/^(https?|http):/g,"")),this._renderer.appendChild(this._document.body,o),this.iconfontCache.add(i)}}createIconfontIcon(e){return this._createSVGElementFromString(``)}constructor(e,i,o,r,s,a,c){super(e,s,a,i,[...Hoe,...c||[]]),this.nzConfigService=o,this.platform=r,this.configUpdated$=new N,this.iconfontCache=new Set,this.subscription=null,this.onConfigChange(),this.configDefaultTwotoneColor(),this.configDefaultTheme()}onConfigChange(){this.subscription=this.nzConfigService.getConfigChangeEventForComponent("icon").subscribe(()=>{this.configDefaultTwotoneColor(),this.configDefaultTheme(),this.configUpdated$.next()})}configDefaultTheme(){const e=this.getConfig();this.defaultTheme=e.nzTheme||"outline"}configDefaultTwotoneColor(){const i=this.getConfig().nzTwotoneColor||Nk;let o=Nk;i&&i.startsWith("#")&&(o=i),this.twoToneColor={primaryColor:o}}getConfig(){return this.nzConfigService.getConfigForComponent("icon")||{}}static#e=this.\u0275fac=function(i){return new(i||t)(R(Qa),R(_u),R(si),R(qn),R(t2,8),R(It,8),R(Ik,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Fk=new oe("nz_icons_patch");let Rk=(()=>{class t{constructor(e,i){this.extraIcons=e,this.rootIconService=i,this.patched=!1}doPatch(){this.patched||(this.extraIcons.forEach(e=>this.rootIconService.addIcon(e)),this.patched=!0)}static#e=this.\u0275fac=function(i){return new(i||t)(R(Fk,2),R(Vk))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),cn=(()=>{class t extends Zie{set nzSpin(e){this.spin=e}set nzType(e){this.type=e}set nzTheme(e){this.theme=e}set nzTwotoneColor(e){this.twoToneColor=e}set nzIconfont(e){this.iconfont=e}constructor(e,i,o,r,s,a){super(r,o,s),this.ngZone=e,this.changeDetectorRef=i,this.iconService=r,this.renderer=s,this.cacheClassName=null,this.nzRotate=0,this.spin=!1,this.destroy$=new N,a&&a.doPatch(),this.el=o.nativeElement}ngOnChanges(e){const{nzType:i,nzTwotoneColor:o,nzSpin:r,nzTheme:s,nzRotate:a}=e;i||o||r||s?this.changeIcon2():a?this.handleRotate(this.el.firstChild):this._setSVGElement(this.iconService.createIconfontIcon(`#${this.iconfont}`))}ngOnInit(){this.renderer.setAttribute(this.el,"class",`anticon ${this.el.className}`.trim())}ngAfterContentChecked(){if(!this.type){const e=this.el.children;let i=e.length;if(!this.type&&e.length)for(;i--;){const o=e[i];"svg"===o.tagName.toLowerCase()&&this.iconService.normalizeSvgElement(o)}}}ngOnDestroy(){this.destroy$.next()}changeIcon2(){this.setClassName(),this.ngZone.runOutsideAngular(()=>{ni(this._changeIcon()).pipe(I(this.destroy$)).subscribe({next:e=>{this.ngZone.run(()=>{this.changeDetectorRef.detectChanges(),e&&(this.setSVGData(e),this.handleSpin(e),this.handleRotate(e))})},error:Xu})})}handleSpin(e){this.spin||"loading"===this.type?this.renderer.addClass(e,"anticon-spin"):this.renderer.removeClass(e,"anticon-spin")}handleRotate(e){this.nzRotate?this.renderer.setAttribute(e,"style",`transform: rotate(${this.nzRotate}deg)`):this.renderer.removeAttribute(e,"style")}setClassName(){this.cacheClassName&&this.renderer.removeClass(this.el,this.cacheClassName),this.cacheClassName=`anticon-${this.type}`,this.renderer.addClass(this.el,this.cacheClassName)}setSVGData(e){this.renderer.setAttribute(e,"data-icon",this.type),this.renderer.setAttribute(e,"aria-hidden","true")}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Ue),v(Te),v(Vk),v($t),v(Rk,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-icon",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("anticon",!0)},inputs:{nzSpin:[2,"nzSpin","nzSpin",O],nzRotate:[2,"nzRotate","nzRotate",Pi],nzType:"nzType",nzTheme:"nzTheme",nzTwotoneColor:"nzTwotoneColor",nzIconfont:"nzIconfont"},exportAs:["nzIcon"],standalone:!0,features:[je,mt,ke]})}return t})(),On=(()=>{class t{static forRoot(e){return{ngModule:t,providers:[{provide:Ik,useValue:e}]}}static forChild(e){return{ngModule:t,providers:[Rk,{provide:Fk,useValue:e}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const Boe=["addListener","removeListener"],joe=["addEventListener","removeEventListener"],$oe=["on","off"];function nn(t,n,e,i){if(Ct(e)&&(i=e,e=void 0),i)return nn(t,n,e).pipe(fg(i));const[o,r]=function Woe(t){return Ct(t.addEventListener)&&Ct(t.removeEventListener)}(t)?joe.map(s=>a=>t[s](n,a,e)):function Yoe(t){return Ct(t.addListener)&&Ct(t.removeListener)}(t)?Boe.map(Lk(t,n)):function Uoe(t){return Ct(t.on)&&Ct(t.off)}(t)?$oe.map(Lk(t,n)):[];if(!o&&ug(t))return $n(s=>nn(s,n,e))(Ii(t));if(!o)throw new TypeError("Invalid event target");return new Ut(s=>{const a=(...c)=>s.next(1r(a)})}function Lk(t,n){return e=>i=>t[e](n,i)}const r2={schedule(t){let n=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=r2;i&&(n=i.requestAnimationFrame,e=i.cancelAnimationFrame);const o=n(r=>{e=void 0,t(r)});return new Ft(()=>e?.(o))},requestAnimationFrame(...t){const{delegate:n}=r2;return(n?.requestAnimationFrame||requestAnimationFrame)(...t)},cancelAnimationFrame(...t){const{delegate:n}=r2;return(n?.cancelAnimationFrame||cancelAnimationFrame)(...t)},delegate:void 0},_7=new class qoe extends A5{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class Goe extends k5{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=r2.requestAnimationFrame(()=>n.flush(void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(r2.cancelAnimationFrame(e),n._scheduled=void 0)}});let b7,Koe=1;const H3={};function Hk(t){return t in H3&&(delete H3[t],!0)}const Joe={setImmediate(t){const n=Koe++;return H3[n]=!0,b7||(b7=Promise.resolve()),b7.then(()=>Hk(n)&&t()),n},clearImmediate(t){Hk(t)}},{setImmediate:Zoe,clearImmediate:Qoe}=Joe,B3={setImmediate(...t){const{delegate:n}=B3;return(n?.setImmediate||Zoe)(...t)},clearImmediate(t){const{delegate:n}=B3;return(n?.clearImmediate||Qoe)(t)},delegate:void 0},y7=new class ere extends A5{flush(n){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let o;n=n||i.shift();do{if(o=n.execute(n.state,n.delay))break}while((n=i[0])&&n.id===e&&i.shift());if(this._active=!1,o){for(;(n=i[0])&&n.id===e&&i.shift();)n.unsubscribe();throw o}}}(class Xoe extends k5{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}requestAsyncId(n,e,i=0){return null!==i&&i>0?super.requestAsyncId(n,e,i):(n.actions.push(this),n._scheduled||(n._scheduled=B3.setImmediate(n.flush.bind(n,void 0))))}recycleAsyncId(n,e,i=0){var o;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(n,e,i);const{actions:r}=n;null!=e&&(null===(o=r[r.length-1])||void 0===o?void 0:o.id)!==e&&(B3.clearImmediate(e),n._scheduled===e&&(n._scheduled=void 0))}});class ire{}class rre extends ire{constructor(n){super(),this._data=n}connect(){return _0(this._data)?this._data:We(this._data)}disconnect(){}}var ba=function(t){return t[t.REPLACED=0]="REPLACED",t[t.INSERTED=1]="INSERTED",t[t.MOVED=2]="MOVED",t[t.REMOVED=3]="REMOVED",t}(ba||{});const Bk=new oe("_ViewRepeater");class sre{constructor(){this.viewCacheSize=20,this._viewCache=[]}applyChanges(n,e,i,o,r){n.forEachOperation((s,a,c)=>{let l,u;null==s.previousIndex?(l=this._insertView(()=>i(s,a,c),c,e,o(s)),u=l?ba.INSERTED:ba.REPLACED):null==c?(this._detachAndCacheView(a,e),u=ba.REMOVED):(l=this._moveView(a,c,e,o(s)),u=ba.MOVED),r&&r({context:l?.context,operation:u,record:s})})}detach(){for(const n of this._viewCache)n.destroy();this._viewCache=[]}_insertView(n,e,i,o){const r=this._insertViewFromCache(e,i);if(r)return void(r.context.$implicit=o);const s=n();return i.createEmbeddedView(s.templateRef,s.context,s.index)}_detachAndCacheView(n,e){const i=e.detach(n);this._maybeCacheView(i,e)}_moveView(n,e,i,o){const r=i.get(n);return i.move(r,e),r.context.$implicit=o,r}_maybeCacheView(n,e){if(this._viewCache.length0?r/this._itemSize:0;if(e.end>o){const c=Math.ceil(i/this._itemSize),l=Math.max(0,Math.min(s,o-c));s!=l&&(s=l,r=l*this._itemSize,e.start=Math.floor(s)),e.end=Math.max(0,Math.min(o,e.start+c))}const a=r-e.start*this._itemSize;if(a0&&(e.end=Math.min(o,e.end+l),e.start=Math.max(0,Math.floor(s-this._minBufferPx/this._itemSize)))}}this._viewport.setRenderedRange(e),this._viewport.setRenderedContentOffset(this._itemSize*e.start),this._scrolledIndexChange.next(Math.floor(s))}}function dre(t){return t._scrollStrategy}let $k=(()=>{class t{constructor(){this._itemSize=20,this._minBufferPx=100,this._maxBufferPx=200,this._scrollStrategy=new lre(this.itemSize,this.minBufferPx,this.maxBufferPx)}get itemSize(){return this._itemSize}set itemSize(e){this._itemSize=Rs(e)}get minBufferPx(){return this._minBufferPx}set minBufferPx(e){this._minBufferPx=Rs(e)}get maxBufferPx(){return this._maxBufferPx}set maxBufferPx(e){this._maxBufferPx=Rs(e)}ngOnChanges(){this._scrollStrategy.updateItemAndBufferSize(this.itemSize,this.minBufferPx,this.maxBufferPx)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["cdk-virtual-scroll-viewport","itemSize",""]],inputs:{itemSize:"itemSize",minBufferPx:"minBufferPx",maxBufferPx:"maxBufferPx"},standalone:!0,features:[et([{provide:jk,useFactory:dre,deps:[Wt(()=>t)]}]),ke]})}return t})(),s2=(()=>{class t{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new N,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new Ut(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(_c(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):We()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(yt(r=>!r||o.indexOf(r)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,r)=>{this._scrollableContainsElement(r,e)&&i.push(r)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=Ni(i),r=e.getElementRef().nativeElement;do{if(o==r)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>nn(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static#e=this.\u0275fac=function(i){return new(i||t)(R(De),R(qn),R(It,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Yk=(()=>{class t{constructor(e,i,o,r){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=r,this._destroyed=new N,this._elementScrolled=new Ut(s=>this.ngZone.runOutsideAngular(()=>nn(this.elementRef.nativeElement,"scroll").pipe(I(this._destroyed)).subscribe(s)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&Gu()!=ms.NORMAL?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),Gu()==ms.INVERTED?e.left=e.right:Gu()==ms.NEGATED&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;rE()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",r=this.elementRef.nativeElement;if("top"==e)return r.scrollTop;if("bottom"==e)return r.scrollHeight-r.clientHeight-r.scrollTop;const s=this.dir&&"rtl"==this.dir.value;return"start"==e?e=s?o:i:"end"==e&&(e=s?i:o),s&&Gu()==ms.INVERTED?e==i?r.scrollWidth-r.clientWidth-r.scrollLeft:r.scrollLeft:s&&Gu()==ms.NEGATED?e==i?r.scrollLeft+r.scrollWidth-r.clientWidth:-r.scrollLeft:e==i?r.scrollLeft:r.scrollWidth-r.clientWidth-r.scrollLeft}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(s2),v(De),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0})}return t})(),a2=(()=>{class t{constructor(e,i,o){this._platform=e,this._change=new N,this._changeListener=r=>{this._change.next(r)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const r=this._getWindow();r.addEventListener("resize",this._changeListener),r.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,r=o.getBoundingClientRect();return{top:-r.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-r.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(_c(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn),R(De),R(It,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Uk=new oe("VIRTUAL_SCROLLABLE");let pre=(()=>{class t extends Yk{constructor(e,i,o,r){super(e,i,o,r)}measureViewportSize(e){const i=this.elementRef.nativeElement;return"horizontal"===e?i.clientWidth:i.clientHeight}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(s2),v(De),v(wt,8))};static#t=this.\u0275dir=de({type:t,features:[mt]})}return t})();const mre=typeof requestAnimationFrame<"u"?_7:y7;let E1=(()=>{class t extends pre{get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this._calculateSpacerSize())}constructor(e,i,o,r,s,a,c,l){super(e,a,o,s),this.elementRef=e,this._changeDetectorRef=i,this._scrollStrategy=r,this.scrollable=l,this._platform=W(qn),this._detachedSubject=new N,this._renderedRangeSubject=new N,this._orientation="vertical",this.appendOnly=!1,this.scrolledIndexChange=new Ut(u=>this._scrollStrategy.scrolledIndexChange.subscribe(p=>Promise.resolve().then(()=>this.ngZone.run(()=>u.next(p))))),this.renderedRangeStream=this._renderedRangeSubject,this._totalContentSize=0,this._totalContentWidth="",this._totalContentHeight="",this._renderedRange={start:0,end:0},this._dataLength=0,this._viewportSize=0,this._renderedContentOffset=0,this._renderedContentOffsetNeedsRewrite=!1,this._isChangeDetectionPending=!1,this._runAfterChangeDetection=[],this._viewportChanges=Ft.EMPTY,this._injector=W(tn),this._isDestroyed=!1,this._viewportChanges=c.change().subscribe(()=>{this.checkViewportSize()}),this.scrollable||(this.elementRef.nativeElement.classList.add("cdk-virtual-scrollable"),this.scrollable=this)}ngOnInit(){this._platform.isBrowser&&(this.scrollable===this&&super.ngOnInit(),this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._measureViewportSize(),this._scrollStrategy.attach(this),this.scrollable.elementScrolled().pipe(gn(null),_c(0,mre),I(this._destroyed)).subscribe(()=>this._scrollStrategy.onContentScrolled()),this._markChangeDetectionNeeded()})))}ngOnDestroy(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),this._isDestroyed=!0,super.ngOnDestroy()}attach(e){this.ngZone.runOutsideAngular(()=>{this._forOf=e,this._forOf.dataStream.pipe(I(this._detachedSubject)).subscribe(i=>{const o=i.length;o!==this._dataLength&&(this._dataLength=o,this._scrollStrategy.onDataLengthChanged()),this._doChangeDetection()})})}detach(){this._forOf=null,this._detachedSubject.next()}getDataLength(){return this._dataLength}getViewportSize(){return this._viewportSize}getRenderedRange(){return this._renderedRange}measureBoundingClientRectWithScrollOffset(e){return this.getElementRef().nativeElement.getBoundingClientRect()[e]}setTotalContentSize(e){this._totalContentSize!==e&&(this._totalContentSize=e,this._calculateSpacerSize(),this._markChangeDetectionNeeded())}setRenderedRange(e){(function fre(t,n){return t.start==n.start&&t.end==n.end})(this._renderedRange,e)||(this.appendOnly&&(e={start:0,end:Math.max(this._renderedRange.end,e.end)}),this._renderedRangeSubject.next(this._renderedRange=e),this._markChangeDetectionNeeded(()=>this._scrollStrategy.onContentRendered()))}getOffsetToRenderedContentStart(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset}setRenderedContentOffset(e,i="to-start"){e=this.appendOnly&&"to-start"===i?0:e;const r="horizontal"==this.orientation,s=r?"X":"Y";let c=`translate${s}(${Number((r&&this.dir&&"rtl"==this.dir.value?-1:1)*e)}px)`;this._renderedContentOffset=e,"to-end"===i&&(c+=` translate${s}(-100%)`,this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=c&&(this._renderedContentTransform=c,this._markChangeDetectionNeeded(()=>{this._renderedContentOffsetNeedsRewrite?(this._renderedContentOffset-=this.measureRenderedContentSize(),this._renderedContentOffsetNeedsRewrite=!1,this.setRenderedContentOffset(this._renderedContentOffset)):this._scrollStrategy.onRenderedOffsetChanged()}))}scrollToOffset(e,i="auto"){const o={behavior:i};"horizontal"===this.orientation?o.start=e:o.top=e,this.scrollable.scrollTo(o)}scrollToIndex(e,i="auto"){this._scrollStrategy.scrollToIndex(e,i)}measureScrollOffset(e){let i;return i=this.scrollable==this?o=>super.measureScrollOffset(o):o=>this.scrollable.measureScrollOffset(o),Math.max(0,i(e??("horizontal"===this.orientation?"start":"top"))-this.measureViewportOffset())}measureViewportOffset(e){let i;const o="left",r="right",s="rtl"==this.dir?.value;i="start"==e?s?r:o:"end"==e?s?o:r:e||("horizontal"===this.orientation?"left":"top");const a=this.scrollable.measureBoundingClientRectWithScrollOffset(i);return this.elementRef.nativeElement.getBoundingClientRect()[i]-a}measureRenderedContentSize(){const e=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?e.offsetWidth:e.offsetHeight}measureRangeSize(e){return this._forOf?this._forOf.measureRangeSize(e,this.orientation):0}checkViewportSize(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()}_measureViewportSize(){this._viewportSize=this.scrollable.measureViewportSize(this.orientation)}_markChangeDetectionNeeded(e){e&&this._runAfterChangeDetection.push(e),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._doChangeDetection()})))}_doChangeDetection(){this._isDestroyed||this.ngZone.run(()=>{this._changeDetectorRef.markForCheck(),this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,Xa(()=>{this._isChangeDetectionPending=!1;const e=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(const i of e)i()},{injector:this._injector})})}_calculateSpacerSize(){this._totalContentHeight="horizontal"===this.orientation?"":`${this._totalContentSize}px`,this._totalContentWidth="horizontal"===this.orientation?`${this._totalContentSize}px`:""}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Ue),v(De),v(jk,8),v(wt,8),v(s2),v(a2),v(Uk,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(i,o){if(1&i&&ft(are,7),2&i){let r;Ae(r=Oe())&&(o._contentWrapper=r.first)}},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(i,o){2&i&&Q("cdk-virtual-scroll-orientation-horizontal","horizontal"===o.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==o.orientation)},inputs:{orientation:"orientation",appendOnly:[2,"appendOnly","appendOnly",O]},outputs:{scrolledIndexChange:"scrolledIndexChange"},standalone:!0,features:[et([{provide:Yk,useFactory:(e,i)=>e||i,deps:[[new ed,new H9(Uk)],t]}]),je,mt,me],ngContentSelectors:cre,decls:4,vars:4,consts:[["contentWrapper",""],[1,"cdk-virtual-scroll-content-wrapper"],[1,"cdk-virtual-scroll-spacer"]],template:function(i,o){1&i&&(Et(),f(0,"div",1,0),bt(2),m(),S(3,"div",2)),2&i&&(d(3),Lt("width",o._totalContentWidth)("height",o._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"],encapsulation:2,changeDetection:0})}return t})();function Wk(t,n,e){if(!e.getBoundingClientRect)return 0;const o=e.getBoundingClientRect();return"horizontal"===t?"start"===n?o.left:o.right:"start"===n?o.top:o.bottom}let Gk=(()=>{class t{get cdkVirtualForOf(){return this._cdkVirtualForOf}set cdkVirtualForOf(e){this._cdkVirtualForOf=e,function ore(t){return t&&"function"==typeof t.connect&&!(t instanceof vg)}(e)?this._dataSourceChanges.next(e):this._dataSourceChanges.next(new rre(_0(e)?e:Array.from(e||[])))}get cdkVirtualForTrackBy(){return this._cdkVirtualForTrackBy}set cdkVirtualForTrackBy(e){this._needsUpdate=!0,this._cdkVirtualForTrackBy=e?(i,o)=>e(i+(this._renderedRange?this._renderedRange.start:0),o):void 0}set cdkVirtualForTemplate(e){e&&(this._needsUpdate=!0,this._template=e)}get cdkVirtualForTemplateCacheSize(){return this._viewRepeater.viewCacheSize}set cdkVirtualForTemplateCacheSize(e){this._viewRepeater.viewCacheSize=Rs(e)}constructor(e,i,o,r,s,a){this._viewContainerRef=e,this._template=i,this._differs=o,this._viewRepeater=r,this._viewport=s,this.viewChange=new N,this._dataSourceChanges=new N,this.dataStream=this._dataSourceChanges.pipe(gn(null),function tre(){return dn((t,n)=>{let e,i=!1;t.subscribe(Zt(n,o=>{const r=e;e=o,i&&n.next([r,o]),i=!0}))})}(),mn(([c,l])=>this._changeDataSource(c,l)),function nre(t,n,e){let i,o=!1;return t&&"object"==typeof t?({bufferSize:i=1/0,windowTime:n=1/0,refCount:o=!1,scheduler:e}=t):i=t??1/0,wk({connector:()=>new fi(i,n,e),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:o})}(1)),this._differ=null,this._needsUpdate=!1,this._destroyed=new N,this.dataStream.subscribe(c=>{this._data=c,this._onRenderedDataChange()}),this._viewport.renderedRangeStream.pipe(I(this._destroyed)).subscribe(c=>{this._renderedRange=c,this.viewChange.observers.length&&a.run(()=>this.viewChange.next(this._renderedRange)),this._onRenderedDataChange()}),this._viewport.attach(this)}measureRangeSize(e,i){if(e.start>=e.end)return 0;const o=e.start-this._renderedRange.start,r=e.end-e.start;let s,a;for(let c=0;c-1;c--){const l=this._viewContainerRef.get(c+o);if(l&&l.rootNodes.length){a=l.rootNodes[l.rootNodes.length-1];break}}return s&&a?Wk(i,"end",a)-Wk(i,"start",s):0}ngDoCheck(){if(this._differ&&this._needsUpdate){const e=this._differ.diff(this._renderedItems);e?this._applyChanges(e):this._updateContext(),this._needsUpdate=!1}}ngOnDestroy(){this._viewport.detach(),this._dataSourceChanges.next(void 0),this._dataSourceChanges.complete(),this.viewChange.complete(),this._destroyed.next(),this._destroyed.complete(),this._viewRepeater.detach()}_onRenderedDataChange(){this._renderedRange&&(this._renderedItems=this._data.slice(this._renderedRange.start,this._renderedRange.end),this._differ||(this._differ=this._differs.find(this._renderedItems).create((e,i)=>this.cdkVirtualForTrackBy?this.cdkVirtualForTrackBy(e,i):i)),this._needsUpdate=!0)}_changeDataSource(e,i){return e&&e.disconnect(this),this._needsUpdate=!0,i?i.connect(this):We()}_updateContext(){const e=this._data.length;let i=this._viewContainerRef.length;for(;i--;){const o=this._viewContainerRef.get(i);o.context.index=this._renderedRange.start+i,o.context.count=e,this._updateComputedContextProperties(o.context),o.detectChanges()}}_applyChanges(e){this._viewRepeater.applyChanges(e,this._viewContainerRef,(r,s,a)=>this._getEmbeddedViewArgs(r,a),r=>r.item),e.forEachIdentityChange(r=>{this._viewContainerRef.get(r.currentIndex).context.$implicit=r.item});const i=this._data.length;let o=this._viewContainerRef.length;for(;o--;){const r=this._viewContainerRef.get(o);r.context.index=this._renderedRange.start+o,r.context.count=i,this._updateComputedContextProperties(r.context)}}_updateComputedContextProperties(e){e.first=0===e.index,e.last=e.index===e.count-1,e.even=e.index%2==0,e.odd=!e.even}_getEmbeddedViewArgs(e,i){return{templateRef:this._template,context:{$implicit:e.item,cdkVirtualForOf:this._cdkVirtualForOf,index:-1,count:-1,first:!1,last:!1,odd:!1,even:!1},index:i}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gn),v(Gt),v(q4),v(Bk),v(E1,4),v(De))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkVirtualFor","","cdkVirtualForOf",""]],inputs:{cdkVirtualForOf:"cdkVirtualForOf",cdkVirtualForTrackBy:"cdkVirtualForTrackBy",cdkVirtualForTemplate:"cdkVirtualForTemplate",cdkVirtualForTemplateCacheSize:"cdkVirtualForTemplateCacheSize"},standalone:!0,features:[et([{provide:Bk,useClass:sre}])]})}return t})(),C7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})(),w7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[_3,C7,_3,C7]})}return t})();function Pn(...t){const n=bu(t),e=function HJ(t,n){return"number"==typeof hg(t)?t.pop():n}(t,1/0),i=t;return i.length?1===i.length?Ii(i[0]):s1(e)(ni(i,n)):bo}function l2(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const Kk=rE();class Are{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=ri(-this._previousScrollPosition.left),n.style.top=ri(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,o=this._document.body.style,r=i.scrollBehavior||"",s=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),Kk&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),Kk&&(i.scrollBehavior=r,o.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class Ore{constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(yt(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class Jk{enable(){}disable(){}attach(){}}function z7(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function Zk(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class Pre{constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();z7(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Ire=(()=>{class t{constructor(e,i,o,r){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new Jk,this.close=s=>new Ore(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new Are(this._viewportRuler,this._document),this.reposition=s=>new Pre(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=r}static#e=this.\u0275fac=function(i){return new(i||t)(R(s2),R(a2),R(De),R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();class S7{constructor(n){if(this.scrollStrategy=new Jk,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class Fn{constructor(n,e,i,o,r){this.offsetX=i,this.offsetY=o,this.panelClass=r,this.originX=n.originX,this.originY=n.originY,this.overlayX=e.overlayX,this.overlayY=e.overlayY}}class Nre{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let Qk=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static#e=this.\u0275fac=function(i){return new(i||t)(R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Vre=(()=>{class t extends Qk{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const r=this._attachedOverlays;for(let s=r.length-1;s>-1;s--)if(r[s]._keydownEvents.observers.length>0){const a=r[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>a.next(o)):a.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R(De,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Fre=(()=>{class t extends Qk{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=r=>{this._pointerDownEventTarget=Io(r)},this._clickListener=r=>{const s=Io(r),a="click"===r.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const c=this._attachedOverlays.slice();for(let l=c.length-1;l>-1;l--){const u=c[l];if(u._outsidePointerEvents.observers.length<1||!u.hasAttached())continue;if(Xk(u.overlayElement,s)||Xk(u.overlayElement,a))break;const p=u._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>p.next(r)):p.next(r)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R(qn),R(De,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Xk(t,n){const e=typeof ShadowRoot<"u"&&ShadowRoot;let i=n;for(;i;){if(i===t)return!0;i=e&&i instanceof ShadowRoot?i.host:i.parentNode}return!1}let eA=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||sE()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let r=0;rthis._backdropClick.next(_),this._backdropTransitionendHandler=_=>{this._disposeBackdrop(_.target)},this._keydownEvents=new N,this._outsidePointerEvents=new N,this._renders=new N,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy,this._afterRenderRef=Pm(()=>function bC(t,n){!n&&_h();const e=n?.injector??W(tn);if(!ko(e))return _C;mo("NgAfterRender");const i=e.get(Hd),o=i.handler??=new CC,r=n?.phase??ia.MixedReadWrite,s=()=>{o.unregister(c),a()},a=e.get(yl).onDestroy(s),c=Er(e,()=>new yC(r,t));return o.register(c),{destroy:s}}(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),Xa(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=ri(this._config.width),n.height=ri(this._config.height),n.minWidth=ri(this._config.minWidth),n.minHeight=ri(this._config.minHeight),n.maxWidth=ri(this._config.maxWidth),n.maxHeight=ri(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const o=Uu(e||[]).filter(r=>!!r);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{const n=this._renders.pipe(I(Pn(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const tA="cdk-overlay-connected-position-bounding-box",Rre=/([A-Za-z%]+)$/;class Lre{get positions(){return this._preferredPositions}constructor(n,e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new N,this._resizeSubscription=Ft.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(tA),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,r=[];let s;for(let a of this._preferredPositions){let c=this._getOriginPoint(n,o,a),l=this._getOverlayPoint(c,e,a),u=this._getOverlayFit(l,e,i,a);if(u.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,c);this._canFitWithFlexibleDimensions(u,l,i)?r.push({position:a,origin:c,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(c,a)}):(!s||s.overlayFit.visibleAreac&&(c=u,a=l)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&Sc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(tA),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let o,r;if("center"==i.originX)o=n.left+n.width/2;else{const s=this._isRtl()?n.right:n.left,a=this._isRtl()?n.left:n.right;o="start"==i.originX?s:a}return e.left<0&&(o-=e.left),r="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(r-=e.top),{x:o,y:r}}_getOverlayPoint(n,e,i){let o,r;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,r="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+o,y:n.y+r}}_getOverlayFit(n,e,i,o){const r=iA(e);let{x:s,y:a}=n,c=this._getOffset(o,"x"),l=this._getOffset(o,"y");c&&(s+=c),l&&(a+=l);let _=0-a,b=a+r.height-i.height,y=this._subtractOverflows(r.width,0-s,s+r.width-i.width),z=this._subtractOverflows(r.height,_,b),E=y*z;return{visibleArea:E,isCompletelyWithinViewport:r.width*r.height===E,fitsInViewportVertically:z===r.height,fitsInViewportHorizontally:y==r.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,r=i.right-e.x,s=nA(this._overlayRef.getConfig().minHeight),a=nA(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=s&&s<=o)&&(n.fitsInViewportHorizontally||null!=a&&a<=r)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const o=iA(e),r=this._viewportRect,s=Math.max(n.x+o.width-r.width,0),a=Math.max(n.y+o.height-r.height,0),c=Math.max(r.top-i.top-n.y,0),l=Math.max(r.left-i.left-n.x,0);let u=0,p=0;return u=o.width<=r.width?l||-s:n.xy&&!this._isInitialRender&&!this._growAfterOpen&&(s=n.y-y/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)_=i.width-n.x+2*this._viewportMargin,u=n.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)p=n.x,u=i.right-n.x;else{const b=Math.min(i.right-n.x+i.left,n.x),y=this._lastBoundingBoxSize.width;u=2*b,p=n.x-b,u>y&&!this._isInitialRender&&!this._growAfterOpen&&(p=n.x-y/2)}return{top:s,left:p,bottom:a,right:_,width:u,height:r}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const r=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;o.height=ri(i.height),o.top=ri(i.top),o.bottom=ri(i.bottom),o.width=ri(i.width),o.left=ri(i.left),o.right=ri(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",r&&(o.maxHeight=ri(r)),s&&(o.maxWidth=ri(s))}this._lastBoundingBoxSize=i,Sc(this._boundingBox.style,o)}_resetBoundingBoxStyles(){Sc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){Sc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),r=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(o){const u=this._viewportRuler.getViewportScrollPosition();Sc(i,this._getExactOverlayY(e,n,u)),Sc(i,this._getExactOverlayX(e,n,u))}else i.position="static";let a="",c=this._getOffset(e,"x"),l=this._getOffset(e,"y");c&&(a+=`translateX(${c}px) `),l&&(a+=`translateY(${l}px)`),i.transform=a.trim(),s.maxHeight&&(o?i.maxHeight=ri(s.maxHeight):r&&(i.maxHeight="")),s.maxWidth&&(o?i.maxWidth=ri(s.maxWidth):r&&(i.maxWidth="")),Sc(this._pane.style,i)}_getExactOverlayY(n,e,i){let o={top:"",bottom:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),"bottom"===n.overlayY?o.bottom=this._document.documentElement.clientHeight-(r.y+this._overlayRect.height)+"px":o.top=ri(r.y),o}_getExactOverlayX(n,e,i){let s,o={left:"",right:""},r=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(r=this._pushOverlayOnScreen(r,this._overlayRect,i)),s=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===s?o.right=this._document.documentElement.clientWidth-(r.x+this._overlayRect.width)+"px":o.left=ri(r.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:Zk(n,i),isOriginOutsideView:z7(n,i),isOverlayClipped:Zk(e,i),isOverlayOutsideView:z7(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,o)=>i-Math.max(o,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Uu(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof Te)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function Sc(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function nA(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(Rre);return e&&"px"!==e?null:parseFloat(n)}return t||null}function iA(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const oA="cdk-global-overlay-wrapper";class Bre{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(oA),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:r,maxWidth:s,maxHeight:a}=i,c=!("100%"!==o&&"100vw"!==o||s&&"100%"!==s&&"100vw"!==s),l=!("100%"!==r&&"100vh"!==r||a&&"100%"!==a&&"100vh"!==a),u=this._xPosition,p=this._xOffset,_="rtl"===this._overlayRef.getConfig().direction;let b="",y="",z="";c?z="flex-start":"center"===u?(z="center",_?y=p:b=p):_?"left"===u||"end"===u?(z="flex-end",b=p):("right"===u||"start"===u)&&(z="flex-start",y=p):"left"===u||"start"===u?(z="flex-start",b=p):("right"===u||"end"===u)&&(z="flex-end",y=p),n.position=this._cssPosition,n.marginLeft=c?"0":b,n.marginTop=l?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=c?"0":y,e.justifyContent=z,e.alignItems=l?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(oA),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let jre=(()=>{class t{constructor(e,i,o,r){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=r}global(){return new Bre}flexibleConnectedTo(e){return new Lre(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static#e=this.\u0275fac=function(i){return new(i||t)(R(a2),R(It),R(qn),R(eA))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),$re=0,ya=(()=>{class t{constructor(e,i,o,r,s,a,c,l,u,p,_,b){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=r,this._keyboardDispatcher=s,this._injector=a,this._ngZone=c,this._document=l,this._directionality=u,this._location=p,this._outsideClickDispatcher=_,this._animationsModuleType=b}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),r=this._createPortalOutlet(o),s=new S7(e);return s.direction=s.direction||this._directionality.value,new W3(r,i,o,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType,this._injector.get(Li))}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+$re++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Ko)),new bne(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static#e=this.\u0275fac=function(i){return new(i||t)(R(Ire),R(eA),R(Il),R(jre),R(Vre),R(tn),R(De),R(It),R(wt),R(o1),R(Fre),R(ta,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Yre=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],rA=new oe("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const t=W(ya);return()=>t.scrollStrategies.reposition()}});let Tc=(()=>{class t{constructor(e){this.elementRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0})}return t})(),Mc=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get disposeOnNavigation(){return this._disposeOnNavigation}set disposeOnNavigation(e){this._disposeOnNavigation=e}constructor(e,i,o,r,s){this._overlay=e,this._dir=s,this._backdropSubscription=Ft.EMPTY,this._attachSubscription=Ft.EMPTY,this._detachSubscription=Ft.EMPTY,this._positionSubscription=Ft.EMPTY,this._disposeOnNavigation=!1,this._ngZone=W(De),this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.hasBackdrop=!1,this.lockPosition=!1,this.flexibleDimensions=!1,this.growAfterOpen=!1,this.push=!1,this.backdropClick=new H,this.positionChange=new H,this.attach=new H,this.detach=new H,this.overlayKeydown=new H,this.overlayOutsideClick=new H,this._templatePortal=new Zu(i,o),this._scrollStrategyFactory=r,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Yre);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!l2(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{const o=this._getOriginElement(),r=Io(i);(!o||o!==r&&!o.contains(r))&&this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new S7({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop,disposeOnNavigation:this.disposeOnNavigation});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getOrigin());return this._updatePositionStrategy(e),e}_getOrigin(){return this.origin instanceof Tc?this.origin.elementRef:this.origin}_getOriginElement(){return this.origin instanceof Tc?this.origin.elementRef.nativeElement:this.origin instanceof Te?this.origin.nativeElement:typeof Element<"u"&&this.origin instanceof Element?this.origin:null}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function gre(t,n=!1){return dn((e,i)=>{let o=0;e.subscribe(Zt(i,r=>{const s=t(r,o++);(s||n)&&i.next(r),!s&&i.complete()}))})}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this._ngZone.run(()=>this.positionChange.emit(e)),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(v(ya),v(Gt),v(Gn),v(rA),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:[0,"cdkConnectedOverlayOrigin","origin"],positions:[0,"cdkConnectedOverlayPositions","positions"],positionStrategy:[0,"cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:[0,"cdkConnectedOverlayOffsetX","offsetX"],offsetY:[0,"cdkConnectedOverlayOffsetY","offsetY"],width:[0,"cdkConnectedOverlayWidth","width"],height:[0,"cdkConnectedOverlayHeight","height"],minWidth:[0,"cdkConnectedOverlayMinWidth","minWidth"],minHeight:[0,"cdkConnectedOverlayMinHeight","minHeight"],backdropClass:[0,"cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:[0,"cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:[0,"cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:[0,"cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:[0,"cdkConnectedOverlayOpen","open"],disableClose:[0,"cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:[0,"cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:[2,"cdkConnectedOverlayHasBackdrop","hasBackdrop",O],lockPosition:[2,"cdkConnectedOverlayLockPosition","lockPosition",O],flexibleDimensions:[2,"cdkConnectedOverlayFlexibleDimensions","flexibleDimensions",O],growAfterOpen:[2,"cdkConnectedOverlayGrowAfterOpen","growAfterOpen",O],push:[2,"cdkConnectedOverlayPush","push",O],disposeOnNavigation:[2,"cdkConnectedOverlayDisposeOnNavigation","disposeOnNavigation",O]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[je,ke]})}return t})();const Wre={provide:rA,deps:[ya],useFactory:function Ure(t){return()=>t.scrollStrategies.reposition()}};let d2=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[ya,Wre],imports:[_3,z3,w7,w7]})}return t})();function Gre(t,n){1&t&&S(0,"span",10)}function qre(t,n){1&t&&S(0,"span",11)}function Kre(t,n){1&t&&S(0,"span",12)}function Jre(t,n){1&t&&S(0,"span",13)}function Zre(t,n){1&t&&S(0,"span",14)}function Qre(t,n){if(1&t&&($e(0),S(1,"span",15),Ye()),2&t){const e=g();d(),h("innerHTML",e.instance.content,Wn)}}function Xre(t,n){if(1&t){const e=U();f(0,"nz-message",2),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)}let ese=0;class sA{constructor(n,e,i){this.nzSingletonService=n,this.overlay=e,this.injector=i}remove(n){this.container&&(n?this.container.remove(n):this.container.removeAll())}getInstanceId(){return`${this.componentPrefix}-${ese++}`}withContainer(n){let e=this.nzSingletonService.getSingletonWithKey(this.componentPrefix);if(e)return e;const i=this.overlay.create({hasBackdrop:!1,scrollStrategy:this.overlay.scrollStrategies.noop(),positionStrategy:this.overlay.position().global()}),o=new Ju(n,null,this.injector),r=i.attach(o);return i.hostElement.style.zIndex="1010",e||(this.container=e=r.instance,this.nzSingletonService.registerSingletonWithKey(this.componentPrefix,e),this.container.afterAllInstancesRemoved.subscribe(()=>{this.container=void 0,this.nzSingletonService.unregisterSingletonWithKey(this.componentPrefix),i.dispose()})),e}}let aA=(()=>{class t{constructor(e,i){this.cdr=e,this.nzConfigService=i,this.instances=[],this._afterAllInstancesRemoved=new N,this.afterAllInstancesRemoved=this._afterAllInstancesRemoved.asObservable(),this.destroy$=new N,this.updateConfig()}ngOnInit(){this.subscribeConfigChange()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}create(e){const i=this.onCreate(e);return this.instances.length>=this.config.nzMaxStack&&(this.instances=this.instances.slice(1)),this.instances=[...this.instances,i],this.readyInstances(),i}remove(e,i=!1){this.instances.map((o,r)=>({index:r,instance:o})).filter(({instance:o})=>o.messageId===e).forEach(({index:o,instance:r})=>{this.instances.splice(o,1),this.instances=[...this.instances],this.onRemove(r,i),this.readyInstances()}),this.instances.length||this.onAllInstancesRemoved()}removeAll(){this.instances.forEach(e=>this.onRemove(e,!1)),this.instances=[],this.readyInstances(),this.onAllInstancesRemoved()}onCreate(e){return e.options=this.mergeOptions(e.options),e.onClose=new N,e}onRemove(e,i){e.onClose.next(i),e.onClose.complete()}onAllInstancesRemoved(){this._afterAllInstancesRemoved.next(),this._afterAllInstancesRemoved.complete()}readyInstances(){this.cdr.detectChanges()}mergeOptions(e){const{nzDuration:i,nzAnimate:o,nzPauseOnHover:r}=this.config;return{nzDuration:i,nzAnimate:o,nzPauseOnHover:r,...e}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(si))};static#t=this.\u0275dir=de({type:t})}return t})(),cA=(()=>{class t{constructor(e){this.cdr=e,this.destroyed=new H,this.animationStateChanged=new N,this.userAction=!1}ngOnInit(){this.options=this.instance.options,this.options.nzAnimate&&(this.instance.state="enter",this.animationStateChanged.pipe(yt(e=>"done"===e.phaseName&&"leave"===e.toState),io(1)).subscribe(()=>{clearTimeout(this.closeTimer),this.destroyed.next({id:this.instance.messageId,userAction:this.userAction})})),this.autoClose=this.options.nzDuration>0,this.autoClose&&(this.initErase(),this.startEraseTimeout())}ngOnDestroy(){this.autoClose&&this.clearEraseTimeout(),this.animationStateChanged.complete()}onEnter(){this.autoClose&&this.options.nzPauseOnHover&&(this.clearEraseTimeout(),this.updateTTL())}onLeave(){this.autoClose&&this.options.nzPauseOnHover&&this.startEraseTimeout()}destroy(e=!1){this.userAction=e,this.options.nzAnimate?(this.instance.state="leave",this.cdr.detectChanges(),this.closeTimer=setTimeout(()=>{this.closeTimer=void 0,this.destroyed.next({id:this.instance.messageId,userAction:e})},200)):this.destroyed.next({id:this.instance.messageId,userAction:e})}initErase(){this.eraseTTL=this.options.nzDuration,this.eraseTimingStart=Date.now()}updateTTL(){this.autoClose&&(this.eraseTTL-=Date.now()-this.eraseTimingStart)}startEraseTimeout(){this.eraseTTL>0?(this.clearEraseTimeout(),this.eraseTimer=setTimeout(()=>this.destroy(),this.eraseTTL),this.eraseTimingStart=Date.now()):this.destroy()}clearEraseTimeout(){null!==this.eraseTimer&&(clearTimeout(this.eraseTimer),this.eraseTimer=void 0)}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275dir=de({type:t})}return t})(),lA=(()=>{class t extends cA{constructor(e){super(e),this.destroyed=new H}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-message"]],inputs:{instance:"instance"},outputs:{destroyed:"destroyed"},exportAs:["nzMessage"],standalone:!0,features:[mt,me],decls:10,vars:9,consts:[[1,"ant-message-notice",3,"mouseenter","mouseleave"],[1,"ant-message-notice-content"],[1,"ant-message-custom-content",3,"ngClass"],[3,"ngSwitch"],["nz-icon","","nzType","check-circle",4,"ngSwitchCase"],["nz-icon","","nzType","info-circle",4,"ngSwitchCase"],["nz-icon","","nzType","exclamation-circle",4,"ngSwitchCase"],["nz-icon","","nzType","close-circle",4,"ngSwitchCase"],["nz-icon","","nzType","loading",4,"ngSwitchCase"],[4,"nzStringTemplateOutlet"],["nz-icon","","nzType","check-circle"],["nz-icon","","nzType","info-circle"],["nz-icon","","nzType","exclamation-circle"],["nz-icon","","nzType","close-circle"],["nz-icon","","nzType","loading"],[3,"innerHTML"]],template:function(i,o){1&i&&(f(0,"div",0),D("@moveUpMotion.done",function(s){return o.animationStateChanged.next(s)})("mouseenter",function(){return o.onEnter()})("mouseleave",function(){return o.onLeave()}),f(1,"div",1)(2,"div",2),$e(3,3),w(4,Gre,1,0,"span",4)(5,qre,1,0,"span",5)(6,Kre,1,0,"span",6)(7,Jre,1,0,"span",7)(8,Zre,1,0,"span",8),Ye(),w(9,Qre,2,1,"ng-container",9),m()()()),2&i&&(h("@moveUpMotion",o.instance.state),d(2),h("ngClass","ant-message-"+o.instance.type),d(),h("ngSwitch",o.instance.type),d(),h("ngSwitchCase","success"),d(),h("ngSwitchCase","info"),d(),h("ngSwitchCase","warning"),d(),h("ngSwitchCase","error"),d(),h("ngSwitchCase","loading"),d(),h("nzStringTemplateOutlet",o.instance.content))},dependencies:[Zo,lc,fu,On,cn,Tn,Sn],encapsulation:2,data:{animation:[Wne]},changeDetection:0})}return t})();const G3="message",tse={nzAnimate:!0,nzDuration:3e3,nzMaxStack:7,nzPauseOnHover:!0,nzTop:24,nzDirection:"ltr"};let dA=(()=>{class t extends aA{constructor(e,i){super(e,i),this.dir="ltr";const o=this.nzConfigService.getConfigForComponent(G3);this.dir=o?.nzDirection||"ltr"}subscribeConfigChange(){this.nzConfigService.getConfigChangeEventForComponent(G3).pipe(I(this.destroy$)).subscribe(()=>{this.updateConfig();const e=this.nzConfigService.getConfigForComponent(G3);if(e){const{nzDirection:i}=e;this.dir=i||this.dir}})}updateConfig(){this.config={...tse,...this.config,...this.nzConfigService.getConfigForComponent(G3)},this.top=D1(this.config.nzTop),this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(si))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-message-container"]],exportAs:["nzMessageContainer"],standalone:!0,features:[mt,me],decls:2,vars:5,consts:[[1,"ant-message"],[3,"instance","destroyed",4,"ngFor","ngForOf"],[3,"destroyed","instance"]],template:function(i,o){1&i&&(f(0,"div",0),w(1,Xre,1,1,"nz-message",1),m()),2&i&&(Lt("top",o.top),Q("ant-message-rtl","rtl"===o.dir),d(),h("ngForOf",o.instances))},dependencies:[lA,zn],encapsulation:2,changeDetection:0})}return t})(),nse=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[dA,lA]})}return t})(),er=(()=>{class t extends sA{constructor(e,i,o){super(e,i,o),this.componentPrefix="message-"}success(e,i){return this.createInstance({type:"success",content:e},i)}error(e,i){return this.createInstance({type:"error",content:e},i)}info(e,i){return this.createInstance({type:"info",content:e},i)}warning(e,i){return this.createInstance({type:"warning",content:e},i)}loading(e,i){return this.createInstance({type:"loading",content:e},i)}create(e,i,o){return this.createInstance({type:e,content:i},o)}createInstance(e,i){return this.container=this.withContainer(dA),this.container.create({...e,createdAt:new Date,messageId:this.getInstanceId(),options:i})}static#e=this.\u0275fac=function(i){return new(i||t)(R(lE),R(ya),R(tn))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const Kt={top:new Fn({originX:"center",originY:"top"},{overlayX:"center",overlayY:"bottom"}),topCenter:new Fn({originX:"center",originY:"top"},{overlayX:"center",overlayY:"bottom"}),topLeft:new Fn({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),topRight:new Fn({originX:"end",originY:"top"},{overlayX:"end",overlayY:"bottom"}),right:new Fn({originX:"end",originY:"center"},{overlayX:"start",overlayY:"center"}),rightTop:new Fn({originX:"end",originY:"top"},{overlayX:"start",overlayY:"top"}),rightBottom:new Fn({originX:"end",originY:"bottom"},{overlayX:"start",overlayY:"bottom"}),bottom:new Fn({originX:"center",originY:"bottom"},{overlayX:"center",overlayY:"top"}),bottomCenter:new Fn({originX:"center",originY:"bottom"},{overlayX:"center",overlayY:"top"}),bottomLeft:new Fn({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"top"}),bottomRight:new Fn({originX:"end",originY:"bottom"},{overlayX:"end",overlayY:"top"}),left:new Fn({originX:"start",originY:"center"},{overlayX:"end",overlayY:"center"}),leftTop:new Fn({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"}),leftBottom:new Fn({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"bottom"})},uA=[Kt.top,Kt.right,Kt.bottom,Kt.left];function q3(t){for(const n in Kt)if(t.connectionPair.originX===Kt[n].originX&&t.connectionPair.originY===Kt[n].originY&&t.connectionPair.overlayX===Kt[n].overlayX&&t.connectionPair.overlayY===Kt[n].overlayY)return n}new Fn({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"bottom"}),new Fn({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"bottom"}),new Fn({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"top"}),new Fn({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"top"},void 0,2),new Fn({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"},void 0,-2),new Fn({originX:"end",originY:"bottom"},{overlayX:"end",overlayY:"top"},void 0,2),new Fn({originX:"end",originY:"top"},{overlayX:"end",overlayY:"bottom"},void 0,-2);let J3=(()=>{class t{constructor(e,i){this.cdkConnectedOverlay=e,this.nzDestroyService=i,this.nzArrowPointAtCenter=!1,this.cdkConnectedOverlay.backdropClass="nz-overlay-transparent-backdrop",this.cdkConnectedOverlay.positionChange.pipe(I(this.nzDestroyService)).subscribe(o=>{this.nzArrowPointAtCenter&&this.updateArrowPosition(o)})}updateArrowPosition(e){const i=this.getOriginRect(),o=q3(e);let r=0,s=0;"topLeft"===o||"bottomLeft"===o?r=i.width/2-14:"topRight"===o||"bottomRight"===o?r=-(i.width/2-14):"leftTop"===o||"rightTop"===o?s=i.height/2-10:("leftBottom"===o||"rightBottom"===o)&&(s=-(i.height/2-10)),(this.cdkConnectedOverlay.offsetX!==r||this.cdkConnectedOverlay.offsetY!==s)&&(this.cdkConnectedOverlay.offsetY=s,this.cdkConnectedOverlay.offsetX=r,this.cdkConnectedOverlay.overlayRef.updatePosition())}getFlexibleConnectedPositionStrategyOrigin(){return this.cdkConnectedOverlay.origin instanceof Tc?this.cdkConnectedOverlay.origin.elementRef:this.cdkConnectedOverlay.origin}getOriginRect(){const e=this.getFlexibleConnectedPositionStrategyOrigin();if(e instanceof Te)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();const i=e.width||0,o=e.height||0;return{top:e.y,bottom:e.y+o,left:e.x,right:e.x+i,height:o,width:i}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Mc),v(No))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkConnectedOverlay","","nzConnectedOverlay",""]],inputs:{nzArrowPointAtCenter:[2,"nzArrowPointAtCenter","nzArrowPointAtCenter",O]},exportAs:["nzConnectedOverlay"],features:[et([No]),je]})}return t})(),u2=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})(),mi=(()=>{class t{setHiddenAttribute(){this.hidden?this.renderer.setAttribute(this.elementRef.nativeElement,"hidden","string"==typeof this.hidden?this.hidden:""):this.renderer.removeAttribute(this.elementRef.nativeElement,"hidden")}constructor(e,i){this.elementRef=e,this.renderer=i,this.hidden=null,this.renderer.setAttribute(this.elementRef.nativeElement,"hidden","")}ngOnChanges(){this.setHiddenAttribute()}ngAfterViewInit(){this.setHiddenAttribute()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-button",""],["nz-button-group"],["","nz-icon",""],["","nz-menu-item",""],["","nz-submenu",""],["nz-select-top-control"],["nz-select-placeholder"],["nz-input-group"]],inputs:{hidden:"hidden"},standalone:!0,features:[ke]})}return t})(),ose=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();class rse{get waveAttributeName(){return this.insertExtraNode?"ant-click-animating":"ant-click-animating-without-extra-node"}constructor(n,e,i,o,r){this.triggerElement=n,this.ngZone=e,this.insertExtraNode=i,this.platformId=o,this.cspNonce=r,this.waveTransitionDuration=400,this.styleForPseudo=null,this.extraNode=null,this.lastTime=0,this.onClick=s=>{!this.triggerElement||!this.triggerElement.getAttribute||this.triggerElement.getAttribute("disabled")||"INPUT"===s.target.tagName||this.triggerElement.className.indexOf("disabled")>=0||this.fadeOutWave()},this.platform=new qn(this.platformId),this.clickHandler=this.onClick.bind(this),this.bindTriggerEvent()}bindTriggerEvent(){this.platform.isBrowser&&this.ngZone.runOutsideAngular(()=>{this.removeTriggerEvent(),this.triggerElement&&this.triggerElement.addEventListener("click",this.clickHandler,!0)})}removeTriggerEvent(){this.triggerElement&&this.triggerElement.removeEventListener("click",this.clickHandler,!0)}removeStyleAndExtraNode(){this.styleForPseudo&&document.body.contains(this.styleForPseudo)&&(document.body.removeChild(this.styleForPseudo),this.styleForPseudo=null),this.insertExtraNode&&this.triggerElement.contains(this.extraNode)&&this.triggerElement.removeChild(this.extraNode)}destroy(){this.removeTriggerEvent(),this.removeStyleAndExtraNode()}fadeOutWave(){const n=this.triggerElement,e=this.getWaveColor(n);n.setAttribute(this.waveAttributeName,"true"),!(Date.now(){n.removeAttribute(this.waveAttributeName),this.removeStyleAndExtraNode()},this.waveTransitionDuration))}isValidColor(n){return!!n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&this.isNotGrey(n)&&!/rgba\(\d*, \d*, \d*, 0\)/.test(n)&&"transparent"!==n}isNotGrey(n){const e=n.match(/rgba?\((\d*), (\d*), (\d*)(, [\.\d]*)?\)/);return!(e&&e[1]&&e[2]&&e[3]&&e[1]===e[2]&&e[2]===e[3])}getWaveColor(n){const e=getComputedStyle(n);return e.getPropertyValue("border-top-color")||e.getPropertyValue("border-color")||e.getPropertyValue("background-color")}runTimeoutOutsideZone(n,e){this.ngZone.runOutsideAngular(()=>setTimeout(n,e))}}const sse={disabled:!1},hA=new oe("nz-wave-global-options");function ase(t){return function nd(t){return{\u0275providers:t}}([{provide:hA,useValue:t}])}let tr=(()=>{class t{get disabled(){return this.waveDisabled}get rendererRef(){return this.waveRenderer}constructor(e,i,o,r,s,a){this.ngZone=e,this.elementRef=i,this.config=o,this.animationType=r,this.platformId=s,this.cspNonce=a,this.nzWaveExtraNode=!1,this.waveDisabled=!1,this.waveDisabled=this.isConfigDisabled()}isConfigDisabled(){let e=!1;return this.config&&"boolean"==typeof this.config.disabled&&(e=this.config.disabled),"NoopAnimations"===this.animationType&&(e=!0),e}ngOnDestroy(){this.waveRenderer&&this.waveRenderer.destroy()}ngOnInit(){this.renderWaveIfEnabled()}renderWaveIfEnabled(){!this.waveDisabled&&this.elementRef.nativeElement&&(this.waveRenderer=new rse(this.elementRef.nativeElement,this.ngZone,this.nzWaveExtraNode,this.platformId,this.cspNonce))}disable(){this.waveDisabled=!0,this.waveRenderer&&(this.waveRenderer.removeTriggerEvent(),this.waveRenderer.removeStyleAndExtraNode())}enable(){this.waveDisabled=this.isConfigDisabled()||!1,this.waveRenderer&&this.waveRenderer.bindTriggerEvent()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(hA,8),v(ta,8),v(Ir),v(vd,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-wave",""],["button","nz-button","",3,"nzType","link",3,"nzType","text"]],inputs:{nzWaveExtraNode:"nzWaveExtraNode"},exportAs:["nzWave"],standalone:!0})}return t})(),pA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[ase(sse)]})}return t})();const cse=["nz-button",""],lse=["*"];function dse(t,n){1&t&&S(0,"span",0)}let nr=(()=>{class t{insertSpan(e,i){e.forEach(o=>{if("#text"===o.nodeName){const r=i.createElement("span"),s=i.parentNode(o);i.insertBefore(s,r,o),i.appendChild(r,o)}})}get iconOnly(){const e=Array.from(this.elementRef?.nativeElement?.childNodes||[]),i=e.every(r=>"#text"!==r.nodeName),o=0==e.filter(r=>!("#comment"===r.nodeName||r?.attributes?.getNamedItem("nz-icon"))).length;return!!this.nzIconDirectiveElement&&o&&i}constructor(e,i,o,r,s,a){this.ngZone=e,this.elementRef=i,this.cdr=o,this.renderer=r,this.nzConfigService=s,this.directionality=a,this._nzModuleName="button",this.nzBlock=!1,this.nzGhost=!1,this.nzSearch=!1,this.nzLoading=!1,this.nzDanger=!1,this.disabled=!1,this.tabIndex=null,this.nzType=null,this.nzShape=null,this.nzSize="default",this.dir="ltr",this.destroy$=new N,this.loading$=new N,this.nzConfigService.getConfigChangeEventForComponent("button").pipe(I(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click",{capture:!0}).pipe(I(this.destroy$)).subscribe(e=>{(this.disabled&&"A"===e.target?.tagName||this.nzLoading)&&(e.preventDefault(),e.stopImmediatePropagation())})})}ngOnChanges(e){const{nzLoading:i}=e;i&&this.loading$.next(this.nzLoading)}ngAfterViewInit(){this.insertSpan(this.elementRef.nativeElement.childNodes,this.renderer)}ngAfterContentInit(){this.loading$.pipe(gn(this.nzLoading),yt(()=>!!this.nzIconDirectiveElement),I(this.destroy$)).subscribe(e=>{const i=this.nzIconDirectiveElement.nativeElement;e?this.renderer.setStyle(i,"display","none"):this.renderer.removeStyle(i,"display")})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(Ue),v($t),v(si),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["button","nz-button",""],["a","nz-button",""]],contentQueries:function(i,o,r){if(1&i&&fn(r,cn,5,Te),2&i){let s;Ae(s=Oe())&&(o.nzIconDirectiveElement=s.first)}},hostAttrs:[1,"ant-btn"],hostVars:34,hostBindings:function(i,o){2&i&&(Pt("tabindex",o.disabled?-1:null===o.tabIndex?null:o.tabIndex)("disabled",o.disabled||null),Q("ant-btn-default","default"===o.nzType)("ant-btn-primary","primary"===o.nzType)("ant-btn-dashed","dashed"===o.nzType)("ant-btn-link","link"===o.nzType)("ant-btn-text","text"===o.nzType)("ant-btn-circle","circle"===o.nzShape)("ant-btn-round","round"===o.nzShape)("ant-btn-lg","large"===o.nzSize)("ant-btn-sm","small"===o.nzSize)("ant-btn-dangerous",o.nzDanger)("ant-btn-loading",o.nzLoading)("ant-btn-background-ghost",o.nzGhost)("ant-btn-block",o.nzBlock)("ant-input-search-button",o.nzSearch)("ant-btn-rtl","rtl"===o.dir)("ant-btn-icon-only",o.iconOnly))},inputs:{nzBlock:[2,"nzBlock","nzBlock",O],nzGhost:[2,"nzGhost","nzGhost",O],nzSearch:[2,"nzSearch","nzSearch",O],nzLoading:[2,"nzLoading","nzLoading",O],nzDanger:[2,"nzDanger","nzDanger",O],disabled:[2,"disabled","disabled",O],tabIndex:"tabIndex",nzType:"nzType",nzShape:"nzShape",nzSize:"nzSize"},exportAs:["nzButton"],standalone:!0,features:[je,ke,me],attrs:cse,ngContentSelectors:lse,decls:2,vars:1,consts:[["nz-icon","","nzType","loading"]],template:function(i,o){1&i&&(Et(),w(0,dse,1,0,"span",0),bt(1)),2&i&&he(o.nzLoading?0:-1)},dependencies:[On,cn],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzSize",void 0),t})(),h2=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[nr,ose,pA]})}return t})();class Fo{static#e=this.formats={B:{max:1024},kB:{max:Math.pow(1024,2),prev:"B"},KB:{max:Math.pow(1024,2),prev:"B"},MB:{max:Math.pow(1024,3),prev:"kB"},GB:{max:Math.pow(1024,4),prev:"MB"},TB:{max:Number.MAX_SAFE_INTEGER,prev:"GB"}};transform(n,e=0,i="B",o){if(!(fE(n)&&fE(e)&&e%1==0&&e>=0))return n;let r=n,s=i;for(;"B"!==s;)r*=1024,s=Fo.formats[s].prev;if(o){const c=mE(Fo.calculateResult(Fo.formats[o],r),e);return Fo.formatResult(c,o)}for(const a in Fo.formats)if(Fo.formats.hasOwnProperty(a)){const c=Fo.formats[a];if(r{class t{transform(e,i="px"){return"number"==typeof e?`${e}${i}`:e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275pipe=jn({name:"nzToCssUnit",type:t,pure:!0,standalone:!0})}return t})(),mA=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const gA=["moz","ms","webkit"];function vA(t){if(typeof window>"u")return null;if(window.cancelAnimationFrame)return window.cancelAnimationFrame(t);const n=gA.filter(e=>`${e}CancelAnimationFrame`in window||`${e}CancelRequestAnimationFrame`in window)[0];return n?(window[`${n}CancelAnimationFrame`]||window[`${n}CancelRequestAnimationFrame`]).call(this,t):clearTimeout(t)}const p2=function pse(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const t=gA.filter(n=>`${n}RequestAnimationFrame`in window)[0];return t?window[`${t}RequestAnimationFrame`]:function hse(){let t=0;return function(n){const e=(new Date).getTime(),i=Math.max(0,16-(e-t)),o=window.setTimeout(()=>{n(e+i)},i);return t=e+i,o}}()}();let fse=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),mse=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[fse]})}return t})();class _se{constructor(n,e){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new N,this._typeaheadSubscription=Ft.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=i=>i.disabled,this._pressedLetters=[],this.tabOut=new N,this.change=new N,n instanceof Ua?this._itemChangesSubscription=n.changes.subscribe(i=>this._itemsChanged(i.toArray())):_4(n)&&(this._effectRef=function TT(t,n){mo("NgSignals"),!n?.injector&&_h();const e=n?.injector??W(tn),i=!0!==n?.manualCleanup?e.get(yl):null,o=new IG(e.get(AG),t,typeof Zone>"u"?null:Zone.current,i,e,n?.allowSignalWrites??!1),r=e.get(Ue,null,{optional:!0});return r&&8&r._lView[Xe]?(r._lView[yh]??=[]).push(o.watcher.notify):o.watcher.notify(),o}(()=>this._itemsChanged(n()),{injector:e}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(ii(e=>this._pressedLetters.push(e)),g3(n),yt(()=>this._pressedLetters.length>0),Ie(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!n[r]||this._allowedModifierKeys.indexOf(r)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(r>0?r:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const r=this._activeItemIndex+this._pageUpAndDown.delta,s=this._getItemsArray().length;this._setActiveItemByIndex(r=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._getItemsArray().length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._effectRef?.destroy(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return _4(this._items)?this._items():this._items instanceof Ua?this._items.toArray():this._items}_itemsChanged(n){if(this._activeItem){const e=n.indexOf(this._activeItem);e>-1&&e!==this._activeItemIndex&&(this._activeItemIndex=e)}}}class bse extends _se{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let yse=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function wse(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function Cse(t){try{return t.frameElement}catch{return null}}(function kse(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===CA(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),r=CA(e);return e.hasAttribute("contenteditable")?-1!==r:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function xse(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==r:"video"===o?-1!==r&&(null!==r||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function Ese(t){return!function Sse(t){return function Mse(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function zse(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function Tse(t){return function Dse(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||yA(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function yA(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function CA(t){if(!yA(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class wA{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,o,r=!1,s){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._injector=s,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,r||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._injector?Xa(n,{injector:this._injector}):setTimeout(n)}}let M7=(()=>{class t{constructor(e,i,o){this._checker=e,this._ngZone=i,this._injector=W(tn),this._document=o}create(e,i=!1){return new wA(e,this._checker,this._ngZone,this._document,i,this._injector)}static#e=this.\u0275fac=function(i){return new(i||t)(R(yse),R(De),R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ase=(()=>{class t{get enabled(){return this.focusTrap?.enabled||!1}set enabled(e){this.focusTrap&&(this.focusTrap.enabled=e)}constructor(e,i,o){this._elementRef=e,this._focusTrapFactory=i,this._previouslyFocusedElement=null,W(qn).isBrowser&&(this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0))}ngOnDestroy(){this.focusTrap?.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap?.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap&&!this.focusTrap.hasAttached()&&this.focusTrap.attachAnchors()}ngOnChanges(e){const i=e.autoCapture;i&&!i.firstChange&&this.autoCapture&&this.focusTrap?.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=function Wte(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}(),this.focusTrap?.focusInitialElementWhenReady()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(M7),v(It))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:[2,"cdkTrapFocus","enabled",O],autoCapture:[2,"cdkTrapFocusAutoCapture","autoCapture",O]},exportAs:["cdkTrapFocus"],standalone:!0,features:[je,ke]})}return t})();function zA(t){return 0===t.buttons||0===t.detail}function SA(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const Ose=new oe("cdk-input-modality-detector-options"),Pse={ignoreKeys:[18,17,224,91,16]},O1=M1({passive:!0,capture:!0});let Ise=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,o,r){this._platform=e,this._mostRecentTarget=null,this._modality=new rt(null),this._lastTouchMs=0,this._onKeydown=s=>{this._options?.ignoreKeys?.some(a=>a===s.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Io(s))},this._onMousedown=s=>{Date.now()-this._lastTouchMs<650||(this._modality.next(zA(s)?"keyboard":"mouse"),this._mostRecentTarget=Io(s))},this._onTouchstart=s=>{SA(s)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Io(s))},this._options={...Pse,...r},this.modalityDetected=this._modality.pipe(O5(1)),this.modalityChanged=this.modalityDetected.pipe(qi()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,O1),o.addEventListener("mousedown",this._onMousedown,O1),o.addEventListener("touchstart",this._onTouchstart,O1)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,O1),document.removeEventListener("mousedown",this._onMousedown,O1),document.removeEventListener("touchstart",this._onTouchstart,O1))}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn),R(De),R(It),R(Ose,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Z3=function(t){return t[t.IMMEDIATE=0]="IMMEDIATE",t[t.EVENTUAL=1]="EVENTUAL",t}(Z3||{});const Vse=new oe("cdk-focus-monitor-default-options"),Q3=M1({passive:!0,capture:!0});let Ca=(()=>{class t{constructor(e,i,o,r,s){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new N,this._rootNodeFocusAndBlurListener=a=>{for(let l=Io(a);l;l=l.parentElement)"focus"===a.type?this._onFocus(a,l):this._onBlur(a,l)},this._document=r,this._detectionMode=s?.detectionMode||Z3.IMMEDIATE}monitor(e,i=!1){const o=Ni(e);if(!this._platform.isBrowser||1!==o.nodeType)return We();const r=N5(o)||this._getDocument(),s=this._elementInfo.get(o);if(s)return i&&(s.checkChildren=!0),s.subject;const a={checkChildren:i,subject:new N,rootNode:r};return this._elementInfo.set(o,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=Ni(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const r=Ni(e);r===this._getDocument().activeElement?this._getClosestElementsInfo(r).forEach(([a,c])=>this._originChanged(a,i,c)):(this._setOrigin(i),"function"==typeof r.focus&&r.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return this._detectionMode===Z3.EVENTUAL||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,this._detectionMode===Z3.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),r=Io(e);!o||!o.checkChildren&&i!==r||this._originChanged(i,this._getFocusOrigin(r),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,Q3),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,Q3)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(I(this._stopInputModalityDetector)).subscribe(r=>{this._setOrigin(r,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Q3),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Q3),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,r)=>{(r===e||o.checkChildren&&r.contains(e))&&i.push([r,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const r=e.labels;if(r)for(let s=0;s{class t{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new H}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Ca))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"],standalone:!0})}return t})();var Dc=function(t){return t[t.NONE=0]="NONE",t[t.BLACK_ON_WHITE=1]="BLACK_ON_WHITE",t[t.WHITE_ON_BLACK=2]="WHITE_ON_BLACK",t}(Dc||{});const MA="cdk-high-contrast-black-on-white",DA="cdk-high-contrast-white-on-black",D7="cdk-high-contrast-active";let Rse=(()=>{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=W(Kte).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return Dc.NONE;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,r=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),r){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return Dc.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return Dc.BLACK_ON_WHITE}return Dc.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(D7,MA,DA),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===Dc.BLACK_ON_WHITE?e.add(D7,MA):i===Dc.WHITE_ON_BLACK&&e.add(D7,DA)}}static#e=this.\u0275fac=function(i){return new(i||t)(R(qn),R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),xA=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}static#e=this.\u0275fac=function(i){return new(i||t)(R(Rse))};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[mse]})}return t})();var EA={locale:"en",Pagination:{items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"},DatePicker:{lang:{placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"],locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},timePickerLocale:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]}},TimePicker:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]},Calendar:{lang:{placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"],locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},timePickerLocale:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]}},global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting",filterCheckall:"Select all items",filterSearchPlaceholder:"Search in filters",selectNone:"Clear all data"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"},Image:{preview:"Preview"},CronExpression:{cronError:"Invalid cron expression",second:"second",minute:"minute",hour:"hour",day:"day",month:"month",week:"week"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"}},x7={locale:"zh-cn",Pagination:{items_per_page:"\u6761/\u9875",jump_to:"\u8df3\u81f3",jump_to_confirm:"\u786e\u5b9a",page:"\u9875",prev_page:"\u4e0a\u4e00\u9875",next_page:"\u4e0b\u4e00\u9875",prev_5:"\u5411\u524d 5 \u9875",next_5:"\u5411\u540e 5 \u9875",prev_3:"\u5411\u524d 3 \u9875",next_3:"\u5411\u540e 3 \u9875",page_size:"\u9875\u7801"},DatePicker:{lang:{placeholder:"\u8bf7\u9009\u62e9\u65e5\u671f",yearPlaceholder:"\u8bf7\u9009\u62e9\u5e74\u4efd",quarterPlaceholder:"\u8bf7\u9009\u62e9\u5b63\u5ea6",monthPlaceholder:"\u8bf7\u9009\u62e9\u6708\u4efd",weekPlaceholder:"\u8bf7\u9009\u62e9\u5468",rangePlaceholder:["\u5f00\u59cb\u65e5\u671f","\u7ed3\u675f\u65e5\u671f"],rangeYearPlaceholder:["\u5f00\u59cb\u5e74\u4efd","\u7ed3\u675f\u5e74\u4efd"],rangeQuarterPlaceholder:["\u5f00\u59cb\u5b63\u5ea6","\u7ed3\u675f\u5b63\u5ea6"],rangeMonthPlaceholder:["\u5f00\u59cb\u6708\u4efd","\u7ed3\u675f\u6708\u4efd"],rangeWeekPlaceholder:["\u5f00\u59cb\u5468","\u7ed3\u675f\u5468"],locale:"zh_CN",today:"\u4eca\u5929",now:"\u6b64\u523b",backToToday:"\u8fd4\u56de\u4eca\u5929",ok:"\u786e\u5b9a",timeSelect:"\u9009\u62e9\u65f6\u95f4",dateSelect:"\u9009\u62e9\u65e5\u671f",weekSelect:"\u9009\u62e9\u5468",clear:"\u6e05\u9664",month:"\u6708",year:"\u5e74",previousMonth:"\u4e0a\u4e2a\u6708 (\u7ffb\u9875\u4e0a\u952e)",nextMonth:"\u4e0b\u4e2a\u6708 (\u7ffb\u9875\u4e0b\u952e)",monthSelect:"\u9009\u62e9\u6708\u4efd",yearSelect:"\u9009\u62e9\u5e74\u4efd",decadeSelect:"\u9009\u62e9\u5e74\u4ee3",yearFormat:"YYYY\u5e74",dayFormat:"D\u65e5",dateFormat:"YYYY\u5e74M\u6708D\u65e5",dateTimeFormat:"YYYY\u5e74M\u6708D\u65e5 HH\u65f6mm\u5206ss\u79d2",previousYear:"\u4e0a\u4e00\u5e74 (Control\u952e\u52a0\u5de6\u65b9\u5411\u952e)",nextYear:"\u4e0b\u4e00\u5e74 (Control\u952e\u52a0\u53f3\u65b9\u5411\u952e)",previousDecade:"\u4e0a\u4e00\u5e74\u4ee3",nextDecade:"\u4e0b\u4e00\u5e74\u4ee3",previousCentury:"\u4e0a\u4e00\u4e16\u7eaa",nextCentury:"\u4e0b\u4e00\u4e16\u7eaa"},timePickerLocale:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]}},TimePicker:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]},Calendar:{lang:{placeholder:"\u8bf7\u9009\u62e9\u65e5\u671f",yearPlaceholder:"\u8bf7\u9009\u62e9\u5e74\u4efd",quarterPlaceholder:"\u8bf7\u9009\u62e9\u5b63\u5ea6",monthPlaceholder:"\u8bf7\u9009\u62e9\u6708\u4efd",weekPlaceholder:"\u8bf7\u9009\u62e9\u5468",rangePlaceholder:["\u5f00\u59cb\u65e5\u671f","\u7ed3\u675f\u65e5\u671f"],rangeYearPlaceholder:["\u5f00\u59cb\u5e74\u4efd","\u7ed3\u675f\u5e74\u4efd"],rangeMonthPlaceholder:["\u5f00\u59cb\u6708\u4efd","\u7ed3\u675f\u6708\u4efd"],rangeWeekPlaceholder:["\u5f00\u59cb\u5468","\u7ed3\u675f\u5468"],locale:"zh_CN",today:"\u4eca\u5929",now:"\u6b64\u523b",backToToday:"\u8fd4\u56de\u4eca\u5929",ok:"\u786e\u5b9a",timeSelect:"\u9009\u62e9\u65f6\u95f4",dateSelect:"\u9009\u62e9\u65e5\u671f",weekSelect:"\u9009\u62e9\u5468",clear:"\u6e05\u9664",month:"\u6708",year:"\u5e74",previousMonth:"\u4e0a\u4e2a\u6708 (\u7ffb\u9875\u4e0a\u952e)",nextMonth:"\u4e0b\u4e2a\u6708 (\u7ffb\u9875\u4e0b\u952e)",monthSelect:"\u9009\u62e9\u6708\u4efd",yearSelect:"\u9009\u62e9\u5e74\u4efd",decadeSelect:"\u9009\u62e9\u5e74\u4ee3",yearFormat:"YYYY\u5e74",dayFormat:"D\u65e5",dateFormat:"YYYY\u5e74M\u6708D\u65e5",dateTimeFormat:"YYYY\u5e74M\u6708D\u65e5 HH\u65f6mm\u5206ss\u79d2",previousYear:"\u4e0a\u4e00\u5e74 (Control\u952e\u52a0\u5de6\u65b9\u5411\u952e)",nextYear:"\u4e0b\u4e00\u5e74 (Control\u952e\u52a0\u53f3\u65b9\u5411\u952e)",previousDecade:"\u4e0a\u4e00\u5e74\u4ee3",nextDecade:"\u4e0b\u4e00\u5e74\u4ee3",previousCentury:"\u4e0a\u4e00\u4e16\u7eaa",nextCentury:"\u4e0b\u4e00\u4e16\u7eaa"},timePickerLocale:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]}},global:{placeholder:"\u8bf7\u9009\u62e9"},Table:{filterTitle:"\u7b5b\u9009",filterConfirm:"\u786e\u5b9a",filterReset:"\u91cd\u7f6e",filterEmptyText:"\u65e0\u7b5b\u9009\u9879",selectAll:"\u5168\u9009\u5f53\u9875",selectInvert:"\u53cd\u9009\u5f53\u9875",selectionAll:"\u5168\u9009\u6240\u6709",sortTitle:"\u6392\u5e8f",expand:"\u5c55\u5f00\u884c",collapse:"\u5173\u95ed\u884c",triggerDesc:"\u70b9\u51fb\u964d\u5e8f",triggerAsc:"\u70b9\u51fb\u5347\u5e8f",cancelSort:"\u53d6\u6d88\u6392\u5e8f",filterCheckall:"\u5168\u9009",filterSearchPlaceholder:"\u5728\u7b5b\u9009\u9879\u4e2d\u641c\u7d22",selectNone:"\u6e05\u7a7a\u6240\u6709"},Modal:{okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",justOkText:"\u77e5\u9053\u4e86"},Popconfirm:{cancelText:"\u53d6\u6d88",okText:"\u786e\u5b9a"},Transfer:{searchPlaceholder:"\u8bf7\u8f93\u5165\u641c\u7d22\u5185\u5bb9",itemUnit:"\u9879",itemsUnit:"\u9879",remove:"\u5220\u9664",selectCurrent:"\u5168\u9009\u5f53\u9875",removeCurrent:"\u5220\u9664\u5f53\u9875",selectAll:"\u5168\u9009\u6240\u6709",removeAll:"\u5220\u9664\u5168\u90e8",selectInvert:"\u53cd\u9009\u5f53\u9875"},Upload:{uploading:"\u6587\u4ef6\u4e0a\u4f20\u4e2d",removeFile:"\u5220\u9664\u6587\u4ef6",uploadError:"\u4e0a\u4f20\u9519\u8bef",previewFile:"\u9884\u89c8\u6587\u4ef6",downloadFile:"\u4e0b\u8f7d\u6587\u4ef6"},Empty:{description:"\u6682\u65e0\u6570\u636e"},Icon:{icon:"\u56fe\u6807"},Text:{edit:"\u7f16\u8f91",copy:"\u590d\u5236",copied:"\u590d\u5236\u6210\u529f",expand:"\u5c55\u5f00"},PageHeader:{back:"\u8fd4\u56de"},Image:{preview:"\u9884\u89c8"},CronExpression:{cronError:"cron \u8868\u8fbe\u5f0f\u4e0d\u5408\u6cd5",second:"\u79d2",minute:"\u5206\u949f",hour:"\u5c0f\u65f6",day:"\u65e5",month:"\u6708",week:"\u5468"},QRCode:{expired:"\u4e8c\u7ef4\u7801\u8fc7\u671f",refresh:"\u70b9\u51fb\u5237\u65b0",scanned:"\u5df2\u626b\u63cf"}};const E7=new oe("nz-i18n"),Lse=new oe("nz-date-locale");let $s=(()=>{class t{get localeChange(){return this._change.asObservable()}constructor(e,i){this._change=new rt(this._locale),this.setLocale(e||x7),this.setDateLocale(i||null)}translate(e,i){let o=this._getObjectPath(this._locale,e);return"string"==typeof o?(i&&Object.keys(i).forEach(r=>o=o.replace(new RegExp(`%${r}%`,"g"),i[r])),o):e}setLocale(e){this._locale&&this._locale.locale===e.locale||(this._locale=e,this._change.next(e))}getLocale(){return this._locale}getLocaleId(){return this._locale?this._locale.locale:""}setDateLocale(e){this.dateLocale=e}getDateLocale(){return this.dateLocale}getLocaleData(e,i){const o=e?this._getObjectPath(this._locale,e):this._locale;return o||i||this._getObjectPath(EA,e)||{}}_getObjectPath(e,i){let o=e;const r=i.split("."),s=r.length;let a=0;for(;o&&a{class t{constructor(e){this._locale=e}transform(e,i){return this._locale.translate(e,i)}static#e=this.\u0275fac=function(i){return new(i||t)(v($s,16))};static#t=this.\u0275pipe=jn({name:"nzI18n",type:t,pure:!0,standalone:!0})}return t})(),Bse=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function kA(t){const n=t.cloneNode(!0),e=n.querySelectorAll("[id]"),i=t.nodeName.toLowerCase();n.removeAttribute("id");for(let o=0;o=i&&e<=o&&n>=r&&n<=s}function f2(t,n,e){t.top+=n,t.bottom=t.top+t.height,t.left+=e,t.right=t.left+t.width}function IA(t,n,e,i){const{top:o,right:r,bottom:s,left:a,width:c,height:l}=t,u=c*n,p=l*n;return i>o-p&&ia-u&&e{this.positions.set(e,{scrollPosition:{top:e.scrollTop,left:e.scrollLeft},clientRect:k7(e)})})}handleScroll(n){const e=Io(n),i=this.positions.get(e);if(!i)return null;const o=i.scrollPosition;let r,s;if(e===this._document){const l=this.getViewportScrollPosition();r=l.top,s=l.left}else r=e.scrollTop,s=e.scrollLeft;const a=o.top-r,c=o.left-s;return this.positions.forEach((l,u)=>{l.clientRect&&e!==u&&e.contains(u)&&f2(l.clientRect,a,c)}),o.top=r,o.left=s,{top:a,left:c}}getViewportScrollPosition(){return{top:window.scrollY,left:window.scrollX}}}function VA(t,n){const e=t.rootNodes;if(1===e.length&&e[0].nodeType===n.ELEMENT_NODE)return e[0];const i=n.createElement("div");return e.forEach(o=>i.appendChild(o)),i}function O7(t,n,e){for(let i in n)if(n.hasOwnProperty(i)){const o=n[i];o?t.setProperty(i,o,e?.has(i)?"important":""):t.removeProperty(i)}return t}function P1(t,n){const e=n?"":"none";O7(t.style,{"touch-action":n?"":"none","-webkit-user-drag":n?"":"none","-webkit-tap-highlight-color":n?"":"transparent","user-select":e,"-ms-user-select":e,"-webkit-user-select":e,"-moz-user-select":e})}function FA(t,n,e){O7(t.style,{position:n?"":"fixed",top:n?"":"0",opacity:n?"":"0",left:n?"":"-999em"},e)}function X3(t,n){return n&&"none"!=n?t+" "+n:t}function RA(t,n){t.style.width=`${n.width}px`,t.style.height=`${n.height}px`,t.style.transform=e6(n.left,n.top)}function e6(t,n){return`translate3d(${Math.round(t)}px, ${Math.round(n)}px, 0)`}function LA(t){const n=t.toLowerCase().indexOf("ms")>-1?1:1e3;return parseFloat(t)*n}function P7(t,n){return t.getPropertyValue(n).split(",").map(i=>i.trim())}const Kse=new Set(["position"]);class Jse{constructor(n,e,i,o,r,s,a,c,l){this._document=n,this._rootElement=e,this._direction=i,this._initialDomRect=o,this._previewTemplate=r,this._previewClass=s,this._pickupPositionOnPage=a,this._initialTransform=c,this._zIndex=l}attach(n){this._preview=this._createPreview(),n.appendChild(this._preview),"showPopover"in this._preview&&this._preview.showPopover()}destroy(){this._preview.remove(),this._previewEmbeddedView?.destroy(),this._preview=this._previewEmbeddedView=null}setTransform(n){this._preview.style.transform=n}getBoundingClientRect(){return this._preview.getBoundingClientRect()}addClass(n){this._preview.classList.add(n)}getTransitionDuration(){return function qse(t){const n=getComputedStyle(t),e=P7(n,"transition-property"),i=e.find(a=>"transform"===a||"all"===a);if(!i)return 0;const o=e.indexOf(i),r=P7(n,"transition-duration"),s=P7(n,"transition-delay");return LA(r[o])+LA(s[o])}(this._preview)}addEventListener(n,e){this._preview.addEventListener(n,e)}removeEventListener(n,e){this._preview.removeEventListener(n,e)}_createPreview(){const n=this._previewTemplate,e=this._previewClass,i=n?n.template:null;let o;if(i&&n){const r=n.matchSize?this._initialDomRect:null,s=n.viewContainer.createEmbeddedView(i,n.context);s.detectChanges(),o=VA(s,this._document),this._previewEmbeddedView=s,n.matchSize?RA(o,r):o.style.transform=e6(this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else o=kA(this._rootElement),RA(o,this._initialDomRect),this._initialTransform&&(o.style.transform=this._initialTransform);return O7(o.style,{"pointer-events":"none",margin:"0",position:"fixed",top:"0",left:"0","z-index":this._zIndex+""},Kse),P1(o,!1),o.classList.add("cdk-drag-preview"),o.setAttribute("popover","manual"),o.setAttribute("dir",this._direction),e&&(Array.isArray(e)?e.forEach(r=>o.classList.add(r)):o.classList.add(e)),o}}const HA=M1({passive:!0}),t6=M1({passive:!1}),BA=M1({passive:!1,capture:!0}),jA=new Set(["position"]);class Qse{get disabled(){return this._disabled||!(!this._dropContainer||!this._dropContainer.disabled)}set disabled(n){n!==this._disabled&&(this._disabled=n,this._toggleNativeDragInteractions(),this._handles.forEach(e=>P1(e,n)))}constructor(n,e,i,o,r,s){this._config=e,this._document=i,this._ngZone=o,this._viewportRuler=r,this._dragDropRegistry=s,this._passiveTransform={x:0,y:0},this._activeTransform={x:0,y:0},this._hasStartedDragging=Of(!1),this._moveEvents=new N,this._pointerMoveSubscription=Ft.EMPTY,this._pointerUpSubscription=Ft.EMPTY,this._scrollSubscription=Ft.EMPTY,this._resizeSubscription=Ft.EMPTY,this._boundaryElement=null,this._nativeInteractionsEnabled=!0,this._handles=[],this._disabledHandles=new Set,this._direction="ltr",this.dragStartDelay=0,this._disabled=!1,this.beforeStarted=new N,this.started=new N,this.released=new N,this.ended=new N,this.entered=new N,this.exited=new N,this.dropped=new N,this.moved=this._moveEvents,this._pointerDown=a=>{if(this.beforeStarted.next(),this._handles.length){const c=this._getTargetHandle(a);c&&!this._disabledHandles.has(c)&&!this.disabled&&this._initializeDragSequence(c,a)}else this.disabled||this._initializeDragSequence(this._rootElement,a)},this._pointerMove=a=>{const c=this._getPointerPositionOnPage(a);if(!this._hasStartedDragging()){if(Math.abs(c.x-this._pickupPositionOnPage.x)+Math.abs(c.y-this._pickupPositionOnPage.y)>=this._config.dragStartThreshold){const b=Date.now()>=this._dragStartTime+this._getDragStartDelay(a),y=this._dropContainer;if(!b)return void this._endDragSequence(a);(!y||!y.isDragging()&&!y.isReceiving())&&(a.cancelable&&a.preventDefault(),this._hasStartedDragging.set(!0),this._ngZone.run(()=>this._startDragSequence(a)))}return}a.cancelable&&a.preventDefault();const l=this._getConstrainedPointerPosition(c);if(this._hasMoved=!0,this._lastKnownPointerPosition=c,this._updatePointerDirectionDelta(l),this._dropContainer)this._updateActiveDropContainer(l,c);else{const u=this.constrainPosition?this._initialDomRect:this._pickupPositionOnPage,p=this._activeTransform;p.x=l.x-u.x+this._passiveTransform.x,p.y=l.y-u.y+this._passiveTransform.y,this._applyRootElementTransform(p.x,p.y)}this._moveEvents.observers.length&&this._ngZone.run(()=>{this._moveEvents.next({source:this,pointerPosition:l,event:a,distance:this._getDragDistance(l),delta:this._pointerDirectionDelta})})},this._pointerUp=a=>{this._endDragSequence(a)},this._nativeDragStart=a=>{if(this._handles.length){const c=this._getTargetHandle(a);c&&!this._disabledHandles.has(c)&&!this.disabled&&a.preventDefault()}else this.disabled||a.preventDefault()},this.withRootElement(n).withParent(e.parentDragRef||null),this._parentPositions=new NA(i),s.registerDragItem(this)}getPlaceholderElement(){return this._placeholder}getRootElement(){return this._rootElement}getVisibleElement(){return this.isDragging()?this.getPlaceholderElement():this.getRootElement()}withHandles(n){this._handles=n.map(i=>Ni(i)),this._handles.forEach(i=>P1(i,this.disabled)),this._toggleNativeDragInteractions();const e=new Set;return this._disabledHandles.forEach(i=>{this._handles.indexOf(i)>-1&&e.add(i)}),this._disabledHandles=e,this}withPreviewTemplate(n){return this._previewTemplate=n,this}withPlaceholderTemplate(n){return this._placeholderTemplate=n,this}withRootElement(n){const e=Ni(n);return e!==this._rootElement&&(this._rootElement&&this._removeRootElementListeners(this._rootElement),this._ngZone.runOutsideAngular(()=>{e.addEventListener("mousedown",this._pointerDown,t6),e.addEventListener("touchstart",this._pointerDown,HA),e.addEventListener("dragstart",this._nativeDragStart,t6)}),this._initialTransform=void 0,this._rootElement=e),typeof SVGElement<"u"&&this._rootElement instanceof SVGElement&&(this._ownerSVGElement=this._rootElement.ownerSVGElement),this}withBoundaryElement(n){return this._boundaryElement=n?Ni(n):null,this._resizeSubscription.unsubscribe(),n&&(this._resizeSubscription=this._viewportRuler.change(10).subscribe(()=>this._containInsideBoundaryOnResize())),this}withParent(n){return this._parentDragRef=n,this}dispose(){this._removeRootElementListeners(this._rootElement),this.isDragging()&&this._rootElement?.remove(),this._anchor?.remove(),this._destroyPreview(),this._destroyPlaceholder(),this._dragDropRegistry.removeDragItem(this),this._removeListeners(),this.beforeStarted.complete(),this.started.complete(),this.released.complete(),this.ended.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this._moveEvents.complete(),this._handles=[],this._disabledHandles.clear(),this._dropContainer=void 0,this._resizeSubscription.unsubscribe(),this._parentPositions.clear(),this._boundaryElement=this._rootElement=this._ownerSVGElement=this._placeholderTemplate=this._previewTemplate=this._anchor=this._parentDragRef=null}isDragging(){return this._hasStartedDragging()&&this._dragDropRegistry.isDragging(this)}reset(){this._rootElement.style.transform=this._initialTransform||"",this._activeTransform={x:0,y:0},this._passiveTransform={x:0,y:0}}disableHandle(n){!this._disabledHandles.has(n)&&this._handles.indexOf(n)>-1&&(this._disabledHandles.add(n),P1(n,!0))}enableHandle(n){this._disabledHandles.has(n)&&(this._disabledHandles.delete(n),P1(n,this.disabled))}withDirection(n){return this._direction=n,this}_withDropContainer(n){this._dropContainer=n}getFreeDragPosition(){const n=this.isDragging()?this._activeTransform:this._passiveTransform;return{x:n.x,y:n.y}}setFreeDragPosition(n){return this._activeTransform={x:0,y:0},this._passiveTransform.x=n.x,this._passiveTransform.y=n.y,this._dropContainer||this._applyRootElementTransform(n.x,n.y),this}withPreviewContainer(n){return this._previewContainer=n,this}_sortFromLastPointerPosition(){const n=this._lastKnownPointerPosition;n&&this._dropContainer&&this._updateActiveDropContainer(this._getConstrainedPointerPosition(n),n)}_removeListeners(){this._pointerMoveSubscription.unsubscribe(),this._pointerUpSubscription.unsubscribe(),this._scrollSubscription.unsubscribe(),this._getShadowRoot()?.removeEventListener("selectstart",YA,BA)}_destroyPreview(){this._preview?.destroy(),this._preview=null}_destroyPlaceholder(){this._placeholder?.remove(),this._placeholderRef?.destroy(),this._placeholder=this._placeholderRef=null}_endDragSequence(n){if(this._dragDropRegistry.isDragging(this)&&(this._removeListeners(),this._dragDropRegistry.stopDragging(this),this._toggleNativeDragInteractions(),this._handles&&(this._rootElement.style.webkitTapHighlightColor=this._rootElementTapHighlight),this._hasStartedDragging()))if(this.released.next({source:this,event:n}),this._dropContainer)this._dropContainer._stopScrolling(),this._animatePreviewToPlaceholder().then(()=>{this._cleanupDragArtifacts(n),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)});else{this._passiveTransform.x=this._activeTransform.x;const e=this._getPointerPositionOnPage(n);this._passiveTransform.y=this._activeTransform.y,this._ngZone.run(()=>{this.ended.next({source:this,distance:this._getDragDistance(e),dropPoint:e,event:n})}),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)}}_startDragSequence(n){m2(n)&&(this._lastTouchEventTime=Date.now()),this._toggleNativeDragInteractions();const e=this._getShadowRoot(),i=this._dropContainer;if(e&&this._ngZone.runOutsideAngular(()=>{e.addEventListener("selectstart",YA,BA)}),i){const o=this._rootElement,r=o.parentNode,s=this._placeholder=this._createPlaceholderElement(),a=this._anchor=this._anchor||this._document.createComment("");r.insertBefore(a,o),this._initialTransform=o.style.transform||"",this._preview=new Jse(this._document,this._rootElement,this._direction,this._initialDomRect,this._previewTemplate||null,this.previewClass||null,this._pickupPositionOnPage,this._initialTransform,this._config.zIndex||1e3),this._preview.attach(this._getPreviewInsertionPoint(r,e)),FA(o,!1,jA),this._document.body.appendChild(r.replaceChild(s,o)),this.started.next({source:this,event:n}),i.start(),this._initialContainer=i,this._initialIndex=i.getItemIndex(this)}else this.started.next({source:this,event:n}),this._initialContainer=this._initialIndex=void 0;this._parentPositions.cache(i?i.getScrollableParents():[])}_initializeDragSequence(n,e){this._parentDragRef&&e.stopPropagation();const i=this.isDragging(),o=m2(e),r=!o&&0!==e.button,s=this._rootElement,a=Io(e),c=!o&&this._lastTouchEventTime&&this._lastTouchEventTime+800>Date.now(),l=o?SA(e):zA(e);if(a&&a.draggable&&"mousedown"===e.type&&e.preventDefault(),i||r||c||l)return;if(this._handles.length){const _=s.style;this._rootElementTapHighlight=_.webkitTapHighlightColor||"",_.webkitTapHighlightColor="transparent"}this._hasMoved=!1,this._hasStartedDragging.set(this._hasMoved),this._removeListeners(),this._initialDomRect=this._rootElement.getBoundingClientRect(),this._pointerMoveSubscription=this._dragDropRegistry.pointerMove.subscribe(this._pointerMove),this._pointerUpSubscription=this._dragDropRegistry.pointerUp.subscribe(this._pointerUp),this._scrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(_=>this._updateOnScroll(_)),this._boundaryElement&&(this._boundaryRect=k7(this._boundaryElement));const u=this._previewTemplate;this._pickupPositionInElement=u&&u.template&&!u.matchSize?{x:0,y:0}:this._getPointerPositionInElement(this._initialDomRect,n,e);const p=this._pickupPositionOnPage=this._lastKnownPointerPosition=this._getPointerPositionOnPage(e);this._pointerDirectionDelta={x:0,y:0},this._pointerPositionAtLastDirectionChange={x:p.x,y:p.y},this._dragStartTime=Date.now(),this._dragDropRegistry.startDragging(this,e)}_cleanupDragArtifacts(n){FA(this._rootElement,!0,jA),this._anchor.parentNode.replaceChild(this._rootElement,this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._initialDomRect=this._boundaryRect=this._previewRect=this._initialTransform=void 0,this._ngZone.run(()=>{const e=this._dropContainer,i=e.getItemIndex(this),o=this._getPointerPositionOnPage(n),r=this._getDragDistance(o),s=e._isOverContainer(o.x,o.y);this.ended.next({source:this,distance:r,dropPoint:o,event:n}),this.dropped.next({item:this,currentIndex:i,previousIndex:this._initialIndex,container:e,previousContainer:this._initialContainer,isPointerOverContainer:s,distance:r,dropPoint:o,event:n}),e.drop(this,i,this._initialIndex,this._initialContainer,s,r,o,n),this._dropContainer=this._initialContainer})}_updateActiveDropContainer({x:n,y:e},{x:i,y:o}){let r=this._initialContainer._getSiblingContainerFromPosition(this,n,e);!r&&this._dropContainer!==this._initialContainer&&this._initialContainer._isOverContainer(n,e)&&(r=this._initialContainer),r&&r!==this._dropContainer&&this._ngZone.run(()=>{this.exited.next({item:this,container:this._dropContainer}),this._dropContainer.exit(this),this._dropContainer=r,this._dropContainer.enter(this,n,e,r===this._initialContainer&&r.sortingDisabled?this._initialIndex:void 0),this.entered.next({item:this,container:r,currentIndex:r.getItemIndex(this)})}),this.isDragging()&&(this._dropContainer._startScrollingIfNecessary(i,o),this._dropContainer._sortItem(this,n,e,this._pointerDirectionDelta),this.constrainPosition?this._applyPreviewTransform(n,e):this._applyPreviewTransform(n-this._pickupPositionInElement.x,e-this._pickupPositionInElement.y))}_animatePreviewToPlaceholder(){if(!this._hasMoved)return Promise.resolve();const n=this._placeholder.getBoundingClientRect();this._preview.addClass("cdk-drag-animating"),this._applyPreviewTransform(n.left,n.top);const e=this._preview.getTransitionDuration();return 0===e?Promise.resolve():this._ngZone.runOutsideAngular(()=>new Promise(i=>{const o=s=>{(!s||Io(s)===this._preview&&"transform"===s.propertyName)&&(this._preview?.removeEventListener("transitionend",o),i(),clearTimeout(r))},r=setTimeout(o,1.5*e);this._preview.addEventListener("transitionend",o)}))}_createPlaceholderElement(){const n=this._placeholderTemplate,e=n?n.template:null;let i;return e?(this._placeholderRef=n.viewContainer.createEmbeddedView(e,n.context),this._placeholderRef.detectChanges(),i=VA(this._placeholderRef,this._document)):i=kA(this._rootElement),i.style.pointerEvents="none",i.classList.add("cdk-drag-placeholder"),i}_getPointerPositionInElement(n,e,i){const o=e===this._rootElement?null:e,r=o?o.getBoundingClientRect():n,s=m2(i)?i.targetTouches[0]:i,a=this._getViewportScrollPosition();return{x:r.left-n.left+(s.pageX-r.left-a.left),y:r.top-n.top+(s.pageY-r.top-a.top)}}_getPointerPositionOnPage(n){const e=this._getViewportScrollPosition(),i=m2(n)?n.touches[0]||n.changedTouches[0]||{pageX:0,pageY:0}:n,o=i.pageX-e.left,r=i.pageY-e.top;if(this._ownerSVGElement){const s=this._ownerSVGElement.getScreenCTM();if(s){const a=this._ownerSVGElement.createSVGPoint();return a.x=o,a.y=r,a.matrixTransform(s.inverse())}}return{x:o,y:r}}_getConstrainedPointerPosition(n){const e=this._dropContainer?this._dropContainer.lockAxis:null;let{x:i,y:o}=this.constrainPosition?this.constrainPosition(n,this,this._initialDomRect,this._pickupPositionInElement):n;if("x"===this.lockAxis||"x"===e?o=this._pickupPositionOnPage.y-(this.constrainPosition?this._pickupPositionInElement.y:0):("y"===this.lockAxis||"y"===e)&&(i=this._pickupPositionOnPage.x-(this.constrainPosition?this._pickupPositionInElement.x:0)),this._boundaryRect){const{x:r,y:s}=this.constrainPosition?{x:0,y:0}:this._pickupPositionInElement,a=this._boundaryRect,{width:c,height:l}=this._getPreviewRect(),u=a.top+s,p=a.bottom-(l-s);i=$A(i,a.left+r,a.right-(c-r)),o=$A(o,u,p)}return{x:i,y:o}}_updatePointerDirectionDelta(n){const{x:e,y:i}=n,o=this._pointerDirectionDelta,r=this._pointerPositionAtLastDirectionChange,s=Math.abs(e-r.x),a=Math.abs(i-r.y);return s>this._config.pointerDirectionChangeThreshold&&(o.x=e>r.x?1:-1,r.x=e),a>this._config.pointerDirectionChangeThreshold&&(o.y=i>r.y?1:-1,r.y=i),o}_toggleNativeDragInteractions(){if(!this._rootElement||!this._handles)return;const n=this._handles.length>0||!this.isDragging();n!==this._nativeInteractionsEnabled&&(this._nativeInteractionsEnabled=n,P1(this._rootElement,n))}_removeRootElementListeners(n){n.removeEventListener("mousedown",this._pointerDown,t6),n.removeEventListener("touchstart",this._pointerDown,HA),n.removeEventListener("dragstart",this._nativeDragStart,t6)}_applyRootElementTransform(n,e){const i=e6(n,e),o=this._rootElement.style;null==this._initialTransform&&(this._initialTransform=o.transform&&"none"!=o.transform?o.transform:""),o.transform=X3(i,this._initialTransform)}_applyPreviewTransform(n,e){const i=this._previewTemplate?.template?void 0:this._initialTransform,o=e6(n,e);this._preview.setTransform(X3(o,i))}_getDragDistance(n){const e=this._pickupPositionOnPage;return e?{x:n.x-e.x,y:n.y-e.y}:{x:0,y:0}}_cleanupCachedDimensions(){this._boundaryRect=this._previewRect=void 0,this._parentPositions.clear()}_containInsideBoundaryOnResize(){let{x:n,y:e}=this._passiveTransform;if(0===n&&0===e||this.isDragging()||!this._boundaryElement)return;const i=this._rootElement.getBoundingClientRect(),o=this._boundaryElement.getBoundingClientRect();if(0===o.width&&0===o.height||0===i.width&&0===i.height)return;const r=o.left-i.left,s=i.right-o.right,a=o.top-i.top,c=i.bottom-o.bottom;o.width>i.width?(r>0&&(n+=r),s>0&&(n-=s)):n=0,o.height>i.height?(a>0&&(e+=a),c>0&&(e-=c)):e=0,(n!==this._passiveTransform.x||e!==this._passiveTransform.y)&&this.setFreeDragPosition({y:e,x:n})}_getDragStartDelay(n){const e=this.dragStartDelay;return"number"==typeof e?e:m2(n)?e.touch:e?e.mouse:0}_updateOnScroll(n){const e=this._parentPositions.handleScroll(n);if(e){const i=Io(n);this._boundaryRect&&i!==this._boundaryElement&&i.contains(this._boundaryElement)&&f2(this._boundaryRect,e.top,e.left),this._pickupPositionOnPage.x+=e.left,this._pickupPositionOnPage.y+=e.top,this._dropContainer||(this._activeTransform.x-=e.left,this._activeTransform.y-=e.top,this._applyRootElementTransform(this._activeTransform.x,this._activeTransform.y))}}_getViewportScrollPosition(){return this._parentPositions.positions.get(this._document)?.scrollPosition||this._parentPositions.getViewportScrollPosition()}_getShadowRoot(){return void 0===this._cachedShadowRoot&&(this._cachedShadowRoot=N5(this._rootElement)),this._cachedShadowRoot}_getPreviewInsertionPoint(n,e){const i=this._previewContainer||"global";if("parent"===i)return n;if("global"===i){const o=this._document;return e||o.fullscreenElement||o.webkitFullscreenElement||o.mozFullScreenElement||o.msFullscreenElement||o.body}return Ni(i)}_getPreviewRect(){return(!this._previewRect||!this._previewRect.width&&!this._previewRect.height)&&(this._previewRect=this._preview?this._preview.getBoundingClientRect():this._initialDomRect),this._previewRect}_getTargetHandle(n){return this._handles.find(e=>n.target&&(n.target===e||e.contains(n.target)))}}function $A(t,n,e){return Math.max(n,Math.min(e,t))}function m2(t){return"t"===t.type[0]}function YA(t){t.preventDefault()}function xc(t,n,e){const i=g2(n,t.length-1),o=g2(e,t.length-1);if(i===o)return;const r=t[i],s=o0)return null;const a="horizontal"===this.orientation,c=r.findIndex(E=>E.drag===n),l=r[s],p=l.clientRect,_=c>s?1:-1,b=this._getItemOffsetPx(r[c].clientRect,p,_),y=this._getSiblingOffsetPx(c,r,_),z=r.slice();return xc(r,c,s),r.forEach((E,k)=>{if(z[k]===E)return;const A=E.drag===n,ie=A?b:y,pe=A?n.getPlaceholderElement():E.drag.getRootElement();E.offset+=ie,a?(pe.style.transform=X3(`translate3d(${Math.round(E.offset)}px, 0, 0)`,E.initialTransform),f2(E.clientRect,0,ie)):(pe.style.transform=X3(`translate3d(0, ${Math.round(E.offset)}px, 0)`,E.initialTransform),f2(E.clientRect,ie,0))}),this._previousSwap.overlaps=A7(p,e,i),this._previousSwap.drag=l.drag,this._previousSwap.delta=a?o.x:o.y,{previousIndex:c,currentIndex:s}}enter(n,e,i,o){const r=null==o||o<0?this._getItemIndexFromPointerPosition(n,e,i):o,s=this._activeDraggables,a=s.indexOf(n),c=n.getPlaceholderElement();let l=s[r];if(l===n&&(l=s[r+1]),!l&&(null==r||-1===r||r-1&&s.splice(a,1),l&&!this._dragDropRegistry.isDragging(l)){const u=l.getRootElement();u.parentElement.insertBefore(c,u),s.splice(r,0,n)}else Ni(this._element).appendChild(c),s.push(n);c.style.transform="",this._cacheItemPositions()}withItems(n){this._activeDraggables=n.slice(),this._cacheItemPositions()}withSortPredicate(n){this._sortPredicate=n}reset(){this._activeDraggables.forEach(n=>{const e=n.getRootElement();if(e){const i=this._itemPositions.find(o=>o.drag===n)?.initialTransform;e.style.transform=i||""}}),this._itemPositions=[],this._activeDraggables=[],this._previousSwap.drag=null,this._previousSwap.delta=0,this._previousSwap.overlaps=!1}getActiveItemsSnapshot(){return this._activeDraggables}getItemIndex(n){return("horizontal"===this.orientation&&"rtl"===this.direction?this._itemPositions.slice().reverse():this._itemPositions).findIndex(i=>i.drag===n)}updateOnScroll(n,e){this._itemPositions.forEach(({clientRect:i})=>{f2(i,n,e)}),this._itemPositions.forEach(({drag:i})=>{this._dragDropRegistry.isDragging(i)&&i._sortFromLastPointerPosition()})}_cacheItemPositions(){const n="horizontal"===this.orientation;this._itemPositions=this._activeDraggables.map(e=>{const i=e.getVisibleElement();return{drag:e,offset:0,initialTransform:i.style.transform||"",clientRect:k7(i)}}).sort((e,i)=>n?e.clientRect.left-i.clientRect.left:e.clientRect.top-i.clientRect.top)}_getItemOffsetPx(n,e,i){const o="horizontal"===this.orientation;let r=o?e.left-n.left:e.top-n.top;return-1===i&&(r+=o?e.width-n.width:e.height-n.height),r}_getSiblingOffsetPx(n,e,i){const o="horizontal"===this.orientation,r=e[n].clientRect,s=e[n+-1*i];let a=r[o?"width":"height"]*i;if(s){const c=o?"left":"top",l=o?"right":"bottom";-1===i?a-=s.clientRect[c]-r[l]:a+=r[c]-s.clientRect[l]}return a}_shouldEnterAsFirstChild(n,e){if(!this._activeDraggables.length)return!1;const i=this._itemPositions,o="horizontal"===this.orientation;if(i[0].drag!==this._activeDraggables[0]){const s=i[i.length-1].clientRect;return o?n>=s.right:e>=s.bottom}{const s=i[0].clientRect;return o?n<=s.left:e<=s.top}}_getItemIndexFromPointerPosition(n,e,i,o){const r="horizontal"===this.orientation,s=this._itemPositions.findIndex(({drag:a,clientRect:c})=>a!==n&&((!o||a!==this._previousSwap.drag||!this._previousSwap.overlaps||(r?o.x:o.y)!==this._previousSwap.delta)&&(r?e>=Math.floor(c.left)&&e=Math.floor(c.top)&&i!0,this.sortPredicate=()=>!0,this.beforeStarted=new N,this.entered=new N,this.exited=new N,this.dropped=new N,this.sorted=new N,this.receivingStarted=new N,this.receivingStopped=new N,this._isDragging=!1,this._draggables=[],this._siblings=[],this._activeSiblings=new Set,this._viewportScrollSubscription=Ft.EMPTY,this._verticalScrollDirection=yr.NONE,this._horizontalScrollDirection=wo.NONE,this._stopScrollTimers=new N,this._cachedShadowRoot=null,this._startScrollInterval=()=>{this._stopScrolling(),function Wse(t=0,n=Yu){return t<0&&(t=0),m3(t,t,n)}(0,_7).pipe(I(this._stopScrollTimers)).subscribe(()=>{const s=this._scrollNode,a=this.autoScrollStep;this._verticalScrollDirection===yr.UP?s.scrollBy(0,-a):this._verticalScrollDirection===yr.DOWN&&s.scrollBy(0,a),this._horizontalScrollDirection===wo.LEFT?s.scrollBy(-a,0):this._horizontalScrollDirection===wo.RIGHT&&s.scrollBy(a,0)})},this.element=Ni(n),this._document=i,this.withScrollableParents([this.element]),e.registerDropContainer(this),this._parentPositions=new NA(i),this._sortStrategy=new Xse(this.element,e),this._sortStrategy.withSortPredicate((s,a)=>this.sortPredicate(s,a,this))}dispose(){this._stopScrolling(),this._stopScrollTimers.complete(),this._viewportScrollSubscription.unsubscribe(),this.beforeStarted.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this.sorted.complete(),this.receivingStarted.complete(),this.receivingStopped.complete(),this._activeSiblings.clear(),this._scrollNode=null,this._parentPositions.clear(),this._dragDropRegistry.removeDropContainer(this)}isDragging(){return this._isDragging}start(){this._draggingStarted(),this._notifyReceivingSiblings()}enter(n,e,i,o){this._draggingStarted(),null==o&&this.sortingDisabled&&(o=this._draggables.indexOf(n)),this._sortStrategy.enter(n,e,i,o),this._cacheParentPositions(),this._notifyReceivingSiblings(),this.entered.next({item:n,container:this,currentIndex:this.getItemIndex(n)})}exit(n){this._reset(),this.exited.next({item:n,container:this})}drop(n,e,i,o,r,s,a,c={}){this._reset(),this.dropped.next({item:n,currentIndex:e,previousIndex:i,container:this,previousContainer:o,isPointerOverContainer:r,distance:s,dropPoint:a,event:c})}withItems(n){const e=this._draggables;return this._draggables=n,n.forEach(i=>i._withDropContainer(this)),this.isDragging()&&(e.filter(o=>o.isDragging()).every(o=>-1===n.indexOf(o))?this._reset():this._sortStrategy.withItems(this._draggables)),this}withDirection(n){return this._sortStrategy.direction=n,this}connectedTo(n){return this._siblings=n.slice(),this}withOrientation(n){return this._sortStrategy.orientation=n,this}withScrollableParents(n){const e=Ni(this.element);return this._scrollableElements=-1===n.indexOf(e)?[e,...n]:n.slice(),this}getScrollableParents(){return this._scrollableElements}getItemIndex(n){return this._isDragging?this._sortStrategy.getItemIndex(n):this._draggables.indexOf(n)}isReceiving(){return this._activeSiblings.size>0}_sortItem(n,e,i,o){if(this.sortingDisabled||!this._domRect||!IA(this._domRect,.05,e,i))return;const r=this._sortStrategy.sort(n,e,i,o);r&&this.sorted.next({previousIndex:r.previousIndex,currentIndex:r.currentIndex,container:this,item:n})}_startScrollingIfNecessary(n,e){if(this.autoScrollDisabled)return;let i,o=yr.NONE,r=wo.NONE;if(this._parentPositions.positions.forEach((s,a)=>{a===this._document||!s.clientRect||i||IA(s.clientRect,.05,n,e)&&([o,r]=function tae(t,n,e,i,o){const r=GA(n,o),s=qA(n,i);let a=yr.NONE,c=wo.NONE;if(r){const l=t.scrollTop;r===yr.UP?l>0&&(a=yr.UP):t.scrollHeight-l>t.clientHeight&&(a=yr.DOWN)}if(s){const l=t.scrollLeft;"rtl"===e?s===wo.RIGHT?l<0&&(c=wo.RIGHT):t.scrollWidth+l>t.clientWidth&&(c=wo.LEFT):s===wo.LEFT?l>0&&(c=wo.LEFT):t.scrollWidth-l>t.clientWidth&&(c=wo.RIGHT)}return[a,c]}(a,s.clientRect,this._sortStrategy.direction,n,e),(o||r)&&(i=a))}),!o&&!r){const{width:s,height:a}=this._viewportRuler.getViewportSize(),c={width:s,height:a,top:0,right:s,bottom:a,left:0};o=GA(c,e),r=qA(c,n),i=window}i&&(o!==this._verticalScrollDirection||r!==this._horizontalScrollDirection||i!==this._scrollNode)&&(this._verticalScrollDirection=o,this._horizontalScrollDirection=r,this._scrollNode=i,(o||r)&&i?this._ngZone.runOutsideAngular(this._startScrollInterval):this._stopScrolling())}_stopScrolling(){this._stopScrollTimers.next()}_draggingStarted(){const n=Ni(this.element).style;this.beforeStarted.next(),this._isDragging=!0,this._initialScrollSnap=n.msScrollSnapType||n.scrollSnapType||"",n.scrollSnapType=n.msScrollSnapType="none",this._sortStrategy.start(this._draggables),this._cacheParentPositions(),this._viewportScrollSubscription.unsubscribe(),this._listenToScrollEvents()}_cacheParentPositions(){const n=Ni(this.element);this._parentPositions.cache(this._scrollableElements),this._domRect=this._parentPositions.positions.get(n).clientRect}_reset(){this._isDragging=!1;const n=Ni(this.element).style;n.scrollSnapType=n.msScrollSnapType=this._initialScrollSnap,this._siblings.forEach(e=>e._stopReceiving(this)),this._sortStrategy.reset(),this._stopScrolling(),this._viewportScrollSubscription.unsubscribe(),this._parentPositions.clear()}_isOverContainer(n,e){return null!=this._domRect&&A7(this._domRect,n,e)}_getSiblingContainerFromPosition(n,e,i){return this._siblings.find(o=>o._canReceive(n,e,i))}_canReceive(n,e,i){if(!this._domRect||!A7(this._domRect,e,i)||!this.enterPredicate(n,this))return!1;const o=this._getShadowRoot().elementFromPoint(e,i);if(!o)return!1;const r=Ni(this.element);return o===r||r.contains(o)}_startReceiving(n,e){const i=this._activeSiblings;!i.has(n)&&e.every(o=>this.enterPredicate(o,this)||this._draggables.indexOf(o)>-1)&&(i.add(n),this._cacheParentPositions(),this._listenToScrollEvents(),this.receivingStarted.next({initiator:n,receiver:this,items:e}))}_stopReceiving(n){this._activeSiblings.delete(n),this._viewportScrollSubscription.unsubscribe(),this.receivingStopped.next({initiator:n,receiver:this})}_listenToScrollEvents(){this._viewportScrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(n=>{if(this.isDragging()){const e=this._parentPositions.handleScroll(n);e&&this._sortStrategy.updateOnScroll(e.top,e.left)}else this.isReceiving()&&this._cacheParentPositions()})}_getShadowRoot(){if(!this._cachedShadowRoot){const n=N5(Ni(this.element));this._cachedShadowRoot=n||this._document}return this._cachedShadowRoot}_notifyReceivingSiblings(){const n=this._sortStrategy.getActiveItemsSnapshot().filter(e=>e.isDragging());this._siblings.forEach(e=>e._startReceiving(this,n))}}function GA(t,n){const{top:e,bottom:i,height:o}=t,r=.05*o;return n>=e-r&&n<=e+r?yr.UP:n>=i-r&&n<=i+r?yr.DOWN:yr.NONE}function qA(t,n){const{left:e,right:i,width:o}=t,r=.05*o;return n>=e-r&&n<=e+r?wo.LEFT:n>=i-r&&n<=i+r?wo.RIGHT:wo.NONE}const n6=M1({passive:!1,capture:!0}),i6=new Set;let nae=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["ng-component"]],hostAttrs:["cdk-drag-resets-container",""],standalone:!0,features:[me],decls:0,vars:0,template:function(i,o){},styles:["@layer cdk-resets{.cdk-drag-preview{background:none;border:none;padding:0;color:inherit}}"],encapsulation:2,changeDetection:0})}return t})(),iae=(()=>{class t{constructor(e,i){this._ngZone=e,this._appRef=W(Ko),this._environmentInjector=W(Li),this._dropInstances=new Set,this._dragInstances=new Set,this._activeDragInstances=Of([]),this._globalListeners=new Map,this._draggingPredicate=o=>o.isDragging(),this.pointerMove=new N,this.pointerUp=new N,this.scroll=new N,this._preventDefaultWhileDragging=o=>{this._activeDragInstances().length>0&&o.preventDefault()},this._persistentTouchmoveListener=o=>{this._activeDragInstances().length>0&&(this._activeDragInstances().some(this._draggingPredicate)&&o.preventDefault(),this.pointerMove.next(o))},this._document=i}registerDropContainer(e){this._dropInstances.has(e)||this._dropInstances.add(e)}registerDragItem(e){this._dragInstances.add(e),1===this._dragInstances.size&&this._ngZone.runOutsideAngular(()=>{this._document.addEventListener("touchmove",this._persistentTouchmoveListener,n6)})}removeDropContainer(e){this._dropInstances.delete(e)}removeDragItem(e){this._dragInstances.delete(e),this.stopDragging(e),0===this._dragInstances.size&&this._document.removeEventListener("touchmove",this._persistentTouchmoveListener,n6)}startDragging(e,i){if(!(this._activeDragInstances().indexOf(e)>-1)&&(this._loadResets(),this._activeDragInstances.update(o=>[...o,e]),1===this._activeDragInstances().length)){const o=i.type.startsWith("touch");this._globalListeners.set(o?"touchend":"mouseup",{handler:r=>this.pointerUp.next(r),options:!0}).set("scroll",{handler:r=>this.scroll.next(r),options:!0}).set("selectstart",{handler:this._preventDefaultWhileDragging,options:n6}),o||this._globalListeners.set("mousemove",{handler:r=>this.pointerMove.next(r),options:n6}),this._ngZone.runOutsideAngular(()=>{this._globalListeners.forEach((r,s)=>{this._document.addEventListener(s,r.handler,r.options)})})}}stopDragging(e){this._activeDragInstances.update(i=>{const o=i.indexOf(e);return o>-1?(i.splice(o,1),[...i]):i}),0===this._activeDragInstances().length&&this._clearGlobalListeners()}isDragging(e){return this._activeDragInstances().indexOf(e)>-1}scrolled(e){const i=[this.scroll];return e&&e!==this._document&&i.push(new Ut(o=>this._ngZone.runOutsideAngular(()=>{const s=a=>{this._activeDragInstances().length&&o.next(a)};return e.addEventListener("scroll",s,!0),()=>{e.removeEventListener("scroll",s,!0)}}))),Pn(...i)}ngOnDestroy(){this._dragInstances.forEach(e=>this.removeDragItem(e)),this._dropInstances.forEach(e=>this.removeDropContainer(e)),this._clearGlobalListeners(),this.pointerMove.complete(),this.pointerUp.complete()}_clearGlobalListeners(){this._globalListeners.forEach((e,i)=>{this._document.removeEventListener(i,e.handler,e.options)}),this._globalListeners.clear()}_loadResets(){if(!i6.has(this._appRef)){i6.add(this._appRef);const e=function NG(t,n){const e=xt(t),i=n.elementInjector||vh();return new $d(e).create(i,n.projectableNodes,n.hostElement,n.environmentInjector)}(nae,{environmentInjector:this._environmentInjector});this._appRef.onDestroy(()=>{i6.delete(this._appRef),0===i6.size&&e.destroy()})}}static#e=this.\u0275fac=function(i){return new(i||t)(R(De),R(It))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const oae={dragStartThreshold:5,pointerDirectionChangeThreshold:5};let I7=(()=>{class t{constructor(e,i,o,r){this._document=e,this._ngZone=i,this._viewportRuler=o,this._dragDropRegistry=r}createDrag(e,i=oae){return new Qse(e,i,this._document,this._ngZone,this._viewportRuler,this._dragDropRegistry)}createDropList(e){return new eae(e,this._dragDropRegistry,this._document,this._ngZone,this._viewportRuler)}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R(De),R(a2),R(iae))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const v2=new oe("CDK_DRAG_PARENT"),KA=new oe("CdkDragHandle");let JA=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._stateChanges.next(this)}constructor(e,i){this.element=e,this._parentDrag=i,this._stateChanges=new N,this._disabled=!1,i?._addHandle(this)}ngOnDestroy(){this._parentDrag?._removeHandle(this),this._stateChanges.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(v2,12))};static#t=this.\u0275dir=de({type:t,selectors:[["","cdkDragHandle",""]],hostAttrs:[1,"cdk-drag-handle"],inputs:{disabled:[2,"cdkDragHandleDisabled","disabled",O]},standalone:!0,features:[et([{provide:KA,useExisting:t}]),je]})}return t})();const ZA=new oe("CDK_DRAG_CONFIG"),QA=new oe("CdkDropList");let _2=(()=>{class t{static#e=this._dragInstances=[];get disabled(){return this._disabled||this.dropContainer&&this.dropContainer.disabled}set disabled(e){this._disabled=e,this._dragRef.disabled=this._disabled}constructor(e,i,o,r,s,a,c,l,u,p,_){this.element=e,this.dropContainer=i,this._ngZone=r,this._viewContainerRef=s,this._dir=c,this._changeDetectorRef=u,this._selfHandle=p,this._parentDrag=_,this._destroyed=new N,this._handles=new rt([]),this.started=new H,this.released=new H,this.ended=new H,this.entered=new H,this.exited=new H,this.dropped=new H,this.moved=new Ut(b=>{const y=this._dragRef.moved.pipe(Ie(z=>({source:this,pointerPosition:z.pointerPosition,event:z.event,delta:z.delta,distance:z.distance}))).subscribe(b);return()=>{y.unsubscribe()}}),this._injector=W(tn),this._dragRef=l.createDrag(e,{dragStartThreshold:a&&null!=a.dragStartThreshold?a.dragStartThreshold:5,pointerDirectionChangeThreshold:a&&null!=a.pointerDirectionChangeThreshold?a.pointerDirectionChangeThreshold:5,zIndex:a?.zIndex}),this._dragRef.data=this,t._dragInstances.push(this),a&&this._assignDefaults(a),i&&(this._dragRef._withDropContainer(i._dropListRef),i.addItem(this)),this._syncInputs(this._dragRef),this._handleEvents(this._dragRef)}getPlaceholderElement(){return this._dragRef.getPlaceholderElement()}getRootElement(){return this._dragRef.getRootElement()}reset(){this._dragRef.reset()}getFreeDragPosition(){return this._dragRef.getFreeDragPosition()}setFreeDragPosition(e){this._dragRef.setFreeDragPosition(e)}ngAfterViewInit(){Xa(()=>{this._updateRootElement(),this._setupHandlesListener(),this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)},{injector:this._injector})}ngOnChanges(e){const i=e.rootElementSelector,o=e.freeDragPosition;i&&!i.firstChange&&this._updateRootElement(),o&&!o.firstChange&&this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)}ngOnDestroy(){this.dropContainer&&this.dropContainer.removeItem(this);const e=t._dragInstances.indexOf(this);e>-1&&t._dragInstances.splice(e,1),this._ngZone.runOutsideAngular(()=>{this._handles.complete(),this._destroyed.next(),this._destroyed.complete(),this._dragRef.dispose()})}_addHandle(e){const i=this._handles.getValue();i.push(e),this._handles.next(i)}_removeHandle(e){const i=this._handles.getValue(),o=i.indexOf(e);o>-1&&(i.splice(o,1),this._handles.next(i))}_setPreviewTemplate(e){this._previewTemplate=e}_resetPreviewTemplate(e){e===this._previewTemplate&&(this._previewTemplate=null)}_setPlaceholderTemplate(e){this._placeholderTemplate=e}_resetPlaceholderTemplate(e){e===this._placeholderTemplate&&(this._placeholderTemplate=null)}_updateRootElement(){const e=this.element.nativeElement;let i=e;this.rootElementSelector&&(i=void 0!==e.closest?e.closest(this.rootElementSelector):e.parentElement?.closest(this.rootElementSelector)),this._dragRef.withRootElement(i||e)}_getBoundaryElement(){const e=this.boundaryElement;return e?"string"==typeof e?this.element.nativeElement.closest(e):Ni(e):null}_syncInputs(e){e.beforeStarted.subscribe(()=>{if(!e.isDragging()){const i=this._dir,o=this.dragStartDelay,r=this._placeholderTemplate?{template:this._placeholderTemplate.templateRef,context:this._placeholderTemplate.data,viewContainer:this._viewContainerRef}:null,s=this._previewTemplate?{template:this._previewTemplate.templateRef,context:this._previewTemplate.data,matchSize:this._previewTemplate.matchSize,viewContainer:this._viewContainerRef}:null;e.disabled=this.disabled,e.lockAxis=this.lockAxis,e.dragStartDelay="object"==typeof o&&o?o:Rs(o),e.constrainPosition=this.constrainPosition,e.previewClass=this.previewClass,e.withBoundaryElement(this._getBoundaryElement()).withPlaceholderTemplate(r).withPreviewTemplate(s).withPreviewContainer(this.previewContainer||"global"),i&&e.withDirection(i.value)}}),e.beforeStarted.pipe(io(1)).subscribe(()=>{if(this._parentDrag)return void e.withParent(this._parentDrag._dragRef);let i=this.element.nativeElement.parentElement;for(;i;){if(i.classList.contains("cdk-drag")){e.withParent(t._dragInstances.find(o=>o.element.nativeElement===i)?._dragRef||null);break}i=i.parentElement}})}_handleEvents(e){e.started.subscribe(i=>{this.started.emit({source:this,event:i.event}),this._changeDetectorRef.markForCheck()}),e.released.subscribe(i=>{this.released.emit({source:this,event:i.event})}),e.ended.subscribe(i=>{this.ended.emit({source:this,distance:i.distance,dropPoint:i.dropPoint,event:i.event}),this._changeDetectorRef.markForCheck()}),e.entered.subscribe(i=>{this.entered.emit({container:i.container.data,item:this,currentIndex:i.currentIndex})}),e.exited.subscribe(i=>{this.exited.emit({container:i.container.data,item:this})}),e.dropped.subscribe(i=>{this.dropped.emit({previousIndex:i.previousIndex,currentIndex:i.currentIndex,previousContainer:i.previousContainer.data,container:i.container.data,isPointerOverContainer:i.isPointerOverContainer,item:this,distance:i.distance,dropPoint:i.dropPoint,event:i.event})})}_assignDefaults(e){const{lockAxis:i,dragStartDelay:o,constrainPosition:r,previewClass:s,boundaryElement:a,draggingDisabled:c,rootElementSelector:l,previewContainer:u}=e;this.disabled=c??!1,this.dragStartDelay=o||0,i&&(this.lockAxis=i),r&&(this.constrainPosition=r),s&&(this.previewClass=s),a&&(this.boundaryElement=a),l&&(this.rootElementSelector=l),u&&(this.previewContainer=u)}_setupHandlesListener(){this._handles.pipe(ii(e=>{const i=e.map(o=>o.element);this._selfHandle&&this.rootElementSelector&&i.push(this.element),this._dragRef.withHandles(i)}),mn(e=>Pn(...e.map(i=>i._stateChanges.pipe(gn(i))))),I(this._destroyed)).subscribe(e=>{const i=this._dragRef,o=e.element.nativeElement;e.disabled?i.disableHandle(o):i.enableHandle(o)})}static#t=this.\u0275fac=function(i){return new(i||t)(v(Te),v(QA,12),v(It),v(De),v(Gn),v(ZA,8),v(wt,8),v(I7),v(Ue),v(KA,10),v(v2,12))};static#n=this.\u0275dir=de({type:t,selectors:[["","cdkDrag",""]],hostAttrs:[1,"cdk-drag"],hostVars:4,hostBindings:function(i,o){2&i&&Q("cdk-drag-disabled",o.disabled)("cdk-drag-dragging",o._dragRef.isDragging())},inputs:{data:[0,"cdkDragData","data"],lockAxis:[0,"cdkDragLockAxis","lockAxis"],rootElementSelector:[0,"cdkDragRootElement","rootElementSelector"],boundaryElement:[0,"cdkDragBoundary","boundaryElement"],dragStartDelay:[0,"cdkDragStartDelay","dragStartDelay"],freeDragPosition:[0,"cdkDragFreeDragPosition","freeDragPosition"],disabled:[2,"cdkDragDisabled","disabled",O],constrainPosition:[0,"cdkDragConstrainPosition","constrainPosition"],previewClass:[0,"cdkDragPreviewClass","previewClass"],previewContainer:[0,"cdkDragPreviewContainer","previewContainer"]},outputs:{started:"cdkDragStarted",released:"cdkDragReleased",ended:"cdkDragEnded",entered:"cdkDragEntered",exited:"cdkDragExited",dropped:"cdkDragDropped",moved:"cdkDragMoved"},exportAs:["cdkDrag"],standalone:!0,features:[et([{provide:v2,useExisting:t}]),je,ke]})}return t})();const N7=new oe("CdkDropListGroup");let aae=0,o6=(()=>{class t{static#e=this._dropLists=[];get disabled(){return this._disabled||!!this._group&&this._group.disabled}set disabled(e){this._dropListRef.disabled=this._disabled=e}constructor(e,i,o,r,s,a,c){this.element=e,this._changeDetectorRef=o,this._scrollDispatcher=r,this._dir=s,this._group=a,this._destroyed=new N,this.connectedTo=[],this.id="cdk-drop-list-"+aae++,this.enterPredicate=()=>!0,this.sortPredicate=()=>!0,this.dropped=new H,this.entered=new H,this.exited=new H,this.sorted=new H,this._unsortedItems=new Set,this._dropListRef=i.createDropList(e),this._dropListRef.data=this,c&&this._assignDefaults(c),this._dropListRef.enterPredicate=(l,u)=>this.enterPredicate(l.data,u.data),this._dropListRef.sortPredicate=(l,u,p)=>this.sortPredicate(l,u.data,p.data),this._setupInputSyncSubscription(this._dropListRef),this._handleEvents(this._dropListRef),t._dropLists.push(this),a&&a._items.add(this)}addItem(e){this._unsortedItems.add(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()}removeItem(e){this._unsortedItems.delete(e),this._dropListRef.isDragging()&&this._syncItemsWithRef()}getSortedItems(){return Array.from(this._unsortedItems).sort((e,i)=>e._dragRef.getVisibleElement().compareDocumentPosition(i._dragRef.getVisibleElement())&Node.DOCUMENT_POSITION_FOLLOWING?-1:1)}ngOnDestroy(){const e=t._dropLists.indexOf(this);e>-1&&t._dropLists.splice(e,1),this._group&&this._group._items.delete(this),this._unsortedItems.clear(),this._dropListRef.dispose(),this._destroyed.next(),this._destroyed.complete()}_setupInputSyncSubscription(e){this._dir&&this._dir.change.pipe(gn(this._dir.value),I(this._destroyed)).subscribe(i=>e.withDirection(i)),e.beforeStarted.subscribe(()=>{const i=Uu(this.connectedTo).map(o=>"string"==typeof o?t._dropLists.find(s=>s.id===o):o);if(this._group&&this._group._items.forEach(o=>{-1===i.indexOf(o)&&i.push(o)}),!this._scrollableParentsResolved){const o=this._scrollDispatcher.getAncestorScrollContainers(this.element).map(r=>r.getElementRef().nativeElement);this._dropListRef.withScrollableParents(o),this._scrollableParentsResolved=!0}e.disabled=this.disabled,e.lockAxis=this.lockAxis,e.sortingDisabled=this.sortingDisabled,e.autoScrollDisabled=this.autoScrollDisabled,e.autoScrollStep=Rs(this.autoScrollStep,2),e.connectedTo(i.filter(o=>o&&o!==this).map(o=>o._dropListRef)).withOrientation(this.orientation)})}_handleEvents(e){e.beforeStarted.subscribe(()=>{this._syncItemsWithRef(),this._changeDetectorRef.markForCheck()}),e.entered.subscribe(i=>{this.entered.emit({container:this,item:i.item.data,currentIndex:i.currentIndex})}),e.exited.subscribe(i=>{this.exited.emit({container:this,item:i.item.data}),this._changeDetectorRef.markForCheck()}),e.sorted.subscribe(i=>{this.sorted.emit({previousIndex:i.previousIndex,currentIndex:i.currentIndex,container:this,item:i.item.data})}),e.dropped.subscribe(i=>{this.dropped.emit({previousIndex:i.previousIndex,currentIndex:i.currentIndex,previousContainer:i.previousContainer.data,container:i.container.data,item:i.item.data,isPointerOverContainer:i.isPointerOverContainer,distance:i.distance,dropPoint:i.dropPoint,event:i.event}),this._changeDetectorRef.markForCheck()}),Pn(e.receivingStarted,e.receivingStopped).subscribe(()=>this._changeDetectorRef.markForCheck())}_assignDefaults(e){const{lockAxis:i,draggingDisabled:o,sortingDisabled:r,listAutoScrollDisabled:s,listOrientation:a}=e;this.disabled=o??!1,this.sortingDisabled=r??!1,this.autoScrollDisabled=s??!1,this.orientation=a||"vertical",i&&(this.lockAxis=i)}_syncItemsWithRef(){this._dropListRef.withItems(this.getSortedItems().map(e=>e._dragRef))}static#t=this.\u0275fac=function(i){return new(i||t)(v(Te),v(I7),v(Ue),v(s2),v(wt,8),v(N7,12),v(ZA,8))};static#n=this.\u0275dir=de({type:t,selectors:[["","cdkDropList",""],["cdk-drop-list"]],hostAttrs:[1,"cdk-drop-list"],hostVars:7,hostBindings:function(i,o){2&i&&(Pt("id",o.id),Q("cdk-drop-list-disabled",o.disabled)("cdk-drop-list-dragging",o._dropListRef.isDragging())("cdk-drop-list-receiving",o._dropListRef.isReceiving()))},inputs:{connectedTo:[0,"cdkDropListConnectedTo","connectedTo"],data:[0,"cdkDropListData","data"],orientation:[0,"cdkDropListOrientation","orientation"],id:"id",lockAxis:[0,"cdkDropListLockAxis","lockAxis"],disabled:[2,"cdkDropListDisabled","disabled",O],sortingDisabled:[2,"cdkDropListSortingDisabled","sortingDisabled",O],enterPredicate:[0,"cdkDropListEnterPredicate","enterPredicate"],sortPredicate:[0,"cdkDropListSortPredicate","sortPredicate"],autoScrollDisabled:[2,"cdkDropListAutoScrollDisabled","autoScrollDisabled",O],autoScrollStep:[0,"cdkDropListAutoScrollStep","autoScrollStep"]},outputs:{dropped:"cdkDropListDropped",entered:"cdkDropListEntered",exited:"cdkDropListExited",sorted:"cdkDropListSorted"},exportAs:["cdkDropList"],standalone:!0,features:[et([{provide:N7,useValue:void 0},{provide:QA,useExisting:t}]),je]})}return t})(),uae=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[I7],imports:[C7]})}return t})();const hae=["nz-modal-close",""];function pae(t,n){if(1&t&&($e(0),S(1,"span",2),Ye()),2&t){const e=n.$implicit;d(),h("nzType",e)}}const XA=["modalElement"];function fae(t,n){if(1&t){const e=U();f(0,"button",16),D("click",function(){return T(e),M(g().onCloseClick())}),m()}}function mae(t,n){if(1&t&&($e(0),S(1,"span",12),Ye()),2&t){const e=g();d(),h("innerHTML",e.config.nzTitle,Wn)}}function gae(t,n){}function vae(t,n){1&t&&S(0,"div",12),2&t&&h("innerHTML",g().config.nzContent,Wn)}function _ae(t,n){if(1&t){const e=U();f(0,"button",17),D("click",function(){return T(e),M(g().onCancel())}),C(1),m()}if(2&t){const e=g();h("nzLoading",e.config.nzCancelLoading)("disabled",e.config.nzCancelDisabled),Pt("cdkFocusInitial","cancel"===e.config.nzAutofocus||null),d(),Ce(" ",e.config.nzCancelText||e.locale.cancelText," ")}}function bae(t,n){if(1&t){const e=U();f(0,"button",18),D("click",function(){return T(e),M(g().onOk())}),C(1),m()}if(2&t){const e=g();h("nzType",e.config.nzOkType)("nzLoading",e.config.nzOkLoading)("disabled",e.config.nzOkDisabled)("nzDanger",e.config.nzOkDanger),Pt("cdkFocusInitial","ok"===e.config.nzAutofocus||null),d(),Ce(" ",e.config.nzOkText||e.locale.okText," ")}}const yae=["nz-modal-footer",""],Cae=(t,n)=>({$implicit:t,modalRef:n});function wae(t,n){if(1&t){const e=U();f(0,"button",3),D("click",function(){const o=T(e).$implicit;return M(g(4).onButtonClick(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=g(4);h("hidden",!i.getButtonCallableProp(e,"show"))("nzLoading",i.getButtonCallableProp(e,"loading"))("disabled",i.getButtonCallableProp(e,"disabled"))("nzType",e.type)("nzDanger",e.danger)("nzShape",e.shape)("nzSize",e.size)("nzGhost",e.ghost),d(),Ce(" ",e.label," ")}}function zae(t,n){1&t&&ji(0,wae,2,9,"button",2,fr),2&t&&$i(g(3).buttons)}function Sae(t,n){1&t&&S(0,"div",1),2&t&&h("innerHTML",g(3).config.nzFooter,Wn)}function Tae(t,n){if(1&t&&($e(0),w(1,zae,2,0)(2,Sae,1,1,"div",1),Ye()),2&t){const e=g(2);d(),he(e.buttonsFooter?1:2)}}function Mae(t,n){if(1&t&&w(0,Tae,3,1,"ng-container",0),2&t){const e=g();h("nzStringTemplateOutlet",e.config.nzFooter)("nzStringTemplateOutletContext",sc(2,Cae,e.config.nzData,e.modalRef))}}function Dae(t,n){if(1&t){const e=U();f(0,"button",6),D("click",function(){return T(e),M(g(2).onCancel())}),C(1),m()}if(2&t){const e=g(2);h("nzLoading",e.config.nzCancelLoading)("disabled",e.config.nzCancelDisabled),Pt("cdkFocusInitial","cancel"===e.config.nzAutofocus||null),d(),Ce(" ",e.config.nzCancelText||e.locale.cancelText," ")}}function xae(t,n){if(1&t){const e=U();f(0,"button",7),D("click",function(){return T(e),M(g(2).onOk())}),C(1),m()}if(2&t){const e=g(2);h("nzType",e.config.nzOkType)("nzDanger",e.config.nzOkDanger)("nzLoading",e.config.nzOkLoading)("disabled",e.config.nzOkDisabled),Pt("cdkFocusInitial","ok"===e.config.nzAutofocus||null),d(),Ce(" ",e.config.nzOkText||e.locale.okText," ")}}function Eae(t,n){if(1&t&&w(0,Dae,2,4,"button",4)(1,xae,2,6,"button",5),2&t){const e=g();he(null!==e.config.nzCancelText?0:-1),d(),he(null!==e.config.nzOkText?1:-1)}}const kae=["nz-modal-title",""];function Aae(t,n){if(1&t&&($e(0),S(1,"div",2),Ye()),2&t){const e=g();d(),h("innerHTML",e.config.nzTitle,Wn)}}function Oae(t,n){if(1&t){const e=U();f(0,"button",9),D("click",function(){return T(e),M(g().onCloseClick())}),m()}}function Pae(t,n){1&t&&S(0,"div",10),2&t&&Lt("cursor",g().config.nzDraggable?"move":"auto")}function Iae(t,n){}function Nae(t,n){1&t&&S(0,"div",7),2&t&&h("innerHTML",g().config.nzContent,Wn)}function Vae(t,n){if(1&t){const e=U();f(0,"div",11),D("cancelTriggered",function(){return T(e),M(g().onCloseClick())})("okTriggered",function(){return T(e),M(g().onOkClick())}),m()}2&t&&h("modalRef",g().modalRef)}const eO=()=>{};class Ec{constructor(){this.nzCentered=!1,this.nzClosable=!0,this.nzOkLoading=!1,this.nzOkDisabled=!1,this.nzCancelDisabled=!1,this.nzCancelLoading=!1,this.nzDraggable=!1,this.nzNoAnimation=!1,this.nzAutofocus="auto",this.nzKeyboard=!0,this.nzZIndex=1e3,this.nzWidth=520,this.nzCloseIcon="close",this.nzOkType="primary",this.nzOkDanger=!1,this.nzModalType="default",this.nzOnCancel=eO,this.nzOnOk=eO,this.nzIconType="question-circle"}}const r6="ant-modal-mask",s6="modal",Fae=new oe("NZ_MODAL_DATA"),tO={modalContainer:Vo("modalContainer",[Co("void, exit",Ke({})),Co("enter",Ke({})),un("* => enter",an(".24s",Ke({}))),un("* => void, * => exit",an(".2s",Ke({})))])};let V7=(()=>{class t{constructor(e){this.config=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ec))};static#t=this.\u0275cmp=q({type:t,selectors:[["button","nz-modal-close",""]],hostAttrs:["aria-label","Close",1,"ant-modal-close"],exportAs:["NzModalCloseBuiltin"],standalone:!0,features:[me],attrs:hae,decls:2,vars:1,consts:[[1,"ant-modal-close-x"],[4,"nzStringTemplateOutlet"],["nz-icon","",1,"ant-modal-close-icon",3,"nzType"]],template:function(i,o){1&i&&(f(0,"span",0),w(1,pae,2,1,"ng-container",1),m()),2&i&&(d(),h("nzStringTemplateOutlet",o.config.nzCloseIcon))},dependencies:[On,cn,Tn,Sn],encapsulation:2,changeDetection:0})}return t})();function b2(t,n,e){return typeof t>"u"?typeof n>"u"?e:n:t}function nO(t){const{nzCentered:n,nzMask:e,nzMaskClosable:i,nzClosable:o,nzOkLoading:r,nzOkDisabled:s,nzCancelDisabled:a,nzCancelLoading:c,nzKeyboard:l,nzNoAnimation:u,nzDraggable:p,nzContent:_,nzFooter:b,nzZIndex:y,nzWidth:z,nzWrapClassName:E,nzClassName:k,nzStyle:A,nzTitle:ie,nzCloseIcon:pe,nzMaskStyle:xe,nzBodyStyle:Ge,nzOkText:dt,nzCancelText:Bt,nzOkType:zt,nzOkDanger:In,nzIconType:so,nzModalType:Kn,nzOnOk:rr,nzOnCancel:sr,nzAfterOpen:ar,nzAfterClose:Pe,nzCloseOnNavigation:Je,nzAutofocus:tt}=t;return{nzCentered:n,nzMask:e,nzMaskClosable:i,nzDraggable:p,nzClosable:o,nzOkLoading:r,nzOkDisabled:s,nzCancelDisabled:a,nzCancelLoading:c,nzKeyboard:l,nzNoAnimation:u,nzContent:_,nzFooter:b,nzZIndex:y,nzWidth:z,nzWrapClassName:E,nzClassName:k,nzStyle:A,nzTitle:ie,nzCloseIcon:pe,nzMaskStyle:xe,nzBodyStyle:Ge,nzOkText:dt,nzCancelText:Bt,nzOkType:zt,nzOkDanger:In,nzIconType:so,nzModalType:Kn,nzOnOk:rr,nzOnCancel:sr,nzAfterOpen:ar,nzAfterClose:Pe,nzCloseOnNavigation:Je,nzAutofocus:tt}}function iO(){throw Error("Attempting to attach modal content after content is already attached")}let oO=(()=>{class t extends t7{get showMask(){const e=this.nzConfigService.getConfigForComponent(s6)||{};return!!b2(this.config.nzMask,e.nzMask,!0)}get maskClosable(){const e=this.nzConfigService.getConfigForComponent(s6)||{};return!!b2(this.config.nzMaskClosable,e.nzMaskClosable,!0)}constructor(e,i,o,r,s,a,c,l,u,p){super(),this.ngZone=e,this.host=i,this.focusTrapFactory=o,this.cdr=r,this.render=s,this.overlayRef=a,this.nzConfigService=c,this.config=l,this.animationType=p,this.animationStateChanged=new H,this.containerClick=new H,this.cancelTriggered=new H,this.okTriggered=new H,this.state="enter",this.isStringContent=!1,this.dir="ltr",this.elementFocusedBeforeModalWasOpened=null,this.mouseDown=!1,this.oldMaskStyle=null,this.destroy$=new N,this.document=u,this.dir=a.getDirection(),this.isStringContent="string"==typeof l.nzContent,this.nzConfigService.getConfigChangeEventForComponent(s6).pipe(I(this.destroy$)).subscribe(()=>{this.updateMaskClassname()})}onContainerClick(e){e.target===e.currentTarget&&!this.mouseDown&&this.showMask&&this.maskClosable&&this.containerClick.emit()}onCloseClick(){this.cancelTriggered.emit()}onOkClick(){this.okTriggered.emit()}attachComponentPortal(e){return this.portalOutlet.hasAttached()&&iO(),this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop(),this.portalOutlet.attachComponentPortal(e)}attachTemplatePortal(e){return this.portalOutlet.hasAttached()&&iO(),this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop(),this.portalOutlet.attachTemplatePortal(e)}attachStringContent(){this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop()}getNativeElement(){return this.host.nativeElement}animationDisabled(){return this.config.nzNoAnimation||"NoopAnimations"===this.animationType}setModalTransformOrigin(){const e=this.modalElementRef.nativeElement;if(this.elementFocusedBeforeModalWasOpened){const i=this.elementFocusedBeforeModalWasOpened.getBoundingClientRect(),o=hE(this.elementFocusedBeforeModalWasOpened);this.render.setStyle(e,"transform-origin",`${o.left+i.width/2-e.offsetLeft}px ${o.top+i.height/2-e.offsetTop}px 0px`)}}savePreviouslyFocusedElement(){this.focusTrap||(this.focusTrap=this.focusTrapFactory.create(this.host.nativeElement)),this.document&&(this.elementFocusedBeforeModalWasOpened=this.document.activeElement,this.host.nativeElement.focus&&this.ngZone.runOutsideAngular(()=>p2(()=>this.host.nativeElement.focus())))}trapFocus(){const e=this.host.nativeElement;if(this.config.nzAutofocus)this.focusTrap.focusInitialElementWhenReady();else{const i=this.document.activeElement;i!==e&&!e.contains(i)&&e.focus()}}restoreFocus(){const e=this.elementFocusedBeforeModalWasOpened;if(e&&"function"==typeof e.focus){const i=this.document.activeElement,o=this.host.nativeElement;(!i||i===this.document.body||i===o||o.contains(i))&&e.focus()}this.focusTrap&&this.focusTrap.destroy()}setEnterAnimationClass(){if(this.animationDisabled())return;this.setModalTransformOrigin();const e=this.modalElementRef.nativeElement,i=this.overlayRef.backdropElement;e.classList.add("ant-zoom-enter"),e.classList.add("ant-zoom-enter-active"),i&&(i.classList.add("ant-fade-enter"),i.classList.add("ant-fade-enter-active"))}setExitAnimationClass(){const e=this.modalElementRef.nativeElement;e.classList.add("ant-zoom-leave"),e.classList.add("ant-zoom-leave-active"),this.setMaskExitAnimationClass()}setMaskExitAnimationClass(e=!1){const i=this.overlayRef.backdropElement;if(i){if(this.animationDisabled()||e)return void i.classList.remove(r6);i.classList.add("ant-fade-leave"),i.classList.add("ant-fade-leave-active")}}cleanAnimationClass(){if(this.animationDisabled())return;const e=this.overlayRef.backdropElement,i=this.modalElementRef.nativeElement;e&&(e.classList.remove("ant-fade-enter"),e.classList.remove("ant-fade-enter-active")),i.classList.remove("ant-zoom-enter"),i.classList.remove("ant-zoom-enter-active"),i.classList.remove("ant-zoom-leave"),i.classList.remove("ant-zoom-leave-active")}setZIndexForBackdrop(){const e=this.overlayRef.backdropElement;e&&br(this.config.nzZIndex)&&this.render.setStyle(e,"z-index",this.config.nzZIndex)}bindBackdropStyle(){const e=this.overlayRef.backdropElement;if(e&&(this.oldMaskStyle&&(Object.keys(this.oldMaskStyle).forEach(o=>{this.render.removeStyle(e,o)}),this.oldMaskStyle=null),this.setZIndexForBackdrop(),"object"==typeof this.config.nzMaskStyle&&Object.keys(this.config.nzMaskStyle).length)){const i={...this.config.nzMaskStyle};Object.keys(i).forEach(o=>{this.render.setStyle(e,o,i[o])}),this.oldMaskStyle=i}}updateMaskClassname(){const e=this.overlayRef.backdropElement;e&&(this.showMask?e.classList.add(r6):e.classList.remove(r6))}onAnimationDone(e){"enter"===e.toState?this.trapFocus():"exit"===e.toState&&this.restoreFocus(),this.cleanAnimationClass(),this.animationStateChanged.emit(e)}onAnimationStart(e){"enter"===e.toState?(this.setEnterAnimationClass(),this.bindBackdropStyle()):"exit"===e.toState&&this.setExitAnimationClass(),this.animationStateChanged.emit(e)}startExitAnimation(){this.state="exit",this.cdr.markForCheck()}ngOnDestroy(){this.setMaskExitAnimationClass(!0),this.destroy$.next(!0),this.destroy$.complete()}setupMouseListeners(e){this.ngZone.runOutsideAngular(()=>{nn(this.host.nativeElement,"mouseup").pipe(I(this.destroy$)).subscribe(()=>{this.mouseDown&&setTimeout(()=>{this.mouseDown=!1})}),nn(e.nativeElement,"mousedown").pipe(I(this.destroy$)).subscribe(()=>{this.mouseDown=!0})})}static#e=this.\u0275fac=function(i){U8()};static#t=this.\u0275dir=de({type:t,features:[mt]})}return t})(),rO=(()=>{class t extends oO{constructor(e,i,o,r,s,a,c,l,u,p,_){super(e,o,r,s,a,c,l,u,p,_),this.i18n=i,this.config=u,this.cancelTriggered=new H,this.okTriggered=new H,this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Modal")})}ngOnInit(){this.setupMouseListeners(this.modalElementRef)}onCancel(){this.cancelTriggered.emit()}onOk(){this.okTriggered.emit()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v($s),v(Te),v(M7),v(Ue),v($t),v(W3),v(si),v(Ec),v(It,8),v(ta,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-modal-confirm-container"]],viewQuery:function(i,o){if(1&i&&(ft(Qu,7),ft(XA,7)),2&i){let r;Ae(r=Oe())&&(o.portalOutlet=r.first),Ae(r=Oe())&&(o.modalElementRef=r.first)}},hostAttrs:["tabindex","-1","role","dialog"],hostVars:10,hostBindings:function(i,o){1&i&&(F4("@modalContainer.start",function(s){return o.onAnimationStart(s)})("@modalContainer.done",function(s){return o.onAnimationDone(s)}),D("click",function(s){return o.onContainerClick(s)})),2&i&&(oc("@.disabled",o.config.nzNoAnimation)("@modalContainer",o.state),k4(o.config.nzWrapClassName?"ant-modal-wrap "+o.config.nzWrapClassName:"ant-modal-wrap"),Lt("z-index",o.config.nzZIndex),Q("ant-modal-wrap-rtl","rtl"===o.dir)("ant-modal-centered",o.config.nzCentered))},outputs:{cancelTriggered:"cancelTriggered",okTriggered:"okTriggered"},exportAs:["nzModalConfirmContainer"],standalone:!0,features:[mt,me],decls:17,vars:13,consts:[["modalElement",""],["role","document",1,"ant-modal",3,"ngClass","ngStyle"],[1,"ant-modal-content"],["nz-modal-close",""],[1,"ant-modal-body",3,"ngStyle"],[1,"ant-modal-confirm-body-wrapper"],[1,"ant-modal-confirm-body"],["nz-icon","",3,"nzType"],[1,"ant-modal-confirm-title"],[4,"nzStringTemplateOutlet"],[1,"ant-modal-confirm-content"],["cdkPortalOutlet",""],[3,"innerHTML"],[1,"ant-modal-confirm-btns"],["nz-button","",3,"nzLoading","disabled"],["nz-button","",3,"nzType","nzLoading","disabled","nzDanger"],["nz-modal-close","",3,"click"],["nz-button","",3,"click","nzLoading","disabled"],["nz-button","",3,"click","nzType","nzLoading","disabled","nzDanger"]],template:function(i,o){1&i&&(f(0,"div",1,0),Fr(2,"nzToCssUnit"),f(3,"div",2),w(4,fae,1,0,"button",3),f(5,"div",4)(6,"div",5)(7,"div",6),S(8,"span",7),f(9,"span",8),w(10,mae,2,1,"ng-container",9),m(),f(11,"div",10),w(12,gae,0,0,"ng-template",11)(13,vae,1,1,"div",12),m()(),f(14,"div",13),w(15,_ae,2,4,"button",14)(16,bae,2,6,"button",15),m()()()()()),2&i&&(Lt("width",Rr(2,11,null==o.config?null:o.config.nzWidth)),h("ngClass",o.config.nzClassName)("ngStyle",o.config.nzStyle),d(4),he(o.config.nzClosable?4:-1),d(),h("ngStyle",o.config.nzBodyStyle),d(3),h("nzType",o.config.nzIconType),d(2),h("nzStringTemplateOutlet",o.config.nzTitle),d(3),he(o.isStringContent?13:-1),d(2),he(null!==o.config.nzCancelText?15:-1),d(),he(null!==o.config.nzOkText?16:-1))},dependencies:[Zo,ti,mA,T7,On,cn,V7,Tn,Sn,z3,Qu,h2,nr,mi,tr],encapsulation:2,data:{animation:[tO.modalContainer]}})}return t})(),sO=(()=>{class t{constructor(e,i){this.i18n=e,this.config=i,this.buttonsFooter=!1,this.buttons=[],this.cancelTriggered=new H,this.okTriggered=new H,this.destroy$=new N,Array.isArray(i.nzFooter)&&(this.buttonsFooter=!0,this.buttons=i.nzFooter.map(Lae)),this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Modal")})}onCancel(){this.cancelTriggered.emit()}onOk(){this.okTriggered.emit()}getButtonCallableProp(e,i){const o=e[i],r=this.modalRef.getContentComponent();return"function"==typeof o?o.apply(e,r&&[r]):o}onButtonClick(e){if(!this.getButtonCallableProp(e,"loading")){const o=this.getButtonCallableProp(e,"onClick");e.autoLoading&&Y5(o)&&(e.loading=!0,o.then(()=>e.loading=!1).catch(r=>{throw e.loading=!1,r}))}}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v($s),v(Ec))};static#t=this.\u0275cmp=q({type:t,selectors:[["div","nz-modal-footer",""]],hostAttrs:[1,"ant-modal-footer"],inputs:{modalRef:"modalRef"},outputs:{cancelTriggered:"cancelTriggered",okTriggered:"okTriggered"},exportAs:["NzModalFooterBuiltin"],standalone:!0,features:[me],attrs:yae,decls:2,vars:1,consts:[[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[3,"innerHTML"],["nz-button","",3,"hidden","nzLoading","disabled","nzType","nzDanger","nzShape","nzSize","nzGhost"],["nz-button","",3,"click","hidden","nzLoading","disabled","nzType","nzDanger","nzShape","nzSize","nzGhost"],["nz-button","",3,"nzLoading","disabled"],["nz-button","",3,"nzType","nzDanger","nzLoading","disabled"],["nz-button","",3,"click","nzLoading","disabled"],["nz-button","",3,"click","nzType","nzDanger","nzLoading","disabled"]],template:function(i,o){1&i&&w(0,Mae,1,5,"ng-container")(1,Eae,2,2),2&i&&he(o.config.nzFooter?0:1)},dependencies:[Tn,Sn,h2,nr,mi,tr],encapsulation:2})}return t})();function Lae(t){return{type:null,size:"default",autoLoading:!0,show:!0,loading:!1,disabled:!1,...t}}let aO=(()=>{class t{constructor(e){this.config=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ec))};static#t=this.\u0275cmp=q({type:t,selectors:[["div","nz-modal-title",""]],hostAttrs:[1,"ant-modal-header"],exportAs:["NzModalTitleBuiltin"],standalone:!0,features:[me],attrs:kae,decls:2,vars:1,consts:[[1,"ant-modal-title"],[4,"nzStringTemplateOutlet"],[3,"innerHTML"]],template:function(i,o){1&i&&(f(0,"div",0),w(1,Aae,2,1,"ng-container",1),m()),2&i&&(d(),h("nzStringTemplateOutlet",o.config.nzTitle))},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),cO=(()=>{class t extends oO{constructor(e,i,o,r,s,a,c,l,u,p){super(e,i,o,r,s,a,c,l,u,p),this.config=l}ngOnInit(){this.setupMouseListeners(this.modalElementRef)}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(M7),v(Ue),v($t),v(W3),v(si),v(Ec),v(It,8),v(ta,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-modal-container"]],viewQuery:function(i,o){if(1&i&&(ft(Qu,7),ft(XA,7)),2&i){let r;Ae(r=Oe())&&(o.portalOutlet=r.first),Ae(r=Oe())&&(o.modalElementRef=r.first)}},hostAttrs:["tabindex","-1","role","dialog"],hostVars:10,hostBindings:function(i,o){1&i&&(F4("@modalContainer.start",function(s){return o.onAnimationStart(s)})("@modalContainer.done",function(s){return o.onAnimationDone(s)}),D("click",function(s){return o.onContainerClick(s)})),2&i&&(oc("@.disabled",o.config.nzNoAnimation)("@modalContainer",o.state),k4(o.config.nzWrapClassName?"ant-modal-wrap "+o.config.nzWrapClassName:"ant-modal-wrap"),Lt("z-index",o.config.nzZIndex),Q("ant-modal-wrap-rtl","rtl"===o.dir)("ant-modal-centered",o.config.nzCentered))},exportAs:["nzModalContainer"],standalone:!0,features:[mt,me],decls:10,vars:12,consts:[["modalElement",""],["cdkDrag","","cdkDragBoundary",".cdk-overlay-container","role","document",1,"ant-modal",3,"cdkDragDisabled","ngClass","ngStyle"],[1,"ant-modal-content"],["nz-modal-close",""],["nz-modal-title","","cdkDragHandle","",3,"cursor"],[1,"ant-modal-body",3,"ngStyle"],["cdkPortalOutlet",""],[3,"innerHTML"],["nz-modal-footer","",3,"modalRef"],["nz-modal-close","",3,"click"],["nz-modal-title","","cdkDragHandle",""],["nz-modal-footer","",3,"cancelTriggered","okTriggered","modalRef"]],template:function(i,o){1&i&&(f(0,"div",1,0),Fr(2,"nzToCssUnit"),f(3,"div",2),w(4,Oae,1,0,"button",3)(5,Pae,1,2,"div",4),f(6,"div",5),w(7,Iae,0,0,"ng-template",6)(8,Nae,1,1,"div",7),m(),w(9,Vae,1,1,"div",8),m()()),2&i&&(Lt("width",Rr(2,10,null==o.config?null:o.config.nzWidth)),h("cdkDragDisabled",!o.config.nzDraggable)("ngClass",o.config.nzClassName)("ngStyle",o.config.nzStyle),d(4),he(o.config.nzClosable?4:-1),d(),he(o.config.nzTitle?5:-1),d(),h("ngStyle",o.config.nzBodyStyle),d(2),he(o.isStringContent?8:-1),d(),he(null!==o.config.nzFooter?9:-1))},dependencies:[Zo,ti,V7,aO,z3,Qu,sO,mA,T7,_2,JA],encapsulation:2,data:{animation:[tO.modalContainer]}})}return t})();class a6{constructor(n,e,i){this.overlayRef=n,this.config=e,this.containerInstance=i,this.componentInstance=null,this.componentRef=null,this.state=0,this.afterClose=new N,this.afterOpen=new N,this.destroy$=new N,i.animationStateChanged.pipe(yt(o=>"done"===o.phaseName&&"enter"===o.toState),io(1)).subscribe(()=>{this.afterOpen.next(),this.afterOpen.complete(),e.nzAfterOpen instanceof H&&e.nzAfterOpen.emit()}),i.animationStateChanged.pipe(yt(o=>"done"===o.phaseName&&"exit"===o.toState),io(1)).subscribe(()=>{clearTimeout(this.closeTimeout),this._finishDialogClose()}),i.containerClick.pipe(I(this.destroy$)).subscribe(()=>{!this.config.nzCancelLoading&&!this.config.nzOkLoading&&this.trigger("cancel")}),n.keydownEvents().pipe(yt(o=>this.config.nzKeyboard&&!this.config.nzCancelLoading&&!this.config.nzOkLoading&&27===o.keyCode&&!l2(o))).subscribe(o=>{o.preventDefault(),this.trigger("cancel")}),i.cancelTriggered.pipe(I(this.destroy$)).subscribe(()=>this.trigger("cancel")),i.okTriggered.pipe(I(this.destroy$)).subscribe(()=>this.trigger("ok")),n.detachments().subscribe(()=>{this.afterClose.next(this.result),this.afterClose.complete(),e.nzAfterClose instanceof H&&e.nzAfterClose.emit(this.result),this.componentInstance=null,this.componentRef=null,this.overlayRef.dispose()})}getContentComponent(){return this.componentInstance}getContentComponentRef(){return this.componentRef}getElement(){return this.containerInstance.getNativeElement()}destroy(n){this.close(n)}triggerOk(){return this.trigger("ok")}triggerCancel(){return this.trigger("cancel")}close(n){0===this.state&&(this.result=n,this.containerInstance.animationStateChanged.pipe(yt(e=>"start"===e.phaseName),io(1)).subscribe(e=>{this.overlayRef.detachBackdrop(),this.closeTimeout=setTimeout(()=>{this._finishDialogClose()},e.totalTime+100)}),this.containerInstance.startExitAnimation(),this.state=1)}updateConfig(n){Object.assign(this.config,n),this.containerInstance.bindBackdropStyle(),this.containerInstance.cdr.markForCheck()}getState(){return this.state}getConfig(){return this.config}getBackdropElement(){return this.overlayRef.backdropElement}trigger(n){var e=this;return Di(function*(){if(1===e.state)return;const i={ok:e.config.nzOnOk,cancel:e.config.nzOnCancel}[n],o={ok:"nzOkLoading",cancel:"nzCancelLoading"}[n];if(!e.config[o])if(i instanceof H)i.emit(e.getContentComponent());else if("function"==typeof i){const s=i(e.getContentComponent());if(Y5(s)){e.config[o]=!0;let a=!1;try{a=yield s}finally{e.config[o]=!1,e.closeWhitResult(a)}}else e.closeWhitResult(s)}})()}closeWhitResult(n){!1!==n&&this.close(n)}_finishDialogClose(){this.state=2,this.overlayRef.dispose(),this.destroy$.next()}}let za=(()=>{class t{get openModals(){return this.parentModal?this.parentModal.openModals:this.openModalsAtThisLevel}get _afterAllClosed(){const e=this.parentModal;return e?e._afterAllClosed:this.afterAllClosedAtThisLevel}constructor(e,i,o,r,s){this.overlay=e,this.injector=i,this.nzConfigService=o,this.parentModal=r,this.directionality=s,this.openModalsAtThisLevel=[],this.afterAllClosedAtThisLevel=new N,this.afterAllClose=mg(()=>this.openModals.length?this._afterAllClosed:this._afterAllClosed.pipe(gn(void 0)))}create(e){return this.open(e.nzContent,e)}closeAll(){this.closeModals(this.openModals)}confirm(e={},i="confirm"){return"nzWidth"in e||(e.nzWidth=416),"nzMaskClosable"in e||(e.nzMaskClosable=!1),e.nzModalType="confirm",e.nzClassName=`ant-modal-confirm ant-modal-confirm-${i} ${e.nzClassName||""}`,this.create(e)}info(e={}){return this.confirmFactory(e,"info")}success(e={}){return this.confirmFactory(e,"success")}error(e={}){return this.confirmFactory(e,"error")}warning(e={}){return this.confirmFactory(e,"warning")}open(e,i){const o=function Rae(t,n){return{...n,...t}}(i||{},new Ec),r=this.createOverlay(o),s=this.attachModalContainer(r,o),a=this.attachModalContent(e,s,r,o);return s.modalRef=a,function ise(t,n){n&&(t._host.style.zIndex=`${n}`)}(r,i?.nzZIndex),this.openModals.push(a),a.afterClose.subscribe(()=>this.removeOpenModal(a)),a}removeOpenModal(e){const i=this.openModals.indexOf(e);i>-1&&(this.openModals.splice(i,1),this.openModals.length||this._afterAllClosed.next())}closeModals(e){let i=e.length;for(;i--;)e[i].close(),this.openModals.length||this._afterAllClosed.next()}createOverlay(e){const i=this.nzConfigService.getConfigForComponent(s6)||{},o=new S7({hasBackdrop:!0,scrollStrategy:this.overlay.scrollStrategies.block(),positionStrategy:this.overlay.position().global(),disposeOnNavigation:b2(e.nzCloseOnNavigation,i.nzCloseOnNavigation,!0),direction:b2(e.nzDirection,i.nzDirection,this.directionality.value)});return b2(e.nzMask,i.nzMask,!0)&&(o.backdropClass=r6),this.overlay.create(o)}attachModalContainer(e,i){const r=tn.create({parent:i&&i.nzViewContainerRef&&i.nzViewContainerRef.injector||this.injector,providers:[{provide:W3,useValue:e},{provide:Ec,useValue:i}]}),a=new Ju("confirm"===i.nzModalType?rO:cO,i.nzViewContainerRef,r);return e.attach(a).instance}attachModalContent(e,i,o,r){const s=new a6(o,r,i);if(e instanceof Gt)i.attachTemplatePortal(new Zu(e,null,{$implicit:r.nzData,modalRef:s}));else if(br(e)&&"string"!=typeof e){const a=this.createInjector(s,r),c=i.attachComponentPortal(new Ju(e,r.nzViewContainerRef,a));s.componentRef=c,s.componentInstance=c.instance}else i.attachStringContent();return s}createInjector(e,i){return tn.create({parent:i&&i.nzViewContainerRef&&i.nzViewContainerRef.injector||this.injector,providers:[{provide:a6,useValue:e},{provide:Fae,useValue:i.nzData}]})}confirmFactory(e={},i){return"nzIconType"in e||(e.nzIconType={info:"info-circle",success:"check-circle",error:"close-circle",warning:"exclamation-circle"}[i]),"nzCancelText"in e||(e.nzCancelText=null),this.confirm(e,i)}ngOnDestroy(){this.closeModals(this.openModalsAtThisLevel),this.afterAllClosedAtThisLevel.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(R(ya),R(tn),R(si),R(t,12),R(wt,8))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),y2=(()=>{class t{constructor(e){this.templateRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzModalContent",""]],exportAs:["nzModalContent"],standalone:!0})}return t})(),Hae=(()=>{class t{constructor(e,i){this.nzModalRef=e,this.templateRef=i,this.nzModalRef&&this.nzModalRef.updateConfig({nzFooter:this.templateRef})}static#e=this.\u0275fac=function(i){return new(i||t)(v(a6,8),v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzModalFooter",""]],exportAs:["nzModalFooter"],standalone:!0})}return t})(),Bae=(()=>{class t{constructor(e,i){this.nzModalRef=e,this.templateRef=i,this.nzModalRef&&this.nzModalRef.updateConfig({nzTitle:this.templateRef})}static#e=this.\u0275fac=function(i){return new(i||t)(v(a6,8),v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzModalTitle",""]],exportAs:["nzModalTitle"],standalone:!0})}return t})(),c6=(()=>{class t{set modalTitle(e){e&&this.setTitleWithTemplate(e)}set modalFooter(e){e&&this.setFooterWithTemplate(e)}get afterOpen(){return this.nzAfterOpen.asObservable()}get afterClose(){return this.nzAfterClose.asObservable()}constructor(e,i,o){this.cdr=e,this.modal=i,this.viewContainerRef=o,this.nzVisible=!1,this.nzClosable=!0,this.nzOkLoading=!1,this.nzOkDisabled=!1,this.nzCancelDisabled=!1,this.nzCancelLoading=!1,this.nzKeyboard=!0,this.nzNoAnimation=!1,this.nzCentered=!1,this.nzDraggable=!1,this.nzZIndex=1e3,this.nzWidth=520,this.nzCloseIcon="close",this.nzOkType="primary",this.nzOkDanger=!1,this.nzIconType="question-circle",this.nzModalType="default",this.nzAutofocus="auto",this.nzOnOk=new H,this.nzOnCancel=new H,this.nzAfterOpen=new H,this.nzAfterClose=new H,this.nzVisibleChange=new H,this.modalRef=null,this.destroy$=new N}open(){if(this.nzVisible||(this.nzVisible=!0,this.nzVisibleChange.emit(!0)),!this.modalRef){const e=this.getConfig();this.modalRef=this.modal.create(e),this.modalRef.afterClose.asObservable().pipe(I(this.destroy$)).subscribe(()=>{this.close()})}}close(e){this.nzVisible&&(this.nzVisible=!1,this.nzVisibleChange.emit(!1)),this.modalRef&&(this.modalRef.close(e),this.modalRef=null)}destroy(e){this.close(e)}triggerOk(){this.modalRef?.triggerOk()}triggerCancel(){this.modalRef?.triggerCancel()}getContentComponent(){return this.modalRef?.getContentComponent()}getElement(){return this.modalRef?.getElement()}getModalRef(){return this.modalRef}setTitleWithTemplate(e){this.nzTitle=e,this.modalRef&&Promise.resolve().then(()=>{this.modalRef.updateConfig({nzTitle:this.nzTitle})})}setFooterWithTemplate(e){this.nzFooter=e,this.modalRef&&Promise.resolve().then(()=>{this.modalRef.updateConfig({nzFooter:this.nzFooter})}),this.cdr.markForCheck()}getConfig(){const e=nO(this);return e.nzViewContainerRef=this.viewContainerRef,e.nzContent=this.nzContent||this.contentFromContentChild,e}ngOnChanges(e){const{nzVisible:i,...o}=e;Object.keys(o).length&&this.modalRef&&this.modalRef.updateConfig(nO(this)),i&&(this.nzVisible?this.open():this.close())}ngOnDestroy(){this.modalRef?._finishDialogClose(),this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(za),v(Gn))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-modal"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,Bae,7,Gt),fn(r,y2,7,Gt),fn(r,Hae,7,Gt)),2&i){let s;Ae(s=Oe())&&(o.modalTitle=s.first),Ae(s=Oe())&&(o.contentFromContentChild=s.first),Ae(s=Oe())&&(o.modalFooter=s.first)}},inputs:{nzMask:[2,"nzMask","nzMask",O],nzMaskClosable:[2,"nzMaskClosable","nzMaskClosable",O],nzCloseOnNavigation:[2,"nzCloseOnNavigation","nzCloseOnNavigation",O],nzVisible:[2,"nzVisible","nzVisible",O],nzClosable:[2,"nzClosable","nzClosable",O],nzOkLoading:[2,"nzOkLoading","nzOkLoading",O],nzOkDisabled:[2,"nzOkDisabled","nzOkDisabled",O],nzCancelDisabled:[2,"nzCancelDisabled","nzCancelDisabled",O],nzCancelLoading:[2,"nzCancelLoading","nzCancelLoading",O],nzKeyboard:[2,"nzKeyboard","nzKeyboard",O],nzNoAnimation:[2,"nzNoAnimation","nzNoAnimation",O],nzCentered:[2,"nzCentered","nzCentered",O],nzDraggable:[2,"nzDraggable","nzDraggable",O],nzContent:"nzContent",nzFooter:"nzFooter",nzZIndex:[2,"nzZIndex","nzZIndex",Pi],nzWidth:"nzWidth",nzWrapClassName:"nzWrapClassName",nzClassName:"nzClassName",nzStyle:"nzStyle",nzTitle:"nzTitle",nzCloseIcon:"nzCloseIcon",nzMaskStyle:"nzMaskStyle",nzBodyStyle:"nzBodyStyle",nzOkText:"nzOkText",nzCancelText:"nzCancelText",nzOkType:"nzOkType",nzOkDanger:[2,"nzOkDanger","nzOkDanger",O],nzIconType:"nzIconType",nzModalType:"nzModalType",nzAutofocus:"nzAutofocus",nzOnOk:"nzOnOk",nzOnCancel:"nzOnCancel"},outputs:{nzOnOk:"nzOnOk",nzOnCancel:"nzOnCancel",nzAfterOpen:"nzAfterOpen",nzAfterClose:"nzAfterClose",nzVisibleChange:"nzVisibleChange"},exportAs:["nzModal"],standalone:!0,features:[je,ke,me],decls:0,vars:0,template:function(i,o){},encapsulation:2,changeDetection:0})}return t})(),jae=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:[za],imports:[V7,sO,aO,cO,rO]})}return t})(),zo=(()=>{class t{constructor(){this.animationType=W(ta,{optional:!0}),this.nzNoAnimation=!1}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nzNoAnimation",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("nz-animate-disabled",o.nzNoAnimation||"NoopAnimations"===o.animationType)},inputs:{nzNoAnimation:[2,"nzNoAnimation","nzNoAnimation",O]},exportAs:["nzNoAnimation"],standalone:!0,features:[je]})}return t})();const $ae=["nz-menu-item",""],lO=["*"],Yae=["nz-submenu-inline-child",""];function Uae(t,n){}const Wae=["nz-submenu-none-inline-child",""];function Gae(t,n){}const qae=["nz-submenu-title",""];function Kae(t,n){1&t&&S(0,"span",0),2&t&&h("nzType",g().nzIcon)}function Jae(t,n){if(1&t&&($e(0),f(1,"span",4),C(2),m(),Ye()),2&t){const e=g();d(2),x(e.nzTitle)}}function Zae(t,n){1&t&&S(0,"span",5)}function Qae(t,n){1&t&&S(0,"span",6)}function Xae(t,n){if(1&t&&(f(0,"span",2),w(1,Zae,1,0,"span",5)(2,Qae,1,0,"span",6),m()),2&t){let e;const i=g();d(),he("rtl"===(e=i.dir)?1:2)}}function ece(t,n){1&t&&S(0,"span",3)}const tce=["nz-submenu",""],nce=[[["","title",""]],"*"],ice=["[title]","*"];function oce(t,n){1&t&&bt(0)}function rce(t,n){if(1&t&&S(0,"div",3),2&t){const e=g(),i=He(6);h("mode",e.mode)("nzOpen",e.nzOpen)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("menuClass",e.nzMenuClassName)("templateOutlet",i)}}function sce(t,n){if(1&t){const e=U();f(0,"div",6),D("subMenuMouseState",function(o){return T(e),M(g(2).setMouseEnterState(o))}),m()}if(2&t){const e=g(2),i=He(6);h("theme",e.theme)("mode",e.mode)("nzOpen",e.nzOpen)("position",e.position)("nzDisabled",e.nzDisabled)("isMenuInsideDropDown",e.isMenuInsideDropDown)("templateOutlet",i)("menuClass",e.nzMenuClassName)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)}}function ace(t,n){if(1&t){const e=U();w(0,sce,1,10,"ng-template",5),D("positionChange",function(o){return T(e),M(g().onPositionChange(o))})}if(2&t){const e=g(),i=He(1);h("cdkConnectedOverlayPositions",e.overlayPositions)("cdkConnectedOverlayOrigin",i)("cdkConnectedOverlayWidth",e.triggerWidth)("cdkConnectedOverlayOpen",e.nzOpen)("cdkConnectedOverlayTransformOriginOn",".ant-menu-submenu")}}function cce(t,n){1&t&&bt(0,1)}const lce=["titleElement"],dce=["nz-menu-group",""],uce=["*",[["","title",""]]],hce=["*","[title]"];function pce(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.nzTitle)}}function fce(t,n){1&t&&bt(0,1)}const gs=new oe("NzIsInDropDownMenuToken"),dO=new oe("NzMenuServiceLocalToken");let Ys=(()=>{class t{constructor(){this.descendantMenuItemClick$=new N,this.childMenuItemClick$=new N,this.theme$=new rt("light"),this.mode$=new rt("vertical"),this.inlineIndent$=new rt(24),this.isChildSubMenuOpen$=new rt(!1)}onDescendantMenuItemClick(e){this.descendantMenuItemClick$.next(e)}onChildMenuItemClick(e){this.childMenuItemClick$.next(e)}setMode(e){this.mode$.next(e)}setTheme(e){this.theme$.next(e)}setInlineIndent(e){this.inlineIndent$.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),F7=(()=>{class t{onChildMenuItemClick(e){this.childMenuItemClick$.next(e)}setOpenStateWithoutDebounce(e){this.isCurrentSubMenuOpen$.next(e)}setMouseEnterTitleOrOverlayState(e){this.isMouseEnterTitleOrOverlay$.next(e)}constructor(e,i,o){this.nzHostSubmenuService=e,this.nzMenuService=i,this.isMenuInsideDropDown=o,this.mode$=this.nzMenuService.mode$.pipe(Ie(c=>"inline"===c?"inline":"vertical"===c||this.nzHostSubmenuService?"vertical":"horizontal")),this.level=1,this.isCurrentSubMenuOpen$=new rt(!1),this.isChildSubMenuOpen$=new rt(!1),this.isMouseEnterTitleOrOverlay$=new N,this.childMenuItemClick$=new N,this.destroy$=new N,this.nzHostSubmenuService&&(this.level=this.nzHostSubmenuService.level+1);const r=this.childMenuItemClick$.pipe($n(()=>this.mode$),yt(c=>"inline"!==c||this.isMenuInsideDropDown),hc(!1)),s=Pn(this.isMouseEnterTitleOrOverlay$,r);xi([this.isChildSubMenuOpen$,s]).pipe(Ie(([c,l])=>c||l),_c(150),qi(),I(this.destroy$)).pipe(qi()).subscribe(c=>{this.setOpenStateWithoutDebounce(c),this.nzHostSubmenuService?this.nzHostSubmenuService.isChildSubMenuOpen$.next(c):this.nzMenuService.isChildSubMenuOpen$.next(c)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(R(t,12),R(Ys),R(gs))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),Us=(()=>{class t{clickMenuItem(e){this.nzDisabled?(e.preventDefault(),e.stopPropagation()):(this.nzMenuService.onDescendantMenuItemClick(this),this.nzSubmenuService?this.nzSubmenuService.onChildMenuItemClick(this):this.nzMenuService.onChildMenuItemClick(this))}setSelectedState(e){this.nzSelected=e,this.selected$.next(e)}updateRouterActive(){!this.listOfRouterLink||!this.router||!this.router.navigated||!this.nzMatchRouter||Promise.resolve().then(()=>{const e=this.hasActiveLinks();this.nzSelected!==e&&(this.nzSelected=e,this.setSelectedState(this.nzSelected),this.cdr.markForCheck())})}hasActiveLinks(){const e=this.isLinkActive(this.router);return this.routerLink&&e(this.routerLink)||this.listOfRouterLink.some(e)}isLinkActive(e){return i=>e.isActive(i.urlTree||"",{paths:this.nzMatchRouterExact?"exact":"subset",queryParams:this.nzMatchRouterExact?"exact":"subset",fragment:"ignored",matrixParams:"ignored"})}constructor(e,i,o,r,s,a,c){this.nzMenuService=e,this.cdr=i,this.nzSubmenuService=o,this.isMenuInsideDropDown=r,this.directionality=s,this.routerLink=a,this.router=c,this.destroy$=new N,this.level=this.nzSubmenuService?this.nzSubmenuService.level+1:1,this.selected$=new N,this.inlinePaddingLeft=null,this.dir="ltr",this.nzDisabled=!1,this.nzSelected=!1,this.nzDanger=!1,this.nzMatchRouterExact=!1,this.nzMatchRouter=!1,c&&this.router.events.pipe(I(this.destroy$),yt(l=>l instanceof Br)).subscribe(()=>{this.updateRouterActive()})}ngOnInit(){xi([this.nzMenuService.mode$,this.nzMenuService.inlineIndent$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{this.inlinePaddingLeft="inline"===e?this.level*i:null}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngAfterContentInit(){this.listOfRouterLink.changes.pipe(I(this.destroy$)).subscribe(()=>this.updateRouterActive()),this.updateRouterActive()}ngOnChanges(e){e.nzSelected&&this.setSelectedState(this.nzSelected)}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ys),v(Ue),v(F7,8),v(gs),v(wt,8),v(b1,8),v(oi,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-menu-item",""]],contentQueries:function(i,o,r){if(1&i&&fn(r,b1,5),2&i){let s;Ae(s=Oe())&&(o.listOfRouterLink=s)}},hostVars:20,hostBindings:function(i,o){1&i&&D("click",function(s){return o.clickMenuItem(s)}),2&i&&(Lt("padding-left","rtl"===o.dir?null:o.nzPaddingLeft||o.inlinePaddingLeft,"px")("padding-right","rtl"===o.dir?o.nzPaddingLeft||o.inlinePaddingLeft:null,"px"),Q("ant-dropdown-menu-item",o.isMenuInsideDropDown)("ant-dropdown-menu-item-selected",o.isMenuInsideDropDown&&o.nzSelected)("ant-dropdown-menu-item-danger",o.isMenuInsideDropDown&&o.nzDanger)("ant-dropdown-menu-item-disabled",o.isMenuInsideDropDown&&o.nzDisabled)("ant-menu-item",!o.isMenuInsideDropDown)("ant-menu-item-selected",!o.isMenuInsideDropDown&&o.nzSelected)("ant-menu-item-danger",!o.isMenuInsideDropDown&&o.nzDanger)("ant-menu-item-disabled",!o.isMenuInsideDropDown&&o.nzDisabled))},inputs:{nzPaddingLeft:[2,"nzPaddingLeft","nzPaddingLeft",y3],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzSelected:[2,"nzSelected","nzSelected",O],nzDanger:[2,"nzDanger","nzDanger",O],nzMatchRouterExact:[2,"nzMatchRouterExact","nzMatchRouterExact",O],nzMatchRouter:[2,"nzMatchRouter","nzMatchRouter",O]},exportAs:["nzMenuItem"],standalone:!0,features:[je,ke,me],attrs:$ae,ngContentSelectors:lO,decls:2,vars:0,consts:[[1,"ant-menu-title-content"]],template:function(i,o){1&i&&(Et(),f(0,"span",0),bt(1),m())},encapsulation:2,changeDetection:0})}return t})(),mce=(()=>{class t{constructor(e,i,o){this.elementRef=e,this.renderer=i,this.directionality=o,this.templateOutlet=null,this.menuClass="",this.mode="vertical",this.nzOpen=!1,this.listOfCacheClassName=[],this.expandState="collapsed",this.dir="ltr",this.destroy$=new N}calcMotionState(){this.expandState=this.nzOpen?"expanded":"collapsed"}ngOnInit(){this.calcMotionState(),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnChanges(e){const{mode:i,nzOpen:o,menuClass:r}=e;(i||o)&&this.calcMotionState(),r&&(this.listOfCacheClassName.length&&this.listOfCacheClassName.filter(s=>!!s).forEach(s=>{this.renderer.removeClass(this.elementRef.nativeElement,s)}),this.menuClass&&(this.listOfCacheClassName=this.menuClass.split(" "),this.listOfCacheClassName.filter(s=>!!s).forEach(s=>{this.renderer.addClass(this.elementRef.nativeElement,s)})))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-submenu-inline-child",""]],hostAttrs:[1,"ant-menu","ant-menu-inline","ant-menu-sub"],hostVars:3,hostBindings:function(i,o){2&i&&(oc("@collapseMotion",o.expandState),Q("ant-menu-rtl","rtl"===o.dir))},inputs:{templateOutlet:"templateOutlet",menuClass:"menuClass",mode:"mode",nzOpen:"nzOpen"},exportAs:["nzSubmenuInlineChild"],standalone:!0,features:[ke,me],attrs:Yae,decls:1,vars:1,consts:[[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&w(0,Uae,0,0,"ng-template",0),2&i&&h("ngTemplateOutlet",o.templateOutlet)},dependencies:[Vn],encapsulation:2,data:{animation:[Yne]},changeDetection:0})}return t})(),gce=(()=>{class t{constructor(e){this.directionality=e,this.menuClass="",this.theme="light",this.templateOutlet=null,this.isMenuInsideDropDown=!1,this.mode="vertical",this.position="right",this.nzDisabled=!1,this.nzOpen=!1,this.subMenuMouseState=new H,this.expandState="collapsed",this.dir="ltr",this.destroy$=new N}setMouseState(e){this.nzDisabled||this.subMenuMouseState.next(e)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}calcMotionState(){this.nzOpen?"horizontal"===this.mode?this.expandState="bottom":"vertical"===this.mode&&(this.expandState="active"):this.expandState="collapsed"}ngOnInit(){this.calcMotionState(),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnChanges(e){const{mode:i,nzOpen:o}=e;(i||o)&&this.calcMotionState()}static#e=this.\u0275fac=function(i){return new(i||t)(v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-submenu-none-inline-child",""]],hostAttrs:[1,"ant-menu-submenu","ant-menu-submenu-popup"],hostVars:14,hostBindings:function(i,o){1&i&&D("mouseenter",function(){return o.setMouseState(!0)})("mouseleave",function(){return o.setMouseState(!1)}),2&i&&(oc("@slideMotion",o.expandState)("@zoomBigMotion",o.expandState),Q("ant-menu-light","light"===o.theme)("ant-menu-dark","dark"===o.theme)("ant-menu-submenu-placement-bottom","horizontal"===o.mode)("ant-menu-submenu-placement-right","vertical"===o.mode&&"right"===o.position)("ant-menu-submenu-placement-left","vertical"===o.mode&&"left"===o.position)("ant-menu-submenu-rtl","rtl"===o.dir))},inputs:{menuClass:"menuClass",theme:"theme",templateOutlet:"templateOutlet",isMenuInsideDropDown:"isMenuInsideDropDown",mode:"mode",position:"position",nzDisabled:"nzDisabled",nzOpen:"nzOpen"},outputs:{subMenuMouseState:"subMenuMouseState"},exportAs:["nzSubmenuNoneInlineChild"],standalone:!0,features:[ke,me],attrs:Wae,decls:2,vars:16,consts:[[3,"ngClass"],[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&(f(0,"div",0),w(1,Gae,0,0,"ng-template",1),m()),2&i&&(Q("ant-dropdown-menu",o.isMenuInsideDropDown)("ant-menu",!o.isMenuInsideDropDown)("ant-dropdown-menu-vertical",o.isMenuInsideDropDown)("ant-menu-vertical",!o.isMenuInsideDropDown)("ant-dropdown-menu-sub",o.isMenuInsideDropDown)("ant-menu-sub",!o.isMenuInsideDropDown)("ant-menu-rtl","rtl"===o.dir),h("ngClass",o.menuClass),d(),h("ngTemplateOutlet",o.templateOutlet))},dependencies:[Zo,Vn],encapsulation:2,data:{animation:[O3,a7]},changeDetection:0})}return t})(),uO=(()=>{class t{constructor(e,i){this.cdr=e,this.directionality=i,this.nzIcon=null,this.nzTitle=null,this.isMenuInsideDropDown=!1,this.nzDisabled=!1,this.paddingLeft=null,this.mode="vertical",this.toggleSubMenu=new H,this.subMenuMouseState=new H,this.dir="ltr",this.destroy$=new N}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setMouseState(e){this.nzDisabled||this.subMenuMouseState.next(e)}clickTitle(){"inline"===this.mode&&!this.nzDisabled&&this.toggleSubMenu.emit()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-submenu-title",""]],hostVars:8,hostBindings:function(i,o){1&i&&D("click",function(){return o.clickTitle()})("mouseenter",function(){return o.setMouseState(!0)})("mouseleave",function(){return o.setMouseState(!1)}),2&i&&(Lt("padding-left","rtl"===o.dir?null:o.paddingLeft,"px")("padding-right","rtl"===o.dir?o.paddingLeft:null,"px"),Q("ant-dropdown-menu-submenu-title",o.isMenuInsideDropDown)("ant-menu-submenu-title",!o.isMenuInsideDropDown))},inputs:{nzIcon:"nzIcon",nzTitle:"nzTitle",isMenuInsideDropDown:"isMenuInsideDropDown",nzDisabled:"nzDisabled",paddingLeft:"paddingLeft",mode:"mode"},outputs:{toggleSubMenu:"toggleSubMenu",subMenuMouseState:"subMenuMouseState"},exportAs:["nzSubmenuTitle"],standalone:!0,features:[me],attrs:qae,ngContentSelectors:lO,decls:5,vars:3,consts:[["nz-icon","",3,"nzType"],[4,"nzStringTemplateOutlet"],[1,"ant-dropdown-menu-submenu-expand-icon"],[1,"ant-menu-submenu-arrow"],[1,"ant-menu-title-content"],["nz-icon","","nzType","left",1,"ant-dropdown-menu-submenu-arrow-icon"],["nz-icon","","nzType","right",1,"ant-dropdown-menu-submenu-arrow-icon"]],template:function(i,o){1&i&&(Et(),w(0,Kae,1,1,"span",0)(1,Jae,3,1,"ng-container",1),bt(2),w(3,Xae,3,1,"span",2)(4,ece,1,0,"span",3)),2&i&&(he(o.nzIcon?0:-1),d(),h("nzStringTemplateOutlet",o.nzTitle),d(2),he(o.isMenuInsideDropDown?3:4))},dependencies:[On,cn,Tn,Sn],encapsulation:2,changeDetection:0})}return t})();const hO=[Kt.rightTop,Kt.right,Kt.rightBottom,Kt.leftTop,Kt.left,Kt.leftBottom],vce=[Kt.bottomLeft,Kt.bottomRight,Kt.topRight,Kt.topLeft];let l6=(()=>{class t{setOpenStateWithoutDebounce(e){this.nzSubmenuService.setOpenStateWithoutDebounce(e)}toggleSubMenu(){this.setOpenStateWithoutDebounce(!this.nzOpen)}setMouseEnterState(e){this.isActive=e,"inline"!==this.mode&&this.nzSubmenuService.setMouseEnterTitleOrOverlayState(e)}setTriggerWidth(){"horizontal"===this.mode&&this.platform.isBrowser&&this.cdkOverlayOrigin&&"bottomLeft"===this.nzPlacement&&(this.triggerWidth=this.cdkOverlayOrigin.nativeElement.getBoundingClientRect().width)}onPositionChange(e){const i=q3(e);"rightTop"===i||"rightBottom"===i||"right"===i?this.position="right":("leftTop"===i||"leftBottom"===i||"left"===i)&&(this.position="left")}constructor(e,i,o,r,s,a,c){this.nzMenuService=e,this.cdr=i,this.nzSubmenuService=o,this.platform=r,this.isMenuInsideDropDown=s,this.directionality=a,this.noAnimation=c,this.nzMenuClassName="",this.nzPaddingLeft=null,this.nzTitle=null,this.nzIcon=null,this.nzOpen=!1,this.nzDisabled=!1,this.nzPlacement="bottomLeft",this.nzOpenChange=new H,this.cdkOverlayOrigin=null,this.listOfNzSubMenuComponent=null,this.listOfNzMenuItemDirective=null,this.level=this.nzSubmenuService.level,this.destroy$=new N,this.position="right",this.triggerWidth=null,this.theme="light",this.mode="vertical",this.inlinePaddingLeft=null,this.overlayPositions=hO,this.isSelected=!1,this.isActive=!1,this.dir="ltr"}ngOnInit(){this.nzMenuService.theme$.pipe(I(this.destroy$)).subscribe(e=>{this.theme=e,this.cdr.markForCheck()}),this.nzSubmenuService.mode$.pipe(I(this.destroy$)).subscribe(e=>{this.mode=e,"horizontal"===e?this.overlayPositions=[Kt[this.nzPlacement],...vce]:"vertical"===e&&(this.overlayPositions=hO),this.cdr.markForCheck()}),xi([this.nzSubmenuService.mode$,this.nzMenuService.inlineIndent$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{this.inlinePaddingLeft="inline"===e?this.level*i:null,this.cdr.markForCheck()}),this.nzSubmenuService.isCurrentSubMenuOpen$.pipe(I(this.destroy$)).subscribe(e=>{this.isActive=e,e!==this.nzOpen&&(this.setTriggerWidth(),this.nzOpen=e,this.nzOpenChange.emit(this.nzOpen),this.cdr.markForCheck())}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.markForCheck()})}ngAfterContentInit(){this.setTriggerWidth();const e=this.listOfNzMenuItemDirective,i=e.changes,o=Pn(i,...e.map(r=>r.selected$));i.pipe(gn(e),mn(()=>o),gn(!0),Ie(()=>e.some(r=>r.nzSelected)),I(this.destroy$)).subscribe(r=>{this.isSelected=r,this.cdr.markForCheck()})}ngOnChanges(e){const{nzOpen:i}=e;i&&(this.nzSubmenuService.setOpenStateWithoutDebounce(this.nzOpen),this.setTriggerWidth())}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ys),v(Ue),v(F7),v(qn),v(gs),v(wt,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-submenu",""]],contentQueries:function(i,o,r){if(1&i&&(fn(r,t,5),fn(r,Us,5)),2&i){let s;Ae(s=Oe())&&(o.listOfNzSubMenuComponent=s),Ae(s=Oe())&&(o.listOfNzMenuItemDirective=s)}},viewQuery:function(i,o){if(1&i&&ft(Tc,7,Te),2&i){let r;Ae(r=Oe())&&(o.cdkOverlayOrigin=r.first)}},hostVars:34,hostBindings:function(i,o){2&i&&Q("ant-dropdown-menu-submenu",o.isMenuInsideDropDown)("ant-dropdown-menu-submenu-disabled",o.isMenuInsideDropDown&&o.nzDisabled)("ant-dropdown-menu-submenu-open",o.isMenuInsideDropDown&&o.nzOpen)("ant-dropdown-menu-submenu-selected",o.isMenuInsideDropDown&&o.isSelected)("ant-dropdown-menu-submenu-vertical",o.isMenuInsideDropDown&&"vertical"===o.mode)("ant-dropdown-menu-submenu-horizontal",o.isMenuInsideDropDown&&"horizontal"===o.mode)("ant-dropdown-menu-submenu-inline",o.isMenuInsideDropDown&&"inline"===o.mode)("ant-dropdown-menu-submenu-active",o.isMenuInsideDropDown&&o.isActive)("ant-menu-submenu",!o.isMenuInsideDropDown)("ant-menu-submenu-disabled",!o.isMenuInsideDropDown&&o.nzDisabled)("ant-menu-submenu-open",!o.isMenuInsideDropDown&&o.nzOpen)("ant-menu-submenu-selected",!o.isMenuInsideDropDown&&o.isSelected)("ant-menu-submenu-vertical",!o.isMenuInsideDropDown&&"vertical"===o.mode)("ant-menu-submenu-horizontal",!o.isMenuInsideDropDown&&"horizontal"===o.mode)("ant-menu-submenu-inline",!o.isMenuInsideDropDown&&"inline"===o.mode)("ant-menu-submenu-active",!o.isMenuInsideDropDown&&o.isActive)("ant-menu-submenu-rtl","rtl"===o.dir)},inputs:{nzMenuClassName:"nzMenuClassName",nzPaddingLeft:"nzPaddingLeft",nzTitle:"nzTitle",nzIcon:"nzIcon",nzOpen:[2,"nzOpen","nzOpen",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzPlacement:"nzPlacement"},outputs:{nzOpenChange:"nzOpenChange"},exportAs:["nzSubmenu"],standalone:!0,features:[et([F7]),je,ke,me],attrs:tce,ngContentSelectors:ice,decls:7,vars:8,consts:[["origin","cdkOverlayOrigin"],["subMenuTemplate",""],["nz-submenu-title","","cdkOverlayOrigin","",3,"subMenuMouseState","toggleSubMenu","nzIcon","nzTitle","mode","nzDisabled","isMenuInsideDropDown","paddingLeft"],["nz-submenu-inline-child","",3,"mode","nzOpen","nzNoAnimation","menuClass","templateOutlet"],["cdkConnectedOverlay","",3,"cdkConnectedOverlayPositions","cdkConnectedOverlayOrigin","cdkConnectedOverlayWidth","cdkConnectedOverlayOpen","cdkConnectedOverlayTransformOriginOn"],["cdkConnectedOverlay","",3,"positionChange","cdkConnectedOverlayPositions","cdkConnectedOverlayOrigin","cdkConnectedOverlayWidth","cdkConnectedOverlayOpen","cdkConnectedOverlayTransformOriginOn"],["nz-submenu-none-inline-child","",3,"subMenuMouseState","theme","mode","nzOpen","position","nzDisabled","isMenuInsideDropDown","templateOutlet","menuClass","nzNoAnimation"]],template:function(i,o){if(1&i){const r=U();Et(nce),f(0,"div",2,0),D("subMenuMouseState",function(a){return T(r),M(o.setMouseEnterState(a))})("toggleSubMenu",function(){return T(r),M(o.toggleSubMenu())}),w(2,oce,1,0),m(),w(3,rce,1,6,"div",3)(4,ace,1,5,null,4)(5,cce,1,0,"ng-template",null,1,ot)}2&i&&(h("nzIcon",o.nzIcon)("nzTitle",o.nzTitle)("mode",o.mode)("nzDisabled",o.nzDisabled)("isMenuInsideDropDown",o.isMenuInsideDropDown)("paddingLeft",o.nzPaddingLeft||o.inlinePaddingLeft),d(2),he(o.nzTitle?-1:2),d(),he("inline"===o.mode?3:4))},dependencies:[uO,mce,zo,gce,d2,Mc,Tc],encapsulation:2,changeDetection:0})}return t})();function _ce(){const t=W(Ys,{skipSelf:!0,optional:!0}),n=W(dO);return t??n}function bce(){return W(gs,{skipSelf:!0,optional:!0})??!1}let Sa=(()=>{class t{setInlineCollapsed(e){this.nzInlineCollapsed=e,this.inlineCollapsed$.next(e)}updateInlineCollapse(){this.listOfNzMenuItemDirective&&(this.nzInlineCollapsed?(this.listOfOpenedNzSubMenuComponent=this.listOfNzSubMenuComponent.filter(e=>e.nzOpen),this.listOfNzSubMenuComponent.forEach(e=>e.setOpenStateWithoutDebounce(!1))):(this.listOfOpenedNzSubMenuComponent.forEach(e=>e.setOpenStateWithoutDebounce(!0)),this.listOfOpenedNzSubMenuComponent=[]))}constructor(e,i,o,r){this.nzMenuService=e,this.isMenuInsideDropDown=i,this.cdr=o,this.directionality=r,this.nzInlineIndent=24,this.nzTheme="light",this.nzMode="vertical",this.nzInlineCollapsed=!1,this.nzSelectable=!this.isMenuInsideDropDown,this.nzClick=new H,this.actualMode="vertical",this.dir="ltr",this.inlineCollapsed$=new rt(this.nzInlineCollapsed),this.mode$=new rt(this.nzMode),this.destroy$=new N,this.listOfOpenedNzSubMenuComponent=[]}ngOnInit(){xi([this.inlineCollapsed$,this.mode$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{this.actualMode=e?"vertical":i,this.nzMenuService.setMode(this.actualMode),this.cdr.markForCheck()}),this.nzMenuService.descendantMenuItemClick$.pipe(I(this.destroy$)).subscribe(e=>{this.nzClick.emit(e),this.nzSelectable&&!e.nzMatchRouter&&this.listOfNzMenuItemDirective.forEach(i=>i.setSelectedState(i===e))}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.nzMenuService.setMode(this.actualMode),this.cdr.markForCheck()})}ngAfterContentInit(){this.inlineCollapsed$.pipe(I(this.destroy$)).subscribe(()=>{this.updateInlineCollapse(),this.cdr.markForCheck()})}ngOnChanges(e){const{nzInlineCollapsed:i,nzInlineIndent:o,nzTheme:r,nzMode:s}=e;i&&this.inlineCollapsed$.next(this.nzInlineCollapsed),o&&this.nzMenuService.setInlineIndent(this.nzInlineIndent),r&&this.nzMenuService.setTheme(this.nzTheme),s&&(this.mode$.next(this.nzMode),!e.nzMode.isFirstChange()&&this.listOfNzSubMenuComponent&&this.listOfNzSubMenuComponent.forEach(a=>a.setOpenStateWithoutDebounce(!1)))}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ys),v(gs),v(Ue),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-menu",""]],contentQueries:function(i,o,r){if(1&i&&(fn(r,Us,5),fn(r,l6,5)),2&i){let s;Ae(s=Oe())&&(o.listOfNzMenuItemDirective=s),Ae(s=Oe())&&(o.listOfNzSubMenuComponent=s)}},hostVars:34,hostBindings:function(i,o){2&i&&Q("ant-dropdown-menu",o.isMenuInsideDropDown)("ant-dropdown-menu-root",o.isMenuInsideDropDown)("ant-dropdown-menu-light",o.isMenuInsideDropDown&&"light"===o.nzTheme)("ant-dropdown-menu-dark",o.isMenuInsideDropDown&&"dark"===o.nzTheme)("ant-dropdown-menu-vertical",o.isMenuInsideDropDown&&"vertical"===o.actualMode)("ant-dropdown-menu-horizontal",o.isMenuInsideDropDown&&"horizontal"===o.actualMode)("ant-dropdown-menu-inline",o.isMenuInsideDropDown&&"inline"===o.actualMode)("ant-dropdown-menu-inline-collapsed",o.isMenuInsideDropDown&&o.nzInlineCollapsed)("ant-menu",!o.isMenuInsideDropDown)("ant-menu-root",!o.isMenuInsideDropDown)("ant-menu-light",!o.isMenuInsideDropDown&&"light"===o.nzTheme)("ant-menu-dark",!o.isMenuInsideDropDown&&"dark"===o.nzTheme)("ant-menu-vertical",!o.isMenuInsideDropDown&&"vertical"===o.actualMode)("ant-menu-horizontal",!o.isMenuInsideDropDown&&"horizontal"===o.actualMode)("ant-menu-inline",!o.isMenuInsideDropDown&&"inline"===o.actualMode)("ant-menu-inline-collapsed",!o.isMenuInsideDropDown&&o.nzInlineCollapsed)("ant-menu-rtl","rtl"===o.dir)},inputs:{nzInlineIndent:"nzInlineIndent",nzTheme:"nzTheme",nzMode:"nzMode",nzInlineCollapsed:[2,"nzInlineCollapsed","nzInlineCollapsed",O],nzSelectable:[2,"nzSelectable","nzSelectable",O]},outputs:{nzClick:"nzClick"},exportAs:["nzMenu"],standalone:!0,features:[et([{provide:dO,useClass:Ys},{provide:Ys,useFactory:_ce},{provide:gs,useFactory:bce}]),je,ke]})}return t})();function yce(){return W(gs,{optional:!0,skipSelf:!0})??!1}let Cce=(()=>{class t{constructor(e,i,o){this.elementRef=e,this.renderer=i,this.isMenuInsideDropDown=o,this.renderer.addClass(e.nativeElement,this.isMenuInsideDropDown?"ant-dropdown-menu-item-group":"ant-menu-item-group")}ngAfterViewInit(){const e=this.titleElement.nativeElement.nextElementSibling;e&&this.renderer.addClass(e,this.isMenuInsideDropDown?"ant-dropdown-menu-item-group-list":"ant-menu-item-group-list")}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(gs))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-menu-group",""]],viewQuery:function(i,o){if(1&i&&ft(lce,5),2&i){let r;Ae(r=Oe())&&(o.titleElement=r.first)}},inputs:{nzTitle:"nzTitle"},exportAs:["nzMenuGroup"],standalone:!0,features:[et([{provide:gs,useFactory:yce}]),me],attrs:dce,ngContentSelectors:hce,decls:5,vars:6,consts:[["titleElement",""],[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&(Et(uce),f(0,"div",null,0),w(2,pce,2,1,"ng-container",1)(3,fce,1,0),m(),bt(4)),2&i&&(Q("ant-menu-item-group-title",!o.isMenuInsideDropDown)("ant-dropdown-menu-item-group-title",o.isMenuInsideDropDown),d(2),h("nzStringTemplateOutlet",o.nzTitle),d(),he(o.nzTitle?-1:3))},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),R7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[l6,Cce,uO]})}return t})();const wce=["*"];function zce(t,n){if(1&t){const e=U();f(0,"div",0),D("@slideMotion.done",function(o){return T(e),M(g().onAnimationEvent(o))})("mouseenter",function(){return T(e),M(g().setMouseState(!0))})("mouseleave",function(){return T(e),M(g().setMouseState(!1))}),bt(1),m()}if(2&t){const e=g();Q("ant-dropdown-rtl","rtl"===e.dir),h("ngClass",e.nzOverlayClassName)("ngStyle",e.nzOverlayStyle)("@slideMotion",void 0)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)}}const Tce=[Kt.bottomLeft,Kt.bottomRight,Kt.topRight,Kt.topLeft];let N1=(()=>{class t{setDropdownMenuValue(e,i){this.nzDropdownMenu&&this.nzDropdownMenu.setValue(e,i)}constructor(e,i,o,r,s,a){this.nzConfigService=e,this.elementRef=i,this.overlay=o,this.renderer=r,this.viewContainerRef=s,this.platform=a,this._nzModuleName="dropDown",this.overlayRef=null,this.destroy$=new N,this.positionStrategy=this.overlay.position().flexibleConnectedTo(this.elementRef.nativeElement).withLockedPosition().withTransformOriginOn(".ant-dropdown"),this.inputVisible$=new rt(!1),this.nzTrigger$=new rt("hover"),this.overlayClose$=new N,this.nzDropdownMenu=null,this.nzTrigger="hover",this.nzMatchWidthElement=null,this.nzBackdrop=!1,this.nzClickHide=!0,this.nzDisabled=!1,this.nzVisible=!1,this.nzOverlayClassName="",this.nzOverlayStyle={},this.nzPlacement="bottomLeft",this.nzVisibleChange=new H}ngAfterViewInit(){if(this.nzDropdownMenu){const e=this.elementRef.nativeElement,i=Pn(nn(e,"mouseenter").pipe(hc(!0)),nn(e,"mouseleave").pipe(hc(!1))),r=Pn(this.nzDropdownMenu.mouseState$,i),s=nn(e,"click").pipe(Ie(()=>!this.nzVisible)),l=Pn(this.nzTrigger$.pipe(mn(p=>"hover"===p?r:"click"===p?s:bo)),this.nzDropdownMenu.descendantMenuItemClick$.pipe(yt(()=>this.nzClickHide),hc(!1)),this.overlayClose$).pipe(yt(()=>!this.nzDisabled));xi([Pn(this.inputVisible$,l),this.nzDropdownMenu.isChildSubMenuOpen$]).pipe(Ie(([p,_])=>p||_),_c(150),qi(),yt(()=>this.platform.isBrowser),I(this.destroy$)).subscribe(p=>{const b=(this.nzMatchWidthElement?this.nzMatchWidthElement.nativeElement:e).getBoundingClientRect().width;this.nzVisible!==p&&this.nzVisibleChange.emit(p),this.nzVisible=p,p?(this.overlayRef?this.overlayRef.getConfig().minWidth=b:(this.overlayRef=this.overlay.create({positionStrategy:this.positionStrategy,minWidth:b,disposeOnNavigation:!0,hasBackdrop:this.nzBackdrop&&"click"===this.nzTrigger,scrollStrategy:this.overlay.scrollStrategies.reposition()}),Pn(this.overlayRef.backdropClick(),this.overlayRef.detachments(),this.overlayRef.outsidePointerEvents().pipe(yt(y=>!this.elementRef.nativeElement.contains(y.target))),this.overlayRef.keydownEvents().pipe(yt(y=>27===y.keyCode&&!l2(y)))).pipe(I(this.destroy$)).subscribe(()=>{this.overlayClose$.next(!1)})),this.positionStrategy.withPositions([Kt[this.nzPlacement],...Tce]),(!this.portal||this.portal.templateRef!==this.nzDropdownMenu.templateRef)&&(this.portal=new Zu(this.nzDropdownMenu.templateRef,this.viewContainerRef)),this.overlayRef.attach(this.portal)):this.overlayRef&&this.overlayRef.detach()}),this.nzDropdownMenu.animationStateChange$.pipe(I(this.destroy$)).subscribe(p=>{"void"===p.toState&&(this.overlayRef&&this.overlayRef.dispose(),this.overlayRef=null)})}}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete(),this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)}ngOnChanges(e){const{nzVisible:i,nzDisabled:o,nzOverlayClassName:r,nzOverlayStyle:s,nzTrigger:a}=e;if(a&&this.nzTrigger$.next(this.nzTrigger),i&&this.inputVisible$.next(this.nzVisible),o){const c=this.elementRef.nativeElement;this.nzDisabled?(this.renderer.setAttribute(c,"disabled",""),this.inputVisible$.next(!1)):this.renderer.removeAttribute(c,"disabled")}r&&this.setDropdownMenuValue("nzOverlayClassName",this.nzOverlayClassName),s&&this.setDropdownMenuValue("nzOverlayStyle",this.nzOverlayStyle)}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Te),v(ya),v($t),v(Gn),v(qn))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-dropdown",""]],hostAttrs:[1,"ant-dropdown-trigger"],inputs:{nzDropdownMenu:"nzDropdownMenu",nzTrigger:"nzTrigger",nzMatchWidthElement:"nzMatchWidthElement",nzBackdrop:[2,"nzBackdrop","nzBackdrop",O],nzClickHide:[2,"nzClickHide","nzClickHide",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzVisible:[2,"nzVisible","nzVisible",O],nzOverlayClassName:"nzOverlayClassName",nzOverlayStyle:"nzOverlayStyle",nzPlacement:"nzPlacement"},outputs:{nzVisibleChange:"nzVisibleChange"},exportAs:["nzDropdown"],standalone:!0,features:[je,ke]})}return kt([Nt()],t.prototype,"nzBackdrop",void 0),t})(),Mce=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})(),C2=(()=>{class t{onAnimationEvent(e){this.animationStateChange$.emit(e)}setMouseState(e){this.mouseState$.next(e)}setValue(e,i){this[e]=i,this.cdr.markForCheck()}constructor(e,i,o,r,s,a,c){this.cdr=e,this.elementRef=i,this.renderer=o,this.viewContainerRef=r,this.nzMenuService=s,this.directionality=a,this.noAnimation=c,this.mouseState$=new rt(!1),this.isChildSubMenuOpen$=this.nzMenuService.isChildSubMenuOpen$,this.descendantMenuItemClick$=this.nzMenuService.descendantMenuItemClick$,this.animationStateChange$=new H,this.nzOverlayClassName="",this.nzOverlayStyle={},this.dir="ltr",this.destroy$=new N}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngAfterContentInit(){this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(Te),v($t),v(Gn),v(Ys),v(wt,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-dropdown-menu"]],viewQuery:function(i,o){if(1&i&&ft(Gt,7),2&i){let r;Ae(r=Oe())&&(o.templateRef=r.first)}},exportAs:["nzDropdownMenu"],standalone:!0,features:[et([Ys,{provide:gs,useValue:!0}]),me],ngContentSelectors:wce,decls:1,vars:0,consts:[[1,"ant-dropdown",3,"mouseenter","mouseleave","ngClass","ngStyle","nzNoAnimation"]],template:function(i,o){1&i&&(Et(),w(0,zce,2,7,"ng-template"))},dependencies:[Zo,ti,zo],encapsulation:2,data:{animation:[a7]},changeDetection:0})}return t})(),d6=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Mce,R7]})}return t})();function pO(t,n){return n?e=>yu(n.pipe(io(1),function Dce(){return dn((t,n)=>{t.subscribe(Zt(n,qs))})}()),e.pipe(pO(t))):$n((e,i)=>Ii(t(e,i)).pipe(io(1),hc(e)))}function w2(t,n=Yu){const e=m3(t,n);return pO(()=>e)}new Fn({originX:"start",originY:"top"},{overlayX:"start",overlayY:"top"}),new Fn({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),new Fn({originX:"start",originY:"top"},{overlayX:"end",overlayY:"bottom"}),new Fn({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"});const xce=["overlay"];function Ece(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzTitle)}}function kce(t,n){if(1&t&&(f(0,"div",2)(1,"div",3)(2,"div",4),S(3,"span",5),m(),f(4,"div",6),w(5,Ece,2,1,"ng-container",7),m()()()),2&t){const e=g();Q("ant-tooltip-rtl","rtl"===e.dir),h("ngClass",e._classMap)("ngStyle",e.nzOverlayStyle)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("@zoomBigMotion","active"),d(3),h("ngStyle",e._contentStyleMap),d(),h("ngStyle",e._contentStyleMap),d(),h("nzStringTemplateOutlet",e.nzTitle)("nzStringTemplateOutletContext",e.nzTitleContext)}}let L7=(()=>{class t{get _title(){return this.title||this.directiveTitle||null}get _content(){return this.content||this.directiveContent||null}get _trigger(){return typeof this.trigger<"u"?this.trigger:"hover"}get _placement(){const e=this.placement;return Array.isArray(e)&&e.length>0?e:"string"==typeof e&&e?[e]:["top"]}get _visible(){return(typeof this.visible<"u"?this.visible:this.internalVisible)||!1}get _mouseEnterDelay(){return this.mouseEnterDelay||.15}get _mouseLeaveDelay(){return this.mouseLeaveDelay||.1}get _overlayClassName(){return this.overlayClassName||null}get _overlayStyle(){return this.overlayStyle||null}getProxyPropertyMap(){return{noAnimation:["noAnimation",()=>!!this.noAnimation]}}constructor(e){this.componentType=e,this.visibleChange=new H,this.internalVisible=!1,this.destroy$=new N,this.triggerDisposables=[],this.elementRef=W(Te),this.hostView=W(Gn),this.renderer=W($t),this.noAnimation=W(zo,{host:!0,optional:!0}),this.nzConfigService=W(si),this.platformId=W(Ir)}ngAfterViewInit(){p0(this.platformId)&&(this.createComponent(),this.registerTriggers())}ngOnChanges(e){const{trigger:i}=e;i&&!i.isFirstChange()&&this.registerTriggers(),this.component&&this.updatePropertiesByChanges(e)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.clearTogglingTimer(),this.removeTriggerListeners()}show(){this.component?.show()}hide(){this.component?.hide()}updatePosition(){this.component&&this.component.updatePosition()}createComponent(){const e=this.hostView.createComponent(this.componentType);this.component=e.instance,this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),e.location.nativeElement),this.component.setOverlayOrigin(this.origin||this.elementRef),this.initProperties();const i=this.component.nzVisibleChange.pipe(qi());i.pipe(I(this.destroy$)).subscribe(o=>{this.internalVisible=o,this.visibleChange.emit(o)}),i.pipe(yt(o=>o),w2(0,y7),yt(()=>!!this.component?.overlay?.overlayRef),I(this.destroy$)).subscribe(()=>{this.component?.updatePosition()})}registerTriggers(){const e=this.elementRef.nativeElement,i=this.trigger;if(this.removeTriggerListeners(),"hover"===i){let o;this.triggerDisposables.push(this.renderer.listen(e,"mouseenter",()=>{this.delayEnterLeave(!0,!0,this._mouseEnterDelay)})),this.triggerDisposables.push(this.renderer.listen(e,"mouseleave",()=>{this.delayEnterLeave(!0,!1,this._mouseLeaveDelay),this.component?.overlay.overlayRef&&!o&&(o=this.component.overlay.overlayRef.overlayElement,this.triggerDisposables.push(this.renderer.listen(o,"mouseenter",()=>{this.delayEnterLeave(!1,!0,this._mouseEnterDelay)})),this.triggerDisposables.push(this.renderer.listen(o,"mouseleave",()=>{this.delayEnterLeave(!1,!1,this._mouseLeaveDelay)})))}))}else"focus"===i?(this.triggerDisposables.push(this.renderer.listen(e,"focusin",()=>this.show())),this.triggerDisposables.push(this.renderer.listen(e,"focusout",()=>this.hide()))):"click"===i&&this.triggerDisposables.push(this.renderer.listen(e,"click",o=>{o.preventDefault(),this.show()}))}updatePropertiesByChanges(e){this.updatePropertiesByKeys(Object.keys(e))}updatePropertiesByKeys(e){const i={title:["nzTitle",()=>this._title],directiveTitle:["nzTitle",()=>this._title],content:["nzContent",()=>this._content],directiveContent:["nzContent",()=>this._content],trigger:["nzTrigger",()=>this._trigger],placement:["nzPlacement",()=>this._placement],visible:["nzVisible",()=>this._visible],mouseEnterDelay:["nzMouseEnterDelay",()=>this._mouseEnterDelay],mouseLeaveDelay:["nzMouseLeaveDelay",()=>this._mouseLeaveDelay],overlayClassName:["nzOverlayClassName",()=>this._overlayClassName],overlayStyle:["nzOverlayStyle",()=>this._overlayStyle],arrowPointAtCenter:["nzArrowPointAtCenter",()=>this.arrowPointAtCenter],cdkConnectedOverlayPush:["cdkConnectedOverlayPush",()=>this.cdkConnectedOverlayPush],...this.getProxyPropertyMap()};(e||Object.keys(i).filter(o=>!o.startsWith("directive"))).forEach(o=>{if(i[o]){const[r,s]=i[o];this.updateComponentValue(r,s())}}),this.component?.updateByDirective()}initProperties(){this.updatePropertiesByKeys()}updateComponentValue(e,i){typeof i<"u"&&(this.component[e]=i)}delayEnterLeave(e,i,o=-1){this.delayTimer?this.clearTogglingTimer():o>0?this.delayTimer=setTimeout(()=>{this.delayTimer=void 0,i?this.show():this.hide()},1e3*o):i&&e?this.show():this.hide()}removeTriggerListeners(){this.triggerDisposables.forEach(e=>e()),this.triggerDisposables.length=0}clearTogglingTimer(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=void 0)}static#e=this.\u0275fac=function(i){return new(i||t)(v(Rp))};static#t=this.\u0275dir=de({type:t,features:[ke]})}return t})(),Ace=(()=>{class t{set nzVisible(e){const i=B5(e);this._visible!==i&&(this._visible=i,this.nzVisibleChange.next(i))}get nzVisible(){return this._visible}set nzTrigger(e){this._trigger=e}get nzTrigger(){return this._trigger}set nzPlacement(e){const i=e.map(o=>Kt[o]);this._positions=[...i,...uA]}constructor(e,i,o){this.cdr=e,this.directionality=i,this.noAnimation=o,this.nzTitle=null,this.nzContent=null,this.nzArrowPointAtCenter=!1,this.nzOverlayStyle={},this.nzBackdrop=!1,this.cdkConnectedOverlayPush=!0,this.nzVisibleChange=new N,this._visible=!1,this._trigger="hover",this.preferredPlacement="top",this.dir="ltr",this._classMap={},this._prefix="ant-tooltip",this._positions=[...uA],this.destroy$=new N}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.nzVisibleChange.complete(),this.destroy$.next(),this.destroy$.complete()}show(){this.nzVisible||(this.isEmpty()||(this.nzVisible=!0,this.nzVisibleChange.next(!0),this.cdr.detectChanges()),this.origin&&this.overlay&&this.overlay.overlayRef&&"rtl"===this.overlay.overlayRef.getDirection()&&this.overlay.overlayRef.setDirection("ltr"))}hide(){this.nzVisible&&(this.nzVisible=!1,this.nzVisibleChange.next(!1),this.cdr.detectChanges())}updateByDirective(){this.updateStyles(),this.cdr.detectChanges(),Promise.resolve().then(()=>{this.updatePosition(),this.updateVisibilityByTitle()})}updatePosition(){this.origin&&this.overlay&&this.overlay.overlayRef&&this.overlay.overlayRef.updatePosition()}onPositionChange(e){this.preferredPlacement=q3(e),this.updateStyles(),this.cdr.detectChanges()}setOverlayOrigin(e){this.origin=e,this.cdr.markForCheck()}onClickOutside(e){const i=Io(e);!this.origin.nativeElement.contains(i)&&null!==this.nzTrigger&&this.hide()}updateVisibilityByTitle(){this.isEmpty()&&this.hide()}updateStyles(){this._classMap={[this.nzOverlayClassName]:!0,[`${this._prefix}-placement-${this.preferredPlacement}`]:!0}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(wt,8),v(zo))};static#t=this.\u0275dir=de({type:t,viewQuery:function(i,o){if(1&i&&ft(xce,5),2&i){let r;Ae(r=Oe())&&(o.overlay=r.first)}}})}return t})();function H7(t){return!(t instanceof Gt||""!==t&&br(t))}let Ta=(()=>{class t extends L7{constructor(){super(u6),this.titleContext=null,this.trigger="hover",this.placement="top",this.cdkConnectedOverlayPush=!0,this.visibleChange=new H}getProxyPropertyMap(){return{...super.getProxyPropertyMap(),nzTooltipColor:["nzColor",()=>this.nzTooltipColor],titleContext:["nzTitleContext",()=>this.titleContext]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-tooltip",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-tooltip-open",o.visible)},inputs:{title:[0,"nzTooltipTitle","title"],titleContext:[0,"nzTooltipTitleContext","titleContext"],directiveTitle:[0,"nz-tooltip","directiveTitle"],trigger:[0,"nzTooltipTrigger","trigger"],placement:[0,"nzTooltipPlacement","placement"],origin:[0,"nzTooltipOrigin","origin"],visible:[0,"nzTooltipVisible","visible"],mouseEnterDelay:[0,"nzTooltipMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:[0,"nzTooltipMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:[0,"nzTooltipOverlayClassName","overlayClassName"],overlayStyle:[0,"nzTooltipOverlayStyle","overlayStyle"],arrowPointAtCenter:[2,"nzTooltipArrowPointAtCenter","arrowPointAtCenter",O],cdkConnectedOverlayPush:[2,"cdkConnectedOverlayPush","cdkConnectedOverlayPush",O],nzTooltipColor:"nzTooltipColor"},outputs:{visibleChange:"nzTooltipVisibleChange"},exportAs:["nzTooltip"],standalone:!0,features:[je,mt]})}return t})(),u6=(()=>{class t extends Ace{constructor(e,i,o){super(e,i,o),this.nzTitle=null,this.nzTitleContext=null,this._contentStyleMap={}}isEmpty(){return H7(this.nzTitle)}updateStyles(){const e=this.nzColor&&AE(this.nzColor);this._classMap={[this.nzOverlayClassName]:!0,[`${this._prefix}-placement-${this.preferredPlacement}`]:!0,[`${this._prefix}-${this.nzColor}`]:e},this._contentStyleMap={backgroundColor:this.nzColor&&!e?this.nzColor:null,"--antd-arrow-background-color":this.nzColor}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(wt,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tooltip"]],exportAs:["nzTooltipComponent"],standalone:!0,features:[mt,me],decls:2,vars:5,consts:[["overlay","cdkConnectedOverlay"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayPush","nzArrowPointAtCenter"],[1,"ant-tooltip",3,"ngClass","ngStyle","nzNoAnimation"],[1,"ant-tooltip-content"],[1,"ant-tooltip-arrow"],[1,"ant-tooltip-arrow-content",3,"ngStyle"],[1,"ant-tooltip-inner",3,"ngStyle"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"]],template:function(i,o){if(1&i){const r=U();w(0,kce,6,11,"ng-template",1,0,ot),D("overlayOutsideClick",function(a){return T(r),M(o.onClickOutside(a))})("detach",function(){return T(r),M(o.hide())})("positionChange",function(a){return T(r),M(o.onPositionChange(a))})}2&i&&h("cdkConnectedOverlayOrigin",o.origin)("cdkConnectedOverlayOpen",o._visible)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayPush",o.cdkConnectedOverlayPush)("nzArrowPointAtCenter",o.nzArrowPointAtCenter)},dependencies:[d2,Mc,Zo,ti,zo,Tn,Sn,u2,J3],encapsulation:2,data:{animation:[O3]},changeDetection:0})}return t})(),B7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[u6]})}return t})();function Oce(t,n){1&t&&(f(0,"div",13),S(1,"img",14),m()),2&t&&(g(),h("nzDropdownMenu",He(3)))}function Pce(t,n){if(1&t){const e=U();f(0,"li",15),D("click",function(){const o=T(e).$implicit;return M(g().toggleTheme(o))}),C(1),m()}if(2&t){const e=n.$implicit;d(),Ce(" ",e.name," ")}}function Ice(t,n){if(1&t){const e=U();f(0,"span",7)(1,"div",8),D("click",function(){return T(e),M(g().handleSync())}),S(2,"i",16),m()()}if(2&t){const e=g();h("nzTooltipTitle",e.$t("_syncData")),d(),Q("rotate",e.syncLoading)}}function Nce(t,n){if(1&t){const e=U();f(0,"span",7)(1,"div",8),D("click",function(){return T(e),M(g().goSystemPage())}),S(2,"i",17),m()()}2&t&&h("nzTooltipTitle",g().$t("_addData"))}function Vce(t,n){if(1&t){const e=U();f(0,"span",7)(1,"div",8),D("click",function(){return T(e),M(g().collapse())}),S(2,"i",18),m()()}if(2&t){const e=g();h("nzTooltipTitle",e.$t(e.collapsed?"_collapse":"_put")),d(2),Q("active",e.collapsed)}}function Fce(t,n){1&t&&S(0,"i",19)}function Rce(t,n){1&t&&S(0,"img",20)}function Lce(t,n){if(1&t&&(f(0,"li",24)(1,"a",25),C(2),m()()),2&t){const e=n.$implicit;d(),h("href",e.url,Ot),d(),Ce(" ",e.name," ")}}function Hce(t,n){if(1&t&&(f(0,"div")(1,"div",21),S(2,"img",22),m(),f(3,"nz-dropdown-menu",null,1)(5,"ul",4),w(6,Lce,3,2,"li",23),m()()()),2&t){const e=He(4),i=g();d(),h("nzDropdownMenu",e),d(5),h("ngForOf",i.settings.mirrorList)}}function Bce(t,n){1&t&&S(0,"img",28)}function jce(t,n){1&t&&S(0,"img",29)}function $ce(t,n){if(1&t){const e=U();f(0,"span")(1,"div",8),D("click",function(){return T(e),M(g().toggleLocale())}),w(2,Bce,1,0,"img",26)(3,jce,1,0,"img",27),m()()}if(2&t){const e=g();d(2),h("ngIf","zh-CN"===e.language),d(),h("ngIf",!e.language||"en"===e.language)}}let z2=(()=>{class t{constructor(e,i,o,r){this.message=e,this.modal=i,this.router=o,this.activatedRoute=r,this.showCollapse=!0,this.collapsed=!1,this.selector="",this.onCollapse=new H,this.$t=_e,this.settings=An,this.language=X5(),this.websiteList=yn,this.isDark=u3(),this.syncLoading=!1,this.isLogin=Wi,this.themeList=[{name:_e("_switchTo")+" Super",url:"/super"},{name:_e("_switchTo")+" Light",url:"/light"},{name:_e("_switchTo")+" Sim",url:"/sim"},{name:_e("_switchTo")+" Side",url:"/side"},{name:_e("_switchTo")+" Shortcut",url:"/shortcut"},{name:_e("_switchTo")+" App",url:"/app"}],this.isDark&&document.documentElement.classList.add("dark-container");const s=this.router.url.split("?")[0];this.themeList=this.themeList.filter(a=>a.url!==s)}ngOnInit(){}toggleTheme(e){this.router.navigate([e.url],{queryParams:pi()}),this.removeBackground()}goTop(){if(this.selector){const e=document.querySelector(this.selector);e&&(e.scrollTop=0)}else window.scrollTo({top:0,behavior:"smooth"})}collapse(){this.onCollapse.emit()}removeBackground(){const e=document.getElementById("random-light-bg");e?.parentNode?.removeChild?.(e)}toggleMode(){if(this.isDark=!this.isDark,Ei.emit("EVENT_DARK",this.isDark),window.localStorage.setItem(Ui.isDark,String(Number(this.isDark))),document.documentElement.classList.toggle("dark-container"),this.isDark)this.removeBackground();else{const{data:e}=this.activatedRoute.snapshot;e.renderLinear&&eE()}}goSystemPage(){this.router.navigate(["system"])}handleSync(){this.syncLoading?this.message.warning(_e("_repeatOper")):this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{this.syncLoading=!0,vc({message:"update db",content:JSON.stringify(this.websiteList),path:$g}).then(()=>{this.message.success(_e("_syncSuccessTip"))}).finally(()=>{this.syncLoading=!1})}})}toggleLocale(){window.localStorage.setItem(Ui.language,"en"===this.language?"zh-CN":"en"),window.location.reload()}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(za),v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-fixbar"]],inputs:{showCollapse:"showCollapse",collapsed:"collapsed",selector:"selector"},outputs:{onCollapse:"onCollapse"},decls:17,vars:10,consts:[["menu","nzDropdownMenu"],["menuMirror","nzDropdownMenu"],[1,"fixbar"],["class","wrapper dark-bg dark-border-color dark-action-hover","nz-dropdown","","nzPlacement","topLeft",3,"nzDropdownMenu",4,"ngIf"],["nz-menu","","nzSelectable",""],["nz-menu-item","",3,"click",4,"ngFor","ngForOf"],["nz-tooltip","",3,"nzTooltipTitle",4,"ngIf"],["nz-tooltip","",3,"nzTooltipTitle"],[1,"wrapper","dark-bg","dark-border-color","dark-action-hover",3,"click"],["class","iconfont icondark dark",4,"ngIf"],["class","iconfont icondark","src","assets/img/light.svg",4,"ngIf"],[4,"ngIf"],[1,"iconfont","iconjiantouarrow483","arrow"],["nz-dropdown","","nzPlacement","topLeft",1,"wrapper","dark-bg","dark-border-color","dark-action-hover",3,"nzDropdownMenu"],["src","assets/img/theme.svg"],["nz-menu-item","",3,"click"],[1,"iconfont","iconwinfo-icon-tongbu"],[1,"iconfont","iconchuangjian"],[1,"iconfont","iconweibiaoti25","collapse"],[1,"iconfont","icondark","dark"],["src","assets/img/light.svg",1,"iconfont","icondark"],["nz-dropdown","","nzPlacement","topRight",1,"wrapper","dark-bg","dark-border-color","dark-action-hover",3,"nzDropdownMenu"],["src","assets/img/mirror.svg"],["nz-menu-item","",4,"ngFor","ngForOf"],["nz-menu-item",""],[3,"href"],["class","iconfont","src","assets/img/china.svg",4,"ngIf"],["class","iconfont","src","assets/img/ua.svg",4,"ngIf"],["src","assets/img/china.svg",1,"iconfont"],["src","assets/img/ua.svg",1,"iconfont"]],template:function(i,o){if(1&i){const r=U();f(0,"div",2),w(1,Oce,2,1,"div",3),f(2,"nz-dropdown-menu",null,0)(4,"ul",4),w(5,Pce,2,1,"li",5),m()(),w(6,Ice,3,3,"span",6)(7,Nce,3,1,"span",6)(8,Vce,3,3,"span",6),f(9,"span",7)(10,"div",8),D("click",function(){return T(r),M(o.toggleMode())}),w(11,Fce,1,0,"i",9)(12,Rce,1,0,"img",10),m()(),w(13,Hce,7,2,"div",11)(14,$ce,4,2,"span",11),f(15,"div",8),D("click",function(){return T(r),M(o.goTop())}),S(16,"i",12),m()()}2&i&&(d(),h("ngIf",o.settings.showThemeToggle),d(4),h("ngForOf",o.themeList),d(),h("ngIf",o.isLogin),d(),h("ngIf",o.isLogin),d(),h("ngIf",o.showCollapse),d(),h("nzTooltipTitle",o.$t(o.isDark?"_closeDark":"_openDark")),d(2),h("ngIf",!o.isDark),d(),h("ngIf",o.isDark),d(),h("ngIf",o.settings.mirrorList.length>0),d(),h("ngIf",o.settings.showLanguage))},dependencies:[zn,Tt,mi,Sa,Us,N1,C2,Ta],styles:[".fixbar[_ngcontent-%COMP%]{z-index:9;position:fixed;bottom:30px;right:15px;-webkit-user-select:none;user-select:none}.fixbar[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{width:40px;height:40px;margin-top:10px;transition:.1s linear;display:flex;justify-content:center;align-items:center;cursor:pointer;border-radius:50%;background-color:#fff;box-shadow:0 0 5px #00000026}.fixbar[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]:hover{box-shadow:0 0 5px #00000026;transform:scale(1.2)}.fixbar[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:25px;height:25px}.fixbar[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{transition:.1s linear;display:inline-block;font-size:20px;color:#999}.fixbar[_ngcontent-%COMP%] .arrow[_ngcontent-%COMP%]{transform:rotate(180deg);cursor:pointer;font-weight:700}.fixbar[_ngcontent-%COMP%] .collapse[_ngcontent-%COMP%]{transform:rotate(-270deg)}.fixbar[_ngcontent-%COMP%] .collapse.active[_ngcontent-%COMP%]{transform:rotate(-360deg)}"],changeDetection:0})}return t})(),Yce=(()=>{class t{constructor(e){this.sanitized=e}transform(e){return this.sanitized.bypassSecurityTrustHtml(e)}static#e=this.\u0275fac=function(i){return new(i||t)(v(_u,16))};static#t=this.\u0275pipe=jn({name:"safeHtml",type:t,pure:!0})}return t})();function Uce(t,n){1&t&&(S(0,"div",2),Fr(1,"safeHtml")),2&t&&h("innerHTML",Rr(1,1,g().footerContent),Wn)}let S2=(()=>{class t{constructor(){this.footerContent=An.footerContent.replace("${total}",String(Wi?p3.loginViewCount:p3.userViewCount)).replace("${hostname}",window.location.hostname).replace("${year}",String((new Date).getFullYear())),this.className=""}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-footer"]],inputs:{className:"className"},decls:2,vars:3,consts:[["id","app-footer",1,"footer","dark-text","xie-jiahe"],["class","copyright dark-text",3,"innerHTML",4,"ngIf"],[1,"copyright","dark-text",3,"innerHTML"]],template:function(i,o){1&i&&(f(0,"footer",0),w(1,Uce,2,3,"div",1),m()),2&i&&(k4(o.className),d(),h("ngIf",o.footerContent))},dependencies:[Tt,Yce],styles:[".footer[_ngcontent-%COMP%]{text-align:center;margin-top:5px;color:#fff}.footer[_ngcontent-%COMP%] .copyright[_ngcontent-%COMP%]{color:#fff;margin-bottom:5px}"]})}return t})();function Wce(t,n){if(1&t&&($e(0),S(1,"img",4),Ye()),2&t){const e=g(2);d(),h("src",e.nzNotFoundImage,Ot)("alt",e.isContentString?e.nzNotFoundContent:"empty")}}function Gce(t,n){1&t&&w(0,Wce,2,2,"ng-container",3),2&t&&h("nzStringTemplateOutlet",g().nzNotFoundImage)}function qce(t,n){1&t&&S(0,"nz-empty-simple")}function Kce(t,n){1&t&&S(0,"nz-empty-default")}function Jce(t,n){1&t&&w(0,qce,1,0,"nz-empty-simple")(1,Kce,1,0,"nz-empty-default"),2&t&&he("simple"===g().nzNotFoundImage?0:1)}function Zce(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),Ce(" ",e.isContentString?e.nzNotFoundContent:e.locale.description," ")}}function Qce(t,n){if(1&t&&(f(0,"p",1),w(1,Zce,2,1,"ng-container",3),m()),2&t){const e=g();d(),h("nzStringTemplateOutlet",e.nzNotFoundContent)}}function Xce(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),Ce(" ",e.nzNotFoundFooter," ")}}function ele(t,n){if(1&t&&(f(0,"div",2),w(1,Xce,2,1,"ng-container",3),m()),2&t){const e=g();d(),h("nzStringTemplateOutlet",e.nzNotFoundFooter)}}function tle(t,n){1&t&&C(0),2&t&&Ce(" ",g(2).content," ")}function nle(t,n){}function ile(t,n){1&t&&w(0,nle,0,0,"ng-template",0),2&t&&h("cdkPortalOutlet",g(2).contentPortal)}function ole(t,n){1&t&&w(0,tle,1,1)(1,ile,1,1,null,0),2&t&&he("string"===g().contentType?0:1)}function rle(t,n){1&t&&S(0,"nz-empty",1)}function sle(t,n){1&t&&S(0,"nz-empty",2)}function ale(t,n){1&t&&S(0,"nz-empty")}function cle(t,n){if(1&t&&w(0,rle,1,0,"nz-empty",1)(1,sle,1,0,"nz-empty",2)(2,ale,1,0,"nz-empty"),2&t){let e;he("normal"===(e=g(2).size)?0:"small"===e?1:2)}}function lle(t,n){1&t&&w(0,cle,3,1),2&t&&he(null!==g().specificContent?0:-1)}const dle=new oe("nz-empty-component-name");let ule=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-empty-default"]],exportAs:["nzEmptyDefault"],standalone:!0,features:[me],decls:12,vars:0,consts:[["width","184","height","152","viewBox","0 0 184 152","xmlns","http://www.w3.org/2000/svg",1,"ant-empty-img-default"],["fill","none","fill-rule","evenodd"],["transform","translate(24 31.67)"],["cx","67.797","cy","106.89","rx","67.797","ry","12.668",1,"ant-empty-img-default-ellipse"],["d","M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",1,"ant-empty-img-default-path-1"],["d","M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z","transform","translate(13.56)",1,"ant-empty-img-default-path-2"],["d","M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",1,"ant-empty-img-default-path-3"],["d","M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",1,"ant-empty-img-default-path-4"],["d","M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",1,"ant-empty-img-default-path-5"],["transform","translate(149.65 15.383)",1,"ant-empty-img-default-g"],["cx","20.654","cy","3.167","rx","2.849","ry","2.815"],["d","M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"]],template:function(i,o){1&i&&(xh(),f(0,"svg",0)(1,"g",1)(2,"g",2),S(3,"ellipse",3)(4,"path",4)(5,"path",5)(6,"path",6)(7,"path",7),m(),S(8,"path",8),f(9,"g",9),S(10,"ellipse",10)(11,"path",11),m()()())},encapsulation:2,changeDetection:0})}return t})(),hle=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-empty-simple"]],exportAs:["nzEmptySimple"],standalone:!0,features:[me],decls:6,vars:0,consts:[["width","64","height","41","viewBox","0 0 64 41","xmlns","http://www.w3.org/2000/svg",1,"ant-empty-img-simple"],["transform","translate(0 1)","fill","none","fill-rule","evenodd"],["cx","32","cy","33","rx","32","ry","7",1,"ant-empty-img-simple-ellipse"],["fill-rule","nonzero",1,"ant-empty-img-simple-g"],["d","M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"],["d","M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",1,"ant-empty-img-simple-path"]],template:function(i,o){1&i&&(xh(),f(0,"svg",0)(1,"g",1),S(2,"ellipse",2),f(3,"g",3),S(4,"path",4)(5,"path",5),m()()())},encapsulation:2,changeDetection:0})}return t})();const ple=["default","simple"];let j7=(()=>{class t{constructor(e,i){this.i18n=e,this.cdr=i,this.nzNotFoundImage="default",this.isContentString=!1,this.isImageBuildIn=!0,this.destroy$=new N}ngOnChanges(e){const{nzNotFoundContent:i,nzNotFoundImage:o}=e;if(i&&(this.isContentString="string"==typeof i.currentValue),o){const r=o.currentValue||"default";this.isImageBuildIn=ple.findIndex(s=>s===r)>-1}}ngOnInit(){this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Empty"),this.cdr.markForCheck()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v($s),v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-empty"]],hostAttrs:[1,"ant-empty"],inputs:{nzNotFoundImage:"nzNotFoundImage",nzNotFoundContent:"nzNotFoundContent",nzNotFoundFooter:"nzNotFoundFooter"},exportAs:["nzEmpty"],standalone:!0,features:[ke,me],decls:5,vars:3,consts:[[1,"ant-empty-image"],[1,"ant-empty-description"],[1,"ant-empty-footer"],[4,"nzStringTemplateOutlet"],[3,"src","alt"]],template:function(i,o){1&i&&(f(0,"div",0),w(1,Gce,1,1,"ng-container")(2,Jce,2,1),m(),w(3,Qce,2,1,"p",1)(4,ele,2,1,"div",2)),2&i&&(d(),he(o.isImageBuildIn?2:1),d(2),he(null!==o.nzNotFoundContent?3:-1),d(),he(o.nzNotFoundFooter?4:-1))},dependencies:[Tn,Sn,ule,hle],encapsulation:2,changeDetection:0})}return t})(),$7=(()=>{class t{constructor(e,i,o,r){this.configService=e,this.viewContainerRef=i,this.cdr=o,this.injector=r,this.contentType="string",this.size="",this.destroy$=new N}ngOnChanges(e){e.nzComponentName&&(this.size=function fle(t){switch(t){case"table":case"list":return"normal";case"select":case"tree-select":case"cascader":case"transfer":return"small";default:return""}}(e.nzComponentName.currentValue)),e.specificContent&&!e.specificContent.isFirstChange()&&(this.content=e.specificContent.currentValue,this.renderEmpty())}ngOnInit(){this.subscribeDefaultEmptyContentChange()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}renderEmpty(){const e=this.content;if("string"==typeof e)this.contentType="string";else if(e instanceof Gt){const i={$implicit:this.nzComponentName};this.contentType="template",this.contentPortal=new Zu(e,this.viewContainerRef,i)}else if(e instanceof Rp){const i=tn.create({parent:this.injector,providers:[{provide:dle,useValue:this.nzComponentName}]});this.contentType="component",this.contentPortal=new Ju(e,this.viewContainerRef,i)}else this.contentType="string",this.contentPortal=void 0;this.cdr.detectChanges()}subscribeDefaultEmptyContentChange(){this.configService.getConfigChangeEventForComponent("empty").pipe(gn(!0),I(this.destroy$)).subscribe(()=>{this.content=this.specificContent||this.getUserDefaultEmptyContent(),this.renderEmpty()})}getUserDefaultEmptyContent(){return(this.configService.getConfigForComponent("empty")||{}).nzDefaultEmptyContent}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Gn),v(Ue),v(tn))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-embed-empty"]],inputs:{nzComponentName:"nzComponentName",specificContent:"specificContent"},exportAs:["nzEmbedEmpty"],standalone:!0,features:[ke,me],decls:2,vars:1,consts:[[3,"cdkPortalOutlet"],["nzNotFoundImage","simple",1,"ant-empty-normal"],["nzNotFoundImage","simple",1,"ant-empty-small"]],template:function(i,o){1&i&&w(0,ole,2,1)(1,lle,1,1),2&i&&he(o.content?0:1)},dependencies:[j7,z3,Qu],encapsulation:2,changeDetection:0})}return t})(),Y7=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[j7,$7]})}return t})(),h6=(()=>{class t{constructor(){this.$t=_e,this.goBack=()=>{history.go(-1)}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-no-data"]],decls:5,vars:2,consts:[[1,"no-result","dark-text"],[3,"nzNotFoundContent"],[1,"back"],["nz-button","","nzType","primary",3,"click"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,"nz-empty",1),f(2,"div",2)(3,"button",3),D("click",function(){return o.goBack()}),C(4),m()()()),2&i&&(d(),h("nzNotFoundContent",o.$t("_empty")),d(3),x(o.$t("_goBack")))},dependencies:[j7,nr,mi,tr],styles:[".no-result[_ngcontent-%COMP%]{padding:80px 0;text-align:center}.no-result[_ngcontent-%COMP%] .back[_ngcontent-%COMP%]{margin-top:30px}.no-result[_ngcontent-%COMP%] .back[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:pointer}"]})}return t})();function mle(t,n){1&t&&S(0,"span",1),2&t&&h("nzType",g().iconType)}let kc=(()=>{class t{constructor(){this.formStatusChanges=new fi(1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),p6=(()=>{class t{constructor(){this.noFormStatus=new rt(!1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const gle={error:"close-circle-fill",validating:"loading",success:"check-circle-fill",warning:"exclamation-circle-fill"};let U7=(()=>{class t{constructor(e){this.cdr=e,this.status="",this.iconType=null}ngOnChanges(e){this.updateIcon()}updateIcon(){this.iconType=this.status?gle[this.status]:null,this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-form-item-feedback-icon"]],hostAttrs:[1,"ant-form-item-feedback-icon"],hostVars:8,hostBindings:function(i,o){2&i&&Q("ant-form-item-feedback-icon-error","error"===o.status)("ant-form-item-feedback-icon-warning","warning"===o.status)("ant-form-item-feedback-icon-success","success"===o.status)("ant-form-item-feedback-icon-validating","validating"===o.status)},inputs:{status:"status"},exportAs:["nzFormFeedbackIcon"],features:[ke],decls:1,vars:1,consts:[["nz-icon","",3,"nzType",4,"ngIf"],["nz-icon","",3,"nzType"]],template:function(i,o){1&i&&w(0,mle,1,1,"span",0),2&i&&h("ngIf",o.iconType)},dependencies:[Tt,cn],encapsulation:2,changeDetection:0})}return t})(),fO=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[UT,On]})}return t})(),mO=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(Te))};static#t=this.\u0275dir=de({type:t})}return t})(),Ac=(()=>{class t extends mO{static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,features:[mt]})}return t})();const Vi=new oe(""),_le={provide:Vi,useExisting:Wt(()=>W7),multi:!0};let W7=(()=>{class t extends Ac{writeValue(e){this.setProperty("checked",e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,o){1&i&&D("change",function(s){return o.onChange(s.target.checked)})("blur",function(){return o.onTouched()})},features:[et([_le]),mt]})}return t})();const ble={provide:Vi,useExisting:Wt(()=>Cr),multi:!0},gO=new oe("");let Cr=(()=>{class t extends mO{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function yle(){const t=da()?da().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(Te),v(gO,8))};static#t=this.\u0275dir=de({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,o){1&i&&D("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},features:[et([ble]),mt]})}return t})();function Ma(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function vO(t){return null!=t&&"number"==typeof t.length}const ro=new oe(""),Da=new oe(""),Cle=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class G7{static min(n){return function _O(t){return n=>{if(Ma(n.value)||Ma(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(Ma(n.value)||Ma(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return function yO(t){return Ma(t.value)?{required:!0}:null}(n)}static requiredTrue(n){return function CO(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function wO(t){return Ma(t.value)||Cle.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function zO(t){return n=>Ma(n.value)||!vO(n.value)?null:n.value.length{if(Ma(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(n)}static nullValidator(n){return null}static compose(n){return AO(n)}static composeAsync(n){return OO(n)}}function SO(t){return n=>vO(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}function f6(t){return null}function MO(t){return null!=t}function DO(t){return cu(t)?ni(t):t}function xO(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function EO(t,n){return n.map(e=>e(t))}function kO(t){return t.map(n=>function wle(t){return!t.validate}(n)?n:e=>n.validate(e))}function AO(t){if(!t)return null;const n=t.filter(MO);return 0==n.length?null:function(e){return xO(EO(e,n))}}function q7(t){return null!=t?AO(kO(t)):null}function OO(t){if(!t)return null;const n=t.filter(MO);return 0==n.length?null:function(e){return function vle(...t){const n=pg(t),{args:e,keys:i}=IM(t),o=new Ut(r=>{const{length:s}=e;if(!s)return void r.complete();const a=new Array(s);let c=s,l=s;for(let u=0;u{p||(p=!0,l--),a[u]=_},()=>c--,void 0,()=>{(!c||!p)&&(l||r.next(i?NM(i,a):a),r.complete())}))}});return n?o.pipe(fg(n)):o}(EO(e,n).map(DO)).pipe(Ie(xO))}}function K7(t){return null!=t?OO(kO(t)):null}function PO(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function IO(t){return t._rawValidators}function NO(t){return t._rawAsyncValidators}function J7(t){return t?Array.isArray(t)?t:[t]:[]}function m6(t,n){return Array.isArray(t)?t.includes(n):t===n}function VO(t,n){const e=J7(n);return J7(t).forEach(o=>{m6(e,o)||e.push(o)}),e}function FO(t,n){return J7(n).filter(e=>!m6(t,e))}class RO{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=q7(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=K7(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class So extends RO{get formDirective(){return null}get path(){return null}}class vs extends RO{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class LO{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Qi=(()=>{class t extends LO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(v(vs,2))};static#t=this.\u0275dir=de({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,o){2&i&&Q("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},features:[mt]})}return t})(),g6=(()=>{class t extends LO{constructor(e){super(e)}static#e=this.\u0275fac=function(i){return new(i||t)(v(So,10))};static#t=this.\u0275dir=de({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,o){2&i&&Q("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},features:[mt]})}return t})();const T2="VALID",_6="INVALID",V1="PENDING",M2="DISABLED";class F1{}class BO extends F1{constructor(n,e){super(),this.value=n,this.source=e}}class X7 extends F1{constructor(n,e){super(),this.pristine=n,this.source=e}}class ev extends F1{constructor(n,e){super(),this.touched=n,this.source=e}}class b6 extends F1{constructor(n,e){super(),this.status=n,this.source=e}}class Dle extends F1{constructor(n){super(),this.source=n}}class xle extends F1{constructor(n){super(),this.source=n}}function tv(t){return(y6(t)?t.validators:t)||null}function nv(t,n){return(y6(n)?n.asyncValidators:t)||null}function y6(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function jO(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new j(1e3,"");if(!i[e])throw new j(1001,"")}function $O(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new j(1002,"")})}class D2{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=null,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._events=new N,this.events=this._events.asObservable(),this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===T2}get invalid(){return this.status===_6}get pending(){return this.status==V1}get disabled(){return this.status===M2}get enabled(){return this.status!==M2}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(VO(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(VO(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(FO(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(FO(n,this._rawAsyncValidators))}hasValidator(n){return m6(this._rawValidators,n)}hasAsyncValidator(n){return m6(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){const e=!1===this.touched;this.touched=!0;const i=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsTouched({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new ev(!0,i))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(n))}markAsUntouched(n={}){const e=!0===this.touched;this.touched=!1,this._pendingTouched=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:i})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,i),e&&!1!==n.emitEvent&&this._events.next(new ev(!1,i))}markAsDirty(n={}){const e=!0===this.pristine;this.pristine=!1;const i=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsDirty({...n,sourceControl:i}),e&&!1!==n.emitEvent&&this._events.next(new X7(!1,i))}markAsPristine(n={}){const e=!1===this.pristine;this.pristine=!0,this._pendingDirty=!1;const i=n.sourceControl??this;this._forEachChild(o=>{o.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n,i),e&&!1!==n.emitEvent&&this._events.next(new X7(!0,i))}markAsPending(n={}){this.status=V1;const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new b6(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.markAsPending({...n,sourceControl:e})}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=M2,this.errors=null,this._forEachChild(o=>{o.disable({...n,onlySelf:!0})}),this._updateValue();const i=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new BO(this.value,i)),this._events.next(new b6(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(o=>o(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=T2,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e},this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n,e){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){const i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===T2||this.status===V1)&&this._runAsyncValidator(i,n.emitEvent)}const e=n.sourceControl??this;!1!==n.emitEvent&&(this._events.next(new BO(this.value,e)),this._events.next(new b6(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity({...n,sourceControl:e})}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?M2:T2}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,e){if(this.asyncValidator){this.status=V1,this._hasOwnPendingAsyncValidator={emitEvent:!1!==e};const i=DO(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(o=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(o,{emitEvent:e,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();const n=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent,this,e.shouldHaveEmitted)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n,e,i){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||i)&&this._events.next(new b6(this.status,e)),this._parent&&this._parent._updateControlsErrors(n,e,i)}_initObservables(){this.valueChanges=new H,this.statusChanges=new H}_calculateStatus(){return this._allControlsDisabled()?M2:this.errors?_6:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(V1)?V1:this._anyControlsHaveStatus(_6)?_6:T2}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n,e){const i=!this._anyControlsDirty(),o=this.pristine!==i;this.pristine=i,this._parent&&!n.onlySelf&&this._parent._updatePristine(n,e),o&&this._events.next(new X7(this.pristine,e))}_updateTouched(n={},e){this.touched=this._anyControlsTouched(),this._events.next(new ev(this.touched,e)),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,e)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){y6(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function Ele(t){return Array.isArray(t)?q7(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function kle(t){return Array.isArray(t)?K7(t):t||null}(this._rawAsyncValidators)}}class x2 extends D2{constructor(n,e,i){super(tv(e),nv(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){$O(this,0,n),Object.keys(n).forEach(i=>{jO(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const o=this.controls[i];o&&o.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,o)=>{i.reset(n?n[o]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((o,r)=>{i=e(i,o,r)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}class YO extends x2{}const Oc=new oe("CallSetDisabledState",{providedIn:"root",factory:()=>E2}),E2="always";function C6(t,n){return[...n.path,t]}function k2(t,n,e=E2){iv(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function Ole(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&UO(t,n)})}(t,n),function Ile(t,n){const e=(i,o)=>{n.valueAccessor.writeValue(i),o&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function Ple(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&UO(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function Ale(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function w6(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),S6(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function z6(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function iv(t,n){const e=IO(t);null!==n.validator?t.setValidators(PO(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=NO(t);null!==n.asyncValidator?t.setAsyncValidators(PO(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();z6(n._rawValidators,o),z6(n._rawAsyncValidators,o)}function S6(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=IO(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.validator);r.length!==o.length&&(e=!0,t.setValidators(r))}}if(null!==n.asyncValidator){const o=NO(t);if(Array.isArray(o)&&o.length>0){const r=o.filter(s=>s!==n.asyncValidator);r.length!==o.length&&(e=!0,t.setAsyncValidators(r))}}}const i=()=>{};return z6(n._rawValidators,i),z6(n._rawAsyncValidators,i),e}function UO(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function rv(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}function sv(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(r=>{r.constructor===Cr?e=r:function Fle(t){return Object.getPrototypeOf(t.constructor)===Ac}(r)?i=r:o=r}),o||i||e||null}function qO(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function KO(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}Promise.resolve();const O2=class extends D2{constructor(n=null,e,i){super(tv(e),nv(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),y6(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=KO(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){qO(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){qO(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){KO(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}};let JO=(()=>{class t extends So{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return C6(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,features:[mt]})}return t})();const jle={provide:vs,useExisting:Wt(()=>Xi)},QO=Promise.resolve();let Xi=(()=>{class t extends vs{constructor(e,i,o,r,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new O2,this._registered=!1,this.name="",this.update=new H,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=sv(0,r)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){const i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),rv(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){k2(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(e){QO.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){const i=e.isDisabled.currentValue,o=0!==i&&O(i);QO.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?C6(e,this._parent):[e]}static#e=this.\u0275fac=function(i){return new(i||t)(v(So,9),v(ro,10),v(Da,10),v(Vi,10),v(Ue,8),v(Oc,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[et([jle]),mt,ke]})}return t})(),T6=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return t})();const $le={provide:Vi,useExisting:Wt(()=>cv),multi:!0};let cv=(()=>{class t extends Ac{writeValue(e){this.setProperty("value",e??"")}registerOnChange(e){this.onChange=i=>{e(""==i?null:parseFloat(i))}}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,o){1&i&&D("input",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},features:[et([$le]),mt]})}return t})();const lv=new oe(""),Gle={provide:vs,useExisting:Wt(()=>dv)};let dv=(()=>{class t extends vs{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,s){super(),this._ngModelWarningConfig=r,this.callSetDisabledState=s,this.update=new H,this._ngModelWarningSent=!1,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=sv(0,o)}ngOnChanges(e){if(this._isControlChanged(e)){const i=e.form.previousValue;i&&w6(i,this,!1),k2(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}rv(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&w6(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static#t=this.\u0275fac=function(i){return new(i||t)(v(ro,10),v(Da,10),v(Vi,10),v(lv,8),v(Oc,8))};static#n=this.\u0275dir=de({type:t,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[et([Gle]),mt,ke]})}return t})();const qle={provide:So,useExisting:Wt(()=>R1)};let R1=(()=>{class t extends So{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new H,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(S6(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return k2(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){w6(e.control||null,e,!1),function Rle(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,function GO(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new Dle(this.control)),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1,this.form._events.next(new xle(this.form))}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(w6(i||null,e),(t=>t instanceof O2)(o)&&(k2(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);(function WO(t,n){iv(t,n)})(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function Nle(t,n){return S6(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){iv(this.form,this),this._oldForm&&S6(this._oldForm,this)}_checkFormPresent(){}static#e=this.\u0275fac=function(i){return new(i||t)(v(ro,10),v(Da,10),v(Oc,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","formGroup",""]],hostBindings:function(i,o){1&i&&D("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[et([qle]),mt,ke]})}return t})();const Kle={provide:So,useExisting:Wt(()=>M6)};let M6=(()=>{class t extends JO{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){tP(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(v(So,13),v(ro,10),v(Da,10))};static#t=this.\u0275dir=de({type:t,selectors:[["","formGroupName",""]],inputs:{name:[0,"formGroupName","name"]},features:[et([Kle]),mt]})}return t})();const Jle={provide:So,useExisting:Wt(()=>D6)};let D6=(()=>{class t extends So{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return C6(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){tP(this._parent)}static#e=this.\u0275fac=function(i){return new(i||t)(v(So,13),v(ro,10),v(Da,10))};static#t=this.\u0275dir=de({type:t,selectors:[["","formArrayName",""]],inputs:{name:[0,"formArrayName","name"]},features:[et([Jle]),mt]})}return t})();function tP(t){return!(t instanceof M6||t instanceof R1||t instanceof D6)}const Zle={provide:vs,useExisting:Wt(()=>L1)};let L1=(()=>{class t extends vs{set isDisabled(e){}static#e=this._ngModelWarningSentOnce=!1;constructor(e,i,o,r,s){super(),this._ngModelWarningConfig=s,this._added=!1,this.name=null,this.update=new H,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=sv(0,r)}ngOnChanges(e){this._added||this._setUpControl(),rv(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return C6(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static#t=this.\u0275fac=function(i){return new(i||t)(v(So,13),v(ro,10),v(Da,10),v(Vi,10),v(lv,8))};static#n=this.\u0275dir=de({type:t,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},features:[et([Zle]),mt,ke]})}return t})();let Pc=(()=>{class t{constructor(){this._validator=f6}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):f6,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,features:[ke]})}return t})();const d1e={provide:ro,useExisting:Wt(()=>P2),multi:!0};let P2=(()=>{class t extends Pc{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>function oP(t){return"number"==typeof t?t:parseInt(t,10)}(e),this.createValidator=e=>SO(e)}static#e=this.\u0275fac=(()=>{let e;return function(o){return(e||(e=zi(t)))(o||t)}})();static#t=this.\u0275dir=de({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,o){2&i&&Pt("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[et([d1e]),mt]})}return t})(),hP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();class pP extends D2{constructor(n,e,i){super(tv(e),nv(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){this.controls.push(n),this._registerControl(n),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(n,e,i={}){this.controls.splice(n,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(n,e={}){let i=this._adjustIndex(n);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(n,e,i={}){let o=this._adjustIndex(n);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(n,e={}){$O(this,0,n),n.forEach((i,o)=>{jO(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(n.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n=[],e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(n=>n.getRawValue())}clear(n={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:n.emitEvent}))}_adjustIndex(n){return n<0?n+this.length:n}_syncPendingControls(){let n=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){this.controls.forEach((e,i)=>{n(e,i)})}_updateValue(){this.value=this.controls.filter(n=>n.enabled||this.disabled).map(n=>n.value)}_anyControls(n){return this.controls.some(e=>e.enabled&&n(e))}_setUpControls(){this._forEachChild(n=>this._registerControl(n))}_allControlsDisabled(){for(const n of this.controls)if(n.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(n){n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)}_find(n){return this.at(n)??null}}function fP(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let fv=(()=>{class t{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new t;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let r={};return fP(i)?r=i:null!==i&&(r.validators=i.validator,r.asyncValidators=i.asyncValidator),new x2(o,r)}record(e,i=null){const o=this._reduceControls(e);return new YO(o,i)}control(e,i,o){let r={};return this.useNonNullable?(fP(i)?r=i:(r.validators=i,r.asyncValidators=o),new O2(e,{...r,nonNullable:!0})):new O2(e,i,o)}array(e,i,o){const r=e.map(s=>this._createControl(s));return new pP(r,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof O2||e instanceof D2?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ic=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:Oc,useValue:e.callSetDisabledState??E2}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[hP]})}return t})(),h1e=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:lv,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:Oc,useValue:e.callSetDisabledState??E2}]}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[hP]})}return t})();const p1e=["nz-input-group-slot",""],mP=["*"];function f1e(t,n){1&t&&S(0,"span",0),2&t&&h("nzType",g().icon)}function m1e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.template)}}function g1e(t,n){if(1&t&&S(0,"span",3),2&t){const e=g(2);h("icon",e.nzAddOnBeforeIcon)("template",e.nzAddOnBefore)}}function v1e(t,n){}function _1e(t,n){if(1&t&&(f(0,"span",6),w(1,v1e,0,0,"ng-template",5),m()),2&t){const e=g(2),i=He(3);Q("ant-input-affix-wrapper-disabled",e.disabled)("ant-input-affix-wrapper-sm",e.isSmall)("ant-input-affix-wrapper-lg",e.isLarge)("ant-input-affix-wrapper-focused",e.focused),h("ngClass",e.affixInGroupStatusCls),d(),h("ngTemplateOutlet",i)}}function b1e(t,n){}function y1e(t,n){1&t&&w(0,b1e,0,0,"ng-template",5),2&t&&(g(2),h("ngTemplateOutlet",He(5)))}function C1e(t,n){if(1&t&&S(0,"span",3),2&t){const e=g(2);h("icon",e.nzAddOnAfterIcon)("template",e.nzAddOnAfter)}}function w1e(t,n){if(1&t&&(f(0,"span",2),w(1,g1e,1,2,"span",3)(2,_1e,2,10,"span",4)(3,y1e,1,1,null,5)(4,C1e,1,2,"span",3),m()),2&t){const e=g();d(),he(e.nzAddOnBefore||e.nzAddOnBeforeIcon?1:-1),d(),he(e.isAffix||e.hasFeedback?2:3),d(2),he(e.nzAddOnAfter||e.nzAddOnAfterIcon?4:-1)}}function z1e(t,n){}function S1e(t,n){1&t&&w(0,z1e,0,0,"ng-template",5),2&t&&(g(2),h("ngTemplateOutlet",He(3)))}function T1e(t,n){}function M1e(t,n){1&t&&w(0,T1e,0,0,"ng-template",5),2&t&&(g(2),h("ngTemplateOutlet",He(5)))}function D1e(t,n){1&t&&w(0,S1e,1,1,null,5)(1,M1e,1,1,null,5),2&t&&he(g().isAffix?0:1)}function x1e(t,n){if(1&t&&S(0,"span",7),2&t){const e=g(2);h("icon",e.nzPrefixIcon)("template",e.nzPrefix)}}function E1e(t,n){}function k1e(t,n){1&t&&S(0,"nz-form-item-feedback-icon",9),2&t&&h("status",g(3).status)}function A1e(t,n){if(1&t&&(f(0,"span",8),w(1,k1e,1,1,"nz-form-item-feedback-icon",9),m()),2&t){const e=g(2);h("icon",e.nzSuffixIcon)("template",e.nzSuffix),d(),he(e.isFeedback?1:-1)}}function O1e(t,n){if(1&t&&w(0,x1e,1,2,"span",7)(1,E1e,0,0,"ng-template",5)(2,A1e,2,3,"span",8),2&t){const e=g(),i=He(5);he(e.nzPrefix||e.nzPrefixIcon?0:-1),d(),h("ngTemplateOutlet",i),d(),he(e.nzSuffix||e.nzSuffixIcon||e.isFeedback?2:-1)}}function P1e(t,n){if(1&t&&(f(0,"span",10),S(1,"nz-form-item-feedback-icon",9),m()),2&t){const e=g(2);d(),h("status",e.status)}}function I1e(t,n){if(1&t&&(bt(0),w(1,P1e,2,1,"span",10)),2&t){const e=g();d(),he(e.isAddOn||e.isAffix||!e.isFeedback?-1:1)}}let gP=(()=>{class t{constructor(){this.icon=null,this.type=null,this.template=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-input-group-slot",""]],hostVars:6,hostBindings:function(i,o){2&i&&Q("ant-input-group-addon","addon"===o.type)("ant-input-prefix","prefix"===o.type)("ant-input-suffix","suffix"===o.type)},inputs:{icon:"icon",type:"type",template:"template"},standalone:!0,features:[me],attrs:p1e,ngContentSelectors:mP,decls:3,vars:2,consts:[["nz-icon","",3,"nzType"],[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&(Et(),w(0,f1e,1,1,"span",0)(1,m1e,2,1,"ng-container",1),bt(2)),2&i&&(he(o.icon?0:-1),d(),h("nzStringTemplateOutlet",o.template))},dependencies:[On,cn,Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),Ws=(()=>{class t{get disabled(){return this.ngControl&&null!==this.ngControl.disabled?this.ngControl.disabled:this._disabled}set disabled(e){this._disabled=e}constructor(e,i,o,r,s,a,c){this.ngControl=e,this.renderer=i,this.elementRef=o,this.hostView=r,this.directionality=s,this.nzFormStatusService=a,this.nzFormNoStatusService=c,this.nzBorderless=!1,this.nzSize="default",this.nzStepperless=!0,this.nzStatus="",this._disabled=!1,this.disabled$=new N,this.dir="ltr",this.prefixCls="ant-input",this.status="",this.statusCls={},this.hasFeedback=!1,this.feedbackRef=null,this.components=[],this.destroy$=new N}ngOnInit(){this.nzFormStatusService?.formStatusChanges.pipe(qi((e,i)=>e.status===i.status&&e.hasFeedback===i.hasFeedback),I(this.destroy$)).subscribe(({status:e,hasFeedback:i})=>{this.setStatusStyles(e,i)}),this.ngControl&&this.ngControl.statusChanges?.pipe(yt(()=>null!==this.ngControl.disabled),I(this.destroy$)).subscribe(()=>{this.disabled$.next(this.ngControl.disabled)}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnChanges(e){const{disabled:i,nzStatus:o}=e;i&&this.disabled$.next(this.disabled),o&&this.setStatusStyles(this.nzStatus,this.hasFeedback)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setStatusStyles(e,i){this.status=e,this.hasFeedback=i,this.renderFeedbackIcon(),this.statusCls=Ku(this.prefixCls,e,i),Object.keys(this.statusCls).forEach(o=>{this.statusCls[o]?this.renderer.addClass(this.elementRef.nativeElement,o):this.renderer.removeClass(this.elementRef.nativeElement,o)})}renderFeedbackIcon(){if(!this.status||!this.hasFeedback||this.nzFormNoStatusService)return this.hostView.clear(),void(this.feedbackRef=null);this.feedbackRef=this.feedbackRef||this.hostView.createComponent(U7),this.feedbackRef.location.nativeElement.classList.add("ant-input-suffix"),this.feedbackRef.instance.status=this.status,this.feedbackRef.instance.updateIcon()}static#e=this.\u0275fac=function(i){return new(i||t)(v(vs,10),v($t),v(Te),v(Gn),v(wt,8),v(kc,8),v(p6,8))};static#t=this.\u0275dir=de({type:t,selectors:[["input","nz-input",""],["textarea","nz-input",""]],hostAttrs:[1,"ant-input"],hostVars:13,hostBindings:function(i,o){2&i&&(Pt("disabled",o.disabled||null),Q("ant-input-disabled",o.disabled)("ant-input-borderless",o.nzBorderless)("ant-input-lg","large"===o.nzSize)("ant-input-sm","small"===o.nzSize)("ant-input-rtl","rtl"===o.dir)("ant-input-stepperless",o.nzStepperless))},inputs:{nzBorderless:[2,"nzBorderless","nzBorderless",O],nzSize:"nzSize",nzStepperless:[2,"nzStepperless","nzStepperless",O],nzStatus:"nzStatus",disabled:[2,"disabled","disabled",O]},exportAs:["nzInput"],standalone:!0,features:[je,ke]})}return t})(),vP=(()=>{class t{constructor(e){this.elementRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["nz-input-group","nzSuffix",""],["nz-input-group","nzPrefix",""]],standalone:!0})}return t})(),x6=(()=>{class t{constructor(e,i,o,r,s,a,c){this.focusMonitor=e,this.elementRef=i,this.renderer=o,this.cdr=r,this.directionality=s,this.nzFormStatusService=a,this.nzFormNoStatusService=c,this.nzAddOnBeforeIcon=null,this.nzAddOnAfterIcon=null,this.nzPrefixIcon=null,this.nzSuffixIcon=null,this.nzStatus="",this.nzSize="default",this.nzSearch=!1,this.nzCompact=!1,this.isLarge=!1,this.isSmall=!1,this.isAffix=!1,this.isAddOn=!1,this.isFeedback=!1,this.focused=!1,this.disabled=!1,this.dir="ltr",this.prefixCls="ant-input",this.affixStatusCls={},this.groupStatusCls={},this.affixInGroupStatusCls={},this.status="",this.hasFeedback=!1,this.destroy$=new N}updateChildrenInputSize(){this.listOfNzInputDirective&&this.listOfNzInputDirective.forEach(e=>e.nzSize=this.nzSize)}ngOnInit(){this.nzFormStatusService?.formStatusChanges.pipe(qi((e,i)=>e.status===i.status&&e.hasFeedback===i.hasFeedback),I(this.destroy$)).subscribe(({status:e,hasFeedback:i})=>{this.setStatusStyles(e,i)}),this.focusMonitor.monitor(this.elementRef,!0).pipe(I(this.destroy$)).subscribe(e=>{this.focused=!!e,this.cdr.markForCheck()}),this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngAfterContentInit(){this.updateChildrenInputSize();const e=this.listOfNzInputDirective.changes.pipe(gn(this.listOfNzInputDirective));e.pipe(mn(i=>Pn(e,...i.map(o=>o.disabled$))),$n(()=>e),Ie(i=>i.some(o=>o.disabled)),I(this.destroy$)).subscribe(i=>{this.disabled=i,this.cdr.markForCheck()})}ngOnChanges(e){const{nzSize:i,nzSuffix:o,nzPrefix:r,nzPrefixIcon:s,nzSuffixIcon:a,nzAddOnAfter:c,nzAddOnBefore:l,nzAddOnAfterIcon:u,nzAddOnBeforeIcon:p,nzStatus:_}=e;i&&(this.updateChildrenInputSize(),this.isLarge="large"===this.nzSize,this.isSmall="small"===this.nzSize),(o||r||s||a)&&(this.isAffix=!!(this.nzSuffix||this.nzPrefix||this.nzPrefixIcon||this.nzSuffixIcon)),(c||l||u||p)&&(this.isAddOn=!!(this.nzAddOnAfter||this.nzAddOnBefore||this.nzAddOnAfterIcon||this.nzAddOnBeforeIcon),this.nzFormNoStatusService?.noFormStatus?.next(this.isAddOn)),_&&this.setStatusStyles(this.nzStatus,this.hasFeedback)}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef),this.destroy$.next(),this.destroy$.complete()}setStatusStyles(e,i){this.status=e,this.hasFeedback=i,this.isFeedback=!!e&&i,this.isAffix=!!(this.nzSuffix||this.nzPrefix||this.nzPrefixIcon||this.nzSuffixIcon)||!this.isAddOn&&i,this.affixInGroupStatusCls=this.isAffix||this.isFeedback?this.affixStatusCls=Ku(`${this.prefixCls}-affix-wrapper`,e,i):{},this.cdr.markForCheck(),this.affixStatusCls=Ku(`${this.prefixCls}-affix-wrapper`,this.isAddOn?"":e,!this.isAddOn&&i),this.groupStatusCls=Ku(`${this.prefixCls}-group-wrapper`,this.isAddOn?e:"",!!this.isAddOn&&i);const r={...this.affixStatusCls,...this.groupStatusCls};Object.keys(r).forEach(s=>{r[s]?this.renderer.addClass(this.elementRef.nativeElement,s):this.renderer.removeClass(this.elementRef.nativeElement,s)})}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ca),v(Te),v($t),v(Ue),v(wt,8),v(kc,8),v(p6,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-input-group"]],contentQueries:function(i,o,r){if(1&i&&fn(r,Ws,4),2&i){let s;Ae(s=Oe())&&(o.listOfNzInputDirective=s)}},hostVars:40,hostBindings:function(i,o){2&i&&Q("ant-input-group-compact",o.nzCompact)("ant-input-search-enter-button",o.nzSearch)("ant-input-search",o.nzSearch)("ant-input-search-rtl","rtl"===o.dir)("ant-input-search-sm",o.nzSearch&&o.isSmall)("ant-input-search-large",o.nzSearch&&o.isLarge)("ant-input-group-wrapper",o.isAddOn)("ant-input-group-wrapper-rtl","rtl"===o.dir)("ant-input-group-wrapper-lg",o.isAddOn&&o.isLarge)("ant-input-group-wrapper-sm",o.isAddOn&&o.isSmall)("ant-input-affix-wrapper",o.isAffix&&!o.isAddOn)("ant-input-affix-wrapper-rtl","rtl"===o.dir)("ant-input-affix-wrapper-focused",o.isAffix&&o.focused)("ant-input-affix-wrapper-disabled",o.isAffix&&o.disabled)("ant-input-affix-wrapper-lg",o.isAffix&&!o.isAddOn&&o.isLarge)("ant-input-affix-wrapper-sm",o.isAffix&&!o.isAddOn&&o.isSmall)("ant-input-group",!o.isAffix&&!o.isAddOn)("ant-input-group-rtl","rtl"===o.dir)("ant-input-group-lg",!o.isAffix&&!o.isAddOn&&o.isLarge)("ant-input-group-sm",!o.isAffix&&!o.isAddOn&&o.isSmall)},inputs:{nzAddOnBeforeIcon:"nzAddOnBeforeIcon",nzAddOnAfterIcon:"nzAddOnAfterIcon",nzPrefixIcon:"nzPrefixIcon",nzSuffixIcon:"nzSuffixIcon",nzAddOnBefore:"nzAddOnBefore",nzAddOnAfter:"nzAddOnAfter",nzPrefix:"nzPrefix",nzStatus:"nzStatus",nzSuffix:"nzSuffix",nzSize:"nzSize",nzSearch:[2,"nzSearch","nzSearch",O],nzCompact:[2,"nzCompact","nzCompact",O]},exportAs:["nzInputGroup"],standalone:!0,features:[et([p6]),je,ke,me],ngContentSelectors:mP,decls:6,vars:1,consts:[["affixTemplate",""],["contentTemplate",""],[1,"ant-input-wrapper","ant-input-group"],["nz-input-group-slot","","type","addon",3,"icon","template"],[1,"ant-input-affix-wrapper",3,"ant-input-affix-wrapper-disabled","ant-input-affix-wrapper-sm","ant-input-affix-wrapper-lg","ant-input-affix-wrapper-focused","ngClass"],[3,"ngTemplateOutlet"],[1,"ant-input-affix-wrapper",3,"ngClass"],["nz-input-group-slot","","type","prefix",3,"icon","template"],["nz-input-group-slot","","type","suffix",3,"icon","template"],[3,"status"],["nz-input-group-slot","","type","suffix"]],template:function(i,o){1&i&&(Et(),w(0,w1e,5,3,"span",2)(1,D1e,2,1)(2,O1e,3,3,"ng-template",null,0,ot)(4,I1e,2,1,"ng-template",null,1,ot)),2&i&&he(o.isAddOn?0:1)},dependencies:[gP,Zo,Vn,fO,U7],encapsulation:2,changeDetection:0})}return t})(),_P=(()=>{class t{set nzAutosize(e){var o;"string"==typeof e||!0===e?this.autosize=!0:"string"!=typeof(o=e)&&"boolean"!=typeof o&&(o.maxRows||o.minRows)&&(this.autosize=!0,this.minRows=e.minRows,this.maxRows=e.maxRows,this.maxHeight=this.setMaxHeight(),this.minHeight=this.setMinHeight())}resizeToFitContent(e=!1){if(this.cacheTextareaLineHeight(),!this.cachedLineHeight)return;const i=this.el,o=i.value;if(!e&&this.minRows===this.previousMinRows&&o===this.previousValue)return;const r=i.placeholder;i.classList.add("nz-textarea-autosize-measuring"),i.placeholder="";let s=Math.round((i.scrollHeight-this.inputGap)/this.cachedLineHeight)*this.cachedLineHeight+this.inputGap;null!==this.maxHeight&&s>this.maxHeight&&(s=this.maxHeight),null!==this.minHeight&&srequestAnimationFrame(()=>{const{selectionStart:a,selectionEnd:c}=i;!this.destroy$.isStopped&&document.activeElement===i&&i.setSelectionRange(a,c)})),this.previousValue=o,this.previousMinRows=this.minRows}cacheTextareaLineHeight(){if(this.cachedLineHeight>=0||!this.el.parentNode)return;const e=this.el.cloneNode(!1);e.rows=1,e.style.position="absolute",e.style.visibility="hidden",e.style.border="none",e.style.padding="0",e.style.height="",e.style.minHeight="",e.style.maxHeight="",e.style.overflow="hidden",this.el.parentNode.appendChild(e),this.cachedLineHeight=e.clientHeight-this.inputGap,this.el.parentNode.removeChild(e),this.maxHeight=this.setMaxHeight(),this.minHeight=this.setMinHeight()}setMinHeight(){const e=this.minRows&&this.cachedLineHeight?this.minRows*this.cachedLineHeight+this.inputGap:null;return null!==e&&(this.el.style.minHeight=`${e}px`),e}setMaxHeight(){const e=this.maxRows&&this.cachedLineHeight?this.maxRows*this.cachedLineHeight+this.inputGap:null;return null!==e&&(this.el.style.maxHeight=`${e}px`),e}noopInputHandler(){}constructor(e,i,o,r){this.elementRef=e,this.ngZone=i,this.platform=o,this.resizeService=r,this.autosize=!1,this.el=this.elementRef.nativeElement,this.maxHeight=null,this.minHeight=null,this.destroy$=new N,this.inputGap=10}ngAfterViewInit(){this.autosize&&this.platform.isBrowser&&(this.resizeToFitContent(),this.resizeService.subscribe().pipe(I(this.destroy$)).subscribe(()=>this.resizeToFitContent(!0)))}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}ngDoCheck(){this.autosize&&this.platform.isBrowser&&this.resizeToFitContent()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(De),v(qn),v(R5))};static#t=this.\u0275dir=de({type:t,selectors:[["textarea","nzAutosize",""]],hostAttrs:["rows","1"],hostBindings:function(i,o){1&i&&D("input",function(){return o.noopInputHandler()})},inputs:{nzAutosize:"nzAutosize"},exportAs:["nzAutosize"],standalone:!0})}return t})(),N1e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[x6,gP]})}return t})();const bP=["*"];function F1e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.nzLabel)}}function R1e(t,n){}function L1e(t,n){1&t&&w(0,R1e,0,0,"ng-template",4),2&t&&h("ngTemplateOutlet",g().template)}function H1e(t,n){1&t&&C(0),2&t&&x(g().label)}function B1e(t,n){1&t&&S(0,"span",7)}function j1e(t,n){if(1&t&&(f(0,"div",5),w(1,B1e,1,0,"span",6),m()),2&t){const e=g();d(),h("ngIf",!e.icon)("ngIfElse",e.icon)}}function $1e(t,n){if(1&t&&(f(0,"div",4),S(1,"nz-embed-empty",5),m()),2&t){const e=g();d(),h("specificContent",e.notFoundContent)}}function Y1e(t,n){1&t&&S(0,"nz-option-item-group",9),2&t&&h("nzLabel",g().$implicit.groupLabel)}function U1e(t,n){if(1&t){const e=U();f(0,"nz-option-item",10),D("itemHover",function(o){return T(e),M(g(2).onItemHover(o))})("itemClick",function(o){return T(e),M(g(2).onItemClick(o))}),m()}if(2&t){const e=g().$implicit,i=g();h("icon",i.menuItemSelectedIcon)("customContent",e.nzCustomContent)("template",e.template)("grouped",!!e.groupLabel)("disabled",e.nzDisabled||i.isMaxLimitReached&&!i.listOfSelectedValue.includes(e.nzValue))("showState","tags"===i.mode||"multiple"===i.mode)("title",e.nzTitle)("label",e.nzLabel)("compareWith",i.compareWith)("activatedValue",i.activatedValue)("listOfSelectedValue",i.listOfSelectedValue)("value",e.nzValue)}}function W1e(t,n){1&t&&($e(0,6),w(1,Y1e,1,1,"nz-option-item-group",7)(2,U1e,1,12,"nz-option-item",8),Ye()),2&t&&(h("ngSwitch",n.$implicit.type),d(),h("ngSwitchCase","group"),d(),h("ngSwitchCase","item"))}function G1e(t,n){}function q1e(t,n){1&t&&bt(0)}function K1e(t,n){if(1&t&&($e(0),f(1,"span"),C(2),m(),Ye()),2&t){const e=g();d(2),ca("",e.listOfValue.length," / ",e.nzMaxMultipleCount,"")}}function J1e(t,n){1&t&&S(0,"span",5)}function Z1e(t,n){1&t&&S(0,"span",9)}function Q1e(t,n){1&t&&S(0,"span",10)}function X1e(t,n){if(1&t&&($e(0),w(1,Z1e,1,0,"span",7)(2,Q1e,1,0,"span",8),Ye()),2&t){const e=g(2);d(),h("ngIf",!e.search),d(),h("ngIf",e.search)}}function ede(t,n){1&t&&S(0,"span",12),2&t&&h("nzType",g().$implicit)}function tde(t,n){if(1&t&&($e(0),w(1,ede,1,1,"span",11),Ye()),2&t){const e=n.$implicit;d(),h("ngIf",e)}}function nde(t,n){1&t&&w(0,tde,2,1,"ng-container",4),2&t&&h("nzStringTemplateOutlet",g(2).suffixIcon)}function ide(t,n){if(1&t&&w(0,X1e,3,2,"ng-container",6)(1,nde,1,1,"ng-template",null,1,ot),2&t){const e=He(2),i=g();h("ngIf",i.showArrow&&!i.suffixIcon)("ngIfElse",e)}}function ode(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.feedbackIcon)}}function rde(t,n){1&t&&S(0,"span",1)}const sde=t=>({$implicit:t});function ade(t,n){if(1&t&&(f(0,"div",4),C(1),m()),2&t){const e=g(2);d(),x(e.label)}}function cde(t,n){1&t&&C(0),2&t&&x(g(2).label)}function lde(t,n){if(1&t&&($e(0),w(1,ade,2,1,"div",3)(2,cde,1,1,"ng-template",null,0,ot),Ye()),2&t){const e=He(3),i=g();d(),h("ngIf",i.deletable)("ngIfElse",e)}}function dde(t,n){1&t&&S(0,"span",7)}function ude(t,n){if(1&t){const e=U();f(0,"span",5),D("click",function(o){return T(e),M(g().onDelete(o))}),w(1,dde,1,0,"span",6),m()}if(2&t){const e=g();d(),h("ngIf",!e.removeIcon)("ngIfElse",e.removeIcon)}}function hde(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),Ce(" ",e.placeholder," ")}}const pde=["inputElement"],fde=["mirrorElement"];function mde(t,n){1&t&&S(0,"span",4,1)}function gde(t,n){if(1&t&&S(0,"nz-select-item",6),2&t){const e=g(2);h("deletable",!1)("disabled",!1)("removeIcon",e.removeIcon)("label",e.listOfTopItem[0].nzLabel)("contentTemplateOutlet",e.customTemplate)("contentTemplateOutletContext",e.listOfTopItem[0])}}function vde(t,n){if(1&t){const e=U();$e(0),f(1,"nz-select-search",4),D("isComposingChange",function(o){return T(e),M(g().isComposingChange(o))})("valueChange",function(o){return T(e),M(g().onInputValueChange(o))}),m(),w(2,gde,1,6,"nz-select-item",5),Ye()}if(2&t){const e=g();d(),h("nzId",e.nzId)("disabled",e.disabled)("value",e.inputValue)("showInput",e.showSearch)("mirrorSync",!1)("autofocus",e.autofocus)("focusTrigger",e.open),d(),h("ngIf",e.isShowSingleLabel)}}function _de(t,n){if(1&t){const e=U();f(0,"nz-select-item",9),D("delete",function(){const o=T(e).$implicit;return M(g(2).onDeleteItem(o.contentTemplateOutletContext))}),m()}if(2&t){const e=n.$implicit,i=g(2);h("removeIcon",i.removeIcon)("label",e.nzLabel)("disabled",e.nzDisabled||i.disabled)("contentTemplateOutlet",e.contentTemplateOutlet)("deletable",!0)("contentTemplateOutletContext",e.contentTemplateOutletContext)}}function bde(t,n){if(1&t){const e=U();$e(0),w(1,_de,1,6,"nz-select-item",7),f(2,"nz-select-search",8),D("isComposingChange",function(o){return T(e),M(g().isComposingChange(o))})("valueChange",function(o){return T(e),M(g().onInputValueChange(o))}),m(),Ye()}if(2&t){const e=g();d(),h("ngForOf",e.listOfSlicedItem)("ngForTrackBy",e.trackValue),d(),h("nzId",e.nzId)("disabled",e.disabled)("value",e.inputValue)("autofocus",e.autofocus)("showInput",!0)("mirrorSync",!0)("focusTrigger",e.open)}}function yde(t,n){1&t&&S(0,"nz-select-placeholder",10),2&t&&h("placeholder",g().placeHolder)}function Cde(t,n){1&t&&S(0,"nz-form-item-feedback-icon",8),2&t&&h("status",g(3).status)}function wde(t,n){if(1&t&&w(0,Cde,1,1,"nz-form-item-feedback-icon",7),2&t){const e=g(2);h("ngIf",e.hasFeedback&&!!e.status)}}function zde(t,n){if(1&t&&(f(0,"nz-select-arrow",6),w(1,wde,1,1,"ng-template",null,1,ot),m()),2&t){const e=He(2),i=g();h("showArrow",i.nzShowArrow)("loading",i.nzLoading)("search",i.nzOpen&&i.nzShowSearch)("suffixIcon",i.nzSuffixIcon)("feedbackIcon",e)("nzMaxMultipleCount",i.nzMaxMultipleCount)("listOfValue",i.listOfValue)("isMaxTagCountSet",i.isMaxTagCountSet)}}function Sde(t,n){if(1&t){const e=U();f(0,"nz-select-clear",9),D("clear",function(){return T(e),M(g().onClearSelection())}),m()}2&t&&h("clearIcon",g().nzClearIcon)}function Tde(t,n){if(1&t){const e=U();f(0,"nz-option-container",10),D("keydown",function(o){return T(e),M(g().onKeyDown(o))})("itemClick",function(o){return T(e),M(g().onItemClick(o))})("scrollToBottom",function(){return T(e),M(g().nzScrollToBottom.emit())}),m()}if(2&t){const e=g();Q("ant-select-dropdown-placement-bottomLeft","bottomLeft"===e.dropDownPosition)("ant-select-dropdown-placement-topLeft","topLeft"===e.dropDownPosition)("ant-select-dropdown-placement-bottomRight","bottomRight"===e.dropDownPosition)("ant-select-dropdown-placement-topRight","topRight"===e.dropDownPosition),h("ngStyle",e.nzDropdownStyle)("itemSize",e.nzOptionHeightPx)("maxItemLength",e.nzOptionOverflowSize)("matchWidth",e.nzDropdownMatchSelectWidth)("@slideMotion","enter")("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("listOfContainerItem",e.listOfContainerItem)("menuItemSelectedIcon",e.nzMenuItemSelectedIcon)("notFoundContent",e.nzNotFoundContent)("activatedValue",e.activatedValue)("listOfSelectedValue",e.listOfValue)("dropdownRender",e.nzDropdownRender)("compareWith",e.compareWith)("mode",e.nzMode)("isMaxLimitReached",e.isMaxLimitReached)}}let mv=(()=>{class t{constructor(){this.nzLabel=null,this.changes=new N}ngOnChanges(){this.changes.next()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option-group"]],inputs:{nzLabel:"nzLabel"},exportAs:["nzOptionGroup"],standalone:!0,features:[ke,me],ngContentSelectors:bP,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),yP=(()=>{class t{constructor(){this.nzLabel=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option-item-group"]],hostAttrs:[1,"ant-select-item","ant-select-item-group"],inputs:{nzLabel:"nzLabel"},standalone:!0,features:[me],decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&w(0,F1e,2,1,"ng-container",0),2&i&&h("nzStringTemplateOutlet",o.nzLabel)},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),CP=(()=>{class t{constructor(e,i,o){this.elementRef=e,this.ngZone=i,this.destroy$=o,this.selected=!1,this.activated=!1,this.grouped=!1,this.customContent=!1,this.template=null,this.disabled=!1,this.showState=!1,this.label=null,this.value=null,this.activatedValue=null,this.listOfSelectedValue=[],this.icon=null,this.itemClick=new H,this.itemHover=new H}ngOnChanges(e){const{value:i,activatedValue:o,listOfSelectedValue:r}=e;(i||r)&&(this.selected=this.listOfSelectedValue.some(s=>this.compareWith(s,this.value))),(i||o)&&(this.activated=this.compareWith(this.activatedValue,this.value))}ngOnInit(){this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click").pipe(I(this.destroy$)).subscribe(()=>{this.disabled||this.ngZone.run(()=>this.itemClick.emit(this.value))}),nn(this.elementRef.nativeElement,"mouseenter").pipe(I(this.destroy$)).subscribe(()=>{this.disabled||this.ngZone.run(()=>this.itemHover.emit(this.value))})})}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(De),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option-item"]],hostAttrs:[1,"ant-select-item","ant-select-item-option"],hostVars:9,hostBindings:function(i,o){2&i&&(Pt("title",o.title),Q("ant-select-item-option-grouped",o.grouped)("ant-select-item-option-selected",o.selected&&!o.disabled)("ant-select-item-option-disabled",o.disabled)("ant-select-item-option-active",o.activated&&!o.disabled))},inputs:{grouped:"grouped",customContent:"customContent",template:"template",disabled:"disabled",showState:"showState",title:"title",label:"label",value:"value",activatedValue:"activatedValue",listOfSelectedValue:"listOfSelectedValue",icon:"icon",compareWith:"compareWith"},outputs:{itemClick:"itemClick",itemHover:"itemHover"},standalone:!0,features:[et([No]),ke,me],decls:5,vars:3,consts:[["noCustomContent",""],[1,"ant-select-item-option-content"],[3,"ngIf","ngIfElse"],["class","ant-select-item-option-state","style","user-select: none","unselectable","on",4,"ngIf"],[3,"ngTemplateOutlet"],["unselectable","on",1,"ant-select-item-option-state",2,"user-select","none"],["nz-icon","","nzType","check","class","ant-select-selected-icon",4,"ngIf","ngIfElse"],["nz-icon","","nzType","check",1,"ant-select-selected-icon"]],template:function(i,o){if(1&i&&(f(0,"div",1),w(1,L1e,1,1,"ng-template",2)(2,H1e,1,1,"ng-template",null,0,ot),m(),w(4,j1e,2,2,"div",3)),2&i){const r=He(3);d(),h("ngIf",o.customContent)("ngIfElse",r),d(3),h("ngIf",o.showState&&o.selected)}},dependencies:[Tt,Vn,On,cn],encapsulation:2,changeDetection:0})}return t})(),wP=(()=>{class t{constructor(){this.notFoundContent=void 0,this.menuItemSelectedIcon=null,this.dropdownRender=null,this.activatedValue=null,this.listOfSelectedValue=[],this.mode="default",this.matchWidth=!0,this.itemSize=32,this.maxItemLength=8,this.isMaxLimitReached=!1,this.listOfContainerItem=[],this.itemClick=new H,this.scrollToBottom=new H,this.scrolledIndex=0,this.ngZone=W(De),this.platformId=W(Ir)}onItemClick(e){this.itemClick.emit(e)}onItemHover(e){this.activatedValue=e}trackValue(e,i){return i.key}onScrolledIndexChange(e){this.scrolledIndex=e,e===this.listOfContainerItem.length-this.maxItemLength-1&&this.scrollToBottom.emit()}scrollToActivatedValue(){const e=this.listOfContainerItem.findIndex(i=>this.compareWith(i.key,this.activatedValue));(e=this.scrolledIndex+this.maxItemLength)&&this.cdkVirtualScrollViewport.scrollToIndex(e||0)}ngOnChanges(e){const{listOfContainerItem:i,activatedValue:o}=e;(i||o)&&this.scrollToActivatedValue()}ngAfterViewInit(){p0(this.platformId)&&this.ngZone.runOutsideAngular(()=>setTimeout(()=>this.scrollToActivatedValue()))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option-container"]],viewQuery:function(i,o){if(1&i&&ft(E1,7),2&i){let r;Ae(r=Oe())&&(o.cdkVirtualScrollViewport=r.first)}},hostAttrs:[1,"ant-select-dropdown"],inputs:{notFoundContent:"notFoundContent",menuItemSelectedIcon:"menuItemSelectedIcon",dropdownRender:"dropdownRender",activatedValue:"activatedValue",listOfSelectedValue:"listOfSelectedValue",compareWith:"compareWith",mode:"mode",matchWidth:"matchWidth",itemSize:"itemSize",maxItemLength:"maxItemLength",isMaxLimitReached:"isMaxLimitReached",listOfContainerItem:"listOfContainerItem"},outputs:{itemClick:"itemClick",scrollToBottom:"scrollToBottom"},exportAs:["nzOptionContainer"],standalone:!0,features:[ke,me],decls:5,vars:14,consts:[["class","ant-select-item-empty",4,"ngIf"],[3,"scrolledIndexChange","itemSize","maxBufferPx","minBufferPx"],["cdkVirtualFor","",3,"cdkVirtualForOf","cdkVirtualForTrackBy","cdkVirtualForTemplateCacheSize"],[3,"ngTemplateOutlet"],[1,"ant-select-item-empty"],["nzComponentName","select",3,"specificContent"],[3,"ngSwitch"],[3,"nzLabel",4,"ngSwitchCase"],[3,"icon","customContent","template","grouped","disabled","showState","title","label","compareWith","activatedValue","listOfSelectedValue","value","itemHover","itemClick",4,"ngSwitchCase"],[3,"nzLabel"],[3,"itemHover","itemClick","icon","customContent","template","grouped","disabled","showState","title","label","compareWith","activatedValue","listOfSelectedValue","value"]],template:function(i,o){1&i&&(f(0,"div"),w(1,$1e,2,1,"div",0),f(2,"cdk-virtual-scroll-viewport",1),D("scrolledIndexChange",function(s){return o.onScrolledIndexChange(s)}),w(3,W1e,3,3,"ng-template",2),m(),w(4,G1e,0,0,"ng-template",3),m()),2&i&&(d(),h("ngIf",0===o.listOfContainerItem.length),d(),Lt("height",o.listOfContainerItem.length*o.itemSize,"px")("max-height",o.itemSize*o.maxItemLength,"px"),Q("full-width",!o.matchWidth),h("itemSize",o.itemSize)("maxBufferPx",o.itemSize*o.maxItemLength)("minBufferPx",o.itemSize*o.maxItemLength),d(),h("cdkVirtualForOf",o.listOfContainerItem)("cdkVirtualForTrackBy",o.trackValue)("cdkVirtualForTemplateCacheSize",0),d(),h("ngTemplateOutlet",o.dropdownRender))},dependencies:[Y7,$7,Tt,lc,yP,fu,CP,Vn,d2,$k,Gk,E1,u2],encapsulation:2,changeDetection:0})}return t})(),Nc=(()=>{class t{constructor(e,i){this.nzOptionGroupComponent=e,this.destroy$=i,this.changes=new N,this.groupLabel=null,this.nzLabel=null,this.nzValue=null,this.nzDisabled=!1,this.nzHide=!1,this.nzCustomContent=!1}ngOnInit(){this.nzOptionGroupComponent&&this.nzOptionGroupComponent.changes.pipe(gn(!0),I(this.destroy$)).subscribe(()=>{this.groupLabel=this.nzOptionGroupComponent.nzLabel})}ngOnChanges(){this.changes.next()}static#e=this.\u0275fac=function(i){return new(i||t)(v(mv,8),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-option"]],viewQuery:function(i,o){if(1&i&&ft(Gt,7),2&i){let r;Ae(r=Oe())&&(o.template=r.first)}},inputs:{nzTitle:"nzTitle",nzLabel:"nzLabel",nzValue:"nzValue",nzKey:"nzKey",nzDisabled:[2,"nzDisabled","nzDisabled",O],nzHide:[2,"nzHide","nzHide",O],nzCustomContent:[2,"nzCustomContent","nzCustomContent",O]},exportAs:["nzOption"],standalone:!0,features:[et([No]),je,ke,me],ngContentSelectors:bP,decls:1,vars:0,template:function(i,o){1&i&&(Et(),w(0,q1e,1,0,"ng-template"))},encapsulation:2,changeDetection:0})}return t})(),zP=(()=>{class t{constructor(){this.listOfValue=[],this.loading=!1,this.search=!1,this.showArrow=!1,this.isMaxTagCountSet=!1,this.suffixIcon=null,this.feedbackIcon=null,this.nzMaxMultipleCount=1/0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-arrow"]],hostAttrs:[1,"ant-select-arrow"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-select-arrow-loading",o.loading)},inputs:{listOfValue:"listOfValue",loading:"loading",search:"search",showArrow:"showArrow",isMaxTagCountSet:"isMaxTagCountSet",suffixIcon:"suffixIcon",feedbackIcon:"feedbackIcon",nzMaxMultipleCount:[2,"nzMaxMultipleCount","nzMaxMultipleCount",Pi]},standalone:!0,features:[je,me],decls:5,vars:4,consts:[["defaultArrow",""],["suffixTemplate",""],[4,"ngIf"],["nz-icon","","nzType","loading",4,"ngIf","ngIfElse"],[4,"nzStringTemplateOutlet"],["nz-icon","","nzType","loading"],[4,"ngIf","ngIfElse"],["nz-icon","","nzType","down",4,"ngIf"],["nz-icon","","nzType","search",4,"ngIf"],["nz-icon","","nzType","down"],["nz-icon","","nzType","search"],["nz-icon","",3,"nzType",4,"ngIf"],["nz-icon","",3,"nzType"]],template:function(i,o){if(1&i&&w(0,K1e,3,2,"ng-container",2)(1,J1e,1,0,"span",3)(2,ide,3,2,"ng-template",null,0,ot)(4,ode,2,1,"ng-container",4),2&i){const r=He(3);h("ngIf",o.isMaxTagCountSet),d(),h("ngIf",o.loading)("ngIfElse",r),d(3),h("nzStringTemplateOutlet",o.feedbackIcon)}},dependencies:[On,cn,Tt,Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),SP=(()=>{class t{constructor(){this.clearIcon=null,this.clear=new H}onClick(e){e.preventDefault(),e.stopPropagation(),this.clear.emit(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-clear"]],hostAttrs:[1,"ant-select-clear"],hostBindings:function(i,o){1&i&&D("click",function(s){return o.onClick(s)})},inputs:{clearIcon:"clearIcon"},outputs:{clear:"clear"},standalone:!0,features:[me],decls:1,vars:2,consts:[["nz-icon","","nzType","close-circle","nzTheme","fill","class","ant-select-close-icon",4,"ngIf","ngIfElse"],["nz-icon","","nzType","close-circle","nzTheme","fill",1,"ant-select-close-icon"]],template:function(i,o){1&i&&w(0,rde,1,0,"span",0),2&i&&h("ngIf",!o.clearIcon)("ngIfElse",o.clearIcon)},dependencies:[On,cn,Tt],encapsulation:2,changeDetection:0})}return t})(),TP=(()=>{class t{constructor(){this.disabled=!1,this.label=null,this.deletable=!1,this.removeIcon=null,this.contentTemplateOutletContext=null,this.contentTemplateOutlet=null,this.delete=new H}onDelete(e){e.preventDefault(),e.stopPropagation(),this.disabled||this.delete.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-item"]],hostAttrs:[1,"ant-select-selection-item"],hostVars:3,hostBindings:function(i,o){2&i&&(Pt("title",o.label),Q("ant-select-selection-item-disabled",o.disabled))},inputs:{disabled:"disabled",label:"label",deletable:"deletable",removeIcon:"removeIcon",contentTemplateOutletContext:"contentTemplateOutletContext",contentTemplateOutlet:"contentTemplateOutlet"},outputs:{delete:"delete"},standalone:!0,features:[me],decls:2,vars:5,consts:[["labelTemplate",""],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],["class","ant-select-selection-item-remove",3,"click",4,"ngIf"],["class","ant-select-selection-item-content",4,"ngIf","ngIfElse"],[1,"ant-select-selection-item-content"],[1,"ant-select-selection-item-remove",3,"click"],["nz-icon","","nzType","close",4,"ngIf","ngIfElse"],["nz-icon","","nzType","close"]],template:function(i,o){1&i&&w(0,lde,4,2,"ng-container",1)(1,ude,2,2,"span",2),2&i&&(h("nzStringTemplateOutlet",o.contentTemplateOutlet)("nzStringTemplateOutletContext",mr(3,sde,o.contentTemplateOutletContext)),d(),h("ngIf",o.deletable&&!o.disabled))},dependencies:[Tn,Sn,Tt,On,cn],encapsulation:2,changeDetection:0})}return t})(),MP=(()=>{class t{constructor(){this.placeholder=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-placeholder"]],hostAttrs:[1,"ant-select-selection-placeholder"],inputs:{placeholder:"placeholder"},standalone:!0,features:[me],decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&w(0,hde,2,1,"ng-container",0),2&i&&h("nzStringTemplateOutlet",o.placeholder)},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),gv=(()=>{class t{setCompositionState(e){this.isComposingChange.next(e)}onValueChange(e){this.value=e,this.valueChange.next(e),this.mirrorSync&&this.syncMirrorWidth()}clearInputValue(){this.inputElement.nativeElement.value="",this.onValueChange("")}syncMirrorWidth(){const e=this.mirrorElement.nativeElement,i=this.elementRef.nativeElement,o=this.inputElement.nativeElement;this.renderer.removeStyle(i,"width"),this.renderer.setProperty(e,"textContent",`${o.value}\xa0`),this.renderer.setStyle(i,"width",`${e.scrollWidth}px`)}focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}constructor(e,i,o){this.elementRef=e,this.renderer=i,this.focusMonitor=o,this.nzId=null,this.disabled=!1,this.mirrorSync=!1,this.showInput=!0,this.focusTrigger=!1,this.value="",this.autofocus=!1,this.valueChange=new H,this.isComposingChange=new H}ngOnChanges(e){const i=this.inputElement.nativeElement,{focusTrigger:o,showInput:r}=e;r&&(this.showInput?this.renderer.removeAttribute(i,"readonly"):this.renderer.setAttribute(i,"readonly","readonly")),o&&!0===o.currentValue&&!1===o.previousValue&&i.focus()}ngAfterViewInit(){this.mirrorSync&&this.syncMirrorWidth(),this.autofocus&&this.focus()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(Ca))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-search"]],viewQuery:function(i,o){if(1&i&&(ft(pde,7),ft(fde,5)),2&i){let r;Ae(r=Oe())&&(o.inputElement=r.first),Ae(r=Oe())&&(o.mirrorElement=r.first)}},hostAttrs:[1,"ant-select-selection-search"],inputs:{nzId:"nzId",disabled:"disabled",mirrorSync:"mirrorSync",showInput:"showInput",focusTrigger:"focusTrigger",value:"value",autofocus:"autofocus"},outputs:{valueChange:"valueChange",isComposingChange:"isComposingChange"},standalone:!0,features:[et([{provide:gO,useValue:!1}]),ke,me],decls:3,vars:7,consts:[["inputElement",""],["mirrorElement",""],["autocomplete","off",1,"ant-select-selection-search-input",3,"ngModelChange","compositionstart","compositionend","ngModel","disabled"],["class","ant-select-selection-search-mirror",4,"ngIf"],[1,"ant-select-selection-search-mirror"]],template:function(i,o){if(1&i){const r=U();f(0,"input",2,0),D("ngModelChange",function(a){return T(r),M(o.onValueChange(a))})("compositionstart",function(){return T(r),M(o.setCompositionState(!0))})("compositionend",function(){return T(r),M(o.setCompositionState(!1))}),m(),w(2,mde,2,0,"span",3)}2&i&&(Lt("opacity",o.showInput?null:0),h("ngModel",o.value)("disabled",o.disabled),Pt("id",o.nzId)("autofocus",o.autofocus?"autofocus":null),d(2),h("ngIf",o.mirrorSync))},dependencies:[Ic,Cr,Qi,Xi,Tt],encapsulation:2,changeDetection:0})}return t})(),E6=(()=>{class t{updateTemplateVariable(){const e=0===this.listOfTopItem.length;this.isShowPlaceholder=e&&!this.isComposing&&!this.inputValue,this.isShowSingleLabel=!e&&!this.isComposing&&!this.inputValue}isComposingChange(e){this.isComposing=e,this.updateTemplateVariable()}onInputValueChange(e){e!==this.inputValue&&(this.inputValue=e,this.updateTemplateVariable(),this.inputValueChange.emit(e),this.tokenSeparate(e,this.tokenSeparators))}tokenSeparate(e,i){if(e&&e.length&&i.length&&"default"!==this.mode&&((s,a)=>{for(let c=0;c0)return!0;return!1})(e,i)){const s=((s,a)=>{const c=new RegExp(`[${a.join()}]`),l=s.split(c).filter(u=>u);return[...new Set(l)]})(e,i);this.tokenize.next(s)}}clearInputValue(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.clearInputValue()}focus(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.focus()}blur(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.blur()}trackValue(e,i){return i.nzValue}onDeleteItem(e){!this.disabled&&!e.nzDisabled&&this.deleteItem.next(e)}constructor(e,i,o){this.elementRef=e,this.ngZone=i,this.noAnimation=o,this.nzId=null,this.showSearch=!1,this.placeHolder=null,this.open=!1,this.maxTagCount=1/0,this.autofocus=!1,this.disabled=!1,this.mode="default",this.customTemplate=null,this.maxTagPlaceholder=null,this.removeIcon=null,this.listOfTopItem=[],this.tokenSeparators=[],this.tokenize=new H,this.inputValueChange=new H,this.deleteItem=new H,this.listOfSlicedItem=[],this.isShowPlaceholder=!0,this.isShowSingleLabel=!1,this.isComposing=!1,this.inputValue=null,this.destroy$=new N}ngOnChanges(e){const{listOfTopItem:i,maxTagCount:o,customTemplate:r,maxTagPlaceholder:s}=e;if(i&&this.updateTemplateVariable(),i||o||r||s){const a=this.listOfTopItem.slice(0,this.maxTagCount).map(c=>({nzLabel:c.nzLabel,nzValue:c.nzValue,nzDisabled:c.nzDisabled,contentTemplateOutlet:this.customTemplate,contentTemplateOutletContext:c}));if(this.listOfTopItem.length>this.maxTagCount){const c=`+ ${this.listOfTopItem.length-this.maxTagCount} ...`,l=this.listOfTopItem.map(p=>p.nzValue),u={nzLabel:c,nzValue:"$$__nz_exceeded_item",nzDisabled:!0,contentTemplateOutlet:this.maxTagPlaceholder,contentTemplateOutletContext:l.slice(this.maxTagCount)};a.push(u)}this.listOfSlicedItem=a}}ngOnInit(){this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.target!==this.nzSelectSearchComponent.inputElement.nativeElement&&this.nzSelectSearchComponent.focus()}),nn(this.elementRef.nativeElement,"keydown").pipe(I(this.destroy$)).subscribe(e=>{e.target instanceof HTMLInputElement&&8===e.keyCode&&"default"!==this.mode&&!e.target.value&&this.listOfTopItem.length>0&&(e.preventDefault(),this.ngZone.run(()=>this.onDeleteItem(this.listOfTopItem[this.listOfTopItem.length-1])))})})}ngOnDestroy(){this.destroy$.next()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(De),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select-top-control"]],viewQuery:function(i,o){if(1&i&&ft(gv,5),2&i){let r;Ae(r=Oe())&&(o.nzSelectSearchComponent=r.first)}},hostAttrs:[1,"ant-select-selector"],inputs:{nzId:"nzId",showSearch:"showSearch",placeHolder:"placeHolder",open:"open",maxTagCount:[2,"maxTagCount","maxTagCount",Pi],autofocus:"autofocus",disabled:"disabled",mode:"mode",customTemplate:"customTemplate",maxTagPlaceholder:"maxTagPlaceholder",removeIcon:"removeIcon",listOfTopItem:"listOfTopItem",tokenSeparators:"tokenSeparators"},outputs:{tokenize:"tokenize",inputValueChange:"inputValueChange",deleteItem:"deleteItem"},exportAs:["nzSelectTopControl"],standalone:!0,features:[je,ke,me],decls:4,vars:3,consts:[[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],[3,"placeholder",4,"ngIf"],[3,"isComposingChange","valueChange","nzId","disabled","value","showInput","mirrorSync","autofocus","focusTrigger"],[3,"deletable","disabled","removeIcon","label","contentTemplateOutlet","contentTemplateOutletContext",4,"ngIf"],[3,"deletable","disabled","removeIcon","label","contentTemplateOutlet","contentTemplateOutletContext"],[3,"removeIcon","label","disabled","contentTemplateOutlet","deletable","contentTemplateOutletContext","delete",4,"ngFor","ngForOf","ngForTrackBy"],[3,"isComposingChange","valueChange","nzId","disabled","value","autofocus","showInput","mirrorSync","focusTrigger"],[3,"delete","removeIcon","label","disabled","contentTemplateOutlet","deletable","contentTemplateOutletContext"],[3,"placeholder"]],template:function(i,o){1&i&&($e(0,0),w(1,vde,3,8,"ng-container",1)(2,bde,3,9,"ng-container",2),Ye(),w(3,yde,1,1,"nz-select-placeholder",3)),2&i&&(h("ngSwitch",o.mode),d(),h("ngSwitchCase","default"),d(2),h("ngIf",o.isShowPlaceholder))},dependencies:[lc,gv,fu,TP,Tt,Gm,zn,MP],encapsulation:2,changeDetection:0})}return t})();const Mde=(t,n)=>!(!n||!n.nzLabel)&&n.nzLabel.toString().toLowerCase().indexOf(t.toLowerCase())>-1;let Vc=(()=>{class t{set nzShowArrow(e){this._nzShowArrow=e}get nzShowArrow(){return void 0===this._nzShowArrow?"default"===this.nzMode:this._nzShowArrow}get isMaxTagCountSet(){return this.nzMaxMultipleCount!==1/0}generateTagItem(e){return{nzValue:e,nzLabel:e,type:"item"}}onItemClick(e){if(this.activatedValue=e,"default"===this.nzMode)(0===this.listOfValue.length||!this.compareWith(this.listOfValue[0],e))&&this.updateListOfValue([e]),this.setOpenState(!1);else{const i=this.listOfValue.findIndex(o=>this.compareWith(o,e));if(-1!==i){const o=this.listOfValue.filter((r,s)=>s!==i);this.updateListOfValue(o)}else if(this.listOfValue.length!this.compareWith(o,e.nzValue));this.updateListOfValue(i),this.clearInput()}updateListOfContainerItem(){let e=this.listOfTagAndTemplateItem.filter(r=>!r.nzHide).filter(r=>!(!this.nzServerSearch&&this.searchValue)||this.nzFilterOption(this.searchValue,r));if("tags"===this.nzMode&&this.searchValue){const r=this.listOfTagAndTemplateItem.find(s=>s.nzLabel===this.searchValue);if(r)this.activatedValue=r.nzValue;else{const s=this.generateTagItem(this.searchValue);e=[s,...e],this.activatedValue=s.nzValue}}const i=e.find(r=>r.nzLabel===this.searchValue)||e.find(r=>this.compareWith(r.nzValue,this.activatedValue))||e.find(r=>this.compareWith(r.nzValue,this.listOfValue[0]))||e[0];this.activatedValue=i&&i.nzValue||null;let o=[];this.isReactiveDriven?o=[...new Set(this.nzOptions.filter(r=>r.groupLabel).map(r=>r.groupLabel))]:this.listOfNzOptionGroupComponent&&(o=this.listOfNzOptionGroupComponent.map(r=>r.nzLabel)),o.forEach(r=>{const s=e.findIndex(a=>r===a.groupLabel);s>-1&&e.splice(s,0,{groupLabel:r,type:"group",key:r})}),this.listOfContainerItem=[...e],this.updateCdkConnectedOverlayPositions()}clearInput(){this.nzSelectTopControlComponent.clearInputValue()}updateListOfValue(e){const o=((r,s)=>"default"===this.nzMode?r.length>0?r[0]:null:r)(e);this.value!==o&&(this.listOfValue=e,this.listOfValue$.next(e),this.value=o,this.onChange(this.value)),this.isMaxLimitReached=this.nzMaxMultipleCount!==1/0&&this.listOfValue.length===this.nzMaxMultipleCount}onTokenSeparate(e){const i=this.listOfTagAndTemplateItem.filter(o=>-1!==e.findIndex(r=>r===o.nzLabel)).map(o=>o.nzValue).filter(o=>-1===this.listOfValue.findIndex(r=>this.compareWith(r,o)));if("multiple"===this.nzMode)this.updateListOfValue([...this.listOfValue,...i]);else if("tags"===this.nzMode){const o=e.filter(r=>-1===this.listOfTagAndTemplateItem.findIndex(s=>s.nzLabel===r));this.updateListOfValue([...this.listOfValue,...i,...o])}this.clearInput()}onKeyDown(e){if(this.nzDisabled)return;const i=this.listOfContainerItem.filter(r=>"item"===r.type).filter(r=>!r.nzDisabled),o=i.findIndex(r=>this.compareWith(r.nzValue,this.activatedValue));switch(e.keyCode){case 38:e.preventDefault(),this.nzOpen&&i.length>0&&(this.activatedValue=i[o>0?o-1:i.length-1].nzValue);break;case 40:e.preventDefault(),this.nzOpen&&i.length>0?this.activatedValue=i[o{this.triggerWidth=this.originElement.nativeElement.getBoundingClientRect().width,e!==this.triggerWidth&&this.cdr.detectChanges()})}}updateCdkConnectedOverlayPositions(){p2(()=>{this.cdkConnectedOverlay?.overlayRef?.updatePosition()})}constructor(e,i,o,r,s,a,c,l,u,p,_,b){this.ngZone=e,this.destroy$=i,this.nzConfigService=o,this.cdr=r,this.host=s,this.renderer=a,this.platform=c,this.focusMonitor=l,this.directionality=u,this.noAnimation=p,this.nzFormStatusService=_,this.nzFormNoStatusService=b,this._nzModuleName="select",this.nzId=null,this.nzSize="default",this.nzStatus="",this.nzOptionHeightPx=32,this.nzOptionOverflowSize=8,this.nzDropdownClassName=null,this.nzDropdownMatchSelectWidth=!0,this.nzDropdownStyle=null,this.nzNotFoundContent=void 0,this.nzPlaceHolder=null,this.nzPlacement=null,this.nzMaxTagCount=1/0,this.nzDropdownRender=null,this.nzCustomTemplate=null,this.nzSuffixIcon=null,this.nzClearIcon=null,this.nzRemoveIcon=null,this.nzMenuItemSelectedIcon=null,this.nzTokenSeparators=[],this.nzMaxTagPlaceholder=null,this.nzMaxMultipleCount=1/0,this.nzMode="default",this.nzFilterOption=Mde,this.compareWith=(y,z)=>y===z,this.nzAllowClear=!1,this.nzBorderless=!1,this.nzShowSearch=!1,this.nzLoading=!1,this.nzAutoFocus=!1,this.nzAutoClearSearchValue=!0,this.nzServerSearch=!1,this.nzDisabled=!1,this.nzOpen=!1,this.nzSelectOnTab=!1,this.nzBackdrop=!1,this.nzOptions=[],this.nzOnSearch=new H,this.nzScrollToBottom=new H,this.nzOpenChange=new H,this.nzBlur=new H,this.nzFocus=new H,this.listOfValue$=new rt([]),this.listOfTemplateItem$=new rt([]),this.listOfTagAndTemplateItem=[],this.searchValue="",this.isReactiveDriven=!1,this.requestId=-1,this.isNzDisableFirstChange=!0,this.onChange=()=>{},this.onTouched=()=>{},this.dropDownPosition="bottomLeft",this.triggerWidth=null,this.listOfContainerItem=[],this.listOfTopItem=[],this.activatedValue=null,this.listOfValue=[],this.focused=!1,this.dir="ltr",this.positions=[],this.isMaxLimitReached=!1,this.prefixCls="ant-select",this.statusCls={},this.status="",this.hasFeedback=!1}writeValue(e){if(this.value!==e){this.value=e;const o=((r,s)=>null==r?[]:"default"===this.nzMode?[r]:r)(e);this.listOfValue=o,this.listOfValue$.next(o),this.cdr.markForCheck()}}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.nzDisabled&&this.setOpenState(!1),this.cdr.markForCheck()}ngOnChanges(e){const{nzOpen:i,nzDisabled:o,nzOptions:r,nzStatus:s,nzPlacement:a}=e;if(i&&this.onOpenChange(),o&&this.nzDisabled&&this.setOpenState(!1),r){this.isReactiveDriven=!0;const l=(this.nzOptions||[]).map(u=>({template:u.label instanceof Gt?u.label:null,nzTitle:this.getTitle(u.title,u.label),nzLabel:"string"==typeof u.label||"number"==typeof u.label?u.label:null,nzValue:u.value,nzDisabled:u.disabled||!1,nzHide:u.hide||!1,nzCustomContent:u.label instanceof Gt,groupLabel:u.groupLabel||null,type:"item",key:void 0===u.key?u.value:u.key}));this.listOfTemplateItem$.next(l)}if(s&&this.setStatusStyles(this.nzStatus,this.hasFeedback),a){const{currentValue:c}=a;this.dropDownPosition=c;const l=["bottomLeft","topLeft","bottomRight","topRight"];this.positions=c&&l.includes(c)?[Kt[c]]:l.map(u=>Kt[u])}}ngOnInit(){this.nzFormStatusService?.formStatusChanges.pipe(qi((e,i)=>e.status===i.status&&e.hasFeedback===i.hasFeedback),function V1e(...t){const n=pg(t);return dn((e,i)=>{const o=t.length,r=new Array(o);let s=t.map(()=>!1),a=!1;for(let c=0;c{r[c]=l,!a&&!s[c]&&(s[c]=!0,(a=s.every(Bn))&&(s=null))},qs));e.subscribe(Zt(i,c=>{if(a){const l=[c,...r];i.next(n?n(...l):l)}}))})}(this.nzFormNoStatusService?this.nzFormNoStatusService.noFormStatus:We(!1)),Ie(([{status:e,hasFeedback:i},o])=>({status:o?"":e,hasFeedback:i})),I(this.destroy$)).subscribe(({status:e,hasFeedback:i})=>{this.setStatusStyles(e,i)}),this.focusMonitor.monitor(this.host,!0).pipe(I(this.destroy$)).subscribe(e=>{e?(this.focused=!0,this.cdr.markForCheck(),this.nzFocus.emit()):(this.focused=!1,this.cdr.markForCheck(),this.nzBlur.emit(),Promise.resolve().then(()=>{this.onTouched()}))}),xi([this.listOfValue$,this.listOfTemplateItem$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{const o=e.filter(()=>"tags"===this.nzMode).filter(r=>-1===i.findIndex(s=>this.compareWith(s.nzValue,r))).map(r=>this.listOfTopItem.find(s=>this.compareWith(s.nzValue,r))||this.generateTagItem(r));this.listOfTagAndTemplateItem=[...i,...o],this.listOfTopItem=this.listOfValue.map(r=>[...this.listOfTagAndTemplateItem,...this.listOfTopItem].find(s=>this.compareWith(r,s.nzValue))).filter(r=>!!r),this.updateListOfContainerItem()}),this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.nzConfigService.getConfigChangeEventForComponent("select").pipe(I(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>nn(this.host.nativeElement,"click").pipe(I(this.destroy$)).subscribe(()=>{this.nzOpen&&this.nzShowSearch||this.nzDisabled||this.ngZone.run(()=>this.setOpenState(!this.nzOpen))})),this.cdkConnectedOverlay.overlayKeydown.pipe(I(this.destroy$)).subscribe(e=>{27===e.keyCode&&this.setOpenState(!1)})}ngAfterContentInit(){this.isReactiveDriven||Pn(this.listOfNzOptionGroupComponent.changes,this.listOfNzOptionComponent.changes).pipe(gn(!0),mn(()=>Pn(this.listOfNzOptionComponent.changes,this.listOfNzOptionGroupComponent.changes,...this.listOfNzOptionComponent.map(e=>e.changes),...this.listOfNzOptionGroupComponent.map(e=>e.changes)).pipe(gn(!0))),I(this.destroy$)).subscribe(()=>{const e=this.listOfNzOptionComponent.toArray().map(i=>{const{template:o,nzLabel:r,nzValue:s,nzKey:a,nzDisabled:c,nzHide:l,nzCustomContent:u,groupLabel:p}=i;return{template:o,nzLabel:r,nzValue:s,nzDisabled:c,nzHide:l,nzCustomContent:u,groupLabel:p,nzTitle:this.getTitle(i.nzTitle,i.nzLabel),type:"item",key:void 0===a?s:a}});this.listOfTemplateItem$.next(e),this.cdr.markForCheck()})}ngOnDestroy(){vA(this.requestId),this.focusMonitor.stopMonitoring(this.host)}setStatusStyles(e,i){this.status=e,this.hasFeedback=i,this.cdr.markForCheck(),this.statusCls=Ku(this.prefixCls,e,i),Object.keys(this.statusCls).forEach(o=>{this.statusCls[o]?this.renderer.addClass(this.host.nativeElement,o):this.renderer.removeClass(this.host.nativeElement,o)})}getTitle(e,i){let o;return void 0===e?("string"==typeof i||"number"==typeof i)&&(o=i.toString()):("string"==typeof e||"number"==typeof e)&&(o=e.toString()),o}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(No),v(si),v(Ue),v(Te),v($t),v(qn),v(Ca),v(wt,8),v(zo,9),v(kc,8),v(p6,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-select"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,Nc,5),fn(r,mv,5)),2&i){let s;Ae(s=Oe())&&(o.listOfNzOptionComponent=s),Ae(s=Oe())&&(o.listOfNzOptionGroupComponent=s)}},viewQuery:function(i,o){if(1&i&&(ft(Tc,7,Te),ft(Mc,7),ft(E6,7),ft(mv,7,Te),ft(E6,7,Te)),2&i){let r;Ae(r=Oe())&&(o.originElement=r.first),Ae(r=Oe())&&(o.cdkConnectedOverlay=r.first),Ae(r=Oe())&&(o.nzSelectTopControlComponent=r.first),Ae(r=Oe())&&(o.nzOptionGroupComponentElement=r.first),Ae(r=Oe())&&(o.nzSelectTopControlComponentElement=r.first)}},hostAttrs:[1,"ant-select"],hostVars:26,hostBindings:function(i,o){2&i&&Q("ant-select-in-form-item",!!o.nzFormStatusService)("ant-select-lg","large"===o.nzSize)("ant-select-sm","small"===o.nzSize)("ant-select-show-arrow",o.nzShowArrow)("ant-select-disabled",o.nzDisabled)("ant-select-show-search",(o.nzShowSearch||"default"!==o.nzMode)&&!o.nzDisabled)("ant-select-allow-clear",o.nzAllowClear)("ant-select-borderless",o.nzBorderless)("ant-select-open",o.nzOpen)("ant-select-focused",o.nzOpen||o.focused)("ant-select-single","default"===o.nzMode)("ant-select-multiple","default"!==o.nzMode)("ant-select-rtl","rtl"===o.dir)},inputs:{nzId:"nzId",nzSize:"nzSize",nzStatus:"nzStatus",nzOptionHeightPx:"nzOptionHeightPx",nzOptionOverflowSize:"nzOptionOverflowSize",nzDropdownClassName:"nzDropdownClassName",nzDropdownMatchSelectWidth:"nzDropdownMatchSelectWidth",nzDropdownStyle:"nzDropdownStyle",nzNotFoundContent:"nzNotFoundContent",nzPlaceHolder:"nzPlaceHolder",nzPlacement:"nzPlacement",nzMaxTagCount:"nzMaxTagCount",nzDropdownRender:"nzDropdownRender",nzCustomTemplate:"nzCustomTemplate",nzSuffixIcon:"nzSuffixIcon",nzClearIcon:"nzClearIcon",nzRemoveIcon:"nzRemoveIcon",nzMenuItemSelectedIcon:"nzMenuItemSelectedIcon",nzTokenSeparators:"nzTokenSeparators",nzMaxTagPlaceholder:"nzMaxTagPlaceholder",nzMaxMultipleCount:"nzMaxMultipleCount",nzMode:"nzMode",nzFilterOption:"nzFilterOption",compareWith:"compareWith",nzAllowClear:[2,"nzAllowClear","nzAllowClear",O],nzBorderless:[2,"nzBorderless","nzBorderless",O],nzShowSearch:[2,"nzShowSearch","nzShowSearch",O],nzLoading:[2,"nzLoading","nzLoading",O],nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",O],nzAutoClearSearchValue:[2,"nzAutoClearSearchValue","nzAutoClearSearchValue",O],nzServerSearch:[2,"nzServerSearch","nzServerSearch",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzOpen:[2,"nzOpen","nzOpen",O],nzSelectOnTab:[2,"nzSelectOnTab","nzSelectOnTab",O],nzBackdrop:[2,"nzBackdrop","nzBackdrop",O],nzOptions:"nzOptions",nzShowArrow:[2,"nzShowArrow","nzShowArrow",O]},outputs:{nzOnSearch:"nzOnSearch",nzScrollToBottom:"nzScrollToBottom",nzOpenChange:"nzOpenChange",nzBlur:"nzBlur",nzFocus:"nzFocus"},exportAs:["nzSelect"],standalone:!0,features:[et([No,{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,ke,me],decls:5,vars:25,consts:[["origin","cdkOverlayOrigin"],["feedbackIconTpl",""],["cdkOverlayOrigin","",3,"inputValueChange","tokenize","deleteItem","keydown","nzId","open","disabled","mode","nzNoAnimation","maxTagPlaceholder","removeIcon","placeHolder","maxTagCount","customTemplate","tokenSeparators","showSearch","autofocus","listOfTopItem"],[3,"showArrow","loading","search","suffixIcon","feedbackIcon","nzMaxMultipleCount","listOfValue","isMaxTagCountSet",4,"ngIf"],[3,"clearIcon","clear",4,"ngIf"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayMinWidth","cdkConnectedOverlayWidth","cdkConnectedOverlayOrigin","cdkConnectedOverlayTransformOriginOn","cdkConnectedOverlayPanelClass","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions"],[3,"showArrow","loading","search","suffixIcon","feedbackIcon","nzMaxMultipleCount","listOfValue","isMaxTagCountSet"],[3,"status",4,"ngIf"],[3,"status"],[3,"clear","clearIcon"],[3,"keydown","itemClick","scrollToBottom","ngStyle","itemSize","maxItemLength","matchWidth","nzNoAnimation","listOfContainerItem","menuItemSelectedIcon","notFoundContent","activatedValue","listOfSelectedValue","dropdownRender","compareWith","mode","isMaxLimitReached"]],template:function(i,o){if(1&i){const r=U();f(0,"nz-select-top-control",2,0),D("inputValueChange",function(a){return T(r),M(o.onInputValueChange(a))})("tokenize",function(a){return T(r),M(o.onTokenSeparate(a))})("deleteItem",function(a){return T(r),M(o.onItemDelete(a))})("keydown",function(a){return T(r),M(o.onKeyDown(a))}),m(),w(2,zde,3,8,"nz-select-arrow",3)(3,Sde,1,1,"nz-select-clear",4)(4,Tde,1,24,"ng-template",5),D("overlayOutsideClick",function(a){return T(r),M(o.onClickOutside(a))})("detach",function(){return T(r),M(o.setOpenState(!1))})("positionChange",function(a){return T(r),M(o.onPositionChange(a))})}if(2&i){const r=He(1);h("nzId",o.nzId)("open",o.nzOpen)("disabled",o.nzDisabled)("mode",o.nzMode)("@.disabled",!(null==o.noAnimation||!o.noAnimation.nzNoAnimation))("nzNoAnimation",null==o.noAnimation?null:o.noAnimation.nzNoAnimation)("maxTagPlaceholder",o.nzMaxTagPlaceholder)("removeIcon",o.nzRemoveIcon)("placeHolder",o.nzPlaceHolder)("maxTagCount",o.nzMaxTagCount)("customTemplate",o.nzCustomTemplate)("tokenSeparators",o.nzTokenSeparators)("showSearch",o.nzShowSearch)("autofocus",o.nzAutoFocus)("listOfTopItem",o.listOfTopItem),d(2),h("ngIf",o.nzShowArrow||o.hasFeedback&&!!o.status||o.isMaxTagCountSet),d(),h("ngIf",o.nzAllowClear&&!o.nzDisabled&&o.listOfValue.length),d(),h("cdkConnectedOverlayHasBackdrop",o.nzBackdrop)("cdkConnectedOverlayMinWidth",o.nzDropdownMatchSelectWidth?null:o.triggerWidth)("cdkConnectedOverlayWidth",o.nzDropdownMatchSelectWidth?o.triggerWidth:null)("cdkConnectedOverlayOrigin",r)("cdkConnectedOverlayTransformOriginOn",".ant-select-dropdown")("cdkConnectedOverlayPanelClass",o.nzDropdownClassName)("cdkConnectedOverlayOpen",o.nzOpen)("cdkConnectedOverlayPositions",o.positions)}},dependencies:[E6,Tc,zo,zP,Tt,fO,U7,SP,Mc,u2,J3,wP,ti],encapsulation:2,data:{animation:[a7]},changeDetection:0})}return kt([Nt()],t.prototype,"nzOptionHeightPx",void 0),kt([Nt()],t.prototype,"nzSuffixIcon",void 0),kt([Nt()],t.prototype,"nzBorderless",void 0),kt([Nt()],t.prototype,"nzBackdrop",void 0),t})(),DP=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Vc,wP,CP,E6,gv,TP,SP,zP,MP,yP]})}return t})();const xde=(t,n)=>({width:t,height:n}),Ede=(t,n,e)=>({"background-color":t,width:n,height:e});function kde(t,n){if(1&t){const e=U();f(0,"img",2),D("error",function(){return T(e),M(g().onError())}),m()}if(2&t){const e=g();h("src",e.url,Ot)("ngStyle",sc(2,xde,e.size+"px",e.size+"px"))}}function Ade(t,n){if(1&t&&(f(0,"div",3),C(1),m()),2&t){const e=g();h("ngStyle",tS(2,Ede,e.colour,e.size+"px",e.size+"px")),d(),Ce(" ",e.name?e.name[0]:""," ")}}let Fc=(()=>{class t{constructor(){this.src="",this.name="",this.colour="#1890ff",this.size=35,this.check=!0,this.hasError=!1}ngOnInit(){}get url(){return this.src?.startsWith("nav-")?Qx(this.src):this.src}onError(){this.hasError=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-logo"]],inputs:{src:"src",name:"name",colour:"colour",size:"size",check:"check"},decls:3,vars:2,consts:[["noSrc",""],["class","icon dark-border-color","draggable","false",3,"src","ngStyle","error",4,"ngIf","ngIfElse"],["draggable","false",1,"icon","dark-border-color",3,"error","src","ngStyle"],[1,"circle",3,"ngStyle"]],template:function(i,o){if(1&i&&w(0,kde,1,5,"img",1)(1,Ade,2,6,"ng-template",null,0,ot),2&i){const r=He(2);h("ngIf",o.url&&!o.hasError)("ngIfElse",r)}},dependencies:[Tt,ti],styles:[".icon[_ngcontent-%COMP%]{display:inline-block;vertical-align:middle;pointer-events:none;background-color:#eee;border-radius:3px}.circle[_ngcontent-%COMP%]{color:#fff;display:flex;justify-content:center;align-items:center;border-radius:50%}"]})}return t})();const Ode=t=>({"background-image":t});function Pde(t,n){if(1&t){const e=U();f(0,"div",9),D("click",function(o){return T(e),M(g(2).toggleEngine(o))}),m()}if(2&t){const e=g(2);h("ngStyle",mr(1,Ode,"url("+e.currentEngine.icon+")"))}}function Ide(t,n){if(1&t){const e=U();f(0,"i",10),D("click",function(){return T(e),M(g(2).triggerSearch())}),m()}}function Nde(t,n){if(1&t){const e=U();f(0,"nz-select",12),Oi("ngModelChange",function(o){T(e);const r=g(3);return Yi(r.searchTypeValue,o)||(r.searchTypeValue=o),M(o)}),S(1,"nz-option",13)(2,"nz-option",13)(3,"nz-option",13)(4,"nz-option",13)(5,"nz-option",13),m()}if(2&t){const e=g(3);Ai("ngModel",e.searchTypeValue),d(),h("nzLabel",e.$t("_default"))("nzValue",e.SearchType.All),d(),h("nzLabel",e.$t("_title"))("nzValue",e.SearchType.Title),d(),h("nzLabel",e.$t("_desc"))("nzValue",e.SearchType.Desc),d(),h("nzLabel",e.$t("_link"))("nzValue",e.SearchType.Url),d(),h("nzLabel",e.$t("_current"))("nzValue",e.SearchType.Current)}}function Vde(t,n){1&t&&w(0,Nde,6,11,"nz-select",11),2&t&&h("ngIf",!g(2).currentEngine.url)}function Fde(t,n){if(1&t){const e=U();f(0,"div",16),D("click",function(){const o=T(e).index;return M(g(3).clickEngineItem(o))}),S(1,"app-logo",17),f(2,"span",18),C(3),m()()}if(2&t){const e=n.$implicit;d(),h("src",e.icon||"")("size",20)("check",!1),d(2),x(e.name)}}function Rde(t,n){if(1&t&&(f(0,"div",14),w(1,Fde,4,4,"div",15),m()),2&t){const e=g(2);d(),h("ngForOf",e.searchEngineList)}}function Lde(t,n){if(1&t){const e=U();f(0,"div",4)(1,"div",5)(2,"nz-input-group",6)(3,"input",7),Oi("ngModelChange",function(o){T(e);const r=g();return Yi(r.keyword,o)||(r.keyword=o),M(o)}),D("keyup",function(o){return T(e),M(g().onKey(o))}),m()(),w(4,Pde,1,3,"ng-template",null,0,ot)(6,Ide,1,0,"ng-template",null,1,ot)(8,Vde,1,1,"ng-template",null,2,ot),m(),w(10,Rde,2,1,"div",8),m()}if(2&t){const e=He(5),i=He(7),o=He(9),r=g();Q("small","small"===r.size),d(),Q("removeAddon",r.currentEngine.url),d(),h("nzPrefix",e)("nzSuffix",i)("nzSize",r.size)("nzAddOnBefore",o),d(),h("placeholder",r.currentEngine.placeholder||""),Ai("ngModel",r.keyword),d(7),h("ngIf",r.showEngine)}}let H1=(()=>{class t{constructor(e){this.router=e,this.size="default",this.$t=_e,this.searchEngineList=jg,this.currentEngine=function Ete(){let t=Mte[0]||{};try{const n=window.localStorage.getItem(Ui.engine);n&&(t=JSON.parse(n))}catch{}return t}(),this.SearchType=pa,this.searchTypeValue=pa.All,this.showEngine=!1,this.keyword=pi().q}inputFocus(){setTimeout(()=>{document.getElementById("search-engine-input")?.focus?.()},100)}ngAfterViewInit(){this.inputFocus(),document.addEventListener("click",()=>{this.toggleEngine(null,!1)})}toggleEngine(e,i){this.searchEngineList.length<=1||(e&&e.stopPropagation(),this.showEngine=typeof i>"u"?!this.showEngine:i)}clickEngineItem(e){this.currentEngine=this.searchEngineList[e],this.toggleEngine(),this.inputFocus(),function kte(t){window.localStorage.setItem(Ui.engine,JSON.stringify(t))}(this.currentEngine)}triggerSearch(){this.currentEngine.url&&window.open(this.currentEngine.url+this.keyword);const e=pi();this.router.navigate([this.router.url.split("?")[0]],{queryParams:{...e,q:this.keyword,type:this.searchTypeValue}})}onKey(e){"Enter"===e.code&&this.triggerSearch()}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-search-engine"]],inputs:{size:"size"},decls:1,vars:1,consts:[["prefixIcon",""],["suffixIcon",""],["addOnBeforeTemplate",""],["class","search-engine",3,"small",4,"ngIf"],[1,"search-engine"],[1,"input-wrapper","dark-bg","dark-border-color"],[3,"nzPrefix","nzSuffix","nzSize","nzAddOnBefore"],["type","text","nz-input","","autofocus","","id","search-engine-input","autocomplete","off",3,"ngModelChange","keyup","placeholder","ngModel"],["class","engine-main dark-bg dark-border-color dark-shadow",4,"ngIf"],[1,"left-icon",3,"click","ngStyle"],[1,"search-icon","iconfont","iconsousuo","dark-text",3,"click"],[3,"ngModel","ngModelChange",4,"ngIf"],[3,"ngModelChange","ngModel"],[3,"nzLabel","nzValue"],[1,"engine-main","dark-bg","dark-border-color","dark-shadow"],["class","item dark-bg-gary dark-item-hover",3,"click",4,"ngFor","ngForOf"],[1,"item","dark-bg-gary","dark-item-hover",3,"click"],[3,"src","size","check"],[1,"name2","dark-text"]],template:function(i,o){1&i&&w(0,Lde,11,11,"div",3),2&i&&h("ngIf",o.searchEngineList&&o.searchEngineList.length>0)},dependencies:[zn,Tt,ti,Ws,x6,vP,Nc,Vc,mi,Cr,Qi,Xi,Fc],styles:['@media (max-width: 768px){.engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{width:100%!important;margin-right:0!important}}.search-engine[_ngcontent-%COMP%]{position:relative;display:flex;justify-content:center;padding:10px 0}.search-engine.small[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%]{width:300px}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%]{position:relative;width:500px;background:#fff;border-radius:5px;overflow:hidden}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding-left:10px;padding-right:10px}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:-webkit-autofill-selected{background-color:transparent!important;box-shadow:inset 0 0 0 500px transparent!important}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%] .left-icon[_ngcontent-%COMP%]{width:20px;height:20px;background-repeat:no-repeat;background-size:20px 20px;cursor:pointer}.search-engine[_ngcontent-%COMP%] .input-wrapper[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{cursor:pointer}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%]{z-index:20;position:absolute;top:65px;left:50%;width:500px;max-width:90vw;padding:15px 15px 0;background:#fff;transform:translate(-50%);box-shadow:0 1px 5px #ccc;border-radius:5px;display:flex;flex-wrap:wrap}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%]:after{content:"";position:absolute;top:-11px;left:50%;width:0;height:0;transform:translate(-50%);border-style:solid;border-width:0 10px 20px 10px;border-color:transparent transparent #ffffff transparent}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{width:calc(33.33% - 10px);padding:6px;display:flex;background:#f6f6f6;cursor:pointer;margin-bottom:15px;border-radius:3px;transition:.1s linear;box-sizing:border-box;border:1px solid transparent}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover{background-color:#eee}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:not(:nth-child(3n)){margin-right:15px}.search-engine[_ngcontent-%COMP%] .engine-main[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .name2[_ngcontent-%COMP%]{margin-left:10px;font-size:15px;align-self:center}.search-engine[_ngcontent-%COMP%] .removeAddon .ant-input-group-addon{display:none!important}@media screen and (max-width: 768px){.input-wrapper[_ngcontent-%COMP%]{width:90%!important}}']})}return t})();function Hde(t,n){1&t&&S(0,"i",7),2&t&&Q("active",g(2).dataSource.collapsed)}function Bde(t,n){1&t&&S(0,"i",7),2&t&&Q("active",g(2).dataSource.collapsed)}function jde(t,n){if(1&t){const e=U();f(0,"i",8),D("click",function(){return T(e),M(g(2).openCreateWebModal())}),m()}}function $de(t,n){if(1&t){const e=U();f(0,"div",2)(1,"span",3),D("click",function(){return T(e),M(g().onCollapse.emit())}),w(2,Hde,1,2,"i",4)(3,Bde,1,2,"ng-template",null,0,ot),f(5,"span",5),C(6),m()(),w(7,jde,1,0,"i",6),m()}if(2&t){const e=He(4),i=g();d(2),h("ngIf","1"===i.arrowType)("ngIfElse",e),d(4),ca(" ",i.dataSource.title," x ",i.dataSource.nav.length," "),d(),h("ngIf",i.isLogin||i.settings.allowCollect)}}let vv=(()=>{class t{constructor(){this.index=0,this.arrowType="1",this.onCollapse=new H,this.isLogin=Wi,this.websiteList=yn,this.settings=An}ngOnInit(){}openCreateWebModal(){Ei.emit("CREATE_WEB",{threeIndex:this.index})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-toolbar-title"]],inputs:{index:"index",dataSource:"dataSource",arrowType:"arrowType"},outputs:{onCollapse:"onCollapse"},decls:1,vars:1,consts:[["type",""],["class","title tool-title dark-primary dark-border-color",4,"ngIf"],[1,"title","tool-title","dark-primary","dark-border-color"],[1,"cursor-pointer",3,"click"],["class","iconfont iconjiantouarrow483 down-arrow",3,"active",4,"ngIf","ngIfElse"],[2,"margin-left","10px","align-self","center","vertical-align","middle"],["nz-icon","","nzType","plus","nzTheme","outline","class","add-icon",3,"click",4,"ngIf"],[1,"iconfont","iconjiantouarrow483","down-arrow"],["nz-icon","","nzType","plus","nzTheme","outline",1,"add-icon",3,"click"]],template:function(i,o){1&i&&w(0,$de,8,5,"div",1),2&i&&h("ngIf",o.dataSource&&o.dataSource.title)},dependencies:[Tt,mi,cn],styles:[".title[_ngcontent-%COMP%]{position:relative;font-size:16px;border-bottom:1px solid rgba(0,0,0,.05);padding:10px 0 10px 5px;color:#3f51b5;font-weight:500;display:flex;margin-bottom:15px;-webkit-user-select:none;user-select:none;margin-top:10px}.title[_ngcontent-%COMP%] .add-icon[_ngcontent-%COMP%]{position:absolute;top:50%;right:20px;transform:translateY(-50%);cursor:pointer;color:#666}"]})}return t})();const Yde=["okBtn"],Ude=["cancelBtn"];function Wde(t,n){1&t&&(f(0,"div",6),S(1,"span",14),m())}function Gde(t,n){if(1&t&&($e(0),f(1,"span",16),S(2,"span",17),m(),Ye()),2&t){const e=n.$implicit;d(2),h("nzType",e||"exclamation-circle")}}function qde(t,n){if(1&t&&($e(0),w(1,Gde,3,1,"ng-container",10),f(2,"div",15),C(3),m(),Ye()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzIcon),d(2),x(e.nzTitle)}}function Kde(t,n){1&t&&C(0),2&t&&Ce(" ",g(2).nzCancelText," ")}function Jde(t,n){1&t&&(C(0),Fr(1,"nzI18n")),2&t&&Ce(" ",Rr(1,1,"Modal.cancelText")," ")}function Zde(t,n){1&t&&C(0),2&t&&Ce(" ",g(2).nzOkText," ")}function Qde(t,n){1&t&&(C(0),Fr(1,"nzI18n")),2&t&&Ce(" ",Rr(1,1,"Modal.okText")," ")}function Xde(t,n){if(1&t){const e=U();f(0,"div",4)(1,"div",5),w(2,Wde,2,0,"div",6),f(3,"div",7)(4,"div")(5,"div",8)(6,"div",9),w(7,qde,4,2,"ng-container",10),m(),f(8,"div",11)(9,"button",12,1),D("click",function(){return T(e),M(g().onCancel())}),w(11,Kde,1,1)(12,Jde,2,3),m(),f(13,"button",13,2),D("click",function(){return T(e),M(g().onConfirm())}),w(15,Zde,1,1)(16,Qde,2,3),m()()()()()()()}if(2&t){const e=g();Q("ant-popover-rtl","rtl"===e.dir),h("cdkTrapFocusAutoCapture",null!==e.nzAutoFocus)("ngClass",e._classMap)("ngStyle",e.nzOverlayStyle)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("@zoomBigMotion","active"),d(2),he(e.nzPopconfirmShowArrow?2:-1),d(5),h("nzStringTemplateOutlet",e.nzTitle),d(2),h("nzSize","small"),Pt("cdkFocusInitial","cancel"===e.nzAutoFocus||null),d(2),he(e.nzCancelText?11:12),d(2),h("nzSize","small")("nzType","danger"!==e.nzOkType?e.nzOkType:"primary")("nzDanger",e.nzOkDanger||"danger"===e.nzOkType)("nzLoading",e.confirmLoading)("disabled",e.nzOkDisabled),Pt("cdkFocusInitial","ok"===e.nzAutoFocus||null),d(2),he(e.nzOkText?15:16)}}let B1=(()=>{class t extends L7{getProxyPropertyMap(){return{nzOkText:["nzOkText",()=>this.nzOkText],nzOkType:["nzOkType",()=>this.nzOkType],nzOkDanger:["nzOkDanger",()=>this.nzOkDanger],nzOkDisabled:["nzOkDisabled",()=>this.nzOkDisabled],nzCancelText:["nzCancelText",()=>this.nzCancelText],nzBeforeConfirm:["nzBeforeConfirm",()=>this.nzBeforeConfirm],nzCondition:["nzCondition",()=>this.nzCondition],nzIcon:["nzIcon",()=>this.nzIcon],nzPopconfirmShowArrow:["nzPopconfirmShowArrow",()=>this.nzPopconfirmShowArrow],nzPopconfirmBackdrop:["nzBackdrop",()=>this.nzPopconfirmBackdrop],nzAutoFocus:["nzAutoFocus",()=>this.nzAutofocus],...super.getProxyPropertyMap()}}constructor(){super(xP),this._nzModuleName="popconfirm",this.trigger="click",this.placement="top",this.nzCondition=!1,this.nzPopconfirmShowArrow=!0,this.nzPopconfirmBackdrop=!1,this.nzAutofocus=null,this.visibleChange=new H,this.nzOnCancel=new H,this.nzOnConfirm=new H}createComponent(){super.createComponent(),this.component.nzOnCancel.pipe(I(this.destroy$)).subscribe(()=>{this.nzOnCancel.emit()}),this.component.nzOnConfirm.pipe(I(this.destroy$)).subscribe(()=>{this.nzOnConfirm.emit()})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-popconfirm",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-popover-open",o.visible)},inputs:{arrowPointAtCenter:[2,"nzPopconfirmArrowPointAtCenter","arrowPointAtCenter",O],title:[0,"nzPopconfirmTitle","title"],directiveTitle:[0,"nz-popconfirm","directiveTitle"],trigger:[0,"nzPopconfirmTrigger","trigger"],placement:[0,"nzPopconfirmPlacement","placement"],origin:[0,"nzPopconfirmOrigin","origin"],mouseEnterDelay:[0,"nzPopconfirmMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:[0,"nzPopconfirmMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:[0,"nzPopconfirmOverlayClassName","overlayClassName"],overlayStyle:[0,"nzPopconfirmOverlayStyle","overlayStyle"],visible:[0,"nzPopconfirmVisible","visible"],nzOkText:"nzOkText",nzOkType:"nzOkType",nzOkDisabled:[2,"nzOkDisabled","nzOkDisabled",O],nzOkDanger:[2,"nzOkDanger","nzOkDanger",O],nzCancelText:"nzCancelText",nzBeforeConfirm:"nzBeforeConfirm",nzIcon:"nzIcon",nzCondition:[2,"nzCondition","nzCondition",O],nzPopconfirmShowArrow:[2,"nzPopconfirmShowArrow","nzPopconfirmShowArrow",O],nzPopconfirmBackdrop:"nzPopconfirmBackdrop",nzAutofocus:"nzAutofocus"},outputs:{visibleChange:"nzPopconfirmVisibleChange",nzOnCancel:"nzOnCancel",nzOnConfirm:"nzOnConfirm"},exportAs:["nzPopconfirm"],standalone:!0,features:[je,mt]})}return kt([Nt()],t.prototype,"nzPopconfirmBackdrop",void 0),kt([Nt()],t.prototype,"nzAutofocus",void 0),t})(),xP=(()=>{class t extends u6{constructor(e,i,o,r,s){super(e,o,s),this.elementRef=i,this.nzCondition=!1,this.nzPopconfirmShowArrow=!0,this.nzOkType="primary",this.nzOkDanger=!1,this.nzOkDisabled=!1,this.nzAutoFocus=null,this.nzBeforeConfirm=null,this.nzOnCancel=new N,this.nzOnConfirm=new N,this._trigger="click",this.elementFocusedBeforeModalWasOpened=null,this._prefix="ant-popover",this.confirmLoading=!1,this.document=r}ngOnDestroy(){super.ngOnDestroy(),this.nzOnCancel.complete(),this.nzOnConfirm.complete()}show(){this.nzCondition?this.onConfirm():(this.capturePreviouslyFocusedElement(),super.show())}hide(){super.hide(),this.restoreFocus()}handleConfirm(){this.nzOnConfirm.next(),super.hide()}onCancel(){this.nzOnCancel.next(),super.hide()}onConfirm(){if(this.nzBeforeConfirm){const e=bE(this.nzBeforeConfirm()).pipe(Ns());this.confirmLoading=!0,e.pipe(c1(()=>{this.confirmLoading=!1,this.cdr.markForCheck()}),I(this.nzVisibleChange),I(this.destroy$)).subscribe(i=>{i&&this.handleConfirm()})}else this.handleConfirm()}capturePreviouslyFocusedElement(){this.document&&(this.elementFocusedBeforeModalWasOpened=this.document.activeElement)}restoreFocus(){const e=this.elementFocusedBeforeModalWasOpened;if(e&&"function"==typeof e.focus){const i=this.document.activeElement,o=this.elementRef.nativeElement;(!i||i===this.document.body||i===o||o.contains(i))&&e.focus()}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(Te),v(wt,8),v(It,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-popconfirm"]],viewQuery:function(i,o){if(1&i&&(ft(Yde,5,Te),ft(Ude,5,Te)),2&i){let r;Ae(r=Oe())&&(o.okBtn=r),Ae(r=Oe())&&(o.cancelBtn=r)}},exportAs:["nzPopconfirmComponent"],standalone:!0,features:[mt,me],decls:2,vars:6,consts:[["overlay","cdkConnectedOverlay"],["cancelBtn",""],["okBtn",""],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayOpen","cdkConnectedOverlayPush","nzArrowPointAtCenter"],["cdkTrapFocus","",1,"ant-popover",3,"cdkTrapFocusAutoCapture","ngClass","ngStyle","nzNoAnimation"],[1,"ant-popover-content"],[1,"ant-popover-arrow"],[1,"ant-popover-inner"],[1,"ant-popover-inner-content"],[1,"ant-popover-message"],[4,"nzStringTemplateOutlet"],[1,"ant-popover-buttons"],["nz-button","",3,"click","nzSize"],["nz-button","",3,"click","nzSize","nzType","nzDanger","nzLoading","disabled"],[1,"ant-popover-arrow-content"],[1,"ant-popover-message-title"],[1,"ant-popover-message-icon"],["nz-icon","","nzTheme","fill",3,"nzType"]],template:function(i,o){if(1&i){const r=U();w(0,Xde,17,20,"ng-template",3,0,ot),D("overlayOutsideClick",function(a){return T(r),M(o.onClickOutside(a))})("detach",function(){return T(r),M(o.hide())})("positionChange",function(a){return T(r),M(o.onPositionChange(a))})}2&i&&h("cdkConnectedOverlayHasBackdrop",o.nzBackdrop)("cdkConnectedOverlayOrigin",o.origin)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayOpen",o._visible)("cdkConnectedOverlayPush",o.cdkConnectedOverlayPush)("nzArrowPointAtCenter",o.nzArrowPointAtCenter)},dependencies:[d2,Mc,u2,J3,xA,Ase,Zo,ti,zo,Tn,Sn,On,cn,h2,nr,mi,tr,Bse,Hse],encapsulation:2,data:{animation:[O3]},changeDetection:0})}return t})(),tue=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[xP]})}return t})();const nue=["nz-rate-item",""],EP=t=>({$implicit:t});function iue(t,n){}function oue(t,n){}function rue(t,n){1&t&&S(0,"span",4)}const sue=["ulElement"];function aue(t,n){if(1&t){const e=U();f(0,"li",2)(1,"div",3),D("itemHover",function(o){const r=T(e).$index;return M(g().onItemHover(r,o))})("itemClick",function(o){const r=T(e).$index;return M(g().onItemClick(r,o))}),m()()}if(2&t){const e=n.$index,i=g();h("ngClass",i.starStyleArray[e]||"")("nzTooltipTitle",i.nzTooltips[e]),d(),h("allowHalf",i.nzAllowHalf)("character",i.nzCharacter)("index",e)}}let kP=(()=>{class t{constructor(){this.index=0,this.allowHalf=!1,this.itemHover=new H,this.itemClick=new H}hoverRate(e){this.itemHover.next(e&&this.allowHalf)}clickRate(e){this.itemClick.next(e&&this.allowHalf)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-rate-item",""]],inputs:{character:"character",index:"index",allowHalf:[2,"allowHalf","allowHalf",O]},outputs:{itemHover:"itemHover",itemClick:"itemClick"},exportAs:["nzRateItem"],standalone:!0,features:[je,me],attrs:nue,decls:6,vars:8,consts:[["defaultCharacter",""],[1,"ant-rate-star-second",3,"mouseover","click"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ant-rate-star-first",3,"mouseover","click"],["nz-icon","","nzType","star","nzTheme","fill"]],template:function(i,o){if(1&i){const r=U();f(0,"div",1),D("mouseover",function(a){return T(r),o.hoverRate(!1),M(a.stopPropagation())})("click",function(){return T(r),M(o.clickRate(!1))}),w(1,iue,0,0,"ng-template",2),m(),f(2,"div",3),D("mouseover",function(a){return T(r),o.hoverRate(!0),M(a.stopPropagation())})("click",function(){return T(r),M(o.clickRate(!0))}),w(3,oue,0,0,"ng-template",2),m(),w(4,rue,1,0,"ng-template",null,0,ot)}if(2&i){const r=He(5);d(),h("ngTemplateOutlet",o.character||r)("ngTemplateOutletContext",mr(4,EP,o.index)),d(2),h("ngTemplateOutlet",o.character||r)("ngTemplateOutletContext",mr(6,EP,o.index))}},dependencies:[Vn,On,cn],encapsulation:2,changeDetection:0})}return t})(),_v=(()=>{class t{get nzValue(){return this._value}set nzValue(e){this._value!==e&&(this._value=e,this.hasHalf=!Number.isInteger(e)&&this.nzAllowHalf,this.hoverValue=Math.ceil(e))}constructor(e,i,o,r,s,a){this.nzConfigService=e,this.ngZone=i,this.renderer=o,this.cdr=r,this.directionality=s,this.destroy$=a,this._nzModuleName="rate",this.nzAllowClear=!0,this.nzAllowHalf=!1,this.nzDisabled=!1,this.nzAutoFocus=!1,this.nzCount=5,this.nzTooltips=[],this.nzOnBlur=new H,this.nzOnFocus=new H,this.nzOnHoverChange=new H,this.nzOnKeyDown=new H,this.classMap={},this.starArray=[],this.starStyleArray=[],this.dir="ltr",this.hasHalf=!1,this.hoverValue=0,this.isFocused=!1,this._value=0,this.isNzDisableFirstChange=!0,this.onChange=()=>null,this.onTouched=()=>null}ngOnChanges(e){const{nzAutoFocus:i,nzCount:o,nzValue:r}=e;if(i&&!i.isFirstChange()){const s=this.ulElement.nativeElement;this.nzAutoFocus&&!this.nzDisabled?this.renderer.setAttribute(s,"autofocus","autofocus"):this.renderer.removeAttribute(s,"autofocus")}o&&this.updateStarArray(),r&&this.updateStarStyle()}ngOnInit(){this.nzConfigService.getConfigChangeEventForComponent("rate").pipe(I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.directionality.change.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>{nn(this.ulElement.nativeElement,"focus").pipe(I(this.destroy$)).subscribe(e=>{this.isFocused=!0,this.nzOnFocus.observers.length&&this.ngZone.run(()=>this.nzOnFocus.emit(e))}),nn(this.ulElement.nativeElement,"blur").pipe(I(this.destroy$)).subscribe(e=>{this.isFocused=!1,this.nzOnBlur.observers.length&&this.ngZone.run(()=>this.nzOnBlur.emit(e))})})}onItemClick(e,i){if(this.nzDisabled)return;this.hoverValue=e+1;const o=i?e+.5:e+1;this.nzValue===o?this.nzAllowClear&&(this.nzValue=0,this.onChange(this.nzValue)):(this.nzValue=o,this.onChange(this.nzValue)),this.updateStarStyle()}onItemHover(e,i){this.nzDisabled||((this.hoverValue!==e+1||i!==this.hasHalf)&&(this.hoverValue=e+1,this.hasHalf=i,this.updateStarStyle()),this.nzOnHoverChange.emit(this.hoverValue))}onRateLeave(){this.hasHalf=!Number.isInteger(this.nzValue),this.hoverValue=Math.ceil(this.nzValue),this.nzOnHoverChange.emit(this.hoverValue),this.updateStarStyle()}focus(){this.ulElement.nativeElement.focus()}blur(){this.ulElement.nativeElement.blur()}onKeyDown(e){const i=this.nzValue;39===e.keyCode&&this.nzValue0&&(this.nzValue-=this.nzAllowHalf?.5:1),i!==this.nzValue&&(this.onChange(this.nzValue),this.nzOnKeyDown.emit(e),this.updateStarStyle(),this.cdr.markForCheck())}updateStarArray(){this.starArray=Array(this.nzCount).fill(0).map((e,i)=>i),this.updateStarStyle()}updateStarStyle(){this.starStyleArray=this.starArray.map(e=>{const i="ant-rate-star",o=e+1;return{[`${i}-full`]:othis.hoverValue,[`${i}-focused`]:this.hasHalf&&o===this.hoverValue&&this.isFocused}})}writeValue(e){this.nzValue=e||0,this.updateStarArray(),this.cdr.markForCheck()}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(De),v($t),v(Ue),v(wt,8),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-rate"]],viewQuery:function(i,o){if(1&i&&ft(sue,7),2&i){let r;Ae(r=Oe())&&(o.ulElement=r.first)}},inputs:{nzAllowClear:[2,"nzAllowClear","nzAllowClear",O],nzAllowHalf:[2,"nzAllowHalf","nzAllowHalf",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",O],nzCharacter:"nzCharacter",nzCount:[2,"nzCount","nzCount",Pi],nzTooltips:"nzTooltips"},outputs:{nzOnBlur:"nzOnBlur",nzOnFocus:"nzOnFocus",nzOnHoverChange:"nzOnHoverChange",nzOnKeyDown:"nzOnKeyDown"},exportAs:["nzRate"],standalone:!0,features:[et([No,{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,ke,me],decls:4,vars:6,consts:[["ulElement",""],[1,"ant-rate",3,"keydown","mouseleave","ngClass","tabindex"],["nz-tooltip","",1,"ant-rate-star",3,"ngClass","nzTooltipTitle"],["nz-rate-item","",3,"itemHover","itemClick","allowHalf","character","index"]],template:function(i,o){if(1&i){const r=U();f(0,"ul",1,0),D("keydown",function(a){return T(r),o.onKeyDown(a),M(a.preventDefault())})("mouseleave",function(a){return T(r),o.onRateLeave(),M(a.stopPropagation())}),ji(2,aue,2,5,"li",2,fr),m()}2&i&&(Q("ant-rate-disabled",o.nzDisabled)("ant-rate-rtl","rtl"===o.dir),h("ngClass",o.classMap)("tabindex",o.nzDisabled?-1:1),d(2),$i(o.starArray))},dependencies:[Zo,B7,Ta,kP],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzAllowClear",void 0),kt([Nt()],t.prototype,"nzAllowHalf",void 0),t})(),cue=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[_v,kP]})}return t})();const OP=()=>({});function lue(t,n){1&t&&S(0,"span",21)}function due(t,n){1&t&&(f(0,"span",25),C(1,"/"),m())}function uue(t,n){if(1&t&&(f(0,"span"),C(1),w(2,due,2,0,"span",24),m()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),x(e),d(),h("ngIf",i!==o.dataSource.breadcrumb.length-1)}}function hue(t,n){if(1&t&&(f(0,"div",22),w(1,uue,3,2,"span",23),m()),2&t){const e=g(2);d(),h("ngForOf",e.dataSource.breadcrumb)}}function pue(t,n){if(1&t){const e=U();f(0,"div",26)(1,"nz-rate",27),D("ngModelChange",function(o){return T(e),M(g(2).onRateChange(o))}),m()()}if(2&t){const e=g(2);d(),h("ngModel",e.dataSource.rate)("nzDisabled",!e.isLogin)}}function fue(t,n){if(1&t&&(f(0,"div",28)(1,"a",29),C(2),m()()),2&t){const e=n.$implicit,i=g(2);qo("background-color: "+(i.tagMap[e]&&i.tagMap[e].color||"#1890ff")),d(),h("href",(null==i.dataSource.urls?null:i.dataSource.urls[e])||"javascript:void(0)",Ot)("target",null!=i.dataSource.urls&&i.dataSource.urls[e]?"_blank":""),d(),x(i.tagMap[e]&&i.tagMap[e].name)}}function mue(t,n){if(1&t){const e=U();f(0,"div",17)(1,"i",30),D("click",function(){return T(e),M(g(2).openEditWebMoal())}),m()()}2&t&&h("nzTooltipTitle",g(2).$t("_edit"))}function gue(t,n){if(1&t){const e=U();f(0,"div",17)(1,"i",31),D("click",function(){return T(e),M(g(2).openMoveWebModal())}),m()()}2&t&&h("nzTooltipTitle",g(2).$t("_move"))}function vue(t,n){if(1&t){const e=U();f(0,"div",32),D("nzOnConfirm",function(){return T(e),M(g(2).confirmDel())}),S(1,"i",33),m()}2&t&&h("nzPopconfirmTitle",g(2).$t("_confirmDel"))}function _ue(t,n){if(1&t){const e=U();f(0,"div",4),w(1,lue,1,0,"span",5)(2,hue,2,1,"div",6)(3,pue,2,2,"div",7),f(4,"a",8)(5,"div",9),S(6,"app-logo",10)(7,"div",11),m()(),f(8,"div",12)(9,"a",8),S(10,"pre",13),m(),f(11,"div",14),w(12,fue,3,5,"div",15),m()(),f(13,"div",16)(14,"div",17)(15,"i",18),D("click",function(o){return T(e),M(g().copyUrl(o,2))})("mouseout",function(){return T(e),M(g().copyMouseout())}),m()(),f(16,"div",17)(17,"i",18),D("click",function(o){return T(e),M(g().copyUrl(o,1))})("mouseout",function(){return T(e),M(g().copyMouseout())}),m()(),w(18,mue,2,1,"div",19)(19,gue,2,1,"div",19)(20,vue,2,1,"div",20),m()()}if(2&t){const e=g();d(),h("ngIf",e.isLogin&&!1===e.dataSource.ok),d(),h("ngIf",e.searchKeyword&&(null==e.dataSource?null:e.dataSource.breadcrumb)),d(),h("ngIf",e.settings.showRate),d(),h("href",e.dataSource.url,Ot),d(2),h("src",e.dataSource.icon||"")("name",e.dataSource.name),d(),h("innerHTML",e.dataSource.name,Wn)("title",e.dataSource.__name__||e.dataSource.name),d(2),h("href",e.dataSource.url,Ot),d(),h("innerHTML",e.dataSource.desc,Wn)("title",e.dataSource.__desc__||e.dataSource.desc),d(2),h("ngForOf",e.objectKeys(e.dataSource.urls||Ti(19,OP))),d(2),h("nzTooltipTitle",e.$t(e.copyUrlDone?"_copySuccess":"_copyUrl")),d(),h("nzType",e.copyUrlDone?"check":"copy"),d(),h("nzTooltipTitle",e.$t(e.copyPathDone?"_copySuccess":"_shareWeb")),d(),h("nzType",e.copyPathDone?"check":"share-alt"),d(),h("ngIf",e.isLogin),d(),h("ngIf",e.isLogin&&4===e.indexs.length),d(),h("ngIf",e.isLogin)}}function bue(t,n){1&t&&S(0,"span",21)}function yue(t,n){1&t&&(f(0,"span",25),C(1,"/"),m())}function Cue(t,n){if(1&t&&(f(0,"span"),C(1),w(2,yue,2,0,"span",24),m()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),x(e),d(),h("ngIf",i!==o.dataSource.breadcrumb.length-1)}}function wue(t,n){if(1&t&&(f(0,"div",22),w(1,Cue,3,2,"span",23),m()),2&t){const e=g(2);d(),h("ngForOf",e.dataSource.breadcrumb)}}function zue(t,n){if(1&t&&(f(0,"a",34),w(1,bue,1,0,"span",5)(2,wue,2,1,"div",6),f(3,"div",35),S(4,"app-logo",10),f(5,"div",36),S(6,"div",37)(7,"pre",38),m()()()),2&t){const e=g();h("href",e.dataSource.url,Ot),d(),h("ngIf",e.isLogin&&!1===e.dataSource.ok),d(),h("ngIf",e.searchKeyword&&(null==e.dataSource?null:e.dataSource.breadcrumb)),d(2),h("src",e.dataSource.icon||"")("name",e.dataSource.name),d(),h("title",e.dataSource.__desc__||e.dataSource.desc),d(),h("innerHTML",e.dataSource.name,Wn),d(),h("innerHTML",e.dataSource.desc,Wn)}}function Sue(t,n){1&t&&S(0,"span",21)}function Tue(t,n){1&t&&(f(0,"span",25),C(1,"/"),m())}function Mue(t,n){if(1&t&&(f(0,"span"),C(1),w(2,Tue,2,0,"span",24),m()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),x(e),d(),h("ngIf",i!==o.dataSource.breadcrumb.length-1)}}function Due(t,n){if(1&t&&(f(0,"div",22),w(1,Mue,3,2,"span",23),m()),2&t){const e=g(2);d(),h("ngForOf",e.dataSource.breadcrumb)}}function xue(t,n){if(1&t&&(f(0,"div",46),C(1),m()),2&t){const e=g(2);d(),x(e.getRate)}}function Eue(t,n){if(1&t&&(f(0,"div",28)(1,"a",29),C(2),m()()),2&t){const e=n.$implicit,i=g(2);qo("background-color: "+(i.tagMap[e]&&i.tagMap[e].color||"#1890ff")),d(),h("href",(null==i.dataSource.urls?null:i.dataSource.urls[e])||"javascript:void(0)",Ot)("target",null!=i.dataSource.urls&&i.dataSource.urls[e]?"_blank":""),d(),x(i.tagMap[e]&&i.tagMap[e].name)}}function kue(t,n){if(1&t){const e=U();f(0,"span",47),D("click",function(){return T(e),M(g(2).openEditWebMoal())}),C(1),m()}if(2&t){const e=g(2);d(),x(e.$t("_edit"))}}function Aue(t,n){if(1&t){const e=U();f(0,"span",47),D("click",function(){return T(e),M(g(2).openMoveWebModal())}),C(1),m()}if(2&t){const e=g(2);d(),x(e.$t("_move"))}}function Oue(t,n){if(1&t){const e=U();f(0,"div",48),D("nzOnConfirm",function(){return T(e),M(g(2).confirmDel())}),f(1,"span",49),C(2),m()()}if(2&t){const e=g(2);h("nzPopconfirmTitle",e.$t("_confirmDel")),d(2),x(e.$t("_del"))}}function Pue(t,n){if(1&t&&(f(0,"div",39),w(1,Sue,1,0,"span",5)(2,Due,2,1,"div",6),f(3,"a",8)(4,"div",40),S(5,"app-logo",41)(6,"div",37),m(),f(7,"div",36),S(8,"pre",38),m()(),f(9,"div",42)(10,"div",14),w(11,xue,2,1,"div",43)(12,Eue,3,5,"div",15)(13,kue,2,1,"span",44)(14,Aue,2,1,"span",44)(15,Oue,3,2,"div",45),m()()()),2&t){const e=g();d(),h("ngIf",e.isLogin&&!1===e.dataSource.ok),d(),h("ngIf",e.searchKeyword&&(null==e.dataSource?null:e.dataSource.breadcrumb)),d(),h("href",e.dataSource.url,Ot),d(2),h("src",e.dataSource.icon||"")("name",e.dataSource.name)("size",26),d(),h("innerHTML",e.dataSource.name,Wn),d(),h("title",e.dataSource.__desc__||e.dataSource.desc),d(),h("innerHTML",e.dataSource.desc,Wn),d(3),h("ngIf",e.settings.showRate),d(),h("ngForOf",e.objectKeys(e.dataSource.urls||Ti(14,OP))),d(),h("ngIf",e.isLogin),d(),h("ngIf",e.isLogin&&4===e.indexs.length),d(),h("ngIf",e.isLogin)}}let k6=(()=>{class t{constructor(e){this.message=e,this.searchKeyword="",this.dataSource={},this.indexs=[],this.cardStyle="standard",this.$t=_e,this.objectKeys=Object.keys,this.settings=An,this.websiteList=yn,this.isLogin=Wi,this.copyUrlDone=!1,this.copyPathDone=!1,this.tagMap=ju}ngOnInit(){}copyUrl(e,i){var o=this;return Di(function*(){const r=o.dataSource,{origin:s,hash:a,pathname:c}=window.location,l=`${s}${c}${a}?q=${r.name}&url=${encodeURIComponent(r.url)}`,u=yield function Ote(t,n){const e=t.target,i=`copy-${Date.now()}`;return e.id=i,e.setAttribute("data-clipboard-text",n),new Promise(o=>{const r=new(zX())(`#${i}`);r.on("success",function(){r.destroy(),o(!0)}),r.on("error",function(){r.destroy(),o(!1)})})}(e,1===i?l:r.url);1===i?o.copyPathDone=u:o.copyUrlDone=u})()}copyMouseout(){this.copyUrlDone=!1,this.copyPathDone=!1}openEditWebMoal(){Ei.emit("CREATE_WEB",{detail:this.dataSource})}onRateChange(e){this.dataSource.rate=e,Yn(this.websiteList)}confirmDel(){M5({...this.dataSource,name:fs(this.dataSource.name),desc:fs(this.dataSource.desc)})}openMoveWebModal(){Ei.emit("MOVE_WEB",{indexs:this.indexs,data:[this.dataSource]})}get getRate(){if(!this.dataSource.rate)return null;const e=Number(this.dataSource.rate);return e?e.toFixed(1)+"\u5206":null}static#e=this.\u0275fac=function(i){return new(i||t)(v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-card"]],inputs:{searchKeyword:"searchKeyword",dataSource:"dataSource",indexs:"indexs",cardStyle:"cardStyle"},decls:4,vars:3,consts:[[3,"ngSwitch"],["class","container standard dark-border-color",4,"ngSwitchCase"],["target","_blank","rel","noreferer noopener","class","container example2 dark-bg dark-white dark-shadow",3,"href",4,"ngSwitchCase"],["class","container column2 ellipsis dark-bg dark-white dark-border-color dark-shadow dark-hover",4,"ngSwitchDefault"],[1,"container","standard","dark-border-color"],["nz-icon","","nzType","stop","nzTheme","outline","class","stop-icon","title","\u7591\u4f3c\u5f02\u5e38",4,"ngIf"],["class","breadcrumb1 ellipsis",4,"ngIf"],["class","rate",4,"ngIf"],["target","_blank","rel","noreferer noopener",3,"href"],[1,"top"],[3,"src","name"],[1,"title","ellipsis2","dark-white",3,"innerHTML","title"],[1,"middle"],[1,"desc","dark-text","ellipsis3",3,"innerHTML","title"],[1,"tagbox"],["class","tag-item",3,"style",4,"ngFor","ngForOf"],[1,"actionbar","dark-border-color"],["nz-tooltip","",1,"action-item","dark-border-color",3,"nzTooltipTitle"],["nz-icon","","nzTheme","outline",3,"click","mouseout","nzType"],["class","action-item dark-border-color","nz-tooltip","",3,"nzTooltipTitle",4,"ngIf"],["class","action-item dark-border-color","nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzPopconfirmTitle","nzOnConfirm",4,"ngIf"],["nz-icon","","nzType","stop","nzTheme","outline","title","\u7591\u4f3c\u5f02\u5e38",1,"stop-icon"],[1,"breadcrumb1","ellipsis"],[4,"ngFor","ngForOf"],["class","slash",4,"ngIf"],[1,"slash"],[1,"rate"],["nzAllowHalf","",3,"ngModelChange","ngModel","nzDisabled"],[1,"tag-item"],[3,"href","target"],["nz-icon","","nzType","edit","nzTheme","outline",3,"click"],["nz-icon","","nzType","swap","nzTheme","outline",3,"click"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",1,"action-item","dark-border-color",3,"nzOnConfirm","nzPopconfirmTitle"],["nz-icon","","nzType","delete","nzTheme","outline"],["target","_blank","rel","noreferer noopener",1,"container","example2","dark-bg","dark-white","dark-shadow",3,"href"],[1,"wrapper","ellipsis"],[1,"right-box",3,"title"],[1,"title","ellipsis",3,"innerHTML"],[1,"desc","dark-text","ellipsis",3,"innerHTML"],[1,"container","column2","ellipsis","dark-bg","dark-white","dark-border-color","dark-shadow","dark-hover"],[1,"title-bar"],[3,"src","name","size"],[1,"bottom-bar"],["class","rate2",4,"ngIf"],["class","action-btn dark-text dark-hover-text",3,"click",4,"ngIf"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzPopconfirmTitle","nzOnConfirm",4,"ngIf"],[1,"rate2"],[1,"action-btn","dark-text","dark-hover-text",3,"click"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"],[1,"action-btn","dark-text","dark-hover-text"]],template:function(i,o){1&i&&($e(0,0),w(1,_ue,21,20,"div",1)(2,zue,8,8,"a",2)(3,Pue,16,15,"div",3),Ye()),2&i&&(h("ngSwitch",o.cardStyle),d(),h("ngSwitchCase","standard"),d(),h("ngSwitchCase","example"))},dependencies:[zn,Tt,lc,fu,Gm,mi,Qi,B1,Ta,cn,_v,Xi,Fc],styles:[".container[_ngcontent-%COMP%]{position:relative;height:100%}.container[_ngcontent-%COMP%] .breadcrumb1[_ngcontent-%COMP%]{padding:0 0 0 8px;font-size:12px;color:#666}.container[_ngcontent-%COMP%] .breadcrumb1[_ngcontent-%COMP%] .slash[_ngcontent-%COMP%]{margin:0 4px}.container[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{color:#00000073;word-break:break-all;white-space:pre-wrap}.container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{white-space:normal;word-break:break-all}.container[_ngcontent-%COMP%] .stop-icon[_ngcontent-%COMP%]{z-index:3;color:red;font-weight:700;position:absolute;top:12px;right:12px}.standard[_ngcontent-%COMP%]{box-shadow:0 1px 5px #0000001a;border-radius:4px;border:1px solid #eee;display:flex;flex-direction:column;padding-top:5px;transition:all .2s ease-out}.standard[_ngcontent-%COMP%]:hover{transform:translateY(-3px)}.standard[_ngcontent-%COMP%] .rate[_ngcontent-%COMP%]{padding:0 8px}.standard[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%]{flex:1}.standard[_ngcontent-%COMP%] .top[_ngcontent-%COMP%]{margin-top:5px;display:flex;align-items:center;padding:0 8px}.standard[_ngcontent-%COMP%] .top[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{margin-left:8px;font-weight:500;color:#000}.standard[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{padding:8px 8px 0;margin-bottom:5px}.standard[_ngcontent-%COMP%] .tagbox[_ngcontent-%COMP%]{display:flex;padding:0 8px;flex-wrap:wrap}.standard[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]{margin:6px 6px 0 0;padding:0 6px;border-radius:2px;font-size:12px;display:flex;align-items:center;transition:all .1s linear;color:#fff}.standard[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:currentColor}.standard[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]:hover{opacity:.8}.standard[_ngcontent-%COMP%] .actionbar[_ngcontent-%COMP%]{display:flex;border-top:1px solid #eee;padding:8px 0;margin-top:10px}.standard[_ngcontent-%COMP%] .actionbar[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%]{flex:1;text-align:center;font-size:16px;color:#999;cursor:pointer}.standard[_ngcontent-%COMP%] .actionbar[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%]:hover{color:#1890ff}.standard[_ngcontent-%COMP%] .actionbar[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%]:not(:nth-last-child(1)){border-right:1px solid #eee}.example2[_ngcontent-%COMP%]{background-color:#fff;padding:8px;border-radius:8px;cursor:pointer;box-shadow:0 0 3px #0000001a,0 1px 2px -1px #0000001a;border:1px solid transparent;transition:all .15s linear;color:#000;display:block}.example2[_ngcontent-%COMP%]:hover{border:1px solid #78b7fa;transform:translateY(-3px)}.example2[_ngcontent-%COMP%]:hover .title[_ngcontent-%COMP%]{color:#007bff}.example2[_ngcontent-%COMP%] .breadcrumb1[_ngcontent-%COMP%]{padding:0 0 4px}.example2[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{display:flex}.example2[_ngcontent-%COMP%] .right-box[_ngcontent-%COMP%]{flex:1;width:0;margin-left:12px}.example2[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{margin:0;font-size:12px} .column-border .column2{border:1px solid transparent!important;box-shadow:0 1px 5px #0000001a;border-radius:4px}.column2[_ngcontent-%COMP%]{background-color:#fff;padding:8px 12px;border-bottom:1px solid #eee;transition:all .15s linear;color:#000;display:block}.column2[_ngcontent-%COMP%] .breadcrumb1[_ngcontent-%COMP%]{padding:0 0 4px}.column2[_ngcontent-%COMP%]:hover{background-color:#f2f3f5}.column2[_ngcontent-%COMP%]:hover .action-btn[_ngcontent-%COMP%]{display:block}.column2[_ngcontent-%COMP%] .title-bar[_ngcontent-%COMP%]{display:flex;align-items:center}.column2[_ngcontent-%COMP%] .right-box[_ngcontent-%COMP%]{margin-top:6px}.column2[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-weight:700;margin-left:10px;font-size:15px}.column2[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{margin:0;font-size:12px}.column2[_ngcontent-%COMP%] .bottom-bar[_ngcontent-%COMP%]{display:flex;margin-top:4px}.column2[_ngcontent-%COMP%] .tagbox[_ngcontent-%COMP%]{display:flex;flex:1;justify-content:flex-start;align-items:center;flex-wrap:wrap;row-gap:5px}.column2[_ngcontent-%COMP%] .tagbox[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#fff}.column2[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]{margin-right:6px;padding:0 6px;border-radius:2px;font-size:12px;display:flex;align-items:center;transition:all .1s linear}.column2[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]:hover{opacity:.8}.column2[_ngcontent-%COMP%] .rate2[_ngcontent-%COMP%]{color:#8a919f;margin-right:10px}.column2[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{margin-right:4px;color:#8a919f;font-size:12px;display:none;cursor:pointer}.column2[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]:hover{color:#666} .gutter-row .ant-card{height:100%;display:flex;flex-direction:column;justify-content:space-between}"]})}return t})();function Iue(t,n){if(1&t){const e=U();f(0,"li",4),D("click",function(){const o=T(e).index,r=g();return M(r.handleCilck(r.index+o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g();Q("moreActive",o.page===o.index+i)("dark-text-active",o.page===o.index+i),d(),Ce(" ",e.title," ")}}let bv=(()=>{class t{constructor(){this.index=0,this.data=[],this.page=0,this.onClick=new H}ngOnInit(){}handleCilck(e){this.onClick?.emit?.(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-web-more-menu"]],inputs:{index:"index",data:"data",page:"page"},outputs:{onClick:"onClick"},decls:5,vars:2,consts:[["menu","nzDropdownMenu"],["nz-dropdown","","nzPlacement","bottomRight",1,"more-btn","dark-white","iconfont","icongengduo",2,"color","#08c",3,"nzDropdownMenu"],["nz-menu",""],["nzMenuClassName","navpopover","nz-menu-item","","class","navpopover over-item dark-text dark-hover",3,"moreActive","dark-text-active","click",4,"ngFor","ngForOf"],["nzMenuClassName","navpopover","nz-menu-item","",1,"navpopover","over-item","dark-text","dark-hover",3,"click"]],template:function(i,o){1&i&&(S(0,"span",1),f(1,"nz-dropdown-menu",null,0)(3,"ul",2),w(4,Iue,2,5,"li",3),m()()),2&i&&(h("nzDropdownMenu",He(2)),d(4),h("ngForOf",o.data))},dependencies:[zn,mi,Sa,Us,N1,C2],styles:[".over-item[_ngcontent-%COMP%]{cursor:pointer;margin:0;padding:7px 16px;text-align:center}.over-item.moreActive[_ngcontent-%COMP%]{font-weight:700!important;color:#08c}.more-btn[_ngcontent-%COMP%]{z-index:11;position:relative;cursor:pointer}"]})}return t})();const Nue=()=>[16,16],Vue=(t,n,e,i)=>[t,n,e,i];function Fue(t,n){if(1&t){const e=U();f(0,"span",15),D("click",function(){const o=T(e).index;return M(g().handleCilckTopNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g();Q("active",o.page===i)("dark-text-active",o.page===i),d(),Ce(" ",e.title," ")}}function Rue(t,n){if(1&t){const e=U();f(0,"app-web-more-menu",16),D("onClick",function(o){return T(e),M(g().handleCilckTopNav(o))}),m()}if(2&t){const e=g();h("data",e.websiteList.slice(e.overIndex,9999))("index",e.overIndex)("page",e.page)}}function Lue(t,n){if(1&t){const e=U();f(0,"div",18),D("click",function(){const o=T(e).index;return M(g(2).handleSidebarNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);Q("active",o.id===i)("dark-item-active",o.id===i),d(),Ce(" ",e.title," ")}}function Hue(t,n){if(1&t&&(f(0,"div"),w(1,Lue,2,5,"div",17),m()),2&t){const e=g();d(),h("ngForOf",e.websiteList[e.page].nav)("ngForTrackBy",e.trackByItem)}}function Bue(t,n){if(1&t&&(f(0,"div",23),S(1,"app-card",24),m()),2&t){const e=n.$implicit,i=n.index,o=g().index,r=g(2);h("nzSpan",8)("nzSm",12)("nzMd",8)("nzXs",24),d(),h("cardStyle",r.settings.lightCardStyle)("dataSource",e)("indexs",nu(8,Vue,r.page,r.id,o,i))("searchKeyword",r.searchKeyword)}}function jue(t,n){if(1&t){const e=U();f(0,"div")(1,"app-toolbar-title",20),D("onCollapse",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).onCollapse(r,s))}),m(),f(2,"div",21),w(3,Bue,2,13,"div",22),m()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);d(),h("dataSource",e)("index",i),d(),Lt("display",e.collapsed?"none":""),h("nzGutter",Ti(7,Nue)),d(),h("ngForOf",e.nav)("ngForTrackBy",o.trackByItemWeb)}}function $ue(t,n){if(1&t&&(f(0,"div"),w(1,jue,4,8,"div",19),m()),2&t){const e=g();d(),h("ngForOf",e.currentList.slice(0,e.sliceMax))("ngForTrackBy",e.trackByItem)}}function Yue(t,n){1&t&&S(0,"app-no-data")}function Uue(t,n){if(1&t&&(f(0,"div",27)(1,"a",28),S(2,"img",29),m()()),2&t){const e=n.$implicit;d(),h("href",e.url||"javascript:void(0)",Ot)("target",e.url?"_blank":"_self"),d(),h("src",e.src,Ot)}}function Wue(t,n){if(1&t&&(f(0,"div",25),w(1,Uue,3,3,"div",26),m()),2&t){const e=g();d(),h("ngForOf",e.settings.lightImages)}}let Gue=(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.isLogin=Wi,this.sliceMax=1,this.settings=An,this.overIndex=Number.MAX_SAFE_INTEGER,this.searchKeyword="",this.onCollapse=(o,r)=>{o.collapsed=!o.collapsed,this.websiteList[this.page].nav[this.id].nav[r]=o,Yn(this.websiteList)},this.onCollapseAll=()=>{z5(this.websiteList)}}ngOnInit(){eE(),this.activatedRoute.queryParams.subscribe(()=>{const{id:e,page:i,q:o}=pi();this.page=i,this.id=e,this.searchKeyword=o,this.sliceMax=1,this.currentList=o?S1(this.websiteList,o):Bu(),setTimeout(()=>{this.sliceMax=Number.MAX_SAFE_INTEGER},100)})}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}collapsed(){try{return!!yn[this.page].nav[this.id].collapsed}catch{return!1}}handleCilckTopNav(e){const i=this.websiteList[e].id||0;this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:e,id:i,_:Date.now()}})}handleSidebarNav(e){const{page:i}=pi();this.websiteList[i].id=e,this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:i,id:e,_:Date.now()}})}ngAfterViewInit(){"ellipsis"===this.settings.lightOverType&&queueMicrotask(()=>{const e=D5(".top-nav .over-item");this.overIndex!==e&&(this.overIndex=e)})}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-light"]],decls:18,vars:10,consts:[["noData",""],[1,"index-wrapper"],[1,"light-box"],[1,"homepage","dark-border-color","dark-bg"],["selector",".main",3,"onCollapse","collapsed"],[1,"top-nav","dark-scrollbar","dark-border-color","dark-bg"],["class","over-item ripple-btn dark-text",3,"active","dark-text-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[3,"data","index","page","onClick",4,"ngIf"],[1,"index-section","user-select-none","dark-bg"],["id","sidebar",1,"sidebar","dark-bg","dark-border-color"],[4,"ngIf"],[1,"main","dark-scrollbar"],[4,"ngIf","ngIfElse"],["class","right dark-scrollbar",4,"ngIf"],[1,"layer-bg","dark-bg"],[1,"over-item","ripple-btn","dark-text",3,"click"],[3,"onClick","data","index","page"],["class","tag dark-text",3,"active","dark-item-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"tag","dark-text",3,"click"],[4,"ngFor","ngForOf","ngForTrackBy"],[3,"onCollapse","dataSource","index"],["nz-row","",2,"padding","0 10px",3,"nzGutter"],["class","gutter-row","nz-col","",3,"nzSpan","nzSm","nzMd","nzXs",4,"ngFor","ngForOf","ngForTrackBy"],["nz-col","",1,"gutter-row",3,"nzSpan","nzSm","nzMd","nzXs"],[1,"column-border",3,"cardStyle","dataSource","indexs","searchKeyword"],[1,"right","dark-scrollbar"],["class","aditem",4,"ngFor","ngForOf"],[1,"aditem"],[3,"href","target"],[1,"adsimg",3,"src"]],template:function(i,o){if(1&i){const r=U();f(0,"div",1)(1,"div",2)(2,"main",3)(3,"app-fixbar",4),D("onCollapse",function(){return T(r),M(o.onCollapseAll())}),m(),f(4,"nav",5),w(5,Fue,2,5,"span",6)(6,Rue,1,3,"app-web-more-menu",7),m(),f(7,"section",8)(8,"aside",9),w(9,Hue,2,2,"div",10),m(),f(10,"div",11),S(11,"app-search-engine"),w(12,$ue,2,2,"div",12)(13,Yue,1,0,"ng-template",null,0,ot),m()()(),w(15,Wue,2,1,"div",13),m(),S(16,"app-footer"),m(),S(17,"div",14)}if(2&i){const r=He(14);Q("noimg",o.settings.lightImages.length<=0),d(3),h("collapsed",o.collapsed()),d(2),h("ngForOf",o.websiteList.slice(0,o.overIndex))("ngForTrackBy",o.trackByItem),d(),h("ngIf",o.overIndex0)("ngIfElse",r),d(3),h("ngIf",o.settings.lightImages.length>0)}},dependencies:[zn,Tt,x1,Cc,z2,S2,h6,H1,vv,k6,bv],styles:['.layer-bg[_ngcontent-%COMP%]{z-index:-1;position:fixed;inset:0}@media (max-width: 1280px){.index-wrapper[_ngcontent-%COMP%]{--width: 800px;--rightWidth: 200px}.index-wrapper.noimg[_ngcontent-%COMP%]{--width: 1000px}}@media (max-width: 1080px){.index-wrapper[_ngcontent-%COMP%]{--width: 800px !important}.right[_ngcontent-%COMP%]{display:none}}@media (max-width: 1000px){.light-box[_ngcontent-%COMP%]{width:100%!important}}@media (max-width: 810px){.index-wrapper[_ngcontent-%COMP%]{--top: 0}}.index-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh;padding-top:var(--top, 15px)}.index-wrapper[_ngcontent-%COMP%] .light-box[_ngcontent-%COMP%]{display:flex;justify-content:center;height:100%;margin:0 auto;column-gap:20px}.index-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{width:var(--rightWidth, 230px);min-width:var(--rightWidth, 230px);max-height:calc(100vh - 50px);overflow:hidden;overflow-y:auto}.index-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .adsimg[_ngcontent-%COMP%]{display:block;width:100%;border-radius:4px}.index-wrapper[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .aditem[_ngcontent-%COMP%]{margin-bottom:20px;border-radius:4px;overflow:hidden}.homepage[_ngcontent-%COMP%]{width:var(--width, 1000px);height:100%;position:relative;background:#fbfbfb;border-radius:5px;overflow:hidden;transition:.1s linear;border:1px solid transparent}.homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%]{padding:10px 0;overflow:none;overflow-x:auto;white-space:nowrap;border-bottom:1px solid #eee;text-align:center;-webkit-user-select:none;user-select:none}.homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%] .more-btn, .homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%] .ripple-btn[_ngcontent-%COMP%]{height:40px;position:relative;padding:0 15px;color:#000;cursor:pointer;border-radius:5px;overflow:hidden;display:inline-flex;align-items:center}.homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%] .more-btn.active:after, .homepage[_ngcontent-%COMP%] .top-nav[_ngcontent-%COMP%] .ripple-btn.active[_ngcontent-%COMP%]:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;border-radius:2px;background-color:#108ee9}.index-section[_ngcontent-%COMP%]{position:relative;height:calc(100% - 52px);overflow:hidden}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{position:relative;width:80px;height:100%;text-align:center;border-right:1px solid #eee;overflow-y:auto}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%]{position:relative;cursor:pointer;padding:11px 0}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]{color:#1890ff}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]:after, .index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;width:100%}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]:after{top:0;border-top:1px dashed #ccc}.index-section[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .tag.active[_ngcontent-%COMP%]:before{content:"";bottom:0;border-bottom:1px dashed #ccc}.index-section[_ngcontent-%COMP%] .main[_ngcontent-%COMP%]{width:calc(100% - 80px);position:absolute;top:0;left:80px;bottom:30px;padding-bottom:50px;overflow:hidden;overflow-y:auto}']})}return t})();const que=(t,n,e,i)=>[t,n,e,i];function Kue(t,n){if(1&t){const e=U();f(0,"div",22),D("click",function(){const o=T(e).index;return M(g().handleCilckTopMenu(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g();Q("active",o.page===i)("dark-text-active",o.page===i),d(),Ce(" ",e.title," ")}}function Jue(t,n){if(1&t){const e=U();f(0,"app-web-more-menu",23),D("onClick",function(o){return T(e),M(g().handleCilckTopMenu(o))}),m()}if(2&t){const e=g();h("data",e.websiteList.slice(e.overIndex,9999))("index",e.overIndex)("page",e.page)}}function Zue(t,n){1&t&&S(0,"img",29),2&t&&h("src",g().$implicit.icon,Ot)}function Que(t,n){if(1&t){const e=U();f(0,"div",26),D("click",function(){const o=T(e).index;return M(g(2).handleSidebarNav(o))}),w(1,Zue,1,1,"img",27),f(2,"span",28),C(3),m()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);Q("active",o.id===i)("dark-item-active",o.id===i),d(),h("ngIf",e.icon),d(2),x(e.title)}}function Xue(t,n){if(1&t&&(f(0,"div",24),w(1,Que,4,6,"div",25),m()),2&t){const e=g();d(),h("ngForOf",e.websiteList[e.page].nav)("ngForTrackBy",e.trackByItem)}}function e2e(t,n){if(1&t){const e=U();f(0,"div",30),D("click",function(){const o=T(e).index;return M(g().handleCheckThree(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index;Q("active",g().selectedIndex===i)("none",!e.title),d(),Ce(" ",e.title," ")}}function t2e(t,n){if(1&t&&S(0,"app-card",32),2&t){const e=n.$implicit,i=n.index,o=g(2);h("indexs",nu(4,que,o.page,o.id,o.selectedIndex,i))("cardStyle",o.settings.superCardStyle)("dataSource",e)("searchKeyword",o.searchKeyword)}}function n2e(t,n){if(1&t&&(f(0,"div"),w(1,t2e,1,9,"app-card",31),m()),2&t){const e=g();d(),h("ngForOf",e.currentList[e.selectedIndex].nav)("ngForTrackBy",e.trackByItemWeb)}}function i2e(t,n){1&t&&S(0,"app-no-data")}function o2e(t,n){if(1&t){const e=U();f(0,"div",33)(1,"span",34),D("click",function(){return T(e),M(g().openCreateWebModal())}),C(2),m()()}if(2&t){const e=g();d(2),x(e.$t(e.isLogin?"_add":"_apply"))}}function r2e(t,n){if(1&t&&(f(0,"div",37)(1,"a",38),S(2,"img",39),m()()),2&t){const e=n.$implicit;d(),h("href",e.url||"javascript:void(0)",Ot)("target",e.url?"_blank":"_self"),d(),h("src",e.src,Ot)}}function s2e(t,n){if(1&t&&(f(0,"div",35),w(1,r2e,3,3,"div",36),m()),2&t){const e=g();d(),h("ngForOf",e.settings.superImages)}}let a2e=(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.$t=_e,this.LOGO_CDN=An.favicon,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.selectedIndex=0,this.title=An.title.trim().split(/\s/)[0],this.searchEngineList=x5,this.isLogin=Wi,this.settings=An,this.overIndex=Number.MAX_SAFE_INTEGER,this.searchKeyword=""}ngOnInit(){this.activatedRoute.queryParams.subscribe(()=>{const{id:e,page:i,q:o}=pi();this.page=i,this.id=e,this.searchKeyword=o,this.handleCheckThree(0),this.currentList=o?S1(this.websiteList,o):Bu()})}ngAfterViewInit(){"ellipsis"===this.settings.superOverType&&queueMicrotask(()=>{const e=D5(".topnav .over-item");this.overIndex!==e&&(this.overIndex=e)})}handleCilckTopMenu(e){const i=this.websiteList[e].id||0;this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:e,id:i,_:Date.now()}})}handleSidebarNav(e){const{page:i}=pi();this.websiteList[i].id=e,this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:i,id:e,_:Date.now()}})}handleCheckThree(e){this.selectedIndex=e}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}openCreateWebModal(){Ei.emit("CREATE_WEB",{threeIndex:this.selectedIndex})}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-side"]],decls:24,vars:15,consts:[["noData",""],[1,"super-xjh","dark-bg"],[1,"sheader","dark-bg"],[1,"headerbox"],[1,"hitem"],[1,"logo",3,"src"],[1,"title","dark-white"],[1,"topnav","dark-scrollbar"],["class","hitem over-item dark-text",3,"active","dark-text-active","click",4,"ngFor","ngForOf","ngForTrackBy"],["class","flex-center",3,"data","index","page","onClick",4,"ngIf"],[1,"main-box"],["class","left dark-bg dark-border-color dark-scrollbar",4,"ngIf"],[1,"middle","dark-bg"],[1,"search-t","dark-border-color"],["size","small"],[1,"bar","dark-scrollbar"],["class","bar-item",3,"active","none","click",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngIf","ngIfElse"],["class","apply",4,"ngIf"],["class","right dark-scrollbar",4,"ngIf"],[2,"color","#ccc"],[3,"showCollapse"],[1,"hitem","over-item","dark-text",3,"click"],[1,"flex-center",3,"onClick","data","index","page"],[1,"left","dark-bg","dark-border-color","dark-scrollbar"],["class","bar-item dark-text dark-hover ellipsis",3,"active","dark-item-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"bar-item","dark-text","dark-hover","ellipsis",3,"click"],["class","sideicon",3,"src",4,"ngIf"],[1,"ellipsis"],[1,"sideicon",3,"src"],[1,"bar-item",3,"click"],[3,"indexs","cardStyle","dataSource","searchKeyword",4,"ngFor","ngForOf","ngForTrackBy"],[3,"indexs","cardStyle","dataSource","searchKeyword"],[1,"apply"],[1,"appbtn",3,"click"],[1,"right","dark-scrollbar"],["class","aditem",4,"ngFor","ngForOf"],[1,"aditem"],[3,"href","target"],[1,"adsimg",3,"src"]],template:function(i,o){if(1&i&&(f(0,"section",1)(1,"header",2)(2,"div",3)(3,"div",4),S(4,"img",5),f(5,"span",6),C(6),m()(),f(7,"div",7),w(8,Kue,2,5,"div",8)(9,Jue,1,3,"app-web-more-menu",9),m()()(),f(10,"div",10),w(11,Xue,2,2,"div",11),f(12,"div",12)(13,"div",13),S(14,"app-search-engine",14),f(15,"div",15),w(16,e2e,2,5,"div",16),m()(),w(17,n2e,2,2,"div",17)(18,i2e,1,0,"ng-template",null,0,ot)(20,o2e,3,1,"div",18),m(),w(21,s2e,2,1,"div",19),m(),S(22,"app-footer",20)(23,"app-fixbar",21),m()),2&i){const r=He(19);d(4),h("src",o.LOGO_CDN,Ot),d(2),x(o.settings.superTitle||o.title),d(2),h("ngForOf",o.websiteList.slice(0,o.overIndex))("ngForTrackBy",o.trackByItem),d(),h("ngIf",o.overIndex0),d(2),h("showCollapse",!1)}},dependencies:[zn,Tt,z2,S2,h6,H1,k6,bv],styles:['@media (max-width: 1200px){.super-xjh[_ngcontent-%COMP%]{--width: 960px;--leftWidth: 180px;--rightWidth: 200px}}@media (max-width: 998px){.super-xjh[_ngcontent-%COMP%]{--width: 100%;--leftWidth: 150px;--rightWidth: 160px}}@media (max-width: 768px){.super-xjh[_ngcontent-%COMP%]{--width: 100%;--leftWidth: 100%;--rightWidth: 100%}.main-box[_ngcontent-%COMP%]{flex-direction:column;row-gap:20px}.sheader[_ngcontent-%COMP%]{z-index:3;position:sticky;top:0;left:0}.right[_ngcontent-%COMP%], .left[_ngcontent-%COMP%]{position:initial!important;max-height:initial!important}.right[_ngcontent-%COMP%]{padding:0 20px;background-color:#fff}}@media (min-width: 1200px){.super-xjh[_ngcontent-%COMP%]{--width: 1150px;--leftWidth: 180px;--rightWidth: 250px}}.super-xjh[_ngcontent-%COMP%]{--stickyTop: 20px;background-color:#f2f3f5;min-height:100vh;display:flex;flex-direction:column}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%]{display:flex;align-items:center;background-color:#fff;height:70px;box-shadow:0 1px 5px #00000017}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .headerbox[_ngcontent-%COMP%]{width:var(--width);overflow:hidden;overflow-x:auto;margin:0 auto;display:flex}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:40px;height:40px}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:#000;margin-left:4px;-webkit-user-select:none;user-select:none;margin-right:8px}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .hitem[_ngcontent-%COMP%]{display:flex;align-items:center;font-weight:700;font-size:18px;margin-left:10px;white-space:nowrap}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .hitem[_ngcontent-%COMP%]:hover{color:#000}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .more-btn, .super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .over-item[_ngcontent-%COMP%]{color:#515767;font-weight:400;font-size:14px;margin-left:0;padding:0 10px;cursor:pointer}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .more-btn.active, .super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .over-item.active[_ngcontent-%COMP%]{font-weight:700;color:#1e80ff}.super-xjh[_ngcontent-%COMP%] .sheader[_ngcontent-%COMP%] .topnav[_ngcontent-%COMP%]{display:flex;overflow:hidden;overflow-x:auto}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%]{width:var(--width);margin:24px auto 0;display:flex;flex:1;column-gap:20px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{position:sticky;top:var(--stickyTop);width:var(--leftWidth);min-width:var(--leftWidth);text-align:left;background-color:#fff;padding:8px;font-size:16px;border-radius:4px;overflow:hidden;overflow-y:auto;max-height:calc(100vh - 100px);border:1px solid transparent}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .bar-item[_ngcontent-%COMP%]{padding:10px 17px;cursor:pointer;border-radius:4px;display:flex;align-items:center;color:#515767}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .bar-item[_ngcontent-%COMP%]:hover{background-color:#f7f8fa}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .bar-item.active[_ngcontent-%COMP%]{font-weight:700;color:#1e80ff;background-color:#eaf2ff}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] .sideicon[_ngcontent-%COMP%]{width:20px;height:20px;margin-right:12px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%]{position:relative;background:#fff;flex:1;border-radius:4px;overflow:hidden}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle.noads[_ngcontent-%COMP%]{width:initial}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .search-t[_ngcontent-%COMP%]{padding:8px 12px 0;border-bottom:1px solid #eee;margin-bottom:12px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{margin-top:10px;display:flex;overflow:hidden;overflow-x:auto;padding-bottom:8px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item[_ngcontent-%COMP%]{position:relative;padding:0 10px;white-space:nowrap;cursor:pointer;color:#515767}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item[_ngcontent-%COMP%]:hover{color:#1e80ff}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item.active[_ngcontent-%COMP%]{font-weight:700}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item.active[_ngcontent-%COMP%]:after{content:"";display:block;position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:40%;height:3px;background-color:#1e80ff;border-radius:2px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .bar-item.none[_ngcontent-%COMP%]{display:none}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .apply[_ngcontent-%COMP%]{text-align:center;padding:20px 0}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .middle[_ngcontent-%COMP%] .appbtn[_ngcontent-%COMP%]{cursor:pointer;color:#1890ff;-webkit-user-select:none;user-select:none;font-size:12px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .right[_ngcontent-%COMP%]{position:sticky;top:var(--stickyTop);width:var(--rightWidth);min-width:var(--rightWidth);max-height:calc(100vh - 100px);overflow:hidden;overflow-y:auto}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .adsimg[_ngcontent-%COMP%]{display:block;width:100%;border-radius:4px}.super-xjh[_ngcontent-%COMP%] .main-box[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .aditem[_ngcontent-%COMP%]{margin-bottom:20px;border-radius:4px;overflow:hidden}.super-xjh[_ngcontent-%COMP%] .standard{margin-bottom:15px}.super-xjh[_ngcontent-%COMP%] #app-footer{margin-top:40px}.super-xjh[_ngcontent-%COMP%] #app-footer, .super-xjh[_ngcontent-%COMP%] #app-footer .copyright{margin-bottom:10px;color:#666}']})}return t})();const c2e=["*"],l2e=t=>({height:t});function d2e(t,n){if(1&t&&(f(0,"div",4)(1,"a",5),S(2,"img",6),m()()),2&t){const e=n.$implicit,i=g();d(),h("href",e.url||"javascript:void(0)",Ot)("target",e.url?"_blank":""),d(),Q("height100",i.height>0),h("src",e.src,Ot)}}let PP=(()=>{class t{constructor(){this.images=[],this.autoplay=!0,this.height=300,this.mySwiper=null,this.swiperId="swiper",this.swiperId="swiper"+parseInt(String(1e3*Math.random()))}ngAfterViewInit(){this.initSwiper()}ngOnDestroy(){this.destroySwiper()}initSwiper(){this.destroySwiper();const e=document.getElementById(this.swiperId);e&&Swiper?this.mySwiper=new Swiper(e,{autoplay:!!this.autoplay&&{delay:5e3},pagination:{el:".swiper-pagination",clickable:!0}}):console.log("swiper not found")}destroySwiper(){this.mySwiper&&(this.mySwiper?.destroy?.(),this.mySwiper=null)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-swiper"]],inputs:{images:"images",autoplay:"autoplay",height:"height"},ngContentSelectors:c2e,decls:5,vars:5,consts:[[1,"swiper",3,"id","ngStyle"],[1,"swiper-wrapper"],["class","swiper-slide",4,"ngFor","ngForOf"],[1,"swiper-pagination"],[1,"swiper-slide"],[3,"href","target"],["draggable","false",1,"bgimg",3,"src"]],template:function(i,o){1&i&&(Et(),f(0,"div",0)(1,"div",1),w(2,d2e,3,5,"div",2),m(),S(3,"div",3),bt(4),m()),2&i&&(h("id",o.swiperId)("ngStyle",mr(3,l2e,o.height<=0?"":o.height+"px")),d(2),h("ngForOf",o.images))},dependencies:[zn,ti],styles:[".swiper[_ngcontent-%COMP%]{-webkit-user-select:none;user-select:none}.swiper[_ngcontent-%COMP%] .swiper-pagination-bullet{cursor:pointer}.swiper[_ngcontent-%COMP%] .swiper-pagination-bullet-active{background-color:#fff!important}.swiper[_ngcontent-%COMP%] .bgimg[_ngcontent-%COMP%]{width:100%;object-fit:cover}"]})}return t})();const u2e=()=>[16,16],h2e=(t,n,e,i)=>[t,n,e,i];function p2e(t,n){if(1&t&&(f(0,"div",14),S(1,"app-swiper",15),f(2,"div",16)(3,"h1",17),C(4),m(),S(5,"pre",18)(6,"app-search-engine"),m()()),2&t){const e=g();Q("bootstrap",e.settings.simThemeHeight<260),d(),h("images",e.settings.simThemeImages)("autoplay",e.settings.simThemeAutoplay)("height",e.settings.simThemeHeight),d(3),Ce(" ",e.settings.simTitle||e.settings.title," "),d(),h("innerHTML",e.description,Wn)}}function f2e(t,n){if(1&t){const e=U();f(0,"span",19),D("click",function(){const o=T(e).index;return M(g().handleCilckTopNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g();Q("active",o.page===i)("dark-text-active",o.page===i),d(),Ce(" ",e.title," ")}}function m2e(t,n){if(1&t){const e=U();f(0,"app-web-more-menu",20),D("onClick",function(o){return T(e),M(g().handleCilckTopNav(o))}),m()}if(2&t){const e=g();h("data",e.websiteList.slice(e.overIndex,9999))("index",e.overIndex)("page",e.page)}}function g2e(t,n){if(1&t){const e=U();f(0,"div",23),D("click",function(){const o=T(e).index;return M(g(2).handleSidebarNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);Q("active",o.id===i)("dark-item-active",o.id===i),d(),Ce(" ",e.title," ")}}function v2e(t,n){if(1&t&&(f(0,"nav",21),w(1,g2e,2,5,"div",22),m()),2&t){const e=g();d(),h("ngForOf",e.websiteList[e.page].nav)("ngForTrackBy",e.trackByItem)}}function _2e(t,n){if(1&t&&(f(0,"div",29),S(1,"app-card",30),m()),2&t){const e=n.$implicit,i=n.index,o=g().index,r=g(2);h("nzSpan",8)("nzSm",12)("nzMd",12)("nzLg",8)("nzXs",24),d(),h("cardStyle","example")("dataSource",e)("indexs",nu(9,h2e,r.page,r.id,o,i))("searchKeyword",r.searchKeyword)}}function b2e(t,n){if(1&t){const e=U();f(0,"div")(1,"div",25)(2,"app-toolbar-title",26),D("onCollapse",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).onCollapse(r,s))}),m(),f(3,"div",27),w(4,_2e,2,14,"div",28),m()()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);d(2),h("dataSource",e)("index",i),d(),Lt("display",e.collapsed?"none":""),h("nzGutter",Ti(7,u2e)),d(),h("ngForOf",e.nav)("ngForTrackBy",o.trackByItemWeb)}}function y2e(t,n){if(1&t&&(f(0,"div"),w(1,b2e,5,8,"div",24),m()),2&t){const e=g();d(),h("ngForOf",e.currentList.slice(0,e.sliceMax))("ngForTrackBy",e.trackByItem)}}function C2e(t,n){1&t&&S(0,"app-no-data")}let w2e=(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.settings=An,this.description=An.simThemeDesc.replace("${total}",String(Wi?p3.loginViewCount:p3.userViewCount)),this.isLogin=Wi,this.sliceMax=1,this.overIndex=Number.MAX_SAFE_INTEGER,this.searchKeyword="",this.onCollapse=(o,r)=>{o.collapsed=!o.collapsed,this.websiteList[this.page].nav[this.id].nav[r]=o,Yn(this.websiteList)},this.onCollapseAll=()=>{z5(this.websiteList)}}ngOnInit(){this.activatedRoute.queryParams.subscribe(()=>{const{id:e,page:i,q:o}=pi();this.page=i,this.id=e,this.searchKeyword=o,this.sliceMax=1,this.currentList=o?S1(this.websiteList,o):Bu(),setTimeout(()=>{this.sliceMax=Number.MAX_SAFE_INTEGER},100)})}ngOnDestroy(){}ngAfterViewInit(){"ellipsis"===this.settings.simOverType&&queueMicrotask(()=>{const e=D5(".top-nav .over-item");this.overIndex!==e&&(this.overIndex=e)})}handleSidebarNav(e){const{page:i}=pi();this.websiteList[i].id=e,this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:i,id:e,_:Date.now()}})}handleCilckTopNav(e){const i=this.websiteList[e].id||0;this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:e,id:i,_:Date.now()}})}collapsed(){try{return!!yn[this.page].nav[this.id].collapsed}catch{return!1}}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-sim"]],decls:15,vars:8,consts:[["noData",""],[1,"sim"],["class","wallpaper",3,"bootstrap",4,"ngIf"],[1,"hidden","search-sm"],[1,"top-nav","dark-border-color","dark-scrollbar","dark-bg"],["class","over-item dark-text",3,"active","dark-text-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[3,"data","index","page","onClick",4,"ngIf"],[1,"wrapper"],["class","sidebar dark-bg","id","sidebar",4,"ngIf"],[1,"site-box","dark-bg"],[4,"ngIf","ngIfElse"],["className","sim-footer"],[3,"onCollapse","collapsed"],[1,"sim-bg","dark-bg"],[1,"wallpaper"],[3,"images","autoplay","height"],[1,"bar"],[1,"title","dark-white"],[1,"description","dark-white",3,"innerHTML"],[1,"over-item","dark-text",3,"click"],[3,"onClick","data","index","page"],["id","sidebar",1,"sidebar","dark-bg"],["class","ripple-btn dark-text dark-hover",3,"active","dark-item-active","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ripple-btn","dark-text","dark-hover",3,"click"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"nav-wrapper"],[3,"onCollapse","dataSource","index"],["nz-row","",3,"nzGutter"],["class","gutter-row","nz-col","",3,"nzSpan","nzSm","nzMd","nzLg","nzXs",4,"ngFor","ngForOf","ngForTrackBy"],["nz-col","",1,"gutter-row",3,"nzSpan","nzSm","nzMd","nzLg","nzXs"],[1,"column-border",3,"cardStyle","dataSource","indexs","searchKeyword"]],template:function(i,o){if(1&i){const r=U();f(0,"div",1),w(1,p2e,7,7,"div",2),S(2,"app-search-engine",3),f(3,"nav",4),w(4,f2e,2,5,"span",5)(5,m2e,1,3,"app-web-more-menu",6),m(),f(6,"div",7),w(7,v2e,2,2,"nav",8),f(8,"aside",9),w(9,y2e,2,2,"div",10)(10,C2e,1,0,"ng-template",null,0,ot),m()()(),S(12,"app-footer",11),f(13,"app-fixbar",12),D("onCollapse",function(){return T(r),M(o.onCollapseAll())}),m(),S(14,"div",13)}if(2&i){const r=He(11);d(),h("ngIf",o.settings.simThemeImages.length>0),d(3),h("ngForOf",o.websiteList.slice(0,o.overIndex))("ngForTrackBy",o.trackByItem),d(),h("ngIf",o.overIndex0)("ngIfElse",r),d(4),h("collapsed",o.collapsed())}},dependencies:[zn,Tt,x1,Cc,PP,z2,S2,h6,H1,vv,k6,bv],styles:['@media (max-width: 1280px){.sim[_ngcontent-%COMP%]{--width: 1000px !important}}@media (max-width: 1080px){.sim[_ngcontent-%COMP%]{--width: 900px !important}.sim[_ngcontent-%COMP%] .bootstrap[_ngcontent-%COMP%]{--titleSize: 32px;--textSize: 14px}}@media (max-width: 980px){.sim[_ngcontent-%COMP%]{--width: 768px !important}.sim[_ngcontent-%COMP%] .bootstrap[_ngcontent-%COMP%]{--titleSize: 26px;--textSize: 12px}}@media (max-width: 800px){.bar[_ngcontent-%COMP%]{display:none}.search-sm[_ngcontent-%COMP%]{display:block;margin-top:10px}.wrapper[_ngcontent-%COMP%]{flex-direction:column}.top-nav[_ngcontent-%COMP%]{z-index:9;background-color:#fff;position:sticky;top:0;left:0;-webkit-user-select:none;user-select:none}.sidebar[_ngcontent-%COMP%]{position:relative!important;top:0!important;width:100%!important}.sim[_ngcontent-%COMP%]{--width: 100% !important}}.sim-bg[_ngcontent-%COMP%]{z-index:-1;position:fixed;inset:0;background:#f0f2f5}.top-nav[_ngcontent-%COMP%]{max-width:var(--width);width:100%;margin:10px auto;padding:10px;overflow:none;overflow-x:auto;white-space:nowrap;border-bottom:1px solid #eee;text-align:center}.top-nav[_ngcontent-%COMP%] .more-btn, .top-nav[_ngcontent-%COMP%] .over-item[_ngcontent-%COMP%]{position:relative;display:inline-block;padding:10px 15px;color:#666;cursor:pointer;overflow:hidden}.top-nav[_ngcontent-%COMP%] .more-btn.active:after, .top-nav[_ngcontent-%COMP%] .over-item.active[_ngcontent-%COMP%]:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;border-radius:2px;background-color:#108ee9}.top-nav[_ngcontent-%COMP%] .over-item[_ngcontent-%COMP%]:hover{color:#000}.sim[_ngcontent-%COMP%]{--width: 1200px;display:flex;flex-direction:column;min-height:100vh}.sim[_ngcontent-%COMP%] .wallpaper[_ngcontent-%COMP%]{position:relative;background-color:#fff}.sim[_ngcontent-%COMP%] .wallpaper[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{z-index:10;position:absolute;max-width:600px;top:50%;left:50%;transform:translate(-50%,-50%)}.sim[_ngcontent-%COMP%] .wallpaper[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:#fff;margin-bottom:10px;font-size:var(--titleSize, 36px);text-align:center;line-height:1.3;-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap}.sim[_ngcontent-%COMP%] .wallpaper[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{text-align:center;color:#fff;margin-bottom:10px;font-weight:700;font-size:var(--textSize, 16px);white-space:pre-wrap;-webkit-user-select:none;user-select:none;pointer-events:none}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{flex:1;position:relative;width:var(--width);padding-bottom:50px;margin:0 auto;display:flex;column-gap:30px;row-gap:20px}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{position:sticky;top:20px;left:0;width:180px;height:min-content;padding:10px 0;text-align:center;background-color:#fff;box-shadow:0 0 1px #ccc;max-height:calc(100vh - 50px);overflow-y:auto;border-radius:4px}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .ripple-btn[_ngcontent-%COMP%]{padding:14px 0;cursor:pointer;border-radius:5px;transition:.1s linear;-webkit-user-select:none;user-select:none;font-weight:500}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .ripple-btn[_ngcontent-%COMP%]:hover{background-color:#00000008}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%] .ripple-btn.active[_ngcontent-%COMP%]{color:#409eff;background-color:#e7f1fd}.sim[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .site-box[_ngcontent-%COMP%]{flex:1;position:relative;background-color:#fff;padding:15px;border-radius:4px}.sim[_ngcontent-%COMP%] .search-engine .input-wrapper{width:330px!important} #app-footer, #app-footer .copyright{margin-bottom:10px;color:#666}']})}return t})();const yv=["*"],z2e=["nz-sider-trigger",""];function S2e(t,n){}function T2e(t,n){if(1&t&&w(0,S2e,0,0,"ng-template",2),2&t){const e=g(),i=He(5);h("ngTemplateOutlet",e.nzZeroTrigger||i)}}function M2e(t,n){}function D2e(t,n){if(1&t&&w(0,M2e,0,0,"ng-template",2),2&t){const e=g(),i=He(3);h("ngTemplateOutlet",e.nzTrigger||i)}}function x2e(t,n){1&t&&S(0,"span",3),2&t&&h("nzType",g(2).nzCollapsed?"left":"right")}function E2e(t,n){1&t&&S(0,"span",3),2&t&&h("nzType",g(2).nzCollapsed?"right":"left")}function k2e(t,n){1&t&&w(0,x2e,1,1,"span",3)(1,E2e,1,1,"span",3),2&t&&he(g().nzReverseArrow?0:1)}function A2e(t,n){1&t&&S(0,"span",4)}function O2e(t,n){if(1&t){const e=U();f(0,"div",2),D("click",function(){T(e);const o=g();return M(o.setCollapsed(!o.nzCollapsed))}),m()}if(2&t){const e=g();h("matchBreakPoint",e.matchBreakPoint)("nzCollapsedWidth",e.nzCollapsedWidth)("nzCollapsed",e.nzCollapsed)("nzBreakpoint",e.nzBreakpoint)("nzReverseArrow",e.nzReverseArrow)("nzTrigger",e.nzTrigger)("nzZeroTrigger",e.nzZeroTrigger)("siderWidth",e.widthSetting)}}let IP=(()=>{class t{constructor(e,i){this.elementRef=e,this.renderer=i,this.renderer.addClass(this.elementRef.nativeElement,"ant-layout-content")}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-content"]],exportAs:["nzContent"],standalone:!0,features:[me],ngContentSelectors:yv,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),NP=(()=>{class t{constructor(){this.nzCollapsed=!1,this.nzReverseArrow=!1,this.nzZeroTrigger=null,this.nzTrigger=void 0,this.matchBreakPoint=!1,this.nzCollapsedWidth=null,this.siderWidth=null,this.nzBreakpoint=null,this.isZeroTrigger=!1,this.isNormalTrigger=!1}updateTriggerType(){this.isZeroTrigger=0===this.nzCollapsedWidth&&(this.nzBreakpoint&&this.matchBreakPoint||!this.nzBreakpoint),this.isNormalTrigger=0!==this.nzCollapsedWidth}ngOnInit(){this.updateTriggerType()}ngOnChanges(){this.updateTriggerType()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-sider-trigger",""]],hostVars:10,hostBindings:function(i,o){2&i&&(Lt("width",o.isNormalTrigger?o.siderWidth:null),Q("ant-layout-sider-trigger",o.isNormalTrigger)("ant-layout-sider-zero-width-trigger",o.isZeroTrigger)("ant-layout-sider-zero-width-trigger-right",o.isZeroTrigger&&o.nzReverseArrow)("ant-layout-sider-zero-width-trigger-left",o.isZeroTrigger&&!o.nzReverseArrow))},inputs:{nzCollapsed:"nzCollapsed",nzReverseArrow:"nzReverseArrow",nzZeroTrigger:"nzZeroTrigger",nzTrigger:"nzTrigger",matchBreakPoint:"matchBreakPoint",nzCollapsedWidth:"nzCollapsedWidth",siderWidth:"siderWidth",nzBreakpoint:"nzBreakpoint"},exportAs:["nzSiderTrigger"],standalone:!0,features:[ke,me],attrs:z2e,decls:6,vars:2,consts:[["defaultTrigger",""],["defaultZeroTrigger",""],[3,"ngTemplateOutlet"],["nz-icon","",3,"nzType"],["nz-icon","","nzType","bars"]],template:function(i,o){1&i&&w(0,T2e,1,1,null,2)(1,D2e,1,1,null,2)(2,k2e,2,1,"ng-template",null,0,ot)(4,A2e,1,0,"ng-template",null,1,ot),2&i&&(he(o.isZeroTrigger?0:-1),d(),he(o.isNormalTrigger?1:-1))},dependencies:[Vn,On,cn],encapsulation:2,changeDetection:0})}return t})(),Cv=(()=>{class t{updateStyleMap(){this.widthSetting=this.nzCollapsed?`${this.nzCollapsedWidth}px`:D1(this.nzWidth),this.flexSetting=`0 0 ${this.widthSetting}`,this.cdr.markForCheck()}updateMenuInlineCollapsed(){this.nzMenuDirective&&"inline"===this.nzMenuDirective.nzMode&&0!==this.nzCollapsedWidth&&this.nzMenuDirective.setInlineCollapsed(this.nzCollapsed)}setCollapsed(e){e!==this.nzCollapsed&&(this.nzCollapsed=e,this.nzCollapsedChange.emit(e),this.updateMenuInlineCollapsed(),this.updateStyleMap(),this.cdr.markForCheck())}constructor(e,i,o){this.platform=e,this.cdr=i,this.breakpointService=o,this.destroy$=new N,this.nzMenuDirective=null,this.nzCollapsedChange=new H,this.nzWidth=200,this.nzTheme="dark",this.nzCollapsedWidth=80,this.nzBreakpoint=null,this.nzZeroTrigger=null,this.nzTrigger=void 0,this.nzReverseArrow=!1,this.nzCollapsible=!1,this.nzCollapsed=!1,this.matchBreakPoint=!1,this.flexSetting=null,this.widthSetting=null}ngOnInit(){this.updateStyleMap(),this.platform.isBrowser&&this.breakpointService.subscribe(Zte,!0).pipe(I(this.destroy$)).subscribe(e=>{const i=this.nzBreakpoint;i&&function fne(){const t=new N;return Promise.resolve().then(()=>t.next()),t.pipe(io(1))}().subscribe(()=>{this.matchBreakPoint=!e[i],this.setCollapsed(this.matchBreakPoint),this.cdr.markForCheck()})})}ngOnChanges(e){const{nzCollapsed:i,nzCollapsedWidth:o,nzWidth:r}=e;(i||o||r)&&this.updateStyleMap(),i&&this.updateMenuInlineCollapsed()}ngAfterContentInit(){this.updateMenuInlineCollapsed()}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(qn),v(Ue),v(H5))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-sider"]],contentQueries:function(i,o,r){if(1&i&&fn(r,Sa,5),2&i){let s;Ae(s=Oe())&&(o.nzMenuDirective=s.first)}},hostAttrs:[1,"ant-layout-sider"],hostVars:18,hostBindings:function(i,o){2&i&&(Lt("flex",o.flexSetting)("max-width",o.widthSetting)("min-width",o.widthSetting)("width",o.widthSetting),Q("ant-layout-sider-zero-width",o.nzCollapsed&&0===o.nzCollapsedWidth)("ant-layout-sider-light","light"===o.nzTheme)("ant-layout-sider-dark","dark"===o.nzTheme)("ant-layout-sider-collapsed",o.nzCollapsed)("ant-layout-sider-has-trigger",o.nzCollapsible&&null!==o.nzTrigger))},inputs:{nzWidth:"nzWidth",nzTheme:"nzTheme",nzCollapsedWidth:"nzCollapsedWidth",nzBreakpoint:"nzBreakpoint",nzZeroTrigger:"nzZeroTrigger",nzTrigger:"nzTrigger",nzReverseArrow:[2,"nzReverseArrow","nzReverseArrow",O],nzCollapsible:[2,"nzCollapsible","nzCollapsible",O],nzCollapsed:[2,"nzCollapsed","nzCollapsed",O]},outputs:{nzCollapsedChange:"nzCollapsedChange"},exportAs:["nzSider"],standalone:!0,features:[je,ke,me],ngContentSelectors:yv,decls:3,vars:1,consts:[[1,"ant-layout-sider-children"],["nz-sider-trigger","",3,"matchBreakPoint","nzCollapsedWidth","nzCollapsed","nzBreakpoint","nzReverseArrow","nzTrigger","nzZeroTrigger","siderWidth"],["nz-sider-trigger","",3,"click","matchBreakPoint","nzCollapsedWidth","nzCollapsed","nzBreakpoint","nzReverseArrow","nzTrigger","nzZeroTrigger","siderWidth"]],template:function(i,o){1&i&&(Et(),f(0,"div",0),bt(1),m(),w(2,O2e,1,8,"div",1)),2&i&&(d(2),he(o.nzCollapsible&&null!==o.nzTrigger?2:-1))},dependencies:[NP],encapsulation:2,changeDetection:0})}return t})(),VP=(()=>{class t{constructor(e){this.directionality=e,this.dir="ltr",this.destroy$=new N}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-layout"]],contentQueries:function(i,o,r){if(1&i&&fn(r,Cv,4),2&i){let s;Ae(s=Oe())&&(o.listOfNzSiderComponent=s)}},hostAttrs:[1,"ant-layout"],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-layout-rtl","rtl"===o.dir)("ant-layout-has-sider",o.listOfNzSiderComponent.length>0)},exportAs:["nzLayout"],standalone:!0,features:[me],ngContentSelectors:yv,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),P2e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Cv,NP]})}return t})();function I2e(t,n){if(1&t){const e=U();$e(0),f(1,"p"),C(2),m(),f(3,"input",2),Oi("ngModelChange",function(o){T(e);const r=g();return Yi(r.token,o)||(r.token=o),M(o)}),m(),f(4,"p",3),C(5),f(6,"a",4),C(7),m()(),Ye()}if(2&t){const e=g();d(2),x(e.$t("_inputTokenMsg")),d(),h("placeholder",e.$t("_inputToken")),Ai("ngModel",e.token),d(2),Ce(" ",e.$t("_getToken"),""),d(2),Ce(" ",e.$t("_readDoc"),"")}}let N2e=(()=>{class t{constructor(e){this.message=e,this.visible=!1,this.onCancel=new H,this.$t=_e,this.token="",this.submiting=!1}ngOnInit(){}hanldeCancel(){this.onCancel.emit()}login(){if(!this.token)return this.message.error(_e("_pleaseInputToken"));const e=this.token.trim();this.submiting=!0,Jx(e).then(()=>{(function kX(t){window.localStorage.setItem("token",t)})(e),vc({message:"auth",path:".navauth",content:"OK"}).then(()=>{(function bte(t){return m5.apply(this,arguments)})("image").finally(()=>{this.message.success(_e("_tokenVerSuc")),function OX(){window.localStorage.removeItem("website")}(),setTimeout(()=>window.location.reload(),2e3)})}).catch(()=>{(function AX(){window.localStorage.removeItem("token")})(),this.submiting=!1})}).catch(()=>{this.submiting=!1})}static#e=this.\u0275fac=function(i){return new(i||t)(v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-login"]],inputs:{visible:"visible"},outputs:{onCancel:"onCancel"},decls:2,vars:3,consts:[[3,"nzVisibleChange","nzOnCancel","nzOnOk","nzVisible","nzTitle","nzOkLoading"],[4,"nzModalContent"],["nz-input","","autofocus","",3,"ngModelChange","placeholder","ngModel"],[2,"margin-top","15px"],["href","https://github.com/xjh22222228/nav#%E9%83%A8%E7%BD%B2","target","_blank"]],template:function(i,o){1&i&&(f(0,"nz-modal",0),Oi("nzVisibleChange",function(s){return Yi(o.visible,s)||(o.visible=s),s}),D("nzOnCancel",function(){return o.hanldeCancel()})("nzOnOk",function(){return o.login()}),w(1,I2e,8,5,"ng-container",1),m()),2&i&&(Ai("nzVisible",o.visible),h("nzTitle",o.$t("_authLogin"))("nzOkLoading",o.submiting))},dependencies:[c6,y2,Ws,Cr,Qi,Xi],styles:[".prefix-icon[_ngcontent-%COMP%]{width:20px;height:20px;pointer-events:none}"]})}return t})();function V2e(t,n){if(1&t){const e=U();f(0,"nz-layout",2)(1,"nz-layout")(2,"nz-sider",3)(3,"ul",4)(4,"li",5)(5,"ul")(6,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/web"))}),C(7),m(),f(8,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/tag"))}),C(9),m(),f(10,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/bookmark"))}),C(11),m(),f(12,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/search"))}),C(13),m(),f(14,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/collect"))}),C(15),m(),f(16,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/setting"))}),C(17),m(),f(18,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/info"))}),C(19),m(),f(20,"li",6),D("click",function(){return T(e),M(g().goRoute("/system/about"))}),C(21),m()()()()(),f(22,"nz-layout",7)(23,"nz-content",8)(24,"div")(25,"button",9),D("click",function(){return T(e),M(g().goBack())}),C(26),m(),f(27,"button",10),D("click",function(){return T(e),M(g().logout())}),C(28),m()(),S(29,"router-outlet"),m()()()()}if(2&t){const e=g();d(6),h("nzSelected","web"===e.currentMenu),d(),Ce(" ",e.$t("_websiteMang")," "),d(),h("nzSelected","tag"===e.currentMenu),d(),Ce(" ",e.$t("_tagSettings")," "),d(),h("nzSelected","bookmark"===e.currentMenu),d(),Ce(" ",e.$t("_bookmarkImport")," "),d(),h("nzSelected","search"===e.currentMenu),d(),Ce(" ",e.$t("_searchEngines")," "),d(),h("nzSelected","collect"===e.currentMenu),d(),Ce(" ",e.$t("_userCollect")," "),d(),h("nzSelected","setting"===e.currentMenu),d(),Ce(" ",e.$t("_systemSet")," "),d(),h("nzSelected","info"===e.currentMenu),d(),Ce(" ",e.$t("_webInfo")," "),d(),h("nzSelected","about"===e.currentMenu),d(),Ce(" ",e.$t("_about")," "),d(5),Ce(" ",e.$t("_backHome")," "),d(2),Ce(" ",e.$t("_logout")," ")}}let F2e=(()=>{class t{constructor(e){this.router=e,this.$t=_e,this.isLogin=Wi,this.showLoginModal=!Wi,this.currentMenu=""}ngOnInit(){const e=window.location.href.split("/");if(this.currentMenu=e[e.length-1],"localhost"!==window.location.hostname){const i=window.sessionStorage.getItem("reload");window.sessionStorage.removeItem("reload"),i||(window.sessionStorage.setItem("reload","1"),window.location.reload())}}goBack(){this.router.navigate(["/"])}goRoute(e){this.router.navigate([e])}logout(){BD(),this.router.navigate(["/"]),setTimeout(()=>{location.reload()},26)}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-system"]],decls:2,vars:2,consts:[["class","system-layout",4,"ngIf"],[3,"visible"],[1,"system-layout"],["nzWidth","150px","nzTheme","light",1,"sidebar"],["nz-menu","","nzMode","inline",1,"sider-menu"],["nz-submenu","","nzOpen","","nzTitle","\u8d85\u7ea7\u7cfb\u7edf"],["nz-menu-item","",3,"click","nzSelected"],[1,"inner-layout"],[1,"content"],["nz-button","",2,"margin-bottom","15px",3,"click"],["nz-button","",2,"margin-left","15px",3,"click"]],template:function(i,o){1&i&&(w(0,V2e,30,18,"nz-layout",0),S(1,"app-login",1)),2&i&&(h("ngIf",o.isLogin),d(),h("visible",o.showLoginModal))},dependencies:[Tt,nr,mi,tr,Sa,Us,l6,VP,IP,Cv,I0,N2e],styles:[".system-layout[_ngcontent-%COMP%]{min-height:100vh}.system-layout[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:30px;background-color:#fff}.system-layout[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{z-index:3;position:fixed;top:0;left:0;bottom:0;background-color:#fff}.system-layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%]{margin-left:170px}"]})}return t})(),R2e=(()=>{class t{constructor(){this.$t=_e,this.token=j0(),this.config=Vs,this.date=document.getElementById("META-NAV")?.dataset?.date||_e("_unknow"),this.currentVersionSrc="https://img.shields.io/badge/release-v8.4.0-red.svg?longCache=true&style=flat-square"}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["system-info"]],decls:17,vars:10,consts:[[3,"src"],["src","https://img.shields.io/github/v/release/xjh22222228/nav"],["href","https://github.com/xjh22222228/nav?tab=readme-ov-file#%E5%8D%87%E7%BA%A7","target","_blank"]],template:function(i,o){1&i&&(f(0,"div")(1,"p"),C(2),m(),f(3,"p"),C(4),m(),f(5,"p"),C(6),m(),f(7,"p"),C(8),S(9,"img",0),m(),f(10,"p"),C(11),S(12,"img",1),m(),f(13,"p"),C(14),f(15,"a",2),C(16),m()()()),2&i&&(d(2),Ce("TOKEN: ",o.token,""),d(2),ca("",o.$t("_devBranch"),": ",o.config.branch,""),d(2),ca("",o.$t("_prevDevTime"),": ",o.date,""),d(2),Ce("",o.$t("_curVer"),": "),d(),h("src",o.currentVersionSrc,Ot),d(2),Ce(" ",o.$t("_newVer"),": "),d(3),Ce(" ",o.$t("_updateTip")," "),d(2),x(o.$t("_clickUpdate")))}})}return t})(),FP=-Date.now();function j1(t){const n=(new Date).toString();if(!t)return n;const e=t.getAttribute("add_date");return e?new Date(1e3*Number(e)).toString():n}function I2(t){return t.textContent||""}function RP(t){return t.getAttribute("href")||""}function LP(t){return t.getAttribute("icon")||null}const A6=j1();function wv(t){const n=[];for(let e=0;e({$implicit:t,data:n}),B2e=t=>({$implicit:t});function j2e(t,n){}function $2e(t,n){if(1&t&&w(0,j2e,0,0,"ng-template",1),2&t){const e=g();h("ngTemplateOutlet",e.instance.template)("ngTemplateOutletContext",sc(2,H2e,e,null==e.instance.options?null:e.instance.options.nzData))}}function Y2e(t,n){1&t&&S(0,"span",6)}function U2e(t,n){1&t&&S(0,"span",7)}function W2e(t,n){1&t&&S(0,"span",8)}function G2e(t,n){1&t&&S(0,"span",9)}function q2e(t,n){if(1&t&&($e(0),S(1,"div",14),Ye()),2&t){const e=g(2);d(),h("innerHTML",e.instance.title,Wn)}}function K2e(t,n){if(1&t&&($e(0),S(1,"div",14),Ye()),2&t){const e=g(2);d(),h("innerHTML",e.instance.content,Wn)}}function J2e(t,n){}function Z2e(t,n){if(1&t&&(f(0,"span",13),w(1,J2e,0,0,"ng-template",1),m()),2&t){const e=g(2);d(),h("ngTemplateOutlet",n)("ngTemplateOutletContext",mr(2,B2e,e))}}function Q2e(t,n){if(1&t&&(f(0,"div",2)(1,"div",2)(2,"div"),w(3,Y2e,1,0,"span",6)(4,U2e,1,0,"span",7)(5,W2e,1,0,"span",8)(6,G2e,1,0,"span",9),f(7,"div",10),w(8,q2e,2,1,"ng-container",11),m(),f(9,"div",12),w(10,K2e,2,1,"ng-container",11),m(),w(11,Z2e,2,4,"span",13),m()()()),2&t){let e,i;const o=g();d(2),Q("ant-notification-notice-with-icon","blank"!==o.instance.type),d(),he("success"===(e=o.instance.type)?3:"info"===e?4:"warning"===e?5:"error"===e?6:-1),d(5),h("nzStringTemplateOutlet",o.instance.title),d(2),h("nzStringTemplateOutlet",o.instance.content),d(),he((i=null==o.instance.options?null:o.instance.options.nzButton)?11:-1,i)}}function X2e(t,n){if(1&t&&($e(0),S(1,"span",15),Ye()),2&t){const e=n.$implicit;d(),h("nzType",e)}}function ehe(t,n){if(1&t&&w(0,X2e,2,1,"ng-container",11),2&t){const e=g();h("nzStringTemplateOutlet",null==e.instance.options?null:e.instance.options.nzCloseIcon)}}function the(t,n){1&t&&S(0,"span",5)}function nhe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","topLeft")}function ihe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","topRight")}function ohe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","bottomLeft")}function rhe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","bottomRight")}function she(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","top")}function ahe(t,n){if(1&t){const e=U();f(0,"nz-notification",7),D("destroyed",function(o){return T(e),M(g().remove(o.id,o.userAction))}),m()}2&t&&h("instance",n.$implicit)("placement","bottom")}let HP=(()=>{class t extends cA{constructor(e){super(e),this.destroyed=new H}ngOnDestroy(){super.ngOnDestroy(),this.instance.onClick.complete()}onClick(e){this.instance.onClick.next(e)}close(){this.destroy(!0)}get state(){if("enter"!==this.instance.state)return this.instance.state;switch(this.placement){case"topLeft":case"bottomLeft":return"enterLeft";case"topRight":case"bottomRight":default:return"enterRight";case"top":return"enterTop";case"bottom":return"enterBottom"}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-notification"]],inputs:{instance:"instance",index:"index",placement:"placement"},outputs:{destroyed:"destroyed"},exportAs:["nzNotification"],standalone:!0,features:[mt,me],decls:7,vars:5,consts:[[1,"ant-notification-notice","ant-notification-notice-closable",3,"click","mouseenter","mouseleave","ngStyle","ngClass"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ant-notification-notice-content"],["tabindex","0",1,"ant-notification-notice-close",3,"click"],[1,"ant-notification-notice-close-x"],["nz-icon","","nzType","close",1,"ant-notification-close-icon"],["nz-icon","","nzType","check-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-success"],["nz-icon","","nzType","info-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-info"],["nz-icon","","nzType","exclamation-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-warning"],["nz-icon","","nzType","close-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-error"],[1,"ant-notification-notice-message"],[4,"nzStringTemplateOutlet"],[1,"ant-notification-notice-description"],[1,"ant-notification-notice-btn"],[3,"innerHTML"],["nz-icon","",3,"nzType"]],template:function(i,o){1&i&&(f(0,"div",0),D("@notificationMotion.done",function(s){return o.animationStateChanged.next(s)})("click",function(s){return o.onClick(s)})("mouseenter",function(){return o.onEnter()})("mouseleave",function(){return o.onLeave()}),w(1,$2e,1,5,null,1)(2,Q2e,12,6,"div",2),f(3,"a",3),D("click",function(){return o.close()}),f(4,"span",4),w(5,ehe,1,1,"ng-container")(6,the,1,0,"span",5),m()()()),2&i&&(h("ngStyle",(null==o.instance.options?null:o.instance.options.nzStyle)||null)("ngClass",(null==o.instance.options?null:o.instance.options.nzClass)||"")("@notificationMotion",o.state),d(),he(o.instance.template?1:2),d(4),he(null!=o.instance.options&&o.instance.options.nzCloseIcon?5:6))},dependencies:[ti,Zo,On,cn,Tn,Sn,Vn],encapsulation:2,data:{animation:[Gne]}})}return t})();const O6="notification",che={nzTop:"24px",nzBottom:"24px",nzPlacement:"topRight",nzDuration:4500,nzMaxStack:8,nzPauseOnHover:!0,nzAnimate:!0,nzDirection:"ltr"};let BP=(()=>{class t extends aA{constructor(e,i){super(e,i),this.dir="ltr",this.instances=[],this.topLeftInstances=[],this.topRightInstances=[],this.bottomLeftInstances=[],this.bottomRightInstances=[],this.topInstances=[],this.bottomInstances=[];const o=this.nzConfigService.getConfigForComponent(O6);this.dir=o?.nzDirection||"ltr"}create(e){const i=this.onCreate(e),o=i.options.nzKey,r=this.instances.find(s=>s.options.nzKey===e.options.nzKey);return o&&r?this.replaceNotification(r,i):(this.instances.length>=this.config.nzMaxStack&&(this.instances=this.instances.slice(1)),this.instances=[...this.instances,i]),this.readyInstances(),i}onCreate(e){return e.options=this.mergeOptions(e.options),e.onClose=new N,e.onClick=new N,e}subscribeConfigChange(){this.nzConfigService.getConfigChangeEventForComponent(O6).pipe(I(this.destroy$)).subscribe(()=>{this.updateConfig();const e=this.nzConfigService.getConfigForComponent(O6);if(e){const{nzDirection:i}=e;this.dir=i||this.dir}})}updateConfig(){this.config={...che,...this.config,...this.nzConfigService.getConfigForComponent(O6)},this.top=D1(this.config.nzTop),this.bottom=D1(this.config.nzBottom),this.cdr.markForCheck()}replaceNotification(e,i){e.title=i.title,e.content=i.content,e.template=i.template,e.type=i.type,e.options=i.options}readyInstances(){const e={topLeft:[],topRight:[],bottomLeft:[],bottomRight:[],top:[],bottom:[]};this.instances.forEach(i=>{switch(i.options.nzPlacement){case"topLeft":e.topLeft.unshift(i);break;case"topRight":default:e.topRight.unshift(i);break;case"bottomLeft":e.bottomLeft.unshift(i);break;case"bottomRight":e.bottomRight.unshift(i);break;case"top":e.top.unshift(i);break;case"bottom":e.bottom.unshift(i)}}),this.topLeftInstances=e.topLeft,this.topRightInstances=e.topRight,this.bottomLeftInstances=e.bottomLeft,this.bottomRightInstances=e.bottomRight,this.topInstances=e.top,this.bottomInstances=e.bottom,this.cdr.detectChanges()}mergeOptions(e){const{nzDuration:i,nzAnimate:o,nzPauseOnHover:r,nzPlacement:s}=this.config;return{nzDuration:i,nzAnimate:o,nzPauseOnHover:r,nzPlacement:s,...e}}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(si))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-notification-container"]],exportAs:["nzNotificationContainer"],standalone:!0,features:[mt,me],decls:18,vars:40,consts:[[1,"ant-notification","ant-notification-topLeft"],[3,"instance","placement"],[1,"ant-notification","ant-notification-topRight"],[1,"ant-notification","ant-notification-bottomLeft"],[1,"ant-notification","ant-notification-bottomRight"],[1,"ant-notification","ant-notification-top"],[1,"ant-notification","ant-notification-bottom"],[3,"destroyed","instance","placement"]],template:function(i,o){1&i&&(f(0,"div",0),ji(1,nhe,1,2,"nz-notification",1,fr),m(),f(3,"div",2),ji(4,ihe,1,2,"nz-notification",1,fr),m(),f(6,"div",3),ji(7,ohe,1,2,"nz-notification",1,fr),m(),f(9,"div",4),ji(10,rhe,1,2,"nz-notification",1,fr),m(),f(12,"div",5),ji(13,she,1,2,"nz-notification",1,fr),m(),f(15,"div",6),ji(16,ahe,1,2,"nz-notification",1,fr),m()),2&i&&(Lt("top",o.top)("left","0px"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.topLeftInstances),d(2),Lt("top",o.top)("right","0px"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.topRightInstances),d(2),Lt("bottom",o.bottom)("left","0px"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.bottomLeftInstances),d(2),Lt("bottom",o.bottom)("right","0px"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.bottomRightInstances),d(2),Lt("top",o.top)("left","50%")("transform","translateX(-50%)"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.topInstances),d(2),Lt("bottom",o.bottom)("left","50%")("transform","translateX(-50%)"),Q("ant-notification-rtl","rtl"===o.dir),d(),$i(o.bottomInstances))},dependencies:[HP],encapsulation:2,changeDetection:0})}return t})(),lhe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[HP,BP]})}return t})(),dhe=0,P6=(()=>{class t extends sA{constructor(e,i,o){super(e,i,o),this.componentPrefix="notification-"}success(e,i,o){return this.create("success",e,i,o)}error(e,i,o){return this.create("error",e,i,o)}info(e,i,o){return this.create("info",e,i,o)}warning(e,i,o){return this.create("warning",e,i,o)}blank(e,i,o){return this.create("blank",e,i,o)}create(e,i,o,r){return this.createInstance({type:e,title:i,content:o},r)}template(e,i){return this.createInstance({template:e},i)}generateMessageId(){return`${this.componentPrefix}-${dhe++}`}createInstance(e,i){return this.container=this.withContainer(BP),this.container.create({...e,createdAt:new Date,messageId:i?.nzKey||this.generateMessageId(),options:i})}static#e=this.\u0275fac=function(i){return new(i||t)(R(lE),R(ya),R(tn))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),uhe=(()=>{class t{constructor(e,i){this.message=e,this.notification=i,this.$t=_e,this.websiteList=yn}ngOnInit(){}onBookChange(e){const i=this,{files:o}=e.target;if(o.length<=0)return;const r=o[0],s=new FileReader;s.readAsText(r),s.onload=function(){const c=function L2e(t){const n=JSON.parse(JSON.stringify(yn)),e=[],i=document.createElement("div");i.innerHTML=t;const o=i.querySelector("dl dl");if(!o)return{message:"\u672a\u627e\u5230dl dl\u8282\u70b9"};let r=0,s=0,a=0;try{for(let u=0;u0&&(s++,e[r-1].nav.push({createdAt:A6,title:_e("_uncategorized"),nav:[{title:_e("_uncategorized"),nav:E}]}));for(let k=0;k0&&(a++,e[r-1].nav[s-1].nav.push({createdAt:A6,title:_e("_uncategorized"),nav:dt}));for(let Bt=0;Bt0&&e.push({title:_e("_uncategorized"),createdAt:A6,nav:[{createdAt:A6,title:_e("_uncategorized"),nav:[{title:_e("_uncategorized"),nav:l}]}]})}catch(l){return console.log(l),l}return function c(l,u){for(let p=0;p(z.title||z.name)===b);-1!==y?Array.isArray(_.nav)&&c(_.nav,u[y].nav):u.push(_)}}(e,n),n}(this.result);Array.isArray(c)?(i.message.success(_e("_importSuccess")),i.websiteList=c,Yn(i.websiteList),setTimeout(()=>window.location.reload(),2e3)):i.notification.error(_e("_errorBookTip"),`${c?.message??""}`)}}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(P6))};static#t=this.\u0275cmp=q({type:t,selectors:[["system-bookmark"]],decls:7,vars:2,consts:[[1,"book-wrapper"],[3,"innerHTML"],["id","file"],["src","assets/img/bookmark.svg","draggable","false",1,"logo"],[2,"white-space","nowrap","margin-top","5px"],["type","file","name","file","accept","text/html",3,"change"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,"div",1),f(2,"label",2),S(3,"img",3),f(4,"p",4),C(5),m(),f(6,"input",5),D("change",function(s){return o.onBookChange(s)}),m()()()),2&i&&(d(),h("innerHTML",o.$t("_bookImportTip"),Wn),d(4),x(o.$t("_importChrome")))},styles:[".book-wrapper[_ngcontent-%COMP%]{text-align:center}.book-wrapper[_ngcontent-%COMP%] input[type=file][_ngcontent-%COMP%]{display:none}.book-wrapper[_ngcontent-%COMP%] #file[_ngcontent-%COMP%]{cursor:pointer}"]})}return t})(),hhe=(()=>{class t{constructor(){this.$t=_e}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["system-about"]],decls:11,vars:0,consts:[["href","https://github.com/xjh22222228/nav","target","_blank"],["src","https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/img/32.png","width","600"]],template:function(i,o){1&i&&(f(0,"p")(1,"a",0),C(2,"\u5f00\u6e90\u9879\u76ee"),m(),C(3,"\uff0c\u672a\u7ecf\u4f5c\u8005\u540c\u610f\uff0c\u4e0d\u5f97\u4ee5\u6284\u88ad/\u590d\u5236\u4ee3\u7801/\u4fee\u6539\u6e90\u4ee3\u7801\u7248\u6743\u4fe1\u606f\uff0c\u5141\u8bb8\u5546\u4e1a\u9014\u5f84\u3002\n"),m(),f(4,"p"),C(5,"\u5982\u679c\u8fd9\u4e2a\u9879\u76ee\u80fd\u5e2e\u5230\u60a8\uff0c\u652f\u6301\u4e00\u4e0b\u4f5c\u8005\uff01\u6211\u4f1a\u52aa\u529b\u7ef4\u62a4\uff01"),m(),f(6,"p"),C(7,"\u8054\u7cfb\u65b9\u5f0f: xjh22222228@gmail.com"),m(),f(8,"p"),C(9,"\u5728\u4f7f\u7528\u8fc7\u7a0b\u9047\u5230\u4efb\u4f55\u95ee\u9898\u53ef\u53d1\u9001\u90ae\u4ef6\u5bfb\u6c42\u5e2e\u52a9"),m(),S(10,"img",1))}})}return t})();const jP=["*"],phe=["inputElement"],fhe=["nz-checkbox",""],mhe=(t,n)=>n.value;function ghe(t,n){if(1&t){const e=U();f(0,"label",1),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g().onCheckedChange(r,o))}),f(1,"span"),C(2),m()()}if(2&t){const e=n.$implicit,i=g();h("nzDisabled",e.disabled||i.nzDisabled)("nzChecked",e.checked),d(2),x(e.label)}}let vhe=(()=>{class t{constructor(){this.nzOnChange=new H,this.checkboxList=[]}addCheckbox(e){this.checkboxList.push(e)}removeCheckbox(e){this.checkboxList.splice(this.checkboxList.indexOf(e),1)}onChange(){const e=this.checkboxList.filter(i=>i.nzChecked).map(i=>i.nzValue);this.nzOnChange.emit(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-checkbox-wrapper"]],hostAttrs:[1,"ant-checkbox-group"],outputs:{nzOnChange:"nzOnChange"},exportAs:["nzCheckboxWrapper"],standalone:!0,features:[me],ngContentSelectors:jP,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),Rc=(()=>{class t{innerCheckedChange(e){this.nzDisabled||(this.nzChecked=e,this.onChange(this.nzChecked),this.nzCheckedChange.emit(this.nzChecked),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.onChange())}writeValue(e){this.nzChecked=e,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}constructor(e,i,o,r,s,a,c){this.ngZone=e,this.elementRef=i,this.nzCheckboxWrapperComponent=o,this.cdr=r,this.focusMonitor=s,this.directionality=a,this.nzFormStatusService=c,this.dir="ltr",this.destroy$=new N,this.isNzDisableFirstChange=!0,this.onChange=()=>{},this.onTouched=()=>{},this.nzCheckedChange=new H,this.nzValue=null,this.nzAutoFocus=!1,this.nzDisabled=!1,this.nzIndeterminate=!1,this.nzChecked=!1,this.nzId=null}ngOnInit(){this.focusMonitor.monitor(this.elementRef,!0).pipe(I(this.destroy$)).subscribe(e=>{e||Promise.resolve().then(()=>this.onTouched())}),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.addCheckbox(this),this.directionality.change.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.preventDefault(),this.focus(),!this.nzDisabled&&this.ngZone.run(()=>{this.innerCheckedChange(!this.nzChecked),this.cdr.markForCheck()})}),nn(this.inputElement.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>e.stopPropagation())})}ngAfterViewInit(){this.nzAutoFocus&&this.focus()}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.removeCheckbox(this),this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(vhe,8),v(Ue),v(Ca),v(wt,8),v(kc,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-checkbox",""]],viewQuery:function(i,o){if(1&i&&ft(phe,7),2&i){let r;Ae(r=Oe())&&(o.inputElement=r.first)}},hostAttrs:[1,"ant-checkbox-wrapper"],hostVars:6,hostBindings:function(i,o){2&i&&Q("ant-checkbox-wrapper-in-form-item",!!o.nzFormStatusService)("ant-checkbox-wrapper-checked",o.nzChecked)("ant-checkbox-rtl","rtl"===o.dir)},inputs:{nzValue:"nzValue",nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzIndeterminate:[2,"nzIndeterminate","nzIndeterminate",O],nzChecked:[2,"nzChecked","nzChecked",O],nzId:"nzId"},outputs:{nzCheckedChange:"nzCheckedChange"},exportAs:["nzCheckbox"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,me],attrs:fhe,ngContentSelectors:jP,decls:6,vars:11,consts:[["inputElement",""],[1,"ant-checkbox"],["type","checkbox",1,"ant-checkbox-input",3,"ngModelChange","checked","ngModel","disabled"],[1,"ant-checkbox-inner"]],template:function(i,o){if(1&i){const r=U();Et(),f(0,"span",1)(1,"input",2,0),D("ngModelChange",function(a){return T(r),M(o.innerCheckedChange(a))}),m(),S(3,"span",3),m(),f(4,"span"),bt(5),m()}2&i&&(Q("ant-checkbox-checked",o.nzChecked&&!o.nzIndeterminate)("ant-checkbox-disabled",o.nzDisabled)("ant-checkbox-indeterminate",o.nzIndeterminate),d(),h("checked",o.nzChecked)("ngModel",o.nzChecked)("disabled",o.nzDisabled),Pt("autofocus",o.nzAutoFocus?"autofocus":null)("id",o.nzId))},dependencies:[Ic,W7,Qi,Xi],encapsulation:2,changeDetection:0})}return t})(),_he=(()=>{class t{onCheckedChange(e,i){e.checked=i,this.onChange(this.options)}constructor(e,i,o,r){this.elementRef=e,this.focusMonitor=i,this.cdr=o,this.directionality=r,this.onChange=()=>{},this.onTouched=()=>{},this.options=[],this.nzDisabled=!1,this.dir="ltr",this.destroy$=new N,this.isNzDisableFirstChange=!0}ngOnInit(){this.focusMonitor.monitor(this.elementRef,!0).pipe(I(this.destroy$)).subscribe(e=>{e||Promise.resolve().then(()=>this.onTouched())}),this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef),this.destroy$.next(),this.destroy$.complete()}writeValue(e){this.options=e,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Ca),v(Ue),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-checkbox-group"]],hostAttrs:[1,"ant-checkbox-group"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-checkbox-group-rtl","rtl"===o.dir)},inputs:{nzDisabled:[2,"nzDisabled","nzDisabled",O]},exportAs:["nzCheckboxGroup"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,me],decls:2,vars:0,consts:[["nz-checkbox","",1,"ant-checkbox-group-item",3,"nzDisabled","nzChecked"],["nz-checkbox","",1,"ant-checkbox-group-item",3,"nzCheckedChange","nzDisabled","nzChecked"]],template:function(i,o){1&i&&ji(0,ghe,3,3,"label",0,mhe),2&i&&$i(o.options)},dependencies:[Rc],encapsulation:2})}return t})(),I6=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Rc,_he]})}return t})();const $P=["*"],bhe=["inputElement"],yhe=["nz-radio",""];let zv=(()=>{class t{constructor(){this.selected$=new fi(1),this.touched$=new N,this.disabled$=new fi(1),this.name$=new fi(1)}touch(){this.touched$.next()}select(e){this.selected$.next(e)}setDisabled(e){this.disabled$.next(e)}setName(e){this.name$.next(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),Che=(()=>{class t{constructor(e,i,o){this.cdr=e,this.nzRadioService=i,this.directionality=o,this.value=null,this.destroy$=new N,this.isNzDisableFirstChange=!0,this.onChange=()=>{},this.onTouched=()=>{},this.nzDisabled=!1,this.nzButtonStyle="outline",this.nzSize="default",this.nzName=null,this.dir="ltr"}ngOnInit(){this.nzRadioService.selected$.pipe(I(this.destroy$)).subscribe(e=>{this.value!==e&&(this.value=e,this.onChange(this.value))}),this.nzRadioService.touched$.pipe(I(this.destroy$)).subscribe(()=>{Promise.resolve().then(()=>this.onTouched())}),this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){const{nzDisabled:i,nzName:o}=e;i&&this.nzRadioService.setDisabled(this.nzDisabled),o&&this.nzRadioService.setName(this.nzName)}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}writeValue(e){this.value=e,this.nzRadioService.select(e),this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.nzRadioService.setDisabled(this.nzDisabled),this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(zv),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-radio-group"]],hostAttrs:[1,"ant-radio-group"],hostVars:8,hostBindings:function(i,o){2&i&&Q("ant-radio-group-large","large"===o.nzSize)("ant-radio-group-small","small"===o.nzSize)("ant-radio-group-solid","solid"===o.nzButtonStyle)("ant-radio-group-rtl","rtl"===o.dir)},inputs:{nzDisabled:[2,"nzDisabled","nzDisabled",O],nzButtonStyle:"nzButtonStyle",nzSize:"nzSize",nzName:"nzName"},exportAs:["nzRadioGroup"],standalone:!0,features:[et([zv,{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,ke,me],ngContentSelectors:$P,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})(),YP=(()=>{class t{focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}constructor(e,i,o,r,s,a,c){this.ngZone=e,this.elementRef=i,this.cdr=o,this.focusMonitor=r,this.directionality=s,this.nzRadioService=a,this.nzFormStatusService=c,this.isNgModel=!1,this.destroy$=new N,this.isNzDisableFirstChange=!0,this.isChecked=!1,this.name=null,this.onChange=()=>{},this.onTouched=()=>{},this.nzValue=null,this.nzDisabled=!1,this.nzAutoFocus=!1,this.isRadioButton=!1,this.dir="ltr"}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}writeValue(e){this.isChecked=e,this.cdr.markForCheck()}registerOnChange(e){this.isNgModel=!0,this.onChange=e}registerOnTouched(e){this.onTouched=e}ngOnInit(){this.nzRadioService&&(this.nzRadioService.name$.pipe(I(this.destroy$)).subscribe(e=>{this.name=e,this.cdr.markForCheck()}),this.nzRadioService.disabled$.pipe(I(this.destroy$)).subscribe(e=>{this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}),this.nzRadioService.selected$.pipe(I(this.destroy$)).subscribe(e=>{const i=this.isChecked;this.isChecked=this.nzValue===e,this.isNgModel&&i!==this.isChecked&&!1===this.isChecked&&this.onChange(!1),this.cdr.markForCheck()})),this.focusMonitor.monitor(this.elementRef,!0).pipe(I(this.destroy$)).subscribe(e=>{e||(Promise.resolve().then(()=>this.onTouched()),this.nzRadioService&&this.nzRadioService.touch())}),this.directionality.change.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.setupClickListener()}ngAfterViewInit(){this.nzAutoFocus&&this.focus()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.focusMonitor.stopMonitoring(this.elementRef)}setupClickListener(){this.ngZone.runOutsideAngular(()=>{nn(this.elementRef.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.stopPropagation(),e.preventDefault(),!this.nzDisabled&&!this.isChecked&&this.ngZone.run(()=>{this.focus(),this.nzRadioService?.select(this.nzValue),this.isNgModel&&(this.isChecked=!0,this.onChange(!0)),this.cdr.markForCheck()})})})}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te),v(Ue),v(Ca),v(wt,8),v(zv,8),v(kc,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-radio",""],["","nz-radio-button",""]],viewQuery:function(i,o){if(1&i&&ft(bhe,7),2&i){let r;Ae(r=Oe())&&(o.inputElement=r.first)}},hostVars:18,hostBindings:function(i,o){2&i&&Q("ant-radio-wrapper-in-form-item",!!o.nzFormStatusService)("ant-radio-wrapper",!o.isRadioButton)("ant-radio-button-wrapper",o.isRadioButton)("ant-radio-wrapper-checked",o.isChecked&&!o.isRadioButton)("ant-radio-button-wrapper-checked",o.isChecked&&o.isRadioButton)("ant-radio-wrapper-disabled",o.nzDisabled&&!o.isRadioButton)("ant-radio-button-wrapper-disabled",o.nzDisabled&&o.isRadioButton)("ant-radio-wrapper-rtl",!o.isRadioButton&&"rtl"===o.dir)("ant-radio-button-wrapper-rtl",o.isRadioButton&&"rtl"===o.dir)},inputs:{nzValue:"nzValue",nzDisabled:[2,"nzDisabled","nzDisabled",O],nzAutoFocus:[2,"nzAutoFocus","nzAutoFocus",O],isRadioButton:[2,"nz-radio-button","isRadioButton",O]},exportAs:["nzRadio"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,me],attrs:yhe,ngContentSelectors:$P,decls:6,vars:24,consts:[["inputElement",""],["type","radio",3,"disabled","checked"]],template:function(i,o){1&i&&(Et(),f(0,"span"),S(1,"input",1,0)(3,"span"),m(),f(4,"span"),bt(5),m()),2&i&&(Q("ant-radio",!o.isRadioButton)("ant-radio-checked",o.isChecked&&!o.isRadioButton)("ant-radio-disabled",o.nzDisabled&&!o.isRadioButton)("ant-radio-button",o.isRadioButton)("ant-radio-button-checked",o.isChecked&&o.isRadioButton)("ant-radio-button-disabled",o.nzDisabled&&o.isRadioButton),d(),Q("ant-radio-input",!o.isRadioButton)("ant-radio-button-input",o.isRadioButton),h("disabled",o.nzDisabled)("checked",o.isChecked),Pt("autofocus",o.nzAutoFocus?"autofocus":null)("name",o.name),d(2),Q("ant-radio-inner",!o.isRadioButton)("ant-radio-button-inner",o.isRadioButton))},encapsulation:2,changeDetection:0})}return t})(),whe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})(),zhe=(()=>{class t{create(e){return typeof ResizeObserver>"u"?null:new ResizeObserver(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Sv=(()=>{class t{constructor(e){this.nzResizeObserverFactory=e,this.observedElements=new Map}ngOnDestroy(){this.observedElements.forEach((e,i)=>this.cleanupObserver(i))}observe(e){const i=Ni(e);return new Ut(o=>{const s=this.observeElement(i).subscribe(o);return()=>{s.unsubscribe(),this.unobserveElement(i)}})}observeElement(e){if(this.observedElements.has(e))this.observedElements.get(e).count++;else{const i=new N,o=this.nzResizeObserverFactory.create(r=>i.next(r));o&&o.observe(e),this.observedElements.set(e,{observer:o,stream:i,count:1})}return this.observedElements.get(e).stream}unobserveElement(e){this.observedElements.has(e)&&(this.observedElements.get(e).count--,this.observedElements.get(e).count||this.cleanupObserver(e))}cleanupObserver(e){if(this.observedElements.has(e)){const{observer:i,stream:o}=this.observedElements.get(e);i&&i.disconnect(),o.complete(),this.observedElements.delete(e)}}static#e=this.\u0275fac=function(i){return new(i||t)(R(zhe))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();const She=["nz-pagination-item",""],The=(t,n)=>({$implicit:t,page:n});function Mhe(t,n){if(1&t&&(f(0,"a"),C(1),m()),2&t){const e=g().page;d(),x(e)}}function Dhe(t,n){1&t&&S(0,"span",4)}function xhe(t,n){1&t&&S(0,"span",5)}function Ehe(t,n){if(1&t&&(f(0,"button",2),w(1,Dhe,1,0,"span",4)(2,xhe,1,0,"span",5),m()),2&t){const e=g(2);h("disabled",e.disabled),Pt("title",e.locale.prev_page),d(),he("rtl"===e.direction?1:2)}}function khe(t,n){1&t&&S(0,"span",5)}function Ahe(t,n){1&t&&S(0,"span",4)}function Ohe(t,n){if(1&t&&(f(0,"button",2),w(1,khe,1,0,"span",5)(2,Ahe,1,0,"span",4),m()),2&t){const e=g(2);h("disabled",e.disabled),Pt("title",e.locale.next_page),d(),he("rtl"===e.direction?1:2)}}function Phe(t,n){1&t&&S(0,"span",8)}function Ihe(t,n){1&t&&S(0,"span",9)}function Nhe(t,n){1&t&&w(0,Phe,1,0,"span",8)(1,Ihe,1,0,"span",9),2&t&&he("rtl"===g(3).direction?0:1)}function Vhe(t,n){1&t&&S(0,"span",9)}function Fhe(t,n){1&t&&S(0,"span",8)}function Rhe(t,n){1&t&&w(0,Vhe,1,0,"span",9)(1,Fhe,1,0,"span",8),2&t&&he("rtl"===g(3).direction?0:1)}function Lhe(t,n){if(1&t&&(f(0,"a",3)(1,"div",6),w(2,Nhe,2,1)(3,Rhe,2,1),f(4,"span",7),C(5,"\u2022\u2022\u2022"),m()()()),2&t){let e;const i=g().$implicit;d(2),he("prev_5"===(e=i)?2:"next_5"===e?3:-1)}}function Hhe(t,n){if(1&t&&w(0,Mhe,2,1,"a")(1,Ehe,3,3,"button",2)(2,Ohe,3,3,"button",2)(3,Lhe,6,1,"a",3),2&t){let e;he("page"===(e=n.$implicit)?0:"prev"===e?1:"next"===e?2:3)}}function Bhe(t,n){}const jhe=["nz-pagination-options",""],$he=(t,n)=>n.value;function Yhe(t,n){if(1&t&&S(0,"nz-option",3),2&t){const e=n.$implicit;h("nzLabel",e.label)("nzValue",e.value)}}function Uhe(t,n){if(1&t){const e=U();f(0,"nz-select",2),D("ngModelChange",function(o){return T(e),M(g().onPageSizeChange(o))}),ji(1,Yhe,1,2,"nz-option",3,$he),m()}if(2&t){const e=g();h("nzDisabled",e.disabled)("nzSize",e.nzSize)("ngModel",e.pageSize),d(),$i(e.listOfPageSizeOption)}}function Whe(t,n){if(1&t){const e=U();f(0,"div",1),C(1),f(2,"input",4),D("keydown.enter",function(o){return T(e),M(g().jumpToPageViaInput(o))}),m(),C(3),m()}if(2&t){const e=g();d(),Ce(" ",e.locale.jump_to," "),d(),h("disabled",e.disabled),d(),Ce(" ",e.locale.page," ")}}const UP=["containerTemplate"];function Ghe(t,n){return this.trackByPageItem}const qhe=(t,n)=>({$implicit:t,range:n});function Khe(t,n){}function Jhe(t,n){if(1&t&&(f(0,"li",1),w(1,Khe,0,0,"ng-template",4),m()),2&t){const e=g(2);d(),h("ngTemplateOutlet",e.showTotal)("ngTemplateOutletContext",sc(2,qhe,e.total,e.ranges))}}function Zhe(t,n){if(1&t){const e=U();f(0,"li",5),D("gotoIndex",function(o){return T(e),M(g(2).jumpPage(o))})("diffIndex",function(o){return T(e),M(g(2).jumpDiff(o))}),m()}if(2&t){const e=n.$implicit,i=g(2);h("locale",i.locale)("type",e.type)("index",e.index)("disabled",!!e.disabled)("itemRender",i.itemRender)("active",i.pageIndex===e.index)("direction",i.dir)}}function Qhe(t,n){if(1&t){const e=U();f(0,"li",6),D("pageIndexChange",function(o){return T(e),M(g(2).onPageIndexChange(o))})("pageSizeChange",function(o){return T(e),M(g(2).onPageSizeChange(o))}),m()}if(2&t){const e=g(2);h("total",e.total)("locale",e.locale)("disabled",e.disabled)("nzSize",e.nzSize)("showSizeChanger",e.showSizeChanger)("showQuickJumper",e.showQuickJumper)("pageIndex",e.pageIndex)("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)}}function Xhe(t,n){if(1&t&&(f(0,"ul"),w(1,Jhe,2,5,"li",1),ji(2,Zhe,1,7,"li",2,Ghe,!0),w(4,Qhe,1,9,"li",3),m()),2&t){const e=g();d(),he(e.showTotal?1:-1),d(),$i(e.listOfPageItem),d(2),he(e.showQuickJumper||e.showSizeChanger?4:-1)}}function e4e(t,n){if(1&t){const e=U();f(0,"ul")(1,"li",1),D("click",function(){return T(e),M(g().prePage())}),m(),f(2,"li",2)(3,"input",3),D("keydown.enter",function(o){return T(e),M(g().jumpToPageViaInput(o))}),m(),f(4,"span",4),C(5,"/"),m(),C(6),m(),f(7,"li",5),D("click",function(){return T(e),M(g().nextPage())}),m()()}if(2&t){const e=g();d(),h("locale",e.locale)("disabled",e.isFirstIndex)("direction",e.dir)("itemRender",e.itemRender),Pt("title",e.locale.prev_page),d(),Pt("title",e.pageIndex+"/"+e.lastIndex),d(),h("disabled",e.disabled)("value",e.pageIndex),d(3),Ce(" ",e.lastIndex," "),d(),h("locale",e.locale)("disabled",e.isLastIndex)("direction",e.dir)("itemRender",e.itemRender),Pt("title",null==e.locale?null:e.locale.next_page)}}function t4e(t,n){}function n4e(t,n){1&t&&w(0,t4e,0,0,"ng-template",4),2&t&&(g(2),h("ngTemplateOutlet",He(2).template))}function i4e(t,n){}function o4e(t,n){1&t&&w(0,i4e,0,0,"ng-template",4),2&t&&(g(2),h("ngTemplateOutlet",He(4).template))}function r4e(t,n){1&t&&w(0,n4e,1,1,null,4)(1,o4e,1,1,null,4),2&t&&he(g().nzSimple?0:1)}let Tv=(()=>{class t{constructor(){this.active=!1,this.index=null,this.disabled=!1,this.direction="ltr",this.type=null,this.itemRender=null,this.diffIndex=new H,this.gotoIndex=new H,this.title=null}clickItem(){this.disabled||("page"===this.type?this.gotoIndex.emit(this.index):this.diffIndex.emit({next:1,prev:-1,prev_5:-5,next_5:5}[this.type]))}ngOnChanges(e){const{locale:i,index:o,type:r}=e;(i||o||r)&&(this.title={page:`${this.index}`,next:this.locale?.next_page,prev:this.locale?.prev_page,prev_5:this.locale?.prev_5,next_5:this.locale?.next_5}[this.type])}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["li","nz-pagination-item",""]],hostVars:19,hostBindings:function(i,o){1&i&&D("click",function(){return o.clickItem()}),2&i&&(Pt("title",o.title),Q("ant-pagination-prev","prev"===o.type)("ant-pagination-next","next"===o.type)("ant-pagination-item","page"===o.type)("ant-pagination-jump-prev","prev_5"===o.type)("ant-pagination-jump-prev-custom-icon","prev_5"===o.type)("ant-pagination-jump-next","next_5"===o.type)("ant-pagination-jump-next-custom-icon","next_5"===o.type)("ant-pagination-disabled",o.disabled)("ant-pagination-item-active",o.active))},inputs:{active:"active",locale:"locale",index:"index",disabled:"disabled",direction:"direction",type:"type",itemRender:"itemRender"},outputs:{diffIndex:"diffIndex",gotoIndex:"gotoIndex"},standalone:!0,features:[ke,me],attrs:She,decls:3,vars:5,consts:[["renderItemTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","button",1,"ant-pagination-item-link",3,"disabled"],[1,"ant-pagination-item-link"],["nz-icon","","nzType","right"],["nz-icon","","nzType","left"],[1,"ant-pagination-item-container"],[1,"ant-pagination-item-ellipsis"],["nz-icon","","nzType","double-right",1,"ant-pagination-item-link-icon"],["nz-icon","","nzType","double-left",1,"ant-pagination-item-link-icon"]],template:function(i,o){if(1&i&&w(0,Hhe,4,1,"ng-template",null,0,ot)(2,Bhe,0,0,"ng-template",1),2&i){const r=He(1);d(2),h("ngTemplateOutlet",o.itemRender||r)("ngTemplateOutletContext",sc(2,The,o.type,o.index))}},dependencies:[On,cn,Vn],encapsulation:2,changeDetection:0})}return t})(),WP=(()=>{class t{constructor(){this.nzSize="default",this.disabled=!1,this.showSizeChanger=!1,this.showQuickJumper=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageSizeOptions=[],this.pageIndexChange=new H,this.pageSizeChange=new H,this.listOfPageSizeOption=[]}onPageSizeChange(e){this.pageSize!==e&&this.pageSizeChange.next(e)}jumpToPageViaInput(e){const i=e.target,o=Math.floor(j5(i.value,this.pageIndex));this.pageIndexChange.next(o),i.value=""}ngOnChanges(e){const{pageSize:i,pageSizeOptions:o,locale:r}=e;(i||o||r)&&(this.listOfPageSizeOption=[...new Set([...this.pageSizeOptions,this.pageSize])].map(s=>({value:s,label:`${s} ${this.locale.items_per_page}`})))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["li","nz-pagination-options",""]],hostAttrs:[1,"ant-pagination-options"],inputs:{nzSize:"nzSize",disabled:"disabled",showSizeChanger:"showSizeChanger",showQuickJumper:"showQuickJumper",locale:"locale",total:"total",pageIndex:"pageIndex",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions"},outputs:{pageIndexChange:"pageIndexChange",pageSizeChange:"pageSizeChange"},standalone:!0,features:[ke,me],attrs:jhe,decls:2,vars:2,consts:[[1,"ant-pagination-options-size-changer",3,"nzDisabled","nzSize","ngModel"],[1,"ant-pagination-options-quick-jumper"],[1,"ant-pagination-options-size-changer",3,"ngModelChange","nzDisabled","nzSize","ngModel"],[3,"nzLabel","nzValue"],[3,"keydown.enter","disabled"]],template:function(i,o){1&i&&w(0,Uhe,3,3,"nz-select",0)(1,Whe,4,3,"div",1),2&i&&(he(o.showSizeChanger?0:-1),d(),he(o.showQuickJumper?1:-1))},dependencies:[DP,Nc,Vc,Ic,Qi,Xi],encapsulation:2,changeDetection:0})}return t})(),GP=(()=>{class t{constructor(e,i,o,r){this.cdr=e,this.renderer=i,this.elementRef=o,this.directionality=r,this.nzSize="default",this.itemRender=null,this.showTotal=null,this.disabled=!1,this.showSizeChanger=!1,this.showQuickJumper=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageSizeOptions=[10,20,30,40],this.pageIndexChange=new H,this.pageSizeChange=new H,this.ranges=[0,0],this.listOfPageItem=[],this.dir="ltr",this.destroy$=new N,i.removeChild(i.parentNode(o.nativeElement),o.nativeElement)}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.updateRtlStyle(),this.cdr.detectChanges()}),this.dir=this.directionality.value,this.updateRtlStyle()}updateRtlStyle(){"rtl"===this.dir?this.renderer.addClass(this.elementRef.nativeElement,"ant-pagination-rtl"):this.renderer.removeClass(this.elementRef.nativeElement,"ant-pagination-rtl")}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}jumpPage(e){this.onPageIndexChange(e)}jumpDiff(e){this.jumpPage(this.pageIndex+e)}trackByPageItem(e,i){return`${i.type}-${i.index}`}onPageIndexChange(e){this.pageIndexChange.next(e)}onPageSizeChange(e){this.pageSizeChange.next(e)}getLastIndex(e,i){return Math.ceil(e/i)}buildIndexes(){const e=this.getLastIndex(this.total,this.pageSize);this.listOfPageItem=this.getListOfPageItem(this.pageIndex,e)}getListOfPageItem(e,i){const r=(s,a)=>{const c=[];for(let l=s;l<=a;l++)c.push({index:l,type:"page"});return c};return s=i<=9?r(1,i):((a,c)=>{let l=[];const u={type:"prev_5"},p={type:"next_5"},_=r(1,1),b=r(i,i);return l=a<5?[...r(2,4===a?6:5),p]:a{class t{constructor(e,i,o,r){this.cdr=e,this.renderer=i,this.elementRef=o,this.directionality=r,this.itemRender=null,this.disabled=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageIndexChange=new H,this.lastIndex=0,this.isFirstIndex=!1,this.isLastIndex=!1,this.dir="ltr",this.destroy$=new N,i.removeChild(i.parentNode(o.nativeElement),o.nativeElement)}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.updateRtlStyle(),this.cdr.detectChanges()}),this.dir=this.directionality.value,this.updateRtlStyle()}updateRtlStyle(){"rtl"===this.dir?this.renderer.addClass(this.elementRef.nativeElement,"ant-pagination-rtl"):this.renderer.removeClass(this.elementRef.nativeElement,"ant-pagination-rtl")}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}jumpToPageViaInput(e){const i=e.target,o=j5(i.value,this.pageIndex);this.onPageIndexChange(o),i.value=`${this.pageIndex}`}prePage(){this.onPageIndexChange(this.pageIndex-1)}nextPage(){this.onPageIndexChange(this.pageIndex+1)}onPageIndexChange(e){this.pageIndexChange.next(e)}updateBindingValue(){this.lastIndex=Math.ceil(this.total/this.pageSize),this.isFirstIndex=1===this.pageIndex,this.isLastIndex=this.pageIndex===this.lastIndex}ngOnChanges(e){const{pageIndex:i,total:o,pageSize:r}=e;(i||o||r)&&this.updateBindingValue()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v($t),v(Te),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-pagination-simple"]],viewQuery:function(i,o){if(1&i&&ft(UP,7),2&i){let r;Ae(r=Oe())&&(o.template=r.first)}},inputs:{itemRender:"itemRender",disabled:"disabled",locale:"locale",total:"total",pageIndex:"pageIndex",pageSize:"pageSize"},outputs:{pageIndexChange:"pageIndexChange"},standalone:!0,features:[ke,me],decls:2,vars:0,consts:[["containerTemplate",""],["nz-pagination-item","","type","prev",3,"click","locale","disabled","direction","itemRender"],[1,"ant-pagination-simple-pager"],["size","3",3,"keydown.enter","disabled","value"],[1,"ant-pagination-slash"],["nz-pagination-item","","type","next",3,"click","locale","disabled","direction","itemRender"]],template:function(i,o){1&i&&w(0,e4e,8,14,"ng-template",null,0,ot)},dependencies:[Tv],encapsulation:2,changeDetection:0})}return t})(),KP=(()=>{class t{validatePageIndex(e,i){return e>i?i:e<1?1:e}onPageIndexChange(e){const i=this.getLastIndex(this.nzTotal,this.nzPageSize),o=this.validatePageIndex(e,i);o!==this.nzPageIndex&&!this.nzDisabled&&(this.nzPageIndex=o,this.nzPageIndexChange.emit(this.nzPageIndex))}onPageSizeChange(e){this.nzPageSize=e,this.nzPageSizeChange.emit(e);const i=this.getLastIndex(this.nzTotal,this.nzPageSize);this.nzPageIndex>i&&this.onPageIndexChange(i)}onTotalChange(e){const i=this.getLastIndex(e,this.nzPageSize);this.nzPageIndex>i&&Promise.resolve().then(()=>{this.onPageIndexChange(i),this.cdr.markForCheck()})}getLastIndex(e,i){return Math.ceil(e/i)}constructor(e,i,o,r,s){this.i18n=e,this.cdr=i,this.breakpointService=o,this.nzConfigService=r,this.directionality=s,this._nzModuleName="pagination",this.nzPageSizeChange=new H,this.nzPageIndexChange=new H,this.nzShowTotal=null,this.nzItemRender=null,this.nzSize="default",this.nzPageSizeOptions=[10,20,30,40],this.nzShowSizeChanger=!1,this.nzShowQuickJumper=!1,this.nzSimple=!1,this.nzDisabled=!1,this.nzResponsive=!1,this.nzHideOnSinglePage=!1,this.nzTotal=0,this.nzPageIndex=1,this.nzPageSize=10,this.showPagination=!0,this.size="default",this.dir="ltr",this.destroy$=new N,this.total$=new fi(1)}ngOnInit(){this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Pagination"),this.cdr.markForCheck()}),this.total$.pipe(I(this.destroy$)).subscribe(e=>{this.onTotalChange(e)}),this.breakpointService.subscribe(qu).pipe(I(this.destroy$)).subscribe(e=>{this.nzResponsive&&(this.size=e===L5.xs?"small":"default",this.cdr.markForCheck())}),this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}ngOnChanges(e){const{nzHideOnSinglePage:i,nzTotal:o,nzPageSize:r,nzSize:s}=e;o&&this.total$.next(this.nzTotal),(i||o||r)&&(this.showPagination=this.nzHideOnSinglePage&&this.nzTotal>this.nzPageSize||this.nzTotal>0&&!this.nzHideOnSinglePage),s&&(this.size=s.currentValue)}static#e=this.\u0275fac=function(i){return new(i||t)(v($s),v(Ue),v(H5),v(si),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-pagination"]],hostAttrs:[1,"ant-pagination"],hostVars:8,hostBindings:function(i,o){2&i&&Q("ant-pagination-simple",o.nzSimple)("ant-pagination-disabled",o.nzDisabled)("ant-pagination-mini",!o.nzSimple&&"small"===o.size)("ant-pagination-rtl","rtl"===o.dir)},inputs:{nzShowTotal:"nzShowTotal",nzItemRender:"nzItemRender",nzSize:"nzSize",nzPageSizeOptions:"nzPageSizeOptions",nzShowSizeChanger:[2,"nzShowSizeChanger","nzShowSizeChanger",O],nzShowQuickJumper:[2,"nzShowQuickJumper","nzShowQuickJumper",O],nzSimple:[2,"nzSimple","nzSimple",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzResponsive:[2,"nzResponsive","nzResponsive",O],nzHideOnSinglePage:[2,"nzHideOnSinglePage","nzHideOnSinglePage",O],nzTotal:[2,"nzTotal","nzTotal",Pi],nzPageIndex:[2,"nzPageIndex","nzPageIndex",Pi],nzPageSize:[2,"nzPageSize","nzPageSize",Pi]},outputs:{nzPageSizeChange:"nzPageSizeChange",nzPageIndexChange:"nzPageIndexChange"},exportAs:["nzPagination"],standalone:!0,features:[je,ke,me],decls:5,vars:18,consts:[["simplePagination",""],["defaultPagination",""],[3,"pageIndexChange","disabled","itemRender","locale","pageSize","total","pageIndex"],[3,"pageIndexChange","pageSizeChange","nzSize","itemRender","showTotal","disabled","locale","showSizeChanger","showQuickJumper","total","pageIndex","pageSize","pageSizeOptions"],[3,"ngTemplateOutlet"]],template:function(i,o){if(1&i){const r=U();w(0,r4e,2,1),f(1,"nz-pagination-simple",2,0),D("pageIndexChange",function(a){return T(r),M(o.onPageIndexChange(a))}),m(),f(3,"nz-pagination-default",3,1),D("pageIndexChange",function(a){return T(r),M(o.onPageIndexChange(a))})("pageSizeChange",function(a){return T(r),M(o.onPageSizeChange(a))}),m()}2&i&&(he(o.showPagination?0:-1),d(),h("disabled",o.nzDisabled)("itemRender",o.nzItemRender)("locale",o.locale)("pageSize",o.nzPageSize)("total",o.nzTotal)("pageIndex",o.nzPageIndex),d(2),h("nzSize",o.size)("itemRender",o.nzItemRender)("showTotal",o.nzShowTotal)("disabled",o.nzDisabled)("locale",o.locale)("showSizeChanger",o.nzShowSizeChanger)("showQuickJumper",o.nzShowQuickJumper)("total",o.nzTotal)("pageIndex",o.nzPageIndex)("pageSize",o.nzPageSize)("pageSizeOptions",o.nzPageSizeOptions))},dependencies:[Vn,qP,GP],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzSize",void 0),kt([Nt()],t.prototype,"nzPageSizeOptions",void 0),kt([Nt()],t.prototype,"nzShowSizeChanger",void 0),kt([Nt()],t.prototype,"nzShowQuickJumper",void 0),kt([Nt()],t.prototype,"nzSimple",void 0),t})(),a4e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[KP,qP,WP,Tv,GP]})}return t})();const l4e=["*"];function d4e(t,n){1&t&&(f(0,"span",3),S(1,"i",4)(2,"i",4)(3,"i",4)(4,"i",4),m())}function u4e(t,n){}function h4e(t,n){if(1&t&&(f(0,"div",8),C(1),m()),2&t){const e=g(2);d(),x(e.nzTip)}}function p4e(t,n){if(1&t&&(f(0,"div")(1,"div",5),w(2,u4e,0,0,"ng-template",6)(3,h4e,2,1,"div",7),m()()),2&t){const e=g(),i=He(1);d(),Q("ant-spin-rtl","rtl"===e.dir)("ant-spin-spinning",e.isLoading)("ant-spin-lg","large"===e.nzSize)("ant-spin-sm","small"===e.nzSize)("ant-spin-show-text",e.nzTip),d(),h("ngTemplateOutlet",e.nzIndicator||i),d(),h("ngIf",e.nzTip)}}function f4e(t,n){1&t&&(f(0,"div",9),bt(1),m()),2&t&&Q("ant-spin-blur",g().isLoading)}let ZP=(()=>{class t{constructor(e,i,o){this.nzConfigService=e,this.cdr=i,this.directionality=o,this._nzModuleName="spin",this.nzIndicator=null,this.nzSize="default",this.nzTip=null,this.nzDelay=0,this.nzSimple=!1,this.nzSpinning=!0,this.destroy$=new N,this.spinning$=new rt(this.nzSpinning),this.delay$=new fi(1),this.isLoading=!1,this.dir="ltr"}ngOnInit(){this.delay$.pipe(gn(this.nzDelay),qi(),mn(i=>0===i?this.spinning$:this.spinning$.pipe(function c4e(t){return dn((n,e)=>{let i=!1,o=null,r=null;const s=()=>{if(r?.unsubscribe(),r=null,i){i=!1;const a=o;o=null,e.next(a)}};n.subscribe(Zt(e,a=>{r?.unsubscribe(),i=!0,o=a,r=Zt(e,s,qs),Ii(t(a)).subscribe(r)},()=>{s(),e.complete()},void 0,()=>{o=r=null}))})}(o=>m3(o?i:0)))),I(this.destroy$)).subscribe(i=>{this.isLoading=i,this.cdr.markForCheck()}),this.nzConfigService.getConfigChangeEventForComponent("spin").pipe(I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.directionality.change?.pipe(I(this.destroy$)).subscribe(i=>{this.dir=i,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){const{nzSpinning:i,nzDelay:o}=e;i&&this.spinning$.next(this.nzSpinning),o&&this.delay$.next(this.nzDelay)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Ue),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-spin"]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-spin-nested-loading",!o.nzSimple)},inputs:{nzIndicator:"nzIndicator",nzSize:"nzSize",nzTip:"nzTip",nzDelay:[2,"nzDelay","nzDelay",Pi],nzSimple:[2,"nzSimple","nzSimple",O],nzSpinning:[2,"nzSpinning","nzSpinning",O]},exportAs:["nzSpin"],standalone:!0,features:[je,ke,me],ngContentSelectors:l4e,decls:4,vars:2,consts:[["defaultTemplate",""],[4,"ngIf"],["class","ant-spin-container",3,"ant-spin-blur",4,"ngIf"],[1,"ant-spin-dot","ant-spin-dot-spin"],[1,"ant-spin-dot-item"],[1,"ant-spin"],[3,"ngTemplateOutlet"],["class","ant-spin-text",4,"ngIf"],[1,"ant-spin-text"],[1,"ant-spin-container"]],template:function(i,o){1&i&&(Et(),w(0,d4e,5,0,"ng-template",null,0,ot)(2,p4e,4,12,"div",1)(3,f4e,2,2,"div",2)),2&i&&(d(2),h("ngIf",o.isLoading),d(),h("ngIf",!o.nzSimple))},dependencies:[Tt,Vn],encapsulation:2})}return kt([Nt()],t.prototype,"nzIndicator",void 0),t})(),m4e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();const Lc=["*"],g4e=(t,n)=>n.value;function v4e(t,n){}function _4e(t,n){if(1&t){const e=U();f(0,"label",14),D("ngModelChange",function(){T(e);const o=g().$implicit;return M(g(2).check(o))}),m()}2&t&&h("ngModel",g().$implicit.checked)}function b4e(t,n){if(1&t){const e=U();f(0,"label",15),D("ngModelChange",function(){T(e);const o=g().$implicit;return M(g(2).check(o))}),m()}2&t&&h("ngModel",g().$implicit.checked)}function y4e(t,n){if(1&t){const e=U();f(0,"li",11),D("click",function(){const o=T(e).$implicit;return M(g(2).check(o))}),w(1,_4e,1,1,"label",12)(2,b4e,1,1,"label",13),f(3,"span"),C(4),m()()}if(2&t){const e=n.$implicit,i=g(2);h("nzSelected",e.checked),d(),he(i.filterMultiple?2:1),d(3),x(e.text)}}function C4e(t,n){if(1&t){const e=U();f(0,"nz-filter-trigger",3),D("nzVisibleChange",function(o){return T(e),M(g().onVisibleChange(o))}),S(1,"span",4),m(),f(2,"nz-dropdown-menu",null,0)(4,"div",5)(5,"ul",6),ji(6,y4e,5,3,"li",7,g4e),m(),f(8,"div",8)(9,"button",9),D("click",function(){return T(e),M(g().reset())}),C(10),m(),f(11,"button",10),D("click",function(){return T(e),M(g().confirm())}),C(12),m()()()()}if(2&t){const e=He(3),i=g();h("nzVisible",i.isVisible)("nzActive",i.isChecked)("nzDropdownMenu",e),d(6),$i(i.listOfParsedFilter),d(3),h("disabled",!i.isChecked),d(),Ce(" ",i.locale.filterReset," "),d(2),x(i.locale.filterConfirm)}}function w4e(t,n){1&t&&P4(0,2),2&t&&h("ngTemplateOutlet",g().extraTemplate)}function z4e(t,n){if(1&t){const e=U();f(0,"label",3),D("ngModelChange",function(o){return T(e),M(g().onCheckedChange(o))}),m()}if(2&t){const e=g();Q("ant-table-selection-select-all-custom",e.showRowSelection),h("ngModel",e.checked)("nzDisabled",e.disabled)("nzIndeterminate",e.indeterminate),Pt("aria-label",e.label)}}function S4e(t,n){if(1&t){const e=U();f(0,"li",8),D("click",function(){return M(T(e).$implicit.onSelect())}),C(1),m()}if(2&t){const e=n.$implicit;d(),Ce(" ",e.text," ")}}function T4e(t,n){if(1&t&&(f(0,"div",2)(1,"span",4),S(2,"span",5),m(),f(3,"nz-dropdown-menu",null,0)(5,"ul",6),ji(6,S4e,2,1,"li",7,fr),m()()()),2&t){const e=He(4),i=g();d(),h("nzDropdownMenu",e),d(5),$i(i.listOfSelections)}}function M4e(t,n){}function D4e(t,n){1&t&&S(0,"span",6),2&t&&Q("active","ascend"===g().sortOrder)}function x4e(t,n){1&t&&S(0,"span",7),2&t&&Q("active","descend"===g().sortOrder)}const E4e=["nzChecked",""];function k4e(t,n){}function A4e(t,n){1&t&&w(0,k4e,0,0,"ng-template",2),2&t&&h("ngTemplateOutlet",g(2).nzExpandIcon)}function O4e(t,n){if(1&t){const e=U();f(0,"button",4),D("expandChange",function(o){return T(e),M(g(2).onExpandChange(o))}),m()}if(2&t){const e=g(2);h("expand",e.nzExpand)("spaceMode",!e.nzShowExpand)}}function P4e(t,n){if(1&t&&(S(0,"nz-row-indent",1),w(1,A4e,1,1,null,2)(2,O4e,1,2,"button",3)),2&t){const e=g();h("indentSize",e.nzIndentSize),d(),he(e.nzExpandIcon?1:2)}}function I4e(t,n){if(1&t){const e=U();f(0,"label",5),D("ngModelChange",function(o){return T(e),M(g().onCheckedChange(o))}),m()}if(2&t){const e=g();h("nzDisabled",e.nzDisabled)("ngModel",e.nzChecked)("nzIndeterminate",e.nzIndeterminate),Pt("aria-label",e.nzLabel)}}const N4e=["nzColumnKey",""],V4e=[[["","nz-th-extra",""]],[["nz-filter-trigger"]],"*"],F4e=["[nz-th-extra]","nz-filter-trigger","*"];function R4e(t,n){if(1&t){const e=U();f(0,"nz-table-filter",6),D("filterChange",function(o){return T(e),M(g().onFilterValueChange(o))}),m()}if(2&t){const e=g(),i=He(3),o=He(5);h("contentTemplate",i)("extraTemplate",o)("customFilter",e.nzCustomFilter)("filterMultiple",e.nzFilterMultiple)("listOfFilter",e.nzFilters)}}function L4e(t,n){1&t&&P4(0,5),2&t&&(g(),h("ngTemplateOutlet",He(3)))}function H4e(t,n){}function B4e(t,n){if(1&t&&w(0,H4e,0,0,"ng-template",5),2&t){const e=g(),i=He(7),o=He(9);h("ngTemplateOutlet",e.nzShowSort?i:o)}}function j4e(t,n){1&t&&(bt(0),bt(1,1))}function $4e(t,n){if(1&t&&S(0,"nz-table-sorters",7),2&t){const e=g(),i=He(9);h("sortOrder",e.sortOrder)("sortDirections",e.sortDirections)("contentTemplate",i)}}function Y4e(t,n){1&t&&bt(0,2)}const U4e=["nzSelections",""],W4e=["nz-table-content",""];function G4e(t,n){if(1&t&&S(0,"col"),2&t){const e=n.$implicit;Lt("width",e)("min-width",e)}}function q4e(t,n){}function K4e(t,n){if(1&t&&(f(0,"thead",1),w(1,q4e,0,0,"ng-template",2),m()),2&t){const e=g();d(),h("ngTemplateOutlet",e.theadTemplate)}}function J4e(t,n){}const QP=["tdElement"],Z4e=["nz-table-fixed-row",""],XP=["*","*"];function Q4e(t,n){1&t&&(f(0,"div",3),Fr(1,"async"),bt(2),m()),2&t&&Lt("width",Rr(1,2,g().hostWidth$),"px")}function X4e(t,n){1&t&&bt(0,1)}const e0e=["nz-table-measure-row",""];function t0e(t,n){1&t&&S(0,"td",1,0)}function n0e(t,n){if(1&t){const e=U();f(0,"tr",2),D("listOfAutoWidth",function(o){return T(e),M(g(2).onListOfAutoWidthChange(o))}),m()}2&t&&h("listOfMeasureColumn",g())}function i0e(t,n){1&t&&w(0,n0e,1,1,"tr",1),2&t&&he(g().isInsideTable&&n.length?0:-1)}function o0e(t,n){if(1&t&&(f(0,"tr",0),S(1,"nz-embed-empty",3),Fr(2,"async"),m()),2&t){const e=g();d(),h("specificContent",Rr(2,1,e.noResult$))}}const r0e=["tableHeaderElement"],s0e=["tableBodyElement"],a0e=(t,n)=>({$implicit:t,index:n});function c0e(t,n){if(1&t&&(f(0,"div",5,1),S(2,"table",7),m()),2&t){const e=g(2);h("ngStyle",e.bodyStyleMap),d(2),h("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("contentTemplate",e.contentTemplate)}}function l0e(t,n){}function d0e(t,n){if(1&t&&($e(0),w(1,l0e,0,0,"ng-template",11),Ye()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),h("ngTemplateOutlet",o.virtualTemplate)("ngTemplateOutletContext",sc(2,a0e,e,i))}}function u0e(t,n){if(1&t&&(f(0,"cdk-virtual-scroll-viewport",8,1)(2,"table",9)(3,"tbody"),w(4,d0e,2,5,"ng-container",10),m()()()),2&t){const e=g(2);Lt("height",e.data.length?e.scrollY:e.noDataVirtualHeight),h("itemSize",e.virtualItemSize)("maxBufferPx",e.virtualMaxBufferPx)("minBufferPx",e.virtualMinBufferPx),d(2),h("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth),d(2),h("cdkVirtualForOf",e.data)("cdkVirtualForTrackBy",e.virtualForTrackBy)}}function h0e(t,n){if(1&t&&(f(0,"div",3,0),S(2,"table",4),m(),w(3,c0e,3,4,"div",5)(4,u0e,5,9,"cdk-virtual-scroll-viewport",6)),2&t){const e=g();h("ngStyle",e.headerStyleMap),d(2),h("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("theadTemplate",e.theadTemplate),d(),he(e.virtualTemplate?4:3)}}function p0e(t,n){if(1&t&&(f(0,"div",2,1),S(2,"table",12),m()),2&t){const e=g();h("ngStyle",e.bodyStyleMap),d(2),h("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("theadTemplate",e.theadTemplate)("contentTemplate",e.contentTemplate)}}function f0e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.title)}}function m0e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g();d(),x(e.footer)}}function g0e(t,n){}function v0e(t,n){1&t&&w(0,g0e,0,0,"ng-template",4),2&t&&(g(),h("ngTemplateOutlet",He(10)))}function _0e(t,n){1&t&&S(0,"nz-table-title-footer",6),2&t&&h("title",g().nzTitle)}function b0e(t,n){if(1&t&&S(0,"nz-table-inner-scroll",7),2&t){const e=g(),i=He(3),o=He(12);h("data",e.data)("scrollX",e.scrollX)("scrollY",e.scrollY)("contentTemplate",o)("listOfColWidth",e.listOfAutoColWidth)("theadTemplate",e.theadTemplate)("verticalScrollBarWidth",e.verticalScrollBarWidth)("virtualTemplate",e.nzVirtualScrollDirective?e.nzVirtualScrollDirective.templateRef:null)("virtualItemSize",e.nzVirtualItemSize)("virtualMaxBufferPx",e.nzVirtualMaxBufferPx)("virtualMinBufferPx",e.nzVirtualMinBufferPx)("tableMainElement",i)("virtualForTrackBy",e.nzVirtualForTrackBy)("noDataVirtualHeight",e.noDataVirtualHeight)}}function y0e(t,n){if(1&t&&S(0,"nz-table-inner-default",8),2&t){const e=g(),i=He(12);h("tableLayout",e.nzTableLayout)("listOfColWidth",e.listOfManualColWidth)("theadTemplate",e.theadTemplate)("contentTemplate",i)}}function C0e(t,n){1&t&&S(0,"nz-table-title-footer",9),2&t&&h("footer",g().nzFooter)}function w0e(t,n){}function z0e(t,n){1&t&&w(0,w0e,0,0,"ng-template",4),2&t&&(g(),h("ngTemplateOutlet",He(10)))}function S0e(t,n){if(1&t){const e=U();f(0,"nz-pagination",11),D("nzPageSizeChange",function(o){return T(e),M(g(2).onPageSizeChange(o))})("nzPageIndexChange",function(o){return T(e),M(g(2).onPageIndexChange(o))}),m()}if(2&t){const e=g(2);h("hidden",!e.showPagination)("nzShowSizeChanger",e.nzShowSizeChanger)("nzPageSizeOptions",e.nzPageSizeOptions)("nzItemRender",e.nzItemRender)("nzShowQuickJumper",e.nzShowQuickJumper)("nzHideOnSinglePage",e.nzHideOnSinglePage)("nzShowTotal",e.nzShowTotal)("nzSize","small"===e.nzPaginationType?"small":"default"===e.nzSize?"default":"small")("nzPageSize",e.nzPageSize)("nzTotal",e.nzTotal)("nzSimple",e.nzSimple)("nzPageIndex",e.nzPageIndex)}}function T0e(t,n){if(1&t&&w(0,S0e,1,12,"nz-pagination",10),2&t){const e=g();he(e.nzShowPagination&&e.data.length?0:-1)}}function M0e(t,n){1&t&&bt(0)}const D0e=["contentTemplate"];function x0e(t,n){1&t&&bt(0)}function E0e(t,n){}function k0e(t,n){1&t&&w(0,E0e,0,0,"ng-template",1),2&t&&(g(),h("ngTemplateOutlet",He(1)))}let eI=(()=>{class t{onVisibleChange(e){this.nzVisible=e,this.nzVisibleChange.next(e)}hide(){this.nzVisible=!1,this.cdr.markForCheck()}show(){this.nzVisible=!0,this.cdr.markForCheck()}constructor(e,i,o,r){this.nzConfigService=e,this.ngZone=i,this.cdr=o,this.destroy$=r,this._nzModuleName="filterTrigger",this.nzActive=!1,this.nzVisible=!1,this.nzBackdrop=!1,this.nzVisibleChange=new H}ngOnInit(){this.ngZone.runOutsideAngular(()=>{nn(this.nzDropdown.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.stopPropagation()})})}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(De),v(Ue),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-filter-trigger"]],viewQuery:function(i,o){if(1&i&&ft(N1,7,Te),2&i){let r;Ae(r=Oe())&&(o.nzDropdown=r.first)}},inputs:{nzActive:"nzActive",nzDropdownMenu:"nzDropdownMenu",nzVisible:"nzVisible",nzBackdrop:[2,"nzBackdrop","nzBackdrop",O]},outputs:{nzVisibleChange:"nzVisibleChange"},exportAs:["nzFilterTrigger"],standalone:!0,features:[et([No]),je,me],ngContentSelectors:Lc,decls:2,vars:8,consts:[["nz-dropdown","","nzTrigger","click","nzPlacement","bottomRight",1,"ant-table-filter-trigger",3,"nzVisibleChange","nzBackdrop","nzClickHide","nzDropdownMenu","nzVisible"]],template:function(i,o){1&i&&(Et(),f(0,"span",0),D("nzVisibleChange",function(s){return o.onVisibleChange(s)}),bt(1),m()),2&i&&(Q("active",o.nzActive)("ant-table-filter-open",o.nzVisible),h("nzBackdrop",o.nzBackdrop)("nzClickHide",!1)("nzDropdownMenu",o.nzDropdownMenu)("nzVisible",o.nzVisible))},dependencies:[d6,N1],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzBackdrop",void 0),t})(),tI=(()=>{class t{check(e){this.filterMultiple?(this.listOfParsedFilter=this.listOfParsedFilter.map(i=>i===e?{...i,checked:!e.checked}:i),e.checked=!e.checked):this.listOfParsedFilter=this.listOfParsedFilter.map(i=>({...i,checked:i===e})),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter)}confirm(){this.isVisible=!1,this.emitFilterData()}reset(){this.isVisible=!1,this.listOfParsedFilter=this.parseListOfFilter(this.listOfFilter,!0),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter),this.emitFilterData()}onVisibleChange(e){this.isVisible=e,e?this.listOfChecked=this.listOfParsedFilter.filter(i=>i.checked).map(i=>i.value):this.emitFilterData()}emitFilterData(){const e=this.listOfParsedFilter.filter(i=>i.checked).map(i=>i.value);dE(this.listOfChecked,e)||this.filterChange.emit(this.filterMultiple?e:e.length>0?e[0]:null)}parseListOfFilter(e,i){return e.map(o=>({text:o.text,value:o.value,checked:!i&&!!o.byDefault}))}getCheckedStatus(e){return e.some(i=>i.checked)}constructor(e,i){this.cdr=e,this.i18n=i,this.contentTemplate=null,this.customFilter=!1,this.extraTemplate=null,this.filterMultiple=!0,this.listOfFilter=[],this.filterChange=new H,this.destroy$=new N,this.isChecked=!1,this.isVisible=!1,this.listOfParsedFilter=[],this.listOfChecked=[]}ngOnInit(){this.i18n.localeChange.pipe(I(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Table"),this.cdr.markForCheck()})}ngOnChanges(e){const{listOfFilter:i}=e;i&&this.listOfFilter&&this.listOfFilter.length&&(this.listOfParsedFilter=this.parseListOfFilter(this.listOfFilter),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter))}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v($s))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-filter"]],hostAttrs:[1,"ant-table-filter-column"],inputs:{contentTemplate:"contentTemplate",customFilter:"customFilter",extraTemplate:"extraTemplate",filterMultiple:"filterMultiple",listOfFilter:"listOfFilter"},outputs:{filterChange:"filterChange"},standalone:!0,features:[ke,me],decls:4,vars:2,consts:[["filterMenu","nzDropdownMenu"],[1,"ant-table-column-title"],[3,"ngTemplateOutlet"],[3,"nzVisibleChange","nzVisible","nzActive","nzDropdownMenu"],["nz-icon","","nzType","filter","nzTheme","fill"],[1,"ant-table-filter-dropdown"],["nz-menu",""],["nz-menu-item","",3,"nzSelected"],[1,"ant-table-filter-dropdown-btns"],["nz-button","","nzType","link","nzSize","small",3,"click","disabled"],["nz-button","","nzType","primary","nzSize","small",3,"click"],["nz-menu-item","",3,"click","nzSelected"],["nz-radio","",3,"ngModel"],["nz-checkbox","",3,"ngModel"],["nz-radio","",3,"ngModelChange","ngModel"],["nz-checkbox","",3,"ngModelChange","ngModel"]],template:function(i,o){1&i&&(f(0,"span",1),w(1,v4e,0,0,"ng-template",2),m(),w(2,C4e,13,6)(3,w4e,1,1,"ng-container",2)),2&i&&(d(),h("ngTemplateOutlet",o.contentTemplate),d(),he(o.customFilter?3:2))},dependencies:[Vn,eI,On,cn,d6,Sa,Us,C2,YP,I6,Rc,Ic,Qi,Xi,h2,nr,mi,tr],encapsulation:2,changeDetection:0})}return t})(),O0e=(()=>{class t{constructor(){this.expand=!1,this.spaceMode=!1,this.expandChange=new H}onHostClick(){this.spaceMode||(this.expand=!this.expand,this.expandChange.next(this.expand))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["button","nz-row-expand-button",""]],hostAttrs:[1,"ant-table-row-expand-icon"],hostVars:7,hostBindings:function(i,o){1&i&&D("click",function(){return o.onHostClick()}),2&i&&(em("type","button"),Q("ant-table-row-expand-icon-expanded",!o.spaceMode&&!0===o.expand)("ant-table-row-expand-icon-collapsed",!o.spaceMode&&!1===o.expand)("ant-table-row-expand-icon-spaced",o.spaceMode))},inputs:{expand:"expand",spaceMode:"spaceMode"},outputs:{expandChange:"expandChange"},standalone:!0})}return t})(),P0e=(()=>{class t{constructor(){this.indentSize=0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["nz-row-indent"]],hostAttrs:[1,"ant-table-row-indent"],hostVars:2,hostBindings:function(i,o){2&i&&Lt("padding-left",o.indentSize,"px")},inputs:{indentSize:"indentSize"},standalone:!0})}return t})(),nI=(()=>{class t{constructor(){this.listOfSelections=[],this.checked=!1,this.disabled=!1,this.indeterminate=!1,this.label=null,this.showCheckbox=!1,this.showRowSelection=!1,this.checkedChange=new H}onCheckedChange(e){this.checked=e,this.checkedChange.emit(e)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-selection"]],hostAttrs:[1,"ant-table-selection"],inputs:{listOfSelections:"listOfSelections",checked:"checked",disabled:"disabled",indeterminate:"indeterminate",label:"label",showCheckbox:"showCheckbox",showRowSelection:"showRowSelection"},outputs:{checkedChange:"checkedChange"},standalone:!0,features:[me],decls:2,vars:2,consts:[["selectionMenu","nzDropdownMenu"],["nz-checkbox","",3,"ant-table-selection-select-all-custom","ngModel","nzDisabled","nzIndeterminate"],[1,"ant-table-selection-extra"],["nz-checkbox","",3,"ngModelChange","ngModel","nzDisabled","nzIndeterminate"],["nz-dropdown","","nzPlacement","bottomLeft",1,"ant-table-selection-down",3,"nzDropdownMenu"],["nz-icon","","nzType","down"],["nz-menu","",1,"ant-table-selection-menu"],["nz-menu-item",""],["nz-menu-item","",3,"click"]],template:function(i,o){1&i&&w(0,z4e,1,6,"label",1)(1,T4e,8,1,"div",2),2&i&&(he(o.showCheckbox?0:-1),d(),he(o.showRowSelection?1:-1))},dependencies:[Ic,Qi,Xi,I6,Rc,d6,Sa,Us,N1,C2,On,cn],encapsulation:2,changeDetection:0})}return t})(),iI=(()=>{class t{constructor(){this.sortDirections=["ascend","descend",null],this.sortOrder=null,this.contentTemplate=null,this.isUp=!1,this.isDown=!1}ngOnChanges(e){const{sortDirections:i}=e;i&&(this.isUp=-1!==this.sortDirections.indexOf("ascend"),this.isDown=-1!==this.sortDirections.indexOf("descend"))}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-sorters"]],hostAttrs:[1,"ant-table-column-sorters"],inputs:{sortDirections:"sortDirections",sortOrder:"sortOrder",contentTemplate:"contentTemplate"},standalone:!0,features:[ke,me],decls:6,vars:5,consts:[[1,"ant-table-column-title"],[3,"ngTemplateOutlet"],[1,"ant-table-column-sorter"],[1,"ant-table-column-sorter-inner"],["nz-icon","","nzType","caret-up",1,"ant-table-column-sorter-up",3,"active"],["nz-icon","","nzType","caret-down",1,"ant-table-column-sorter-down",3,"active"],["nz-icon","","nzType","caret-up",1,"ant-table-column-sorter-up"],["nz-icon","","nzType","caret-down",1,"ant-table-column-sorter-down"]],template:function(i,o){1&i&&(f(0,"span",0),w(1,M4e,0,0,"ng-template",1),m(),f(2,"span",2)(3,"span",3),w(4,D4e,1,2,"span",4)(5,x4e,1,2,"span",5),m()()),2&i&&(d(),h("ngTemplateOutlet",o.contentTemplate),d(),Q("ant-table-column-sorter-full",o.isDown&&o.isUp),d(2),he(o.isUp?4:-1),d(),he(o.isDown?5:-1))},dependencies:[On,cn,Vn],encapsulation:2,changeDetection:0})}return t})(),I0e=(()=>{class t{setAutoLeftWidth(e){this.renderer.setStyle(this.elementRef.nativeElement,"left",e)}setAutoRightWidth(e){this.renderer.setStyle(this.elementRef.nativeElement,"right",e)}setIsFirstRight(e){this.setFixClass(e,"ant-table-cell-fix-right-first")}setIsLastLeft(e){this.setFixClass(e,"ant-table-cell-fix-left-last")}setFixClass(e,i){this.renderer.removeClass(this.elementRef.nativeElement,i),e&&this.renderer.addClass(this.elementRef.nativeElement,i)}constructor(e,i){this.renderer=e,this.elementRef=i,this.nzRight=!1,this.nzLeft=!1,this.colspan=null,this.colSpan=null,this.changes$=new N,this.isAutoLeft=!1,this.isAutoRight=!1,this.isFixedLeft=!1,this.isFixedRight=!1,this.isFixed=!1}ngOnChanges(){this.setIsFirstRight(!1),this.setIsLastLeft(!1),this.isAutoLeft=""===this.nzLeft||!0===this.nzLeft,this.isAutoRight=""===this.nzRight||!0===this.nzRight,this.isFixedLeft=!1!==this.nzLeft,this.isFixedRight=!1!==this.nzRight,this.isFixed=this.isFixedLeft||this.isFixedRight;const e=i=>"string"==typeof i&&""!==i?i:null;this.setAutoLeftWidth(e(this.nzLeft)),this.setAutoRightWidth(e(this.nzRight)),this.changes$.next()}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["td","nzRight",""],["th","nzRight",""],["td","nzLeft",""],["th","nzLeft",""]],hostVars:6,hostBindings:function(i,o){2&i&&(Lt("position",o.isFixed?"sticky":null),Q("ant-table-cell-fix-right",o.isFixedRight)("ant-table-cell-fix-left",o.isFixedLeft))},inputs:{nzRight:"nzRight",nzLeft:"nzLeft",colspan:"colspan",colSpan:"colSpan"},standalone:!0,features:[ke]})}return t})(),Hc=(()=>{class t{setTheadTemplate(e){this.theadTemplate$.next(e)}setHasFixLeft(e){this.hasFixLeft$.next(e)}setHasFixRight(e){this.hasFixRight$.next(e)}setTableWidthConfig(e){this.tableWidthConfigPx$.next(e)}setListOfTh(e){let i=0;e.forEach(r=>{i+=r.colspan&&+r.colspan||r.colSpan&&+r.colSpan||1});const o=e.map(r=>r.nzWidth);this.columnCount$.next(i),this.listOfThWidthConfigPx$.next(o)}setListOfMeasureColumn(e){const i=[];e.forEach(o=>{const r=o.colspan&&+o.colspan||o.colSpan&&+o.colSpan||1;for(let s=0;s`${i}px`))}setShowEmpty(e){this.showEmpty$.next(e)}setNoResult(e){this.noResult$.next(e)}setScroll(e,i){const o=!(!e&&!i);o||this.setListOfAutoWidth([]),this.enableAutoMeasure$.next(o)}constructor(){this.theadTemplate$=new fi(1),this.hasFixLeft$=new fi(1),this.hasFixRight$=new fi(1),this.hostWidth$=new fi(1),this.columnCount$=new fi(1),this.showEmpty$=new fi(1),this.noResult$=new fi(1),this.listOfThWidthConfigPx$=new rt([]),this.tableWidthConfigPx$=new rt([]),this.manualWidthConfigPx$=xi([this.tableWidthConfigPx$,this.listOfThWidthConfigPx$]).pipe(Ie(([e,i])=>e.length?e:i)),this.listOfAutoWidthPx$=new fi(1),this.listOfListOfThWidthPx$=Pn(this.manualWidthConfigPx$,xi([this.listOfAutoWidthPx$,this.manualWidthConfigPx$]).pipe(Ie(([e,i])=>e.length===i.length?e.map((o,r)=>"0px"===o?i[r]||null:i[r]||o):i))),this.listOfMeasureColumn$=new fi(1),this.listOfListOfThWidth$=this.listOfAutoWidthPx$.pipe(Ie(e=>e.map(i=>parseInt(i,10)))),this.enableAutoMeasure$=new fi(1)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),N2=(()=>{class t{constructor(e){this.isInsideTable=!1,this.isInsideTable=!!e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Hc,8))};static#t=this.\u0275dir=de({type:t,selectors:[["th",9,"nz-disable-th",3,"mat-cell",""],["td",9,"nz-disable-td",3,"mat-cell",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-table-cell",o.isInsideTable)},standalone:!0})}return t})(),Mv=(()=>{class t{updatePageSize(e){this.pageSize$.next(e)}updateFrontPagination(e){this.frontPagination$.next(e)}updatePageIndex(e){this.pageIndex$.next(e)}updateListOfData(e){this.listOfData$.next(e)}updateListOfCustomColumn(e){this.listOfCustomColumn$.next(e)}constructor(){this.destroy$=new N,this.pageIndex$=new rt(1),this.frontPagination$=new rt(!0),this.pageSize$=new rt(10),this.listOfData$=new rt([]),this.listOfCustomColumn$=new rt([]),this.pageIndexDistinct$=this.pageIndex$.pipe(qi()),this.pageSizeDistinct$=this.pageSize$.pipe(qi()),this.listOfCalcOperator$=new rt([]),this.queryParams$=xi([this.pageIndexDistinct$,this.pageSizeDistinct$,this.listOfCalcOperator$]).pipe(g3(0),O5(1),Ie(([e,i,o])=>({pageIndex:e,pageSize:i,sort:o.filter(r=>r.sortFn).map(r=>({key:r.key,value:r.sortOrder})),filter:o.filter(r=>r.filterFn).map(r=>({key:r.key,value:r.filterValue}))}))),this.listOfDataAfterCalc$=xi([this.listOfData$,this.listOfCalcOperator$]).pipe(Ie(([e,i])=>{let o=[...e];const r=i.filter(a=>{const{filterValue:c,filterFn:l}=a;return!(null==c||Array.isArray(c)&&0===c.length)&&"function"==typeof l});for(const a of r){const{filterFn:c,filterValue:l}=a;o=o.filter(u=>c(l,u))}const s=i.filter(a=>null!==a.sortOrder&&"function"==typeof a.sortFn).sort((a,c)=>+c.sortPriority-+a.sortPriority);return i.length&&o.sort((a,c)=>{for(const l of s){const{sortFn:u,sortOrder:p}=l;if(u&&p){const _=u(a,c,p);if(0!==_)return"ascend"===p?_:-_}}return 0}),o})),this.listOfFrontEndCurrentPageData$=xi([this.pageIndexDistinct$,this.pageSizeDistinct$,this.listOfDataAfterCalc$]).pipe(I(this.destroy$),yt(e=>{const[i,o,r]=e;return i<=(Math.ceil(r.length/o)||1)}),Ie(([e,i,o])=>o.slice((e-1)*i,e*i))),this.listOfCurrentPageData$=this.frontPagination$.pipe(mn(e=>e?this.listOfFrontEndCurrentPageData$:this.listOfDataAfterCalc$)),this.total$=this.frontPagination$.pipe(mn(e=>e?this.listOfDataAfterCalc$:this.listOfData$),Ie(e=>e.length),qi())}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),oI=(()=>{class t{constructor(){this.nzChecked=!1,this.nzDisabled=!1,this.nzIndeterminate=!1,this.nzLabel=null,this.nzIndentSize=0,this.nzShowExpand=!1,this.nzShowCheckbox=!1,this.nzExpand=!1,this.nzExpandIcon=null,this.nzCheckedChange=new H,this.nzExpandChange=new H,this.isNzShowExpandChanged=!1,this.isNzShowCheckboxChanged=!1}onCheckedChange(e){this.nzChecked=e,this.nzCheckedChange.emit(e)}onExpandChange(e){this.nzExpand=e,this.nzExpandChange.emit(e)}ngOnChanges(e){const i=c=>c&&c.firstChange&&void 0!==c.currentValue,{nzExpand:o,nzChecked:r,nzShowExpand:s,nzShowCheckbox:a}=e;s&&(this.isNzShowExpandChanged=!0),a&&(this.isNzShowCheckboxChanged=!0),i(o)&&!this.isNzShowExpandChanged&&(this.nzShowExpand=!0),i(r)&&!this.isNzShowCheckboxChanged&&(this.nzShowCheckbox=!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["td","nzChecked",""],["td","nzDisabled",""],["td","nzIndeterminate",""],["td","nzIndentSize",""],["td","nzExpand",""],["td","nzShowExpand",""],["td","nzShowCheckbox",""]],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-table-cell-with-append",o.nzShowExpand||o.nzIndentSize>0)("ant-table-selection-column",o.nzShowCheckbox)},inputs:{nzChecked:"nzChecked",nzDisabled:"nzDisabled",nzIndeterminate:"nzIndeterminate",nzLabel:"nzLabel",nzIndentSize:"nzIndentSize",nzShowExpand:[2,"nzShowExpand","nzShowExpand",O],nzShowCheckbox:[2,"nzShowCheckbox","nzShowCheckbox",O],nzExpand:[2,"nzExpand","nzExpand",O],nzExpandIcon:"nzExpandIcon"},outputs:{nzCheckedChange:"nzCheckedChange",nzExpandChange:"nzExpandChange"},standalone:!0,features:[je,ke,me],attrs:E4e,ngContentSelectors:Lc,decls:3,vars:2,consts:[["nz-checkbox","",3,"nzDisabled","ngModel","nzIndeterminate"],[3,"indentSize"],[3,"ngTemplateOutlet"],["nz-row-expand-button","",3,"expand","spaceMode"],["nz-row-expand-button","",3,"expandChange","expand","spaceMode"],["nz-checkbox","",3,"ngModelChange","nzDisabled","ngModel","nzIndeterminate"]],template:function(i,o){1&i&&(Et(),w(0,P4e,3,2)(1,I4e,1,4,"label",0),bt(2)),2&i&&(he(o.nzShowExpand||o.nzIndentSize>0?0:-1),d(),he(o.nzShowCheckbox?1:-1))},dependencies:[P0e,O0e,Vn,I6,Rc,Ic,Qi,Xi],encapsulation:2,changeDetection:0})}return t})(),rI=(()=>{class t{getNextSortDirection(e,i){const o=e.indexOf(i);return o===e.length-1?e[0]:e[o+1]}setSortOrder(e){this.sortOrderChange$.next(e)}clearSortOrder(){null!==this.sortOrder&&this.setSortOrder(null)}onFilterValueChange(e){this.nzFilterChange.emit(e),this.nzFilterValue=e,this.updateCalcOperator()}updateCalcOperator(){this.calcOperatorChange$.next()}constructor(e,i,o,r){this.host=e,this.cdr=i,this.ngZone=o,this.destroy$=r,this.manualClickOrder$=new N,this.calcOperatorChange$=new N,this.nzFilterValue=null,this.sortOrder=null,this.sortDirections=["ascend","descend",null],this.sortOrderChange$=new N,this.isNzShowSortChanged=!1,this.isNzShowFilterChanged=!1,this.nzFilterMultiple=!0,this.nzSortOrder=null,this.nzSortPriority=!1,this.nzSortDirections=["ascend","descend",null],this.nzFilters=[],this.nzSortFn=null,this.nzFilterFn=null,this.nzShowSort=!1,this.nzShowFilter=!1,this.nzCustomFilter=!1,this.nzCheckedChange=new H,this.nzSortOrderChange=new H,this.nzFilterChange=new H}ngOnInit(){this.ngZone.runOutsideAngular(()=>nn(this.host.nativeElement,"click").pipe(yt(()=>this.nzShowSort),I(this.destroy$)).subscribe(()=>{const e=this.getNextSortDirection(this.sortDirections,this.sortOrder);this.ngZone.run(()=>{this.setSortOrder(e),this.manualClickOrder$.next(this)})})),this.sortOrderChange$.pipe(I(this.destroy$)).subscribe(e=>{this.sortOrder!==e&&(this.sortOrder=e,this.nzSortOrderChange.emit(e)),this.updateCalcOperator(),this.cdr.markForCheck()})}ngOnChanges(e){const{nzSortDirections:i,nzFilters:o,nzSortOrder:r,nzSortFn:s,nzFilterFn:a,nzSortPriority:c,nzFilterMultiple:l,nzShowSort:u,nzShowFilter:p}=e;i&&this.nzSortDirections&&this.nzSortDirections.length&&(this.sortDirections=this.nzSortDirections),r&&(this.sortOrder=this.nzSortOrder,this.setSortOrder(this.nzSortOrder)),u&&(this.isNzShowSortChanged=!0),p&&(this.isNzShowFilterChanged=!0);const _=b=>b&&b.firstChange&&void 0!==b.currentValue;if((_(r)||_(s))&&!this.isNzShowSortChanged&&(this.nzShowSort=!0),_(o)&&!this.isNzShowFilterChanged&&(this.nzShowFilter=!0),(o||l)&&this.nzShowFilter){const b=this.nzFilters.filter(y=>y.byDefault).map(y=>y.value);this.nzFilterValue=this.nzFilterMultiple?b:b[0]||null}(s||a||c||o)&&this.updateCalcOperator()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Ue),v(De),v(No))};static#t=this.\u0275cmp=q({type:t,selectors:[["th","nzColumnKey",""],["th","nzSortFn",""],["th","nzSortOrder",""],["th","nzFilters",""],["th","nzShowSort",""],["th","nzShowFilter",""],["th","nzCustomFilter",""]],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-table-column-has-sorters",o.nzShowSort)("ant-table-column-sort","descend"===o.sortOrder||"ascend"===o.sortOrder)},inputs:{nzColumnKey:"nzColumnKey",nzFilterMultiple:"nzFilterMultiple",nzSortOrder:"nzSortOrder",nzSortPriority:"nzSortPriority",nzSortDirections:"nzSortDirections",nzFilters:"nzFilters",nzSortFn:"nzSortFn",nzFilterFn:"nzFilterFn",nzShowSort:[2,"nzShowSort","nzShowSort",O],nzShowFilter:[2,"nzShowFilter","nzShowFilter",O],nzCustomFilter:[2,"nzCustomFilter","nzCustomFilter",O]},outputs:{nzCheckedChange:"nzCheckedChange",nzSortOrderChange:"nzSortOrderChange",nzFilterChange:"nzFilterChange"},standalone:!0,features:[et([No]),je,ke,me],attrs:N4e,ngContentSelectors:F4e,decls:10,vars:1,consts:[["notFilterTemplate",""],["extraTemplate",""],["sortTemplate",""],["contentTemplate",""],[3,"contentTemplate","extraTemplate","customFilter","filterMultiple","listOfFilter"],[3,"ngTemplateOutlet"],[3,"filterChange","contentTemplate","extraTemplate","customFilter","filterMultiple","listOfFilter"],[3,"sortOrder","sortDirections","contentTemplate"]],template:function(i,o){1&i&&(Et(V4e),w(0,R4e,1,5,"nz-table-filter",4)(1,L4e,1,1,"ng-container",5)(2,B4e,1,1,"ng-template",null,0,ot)(4,j4e,2,0,"ng-template",null,1,ot)(6,$4e,1,3,"ng-template",null,2,ot)(8,Y4e,1,0,"ng-template",null,3,ot)),2&i&&he(o.nzShowFilter||o.nzCustomFilter?0:1)},dependencies:[tI,Vn,iI],encapsulation:2,changeDetection:0})}return t})(),$1=(()=>{class t{constructor(e,i){this.renderer=e,this.elementRef=i,this.changes$=new N,this.nzWidth=null,this.colspan=null,this.colSpan=null,this.rowspan=null,this.rowSpan=null}ngOnChanges(e){const{nzWidth:i,colspan:o,rowspan:r,colSpan:s,rowSpan:a}=e;if(o||s){const c=this.colspan||this.colSpan;b3(c)?this.renderer.removeAttribute(this.elementRef.nativeElement,"colspan"):this.renderer.setAttribute(this.elementRef.nativeElement,"colspan",`${c}`)}if(r||a){const c=this.rowspan||this.rowSpan;b3(c)?this.renderer.removeAttribute(this.elementRef.nativeElement,"rowspan"):this.renderer.setAttribute(this.elementRef.nativeElement,"rowspan",`${c}`)}(i||o)&&this.changes$.next()}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["th"]],inputs:{nzWidth:"nzWidth",colspan:"colspan",colSpan:"colSpan",rowspan:"rowspan",rowSpan:"rowSpan"},standalone:!0,features:[ke]})}return t})(),sI=(()=>{class t{constructor(){this.nzSelections=[],this.nzChecked=!1,this.nzDisabled=!1,this.nzIndeterminate=!1,this.nzLabel=null,this.nzShowCheckbox=!1,this.nzShowRowSelection=!1,this.nzCheckedChange=new H,this.isNzShowExpandChanged=!1,this.isNzShowCheckboxChanged=!1}onCheckedChange(e){this.nzChecked=e,this.nzCheckedChange.emit(e)}ngOnChanges(e){const i=c=>c&&c.firstChange&&void 0!==c.currentValue,{nzChecked:o,nzSelections:r,nzShowExpand:s,nzShowCheckbox:a}=e;s&&(this.isNzShowExpandChanged=!0),a&&(this.isNzShowCheckboxChanged=!0),i(r)&&!this.isNzShowExpandChanged&&(this.nzShowRowSelection=!0),i(o)&&!this.isNzShowCheckboxChanged&&(this.nzShowCheckbox=!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["th","nzSelections",""],["th","nzChecked",""],["th","nzShowCheckbox",""],["th","nzShowRowSelection",""]],hostAttrs:[1,"ant-table-selection-column"],inputs:{nzSelections:"nzSelections",nzChecked:[2,"nzChecked","nzChecked",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzIndeterminate:"nzIndeterminate",nzLabel:"nzLabel",nzShowCheckbox:[2,"nzShowCheckbox","nzShowCheckbox",O],nzShowRowSelection:[2,"nzShowRowSelection","nzShowRowSelection",O]},outputs:{nzCheckedChange:"nzCheckedChange"},standalone:!0,features:[je,ke,me],attrs:U4e,ngContentSelectors:Lc,decls:2,vars:7,consts:[[3,"checkedChange","checked","disabled","indeterminate","label","listOfSelections","showCheckbox","showRowSelection"]],template:function(i,o){1&i&&(Et(),f(0,"nz-table-selection",0),D("checkedChange",function(s){return o.onCheckedChange(s)}),m(),bt(1)),2&i&&h("checked",o.nzChecked)("disabled",o.nzDisabled)("indeterminate",o.nzIndeterminate)("label",o.nzLabel)("listOfSelections",o.nzSelections)("showCheckbox",o.nzShowCheckbox)("showRowSelection",o.nzShowRowSelection)},dependencies:[nI],encapsulation:2,changeDetection:0})}return t})(),aI=(()=>{class t{constructor(){this.tableLayout="auto",this.theadTemplate=null,this.contentTemplate=null,this.listOfColWidth=[],this.scrollX=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["table","nz-table-content",""]],hostVars:8,hostBindings:function(i,o){2&i&&(Lt("table-layout",o.tableLayout)("width",o.scrollX)("min-width",o.scrollX?"100%":null),Q("ant-table-fixed",o.scrollX))},inputs:{tableLayout:"tableLayout",theadTemplate:"theadTemplate",contentTemplate:"contentTemplate",listOfColWidth:"listOfColWidth",scrollX:"scrollX"},standalone:!0,features:[me],attrs:W4e,ngContentSelectors:Lc,decls:5,vars:2,consts:[[3,"width","minWidth"],[1,"ant-table-thead"],[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&(Et(),ji(0,G4e,1,4,"col",0,fr),w(2,K4e,2,1,"thead",1)(3,J4e,0,0,"ng-template",2),bt(4)),2&i&&($i(o.listOfColWidth),d(2),he(o.theadTemplate?2:-1),d(),h("ngTemplateOutlet",o.contentTemplate))},dependencies:[Vn],encapsulation:2,changeDetection:0})}return t})(),N0e=(()=>{class t{constructor(e,i){this.nzTableStyleService=e,this.renderer=i,this.hostWidth$=new rt(null),this.enableAutoMeasure$=new rt(!1),this.destroy$=new N}ngOnInit(){if(this.nzTableStyleService){const{enableAutoMeasure$:e,hostWidth$:i}=this.nzTableStyleService;e.pipe(I(this.destroy$)).subscribe(this.enableAutoMeasure$),i.pipe(I(this.destroy$)).subscribe(this.hostWidth$)}}ngAfterViewInit(){this.nzTableStyleService.columnCount$.pipe(I(this.destroy$)).subscribe(e=>{this.renderer.setAttribute(this.tdElement.nativeElement,"colspan",`${e}`)})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Hc),v($t))};static#t=this.\u0275cmp=q({type:t,selectors:[["tr","nz-table-fixed-row",""],["tr","nzExpand",""]],viewQuery:function(i,o){if(1&i&&ft(QP,7),2&i){let r;Ae(r=Oe())&&(o.tdElement=r.first)}},standalone:!0,features:[me],attrs:Z4e,ngContentSelectors:XP,decls:5,vars:3,consts:[["tdElement",""],[1,"nz-disable-td","ant-table-cell"],[1,"ant-table-expanded-row-fixed",2,"position","sticky","left","0","overflow","hidden",3,"width"],[1,"ant-table-expanded-row-fixed",2,"position","sticky","left","0","overflow","hidden"]],template:function(i,o){1&i&&(Et(XP),f(0,"td",1,0),w(2,Q4e,3,4,"div",2),Fr(3,"async"),w(4,X4e,1,0),m()),2&i&&(d(2),he(Rr(3,1,o.enableAutoMeasure$)?2:4))},dependencies:[qm],encapsulation:2,changeDetection:0})}return t})(),V0e=(()=>{class t{constructor(){this.tableLayout="auto",this.listOfColWidth=[],this.theadTemplate=null,this.contentTemplate=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-inner-default"]],hostAttrs:[1,"ant-table-container"],inputs:{tableLayout:"tableLayout",listOfColWidth:"listOfColWidth",theadTemplate:"theadTemplate",contentTemplate:"contentTemplate"},standalone:!0,features:[me],decls:2,vars:4,consts:[[1,"ant-table-content"],["nz-table-content","",3,"contentTemplate","tableLayout","listOfColWidth","theadTemplate"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,"table",1),m()),2&i&&(d(),h("contentTemplate",o.contentTemplate)("tableLayout",o.tableLayout)("listOfColWidth",o.listOfColWidth)("theadTemplate",o.theadTemplate))},dependencies:[aI],encapsulation:2,changeDetection:0})}return t})(),F0e=(()=>{class t{constructor(e,i){this.nzResizeObserver=e,this.ngZone=i,this.listOfMeasureColumn=[],this.listOfAutoWidth=new H,this.destroy$=new N}ngAfterViewInit(){this.listOfTdElement.changes.pipe(gn(this.listOfTdElement)).pipe(mn(e=>xi(e.toArray().map(i=>this.nzResizeObserver.observe(i).pipe(Ie(([o])=>{const{width:r}=o.target.getBoundingClientRect();return Math.floor(r)}))))),g3(16),I(this.destroy$)).subscribe(e=>{this.ngZone instanceof De&&De.isInAngularZone()?this.listOfAutoWidth.next(e):this.ngZone.run(()=>this.listOfAutoWidth.next(e))})}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Sv),v(De))};static#t=this.\u0275cmp=q({type:t,selectors:[["tr","nz-table-measure-row",""]],viewQuery:function(i,o){if(1&i&&ft(QP,5),2&i){let r;Ae(r=Oe())&&(o.listOfTdElement=r)}},hostAttrs:[1,"ant-table-measure-now"],inputs:{listOfMeasureColumn:"listOfMeasureColumn"},outputs:{listOfAutoWidth:"listOfAutoWidth"},standalone:!0,features:[me],attrs:e0e,decls:2,vars:0,consts:[["tdElement",""],[1,"nz-disable-td",2,"padding","0","border","0","height","0"]],template:function(i,o){1&i&&ji(0,t0e,2,0,"td",1,fr),2&i&&$i(o.listOfMeasureColumn)},encapsulation:2,changeDetection:0})}return t})(),Bc=(()=>{class t{constructor(e){if(this.nzTableStyleService=e,this.isInsideTable=!1,this.showEmpty$=new rt(!1),this.noResult$=new rt(void 0),this.listOfMeasureColumn$=new rt([]),this.destroy$=new N,this.isInsideTable=!!this.nzTableStyleService,this.nzTableStyleService){const{showEmpty$:i,noResult$:o,listOfMeasureColumn$:r}=this.nzTableStyleService;o.pipe(I(this.destroy$)).subscribe(this.noResult$),r.pipe(I(this.destroy$)).subscribe(this.listOfMeasureColumn$),i.pipe(I(this.destroy$)).subscribe(this.showEmpty$)}}onListOfAutoWidthChange(e){this.nzTableStyleService.setListOfAutoWidth(e)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Hc,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["tbody"]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-table-tbody",o.isInsideTable)},standalone:!0,features:[me],ngContentSelectors:Lc,decls:5,vars:6,consts:[["nz-table-fixed-row","",1,"ant-table-placeholder"],["nz-table-measure-row","",3,"listOfMeasureColumn"],["nz-table-measure-row","",3,"listOfAutoWidth","listOfMeasureColumn"],["nzComponentName","table",3,"specificContent"]],template:function(i,o){if(1&i&&(Et(),w(0,i0e,1,1),Fr(1,"async"),bt(2),w(3,o0e,3,3,"tr",0),Fr(4,"async")),2&i){let r;he((r=Rr(1,2,o.listOfMeasureColumn$))?0:-1,r),d(3),he(Rr(4,4,o.showEmpty$)?3:-1)}},dependencies:[qm,F0e,N0e,Y7,$7],encapsulation:2,changeDetection:0})}return t})(),Dv=(()=>{class t{setScrollPositionClassName(e=!1){const{scrollWidth:i,scrollLeft:o,clientWidth:r}=this.tableBodyElement.nativeElement,s="ant-table-ping-left",a="ant-table-ping-right";i===r&&0!==i||e?(this.renderer.removeClass(this.tableMainElement,s),this.renderer.removeClass(this.tableMainElement,a)):0===o?(this.renderer.removeClass(this.tableMainElement,s),this.renderer.addClass(this.tableMainElement,a)):i===o+r?(this.renderer.removeClass(this.tableMainElement,a),this.renderer.addClass(this.tableMainElement,s)):(this.renderer.addClass(this.tableMainElement,s),this.renderer.addClass(this.tableMainElement,a))}constructor(e,i,o,r){this.renderer=e,this.ngZone=i,this.platform=o,this.resizeService=r,this.data=[],this.scrollX=null,this.scrollY=null,this.contentTemplate=null,this.widthConfig=[],this.listOfColWidth=[],this.theadTemplate=null,this.virtualTemplate=null,this.virtualItemSize=0,this.virtualMaxBufferPx=200,this.virtualMinBufferPx=100,this.virtualForTrackBy=s=>s,this.headerStyleMap={},this.bodyStyleMap={},this.verticalScrollBarWidth=0,this.noDataVirtualHeight="182px",this.data$=new N,this.scroll$=new N,this.destroy$=new N}ngOnChanges(e){const{scrollX:i,scrollY:o,data:r}=e;(i||o)&&(this.headerStyleMap={overflowX:"hidden",overflowY:this.scrollY&&0!==this.verticalScrollBarWidth?"scroll":"hidden"},this.bodyStyleMap={overflowY:this.scrollY?"scroll":"hidden",overflowX:this.scrollX?"auto":null,maxHeight:this.scrollY},this.ngZone.runOutsideAngular(()=>this.scroll$.next())),r&&this.ngZone.runOutsideAngular(()=>this.data$.next())}ngAfterViewInit(){this.platform.isBrowser&&this.ngZone.runOutsideAngular(()=>{const e=this.scroll$.pipe(gn(null),w2(0),mn(()=>nn(this.tableBodyElement.nativeElement,"scroll").pipe(gn(!0))),I(this.destroy$));Pn(e,this.resizeService.subscribe().pipe(I(this.destroy$)),this.data$.pipe(I(this.destroy$)),this.scroll$).pipe(gn(!0),w2(0),I(this.destroy$)).subscribe(()=>this.setScrollPositionClassName()),e.pipe(yt(()=>!!this.scrollY)).subscribe(()=>this.tableHeaderElement.nativeElement.scrollLeft=this.tableBodyElement.nativeElement.scrollLeft)})}ngOnDestroy(){this.setScrollPositionClassName(!0),this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v($t),v(De),v(qn),v(R5))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-inner-scroll"]],viewQuery:function(i,o){if(1&i&&(ft(r0e,5,Te),ft(s0e,5,Te),ft(E1,5,E1)),2&i){let r;Ae(r=Oe())&&(o.tableHeaderElement=r.first),Ae(r=Oe())&&(o.tableBodyElement=r.first),Ae(r=Oe())&&(o.cdkVirtualScrollViewport=r.first)}},hostAttrs:[1,"ant-table-container"],inputs:{data:"data",scrollX:"scrollX",scrollY:"scrollY",contentTemplate:"contentTemplate",widthConfig:"widthConfig",listOfColWidth:"listOfColWidth",theadTemplate:"theadTemplate",virtualTemplate:"virtualTemplate",virtualItemSize:"virtualItemSize",virtualMaxBufferPx:"virtualMaxBufferPx",virtualMinBufferPx:"virtualMinBufferPx",tableMainElement:"tableMainElement",virtualForTrackBy:"virtualForTrackBy",verticalScrollBarWidth:"verticalScrollBarWidth",noDataVirtualHeight:"noDataVirtualHeight"},standalone:!0,features:[ke,me],decls:2,vars:1,consts:[["tableHeaderElement",""],["tableBodyElement",""],[1,"ant-table-content",3,"ngStyle"],[1,"ant-table-header","nz-table-hide-scrollbar",3,"ngStyle"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","theadTemplate"],[1,"ant-table-body",3,"ngStyle"],[3,"itemSize","maxBufferPx","minBufferPx","height"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","contentTemplate"],[3,"itemSize","maxBufferPx","minBufferPx"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth"],[4,"cdkVirtualFor","cdkVirtualForOf","cdkVirtualForTrackBy"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","theadTemplate","contentTemplate"]],template:function(i,o){1&i&&w(0,h0e,5,5)(1,p0e,3,5,"div",2),2&i&&he(o.scrollY?0:1)},dependencies:[aI,ti,w7,$k,Gk,E1,Vn,Bc],encapsulation:2,changeDetection:0})}return t})(),R0e=(()=>{class t{constructor(e){this.templateRef=e}static ngTemplateContextGuard(e,i){return!0}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gt))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-virtual-scroll",""]],exportAs:["nzVirtualScroll"],standalone:!0})}return t})(),cI=(()=>{class t{constructor(){this.title=null,this.footer=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table-title-footer"]],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-table-title",null!==o.title)("ant-table-footer",null!==o.footer)},inputs:{title:"title",footer:"footer"},standalone:!0,features:[me],decls:2,vars:2,consts:[[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&w(0,f0e,2,1,"ng-container",0)(1,m0e,2,1,"ng-container",0),2&i&&(h("nzStringTemplateOutlet",o.title),d(),h("nzStringTemplateOutlet",o.footer))},dependencies:[Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),Y1=(()=>{class t{onPageSizeChange(e){this.nzTableDataService.updatePageSize(e)}onPageIndexChange(e){this.nzTableDataService.updatePageIndex(e)}constructor(e,i,o,r,s,a,c){this.elementRef=e,this.nzResizeObserver=i,this.nzConfigService=o,this.cdr=r,this.nzTableStyleService=s,this.nzTableDataService=a,this.directionality=c,this._nzModuleName="table",this.nzTableLayout="auto",this.nzShowTotal=null,this.nzItemRender=null,this.nzTitle=null,this.nzFooter=null,this.nzNoResult=void 0,this.nzPageSizeOptions=[10,20,30,40,50],this.nzVirtualItemSize=0,this.nzVirtualMaxBufferPx=200,this.nzVirtualMinBufferPx=100,this.nzVirtualForTrackBy=l=>l,this.nzLoadingDelay=0,this.nzPageIndex=1,this.nzPageSize=10,this.nzTotal=0,this.nzWidthConfig=[],this.nzData=[],this.nzCustomColumn=[],this.nzPaginationPosition="bottom",this.nzScroll={x:null,y:null},this.noDataVirtualHeight="182px",this.nzPaginationType="default",this.nzFrontPagination=!0,this.nzTemplateMode=!1,this.nzShowPagination=!0,this.nzLoading=!1,this.nzOuterBordered=!1,this.nzLoadingIndicator=null,this.nzBordered=!1,this.nzSize="default",this.nzShowSizeChanger=!1,this.nzHideOnSinglePage=!1,this.nzShowQuickJumper=!1,this.nzSimple=!1,this.nzPageSizeChange=new H,this.nzPageIndexChange=new H,this.nzQueryParams=new H,this.nzCurrentPageDataChange=new H,this.nzCustomColumnChange=new H,this.data=[],this.scrollX=null,this.scrollY=null,this.theadTemplate=null,this.listOfAutoColWidth=[],this.listOfManualColWidth=[],this.hasFixLeft=!1,this.hasFixRight=!1,this.showPagination=!0,this.destroy$=new N,this.templateMode$=new rt(!1),this.dir="ltr",this.verticalScrollBarWidth=0,this.nzConfigService.getConfigChangeEventForComponent("table").pipe(I(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){const{pageIndexDistinct$:e,pageSizeDistinct$:i,listOfCurrentPageData$:o,total$:r,queryParams$:s,listOfCustomColumn$:a}=this.nzTableDataService,{theadTemplate$:c,hasFixLeft$:l,hasFixRight$:u}=this.nzTableStyleService;this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(p=>{this.dir=p,this.cdr.detectChanges()}),s.pipe(I(this.destroy$)).subscribe(this.nzQueryParams),e.pipe(I(this.destroy$)).subscribe(p=>{p!==this.nzPageIndex&&(this.nzPageIndex=p,this.nzPageIndexChange.next(p))}),i.pipe(I(this.destroy$)).subscribe(p=>{p!==this.nzPageSize&&(this.nzPageSize=p,this.nzPageSizeChange.next(p))}),r.pipe(I(this.destroy$),yt(()=>this.nzFrontPagination)).subscribe(p=>{p!==this.nzTotal&&(this.nzTotal=p,this.cdr.markForCheck())}),o.pipe(I(this.destroy$)).subscribe(p=>{this.data=p,this.nzCurrentPageDataChange.next(p),this.cdr.markForCheck()}),a.pipe(I(this.destroy$)).subscribe(p=>{this.nzCustomColumn=p,this.nzCustomColumnChange.next(p),this.cdr.markForCheck()}),c.pipe(I(this.destroy$)).subscribe(p=>{this.theadTemplate=p,this.cdr.markForCheck()}),l.pipe(I(this.destroy$)).subscribe(p=>{this.hasFixLeft=p,this.cdr.markForCheck()}),u.pipe(I(this.destroy$)).subscribe(p=>{this.hasFixRight=p,this.cdr.markForCheck()}),xi([r,this.templateMode$]).pipe(Ie(([p,_])=>0===p&&!_),I(this.destroy$)).subscribe(p=>{this.nzTableStyleService.setShowEmpty(p)}),this.verticalScrollBarWidth=function pne(t="vertical",n="ant"){if(typeof document>"u"||typeof window>"u")return 0;const e="vertical"===t;if(e&&q5)return q5;if(!e&&K5)return K5;const i=document.createElement("div");Object.keys(_E).forEach(r=>{i.style[r]=_E[r]}),i.className=`${n}-hide-scrollbar scroll-div-append-to-body`,e?i.style.overflowY="scroll":i.style.overflowX="scroll",document.body.appendChild(i);let o=0;return e?(o=i.offsetWidth-i.clientWidth,q5=o):(o=i.offsetHeight-i.clientHeight,K5=o),document.body.removeChild(i),o}("vertical"),this.nzTableStyleService.listOfListOfThWidthPx$.pipe(I(this.destroy$)).subscribe(p=>{this.listOfAutoColWidth=p,this.cdr.markForCheck()}),this.nzTableStyleService.manualWidthConfigPx$.pipe(I(this.destroy$)).subscribe(p=>{this.listOfManualColWidth=p,this.cdr.markForCheck()})}ngOnChanges(e){const{nzScroll:i,nzPageIndex:o,nzPageSize:r,nzFrontPagination:s,nzData:a,nzCustomColumn:c,nzWidthConfig:l,nzNoResult:u,nzTemplateMode:p}=e;o&&this.nzTableDataService.updatePageIndex(this.nzPageIndex),r&&this.nzTableDataService.updatePageSize(this.nzPageSize),a&&(this.nzData=this.nzData||[],this.nzTableDataService.updateListOfData(this.nzData)),c&&(this.nzCustomColumn=this.nzCustomColumn||[],this.nzTableDataService.updateListOfCustomColumn(this.nzCustomColumn)),s&&this.nzTableDataService.updateFrontPagination(this.nzFrontPagination),i&&this.setScrollOnChanges(),l&&this.nzTableStyleService.setTableWidthConfig(this.nzWidthConfig),p&&this.templateMode$.next(this.nzTemplateMode),u&&this.nzTableStyleService.setNoResult(this.nzNoResult),this.updateShowPagination()}ngAfterViewInit(){this.nzResizeObserver.observe(this.elementRef).pipe(Ie(([e])=>{const{width:i}=e.target.getBoundingClientRect();return Math.floor(i-(this.scrollY?this.verticalScrollBarWidth:0))}),I(this.destroy$)).subscribe(this.nzTableStyleService.hostWidth$),this.nzTableInnerScrollComponent&&this.nzTableInnerScrollComponent.cdkVirtualScrollViewport&&(this.cdkVirtualScrollViewport=this.nzTableInnerScrollComponent.cdkVirtualScrollViewport)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setScrollOnChanges(){this.scrollX=this.nzScroll&&this.nzScroll.x||null,this.scrollY=this.nzScroll&&this.nzScroll.y||null,this.nzTableStyleService.setScroll(this.scrollX,this.scrollY)}updateShowPagination(){this.showPagination=this.nzHideOnSinglePage&&this.nzData.length>this.nzPageSize||this.nzData.length>0&&!this.nzHideOnSinglePage||!this.nzFrontPagination&&this.nzTotal>this.nzPageSize}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(Sv),v(si),v(Ue),v(Hc),v(Mv),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-table"]],contentQueries:function(i,o,r){if(1&i&&fn(r,R0e,5),2&i){let s;Ae(s=Oe())&&(o.nzVirtualScrollDirective=s.first)}},viewQuery:function(i,o){if(1&i&&ft(Dv,5),2&i){let r;Ae(r=Oe())&&(o.nzTableInnerScrollComponent=r.first)}},hostAttrs:[1,"ant-table-wrapper"],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-table-wrapper-rtl","rtl"===o.dir)("ant-table-custom-column",o.nzCustomColumn.length)},inputs:{nzTableLayout:"nzTableLayout",nzShowTotal:"nzShowTotal",nzItemRender:"nzItemRender",nzTitle:"nzTitle",nzFooter:"nzFooter",nzNoResult:"nzNoResult",nzPageSizeOptions:"nzPageSizeOptions",nzVirtualItemSize:"nzVirtualItemSize",nzVirtualMaxBufferPx:"nzVirtualMaxBufferPx",nzVirtualMinBufferPx:"nzVirtualMinBufferPx",nzVirtualForTrackBy:"nzVirtualForTrackBy",nzLoadingDelay:"nzLoadingDelay",nzPageIndex:"nzPageIndex",nzPageSize:"nzPageSize",nzTotal:"nzTotal",nzWidthConfig:"nzWidthConfig",nzData:"nzData",nzCustomColumn:"nzCustomColumn",nzPaginationPosition:"nzPaginationPosition",nzScroll:"nzScroll",noDataVirtualHeight:"noDataVirtualHeight",nzPaginationType:"nzPaginationType",nzFrontPagination:[2,"nzFrontPagination","nzFrontPagination",O],nzTemplateMode:[2,"nzTemplateMode","nzTemplateMode",O],nzShowPagination:[2,"nzShowPagination","nzShowPagination",O],nzLoading:[2,"nzLoading","nzLoading",O],nzOuterBordered:[2,"nzOuterBordered","nzOuterBordered",O],nzLoadingIndicator:"nzLoadingIndicator",nzBordered:[2,"nzBordered","nzBordered",O],nzSize:"nzSize",nzShowSizeChanger:[2,"nzShowSizeChanger","nzShowSizeChanger",O],nzHideOnSinglePage:[2,"nzHideOnSinglePage","nzHideOnSinglePage",O],nzShowQuickJumper:[2,"nzShowQuickJumper","nzShowQuickJumper",O],nzSimple:[2,"nzSimple","nzSimple",O]},outputs:{nzPageSizeChange:"nzPageSizeChange",nzPageIndexChange:"nzPageIndexChange",nzQueryParams:"nzQueryParams",nzCurrentPageDataChange:"nzCurrentPageDataChange",nzCustomColumnChange:"nzCustomColumnChange"},exportAs:["nzTable"],standalone:!0,features:[et([Hc,Mv]),je,ke,me],ngContentSelectors:Lc,decls:13,vars:26,consts:[["tableMainElement",""],["paginationTemplate",""],["contentTemplate",""],[3,"nzDelay","nzSpinning","nzIndicator"],[3,"ngTemplateOutlet"],[1,"ant-table"],[3,"title"],[3,"data","scrollX","scrollY","contentTemplate","listOfColWidth","theadTemplate","verticalScrollBarWidth","virtualTemplate","virtualItemSize","virtualMaxBufferPx","virtualMinBufferPx","tableMainElement","virtualForTrackBy","noDataVirtualHeight"],[3,"tableLayout","listOfColWidth","theadTemplate","contentTemplate"],[3,"footer"],[1,"ant-table-pagination","ant-table-pagination-right",3,"hidden","nzShowSizeChanger","nzPageSizeOptions","nzItemRender","nzShowQuickJumper","nzHideOnSinglePage","nzShowTotal","nzSize","nzPageSize","nzTotal","nzSimple","nzPageIndex"],[1,"ant-table-pagination","ant-table-pagination-right",3,"nzPageSizeChange","nzPageIndexChange","hidden","nzShowSizeChanger","nzPageSizeOptions","nzItemRender","nzShowQuickJumper","nzHideOnSinglePage","nzShowTotal","nzSize","nzPageSize","nzTotal","nzSimple","nzPageIndex"]],template:function(i,o){1&i&&(Et(),f(0,"nz-spin",3),w(1,v0e,1,1,null,4),f(2,"div",5,0),w(4,_0e,1,1,"nz-table-title-footer",6)(5,b0e,1,14,"nz-table-inner-scroll",7)(6,y0e,1,4,"nz-table-inner-default",8)(7,C0e,1,1,"nz-table-title-footer",9),m(),w(8,z0e,1,1,null,4),m(),w(9,T0e,1,1,"ng-template",null,1,ot)(11,M0e,1,0,"ng-template",null,2,ot)),2&i&&(h("nzDelay",o.nzLoadingDelay)("nzSpinning",o.nzLoading)("nzIndicator",o.nzLoadingIndicator),d(),he("both"===o.nzPaginationPosition||"top"===o.nzPaginationPosition?1:-1),d(),Q("ant-table-rtl","rtl"===o.dir)("ant-table-fixed-header",o.nzData.length&&o.scrollY)("ant-table-fixed-column",o.scrollX)("ant-table-has-fix-left",o.hasFixLeft)("ant-table-has-fix-right",o.hasFixRight)("ant-table-bordered",o.nzBordered)("nz-table-out-bordered",o.nzOuterBordered&&!o.nzBordered)("ant-table-middle","middle"===o.nzSize)("ant-table-small","small"===o.nzSize),d(2),he(o.nzTitle?4:-1),d(),he(o.scrollY||o.scrollX?5:6),d(2),he(o.nzFooter?7:-1),d(),he("both"===o.nzPaginationPosition||"bottom"===o.nzPaginationPosition?8:-1))},dependencies:[ZP,Vn,cI,Dv,V0e,a4e,KP],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzLoadingIndicator",void 0),kt([Nt()],t.prototype,"nzBordered",void 0),kt([Nt()],t.prototype,"nzSize",void 0),kt([Nt()],t.prototype,"nzShowSizeChanger",void 0),kt([Nt()],t.prototype,"nzHideOnSinglePage",void 0),kt([Nt()],t.prototype,"nzShowQuickJumper",void 0),kt([Nt()],t.prototype,"nzSimple",void 0),t})(),U1=(()=>{class t{constructor(e){this.nzTableStyleService=e,this.destroy$=new N,this.listOfFixedColumns$=new fi(1),this.listOfColumns$=new fi(1),this.listOfFixedColumnsChanges$=this.listOfFixedColumns$.pipe(mn(i=>Pn(this.listOfFixedColumns$,...i.map(o=>o.changes$)).pipe($n(()=>this.listOfFixedColumns$))),I(this.destroy$)),this.listOfFixedLeftColumnChanges$=this.listOfFixedColumnsChanges$.pipe(Ie(i=>i.filter(o=>!1!==o.nzLeft))),this.listOfFixedRightColumnChanges$=this.listOfFixedColumnsChanges$.pipe(Ie(i=>i.filter(o=>!1!==o.nzRight))),this.listOfColumnsChanges$=this.listOfColumns$.pipe(mn(i=>Pn(this.listOfColumns$,...i.map(o=>o.changes$)).pipe($n(()=>this.listOfColumns$))),I(this.destroy$)),this.isInsideTable=!1,this.isInsideTable=!!e}ngAfterContentInit(){this.nzTableStyleService&&(this.listOfCellFixedDirective.changes.pipe(gn(this.listOfCellFixedDirective),I(this.destroy$)).subscribe(this.listOfFixedColumns$),this.listOfNzThDirective.changes.pipe(gn(this.listOfNzThDirective),I(this.destroy$)).subscribe(this.listOfColumns$),this.listOfFixedLeftColumnChanges$.subscribe(e=>{e.forEach(i=>i.setIsLastLeft(i===e[e.length-1]))}),this.listOfFixedRightColumnChanges$.subscribe(e=>{e.forEach(i=>i.setIsFirstRight(i===e[0]))}),xi([this.nzTableStyleService.listOfListOfThWidth$,this.listOfFixedLeftColumnChanges$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{i.forEach((o,r)=>{if(o.isAutoLeft){const a=i.slice(0,r).reduce((l,u)=>l+(u.colspan||u.colSpan||1),0),c=e.slice(0,a).reduce((l,u)=>l+u,0);o.setAutoLeftWidth(`${c}px`)}})}),xi([this.nzTableStyleService.listOfListOfThWidth$,this.listOfFixedRightColumnChanges$]).pipe(I(this.destroy$)).subscribe(([e,i])=>{i.forEach((o,r)=>{const s=i[i.length-r-1];if(s.isAutoRight){const c=i.slice(i.length-r,i.length).reduce((u,p)=>u+(p.colspan||p.colSpan||1),0),l=e.slice(e.length-c,e.length).reduce((u,p)=>u+p,0);s.setAutoRightWidth(`${l}px`)}})}))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Hc,8))};static#t=this.\u0275dir=de({type:t,selectors:[["tr",3,"mat-row","",3,"mat-header-row","",3,"nz-table-measure-row","",3,"nzExpand","",3,"nz-table-fixed-row",""]],contentQueries:function(i,o,r){if(1&i&&(fn(r,$1,4),fn(r,I0e,4)),2&i){let s;Ae(s=Oe())&&(o.listOfNzThDirective=s),Ae(s=Oe())&&(o.listOfCellFixedDirective=s)}},hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-table-row",o.isInsideTable)},standalone:!0})}return t})(),V2=(()=>{class t{constructor(e,i,o,r){this.elementRef=e,this.renderer=i,this.nzTableStyleService=o,this.nzTableDataService=r,this.destroy$=new N,this.isInsideTable=!1,this.nzSortOrderChange=new H,this.isInsideTable=!!this.nzTableStyleService}ngOnInit(){this.nzTableStyleService&&this.nzTableStyleService.setTheadTemplate(this.templateRef)}ngAfterContentInit(){if(this.nzTableStyleService){const e=this.listOfNzTrDirective.changes.pipe(gn(this.listOfNzTrDirective),Ie(s=>s&&s.first)),i=e.pipe(mn(s=>s?s.listOfColumnsChanges$:bo),I(this.destroy$));i.subscribe(s=>this.nzTableStyleService.setListOfTh(s)),this.nzTableStyleService.enableAutoMeasure$.pipe(mn(s=>s?i:We([]))).pipe(I(this.destroy$)).subscribe(s=>this.nzTableStyleService.setListOfMeasureColumn(s));const o=e.pipe(mn(s=>s?s.listOfFixedLeftColumnChanges$:bo),I(this.destroy$)),r=e.pipe(mn(s=>s?s.listOfFixedRightColumnChanges$:bo),I(this.destroy$));o.subscribe(s=>{this.nzTableStyleService.setHasFixLeft(0!==s.length)}),r.subscribe(s=>{this.nzTableStyleService.setHasFixRight(0!==s.length)})}if(this.nzTableDataService){const e=this.listOfNzThAddOnComponent.changes.pipe(gn(this.listOfNzThAddOnComponent));e.pipe(mn(()=>Pn(...this.listOfNzThAddOnComponent.map(r=>r.manualClickOrder$))),I(this.destroy$)).subscribe(r=>{this.nzSortOrderChange.emit({key:r.nzColumnKey,value:r.sortOrder}),r.nzSortFn&&!1===r.nzSortPriority&&this.listOfNzThAddOnComponent.filter(a=>a!==r).forEach(a=>a.clearSortOrder())}),e.pipe(mn(r=>Pn(e,...r.map(s=>s.calcOperatorChange$)).pipe($n(()=>e))),Ie(r=>r.filter(s=>!!s.nzSortFn||!!s.nzFilterFn).map(s=>{const{nzSortFn:a,sortOrder:c,nzFilterFn:l,nzFilterValue:u,nzSortPriority:p,nzColumnKey:_}=s;return{key:_,sortFn:a,sortPriority:p,sortOrder:c,filterFn:l,filterValue:u}})),w2(0),I(this.destroy$)).subscribe(r=>{this.nzTableDataService.listOfCalcOperator$.next(r)})}}ngAfterViewInit(){this.nzTableStyleService&&this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v($t),v(Hc,8),v(Mv,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["thead",9,"ant-table-thead"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,U1,5),fn(r,rI,5)),2&i){let s;Ae(s=Oe())&&(o.listOfNzTrDirective=s),Ae(s=Oe())&&(o.listOfNzThAddOnComponent=s)}},viewQuery:function(i,o){if(1&i&&ft(D0e,7),2&i){let r;Ae(r=Oe())&&(o.templateRef=r.first)}},outputs:{nzSortOrderChange:"nzSortOrderChange"},standalone:!0,features:[me],ngContentSelectors:Lc,decls:3,vars:1,consts:[["contentTemplate",""],[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&(Et(),w(0,x0e,1,0,"ng-template",null,0,ot)(2,k0e,1,1,null,1)),2&i&&(d(2),he(o.isInsideTable?-1:2))},dependencies:[Vn],encapsulation:2,changeDetection:0})}return t})(),L0e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Y1,rI,oI,Bc,cI,Dv,iI,tI,nI,eI,sI]})}return t})();function H0e(t,n){if(1&t&&(f(0,"div"),C(1),m()),2&t){const e=g().$implicit;d(),x(e.desc)}}function B0e(t,n){if(1&t){const e=U();f(0,"input",14),Oi("ngModelChange",function(o){T(e);const r=g().$implicit;return Yi(r.desc,o)||(r.desc=o),M(o)}),m()}2&t&&Ai("ngModel",g().$implicit.desc)}function j0e(t,n){if(1&t){const e=U();f(0,"div")(1,"a",15),D("nzOnConfirm",function(){T(e);const o=g().index;return M(g().handleDelete(o))}),f(2,"a"),C(3),m()()()}if(2&t){const e=g(2);d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(2),x(e.$t("_del"))}}function $0e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",6)(2,"input",7),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.name,o)||(r.name=o),M(o)}),m()(),f(3,"td",8)(4,"input",9),D("change",function(o){const r=T(e).index;return M(g().onColorChange(o,r))}),m(),C(5),m(),f(6,"td",10),C(7),m(),f(8,"td",11),w(9,H0e,2,1,"div",12)(10,B0e,1,1,"input",13),m(),f(11,"td"),w(12,j0e,4,2,"div",12),m()()}if(2&t){const e=n.$implicit;d(2),Ai("ngModel",e.name),d(2),h("value",e.color),d(),Ce(" - ",e.color," "),d(2),x(e.createdAt),d(2),h("ngIf",e.isInner),d(),h("ngIf",!e.isInner),d(2),h("ngIf",!e.isInner)}}let Y0e=(()=>{class t{constructor(e,i){this.message=e,this.modal=i,this.$t=_e,this.tagList=h3,this.submitting=!1,this.incrementId=Math.max(...h3.map(o=>o.id))+100}ngOnInit(){}onColorChange(e,i){this.tagList[i].color=e.target.value}handleAdd(){this.incrementId+=1,this.tagList.unshift({id:this.incrementId,name:"",createdAt:"",color:"#f50000",desc:"",isInner:!1})}handleDelete(e){this.tagList.splice(e,1)}handleSubmit(){if(this.submitting)return;const e={};this.tagList.forEach(i=>{i.name?.trim?.()&&(e[i.name]={...i,name:void 0})}),Object.keys(e).length===this.tagList.length?this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{this.submitting=!0,vc({message:"Update Tag",content:JSON.stringify(this.tagList),path:"data/tag.json"}).then(()=>{this.message.success(_e("_saveSuccess"))}).finally(()=>{this.submitting=!1})}}):this.message.error(_e("_repeatAdd"))}trackByItem(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(za))};static#t=this.\u0275cmp=q({type:t,selectors:[["system-tag"]],decls:23,vars:13,consts:[["basicTable",""],["nz-button","",1,"add-btn",3,"click","nzLoading"],["nz-button","","nzType","primary",3,"click","nzLoading"],[1,"mb12"],[3,"nzData"],[4,"ngFor","ngForOf","ngForTrackBy"],["width","150px"],["nz-input","","maxlength","10",3,"ngModelChange","ngModel"],["width","160px"],["type","color",3,"change","value"],["width","220px"],["width","200px"],[4,"ngIf"],["nz-input","","maxlength","20",3,"ngModel","ngModelChange",4,"ngIf"],["nz-input","","maxlength","20",3,"ngModelChange","ngModel"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"]],template:function(i,o){if(1&i){const r=U();f(0,"button",1),D("click",function(){return T(r),M(o.handleAdd())}),C(1),m(),f(2,"button",2),D("click",function(){return T(r),M(o.handleSubmit())}),C(3),m(),f(4,"div",3)(5,"b"),C(6),m()(),f(7,"nz-table",4,0)(9,"thead")(10,"tr")(11,"th"),C(12),m(),f(13,"th"),C(14),m(),f(15,"th"),C(16),m(),f(17,"th"),C(18),m(),f(19,"th"),C(20),m()()(),f(21,"tbody"),w(22,$0e,13,7,"tr",5),m()()}2&i&&(h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_addRow"),"\n"),d(),h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_save"),"\n"),d(3),x(o.$t("_buildTip")),d(),h("nzData",o.tagList),d(5),x(o.$t("_tagName")),d(2),x(o.$t("_color")),d(2),x(o.$t("_createAt")),d(2),x(o.$t("_remark")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.tagList)("ngForTrackBy",o.trackByItem))},dependencies:[zn,Tt,Ws,nr,mi,tr,Cr,Qi,P2,B1,Y1,N2,$1,V2,Bc,U1,Xi],styles:[".add-btn[_ngcontent-%COMP%]{margin-bottom:20px;margin-right:20px}"]})}return t})();const U0e=["switchElement"];function W0e(t,n){1&t&&S(0,"span",8)}function G0e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzCheckedChildren)}}function q0e(t,n){if(1&t&&($e(0),w(1,G0e,2,1,"ng-container",9),Ye()),2&t){const e=g();d(),h("nzStringTemplateOutlet",e.nzCheckedChildren)}}function K0e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzUnCheckedChildren)}}function J0e(t,n){1&t&&w(0,K0e,2,1,"ng-container",9),2&t&&h("nzStringTemplateOutlet",g().nzUnCheckedChildren)}let N6=(()=>{class t{updateValue(e){this.isChecked!==e&&(this.isChecked=e,this.onChange(this.isChecked))}focus(){this.focusMonitor.focusVia(this.switchElement.nativeElement,"keyboard")}blur(){this.switchElement.nativeElement.blur()}constructor(e,i,o,r,s,a){this.nzConfigService=e,this.host=i,this.ngZone=o,this.cdr=r,this.focusMonitor=s,this.directionality=a,this._nzModuleName="switch",this.isChecked=!1,this.onChange=()=>{},this.onTouched=()=>{},this.nzLoading=!1,this.nzDisabled=!1,this.nzControl=!1,this.nzCheckedChildren=null,this.nzUnCheckedChildren=null,this.nzSize="default",this.nzId=null,this.dir="ltr",this.destroy$=new N,this.isNzDisableFirstChange=!0}ngOnInit(){this.directionality.change.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value,this.ngZone.runOutsideAngular(()=>{nn(this.host.nativeElement,"click").pipe(I(this.destroy$)).subscribe(e=>{e.preventDefault(),!(this.nzControl||this.nzDisabled||this.nzLoading)&&this.ngZone.run(()=>{this.updateValue(!this.isChecked),this.cdr.markForCheck()})}),nn(this.switchElement.nativeElement,"keydown").pipe(I(this.destroy$)).subscribe(e=>{if(this.nzControl||this.nzDisabled||this.nzLoading)return;const{keyCode:i}=e;37!==i&&39!==i&&32!==i&&13!==i||(e.preventDefault(),this.ngZone.run(()=>{37===i?this.updateValue(!1):39===i?this.updateValue(!0):(32===i||13===i)&&this.updateValue(!this.isChecked),this.cdr.markForCheck()}))})})}ngAfterViewInit(){this.focusMonitor.monitor(this.switchElement.nativeElement,!0).pipe(I(this.destroy$)).subscribe(e=>{e||Promise.resolve().then(()=>this.onTouched())})}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.switchElement.nativeElement),this.destroy$.next(),this.destroy$.complete()}writeValue(e){this.isChecked=e,this.cdr.markForCheck()}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.cdr.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Te),v(De),v(Ue),v(Ca),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-switch"]],viewQuery:function(i,o){if(1&i&&ft(U0e,7),2&i){let r;Ae(r=Oe())&&(o.switchElement=r.first)}},inputs:{nzLoading:[2,"nzLoading","nzLoading",O],nzDisabled:[2,"nzDisabled","nzDisabled",O],nzControl:[2,"nzControl","nzControl",O],nzCheckedChildren:"nzCheckedChildren",nzUnCheckedChildren:"nzUnCheckedChildren",nzSize:"nzSize",nzId:"nzId"},exportAs:["nzSwitch"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0}]),je,me],decls:9,vars:16,consts:[["switchElement",""],["uncheckTemplate",""],["nz-wave","","type","button",1,"ant-switch",3,"disabled","nzWaveExtraNode"],[1,"ant-switch-handle"],["nz-icon","","nzType","loading","class","ant-switch-loading-icon",4,"ngIf"],[1,"ant-switch-inner"],[4,"ngIf","ngIfElse"],[1,"ant-click-animating-node"],["nz-icon","","nzType","loading",1,"ant-switch-loading-icon"],[4,"nzStringTemplateOutlet"]],template:function(i,o){if(1&i&&(f(0,"button",2,0)(2,"span",3),w(3,W0e,1,0,"span",4),m(),f(4,"span",5),w(5,q0e,2,1,"ng-container",6)(6,J0e,1,1,"ng-template",null,1,ot),m(),S(8,"div",7),m()),2&i){const r=He(7);Q("ant-switch-checked",o.isChecked)("ant-switch-loading",o.nzLoading)("ant-switch-disabled",o.nzDisabled)("ant-switch-small","small"===o.nzSize)("ant-switch-rtl","rtl"===o.dir),h("disabled",o.nzDisabled)("nzWaveExtraNode",!0),Pt("id",o.nzId),d(3),h("ngIf",o.nzLoading),d(2),h("ngIf",o.isChecked)("ngIfElse",r)}},dependencies:[pA,tr,On,cn,Tt,Tn,Sn],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzSize",void 0),t})(),Q0e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[N6]})}return t})();function X0e(t,n){1&t&&S(0,"i",4),2&t&&h("title",g().$t("_upload"))}function e3e(t,n){1&t&&S(0,"i",5),2&t&&h("nzType","loading")}let dI=(()=>{class t{constructor(e){this.message=e,this.onChange=new H,this.$t=_e,this.uploading=!1,this.id=`f${Date.now()}`}onChangeFile(e){if(this.uploading)return;const{files:i}=e.target;if(i.length<=0)return;const o=i[0];if(!o.type.startsWith("image"))return this.message.error(_e("_notUpload"));this.onUpload(o).finally(()=>{e.target.value=""})}onUpload(e){const i=this;return new Promise((o,r)=>{const s=new FileReader;s.readAsDataURL(e),s.onerror=r,s.onload=function(){i.uploading=!0;const c=this.result.split(",")[1],l=`nav-${Date.now()}-${e.name}`;Zx({branch:"image",message:"create image",content:c,isEncode:!1,path:l}).then(()=>{const u={rawPath:l,cdn:Qx(l)};i.onChange.emit(u),i.message.success(_e("_uploadSuccess")),o(u)}).catch(r).finally(()=>{i.uploading=!1})}})}static#e=this.\u0275fac=function(i){return new(i||t)(v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-upload"]],outputs:{onChange:"onChange"},decls:4,vars:4,consts:[[1,"file",3,"id"],["nz-icon","","nzType","upload","nzTheme","outline","class","cursor-pointer",3,"title",4,"ngIf"],["nz-icon","",3,"nzType",4,"ngIf"],["type","file","accept","image/*",1,"file-upload",3,"change","name"],["nz-icon","","nzType","upload","nzTheme","outline",1,"cursor-pointer",3,"title"],["nz-icon","",3,"nzType"]],template:function(i,o){1&i&&(f(0,"label",0),w(1,X0e,1,1,"i",1)(2,e3e,1,1,"i",2),f(3,"input",3),D("change",function(s){return o.onChangeFile(s)}),m()()),2&i&&(h("id",o.id),d(),h("ngIf",!o.uploading),d(),h("ngIf",o.uploading),d(),h("name",o.id))},dependencies:[Tt,mi,cn],styles:[".file[_ngcontent-%COMP%] .file-upload[_ngcontent-%COMP%]{display:none}"]})}return t})();function t3e(t,n){if(1&t){const e=U();f(0,"input",20),Oi("ngModelChange",function(o){T(e);const r=g().$implicit;return Yi(r.url,o)||(r.url=o),M(o)}),m()}2&t&&Ai("ngModel",g().$implicit.url)}function n3e(t,n){1&t&&S(0,"img",21),2&t&&h("src",g().$implicit.icon,Ot)}function i3e(t,n){if(1&t){const e=U();f(0,"div")(1,"a",22),D("nzOnConfirm",function(){T(e);const o=g().index;return M(g().handleDelete(o))}),f(2,"a"),C(3),m()()()}if(2&t){const e=g(2);d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(2),x(e.$t("_del"))}}function o3e(t,n){if(1&t){const e=U();f(0,"tr",7)(1,"td",8)(2,"input",9),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.name,o)||(r.name=o),M(o)}),m()(),f(3,"td",10),w(4,t3e,1,1,"input",11),m(),f(5,"td",12),w(6,n3e,1,1,"img",13),f(7,"input",14),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.icon,o)||(r.icon=o),M(o)}),m(),f(8,"app-upload",15),D("onChange",function(o){const r=T(e).index;return M(g().onChangeUpload(o,r))}),m()(),f(9,"td",10)(10,"input",16),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.placeholder,o)||(r.placeholder=o),M(o)}),m()(),f(11,"td",17)(12,"nz-switch",18),Oi("ngModelChange",function(o){const r=T(e).$implicit;return Yi(r.blocked,o)||(r.blocked=o),M(o)}),m()(),f(13,"td"),w(14,i3e,4,2,"div",19),m()()}if(2&t){const e=n.$implicit;d(2),Ai("ngModel",e.name),d(2),h("ngIf",!e.isInner),d(2),h("ngIf",e.icon),d(),Ai("ngModel",e.icon),d(3),Ai("ngModel",e.placeholder),d(2),Ai("ngModel",e.blocked),d(2),h("ngIf",!e.isInner)}}let r3e=(()=>{class t{constructor(e,i){this.message=e,this.modal=i,this.$t=_e,this.searchList=x5,this.submitting=!1}handleAdd(){this.searchList.unshift({name:"",url:"",icon:"",placeholder:"",blocked:!1,isInner:!1})}handleDelete(e){this.searchList.splice(e,1)}handleSubmit(){this.submitting||this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{const e={};this.searchList.forEach(i=>{i.name.trim()&&(e[i.name]=null)}),Object.keys(e).length===this.searchList.length?(this.submitting=!0,vc({message:"Update Search",content:JSON.stringify(this.searchList,null,2),path:"data/search.json"}).then(()=>{this.message.success(_e("_saveSuccess"))}).finally(()=>{this.submitting=!1})):this.message.error(_e("_repeatAdd"))}})}onChangeUpload(e,i){this.searchList[i].icon=e.cdn}onDrop(e){xc(this.searchList,e.previousIndex,e.currentIndex)}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(za))};static#t=this.\u0275cmp=q({type:t,selectors:[["system-tag"]],decls:25,vars:13,consts:[["basicTable",""],["nz-button","",1,"add-btn",3,"click","nzLoading"],["nz-button","","nzType","primary",3,"click","nzLoading"],[1,"mb12"],[3,"nzData"],["cdkDropList","",3,"cdkDropListDropped"],["cdkDrag","",4,"ngFor","ngForOf"],["cdkDrag",""],["width","150px"],["nz-input","","maxlength","10",3,"ngModelChange","ngModel"],["width","220px"],["nz-input","",3,"ngModel","ngModelChange",4,"ngIf"],["width","260px",1,"nowrap"],["class","icon",3,"src",4,"ngIf"],["nz-input","","type","text",2,"width","180px",3,"ngModelChange","ngModel"],[3,"onChange"],["nz-input","","maxlength","50",3,"ngModelChange","ngModel"],["width","100px"],[3,"ngModelChange","ngModel"],[4,"ngIf"],["nz-input","",3,"ngModelChange","ngModel"],[1,"icon",3,"src"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"]],template:function(i,o){if(1&i){const r=U();f(0,"button",1),D("click",function(){return T(r),M(o.handleAdd())}),C(1),m(),f(2,"button",2),D("click",function(){return T(r),M(o.handleSubmit())}),C(3),m(),f(4,"div",3)(5,"b"),C(6),m()(),f(7,"nz-table",4,0)(9,"thead")(10,"tr")(11,"th"),C(12),m(),f(13,"th"),C(14),m(),f(15,"th"),C(16),m(),f(17,"th"),C(18),m(),f(19,"th"),C(20),m(),f(21,"th"),C(22),m()()(),f(23,"tbody",5),D("cdkDropListDropped",function(a){return T(r),M(o.onDrop(a))}),w(24,o3e,15,7,"tr",6),m()()}2&i&&(h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_addRow"),"\n"),d(),h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_save"),"\n"),d(3),x(o.$t("_buildTip")),d(),h("nzData",o.searchList),d(5),x(o.$t("_engineName")),d(2),x(o.$t("_engineUrl")),d(2),x(o.$t("_icon")),d(2),x(o.$t("_desc")),d(2),x(o.$t("_isDisable")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.searchList))},dependencies:[zn,Tt,Ws,nr,mi,tr,Cr,Qi,P2,B1,Y1,N2,$1,V2,Bc,U1,N6,o6,_2,Xi,dI],styles:[".add-btn[_ngcontent-%COMP%]{margin-bottom:20px;margin-right:20px}.icon[_ngcontent-%COMP%]{width:30px;height:30px;margin-right:10px;object-fit:cover} #file{vertical-align:middle;margin-left:10px} #file .anticon{font-size:20px}"]})}return t})();const xv=["*"],s3e=t=>[t],a3e=t=>({$implicit:t});function c3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.innerTip)}}function l3e(t,n){if(1&t&&(f(0,"div",2)(1,"div",4),w(2,c3e,2,1,"ng-container",5),m()()),2&t){const e=g();h("@helpMotion",void 0),d(),h("ngClass",mr(4,s3e,"ant-form-item-explain-"+e.status)),d(),h("nzStringTemplateOutlet",e.innerTip)("nzStringTemplateOutletContext",mr(6,a3e,e.validateControl))}}function d3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzExtra)}}function u3e(t,n){if(1&t&&(f(0,"div",3),w(1,d3e,2,1,"ng-container",6),m()),2&t){const e=g();d(),h("nzStringTemplateOutlet",e.nzExtra)}}function h3e(t,n){if(1&t&&($e(0),S(1,"span",2),Ye()),2&t){const e=n.$implicit,i=g(2);d(),h("nzType",e)("nzTheme",i.tooltipIcon.theme)}}function p3e(t,n){if(1&t&&(f(0,"span",0),w(1,h3e,2,2,"ng-container",1),m()),2&t){const e=g();h("nzTooltipTitle",e.nzTooltipTitle),d(),h("nzStringTemplateOutlet",e.tooltipIcon.type)}}let V6=(()=>{class t{setWithHelpViaTips(e){this.withHelpClass=e,this.cdr.markForCheck()}setStatus(e){this.status=e,this.cdr.markForCheck()}setHasFeedback(e){this.hasFeedback=e,this.cdr.markForCheck()}constructor(e){this.cdr=e,this.status="",this.hasFeedback=!1,this.withHelpClass=!1,this.destroy$=new N}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-form-item"]],hostAttrs:[1,"ant-form-item"],hostVars:12,hostBindings:function(i,o){2&i&&Q("ant-form-item-has-success","success"===o.status)("ant-form-item-has-warning","warning"===o.status)("ant-form-item-has-error","error"===o.status)("ant-form-item-is-validating","validating"===o.status)("ant-form-item-has-feedback",o.hasFeedback&&o.status)("ant-form-item-with-help",o.withHelpClass)},exportAs:["nzFormItem"],standalone:!0,features:[me],ngContentSelectors:xv,decls:1,vars:0,template:function(i,o){1&i&&(Et(),bt(0))},encapsulation:2,changeDetection:0})}return t})();const Ev={type:"question-circle",theme:"outline"};let F2=(()=>{class t{getInputObservable(e){return this.inputChanges$.pipe(yt(i=>e in i),Ie(i=>i[e]))}constructor(e,i){this.nzConfigService=e,this.directionality=i,this._nzModuleName="form",this.nzLayout="horizontal",this.nzNoColon=!1,this.nzAutoTips={},this.nzDisableAutoTips=!1,this.nzTooltipIcon=Ev,this.nzLabelAlign="right",this.nzLabelWrap=!1,this.dir="ltr",this.destroy$=new N,this.inputChanges$=new N,this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(o=>{this.dir=o})}ngOnChanges(e){this.inputChanges$.next(e)}ngOnDestroy(){this.inputChanges$.complete(),this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(wt,8))};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-form",""]],hostAttrs:[1,"ant-form"],hostVars:8,hostBindings:function(i,o){2&i&&Q("ant-form-horizontal","horizontal"===o.nzLayout)("ant-form-vertical","vertical"===o.nzLayout)("ant-form-inline","inline"===o.nzLayout)("ant-form-rtl","rtl"===o.dir)},inputs:{nzLayout:"nzLayout",nzNoColon:[2,"nzNoColon","nzNoColon",O],nzAutoTips:"nzAutoTips",nzDisableAutoTips:[2,"nzDisableAutoTips","nzDisableAutoTips",O],nzTooltipIcon:"nzTooltipIcon",nzLabelAlign:"nzLabelAlign",nzLabelWrap:[2,"nzLabelWrap","nzLabelWrap",O]},exportAs:["nzForm"],standalone:!0,features:[je,ke]})}return kt([Nt()],t.prototype,"nzNoColon",void 0),kt([Nt()],t.prototype,"nzAutoTips",void 0),kt([Nt()],t.prototype,"nzTooltipIcon",void 0),kt([Nt()],t.prototype,"nzLabelWrap",void 0),t})(),F6=(()=>{class t{get disableAutoTips(){return void 0!==this.nzDisableAutoTips?B5(this.nzDisableAutoTips):this.nzFormDirective?.nzDisableAutoTips}set nzHasFeedback(e){this._hasFeedback=e,this.nzFormStatusService.formStatusChanges.next({status:this.status,hasFeedback:this._hasFeedback}),this.nzFormItemComponent&&this.nzFormItemComponent.setHasFeedback(this._hasFeedback)}get nzHasFeedback(){return this._hasFeedback}set nzValidateStatus(e){e instanceof D2||e instanceof Xi?(this.validateControl=e,this.validateString=null,this.watchControl()):e instanceof L1?(this.validateControl=e.control,this.validateString=null,this.watchControl()):(this.validateString=e,this.validateControl=null,this.setStatus())}watchControl(){this.validateChanges.unsubscribe(),this.validateControl&&this.validateControl.statusChanges&&(this.validateChanges=this.validateControl.statusChanges.pipe(gn(null),I(this.destroyed$)).subscribe(()=>{this.disableAutoTips||this.updateAutoErrorTip(),this.setStatus(),this.cdr.markForCheck()}))}setStatus(){this.status=this.getControlStatus(this.validateString),this.innerTip=this.getInnerTip(this.status),this.nzFormStatusService.formStatusChanges.next({status:this.status,hasFeedback:this.nzHasFeedback}),this.nzFormItemComponent&&(this.nzFormItemComponent.setWithHelpViaTips(!!this.innerTip),this.nzFormItemComponent.setStatus(this.status))}getControlStatus(e){let i;return i="warning"===e||this.validateControlStatus("INVALID","warning")?"warning":"error"===e||this.validateControlStatus("INVALID")?"error":"validating"===e||"pending"===e||this.validateControlStatus("PENDING")?"validating":"success"===e||this.validateControlStatus("VALID")?"success":"",i}validateControlStatus(e,i){if(this.validateControl){const{dirty:o,touched:r,status:s}=this.validateControl;return(!!o||!!r)&&(i?this.validateControl.hasError(i):s===e)}return!1}getInnerTip(e){switch(e){case"error":return!this.disableAutoTips&&this.autoErrorTip||this.nzErrorTip||null;case"validating":return this.nzValidatingTip||null;case"success":return this.nzSuccessTip||null;case"warning":return this.nzWarningTip||null;default:return null}}updateAutoErrorTip(){if(this.validateControl){const e=this.validateControl.errors||{};let i="";for(const o in e)if(e.hasOwnProperty(o)&&(i=e[o]?.[this.localeId]??this.nzAutoTips?.[this.localeId]?.[o]??this.nzAutoTips.default?.[o]??this.nzFormDirective?.nzAutoTips?.[this.localeId]?.[o]??this.nzFormDirective?.nzAutoTips.default?.[o]),i)break;this.autoErrorTip=i}}subscribeAutoTips(e){e?.pipe(I(this.destroyed$)).subscribe(()=>{this.disableAutoTips||(this.updateAutoErrorTip(),this.setStatus(),this.cdr.markForCheck())})}constructor(e,i,o,r,s){this.nzFormItemComponent=e,this.cdr=i,this.nzFormDirective=r,this.nzFormStatusService=s,this._hasFeedback=!1,this.validateChanges=Ft.EMPTY,this.validateString=null,this.destroyed$=new N,this.status="",this.validateControl=null,this.innerTip=null,this.nzAutoTips={},this.subscribeAutoTips(o.localeChange.pipe(ii(a=>this.localeId=a.locale))),this.subscribeAutoTips(this.nzFormDirective?.getInputObservable("nzAutoTips")),this.subscribeAutoTips(this.nzFormDirective?.getInputObservable("nzDisableAutoTips").pipe(yt(()=>void 0===this.nzDisableAutoTips)))}ngOnChanges(e){const{nzDisableAutoTips:i,nzAutoTips:o,nzSuccessTip:r,nzWarningTip:s,nzErrorTip:a,nzValidatingTip:c}=e;i||o?(this.updateAutoErrorTip(),this.setStatus()):(r||s||a||c)&&this.setStatus()}ngOnInit(){this.setStatus()}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}ngAfterContentInit(){!this.validateControl&&!this.validateString&&(this.nzValidateStatus=this.defaultValidateControl instanceof dv?this.defaultValidateControl.control:this.defaultValidateControl)}static#e=this.\u0275fac=function(i){return new(i||t)(v(V6,9),v(Ue),v($s),v(F2,8),v(kc))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-form-control"]],contentQueries:function(i,o,r){if(1&i&&fn(r,vs,5),2&i){let s;Ae(s=Oe())&&(o.defaultValidateControl=s.first)}},hostAttrs:[1,"ant-form-item-control"],inputs:{nzSuccessTip:"nzSuccessTip",nzWarningTip:"nzWarningTip",nzErrorTip:"nzErrorTip",nzValidatingTip:"nzValidatingTip",nzExtra:"nzExtra",nzAutoTips:"nzAutoTips",nzDisableAutoTips:[2,"nzDisableAutoTips","nzDisableAutoTips",O],nzHasFeedback:[2,"nzHasFeedback","nzHasFeedback",O],nzValidateStatus:"nzValidateStatus"},exportAs:["nzFormControl"],standalone:!0,features:[et([kc]),je,ke,me],ngContentSelectors:xv,decls:5,vars:2,consts:[[1,"ant-form-item-control-input"],[1,"ant-form-item-control-input-content"],[1,"ant-form-item-explain","ant-form-item-explain-connected"],[1,"ant-form-item-extra"],["role","alert",3,"ngClass"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&(Et(),f(0,"div",0)(1,"div",1),bt(2),m()(),w(3,l3e,3,8,"div",2)(4,u3e,2,1,"div",3)),2&i&&(d(3),he(o.innerTip?3:-1),d(),he(o.nzExtra?4:-1))},dependencies:[Zo,Tn,Sn],encapsulation:2,data:{animation:[Une]},changeDetection:0})}return t})();function uI(t){return{...Ev,..."string"==typeof t?{type:t}:t}}let R6=(()=>{class t{set nzNoColon(e){this.noColon=e}get nzNoColon(){return"default"!==this.noColon?this.noColon:this.nzFormDirective?.nzNoColon}set nzTooltipIcon(e){this._tooltipIcon=uI(e)}get tooltipIcon(){return"default"!==this._tooltipIcon?this._tooltipIcon:uI(this.nzFormDirective?.nzTooltipIcon||Ev)}set nzLabelAlign(e){this.labelAlign=e}get nzLabelAlign(){return"default"!==this.labelAlign?this.labelAlign:this.nzFormDirective?.nzLabelAlign||"right"}set nzLabelWrap(e){this.labelWrap=e}get nzLabelWrap(){return"default"!==this.labelWrap?this.labelWrap:this.nzFormDirective?.nzLabelWrap}constructor(e,i){this.cdr=e,this.nzFormDirective=i,this.nzRequired=!1,this.noColon="default",this._tooltipIcon="default",this.labelAlign="default",this.labelWrap="default",this.destroy$=new N,this.nzFormDirective&&(this.nzFormDirective.getInputObservable("nzNoColon").pipe(yt(()=>"default"===this.noColon),I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.nzFormDirective.getInputObservable("nzTooltipIcon").pipe(yt(()=>"default"===this._tooltipIcon),I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.nzFormDirective.getInputObservable("nzLabelAlign").pipe(yt(()=>"default"===this.labelAlign),I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.nzFormDirective.getInputObservable("nzLabelWrap").pipe(yt(()=>"default"===this.labelWrap),I(this.destroy$)).subscribe(()=>this.cdr.markForCheck()))}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(F2,12))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-form-label"]],hostAttrs:[1,"ant-form-item-label"],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-form-item-label-left","left"===o.nzLabelAlign)("ant-form-item-label-wrap",o.nzLabelWrap)},inputs:{nzFor:"nzFor",nzRequired:[2,"nzRequired","nzRequired",O],nzNoColon:[2,"nzNoColon","nzNoColon",O],nzTooltipTitle:"nzTooltipTitle",nzTooltipIcon:"nzTooltipIcon",nzLabelAlign:"nzLabelAlign",nzLabelWrap:[2,"nzLabelWrap","nzLabelWrap",O]},exportAs:["nzFormLabel"],standalone:!0,features:[je,me],ngContentSelectors:xv,decls:3,vars:6,consts:[["nz-tooltip","",1,"ant-form-item-tooltip",3,"nzTooltipTitle"],[4,"nzStringTemplateOutlet"],["nz-icon","",3,"nzType","nzTheme"]],template:function(i,o){1&i&&(Et(),f(0,"label"),bt(1),w(2,p3e,2,2,"span",0),m()),2&i&&(Q("ant-form-item-no-colon",o.nzNoColon)("ant-form-item-required",o.nzRequired),Pt("for",o.nzFor),d(2),he(o.nzTooltipTitle?2:-1))},dependencies:[Tn,Sn,Ta,On,cn],encapsulation:2,changeDetection:0})}return t})(),m3e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[R6,F6,SE]})}return t})();function g3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzTitle)}}function v3e(t,n){if(1&t&&(f(0,"div",7),w(1,g3e,2,1,"ng-container",9),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzTitle)}}function _3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(2);d(),x(e.nzContent)}}function b3e(t,n){if(1&t&&(f(0,"div",2)(1,"div",3)(2,"div",4),S(3,"span",5),m(),f(4,"div",6)(5,"div"),w(6,v3e,2,1,"div",7),f(7,"div",8),w(8,_3e,2,1,"ng-container",9),m()()()()()),2&t){const e=g();Q("ant-popover-rtl","rtl"===e.dir),h("ngClass",e._classMap)("ngStyle",e.nzOverlayStyle)("@.disabled",!(null==e.noAnimation||!e.noAnimation.nzNoAnimation))("nzNoAnimation",null==e.noAnimation?null:e.noAnimation.nzNoAnimation)("@zoomBigMotion","active"),d(6),he(e.nzTitle?6:-1),d(2),h("nzStringTemplateOutlet",e.nzContent)}}let C3e=(()=>{class t extends L7{getProxyPropertyMap(){return{nzPopoverBackdrop:["nzBackdrop",()=>this.nzPopoverBackdrop],...super.getProxyPropertyMap()}}constructor(){super(hI),this._nzModuleName="popover",this.trigger="hover",this.placement="top",this.nzPopoverBackdrop=!1,this.visibleChange=new H}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-popover",""]],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-popover-open",o.visible)},inputs:{arrowPointAtCenter:[2,"nzPopoverArrowPointAtCenter","arrowPointAtCenter",O],title:[0,"nzPopoverTitle","title"],content:[0,"nzPopoverContent","content"],directiveTitle:[0,"nz-popover","directiveTitle"],trigger:[0,"nzPopoverTrigger","trigger"],placement:[0,"nzPopoverPlacement","placement"],origin:[0,"nzPopoverOrigin","origin"],visible:[0,"nzPopoverVisible","visible"],mouseEnterDelay:[0,"nzPopoverMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:[0,"nzPopoverMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:[0,"nzPopoverOverlayClassName","overlayClassName"],overlayStyle:[0,"nzPopoverOverlayStyle","overlayStyle"],nzPopoverBackdrop:"nzPopoverBackdrop"},outputs:{visibleChange:"nzPopoverVisibleChange"},exportAs:["nzPopover"],standalone:!0,features:[je,mt]})}return kt([Nt()],t.prototype,"nzPopoverBackdrop",void 0),t})(),hI=(()=>{class t extends u6{constructor(e,i,o){super(e,i,o),this._prefix="ant-popover"}get hasBackdrop(){return"click"===this.nzTrigger&&this.nzBackdrop}isEmpty(){return H7(this.nzTitle)&&H7(this.nzContent)}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(wt,8),v(zo,9))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-popover"]],exportAs:["nzPopoverComponent"],standalone:!0,features:[mt,me],decls:2,vars:6,consts:[["overlay","cdkConnectedOverlay"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"overlayOutsideClick","detach","positionChange","cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayOpen","cdkConnectedOverlayPush","nzArrowPointAtCenter"],[1,"ant-popover",3,"ngClass","ngStyle","nzNoAnimation"],[1,"ant-popover-content"],[1,"ant-popover-arrow"],[1,"ant-popover-arrow-content"],["role","tooltip",1,"ant-popover-inner"],[1,"ant-popover-title"],[1,"ant-popover-inner-content"],[4,"nzStringTemplateOutlet"]],template:function(i,o){if(1&i){const r=U();w(0,b3e,9,9,"ng-template",1,0,ot),D("overlayOutsideClick",function(a){return T(r),M(o.onClickOutside(a))})("detach",function(){return T(r),M(o.hide())})("positionChange",function(a){return T(r),M(o.onPositionChange(a))})}2&i&&h("cdkConnectedOverlayHasBackdrop",o.hasBackdrop)("cdkConnectedOverlayOrigin",o.origin)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayOpen",o._visible)("cdkConnectedOverlayPush",o.cdkConnectedOverlayPush)("nzArrowPointAtCenter",o.nzArrowPointAtCenter)},dependencies:[d2,Mc,u2,J3,Zo,ti,zo,Tn,Sn],encapsulation:2,data:{animation:[O3]},changeDetection:0})}return t})(),w3e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[hI]})}return t})();const z3e=["handle"],S3e=t=>({$implicit:t});function T3e(t,n){if(1&t&&S(0,"span",1),2&t){const e=n.$implicit;Q("ant-slider-mark-active",e.active),h("ngStyle",e.style)("innerHTML",e.label,Wn)}}function M3e(t,n){if(1&t&&S(0,"span",1),2&t){const e=n.$implicit;Q("ant-slider-dot-active",e.active),h("ngStyle",e.style)}}function D3e(t,n){if(1&t&&S(0,"nz-slider-step",4),2&t){const e=g();h("vertical",e.nzVertical)("min",e.nzMin)("max",e.nzMax)("lowerBound",e.bounds.lower)("upperBound",e.bounds.upper)("marksArray",e.marksArray)("included",e.nzIncluded)("reverse",e.nzReverse)}}function x3e(t,n){if(1&t){const e=U();f(0,"nz-slider-handle",5),D("focusin",function(){const o=T(e).index;return M(g().onHandleFocusIn(o))}),m()}if(2&t){const e=n.$implicit,i=g();h("vertical",i.nzVertical)("reverse",i.nzReverse)("offset",e.offset)("value",e.value)("active",e.active)("tooltipFormatter",i.nzTipFormatter)("tooltipVisible",i.nzTooltipVisible)("tooltipPlacement",i.nzTooltipPlacement)("dir",i.dir)}}function E3e(t,n){if(1&t&&S(0,"nz-slider-marks",4),2&t){const e=g();h("vertical",e.nzVertical)("min",e.nzMin)("max",e.nzMax)("lowerBound",e.bounds.lower)("upperBound",e.bounds.upper)("marksArray",e.marksArray)("included",e.nzIncluded)("reverse",e.nzReverse)}}let kv=(()=>{class t{constructor(){this.isDragging=!1}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})(),Av=(()=>{class t{constructor(e,i){this.sliderService=e,this.cdr=i,this.tooltipVisible="default",this.active=!1,this.dir="ltr",this.style={},this.enterHandle=()=>{this.sliderService.isDragging||(this.toggleTooltip(!0),this.updateTooltipPosition(),this.cdr.detectChanges())},this.leaveHandle=()=>{this.sliderService.isDragging||(this.toggleTooltip(!1),this.cdr.detectChanges())}}ngOnChanges(e){const{offset:i,value:o,active:r,tooltipVisible:s,reverse:a,dir:c}=e;(i||a||c)&&this.updateStyle(),o&&(this.updateTooltipTitle(),this.updateTooltipPosition()),r&&this.toggleTooltip(!!r.currentValue),"always"===s?.currentValue&&Promise.resolve().then(()=>this.toggleTooltip(!0,!0))}focus(){this.handleEl?.nativeElement.focus()}toggleTooltip(e,i=!1){!i&&("default"!==this.tooltipVisible||!this.tooltip)||(e?this.tooltip?.show():this.tooltip?.hide())}updateTooltipTitle(){this.tooltipTitle=this.tooltipFormatter?"function"==typeof this.tooltipFormatter?this.tooltipFormatter(this.value):this.tooltipFormatter:`${this.value}`}updateTooltipPosition(){this.tooltip&&Promise.resolve().then(()=>this.tooltip?.updatePosition())}updateStyle(){const i=this.reverse,o=this.offset,r=this.vertical?{[i?"top":"bottom"]:`${o}%`,[i?"bottom":"top"]:"auto",transform:i?null:"translateY(+50%)"}:{...this.getHorizontalStylePosition(),transform:`translateX(${i?"rtl"===this.dir?"-":"+":"rtl"===this.dir?"+":"-"}50%)`};this.style=r,this.cdr.markForCheck()}getHorizontalStylePosition(){let e=this.reverse?"auto":`${this.offset}%`,i=this.reverse?`${this.offset}%`:"auto";if("rtl"===this.dir){const o=e;e=i,i=o}return{left:e,right:i}}static#e=this.\u0275fac=function(i){return new(i||t)(v(kv),v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider-handle"]],viewQuery:function(i,o){if(1&i&&(ft(z3e,5),ft(Ta,5)),2&i){let r;Ae(r=Oe())&&(o.handleEl=r.first),Ae(r=Oe())&&(o.tooltip=r.first)}},hostBindings:function(i,o){1&i&&D("mouseenter",function(){return o.enterHandle()})("mouseleave",function(){return o.leaveHandle()})},inputs:{vertical:[2,"vertical","vertical",O],reverse:[2,"reverse","reverse",O],offset:[2,"offset","offset",y3],value:[2,"value","value",y3],tooltipVisible:"tooltipVisible",tooltipPlacement:"tooltipPlacement",tooltipFormatter:"tooltipFormatter",active:[2,"active","active",O],dir:"dir"},exportAs:["nzSliderHandle"],standalone:!0,features:[je,ke,me],decls:2,vars:7,consts:[["handle",""],["tabindex","0","nz-tooltip","",1,"ant-slider-handle",3,"ngStyle","nzTooltipTitle","nzTooltipTitleContext","nzTooltipTrigger","nzTooltipPlacement"]],template:function(i,o){1&i&&S(0,"div",1,0),2&i&&h("ngStyle",o.style)("nzTooltipTitle",null===o.tooltipFormatter||"never"===o.tooltipVisible?null:o.tooltipTitle)("nzTooltipTitleContext",mr(5,S3e,o.value))("nzTooltipTrigger",null)("nzTooltipPlacement",o.tooltipPlacement)},dependencies:[B7,Ta,ti],encapsulation:2,changeDetection:0})}return t})(),k3e=(()=>{class t{constructor(){this.lowerBound=null,this.upperBound=null,this.marksArray=[],this.vertical=!1,this.included=!1,this.marks=[]}ngOnChanges(e){const{marksArray:i,lowerBound:o,upperBound:r,reverse:s}=e;(i||s)&&this.buildMarks(),(i||o||r||s)&&this.togglePointActive()}trackById(e,i){return i.value}buildMarks(){const e=this.max-this.min;this.marks=this.marksArray.map(i=>{const{value:o,offset:r,config:s}=i,a=this.getMarkStyles(o,e,s);return{label:pI(s)?s.label:s,offset:r,style:a,value:o,config:s,active:!1}})}getMarkStyles(e,i,o){let r;const s=this.reverse?this.max+this.min-e:e;return r=this.vertical?{marginBottom:"-50%",bottom:(s-this.min)/i*100+"%"}:{transform:"translate3d(-50%, 0, 0)",left:(s-this.min)/i*100+"%"},pI(o)&&o.style&&(r={...r,...o.style}),r}togglePointActive(){this.marks&&null!==this.lowerBound&&null!==this.upperBound&&this.marks.forEach(e=>{const i=e.value;e.active=!this.included&&i===this.upperBound||this.included&&i<=this.upperBound&&i>=this.lowerBound})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider-marks"]],hostAttrs:[1,"ant-slider-mark"],inputs:{lowerBound:"lowerBound",upperBound:"upperBound",marksArray:"marksArray",min:[2,"min","min",Pi],max:[2,"max","max",Pi],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O],reverse:[2,"reverse","reverse",O]},exportAs:["nzSliderMarks"],standalone:!0,features:[je,ke,me],decls:1,vars:2,consts:[["class","ant-slider-mark-text",3,"ant-slider-mark-active","ngStyle","innerHTML",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ant-slider-mark-text",3,"ngStyle","innerHTML"]],template:function(i,o){1&i&&w(0,T3e,1,4,"span",0),2&i&&h("ngForOf",o.marks)("ngForTrackBy",o.trackById)},dependencies:[ti,zn],encapsulation:2,changeDetection:0})}return t})();function pI(t){return"string"!=typeof t}let A3e=(()=>{class t{constructor(){this.lowerBound=null,this.upperBound=null,this.marksArray=[],this.vertical=!1,this.included=!1,this.steps=[]}ngOnChanges(e){const{marksArray:i,lowerBound:o,upperBound:r,reverse:s}=e;(i||s)&&this.buildSteps(),(i||o||r||s)&&this.togglePointActive()}trackById(e,i){return i.value}buildSteps(){const e=this.vertical?"bottom":"left";this.steps=this.marksArray.map(i=>{const{value:o,config:r}=i;let s=i.offset;return this.reverse&&(s=(this.max-o)/(this.max-this.min)*100),{value:o,offset:s,config:r,active:!1,style:{[e]:`${s}%`,transform:this.vertical?"translateY(50%)":"translateX(-50%)"}}})}togglePointActive(){this.steps&&null!==this.lowerBound&&null!==this.upperBound&&this.steps.forEach(e=>{const i=e.value;e.active=!this.included&&i===this.upperBound||this.included&&i<=this.upperBound&&i>=this.lowerBound})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider-step"]],hostAttrs:[1,"ant-slider-step"],inputs:{lowerBound:"lowerBound",upperBound:"upperBound",marksArray:"marksArray",min:[2,"min","min",Pi],max:[2,"max","max",Pi],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O],reverse:[2,"reverse","reverse",O]},exportAs:["nzSliderStep"],standalone:!0,features:[je,ke,me],decls:1,vars:2,consts:[["class","ant-slider-dot",3,"ant-slider-dot-active","ngStyle",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ant-slider-dot",3,"ngStyle"]],template:function(i,o){1&i&&w(0,M3e,1,3,"span",0),2&i&&h("ngForOf",o.steps)("ngForTrackBy",o.trackById)},dependencies:[ti,zn],encapsulation:2,changeDetection:0})}return t})(),O3e=(()=>{class t{constructor(){this.offset=0,this.reverse=!1,this.dir="ltr",this.length=0,this.vertical=!1,this.included=!1,this.style={}}ngOnChanges(){const i=this.reverse,o=this.included?"visible":"hidden",r=this.offset,s=this.length,a=this.vertical?{[i?"top":"bottom"]:`${r}%`,[i?"bottom":"top"]:"auto",height:`${s}%`,visibility:o}:{...this.getHorizontalStylePosition(),width:`${s}%`,visibility:o};this.style=a}getHorizontalStylePosition(){let e=this.reverse?"auto":`${this.offset}%`,i=this.reverse?`${this.offset}%`:"auto";if("rtl"===this.dir){const o=e;e=i,i=o}return{left:e,right:i}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider-track"]],inputs:{offset:[2,"offset","offset",Pi],reverse:[2,"reverse","reverse",O],dir:"dir",length:[2,"length","length",Pi],vertical:[2,"vertical","vertical",O],included:[2,"included","included",O]},exportAs:["nzSliderTrack"],standalone:!0,features:[je,ke,me],decls:1,vars:1,consts:[[1,"ant-slider-track",3,"ngStyle"]],template:function(i,o){1&i&&S(0,"div",0),2&i&&h("ngStyle",o.style)},dependencies:[ti],encapsulation:2,changeDetection:0})}return t})(),fI=(()=>{class t{constructor(e,i,o,r,s){this.slider=e,this.sliderService=i,this.cdr=o,this.platform=r,this.directionality=s,this.nzDisabled=!1,this.nzDots=!1,this.nzIncluded=!0,this.nzRange=!1,this.nzVertical=!1,this.nzReverse=!1,this.nzMarks=null,this.nzMax=100,this.nzMin=0,this.nzStep=1,this.nzTooltipVisible="default",this.nzTooltipPlacement="top",this.nzOnAfterChange=new H,this.value=null,this.cacheSliderStart=null,this.cacheSliderLength=null,this.activeValueIndex=void 0,this.track={offset:null,length:null},this.handles=[],this.marksArray=null,this.bounds={lower:null,upper:null},this.dir="ltr",this.destroy$=new N,this.isNzDisableFirstChange=!0}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges(),this.updateTrackAndHandles(),this.onValueChange(this.getValue(!0))}),this.handles=mI(this.nzRange?2:1),this.marksArray=this.nzMarks?this.generateMarkItems(this.nzMarks):null,this.bindDraggingHandlers(),this.toggleDragDisabled(this.nzDisabled),null===this.getValue()&&this.setValue(this.formatValue(null))}ngOnChanges(e){const{nzDisabled:i,nzMarks:o,nzRange:r}=e;i&&!i.firstChange?this.toggleDragDisabled(i.currentValue):o&&!o.firstChange?this.marksArray=this.nzMarks?this.generateMarkItems(this.nzMarks):null:r&&!r.firstChange&&(this.handles=mI(r.currentValue?2:1),this.setValue(this.formatValue(null)))}ngOnDestroy(){this.unsubscribeDrag(),this.destroy$.next(!0),this.destroy$.complete()}writeValue(e){this.setValue(e,!0)}onValueChange(e){}onTouched(){}registerOnChange(e){this.onValueChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.nzDisabled=this.isNzDisableFirstChange&&this.nzDisabled||e,this.isNzDisableFirstChange=!1,this.toggleDragDisabled(this.nzDisabled),this.cdr.markForCheck()}onKeyDown(e){if(this.nzDisabled)return;const i=e.keyCode,r=37===i||40===i;if(39!==i&&38!==i&&!r)return;e.preventDefault();let s=(r?-this.nzStep:this.nzStep)*(this.nzReverse?-1:1);s="rtl"===this.dir?-1*s:s,this.setActiveValue(C3(this.nzRange?this.value[this.activeValueIndex]+s:this.value+s,this.nzMin,this.nzMax)),this.nzOnAfterChange.emit(this.getValue(!0))}onHandleFocusIn(e){this.activeValueIndex=e}setValue(e,i=!1){i?(this.value=this.formatValue(e),this.updateTrackAndHandles()):function V3e(t,n){return typeof t==typeof n&&(Ro(t)&&Ro(n)?dE(t,n):t===n)}(this.value,e)||(this.value=e,this.updateTrackAndHandles(),this.onValueChange(this.getValue(!0)))}getValue(e=!1){return e&&this.value&&Ro(this.value)?[...this.value].sort((i,o)=>i-o):this.value}getValueToOffset(e){let i=e;return typeof i>"u"&&(i=this.getValue(!0)),Ro(i)?i.map(o=>this.valueToOffset(o)):this.valueToOffset(i)}setActiveValueIndex(e){const i=this.getValue();if(Ro(i)){let r,o=null,s=-1;i.forEach((a,c)=>{r=Math.abs(e-a),(null===o||r{c.offset=Ro(i)?i[l]:i,c.value=Ro(e)?e[l]:e||0}),[this.bounds.lower,this.bounds.upper]=s,[this.track.offset,this.track.length]=a,this.cdr.markForCheck()}onDragStart(e){this.toggleDragMoving(!0),this.cacheSliderProperty(),this.setActiveValueIndex(this.getLogicalValue(e)),this.setActiveValue(this.getLogicalValue(e)),this.showHandleTooltip(this.nzRange?this.activeValueIndex:0)}onDragMove(e){this.setActiveValue(this.getLogicalValue(e)),this.cdr.markForCheck()}getLogicalValue(e){return this.nzReverse?this.nzVertical||"rtl"!==this.dir?this.nzMax-e+this.nzMin:e:this.nzVertical||"rtl"!==this.dir?e:this.nzMax-e+this.nzMin}onDragEnd(){this.nzOnAfterChange.emit(this.getValue(!0)),this.toggleDragMoving(!1),this.cacheSliderProperty(!0),this.hideAllHandleTooltip(),this.cdr.markForCheck()}bindDraggingHandlers(){if(!this.platform.isBrowser)return;const e=a=>c=>a.reduce((l,u)=>l[u]||l,c),i=this.slider.nativeElement,o=this.nzVertical?"pageY":"pageX",r={start:"mousedown",move:"mousemove",end:"mouseup",pluckKey:[o]},s={start:"touchstart",move:"touchmove",end:"touchend",pluckKey:["touches","0",o],filter:a=>a instanceof TouchEvent};[r,s].forEach(a=>{const{start:c,move:l,end:u,pluckKey:p,filter:_=(()=>!0)}=a;a.startPlucked$=nn(i,c).pipe(yt(_),ii(uE),Ie(e(p)),Ie(b=>this.findClosestValue(b))),a.end$=nn(document,u),a.moveResolved$=nn(document,l).pipe(yt(_),ii(uE),Ie(e(p)),qi(),Ie(b=>this.findClosestValue(b)),qi(),I(a.end$))}),this.dragStart$=Pn(r.startPlucked$,s.startPlucked$),this.dragMove$=Pn(r.moveResolved$,s.moveResolved$),this.dragEnd$=Pn(r.end$,s.end$)}subscribeDrag(e=["start","move","end"]){-1!==e.indexOf("start")&&this.dragStart$&&!this.dragStart_&&(this.dragStart_=this.dragStart$.subscribe(this.onDragStart.bind(this))),-1!==e.indexOf("move")&&this.dragMove$&&!this.dragMove_&&(this.dragMove_=this.dragMove$.subscribe(this.onDragMove.bind(this))),-1!==e.indexOf("end")&&this.dragEnd$&&!this.dragEnd_&&(this.dragEnd_=this.dragEnd$.subscribe(this.onDragEnd.bind(this)))}unsubscribeDrag(e=["start","move","end"]){-1!==e.indexOf("start")&&this.dragStart_&&(this.dragStart_.unsubscribe(),this.dragStart_=null),-1!==e.indexOf("move")&&this.dragMove_&&(this.dragMove_.unsubscribe(),this.dragMove_=null),-1!==e.indexOf("end")&&this.dragEnd_&&(this.dragEnd_.unsubscribe(),this.dragEnd_=null)}toggleDragMoving(e){const i=["move","end"];e?(this.sliderService.isDragging=!0,this.subscribeDrag(i)):(this.sliderService.isDragging=!1,this.unsubscribeDrag(i))}toggleDragDisabled(e){e?this.unsubscribeDrag():this.subscribeDrag(["start"])}findClosestValue(e){const r=C3((e-this.getSliderStartPosition())/this.getSliderLength(),0,1),s=(this.nzMax-this.nzMin)*(this.nzVertical?1-r:r)+this.nzMin,a=null===this.nzMarks?[]:Object.keys(this.nzMarks).map(parseFloat).sort((u,p)=>u-p);if(0!==this.nzStep&&!this.nzDots){const u=Math.round(s/this.nzStep)*this.nzStep;a.push(u)}const c=a.map(u=>Math.abs(s-u)),l=a[c.indexOf(Math.min(...c))];return 0===this.nzStep?l:parseFloat(l.toFixed(function rne(t){const n=t.toString(),e=n.indexOf(".");return e>=0?n.length-e-1:0}(this.nzStep)))}valueToOffset(e){return function one(t,n,e){return(e-t)/(n-t)*100}(this.nzMin,this.nzMax,e)}getSliderStartPosition(){if(null!==this.cacheSliderStart)return this.cacheSliderStart;const e=hE(this.slider.nativeElement);return this.nzVertical?e.top:e.left}getSliderLength(){if(null!==this.cacheSliderLength)return this.cacheSliderLength;const e=this.slider.nativeElement;return this.nzVertical?e.clientHeight:e.clientWidth}cacheSliderProperty(e=!1){this.cacheSliderStart=e?null:this.getSliderStartPosition(),this.cacheSliderLength=e?null:this.getSliderLength()}formatValue(e){return b3(e)?this.nzRange?[this.nzMin,this.nzMax]:this.nzMin:function I3e(t,n){return!(!Ro(t)&&isNaN(t)||Ro(t)&&t.some(e=>isNaN(e)))&&function N3e(t,n=!1){if(Ro(t)!==n)throw function P3e(){return new Error('The "nzRange" can\'t match the "ngModel"\'s type, please check these properties: "nzRange", "ngModel", "nzDefaultValue".')}();return!0}(t,n)}(e,this.nzRange)?Ro(e)?e.map(i=>C3(i,this.nzMin,this.nzMax)):C3(e,this.nzMin,this.nzMax):this.nzDefaultValue?this.nzDefaultValue:this.nzRange?[this.nzMin,this.nzMax]:this.nzMin}showHandleTooltip(e=0){this.handles.forEach((i,o)=>{i.active=o===e})}hideAllHandleTooltip(){this.handles.forEach(e=>e.active=!1)}generateMarkItems(e){const i=[];for(const o in e)if(e.hasOwnProperty(o)){const r=e[o],s="number"==typeof o?o:parseFloat(o);s>=this.nzMin&&s<=this.nzMax&&i.push({value:s,offset:this.valueToOffset(s),config:r})}return i.length?i:null}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(kv),v(Ue),v(qn),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-slider"]],viewQuery:function(i,o){if(1&i&&ft(Av,5),2&i){let r;Ae(r=Oe())&&(o.handlerComponents=r)}},hostAttrs:[1,"ant-slider"],hostVars:8,hostBindings:function(i,o){1&i&&D("keydown",function(s){return o.onKeyDown(s)}),2&i&&Q("ant-slider-rtl","rtl"===o.dir)("ant-slider-disabled",o.nzDisabled)("ant-slider-vertical",o.nzVertical)("ant-slider-with-marks",o.marksArray)},inputs:{nzDisabled:[2,"nzDisabled","nzDisabled",O],nzDots:[2,"nzDots","nzDots",O],nzIncluded:[2,"nzIncluded","nzIncluded",O],nzRange:[2,"nzRange","nzRange",O],nzVertical:[2,"nzVertical","nzVertical",O],nzReverse:[2,"nzReverse","nzReverse",O],nzDefaultValue:"nzDefaultValue",nzMarks:"nzMarks",nzMax:[2,"nzMax","nzMax",Pi],nzMin:[2,"nzMin","nzMin",Pi],nzStep:[2,"nzStep","nzStep",y3],nzTooltipVisible:"nzTooltipVisible",nzTooltipPlacement:"nzTooltipPlacement",nzTipFormatter:"nzTipFormatter"},outputs:{nzOnAfterChange:"nzOnAfterChange"},exportAs:["nzSlider"],standalone:!0,features:[et([{provide:Vi,useExisting:Wt(()=>t),multi:!0},kv]),je,ke,me],decls:5,vars:9,consts:[[1,"ant-slider-rail"],[3,"vertical","included","offset","length","reverse","dir"],[3,"vertical","min","max","lowerBound","upperBound","marksArray","included","reverse",4,"ngIf"],[3,"vertical","reverse","offset","value","active","tooltipFormatter","tooltipVisible","tooltipPlacement","dir","focusin",4,"ngFor","ngForOf"],[3,"vertical","min","max","lowerBound","upperBound","marksArray","included","reverse"],[3,"focusin","vertical","reverse","offset","value","active","tooltipFormatter","tooltipVisible","tooltipPlacement","dir"]],template:function(i,o){1&i&&(S(0,"div",0)(1,"nz-slider-track",1),w(2,D3e,1,8,"nz-slider-step",2)(3,x3e,1,9,"nz-slider-handle",3)(4,E3e,1,8,"nz-slider-marks",2)),2&i&&(d(),h("vertical",o.nzVertical)("included",o.nzIncluded)("offset",o.track.offset)("length",o.track.length)("reverse",o.nzReverse)("dir",o.dir),d(),h("ngIf",o.marksArray),d(),h("ngForOf",o.handles),d(),h("ngIf",o.marksArray))},dependencies:[O3e,A3e,Av,zn,k3e,Tt],encapsulation:2,changeDetection:0})}return t})();function Ro(t){return t instanceof Array&&2===t.length}function mI(t){return Array(t).fill(0).map(()=>({offset:null,value:null,active:!1}))}let F3e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[fI,Av]})}return t})();const L6=()=>({minRows:3,maxRows:5});function R3e(t,n){1&t&&S(0,"img",90)}function L3e(t,n){1&t&&S(0,"img",91)}function H3e(t,n){1&t&&S(0,"img",92)}function B3e(t,n){1&t&&S(0,"img",93)}function j3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",94),S(2,"img",95),f(3,"input",96),D("change",function(o){const r=T(e).index;return M(g().onChangeLightBannerUrl(o,r))}),m(),f(4,"app-upload",10),D("onChange",function(o){const r=T(e).index;return M(g().onLightBannerChange(o,r))}),m()(),f(5,"td")(6,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeLightJumpUrl(o,r))}),m()(),f(7,"td")(8,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDeleteLightBanner(o))}),f(9,"a"),C(10),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("src",e.src,Ot),d(),h("value",e.src),d(3),h("value",e.url),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}function $3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",94),S(2,"img",95),f(3,"input",96),D("change",function(o){const r=T(e).index;return M(g().onChangeSuperBannerUrl(o,r))}),m(),f(4,"app-upload",10),D("onChange",function(o){const r=T(e).index;return M(g().onSuperBannerChange(o,r))}),m()(),f(5,"td")(6,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeSuperJumpUrl(o,r))}),m()(),f(7,"td")(8,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDeleteSuperBanner(o))}),f(9,"a"),C(10),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("src",e.src,Ot),d(),h("value",e.src),d(3),h("value",e.url),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}function Y3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",94),S(2,"img",95),f(3,"input",96),D("change",function(o){const r=T(e).index;return M(g().onChangeSimBannerUrl(o,r))}),m(),f(4,"app-upload",10),D("onChange",function(o){const r=T(e).index;return M(g().onSimBannerChange(o,r))}),m()(),f(5,"td")(6,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeSimJumpUrl(o,r))}),m()(),f(7,"td")(8,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDeleteSimBanner(o))}),f(9,"a"),C(10),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("src",e.src,Ot),d(),h("value",e.src),d(3),h("value",e.url),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}function U3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",94),S(2,"img",95),f(3,"input",96),D("change",function(o){const r=T(e).index;return M(g().onChangeSideBannerUrl(o,r))}),m(),f(4,"app-upload",10),D("onChange",function(o){const r=T(e).index;return M(g().onSideBannerChange(o,r))}),m()(),f(5,"td")(6,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeSideJumpUrl(o,r))}),m()(),f(7,"td")(8,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDeleteSideBanner(o))}),f(9,"a"),C(10),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("src",e.src,Ot),d(),h("value",e.src),d(3),h("value",e.url),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}function W3e(t,n){if(1&t){const e=U();f(0,"tr")(1,"td",99)(2,"input",100),D("change",function(o){const r=T(e).index;return M(g().onChangeMirrorUrl(o,r))}),m()(),f(3,"td",101)(4,"input",97),D("change",function(o){const r=T(e).index;return M(g().onChangeMirrorName(o,r))}),m()(),f(5,"td")(6,"a",98),D("nzOnConfirm",function(){const o=T(e).index;return M(g().onDelMirror(o))}),f(7,"a"),C(8),m()()()()}if(2&t){const e=n.$implicit,i=g();d(2),h("value",e.url),d(2),h("value",e.name),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),Ce(" ",i.$t("_del")," ")}}let G3e=(()=>{class t{constructor(e,i,o){this.fb=e,this.message=i,this.modal=o,this.$t=_e,this.submitting=!1,this.settings=An,this.validateForm=this.fb.group({...An})}ngOnInit(){}onLogoChange(e){this.settings.favicon=e.cdn||e.target?.value||""}onSimBannerChange(e,i){this.settings.simThemeImages[i].src=e.cdn}onChangeSimBannerUrl(e,i){const o=e.target.value.trim();this.settings.simThemeImages[i].src=o}onChangeSimJumpUrl(e,i){const o=e.target.value.trim();this.settings.simThemeImages[i].url=o}onDeleteSimBanner(e){this.settings.simThemeImages.splice(e,1)}onAddSimBanner(){this.settings.simThemeImages.push({src:"",url:""})}onSuperBannerChange(e,i){this.settings.superImages[i].src=e.cdn}onChangeSuperBannerUrl(e,i){const o=e.target.value.trim();this.settings.superImages[i].src=o}onChangeSuperJumpUrl(e,i){const o=e.target.value.trim();this.settings.superImages[i].url=o}onDeleteSuperBanner(e){this.settings.superImages.splice(e,1)}onAddSuperBanner(){this.settings.superImages.push({src:"",url:""})}onLightBannerChange(e,i){this.settings.lightImages[i].src=e.cdn}onChangeLightBannerUrl(e,i){const o=e.target.value.trim();this.settings.lightImages[i].src=o}onChangeLightJumpUrl(e,i){const o=e.target.value.trim();this.settings.lightImages[i].url=o}onDeleteLightBanner(e){this.settings.lightImages.splice(e,1)}onAddLightBanner(){this.settings.lightImages.push({src:"",url:""})}onSideBannerChange(e,i){this.settings.sideThemeImages[i].src=e.cdn}onChangeSideBannerUrl(e,i){const o=e.target.value.trim();this.settings.sideThemeImages[i].src=o}onChangeSideJumpUrl(e,i){const o=e.target.value.trim();this.settings.sideThemeImages[i].src=o}onDeleteSideBanner(e){this.settings.sideThemeImages.splice(e,1)}onAddSideBanner(){this.settings.sideThemeImages.push({src:"",url:""})}onMirrorBannerChange(e,i){this.settings.sideThemeImages[i].src=e.cdn}onAddMirror(){this.settings.mirrorList.push({url:"",icon:"",name:""})}onDelMirror(e){this.settings.mirrorList.splice(e,1)}onChangeMirrorUrl(e,i){const o=e.target.value.trim();this.settings.mirrorList[i].url=o}onChangeMirrorName(e,i){const o=e.target.value.trim();this.settings.mirrorList[i].name=o}onShortcutImgChange(e){let i=e?.target?.value?.trim()||e.cdn;i||(i=""),this.settings.shortcutThemeImages[0].src=i}handleSubmit(){this.submitting||this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{function e(o){return o.src}const i={...this.validateForm.value,favicon:this.settings.favicon,simThemeImages:this.settings.simThemeImages.filter(e),shortcutThemeImages:this.settings.shortcutThemeImages.filter(e),sideThemeImages:this.settings.sideThemeImages.filter(e),superImages:this.settings.superImages.filter(e),lightImages:this.settings.lightImages.filter(e),mirrorList:this.settings.mirrorList.filter(o=>o.url&&o.name)};this.submitting=!0,vc({message:"Update settings",content:JSON.stringify(i),path:"data/settings.json"}).then(()=>{this.message.success(_e("_saveSuccess"))}).finally(()=>{this.submitting=!1})}})}static#e=this.\u0275fac=function(i){return new(i||t)(v(fv),v(er),v(za))};static#t=this.\u0275cmp=q({type:t,selectors:[["system-setting"]],decls:451,vars:262,consts:[["loading1",""],["loading2",""],["loading3",""],["loading4",""],["basicTable",""],["nz-form","",3,"formGroup"],[3,"nzSpan"],["id","file"],[1,"logo",3,"src"],[2,"white-space","nowrap","margin-top","5px"],[3,"onChange"],["nz-input","",1,"logo-input",3,"change","value"],["nzRequired","",3,"nzSpan"],["nz-input","","formControlName","title"],["nz-input","","formControlName","description"],["nz-input","","formControlName","keywords"],["formControlName","language"],["nzValue","zh-CN","nzLabel","\u7b80\u4f53\u4e2d\u6587"],["nzValue","en","nzLabel","English"],["nz-input","","formControlName","email","placeholder","\u7528\u6237\u63d0\u4ea4\u6536\u5f55\u901a\u77e5"],["formControlName","loading"],["nz-radio","","nzValue","random"],["nz-radio","","nzValue","null"],["nz-radio","","nzValue","loading1","nz-popover","","nzPopoverPlacement","bottom",3,"nzPopoverContent"],["nz-radio","","nzValue","loading2","nz-popover","","nzPopoverPlacement","bottom",3,"nzPopoverContent"],["nz-radio","","nzValue","loading3","nz-popover","","nzPopoverPlacement","bottom",3,"nzPopoverContent"],["nz-radio","","nzValue","loading4","nz-popover","","nzPopoverPlacement","bottom",3,"nzPopoverContent"],["nz-input","","formControlName","loadingCode","placeholder","
Loading...
",3,"nzAutosize"],[3,"nzSpan","nzNoColon"],["nz-checkbox","","formControlName","allowCollect"],["nz-checkbox","","formControlName","openSEO"],["nz-checkbox","","formControlName","showGithub"],["nz-checkbox","","formControlName","showLanguage"],["nz-checkbox","","formControlName","showRate"],["nz-checkbox","","formControlName","showThemeToggle"],["formControlName","theme"],["nz-radio","","nzValue","Light"],["nz-radio","","nzValue","Super"],["nz-radio","","nzValue","Sim"],["nz-radio","","nzValue","Side"],["nz-radio","","nzValue","App"],["nz-radio","","nzValue","Shortcut"],["formControlName","appTheme"],["nz-radio","","nzValue","Current"],["nz-input","","formControlName","headerContent","placeholder","\u4f4d\u4e8e head \u6807\u7b7e\u5c3e\u90e8\uff0c\u4f60\u53ef\u4ee5\u5728\u8fd9\u91cc\u63d2\u5165\u811a\u672c\u4ee3\u7801\u6216\u5404\u79cd\u6837\u5f0f\u7f51\u7ad9\u7edf\u8ba1\u7b49",3,"nzAutosize"],["nz-input","","formControlName","footerContent","placeholder","\u73b0\u6709\u53d8\u91cf\uff1a${total} = \u7f51\u7ad9\u6570\u91cf\uff1b ${hostname} = \u57df\u540d\uff1b ${year} = \u4eca\u5e74\u5e74\u4efd",3,"nzAutosize"],["nz-input","","formControlName","actionUrl",3,"placeholder"],[1,"divider"],[1,"title"],[1,"mb10"],["formControlName","spiderTitle"],["nz-radio","","nzValue","NO"],["nz-radio","","nzValue","EMPTY"],["nz-radio","","nzValue","ALWAYS"],["formControlName","spiderIcon"],["formControlName","spiderDescription"],["nz-checkbox","","formControlName","checkUrl"],["formControlName","spiderQty",3,"nzMin","nzMax"],["formControlName","lightCardStyle"],["nz-radio","","nzValue","standard"],["nz-radio","","nzValue","column"],["nz-radio","","nzValue","example"],["formControlName","lightOverType"],["nz-radio","","nzValue","overflow"],["nz-radio","","nzValue","ellipsis"],[1,"sim-ban"],[3,"nzData","nzShowPagination"],[4,"ngFor","ngForOf"],[1,"mt10","display-block",3,"click"],["nz-input","","formControlName","superTitle",3,"placeholder"],["formControlName","superCardStyle"],["formControlName","superOverType"],["nz-input","","formControlName","simTitle",3,"placeholder"],["formControlName","simCardStyle"],["formControlName","simOverType"],["nz-checkbox","","formControlName","simThemeAutoplay"],["formControlName","simThemeHeight",3,"nzMin","nzMax"],["nz-input","","formControlName","simThemeDesc",3,"nzAutosize"],["nz-input","","formControlName","sideTitle",3,"placeholder"],["formControlName","sideCardStyle"],["nz-checkbox","","formControlName","sideThemeAutoplay"],["formControlName","sideThemeHeight",3,"nzMin","nzMax"],["nz-input","","formControlName","shortcutTitle",3,"placeholder"],["nz-checkbox","","formControlName","shortcutThemeShowWeather"],[3,"src"],["nz-input","","type","text",2,"width","300px","margin-top","10px",3,"change","value"],[3,"click"],[1,"bottom-bar"],["nz-button","","nzType","primary",2,"margin-right","20px",3,"click","nzLoading"],[1,"save-tip"],["src","assets/img/loading1.png",1,"preview"],["src","assets/img/loading2.png",1,"preview"],["src","assets/img/loading3.png",1,"preview"],["src","assets/img/loading4.png",1,"preview"],["width","260px",1,"nowrap"],[1,"icon",3,"src"],["nz-input","","type","text",2,"width","180px","margin-right","10px",3,"change","value"],["nz-input","","maxlength","200",3,"change","value"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"],[1,"nowrap"],["nz-input","","type","text",2,"width","100%","margin-right","10px",3,"change","value"],["width","400px"]],template:function(i,o){if(1&i){const r=U();f(0,"form",5)(1,"nz-form-item")(2,"nz-form-label",6),C(3),m(),f(4,"nz-form-control",6)(5,"label",7),S(6,"img",8),f(7,"span",9),C(8),m(),f(9,"app-upload",10),D("onChange",function(a){return T(r),M(o.onLogoChange(a))}),m(),f(10,"div")(11,"input",11),D("change",function(a){return T(r),M(o.onLogoChange(a))}),m()()()()(),f(12,"nz-form-item")(13,"nz-form-label",12),C(14),m(),f(15,"nz-form-control",6),S(16,"input",13),m()(),f(17,"nz-form-item")(18,"nz-form-label",6),C(19),m(),f(20,"nz-form-control",6),S(21,"input",14),m()(),f(22,"nz-form-item")(23,"nz-form-label",6),C(24),m(),f(25,"nz-form-control",6),S(26,"input",15),m()(),f(27,"nz-form-item")(28,"nz-form-label",6),C(29),m(),f(30,"nz-form-control",6)(31,"nz-select",16),S(32,"nz-option",17)(33,"nz-option",18),m()()(),f(34,"nz-form-item")(35,"nz-form-label",6),C(36,"Email"),m(),f(37,"nz-form-control",6),S(38,"input",19),m()(),f(39,"nz-form-item")(40,"nz-form-label",6),C(41),m(),f(42,"nz-form-control",6)(43,"nz-radio-group",20)(44,"label",21),C(45),m(),f(46,"label",22),C(47),m(),f(48,"label",23),C(49," loading1 "),m(),w(50,R3e,1,0,"ng-template",null,0,ot),f(52,"label",24),C(53," loading2 "),m(),w(54,L3e,1,0,"ng-template",null,1,ot),f(56,"label",25),C(57," loading3 "),m(),w(58,H3e,1,0,"ng-template",null,2,ot),f(60,"label",26),C(61," loading4 "),m(),w(62,B3e,1,0,"ng-template",null,3,ot),m()()(),f(64,"nz-form-item")(65,"nz-form-label",6),C(66,"DIY Loading code"),m(),f(67,"nz-form-control",6),S(68,"textarea",27),m()(),f(69,"nz-form-item")(70,"nz-form-label",28),C(71),m(),f(72,"nz-form-control",6),S(73,"label",29),m()(),f(74,"nz-form-item")(75,"nz-form-label",28),C(76),m(),f(77,"nz-form-control",6),S(78,"label",30),m()(),f(79,"nz-form-item")(80,"nz-form-label",28),C(81),m(),f(82,"nz-form-control",6),S(83,"label",31),m()(),f(84,"nz-form-item")(85,"nz-form-label",28),C(86),m(),f(87,"nz-form-control",6),S(88,"label",32),m()(),f(89,"nz-form-item")(90,"nz-form-label",28),C(91),m(),f(92,"nz-form-control",6),S(93,"label",33),m()(),f(94,"nz-form-item")(95,"nz-form-label",28),C(96),m(),f(97,"nz-form-control",6),S(98,"label",34),m()(),f(99,"nz-form-item")(100,"nz-form-label",28),C(101),m(),f(102,"nz-form-control",6)(103,"nz-radio-group",35)(104,"label",36),C(105,"Light"),m(),f(106,"label",37),C(107,"Super"),m(),f(108,"label",38),C(109,"Sim"),m(),f(110,"label",39),C(111,"Side"),m(),f(112,"label",40),C(113,"App"),m(),f(114,"label",41),C(115,"Shortcut"),m()()()(),f(116,"nz-form-item")(117,"nz-form-label",28),C(118),m(),f(119,"nz-form-control",6)(120,"nz-radio-group",42)(121,"label",43),C(122),m(),f(123,"label",40),C(124,"App"),m(),f(125,"label",36),C(126,"Light"),m(),f(127,"label",38),C(128,"Sim"),m(),f(129,"label",39),C(130,"Side"),m(),f(131,"label",41),C(132,"Shortcut"),m()()()(),f(133,"nz-form-item")(134,"nz-form-label",6),C(135),m(),f(136,"nz-form-control",6),S(137,"textarea",44),m()(),f(138,"nz-form-item")(139,"nz-form-label",6),C(140),m(),f(141,"nz-form-control",6),S(142,"textarea",45),m()(),f(143,"nz-form-item")(144,"nz-form-label",6),C(145),m(),f(146,"nz-form-control",6),S(147,"input",46),m()(),S(148,"div",47),f(149,"h2",48),C(150),m(),f(151,"div",49)(152,"b"),C(153),m()(),f(154,"div",49)(155,"b"),C(156),m()(),f(157,"div",49)(158,"b"),C(159),m()(),f(160,"nz-form-item")(161,"nz-form-label",28),C(162),m(),f(163,"nz-form-control",6)(164,"nz-radio-group",50)(165,"label",51),C(166),m(),f(167,"label",52),C(168),m(),f(169,"label",53),C(170),m()()()(),f(171,"nz-form-item")(172,"nz-form-label",28),C(173),m(),f(174,"nz-form-control",6)(175,"nz-radio-group",54)(176,"label",51),C(177),m(),f(178,"label",52),C(179),m(),f(180,"label",53),C(181),m()()()(),f(182,"nz-form-item")(183,"nz-form-label",28),C(184),m(),f(185,"nz-form-control",6)(186,"nz-radio-group",55)(187,"label",51),C(188),m(),f(189,"label",52),C(190),m(),f(191,"label",53),C(192),m()()()(),f(193,"nz-form-item")(194,"nz-form-label",28),C(195),m(),f(196,"nz-form-control",6)(197,"label",56),C(198),m()()(),f(199,"nz-form-item")(200,"nz-form-label",6),C(201),m(),f(202,"nz-form-control",6),S(203,"nz-slider",57),f(204,"div"),C(205),m()()(),S(206,"div",47),f(207,"h2",48),C(208),m(),f(209,"nz-form-item")(210,"nz-form-label",6),C(211),m(),f(212,"nz-form-control",6)(213,"nz-radio-group",58)(214,"label",59),C(215),m(),f(216,"label",60),C(217),m(),f(218,"label",61),C(219),m()()()(),f(220,"nz-form-item")(221,"nz-form-label",6),C(222),m(),f(223,"nz-form-control",6)(224,"nz-radio-group",62)(225,"label",63),C(226),m(),f(227,"label",64),C(228),m()()()(),f(229,"nz-form-item",65)(230,"nz-form-label",6),C(231),m(),f(232,"nz-form-control",6)(233,"nz-table",66,4)(235,"thead")(236,"tr")(237,"th"),C(238),m(),f(239,"th"),C(240),m(),f(241,"th"),C(242),m()()(),f(243,"tbody"),w(244,j3e,11,5,"tr",67),m()(),f(245,"a",68),D("click",function(){return T(r),M(o.onAddLightBanner())}),C(246),m()()(),S(247,"div",47),f(248,"h2",48),C(249),m(),f(250,"nz-form-item")(251,"nz-form-label",6),C(252),m(),f(253,"nz-form-control",6),S(254,"input",69),m()(),f(255,"nz-form-item")(256,"nz-form-label",6),C(257),m(),f(258,"nz-form-control",6)(259,"nz-radio-group",70)(260,"label",59),C(261),m(),f(262,"label",60),C(263),m(),f(264,"label",61),C(265),m()()()(),f(266,"nz-form-item")(267,"nz-form-label",6),C(268),m(),f(269,"nz-form-control",6)(270,"nz-radio-group",71)(271,"label",63),C(272),m(),f(273,"label",64),C(274),m()()()(),f(275,"nz-form-item",65)(276,"nz-form-label",6),C(277),m(),f(278,"nz-form-control",6)(279,"nz-table",66,4)(281,"thead")(282,"tr")(283,"th"),C(284),m(),f(285,"th"),C(286),m(),f(287,"th"),C(288),m()()(),f(289,"tbody"),w(290,$3e,11,5,"tr",67),m()(),f(291,"a",68),D("click",function(){return T(r),M(o.onAddSuperBanner())}),C(292),m()()(),S(293,"div",47),f(294,"h2",48),C(295),m(),f(296,"nz-form-item")(297,"nz-form-label",6),C(298),m(),f(299,"nz-form-control",6),S(300,"input",72),m()(),f(301,"nz-form-item")(302,"nz-form-label",6),C(303),m(),f(304,"nz-form-control",6)(305,"nz-radio-group",73)(306,"label",59),C(307),m(),f(308,"label",60),C(309),m(),f(310,"label",61),C(311),m()()()(),f(312,"nz-form-item")(313,"nz-form-label",6),C(314),m(),f(315,"nz-form-control",6)(316,"nz-radio-group",74)(317,"label",63),C(318),m(),f(319,"label",64),C(320),m()()()(),f(321,"nz-form-item",65)(322,"nz-form-label",6),C(323,"Banner"),m(),f(324,"nz-form-control",6)(325,"nz-table",66,4)(327,"thead")(328,"tr")(329,"th"),C(330),m(),f(331,"th"),C(332),m(),f(333,"th"),C(334),m()()(),f(335,"tbody"),w(336,Y3e,11,5,"tr",67),m()(),f(337,"a",68),D("click",function(){return T(r),M(o.onAddSimBanner())}),C(338),m()()(),f(339,"nz-form-item")(340,"nz-form-label",6),C(341),m(),f(342,"nz-form-control",6),S(343,"label",75),m()(),f(344,"nz-form-item")(345,"nz-form-label",6),C(346),m(),f(347,"nz-form-control",6),S(348,"nz-slider",76),f(349,"div"),C(350),m()()(),f(351,"nz-form-item")(352,"nz-form-label",6),C(353),m(),f(354,"nz-form-control",6),S(355,"textarea",77),m()(),S(356,"div",47),f(357,"h2",48),C(358),m(),f(359,"nz-form-item")(360,"nz-form-label",6),C(361),m(),f(362,"nz-form-control",6),S(363,"input",78),m()(),f(364,"nz-form-item")(365,"nz-form-label",6),C(366),m(),f(367,"nz-form-control",6)(368,"nz-radio-group",79)(369,"label",59),C(370),m(),f(371,"label",60),C(372),m(),f(373,"label",61),C(374),m()()()(),f(375,"nz-form-item",65)(376,"nz-form-label",6),C(377,"Banner"),m(),f(378,"nz-form-control",6)(379,"nz-table",66,4)(381,"thead")(382,"tr")(383,"th"),C(384),m(),f(385,"th"),C(386),m(),f(387,"th"),C(388),m()()(),f(389,"tbody"),w(390,U3e,11,5,"tr",67),m()(),f(391,"a",68),D("click",function(){return T(r),M(o.onAddSideBanner())}),C(392),m()()(),f(393,"nz-form-item")(394,"nz-form-label",6),C(395),m(),f(396,"nz-form-control",6),S(397,"label",80),m()(),f(398,"nz-form-item")(399,"nz-form-label",6),C(400),m(),f(401,"nz-form-control",6),S(402,"nz-slider",81),f(403,"div"),C(404),m()()(),S(405,"div",47),f(406,"h2",48),C(407),m(),f(408,"nz-form-item")(409,"nz-form-label",6),C(410),m(),f(411,"nz-form-control",6),S(412,"input",82),m()(),f(413,"nz-form-item")(414,"nz-form-label",28),C(415),m(),f(416,"nz-form-control",6),S(417,"label",83),m()(),f(418,"nz-form-item",65)(419,"nz-form-label",6),C(420),m(),f(421,"nz-form-control",6),S(422,"img",84),f(423,"app-upload",10),D("onChange",function(a){return T(r),M(o.onShortcutImgChange(a))}),m(),f(424,"input",85),D("change",function(a){return T(r),M(o.onShortcutImgChange(a))}),m()()(),S(425,"div",47),f(426,"h2",48),C(427),m(),f(428,"nz-form-item",65)(429,"nz-form-label",6),C(430),m(),f(431,"nz-form-control",6)(432,"nz-table",66,4)(434,"thead")(435,"tr")(436,"th"),C(437),m(),f(438,"th"),C(439),m(),f(440,"th"),C(441),m()()(),f(442,"tbody"),w(443,W3e,9,4,"tr",67),m()(),f(444,"a",86),D("click",function(){return T(r),M(o.onAddMirror())}),C(445),m()()(),f(446,"div",87)(447,"button",88),D("click",function(){return T(r),M(o.handleSubmit())}),C(448),m(),f(449,"p",89),C(450),m()()()}if(2&i){const r=He(51),s=He(55),a=He(59),c=He(63);h("formGroup",o.validateForm),d(2),h("nzSpan",4),d(),x(o.$t("_webLogo")),d(),h("nzSpan",20),d(2),h("src",o.settings.favicon,Ot),d(2),Ce(" ",o.$t("_updateLogo")," "),d(3),h("value",o.settings.favicon),d(2),h("nzSpan",4),d(),x(o.$t("_title")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_webDesc")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_keywords")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_defLanguage")),d(),h("nzSpan",10),d(5),h("nzSpan",4),d(2),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_pageLoad")),d(),h("nzSpan",20),d(3),x(o.$t("_random")),d(2),x(o.$t("_noSet")),d(),h("nzPopoverContent",r),d(4),h("nzPopoverContent",s),d(4),h("nzPopoverContent",a),d(4),h("nzPopoverContent",c),d(5),h("nzSpan",4),d(2),h("nzSpan",10),d(),h("nzAutosize",Ti(258,L6)),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_allowCollect")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_enableSEO")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_showGithub")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_showLanguage")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_showRate")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_displaySwitchTheme")),d(),h("nzSpan",20),d(3),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_defTheme")),d(),h("nzSpan",20),d(15),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_appTheme")),d(),h("nzSpan",20),d(3),x(o.$t("_followPage")),d(12),h("nzSpan",4),d(),x(o.$t("_headHtml")),d(),h("nzSpan",10),d(),h("nzAutosize",Ti(259,L6)),d(2),h("nzSpan",4),d(),x(o.$t("_footHtml")),d(),h("nzSpan",10),d(),h("nzAutosize",Ti(260,L6)),d(2),h("nzSpan",4),d(),x(o.$t("_requestAddress")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_requestTip")),d(3),x(o.$t("_spiderRule")),d(3),x(o.$t("_spiderTip")),d(3),x(o.$t("_spiderNetTip")),d(3),x(o.$t("_spiderBuildTip")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_spiderTitle")),d(),h("nzSpan",20),d(3),x(o.$t("_notSpider")),d(2),x(o.$t("_spiderEmpty")),d(2),x(o.$t("_spiderAlways")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_spiderIcon")),d(),h("nzSpan",20),d(3),x(o.$t("_notSpider")),d(2),x(o.$t("_spiderEmpty")),d(2),x(o.$t("_spiderAlways")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_spiderDesc")),d(),h("nzSpan",20),d(3),x(o.$t("_notSpider")),d(2),x(o.$t("_spiderEmpty")),d(2),x(o.$t("_spiderAlways")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_spiderStatus")),d(),h("nzSpan",20),d(2),x(o.$t("_checkStatus")),d(2),h("nzSpan",4),d(),x(o.$t("_spiderQty")),d(),h("nzSpan",10),d(),h("nzMin",0)("nzMax",200),d(2),x(o.$t("_spiderQtyTip")),d(3),Ce("Light ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_cardStyle")),d(),h("nzSpan",10),d(3),x(o.$t("_standard")),d(2),x(o.$t("_column")),d(2),x(o.$t("_simplicity")),d(2),h("nzSpan",4),d(),x(o.$t("_navOver")),d(),h("nzSpan",10),d(3),x(o.$t("_scrollBar")),d(2),x(o.$t("_ellipsis")),d(2),h("nzSpan",4),d(),x(o.$t("_sidebarImg")),d(),h("nzSpan",20),d(),h("nzData",o.settings.lightImages)("nzShowPagination",!1),d(5),x(o.$t("_backgroundImage")),d(2),x(o.$t("_jumpAddr")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.lightImages),d(2),x(o.$t("_add")),d(3),Ce("Super ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_title")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_defTitle4")),d(2),h("nzSpan",4),d(),x(o.$t("_cardStyle")),d(),h("nzSpan",10),d(3),x(o.$t("_standard")),d(2),x(o.$t("_column")),d(2),x(o.$t("_simplicity")),d(2),h("nzSpan",4),d(),x(o.$t("_navOver")),d(),h("nzSpan",10),d(3),x(o.$t("_scrollBar")),d(2),x(o.$t("_ellipsis")),d(2),h("nzSpan",4),d(),x(o.$t("_sidebarImg")),d(),h("nzSpan",20),d(),h("nzData",o.settings.superImages)("nzShowPagination",!1),d(5),x(o.$t("_backgroundImage")),d(2),x(o.$t("_jumpAddr")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.superImages),d(2),x(o.$t("_add")),d(3),Ce("Sim ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_title")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_defaultTitle")),d(2),h("nzSpan",4),d(),x(o.$t("_cardStyle")),d(),h("nzSpan",10),d(3),x(o.$t("_standard")),d(2),x(o.$t("_column")),d(2),x(o.$t("_simplicity")),d(2),h("nzSpan",4),d(),x(o.$t("_navOver")),d(),h("nzSpan",10),d(3),x(o.$t("_scrollBar")),d(2),x(o.$t("_ellipsis")),d(2),h("nzSpan",4),d(2),h("nzSpan",20),d(),h("nzData",o.settings.simThemeImages)("nzShowPagination",!1),d(5),x(o.$t("_backgroundImage")),d(2),x(o.$t("_jumpAddr")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.simThemeImages),d(2),x(o.$t("_add")),d(2),h("nzSpan",4),d(),x(o.$t("_autoPlay")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_bannerHeight")),d(),h("nzSpan",10),d(),h("nzMin",0)("nzMax",1e3),d(2),x(o.$t("_bannerTip")),d(2),h("nzSpan",4),d(),x(o.$t("_desc")),d(),h("nzSpan",10),d(),h("nzAutosize",Ti(261,L6)),d(3),Ce("Side ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_sidebarTitle")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_defTitle4")),d(2),h("nzSpan",4),d(),x(o.$t("_cardStyle")),d(),h("nzSpan",10),d(3),x(o.$t("_standard")),d(2),x(o.$t("_column")),d(2),x(o.$t("_simplicity")),d(2),h("nzSpan",4),d(2),h("nzSpan",20),d(),h("nzData",o.settings.sideThemeImages)("nzShowPagination",!1),d(5),x(o.$t("_backgroundImage")),d(2),x(o.$t("_jumpAddr")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.sideThemeImages),d(2),x(o.$t("_add")),d(2),h("nzSpan",4),d(),x(o.$t("_autoPlay")),d(),h("nzSpan",10),d(3),h("nzSpan",4),d(),x(o.$t("_bannerHeight")),d(),h("nzSpan",10),d(),h("nzMin",0)("nzMax",1e3),d(2),x(o.$t("_bannerTip")),d(3),Ce("Shortcut ",o.$t("_theme"),""),d(2),h("nzSpan",4),d(),x(o.$t("_title")),d(),h("nzSpan",10),d(),h("placeholder",o.$t("_defaultTitle")),d(2),h("nzSpan",4)("nzNoColon",!0),d(),x(o.$t("_showWeather")),d(),h("nzSpan",20),d(3),h("nzSpan",4),d(),x(o.$t("_backgroundImage")),d(),h("nzSpan",10),d(),h("src",o.settings.shortcutThemeImages[0].src,Ot),d(2),h("value",o.settings.shortcutThemeImages[0].src),d(3),ca("",o.$t("_mirrorList"),"",o.$t("_ignore"),""),d(2),h("nzSpan",4),d(),x(o.$t("_mirrorList")),d(),h("nzSpan",20),d(),h("nzData",o.settings.mirrorList)("nzShowPagination",!1),d(5),x(o.$t("_mirrorAddr")),d(2),x(o.$t("_mirrorName")),d(2),x(o.$t("_action")),d(2),h("ngForOf",o.settings.mirrorList),d(2),x(o.$t("_add")),d(2),h("nzLoading",o.submitting),d(),Ce(" ",o.$t("_save")," "),d(2),x(o.$t("_setSaveTip"))}},dependencies:[zn,Ws,_P,YP,Che,Nc,Vc,x1,Cc,F2,V6,R6,F6,nr,mi,tr,T6,Cr,Qi,g6,R1,L1,B1,Y1,N2,$1,V2,Bc,U1,Rc,C3e,fI,dI],styles:["#file[_ngcontent-%COMP%]{cursor:pointer}#file[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}#file[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{width:50px;height:50px}.preview[_ngcontent-%COMP%]{width:300px}.save-tip[_ngcontent-%COMP%]{margin-top:10px;color:#f50;font-weight:700}.divider[_ngcontent-%COMP%]{height:1px;width:100%;margin:20px 0;background-color:#eee}.title[_ngcontent-%COMP%]{margin-bottom:20px}.sim-ban[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:inline-block;width:100px;min-height:60px;object-fit:cover;margin-right:20px;border:1px solid #eee}.sim-ban[_ngcontent-%COMP%] .anticon{font-size:30px}.logo-input[_ngcontent-%COMP%]{display:block!important;width:518px;margin-top:5px}.bottom-bar[_ngcontent-%COMP%]{z-index:3;position:sticky;bottom:0;left:0;padding:10px 0 10px 200px;background-color:#fff;box-shadow:0 0 10px #ccc;margin-top:80px;border-radius:8px;display:flex;align-items:center}"]})}return t})();var q3e=fe(578);function K3e(t,n){if(1&t&&($e(0),S(1,"span",1),Ye()),2&t){const e=n.$implicit;d(),h("nzType",e)}}const J3e=()=>({minWidth:"46px"}),Z3e=()=>({visible:!1});function Q3e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g().$implicit;d(),Ce(" ",e.tab.label," ")}}function X3e(t,n){if(1&t){const e=U();f(0,"li",8),D("click",function(){const o=T(e).$implicit;return M(g(2).onSelect(o))})("contextmenu",function(o){const r=T(e).$implicit;return M(g(2).onContextmenu(r,o))}),w(1,Q3e,2,1,"ng-container",9),m()}if(2&t){const e=n.$implicit;Q("ant-tabs-dropdown-menu-item-disabled",e.disabled),h("nzSelected",e.active)("nzDisabled",e.disabled),d(),h("nzStringTemplateOutlet",e.tab.label)("nzStringTemplateOutletContext",Ti(6,Z3e))}}function e6e(t,n){if(1&t&&(f(0,"ul",6),w(1,X3e,2,7,"li",7),m()),2&t){const e=g();d(),h("ngForOf",e.items)}}function t6e(t,n){if(1&t){const e=U();f(0,"button",10),D("click",function(){return T(e),M(g().addClicked.emit())}),m()}2&t&&h("addIcon",g().addIcon)}const n6e=["navWarp"],i6e=["navList"],o6e=["*"];function r6e(t,n){if(1&t){const e=U();f(0,"button",8),D("click",function(){return T(e),M(g().addClicked.emit())}),m()}2&t&&(h("addIcon",g().addIcon),Pt("tabindex",-1))}function s6e(t,n){}function a6e(t,n){if(1&t&&(f(0,"div",9),w(1,s6e,0,0,"ng-template",10),m()),2&t){const e=g();d(),h("ngTemplateOutlet",e.extraTemplate)}}const c6e=["nz-tab-body",""];function l6e(t,n){}function d6e(t,n){if(1&t&&($e(0),w(1,l6e,0,0,"ng-template",1),Ye()),2&t){const e=g();d(),h("ngTemplateOutlet",e.content)}}function u6e(t,n){if(1&t&&($e(0),S(1,"span",1),Ye()),2&t){const e=n.$implicit;d(),h("nzType",e)}}const h6e=["contentTemplate"],p6e=[[["","nz-tab-link",""]],"*"],f6e=["[nz-tab-link]","*"];function m6e(t,n){1&t&&bt(0)}function g6e(t,n){1&t&&bt(0,1)}const v6e=()=>({visible:!0});function _6e(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g().$implicit;d(),x(e.label)}}function b6e(t,n){if(1&t){const e=U();f(0,"button",10),D("click",function(o){T(e);const r=g().index;return M(g(2).onClose(r,o))}),m()}2&t&&h("closeIcon",g().$implicit.nzCloseIcon)}function y6e(t,n){if(1&t){const e=U();f(0,"div",6),D("click",function(o){const r=T(e),s=r.$implicit,a=r.index;return M(g(2).clickNavItem(s,a,o))})("contextmenu",function(o){const r=T(e).$implicit;return M(g(2).contextmenuNavItem(r,o))}),f(1,"button",7),w(2,_6e,2,1,"ng-container",8)(3,b6e,1,1,"button",9),m()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);Lt("margin-right","horizontal"===o.position?o.nzTabBarGutter:null,"px")("margin-bottom","vertical"===o.position?o.nzTabBarGutter:null,"px"),Q("ant-tabs-tab-active",o.nzSelectedIndex===i)("ant-tabs-tab-disabled",e.nzDisabled),d(),h("id",o.getTabContentId(i))("disabled",e.nzDisabled)("tab",e)("active",o.nzSelectedIndex===i),Pt("tabIndex",o.getTabIndex(e,i))("aria-disabled",e.nzDisabled)("aria-selected",o.nzSelectedIndex===i&&!o.nzHideAll)("aria-controls",o.getTabContentId(i)),d(),h("nzStringTemplateOutlet",e.label)("nzStringTemplateOutletContext",Ti(19,v6e)),d(),h("ngIf",e.nzClosable&&o.closable&&!e.nzDisabled)}}function C6e(t,n){if(1&t){const e=U();f(0,"nz-tabs-nav",4),D("tabScroll",function(o){return T(e),M(g().nzTabListScroll.emit(o))})("selectFocusedIndex",function(o){return T(e),M(g().setSelectedIndex(o))})("addClicked",function(){return T(e),M(g().onAdd())}),w(1,y6e,4,20,"div",5),m()}if(2&t){const e=g();h("ngStyle",e.nzTabBarStyle)("selectedIndex",e.nzSelectedIndex||0)("inkBarAnimated",e.inkBarAnimated)("addable",e.addable)("addIcon",e.nzAddIcon)("hideBar",e.nzHideAll)("position",e.position)("extraTemplate",e.nzTabBarExtraContent),d(),h("ngForOf",e.tabs)}}function w6e(t,n){if(1&t&&S(0,"div",11),2&t){const e=n.$implicit,i=n.index,o=g();h("id",o.getTabContentId(i))("active",o.nzSelectedIndex===i&&!o.nzHideAll)("content",e.content)("forceRender",e.nzForceRender)("animated",o.tabPaneAnimated),Pt("aria-labelledby",o.getTabContentId(i))}}let R2=(()=>{class t{constructor(e){this.elementRef=e,this.addIcon="plus",this.element=this.elementRef.nativeElement}getElementWidth(){return this.element?.offsetWidth||0}getElementHeight(){return this.element?.offsetHeight||0}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tab-add-button"],["button","nz-tab-add-button",""]],hostAttrs:["aria-label","Add tab","type","button",1,"ant-tabs-nav-add"],inputs:{addIcon:"addIcon"},standalone:!0,features:[me],decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"],["nz-icon","","nzTheme","outline",3,"nzType"]],template:function(i,o){1&i&&w(0,K3e,2,1,"ng-container",0),2&i&&h("nzStringTemplateOutlet",o.addIcon)},dependencies:[Tn,Sn,On,cn],encapsulation:2})}return t})(),Ov=(()=>{class t{get _animated(){return"NoopAnimations"!==this.animationMode&&this.animated}constructor(e,i,o){this.elementRef=e,this.ngZone=i,this.animationMode=o,this.position="horizontal",this.animated=!0}alignToElement(e){this.ngZone.runOutsideAngular(()=>{p2(()=>this.setStyles(e))})}setStyles(e){const i=this.elementRef.nativeElement;"horizontal"===this.position?(i.style.top="",i.style.height="",i.style.left=this.getLeftPosition(e),i.style.width=this.getElementWidth(e)):(i.style.left="",i.style.width="",i.style.top=this.getTopPosition(e),i.style.height=this.getElementHeight(e))}getLeftPosition(e){return e?`${e.offsetLeft||0}px`:"0"}getElementWidth(e){return e?`${e.offsetWidth||0}px`:"0"}getTopPosition(e){return e?`${e.offsetTop||0}px`:"0"}getElementHeight(e){return e?`${e.offsetHeight||0}px`:"0"}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(De),v(ta,8))};static#t=this.\u0275dir=de({type:t,selectors:[["nz-tabs-ink-bar"],["","nz-tabs-ink-bar",""]],hostAttrs:[1,"ant-tabs-ink-bar"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-tabs-ink-bar-animated",o._animated)},inputs:{position:"position",animated:"animated"},standalone:!0})}return t})(),Pv=(()=>{class t{constructor(e){this.elementRef=e,this.disabled=!1,this.active=!1,this.el=e.nativeElement,this.parentElement=this.el.parentElement}focus(){this.el.focus()}get width(){return this.parentElement.offsetWidth}get height(){return this.parentElement.offsetHeight}get left(){return this.parentElement.offsetLeft}get top(){return this.parentElement.offsetTop}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzTabNavItem",""]],inputs:{disabled:[2,"disabled","disabled",O],tab:"tab",active:[2,"active","active",O]},standalone:!0,features:[je]})}return t})(),H6=(()=>{class t{constructor(e,i){this.cdr=e,this.elementRef=i,this.items=[],this.addable=!1,this.addIcon="plus",this.addClicked=new H,this.selected=new H,this.menuOpened=!1,this.element=this.elementRef.nativeElement}onSelect(e){e.disabled||(e.tab.nzClick.emit(),this.selected.emit(e))}onContextmenu(e,i){e.disabled||e.tab.nzContextmenu.emit(i)}showItems(){clearTimeout(this.closeAnimationWaitTimeoutId),this.menuOpened=!0,this.cdr.markForCheck()}menuVisChange(e){e||(this.closeAnimationWaitTimeoutId=setTimeout(()=>{this.menuOpened=!1,this.cdr.markForCheck()},150))}getElementWidth(){return this.element?.offsetWidth||0}getElementHeight(){return this.element?.offsetHeight||0}ngOnDestroy(){clearTimeout(this.closeAnimationWaitTimeoutId)}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v(Te))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tab-nav-operation"]],hostAttrs:[1,"ant-tabs-nav-operations"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-tabs-nav-operations-hidden",0===o.items.length)},inputs:{items:"items",addable:[2,"addable","addable",O],addIcon:"addIcon"},outputs:{addClicked:"addClicked",selected:"selected"},exportAs:["nzTabNavOperation"],standalone:!0,features:[je,me],decls:7,vars:6,consts:[["dropdownTrigger","nzDropdown"],["menu","nzDropdownMenu"],["nz-dropdown","","type","button","tabindex","-1","aria-hidden","true","nzOverlayClassName","nz-tabs-dropdown",1,"ant-tabs-nav-more",3,"nzVisibleChange","mouseenter","nzDropdownMenu","nzOverlayStyle","nzMatchWidthElement"],["nz-icon","","nzType","ellipsis"],["nz-menu","",4,"ngIf"],["nz-tab-add-button","",3,"addIcon","click",4,"ngIf"],["nz-menu",""],["nz-menu-item","","class","ant-tabs-dropdown-menu-item",3,"ant-tabs-dropdown-menu-item-disabled","nzSelected","nzDisabled","click","contextmenu",4,"ngFor","ngForOf"],["nz-menu-item","",1,"ant-tabs-dropdown-menu-item",3,"click","contextmenu","nzSelected","nzDisabled"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],["nz-tab-add-button","",3,"click","addIcon"]],template:function(i,o){if(1&i){const r=U();f(0,"button",2,0),D("nzVisibleChange",function(a){return T(r),M(o.menuVisChange(a))})("mouseenter",function(){return T(r),M(o.showItems())}),S(2,"span",3),m(),f(3,"nz-dropdown-menu",null,1),w(5,e6e,2,1,"ul",4),m(),w(6,t6e,1,1,"button",5)}2&i&&(h("nzDropdownMenu",He(4))("nzOverlayStyle",Ti(5,J3e))("nzMatchWidthElement",null),d(5),h("ngIf",o.menuOpened),d(),h("ngIf",o.addable))},dependencies:[On,cn,Tt,zn,Tn,Sn,R2,C2,R7,Sa,Us,N1],encapsulation:2,changeDetection:0})}return t})();const vI=.995**20;let _I=(()=>{class t{constructor(e,i){this.ngZone=e,this.elementRef=i,this.lastWheelDirection=null,this.lastWheelTimestamp=0,this.lastTimestamp=0,this.lastTimeDiff=0,this.lastMixedWheel=0,this.lastWheelPrevent=!1,this.touchPosition=null,this.lastOffset=null,this.motion=-1,this.unsubscribe=()=>{},this.offsetChange=new H,this.tabScroll=new H,this.onTouchEnd=o=>{if(!this.touchPosition)return;const r=this.lastOffset,s=this.lastTimeDiff;if(this.lastOffset=this.touchPosition=null,r){const a=r.x/s,c=r.y/s,l=Math.abs(a),u=Math.abs(c);if(Math.max(l,u)<.1)return;let p=a,_=c;this.motion=window.setInterval(()=>{Math.abs(p)<.01&&Math.abs(_)<.01?window.clearInterval(this.motion):(p*=vI,_*=vI,this.onOffset(20*p,20*_,o))},20)}},this.onTouchMove=o=>{if(!this.touchPosition)return;o.preventDefault();const{screenX:r,screenY:s}=o.touches[0],a=r-this.touchPosition.x,c=s-this.touchPosition.y;this.onOffset(a,c,o);const l=Date.now();this.lastTimeDiff=l-this.lastTimestamp,this.lastTimestamp=l,this.lastOffset={x:a,y:c},this.touchPosition={x:r,y:s}},this.onTouchStart=o=>{const{screenX:r,screenY:s}=o.touches[0];this.touchPosition={x:r,y:s},window.clearInterval(this.motion)},this.onWheel=o=>{const{deltaX:r,deltaY:s}=o;let a;const c=Math.abs(r),l=Math.abs(s);c===l?a="x"===this.lastWheelDirection?r:s:c>l?(a=r,this.lastWheelDirection="x"):(a=s,this.lastWheelDirection="y");const u=Date.now(),p=Math.abs(a);(u-this.lastWheelTimestamp>100||p-this.lastMixedWheel>10)&&(this.lastWheelPrevent=!1),this.onOffset(-a,-a,o),(o.defaultPrevented||this.lastWheelPrevent)&&(this.lastWheelPrevent=!0),this.lastWheelTimestamp=u,this.lastMixedWheel=p}}ngOnInit(){this.unsubscribe=this.ngZone.runOutsideAngular(()=>{const e=this.elementRef.nativeElement,i=nn(e,"wheel"),o=nn(e,"touchstart"),r=nn(e,"touchmove"),s=nn(e,"touchend"),a=new Ft;return a.add(this.subscribeWrap("wheel",i,this.onWheel)),a.add(this.subscribeWrap("touchstart",o,this.onTouchStart)),a.add(this.subscribeWrap("touchmove",r,this.onTouchMove)),a.add(this.subscribeWrap("touchend",s,this.onTouchEnd)),()=>{a.unsubscribe()}})}subscribeWrap(e,i,o){return i.subscribe(r=>{this.tabScroll.emit({type:e,event:r}),r.defaultPrevented||o(r)})}onOffset(e,i,o){this.ngZone.run(()=>{this.offsetChange.emit({x:e,y:i,event:o})})}ngOnDestroy(){this.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||t)(v(De),v(Te))};static#t=this.\u0275dir=de({type:t,selectors:[["","nzTabScrollList",""]],outputs:{offsetChange:"offsetChange",tabScroll:"tabScroll"},standalone:!0})}return t})();const S6e=typeof requestAnimationFrame<"u"?_7:y7;let j6=(()=>{class t{get selectedIndex(){return this._selectedIndex}set selectedIndex(e){const i=Rs(e);this._selectedIndex!==i&&(this._selectedIndex=e,this.selectedIndexChanged=!0,this.keyManager&&this.keyManager.updateActiveItem(e))}get focusIndex(){return this.keyManager?this.keyManager.activeItemIndex:0}set focusIndex(e){!this.isValidIndex(e)||this.focusIndex===e||!this.keyManager||this.keyManager.setActiveItem(e)}get showAddButton(){return 0===this.hiddenItems.length&&this.addable}constructor(e,i,o,r,s){this.cdr=e,this.ngZone=i,this.viewportRuler=o,this.nzResizeObserver=r,this.dir=s,this.indexFocused=new H,this.selectFocusedIndex=new H,this.addClicked=new H,this.tabScroll=new H,this.position="horizontal",this.addable=!1,this.hideBar=!1,this.addIcon="plus",this.inkBarAnimated=!0,this.translate=null,this.transformX=0,this.transformY=0,this.pingLeft=!1,this.pingRight=!1,this.pingTop=!1,this.pingBottom=!1,this.hiddenItems=[],this.destroy$=new N,this._selectedIndex=0,this.wrapperWidth=0,this.wrapperHeight=0,this.scrollListWidth=0,this.scrollListHeight=0,this.operationWidth=0,this.operationHeight=0,this.addButtonWidth=0,this.addButtonHeight=0,this.selectedIndexChanged=!1}ngAfterViewInit(){const e=this.dir?this.dir.change.asObservable():We(null),i=this.viewportRuler.change(150),o=()=>{this.updateScrollListPosition(),this.alignInkBarToSelectedTab()};this.keyManager=new bse(this.items).withHorizontalOrientation(this.getLayoutDirection()).withWrap(),this.keyManager.updateActiveItem(this.selectedIndex),p2(o),Pn(this.nzResizeObserver.observe(this.navWarpRef),this.nzResizeObserver.observe(this.navListRef)).pipe(I(this.destroy$),_c(16,S6e)).subscribe(()=>{o()}),Pn(e,i,this.items.changes).pipe(I(this.destroy$)).subscribe(()=>{Promise.resolve().then(o),this.keyManager.withHorizontalOrientation(this.getLayoutDirection())}),this.keyManager.change.pipe(I(this.destroy$)).subscribe(r=>{this.indexFocused.emit(r),this.setTabFocus(r),this.scrollToTab(this.keyManager.activeItem)})}ngAfterContentChecked(){this.selectedIndexChanged&&(this.updateScrollListPosition(),this.alignInkBarToSelectedTab(),this.selectedIndexChanged=!1,this.cdr.markForCheck())}ngOnDestroy(){clearTimeout(this.lockAnimationTimeoutId),clearTimeout(this.cssTransformTimeWaitingId),this.destroy$.next(),this.destroy$.complete()}onSelectedFromMenu(e){const i=this.items.toArray().findIndex(o=>o===e);-1!==i&&(this.keyManager.updateActiveItem(i),this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this.scrollToTab(e)))}onOffsetChange(e){if("horizontal"===this.position){if(!this.lockAnimationTimeoutId&&(this.transformX>=0&&e.x>0||this.transformX<=this.wrapperWidth-this.scrollListWidth&&e.x<0))return;e.event.preventDefault(),this.transformX=this.clampTransformX(this.transformX+e.x),this.setTransform(this.transformX,0)}else{if(!this.lockAnimationTimeoutId&&(this.transformY>=0&&e.y>0||this.transformY<=this.wrapperHeight-this.scrollListHeight&&e.y<0))return;e.event.preventDefault(),this.transformY=this.clampTransformY(this.transformY+e.y),this.setTransform(0,this.transformY)}this.lockAnimation(),this.setVisibleRange(),this.setPingStatus()}handleKeydown(e){const i=this.navWarpRef.nativeElement.contains(e.target);if(!l2(e)&&i)switch(e.keyCode){case 37:case 38:case 39:case 40:this.lockAnimation(),this.keyManager.onKeydown(e);break;case 13:case 32:this.focusIndex!==this.selectedIndex&&this.selectFocusedIndex.emit(this.focusIndex);break;default:this.keyManager.onKeydown(e)}}isValidIndex(e){if(!this.items)return!0;const i=this.items?this.items.toArray()[e]:null;return!!i&&!i.disabled}scrollToTab(e){if(!this.items.find(o=>o===e))return;const i=this.items.toArray();if("horizontal"===this.position){let o=this.transformX;if("rtl"===this.getLayoutDirection()){const r=i[0].left+i[0].width-e.left-e.width;rthis.transformX+this.wrapperWidth&&(o=r+e.width-this.wrapperWidth)}else e.left<-this.transformX?o=-e.left:e.left+e.width>-this.transformX+this.wrapperWidth&&(o=-(e.left+e.width-this.wrapperWidth));this.transformX=o,this.transformY=0,this.setTransform(o,0)}else{let o=this.transformY;e.top<-this.transformY?o=-e.top:e.top+e.height>-this.transformY+this.wrapperHeight&&(o=-(e.top+e.height-this.wrapperHeight)),this.transformY=o,this.transformX=0,this.setTransform(0,o)}clearTimeout(this.cssTransformTimeWaitingId),this.cssTransformTimeWaitingId=setTimeout(()=>{this.setVisibleRange()},150)}lockAnimation(){this.lockAnimationTimeoutId||this.ngZone.runOutsideAngular(()=>{this.navListRef.nativeElement.style.transition="none",this.lockAnimationTimeoutId=setTimeout(()=>{this.navListRef.nativeElement.style.transition="",this.lockAnimationTimeoutId=void 0},150)})}setTransform(e,i){this.navListRef.nativeElement.style.transform=`translate(${e}px, ${i}px)`}clampTransformX(e){const i=this.wrapperWidth-this.scrollListWidth;return"rtl"===this.getLayoutDirection()?Math.max(Math.min(i,e),0):Math.min(Math.max(i,e),0)}clampTransformY(e){return Math.min(Math.max(this.wrapperHeight-this.scrollListHeight,e),0)}updateScrollListPosition(){this.resetSizes(),this.transformX=this.clampTransformX(this.transformX),this.transformY=this.clampTransformY(this.transformY),this.setVisibleRange(),this.setPingStatus(),this.keyManager&&(this.keyManager.updateActiveItem(this.keyManager.activeItemIndex),this.keyManager.activeItem&&this.scrollToTab(this.keyManager.activeItem))}resetSizes(){this.addButtonWidth=this.addBtnRef?this.addBtnRef.getElementWidth():0,this.addButtonHeight=this.addBtnRef?this.addBtnRef.getElementHeight():0,this.operationWidth=this.operationRef.getElementWidth(),this.operationHeight=this.operationRef.getElementHeight(),this.wrapperWidth=this.navWarpRef.nativeElement.offsetWidth||0,this.wrapperHeight=this.navWarpRef.nativeElement.offsetHeight||0,this.scrollListHeight=this.navListRef.nativeElement.offsetHeight||0,this.scrollListWidth=this.navListRef.nativeElement.offsetWidth||0}alignInkBarToSelectedTab(){const e=this.items&&this.items.length?this.items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i&&this.inkBar.alignToElement(i.parentElement)}setPingStatus(){const e={top:!1,right:!1,bottom:!1,left:!1},i=this.navWarpRef.nativeElement;"horizontal"===this.position?"rtl"===this.getLayoutDirection()?(e.right=this.transformX>0,e.left=this.transformX+this.wrapperWidth{const r=`ant-tabs-nav-wrap-ping-${o}`;e[o]?i.classList.add(r):i.classList.remove(r)})}setVisibleRange(){let e,i,o,r,s,a;const c=this.items.toArray(),l={width:0,height:0,left:0,top:0,right:0},u=k=>{let A;return A="right"===i?c[0].left+c[0].width-c[k].left-c[k].width:(c[k]||l)[i],A};"horizontal"===this.position?(e="width",r=this.wrapperWidth,s=this.scrollListWidth-(this.hiddenItems.length?this.operationWidth:0),a=this.addButtonWidth,o=Math.abs(this.transformX),"rtl"===this.getLayoutDirection()?(i="right",this.pingRight=this.transformX>0,this.pingLeft=this.transformX+this.wrapperWidthr&&(p=r-a),!c.length)return this.hiddenItems=[],void this.cdr.markForCheck();const _=c.length;let b=_;for(let k=0;k<_;k+=1)if(u(k)+(c[k]||l)[e]>o+p){b=k-1;break}let y=0;for(let k=_-1;k>=0;k-=1)if(u(k){class t{constructor(){this.content=null,this.active=!1,this.animated=!0,this.forceRender=!1,this.hasBeenActive=!1}ngOnChanges(e){const{active:i}=e;i?.currentValue&&(this.hasBeenActive=!0)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["","nz-tab-body",""]],hostAttrs:[1,"ant-tabs-tabpane"],hostVars:10,hostBindings:function(i,o){2&i&&(oc("@tabSwitchMotion",o.active?"enter":"leave")("@.disabled",!o.animated),Pt("tabindex",o.active?0:-1)("aria-hidden",!o.active),Lt("overflow-y",o.animated?o.active?null:"none":null),Q("ant-tabs-tabpane-active",o.active)("ant-tabs-tabpane-hidden",o.animated?null:!o.active))},inputs:{content:"content",active:"active",animated:"animated",forceRender:"forceRender"},exportAs:["nzTabBody"],standalone:!0,features:[ke,me],attrs:c6e,decls:1,vars:1,consts:[[4,"ngIf"],[3,"ngTemplateOutlet"]],template:function(i,o){1&i&&w(0,d6e,2,1,"ng-container",0),2&i&&h("ngIf",o.hasBeenActive||o.forceRender)},dependencies:[Tt,Vn],encapsulation:2,data:{animation:[Jne]},changeDetection:0})}return t})(),Iv=(()=>{class t{constructor(){this.closeIcon="close"}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tab-close-button"],["button","nz-tab-close-button",""]],hostAttrs:["aria-label","Close tab","type","button",1,"ant-tabs-tab-remove"],inputs:{closeIcon:"closeIcon"},standalone:!0,features:[me],decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"],["nz-icon","","nzTheme","outline",3,"nzType"]],template:function(i,o){1&i&&w(0,u6e,2,1,"ng-container",0),2&i&&h("nzStringTemplateOutlet",o.closeIcon)},dependencies:[Tn,Sn,On,cn],encapsulation:2})}return t})(),CI=(()=>{class t{constructor(e){this.templateRef=e}static#e=this.\u0275fac=function(i){return new(i||t)(v(Gt,1))};static#t=this.\u0275dir=de({type:t,selectors:[["ng-template","nzTabLink",""]],exportAs:["nzTabLinkTemplate"],standalone:!0})}return t})(),wI=(()=>{class t{constructor(e,i){this.elementRef=e,this.routerLink=i}static#e=this.\u0275fac=function(i){return new(i||t)(v(Te),v(b1,10))};static#t=this.\u0275dir=de({type:t,selectors:[["a","nz-tab-link",""]],exportAs:["nzTabLink"],standalone:!0})}return t})(),zI=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-tab",""]],exportAs:["nzTab"],standalone:!0})}return t})();const SI=new oe("NZ_TAB_SET");let Nv=(()=>{class t{get content(){return this.template||this.contentTemplate}get label(){return this.nzTitle||this.nzTabLinkTemplateDirective?.templateRef}constructor(e){this.closestTabSet=e,this.nzTitle="",this.nzClosable=!1,this.nzCloseIcon="close",this.nzDisabled=!1,this.nzForceRender=!1,this.nzSelect=new H,this.nzDeselect=new H,this.nzClick=new H,this.nzContextmenu=new H,this.template=null,this.isActive=!1,this.position=null,this.origin=null,this.stateChanges=new N}ngOnChanges(e){const{nzTitle:i,nzDisabled:o,nzForceRender:r}=e;(i||o||r)&&this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(SI))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tab"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,CI,5),fn(r,zI,5,Gt),fn(r,wI,5)),2&i){let s;Ae(s=Oe())&&(o.nzTabLinkTemplateDirective=s.first),Ae(s=Oe())&&(o.template=s.first),Ae(s=Oe())&&(o.linkDirective=s.first)}},viewQuery:function(i,o){if(1&i&&ft(h6e,7),2&i){let r;Ae(r=Oe())&&(o.contentTemplate=r.first)}},inputs:{nzTitle:"nzTitle",nzClosable:[2,"nzClosable","nzClosable",O],nzCloseIcon:"nzCloseIcon",nzDisabled:[2,"nzDisabled","nzDisabled",O],nzForceRender:[2,"nzForceRender","nzForceRender",O]},outputs:{nzSelect:"nzSelect",nzDeselect:"nzDeselect",nzClick:"nzClick",nzContextmenu:"nzContextmenu"},exportAs:["nzTab"],standalone:!0,features:[je,ke,me],ngContentSelectors:f6e,decls:4,vars:0,consts:[["tabLinkTemplate",""],["contentTemplate",""]],template:function(i,o){1&i&&(Et(p6e),w(0,m6e,1,0,"ng-template",null,0,ot)(2,g6e,1,0,"ng-template",null,1,ot))},encapsulation:2,changeDetection:0})}return t})();class T6e{}let D6e=0,Vv=(()=>{class t{get nzSelectedIndex(){return this.selectedIndex}set nzSelectedIndex(e){this.indexToSelect=Rs(e,null)}get position(){return-1===["top","bottom"].indexOf(this.nzTabPosition)?"vertical":"horizontal"}get addable(){return"editable-card"===this.nzType&&!this.nzHideAdd}get closable(){return"editable-card"===this.nzType}get line(){return"line"===this.nzType}get inkBarAnimated(){return this.line&&("boolean"==typeof this.nzAnimated?this.nzAnimated:this.nzAnimated.inkBar)}get tabPaneAnimated(){return"boolean"==typeof this.nzAnimated?this.nzAnimated:this.nzAnimated.tabPane}constructor(e,i,o,r,s){this.nzConfigService=e,this.ngZone=i,this.cdr=o,this.directionality=r,this.router=s,this._nzModuleName="tabs",this.nzTabPosition="top",this.nzCanDeactivate=null,this.nzAddIcon="plus",this.nzTabBarStyle=null,this.nzType="line",this.nzSize="default",this.nzAnimated=!0,this.nzTabBarGutter=void 0,this.nzHideAdd=!1,this.nzCentered=!1,this.nzHideAll=!1,this.nzLinkRouter=!1,this.nzLinkExact=!0,this.nzSelectChange=new H(!0),this.nzSelectedIndexChange=new H,this.nzTabListScroll=new H,this.nzClose=new H,this.nzAdd=new H,this.allTabs=new Ua,this.tabs=new Ua,this.dir="ltr",this.destroy$=new N,this.indexToSelect=0,this.selectedIndex=null,this.tabLabelSubscription=Ft.EMPTY,this.tabsSubscription=Ft.EMPTY,this.canDeactivateSubscription=Ft.EMPTY,this.tabSetId=D6e++}ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.tabs.destroy(),this.tabLabelSubscription.unsubscribe(),this.tabsSubscription.unsubscribe(),this.canDeactivateSubscription.unsubscribe()}ngAfterContentInit(){this.ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>this.setUpRouter())}),this.subscribeToTabLabels(),this.subscribeToAllTabChanges(),this.tabsSubscription=this.tabs.changes.subscribe(()=>{if(this.clampTabIndex(this.indexToSelect)===this.selectedIndex){const i=this.tabs.toArray();for(let o=0;o{this.tabs.forEach((o,r)=>o.isActive=r===e),i||this.nzSelectedIndexChange.emit(e)})}this.tabs.forEach((i,o)=>{i.position=o-e,null!=this.selectedIndex&&0===i.position&&!i.origin&&(i.origin=e-this.selectedIndex)}),this.selectedIndex!==e&&(this.selectedIndex=e,this.cdr.markForCheck())}onClose(e,i){i.preventDefault(),i.stopPropagation(),this.nzClose.emit({index:e})}onAdd(){this.nzAdd.emit()}clampTabIndex(e){return Math.min(this.tabs.length-1,Math.max(e||0,0))}createChangeEvent(e){const i=new T6e;return i.index=e,this.tabs&&this.tabs.length&&(i.tab=this.tabs.toArray()[e],this.tabs.forEach((o,r)=>{r!==e&&o.nzDeselect.emit()}),i.tab.nzSelect.emit()),i}subscribeToTabLabels(){this.tabLabelSubscription&&this.tabLabelSubscription.unsubscribe(),this.tabLabelSubscription=Pn(...this.tabs.map(e=>e.stateChanges)).subscribe(()=>this.cdr.markForCheck())}subscribeToAllTabChanges(){this.allTabs.changes.pipe(gn(this.allTabs)).subscribe(e=>{this.tabs.reset(e.filter(i=>i.closestTabSet===this)),this.tabs.notifyOnChanges()})}canDeactivateFun(e,i){return"function"==typeof this.nzCanDeactivate?bE(this.nzCanDeactivate(e,i)).pipe(Ns(),I(this.destroy$)):We(!0)}clickNavItem(e,i,o){e.nzDisabled||(e.nzClick.emit(),this.isRouterLinkClickEvent(i,o)||this.setSelectedIndex(i))}isRouterLinkClickEvent(e,i){const o=i.target;return!!this.nzLinkRouter&&!!this.tabs.toArray()[e]?.linkDirective?.elementRef.nativeElement.contains(o)}contextmenuNavItem(e,i){e.nzDisabled||e.nzContextmenu.emit(i)}setSelectedIndex(e){this.canDeactivateSubscription.unsubscribe(),this.canDeactivateSubscription=this.canDeactivateFun(this.selectedIndex,e).subscribe(i=>{i&&(this.nzSelectedIndex=e,this.tabNavBarRef.focusIndex=e,this.cdr.markForCheck())})}getTabIndex(e,i){return e.nzDisabled?null:this.selectedIndex===i?0:-1}getTabContentId(e){return`nz-tabs-${this.tabSetId}-tab-${e}`}setUpRouter(){if(this.nzLinkRouter){if(!this.router)throw new Error(`${A3} you should import 'RouterModule' if you want to use 'nzLinkRouter'!`);this.router.events.pipe(I(this.destroy$),yt(e=>e instanceof Br),gn(!0),w2(0)).subscribe(()=>{this.updateRouterActive(),this.cdr.markForCheck()})}}updateRouterActive(){if(this.router.navigated){const e=this.findShouldActiveTabIndex();e!==this.selectedIndex&&this.setSelectedIndex(e),this.nzHideAll=-1===e}}findShouldActiveTabIndex(){const e=this.tabs.toArray(),i=this.isLinkActive(this.router);return e.findIndex(o=>{const r=o.linkDirective;return!!r&&i(r.routerLink)})}isLinkActive(e){return i=>!!i&&e.isActive(i.urlTree||"",{paths:this.nzLinkExact?"exact":"subset",queryParams:this.nzLinkExact?"exact":"subset",fragment:"ignored",matrixParams:"ignored"})}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(De),v(Ue),v(wt,8),v(oi,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tabset"]],contentQueries:function(i,o,r){if(1&i&&fn(r,Nv,5),2&i){let s;Ae(s=Oe())&&(o.allTabs=s)}},viewQuery:function(i,o){if(1&i&&ft(j6,5),2&i){let r;Ae(r=Oe())&&(o.tabNavBarRef=r.first)}},hostAttrs:[1,"ant-tabs"],hostVars:24,hostBindings:function(i,o){2&i&&Q("ant-tabs-card","card"===o.nzType||"editable-card"===o.nzType)("ant-tabs-editable","editable-card"===o.nzType)("ant-tabs-editable-card","editable-card"===o.nzType)("ant-tabs-centered",o.nzCentered)("ant-tabs-rtl","rtl"===o.dir)("ant-tabs-top","top"===o.nzTabPosition)("ant-tabs-bottom","bottom"===o.nzTabPosition)("ant-tabs-left","left"===o.nzTabPosition)("ant-tabs-right","right"===o.nzTabPosition)("ant-tabs-default","default"===o.nzSize)("ant-tabs-small","small"===o.nzSize)("ant-tabs-large","large"===o.nzSize)},inputs:{nzSelectedIndex:"nzSelectedIndex",nzTabPosition:"nzTabPosition",nzTabBarExtraContent:"nzTabBarExtraContent",nzCanDeactivate:"nzCanDeactivate",nzAddIcon:"nzAddIcon",nzTabBarStyle:"nzTabBarStyle",nzType:"nzType",nzSize:"nzSize",nzAnimated:"nzAnimated",nzTabBarGutter:"nzTabBarGutter",nzHideAdd:[2,"nzHideAdd","nzHideAdd",O],nzCentered:[2,"nzCentered","nzCentered",O],nzHideAll:[2,"nzHideAll","nzHideAll",O],nzLinkRouter:[2,"nzLinkRouter","nzLinkRouter",O],nzLinkExact:[2,"nzLinkExact","nzLinkExact",O]},outputs:{nzSelectChange:"nzSelectChange",nzSelectedIndexChange:"nzSelectedIndexChange",nzTabListScroll:"nzTabListScroll",nzClose:"nzClose",nzAdd:"nzAdd"},exportAs:["nzTabset"],standalone:!0,features:[et([{provide:SI,useExisting:t}]),je,me],decls:4,vars:12,consts:[[3,"ngStyle","selectedIndex","inkBarAnimated","addable","addIcon","hideBar","position","extraTemplate","tabScroll","selectFocusedIndex","addClicked",4,"ngIf"],[1,"ant-tabs-content-holder"],[1,"ant-tabs-content"],["role","tabpanel","nz-tab-body","",3,"id","active","content","forceRender","animated",4,"ngFor","ngForOf"],[3,"tabScroll","selectFocusedIndex","addClicked","ngStyle","selectedIndex","inkBarAnimated","addable","addIcon","hideBar","position","extraTemplate"],["class","ant-tabs-tab",3,"margin-right","margin-bottom","ant-tabs-tab-active","ant-tabs-tab-disabled","click","contextmenu",4,"ngFor","ngForOf"],[1,"ant-tabs-tab",3,"click","contextmenu"],["type","button","role","tab","nzTabNavItem","","cdkMonitorElementFocus","",1,"ant-tabs-tab-btn",3,"id","disabled","tab","active"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],["type","button","nz-tab-close-button","",3,"closeIcon","click",4,"ngIf"],["type","button","nz-tab-close-button","",3,"click","closeIcon"],["role","tabpanel","nz-tab-body","",3,"id","active","content","forceRender","animated"]],template:function(i,o){1&i&&(w(0,C6e,2,9,"nz-tabs-nav",0),f(1,"div",1)(2,"div",2),w(3,w6e,1,6,"div",3),m()()),2&i&&(h("ngIf",o.tabs.length||o.addable),d(2),Q("ant-tabs-content-top","top"===o.nzTabPosition)("ant-tabs-content-bottom","bottom"===o.nzTabPosition)("ant-tabs-content-left","left"===o.nzTabPosition)("ant-tabs-content-right","right"===o.nzTabPosition)("ant-tabs-content-animated",o.tabPaneAnimated),d(),h("ngForOf",o.tabs))},dependencies:[j6,Tt,ti,zn,Pv,xA,Fse,Tn,Sn,Iv,yI],encapsulation:2})}return kt([Nt()],t.prototype,"nzType",void 0),kt([Nt()],t.prototype,"nzSize",void 0),kt([Nt()],t.prototype,"nzAnimated",void 0),kt([Nt()],t.prototype,"nzTabBarGutter",void 0),t})(),x6e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Vv,j6,H6,R2,Iv]})}return t})();const E6e=["*"];function k6e(t,n){if(1&t){const e=U();f(0,"span",1),D("click",function(o){return T(e),M(g().closeTag(o))}),m()}}let Fv=(()=>{class t{constructor(e,i,o,r){this.cdr=e,this.renderer=i,this.elementRef=o,this.directionality=r,this.isPresetColor=!1,this.nzMode="default",this.nzChecked=!1,this.nzBordered=!0,this.nzOnClose=new H,this.nzCheckedChange=new H,this.dir="ltr",this.destroy$=new N}updateCheckedStatus(){"checkable"===this.nzMode&&(this.nzChecked=!this.nzChecked,this.nzCheckedChange.emit(this.nzChecked))}closeTag(e){this.nzOnClose.emit(e),e.defaultPrevented||this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}clearPresetColor(){const e=this.elementRef.nativeElement,i=new RegExp(`(ant-tag-(?:${[...kE,...EE].join("|")}))`,"g"),o=e.classList.toString(),r=[];let s=i.exec(o);for(;null!==s;)r.push(s[1]),s=i.exec(o);e.classList.remove(...r)}setPresetColor(){const e=this.elementRef.nativeElement;this.clearPresetColor(),this.isPresetColor=!!this.nzColor&&(AE(this.nzColor)||function kne(t){return-1!==EE.indexOf(t)}(this.nzColor)),this.isPresetColor&&e.classList.add(`ant-tag-${this.nzColor}`)}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){const{nzColor:i}=e;i&&this.setPresetColor()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue),v($t),v(Te),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-tag"]],hostAttrs:[1,"ant-tag"],hostVars:12,hostBindings:function(i,o){1&i&&D("click",function(){return o.updateCheckedStatus()}),2&i&&(Lt("background-color",o.isPresetColor?"":o.nzColor),Q("ant-tag-has-color",o.nzColor&&!o.isPresetColor)("ant-tag-checkable","checkable"===o.nzMode)("ant-tag-checkable-checked",o.nzChecked)("ant-tag-rtl","rtl"===o.dir)("ant-tag-borderless",!o.nzBordered))},inputs:{nzMode:"nzMode",nzColor:"nzColor",nzChecked:[2,"nzChecked","nzChecked",O],nzBordered:[2,"nzBordered","nzBordered",O]},outputs:{nzOnClose:"nzOnClose",nzCheckedChange:"nzCheckedChange"},exportAs:["nzTag"],standalone:!0,features:[je,ke,me],ngContentSelectors:E6e,decls:2,vars:1,consts:[["nz-icon","","nzType","close","class","ant-tag-close-icon","tabindex","-1",3,"click",4,"ngIf"],["nz-icon","","nzType","close","tabindex","-1",1,"ant-tag-close-icon",3,"click"]],template:function(i,o){1&i&&(Et(),bt(0),w(1,k6e,1,0,"span",0)),2&i&&(d(),h("ngIf","closeable"===o.nzMode))},dependencies:[On,cn,Tt],encapsulation:2,changeDetection:0})}return t})(),A6e=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Fv]})}return t})();const O6e=()=>({});function P6e(t,n){1&t&&S(0,"i",40)}function I6e(t,n){if(1&t){const e=U();f(0,"tr",35)(1,"td",18),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g(2).onItemChecked(r.title,o))}),m(),f(2,"td"),S(3,"app-logo",36),m(),f(4,"td"),C(5),m(),f(6,"td"),w(7,P6e,1,0,"i",37),m(),f(8,"td"),C(9),m(),f(10,"td")(11,"a",38),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleEditBtn(r,s))}),C(12),m(),f(13,"a",15),D("nzOnConfirm",function(){const o=T(e).index;return M(g(2).handleConfirmDelOne(o))}),f(14,"a",39),C(15),m()()()()}if(2&t){const e=n.$implicit,i=g(2);d(),h("nzChecked",i.setOfCheckedId.has(e.title)),d(2),h("src",e.icon||"")("name",e.title),d(2),x(e.title),d(2),h("ngIf",e.ownVisible),d(2),x(e.createdAt),d(3),x(i.$t("_edit")),d(),h("nzPopconfirmTitle",i.$t("_delWarn")),d(2),x(i.$t("_del"))}}function N6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title)("nzValue",e.title)}}function V6e(t,n){1&t&&S(0,"i",40)}function F6e(t,n){if(1&t){const e=U();f(0,"tr",35)(1,"td",18),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g(2).onItemChecked(r.title,o))}),m(),f(2,"td"),S(3,"app-logo",36),m(),f(4,"td"),C(5),m(),f(6,"td"),w(7,V6e,1,0,"i",37),m(),f(8,"td"),C(9),m(),f(10,"td")(11,"a",38),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleEditBtn(r,s))}),C(12),m(),f(13,"a",15),D("nzOnConfirm",function(){const o=T(e).index;return M(g(2).handleConfirmDelTwo(o))}),f(14,"a",39),C(15),m()()()()}if(2&t){const e=n.$implicit,i=g(2);d(),h("nzChecked",i.setOfCheckedId.has(e.title||"")),d(2),h("src",e.icon||"")("name",e.title||""),d(2),x(e.title),d(2),h("ngIf",e.ownVisible),d(2),x(e.createdAt),d(3),x(i.$t("_edit")),d(),h("nzPopconfirmTitle",i.$t("_delWarn")),d(2),x(i.$t("_del"))}}function R6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title)("nzValue",e.title)}}function L6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title||"")("nzValue",e.title)}}function H6e(t,n){1&t&&S(0,"i",40)}function B6e(t,n){if(1&t){const e=U();f(0,"tr",35)(1,"td",18),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g(2).onItemChecked(r.title,o))}),m(),f(2,"td"),S(3,"app-logo",36),m(),f(4,"td"),C(5),m(),f(6,"td"),w(7,H6e,1,0,"i",37),m(),f(8,"td"),C(9),m(),f(10,"td")(11,"a",38),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleEditBtn(r,s))}),C(12),m(),f(13,"a",15),D("nzOnConfirm",function(){const o=T(e).index;return M(g(2).handleConfirmDelThree(o))}),f(14,"a",39),C(15),m()()()()}if(2&t){const e=n.$implicit,i=g(2);d(),h("nzChecked",i.setOfCheckedId.has(e.title||"")),d(2),h("src",e.icon||"")("name",e.title||""),d(2),x(e.title),d(2),h("ngIf",e.ownVisible),d(2),x(e.createdAt),d(3),x(i.$t("_edit")),d(),h("nzPopconfirmTitle",i.$t("_delWarn")),d(2),x(i.$t("_del"))}}function j6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title)("nzValue",e.title)}}function $6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title||"")("nzValue",e.title)}}function Y6e(t,n){if(1&t&&S(0,"nz-option",41),2&t){const e=n.$implicit;h("nzLabel",e.title||"")("nzValue",e.title||"")}}function U6e(t,n){1&t&&S(0,"span",48)}function W6e(t,n){if(1&t&&S(0,"app-logo",36),2&t){const e=g().$implicit;h("src",e.icon)("name",e.name)}}function G6e(t,n){if(1&t&&(f(0,"nz-tag",49)(1,"a",50),C(2),m()()),2&t){const e=n.$implicit,i=g().$implicit,o=g(2);h("nzColor",o.tagMap[e]&&o.tagMap[e].color||"#1890ff"),d(),h("href",(null==i.urls?null:i.urls[e])||"javascript:void(0)",Ot)("target",null!=i.urls&&i.urls[e]?"_blank":""),d(),x(o.tagMap[e]&&o.tagMap[e].name)}}function q6e(t,n){1&t&&S(0,"i",40)}function K6e(t,n){if(1&t){const e=U();f(0,"tr",35)(1,"td",18),D("nzCheckedChange",function(o){const r=T(e).$implicit;return M(g(2).onItemChecked(r.name,o))}),m(),f(2,"td",42)(3,"a",38),D("click",function(){const o=T(e).$implicit;return M(g(2).openEditModal(o))}),C(4),m(),f(5,"div")(6,"a",38),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).openMoveWebModal(r,s))}),C(7),m()(),f(8,"a",15),D("nzOnConfirm",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleConfirmDelWebsite(r,s))}),f(9,"a",39),C(10),m()()(),f(11,"td"),w(12,U6e,1,0,"span",43),m(),f(13,"td"),w(14,W6e,1,2,"app-logo",44),m(),f(15,"td")(16,"a",45),C(17),m()(),f(18,"td"),w(19,G6e,3,4,"nz-tag",46),m(),f(20,"td"),w(21,q6e,1,0,"i",37),m(),f(22,"td")(23,"pre",47),C(24),m()(),f(25,"th",34),C(26),m(),f(27,"td"),C(28),m()()}if(2&t){const e=n.$implicit,i=g(2);d(),h("nzChecked",i.setOfCheckedId.has(e.name)),d(3),x(i.$t("_edit")),d(3),x(i.$t("_move")),d(),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),x(i.$t("_del")),d(2),h("ngIf",!1===e.ok),d(2),h("ngIf",e.icon),d(2),h("href",e.url,Ot),d(),x(e.name),d(2),h("ngForOf",i.objectKeys(e.urls||Ti(14,O6e))),d(2),h("ngIf",e.ownVisible),d(3),x(e.desc),d(2),x(e.breadcrumb),d(2),x(e.createdAt)}}function J6e(t,n){if(1&t){const e=U();f(0,"nz-tabset",12),D("nzSelectedIndexChange",function(o){return T(e),M(g().onTabChange(o))}),f(1,"nz-tab",13)(2,"button",14),D("click",function(){return T(e),M(g().toggleCreateModal())}),C(3),m(),f(4,"a",15),D("nzOnConfirm",function(){return T(e),M(g().onBatchDelete(1))}),f(5,"button",16),C(6),m()(),f(7,"nz-table",17,0)(10,"thead")(11,"tr")(12,"th",18),D("nzCheckedChange",function(o){return T(e),M(g().onAllChecked(o,1))}),m(),f(13,"th"),C(14),m(),f(15,"th"),C(16),m(),f(17,"th"),C(18),m(),f(19,"th"),C(20),m(),f(21,"th"),C(22),m()()(),f(23,"tbody",19),D("cdkDropListDropped",function(o){return T(e),M(g().dropOne(o))}),w(24,I6e,16,9,"tr",20),m()()(),f(25,"nz-tab",13)(26,"nz-select",21),D("ngModelChange",function(o){return T(e),M(g().hanldeOneSelect(o))}),w(27,N6e,1,2,"nz-option",22),m(),f(28,"button",23),D("click",function(){return T(e),M(g().toggleCreateModal())}),C(29),m(),f(30,"a",15),D("nzOnConfirm",function(){return T(e),M(g().onBatchDelete(2))}),f(31,"button",16),C(32),m()(),f(33,"nz-table",17,0)(36,"thead")(37,"tr")(38,"th",18),D("nzCheckedChange",function(o){return T(e),M(g().onAllChecked(o,2))}),m(),f(39,"th"),C(40),m(),f(41,"th"),C(42),m(),f(43,"th"),C(44),m(),f(45,"th"),C(46),m(),f(47,"th"),C(48),m()()(),f(49,"tbody",19),D("cdkDropListDropped",function(o){return T(e),M(g().dropTwo(o))}),w(50,F6e,16,9,"tr",20),m()()(),f(51,"nz-tab",13)(52,"nz-select",24),D("ngModelChange",function(o){return T(e),M(g().hanldeOneSelect(o))}),w(53,R6e,1,2,"nz-option",22),m(),f(54,"nz-select",25),D("ngModelChange",function(o){return T(e),M(g().hanldeTwoSelect(o))}),w(55,L6e,1,2,"nz-option",22),m(),f(56,"button",23),D("click",function(){return T(e),M(g().toggleCreateModal())}),C(57),m(),f(58,"a",15),D("nzOnConfirm",function(){return T(e),M(g().onBatchDelete(3))}),f(59,"button",16),C(60),m()(),f(61,"nz-table",17,0)(64,"thead")(65,"tr")(66,"th",18),D("nzCheckedChange",function(o){return T(e),M(g().onAllChecked(o,3))}),m(),f(67,"th"),C(68),m(),f(69,"th"),C(70),m(),f(71,"th"),C(72),m(),f(73,"th"),C(74),m(),f(75,"th"),C(76),m()()(),f(77,"tbody",19),D("cdkDropListDropped",function(o){return T(e),M(g().dropThree(o))}),w(78,B6e,16,9,"tr",20),m()()(),f(79,"nz-tab",13)(80,"nz-select",26),D("ngModelChange",function(o){return T(e),M(g().hanldeOneSelect(o))}),w(81,j6e,1,2,"nz-option",22),m(),f(82,"nz-select",27),D("ngModelChange",function(o){return T(e),M(g().hanldeTwoSelect(o))}),w(83,$6e,1,2,"nz-option",22),m(),f(84,"nz-select",27),D("ngModelChange",function(o){return T(e),M(g().hanldeThreeSelect(o))}),w(85,Y6e,1,2,"nz-option",22),m(),f(86,"button",23),D("click",function(){return T(e),M(g().openCreateWebModal())}),C(87),m(),f(88,"button",23),D("click",function(){return T(e),M(g().getAllErrorWeb())}),C(89," \u68c0\u7d22\u6240\u6709\u5f02\u5e38\u7f51\u7ad9 "),m(),f(90,"a",15),D("nzOnConfirm",function(){return T(e),M(g().onBatchDelete(4))}),f(91,"button",16),C(92),m()(),f(93,"nz-table",17,0)(96,"thead")(97,"tr")(98,"th",28),D("nzCheckedChange",function(o){return T(e),M(g().onAllChecked(o,4))}),m(),f(99,"th",29),C(100),m(),f(101,"th",30),C(102,"\u72b6\u6001"),m(),f(103,"th",31),C(104),m(),f(105,"th",32),C(106),m(),f(107,"th",32),C(108),m(),f(109,"th",33),C(110),m(),f(111,"th",34),C(112),m(),f(113,"th",34),C(114,"\u5206\u7c7b\u4f4d\u7f6e"),m(),f(115,"th"),C(116),m()()(),f(117,"tbody",19),D("cdkDropListDropped",function(o){return T(e),M(g().dropWebsite(o))}),w(118,K6e,29,15,"tr",20),m()()()()}if(2&t){const e=g();h("nzSelectedIndex",e.tabActive),d(),h("nzTitle",e.$t("_mgr1")),d(2),Ce(" ",e.$t("_addTag")," "),d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(),h("disabled",e.setOfCheckedId.size<=0),d(),Ce(" ",e.$t("_batchDel")," "),d(),h("nzData",e.websiteList)("nzShowPagination",!1),d(5),h("nzChecked",e.checkedAll),d(2),x(e.$t("_icon")),d(2),x(e.$t("_tagName")),d(2),x(e.$t("_onlyOwnVisible")),d(2),x(e.$t("_createAt")),d(2),x(e.$t("_action")),d(2),h("ngForOf",e.websiteList),d(),h("nzTitle",e.$t("_mgr2")),d(),h("ngModel",e.oneSelect)("nzPlaceHolder",e.$t("_sel1")),d(),h("ngForOf",e.websiteList),d(2),Ce(" ",e.$t("_addTag")," "),d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(),h("disabled",e.setOfCheckedId.size<=0),d(),Ce(" ",e.$t("_batchDel")," "),d(),h("nzData",e.twoTableData)("nzShowPagination",!1),d(5),h("nzChecked",e.checkedAll),d(2),x(e.$t("_icon")),d(2),x(e.$t("_tagName")),d(2),x(e.$t("_onlyOwnVisible")),d(2),x(e.$t("_createAt")),d(2),x(e.$t("_action")),d(2),h("ngForOf",e.twoTableData),d(),h("nzTitle",e.$t("_mgr3")),d(),h("ngModel",e.oneSelect)("nzPlaceHolder",e.$t("_sel1")),d(),h("ngForOf",e.websiteList),d(),h("ngModel",e.twoSelect)("nzPlaceHolder",e.$t("_sel2")),d(),h("ngForOf",e.twoTableData),d(2),Ce(" ",e.$t("_addTag")," "),d(),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(),h("disabled",e.setOfCheckedId.size<=0),d(),Ce(" ",e.$t("_batchDel")," "),d(),h("nzData",e.threeTableData)("nzShowPagination",!1),d(5),h("nzChecked",e.checkedAll),d(2),x(e.$t("_icon")),d(2),x(e.$t("_tagName")),d(2),x(e.$t("_onlyOwnVisible")),d(2),x(e.$t("_createAt")),d(2),x(e.$t("_action")),d(2),h("ngForOf",e.threeTableData),d(),h("nzTitle",e.$t("_mgrWeb")),d(),h("ngModel",e.oneSelect)("nzPlaceHolder",e.$t("_sel1")),d(),h("ngForOf",e.websiteList),d(),h("ngModel",e.twoSelect)("nzPlaceHolder",e.$t("_sel2")),d(),h("ngForOf",e.twoTableData),d(),h("ngModel",e.threeSelect)("nzPlaceHolder",e.$t("_sel3")),d(),h("ngForOf",e.threeTableData),d(2),Ce(" ",e.$t("_addWeb")," "),d(3),h("nzPopconfirmTitle",e.$t("_confirmDel")),d(),h("disabled",e.setOfCheckedId.size<=0),d(),Ce(" ",e.$t("_batchDel")," "),d(),h("nzData",e.websiteTableData)("nzShowPagination",!1),d(5),h("nzChecked",e.checkedAll),d(2),x(e.$t("_action")),d(4),x(e.$t("_icon")),d(2),x(e.$t("_webName")),d(2),x(e.$t("_webTag")),d(2),x(e.$t("_onlyOwnVisible")),d(2),x(e.$t("_webDesc")),d(4),x(e.$t("_createAt")),d(2),h("ngForOf",e.websiteTableData)}}function Z6e(t,n){if(1&t&&($e(0),f(1,"form",51)(2,"nz-form-item")(3,"nz-form-label",52),C(4,"\u5206\u7c7b\u540d\u79f0"),m(),f(5,"nz-form-control",53),S(6,"input",54),m()(),f(7,"nz-form-item")(8,"nz-form-label",52),C(9),m(),f(10,"nz-form-control",55),S(11,"nz-switch",56),m()(),f(12,"nz-form-item")(13,"nz-form-label",55),C(14,"\u56fe\u6807\u5730\u5740"),m(),f(15,"nz-form-control",55)(16,"nz-input-group"),S(17,"input",57),m()()()(),Ye()),2&t){const e=g();d(),h("formGroup",e.validateForm),d(2),h("nzSpan",6),d(2),h("nzSpan",18)("nzErrorTip",e.$t("_requiredName")),d(),h("placeholder",e.$t("_webTitle"))("maxlength",50),d(2),h("nzSpan",6),d(),x(e.$t("_onlyOwnVisible")),d(),h("nzSpan",18),d(3),h("nzSpan",6),d(2),h("nzSpan",18)}}let Q6e=(()=>{class t{constructor(e,i,o,r){this.fb=e,this.modal=i,this.notification=o,this.message=r,this.$t=_e,this.settings=An,this.websiteList=yn,this.gitRepoUrl=Vs.gitRepoUrl,this.isLogin=Wi,this.showCreateModal=!1,this.syncLoading=!1,this.uploading=!1,this.tabActive=0,this.editIdx=0,this.isEdit=!1,this.oneSelect="",this.twoSelect="",this.threeSelect="",this.tagMap=ju,this.objectKeys=Object.keys,this.twoTableData=[],this.threeTableData=[],this.websiteTableData=[],this.checkedAll=!1,this.setOfCheckedId=new Set,this.validateForm=this.fb.group({title:["",[G7.required]],icon:[""],ownVisible:[!1]})}ngOnInit(){}getAllErrorWeb(){this.oneSelect="",this.twoSelect="",this.threeSelect="",this.onTabChange(),this.websiteTableData=[];const e=[];(function i(o){if(Array.isArray(o))for(let r=0;r{e?this.setOfCheckedId.add(o.title):this.setOfCheckedId.delete(o.title)});break;case 2:this.twoTableData.forEach(o=>{e?this.setOfCheckedId.add(o.title):this.setOfCheckedId.delete(o.title)});break;case 3:this.threeTableData.forEach(o=>{e?this.setOfCheckedId.add(o.title):this.setOfCheckedId.delete(o.title)});break;case 4:this.websiteTableData.forEach(o=>{e?this.setOfCheckedId.add(o.name):this.setOfCheckedId.delete(o.name)})}}onItemChecked(e,i){i?this.setOfCheckedId.add(e):this.setOfCheckedId.delete(e)}onBatchDelete(e){switch(e){case 1:this.setOfCheckedId.forEach(i=>{const o=this.websiteList.findIndex(r=>r.title===i);o>=0&&this.websiteList.splice(o,1)});break;case 2:{this.twoTableData=this.twoTableData.filter(o=>!this.setOfCheckedId.has(o.title));const i=this.websiteList.findIndex(o=>o.title===this.oneSelect);i>=0&&(this.websiteList[i].nav=this.twoTableData)}break;case 3:{this.threeTableData=this.threeTableData.filter(o=>!this.setOfCheckedId.has(o.title));const i=this.websiteList.findIndex(o=>o.title===this.oneSelect);if(i>=0){const o=this.websiteList[i].nav.findIndex(r=>r.title===this.twoSelect);o>=0&&(this.websiteList[i].nav[o].nav=this.threeTableData)}}break;case 4:{const i=[];this.websiteTableData=this.websiteTableData.filter(o=>{const r=!this.setOfCheckedId.has(o.name);return r||i.push(o),r}),i.forEach(o=>{M5({...o,name:fs(o.name),desc:fs(o.desc)})}),this.message.success(_e("_delSuccess"))}}this.onTabChange(),Yn(this.websiteList)}handleReset(){this.modal.info({nzTitle:_e("_resetInitData"),nzContent:_e("_warnReset"),nzOnOk:()=>{this.message.success(_e("_actionSuccess")),window.localStorage.removeItem(Ui.website),window.localStorage.removeItem(Ui.s_url),setTimeout(()=>{window.location.reload()},500)}})}handleDownloadBackup(){const e=JSON.stringify(this.websiteList),i=new Blob([e],{type:"text/plain;charset=utf-8"});(0,q3e.saveAs)(i,"db.json")}handleUploadBackup(e){const i=this,o=e.target.files;if(o.length<=0)return;const r=o[0],s=new FileReader;s.readAsText(r),s.onload=function(a){try{const{result:c}=a.target;i.websiteList=JSON.parse(c),Yn(i.websiteList),e.target.value="",i.message.success(_e("_actionSuccess"))}catch(c){i.notification.error(_e("_error"),c.message)}}}goBack(){history.go(-1)}openMoveWebModal(e,i){const o=this.websiteList.findIndex(a=>a.title===this.oneSelect),r=this.twoTableData.findIndex(a=>a.title===this.twoSelect),s=this.threeTableData.findIndex(a=>a.title===this.threeSelect);Ei.emit("MOVE_WEB",{indexs:[o,r,s,i],data:[e]})}openCreateWebModal(){if(3===this.tabActive&&!this.threeSelect)return this.message.error(_e("_sel3"));const e=this.websiteList.findIndex(r=>r.title===this.oneSelect),i=this.twoTableData.findIndex(r=>r.title===this.twoSelect),o=this.threeTableData.findIndex(r=>r.title===this.threeSelect);Ei.emit("CREATE_WEB",{oneIndex:e,twoIndex:i,threeIndex:o})}openEditModal(e){Ei.emit("CREATE_WEB",{detail:e})}toggleCreateModal(){if(!this.showCreateModal){if(1===this.tabActive&&!this.oneSelect)return this.message.error(_e("_sel1"));if(2===this.tabActive&&!this.twoSelect)return this.message.error(_e("_sel2"))}this.isEdit=!1,this.showCreateModal=!this.showCreateModal,this.validateForm.reset()}onTabChange(e){this.tabActive=e??this.tabActive,this.setOfCheckedId.clear(),this.checkedAll||setTimeout(()=>{this.checkedAll=!this.checkedAll,setTimeout(()=>{this.checkedAll=!this.checkedAll})})}handleConfirmDelOne(e){this.websiteList.splice(e,1),this.message.success(_e("_delSuccess")),Yn(this.websiteList)}dropOne(e){xc(this.websiteList,e.previousIndex,e.currentIndex),Yn(this.websiteList)}dropTwo(e){xc(this.twoTableData,e.previousIndex,e.currentIndex),Yn(this.websiteList)}handleConfirmDelTwo(e){this.twoTableData.splice(e,1),this.message.success(_e("_delSuccess")),Yn(this.websiteList)}dropThree(e){xc(this.threeTableData,e.previousIndex,e.currentIndex),Yn(this.websiteList)}handleConfirmDelThree(e){this.threeTableData.splice(e,1),this.message.success(_e("_delSuccess")),Yn(this.websiteList)}dropWebsite(e){xc(this.websiteTableData,e.previousIndex,e.currentIndex),Yn(this.websiteList)}handleConfirmDelWebsite(e,i){this.websiteTableData.splice(i,1),M5({...e,name:fs(e.name),desc:fs(e.desc)}),this.message.success(_e("_delSuccess"))}hanldeOneSelect(e){this.oneSelect=e;const i=this.websiteList.find(o=>o.title===e);i&&(this.twoTableData=i.nav),this.twoSelect="",this.threeSelect="",this.onTabChange()}hanldeTwoSelect(e){this.twoSelect=e;const i=this.twoTableData.find(o=>o.title===e);i&&(this.threeTableData=i.nav),this.threeSelect="",this.onTabChange()}hanldeThreeSelect(e){this.threeSelect=e;const i=this.threeTableData.find(o=>o.title===e);i&&(this.websiteTableData=i.nav),this.onTabChange()}handleEditBtn(e,i){let{title:o,icon:r,name:s,ownVisible:a}=e;this.toggleCreateModal(),this.isEdit=!0,this.editIdx=i,this.validateForm.get("title").setValue(o||s||""),this.validateForm.get("icon").setValue(r||""),this.validateForm.get("ownVisible").setValue(!!a)}handleSync(){this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{this.syncLoading=!0,vc({message:"update db",content:JSON.stringify(this.websiteList),path:$g}).then(()=>{this.message.success(_e("_syncSuccessTip"))}).finally(()=>{this.syncLoading=!1})}})}handleOk(){const e=(new Date).toString();for(const s in this.validateForm.controls)this.validateForm.controls[s].markAsDirty(),this.validateForm.controls[s].updateValueAndValidity();let{title:i,icon:o,ownVisible:r}=this.validateForm.value;if(i&&i.trim()){if(i=i.trim(),this.isEdit){switch(this.tabActive){case 0:if(this.websiteList.some(a=>a.title===i)&&this.websiteList[this.editIdx].title!==i)return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.websiteList[this.editIdx].title=i,this.websiteList[this.editIdx].icon=o,this.websiteList[this.editIdx].ownVisible=r;break;case 1:if(this.twoTableData.some(a=>a.title===i)&&this.twoTableData[this.editIdx].title!==i)return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.twoTableData[this.editIdx].title=i,this.twoTableData[this.editIdx].icon=o,this.twoTableData[this.editIdx].ownVisible=r;break;case 2:if(this.threeTableData.some(a=>a.title===i)&&this.threeTableData[this.editIdx].title!==i)return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.threeTableData[this.editIdx].title=i,this.threeTableData[this.editIdx].icon=o,this.threeTableData[this.editIdx].ownVisible=r}this.message.success(_e("_saveSuccess"))}else{switch(this.tabActive){case 0:if(this.websiteList.some(a=>a.title===i))return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.websiteList.unshift({createdAt:e,title:i,icon:o,ownVisible:r,nav:[]});break;case 1:if(this.twoTableData.some(a=>a.title===i))return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.twoTableData.unshift({createdAt:e,title:i,icon:o,ownVisible:r,nav:[]});break;case 2:if(this.threeTableData.some(a=>a.title===i))return this.message.error(`${_e("_repeatAdd")} "${i}"`);this.threeTableData.unshift({createdAt:e,title:i,icon:o,ownVisible:r,nav:[]})}this.message.success(_e("_addSuccess"))}this.validateForm.reset(),this.toggleCreateModal(),Yn(this.websiteList)}else this.message.error("\u5206\u7c7b\u540d\u79f0\u4e0d\u80fd\u4e3a\u7a7a")}static#e=this.\u0275fac=function(i){return new(i||t)(v(fv),v(za),v(P6),v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-admin"]],decls:18,vars:11,consts:[["rowSelectionTable","","basicTable",""],[1,"admin"],["nz-button","","nzType","primary",3,"click","nzLoading"],["nz-button","",2,"margin","0 15px 20px 15px",3,"click"],["nz-button","",2,"margin-right","15px",3,"click"],["id","file2"],["nz-button","","nz-tooltip","",3,"nzTooltipTitle"],["type","file","name","file2","accept",".json",1,"file-upload",3,"change"],[1,"tip2"],[3,"nzSelectedIndex","nzSelectedIndexChange",4,"ngIf"],[3,"nzVisibleChange","nzOnCancel","nzOnOk","nzVisible","nzTitle"],[4,"nzModalContent"],[3,"nzSelectedIndexChange","nzSelectedIndex"],[3,"nzTitle"],["nz-button","","nzType","primary",3,"click"],["nz-popconfirm","","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"],["nz-button","","nzDanger","",1,"ml10",3,"disabled"],[2,"margin-top","15px",3,"nzData","nzShowPagination"],[3,"nzCheckedChange","nzChecked"],["cdkDropList","",3,"cdkDropListDropped"],["cdkDrag","",4,"ngFor","ngForOf"],["nzShowSearch","",2,"width","260px",3,"ngModelChange","ngModel","nzPlaceHolder"],[3,"nzLabel","nzValue",4,"ngFor","ngForOf"],["nz-button","","nzType","primary",2,"margin-left","20px",3,"click"],["nzShowSearch","",2,"width","200px",3,"ngModelChange","ngModel","nzPlaceHolder"],["nzShowSearch","",2,"width","200px","margin-left","15px",3,"ngModelChange","ngModel","nzPlaceHolder"],["nzShowSearch","",2,"width","150px",3,"ngModelChange","ngModel","nzPlaceHolder"],["nzShowSearch","",2,"width","150px","margin-left","15px",3,"ngModelChange","ngModel","nzPlaceHolder"],["nzWidth","70px",3,"nzCheckedChange","nzChecked"],["nzWidth","60px",1,"center"],["nzWidth","70px"],["nzWidth","80px"],["nzWidth","100px"],["nzWidth","120px"],["nzWidth","300px"],["cdkDrag",""],[3,"src","name"],["nz-icon","","nzType","check","nzTheme","outline",4,"ngIf"],[3,"click"],["nz-button","","nzType","link","nzDanger",""],["nz-icon","","nzType","check","nzTheme","outline"],[3,"nzLabel","nzValue"],[1,"center"],["nz-icon","","nzType","close","nzTheme","outline","style","color: red",4,"ngIf"],[3,"src","name",4,"ngIf"],["target","_blank",3,"href"],["style","margin-bottom: 5px",3,"nzColor",4,"ngFor","ngForOf"],[1,"desc"],["nz-icon","","nzType","close","nzTheme","outline",2,"color","red"],[2,"margin-bottom","5px",3,"nzColor"],[3,"href","target"],["nz-form","",3,"formGroup"],["nzRequired","",3,"nzSpan"],[3,"nzSpan","nzErrorTip"],["formControlName","title","nz-input","",3,"placeholder","maxlength"],[3,"nzSpan"],["formControlName","ownVisible"],["formControlName","icon","nz-input","","placeholder","\u7528\u4e8e\u67d0\u4e9b\u4e3b\u9898icon"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"button",2),D("click",function(){return o.handleSync()}),C(2),m(),f(3,"button",3),D("click",function(){return o.handleReset()}),C(4),m(),f(5,"button",4),D("click",function(){return o.handleDownloadBackup()}),C(6),m(),f(7,"label",5)(8,"button",6),C(9),m(),f(10,"input",7),D("change",function(s){return o.handleUploadBackup(s)}),m()(),f(11,"div",8),C(12),f(13,"span"),C(14),m()(),w(15,J6e,119,77,"nz-tabset",9),m(),f(16,"nz-modal",10),Oi("nzVisibleChange",function(s){return Yi(o.showCreateModal,s)||(o.showCreateModal=s),s}),D("nzOnCancel",function(){return o.toggleCreateModal()})("nzOnOk",function(){return o.handleOk()}),w(17,Z6e,18,11,"ng-container",11),m()),2&i&&(d(),h("nzLoading",o.syncLoading),d(),Ce(" ",o.$t("_save")," "),d(2),Ce(" ",o.$t("_resetInitData")," "),d(2),Ce(" ",o.$t("_backup")," "),d(2),h("nzTooltipTitle",o.$t("_importBackupTip")),d(),Ce(" ",o.$t("_importBackup")," "),d(3),Ce(" ",o.$t("_dragSort"),"\uff1b "),d(2),Ce("\u4e0a\u6b21\u68c0\u6d4b\u51fa ",o.settings.errorUrlCount||0," \u4e2a\u7f51\u7ad9\u94fe\u63a5\u5931\u6548\uff0c\u5177\u4f53\u5230\u7ba1\u7406\u7f51\u7ad9\u67e5\u770b\uff0c\u5982\u9700\u518d\u6b21\u68c0\u6d4b\u72b6\u6001\u76f4\u63a5\u70b9\u4fdd\u5b58\u89e6\u53d1\u4e8b\u4ef6\u5373\u53ef\u3002"),d(),h("ngIf",o.isLogin),d(),Ai("nzVisible",o.showCreateModal),h("nzTitle",o.$t(o.isEdit?"_edit":"_add")))},dependencies:[zn,Tt,c6,y2,Ws,x6,Nc,Vc,x1,Cc,F2,V6,R6,F6,nr,mi,tr,T6,Cr,Qi,g6,P2,R1,L1,B1,Ta,cn,Y1,N2,$1,oI,V2,Bc,U1,sI,Vv,Nv,Fv,N6,o6,_2,Xi,Fc],styles:[".desc[_ngcontent-%COMP%]{width:300px;white-space:pre-wrap;word-break:break-all}#file2[_ngcontent-%COMP%]{position:relative;cursor:pointer}#file2[_ngcontent-%COMP%] .file-upload[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.tip2[_ngcontent-%COMP%]{color:#f50;font-weight:700}.admin[_ngcontent-%COMP%] .ant-table{max-height:600px;overflow:auto}"]})}return t})(),X6e=(()=>{class t{constructor(){this.$t=_e}ngOnInit(){}submitForm(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["system-angle-mark"]],decls:1,vars:0,consts:[[1,"angle-mark"]],template:function(i,o){1&i&&S(0,"div",0)}})}return t})();function epe(t,n){if(1&t&&(f(0,"p"),C(1),m(),C(2)),2&t){const e=g().$implicit;d(),x(e.__name__||e.name),d(),Ce(" ",e.__desc__||e.desc," ")}}function tpe(t,n){if(1&t){const e=U();f(0,"div",4),D("click",function(){const o=T(e).$implicit;return M(g(2).goUrl(o.url))}),w(1,epe,3,2,"ng-template",null,0,ot),f(3,"div",5),S(4,"app-logo",6),m(),S(5,"div",7),m()}if(2&t){const e=n.$implicit;h("nzTooltipTitle",He(2)),d(4),h("src",e.icon||"")("name",e.__name__||e.name)("size",35),d(),h("innerHTML",e.__name__||e.name,Wn)}}function npe(t,n){if(1&t){const e=U();f(0,"div",2),D("cdkDropListDropped",function(o){return T(e),M(g().handleDrop(o))}),w(1,tpe,6,5,"div",3),m()}if(2&t){const e=g();d(),h("ngForOf",e.dataList)("ngForTrackBy",e.trackByItemWeb)}}let TI=[],MI=(()=>{class t{constructor(e){this.activatedRoute=e,this.max=110,this.search=!0,this.websiteList=yn,this.dataList=[]}ngOnInit(){this.getTopWeb(),this.activatedRoute.queryParams.subscribe(()=>{const{q:e}=pi(),i=S1(this.websiteList,e);this.dataList=this.search&&e.trim()?0===i.length?[]:i[0].nav.slice(0,this.max):TI,Yn(this.websiteList)})}getTopWeb(){const e=[],i=this.max;(function o(r){if(Array.isArray(r))for(let s=0;si);s++){const a=r[s];a.url?a.top&&(Wi||!a.ownVisible)&&e.push(a):o(a.nav)}})(yn),this.dataList=e.sort((r,s)=>r.index-s.index),TI=this.dataList}handleDrop(e){xc(this.dataList,e.previousIndex,e.currentIndex);const i={};for(let r=1;r<=this.dataList.length;r++){const s=this.dataList[r-1];i[`${s.name}${s.url}`]=r}(function o(r){if(Array.isArray(r))for(let s=0;s0)},dependencies:[zn,Tt,mi,Ta,o6,_2,Fc],styles:[".container[_ngcontent-%COMP%]{margin-top:15px;margin-bottom:15px;display:flex;padding:0 30px;max-width:960px;flex-wrap:wrap;gap:25px}.container[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{display:flex;text-align:center;cursor:pointer;align-items:center;flex-direction:column;transition:transform .1s ease-in}.container[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]:hover{transform:translateY(-2px)}.container[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{border-radius:50%;margin-bottom:3px}.container[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{width:60px;margin-top:5px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"]})}return t})();const ipe=()=>[16,16],ope=(t,n,e,i)=>[t,n,e,i];function rpe(t,n){1&t&&S(0,"img",21),2&t&&h("src",g(2).$implicit.icon,Ot)}function spe(t,n){if(1&t&&(w(0,rpe,1,1,"img",19),f(1,"span",20),C(2),m()),2&t){const e=g().$implicit;h("ngIf",e.icon),d(2),x(e.title)}}function ape(t,n){1&t&&S(0,"img",25),2&t&&h("src",g().$implicit.icon,Ot)}function cpe(t,n){if(1&t){const e=U();f(0,"div",26),D("click",function(o){return T(e),M(g(3).onCollapseAll(o))}),S(1,"i",27),m()}if(2&t){const e=g(3);d(),Q("active",e.collapsed())}}function lpe(t,n){if(1&t){const e=U();f(0,"li",22),D("click",function(){const o=T(e).index,r=g().index;return M(g().handleSidebarNav(r,o))}),w(1,ape,1,1,"img",23),f(2,"span"),C(3),m(),w(4,cpe,2,2,"div",24),m()}if(2&t){const e=n.$implicit,i=n.index,o=g().index,r=g();h("nzSelected",r.page===o&&r.id===i),d(),h("ngIf",e.icon),d(2),x(e.title),d(),h("ngIf",r.page===o&&r.id===i)}}function dpe(t,n){if(1&t){const e=U();f(0,"li",17),D("nzOpenChange",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g().openMenu(r,s))}),w(1,spe,3,2,"ng-template",null,1,ot),f(3,"ul"),w(4,lpe,5,4,"li",18),m()()}if(2&t){const e=n.$implicit,i=He(2),o=g();h("nzTitle",i)("nzOpen",e.collapsed),d(4),h("ngForOf",e.nav)("ngForTrackBy",o.trackByItem)}}function upe(t,n){if(1&t&&(f(0,"div",28),S(1,"app-swiper",29)(2,"app-search-engine",30),m()),2&t){const e=g();d(),h("images",e.settings.sideThemeImages)("autoplay",e.settings.sideThemeAutoplay)("height",e.settings.sideThemeHeight)}}function hpe(t,n){if(1&t&&(f(0,"div",36),S(1,"app-card",37),m()),2&t){const e=n.$implicit,i=n.index,o=g().index,r=g(2);h("nzSpan",6)("nzXs",24)("nzSm",12)("nzMd",12)("nzLg",8)("nzXl",6)("nzXXl","example"===r.settings.sideCardStyle?4:6),d(),h("cardStyle",r.settings.sideCardStyle)("dataSource",e)("indexs",nu(11,ope,r.page,r.id,o,i))("searchKeyword",r.searchKeyword)}}function ppe(t,n){if(1&t){const e=U();f(0,"div")(1,"div",32)(2,"app-toolbar-title",33),D("onCollapse",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).onCollapse(r,s))}),m(),f(3,"div",34),w(4,hpe,2,16,"div",35),m()()()}if(2&t){const e=n.$implicit,i=n.index,o=g(2);d(2),h("dataSource",e)("index",i),d(),Lt("display",e.collapsed?"none":""),h("nzGutter",Ti(7,ipe)),d(),h("ngForOf",e.nav)("ngForTrackBy",o.trackByItemWeb)}}function fpe(t,n){if(1&t&&(f(0,"div"),w(1,ppe,5,8,"div",31),m()),2&t){const e=g();d(),h("ngForOf",e.currentList.slice(0,e.sliceMax))("ngForTrackBy",e.trackByItem)}}function mpe(t,n){1&t&&S(0,"app-no-data")}let gpe=(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.LOGO_CDN=An.favicon,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.title=An.title.trim().split(/\s/)[0],this.searchEngineList=x5,this.isLogin=Wi,this.settings=An,this.sliceMax=1,this.searchKeyword="",this.onCollapse=(o,r)=>{o.collapsed=!o.collapsed,this.websiteList[this.page].nav[this.id].nav[r]=o,Yn(this.websiteList)},this.onCollapseAll=o=>{o?.stopPropagation(),z5(this.websiteList),this.handlePositionTop()}}ngOnInit(){this.activatedRoute.queryParams.subscribe(()=>{const{id:e,page:i,q:o}=pi();this.page=i,this.id=e,this.searchKeyword=o,this.sliceMax=1,this.currentList=o?S1(this.websiteList,o):Bu(),setTimeout(()=>{this.sliceMax=Number.MAX_SAFE_INTEGER},25)})}handleSidebarNav(e,i){this.websiteList[e].id=i,this.router.navigate([this.router.url.split("?")[0]],{queryParams:{page:e,id:i}}),this.handlePositionTop()}handlePositionTop(){setTimeout(()=>{const e=document.querySelector(".search-header");e&&window.scroll({top:e.offsetHeight,left:0,behavior:"smooth"})},30)}openMenu(e,i){this.websiteList.forEach((o,r)=>{o.collapsed=r===i&&!o.collapsed}),Yn(this.websiteList)}collapsed(){try{return!!yn[this.page].nav[this.id].collapsed}catch{return!1}}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-side"]],decls:19,vars:9,consts:[["noData",""],["titleTpl",""],[1,"layout"],[1,"logo","dark-bg"],[1,"logo-img",3,"src"],[1,"web-title"],["nz-menu","","nzMode","inline",1,"sider","dark-scrollbar"],["nz-submenu","",3,"nzTitle","nzOpen","nzOpenChange",4,"ngFor","ngForOf","ngForTrackBy"],[1,"inner-layout"],["class","search-header",4,"ngIf"],[1,"hidden","search-sm","mobile-search"],["id","content",1,"content"],[3,"search"],[1,"box"],[4,"ngIf","ngIfElse"],["className","side-footer"],[3,"onCollapse","collapsed"],["nz-submenu","",3,"nzOpenChange","nzTitle","nzOpen"],["nz-menu-item","",3,"nzSelected","click",4,"ngFor","ngForOf","ngForTrackBy"],["class","sideicon",3,"src",4,"ngIf"],[1,"menu-title","ellipsis"],[1,"sideicon",3,"src"],["nz-menu-item","",3,"click","nzSelected"],["class","sideicon fixicon",3,"src",4,"ngIf"],["class","collapse-wrapper",3,"click",4,"ngIf"],[1,"sideicon","fixicon",3,"src"],[1,"collapse-wrapper",3,"click"],[1,"iconfont","iconweibiaoti25","collapse"],[1,"search-header"],[3,"images","autoplay","height"],[1,"max768none"],[4,"ngFor","ngForOf","ngForTrackBy"],[1,"nav-wrapper"],["arrowType","2",3,"onCollapse","dataSource","index"],["nz-row","",3,"nzGutter"],["class","gutter-row","nz-col","",3,"nzSpan","nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl",4,"ngFor","ngForOf","ngForTrackBy"],["nz-col","",1,"gutter-row",3,"nzSpan","nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl"],[1,"column-border",3,"cardStyle","dataSource","indexs","searchKeyword"]],template:function(i,o){if(1&i){const r=U();f(0,"nz-layout",2)(1,"nz-layout")(2,"div",3),S(3,"img",4),f(4,"span",5),C(5),m()(),f(6,"ul",6),w(7,dpe,5,4,"li",7),m(),f(8,"nz-layout",8),w(9,upe,3,3,"div",9),S(10,"app-search-engine",10),f(11,"nz-content",11),S(12,"app-web-list",12),f(13,"div",13),w(14,fpe,2,2,"div",14)(15,mpe,1,0,"ng-template",null,0,ot),m(),S(17,"app-footer",15),m()()()(),f(18,"app-fixbar",16),D("onCollapse",function(a){return T(r),M(o.onCollapseAll(a))}),m()}if(2&i){const r=He(16);d(3),h("src",o.LOGO_CDN,Ot),d(2),x(o.settings.sideTitle||o.title),d(2),h("ngForOf",o.websiteList)("ngForTrackBy",o.trackByItem),d(2),h("ngIf",o.settings.sideThemeImages.length>0),d(3),h("search",!1),d(2),h("ngIf",o.currentList.length>0)("ngIfElse",r),d(4),h("collapsed",o.collapsed())}},dependencies:[zn,Tt,x1,Cc,mi,Sa,Us,l6,VP,IP,PP,z2,S2,h6,H1,vv,MI,k6],styles:["@media (max-width: 768px){.search-sm[_ngcontent-%COMP%]{display:block;margin-top:10px}.content[_ngcontent-%COMP%]{padding-right:12px!important}.layout[_ngcontent-%COMP%]{--sideWidth: 150px !important}.sider[_ngcontent-%COMP%]{--menuTitleWidth: 85px;padding-top:40px!important}.logo-img[_ngcontent-%COMP%]{width:30px!important;height:30px!important}.web-title[_ngcontent-%COMP%]{font-size:14px!important}}@media (max-width: 568px){.layout[_ngcontent-%COMP%]{--sideWidth: 120px !important}.sider[_ngcontent-%COMP%]{--menuTitleWidth: 70px;padding-top:40px!important}}.layout[_ngcontent-%COMP%]{--sideWidth: 200px;min-height:100vh}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%]{margin-left:var(--sideWidth)}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:10px 70px 0 20px;display:flex;flex-direction:column}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%] .search-header[_ngcontent-%COMP%]{z-index:9;position:relative;text-align:center}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%] .search-header[_ngcontent-%COMP%] .search-engine{z-index:10;position:absolute;top:50%;left:50%;margin-top:-20px;transform:translate(-50%,-50%)}.layout[_ngcontent-%COMP%] .inner-layout[_ngcontent-%COMP%] .search-header[_ngcontent-%COMP%] .search-engine .input-wrapper{width:330px!important}.layout[_ngcontent-%COMP%] .box[_ngcontent-%COMP%]{flex:1;transition:.1s linear}.layout[_ngcontent-%COMP%] .collapse-wrapper[_ngcontent-%COMP%]{position:absolute;right:0;top:0;padding:0 15px}.layout[_ngcontent-%COMP%] .collapse-wrapper[_ngcontent-%COMP%] .collapse[_ngcontent-%COMP%]{display:block;transform:rotate(-270deg)}.layout[_ngcontent-%COMP%] .collapse-wrapper[_ngcontent-%COMP%] .collapse.active[_ngcontent-%COMP%]{transform:rotate(-360deg)}.layout[_ngcontent-%COMP%] .ant-menu-item[_ngcontent-%COMP%]{padding-right:40px}.layout[_ngcontent-%COMP%] .web-list{max-width:100%!important}.layout[_ngcontent-%COMP%] .mobile-search .engine-main{max-width:95%!important}.logo[_ngcontent-%COMP%]{z-index:11;position:fixed;top:0;left:0;width:var(--sideWidth);padding:10px 10px 10px 15px;background-color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo[_ngcontent-%COMP%] .logo-img[_ngcontent-%COMP%]{width:50px;height:50px;pointer-events:none}.logo[_ngcontent-%COMP%] .web-title[_ngcontent-%COMP%]{font-weight:500;font-size:18px;margin-left:10px;vertical-align:middle}.sider[_ngcontent-%COMP%]{position:fixed;height:100vh;left:0;overflow:auto;width:var(--sideWidth);padding-top:70px}.sider[_ngcontent-%COMP%] .sideicon[_ngcontent-%COMP%]{width:20px;height:20px;margin-right:12px;object-fit:cover;border-radius:50%}.sider[_ngcontent-%COMP%] .fixicon[_ngcontent-%COMP%]{position:absolute;top:10px;left:25px;margin-right:0}.sider[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px;height:6px}.sider[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:3px}.sider[_ngcontent-%COMP%]::-webkit-scrollbar-track{background-color:#ffffff26;border-radius:3px}.sider[_ngcontent-%COMP%] .menu-title[_ngcontent-%COMP%]{max-width:var(--menuTitleWidth, 130px)} #app-footer{margin-top:45px} #app-footer, #app-footer .copyright{margin-bottom:10px;color:#666}"]})}return t})();const vpe=t=>({"background-image":t}),_pe=t=>({color:t});function bpe(t,n){1&t&&S(0,"iframe",6)}function ype(t,n){1&t&&S(0,"iframe",7)}function Cpe(t,n){if(1&t&&(f(0,"div"),w(1,bpe,1,0,"iframe",5)(2,ype,1,0,"ng-template",null,0,ot),m()),2&t){const e=He(3),i=g();d(),h("ngIf",i.isDark||i.shortcutThemeImage)("ngIfElse",e)}}let wpe=(()=>{class t{constructor(){this.settings=An,this.isDark=u3(),this.shortcutThemeImage=An.shortcutThemeImages?.[0]?.src,Ei.on("EVENT_DARK",e=>{this.isDark=e})}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-shortcut"]],decls:8,vars:11,consts:[["other_content",""],[1,"shortcut","dark-bg-gary2",3,"ngStyle"],[1,"title","dark-white",3,"ngStyle"],[3,"showCollapse"],[4,"ngIf"],["class","tianqi","allowtransparency","true","frameborder","0","width","290","height","96","scrolling","no","src","//tianqi.2345.com/plugin/widget/index.htm?s=1&z=1&t=0&v=0&d=2&bd=0&k=&f=ffffff<f=009944&htf=cc0000&q=1&e=1&a=1&c=54511&w=290&h=96&align=center",4,"ngIf","ngIfElse"],["allowtransparency","true","frameborder","0","width","290","height","96","scrolling","no","src",O8`//tianqi.2345.com/plugin/widget/index.htm?s=1&z=1&t=0&v=0&d=2&bd=0&k=&f=ffffff<f=009944&htf=cc0000&q=1&e=1&a=1&c=54511&w=290&h=96&align=center`,1,"tianqi"],["allowtransparency","true","frameborder","0","width","290","height","96","scrolling","no","src",O8`//tianqi.2345.com/plugin/widget/index.htm?s=1&z=1&t=0&v=0&d=2&bd=0&k=&f=<f=009944&htf=cc0000&q=1&e=1&a=1&c=54511&w=290&h=96&align=center`,1,"tianqi"]],template:function(i,o){1&i&&(f(0,"div",1)(1,"div")(2,"h1",2),C(3),m(),S(4,"app-search-engine")(5,"app-web-list"),m()(),S(6,"app-fixbar",3),w(7,Cpe,4,2,"div",4)),2&i&&(h("ngStyle",mr(7,vpe,"url("+o.shortcutThemeImage+")")),d(2),Q("color-black",!o.shortcutThemeImage),h("ngStyle",mr(9,_pe,o.shortcutThemeImage?"#fff":"")),d(),Ce(" ",o.settings.shortcutTitle||o.settings.title," "),d(3),h("showCollapse",!1),d(),h("ngIf",o.settings.shortcutThemeShowWeather))},dependencies:[Tt,ti,z2,H1,MI],styles:[".shortcut[_ngcontent-%COMP%]{position:fixed;inset:0;display:flex;justify-content:center;padding-top:150px;text-align:center;background-color:#00000005;background-repeat:no-repeat;background-size:cover;background-position:center}.shortcut[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:30px;font-weight:700}.shortcut[_ngcontent-%COMP%] .name{color:#fff!important}.tianqi[_ngcontent-%COMP%]{position:fixed;top:0;right:100px}"]})}return t})();const zpe=()=>({});function Spe(t,n){if(1&t){const e=U();f(0,"div",4)(1,"input",5),Oi("ngModelChange",function(o){T(e);const r=g();return Yi(r.authCode,o)||(r.authCode=o),M(o)}),m(),f(2,"button",6),D("click",function(){return T(e),M(g().handleSubmitAuthCode())}),C(3),m(),f(4,"div",7)(5,"p"),C(6),m(),f(7,"p"),C(8," \u53d1\u9001\u5230: xjh22222228@gmail.com \uff08\u5907\u6ce8\u5f00\u901a\u57df\u540d\uff0c\u652f\u4ed8\u6e20\u9053\u548c\u652f\u4ed8\u65f6\u95f4\uff0c\u6211\u4eec\u4f1a\u572824\u5c0f\u65f6\u5185\u53d1\u9001\u6388\u6743\u7801\u7ed9\u60a8\u90ae\u7bb1\uff09 "),m(),f(9,"p"),C(10,"\u4e00\u4e2a\u6388\u6743\u7801\u53ea\u7ed1\u5b9a\u4e00\u4e2a\u5168\u7ad9\u57df\u540d"),m(),S(11,"img",8),m()()}if(2&t){const e=g();d(),h("placeholder",e.$t("_inputAuthCode")),Ai("ngModel",e.authCode),d(),h("nzLoading",e.submitting),d(),Ce(" ",e.$t("_save")," "),d(3),x(e.$t("_payTip"))}}function Tpe(t,n){if(1&t&&S(0,"app-logo",24),2&t){const e=g().$implicit;h("src",e.icon)("name",e.name)}}function Mpe(t,n){if(1&t&&(f(0,"nz-tag",25)(1,"a",26),C(2),m()()),2&t){const e=n.$implicit,i=g().$implicit,o=g(2);h("nzColor",o.tagMap[e]&&o.tagMap[e].color||"#1890ff"),d(),h("href",(null==i.urls?null:i.urls[e])||"javascript:void(0)",Ot)("target",null!=i.urls&&i.urls[e]?"_blank":""),d(),x(o.tagMap[e]&&o.tagMap[e].name)}}function Dpe(t,n){if(1&t&&(f(0,"td",15),C(1),m()),2&t){const e=g().$implicit;d(),sm(" ",e.extra.oneName," / ",e.extra.twoName," / ",e.extra.threeName," ")}}function xpe(t,n){if(1&t){const e=U();f(0,"tr")(1,"td")(2,"div")(3,"a",17),D("click",function(){const o=T(e),r=o.$implicit,s=o.index;return M(g(2).handleConfirmGet(r,s))}),C(4),m()(),f(5,"div",7)(6,"a",18),D("nzOnConfirm",function(){const o=T(e).index;return M(g(2).handleDelete(o))}),f(7,"b"),C(8),m()()()(),f(9,"td"),w(10,Tpe,1,2,"app-logo",19),m(),f(11,"td")(12,"a",20),C(13),m()(),f(14,"td"),w(15,Mpe,3,4,"nz-tag",21),m(),f(16,"td")(17,"pre",22),C(18),m()(),w(19,Dpe,2,3,"td",23),f(20,"td"),C(21),m()()}if(2&t){const e=n.$implicit,i=g(2);d(4),x(i.$t("_collect")),d(2),h("nzPopconfirmTitle",i.$t("_confirmDel")),d(2),x(i.$t("_del")),d(2),h("ngIf",e.icon),d(2),h("href",e.url,Ot),d(),x(e.name),d(2),h("ngForOf",i.objectKeys(e.urls||Ti(10,zpe))),d(3),x(e.desc),d(),h("ngIf",e.extra),d(2),x(e.createdAt)}}function Epe(t,n){if(1&t){const e=U();f(0,"div")(1,"button",6),D("click",function(){return T(e),M(g().handleSubmit())}),C(2),m(),f(3,"button",9),D("click",function(){return T(e),M(g().logoutAuthCode())}),C(4),m(),f(5,"button",10),D("click",function(){return T(e),M(g().getUserCollect())}),C(6),m(),f(7,"div",11)(8,"b"),C(9,"\u5904\u7406\u5b8c\u6210\u6240\u6709\u6570\u636e\u540e\u9700\u8981\u70b9\u51fb\u4e00\u6b21\u4fdd\u5b58\u65b9\u53ef\u751f\u6548"),m()(),f(10,"nz-table",12,0)(12,"thead")(13,"tr")(14,"th",13),C(15),m(),f(16,"th",13),C(17),m(),f(18,"th",14),C(19),m(),f(20,"th",14),C(21),m(),f(22,"th",15),C(23),m(),f(24,"th",15),C(25,"\u5206\u7c7b\u4f4d\u7f6e"),m(),f(26,"th"),C(27),m()()(),f(28,"tbody"),w(29,xpe,22,11,"tr",16),m()()()}if(2&t){const e=g();d(),h("nzLoading",e.submitting),d(),Ce(" ",e.$t("_save")," "),d(),h("nzLoading",e.submitting),d(),Ce(" ",e.$t("_logoutAuthCode")," "),d(),h("nzLoading",e.submitting),d(),Ce(" ",e.$t("_refresh")," "),d(4),h("nzData",e.dataList)("nzShowPagination",!1),d(5),x(e.$t("_action")),d(2),x(e.$t("_icon")),d(2),x(e.$t("_webName")),d(2),x(e.$t("_webTag")),d(2),x(e.$t("_webDesc")),d(4),x(e.$t("_createAt")),d(2),h("ngForOf",e.dataList)("ngForTrackBy",e.trackByItem)}}let kpe=(()=>{class t{constructor(e,i,o){this.message=e,this.modal=i,this.notification=o,this.$t=_e,this.objectKeys=Object.keys,this.submitting=!1,this.isPermission=!!Yg(),this.dataList=[],this.authCode="",this.tagMap=ju}ngOnInit(){this.getUserCollect()}handleDelete(e){this.submitting=!0,function Ste(t){return y5.apply(this,arguments)}({data:this.dataList[e]}).then(i=>{i.data.success&&(this.dataList=i.data.data)}).finally(()=>{this.submitting=!1})}getUserCollect(){this.submitting=!0,function wte(t){return _5.apply(this,arguments)}().then(e=>{this.isPermission=!!e.data.success,e.data.success&&e.data.data&&(this.dataList=e.data.data)}).finally(()=>{this.submitting=!1})}handleSubmitAuthCode(){this.submitting||!this.authCode||(HD(this.authCode),this.getUserCollect())}logoutAuthCode(){(function EX(){window.localStorage.removeItem("AUTH_CODE")})(),window.location.reload()}handleConfirmGet(e,i){const o=this;try{const r=yn.findIndex(c=>c.title===e.extra.oneName),s=yn[r].nav.findIndex(c=>c.title===e.extra.twoName),a=yn[r].nav[s].nav.findIndex(c=>c.title===e.extra.threeName);Ei.emit("CREATE_WEB",{detail:e,oneIndex:r,twoIndex:s,threeIndex:a}),Ei.emit("SET_CREATE_WEB",{detail:null,callback(){o.handleDelete(i)}})}catch(r){this.notification.error(`${_e("_error")}`,`\u6536\u5f55\u5931\u8d25\uff0c\u53ef\u80fd\u5206\u7c7b\u4f4d\u7f6e\u540d\u79f0\u53d1\u751f\u6539\u53d8\uff0c\u8bf7\u624b\u52a8\u5220\u9664\uff1a${r.message}`)}}handleSubmit(){this.submitting||this.modal.info({nzTitle:_e("_syncDataOut"),nzOkText:_e("_confirmSync"),nzContent:_e("_confirmSyncTip"),nzOnOk:()=>{this.submitting=!0,vc({message:"update db",content:JSON.stringify(yn),path:$g}).then(()=>{this.message.success(_e("_syncSuccessTip"))}).finally(()=>{this.submitting=!1})}})}trackByItem(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(er),v(za),v(P6))};static#t=this.\u0275cmp=q({type:t,selectors:[["user-collect"]],decls:3,vars:3,consts:[["basicTable",""],["nzTip","Loading...",3,"nzSpinning"],["class","center",4,"ngIf"],[4,"ngIf"],[1,"center"],["nz-input","","autofocus","",3,"ngModelChange","placeholder","ngModel"],["nz-button","","nzType","primary",1,"mt10",3,"click","nzLoading"],[1,"mt10"],["src","https://cdn.jsdelivr.net/gh/xjh22222228/public@gh-pages/img/32.png","width","600"],["nz-button","","nzType","primary","nzDanger","",1,"ml10",3,"click","nzLoading"],["nz-button","",1,"ml10",3,"click","nzLoading"],[1,"mb10","mt10"],[3,"nzData","nzShowPagination"],["nzWidth","80px"],["nzWidth","100px"],["nzWidth","300px"],[4,"ngFor","ngForOf","ngForTrackBy"],[3,"click"],["nz-popconfirm","","nzPopconfirmPlacement","rightTop","nzOkType","danger","nzPopconfirmPlacement","bottom",3,"nzOnConfirm","nzPopconfirmTitle"],[3,"src","name",4,"ngIf"],["target","_blank",3,"href"],["style","margin-bottom: 5px",3,"nzColor",4,"ngFor","ngForOf"],[1,"desc"],["nzWidth","300px",4,"ngIf"],[3,"src","name"],[2,"margin-bottom","5px",3,"nzColor"],[3,"href","target"]],template:function(i,o){1&i&&(f(0,"nz-spin",1),w(1,Spe,12,5,"div",2)(2,Epe,30,16,"div",3),m()),2&i&&(h("nzSpinning",o.submitting),d(),h("ngIf",!o.isPermission),d(),h("ngIf",o.isPermission))},dependencies:[zn,Tt,Ws,nr,mi,tr,Cr,Qi,B1,Y1,N2,$1,V2,Bc,U1,Fv,ZP,Xi,Fc],styles:[".add-btn[_ngcontent-%COMP%]{margin-bottom:20px;margin-right:20px}.desc[_ngcontent-%COMP%]{width:300px;white-space:pre-wrap}.ant-table-wrapper[_ngcontent-%COMP%]{overflow:auto}"]})}return t})();const Ape=()=>({});function Ope(t,n){if(1&t){const e=U();f(0,"div",8),D("click",function(){const o=T(e).index;return M(g().handleCilckNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index;Q("active",g().page===i),d(),Ce(" ",e.title," ")}}function Ppe(t,n){if(1&t){const e=U();f(0,"span",14),D("click",function(){const o=T(e).index;return M(g(3).handleSidebarNav(o))}),C(1),m()}if(2&t){const e=n.$implicit,i=n.index;Q("active",g(3).id===i),d(),Ce(" ",e.title," ")}}function Ipe(t,n){if(1&t&&(f(0,"nav",12),w(1,Ppe,2,3,"span",13),m()),2&t){const e=g(2);d(),h("ngForOf",e.websiteList[e.page].nav)("ngForTrackBy",e.trackByItem)}}function Npe(t,n){if(1&t&&(f(0,"h2",18),C(1),m()),2&t){const e=g().$implicit;d(),ca(" ",e.title," x ",e.nav.length," ")}}function Vpe(t,n){if(1&t&&(f(0,"div",27)(1,"a",28),C(2),m()()),2&t){const e=n.$implicit,i=g().$implicit,o=g(3);qo("background-color: "+(o.tagMap[e]&&o.tagMap[e].color||"#1890ff")),d(),h("href",(null==i.urls?null:i.urls[e])||"javascript:void(0)",Ot)("target",null!=i.urls&&i.urls[e]?"_blank":""),d(),x(o.tagMap[e]&&o.tagMap[e].name)}}function Fpe(t,n){if(1&t&&(f(0,"div",19)(1,"a",20)(2,"div",21),S(3,"app-logo",22)(4,"div",23),m(),S(5,"pre",24),f(6,"div",25),w(7,Vpe,3,5,"div",26),m()()()),2&t){const e=n.$implicit,i=g(3);d(),h("href",e.url,Ot),d(2),h("src",e.icon||"")("name",e.name)("size",30),d(),h("title",e.__name__||e.name)("innerHTML",e.name,Wn),d(),h("title",e.__desc__||e.desc)("innerHTML",e.desc,Wn),d(2),h("ngForOf",i.objectKeys(e.urls||Ti(9,Ape)))}}function Rpe(t,n){if(1&t&&(f(0,"div"),w(1,Npe,2,2,"h2",15),f(2,"div",16),w(3,Fpe,8,10,"div",17),m()()),2&t){const e=n.$implicit,i=g(2);d(),h("ngIf",e.title),d(2),h("ngForOf",e.nav)("ngForTrackBy",i.trackByItem)}}function Lpe(t,n){if(1&t&&(f(0,"div",9),w(1,Ipe,2,2,"nav",10)(2,Rpe,4,3,"div",11),m()),2&t){const e=g();d(),h("ngIf",null==e.websiteList[e.page]||null==e.websiteList[e.page].nav?null:e.websiteList[e.page].nav.length),d(),h("ngForOf",e.currentList)}}const Hpe=[{path:"sim",component:w2e},{path:"super",component:a2e},{path:"side",component:gpe},{path:"shortcut",component:wpe},{path:"light",component:Gue,data:{renderLinear:!0}},{path:"app",component:(()=>{class t{constructor(e,i){this.router=e,this.activatedRoute=i,this.objectKeys=Object.keys,this.websiteList=yn,this.currentList=[],this.id=0,this.page=0,this.open=!1,this.LOGO_CDN=An.favicon,this.tagMap=ju}ngOnInit(){this.activatedRoute.queryParams.subscribe(()=>{const{page:e,id:i,q:o}=pi();this.page=e,this.id=i,this.currentList=o?S1(this.websiteList,o):Bu()})}handleSidebarNav(e){const{page:i}=pi();this.router.navigate(["/app"],{queryParams:{page:i,id:e}})}handleCilckNav(e){this.router.navigate(["/app"],{queryParams:{page:e}}),this.open=!this.open}handleToggleOpen(){this.open=!this.open}trackByItem(e,i){return i.title}trackByItemWeb(e,i){return i.id}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-home"]],decls:13,vars:8,consts:[[1,"app-page","user-select-none"],[1,"header"],[1,"header-top"],["alt","logo",1,"logo",3,"src"],[1,"open",3,"click"],[1,"nav-open"],["class","nav-title",3,"active","click",4,"ngFor","ngForOf","ngForTrackBy"],["class","wrapper",4,"ngIf"],[1,"nav-title",3,"click"],[1,"wrapper"],["class","children-nav",4,"ngIf"],[4,"ngFor","ngForOf"],[1,"children-nav"],["class","tag",3,"active","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"tag",3,"click"],["class","block-title",4,"ngIf"],[1,"row"],["class","item-list",4,"ngFor","ngForOf","ngForTrackBy"],[1,"block-title"],[1,"item-list"],["target","_blank",3,"href"],[1,"top"],[3,"src","name","size"],[1,"name",3,"title","innerHTML"],[1,"desc",3,"title","innerHTML"],[1,"tagbox"],["class","tag-item",3,"style",4,"ngFor","ngForOf"],[1,"tag-item"],[3,"href","target"]],template:function(i,o){1&i&&(f(0,"section",0)(1,"header",1)(2,"div",2),S(3,"img",3),f(4,"div",4),D("click",function(){return o.handleToggleOpen()}),S(5,"i")(6,"i")(7,"i"),m()(),f(8,"nav",5),w(9,Ope,2,3,"div",6),m()(),S(10,"app-search-engine"),w(11,Lpe,3,2,"div",7),S(12,"app-footer"),m()),2&i&&(d(3),h("src",o.LOGO_CDN,Ot),d(),Q("active",o.open),d(4),Q("active",o.open),d(),h("ngForOf",o.websiteList)("ngForTrackBy",o.trackByItem),d(2),h("ngIf",o.websiteList[o.page]))},dependencies:[zn,Tt,S2,H1,Fc],styles:['.app-page[_ngcontent-%COMP%]{padding:45px 0 15px;min-height:100vh;background:#f6f6f6}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{z-index:9999;position:fixed;top:0;left:0;right:0;text-align:center;background:#fbfbfb;box-shadow:0 0 3px #ccc}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .header-top[_ngcontent-%COMP%]{position:relative;height:45px;border-bottom:1px solid #eee;background:#fbfbfb}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .header-top[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%]{display:inline-block;width:35px;height:35px;margin-top:4px;pointer-events:none}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open[_ngcontent-%COMP%]{position:absolute;top:9px;left:15px;cursor:pointer}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{display:block;margin-top:6px;height:2px;width:25px;background:#999;transform-origin:right center;transition:.1s linear}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:nth-child(1){transform:rotate(-45deg)}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:nth-child(2){opacity:0}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .open.active[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:nth-child(3){transform:translateY(2px) rotate(45deg)}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-open[_ngcontent-%COMP%]{display:none;box-shadow:1px 1px 5px #ccc;overflow:hidden;background:#fbfbfb;transition:.1s linear}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-open.active[_ngcontent-%COMP%]{display:block}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-title[_ngcontent-%COMP%]{display:inline-block;width:50%;font-size:16px;padding:8px 0}.app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-title[_ngcontent-%COMP%]:active, .app-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%] .nav-title.active[_ngcontent-%COMP%]{background:#0000000d}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{margin:0 0 30px}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .children-nav[_ngcontent-%COMP%]{background:#fbfbfb;margin:0 0 15px;padding:10px 10px 5px;white-space:nowrap;overflow:auto;box-shadow:0 0 3px #ccc}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .children-nav[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%]{position:relative;display:inline-block;font-size:14px;padding:3px 5px;margin:0 3px 5px 0;transition:background .1s linear;color:#333}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .children-nav[_ngcontent-%COMP%] .active[_ngcontent-%COMP%]:after{content:"";position:absolute;bottom:5px;left:50%;width:50%;transform:translate(-50%);height:3px;border-radius:2px;background:#20a0ff}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-bottom:10px;background:#fbfbfb;box-shadow:0 0 5px #ccc}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:inline-block;font-size:14px;margin-left:5px;width:calc(100% - 50px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{padding:10px;border-top:1px solid #eee;margin-top:8px;margin-bottom:0;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;font-size:12px}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .block-title[_ngcontent-%COMP%]{padding:10px 0 10px 15px;border-bottom:1px solid #eee;color:#3f51b5}.app-page[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%] .top[_ngcontent-%COMP%]{padding:10px;display:flex;align-items:center}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#333}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .item-list[_ngcontent-%COMP%]{z-index:111;position:relative;width:calc(50% - 18px);margin:12px;border:1px solid #eee;overflow:hidden}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .item-list[_ngcontent-%COMP%]:nth-child(odd){margin-right:6px}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .item-list[_ngcontent-%COMP%]:nth-child(2n){margin-left:6px}.app-page[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .item-list[_ngcontent-%COMP%]:hover .mark{bottom:0!important}.app-page[_ngcontent-%COMP%] .tagbox[_ngcontent-%COMP%]{display:flex;padding:0 8px 8px;flex-wrap:wrap}.app-page[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]{margin:6px 6px 0 0;padding:0 6px;border-radius:2px;font-size:12px;display:flex;align-items:center;transition:all .1s linear;color:#fff}.app-page[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:currentColor}.app-page[_ngcontent-%COMP%] .tag-item[_ngcontent-%COMP%]:hover{opacity:.8}.app-page[_ngcontent-%COMP%] #app-footer{margin-top:40px}.app-page[_ngcontent-%COMP%] #app-footer, .app-page[_ngcontent-%COMP%] #app-footer .copyright{margin-bottom:10px;color:#666}']})}return t})()},{path:"system",component:F2e,children:[{path:"info",component:R2e},{path:"bookmark",component:uhe},{path:"collect",component:kpe},{path:"about",component:hhe},{path:"tag",component:Y0e},{path:"search",component:r3e},{path:"setting",component:G3e},{path:"angle",component:X6e},{path:"web",component:Q6e},{path:"**",redirectTo:"/system/web"}]},{path:"**",redirectTo:"/"+An.theme.toLowerCase()}];let Bpe=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[RD.forRoot(Hpe,{useHash:Vs.hashMode}),RD]})}return t})();const $pe=class jpe{constructor(n,e){Ei.on("MESSAGE",i=>{n[i.type](i.content)}),Ei.on("NOTIFICATION",i=>{e.create(i.type,i.title,i.content)})}};function Ype(t,n){1&t&&(f(0,"a",1),xh(),f(1,"svg",2),S(2,"path",3)(3,"path",4),f(4,"path",5)(5,"style"),C(6," @keyframes octocat { 0%, 100% { transform: rotate(0); } 20%, 60% { transform: rotate(-25deg); } 40%, 80% { transform: rotate(100deg); } } .octo-arm { animation: octocat 1.1s linear infinite; } "),m()()()()),2&t&&h("href",g().gitRepoUrl,Ot)}let Upe=(()=>{class t{constructor(){this.gitRepoUrl="https://github.com/xjh22222228/nav-web"===Vs.gitRepoUrl?"https://github.com/xjh22222228/nav":Vs.gitRepoUrl,this.showGithub=An.showGithub}ngOnInit(){}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["app-icon-git"]],decls:1,vars:1,consts:[["target","_blank","rel","noreferer noopener","class","github-link",3,"href",4,"ngIf"],["target","_blank","rel","noreferer noopener",1,"github-link",3,"href"],["width","50","height","50","viewBox","0 0 250 250","aria-hidden","true",2,"fill","#20a0ff","color","#fff"],["d","M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"],["d","M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2","data-url","https://github.com/xjh22222228","fill","currentColor",1,"octo-arm",2,"transform-origin","130px 106px"],["d","M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z","fill","currentColor",1,"octo-body"]],template:function(i,o){1&i&&w(0,Ype,7,1,"a",0),2&i&&h("ngIf",o.gitRepoUrl&&o.showGithub)},dependencies:[Tt],styles:["@media (max-width: 580px){.github-link[_ngcontent-%COMP%]{display:none}}.github-link[_ngcontent-%COMP%]{position:fixed;top:-6px;right:-6px;border:0;z-index:10}"]})}return t})();const Wpe=()=>({maxHeight:"70vh",overflowY:"auto"}),Gpe=()=>({minRows:3,maxRows:5});function qpe(t,n){1&t&&(f(0,"span",22),C(1,"/"),m())}function Kpe(t,n){if(1&t&&(f(0,"span"),C(1),w(2,qpe,2,0,"span",21),m()),2&t){const e=n.$implicit,i=n.index,o=g(3);d(),Ce("",e," "),d(),h("ngIf",i!==o.detail.breadcrumb.length-1)}}function Jpe(t,n){if(1&t&&(f(0,"div",19),w(1,Kpe,3,2,"span",20),m()),2&t){const e=g(2);d(),h("ngForOf",e.detail.breadcrumb)}}function Zpe(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14),S(4,"input",23),m()()),2&t){const e=g(2);d(),h("nzSpan",4),d(),x(e.$t("_sort")),d(),h("nzSpan",20)}}function Qpe(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14),S(4,"nz-switch",24),m()()),2&t){const e=g(2);d(),h("nzSpan",4),d(),x(e.$t("_shortcut")),d(),h("nzSpan",20)}}function Xpe(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14),S(4,"nz-switch",25),m()()),2&t){const e=g(2);d(),h("nzSpan",4),d(),x(e.$t("_onlyOwnVisible")),d(),h("nzSpan",20)}}function e8e(t,n){1&t&&S(0,"app-logo",29),2&t&&h("src",g(4).iconUrl)("size",25)}function t8e(t,n){1&t&&w(0,e8e,1,2,"app-logo",28),2&t&&h("ngIf",g(3).iconUrl)}function n8e(t,n){1&t&&S(0,"i",31)}function i8e(t,n){if(1&t){const e=U();f(0,"label",32),S(1,"i",33),f(2,"input",34),D("change",function(o){return T(e),M(g(4).onChangeFile(o))}),m()()}if(2&t){const e=g(4);d(),h("title",e.$t("_upload"))}}function o8e(t,n){if(1&t&&w(0,n8e,1,0,"i",30)(1,i8e,3,1,"ng-template",null,2,ot),2&t){const e=He(2);h("ngIf",g(3).uploading)("ngIfElse",e)}}function r8e(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14)(4,"nz-input-group",26),S(5,"input",27),m(),w(6,t8e,1,1,"ng-template",null,0,ot)(8,o8e,3,2,"ng-template",null,1,ot),m()()),2&t){const e=He(7),i=He(9),o=g(2);d(),h("nzSpan",4),d(),x(o.$t("_iconAddr")),d(),h("nzSpan",20),d(),h("nzPrefix",e)("nzSuffix",i),d(),h("placeholder",o.$t("_copyUpload"))("readonly",o.getting)("placeholder",o.getting?o.$t("_pendingGet"):"")}}function s8e(t,n){1&t&&S(0,"app-logo",29),2&t&&h("src",g(4).iconUrl)("size",25)}function a8e(t,n){1&t&&w(0,s8e,1,2,"app-logo",28),2&t&&h("ngIf",g(3).iconUrl)}function c8e(t,n){if(1&t&&(f(0,"nz-form-item")(1,"nz-form-label",14),C(2),m(),f(3,"nz-form-control",14)(4,"nz-input-group",35),S(5,"input",36),m(),w(6,a8e,1,1,"ng-template",null,0,ot),m()()),2&t){const e=He(7),i=g(2);d(),h("nzSpan",4),d(),x(i.$t("_iconAddr")),d(),h("nzSpan",20),d(),h("nzPrefix",e),d(),h("readonly",i.getting)("placeholder",i.getting?i.$t("_pendingGet"):"")}}function l8e(t,n){if(1&t&&S(0,"nz-option",43),2&t){const e=n.$implicit;h("nzLabel",e.name)("nzValue",e.id)}}function d8e(t,n){if(1&t&&(f(0,"nz-select",41),w(1,l8e,1,2,"nz-option",42),m()),2&t){const e=g(3);d(),h("ngForOf",e.tagList)}}function u8e(t,n){if(1&t){const e=U();f(0,"i",44),D("click",function(){T(e);const o=g().index;return M(g(2).lessMoreUrl(o))}),m()}}function h8e(t,n){if(1&t&&(f(0,"nz-form-item",37),S(1,"nz-form-label",38),f(2,"nz-form-control",14)(3,"nz-input-group",39),S(4,"input",40),m(),w(5,d8e,2,1,"ng-template",null,3,ot)(7,u8e,1,0,"ng-template",null,4,ot),m()()),2&t){const e=n.index,i=He(6),o=He(8),r=g(2);h("formGroupName",e),d(),h("nzSpan",4)("nzNoColon",!0),d(),h("nzSpan",20),d(),h("nzAddOnBefore",i)("nzAddOnAfter",o),d(),h("placeholder",r.$t("_tagPlaceholder"))}}function p8e(t,n){if(1&t){const e=U();f(0,"nz-form-item"),S(1,"nz-form-label",38),f(2,"nz-form-control",14)(3,"button",45),D("click",function(){return T(e),M(g(2).addMoreUrl())}),S(4,"i",46),C(5),m()()()}if(2&t){const e=g(2);d(),h("nzSpan",4)("nzNoColon",!0),d(),h("nzSpan",20),d(3),Ce("",e.$t("_continueAdd")," ")}}function f8e(t,n){if(1&t){const e=U();$e(0),w(1,Jpe,2,1,"div",7),f(2,"form",8)(3,"nz-form-item")(4,"nz-form-label",9),C(5),m(),f(6,"nz-form-control",10)(7,"input",11),D("blur",function(o){return T(e),M(g().onUrlBlur(o))}),m()()(),f(8,"nz-form-item")(9,"nz-form-label",9),C(10),m(),f(11,"nz-form-control",10),S(12,"input",12),m()(),w(13,Zpe,5,3,"nz-form-item",13)(14,Qpe,5,3,"nz-form-item",13)(15,Xpe,5,3,"nz-form-item",13),f(16,"nz-form-item")(17,"nz-form-label",14),C(18),m(),f(19,"nz-form-control",14),S(20,"nz-rate",15),m()(),w(21,r8e,10,8,"nz-form-item",13)(22,c8e,8,6,"nz-form-item",13),f(23,"nz-form-item")(24,"nz-form-label",14),C(25),m(),f(26,"nz-form-control",14)(27,"textarea",16),C(28," "),m()()(),f(29,"div",17),w(30,h8e,9,7,"nz-form-item",18),m(),w(31,p8e,6,4,"nz-form-item",13),m(),Ye()}if(2&t){const e=g();d(),h("ngIf",null==e.detail?null:e.detail.breadcrumb),d(),h("formGroup",e.validateForm),d(2),h("nzSpan",4),d(),x(e.$t("_webLink")),d(),h("nzSpan",20)("nzErrorTip",e.$t("_requiredLink")),d(3),h("nzSpan",4),d(),x(e.$t("_webName")),d(),h("nzSpan",20)("nzErrorTip",e.$t("_requiredName")),d(),h("placeholder",e.$t("_webTitle"))("readonly",e.getting)("placeholder",e.getting?e.$t("_pendingGet"):""),d(),h("ngIf",e.isLogin),d(),h("ngIf",e.isLogin),d(),h("ngIf",e.isLogin),d(2),h("nzSpan",4),d(),x(e.$t("_score")),d(),h("nzSpan",20),d(2),h("ngIf",e.isLogin),d(),h("ngIf",!e.isLogin),d(2),h("nzSpan",4),d(),x(e.$t("_webDesc")),d(),h("nzSpan",20),d(),h("placeholder",e.settings.description)("nzAutosize",Ti(30,Gpe))("readonly",e.getting)("placeholder",e.getting?e.$t("_pendingGet"):""),d(3),h("ngForOf",e.urlArray.controls),d(),h("ngIf",e.tagList.length>0)}}let m8e=(()=>{class t{constructor(e,i){this.fb=e,this.message=i,this.onOk=new H,this.$t=_e,this.isLogin=Wi,this.iconUrl="",this.tagList=h3,this.uploading=!1,this.getting=!1,this.settings=An,this.showModal=!1,this.detail=null,this.callback=()=>{},Ei.on("CREATE_WEB",o=>{this.open(this,o)}),Ei.on("SET_CREATE_WEB",o=>{for(const r in o)this[r]=o[r]}),this.validateForm=this.fb.group({title:["",[G7.required]],url:["",[G7.required]],top:[!1],ownVisible:[!1],rate:[5],icon:[""],desc:[""],index:[""],urlArr:this.fb.array([])})}get urlArray(){return this.validateForm.get("urlArr")}open(e,i={}){const o=i.detail;if(e.detail=o,e.showModal=!0,e.oneIndex=i.oneIndex,e.twoIndex=i.twoIndex,e.threeIndex=i.threeIndex,this.validateForm.get("title").setValue(fs(o?.name)),this.validateForm.get("desc").setValue(fs(o?.desc)),this.validateForm.get("index").setValue(o?.index??""),this.validateForm.get("icon").setValue(o?.icon||""),this.validateForm.get("url").setValue(o?.url||""),this.validateForm.get("top").setValue(o?.top??!1),this.validateForm.get("ownVisible").setValue(o?.ownVisible??!1),this.validateForm.get("rate").setValue(o?.rate??5),o&&"object"==typeof o.urls)for(let r in o.urls)this.validateForm?.get("urlArr").push?.(this.fb.group({id:Number(r),name:ju[r]?.name??"",url:o.urls[r]}))}onClose(){this.validateForm.get("urlArr").controls=[],this.validateForm.reset(),this.showModal=!1,this.detail=null,this.iconUrl="",this.oneIndex=void 0,this.twoIndex=void 0,this.threeIndex=void 0,this.uploading=!1,this.callback=Function}onUrlBlur(e){var i=this;return Di(function*(){const o=e.target?.value;if(!o)return;i.getting=!0;const r=yield function Ate(t){return S5.apply(this,arguments)}(o);null!=r.url&&(i.iconUrl=r.url,i.validateForm.get("icon").setValue(i.iconUrl)),null!=r.title&&i.validateForm.get("title").setValue(r.title),null!=r.description&&i.validateForm.get("desc").setValue(r.description),!1===r.status&&i.message.error("\u81ea\u52a8\u6293\u53d6\u5931\u8d25\uff0c\u8bf7\u624b\u52a8\u5199\u5165"),i.getting=!1})()}addMoreUrl(){this.validateForm.get("urlArr").push(this.fb.group({id:"",name:"",url:""}))}lessMoreUrl(e){this.validateForm.get("urlArr").removeAt(e)}handleUploadImage(e){const i=this,o=new FileReader;o.readAsDataURL(e),o.onload=function(){i.uploading=!0,i.iconUrl=this.result;const r=i.iconUrl.split(",")[1],s=`nav-${Date.now()}-${e.name}`;Zx({branch:"image",message:"create image",content:r,isEncode:!1,path:s}).then(()=>{i.validateForm.get("icon").setValue(s),i.message.success(_e("_uploadSuccess"))}).finally(()=>{i.uploading=!1})}}onChangeFile(e){const{files:i}=e.target;if(i.length<=0)return;const o=i[0];if(!o.type.startsWith("image"))return this.message.error(_e("_notUpload"));this.handleUploadImage(o)}handleOk(){var e=this;return Di(function*(){for(const z in e.validateForm.controls)e.validateForm.controls[z].markAsDirty(),e.validateForm.controls[z].updateValueAndValidity();const i=(new Date).toString();let o={},{title:r,icon:s,url:a,top:c,ownVisible:l,rate:u,desc:p,index:_}=e.validateForm.value;if(!r||!a)return;r=r.trim(),(e.validateForm.get("urlArr")?.value||[]).forEach(z=>{null!=z.id&&(o[z.id]=z.url)});const y={id:-Date.now(),name:r,createdAt:e.detail?.createdAt??i,rate:u??5,desc:p||"",top:c??!1,index:_,ownVisible:l??!1,icon:s,url:a,urls:o};if(e.detail)!function Pte(t,n){const e=Object.keys(n);let i=!1;return function o(r){for(let s=0;sGe.name===y.name))return e.message.error(`${_e("_repeatAdd")} "${y.name}"`);if(e.uploading=!0,e.isLogin)pe.unshift(y),Yn(yn),e.message.success(_e("_addSuccess"));else if(e.settings.allowCollect){const Ge=yield function zte(t){return b5.apply(this,arguments)}({email:e.settings.email,data:{...y,extra:{type:"create",oneName:yn[k].title,twoName:yn[k].nav[A].title,threeName:yn[k].nav[A].nav[ie].title}}});e.message.error(!1===Ge.data.success?Ge.data.message:_e("_waitHandle"))}}catch(z){e.message.error(z.message)}e.callback(),e.onOk?.emit?.(y),e.onClose()})()}static#e=this.\u0275fac=function(i){return new(i||t)(v(fv),v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-create-web"]],outputs:{onOk:"onOk"},decls:2,vars:6,consts:[["prefixIcon",""],["suffixIconSearch",""],["loading",""],["addOnBeforeTemplate",""],["addOnAfterTemplate",""],[3,"nzVisibleChange","nzOnCancel","nzOnOk","nzWidth","nzVisible","nzTitle","nzOkLoading","nzBodyStyle"],[4,"nzModalContent"],["class","breadcrumb1",4,"ngIf"],["nz-form","",3,"formGroup"],["nzRequired","",3,"nzSpan"],[3,"nzSpan","nzErrorTip"],["formControlName","url","nz-input","","placeholder","https://github.com/xjh22222228/nav",3,"blur"],["formControlName","title","nz-input","",3,"placeholder","readonly"],[4,"ngIf"],[3,"nzSpan"],["formControlName","rate","nzAllowHalf",""],["formControlName","desc","nz-input","",1,"dark-scrollbar",3,"placeholder","nzAutosize","readonly"],["formArrayName","urlArr"],[3,"formGroupName",4,"ngFor","ngForOf"],[1,"breadcrumb1"],[4,"ngFor","ngForOf"],["class","arrow",4,"ngIf"],[1,"arrow"],["formControlName","index","nz-input","","type","number","placeholder","-1024"],["formControlName","top"],["formControlName","ownVisible"],[3,"nzPrefix","nzSuffix"],["formControlName","icon","nz-input","",3,"placeholder","readonly"],[3,"src","size",4,"ngIf"],[3,"src","size"],["nz-icon","","nzType","loading","nzTheme","outline",4,"ngIf","ngIfElse"],["nz-icon","","nzType","loading","nzTheme","outline"],["id","file"],["nz-icon","","nzType","upload","nzTheme","outline",1,"cursor-pointer",3,"title"],["type","file","name","file","accept","image/*",1,"file-upload",3,"change"],[3,"nzPrefix"],["formControlName","icon","nz-input","",3,"readonly","placeholder"],[3,"formGroupName"],[3,"nzSpan","nzNoColon"],[3,"nzAddOnBefore","nzAddOnAfter"],["formControlName","url","type","text","nz-input","",3,"placeholder"],["formControlName","id",2,"width","100px"],[3,"nzLabel","nzValue",4,"ngFor","ngForOf"],[3,"nzLabel","nzValue"],["nz-icon","","nzType","minus","nzTheme","outline",1,"cursor-pointer",3,"click"],["nz-button","","nzType","default","nzBlock","",3,"click"],["nz-icon","","nzType","plus"]],template:function(i,o){1&i&&(f(0,"nz-modal",5),Oi("nzVisibleChange",function(s){return Yi(o.showModal,s)||(o.showModal=s),s}),D("nzOnCancel",function(){return o.onClose()})("nzOnOk",function(){return o.handleOk()}),w(1,f8e,32,31,"ng-container",6),m()),2&i&&(h("nzWidth",570),Ai("nzVisible",o.showModal),h("nzTitle",o.$t(o.detail?"_edit":"_add"))("nzOkLoading",o.uploading||o.getting)("nzBodyStyle",Ti(5,Wpe)))},dependencies:[zn,Tt,c6,y2,Ws,x6,_P,vP,Nc,Vc,x1,Cc,F2,V6,R6,F6,nr,mi,tr,T6,Cr,cv,Qi,g6,R1,L1,M6,D6,cn,_v,N6,Fc],styles:[".file-upload[_ngcontent-%COMP%]{display:none!important}.row[_ngcontent-%COMP%]{display:flex;justify-content:space-around}.breadcrumb1[_ngcontent-%COMP%]{margin-bottom:10px;padding-left:5px;font-weight:700}.breadcrumb1[_ngcontent-%COMP%] .arrow[_ngcontent-%COMP%]{margin:0 8px 0 5px}@media (max-width: 580px){ .ant-modal{top:0}}"]})}return t})();function g8e(t,n){if(1&t&&S(0,"nz-option",7),2&t){const i=n.index;h("nzLabel",n.$implicit.title)("nzValue",i)}}function v8e(t,n){if(1&t&&S(0,"nz-option",7),2&t){const i=n.index;h("nzLabel",n.$implicit.title||"")("nzValue",i)}}function _8e(t,n){if(1&t&&S(0,"nz-option",7),2&t){const i=n.index;h("nzLabel",n.$implicit.title||"")("nzValue",i)}}function b8e(t,n){if(1&t){const e=U();$e(0),f(1,"nz-select",2),D("ngModelChange",function(o){return T(e),M(g().hanldeOneSelect(o))}),w(2,g8e,1,2,"nz-option",3),m(),f(3,"nz-select",4),D("ngModelChange",function(o){return T(e),M(g().hanldeTwoSelect(o))}),w(4,v8e,1,2,"nz-option",3),m(),f(5,"nz-select",4),D("ngModelChange",function(o){return T(e),M(g().hanldeThreeSelect(o))}),w(6,_8e,1,2,"nz-option",3),m(),f(7,"div",5)(8,"label",6),Oi("ngModelChange",function(o){T(e);const r=g();return Yi(r.checked,o)||(r.checked=o),M(o)}),C(9),m()(),Ye()}if(2&t){const e=g();d(),h("ngModel",e.oneSelect)("nzPlaceHolder",e.$t("_sel1")),d(),h("ngForOf",e.websiteList),d(),h("ngModel",e.twoSelect)("nzPlaceHolder",e.$t("_sel2")),d(),h("ngForOf",e.twoOptList),d(),h("ngModel",e.threeSelect)("nzPlaceHolder",e.$t("_sel3")),d(),h("ngForOf",e.threeOptList),d(2),Ai("ngModel",e.checked),d(),x(e.$t("_copy"))}}let y8e=(()=>{class t{constructor(e){this.message=e,this.$t=_e,this.websiteList=yn,this.twoOptList=[],this.threeOptList=[],this.checked=!1,this.moveSites=[],this.showModal=!1,this.indexs=[],Ei.on("MOVE_WEB",i=>{this.open(this,i)})}ngOnInit(){}open(e,i){e.indexs=i.indexs,e.moveSites=i.data,e.showModal=!0}pushMoveSites(e){this.moveSites=e}hanldeOneSelect(e){this.oneSelect=e;const i=this.websiteList[e].title,o=this.websiteList.find(r=>r.title===i);this.twoOptList=o.nav,this.twoSelect=void 0,this.threeSelect=void 0}hanldeTwoSelect(e){this.twoSelect=e;const i=this.twoOptList[e].title,o=this.twoOptList.find(r=>r.title===i);this.threeOptList=o.nav,this.threeSelect=void 0}hanldeThreeSelect(e){this.threeSelect=e}handleCancel(){this.showModal=!1}hanldeOk(){if(null==this.threeSelect)return this.message.error(_e("_sel3"));const e=this.indexs.filter(i=>null!=i);if(4!==e.length)return this.message.error(`move web: indexs\u6570\u91cf\u4e0d\u6b63\u786e${e.join(",")}`);try{const i=this.oneSelect,o=this.twoSelect,r=this.threeSelect;this.moveSites.forEach(s=>{if(this.websiteList[i].nav[o].nav[r].nav.find(c=>c.name===s.name))this.message.error(`${_e("_repeatAdd")} "${s.name}"`);else{if(this.websiteList[i].nav[o].nav[r].nav.unshift(s),!this.checked){const[c,l,u,p]=e;this.websiteList[c].nav[l].nav[u].nav.splice(p,1)}this.message.success(`"${s.name}" ${_e("_moveSuccess")}`)}}),Yn(this.websiteList),this.handleCancel()}catch(i){this.message.error(i.message)}}static#e=this.\u0275fac=function(i){return new(i||t)(v(er))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-move-web"]],decls:2,vars:3,consts:[[3,"nzVisibleChange","nzOnCancel","nzOnOk","nzWidth","nzVisible","nzTitle"],[4,"nzModalContent"],["nzShowSearch","",2,"width","160px",3,"ngModelChange","ngModel","nzPlaceHolder"],[3,"nzLabel","nzValue",4,"ngFor","ngForOf"],["nzShowSearch","",2,"width","160px","margin-left","15px",3,"ngModelChange","ngModel","nzPlaceHolder"],[1,"act"],["nz-checkbox","",3,"ngModelChange","ngModel"],[3,"nzLabel","nzValue"]],template:function(i,o){1&i&&(f(0,"nz-modal",0),Oi("nzVisibleChange",function(s){return Yi(o.showModal,s)||(o.showModal=s),s}),D("nzOnCancel",function(){return o.handleCancel()})("nzOnOk",function(){return o.hanldeOk()}),w(1,b8e,10,11,"ng-container",1),m()),2&i&&(h("nzWidth",560),Ai("nzVisible",o.showModal),h("nzTitle",o.$t("_moveTo")))},dependencies:[zn,c6,y2,Nc,Vc,Qi,Rc,Xi],styles:[".act[_ngcontent-%COMP%]{margin-top:30px}"]})}return t})();function C8e(t,n){1&t&&S(0,"app-move-web")}let w8e=(()=>{class t{constructor(e,i,o,r,s){this.router=e,this.activatedRoute=i,this.i18n=o,this.message=r,this.notification=s,this.isLogin=Wi,new $pe(r,s)}ngOnInit(){this.goRoute(),this.activatedRoute.queryParams.subscribe(xte),"zh-CN"===X5()?this.i18n.setLocale(x7):this.i18n.setLocale(EA);const e=j0();e&&Jx(e).catch(()=>{BD(),setTimeout(()=>{location.reload()},3e3)})}goRoute(){if("Current"!==An.appTheme&&"ontouchstart"in window){const e=(this.router.url.split("?")[0]||"").toLowerCase(),{page:i,id:o,q:r}=pi(),s={page:i,id:o,q:r},a="/"+String(An.appTheme).toLowerCase();e.includes(a)||this.router.navigate([a],{queryParams:s})}}static#e=this.\u0275fac=function(i){return new(i||t)(v(oi),v(Po),v($s),v(er),v(P6))};static#t=this.\u0275cmp=q({type:t,selectors:[["app-xiejiahe"]],decls:5,vars:1,consts:[["id","xiejiahe"],[4,"ngIf"]],template:function(i,o){1&i&&(f(0,"div",0),S(1,"app-icon-git")(2,"router-outlet")(3,"app-create-web"),w(4,C8e,1,0,"app-move-web",1),m()),2&i&&(d(4),h("ngIf",o.isLogin))},dependencies:[Tt,I0,Upe,m8e,y8e]})}return t})();function DI(t){return new j(3e3,!1)}function xa(t){switch(t.length){case 0:return new e2;case 1:return t[0];default:return new qE(t)}}function xI(t,n,e=new Map,i=new Map){const o=[],r=[];let s=-1,a=null;if(n.forEach(c=>{const l=c.get("offset"),u=l==s,p=u&&a||new Map;c.forEach((_,b)=>{let y=b,z=_;if("offset"!==b)switch(y=t.normalizePropertyName(y,o),z){case"!":z=e.get(b);break;case Hs:z=i.get(b);break;default:z=t.normalizeStyleValue(b,y,z,o)}p.set(y,z)}),u||r.push(p),a=p,s=l}),o.length)throw function U8e(t){return new j(3502,!1)}();return r}function Rv(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Lv(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Lv(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Lv(e,"destroy",t)))}}function Lv(t,n,e){const r=Hv(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),s=t._data;return null!=s&&(r._data=s),r}function Hv(t,n,e,i,o="",r=0,s){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:r,disabled:!!s}}function ir(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function EI(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const ife=typeof document>"u"?null:document.documentElement;function Bv(t){const n=t.parentNode||t.host||null;return n===ife?null:n}let jc=null,kI=!1;function AI(t,n){for(;n;){if(n===t)return!0;n=Bv(n)}return!1}function OI(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let jv=(()=>{class t{validateStyleProperty(e){return function rfe(t){jc||(jc=function sfe(){return typeof document<"u"?document.body:null}()||{},kI=!!jc.style&&"WebkitAppearance"in jc.style);let n=!0;return jc.style&&!function ofe(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in jc.style,!n&&kI&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in jc.style)),n}(e)}containsElement(e,i){return AI(e,i)}getParentElement(e){return Bv(e)}query(e,i,o){return OI(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,r,s,a=[],c){return new e2(o,r)}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();class $v{static#e=this.NOOP=new jv}class Yv{}const cfe=1e3,Uv="ng-enter",$6="ng-leave",Y6="ng-trigger",U6=".ng-trigger",II="ng-animating",Wv=".ng-animating";function Gs(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:Gv(parseFloat(n[1]),n[2])}function Gv(t,n){return"s"===n?t*cfe:t}function W6(t,n,e){return t.hasOwnProperty("duration")?t:function dfe(t,n,e){let o,r=0,s="";if("string"==typeof t){const a=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return n.push(DI()),{duration:0,delay:0,easing:""};o=Gv(parseFloat(a[1]),a[2]);const c=a[3];null!=c&&(r=Gv(parseFloat(c),a[4]));const l=a[5];l&&(s=l)}else o=t;if(!e){let a=!1,c=n.length;o<0&&(n.push(function z8e(){return new j(3100,!1)}()),a=!0),r<0&&(n.push(function S8e(){return new j(3101,!1)}()),a=!0),a&&n.splice(c,0,DI())}return{duration:o,delay:r,easing:s}}(t,n,e)}function _s(t,n,e){n.forEach((i,o)=>{const r=Kv(o);e&&!e.has(o)&&e.set(o,t.style[r]),t.style[r]=i})}function $c(t,n){n.forEach((e,i)=>{const o=Kv(i);t.style[o]=""})}function L2(t){return Array.isArray(t)?1==t.length?t[0]:function Lne(t,n=null){return{type:lt.Sequence,steps:t,options:n}}(t):t}const qv=new RegExp("{{\\s*(.+?)\\s*}}","g");function VI(t){let n=[];if("string"==typeof t){let e;for(;e=qv.exec(t);)n.push(e[1]);qv.lastIndex=0}return n}function H2(t,n,e){const i=`${t}`,o=i.replace(qv,(r,s)=>{let a=n[s];return null==a&&(e.push(function M8e(t){return new j(3003,!1)}()),a=""),a.toString()});return o==i?t:o}const pfe=/-+([a-z0-9])/g;function Kv(t){return t.replace(pfe,(...n)=>n[1].toUpperCase())}function or(t,n,e){switch(n.type){case lt.Trigger:return t.visitTrigger(n,e);case lt.State:return t.visitState(n,e);case lt.Transition:return t.visitTransition(n,e);case lt.Sequence:return t.visitSequence(n,e);case lt.Group:return t.visitGroup(n,e);case lt.Animate:return t.visitAnimate(n,e);case lt.Keyframes:return t.visitKeyframes(n,e);case lt.Style:return t.visitStyle(n,e);case lt.Reference:return t.visitReference(n,e);case lt.AnimateChild:return t.visitAnimateChild(n,e);case lt.AnimateRef:return t.visitAnimateRef(n,e);case lt.Query:return t.visitQuery(n,e);case lt.Stagger:return t.visitStagger(n,e);default:throw function D8e(t){return new j(3004,!1)}()}}function Jv(t,n){return window.getComputedStyle(t)[n]}const gfe=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class FI extends Yv{normalizePropertyName(n,e){return Kv(n)}normalizeStyleValue(n,e,i,o){let r="";const s=i.toString().trim();if(gfe.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)r="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&o.push(function x8e(t,n){return new j(3005,!1)}())}return s+r}}const G6="*";const q6=new Set(["true","1"]),K6=new Set(["false","0"]);function RI(t,n){const e=q6.has(t)||K6.has(t),i=q6.has(n)||K6.has(n);return(o,r)=>{let s=t==G6||t==o,a=n==G6||n==r;return!s&&e&&"boolean"==typeof o&&(s=o?q6.has(t):K6.has(t)),!a&&i&&"boolean"==typeof r&&(a=r?q6.has(n):K6.has(n)),s&&a}}const yfe=new RegExp("s*:selfs*,?","g");function Zv(t,n,e,i){return new Cfe(t).build(n,e,i)}class Cfe{constructor(n){this._driver=n}build(n,e,i){const o=new Sfe(e);return this._resetContextStyleTimingState(o),or(this,L2(n),o)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,o=e.depCount=0;const r=[],s=[];return"@"==n.name.charAt(0)&&e.errors.push(function E8e(){return new j(3006,!1)}()),n.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),a.type==lt.State){const c=a,l=c.name;l.toString().split(/\s*,\s*/).forEach(u=>{c.name=u,r.push(this.visitState(c,e))}),c.name=l}else if(a.type==lt.Transition){const c=this.visitTransition(a,e);i+=c.queryCount,o+=c.depCount,s.push(c)}else e.errors.push(function k8e(){return new j(3007,!1)}())}),{type:lt.Trigger,name:n.name,states:r,transitions:s,queryCount:i,depCount:o,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),o=n.options&&n.options.params||null;if(i.containsDynamicStyles){const r=new Set,s=o||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(c=>{VI(c).forEach(l=>{s.hasOwnProperty(l)||r.add(l)})})}),r.size&&e.errors.push(function A8e(t,n){return new j(3008,!1)}(0,r.values()))}return{type:lt.State,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=or(this,L2(n.animation),e),o=function vfe(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function _fe(t,n,e){if(":"==t[0]){const c=function bfe(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof c)return void n.push(c);t=c}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function H8e(t){return new j(3015,!1)}()),n;const o=i[1],r=i[2],s=i[3];n.push(RI(o,s)),"<"==r[0]&&(o!=G6||s!=G6)&&n.push(RI(s,o))}(i,e,n)):e.push(t),e}(n.expr,e.errors);return{type:lt.Transition,matchers:o,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Yc(n.options)}}visitSequence(n,e){return{type:lt.Sequence,steps:n.steps.map(i=>or(this,i,e)),options:Yc(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const r=n.steps.map(s=>{e.currentTime=i;const a=or(this,s,e);return o=Math.max(o,e.currentTime),a});return e.currentTime=o,{type:lt.Group,steps:r,options:Yc(n.options)}}visitAnimate(n,e){const i=function Mfe(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Qv(W6(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(r=>"{"==r.charAt(0)&&"{"==r.charAt(1))){const r=Qv(0,0,"");return r.dynamic=!0,r.strValue=e,r}const o=W6(e,n);return Qv(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,r=n.styles?n.styles:Ke({});if(r.type==lt.Keyframes)o=this.visitKeyframes(r,e);else{let s=n.styles,a=!1;if(!s){a=!0;const l={};i.easing&&(l.easing=i.easing),s=Ke(l)}e.currentTime+=i.duration+i.delay;const c=this.visitStyle(s,e);c.isEmptyStep=a,o=c}return e.currentAnimateTimings=null,{type:lt.Animate,timings:i,style:o,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],o=Array.isArray(n.styles)?n.styles:[n.styles];for(let a of o)"string"==typeof a?a===Hs?i.push(a):e.errors.push(new j(3002,!1)):i.push(new Map(Object.entries(a)));let r=!1,s=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(s=a.get("easing"),a.delete("easing")),!r))for(let c of a.values())if(c.toString().indexOf("{{")>=0){r=!0;break}}),{type:lt.Style,styles:i,easing:s,offset:n.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let o=e.currentTime,r=e.currentTime;i&&r>0&&(r-=i.duration+i.delay),n.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,c)=>{const l=e.collectedStyles.get(e.currentQuerySelector),u=l.get(c);let p=!0;u&&(r!=o&&r>=u.startTime&&o<=u.endTime&&(e.errors.push(function P8e(t,n,e,i,o){return new j(3010,!1)}()),p=!1),r=u.startTime),p&&l.set(c,{startTime:r,endTime:o}),e.options&&function hfe(t,n,e){const i=n.params||{},o=VI(t);o.length&&o.forEach(r=>{i.hasOwnProperty(r)||e.push(function T8e(t){return new j(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:lt.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function I8e(){return new j(3011,!1)}()),i;let r=0;const s=[];let a=!1,c=!1,l=0;const u=n.steps.map(k=>{const A=this._makeStyleAst(k,e);let ie=null!=A.offset?A.offset:function Tfe(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(A.styles),pe=0;return null!=ie&&(r++,pe=A.offset=ie),c=c||pe<0||pe>1,a=a||pe0&&r{const ie=_>0?A==b?1:_*A:s[A],pe=ie*E;e.currentTime=y+z.delay+pe,z.duration=pe,this._validateStyleAst(k,e),k.offset=ie,i.styles.push(k)}),i}visitReference(n,e){return{type:lt.Reference,animation:or(this,L2(n.animation),e),options:Yc(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:lt.AnimateChild,options:Yc(n.options)}}visitAnimateRef(n,e){return{type:lt.AnimateRef,animation:this.visitReference(n.animation,e),options:Yc(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[r,s]=function wfe(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(yfe,"")),t=t.replace(/@\*/g,U6).replace(/@\w+/g,e=>U6+"-"+e.slice(1)).replace(/:animating/g,Wv),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+r:r,ir(e.collectedStyles,e.currentQuerySelector,new Map);const a=or(this,L2(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:lt.Query,selector:r,limit:o.limit||0,optional:!!o.optional,includeSelf:s,animation:a,originalSelector:n.selector,options:Yc(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function R8e(){return new j(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:W6(n.timings,e.errors,!0);return{type:lt.Stagger,animation:or(this,L2(n.animation),e),timings:i,options:null}}}class Sfe{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Yc(t){return t?(t={...t}).params&&(t.params=function zfe(t){return t?{...t}:null}(t.params)):t={},t}function Qv(t,n,e){return{duration:t,delay:n,easing:e}}function Xv(t,n,e,i,o,r,s=null,a=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:r,totalTime:o+r,easing:s,subTimeline:a}}class J6{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const Efe=new RegExp(":enter","g"),Afe=new RegExp(":leave","g");function e9(t,n,e,i,o,r=new Map,s=new Map,a,c,l=[]){return(new Ofe).buildKeyframes(t,n,e,i,o,r,s,a,c,l)}class Ofe{buildKeyframes(n,e,i,o,r,s,a,c,l,u=[]){l=l||new J6;const p=new t9(n,e,l,o,r,u,[]);p.options=c;const _=c.delay?Gs(c.delay):0;p.currentTimeline.delayNextStep(_),p.currentTimeline.setStyles([s],null,p.errors,c),or(this,i,p);const b=p.timelines.filter(y=>y.containsAnimation());if(b.length&&a.size){let y;for(let z=b.length-1;z>=0;z--){const E=b[z];if(E.element===e){y=E;break}}y&&!y.allowOnlyTimelineStyles()&&y.setStyles([a],null,p.errors,c)}return b.length?b.map(y=>y.buildKeyframes()):[Xv(e,[],[],[],0,_,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(n.options),r=e.currentTimeline.currentTime,s=this._visitSubInstructions(i,o,o.options);r!=s&&e.transformIntoNewTimeline(s)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const o of n){const r=o?.delay;if(r){const s="number"==typeof r?r:Gs(H2(r,o?.params??{},e.errors));i.delayNextStep(s)}}}_visitSubInstructions(n,e,i){let r=e.currentTimeline.currentTime;const s=null!=i.duration?Gs(i.duration):null,a=null!=i.delay?Gs(i.delay):null;return 0!==s&&n.forEach(c=>{const l=e.appendInstructionToTimeline(c,s,a);r=Math.max(r,l.duration+l.delay)}),r}visitReference(n,e){e.updateOptions(n.options,!0),or(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let o=e;const r=n.options;if(r&&(r.params||r.delay)&&(o=e.createSubContext(r),o.transformIntoNewTimeline(),null!=r.delay)){o.previousNode.type==lt.Style&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=Z6);const s=Gs(r.delay);o.delayNextStep(s)}n.steps.length&&(n.steps.forEach(s=>or(this,s,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let o=e.currentTimeline.currentTime;const r=n.options&&n.options.delay?Gs(n.options.delay):0;n.steps.forEach(s=>{const a=e.createSubContext(n.options);r&&a.delayNextStep(r),or(this,s,a),o=Math.max(o,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(s=>e.currentTimeline.mergeTimelineCollectedStyles(s)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return W6(e.params?H2(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const r=n.style;r.type==lt.Keyframes?this.visitKeyframes(r,e):(e.incrementTime(i.duration),this.visitStyle(r,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const r=o&&o.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(r):i.setStyles(n.styles,r,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,r=i.duration,a=e.createSubContext().currentTimeline;a.easing=i.easing,n.styles.forEach(c=>{a.forwardTime((c.offset||0)*r),a.setStyles(c.styles,c.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(o+r),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},r=o.delay?Gs(o.delay):0;r&&(e.previousNode.type===lt.Style||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Z6);let s=i;const a=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=a.length;let c=null;a.forEach((l,u)=>{e.currentQueryIndex=u;const p=e.createSubContext(n.options,l);r&&p.delayNextStep(r),l===e.element&&(c=p.currentTimeline),or(this,n.animation,p),p.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,p.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),c&&(e.currentTimeline.mergeTimelineCollectedStyles(c),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,r=n.timings,s=Math.abs(r.duration),a=s*(e.currentQueryTotal-1);let c=s*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":c=a-c;break;case"full":c=i.currentStaggerTime}const u=e.currentTimeline;c&&u.delayNextStep(c);const p=u.currentTime;or(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-p+(o.startTime-i.currentTimeline.startTime)}}const Z6={};class t9{constructor(n,e,i,o,r,s,a,c){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=r,this.errors=s,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Z6,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new Q6(this._driver,e,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let o=this.options;null!=i.duration&&(o.duration=Gs(i.duration)),null!=i.delay&&(o.delay=Gs(i.delay));const r=i.params;if(r){let s=o.params;s||(s=this.options.params={}),Object.keys(r).forEach(a=>{(!e||!s.hasOwnProperty(a))&&(s[a]=H2(r[a],s,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return n}createSubContext(n=null,e,i){const o=e||this.element,r=new t9(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(n),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(n){return this.previousNode=Z6,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const o={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},r=new Pfe(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,o,n.stretchStartingKeyframe);return this.timelines.push(r),o}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,o,r,s){let a=[];if(o&&a.push(this.element),n.length>0){n=(n=n.replace(Efe,"."+this._enterClassName)).replace(Afe,"."+this._leaveClassName);let l=this._driver.query(this.element,n,1!=i);0!==i&&(l=i<0?l.slice(l.length+i,l.length):l.slice(0,i)),a.push(...l)}return!r&&0==a.length&&s.push(function L8e(t){return new j(3014,!1)}()),a}}class Q6{constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new Q6(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||Hs),this._currentKeyframe.set(e,Hs);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const r=o&&o.params||{},s=function Ife(t,n){const e=new Map;let i;return t.forEach(o=>{if("*"===o){i??=n.keys();for(let r of i)e.set(r,Hs)}else for(let[r,s]of o)e.set(r,s)}),e}(n,this._globalTimelineStyles);for(let[a,c]of s){const l=H2(c,r,i);this._pendingStyles.set(a,l),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??Hs),this._updateStyle(a,l)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((a,c)=>{const l=new Map([...this._backFill,...a]);l.forEach((u,p)=>{"!"===u?n.add(p):u===Hs&&e.add(p)}),i||l.set("offset",c/this.duration),o.push(l)});const r=[...n.values()],s=[...e.values()];if(i){const a=o[0],c=new Map(a);a.set("offset",0),c.set("offset",1),o=[a,c]}return Xv(this.element,o,r,s,this.duration,this.startTime,this.easing,!1)}}class Pfe extends Q6{constructor(n,e,i,o,r,s,a=!1){super(n,e,s.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=r,this._stretchStartingKeyframe=a,this.timings={duration:s.duration,delay:s.delay,easing:s.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],s=i+e,a=e/s,c=new Map(n[0]);c.set("offset",0),r.push(c);const l=new Map(n[0]);l.set("offset",BI(a)),r.push(l);const u=n.length-1;for(let p=1;p<=u;p++){let _=new Map(n[p]);const b=_.get("offset");_.set("offset",BI((e+b*i)/s)),r.push(_)}i=s,e=0,o="",n=r}return Xv(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function BI(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}function jI(t,n,e,i,o,r,s,a,c,l,u,p,_){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:r,toState:i,toStyles:s,timelines:a,queriedElements:c,preStyleProps:l,postStyleProps:u,totalTime:p,errors:_}}const n9={};class $I{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function Nfe(t,n,e,i,o){return t.some(r=>r(n,e,i,o))}(this.ast.matchers,n,e,i,o)}buildStyles(n,e,i){let o=this._stateStyles.get("*");return void 0!==n&&(o=this._stateStyles.get(n?.toString())||o),o?o.buildStyles(e,i):new Map}build(n,e,i,o,r,s,a,c,l,u){const p=[],_=this.ast.options&&this.ast.options.params||n9,y=this.buildStyles(i,a&&a.params||n9,p),z=c&&c.params||n9,E=this.buildStyles(o,z,p),k=new Set,A=new Map,ie=new Map,pe="void"===o,xe={params:YI(z,_),delay:this.ast.options?.delay},Ge=u?[]:e9(n,e,this.ast.animation,r,s,y,E,xe,l,p);let dt=0;return Ge.forEach(Bt=>{dt=Math.max(Bt.duration+Bt.delay,dt)}),p.length?jI(e,this._triggerName,i,o,pe,y,E,[],[],A,ie,dt,p):(Ge.forEach(Bt=>{const zt=Bt.element,In=ir(A,zt,new Set);Bt.preStyleProps.forEach(Kn=>In.add(Kn));const so=ir(ie,zt,new Set);Bt.postStyleProps.forEach(Kn=>so.add(Kn)),zt!==e&&k.add(zt)}),jI(e,this._triggerName,i,o,pe,y,E,Ge,[...k.values()],A,ie,dt))}}function YI(t,n){const e={...n};return Object.entries(t).forEach(([i,o])=>{null!=o&&(e[i]=o)}),e}class Vfe{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=YI(n,this.defaultParams);return this.styles.styles.forEach(r=>{"string"!=typeof r&&r.forEach((s,a)=>{s&&(s=H2(s,o,e));const c=this.normalizer.normalizePropertyName(a,e);s=this.normalizer.normalizeStyleValue(a,c,s,e),i.set(a,s)})}),i}}class Rfe{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new Vfe(o.style,o.options&&o.options.params||{},i))}),UI(this.states,"true","1"),UI(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new $I(n,o,this.states))}),this.fallbackTransition=function Lfe(t,n,e){return new $I(t,{type:lt.Transition,animation:{type:lt.Sequence,steps:[],options:null},matchers:[(s,a)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,o){return this.transitionFactories.find(s=>s.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function UI(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const Hfe=new J6;class Bfe{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],r=Zv(this._driver,e,i,[]);if(i.length)throw function W8e(t){return new j(3503,!1)}();this._animations.set(n,r)}_buildPlayer(n,e,i){const o=n.element,r=xI(this._normalizer,n.keyframes,e,i);return this._driver.animate(o,r,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const o=[],r=this._animations.get(n);let s;const a=new Map;if(r?(s=e9(this._driver,e,r,Uv,$6,new Map,new Map,i,Hfe,o),s.forEach(u=>{const p=ir(a,u.element,new Map);u.postStyleProps.forEach(_=>p.set(_,null))})):(o.push(function G8e(){return new j(3300,!1)}()),s=[]),o.length)throw function q8e(t){return new j(3504,!1)}();a.forEach((u,p)=>{u.forEach((_,b)=>{u.set(b,this._driver.computeStyle(p,b,Hs))})});const l=xa(s.map(u=>{const p=a.get(u.element);return this._buildPlayer(u,new Map,p)}));return this._playersById.set(n,l),l.onDestroy(()=>this.destroy(n)),this.players.push(l),l}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function K8e(t){return new j(3301,!1)}();return e}listen(n,e,i,o){const r=Hv(e,"","","");return Rv(this._getPlayer(n),i,r,o),()=>{}}command(n,e,i,o){if("register"==i)return void this.register(n,o[0]);if("create"==i)return void this.create(n,e,o[0]||{});const r=this._getPlayer(n);switch(i){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(n)}}}const WI="ng-animate-queued",i9="ng-animate-disabled",Wfe=[],GI={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Gfe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Jr="__ng_removed";class o9{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function Zfe(t){return t??null}(i?n.value:n),i){const{value:r,...s}=n;this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const B2="void",r9=new o9(B2);class qfe{constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,wr(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function J8e(t,n){return new j(3302,!1)}();if(null==i||0==i.length)throw function Z8e(t){return new j(3303,!1)}();if(!function Qfe(t){return"start"==t||"done"==t}(i))throw function Q8e(t,n){return new j(3400,!1)}();const r=ir(this._elementListeners,n,[]),s={name:e,phase:i,callback:o};r.push(s);const a=ir(this._engine.statesByElement,n,new Map);return a.has(e)||(wr(n,Y6),wr(n,Y6+"-"+e),a.set(e,r9)),()=>{this._engine.afterFlush(()=>{const c=r.indexOf(s);c>=0&&r.splice(c,1),this._triggers.has(e)||a.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function X8e(t){return new j(3401,!1)}();return e}trigger(n,e,i,o=!0){const r=this._getTrigger(e),s=new s9(this.id,e,n);let a=this._engine.statesByElement.get(n);a||(wr(n,Y6),wr(n,Y6+"-"+e),this._engine.statesByElement.set(n,a=new Map));let c=a.get(e);const l=new o9(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&l.absorbOptions(c.options),a.set(e,l),c||(c=r9),l.value!==B2&&c.value===l.value){if(!function tme(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{$c(n,E),_s(n,k)})}return}const _=ir(this._engine.playersByElement,n,[]);_.forEach(z=>{z.namespaceId==this.id&&z.triggerName==e&&z.queued&&z.destroy()});let b=r.matchTransition(c.value,l.value,n,l.params),y=!1;if(!b){if(!o)return;b=r.fallbackTransition,y=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:b,fromState:c,toState:l,player:s,isFallbackTransition:y}),y||(wr(n,WI),s.onStart(()=>{W1(n,WI)})),s.onDone(()=>{let z=this.players.indexOf(s);z>=0&&this.players.splice(z,1);const E=this._engine.playersByElement.get(n);if(E){let k=E.indexOf(s);k>=0&&E.splice(k,1)}}),this.players.push(s),_.push(s),s}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,U6,!0);i.forEach(o=>{if(o[Jr])return;const r=this._engine.fetchNamespacesByElement(o);r.size?r.forEach(s=>s.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(n,e,i,o){const r=this._engine.statesByElement.get(n),s=new Map;if(r){const a=[];if(r.forEach((c,l)=>{if(s.set(l,c.value),this._triggers.has(l)){const u=this.trigger(n,l,B2,o);u&&a.push(u)}}),a.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,s),i&&xa(a).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const o=new Set;e.forEach(r=>{const s=r.name;if(o.has(s))return;o.add(s);const c=this._triggers.get(s).fallbackTransition,l=i.get(s)||r9,u=new o9(B2),p=new s9(this.id,s,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:s,transition:c,fromState:l,toState:u,player:p,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let o=!1;if(i.totalAnimations){const r=i.players.length?i.playersByQueriedElement.get(n):[];if(r&&r.length)o=!0;else{let s=n;for(;s=s.parentNode;)if(i.statesByElement.get(s)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const r=n[Jr];(!r||r===GI)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){wr(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const r=i.element,s=this._elementListeners.get(r);s&&s.forEach(a=>{if(a.name==i.triggerName){const c=Hv(r,i.triggerName,i.fromState.value,i.toState.value);c._data=n,Rv(i.player,a.phase,c,a.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const r=i.transition.ast.depCount,s=o.transition.ast.depCount;return 0==r||0==s?r-s:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}}class Kfe{_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i){this.bodyNode=n,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,r)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new qfe(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let s=!1,a=this.driver.getParentElement(e);for(;a;){const c=o.get(a);if(c){const l=i.indexOf(c);i.splice(l+1,0,n),s=!0;break}a=this.driver.getParentElement(a)}s||i.unshift(n)}else i.push(n);return o.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let o=this._namespaceLookup[n];o&&o.register(e,i)&&this.totalAnimations++}destroy(n,e){n&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(n);this.namespacesByHostElement.delete(i.hostElement);const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1),i.destroy(e),delete this._namespaceLookup[n]}))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let o of i.values())if(o.namespaceId){const r=this._fetchNamespace(o.namespaceId);r&&e.add(r)}return e}trigger(n,e,i,o){if(X6(e)){const r=this._fetchNamespace(n);if(r)return r.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!X6(e))return;const r=e[Jr];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const s=this.collectedLeaveElements.indexOf(e);s>=0&&this.collectedLeaveElements.splice(s,1)}if(n){const s=this._fetchNamespace(n);s&&s.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),wr(n,i9)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),W1(n,i9))}removeNode(n,e,i){if(X6(e)){const o=n?this._fetchNamespace(n):null;o?o.removeNode(e,i):this.markElementAsRemoved(n,e,!1,i);const r=this.namespacesByHostElement.get(e);r&&r.id!==n&&r.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(n,e,i,o,r){this.collectedLeaveElements.push(e),e[Jr]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:r}}listen(n,e,i,o,r){return X6(e)?this._fetchNamespace(n).listen(e,i,o,r):()=>{}}_buildInstruction(n,e,i,o,r){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,o,n.fromState.options,n.toState.options,e,r)}destroyInnerAnimations(n){let e=this.driver.query(n,U6,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Wv,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return xa(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[Jr];if(e&&e.setForRemoval){if(n[Jr]=GI,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(i9)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?xa(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function efe(t){return new j(3402,!1)}()}_flushAnimations(n,e){const i=new J6,o=[],r=new Map,s=[],a=new Map,c=new Map,l=new Map,u=new Set;this.disabledNodes.forEach(Pe=>{u.add(Pe);const Je=this.driver.query(Pe,".ng-animate-queued",!0);for(let tt=0;tt{const tt=Uv+z++;y.set(Je,tt),Pe.forEach(Jt=>wr(Jt,tt))});const E=[],k=new Set,A=new Set;for(let Pe=0;Pek.add(Jt)):A.add(Je))}const ie=new Map,pe=JI(_,Array.from(k));pe.forEach((Pe,Je)=>{const tt=$6+z++;ie.set(Je,tt),Pe.forEach(Jt=>wr(Jt,tt))}),n.push(()=>{b.forEach((Pe,Je)=>{const tt=y.get(Je);Pe.forEach(Jt=>W1(Jt,tt))}),pe.forEach((Pe,Je)=>{const tt=ie.get(Je);Pe.forEach(Jt=>W1(Jt,tt))}),E.forEach(Pe=>{this.processLeaveNode(Pe)})});const xe=[],Ge=[];for(let Pe=this._namespaceList.length-1;Pe>=0;Pe--)this._namespaceList[Pe].drainQueuedTransitions(e).forEach(tt=>{const Jt=tt.player,gi=tt.element;if(xe.push(Jt),this.collectedEnterElements.length){const ao=gi[Jr];if(ao&&ao.setForMove){if(ao.previousTriggersValues&&ao.previousTriggersValues.has(tt.triggerName)){const Uc=ao.previousTriggersValues.get(tt.triggerName),zr=this.statesByElement.get(tt.element);if(zr&&zr.has(tt.triggerName)){const tp=zr.get(tt.triggerName);tp.value=Uc,zr.set(tt.triggerName,tp)}}return void Jt.destroy()}}const bs=!p||!this.driver.containsElement(p,gi),cr=ie.get(gi),Ea=y.get(gi),Un=this._buildInstruction(tt,i,Ea,cr,bs);if(Un.errors&&Un.errors.length)return void Ge.push(Un);if(bs)return Jt.onStart(()=>$c(gi,Un.fromStyles)),Jt.onDestroy(()=>_s(gi,Un.toStyles)),void o.push(Jt);if(tt.isFallbackTransition)return Jt.onStart(()=>$c(gi,Un.fromStyles)),Jt.onDestroy(()=>_s(gi,Un.toStyles)),void o.push(Jt);const aN=[];Un.timelines.forEach(ao=>{ao.stretchStartingKeyframe=!0,this.disabledNodes.has(ao.element)||aN.push(ao)}),Un.timelines=aN,i.append(gi,Un.timelines),s.push({instruction:Un,player:Jt,element:gi}),Un.queriedElements.forEach(ao=>ir(a,ao,[]).push(Jt)),Un.preStyleProps.forEach((ao,Uc)=>{if(ao.size){let zr=c.get(Uc);zr||c.set(Uc,zr=new Set),ao.forEach((tp,l9)=>zr.add(l9))}}),Un.postStyleProps.forEach((ao,Uc)=>{let zr=l.get(Uc);zr||l.set(Uc,zr=new Set),ao.forEach((tp,l9)=>zr.add(l9))})});if(Ge.length){const Pe=[];Ge.forEach(Je=>{Pe.push(function tfe(t,n){return new j(3505,!1)}())}),xe.forEach(Je=>Je.destroy()),this.reportError(Pe)}const dt=new Map,Bt=new Map;s.forEach(Pe=>{const Je=Pe.element;i.has(Je)&&(Bt.set(Je,Je),this._beforeAnimationBuild(Pe.player.namespaceId,Pe.instruction,dt))}),o.forEach(Pe=>{const Je=Pe.element;this._getPreviousPlayers(Je,!1,Pe.namespaceId,Pe.triggerName,null).forEach(Jt=>{ir(dt,Je,[]).push(Jt),Jt.destroy()})});const zt=E.filter(Pe=>QI(Pe,c,l)),In=new Map;KI(In,this.driver,A,l,Hs).forEach(Pe=>{QI(Pe,c,l)&&zt.push(Pe)});const Kn=new Map;b.forEach((Pe,Je)=>{KI(Kn,this.driver,new Set(Pe),c,"!")}),zt.forEach(Pe=>{const Je=In.get(Pe),tt=Kn.get(Pe);In.set(Pe,new Map([...Je?.entries()??[],...tt?.entries()??[]]))});const rr=[],sr=[],ar={};s.forEach(Pe=>{const{element:Je,player:tt,instruction:Jt}=Pe;if(i.has(Je)){if(u.has(Je))return tt.onDestroy(()=>_s(Je,Jt.toStyles)),tt.disabled=!0,tt.overrideTotalTime(Jt.totalTime),void o.push(tt);let gi=ar;if(Bt.size>1){let cr=Je;const Ea=[];for(;cr=cr.parentNode;){const Un=Bt.get(cr);if(Un){gi=Un;break}Ea.push(cr)}Ea.forEach(Un=>Bt.set(Un,gi))}const bs=this._buildAnimation(tt.namespaceId,Jt,dt,r,Kn,In);if(tt.setRealPlayer(bs),gi===ar)rr.push(tt);else{const cr=this.playersByElement.get(gi);cr&&cr.length&&(tt.parentPlayer=xa(cr)),o.push(tt)}}else $c(Je,Jt.fromStyles),tt.onDestroy(()=>_s(Je,Jt.toStyles)),sr.push(tt),u.has(Je)&&o.push(tt)}),sr.forEach(Pe=>{const Je=r.get(Pe.element);if(Je&&Je.length){const tt=xa(Je);Pe.setRealPlayer(tt)}}),o.forEach(Pe=>{Pe.parentPlayer?Pe.syncPlayerEvents(Pe.parentPlayer):Pe.destroy()});for(let Pe=0;Pe!bs.destroyed);gi.length?Xfe(this,Je,gi):this.processLeaveNode(Je)}return E.length=0,rr.forEach(Pe=>{this.players.push(Pe),Pe.onDone(()=>{Pe.destroy();const Je=this.players.indexOf(Pe);this.players.splice(Je,1)}),Pe.play()}),rr}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,r){let s=[];if(e){const a=this.playersByQueriedElement.get(n);a&&(s=a)}else{const a=this.playersByElement.get(n);if(a){const c=!r||r==B2;a.forEach(l=>{l.queued||!c&&l.triggerName!=o||s.push(l)})}}return(i||o)&&(s=s.filter(a=>!(i&&i!=a.namespaceId||o&&o!=a.triggerName))),s}_beforeAnimationBuild(n,e,i){const r=e.element,s=e.isRemovalTransition?void 0:n,a=e.isRemovalTransition?void 0:e.triggerName;for(const c of e.timelines){const l=c.element,u=l!==r,p=ir(i,l,[]);this._getPreviousPlayers(l,u,s,a,e.toState).forEach(b=>{const y=b.getRealPlayer();y.beforeDestroy&&y.beforeDestroy(),b.destroy(),p.push(b)})}$c(r,e.fromStyles)}_buildAnimation(n,e,i,o,r,s){const a=e.triggerName,c=e.element,l=[],u=new Set,p=new Set,_=e.timelines.map(y=>{const z=y.element;u.add(z);const E=z[Jr];if(E&&E.removedBeforeQueried)return new e2(y.duration,y.delay);const k=z!==c,A=function eme(t){const n=[];return ZI(t,n),n}((i.get(z)||Wfe).map(dt=>dt.getRealPlayer())).filter(dt=>!!dt.element&&dt.element===z),ie=r.get(z),pe=s.get(z),xe=xI(this._normalizer,y.keyframes,ie,pe),Ge=this._buildPlayer(y,xe,A);if(y.subTimeline&&o&&p.add(z),k){const dt=new s9(n,a,z);dt.setRealPlayer(Ge),l.push(dt)}return Ge});l.forEach(y=>{ir(this.playersByQueriedElement,y.element,[]).push(y),y.onDone(()=>function Jfe(t,n,e){let i=t.get(n);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,y.element,y))}),u.forEach(y=>wr(y,II));const b=xa(_);return b.onDestroy(()=>{u.forEach(y=>W1(y,II)),_s(c,e.toStyles)}),p.forEach(y=>{ir(o,y,[]).push(b)}),b}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new e2(n.duration,n.delay)}}class s9{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new e2,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>Rv(n,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){ir(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function X6(t){return t&&1===t.nodeType}function qI(t,n){const e=t.style.display;return t.style.display=n??"none",e}function KI(t,n,e,i,o){const r=[];e.forEach(c=>r.push(qI(c)));const s=[];i.forEach((c,l)=>{const u=new Map;c.forEach(p=>{const _=n.computeStyle(l,p,o);u.set(p,_),(!_||0==_.length)&&(l[Jr]=Gfe,s.push(l))}),t.set(l,u)});let a=0;return e.forEach(c=>qI(c,r[a++])),s}function JI(t,n){const e=new Map;if(t.forEach(a=>e.set(a,[])),0==n.length)return e;const o=new Set(n),r=new Map;function s(a){if(!a)return 1;let c=r.get(a);if(c)return c;const l=a.parentNode;return c=e.has(l)?l:o.has(l)?1:s(l),r.set(a,c),c}return n.forEach(a=>{const c=s(a);1!==c&&e.get(c).push(a)}),e}function wr(t,n){t.classList?.add(n)}function W1(t,n){t.classList?.remove(n)}function Xfe(t,n,e){xa(e).onDone(()=>t.processLeaveNode(n))}function ZI(t,n){for(let e=0;eo.add(r)):n.set(t,i),e.delete(t),!0}class j2{constructor(n,e,i){this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,r)=>{},this._transitionEngine=new Kfe(n.body,e,i),this._timelineEngine=new Bfe(n.body,e,i),this._transitionEngine.onRemovalComplete=(o,r)=>this.onRemovalComplete(o,r)}registerTrigger(n,e,i,o,r){const s=n+"-"+o;let a=this._triggerCache[s];if(!a){const c=[],u=Zv(this._driver,r,c,[]);if(c.length)throw function Y8e(t,n){return new j(3404,!1)}();a=function Ffe(t,n,e){return new Rfe(t,n,e)}(o,u,this._normalizer),this._triggerCache[s]=a}this._transitionEngine.registerTrigger(e,o,a)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,o){this._transitionEngine.insertNode(n,e,i,o)}onRemove(n,e,i){this._transitionEngine.removeNode(n,e,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,o){if("@"==i.charAt(0)){const[r,s]=EI(i);this._timelineEngine.command(r,e,s,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,r){if("@"==i.charAt(0)){const[s,a]=EI(i);return this._timelineEngine.listen(s,e,a,r)}return this._transitionEngine.listen(n,e,i,o,r)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(n){this._transitionEngine.afterFlushAnimationsDone(n)}}class $2{static#e=this.initialStylesByElement=new WeakMap;constructor(n,e,i){this._element=n,this._startStyles=e,this._endStyles=i,this._state=0;let o=$2.initialStylesByElement.get(n);o||$2.initialStylesByElement.set(n,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&_s(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(_s(this._element,this._initialStyles),this._endStyles&&(_s(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&($2.initialStylesByElement.delete(this._element),this._startStyles&&($c(this._element,this._startStyles),this._endStyles=null),this._endStyles&&($c(this._element,this._endStyles),this._endStyles=null),_s(this._element,this._initialStyles),this._state=3)}}function a9(t){let n=null;return t.forEach((e,i)=>{(function ime(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class XI{constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map;const e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const e=[];return n.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(n,e,i){return n.animate(this._convertKeyframesToObject(e),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&n.set(o,this._finished?i:Jv(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class eN{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}containsElement(n,e){return AI(n,e)}getParentElement(n){return Bv(n)}query(n,e,i){return OI(n,e,i)}computeStyle(n,e,i){return Jv(n,e)}animate(n,e,i,o,r,s=[]){const c={duration:i,delay:o,fill:0==o?"both":"forwards"};r&&(c.easing=r);const l=new Map,u=s.filter(b=>b instanceof XI);(function ffe(t,n){return 0===t||0===n})(i,o)&&u.forEach(b=>{b.currentSnapshot.forEach((y,z)=>l.set(z,y))});let p=function ufe(t){return t.length?t[0]instanceof Map?t:t.map(n=>new Map(Object.entries(n))):[]}(e).map(b=>new Map(b));p=function mfe(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((r,s)=>{i.has(s)||o.push(s),i.set(s,r)}),o.length)for(let r=1;rs.set(a,Jv(t,a)))}}return n}(n,p,l);const _=function nme(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=a9(n[0]),n.length>1&&(i=a9(n[n.length-1]))):n instanceof Map&&(e=a9(n)),e||i?new $2(t,e,i):null}(n,p);return new XI(n,p,c,_)}}const tN="@.disabled";class nN{constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(n){this.delegate.destroyNode?.(n)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,o=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,o)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,o){this.delegate.setAttribute(n,e,i,o)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,o){this.delegate.setStyle(n,e,i,o)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==tN?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class ome extends nN{constructor(n,e,i,o,r){super(e,i,o,r),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==tN?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const o=function rme(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let r=e.slice(1),s="";return"@"!=r.charAt(0)&&([r,s]=function sme(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(r)),this.engine.listen(this.namespaceId,o,r,s,a=>{this.factory.scheduleListenerCallback(a._data||-1,i,a)})}return this.delegate.listen(n,e,i)}}class ame{constructor(n,e,i){this.delegate=n,this.engine=e,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,e.onRemovalComplete=(o,r)=>{const s=r?.parentNode(o);s&&r.removeChild(s,o)}}createRenderer(n,e){const o=this.delegate.createRenderer(n,e);if(!n||!e?.data?.animation){const l=this._rendererCache;let u=l.get(o);return u||(u=new nN("",o,this.engine,()=>l.delete(o)),l.set(o,u)),u}const r=e.id,s=e.id+"-"+this._currentId;this._currentId++,this.engine.register(s,n);const a=l=>{Array.isArray(l)?l.forEach(a):this.engine.registerTrigger(r,s,n,l.name,l)};return e.data.animation.forEach(a),new ome(this,s,o,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(n,e,i){if(n>=0&&ne(i));const o=this._animationCallbacksBuffer;0==o.length&&queueMicrotask(()=>{this._zone.run(()=>{o.forEach(r=>{const[s,a]=r;s(a)}),this._animationCallbacksBuffer=[]})}),o.push([e,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}let cme=(()=>{class t extends j2{constructor(e,i,o){super(e,i,o)}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(i){return new(i||t)(R(It),R($v),R(Yv))};static#t=this.\u0275prov=ae({token:t,factory:t.\u0275fac})}return t})();const iN=[{provide:Yv,useFactory:function lme(){return new FI}},{provide:j2,useClass:cme},{provide:Qa,useFactory:function dme(t,n,e){return new ame(t,n,e)},deps:[ig,j2,De]}],c9=[{provide:$v,useFactory:()=>new eN},{provide:ta,useValue:"BrowserAnimations"},...iN],oN=[{provide:$v,useClass:jv},{provide:ta,useValue:"NoopAnimations"},...iN];let ume=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?oN:c9}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({providers:c9,imports:[sg]})}return t})();const hme=["nzType","avatar"],pme=["*"];function fme(t,n){if(1&t&&(f(0,"div",5),S(1,"nz-skeleton-element",6),m()),2&t){const e=g(2);d(),h("nzSize",e.avatar.size||"default")("nzShape",e.avatar.shape||"circle")}}function mme(t,n){if(1&t&&S(0,"h3",7),2&t){const e=g(2);Lt("width",e.toCSSUnit(e.title.width))}}function gme(t,n){if(1&t&&S(0,"li"),2&t){const e=n.index,i=g(3);Lt("width",i.toCSSUnit(i.widthList[e]))}}function vme(t,n){if(1&t&&(f(0,"ul",8),w(1,gme,1,2,"li",9),m()),2&t){const e=g(2);d(),h("ngForOf",e.rowsList)}}function _me(t,n){if(1&t&&($e(0),w(1,fme,2,2,"div",1),f(2,"div",2),w(3,mme,1,2,"h3",3)(4,vme,2,1,"ul",4),m(),Ye()),2&t){const e=g();d(),h("ngIf",!!e.nzAvatar),d(2),h("ngIf",!!e.nzTitle),d(),h("ngIf",!!e.nzParagraph)}}function bme(t,n){1&t&&($e(0),bt(1),Ye())}let yme=(()=>{class t{constructor(){this.nzActive=!1,this.nzBlock=!1}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["nz-skeleton-element"]],hostAttrs:[1,"ant-skeleton","ant-skeleton-element"],hostVars:4,hostBindings:function(i,o){2&i&&Q("ant-skeleton-active",o.nzActive)("ant-skeleton-block",o.nzBlock)},inputs:{nzActive:[2,"nzActive","nzActive",O],nzType:"nzType",nzBlock:[2,"nzBlock","nzBlock",O]},standalone:!0,features:[je]})}return t})(),Cme=(()=>{class t{constructor(){this.nzShape="circle",this.nzSize="default",this.styleMap={}}ngOnChanges(e){if(e.nzSize&&"number"==typeof this.nzSize){const i=`${this.nzSize}px`;this.styleMap={width:i,height:i,"line-height":i}}else this.styleMap={}}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-skeleton-element","nzType","avatar"]],inputs:{nzShape:"nzShape",nzSize:"nzSize"},standalone:!0,features:[ke,me],attrs:hme,decls:1,vars:9,consts:[[1,"ant-skeleton-avatar",3,"ngStyle"]],template:function(i,o){1&i&&S(0,"span",0),2&i&&(Q("ant-skeleton-avatar-square","square"===o.nzShape)("ant-skeleton-avatar-circle","circle"===o.nzShape)("ant-skeleton-avatar-lg","large"===o.nzSize)("ant-skeleton-avatar-sm","small"===o.nzSize),h("ngStyle",o.styleMap))},dependencies:[ti],encapsulation:2,changeDetection:0})}return t})(),wme=(()=>{class t{constructor(e){this.cdr=e,this.nzActive=!1,this.nzLoading=!0,this.nzRound=!1,this.nzTitle=!0,this.nzAvatar=!1,this.nzParagraph=!0,this.rowsList=[],this.widthList=[]}toCSSUnit(e=""){return D1(e)}getTitleProps(){const e=!!this.nzAvatar,i=!!this.nzParagraph;let o="";return!e&&i?o="38%":e&&i&&(o="50%"),{width:o,...this.getProps(this.nzTitle)}}getAvatarProps(){return{shape:this.nzTitle&&!this.nzParagraph?"square":"circle",size:"large",...this.getProps(this.nzAvatar)}}getParagraphProps(){const e=!!this.nzAvatar,i=!!this.nzTitle,o={};return(!e||!i)&&(o.width="61%"),o.rows=!e&&i?3:2,{...o,...this.getProps(this.nzParagraph)}}getProps(e){return e&&"object"==typeof e?e:{}}getWidthList(){const{width:e,rows:i}=this.paragraph;let o=[];return e&&Array.isArray(e)?o=e:e&&!Array.isArray(e)&&(o=[],o[i-1]=e),o}updateProps(){this.title=this.getTitleProps(),this.avatar=this.getAvatarProps(),this.paragraph=this.getParagraphProps(),this.rowsList=[...Array(this.paragraph.rows)],this.widthList=this.getWidthList(),this.cdr.markForCheck()}ngOnInit(){this.updateProps()}ngOnChanges(e){(e.nzTitle||e.nzAvatar||e.nzParagraph)&&this.updateProps()}static#e=this.\u0275fac=function(i){return new(i||t)(v(Ue))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-skeleton"]],hostAttrs:[1,"ant-skeleton"],hostVars:6,hostBindings:function(i,o){2&i&&Q("ant-skeleton-with-avatar",!!o.nzAvatar)("ant-skeleton-active",o.nzActive)("ant-skeleton-round",!!o.nzRound)},inputs:{nzActive:"nzActive",nzLoading:"nzLoading",nzRound:"nzRound",nzTitle:"nzTitle",nzAvatar:"nzAvatar",nzParagraph:"nzParagraph"},exportAs:["nzSkeleton"],standalone:!0,features:[ke,me],ngContentSelectors:pme,decls:2,vars:2,consts:[[4,"ngIf"],["class","ant-skeleton-header",4,"ngIf"],[1,"ant-skeleton-content"],["class","ant-skeleton-title",3,"width",4,"ngIf"],["class","ant-skeleton-paragraph",4,"ngIf"],[1,"ant-skeleton-header"],["nzType","avatar",3,"nzSize","nzShape"],[1,"ant-skeleton-title"],[1,"ant-skeleton-paragraph"],[3,"width",4,"ngFor","ngForOf"]],template:function(i,o){1&i&&(Et(),w(0,_me,5,3,"ng-container",0)(1,bme,2,0,"ng-container",0)),2&i&&(h("ngIf",o.nzLoading),d(),h("ngIf",!o.nzLoading))},dependencies:[yme,Cme,Tt,zn],encapsulation:2,changeDetection:0})}return t})(),zme=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({})}return t})();function Sme(t,n){}function Tme(t,n){if(1&t&&(f(0,"div",0),w(1,Sme,0,0,"ng-template",2),m()),2&t){const e=g();d(),h("ngTemplateOutlet",e.nzAvatar)}}function Mme(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzTitle)}}function Dme(t,n){if(1&t&&(f(0,"div",3),w(1,Mme,2,1,"ng-container",5),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzTitle)}}function xme(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzDescription)}}function Eme(t,n){if(1&t&&(f(0,"div",4),w(1,xme,2,1,"ng-container",5),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzDescription)}}function kme(t,n){if(1&t&&(f(0,"div",1),w(1,Dme,2,1,"div",3)(2,Eme,2,1,"div",4),m()),2&t){const e=g();d(),he(e.nzTitle?1:-1),d(),he(e.nzDescription?2:-1)}}const rN=["*"];function Ame(t,n){1&t&&bt(0)}const Ome=()=>({rows:4});function Pme(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzTitle)}}function Ime(t,n){if(1&t&&(f(0,"div",6),w(1,Pme,2,1,"ng-container",9),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzTitle)}}function Nme(t,n){if(1&t&&($e(0),C(1),Ye()),2&t){const e=g(3);d(),x(e.nzExtra)}}function Vme(t,n){if(1&t&&(f(0,"div",7),w(1,Nme,2,1,"ng-container",9),m()),2&t){const e=g(2);d(),h("nzStringTemplateOutlet",e.nzExtra)}}function Fme(t,n){}function Rme(t,n){1&t&&w(0,Fme,0,0,"ng-template",8),2&t&&h("ngTemplateOutlet",g(2).listOfNzCardTabComponent.template)}function Lme(t,n){if(1&t&&(f(0,"div",0)(1,"div",5),w(2,Ime,2,1,"div",6)(3,Vme,2,1,"div",7),m(),w(4,Rme,1,1,null,8),m()),2&t){const e=g();d(2),he(e.nzTitle?2:-1),d(),he(e.nzExtra?3:-1),d(),he(e.listOfNzCardTabComponent?4:-1)}}function Hme(t,n){}function Bme(t,n){if(1&t&&(f(0,"div",1),w(1,Hme,0,0,"ng-template",8),m()),2&t){const e=g();d(),h("ngTemplateOutlet",e.nzCover)}}function jme(t,n){1&t&&S(0,"nz-skeleton",3),2&t&&h("nzActive",!0)("nzTitle",!1)("nzParagraph",Ti(3,Ome))}function $me(t,n){1&t&&bt(0)}function Yme(t,n){}function Ume(t,n){if(1&t&&(f(0,"li")(1,"span"),w(2,Yme,0,0,"ng-template",8),m()()),2&t){const e=n.$implicit;Lt("width",100/g(2).nzActions.length,"%"),d(2),h("ngTemplateOutlet",e)}}function Wme(t,n){if(1&t&&(f(0,"ul",4),ji(1,Ume,3,3,"li",10,Zw),m()),2&t){const e=g();d(),$i(e.nzActions)}}let Gme=(()=>{class t{constructor(){this.nzHoverable=!0}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275dir=de({type:t,selectors:[["","nz-card-grid",""]],hostAttrs:[1,"ant-card-grid"],hostVars:2,hostBindings:function(i,o){2&i&&Q("ant-card-hoverable",o.nzHoverable)},inputs:{nzHoverable:[2,"nzHoverable","nzHoverable",O]},exportAs:["nzCardGrid"],standalone:!0,features:[je]})}return t})(),qme=(()=>{class t{constructor(){this.nzTitle=null,this.nzDescription=null,this.nzAvatar=null}static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-card-meta"]],hostAttrs:[1,"ant-card-meta"],inputs:{nzTitle:"nzTitle",nzDescription:"nzDescription",nzAvatar:"nzAvatar"},exportAs:["nzCardMeta"],standalone:!0,features:[me],decls:2,vars:2,consts:[[1,"ant-card-meta-avatar"],[1,"ant-card-meta-detail"],[3,"ngTemplateOutlet"],[1,"ant-card-meta-title"],[1,"ant-card-meta-description"],[4,"nzStringTemplateOutlet"]],template:function(i,o){1&i&&w(0,Tme,2,1,"div",0)(1,kme,3,2,"div",1),2&i&&(he(o.nzAvatar?0:-1),d(),he(o.nzTitle||o.nzDescription?1:-1))},dependencies:[Vn,Tn,Sn],encapsulation:2,changeDetection:0})}return t})(),Kme=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-card-tab"]],viewQuery:function(i,o){if(1&i&&ft(Gt,7),2&i){let r;Ae(r=Oe())&&(o.template=r.first)}},exportAs:["nzCardTab"],standalone:!0,features:[me],ngContentSelectors:rN,decls:1,vars:0,template:function(i,o){1&i&&(Et(),w(0,Ame,1,0,"ng-template"))},encapsulation:2,changeDetection:0})}return t})(),Jme=(()=>{class t{constructor(e,i,o){this.nzConfigService=e,this.cdr=i,this.directionality=o,this._nzModuleName="card",this.nzBordered=!0,this.nzBorderless=!1,this.nzLoading=!1,this.nzHoverable=!1,this.nzBodyStyle=null,this.nzActions=[],this.nzType=null,this.nzSize="default",this.dir="ltr",this.destroy$=new N,this.nzConfigService.getConfigChangeEventForComponent("card").pipe(I(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){this.directionality.change?.pipe(I(this.destroy$)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}static#e=this.\u0275fac=function(i){return new(i||t)(v(si),v(Ue),v(wt,8))};static#t=this.\u0275cmp=q({type:t,selectors:[["nz-card"]],contentQueries:function(i,o,r){if(1&i&&(fn(r,Kme,5),fn(r,Gme,4)),2&i){let s;Ae(s=Oe())&&(o.listOfNzCardTabComponent=s.first),Ae(s=Oe())&&(o.listOfNzCardGridDirective=s)}},hostAttrs:[1,"ant-card"],hostVars:16,hostBindings:function(i,o){2&i&&Q("ant-card-loading",o.nzLoading)("ant-card-bordered",!1===o.nzBorderless&&o.nzBordered)("ant-card-hoverable",o.nzHoverable)("ant-card-small","small"===o.nzSize)("ant-card-contain-grid",o.listOfNzCardGridDirective&&o.listOfNzCardGridDirective.length)("ant-card-type-inner","inner"===o.nzType)("ant-card-contain-tabs",!!o.listOfNzCardTabComponent)("ant-card-rtl","rtl"===o.dir)},inputs:{nzBordered:[2,"nzBordered","nzBordered",O],nzBorderless:[2,"nzBorderless","nzBorderless",O],nzLoading:[2,"nzLoading","nzLoading",O],nzHoverable:[2,"nzHoverable","nzHoverable",O],nzBodyStyle:"nzBodyStyle",nzCover:"nzCover",nzActions:"nzActions",nzType:"nzType",nzSize:"nzSize",nzTitle:"nzTitle",nzExtra:"nzExtra"},exportAs:["nzCard"],standalone:!0,features:[je,me],ngContentSelectors:rN,decls:6,vars:5,consts:[[1,"ant-card-head"],[1,"ant-card-cover"],[1,"ant-card-body",3,"ngStyle"],[3,"nzActive","nzTitle","nzParagraph"],[1,"ant-card-actions"],[1,"ant-card-head-wrapper"],[1,"ant-card-head-title"],[1,"ant-card-extra"],[3,"ngTemplateOutlet"],[4,"nzStringTemplateOutlet"],[3,"width"]],template:function(i,o){1&i&&(Et(),w(0,Lme,5,3,"div",0)(1,Bme,2,1,"div",1),f(2,"div",2),w(3,jme,1,4,"nz-skeleton",3)(4,$me,1,0),m(),w(5,Wme,3,0,"ul",4)),2&i&&(he(o.nzTitle||o.nzExtra||o.listOfNzCardTabComponent?0:-1),d(),he(o.nzCover?1:-1),d(),h("ngStyle",o.nzBodyStyle),d(),he(o.nzLoading?3:4),d(2),he(o.nzActions.length?5:-1))},dependencies:[Tn,Sn,Vn,ti,zme,wme],encapsulation:2,changeDetection:0})}return kt([Nt()],t.prototype,"nzBordered",void 0),kt([Nt()],t.prototype,"nzBorderless",void 0),kt([Nt()],t.prototype,"nzHoverable",void 0),kt([Nt()],t.prototype,"nzSize",void 0),t})(),Zme=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t});static#n=this.\u0275inj=Ze({imports:[Jme,qme,_3]})}return t})();const Qme=[xk,Ek,{name:"share-alt",theme:"outline",icon:''},kk,Ak,Pk,{name:"minus",theme:"outline",icon:''},{name:"plus",theme:"outline",icon:''},{name:"stop",theme:"outline",icon:''}];let Xme=(()=>{class t{static#e=this.\u0275fac=function(i){return new(i||t)};static#t=this.\u0275mod=Qe({type:t,bootstrap:[w8e]});static#n=this.\u0275inj=Ze({providers:[{provide:E7,useValue:x7}],imports:[ume,jae,N1e,whe,DP,nse,lhe,m3e,Y7,h2,h1e,tue,d6,B7,Zme,On.forRoot(Qme),SE,P2e,R7,L0e,x6e,A6e,cue,I6,w3e,F3e,m4e,Q0e,uae,sg,Ic,sg,Bpe]})}return t})();eJ().bootstrapModule(Xme).catch(t=>console.error(t))},20:(Ve,jt,fe)=>{"use strict";var X=fe(258),le=fe(128),$=le(X("String.prototype.indexOf"));Ve.exports=function(Me,ce){var Z=X(Me,!!ce);return"function"==typeof Z&&$(Me,".prototype.")>-1?le(Z):Z}},128:(Ve,jt,fe)=>{"use strict";var X=fe(992),le=fe(258),$=fe(358),V=fe(758),Me=le("%Function.prototype.apply%"),ce=le("%Function.prototype.call%"),Z=le("%Reflect.apply%",!0)||X.call(ce,Me),Ne=fe(570),Ee=le("%Math.max%");Ve.exports=function(Re){if("function"!=typeof Re)throw new V("a function is required");var re=Z(X,ce,arguments);return $(re,1+Ee(0,Re.length-(arguments.length-1)),!0)};var ye=function(){return Z(X,Me,arguments)};Ne?Ne(Ve.exports,"apply",{value:ye}):Ve.exports.apply=ye},821:function(Ve){Ve.exports=function(){var jt={686:function(le,$,V){"use strict";V.d($,{default:function(){return Nn}});var Me=V(279),ce=V.n(Me),Z=V(370),Ne=V.n(Z),Ee=V(817),ye=V.n(Ee);function te(ve){try{return document.execCommand(ve)}catch{return!1}}var re=function(ze){var we=ye()(ze);return te("cut"),we};var K=function(ze,we){var Le=function ne(ve){var ze="rtl"===document.documentElement.getAttribute("dir"),we=document.createElement("textarea");we.style.fontSize="12pt",we.style.border="0",we.style.padding="0",we.style.margin="0",we.style.position="absolute",we.style[ze?"right":"left"]="-9999px";var Le=window.pageYOffset||document.documentElement.scrollTop;return we.style.top="".concat(Le,"px"),we.setAttribute("readonly",""),we.value=ve,we}(ze);we.container.appendChild(Le);var qe=ye()(Le);return te("copy"),Le.remove(),qe},P=function(ze){var we=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body},Le="";return"string"==typeof ze?Le=K(ze,we):ze instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(ze?.type)?Le=K(ze.value,we):(Le=ye()(ze),te("copy")),Le};function L(ve){return(L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(we){return typeof we}:function(we){return we&&"function"==typeof Symbol&&we.constructor===Symbol&&we!==Symbol.prototype?"symbol":typeof we})(ve)}var se=function(){var ze=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},we=ze.action,Le=void 0===we?"copy":we,qe=ze.container,gt=ze.target,Vt=ze.text;if("copy"!==Le&&"cut"!==Le)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==gt){if(!gt||"object"!==L(gt)||1!==gt.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===Le&>.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===Le&&(gt.hasAttribute("readonly")||gt.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return Vt?P(Vt,{container:qe}):gt?"cut"===Le?re(gt):P(gt,{container:qe}):void 0};function ue(ve){return(ue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(we){return typeof we}:function(we){return we&&"function"==typeof Symbol&&we.constructor===Symbol&&we!==Symbol.prototype?"symbol":typeof we})(ve)}function Se(ve,ze){for(var we=0;we"u"||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var qe,Le=Jn(ve);if(ze){var gt=Jn(this).constructor;qe=Reflect.construct(Le,arguments,gt)}else qe=Le.apply(this,arguments);return function _n(ve,ze){return!ze||"object"!==ue(ze)&&"function"!=typeof ze?function pt(ve){if(void 0===ve)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return ve}(ve):ze}(this,qe)}}function Jn(ve){return(Jn=Object.setPrototypeOf?Object.getPrototypeOf:function(we){return we.__proto__||Object.getPrototypeOf(we)})(ve)}function ln(ve,ze){var we="data-clipboard-".concat(ve);if(ze.hasAttribute(we))return ze.getAttribute(we)}var Lo=function(ve){nt(we,ve);var ze=ht(we);function we(Le,qe){var gt;return function ge(ve,ze){if(!(ve instanceof ze))throw new TypeError("Cannot call a class as a function")}(this,we),(gt=ze.call(this)).resolveOptions(qe),gt.listenClick(Le),gt}return function ut(ve,ze,we){return ze&&Se(ve.prototype,ze),we&&Se(ve,we),ve}(we,[{key:"resolveOptions",value:function(){var qe=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof qe.action?qe.action:this.defaultAction,this.target="function"==typeof qe.target?qe.target:this.defaultTarget,this.text="function"==typeof qe.text?qe.text:this.defaultText,this.container="object"===ue(qe.container)?qe.container:document.body}},{key:"listenClick",value:function(qe){var gt=this;this.listener=Ne()(qe,"click",function(Vt){return gt.onClick(Vt)})}},{key:"onClick",value:function(qe){var gt=qe.delegateTarget||qe.currentTarget,Vt=this.action(gt)||"copy",vi=se({action:Vt,container:this.container,target:this.target(gt),text:this.text(gt)});this.emit(vi?"success":"error",{action:Vt,text:vi,trigger:gt,clearSelection:function(){gt&>.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(qe){return ln("action",qe)}},{key:"defaultTarget",value:function(qe){var gt=ln("target",qe);if(gt)return document.querySelector(gt)}},{key:"defaultText",value:function(qe){return ln("text",qe)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(qe){var gt=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return P(qe,gt)}},{key:"cut",value:function(qe){return re(qe)}},{key:"isSupported",value:function(){var qe=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],Vt=!!document.queryCommandSupported;return("string"==typeof qe?[qe]:qe).forEach(function(vi){Vt=Vt&&!!document.queryCommandSupported(vi)}),Vt}}]),we}(ce()),Nn=Lo},828:function(le){if(typeof Element<"u"&&!Element.prototype.matches){var V=Element.prototype;V.matches=V.matchesSelector||V.mozMatchesSelector||V.msMatchesSelector||V.oMatchesSelector||V.webkitMatchesSelector}le.exports=function Me(ce,Z){for(;ce&&9!==ce.nodeType;){if("function"==typeof ce.matches&&ce.matches(Z))return ce;ce=ce.parentNode}}},438:function(le,$,V){var Me=V(828);function ce(Ee,ye,te,Re,re){var ne=Ne.apply(this,arguments);return Ee.addEventListener(te,ne,re),{destroy:function(){Ee.removeEventListener(te,ne,re)}}}function Ne(Ee,ye,te,Re){return function(re){re.delegateTarget=Me(re.target,ye),re.delegateTarget&&Re.call(Ee,re)}}le.exports=function Z(Ee,ye,te,Re,re){return"function"==typeof Ee.addEventListener?ce.apply(null,arguments):"function"==typeof te?ce.bind(null,document).apply(null,arguments):("string"==typeof Ee&&(Ee=document.querySelectorAll(Ee)),Array.prototype.map.call(Ee,function(ne){return ce(ne,ye,te,Re,re)}))}},879:function(le,$){$.node=function(V){return void 0!==V&&V instanceof HTMLElement&&1===V.nodeType},$.nodeList=function(V){var Me=Object.prototype.toString.call(V);return void 0!==V&&("[object NodeList]"===Me||"[object HTMLCollection]"===Me)&&"length"in V&&(0===V.length||$.node(V[0]))},$.string=function(V){return"string"==typeof V||V instanceof String},$.fn=function(V){return"[object Function]"===Object.prototype.toString.call(V)}},370:function(le,$,V){var Me=V(879),ce=V(438);le.exports=function Z(te,Re,re){if(!te&&!Re&&!re)throw new Error("Missing required arguments");if(!Me.string(Re))throw new TypeError("Second argument must be a String");if(!Me.fn(re))throw new TypeError("Third argument must be a Function");if(Me.node(te))return function Ne(te,Re,re){return te.addEventListener(Re,re),{destroy:function(){te.removeEventListener(Re,re)}}}(te,Re,re);if(Me.nodeList(te))return function Ee(te,Re,re){return Array.prototype.forEach.call(te,function(ne){ne.addEventListener(Re,re)}),{destroy:function(){Array.prototype.forEach.call(te,function(ne){ne.removeEventListener(Re,re)})}}}(te,Re,re);if(Me.string(te))return function ye(te,Re,re){return ce(document.body,te,Re,re)}(te,Re,re);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(le){le.exports=function $(V){var Me;if("SELECT"===V.nodeName)V.focus(),Me=V.value;else if("INPUT"===V.nodeName||"TEXTAREA"===V.nodeName){var ce=V.hasAttribute("readonly");ce||V.setAttribute("readonly",""),V.select(),V.setSelectionRange(0,V.value.length),ce||V.removeAttribute("readonly"),Me=V.value}else{V.hasAttribute("contenteditable")&&V.focus();var Z=window.getSelection(),Ne=document.createRange();Ne.selectNodeContents(V),Z.removeAllRanges(),Z.addRange(Ne),Me=Z.toString()}return Me}},279:function(le){function $(){}$.prototype={on:function(V,Me,ce){var Z=this.e||(this.e={});return(Z[V]||(Z[V]=[])).push({fn:Me,ctx:ce}),this},once:function(V,Me,ce){var Z=this;function Ne(){Z.off(V,Ne),Me.apply(ce,arguments)}return Ne._=Me,this.on(V,Ne,ce)},emit:function(V){for(var Me=[].slice.call(arguments,1),ce=((this.e||(this.e={}))[V]||[]).slice(),Z=0,Ne=ce.length;Z{"use strict";var X=fe(570),le=fe(413),$=fe(758),V=fe(798);Ve.exports=function(ce,Z,Ne){if(!ce||"object"!=typeof ce&&"function"!=typeof ce)throw new $("`obj` must be an object or a function`");if("string"!=typeof Z&&"symbol"!=typeof Z)throw new $("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new $("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new $("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new $("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new $("`loose`, if provided, must be a boolean");var Ee=arguments.length>3?arguments[3]:null,ye=arguments.length>4?arguments[4]:null,te=arguments.length>5?arguments[5]:null,Re=arguments.length>6&&arguments[6],re=!!V&&V(ce,Z);if(X)X(ce,Z,{configurable:null===te&&re?re.configurable:!te,enumerable:null===Ee&&re?re.enumerable:!Ee,value:Ne,writable:null===ye&&re?re.writable:!ye});else{if(!Re&&(Ee||ye||te))throw new le("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");ce[Z]=Ne}}},570:(Ve,jt,fe)=>{"use strict";var le=fe(258)("%Object.defineProperty%",!0)||!1;if(le)try{le({},"a",{value:1})}catch{le=!1}Ve.exports=le},756:Ve=>{"use strict";Ve.exports=EvalError},640:Ve=>{"use strict";Ve.exports=Error},933:Ve=>{"use strict";Ve.exports=RangeError},613:Ve=>{"use strict";Ve.exports=ReferenceError},413:Ve=>{"use strict";Ve.exports=SyntaxError},758:Ve=>{"use strict";Ve.exports=TypeError},286:Ve=>{"use strict";Ve.exports=URIError},578:function(Ve,jt){var fe,le;void 0!==(le="function"==typeof(fe=function(){"use strict";function V(ye,te,Re){var re=new XMLHttpRequest;re.open("GET",ye),re.responseType="blob",re.onload=function(){Ee(re.response,te,Re)},re.onerror=function(){console.error("could not download file")},re.send()}function Me(ye){var te=new XMLHttpRequest;te.open("HEAD",ye,!1);try{te.send()}catch{}return 200<=te.status&&299>=te.status}function ce(ye){try{ye.dispatchEvent(new MouseEvent("click"))}catch{var te=document.createEvent("MouseEvents");te.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),ye.dispatchEvent(te)}}var Z="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,Ne=Z.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),Ee=Z.saveAs||("object"!=typeof window||window!==Z?function(){}:"download"in HTMLAnchorElement.prototype&&!Ne?function(ye,te,Re){var re=Z.URL||Z.webkitURL,ne=document.createElement("a");ne.download=te=te||ye.name||"download",ne.rel="noopener","string"==typeof ye?(ne.href=ye,ne.origin===location.origin?ce(ne):Me(ne.href)?V(ye,te,Re):ce(ne,ne.target="_blank")):(ne.href=re.createObjectURL(ye),setTimeout(function(){re.revokeObjectURL(ne.href)},4e4),setTimeout(function(){ce(ne)},0))}:"msSaveOrOpenBlob"in navigator?function(ye,te,Re){if(te=te||ye.name||"download","string"!=typeof ye)navigator.msSaveOrOpenBlob(function $(ye,te){return typeof te>"u"?te={autoBom:!1}:"object"!=typeof te&&(console.warn("Deprecated: Expected third argument to be a object"),te={autoBom:!te}),te.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(ye.type)?new Blob(["\ufeff",ye],{type:ye.type}):ye}(ye,Re),te);else if(Me(ye))V(ye,te,Re);else{var re=document.createElement("a");re.href=ye,re.target="_blank",setTimeout(function(){ce(re)})}}:function(ye,te,Re,re){if((re=re||open("","_blank"))&&(re.document.title=re.document.body.innerText="downloading..."),"string"==typeof ye)return V(ye,te,Re);var ne="application/octet-stream"===ye.type,K=/constructor/i.test(Z.HTMLElement)||Z.safari,ee=/CriOS\/[\d]+/.test(navigator.userAgent);if((ee||ne&&K||Ne)&&typeof FileReader<"u"){var P=new FileReader;P.onloadend=function(){var se=P.result;se=ee?se:se.replace(/^data:[^;]*;/,"data:attachment/file;"),re?re.location.href=se:location=se,re=null},P.readAsDataURL(ye)}else{var L=Z.URL||Z.webkitURL,B=L.createObjectURL(ye);re?re.location=B:location.href=B,re=null,setTimeout(function(){L.revokeObjectURL(B)},4e4)}});Z.saveAs=Ee.saveAs=Ee,Ve.exports=Ee})?fe.apply(jt,[]):fe)&&(Ve.exports=le)},132:Ve=>{"use strict";var fe=Object.prototype.toString,X=Math.max,$=function(Z,Ne){for(var Ee=[],ye=0;ye{"use strict";var X=fe(132);Ve.exports=Function.prototype.bind||X},258:(Ve,jt,fe)=>{"use strict";var X,le=fe(640),$=fe(756),V=fe(933),Me=fe(613),ce=fe(413),Z=fe(758),Ne=fe(286),Ee=Function,ye=function(Nn){try{return Ee('"use strict"; return ('+Nn+").constructor;")()}catch{}},te=Object.getOwnPropertyDescriptor;if(te)try{te({},"")}catch{te=null}var Re=function(){throw new Z},re=te?function(){try{return Re}catch{try{return te(arguments,"callee").get}catch{return Re}}}():Re,ne=fe(900)(),K=fe(119)(),ee=Object.getPrototypeOf||(K?function(Nn){return Nn.__proto__}:null),P={},L=typeof Uint8Array>"u"||!ee?X:ee(Uint8Array),B={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?X:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?X:ArrayBuffer,"%ArrayIteratorPrototype%":ne&&ee?ee([][Symbol.iterator]()):X,"%AsyncFromSyncIteratorPrototype%":X,"%AsyncFunction%":P,"%AsyncGenerator%":P,"%AsyncGeneratorFunction%":P,"%AsyncIteratorPrototype%":P,"%Atomics%":typeof Atomics>"u"?X:Atomics,"%BigInt%":typeof BigInt>"u"?X:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?X:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?X:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?X:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":le,"%eval%":eval,"%EvalError%":$,"%Float32Array%":typeof Float32Array>"u"?X:Float32Array,"%Float64Array%":typeof Float64Array>"u"?X:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?X:FinalizationRegistry,"%Function%":Ee,"%GeneratorFunction%":P,"%Int8Array%":typeof Int8Array>"u"?X:Int8Array,"%Int16Array%":typeof Int16Array>"u"?X:Int16Array,"%Int32Array%":typeof Int32Array>"u"?X:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":ne&&ee?ee(ee([][Symbol.iterator]())):X,"%JSON%":"object"==typeof JSON?JSON:X,"%Map%":typeof Map>"u"?X:Map,"%MapIteratorPrototype%":typeof Map>"u"||!ne||!ee?X:ee((new Map)[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?X:Promise,"%Proxy%":typeof Proxy>"u"?X:Proxy,"%RangeError%":V,"%ReferenceError%":Me,"%Reflect%":typeof Reflect>"u"?X:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?X:Set,"%SetIteratorPrototype%":typeof Set>"u"||!ne||!ee?X:ee((new Set)[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?X:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":ne&&ee?ee(""[Symbol.iterator]()):X,"%Symbol%":ne?Symbol:X,"%SyntaxError%":ce,"%ThrowTypeError%":re,"%TypedArray%":L,"%TypeError%":Z,"%Uint8Array%":typeof Uint8Array>"u"?X:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?X:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?X:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?X:Uint32Array,"%URIError%":Ne,"%WeakMap%":typeof WeakMap>"u"?X:WeakMap,"%WeakRef%":typeof WeakRef>"u"?X:WeakRef,"%WeakSet%":typeof WeakSet>"u"?X:WeakSet};if(ee)try{null.error}catch(Nn){var se=ee(ee(Nn));B["%Error.prototype%"]=se}var ue=function Nn(ve){var ze;if("%AsyncFunction%"===ve)ze=ye("async function () {}");else if("%GeneratorFunction%"===ve)ze=ye("function* () {}");else if("%AsyncGeneratorFunction%"===ve)ze=ye("async function* () {}");else if("%AsyncGenerator%"===ve){var we=Nn("%AsyncGeneratorFunction%");we&&(ze=we.prototype)}else if("%AsyncIteratorPrototype%"===ve){var Le=Nn("%AsyncGenerator%");Le&&ee&&(ze=ee(Le.prototype))}return B[ve]=ze,ze},ge={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Se=fe(992),ut=fe(368),nt=Se.call(Function.call,Array.prototype.concat),Yt=Se.call(Function.apply,Array.prototype.splice),ht=Se.call(Function.call,String.prototype.replace),_n=Se.call(Function.call,String.prototype.slice),pt=Se.call(Function.call,RegExp.prototype.exec),co=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Jn=/\\(\\)?/g,Lo=function(ve,ze){var Le,we=ve;if(ut(ge,we)&&(we="%"+(Le=ge[we])[0]+"%"),ut(B,we)){var qe=B[we];if(qe===P&&(qe=ue(we)),typeof qe>"u"&&!ze)throw new Z("intrinsic "+ve+" exists, but is not available. Please file an issue!");return{alias:Le,name:we,value:qe}}throw new ce("intrinsic "+ve+" does not exist!")};Ve.exports=function(ve,ze){if("string"!=typeof ve||0===ve.length)throw new Z("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof ze)throw new Z('"allowMissing" argument must be a boolean');if(null===pt(/^%?[^%]*%?$/,ve))throw new ce("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var we=function(ve){var ze=_n(ve,0,1),we=_n(ve,-1);if("%"===ze&&"%"!==we)throw new ce("invalid intrinsic syntax, expected closing `%`");if("%"===we&&"%"!==ze)throw new ce("invalid intrinsic syntax, expected opening `%`");var Le=[];return ht(ve,co,function(qe,gt,Vt,vi){Le[Le.length]=Vt?ht(vi,Jn,"$1"):gt||qe}),Le}(ve),Le=we.length>0?we[0]:"",qe=Lo("%"+Le+"%",ze),gt=qe.name,Vt=qe.value,vi=!1,lr=qe.alias;lr&&(Le=lr[0],Yt(we,nt([0,1],lr)));for(var Sr=1,To=!0;Sr=we.length){var Ct=te(Vt,_i);Vt=(To=!!Ct)&&"get"in Ct&&!("originalValue"in Ct.get)?Ct.get:Vt[_i]}else To=ut(Vt,_i),Vt=Vt[_i];To&&!vi&&(B[gt]=Vt)}}return Vt}},798:(Ve,jt,fe)=>{"use strict";var le=fe(258)("%Object.getOwnPropertyDescriptor%",!0);if(le)try{le([],"length")}catch{le=null}Ve.exports=le},861:(Ve,jt,fe)=>{"use strict";var X=fe(570),le=function(){return!!X};le.hasArrayLengthDefineBug=function(){if(!X)return null;try{return 1!==X([],"length",{value:1}).length}catch{return!0}},Ve.exports=le},119:Ve=>{"use strict";var jt={__proto__:null,foo:{}},fe=Object;Ve.exports=function(){return{__proto__:jt}.foo===jt.foo&&!(jt instanceof fe)}},900:(Ve,jt,fe)=>{"use strict";var X=typeof Symbol<"u"&&Symbol,le=fe(310);Ve.exports=function(){return"function"==typeof X&&"function"==typeof Symbol&&"symbol"==typeof X("foo")&&"symbol"==typeof Symbol("bar")&&le()}},310:Ve=>{"use strict";Ve.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var fe={},X=Symbol("test"),le=Object(X);if("string"==typeof X||"[object Symbol]"!==Object.prototype.toString.call(X)||"[object Symbol]"!==Object.prototype.toString.call(le))return!1;for(X in fe[X]=42,fe)return!1;if("function"==typeof Object.keys&&0!==Object.keys(fe).length||"function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(fe).length)return!1;var V=Object.getOwnPropertySymbols(fe);if(1!==V.length||V[0]!==X||!Object.prototype.propertyIsEnumerable.call(fe,X))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var Me=Object.getOwnPropertyDescriptor(fe,X);if(42!==Me.value||!0!==Me.enumerable)return!1}return!0}},368:(Ve,jt,fe)=>{"use strict";var X=Function.prototype.call,le=Object.prototype.hasOwnProperty,$=fe(992);Ve.exports=$.call(X,le)},560:function(Ve,jt,fe){var X,le;X=function(){var K,ee,$={version:"0.2.0"},V=$.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function Me(K,ee,P){return KP?P:K}function ce(K){return 100*(-1+K)}$.configure=function(K){var ee,P;for(ee in K)void 0!==(P=K[ee])&&K.hasOwnProperty(ee)&&(V[ee]=P);return this},$.status=null,$.set=function(K){var ee=$.isStarted();K=Me(K,V.minimum,1),$.status=1===K?null:K;var P=$.render(!ee),L=P.querySelector(V.barSelector),B=V.speed,se=V.easing;return Ne(function(ue){""===V.positionUsing&&(V.positionUsing=$.getPositioningCSS()),Ee(L,function Z(K,ee,P){var L;return(L="translate3d"===V.positionUsing?{transform:"translate3d("+ce(K)+"%,0,0)"}:"translate"===V.positionUsing?{transform:"translate("+ce(K)+"%,0)"}:{"margin-left":ce(K)+"%"}).transition="all "+ee+"ms "+P,L}(K,B,se)),1===K?(Ee(P,{transition:"none",opacity:1}),setTimeout(function(){Ee(P,{transition:"all "+B+"ms linear",opacity:0}),setTimeout(function(){$.remove(),ue()},B)},B)):setTimeout(ue,B)}),this},$.isStarted=function(){return"number"==typeof $.status},$.start=function(){$.status||$.set(0);var K=function(){setTimeout(function(){$.status&&($.trickle(),K())},V.trickleSpeed)};return V.trickle&&K(),this},$.done=function(K){return K||$.status?$.inc(.3+.5*Math.random()).set(1):this},$.inc=function(K){var ee=$.status;return ee?("number"!=typeof K&&(K=(1-ee)*Me(Math.random()*ee,.1,.95)),ee=Me(ee+K,0,.994),$.set(ee)):$.start()},$.trickle=function(){return $.inc(Math.random()*V.trickleRate)},K=0,ee=0,$.promise=function(P){return P&&"resolved"!==P.state()?(0===ee&&$.start(),K++,ee++,P.always(function(){0==--ee?(K=0,$.done()):$.set((K-ee)/K)}),this):this},$.render=function(K){if($.isRendered())return document.getElementById("nprogress");te(document.documentElement,"nprogress-busy");var ee=document.createElement("div");ee.id="nprogress",ee.innerHTML=V.template;var se,P=ee.querySelector(V.barSelector),L=K?"-100":ce($.status||0),B=document.querySelector(V.parent);return Ee(P,{transition:"all 0 linear",transform:"translate3d("+L+"%,0,0)"}),V.showSpinner||(se=ee.querySelector(V.spinnerSelector))&&ne(se),B!=document.body&&te(B,"nprogress-custom-parent"),B.appendChild(ee),ee},$.remove=function(){Re(document.documentElement,"nprogress-busy"),Re(document.querySelector(V.parent),"nprogress-custom-parent");var K=document.getElementById("nprogress");K&&ne(K)},$.isRendered=function(){return!!document.getElementById("nprogress")},$.getPositioningCSS=function(){var K=document.body.style,ee="WebkitTransform"in K?"Webkit":"MozTransform"in K?"Moz":"msTransform"in K?"ms":"OTransform"in K?"O":"";return ee+"Perspective"in K?"translate3d":ee+"Transform"in K?"translate":"margin"};var Ne=function(){var K=[];function ee(){var P=K.shift();P&&P(ee)}return function(P){K.push(P),1==K.length&&ee()}}(),Ee=function(){var K=["Webkit","O","Moz","ms"],ee={};function B(ue){return ue=function P(ue){return ue.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(ge,Se){return Se.toUpperCase()})}(ue),ee[ue]||(ee[ue]=function L(ue){var ge=document.body.style;if(ue in ge)return ue;for(var nt,Se=K.length,ut=ue.charAt(0).toUpperCase()+ue.slice(1);Se--;)if((nt=K[Se]+ut)in ge)return nt;return ue}(ue))}function se(ue,ge,Se){ge=B(ge),ue.style[ge]=Se}return function(ue,ge){var ut,nt,Se=arguments;if(2==Se.length)for(ut in ge)void 0!==(nt=ge[ut])&&ge.hasOwnProperty(ut)&&se(ue,ut,nt);else se(ue,Se[1],Se[2])}}();function ye(K,ee){return("string"==typeof K?K:re(K)).indexOf(" "+ee+" ")>=0}function te(K,ee){var P=re(K),L=P+ee;ye(P,ee)||(K.className=L.substring(1))}function Re(K,ee){var L,P=re(K);ye(K,ee)&&(L=P.replace(" "+ee+" "," "),K.className=L.substring(1,L.length-1))}function re(K){return(" "+(K.className||"")+" ").replace(/\s+/gi," ")}function ne(K){K&&K.parentNode&&K.parentNode.removeChild(K)}return $},void 0!==(le=X.call(jt,fe,jt,Ve))&&(Ve.exports=le)},150:(Ve,jt,fe)=>{var X="function"==typeof Map&&Map.prototype,le=Object.getOwnPropertyDescriptor&&X?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,$=X&&le&&"function"==typeof le.get?le.get:null,V=X&&Map.prototype.forEach,Me="function"==typeof Set&&Set.prototype,ce=Object.getOwnPropertyDescriptor&&Me?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Z=Me&&ce&&"function"==typeof ce.get?ce.get:null,Ne=Me&&Set.prototype.forEach,ye="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,Re="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,ne="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,K=Boolean.prototype.valueOf,ee=Object.prototype.toString,P=Function.prototype.toString,L=String.prototype.match,B=String.prototype.slice,se=String.prototype.replace,ue=String.prototype.toUpperCase,ge=String.prototype.toLowerCase,Se=RegExp.prototype.test,ut=Array.prototype.concat,nt=Array.prototype.join,Yt=Array.prototype.slice,ht=Math.floor,_n="function"==typeof BigInt?BigInt.prototype.valueOf:null,pt=Object.getOwnPropertySymbols,co="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,Jn="function"==typeof Symbol&&"object"==typeof Symbol.iterator,ln="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol,1)?Symbol.toStringTag:null,Lo=Object.prototype.propertyIsEnumerable,Nn=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(F){return F.__proto__}:null);function ve(F,Y){if(F===1/0||F===-1/0||F!=F||F&&F>-1e3&&F<1e3||Se.call(/e/,Y))return Y;var Rt=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof F){var en=F<0?-ht(-F):ht(F);if(en!==F){var Hn=String(en),St=B.call(Y,Hn.length+1);return se.call(Hn,Rt,"$&_")+"."+se.call(se.call(St,/([0-9]{3})/g,"$&_"),/_$/,"")}}return se.call(Y,Rt,"$&_")}var ze=fe(634),we=ze.custom,Le=Tr(we)?we:null;function qe(F,Y,Rt){var en="double"===(Rt.quoteStyle||Y)?'"':"'";return en+F+en}function gt(F){return se.call(String(F),/"/g,""")}function Vt(F){return!("[object Array]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}function lr(F){return!("[object RegExp]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}function Tr(F){if(Jn)return F&&"object"==typeof F&&F instanceof Symbol;if("symbol"==typeof F)return!0;if(!F||"object"!=typeof F||!co)return!1;try{return co.call(F),!0}catch{}return!1}Ve.exports=function F(Y,Rt,en,Hn){var St=Rt||{};if(uo(St,"quoteStyle")&&"single"!==St.quoteStyle&&"double"!==St.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(uo(St,"maxStringLength")&&("number"==typeof St.maxStringLength?St.maxStringLength<0&&St.maxStringLength!==1/0:null!==St.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var Qr=!uo(St,"customInspect")||St.customInspect;if("boolean"!=typeof Qr&&"symbol"!==Qr)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(uo(St,"indent")&&null!==St.indent&&"\t"!==St.indent&&!(parseInt(St.indent,10)===St.indent&&St.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(uo(St,"numericSeparator")&&"boolean"!=typeof St.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var Mr=St.numericSeparator;if(typeof Y>"u")return"undefined";if(null===Y)return"null";if("boolean"==typeof Y)return Y?"true":"false";if("string"==typeof Y)return G2(Y,St);if("number"==typeof Y){if(0===Y)return 1/0/Y>0?"0":"-0";var Bn=String(Y);return Mr?ve(Y,Bn):Bn}if("bigint"==typeof Y){var Xr=String(Y)+"n";return Mr?ve(Y,Xr):Xr}var Kc=typeof St.depth>"u"?5:St.depth;if(typeof en>"u"&&(en=0),en>=Kc&&Kc>0&&"object"==typeof Y)return Vt(Y)?"[Array]":"[Object]";var Ut=function ip(F,Y){var Rt;if("\t"===F.indent)Rt="\t";else{if(!("number"==typeof F.indent&&F.indent>0))return null;Rt=nt.call(Array(F.indent+1)," ")}return{base:Rt,prev:nt.call(Array(Y+1),Rt)}}(St,en);if(typeof Hn>"u")Hn=[];else if(G1(Hn,Y)>=0)return"[Circular]";function Mo(Ia,Xc,rp){if(Xc&&(Hn=Yt.call(Hn)).push(Xc),rp){var Fe={depth:St.depth};return uo(St,"quoteStyle")&&(Fe.quoteStyle=St.quoteStyle),F(Ia,Fe,en+1,Hn)}return F(Ia,St,en+1,Hn)}if("function"==typeof Y&&!lr(Y)){var q2=function Ft(F){if(F.name)return F.name;var Y=L.call(P.call(F),/^function\s*([\w$]+)/);return Y?Y[1]:null}(Y),K2=qc(Y,Mo);return"[Function"+(q2?": "+q2:" (anonymous)")+"]"+(K2.length>0?" { "+nt.call(K2,", ")+" }":"")}if(Tr(Y)){var J2=Jn?se.call(String(Y),/^(Symbol\(.*\))_[^)]*$/,"$1"):co.call(Y);return"object"!=typeof Y||Jn?J2:Aa(J2)}if(function qs(F){return!(!F||"object"!=typeof F)&&(typeof HTMLElement<"u"&&F instanceof HTMLElement||"string"==typeof F.nodeName&&"function"==typeof F.getAttribute)}(Y)){for(var N="<"+ge.call(String(Y.nodeName)),Jc=Y.attributes||[],rt=0;rt"}if(Vt(Y)){if(0===Y.length)return"[]";var Zc=qc(Y,Mo);return Ut&&!function Gc(F){for(var Y=0;Y=0)return!1;return!0}(Zc)?"["+Pa(Zc,Ut)+"]":"[ "+nt.call(Zc,", ")+" ]"}if(function Sr(F){return!("[object Error]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y)){var dn=qc(Y,Mo);return"cause"in Error.prototype||!("cause"in Y)||Lo.call(Y,"cause")?0===dn.length?"["+String(Y)+"]":"{ ["+String(Y)+"] "+nt.call(dn,", ")+" }":"{ ["+String(Y)+"] "+nt.call(ut.call("[cause]: "+Mo(Y.cause),dn),", ")+" }"}if("object"==typeof Y&&Qr){if(Le&&"function"==typeof Y[Le]&&ze)return ze(Y,{depth:Kc-en});if("symbol"!==Qr&&"function"==typeof Y.inspect)return Y.inspect()}if(function Y2(F){if(!$||!F||"object"!=typeof F)return!1;try{$.call(F);try{Z.call(F)}catch{return!0}return F instanceof Map}catch{}return!1}(Y)){var Zt=[];return V&&V.call(Y,function(Ia,Xc){Zt.push(Mo(Xc,Y,!0)+" => "+Mo(Ia,Y))}),Zr("Map",$.call(Y),Zt,Ut)}if(function Wc(F){if(!Z||!F||"object"!=typeof F)return!1;try{Z.call(F);try{$.call(F)}catch{return!0}return F instanceof Set}catch{}return!1}(Y)){var Z2=[];return Ne&&Ne.call(Y,function(Ia){Z2.push(Mo(Ia,Y))}),Zr("Set",Z.call(Y),Z2,Ut)}if(function U2(F){if(!ye||!F||"object"!=typeof F)return!1;try{ye.call(F,ye);try{Re.call(F,Re)}catch{return!0}return F instanceof WeakMap}catch{}return!1}(Y))return Oa("WeakMap");if(function W2(F){if(!Re||!F||"object"!=typeof F)return!1;try{Re.call(F,Re);try{ye.call(F,ye)}catch{return!0}return F instanceof WeakSet}catch{}return!1}(Y))return Oa("WeakSet");if(function ys(F){if(!ne||!F||"object"!=typeof F)return!1;try{return ne.call(F),!0}catch{}return!1}(Y))return Oa("WeakRef");if(function _i(F){return!("[object Number]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y))return Aa(Mo(Number(Y)));if(function Ct(F){if(!F||"object"!=typeof F||!_n)return!1;try{return _n.call(F),!0}catch{}return!1}(Y))return Aa(Mo(_n.call(Y)));if(function lo(F){return!("[object Boolean]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y))return Aa(K.call(Y));if(function To(F){return!("[object String]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y))return Aa(Mo(String(Y)));if(typeof window<"u"&&Y===window)return"{ [object Window] }";if(typeof globalThis<"u"&&Y===globalThis||typeof global<"u"&&Y===global)return"{ [object globalThis] }";if(!function vi(F){return!("[object Date]"!==Fi(F)||ln&&"object"==typeof F&&ln in F)}(Y)&&!lr(Y)){var Ie=qc(Y,Mo),Qc=Nn?Nn(Y)===Object.prototype:Y instanceof Object||Y.constructor===Object,Q2=Y instanceof Object?"":"null prototype",op=!Qc&&ln&&Object(Y)===Y&&ln in Y?B.call(Fi(Y),8,-1):Q2?"Object":"",X2=(Qc||"function"!=typeof Y.constructor?"":Y.constructor.name?Y.constructor.name+" ":"")+(op||Q2?"["+nt.call(ut.call([],op||[],Q2||[]),": ")+"] ":"");return 0===Ie.length?X2+"{}":Ut?X2+"{"+Pa(Ie,Ut)+"}":X2+"{ "+nt.call(Ie,", ")+" }"}return String(Y)};var ka=Object.prototype.hasOwnProperty||function(F){return F in this};function uo(F,Y){return ka.call(F,Y)}function Fi(F){return ee.call(F)}function G1(F,Y){if(F.indexOf)return F.indexOf(Y);for(var Rt=0,en=F.length;RtY.maxStringLength){var Rt=F.length-Y.maxStringLength,en="... "+Rt+" more character"+(Rt>1?"s":"");return G2(B.call(F,0,Y.maxStringLength),Y)+en}return qe(se.call(se.call(F,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,np),"single",Y)}function np(F){var Y=F.charCodeAt(0),Rt={8:"b",9:"t",10:"n",12:"f",13:"r"}[Y];return Rt?"\\"+Rt:"\\x"+(Y<16?"0":"")+ue.call(Y.toString(16))}function Aa(F){return"Object("+F+")"}function Oa(F){return F+" { ? }"}function Zr(F,Y,Rt,en){return F+" ("+Y+") {"+(en?Pa(Rt,en):nt.call(Rt,", "))+"}"}function Pa(F,Y){if(0===F.length)return"";var Rt="\n"+Y.prev+Y.base;return Rt+nt.call(F,","+Rt)+"\n"+Y.prev}function qc(F,Y){var Rt=Vt(F),en=[];if(Rt){en.length=F.length;for(var Hn=0;Hn{"use strict";var jt=String.prototype.replace,fe=/%20/g;Ve.exports={default:"RFC3986",formatters:{RFC1738:function(le){return jt.call(le,fe,"+")},RFC3986:function(le){return String(le)}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},476:(Ve,jt,fe)=>{"use strict";var X=fe(801),le=fe(919),$=fe(140);Ve.exports={formats:$,parse:le,stringify:X}},919:(Ve,jt,fe)=>{"use strict";var X=fe(221),le=Object.prototype.hasOwnProperty,$=Array.isArray,V={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:X.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},ce=function(re,ne){return re&&"string"==typeof re&&ne.comma&&re.indexOf(",")>-1?re.split(","):re},te=function(ne,K,ee,P){if(ne){var L=ee.allowDots?ne.replace(/\.([^.[]+)/g,"[$1]"):ne,se=/(\[[^[\]]*])/g,ue=ee.depth>0&&/(\[[^[\]]*])/.exec(L),ge=ue?L.slice(0,ue.index):L,Se=[];if(ge){if(!ee.plainObjects&&le.call(Object.prototype,ge)&&!ee.allowPrototypes)return;Se.push(ge)}for(var ut=0;ee.depth>0&&null!==(ue=se.exec(L))&&ut=0;--L){var B,se=re[L];if("[]"===se&&K.parseArrays)B=K.allowEmptyArrays&&""===P?[]:[].concat(P);else{B=K.plainObjects?Object.create(null):{};var ue="["===se.charAt(0)&&"]"===se.charAt(se.length-1)?se.slice(1,-1):se,ge=K.decodeDotInKeys?ue.replace(/%2E/g,"."):ue,Se=parseInt(ge,10);K.parseArrays||""!==ge?!isNaN(Se)&&se!==ge&&String(Se)===ge&&Se>=0&&K.parseArrays&&Se<=K.arrayLimit?(B=[])[Se]=P:"__proto__"!==ge&&(B[ge]=P):B={0:P}}P=B}return P}(Se,K,ee,P)}};Ve.exports=function(re,ne){var K=function(ne){if(!ne)return V;if(typeof ne.allowEmptyArrays<"u"&&"boolean"!=typeof ne.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof ne.decodeDotInKeys<"u"&&"boolean"!=typeof ne.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==ne.decoder&&typeof ne.decoder<"u"&&"function"!=typeof ne.decoder)throw new TypeError("Decoder has to be a function.");if(typeof ne.charset<"u"&&"utf-8"!==ne.charset&&"iso-8859-1"!==ne.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var K=typeof ne.charset>"u"?V.charset:ne.charset,ee=typeof ne.duplicates>"u"?V.duplicates:ne.duplicates;if("combine"!==ee&&"first"!==ee&&"last"!==ee)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:typeof ne.allowDots>"u"?!0===ne.decodeDotInKeys||V.allowDots:!!ne.allowDots,allowEmptyArrays:"boolean"==typeof ne.allowEmptyArrays?!!ne.allowEmptyArrays:V.allowEmptyArrays,allowPrototypes:"boolean"==typeof ne.allowPrototypes?ne.allowPrototypes:V.allowPrototypes,allowSparse:"boolean"==typeof ne.allowSparse?ne.allowSparse:V.allowSparse,arrayLimit:"number"==typeof ne.arrayLimit?ne.arrayLimit:V.arrayLimit,charset:K,charsetSentinel:"boolean"==typeof ne.charsetSentinel?ne.charsetSentinel:V.charsetSentinel,comma:"boolean"==typeof ne.comma?ne.comma:V.comma,decodeDotInKeys:"boolean"==typeof ne.decodeDotInKeys?ne.decodeDotInKeys:V.decodeDotInKeys,decoder:"function"==typeof ne.decoder?ne.decoder:V.decoder,delimiter:"string"==typeof ne.delimiter||X.isRegExp(ne.delimiter)?ne.delimiter:V.delimiter,depth:"number"==typeof ne.depth||!1===ne.depth?+ne.depth:V.depth,duplicates:ee,ignoreQueryPrefix:!0===ne.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof ne.interpretNumericEntities?ne.interpretNumericEntities:V.interpretNumericEntities,parameterLimit:"number"==typeof ne.parameterLimit?ne.parameterLimit:V.parameterLimit,parseArrays:!1!==ne.parseArrays,plainObjects:"boolean"==typeof ne.plainObjects?ne.plainObjects:V.plainObjects,strictNullHandling:"boolean"==typeof ne.strictNullHandling?ne.strictNullHandling:V.strictNullHandling}}(ne);if(""===re||null===re||typeof re>"u")return K.plainObjects?Object.create(null):{};for(var ee="string"==typeof re?function(ne,K){var ue,ee={__proto__:null},B=(K.ignoreQueryPrefix?ne.replace(/^\?/,""):ne).split(K.delimiter,K.parameterLimit===1/0?void 0:K.parameterLimit),se=-1,ge=K.charset;if(K.charsetSentinel)for(ue=0;ue{"use strict";var X=fe(541),le=fe(221),$=fe(140),V=Object.prototype.hasOwnProperty,Me={brackets:function(P){return P+"[]"},comma:"comma",indices:function(P,L){return P+"["+L+"]"},repeat:function(P){return P}},ce=Array.isArray,Z=Array.prototype.push,Ne=function(ee,P){Z.apply(ee,ce(P)?P:[P])},Ee=Date.prototype.toISOString,ye=$.default,te={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:le.encode,encodeValuesOnly:!1,format:ye,formatter:$.formatters[ye],indices:!1,serializeDate:function(P){return Ee.call(P)},skipNulls:!1,strictNullHandling:!1},re={},ne=function ee(P,L,B,se,ue,ge,Se,ut,nt,Yt,ht,_n,pt,co,Jn,ln,Lo,Nn){for(var ve=P,ze=Nn,we=0,Le=!1;void 0!==(ze=ze.get(re))&&!Le;){var qe=ze.get(P);if(we+=1,typeof qe<"u"){if(qe===we)throw new RangeError("Cyclic object value");Le=!0}typeof ze.get(re)>"u"&&(we=0)}if("function"==typeof Yt?ve=Yt(L,ve):ve instanceof Date?ve=pt(ve):"comma"===B&&ce(ve)&&(ve=le.maybeMap(ve,function(Fi){return Fi instanceof Date?pt(Fi):Fi})),null===ve){if(ge)return nt&&!ln?nt(L,te.encoder,Lo,"key",co):L;ve=""}if(function(P){return"string"==typeof P||"number"==typeof P||"boolean"==typeof P||"symbol"==typeof P||"bigint"==typeof P}(ve)||le.isBuffer(ve))return nt?[Jn(ln?L:nt(L,te.encoder,Lo,"key",co))+"="+Jn(nt(ve,te.encoder,Lo,"value",co))]:[Jn(L)+"="+Jn(String(ve))];var vi,Vt=[];if(typeof ve>"u")return Vt;if("comma"===B&&ce(ve))ln&&nt&&(ve=le.maybeMap(ve,nt)),vi=[{value:ve.length>0?ve.join(",")||null:void 0}];else if(ce(Yt))vi=Yt;else{var lr=Object.keys(ve);vi=ht?lr.sort(ht):lr}var Sr=ut?L.replace(/\./g,"%2E"):L,To=se&&ce(ve)&&1===ve.length?Sr+"[]":Sr;if(ue&&ce(ve)&&0===ve.length)return To+"[]";for(var _i=0;_i"u"?!0===P.encodeDotInKeys||te.allowDots:!!P.allowDots,allowEmptyArrays:"boolean"==typeof P.allowEmptyArrays?!!P.allowEmptyArrays:te.allowEmptyArrays,arrayFormat:ge,charset:L,charsetSentinel:"boolean"==typeof P.charsetSentinel?P.charsetSentinel:te.charsetSentinel,commaRoundTrip:P.commaRoundTrip,delimiter:typeof P.delimiter>"u"?te.delimiter:P.delimiter,encode:"boolean"==typeof P.encode?P.encode:te.encode,encodeDotInKeys:"boolean"==typeof P.encodeDotInKeys?P.encodeDotInKeys:te.encodeDotInKeys,encoder:"function"==typeof P.encoder?P.encoder:te.encoder,encodeValuesOnly:"boolean"==typeof P.encodeValuesOnly?P.encodeValuesOnly:te.encodeValuesOnly,filter:ue,format:B,formatter:se,serializeDate:"function"==typeof P.serializeDate?P.serializeDate:te.serializeDate,skipNulls:"boolean"==typeof P.skipNulls?P.skipNulls:te.skipNulls,sort:"function"==typeof P.sort?P.sort:null,strictNullHandling:"boolean"==typeof P.strictNullHandling?P.strictNullHandling:te.strictNullHandling}}(P);"function"==typeof B.filter?L=(0,B.filter)("",L):ce(B.filter)&&(se=B.filter);var ge=[];if("object"!=typeof L||null===L)return"";var Se=Me[B.arrayFormat],ut="comma"===Se&&B.commaRoundTrip;se||(se=Object.keys(L)),B.sort&&se.sort(B.sort);for(var nt=X(),Yt=0;Yt0?pt+_n:""}},221:(Ve,jt,fe)=>{"use strict";var X=fe(140),le=Object.prototype.hasOwnProperty,$=Array.isArray,V=function(){for(var P=[],L=0;L<256;++L)P.push("%"+((L<16?"0":"")+L.toString(16)).toUpperCase());return P}(),ce=function(L,B){for(var se=B&&B.plainObjects?Object.create(null):{},ue=0;ue1;){var B=L.pop(),se=B.obj[B.prop];if($(se)){for(var ue=[],ge=0;ge=1024?Se.slice(nt,nt+1024):Se,ht=[],_n=0;_n=48&&pt<=57||pt>=65&&pt<=90||pt>=97&&pt<=122||ge===X.RFC1738&&(40===pt||41===pt)?ht[ht.length]=Yt.charAt(_n):pt<128?ht[ht.length]=V[pt]:pt<2048?ht[ht.length]=V[192|pt>>6]+V[128|63&pt]:pt<55296||pt>=57344?ht[ht.length]=V[224|pt>>12]+V[128|pt>>6&63]+V[128|63&pt]:(pt=65536+((1023&pt)<<10|1023&Yt.charCodeAt(_n+=1)),ht[ht.length]=V[240|pt>>18]+V[128|pt>>12&63]+V[128|pt>>6&63]+V[128|63&pt])}ut+=ht.join("")}return ut},isBuffer:function(L){return!(!L||"object"!=typeof L||!(L.constructor&&L.constructor.isBuffer&&L.constructor.isBuffer(L)))},isRegExp:function(L){return"[object RegExp]"===Object.prototype.toString.call(L)},maybeMap:function(L,B){if($(L)){for(var se=[],ue=0;ue{"use strict";var X=fe(258),le=fe(736),$=fe(861)(),V=fe(798),Me=fe(758),ce=X("%Math.floor%");Ve.exports=function(Ne,Ee){if("function"!=typeof Ne)throw new Me("`fn` is not a function");if("number"!=typeof Ee||Ee<0||Ee>4294967295||ce(Ee)!==Ee)throw new Me("`length` must be a positive 32-bit integer");var ye=arguments.length>2&&!!arguments[2],te=!0,Re=!0;if("length"in Ne&&V){var re=V(Ne,"length");re&&!re.configurable&&(te=!1),re&&!re.writable&&(Re=!1)}return(te||Re||!ye)&&($?le(Ne,"length",Ee,!0,!0):le(Ne,"length",Ee)),Ne}},541:(Ve,jt,fe)=>{"use strict";var X=fe(258),le=fe(20),$=fe(150),V=fe(758),Me=X("%WeakMap%",!0),ce=X("%Map%",!0),Z=le("WeakMap.prototype.get",!0),Ne=le("WeakMap.prototype.set",!0),Ee=le("WeakMap.prototype.has",!0),ye=le("Map.prototype.get",!0),te=le("Map.prototype.set",!0),Re=le("Map.prototype.has",!0),re=function(P,L){for(var se,B=P;null!==(se=B.next);B=se)if(se.key===L)return B.next=se.next,se.next=P.next,P.next=se,se};Ve.exports=function(){var L,B,se,ue={assert:function(ge){if(!ue.has(ge))throw new V("Side channel does not contain "+$(ge))},get:function(ge){if(Me&&ge&&("object"==typeof ge||"function"==typeof ge)){if(L)return Z(L,ge)}else if(ce){if(B)return ye(B,ge)}else if(se)return function(P,L){var B=re(P,L);return B&&B.value}(se,ge)},has:function(ge){if(Me&&ge&&("object"==typeof ge||"function"==typeof ge)){if(L)return Ee(L,ge)}else if(ce){if(B)return Re(B,ge)}else if(se)return function(P,L){return!!re(P,L)}(se,ge);return!1},set:function(ge,Se){Me&&ge&&("object"==typeof ge||"function"==typeof ge)?(L||(L=new Me),Ne(L,ge,Se)):ce?(B||(B=new ce),te(B,ge,Se)):(se||(se={key:{},next:null}),function(P,L,B){var se=re(P,L);se?se.value=B:P.next={key:L,next:P.next,value:B}}(se,ge,Se))}};return ue}},634:()=>{}},Ve=>{Ve(Ve.s=285)}]); \ No newline at end of file